*********************************************
*			        *
*        Spectrum - By Mark Sheeky	        *
*         (c)1991 By  Mark Sheeky	        *
*			        *
* Sample Lengths (in correct order)	        *
* Shot       3892		        *
* Hit        642		        *
* Appear     19634		        *
* Explosion  11088		        *
* UFO	 40346		        *
* TOTAL	 75603		        *
*			        *
*********************************************
program	jsr	initialise
mainloop	jsr	initvars
	jsr	tscreen
	tst.b	quitflag
	bne	.quit
	jsr	game
	bra	mainloop
.quit	jsr	closeup
	rts

game	jsr	setupsc
	tst.w	$dff00e
.loop	move.w	$dff00e,colreg
	move.l	kouval,kount
	jsr	delay
	addq.b	#1,rancount
	move.l	#500,kouval
	jsr	joystick
	jsr	moveyou
	jsr	firecheck
	jsr	bomcheck
	jsr	ufocheck
	jsr	movemis
	jsr	movebomb
	jsr	moveufo
	jsr	boomufo
	jsr	testdead
	jsr	checkhit
	jsr	hitwall
	jsr	checkoff0
	jsr	checkoff1
	jsr	checkoff2
	jsr	pause
	btst	#0,misflag
	beq	.notup
	move.l	mis1byte,d0
 	move.w	misy,d1
	move.l	#0,d3
	jsr	pixel
	move.l	mis1byte,d0
	move.w	misy,d1
	add.w	#2,d1
	move.l	#0,d3
	jsr	pixel
.notup	btst	#1,misflag
	beq	.notup2
	move.l	mis2byte,d0
	move.w	misy2,d1
	move.l	#1,d3
	jsr	pixel
	move.l	mis2byte,d0
	move.w	misy2,d1
	add.w	#2,d1
	move.l	#1,d3
	jsr	pixel
.notup2	tst.b	scrl
	bne	.not0
	move.b	#50,scrl
.not0	sub.b	#1,scrl
.loop2	move.b	$dff006,d6
	cmp.b	#$20,d6
	bne.s	.loop2
	btst	#0,$dff005
	beq	.loop2
	tst.b	scrl
	bne	.nots
	jsr	scroll
.nots	jsr	printpoint
	tst.b	deadflag
	bne	.end
	cmp.b	#117,$bfec01
	bne	.loop
.end	jsr	dead		* explode your ship
	move.l	#500000,kount
	jsr	delay
	jsr	wipe
	move.l	#coltable,a1
	jsr	copycols
	rts	

* pause routine
pause	cmp.b	#205,$bfec01
	bne	.end
	move.w	#$f,$dff096		* turn off sound
.loop1	cmp.b	#205,$bfec01
	beq	.loop1
.loop2	cmp.b	#205,$bfec01
	bne	.loop2
.loop3	cmp.b	#205,$bfec01
	beq	.loop3
.end	rts	

* routine that copies colours at a1 into the game palette (coltable2)
copypal	move.l	#coltable2,a0
	move.l	#16,d0
.loop	move.b	(a1)+,(a0)+
	move.b	(a1)+,(a0)+
	subq.b	#1,d0
	bne	.loop
	rts

* thrust routine
thrust	move.w	#$f,$dff096
	jsr	offspr
	lea	$dff000,a5
	move.l	sampaddr,a0
	add.l	#24168,a0
	move.l	a0,$d0(a5)
	move.l	a0,$c0(a5)
	move.w	#64,$d8(a5)
	move.w	#64,$c8(a5)
	move.w	#5544,$d4(a5)
	move.w	#5544,$c4(a5)
	move.w	#528,$d6(a5)
	move.w	#528,$c6(a5)
	move.w	#$800c,$96(a5)
	move.w	#2,d7
.mainloop	move.w	$dff00e,colreg
	jsr	hitwall
.loop	move.b	$dff006,d6
	cmp.b	#$20,d6
	bne.s	.loop
	move.l	spraddr,a0
	move.w	pointy,d0
	jsr	chy2
	move.w	pointy,d0
	move.l	spraddr,a0
	add.l	#104,a0
	jsr	chy2
	sub.w	d7,pointy
	tst.w	pointy
	bmi	.close
	tst.b	deadflag
	bne	.end
	bra	.mainloop
.close	move.w	#$c,$dff096
	jsr	wipe
	addq.b	#2,level
	move.l	#coltable2,a1
	add.l	#34,a1
	move.w	#0,(a1)
	move.w	#0,2(a1)
	move.w	#0,4(a1)
	move.l	#coltable2,a1
	jsr	copycols
.loop2	move.b	$dff006,d6
	cmp.b	#$20,d6
	bne.s	.loop2
	btst	#0,$dff005
	beq	.loop2
	move.l	spraddr,a0
	move.w	#$e7,d0
	jsr	chy2
	move.w	#$e7,d0
	move.l	spraddr,a0
	add.l	#104,a0
	jsr	chy2	
	jsr	setupsc
	cmp.b	#33,level
	bne	.end
	move.l	#coltable3,a1
	jsr	copycols
	move.l	#finished,a3
	move.l	bit.start,a4
	add.l	#3604,a4
	jsr	write
	move.l	#1000000,kount
	jsr	delay
	move.l	#blank,a3
	move.l	bit.start,a4
	add.l	#3604,a4
	jsr	write
	move.b	#1,deadflag
.end	move.w	#$f,$dff096
	rts

* turn off all sprites except yours
offspr	clr.w	ufox
	clr.b	ufoflag
	clr.b	bomflag
	clr.w	bomx
	clr.w	misx
	clr.w	misx2
	clr.b	misflag
	move.w	#$e7,pointy
.loop2	move.b	$dff006,d6
	cmp.b	#$20,d6
	bne.s	.loop2
	jsr	printpoint
	rts

* check to see if you've hit the ufo
checkhit	btst	#13,colreg
	beq	.end
	cmp.b	#1,ufoflag
	beq	.explode
	cmp.b	#2,ufoflag
	beq	.explode
	bra	.end
.explode	move.b	#3,ufoflag
	move.w	#100,ufocount
	add.l	#100,score
	jsr	scoreout
	jsr	boomnoise
.end	rts

* see if you've hit the wall
hitwall	btst	#5,colreg2
	beq	.end
	btst	#1,colreg2
	beq	.end
	move.b	#1,deadflag
.end	rts
 
* convert score into ascii and print it out
scoreout	move.l	#score,a0		* address of score
	move.l	#score1,a2		* address to put ascii
	jsr	convert
	move.l	bit.start,a3
	add.l	#56,a3
	add.l	#40960,a3
	move.l	#score1,a4
	move.w	#5,d1
.loop	move.l	a4,a0
	move.l	a3,a1
	jsr	printlet2
	addq.l	#1,a3
	addq.l	#1,a4
	dbf	d1,.loop
	rts

* print 8x8 letter whose value is in a0 to screen pos a1
printlet2	move.b	(a0),d0
.notspc	sub.b	#47,d0
	move.l	#Scnums,a2
	sub.l	#8,a2
.loop	add.l	#8,a2
	subq.b	#1,d0
	bne.s	.loop
	move.b	#8,d0
.loop2	move.b	(a2)+,(a1)
	add.l	#40,a1
	subq.b	#1,d0
	bne.s	.loop2
	rts


* explode ufo if neccesary
boomufo	cmp.b	#3,ufoflag
	bne	.end
	move.w	ufocount,d0
	rol	#2,d0
	move.w	d0,$dff1ba
	rol	#2,d0
	move.w	d0,$dff1bc
	ror	#4,d0
	move.w	d0,$dff1be
	subq.w	#1,ufocount
	bne	.end
	move.w	#0,ufox
	move.b	#0,ufoflag
	move.w	#$fff,$dff1ba
	move.w	#$fc8,$dff1bc
	move.w	#$f80,$dff1be
.end	rts

* move the ufo. 0-off 1-right 2-left 3-dying.
moveufo	tst.b	ufoflag
	beq	.end
	cmp.b	#1,ufoflag
	bne	.notright
	addq.w	#1,ufox
	cmp.w	#449,ufox
	bne	.end
	clr.b	ufoflag
	bra	.end
.notright	cmp.b	#2,ufoflag
	bne	.end
	subq.w	#1,ufox
	cmp.w	#109,ufox
	bne	.end
	clr.b	ufoflag
.end	rts

* check to find out whether the ufo should appear or not
ufocheck	tst.b	ufoflag
	bne	.end
	subq.w	#1,ufodelay
	bne	.end
	move.w	#1000,ufodelay
	btst	#0,rancount
	bne	.notright
	move.b	#1,ufoflag
	move.w	#109,ufox
	jsr	ufonoise
	bra	.end
.notright	move.b	#2,ufoflag
	move.w	#449,ufox
	jsr	ufonoise
.end	rts

* whats at pixel x,y. d0-x (byte)  d1-y
pixel	sub.l	#49,kouval
	sub.w	#44,d1
	move.l	bit.start,a0
.loop	tst.w	d1
	bmi	.miend
	add.l	#40,a0
	subq.w	#1,d1
	bne	.loop
	add.l	d0,a0
	move.l	a0,a1
	move.l	a0,a2
	add.l	#40960,a2
	tst.b	(a2)
	bne	.end
	tst.b	(a0)
	bne	.start
	add.l	#10240,a0
	tst.b	(a0)
	bne	.start
	add.l	#10240,a0
	tst.b	(a0)
	bne	.start
	add.l	#10240,a0
	tst.b	(a0)
	bne	.start
	bra	.end
.start	move.b	#8,d0
	sub.l	#40,a1
.loop2	move.b	#0,(a1)
	add.l	#10240,a1
	move.b	#0,(a1)
	add.l	#10240,a1
	move.b	#0,(a1)
	add.l	#10240,a1
	move.b	#0,(a1)
	sub.l	#30680,a1
	subq.b	#1,d0
	bne	.loop2
	jsr	hitnoise
	add.l	#1,score
	jsr	scoreout
	tst.l	d3
	bne	.itsmis2
	move.w	#8,misy
	bclr	#0,misflag
	bra	.end
.itsmis2	move.w	#8,misy2
	bclr	#1,misflag
	bra	.end
.miend	add.l	#399,kouval
.end	rts 

* test to see if you are dead
testdead	btst	#10,colreg
	beq	.end
	move.b	#1,deadflag
.end	rts

* test whether the wall should start a bomb or not
bomcheck	tst.b	bomflag
	bne	.end
	move.b	#1,bomflag
	move.w	pointx,bomx
	move.w	wally,bomy
.end	rts

* check to turn off sound in channel 0 and 1
checkoff0	subq.w	#1,count0
	beq	.off
	cmp.w	#13,count0
	bne	.end1
.off	move.w	#3,$dff096
	bra	.end
.end1	cmp.w	#12,count0
	bne	.end
	move.w	#$8003,$dff096
.end	rts

* check to turn off sound in channel 3
checkoff2	subq.w	#1,count2
	bne	.end
	move.w	#8,$dff096
.end	rts


* check to turn off sound in channel 2
checkoff1	subq.w	#1,count1
	bne	.end
	move.w	#4,$dff096
.end	rts

* explosion noise
boomnoise	lea	$dff000,a5
	move.l	sampaddr,a0
	add.l	#24168,a0
	move.l	a0,$d0(a5)
	move.w	#64,$d8(a5)
	move.w	#5544,$d4(a5)
	move.w	#428,$d6(a5)
	move.w	#$8008,$96(a5)
	move.w	#65,count2
	rts

* ufo noise
ufonoise	lea	$dff000,a5
	move.l	sampaddr,a0
	add.l	#35256,a0
	move.l	a0,$d0(a5)
	move.w	#64,$d8(a5)
	move.w	#20173,$d4(a5)
	move.w	#214,$d6(a5)
	move.w	#$8008,$96(a5)
	move.w	#120,count2
	rts


* hit noise
hitnoise	lea	$dff000,a5
	move.l	sampaddr,a0
	add.l	#3892,a0
	move.l	a0,$c0(a5)
	move.w	#64,$c8(a5)
	move.w	#321,$c4(a5)
	move.w	#428,$c6(a5)
	move.w	#$8004,$96(a5)
	move.w	#3,count1
	rts

