From faf7547e74ba4b5f9d26578f8d84f6b1f4d7e58d Mon Sep 17 00:00:00 2001 From: Paul Gardner-Stephen Date: Wed, 24 Apr 2019 07:21:41 +0930 Subject: [PATCH] count key presses from $00, not from $FF --- c64/kernal/scan_keyboard.s | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/c64/kernal/scan_keyboard.s b/c64/kernal/scan_keyboard.s index ae6ab759..bb6f70bc 100644 --- a/c64/kernal/scan_keyboard.s +++ b/c64/kernal/scan_keyboard.s @@ -61,7 +61,7 @@ scan_keyboard: - lda #$ff + lda #$00 sta BufferQuantity ;; Decrement key repeat timeout if non-zero @@ -204,6 +204,12 @@ NoActivityDetected: ;; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ;; // Configure Data Direction Registers Main: + ;; Begin with no key events + lda #$ff + sta BufferNew+0 + sta BufferNew+1 + sta BufferNew+2 + ldx #$ff stx $dc02 ;// Port A - Output ldy #$00 @@ -385,6 +391,7 @@ ProcessPressedKeys: ;; Check if the currently pressed key is continuing to be held down lda BufferNew,x + sta $0400,x cmp #$ff beq ConsiderNextKey cmp BufferOld @@ -399,14 +406,13 @@ RecordKeypress: ;; // New Key Detected ldy BufferQuantity - cpy #$ff - beq NothingInBQ - cpy #MaxKeyRollover-1 + cpy #MaxKeyRollover bcs TooManyNewKeys -NothingInBQ: +AcceptKeyEvent: + sta Buffer,y + sta $0428,y iny sty BufferQuantity - sta Buffer,y ConsiderNextKey: dex @@ -462,7 +468,4 @@ KeyCanRepeat: KeyRepeatWait: jmp ConsiderNextKey -BufferEmpty: ;; // No new Alphanumeric keys to handle. - lda #$ff -