home *** CD-ROM | disk | FTP | other *** search
/ Set of Apple II Hard Drive Images / eric.hdv / SOURCE / JOYTEST.SRC.txt < prev    next >
Text File  |  2020-08-13  |  4KB  |  191 lines

  1. ;
  2. ; JOYCTRL - JOYSTICK MIDI CONTROLLERS WITH MIDI THRU
  3. ;                  NOTE: USES 65C02 INSTRUCTIONS!!!
  4. ;
  5. XTOUT    EQU $C064
  6. YTOUT    EQU $C065
  7. PTRIG    EQU $C070
  8. ;
  9. QHEAD    EQU $06
  10. QTAIL    EQU $08
  11. ;
  12.          ORG $6000
  13. ;
  14.          JMP STARTPGM
  15. ;
  16. ; PUBLIC VARIABLES:
  17. ;
  18. XUPDBYTE DFB $02   ;WHICH BYTE OF THE MESSAGE TO UPDATE (1 OR 2)
  19. XMSG0    DFB $E0   ;STATUS BYTE OF MESSAGE FOR X AXIS
  20. XMSG1    DFB $00   ;DATABYTE 1
  21. XMSG2    DFB $00   ;DATABYTE 2
  22. ;
  23. YUPDBYTE DFB $02
  24. YMSG0    DFB $B0
  25. YMSG1    DFB $01   ;MODULATION
  26. YMSG2    DFB $00
  27. ;
  28. KEYDOWN  DFB $00
  29. PB0DOWN  DFB $00
  30. PB1DOWN  DFB $00
  31. ;
  32. BUFFER   DFB $00,$20
  33. ;
  34. ;PRIVATE VARIABLES
  35. ;
  36. ANOMSG0  DFB $B0
  37. ANOMSG1  DFB 123
  38. ANOMSG2  DFB $00
  39. ;
  40. JOYX     DFB $00
  41. JOYY     DFB $00
  42. JOYXPREV DFB $00
  43. JOYYPREV DFB $00
  44. JOYXPRV2 DFB $00
  45. JOYYPRV2 DFB $00
  46. ;
  47. STARTPGM LDA #$13            ;INITIALIZE MIDI INTERFACE
  48.          STA $C0A8
  49.          LDA #$11
  50.          STA $C0A8
  51.          LDA #$0             ;INITIALIZE VARIABLES
  52.          STA KEYDOWN
  53.          STA PB0DOWN
  54.          STA PB1DOWN
  55.          LDA BUFFER
  56.          STA QHEAD
  57.          STA QTAIL
  58.          LDA BUFFER+1
  59.          STA QHEAD+1
  60.          STA QTAIL+1
  61. MAINLOOP LDX #$00
  62.          LDY #$00
  63.          LDA #$80
  64.          BIT PTRIG
  65. JOY1     BIT XTOUT
  66.          BPL JOY2
  67.          INX
  68.          BNE JOY3
  69. JOY2     NOP
  70.          NOP
  71. JOY3     BIT YTOUT
  72.          BPL JOY4
  73.          INY
  74.          BNE JOY5
  75. JOY4     NOP
  76.          NOP
  77. JOY5     SEC
  78.          SBC #$01
  79.          BCS JOY1
  80.          LDA XTABLE,X
  81.          STA JOYX
  82.          LDA YTABLE,Y
  83.          STA JOYY
  84. ;
  85. CHKPDL0C LDA JOYX
  86.          CMP JOYXPREV        ;DID PADDLE X CHANGE
  87.          BEQ CHKM2J
  88.          CMP JOYXPRV2        ;CHK PREVIOUS 2 VALUES OF PDLX
  89.          BEQ CHKM2J
  90.          BNE STPRVX
  91. CHKM2J   JMP CHKPDL1C
  92. STPRVX   LDY JOYXPREV
  93.          STY JOYXPRV2
  94.          STA JOYXPREV
  95. ;
  96.          LDY XUPDBYTE        ;STORE PADDLE VALUE IN MESSAGE
  97.          STA XMSG0,Y
  98. ;
  99. SEND1    LDA XMSG0
  100.          JSR XMITBYTE
  101.          LDA XMSG1
  102.          JSR XMITBYTE
  103.          LDA XMSG2
  104.          JSR XMITBYTE
  105. ;
  106. CHKPDL1C LDA JOYY
  107.          CMP JOYYPREV        ;DID PADDLE Y CHANGE
  108.          BEQ JMPBACKJ
  109.          CMP JOYYPRV2        ;CHK PREVIOUS 2 VALUES OF PDLY
  110.          BEQ JMPBACKJ
  111.          BNE STPRVY
  112. JMPBACKJ JMP JMPBACK
  113. STPRVY   LDY JOYYPREV
  114.          STY JOYYPRV2
  115.          STA JOYYPREV
  116. ;
  117.          LDY YUPDBYTE        ;STORE PADDLE VALUE IN MESSAGE
  118.          STA YMSG0,Y
  119. ;
  120.          LDA YMSG0
  121.          JSR XMITBYTE
  122.          LDA YMSG1
  123.          JSR XMITBYTE
  124.          LDA YMSG2
  125.          JSR XMITBYTE
  126. ;
  127. JMPBACK  LDA $C061
  128.          BMI PB0
  129.          LDA $C062
  130.          BMI PB1
  131.          LDA $C000
  132.          BMI KEY
  133.          JMP MAINLOOP
  134. ;
  135. PB0      LDA #$01
  136.          STA PB0DOWN
  137.          JSR ALLOFF
  138. WAITUP0  LDA $C061
  139.          BMI WAITUP0
  140.          JMP MAINLOOP
  141. ;
  142. PB1      LDA #$01
  143.          STA PB1DOWN
  144.          JSR ALLOFF
  145. WAITUP1  LDA $C062
  146.          BMI WAITUP1
  147.          JMP MAINLOOP
  148. ;
  149. KEY      STA KEYDOWN
  150.          LDA $C010
  151.          RTS
  152. ;
  153. ALLOFF   LDA ANOMSG0
  154.          STA $C0A9
  155. WA1      LDA $C0A8
  156.          AND #$02
  157.          BEQ WA1
  158.          LDA ANOMSG1
  159.          STA $C0A9
  160. WA2      LDA $C0A8
  161.          AND #$02
  162.          BEQ WA2
  163.          LDA ANOMSG2
  164.          STA $C0A9
  165. WA3      LDA $C0A8
  166.          AND #$02
  167.          BEQ WA3
  168.          RTS
  169. ;
  170. XMITBYTE STA $C0A9
  171. WTD1A    LDA $C0A8
  172.          AND #$02
  173.          BEQ WTD1A
  174.          RTS
  175. ;
  176. XTABLE   DFB 10,10,12,12,14,14,16,16,18,18,20,20
  177.          DFB 22,22,24,24,26,26,28,28,30,30,32,32,34,34,36,36,38,38,40,40
  178.          DFB 42,42,44,44,46,46,48,48,50,50,52,52,54,54,56,56,58,58,60,60
  179.          DFB 62,62,64,64,68,68,70,70,72,72,74,74,76,76,80,80,82,82,84,84
  180.          DFB 86,86,88,88,90,90,92,92,94,94,96,96,98,98,100,100,102,102,104,104
  181.          DFB 106,106,108,108,110,110,112,112,114,114,116,116,118,118,120,120
  182.          DFB 122,122,124,124,126,126,126,126,126,126,126,126,126,126,126,126
  183. YTABLE   DFB 126,126,124,124,122,122
  184.          DFB 120,120,118,118,116,116,114,114,112,112,110,110,108,108,106,106
  185.          DFB 104,104,102,102,100,100,98,98,96,96,94,94,92,90,90,88,88,86,86
  186.          DFB 84,84,82,82,80,80,78,78,76,76,74,74,72,72,70,70,68,68,64,64,62,62
  187.          DFB 60,60,58,58,56,56,54,54,52,52,50,50,48,48,46,46,44,44,42,42,40,40
  188.          DFB 38,38,36,36,34,34,32,32,30,30,28,28,26,26,24,24,22,22,20,20
  189.          DFB 18,18,16,16,14,14,12,12,10,10,8,8,6,6,4,4,2,2,0,0
  190. ;
  191.