123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- * GETJOY.S
- * READ JOYSTICK DATA
- *
- * GAME PLAY JOYSTICK ROUTINE
- GETJOY TXA ;STORE X
- PHA
- LDX PLAYER ;USE APPROPRIATE PORT
- GJDOIT JSR GETBUT ;FIND BUTTON STATE
- STA BUTSTATE ;STORE IT
- JSR GETSTICK
- STA NEWDIR
- PLA ;GET X BACK
- TAX
- RTS
- * GET THE BUTTON STATE
- * INPUT: PORT IN X
- * OUTPUT: STATE IN A (0 IF NOT DEPRESSED)
- GETBUT LDA INPT4,X ;GET BUTTON BIT
- AND #$80 ;ISOLATE IT
- EOR #$80 ;INVERT IT
- RTS
- * GET THE STICK STATE
- * INPUT: JOYSTICK PORT IN X
- * OUTPUT: DIRECTION IN A
- * SMASHES: X
- GETSTICK LDA SWCHA ;GET JOYSTICK BITS
- CPX #$00
- BNE GSJMP0
- LSR A ;GET PLAYER 0 JOYSTICK IN LOW BITS
- LSR A
- LSR A
- LSR A
- GSJMP0 AND #$0F ;GET RID OF ANY EXTRA BITS
- TAX
- LDA JOYTAB,X ;LOOK IT UP IN TABLE
- RTS
- * TABLE OF JOYSTICK DIRECTIONS VS BIT READINGS
- JOYTAB DB DCENTER,DCENTER,DCENTER,DCENTER
- DB DCENTER,DDWRIGHT,DUPRIGHT,DRIGHT
- DB DCENTER,DDWLEFT,DUPLEFT,DLEFT
- DB DCENTER,DDOWN,DUP,DCENTER
|