* start the sound of your shot in channel 0 and 1
shotnoise	lea	$dff000,a5
	move.l	sampaddr,$a0(a5)
	move.l	sampaddr,$b0(a5)
	move.w	#40,$a8(a5)
	move.w	#40,$b8(a5)
	move.w	#1946,$a4(a5)
	move.w	#1946,$b4(a5)
	move.w	#428,$a6(a5)
	move.w	#428,$b6(a5)
	move.w	#$8003,$96(a5)
	move.w	#14,count0
	rts

* do colour animation that happens when you die
dead	move.w	#$f,$dff096
	lea	$dff000,a5
	move.l	sampaddr,a0
	add.l	#24168,a0
	move.l	a0,$d0(a5)
	move.l	a0,$c0(a5)
	move.w	#64,$d8(a5)
	move.w	#64,$c8(a5)
	move.w	#5544,$d4(a5)
	move.w	#5544,$c4(a5)
	move.w	#428,$d6(a5)
	move.w	#428,$c6(a5)
	move.w	#$800c,$96(a5)
	move.w	#0,bomy
	move.b	#0,bomflag
.vbgloop	move.b	$dff006,d6
	cmp.b	#$20,d6
	bne	.vbgloop
	jsr	printpoint
.mainloop	move.l	#coltable2,a1
	jsr	copycols
	move.l	#5,kount
	jsr	delay
	move.l	#coltable2,a1
	add.l	#36,a1
	cmp.w	#$fff,(a1)
	beq	.ok
	addq.w	#1,(a1)
.ok	addq.w	#1,2(a1)
	cmp.w	#$fff,(a1)
	bne	.mainloop
	cmp.w	#$fff,2(a1)
	bne	.mainloop
.end	move.w	#$e,d1
.loop	move.l	#coltable2,a1
	jsr	copycols
	move.l	#6000,kount
	jsr	delay
	move.l	#coltable2,a1
	add.l	#34,a1
	sub.w	#$111,(a1)
	sub.w	#$111,2(a1)
	sub.w	#$111,4(a1)
	dbf	d1,.loop
	move.w	#$c,$dff096
	jsr	sproff
	rts

* do colour animation that happens when you appear
appear	move.l	#coltable2,a1
	jsr	copycols
	move.l	#18000,kount
	jsr	delay
	move.l	#coltable2,a1
	add.l	#34,a1
	add.w	#$111,(a1)
	add.w	#$111,2(a1)
	add.w	#$111,4(a1)
	cmp.w	#$fff,(a1)
	bne	appear
.loop	move.l	#coltable2,a1
	jsr	copycols
	move.l	#45,kount
	jsr	delay
	move.l	#coltable2,a1
	add.l	#36,a1
	cmp.w	#$c95,(a1)
	beq	.end1
	subq.w	#1,(a1)
.end1	subq.w	#1,2(a1)
	cmp.w	#$975,2(a1)
	bne	.loop
	rts


* check for firing
firecheck	btst	#7,$bfe001
	bne	.end
	addq.b	#1,miscount
	cmp.b	#20,miscount
	bne	.notend
	move.b	#1,miscount
.notend	btst	#0,misflag
	bne	.not1
	cmp.b	#1,miscount
	bne	.end2
	bset	#0,misflag
	move.w	pointx,misx
	move.w	#$e8,misy
	move.l	yourbyte,mis1byte
	jsr	shotnoise
	bra	.end2
.not1	btst	#1,misflag
	bne	.end2
	cmp.b	#1,miscount
	bne	.end2
	bset	#1,misflag
	move.w	pointx,misx2
	move.w	#$e8,misy2
	move.l	yourbyte,mis2byte
	jsr	shotnoise
	bra	.end2
.end	move.b	#0,miscount
.end2	rts

* check the left/right status of the joystick and adjust your co-ord
joystick	move.w	$dff00c,d0
	btst	#9,d0
	beq	notleft2
	move.b	#1,yourdir
	rts
notleft2	btst	#1,d0
	beq	notright2
	move.b	#2,yourdir
	rts
notright2	btst	#8,d0
	beq	endit
	jsr	thrust
endit	rts

moveyou	cmp.b	#1,yourdir
	bne	notleft
	cmp.w	#$81,pointx
	bne	.moveleft
	move.b	#2,yourdir
	rts
.moveleft	subq.w	#1,pointx
	subq.b	#1,yourcount
	cmp.b	#255,yourcount
	bne	endit
	move.b	#7,yourcount
	subq.l	#1,yourbyte
	rts
notleft	cmp.b	#2,yourdir
	bne	notright
	cmp.w	#$1ab,pointx
	bne	.moveright
	move.b	#1,yourdir
	rts
.moveright	addq.w	#1,pointx
	addq.b	#1,yourcount
	cmp.b	#8,yourcount
	bne	endit
	clr.b	yourcount
	addq.l	#1,yourbyte
notright	rts


* move bomb
movebomb	tst.b	bomflag
	beq	.end
	add.w	#2,bomy
	cmp.w	#$f5,bomy
	blt	.end
	move.w	#0,bomy
	move.b	#0,bomflag
.end	rts

* move missiles (update pointers if neccesary)
movemis	btst	#0,misflag
	beq	.notinair
	subq.w	#4,misy
	cmp.w	#8,misy
	bne	.notinair
	bclr	#0,misflag
.notinair	btst	#1,misflag
	beq	.end
	subq.w	#4,misy2
	cmp.w	#8,misy2
	bne	.end
	bclr	#1,misflag
.end	rts

* print your sprite at word position pointx
printpoint	move.l	spraddr,a0		* you 1
	add.l	#1,a0
	move.w	pointx,d0
	bsr	horzshow
	move.l	spraddr,a0		* you 2
	add.l	#105,a0
	move.w	pointx,d0
	add.w	#16,d0
	bsr	horzshow
	move.l	spraddr,a0		* missile
	add.l	#209,a0
	move.w	misx,d0
	bsr	horzshow
	move.w	misy,d0
	move.l	spraddr,a0
	add.l	#208,a0
	bsr	chy
	move.l	spraddr,a0		* missile
	add.l	#253,a0
	move.w	misx2,d0
	bsr	horzshow
	move.w	misy2,d0
	move.l	spraddr,a0
	add.l	#252,a0
	bsr	chy
	move.l	spraddr,a0		* bomb
	add.l	#297,a0
	move.w	bomx,d0
	bsr	horzshow
	move.w	bomy,d0
	move.l	spraddr,a0
	add.l	#296,a0
	bsr	chy
	move.l	spraddr,a0		* you 2
	add.l	#341,a0
	move.w	ufox,d0
	bsr	horzshow
	rts
horzshow	move.w	pointx,d2
	lsr.w	#1,d0
	bcs	setit
	move.w	d0,pointx
	move.b	pointx+1,(a0)
	add.l	#2,a0
	bclr	#0,(a0)
	move.w	d2,pointx
	rts
setit	move.w	d0,pointx	
	move.b	pointx+1,(a0)
	add.l	#2,a0
	bset	#0,(a0)
	move.w	d2,pointx
	rts
chy	move.b	d0,(a0)
	add.w	#9,d0
	add.l	#2,a0
	move.b	d0,(a0)
	rts

chy2	move.b	d0,(a0)
	add.w	#24,d0
	add.l	#2,a0
	move.b	d0,(a0)
	rts

* set up game screen
setupsc	move.w	#$2cc1,$dff090
	jsr	levelwall
	move.l	#coltable2,a1
	jsr	copycols
	jsr	scoreout
	jsr	spron
	lea	$dff000,a5
	move.l	sampaddr,a1
	add.l	#4534,a1
	move.l	a1,$a0(a5)
	move.l	a1,$b0(a5)
	move.w	#9817,$a4(a5)
	move.w	#9817,$b4(a5)
	move.w	#508,$a6(a5)
	move.w	#508,$b6(a5)
	move.w	#40,$a8(a5)
	move.w	#40,$b8(a5)
	move.w	#$8003,$96(a5)
	jsr	appear
	move.w	#3,$dff096
	rts

sampmemory	move.l	4,a6
	move.l	#75603,d0		* amount to reserve
	moveq	#2,d1
	jsr	-198(a6)
	move.l	d0,sampaddr
	lea	sampledata,a0	* copy data
	move.l	sampaddr,a1
	move.l	#75603,d0
.loop	move.b	(a0)+,(a1)+
	subq.l	#1,d0
	bne	.loop
	rts

* frees sample chip memory
freesampmem	move.l	4,a6
	move.l	sampaddr,a1
	move.l	#75603,d0		* amount to free
	jsr	-210(a6)
	rts

* copy sprite stuff
sprmemory	move.l	4,a6
	move.l	#510,d0		* amount to reserve
	moveq	#2,d1
	jsr	-198(a6)
	move.l	d0,spraddr
	lea	You1,a0		* copy data
	move.l	spraddr,a1
	move.w	#509,d0
.loop	move.b	(a0)+,(a1)+
	dbf	d0,.loop
	rts

* frees sprite chip memory
freesprmem	move.l	4,a6
	move.l	spraddr,a1
	move.l	#510,d0		* amount to free
	jsr	-210(a6)
	rts


* converts 6 figure long word in a0 into ascii.Puts nnnnnn into address at a2
convert	move.l	(a0),d0
	move.l	d0,a0
	move.b	#48,d1
.loop5	cmp.l	#100000,a0
	blt	notgt5
	add.b	#1,d1
	sub.l	#100000,a0
	bra	.loop5
notgt5	move.b	d1,0(a2)
	move.b	#48,d1
.loop	cmp.l	#10000,a0
	blt	notgt
	add.b	#1,d1
	sub.l	#10000,a0
	bra	.loop
notgt	move.b	d1,1(a2)
	move.b	#48,d1
.loop2	cmp.l	#1000,a0
	blt	notgt2
	add.b	#1,d1
	sub.l	#1000,a0
	bra	.loop2
notgt2	move.b	d1,2(a2)
	move.b	#48,d1
.loop3	cmp.l	#100,a0
	blt	notgt3
	add.b	#1,d1
	sub.l	#100,a0
	bra	.loop3
notgt3	move.b	d1,3(a2)
	move.b	#48,d1
.loop4	cmp.l	#10,a0
	blt	notgt4
	add.b	#1,d1
	sub.l	#10,a0
	bra	.loop4
notgt4	move.b	d1,4(a2)
	move.b	#48,d1
.loop6	cmp.l	#1,a0
	blt	notgt6
	add.b	#1,d1
	sub.l	#1,a0
	bra	.loop6
notgt6	move.b	d1,5(a2)
	rts

* wipe the screen. wipes by closing the blinds.
wipe	move.l	bit.start,a0
	move.l	a0,a1
	add.l	#10240,a1
	move.l	a1,a2
	add.l	#10240,a2
	move.l	a2,a3
	add.l	#10240,a3
	move.l	a3,a4
	add.l	#10240,a4
	move.b	#8,d2
.loop3	move.w	#30,d1
.loop2	move.b	#40,d0
.loop	move.b	#0,(a0)+
	move.b	#0,(a1)+
	move.b	#0,(a2)+
	move.b	#0,(a3)+
	move.b	#0,(a4)+
	subq.b	#1,d0
	bne	.loop
	add.l	#280,a0
	add.l	#280,a1
	add.l	#280,a2
	add.l	#280,a3
	add.l	#280,a4
	subq.w	#1,d1
	bne	.loop2
	sub.l	#9560,a0		: num * 320 - 40
	sub.l	#9560,a1
	sub.l	#9560,a2
	sub.l	#9560,a3
	sub.l	#9560,a4
	move.l	#5000,kount
	jsr	delay
	subq.b	#1,d2
	bne	.loop3
	rts


* write a word at a3 to pos a4 until 0 is encountered
write	move.l	a4,a1
	move.l	a3,a0
	tst.b	(a3)
	beq	.end
	jsr	printlet
	add.l	#1,a3
	add.l	#2,a4
	bra	write
.end	rts
	

* do title screen
tscreen	jsr	sproff
	jsr	copytitle
	move.w	#$2ca1,$dff090
	jsr	printnext
.loop2	move.b	$dff006,d6
	cmp.b	#$20,d6
	bne	.loop2
	btst	#0,$dff005
	beq	.loop2
	move.l	#1800,kount
	jsr	delay
	jsr	scrollie
	cmp.b	#117,$bfec01
	bne	.notquit
	move.b	#1,quitflag
	rts
