;***************************************************
; textured rotating/zooming tunnel
; for coco II / Dragon
;
; coded by Simon Jonassen
;***************************************************

		org		$3f00
;***************************************************
; KILL IRQ'S  
;***************************************************

tex		equ		$300

		orcc		#$50
;***************************************************
; DP TO $3f¨
;***************************************************
		lda		#$3f
		tfr		a,dp
		setdp		$3f
;***************************************************
; SOUND ON DAC
;***************************************************
		lda		$ff23
		ora		#8
		sta		$ff23
;***************************************************
;NOTE SETUP (1st PASS)
;***************************************************
		ldu		#NOPAT
		stu		noteptr+1

		jsr		play2

		ldx		#$300
		ldd		#$8080
cls		std		,x++
		cmpx		#$1c00
		blo		cls
;***************************************************
; SG12 / CSS = 1
;***************************************************
		lda		#8
		sta		$ffc5
		sta		$ff22

		ldx		#tex+128

;***************************************************
; screen at $1000
;***************************************************
lp1

scptr		ldu		#$400
		ldy		#angdep
		ldd		#$1000
		std		mycomp+2
		lda		scptr+1
		eora		#$14
		sta		scptr+1
		cmpa		#$10
		bne		rt2				
	
		ldd		#$1000
		std		mycomp+2
		sta		$ffc8	
		sta		$ffcd
		bra		loop1

;***************************************************
; screen at $400
;***************************************************
rt2	

		ldu		#$1000
		ldd		#$1c00
		std		mycomp+2
		sta		$ffc9
		sta		$ffcc

			
tunnelm		macro
		ldd		\1*2,y		;depth in A, angle in B
rotzoom\1	addd		#$0		;zoom + rotate
		andb		#$f0		;make sure it's upper 4 bits
		lsra
		lsra
;		lsra
;		lsra
		sta		sm\1+1
sm\1		orb		#0	
		lda		b,x
		sta		\1,u

		endm


	
;***************************************************
; RETRACE
;***************************************************
loop1		tunnelm 0
		tunnelm 1
		tunnelm 2
		tunnelm 3
		tunnelm 4
		tunnelm 5
		tunnelm 6
		tunnelm 7
		jsr	note
		tunnelm 8
		tunnelm 9
		tunnelm 10
		tunnelm 11
		tunnelm 12
		tunnelm 13
		tunnelm 14
		tunnelm 15
		jsr	note
		tunnelm 16
		tunnelm 17
		tunnelm 18
		tunnelm 19
		tunnelm 20
		tunnelm 21
		tunnelm 22
		tunnelm 23
		jsr	note
		tunnelm 24
		tunnelm 25
		tunnelm 26
		tunnelm 27
		tunnelm 28
		tunnelm 29
		tunnelm 30
		tunnelm 31
		jsr	note
		leay 64,y	(64)	
		leau 32,u
mycomp		cmpu		#$400+3072		3072
		lblo		loop1

;***************************************************
; MOVEMENT
;***************************************************
bbb
		ldd		rotzoom0+1
xx		adda		#5		;speed  5
yy		addb		sintab		;rotation
		std		rotzoom0+1
		std		rotzoom1+1
		std		rotzoom2+1
		std		rotzoom3+1
		std		rotzoom4+1
		std		rotzoom5+1
		std		rotzoom6+1
		std		rotzoom7+1
		std		rotzoom8+1
		std		rotzoom9+1
		std		rotzoom10+1
		std		rotzoom11+1
		std		rotzoom12+1
		std		rotzoom13+1
		std		rotzoom14+1
		std		rotzoom15+1
		std		rotzoom16+1
		std		rotzoom17+1
		std		rotzoom18+1
		std		rotzoom19+1
		std		rotzoom20+1
		std		rotzoom21+1
		std		rotzoom22+1
		std		rotzoom23+1
		std		rotzoom24+1
		std		rotzoom25+1
		std		rotzoom26+1
		std		rotzoom27+1
		std		rotzoom28+1
		std		rotzoom29+1
		std		rotzoom30+1
		std		rotzoom31+1
				

		inc		yy+2
		jsr		note
		

		ldy		#tex
mainloop

t1		lda	>sintab		5
t2		adda	>sintab		5
		lsra	
		lsra
stp3		sta	ctbase+2	4

ctbase		ldu	#coltab		3	
		ldd	,u
		std	,y
		ldd	2,u
		std	2,y
		ldd	4,u		6
		std	4,y		6	
		ldd	6,u		6
		std	6,y		6
		ldd	8,u		6
		std	8,y		6
		ldd	10,u		6
		std	10,y		6
		ldd	12,u		6
		std	12,y		6	
		ldd	14,u		6
		std	14,y		6
		lda	t2+2
		adda	#3
		sta	t2+2

		lda	t1+2		6	167
stp2		adda	#1		
		sta	t1+2		6
		
		jsr	note
	
		leay	16,y		5	16
		cmpy	#tex+255	5

		blo	mainloop	3
done_yloop	
p1		lda	#0	
		deca
		sta	p1+1
		sta	t1+2
		clr	t2+2

okie
		jsr		play2

		jmp	lp1


;************************************************
play2	ldy	#freqtab

noteptr	ldu	#NOPAT	;load pointer to notes

curnote	ldd	,u++		;load 2 notes from pattern
	bpl	plnote		;pattern ends with $80 (-ve flag set)

curpat	ldu	#PATTERNS-2	;load pointer to patterns
	leau	2,u		;bump pattern
	cmpu	#PAT0-2		;end of patterns, time to loop
	blo	nxpat
	ldu	#PATTERNS	;first pattern (rem out for loop to another point)
nxpat	stu	curpat+1
	ldu	,u
	ldd	,u++		;(replace with bra curnote if there are ever blank patterns)

plnote	stu	noteptr+1
	asla			;*2 for note freq lookup
ok1	ldu	a,y		;get the right freq
stor1	stu	freq+1		;store
	aslb			;*2 note freq lookup chan2
ok2	ldu	b,y		;get the freq for chan2
stor2	stu	freq2+1
;************************************************
;out	rts


note	

sum	ldd 	#$0000 
freq	addd 	#$0000 
	std 	sum+1
	sta	c2+1	
sum2	ldd 	#$0000 
freq2	addd 	#$0000 
	std 	sum2+1
	lsra
c2	adda	#0
	rora
gg	sta 	$ff20 	

	rts 


	org	$4a00
;equal tempered 12 note per octave frequency table

freqtab		fdb	0,577,611,647,686,727,770,816,864,915,970,1028
		fdb	1089,1153,1222,1295,1372,1453,1540,1631,1728,1831,1940,2055
		fdb	2177,2307,2444,2589,2743,2906,3079,3262,3456,3662,3879,4110
		fdb	4355,4613,4888,5178,5486,5813,6158,6524,6912,7323,7759,8220
		fdb	8709,9227,9775,10357,10972,11625,12316,13049,13825,14647,15518,16440
	
