**** NTSC version OF DIAGONAL SINUS SCROLLER.....
**** CODED BY PLUG 1  ©la$$i© 91

;INSTRUCTIONS
;Edit your scrolltext and then press 'A' to assemble
;then press 'Y' to load the extern files.
;then press 'WO' to save out an executable file

START:		

movem.l		d0-d7/a0-a6,-(sp)

lea		Sound,a1
lea		Module,a0
move.l		#24000/4,d0
muloop:
move.l		(a1)+,(a0)+
dbra		d0,muloop

BSR		init_music

lea		$dff000,a6
lea		Variabler,a5
move.l		#$ffffffff,$44(a6)

BSR		Findcopper
BSR		Others
BSR		Setup_irq
BSR		Setup_copper

Main:
tst.b		42(a5)
beq.s		Main
sf		42(a5)


lsr.w		70(a5)
bne.s		Mainlab1
move.w		#$8000,70(a5)
addq.l		#2,72(a5)
move.l		72(a5),a0
move.w		(a0),CirCol
bpl.s		Mainlab1
move.l		#Colorlist+[24*2],72(a5)
Mainlab1:

lea		StarArea+11,a0
moveq		#11,d1
StarLoop:	
addq.b		#4,(a0)	
addq.b		#3,4(a0)
addq.b		#2,8(a0)
addq.b		#1,12(a0)
add.l		#144,a0
dbra		d1,StarLoop


tst.b		16(a5)
bne.s		Np
move.b		#10,16(a5)

move.l		18(a5),a0
addq.l		#1,18(a5)
tst.b		2(a0)
bpl.s		EoL1
move.l		#ScrollText,18(a5)
EoL1:
moveq		#0,d0
move.b		(a0),d0
sub.b		#32,d0
lsl.l		#5,d0

lea		Font,a0
add.l		d0,a0
move.l		#ScrollMap+[40*150]+28,a1

move.l		#15,d7
PlotLoop:
move.w		(a0)+,d0
or.w		d0,(a1)
add.l		#40,a1
dbra		d7,Plotloop

Np:
subq.b		#1,16(a5)

BSR		Play
lea		$dff000,a6
lea		Variabler,a5

move.l		12(a5),a0
addq.l		#4,12(a5)
tst.w		4(a0)
bpl.s		EoL
move.l		#CircleTab,12(a5)
EoL:
move.w		(a0),CirMap
move.w		2(a0),Cirshift


btst		#6,$bfe001
bne		Main
Endseq:
move.w		76(a5),$96(a6)
move.l		8(a5),$6c
move.w		#$3fff,$9a(a6)
move.w		4(a5),$9a(a6)
move.l		(a5),$80(a6)
BSR 		End_music
movem.l		(sp)+,d0-d7/a0-a6
rts

DC.B		"THIS INTRO IS A CLASSIC TRADEMARK."
DC.B		"CODED BY *PLUG 1*. ALL COPYING OR"
DC.B		" PUBLIC USE WILL NOT BE TOLERATED."
DC.B 		"       (C) CLASSIC 91             "
even
FindCopper:
move.l		$04,a0
move.l		(a0),a0
move.l		(a0),a0
move.l		$26(a0),(a5)
rts

Setup_irq:
move.w		$2(a6),d0
or.w		#$8000,d0
and.w		#$87ff,d0
move.w		d0,76(a5)
move.w		#$0400,$96(a6)
move.w		#$81e0,$96(a6)
move.w		$1c(a6),d0
or.w		#$8000,d0
move.w		d0,4(a5)
move.l		$6c,8(a5)
move.l		#Lev3,$6c
move.w		#$382f,$9a(a6)
move.w		#$8050,$9a(a6)
rts

Setup_copper:
move.l		#Cl,$80(a6)
rts

Others:

lea		$72000,a0
move.l		#[$6000/4]-1,d0
clearloop:
clr.l		(a0)+
dbra		d0,clearloop

lea		dCircle,a0
lea		Circlemap,a1
move.l		#8000/4,d0
celoop:
move.l		(a0)+,(a1)+
dbra		d0,celoop

lea		dFont,a0
lea		Font,a1
move.l		#1920/4,d0
fonloop:
move.l		(a0)+,(a1)+
dbra		d0,fonloop

lea		Cl,a0
lea		Copper,a1

move.l		#ClLenght,d0
lsr.l		#1,d0
subq.l		#1,d0
Coploop:
move.w		(a1)+,(a0)+
dbra		d0,Coploop

lea		ColorList,a3
move.w		#$3109,d0	
move.l		#190,d6
move.w		#$3100,d1
move.w		#$3100,d2
move.w		#$3100,d3
move.w		#$3100,d4
moveq		#0,d7

COPPERLOOP:	
add.w		#$100,d0
add.w		#$100,d1
add.w		#$100,d2
add.w		#$100,d3
add.w		#$100,d4
add.b		#83,d1	
ror.b		#6,d1	
add.b		#93,d2	
rol.b		#2,d2
add.b		#71,d3	
ror.b		#1,d3	
add.b		#124,d4	
rol.b		#5,d4	

move.w		d0,(a0)+
move.l		#$fffe018e,(a0)+		
move.w		(a3)+,(a0)+

lsr.w		#1,d7
bne.s		Nosprite
move.w		#%1000000000000000,d7

move.w		#$0140,(a0)+
move.w		d1,(a0)+	
move.w		#$0150,(a0)+
move.w		d2,(a0)+
move.w		#$0160,(a0)+
move.w		d3,(a0)+
move.w		#$0170,(a0)+
move.w		d4,(a0)+

Nosprite:
dbra		d6,COPPERLOOP
move.l		#$f009fffe,(a0)+
move.l		#$01800747,(a0)+
move.l		#$009c8010,(a0)+
move.l		#$f109fffe,(a0)+
move.l		#$01800a7a,(a0)+
move.l		#$f209fffe,(a0)+
move.l		#$01800fbf,(a0)+
move.l		#$f309fffe,(a0)+
move.l		#$01800a7a,(a0)+
move.l		#$f409fffe,(a0)+
move.l		#$01800747,(a0)+
move.l		#$f509fffe,(a0)+
move.l		#$01800000,(a0)+
move.l		#$ffffffffe,(a0)

lea		StarData,a1
move.l		#$3264ef00,(a1)+
lea		Star1,a0
move.l		#15,d0
move.l		#12,d1
starcloop:
move.l		(a0)+,(a1)+
dbra		d0,starcloop
lea		star1,a0
move.l		#15,d0
dbra		d1,starcloop