.notquit	btst	#7,$bfe001
	bne	.loop2
	jsr	wipe
	rts

scrollie	jsr	mescroll
	subq.b	#1,letter
	bne	.end
	move.b	#16,letter
	addq.w	#1,pointer
	jsr	printnext
.end	rts

* print next scrolling letter
printnext	move.l	bit.start,a1
	add.l	#8196,a1
	move.l	#message,a0
	add.w	pointer,a0
	tst.b	(a0)
	beq	.end
	jsr	printlet
	bra	.ret
.end	move.w	#0,pointer
.ret	rts

* print letter whose value is in a0 to screen pos a1
printlet	move.b	(a0),d0
	cmp.b	#32,d0
	bne	.notspc
	move.l	#Null,a2
	bra	.pl1
.notspc	sub.b	#47,d0
	move.l	#Alphabet,a2
	sub.l	#60,a2
.loop	add.l	#60,a2
	subq.b	#1,d0
	bne.s	.loop
.pl1	move.b	#15,d0
.loop2	move.b	(a2)+,(a1)
	move.b	(a2)+,1(a1)
	add.l	#40,a1
	subq.b	#1,d0
	bne.s	.loop2
	add.l	#9640,a1
	move.b	#15,d0
.loop3	move.b	(a2)+,(a1)
	move.b	(a2)+,1(a1)
	add.l	#40,a1
	subq.b	#1,d0
	bne.s	.loop3
	rts

* print level wall
levelwall	move.w	#70,wally
	move.l	#leveldata,a0
	move.w	#0,d0
	move.b	level,d1
	btst	#0,rancount
	bne	.loop
	addq.b	#1,d1
.loop	tst.b	(a0)
	beq	.hit0
	addq.l	#1,a0
	bra	.loop
.hit0	addq.w	#1,d0
	addq.l	#1,a0
	cmp.b	d1,d0
	beq	.gotaddr
	bra	.loop
.gotaddr	jsr	colcalc
	move.l	bit.start,a3
	add.l	#680,a3
.loop3	move.w	#20,d1
.loop2	move.b	(a0),d0
	move.l	a3,a1
	jsr	printblk
	add.l	#2,a3
	addq.l	#1,a0
	tst.b	(a0)
	beq	.end
	subq.w	#1,d1
	bne	.loop2
	tst.b	(a0)
	add.l	#600,a3
	bne	.loop3
.end	rts

Colcalc	move.l	a0,a2
	move.b	(a0),d0
	move.l	#palette1,a1
	sub.l	#32,a1
.loop	add.l	#32,a1
	subq.b	#1,d0
	bne	.loop
	jsr	copypal
	move.l	a2,a0
	addq.l	#1,a0
.end	rts

* print block whose value is in d0 to screen pos a1
printblk	move.l	#Gfxdata,a2
	sub.l	#128,a2
.loop	add.l	#128,a2
	subq.b	#1,d0
	bne.s	.loop
.pl1	move.b	#16,d0
.loop2	move.b	(a2)+,(a1)
	move.b	(a2)+,1(a1)
	add.l	#40,a1
	subq.b	#1,d0
	bne.s	.loop2
	add.l	#9600,a1
	move.b	#16,d0
.loop3	move.b	(a2)+,(a1)
	move.b	(a2)+,1(a1)
	add.l	#40,a1
	subq.b	#1,d0
	bne.s	.loop3
	add.l	#9600,a1
	move.b	#16,d0
.loop4	move.b	(a2)+,(a1)
	move.b	(a2)+,1(a1)
	add.l	#40,a1
	subq.b	#1,d0
	bne.s	.loop4
	add.l	#9600,a1
	move.b	#16,d0
.loop5	move.b	(a2)+,(a1)
	move.b	(a2)+,1(a1)
	add.l	#40,a1
	subq.b	#1,d0
	bne.s	.loop5
	rts


* scroll the message 1 pixel
mescroll	lea	$dff000,a5
	move.l	bit.start,a1
	add.l	#8799,a1
.wait1	btst	#14,$2(a5)
	bne.s	.wait1
	move.w	#$40,$96(a5)
	move.w	#2,$42(a5)
	move.w	#0,$60(a5)		* modulos 
	move.w	#0,$62(a5)		* (unused this time)
	move.w	#0,$64(a5)
	move.w	#0,$66(a5)
	move.w	#$19f0,$40(a5)	* shift 1 pixel
	move.l	a1,$54(a5)		* dest address
	move.l	a1,$50(a5)		* source a addr
	move.w	#%0000010000010100,$58(a5)	
	move.w	#$8040,$96(a5)	* dma
.wait2	btst	#14,$2(a5)
	bne.s	.wait2
	add.l	#10240,a1
	move.w	#$40,$96(a5)
	move.l	a1,$54(a5)		* dest address
	move.l	a1,$50(a5)		* source a addr
	move.w	#%0000010000010100,$58(a5)	
	move.w	#$8040,$96(a5)	* dma
	rts


* set up various standard blitter registers.
initblit	lea	$dff000,a5
	move.w	#0,$60(a5)		* modulos 
	move.w	#0,$62(a5)		* (unused this time)
	move.w	#0,$64(a5)
	move.w	#0,$66(a5)
	move.w	#0,$42(a5)
	rts

* scroll wall down 1 pixel
scroll	add.w	#1,wally
	lea	$dff000,a5
	move.w	#$40,$96(a5)
	
	move.w	#2,$42(a5)
	move.w	#$09f0,$40(a5)
	clr.w	$60(a5)		* modulos 
	clr.w	$62(a5)		* (unused this time)
	clr.w	$64(a5)
	clr.w	$66(a5)
	clr.l	$48(a5)
	clr.l	$4c(a5)
	move.w	#$ffff,$44(a5)
	move.w	#$ffff,$46(a5)

	move.l	bit.start,a0
	add.l	#40959,a0
	move.l	a0,$50(a5)		* source a addr
	add.l	#40,a0
	move.l	a0,$54(a5)		* dest address

	move.w	#%1111111111010100,$58(a5)
	move.w	#$8040,$96(a5)	* dma
	rts

* close up everything and free memory
closeup	jsr	freebitmem
	jsr	freesampmem
	jsr	freesprmem
	jsr	freegfx
	move.w	#$f,$dff096
	rts

* initialise everything
initialise	jsr	sprmemory
	jsr	initbitmap
	jsr	sampmemory
	jsr	copygfx
	rts

* initialise variables
initvars	move.l	#$2c003c00,Ufo
	move.l	#coltable2,a1
	add.l	#34,a1
	move.w	#0,(a1)
	move.w	#0,2(a1)
	move.w	#0,4(a1)
	move.w	#%1111000001000001,$dff098
	move.l	#18,yourbyte
	move.l	#200,kouval
	move.w	#264,pointx
	move.w	#$e7,pointy
	move.w	#1000,ufodelay
	move.b	#48,score1
	move.b	#48,score2
	move.b	#48,score3
	move.b	#48,score4
	move.b	#48,score5
	move.b	#48,score6
	move.b	#16,letter
	move.b	#1,level
	move.b	$dff015,rancount
	clr.l	score
	clr.l	mis1byte
	clr.l	mis2byte
	clr.w	colreg
	clr.w	ufox
	clr.w	pointer
	clr.w	ufocount
	clr.w	misx
	clr.w	misy
	clr.w	misx2
	clr.w	misy2
	clr.w	bomx
	clr.w	bomy
	clr.b	yourdir
	clr.b	yourcount
	clr.b	bomflag
	clr.b	ufoflag
	clr.b	misflag
	clr.b	miscount
	clr.b	quitflag
	clr.b	deadflag
	jsr	printpoint
	move.l	spraddr,a0
	move.w	pointy,d0
	jsr	chy2
	move.w	pointy,d0
	move.l	spraddr,a0
	add.l	#104,a0
	jsr	chy2
	rts

* reserves graphic chip memory and copies data
copygfx	move.l	4,a6
	move.l	#6600,d0		* amount to reserve
	moveq	#2,d1
	jsr	-198(a6)
	move.l	d0,gfxaddr
	lea	title,a0		* copy data
	move.l	gfxaddr,a1
	move.w	#6599,d0
.loop	move.b	(a0)+,(a1)+
	dbf	d0,.loop
	rts

* frees graphic chip memory
freegfx	move.l	4,a6
	move.l	gfxaddr,a1
	move.l	#6600,d0		* amount to free
	jsr	-210(a6)
	rts


* Multipurpose delay
delay	subq.l	#1,kount
	bne	delay
	rts

* draw bitmapped title using the blitter
copytitle	lea	$dff000,a5
	move.w	#$40,$96(a5)
	move.l	bit.start,a0
	add.l	#3000,a0		* screen addr in a0
	move.l	gfxaddr,a1
	move.w	#0,$60(a5)		* modulos 
	move.w	#0,$62(a5)		* (unused this time)
	move.w	#0,$64(a5)
	move.w	#0,$66(a5)
	move.w	#0,$42(a5)		* bplcon1			
	move.w	#$09f0,$40(a5)	* miniterms & dma

	move.l	a0,$54(a5)		* dest address
	move.l	a1,$50(a5)		* source a addr
	move.w	#$0854,$58(a5)	* size
	move.w	#$8040,$96(a5)	* dma
.wait1	btst	#14,$2(a5)
	bne.s	.wait1
	move.w	#$40,$96(a5)
	add.l	#1320,a1
	add.l	#10240,a0

	move.l	a0,$54(a5)		* dest address
	move.l	a1,$50(a5)		* source a addr
	move.w	#$0854,$58(a5)	* size
	move.w	#$8040,$96(a5)	* dma
.wait2	btst	#14,$2(a5)
	bne.s	.wait2
	move.w	#$40,$96(a5)
	add.l	#1320,a1
	add.l	#10240,a0

	move.l	a0,$54(a5)		* dest address
	move.l	a1,$50(a5)		* source a addr
	move.w	#$0854,$58(a5)	* size
	move.w	#$8040,$96(a5)	* dma
.wait3	btst	#14,$2(a5)
	bne.s	.wait3
	move.w	#$40,$96(a5)
	add.l	#1320,a1
	add.l	#10240,a0
	
	move.l	a0,$54(a5)		* dest address
	move.l	a1,$50(a5)		* source a addr
	move.w	#$0854,$58(a5)	* size
	move.w	#$8040,$96(a5)	* dma
.wait4	btst	#14,$2(a5)
	bne.s	.wait4
	move.w	#$40,$96(a5)
	add.l	#1320,a1
	add.l	#10240,a0

	move.l	a0,$54(a5)		* dest address
	move.l	a1,$50(a5)		* source a addr
	move.w	#$0854,$58(a5)	* size
	move.w	#$8040,$96(a5)	* dma
.wait5	btst	#14,$2(a5)
	bne.s	.wait5
	move.w	#$40,$96(a5)

	rts

* copys colours into correct registers. Table address in a1
copycols	move.l	#$dff182,a0
	move.b	#31,d0
	add.l	#2,a1
.loop	move.w	(a1),(a0)
	addq.l	#2,a0
	addq.l	#2,a1
	subq.b	#1,d0
	bne	.loop
	rts

* initialise bitmap
initbitmap	move.l	4,a6		* own blitter
	move.l	#gfxname,a1
	clr.l	d0
	jsr	-408(a6)
	move.l	d0,a6
	jsr	-456(a6)
	move.l	a6,gfxpt

	move.l    $4,a6		* reserve memory
	move.l    #51200,d0		* 8000 ntsc, 10240 pal
	move.l    #$10002,d1
	jsr       -198(a6)
	move.l    d0,bit.start

coplist	move.l    #400,d0		* create copperlist
	move.l    #2,d1
	jsr       -198(a6)
	move.l    d0,cop.start

	move.l	cop.start,a0	* create copperlist
	move.l	bit.start,d1
	move.w	#4,d4		* change to planes - 1
	move.w	#$e0,d2