PATLOOP
PATTERNS
;	fdb PAT0
;	fdb PAT0
;	fdb PAT0
;	fdb PAT0
;	fdb PAT0
;	fdb PAT0
;	fdb PAT0
;	fdb PAT0
;	fdb PAT9
;	fdb PAT9
;	fdb PAT9
;	fdb PAT9
;	fdb PAT9
;	fdb PAT9
;	fdb PAT9
;	fdb PAT9
;	fdb PAT1
;	fdb PAT1
;	fdb PAT1
;	fdb PAT1
;	fdb PAT2
;	fdb PAT2
;	fdb PAT2
;	fdb PAT2
;	fdb PAT3
;	fdb PAT3
;	fdb PAT3
;	fdb PAT3
;	fdb PAT4
;	fdb PAT4
;	fdb PAT4
;	fdb PAT4
;	fdb PAT1
;	fdb PAT1
;	fdb PAT1
;	fdb PAT1
;	fdb PAT2
;	fdb PAT2
;	fdb PAT2
;	fdb PAT2
;	fdb PAT3
;	fdb PAT3
;	fdb PAT3
;	fdb PAT3
;	fdb PAT4
;	fdb PAT4
	fdb PAT4
	fdb PAT4
	fdb PAT10
	fdb PAT10
	fdb PAT10
	fdb PAT10
	fdb PAT11
	fdb PAT11
	fdb PAT11
	fdb PAT11
	fdb PAT12
	fdb PAT12
	fdb PAT12
	fdb PAT12
	fdb PAT13
	fdb PAT13
	fdb PAT14
	fdb PAT14
	fdb PAT11
	fdb PAT11
	fdb PAT11
	fdb PAT11
	fdb PAT12
	fdb PAT12
	fdb PAT12
	fdb PAT12
	fdb PAT13
	fdb PAT13
	fdb PAT13
	fdb PAT13
	fdb PAT14
	fdb PAT14
	fdb PAT14
	fdb PAT14
	fdb PAT5
	fdb PAT5
	fdb PAT5
	fdb PAT5
	fdb PAT6
	fdb PAT6
	fdb PAT6
	fdb PAT6
	fdb PAT7
	fdb PAT7
	fdb PAT7
	fdb PAT7
	fdb PAT8
	fdb PAT8
	fdb PAT8
	fdb PAT8
	fdb PAT5
	fdb PAT5
	fdb PAT5
	fdb PAT5
	fdb PAT6
	fdb PAT6
	fdb PAT6
	fdb PAT6
	fdb PAT7
	fdb PAT7
	fdb PAT7
	fdb PAT7
	fdb PAT8
	fdb PAT8
	fdb PAT8
	fdb PAT8
	fdb PAT15
	fdb PAT15
	fdb PAT15
	fdb PAT19
	fdb PAT20
	fdb PAT20
	fdb PAT20
	fdb PAT21
	fdb PAT22
	fdb PAT22
	fdb PAT22
	fdb PAT22
	fdb PAT23
	fdb PAT23
	fdb PAT23
	fdb PAT28
	fdb PAT24
	fdb PAT24
	fdb PAT24
	fdb PAT24
	fdb PAT25
	fdb PAT25
	fdb PAT25
	fdb PAT25
	fdb PAT26
	fdb PAT26
	fdb PAT26
	fdb PAT26
	fdb PAT27
	fdb PAT27
	fdb PAT27
	fdb PAT27
	fdb PAT24
	fdb PAT24
	fdb PAT24
	fdb PAT24
	fdb PAT25
	fdb PAT25
	fdb PAT25
	fdb PAT25
	fdb PAT26
	fdb PAT26
	fdb PAT26
	fdb PAT26
	fdb PAT27
	fdb PAT27
	fdb PAT27
	fdb PAT27
	fdb PAT29
	fdb PAT29
	fdb PAT29
	fdb PAT29
	fdb PAT30
	fdb PAT30
	fdb PAT30
	fdb PAT30
	fdb PAT31
	fdb PAT31
	fdb PAT31
	fdb PAT31
	fdb PAT32
	fdb PAT32
	fdb PAT32
	fdb PAT32
	fdb PAT17
	fdb PAT17
	fdb PAT33
	fdb PAT33
	fdb PAT18

PAT0
	fcb $f,$f
	fcb $0,$0
	fcb $0,$0
	fcb $0,$0
	fcb $0,$0
	fcb $0,$0
	fcb $0,$0
	fcb $0,$0
	fcb $f,$f
	fcb $0,$0
	fcb $0,$0
	fcb $0,$0
	fcb $0,$0
	fcb $0,$0
	fcb $0,$0
	fcb $0,$0
NOPAT	fcb $80,$00

PAT1
	fcb $f,$f
	fcb $0,$0
	fcb $1b,$0
	fcb $22,$0
	fcb $f,$f
	fcb $0,$0
	fcb $33,$1b
	fcb $3a,$1b
	fcb $f,$f
	fcb $0,$33
	fcb $1b,$3a
	fcb $1b,$0
	fcb $f,$f
	fcb $0,$0
	fcb $f,$0
	fcb $f,$0
	fcb $80,$00

PAT2
	fcb $f,$f
	fcb $0,$0
	fcb $1b,$0
	fcb $22,$0
	fcb $f,$f
	fcb $0,$0
	fcb $31,$1b
	fcb $38,$1b
	fcb $f,$f
	fcb $0,$31
	fcb $1b,$38
	fcb $1b,$0
	fcb $f,$f
	fcb $0,$0
	fcb $f,$0
	fcb $f,$0
	fcb $80,$00

PAT3
	fcb $f,$f
	fcb $0,$0
	fcb $1b,$0
	fcb $22,$0
	fcb $f,$f
	fcb $0,$0
	fcb $2f,$1b
	fcb $36,$1b
	fcb $f,$f
	fcb $0,$2f
	fcb $1b,$36
	fcb $1b,$0
	fcb $f,$f
	fcb $0,$0
	fcb $f,$0
	fcb $f,$0
	fcb $80,$00

PAT4
	fcb $f,$f
	fcb $0,$0
	fcb $1b,$0
	fcb $22,$0
	fcb $f,$f
	fcb $0,$0
	fcb $2e,$1b
	fcb $35,$1b
	fcb $f,$f
	fcb $0,$2e
	fcb $1b,$35
	fcb $1b,$0
	fcb $f,$f
	fcb $0,$0
	fcb $f,$0
	fcb $f,$0
	fcb $80,$00

PAT5
	fcb $f,$f
	fcb $f,$0
	fcb $1b,$0
	fcb $22,$0
	fcb $f,$f
	fcb $f,$0
	fcb $33,$1b
	fcb $3a,$1b
	fcb $f,$f
	fcb $f,$33
	fcb $1b,$3a
	fcb $1b,$0
	fcb $f,$f
	fcb $f,$0
	fcb $1b,$f
	fcb $1b,$0
	fcb $80,$00

PAT6
	fcb $f,$f
	fcb $f,$0
	fcb $1b,$0
	fcb $22,$0
	fcb $f,$f
	fcb $f,$0
	fcb $31,$1b
	fcb $38,$1b
	fcb $f,$f
	fcb $f,$31
	fcb $1b,$38
	fcb $1b,$0
	fcb $f,$f
	fcb $f,$0
	fcb $1b,$f
	fcb $1b,$0
	fcb $80,$00

PAT7
	fcb $f,$f
	fcb $f,$0
	fcb $1b,$0
	fcb $22,$0
	fcb $f,$f
	fcb $f,$0
	fcb $2f,$1b
	fcb $36,$1b
	fcb $f,$f
	fcb $f,$2f
	fcb $1b,$36
	fcb $1b,$0
	fcb $f,$f
	fcb $f,$0
	fcb $1b,$f
	fcb $1b,$0
	fcb $80,$00

PAT8
	fcb $f,$f
	fcb $f,$0
	fcb $1b,$0
	fcb $22,$0
	fcb $f,$f
	fcb $f,$0
	fcb $2e,$1b
	fcb $35,$1b
	fcb $f,$f
	fcb $f,$2e
	fcb $1b,$35
	fcb $1b,$0
	fcb $f,$f
	fcb $f,$0
	fcb $1b,$f
	fcb $1b,$0
	fcb $80,$00

PAT9
	fcb $f,$f
	fcb $0,$0
	fcb $0,$0
	fcb $0,$0
	fcb $0,$f
	fcb $0,$0
	fcb $0,$0
	fcb $0,$0
	fcb $f,$f
	fcb $0,$0
	fcb $0,$0
	fcb $0,$0
	fcb $0,$f
	fcb $0,$0
	fcb $0,$0
	fcb $0,$0
	fcb $80,$00

PAT10
	fcb $f,$f
	fcb $f,$1b
	fcb $1b,$27
	fcb $1b,$1b
	fcb $f,$f
	fcb $f,$1b
	fcb $1b,$27
	fcb $1b,$1b
	fcb $f,$f
	fcb $f,$1b
	fcb $1b,$27
	fcb $1b,$1b
	fcb $f,$f
	fcb $f,$1b
	fcb $1b,$27
	fcb $1b,$1b
	fcb $80,$00

PAT11
	fcb $f,$f
	fcb $f,$1b
	fcb $1b,$2a
	fcb $1b,$1b
	fcb $f,$f
	fcb $f,$1b
	fcb $1b,$2a
	fcb $1b,$1b
	fcb $f,$f
	fcb $f,$1b
	fcb $1b,$2a
	fcb $1b,$1b
	fcb $f,$f
	fcb $f,$1b
	fcb $1b,$2a
	fcb $1b,$1b
	fcb $80,$00

PAT12
	fcb $f,$f
	fcb $f,$1b
	fcb $1b,$29
	fcb $1b,$1b
	fcb $f,$f
	fcb $f,$1b
	fcb $1b,$29
	fcb $1b,$1b
	fcb $f,$f
	fcb $f,$1b
	fcb $1b,$29
	fcb $1b,$1b
	fcb $f,$f
	fcb $f,$1b
	fcb $1b,$29
	fcb $1b,$1b
	fcb $80,$00

