1
0
mirror of https://github.com/cc65/cc65.git synced 2024-06-01 13:41:34 +00:00

kbhit checks KBEDG and getc resets KBEDG

This commit is contained in:
Fabrizio Caruso 2019-10-30 09:14:17 +01:00 committed by greg-king5
parent 43f24afe29
commit 78d660da55
2 changed files with 13 additions and 7 deletions

View File

@ -20,6 +20,7 @@
; So the keyboard returns '1', '2', '3', 'P', 'R', 'F' or '?'.
_cgetc:
lda KBEDG
bne _start
jsr _kbhit ; Check for char available
beq _cgetc
@ -39,19 +40,19 @@ _start:
bit #$08
beq @L4 ; Pause + Opt 2 = Flip
lda #'?' ; All buttons pressed
rts
bra reset_and_exit
@L2:
lda KBSTL ; Pause alone was the last placed button
and #$0c
bne @L1
lda #'P' ; Pause pressed
rts
bra reset_and_exit
@L3:
lda #'R' ; Reset pressed
rts
bra reset_and_exit
@L4:
lda #'F' ; Flip pressed
rts
bra reset_and_exit
@L5:
lda KBEDG ; No Pause pressed
stz KBEDG
@ -61,10 +62,13 @@ _start:
bit #$04
beq @L6
lda #'3' ; opt 1 + opt 2 pressed
rts
bra reset_and_exit
@L6:
lda #'1' ; opt 1 pressed
rts
bra reset_and_exit
@L7:
lda #'2' ; opt 2 pressed
reset_and_exit:
stz KBEDG
rts

View File

@ -29,6 +29,8 @@ KBNPR: .byte 0
.code
_kbhit:
lda KBEDG
bne L1
lda $FCB0 ; Read the Opt buttons
and #$0c
sta KBTMP
@ -49,6 +51,6 @@ _kbhit:
sta KBNPR ; inverted previous ones pressed
stx KBPRV
lda KBEDG
@L1: tax ; No new keys hit
L1: ldx #$00
rts