;Mario Bros Sound Code

	ORG	$2200									;TO $27FF

;	TUNE VARIABLES - $34 BYTES
TUNEAREA		EQU	$2200
TUNESOFF		EQU	TUNEAREA+$0000				;1 BYTE  - FLAG FOR ALL TUNES OFF
TUNNUM			EQU	TUNEAREA+$0001				;1 BYTE  - CURRENT TUNE NUMBER BEING PROCESSED
TUNCHANNEL		EQU	TUNEAREA+$0002				;1 BYTE  - CONVERTED FOR INDEX INTO POKEY CHANNEL REGISTERS
TUNFILLER		EQU	TUNEAREA+$0003				;1 BYTE  - NOT USED YET
TUNON			EQU	TUNEAREA+$0004				;4 BYTES - FLAG FOR TUNE PLAYING BY CHANNEL
NOTELO			EQU	TUNEAREA+$0008				;4 BYTES - INDEX INTO NOTE TABLE LOW
NOTEHI			EQU	TUNEAREA+$000C				;4 BYTES - INDEX INTO NOTE TABLE HI
CTLVOL			EQU	TUNEAREA+$0010				;4 BYTES - CONTROL / VOLUME VALUE BY CHANNEL
TUNINDEX		EQU	TUNEAREA+$0014				;4 BYTES - TUNE NUMBER BY CHANNEL
TUNFRM			EQU	TUNEAREA+$0018				;4 BYTES - NUMBER OF FRAMES (DURATION COUNT)
TUNPRIOR		EQU	TUNEAREA+$001C				;4 BYTES - TUNE PRIORITY BY CHANNEL
DURNLO			EQU	TUNEAREA+$0020				;4 BYTES - INDEX INTO DURATION TABLE LOW
DURNHI			EQU	TUNEAREA+$0024				;4 BYTES - INDEX INTO DURATION TABLE HI
DCYSTOR			EQU	TUNEAREA+$0028				;4 BYTES - FOR NOTE DECAY BY CHANNEL
FREQCNT			EQU	TUNEAREA+$002C				;4 BYTES - FOR NOTE DECAY BY CHANNEL
CTLSAV			EQU	TUNEAREA+$0030				;4 BYTES - TO SAVE THE CONTROL VALUE
MUTEMASK		EQU TUNEAREA+$0034
	org $2240

;	SOUND -------------------------------------------------------------------------------------------------------------------->

;	TUNES - THESE ROUTINES HANDLE ALL OF THE SOUNDS

;	RESET POKEY CHIP
RSTPOKEY:
	LDX #$0F 
	LDA #$00
RSTLP:
	STA AUDF0,X									;CLEAR POKEY REGISTERS
	DEX 
	BPL RSTLP 
	LDA #$03
	STA SKCTL	;S									;TURN IT ON
	RTS

;	TURN OFF ALL SOUNDS
STOPTUN
	LDA #$00
	STA AUDC0
	STA AUDC1
	STA AUDC2
	STA AUDC3
	LDA #$01
	STA TUNESOFF
	RTS

;	TURN ON ALL SOUNDS
STARTTUN
	LDA #$00
	STA TUNESOFF
	RTS

;	THIS ROUTINE ERASES ALL TUNES
;	X AND Y ARE PRESERVED
CLEARTUN
	TXA											;STACK REGISTERS
	PHA
	TYA
	PHA
	LDX #$03
CTLOOP
	JSR ENDTUNE									;ERASE CURRENT TUNE
	DEX
	BPL CTLOOP
	PLA											;UNSTACK REGISTERS
	TAY
	PLA
	TAX
	RTS

;	ROUTINE TO KILL A PARTICULAR TUNE - IF IT IS RUNNING
;	INPUT: TUNE NUMBER IN A
;	X AND Y ARE PRESERVED
KILLTUNE
	STA TUNNUM									;SAVE IT
	TXA											;STACK REGISTERS
	PHA
	TYA
	PHA
	LDX #$03									;CHECK ALL CHANNELS
