home *** CD-ROM | disk | FTP | other *** search
/ Set of Apple II Hard Drive Images / pdoseric.hdv / SOURCE / JOYTEST.BA0.txt < prev    next >
Text File  |  2020-08-13  |  3KB  |  160 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.          JMP MAINLOOP
  62. ;
  63. CHKMIDI  LDA $C0A8           ;CHK MIDI
  64.          AND #$01            ;DID WE GET MIDI DATA
  65.          BEQ WOUT3           ;NO - CONTINUE PROCESSING
  66.          LDA $C0A9           ;YES- GET MIDI BYTE
  67.          CMP #$F8
  68.          BCS CHKMIDI         ;DON'T STORE REALTIME MSGS
  69.          PHA
  70. WTD0     LDA $C0A8
  71.          AND #$02
  72.          BEQ WTD0
  73.          PLA
  74.          STA $C0A9
  75.          JMP CHKMIDI
  76. WOUT3    RTS
  77. ;
  78. ;         LDA $C0A8
  79. ;         AND #$01
  80. ;         BEQ WTD1
  81. ;         LDA $C0A9
  82. ;         CMP #$F8
  83. ;         BCS WTD1
  84. ;         DFB $92
  85. ;         DFB QHEAD
  86. ;         INC QHEAD
  87. ;         JMP WTD1
  88. ;WOUT1    LDA QTAIL
  89. ;         CMP QHEAD
  90. ;         BEQ WOUT2
  91. ;         DFB $B2
  92. ;         DFB QTAIL
  93. ;         STA $C0A9
  94. ;         INC QTAIL
  95. ;         JMP WTD1
  96. ;WOUT2    JMP CHKMIDI
  97. ;WOUT3    RTS
  98. ;
  99. MAINLOOP JSR CHKMIDI
  100. JOY0     LDX #$00
  101.          LDY #$00
  102.          LDA #$80
  103.          BIT PTRIG
  104. JOY1     BIT XTOUT
  105.          BPL JOY2
  106.          INX
  107.          BNE JOY3
  108. JOY2     NOP
  109.          NOP
  110. JOY3     BIT YTOUT
  111.          BPL JOY4
  112.          INY
  113.          BNE JOY5
  114. JOY4     NOP
  115.          NOP
  116. JOY5     PHA
  117. ;
  118. CHKMID1  LDA $C0A8           ;CHK MIDI
  119.          AND #$01            ;DID WE GET MIDI DATA
  120.          BEQ WOUT3J          ;NO - CONTINUE PROCESSING
  121.          LDA $C0A9           ;YES- GET MIDI BYTE
  122.          CMP #$F8
  123.          BCS CHKMID1         ;DON'T STORE REALTIME MSGS
  124.          PHA
  125. WTD1J    LDA $C0A8
  126.          AND #$02
  127.          BEQ WTD1J
  128.          PLA
  129.          STA $C0A9
  130.          JMP CHKMID1
  131. WOUT3J   PLA
  132. ;
  133.          SEC
  134.          SBC #$01
  135.          BCS JOY1
  136.          LDA XTABLE,X
  137.          STA JOYX
  138.          LDA YTABLE,Y
  139.          STA JOYY
  140. ;
  141.          JSR CHKMIDI
  142. ;
  143. CHKPDL0C LDA JOYX
  144.          CMP JOYXPREV        ;DID PADDLE X CHANGE
  145.          BEQ CHKM2J
  146.          CMP JOYXPRV2        ;CHK PREVIOUS 2 VALUES OF PDLX
  147.          BEQ CHKM2J
  148.          BNE STPRVX
  149. CHKM2J   JMP CHKM2
  150. STPRVX   LDY JOYXPREV
  151.          STY JOYXPRV2
  152.          STA JOYXPREV
  153. ;
  154.          LDY XUPDBYTE        ;STORE PADDLE VALUE IN MESSAGE
  155.          STA XMSG0,Y
  156. ;
  157. CHKM1A   JSR CHKMIDI
  158. ;
  159.          CHN JOYTEST.SC1
  160.