;Joystick Assembly Language Module for C64 JYSTKS EQU $04 ;Number of Joysticks ;Joystick Bit Masks JOYUP EQU $01 ;Bit 0 - Up JOYDN EQU $02 ;Bit 1 - Down JOYLF EQU $04 ;Bit 2 - Left JOYRT EQU $08 ;Bit 3 - Right JOYB0 EQU $10 ;Bit 4 - Button ;Read Joystick JOYSTK: CMP #JYSTKS ;If Invalid Joystick# BCS JOYSTZ ; Return Error TAX ;Copy Joystick # to X LDA $0284,X ;Read Trigger Control Register ROR ;Move Bit 0 into Carry LDA $DC00,X ;Read Joystick Shadow Register EOR #$FF ;Invert and AND #$0F ;Mask Bits BCS JOYSTX ;If Trigger Pressed ORA #$10 ; Set Bit 4 HOYSTX: RTS JOYSTZ: LDA #$FF ;Return Error RTS