KTLOOP
	LDA TUNON,X									;SEE IF CHANNEL ON
	BEQ KTNEXT
	LDA TUNINDEX,X								;SEE IF HAS TUNE TO BE KILLED
	CMP TUNNUM
	BNE KTNEXT
	JSR ENDTUNE									;ERASE IT
KTNEXT
	DEX
	BPL KTLOOP
	PLA											;UNSTACK REGISTERS
	TAY
	PLA
	TAX
	RTS

;	THIS ROUTINE CLEARS OUT A TUNE CHANNEL
;	INPUT: X IS CHANNEL
ENDTUNE
	LDA #$00
	STA TUNON,X									;INDICATE CHANNEL CLEAR
	STA TUNINDEX,X								;CLEAR TUNE INDEX
	STA DCYSTOR,X
	STA FREQCNT,X
	RTS

;	THIS ROUTINE ENTERS A TUNE INTO ONE OF THE SOUND CHANNELS IF IT CAN
;	INPUT:  TUNE NUMBER IN A
;	X AND Y ARE PRESERVED
DOTUNE
	STA TUNNUM									;SAVE IT
	;LDA AUTOPLAY								;IF IN AUTOPLAY - NO SOUND
	;BEQ DTCONT
	;RTS
DTCONT
	TXA											;STACK REGISTERS
	PHA
	TYA
	PHA
	LDY TUNNUM									;SEE IF WE CAN PUT IT IN
	LDX CHANNLTBL,Y								;GET WHAT CHANNEL TO TRY TO PUT IT IN
	LDA TUNON,X									;SEE IF CHANNEL OPEN
	BEQ DTDOIT
	LDA PRIRTYTBL,Y								;SEE IF WE CAN BUMP CHANNEL
	CMP TUNPRIOR,X
	BMI DTOUT
DTDOIT
	LDA TUNNUM
	TAY											;PUT TUNE IN Y
	STA TUNINDEX,X								;SET THE TUNE INDEX
	LDA #$00									;TURN TUNE OFF WHILE CHANGING IT
	STA TUNON,X
	LDA CNTVOLTBL,Y								;GET TUNE CONTROL / VOLUME
	STA CTLVOL,X
	STA CTLSAV,X								;USED TO RESTORE AFTER DECAY
	LDA NOTETBLLO,Y								;GET TUNE FREQUENCY LOW ADDRESS
	STA NOTELO,X
	LDA NOTETBLHI,Y								;GET TUNE FREQUENCY HIGH ADDRESS
	STA NOTEHI,X
	LDA DURNTBLLO,Y								;GET TUNE DURATION LOW ADDRESS
	STA DURNLO,X
	LDA DURNTBLHI,Y								;GET TUNE DURATION HIGH ADDRESS
	STA DURNHI,X
	LDA PRIRTYTBL,Y								;SET PRIORITY
	STA TUNPRIOR,X
	LDA #$01									;SET FREQ, CTL, AND VOL TO BE SET
	STA TUNFRM,X
	STA TUNON,X									;AND TURN THE TUNE ON!
DTOUT
	PLA											;UNSTACK REGISTERS
	TAY
	PLA
	TAX
	RTS

;  THIS ROUTINE IS CALLED EVERY VBLANK TO TAKE CARE OF TUNES
;  REGISTERS ARE NOT SAVED
TUNER
	LDX #$03									;FOUR TUNES CHANNELS, START WITH LAST
	LDA TUNESOFF
	BEQ TUNLOOP
	RTS
TUNLOOP
	TXA
	ASL
	STA TUNCHANNEL								;CHANNELS ARE OFFSET 0, 2, 4, 6 IN THE POKEY
	TAY
	LDA TUNON,X
	BNE TUNBODY
	;AND MUTEMASK,Y
	STA AUDC0,Y									;CHANNEL OFF - MAKE SURE VOLUME OFF
	JMP TUNNEXT
