diff --git a/bin/basic_generic.rom b/bin/basic_generic.rom index 6d8d0ed8..1a157f04 100644 Binary files a/bin/basic_generic.rom and b/bin/basic_generic.rom differ diff --git a/bin/basic_generic_crt.rom b/bin/basic_generic_crt.rom index 1a115f89..b2c1ee34 100644 Binary files a/bin/basic_generic_crt.rom and b/bin/basic_generic_crt.rom differ diff --git a/bin/basic_ultimate64.rom b/bin/basic_ultimate64.rom index 029dbe3e..7d7cecb7 100644 Binary files a/bin/basic_ultimate64.rom and b/bin/basic_ultimate64.rom differ diff --git a/bin/extrom_generic_crt.crt b/bin/extrom_generic_crt.crt index a68b68b7..ca10de0d 100644 Binary files a/bin/extrom_generic_crt.crt and b/bin/extrom_generic_crt.crt differ diff --git a/bin/kernal_generic.rom b/bin/kernal_generic.rom index 9d6d01f0..a352f3b1 100644 Binary files a/bin/kernal_generic.rom and b/bin/kernal_generic.rom differ diff --git a/bin/kernal_generic_crt.rom b/bin/kernal_generic_crt.rom index a23ba2c6..ce5757f4 100644 Binary files a/bin/kernal_generic_crt.rom and b/bin/kernal_generic_crt.rom differ diff --git a/bin/kernal_ultimate64.rom b/bin/kernal_ultimate64.rom index 1d5b01dc..5e9e8b6d 100644 Binary files a/bin/kernal_ultimate64.rom and b/bin/kernal_ultimate64.rom differ diff --git a/bin/mega65.rom b/bin/mega65.rom index ddd88d83..1ccebc7f 100644 Binary files a/bin/mega65.rom and b/bin/mega65.rom differ diff --git a/bin/mega65_orfont.rom b/bin/mega65_orfont.rom index 57418010..35f78028 100644 Binary files a/bin/mega65_orfont.rom and b/bin/mega65_orfont.rom differ diff --git a/src/kernal/keyboard_m65/mega65_scnkey.s b/src/kernal/keyboard_m65/mega65_scnkey.s index ec736f47..2666e5cf 100644 --- a/src/kernal/keyboard_m65/mega65_scnkey.s +++ b/src/kernal/keyboard_m65/mega65_scnkey.s @@ -222,12 +222,12 @@ m65_scnkey_loop: jsr m65_scnkey_compare_with_old jsr m65_scnkey_add_if_new_valid - ; If we have more than one key - consider it jam + ; If we have more than one key - consider it a jam lda M65_KB_PRESSED_NEW+1 bpl m65_scnkey_jam - ; If we have exactly one new key - this is our key + ; If we have exactly one new key - this is our key to output ldy M65_KB_PRESSED_NEW+0 bpl m65_scnkey_got_key @@ -236,11 +236,11 @@ m65_scnkey_loop: ldy LSTX cpy M65_KB_PRESSED+0 - beq m65_scnkey_got_key_skip_cmp + beq m65_scnkey_try_repeat cpy M65_KB_PRESSED+1 - beq m65_scnkey_got_key_skip_cmp + beq m65_scnkey_try_repeat cpy M65_KB_PRESSED+2 - beq m65_scnkey_got_key_skip_cmp + beq m65_scnkey_try_repeat ; Nope, previous key is not pressed @@ -303,11 +303,6 @@ m65_scnkey_got_key: ; .Y should now contain the key offset in matrix pointed by cpy LSTX beq m65_scnkey_try_repeat ; branch if the same key as previously - - ; FALLTROUGH - -m65_scnkey_got_key_skip_cmp: - sty LSTX ; Reset key repeat counters @@ -378,7 +373,7 @@ m65_scnkey_no_keys: ; Mark no key press - lda #$48 + lda #$80 sta LSTX rts