1182 lines
18 KiB
Plaintext
1182 lines
18 KiB
Plaintext
|
NOGEN
|
||
|
NAM STARGATE SOUNDS REV. 1.0 Y PHRED 9/81
|
||
|
*COPYRIGHT WILLIAMS ELECTRONICS INC. 1981
|
||
|
*PROGRAMMER: PHRED JARVIS, PSAM DICKER
|
||
|
*
|
||
|
*SYSTEM CONSTANTS
|
||
|
*
|
||
|
ROM EQU $F800
|
||
|
SOUND EQU $400
|
||
|
CKORG EQU $F700 CHECKSUM PROG ORG
|
||
|
ENDRAM EQU $7F
|
||
|
VECTOR EQU $FFF8 RESET,INT VECTORS
|
||
|
WVELEN EQU 72
|
||
|
BG2MAX EQU 29
|
||
|
SP1SND EQU $0E SPINNER SOUND #1 CODE
|
||
|
B2SND EQU $12 BONUS SOUND #2 CODE
|
||
|
SP1MAX EQU 32
|
||
|
NIN EQU 5
|
||
|
FIF EQU 6
|
||
|
TAF EQU 34715!>1 NOTE TIMES
|
||
|
TA EQU 36780!>1
|
||
|
TBF EQU 38967!>1
|
||
|
TB EQU 41284!>1
|
||
|
TC EQU 43739!>1
|
||
|
TCS EQU 46340!>1
|
||
|
TD EQU 49096!>1
|
||
|
TEF EQU 52015!>1
|
||
|
TE EQU 55108!>1
|
||
|
TF EQU 58385!>1
|
||
|
TFS EQU 61857!>1
|
||
|
TG EQU 65535!>1
|
||
|
*
|
||
|
* TALKING EQUATES
|
||
|
*
|
||
|
TALK EQU $EFFD ENTRY TO TALKING
|
||
|
TALKD EQU $EFFA ENTRY FOR DIAGNOSTICS
|
||
|
*
|
||
|
* SCREAM EQUATES
|
||
|
*
|
||
|
ECHOS EQU 4
|
||
|
FREQ EQU 0
|
||
|
TIMER EQU 1
|
||
|
*
|
||
|
*GLOBALS
|
||
|
*
|
||
|
ORG 0
|
||
|
TLKGL RMB 4 TALKING GLOBALS
|
||
|
BG1FLG RMB 1 BACKGROUND SOUND 1
|
||
|
BG2FLG RMB 1 BACKGROUND SOUND 2
|
||
|
SP1FLG RMB 1 SPINNER FLAG
|
||
|
B2FLG RMB 1 BONUS #2 FLAG
|
||
|
ORGFLG RMB 1 ORGAN FLAG
|
||
|
HI RMB 1 RANDOM SEED
|
||
|
LO RMB 1 RANDOM SEED
|
||
|
*
|
||
|
*TEMPORARIES
|
||
|
*
|
||
|
TMPRAM EQU * TEMPORARY RAM
|
||
|
TEMPX RMB 2 X TEMPS
|
||
|
XPLAY RMB 2
|
||
|
XPTR RMB 2
|
||
|
TEMPA RMB 1 ACCA TEMP
|
||
|
TEMPB RMB 1
|
||
|
LOCRAM EQU *
|
||
|
*
|
||
|
*GWAVE PARAMETERS
|
||
|
*
|
||
|
ORG LOCRAM
|
||
|
GECHO RMB 1 ECHO FLAG
|
||
|
GCCNT RMB 1 CYCLE COUNT
|
||
|
GECDEC RMB 1 # OF DECAYS PER ECHO
|
||
|
GDFINC RMB 1 DELTA FREQ INC
|
||
|
GDCNT RMB 1 DELTA FREQ COUNT
|
||
|
GWFRM RMB 2 WAVEFORM ADDRESS
|
||
|
*TEMPORARY OR COMPUTED PARAMETERS
|
||
|
PRDECA RMB 1 PRE-DECAY FACTOR
|
||
|
GWFRQ RMB 2 FREQ TABLE ADDR
|
||
|
FRQEND RMB 2 END ADDR FREQ TABLE
|
||
|
WVEND RMB 2 WAVE END ADDR
|
||
|
GPER RMB 1 PERIOD
|
||
|
GECNT RMB 1 # OF ECHOES COUNTER
|
||
|
FOFSET RMB 1 FREQUENCY OFFSET
|
||
|
*
|
||
|
*GWAVE TABLES
|
||
|
*
|
||
|
GWTAB RMB WVELEN WAVE TABLE
|
||
|
*
|
||
|
*VARIWAVE PARAMETERS
|
||
|
*
|
||
|
ORG LOCRAM
|
||
|
LOPER RMB 1 LO PERIOD
|
||
|
HIPER RMB 1 HIPERIOD
|
||
|
LODT RMB 1 PERIOD DELTAS
|
||
|
HIDT RMB 1
|
||
|
HIEN RMB 1 END PERIOD
|
||
|
SWPDT RMB 2 SWEEP PERIOD
|
||
|
LOMOD RMB 1 BASE FREQ MOD
|
||
|
VAMP RMB 1 AMPLITUDE
|
||
|
LOCNT RMB 1 PERIOD COUNTERS
|
||
|
HICNT RMB 1
|
||
|
*
|
||
|
*NOISE ROUTINE PARAMETERS
|
||
|
*
|
||
|
ORG LOCRAM
|
||
|
DECAY RMB 1
|
||
|
NAMP RMB 1
|
||
|
CYCNT RMB 1
|
||
|
NFRQ1 RMB 2
|
||
|
NFFLG RMB 1
|
||
|
LFREQ RMB 1
|
||
|
DFREQ RMB 1
|
||
|
*
|
||
|
*FILTERED NOISE ROUTINE PARAMETERS
|
||
|
*
|
||
|
ORG LOCRAM
|
||
|
FMAX RMB 1 MAXIMUM_FREQUENCY
|
||
|
FHI RMB 1 FREQUENCY
|
||
|
FLO RMB 1
|
||
|
SAMPC RMB 2 SAMPLE COUNT
|
||
|
FDFLG RMB 1 FREQUENCY DECREMENT FLAG
|
||
|
DSFLG RMB 1 DISTORTION FLAG
|
||
|
*
|
||
|
*SCREAM TABLES
|
||
|
*
|
||
|
ORG LOCRAM
|
||
|
STABLE RMB 2*ECHOS SCREAM TABLE
|
||
|
SRMEND EQU *
|
||
|
*
|
||
|
*ORGAN PARAMETERS
|
||
|
*
|
||
|
ORG LOCRAM
|
||
|
DUR RMB 2 NOTE DURATION
|
||
|
OSCIL RMB 1 OSCILLATORS
|
||
|
RDELAY RMB 60 RAM DELAY LOAD
|
||
|
*
|
||
|
* CHECKSUM CALCULATOR & RELOCATOR
|
||
|
*
|
||
|
ORG CKORG
|
||
|
CKSUM LDX #$FFFF INDEX TO END OF ROM
|
||
|
CLRB ZERO CHECKSUM
|
||
|
CKSUM1 ADCB 0,X ADD IN PROGRAM BYTE
|
||
|
DEX TO NEXT BYTE
|
||
|
CPX #$F800 DONE YET?
|
||
|
BNE CKSUM1 NOPE...
|
||
|
STAB 0,X SAVE CHECKSUM AT BEGINNING
|
||
|
WAI TURN OFF LEDS
|
||
|
FROM RMB 2 FOR POINTER
|
||
|
TO RMB 2 FOR POINTER
|
||
|
*
|
||
|
* MAIN PROGRAM
|
||
|
*
|
||
|
ORG ROM
|
||
|
FCB $DF CHECKSUM BYTE
|
||
|
SETUP SEI SET INTERRUPT MASK
|
||
|
LDS #ENDRAM INITIALIZE STACK POINTER
|
||
|
LDX #SOUND INDEX TO PIA
|
||
|
CLR 1,X ACCESS DDRA
|
||
|
CLR 3,X ACCESS DDRB
|
||
|
LDAA #$FF PA0-PA7
|
||
|
STAA 0,X SET SIDE A AS OUTPUTS
|
||
|
CLR 2,X SET B SIDE AS INPUTS
|
||
|
LDAA #$37 CB2 LOW, IRQ ALLOWED
|
||
|
STAA 3,X PROGRAM B CONTROL REG
|
||
|
LDAA #$3C CA2 SET INIT HIGH, NO IRQS
|
||
|
STAA 1,X PROGRAM A SIDE
|
||
|
STAA HI START RANDOM GENERATOR
|
||
|
CLRA
|
||
|
STAA B2FLG
|
||
|
STAA BG1FLG
|
||
|
STAA BG2FLG
|
||
|
STAA SP1FLG
|
||
|
STAA ORGFLG
|
||
|
CLI CLEAR INTERRUPTS
|
||
|
BRA * WAIT FOR INTERRUPT
|
||
|
*
|
||
|
*VARI LOADER
|
||
|
*
|
||
|
VARILD TAB
|
||
|
ASLA X2
|
||
|
ASLA X4
|
||
|
ASLA X8
|
||
|
ABA X9
|
||
|
LDX #LOCRAM
|
||
|
STX XPTR SET XSFER
|
||
|
LDX #VVECT
|
||
|
JSR ADDX
|
||
|
LDAB #9 GET COUNT
|
||
|
VTRAN JMP TRANS
|
||
|
*
|
||
|
*VARIABLE DUTY CYCLE SQUARE WAVE ROUTINE
|
||
|
*
|
||
|
VARI LDAA VAMP
|
||
|
STAA SOUND
|
||
|
VAR0 LDAA LOPER
|
||
|
STAA LOCNT
|
||
|
LDAA HIPER
|
||
|
STAA HICNT
|
||
|
V0 LDX SWPDT
|
||
|
V0LP LDAA LOCNT LO CYCLE
|
||
|
COM SOUND
|
||
|
V1 DEX
|
||
|
BEQ VSWEEP
|
||
|
DECA
|
||
|
BNE V1
|
||
|
COM SOUND
|
||
|
LDAA HICNT HI CYCLE
|
||
|
V2 DEX
|
||
|
BEQ VSWEEP
|
||
|
DECA
|
||
|
BNE V2
|
||
|
BRA V0LP LOOP BACK
|
||
|
VSWEEP LDAA SOUND
|
||
|
BMI VS1
|
||
|
COMA
|
||
|
VS1 ADDA #0
|
||
|
STAA SOUND OUTPUT
|
||
|
LDAA LOCNT
|
||
|
ADDA LODT
|
||
|
STAA LOCNT
|
||
|
LDAA HICNT
|
||
|
ADDA HIDT
|
||
|
STAA HICNT
|
||
|
CMPA HIEN
|
||
|
BNE V0
|
||
|
LDAA LOMOD
|
||
|
BEQ VARX
|
||
|
ADDA LOPER
|
||
|
STAA LOPER
|
||
|
BNE VAR0
|
||
|
VARX RTS
|
||
|
*
|
||
|
*LIGHTNING
|
||
|
*
|
||
|
LITE LDAA #1
|
||
|
STAA DFREQ
|
||
|
LDAB #3
|
||
|
BRA LITEN
|
||
|
*
|
||
|
*APPEAR
|
||
|
*
|
||
|
APPEAR LDAA #$FE
|
||
|
STAA DFREQ
|
||
|
LDAA #$C0
|
||
|
LDAB #$10
|
||
|
BRA LITEN
|
||
|
*
|
||
|
*LIGHTNING+APPEAR NOISE ROUTINE
|
||
|
*
|
||
|
LITEN STAA LFREQ
|
||
|
LDAA #$FF HIGHEST AMP
|
||
|
STAA SOUND
|
||
|
STAB CYCNT
|
||
|
LITE0 LDAB CYCNT
|
||
|
LITE1 LDAA LO GET RANDOM
|
||
|
LSRA
|
||
|
LSRA
|
||
|
LSRA
|
||
|
EORA LO
|
||
|
LSRA
|
||
|
ROR HI
|
||
|
ROR LO
|
||
|
BCC LITE2
|
||
|
COM SOUND
|
||
|
LITE2 LDAA LFREQ COUNT FREQ
|
||
|
LITE3 DECA
|
||
|
BNE LITE3
|
||
|
DECB COUNT CYCLES
|
||
|
BNE LITE1
|
||
|
LDAA LFREQ
|
||
|
ADDA DFREQ
|
||
|
STAA LFREQ
|
||
|
BNE LITE0
|
||
|
RTS
|
||
|
*
|
||
|
*TURBO
|
||
|
*
|
||
|
TURBO LDAA #$20
|
||
|
STAA CYCNT
|
||
|
STAA NFFLG
|
||
|
LDAA #$1
|
||
|
LDX #1
|
||
|
LDAB #$FF
|
||
|
BRA NOISE
|
||
|
*
|
||
|
*WHITE NOISE ROUTINE
|
||
|
*X=INIT PERIOD, ACCB=INIT AMP, ACCA DECAY RATE
|
||
|
*CYCNT=CYCLE COUNT, NFFLG= FREQ DECAY FLAG
|
||
|
*
|
||
|
NOISE STAA DECAY
|
||
|
NOISE0 STX NFRQ1
|
||
|
NOIS00 STAB NAMP
|
||
|
LDAB CYCNT
|
||
|
NOISE1 LDAA LO GET RANDOM BIT
|
||
|
LSRA
|
||
|
LSRA
|
||
|
LSRA
|
||
|
EORA LO
|
||
|
LSRA
|
||
|
ROR HI
|
||
|
ROR LO
|
||
|
LDAA #$0
|
||
|
BCC NOISE2
|
||
|
LDAA NAMP
|
||
|
NOISE2 STAA SOUND
|
||
|
LDX NFRQ1 INCREASING DELAY
|
||
|
NOISE3 DEX
|
||
|
BNE NOISE3
|
||
|
DECB FINISH CYCLE COUNT?
|
||
|
BNE NOISE1 NO
|
||
|
LDAB NAMP DECAY AMP
|
||
|
SUBB DECAY
|
||
|
BEQ NSEND
|
||
|
LDX NFRQ1 INC FREQ
|
||
|
INX
|
||
|
LDAA NFFLG DECAY FREQ?
|
||
|
BEQ NOIS00 NO
|
||
|
BRA NOISE0
|
||
|
NSEND RTS
|
||
|
*
|
||
|
*BACKGROUND 1 ROUTINE
|
||
|
*
|
||
|
BG1 LDAB #1
|
||
|
STAB BG1FLG
|
||
|
CLRA
|
||
|
STAA DSFLG
|
||
|
BRA FNOISE
|
||
|
*
|
||
|
*THRUST
|
||
|
*
|
||
|
THRUST CLRA
|
||
|
STAA DSFLG
|
||
|
LDAB #3
|
||
|
BRA FNOISE
|
||
|
*
|
||
|
*CANNON
|
||
|
*
|
||
|
CANNON LDAA #1
|
||
|
STAA DSFLG
|
||
|
LDX #1000
|
||
|
LDAA #1
|
||
|
LDAB #$FF
|
||
|
BRA FNOISE
|
||
|
*
|
||
|
*FILTERED NOISE ROUTINE
|
||
|
*X=SAMPLE COUNT, ACCB=INITIAL MAX FREQ
|
||
|
*ACCA=FREQ DECAY FLAG ,DSFLG=DISTORTION FLAG
|
||
|
*
|
||
|
FNOISE STAA FDFLG
|
||
|
STAB FMAX
|
||
|
STX SAMPC
|
||
|
CLR FLO
|
||
|
FNOIS0 LDX SAMPC
|
||
|
LDAA SOUND
|
||
|
FNOIS1 TAB NEXT RANDOM NUMBER
|
||
|
LSRB
|
||
|
LSRB
|
||
|
LSRB
|
||
|
EORB LO
|
||
|
LSRB
|
||
|
ROR HI
|
||
|
ROR LO
|
||
|
LDAB FMAX SET FREQ
|
||
|
TST DSFLG
|
||
|
BEQ FNOIS2
|
||
|
ANDB HI DISTORT FREQUENCY
|
||
|
FNOIS2 STAB FHI
|
||
|
LDAB FLO
|
||
|
CMPA LO
|
||
|
BHI FNOIS4
|
||
|
FNOIS3 DEX SLOPE UP
|
||
|
BEQ FNOIS6
|
||
|
STAA SOUND
|
||
|
ADDB FLO
|
||
|
ADCA FHI
|
||
|
BCS FNOIS5
|
||
|
CMPA LO
|
||
|
BLS FNOIS3
|
||
|
BRA FNOIS5
|
||
|
FNOIS4 DEX SLOPE DOWN
|
||
|
BEQ FNOIS6
|
||
|
STAA SOUND
|
||
|
SUBB FLO
|
||
|
SBCA FHI
|
||
|
BCS FNOIS5
|
||
|
CMPA LO
|
||
|
BHI FNOIS4
|
||
|
FNOIS5 LDAA LO
|
||
|
STAA SOUND
|
||
|
BRA FNOIS1
|
||
|
FNOIS6 LDAB FDFLG
|
||
|
BEQ FNOIS1
|
||
|
LDAA FMAX DECAY MAX FREQ
|
||
|
LDAB FLO
|
||
|
LSRA
|
||
|
RORB
|
||
|
LSRA
|
||
|
RORB
|
||
|
LSRA
|
||
|
RORB
|
||
|
COMA
|
||
|
NEGB
|
||
|
SBCA #-1
|
||
|
ADDB FLO
|
||
|
ADCA FMAX
|
||
|
STAB FLO
|
||
|
STAA FMAX
|
||
|
BNE FNOIS0
|
||
|
CMPB #7
|
||
|
BNE FNOIS0
|
||
|
RTS
|
||
|
*
|
||
|
*RADIO
|
||
|
*
|
||
|
RADIO LDAA #RADSND/$100 SOUND TABLE
|
||
|
STAA XPTR
|
||
|
LDX #100 STARTING FREQ
|
||
|
STX TEMPX
|
||
|
RADIO1 ADDB TEMPX+1 ADD FREQ TO TIMER
|
||
|
LDAA TEMPA
|
||
|
ADCA TEMPX
|
||
|
STAA TEMPA
|
||
|
LDX TEMPX
|
||
|
BCS RADIO2
|
||
|
BRA *+2 EQUALIZE TIME
|
||
|
BRA RADIO3
|
||
|
RADIO2 INX CARRY?, RAISE FREQ
|
||
|
BEQ RADIO4 DONE?
|
||
|
RADIO3 STX TEMPX
|
||
|
ANDA #$F SET POINTER
|
||
|
ADDA #RADSND!.$FF
|
||
|
STAA XPTR+1
|
||
|
LDX XPTR
|
||
|
LDAA ,X
|
||
|
STAA SOUND PLAY SOUND
|
||
|
BRA RADIO1
|
||
|
RADIO4 RTS
|
||
|
*
|
||
|
*HYPER
|
||
|
*
|
||
|
HYPER CLRA
|
||
|
STAA SOUND
|
||
|
STAA TEMPA ZERO PHASE
|
||
|
HYPER1 CLRA ZERO TIME COUNTER
|
||
|
HYPER2 CMPA TEMPA
|
||
|
BNE HYPER3
|
||
|
COM SOUND PHASE EDGE?, COMPLEMENT SOUND
|
||
|
HYPER3 LDAB #18 DELAY
|
||
|
HYPER4 DECB
|
||
|
BNE HYPER4
|
||
|
INCA ADVANCE TIME COUNTER
|
||
|
BPL HYPER2
|
||
|
COM SOUND CYCLE DONE?, CYCLE EDGE
|
||
|
INC TEMPA NEXT PHASE
|
||
|
BPL HYPER1 DONE?
|
||
|
RTS
|
||
|
*
|
||
|
*SCREAM
|
||
|
*
|
||
|
SCREAM LDX #STABLE ZERO FREQS AND TIMES
|
||
|
SCREM1 CLR ,X
|
||
|
INX
|
||
|
CPX #SRMEND
|
||
|
BNE SCREM1
|
||
|
LDAA #$40 START FIRST ECHO
|
||
|
STAA STABLE+FREQ
|
||
|
SCREM2 LDX #STABLE INITIALIZE COUNTER
|
||
|
LDAA #$80 INITIALIZE AMPLITUDE
|
||
|
STAA TEMPA
|
||
|
CLRB ZERO OUTPUT BUFFER
|
||
|
SCREM3 LDAA TIMER,X ADD FREQ TO TIMER
|
||
|
ADDA FREQ,X
|
||
|
STAA TIMER,X
|
||
|
BPL SCREM4 ADD AMPLITUDE IF MINUS
|
||
|
ADDB TEMPA
|
||
|
SCREM4 LSR TEMPA DECAY AMPLITUDE
|
||
|
INX NEXT ECHO
|
||
|
INX
|
||
|
CPX #SRMEND LAST ECHO?
|
||
|
BNE SCREM3
|
||
|
STAB SOUND OUTPUT SOUND
|
||
|
INC TEMPB ADVANCE TIMER
|
||
|
BNE SCREM2
|
||
|
LDX #STABLE LOWER NON-ZERO FREQUENCIES
|
||
|
CLRB ALL ZERO NOT FLAG
|
||
|
SCREM5 LDAA FREQ,X
|
||
|
BEQ SCREM7
|
||
|
CMPA #$37
|
||
|
BNE SCREM6
|
||
|
LDAB #$41 START NEXT ECHO
|
||
|
STAB FREQ+2,X
|
||
|
SCREM6 DEC FREQ,X
|
||
|
INCB SET FLAG
|
||
|
SCREM7 INX
|
||
|
INX
|
||
|
CPX #SRMEND
|
||
|
BNE SCREM5
|
||
|
TSTB DONE?
|
||
|
BNE SCREM2
|
||
|
RTS
|
||
|
*
|
||
|
*ORGAN TUNE
|
||
|
*
|
||
|
ORGANT DEC ORGFLG MINUS ORGAN FLAG
|
||
|
RTS
|
||
|
ORGNT1 BSR ORGASM
|
||
|
JMP IRQ3
|
||
|
ORGASM CLR ORGFLG
|
||
|
STAA TEMPA TUNE NUMBER
|
||
|
LDX #ORGTAB
|
||
|
ORGNT2 LDAA ,X TUNE TABLE LENGTH
|
||
|
BEQ ORGNT5 INVALID TUNE
|
||
|
DEC TEMPA
|
||
|
BEQ ORGNT3
|
||
|
INCA
|
||
|
JSR ADDX
|
||
|
BRA ORGNT2
|
||
|
ORGNT3 INX
|
||
|
STX XPTR NOTE POINTER
|
||
|
JSR ADDX
|
||
|
STX XPLAY TUNE END
|
||
|
LDX XPTR
|
||
|
ORGNT4 LDAA ,X TUNE LOOP
|
||
|
STAA OSCIL
|
||
|
LDAA 1,X
|
||
|
LDX 2,X
|
||
|
STX DUR
|
||
|
BSR ORGANL
|
||
|
LDX XPTR
|
||
|
INX
|
||
|
INX
|
||
|
INX
|
||
|
INX
|
||
|
STX XPTR
|
||
|
CPX XPLAY
|
||
|
BNE ORGNT4
|
||
|
ORGNT5 RTS
|
||
|
*
|
||
|
*ORGAN NOTE
|
||
|
*4 BYTES(MODE,OSCILLATOR MASK HI+1,LO+1,NOTE#)
|
||
|
ORGANN RTS
|
||
|
*
|
||
|
*ORGAN LOADER
|
||
|
*OSCIL=OSCILLATOR MASK, ACCA=DELAY, DUR=DURATION
|
||
|
*
|
||
|
ORGANL LDX #RDELAY
|
||
|
SUBA #2
|
||
|
LDLP BLS LD1
|
||
|
CMPA #3
|
||
|
BEQ LD2
|
||
|
LDAB #1 NOP
|
||
|
STAB ,X
|
||
|
INX
|
||
|
SUBA #2
|
||
|
BRA LDLP
|
||
|
LD2 LDAB #$91 CMPA 0
|
||
|
STAB ,X
|
||
|
CLR 1,X
|
||
|
INX
|
||
|
INX
|
||
|
LD1 LDAB #$7E JMP START2
|
||
|
STAB ,X
|
||
|
LDAB #ORGAN1!>8 MSB
|
||
|
STAB 1,X
|
||
|
LDAB #ORGAN1!.$FF LSB
|
||
|
STAB 2,X
|
||
|
*
|
||
|
*ORGAN ROUTINE
|
||
|
*DUR=DURATION, OSCILLATOR MASK
|
||
|
*
|
||
|
ORGAN LDX DUR
|
||
|
ORGAN1 CLRA
|
||
|
FCB $F6 LOAD B EXTND TEMPB
|
||
|
FDB TEMPB
|
||
|
INCB
|
||
|
STAB TEMPB
|
||
|
ANDB OSCIL MASK OSCILLATORS
|
||
|
LSRB
|
||
|
ADCA #0
|
||
|
LSRB
|
||
|
ADCA #0
|
||
|
LSRB
|
||
|
ADCA #0
|
||
|
LSRB
|
||
|
ADCA #0
|
||
|
LSRB
|
||
|
ADCA #0
|
||
|
LSRB
|
||
|
ADCA #0
|
||
|
LSRB
|
||
|
ADCA #0
|
||
|
ABA
|
||
|
ASLA
|
||
|
ASLA
|
||
|
ASLA
|
||
|
ASLA
|
||
|
ASLA
|
||
|
STAA SOUND
|
||
|
DEX
|
||
|
BEQ ORGAN2 NOTE OVER?
|
||
|
JMP RDELAY
|
||
|
ORGAN2 RTS
|
||
|
*
|
||
|
*PARAMETER TRANSFER
|
||
|
*
|
||
|
TRANS PSHA
|
||
|
TRANS1 LDAA 0,X
|
||
|
STX XPLAY
|
||
|
LDX XPTR
|
||
|
STAA 0,X
|
||
|
INX
|
||
|
STX XPTR
|
||
|
LDX XPLAY
|
||
|
INX
|
||
|
DECB
|
||
|
BNE TRANS1
|
||
|
PULA
|
||
|
RTS
|
||
|
*
|
||
|
*BACKGROUND END ROUTINE
|
||
|
*
|
||
|
BGEND CLRA
|
||
|
STAA BG1FLG
|
||
|
STAA BG2FLG
|
||
|
RTS
|
||
|
*
|
||
|
*BACKGROUND SOUND #2 INCREMENT
|
||
|
*
|
||
|
BG2INC CLR BG1FLG KILL BG1
|
||
|
LDAA BG2FLG ACTIVATE BG2
|
||
|
ANDA #$7F REMOVE OVERRIDE
|
||
|
CMPA #BG2MAX
|
||
|
BNE BG2I0
|
||
|
CLRA
|
||
|
BG2I0 INCA
|
||
|
STAA BG2FLG
|
||
|
RTS
|
||
|
*
|
||
|
*BACKGROUND 2 ROUTINE
|
||
|
*
|
||
|
BG2 LDAA #(TRBV-SVTAB)/7 GET SOUND#
|
||
|
JSR GWLD
|
||
|
LDAA BG2FLG
|
||
|
ASLA
|
||
|
ASLA
|
||
|
COMA
|
||
|
JSR GEND60
|
||
|
BG2LP INC GDCNT
|
||
|
JSR GEND61
|
||
|
BRA BG2LP
|
||
|
*
|
||
|
*SPINNER #1 SOUND
|
||
|
*
|
||
|
SP1 LDAA #(CABSHK-VVECT)/9
|
||
|
JSR VARILD
|
||
|
LDAB SP1FLG
|
||
|
CMPB #SP1MAX-1
|
||
|
BNE SP1A
|
||
|
CLRB
|
||
|
SP1A INCB
|
||
|
STAB SP1FLG
|
||
|
LDAA #SP1MAX
|
||
|
SBA
|
||
|
CLRB
|
||
|
SP11 CMPA #20
|
||
|
BLS SP12
|
||
|
ADDB #14
|
||
|
DECA
|
||
|
BRA SP11
|
||
|
SP12 ADDB #5
|
||
|
DECA
|
||
|
BNE SP12
|
||
|
STAB LOPER
|
||
|
SP1LP JSR VARI DO IT
|
||
|
BRA SP1LP
|
||
|
*
|
||
|
*LASER BALL BONUS #2
|
||
|
*
|
||
|
BON2 LDAA B2FLG
|
||
|
BNE BON21
|
||
|
INC B2FLG
|
||
|
LDAA #(BONV-SVTAB)/7
|
||
|
BSR GWLD
|
||
|
BRA GWAVE
|
||
|
BON21 JMP GEND50
|
||
|
*
|
||
|
*GWAVE LOADER
|
||
|
*
|
||
|
GWLD TAB MULKT BY 7
|
||
|
ASLB
|
||
|
ABA
|
||
|
ABA
|
||
|
ABA
|
||
|
LDX #SVTAB SOUND VECTOR TABLE
|
||
|
JSR ADDX
|
||
|
LDAA ,X
|
||
|
TAB
|
||
|
ANDA #$F
|
||
|
STAA GCCNT GET CYCLE COUNT
|
||
|
LSRB
|
||
|
LSRB
|
||
|
LSRB
|
||
|
LSRB
|
||
|
STAB GECHO GET #ECHOS
|
||
|
LDAA 1,X
|
||
|
TAB
|
||
|
LSRB
|
||
|
LSRB
|
||
|
LSRB
|
||
|
LSRB
|
||
|
STAB GECDEC
|
||
|
ANDA #$F WAVE #
|
||
|
STAA TEMPA SAVE
|
||
|
STX TEMPX SAVE INDEX
|
||
|
LDX #GWVTAB CALC WAVEFORM ADDR
|
||
|
GWLD2 DEC TEMPA WAVE FORM #
|
||
|
BMI GWLD3 FINIS
|
||
|
LDAA ,X
|
||
|
INCA
|
||
|
JSR ADDX
|
||
|
BRA GWLD2
|
||
|
GWLD3 STX GWFRM
|
||
|
JSR WVTRAN XSFER WAVE TO RAM
|
||
|
LDX TEMPX RESTORE INDEX
|
||
|
LDAA 2,X GET PREDECAY
|
||
|
STAA PRDECA
|
||
|
JSR WVDECA DECAY IT
|
||
|
LDX TEMPX
|
||
|
LDAA 3,X GET FREQ INC
|
||
|
STAA GDFINC
|
||
|
LDAA 4,X GET DELTA FREQ COUNT
|
||
|
STAA GDCNT
|
||
|
LDAA 5,X GET PATTERN COUNT
|
||
|
TAB SAVE
|
||
|
LDAA 6,X PATTERN OFFSET
|
||
|
LDX #GFRTAB
|
||
|
JSR ADDX
|
||
|
TBA GET PATTERN LENGTH
|
||
|
STX GWFRQ FREQ TABLE ADDR
|
||
|
CLR FOFSET
|
||
|
JSR ADDX
|
||
|
STX FRQEND
|
||
|
RTS
|
||
|
*
|
||
|
*GWAVE ROUTINE
|
||
|
*ACCA= FREQ PATTERN LENGTH, X= FREQ PAT ADDR
|
||
|
*
|
||
|
GWAVE LDAA GECHO
|
||
|
STAA GECNT
|
||
|
GWT4 LDX GWFRQ
|
||
|
STX XPLAY
|
||
|
GPLAY LDX XPLAY GET NEW PERIOD
|
||
|
LDAA ,X
|
||
|
ADDA FOFSET
|
||
|
STAA GPER
|
||
|
CPX FRQEND
|
||
|
BEQ GEND FINISH ON ZERO
|
||
|
LDAB GCCNT CYCLE COUNT
|
||
|
INX
|
||
|
STX XPLAY
|
||
|
GOUT LDX #GWTAB SETUP WAVEFORM POINTER
|
||
|
GOUTLP LDAA GPER
|
||
|
GPRLP DECA WAIT FOR PERIOD
|
||
|
BNE GPRLP
|
||
|
LDAA ,X OUTPUT SOUND
|
||
|
STAA SOUND
|
||
|
GPR1 INX
|
||
|
CPX WVEND END OF WAVE?
|
||
|
BNE GOUTLP
|
||
|
DECB
|
||
|
BEQ GPLAY
|
||
|
INX
|
||
|
DEX
|
||
|
INX
|
||
|
DEX
|
||
|
INX
|
||
|
DEX
|
||
|
INX
|
||
|
DEX
|
||
|
NOP
|
||
|
NOP
|
||
|
BRA GOUT SYNC 36
|
||
|
GEND LDAA GECDEC
|
||
|
BSR WVDECA
|
||
|
GEND40 DEC GECNT ECHO ON?
|
||
|
BNE GWT4 YES
|
||
|
LDAA B2FLG STOP BONUS
|
||
|
BNE GEND1
|
||
|
GEND50 LDAA GDFINC CONTINUE FOR FREQ MOD SOUNDS
|
||
|
BEQ GEND1 NO
|
||
|
DEC GDCNT DELTA FREQ OVER?
|
||
|
BEQ GEND1 YES...
|
||
|
ADDA FOFSET UPDATE FREQ OFFSET
|
||
|
GEND60 STAA FOFSET
|
||
|
GEND61 LDX GWFRQ GET INDEX
|
||
|
CLRB START FOUND FLAG INIT CLEAR
|
||
|
GW0 LDAA FOFSET INC OR DEC?
|
||
|
TST GDFINC
|
||
|
BMI GW1 DEC
|
||
|
ADDA ,X INC
|
||
|
BCS GW2 CARRY=OVERFLOW
|
||
|
BRA GW2A
|
||
|
GW1 ADDA ,X DEC
|
||
|
BEQ GW2 OVERFLOW ON EQ
|
||
|
BCS GW2A OVERFLOW IF CARRY CLEAR
|
||
|
GW2 TSTB FOUND START YET?
|
||
|
BEQ GW2B NO
|
||
|
BRA GW3 YES, THIS IS THE END
|
||
|
GW2A TSTB
|
||
|
BNE GW2B ALREADY FOUND START
|
||
|
STX GWFRQ FOUND START
|
||
|
INCB
|
||
|
GW2B INX
|
||
|
CPX FRQEND
|
||
|
BNE GW0 NOT OVER YET
|
||
|
TSTB FOUND START?
|
||
|
BNE GW3 YES
|
||
|
RTS ALL OVER
|
||
|
GW3 STX FRQEND
|
||
|
LDAA GECDEC RE:XSFER WAVE?
|
||
|
BEQ GEND0 NO
|
||
|
BSR WVTRAN XSFER WAVE
|
||
|
LDAA PRDECA
|
||
|
BSR WVDECA
|
||
|
GEND0 JMP GWAVE
|
||
|
GEND1 RTS TERMINATE
|
||
|
*
|
||
|
*WAVE TRANSFER ROUTINE
|
||
|
*
|
||
|
WVTRAN LDX #GWTAB
|
||
|
STX XPTR
|
||
|
LDX GWFRM
|
||
|
LDAB ,X GET WAVE LENGTH
|
||
|
INX
|
||
|
JSR TRANS
|
||
|
LDX XPTR
|
||
|
STX WVEND GET END ADDR
|
||
|
RTS
|
||
|
*
|
||
|
*WAVE DECAY ROUTINE/ DECAY AMOUNT IN ACCA(1/16 PER DECAY)
|
||
|
*
|
||
|
WVDECA TSTA
|
||
|
BEQ WVDCX NO DECAY
|
||
|
LDX GWFRM ROM WAVE INDEX
|
||
|
STX XPLAY
|
||
|
LDX #GWTAB
|
||
|
STAA TEMPB DECAY FACTOR
|
||
|
WVDLP STX XPTR
|
||
|
LDX XPLAY
|
||
|
LDAB TEMPB
|
||
|
STAB TEMPA DECAY FACTOR TEMP
|
||
|
LDAB 1,X OFFSET FOR WAVE LENGTH
|
||
|
LSRB
|
||
|
LSRB
|
||
|
LSRB
|
||
|
LSRB CALC 1/16TH
|
||
|
INX
|
||
|
STX XPLAY
|
||
|
LDX XPTR
|
||
|
LDAA ,X
|
||
|
WVDLP1 SBA DECAY
|
||
|
DEC TEMPA
|
||
|
BNE WVDLP1
|
||
|
STAA ,X
|
||
|
INX
|
||
|
CPX WVEND END OF WAVE?
|
||
|
BNE WVDLP NO
|
||
|
WVDCX RTS
|
||
|
*
|
||
|
* INTERRUPT PROCESSING
|
||
|
*
|
||
|
IRQ LDS #ENDRAM RE-INITIALIZE STACK
|
||
|
LDAA SOUND+2 GET INPUT TRIGGER
|
||
|
CLI NOW ALLOW IRQS
|
||
|
COMA INVERT INPUT
|
||
|
ANDA #$1F MASK GARB
|
||
|
LDAB ORGFLG
|
||
|
BEQ IRQ00
|
||
|
JSR ORGNT1 ORGAN TUNE
|
||
|
IRQ00 CLRB
|
||
|
CMPA #SP1SND
|
||
|
BEQ IRQ00A
|
||
|
STAB SP1FLG
|
||
|
IRQ00A CMPA #B2SND
|
||
|
BEQ IRQ000
|
||
|
STAB B2FLG
|
||
|
IRQ000 TSTA
|
||
|
BEQ IRQ3 INVALID INPUT
|
||
|
DECA REMOVE OFFSET
|
||
|
CMPA #$C
|
||
|
BHI IRQ10
|
||
|
JSR GWLD GWAVE SOUNDS
|
||
|
JSR GWAVE
|
||
|
BRA IRQ3
|
||
|
IRQ10 CMPA #$1B SPECIAL SOUND?
|
||
|
BHI IRQ20 VARI SOUND
|
||
|
SUBA #$D SUB OFFSET
|
||
|
ASLA DOUBLE FOR ADDRESSING
|
||
|
LDX #JMPTBL INDEX TO JUMP TABLE
|
||
|
BSR ADDX GET CORRECT INDEX
|
||
|
LDX 0,X GET ADDRESS TO INDEX
|
||
|
JSR 0,X PERFORM IT
|
||
|
BRA IRQ3
|
||
|
IRQ20 SUBA #$1C
|
||
|
JSR VARILD
|
||
|
JSR VARI
|
||
|
IRQ3 LDAA BG1FLG BGROUND ACTIVE?
|
||
|
ORAA BG2FLG
|
||
|
BEQ * NOPE
|
||
|
CLRA
|
||
|
STAA B2FLG KILL BONUSES
|
||
|
LDAA BG1FLG
|
||
|
BEQ IRQXX
|
||
|
JMP BG1
|
||
|
IRQXX JMP BG2
|
||
|
*
|
||
|
* ADD A TO INDEX REGISTER
|
||
|
*
|
||
|
ADDX STX XPLAY
|
||
|
ADDA XPLAY+1
|
||
|
STAA XPLAY+1
|
||
|
BCC ADDX1
|
||
|
INC XPLAY
|
||
|
ADDX1 LDX XPLAY
|
||
|
RTS
|
||
|
*
|
||
|
* DIAGNOSTIC PROCESSING HERE
|
||
|
*
|
||
|
NMI SEI
|
||
|
LDS #ENDRAM RESET THE STACK
|
||
|
LDX #$FFFF
|
||
|
CLRB
|
||
|
NMI1 ADCB 0,X
|
||
|
DEX
|
||
|
CPX #$F800
|
||
|
BNE NMI1
|
||
|
CMPB 0,X
|
||
|
BEQ NMI2
|
||
|
WAI
|
||
|
NMI2 LDAA #1
|
||
|
JSR VARILD
|
||
|
JSR VARI
|
||
|
LDAA #2
|
||
|
JSR ORGASM
|
||
|
LDAA #1
|
||
|
JSR ORGASM
|
||
|
BRA NMI KEEP LOOPING
|
||
|
*
|
||
|
*SPECIAL ROUTINE JUMP TABLE
|
||
|
*
|
||
|
JMPTBL FDB SP1,BG1,BG2INC,LITE
|
||
|
FDB BON2,BGEND,TURBO,APPEAR
|
||
|
FDB THRUST,CANNON,RADIO,HYPER
|
||
|
FDB SCREAM,ORGANT,ORGANN
|
||
|
*
|
||
|
*VARI VECTORS
|
||
|
*
|
||
|
VVECT EQU *
|
||
|
SAW FCB $40,$01,$00,$10,$E1,$00,$80,$FF,$FF
|
||
|
FOSHIT FCB $28,$01,$00,$08,$81,$02,$00,$FF,$FF
|
||
|
QUASAR FCB $28,$81,$00,$FC,$01,$02,$00,$FC,$FF
|
||
|
CABSHK FCB $FF,$01,$00,$18,$41,$04,$80,$00,$FF
|
||
|
*
|
||
|
*RADIO SOUND WAVEFORM
|
||
|
*
|
||
|
RADSND FCB $8C,$5B,$B6,$40,$BF,$49,$A4,$73
|
||
|
FCB $73,$A4,$49,$BF,$40,$B6,$5B,$8C
|
||
|
*
|
||
|
* NOTE DEFINITIONS AND ALL THAT JAZZ
|
||
|
*
|
||
|
AF1 EQU $F847
|
||
|
A1 EQU $F83F
|
||
|
BF1 EQU $F837
|
||
|
B1 EQU $F830
|
||
|
C1 EQU $F829
|
||
|
CS1 EQU $F823
|
||
|
D1 EQU $F81D
|
||
|
EF1 EQU $F817
|
||
|
E1 EQU $F812
|
||
|
F1 EQU $F80D
|
||
|
FS1 EQU $F808
|
||
|
G2 EQU $F804
|
||
|
AF2 EQU $7C47
|
||
|
A2 EQU $7C3F
|
||
|
BF2 EQU $7C37
|
||
|
B2 EQU $7C30
|
||
|
C2 EQU $7C29
|
||
|
CS2 EQU $7C23
|
||
|
D2 EQU $7C1D
|
||
|
EF2 EQU $7C17
|
||
|
E2 EQU $7C12
|
||
|
F2 EQU $7C0D
|
||
|
FS2 EQU $7C08
|
||
|
G3 EQU $7C04
|
||
|
AF3 EQU $3E47
|
||
|
A3 EQU $3E3F
|
||
|
BF3 EQU $3E37
|
||
|
B3 EQU $3E30
|
||
|
C3 EQU $3E29
|
||
|
CS3 EQU $3E23
|
||
|
D3 EQU $3E1D
|
||
|
EF3 EQU $3E17
|
||
|
E3 EQU $3E12
|
||
|
F3 EQU $3E0D
|
||
|
FS3 EQU $3E08
|
||
|
G4 EQU $3E04
|
||
|
AF4 EQU $1F47
|
||
|
A4 EQU $1F3F
|
||
|
BF4 EQU $1F37
|
||
|
B4 EQU $1F30
|
||
|
C4 EQU $1F29
|
||
|
CS4 EQU $1F23
|
||
|
D4 EQU $1F1D
|
||
|
EF4 EQU $1F17
|
||
|
E4 EQU $1F12
|
||
|
F4 EQU $1F0D
|
||
|
FS4 EQU $1F08
|
||
|
RS EQU $0004
|
||
|
TR EQU TG
|
||
|
*
|
||
|
*ORGAN TUNE TABLE
|
||
|
*OSCILLATOR MASK(1),DELAY(1),DURATION(2)
|
||
|
*
|
||
|
ORGTAB EQU *
|
||
|
FCB NINTH-FIFTH-1
|
||
|
FIFTH EQU *
|
||
|
FDB G2,TG/FIF/4
|
||
|
FDB RS,TR/FIF/4
|
||
|
FDB G2,TG/FIF/4
|
||
|
FDB RS,TR/FIF/4
|
||
|
FDB G2,TG/FIF/4
|
||
|
FDB RS,TR/FIF/4
|
||
|
FDB EF1,TEF/FIF/2*7
|
||
|
FCB TUNEND-NINTH
|
||
|
NINTH EQU *
|
||
|
FDB D4,TD/NIN/4
|
||
|
FDB RS,TR/NIN/4
|
||
|
FDB D3,TD/NIN/4
|
||
|
FDB RS,TR/NIN/4*5
|
||
|
FDB A3,TA/NIN/4
|
||
|
FDB RS,TR/NIN/4
|
||
|
FDB A2,TA/NIN/4
|
||
|
FDB RS,TR/NIN/4*5
|
||
|
FDB D2,TD/NIN/4
|
||
|
FDB RS,TR/NIN/4
|
||
|
FDB D1,TD/NIN/4
|
||
|
FDB RS,TR/NIN/4
|
||
|
FDB A2,TA/NIN/4
|
||
|
FDB RS,TR/NIN/4
|
||
|
FDB A1,TA/NIN/4
|
||
|
FDB RS,TR/NIN/4*7
|
||
|
FDB A2,TA/NIN/4
|
||
|
FDB D2,TD/NIN/4
|
||
|
FDB E2,TE/NIN/4
|
||
|
FDB F2,TF/NIN/4
|
||
|
FDB E2,TE/NIN/4
|
||
|
FDB F2,TF/NIN/4
|
||
|
FDB G3,TG/NIN/4
|
||
|
FDB F2,TF/NIN/4
|
||
|
FDB E2,TE/NIN/4
|
||
|
FDB D2,TD/NIN/4
|
||
|
FDB BF3,TBF/NIN/4
|
||
|
FDB A3,TA/NIN/4
|
||
|
FDB G3,TG/NIN/4
|
||
|
FDB F2,TF/NIN/4
|
||
|
FDB E2,TE/NIN/4
|
||
|
FDB D2,TD/NIN/4
|
||
|
FDB CS2,TCS/NIN/4
|
||
|
FDB D2,TD/NIN/4
|
||
|
FDB E2,TE/NIN/4
|
||
|
FDB D3,TD/NIN/4
|
||
|
FDB RS,TR/NIN/4
|
||
|
FDB D2,TD/NIN/4
|
||
|
FDB RS,TR/NIN/4
|
||
|
FDB A3,TA/NIN/4
|
||
|
FDB RS,TR/NIN/4
|
||
|
FDB A2,TA/NIN/4
|
||
|
FDB RS,TR/NIN/4*5
|
||
|
FDB D1,TD/NIN/2*5
|
||
|
TUNEND FCB 0 LAST TUNE
|
||
|
*
|
||
|
*ORGAN NOTE TABLE
|
||
|
*SCALE AF A BF B C CS
|
||
|
NOTTAB FCB $47,$3F,$37,$30,$29,$23
|
||
|
* D EF E F FS G
|
||
|
FCB $1D,$17,$12,$0D,$08,$04
|
||
|
*
|
||
|
*WAVE TABLE
|
||
|
*1ST BYTE= WAVELENGTH
|
||
|
*
|
||
|
GWVTAB EQU *
|
||
|
GS2 FCB 8,127,217,255,217,127,36,0,36
|
||
|
GSSQ2 FCB 8,0,64,128,0,255,0,128,64
|
||
|
GS1 FCB 16,127,176,217,245,255,245,217,176
|
||
|
FCB 127,78,36,9,0,9,36,78
|
||
|
GS12 FCB 16,127,197,236,231,191,141,109,106
|
||
|
FCB 127,148,146,113,64,23,18,57
|
||
|
GSQ22 FCB 16,$FF,$FF,$FF,$FF,0,0,0,0
|
||
|
FCB $FF,$FF,$FF,$FF,0,0,0,0
|
||
|
GS72 FCB 72,138,149,160,171,181,191,200,209
|
||
|
FCB 218,225,232,238,243,247,251,253,254,255
|
||
|
FCB 254,253,251,247,243,238,232,225,218
|
||
|
FCB 209,200,191,181,171,160,149,138,127
|
||
|
FCB 117,106,95,84,74,64,55,46,37,30,23,17,12
|
||
|
FCB 8,4,2,1,0
|
||
|
FCB 1,2,4,8,12,17,23,30,37,46,55,64,74,84
|
||
|
FCB 95,106,117,127
|
||
|
GS1.7 FCB 16,89,123,152,172,179,172,152,123
|
||
|
FCB 89,55,25,6,0,6,25,55
|
||
|
*
|
||
|
*GWAVE SOUND VECTOR TABLE
|
||
|
*VECTOR FORMAT
|
||
|
*BYTE 0: GECHO,GCCNT
|
||
|
*BYTE 1: GECDEC,WAVE#
|
||
|
*BYTE 2: PREDECAY FACTOR
|
||
|
*BYTE 3: GDFINC
|
||
|
*BYTE 4: VARIABLE FREQ COUNT
|
||
|
*BYTE 5: FREQ PATTERN LENGTH
|
||
|
*BYTE 6: FREQ PATTERN OFFSET
|
||
|
*
|
||
|
SVTAB EQU *
|
||
|
HBDV FCB $81,$24,0,0,0,22,HBDSND-GFRTAB 1
|
||
|
STDV FCB $12,$05,$1A,$FF,0,39,STDSND-GFRTAB 2
|
||
|
DP1V FCB $11,$05,$11,1,15,1,SWPAT-GFRTAB 3
|
||
|
XBV FCB $11,$31,0,1,0,13,SPNSND-GFRTAB 4
|
||
|
BBSV FCB $F4,$12,$0,0,0,20,BBSND-GFRTAB 5
|
||
|
HBEV FCB $41,$45,0,0,0,15,HBESND-GFRTAB 6
|
||
|
PROTV FCB $21,$35,$11,$FF,0,13,SPNSND-GFRTAB 7
|
||
|
SPNRV FCB $15,$00,0,$FD,0,1,SPNR-GFRTAB 8
|
||
|
CLDWNV FCB $31,$11,0,1,0,3,COOLDN-GFRTAB 9
|
||
|
SV3 FCB $01,$15,1,1,1,1,BBSND-GFRTAB 10
|
||
|
ED10 FCB $F6,$53,3,0,2,6,ED10FP-GFRTAB 11
|
||
|
ED12 FCB $6A,$10,2,0,2,6,ED13FP-GFRTAB 12
|
||
|
ED17 FCB $1F,$12,0,$FF,$10,4,SPNR-GFRTAB 13
|
||
|
BONV FCB $31,$11,0,$FF,0,13,BONSND-GFRTAB
|
||
|
TRBV FCB $12,$06,$0,$FF,1,9,TRBPAT-GFRTAB
|
||
|
*
|
||
|
*GWAVE FREQ PATTERN TABLE
|
||
|
*
|
||
|
GFRTAB EQU *
|
||
|
*BONUS SOUND
|
||
|
BONSND FCB $A0,$98,$90,$88,$80,$78,$70,$68
|
||
|
FCB $60,$58,$50,$44,$40
|
||
|
*HUNDRED POINT SOUND
|
||
|
HBTSND FCB 1,1,2,2,4,4,8,8,$10,$10,$30,$60,$C0,$E0
|
||
|
*SPINNER SOUND
|
||
|
SPNSND FCB 1,1,2,2,3,4,5,6,7,8,9,$A,$C
|
||
|
*TURBINE START UP
|
||
|
TRBPAT FCB $80,$7C,$78,$74,$70,$74,$78,$7C,$80
|
||
|
*HEARTBEAT DISTORTO
|
||
|
HBDSND FCB 1,1,2,2,4,4,8,8,$10,$20,$28
|
||
|
FCB $30,$38,$40,$48,$50,$60,$70,$80,$A0,$B0,$C0
|
||
|
*SWEEP PATTERN
|
||
|
SWPAT EQU *
|
||
|
*BIGBEN SOUNDS
|
||
|
BBSND FCB 8,64,8,64,8,64,8,64,8,64
|
||
|
FCB 8,64,8,64,8,64,8,64,8,64
|
||
|
*HEARTBEAT ECHO
|
||
|
HBESND FCB 1,2,4,8,9,$A,$B,$C,$E,$F,$10
|
||
|
FCB $12,$14,$16
|
||
|
*SPINNER SOUND "DRIP"
|
||
|
SPNR FCB $40
|
||
|
*COOL DOWNER
|
||
|
COOLDN FCB $10,8,1
|
||
|
*START DISTORTO SOUND
|
||
|
STDSND FCB 1,1,1,1,2,2,3,3,4,4,5,6,8,$A,$C,$10
|
||
|
FCB $14,$18,$20,$30,$40,$50,$40,$30
|
||
|
FCB $20,$10,$C,$A,8,7,6,5,4,3,2,2,1,1,1
|
||
|
*ED'S SOUND 10
|
||
|
ED10FP FCB 7,8,9,$A,$C,8
|
||
|
*ED'S SOUND 13
|
||
|
ED13FP FCB $17,$18,$19,$1A,$1B,$1C
|
||
|
FCB 0,0,0,0 FILLER
|
||
|
*
|
||
|
* VECTORS HERE
|
||
|
*
|
||
|
ORG VECTOR
|
||
|
IRQV FDB IRQ
|
||
|
SWIV FDB SETUP
|
||
|
NMIV FDB NMI
|
||
|
RESETV FDB SETUP
|
||
|
END CKSUM
|