1
0
mirror of https://github.com/RevCurtisP/C02.git synced 2024-06-08 21:29:30 +00:00
C02/include/vic/joystk.a02
Curtis F Kaylor 35377b5807 Squashed commit of the following:
commit ed00e1d1b5a9783a72dade3f3676b161a9cfe287
Author: Curtis F Kaylor <revcurtis@gmail.com>
Date:   Sun Sep 9 22:20:49 2018 -0400

    Documented joystk, paddle, and lgtpen modules

commit ec0a5ede8d1b043fcf0094ea653255a808dbf8d3
Author: Curtis F Kaylor <revcurtis@gmail.com>
Date:   Sun Sep 9 20:31:11 2018 -0400

    Added joystick, paddle, and lightpen test programs

commit 7b787f432e2f4f7ae5d7f0053ade1d3586a4fad1
Author: Curtis F Kaylor <revcurtis@gmail.com>
Date:   Sun Sep 9 20:30:03 2018 -0400

    Updated Apple II and VIC-20 Batch Files

commit 50568294349d7e3c6b7d0d364aeaece73c9e4ab6
Author: Curtis F Kaylor <revcurtis@gmail.com>
Date:   Sun Sep 9 20:28:09 2018 -0400

    Separated light pen code into separate files

commit d45e59f73d55eef1d30c591d19a043ad79cfd81a
Author: Curtis F Kaylor <revcurtis@gmail.com>
Date:   Sun Sep 9 19:28:56 2018 -0400

    Moved code for paddles into separate include files

commit fc5c5472d758c960332ea14105d5ec4a7c8cbbfb
Author: Curtis F Kaylor <revcurtis@gmail.com>
Date:   Sun Sep 9 16:15:32 2018 -0400

    Added system specific module 'joystk'
2018-09-12 09:54:54 -04:00

36 lines
1.2 KiB
Plaintext

;Joystick Assembly Language Library for VIC-20
JYSTKS EQU $01 ;Number of Joysticks
;Joystick Bit Masks
JOYUP EQU $04 ;Bit 2 - Up
JOYDN EQU $08 ;Bit 3 - Down
JOYLF EQU $10 ;Bit 4 - Left
JOYRT EQU $01 ;Bit 1 - Right
JOYB0 EQU $20 ;Bit 5 - Button
;Read Joystick
JOYSTK: LDX #$FF ;Preset X with 255
ORA #0 ;Check Parameter
BNE JOYSTZ ;If Not Zero, Return Error
TAX ;Set X to 0
LDA $9113 ;Get DDR for Port A Status
PHA ;and Save It
LDA $9122 ;Set DDR for Port B Status
PHA ;amd Save It
STX $9113 ;Set DDR for Port A to All Inputs
STX $9122 ;Set DDR for Port B to All Inputs
LDA $9120 ;Read Port B (Right)
ASL ;Shift Bit 7 into Carry
LDA $9111 ;Read Port A
AND #$3C ;Mask Bits
ADC #0 ;Move Carry into Bit 0
EOR #$3D ;Invert Bits
TAX ;and Save in X Register
PLA ;Restore Port B DDDR
STA $9122
PLA ;Restore Port A DDDR
STA $9113
JOYSTZ: TXA ;Copy Status Back into Accumulator
RTS