; Driver signature
.byte $6A, $6F, $79 ; "joy"
- .byte $00 ; Driver API version number
+ .byte JOY_API_VERSION ; Driver API version number
; Button state masks (8 values)
.byte $04 ; JOY_LEFT
.byte $08 ; JOY_RIGHT
.byte $10 ; JOY_FIRE
- .byte $00 ; Future expansion
+ .byte $00 ; JOY_FIRE2 unavailable
.byte $00 ; Future expansion
.byte $00 ; Future expansion
; Jump table.
- .word INSTALL
- .word DEINSTALL
- .word COUNT
- .word READ
+ .addr INSTALL
+ .addr UNINSTALL
+ .addr COUNT
+ .addr READ
+ .addr 0 ; IRQ entry unused
; ------------------------------------------------------------------------
; Constants
INSTALL:
lda #<JOY_ERR_OK
ldx #>JOY_ERR_OK
-
-; rts ; Run into DEINSTALL instead
+; rts ; Run into UNINSTALL instead
; ------------------------------------------------------------------------
-; DEINSTALL routine. Is called before the driver is removed from memory.
+; UNINSTALL routine. Is called before the driver is removed from memory.
; Can do cleanup or whatever. Must not return anything.
;
-DEINSTALL:
+UNINSTALL:
rts
; READ: Read a particular joystick passed in A.
;
-READ:
- tax ; Joystick number into X
- bne joy2
+READ: tax ; Joystick number into X
+ bne joy2
- ; Read joystick 1
+; Read joystick 1
-joy1:
- lda #$7F
+joy1: lda #$7F
sei
sta CIA1_PRA
lda CIA1_PRB
eor #$1F
rts
- ; Read joystick 2
+; Read joystick 2
-joy2:
- dex
- bne joy3
+joy2: dex
+ bne joy3
- ; ldx #0
- lda #$E0
- ldy #$FF
+ lda #$E0
+ ldy #$FF
sei
- sta CIA1_DDRA
- lda CIA1_PRA
- sty CIA1_DDRA
+ sta CIA1_DDRA
+ lda CIA1_PRA
+ sty CIA1_DDRA
cli
- and #$1F
- eor #$1F
+ and #$1F
+ eor #$1F
rts
- ; Read joystick 3
+; Read joystick 3
-joy3:
- dex
- bne joy4
+ lda #%10000000 ; cia 2 port B Data-Direction
+ sta CIA2_DDRB ; bit 7: out bit 6-0: in
- lda #%10000000 ; cia 2 port B Data-Direction
- sta $dd03 ; bit 7: out bit 6-0: in
+joy3: dex
+ bne joy4
- lda #$80 ; cia 2 port B read/write
- sta $dd01 ; (output one at PB7)
+ lda #$80 ; cia 2 port B read/write
+ sta CIA2_PRB ; (output one at PB7)
- lda $dd01 ; cia 2 port B read/write
- and #$1f ; get bit 4-0 (PB4-PB0)
- ; ldx #0
+ lda CIA2_PRB ; cia 2 port B read/write
+ and #$1f ; get bit 4-0 (PB4-PB0)
rts
- ; Read joystick 4
-
-joy4:
- lda #%10000000 ; cia 2 port B Data-Direction
- sta $dd03 ; bit 7: out bit 6-0: in
+; Read joystick 4
- lda #$00 ; cia 2 port B read/write
- sta $dd01 ; (output zero at PB7)
+joy4: lda #$00 ; cia 2 port B read/write
+ sta CIA2_PRB ; (output zero at PB7)
- lda $dd01 ; cia 2 port B read/write
- and #$0f ; get bit 3-0 (PB3-PB0)
- sta tmp1 ; joy 4 directions
+ lda CIA2_PRB ; cia 2 port B read/write
+ and #$0f ; get bit 3-0 (PB3-PB0)
+ sta tmp1 ; joy 4 directions
- lda $dd01 ; cia 2 port B read/write
- and #%00100000 ; get bit 5 (PB5)
+ lda CIA2_PRB ; cia 2 port B read/write
+ and #%00100000 ; get bit 5 (PB5)
lsr
- ora tmp1
+ ora tmp1
ldx #0
rts