lea		StarData2,a1
move.l		#$3264ef00,(a1)+
lea		Star2,a0
move.l		#15,d0
move.l		#12,d1
starcloop2:
move.l		(a0)+,(a1)+
dbra		d0,starcloop2
lea		star2,a0
move.l		#15,d0
dbra		d1,starcloop2

lea		StarData3,a1
move.l		#$3264ef00,(a1)+
lea		Star3,a0
move.l		#15,d0
move.l		#12,d1
starcloop3:
move.l		(a0)+,(a1)+
dbra		d0,starcloop3
lea		star3,a0
move.l		#15,d0
dbra		d1,starcloop3

lea		StarData4,a1
move.l		#$3264ef00,(a1)+
lea		Star4,a0
move.l		#15,d0
move.l		#12,d1
starcloop4:
move.l		(a0)+,(a1)+
dbra		d0,starcloop4
lea		star4,a0
move.l		#15,d0
dbra		d1,starcloop4

lea		StarData5,a0
lea		logo1,a1
lea		logo2,a2
lea		logo3,a3
lea		logo4,a4

move.l		#12,d0
LogoLoop:
move.l		(a1)+,(a0)
move.l		(a2)+,100(a0)
move.l		(a3)+,200(a0)
move.l		(a4)+,300(a0)
addq.l		#4,a0
dbra		d0,LogoLoop

move.l		#StarData,d0
move.w		d0,Star1l
swap		d0
move.w		d0,Star1h
move.l		#StarData2,d0
move.w		d0,Star2l
swap		d0
move.w		d0,Star2h
move.l		#StarData3,d0
move.w		d0,Star3l
swap		d0
move.w		d0,Star3h
move.l		#StarData4,d0
move.w		d0,Star4l
swap		d0
move.w		d0,Star4h
move.l		#StarData5,d0
move.w		d0,Star5l
swap		d0
move.w		d0,Star5h
move.l		#StarData5+100,d0
move.w		d0,Star6l
swap		d0
move.w		d0,Star6h
move.l		#StarData5+200,d0
move.w		d0,Star7l
swap		d0
move.w		d0,Star7h
move.l		#StarData5+300,d0
move.w		d0,Star8l
swap		d0
move.w		d0,Star8h

lea		Diomask,a0
lea		Diomaska,a1
move.l		#200,d0
Dio1loop:
move.l		(a1)+,(a0)+
dbra		d0,Dio1loop

lea		Diomask1,a0
lea		Diomask1a,a1
move.l		#200,d0
Dio2loop:
move.l		(a1)+,(a0)+
dbra		d0,Dio2loop

rts

llll:

Lev3:
movem.l		d0-d7/a0-a6,-(sp)

lea		$dff000,a6
lea		Variabler,a5

btst		#4,$1f(a6)
beq.L		Blitter
move.w		#$0010,$9c(a6)

not.b		44(a5)
beq.s		Change1
move.l		#Plane1,d1
move.l		#Plane2,22(a5)
bra.s		Change2
Change1:
move.l		#Plane2,d1
move.l		#Plane1,22(a5)
Change2:
move.w		d1,Map1l
swap		d1
move.w		d1,Map1h

cmp.l		#SinusEnd,46(a5)
bne.s		Uio
move.l		#SinusTab,46(a5)
Uio:
move.l		46(a5),38(a5)
addq.l		#4,46(a5)

st		26(a5)
st		42(a5)

move.b		#50,28(a5)	;counter
move.l		#107,30(a5)
move.l		#32,34(a5)

move.l		#$01000000,$40(a6)
move.l		22(a5),d0
add.l		#[20*40]+10,d0
move.l		d0,$54(a6)
move.w		#$0014,$66(a6)
move.w		#$230a,$58(a6)

movem.l		(sp)+,d0-d7/a0-a6
rte

Blitter:
move.w		#$0040,$9c(a6)

subq.b		#1,28(a5)
bmi.L		DiagonalBlitt

move.l		38(a5),a0
cmp.l		54(a5),a0
bne.s		Blilab1
move.l		58(a5),38(a5)
Blilab1:
addq.l		#4,38(a5)
addq.l		#2,30(a5)
addq.l		#2,34(a5)

move.l		30(a5),d0
move.l		d0,d1
add.l		(a0),d1
move.l		34(a5),d2
move.l		d2,d3
sub.l		(a0),d3

move.l		22(a5),d7
move.l		50(a5),d6

move.w		d0,d4
and.w		#$f,d4
move.w		d1,d5
and.w		#$f,d5

move.l		62(a5),$4c(a6)
sub.w		d5,d4
beq.s		Blilab2
bmi.s		Blilab2
sub.w		#16,d4
sub.l		#16,d1
move.l		66(a5),$4c(a6)

Blilab2:
neg.w		d4
ror.w		#4,d5
move.w		d5,$42(a6)
ror.w		#4,d4
or.w		#$0fea,d4
move.w		d4,$40(a6)

lsr.w		#4,d0
lsl.b		#1,d0
mulu		#40,d2
add.l		d0,d6
add.l		d2,d6

lsr.w		#4,d1
lsl.b		#1,d1
mulu		#40,d3
add.l		d1,d7
add.l		d3,d7

move.l		d7,$48(a6)
move.l		d6,$50(a6)
move.l		d7,$54(a6)
move.l		#$00220000,$60(a6)
move.l		#$00220022,$64(a6)
move.w		#$403,$dff058
bra.s		BlitterE

DiagonalBlitt:

tst.b		26(a5)
beq.s		BlitterE
sf		26(a5)

move.l		#$f9f00000,$40(a6)
move.l		#Scrollmap,d0
add.l		#[27*40]+10,d0
move.l		d0,$50(a6)
sub.l		#42,d0
move.l		d0,$54(a6)
move.l		#$00100010,$64(a6)
move.w		#$230c,$58(a6)

;bra.s		BlitterE
;Blitteree:
;move.w		#$0fff,$180(a6)

BlitterE:
movem.l		(sp)+,d0-d7/a0-a6
rte


	dc.w	$0,$0,$0,$0,$0,$0,$0,$0
ColorList:

blk.w	24,$fff
	dc.w	$0424,$0535,$0646,$0757,$0868
	dc.w	$0979,$0a8a,$0b9b,$0cac,$0dbd,$0ece,$0fdf
	dc.w	$0fdf,$0ece,$0dbd,$0cac,$0b9b,$0a8a,$0979,$0868
	dc.w	$0757,$0646,$0535,$0424

	dc.w	$0411,$0522,$0633,$0744,$0855
	dc.w	$0966,$0a77,$0b88,$0c99,$0daa,$0ebb,$0fcc
	dc.w	$0fcc,$0ebb,$0daa,$0c99,$0b88,$0a77,$0966,$0855
	dc.w	$0744,$0633,$0522,$0411

	dc.w	$0114,$0225,$0336,$0447,$0558,$0669,$077a
	dc.w	$088b,$099c,$0aad,$0bbe,$0ccf
	dc.w	$0ccf,$0bbe,$0aad,$099c,$088b,$077a,$0669,$0558
	dc.w	$0447,$0336,$0225,$f114

	dc.w	$0411,$0522,$0633,$0744,$0855
	dc.w	$0966,$0a77,$0b88,$0c99,$0daa,$0ebb,$0fcc
	dc.w	$0fcc,$0ebb,$0daa,$0c99,$0b88,$0a77,$0966,$0855
	dc.w	$0744,$0633,$0522,$0411

	dc.w	$0424,$0535,$0646,$0757,$0868
	dc.w	$0979,$0a8a,$0b9b,$0cac,$0dbd,$0ece,$0fdf
	dc.w	$0fdf,$0ece,$0dbd,$0cac,$0b9b,$0a8a,$0979,$0868
	dc.w	$0757,$0646,$0535,$0424

	dc.w	$0411,$0522,$0633,$0744,$0855
	dc.w	$0966,$0a77,$0b88,$0c99,$0daa,$0ebb,$0fcc
	dc.w	$0fcc,$0ebb,$0daa,$0c99,$0b88,$0a77,$0966,$0855
	dc.w	$0744,$0633,$0522,$0411

blk.w	100,$999

ColorList2:

	dc.w	$0ffc,$0aa7,$0774,$0441,$0fcf,$0a7a,$0747,$0414
	dc.w	$0fcc,$0a77,$0744,$0411,$0cfc,$07a7,$0474,$0141
	dc.w	$0cff,$07aa,$0477,$0144,$0ccf,$077a,$0447
;	dc.w	$0,$0,$0,$0,$0,$0,$0,$0
;	dc.w	$0,$0,$0,$0,$0,$0,$0,$0
dc.w	$f114


Copper:
;dc.w	$009c,$8010
dc.w	$0092,$0038,$0094,$00d0,$008e,$3281,$0090,$efc1
dc.w	$0108,$0000,$010a,$0000,$0104,$0038
dc.w	$0100,$3200

cCirShift: dc.w	$0102,$0000

cMap1h:	dc.w	$e0,$0
cMap1l:	dc.w	$e2,$0
	dc.w	$e4,$7
cCirMap: dc.w	$e6,$0
	dc.w	$e8,$7
	dc.w	$ea,$00a0

dc.w	$0180,$0000,$0182,$0000,$0184,$0000,$0186,$00f0
dc.w	$018a,$0f0f,$018c,$0000,$018e,$0fff
dc.w	$0190,$0f0f,$0192,$0ff5,$0194,$0444,$0196,$0fff
dc.w	$0198,$0ff0,$019a,$0f00,$019c,$000f,$019e,$0f4f
dc.w	$01a0,$0000,$01a2,$0ffd,$01a4,$0aa8,$01a6,$0553
dc.w	$01a8,$0000,$01aa,$0ddf,$01ac,$088a,$01ae,$0335
dc.w	$01b0,$0000,$01b2,$0fdd,$01b4,$0a88,$01b6,$0533
dc.w	$01b8,$0000,$01ba,$0dfd,$01bc,$08a8,$01be,$0353

cCirCol:	dc.w	$188,$0
cStar1h:	dc.w	$120,$0
cStar1l:	dc.w	$122,$0
cStar2h:	dc.w	$128,$0
cStar2l:	dc.w	$12a,$0
cStar3h:	dc.w	$130,$0
cStar3l:	dc.w	$132,$0
cStar4h:	dc.w	$138,$0
cStar4l:	dc.w	$13a,$0

cStar5h:	dc.w	$124,$0
cStar5l:	dc.w	$126,$0
cStar6h:	dc.w	$12c,$0
cStar6l:	dc.w	$12e,$0
cStar7h:	dc.w	$134,$0
cStar7l:	dc.w	$136,$0
cStar8h:	dc.w	$13c,$0
cStar8l:	dc.w	$13e,$0

dc.w	$2c09,$fffe,$0180,$0747
dc.w	$2d09,$fffe,$0180,$0a7a
dc.w	$2e09,$fffe,$0180,$0fbf
dc.w	$2f09,$fffe,$0180,$0a7a
dc.w	$3009,$fffe,$0180,$0747
dc.w	$3109,$fffe,$0180,$0000

CopperEnd:

StarGfx:
dc.b	50,100,239,0
blk.l	200,$ffc00000
dc.l	0

star1:
dc.w $0000,$0000
dc.w $07C0,$07C0
dc.w $1830,$1830
dc.w $2008,$2008
dc.w $4A04,$4E04
dc.w $5C04,$5404
dc.w $A806,$B806
dc.w $A006,$A006
dc.w $800A,$800E
dc.w $800A,$800E
dc.w $8012,$801E
dc.w $402C,$4034
dc.w $4054,$406C
dc.w $21A8,$21D8
dc.w $1E30,$1FF0
dc.w $07C0,$07C0
dc.w $0000,$0000
dc.w $0000,$0000

star2:
dc.w $0000,$0000
dc.w $0000,$0000
dc.w $07C0,$07C0
dc.w $1830,$1830
dc.w $2408,$2608
dc.w $2E08,$2A08
dc.w $5404,$5C04
dc.w $5004,$5004
dc.w $400C,$400C
dc.w $4014,$401C
dc.w $602C,$6034
dc.w $2058,$2068
dc.w $31A8,$31D8
dc.w $1E30,$1FF0
dc.w $07C0,$07C0
dc.w $0000,$0000
dc.w $0000,$0000
dc.w $0000,$0000

star3:
dc.w $0000,$0000
dc.w $0000,$0000
dc.w $0000,$0000
dc.w $07C0,$07C0
dc.w $0820,$0820
dc.w $1C10,$1810
dc.w $2408,$2C08
dc.w $2008,$2008
dc.w $2018,$2018
dc.w $2028,$2038
dc.w $2068,$2058
dc.w $1150,$11B0
dc.w $0E20,$0FE0
dc.w $07C0,$07C0
dc.w $0000,$0000
dc.w $0000,$0000
dc.w $0000,$0000
dc.w $0000,$0000

