
;                  copper list example
;

bwobflag:	dc.w	0
execbase:	equ	4
dmacon:		equ	$dff096
oldopenlibary:	equ	-408


main:	move.l	execbase,a6
	lea	gfxname,a1
	move.l	#0,d0
	jsr	oldopenlibary(a6)
	tst	d0
	beq	error_no_libary
	move.l	d0,gfxbase
	move.l	d0,a0
	add.l	#$32,a0
	move.w	#$0080,dmacon
	move.l	(a0),oldcopper
	move.l	#newcopper,(a0)
	move.w	#$8080,dmacon
	jsr	mt_init
	jsr	spriteset
	jsr	xxxsetup
	jsr	startpos
	jsr	rrresud
	;move.w	#$0020,$dff096
	jsr	resettext
	
	move.w	#$4000,$dff09a
	move.l	$6c,store
	move.l	#inter,$6c
	move.w	#$c000,$dff09a
	
wait:	andi.b	#$40,$bfe001
	bne	wait
	
	move.w	#$000f,$dff096
	move.w	#$4000,$dff09a
	move.l	store,$6c
	move.w	#$c000,$dff09a
	clr.l	d0
	;jsr 	start	
	move.l	gfxbase,a0
	add.l	#$32,a0
	;move.w	#$8020,$dff096
	move.w	#$0080,dmacon
	move.l	oldcopper,(a0)
	move.w	#$8080,dmacon

error_no_libary:
	rts	

pause:	move.w	#$e000,d3
loop:	add.w	#1,d3
	bne	loop
	rts

inter:	jsr	mt_music
	bsr	sprites
	bsr	xxxwob
	bsr	scroller
	;move.w	#$0fff,$dff180
	dc.w	$4ef9
store:	dc.l	0

scroller:
	bsr	moveit
	bsr	sine
	bsr	scrmove
	rts	


gfxname:
	dc.b	"graphics.library",0
	even

scroll:	lea	$70000,a1
	move.l	chart,d1
	add.l	d1,a1
	lea	$71144,a2
	move.b	#$0,d1
loopy:	move.w	(a1),(a2)
	add.l	#50,a2
	add.l	#2,a1
	add.b	#1,d1
	cmp.b	#$20,d1	
	blt	loopy
	rts
chart:	dc.b	0,0
char:	dc.b	$1,$2,$c
	even

pauseflag:	dc.l	0,0
pausebit:	dc.l	0,0

pauser:	move.w	pausebit,d0
	sub.w	#1,d0
	cmp.w	#0,d0
	beq	unsetpause
	move.w	d0,pausebit
	rts

unsetpause:
	move.b	#0,pauseflag
	move.w	#0,pausebit
	bra	newchar

setpause:
	move.b	#$f,pauseflag
	move.w	#$0060,pausebit
	rts

scrspeed:	dc.w	$0022,0

moveit:	move.b	pauseflag,d0
	cmp.b	#$f,d0
	beq	pauser	
	move.w	scrspeed,d0
	move.w	scrpos,d1
	sub.w	d0,d1
	cmp.w	#$f1ef,d1
	bhi	resscr
	move.w	d1,scrpos
	rts

misschar:	
	move.b	#0,checkmoveflag
	rts

checkmoveflag:	dc.b	0,0,0,0

resscr:	move.b	checkmoveflag,d0
	cmp.b	#$f,d0
	beq	misschar

	move.w	#$00ff,scrpos
	lea	$71114,a2
	lea	$71116,a3
	move.w	#$0,d0
looppy:	move.w	(a3),(a2)
	add.l	#$2,a3
	add.l	#$2,a2
	add.w	#$1,d0
	cmp.w	#$180,d0
	blt	looppy
	jsr	scroll
	jsr	newchar
	rts

count:	dc.l	0,0
newchar:
	lea	count,a1
	lea	text,a2
	add.l	(a1),a2
	move.b	(a2),d1
	move.b	d1,shortbit
	move.w	shortstore,d1
	sub.w	#$31,d1
	mulu	#$20,d1
	move.w	d1,char
	add.l	#1,count
	cmp.b	#$ff,(a2)
	beq	resettext	
	cmp.b	#$ee,(a2)	
	beq	setpause
	cmp.b	#$d1,(a2)
	beq	scrspeed1
	cmp.b	#$d2,(a2)
	beq	scrspeed2
	cmp.b	#$d3,(a2)
	beq	scrspeed3
	cmp.b	#$d4,(a2)
	beq	scrspeed4
	cmp.b	#$d5,(a2)
	beq	scrspeed5
	cmp.b	#$c0,(a2)
	beq	upon
	cmp.b	#$c1,(a2)
	beq	upoff
	rts

upon:	move.b	#$0,stopflag
	move.b	#$f,checkmoveflag
	bra	newchar
	
upoff:	move.b	#$f,stopflag
	move.b	#$f,checkmoveflag
	bra	newchar



scrspeed1:
	move.w	#$0011,scrspeed
	move.b	#$f,checkmoveflag
	bra	newchar
	
scrspeed2:
	move.w	#$0022,scrspeed
	move.b	#$f,checkmoveflag
	bra	newchar
	
scrspeed3:
	move.w	#$0044,scrspeed
	move.b	#$f,checkmoveflag
	bra	newchar
	
scrspeed4:
	move.w	#$0088,scrspeed
	move.b	#$f,checkmoveflag
	bra	newchar
	
scrspeed5:
	move.w	#$01ff,scrspeed
	move.b	#$f,checkmoveflag
	bra	newchar
	


shortstore:	dc.b	0
shortbit:	dc.b	0,0,0

resettext:
	move.l	#0,count
	rts
	
text:	DC.B	$D5,$c1,`          FAST SCROLL`,$5B,$5B,$5B,`   `,$EE
	dc.b	`            SPARK          `,$ee,$c0,$ee,$ee,$c1
	DC.B	`                 OF XXX INTERNATIONAL   `,$EE
	DC.B	$D4,$c1,`       HIMEDIUM SCROLL `,$5B,$5B,$5B,`  `,$EE
	dc.b	`            SPARK          `,$ee,$c0,$ee,$ee,$c1
	DC.B	`                 OF XXX INTERNATIONAL   `,$EE
	dc.b	$d3,$c0,`THIS BIT OF THE SCROLL IS TO SHOW BOB WHAT `
	DC.B	`HE WANTED TO SEE                                   `
	dc.b	$d2,$c0,`THIS BIT OF THE SCROLL IS TO SHOW BOB WHAT `
	DC.B	`HE WANTED TO SEE                                   `
	dc.b	$d1,$c0,`THIS BIT OF THE SCROLL IS TO SHOW BOB WHAT `
	DC.B	`HE WANTED TO SEE                                   `

	dc.b	$ff
	DC.B	$D3,$c1,`      LOWMEDIUM SCROLL `,$5B,$5B,$5B,`  `,$EE
	dc.b	`            SPARK          `,$ee,$c0,$ee,$ee,$c1
	DC.B	`                 OF XXX INTERNATIONAL   `,$EE
	DC.B	$D2,$c1,`          SLOW SCROLL `,$5B,$5B,$5B,`  `,$EE
	dc.b	`            SPARK          `,$ee,$c0,$ee,$ee,$c1
	DC.B	`                 OF XXX INTERNATIONAL   `,$EE
	DC.B	$D1,$c1,`         SLOWER SCROLL `,$5B,$5B,$5B,`  `,$EE
	dc.b	`            SPARK          `,$ee,$c0,$ee,$ee,$c1
	DC.B	`                 OF XXX INTERNATIONAL   `,$EE


	DC.B	$FF
	dc.b	`     greetings go to                   `
	dc.b	`channel fourteen       british bulldogs    sex dwarf`
	dc.b	`         `
	dc.b	`soft killer crew      scanner of crisis internation`
	dc.b	`al       special message to nero of crisis      `
	dc.b	`  why the fuck did you rip off our st scroller you`
	dc.b	` asshole        and no you `
	dc.b 	`cannt fucking keep it        right now back to the`
	dc.b	` greetings          greetings cont           `
	dc.b	`steve of the mission           red baron        `
	dc.b	`tristar        axxess and dma     the sinners      `
	dc.b	`sca      random access      the movers      the bit`
	dc.b	`stoppers       deltaforce       digitech     hqc    `
	dc.b	`  blizzard         def jam       antitrax      doc  `
	dc.b    `   the champs      alphawave     phr crew     tcc   `
	dc.b    `   vortex      tbr      mcp    the knight hawks     `
	dc.b    `  rob the bop hubbard      the outrunners      phs  `
	dc.b	`   ccs     the computer brains     megaforce        `
	dc.b	`the visitors    fairlight     northern lights       `
	dc.b    `the risky business boys     disaster area     danish`
	dc.b	` gold     the light circle     bitkillersoft     the`
	dc.b    ` limit crew     skyline     the stupid name team    `
	dc.b	`silver ghosts     the a team     lazer     irata    `
	dc.b	` alpha flight     the new age     unit a     tcc    `
	dc.b    ` gigaflops    cpu     the commodore guys    the play`
	dc.b	`boys     goffy crackings     tba     ccw team     `
	dc.b	`enterprise     bca     cfr     bfbs     ibb `
	dc.b    `        sorry if i missed anyone                    `
	dc.b	`ok        me thinks that will do for this demo    `
	dc.b	`look out for future xxx international productions`
	dc.b	`         xxx international           we deal with`
	dc.b	` the best       we dont mess with the rest  `
	dc.b	`        now its time for the rap            `
	dc.b	`yo party people in the place to be        `
	dc.b	`this is what you booted your amiga to see `
	dc.b	`                  bye from spark            `
	dc.b	`for now            `	      
	dc.b	$ff,0,0,0,0
	even

bp1count:	dc.l	0

startpos:	lea	btable,a0
		move.l	a0,bp1count
		rts

sine:	lea	gb1,a0
	lea	bp1count,a1
	jsr	updown
	rts


updown:	move.l	(a1),a2
	cmp.w	#$ffff,(a2)	
	beq	resud
	move.w	(a2),d0
	add.w	d0,gb1
	lea	gb2,a3
	lea	gbu,a4
loopp:	add.w	d0,(a3)
	add.l	#16,a3
	cmp.l	a4,a3
	bls	loopp
	add.l	#2,(a1)
	rts

resud:	lea	btable,a2
	move.l	a2,(a1)
	move.w	#$8111,(a0)
	rts