TUNBODY
	DEC TUNFRM,X								;SEE IF WE'RE DONE WITH THIS SOUND
	BEQ TUNFRMFRQ								;YES - GET NEXT NOTE / DURATION
	DEC FREQCNT,X                               ;REDUCE THE NUMBER OF FRAMES UNTIL NEXT DECAY
	BEQ DEC_VOLUME
	JMP TUNNEXT                                 ;IF WE AREN'T AT ZERO YET, DON'T DECAY

DEC_VOLUME
	LDA DCYSTOR,X                               ;RESET THE DECAY FOR THE NEXT COUNT
	STA FREQCNT,X

	LDA CTLVOL,X                                ;IF VOLUME ALREADY 0 DO NOT DECREMENT
	AND #$0F
	BEQ TUNNEXT
	
	DEC CTLVOL,X                                ;DECREMENT THE VOLUME
	LDA CTLVOL,X
	LDY TUNCHANNEL
	AND MUTEMASK,Y
	STA AUDC0,Y
	JMP TUNNEXT                                 ;GO TO NEXT CHANNEL
TUNFRMFRQ
	LDA DURNLO,X								;GET THE CURRENT DURATION
	STA SOUNDZP
	LDA DURNHI,X
	STA SOUNDZP+1
	LDY #$00
	LDA (SOUNDZP),Y
	BEQ TUNEND									;$00 IN DURATION MEANS TUNE IS OVER
	STA TUNFRM,X
	TAY
	LDA DECAYTBL,Y								;GET THE CURRENT DECAY VALUE INDEXED BY NOTE
	STA DCYSTOR,X								;STORE IT HERE TO REFRESH THE COUNTER FOR THE NEXT DECAY
	STA FREQCNT,X								;ALSO STORE IT HERE FOR TUNER
	LDY TUNCHANNEL
	LDA CTLSAV,X
	STA CTLVOL,X								;RESTORE THE ORIGINAL CONTROL AND VOLUME FOR NEXT NOTE
	
	LDA CTLSAV,X
	;AND MUTEMASK,Y
	STA AUDC0,Y
SKIPWRITEZERO
	LDA NOTELO,X								;GET THE CURRENT FREQUENCY
	
	
	STA SOUNDZP

	LDA NOTEHI,X
	STA SOUNDZP+1
	
	LDY TUNCHANNEL
	LDA #$FF
	STA MUTEMASK, Y
	
	LDY #$00
	LDA (SOUNDZP),Y
	LDY TUNCHANNEL
	CMP #00
	BNE SKIPFLAGREST
	LDA #$F0
	STA MUTEMASK,Y
	LDA #$00
SKIPFLAGREST

	STA AUDF0,Y



	INC NOTELO,X
	BNE TUNNEXTNOTE
	INC NOTEHI,X
TUNNEXTNOTE
	INC DURNLO,X
	BNE TUNNEXT
	INC DURNHI,X
TUNNEXT
	DEX
	CPX #$00
	BMI TUNEXIT
	JMP TUNLOOP
TUNEXIT
	RTS

TUNEND
	LDA NOTELO,X								;SEE IF WE SHOULD REPEAT
	STA SOUNDZP
	LDA NOTEHI,X
	STA SOUNDZP+1
	LDY #$00
	LDA (SOUNDZP),Y
	BMI TUNRESTART
	JSR ENDTUNE
	JMP TUNNEXT
TUNRESTART
	LDA TUNINDEX,X								;GET TUNE NUMBER
	TAY
	LDA CNTVOLTBL,Y								;GET TUNE CONTROL / VOLUME
	STA CTLVOL,X
	STA CTLSAV,X								;USED TO RESTORE AFTER DECAY
	LDA NOTETBLLO,Y								;GET TUNE FREQUENCY LOW ADDRESS
	STA NOTELO,X
	LDA NOTETBLHI,Y								;GET TUNE FREQUENCY HIGH ADDRESS
	STA NOTEHI,X
	LDA DURNTBLLO,Y								;GET TUNE DURATION LOW ADDRESS
	STA DURNLO,X
	LDA DURNTBLHI,Y								;GET TUNE DURATION HIGH ADDRESS
	STA DURNHI,X
	LDY TUNCHANNEL
	LDA CTLVOL,X
	AND $0F
	BEQ SKIPFREQ
	;AND MUTEMASK,Y
	STA AUDC0,Y									;STORE THE CONTROL / VOLUME IN THE CHANNEL
