diff --git a/c64/kernal/f6ed.stop.s b/c64/kernal/f6ed.stop.s index 980bd9bf..fd0ce804 100644 --- a/c64/kernal/f6ed.stop.s +++ b/c64/kernal/f6ed.stop.s @@ -14,8 +14,7 @@ stop: ;; BASIC checks carry flag to indicate STOP or not lda STKEY - and #$80 - beq stop_pressed + bpl stop_pressed ;; By trial and error, we know that Z + C = BREAK ;; and that neither should be set otherwise diff --git a/c64/kernal/scnkey.s b/c64/kernal/scnkey.s index f5dd30cb..d5a6bb1b 100644 --- a/c64/kernal/scnkey.s +++ b/c64/kernal/scnkey.s @@ -204,12 +204,16 @@ ReturnNoKeys: NoActivityDetected: + ;; Cancel STKEY status + lda #$FF + sta STKEY ; XXX this variable should be set by UDTIM + ;; So cancel all bucky keys lda key_bucky_state sta key_last_bucky_state lda #$00 sta key_bucky_state - + jmp ReturnNoKeys ;; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ @@ -334,7 +338,7 @@ next_row: ;; so that RUN/STOP etc can be checked easily ;; (Compute's Mapping the 64, p27) lda ScanResult+0 - sta STKEY + sta STKEY ; XXX this variable should be set by UDTIM ;; Store de-bounce data for bucky keys ;; (Compute's Mapping the 64, p58-59)