cx16.vpeek() use VERA_DATA0 instead of 1, to not cause ADDRSEL to be != 0 (interferes with kernal)

This commit is contained in:
Irmen de Jong 2023-11-07 22:09:53 +01:00
parent 31177a2b1b
commit 70436f5dca
3 changed files with 4 additions and 6 deletions

View File

@ -526,16 +526,12 @@ asmsub vpeek(ubyte bank @A, uword address @XY) -> ubyte @A {
; -- get a byte from VERA's video memory
; note: inefficient when reading multiple sequential bytes!
%asm {{
pha
lda cx16.VERA_CTRL
ora #1
sta cx16.VERA_CTRL
pla
stz cx16.VERA_CTRL
and #1
sta cx16.VERA_ADDR_H
sty cx16.VERA_ADDR_M
stx cx16.VERA_ADDR_L
lda cx16.VERA_DATA1
lda cx16.VERA_DATA0
rts
}}
}

View File

@ -1,6 +1,7 @@
TODO
====
- integrate MCIOUT into diskio.f_write()
- revisit the seek example to see if write-seeking now works?
- remove unused interned strings in the resulting code (for example from removed if/else blocks)
- [on branch: shortcircuit] investigate McCarthy evaluation again? this may also reduce code size perhaps for things like if a>4 or a<2 ....

View File

@ -6,6 +6,7 @@
; "unlimited sprites / bobs" demo effect.
; Note that everything is prog8, no inline assembly used/required.
; Note2: these aren't actual sprites, it's a bitmap backbuffer display trick.
; TODO don't add bobs in pairs of 2 make them appear individually
main {
sub start() {