.loop	move.w	d2,(a0)+
	swap	d1
	move.w	d1,(a0)+
	add	#2,d2
	move.w	d2,(a0)+
	swap	d1
	move.w	d1,(a0)+
	add.l	#10240,d1
	add	#2,d2
	dbf	d4,.loop

	move.w	#$120,(a0)+		* sprite 0
	move.l	spraddr,d0
	swap	d0
	move.w	d0,(a0)+
	swap	d0
	move.w	#$122,(a0)+	
	move.w	d0,(a0)+
	add.l	#104,d0
	move.w	#$124,(a0)+		* sprite 1
	swap	d0
	move.w	d0,(a0)+
	swap	d0
	move.w	#$126,(a0)+	
	move.w	d0,(a0)+
	add.l	#104,d0
	move.w	#$128,(a0)+		* sprite 2
	swap	d0
	move.w	d0,(a0)+
	swap	d0
	move.w	#$12a,(a0)+	
	move.w	d0,(a0)+
	add.l	#44,d0
	move.w	#$12c,(a0)+		* sprite 3
	swap	d0
	move.w	d0,(a0)+
	swap	d0
	move.w	#$12e,(a0)+	
	move.w	d0,(a0)+
	add.l	#44,d0
	move.w	#$130,(a0)+		* sprite 4
	swap	d0
	move.w	d0,(a0)+
	swap	d0
	move.w	#$132,(a0)+	
	move.w	d0,(a0)+
	add.l	#44,d0
	move.l	spraddr,d1
	add.l	#116,d1
	move.w	#$134,(a0)+		* sprite 5
	swap	d1
	move.w	d1,(a0)+
	swap	d1
	move.w	#$136,(a0)+	
	move.w	d1,(a0)+
	move.w	#$138,(a0)+		* sprite 6
	swap	d0
	move.w	d0,(a0)+
	swap	d0
	move.w	#$13a,(a0)+	
	move.w	d0,(a0)+
	move.w	#$13c,(a0)+		* sprite 5
	swap	d1
	move.w	d1,(a0)+
	swap	d1
	move.w	#$13e,(a0)+	
	move.w	d1,(a0)+

	move.b	#120,d0
	move.l	#cop.data,a1
.loop2	move.b	(a1)+,(a0)+
	move.b	(a1)+,(a0)+
	subq.b	#1,d0
	bne	.loop2

	move.w	#$ffff,(a0)+	* end copperlist
	move.w	#$fffe,(a0)



	lea	$dff000,a5		* disable dma
.wait	move.b	6(a5),d6
	cmp.b	#$20,d6
	bne	.wait
	move.w	#$01a0,$96(a5)

	move.l	cop.start,$80(a5)	* start copperlist
	clr.w	$88(a5)

	move.l	#coltable,a1
	jsr	copycols

	move.w	#$2c81,$8e(a5)	* diwstart
	move.w	#$2ca1,$90(a5)	* diwstop
	move.w	#$38,$92(a5)	* ddfstart
	move.w	#$d0,$94(a5)	* ddfstop
	move.w	#$5000,$100(a5)	* num of planes, bits 12-14
	clr.w	$102(a5)		* bplcon1
	clr.w	$104(a5)		* bplcon2
	clr.w	$108(a5)		* bpl1mod
	clr.w	$10a(a5)		* bpl2mod

	move.w	#$8380,$96(a5)	* start dma
	rts

* activate sprite dma (after waiting for vbg)
spron	lea	$dff000,a5
.loop	move.b	$6(a5),d6
	cmp.b	#$20,d6
	bne.s	.loop
	move.w	#$8020,$96(a5)
	rts

* deactivate sprite dma (after waiting for vbg)
sproff	lea	$dff000,a5
.loop	move.b	$6(a5),d6
	cmp.b	#$20,d6
	bne.s	.loop
	move.w	#$20,$96(a5)
	rts

* free bitmap memory, and turn off bitmap
freebitmem	lea	$dff000,a5
	move.w	#$8060,$96(a5)
	move.l	gfxpt,a6		* disown blitter
	jsr	-462(a6)
	lea	$dff000,a5
	move.l	4,a6
	move.l	#gfxname,a1
	clr.l	d0
	jsr	-552(a6)
	move.l	d0,a4
	move.l	38(a4),$80(a5)
	clr.w	$88(a5)

	move.l	bit.start,a1
	move.l	#51200,d0		* amount to free
	jsr	-210(a6)
	move.l	cop.start,a1
	move.l	#400,d0
	jsr	-210(a6)
	move.l	gfxpt,a1		* close gfx library
	jsr	-414(a6)
	rts

* variable list

Title	incbin df0:Title.dat2
Sampledata	incbin df0:Sample.data

	even


You1	dc.w $e784,$ff00
	dc.w %0000011100001110,%0000010100001010
	dc.w %0000001000000100,%0000010100001010
	dc.w %0000010100001010,%0000011100001110
	dc.w %0000010100001010,%0000011100001110
	dc.w %0000010100001010,%0000011100001110
	dc.w %0000010100001010,%0000011100001110
	dc.w %0000001000000100,%0000010100001010
	dc.w %0000001010010100,%0000010110011010
	dc.w %0000011110011110,%0000010101101010
	dc.w %0000011110011110,%0000110101101011
	dc.w %0001011110011110,%0001110101101011
	dc.w %0000101001100101,%0001110111111011
	dc.w %0010101000000101,%0011110110011011
	dc.w %0001101001100101,%0011110110011011
	dc.w %0101101010010101,%0111110110011011
	dc.w %0011101000000101,%0111110100001011
	dc.w %1011101010010101,%1111110110011011
	dc.w %0111101010010101,%1011110101101011
	dc.w %0110001011110100,%1001110110011011
	dc.w %1001001000000100,%1111110100001011
	dc.w %0000101010010101,%0000110110011011
	dc.w %0000101010010101,%0000110110011011
	dc.w %0001001001100100,%0001110111111011
	dc.w %0001011101101110,%0001100011110001
	dc.w %0000000000000000,%0000000000000000
You2	dc.w $e78c,$ff00
	dc.w %0000000000000000,%0000000000000000
	dc.w %0000000000000000,%0000000000000000
	dc.w %0000000000000000,%0000000000000000
	dc.w %0000000000000000,%0000000000000000
	dc.w %0000000000000000,%0000000000000000
	dc.w %0000000000000000,%0000000000000000
	dc.w %0000000000000000,%0000000000000000
	dc.w %0000000000000000,%0000000000000000
	dc.w %0000000000000000,%0000000000000000
	dc.w %0000000000000000,%0000000000000000
	dc.w %1000000000000000,%1000000000000000
	dc.w %0000000000000000,%1000000000000000
	dc.w %0100000000000000,%1100000000000000
	dc.w %1000000000000000,%1100000000000000
	dc.w %1010000000000000,%1110000000000000
	dc.w %1100000000000000,%1110000000000000
	dc.w %1101000000000000,%1111000000000000
	dc.w %1110000000000000,%1101000000000000
	dc.w %0110000000000000,%1001000000000000
	dc.w %1001000000000000,%1111000000000000
	dc.w %0000000000000000,%0000000000000000
	dc.w %0000000000000000,%0000000000000000
	dc.w %1000000000000000,%1000000000000000
	dc.w %1000000000000000,%1000000000000000
	dc.w %0000000000000000,%0000000000000000
	dc.w $0000,$0900
	dc.w %0000000000000000,%0000001000000100
	dc.w %0000001000000100,%0000010100001010
	dc.w %0000001000000100,%0000010100001010
	dc.w %0000001000000100,%0000010100001010
	dc.w %0000001000000100,%0000010100001010
	dc.w %0000001000000100,%0000010100001010
	dc.w %0000001000000100,%0000010100001010
	dc.w %0000001000000100,%0000010100001010
	dc.w %0000000000000000,%0000001000000100
	dc.w %0000000000000000,%0000000000000000
	dc.w $0000,$0900
	dc.w %0000000000000000,%0000001000000100
	dc.w %0000001000000100,%0000010100001010
	dc.w %0000001000000100,%0000010100001010
	dc.w %0000001000000100,%0000010100001010
	dc.w %0000001000000100,%0000010100001010
	dc.w %0000001000000100,%0000010100001010
	dc.w %0000001000000100,%0000010100001010
	dc.w %0000001000000100,%0000010100001010
	dc.w %0000000000000000,%0000001000000100
	dc.w %0000000000000000,%0000000000000000
Bomb	dc.w $0000,$0900
	dc.w %0000000000000000,%0000000001100000
	dc.w %0000000001100000,%0000000010010000
	dc.w %0000000001100000,%0000000010010000
	dc.w %0000000001100000,%0000000010010000
	dc.w %0000000001100000,%0000000010010000
	dc.w %0000000001100000,%0000000010010000
	dc.w %0000000001100000,%0000000010010000
	dc.w %0000000001100000,%0000000010010000
	dc.w %0000000000000000,%0000000001100000
	dc.w %0000000000000000,%0000000000000000
Ufo	dc.w $2c00,$3c00
	dc.w %1100000000000011,%1100000000000011
	dc.w %1111001111001111,%1011001111001101
	dc.w %0110111001110110,%0101111111111010
	dc.w %0101101111011010,%0111110000111110
	dc.w %0011010000101100,%0011101111011100
	dc.w %0010101111010100,%0011011111101100
	dc.w %0111011011101110,%0110111000110110
	dc.w %0101010001101010,%0110110000110110
	dc.w %0101010000101010,%0110110000110110
	dc.w %0111011001101110,%0110111001110110
	dc.w %0010101111010100,%0011011111101100
	dc.w %0011010000101100,%0011101111011100
	dc.w %0101101111011010,%0111110000111110
	dc.w %0110111001110110,%0101111111111010
	dc.w %1111001111001111,%1011001111001101
	dc.w %1100000000000011,%1100000000000011
Null	dc.w %0000000000000000,%0000000000000000

	ds.b 60

gfxpt	dc.l 0
score	dc.l 0
kouval	dc.l 0
bit.start	dc.l 0
cop.start	dc.l 0
gfxaddr	dc.l 0
kount	dc.l 0
sampaddr	dc.l 0
spraddr	dc.l 0
yourbyte	dc.l 0
mis1byte	dc.l 0
mis2byte	dc.l 0

name1	dc.l $5a414b20,0,0,010000
name2	dc.l $53414d20,0,0,007000
name3	dc.l $4a494d20,0,0,005000
name4	dc.l $53494420,0,0,003000
name5	dc.l $424f4220,0,0,001000

pointer	dc.w 0
wally	dc.w 0
ufocount	dc.w 0
count0	dc.w 0
count1	dc.w 0
count2	dc.w 0
pointx	dc.w 0
bomx	dc.w 0
bomy	dc.w 0
misx	dc.w 0
misy	dc.w 0
misx2	dc.w 0
misy2	dc.w 0
ufox	dc.w 0
ufodelay	dc.w 0
pointy	dc.w 0
colreg	dc.b 0
colreg2	dc.b 0
coltable	dc.w $0000,$0bcc,$0899,$0566,$0233,$0344,$0455,$0566
	dc.w $0677,$0788,$0899,$0899,$0899,$0899,$0899,$0899
	dc.w $0400,$0800,$0c00,$0f00,$0f40,$0f80,$0fc0,$0ff0
	dc.w $0000,$0002,$0004,$0006,$0008,$000a,$000c,$000e

coltable2	dc.w $0000,$0fff,$0f00,$0f80,$0ff0,$00f0,$035d,$0808
	dc.w $0bbb,$0888,$0555,$0000,$0999,$0777,$0000,$0000	
	dc.w $0fdf,$0000,$0000,$0000,$0000,$0def,$027f,$0000	
	dc.w $0000,$0fdf,$0808,$0000,$0000,$0fff,$0a5a,$0808	

coltable3	dc.w $0000,$0788,$0566,$0344,$0233,$0344,$0455,$0566
	dc.w $0677,$0788,$0899,$0899,$0899,$0899,$0899,$0899
	dc.w $0fdf,$0fff,$0c95,$0975,$0f40,$0f80,$0fc0,$0ff0
	dc.w $0000,$0002,$0004,$0006,$0008,$000a,$000c,$000e


palette1	dc.w $0000,$0fff,$0f00,$0f80,$0ff0,$00f0,$035d,$0808
	dc.w $0bbb,$0888,$0555,$0000,$0999,$0777,$0fdf,$0000	
palette2	dc.w $0000,$099b,$0f00,$0f80,$0ff0,$00f0,$035d,$0808
	dc.w $0aac,$0779,$0446,$0000,$088a,$0668,$0fdf,$0000	
