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

  1. ; JOYCTL - JOYSTICK MIDI CONTROLLER
  2. ;
  3. ;-------------------------------------------
  4. PHASE20  LDA       STS       ;4
  5.          AND       #$01      ;2
  6.          BEQ       STORX     ;2/3 
  7.          LDA       DTA       ;4
  8.          CMP       #$F8      ;2
  9.          BCS       PHASE20   ;2/3
  10. ;;;      STA       (QHEAD)   ;5                  *65C02*
  11.          DFB       $92
  12.          DFB       QHEAD
  13.          INC       QHEAD     ;5
  14.          JMP       PHASE20   ;3
  15. ;
  16. ;                            ;DON'T ADD MESSAGE IF QUEUE WILL OVERFLOW
  17. ;                            ;(JOYSTICK WILL GENERATE MOST OF THE MESSAGES)
  18. STORX    LDA       QHEAD     ;3
  19.          STA       HEADSAVE  ;3
  20.          LDA       XMSG0     ;4
  21. ;;;      STA       (QHEAD)   ;5        *65C02*
  22.          DFB       $92
  23.          DFB       QHEAD
  24.          INC       QHEAD     ;5
  25. ;
  26.          LDA       QHEAD     ;3
  27.          CMP       QTAIL     ;3
  28.          BEQ       QFULLX    ;2/3
  29. ;
  30.          LDA       XMSG1     ;4
  31. ;;;      STA       (QHEAD)   ;5         *65C02*
  32.          DFB       $92
  33.          DFB       QHEAD
  34.          INC       QHEAD     ;5
  35. ;
  36.          LDA       QHEAD     ;3
  37.          CMP       QTAIL     ;3
  38.          BEQ       QFULLX    ;2/3
  39. ;
  40.          LDA       XMSG2     ;4
  41. ;;;      STA       (QHEAD)   ;5         *65C02*
  42.          DFB       $92
  43.          DFB       QHEAD
  44.          INC       QHEAD     ;5
  45. ;
  46.          LDA       QHEAD     ;3
  47.          CMP       QTAIL     ;3
  48.          BEQ       QFULLX    ;2/3
  49. ;
  50. PHASE20A LDA       STS       ;4
  51.          AND       #$01      ;2
  52.          BEQ       PHASE20X  ;2/3 
  53.          LDA       DTA       ;4
  54.          CMP       #$F8      ;2
  55.          BCS       PHASE20A  ;2/3
  56. ;;;      STA       (QHEAD)   ;5                  *65C02*
  57.          DFB       $92
  58.          DFB       QHEAD
  59.          INC       QHEAD     ;5
  60.          JMP       PHASE20A  ;3
  61. ;
  62. QFULLX   LDA       HEADSAVE
  63.          STA       QHEAD
  64. PHASE20X LDA       #10       ;2
  65.          STA       PHASE     ;3
  66.          JMP       CHKMIDI   ;3        ;80 CYCLES
  67. ;-------------------------------------------
  68. PHASE22  NOP
  69. PHASE24  NOP
  70. ;-------------------------------------------
  71. PHASE26  LDY       PREVY     ;3
  72.          LDA       YTABLE,Y  ;5
  73.          LDY       YBYTE     ;4
  74.          STA       YMSG0,Y   ;5 STICK INTO MIDI MESSAGE
  75.          LDA       #28       ;2
  76.          STA       PHASE     ;3
  77.          JMP       CHKMIDI   ;3        ;25 CYCLES
  78. ;-------------------------------------------
  79. PHASE28  LDA       STS       ;4
  80.          AND       #$01      ;2
  81.          BEQ       STORY     ;2/3 
  82.          LDA       DTA       ;4
  83.          CMP       #$F8      ;2
  84.          BCS       PHASE28   ;2/3
  85. ;;;      STA       (QHEAD)   ;5                  *65C02*
  86.          DFB       $92
  87.          DFB       QHEAD
  88.          INC       QHEAD     ;5
  89.          JMP       PHASE28   ;3
  90. ;
  91. ;                            ;DON'T ADD MESSAGE IF QUEUE WILL OVERFLOW
  92. ;                            ;(JOYSTICK WILL GENERATE MOST OF THE MESSAGES)
  93. STORY    LDA       QHEAD     ;3
  94.          STA       HEADSAVE  ;3
  95. ;
  96.          LDA       YMSG0     ;4
  97. ;;;      STA       (QHEAD)   ;5         *65C02*
  98.          DFB       $92
  99.          DFB       QHEAD
  100.          INC       QHEAD     ;5
  101. ;
  102.          LDA       QHEAD     ;3
  103.          CMP       QTAIL     ;3
  104.          BEQ       QFULLY    ;2/3
  105. ;
  106.          LDA       YMSG1     ;4
  107. ;;;      STA       (QHEAD)   ;5         *65C02*
  108.          DFB       $92       
  109.          DFB       QHEAD     
  110.          INC       QHEAD     ;5
  111. ;
  112.          LDA       QHEAD     ;3
  113.          CMP       QTAIL     ;3
  114.          BEQ       QFULLY    ;2/3
  115. ;
  116.          LDA       YMSG2     ;4
  117. ;;;      STA       (QHEAD)   ;5         *65C02*
  118.          DFB       $92
  119.          DFB       QHEAD
  120.          INC       QHEAD     ;5
  121. ;
  122.          LDA       QHEAD     ;3
  123.          CMP       QTAIL     ;3
  124.          BEQ       QFULLY    ;2/3
  125. ;
  126. PHASE28A LDA       STS       ;4
  127.          AND       #$01      ;2
  128.          BEQ       PHASE28X  ;2/3 
  129.          LDA       DTA       ;4
  130.          CMP       #$F8      ;2
  131.          BCS       PHASE28A  ;2/3
  132. ;;;      STA       (QHEAD)   ;5                  *65C02*
  133.          DFB       $92
  134.          DFB       QHEAD
  135.          INC       QHEAD     ;5
  136.          JMP       PHASE28A  ;3
  137. ;
  138. QFULLY   LDA       HEADSAVE  ;3
  139.          STA       QHEAD     ;3
  140. PHASE28X LDA       #12       ;2
  141.          STA       PHASE     ;3
  142.          JMP       CHKMIDI   ;3                  ;80 CYCLES
  143. ;-------------------------------------------
  144. PHASE30  NOP
  145. PHASE32  NOP
  146. ;-------------------------------------------
  147. XTABLE   DFB       10,12,14,16,18,20,22,24,26,28
  148.          DFB       30,32,34,36,38,40,42,44,46,48
  149.          DFB       50,52,54,56,58,60,62,64,66,68
  150.          DFB       70,72,74,76,78,80,82,84,86,88
  151.          DFB       90,92,94,96,98,100,102,104,106,108
  152.          DFB       110,110,110,110,110,110,110,110,110,110
  153.          DFB       110,110,110,110,110,110,110,110,110,110
  154.          DFB       110,110,110,110,110,110,110,110,110,110
  155.          DFB       110,110,110,110,110,110,110,110,110,110
  156.          DFB       110,110,110,110,110,110,110,110,110,110
  157.          DFB       110,110,110,110,110,110,110,110,110,110
  158.          DFB       110,110,110,110,110,110,110,110,110,110
  159.          DFB       110,110,110,110,110,110,110,110,110,110
  160. ;
  161. YTABLE   DFB       110,108,106,104,102,100,98,96,94,92
  162.          DFB       90,88,86,84,82,80,78,76,74,72
  163.          DFB       70,68,66,64,62,60,58,56,54,52
  164.          DFB       50,48,46,44,42,40,38,36,34,32
  165.          DFB       30,28,26,24,22,20,18,16,14,12
  166.          DFB       10,10,10,10,10,10,10,10,10,10
  167.          DFB       10,10,10,10,10,10,10,10,10,10
  168.          DFB       10,10,10,10,10,10,10,10,10,10
  169.          DFB       10,10,10,10,10,10,10,10,10,10
  170.          DFB       10,10,10,10,10,10,10,10,10,10
  171.          DFB       10,10,10,10,10,10,10,10,10,10
  172.          DFB       10,10,10,10,10,10,10,10,10,10
  173.          DFB       10,10,10,10,10,10,10,10,10,10
  174. ;-------------------------------------------
  175. ;        END OF PROGRAM
  176. ;-------------------------------------------
  177.