star4:
dc.w $0000,$0000
dc.w $0000,$0000
dc.w $0000,$0000
dc.w $0000,$0000
dc.w $0380,$0380
dc.w $0C60,$0E60
dc.w $0C20,$0820
dc.w $1010,$1010
dc.w $1030,$1030
dc.w $1050,$1070
dc.w $08E0,$08A0
dc.w $0F60,$0FE0
dc.w $0380,$0380
dc.w $0000,$0000
dc.w $0000,$0000
dc.w $0000,$0000
dc.w $0000,$0000
dc.w $0000,$0000

Logo1:
dc.b	230,62,240,0
dc.w $0000,$0000
dc.w $07F8,$0000
dc.w $03F8,$0000
dc.w $0000,$0000
dc.w $0000,$00F8
dc.w $0000,$0078
dc.w $0038,$0038
dc.w $0018,$0018
dc.w $0000,$0000
dc.w $0000,$0000

Logo2:
dc.b	230,70,240,0
dc.w $0000,$0000
dc.w $FA1E,$0000
dc.w $FA1E,$0000
dc.w $0000,$0000
dc.w $0000,$8212
dc.w $0000,$FBDE
dc.w $FBDE,$FBDE
dc.w $FBD2,$FBD2
dc.w $0000,$0000
dc.w $0000,$0000

Logo3:
dc.b	230,78,240,0
dc.w $0000,$0000
dc.w $F7AF,$0000
dc.w $F7AF,$0000
dc.w $0000,$0000
dc.w $0000,$F7A8
dc.w $0000,$10AF
dc.w $F7AF,$F7AF
dc.w $F7AF,$F7AF
dc.w $0000,$0000
dc.w $0000,$0000

Logo4:
dc.b	230,86,240,0
dc.w $0000,$0000
dc.w $1FE0,$0000
dc.w $1FC0,$0000
dc.w $0000,$0000
dc.w $0000,$1F00
dc.w $0000,$1E00
dc.w $1C00,$1C00
dc.w $1800,$1800
dc.w $0000,$0000
dc.w $0000,$0000

CircleTab:
dc.w	0,$88,0,$88,0,$98,0,$98,40,$a8,40,$a8
dc.w	40,$b8,40,$b8,80,$b8,80,$b8
dc.w	120,$c8,120,$c8,160,$c8,160,$c8
dc.w	200,$c8,200,$c8,240,$b8,240,$b8
dc.w	280,$b8,280,$b8,280,$a8,280,$a8
dc.w	320,$98,320,$98,320,$88,320,$88
dc.w	320,$78,320,$78,280,$68,280,$68
dc.w	280,$58,280,$58,240,$58,240,$58
dc.w	200,$48,200,$48,160,$48,160,$48
dc.w	120,$48,120,$48,80,$58,80,$58
dc.w	40,$58,40,$58,40,$68,40,$68
dc.w	0,$78,0,$78,$fffe,$fffe

DioMaska:
dc.w	0,0,0
dc.w	0,0,0
dc.w	0,0,0
dc.w	%0000000000010000,0,0
dc.w	%0000000000111000,0,0
dc.w	%0000000001111000,0,0
dc.w	%0000000011110000,0,0
dc.w	%0000000111100000,0,0
dc.w	%0000001111000000,0,0
dc.w	%0000011110000000,0,0
dc.w	%0000111100000000,0,0
dc.w	%0001111000000000,0,0
dc.w	%0000110000000000,0,0
dc.w	0,0,0
dc.w	0,0,0
dc.w	0,0,0
blk.w	10,0
DioMask1a:
dc.w	0,0,0
dc.w	0,0,0
dc.w	0,0,0
dc.w	0,%0000000000010000,0
dc.w	0,%0000000000111000,0
dc.w	0,%0000000001111000,0
dc.w	0,%0000000011110000,0
dc.w	0,%0000000111100000,0
dc.w	0,%0000001111000000,0
dc.w	0,%0000011110000000,0
dc.w	0,%0000111100000000,0
dc.w	0,%0001111000000000,0
dc.w	0,%0000110000000000,0
dc.w	0,0,0
dc.w	0,0,0
dc.w	0,0,0
blk.w	10,0

SinusTabm:
	blk.l	400,0
SinusTab:

	dc.l	$00000000,$00000000,$00000001,$00000002
	dc.l	$00000003,$00000004,$00000005,$00000006
	dc.l	$00000007,$00000008,$00000008,$00000009
	dc.l	$0000000A,$0000000B,$0000000B,$0000000C
	dc.l	$0000000C,$0000000D,$0000000D,$0000000E
	dc.l	$0000000E,$0000000E,$0000000E,$0000000E
	dc.l	$0000000E,$0000000E,$0000000E,$0000000E
	dc.l	$0000000E,$0000000E,$0000000E,$0000000D
	dc.l	$0000000D,$0000000C,$0000000C,$0000000B
	dc.l	$0000000B,$0000000A,$0000000A,$00000009
	dc.l	$00000008,$00000007,$00000006,$00000006
	dc.l	$00000005,$00000004,$00000003,$00000002
	dc.l	$00000001,$00000000,$00000000,$FFFFFFFF
	dc.l	$FFFFFFFE,$FFFFFFFD,$FFFFFFFC,$FFFFFFFB
	dc.l	$FFFFFFFA,$FFFFFFFA,$FFFFFFF9,$FFFFFFF8
	dc.l	$FFFFFFF7,$FFFFFFF6,$FFFFFFF6,$FFFFFFF5
	dc.l	$FFFFFFF5,$FFFFFFF4,$FFFFFFF4,$FFFFFFF3
	dc.l	$FFFFFFF3,$FFFFFFF2,$FFFFFFF2,$FFFFFFF2
	dc.l	$FFFFFFF2,$FFFFFFF2,$FFFFFFF2,$FFFFFFF2
	dc.l	$FFFFFFF2,$FFFFFFF2,$FFFFFFF2,$FFFFFFF2
	dc.l	$FFFFFFF2,$FFFFFFF3,$FFFFFFF3,$FFFFFFF4
	dc.l	$FFFFFFF4,$FFFFFFF5,$FFFFFFF5,$FFFFFFF6
	dc.l	$FFFFFFF7,$FFFFFFF8,$FFFFFFF8,$FFFFFFF9
	dc.l	$FFFFFFFA,$FFFFFFFB,$FFFFFFFC,$FFFFFFFD
	dc.l	$FFFFFFFE,$FFFFFFFF,$00000000,