btable:	blk.w	50,0
	dc.w	0,0,0,0,256,0,256,0,256,256,256,256,512,256
	dc.w	512,256,512,512
	dc.w	512,512,768,512,768,512,768,512,768,768
	dc.w	768,768	

	dc.w	-$300,-$300,-$300,-$300,-$200,-$300,-$200,-$300
	dc.w	-$200,-$300
	dc.w	-$200,-$200,-$200,-$200,-$100,-$200,-$100,-$200
	dc.w	-$100,-$100
	dc.w	-$100,-$100
	dc.w	0,-$100,0,-$100,0,0
	
	
	dc.w	0,0,0,0,256,0,256,0,256,256,256,256,512,256
	dc.w	512,256,512,512
	dc.w	512,512,768,512,768,512,768,512,768,768
	dc.w	768,768	
	
	
	dc.w	-$200,-$300,-$200,-$300
	dc.w	-$200,-$300
	dc.w	-$200,-$200,-$200,-$200,-$100,-$200,-$100,-$200
	dc.w	-$100,-$100
	dc.w	-$100,-$100
	dc.w	0,-$100,0,-$100,0,0
	
	dc.w	0,0,0,0,256,0,256,0,256,256,256,256,512,256
	dc.w	512,256,512,512
	dc.w	512,512,768,512,768,512,768,512
	
	dc.w	-$200,-$300
	dc.w	-$200,-$200,-$200,-$200,-$100,-$200,-$100,-$200
	dc.w	-$100,-$100
	dc.w	-$100,-$100
	dc.w	0,-$100,0,-$100,0,0
	
	dc.w	0,0,0,0,256,0,256,0,256,256,256,256,512,256
	dc.w	512,256,512,512
	dc.w	512,512,768,512
	
	dc.w	-$200,-$200,-$100,-$200,-$100,-$200
	dc.w	-$100,-$100
	dc.w	-$100,-$100
	dc.w	0,-$100,0,-$100,0,0
	
	dc.w	0,0,0,0,256,0,256,0,256,256,256,256,512,256
	dc.w	512,256,512,512
	
	dc.w	-$100,-$200
	dc.w	-$100,-$100
	dc.w	-$100,-$100
	dc.w	0,-$100,0,-$100,0,0
	
	dc.w	0,0,0,0,256,0,256,0,256,256,256,256,512,256
	
	dc.w	-$100,-$100
	dc.w	0,-$100,0,-$100,0,0
	
	dc.w	0,0,0,0,256,0,256,0,256,256

	dc.w	0,-$100,0,0
	
	dc.w	0,0,0,0,256,0
	


	dc.w	-$300,-$300,-$300,-$300,-$200,-$300,-$200,-$300
	dc.w	-$200,-$300
	dc.w	-$200,-$200,-$200,-$200,-$100,-$200,-$100,-$200
	dc.w	-$100,-$100
	dc.w	-$100,-$100
	dc.w	0,-$100,0,-$100,0,0
		
;;;;;
	dc.w	0,0,0,0,$100,0,$100,0
	dc.w	$100,$100,$100,$100,$200,$100,$200,$100
	dc.w	$200,$200,$200,$200,$300,$200,$300,$200
	dc.w	$200,$300,$200,$300,$200,$200,$200,$200
	dc.w	$100,$200,$100,$200,$100,$100,$100,$100
	dc.w	0,$100,0,$100

	dc.w	0,0,0,0,-$100,0,-$100,0
	dc.w	-$100,-$100,-$100,-$100,-$200,-$100,-$200,-$100
	dc.w	-$200,-$200,-$200,-$200,-$300,-$200,-$300,-$200
	dc.w	-$200,-$300,-$200,-$300,-$200,-$200,-$200,-$200
	dc.w	-$100,-$200,-$100,-$200,-$100,-$100,-$100,-$100
	dc.w	0,-$100,0,-$100

	dc.w	0,0,0,0,$100,0,$100,0
	dc.w	$100,$100,$100,$100,$200,$100,$200,$100
	dc.w	$200,$200,$200,$200,$300,$200,$300,$200
	dc.w	$200,$300,$200,$300,$200,$200,$200,$200
	dc.w	$100,$200,$100,$200,$100,$100,$100,$100
	dc.w	0,$100,0,$100

	dc.w	0,0,0,0,-$100,0,-$100,0
	dc.w	-$100,-$100,-$100,-$100,-$200,-$100,-$200,-$100
	dc.w	-$200,-$200,-$200,-$200,-$300,-$200,-$300,-$200
	dc.w	-$200,-$300,-$200,-$300,-$200,-$200,-$200,-$200
	dc.w	-$100,-$200,-$100,-$200,-$100,-$100,-$100,-$100
	dc.w	0,-$100,0,-$100

	
	dc.w	$ffff


scrmovflag:	dc.l	0,0

uppauseflag:	dc.l	0,0,0,0
stopflag:	dc.b	0,0,0,0

checkstopflag:
	move.b	stopflag,d0
	cmp.b	#$f,d0
	beq	ender
	bra	renter
ender:	rts

scrmove:move.b	scrmovflag,d0
	cmp.b	#$f,d0
	beq	miss
	move.b	#$f,scrmovflag
	move.w	uppauseflag,d0
	cmp.w	#$17,d0
	beq	checkstopflag
renter:	add.w	#1,uppauseflag	

	lea	bp1,a3
	cmp.w	#$1500,(a3)
	bgt	rrresud	
	lea	bp2,a4
lloopp:	add.w	#50,(a3)
	add.l	#16,a3
	cmp.l	a4,a3
	bls	lloopp
	rts

miss:	move.b	#0,scrmovflag
	rts

rrresud:
	lea	bp1,a2
	move.w	#$0c67,d1
	lea	postable,a1
back:	add.w	(a1),d1
	move.w	d1,(a2)
	add.l	#16,a2
	add.l	#2,a1
	cmp.w	#$ffff,(a1)
	bne	back
	move.w	#0,uppauseflag
	rts
postable:	
	dc.w	0,100,100,50,50,50,0,50,0,0,50,0,0,50,0,0
	dc.w	0,0,50,0,0,50,0,0,50,0,50,50,50,100,100,$ffff

xxxsetup:
	lea	xbps,a1
	lea	xbpf,a2
	move.w	#$5016,d0
suloop:	move.w	d0,(a1)
	add.w	#$5c,d0
	add.l	#16,a1
	cmp.l	a1,a2
	bgt	suloop
	rts

tablepo:	dc.b	0,0
tablepos:	dc.b	0,0,0,0

xxxwob:
	lea	xbps,a1
	lea	xscs,a4
	lea	xscf-16,a5
repbit:	move.w	16(a1),d0
	sub.w	#$5c,d0
	move.w	d0,(a1)
	move.w	16(a4),(a4)
	add.l	#16,a4
	add.l	#16,a1
	cmp.l	a4,a5
	bgt	repbit
				;newvalue
	move.l	tablepo,d0
	lea	wobtable,a4
	add.l	d0,a4
	lea	xbpf-16,a1
	lea	xscf-16,a3
	
wobloop:bsr	nextwob	
	add.l	#2,d0
	lea	wobtable,a4	
	add.l	d0,a4
	move.l	d0,tablepo
	cmp.w	#$abcd,(a4)
	beq	ressit
	rts


ressit:
	lea	wobtable,a4
	move.l	#0,tablepo
	
nextwob:
	cmp.w	#$abcd,(a4)
	beq	ressit	
	move.w	(a4),d1
	cmp.w	#$e000,d1
	bhi	suber

adder:	move.w	(a3),d2
	add.w	d1,d2
	cmp.w	#$ff,d2
	bhi	addone
	move.w	d2,(a3)
	rts

addone:	sub.w	#$10,d2
	move.w	d2,d1s
	move.b	#0,d1s
	move.w	d1s,d2
	move.w	d2,(a3)
	sub.w	#2,(a1)
	rts			

suber:	move.w	(a3),d2
	add.w	d1,d2
	cmp.w	#$f000,d2
	bhi	subone
	move.w	d2,(a3)
	rts

subone:	add.w	#$10,d2
	move.w	d2,d1s
	move.b	#0,d1s
	move.w	d1s,d2
	move.w	d2,(a3)
	add.w	#2,(a1)
	rts			
	

