.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