SinusEnd:
	dc.l	$00000000

;dc.l	1,2,3,4,5,5,6,6,7,7,7,6,6,5,5,4,3,2,1
;dc.l	-1,-2,-3,-4,-5,-5,-6,-6,-7,-7,-7
;dc.l	-6,-6,-5,-5,-4,-3,-2,-1
;dc.l	1,3,6,8,10,11,12,13,14,14,15,15,15
;dc.l	14,14,13,12,11,10,8,6,3,1
;dc.l	-1,-3,-6,-8,-10,-11,-12,-13,-14,-14,-15,-15,-15
;dc.l	-14,-14,-13,-12,-11,-10,-8,-6,-3,-1

ScrollText:
DC.B	"  THE UNTOUCHABLE CLASSIC           PRESENTS"
DC.B	"  * SPEEDBALL 2 *       CRACKED BY RINGO STAR "
DC.B 	"    CALL US AT:     PURGATORY WHQ   203/225/5482"
DC.B	"   MADHOUSE   313/698/1728    PIRATES SHIP   515/277/1906"
DC.B 	"   MARTYRIUM   713/946/5141"
DC.B 	"   DOWNTOWN   ++31/575029313    LINE TO HEAVEN"
DC.B 	"   ++41/62260277    LIGHT BOARD   ++44/815716025"
DC.B    "   INNER CIRCLE   ++46/31304142    RED AND BLACK   ++39/59651963"
DC.B 	"         OR WRITE TO:   CLASSIC EUROPE / ARSNAS 12621 / "
DC.B 	"S/44297 KODE / SWEDEN    OR   CLASSIC USA / PO.BOX 814"
DC.B 	" / UNION LAKE,MI 48387 / USA    "
DC.B	"      SIGNED  CLASSIC 91               ",$ff,$ff
even

vvvv:
Variabler:
dc.l	0		;oldcop 0
dc.l	0		;oldirq 4
dc.l	0		;oldlev3 8
dc.l	CircleTab	;circleptr 12
dc.b	1,0		;TextCounter 16
dc.l	Scrolltext	;Scrolltextptr 18
dc.l	Plane1		;PlanePtr 22
dc.b	0,0		;diagonal blitt dummy 26
dc.b	0,0		;Blitt counter 28
dc.l	0		;X 30
dc.l	0		;Y 34
dc.l	SinusTabm	;Sinus Ptr 38
dc.b	0,0		;Frame bit 42
dc.b	0,0		;Change BitPlane bit 44
dc.l	SinusTabm	;Sinus Ptr 1 46
dc.l	ScrollMap	;dum 50
dc.l	SinusEnd	;dum 54
dc.l	SinusTab	;dum 58
dc.l	DioMask		;dum 62
dc.l	DioMask1	;dum 66
dc.w	0		;Color Counter 70
dc.l	Colorlist+[24*2]	;color ptr 72
dc.l	0		;old DMA status 76

StarData:	equ	$5c000
StarData2:	equ	$5d000
StarData3:	equ	$5e000
StarData4:	equ	$5f000
StarData5:	equ	$5f800
Cl:		equ	$60000
Circle:		equ	$65000
Font:		equ	$6f000
CircleMap:	equ	$700a0
Plane1:		equ	$72000
Plane2:		equ	$74000
ScrollMap:	equ	$76000
DioMask:	equ	$78000
DioMask1:	equ	$78800
Module =	$79000
;------------------------------------------------
CLlenght:	equ	CopperEnd-Copper
Star1h:		equ	Cl+[cstar1h-copper]+2
Star1l:		equ	Cl+[cstar1l-copper]+2
Star2h:		equ	Cl+[cstar2h-copper]+2
Star2l:		equ	Cl+[cstar2l-copper]+2
Star3h:		equ	Cl+[cstar3h-copper]+2
Star3l:		equ	Cl+[cstar3l-copper]+2
Star4h:		equ	Cl+[cstar4h-copper]+2
Star4l:		equ	Cl+[cstar4l-copper]+2
Star5h:		equ	Cl+[cstar5h-copper]+2
Star5l:		equ	Cl+[cstar5l-copper]+2
Star6h:		equ	Cl+[cstar6h-copper]+2
Star6l:		equ	Cl+[cstar6l-copper]+2
Star7h:		equ	Cl+[cstar7h-copper]+2
Star7l:		equ	Cl+[cstar7l-copper]+2
Star8h:		equ	Cl+[cstar8h-copper]+2
Star8l:		equ	Cl+[cstar8l-copper]+2

Map1h:		equ	Cl+[cmap1h-copper]+2
Map1l:		equ	Cl+[cmap1l-copper]+2
StarArea:	equ	Cl+Cllenght
CirShift:	equ	Cl+[cCirshift-copper]+2
CirMap:		equ	Cl+[cCirMap-copper]+2
CirCol:		equ	Cl+[cCirCol-copper]+2

>Extern "df1:Circle.raw0",Dcircle
>Extern "df1:font.Plug1",Dfont
>extern "df1:mod.arcane",Sound


*********************************************************
**  Amiga FUTURE COMPOSER  »» V1.4 ««  Replay routine  **
*********************************************************

;Doesn't work with V1.0 - V1.3 modules !!

END_MUSIC:
clr.w onoff
clr.l $dff0a6
clr.l $dff0b6
clr.l $dff0c6
clr.l $dff0d6
move.w #$000f,$dff096
bclr #1,$bfe001
rts

INIT_MUSIC:
move.w #1,onoff
bset #1,$bfe001
lea MODULE,a0
lea 180(a0),a1
move.l a1,SEQpoint
move.l a0,a1
add.l 8(a0),a1
move.l a1,PATpoint
move.l a0,a1
add.l 16(a0),a1
move.l a1,FRQpoint
move.l a0,a1
add.l 24(a0),a1
move.l a1,VOLpoint
move.l 4(a0),d0
divu #13,d0

lea 40(a0),a1
lea SOUNDINFO+4(pc),a2
moveq #10-1,d1
initloop:
move.w (a1)+,(a2)+
move.l (a1)+,(a2)+
adda.w #10,a2
dbf d1,initloop
move.l a0,d1
add.l 32(a0),d1
lea SOUNDINFO(pc),a3
move.l d1,(a3)+
moveq #9-1,d3
moveq #0,d2
initloop1:
move.w (a3),d2
add.l d2,d1
add.l d2,d1
addq.l #2,d1
adda.w #12,a3
move.l d1,(a3)+
dbf d3,initloop1