d1s:	dc.b	0
d1store:dc.b	0

	
wobtable:	;note    scr pos first, then bit to add to screen disp
	

	blk.w	80,0		
	blk.w	80,0		
	blk.w	80,0		

	blk.w	2,$ff
	blk.w	2,$ee
	blk.w	2,$dd
	blk.w	2,$cc
	blk.w	2,$bb
	blk.w	2,$aa
	blk.w	2,$99
	blk.w	2,$88
	blk.w	2,$77
	blk.w	2,$66
	blk.w	2,$55
	blk.w	2,$44
	blk.w	2,$33
	blk.w	2,$22
	blk.w	2,$11
	blk.w	2,$00


	blk.w	2,-$11
	blk.w	2,-$22
	blk.w	2,-$33
	blk.w	2,-$44
	blk.w	2,-$55
	blk.w	2,-$66
	blk.w	2,-$77
	blk.w	2,-$88
	blk.w	2,-$99
	blk.w	2,-$aa
	blk.w	2,-$bb
	blk.w	2,-$cc
	blk.w	2,-$dd
	blk.w	2,-$ee
	blk.w	2,-$ff


	
	blk.w	2,-$ff
	blk.w	2,-$ee
	blk.w	2,-$dd
	blk.w	2,-$cc
	blk.w	2,-$bb
	blk.w	2,-$aa
	blk.w	2,-$99
	blk.w	2,-$88
	blk.w	2,-$77
	blk.w	2,-$66
	blk.w	2,-$55
	blk.w	2,-$44
	blk.w	2,-$33
	blk.w	2,-$22
	blk.w	2,-$11
	blk.w	2,-$00

	blk.w	2,$11
	blk.w	2,$22
	blk.w	2,$33
	blk.w	2,$44
	blk.w	2,$55
	blk.w	2,$66
	blk.w	2,$77
	blk.w	2,$88
	blk.w	2,$99
	blk.w	2,$aa
	blk.w	2,$bb
	blk.w	2,$cc
	blk.w	2,$dd
	blk.w	2,$ee
	blk.w	2,$ff

	blk.w	2,$dd
	blk.w	2,$cc
	blk.w	2,$bb
	blk.w	2,$aa
	blk.w	2,$99
	blk.w	2,$88
	blk.w	2,$77
	blk.w	2,$66
	blk.w	2,$55
	blk.w	2,$44
	blk.w	2,$33
	blk.w	2,$22
	blk.w	2,$11
	blk.w	2,$00


	blk.w	2,-$11
	blk.w	2,-$22
	blk.w	2,-$33
	blk.w	2,-$44
	blk.w	2,-$55
	blk.w	2,-$66
	blk.w	2,-$77
	blk.w	2,-$88
	blk.w	2,-$99
	blk.w	2,-$aa
	blk.w	2,-$bb
	blk.w	2,-$cc
	blk.w	2,-$dd
	

	blk.w	2,-$dd
	blk.w	2,-$cc
	blk.w	2,-$bb
	blk.w	2,-$aa
	blk.w	2,-$99
	blk.w	2,-$88
	blk.w	2,-$77
	blk.w	2,-$66
	blk.w	2,-$55
	blk.w	2,-$44
	blk.w	2,-$33
	blk.w	2,-$22
	blk.w	2,-$11
	blk.w	2,-$00

	blk.w	2,$11
	blk.w	2,$22
	blk.w	2,$33
	blk.w	2,$44
	blk.w	2,$55
	blk.w	2,$66
	blk.w	2,$77
	blk.w	2,$88
	blk.w	2,$99
	blk.w	2,$aa
	blk.w	2,$bb
	blk.w	2,$cc
	blk.w	2,$dd

	blk.w	2,$aa
	blk.w	2,$99
	blk.w	2,$88
	blk.w	2,$77
	blk.w	2,$66
	blk.w	2,$55
	blk.w	2,$44
	blk.w	2,$33
	blk.w	2,$22
	blk.w	2,$11
	blk.w	2,$00


	blk.w	2,-$11
	blk.w	2,-$22
	blk.w	2,-$33
	blk.w	2,-$44
	blk.w	2,-$55
	blk.w	2,-$66
	blk.w	2,-$77
	blk.w	2,-$88
	blk.w	2,-$99
	blk.w	2,-$aa

	blk.w	2,-$aa
	blk.w	2,-$99
	blk.w	2,-$88
	blk.w	2,-$77
	blk.w	2,-$66
	blk.w	2,-$55
	blk.w	2,-$44
	blk.w	2,-$33
	blk.w	2,-$22
	blk.w	2,-$11
	blk.w	2,-$00

	blk.w	2,$11
	blk.w	2,$22
	blk.w	2,$33
	blk.w	2,$44
	blk.w	2,$55
	blk.w	2,$66
	blk.w	2,$77
	blk.w	2,$88
	blk.w	2,$99
	blk.w	2,$aa

	blk.w	2,$88
	blk.w	2,$77
	blk.w	2,$66
	blk.w	2,$55
	blk.w	2,$44
	blk.w	2,$33
	blk.w	2,$22
	blk.w	2,$11
	blk.w	2,$00


	blk.w	2,-$11
	blk.w	2,-$22
	blk.w	2,-$33
	blk.w	2,-$44
	blk.w	2,-$55
	blk.w	2,-$66
	blk.w	2,-$77
	blk.w	2,-$88
	
	blk.w	2,-$88
	blk.w	2,-$77
	blk.w	2,-$66
	blk.w	2,-$55
	blk.w	2,-$44
	blk.w	2,-$33
	blk.w	2,-$22
	blk.w	2,-$11
	blk.w	2,-$00

	blk.w	2,$11
	blk.w	2,$22
	blk.w	2,$33
	blk.w	2,$44
	blk.w	2,$55
	blk.w	2,$66
	blk.w	2,$77
	blk.w	2,$88

	blk.w	2,$44
	blk.w	2,$33
	blk.w	2,$22
	blk.w	2,$11
	blk.w	2,$00
	blk.w	2,-$11
	blk.w	2,-$22
	blk.w	2,-$33
	blk.w	2,-$44

	blk.w	2,-$44
	blk.w	2,-$33
	blk.w	2,-$22
	blk.w	2,-$11
	blk.w	2,-$00
	blk.w	2,$11
	blk.w	2,$22
	blk.w	2,$33
	blk.w	2,$44
	blk.w	2,$44
	blk.w	2,$33
	blk.w	2,$22
	blk.w	2,$11
	blk.w	2,$00
	blk.w	2,-$11
	blk.w	2,-$22
	blk.w	2,-$33
	blk.w	2,-$44

	blk.w	2,-$44
	blk.w	2,-$33
	blk.w	2,-$22
	blk.w	2,-$11
	blk.w	2,-$00
	blk.w	2,$11
	blk.w	2,$22
	blk.w	2,$33
	blk.w	2,$44
	blk.w	2,$44
	blk.w	2,$33
	blk.w	2,$22
	blk.w	2,$11
	blk.w	2,$00
	blk.w	2,-$11
	blk.w	2,-$22
	blk.w	2,-$33
	blk.w	2,-$44

	blk.w	2,-$44
	blk.w	2,-$33
	blk.w	2,-$22
	blk.w	2,-$11
	blk.w	2,-$00
	blk.w	2,$11
	blk.w	2,$22
	blk.w	2,$33
	blk.w	2,$44

	blk.w	2,$22
	blk.w	2,$11
	blk.w	2,$00
	blk.w	2,-$11
	blk.w	2,-$22

	blk.w	2,-$22
	blk.w	2,-$11
	blk.w	2,-$00
	blk.w	2,$11
	blk.w	2,$22


	blk.w	2,$22
	blk.w	2,$11
	blk.w	2,$00
	blk.w	2,-$11
	blk.w	2,-$22

	blk.w	2,-$22
	blk.w	2,-$11
	blk.w	2,-$00
	blk.w	2,$11
	blk.w	2,$22


	blk.w	2,$22
	blk.w	2,$11
	blk.w	2,$00
	blk.w	2,-$11
	blk.w	2,-$22

	blk.w	2,-$22
	blk.w	2,-$11
	blk.w	2,-$00
	blk.w	2,$11
	blk.w	2,$22


	blk.w	2,$22
	blk.w	2,$11
	blk.w	2,$00
	blk.w	2,-$11
	blk.w	2,-$22

	blk.w	2,-$22
	blk.w	2,-$11
	blk.w	2,-$00
	blk.w	2,$11
	blk.w	2,$22


	blk.w	2,$22
	blk.w	2,$11
	blk.w	2,$00
	blk.w	2,-$11
	blk.w	2,-$22

	blk.w	2,-$22
	blk.w	2,-$11
	blk.w	2,-$00
	blk.w	2,$11
	blk.w	2,$22


	blk.w	2,$22
	blk.w	2,$11
	blk.w	2,$00
	blk.w	2,-$11
	blk.w	2,-$22

	blk.w	2,-$22
	blk.w	2,-$11
	blk.w	2,-$00
	blk.w	2,$11
	blk.w	2,$22

	blk.w	80,0		

	blk.w	5,$aa
	blk.w	5,$99
	blk.w	5,$88
	blk.w	5,$77
	blk.w	5,$66
	blk.w	5,$55
	blk.w	5,$44
	blk.w	5,$33
	blk.w	5,$22
	blk.w	5,$11
	blk.w	5,$00


	blk.w	5,-$11
	blk.w	5,-$22
	blk.w	5,-$33
	blk.w	5,-$44
	blk.w	5,-$55
	blk.w	5,-$66
	blk.w	5,-$77
	blk.w	5,-$88
	blk.w	5,-$99
	blk.w	5,-$aa
	

	blk.w	5,-$aa
	blk.w	5,-$99
	blk.w	5,-$88
	blk.w	5,-$77
	blk.w	5,-$66
	blk.w	5,-$55
	blk.w	5,-$44
	blk.w	5,-$33
	blk.w	5,-$22
	blk.w	5,-$11
	blk.w	5,-$00

	blk.w	5,$11
	blk.w	5,$22
	blk.w	5,$33
	blk.w	5,$44
	blk.w	5,$55
	blk.w	5,$66
	blk.w	5,$77
	blk.w	5,$88
	blk.w	5,$99
	blk.w	5,$aa


	blk.w	5,$aa
	blk.w	5,$99
	blk.w	5,$88
	blk.w	5,$77
	blk.w	5,$66
	blk.w	5,$55
	blk.w	5,$44
	blk.w	5,$33
	blk.w	5,$22
	blk.w	5,$11
	blk.w	5,$00


	blk.w	5,-$11
	blk.w	5,-$22
	blk.w	5,-$33
	blk.w	5,-$44
	blk.w	5,-$55
	blk.w	5,-$66
	blk.w	5,-$77
	blk.w	5,-$88
	blk.w	5,-$99
	blk.w	5,-$aa
	

	blk.w	5,-$aa
	blk.w	5,-$99
	blk.w	5,-$88
	blk.w	5,-$77
	blk.w	5,-$66
	blk.w	5,-$55
	blk.w	5,-$44
	blk.w	5,-$33
	blk.w	5,-$22
	blk.w	5,-$11
	blk.w	5,-$00

	blk.w	5,$11
	blk.w	5,$22
	blk.w	5,$33
	blk.w	5,$44
	blk.w	5,$55
	blk.w	5,$66
	blk.w	5,$77
	blk.w	5,$88
	blk.w	5,$99
	blk.w	5,$aa


	blk.w	5,$aa
	blk.w	5,$99
	blk.w	5,$88
	blk.w	5,$77
	blk.w	5,$66
	blk.w	5,$55
	blk.w	5,$44
	blk.w	5,$33
	blk.w	5,$22
	blk.w	5,$11
	blk.w	5,$00


	blk.w	5,-$11
	blk.w	5,-$22
	blk.w	5,-$33
	blk.w	5,-$44
	blk.w	5,-$55
	blk.w	5,-$66
	blk.w	5,-$77
	blk.w	5,-$88
	blk.w	5,-$99
	blk.w	5,-$aa
	

	blk.w	5,-$aa
	blk.w	5,-$99
	blk.w	5,-$88
	blk.w	5,-$77
	blk.w	5,-$66
	blk.w	5,-$55
	blk.w	5,-$44
	blk.w	5,-$33
	blk.w	5,-$22
	blk.w	5,-$11
	blk.w	5,-$00

	blk.w	5,$11
	blk.w	5,$22
	blk.w	5,$33
	blk.w	5,$44
	blk.w	5,$55
	blk.w	5,$66
	blk.w	5,$77
	blk.w	5,$88
	blk.w	5,$99
	blk.w	5,$aa

	blk.w	80,0

	dc.w	$11,-$11,$22,-$22,$33,-$33,$44,-$44
	dc.w	$55,-$55,$66,-$66,$77,-$77,$88,-$88
	dc.w	$99,-$99,$aa,-$aa,$bb,-$bb,$cc,-$cc
	dc.w	$dd,-$dd,$ee,-$ee,$ff,-$ff
	
	dc.w	$ff,-$ff,$ee,-$ee,$dd,-$dd
	dc.w	$cc,-$cc,$bb,-$bb,$aa,-$aa,$99,-$99
	dc.w	$88,-$88,$77,-$77,$66,-$66,$55,-$55
	dc.w	$44,-$44,$33,-$33,$22,-$22,$11,-$11
	dc.w	0,0	
	dc.w	-$11,$11,-$22,$22,-$33,$33,-$44,$44
	dc.w	-$55,$55,-$66,$66,-$77,$77,-$88,$88
	dc.w	-$99,$99,-$aa,$aa,-$bb,$bb,-$cc,$cc
	dc.w	-$dd,$dd,-$ee,$ee,-$ff,$ff
	
	dc.w	-$ff,$ff,-$ee,$ee,-$dd,$dd
	dc.w	-$cc,$cc,-$bb,$bb,-$aa,$aa,-$99,$99
	dc.w	-$88,$88,-$77,$77,-$66,$66,-$55,$55
	dc.w	-$44,$44,-$33,$33,-$22,$22,-$11,$11
	dc.w	0,0	

	dc.w	$11,-$11,$22,-$22,$33,-$33,$44,-$44
	dc.w	$55,-$55,$66,-$66,$77,-$77,$88,-$88
	dc.w	$99,-$99,$aa,-$aa,$bb,-$bb,$cc,-$cc
	dc.w	$dd,-$dd,$ee,-$ee,$ff,-$ff
	
	dc.w	$ff,-$ff,$ee,-$ee,$dd,-$dd
	dc.w	$cc,-$cc,$bb,-$bb,$aa,-$aa,$99,-$99
	dc.w	$88,-$88,$77,-$77,$66,-$66,$55,-$55
	dc.w	$44,-$44,$33,-$33,$22,-$22,$11,-$11
	dc.w	0,0	
	dc.w	-$11,$11,-$22,$22,-$33,$33,-$44,$44
	dc.w	-$55,$55,-$66,$66,-$77,$77,-$88,$88
	dc.w	-$99,$99,-$aa,$aa,-$bb,$bb,-$cc,$cc
	dc.w	-$dd,$dd,-$ee,$ee,-$ff,$ff
	
	dc.w	-$ff,$ff,-$ee,$ee,-$dd,$dd
	dc.w	-$cc,$cc,-$bb,$bb,-$aa,$aa,-$99,$99
	dc.w	-$88,$88,-$77,$77,-$66,$66,-$55,$55
	dc.w	-$44,$44,-$33,$33,-$22,$22,-$11,$11
	dc.w	0,0	

	dc.w	$11,-$11,$22,-$22,$33,-$33,$44,-$44
	dc.w	$55,-$55,$66,-$66,$77,-$77,$88,-$88
	dc.w	$99,-$99,$aa,-$aa,$bb,-$bb,$cc,-$cc
	dc.w	$dd,-$dd,$ee,-$ee,$ff,-$ff
	
	dc.w	$ff,-$ff,$ee,-$ee,$dd,-$dd
	dc.w	$cc,-$cc,$bb,-$bb,$aa,-$aa,$99,-$99
	dc.w	$88,-$88,$77,-$77,$66,-$66,$55,-$55
	dc.w	$44,-$44,$33,-$33,$22,-$22,$11,-$11
	dc.w	0,0	
	dc.w	-$11,$11,-$22,$22,-$33,$33,-$44,$44
	dc.w	-$55,$55,-$66,$66,-$77,$77,-$88,$88
	dc.w	-$99,$99,-$aa,$aa,-$bb,$bb,-$cc,$cc
	dc.w	-$dd,$dd,-$ee,$ee,-$ff,$ff
	
	dc.w	-$ff,$ff,-$ee,$ee,-$dd,$dd
	dc.w	-$cc,$cc,-$bb,$bb,-$aa,$aa,-$99,$99
	dc.w	-$88,$88,-$77,$77,-$66,$66,-$55,$55
	dc.w	-$44,$44,-$33,$33,-$22,$22,-$11,$11
	dc.w	0,0	

	dc.w	$11,-$11,$22,-$22,$33,-$33,$44,-$44
	dc.w	$55,-$55,$66,-$66,$77,-$77,$88,-$88
	dc.w	$99,-$99,$aa,-$aa,$bb,-$bb,$cc,-$cc
	dc.w	$dd,-$dd,$ee,-$ee,$ff,-$ff
	
	dc.w	$ff,-$ff,$ee,-$ee,$dd,-$dd
	dc.w	$cc,-$cc,$bb,-$bb,$aa,-$aa,$99,-$99
	dc.w	$88,-$88,$77,-$77,$66,-$66,$55,-$55
	dc.w	$44,-$44,$33,-$33,$22,-$22,$11,-$11
	dc.w	0,0	
	dc.w	-$11,$11,-$22,$22,-$33,$33,-$44,$44
	dc.w	-$55,$55,-$66,$66,-$77,$77,-$88,$88
	dc.w	-$99,$99,-$aa,$aa,-$bb,$bb,-$cc,$cc
	dc.w	-$dd,$dd,-$ee,$ee,-$ff,$ff
	
	dc.w	-$ff,$ff,-$ee,$ee,-$dd,$dd
	dc.w	-$cc,$cc,-$bb,$bb,-$aa,$aa,-$99,$99
	dc.w	-$88,$88,-$77,$77,-$66,$66,-$55,$55
	dc.w	-$44,$44,-$33,$33,-$22,$22,-$11,$11
	dc.w	0,0	

	blk.w	80,0

	dc.w	$88,$99,$aa,$bb,$cc,$bb,$aa,$99,$88
	dc.w	$77,$88,$99,$aa,$bb,$aa,$99,$88,$77
	dc.w	$66,$77,$88,$99,$aa,$99,$88,$77,$66
	dc.w	$55,$66,$77,$88,$99,$88,$77,$66,$55
	dc.w	$44,$55,$66,$77,$88,$77,$66,$55,$44
	dc.w	$33,$44,$55,$66,$77,$66,$55,$44,$33
	dc.w	$22,$33,$44,$55,$66,$55,$44,$33,$22
	dc.w	$11,$22,$33,$44,$55,$44,$33,$22,$11
	dc.w	$00,$11,$22,$33,$44,$33,$22,$11,$00

	dc.w	-$00,-$11,-$22,-$33,-$44,-$33,-$22,-$11,-$00
	dc.w	-$11,-$22,-$33,-$44,-$55,-$44,-$33,-$22,-$11
	dc.w	-$22,-$33,-$44,-$55,-$66,-$55,-$44,-$33,-$22
	dc.w	-$33,-$44,-$55,-$66,-$77,-$66,-$55,-$44,-$33
	dc.w	-$44,-$55,-$66,-$77,-$88,-$77,-$66,-$55,-$44
	dc.w	-$55,-$66,-$77,-$88,-$99,-$88,-$77,-$66,-$55
	dc.w	-$66,-$77,-$88,-$99,-$aa,-$99,-$88,-$77,-$66
	dc.w	-$77,-$88,-$99,-$aa,-$bb,-$aa,-$99,-$88,-$77
	dc.w	-$88,-$99,-$aa,-$bb,-$cc,-$bb,-$aa,-$99,-$88

	dc.w	-$88,-$99,-$aa,-$bb,-$cc,-$bb,-$aa,-$99,-$88
	dc.w	-$77,-$88,-$99,-$aa,-$bb,-$aa,-$99,-$88,-$77
	dc.w	-$66,-$77,-$88,-$99,-$aa,-$99,-$88,-$77,-$66
	dc.w	-$55,-$66,-$77,-$88,-$99,-$88,-$77,-$66,-$55
	dc.w	-$44,-$55,-$66,-$77,-$88,-$77,-$66,-$55,-$44
	dc.w	-$33,-$44,-$55,-$66,-$77,-$66,-$55,-$44,-$33
	dc.w	-$22,-$33,-$44,-$55,-$66,-$55,-$44,-$33,-$22
	dc.w	-$11,-$22,-$33,-$44,-$55,-$44,-$33,-$22,-$11
	dc.w	-$00,-$11,-$22,-$33,-$44,-$33,-$22,-$11,-$00

	dc.w	$00,$11,$22,$33,$44,$33,$22,$11,$00
	dc.w	$11,$22,$33,$44,$55,$44,$33,$22,$11
	dc.w	$22,$33,$44,$55,$66,$55,$44,$33,$22
	dc.w	$33,$44,$55,$66,$77,$66,$55,$44,$33
	dc.w	$44,$55,$66,$77,$88,$77,$66,$55,$44
	dc.w	$55,$66,$77,$88,$99,$88,$77,$66,$55
	dc.w	$66,$77,$88,$99,$aa,$99,$88,$77,$66
	dc.w	$77,$88,$99,$aa,$bb,$aa,$99,$88,$77
	dc.w	$88,$99,$aa,$bb,$cc,$bb,$aa,$99,$88

	dc.w	$88,$99,$aa,$bb,$cc,$bb,$aa,$99,$88
	dc.w	$77,$88,$99,$aa,$bb,$aa,$99,$88,$77
	dc.w	$66,$77,$88,$99,$aa,$99,$88,$77,$66
	dc.w	$55,$66,$77,$88,$99,$88,$77,$66,$55
	dc.w	$44,$55,$66,$77,$88,$77,$66,$55,$44
	dc.w	$33,$44,$55,$66,$77,$66,$55,$44,$33
	dc.w	$22,$33,$44,$55,$66,$55,$44,$33,$22
	dc.w	$11,$22,$33,$44,$55,$44,$33,$22,$11
	dc.w	$00,$11,$22,$33,$44,$33,$22,$11,$00

	dc.w	-$00,-$11,-$22,-$33,-$44,-$33,-$22,-$11,-$00
	dc.w	-$11,-$22,-$33,-$44,-$55,-$44,-$33,-$22,-$11
	dc.w	-$22,-$33,-$44,-$55,-$66,-$55,-$44,-$33,-$22
	dc.w	-$33,-$44,-$55,-$66,-$77,-$66,-$55,-$44,-$33
	dc.w	-$44,-$55,-$66,-$77,-$88,-$77,-$66,-$55,-$44
	dc.w	-$55,-$66,-$77,-$88,-$99,-$88,-$77,-$66,-$55
	dc.w	-$66,-$77,-$88,-$99,-$aa,-$99,-$88,-$77,-$66
	dc.w	-$77,-$88,-$99,-$aa,-$bb,-$aa,-$99,-$88,-$77
	dc.w	-$88,-$99,-$aa,-$bb,-$cc,-$bb,-$aa,-$99,-$88

	dc.w	-$88,-$99,-$aa,-$bb,-$cc,-$bb,-$aa,-$99,-$88
	dc.w	-$77,-$88,-$99,-$aa,-$bb,-$aa,-$99,-$88,-$77
	dc.w	-$66,-$77,-$88,-$99,-$aa,-$99,-$88,-$77,-$66
	dc.w	-$55,-$66,-$77,-$88,-$99,-$88,-$77,-$66,-$55
	dc.w	-$44,-$55,-$66,-$77,-$88,-$77,-$66,-$55,-$44
	dc.w	-$33,-$44,-$55,-$66,-$77,-$66,-$55,-$44,-$33
	dc.w	-$22,-$33,-$44,-$55,-$66,-$55,-$44,-$33,-$22
	dc.w	-$11,-$22,-$33,-$44,-$55,-$44,-$33,-$22,-$11
	dc.w	-$00,-$11,-$22,-$33,-$44,-$33,-$22,-$11,-$00

	dc.w	$00,$11,$22,$33,$44,$33,$22,$11,$00
	dc.w	$11,$22,$33,$44,$55,$44,$33,$22,$11
	dc.w	$22,$33,$44,$55,$66,$55,$44,$33,$22
	dc.w	$33,$44,$55,$66,$77,$66,$55,$44,$33
	dc.w	$44,$55,$66,$77,$88,$77,$66,$55,$44
	dc.w	$55,$66,$77,$88,$99,$88,$77,$66,$55
	dc.w	$66,$77,$88,$99,$aa,$99,$88,$77,$66
	dc.w	$77,$88,$99,$aa,$bb,$aa,$99,$88,$77
	dc.w	$88,$99,$aa,$bb,$cc,$bb,$aa,$99,$88

	blk.w	80,0

	blk.w	5,$aa
	blk.w	5,$99
	blk.w	5,$88
	blk.w	5,$77
	blk.w	5,$66
	blk.w	40,0
	blk.w	5,$55
	blk.w	5,$44
	blk.w	5,$33
	blk.w	5,$22
	blk.w	5,$11
	blk.w	5,$00


	blk.w	5,-$11
	blk.w	5,-$22
	blk.w	5,-$33
	blk.w	5,-$44
	blk.w	5,-$55
	blk.w	40,0
	blk.w	5,-$66
	blk.w	5,-$77
	blk.w	5,-$88
	blk.w	5,-$99
	blk.w	5,-$aa
	

	blk.w	5,-$aa
	blk.w	5,-$99
	blk.w	5,-$88
	blk.w	5,-$77
	blk.w	5,-$66
	blk.w	40,0
	blk.w	5,-$55
	blk.w	5,-$44
	blk.w	5,-$33
	blk.w	5,-$22
	blk.w	5,-$11
	blk.w	5,-$00

	blk.w	5,$11
	blk.w	5,$22
	blk.w	5,$33
	blk.w	5,$44
	blk.w	5,$55
	blk.w	40,0
	blk.w	5,$66
	blk.w	5,$77
	blk.w	5,$88
	blk.w	5,$99
	blk.w	5,$aa

	blk.w	80,0

	blk.w	1,-$aa
	blk.w	1,-$99
	blk.w	1,-$88
	blk.w	1,-$77
	blk.w	1,-$66
	blk.w	1,-$55
	blk.w	1,-$44
	blk.w	1,-$33
	blk.w	1,-$22
	blk.w	1,-$11
	blk.w	1,-$00

	blk.w	1,$11
	blk.w	1,$22
	blk.w	1,$33
	blk.w	1,$44
	blk.w	1,$55
	blk.w	1,$66
	blk.w	1,$77
	blk.w	1,$88
	blk.w	1,$99
	blk.w	1,$aa

	blk.w	1,-$aa
	blk.w	1,-$99
	blk.w	1,-$88
	blk.w	1,-$77
	blk.w	1,-$66
	blk.w	1,-$55
	blk.w	1,-$44
	blk.w	1,-$33
	blk.w	1,-$22
	blk.w	1,-$11
	blk.w	1,-$00

	blk.w	1,$11
	blk.w	1,$22
	blk.w	1,$33
	blk.w	1,$44
	blk.w	1,$55
	blk.w	1,$66
	blk.w	1,$77
	blk.w	1,$88
	blk.w	1,$99
	blk.w	1,$aa

	blk.w	1,-$aa
	blk.w	1,-$99
	blk.w	1,-$88
	blk.w	1,-$77
	blk.w	1,-$66
	blk.w	1,-$55
	blk.w	1,-$44
	blk.w	1,-$33
	blk.w	1,-$22
	blk.w	1,-$11
	blk.w	1,-$00

	blk.w	1,$11
	blk.w	1,$22
	blk.w	1,$33
	blk.w	1,$44
	blk.w	1,$55
	blk.w	1,$66
	blk.w	1,$77
	blk.w	1,$88
	blk.w	1,$99
	blk.w	1,$aa

	blk.w	2,-$aa
	blk.w	2,-$99
	blk.w	2,-$88
	blk.w	2,-$77
	blk.w	2,-$66
	blk.w	2,-$55
	blk.w	2,-$44
	blk.w	2,-$33
	blk.w	2,-$22
	blk.w	2,-$11
	blk.w	2,-$00

	blk.w	2,$11
	blk.w	2,$22
	blk.w	2,$33
	blk.w	2,$44
	blk.w	2,$55
	blk.w	2,$66
	blk.w	2,$77
	blk.w	2,$88
	blk.w	2,$99
	blk.w	2,$aa

	blk.w	2,-$aa
	blk.w	2,-$99
	blk.w	2,-$88
	blk.w	2,-$77
	blk.w	2,-$66
	blk.w	2,-$55
	blk.w	2,-$44
	blk.w	2,-$33
	blk.w	2,-$22
	blk.w	2,-$11
	blk.w	2,-$00

	blk.w	2,$11
	blk.w	2,$22
	blk.w	2,$33
	blk.w	2,$44
	blk.w	2,$55
	blk.w	2,$66
	blk.w	2,$77
	blk.w	2,$88
	blk.w	2,$99
	blk.w	2,$aa

	blk.w	2,-$aa
	blk.w	2,-$99
	blk.w	2,-$88
	blk.w	2,-$77
	blk.w	2,-$66
	blk.w	2,-$55
	blk.w	2,-$44
	blk.w	2,-$33
	blk.w	2,-$22
	blk.w	2,-$11
	blk.w	2,-$00

	blk.w	2,$11
	blk.w	2,$22
	blk.w	2,$33
	blk.w	2,$44
	blk.w	2,$55
	blk.w	2,$66
	blk.w	2,$77
	blk.w	2,$88
	blk.w	2,$99
	blk.w	2,$aa
	
	blk.w	3,-$aa
	blk.w	3,-$99
	blk.w	3,-$88
	blk.w	3,-$77
	blk.w	3,-$66
	blk.w	3,-$55
	blk.w	3,-$44
	blk.w	3,-$33
	blk.w	3,-$22
	blk.w	3,-$11
	blk.w	3,-$00

	blk.w	3,$11
	blk.w	3,$22
	blk.w	3,$33
	blk.w	3,$44
	blk.w	3,$55
	blk.w	3,$66
	blk.w	3,$77
	blk.w	3,$88
	blk.w	3,$99
	blk.w	3,$aa
	blk.w	3,-$aa
	blk.w	3,-$99
	blk.w	3,-$88
	blk.w	3,-$77
	blk.w	3,-$66
	blk.w	3,-$55
	blk.w	3,-$44
	blk.w	3,-$33
	blk.w	3,-$22
	blk.w	3,-$11
	blk.w	3,-$00

	blk.w	3,$11
	blk.w	3,$22
	blk.w	3,$33
	blk.w	3,$44
	blk.w	3,$55
	blk.w	3,$66
	blk.w	3,$77
	blk.w	3,$88
	blk.w	3,$99
	blk.w	3,$aa
	blk.w	3,-$aa
	blk.w	3,-$99
	blk.w	3,-$88
	blk.w	3,-$77
	blk.w	3,-$66
	blk.w	3,-$55
	blk.w	3,-$44
	blk.w	3,-$33
	blk.w	3,-$22
	blk.w	3,-$11
	blk.w	3,-$00

	blk.w	3,$11
	blk.w	3,$22
	blk.w	3,$33
	blk.w	3,$44
	blk.w	3,$55
	blk.w	3,$66
	blk.w	3,$77
	blk.w	3,$88
	blk.w	3,$99
	blk.w	3,$aa
	
	blk.w	4,-$aa
	blk.w	4,-$99
	blk.w	4,-$88
	blk.w	4,-$77
	blk.w	4,-$66
	blk.w	4,-$55
	blk.w	4,-$44
	blk.w	4,-$33
	blk.w	4,-$22
	blk.w	4,-$11
	blk.w	4,-$00

	blk.w	4,$11
	blk.w	4,$22
	blk.w	4,$33
	blk.w	4,$44
	blk.w	4,$55
	blk.w	4,$66
	blk.w	4,$77
	blk.w	4,$88
	blk.w	4,$99
	blk.w	4,$aa
	
	blk.w	4,-$aa
	blk.w	4,-$99
	blk.w	4,-$88
	blk.w	4,-$77
	blk.w	4,-$66
	blk.w	4,-$55
	blk.w	4,-$44
	blk.w	4,-$33
	blk.w	4,-$22
	blk.w	4,-$11
	blk.w	4,-$00

	blk.w	4,$11
	blk.w	4,$22
	blk.w	4,$33
	blk.w	4,$44
	blk.w	4,$55
	blk.w	4,$66
	blk.w	4,$77
	blk.w	4,$88
	blk.w	4,$99
	blk.w	4,$aa
	
	blk.w	4,-$aa
	blk.w	4,-$99
	blk.w	4,-$88
	blk.w	4,-$77
	blk.w	4,-$66
	blk.w	4,-$55
	blk.w	4,-$44
	blk.w	4,-$33
	blk.w	4,-$22
	blk.w	4,-$11
	blk.w	4,-$00

	blk.w	4,$11
	blk.w	4,$22
	blk.w	4,$33
	blk.w	4,$44
	blk.w	4,$55
	blk.w	4,$66
	blk.w	4,$77
	blk.w	4,$88
	blk.w	4,$99
	blk.w	4,$aa

	blk.w	5,-$aa
	blk.w	5,-$99
	blk.w	5,-$88
	blk.w	5,-$77
	blk.w	5,-$66
	blk.w	5,-$55
	blk.w	5,-$44
	blk.w	5,-$33
	blk.w	5,-$22
	blk.w	5,-$11
	blk.w	5,-$00

	blk.w	5,$11
	blk.w	5,$22
	blk.w	5,$33
	blk.w	5,$44
	blk.w	5,$55
	blk.w	5,$66
	blk.w	5,$77
	blk.w	5,$88
	blk.w	5,$99
	blk.w	5,$aa

	blk.w	5,-$aa
	blk.w	5,-$99
	blk.w	5,-$88
	blk.w	5,-$77
	blk.w	5,-$66
	blk.w	5,-$55
	blk.w	5,-$44
	blk.w	5,-$33
	blk.w	5,-$22
	blk.w	5,-$11
	blk.w	5,-$00

	blk.w	5,$11
	blk.w	5,$22
	blk.w	5,$33
	blk.w	5,$44
	blk.w	5,$55
	blk.w	5,$66
	blk.w	5,$77
	blk.w	5,$88
	blk.w	5,$99
	blk.w	5,$aa

	blk.w	5,-$aa
	blk.w	5,-$99
	blk.w	5,-$88
	blk.w	5,-$77
	blk.w	5,-$66
	blk.w	5,-$55
	blk.w	5,-$44
	blk.w	5,-$33
	blk.w	5,-$22
	blk.w	5,-$11
	blk.w	5,-$00

	blk.w	5,$11
	blk.w	5,$22
	blk.w	5,$33
	blk.w	5,$44
	blk.w	5,$55
	blk.w	5,$66
	blk.w	5,$77
	blk.w	5,$88
	blk.w	5,$99
	blk.w	5,$aa