palette3	dc.w $0000,$0ffe,$0f00,$0f80,$0ff0,$00f0,$035d,$0808
	dc.w $0cca,$0997,$0664,$0000,$0aa8,$0886,$0fdf,$0000	
palette4	dc.w $0000,$0fff,$0f00,$0f80,$0ff0,$00f0,$035d,$0808
	dc.w $0dbd,$0a8a,$0757,$0000,$0b9b,$0979,$0fdf,$0000	
palette5	dc.w $0000,$0fff,$0f00,$0f80,$0ff0,$00f0,$035d,$0808
	dc.w $00bf,$008c,$0059,$0000,$009d,$007b,$0fdf,$0000	
palette6	dc.w $0000,$0fff,$0aaa,$0ccc,$0888,$00f0,$035d,$0808
	dc.w $0bf0,$08c0,$0590,$0000,$09d0,$07b0,$0fdf,$0000	
palette7	dc.w $0000,$0fff,$00af,$005a,$0ff6,$0ee0,$0fa5,$0f80
	dc.w $0f75,$0f00,$08f8,$00b0,$0f8f,$0909,$0fdf,$0000	
palette8	dc.w $0000,$0fff,$0f00,$0f80,$0ff0,$00f0,$035d,$0808
	dc.w $0fb0,$0c80,$0950,$0000,$0d90,$0d70,$0fdf,$0000	

ufoflag	dc.b 0
quitflag	dc.b 0
misflag	dc.b 0
miscount	dc.b 0
level	dc.b 0
scrl	dc.b 0
yourcount	dc.b 0
deadflag	dc.b 0
bomflag	dc.b 0
score1	dc.b 0
score2	dc.b 0
score3	dc.b 0
score4	dc.b 0
score5	dc.b 0
score6	dc.b 0
yourdir	dc.b 0
rancount	dc.b 0

leveldata	dc.b 0

	dc.b 6
	dc.b 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30
	dc.b 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,0

	dc.b 3
	dc.b 29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29
	dc.b 29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,0

	dc.b 7
	dc.b 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10
	dc.b 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	dc.b 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0

	dc.b 3
	dc.b 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3
	dc.b 3,11,3,11,3,11,3,3,3,3,3,3,3,3,11,3,11,3,11,3
	dc.b 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,0

	dc.b 5
	dc.b 12,19,13,20,12,12,19,13,20,12,12,19,13,20,12,12,19,13,20,12
	dc.b 12,14,12,17,13,13,15,12,17,13,13,15,12,17,13,13,15,12,14,12
	dc.b 12,17,13,21,12,12,18,13,21,12,12,18,13,21,12,12,18,13,15,12
	dc.b 12,18,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,21,12,0

	dc.b 2
	dc.b 27,13,26,12,27,13,26,12,27,13,13,26,12,27,13,26,12,27,13,26
	dc.b 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12
	dc.b 12,12,27,13,26,12,27,13,13,13,13,13,13,26,12,27,13,26,12,12
	dc.b 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12
	dc.b 27,13,26,12,27,13,26,12,27,13,13,26,12,27,13,26,12,27,13,26,0
		
	dc.b 4
	dc.b 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
	dc.b 3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2
	dc.b 2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3,2,3
	dc.b 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0

	dc.b 1
	dc.b 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
	dc.b 20,19,20,19,20,19,20,19,20,19,20,19,20,19,20,19,20,19,20,19
	dc.b 18,21,18,21,18,21,18,21,18,21,18,21,18,21,18,21,18,21,18,21
	dc.b 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0

	dc.b 2
	dc.b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
	dc.b 1,23,24,1,23,24,1,1,23,24,23,24,1,1,23,24,1,23,24,1
	dc.b 1,26,27,1,26,27,1,1,26,27,26,27,1,1,26,27,1,26,27,1
	dc.b 1,26,27,1,26,27,1,1,25,25,25,25,1,1,26,27,1,26,27,1
	dc.b 1,25,25,1,25,25,1,1,1,1,1,1,1,1,25,25,1,25,25,1,0

	dc.b 2
	dc.b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
	dc.b 1,23,24,23,24,23,24,23,24,23,24,23,24,23,24,23,24,23,24,1
	dc.b 1,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,1
	dc.b 1,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,1
	dc.b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0

	dc.b 3
	dc.b 12,19,13,20,12,19,13,13,13,13,13,13,13,13,20,12,19,13,20,12
	dc.b 12,14,12,14,12,14,12,12,12,12,12,12,12,12,14,12,14,12,14,12
	dc.b 12,18,13,16,13,16,13,13,13,13,13,13,13,13,16,13,16,13,21,12
	dc.b 12,12,12,14,12,14,12,12,12,12,12,12,12,12,14,12,14,12,12,12
	dc.b 12,12,12,18,13,16,13,13,13,13,13,13,13,13,16,13,21,12,12,12
	dc.b 12,12,12,12,12,14,12,12,12,12,12,12,12,12,14,12,12,12,12,12
	dc.b 12,12,12,12,12,18,13,13,13,13,13,13,13,13,21,12,12,12,12,12,0

	dc.b 1
	dc.b 3,12,3,12,3,12,3,12,3,12,3,12,3,12,3,12,3,12,3,12
	dc.b 12,3,12,3,12,3,12,3,12,3,12,3,12,3,12,3,12,3,12,3
	dc.b 3,12,3,12,3,12,3,12,3,12,3,12,3,12,3,12,3,12,3,12
	dc.b 12,3,12,3,12,3,12,3,12,3,12,3,12,3,12,3,12,3,12,3
	dc.b 3,12,3,12,3,12,3,12,3,12,3,12,3,12,3,12,3,12,3,12,0	

	dc.b 4
	dc.b 12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12	
	dc.b 19,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,20
	dc.b 14,19,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,20,14
	dc.b 14,14,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,14,14
	dc.b 14,18,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,21,14	
	dc.b 18,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,21,0

	dc.b 1
	dc.b 22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22
	dc.b 22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22
	dc.b 22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22
	dc.b 22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22
	dc.b 22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,0

	dc.b 2
	dc.b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
	dc.b 1,23,24,1,1,1,23,24,1,1,1,1,23,24,1,1,1,23,24,1
	dc.b 1,26,27,1,1,1,26,27,1,23,24,1,26,27,1,1,1,26,27,1
	dc.b 1,26,27,1,1,1,26,27,1,25,25,1,26,27,1,1,1,26,27,1
	dc.b 1,25,25,1,1,1,25,25,1,1,1,1,25,25,1,1,1,25,25,1
	dc.b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0	

	dc.b 8
	dc.b 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30
	dc.b 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30
	dc.b 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30
	dc.b 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30
	dc.b 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30
	dc.b 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30
	dc.b 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,0

	dc.b 7
	dc.b 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10
	dc.b 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	dc.b 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
	dc.b 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10
	dc.b 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	dc.b 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0

	dc.b 4
	dc.b 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
	dc.b 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3
	dc.b 3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,3
	dc.b 3,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3,4,3
	dc.b 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3
	dc.b 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0

	dc.b 6
	dc.b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
	dc.b 1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1
	dc.b 1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1
	dc.b 1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1
	dc.b 1,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,1
	dc.b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
	dc.b 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,0

	dc.b 3
	dc.b 19,20,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,19,20
	dc.b 14,17,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15,14
	dc.b 14,17,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15,14
	dc.b 14,14,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,14,14
	dc.b 14,14,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,14,14
	dc.b 14,14,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,14,14
	dc.b 14,14,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,14,14
	dc.b 14,18,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,21,14
	dc.b 18,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,21,0

	dc.b 2
	dc.b 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
	dc.b 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
	dc.b 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
	dc.b 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
	dc.b 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
	dc.b 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
	dc.b 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,0

	dc.b 1
	dc.b 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6
	dc.b 6,11,6,11,6,11,6,11,6,11,11,6,11,6,11,6,11,6,11,6
	dc.b 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6
	dc.b 6,11,6,11,6,11,6,11,6,11,11,6,11,6,11,6,11,6,11,6
	dc.b 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6
	dc.b 6,11,6,11,6,11,6,11,6,11,11,6,11,6,11,6,11,6,11,6
	dc.b 6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,6,0

	dc.b 6
	dc.b 3,12,3,12,3,12,3,12,3,12,3,12,3,12,3,12,3,12,3,12
	dc.b 12,2,12,3,12,3,12,3,12,2,12,3,12,3,12,3,12,2,12,3
	dc.b 3,12,3,12,3,12,3,12,3,12,3,12,3,12,3,12,3,12,3,12
	dc.b 12,3,12,3,12,3,12,3,12,3,12,3,12,3,12,3,12,3,12,3
	dc.b 3,12,3,12,3,12,3,12,3,12,3,12,3,12,3,12,3,12,3,12
	dc.b 12,3,12,3,12,3,12,3,12,3,12,3,12,3,12,3,12,3,12,3
	dc.b 3,12,2,12,3,12,3,12,3,12,2,12,3,12,3,12,3,12,2,12
	dc.b 12,3,12,3,12,3,12,3,12,3,12,3,12,3,12,3,12,3,12,3,0

	dc.b 8
	dc.b 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27
	dc.b 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27
	dc.b 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27
	dc.b 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27
	dc.b 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27
	dc.b 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27
	dc.b 27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27
	dc.b 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,0

	dc.b 2
	dc.b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
	dc.b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
	dc.b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
	dc.b 1,1,23,24,1,1,23,24,1,1,1,1,23,24,1,1,23,24,1,1
	dc.b 1,1,25,25,1,1,25,25,1,1,1,1,25,25,1,1,25,25,1,1
	dc.b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
	dc.b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1
	dc.b 1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,0

	dc.b 3
	dc.b 19,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,20
	dc.b 17,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15
	dc.b 17,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15
	dc.b 17,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15
	dc.b 17,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15
	dc.b 17,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15
	dc.b 17,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15
	dc.b 17,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,15
	dc.b 18,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,21,0

	dc.b 6
	dc.b 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
	dc.b 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3
	dc.b 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3
	dc.b 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3
	dc.b 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3
	dc.b 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3
	dc.b 3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3,3
	dc.b 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
	dc.b 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,0

	dc.b 1
	dc.b 27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26
	dc.b 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30  
	dc.b 27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26
	dc.b 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30  
	dc.b 27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26
	dc.b 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30  
	dc.b 27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26,27,26
	dc.b 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30
	dc.b 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,0
	
	dc.b 7 
	dc.b 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10
	dc.b 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	dc.b 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
	dc.b 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10
	dc.b 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	dc.b 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8
	dc.b 10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10
	dc.b 9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9,9
	dc.b 8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,8,0
	
	dc.b 4
	dc.b 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25
	dc.b 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25
	dc.b 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25
	dc.b 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25
	dc.b 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25
	dc.b 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25
	dc.b 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25
	dc.b 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25
	dc.b 25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,0

	dc.b 6
	dc.b 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13
	dc.b 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13
	dc.b 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13
	dc.b 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13
	dc.b 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13
	dc.b 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13
	dc.b 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13
	dc.b 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13
	dc.b 13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13
	dc.b 28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,0

	dc.b 1
	dc.b 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
	dc.b 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
	dc.b 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
	dc.b 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
	dc.b 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
	dc.b 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
	dc.b 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
	dc.b 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
	dc.b 7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7,7
	dc.b 30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,30,0

	dc.b 1,12,0,1,12,0

Scnums	dc.b 62,126,230,198,198,198,254,254
	dc.b 8,24,24,24,24,24,24,24
	dc.b 124,254,14,28,56,112,254,254
	dc.b 124,254,6,62,62,6,254,254
	dc.b 70,198,198,254,254,6,6,6
	dc.b 126,254,192,252,254,6,254,252
	dc.b 64,192,192,252,254,198,254,126
	dc.b 126,254,6,6,6,6,6,6
	dc.b 124,254,198,254,254,198,254,124
	dc.b 126,254,198,254,254,6,6,6