lea 100(a0),a1
lea SOUNDINFO+[10*16](pc),a2
move.l a0,a3
add.l 36(a0),a3

moveq #80-1,d1
moveq #0,d2
initloop2:
move.l a3,(a2)+
move.b (a1)+,d2
move.w d2,(a2)+
clr.w (a2)+
move.w d2,(a2)+
addq.w #6,a2
add.w d2,a3
add.w d2,a3
dbf d1,initloop2

move.l SEQpoint(pc),a0
moveq #0,d2
move.b 12(a0),d2		;Get replay speed
bne.s speedok
move.b #3,d2			;Set default speed
speedok:
move.w d2,respcnt		;Init repspeed counter
move.w d2,repspd
INIT2:
clr.w audtemp
move.w #$000f,$dff096		;Disable audio DMA
move.w #$0780,$dff09a		;Disable audio IRQ
moveq #0,d7
mulu #13,d0
moveq #4-1,d6			;Number of soundchannels-1
lea V1data(pc),a0		;Point to 1st voice data area
lea silent(pc),a1
lea Chandata(pc),a2
initloop3:
move.l a1,10(a0)
move.l a1,18(a0)
clr.w 4(a0)
move.w #$000d,6(a0)
clr.w 8(a0)
clr.l 14(a0)
move.b #$01,23(a0)
move.b #$01,24(a0)
clr.b 25(a0)
clr.l 26(a0)
clr.w 30(a0)
clr.l 38(a0)
clr.w 42(a0)
clr.l 44(a0)
clr.l 48(a0)
clr.w 56(a0)
moveq #$00,d3
move.w (a2)+,d1
move.w (a2),d3
divu #$0003,d3
moveq #0,d4
bset d3,d4
move.w d4,32(a0)
move.w (a2)+,d3
andi.l #$00ff,d3
andi.l #$00ff,d1
lea $dff0a0,a6
add.w d1,a6
move.l #$0000,(a6)
move.w #$0100,4(a6)
move.w #$0000,6(a6)
move.w #$0000,8(a6)
move.l a6,60(a0)
move.l SEQpoint(pc),(a0)
move.l SEQpoint(pc),52(a0)
add.l d0,52(a0)
add.l d3,52(a0)
add.l d7,(a0)
add.l d3,(a0)
move.l (a0),a3
move.b (a3),d1
andi.l #$00ff,d1
lsl.w #6,d1
move.l PATpoint(pc),a4
adda.w d1,a4
move.l a4,34(a0)
move.b 1(a3),44(a0)
move.b 2(a3),22(a0)
lea $4a(a0),a0		;Point to next voice's data area
dbf d6,initloop3
rts


PLAY:
lea audtemp(pc),a5
tst.w 8(a5)
bne.s music_on
rts
music_on:
subq.w #1,4(a5)			;Decrease replayspeed counter
bne.s nonewnote
move.w 6(a5),4(a5)		;Restore replayspeed counter
moveq #0,d5
moveq #6,d6
lea V1data(pc),a0		;Point to voice1 data area
bsr.L new_note
lea V2data(pc),a0		;Point to voice2 data area
bsr.L new_note
lea V3data(pc),a0		;Point to voice3 data area
bsr.L new_note
lea V4data(pc),a0		;Point to voice4 data area
bsr.L new_note
nonewnote:
clr.w (a5)
lea $dff000,a6
lea V1data(pc),a0
bsr.L effects
move.l d0,$a6(a6)
lea V2data(pc),a0
bsr.L effects
move.l d0,$b6(a6)
lea V3data(pc),a0
bsr.L effects
move.l d0,$c6(a6)
lea V4data(pc),a0
bsr.L effects
move.l d0,$d6(a6)
lea V1data(pc),a0
move.l 68+[0*74](a0),a1		;Get samplepointer
adda.w 64+[0*74](a0),a1		;add repeat_start
move.l 68+[1*74](a0),a2
adda.w 64+[1*74](a0),a2
move.l 68+[2*74](a0),a3
adda.w 64+[2*74](a0),a3
move.l 68+[3*74](a0),a4
adda.w 64+[3*74](a0),a4
move.w 66+[0*74](a0),d1		;Get repeat_length
move.w 66+[1*74](a0),d2
move.w 66+[2*74](a0),d3
move.w 66+[3*74](a0),d4
moveq #2,d0
moveq #0,d5
move.w (a5),d7
ori.w #$8000,d7			;Set/clr bit = 1
move.w d7,$dff096		;Enable audio DMA
chan1:
lea V1data+72(pc),a0
move.w (a0),d7
beq.s chan2
subq.w #1,(a0)
cmp.w d0,d7
bne.s chan2
move.w d5,(a0)
move.l a1,$a0(a6)		;Set samplestart
move.w d1,$a4(a6)		;Set samplelength
chan2:
lea V2data+72(pc),a0
move.w (a0),d7
beq.s chan3
subq.w #1,(a0)
cmp.w d0,d7
bne.s chan3
move.w d5,(a0)
move.l a2,$b0(a6)
move.w d2,$b4(a6)
chan3:
lea V3data+72(pc),a0
move.w (a0),d7
beq.s chan4
subq.w #1,(a0)
cmp.w d0,d7
bne.s chan4
move.w d5,(a0)
move.l a3,$c0(a6)
move.w d3,$c4(a6)
chan4:
lea V4data+72(pc),a0
move.w (a0),d7
beq.s endplay
subq.w #1,(a0)
cmp.w d0,d7
bne.s endplay
move.w d5,(a0)
move.l a4,$d0(a6)
move.w d4,$d4(a6)
endplay:
rts