PAT13
	fcb $f,$f
	fcb $f,$1b
	fcb $1b,$22
	fcb $1b,$1b
	fcb $f,$f
	fcb $f,$1b
	fcb $1b,$22
	fcb $1b,$1b
	fcb $f,$f
	fcb $f,$1b
	fcb $1b,$22
	fcb $1b,$1b
	fcb $f,$f
	fcb $f,$1b
	fcb $1b,$22
	fcb $1b,$1b
	fcb $80,$00

PAT14
	fcb $f,$f
	fcb $f,$1b
	fcb $1b,$25
	fcb $1b,$1b
	fcb $f,$f
	fcb $f,$1b
	fcb $1b,$25
	fcb $1b,$1b
	fcb $f,$f
	fcb $f,$1b
	fcb $1b,$25
	fcb $1b,$1b
	fcb $f,$f
	fcb $f,$1b
	fcb $1b,$25
	fcb $1b,$1b
	fcb $80,$00

PAT15
	fcb $27,$27
	fcb $2e,$2e
	fcb $0,$0
	fcb $27,$0
	fcb $2e,$0
	fcb $0,$0
	fcb $0,$27
	fcb $0,$2e
	fcb $f,$0
	fcb $f,$27
	fcb $f,$2e
	fcb $f,$0
	fcb $f,$27
	fcb $f,$2e
	fcb $f,$0
	fcb $f,$0
	fcb $80,$00

PAT17
	fcb $f,$1b
	fcb $f,$1b
	fcb $f,$1b
	fcb $f,$1b
	fcb $f,$1b
	fcb $f,$1b
	fcb $f,$1b
	fcb $f,$1b
	fcb $f,$1b
	fcb $f,$1b
	fcb $f,$1b
	fcb $f,$1b
	fcb $f,$1b
	fcb $f,$1b
	fcb $f,$1b
	fcb $f,$1b
	fcb $80,$00

PAT18
	fcb $0,$f
	fcb $0,$f
	fcb $0,$f
	fcb $0,$f
	fcb $0,$f
	fcb $0,$f
	fcb $0,$f
	fcb $0,$f
	fcb $0,$0
	fcb $0,$0
	fcb $0,$0
	fcb $0,$0
	fcb $0,$0
	fcb $0,$0
	fcb $0,$0
	fcb $0,$0
	fcb $80,$00

PAT19
	fcb $27,$27
	fcb $2e,$2e
	fcb $0,$0
	fcb $27,$0
	fcb $2e,$0
	fcb $0,$0
	fcb $0,$27
	fcb $0,$2e
	fcb $1b,$0
	fcb $1b,$27
	fcb $1b,$2e
	fcb $16,$0
	fcb $16,$27
	fcb $16,$2e
	fcb $12,$0
	fcb $12,$0
	fcb $80,$00

PAT20
	fcb $27,$27
	fcb $2e,$2e
	fcb $0,$0
	fcb $27,$0
	fcb $2e,$0
	fcb $0,$0
	fcb $0,$27
	fcb $0,$2e
	fcb $d,$0
	fcb $d,$27
	fcb $d,$2e
	fcb $d,$0
	fcb $d,$27
	fcb $d,$2e
	fcb $d,$0
	fcb $d,$0
	fcb $80,$00

PAT21
	fcb $27,$27
	fcb $2e,$2e
	fcb $0,$0
	fcb $27,$0
	fcb $2e,$0
	fcb $0,$0
	fcb $0,$27
	fcb $0,$2e
	fcb $d,$0
	fcb $d,$27
	fcb $d,$2e
	fcb $11,$0
	fcb $11,$27
	fcb $11,$2e
	fcb $14,$0
	fcb $14,$0
	fcb $80,$00

PAT22
	fcb $27,$27
	fcb $2e,$2e
	fcb $0,$0
	fcb $27,$0
	fcb $2e,$0
	fcb $0,$0
	fcb $0,$27
	fcb $0,$2e
	fcb $14,$0
	fcb $14,$27
	fcb $14,$2e
	fcb $14,$0
	fcb $14,$27
	fcb $14,$2e
	fcb $14,$0
	fcb $14,$0
	fcb $80,$00

PAT23
	fcb $27,$27
	fcb $2e,$2e
	fcb $0,$0
	fcb $27,$0
	fcb $2e,$0
	fcb $0,$0
	fcb $0,$27
	fcb $0,$2e
	fcb $16,$0
	fcb $16,$27
	fcb $16,$2e
	fcb $16,$0
	fcb $16,$27
	fcb $16,$2e
	fcb $16,$0
	fcb $16,$0
	fcb $80,$00

PAT24
	fcb $1b,$22
	fcb $1b,$2e
	fcb $f,$2c
	fcb $f,$27
	fcb $1e,$1b
	fcb $1e,$2e
	fcb $f,$2c
	fcb $f,$27
	fcb $20,$1e
	fcb $20,$2e
	fcb $f,$2c
	fcb $f,$27
	fcb $22,$20
	fcb $22,$2e
	fcb $f,$2c
	fcb $f,$27
	fcb $80,$00

PAT25
	fcb $1b,$22
	fcb $1b,$2e
	fcb $d,$2c
	fcb $d,$27
	fcb $1e,$1b
	fcb $1e,$2e
	fcb $d,$2c
	fcb $d,$27
	fcb $20,$1e
	fcb $20,$2e
	fcb $d,$2c
	fcb $d,$27
	fcb $22,$20
	fcb $22,$2e
	fcb $d,$2c
	fcb $d,$27
	fcb $80,$00

PAT26
	fcb $1b,$22
	fcb $1b,$33
	fcb $b,$2e
	fcb $b,$2a
	fcb $1e,$1b
	fcb $1e,$33
	fcb $b,$2e
	fcb $b,$2a
	fcb $20,$1e
	fcb $20,$33
	fcb $b,$2e
	fcb $b,$2a
	fcb $22,$20
	fcb $22,$33
	fcb $b,$2e
	fcb $b,$2a
	fcb $80,$00

PAT27
	fcb $1b,$22
	fcb $1b,$31
	fcb $a,$2e
	fcb $a,$29
	fcb $1e,$1b
	fcb $1e,$31
	fcb $a,$2e
	fcb $a,$29
	fcb $20,$1e
	fcb $20,$31
	fcb $a,$2e
	fcb $a,$29
	fcb $22,$20
	fcb $22,$31
	fcb $a,$2e
	fcb $a,$29
	fcb $80,$00

PAT28
	fcb $27,$27
	fcb $2e,$2e
	fcb $0,$0
	fcb $27,$0
	fcb $2e,$0
	fcb $0,$0
	fcb $0,$27
	fcb $0,$2e
	fcb $16,$22
	fcb $16,$22
	fcb $15,$21
	fcb $14,$20
	fcb $13,$1f
	fcb $12,$1e
	fcb $11,$1d
	fcb $10,$1c
	fcb $80,$00

PAT29
	fcb $1b,$22
	fcb $1b,$2e
	fcb $0,$2c
	fcb $0,$27
	fcb $1e,$1b
	fcb $1e,$2e
	fcb $0,$2c
	fcb $0,$27
	fcb $20,$1e
	fcb $20,$2e
	fcb $0,$2c
	fcb $0,$27
	fcb $22,$20
	fcb $22,$2e
	fcb $0,$2c
	fcb $0,$27
	fcb $80,$00

PAT30
	fcb $19,$22
	fcb $19,$2e
	fcb $0,$2c
	fcb $0,$27
	fcb $1e,$1b
	fcb $1e,$2e
	fcb $0,$2c
	fcb $0,$27
	fcb $20,$1e
	fcb $20,$2e
	fcb $0,$2c
	fcb $0,$27
	fcb $22,$20
	fcb $22,$2e
	fcb $0,$2c
	fcb $0,$27
	fcb $80,$00

PAT31
	fcb $17,$22
	fcb $17,$33
	fcb $0,$2e
	fcb $0,$2a
	fcb $1e,$1b
	fcb $1e,$33
	fcb $0,$2e
	fcb $0,$2a
	fcb $20,$1e
	fcb $20,$33
	fcb $0,$2e
	fcb $0,$2a
	fcb $22,$20
	fcb $22,$33
	fcb $0,$2e
	fcb $0,$2a
	fcb $80,$00