finished	dc.b "CONGRATULATIONS",0
blank	dc.b "               ",0
gfxname	dc.b "graphics.library",0
message	dc.b " SPECTRUM WAS WRITTEN BY MARK SHEEKY> OTHERWISE KNOWN "
	dc.b "AS = SCORPIUS SOFTWARE =< "
	dc.b "SPECTRUM IS COPYRIGHT ;1991 BY MARK "
	dc.b "SHEEKY< SEND MONEY> SOURCE> "
	dc.b "DEMOS> FANMAIL> OR ANYTHING ELSE TO <<< MARK "
	dc.b "SHEEKY <<< 29 TYNEDALE AVENUE <<< CREWE <<< "
	dc.b "CHESHIRE <<< ENGLAND <<< CW2 7NY< "
	dc.b "THE INSTRUCTIONS <<< "
	dc.b "SHOOT THROUGH THE WALL UNTIL A GAP LARGE ENOUGH FOR "
	dc.b "YOUR SHIP IS CREATED> THEN ACTIVATE THE THRUSTERS BY PUSHING "
	dc.b "UP ON THE JOYSTICK< P WILL PAUSE THE GAME AND ESCAPE WILL ABORT IT< "
	dc.b "PRESS ESCAPE NOW TO QUIT THE PROGRAM< THERE ARE 19 LEVELS IN TOTAL> THAT "
	dc.b "GET HARDER AS YOU PROGRESS< THERE ARE ALTERNATIVE SCREENS FOR EACH LEVEL> SO "
	dc.b "EVERY GAME IS DIFFERENT< "
	dc.b "I AM ALSO ON THE PD CIRCUIT IN THE MUSIC DEPARTMENT> "
	dc.b "CDA HAS TONS OF DEMOS AND STUFF OUT AT THE MOMENT< COMPARED TO SOME GROUPS "
	dc.b "IT IS NOT THAT GOOD> BUT EVERYTHING IS TUNEFUL> AND I PERSONALLY LIKE THEM A LOT< "
	dc.b "CDA STANDS FOR COMPACT DIGITAL AUDIO< THE NAME CAME ABOUT BECAUSE ON CD PLAYERS> THE "
	dc.b "COMPACT DISC LOGO HAS IT WRITTEN ON @@ "
	dc.b "=========================",0
letter	dc.b 0

	even

Cop.data	dc.w $1001,$ff00,$0180,$0faf,$3801,$ff00,$0180,$0eaf
	dc.w $4001,$ff00,$0180,$0daf,$4801,$ff00,$0180,$0caf
	dc.w $5001,$ff00,$0180,$0baf,$5801,$ff00,$0180,$0aaf
	dc.w $6001,$ff00,$0180,$09af,$6801,$ff00,$0180,$08af
	dc.w $7001,$ff00,$0180,$07af,$7801,$ff00,$0180,$06af
	dc.w $8001,$ff00,$0180,$05af,$8801,$ff00,$0180,$04af

	dc.w $9001,$ff00,$0180,$03af,$9801,$ff00,$0180,$029e
	dc.w $a001,$ff00,$0180,$018d,$a801,$ff00,$0180,$007c
	dc.w $b001,$ff00,$0180,$006b,$b801,$ff00,$0180,$005a
	dc.w $c001,$ff00,$0180,$0049,$c801,$ff00,$0180,$0038
	dc.w $d001,$ff00,$0180,$0027,$d801,$ff00,$0180,$0016
	dc.w $e001,$ff00,$0180,$0005,$e801,$ff00,$0180,$0004
	dc.w $f001,$ff00,$0180,$0003,$f801,$ff00,$0180,$0002
	

* Bit-plane-wise data for building blocks that create levels
Gfxdata	dc.b 0,0,128,0,192,0,224,0,255,248,224,4,192,2,128,1
	dc.b 0,0,0,128,0,192,0,224,248,255,4,224,2,192,1,128
	dc.b 0,0,0,0,0,0,0,0,0,0,31,248,63,252,127,254
	dc.b 0,0,0,0,0,0,0,0,0,0,248,31,252,63,254,127
	dc.b 128,1,64,3,32,7,31,255,31,255,32,7,64,3,128,1
	dc.b 1,128,3,64,7,32,255,31,255,31,7,32,3,64,1,128
	dc.b 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255
	dc.b 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255
Bars	dc.b 128,0,64,0,127,252,127,252,127,252,115,204,115,204,127,252
	dc.b 115,204,127,252,115,204,115,204,127,252,127,252,127,254,0,1
	dc.b 0,0,128,0,128,0,158,120,158,120,158,120,158,120,146,72
	dc.b 146,72,158,120,158,120,158,120,158,120,128,0,128,0,255,254
	dc.b 0,0,63,254,64,2,64,2,76,50,76,50,76,50,76,50
	dc.b 76,50,64,2,64,2,64,2,64,2,64,2,127,252,0,0
	dc.b 255,255,255,255,255,255,255,255,243,207,243,207,243,207,243,207
	dc.b 243,207,243,207,243,207,243,207,255,255,255,255,255,255,255,255
Tile1	dc.b 128,0,64,0,127,252,127,252,127,252,127,252,127,252,127,252
	dc.b 127,252,127,252,127,252,127,252,127,252,127,252,127,254,0,1
	dc.b 0,0,128,0,128,0,128,0,128,0,128,0,128,0,128,0
	dc.b 128,0,128,0,128,0,128,0,128,0,128,0,128,0,255,254
	dc.b 0,0,63,254,64,2,64,2,64,2,64,2,64,2,64,2
	dc.b 64,2,64,2,64,2,64,2,64,2,64,2,127,252,0,0
	dc.b 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255
	dc.b 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255
Cross	dc.b 255,255,130,65,130,65,147,201,130,65,131,193,254,127,149,169
	dc.b 149,169,254,127,131,193,130,65,147,201,130,65,130,65,255,255
	dc.b 255,255,131,193,131,193,131,193,130,65,130,65,255,255,243,207
	dc.b 243,207,255,255,130,65,130,65,131,193,131,193,131,193,255,255
	dc.b 0,0,124,62,68,34,68,34,69,162,125,190,1,128,15,240
	dc.b 15,240,1,128,125,190,69,162,68,34,68,34,124,62,0,0
	dc.b 255,255,254,127,254,127,238,119,254,127,254,127,254,127,128,1
	dc.b 128,1,254,127,254,127,254,127,238,119,254,127,254,127,255,255
Brick1	dc.b 255,255,255,255,1,128,255,255,1,128,255,255,1,128,255,255
	dc.b 255,255,255,255,128,1,255,255,128,1,255,255,128,1,255,255
	dc.b 255,255,255,255,255,255,1,128,1,128,255,255,255,255,255,255
	dc.b 255,255,255,255,255,255,128,1,128,1,255,255,255,255,255,255
	dc.b 0,0,254,127,254,127,254,127,254,127,0,0,0,0,0,0
	dc.b 0,0,127,254,127,254,127,254,127,254,0,0,0,0,0,0
	dc.b 255,255,1,128,1,128,1,128,1,128,1,128,1,128,255,255
	dc.b 255,255,128,1,128,1,128,1,128,1,128,1,128,1,255,255
Slab	dc.b 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255
	dc.b 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255
	dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
	dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
	dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
	dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
	dc.b 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255
	dc.b 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255
Brick2	dc.b 0,128,0,64,252,127,252,127,252,127,252,127,254,127,1,0
	dc.b 128,0,64,0,127,252,127,252,127,252,127,252,127,254,0,1
	dc.b 0,0,0,128,0,128,0,128,0,128,0,128,0,128,254,255
	dc.b 0,0,128,0,128,0,128,0,128,0,128,0,128,0,255,254
	dc.b 0,0,254,63,2,64,2,64,2,64,2,64,252,127,0,0
	dc.b 0,0,63,254,64,2,64,2,64,2,64,2,127,252,0,0
	dc.b 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255
	dc.b 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255
Tubeor	dc.b 255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255
	dc.b 255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255
	dc.b 255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255
	dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
	dc.b 255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255
	dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
	dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
	dc.b 255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255
Tubegy	dc.b 255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255
	dc.b 255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255
	dc.b 255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255
	dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
	dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
	dc.b 255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255
	dc.b 255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255
	dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Tubepb	dc.b 255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255
	dc.b 255,255,0,0,255,255,0,0,255,255,255,255,255,255,255,255
	dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
	dc.b 255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255
	dc.b 255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255
	dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
	dc.b 255,255,255,255,0,0,255,255,255,255,255,255,255,255,255,255
	dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Diag	dc.b 255,255,143,195,159,135,191,15,254,31,252,63,248,127,240,253
	dc.b 225,249,195,241,135,225,143,195,159,135,191,15,254,31,255,255
	dc.b 255,255,255,195,255,133,255,9,254,17,252,33,248,67,240,135
	dc.b 225,15,194,31,132,63,136,127,144,255,161,255,195,255,255,255
	dc.b 0,0,0,60,0,122,0,246,1,238,3,222,7,188,15,122
	dc.b 30,246,61,238,123,222,119,188,111,122,94,246,61,238,0,0
	dc.b 255,255,136,67,144,133,161,9,194,17,132,33,136,67,144,133
	dc.b 161,9,194,17,132,33,136,67,144,133,161,9,194,17,255,255
	ds.b 128
Piperl	dc.b 0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255
	dc.b 255,255,0,0,0,0,255,255,255,255,0,0,0,0,0,0
	dc.b 0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0
	dc.b 0,0,0,0,0,0,0,0,0,0,255,255,0,0,0,0
	dc.b 0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0
	dc.b 0,0,0,0,255,255,0,0,255,255,0,0,0,0,0,0
	dc.b 0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0
	dc.b 0,0,255,255,255,255,255,255,255,255,255,255,0,0,0,0
Pipeud	dc.b 25,152,25,152,25,152,25,152,25,152,25,152,25,152,25,152
	dc.b 25,152,25,152,25,152,25,152,25,152,25,152,25,152,25,152
	dc.b 32,4,32,4,32,4,32,4,32,4,32,4,32,4,32,4
	dc.b 32,4,32,4,32,4,32,4,32,4,32,4,32,4,32,4
	dc.b 20,40,20,40,20,40,20,40,20,40,20,40,20,40,20,40
	dc.b 20,40,20,40,20,40,20,40,20,40,20,40,20,40,20,40
	dc.b 62,124,62,124,62,124,62,124,62,124,62,124,62,124,62,124
	dc.b 62,124,62,124,62,124,62,124,62,124,62,124,62,124,62,124
T1	dc.b 25,152,25,152,25,152,249,152,249,152,1,152,1,152,255,152
	dc.b 255,152,1,152,1,152,249,152,249,152,25,152,25,152,25,152
	dc.b 32,4,32,4,224,4,0,4,0,4,0,4,0,4,0,4
	dc.b 0,4,0,4,0,4,0,4,0,4,224,4,32,4,32,4
	dc.b 20,40,20,40,20,40,244,40,4,40,252,40,0,40,0,40
	dc.b 0,40,0,40,252,40,4,40,244,40,20,40,20,40,20,40
	dc.b 62,124,62,124,254,124,254,124,254,124,254,124,254,124,0,124
	dc.b 0,124,254,124,254,124,254,124,254,124,254,124,62,124,62,124
X1	dc.b 25,152,25,152,25,152,249,159,249,159,1,128,1,128,255,255
	dc.b 255,255,1,128,1,128,249,159,249,159,25,152,25,152,25,152
	dc.b 32,4,32,4,224,7,0,0,0,0,0,0,0,0,0,0
	dc.b 0,0,0,0,0,0,0,0,0,0,224,7,32,4,32,4
	dc.b 20,40,20,40,20,40,244,47,4,32,252,63,0,0,0,0
	dc.b 0,0,0,0,252,63,4,32,244,47,20,40,20,40,20,40
	dc.b 62,124,62,124,254,127,254,127,254,127,254,127,254,127,0,0
	dc.b 0,0,254,127,254,127,254,127,254,127,254,127,62,124,62,124
T2	dc.b 25,152,25,152,25,152,25,159,25,159,25,128,25,128,25,255
	dc.b 25,255,25,128,25,128,25,159,25,159,25,152,25,152,25,152
	dc.b 32,4,32,4,32,7,32,0,32,0,32,0,32,0,32,0
	dc.b 32,0,32,0,32,0,32,0,32,0,32,7,32,4,32,4
	dc.b 20,40,20,40,20,40,20,47,20,32,20,63,20,0,20,0
	dc.b 20,0,20,0,20,63,20,32,20,47,20,40,20,40,20,40
	dc.b 62,124,62,124,62,127,62,127,62,127,62,127,62,127,62,0
	dc.b 62,0,62,127,62,127,62,127,62,127,62,127,62,124,62,124
Pipeur	dc.b 25,152,25,152,25,152,25,159,25,159,25,128,25,128,25,255
	dc.b 25,255,24,0,24,0,31,255,31,255,0,0,0,0,0,0
	dc.b 32,4,32,4,32,7,32,0,32,0,32,0,32,0,32,0
	dc.b 32,0,32,0,32,0,32,0,32,0,63,255,0,0,0,0
	dc.b 20,40,20,40,20,40,20,47,20,32,20,63,20,0,20,0
	dc.b 20,0,20,0,23,255,16,0,31,255,0,0,0,0,0,0
	dc.b 62,124,62,124,62,127,62,127,62,127,62,127,62,127,62,0
	dc.b 62,0,63,255,63,255,63,255,63,255,63,255,0,0,0,0
Pipedr	dc.b 0,0,0,0,0,0,31,255,31,255,24,0,24,0,25,255
	dc.b 25,255,25,128,25,128,25,159,25,159,25,152,25,152,25,152
	dc.b 0,0,0,0,63,255,32,0,32,0,32,0,32,0,32,0
	dc.b 32,0,32,0,32,0,32,0,32,0,32,7,32,4,32,4
	dc.b 0,0,0,0,0,0,31,255,16,0,23,255,20,0,20,0
	dc.b 20,0,20,0,20,63,20,32,20,47,20,40,20,40,20,40
	dc.b 0,0,0,0,63,255,63,255,63,255,63,255,63,255,62,0
	dc.b 62,0,62,127,62,127,62,127,62,127,62,127,62,124,62,124
Pipedl	dc.b 0,0,0,0,0,0,255,248,255,248,0,24,0,24,255,152
	dc.b 255,152,1,152,1,152,249,152,249,152,25,152,25,152,25,152
	dc.b 0,0,0,0,255,252,0,4,0,4,0,4,0,4,0,4
	dc.b 0,4,0,4,0,4,0,4,0,4,224,4,32,4,32,4
	dc.b 0,0,0,0,0,0,255,248,0,8,255,232,0,40,0,40
	dc.b 0,40,0,40,252,40,4,40,244,40,20,40,20,40,20,40
	dc.b 0,0,0,0,255,252,255,252,255,252,255,252,255,252,0,124
	dc.b 0,124,254,124,254,124,254,124,254,124,254,124,62,124,62,124
Pipeul	dc.b 25,152,25,152,25,152,249,152,249,152,1,152,1,152,255,152
	dc.b 255,152,0,24,0,24,255,248,255,248,0,0,0,0,0,0
	dc.b 32,4,32,4,224,4,0,4,0,4,0,4,0,4,0,4
	dc.b 0,4,0,4,0,4,0,4,0,4,255,252,0,0,0,0
	dc.b 20,40,20,40,20,40,244,40,4,40,252,40,0,40,0,40
	dc.b 0,40,0,40,255,232,0,8,255,248,0,0,0,0,0,0
	dc.b 62,124,62,124,254,124,254,124,254,124,254,124,254,124,0,124
	dc.b 0,124,255,252,255,252,255,252,255,252,255,252,0,0,0,0
Brick	dc.b 255,195,191,153,63,236,63,244,63,248,31,255,135,255,192,3
	dc.b 195,223,153,191,236,63,244,63,248,63,255,31,255,135,3,192
	dc.b 192,3,192,1,192,0,192,0,192,0,224,0,248,1,255,255
	dc.b 3,224,1,192,0,192,0,192,0,192,0,224,1,248,255,255
	dc.b 0,36,0,66,0,1,32,3,48,7,24,0,7,128,0,0
	dc.b 36,0,66,0,1,0,3,32,7,48,0,24,128,7,0,0
	dc.b 255,255,255,231,255,243,255,251,255,255,255,255,255,255,255,255
	dc.b 255,255,231,255,243,255,251,255,255,255,255,255,255,255,255,255
Arch1	dc.b 0,0,128,0,192,15,224,127,255,127,227,127,199,191,143,191
	dc.b 31,223,63,223,127,232,127,224,255,192,255,128,255,0,128,0
	dc.b 0,0,0,0,0,0,0,0,0,128,28,128,56,64,112,64
	dc.b 0,32,0,32,0,23,0,24,0,32,0,64,0,128,127,128
	dc.b 128,1,64,3,32,0,31,143,31,127,32,127,67,63,135,63
	dc.b 15,159,31,159,63,200,191,192,127,192,127,128,127,0,128,0
	dc.b 255,255,255,255,255,240,255,143,255,255,252,255,251,127,247,127
	dc.b 239,191,223,191,191,223,191,216,127,224,127,192,127,128,255,128
Arch2	dc.b 0,0,0,0,240,0,252,0,254,248,254,196,253,226,253,241
	dc.b 251,248,251,252,23,254,7,254,3,255,1,255,0,255,0,1
	dc.b 0,0,0,0,0,0,0,0,1,0,1,56,2,28,2,14
	dc.b 4,0,4,0,232,0,24,0,4,0,2,0,1,0,1,254
	dc.b 128,1,192,3,0,7,243,255,252,255,252,7,249,195,249,225
	dc.b 243,240,243,248,7,252,7,253,3,254,1,254,0,254,0,1
	dc.b 255,255,255,255,15,255,243,255,253,255,253,63,251,223,251,239
	dc.b 247,247,247,251,239,253,31,253,7,254,3,254,1,254,1,255
Shelf	dc.b 255,255,127,255,127,255,127,255,127,255,127,255,127,255,0,1
	dc.b 0,0,0,128,0,192,0,224,248,255,4,224,2,192,1,128
	dc.b 0,0,128,0,128,0,128,0,128,0,128,0,128,0,255,254
	dc.b 0,0,0,0,0,0,0,0,0,0,248,31,252,63,254,127
	dc.b 128,0,127,254,127,254,127,254,127,254,127,254,127,254,0,1
	dc.b 1,128,3,64,7,32,255,31,255,31,7,32,3,64,1,128
	dc.b 128,0,255,254,255,254,255,254,255,254,255,254,255,254,255,255
	dc.b 255,255,255,255,255,255,255,255,255,255,255,255,255,255,255,255
Side1	dc.b 255,0,127,0,127,0,127,0,127,0,127,0,127,0,1,0
	dc.b 255,0,127,0,127,0,127,0,127,0,127,0,127,0,1,0
	dc.b 0,0,128,0,128,0,128,0,128,0,128,0,128,0,254,0
	dc.b 0,0,128,0,128,0,128,0,128,0,128,0,128,0,254,0
	dc.b 128,0,126,0,126,0,126,0,126,0,126,0,126,0,1,0
	dc.b 128,0,126,0,126,0,126,0,126,0,126,0,126,0,1,0
	dc.b 128,0,254,0,254,0,254,0,254,0,254,0,254,0,255,0
	dc.b 128,0,254,0,254,0,254,0,254,0,254,0,254,0,255,0
Side2	dc.b 0,255,0,127,0,127,0,127,0,127,0,127,0,127,0,1
	dc.b 0,255,0,127,0,127,0,127,0,127,0,127,0,127,0,1
	dc.b 0,0,0,128,0,128,0,128,0,128,0,128,0,128,0,254
	dc.b 0,0,0,128,0,128,0,128,0,128,0,128,0,128,0,254
	dc.b 0,128,0,126,0,126,0,126,0,126,0,126,0,126,0,1
	dc.b 0,128,0,126,0,126,0,126,0,126,0,126,0,126,0,1
	dc.b 0,128,0,254,0,254,0,254,0,254,0,254,0,254,0,255
	dc.b 0,128,0,254,0,254,0,254,0,254,0,254,0,254,0,255
Teeth	dc.b 60,60,60,60,60,56,28,56,14,112,14,112,6,96,6,96
	dc.b 1,192,1,128,3,0,6,32,12,48,16,8,32,4,0,0
	dc.b 116,46,116,46,116,46,116,44,58,92,28,88,28,184,14,176
	dc.b 13,112,4,224,1,192,3,128,6,96,8,16,0,0,0,0
	dc.b 130,65,130,65,130,65,2,66,65,130,33,132,33,4,17,8
	dc.b 18,8,10,16,4,32,8,80,17,136,38,100,88,26,224,7
	dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
	dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
Thatch	dc.b 57,156,57,156,57,156,57,156,156,57,156,57,156,57,156,57
	dc.b 57,156,57,156,57,156,57,156,156,57,156,57,156,57,156,57
	dc.b 192,3,192,3,192,3,192,3,3,192,3,192,3,192,3,192
	dc.b 192,3,192,3,192,3,192,3,3,192,3,192,3,192,3,192
	dc.b 52,44,52,44,52,44,52,44,44,52,44,52,44,52,44,52
	dc.b 52,44,52,44,52,44,52,44,44,52,44,52,44,52,44,52
	dc.b 254,127,254,127,254,127,254,127,127,254,127,254,127,254,127,254
	dc.b 254,127,254,127,254,127,254,127,127,254,127,254,127,254,127,254
Fade	dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
	dc.b 0,0,0,0,0,0,255,255,255,255,0,0,0,0,255,255
	dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
	dc.b 0,0,0,0,255,255,0,0,0,0,0,0,0,0,0,0
	dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
	dc.b 0,0,0,0,0,0,255,255,0,0,255,255,0,0,0,0
	dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
	dc.b 0,0,0,0,255,255,255,255,255,255,255,255,255,255,0,0


