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

  1. ;MFF0DRVR.SC0
  2. ;
  3. ;-------------------
  4. ;MAINLINE CODE
  5. ;-------------------
  6. AUXSETUP LDA #>ENTRYPTS      ;MOVE WHOLE PROGRAM TO AUX
  7.          STA SRCMAINL
  8.          STA TGTAUXL
  9.          LDA #<ENTRYPTS
  10.          STA SRCMAINH
  11.          STA TGTAUXH
  12.          LDA #>EOF
  13.          STA ENDMAINL
  14.          LDA #<EOF
  15.          STA ENDMAINH
  16.          LDA #$01
  17.          STA TOAUX
  18.          JSR DOAUXMV
  19.          RTS
  20. ;
  21. PLAYMAIN JMP PLAYIT1
  22. PLAYAUX  LDA #>PLAYSTRT      ;MOVE PARM AREA TO AUX
  23.          STA SRCMAINL
  24.          STA TGTAUXL
  25.          LDA #<PLAYSTRT
  26.          STA SRCMAINH
  27.          STA TGTAUXH
  28.          LDA #>AUXSETUP      ;ALSO MOVE ALL DATA VARIABLES
  29.          STA ENDMAINL
  30.          LDA #<AUXSETUP
  31.          STA ENDMAINH
  32.          LDA #$01
  33.          STA TOAUX
  34.          JSR DOAUXMV
  35. ;
  36.          LDA #>AUXCODE       ;TRANSFER TO AUX PROGRAM
  37.          STA XFERADRL
  38.          LDA #<AUXCODE
  39.          STA XFERADRH
  40.          LDA #$01
  41.          STA XFTOAUX
  42.          LDA #$00
  43.          STA USEAUXZP
  44.          JMP DOXFER
  45. AUXRTN   RTS
  46. ;                            ;TRANSFER BACK TO MAIN MEMORY PROGRAM
  47. AUXCODE  JSR PLAYIT1         ;PLAY THE AUX BUFFER
  48.          LDA #>PLAYSTRT      ;MOVE PARM AREA BACK TO MAIN
  49.          STA SRCMAINL
  50.          STA TGTAUXL
  51.          LDA #<PLAYSTRT
  52.          STA SRCMAINH
  53.          STA TGTAUXH
  54.          LDA #>AUXSETUP
  55.          STA ENDMAINL
  56.          LDA #<AUXSETUP
  57.          STA ENDMAINH
  58.          LDA #$00
  59.          STA TOAUX
  60.          JSR DOAUXMV
  61. ;
  62.          LDA #>AUXRTN       ;TRANSFER BACK TO MAIN PROGRAM
  63.          STA XFERADRL
  64.          LDA #<AUXRTN
  65.          STA XFERADRH
  66.          LDA #$00
  67.          STA XFTOAUX
  68.          LDA #$00
  69.          STA USEAUXZP
  70.          JMP DOXFER
  71. ;
  72. DOAUXMV  LDA SRCMAINL
  73.          STA $3C
  74.          LDA SRCMAINH
  75.          STA $3D
  76.          LDA ENDMAINL
  77.          STA $3E
  78.          LDA ENDMAINH
  79.          STA $3F
  80.          LDA TGTAUXL
  81.          STA $42
  82.          LDA TGTAUXH
  83.          STA $43
  84.          LDA TOAUX
  85.          BNE AUXMOVE1
  86.          CLC
  87.          JMP AUXMOVE
  88. AUXMOVE1 SEC
  89.          JMP AUXMOVE         
  90. ;
  91. DOXFER   LDA XFERADRL
  92.          STA $3ED
  93.          LDA XFERADRH
  94.          STA $3EE
  95.          LDA XFTOAUX
  96.          BNE DOXFER1
  97.          CLC
  98.          JMP DOXFER2
  99. DOXFER1  SEC
  100. DOXFER2  LDA USEAUXZP
  101.          BNE DOXFER3
  102.          CLV
  103.          JMP DOXFER4
  104. DOXFER3  BIT MONRTS ;SET OVERFLOW
  105. DOXFER4  JMP AUXXFER
  106. ;=============================
  107. PLAYIT1  LDA PLAYSTRT        ;INITIALIZE PTR TO BEGINNING OF AREA
  108.          STA PLAYPTR
  109.          LDA PLAYSTRT+1
  110.          STA PLAYPTR+1
  111.          LDA KARALOOK        ;12/17/95-KARALOOK LOGIC
  112.          BEQ PLAYLOOP
  113.          LDA #$8D
  114.          JSR COUT
  115.          JSR KARASCAN
  116. PLAYLOOP LDY #$00            ;READ 1 BYTE
  117.          LDA (PLAYPTR),Y
  118.          STA INBYTE
  119.          JSR PRCSBYTE
  120.          LDA ENDOFTRK
  121.          BEQ PLAYLOO1
  122.          RTS
  123. PLAYLOO1 JSR CHKKBD
  124.          LDA ENDOFTRK
  125.          BEQ INCPTR
  126.          RTS
  127. INCPTR   INC PLAYPTR
  128.          BNE INCPTR2
  129.          INC PLAYPTR+1
  130. INCPTR2  LDA PLAYPTR
  131.          CMP PLAYSTOP
  132.          BNE PLAYLOOP
  133.          LDA PLAYPTR+1
  134.          CMP PLAYSTOP+1
  135.          BNE PLAYLOOP
  136.          RTS
  137. ;-------
  138. ; CHKKBD - MAY SET ENDOFTRK
  139. ;-------
  140. CHKKBD   LDA $C000
  141.          BPL NOKEY1
  142.          LDA $C010
  143.          AND #$7F
  144.          CMP #$20
  145.          BNE CHKESC
  146.          LDA #$01
  147.          STA ENDOFTRK
  148. NOKEY1   RTS
  149. CHKESC   CMP #$1B
  150.          BNE CHKFLAT
  151. WAITKEY  LDA #$00
  152.          STA PAUSEFLG
  153. WAITKEY1 LDA $C000
  154.          BPL WAITKEY1
  155.          LDA $C010
  156.          AND #$7F
  157.          CMP #$1B
  158.          BNE ESCDONE
  159.          INC PAUSEFLG
  160. ESCDONE  RTS
  161. CHKFLAT  CMP #$46            ;'F'-CHANGE UCS<->LCF
  162.          BNE TESTTMPO
  163.          LDA DISPMODE
  164.          EOR #$01
  165.          STA DISPMODE
  166.          RTS
  167. TESTTMPO CMP #$54            ;'T'-TEMPO CHGS
  168.          BNE CHKDRUM
  169.          LDA DOTMPOCG
  170.          EOR #$01
  171.          STA DOTMPOCG
  172.          RTS
  173. CHKDRUM  CMP #$44            ;'D'-MASK DRUMS
  174.          BNE CHKLEFT
  175.          DEC MASKDRUM
  176.          LDA MASKDRUM
  177.          CMP #$FE
  178.          BNE DRUMDONE
  179.          LDA #$01
  180.          STA MASKDRUM
  181. DRUMDONE RTS
  182. CHKLEFT  CMP #$08
  183.          BNE CHKRIGHT
  184.          DEC SPEED
  185.          LDA SPEED
  186.          BMI LEFTBAD
  187.          BEQ LEFTBAD
  188.          DEC SPEEDINC
  189.          JSR SPEEDDEC
  190.          JSR METRPOKE
  191.          LDA PRNTSPED
  192.          BEQ LEFTDONE 
  193.          LDA #$A0
  194.          JSR COUT
  195.          LDA SPEED
  196.          JSR PRINTHEX
  197.          LDA #$A0
  198.          JSR COUT
  199. LEFTDONE RTS
  200. LEFTBAD  INC SPEED
  201.          RTS
  202. CHKRIGHT CMP #$15
  203.          BNE NOKEY
  204.          INC SPEED
  205.          LDA SPEED
  206.          BMI RIGHTBAD
  207.          BEQ RIGHTBAD
  208.          INC SPEEDINC
  209.          JSR SPEEDDEC
  210.          JSR METRPOKE
  211.          LDA PRNTSPED
  212.          BEQ NOKEY
  213.          LDA #$A0
  214.          JSR COUT
  215.          LDA SPEED
  216.          JSR PRINTHEX
  217.          LDA #$A0
  218.          JSR COUT
  219. NOKEY    RTS
  220. RIGHTBAD DEC SPEED
  221.          RTS
  222. ;
  223. ;=========
  224. ; PRCSBYTE - MAY SET ENDOFTRK
  225. ;=========
  226.          CHN MFF0DRVR.SC1
  227.