various keyboard related fixes

This commit is contained in:
FeralChild64 committed 2020-12-04 01:07:18 +01:00
1 parent c4ed858e5f
commit 4a84316ecd
8 files changed
+29 -12

No files matched your search

+1
View File
@@ -386,6 +386,7 @@ Not all of them - only these we want to have implemented.
| `$EA31` | default IRQ | PARTIAL | |
| `$EA7E` | ack CIA1 + below | DONE | |
| `$EA81` | ret from IRQ/NMI | DONE | |
| `$EB48` | set keyboard mapping table | DONE | |
| `$F142` | get key from buffer | DONE | |
| `$F3F6` | (unknown) | NOT DONE | |
| `$F646` | IEC close | NOT DONE | |
+5
View File
@@ -7,6 +7,11 @@
cmd_rem:
lda LSTX
jsr print_hex_byte
jmp cmd_rem
; XXX do we need these PHA's?
pha
-1
View File
@@ -11,7 +11,6 @@
;; #ALIAS# scnkey_buffer_full = KERNAL_0.scnkey_buffer_full
;; #ALIAS# scnkey_toggle_if_needed = KERNAL_0.scnkey_toggle_if_needed
;; #ALIAS# kb_matrix_bucky_shflag = KERNAL_0.kb_matrix_bucky_shflag
;; #ALIAS# kb_matrix_alwaysrepeat = KERNAL_0.kb_matrix_alwaysrepeat
;; #ALIAS# __kb_matrix_alwaysrepeat_end = KERNAL_0.__kb_matrix_alwaysrepeat_end
+2
View File
@@ -0,0 +1,2 @@
This routine is pointed by a vector - it has to be available at the same location as in the original ROM,
otherwise programs frozem with (for example) Action Replay might crash after loading.
+1 -5
View File
@@ -61,11 +61,7 @@ kb_matrix_bucky_shflag: ; mask to be ORed to SHFLAG to mark key status
!byte KEY_FLAG_SHIFT
!byte KEY_FLAG_VENDOR
!byte KEY_FLAG_CTRL
!ifdef CONFIG_MB_M65 {
!byte KEY_FLAG_ALT
!byte KEY_FLAG_NO_SCRL
!byte KEY_FLAG_CAPSL
} else ifdef CONFIG_KEYBOARD_C128 {
!ifdef CONFIG_KEYBOARD_C128 {
!byte KEY_FLAG_ALT
!byte KEY_FLAG_NO_SCRL
}
@@ -0,0 +1,14 @@
;; #LAYOUT# M65 KERNAL_C #TAKE
;; #LAYOUT# * * #IGNORE
kb_matrix_bucky_shflag: ; mask to be ORed to SHFLAG to mark key status
!byte KEY_FLAG_SHIFT
!byte KEY_FLAG_SHIFT
!byte KEY_FLAG_CTRL
!byte KEY_FLAG_VENDOR
!byte KEY_FLAG_ALT
!byte KEY_FLAG_NO_SCRL
!byte KEY_FLAG_CAPSL
+6 -6
View File
@@ -169,11 +169,11 @@ m65_scnkey_next_1:
; No new key - check if the last one is still pressed
ldy LSTX
cmp M65_KB_PRESSED+0
cpy M65_KB_PRESSED+0
beq m65_scnkey_got_key_skip_cmp
cmp M65_KB_PRESSED+1
cpy M65_KB_PRESSED+1
beq m65_scnkey_got_key_skip_cmp
cmp M65_KB_PRESSED+2
cpy M65_KB_PRESSED+2
beq m65_scnkey_got_key_skip_cmp
; Nope, previous key is not pressed
@@ -331,11 +331,11 @@ m65_scnkey_compare_with_old:
; Compare key index with the ones from previous scan
cmp M65_KB_PRESSED+0
cmp M65_KB_PRESSED_OLD+0
beq @1
cmp M65_KB_PRESSED+1
cmp M65_KB_PRESSED_OLD+1
beq @1
cmp M65_KB_PRESSED+2
cmp M65_KB_PRESSED_OLD+2
@1:
rts