SKIPFREQ	
	LDA #$01									;SET FREQ, CTL, AND VOL TO BE SET
	STA TUNFRM,X
	JMP TUNNEXT

;	DATA FOR TUNES

;	CNTVOLTBL - HIGH NYBBLE FOR VOICE CONTROL (7654XXXX), AND LOW NYBBLE FOR VOLUME (XXXX3210)
CNTVOLTBL:
	.byte $44,$00,$c4,$a6		 	
	

;	PRIORITY TABLE
PRIRTYTBL:
	.byte $02,$02,$02,$02
	
	
;	CHANNEL TABLE ($00 - $03 ARE VALID)
CHANNLTBL:
	.byte $00,$01,$02,$03			; must set $00 and $01 to use 16-bit combined channel
	

;	DECAY TABLE - DEFINES DECAY COUNT INDEXED BY NOTE DURATION
DECAYTBL:
	.byte $01,$01,$01,$01,$02,$02,$02,$02
	.byte $02,$03,$03,$03,$03,$03,$03,$03
	.byte $04,$04,$04,$04,$04,$04,$04,$04
	.byte $05,$05,$05,$05,$05,$05,$05,$05
	.byte $05,$05,$06,$06,$06,$06,$06,$06
	.byte $06,$06,$06,$06,$07,$07,$07,$07
	.byte $07,$07,$07,$07,$07,$07,$07,$07
	.byte $07,$08,$08,$08,$08,$08,$08,$08

;	FREQUENCY TABLE
NOTETBLHI:
	.byte >(TUNE00),>(TUNE01),>(TUNE02),>(TUNE03)
	

NOTETBLLO:
	.byte <(TUNE00),<(TUNE01),<(TUNE02),<(TUNE03)
	

;	DURATION TABLE
DURNTBLHI:
	.byte >(DURN00),>(DURN01),>(DURN02),>(DURN03)
	

DURNTBLLO:
	.byte <(DURN00),<(DURN01),<(DURN02),<(DURN03)
	

;TEMPOS
T1	=	$03
T2      =       (T1*2)
T3      =       (T1*3)
T4      =       (T1*4)
T5      =       (T1*5)
T6      =       (T1*6)
T7      =       (T1*7)
T8      =       (T1*8)
T9      =       (T1*9)
TA      =       (T1*10)
TB      =       (T1*11)
TC      =       (T1*12)
TD      =       (T1*13)
TE      =       (T1*14)
TF      =       (T1*15)
T0      =       (T1*16)

;A	16264	3F88			
;A#	15351	3BF7			
;B	14489	3899			
;C	13675	356B				OCTAVE 2
;C#	12907	326B			
;D	12182	2F96			
;D#	11498	2CEA			
;E	10852	2A64	
;
;F	10243	2803			
;F#	9668	25C4			
;G	9125	23A5			
;G#	8612	21A4			
;A	8128	1FC0			
;A#	7672	1DF8			
;B	7241	1C49			
;C	6834	1AB2	243	F3		OCTAVE 3
;C#	6450	1932	230	E6	
;D	6088	17C8	217	D9	
;D#	5746	1672	204	CC	
;E	5423	152F	193	C1	
;F	5118	13FE	182	B6	
;F#	4830	12DE	172	AC	
;G	4559	11CF	162	A2	
;G#	4303	10CF	153	99	
;A	4061	0FDD	144	90	