PAT32
	fcb $16,$22
	fcb $16,$31
	fcb $0,$2e
	fcb $0,$29
	fcb $1e,$1b
	fcb $1e,$31
	fcb $0,$2e
	fcb $0,$29
	fcb $20,$1e
	fcb $20,$31
	fcb $0,$2e
	fcb $0,$29
	fcb $22,$20
	fcb $22,$31
	fcb $0,$2e
	fcb $0,$29
	fcb $80,$00

PAT33
	fcb $f,$f
	fcb $f,$f
	fcb $f,$f
	fcb $f,$f
	fcb $f,$f
	fcb $f,$f
	fcb $f,$f
	fcb $f,$f
	fcb $f,$f
	fcb $f,$f
	fcb $f,$f
	fcb $f,$f
	fcb $f,$f
	fcb $f,$f
	fcb $f,$f
	fcb $f,$f
	fcb $80,$00



	org	$5000


;**************************************
; color defs
;**************************************
black		equ		$80
dk_orange	equ		$20
br_orange	equ		$60
green		equ		$8f
yellow		equ		$9f
blue		equ		$af
red		equ		$bf
white		equ		$cf
cyan		equ		$df
magenta		equ		$ef
orange		equ		$ff

	
coltab_b	macro
		fill	black,2
		fill	dk_orange,2
		fill	red,2
		fill	orange,2
		fill	br_orange,2
		fill	yellow,2
		fill	white,2
		fill	white,2
		fill	white,2
		fill	yellow,2
		fill	br_orange,2
		fill	orange,2
		fill	red,2
		fill	dk_orange,2	
		fill	red,2
		fill	blue,2		(32)
		fill	red,2
		fill	magenta,2
		fill	blue,2
		fill	magenta,2
		fill	red,2
		fill	blue,2
		fill	red,2
		fill	orange,2
		fill	br_orange,2
		fill	yellow,2
		fill	green,2
		fill	yellow,2
		fill	br_orange,2
		fill	orange,2
		fill	red,2
		fill	dk_orange,2		64
		endm


;**************************************
; coltab
;**************************************
coltab		coltab_b
		coltab_b
		coltab_b
		coltab_b


;**************************************
; page aligned sintab
;**************************************

sintab
		fcb	0,-1,-2,-3,-4,-5,-6,-7
		fcb	-8,-9,-10,-11,-12,-13,-14,-15
		fcb	-16,-17,-18,-19,-20,-21,-22,-22
		fcb	-23,-24,-25,-26,-27,-27,-28,-29
		fcb	-30,-30,-31,-32,-32,-33,-34,-34
		fcb	-35,-35,-36,-37,-37,-38,-38,-38
		fcb	-39,-39,-40,-40,-40,-40,-41,-41
		fcb	-41,-41,-42,-42,-42,-42,-42,-42
		fcb	-42,-42,-42,-42,-42,-42,-42,-41
		fcb	-41,-41,-41,-40,-40,-40,-40,-39
		fcb	-39,-38,-38,-38,-37,-37,-36,-35
		fcb	-35,-34,-34,-33,-32,-32,-31,-30
		fcb	-30,-29,-28,-27,-27,-26,-25,-24
		fcb	-23,-22,-22,-21,-20,-19,-18,-17
		fcb	-16,-15,-14,-13,-12,-11,-10,-9
		fcb	-8,-7,-6,-5,-4,-3,-2,-1

		fcb	0,1,2,3,4,5,6,7
		fcb	8,9,10,11,12,13,14,15
		fcb	16,17,18,19,20,21,22,22
		fcb	23,24,25,26,27,27,28,29
		fcb	30,30,31,32,32,33,34,34
		fcb	35,35,36,37,37,38,38,38
		fcb	39,39,40,40,40,40,41,41
		fcb	41,41,42,42,42,42,42,42
		fcb	42,42,42,42,42,42,42,41
		fcb	41,41,41,40,40,40,40,39
		fcb	39,38,38,38,37,37,36,35
		fcb	35,34,34,33,32,32,31,30
		fcb	30,29,28,27,27,26,25,24
		fcb	23,22,22,21,20,19,18,17
		fcb	16,15,14,13,12,11,10,9
		fcb	8,7,6,5,4,3,2,1



;***************************************************
; combined depth / angle table
; depth in A angle in B
;***************************************************

