1
0
mirror of https://github.com/RevCurtisP/C02.git synced 2024-07-05 05:28:54 +00:00
C02/include/x16/joystk.a02
2019-11-20 10:52:41 -05:00

34 lines
1.0 KiB
Plaintext

;Joystick Constants and Functions
;for Commander X16 Computer
JYSTKS EQU 2 ;Number of Joysticks
.JYDATA EQU $02BC ;Joystick 0 Data
.GETJOY EQU $FF06 ;Kernal GETJOY Routine
;Joystick Bit Masks
JOYUP EQU $08 ;Up
JOYDN EQU $04 ;Down
JOYLF EQU $02 ;Left
JOYRT EQU $01 ;Right
JOYB0 EQU $80 ;Button
;Read Joystick
JOYSTK: CMP #JYSTKS ;If Invalid Joystick Number
BCS JOYSTE ; Return ERROR
STA TEMP0 ;Save Joystick Number
JSR $FF06 ;Call Kernal GETJOY Routine
LDA TEMP0 ;Retrieve Joystick Number
ASL ;Multiply it by 3
ADC TEMP0 ;(Assumes Number<128)
TAX ;and Copy to X-Register
LDA $02BE,X ;If Controller Not Present
BNE JOYSTE ; Return ERROR
LDA $02BC,X ;Read Controller Status
;EOR #$FF ;Invert Bits
AND #$CF ;and Mask off Select/Start
RTS
JOYSTE: LDA #255 ;Return Error Code
RTS