	opt	c-,d+
	incdir	"df0:include/"
	include graphics/gfx.i
	include	graphics/rastport.i
	include graphics/graphics_lib.i
	include exec/memory.i
	include	exec/exec_lib.i
	include	hardware/custom.i

custom	equ	$dff000

memory	equ	MEMF_CHIP+MEMF_CLEAR
	
	lea	GFXLIB,a1
	MOVEQ	#0,D0
	CALLEXEC OPENLIBRARY
	TST	D0
	BEQ	ERROR
	MOVE.L	D0,_GFXBASE
	
	MOVE.L	#MYPICCY,MEMORY_POINTER
	LEA MYBITMAP,A0
	MOVE.L	#$05,D0
	MOVE.L	#368,D1
	MOVE.L	#256,D2
	CALLGRAF INITBITMAP
	LEA	MYRASTPORT,A1
	CALLGRAF INITRASTPORT
	LEA	MYRASTPORT,A1
	MOVE.L	#MYBITMAP,RP_BITMAP(A1)
	MOVE.L	MEMORY_POINTER,D0
	MOVE.L	D0,D1
	ADD.L	#11776,D1
	MOVE.L	D1,D2
	ADD.L	#11776,D2
	MOVE.L	D2,D3
	add.l	#11776,D3
	move.l	d3,d4
	add.l	#11776,d4


	

	LEA 	MYBITMAP,A0
	MOVE.L	D0,BM_PLANES(a0)
	MOVE.L	D1,BM_PLANES+4(a0)
	MOVE.L 	D2,BM_PLANES+8(a0)
	MOVE.L	D3,BM_PLANES+12(A0)
	move.l	d4,BM_PLANES+16(a0)
	MOVE.W	D0,PL0L
	MOVE.W	D1,PL1L
	MOVE.W	D2,PL2L
	MOVE.W	D3,PL3L
	move.w	d4,pl4l
	SWAP	D0
	SWAP	D1
	SWAP	D2
	SWAP	D3
	swap	d4
	MOVE.W	D0,PL0H
	MOVE.W	D1,PL1H
	MOVE.W	D2,PL2H
	MOVE.W	D3,PL3H
	move.w	d4,pl4h
	

	bsr	mt_init
	move.l #mytext,read
	move.l #wavedata,wavepos


	MOVE.L	_GFXBASE,A6
	ADD.L	#$32,A6
	MOVE.W	#$80,DMACON
	MOVE.L	(A6),OLDCOPPER
	MOVE.L	#NEWCOPPER,(A6)
	MOVE.W	#$8080,DMACON

	callexec forbid

	jsr	copsetup
	
	
	
	
	
	
	move.w 	#$8010,$dff09a
	move.l	$6c,old
	move.l  #new,$6c
	
	
	
	


WAIT	ANDI.B	#$40,$BFE001
	BNE	WAIT
	move.l	old,$6c

	callexec permit

	MOVE.L	_GFXBASE,A6
	ADD.L	#$32,A6
	MOVE.W	#$80,DMACON
	MOVE.L	OLDCOPPER,(A6)
	MOVE.W	#$8080,DMACON
	move.w	#$8020,$dff096
ERROR	clr.l	d0
	move.w	#$f,$dff096
	move.w	#$0,$dff0a8
	move.w	#$0,$dff0b8
	move.w	#$0,$dff0c8
	move.w	#$0,$dff0d8
	RTS

 


new:	movem.l d0-d7/a0-a6,-(sp)
	and #$10,$dff01e        
	beq out
	move.w	#$10,$dff09c

	
	
	bsr	colcop1
	bsr	mt_music
	bsr 	textit
	

	
	BSR 	WAVEIT
	
	
	
	

out movem.l (sp)+,d0-d7/a0-a6
	dc.w $4ef9
old dc.l 0


copsetup	move.l #mypiccy,d1
		move.l #cblock2,a1
		move.l #15,d0
		add.l  #14,a1
		add.l  #8556,d1
		move.l	d1,d2
		add.l 	#952,d2
russloop	swap	d1
		move.w	d1,(a1)
		add.l 	#4,a1
		swap 	d1
		move.w	d1,(a1)
		add.l   #20,a1
		swap	d2
		move.w	d2,(a1)
		add.l	#4,a1
		swap 	d2
		move.w	d2,(a1)
		add.l	#20,a1
		add.l	#46,d1
		subi.w	#1,d0
		cmp.w 	#0,d0
		bne	russloop
		rts
	
waveit		move.l	#cblock2,a0
		add.l	#23,a0
		moveq	#23,d0
		move.l	wavepos,a1
waveloop	move.b	24(a0),(a0)
		add.l	#24,a0
		subi.w	#1,d0
		cmp.w	#0,d0
		bne	waveloop
		move.b	(a1),(a0)
		add.l #1,WAvepos
		
		move.l wavepos,a5
		cmp.b	#$fe,(a5)
		
		
		
		bne waveok
		move.l	#wavedata,wavepos
waveok		rts



colcop1:	move.l	#90,d0
		lea	cblock1,a0
		add.l 	#6,a0
		move.w  4(a0),tempzap
		
scrollc		move.w 	24(a0),(a0)
		move.w  28(a0),4(a0)
		add.l	#24,a0
		
		subi.l	#1,d0
		cmp #0,d0
		bne scrollc
cjin1		clr.l	d0
		move.l	coppos,a2
		
		move.w	(a2),d0
		add.l	#2,coppos
		cmp.w #$ffff,d0
		bne cok
		move.l	#copdata,coppos
		bra cjin1
cok		
		move.w d0,(a0)
		move.w tempzap,4(a0)
		rts

tempzap		dc.l	0
textit	lea	myrastport,a1
	MOVEQ	#1,d0
	callgraf setapen


	
	lea myrastport,a1
	move.l #0,d1
	move.l #2,d0
	move.l #0,d2
	move.l #186,d3
	move.l #368,d4
	move.l #199,d5
	callgraf scrollraster

;	store bit of screen to be zapped
;	lets say 16 rows starting at 185
;	= mypiccy+185*46
	move.l #mypiccy,a0
	add.l #185*46,a0
	moveq	#16,d0
	move.l	#buffy,a1
inbuff	move.w	(a0),(a1)+
	add.l	#46,a0
	subi.w	#1,d0
	cmp.w	#0,d0
	bne	inbuff

	move.b count,d0
	addi.b #1,d0
	move.b d0,count
	cmpi.b #4,d0
	bne EEE
	move.b #0,count
EEE	lea myrastport,a1
 	move.l #366,d0
	clr.l d3
	move.b count,d3
	sub.l d3,d0
	sub.l d3,d0
  	move.l #196,d1
	callgraf move

	move.l read,a0
	lea myrastport,a1
	move.l #1,d0
	callgraf text

	move.l #mypiccy,a0
	add.l #185*46,a0
	moveq	#16,d0
	move.l	#buffy,a1
oubuff	move.w	(a1)+,(a0)
	add.l	#46,a0
	subi.w	#1,d0
	cmp.w	#0,d0
	bne	oubuff

	cmp.b	#0,count
	bne	zzz
	move.l read,d0
	addi.l #1,d0
	move.l d0,read
	moveq #0,d4
	move.l read,a5
	
	
	cmp.b	#255,(a5)
	bne zzz
	move.l #mytext,read
on1	
zzz	rts
count	dc.b 0
read    dc.l 0
buffy	ds.w 30
falagz	dc.b 0
coppos	dc.l	copdata
copdata
 dc.w $000,$010,$020,$030,$040,$050,$060,$070,$080,$090,$0a0,$0b0,$0c0,$0d0,$0e0
 dc.w $0f0,$1f0,$2f0,$3f0,$4f0,$5f0,$6f0,$7f0,$8f0,$9f0,$af0,$bf0,$cf0,$df0,$ef0
 dc.w $ff0,$ee0,$dd0,$cc0,$bb0,$aa0,$990,$880,$770,$660,$550,$440,$330,$220,$110
 dc.w $000,$110,$220,$330,$440,$550,$660,$770,$880,$990,$aa0,$bb0,$cc0,$dd0,$ee0
 dc.w $ff0,$fe0,$fd0,$fc0,$fb0,$fa0,$f90,$f80,$f70,$f60,$f50,$f40,$f30,$f20,$f10
 dc.w $f00,$e00,$d00,$c00,$b00,$a00,$900,$800,$700,$600,$500,$400,$300,$200,$100
 dc.w $000,$100,$200,$300,$400,$500,$600,$700,$800,$900,$a00,$b00,$c00,$d00,$e00
 dc.w $f00,$f01,$f02,$f03,$f04,$f05,$f06,$f07,$f08,$f09,$f0a,$f0b,$f0c,$f0d,$f0e
 dc.w $f0f,$e0e,$d0d,$c0c,$b0b,$a0a,$909,$808,$707,$606,$505,$404,$303,$202,$101
 dc.w 0,$101,$202,$303,$404,$505,$606,$707,$808,$909,$a0a,$b0b,$c0c,$d0d,$e0e
 dc.w $f0f,$e0f,$d0f,$c0f,$b0f,$a0f,$90f,$80f,$70f,$60f,$50f,$40f,$30f,$20f,$10f
 dc.w $f,$e,$d,$c,$b,$a,$9,$8,$7,$6,$5,$4,$3,$2,$1,$0
 dc.w 0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15
 dc.w $00f,$01f,$02f,$03f,$04f,$05f,$06f,$07f,$08f,$09f,$0af,$0bf,$0cf,$0df,$0ef
 dc.w $ff,$ee,$dd,$cc,$bb,$aa,$99,$88,$77,$66,$55,$44,$33,$22,$11
 dc.w 0,$11,$22,$33,$44,$55,$66,$77,$88,$99,$aa,$bb,$cc,$dd,$ee
 dc.w $0ff,$0fe,$0fd,$0fc,$0fb,$0fa,$0f9,$0f8,$0f7,$0f6,$0f5,$0f4,$0f3,$0f2,$0f1
 dc.w $f0,$e0,$d0,$c0,$b0,$a0,$90,$80,$70,$60,$50,$40,$30,$20,$10
	dc.w     $ffff

OLDCOPPER	DC.L	0
NEWCOPPER	DC.W	$0100,$5200,$0102,$0000,$0104,$000A
		DC.W	$0108,$0000,$010A,$0000
		DC.W	$0092,$0028,$0094,$00e0
		DC.W	$008E,$2c69,$0090,$2cd9
		dc.w	$0096,$0020
		DC.W	$00E0
PL0H		DC.W	$0000,$00E2
PL0L		DC.W	$0000,$00E4
PL1H		DC.W	$0000,$00E6
PL1L		DC.W	$0000,$00E8
PL2H		DC.W	$0000,$00EA
PL2L		DC.W	$0000,$00EC
PL3H		DC.W	$0000,$00EE
PL3L		DC.W	$0000,$00F0
PL4H		DC.W	$0000,$00F2
PL4L		DC.W	$0000
		DC.W	$009c,$8010
		DC.W	$0180
topcol		dc.w	$0000,$0182,$0eca
		DC.W	$0184,$0fff,$0186,$0eee
		DC.W	$0188,$0ddd,$018A,$0bbb
		DC.W	$018C,$0aaa,$018E,$0999
		DC.W	$0190,$0888,$0192,$0777
		DC.W	$0194,$0666,$0196,$0555
		DC.W	$0198,$0333,$019A,$0222
		DC.W	$019C,$0111,$019E,$0000
cblock1:
 dc.w 11273,$fffe,$180,0,$10a,0
 dc.w 11529,$fffe,$180,0,$10a,0
 dc.w 11785,$fffe,$180,0,$10a,0
 dc.w 12041,$fffe,$180,0,$10a,0
 dc.w 12297,$fffe,$180,0,$10a,0
 dc.w 12553,$fffe,$180,0,$10a,0
 dc.w 12809,$fffe,$180,0,$10a,0
 dc.w 13065,$fffe,$180,0,$10a,0
 dc.w 13321,$fffe,$180,0,$10a,0
 dc.w 13577,$fffe,$180,0,$10a,0
 dc.w 13833,$fffe,$180,0,$10a,0
 dc.w 14089,$fffe,$180,0,$10a,0
 dc.w 14345,$fffe,$180,0,$10a,0
 dc.w 14601,$fffe,$180,0,$10a,0
 dc.w 14857,$fffe,$180,0,$10a,0
 dc.w 15113,$fffe,$180,0,$10a,0
 dc.w 15369,$fffe,$180,0,$10a,0
 dc.w 15625,$fffe,$0180,0000,$010a,0000
 dc.w 15881,$fffe,$180,0,$10a,0
 dc.w 16137,$fffe,$180,0,$10a,0
 dc.w 16393,$fffe,$180,0,$10a,0
 dc.w 16649,$fffe,$180,0,$10a,0
 dc.w 16905,$fffe,$180,0,$10a,0
 dc.w 17161,$fffe,$180,0,$10a,0
 dc.w 17417,$fffe,$180,0,$10a,0
 dc.w 17673,$fffe,$180,0,$10a,0
 dc.w 17929,$fffe,$180,0,$10a,0
 dc.w 18185,$fffe,$180,0,$10a,0
 dc.w 18441,$fffe,$180,0,$10a,0
 dc.w 18697,$fffe,$180,0,$10a,0
 dc.w 18953,$fffe,$180,0,$10a,0
 dc.w 19209,$fffe,$180,0,$10a,0
 dc.w 19465,$fffe,$180,0,$10a,0
 dc.w 19721,$fffe,$180,0,$10a,0
 dc.w 19977,$fffe,$180,0,$10a,0
 dc.w 20233,$fffe,$180,0,$10a,0
 dc.w 20489,$fffe,$180,0,$10a,0
 dc.w 20745,$fffe,$180,0,$10a,0
 dc.w 21001,$fffe,$180,0,$10a,0
 dc.w 21257,$fffe,$180,0,$10a,0
 dc.w 21513,$fffe,$180,0,$10a,0
 dc.w 21769,$fffe,$180,0,$10a,0
 dc.w 22025,$fffe,$180,0,$10a,0
 dc.w 22281,$fffe,$180,0,$10a,0
 dc.w 22537,$fffe,$180,0,$10a,0
 dc.w 22793,$fffe,$180,0,$10a,0
 dc.w 23049,$fffe,$180,0,$10a,0
 dc.w 23305,$fffe,$180,0,$10a,0
 dc.w 23561,$fffe,$180,0,$10a,0
 dc.w 23817,$fffe,$180,0,$10a,0
 dc.w 24073,$fffe,$180,0,$10a,0
 dc.w 24329,$fffe,$180,0,$10a,0
 dc.w 24585,$fffe,$180,0,$10a,0
 dc.w 24841,$fffe,$180,0,$10a,0
 dc.w 25097,$fffe,$180,0,$10a,0
 dc.w 25353,$fffe,$180,0,$10a,0
 dc.w 25609,$fffe,$180,0,$10a,0
 dc.w 25865,$fffe,$180,0,$10a,0
 dc.w 26121,$fffe,$180,0,$10a,0
 dc.w 26377,$fffe,$180,0,$10a,0
 dc.w 26633,$fffe,$180,0,$10a,0
 dc.w 26889,$fffe,$180,0,$10a,0
 dc.w 27145,$fffe,$180,0,$10a,0
 dc.w 27401,$fffe,$180,0,$10a,0
 dc.w 27657,$fffe,$180,0,$10a,0
 dc.w 27913,$fffe,$180,0,$10a,0
 dc.w 28169,$fffe,$180,0,$10a,0
 dc.w 28425,$fffe,$180,0,$10a,0
 dc.w 28681,$fffe,$180,0,$10a,0
 dc.w 28937,$fffe,$180,0,$10a,0
 dc.w 29193,$fffe,$180,0,$10a,0
 dc.w 29449,$fffe,$180,0,$10a,0
 dc.w 29705,$fffe,$180,0,$10a,0
 dc.w 29961,$fffe,$180,0,$10a,0
 dc.w 30217,$fffe,$180,0,$10a,0
 dc.w 30473,$fffe,$180,0,$10a,0
 dc.w 30729,$fffe,$180,0,$10a,0
 dc.w 30985,$fffe,$180,0,$10a,0
 dc.w 31241,$fffe,$180,0,$10a,0
 dc.w 31497,$fffe,$180,0,$10a,46
 dc.w 31753,$fffe,$180,0,$10a,0
 dc.w 32009,$fffe,$180,0,$10a,0
 dc.w 32265,$fffe,$180,0,$10a,0
 dc.w 32521,$fffe,$180,0,$10a,46
 dc.w 32777,$fffe,$180,0,$10a,0
 dc.w 33033,$fffe,$180,0,$10a,0
 dc.w 33289,$fffe,$180,0,$10a,0
 dc.w 33545,$fffe,$180,0,$10a,0
 dc.w 33801,$fffe,$180,0,$10a,0
 dc.w 34057,$fffe,$180,0,$10a,46
 dc.w 34313,$fffe,$180,0,$10a,0
 dc.w 34569,$fffe,$180,0,$10a,0
 dc.w 34825,$fffe,$180,0,$10a,0
 dc.w 35081,$fffe,$180,0,$10a,46
 dc.w 35337,$fffe,$180,0,$10a,46
 dc.w 35593,$fffe,$180,0,$10a,46
 dc.w 35849,$fffe,$180,0,$10a,0
 dc.w 36105,$fffe,$180,0,$10a,0
 dc.w 36361,$fffe,$180,0,$10a,0
 dc.w 36617,$fffe,$180,0,$10a,0
 dc.w 36873,$fffe,$180,0,$10a,0
 dc.w 37129,$fffe,$180,0,$10a,0
 dc.w 37385,$fffe,$180,0,$10a,0
 dc.w 37641,$fffe,$180,0,$10a,0
 dc.w 37897,$fffe,$180,0,$10a,0
 dc.w 38153,$fffe,$180,0,$10a,0
 dc.w 38409,$fffe,$180,0,$10a,0
 dc.w 38665,$fffe,$180,0,$10a,0
 dc.w 38921,$fffe,$180,0,$10a,0
 dc.w 39177,$fffe,$180,0,$10a,0
 dc.w 39433,$fffe,$180,0,$10a,0
 dc.w 39689,$fffe,$180,0,$10a,0
 dc.w 39945,$fffe,$180,0,$10a,0
 dc.w 40201,$fffe,$180,0,$10a,0
 dc.w 40457,$fffe,$180,0,$10a,0
 dc.w 40713,$fffe,$180,0,$10a,0
 dc.w 40969,$fffe,$180,0,$10a,0
 dc.w 41225,$fffe,$180,0,$10a,0
 dc.w 41481,$fffe,$180,0,$10a,0
 dc.w 41737,$fffe,$180,0,$10a,0
 dc.w 41993,$fffe,$180,0,$10a,0
 dc.w 42249,$fffe,$180,0,$10a,0
 dc.w 42505,$fffe,$180,0,$10a,0
 dc.w 42761,$fffe,$180,0,$10a,0
 dc.w 43017,$fffe,$180,0,$10a,0
 dc.w 43273,$fffe,$180,0,$10a,0
 dc.w 43529,$fffe,$180,0,$10a,0
 dc.w 43785,$fffe,$180,0,$10a,0
 dc.w 44041,$fffe,$180,0,$10a,0
 dc.w 44297,$fffe,$180,0,$10a,0
 dc.w 44553,$fffe,$180,0,$10a,0
 dc.w 44809,$fffe,$180,0,$10a,0
 dc.w 45065,$fffe,$180,0,$10a,0
 dc.w 45321,$fffe,$180,0,$10a,0
 dc.w 45577,$fffe,$180,0,$10a,0
 dc.w 45833,$fffe,$180,0,$10a,0
 dc.w 46089,$fffe,$180,0,$10a,0
 dc.w 46345,$fffe,$180,0,$10a,0
 dc.w 46601,$fffe,$180,0,$10a,0
 dc.w 46857,$fffe,$180,0,$10a,0
 dc.w 47113,$fffe,$180,0,$10a,0
 dc.w 47369,$fffe,$180,0,$10a,0
 dc.w 47625,$fffe,$180,0,$10a,0
 dc.w 47881,$fffe,$180,0,$10a,0
 dc.w 48137,$fffe,$180,0,$10a,0
 dc.w 48393,$fffe,$180,0,$10a,0
 dc.w 48649,$fffe,$180,0,$10a,0
 dc.w 48905,$fffe,$180,0,$10a,0
 dc.w 49161,$fffe,$180,0,$10a,46
 dc.w 49417,$fffe,$180,0,$10a,46
 dc.w 49673,$fffe,$180,0,$10a,46
 dc.w 49929,$fffe,$180,0,$10a,46
 dc.w 50185,$fffe,$180,0,$10a,46
 dc.w 50441,$fffe,$180,0,$10a,46
 dc.w 50697,$fffe,$180,0,$10a,46
 dc.w 50953,$fffe,$180,0,$10a,46
 dc.w 51209,$fffe,$180,0,$10a,46
 dc.w 51465,$fffe,$180,0,$10a,46
 dc.w 51721,$fffe,$180,0,$10a,46
 dc.w 51977,$fffe,$180,0,$10a,46
 dc.w 52233,$fffe,$180,0,$10a,46
 dc.w 52489,$fffe,$180,0,$10a,46
 dc.w 52745,$fffe,$180,0,$10a,46
 dc.w 53001,$fffe,$180,0,$10a,46
 dc.w 53257,$fffe,$180,0,$10a,46
 dc.w 53513,$fffe,$180,0,$10a,46
 dc.w 53769,$fffe,$180,0,$10a,46
 dc.w 54025,$fffe,$180,0,$10a,46
 dc.w 54281,$fffe,$180,0,$10a,46
 dc.w 54537,$fffe,$180,0,$10a,46
 dc.w 54793,$fffe,$180,0,$10a,46
 dc.w 55049,$fffe,$180,0,$10a,46
 dc.w 55305,$fffe,$180,0,$10a,46
 dc.w 55561,$fffe,$180,0,$10a,46
 dc.w 55817,$fffe,$180,0,$10a,46
 dc.w 56073,$fffe,$180,0,$10a,46
 dc.w 56329,$fffe,$180,0,$10a,46
 dc.w 56585,$fffe,$180,0,$10a,46
 dc.w 56841,$fffe,$180,0,$10a,46
 dc.w 57097,$fffe,$180,0,$10a,46
 dc.w 57353,$fffe,$180,0,$10a,46,$182,$200,$10a,46
cblock2:
 dc.w $e109,$fffe,$180,$000,$102,$ff,$e0,0,$e2,0,386,$f00
 dc.w $e209,$fffe,$180,$111,$102,$ff,$e0,0,$e2,0,386,$e00
 dc.w $e309,$fffe,$180,$222,$102,$ee,$e0,0,$e2,0,386,$d00
 dc.w $e409,$fffe,$180,$333,$102,$ee,$e0,0,$e2,0,386,$c01
 dc.w $e509,$fffe,$180,$444,$102,$dd,$e0,0,$e2,0,386,$b02
 dc.w $e609,$fffe,$180,$555,$102,$dd,224,0,226,0,386,$a03
 dc.w $e709,$fffe,$180,$666,$102,$cc,224,0,226,0,386,$904
 dc.w $e809,$fffe,$180,$777,$102,$cc,224,0,226,0,386,$805
 dc.w $e909,$fffe,$180,$888,$102,$bb,224,0,226,0,386,$706
 dc.w $ea09,$fffe,$180,$999,$102,$bb,224,0,226,0,386,$607
 dc.w $eb09,$fffe,$180,$aaa,$102,$aa,224,0,226,0,386,$508
 dc.w $ec09,$fffe,$180,$bbb,$102,$aa,224,0,226,0,386,$409
 dc.w $ed09,$fffe,$180,$ccc,$102,$99,224,0,226,0,386,$30a
 dc.w $ee09,$fffe,$180,$ddd,$102,$99,224,0,226,0,386,$20b
 dc.w $ef09,$fffe,$180,$eee,$102,$88,224,0,226,0,386,$10c
 dc.w $f009,$fffe,$180,$fff,$102,$88,224,0,226,0,386,$00d
 dc.w $f109,$fffe,$180,$eee,$102,$77,224,0,226,0,386,$10e
 dc.w $f209,$fffe,$180,$ddd,$102,$77,224,0,226,0,386,$20f
 dc.w $f309,$fffe,$180,$ccc,$102,$66,224,0,226,0,386,$30e
 dc.w $f409,$fffe,$180,$bbb,$102,$66,224,0,226,0,386,$40d
 dc.w $f509,$fffe,$180,$aaa,$102,$55,224,0,226,0,386,$50c
 dc.w $f609,$fffe,$180,$999,$102,$55,224,0,226,0,386,$60b
 dc.w $f709,$fffe,$180,$888,$102,$44,224,0,226,0,386,$70a
 dc.w $f809,$fffe,$180,$777,$102,$44,224,0,226,0,386,$809
 dc.w $f909,$fffe,$180,$666,$102,$33,224,0,226,0,386,$908
 dc.w $fa09,$fffe,$180,$555,$102,$33,224,0,226,0,386,$a07
 dc.w $fb09,$fffe,$180,$444,$102,$22,224,0,226,0,386,$b06
 dc.w $fc09,$fffe,$180,$333,$102,$22,224,0,226,0,386,$c05
 dc.w $fd09,$fffe,$180,$222,$102,$11,224,0,226,0,386,$d04
 dc.w $fe09,$fffe,$180,$111,$102,$11,224,0,226,0,386,$e03
 dc.w $ff09,$fffe,$180
botcol dc.w 0

 
 
 
 
		DC.W	$FFFF,$FFFE
	ds.w	20

wavedata
 dc.b 0,0,0,0,1,1,1,1,2,2,2,3,3,3,4,4,5,5,6,7
 dc.b 8,9,$a,$a,$b,$b,$c,$c,$c,$d,$d,$d,$e,$e,$e,$e,$f,$f
 dc.b $f,$f
 dc.b $e,$e,$e,$e,$d,$d,$d,$c,$c,$c,$b,$b,$a,$a,9,8,7,6
 dc.b 5,5,4,4,3,3,3,2,2,2,1,1,1
 dc.b 1
 dc.b $fe
wavepos	dc.l	wavedata
gfxlib	dc.b	"graphics.library",0
	EVEN
_gfxbase	dc.l	0
MEMORY_POINTER	dc.l    0
MYRASTPORT	ds.b	RP_Sizeof
MYBITMAP	ds.b	BM_Sizeof
colour	dc.w	0
flagz	dc.b	0




mytext dc.b	"Hello  Leyla!!! Hi it's Comrade J here. We're listening to some"
 dc.b 	" really COOOOOOOL muzaxs at da momento. (well pretty old"
 dc.b    "stuff really, such as HISTORY by MAI TAI and AXEL F by old HAROLD F. "
 dc.b 	"Yep, it's really COOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOL (Totaly frozen)."
 dc.b 	"All about 2000 million years old, the tapes are fossilised! "
 dc.b 	"TIW is sitting next to me at the moment. He is eating a pizza and"
	dc.b " watchi...."
 dc.b	"sorry boring scrolltexts strike again! Yeah, wat's next. it's a"
 dc.b " record called "
 dc.b  	"OBSESSION by someone we can't remember (lamers no doubt). Let's"
 dc.b " fast forward this one, TIW"
 dc.b  	" Yeah, now we have: Crazy for U by Mad Donna. It's shit so we"
 dc.b " swap the tapes. OK It's TIW"
 dc.b	" here. Now I want to listen to Public Enemy,but Comrade J"
 dc.b " doesn't want me to. Oh well.       "

 dc.b	255

 dc.l	0

;***********************************
;***********************************
;**                               **
;** SoundTracker V4.0 Playroutine **
;**                               **
;**   Coder 1 : Karsten Obarski   **
;**                               **
;**   Coder 2 : The Exterminator  **
;**                               **
;**   Coder 3 : Il Scuro          **
;**                               **
;**   Coder 4 : AFL 1970          **
;**                               **
;**   Translator (to DEVPAC)      **
;**        Comrade J  of          **
;**       Share and Enjoy         **
;***********************************
;***********************************



mt_speed	equ	$1f4



 
mt_init:
 move.l		#s1,mt_sample1
 move.l		#s2,mt_sample2
 move.l		#s3,mt_sample3
 move.l		#s4,mt_sample4
 move.l		#s5,mt_sample5
 move.l		#s6,mt_sample6
 move.l		#s7,mt_sample7
 move.l		#s8,mt_sample8
 move.l		#s9,mt_sample9
 move.l		#sa,mt_sample10
 move.l		#sb,mt_sample11
 move.l		#sc,mt_sample12
 move.l		#sd,mt_sample13
 move.l		#se,mt_sample14
 move.l		#sf,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
 eor.w		#$c000,mt_voice0+12
 clr.l		mt_partnrplay
 clr.l		mt_partnote
 clr.l		mt_partpoint
 
 move.b		mt_sampleinfo+$1d6,mt_maxpart+1
 move.b		mt_sampleinfo+$1d7,mt_kn1+1
 rts