NEW_NOTE:
move.l 34(a0),a1
adda.w 40(a0),a1
cmp.b #$49,(a1)		;Check "END" mark in pattern
beq.s patend
cmp.w #64,40(a0)		;Have all the notes been played?
bne.L samepat
patend:
move.w d5,40(a0)
move.l (a0),a2
adda.w 6(a0),a2		;Point to next sequence row
cmpa.l 52(a0),a2	;Is it the end?
bne.s notend
move.w d5,6(a0)		;yes!
move.l (a0),a2		;Point to first sequence
notend:
lea spdtemp(pc),a3
moveq #1,d1
addq.b #1,(a3)
cmpi.b #5,(a3)
bne.s nonewspd
move.b d1,(a3)
move.b 12(a2),d1	;Get new replay speed
beq.s nonewspd
move.w d1,2(a3)		;store in counter
move.w d1,4(a3)
nonewspd:
move.b (a2)+,d1		;Pattern to play
move.b (a2)+,44(a0)	;Transpose value
move.b (a2)+,22(a0)	;Soundtranspose value
lsl.w d6,d1
move.l PATpoint(pc),a1	;Get pattern pointer
add.w d1,a1
move.l a1,34(a0)
addi.w #$000d,6(a0)
samepat:
move.b 1(a1),d1		;Get info byte
move.b (a1)+,d0		;Get note
bne.s ww1
andi.w #%11000000,d1
beq.s noport
bra.s ww11
ww1:
move.w d5,56(a0)
ww11:
move.b d5,47(a0)
btst #7,d1
beq.s noport
move.b 2(a1),47(a0)	
noport:
andi.w #$007f,d0
beq.L nextnote
move.b d0,8(a0)
move.b (a1),d1
move.b d1,9(a0)
move.w 32(a0),d3
or.w d3,(a5)
move.w d3,$dff096
andi.w #$003f,d1	;Max 64 instruments
add.b 22(a0),d1		;add Soundtranspose
move.l VOLpoint(pc),a2
lsl.w d6,d1
adda.w d1,a2
move.w d5,16(a0)
move.b (a2),23(a0)
move.b (a2)+,24(a0)
moveq #0,d1
move.b (a2)+,d1
move.b (a2)+,27(a0)
move.b #$40,46(a0)
move.b (a2),28(a0)
move.b (a2)+,29(a0)
move.b (a2)+,30(a0)
move.l a2,10(a0)
move.l FRQpoint(pc),a2
lsl.w d6,d1
adda.w d1,a2
move.l a2,18(a0)
move.w d5,50(a0)
move.b d5,25(a0)
move.b d5,26(a0)
nextnote:
addq.w #2,40(a0)
rts

EFFECTS:
moveq #0,d7
testsustain:
tst.b 26(a0)		;Is sustain counter = 0
beq.s sustzero
subq.b #1,26(a0)	;if no, decrease counter
bra.L VOLUfx
sustzero:		;Next part of effect sequence
move.l 18(a0),a1	;can be executed now.
adda.w 50(a0),a1
testeffects:
cmpi.b #$e1,(a1)	;E1 = end of FREQseq sequence
beq.L VOLUfx
move.b (a1),d0
cmpi.b #$e0,d0		;E0 = loop to other part of sequence
bne.s testnewsound
move.b 1(a1),d1		;loop to start of sequence + 1(a1)
andi.w #$003f,d1
move.w d1,50(a0)
move.l 18(a0),a1
adda.w d1,a1
move.b (a1),d0
testnewsound:
cmpi.b #$e2,d0		;E2 = set waveform
bne.s testE4
move.w 32(a0),d1
or.w d1,(a5)
move.w d1,$dff096
moveq #0,d0
move.b 1(a1),d0
lea SOUNDINFO(pc),a4
lsl.w #4,d0
adda.w d0,a4
move.l 60(a0),a3
move.l (a4)+,d1
move.l d1,(a3)
move.l d1,68(a0)
move.w (a4)+,4(a3)
move.l (a4),64(a0)
move.w #$0003,72(a0)
move.w d7,16(a0)
move.b #$01,23(a0)
addq.w #2,50(a0)
bra.L transpose
testE4:
cmpi.b #$e4,d0
bne.s testE9
moveq #0,d0
move.b 1(a1),d0
lea SOUNDINFO(pc),a4
lsl.w #4,d0
adda.w d0,a4
move.l 60(a0),a3
move.l (a4)+,d1
move.l d1,(a3)
move.l d1,68(a0)
move.w (a4)+,4(a3)
move.l (a4),64(a0)
move.w #$0003,72(a0)
addq.w #2,50(a0)
bra.L transpose
testE9:
cmpi.b #$e9,d0
bne testpatjmp
move.w 32(a0),d1
or.w d1,(a5)
move.w d1,$dff096
moveq #0,d0
move.b 1(a1),d0
lea SOUNDINFO(pc),a4
lsl.w #4,d0
adda.w d0,a4
move.l (a4),a2
cmpi.l #"SSMP",(a2)+
bne.s nossmp
lea 320(a2),a4
moveq #0,d1
move.b 2(a1),d1
lsl.w #4,d1
add.w d1,a2
add.l (a2),a4
move.l 60(a0),a3
move.l a4,(a3)
move.l 4(a2),4(a3)
move.l a4,68(a0)
move.l 6(a2),64(a0)
move.w d7,16(a0)
move.b #1,23(a0)
move.w #3,72(a0)
nossmp:
addq.w #3,50(a0)
bra.s transpose
testpatjmp:
cmpi.b #$e7,d0
bne.s testpitchbend
moveq #0,d0
move.b 1(a1),d0
lsl.w d6,d0
move.l FRQpoint(pc),a1
adda.w d0,a1
move.l a1,18(a0)
move.w d7,50(a0)
bra.L testeffects
testpitchbend:
cmpi.b #$ea,d0
bne.s testnewsustain
move.b 1(a1),4(a0)
move.b 2(a1),5(a0)
addq.w #3,50(a0)
bra.s transpose
testnewsustain:
cmpi.b #$e8,d0
bne.s testnewvib
move.b 1(a1),26(a0)
addq.w #2,50(a0)
bra.L testsustain
testnewvib:
cmpi.b #$e3,(a1)+
bne.s transpose
addq.w #3,50(a0)
move.b (a1)+,27(a0)
move.b (a1),28(a0)
transpose:
move.l 18(a0),a1
adda.w 50(a0),a1
move.b (a1),43(a0)
addq.w #1,50(a0)

