Winvice emulator behavior or standard C64 Basic ?
Posted: Fri Feb 13, 2015 11:34 am
If I run this directly from the vice monitor, (g 812) it works as expected : useless screen flashing until any key pressed.
If I run it from BASIC (sys 2066), it returns immediately, without any keys pressed (updates screen only once), until I added the "flush" code (my guess at what the problem was),
I.e. SYS 2066 doesn't work, SYS 2061 does.
; *=$80D / 2061
; jmp r1
; -------- BASIC "flush" code --------
r1
jsr keyscan
bne r1
; ---------------------------------------
; $812 2066
SEI
l1 INC $d021 ; screen bk color
jsr keyscan
beq l1
CLI
RTS
keyscan
LDA #$00
STA $DC00 ; test keyboard for any key pressed
LDA $DC01
CMP #$FF ; no key
rts
If I run it from BASIC (sys 2066), it returns immediately, without any keys pressed (updates screen only once), until I added the "flush" code (my guess at what the problem was),
I.e. SYS 2066 doesn't work, SYS 2061 does.
; *=$80D / 2061
; jmp r1
; -------- BASIC "flush" code --------
r1
jsr keyscan
bne r1
; ---------------------------------------
; $812 2066
SEI
l1 INC $d021 ; screen bk color
jsr keyscan
beq l1
CLI
RTS
keyscan
LDA #$00
STA $DC00 ; test keyboard for any key pressed
LDA $DC01
CMP #$FF ; no key
rts