mirror of
https://codeberg.org/hkzlab/TK2000_floppicator.git
synced 2025-12-26 17:42:31 +11:00
85 lines
1.2 KiB
ArmAsm
85 lines
1.2 KiB
ArmAsm
.rtmodel version,"1"
|
|
.rtmodel core,"6502"
|
|
|
|
.extern _Vfp
|
|
.extern _Vsp
|
|
.extern _Zp
|
|
|
|
K_NONE: .equ 0
|
|
K_UP .equ 1
|
|
K_DOWN .equ 2
|
|
K_LEFT .equ 3
|
|
K_RIGHT .equ 4
|
|
K_CTRL_R .equ 5
|
|
K_CTRL_S .equ 6
|
|
K_CTRL_L .equ 7
|
|
|
|
|
|
__internal_read_kb:
|
|
IO_DATAOUT$:.equ 0xC000
|
|
IO_DATAIN$: .equ 0xC010
|
|
IO_KB_CTRL_LOW$: .equ 0xC05E
|
|
IO_KB_CTRL_HI$: .equ 0xC05F
|
|
|
|
lda IO_KB_CTRL_HI$
|
|
lda IO_DATAIN$
|
|
ror a
|
|
bcc NoCtrl$
|
|
lda #0x04
|
|
sta IO_DATAOUT$
|
|
lda IO_DATAIN$
|
|
ror a
|
|
ror a
|
|
ror a
|
|
lda #K_CTRL_R
|
|
bcs Return$
|
|
lda #0x02
|
|
sta IO_DATAOUT$
|
|
lda IO_DATAIN$
|
|
ror a
|
|
ror a
|
|
ror a
|
|
ror a
|
|
ror a
|
|
lda #K_CTRL_S
|
|
bcs Return$
|
|
lda #0x40
|
|
sta IO_DATAOUT$
|
|
lda IO_DATAIN$
|
|
ror a
|
|
ror a
|
|
ror a
|
|
ror a
|
|
ror a
|
|
lda #K_CTRL_L
|
|
bcs Return$
|
|
NoCtrl$:
|
|
lda IO_KB_CTRL_LOW$
|
|
ldy #3
|
|
NextKey$: lda _rkb_key_inp,y
|
|
sta IO_DATAOUT$
|
|
lda IO_DATAIN$
|
|
ror a
|
|
lda _rkb_key_ret,y
|
|
bcs Return$
|
|
dey
|
|
bpl NextKey$
|
|
|
|
lda #K_NONE
|
|
Return$:
|
|
rts
|
|
|
|
_rkb_key_ret:
|
|
.byte K_LEFT
|
|
.byte K_RIGHT
|
|
.byte K_DOWN
|
|
.byte K_UP
|
|
|
|
_rkb_key_inp:
|
|
.byte 0x08
|
|
.byte 0x10
|
|
.byte 0x20
|
|
.byte 0x40
|
|
|
|
;;; Declaration of public symbols
|
|
.public __internal_read_kb
|