; Ullrich von Bassewitz, 2003-02-16
;
- .include "zeropage.inc"
+ .include "zeropage.inc"
.include "../extzp.inc"
- .include "joy-kernel.inc"
+ .include "joy-kernel.inc"
.include "joy-error.inc"
.include "cbm510.inc"
; Driver signature
- .byte $6A, $6F, $79 ; "joy"
+ .byte $6A, $6F, $79 ; "joy"
.byte JOY_API_VERSION ; Driver API version number
; Button state masks (8 values)
INSTALL:
lda #<JOY_ERR_OK
ldx #>JOY_ERR_OK
-; rts ; Run into UNINSTALL instead
+; rts ; Run into UNINSTALL instead
; ------------------------------------------------------------------------
; UNINSTALL routine. Is called before the driver is removed from memory.
READ: ldx #$0F ; Switch to the system bank
stx IndReg
- tax ; Save joystick number
+ tax ; Save joystick number
; Get the direction bits
- ldy #CIA::PRB
- lda (cia2),y ; Read joystick inputs
- sta tmp1
+ ldy #CIA::PRB
+ lda (cia2),y ; Read joystick inputs
+ sta tmp1
; Get the fire bits
ldy #CIA::PRA
- lda (cia2),y
+ lda (cia2),y
; Make the result value
- cpx #$00 ; Joystick 0?
- bne @L1 ; Jump if no
+ cpx #$00 ; Joystick 0?
+ bne @L1 ; Jump if no
; Joystick 1, fire is in bit 6, direction in bit 0-3
- asl a
- jmp @L2
+ asl a
+ jmp @L2
; Joystick 2, fire is in bit 7, direction in bit 5-7
-@L1: ldx #$00 ; High byte of return value
- lsr tmp1
- lsr tmp1
- lsr tmp1
- lsr tmp1
+@L1: ldx #$00 ; High byte of return value
+ lsr tmp1
+ lsr tmp1
+ lsr tmp1
+ lsr tmp1
; Mask the relavant bits, get the fire bit
-@L2: asl a ; Fire bit into carry
- lda tmp1
- and #$0F
- bcc @L3
- ora #$10
-@L3: eor #$1F ; All bits are inverted
+@L2: asl a ; Fire bit into carry
+ lda tmp1
+ and #$0F
+ bcc @L3
+ ora #$10
+@L3: eor #$1F ; All bits are inverted
; Switch back to the execution bank and return the joystick mask in a/x