home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Set of Apple II Hard Drive Images
/
pdoseric.hdv
/
SOURCE
/
JOYTEST.BA0.txt
< prev
next >
Wrap
Text File
|
2020-08-13
|
3KB
|
160 lines
;
; JOYCTRL - JOYSTICK MIDI CONTROLLERS WITH MIDI THRU
; NOTE: USES 65C02 INSTRUCTIONS!!!
;
XTOUT EQU $C064
YTOUT EQU $C065
PTRIG EQU $C070
;
QHEAD EQU $06
QTAIL EQU $08
;
ORG $6000
;
JMP STARTPGM
;
; PUBLIC VARIABLES:
;
XUPDBYTE DFB $02 ;WHICH BYTE OF THE MESSAGE TO UPDATE (1 OR 2)
XMSG0 DFB $E0 ;STATUS BYTE OF MESSAGE FOR X AXIS
XMSG1 DFB $00 ;DATABYTE 1
XMSG2 DFB $00 ;DATABYTE 2
;
YUPDBYTE DFB $02
YMSG0 DFB $B0
YMSG1 DFB $01 ;MODULATION
YMSG2 DFB $00
;
KEYDOWN DFB $00
PB0DOWN DFB $00
PB1DOWN DFB $00
;
BUFFER DFB $00,$20
;
;PRIVATE VARIABLES
;
ANOMSG0 DFB $B0
ANOMSG1 DFB 123
ANOMSG2 DFB $00
;
JOYX DFB $00
JOYY DFB $00
JOYXPREV DFB $00
JOYYPREV DFB $00
JOYXPRV2 DFB $00
JOYYPRV2 DFB $00
;
STARTPGM LDA #$13 ;INITIALIZE MIDI INTERFACE
STA $C0A8
LDA #$11
STA $C0A8
LDA #$0 ;INITIALIZE VARIABLES
STA KEYDOWN
STA PB0DOWN
STA PB1DOWN
LDA BUFFER
STA QHEAD
STA QTAIL
LDA BUFFER+1
STA QHEAD+1
STA QTAIL+1
JMP MAINLOOP
;
CHKMIDI LDA $C0A8 ;CHK MIDI
AND #$01 ;DID WE GET MIDI DATA
BEQ WOUT3 ;NO - CONTINUE PROCESSING
LDA $C0A9 ;YES- GET MIDI BYTE
CMP #$F8
BCS CHKMIDI ;DON'T STORE REALTIME MSGS
PHA
WTD0 LDA $C0A8
AND #$02
BEQ WTD0
PLA
STA $C0A9
JMP CHKMIDI
WOUT3 RTS
;
; LDA $C0A8
; AND #$01
; BEQ WTD1
; LDA $C0A9
; CMP #$F8
; BCS WTD1
; DFB $92
; DFB QHEAD
; INC QHEAD
; JMP WTD1
;WOUT1 LDA QTAIL
; CMP QHEAD
; BEQ WOUT2
; DFB $B2
; DFB QTAIL
; STA $C0A9
; INC QTAIL
; JMP WTD1
;WOUT2 JMP CHKMIDI
;WOUT3 RTS
;
MAINLOOP JSR CHKMIDI
JOY0 LDX #$00
LDY #$00
LDA #$80
BIT PTRIG
JOY1 BIT XTOUT
BPL JOY2
INX
BNE JOY3
JOY2 NOP
NOP
JOY3 BIT YTOUT
BPL JOY4
INY
BNE JOY5
JOY4 NOP
NOP
JOY5 PHA
;
CHKMID1 LDA $C0A8 ;CHK MIDI
AND #$01 ;DID WE GET MIDI DATA
BEQ WOUT3J ;NO - CONTINUE PROCESSING
LDA $C0A9 ;YES- GET MIDI BYTE
CMP #$F8
BCS CHKMID1 ;DON'T STORE REALTIME MSGS
PHA
WTD1J LDA $C0A8
AND #$02
BEQ WTD1J
PLA
STA $C0A9
JMP CHKMID1
WOUT3J PLA
;
SEC
SBC #$01
BCS JOY1
LDA XTABLE,X
STA JOYX
LDA YTABLE,Y
STA JOYY
;
JSR CHKMIDI
;
CHKPDL0C LDA JOYX
CMP JOYXPREV ;DID PADDLE X CHANGE
BEQ CHKM2J
CMP JOYXPRV2 ;CHK PREVIOUS 2 VALUES OF PDLX
BEQ CHKM2J
BNE STPRVX
CHKM2J JMP CHKM2
STPRVX LDY JOYXPREV
STY JOYXPRV2
STA JOYXPREV
;
LDY XUPDBYTE ;STORE PADDLE VALUE IN MESSAGE
STA XMSG0,Y
;
CHKM1A JSR CHKMIDI
;
CHN JOYTEST.SC1