VOLUfx:
tst.b 25(a0)
beq.s volsustzero
subq.b #1,25(a0)
bra.L calcperiod
volsustzero:
tst.b 15(a0)
bne.s do_VOLbend
subq.b #1,23(a0)
bne.s calcperiod
move.b 24(a0),23(a0)
volu_cmd:
move.l 10(a0),a1
adda.w 16(a0),a1
move.b (a1),d0
testvoluend:
cmpi.b #$e1,d0
beq.s calcperiod
cmpi.b #$ea,d0
bne.s testVOLsustain
move.b 1(a1),14(a0)
move.b 2(a1),15(a0)
addq.w #3,16(a0)
bra.s do_VOLbend
testVOLsustain:
cmpi.b #$e8,d0
bne.s testVOLloop
addq.w #2,16(a0)
move.b 1(a1),25(a0)
bra.s calcperiod
testVOLloop:
cmpi.b #$e0,d0
bne.s setvolume
move.b 1(a1),d0
andi.w #$003f,d0
subq.b #5,d0
move.w d0,16(a0)
bra.s volu_cmd
do_VOLbend:
not.b 38(a0)
beq.s calcperiod
subq.b #1,15(a0)
move.b 14(a0),d1
add.b d1,45(a0)
bpl.s calcperiod
moveq #0,d1
move.b d1,15(a0)
move.b d1,45(a0)
bra.s calcperiod
setvolume:
move.b (a1),45(a0)
addq.w #1,16(a0)
calcperiod:
move.b 43(a0),d0
bmi.s lockednote
add.b 8(a0),d0
add.b 44(a0),d0
lockednote:
moveq #$7f,d1
and.l d1,d0
lea PERIODS(pc),a1
add.w d0,d0
move.w d0,d1
adda.w d0,a1
move.w (a1),d0

move.b 46(a0),d7
tst.b 30(a0)		;Vibrato_delay = zero ?
beq.s vibrator
subq.b #1,30(a0)
bra.s novibrato
vibrator:
moveq #5,d2
move.b d1,d5
move.b 28(a0),d4
add.b d4,d4
move.b 29(a0),d1
tst.b d7
bpl.s vib1
btst #0,d7
bne.s vib4
vib1:
btst d2,d7
bne.s vib2
sub.b 27(a0),d1
bcc.s vib3
bset d2,d7
moveq #0,d1
bra.s vib3
vib2:
add.b 27(a0),d1
cmp.b d4,d1
bcs.s vib3
bclr d2,d7
move.b d4,d1
vib3:
move.b d1,29(a0)
vib4:
lsr.b #1,d4
sub.b d4,d1
bcc.s vib5
subi.w #$0100,d1
vib5:
addi.b #$a0,d5
bcs.s vib7
vib6:
add.w d1,d1
addi.b #$18,d5
bcc.s vib6
vib7:
add.w d1,d0
novibrato:
eori.b #$01,d7
move.b d7,46(a0)

; DO THE PORTAMENTO THING
not.b 39(a0)
beq.s pitchbend
moveq #0,d1
move.b 47(a0),d1	;get portavalue
beq.s pitchbend		;0=no portamento
cmpi.b #$1f,d1
bls.s portaup
portadown: 
andi.w #$1f,d1
neg.w d1
portaup:
sub.w d1,56(a0)
pitchbend:
not.b 42(a0)
beq.s addporta
tst.b 5(a0)
beq.s addporta
subq.b #1,5(a0)
moveq #0,d1
move.b 4(a0),d1
bpl.s pitchup
ext.w d1
pitchup:
sub.w d1,56(a0)
addporta:
add.w 56(a0),d0
cmpi.w #$0070,d0
bhi.s nn1
move.w #$0071,d0
nn1:
cmpi.w #$0d60,d0
bls.s nn2
move.w #$0d60,d0
nn2:
swap d0
move.b 45(a0),d0
rts



V1data:  blk.b 64,0	;Voice 1 data area
offset1: blk.b 02,0	;Is added to start of sound
ssize1:  blk.b 02,0	;Length of sound
start1:  blk.b 06,0	;Start of sound

V2data:  blk.b 64,0	;Voice 2 data area
offset2: blk.b 02,0
ssize2:  blk.b 02,0
start2:  blk.b 06,0

V3data:  blk.b 64,0	;Voice 3 data area
offset3: blk.b 02,0
ssize3:  blk.b 02,0
start3:  blk.b 06,0

V4data:  blk.b 64,0	;Voice 4 data area
offset4: blk.b 02,0
ssize4:  blk.b 02,0
start4:  blk.b 06,0

audtemp: dc.w 0		;DMACON
spdtemp: dc.w 0
respcnt: dc.w 0		;Replay speed counter 
repspd:  dc.w 0		;Replay speed counter temp
onoff:   dc.w 0		;Music on/off flag.

Chandata: dc.l $00000000,$00100003,$00200006,$00300009
SEQpoint: dc.l 0
PATpoint: dc.l 0
FRQpoint: dc.l 0
VOLpoint: dc.l 0


SILENT: dc.w $0100,$0000,$0000,$00e1

PERIODS:dc.w $06b0,$0650,$05f4,$05a0,$054c,$0500,$04b8,$0474
	dc.w $0434,$03f8,$03c0,$038a,$0358,$0328,$02fa,$02d0
	dc.w $02a6,$0280,$025c,$023a,$021a,$01fc,$01e0,$01c5
	dc.w $01ac,$0194,$017d,$0168,$0153,$0140,$012e,$011d
	dc.w $010d,$00fe,$00f0,$00e2,$00d6,$00ca,$00be,$00b4
	dc.w $00aa,$00a0,$0097,$008f,$0087,$007f,$0078,$0071
	dc.w $0071,$0071,$0071,$0071,$0071,$0071,$0071,$0071
	dc.w $0071,$0071,$0071,$0071,$0d60,$0ca0,$0be8,$0b40
	dc.w $0a98,$0a00,$0970,$08e8,$0868,$07f0,$0780,$0714
	dc.w $1ac0,$1940,$17d0,$1680,$1530,$1400,$12e0,$11d0
	dc.w $10d0,$0fe0,$0f00,$0e28,$06b0,$0650,$05f4,$05a0
	dc.w $054c,$0500,$04b8,$0474,$0434,$03f8,$03c0,$038a
	dc.w $0358,$0328,$02fa,$02d0,$02a6,$0280,$025c,$023a
	dc.w $021a,$01fc,$01e0,$01c5,$01ac,$0194,$017d,$0168
	dc.w $0153,$0140,$012e,$011d,$010d,$00fe,$00f0,$00e2
	dc.w $00d6,$00ca,$00be,$00b4,$00aa,$00a0,$0097,$008f
	dc.w $0087,$007f,$0078,$0071

SOUNDINFO:
;Start.l , Length.w , Repeat start.w , Repeat-length.w , blk.b 6,0 

blk.b 10*16,0	;Reserved for samples
blk.b 80*16,0	;Reserved for waveforms

DFont:
blk.b	1920,0
DCircle:
blk.b	8000,0
Sound:
blk.b	24864,0
ebeg:
END:
