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

  1. ;
  2. ; MFF0 PLAYER - PLAYS A SPECIFIC AREA OF AUX OR MAIN MEMORY
  3. ;
  4. ;
  5.          ORG $0800
  6. ;
  7. ENTRYPTS JMP AUXSETUP        ;COPY CODE TO AUX MEM 
  8.          JMP PLAYMAIN        ;PLAY FROM MAIN MEMORY        
  9.          JMP PLAYAUX         ;PLAY FROM AUX MEMORY
  10.          JMP DOAUXMV         ;FOR USER - TO DO AUXMOVE
  11.          JMP DOXFER          ;FOR USER - TO XFER
  12. ;----------------
  13. ; PARAMETERS
  14. ;----------------
  15. PLAYSTRT DW $2000  ;STARTING ADDRESS OF PLAYBACK - SET BY CALLER
  16. PLAYSTOP DW $7800  ;ENDING ADDRESS OF PLAYBACK+1 - SET BY CALLER
  17. PHASE    DFB $00   ;CURRENT PHASE OF PROCESSING
  18. ENDOFTRK DFB $00   ;SIGNALS THAT END OF TRACK (00 FF 2F 00) REACHED
  19. ;----------------
  20. ; USER PARAMETERS FOR AUXMOVE
  21. ;----------------
  22. SRCMAINL DFB $00
  23. SRCMAINH DFB $00
  24. ENDMAINL DFB $00
  25. ENDMAINH DFB $00
  26. TGTAUXL  DFB $00
  27. TGTAUXH  DFB $00
  28. TOAUX    DFB $00
  29. ;----------------
  30. ; USER PARAMETERS FOR TRANSFER
  31. ;----------------
  32. XFERADRL DFB $00
  33. XFERADRH DFB $00
  34. XFTOAUX  DFB $00
  35. USEAUXZP DFB $00
  36. ;--------
  37. LYRICS   DFB $01   ;PRINT LYRICS
  38. PRNTSPED DFB $00   ;PRINT SPEED
  39. PIANOSCR DFB $01   ;PIANO DISPLAY ON
  40. DISPMODE DFB $01   ; 00 = UPPERCASE SHARPS, NONZERO = LOWERCASE FLATS
  41. MASKDRUM DFB $01   ; DISPLAY CHANNEL 9 (DRUMS) WITH *
  42. USEINVRS DFB $00   ; WHETHER TO USE INVERSE LETTERS - FOR PIANO DISPLAY
  43. KARALOOK DFB $00   ; WHETHER TO USE KARAOKE LOOKAHEAD
  44. RESOLUTN DFB $00,$F0 ; RESOLUTION FROM MIDI HEADER -USED FOR TEMPO CHGS
  45. SPEEDINC DFB $00   ; USER'S AMOUNT TO ADD OR SUBTRACT FROM SPEED
  46. DOTMPOCG DFB $01   ; PROCESS TEMPO CHANGES
  47. METRDISP ASC 'MM'  ;METRONOME DISPLAY
  48. METRTMP1 ASC '1'   
  49. METRTMP2 ASC '2'
  50. METRTMP3 ASC '0'
  51. METRFILL ASC ' SP'
  52. METRSPD1 ASC '0'
  53. METRSPD2 ASC '2'
  54. METRSPD3 ASC '7'
  55. KEYSIGP1 ASC '('
  56. KEYSIGP2 ASC 'C'
  57. KEYSIGP3 ASC ' '
  58. KEYSIGP4 ASC 'M'
  59. KEYSIGP5 ASC ')'
  60. ;-------------------
  61. ; INTERNAL VARIABLES
  62. ;-------------------
  63. INBYTE   DFB $00   ;VALUE OF CURRENT BYTE
  64. PAUSEFLG DFB $00
  65. DELTATIM DFB $00,$00,$00,$00
  66. DELTACTR DFB $00,$00
  67. LASTSTAT DFB $00
  68. DBYTES   DFB $00
  69. XMITMSG  ASC 'X'
  70. XMITSTS  DFB $00
  71. XMITBYT1 DFB $00
  72. XMITBYT2 DFB $00
  73. XMITBYT3 DFB $00
  74. SYSXLEN  DFB $00
  75. TEXTEVT  DFB $00
  76. METALEN  DFB $00
  77. ;---------------------
  78. PLAYPTR  EQU $06   ;POINTER TO CURRENT BYTE BEING READ
  79. SPEED    EQU $FF   ;SPEED OF PLAYBACK - USED IN $FCA8 WAIT ROUTINE
  80. ;
  81. COUT     EQU $FDF0 ;USE MONITOR OUTPUT ROUTINE BECAUSE MAY PRINT FROM AUX MEM
  82. MONWAIT  EQU $FCA8 ;MONITOR DELAY ROUTINE
  83. AUXMOVE  EQU $C311 ;AUX MEM MOVE
  84. AUXXFER  EQU $C314 ;AUX MEM TRANSFER CONTROL
  85. MONRTS   EQU $FF58 ;ADDRESS OF RTS INSTRUCTION USED TO SET OVERFLOW FLAG
  86. ;------------
  87. ; PROGRAM PHASE NAMES:
  88. ;------------
  89. DELTA0   EQU $00
  90. DELTA1   EQU $01
  91. DELTA2   EQU $02
  92. DELTA3   EQU $03
  93. GETINST  EQU $04
  94. DATA1    EQU $05
  95. DATA2    EQU $06
  96. DATA2B   EQU $07
  97. DATA3    EQU $08
  98. SYSX0    EQU $09
  99. SYSX1    EQU $0A
  100. SYSX2    EQU $0B
  101. META0    EQU $10
  102. META1    EQU $11
  103. META2    EQU $12
  104. TEMPO1   EQU $13
  105. TEMPO2   EQU $14
  106. TEMPO3   EQU $15
  107. TEMPO4   EQU $16
  108. KEYSIG1  EQU $17
  109. KEYSIG2  EQU $18
  110. KEYSIG3  EQU $19
  111. ;-------------------
  112.          CHN MFF0DRVR.SC0
  113.