endtab:	dc.w	$abcd,$abcd,$abcd,$abcd
 
gfxbase:

	dc.l	0

oldcopper:

	dc.l	0


newcopper:	DC.W $0100,$1200,$0104,$0003
		DC.W $00E0,$0007,$00E2,$0000
		DC.W $0180,$0000,$01A6,$0FFF
		DC.W $0120
SHI:		DC.W $0000
		DC.W $0122
SLO:		DC.W $0000		


	dc.w	$1001,$fffe,$0100,$1000,$0102,$0000
	
	dc.w	$00e0,$0006,$00e2,$0000	
	dc.w	$0092,$0028,$0094,$00f8
	dc.w	$008e,$1e01,$0090,$3eff
	dc.w	$0108,$002e,$010a,$002e	
	dc.w	$0180,$0000,$0182,$0bfd	
	dc.w	$1201,$fffe,$0182
xcols:	dc.w	$0000,$00e2
xbps:	dc.w	$005c,$0102
xscs:	dc.w	$0000
	dc.w	$1f01,$fffe,$0182,$0000,$00e2,$0088,$0102,$0000
	dc.w	$2001,$fffe,$0182,$0000,$00e2,$0088,$0102,$0000
	dc.w	$2101,$fffe,$0182,$0000,$00e2,$0088,$0102,$0000
	dc.w	$2201,$fffe,$0182,$0000,$00e2,$0088,$0102,$0000
	dc.w	$2301,$fffe,$0182,$0000,$00e2,$0088,$0102,$0000
	dc.w	$2401,$fffe,$0182,$0000,$00e2,$0088,$0102,$0000
	dc.w	$2501,$fffe,$0182,$0000,$00e2,$0088,$0102,$0000
	dc.w	$2601,$fffe,$0182,$0000,$00e2,$0088,$0102,$0000
	dc.w	$2701,$fffe,$0182,$0000,$00e2,$0088,$0102,$0000
	dc.w	$2801,$fffe,$0182,$0000,$00e2,$0088,$0102,$0000
	dc.w	$2901,$fffe,$0182,$0000,$00e2,$0088,$0102,$0000
	dc.w	$2a01,$fffe,$0182,$0000,$00e2,$0088,$0102,$0000
	dc.w	$2b01,$fffe,$0182,$0002,$00e2,$0088,$0102,$0000
	dc.w	$2c01,$fffe,$0182,$0004,$00e2,$0088,$0102,$0000
	dc.w	$2d01,$fffe,$0182,$0006,$00e2,$0088,$0102,$0000
	dc.w	$2e01,$fffe,$0182,$0008,$00e2,$0088,$0102,$0000
	dc.w	$2f01,$fffe,$0182,$000a,$00e2,$0088,$0102,$0000
	dc.w	$3001,$fffe,$0182,$000c,$00e2,$0088,$0102,$0000
	dc.w	$3101,$fffe,$0182,$000e,$00e2,$0088,$0102,$0000
	dc.w	$3201,$fffe,$0182,$000f,$00e2,$0088,$0102,$0000
	dc.w	$3301,$fffe,$0182,$002f,$00e2,$0088,$0102,$0000
	dc.w	$3401,$fffe,$0182,$004f,$00e2,$0088,$0102,$0000
	dc.w	$3501,$fffe,$0182,$006f,$00e2,$0088,$0102,$0000
	dc.w	$3601,$fffe,$0182,$008f,$00e2,$0088,$0102,$0000
	dc.w	$3701,$fffe,$0182,$00af,$00e2,$0088,$0102,$0000
	dc.w	$3801,$fffe,$0182,$00cf,$00e2,$0088,$0102,$0000
	dc.w	$3901,$fffe,$0182,$00ef,$00e2,$0088,$0102,$0000
	dc.w	$3a01,$fffe,$0182,$00ff,$00e2,$0088,$0102,$0000
	dc.w	$3b01,$fffe,$0182,$00ff,$00e2,$0088,$0102,$0000
	dc.w	$3c01,$fffe,$0182,$00fe,$00e2,$0088,$0102,$0000
	dc.w	$3d01,$fffe,$0182,$00fc,$00e2,$0088,$0102,$0000
	dc.w	$3e01,$fffe,$0182,$00fa,$00e2,$0088,$0102,$0000
	dc.w	$3f01,$fffe,$0182,$00f8,$00e2,$0088,$0102,$0000
	dc.w	$4001,$fffe,$0182,$00f6,$00e2,$0088,$0102,$0000
	dc.w	$4101,$fffe,$0182,$00f4,$00e2,$0088,$0102,$0000
	dc.w	$4201,$fffe,$0182,$00f2,$00e2,$0088,$0102,$0000
	dc.w	$4301,$fffe,$0182,$00f0,$00e2,$0088,$0102,$0000
	dc.w	$4401,$fffe,$0182,$00f0,$00e2,$0088,$0102,$0000
	dc.w	$4501,$fffe,$0182,$02f0,$00e2,$0088,$0102,$0000
	dc.w	$4601,$fffe,$0182,$04f0,$00e2,$0088,$0102,$0000
	dc.w	$4701,$fffe,$0182,$06f0,$00e2,$0088,$0102,$0000
	dc.w	$4801,$fffe,$0182,$08f0,$00e2,$0088,$0102,$0000
	dc.w	$4901,$fffe,$0182,$0af0,$00e2,$0088,$0102,$0000
	dc.w	$4a01,$fffe,$0182,$0cf0,$00e2,$0088,$0102,$0000
	dc.w	$4b01,$fffe,$0182,$0ef0,$00e2,$0088,$0102,$0000
	dc.w	$4c01,$fffe,$0182,$0ff0,$00e2,$0088,$0102,$0000
	dc.w	$4d01,$fffe,$0182,$0ff0,$00e2,$0088,$0102,$0000
	dc.w	$4e01,$fffe,$0182,$0fe0,$00e2,$0088,$0102,$0000
	dc.w	$4f01,$fffe,$0182,$0fc0,$00e2,$0088,$0102,$0000
	dc.w	$5001,$fffe,$0182,$0fa0,$00e2,$0088,$0102,$0000
	dc.w	$5101,$fffe,$0182,$0f80,$00e2,$0088,$0102,$0000
	dc.w	$5201,$fffe,$0182,$0f60,$00e2,$0088,$0102,$0000
	dc.w	$5301,$fffe,$0182,$0f40,$00e2,$0088,$0102,$0000
	dc.w	$5401,$fffe,$0182,$0f20,$00e2,$0088,$0102,$0000
	dc.w	$5501,$fffe,$0182,$0f00,$00e2,$0088,$0102,$0000
	dc.w	$5601,$fffe,$0182,$0f00,$00e2,$0088,$0102,$0000
	dc.w	$5701,$fffe,$0182,$0f02,$00e2,$0088,$0102,$0000
	dc.w	$5801,$fffe,$0182,$0f04,$00e2,$0088,$0102,$0000
	dc.w	$5901,$fffe,$0182,$0f06,$00e2,$0088,$0102,$0000
	dc.w	$5a01,$fffe,$0182,$0f08,$00e2,$0088,$0102,$0000
	dc.w	$5b01,$fffe,$0182,$0f0a,$00e2,$0088,$0102,$0000
	dc.w	$5c01,$fffe,$0182,$0f0c,$00e2,$0088,$0102,$0000
	dc.w	$5d01,$fffe,$0182,$0f0e,$00e2,$0088,$0102,$0000
	dc.w	$5e01,$fffe,$0182,$0f0f,$00e2,$0088,$0102,$0000
	dc.w	$5f01,$fffe,$0182,$0f0f,$00e2,$0088,$0102,$0000
	dc.w	$6001,$fffe,$0182,$0f2e,$00e2,$0088,$0102,$0000
	dc.w	$6101,$fffe,$0182,$0f4c,$00e2,$0088,$0102,$0000
	dc.w	$6201,$fffe,$0182,$0f6a,$00e2,$0088,$0102,$0000
	dc.w	$6301,$fffe,$0182,$0f88,$00e2,$0088,$0102,$0000
	dc.w	$6401,$fffe,$0182,$0fa6,$00e2,$0088,$0102,$0000
	dc.w	$6501,$fffe,$0182,$0fc4,$00e2,$0088,$0102,$0000
	dc.w	$6601,$fffe,$0182,$0fe2,$00e2,$0088,$0102,$0000
	dc.w	$6701,$fffe,$0182,$0ff0,$00e2,$0088,$0102,$0000
	dc.w	$6801,$fffe,$0182,$0ff0,$00e2,$0088,$0102,$0000
	dc.w	$6901,$fffe,$0182,$0ef2,$00e2,$0088,$0102,$0000
	dc.w	$6a01,$fffe,$0182,$0cf4,$00e2,$0088,$0102,$0000
	dc.w	$6b01,$fffe,$0182,$0af6,$00e2,$0088,$0102,$0000
	dc.w	$6c01,$fffe,$0182,$08f8,$00e2,$0088,$0102,$0000
	dc.w	$6d01,$fffe,$0182,$06fa,$00e2,$0088,$0102,$0000
	dc.w	$6e01,$fffe,$0182,$04fc,$00e2,$0088,$0102,$0000
	dc.w	$6f01,$fffe,$0182,$02fe,$00e2,$0088,$0102,$0000
	dc.w	$7001,$fffe,$0182,$00ff,$00e2,$0088,$0102,$0000
	dc.w	$7101,$fffe,$0182,$00ff,$00e2,$0088,$0102,$0000
	dc.w	$7201,$fffe,$0182,$00ef,$00e2,$0088,$0102,$0000
	dc.w	$7301,$fffe,$0182,$00cf,$00e2,$0088,$0102,$0000
	dc.w	$7401,$fffe,$0182,$00af,$00e2,$0088,$0102,$0000
	dc.w	$7501,$fffe,$0182,$008f,$00e2,$0088,$0102,$0000
	dc.w	$7601,$fffe,$0182,$006f,$00e2,$0088,$0102,$0000
	dc.w	$7701,$fffe,$0182,$004f,$00e2,$0088,$0102,$0000
	dc.w	$7801,$fffe,$0182,$002f,$00e2,$0088,$0102,$0000
	dc.w	$7901,$fffe,$0182,$000f,$00e2,$0088,$0102,$0000
	dc.w	$7a01,$fffe,$0182,$000e,$00e2,$0088,$0102,$0000
	dc.w	$7b01,$fffe,$0182,$000c,$00e2,$0088,$0102,$0000
	dc.w	$7c01,$fffe,$0182,$000a,$00e2,$0088,$0102,$0000
	dc.w	$7d01,$fffe,$0182,$0008,$00e2,$0088,$0102,$0000
	dc.w	$7e01,$fffe,$0182