* 16x16, 2 plane font. 30 bytes per plane , (60 per letter)
Alphabet	dc.b 7,254,8,2,16,2,0,0,0,0,0,0,144,18,144,18
	dc.b 144,18,0,0,0,0,0,0,128,2,128,2,255,254
	dc.b 7,254,8,2,16,2,35,242,68,18,136,18,0,0,0,0
	dc.b 0,0,144,18,144,18,159,242,128,2,128,2,255,254
	dc.b 3,192,4,64,8,64,0,0,0,0,0,0,2,64,2,64
	dc.b 2,64,0,0,0,0,0,0,2,64,2,64,3,192
	dc.b 3,192,4,64,8,64,16,64,30,64,2,64,0,0,0,0
	dc.b 0,0,2,64,2,64,2,64,2,64,2,64,3,192
	dc.b 31,240,32,8,64,4,0,0,0,0,0,0,31,226,32,4
	dc.b 64,8,0,0,0,0,0,0,128,2,128,2,255,254
	dc.b 31,240,32,8,64,4,255,226,0,18,0,18,0,0,0,0
	dc.b 0,0,143,240,144,0,143,254,128,2,128,2,255,254
	dc.b 31,240,32,8,64,4,0,0,0,0,0,0,15,226,8,2
	dc.b 8,2,0,0,0,0,0,0,128,2,128,2,255,254
	dc.b 31,240,32,8,64,4,255,194,0,34,0,34,0,0,0,0
	dc.b 0,0,15,242,0,18,255,242,128,2,128,2,255,254
	dc.b 16,30,48,18,80,18,0,0,0,0,0,0,128,2,128,2
	dc.b 255,242,0,0,0,0,0,0,0,18,0,18,0,30
	dc.b 16,30,48,18,80,18,144,18,144,18,159,242,0,0,0,0
	dc.b 0,0,0,18,0,18,0,18,0,18,0,18,0,30
	dc.b 31,254,32,2,64,2,0,0,0,0,0,0,159,254,128,2
	dc.b 128,2,0,0,0,0,0,0,128,2,128,2,255,254
	dc.b 31,254,32,2,64,2,143,254,144,0,144,0,0,0,0,0
	dc.b 0,0,255,242,0,18,255,242,128,2,128,2,255,254
	dc.b 31,248,32,4,64,2,0,0,0,0,0,0,159,248,128,4
	dc.b 128,2,0,0,0,0,0,0,128,2,128,2,255,254
	dc.b 31,248,32,4,64,2,143,254,144,0,144,0,0,0,0,0
	dc.b 0,0,159,242,144,18,159,242,128,2,128,2,255,254
	dc.b 31,254,32,2,64,2,0,0,0,0,0,0,0,18,0,18
	dc.b 0,18,0,0,0,0,0,0,0,18,0,18,0,30
	dc.b 31,254,32,2,64,2,255,242,0,18,0,18,0,0,0,0
	dc.b 0,0,0,18,0,18,0,18,0,18,0,18,0,30
	dc.b 31,254,32,2,64,2,0,0,0,0,0,0,159,242,128,2
	dc.b 159,242,0,0,0,0,0,0,128,2,128,2,255,254
	dc.b 31,254,32,2,64,2,143,242,144,18,144,18,0,0,0,0
	dc.b 0,0,144,18,144,18,159,242,128,2,128,2,255,254
	dc.b 31,254,32,2,64,2,0,0,0,0,0,0,159,242,128,2
	dc.b 128,2,0,0,0,0,0,0,64,2,32,2,31,254
	dc.b 31,254,32,2,64,2,143,242,144,18,144,18,0,0,0,0
	dc.b 0,0,255,242,0,18,255,242,64,2,32,2,31,254
	dc.b 0,0,3,192,2,64,2,64,0,0,0,0,0,0,0,0
	dc.b 0,0,0,0,0,0,2,64,2,64,3,192,0,0
	dc.b 0,0,3,192,2,64,2,64,3,192,0,0,0,0,0,0
	dc.b 0,0,0,0,3,192,2,64,2,64,3,192,0,0
	dc.b 15,254,16,2,32,2,0,0,0,0,0,0,148,2,148,2
	dc.b 148,2,0,0,0,0,0,0,128,2,128,2,255,254
	dc.b 15,254,16,2,32,2,71,242,136,18,147,242,0,0,0,0
	dc.b 0,0,151,242,144,18,159,242,128,2,128,2,255,254
	dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
	dc.b 0,0,0,0,0,0,0,0,2,64,2,64,3,192
	dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
	dc.b 0,0,0,0,0,0,3,192,2,64,2,64,3,192
	dc.b 0,0,8,8,0,0,24,24,8,24,2,192,22,84,3,0
	dc.b 5,208,16,132,1,64,1,0,0,128,1,64,0,128
	dc.b 36,18,20,20,8,8,20,20,13,216,3,32,15,184,3,224
	dc.b 13,216,0,128,1,128,1,192,0,128,1,128,0,128
	dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
	dc.b 0,0,0,0,0,0,3,192,2,64,2,128,3,0
	dc.b 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0
	dc.b 0,0,0,0,0,0,0,0,2,64,2,128,3,0
	dc.b 31,254,32,2,64,2,0,0,0,0,0,0,1,2,2,2
	dc.b 2,126,0,0,0,0,0,0,2,64,2,64,3,192
	dc.b 31,254,32,2,64,2,255,242,0,18,0,242,0,0,0,0
	dc.b 0,0,3,192,0,0,3,192,2,64,2,64,3,192
	dc.b 0,64,0,192,1,64,0,0,0,0,0,0,2,64,2,64
	dc.b 2,64,0,0,0,0,0,0,2,64,2,64,3,192
	dc.b 0,64,0,192,1,64,2,64,2,64,2,64,0,0,0,0
	dc.b 0,0,3,192,0,0,3,192,2,64,2,64,3,192
	dc.b 15,254,16,2,32,2,0,0,0,0,0,0,159,242,128,2
	dc.b 128,2,0,0,0,0,0,0,144,18,144,18,240,30
	dc.b 15,254,16,2,32,2,71,242,136,18,144,18,0,0,0,0
	dc.b 0,0,159,242,144,18,144,18,144,18,144,18,240,30
	dc.b 15,240,16,8,32,4,0,0,0,0,0,0,159,226,128,4
	dc.b 159,226,0,0,0,0,0,0,128,4,128,8,255,240
	dc.b 15,240,16,8,32,4,71,226,136,18,144,18,0,0,0,0
	dc.b 0,0,144,18,144,18,159,226,128,4,128,8,255,240
	dc.b 15,254,16,2,32,2,0,0,0,0,0,0,144,0,144,0
	dc.b 144,0,0,0,0,0,0,0,128,2,128,2,255,254
	dc.b 15,254,16,2,32,2,71,254,136,0,144,0,0,0,0,0
	dc.b 0,0,144,0,144,0,159,254,128,2,128,2,255,254
	dc.b 31,240,32,8,64,4,0,0,0,0,0,0,144,16,144,16
	dc.b 144,16,0,0,0,0,0,0,128,4,128,8,255,240
	dc.b 31,240,32,8,64,4,143,226,144,18,144,18,0,2,0,2
	dc.b 0,2,144,18,144,18,159,226,128,4,128,8,255,240
	dc.b 15,254,16,2,32,2,0,0,0,0,0,0,159,192,128,64
	dc.b 128,0,0,0,0,0,0,0,128,2,128,2,255,254
	dc.b 15,254,16,2,32,2,71,254,136,0,144,0,0,0,0,0
	dc.b 0,64,159,192,144,0,159,254,128,2,128,2,255,254
	dc.b 15,254,16,2,32,2,0,0,0,0,0,0,159,192,128,64
	dc.b 128,0,0,0,0,0,0,0,144,0,144,0,240,0
	dc.b 15,254,16,2,32,2,71,254,136,0,144,0,0,0,0,0
	dc.b 0,64,159,192,144,0,144,0,144,0,144,0,240,0
	dc.b 15,254,16,2,32,2,0,0,0,0,0,0,144,126,144,2
	dc.b 145,2,0,0,0,0,0,0,128,2,128,2,255,254
	dc.b 15,254,16,2,32,2,71,254,136,0,144,0,0,0,0,128
	dc.b 0,0,147,242,144,18,159,242,128,2,128,2,255,254
	dc.b 16,30,48,18,80,18,0,0,0,0,0,0,159,242,128,2
	dc.b 128,2,0,0,0,0,0,0,144,18,144,18,240,30
	dc.b 16,30,48,18,80,18,144,18,144,18,144,18,0,0,0,0
	dc.b 0,0,159,242,144,18,144,18,144,18,144,18,240,30
	dc.b 0,64,0,192,1,64,0,0,0,0,0,0,2,64,2,64
	dc.b 2,64,0,0,0,0,0,0,2,64,2,64,3,192
	dc.b 0,64,0,192,1,64,2,64,2,64,2,64,0,0,0,0
	dc.b 0,0,2,64,2,64,2,64,2,64,2,64,3,192
	dc.b 0,30,0,18,0,18,0,0,0,0,0,0,16,18,48,18
	dc.b 80,18,0,0,0,0,0,0,128,2,128,2,255,254
	dc.b 0,30,0,18,0,18,0,18,0,18,0,18,0,0,0,0
	dc.b 0,0,144,18,144,18,159,242,128,2,128,2,255,254
	dc.b 16,14,48,18,80,34,0,0,0,0,0,0,128,32,128,64
	dc.b 156,64,0,0,0,0,0,0,144,68,144,34,240,28
	dc.b 16,14,48,18,80,34,144,68,144,136,159,16,0,0,0,0
	dc.b 0,0,146,32,145,16,144,136,144,68,144,34,240,28
	dc.b 16,0,48,0,80,0,0,0,0,0,0,0,144,0,144,0
	dc.b 144,0,0,0,0,0,0,0,128,2,128,2,255,254
	dc.b 16,0,48,0,80,0,144,0,144,0,144,0,0,0,0,0
	dc.b 0,0,144,0,144,0,159,254,128,2,128,2,255,254
	dc.b 28,126,34,130,65,2,0,0,0,0,0,0,145,18,144,18
	dc.b 144,18,0,0,0,0,0,0,144,18,144,18,240,30
	dc.b 28,126,34,130,65,2,136,50,148,82,146,146,0,0,0,0
	dc.b 0,0,144,18,144,18,144,18,144,18,144,18,240,30
	dc.b 15,254,16,2,32,2,0,0,0,0,0,0,144,18,144,18
	dc.b 144,18,0,0,0,0,0,0,144,18,144,18,240,30
	dc.b 15,254,16,2,32,2,71,242,136,18,144,18,0,0,0,0
	dc.b 0,0,144,18,144,18,144,18,144,18,144,18,240,30
	dc.b 15,254,16,2,32,2,0,0,0,0,0,0,144,18,144,18
	dc.b 144,18,0,0,0,0,0,0,128,2,128,2,255,254
	dc.b 15,254,16,2,32,2,71,242,136,18,144,18,0,0,0,0
	dc.b 0,0,144,18,144,18,159,242,128,2,128,2,255,254
	dc.b 15,254,16,2,32,2,0,0,0,0,0,0,128,2,128,2
	dc.b 159,254,0,0,0,0,0,0,144,0,144,0,240,0
	dc.b 15,254,16,2,32,2,71,242,136,18,159,242,0,0,0,0
	dc.b 0,0,144,0,144,0,144,0,144,0,144,0,240,0
	dc.b 15,254,16,2,32,2,0,0,0,0,0,0,144,18,144,18
	dc.b 144,50,0,0,0,0,0,0,128,34,128,20,255,248
	dc.b 15,254,16,2,32,2,71,242,136,18,144,18,0,0,0,0
	dc.b 0,0,144,82,144,138,159,198,128,34,128,20,255,248
	dc.b 15,254,16,2,32,2,0,0,0,0,0,0,159,242,128,2
	dc.b 128,2,0,0,0,0,0,0,144,34,144,18,240,14
	dc.b 15,254,16,2,32,2,71,242,136,18,144,18,0,0,0,0
	dc.b 0,0,159,30,144,136,144,68,144,34,144,18,240,14
	dc.b 31,254,32,2,64,2,0,0,0,0,0,0,143,248,128,4
	dc.b 64,2,0,0,0,0,0,0,128,2,128,4,255,248
	dc.b 31,254,32,2,64,2,143,254,144,0,144,0,0,0,0,0
	dc.b 0,0,63,226,0,18,255,226,128,2,128,4,255,248
	dc.b 31,254,32,2,64,2,0,0,0,0,0,0,2,64,2,64
	dc.b 2,64,0,0,0,0,0,0,2,64,2,64,3,192
	dc.b 31,254,32,2,64,2,254,126,2,64,2,64,0,0,0,0
	dc.b 0,0,2,64,2,64,2,64,2,64,2,64,3,192
	dc.b 16,30,48,18,80,18,0,0,0,0,0,0,144,18,144,18
	dc.b 144,18,0,0,0,0,0,0,128,2,64,4,63,248
	dc.b 16,30,48,18,80,18,144,18,144,18,144,18,0,0,0,0
	dc.b 0,0,144,18,144,18,143,226,128,2,64,4,63,248
	dc.b 16,30,48,18,80,18,0,0,0,0,0,0,144,18,136,34
	dc.b 68,68,0,0,0,0,0,0,4,64,2,128,1,0
	dc.b 16,30,48,18,80,18,144,18,144,18,144,18,0,0,0,0
	dc.b 0,0,34,136,17,16,8,32,4,64,2,128,1,0
	dc.b 16,30,48,18,80,18,0,0,0,0,0,0,144,18,144,18
	dc.b 145,18,0,0,0,0,0,0,129,2,130,130,252,126
	dc.b 16,30,48,18,80,18,144,18,144,18,144,18,0,0,0,0
	dc.b 0,0,146,146,148,82,152,50,129,2,130,130,252,126
	dc.b 16,30,48,18,80,18,0,0,0,0,0,0,17,16,8,32
	dc.b 8,32,0,0,0,0,0,0,136,34,144,18,240,30
	dc.b 16,30,48,18,80,18,136,34,68,68,34,136,0,0,0,0
	dc.b 0,0,17,16,34,136,68,68,136,34,144,18,240,30
	dc.b 48,30,80,18,136,18,0,0,0,0,0,0,8,16,4,32
	dc.b 2,64,0,0,0,0,0,0,2,64,2,64,3,192
	dc.b 48,30,80,18,136,18,68,34,34,68,17,136,0,0,0,0
	dc.b 0,0,2,64,2,64,2,64,2,64,2,64,3,192
	dc.b 31,254,32,2,64,2,0,0,0,0,0,0,3,6,12,24
	dc.b 48,96,0,0,0,0,0,0,128,2,128,2,255,254
	dc.b 31,254,32,2,64,2,255,242,0,50,0,194,0,0,0,0
	dc.b 0,0,193,128,134,0,159,254,128,2,128,2,255,254