;coin grab sound effect
TUNE00:

    .byte 66,11,66,11,91,11,91,11
	.byte 66,11,66,11,91,11,91,11
	
	.byte 251,251,251,251,231,231,231,231,226,226,226,226,51,36,51,36
	.byte 251,251,251,251,241,241,241,241,216,216,216,216,61,106,61,106
	.byte 251,251,251,251,156,156,156,156,141,141,141,141,141,76,141,76
	.byte 251,251,251,251,116,116,116,116,111,111,111,111,36,76,36,76
	
	.byte 251,251,251,251,231,231,231,231,226,226,226,226,51,36,51,36
	.byte 251,251,251,251,241,241,241,241,216,216,216,216,61,106,61,106
	.byte 251,251,251,251,156,156,156,156,141,141,141,141,141,76,141,76
	.byte 251,251,251,251,116,116,116,116,111,111,111,111,36,76,36,76
	
	.byte 251,251,251,251,231,231,231,231,226,226,226,226,51,36,51,36
	.byte 251,251,251,251,241,241,241,241,216,216,216,216,61,106,61,106
	.byte 251,251,251,251,156,156,156,156,141,141,141,141,141,76,141,76
	.byte 251,251,251,251,116,116,116,116,111,111,111,111,36,76,36,76
	
	.byte 251,251,251,251,231,231,231,231,226,226,226,226,51,36,51,36
	.byte 251,251,251,251,241,241,241,241,216,216,216,216,61,106,61,106
	.byte 251,251,251,251,156,156,156,156,141,141,141,141,141,76,141,76
	.byte 251,251,251,251,116,116,116,116,111,111,111,111,36,76,36,76
	
	.byte 251,251,251,251,211,211,211,211,186,186,186,186,91,91,91,91
	.byte 251,251,251,251,156,156,156,156,141,141,141,141,141,76,141,76
	.byte 251,251,251,251,231,231,231,231,226,226,226,226,51,36,51,36
	.byte 251,251,251,251,116,116,116,116,111,111,111,111,36,76,36,76
	
	
	
	
	
	
	
	
	
	
	
	.byte -1

    
	
	
	
DURN00:

	.byte 126,18
	.byte 126,18
	.byte 126,18
	.byte 126,18
	
	.byte 126,18
	.byte 126,18
	.byte 126,18
	.byte 126,18
	
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	
	.byte 0
	
TUNE01:
	.byte 233,14
	.byte 233,14
	.byte 197,14
	.byte 197,14
	
	.byte 233,14
	.byte 233,14
	.byte 197,14
	.byte 197,14
	
	.byte 146,146,146,146,146,146,146,146,146,146,146,146,71,146,71,146
	.byte 101,101,101,101,101,101,101,101,101,101,101,101,101,101,101,101
	.byte 155,155,155,155,155,155,155,155,155,155,155,155,77,155,77,155
	.byte 116,116,116,116,116,116,116,116,131,131,131,131,65,131,65,131
	
	.byte 146,146,146,146,146,146,146,146,146,146,146,146,71,146,71,146
	.byte 101,101,101,101,101,101,101,101,101,101,101,101,50,101,50,101
	.byte 155,155,155,155,155,155,155,155,155,155,155,155,77,155,77,155
	.byte 116,116,116,116,116,116,116,116,131,131,131,131,65,131,65,131
	
	.byte 146,146,146,146,146,146,146,146,146,146,146,146,71,146,71,146
	.byte 101,101,101,101,101,101,101,101,101,101,101,101,50,101,50,101
	.byte 155,155,155,155,155,155,155,155,155,155,155,155,77,155,77,155
	.byte 116,116,116,116,116,116,116,116,131,131,131,131,65,131,65,131
	
	.byte 146,146,146,146,146,146,146,146,146,146,146,146,71,146,71,146
	.byte 101,101,101,101,101,101,101,101,101,101,101,101,50,101,50,101
	.byte 155,155,155,155,155,155,155,155,155,155,155,155,77,155,77,155
	.byte 116,116,116,116,116,116,116,116,131,131,131,131,65,131,65,131
	
	.byte 173,173,173,173,173,173,173,173,173,173,173,173,86,173,86,173
	.byte 155,155,155,155,155,155,155,155,155,155,155,155,77,155,77,155
	.byte 146,146,146,146,146,146,146,146,146,146,146,146,71,146,71,146
	.byte 131,131,131,131,131,131,131,131,131,131,131,131,65,131,65,131
	
	

    
    
	
	
	
	
	.byte -1

   
	
	
