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

  1. ; JOYCTL - JOYSTICK MIDI CONTROLLER
  2. ;
  3. ; PHASE ALGORITHM
  4. ;
  5. PHASE0   JMP       PHASE0A   ;3
  6. PHASE0A  NOP                 ;2
  7.          LDA       #$00      ;2
  8.          STA       JOYX      ;3
  9.          STA       JOYY      ;3
  10.          LDA       PTRIG     ;4
  11.          LDA       #2        ;2
  12.          STA       PHASE     ;3
  13.          JMP       CHKMIDI   ;3        ;25
  14. ;-------------------------------------------
  15. PHASE4   NOP                 ;2
  16.          NOP                 ;2
  17.          NOP                 ;2
  18.          NOP                 ;2
  19.          LDA       PDL1      ;4
  20.          BPL       P1D       ;2/3
  21.          INC       JOYY      ;5
  22.          JMP       PHASE4A   ;3
  23. PHASE4A  JMP       CHKMIDI   ;3        ;25
  24. ;
  25. P1D      NOP                 ;2
  26.          LDA       #8        ;2
  27.          STA       PHASE     ;3
  28.          JMP       CHKMIDI   ;3        ;25
  29. ;-------------------------------------------
  30. PHASE6   NOP                 ;2
  31.          NOP                 ;2
  32.          NOP                 ;2
  33.          NOP                 ;2
  34.          LDA       PDL0      ;4
  35.          BPL       P0D       ;2/3
  36.          INC       JOYX      ;5
  37.          JMP       PHASE6A   ;3
  38. PHASE6A  JMP       CHKMIDI   ;3        ;25
  39. ;
  40. P0D      NOP                 ;2
  41.          LDA       #8        ;2
  42.          STA       PHASE     ;3
  43.          JMP       CHKMIDI   ;3        ;25
  44. ;-------------------------------------------
  45. PHASE8   LDA       JOYX
  46.          CMP       PREVX
  47.          BEQ       GOTO10
  48.          CMP       PREV2X
  49.          BEQ       GOTO10
  50.          PHA
  51.          LDA       PREVX
  52.          STA       PREV2X
  53.          PLA
  54.          STA       PREVX
  55. ;                            ;X CHANGED. PUT MIDI MESSAGE ON QUEUE
  56.          ASL       A         ;MULTIPLY BY 2 TO GET RANGE OF 0-110
  57.          CLC
  58.          ADC       #10       ;ADD 10 TO GET RANGE OF 10-120
  59.          STA       TEMP
  60.          LDX       XINVERT   ;IF INVERTING, SUBTRACT IT FROM 130
  61.          BEQ       NOXINV
  62.          LDA       #130
  63.          SEC
  64.          SBC       TEMP
  65. NOXINV   LDY       XBYTE
  66.          STA       XMSG0,Y   ;STICK INTO MIDI MESSAGE
  67.          LDA       XMSG0
  68. ;;;      STA       (QHEAD)   ;         *65C02*
  69.          DFB       $92
  70.          DFB       QHEAD
  71.          INC       QHEAD
  72.          LDA       XMSG1
  73. ;;;      STA       (QHEAD)   ;         *65C02*
  74.          DFB       $92
  75.          DFB       QHEAD
  76.          INC       QHEAD
  77.          LDA       XMSG2
  78. ;;;      STA       (QHEAD)   ;         *65C02*
  79.          DFB       $92
  80.          DFB       QHEAD
  81.          INC       QHEAD
  82. ;
  83. GOTO10   LDA       #10
  84.          STA       PHASE
  85.          JMP       CHKMIDI
  86. ;
  87.          CHN       JOYCTL.SC3
  88.