angdep	fdb	$2ABD,$2BB5,$2CAD,$2DA3,$2E9A,$2F8F,$3084,$3178,$316C,$325F,$3352,$3444,$3435,$3426,$3517,$3508,$35F8,$35E9,$34DA,$34CB,$34BC,$33AE,$32A1,$3194,$3188,$307C,$2F71,$2E66,$2D5D,$2C53,$2B4B,$2A43
	fdb	$2AC0,$2BB8,$2CAF,$2DA6,$2E9C,$2F92,$3086,$317B,$326E,$3361,$3453,$3445,$3536,$3527,$3518,$3608,$36F8,$35E8,$35D9,$35CA,$34BB,$34AD,$339F,$3292,$3185,$307A,$2F6E,$2E64,$2D5A,$2C51,$2B48,$2A40
	fdb	$2AC3,$2BBB,$2DB2,$2EA9,$2F9F,$3094,$3189,$327D,$3370,$3363,$3455,$3547,$3537,$3628,$3618,$3608,$36F8,$36E8,$36D8,$35C9,$35B9,$34AB,$339D,$3390,$3283,$3177,$306C,$2F61,$2E57,$2D4E,$2B45,$2A3D
	fdb	$2BC5,$2CBD,$2DB5,$2EAB,$2FA1,$3097,$318B,$327F,$3372,$3465,$3557,$3648,$3639,$3729,$3719,$3708,$37F8,$37E7,$37D7,$36C7,$36B8,$35A9,$349B,$338E,$3281,$3175,$3069,$2F5F,$2E55,$2D4B,$2C43,$2B3B
	fdb	$2BC8,$2CC0,$2DB7,$2EAE,$30A4,$3199,$328E,$3382,$3475,$3567,$3659,$364A,$373A,$372A,$3819,$3808,$38F8,$38E7,$37D6,$37C6,$36B6,$36A7,$3599,$348B,$337E,$3272,$3167,$305C,$2E52,$2D49,$2C40,$2B38
	fdb	$2BCB,$2DC3,$2EBA,$2FB1,$30A7,$319C,$3290,$3384,$3477,$3569,$365B,$374B,$383B,$382B,$391A,$3909,$39F7,$39E6,$38D5,$38C5,$37B5,$36A5,$3597,$3489,$337C,$3270,$3164,$3059,$2F4F,$2E46,$2D3D,$2B35
	fdb	$2CCE,$2DC6,$2EBD,$2FB4,$30AA,$329F,$3393,$3487,$3579,$366B,$375D,$384D,$393D,$392C,$391A,$3A09,$3AF7,$39E6,$39D4,$39C3,$38B3,$37A3,$3695,$3587,$3479,$336D,$3261,$3056,$2F4C,$2E43,$2D3A,$2C32
	fdb	$2CD1,$2DC9,$2FC0,$30B7,$31AC,$32A2,$3396,$3589,$367C,$376E,$385F,$394F,$393E,$3A2D,$3A1B,$3B09,$3BF7,$3AE5,$3AD3,$39C2,$39B1,$38A1,$3792,$3684,$3577,$336A,$325E,$3154,$3049,$2F40,$2D37,$2C2F
	fdb	$2CD4,$2ECC,$2FC3,$30BA,$31B0,$33A5,$3499,$358C,$367F,$3870,$3961,$3951,$3A40,$3B2E,$3B1C,$3C09,$3CF7,$3BE4,$3BD2,$3AC0,$39AF,$399F,$3890,$3681,$3574,$3467,$335B,$3150,$3046,$2F3D,$2E34,$2C2C
	fdb	$2DD7,$2ECF,$2FC6,$31BD,$32B3,$33A8,$359C,$368F,$3781,$3873,$3963,$3A52,$3B41,$3C2F,$3C1C,$3C0A,$3CF6,$3CE4,$3CD1,$3BBF,$3AAE,$399D,$388D,$377F,$3671,$3564,$3358,$324D,$3143,$2F3A,$2E31,$2D29
	fdb	$2DDA,$2ED2,$30C9,$31C0,$32B6,$34AB,$359F,$3792,$3884,$3975,$3A65,$3B54,$3C43,$3D30,$3D1D,$3D0A,$3DF6,$3DE3,$3DD0,$3CBD,$3BAC,$3A9B,$398B,$387C,$376E,$3561,$3455,$324A,$3140,$3037,$2E2E,$2D26
	fdb	$2DDD,$2FD5,$30CD,$32C3,$33B9,$34AE,$36A2,$3795,$3987,$3A78,$3B68,$3C57,$3D44,$3E32,$3E1E,$3E0A,$3EF6,$3EE2,$3ECE,$3DBC,$3CA9,$3B98,$3A88,$3979,$376B,$365E,$3452,$3347,$323D,$3033,$2F2B,$2D23
	fdb	$2EE1,$2FD9,$31D0,$32C7,$33BD,$35B1,$36A5,$3898,$398A,$3B7B,$3C6A,$3D59,$3E46,$3F33,$3F1F,$3F0A,$3FF6,$3FE1,$3FCD,$3EBA,$3DA7,$3C96,$3B85,$3976,$3868,$365B,$354F,$3343,$3239,$3130,$2F27,$2E1F
	fdb	$2EE4,$30DC,$31D4,$32CA,$34C0,$35B5,$37A9,$399C,$3A8D,$3B7E,$3D6D,$3E5B,$3F48,$4034,$4020,$410B,$41F5,$40E0,$40CC,$3FB8,$3EA5,$3D93,$3B82,$3A73,$3964,$3757,$354B,$3440,$3236,$312C,$3024,$2E1C
	fdb	$2EE7,$30E0,$31D7,$33CE,$34C4,$36B8,$38AC,$399F,$3B91,$3C81,$3E70,$3F5E,$404A,$4136,$4121,$420B,$42F5,$41DF,$41CA,$40B6,$3FA2,$3E90,$3C7F,$3B6F,$3961,$3854,$3648,$343C,$3332,$3129,$3020,$2E19
	fdb	$2FEB,$30E3,$32DB,$33D1,$35C7,$37BC,$38B0,$3AA3,$3C94,$3D84,$3F73,$4060,$414C,$4237,$4322,$430B,$43F5,$43DE,$42C9,$41B4,$40A0,$3F8D,$3D7C,$3C6C,$3A5D,$3850,$3744,$3539,$332F,$3225,$301D,$2F15
	fdb	$2FEE,$31E7,$32DE,$34D5,$35CB,$37C0,$39B4,$3BA6,$3C98,$3E88,$3F76,$4163,$424F,$4339,$4423,$440C,$44F4,$44DD,$43C7,$42B1,$419D,$3F8A,$3E78,$3C68,$3B5A,$394C,$3740,$3535,$342B,$3222,$3119,$2F12
	fdb	$2FF2,$31EB,$33E2,$34D9,$36CF,$38C4,$39B8,$3BAA,$3D9B,$3F8B,$4079,$4266,$4351,$443B,$4524,$450C,$45F4,$45DC,$44C5,$43AF,$429A,$4087,$3F75,$3D65,$3B56,$3948,$383C,$3631,$3427,$331E,$3115,$2F0E
	fdb	$30F6,$31EE,$33E6,$35DD,$36D3,$38C8,$3ABC,$3CAE,$3E9F,$408F,$417D,$4369,$4454,$453D,$4625,$470C,$47F4,$46DB,$45C3,$44AC,$4397,$4183,$4071,$3E61,$3C52,$3A44,$3838,$362D,$3523,$331A,$3112,$300A
	fdb	$30FA,$32F2,$33EA,$35E1,$37D7,$39CC,$3BC0,$3DB2,$3FA3,$4193,$4280,$446C,$4656,$473F,$4826,$480D,$48F3,$48DA,$47C1,$46AA,$4494,$4280,$416D,$3F5D,$3D4E,$3B40,$3934,$3729,$351F,$3316,$320E,$3006
	fdb	$30FD,$32F6,$34EE,$36E5,$37DB,$39D1,$3BC4,$3DB7,$3FA8,$4197,$4384,$4570,$4759,$4841,$4928,$490D,$49F3,$49D8,$48BF,$47A7,$4590,$437C,$4169,$3F58,$3D49,$3B3C,$392F,$3725,$361B,$3412,$320A,$3003
	fdb	$3101,$32FA,$34F2,$36EA,$38E0,$3AD5,$3CC9,$3EBB,$40AC,$429B,$4488,$4673,$485C,$4943,$4A29,$4B0E,$4BF2,$4AD7,$49BD,$48A4,$468D,$4478,$4265,$4054,$3E45,$3C37,$3A2B,$3820,$3616,$340E,$3206,$31FF
	fdb	$3105,$33FE,$35F7,$37EE,$39E4,$3BDA,$3DCE,$3FC0,$41B1,$43A0,$468C,$4877,$495F,$4B46,$4C2B,$4C0E,$4CF2,$4CD5,$4BBA,$49A1,$4889,$4674,$4360,$414F,$3F40,$3D32,$3B26,$391C,$3712,$3509,$3302,$31FB
	fdb	$3109,$3303,$35FB,$37F3,$39E9,$3BDE,$3DD2,$40C5,$42B6,$44A4,$4791,$497B,$4B63,$4C49,$4D2C,$4E0F,$4EF1,$4DD4,$4CB7,$4B9D,$4985,$476F,$445C,$424A,$403B,$3D2E,$3B22,$3917,$370D,$3505,$33FD,$31F7
	fdb	$320E,$3307,$35FF,$37F7,$39EE,$3CE3,$3ED7,$40CA,$43BB,$45A9,$4896,$4A7F,$4C67,$4E4C,$4F2E,$4F10,$4FF0,$4FD2,$4EB4,$4C99,$4A81,$486A,$4557,$4345,$4036,$3E29,$3C1D,$3912,$3709,$3501,$33F9,$32F2
	fdb	$3212,$340B,$3604,$38FC,$3AF3,$3CE8,$3FDD,$41CF,$44C0,$46AF,$499B,$4B84,$4D6B,$4F4F,$5130,$5110,$51F0,$51D0,$4FB1,$4D95,$4B7C,$4965,$4651,$4440,$4131,$3F23,$3C18,$3A0D,$3804,$36FC,$34F5,$32EE
	fdb	$3216,$3410,$3609,$3801,$3AF8,$3DEE,$3FE2,$42D5,$45C6,$47B4,$4AA0,$4D89,$4F6F,$5152,$5232,$5311,$53EF,$52CE,$51AE,$4F91,$4D77,$4A60,$474C,$453A,$422B,$3F1E,$3D12,$3A08,$38FF,$36F7,$34F0,$32EA
	fdb	$331B,$3414,$360D,$3906,$3BFD,$3DF3,$40E8,$43DA,$45CB,$48BA,$4BA6,$4E8E,$5074,$5256,$5435,$5512,$55EE,$54CB,$52AA,$508C,$4E72,$4B5A,$4846,$4535,$4326,$4018,$3D0D,$3B03,$39FA,$36F3,$34EC,$33E5
	fdb	$331F,$3519,$3712,$390B,$3B02,$3EF9,$41ED,$43E0,$46D1,$49C0,$4CAC,$4F94,$5279,$545A,$5637,$5713,$57ED,$56C9,$54A6,$5287,$4F6C,$4C54,$4940,$462F,$4320,$4113,$3E07,$3BFE,$39F5,$37EE,$35E7,$33E1
	fdb	$3323,$351E,$3717,$3910,$3C08,$3EFE,$41F3,$44E7,$47D8,$4AC6,$4DB2,$519A,$537E,$565E,$583A,$5914,$59EC,$58C6,$56A2,$5382,$5166,$4D4E,$4A3A,$4728,$4419,$410D,$3E02,$3CF8,$39F0,$37E9,$35E2,$33DD
	fdb	$3328,$3523,$371C,$3A15,$3C0D,$3F04,$42F9,$45ED,$48DE,$4BCD,$4FB9,$52A1,$5584,$5863,$5A3E,$5B15,$5BEB,$5AC2,$589D,$557C,$525F,$4F47,$4B33,$4822,$4513,$4207,$3FFC,$3CF3,$3AEB,$37E4,$35DD,$33D8
	fdb	$342D,$3627,$3821,$3A1B,$3D13,$3F0A,$4200,$46F4,$49E5,$4CD4,$50C0,$53A8,$578B,$5A68,$5C41,$5D16,$5DEA,$5CBF,$5A98,$5775,$5358,$5040,$4C2C,$491B,$460C,$4200,$3FF6,$3DED,$3AE5,$38DF,$36D9,$34D3
	fdb	$3431,$362C,$3827,$3B20,$3D19,$4010,$4306,$46FA,$4AED,$4DDC,$51C8,$55AF,$5892,$5C6E,$5E45,$6018,$60E8,$5EBB,$5C92,$586E,$5551,$5138,$4D24,$4A13,$4606,$43FA,$40F0,$3DE7,$3BE0,$38D9,$36D4,$34CF
	fdb	$3436,$3631,$382C,$3B26,$3E1F,$4017,$440D,$4702,$4AF4,$4EE4,$52D0,$56B7,$5A99,$5E75,$604A,$6219,$62E7,$60B6,$5E8B,$5A67,$5649,$5230,$4E1C,$4A0C,$47FE,$44F3,$40E9,$3EE1,$3BDA,$38D4,$36CF,$34CA
	fdb	$343B,$3636,$3931,$3B2C,$3E25,$411D,$4414,$4809,$4BFC,$4FEC,$53D8,$58C0,$5CA2,$607C,$634F,$651B,$65E5,$63B1,$6084,$5C5E,$5840,$5328,$4F14,$4B04,$48F7,$44EC,$41E3,$3EDB,$3BD4,$39CF,$36CA,$34C5
	fdb	$3440,$373C,$3937,$3C31,$3E2B,$4124,$451B,$4811,$4C04,$50F5,$55E2,$59C9,$5EAB,$6284,$6554,$671D,$67E3,$65AC,$627C,$5E55,$5937,$551E,$500B,$4CFC,$48EF,$45E5,$41DC,$3ED5,$3CCF,$39C9,$37C4,$34C0
	fdb	$3545,$3741,$393C,$3C37,$3F31,$422A,$4522,$4918,$4D0D,$51FE,$56EB,$5BD4,$60B5,$648D,$685B,$6A20,$6AE0,$68A5,$6473,$604B,$5B2C,$5615,$5102,$4DF3,$49E8,$45DE,$42D6,$3FCF,$3CC9,$39C4,$37BF,$35BB
	fdb	$354A,$3746,$3942,$3C3D,$3F38,$4231,$462A,$4921,$4D15,$5207,$57F5,$5CDE,$61C0,$6698,$6B63,$6D23,$6DDD,$6B9D,$6668,$6140,$5C22,$570B,$52F9,$4DEB,$49DF,$46D6,$42CF,$3FC8,$3CC3,$39BE,$37BA,$35B6
	fdb	$354F,$374B,$3A48,$3C43,$3F3E,$4238,$4631,$4A29,$4E1E,$5311,$5800,$5DEA,$63CC,$69A3,$6E6C,$7026,$70DA,$6E94,$695D,$6334,$5D16,$5800,$53EF,$4EE2,$4AD7,$46CF,$42C8,$3FC2,$3CBD,$3AB8,$37B5,$35B1
	fdb	$3554,$3751,$3A4D,$3D4A,$3F45,$4340,$4639,$4A31,$4F28,$531C,$590C,$5FF7,$65DA,$6BB1,$7077,$742B,$74D5,$7089,$6B4F,$6526,$5F09,$59F4,$53E4,$4FD8,$4ACF,$46C7,$43C0,$3FBB,$3DB6,$3AB3,$37AF,$35AC
	fdb	$3559,$3756,$3A53,$3D50,$404C,$4347,$4741,$4B3A,$4F31,$5426,$5A18,$6004,$66E8,$6DC0,$7384,$7730,$77D0,$737C,$6D40,$6618,$60FC,$5AE8,$54DA,$4FCF,$4BC6,$47BF,$43B9,$40B4,$3DB0,$3AAD,$37AA,$35A7
	fdb	$355E,$385C,$3A59,$3D56,$4052,$434E,$4749,$4B43,$503B,$5531,$5B24,$6112,$68F9,$6FD1,$7694,$7B37,$7BC9,$766C,$6F2F,$6807,$61EE,$5BDC,$55CF,$50C5,$4BBD,$47B7,$43B2,$40AE,$3DAA,$3AA7,$38A4,$35A2
	fdb	$3563,$3861,$3A5F,$3D5C,$4059,$4456,$4751,$4B4C,$5045,$553D,$5B31,$6221,$690A,$72E5,$7AA8,$7F41,$7FBF,$7A58,$721B,$69F6,$62DF,$5BCF,$55C3,$50BB,$4BB4,$47AF,$44AA,$40A7,$3DA4,$3AA1,$389F,$359D
	fdb	$3568,$3867,$3A65,$3D63,$4060,$445D,$485A,$4C55,$5150,$5649,$5C3F,$6331,$6B1D,$73FC,$7CC0,$844F,$84B1,$7C40,$7304,$6BE3,$63CF,$5CC1,$56B7,$51B0,$4CAB,$48A6,$44A3,$40A0,$3D9D,$3A9B,$3899,$3598
	fdb	$366E,$386C,$3A6B,$3D69,$4067,$4465,$4862,$4C5F,$515A,$5655,$5C4D,$6442,$6C31,$7515,$7FDE,$8863,$889D,$7F22,$75EB,$6CCF,$64BE,$5CB3,$56AB,$51A6,$4CA1,$489E,$449B,$4099,$3D97,$3A95,$3894,$3692
	fdb	$3673,$3872,$3B71,$3D70,$416E,$446D,$486B,$4C68,$5165,$5761,$5D5B,$6453,$6D47,$7631,$8204,$8C84,$8C7C,$82FC,$76CF,$6DB9,$64AD,$5DA5,$579F,$519B,$4C98,$4895,$4493,$4192,$3D90,$3B8F,$388E,$368D
	fdb	$3678,$3878,$3B77,$3D76,$4175,$4474,$4873,$4C72,$5170,$576D,$5D6A,$6565,$6D5D,$7750,$8431,$91C0,$9140,$84CF,$77B0,$6DA3,$659B,$5D96,$5793,$5190,$4C8E,$488D,$448C,$418B,$3D8A,$3B89,$3888,$3688
	fdb	$367D,$387D,$3B7D,$3D7D,$417C,$447C,$487C,$4C7B,$517B,$577A,$5D79,$6577,$6E74,$7870,$8565,$9431,$94CF,$859B,$7890,$6E8C,$6589,$5D87,$5786,$5185,$4C85,$4884,$4484,$4184,$3D83,$3B83,$3883,$3683
	fdb	$3683,$3883,$3B83,$3D83,$4184,$4484,$4884,$4C85,$5185,$5786,$5D87,$6589,$6E8C,$7890,$859B,$94CF,$9431,$8565,$7870,$6E74,$6577,$5D79,$577A,$517B,$4C7B,$487C,$447C,$417C,$3D7D,$3B7D,$387D,$367D
	fdb	$3688,$3888,$3B89,$3D8A,$418B,$448C,$488D,$4C8E,$5190,$5793,$5D96,$659B,$6DA3,$77B0,$84CF,$9140,$91C0,$8431,$7750,$6D5D,$6565,$5D6A,$576D,$5170,$4C72,$4873,$4474,$4175,$3D76,$3B77,$3878,$3678
	fdb	$368D,$388E,$3B8F,$3D90,$4192,$4493,$4895,$4C98,$519B,$579F,$5DA5,$64AD,$6DB9,$76CF,$82FC,$8C7C,$8C84,$8204,$7631,$6D47,$6453,$5D5B,$5761,$5165,$4C68,$486B,$446D,$416E,$3D70,$3B71,$3872,$3673
	fdb	$3692,$3894,$3A95,$3D97,$4099,$449B,$489E,$4CA1,$51A6,$56AB,$5CB3,$64BE,$6CCF,$75EB,$7F22,$889D,$8863,$7FDE,$7515,$6C31,$6442,$5C4D,$5655,$515A,$4C5F,$4862,$4465,$4067,$3D69,$3A6B,$386C,$366E
	fdb	$3598,$3899,$3A9B,$3D9D,$40A0,$44A3,$48A6,$4CAB,$51B0,$56B7,$5CC1,$63CF,$6BE3,$7304,$7C40,$84B1,$844F,$7CC0,$73FC,$6B1D,$6331,$5C3F,$5649,$5150,$4C55,$485A,$445D,$4060,$3D63,$3A65,$3867,$3568
	fdb	$359D,$389F,$3AA1,$3DA4,$40A7,$44AA,$47AF,$4BB4,$50BB,$55C3,$5BCF,$62DF,$69F6,$721B,$7A58,$7FBF,$7F41,$7AA8,$72E5,$690A,$6221,$5B31,$553D,$5045,$4B4C,$4751,$4456,$4059,$3D5C,$3A5F,$3861,$3563
	fdb	$35A2,$38A4,$3AA7,$3DAA,$40AE,$43B2,$47B7,$4BBD,$50C5,$55CF,$5BDC,$61EE,$6807,$6F2F,$766C,$7BC9,$7B37,$7694,$6FD1,$68F9,$6112,$5B24,$5531,$503B,$4B43,$4749,$434E,$4052,$3D56,$3A59,$385C,$355E
	fdb	$35A7,$37AA,$3AAD,$3DB0,$40B4,$43B9,$47BF,$4BC6,$4FCF,$54DA,$5AE8,$60FC,$6618,$6D40,$737C,$77D0,$7730,$7384,$6DC0,$66E8,$6004,$5A18,$5426,$4F31,$4B3A,$4741,$4347,$404C,$3D50,$3A53,$3756,$3559
	fdb	$35AC,$37AF,$3AB3,$3DB6,$3FBB,$43C0,$46C7,$4ACF,$4FD8,$53E4,$59F4,$5F09,$6526,$6B4F,$7089,$74D5,$742B,$7077,$6BB1,$65DA,$5FF7,$590C,$531C,$4F28,$4A31,$4639,$4340,$3F45,$3D4A,$3A4D,$3751,$3554
	fdb	$35B1,$37B5,$3AB8,$3CBD,$3FC2,$42C8,$46CF,$4AD7,$4EE2,$53EF,$5800,$5D16,$6334,$695D,$6E94,$70DA,$7026,$6E6C,$69A3,$63CC,$5DEA,$5800,$5311,$4E1E,$4A29,$4631,$4238,$3F3E,$3C43,$3A48,$374B,$354F
	fdb	$35B6,$37BA,$39BE,$3CC3,$3FC8,$42CF,$46D6,$49DF,$4DEB,$52F9,$570B,$5C22,$6140,$6668,$6B9D,$6DDD,$6D23,$6B63,$6698,$61C0,$5CDE,$57F5,$5207,$4D15,$4921,$462A,$4231,$3F38,$3C3D,$3942,$3746,$354A
	fdb	$35BB,$37BF,$39C4,$3CC9,$3FCF,$42D6,$45DE,$49E8,$4DF3,$5102,$5615,$5B2C,$604B,$6473,$68A5,$6AE0,$6A20,$685B,$648D,$60B5,$5BD4,$56EB,$51FE,$4D0D,$4918,$4522,$422A,$3F31,$3C37,$393C,$3741,$3545
	fdb	$34C0,$37C4,$39C9,$3CCF,$3ED5,$41DC,$45E5,$48EF,$4CFC,$500B,$551E,$5937,$5E55,$627C,$65AC,$67E3,$671D,$6554,$6284,$5EAB,$59C9,$55E2,$50F5,$4C04,$4811,$451B,$4124,$3E2B,$3C31,$3937,$373C,$3440
	fdb	$34C5,$36CA,$39CF,$3BD4,$3EDB,$41E3,$44EC,$48F7,$4B04,$4F14,$5328,$5840,$5C5E,$6084,$63B1,$65E5,$651B,$634F,$607C,$5CA2,$58C0,$53D8,$4FEC,$4BFC,$4809,$4414,$411D,$3E25,$3B2C,$3931,$3636,$343B
	fdb	$34CA,$36CF,$38D4,$3BDA,$3EE1,$40E9,$44F3,$47FE,$4A0C,$4E1C,$5230,$5649,$5A67,$5E8B,$60B6,$62E7,$6219,$604A,$5E75,$5A99,$56B7,$52D0,$4EE4,$4AF4,$4702,$440D,$4017,$3E1F,$3B26,$382C,$3631,$3436
	fdb	$34CF,$36D4,$38D9,$3BE0,$3DE7,$40F0,$43FA,$4606,$4A13,$4D24,$5138,$5551,$586E,$5C92,$5EBB,$60E8,$6018,$5E45,$5C6E,$5892,$55AF,$51C8,$4DDC,$4AED,$46FA,$4306,$4010,$3D19,$3B20,$3827,$362C,$3431
	fdb	$34D3,$36D9,$38DF,$3AE5,$3DED,$3FF6,$4200,$460C,$491B,$4C2C,$5040,$5358,$5775,$5A98,$5CBF,$5DEA,$5D16,$5C41,$5A68,$578B,$53A8,$50C0,$4CD4,$49E5,$46F4,$4200,$3F0A,$3D13,$3A1B,$3821,$3627,$342D
	fdb	$33D8,$35DD,$37E4,$3AEB,$3CF3,$3FFC,$4207,$4513,$4822,$4B33,$4F47,$525F,$557C,$589D,$5AC2,$5BEB,$5B15,$5A3E,$5863,$5584,$52A1,$4FB9,$4BCD,$48DE,$45ED,$42F9,$3F04,$3C0D,$3A15,$371C,$3523,$3328
	fdb	$33DD,$35E2,$37E9,$39F0,$3CF8,$3E02,$410D,$4419,$4728,$4A3A,$4D4E,$5166,$5382,$56A2,$58C6,$59EC,$5914,$583A,$565E,$537E,$519A,$4DB2,$4AC6,$47D8,$44E7,$41F3,$3EFE,$3C08,$3910,$3717,$351E,$3323
	fdb	$33E1,$35E7,$37EE,$39F5,$3BFE,$3E07,$4113,$4320,$462F,$4940,$4C54,$4F6C,$5287,$54A6,$56C9,$57ED,$5713,$5637,$545A,$5279,$4F94,$4CAC,$49C0,$46D1,$43E0,$41ED,$3EF9,$3B02,$390B,$3712,$3519,$331F
	fdb	$33E5,$34EC,$36F3,$39FA,$3B03,$3D0D,$4018,$4326,$4535,$4846,$4B5A,$4E72,$508C,$52AA,$54CB,$55EE,$5512,$5435,$5256,$5074,$4E8E,$4BA6,$48BA,$45CB,$43DA,$40E8,$3DF3,$3BFD,$3906,$360D,$3414,$331B
	fdb	$32EA,$34F0,$36F7,$38FF,$3A08,$3D12,$3F1E,$422B,$453A,$474C,$4A60,$4D77,$4F91,$51AE,$52CE,$53EF,$5311,$5232,$5152,$4F6F,$4D89,$4AA0,$47B4,$45C6,$42D5,$3FE2,$3DEE,$3AF8,$3801,$3609,$3410,$3216
	fdb	$32EE,$34F5,$36FC,$3804,$3A0D,$3C18,$3F23,$4131,$4440,$4651,$4965,$4B7C,$4D95,$4FB1,$51D0,$51F0,$5110,$5130,$4F4F,$4D6B,$4B84,$499B,$46AF,$44C0,$41CF,$3FDD,$3CE8,$3AF3,$38FC,$3604,$340B,$3212
	fdb	$32F2,$33F9,$3501,$3709,$3912,$3C1D,$3E29,$4036,$4345,$4557,$486A,$4A81,$4C99,$4EB4,$4FD2,$4FF0,$4F10,$4F2E,$4E4C,$4C67,$4A7F,$4896,$45A9,$43BB,$40CA,$3ED7,$3CE3,$39EE,$37F7,$35FF,$3307,$320E
	fdb	$31F7,$33FD,$3505,$370D,$3917,$3B22,$3D2E,$403B,$424A,$445C,$476F,$4985,$4B9D,$4CB7,$4DD4,$4EF1,$4E0F,$4D2C,$4C49,$4B63,$497B,$4791,$44A4,$42B6,$40C5,$3DD2,$3BDE,$39E9,$37F3,$35FB,$3303,$3109
	fdb	$31FB,$3302,$3509,$3712,$391C,$3B26,$3D32,$3F40,$414F,$4360,$4674,$4889,$49A1,$4BBA,$4CD5,$4CF2,$4C0E,$4C2B,$4B46,$495F,$4877,$468C,$43A0,$41B1,$3FC0,$3DCE,$3BDA,$39E4,$37EE,$35F7,$33FE,$3105
	fdb	$31FF,$3206,$340E,$3616,$3820,$3A2B,$3C37,$3E45,$4054,$4265,$4478,$468D,$48A4,$49BD,$4AD7,$4BF2,$4B0E,$4A29,$4943,$485C,$4673,$4488,$429B,$40AC,$3EBB,$3CC9,$3AD5,$38E0,$36EA,$34F2,$32FA,$3101
	fdb	$3003,$320A,$3412,$361B,$3725,$392F,$3B3C,$3D49,$3F58,$4169,$437C,$4590,$47A7,$48BF,$49D8,$49F3,$490D,$4928,$4841,$4759,$4570,$4384,$4197,$3FA8,$3DB7,$3BC4,$39D1,$37DB,$36E5,$34EE,$32F6,$30FD
	fdb	$3006,$320E,$3316,$351F,$3729,$3934,$3B40,$3D4E,$3F5D,$416D,$4280,$4494,$46AA,$47C1,$48DA,$48F3,$480D,$4826,$473F,$4656,$446C,$4280,$4193,$3FA3,$3DB2,$3BC0,$39CC,$37D7,$35E1,$33EA,$32F2,$30FA
	fdb	$300A,$3112,$331A,$3523,$362D,$3838,$3A44,$3C52,$3E61,$4071,$4183,$4397,$44AC,$45C3,$46DB,$47F4,$470C,$4625,$453D,$4454,$4369,$417D,$408F,$3E9F,$3CAE,$3ABC,$38C8,$36D3,$35DD,$33E6,$31EE,$30F6
	fdb	$2F0E,$3115,$331E,$3427,$3631,$383C,$3948,$3B56,$3D65,$3F75,$4087,$429A,$43AF,$44C5,$45DC,$45F4,$450C,$4524,$443B,$4351,$4266,$4079,$3F8B,$3D9B,$3BAA,$39B8,$38C4,$36CF,$34D9,$33E2,$31EB,$2FF2
	fdb	$2F12,$3119,$3222,$342B,$3535,$3740,$394C,$3B5A,$3C68,$3E78,$3F8A,$419D,$42B1,$43C7,$44DD,$44F4,$440C,$4423,$4339,$424F,$4163,$3F76,$3E88,$3C98,$3BA6,$39B4,$37C0,$35CB,$34D5,$32DE,$31E7,$2FEE
	fdb	$2F15,$301D,$3225,$332F,$3539,$3744,$3850,$3A5D,$3C6C,$3D7C,$3F8D,$40A0,$41B4,$42C9,$43DE,$43F5,$430B,$4322,$4237,$414C,$4060,$3F73,$3D84,$3C94,$3AA3,$38B0,$37BC,$35C7,$33D1,$32DB,$30E3,$2FEB
	fdb	$2E19,$3020,$3129,$3332,$343C,$3648,$3854,$3961,$3B6F,$3C7F,$3E90,$3FA2,$40B6,$41CA,$41DF,$42F5,$420B,$4121,$4136,$404A,$3F5E,$3E70,$3C81,$3B91,$399F,$38AC,$36B8,$34C4,$33CE,$31D7,$30E0,$2EE7
	fdb	$2E1C,$3024,$312C,$3236,$3440,$354B,$3757,$3964,$3A73,$3B82,$3D93,$3EA5,$3FB8,$40CC,$40E0,$41F5,$410B,$4020,$4034,$3F48,$3E5B,$3D6D,$3B7E,$3A8D,$399C,$37A9,$35B5,$34C0,$32CA,$31D4,$30DC,$2EE4
	fdb	$2E1F,$2F27,$3130,$3239,$3343,$354F,$365B,$3868,$3976,$3B85,$3C96,$3DA7,$3EBA,$3FCD,$3FE1,$3FF6,$3F0A,$3F1F,$3F33,$3E46,$3D59,$3C6A,$3B7B,$398A,$3898,$36A5,$35B1,$33BD,$32C7,$31D0,$2FD9,$2EE1
	fdb	$2D23,$2F2B,$3033,$323D,$3347,$3452,$365E,$376B,$3979,$3A88,$3B98,$3CA9,$3DBC,$3ECE,$3EE2,$3EF6,$3E0A,$3E1E,$3E32,$3D44,$3C57,$3B68,$3A78,$3987,$3795,$36A2,$34AE,$33B9,$32C3,$30CD,$2FD5,$2DDD
	fdb	$2D26,$2E2E,$3037,$3140,$324A,$3455,$3561,$376E,$387C,$398B,$3A9B,$3BAC,$3CBD,$3DD0,$3DE3,$3DF6,$3D0A,$3D1D,$3D30,$3C43,$3B54,$3A65,$3975,$3884,$3792,$359F,$34AB,$32B6,$31C0,$30C9,$2ED2,$2DDA
	fdb	$2D29,$2E31,$2F3A,$3143,$324D,$3358,$3564,$3671,$377F,$388D,$399D,$3AAE,$3BBF,$3CD1,$3CE4,$3CF6,$3C0A,$3C1C,$3C2F,$3B41,$3A52,$3963,$3873,$3781,$368F,$359C,$33A8,$32B3,$31BD,$2FC6,$2ECF,$2DD7
	fdb	$2C2C,$2E34,$2F3D,$3046,$3150,$335B,$3467,$3574,$3681,$3890,$399F,$39AF,$3AC0,$3BD2,$3BE4,$3CF7,$3C09,$3B1C,$3B2E,$3A40,$3951,$3961,$3870,$367F,$358C,$3499,$33A5,$31B0,$30BA,$2FC3,$2ECC,$2CD4
	fdb	$2C2F,$2D37,$2F40,$3049,$3154,$325E,$336A,$3577,$3684,$3792,$38A1,$39B1,$39C2,$3AD3,$3AE5,$3BF7,$3B09,$3A1B,$3A2D,$393E,$394F,$385F,$376E,$367C,$3589,$3396,$32A2,$31AC,$30B7,$2FC0,$2DC9,$2CD1
	fdb	$2C32,$2D3A,$2E43,$2F4C,$3056,$3261,$336D,$3479,$3587,$3695,$37A3,$38B3,$39C3,$39D4,$39E6,$3AF7,$3A09,$391A,$392C,$393D,$384D,$375D,$366B,$3579,$3487,$3393,$329F,$30AA,$2FB4,$2EBD,$2DC6,$2CCE
	fdb	$2B35,$2D3D,$2E46,$2F4F,$3059,$3164,$3270,$337C,$3489,$3597,$36A5,$37B5,$38C5,$38D5,$39E6,$39F7,$3909,$391A,$382B,$383B,$374B,$365B,$3569,$3477,$3384,$3290,$319C,$30A7,$2FB1,$2EBA,$2DC3,$2BCB
	fdb	$2B38,$2C40,$2D49,$2E52,$305C,$3167,$3272,$337E,$348B,$3599,$36A7,$36B6,$37C6,$37D6,$38E7,$38F8,$3808,$3819,$372A,$373A,$364A,$3659,$3567,$3475,$3382,$328E,$3199,$30A4,$2EAE,$2DB7,$2CC0,$2BC8
	fdb	$2B3B,$2C43,$2D4B,$2E55,$2F5F,$3069,$3175,$3281,$338E,$349B,$35A9,$36B8,$36C7,$37D7,$37E7,$37F8,$3708,$3719,$3729,$3639,$3648,$3557,$3465,$3372,$327F,$318B,$3097,$2FA1,$2EAB,$2DB5,$2CBD,$2BC5
	fdb	$2A3D,$2B45,$2D4E,$2E57,$2F61,$306C,$3177,$3283,$3390,$339D,$34AB,$35B9,$35C9,$36D8,$36E8,$36F8,$3608,$3618,$3628,$3537,$3547,$3455,$3363,$3370,$327D,$3189,$3094,$2F9F,$2EA9,$2DB2,$2BBB,$2AC3
	fdb	$2A40,$2B48,$2C51,$2D5A,$2E64,$2F6E,$307A,$3185,$3292,$339F,$34AD,$34BB,$35CA,$35D9,$35E8,$36F8,$3608,$3518,$3527,$3536,$3445,$3453,$3361,$326E,$317B,$3086,$2F92,$2E9C,$2DA6,$2CAF,$2BB8,$2AC0
	fdb	$2A43,$2B4B,$2C53,$2D5D,$2E66,$2F71,$307C,$3188,$3194,$32A1,$33AE,$34BC,$34CB,$34DA,$35E9,$35F8,$3508,$3517,$3426,$3435,$3444,$3352,$325F,$316C,$3178,$3084,$2F8F,$2E9A,$2DA3,$2CAD,$2BB5,$2ABD

