** 'Dizzy reading' intro Rob Northern Classic 91
Beg:		
movem.l		d0-d7/a0-a6,-(sp)

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

BSR		mt_init

lea		$dff000,a6
lea		Variabler,a5

BSR		Findcopper
BSR		Others
BSR		Setup_irq
BSR		Setup_copper

Main:
cmp.b		#$f0,$6(a6)
bne.s		Main

;move.w		#$f44,$180(a6)

not.b		42(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
swap		d1
sub.l		#40,d1
move.w		d1,Map1l+4
swap		d1
move.w		d1,Map1l+8

	lea		StarArea+11,a0
	moveq		#46,d1
StarLoop:	
	subq.b		#3,(a0)	
	subq.b		#2,24(a0)
	subq.b		#1,48(a0)
	subq.b		#1,72(a0)
	add.l		#96,a0
	dbra		d1,StarLoop

	tst.w		88(a5)
	beq.s		going

	subq.w		#1,88(a5)
	bra.L		wfb1

going:
	sub.b		#1,70(a5)
	bpl.L		wfb2
	move.b		#9,70(a5)

	move.l		80(a5),a0
	addq.l		#1,80(a5)
	tst.b		1(a0)
	bpl.s		nores
	move.b		1(a0),d0
	and.b		#$f,d0
	bne.s		nores1
	move.l		#scrollt,80(a5)
	bra.s		nores
nores1:
	addq.l		#1,80(a5)

	cmp.b		#$05,d0
	bne.s		nores2
	move.w		#250,88(a5)
	bra.s		nores
nores2:
	cmp.b		#$06,d0
	bne.s		nores3
	move.l		#-128,56(a5)
	move.l		#2,60(a5)
	move.l		#Siner,48(a5)
	bra.s		nores
nores3:
	not.b		84(a5)
nores:
	moveq		#0,d0
	move.b		(a0),d0
	sub.b		#$20,d0
	lsl.w		#5,d0
	lea		font,a1
	lea		(a1,d0.w),a1
	lea		scrollmap+36,a0


Wfb3:	btst		#14,$2(a6)
	bne.s		Wfb3

	move.l		#$09f00000,$40(a6)
	move.l		a0,$54(a6)
	move.l		a1,$50(a6)
	move.l		#$ffffffff,$44(a6)
	move.l		#$00000026,$64(a6)
	move.w		#[16*64]+1,$58(a6)

Wfb2:	btst		#14,$2(a6)
	bne.s		Wfb2

	move.l		#$e9f00000,$40(a6)
	lea		scrollmap+4,a0
	move.l		a0,$50(a6)
	subq.l		#2,a0
	move.l		a0,$54(a6)
	move.l		#$ffffffff,$44(a6)
	move.l		#$00040004,$64(a6)
	move.w		#[16*64]+18,$58(a6)

Wfb1:	btst		#14,$2(a6)
	bne.s		Wfb1

	move.l		#$01000000,$40(a6)
	move.l		22(a5),d0
	add.l		#[30*40]+4,d0
	move.l		d0,$54(a6)
	move.w		#$0008,$66(a6)
	move.w		#[120*64]+16,$58(a6)

Wfb:	btst		#14,$2(a6)
	bne.s		Wfb

	move.w		#$8000,28(a5)
	move.l		#$0dfc0000,$40(a6)
	move.w		#$0000,$46(a6)
	move.l		#$00240024,$64(a6)
	move.w		#$0024,$62(a6)

	move.l		22(a5),d0
	add.l		#[80*40]+20,d0
	move.l		d0,30(a5)

	lea		SinusTab,a4
	move.l		38(a5),d0
	add.l		#8,38(a5)
	add.l		d0,a4
	cmp.l		#396*4,d0
	bne.s		Label1
	clr.l		38(a5)
Label1:

	move.l		48(a5),a2
	tst.b		84(a5)
	beq.s		irot
	addq.l		#4,48(a5)
irot:
	tst.l		4(a2)
	bpl.s		nope1
	tst.w		6(a2)
	bmi.s		nope2
	neg.l		60(a5)
	neg.l		56(a5)
	addq.l		#4,48(a5)
	bra.s		nope1
nope2:
	move.l		#Siner,48(a5)
nope1:
	move.l		(a2),d0
	move.l		#16384,d3
	divu		d0,d3

	move.l		56(a5),d4
	move.w		#251/2,d5
	move.l		30(a5),a0
	move.l		34(a5),a1
	clr.w		76(a5)
Bloop:
	subq.w		#2,76(a5)
	bpl.s		jaha
	move.w		#14,76(a5)
	addq.l		#2,a1
jaha:
	add.l		60(a5),d4
	move.l		d4,d7
	bne.s		dive
	add.l		60(a5),d4
	move.l		d4,d7
dive:
	lsl.l		#7,d7
	divs		d3,d7
	ext.l		d7

	move.w		d7,d6
	lsr.l		#4,d7
	add.l		d7,d7

	move.l		a0,d0
	add.l		(a4)+,d0
	add.l		d7,d0
	
	moveq		#0,d1
	move.w		76(a5),d2
	bset		d2,d1
	addq.b		#1,d2
	bset		d2,d1
	not.b		d6
	and.w		#$f,d6
	sub.w		d2,d6
	beq.s		uop
	bmi.s		uop
	swap		d1
	sub.w		#16,d6
	neg.w		d6
	subq.l		#2,d0
	bra.s		uop1
uop:
	swap		d1
	neg.w		d6
uop1:
	ror.w		#4,d6
	or.w		#$0dfc,d6
NoNul1:
	btst		#14,$2(a6)
	bne.s		NoNul1
	
	move.w		d6,$40(a6)
	move.l		d1,$44(a6)
	move.l		d0,$54(a6)
	move.l		d0,$4c(a6)
	move.l		a1,$50(a6)
	move.w		#[16*64]+2,$58(a6)

	dbra		d5,Bloop

	BSR		mt_music
	lea		$dff000,a6
	lea		Variabler,a5

;	move.w		#$f89,$180(a6)

btst		#6,$bfe001
bne		Main
Endseq:
move.w		12(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 		mt_end
movem.l		(sp)+,d0-d7/a0-a6
rts

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,12(a5)
move.w		#$040f,$96(a6)
move.w		#$81c0,$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		#$3fff,$9a(a6)
;move.w		#$8050,$9a(a6)
rts

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

Others:

	lea		SinusTab,a1
	lea		SinusTab+[397*4],a2
	lea		Sinusc,a0
	move.l		#395,d1
sinusloop:
	move.l		(a0)+,d0
	muls		#40,d0
	move.l		d0,(a1)+
	move.l		d0,(a2)+
	dbra		d1,sinusloop

	lea		Plane1,a0
	lea		Plane2,a1
	lea		Textmap,a2
	move.l		#[8000/4]-1,d0
Clloop:	clr.l		(a0)+
	clr.l		(a1)+	
	clr.l		(a2)+
	dbra		d0,Clloop

	lea		Scrollmap,a0
	move.l		#2000/4,d0
clloop1:
	clr.l		(a0)+
	dbra		d0,Clloop1

	lea		fonta,a0
	lea		font,a1
	move.l		#1920/2,d0
foloop: move.w		(a0)+,(a1)+
	dbra		d0,foloop

	lea		fonta1,a0
	lea		font1,a1
	move.l		#640/2,d0
foloop1: move.w		(a0)+,(a1)+
	dbra		d0,foloop1

	
	lea		Cl,a1
	lea		Copper,a0
	move.l		#Cllenght,d0
CoCopy:	move.w		(a0)+,(a1)+
	dbra		d0,CoCopy

	lea		ColorList,a4
	lea		ColorList2,a3
	move.w		#$3209,d0	
	move.l		#188,d6
	move.w		#$fff,d1	
	move.w		#$3200,d2

COPPERLOOP:	
	move.w		d0,(a1)+
	move.l		#$fffe01a2,(a1)+		
	move.w		d1,(a1)+
	move.w		#$0140,(a1)+
	move.w		d2,(a1)+	
	move.w		#$0188,(a1)+
	move.w		(a4)+,(a1)+
	move.w		#$0186,(a1)+
	move.w		(a3),(a1)+
	move.w		#$018e,(a1)+
	move.w		(a3)+,(a1)+
	add.w		#$100,d0
	sub.w		#$444,d1
	bpl.s		COPL
	move.w		#$fff,d1
COPL:	
	add.w		#$100,d2	
	add.b		#82,d2	
	ror.b		#2,d2	
	dbra		d6,COPPERLOOP

	move.l	#$ee09fffe,(a1)+
	move.l	#$01800700,(a1)+
	move.l	#$ef09fffe,(a1)+
	move.l	#$01800a00,(a1)+
	move.l	#$f009fffe,(a1)+
	move.l	#$01800d00,(a1)+
	move.l	#$f109fffe,(a1)+
	move.l	#$01800a00,(a1)+
	move.l	#$f209fffe,(a1)+
	move.l	#$01800700,(a1)+
	move.l	#$f309fffe,(a1)+
	move.l	#$01800000,(a1)+
	move.l	#$fffffffe,(a1)+

lea		StarData,a1
lea		StarGfx,a0
move.l		#300,d0
starcloop:
move.l		(a0)+,(a1)+
dbra		d0,starcloop

move.l		#StarData,d0
move.w		d0,Star1l
swap		d0
move.w		d0,Star1h

makeTxt:

	lea	TextMap+[40*5],a4
	lea	Font1,a3
	lea	Screentxt,a2

	move.l	#799,d7
txtloop1:
	move.l	a4,a1
txtloop2:
	move.l	a3,a0
	moveq	#0,d1
	move.b	(a2)+,d1
	bne.s	noendl
	add.l	#9*40,a4
	bra.s	txtloop1
noendl:
	sub.b	#$20,d1
	lsl.l	#3,d1
	add.l	d1,a0

	moveq	#7,d0
txtloop:
	move.b	(a0)+,(a1)
	add.l	#40,a1
	dbra	d0,txtloop
	sub.l	#319,a1
	dbra	d7,txtloop2

rts

llll:

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

	btst		#4,$1f(a6)
	beq.s		Blittr
	move.w		#$0010,$9c(a6)
	movem.l		(sp)+,d0-d7/a0-a6
	rte

Blittr:
	move.w		#$0040,$9c(a6)
	movem.l		(sp)+,d0-d7/a0-a6
	rte

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

dc.w	$0102,$0001

cMap1h:	dc.w	$e0,$0
cMap1l:	dc.w	$e2,$0
	dc.w	$e6,$0
	dc.w	$e4,$0
	dc.w	$e8,$6
	dc.w	$ea,$2000

cStar1h:dc.w	$0120,$0
cStar1l:dc.w	$0122,$0
dc.w	$0124,0,$0126,0
dc.w	$0128,0,$012a,0
dc.w	$012c,0,$012e,0
dc.w	$0130,0,$0132,0
dc.w	$0134,0,$0136,0
dc.w	$0138,0,$013a,0
dc.w	$013c,0,$013e,0

dc.w	$0180,$0000,$0182,$0fff,$0184,$0888,$0186,$0800
dc.w	$0188,$0456,$018a,$0fff,$018c,$0888,$018e,$0800
dc.w	$0190,$0000,$0192,$0000,$0194,$0000,$0196,$0000
dc.w	$0198,$0000,$019a,$0000,$019c,$0000,$019e,$0000
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

dc.w	$2c09,$fffe,$0180,$0700
dc.w	$2d09,$fffe,$0180,$0a00
dc.w	$2e09,$fffe,$0180,$0d00
dc.w	$2f09,$fffe,$0180,$0a00
dc.w	$3009,$fffe,$0180,$0700
dc.w	$3109,$fffe,$0180,$0000

CopperEnd:

Siner:
	dc.l	$0000007F,$0000007F,$0000007F
	dc.l	$0000007F,$0000007F,$0000007F,$0000007F
	dc.l	$0000007F,$0000007F,$0000007F,$0000007E
	dc.l	$0000007E,$0000007E,$0000007E,$0000007D
	dc.l	$0000007D,$0000007D,$0000007C,$0000007C
	dc.l	$0000007C,$0000007B,$0000007B,$0000007A
	dc.l	$0000007A,$00000079,$00000079,$00000078
	dc.l	$00000078,$00000077,$00000077,$00000076
	dc.l	$00000076,$00000075,$00000074,$00000074
	dc.l	$00000073,$00000072,$00000072,$00000071
	dc.l	$00000070,$0000006F,$0000006F,$0000006E
	dc.l	$0000006D,$0000006C,$0000006B,$0000006A
	dc.l	$0000006A,$00000069,$00000068,$00000067
	dc.l	$00000066,$00000065,$00000064,$00000063
	dc.l	$00000062,$00000061,$00000060,$0000005F
	dc.l	$0000005E,$0000005D,$0000005C,$0000005B
	dc.l	$00000059,$00000058,$00000057,$00000056
	dc.l	$00000055,$00000054,$00000052,$00000051
	dc.l	$00000050,$0000004F,$0000004E,$0000004C
	dc.l	$0000004B,$0000004A,$00000048,$00000047
	dc.l	$00000046,$00000044,$00000043,$00000042
	dc.l	$00000040,$0000003F,$0000003E,$0000003C
	dc.l	$0000003B,$00000039,$00000038,$00000037
	dc.l	$00000035,$00000034,$00000032,$00000031
	dc.l	$0000002F,$0000002E,$0000002C,$0000002B
	dc.l	$00000029,$00000028,$00000026,$00000025
	dc.l	$00000023,$00000022,$00000020,$0000001F
	dc.l	$0000001D,$0000001C,$0000001A,$00000019
	dc.l	$00000017,$00000016,$00000014,$00000012
	dc.l	$00000011,$0000000F,$0000000E,$0000000C
	dc.l	$0000000B,$00000009,$00000007,$00000006
	dc.l	$00000004,$00000003

	dc.l	$00000001,$ff000000,$00000003,$00000004
	dc.l	$00000006,$00000007,$00000009,$0000000B
	dc.l	$0000000C,$0000000E,$0000000F,$00000011
	dc.l	$00000012,$00000014,$00000016,$00000017
	dc.l	$00000019,$0000001A,$0000001C,$0000001D
	dc.l	$0000001F,$00000020,$00000022,$00000023
	dc.l	$00000025,$00000026,$00000028,$00000029
	dc.l	$0000002B,$0000002C,$0000002E,$0000002F
	dc.l	$00000031,$00000032,$00000034,$00000035
	dc.l	$00000037,$00000038,$00000039,$0000003B
	dc.l	$0000003C,$0000003E,$0000003F,$00000040
	dc.l	$00000042,$00000043,$00000044,$00000046
	dc.l	$00000047,$00000048,$0000004A,$0000004B
	dc.l	$0000004C,$0000004E,$0000004F,$00000050
	dc.l	$00000051,$00000052,$00000054,$00000055
	dc.l	$00000056,$00000057,$00000058,$00000059
	dc.l	$0000005B,$0000005C,$0000005D,$0000005E
	dc.l	$0000005F,$00000060,$00000061,$00000062
	dc.l	$00000063,$00000064,$00000065,$00000066
	dc.l	$00000067,$00000068,$00000069,$0000006A
	dc.l	$0000006A,$0000006B,$0000006C,$0000006D
	dc.l	$0000006E,$0000006F,$0000006F,$00000070
	dc.l	$00000071,$00000072,$00000072,$00000073
	dc.l	$00000074,$00000074,$00000075,$00000076
	dc.l	$00000076,$00000077,$00000077,$00000078
	dc.l	$00000078,$00000079,$00000079,$0000007A
	dc.l	$0000007A,$0000007B,$0000007B,$0000007C
	dc.l	$0000007C,$0000007C,$0000007D,$0000007D
	dc.l	$0000007D,$0000007E,$0000007E,$0000007E
	dc.l	$0000007E,$0000007F,$0000007F,$0000007F
	dc.l	$0000007F,$0000007F,$0000007F,$0000007F
	dc.l	$0000007F,$0000007F,$0000007F

	dc.l	$ffffffff

SinusC:
	dc.l	$00000000,$00000001,$00000002
	dc.l	$00000003,$00000003,$00000004,$00000005
	dc.l	$00000006,$00000007,$00000007,$00000008
	dc.l	$00000009,$0000000A,$0000000A,$0000000B
	dc.l	$0000000C,$0000000D,$0000000D,$0000000E
	dc.l	$0000000F,$00000010,$00000010,$00000011
	dc.l	$00000012,$00000013,$00000013,$00000014
	dc.l	$00000015,$00000016,$00000016,$00000017
	dc.l	$00000018,$00000018,$00000019,$0000001A
	dc.l	$0000001A,$0000001B,$0000001C,$0000001C
	dc.l	$0000001D,$0000001E,$0000001E,$0000001F
	dc.l	$0000001F,$00000020,$00000021,$00000021
	dc.l	$00000022,$00000022,$00000023,$00000023
	dc.l	$00000024,$00000025,$00000025,$00000026
	dc.l	$00000026,$00000027,$00000027,$00000028
	dc.l	$00000028,$00000028,$00000029,$00000029
	dc.l	$0000002A,$0000002A,$0000002B,$0000002B
	dc.l	$0000002B,$0000002C,$0000002C,$0000002C
	dc.l	$0000002D,$0000002D,$0000002D,$0000002E
	dc.l	$0000002E,$0000002E,$0000002F,$0000002F
	dc.l	$0000002F,$0000002F,$00000030,$00000030
	dc.l	$00000030,$00000030,$00000030,$00000030
	dc.l	$00000031,$00000031,$00000031,$00000031
	dc.l	$00000031,$00000031,$00000031,$00000031
	dc.l	$00000031,$00000031,$00000031,$00000031
	dc.l	$00000031,$00000031,$00000031,$00000031
	dc.l	$00000031,$00000031,$00000031,$00000031
	dc.l	$00000031,$00000031,$00000031,$00000031
	dc.l	$00000031,$00000030,$00000030,$00000030
	dc.l	$00000030,$00000030,$0000002F,$0000002F
	dc.l	$0000002F,$0000002F,$0000002E,$0000002E
	dc.l	$0000002E,$0000002E,$0000002D,$0000002D
	dc.l	$0000002D,$0000002C,$0000002C,$0000002C
	dc.l	$0000002B,$0000002B,$0000002A,$0000002A
	dc.l	$0000002A,$00000029,$00000029,$00000028
	dc.l	$00000028,$00000027,$00000027,$00000026
	dc.l	$00000026,$00000025,$00000025,$00000024
	dc.l	$00000024,$00000023,$00000023,$00000022
	dc.l	$00000022,$00000021,$00000020,$00000020
	dc.l	$0000001F,$0000001F,$0000001E,$0000001D
	dc.l	$0000001D,$0000001C,$0000001B,$0000001B
	dc.l	$0000001A,$00000019,$00000019,$00000018
	dc.l	$00000017,$00000017,$00000016,$00000015
	dc.l	$00000014,$00000014,$00000013,$00000012
	dc.l	$00000012,$00000011,$00000010,$0000000F
	dc.l	$0000000F,$0000000E,$0000000D,$0000000C
	dc.l	$0000000C,$0000000B,$0000000A,$00000009
	dc.l	$00000009,$00000008,$00000007,$00000006
	dc.l	$00000005,$00000005,$00000004,$00000003
	dc.l	$00000002,$00000001,$00000001,$00000000
	dc.l	$00000000,$FFFFFFFF,$FFFFFFFF,$FFFFFFFE
	dc.l	$FFFFFFFD,$FFFFFFFC,$FFFFFFFB,$FFFFFFFB
	dc.l	$FFFFFFFA,$FFFFFFF9,$FFFFFFF8,$FFFFFFF7
	dc.l	$FFFFFFF7,$FFFFFFF6,$FFFFFFF5,$FFFFFFF4
	dc.l	$FFFFFFF4,$FFFFFFF3,$FFFFFFF2,$FFFFFFF1
	dc.l	$FFFFFFF1,$FFFFFFF0,$FFFFFFEF,$FFFFFFEE
	dc.l	$FFFFFFEE,$FFFFFFED,$FFFFFFEC,$FFFFFFEC
	dc.l	$FFFFFFEB,$FFFFFFEA,$FFFFFFE9,$FFFFFFE9
	dc.l	$FFFFFFE8,$FFFFFFE7,$FFFFFFE7,$FFFFFFE6
	dc.l	$FFFFFFE5,$FFFFFFE5,$FFFFFFE4,$FFFFFFE3
	dc.l	$FFFFFFE3,$FFFFFFE2,$FFFFFFE1,$FFFFFFE1
	dc.l	$FFFFFFE0,$FFFFFFE0,$FFFFFFDF,$FFFFFFDE
	dc.l	$FFFFFFDE,$FFFFFFDD,$FFFFFFDD,$FFFFFFDC
	dc.l	$FFFFFFDC,$FFFFFFDB,$FFFFFFDB,$FFFFFFDA
	dc.l	$FFFFFFDA,$FFFFFFD9,$FFFFFFD9,$FFFFFFD8
	dc.l	$FFFFFFD8,$FFFFFFD7,$FFFFFFD7,$FFFFFFD6
	dc.l	$FFFFFFD6,$FFFFFFD6,$FFFFFFD5,$FFFFFFD5
	dc.l	$FFFFFFD4,$FFFFFFD4,$FFFFFFD4,$FFFFFFD3
	dc.l	$FFFFFFD3,$FFFFFFD3,$FFFFFFD2,$FFFFFFD2
	dc.l	$FFFFFFD2,$FFFFFFD2,$FFFFFFD1,$FFFFFFD1
	dc.l	$FFFFFFD1,$FFFFFFD1,$FFFFFFD0,$FFFFFFD0
	dc.l	$FFFFFFD0,$FFFFFFD0,$FFFFFFD0,$FFFFFFCF
	dc.l	$FFFFFFCF,$FFFFFFCF,$FFFFFFCF,$FFFFFFCF
	dc.l	$FFFFFFCF,$FFFFFFCF,$FFFFFFCF,$FFFFFFCF
	dc.l	$FFFFFFCF,$FFFFFFCF,$FFFFFFCF,$FFFFFFCF
	dc.l	$FFFFFFCF,$FFFFFFCF,$FFFFFFCF,$FFFFFFCF
	dc.l	$FFFFFFCF,$FFFFFFCF,$FFFFFFCF,$FFFFFFCF
	dc.l	$FFFFFFCF,$FFFFFFCF,$FFFFFFCF,$FFFFFFCF
	dc.l	$FFFFFFD0,$FFFFFFD0,$FFFFFFD0,$FFFFFFD0
	dc.l	$FFFFFFD0,$FFFFFFD0,$FFFFFFD1,$FFFFFFD1
	dc.l	$FFFFFFD1,$FFFFFFD1,$FFFFFFD2,$FFFFFFD2
	dc.l	$FFFFFFD2,$FFFFFFD3,$FFFFFFD3,$FFFFFFD3
	dc.l	$FFFFFFD4,$FFFFFFD4,$FFFFFFD4,$FFFFFFD5
	dc.l	$FFFFFFD5,$FFFFFFD5,$FFFFFFD6,$FFFFFFD6
	dc.l	$FFFFFFD7,$FFFFFFD7,$FFFFFFD8,$FFFFFFD8
	dc.l	$FFFFFFD8,$FFFFFFD9,$FFFFFFD9,$FFFFFFDA
	dc.l	$FFFFFFDA,$FFFFFFDB,$FFFFFFDB,$FFFFFFDC
	dc.l	$FFFFFFDD,$FFFFFFDD,$FFFFFFDE,$FFFFFFDE
	dc.l	$FFFFFFDF,$FFFFFFDF,$FFFFFFE0,$FFFFFFE1
	dc.l	$FFFFFFE1,$FFFFFFE2,$FFFFFFE2,$FFFFFFE3
	dc.l	$FFFFFFE4,$FFFFFFE4,$FFFFFFE5,$FFFFFFE6
	dc.l	$FFFFFFE6,$FFFFFFE7,$FFFFFFE8,$FFFFFFE8
	dc.l	$FFFFFFE9,$FFFFFFEA,$FFFFFFEA,$FFFFFFEB
	dc.l	$FFFFFFEC,$FFFFFFED,$FFFFFFED,$FFFFFFEE
	dc.l	$FFFFFFEF,$FFFFFFF0,$FFFFFFF0,$FFFFFFF1
	dc.l	$FFFFFFF2,$FFFFFFF3,$FFFFFFF3,$FFFFFFF4
	dc.l	$FFFFFFF5,$FFFFFFF6,$FFFFFFF6,$FFFFFFF7
	dc.l	$FFFFFFF8,$FFFFFFF9,$FFFFFFF9,$FFFFFFFA
	dc.l	$FFFFFFFB,$FFFFFFFC,$FFFFFFFD,$FFFFFFFD
	dc.l	$FFFFFFFE,$FFFFFFFF,$00000000

Fonta:
blk.b	1920,0

Fonta1:
blk.b	640,0

StarGfx:
dc.b	40,64,240,0
blk.l	200,$80000000
dc.l	0

ColorList:
;dc.w	$,$,$,$,$,$,$,$,$0
dc.w	0,0,0,0,0
dc.w	$119,$33b,$55d,$77f,$77f,$55d,$33b,$119,$0
dc.w	$139,$35b,$57d,$79f,$79f,$57d,$35b,$139,$0
dc.w	$159,$37b,$59d,$7bf,$7bf,$59d,$37b,$159,$0
dc.w	$179,$39b,$5bd,$7df,$7df,$5bd,$39b,$179,$0
dc.w	$199,$3bb,$5dd,$7ff,$7ff,$5dd,$3bb,$199,$0
dc.w	$197,$3b9,$5db,$7fd,$7fd,$5db,$3b9,$197,$0
dc.w	$195,$3b7,$5d9,$7fb,$7fb,$5d9,$3b7,$195,$0
dc.w	$193,$3b5,$5d7,$7f9,$7f9,$5d7,$3b5,$193,$0
dc.w	$191,$3b3,$5d5,$7f7,$7f7,$5d5,$3b3,$191,$0
dc.w	$391,$5b3,$7d5,$9f7,$9f7,$7d5,$5b3,$391,$0
dc.w	$591,$7b3,$9d5,$bf7,$bf7,$9d5,$7b3,$591,$0
dc.w	$791,$9b3,$bd5,$df7,$df7,$bd5,$9b3,$791,$0
dc.w	$991,$bb3,$dd5,$ff7,$ff7,$dd5,$bb3,$991,$0
dc.w	$971,$b93,$db5,$fd7,$fd7,$db5,$b93,$971,$0
dc.w	$951,$b73,$d95,$fb7,$fb7,$d95,$b73,$951,$0
dc.w	$931,$b53,$d75,$f97,$f97,$d75,$b53,$931,$0
dc.w	$911,$b33,$d55,$f77,$f77,$d55,$b33,$911,$0
dc.w	$913,$b35,$d57,$f79,$f79,$d57,$b35,$913,$0
dc.w	$915,$b37,$d59,$f7b,$f7b,$d59,$b37,$915,$0
dc.w	$917,$b39,$d5b,$f7d,$f7d,$d5b,$b39,$917,$0

ColorList2:
;dc.w	$,$,$,$,$,$,$,$,$0
dc.w	$1,$2,$3,$4,$5,$6,$7,$8
dc.w	$9,$a,$b,$c,$d,$e,$f
dc.w	$e,$d,$c,$b,$a,$9,$8,$7
dc.w	$6,$5,$4,$3,$2,$1,$0
dc.w	$110,$220,$330,$440,$550,$660,$770,$880
dc.w	$990,$aa0,$bb0
dc.w	$cc0,$dd0,$ee0,$ff0,$ee0,$dd0,$cc0,$bb0,$aa0
dc.w	$990,$880,$770,$660,$550,$440,$330,$220,$110,0
dc.w	$1,$2,$3,$4,$5,$6,$7,$8
dc.w	$9,$a,$b,$c,$d,$e,$f
dc.w	$e,$d,$c,$b,$a,$9,$8,$7
dc.w	$6,$5,$4,$3,$2,$1,$0
dc.w	$100,$200,$300,$400,$500,$600,$700,$800
dc.w	$900,$a00,$b00,$c00,$d00,$e00,$f00
dc.w	$e00,$d00,$c00,$b00,$a00,$900,$800,$700
dc.w	$600,$500,$400,$300,$200,$100
dc.w	$10,$20,$30,$40,$50,$60,$70,$80
dc.w	$90,$a0,$b0,$c0,$d0,$e0,$f0
dc.w	$e0,$d0,$c0,$b0,$a0,$90,$80,$70
dc.w	$60,$50,$40,$30,$20,$10,$0

;Instruktioner:
;Placera aldrig tva funktioner efter varanndra!! typ dc.b $ff,$f5
;skriv i stallet dc.b $ff,$20,$f5
;
;$f0 = restart scroll text
;$ff = toggle rotation on/off
;$f5 = stopp scroll ( 5 sec!)
;$f6 = reset rotation

Scrollt:
DC.B	' ',$fF
DC.B	'    / CLASSIC /  ',$F5
DC.B	'  ',$ff
DC.B	'   PRESENTS     / FUTURE COMBAT 2 /    ' 
DC.B	'   FROM UGA SOFTWARE       '
DC.B	'   INTRO BY ROB NORTHERN - MUSIC BY 4-MAT.....              ',$F6
DC.B	'    ',$F0
even

ScreenTxt:
DC.B	'     > > >   C L A S S I C    < < <     ',0
DC.B	'                                        ',0
DC.B	'  CRACKED...  FUTURE COMBAT 2 (C) UGA!  ',0
DC.B	'  CRACKED AND TRAINED BY ROB NORTHERN!  ',0
DC.B	'                                        ',0
DC.B	'            CALL OUR BOARDS:            ',0
DC.B 	' PURGATORY WHQ............203 225 5482  ',0
DC.B	' MARTYRIUM................713 946 5141  ',0
DC.B	' THE MADHOUSE.............313 698 1728  ',0
DC.B	' PIRATES SHIP.............515 277 1906  ',0
DC.B	' DOWNTOWN.................ELITE ONLY!!  ',0
DC.B	' LINE TO HEAVEN...........+41 62260277  ',0
DC.B	' THE LIGHT BBS............ELITE ONLY!!  ',0
DC.B	' INNER CIRCLE.............+46 31304142  ',0
DC.B	' RED AND BLACK............+39 59651693  ',0
DC.B	'                                        ',0
DC.B	' CLASSIC EUROPE:         CLASSIC U.S.A: ',0
DC.B	' ARSNAS 12621            P.O. BOX 814   ',0
DC.B	' S-44297 KODE            UNION LAKE, MI ',0
DC.B	' SWEDEN                  48387, U.S.A.  ',0

even
vvvv:
Variabler:
dc.l	0		;oldcop 0
dc.l	0		;oldirq 4
dc.l	0		;oldlev3 8
dc.l	0		;old DMA 12
dc.b	0,0		;Frame 16
dc.l	0		;18
dc.l	Plane1		;Plane Ptr 22
dc.w	0		;blitt counter 26
dc.w	$8000		;Mask Counter 28
dc.l	0		;Blitt ptr 30
dc.l	Scrollmap+2	;dum 34
dc.l	0		;add to sinus 38
dc.b	0,0		;plane dum 42
dc.l	0		;vert s ptr 44
dc.l	Siner		;siner ptr 48
dc.l	128		;52
dc.l	-128		;56
dc.l	2		;60
dc.l	0		;64
dc.w	0		;68
dc.w	0		;70
dc.w	0		;72
dc.w	0		;74
dc.l	0		;76
dc.l	Scrollt		;80
dc.w	0		;84 rotera?
dc.w	0		;86 reset?
dc.w	0		;88 stopp frames

Mt_data:	equ	$50000
SinusTab:	equ	$5e000
font:		equ	$60000
font1:		equ	$61000
Textmap:	equ	$62000
Plane1:		equ	$6b000
Plane2:		equ	$70000
ScrollMap:	equ	$76000
StarData:	equ	$7a000
Cl:		equ	$7d000
;------------------------------------------------
StarArea:	equ	Cl+[copperend-copper]
CLlenght:	equ	[[CopperEnd-Copper]/2]-1
Map1h:		equ	Cl+[cmap1h-copper]+2
Map1l:		equ	Cl+[cmap1l-copper]+2
star1h:		equ	Cl+[cstar1h-copper]+2
star1l:		equ	Cl+[cstar1l-copper]+2

>extern "font.dtform",fonta
>extern "sdfont.dtform",fonta1
>extern "4-MAT.MOD",sound

;ญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญ
;ญ   NoisetrackerV1.0 replayroutine   ญ
;ญ Mahoney & Kaktus - HALLONSOFT 1989 ญ
;ญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญญ

mt_init:lea	mt_data,a0
	move.l	a0,a1
	add.l	#$3b8,a1
	moveq	#$7f,d0
	moveq	#0,d1
mt_loop:move.l	d1,d2
	subq.w	#1,d0
mt_lop2:move.b	(a1)+,d1
	cmp.b	d2,d1
	bgt.s	mt_loop
	dbf	d0,mt_lop2
	addq.b	#1,d2

	lea	mt_samplestarts(pc),a1
	asl.l	#8,d2
	asl.l	#2,d2
	add.l	#$43c,d2
	add.l	a0,d2
	move.l	d2,a2
	moveq	#$1e,d0
mt_lop3:clr.l	(a2)
	move.l	a2,(a1)+
	moveq	#0,d1
	move.w	42(a0),d1
	asl.l	#1,d1
	add.l	d1,a2
	add.l	#$1e,a0
	dbf	d0,mt_lop3

	or.b	#$2,$bfe001
	move.b	#$6,mt_speed
	clr.w	$dff0a8
	clr.w	$dff0b8
	clr.w	$dff0c8
	clr.w	$dff0d8
	clr.b	mt_songpos
	clr.b	mt_counter
	clr.w	mt_pattpos
	rts

mt_end:	clr.w	$dff0a8
	clr.w	$dff0b8
	clr.w	$dff0c8
	clr.w	$dff0d8
	move.w	#$f,$dff096
	rts

mt_music:
	movem.l	d0-d4/a0-a3/a5-a6,-(a7)
	lea	mt_data,a0
	addq.b	#$1,mt_counter
	move.b	mt_counter,D0
	cmp.b	mt_speed,D0
	blt.s	mt_nonew
	clr.b	mt_counter
	bra	mt_getnew

mt_nonew:
	lea	mt_voice1(pc),a6
	lea	$dff0a0,a5
	bsr	mt_checkcom
	lea	mt_voice2(pc),a6
	lea	$dff0b0,a5
	bsr	mt_checkcom
	lea	mt_voice3(pc),a6
	lea	$dff0c0,a5
	bsr	mt_checkcom
	lea	mt_voice4(pc),a6
	lea	$dff0d0,a5
	bsr	mt_checkcom
	bra	mt_endr

mt_arpeggio:
	moveq	#0,d0
	move.b	mt_counter,d0
	divs	#$3,d0
	swap	d0
	cmp.w	#$0,d0
	beq.s	mt_arp2
	cmp.w	#$2,d0
	beq.s	mt_arp1

	moveq	#0,d0
	move.b	$3(a6),d0
	lsr.b	#4,d0
	bra.s	mt_arp3
mt_arp1:moveq	#0,d0
	move.b	$3(a6),d0
	and.b	#$f,d0
	bra.s	mt_arp3
mt_arp2:move.w	$10(a6),d2
	bra.s	mt_arp4
mt_arp3:asl.w	#1,d0
	moveq	#0,d1
	move.w	$10(a6),d1
	lea	mt_periods(pc),a0
	moveq	#$24,d7
mt_arploop:
	move.w	(a0,d0.w),d2
	cmp.w	(a0),d1
	bge.s	mt_arp4
	addq.l	#2,a0
	dbf	d7,mt_arploop
	rts
mt_arp4:move.w	d2,$6(a5)
	rts

mt_getnew:
	lea	mt_data,a0
	move.l	a0,a3
	move.l	a0,a2
	add.l	#$c,a3
	add.l	#$3b8,a2
	add.l	#$43c,a0

	moveq	#0,d0
	move.l	d0,d1
	move.b	mt_songpos,d0
	move.b	(a2,d0.w),d1
	asl.l	#8,d1
	asl.l	#2,d1
	add.w	mt_pattpos,d1
	clr.w	mt_dmacon

	lea	$dff0a0,a5
	lea	mt_voice1(pc),a6
	bsr.s	mt_playvoice
	lea	$dff0b0,a5
	lea	mt_voice2(pc),a6
	bsr.s	mt_playvoice
	lea	$dff0c0,a5
	lea	mt_voice3(pc),a6
	bsr.s	mt_playvoice
	lea	$dff0d0,a5
	lea	mt_voice4(pc),a6
	bsr.s	mt_playvoice
	bra	mt_setdma

mt_playvoice:
	move.l	(a0,d1.l),(a6)
	addq.l	#4,d1
	moveq	#0,d2
	move.b	$2(a6),d2
	and.b	#$f0,d2
	lsr.b	#4,d2
	move.b	(a6),d0
	and.b	#$f0,d0
	or.b	d0,d2
	tst.b	d2
	beq.s	mt_setregs
	moveq	#0,d3
	lea	mt_samplestarts(pc),a1
	move.l	d2,d4
	subq.l	#$1,d2
	asl.l	#2,d2
	mulu	#$1e,d4
	move.l	(a1,d2.l),$4(a6)
	move.w	(a3,d4.l),$8(a6)
	move.w	$2(a3,d4.l),$12(a6)
	move.w	$4(a3,d4.l),d3
	tst.w	d3
	beq.s	mt_noloop
	move.l	$4(a6),d2
	asl.w	#1,d3
	add.l	d3,d2
	move.l	d2,$a(a6)
	move.w	$4(a3,d4.l),d0
	add.w	$6(a3,d4.l),d0
	move.w	d0,8(a6)
	move.w	$6(a3,d4.l),$e(a6)
	move.w	$12(a6),$8(a5)
	bra.s	mt_setregs
mt_noloop:
	move.l	$4(a6),d2
	add.l	d3,d2
	move.l	d2,$a(a6)
	move.w	$6(a3,d4.l),$e(a6)
	move.w	$12(a6),$8(a5)
mt_setregs:
	move.w	(a6),d0
	and.w	#$fff,d0
	beq	mt_checkcom2
	move.b	$2(a6),d0
	and.b	#$F,d0
	cmp.b	#$3,d0
	bne.s	mt_setperiod
	bsr	mt_setmyport
	bra	mt_checkcom2
mt_setperiod:
	move.w	(a6),$10(a6)
	and.w	#$fff,$10(a6)
	move.w	$14(a6),d0
	move.w	d0,$dff096
	clr.b	$1b(a6)

	move.l	$4(a6),(a5)
	move.w	$8(a6),$4(a5)
	move.w	$10(a6),d0
	and.w	#$fff,d0
	move.w	d0,$6(a5)
	move.w	$14(a6),d0
	or.w	d0,mt_dmacon
	bra	mt_checkcom2

mt_setdma:
	move.w	#$12c,d0
mt_wait:dbf	d0,mt_wait
	move.w	mt_dmacon,d0
	or.w	#$8000,d0
	move.w	d0,$dff096
	move.w	#$12c,d0
mt_wai2:dbf	d0,mt_wai2
	lea	$dff000,a5
	lea	mt_voice4(pc),a6
	move.l	$a(a6),$d0(a5)
	move.w	$e(a6),$d4(a5)
	lea	mt_voice3(pc),a6
	move.l	$a(a6),$c0(a5)
	move.w	$e(a6),$c4(a5)
	lea	mt_voice2(pc),a6
	move.l	$a(a6),$b0(a5)
	move.w	$e(a6),$b4(a5)
	lea	mt_voice1(pc),a6
	move.l	$a(a6),$a0(a5)
	move.w	$e(a6),$a4(a5)

	add.w	#$10,mt_pattpos
	cmp.w	#$400,mt_pattpos
	bne.s	mt_endr
mt_nex:	clr.w	mt_pattpos
	clr.b	mt_break
	addq.b	#1,mt_songpos
	and.b	#$7f,mt_songpos
	move.b	mt_songpos,d1
	cmp.b	mt_data+$3b6,d1
	bne.s	mt_endr
	clr.b	mt_songpos
mt_endr:tst.b	mt_break
	bne.s	mt_nex
	movem.l	(a7)+,d0-d4/a0-a3/a5-a6
	rts

mt_setmyport:
	move.w	(a6),d2
	and.w	#$fff,d2
	move.w	d2,$18(a6)
	move.w	$10(a6),d0
	clr.b	$16(a6)
	cmp.w	d0,d2
	beq.s	mt_clrport
	bge.s	mt_rt
	move.b	#$1,$16(a6)
	rts
mt_clrport:
	clr.w	$18(a6)
mt_rt:	rts

mt_myport:
	move.b	$3(a6),d0
	beq.s	mt_myslide
	move.b	d0,$17(a6)
	clr.b	$3(a6)
mt_myslide:
	tst.w	$18(a6)
	beq.s	mt_rt
	moveq	#0,d0
	move.b	$17(a6),d0
	tst.b	$16(a6)
	bne.s	mt_mysub
	add.w	d0,$10(a6)
	move.w	$18(a6),d0
	cmp.w	$10(a6),d0
	bgt.s	mt_myok
	move.w	$18(a6),$10(a6)
	clr.w	$18(a6)
mt_myok:move.w	$10(a6),$6(a5)
	rts
mt_mysub:
	sub.w	d0,$10(a6)
	move.w	$18(a6),d0
	cmp.w	$10(a6),d0
	blt.s	mt_myok
	move.w	$18(a6),$10(a6)
	clr.w	$18(a6)
	move.w	$10(a6),$6(a5)
	rts

mt_vib:	move.b	$3(a6),d0
	beq.s	mt_vi
	move.b	d0,$1a(a6)

mt_vi:	move.b	$1b(a6),d0
	lea	mt_sin(pc),a4
	lsr.w	#$2,d0
	and.w	#$1f,d0
	moveq	#0,d2
	move.b	(a4,d0.w),d2
	move.b	$1a(a6),d0
	and.w	#$f,d0
	mulu	d0,d2
	lsr.w	#$6,d2
	move.w	$10(a6),d0
	tst.b	$1b(a6)
	bmi.s	mt_vibmin
	add.w	d2,d0
	bra.s	mt_vib2
mt_vibmin:
	sub.w	d2,d0
mt_vib2:move.w	d0,$6(a5)
	move.b	$1a(a6),d0
	lsr.w	#$2,d0
	and.w	#$3c,d0
	add.b	d0,$1b(a6)
	rts

mt_nop:	move.w	$10(a6),$6(a5)
	rts

mt_checkcom:
	move.w	$2(a6),d0
	and.w	#$fff,d0
	beq.s	mt_nop
	move.b	$2(a6),d0
	and.b	#$f,d0
	tst.b	d0
	beq	mt_arpeggio
	cmp.b	#$1,d0
	beq.s	mt_portup
	cmp.b	#$2,d0
	beq	mt_portdown
	cmp.b	#$3,d0
	beq	mt_myport
	cmp.b	#$4,d0
	beq	mt_vib
	move.w	$10(a6),$6(a5)
	cmp.b	#$a,d0
	beq.s	mt_volslide
	rts

mt_volslide:
	moveq	#0,d0
	move.b	$3(a6),d0
	lsr.b	#4,d0
	tst.b	d0
	beq.s	mt_voldown
	add.w	d0,$12(a6)
	cmp.w	#$40,$12(a6)
	bmi.s	mt_vol2
	move.w	#$40,$12(a6)
mt_vol2:move.w	$12(a6),$8(a5)
	rts

mt_voldown:
	moveq	#0,d0
	move.b	$3(a6),d0
	and.b	#$f,d0
	sub.w	d0,$12(a6)
	bpl.s	mt_vol3
	clr.w	$12(a6)
mt_vol3:move.w	$12(a6),$8(a5)
	rts

mt_portup:
	moveq	#0,d0
	move.b	$3(a6),d0
	sub.w	d0,$10(a6)
	move.w	$10(a6),d0
	and.w	#$fff,d0
	cmp.w	#$71,d0
	bpl.s	mt_por2
	and.w	#$f000,$10(a6)
	or.w	#$71,$10(a6)
mt_por2:move.w	$10(a6),d0
	and.w	#$fff,d0
	move.w	d0,$6(a5)
	rts

mt_portdown:
	clr.w	d0
	move.b	$3(a6),d0
	add.w	d0,$10(a6)
	move.w	$10(a6),d0
	and.w	#$fff,d0
	cmp.w	#$358,d0
	bmi.s	mt_por3
	and.w	#$f000,$10(a6)
	or.w	#$358,$10(a6)
mt_por3:move.w	$10(a6),d0
	and.w	#$fff,d0
	move.w	d0,$6(a5)
	rts

mt_checkcom2:
	move.b	$2(a6),d0
	and.b	#$f,d0
	cmp.b	#$e,d0
	beq.s	mt_setfilt
	cmp.b	#$d,d0
	beq.s	mt_pattbreak
	cmp.b	#$b,d0
	beq.s	mt_posjmp
	cmp.b	#$c,d0
	beq.s	mt_setvol
	cmp.b	#$f,d0
	beq.s	mt_setspeed
	rts

mt_setfilt:
	move.b	$3(a6),d0
	and.b	#$1,d0
	asl.b	#$1,d0
	and.b	#$fd,$bfe001
	or.b	d0,$bfe001
	rts
mt_pattbreak:
	not.b	mt_break
	rts
mt_posjmp:
	move.b	$3(a6),d0
	subq.b	#$1,d0
	move.b	d0,mt_songpos
	not.b	mt_break
	rts
mt_setvol:
	cmp.b	#$40,$3(a6)
	ble.s	mt_vol4
	move.b	#$40,$3(a6)
mt_vol4:move.b	$3(a6),$8(a5)
	rts
mt_setspeed:
	move.b	$3(a6),d0
	and.w	#$1f,d0
	beq.s	mt_rts2
	clr.b	mt_counter
	move.b	d0,mt_speed
mt_rts2:rts

mt_sin:
dc.b $00,$18,$31,$4a,$61,$78,$8d,$a1,$b4,$c5,$d4,$e0,$eb,$f4,$fa,$fd
dc.b $ff,$fd,$fa,$f4,$eb,$e0,$d4,$c5,$b4,$a1,$8d,$78,$61,$4a,$31,$18

mt_periods:
dc.w $0358,$0328,$02fa,$02d0,$02a6,$0280,$025c,$023a,$021a,$01fc,$01e0
dc.w $01c5,$01ac,$0194,$017d,$0168,$0153,$0140,$012e,$011d,$010d,$00fe
dc.w $00f0,$00e2,$00d6,$00ca,$00be,$00b4,$00aa,$00a0,$0097,$008f,$0087
dc.w $007f,$0078,$0071,$0000,$0000

mt_speed:	dc.b	$6
mt_songpos:	dc.b	$0
mt_pattpos:	dc.w	$0
mt_counter:	dc.b	$0

mt_break:	dc.b	$0
mt_dmacon:	dc.w	$0
mt_samplestarts:blk.l	$1f,0
mt_voice1:	blk.w	10,0
		dc.w	$1
		blk.w	3,0
mt_voice2:	blk.w	10,0
		dc.w	$2
		blk.w	3,0
mt_voice3:	blk.w	10,0
		dc.w	$4
		blk.w	3,0
mt_voice4:	blk.w	10,0
		dc.w	$8
		blk.w	3,0
Sound:
blk.b	19000,0
ebeg:
