mirror of
https://github.com/cc65/cc65.git
synced 2024-07-09 01:28:58 +00:00
Adjusted to recent driver interface change.
Please note that this change is absolutely untested!
This commit is contained in:
parent
b5a4e5667a
commit
a817da7c6b
@ -30,17 +30,6 @@
|
|||||||
|
|
||||||
.addr $0000
|
.addr $0000
|
||||||
|
|
||||||
; Button state masks (8 values)
|
|
||||||
|
|
||||||
.byte $02 ; JOY_UP "8"
|
|
||||||
.byte $10 ; JOY_DOWN "2"
|
|
||||||
.byte $20 ; JOY_LEFT "4"
|
|
||||||
.byte $08 ; JOY_RIGHT "6"
|
|
||||||
.byte $04 ; JOY_FIRE "5" ENTER
|
|
||||||
.byte $00 ; JOY_FIRE2 unavailable
|
|
||||||
.byte $00 ; Future expansion
|
|
||||||
.byte $00 ; Future expansion
|
|
||||||
|
|
||||||
; Jump table.
|
; Jump table.
|
||||||
|
|
||||||
.addr INSTALL
|
.addr INSTALL
|
||||||
@ -58,6 +47,49 @@ JOY_COUNT = 1 ; Number of joysticks we support
|
|||||||
; ------------------------------------------------------------------------
|
; ------------------------------------------------------------------------
|
||||||
; Data.
|
; Data.
|
||||||
|
|
||||||
|
.rodata
|
||||||
|
|
||||||
|
; <U>p '8' key
|
||||||
|
; <D>own '2' key
|
||||||
|
; <L>eft '4' key
|
||||||
|
; <R>ight '6' key
|
||||||
|
; <B>utton '5' or ENTER key
|
||||||
|
|
||||||
|
masktable:
|
||||||
|
; Input: LDRBU
|
||||||
|
; Output: BRLDU
|
||||||
|
.byte %00000000 ; $00
|
||||||
|
.byte %00000001 ; $01
|
||||||
|
.byte %00010000 ; $02
|
||||||
|
.byte %00010001 ; $03
|
||||||
|
.byte %00001000 ; $04
|
||||||
|
.byte %00001001 ; $05
|
||||||
|
.byte %00011000 ; $06
|
||||||
|
.byte %00011001 ; $07
|
||||||
|
.byte %00000010 ; $08
|
||||||
|
.byte %00000011 ; $09
|
||||||
|
.byte %00010010 ; $0A
|
||||||
|
.byte %00010011 ; $0B
|
||||||
|
.byte %00001010 ; $0C
|
||||||
|
.byte %00001011 ; $0D
|
||||||
|
.byte %00011010 ; $0E
|
||||||
|
.byte %00011011 ; $0F
|
||||||
|
.byte %00000100 ; $10
|
||||||
|
.byte %00000101 ; $11
|
||||||
|
.byte %00010100 ; $12
|
||||||
|
.byte %00010101 ; $13
|
||||||
|
.byte %00001100 ; $14
|
||||||
|
.byte %00001101 ; $15
|
||||||
|
.byte %00011100 ; $16
|
||||||
|
.byte %00011101 ; $17
|
||||||
|
.byte %00000110 ; $18
|
||||||
|
.byte %00000111 ; $19
|
||||||
|
.byte %00010110 ; $1A
|
||||||
|
.byte %00010111 ; $1B
|
||||||
|
.byte %00001110 ; $1C
|
||||||
|
.byte %00001111 ; $1D
|
||||||
|
.byte %00011110 ; $1E
|
||||||
|
.byte %00011111 ; $1F
|
||||||
|
|
||||||
.code
|
.code
|
||||||
|
|
||||||
@ -100,21 +132,23 @@ COUNT: lda #JOY_COUNT
|
|||||||
;
|
;
|
||||||
|
|
||||||
READ: tax ; Clear high byte
|
READ: tax ; Clear high byte
|
||||||
lda #$FD
|
lda #$FD ; For ENTER and '6'
|
||||||
ldy #$FE
|
ldy #$FE ; For '8', '5', '2', '4'
|
||||||
sei
|
sei
|
||||||
sta VIC_KBD_128
|
sta VIC_KBD_128
|
||||||
lda CIA1_PRB
|
lda CIA1_PRB
|
||||||
and #%00110000
|
and #%00110000
|
||||||
eor #%00110000
|
eor #%00110000
|
||||||
lsr
|
lsr ; Map ENTER ...
|
||||||
lsr
|
lsr ; ... onto '5'
|
||||||
sty VIC_KBD_128
|
sty VIC_KBD_128
|
||||||
eor CIA1_PRB
|
eor CIA1_PRB
|
||||||
iny
|
iny
|
||||||
sty VIC_KBD_128 ; Reset to $FF
|
sty VIC_KBD_128 ; Reset to $FF
|
||||||
cli
|
cli
|
||||||
and #%11111110
|
and #%00111110
|
||||||
eor #%11111110
|
eor #%00111110
|
||||||
|
lsr
|
||||||
|
tay
|
||||||
|
lda masktable,y ; Convert LDRBU to BRLDU
|
||||||
rts
|
rts
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user