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

  1. ;
  2. ; JOYCTRL - JOYSTICK MIDI CONTROLLERS
  3. ;
  4. ; LINKAGE TO MIDIDRVR.OBJ
  5. BYTEOUT  EQU $9005
  6. ;
  7. ;
  8. XTOUT    EQU $C064
  9. YTOUT    EQU $C065
  10. PTRIG    EQU $C070
  11. ;
  12. QHEAD    EQU $06
  13. QTAIL    EQU $08
  14. ;
  15.          ORG $6000
  16. ;
  17.          JMP STARTPGM
  18. ;
  19. ; PUBLIC VARIABLES:
  20. ;
  21. XUPDBYTE DFB $02   ;WHICH BYTE OF THE MESSAGE TO UPDATE (1 OR 2)
  22. XMSG0    DFB $E0   ;STATUS BYTE OF MESSAGE FOR X AXIS
  23. XMSG1    DFB $00   ;DATABYTE 1
  24. XMSG2    DFB $00   ;DATABYTE 2
  25. ;
  26. YUPDBYTE DFB $02
  27. YMSG0    DFB $B0
  28. YMSG1    DFB $01   ;MODULATION
  29. YMSG2    DFB $00
  30. ;
  31. KEYDOWN  DFB $00
  32. PB0DOWN  DFB $00
  33. PB1DOWN  DFB $00
  34. ;
  35. BUFFER   DFB $00,$20
  36. ;
  37. ;PRIVATE VARIABLES
  38. ;
  39. ANOMSG0  DFB $B0
  40. ANOMSG1  DFB 123
  41. ANOMSG2  DFB $00
  42. ;
  43. JOYX     DFB $00
  44. JOYY     DFB $00
  45. JOYXPREV DFB $00
  46. JOYYPREV DFB $00
  47. JOYXPRV2 DFB $00
  48. JOYYPRV2 DFB $00
  49. ;
  50. STARTPGM LDA $C059           ;INITIALIZE ANNUNCIATOR 0
  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.          JSR BYTEOUT
  155.          LDA ANOMSG1
  156.          JSR BYTEOUT
  157.          LDA ANOMSG2
  158.          JSR BYTEOUT
  159.          RTS
  160. ;
  161. XMITBYTE JSR BYTEOUT
  162.          RTS
  163. ;
  164. XTABLE   DFB 10,10,12,12,14,14,16,16,18,18,20,20
  165.          DFB 22,22,24,24,26,26,28,28,30,30,32,32,34,34,36,36,38,38,40,40
  166.          DFB 42,42,44,44,46,46,48,48,50,50,52,52,54,54,56,56,58,58,60,60
  167.          DFB 62,62,64,64,68,68,70,70,72,72,74,74,76,76,80,80,82,82,84,84
  168.          DFB 86,86,88,88,90,90,92,92,94,94,96,96,98,98,100,100,102,102,104,104
  169.          DFB 106,106,108,108,110,110,112,112,114,114,116,116,118,118,120,120
  170.          DFB 122,122,124,124,126,126,126,126,126,126,126,126,126,126,126,126
  171. YTABLE   DFB 126,126,124,124,122,122
  172.          DFB 120,120,118,118,116,116,114,114,112,112,110,110,108,108,106,106
  173.          DFB 104,104,102,102,100,100,98,98,96,96,94,94,92,90,90,88,88,86,86
  174.          DFB 84,84,82,82,80,80,78,78,76,76,74,74,72,72,70,70,68,68,64,64,62,62
  175.          DFB 60,60,58,58,56,56,54,54,52,52,50,50,48,48,46,46,44,44,42,42,40,40
  176.          DFB 38,38,36,36,34,34,32,32,30,30,28,28,26,26,24,24,22,22,20,20
  177.          DFB 18,18,16,16,14,14,12,12,10,10,8,8,6,6,4,4,2,2,0,0
  178. ;
  179.