DURN01:
	.byte 126,18
	.byte 126,18
	.byte 126,18
	.byte 126,18
	
	.byte 126,18
	.byte 126,18
	.byte 126,18
	.byte 126,18
	
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	.byte 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	
	
	.byte 0
	
	
	

TUNE02:
	  .byte 11,11,11,11
	 .byte 11,177,177,11,177,177,177,11,177,177,11,177,177,177
	 .byte 11,177,177,11,177,177,177,11,177,177,11,177,177,177
	 .byte 11,148,148,11,148,148,148,11,148,148,11,148,148,148
	 .byte 11,148,148,11,148,148,148,11,148,148,11,148,148,148
	 
	 .byte 11,240,223,148
	 .byte 11
	 .byte 11,148,129,174
	 .byte 11
	 .byte 11,240,223,148
	 .byte 11
	 .byte 11,109,117,148,174,129
	 .byte 11
	 .byte 11,177,199,240,148,148,168,177
	 .byte 199,177,199,223,199,177
	 .byte 133,177,199,240,148,148,133,117
	 .byte 117,109,117,148,177,133
	 .byte 133,11,223,199,177
	 .byte 148,11,223,240,223,177
	 .byte 133,11,199,223,240,223
	 .byte 177,168,177,199,11
	
	
	
	
	
	.byte -1
	
DURN02:
   	  .byte 144,144,144,144
	  .byte 9,9,9,9,18,9,9,9,9,9,9,18,9,9
	  .byte 9,9,9,9,18,9,9,9,9,9,9,18,9,9
	  .byte 9,9,9,9,18,9,9,9,9,9,9,18,9,9
	  .byte 9,9,9,9,18,9,9,9,9,9,9,18,9,9
	  .byte 90,18,18,18,144
	  .byte 90,18,18,18,144
	  .byte 90,18,18,18,144
	  .byte 54,18,18,18,18,18,144
	  .byte 126,18,108,18,90,27,27,18
	  .byte 54,9,9,27,27,18
	  .byte 126,18,108,18,90,27,27,18
	  .byte 54,9,9,27,27,18
	  .byte 36,36,27,27,18
	  .byte 36,18,18,27,27,18
	  .byte 36,18,18,27,27,18
	  .byte 54,9,9,36,36
	  
	  
	
	.byte 0
	
	
	
	

;
;	TUNE 1 - COMBINED 16-BIT CHANNEL (High order bytes stored in AUDF1)

TUNE03:
   .byte 0,64,0,60,0,64,0,60,0,81,0
   .byte 0,64,0,60,0,64,0,60,0,81,0
   .byte 0,64,0,60,0,64,0,60,0,81,0
   .byte 0,64,0,60,0,64,0,60,0,81,0,40,40
   
   .byte 0,64,0,60,0,64,0,60,0,81,0
   .byte 0,64,0,60,0,64,0,60,0,81,0
   .byte 0,64,0,60,0,64,0,60,0,81,0
   .byte 0,64,0,60,0,64,0,60,0,81,0,40,40
   
   .byte 0,64,0,60,0,64,0,60,0,81,0
   .byte 0,64,0,60,0,64,0,60,0,81,0
   .byte 0,64,0,60,0,64,0,60,0,81,0
   .byte 0,64,0,60,0,64,0,60,0,81,0,40,40
   
   .byte 0,64,0,60,0,64,0,60,0,81,0
   .byte 0,64,0,60,0,64,0,60,0,81,0
   .byte 0,64,0,60,0,64,0,60,0,81,0
   .byte 0,64,0,60,0,64,0,60,0,81,0,40,40
   
   .byte 0,64,0,60,0,64,0,60,0,81,0
   .byte 0,64,0,60,0,64,0,60,0,81,0
   .byte 0,64,0,60,0,64,0,60,0,81,0
   .byte 0,64,0,60,0,64,0,60,0,81,0,40,40
   
   .byte 0,64,0,60,0,64,0,60,0,81,0
   .byte 0,64,0,60,0,64,0,60,0,81,0
   .byte 0,64,0,60,0,64,0,60,0,81,0
   .byte 0,64,0,60,0,64,0,60,0,81,0,40,40
   
   .byte 0,64,0,60,0,64,0,60,0,81,0
   .byte 0,64,0,60,0,64,0,60,0,81,0
   .byte 0,64,0,60,0,64,0,60,0,81,0
   .byte 0,64,0,60,0,64,0,60,0,81,0,40,40
   
   
   
	
	.byte -1

