A2NoSlotMIDI/LEGACY/MFF0DRVR.SRC.txt

113 lines
3.0 KiB
Plaintext

;
; MFF0 PLAYER - PLAYS A SPECIFIC AREA OF AUX OR MAIN MEMORY
;
;
ORG $0800
;
ENTRYPTS JMP AUXSETUP ;COPY CODE TO AUX MEM
JMP PLAYMAIN ;PLAY FROM MAIN MEMORY
JMP PLAYAUX ;PLAY FROM AUX MEMORY
JMP DOAUXMV ;FOR USER - TO DO AUXMOVE
JMP DOXFER ;FOR USER - TO XFER
;----------------
; PARAMETERS
;----------------
PLAYSTRT DW $2000 ;STARTING ADDRESS OF PLAYBACK - SET BY CALLER
PLAYSTOP DW $7800 ;ENDING ADDRESS OF PLAYBACK+1 - SET BY CALLER
PHASE DFB $00 ;CURRENT PHASE OF PROCESSING
ENDOFTRK DFB $00 ;SIGNALS THAT END OF TRACK (00 FF 2F 00) REACHED
;----------------
; USER PARAMETERS FOR AUXMOVE
;----------------
SRCMAINL DFB $00
SRCMAINH DFB $00
ENDMAINL DFB $00
ENDMAINH DFB $00
TGTAUXL DFB $00
TGTAUXH DFB $00
TOAUX DFB $00
;----------------
; USER PARAMETERS FOR TRANSFER
;----------------
XFERADRL DFB $00
XFERADRH DFB $00
XFTOAUX DFB $00
USEAUXZP DFB $00
;--------
LYRICS DFB $01 ;PRINT LYRICS
PRNTSPED DFB $00 ;PRINT SPEED
PIANOSCR DFB $01 ;PIANO DISPLAY ON
DISPMODE DFB $01 ; 00 = UPPERCASE SHARPS, NONZERO = LOWERCASE FLATS
MASKDRUM DFB $01 ; DISPLAY CHANNEL 9 (DRUMS) WITH *
USEINVRS DFB $00 ; WHETHER TO USE INVERSE LETTERS - FOR PIANO DISPLAY
KARALOOK DFB $00 ; WHETHER TO USE KARAOKE LOOKAHEAD
RESOLUTN DFB $00,$F0 ; RESOLUTION FROM MIDI HEADER -USED FOR TEMPO CHGS
SPEEDINC DFB $00 ; USER'S AMOUNT TO ADD OR SUBTRACT FROM SPEED
DOTMPOCG DFB $01 ; PROCESS TEMPO CHANGES
METRDISP ASC 'MM' ;METRONOME DISPLAY
METRTMP1 ASC '1'
METRTMP2 ASC '2'
METRTMP3 ASC '0'
METRFILL ASC ' SP'
METRSPD1 ASC '0'
METRSPD2 ASC '2'
METRSPD3 ASC '7'
KEYSIGP1 ASC '('
KEYSIGP2 ASC 'C'
KEYSIGP3 ASC ' '
KEYSIGP4 ASC 'M'
KEYSIGP5 ASC ')'
;-------------------
; INTERNAL VARIABLES
;-------------------
INBYTE DFB $00 ;VALUE OF CURRENT BYTE
PAUSEFLG DFB $00
DELTATIM DFB $00,$00,$00,$00
DELTACTR DFB $00,$00
LASTSTAT DFB $00
DBYTES DFB $00
XMITMSG ASC 'X'
XMITSTS DFB $00
XMITBYT1 DFB $00
XMITBYT2 DFB $00
XMITBYT3 DFB $00
SYSXLEN DFB $00
TEXTEVT DFB $00
METALEN DFB $00
;---------------------
PLAYPTR EQU $06 ;POINTER TO CURRENT BYTE BEING READ
SPEED EQU $FF ;SPEED OF PLAYBACK - USED IN $FCA8 WAIT ROUTINE
;
COUT EQU $FDF0 ;USE MONITOR OUTPUT ROUTINE BECAUSE MAY PRINT FROM AUX MEM
MONWAIT EQU $FCA8 ;MONITOR DELAY ROUTINE
AUXMOVE EQU $C311 ;AUX MEM MOVE
AUXXFER EQU $C314 ;AUX MEM TRANSFER CONTROL
MONRTS EQU $FF58 ;ADDRESS OF RTS INSTRUCTION USED TO SET OVERFLOW FLAG
;------------
; PROGRAM PHASE NAMES:
;------------
DELTA0 EQU $00
DELTA1 EQU $01
DELTA2 EQU $02
DELTA3 EQU $03
GETINST EQU $04
DATA1 EQU $05
DATA2 EQU $06
DATA2B EQU $07
DATA3 EQU $08
SYSX0 EQU $09
SYSX1 EQU $0A
SYSX2 EQU $0B
META0 EQU $10
META1 EQU $11
META2 EQU $12
TEMPO1 EQU $13
TEMPO2 EQU $14
TEMPO3 EQU $15
TEMPO4 EQU $16
KEYSIG1 EQU $17
KEYSIG2 EQU $18
KEYSIG3 EQU $19
;-------------------
CHN MFF0DRVR.SC0