drac030 Posted December 25, 2009 Share Posted December 25, 2009 It is a PBI device, but there is no reason why serial devices couldn't go 15 units (this is PBI which can do more, i.e. up to 255 units, but the serial I/O protocol could suffer major confusion seeing such a request when no PBI is present, so I think 15 - i.e. SIO device $3F - is a reasonable maximum). Quote Link to comment Share on other sites More sharing options...
drac030 Posted December 25, 2009 Share Posted December 25, 2009 (edited) Update: I copied the 16 MB ATR file over to test.atr, mounted it and tried to format. But the SDX formatter reported, that the disk is a 180k DD image, so I went to check the returned PERCOM block. Here it is: $39 $00 $12 $00 $00 $00 $01 $00 $FF $00 $00 $00, which is 57 tracks * 18 sectors * 256 bytes = 256 KB. The valid PERCOM block for such an image should be $01 $00 $fe $ff $00 $04 $01 $00 $FF $00 $00 $00 (1 track * 65534 sectors * 256 bytes = ~16 MB). A 32 MB image under Altirra returns basically the same PERCOM block as above except that the sector size is correct ($39 $00 $12 $00 $00 $00 $02 $00 $FF $00 $00 $00 = 57 tracks * 18 sectors * 512 bytes = 512 KB). Again, it should be $01 $00 $FF $FF $00 $04 $02 $00 $FF $00 $00 $00 = 1 track * 65535 sectors * 512 bytes = ~32 MB). EDIT: although the emulator does correctly recognize the image sector size, it does not transfer 512-byte sectors correctly, it looks like it cut the transfer after the first 256 bytes. SIO of course expects more data, so timeout occurs eventually. Edited December 25, 2009 by drac030 Quote Link to comment Share on other sites More sharing options...
phaeron Posted December 25, 2009 Author Share Posted December 25, 2009 These updates are great: VBXE emulation is probably already at the stage where I can use it for the bulk of my development. As draco said, practically speaking it would be nice to see the program remember its settings, such as mounted ATRs and carts. Since the cursor keys still seem quirkily mapped out to me (shift+ctrl+down arrow works, but shift+down arrow produces the same keyscan code), I'm hoping I can customise the keyboard to my liking. However, I'm assuming the key assignments won't be remembered between sessions yet. The keyboard is not currently customizable since there are too many quirks to it: one is that some of the keys are mapped as characters instead of virtkeys, to avoid excessively weird mappings on international keyboards. However, I'm open to suggestions. In this particular case, I'm not sure what to do, since on a real Atari keyboard you need to press Ctrl to use the arrow keys, and therefore Ctrl+arrow and Ctrl+Shift+Arrow aren't well defined. Quote Link to comment Share on other sites More sharing options...
ilmenit Posted December 26, 2009 Share Posted December 26, 2009 Changes: Phaeron, your emulator is my #1, mostly because of internal debugger Do you plan to add an option to load symbols for the running program? It would be very useful. The second question/feature request is about palette files. Do you plan to support it? Quote Link to comment Share on other sites More sharing options...
candle Posted December 26, 2009 Share Posted December 26, 2009 could You get jealous of this? even a bit? (or byte..) Quote Link to comment Share on other sites More sharing options...
phaeron Posted December 26, 2009 Author Share Posted December 26, 2009 could You get jealous of this? even a bit? (or byte..) Meh, sorry. To me, it looks like one of those WPF demos that is nice and scrolly, but when you actually sit down and think about it, you can't find a whole lot of uses for it. Bitmap/tile view on memory? Yeah, definitely. Animated and flashing effects? Sorry, I want my debugger snappy and fast. Quote Link to comment Share on other sites More sharing options...
Rybags Posted December 26, 2009 Share Posted December 26, 2009 I'd just like a decent and configurable trace facility. Problem with the A800Win+ one is it traces execution/registers just fine, but there's no tracking of memory or hardware registers. Something simple like an old/new status of locations that are modified by instructions would be nice. Also nice would be the ability to selectively omit sections of code, or change verbosity. Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted December 26, 2009 Share Posted December 26, 2009 realtime debugger... one of my wishes... and maybe automaticly load symbol file... generated by MADS... Quote Link to comment Share on other sites More sharing options...
phaeron Posted December 26, 2009 Author Share Posted December 26, 2009 and maybe automaticly load symbol file... generated by MADS... Actually, Altirra is already supposed to load a .lst and .lab file when loading an EXE, but for some reason this is not working correctly in current builds -- you have to manually load them with .loadsym. The list modules (lm) command will show if this is set up correctly. If it is, then Altirra will actually allow you to do source level debugging on the .s/xasm files. Another quick way is to use Debug > Open Source File command on the listing (.lst) file; you'll get the entire dump of your executable, but you can set breakpoints and step in the listing view. Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted December 26, 2009 Share Posted December 26, 2009 that looks cool... now I need only a practical way to integrate Altira in my mac environment. Have not found a way yet to cofigure virtualbox to exchange data on my iMac. Quote Link to comment Share on other sites More sharing options...
flashjazzcat Posted December 26, 2009 Share Posted December 26, 2009 The keyboard is not currently customizable since there are too many quirks to it: one is that some of the keys are mapped as characters instead of virtkeys, to avoid excessively weird mappings on international keyboards. However, I'm open to suggestions. In this particular case, I'm not sure what to do, since on a real Atari keyboard you need to press Ctrl to use the arrow keys, and therefore Ctrl+arrow and Ctrl+Shift+Arrow aren't well defined. I'll sit down and try and work out a suggested mapping today. Sorry to keep going on about the keyboard, but this is probably the only thing stopping me from making the switch to Altirra at the moment. I'm just difficult, because I insist on using every available code on the keyboard. Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted December 26, 2009 Share Posted December 26, 2009 Jesus... I just downloaded the VBXE samples on the Mad Team website and let them go in the emulator... I am shocked how good they are... Mr Proper looks like an Amiga game... and Rybags samples look unbelievable... Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted December 26, 2009 Share Posted December 26, 2009 ok... reactivated my NC10+XP+Eclipse+Altirra... let me test my VBXE code for color ram... Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted December 26, 2009 Share Posted December 26, 2009 btw. just have seen that every time I am calling Altirra a new instance is created... is there a way to reset the actual instance when assembling a new version of code and getting Altirra reboot the new build instead of creating a new instance? I just realised that I had 6 instances running... Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted December 26, 2009 Share Posted December 26, 2009 (edited) ok... again me with the attribute map... as I have no access to the real hardware at the moment... is it correct what Altirra displays? xdl .byte 52,0,23 ;24 blank scanlines .byte 101000,%10001010 .byte 191 ;191 scanlines .byte $00,$10,$00 ;attribute map adress $001000=$1000[0]+$4000 .byte 0,160 .byte 1,0 Edited December 26, 2009 by Heaven/TQA Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted December 26, 2009 Share Posted December 26, 2009 (edited) I guess I got the error... it must be 160,0 and not 0,160... Edited December 26, 2009 by Heaven/TQA Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted December 26, 2009 Share Posted December 26, 2009 ;VBXE Core 1.20 ;color attribute test MEMAC_B_CTL equ $5d bank0 equ $00 vbxe_bank equ $4000 org $3000 init: jsr vbxe_detect bcc vbxe_detected init0 lda 53770 sta $d01a jmp init0 ;vbxe found vbxe_detected: ;move XDL to $000000 VBXE RAM lda #$80+bank0 sta $d65d jsr clr_bank0 ldx #12 vbxe0 lda xdl,x sta vbxe_bank,x dex bpl vbxe0 lda #$00 ;XDL at $000000 sta $d641 lda #$00 sta $d642 lda #$00 sta $d643 lda #1 ;enable xdl sta $d640 loop lda #50 sta 540 loop0 lda 540 bne loop0 jsr set_color_ram jmp loop set_color_ram ldx #0 setc0 lda #0 sta vbxe_bank+$1000,x sta vbxe_bank+$1000+1,x lda 53770 sta $bc40,x and #$f0 ora #8 sta vbxe_bank+$1000+2,x lda #0 sta vbxe_bank+$1000+3,x inx inx inx inx cpx #160 bcc setc0 rts jmp * vbxe_detect jsr ?try bcc ?clr inc _vbxe_write+2 ?try ldx $4000 ldy #MEMAC_B_CTL lda #$80 jsr _vbxe_write cpx $4000 bne ?fnd jsr ?clr inx stx $4000 lda #$80 jsr _vbxe_write cpx $4000 bne ?fnd sec .byte $24 ?fnd clc ?clr lda #$00 _vbxe_write sta $d600,y rts ;clear bank #0 = $4000-$7fff window clr_bank0: ldy #63 clr_bank00 ldx #0 txa clr_bank01 sta vbxe_bank,x inx bne clr_bank01 dey bpl clr_bank00 rts xdl .byte 52,0,23 ;24 blank scanlines .byte 101000,%10001010 .byte 191 ;191 scanlines .byte $00,$10,$00 ;attribute map adress $001000=$1000[0]+$4000 .byte 160,0 .byte 1,0 Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted December 26, 2009 Share Posted December 26, 2009 ok... and here is an example with Antic Mode 6... the attribute cells are still 8x8 but in 320x resolution so now 1 cell covers 1/2 char... really cool... ;VBXE Core 1.20 ;color attribute test MEMAC_B_CTL equ $5d bank0 equ $00 vbxe_bank equ $4000 count equ $b0 org $3000 init: jsr vbxe_detect bcc vbxe_detected init0 lda 53770 sta $d01a jmp init0 ;vbxe found vbxe_detected: ;move XDL to $000000 VBXE RAM lda #$80+bank0 sta $d65d jsr clr_bank0 ldx #12 vbxe0 lda xdl,x sta vbxe_bank,x dex bpl vbxe0 lda 20 cmp 20 beq *-2 lda #0 sta count lda #<display_list sta 560 lda #>display_list sta 561 lda #$00 ;XDL at $000000 sta $d641 lda #$00 sta $d642 lda #$00 sta $d643 lda #1 ;enable xdl sta $d640 loop lda #1 sta 540 loop0 lda 540 bne loop0 jsr set_color_ram inc start_color lda start_color sta count jmp loop start_color .byte 0 set_color_ram ldx #0 setc0 lda count sta vbxe_bank+$1000,x lda #0 sta vbxe_bank+$1000+1,x ;lda 53770 ;sta $bc40,x ;and #$f0 ;ora #8 sta vbxe_bank+$1000+2,x lda #0 sta vbxe_bank+$1000+3,x inc count inx inx inx inx cpx #160 bcc setc0 rts jmp * vbxe_detect jsr ?try bcc ?clr inc _vbxe_write+2 ?try ldx $4000 ldy #MEMAC_B_CTL lda #$80 jsr _vbxe_write cpx $4000 bne ?fnd jsr ?clr inx stx $4000 lda #$80 jsr _vbxe_write cpx $4000 bne ?fnd sec .byte $24 ?fnd clc ?clr lda #$00 _vbxe_write sta $d600,y rts ;clear bank #0 = $4000-$7fff window clr_bank0: ldy #63 clr_bank00 ldx #0 txa clr_bank01 sta vbxe_bank,x inx bne clr_bank01 dey bpl clr_bank00 rts xdl .byte 52,0,23 ;24 blank scanlines .byte 101000,%10001010 .byte 191 ;191 scanlines .byte $00,$10,$00 ;attribute map adress $001000=$1000[0]+$4000 .byte 160,0 .byte 1,0 display_list .byte $70,$70,$70,$46 .word text .byte $41 .word display_list text dta d'VBXE VBXE VBXE VBXE VBXE' org $2e0 .word init Quote Link to comment Share on other sites More sharing options...
dwhyte Posted December 26, 2009 Share Posted December 26, 2009 (edited) OK, my curiosity is peaked again for the VBXE. I just have one quick question regarding it: Can the color attribute map be fine-scrolled either horizontally or vertically? Edited December 26, 2009 by dwhyte Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted December 26, 2009 Share Posted December 26, 2009 in theory yes... see docs... 0-31 pixels in x and y direction... not sure if Altirra does support it yet... my next test will be using 4x4 cells instead of 8x8... Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted December 26, 2009 Share Posted December 26, 2009 hscrolling and vscrolling (offsetting the attribute map) seems not working? anyway...here is the example with 4x4 cells... ;VBXE Core 1.20 ;color attribute test MEMAC_B_CTL equ $5d bank0 equ $00 vbxe_bank equ $4000 count equ $b0 org $3000 init: jsr vbxe_detect bcc vbxe_detected init0 lda 53770 sta $d01a jmp init0 ;vbxe found vbxe_detected: ;move XDL to $000000 VBXE RAM lda #$80+bank0 sta $d65d jsr clr_bank0 ldx #16 vbxe0 lda xdl,x sta vbxe_bank,x dex bpl vbxe0 lda 20 cmp 20 beq *-2 lda #0 sta count lda #<display_list sta 560 lda #>display_list sta 561 lda #$00 ;XDL at $000000 sta $d641 lda #$00 sta $d642 lda #$00 sta $d643 lda #1 ;enable xdl sta $d640 loop lda #1 sta 540 loop0 lda 540 bne loop0 jsr set_color_ram inc start_color ;lda start_color lda #16 sta count ; scrolling lda start_color and #31 ;sta vbxe_bank+11 jmp loop start_color .byte 0 set_color_ram ldx #0 setc0 lda count sta vbxe_bank+$1000,x sta vbxe_bank+$1008+320,x inc count inx inx inx inx ;cpx #160 bne setc0 rts jmp * vbxe_detect jsr ?try bcc ?clr inc _vbxe_write+2 ?try ldx $4000 ldy #MEMAC_B_CTL lda #$80 jsr _vbxe_write cpx $4000 bne ?fnd jsr ?clr inx stx $4000 lda #$80 jsr _vbxe_write cpx $4000 bne ?fnd sec .byte $24 ?fnd clc ?clr lda #$00 _vbxe_write sta $d600,y rts ;clear bank #0 = $4000-$7fff window clr_bank0: ldy #63 clr_bank00 ldx #0 txa clr_bank01 sta vbxe_bank,x inx bne clr_bank01 dey bpl clr_bank00 rts xdl .byte 52,0,23 ;24 blank scanlines .byte 101000,%10001110 .byte 191 ;191 scanlines .byte $00,$10,$00 ;attribute map adress $001000=$1000[0]+$4000 .word 320 .byte 0,0 ;hscroll,vscroll 0-31 .byte 3,3 ;h-size 4 pixel, v-size 4-pixel .byte 1,0 ;7060 DATA 52,0,23 ;7061 DATA 40,138,191 ;7062 DATA 0,0,0,160,0 ;7063 DATA 1,0 ; ;Line 7060 - first XDL entry for map off, overlay off, repeated for extra 23 scanlines ;Line 7061 - second XDL entry. Repeat set for 191 extra scanlines, MAPON set. End of XDL set (2.7), overlay/attribute set (2.3), map address set (2.1) ;7062 - map address at VBXE RAM $000000, step size of 160 bytes (40 x 4) ;7063 - overlay/map parameters, use palette 0/0, width normal, priority to GTIA objects display_list .byte $70,$70,$70,$46 .word text .byte $41 .word display_list text dta d'VBXE VBXE VBXE VBXE VBXE' org $2e0 .word init Quote Link to comment Share on other sites More sharing options...
candle Posted December 26, 2009 Share Posted December 26, 2009 Heaven, put a compiled one for me, so i could do a quick test on real hardware (or did You get Yours fixed?) Quote Link to comment Share on other sites More sharing options...
Heaven/TQA Posted December 26, 2009 Share Posted December 26, 2009 (edited) no... have not fixed my motherboard... still not sure who will do it... just asked ABBUC guys... attachted the exe file... this should scroll? as in this version I am writing into XDL+10 at $4000 bank 0 which contains the hscroll offset. (not +11) exe file exchanged but Altirra still does not scroll. vbxe1.zip Edited December 26, 2009 by Heaven/TQA Quote Link to comment Share on other sites More sharing options...
dwhyte Posted December 26, 2009 Share Posted December 26, 2009 Thanks for the examples Heaven... This Altirra thread has got me interested in coming back to programming on the A8; as soon as I finish this damn novel I'm working on... Quote Link to comment Share on other sites More sharing options...
Rybags Posted December 26, 2009 Share Posted December 26, 2009 4x4 cells shouldn't work properly on the real hardware. That's the bummer about attribute maps. Although you can tell VBXE to do small x-sized cells and it generates them, it only does 40 or so properly, then has a blank area, then does 40 again, etc. I was hoping it would work, but no... would have been a cheap and easy way to do zoomers and parallax scrollers. As it is, zoomers could be done using blits. Parallax scrollers still possible with overlays, but only 2-layer. Or 3 if you goto the trouble of employing PMGs. Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.