mt_newirq:
 movem.l		d0-d7/a0-a6,-(a7)
 bsr		mt_music
 movem.l		(a7)+,d0-d7/a0-a6
 
 dc.w		$4ef9
mt_oldirq:
 dc.l		0


mt_music:
 addq.l		#1,mt_counter
 move.l		mt_tempo,d0
 cmp.l		mt_counter,d0
 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
 bsr.s		mt_arprout
mt_arp4:
 bra		mt_stop


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.L	mt_arpegrt
 cmp.b	#3,d0
 beq.L	mt_arpegrt
 cmp.b	#4,d0
 beq.L	mt_arpegrt
 cmp.b	#5,d0
 beq.L	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)
 move.w $12(a6),botcol
 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)
 move.w $12(a6),topcol
 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_sampleinfo,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:
 lea		mt_modulate,a0
 move.l		mt_partnote,d0
 lsl.b		#7,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)
 move.w 	18(a6),botcol
 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)
 move.w 	18(a6),topcol
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
 beq.s	mt_zx1
 cmp.b	#15,d0
 bne.s	mt_noset
 
 move.w	2(a6),d0
 and.l	#$f,d0
 move.l	d0,mt_tempo
 rts
 
mt_zx1:
 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	#12,d0
 bne.s	mt_nochnge
 move.b	3(a6),8(a5)
 move.b 3(a6),topcol+1
 mt_nochnge:
 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
 dc.l 0
 dc.b "fofg"
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_tempo:
 dc.l 6
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_modulate:
 dc.w $0c39,$0039,$00bf,$ec01,$6630,$0839,$0007,$00bf
 dc.w $e001,$6626,$2c79,$0000,$0004,$43fa,$0020,$4eae
 dc.w $fe68,$2c40,$4280,$41fa,$0026,$223c,$0000,$0032
 dc.w $4eae,$ffa6,$60ee,$0000,$0000,$4e75,$696e,$7475
 dc.w $6974,$696f,$6e2e,$6c69,$6272,$6172,$7900,$0104
 dc.w $1753,$6f75,$6e64,$5472,$6163,$6b65,$7220,$5632
 dc.w $0063,$00f0,$20a9,$2054,$6865,$204a,$756e,$676c
 dc.w $6520,$436f,$6d6d,$616e,$6400,$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_sampleinfo:	dc.b    "gof "
		ds.b	5716
s1:		ds.b    1300
s2:		ds.b	4000
s3:		ds.b	9000
s4:		ds.b	8800
s5:		ds.b	2000
s6:		ds.b	2700
s7:		ds.b	3400
s8:		ds.b	6200
s9:		ds.b	0
sa:		ds.b	0
sb:		ds.b	0
sc:		ds.b	0
sd:		ds.b	0
se:		ds.b	0
sf:		ds.b	0


mypiccy	dc.b	"fog "
	ds.b 	58876
endmess	dc.b   "Yupp, its over. Do not try and newzap"
 	dc.b   "this message, cause it does nothing anyway."
 	dc.b   "it's just the hidden message."
	dc.b  "You seem to be pretty cool at getting into demos."
	dc.b  "there's a prize to the first person who writes to us"
	dc.b "and says - Big Al is a total lamer mateys -"
	dc.b "See you soon!"



