various keyboard related fixes
This commit is contained in:
1 parent
c4ed858e5f
commit
4a84316ecd
8 files changed
+29
-12
No files matched your search
@@ -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 | |
|
||||
|
||||
@@ -7,6 +7,11 @@
|
||||
|
||||
cmd_rem:
|
||||
|
||||
lda LSTX
|
||||
jsr print_hex_byte
|
||||
jmp cmd_rem
|
||||
|
||||
|
||||
; XXX do we need these PHA's?
|
||||
|
||||
pha
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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.
|
||||
File renamed without changes.
@@ -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
|
||||
@@ -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
|
||||
|
||||
|
||||
Reference in new issue
Block a user