home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Set of Apple II Hard Drive Images
/
eric.hdv
/
SOURCE
/
JOYTEST.SRC.txt
< prev
next >
Wrap
Text File
|
2020-08-13
|
4KB
|
191 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
MAINLOOP 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 SEC
SBC #$01
BCS JOY1
LDA XTABLE,X
STA JOYX
LDA YTABLE,Y
STA JOYY
;
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 CHKPDL1C
STPRVX LDY JOYXPREV
STY JOYXPRV2
STA JOYXPREV
;
LDY XUPDBYTE ;STORE PADDLE VALUE IN MESSAGE
STA XMSG0,Y
;
SEND1 LDA XMSG0
JSR XMITBYTE
LDA XMSG1
JSR XMITBYTE
LDA XMSG2
JSR XMITBYTE
;
CHKPDL1C LDA JOYY
CMP JOYYPREV ;DID PADDLE Y CHANGE
BEQ JMPBACKJ
CMP JOYYPRV2 ;CHK PREVIOUS 2 VALUES OF PDLY
BEQ JMPBACKJ
BNE STPRVY
JMPBACKJ JMP JMPBACK
STPRVY LDY JOYYPREV
STY JOYYPRV2
STA JOYYPREV
;
LDY YUPDBYTE ;STORE PADDLE VALUE IN MESSAGE
STA YMSG0,Y
;
LDA YMSG0
JSR XMITBYTE
LDA YMSG1
JSR XMITBYTE
LDA YMSG2
JSR XMITBYTE
;
JMPBACK LDA $C061
BMI PB0
LDA $C062
BMI PB1
LDA $C000
BMI KEY
JMP MAINLOOP
;
PB0 LDA #$01
STA PB0DOWN
JSR ALLOFF
WAITUP0 LDA $C061
BMI WAITUP0
JMP MAINLOOP
;
PB1 LDA #$01
STA PB1DOWN
JSR ALLOFF
WAITUP1 LDA $C062
BMI WAITUP1
JMP MAINLOOP
;
KEY STA KEYDOWN
LDA $C010
RTS
;
ALLOFF LDA ANOMSG0
STA $C0A9
WA1 LDA $C0A8
AND #$02
BEQ WA1
LDA ANOMSG1
STA $C0A9
WA2 LDA $C0A8
AND #$02
BEQ WA2
LDA ANOMSG2
STA $C0A9
WA3 LDA $C0A8
AND #$02
BEQ WA3
RTS
;
XMITBYTE STA $C0A9
WTD1A LDA $C0A8
AND #$02
BEQ WTD1A
RTS
;
XTABLE DFB 10,10,12,12,14,14,16,16,18,18,20,20
DFB 22,22,24,24,26,26,28,28,30,30,32,32,34,34,36,36,38,38,40,40
DFB 42,42,44,44,46,46,48,48,50,50,52,52,54,54,56,56,58,58,60,60
DFB 62,62,64,64,68,68,70,70,72,72,74,74,76,76,80,80,82,82,84,84
DFB 86,86,88,88,90,90,92,92,94,94,96,96,98,98,100,100,102,102,104,104
DFB 106,106,108,108,110,110,112,112,114,114,116,116,118,118,120,120
DFB 122,122,124,124,126,126,126,126,126,126,126,126,126,126,126,126
YTABLE DFB 126,126,124,124,122,122
DFB 120,120,118,118,116,116,114,114,112,112,110,110,108,108,106,106
DFB 104,104,102,102,100,100,98,98,96,96,94,94,92,90,90,88,88,86,86
DFB 84,84,82,82,80,80,78,78,76,76,74,74,72,72,70,70,68,68,64,64,62,62
DFB 60,60,58,58,56,56,54,54,52,52,50,50,48,48,46,46,44,44,42,42,40,40
DFB 38,38,36,36,34,34,32,32,30,30,28,28,26,26,24,24,22,22,20,20
DFB 18,18,16,16,14,14,12,12,10,10,8,8,6,6,4,4,2,2,0,0
;