;A#	15351	3BF7			
;B	14489	3899			
;C	13675	356B				OCTAVE 2
;C#	12907	326B			
;D	12182	2F96			
;D#	11498	2CEA			
;E	10852	2A64	
;F	10243	2803			
;F#	9668	25C4			
;G	9125	23A5			
;G#	8612	21A4			
;A	8128	1FC0			
;A#	7672	1DF8			
;B	7241	1C49			
;C	6834	1AB2	243	F3		OCTAVE 3
;C#	6450	1932	230	E6	
;D	6088	17C8	217	D9	
;D#	5746	1672	204	CC	
;E	5423	152F	193	C1	
;F	5118	13FE	182	B6	
;F#	4830	12DE	172	AC	
;G	4559	11CF	162	A2	
;G#	4303	10CF	153	99	
;A	4061	0FDD	144	90	
DURN03: ;this table MUST be identical to DURN00:
	
	

   .byte 18,9,9,9,18,9,9,9,9,9,36
   .byte 18,9,9,9,18,9,9,9,9,9,36
   .byte 18,9,9,9,18,9,9,9,9,9,36
   .byte 18,9,9,9,18,9,9,9,9,9,18,9,9
   .byte 18,9,9,9,18,9,9,9,9,9,36
   .byte 18,9,9,9,18,9,9,9,9,9,36
   .byte 18,9,9,9,18,9,9,9,9,9,36
   .byte 18,9,9,9,18,9,9,9,9,9,18,9,9
   .byte 18,9,9,9,18,9,9,9,9,9,36
   .byte 18,9,9,9,18,9,9,9,9,9,36
   .byte 18,9,9,9,18,9,9,9,9,9,36
   .byte 18,9,9,9,18,9,9,9,9,9,18,9,9
   .byte 18,9,9,9,18,9,9,9,9,9,36
   .byte 18,9,9,9,18,9,9,9,9,9,36
   .byte 18,9,9,9,18,9,9,9,9,9,36
   .byte 18,9,9,9,18,9,9,9,9,9,18,9,9
   
   .byte 18,9,9,9,18,9,9,9,9,9,36
   .byte 18,9,9,9,18,9,9,9,9,9,36
   .byte 18,9,9,9,18,9,9,9,9,9,36
   .byte 18,9,9,9,18,9,9,9,9,9,18,9,9
   .byte 18,9,9,9,18,9,9,9,9,9,36
   .byte 18,9,9,9,18,9,9,9,9,9,36
   .byte 18,9,9,9,18,9,9,9,9,9,36
   .byte 18,9,9,9,18,9,9,9,9,9,18,9,9
   .byte 18,9,9,9,18,9,9,9,9,9,36
   .byte 18,9,9,9,18,9,9,9,9,9,36
   .byte 18,9,9,9,18,9,9,9,9,9,36
   .byte 18,9,9,9,18,9,9,9,9,9,18,9,9
   
   
	
	.byte 0
	
	

;
;	TUNE 1 - COMBINED 16-BIT CHANNEL (High order bytes stored in AUDF1)