xcolf:	dc.w	$0000,$00e2
xbpf:	dc.w	$0088,$0102
xscf:	dc.w	$0000
	dc.w	$7601,$fffe,$0182,$0202,$00e2,$0088,$0102,$0000
	dc.w	$7701,$fffe,$0182,$0404,$00e2,$0088,$0102,$0000
	dc.w	$7801,$fffe,$0182,$0606,$00e2,$0088,$0102,$0000
	dc.w	$7901,$fffe,$0182,$0808,$00e2,$0088,$0102,$0000
	
	dc.w	$0180,$0,$0182,0
	dc.w	$7f01,$fffe
	dc.w	$0100,$1000,$00e0,$0007,$0108,$0002
	dc.w	$0092,$0028,$0094,$00f8,$010a,$0002
	dc.w	$0102
scrpos:	dc.w	$00ff
gb1:	dc.w	$8001,$fffe
	
	dc.w	$0182,$0000,$00e2
bp1:	dc.w	$0fff,$0180,$0000
gb2:	dc.w	$8111,$fffe,$0182,$0111,$00e2,$8fff,$0180,$0101
	dc.w	$8211,$fffe,$0182,$0222,$00e2,$8fff,$0180,$0201
	dc.w	$8311,$fffe,$0182,$0333,$00e2,$8fff,$0180,$0302
	dc.w	$8411,$fffe,$0182,$0444,$00e2,$8fff,$0180,$0402
	dc.w	$8511,$fffe,$0182,$0555,$00e2,$902d,$0180,$0503
	dc.w	$8611,$fffe,$0182,$0666,$00e2,$902d,$0180,$0603
	dc.w	$8711,$fffe,$0182,$0777,$00e2,$902d,$0180,$0704
	dc.w	$8811,$fffe,$0182,$0888,$00e2,$902d,$0180,$0804
	dc.w	$8911,$fffe,$0182,$0999,$00e2,$905b,$0180,$0905
	dc.w	$8a11,$fffe,$0182,$0aaa,$00e2,$905b,$0180,$0a05
	dc.w	$8b11,$fffe,$0182,$0bbb,$00e2,$905b,$0180,$0b06
	dc.w	$8c11,$fffe,$0182,$0ccc,$00e2,$905b,$0180,$0c06
	dc.w	$8d11,$fffe,$0182,$0ddd,$00e2,$9089,$0180,$0d07
	dc.w	$8e11,$fffe,$0182,$0eee,$00e2,$9089,$0180,$0e07
	dc.w	$8f11,$fffe,$0182,$0fff,$00e2,$9089,$0180,$0f08
	dc.w	$9011,$fffe,$0182,$0eee,$00e2,$9089,$0180,$0e07
	dc.w	$9111,$fffe,$0182,$0ddd,$00e2,$9089,$0180,$0d07
	dc.w	$9211,$fffe,$0182,$0ccc,$00e2,$9089,$0180,$0c06
	dc.w	$9311,$fffe,$0182,$0bbb,$00e2,$90b7,$0180,$0b06
	dc.w	$9411,$fffe,$0182,$0aaa,$00e2,$90b7,$0180,$0a05
	dc.w	$9511,$fffe,$0182,$0999,$00e2,$90b7,$0180,$0905
	dc.w	$9611,$fffe,$0182,$0888,$00e2,$90b7,$0180,$0804
	dc.w	$9711,$fffe,$0182,$0777,$00e2,$90b7,$0180,$0704
	dc.w	$9811,$fffe,$0182,$0666,$00e2,$90e5,$0180,$0603
	dc.w	$9911,$fffe,$0182,$0555,$00e2,$90e5,$0180,$0503
	dc.w	$9a11,$fffe,$0182,$0444,$00e2,$90e5,$0180,$0402
	dc.w	$9b11,$fffe,$0182,$0333,$00e2,$90e5,$0180,$0302
	dc.w	$9c11,$fffe,$0182,$0222,$00e2,$9113,$0180,$0201
GBU:	dc.w	$9d11,$fffe,$0182,$0111,$00e2,$9113,$0180,$0101
	dc.w	$9e11,$fffe,$0182,$0000,$00e2,$9113,$0180,$000
bp2:	dc.w	$9113,$fffe,$0182,$0000,$00e2,$9113,$0180,$000
	
	


pal:	dc.w	$ffdf,$fffe,$0021,$fffe

end:	dc.w	$ffff,$fffe
	
spriteset:	MOVE.L		#SPRITE,D0
		MOVE.W		D0,SLO
		SWAP 		D0
		MOVE.W		D0,SHI
		MOVE.L		#NEWCOPPER,(A0)		
		LEA		SPRITE,A1
		LEA		XPOS,A2
		MOVE.L		#$2B,D0
		MOVE.L		#99,D1
SLOOP:		MOVE.B		D0,(A1)+
		ADDQ.W		#1,D0
		MOVE.B		(A2)+,(A1)+
		MOVE.B		D0,(A1)+
		ADDQ.W		#1,D0
		MOVE.B		#0,(A1)+
		MOVE.W		#1,(A1)+
		MOVE.W		#1,(A1)+
		DBRA		D1,SLOOP
		rts


sprites:	bsr		siner
		LEA		SPRITE,A0
		LEA		SPEED,A1
		MOVE.L		#99,D0
ILOOP:		MOVE.B		(A1)+,D1
		ADD.B		D1,1(A0)
		CMPI.B		#99,(A1)
		BNE		FOR
		LEA		SPEED,A1
FOR:		ADDQ.L		#8,A0
		DBRA		D0,ILOOP	
		RTS	
								
ERRL:		RTS

SPEED:		DC.B 1,2,3,99
		EVEN

sinecount:	dc.l	0

siner:		lea	sinetable,a0
		lea	speed,a1
		move.l	sinecount,d0
		add.l	d0,a0
		add.l	#1,d0
		cmp.l	#320,d0
		blt	cont
		move.l	#0,d0
		move.l	d0,sinecount
		bra	siner
cont:		move.l	d0,sinecount				
		move.b	(a0),(a1)
		move.b	320(a0),1(a1)
		move.b	640(a0),2(a1)
		rts

sinetable:	dc.b	0,0,1,0,1,0,1,1,1,1,2,1,2,1,2
		blk.b	130,2
		dc.b	2,1,2,1,2,1,1,1,1,0,1,0,1,0,0
		dc.b	-0,-0,-1,-0,-1,-0,-1,-1,-1,-1,-2,-1,-2,-1,-2
		blk.b	130,-2
		dc.b	-2,-1,-2,-1,-2,-1,-1,-1,-1,-0,-1,-0,-1,-0,-0

		dc.b	0,1,0,1,1,2,1,2,2,3,2,3,3,4,4
		blk.b	130,4
		dc.b	4,4,3,3,2,3,2,2,1,2,1,1,0,1,0
		dc.b	-0,-1,-0,-1,-1,-2,-1,-2,-2,-3,-2,-3,-3,-4,-4
		blk.b	130,-4
		dc.b	-4,-4,-3,-3,-2,-3,-2,-2,-1,-2,-1,-1,-0,-1,-0

		dc.b	0,1,1,2,2,3,3,4,4,5,5,6,6,7,7
		blk.b	130,7
		dc.b	7,7,6,6,5,5,4,4,3,3,2,2,1,1,0
		dc.b	-0,-1,-1,-2,-2,-3,-3,-4,-4,-5,-5,-6,-6,-7,-7
		blk.b	130,-7
		dc.b	-7,-7,-6,-6,-5,-5,-4,-4,-3,-3,-2,-2,-1,-1,-0


		blk.l	5,0


XPOS:		DC.B 65,128,205,195,84,130,176,201,75,99,197,154,109
		DC.B 126,73,192,171,105,104,202,83,61,69,77,159,162
		DC.B 120,111,210,60,97,143,192,171,207,92,83,77,98
		DC.B 101,115,121,141,133,75,149,162,192,117,105,73
		
		DC.B 47,158,99,127,121,137,36,95,107,209,178,210,117
		DC.B 37,61,111,196,156,35,37,91,121,36,66,88,59,113
		DC.B 11,9,23,100,140,39,44,166,188,192,36,49,202,39
		DC.B 94,141,144,143,211,230,99,100	
		DC.B 11,9,23,100,140,39,44,166,188,192,36,49,202,39
		DC.B 94,141,144,143,211,230	
		EVEN
SPRITE: 	BLK.W	8*50,0



;*********************************
;* SoundTracker VI - Playroutine *
;*                               *
;* Improved by Unknown of D.O.C  *
;* for SoundTracker IV and VI... *
;*********************************

mt_speed=$1f4

bsr.s	mt_init
move.w	#$4000,$dff09a
move.l	$00006c,mt_oldirq+2
move.l	#mt_newirq,$00006c
move.w	#$c000,$dff09a

mt_wait:
btst	#6,$bfe001
bne.s	mt_wait

move.w	#$000f,$dff096
move.w	#$4000,$dff09a
move.l	mt_oldirq+2,$00006c
move.w	#$c000,$dff09a
clr.l	d0
rts

mt_init:
move.l	#mt_snd1,mt_sample1
move.l	#mt_snd2,mt_sample2
move.l	#mt_snd3,mt_sample3
move.l	#mt_snd4,mt_sample4
move.l	#mt_snd5,mt_sample5
move.l	#mt_snd6,mt_sample6
move.l	#mt_snd7,mt_sample7
move.l	#mt_snd8,mt_sample8
move.l	#mt_snd9,mt_sample9
move.l	#mt_snda,mt_sample10
move.l	#mt_sndb,mt_sample11
move.l	#mt_sndc,mt_sample12
move.l	#mt_sndd,mt_sample13
move.l	#mt_snde,mt_sample14
move.l	#mt_sndf,mt_sample15
move.l	#mt_sample1,a0
clr.l	d0
mt_clear:
move.l	(a0,d0),a1
clr.l	(a1)
addq	#4,d0
cmp.l	#$3c,d0
bne.s	mt_clear

move.w	#0,$dff0a8
move.w	#0,$dff0b8
move.w	#0,$dff0c8
move.w	#0,$dff0d8
clr.l	mt_partnrplay
clr.l	mt_partnote
clr.l	mt_partpoint

move.b	mt_muzakdata+$1d6,mt_maxpart+1
move.b	mt_muzakdata+$1d7,mt_kn1+1
rts

mt_newirq:
movem.l	d0-d7/a0-a6,-(a7)
bsr.s	mt_music
movem.l	(a7)+,d0-d7/a0-a6
mt_oldirq:
jmp	$000000

mt_music:
addq.l	#1,mt_counter
mt_cool:
cmp.l	#6,mt_counter
bne.s	mt_notsix
clr.l	mt_counter
bra	mt_rout2

mt_notsix:
lea	mt_aud1temp,a6
tst.b	3(a6)
beq.s	mt_arp1
move.l	#$dff0a0,a5		
bsr.s	mt_arprout

mt_arp1:
lea	mt_aud2temp,a6
tst.b	3(a6)
beq.s	mt_arp2
move.l	#$dff0b0,a5
bsr.s	mt_arprout

mt_arp2:
lea	mt_aud3temp,a6
tst.b	3(a6)
beq.s	mt_arp3
move.l	#$dff0c0,a5
bsr.s	mt_arprout

