;Joystick Assembly Language Library for Oric-1
;Untested

JYSTKS  EQU $02     ;Number of Joysticks

;Joystick Bit Masks
JOYUP   EQU $10     ;Bit 4 - Up    
JOYDN   EQU $08     ;Bit 3 - Down  
JOYLF   EQU $01     ;Bit 0 - Left  
JOYRT   EQU $02     ;Bit 1 - Right 
JOYB0   EQU $20     ;Bit 5 - Button

;Read Joystick (ALTAI)
;http://wiki.defence-force.org/doku.php?id=oric:hardware:altai_drivers
JOYSTK: CMP #JYSTKS     ;If Joystick# >= Maximum
        BCS JOYSTZ      ;  Return Error
        TAX             ;Copy Joystick# to X 
        LDY JOYSTT,X    ;Load Y from Table
        LDA #%11000000
        STA $0303       ;Set Data Direction Register A
        STY $0301       ;Select Joystick
        LDA $0301       ;Read Joystick
        LDY #%11111111
        STY $0303       ;Restore Data Direction Register A
        AND #%00111111  ;Mask Bits
        EOR #%00111111  ;and Invert Them
        RTS
JOYSTZ: LDA #$FF        ;Return Error
        RTS
JOYSTT: DC #%10000000,#%01000000