mt_arp3:
lea	mt_aud4temp,a6
tst.b	3(a6)
beq.s	mt_arp4
move.l	#$dff0d0,a5
bra.s	mt_arprout
mt_arp4:
rts

mt_arprout:
tst.w	24(a6)
beq.s	mt_noslide

clr.w	d0
move.b	25(a6),d0
lsr.b	#4,d0
tst.b	d0
beq.s	mt_voldwn2
bsr	mt_pushvol1
bra.s	mt_noslide

mt_voldwn2:
clr.w	d0
move.b	25(a6),d0
bsr	mt_pushvol2

mt_noslide:
move.b	2(a6),d0
and.b	#$0f,d0
tst.b	d0
beq	mt_arpegrt
cmp.b	#3,d0
beq	mt_arpegrt
cmp.b	#4,d0
beq	mt_arpegrt
cmp.b	#5,d0
beq	mt_arpegrt
cmp.b	#1,d0
beq.s	mt_portup
cmp.b	#6,d0
beq.s	mt_portup
cmp.b	#7,d0
beq.s	mt_portup
cmp.b	#8,d0
beq.s	mt_portup
cmp.b	#2,d0
beq.s	mt_portdwn
cmp.b	#9,d0
beq.s	mt_portdwn
cmp.b	#10,d0
beq.s	mt_portdwn
cmp.b	#11,d0
beq.s	mt_portdwn
cmp.b	#13,d0
beq.s	mt_volup
rts

mt_portup:
clr.w	d0
move.b	3(a6),d0
sub.w	d0,22(a6)
cmp.w	#$71,22(a6)
bpl.s	mt_ok1
move.w	#$71,22(a6)
mt_ok1:
move.w	22(a6),6(a5)
rts

mt_portdwn:
clr.w	d0
move.b	3(a6),d0
add.w	d0,22(a6)
cmp.w	#$358,22(a6)
bmi.s	mt_ok2
move.w	#$358,22(a6)
mt_ok2:
move.w	22(a6),6(a5)
rts

mt_volup:
clr.w	d0
move.b	3(a6),d0
lsr.b	#4,d0
tst.b	d0
beq.s	mt_voldwn
mt_pushvol1:
add.w	d0,$12(a6)
cmp.w	#$40,$12(a6)
bmi.s	mt_ok3
move.w	#$40,$12(a6)
mt_ok3:
move.w	$12(a6),8(a5)
rts

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

mt_arpegrt:
cmp.l	#1,mt_counter
beq.s	mt_loop2
cmp.l	#2,mt_counter
beq.s	mt_loop3
cmp.l	#3,mt_counter
beq.s	mt_loop4
cmp.l	#4,mt_counter
beq.s	mt_loop2
cmp.l	#5,mt_counter
beq.s	mt_loop3
rts

mt_loop2:
clr.l	d0
move.b	3(a6),d0
lsr.b	#4,d0
bra.s	mt_cont

mt_loop3:
clr.l	d0
move.b	3(a6),d0
and.b	#$0f,d0
bra.s	mt_cont

mt_loop4:
move.w	16(a6),d2
bra.s	mt_endpart

mt_cont:
lsl.w	#1,d0
clr.l	d1
move.w	16(a6),d1
lea	mt_arpeggio,a0
mt_loop5:
move.w	(a0,d0),d2
cmp.w	(a0),d1
beq.s	mt_endpart
addq.l	#2,a0
bra.s	mt_loop5

mt_endpart:
move.w	d2,6(a5)
rts

mt_rout2:
lea	mt_muzakdata,a0
move.l	a0,a3
add.l	#$0c,a3
move.l	a0,a2
add.l	#$1d8,a2
add.l	#$258,a0
move.l	mt_partnrplay,d0
clr.l	d1
move.b	(a2,d0),d1
mulu	#$0400,d1
add.l	mt_partnote,d1
move.l	d1,mt_partpoint
clr.w	mt_dmacon

move.l	#$dff0a0,a5
lea	mt_aud1temp,a6
bsr	mt_playit

move.l	#$dff0b0,a5
lea	mt_aud2temp,a6
bsr	mt_playit

move.l	#$dff0c0,a5
lea	mt_aud3temp,a6
bsr	mt_playit

move.l	#$dff0d0,a5
lea	mt_aud4temp,a6
bsr	mt_playit

move.l	#mt_speed,d0
mt_rls:
dbf	d0,mt_rls

move.l	#$8000,d0
add.w	mt_dmacon,d0
move.w	d0,$dff096

move.l	#mt_aud4temp,a6
cmp.w	#1,14(a6)
bne.s	mt_voice3
move.l	10(a6),$dff0d0
move.w	#1,$dff0d4
mt_voice3:
move.l	#mt_aud3temp,a6
cmp.w	#1,14(a6)
bne.s	mt_voice2
move.l	10(a6),$dff0c0
move.w	#1,$dff0c4
mt_voice2:
move.l	#mt_aud2temp,a6
cmp.w	#1,14(a6)
bne.s	mt_voice1
move.l	10(a6),$dff0b0
move.w	#1,$dff0b4
mt_voice1:
move.l	#mt_aud1temp,a6
cmp.w	#1,14(a6)
bne.s	mt_voice0
move.l	10(a6),$dff0a0
move.w	#1,$dff0a4

mt_voice0:
move.l	mt_partnote,d0
add.l	#$10,d0
move.l	d0,mt_partnote
cmp.l	#$400,d0
bne.s	mt_stop
clr.l	mt_partnote
addq.l	#1,mt_partnrplay
clr.l	d0
move.w	mt_maxpart,d0
move.l	mt_partnrplay,d1
cmp.l	d0,d1
bne.s	mt_stop
clr.l	mt_partnrplay
mt_stop:
rts

mt_playit:
move.l	(a0,d1),(a6)
addq.l	#4,d1
clr.l	d2
move.b	2(a6),d2
and.b	#$f0,d2
lsr.b	#4,d2
tst.b	d2
beq.s	mt_nosamplechange

clr.l	d3
lea	mt_samples,a1
move.l	d2,d4
mulu	#4,d2
mulu	#$1e,d4
move.l	(a1,d2),4(a6)
move.w	(a3,d4),8(a6)
move.w	2(a3,d4),18(a6)
move.w	4(a3,d4),d3
tst.w	d3
beq.s	mt_displace
move.l	4(a6),d2
add.l	d3,d2
move.l	d2,4(a6)
move.l	d2,10(a6)
move.w	6(a3,d4),8(a6)
move.w	6(a3,d4),14(a6)
move.w	18(a6),8(a5)
bra.s	mt_nosamplechange
mt_displace:
move.l	4(a6),d2
add.l	d3,d2
move.l	d2,10(a6)
move.w	6(a3,d4),14(a6)
move.w	18(a6),8(a5)
mt_nosamplechange:
tst.w	(a6)
beq.s	mt_retrout
move.w	(a6),16(a6)
move.w	20(a6),$dff096
move.l	4(a6),(a5)
move.w	8(a6),4(a5)
move.w	(a6),6(a5)
move.w	20(a6),d0
or.w	d0,mt_dmacon

mt_retrout:
move.w	20(a6),d0
lsl.w	#4,d0
add.w	20(a6),d0
move.w	d0,$dff09e

tst.w	(a6)
beq.s	mt_nonewper
move.w	(a6),22(a6)

mt_nonewper:
move.b	2(a6),d0
and.b	#$0f,d0
cmp.b	#14,d0
bne.s	mt_noset
move.w	2(a6),24(a6)
rts

mt_noset:
tst.b	3(a6)
bne.s	mt_noclr
clr.w	24(a6)
mt_noclr:
cmp.b	#3,d0
beq.s	mt_modvol
cmp.b	#6,d0
beq.s	mt_modvol
cmp.b	#9,d0
beq.s	mt_modvol
cmp.b	#4,d0
beq.s	mt_modper
cmp.b	#7,d0
beq.s	mt_modper
cmp.b	#10,d0
beq.s	mt_modper
cmp.b	#5,d0
beq.s	mt_modvolper
cmp.b	#8,d0
beq.s	mt_modvolper
cmp.b	#11,d0
beq.s	mt_modvolper
cmp.b	#15,d0
beq.s	mt_chgspeed
cmp.b	#12,d0
bne.s	mt_nochnge
move.b	3(a6),8(a5)
mt_nochnge:
rts

mt_chgspeed:
move.b	3(a6),d0
and.b	#$0f,d0
beq.s	mt_nochnge
clr.l	mt_counter
move.b	d0,mt_cool+5
rts

mt_modvol:
move.w	20(a6),d0
bra.s	mt_push

mt_modper:
move.w	20(a6),d0
lsl.w	#4,d0
bra.s	mt_push

mt_modvolper:
move.w	20(a6),d0
lsl.w	#4,d0
add.w	20(a6),d0

mt_push:
add.w	#$8000,d0
move.w	d0,$dff09e
rts

mt_aud1temp:
dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
dc.w $0000,$0000,$0001,$0000,$0000
mt_aud2temp:
dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
dc.w $0000,$0000,$0002,$0000,$0000
mt_aud3temp:
dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
dc.w $0000,$0000,$0004,$0000,$0000
mt_aud4temp:
dc.w $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
dc.w $0000,$0000,$0008,$0000,$0000
mt_partnote:
dc.l 0
mt_partnrplay:
dc.l 0
mt_counter:
dc.l 0
mt_partpoint:
dc.l 0
mt_samples:
dc.w $0000,$0000
mt_sample1:
dc.l 0
mt_sample2:
dc.l 0
mt_sample3:
dc.l 0
mt_sample4:
dc.l 0
mt_sample5:
dc.l 0
mt_sample6:
dc.l 0
mt_sample7:
dc.l 0
mt_sample8:
dc.l 0
mt_sample9:
dc.l 0
mt_sample10:
dc.l 0
mt_sample11:
dc.l 0
mt_sample12:
dc.l 0
mt_sample13:
dc.l 0
mt_sample14:
dc.l 0
mt_sample15:
dc.l 0
mt_maxpart:
dc.w $0000
mt_kn1:
dc.w $0000
mt_dmacon:
dc.w $0000

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

mt_snd1:	blk.b	3000,0
mt_snd2:	blk.b	3400,0
mt_snd3:	blk.b	3000,0
mt_snd4:	blk.b	4800,0
mt_snd5:	blk.b	8900,0
mt_snd6:	blk.b	9900,0
mt_snd7:	blk.b	9400,0
mt_snd8:	blk.b	2000,0
mt_snd9:	blk.b	5000,0
mt_snda:	blk.b	2000,0
mt_sndb:	blk.b	9200,0
mt_sndc:	blk.b	6900,0
mt_sndd:	blk.b	9900,0
mt_snde:	blk.b	5300,0
mt_sndf:	blk.b	1200,0

mt_muzakdata:	blk.b	20000,0
