start:  clr.l   -(SP)           ;Go into supervisor mode
        move.w  #$20,-(SP)
        trap    #1
        addq.l  #6,SP
        move.l  D0,spv_sp
	move.b	#0,$484
	move.l	#$58000,$436

	move.l	#$31415926,$426
	move.l	#myreset,$42a

	move.w	#4,-(sp)
	trap	#14
	addq.l	#2,sp
	move.w	d0,ressave

	move.w	#0,-(sp)
	move.l	#-1,-(sp)
	move.l	#-1,-(sp)
	move.w	#5,-(sp)
	trap	#14
	add.l	#12,sp

	bra	actual
myreset:
	rts

ressave:	blk.w	1,0
oldvbl1:	blk.l	1,0
MFP:	EQU	$FFFA00
IERA:	EQU	MFP+$07
IERB:	EQU	MFP+$09
IPRA:	EQU	MFP+$0B
ISRA:	EQU	MFP+$0F
IMRA:	EQU	MFP+$13
IMRB:	EQU	MFP+$15
VECTOR:	EQU	MFP+$17
TACR:	EQU	MFP+$19
TADR:	EQU	MFP+$1F
ISRVEC:	EQU	$134
SCREG:	EQU	$FF8800		;CHIP REGISTER SELECT
SCDATA:	EQU	$FF8802		;REGISTER DATA

P_TERM_OLD: EQU	0	
F_SUPER:  EQU	$20
GETMPB:	 EQU	0
BCONSTAT: EQU	1
BCONIN:	 EQU	2
BCONOUT:	 EQU	3
INPUT:	EQU	$FB0001
OUTPUT:	EQU	$FA0000

actual:	
	BSR	SAVEMFP		;SAVE NATURAL MFP CONDITIONS
	MOVE.W	#$2700,SR
	LEA	INULL,A0
	BSR	SETINT		;SET NULL INTERRUPT ADDRESS
	MOVEQ	#0,D0		;SET INITIAL FREQUENCY
	BSR	SETFREQ
	BSR	ENABMFP		;SET THE MFP RUNNING
	BSR	SETSND		;SET UP SOUND REGISTERS
	SF	XTERNAL		;SET THE MODE FOR INTERNAL ATARI USE
	MOVE.W	#$2000,SR	;ENABLE THE INTERRUPTS


        jsr     mousof
        jsr     putrout
        jsr     getscrn
        jsr     clearsc
	jsr	plotinit
	
        jsr     fadeout
        jsr     linea
        move.w  mx,d0
        jsr     randomseed
	lea	teleavb,a0
	jsr	putvbl
	move.l	a1,oldvbl1
	jsr	putsp
	jsr	putsp
ftf:
	jsr	fadeout
        jsr     loadscr
	move.b	#1,dopr
	bsr	putnums
	bsr	flip_scr
	bsr	putnums
	bsr	flip_scr
*	jsr	titlestuff
	jsr	loadsounds
	move.w	#594,mmax
	move.w	#0,mmin
	move.w	#594,mmax2
	move.w	#0,mmin2
	move.w	#-1,sdead
	move.w	#-1,break
	move.w	#-1,remember
	move.w	#-1,bigavail
	move.w	#2000,emancnt
	move.w	#-1,attacker
	move.w	#-1,battacker
	move.w	#-1,hesdead
	move.w	#5,speed
	move.w	#1,dopr
	move.w	#0,score
	move.w	#3,ships
	move.w	#0,level
	move.w	#0,buttondat
        move.w  speed,grtimer
	move.w	#50,mx
        move.w  #-1,byebye
        move.w  #-1,bigflg
        move.w  #-1,shooting
	move.l	#ship0,wship0
	move.l	#ship1,wship1
	move.l	#ship2,wship2
	move.l	#ship3,wship3
        move.l  #block1,whichblock
	move.w	#5,brhits
	bsr	copyintoboth
        bsr     putfirst
	bsr	weapons
	bsr	fadein
	bsr	pregrow
	bra	testy



testy:
	bsr	copyscr
        bsr     smallgrow
	bsr	shoot
	bsr	putsp
	bsr     bbani
        bsr     brainy
	bsr	amidead
        bsr     animboom
	bsr	dopanel
	bsr	attack
	bsr	battack
	bsr	putnums
        bsr     flip_scr
	bsr	keyboard
	move.l	#ship0,wship0
	move.l	#ship1,wship1
	move.l	#ship2,wship2
	move.l	#ship3,wship3
	cmpi.w	#10,brhits
	bge	nextlev
        bra     testy

nextlev:
	move.w	#0,blani
	move.w	#104,b1x
	move.w	#91,b1y
	move.w	#104,b2x
	move.w	#91,b2y
	move.w	#104,b3x
	move.w	#91,b3y
	move.w	#104,b4x
	move.w	#91,b4y
	move.w	#104,b5x
	move.w	#91,b5y
	move.w	#104,b6x
	move.w	#91,b6y
	move.w	#104,b7x
	move.w	#91,b7y
	move.w	#104,b8x
	move.w	#91,b8y
	bsr	blowitup
skipb:
	cmpi.w	#25,level
	bge	youwin
	addq.w	#1,level
	move.l	#0,d0
	move.w	level,d0
	mulu	#4,d0
	move.l	#blocklist,a0
	move.l	(a0,d0.w),whichblock

	bsr	fadeout
	move.l	#0,d0
	move.w	level,d0
	mulu	#2,d0
	move.l	#growlist,a0
	move.w	(a0,d0.w),speed
	move.w	#1,dopr
	bsr	copyintoboth
        bsr     putfirst
	bsr	copyscr
	bsr	flip_scr
	bsr	copyscr
	bsr	weapons
	move.w	#0,brhits
	move.w	#1,dopr
	move.w	#-1,shooting
	move.w	#-1,byebye
	move.w	#-1,attacker
	move.w	#-1,battacker
	move.w	#594,mmax
	move.w	#0,mmin
	move.w	#594,mmax2
	move.w	#0,mmin2
	move.w	#1,dopr
	move.l	#0,d0
	move.w	level,d0
	mulu	#2,d0
	move.l	#chlist,a0
	move.w	(a0,d0.w),d0
	cmpi.w	#1,d0
	beq	prebreakout
	cmpi.w	#2,d0
	beq	bubblestuff
	move.w	#-1,break
	bsr	fadein
	bsr	pregrow
	bra	testy	

blocklist:
	dc.l	block1,block2,block3,block3,block4,block5,block5,block6
	dc.l	block7,block7,block8,block9,block9,block10,block11,block11
	dc.l	block12,block13,block13,block14,block15,block15,block16
	dc.l	block17,block17,block18

growlist:
	dc.w	3,3,30,3,3,30,3,3,30,2,2,30,2,2,30,2,2,30,1,1,30,1,1,30
	dc.w	1,1

chlist:	dc.w	0,0,1,0,0,2,0,0,1,0,0,2,0,0,1,0,0,2,0,0,1,0,0,2,0,0,1
***********************************
youwin:
	move.w	#1,dopr
	bsr	putnums
	bsr	flip_scr
	bsr	putnums
	bsr	printwin

ywl:
*	bsr	keyboard
	tst.w	buttondat
	bne	ywl2
	bra	ywl

ywl2:
	bra	ftf
printwin:
	move.l	#wintext,-(sp)
	move.w	#9,-(sp)
	trap	#1
	addq.l	#6,sp
	bsr	flip_scr
	move.l	#wintext,-(sp)
	move.w	#9,-(sp)
	trap	#1
	addq.l	#6,sp
	rts

wintext:
	dc.b	27,'b','1',27,'c','0'
	dc.b	27,'Y',32+3,32+7,'CONGRATULATIONS'
	dc.b	27,'Y',32+5,32+1,'YOU HAVE KILLED THE GROWTH'
	dc.b	27,'Y',32+7,32+1,'MOUSE BUTTON  FOR NEW GAME',0

even
*********************************
weapons:
	tst.w	bigavail
	bpl	isavail
	move.l	hiden,a0
	add.l	#25080,a0
	move.w	#6,d0
	move.l	#unarmed,a1
wep1:	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	add.l	#128,a0
	dbf	d0,wep1
	move.l	seen,a0
	add.l	#25080,a0
	move.w	#6,d0
	move.l	#unarmed,a1
wep2:	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	add.l	#128,a0
	dbf	d0,wep2
	rts

isavail:
	move.l	hiden,a0
	add.l	#25080,a0
	move.w	#6,d0
	move.l	#armed,a1
wep3:	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	add.l	#128,a0
	dbf	d0,wep3
	move.l	seen,a0
	add.l	#25080,a0
	move.w	#6,d0
	move.l	#armed,a1
wep4:	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	add.l	#128,a0
	dbf	d0,wep4
	rts


*****************************************************************
teleavb:
	tst.w	teled
	bpl	telesame
	move.l	#0,d0
	move.w	tacount,d0
	mulu	#4,d0
	lea	telelist,a0
	move.l	(a0,d0.w),a0
	move.l	#19800,d0
	bsr	puttels
	move.w	#3,teled
	addq.w	#1,tacount
	cmpi.w	#6,tacount
	blt	teleax
	move.w	#0,tacount
teleax:
	bra	tel2

telesame:
	move.l	#0,d0
	move.w	tacount,d0
	mulu	#4,d0
	lea	telelist,a0
	move.l	(a0,d0.w),a0
	move.l	#19800,d0
	bsr	puttels
	subq.w	#1,teled
	bra	tel2


puttels:
	move.l	seen,a1
	add.l	d0,a1
	move.w	#21,d0
pts1:	move.l	(a0)+,(a1)+
	move.l	(a0)+,(a1)+
	move.l	(a0)+,(a1)+
	move.l	(a0)+,(a1)+
	add.l	#144,a1
	dbf	d0,pts1
	rts



tel2:	tst.w	teled2
	bpl	telesame2
	move.l	#0,d0
	move.w	tacount2,d0
	mulu	#4,d0
	lea	telelist2,a0
	move.l	(a0,d0.w),a0
	move.l	#19816,d0
	bsr	puttels
	move.w	#4,teled2
	addq.w	#1,tacount2
	cmpi.w	#5,tacount2
	blt	teleax2
	move.w	#0,tacount2
teleax2:
	rts

telesame2:
	move.l	#0,d0
	move.w	tacount2,d0
	mulu	#4,d0
	lea	telelist2,a0
	move.l	(a0,d0.w),a0
	move.l	#19816,d0
	bsr	puttels
	subq.w	#1,teled2
	rts



telelist:
	dc.l	telea1,telea2,telea3,telea4,telea5,telea6
tacount:	blk.w	1,0
teled:	blk.w	1,0

telelist2:
	dc.l	teleb1,teleb2,teleb3,teleb4,teleb5
tacount2:	blk.w	1,0
teled2:	blk.w	1,0


*****************************************************************
titlestuff:
	move.w	#-1,-(sp)
	move.l	screen4,-(sp)
	move.l	screen4,-(sp)
	move.w	#5,-(sp)
	trap	#14
	add.l	#12,sp

	move.w	#$2700,sr
	moveq	#2,d0
	bsr	setfreq
	move.w	#$2000,sr
	jsr	loadmusic
	bsr	fadein
*	bsr	stm
twait:
	tst.b	inuse
	beq	stm
	tst.w	buttondat
	beq	twait
	MOVE.W	#$2700,SR
	LEA	INULL,A0	;REMOVE REPLAY INT.
	BSR	SETINT
	SF	INUSE
	moveq	#0,d0
	bsr	setfreq
	MOVE.W	#$2000,SR
	bsr	fadeout
	rts

stm:	move.l	#sounds,currentsad
	move.l	#sounds+50081,bottom
	move.b	#1,inuse
	lea	ireplay,a0
	bsr	setint
	bra	twait
	rts

*****************************************
*	sound subroutines		*
*****************************************
bigshot:	
	move.l	shoot1s,currentsad
	move.l	shoot1b,bottom
	st	inuse
	lea	ireplay,a0
	bsr	setint
	rts

litshot:	
	move.l	shoot0s,currentsad
	move.l	shoot0b,bottom
	st	inuse
	lea	ireplay,a0
	bsr	setint
	rts

laugh:	
	move.l	laughs,currentsad
	move.l	laughb,bottom
	st	inuse
	lea	ireplay,a0
	bsr	setint
	rts

pay:	
	move.l	pays,currentsad
	move.l	payb,bottom
	st	inuse
	lea	ireplay,a0
	bsr	setint
	rts

appear:	
	move.l	appears,currentsad
	move.l	appearb,bottom
	st	inuse
	lea	ireplay,a0
	bsr	setint
	rts

reward:	
	move.l	rewards,currentsad
	move.l	rewardb,bottom
	st	inuse
	lea	ireplay,a0
	bsr	setint
	rts

boom:	
	move.l	booms,currentsad
	move.l	boomb,bottom
	st	inuse
	lea	ireplay,a0
	bsr	setint
	rts

bigboomsound:	
	move.l	bigbooms,currentsad
	move.l	bigboomb,bottom
	st	inuse
	lea	ireplay,a0
	bsr	setint
	rts



****************************************
*     THE NULL INTERRUPT ROUTINE       *
****************************************

INULL:	RTE



****************************************
*       REPLAY FROM MEMORY             *
****************************************

IREPLAY:
	movem.l	d0-d7/a0-a6,-(sp)
	MOVEQ	#0,D7
	move.l	currentsad,a6
	MOVE.B	(A6)+,D7	;READ FROM RAM
	CMP.L	bottom,A6		;EXCEDED END STOP
	BGT.S	HALTREP		;BRANCH IF SO
	move.l	a6,currentsad
	JMP	INTOUTP		;ELSE OUTPUT IT

HALTREP:
	MOVE.W	#$2700,SR
	LEA	INULL,A0	;REMOVE REPLAY INT.
	BSR	SETINT
	SF	INUSE
	MOVE.W	#$2000,SR
	movem.l	(sp)+,d0-d7/a0-a6
	RTE

currentsad:	blk.l	1,0
bottom:		blk.l	1,0

INTOUTP:
	move.l	#screg,a4
	lea	snd_out,a3
	AND.W	#$00FF,D7	;MASK OFF RUBBISH
	ADD.B	#$80,D7		;COMPLENT VALUE
	LSL.W	#3,D7		;DOUBLE LONG WORD OFFSET
	MOVE.L	0(A3,D7.W),d5	;GET DATA #1
	MOVE.W	4(A3,D7.W),D4	;GET DATA #2
	MOVEP.L	D5,0(A4)	;PLAY #1
	MOVEP.W	D4,0(A4)	;PLAY #2
	movem.l	(sp)+,d0-d7/a0-a6
	RTE



*    Internal sound lookup table.     *
	EVEN
SND_OUT:
	dc.w	$80c,$90b,$a09,0,$80c,$90b,$a09,0
	dc.w	$80d,$908,$a08,0,$80b,$90b,$a0b,0
	dc.w	$80d,$909,$a05,0,$80c,$90b,$a08,0
	dc.w	$80d,$909,$a02,0,$80d,$908,$a06,0
	dc.w	$80c,$90b,$a07,0,$80d,$907,$a07,0
	dc.w	$80c,$90b,$a06,0,$80c,$90a,$a09,0
	dc.w	$80b,$90b,$a0a,0,$80c,$90b,$a02,0
	dc.w	$80c,$90b,$a00,0,$80c,$90a,$a08,0

	dc.w	$80d,$906,$a04,0,$80d,$905,$a05,0
	dc.w	$80d,$905,$a04,0,$80c,$909,$a09,0
	dc.w	$80d,$904,$a03,0,$80b,$90b,$a09,0
	dc.w	$80c,$90a,$a05,0,$80b,$90a,$a0a,0
	dc.w	$80c,$909,$a08,0,$80b,$90b,$a08,0
	dc.w	$80c,$90a,$a00,0,$80c,$90a,$a00,0
	dc.w	$80c,$909,$a07,0,$80b,$90b,$a07,0
	dc.w	$80c,$909,$a06,0,$80b,$90b,$a06,0

	dc.w	$80b,$90a,$a09,0,$80b,$90b,$a05,0
	dc.w	$80a,$90a,$a0a,0,$80b,$90b,$a02,0
	dc.w	$80b,$90a,$a08,0,$80c,$907,$a07,0
	dc.w	$80c,$908,$a04,0,$80c,$907,$a06,0
	dc.w	$80b,$909,$a09,0,$80c,$906,$a06,0
	dc.w	$80a,$90a,$a09,0,$80c,$907,$a03,0
	dc.w	$80b,$90a,$a05,0,$80b,$909,$a08,0
	dc.w	$80b,$90a,$a03,0,$80a,$90a,$a08,0

	dc.w	$80b,$90a,$a00,0,$80b,$909,$a07,0
	dc.w	$80b,$908,$a08,0,$80a,$90a,$a07,0
	dc.w	$80a,$909,$a09,0,$80c,$901,$a01,0
	dc.w	$80a,$90a,$a06,0,$80b,$908,$a07,0
	dc.w	$80a,$90a,$a05,0,$80a,$909,$a08,0
	dc.w	$80a,$90a,$a02,0,$80a,$90a,$a01,0
	dc.w	$80a,$90a,$a00,0,$809,$909,$a09,0
	dc.w	$80a,$908,$a08,0,$80b,$908,$a01,0

	dc.w	$80a,$909,$a06,0,$80b,$907,$a04,0
	dc.w	$80a,$909,$a05,0,$809,$909,$a08,0
	dc.w	$80a,$909,$a03,0,$80a,$908,$a06,0
	dc.w	$80a,$909,$a00,0,$809,$909,$a07,0
	dc.w	$809,$908,$a08,0,$80a,$908,$a04,0
	dc.w	$809,$909,$a06,0,$80a,$908,$a01,0
	dc.w	$809,$909,$a05,0,$809,$908,$a07,0
	dc.w	$808,$908,$a08,0,$809,$909,$a02,0

	dc.w	$809,$908,$a06,0,$809,$909,$a00,0
	dc.w	$809,$907,$a07,0,$808,$908,$a07,0
	dc.w	$809,$907,$a06,0,$809,$908,$a02,0
	dc.w	$808,$908,$a06,0,$809,$906,$a06,0
	dc.w	$808,$907,$a07,0,$808,$908,$a04,0
	dc.w	$808,$907,$a06,0,$808,$908,$a02,0
	dc.w	$807,$907,$a07,0,$808,$906,$a06,0
	dc.w	$808,$907,$a04,0,$807,$907,$a06,0

	dc.w	$808,$906,$a05,0,$808,$906,$a04,0
	dc.w	$807,$906,$a06,0,$807,$907,$a04,0
	dc.w	$808,$905,$a04,0,$806,$906,$a06,0
	dc.w	$807,$906,$a04,0,$807,$905,$a05,0
	dc.w	$806,$906,$a05,0,$806,$906,$a04,0
	dc.w	$806,$905,$a05,0,$806,$906,$a02,0
	dc.w	$806,$905,$a04,0,$805,$905,$a05,0
	dc.w	$806,$905,$a02,0,$805,$905,$a04,0

	dc.w	$805,$904,$a04,0,$805,$905,$a02,0
	dc.w	$804,$904,$a04,0,$804,$904,$a03,0
	dc.w	$804,$904,$a02,0,$804,$903,$a03,0
	dc.w	$803,$903,$a03,0,$803,$903,$a02,0
	dc.w	$803,$902,$a02,0,$802,$902,$a02,0
	dc.w	$802,$902,$a01,0,$801,$901,$a01,0
	dc.w	$802,$901,$a00,0,$801,$901,$a00,0
	dc.w	$801,$900,$a00,0,$800,$900,$a00,0

	dc.w	$80e,$90d,$a0c,0,$80f,$903,$a00,0
	dc.w	$80f,$903,$a00,0,$80f,$903,$a00,0
	dc.w	$80f,$903,$a00,0,$80f,$903,$a00,0
	dc.w	$80f,$903,$a00,0,$80e,$90d,$a0b,0
	dc.w	$80e,$90d,$a0b,0,$80e,$90d,$a0b,0
	dc.w	$80e,$90d,$a0b,0,$80e,$90d,$a0b,0
	dc.w	$80e,$90d,$a0b,0,$80e,$90d,$a0b,0
	dc.w	$80e,$90d,$a0a,0,$80e,$90d,$a0a,0

	dc.w	$80e,$90d,$a0a,0,$80e,$90d,$a0a,0
	dc.w	$80e,$90c,$a0c,0,$80e,$90d,$a00,0
	dc.w	$80d,$90d,$a0d,0,$80d,$90d,$a0d,0
	dc.w	$80d,$90d,$a0d,0,$80d,$90d,$a0d,0
	dc.w	$80d,$90d,$a0d,0,$80d,$90d,$a0d,0
	dc.w	$80e,$90c,$a0b,0,$80e,$90c,$a0b,0
	dc.w	$80e,$90c,$a0b,0,$80e,$90c,$a0b,0
	dc.w	$80e,$90c,$a0b,0,$80e,$90c,$a0b,0

	dc.w	$80e,$90c,$a0b,0,$80e,$90c,$a0b,0
	dc.w	$80e,$90c,$a0a,0,$80e,$90c,$a0a,0
	dc.w	$80e,$90c,$a0a,0,$80e,$90c,$a0a,0
	dc.w	$80d,$90d,$a0c,0,$80d,$90d,$a0c,0
	dc.w	$80e,$90c,$a09,0,$80e,$90c,$a09,0
	dc.w	$80e,$90c,$a05,0,$80e,$90c,$a00,0
	dc.w	$80e,$90c,$a00,0,$80e,$90b,$a0b,0
	dc.w	$80e,$90b,$a0b,0,$80e,$90b,$a0b,0

	dc.w	$80e,$90b,$a0b,0,$80e,$90b,$a0a,0
	dc.w	$80e,$90b,$a0a,0,$80e,$90b,$a0a,0
	dc.w	$80d,$90d,$a0b,0,$80d,$90d,$a0b,0
	dc.w	$80d,$90d,$a0b,0,$80e,$90b,$a09,0
	dc.w	$80e,$90b,$a09,0,$80e,$90b,$a09,0
	dc.w	$80d,$90c,$a0c,0,$80d,$90d,$a0a,0
	dc.w	$80e,$90b,$a07,0,$80e,$90b,$a00,0
	dc.w	$80e,$90b,$a00,0,$80d,$90d,$a09,0

	dc.w	$80d,$90d,$a09,0,$80e,$90a,$a09,0
	dc.w	$80d,$90d,$a08,0,$80d,$90d,$a07,0
	dc.w	$80d,$90d,$a04,0,$80d,$90d,$a00,0
	dc.w	$80e,$90a,$a04,0,$80e,$909,$a09,0
	dc.w	$80e,$909,$a09,0,$80d,$90c,$a0b,0
	dc.w	$80e,$909,$a08,0,$80e,$909,$a08,0
	dc.w	$80e,$909,$a07,0,$80e,$908,$a08,0
	dc.w	$80e,$909,$a01,0,$80c,$90c,$a0c,0

	dc.w	$80d,$90c,$a0a,0,$80e,$908,$a06,0
	dc.w	$80e,$907,$a07,0,$80e,$908,$a00,0
	dc.w	$80e,$907,$a05,0,$80e,$906,$a06,0
	dc.w	$80d,$90c,$a09,0,$80e,$905,$a05,0
	dc.w	$80e,$904,$a04,0,$80d,$90c,$a08,0
	dc.w	$80d,$90b,$a0b,0,$80e,$900,$a00,0
	dc.w	$80d,$90c,$a06,0,$80d,$90c,$a05,0
	dc.w	$80d,$90c,$a02,0,$80c,$90c,$a0b,0

	dc.w	$80c,$90c,$a0b,0,$80d,$90b,$a0a,0
	dc.w	$80d,$90b,$a0a,0,$80d,$90b,$a0a,0
	dc.w	$80d,$90b,$a0a,0,$80c,$90c,$a0a,0
	dc.w	$80c,$90c,$a0a,0,$80c,$90c,$a0a,0
	dc.w	$80d,$90b,$a09,0,$80d,$90b,$a09,0
	dc.w	$80d,$90a,$a0a,0,$80d,$90a,$a0a,0
	dc.w	$80d,$90a,$a0a,0,$80c,$90c,$a09,0
	dc.w	$80c,$90c,$a09,0,$80c,$90c,$a09,0

	dc.w	$80d,$90b,$a06,0,$80c,$90b,$a0b,0
	dc.w	$80c,$90c,$a08,0,$80d,$90b,$a00,0
	dc.w	$80d,$90b,$a00,0,$80c,$90c,$a07,0
	dc.w	$80c,$90c,$a06,0,$80c,$90c,$a05,0
	dc.w	$80c,$90c,$a03,0,$80c,$90c,$a01,0
	dc.w	$80c,$90b,$a0a,0,$80d,$90a,$a05,0
	dc.w	$80d,$90a,$a04,0,$80d,$90a,$a02,0
	dc.w	$80d,$909,$a08,0,$80d,$909,$a08,0



*       PRESERVE THE MFP REGISTERS      *
SAVEMFP:
	move.w	sr,mysr
	MOVE.B	IERA,MFPMEM	;PUSH CURRENT MFP DATA
	MOVE.B	IERB,MFPMEM+1
	MOVE.B	IMRA,MFPMEM+2
	MOVE.B	IMRB,MFPMEM+3
	MOVE.B	TADR,MFPMEM+4
	MOVE.B	TACR,MFPMEM+5
	MOVE.B	VECTOR,MFPMEM+6
	RTS
mysr:
	blk.w	1,0
*   REPLACE NATURAL RUNNING MFP VALUES  *
OLDMFP:
	MOVE.B	MFPMEM+6,VECTOR	;RESTORE OLD MFP VALS
	MOVE.B	MFPMEM+5,TACR
	MOVE.B	MFPMEM+4,TADR
	MOVE.B	MFPMEM+3,IMRB
	MOVE.B	MFPMEM+2,IMRA
	MOVE.B	MFPMEM+1,IERB
	MOVE.B	MFPMEM,IERA
	move.w	mysr,sr
	RTS

*	CHOOSE INTERRUPT VECTOR         *
*   SET UP SELECTED INTERRUPT WITH A0.L
*   CONTAINING THE NEW ROUTINE VECTOR.
SETINT:	MOVE.W	SR,D0		;SAVE SYSTEM STATUS
	MOVE.W	#$2700,SR	;INTERRUPTS OFF

	MOVE.L	A0,ISRVEC	;INSTALL NEW ROUTINE

	MOVE.W	D0,SR		;RE-ASSERT OLD STATUS
	RTS

*       SET UP MFP FREQUENCY            *
SETFREQ:
	MOVE.B	#0,TACR		;DISABLE TIMER
	AND.W	#7,D0		;ENSURE 0-7
	MOVE.W	D0,FREQNUM	;SAVE FOR PROSPERITY
	LEA	FREQTAB,A0	;GET THE FREQUENCY XREF ADDR
	LSL.W	#1,D0		;CONVERT TO WORD TABLE OFFSET
	MOVE.W	0(A0,D0.W),D0	;& GET THE MFP DATA
	MOVE.B	D0,TACR		;LSB = CONTROL REG BYTE
	LSR.W	#8,D0		;SHIFT DOWN NEXT BYTE
 	MOVE.B	D0,TADR		;NEXT = DATA REG BYTE
	RTS
*       ENABLE THE MFP            *
ENABMFP:
	bset	#5,IMRA
*	MOVE.B	#0,IMRB
	bset	#5,IERA
*	MOVE.B	#0,IERB
	BCLR	#3,VECTOR
	RTS

*    SET UP THE SOUND CHIP CHANNELS     *
SETSND:
	MOVE.B	#0,SCREG	;CHANNEL A
	MOVE.B	#0,SCDATA
	MOVE.B	#1,SCREG
	MOVE.B	#0,SCDATA

	MOVE.B	#2,SCREG	;CHANNEL B
	MOVE.B	#0,SCDATA
	MOVE.B	#3,SCREG
	MOVE.B	#0,SCDATA

	MOVE.B	#4,SCREG	;CHANNEL C
	MOVE.B	#0,SCDATA
	MOVE.B	#5,SCREG
	MOVE.B	#0,SCDATA

	MOVE.B	#7,SCREG	;SET UP CHANNEL MIXING & PORT 'A' I/O
	MOVE.B	#$FF,SCDATA

	MOVE.B	#8,SCREG	;SET ALL VOLUMES TO ZERO
	MOVE.B	#0,SCDATA
	MOVE.B	#9,SCREG
	MOVE.B	#0,SCDATA
	MOVE.B	#10,SCREG
	MOVE.B	#0,SCDATA
	RTS

**************************************
*       MFP/FREQUENCY TABLE          *
**************************************
	EVEN
FREQTAB:
	DC.W	$0506	;4.9 KHZ
	DC.W	$0505	;7.68 KHZ
	DC.W	$0405	;9.6 KHZ
	DC.W	$2901	;14.99 KHZ
	DC.W	$1F01	;19.8 KHZ
	DC.W	$0802	;30.7 KHZ
	DC.W	$0106	;DUMMY	
	DC.W	$0106	;DUMMY

**************************************
*	DEFINE PROGRAM STORAGE       *
**************************************
	EVEN
XTERNAL:
	blk.B	1,0	;$FF = EXTERNAL O/P SELECTED
INUSE:
	blk.B	1,0	;INTERRUPT IN USE FLAG
OPTION:	blk.B	1,0	;INT. OPTION  $FF = SAMPLE
	EVEN
FREQNUM:
	blk.W	1,1	;FREQUENCY SELECTED

MFPMEM:	blk.B	30,0	;SAVED MFP DATA

*****************************************************************
pregrow:
	move.w	speed,-(sp)
	move.w	#0,speed
	move.w	#50,d0
pg:
	move.w	d0,-(sp)
	bsr	smallgrow
	bsr	copyscr
	bsr	flip_scr
	move.w	(sp)+,d0
	dbf	d0,pg
	move.w	(sp)+,speed
	rts
	

*******************************
fadeout:
	move.w	#$2000,sr
	lea	foutlist,a6
	move.w	#6,d6
fo:
	move.l	(a6)+,-(sp)
	move.w	#6,-(sp)
	trap	#14
	addq.l	#6,sp
	move.w	#35000,d7
	bsr	delay
	dbf	d6,fo
*	move.w	#$2400,sr
	rts

fadein:
	move.w	#$2000,sr
	lea	finlist,a6
	move.w	#7,d6
fi:
	move.l	(a6)+,-(sp)
	move.w	#6,-(sp)
	trap	#14
	addq.l	#6,sp
	move.w	#35000,d7
	bsr	delay
	dbf	d6,fi
*	move.w	#$2400,sr
	rts
	

fadecount:	blk.w	1,0
foutlist:	dc.l	fade1,fade2,fade3,fade4,fade5,fade6,fade7
finlist:	dc.l	fade7,fade6,fade5,fade4,fade3,fade2,fade1,palette
*******************************************************
bubblestuff:
*	bsr	fadeout
	jsr	loadballs
	move.w	#1,dopr
	move.w	#0,ballhits
	move.w	#1,dopr
	move.w	#162,mmax
	move.w	#0,mmin
	move.w	#0,mmax2
	move.w	#162,mmin2
	move.w	#-1,b1
	move.w	#-1,b2
	move.w	#-1,b3
	move.w	#-1,b4
	move.w	#-1,b5
	move.w	#-1,b6
	move.w	#-1,b7
	move.w	#80,mx
	bsr	copyscr
	bsr	flip_scr
	bsr	copyscr
	bsr	flip_scr
	bsr	fadein
	
bloop:
	bsr	copyscr
	bsr	putsp
	bsr	bdrop
	bsr	shoot2
	bsr	amidead
	bsr	amidead
	bsr	flip_scr
	bsr	keyboard
	bsr	putnums
	cmpi.w	#30,ballhits
	bge	bbloop2
	cmpi.w	#10,brhits
	bge	bbloop
	bra	bloop

bbloop:
*	subq	#1,level
	bsr	boom
bbl:	tst.b	inuse
	bne	bbl
	bsr	laugh
	bra	skipb

bbloop2:
*	subq	#1,level
	bsr	reward
	bra	skipb

ballhits:	blk.w	1,0

******************************************
bdrop:
bub1:
	tst.w	b1
	bpl	bub1move
	move.l	#100,d0
	bsr	randomplus
	cmpi.w	#1,d0
	bgt	bub2
	move.w	#1,b1
	move.w	#0,bub1y
	move.w	#159,d0
	bsr	randomplus
	add.w	#25,d0
	move.w	d0,bub1x
bub1move:
	addq.w	#1,bub1y
	move.w  bub1x,spblock
        move.w  bub1y,spblock+2
        move.w  #16,spblock+4
        move.w  #1,spblock+6
        move.l  #gtemp,spblock+12
        move.w  #1,spblock+26
        move.l  #gmask,spblock+38
	move.l	#bubble,spblock+8
	move.l	#b1,a0
	bsr	bubout
	bsr	shotsp
bub2:
	tst.w	b2
	bpl	bub2move
	move.l	#100,d0
	bsr	randomplus
	cmpi.w	#1,d0
	bgt	bub3
	move.w	#1,b2
	move.w	#0,bub2y
	move.w	#159,d0
	bsr	randomplus
	add.w	#25,d0
	move.w	d0,bub2x
bub2move:
	addq.w	#2,bub2y
	move.w  bub2x,spblock
        move.w  bub2y,spblock+2
        move.w  #16,spblock+4
        move.w  #1,spblock+6
        move.l  #gtemp,spblock+12
        move.w  #1,spblock+26
        move.l  #gmask,spblock+38
	move.l	#bubble,spblock+8
	move.l	#b2,a0
	bsr	bubout
	bsr	shotsp

bub3:
	tst.w	b3
	bpl	bub3move
	move.l	#100,d0
	bsr	randomplus
	cmpi.w	#1,d0
	bgt	bub4
	move.w	#1,b3
	move.w	#0,bub3y
	move.w	#159,d0
	bsr	randomplus
	add.w	#25,d0
	move.w	d0,bub3x
bub3move:
	addq.w	#1,bub3y
	move.w  bub3x,spblock
        move.w  bub3y,spblock+2
        move.w  #16,spblock+4
        move.w  #1,spblock+6
        move.l  #gtemp,spblock+12
        move.w  #1,spblock+26
        move.l  #gmask,spblock+38
	move.l	#bubble,spblock+8
	move.l	#b3,a0
	bsr	bubout
	bsr	shotsp
bub4:
	tst.w	b4
	bpl	bub4move
	move.l	#100,d0
	bsr	randomplus
	cmpi.w	#1,d0
	bgt	bub5
	move.w	#1,b4
	move.w	#0,bub4y
	move.w	#159,d0
	bsr	randomplus
	add.w	#25,d0
	move.w	d0,bub4x
bub4move:
	addq.w	#2,bub4y
	move.w  bub4x,spblock
        move.w  bub4y,spblock+2
        move.w  #16,spblock+4
        move.w  #1,spblock+6
        move.l  #gtemp,spblock+12
        move.w  #1,spblock+26
        move.l  #gmask,spblock+38
	move.l	#bubble,spblock+8
	move.l	#b4,a0
	bsr	bubout
	bsr	shotsp

bub5:
	tst.w	b5
	bpl	bub5move
	move.l	#100,d0
	bsr	randomplus
	cmpi.w	#1,d0
	bgt	bub6
	move.w	#1,b5
	move.w	#0,bub5y
	move.w	#159,d0
	bsr	randomplus
	add.w	#25,d0
	move.w	d0,bub5x
bub5move:
	addq.w	#1,bub5y
	move.w  bub5x,spblock
        move.w  bub5y,spblock+2
        move.w  #16,spblock+4
        move.w  #1,spblock+6
        move.l  #gtemp,spblock+12
        move.w  #1,spblock+26
        move.l  #gmask,spblock+38
	move.l	#bubble,spblock+8
	move.l	#b5,a0
	bsr	bubout
	bsr	shotsp
bub6:
	tst.w	b6
	bpl	bub6move
	move.l	#100,d0
	bsr	randomplus
	cmpi.w	#1,d0
	bgt	bub7
	move.w	#1,b6
	move.w	#0,bub6y
	move.w	#159,d0
	bsr	randomplus
	add.w	#25,d0
	move.w	d0,bub6x
bub6move:
	addq.w	#2,bub6y
	move.w  bub6x,spblock
        move.w  bub6y,spblock+2
        move.w  #16,spblock+4
        move.w  #1,spblock+6
        move.l  #gtemp,spblock+12
        move.w  #1,spblock+26
        move.l  #gmask,spblock+38
	move.l	#bubble,spblock+8
	move.l	#b6,a0
	bsr	bubout
	bsr	shotsp

bub7:
	tst.w	b7
	bpl	bub7move
	move.l	#100,d0
	bsr	randomplus
	cmpi.w	#1,d0
	bgt	bub8
	move.w	#1,b7
	move.w	#0,bub7y
	move.w	#159,d0
	bsr	randomplus
	add.w	#25,d0
	move.w	d0,bub7x
bub7move:
	addq.w	#1,bub7y
	move.w  bub7x,spblock
        move.w  bub7y,spblock+2
        move.w  #16,spblock+4
        move.w  #1,spblock+6
        move.l  #gtemp,spblock+12
        move.w  #1,spblock+26
        move.l  #gmask,spblock+38
	move.l	#bubble,spblock+8
	move.l	#b7,a0
	bsr	bubout
	bsr	shotsp
bub8:
	rts
******************************************
b1:	blk.w	1,-1
bub1x:	blk.w	1,0
bub1y:	blk.w	1,0
b2:	blk.w	1,-1
bub2x:	blk.w	1,0
bub2y:	blk.w	1,0
b3:	blk.w	1,-1
bub3x:	blk.w	1,0
bub3y:	blk.w	1,0
b4:	blk.w	1,-1
bub4x:	blk.w	1,0
bub4y:	blk.w	1,0
b5:	blk.w	1,-1
bub5x:	blk.w	1,0
bub5y:	blk.w	1,0
b6:	blk.w	1,-1
bub6x:	blk.w	1,0
bub6y:	blk.w	1,0
b7:	blk.w	1,-1
bub7x:	blk.w	1,0
bub7y:	blk.w	1,0
	
****************************************
bubout:
	cmpi.w	#184,spblock+2
	blt	buboutb
	move.w	#-1,(a0)		
	move.w	#10,brhits
	subq.w	#1,ships
	move.b	#1,dopr
buboutb:
	rts


**************************************
attack:
	cmpi.w	#4,level
	ble	na
	tst.w	attacker
	bmi	noattack
	bra	isattack
noattack:
	move.l	#100,d0
	bsr	randomplus
	cmpi.w	#1,d0
	bge	na
	bsr	appear
	move.w	#1,attacker
	move.l	#3,d0
	bsr	randomplus
	addq.w	#1,d0
	move.w	d0,atyvel
	move.l	#3,d0
	bsr	randomplus
	addq.w	#1,d0
	move.w	d0,atxvel
	move.w	#112,atx
	move.w	#99,aty
	move.w	#0,atani
isattack:
	move.w	atxvel,d0
	add.w	d0,atx
	move.w  atx,spblock
	move.w	atyvel,d0
	add.w	d0,aty
        move.w  aty,spblock+2
        move.w  #16,spblock+4
        move.w  #1,spblock+6
        move.l  #gtemp,spblock+12
        move.w  #1,spblock+26
        move.l  #gmask,spblock+38
	bsr	attackani
	bsr	atmaths	
	bsr	shotsp
na:	rts


attacker:
	blk.w	1,0
atyvel:	blk.w	1,0
atxvel:	blk.w	1,0
atx:	blk.w	1,0
aty:	blk.w	1,0
atani:	blk.w	1,0
******************************
attackani:
	move.l	#0,d0
	move.w	atani,d0
	mulu	#4,d0
	lea	atlist,a0
	move.l	(a0,d0.w),spblock+8
*	move.l	#balls3,spblock+8
	addq.w	#1,atani
	cmpi.w	#21,atani
	blt	atnb
	move.w	#0,atani
atnb:
	rts

atlist:
	dc.l	balls1,balls2,balls3,balls4,balls5,balls6,balls7
	dc.l	balls8,balls9,balls10,balls11,balls12,balls13,balls14
	dc.l	balls15,balls16,balls17,balls18,balls19,balls20,balls21
*******************************
atmaths:
	move.w	atx,d0
	move.w	aty,d1
	add.w	atxvel,d0
	add.w	atyvel,d1
	cmpi.w	#4,d0
	bgt	atm1
	neg	atxvel
	bra	chkhit1
atm1:
	cmpi.w	#208,d0
	blt	atm2
	neg	atxvel
	bra	chkhit3
atm2:
	cmpi.w	#4,d1
	bgt	atm3
	neg	atyvel
	bra	chkhit2
atm3:
	cmpi.w	#180,d1
	blt	atm4
	neg	atyvel
	bra	chkhit4
atm4:
	rts

chkhit1:
	cmpi.w	#1,whsp
	bne	ch1b
	move.w	shipy,d0
	sub.w	#16,d0
	cmp.w	aty,d0
	bgt	ch1b
	add.w	#48,d0
	cmp.w	aty,d0
	blt	ch1b
	move.w	#1,hesdead
ch1b:	rts

chkhit2:
	cmpi.w	#2,whsp
	bne	ch2b
	move.w	shipx,d0
	sub.w	#16,d0
	cmp.w	atx,d0
	bgt	ch2b
	add.w	#48,d0
	cmp.w	atx,d0
	blt	ch2b
	move.w	#1,hesdead
ch2b:	rts

chkhit3:
	cmpi.w	#3,whsp
	bne	ch3b
	move.w	shipy,d0
	sub.w	#16,d0
	cmp.w	aty,d0
	bgt	ch3b
	add.w	#48,d0
	cmp.w	aty,d0
	blt	ch3b
	move.w	#1,hesdead
ch3b:	rts
	
chkhit4:
	cmpi.w	#0,whsp
	bne	ch4b
	move.w	shipx,d0
	sub.w	#16,d0
	cmp.w	atx,d0
	bgt	ch4b
	add.w	#48,d0
	cmp.w	atx,d0
	blt	ch4b
	move.w	#1,hesdead
ch4b:	rts

**********************************************************
blowitup:
	move.w	#1,dopr
	bsr	bigboomsound
	move.w	#30,d7
bip:
	move.w	d7,-(sp)
	move.l	screen3,a0
	add.l	#13328,a0
	move.w	#31,d6
bip1:
	move.w	#%0111111111111111,d0
	bsr	random
	move.w	d0,(a0)+
	move.w	#0,(a0)+
	move.w	#0,(a0)+
	move.w	#0,(a0)+
	move.w	#0111111111111111,d0
	bsr	random
	move.w	d0,(a0)+
	move.w	#0,(a0)+
	move.w	#0,(a0)+
	move.w	#0,(a0)+
	add.l	#144,a0
	dbf	d6,bip1

	bsr	copyscr
	bsr	blowani
	add.w	#-2,b1x
	move.w  b1x,spblock	;\
	add.w	#-2,b1y
        move.w  b1y,spblock+2
        move.w  #16,spblock+4
        move.w  #1,spblock+6
        move.l  #gtemp,spblock+12
        move.w  #1,spblock+26
        move.l  #gmask,spblock+38
	bsr	shotsp

	add.w	#0,b2x
	move.w  b2x,spblock	;|
	add.w	#-3,b2y
        move.w  b2y,spblock+2
        move.w  #16,spblock+4
        move.w  #1,spblock+6
        move.l  #gtemp,spblock+12
        move.w  #1,spblock+26
        move.l  #gmask,spblock+38
	bsr	shotsp

	add.w	#2,b3x
	move.w  b3x,spblock	;/
	add.w	#-2,b3y
        move.w  b3y,spblock+2
        move.w  #16,spblock+4
        move.w  #1,spblock+6
        move.l  #gtemp,spblock+12
        move.w  #1,spblock+26
        move.l  #gmask,spblock+38
	bsr	shotsp

	add.w	#3,b4x
	move.w  b4x,spblock	;-
	add.w	#0,b4y
        move.w  b4y,spblock+2
        move.w  #16,spblock+4
        move.w  #1,spblock+6
        move.l  #gtemp,spblock+12
        move.w  #1,spblock+26
        move.l  #gmask,spblock+38
	bsr	shotsp

	add.w	#2,b5x
	move.w  b5x,spblock	;\
	add.w	#2,b5y
        move.w  b5y,spblock+2
        move.w  #16,spblock+4
        move.w  #1,spblock+6
        move.l  #gtemp,spblock+12
        move.w  #1,spblock+26
        move.l  #gmask,spblock+38
	bsr	shotsp

	add.w	#0,b6x
	move.w  b6x,spblock	;|
	add.w	#3,b6y
        move.w  b6y,spblock+2
        move.w  #16,spblock+4
        move.w  #1,spblock+6
        move.l  #gtemp,spblock+12
        move.w  #1,spblock+26
        move.l  #gmask,spblock+38
	bsr	shotsp

	add.w	#-2,b7x
	move.w  b7x,spblock	;/
	add.w	#2,b7y
        move.w  b7y,spblock+2
        move.w  #16,spblock+4
        move.w  #1,spblock+6
        move.l  #gtemp,spblock+12
        move.w  #1,spblock+26
        move.l  #gmask,spblock+38
	bsr	shotsp

	add.w	#-3,b8x
	move.w  b8x,spblock	;-
	add.w	#0,b8y
        move.w  b8y,spblock+2
        move.w  #16,spblock+4
        move.w  #1,spblock+6
        move.l  #gtemp,spblock+12
        move.w  #1,spblock+26
        move.l  #gmask,spblock+38
	bsr	shotsp
	bsr	putnums
	bsr	flip_scr
	bsr	keyboard
	move.w	(sp)+,d7
	dbf	d7,bip
	bsr	pay
pwait:
	tst.b	inuse
	bne	pwait
	rts


blowani:
	move.l	#0,d0
	move.w	blani,d0
	mulu	#4,d0
	lea	bllist,a0
	move.l	(a0,d0.w),spblock+8
	addq.w	#1,blani
	cmpi.w	#3,blani
	blt	bl
	move.w	#0,blani
bl:
	rts

bllist:	dc.l	gore1,gore2,gore3
blani:	blk.w	1,0
b1x:	blk.w	1,0
b1y:	blk.w	1,0
b2x:	blk.w	1,0
b2y:	blk.w	1,0
b3x:	blk.w	1,0
b3y:	blk.w	1,0
b4x:	blk.w	1,0
b4y:	blk.w	1,0
b5x:	blk.w	1,0
b5y:	blk.w	1,0
b6x:	blk.w	1,0
b6y:	blk.w	1,0
b7x:	blk.w	1,0
b7y:	blk.w	1,0
b8x:	blk.w	1,0
b8y:	blk.w	1,0
**************************************
battack:
	cmpi.w	#8,level
	ble	bna
	tst.w	battacker
	bmi	bnoattack
	bra	bisattack
bnoattack:
	move.l	#100,d0
	bsr	randomplus
	cmpi.w	#1,d0
	bge	bna
	bsr	appear
	move.w	#1,battacker
	move.l	#3,d0
	bsr	randomplus
	addq.w	#1,d0
	move.w	d0,batyvel
	move.l	#3,d0
	bsr	randomplus
	addq.w	#1,d0
	move.w	d0,batxvel
	move.w	#112,batx
	move.w	#99,baty
	move.w	#0,batani
bisattack:
	move.w	batxvel,d0
	add.w	d0,batx
	move.w  batx,spblock
	move.w	batyvel,d0
	add.w	d0,baty
        move.w  baty,spblock+2
        move.w  #16,spblock+4
        move.w  #1,spblock+6
        move.l  #gtemp,spblock+12
        move.w  #1,spblock+26
        move.l  #gmask,spblock+38
	bsr	battackani
	bsr	batmaths	
	bsr	shotsp
bna:	rts


battacker:
	blk.w	1,0
batyvel:	blk.w	1,0
batxvel:	blk.w	1,0
batx:	blk.w	1,0
baty:	blk.w	1,0
batani:	blk.w	1,0
******************************
battackani:
	move.l	#0,d0
	move.w	batani,d0
	mulu	#4,d0
	lea	atlist,a0
	move.l	(a0,d0.w),spblock+8
*	move.l	#balls3,spblock+8
	addq.w	#1,batani
	cmpi.w	#21,batani
	blt	batnb
	move.w	#0,batani
batnb:
	rts

*******************************
batmaths:
	move.w	batx,d0
	move.w	baty,d1
	add.w	batxvel,d0
	add.w	batyvel,d1
	cmpi.w	#4,d0
	bgt	batm1
	neg	batxvel
	bra	bchkhit1
	rts
batm1:
	cmpi.w	#208,d0
	blt	batm2
	neg	batxvel
	bra	bchkhit3
	rts
batm2:
	cmpi.w	#4,d1
	bgt	batm3
	neg	batyvel
	bra	bchkhit2
	rts
batm3:
	cmpi.w	#180,d1
	blt	batm4
	neg	batyvel
	bra	bchkhit4
	rts
batm4:
	rts

bchkhit1:
	cmpi.w	#1,whsp
	bne	bch1b
	move.w	shipy,d0
	sub.w	#16,d0
	cmp.w	baty,d0
	bgt	bch1b
	add.w	#48,d0
	cmp.w	baty,d0
	blt	bch1b
	move.w	#1,hesdead
bch1b:	rts

bchkhit2:
	cmpi.w	#2,whsp
	bne	bch2b
	move.w	shipx,d0
	sub.w	#16,d0
	cmp.w	batx,d0
	bgt	bch2b
	add.w	#48,d0
	cmp.w	batx,d0
	blt	bch2b
	move.w	#1,hesdead
bch2b:	rts

bchkhit3:
	cmpi.w	#3,whsp
	bne	bch3b
	move.w	shipy,d0
	sub.w	#16,d0
	cmp.w	baty,d0
	bgt	bch3b
	add.w	#48,d0
	cmp.w	baty,d0
	blt	bch3b
	move.w	#1,hesdead
bch3b:	rts
	
bchkhit4:
	cmpi.w	#0,whsp
	bne	bch4b
	move.w	shipx,d0
	sub.w	#16,d0
	cmp.w	batx,d0
	bgt	bch4b
	add.w	#48,d0
	cmp.w	batx,d0
	blt	bch4b
	move.w	#1,hesdead
bch4b:	rts

remember:	blk.w	1,-1
bigavail:	blk.w	1,-1
break:		blk.w	1,-1
**********************************
		
*******************************
prebreakout:
	jsr	loadcorners
	bsr	putfirst
	bsr	fadein
	move.w	#1,dopr
	move.w	#1,break
	move.w	#0,blockout
	move.l	#bat0,wship0
	move.l	#bat1,wship1
	move.l	#bat2,wship2
	move.l	#bat3,wship3
	tst.w	bigavail
	bmi	preb
	move.w	#1,remember
	move.w	#-1,bigavail
preb:
	bsr	copyscr
	bsr	putnums
	bsr	putsp
	move.w	#1,sw
	move.w	#5,sh
        move.w  shipx,d0
        move.w  shipy,d1
        tst.w   whsp
        bne     ps1
        add.w   #16,d0
        subq.w  #5,d1
        move.w  #-2,hotxvel
        move.w  #-2,hotyvel
        bra     psback
ps1:
        cmpi.w  #1,whsp
        bne     ps2
        add.w   #16,d1
        add.w   #10,d0
        move.w  #2,hotxvel
        move.w  #-2,hotyvel
        bra     psback
ps2:
        cmpi.w  #2,whsp
        bne     ps3
        add.w   #12,d0
        add.w   #11,d1
        move.w  #2,hotxvel
        move.w  #2,hotyvel
        bra     psback
ps3:
        subq.w  #6,d0
        add.w   #11,d1  
        move.w  #-2,hotxvel
        move.w  #2,hotyvel
psback: move.w  d0,hootx
        move.w  d1,hooty
	bsr	doball
	bsr	flip_scr
	tst.w	buttondat
	bne	breakout
	bra	preb


breakout:
	move.l	#bat0,wship0
	move.l	#bat1,wship1
	move.l	#bat2,wship2
	move.l	#bat3,wship3
	bsr	copyscr
	bsr	putsp
	bsr	doball
	bsr	shoot
	bsr	amidead
	bsr	putnums
        bsr     flip_scr
	bsr	keyboard
	tst.w	sdead
	bpl	psk
	cmpi.w	#10,brhits
	bge	prenextlev
	cmpi.w	#48,blockout
	bge	bout
	bra	breakout

prenextlev:
	tst.w	remember
	bmi	pnlb
	move.w	#1,bigavail
	bsr	weapons
pnlb:
	move.w	#-1,remember
	bra	nextlev

bout:
	move.w	#1,bigavail
	move.w	#1,remember
	bra	prenextlev

psk:
	tst.w	remember
	bmi	spnlb
	move.w	#1,bigavail
	bsr	weapons
spnlb:
	move.w	#-1,remember
	move.w	#-1,sdead
	bra	skipb

***************************
doball:
        move.w  sh,spblock+4
        move.w  sw,spblock+6
        move.l  #ball,spblock+8
        move.l  #gtemp,spblock+12
        move.w  sw,spblock+26
        move.l  #gmask,spblock+38
	bra	maths	

imback:	move.l	#0,d0
	move.l	#0,d1
	move.l	ptsin,a0
	move.w	hootx,d0
	move.w	hooty,d1
	add.w	hotxvel,d0
	add.w	hotyvel,d1
*	add.w	hotxvel,d0
*	add.w	hotyvel,d1
	move.w	d0,(a0)
	move.w	d1,2(a0)
	add.w	#2,(a0)
	dc.w	getpix
	tst.w	d0
	beq	ball1
	neg	hotyvel
	bsr	hitablock2
	bra	ball4
ball1:
	move.l	ptsin,a0
	add.w	#2,(a0)
	add.w	#2,2(a0)
	dc.w	getpix
	tst.w	d0
	beq	ball2
	neg	hotxvel
	bsr	hitablock2
	bra	ball4
ball2:
	move.l	ptsin,a0
	sub.w	#2,(a0)
	add.w	#2,2(a0)
	dc.w	getpix
	tst.w	d0
	beq	ball3
	neg	hotyvel
	bsr	hitablock2
	bra	ball4
ball3:
	move.l	ptsin,a0
	sub.w	#2,(a0)
	sub.w	#2,2(a0)
	dc.w	getpix
	tst.w	d0
	beq	ball4
	neg	hotxvel
	bsr	hitablock2
ball4:
	move.w	hotxvel,d7
	add.w	d7,hootx
	move.w  hootx,spblock
	move.w	hotyvel,d7
	add.w	d7,hooty
        move.w  hooty,spblock+2
	bsr	shotsp
	rts

sdead:	blk.w	1,-1
*******************************
mathover:
	bsr	boom
	move.w	#13,d0
	move.l	pa,a0
	move.l	#boomcols,a1
mo2:	move.w	(a1)+,pa
	move.w	#50000,d7
	bsr	delay
	dbf	d0,mo2
	move.w	#1,sdead
	bra	ball4

maths:
	move.w	hootx,d0
	move.w	hooty,d1
	add.w	hotxvel,d0
	add.w	hotyvel,d1
	addq.w	#2,d0
	addq.w	#2,d1


	cmpi.w	#12,d0
	bge	m1
	bra	hkhit1
	
m1:
	cmpi.w	#212,d0
	ble	m2
	bra	hkhit3
m2:
	cmpi.w	#12,d1
	bge	m3
	bra	hkhit2
m3:
	cmpi.w	#187,d1
	ble	m4
	bra	hkhit4
m4:
	bra	imback

hkhit1:
	cmpi.w	#1,whsp
	bne	h1b
	move.w	shipy,d2
	sub.w	#4,d2
	cmp.w	d1,d2
	bgt	h1b
	add.w	#36,d2
	cmp.w	d1,d2
	blt	h1b
	neg	hotxvel
	bra	ball4
h1b:
	cmpi.w	#26,d1
	blt	hh1
	cmpi.w	#173,d1
	blt	h1c

hh1:	neg	hotxvel
	bra	ball4

h1c:	bra	mathover


hkhit2:
	cmpi.w	#2,whsp
	bne	h2b
	move.w	shipx,d2
	sub.w	#4,d2
	cmp.w	d0,d2
	bgt	h2b
	add.w	#36,d2
	cmp.w	d0,d2
	blt	h2b
	neg	hotyvel
	bra	ball4
h2b:
	cmpi.w	#26,d0
	blt	hh2
	cmpi.w	#198,d0
	blt	h2c
hh2:	neg	hotyvel
	bra	ball4

h2c:	bra	mathover

hkhit3:
	cmpi.w	#3,whsp
	bne	h3b
	move.w	shipy,d2
	sub.w	#4,d2
	cmp.w	d1,d2
	bgt	h3b
	add.w	#36,d2
	cmp.w	d1,d2
	blt	h3b
	neg	hotxvel
	bra	ball4
h3b:
	cmpi.w	#26,d1
	blt	hh3
	cmpi.w	#173,d1
	blt	h3c
hh3:	neg	hotxvel
	bra	ball4

h3c:	bra	mathover
	
hkhit4:
	cmpi.w	#0,whsp
	bne	h4b
	move.w	shipx,d2
	sub.w	#4,d2
	cmp.w	d0,d2
	bgt	h4b
	add.w	#36,d2
	cmp.w	d0,d2
	blt	h4b
	neg	hotyvel
	bra	ball4
h4b:
	cmpi.w	#26,d0
	blt	hh4
	cmpi.w	#198,d0
	blt	h4c
hh4:	neg	hotyvel
	bra	ball4
h4c:	bra	mathover

hotxvel:	blk.w	1,0
hotyvel:	blk.w	1,0
hootx:		blk.w	1,0
hooty:		blk.w	1,0

*******************************
pa:	equ	$ff8240
amidead:
	tst.w	hesdead
	bmi	adback
	bsr	deadboom
	bsr	head
	bra	amd3
amd1:	move.w	#13,d0
	move.l	pa,a0
	move.l	#boomcols,a1
amd2:	move.w	(a1)+,pa
	move.w	#50000,d7
	bsr	delay
	dbf	d0,amd2
amd3:	subq.w	#1,ships
	cmpi.w	#0,ships
	ble	alldead
	bsr	fadeout
	move.w	#-1,hesdead
	move.w	#1,dopr
        move.w  #-1,byebye
        move.w  #-1,bigflg
        move.w  #-1,shooting
	move.w	#-1,attacker
	move.w	#-1,battacker
	bsr	copyintoboth
	bsr	putfirst
	bsr	copyscr
	bsr	flip_scr
	bsr	copyscr
	bsr	fadein
	bsr	pregrow
	tst.w	remember
	bmi	amd4
	move.w	#1,bigavail
amd4:
	move.w	#-1,remember
	rts

adback:	rts

alldead:
	jmp ftf

delay:	dbf	d7,delay
	rts

*13328
head:
	move.l	#appear1,a1
	bsr	putheads
	bsr	copyscr
	bsr	flip_scr
	move.w	hd,d7
	bsr	delay

	move.l	#appear2,a1
	bsr	putheads
	bsr	copyscr
	bsr	flip_scr
	move.w	hd,d7
	bsr	delay

	move.l	#appear3,a1
	bsr	putheads
	bsr	copyscr
	bsr	flip_scr
	move.w	hd,d7
	bsr	delay

	move.l	#appear4,a1
	bsr	putheads
	bsr	copyscr
	bsr	flip_scr
	move.w	hd,d7
	bsr	delay

	move.l	#appear5,a1
	bsr	putheads
	bsr	copyscr
	bsr	flip_scr
	move.w	hd,d7
	bsr	delay

	move.l	#appear6,a1
	bsr	putheads
	bsr	copyscr
	bsr	flip_scr
	move.w	hd,d7
	bsr	delay

	move.l	#appear7,a1
	bsr	putheads
	bsr	copyscr
	bsr	flip_scr
	move.w	hd,d7
	bsr	delay

	move.l	#face1,a1
	bsr	putheads
	bsr	copyscr
	bsr	flip_scr
	move.w	hd,d7
	bsr	delay
mhlaugh:
	bsr	laugh
	move.w	#10,d7
ml:
	move.w	d7,-(sp)
	bsr	headani
	bsr	putheads
	bsr	copyscr
	bsr	flip_scr
	move.w	#50000,d7
	bsr	delay
	move.w	(sp)+,d7
	dbf	d7,ml		
	rts




headani:
	move.l	#0,d0
	move.w	hdani,d0
	mulu	#4,d0
	lea	headlist,a0
	move.l	(a0,d0.w),a1
	addq.w	#1,hdani
	cmpi.w	#3,hdani
	blt	hl
	move.w	#0,hdani
hl:
	rts

headlist:
	dc.l	face1,face2,face3
	dc.l	face4

hdani:	blk.w	1,0
hd:	blk.w	1,40000
*****************************************
*	expects a1 to have ad of sprite	*
*****************************************
putheads:
	move.l	screen3,a0
	add.l	#13328,a0
	move.w	#31,d0
ph:
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	add.l	#144,a0
	dbf	d0,ph
	rts

deadboom:
	bsr	boom
	move.w	#-1,bigavail
	tst.w	whsp
	bne	db1
	move.w	shipx,bl1x
	move.w	shipy,bl1y
	move.w	shipx,bl2x
	move.w	shipy,bl2y
	move.w	shipx,bl3x
	move.w	shipy,bl3y
	addq.w	#8,bl3x
	move.w	#20,d0
dba0:
	move.w	d0,-(sp)
	bsr	copyscr
	add.w	#-2,bl1x
	move.w  bl1x,spblock	;\
	add.w	#-2,bl1y
        move.w  bl1y,spblock+2
        move.w  #10,spblock+4
        move.w  #1,spblock+6
        move.l  #bl1s1,spblock+8
        move.l  #gtemp,spblock+12
        move.w  #1,spblock+26
        move.l  #gmask,spblock+38
	bsr	shotsp

	add.w	#0,bl2x
	move.w  bl2x,spblock	;\
	add.w	#-3,bl2y
        move.w  bl2y,spblock+2
        move.w  #9,spblock+4
        move.w  #1,spblock+6
        move.l  #bl1s2,spblock+8
        move.l  #gtemp,spblock+12
        move.w  #1,spblock+26
        move.l  #gmask,spblock+38
	bsr	shotsp


	add.w	#2,bl3x
	move.w  bl3x,spblock	;\
	add.w	#-2,bl3y
        move.w  bl3y,spblock+2
        move.w  #10,spblock+4
        move.w  #1,spblock+6
        move.l  #bl1s3,spblock+8
        move.l  #gtemp,spblock+12
        move.w  #1,spblock+26
        move.l  #gmask,spblock+38
	bsr	shotsp
	bsr	flip_scr
	move.w	(sp)+,d0
	dbf	d0,dba0
	rts

db1:
	cmpi.w	#1,whsp
	bne	db2
	move.w	shipx,bl1x
	move.w	shipy,bl1y
	move.w	shipx,bl2x
	move.w	shipy,bl2y
	move.w	shipx,bl3x
	move.w	shipy,bl3y
	addq.w	#8,bl3y	
	move.w	#20,d0
dba1:
	move.w	d0,-(sp)
	bsr	copyscr
	add.w	#2,bl1x
	move.w  bl1x,spblock	;\
	add.w	#-2,bl1y
        move.w  bl1y,spblock+2
        move.w  #7,spblock+4
        move.w  #1,spblock+6
        move.l  #bl4s1,spblock+8
        move.l  #gtemp,spblock+12
        move.w  #1,spblock+26
        move.l  #gmask,spblock+38
	bsr	shotsp

	add.w	#3,bl2x
	move.w  bl2x,spblock	;\
	add.w	#0,bl2y
        move.w  bl2y,spblock+2
        move.w  #16,spblock+4
        move.w  #1,spblock+6
        move.l  #bl4s2,spblock+8
        move.l  #gtemp,spblock+12
        move.w  #1,spblock+26
        move.l  #gmask,spblock+38
	bsr	shotsp


	add.w	#2,bl3x
	move.w  bl3x,spblock	;\
	add.w	#2,bl3y
        move.w  bl3y,spblock+2
        move.w  #7,spblock+4
        move.w  #1,spblock+6
        move.l  #bl4s3,spblock+8
        move.l  #gtemp,spblock+12
        move.w  #1,spblock+26
        move.l  #gmask,spblock+38
	bsr	shotsp
	bsr	flip_scr
	move.w	(sp)+,d0
	dbf	d0,dba1
	rts

db2:
	cmpi.w	#2,whsp
	bne	db3
	move.w	shipx,bl1x
	move.w	shipy,bl1y
	move.w	shipx,bl2x
	move.w	shipy,bl2y
	move.w	shipx,bl3x
	move.w	shipy,bl3y
	add.w	#16,bl1x
	add.w	#16,bl2x
	add.w	#24,bl3x
	
	move.w	#20,d0
dba2:
	move.w	d0,-(sp)
	bsr	copyscr
	add.w	#2,bl1x
	move.w  bl1x,spblock	;\
	add.w	#2,bl1y
        move.w  bl1y,spblock+2
        move.w  #10,spblock+4
        move.w  #1,spblock+6
        move.l  #bl3s3,spblock+8
        move.l  #gtemp,spblock+12
        move.w  #1,spblock+26
        move.l  #gmask,spblock+38
	bsr	shotsp

	add.w	#0,bl2x
	move.w  bl2x,spblock	;\
	add.w	#3,bl2y
        move.w  bl2y,spblock+2
        move.w  #9,spblock+4
        move.w  #1,spblock+6
        move.l  #bl3s2,spblock+8
        move.l  #gtemp,spblock+12
        move.w  #1,spblock+26
        move.l  #gmask,spblock+38
	bsr	shotsp

	add.w	#-2,bl3x
	move.w  bl3x,spblock	;\
	add.w	#2,bl3y
        move.w  bl3y,spblock+2
        move.w  #10,spblock+4
        move.w  #1,spblock+6
        move.l  #bl3s1,spblock+8
        move.l  #gtemp,spblock+12
        move.w  #1,spblock+26
        move.l  #gmask,spblock+38
	bsr	shotsp
	bsr	flip_scr
	move.w	(sp)+,d0
	dbf	d0,dba2
	rts

db3:
	cmpi.w	#3,whsp
	bne	db4
	move.w	shipx,bl1x
	move.w	shipy,bl1y
	move.w	shipx,bl2x
	move.w	shipy,bl2y
	move.w	shipx,bl3x
	move.w	shipy,bl3y
	add.w	#8,bl1y
	add.w	#8,bl2y
	add.w	#16,bl3y
	sub.w	#5,bl1x
	sub.w	#5,bl2x
	sub.w	#5,bl3x
	move.w	#20,d0
dba3:
	move.w	d0,-(sp)
	bsr	copyscr
	add.w	#-2,bl1x
	move.w  bl1x,spblock	;\
	add.w	#-2,bl1y
        move.w  bl1y,spblock+2
        move.w  #7,spblock+4
        move.w  #1,spblock+6
        move.l  #bl2s1,spblock+8
        move.l  #gtemp,spblock+12
        move.w  #1,spblock+26
        move.l  #gmask,spblock+38
	bsr	shotsp

	add.w	#-3,bl2x
	move.w  bl2x,spblock	;\
	add.w	#0,bl2y
        move.w  bl2y,spblock+2
        move.w  #16,spblock+4
        move.w  #1,spblock+6
        move.l  #bl2s2,spblock+8
        move.l  #gtemp,spblock+12
        move.w  #1,spblock+26
        move.l  #gmask,spblock+38
	bsr	shotsp

	add.w	#-2,bl3x
	move.w  bl3x,spblock	;\
	add.w	#2,bl3y
        move.w  bl3y,spblock+2
        move.w  #7,spblock+4
        move.w  #1,spblock+6
        move.l  #bl2s3,spblock+8
        move.l  #gtemp,spblock+12
        move.w  #1,spblock+26
        move.l  #gmask,spblock+38
	bsr	shotsp
	bsr	flip_scr
	move.w	(sp)+,d0
	dbf	d0,dba3
	rts

db4:	rts

hesdead:	blk.w	1,-1
bl1x:	blk.w	1,0
bl1y:	blk.w	1,0
bl2x:	blk.w	1,0
bl2y:	blk.w	1,0
bl3x:	blk.w	1,0
bl3y:	blk.w	1,0

********************************************************
*       Now for some fire power
*       this will be the standard shot
********************************************************
shoot:
        tst.w   shooting
        bmi     newshot
normshot:
        cmpi.w  #1,shooting
        bne     bigshoot
        move.l  ptsin,a0
        move.w  shootx,d0
        add.w   shotxvel,d0
        move.w  d0,(a0)
        move.w  d0,shootx
        move.w  shooty,d0
        add.w   shotyvel,d0
        move.w  d0,2(a0)
        move.w  d0,shooty
	bra	fitit
nsb:    dc.w    getpix
        tst.w   d0
        bne     hitablock
	move.w	shootx,pixelx
	move.w	shooty,pixely
	move.w	#1,pixelcolor
	bsr	myplot
	addq.w	#1,pixely
	bsr	myplot
ns:     rts

bigshoot:
	cmpi.w	#2,shooting
	bne	noshoot
	move.w	shotxvel,d0
	add.w	d0,shootx
	move.w  shootx,spblock
	move.w	shotyvel,d0
	add.w	d0,shooty
        move.w  shooty,spblock+2
        move.w  sh,spblock+4
        move.w  sw,spblock+6
        move.l  stype,spblock+8
        move.l  #gtemp,spblock+12
        move.w  #1,spblock+26
        move.l  #gmask,spblock+38
	bsr	bfitit
	tst.w	d7
	bmi	noshoot
	bsr	shotsp
	move.l	ptsin,a0
	move.w	shootx,d0
	move.w	shooty,d1
	add.w	bigx,d0
	add.w	bigy,d1
	move.w	d0,(a0)
	move.w	d1,2(a0)
	dc.w	getpix
	tst.w	d0
	bne	hitablockb
noshoot:
	rts

noshoot2:
	move.w	#-1,shooting
        rts


gtemp:	blk.w	200,0
spblock:	blk.w	50,0
gmask:	blk.w	200,0
stype:	blk.l	1,0
sh:	blk.w	1,0
sw:	blk.w	1,0
bigx:	blk.w	1,0
bigy:	blk.w	1,0
bigcount:	blk.w	1,0

	
newshot:
        cmpi.w  #1,buttondat
        bne     newshot2
	bsr	litshot
        move.w  shipx,d0
        move.w  shipy,d1
        tst.w   whsp
        bne     ns1
        add.w   #15,d0
        subq.w  #2,d1
        move.w  #0,shotxvel
        move.w  #-6,shotyvel
        bra     nsback
ns1:
        cmpi.w  #1,whsp
        bne     ns2
        add.w   #15,d1
        add.w   #10,d0
        move.w  #6,shotxvel
        move.w  #0,shotyvel
        bra     nsback
ns2:
        cmpi.w  #2,whsp
        bne     ns3
        add.w   #15,d0
        add.w   #12,d1
        move.w  #0,shotxvel
        move.w  #6,shotyvel
        bra     nsback
ns3:
        subq.w  #2,d0
        add.w   #15,d1  
        move.w  #-6,shotxvel
        move.w  #0,shotyvel
nsback: move.w  d0,shootx
        move.w  d1,shooty
        move.w  #1,shooting     ;denote that it is a normal shot
        rts


newshot2:
	tst.w	bigavail
	bmi	shootback2
        cmpi.w  #2,buttondat
        bne     shootback2
	
ns2a:
        cmpi.w  #2,buttondat
        bne     dobis
	addq.w	#2,strength
	bsr	copyscr
        bsr     smallgrow
	bsr	putsp
	bsr     bbani
        bsr     brainy
        bsr     animboom
	bsr	dopanel
	bsr	attack
	bsr	battack
        bsr     flip_scr
	bra	ns2a


dobis:
	bsr	bigshot
	move.l	#0,d0
	move.w	strength,d0
	divu	#10,d0
	move.w	d0,bigcount
	add.w	d0,score
	move.w	#1,dopr
	move.w	#0,strength
        move.w  shipx,d0
        move.w  shipy,d1
        tst.w   whsp
        bne     nns1
	move.l	#upshot,stype
	move.w	#1,sw
	move.w	#$d,sh
        add.w   #13,d0
        sub.w   #4,d1
	move.w	#2,bigx
	move.w	#-1,bigy
        move.w  #0,shotxvel
        move.w  #-6,shotyvel
        bra     shootback
nns1:
        cmpi.w  #1,whsp
        bne     nns2
	move.l	#rightshot,stype
	move.w	#1,sw
	move.w	#5,sh
        add.w   #13,d1
        add.w   #10,d0
	move.w	#$e,bigx
	move.w	#2,bigy
        move.w  #6,shotxvel
        move.w  #0,shotyvel
        bra     shootback
nns2:
        cmpi.w  #2,whsp
        bne     nns3
	move.l	#downshot,stype
	move.w	#1,sw
	move.w	#$d,sh
        add.w   #13,d0
        add.w   #12,d1
	move.w	#2,bigx
	move.w	#$e,bigy
        move.w  #0,shotxvel
        move.w  #6,shotyvel
        bra     shootback
nns3:
	move.l	#leftshot,stype
	move.w	#1,sw
	move.w	#5,sh
        subq.w  #3,d0
        add.w   #13,d1  
	move.w	#-1,bigx
	move.w	#2,bigy
        move.w  #-6,shotxvel
        move.w  #0,shotyvel
shootback:
	move.w  d0,shootx
        move.w  d1,shooty
        move.w  #2,shooting     ;denote that it is a normal shot
        rts

shootback2:
	rts

******************************************************
shoot2:
        tst.w   shooting
        bmi     newshots

normshot2:
        move.l  ptsin,a0
        move.w  shootx,d0
        add.w   shotxvel,d0
        move.w  d0,(a0)
        move.w  d0,shootx
        move.w  shooty,d0
        add.w   shotyvel,d0
        move.w  d0,2(a0)
        move.w  d0,shooty
	bra	gfitit
gnsb:   dc.w    getpix
        cmpi.w  #14,d0
        bge     itsahit
	move.w	shootx,pixelx
	move.w	shooty,pixely
	move.w	#1,pixelcolor
	bsr	myplot
	addq.w	#1,pixely
	bsr	myplot

gns:    rts




newshots:
        cmpi.w  #1,buttondat
        bne     newshots2
	bsr	litshot
        move.w  shipx,d0
        move.w  shipy,d1
        add.w   #15,d0
        subq.w  #2,d1
        move.w  #0,shotxvel
        move.w  #-6,shotyvel
gnsback:
	move.w  d0,shootx
        move.w  d1,shooty
        move.w  #1,shooting     ;denote that it is a normal shot
        rts

newshots2:
	rts



gfitit:
	cmpi.w	#5,shooty
	bgt	gnsb
	move.w	#-1,shooting
	bra	gns

*************************************************
*	the old have I hit a bubble routine	*
*************************************************
itsahit:
*	cmpi.w	#14,d0
*	blt	itsahitb
	move.w	#-1,shooting

	move.w	bub1x,d0
	move.w	bub1y,d1
	lea	b1,a0		
	bsr	chkit
	move.w	bub2x,d0
	move.w	bub2y,d1
	lea	b2,a0		
	bsr	chkit
	move.w	bub3x,d0
	move.w	bub3y,d1
	lea	b3,a0		
	bsr	chkit
	move.w	bub4x,d0
	move.w	bub4y,d1
	lea	b4,a0		
	bsr	chkit
	move.w	bub5x,d0
	move.w	bub5y,d1
	lea	b5,a0		
	bsr	chkit
	move.w	bub6x,d0
	move.w	bub6y,d1
	lea	b6,a0		
	bsr	chkit
	move.w	bub7x,d0
	move.w	bub7y,d1
	lea	b7,a0		
	bsr	chkit
	bra	gns
	rts


chkit:
	move.w  d0,spblock
        move.w  d1,spblock+2
	cmp.w	shootx,d0
	blt	chkit2
	rts
chkit2:
	add.w	#16,d0
	cmp.w	shootx,d0
	bgt	chkit3
	rts
chkit3:
	cmp.w	shooty,d1
	blt	chkit4
	rts
chkit4:
	add.w	#16,d1
	cmp.w	shooty,d1
	bgt	chkit5
	rts
chkit5:
	move.w	#-1,(a0)
	bsr	boom
	addq.w	#1,ballhits
	add.w	#10,score
	move.w	#1,dopr

        move.w  #16,spblock+4
        move.w  #1,spblock+6
        move.l  #gtemp,spblock+12
        move.w  #1,spblock+26
        move.l  #gmask,spblock+38
	move.l	#pop,spblock+8
	move.l	#b1,a0
	bsr	shotsp
	rts


itsahitb:
	bra	gns

fitit:
        cmpi.w  #94,shootx
        blt     fititback
        cmpi.w  #82,shooty
        blt     fititback
        cmpi.w  #128,shootx
        bgt     fititback
        cmpi.w  #114,shooty
        bgt     fititback
        move.w  #-1,shooting
	addq.w	#1,brhits
	addq.w	#8,score
	move.w	#1,dopr
	bra	ns

fititback:
        cmpi.w  #12,shootx
        blt     fititback2
        cmpi.w  #12,shooty
        blt     fititback2
        cmpi.w  #209,shootx
        bgt     fititback2
        cmpi.w  #185,shooty
        bgt     fititback2
        bra	nsb
fititback2:
        move.w  #-1,shooting
        bra	ns


bfitit:
	move.w	shootx,d0
	move.w	shooty,d1
	add.w	bigx,d0
	add.w	bigy,d1

        cmpi.w  #94,d0
        blt     bfititback
        cmpi.w  #82,d1
        blt     bfititback
        cmpi.w  #128,d0
        bgt     bfititback
        cmpi.w  #116,d1
        bgt     bfititback
        move.w  #-1,shooting
	addq.w	#1,brhits
	addq.w	#8,score
	move.w	#1,dopr
	move.w	#-1,d7
	rts

bfititback:
        cmpi.w  #12,d0
        blt     bfititback2
        cmpi.w  #12,d1
        blt     bfititback2
        cmpi.w  #209,d0
        bgt     bfititback2
        cmpi.w  #185,d1
        bgt     bfititback2
        rts
bfititback2:
        move.w  #-1,shooting
        rts

strength:	blk.w	1,0
********************************************************
dopanel:
	cmpi.w	#75,strength
	blt	okay
	move.w	#75,strength
okay:	move.l	hiden,a0
	add.l	#29712,a0
	lea	panel,a1

	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	add.l	#112,a0
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+
	move.l	(a1)+,(a0)+

	move.l	#0,d0
	move.w	strength,d0
*	divu	#2,d0
	add.w	#235,d0
	move.l	linepar,a0
	move.w	d0,42(a0)
	move.w	#235,38(a0)
	move.w	#185,40(a0)
	move.w	#0,50(a0)	;line pattern
	move.l	#patmsk,46(a0)
	move.w	#1,24(a0)
	move.w	#0,26(a0)
	move.w	#1,28(a0)
	move.w	#1,30(a0)
	move.w	#0,36(a0)
	dc.w	$a004
	move.l	linepar,a0
	move.w	#186,40(a0)
*	move.w	#0,36(a0)
	dc.w	$a004
	rts

patmsk:	dc.w	$ffff
**********************************
hitablock:
        cmpi.w  #6,d0
        ble     bigboom
	addq.w	#1,score
	move.w	#1,dopr
hitab:	move.l  #0,d0
        move.l  #0,d1
        move.l  #0,d2
        move.l  #0,d3
        move.l  ptsin,a6
        move.l  screen3,a5
        move.w  0(a6),d0        ;x
        move.w  2(a6),d1        ;y
        divu    #8,d1
        move.w  d1,d3
        mulu    #8,d3
        swap    d1
        cmpi.w  #3,d1
        bge     ht1
        subq.w  #5,d3
        bra     ht2
ht1:
        addq.w  #3,d3
ht2:
        move.w  d3,2(a6)
        mulu    #160,d3         ;get ad of start of line
        divu    #16,d0          ;halve it
        move.w  d0,d2
        swap    d0
        cmpi.w  #$8,d0
        blt     itseveh
        add     #1,d3
itseveh:                
        mulu    #8,d2
        add.w   d2,d3
	move.w	d3,hidbad
        add.w   d3,a5
        move.l  a5,blockad
        move.w  #5,byebye
        move.w  #-1,shooting


        move.l  #0,d0
        move.l  blockad,a5
        move.w  #7,d0
sfillh:
        move.b  #0,(a5)
	add.l	#2,a5
        move.b  #0,(a5)
        add.l   #2,a5
        move.b  #0,(a5)
        add.l   #2,a5
        move.b  #0,(a5)
        add.l   #2,a5
        add.l   #152,a5
        dbf     d0,sfillh
	addq.w	#1,blockout
*	cmpi.w	#48,blockout
*	bge	kb
	rts

animboom:
        tst.w   byebye
        bmi     aboomback
        move.l  #0,d0
	move.l	hiden,a5
        add.w	hidbad,a5
        move.l  #animblocks,a6
        move.w  byebye,d0
        mulu    #32,d0
        adda    d0,a6
        move.w  #7,d0
sfillht:
        move.b  (a6)+,(a5)
        add.l   #2,a5
        move.b  (a6)+,(a5)
        add.l   #2,a5
        move.b  (a6)+,(a5)
        add.l   #2,a5
        move.b  (a6)+,(a5)
        add.l   #2,a5
        add.l   #152,a5
        dbf     d0,sfillht
        sub.w   #1,byebye
        rts
aboomback:
        rts

hidbad:	blk.w	1,0


**********************************
hitablock2:
	cmpi.w	#6,d0
	ble	hback2
        move.l  ptsin,a6
        move.w  0(a6),d0        ;x
        move.w  2(a6),d1        ;y
	cmpi.w	#94,d0
	blt	hbh2
	cmpi.w	#82,d1
	blt	hbh2
	cmpi.w	#128,d0
	bgt	hbh2
	cmpi.w	#114,d1
	bgt	hbh2
	bra	hback2
hbh2:	addq.w	#1,score
	move.w	#1,dopr
	move.l  #0,d0
        move.l  #0,d1
        move.l  #0,d2
        move.l  #0,d3
        move.l  ptsin,a6
        move.l  screen3,a5
        move.w  0(a6),d0        ;x
        move.w  2(a6),d1        ;y
        divu    #8,d1
        move.w  d1,d3
        mulu    #8,d3
        swap    d1
        cmpi.w  #3,d1
        bge     ht12
        subq.w  #5,d3
        bra     ht22
ht12:
        addq.w  #3,d3
ht22:
        move.w  d3,2(a6)
        mulu    #160,d3         ;get ad of start of line
        divu    #16,d0          ;halve it
        move.w  d0,d2
        swap    d0
        cmpi.w  #$8,d0
        blt     itseveh2
        adda    #1,d3
itseveh2:
        mulu    #8,d2
        add.w   d2,d3
*	move.w	d3,hidbad
        add.w   d3,a5
        move.l  a5,blockad
*        move.w  #5,byebye
        move.w  #-1,shooting

        move.l  #0,d0
        move.l  blockad,a5
        move.w  #7,d0
sfillh2:
        move.b  #0,(a5)
	add.l	#2,a5
        move.b  #0,(a5)
        add.l   #2,a5
        move.b  #0,(a5)
        add.l   #2,a5
        move.b  #0,(a5)
        add.l   #2,a5
        add.l   #152,a5
        dbf     d0,sfillh2
	addq.w	#1,blockout
*	cmpi.w	#10,blockout
*	bge	kb
	rts
kb:	move.w	#10,brhits
	move.w	#1,bigavail
	move.w	#1,remember
	rts
hback2:
	bra	hbr5
*	move.w	hotxvel,d1
*	add.w	d1,hootx
*	move.w	hotyvel,d1
*	add.w	d1,hooty
*	cmpi.w	#3,d0
*	ble	hbr5
*	tst.w	hotxvel
*	bmi	hbr2
*	move.l	#2,d0
*	bsr	randomplus
*	addq.w	#1,d0
*	move.w	d0,hotxvel
*	bra	hbr3
hbr2:	
	move.l	#2,d0
	bsr	randomplus
	neg	d0
	subq.w	#1,d0
	move.w	d0,hotxvel


hbr3:	tst.w	hotyvel
	bmi	hbr4
	move.l	#2,d0
	bsr	randomplus
	addq.w	#1,d0
	move.w	d0,hotyvel
	bra	hbr5
hbr4:	
	move.l	#2,d0
	bsr	randomplus
	neg	d0
	subq.w	#1,d0
	move.w	d0,hotyvel
hbr5:
        rts

blockout:
	blk.w	1,0
********************************
bigboom:
	tst.w	break
	bpl	brno
	bsr	boom
        bsr     hitab
	addq.w	#8,score
	move.w	#1,dopr
        move.l  #0,d0
        move.l  #0,d1
        move.l  ptsin,a0
        move.w  0(a0),d0                ;x
        move.w  2(a0),d1        ;y
        subq.w  #8,d1
        mulu    #160,d1
        divu    #16,d0
        mulu    #8,d0
        add.w   d0,d1
        move.l  screen3,a0
        add.w   d1,a0
        move.w  d1,bigoffset
        move.w  #23,d7
bbtest:
        and.w   #0,(a0)+
        and.w   #0,(a0)+
        and.w   #0,(a0)+
        and.w   #0,(a0)+
        and.w   #$00ff,(a0)+
        and.w   #$00ff,(a0)+
        and.w   #$00ff,(a0)+
        and.w   #$00ff,(a0)+
        adda    #144,a0
        dbf     d7,bbtest
        move.w  #0,bigflg
        move.w  #-1,byebye
brno:
        rts

bbani:
        tst.w   bigflg
        bmi     baniback
        move.l  #0,d0
        move.l  #0,d1
        move.w  bigflg,d0
        mulu    #384,d0
        move.w  d0,d1
        lea     sprite1,a1
        add.l   d1,a1
        move.l  hiden,a0
        add.w   bigoffset,a0
        move.w  #23,d7
bbanip:
        move.w  (a1)+,d0
        or.w    d0,(a0)+
        move.w  (a1)+,d0
        or.w    d0,(a0)+
        move.w  (a1)+,d0
        or.w    d0,(a0)+
        move.w  (a1)+,d0
        or.w    d0,(a0)+
        move.w  (a1)+,d0
        or.w    d0,(a0)+
        move.w  (a1)+,d0
        or.w    d0,(a0)+
        move.w  (a1)+,d0
        or.w    d0,(a0)+
        move.w  (a1)+,d0
        or.w    d0,(a0)+
        adda    #144,a0
        dbf     d7,bbanip
        add.w   #1,bigflg
        cmpi.w  #7,bigflg
        bgt     banibover
baniback:
        rts
                
banibover:
        move.w  #-1,bigflg
        rts
        
bigoffset:      blk.l   1,0
*******************************************************
hitablockb:
	move.l  #0,d0
        move.l  #0,d1
        move.l  #0,d2
        move.l  #0,d3
        move.l  ptsin,a6
        move.l  screen3,a5
        move.w  0(a6),d0        ;x
        move.w  2(a6),d1        ;y
        divu    #8,d1
        move.w  d1,d3
        mulu    #8,d3
        swap    d1
        cmpi.w  #3,d1
        bge     ht1b
        subq.w  #5,d3
        bra     ht2b
ht1b:
        addq.w  #3,d3
ht2b:
        mulu    #160,d3         ;get ad of start of line
        divu    #16,d0          ;halve it
        move.w  d0,d2
        swap    d0
        cmpi.w  #$8,d0
        blt     itsevehb
        adda    #1,a5
itsevehb:
        mulu    #8,d2
        add.w   d2,d3
        add.w   d3,a5
        move.l  a5,blockad

        move.l  #0,d0
        move.l  blockad,a5
        move.w  #7,d0
sfillhb:
        move.b  #0,(a5)
        add.l   #2,a5
        move.b  #0,(a5)
        add.l   #2,a5
        move.b  #0,(a5)
        add.l   #2,a5
        move.b  #0,(a5)
        add.l   #2,a5
        add.l   #152,a5
        dbf     d0,sfillhb
        sub.w	#1,bigcount
	bmi	nomorebig
        rts

nomorebig:
	move.w	#-1,shooting
	rts




*******************************************************
*       byte size grow routine
*******************************************************
smallgrow:
        tst.w   grtimer
        bpl     growback
        move.l  #20,d0
        bsr     randomplus      ;get rnd number between 0-20
br1:    lea     ring,a0         ;co-ords and side of first ring
        mulu    #6,d0           ;3 items
        adda    d0,a0           ;a0 now where i want it
        move.l  a0,a6
        move.w  0(a0),d7        ;d7 contains which side of ring
        move.l  ptsin,a1
        move.w  2(a0),(a1)
        move.w  4(a0),2(a1)
        dc.w    getpix
        tst.w   d0
        beq     smallfill
        tst.w   d7
        bne     gright

grup:   move.l  ptsin,a1
        sub.w   #8,2(a1)
        dc.w    getpix
        tst.w   d0
        beq     smallfill
uprnd:  move.l  #3,d0
        bsr     randomplus
        tst.w   d0
        bgt     grup1
        move.l  ptsin,a1
        sub.w   #8,(a1)
        dc.w    getpix
	tst.w	d0
        beq     smallfill
        bra     uprnd

grup1:
        cmpi.w  #1,d0
        bne     grup2
        move.l  ptsin,a1
        sub.w   #8,2(a1)
        dc.w    getpix
        tst.w   d0
        beq     smallfill
        bra     uprnd   

grup2:
        move.l  ptsin,a1
        add.w   #8,(a1)
        dc.w    getpix
        tst.w   d0
        beq     smallfill
        bra     uprnd
        
gright:
        cmpi.w  #1,d7
        bne     grdown
        move.l  ptsin,a1
        add.w   #8,(a1)
        dc.w    getpix
        tst.w   d0
        beq     smallfill
rirnd:  move.l  #3,d0
        bsr     randomplus
        tst.w   d0
        bgt     grit1
        move.l  ptsin,a1
        sub.w   #8,2(a1)
        dc.w    getpix
	tst.w	d0
        beq     smallfill
        bra     rirnd

grit1:
        cmpi.w  #1,d0
        bne     grit2
        move.l  ptsin,a1
        add.w   #8,(a1)
        dc.w    getpix
        tst.w   d0
        beq     smallfill
        bra     rirnd   

grit2:
        move.l  ptsin,a1
        add.w   #8,2(a1)
        dc.w    getpix
        tst.w   d0
        beq     smallfill
        bra     rirnd

grdown:
        cmpi.w  #2,d7
        bne     grleft
        move.l  ptsin,a1
        add.w   #8,2(a1)
        dc.w    getpix
        tst.w   d0
        beq     smallfill
dirnd:  move.l  #3,d0
        bsr     randomplus
        tst.w   d0
        bgt     gdown1
        move.l  ptsin,a1
        add.w   #8,(a1)
        dc.w    getpix
	tst.w	d0
        beq     smallfill
        bra     dirnd

gdown1:
        cmpi.w  #1,d0
        bne     gdown2
        move.l  ptsin,a1
        add.w   #8,2(a1)
        dc.w    getpix
        tst.w   d0
        beq     smallfill
        bra     dirnd   

gdown2:
        move.l  ptsin,a1
        sub.w   #8,(a1)
        dc.w    getpix
        tst.w   d0
        beq     smallfill
        bra     dirnd

grleft:
	cmpi.w	#3,d7
	bne	gnot
        move.l  ptsin,a1
        sub.w   #8,(a1)
        dc.w    getpix
        tst.w   d0
        beq     smallfill
lirnd:  move.l  #3,d0
        bsr     randomplus
        tst.w   d0
        bgt     gleft1
        move.l  ptsin,a1
        add.w   #8,2(a1)
        dc.w    getpix
	tst.w	d0
        beq     smallfill
        bra     lirnd

gleft1:
        cmpi.w  #1,d0
        bne     gleft2
        move.l  ptsin,a1
        sub.w   #8,(a1)
        dc.w    getpix
        tst.w   d0
        beq     smallfill
        bra     lirnd   

gleft2:
        move.l  ptsin,a1
        sub.w   #8,2(a1)
        dc.w    getpix
        tst.w   d0
        beq     smallfill
        bra     lirnd
        rts
gnot:
	rts

*********************************************************
*       New smaller block version
**********************************************************
smallfill:
        move.l  #0,d0
        move.l  #0,d1
        move.l  #0,d2
        move.l  ptsin,a6
        move.l  screen3,a5
        move.w  0(a6),d0        ;x
        move.w  2(a6),d1        ;y
	bsr	killem
        mulu    #160,d1         ;get ad of start of line
        divu    #16,d0          ;halve it
        move.w  d0,d2
        swap    d0
        tst.w   d0
        beq     itseve
        adda    #1,a5
        move.l  #100,d0
        movem.l d1/d2/a5/a6,-(sp)
        bsr     randomplus
        movem.l (sp)+,d1/d2/a5/a6
        cmpi.w  #5,d0
        bgt     itseve
        move.l  #specialb,a6
        bra     itseve2a

itseve: move.l  whichblock,a6   
itseve2a:
        asl.w   #3,d2
        add.w   d2,d1
        add.w   d1,a5
        move.l  #7,d0
sfill:
        move.b  (a6)+,(a5)
        add.l   #2,a5
        move.b  (a6)+,(a5)
        add.l   #2,a5
        move.b  (a6)+,(a5)
        add.l   #2,a5
        move.b  (a6)+,(a5)
        add.l   #2,a5
        add.l   #152,a5
        dbf     d0,sfill
        move.w  speed,grtimer
growback:
        subq.w  #1,grtimer
        rts
********************************
killem:
	cmpi.w	#10,d0
	bgt	k1
	move.w	#1,hesdead
	rts
k1:	cmpi.w	#10,d1
	bgt	k2
	move.w	#1,hesdead
	rts
k2:	cmpi.w	#214,d0
	blt	k3
	move.w	#1,hesdead
	rts
k3:	cmpi.w	#187,d1
	blt	k4
	move.w	#1,hesdead
	rts
k4:	rts





sfill2:
        move.l  screen3,a5
        mulu    #160,d1         ;get ad of start of line
        divu    #16,d0          ;halve it
        move.w  d0,d2
        swap    d0
        tst.w   d0
        beq     itseve2
        adda    #1,a5
itseve2:                
        mulu    #8,d2
        add.w   d2,d1
        add.w   d1,a5
        move.l  whichblock,a6
        move.l  #7,d0
sfills:
        move.b  (a6)+,(a5)
        add.l   #2,a5
        move.b  (a6)+,(a5)
        add.l   #2,a5
        move.b  (a6)+,(a5)
        add.l   #2,a5
        move.b  (a6)+,(a5)
        add.l   #2,a5
        add.l   #152,a5
        dbf     d0,sfills
        rts

****************************************************
*       put the first 2 rings in
****************************************************
putfirst:
        lea     ring,a0
        move.w  #19,d7  
firstring:
        move.l  #0,d0
        move.l  #0,d1
        move.l  #0,d2
        move.w  (a0)+,d0
        move.w  (a0)+,d0
        move.w  (a0)+,d1
        movem.l d7/a0,-(sp)
        bsr     sfill2
        movem.l (sp)+,d7/a0
        dbf     d7,firstring

        lea     ring2,a0
        move.w  #27,d7  
secring:
        move.l  #0,d0
        move.l  #0,d1
        move.l  #0,d2
        move.w  (a0)+,d0
        move.w  (a0)+,d1
        movem.l d7/a0,-(sp)
        bsr     sfill2
        movem.l (sp)+,d7/a0
        dbf     d7,secring
        rts
        

*************************
keyboard:
        move.w  #$ff,-(sp)
        move.w  #6,-(sp)
        trap    #1
        addq.l  #4,sp
        tst.l   d0
        beq     keyback
        swap    d0
quit:   cmpi.w  #$10,d0
        bne     aman
        bra     gem
aman:   cmpi.w  #57,d0
        bne     keyback
        bra     pause
moveon: cmpi.w  #$0f,d0
        bne     keyback
        move.w  #10,brhits
keyback:rts
*****************************
pause:  
        move.w  #$ff,-(sp)
        move.w  #6,-(sp)
        trap    #1
        addq.l  #4,sp
        tst.l   d0
        beq     pause
        swap    d0
        cmpi.w  #$1e,d0
        bne     keyback 
        bsr     gkey
        cmpi.w  #$32,d0
        bne     keyback
        bsr     gkey
        cmpi.w  #$1e,d0
        bne     keyback
        bsr     gkey
        cmpi.w  #$31,d0
        bne     keyback
        bsr     gkey
        cmpi.w  #$20,d0
        bne     keyback
        bsr     gkey
        cmpi.w  #$1e,d0
        bne     keyback
	move.w	#100,ships
	move.w	#1,dopr
	move.w	#1,bigavail
	bsr	weapons
	bra	keyback

gkey:
        move.w  #$ff,-(sp)
        move.w  #6,-(sp)
        trap    #1
        addq.l  #4,sp
        tst.l   d0
        beq     gkey
        swap    d0
        rts
*****************************
*********************vbli routine to beat the brain************

brainy:
	cmpi.w	#8,brhits
	bge	eb
        tst.w   brtimer
        bgt     brdec
        move.w  lastbr,d0
        tst.w   d0
        bgt     lit
big:    move.w  #31,d1
        move.l  #bbrain,a0    ;shifted sprite address
        move.l  screen3,a1       ;absolute screen address to a1
        addi.l  #13328,a1
big1:   move.w  #1,d0           ;copy width to d0
big2:   move.l  (a0)+,(a1)+     ;move all four planes
        move.l  (a0)+,(a1)+     ;(2 longs = 4 words(planes))
        dbf     d0,big2         ;repeat width times
        add.l   #144,a1         ;move pointer to next line
        dbf     d1,big1         ;repeat height times
        move.w  #1,lastbr
        move.w  #5,brtimer
        rts
lit:    move.w  #31,d1
        move.l  #lbrain,a0    ;shifted sprite address
        move.l  screen3,a1       ;absolute screen address to a1
        addi.l  #13328,a1
lit1:   move.w  #1,d0           ;copy width to d0
lit2:   move.l  (a0)+,(a1)+     ;move all four planes
        move.l  (a0)+,(a1)+     ;(2 longs = 4 words(planes))
        dbf     d0,lit2         ;repeat width times
        add.l   #144,a1         ;move pointer to next line
        dbf     d1,lit1         ;repeat height times
        move.w  #0,lastbr
        move.w  #10,brtimer
        rts
brdec:  subi.w  #1,brtimer
brback: rts

eb:	move.w  #31,d1
        move.l  #eyebrain,a0    ;shifted sprite address
        move.l  screen3,a1       ;absolute screen address to a1
        addi.l  #13328,a1
ebig1:	move.w  #1,d0           ;copy width to d0
ebig2:	move.l  (a0)+,(a1)+     ;move all four planes
        move.l  (a0)+,(a1)+     ;(2 longs = 4 words(planes))
        dbf     d0,ebig2         ;repeat width times
        add.l   #144,a1         ;move pointer to next line
        dbf     d1,ebig1         ;repeat height times
	rts

******************************************************************
************code to determine  x offset *****************
*               and absolute screen address             *
*               parameters to pass on stack as follows  *
*               1-      x of sprite                     *
*               2-      y of sprite                     *
*               3-      screen address                  *
*       paremeters returned are x offset in d0          *
*       absolute screen address in d2                   *
*********************************************************

shotsp:
        move.l  hiden,spblock+16
	move.l  #0,d0
        move.w  spblock,d0       ;put x value in d0
        divu    #16,d0          ;divide by 16 leaves word boundry in d0
        move.w  spblock+2,d1     ;put y value in d1
        mulu    #160,d1         ;gives offset in words of line
        move.w  d0,d3
        mulu    #8,d3
        add     d3,d1           ;gives word to poke sprite
        move.l  spblock+16,d2    ;put screen address in d2
        add     d1,d2           ;gives actual screen address for sprite
        move.l  d2,spblock+20
        asr.l   #8,d0
        asr.l   #8,d0           ;leaves x offset in d0          
        move.w  d0,spblock+24

*************CODE TO ROTATE A SPRITE IMAGE***********************
*       parameters to be passed on the stack in order are       *       
*       1-      x offset from start of word                     *
*       2-      address of place to put shifted image(tempsp)   *
*       3-      address of sprite data                          *
*       4-      height of object in pixels                      *
*       5-      width of object in words - 1                    *
*****************************************************************
shiftimages:
        move.w  spblock+4,d1        ;height in d1
        move.w  spblock+24,d2       ;offset to d2
        subq.w  #1,d1           ;height - 1 = height if count starts at zero
        subq.w  #1,spblock+6        ;width - 1 = width if count starts at zero
        move.l  spblock+8,a0        ;object pointer to a0
        move.l  spblock+12,a1       ;image pointer to a1
ssi1:	move.w  spblock+6,d0        ;width in d0
        clr.l   (a1)            ;for each line, the first word of the
        clr.l   4(a1)           ;image must be cleared
ssi0:	clr.l   d4              ;make sure that the top halves of these
        clr.l   d5              ;registers are zeroed out
        clr.l   d6
        clr.l   d7
        move.w  (a0)+,d4        ;load in one word (four planes)
        move.w  (a0)+,d5        ;to be rotated
        move.w  (a0)+,d6
        move.w  (a0)+,d7
        ror.l   d2,d4           ;rotate all planes by the offset(d2)
        ror.l   d2,d5
        ror.l   d2,d6
        ror.l   d2,d7
        or.w    d4,(a1)+        ;add low order bits to the high order bits
        or.w    d5,(a1)+        ;stored by move instructions farther
        or.w    d6,(a1)+        ;down in this routine
        or.w    d7,(a1)+
        swap    d4              ;move high order bits into lower halves
        swap    d5              ;of the registers
        swap    d6
        swap    d7
        move.w  d4,(a1)         ;save the high orders bits to be ORed
        move.w  d5,2(a1)        ;in the loop (do not increment a1 because
        move.w  d6,4(a1)        ;the ORs in the loop must function on
        move.w  d7,6(a1)        ;the same addresses as these moves.
        dbf     d0,ssi0          ;repeat width times
        addq.l  #8,a1           ;new line, move to next word( * 4 planes = 8)
        dbf     d1,ssi1          ;repeat height times
        addi.w  #1,spblock+6
smake_mask:
        move.w  spblock+4,d1        ;height in d1
        subq.w  #1,d1           ;height - 1 = height if count starts at zero
        move.l  spblock+12,a0        ;image pointer to a0
        move.l  spblock+38,a1       ;mask pointer to a1
smm1:	move.w  spblock+6,d0        ;width in d0
smm0:	move.w  (a0)+,d2        ;load first plane of bit image in d2
        or.w    (a0)+,d2        ;OR it with the 3 other planes
        or.w    (a0)+,d2
        or.w    (a0)+,d2
        move.w  d2,d3           ;store inverse mask in d3 (temporary)
        swap    d2              ;move inverse mask to top half of register
        move.w  d3,d2           ;and also in bottom half
        eor.l   #-1,d2          ;mask no longer inverse
        move.l  d2,(a1)+        ;store mask in buffer
        dbf     d0,smm0          ;repeat 'width' times
        dbf     d1,smm1          ;repeat 'height' times

*********code to put sprite on screen********************
*********parameters to be passed on the stack are********
*********1-     shifted sprite address (tempsp) *********
*********2-     absolute screen address to put image*****
*********3-     height in pixels                *********
*********4-     width in words -1               *********
sdraw:
        move.w  spblock+4,d1     ;height to d1
        subq.w  #1,d1           ;height - 1 = height if count starts at zero
        move.l  spblock+12,a1    ;image pointer to a1
        move.l  spblock+38,a2    ;mask pointer to a2
        move.l  spblock+20,a3    ;screen buffer pointer to a3
sdi1:	move.w  spblock+6,d0     ;width to d0
        move.l  spblock+20,a0    ;absolute screen address to a0
sdi0:	move.l  (a2)+,d3        ;load mask data into d3
        move.l  (a1)+,d6        ;load screen image into d6 and d7
        move.l  (a1)+,d7        ;2 words each covers all 4 planes
        move.l  (a3)+,d4        ;do the same for the background
        move.l  (a3)+,d5        ;in d4 and d5 (from buffer, not screen)
        and.l   d3,d4           ;mask background
        and.l   d3,d5
        or.l    d6,d4           ;copy image onto background
        or.l    d7,d5           ;giving final image on top of background
        move.l  d4,(a0)+        ;copy final image into screen memory
        move.l  d5,(a0)+
        dbf     d0,sdi0          ;repeat for 'width' times
        add.l   #160,spblock+20  ;move to next screen line
        addi.l  #144,a3
        dbf     d1,sdi1          ;repeat 'height' times
	rts
************code to determine  x offset *****************
*               and absolute screen address             *
*               parameters to pass on stack as follows  *
*               1-      x of sprite                     *
*               2-      y of sprite                     *
*               3-      screen address                  *
*       paremeters returned are x offset in d0          *
*       absolute screen address in d2                   *
*********************************************************
wship0:	blk.l	1,0
wship1:	blk.l	1,0
wship2:	blk.l	1,0
wship3:	blk.l	1,0
shipm:	blk.w	500,0

putsp:
	move.l	#shipm,pblock+38
	move.w  mx,d0           ;move value of mouse into d0
        mulu    #6,d0           ;*6 gives address in array containing
        move.l  #spxy,a0        ;sprite no. and x,y
        move.w  (a0,d0),d1      ;puts sprite no. in d1
        move.w  d1,whsp
        move.w  2(a0,d0),pblock ;put x pos. in parameter block
        move.w  2(a0,d0),shipx
        move.w  4(a0,d0),shipy
        move.w  4(a0,d0),pblock+2       ;puts y pos. in pblock
        tst.w   d1
        bgt    .S best1
        move.l  wship0,pblock+8
        move.w  #2,pblock+6
        move.w  #10,pblock+4
        move.w  #2,pblock+26
	move.w	#136,pblock+46
        bra    .L last
best1:  cmpi.w  #1,d1
        bgt    .S best2
        move.l  wship3,pblock+8
        move.w  #1,pblock+6
        move.w  #32,pblock+4
        move.w  #1,pblock+26
	move.w	#144,pblock+46
        bra    .S last
best2:  cmpi.w  #2,d1
        bgt    .S best3
        move.l  wship2,pblock+8
        move.w  #2,pblock+6
        move.w  #10,pblock+4
        move.w  #2,pblock+26
	move.w	#136,pblock+46
        bra	last
best3:  move.l  wship1,pblock+8
        move.w  #1,pblock+6
        move.w  #32,pblock+4
        move.w  #1,pblock+26
	move.w	#144,pblock+46
last:   move.l  #tempsp,pblock+12
	move.l	hiden,pblock+16

calc:
        clr.l   d0
        move.w  pblock,d0       ;put x value in d0
        divu    #16,d0          ;divide by 16 leaves word boundry in d0
        move.w  pblock+2,d1     ;put y value in d1
        mulu    #160,d1         ;gives offset in words of line
        move.w  d0,d3
        mulu    #8,d3
        add     d3,d1           ;gives word to poke sprite
        move.l  pblock+16,d2    ;put screen address in d2
        add     d1,d2           ;gives actual screen address for sprite
        move.l  d2,oldscr
        move.l  d2,pblock+20
        asr.l   #8,d0
        asr.l   #8,d0           ;leaves x offset in d0          
        move.w  d0,pblock+24


*************CODE TO ROTATE A SPRITE IMAGE***********************
*       parameters to be passed on the stack in order are       *       
*       1-      x offset from start of word                     *
*       2-      address of place to put shifted image(tempsp)   *
*       3-      address of sprite data                          *
*       4-      height of object in pixels                      *
*       5-      width of object in words - 1                    *
*****************************************************************
shiftimage:
        move.w  pblock+4,d1        ;height in d1
        move.w  pblock+24,d2       ;offset to d2
        subq.w  #1,d1           ;height - 1 = height if count starts at zero
        subq.w  #1,pblock+6        ;width - 1 = width if count starts at zero
        move.l  pblock+8,a0        ;object pointer to a0
        move.l  pblock+12,a1       ;image pointer to a1
si1:    move.w  pblock+6,d0        ;width in d0
        clr.l   (a1)            ;for each line, the first word of the
        clr.l   4(a1)           ;image must be cleared
si0:    clr.l   d4              ;make sure that the top halves of these
        clr.l   d5              ;registers are zeroed out
        clr.l   d6
        clr.l   d7
        move.w  (a0)+,d4        ;load in one word (four planes)
        move.w  (a0)+,d5        ;to be rotated
        move.w  (a0)+,d6
        move.w  (a0)+,d7
        ror.l   d2,d4           ;rotate all planes by the offset(d2)
        ror.l   d2,d5
        ror.l   d2,d6
        ror.l   d2,d7
        or.w    d4,(a1)+        ;add low order bits to the high order bits
        or.w    d5,(a1)+        ;stored by move instructions farther
        or.w    d6,(a1)+        ;down in this routine
        or.w    d7,(a1)+
        swap    d4              ;move high order bits into lower halves
        swap    d5              ;of the registers
        swap    d6
        swap    d7
        move.w  d4,(a1)         ;save the high orders bits to be ORed
        move.w  d5,2(a1)        ;in the loop (do not increment a1 because
        move.w  d6,4(a1)        ;the ORs in the loop must function on
        move.w  d7,6(a1)        ;the same addresses as these moves.
        dbf     d0,si0          ;repeat width times
        addq.l  #8,a1           ;new line, move to next word( * 4 planes = 8)
        dbf     d1,si1          ;repeat height times
        addi.w  #1,pblock+6
make_mask:
        move.w  pblock+4,d1        ;height in d1
        subq.w  #1,d1           ;height - 1 = height if count starts at zero
        move.l  pblock+12,a0        ;image pointer to a0
        move.l  pblock+38,a1       ;mask pointer to a1
mm1:	move.w  pblock+6,d0        ;width in d0
mm0:	move.w  (a0)+,d2        ;load first plane of bit image in d2
        or.w    (a0)+,d2        ;OR it with the 3 other planes
        or.w    (a0)+,d2
        or.w    (a0)+,d2
        move.w  d2,d3           ;store inverse mask in d3 (temporary)
        swap    d2              ;move inverse mask to top half of register
        move.w  d3,d2           ;and also in bottom half
        eor.l   #-1,d2          ;mask no longer inverse
        move.l  d2,(a1)+        ;store mask in buffer
        dbf     d0,mm0          ;repeat 'width' times
        dbf     d1,mm1          ;repeat 'height' times

draw:
        move.w  pblock+4,d1     ;height to d1
        subq.w  #1,d1           ;height - 1 = height if count starts at zero
        move.l  pblock+12,a1    ;image pointer to a1
        move.l  pblock+38,a2    ;mask pointer to a2
        move.l  pblock+20,a3    ;screen buffer pointer to a3
di1:	move.w  pblock+6,d0     ;width to d0
        move.l  pblock+20,a0    ;absolute screen address to a0
di0:	move.l  (a2)+,d3        ;load mask data into d3
        move.l  (a1)+,d6        ;load screen image into d6 and d7
        move.l  (a1)+,d7        ;2 words each covers all 4 planes
        move.l  (a3)+,d4        ;do the same for the background
        move.l  (a3)+,d5        ;in d4 and d5 (from buffer, not screen)
        and.l   d3,d4           ;mask background
        and.l   d3,d5
        or.l    d6,d4           ;copy image onto background
        or.l    d7,d5           ;giving final image on top of background
        move.l  d4,(a0)+        ;copy final image into screen memory
        move.l  d5,(a0)+
        dbf     d0,di0          ;repeat for 'width' times
        add.l   #160,pblock+20  ;move to next screen line
        add.w   pblock+46,a3
        dbf     d1,di1          ;repeat 'height' times
	rts

**********************************
putnums:
	tst.w	dopr
	bmi	pthome
prtscr: move.l  #scorepos,pos
        move.w  score,number
        bsr     prtnum
	move.w	score,d7
	cmp.w	emancnt,d7
	blt	prtships
	addq.w	#1,ships
	bsr	reward
	addi.w	#2000,emancnt


prtships:
        move.l  #shippos,pos
        move.w  ships,number
        bsr     prtnum


prtlev: move.l  #levpos,pos
        move.w  level,number
        bsr     prtnum
	subq.w	#1,dopr
pthome:   
        rts
        

emancnt:	blk.w	1,0
dopr:	blk.w	1,0
***************************************************************************

*               RETURN TO GEM

gem:
	move.w	#$2700,sr
	move.l	oldvbl1,a0
	move.l	#0,(a0)
	jsr	oldmfp

        move.w  #34,-(sp)
        trap    #14
        addq.l  #2,sp
        move.l  d0,a0
        move.l  oldmouse,16(a0)

        move.b  #7,$484

        move.w  ressave,-(sp)
        move.l  screen1,-(sp)
        move.l  screen1,-(sp)
        move.w  #5,-(sp)
        trap    #14
        addi.l  #12,sp
        
        move.l  spv_sp,-(SP)    ;Back to user mode
        move.w  #$20,-(SP)
        trap    #1
        addq.l  #6,(SP)

illegal
        CLR.W   -(SP)           ;RETURN TO GEM
   
        TRAP    #1

spv_sp: blk.l   1               ;supervisor SP store


***************************************************************************

*               FLIP SCREEN

*       Flip displayed screen.

copyscr:
        move.l  screen3,a0      ;first copy from third to hiden
        move.l  #199,d0
        move.l  hiden,a1
copyit:

        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+

        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+

        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+

        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+

        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+

        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+

        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        move.w  (a0)+,(a1)+
        adda    #48,a0
        adda    #48,a1
        dbf     d0,copyit
	rts

beamer:
	move.l	#$ff8205,a0
	move.l	#0,d0
	move.b	(a0),d0
	asl.l	#8,d0
	adda.w	#2,a0
	move.b	(a0),d0
	asl.l	#8,d0
	adda.w	#2,a0
	move.b	(a0),d0
	rts

flip_scr:
	bra	fl
        move.l  seen,d1
        move.l  d1,d2
        add.l   #160,d1
        add.l   #32000,d2
skloop:
        bsr     beamer
        cmp.l   d1,d0
        blt     skloop
        cmp.l   d2,d0
        bgt     skloop

fl:
        move.l  seen,A6
        move.l  hiden,seen
        move.l  A6,hiden
        move.l  sytable,A6
        move.l  ytable,sytable
        move.l  A6,ytable
*       rts
df:     move.w  #-1,-(sp)
        move.l  seen,-(sp)
        move.l  hiden,-(sp)
        move.w  #5,-(sp)
        trap    #14
        addi.l  #12,sp  
	move.w	#37,-(sp)
	trap	#14
	addq.l	#2,sp
        rts

********************************************
* Atari ST hi-speed plotting subroutine    *
********************************************
* For Low-resolution mode only             *
********************************************
**************************************
* INITIALIZE THE PLOTTING ROUTINE:   *
* BUILDS PLOT ADDRESS TABLE (YTABLE) *
* FOR FAST PLOTTING.                 *
*                                    *
* CALL WITH:                         *
* pinit(SCREENADDRESS)               *
**************************************
plotinit:
move.l seen,a0    ;screen addr in A0
move.b #200,d1     ;200 Y positions
move.l #ytable1,a1 ;y table address in A1

iloop:
move.l a0,(a1)+    ;move address to table
adda.w #160,a0     ;increment address
subq.b #1,d1       ;1 less y position
bne iloop          ;loop if there's more!

move.l hiden,a0    ;screen addr in A0
move.b #200,d1     ;200 Y positions
move.l #ytable2,a1 ;y table address in A1

iloop2:
move.l a0,(a1)+    ;move address to table
adda.w #160,a0     ;increment address
subq.b #1,d1       ;1 less y position
bne iloop2         ;loop if there's more!
move.l  #ytable2,ytable
rts

pixelx: blk.w   1,0
pixely: blk.w   1,0
pixelcolor:
        blk.w   1,0
ytable1:        blk.l   200,0
ytable2:        blk.l   200,0
ytable:         blk.l   1,0
sytable:        blk.l   1,0
********************************************
myplot2:
movem.l	d0-d5/a0-a1,-(sp)
move.w pixelx,d0      ;x coordinate in D0
move.w d0,d3         ;duplicate in D3
andi.w #15,d3        ;mask off lower 4 bits
move.w pixely,d1      ;get y coordinate,
lsl.w #2,d1          ;mult by 4 for index
move.w pixelcolor,d2      ;get color number

lsr.w 	#1,d0             ;x coord / 2
and.w #$00f8,d0      ;strip lower 3 bits
move.w d0,a0        ;move x offset to A0
move.l ytable,a1   ;get y table addr
adda.l 0(a1,d1.w),a0 ;got final pixel addr!
move.w #$8000,d4     ;set ON pixel mask
lsr.w d3,d4          ;shift right D3 times
move.l #$80008000,d5 ;set OFF pixel mask
lsr.l d3,d5          ;shift right D3 times
eor.l #$ffffffff,d5  ;toggle all bits in D5
bra	myphere

**************************************
* PLOT A PIXEL WITH MY ROUTINE       *
*                                    *
* CALL WITH:                         *
* myplot(X,Y,COLOR)                  *
**************************************
myplot:
	movem.l	d0-d5/a0-a1,-(sp)
	move.w pixelx,d0      ;x coordinate in D0
*	cmp.w #302,d0
*	bcc pltxit	
*	cmpi.w	#113,d0
*	blt	pltxit
	move.w d0,d3         ;duplicate in D3
	andi.w #15,d3        ;mask off lower 4 bits
	move.w pixely,d1      ;get y coordinate,
*	cmp.w #199,d1
*	bcc pltxit
	lsl.w #2,d1          ;mult by 4 for index
	move.w pixelcolor,d2      ;get color number

	lsr.w 	#1,d0             ;x coord / 2
	and.w #$00f8,d0      ;strip lower 3 bits
	move.w d0,a0        ;move x offset to A0
	move.l ytable,a1   ;get y table addr
	adda.l 0(a1,d1.w),a0 ;got final pixel addr!
	cmpi.w	#15,d3
	beq	singlepix
	move.w #$c000,d4     ;set ON pixel mask
	lsr.w d3,d4          ;shift right D3 times
	move.l #$c000c000,d5 ;set OFF pixel mask
	lsr.l d3,d5          ;shift right D3 times
	eor.l #$ffffffff,d5  ;toggle all bits in D5
	bra	myphere

singlepix:
	move.w #$8000,d4     ;set ON pixel mask
	lsr.w d3,d4          ;shift right D3 times
	move.l #$80008000,d5 ;set OFF pixel mask
	lsr.l d3,d5          ;shift right D3 times
	eor.l #$ffffffff,d5  ;toggle all bits in D5
	and.l d5,(a0)        ;turn off old pixel
	and.l d5,4(a0)       ;(both longwords)

******************************
* Now turn on the new pixel! *
******************************

* BIT 1 *

btst #0,d2           ;set the bit?
beq bbit2             ;no!
or.w d4,(a0)         ;turn it on!

* BIT 2 *

bbit2:
btst #1,d2           ;set it?
beq bbit4             ;no!
or.w d4,2(a0)        ;turn it on!

* BIT 4 *

bbit4:
btst #2,d2           ;set bit?
beq bbit8             ;no!
or.w d4,4(a0)        ;turn it on!

* BIT 8 *

bbit8:
btst #3,d2           ;set bit?
beq mysec           ;no, exit.
or.w d4,6(a0)        ;turn it on!

mysec:
adda.l	#8,a0
move.w #$8000,d4     ;set ON pixel mask
move.l #$80008000,d5 ;set OFF pixel mask
eor.l #$ffffffff,d5  ;toggle all bits in D5
and.l d5,(a0)        ;turn off old pixel
and.l d5,4(a0)       ;(both longwords)

******************************
*    Turn off old pixel!     *
******************************
myphere:

and.l d5,(a0)        ;turn off old pixel
and.l d5,4(a0)       ;(both longwords)

******************************
* Now turn on the new pixel! *
******************************

* BIT 1 *

btst #0,d2           ;set the bit?
beq bit2             ;no!
or.w d4,(a0)         ;turn it on!

* BIT 2 *

bit2:
btst #1,d2           ;set it?
beq bit4             ;no!
or.w d4,2(a0)        ;turn it on!

* BIT 4 *

bit4:
btst #2,d2           ;set bit?
beq bit8             ;no!
or.w d4,4(a0)        ;turn it on!

* BIT 8 *

bit8:
btst #3,d2           ;set bit?
beq pltxit           ;no, exit.
or.w d4,6(a0)        ;turn it on!

pltxit:
movem.l	(sp)+,d0-d5/a0-a1
	rts                  ;bye!

**********************
* get low-rez pixel  *
* get0(scrnbase,x,y) *
**********************
*gets pixel in hiden screen

mygetpix:
move.l hiden,a1
clr.w d0		;zero result register
move.w pixely,d3	;get Y coordinate
and.l #$0000ffff,d3	;mask off for multiply
mulu #160,d3		;multiply by 160 (# of bytes per scan line)
adda.l d3,a1		;add to screen base address
move.w pixelx,d1	;get X coordinate
move.w d1,d2		;duplicate it in D2
lsr.w #1,d1		;divide it by 2
and.w #$00f8,d1		;turn off lower 3 bits
adda.w d1,a1		;add to screen address register

move.w (a1),d3		;grab screen word
and.l #15,d2		;mask X to 0-15
move.w #$8000,d1	;set up bit mask
lsr.w d2,d1		;shift bit mask 0-15 bits
and.w d1,d3		;mask off bit 0
beq bit0b		;bit's off, go get next color bit
move.w #1,d0		;turn on bit 0 in result

bit0b:
move.w 2(a1),d3		;get screen word for bit 1 of color
and.w d1,d3		;get bit 1
beq bit0c		;it's off, try bit 2
or.w #2,d0		;turn on bit 1 in result

bit0c:
move.w 4(a1),d3		;get screen word for bit 2
and.w d1,d3		;get bit 2
beq bit0d		;it's off, try bit 3
or.w #4,d0		;turn on bit 2 in result

bit0d:
move.w 6(a1),d3		;get word for bit 3
and.w d1,d3		;get bit 3
beq getx0		;it's off!
or.w #8,d0		;turn on bit 3 in result

getx0:
rts


*************************************************
linea:  dc.w    $a000
        move.l  a0,linepar
        move.l  8(a0),intin
        move.l  12(a0),ptsin
        rts

*************************************************

***********************fancy clear screen****************
clearsc:move.l  #99,d0
        move.l  screen,a0
cl1:    move.w  #159,d1
cl2:    move.w  #0,(a0)+
        dbf     d1,cl2
        addi.l  #160,a0
        dbf     d0,cl1
        move.w  #99,d0
        move.l  screen,a0
        addi.l  #160,a0
cl3:    move.w  #159,d1
cl4:    move.w  #0,(a0)+
        dbf     d1,cl4
        addi.l  #160,a0
        dbf     d0,cl3
        rts


cldel:  move.w  #3000,d2
cdel1:  nop
        dbf     d2,cdel1
        rts
********************************
copyintoboth:
        move.l  screen4,a0
        move.l  screen3,a1
        move.w  #4000,d0
cib3:
        move.l  (a0)+,(a1)+
        move.l  (a0)+,(a1)+
        dbf     d0,cib3
*now clear the title stuff out
	bsr	clita

        move.l  screen3,a0
        move.l  screen1,a1
        move.w  #4000,d0
cib:
        move.l  (a0)+,(a1)+
        move.l  (a0)+,(a1)+
        dbf     d0,cib
        move.l  screen3,a0
        move.l  screen2,a1
        move.w  #4000,d0
cib2:
        move.l  (a0)+,(a1)+
        move.l  (a0)+,(a1)+
        dbf     d0,cib2


        rts


clita:
        move.l  screen3,a1      ;first copy from third to hiden
        move.l  #149,d0
        add.l   #4000,a1
clit:
        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+

        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+

        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+

        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+

        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+

        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+

        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+
        move.w  #0,(a1)+
*        adda    #48,a0
        adda    #48,a1
        dbf     d0,clit
	rts
********************fancy copy screen*************
copysc: move.w  #99,d0
        move.l  screen,a0
        move.l  screen2,a1
cop1:   move.w  #159,d1
cop2:   move.w  (a1)+,(a0)+
        dbf     d1,cop2
        addi.l  #160,a0
        addi.l  #160,a1
        dbf     d0,cop1
        move.w  #99,d0
        move.l  screen,a0
        addi.l  #160,a0
        move.l  screen2,a1
        addi.l  #160,a1
cop3:   move.w  #159,d1
cop4:   move.w  (a1)+,(a0)+
        dbf     d1,cop4
        addi.l  #160,a0
        addi.l  #160,a1
        dbf     d0,cop3
        rts
**********************routine to print a dec nuber*************
prtnum: 
        move.l  #0,d7
        move.w  number,d7
        andi.l  #$ffff,d7
        move.l  #line,a5

dodec:  move.l  d7,d6
        divu    #10,d6
        move.w  d6,d7
        swap    d6
        addi.w  #16,d6
        move.b  d6,(a5)+
        cmpi.w  #0,d7
        bne     dodec

        move.l  pos,-(sp)
        move.w  #9,-(sp)
        trap    #1
        addq.l  #6,sp
        move.l  #greencol,-(sp)
        move.w  #9,-(sp)
        trap    #1
        addq.l  #6,sp

        move.l  #backcol,-(sp)
        move.w  #9,-(sp)
        trap    #1
        addq.l  #6,sp


out:    cmpa.l  #line,a5
        beq     decback

        move.b  -(a5),d7
        andi.w  #$ff,d7
        
        move.w  d7,-(sp)
        move.w  #5,-(sp)
        move.w  #3,-(sp)
        trap    #13
        addq.l  #6,sp

        bra     out


decback:
        move.w  #' ',-(sp)
        move.w  #2,-(sp)
        trap    #1
        addq.l  #4,sp

        rts

*************puts my mouse interupt in***************** 


putrout:move.w  #34,-(sp)
        trap    #14
        addq.l  #2,sp
        move.l  d0,a0
        move.l  16(a0),oldmouse
        move.l  #myrout,16(a0)
        rts
**************my ubeut mouse interupt*******************
myrout:
        movem.l d0-d1/a0,-(sp)
        moveq   #0,d0   
        move.b  (a0),d0
        cmpi.b  #$fa,d0
        bne     myr1
        move.w  #1,buttondat
        bra     myrxy
myr1:
        cmpi.b  #$f9,d0
        bne     myr2
        move.w  #2,buttondat
        bra     myrxy
myr2:
        cmpi.b  #$fb,d0
        bne     myr3
        move.w  #3,buttondat
        bra     myrxy
myr3:
        move.w  #0,buttondat

myrxy:
        moveq   #0,d0
        move.b  1(a0),d0
        ext.w   d0
        moveq   #0,d1
        move.b  2(a0),d1
        ext.w   d1
        add.w   d0,mx
        add.w   d1,mmy
        move.w  mx,d0
        move.w  mmy,d1
        bsr     extra
        move.w  d0,mx
        move.w  d1,mmy
        movem.l (sp)+,d0-d1/a0
        rts

extra:  cmp.w   mmin,d0
        bge    .S extra1
        move.w  mmax2,d0
        bra    .S extra2
extra1: cmp.w   mmax,d0
        ble    .S extra2
        move.w  mmin2,d0
extra2: tst.w   d1
        bge    .S extra3
        move.w  #199,d1
        rts
extra3: cmp.w   #199,d1
        ble    .S extra4
        move.w  #0,d1
extra4: rts


mmin:	blk.w	1,0
mmax:	blk.w	1,0
mx:	blk.w	1,0
mmy:	blk.w	1,0
buttondat:
	blk.w	1,0

************get screen address***************
getscrn:move.w  #2,-(sp)
        trap    #14
        addq.l  #2,sp
        move.l  d0,screen
        move.l  d0,screen1
        move.l  d0,screen2
        subi.l  #$8000,screen2
        move.l  screen2,screen3
        subi.l  #$8000,screen3
	move.l	screen3,screen4
	subi.l	#$8000,screen4
        move.l  screen1,seen
        move.l  screen2,hiden
	move.l	#ytable1,sytable
	move.l	#ytable2,ytable
        rts


screen4:	blk.l	1,0
************change colors****************
colors: move.l #palette,-(sp)
        move.w #6,-(sp)
        trap #14
        addq.l #6,sp
        rts
************change colors****************
darkcolors:
        move.l #palette2,-(sp)
        move.w #6,-(sp)
        trap #14
        addq.l #6,sp
        rts

*****************wait for a key*********************
wait:   move.w  $26e6,d0
        cmpi.w  #2,d0
        beq     wback
        bra     wait
wback:  rts
***************turn mouse off***********************
mousof: dc.w    $a00a   
        rts

*******************************************************************
; SYSNOPSIS
;    RandomSeed( SeedValue )
;                   D0

randomseed:     ADD.L   D0,D1           ;user seed in d0 (d1 too)
                MOVEM.L D0/D1,RND

; drops through to the main random function (not user callable)

LongRnd:        MOVEM.L D2-D3,-(SP)     
                MOVEM.L RND,D0/D1       ;D0=LSB's, D1=MSB's of random number
                ANDI.B  #$0E,D0         ;ensure upper 59 bits are an...
                ORI.B   #$20,D0         ;...odd binary number
                MOVE.L  D0,D2
                MOVE.L  D1,D3
                ADD.L   D2,D2           ;accounts for 1 of 17 left shifts
                ADDX.L  D3,D3           ;[D2/D3] = RND*2
                ADD.L   D2,D0
                ADDX.L  D3,D1           ;[D0/D1] = RND*3
                SWAP    D3              ;shift [D2/D3] additional 16 times
                SWAP    D2
                MOVE.W  D2,D3
                CLR.W   D2
                ADD.L   D2,D0           ;add to [D0/D1]
                ADDX.L  D3,D1
                MOVEM.L D0/D1,RND       ;save for next time through
                MOVE.L  D1,D0           ;most random part to D0
                MOVEM.L (SP)+,D2-D3
                RTS

; SYSNOPSIS
;    RndNum = Random( UpperLimit )
;      D0                 D0

random:         MOVE.W  D2,-(SP)
                MOVE.W  D0,D2           ;save upper limit
                BEQ.S   r1              ;range of 0 returns 0 always
                BSR.S   LongRnd         ;get a longword random number
                CLR.W   D0              ;use upper word (it's most random)
                SWAP    D0
                ext.l   d0
                DIVs    D2,D0           ;divide by range...
                CLR.W   D0              ;...and use remainder for the value
                SWAP    D0              ;result in D0.W
r1:             MOVE.W  (SP)+,D2
                RTS

randomplus:     MOVE.W  D2,-(SP)
                MOVE.W  D0,D2           ;save upper limit
                BEQ.S   r2              ;range of 0 returns 0 always
                BSR.S   LongRnd         ;get a longword random number
                CLR.W   D0              ;use upper word (it's most random)
                SWAP    D0
                DIVu    D2,D0           ;divide by range...
                CLR.W   D0              ;...and use remainder for the value
                SWAP    D0              ;result in D0.W
r2:             MOVE.W  (SP)+,D2
                RTS





*********************************************************
*       a brilliant routine courtesy of janko to        *
*       insert the vbi addresses in the jump table      *
*       lea address of routine in a0 do a jsr           *
*       putvbl and thats it!!!                          *
*********************************************************


putvbl: lea     $452,a1
        move.w  #1,(a1)
        moveq   #7,d1
        lea     $456,a1
        move.l  (a1),a1
vbl3:   subq.b  #1,d1
        cmpi.b  #0,d1
        beq.s   vbl4
        move.l  (a1)+,d0
        cmpi.l  #0,d0
        bne.S   vbl3
        suba.l  #4,a1
        move.l  a0,(a1)
vbl4:   rts



*********************************************************
*       my routines for loading in the screens          *
*       note i use degas format even though I           *
*       hate the package,due to it's simple format      *
*       ie: 32l for pallette and straight 32k screen    *
*       dump                                            *
*********************************************************

loadscr:move    #0,-(SP)        ;Open file
        move.l  #filename,-(SP) ;Address of filename
        move    #$3D,-(SP)
        trap    #1              ;Get handle number in D0
        addq.l  #8,SP
                
        move    D0,-(SP)        ;Save handle

        move.l  #sounds,-(SP)    ;load pallette into safe area
        move.l  #128,-(SP)       ;length to read in
        move    D0,-(SP)        ;Handle
        move    #$3F,-(SP)      ;bios number
        trap    #1              ;Read file in
        addi.l   #12,SP
        move    (sp),d0        
               
        move.l  screen4,-(SP)    ;load it straight onto screen
        move.l  #32000,-(SP)    ;length to read in
        move    D0,-(SP)        ;Handle
        move    #$3F,-(SP)      ;bios number
        trap    #1              ;Read file in
        addi.l   #12,SP
                
        move    #$3E,-(SP)      ;Handle already on stack
        trap    #1              ;Close file
        addq.l  #4,SP
        rts
*********************************
loadsounds:
	move    #0,-(SP)        ;Open file
        move.l  #filesounds,-(SP) ;Address of filename
        move    #$3D,-(SP)
        trap    #1              ;Get handle number in D0
        addq.l  #8,SP
                
        move    D0,-(SP)        ;Save handle

        move.l  #sounds,-(SP)    ;load pallette into safe area
        move.l  #41150,-(SP)       ;length to read in
        move    D0,-(SP)        ;Handle
        move    #$3F,-(SP)      ;bios number
        trap    #1              ;Read file in
        addi.l   #12,SP
        move    (sp),d0        

        move    #$3E,-(SP)      ;Handle already on stack
        trap    #1              ;Close file
        addq.l  #4,SP

	move.l	#sounds,d0
	add.l	#0,d0
	move.l	d0,shoot1s
	move.l	#sounds,d0
	add.l	#1256,d0
	move.l	d0,shoot1b

	move.l	#sounds,d0
	add.l	#1258,d0
	move.l	d0,shoot0s
	move.l	#sounds,d0
	add.l	#2652,d0
	move.l	d0,shoot0b

	move.l	#sounds,d0
	add.l	#2652,d0
	move.l	d0,laughs
	move.l	#sounds,d0
	add.l	#9430,d0
	move.l	d0,laughb

	move.l	#sounds,d0
	add.l	#9430,d0
	move.l	d0,pays
	move.l	#sounds,d0
	add.l	#18419,d0
	move.l	d0,payb

	move.l	#sounds,d0
	add.l	#18420,d0
	move.l	d0,appears
	move.l	#sounds,d0
	add.l	#20270,d0
	move.l	d0,appearb

	move.l	#sounds,d0
	add.l	#20278,d0
	move.l	d0,rewards
	move.l	#sounds,d0
	add.l	#24963,d0
	move.l	d0,rewardb

	move.l	#sounds,d0
	add.l	#24963,d0
	move.l	d0,booms
	move.l	#sounds,d0
	add.l	#27664,d0
	move.l	d0,boomb

	move.l	#sounds,d0
	add.l	#27664,d0
	move.l	d0,bigbooms
	move.l	#sounds,d0
	add.l	#41149,d0
	move.l	d0,bigboomb
	rts

filesounds:	dc.b	'all.spl',0
	even
shoot0s:	blk.l	1,0
shoot0b:	blk.l	1,0
shoot1s:	blk.l	1,0
shoot1b:	blk.l	1,0
laughs:		blk.l	1,0
laughb:		blk.l	1,0
pays:	blk.l	1,0
payb:	blk.l	1,0
appears:	blk.l	1,0
appearb:	blk.l	1,0
rewards:	blk.l	1,0
rewardb:	blk.l	1,0
booms:	blk.l	1,0
boomb:	blk.l	1,0
bigbooms:	blk.l	1,0
bigboomb:	blk.l	1,0



loadmusic:
	move    #0,-(SP)        ;Open file
        move.l  #filemusic,-(SP) ;Address of filename
        move    #$3D,-(SP)
        trap    #1              ;Get handle number in D0
        addq.l  #8,SP
                
        move    D0,-(SP)        ;Save handle

        move.l  #sounds,-(SP)    ;load pallette into safe area
        move.l  #50081,-(SP)       ;length to read in
        move    D0,-(SP)        ;Handle
        move    #$3F,-(SP)      ;bios number
        trap    #1              ;Read file in
        addi.l   #12,SP
        move    (sp),d0        

        move    #$3E,-(SP)      ;Handle already on stack
        trap    #1              ;Close file
        addq.l  #4,SP
	rts

filemusic:	dc.b	'music3.spl',0
	even
sounds:	blk.b	60731,0
	even

*********************************************************

loadballs:move    #0,-(SP)        ;Open file
        move.l  #fileballs,-(SP) ;Address of filename
        move    #$3D,-(SP)
        trap    #1              ;Get handle number in D0
        addq.l  #8,SP
                
        move    D0,-(SP)        ;Save handle

        move.l  #dummy,-(SP)    ;load pallette into safe area
        move.l  #128,-(SP)       ;length to read in
        move    D0,-(SP)        ;Handle
        move    #$3F,-(SP)      ;bios number
        trap    #1              ;Read file in
        addi.l   #12,SP
        move    (sp),d0        
               
        move.l  screen3,-(SP)    ;load it straight onto screen
        move.l  #32000,-(SP)    ;length to read in
        move    D0,-(SP)        ;Handle
        move    #$3F,-(SP)      ;bios number
        trap    #1              ;Read file in
        addi.l   #12,SP
                
        move    #$3E,-(SP)      ;Handle already on stack
        trap    #1              ;Close file
        addq.l  #4,SP
        rts

fileballs:
	dc.b	'qballs.neo',0
	even
******************************
loadcorners:
	move    #0,-(SP)        ;Open file
        move.l  #filecorn,-(SP) ;Address of filename
        move    #$3D,-(SP)
        trap    #1              ;Get handle number in D0
        addq.l  #8,SP
                
        move    D0,-(SP)        ;Save handle

        move.l  #dummy,-(SP)    ;load pallette into safe area
        move.l  #128,-(SP)       ;length to read in
        move    D0,-(SP)        ;Handle
        move    #$3F,-(SP)      ;bios number
        trap    #1              ;Read file in
        addi.l   #12,SP
        move    (sp),d0        
               
        move.l  screen3,-(SP)    ;load it straight onto screen
        move.l  #32000,-(SP)    ;length to read in
        move    D0,-(SP)        ;Handle
        move    #$3F,-(SP)      ;bios number
        trap    #1              ;Read file in
        addi.l   #12,SP
                
        move    #$3E,-(SP)      ;Handle already on stack
        trap    #1              ;Close file
        addq.l  #4,SP
        rts

filecorn:
	dc.b	'qcorner.neo',0
	even

*******************blocks for rotated sprites*************
screen3:blk.l   1,0
pblock: blk.l   50
screen: blk.l   1
off:    blk.w   1
ynflg:  blk.w   1
screen2:blk.l   1
screen1:blk.l   1
dummy:  blk.l   32
xvel:   blk.w   1
yvel:   blk.w   1
brhits:	blk.w	1,0
filename:       dc.b    'qtitle.neo',0  
even
line:   blk.b   10
pos:    blk.l   1
col:    blk.l   1
number: blk.w   1
whichblock:     blk.l   1,0
shipx:  blk.w   1,0
shipy:  blk.w   1,0
shootx: blk.w   1,0
shooty: blk.w   1,0
bigshootx:      blk.w   1,0
bigshooty:      blk.w   1,0
shotxvel:       blk.w   1,0
shotyvel:       blk.w   1,0
levpos:         dc.b    27,89,41,64,0
scorepos:       dc.b    27,89,38,64,0
shippos:        dc.b    27,89,45,65,0
backcol:        dc.b    27,99,2,0
greencol:       dc.b    27,98,10,0

even
ships:	blk.w	1,0
intin:  blk.l   1
ptsin:  blk.l   1
putpix: equ     $a001
getpix: equ     $a002
seen:   blk.l   1
hiden:  blk.l   1
bigflg: blk.w   1,-1
palette2:
        dc.w    $0000,$0000,$0000
        dc.w    $0000,$0000,$0000
        dc.w    $0000,$0000,$0000
        dc.w    $0000,$0000,$0000
        dc.w    $0000,$0000,$0000
        dc.w    $0000



illegal
*************************************STORAGE*******************************
shooting:       blk.w   1,-1
rnd:            blk.l   2,0
beatflg:        blk.w   1,0
speed:		blk.w	1,0
brtimer:        blk.w   1,0
lastbr:         blk.w   1,0
grtimer:        blk.w   1,0
levsp:          blk.l   1,0
levtim:         blk.w   1,0
pdflg:          blk.w   1,0
my:             blk.w   1,0
whsp:           blk.l   1,0
tempsp:         blk.w   500,0
oldsp:          blk.w   1,-1
oldht:          blk.w   1,0
oldwt:          blk.w   1,0
oldscr:         blk.l   1,0
tempsh:         blk.l   1,0
score:          blk.w   1,0
level:          blk.w   1,0
oldmouse:       blk.l   1,0
linepar:        blk.l   1,0
mmin2:           blk.w   1,0
mmax2:           blk.w   1,0
byebye:         blk.w   1,-1
blockad:        blk.l   1,0

*  Hardware color pallet  (color 0 to 15):

palette:dc.w    $0000,$0777,$0555,$0333,$0007,$0005,$0003,$0750
        dc.w    $0630,$0420,$0070,$0050,$0030,$0707,$0606,$0404

fade1:	dc.w    $0000,$0666,$0444,$0222,$0006,$0004,$0002,$0640
        dc.w    $0520,$0310,$0060,$0040,$0020,$0606,$0505,$0303

fade2:	dc.w    $0000,$0555,$0333,$0111,$0005,$0003,$0001,$0530
        dc.w    $0410,$0200,$0050,$0030,$0010,$0505,$0404,$0202

fade3:	dc.w    $0000,$0444,$0222,$0000,$0004,$0002,$0000,$0420
        dc.w    $0300,$0100,$0040,$0020,$0000,$0404,$0303,$0101

fade4:	dc.w    $0000,$0333,$0111,$0000,$0003,$0001,$0000,$0310
        dc.w    $0200,$0000,$0030,$0010,$0000,$0303,$0202,$0000

fade5:	dc.w    $0000,$0222,$0000,$0000,$0002,$0000,$0000,$0200
        dc.w    $0100,$0000,$0020,$0000,$0000,$0202,$0101,$0000

fade6:	dc.w    $0000,$0111,$0000,$0000,$0001,$0000,$0000,$0100
        dc.w    $0000,$0000,$0010,$0000,$0000,$0101,$0000,$0000

fade7:	dc.w    $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000
        dc.w    $0000,$0000,$0000,$0000,$0000,$0000,$0000,$0000



boomcols:
	dc.w	$0100,$0200,$0300,$0400,$0500,$0600,$0700
	dc.w	$0600,$0500,$0400,$0300,$0200,$0100,$0000


panel:	dc.w	$6060,$7F80,$801F,$0000,$0000,$0000,$FFFF,$0000
	dc.w	$0000,$0000,$FFFF,$0000,$0000,$0000,$FFFF,$0000
	dc.w	$0000,$0000,$FFFF,$0000,$0183,$01FC,$FE00,$0000
	dc.w	$6060,$7F80,$8010,$0000,$0000,$0000,$4104,$0000
	dc.w	$0000,$0000,$1041,$0000,$0000,$0000,$0410,$0000
	dc.w	$0000,$0000,$4104,$0000,$0183,$01FC,$1000,$0000


ship0:	dc.w	$0E00,$0000,$0001,$0000,$0070,$0000,$8000,$0000
	dc.w	$1EC2,$0CC2,$0001,$0000,$4378,$4330,$8000,$0000
	dc.w	$3CFE,$1EBC,$0001,$0000,$7F3C,$3D78,$8000,$0000
	dc.w	$7CFE,$3E81,$0000,$0000,$7F3E,$817C,$0000,$0000
	dc.w	$FC80,$02FF,$0000,$0000,$013F,$FF40,$0000,$0000
	dc.w	$0080,$FEFF,$0000,$0000,$0100,$FF7F,$0000,$0000
	dc.w	$80C0,$E2C0,$1C3F,$0000,$0301,$0347,$FC38,$0000
	dc.w	$C2FF,$DEFF,$2000,$0000,$FF43,$FF7B,$0004,$0000
	dc.w	$7EFF,$3EFF,$4000,$0000,$FF7E,$FF7C,$0002,$0000
	dc.w	$3E00,$3E00,$0000,$0000,$007C,$007C,$0000,$0000

ship3:	dc.w	$3400,$3800,$0000,$0000,$6600,$3800,$4000,$0000
	dc.w	$C700,$DA00,$2000,$0000,$C780,$EB00,$1000,$0000
	dc.w	$C7C0,$EB80,$1000,$0000,$C7C0,$EB80,$1000,$0000
	dc.w	$E0C0,$FF00,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$7F80,$7F80,$0000,$0000,$7380,$7C80,$0000,$0000
	dc.w	$6300,$6D00,$1000,$0000,$6300,$6D00,$1000,$0000
	dc.w	$6300,$6D00,$1000,$0000,$6300,$6D00,$1000,$0000
	dc.w	$6380,$6C80,$1000,$0000,$6000,$6E00,$11C0,$0000
	dc.w	$6000,$6E00,$11C0,$0000,$6380,$6C80,$1000,$0000
	dc.w	$6300,$6D00,$1000,$0000,$6300,$6D00,$1000,$0000
	dc.w	$6300,$6D00,$1000,$0000,$6300,$6D00,$1000,$0000
	dc.w	$7380,$7C80,$0000,$0000,$7F80,$7F80,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$E0C0,$FF00,$0000,$0000
	dc.w	$C7C0,$EB80,$1000,$0000,$C7C0,$EB80,$1000,$0000
	dc.w	$C780,$EB00,$1000,$0000,$C700,$DA00,$2000,$0000
	dc.w	$6600,$3800,$4000,$0000,$3400,$3800,$0000,$0000

ship2:	dc.w	$3E00,$3E00,$0000,$0000,$007C,$007C,$0000,$0000
	dc.w	$7EFF,$3EFF,$4000,$0000,$FF7E,$FF7C,$0002,$0000
	dc.w	$C2FF,$DEFF,$2000,$0000,$FF43,$FF7B,$0004,$0000
	dc.w	$80C0,$E2C0,$1C3F,$0000,$0301,$0347,$FC38,$0000
	dc.w	$0080,$FEFF,$0000,$0000,$0100,$FF7F,$0000,$0000
	dc.w	$FC80,$02FF,$0000,$0000,$013F,$FF40,$0000,$0000
	dc.w	$7CFE,$3E81,$0000,$0000,$7F3E,$817C,$0000,$0000
	dc.w	$3CFE,$1EBC,$0001,$0000,$7F3C,$3D78,$8000,$0000
	dc.w	$1EC2,$0CC2,$0001,$0000,$4378,$4330,$8000,$0000
	dc.w	$0E00,$0000,$0001,$0000,$0070,$0000,$8000,$0000

ship1:	dc.w	$0B00,$0700,$0000,$0000,$1980,$0700,$0080,$0000
	dc.w	$38C0,$16C0,$0100,$0000,$78C0,$35C0,$0200,$0000
	dc.w	$F8C0,$75C0,$0200,$0000,$F8C0,$75C0,$0200,$0000
	dc.w	$C1C0,$3FC0,$0000,$0000,$0000,$0000,$0000,$0000
	dc.w	$7F80,$7F80,$0000,$0000,$7380,$4F80,$0000,$0000
	dc.w	$3180,$2D80,$0200,$0000,$3180,$2D80,$0200,$0000
	dc.w	$3180,$2D80,$0200,$0000,$3180,$2D80,$0200,$0000
	dc.w	$7180,$4D80,$0200,$0000,$0180,$1D80,$E200,$0000
	dc.w	$0180,$1D80,$E200,$0000,$7180,$4D80,$0200,$0000
	dc.w	$3180,$2D80,$0200,$0000,$3180,$2D80,$0200,$0000
	dc.w	$3180,$2D80,$0200,$0000,$3180,$2D80,$0200,$0000
	dc.w	$7380,$4F80,$0000,$0000,$7F80,$7F80,$0000,$0000
	dc.w	$0000,$0000,$0000,$0000,$C1C0,$3FC0,$0000,$0000
	dc.w	$F8C0,$75C0,$0200,$0000,$F8C0,$75C0,$0200,$0000
	dc.w	$78C0,$35C0,$0200,$0000,$38C0,$16C0,$0100,$0000
	dc.w	$1980,$0700,$0080,$0000,$0B00,$0700,$0000,$0000


bat0:	dc.w	$0E18,$01E7,$0118,$0000,$1870,$E780,$1880,$0000
	dc.w	$1EE7,$0D00,$0118,$0000,$E778,$00B0,$1880,$0000
	dc.w	$3CE7,$1F00,$0118,$0000,$E73C,$00F8,$1880,$0000
	dc.w	$7C67,$3F80,$0118,$0000,$E63E,$01FC,$1880,$0000
	dc.w	$FC98,$03E7,$0118,$0000,$193F,$E7C0,$1880,$0000
	dc.w	$00D8,$FFE7,$0118,$0000,$1B00,$E7FF,$1880,$0000
	dc.w	$80E7,$E3FF,$1D18,$0000,$E701,$FFC7,$18B8,$0000
	dc.w	$C2E7,$DFFF,$2118,$0000,$E743,$FFFB,$1884,$0000
	dc.w	$7EE7,$3FFF,$4118,$0000,$E77E,$FFFC,$1882,$0000
	dc.w	$3E00,$3E00,$0000,$0000,$007C,$007C,$0000,$0000

bat3:	dc.w	$3400,$3800,$0000,$0000,$6600,$3800,$4000,$0000
	dc.w	$C700,$DA00,$2000,$0000,$C780,$EB00,$1000,$0000
	dc.w	$C7C0,$EB80,$1000,$0000,$C7C0,$EB80,$1000,$0000
	dc.w	$E0C0,$FF00,$0000,$0000,$0000,$7FC0,$7FC0,$0000
	dc.w	$7D80,$7E40,$0000,$0000,$7B80,$7C40,$0000,$0000
	dc.w	$7380,$7C40,$0000,$0000,$0C40,$7000,$7FC0,$0000
	dc.w	$0C40,$7000,$7FC0,$0000,$7380,$7C40,$0000,$0000
	dc.w	$7380,$7C40,$0000,$0000,$7380,$7C40,$0000,$0000
	dc.w	$7380,$7C40,$0000,$0000,$7380,$7C40,$0000,$0000
	dc.w	$7380,$7C40,$0000,$0000,$0C40,$7000,$7FC0,$0000
	dc.w	$0C40,$7000,$7FC0,$0000,$7380,$7C40,$0000,$0000
	dc.w	$7B80,$7C40,$0000,$0000,$7D80,$7E40,$0000,$0000
	dc.w	$0000,$7FC0,$7FC0,$0000,$E0C0,$FF00,$0000,$0000
	dc.w	$C7C0,$EB80,$1000,$0000,$C7C0,$EB80,$1000,$0000
	dc.w	$C780,$EB00,$1000,$0000,$C700,$DA00,$2000,$0000
	dc.w	$6600,$3800,$4000,$0000,$3400,$3800,$0000,$0000

bat2:	dc.w	$3E00,$3E00,$0000,$0000,$007C,$007C,$0000,$0000
	dc.w	$7EE7,$3FFF,$4118,$0000,$E77E,$FFFC,$1882,$0000
	dc.w	$C2E7,$DFFF,$2118,$0000,$E743,$FFFB,$1884,$0000
	dc.w	$80E7,$E3FF,$1D18,$0000,$E701,$FFC7,$18B8,$0000
	dc.w	$00D8,$FFE7,$0118,$0000,$1B00,$E7FF,$1880,$0000
	dc.w	$FC98,$03E7,$0118,$0000,$193F,$E7C0,$1880,$0000
	dc.w	$7C67,$3F80,$0118,$0000,$E63E,$01FC,$1880,$0000
	dc.w	$3CE7,$1F00,$0118,$0000,$E73C,$00F8,$1880,$0000
	dc.w	$1EE7,$0D00,$0118,$0000,$E778,$00B0,$1880,$0000
	dc.w	$0E18,$01E7,$0118,$0000,$1870,$E780,$1880,$0000

bat1:	dc.w	$0B00,$0700,$0000,$0000,$1980,$0700,$0080,$0000
	dc.w	$38C0,$16C0,$0100,$0000,$78C0,$35C0,$0200,$0000
	dc.w	$F8C0,$75C0,$0200,$0000,$F8C0,$75C0,$0200,$0000
	dc.w	$C1C0,$3FC0,$0000,$0000,$0000,$FF80,$FF80,$0000
	dc.w	$6F80,$9F80,$0000,$0000,$7780,$8F80,$0000,$0000
	dc.w	$7380,$8F80,$0000,$0000,$8C00,$0380,$FF80,$0000
	dc.w	$8C00,$0380,$FF80,$0000,$7380,$8F80,$0000,$0000
	dc.w	$7380,$8F80,$0000,$0000,$7380,$8F80,$0000,$0000
	dc.w	$7380,$8F80,$0000,$0000,$7380,$8F80,$0000,$0000
	dc.w	$7380,$8F80,$0000,$0000,$8C00,$0380,$FF80,$0000
	dc.w	$8C00,$0380,$FF80,$0000,$7380,$8F80,$0000,$0000
	dc.w	$7780,$8F80,$0000,$0000,$6F80,$9F80,$0000,$0000
	dc.w	$0000,$FF80,$FF80,$0000,$C1C0,$3FC0,$0000,$0000
	dc.w	$F8C0,$75C0,$0200,$0000,$F8C0,$75C0,$0200,$0000
	dc.w	$78C0,$35C0,$0200,$0000,$38C0,$16C0,$0100,$0000
	dc.w	$1980,$0700,$0080,$0000,$0B00,$0700,$0000,$0000

bbrain:	dc.w    $7FFF,$8000,$0000,$0000,$FFFF,$0000,$0000,$0000
        dc.w    $8000,$FFF0,$0000,$000F,$1001,$0FFE,$0000,$F000
        dc.w    $8035,$FF85,$0005,$007A,$A201,$81FE,$8000,$7E00
        dc.w    $8434,$FC04,$0004,$03FB,$4B01,$483E,$4800,$B7C0
        dc.w    $8F55,$F844,$0044,$07BB,$A5C1,$241E,$2400,$DBE0
        dc.w    $9F2A,$F022,$0022,$0FDD,$5AF1,$420E,$4200,$BDF0
        dc.w    $B7DD,$E0C1,$00C1,$1F3E,$94E9,$8406,$8400,$7BF8
        dc.w    $FB20,$C100,$0100,$3EFF,$2315,$2312,$2310,$DCEC
        dc.w    $FB5E,$C31E,$031E,$3CE1,$58DD,$58DA,$58D8,$A724
        dc.w    $F021,$8021,$0021,$7FDE,$A4C3,$84C0,$84C0,$7B3E
        dc.w    $EBCA,$83C2,$03C2,$7C3D,$5B2F,$4220,$4220,$BDDE
        dc.w    $FBCA,$83C2,$03C2,$7C3D,$5B2F,$4220,$4220,$BDDE
        dc.w    $EE35,$8030,$0030,$7FCF,$B52F,$0420,$0420,$FBDE
        dc.w    $E449,$0009,$0009,$FFF6,$E4D9,$E4C0,$E4C0,$1B3F
        dc.w    $DB96,$0386,$0386,$FC79,$1224,$1224,$1224,$EDDB
        dc.w    $C561,$0060,$0060,$FF9F,$D529,$1128,$1128,$EED7
        dc.w    $ED8E,$000E,$000E,$FFF1,$522B,$1228,$1228,$EDD7
        dc.w    $C751,$0311,$0311,$FCEE,$9217,$9210,$9210,$6DEF
        dc.w    $CEAA,$0088,$0088,$FF77,$4CC9,$4CC0,$4CC0,$B33F
        dc.w    $FB95,$0084,$0084,$FF7B,$A0D1,$20C0,$20C0,$DF3F
        dc.w    $F54A,$8002,$0002,$7FFD,$2B83,$2380,$2380,$DC7E
        dc.w    $F465,$8001,$0001,$7FFE,$9887,$9880,$9880,$677E
        dc.w    $FA45,$8001,$0001,$7FFE,$192F,$1900,$1900,$E6FE
        dc.w    $FEC8,$8000,$0000,$7FFF,$617F,$0000,$0000,$FFFE
        dc.w    $FFA4,$C000,$0000,$3FFF,$CA5D,$0002,$0000,$FFFC
        dc.w    $FFF7,$C000,$0000,$3FFF,$9C5D,$0002,$0000,$FFFC
        dc.w    $FFCE,$E000,$0000,$1FFF,$59FD,$0006,$0000,$FFF8
        dc.w    $FFF6,$F000,$0000,$0FFF,$7FF9,$000E,$0000,$FFF0
        dc.w    $FFFF,$F800,$0000,$07FF,$FFF9,$001E,$0000,$FFE0
        dc.w    $FFFF,$FC00,$0000,$03FF,$FFF1,$003E,$0000,$FFC0
        dc.w    $BFFF,$FF80,$0000,$007F,$FFE1,$01FE,$0000,$FE00
        dc.w    $FFFF,$FFF0,$0000,$000F,$FFFE,$0FFF,$0000,$F000

lbrain: dc.w    $7FFF,$8000,$0000,$0000,$FFFF,$0000,$0000,$0000
        dc.w    $8000,$FFFF,$0000,$0000,$0001,$FFFE,$0000,$0000
        dc.w    $8000,$FFF0,$0000,$000F,$2001,$1FFE,$0000,$E000
        dc.w    $81B5,$FF85,$0005,$007A,$4401,$03FE,$0000,$FC00
        dc.w    $8234,$FE04,$0004,$01FB,$9601,$90FE,$9000,$6F00
        dc.w    $8F55,$FC44,$0044,$03BB,$4B01,$487E,$4800,$B780
        dc.w    $9B2A,$F822,$0022,$07DD,$B5C1,$843E,$8400,$7BC0
        dc.w    $BADD,$F0C1,$00C1,$0F3E,$29A1,$081E,$0800,$F7E0
        dc.w    $FD20,$E100,$0100,$1EFF,$4651,$464E,$4640,$B9B0
        dc.w    $FD5E,$E11E,$011E,$1EE1,$B171,$B16E,$B160,$4E90
        dc.w    $EA21,$C221,$0221,$3DDE,$4909,$0906,$0900,$F6F8
        dc.w    $E5CA,$C1C2,$01C2,$3E3D,$B6B9,$8486,$8480,$7B78
        dc.w    $EA35,$C830,$0830,$37CF,$6AB9,$0886,$0880,$F778
        dc.w    $F649,$8409,$0409,$7BF6,$C965,$C902,$C900,$36FC
        dc.w    $ED96,$8186,$0186,$7E79,$2491,$2492,$2490,$DB6C
        dc.w    $EA61,$8260,$0260,$7D9F,$AAA5,$22A2,$22A0,$DD5C
        dc.w    $F28E,$800E,$000E,$7FF1,$A4AD,$24A2,$24A0,$DB5C
        dc.w    $E951,$8111,$0111,$7EEE,$245D,$2442,$2440,$DBBC
        dc.w    $EFAA,$8088,$0088,$7F77,$9925,$9902,$9900,$66FC
        dc.w    $EE95,$8084,$0084,$7F7B,$414D,$4102,$4100,$BEFC
        dc.w    $FB6A,$C022,$0022,$3FDD,$5729,$4726,$4720,$B8D8
        dc.w    $F5D5,$C111,$0111,$3EEE,$3099,$3086,$3080,$CF78
        dc.w    $FDEA,$C002,$0002,$3FFD,$CAB9,$0886,$0880,$F778
        dc.w    $FE4D,$E004,$0004,$1FFB,$B471,$300E,$3000,$CFF0
        dc.w    $FDC3,$E000,$0000,$1FFF,$C931,$400E,$4000,$BFF0
        dc.w    $FFDC,$F000,$0000,$0FFF,$35E1,$001E,$0000,$FFE0
        dc.w    $FFF1,$F800,$0000,$07FF,$6BE1,$003E,$0000,$FFC0
        dc.w    $FF9E,$FC00,$0000,$03FF,$BBC1,$007E,$0000,$FF80
        dc.w    $FFF4,$FE00,$0000,$01FF,$BF81,$00FE,$0000,$FF00
        dc.w    $BFFF,$FF80,$0000,$007F,$FF01,$03FE,$0000,$FC00
        dc.w    $BFFF,$FFF0,$0000,$000F,$FC01,$1FFE,$0000,$E000
        dc.w    $FFFF,$FFFF,$0000,$0000,$FFFE,$FFFF,$0000,$0000

eyebrain:
	dc.w	$7FFF,$8000,$0000,$0000,$FFFF,$0000,$0000,$0000
	dc.w	$8000,$FFFF,$0000,$0000,$0001,$FFFE,$0000,$0000
	dc.w	$8000,$FFF0,$0000,$000F,$2001,$1FFE,$0000,$E000
	dc.w	$81B5,$FF85,$0005,$007A,$4401,$03FE,$0000,$FC00
	dc.w	$8234,$FE04,$0004,$01FB,$9601,$90FE,$9000,$6F00
	dc.w	$8F55,$FC44,$0044,$03BB,$4B01,$487E,$4800,$B780
	dc.w	$9B2E,$F826,$0026,$07D9,$F5C1,$C43E,$C400,$3BC0
	dc.w	$BAF0,$F0F0,$00F0,$0F0F,$39A1,$381E,$3800,$C7E0
	dc.w	$FD27,$E100,$0100,$1EFF,$C651,$064E,$0640,$F9B0
	dc.w	$FD5D,$E100,$0100,$1EFA,$F171,$016E,$0160,$3E90
	dc.w	$EA3B,$C200,$0200,$3DE4,$D909,$0106,$0100,$2EF8
	dc.w	$E47F,$C000,$0000,$3FC0,$EEB9,$0086,$0080,$1778
	dc.w	$EABE,$CA40,$0A03,$3580,$1EB9,$0086,$C080,$2378
	dc.w	$F4FF,$8400,$040F,$7BC0,$CE65,$0042,$F040,$03BC
	dc.w	$ED4F,$8480,$040F,$7B30,$EF51,$0052,$F050,$01AC
	dc.w	$ED6C,$8490,$041E,$7B00,$7565,$0062,$3860,$039C
	dc.w	$F768,$8490,$041C,$7B00,$376D,$0062,$3860,$019C
	dc.w	$EF68,$8490,$041C,$7B00,$3F5D,$0042,$3840,$01BC
	dc.w	$EB28,$8090,$001E,$7F40,$1F25,$0002,$7800,$01FC
	dc.w	$EBB4,$8048,$000F,$7F80,$2E4D,$1042,$F040,$03BC
	dc.w	$FB93,$C06C,$000F,$3F80,$C2A9,$34A6,$F0A0,$0B58
	dc.w	$F5C0,$C03F,$0003,$3FC0,$3499,$C886,$C080,$0778
	dc.w	$FDE2,$C01D,$0000,$3FE2,$08B9,$F086,$0080,$0F78
	dc.w	$FE7D,$E002,$0000,$1FFD,$3171,$C10E,$0100,$3EF0
	dc.w	$FD1F,$E000,$0000,$1FFF,$E331,$020E,$0200,$FDF0
	dc.w	$FFDF,$F000,$0000,$0FFF,$C5E1,$001E,$0000,$FFE0
	dc.w	$FFE0,$F800,$0000,$07FF,$0BE1,$003E,$0000,$FFC0
	dc.w	$FF9E,$FC00,$0000,$03FF,$BBC1,$007E,$0000,$FF80
	dc.w	$FFF4,$FE00,$0000,$01FF,$BF81,$00FE,$0000,$FF00
	dc.w	$BFFF,$FF80,$0000,$007F,$FF01,$03FE,$0000,$FC00
	dc.w	$BFFF,$FFF0,$0000,$000F,$FC01,$1FFE,$0000,$E000
	dc.w	$FFFF,$FFFF,$0000,$0000,$FFFE,$FFFF,$0000,$0000

spxy:   dc.w    0,176,190,0,175,190,0,174,190,0,173,190
        dc.w    0,172,190,0,171,190,0,170,190,0,169,190
        dc.w    0,168,190,0,167,190,0,166,190,0,165,190
        dc.w    0,164,190,0,163,190,0,162,190,0,163,190
        dc.w    0,162,190,0,161,190,0,160,190,0,159,190
        dc.w    0,158,190,0,157,190,0,156,190,0,155,190
        dc.w    0,154,190,0,153,190,0,152,190,0,151,190
        dc.w    0,150,190,0,149,190,0,148,190,0,147,190
        dc.w    0,146,190,0,145,190,0,144,190,0,143,190
        dc.w    0,142,190,0,141,190,0,140,190,0,139,190
        dc.w    0,138,190,0,137,190,0,136,190,0,135,190
        dc.w    0,134,190,0,133,190,0,132,190,0,131,190
        dc.w    0,130,190,0,129,190,0,128,190,0,127,190
        dc.w    0,126,190,0,125,190,0,124,190,0,123,190
        dc.w    0,122,190,0,121,190,0,120,190,0,119,190
        dc.w    0,118,190,0,117,190,0,116,190,0,115,190
        dc.w    0,114,190,0,113,190,0,112,190,0,111,190
        dc.w    0,110,190,0,109,190,0,108,190,0,107,190
        dc.w    0,106,190,0,105,190,0,104,190,0,103,190
        dc.w    0,102,190,0,101,190,0,100,190,0,99,190
        dc.w    0,98,190
        dc.w    0,97,190,0,96,190,0,95,190,0,94,190
        dc.w    0,93,190,0,92,190,0,91,190,0,90,190
        dc.w    0,89,190,0,88,190,0,87,190,0,86,190
        dc.w    0,85,190,0,84,190,0,83,190,0,82,190
        dc.w    0,81,190,0,80,190,0,79,190,0,78,190
        dc.w    0,77,190,0,76,190,0,75,190,0,74,190
        dc.w    0,73,190,0,72,190,0,71,190,0,70,190
        dc.w    0,69,190,0,68,190,0,67,190,0,66,190
        dc.w    0,65,190,0,64,190,0,63,190,0,62,190
        dc.w    0,61,190,0,60,190,0,59,190,0,58,190
        dc.w    0,57,190,0,56,190,0,55,190,0,54,190
        dc.w    0,53,190,0,52,190,0,51,190,0,50,190
        dc.w    0,49,190,0,48,190,0,47,190,0,46,190
        dc.w    0,45,190,0,44,190,0,43,190,0,42,190
        dc.w    0,41,190,0,40,190,0,39,190,0,38,190
        dc.w    0,37,190,0,36,190,0,35,190,0,34,190
        dc.w    0,33,190,0,32,190,0,31,190,0,30,190
        dc.w    0,29,190,0,28,190,0,27,190,0,26,190
        dc.w    0,25,190,0,24,190,0,23,190,0,22,190
        dc.w    0,21,190,0,20,190,0,19,190,0,18,190
        dc.w    0,17,190,0,16,190
        dc.w    1,0,151,1,0,150,1,0,149
        dc.w    1,0,148,1,0,147,1,0,146,1,0,145,1,0,144
        dc.w    1,0,143,1,0,142,1,0,141
        dc.w    1,0,140
        dc.w    1,0,139,1,0,138,1,0,137,1,0,136,1,0,135
        dc.w    1,0,134,1,0,133,1,0,132,1,0,131,1,0,130
        dc.w    1,0,129,1,0,128,1,0,127,1,0,126,1,0,125
        dc.w    1,0,124,1,0,123,1,0,122,1,0,121,1,0,120
        dc.w    1,0,119,1,0,118,1,0,117,1,0,116,1,0,115
        dc.w    1,0,114,1,0,113,1,0,112,1,0,111,1,0,110
        dc.w    1,0,109,1,0,108,1,0,107,1,0,106,1,0,105
        dc.w    1,0,104,1,0,103,1,0,102,1,0,101,1,0,100
        dc.w    1,0,99,1,0,98,1,0,97,1,0,96,1,0,95,1,0,94
        dc.w    1,0,93,1,0,92,1,0,91,1,0,90,1,0,89,1,0,88
        dc.w    1,0,87,1,0,86,1,0,85,1,0,84,1,0,83,1,0,82
        dc.w    1,0,81,1,0,80,1,0,79,1,0,78,1,0,77,1,0,76
        dc.w    1,0,75,1,0,74,1,0,73,1,0,72,1,0,71,1,0,70
        dc.w    1,0,69,1,0,68,1,0,67,1,0,66,1,0,65,1,0,64
        dc.w    1,0,63,1,0,62,1,0,61,1,0,60,1,0,59,1,0,58
        dc.w    1,0,57,1,0,56,1,0,55,1,0,54,1,0,53,1,0,52
        dc.w    1,0,51,1,0,50,1,0,49,1,0,48,1,0,47,1,0,46
        dc.w    1,0,45,1,0,44,1,0,43,1,0,42,1,0,41,1,0,40
        dc.w    1,0,39,1,0,38,1,0,37,1,0,36,1,0,35,1,0,34
        dc.w    1,0,33,1,0,32,1,0,31,1,0,30,1,0,29,1,0,28
        dc.w    1,0,27,1,0,26,1,0,25,1,0,24,1,0,23,1,0,22
        dc.w    1,0,21,1,0,20,1,0,19,1,0,18,1,0,17,1,0,16
        dc.w    2,16,0,2,17,0,2,18,0,2,19,0,2,20,0,2,21,0
        dc.w    2,22,0,2,23,0,2,24,0,2,25,0,2,26,0,2,27,0
        dc.w    2,28,0,2,29,0,2,30,0
        dc.w    2,31,0,2,32,0,2,33,0,2,34,0
        dc.w    2,35,0,2,36,0,2,37,0,2,38,0,2,39,0,2,40,0
        dc.w    2,41,0,2,42,0,2,43,0,2,44,0,2,45,0,2,46,0
        dc.w    2,47,0,2,48,0,2,49,0,2,50,0,2,51,0,2,52,0
        dc.w    2,53,0,2,54,0,2,55,0,2,56,0,2,57,0,2,58,0
        dc.w    2,59,0,2,60,0,2,61,0,2,62,0,2,63,0,2,64,0
        dc.w    2,65,0,2,66,0,2,67,0,2,68,0,2,69,0,2,70,0
        dc.w    2,71,0,2,72,0,2,73,0,2,74,0,2,75,0,2,76,0
        dc.w    2,77,0,2,78,0,2,79,0,2,80,0,2,81,0,2,82,0
        dc.w    2,83,0,2,84,0,2,85,0,2,86,0,2,87,0,2,88,0
        dc.w    2,89,0,2,90,0,2,91,0,2,92,0,2,93,0,2,94,0
        dc.w    2,95,0,2,96,0,2,97,0,2,98,0,2,99,0,2,100,0
        dc.w    2,101,0,2,102,0,2,103,0,2,104,0,2,105,0
        dc.w    2,106,0,2,107,0,2,108,0,2,109,0,2,110,0
        dc.w    2,111,0,2,112,0,2,113,0,2,114,0,2,115,0
        dc.w    2,116,0,2,117,0,2,118,0,2,119,0,2,120,0
        dc.w    2,121,0,2,122,0,2,123,0,2,124,0,2,125,0
        dc.w    2,126,0,2,127,0,2,128,0,2,129,0,2,130,0
        dc.w    2,131,0,2,132,0,2,133,0,2,134,0,2,135,0
        dc.w    2,136,0,2,137,0,2,138,0,2,139,0,2,140,0
        dc.w    2,141,0,2,142,0,2,143,0,2,144,0,2,145,0
        dc.w    2,146,0,2,147,0,2,148,0,2,149,0,2,150,0
        dc.w    2,151,0,2,152,0,2,153,0,2,154,0,2,155,0
        dc.w    2,156,0,2,157,0,2,158,0,2,159,0,2,160,0
        dc.w    2,161,0,2,162,0,2,163,0,2,164,0,2,165,0
        dc.w    2,166,0,2,167,0,2,168,0,2,169,0,2,170,0
        dc.w    2,171,0,2,172,0,2,173,0,2,174,0,2,175,0
        dc.w    2,176,0
        dc.w    3,214,16,3,214,17,3,214,18,3,214,19,3,214,20
        dc.w    3,214,21,3,214,22,3,214,23,3,214,24,3,214,25
        dc.w    3,214,26,3,214,27
        dc.w    3,214,28,3,214,29,3,214,30
        dc.w    3,214,31,3,214,32,3,214,33,3,214,34,3,214,35
        dc.w    3,214,36,3,214,37,3,214,38,3,214,39,3,214,40
        dc.w    3,214,41,3,214,42,3,214,43,3,214,44,3,214,45
        dc.w    3,214,46,3,214,47,3,214,48,3,214,49,3,214,50
        dc.w    3,214,51,3,214,52,3,214,53,3,214,54,3,214,55
        dc.w    3,214,56,3,214,57,3,214,58,3,214,59,3,214,60
        dc.w    3,214,61,3,214,62,3,214,63,3,214,64,3,214,65
        dc.w    3,214,66,3,214,67,3,214,68,3,214,69,3,214,70
        dc.w    3,214,71,3,214,72,3,214,73,3,214,74,3,214,75
        dc.w    3,214,76,3,214,77,3,214,78,3,214,79,3,214,80
        dc.w    3,214,81,3,214,82,3,214,83,3,214,84,3,214,85
        dc.w    3,214,86,3,214,87,3,214,88,3,214,89,3,214,90
        dc.w    3,214,91,3,214,92,3,214,93,3,214,94,3,214,95
        dc.w    3,214,96,3,214,97,3,214,98,3,214,99,3,214,100
        dc.w    3,214,101,3,214,102,3,214,103,3,214,104
        dc.w    3,214,105,3,214,106,3,214,107,3,214,108
        dc.w    3,214,109,3,214,110,3,214,111,3,214,112
        dc.w    3,214,113,3,214,114,3,214,115,3,214,116
        dc.w    3,214,117,3,214,118,3,214,119,3,214,120
        dc.w    3,214,121,3,214,122,3,214,123,3,214,124
        dc.w    3,214,125,3,214,126,3,214,127,3,214,128
        dc.w    3,214,129,3,214,130,3,214,131,3,214,132
        dc.w    3,214,133,3,214,134,3,214,135,3,214,136
        dc.w    3,214,137,3,214,138,3,214,139,3,214,140
        dc.w    3,214,141,3,214,142,3,214,143,3,214,144
        dc.w    3,214,145,3,214,146,3,214,147,3,214,148
        dc.w    3,214,149,3,214,150,3,214,151

ring:   dc.w    0,96,75,0,104,75,0,112,75,0,120,75,0,128,75
        dc.w    1,128,83,1,128,91,1,128,99,1,128,107,1,128,115
        dc.w    2,120,115,2,112,115,2,104,115,2,96,115,2,88,115
        dc.w    3,88,107,3,88,99,3,88,91,3,88,83,3,88,75
ring2:
        dc.w    80,67,88,67,96,67,104,67,112,67,120,67,128,67,136,67
        dc.w    136,75,136,83,136,91,136,99,136,107,136,115,136,123
        dc.w    128,123,120,123,112,123,104,123,96,123,88,123,80,123
        dc.w    80,115,80,107,80,99,80,91,80,83,80,75


*    pixels/scanline    = $000D (bytes/scanline: $0008)
*  # scanlines (height) = $0005
leftshot:
        dc.w    $0C00,$0000,$7C00,$0000,$6380,$3C40,$BFC0,$3C00
        dc.w    $7CC0,$43F8,$FFF8,$7FC0,$6380,$7C40,$FFC0,$7C00
        dc.w    $0C00,$0000,$7C00,$0000


*    pixels/scanline    = $0005 (bytes/scanline: $0008)
*  # scanlines (height) = $000D
downshot:
        dc.w    $0000,$2000,$2000,$0000,$0000,$2000,$2000,$0000
        dc.w    $0000,$2000,$2000,$0000,$2000,$7000,$7000,$2000
        dc.w    $7000,$2000,$7000,$2000,$5000,$2000,$7000,$2000
        dc.w    $5000,$2000,$7000,$2000,$A800,$5000,$F800,$7000
        dc.w    $A800,$5000,$F800,$7000,$2000,$5000,$F800,$7000
        dc.w    $7000,$5000,$F800,$7000,$7000,$6000,$E800,$6000
        dc.w    $0000,$0000,$7000,$0000

*    pixels/scanline    = $000D (bytes/scanline: $0008)
*  # scanlines (height) = $0005
rightshot:
        dc.w    $0180,$0000,$01F0,$0000,$0E30,$11E0,$1FE8,$01E0
        dc.w    $19F0,$FE10,$FFF8,$1FF0,$0E30,$11F0,$1FF8,$01F0
        dc.w    $0180,$0000,$01F0,$0000


*    pixels/scanline    = $0005 (bytes/scanline: $0008)
*  # scanlines (height) = $000D
upshot:
        dc.w    $0000,$0000,$7000,$0000,$7000,$6000,$E800,$6000
        dc.w    $7000,$5000,$F800,$7000,$2000,$5000,$F800,$7000
        dc.w    $A800,$5000,$F800,$7000,$A800,$5000,$F800,$7000
        dc.w    $5000,$2000,$7000,$2000,$5000,$2000,$7000,$2000
        dc.w    $7000,$2000,$7000,$2000,$2000,$7000,$7000,$2000
        dc.w    $0000,$2000,$2000,$0000,$0000,$2000,$2000,$0000
        dc.w    $0000,$2000,$2000,$0000


balls1:
 dc.w 0,0,0,0
 dc.w 12292,12296,12,12300
 dc.w 14390,12280,16410,26650
 dc.w 16368,16382,16414,30750
 dc.w 12,12,12300,12300
 dc.w 8204,12300,0,0
 dc.w 8200,12300,0,0
 dc.w 8204,12296,0,0
 dc.w 8204,12296,0,0
 dc.w 8204,12296,0,0
 dc.w 8204,12296,0,0
 dc.w 4104,8204,12288,12300
 dc.w 22572,26602,26640,26650
 dc.w 18414,32750,30736,30750
 dc.w 12288,12288,12300,12300
 dc.w 0,0,0,0
balls2:
 dc.w 0,0,0,0
 dc.w 4104,6160,24,6168
 dc.w 4332,8176,8244,15412
 dc.w 8160,8188,8252,15420
 dc.w 24,24,6168,6168
 dc.w 4120,6168,0,0
 dc.w 4112,6168,0,0
 dc.w 4120,6160,0,0
 dc.w 4120,6160,0,0
 dc.w 4120,6160,0,0
 dc.w 4120,6160,0,0
 dc.w 2064,4120,6144,6168
 dc.w 11480,13268,15392,15412
 dc.w 9180,16348,15392,15420
 dc.w 6144,6144,6168,6168
 dc.w 0,0,0,0

balls3:
 dc.w 0,0,0,0
 dc.w 2064,3104,48,3120
 dc.w 2520,4064,4200,7784
 dc.w 4032,4088,4216,7800
 dc.w 48,48,3120,3120
 dc.w 3120,3120,0,0
 dc.w 3104,3120,0,0
 dc.w 3120,3104,0,0
 dc.w 3120,3104,0,0
 dc.w 3120,3104,0,0
 dc.w 3120,3104,0,0
 dc.w 1056,2096,3072,3120
 dc.w 6064,6568,7744,7784
 dc.w 4536,8120,7744,7800
 dc.w 3072,3072,3120,3120
 dc.w 0,0,0,0

balls4:
 dc.w 0,0,0,0
 dc.w 1056,1600,96,1632
 dc.w 1200,1728,2512,4048
 dc.w 1664,1776,2544,4080
 dc.w 96,96,1632,1632
 dc.w 1632,1632,0,0
 dc.w 1600,1632,0,0
 dc.w 1632,1600,0,0
 dc.w 1632,1600,0,0
 dc.w 1632,1600,0,0
 dc.w 1632,1600,0,0
 dc.w 576,1120,1536,1632
 dc.w 2912,3408,3968,4048
 dc.w 2416,3952,3968,4080
 dc.w 1536,1536,1632,1632
 dc.w 0,0,0,0

balls5:
 dc.w 0,0,0,0
 dc.w 832,896,192,960
 dc.w 864,896,1440,1952
 dc.w 768,992,1504,2016
 dc.w 192,192,960,960
 dc.w 960,960,0,0
 dc.w 896,960,0,0
 dc.w 960,896,0,0
 dc.w 960,896,0,0
 dc.w 960,896,0,0
 dc.w 960,896,0,0
 dc.w 128,960,768,960
 dc.w 1216,1696,1792,1952
 dc.w 1248,1760,1792,2016
 dc.w 768,768,960,960
 dc.w 0,0,0,0

balls6:
 dc.w 0,0,0,0
 dc.w 128,256,384,384
 dc.w 704,768,832,832
 dc.w 512,960,960,960
 dc.w 384,384,384,384
 dc.w 384,384,0,0
 dc.w 256,384,0,0
 dc.w 384,256,0,0
 dc.w 384,256,0,0
 dc.w 384,256,0,0
 dc.w 384,256,0,0
 dc.w 256,384,0,384
 dc.w 384,320,512,832
 dc.w 448,448,512,960
 dc.w 0,0,384,384
 dc.w 0,0,0,0

balls7:
 dc.w 0,0,0,0
 dc.w 384,704,768,960
 dc.w 1472,1632,1664,1760
 dc.w 1120,2016,1920,2016
 dc.w 768,768,960,960
 dc.w 960,960,0,0
 dc.w 640,960,0,0
 dc.w 896,704,0,0
 dc.w 896,704,0,0
 dc.w 896,704,0,0
 dc.w 896,704,0,0
 dc.w 576,896,192,960
 dc.w 864,640,1120,1760
 dc.w 896,992,1120,2016
 dc.w 192,192,960,960
 dc.w 0,0,0,0

balls8:
 dc.w 0,0,0,0
 dc.w 576,1120,1536,1632
 dc.w 2912,3184,3456,3568
 dc.w 2160,3952,3968,4080
 dc.w 1536,1536,1632,1632
 dc.w 1632,1632,0,0
 dc.w 1088,1632,0,0
 dc.w 1600,1120,0,0
 dc.w 1600,1120,0,0
 dc.w 1600,1120,0,0
 dc.w 1600,1120,0,0
 dc.w 1056,1600,96,1632
 dc.w 1712,1472,2288,3568
 dc.w 1920,2032,2288,4080
 dc.w 96,96,1632,1632
 dc.w 0,0,0,0

balls9:
 dc.w 0,0,0,0
 dc.w 1056,2096,3072,3120
 dc.w 6048,6584,6720,6776
 dc.w 4536,8120,7744,7800
 dc.w 3072,3072,3120,3120
 dc.w 3120,3120,0,0
 dc.w 2080,3120,0,0
 dc.w 3104,2096,0,0
 dc.w 3104,2096,0,0
 dc.w 3104,2096,0,0
 dc.w 3104,2096,0,0
 dc.w 2064,3104,48,3120
 dc.w 3544,3040,4216,6776
 dc.w 4032,4088,4216,7800
 dc.w 48,48,3120,3120
 dc.w 0,0,0,0

balls10:
 dc.w 0,0,0,0
 dc.w 2064,4120,6144,6168
 dc.w 11472,13276,13344,13372
 dc.w 9180,16348,15392,15420
 dc.w 6144,6144,6168,6168
 dc.w 6160,6168,0,0
 dc.w 4112,6168,0,0
 dc.w 6160,4120,0,0
 dc.w 6160,4120,0,0
 dc.w 6160,4120,0,0
 dc.w 6160,4120,0,0
 dc.w 4104,6160,24,6168
 dc.w 6380,6128,8252,13372
 dc.w 8160,8188,8252,15420
 dc.w 24,24,6168,6168
 dc.w 0,0,0,0

balls11:
 dc.w 0,0,0,0
 dc.w 4104,8204,12288,12300
 dc.w 22572,26602,26640,26650
 dc.w 18414,32750,30736,30750
 dc.w 12288,12288,12300,12300
 dc.w 8200,12300,0,0
 dc.w 8204,12296,0,0
 dc.w 8204,12296,0,0
 dc.w 8204,12296,0,0
 dc.w 8204,12296,0,0
 dc.w 8204,12296,0,0
 dc.w 8196,12296,12,12300
 dc.w 12342,12280,16410,26650
 dc.w 16368,16382,16414,30750
 dc.w 12,12,12300,12300
 dc.w 0,0,0,0

balls12:
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 4104,8204,12288,12300
 dc.w 22572,26602,26640,26650
 dc.w 18414,32750,30736,30750
 dc.w 12288,12288,12300,12300
 dc.w 12300,12300,0,0
 dc.w 8200,12300,0,0
 dc.w 8204,12296,0,0
 dc.w 8204,12296,0,0
 dc.w 8196,12296,12,12300
 dc.w 8246,16376,16414,30750
 dc.w 16368,16382,16414,30750
 dc.w 12,12,12300,12300
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0

balls13:
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 4104,8204,12288,12300
 dc.w 22572,26602,26640,26650
 dc.w 18414,32750,30736,30750
 dc.w 12288,12288,12300,12300
 dc.w 12300,12300,0,0
 dc.w 8200,12300,0,0
 dc.w 8196,12296,12,12300
 dc.w 8246,16376,16414,30750
 dc.w 16368,16382,16414,30750
 dc.w 12,12,12300,12300
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0

balls14:
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 4104,8204,12288,12300
 dc.w 22572,26602,26640,26650
 dc.w 18414,32750,30736,30750
 dc.w 12288,12288,12300,12300
 dc.w 12,12,12300,12300
 dc.w 12276,16378,16414,30750
 dc.w 16368,16382,16414,30750
 dc.w 12,12,12300,12300
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 0,0,0,0

balls15:
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 4104,8204,12288,12300
 dc.w 22572,26602,26640,26650
 dc.w 18414,32750,30736,30750
 dc.w 16368,16370,28702,30750
 dc.w 16368,16382,16414,30750
 dc.w 12,12,12300,12300
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 0,0,0,0

balls16:
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 4104,8204,12288,12300
 dc.w 22572,26602,26640,26650
 dc.w 18414,32750,30736,30750
 dc.w 12288,12288,12300,12300
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 0,0,0,0

balls17:
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 8196,12296,12,12300
 dc.w 14322,16380,16414,30750
 dc.w 8184,12286,28690,30750
 dc.w 22572,26602,26640,26650
 dc.w 18414,32750,30736,30750
 dc.w 12288,12288,12300,12300
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 0,0,0,0

balls18:
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 8196,12296,12,12300
 dc.w 8246,16376,16414,30750
 dc.w 16368,16382,16414,30750
 dc.w 12,12,12300,12300
 dc.w 4104,8204,12288,12300
 dc.w 22572,26602,26640,26650
 dc.w 18414,32750,30736,30750
 dc.w 12288,12288,12300,12300
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 0,0,0,0

balls19:
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 8196,12296,12,12300
 dc.w 8246,16376,16414,30750
 dc.w 16368,16382,16414,30750
 dc.w 12,12,12300,12300
 dc.w 12300,12300,0,0
 dc.w 8200,12300,0,0
 dc.w 4104,8204,12288,12300
 dc.w 22572,26602,26640,26650
 dc.w 18414,32750,30736,30750
 dc.w 12288,12288,12300,12300
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 0,0,0,0

balls20:
 dc.w 0,0,0,0
 dc.w 0,0,0,0
 dc.w 8196,12296,12,12300
 dc.w 8246,16376,16414,30750
 dc.w 16368,16382,16414,30750
 dc.w 12,12,12300,12300
 dc.w 12300,12300,0,0
 dc.w 8200,12300,0,0
 dc.w 8204,12296,0,0
 dc.w 8204,12296,0,0
 dc.w 4104,8204,12288,12300
 dc.w 22572,26602,26640,26650
 dc.w 18414,32750,30736,30750
 dc.w 12288,12288,12300,12300
 dc.w 0,0,0,0
 dc.w 0,0,0,0


balls21:
 dc.w 0,0,0,0
 dc.w 8196,12296,12,12300
 dc.w 12342,12280,16410,26650
 dc.w 16368,16382,16414,30750
 dc.w 12,12,12300,12300
 dc.w 12300,12300,0,0
 dc.w 8200,12300,0,0
 dc.w 8204,12296,0,0
 dc.w 8204,12296,0,0
 dc.w 8204,12296,0,0
 dc.w 8204,12296,0,0
 dc.w 4104,8204,12288,12300
 dc.w 22572,26602,26640,26650
 dc.w 18414,32750,30736,30750
 dc.w 12288,12288,12300,12300
 dc.w 0,0,0,0




specialb:
        dc.b    $7F,$80,$00,$00,$81,$FE,$3C,$00
        dc.b    $AD,$C2,$7A,$00,$9D,$C2,$7E,$00
        dc.b    $8D,$C2,$7E,$00,$A5,$C2,$7E,$00
        dc.b    $C1,$FE,$3C,$00,$FE,$FF,$00,$00

animblocks:
        dc.b    0,0,0,0
        dc.b    0,0,0,0
        dc.b    0,0,0,0
        dc.b    0,0,0,0
        dc.b    0,0,0,0
        dc.b    0,0,0,0
        dc.b    0,0,0,0
        dc.b    0,0,0,0

anim5:  dc.b    0,0,0,0
        dc.b    0,0,0,0
        dc.b    0,0,0,0
        dc.b    $10,0,0,$10
        dc.b    $8,0,0,$18
        dc.b    0,0,0,0
        dc.b    0,0,0,0
        dc.b    0,0,0,0

anim4:  dc.b    $0,$0,$0,$0
        dc.b    $28,$0,$0,$38
        dc.b    $42,$0,$0,$7e
        dc.b    $16,$14,$14,$6a
        dc.b    $51,$10,$10,$6f
        dc.b    $1a,$0,$0,$3e
        dc.b    0,0,0,0
        dc.b    0,0,0,0

anim3:  dc.b    $38,$0,$0,$38
        dc.b    $5a,$10,$10,$6e
        dc.b    $c7,$4,$4,$fb
        dc.b    $b5,$34,$34,$cb
        dc.b    $9d,$1c,$1c,$e3
        dc.b    $4a,$8,$8,$76
        dc.b    $2e,$0,$0,$3e
        dc.b    0,0,0,0

anim2:  dc.b    $c,$0,$0,$3c
        dc.b    $5a,$10,$10,$6e
        dc.b    $5d,$5c,$5c,$a3
        dc.b    $b4,$34,$34,$cb
        dc.b    $bd,$bc,$bc,$43
        dc.b    $a9,$28,$28,$d7
        dc.b    $7e,$10,$10,$6e
        dc.b    0,0,0,0


        dc.b    $24,$0,$0,$3c
        dc.b    $16,$10,$10,$6f
        dc.b    $7d,$7c,$7c,$83
        dc.b    $3c,$3c,$3c,$c3
        dc.b    $99,$18,$18,$e7
        dc.b    $c1,$40,$40,$bf
        dc.b    $66,$0,$0,$7e
        dc.b    0,0,0,0


even
sprite1:
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 8,0,0,8,0,0,0,0
 dc.w 52,0,0,60,0,0,0,0
 dc.w 74,8,8,118,0,0,0,0
 dc.w 58,24,24,38,0,0,0,0
 dc.w 36,0,0,60,0,0,0,0
 dc.w 24,0,0,24,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0


sprite2:
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 4,0,0,4,0,0,0,0
 dc.w 6,0,0,6,0,0,0,0
 dc.w 14,0,0,14,0,0,0,0
 dc.w 243,0,0,255,0,0,0,0
 dc.w 133,4,4,251,0,0,0,0
 dc.w 173,44,44,211,0,0,0,0
 dc.w 317,60,60,451,32768,0,0,32768
 dc.w 829,60,60,963,32768,0,0,32768
 dc.w 380,124,124,387,49152,0,0,49152
 dc.w 414,30,30,481,32768,0,0,32768
 dc.w 99,0,0,127,0,0,0,0
 dc.w 62,0,0,62,0,0,0,0
 dc.w 12,0,0,12,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0


sprite3:
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,49152,0,0,49152
 dc.w 65,0,0,65,49152,0,0,49152
 dc.w 231,0,0,231,16384,0,0,49152
 dc.w 158,0,0,255,16384,0,0,49152
 dc.w 161,33,33,222,16384,0,0,49152
 dc.w 179,51,51,204,24576,0,0,57344
 dc.w 286,30,30,481,28672,0,0,61440
 dc.w 800,32,32,991,28672,0,0,61440
 dc.w 1954,34,34,2013,15360,0,0,64512
 dc.w 3107,35,35,4060,39936,32768,32768,31744
 dc.w 6641,497,497,7694,14336,0,0,63488
 dc.w 1053,29,29,2018,8192,0,0,57344
 dc.w 975,15,15,1008,40960,32768,32768,24576
 dc.w 44,12,12,51,40960,32768,32768,24576
 dc.w 51,0,0,63,8192,0,0,57344
 dc.w 23,0,0,31,8192,0,0,57344
 dc.w 29,0,0,29,57344,0,0,57344
 dc.w 8,0,0,8,12288,0,0,12288
 dc.w 8,0,0,8,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0


sprite4:
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,5120,0,0,7168
 dc.w 3584,0,0,3584,50176,0,0,64512
 dc.w 1219,0,0,1987,38912,4096,4096,59392
 dc.w 1254,0,0,2023,26624,24576,24576,38912
 dc.w 1564,0,0,2047,24576,24576,24576,36864
 dc.w 1793,1,1,2046,49152,49152,49152,12288
 dc.w 801,33,33,990,40960,32768,32768,28672
 dc.w 816,48,48,975,55296,49152,49152,14336
 dc.w 31860,116,116,32651,18432,0,0,63488
 dc.w 14788,196,196,16187,29440,28672,28672,36608
 dc.w 18306,1922,1922,63613,26368,24576,24576,40704
 dc.w 2331,2331,2331,63204,17920,16384,16384,48640
 dc.w 25036,460,460,32307,23552,16384,16384,48128
 dc.w 28256,96,96,28575,18432,16384,16384,47104
 dc.w 1568,32,32,2015,6144,0,0,63488
 dc.w 387,3,3,508,4096,0,0,61440
 dc.w 321,65,65,446,40960,32768,32768,24576
 dc.w 262,0,0,511,7168,0,0,64512
 dc.w 831,0,0,1023,512,0,0,65024
 dc.w 2027,0,0,2027,61952,0,0,62976
 dc.w 768,0,0,768,28672,0,0,28672
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0


sprite5:
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,13312,0,0,15360
 dc.w 3584,0,0,3584,50176,0,0,64512
 dc.w 1219,0,0,1987,39936,4096,4096,60416
 dc.w 1250,0,0,2019,27648,24576,24576,39936
 dc.w 1970,384,384,1651,26624,24576,24576,38912
 dc.w 991,192,192,831,49152,49152,49152,12288
 dc.w 449,0,0,511,45056,0,0,61440
 dc.w 4346,2,2,4349,57344,16384,16384,40960
 dc.w 31910,0,0,31975,65024,0,0,65024
 dc.w 32690,0,0,32755,62208,12288,12288,52992
 dc.w 51088,1536,1536,63985,26368,8192,8192,57088
 dc.w 47537,14336,14336,51185,17920,0,0,65024
 dc.w 58337,192,192,65313,31744,0,0,64512
 dc.w 64796,0,0,64892,49152,0,0,49152
 dc.w 1251,0,0,1279,49152,0,0,49152
 dc.w 438,0,0,511,0,0,0,49152
 dc.w 337,65,65,434,40960,32768,32768,24576
 dc.w 280,0,0,505,64512,57344,57344,7168
 dc.w 800,0,0,992,512,0,0,65024
 dc.w 2016,0,0,2016,61952,0,0,62976
 dc.w 768,0,0,768,28672,0,0,28672
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0


sprite6: 
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 2048,0,0,2048,61440,0,0,61440
 dc.w 1985,0,0,1985,34816,0,0,63488
 dc.w 1121,0,0,2017,47104,12288,12288,51200
 dc.w 1344,256,256,1728,32768,0,0,61440
 dc.w 576,0,0,960,28672,0,0,28672
 dc.w 384,0,0,384,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 7200,0,0,7200,15872,0,0,15872
 dc.w 32368,0,0,32368,25344,0,0,32512
 dc.w 16976,0,0,32368,11008,2048,2048,14080
 dc.w 15984,14336,14336,18032,12800,0,0,15872
 dc.w 26720,0,0,30816,7168,0,0,7168
 dc.w 6144,0,0,6144,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,8192,0,0,8192
 dc.w 480,0,0,480,30720,0,0,30720
 dc.w 800,256,256,736,64512,12288,12288,52224
 dc.w 1504,256,256,1760,45056,8192,8192,53248
 dc.w 768,0,0,768,28672,0,0,28672
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0


sprite7:
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 2048,0,0,2048,12288,0,0,12288
 dc.w 1280,0,0,1792,10240,0,0,14336
 dc.w 1280,0,0,1792,2048,0,0,6144
 dc.w 512,0,0,512,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 32,0,0,32,3584,0,0,3584
 dc.w 24672,0,0,24672,2816,0,0,3840
 dc.w 20480,0,0,28672,1792,0,0,1792
 dc.w 32768,0,0,57344,0,0,0,0
 dc.w 24576,0,0,24576,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,12288,0,0,12288
 dc.w 896,0,0,896,22528,4096,4096,26624
 dc.w 1152,0,0,1920,12288,0,0,12288
 dc.w 768,0,0,768,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0


sprite8:
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,12288,0,0,12288
 dc.w 1024,0,0,1536,0,0,0,0
 dc.w 0,0,0,512,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,256,0,0,256
 dc.w 0,0,0,0,256,0,0,256
 dc.w 32768,0,0,49152,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,2048,0,0,2048
 dc.w 0,0,0,0,0,0,0,0
 dc.w 1536,0,0,1536,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0

blank:
        dc.w 0,0,0,0,0,0,0,0
        dc.w 0,0,0,0,0,0,0,0
        dc.w 0,0,0,0,0,0,0,0
        dc.w 0,0,0,0,0,0,0,0
        dc.w 0,0,0,0,0,0,0,0
        dc.w 0,0,0,0,0,0,0,0
        dc.w 0,0,0,0,0,0,0,0
        dc.w 0,0,0,0,0,0,0,0
        dc.w 0,0,0,0,0,0,0,0
        dc.w 0,0,0,0,0,0,0,0
        dc.w 0,0,0,0,0,0,0,0
        dc.w 0,0,0,0,0,0,0,0
        dc.w 0,0,0,0,0,0,0,0
        dc.w 0,0,0,0,0,0,0,0
        dc.w 0,0,0,0,0,0,0,0
        dc.w 0,0,0,0,0,0,0,0
        dc.w 0,0,0,0,0,0,0,0
        dc.w 0,0,0,0,0,0,0,0
        dc.w 0,0,0,0,0,0,0,0
        dc.w 0,0,0,0,0,0,0,0
        dc.w 0,0,0,0,0,0,0,0
        dc.w 0,0,0,0,0,0,0,0
        dc.w 0,0,0,0,0,0,0,0
        dc.w 0,0,0,0,0,0,0,0

ball:	dc.w	$0000,$7000,$0000,$0000,$7000,$C800,$0000,$0000
	dc.w	$5000,$E800,$0000,$0000,$7000,$F800,$0000,$0000
	dc.w	$0000,$7000,$0000,$0000


gore1:
 dc.w 768,2016,1248,2016
 dc.w 4856,7448,7904,8184
 dc.w 5992,6292,12140,16380
 dc.w 30572,30866,18286,32766
 dc.w 19388,29762,31630,32718
 dc.w 52787,61901,65026,65487
 dc.w 13789,14883,50652,65535
 dc.w 15246,13425,52111,65535
 dc.w 53164,61523,65453,65535
 dc.w 58485,64395,64630,65535
 dc.w 60333,64595,62382,65535
 dc.w 32160,32350,29614,32766
 dc.w 24786,26622,32558,32766
 dc.w 3732,4092,16236,16380
 dc.w 8032,8032,8184,8184
 dc.w 1600,1600,2016,2016

gore2:
 dc.w 96,2016,1920,2016
 dc.w 2976,3160,6072,8184
 dc.w 12220,14404,14264,16380
 dc.w 18590,30562,30876,32766
 dc.w 20016,29134,32258,32718
 dc.w 51255,63433,63494,65487
 dc.w 14175,14497,51038,65535
 dc.w 20104,29047,65161,65535
 dc.w 51638,63049,63927,65535
 dc.w 65300,63723,59159,65535
 dc.w 57172,55467,59223,65535
 dc.w 216,3886,32470,32766
 dc.w 6950,8190,31962,32766
 dc.w 15456,15864,16284,16380
 dc.w 7576,7576,8184,8184
 dc.w 448,448,2016,2016

gore3:
 dc.w 768,2016,1248,2016
 dc.w 4856,7448,7904,8184
 dc.w 9960,14612,16108,16380
 dc.w 20268,28882,32558,32766
 dc.w 13246,15426,17292,32718
 dc.w 52405,62283,64644,65487
 dc.w 53082,61605,65371,65535
 dc.w 49294,65393,61583,65535
 dc.w 56494,62289,60591,65535
 dc.w 38304,39519,60835,65535
 dc.w 9519,15059,64812,65535
 dc.w 32096,32414,29550,32766
 dc.w 28818,30718,32622,32766
 dc.w 1684,2044,16236,16380
 dc.w 3696,3696,8184,8184
 dc.w 1632,1632,2016,2016

bl1s1:
	dc.w	$0E00,$0000,$0000,$0000,$1E00,$0C00,$0000,$0000
	dc.w	$3C00,$1E00,$0000,$0000,$7C00,$3E00,$0000,$0000
	dc.w	$FC00,$0200,$0000,$0000,$0000,$FE00,$0000,$0000
	dc.w	$8000,$E200,$1C00,$0000,$C200,$DE00,$2000,$0000
	dc.w	$7E00,$3E00,$4000,$0000,$3E00,$3E00,$0000,$0000

bl1s2:
	dc.w	$0000,$0000,$0180,$0000,$C243,$C243,$0180,$0000
	dc.w	$FE7F,$BC3D,$0180,$0000,$FE7F,$8181,$0000,$0000
	dc.w	$8001,$FFFF,$0000,$0000,$8001,$FFFF,$0000,$0000
	dc.w	$C003,$C003,$3FFC,$0000,$FFFF,$FFFF,$0000,$0000
	dc.w	$FFFF,$FFFF,$0000,$0000

bl1s3:
	dc.w	$E000,$0000,$0000,$0000,$F000,$6000,$0000,$0000
	dc.w	$7800,$F000,$0000,$0000,$7C00,$F800,$0000,$0000
	dc.w	$7E00,$8000,$0000,$0000,$0000,$FE00,$0000,$0000
	dc.w	$0200,$8E00,$7000,$0000,$8600,$F600,$0800,$0000
	dc.w	$FC00,$F800,$0400,$0000,$F800,$F800,$0000,$0000


bl2s1:
	dc.w	$0B00,$0700,$0000,$0000,$1980,$0700,$0080,$0000
	dc.w	$38C0,$16C0,$0100,$0000,$78C0,$35C0,$0200,$0000
	dc.w	$F8C0,$75C0,$0200,$0000,$F8C0,$75C0,$0200,$0000
	dc.w	$C1C0,$3FC0,$0000,$0000

bl2s2:	dc.w	$7F80,$7F80,$0000,$0000,$7380,$4F80,$0000,$0000
	dc.w	$3180,$2D80,$0200,$0000,$3180,$2D80,$0200,$0000
	dc.w	$3180,$2D80,$0200,$0000,$3180,$2D80,$0200,$0000
	dc.w	$7180,$4D80,$0200,$0000,$0180,$1D80,$E200,$0000
	dc.w	$0180,$1D80,$E200,$0000,$7180,$4D80,$0200,$0000
	dc.w	$3180,$2D80,$0200,$0000,$3180,$2D80,$0200,$0000
	dc.w	$3180,$2D80,$0200,$0000,$3180,$2D80,$0200,$0000
	dc.w	$7380,$4F80,$0000,$0000,$7F80,$7F80,$0000,$0000

bl2s3:	dc.w	$C1C0,$3FC0,$0000,$0000,$F8C0,$75C0,$0200,$0000
	dc.w	$F8C0,$75C0,$0200,$0000,$78C0,$35C0,$0200,$0000
	dc.w	$38C0,$16C0,$0100,$0000,$1980,$0700,$0080,$0000
	dc.w	$0B00,$0700,$0000,$0000

bl3s1:	dc.w	$3E00,$3E00,$0000,$0000,$7E00,$3E00,$4000,$0000
	dc.w	$C200,$DE00,$2000,$0000,$8000,$E200,$1C00,$0000
	dc.w	$0000,$FE00,$0000,$0000,$FC00,$0200,$0000,$0000
	dc.w	$7C00,$3E00,$0000,$0000,$3C00,$1E00,$0000,$0000
	dc.w	$1E00,$0C00,$0000,$0000,$0E00,$0000,$0000,$0000

bl3s2:	dc.w	$FFFF,$FFFF,$0000,$0000,$FFFF,$FFFF,$0000,$0000
	dc.w	$C003,$C003,$3FFC,$0000,$8001,$FFFF,$0000,$0000
	dc.w	$8001,$FFFF,$0000,$0000,$FE7F,$8181,$0000,$0000
	dc.w	$FE7F,$BC3D,$0180,$0000,$C243,$C243,$0180,$0000
	dc.w	$0000,$0000,$0180,$0000

bl3s3:	dc.w	$F800,$F800,$0000,$0000,$FC00,$F800,$0400,$0000
	dc.w	$8600,$F600,$0800,$0000,$0200,$8E00,$7000,$0000
	dc.w	$0000,$FE00,$0000,$0000,$7E00,$8000,$0000,$0000
	dc.w	$7C00,$F800,$0000,$0000,$7800,$F000,$0000,$0000
	dc.w	$F000,$6000,$0000,$0000,$E000,$0000,$0000,$0000

bl4s1:	dc.w	$3400,$3800,$0000,$0000,$6600,$3800,$4000,$0000
	dc.w	$C700,$DA00,$2000,$0000,$C780,$EB00,$1000,$0000
	dc.w	$C7C0,$EB80,$1000,$0000,$C7C0,$EB80,$1000,$0000
	dc.w	$E0C0,$FF00,$0000,$0000

bl4s2:	dc.w	$FF00,$FF00,$0000,$0000,$E700,$F900,$0000,$0000
	dc.w	$C600,$DA00,$2000,$0000,$C600,$DA00,$2000,$0000
	dc.w	$C600,$DA00,$2000,$0000,$C600,$DA00,$2000,$0000
	dc.w	$C700,$D900,$2000,$0000,$C000,$DC00,$2380,$0000
	dc.w	$C000,$DC00,$2380,$0000,$C700,$D900,$2000,$0000
	dc.w	$C600,$DA00,$2000,$0000,$C600,$DA00,$2000,$0000
	dc.w	$C600,$DA00,$2000,$0000,$C600,$DA00,$2000,$0000
	dc.w	$E700,$F900,$0000,$0000,$FF00,$FF00,$0000,$0000

bl4s3:	dc.w	$E0C0,$FF00,$0000,$0000,$C7C0,$EB80,$1000,$0000
	dc.w	$C7C0,$EB80,$1000,$0000,$C780,$EB00,$1000,$0000
	dc.w	$C700,$DA00,$2000,$0000,$6600,$3800,$4000,$0000
	dc.w	$3400,$3800,$0000,$0000


appear1:
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0


appear2:
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,8192
 dc.w 0,0,0,0,0,0,0,0
 dc.w 8,0,0,8,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,4096
 dc.w 0,0,0,0,0,0,0,0
 dc.w 16,16,0,16,0,0,0,0
 dc.w 0,0,0,0,0,0,0,128
 dc.w 0,0,0,4,0,0,0,0
 dc.w 0,0,0,0,1024,1024,1024,8320
 dc.w 0,0,0,0,0,0,0,0
 dc.w 2,0,0,2,0,0,0,0
 dc.w 0,0,0,8,0,0,0,16384
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0

appear3:
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,16384,16384,16384,0
 dc.w 0,0,0,2,0,0,0,0
 dc.w 32,0,0,40,0,0,0,0
 dc.w 0,0,0,4,0,0,0,8192
 dc.w 0,0,0,0,0,0,0,512
 dc.w 8,0,0,8,4096,0,0,12288
 dc.w 2,0,0,34,0,0,0,2048
 dc.w 0,0,0,512,0,0,0,4672
 dc.w 128,0,0,128,0,0,0,0
 dc.w 16,16,0,16,2048,2048,0,2304
 dc.w 4,4,0,20,0,0,0,128
 dc.w 1,0,0,5,0,0,0,0
 dc.w 0,0,0,0,1024,1024,1024,8320
 dc.w 1,0,0,257,256,0,0,256
 dc.w 34,0,0,50,0,0,0,0
 dc.w 0,0,0,8,0,0,0,16384
 dc.w 0,0,0,0,0,0,0,0
 dc.w 4,0,0,4,2048,2048,2048,0
 dc.w 8,0,0,8,32768,0,0,32768
 dc.w 0,0,0,1,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0


appear4:
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,20480,20480,20480,0
 dc.w 0,0,0,2,0,0,0,0
 dc.w 32,0,0,40,36864,32768,32768,0
 dc.w 0,0,0,36,1024,1024,1024,8192
 dc.w 65,0,0,65,16384,0,0,16896
 dc.w 168,0,0,168,4096,0,0,12288
 dc.w 2,0,0,546,32768,0,0,34816
 dc.w 0,0,0,517,0,0,0,4672
 dc.w 128,0,0,132,0,0,0,49280
 dc.w 16,16,0,16,2048,2048,0,2304
 dc.w 4,4,0,20,256,0,0,2432
 dc.w 65,0,0,69,0,0,0,4096
 dc.w 0,0,0,64,33792,33792,33792,8320
 dc.w 17,0,0,285,256,0,0,2304
 dc.w 34,0,0,50,0,0,0,36864
 dc.w 32,0,0,168,0,0,0,18432
 dc.w 16,0,0,16,32768,0,0,32768
 dc.w 4,0,0,4,2048,2048,2048,0
 dc.w 8,0,0,8,32768,0,0,40960
 dc.w 0,0,0,1,8192,8192,8192,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0


appear5:
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
 dc.w 2,2,2,0,20480,20480,20480,0
 dc.w 0,0,0,10,0,0,0,0
 dc.w 96,0,0,105,53248,49152,49152,1024
 dc.w 0,0,0,45,1024,1024,1024,24576
 dc.w 195,0,0,227,16384,0,0,18944
 dc.w 184,0,0,184,5120,1024,1024,45568
 dc.w 10,0,0,554,49152,0,0,51264
 dc.w 128,0,0,645,1280,256,256,13888
 dc.w 128,0,0,420,256,256,256,50304
 dc.w 16,16,0,49,2560,2560,512,3328
 dc.w 69,4,0,85,12544,12288,0,14720
 dc.w 81,0,0,93,0,0,0,12288
 dc.w 0,0,0,64,33792,33792,33792,8832
 dc.w 145,0,0,477,33024,32768,32768,6400
 dc.w 34,0,0,50,1024,1024,1024,37376
 dc.w 36,0,0,172,0,0,0,26624
 dc.w 17,0,0,17,51200,2048,2048,49152
 dc.w 20,0,0,20,18432,18432,18432,0
 dc.w 13,0,0,13,32768,0,0,40960
 dc.w 0,0,0,1,8192,8192,8192,0
 dc.w 2,0,0,2,0,0,0,0
 dc.w 0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0


appear6:
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
 dc.w 2,2,2,8,53248,53248,53248,0
 dc.w 0,0,0,15,1024,1024,1024,30720
 dc.w 96,0,0,107,61952,57856,57856,1024
 dc.w 0,0,0,47,3328,1280,1280,29184
 dc.w 195,0,0,251,17408,1024,1024,27136
 dc.w 184,0,0,191,5120,1024,1024,45568
 dc.w 10,0,0,618,57344,0,0,60992
 dc.w 128,0,0,709,1280,256,256,30272
 dc.w 128,0,0,420,2304,256,256,60544
 dc.w 80,24,0,121,2560,2560,512,3328
 dc.w 205,12,0,477,12544,12288,0,31104
 dc.w 81,0,0,351,3584,3072,3072,12800
 dc.w 136,0,0,202,33792,33792,33792,25216
 dc.w 147,0,0,479,33024,32768,32768,6400
 dc.w 34,0,0,114,1024,1024,1024,37632
 dc.w 36,0,0,175,1024,1024,1024,26624
 dc.w 17,0,0,21,51200,2048,2048,49152
 dc.w 21,1,1,20,26624,18432,18432,8192
 dc.w 13,0,0,15,36864,4096,4096,40960
 dc.w 0,0,0,3,8192,8192,8192,16384
 dc.w 2,0,0,2,16384,0,0,16384
 dc.w 0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0


appear7:
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
 dc.w 3,3,3,12,61440,61440,61440,0
 dc.w 16,0,0,29,1024,1024,1024,45056
 dc.w 32,0,0,63,59904,59904,59904,1024
 dc.w 64,0,0,107,2048,0,0,29184
 dc.w 67,0,0,119,34048,1280,1280,43520
 dc.w 248,0,0,255,4352,256,256,61952
 dc.w 142,0,0,766,57600,256,256,64000
 dc.w 32,0,0,813,1280,256,256,30272
 dc.w 144,0,0,503,2304,256,256,60544
 dc.w 80,16,0,497,2560,6656,512,40064
 dc.w 231,4,0,503,29440,12800,512,31104
 dc.w 48,0,0,62,3584,3072,3072,21120
 dc.w 41,0,0,363,36096,35840,35840,25344
 dc.w 178,0,0,510,49408,49152,49152,7040
 dc.w 34,0,0,186,25600,25600,25600,6912
 dc.w 36,0,0,190,1024,1024,1024,53504
 dc.w 3,0,0,15,34816,2048,2048,45056
 dc.w 28,0,0,28,51200,51200,51200,4096
 dc.w 13,0,0,15,36864,4096,4096,49152
 dc.w 0,0,0,2,8192,8192,8192,49152
 dc.w 3,0,0,3,32768,0,0,32768
 dc.w 0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0


face1:
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0

 dc.w 3,3,3,12,61440,61440,61440,0
 dc.w 48,0,0,63,1024,1024,1024,63488
 dc.w 96,0,0,127,64000,59904,59904,1024
 dc.w 64,0,0,127,3328,1280,1280,61952
 dc.w 195,0,0,255,50432,1280,1280,64000
 dc.w 248,0,0,255,7424,1280,1280,64000
 dc.w 143,0,0,767,57600,256,256,65088
 dc.w 160,0,0,1007,1280,256,256,63168
 dc.w 144,0,0,503,2304,256,256,61056
 dc.w 80,24,0,505,2560,6656,512,40320
 dc.w 239,12,0,511,63232,46592,34304,31104
 dc.w 241,0,0,511,36608,35840,35840,29568
 dc.w 185,0,0,511,36096,35840,35840,29568
 dc.w 179,0,0,511,50432,50176,50176,15232
 dc.w 35,0,0,255,25600,25600,25600,39680
 dc.w 36,0,0,191,1024,1024,1024,63744
 dc.w 19,0,0,31,51200,2048,2048,61440
 dc.w 31,3,3,28,59392,51200,51200,12288
 dc.w 13,0,0,15,36864,4096,4096,57344
 dc.w 4,0,0,7,8192,8192,8192,49152
 dc.w 3,0,0,3,49152,0,0,49152
 dc.w 0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0

face2:
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
 dc.w 3,3,3,12,61440,61440,61440,0
 dc.w 48,0,0,63,1024,1024,1024,63488
 dc.w 96,0,0,127,64000,59904,59904,1024
 dc.w 64,0,0,127,3328,1280,1280,61952
 dc.w 195,0,0,255,58624,1280,1280,64000
 dc.w 240,0,0,255,7424,1280,1280,64000
 dc.w 135,0,0,767,57600,256,256,65088
 dc.w 160,0,0,1007,1280,256,256,63168
 dc.w 144,0,0,499,2304,256,256,52864
 dc.w 84,24,0,509,10752,6656,512,48512
 dc.w 239,12,0,511,63232,46592,34304,31104
 dc.w 241,0,0,511,36608,35840,35840,29568
 dc.w 185,0,0,511,36096,35840,35840,29568
 dc.w 179,0,0,511,50432,50176,50176,15232
 dc.w 35,0,0,255,25600,25600,25600,39680
 dc.w 36,0,0,191,1024,1024,1024,63744
 dc.w 19,0,0,31,51200,2048,2048,61440
 dc.w 29,1,0,28,43008,34816,2048,12288
 dc.w 15,3,3,12,53248,53248,53248,8192
 dc.w 6,0,0,7,8192,8192,8192,49152
 dc.w 7,0,0,7,0,0,0,57344
 dc.w 3,0,0,3,49152,0,0,49152
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0


face3:
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
 dc.w 3,3,3,12,61440,61440,61440,0
 dc.w 48,0,0,63,1024,1024,1024,63488
 dc.w 96,0,0,127,64000,59904,59904,1024
 dc.w 64,0,0,127,3328,1280,1280,61952
 dc.w 199,0,0,255,58624,1280,1280,64000
 dc.w 240,0,0,255,7424,1280,1280,64000
 dc.w 135,0,0,767,57600,256,256,65088
 dc.w 160,0,0,1007,1280,256,256,63168
 dc.w 144,0,0,503,2304,256,256,61056
 dc.w 80,24,0,505,35328,6656,512,40320
 dc.w 231,0,0,511,59136,34304,34304,31104
 dc.w 241,0,0,511,36608,35840,35840,29568
 dc.w 185,0,0,511,36096,35840,35840,29568
 dc.w 179,0,0,511,50432,50176,50176,15232
 dc.w 35,0,0,255,25600,25600,25600,39680
 dc.w 36,0,0,191,1024,1024,1024,63744
 dc.w 18,0,0,30,18432,2048,2048,28672
 dc.w 30,3,0,28,26624,51200,2048,12288
 dc.w 14,2,2,12,20480,20480,20480,8192
 dc.w 5,1,1,6,40960,40960,40960,16384
 dc.w 6,0,0,7,0,0,0,57344
 dc.w 3,0,0,3,49152,0,0,49152
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0


face4:
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
 dc.w 3,3,3,12,61440,61440,61440,0
 dc.w 48,0,0,63,1024,1024,1024,63488
 dc.w 96,0,0,127,64000,59904,59904,1024
 dc.w 64,0,0,127,3328,1280,1280,61952
 dc.w 195,0,0,255,50432,1280,1280,64000
 dc.w 248,0,0,255,7424,1280,1280,64000
 dc.w 131,0,0,767,57600,256,256,65088
 dc.w 160,0,0,1007,1280,256,256,63168
 dc.w 144,0,0,497,2304,256,256,36480
 dc.w 86,24,0,511,27136,6656,512,64896
 dc.w 239,12,0,511,46848,46592,34304,31104
 dc.w 241,0,0,511,36608,35840,35840,29568
 dc.w 185,0,0,511,36096,35840,35840,29568
 dc.w 179,0,0,511,50432,50176,50176,15232
 dc.w 35,0,0,255,25600,25600,25600,39680
 dc.w 36,0,0,191,1024,1024,1024,63744
 dc.w 19,0,0,31,34816,2048,2048,61440
 dc.w 29,1,0,28,43008,34816,2048,12288
 dc.w 15,3,3,12,53248,53248,53248,8192
 dc.w 6,0,0,7,8192,8192,8192,49152
 dc.w 7,0,0,7,0,0,0,57344
 dc.w 3,0,0,3,49152,0,0,49152
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0
	dc.w	0,0,0,0,0,0,0,0



telea1:
 dc.w 0,43690,43690,0,2,43691,43688,0
 dc.w 0,32432,0,32432,3,2,0,0
 dc.w 0,43690,43690,0,3,43690,43688,0
 dc.w 0,28288,0,28288,3,2,0,0
 dc.w 3,43692,43695,7,32771,10922,43688,32768
 dc.w 8,24591,15,24591,49155,2,16384,16384
 dc.w 12,43695,43695,15,16387,43690,60072,49152
 dc.w 7,7,7,7,32771,32770,32768,32768
 dc.w 24,43704,43704,0,24579,51882,51880,0
 dc.w 36,32388,4,32440,12291,12290,12288,49152
 dc.w 32,43648,43648,60,4099,6826,6824,57344
 dc.w 32,22016,0,22076,36867,4098,4096,57344
 dc.w 52,43648,43648,60,49155,2730,2728,61440
 dc.w 24,0,0,24,24579,2,0,24576
 dc.w 3,43692,43695,7,32771,10922,43688,32768
 dc.w 8,15,15,15,49155,2,16384,16384
 dc.w 12,43695,43695,15,16387,43690,60072,49152
 dc.w 7,7,7,7,32771,32770,32768,32768
 dc.w 0,43690,43690,0,3,43690,43688,0
 dc.w 0,0,0,0,3,2,0,0
 dc.w 0,43690,43690,0,3,43690,43688,0
 dc.w 0,0,0,0,1,2,0,0


telea2:
 dc.w 0,43690,43690,0,2,43691,43688,0
 dc.w 0,32400,0,32400,3,2,0,0
 dc.w 0,43690,43690,0,3,43690,43688,0
 dc.w 0,29952,0,29952,3,2,0,0
 dc.w 3,43692,43695,7,32771,10922,43688,32768
 dc.w 9,32270,14,32270,16387,32770,49152,49152
 dc.w 12,43695,43695,15,16387,43690,60072,49152
 dc.w 7,7,7,7,32771,32770,32768,32768
 dc.w 14,43680,43680,14,49155,43690,43688,0
 dc.w 17,32384,0,32413,24579,24578,24576,32768
 dc.w 25,43680,43680,29,8195,10922,10920,49152
 dc.w 29,15232,0,15261,3,2,0,57344
 dc.w 29,43680,43680,29,40963,2730,2728,57344
 dc.w 14,0,0,14,49155,2,0,49152
 dc.w 3,43692,43695,7,32771,10922,43688,32768
 dc.w 9,14,14,14,16387,32770,49152,49152
 dc.w 12,43695,43695,15,16387,43690,60072,49152
 dc.w 7,7,7,7,32771,32770,32768,32768
 dc.w 0,43690,43690,0,3,43690,43688,0
 dc.w 0,0,0,0,3,2,0,0
 dc.w 0,43690,43690,0,3,43690,43688,0
 dc.w 0,0,0,0,1,2,0,0

telea3:
 dc.w 0,43690,43690,0,2,43691,43688,0
 dc.w 0,28576,0,28576,3,2,0,0
 dc.w 0,43690,43690,0,3,43690,43688,0
 dc.w 0,24192,0,24192,3,2,0,0
 dc.w 3,43688,43691,3,3,43690,43688,0
 dc.w 5,28678,6,28678,32771,2,32768,32768
 dc.w 6,43695,43695,7,32771,10922,43688,32768
 dc.w 3,3,3,3,3,2,0,0
 dc.w 5,43689,43689,4,32771,10922,10920,0
 dc.w 10,32000,0,32011,49155,49154,49152,0
 dc.w 10,43680,43680,11,16387,27306,27304,32768
 dc.w 10,27264,0,27275,3,2,0,49152
 dc.w 10,43680,43680,11,3,10922,10920,49152
 dc.w 5,0,0,5,32771,2,0,32768
 dc.w 3,43688,43691,3,3,43690,43688,0
 dc.w 5,6,6,6,32771,2,32768,32768
 dc.w 6,43695,43695,7,32771,10922,43688,32768
 dc.w 3,3,3,3,3,2,0,0
 dc.w 0,43690,43690,0,3,43690,43688,0
 dc.w 0,0,0,0,3,2,0,0
 dc.w 0,43690,43690,0,3,43690,43688,0
 dc.w 0,0,0,0,1,2,0,0


telea4:
 dc.w 0,43690,43690,0,2,43691,43688,0
 dc.w 0,29312,0,29312,3,2,0,0
 dc.w 0,43690,43690,0,3,43690,43688,0
 dc.w 0,25600,0,25600,3,2,0,0
 dc.w 3,43688,43691,3,3,43690,43688,0
 dc.w 5,31878,6,31878,32771,2,32768,32768
 dc.w 6,43695,43695,7,32771,10922,43688,32768
 dc.w 3,3,3,3,3,2,0,0
 dc.w 3,43690,43690,0,3,43690,43688,0
 dc.w 5,31361,1,31366,32771,32770,32768,0
 dc.w 4,43688,43688,7,32771,43690,43688,0
 dc.w 4,32384,0,32391,3,2,0,32768
 dc.w 4,43688,43688,7,3,10922,10920,32768
 dc.w 3,0,0,3,3,2,0,0
 dc.w 3,43688,43691,3,3,10922,10920,0
 dc.w 5,6,6,6,32771,2,32768,32768
 dc.w 6,43695,43695,7,32771,10922,43688,32768
 dc.w 3,3,3,3,3,2,0,0
 dc.w 0,43690,43690,0,3,43690,43688,0
 dc.w 0,0,0,0,3,2,0,0
 dc.w 0,43690,43690,0,3,43690,43688,0
 dc.w 0,0,0,0,1,2,0,0


telea5:
 dc.w 0,43690,43690,0,2,43691,43688,0
 dc.w 0,31008,0,31008,3,2,0,0
 dc.w 0,43690,43690,0,3,43690,43688,0
 dc.w 0,27968,0,27968,3,2,0,0
 dc.w 3,43688,43691,3,3,43690,43688,0
 dc.w 6,14597,5,14597,32771,2,32768,32768
 dc.w 4,43695,43695,7,32771,10922,43688,32768
 dc.w 3,3,3,3,3,2,0,0
 dc.w 6,43692,43692,0,3,10922,10920,32768
 dc.w 11,28675,3,28684,3,2,0,16384
 dc.w 9,43681,43681,14,3,10922,10920,16384
 dc.w 8,30272,0,30287,3,2,0,16384
 dc.w 12,43680,43680,15,3,10922,10920,16384
 dc.w 6,0,0,6,32771,2,0,32768
 dc.w 3,43688,43691,3,3,43690,43688,0
 dc.w 6,5,5,5,32771,2,32768,32768
 dc.w 6,43695,43695,7,32771,10922,43688,32768
 dc.w 3,3,3,3,3,2,0,0
 dc.w 0,43690,43690,0,3,43690,43688,0
 dc.w 0,0,0,0,3,2,0,0
 dc.w 0,43690,43690,0,3,43690,43688,0
 dc.w 0,0,0,0,1,2,0,0


telea6:
 dc.w 0,43690,43690,0,2,43691,43688,0
 dc.w 0,23680,0,23680,3,2,0,0
 dc.w 0,43690,43690,0,3,43690,43688,0
 dc.w 0,31424,0,31424,3,2,0,0
 dc.w 3,43692,43695,7,32771,10922,43688,32768
 dc.w 8,24591,15,24591,49155,2,16384,16384
 dc.w 12,43695,43695,15,16387,43690,60072,49152
 dc.w 7,7,7,7,32771,32770,32768,32768
 dc.w 12,43688,43688,0,49155,60074,60072,0
 dc.w 22,28678,6,28696,8195,8194,8192,49152
 dc.w 18,43682,43682,28,40963,10922,10920,49152
 dc.w 16,27520,0,27550,32771,2,0,57344
 dc.w 16,43680,43680,30,57347,2730,2728,57344
 dc.w 12,0,0,12,49155,2,0,49152
 dc.w 3,43692,43695,7,32771,10922,43688,32768
 dc.w 8,15,15,15,49155,2,16384,16384
 dc.w 12,43695,43695,15,16387,43690,60072,49152
 dc.w 7,7,7,7,32771,32770,32768,32768
 dc.w 0,43690,43690,0,3,43690,43688,0
 dc.w 0,0,0,0,3,2,0,0
 dc.w 0,43690,43690,0,3,43690,43688,0
 dc.w 0,0,0,0,1,2,0,0


unarmed:
	dc.w	$0777,$F888,$0777,$0777,$73E7,$8C18,$73E7,$73E7
	dc.w	$E777,$1888,$E777,$E777,$F7E0,$081F,$F7E0,$F7E0
	dc.w	$0555,$FAAA,$0555,$0555,$D634,$29CB,$D634,$D634
	dc.w	$35D4,$CA2B,$35D4,$35D4,$1430,$EBCF,$1430,$1430
	dc.w	$0554,$FAAB,$0554,$0554,$D5D5,$2A2A,$D5D5,$D5D5
	dc.w	$D495,$2B6A,$D495,$D495,$F5D0,$0A2F,$F5D0,$F5D0
	dc.w	$0555,$FAAA,$0555,$0555,$5414,$ABEB,$5414,$5414
	dc.w	$3554,$CAAB,$3554,$3554,$2550,$DAAF,$2550,$2550
	dc.w	$05D5,$FA2A,$05D5,$05D5,$95D5,$6A2A,$95D5,$95D5
	dc.w	$75D5,$8A2A,$75D5,$75D5,$F5D0,$0A2F,$F5D0,$F5D0
	dc.w	$0615,$F9EA,$0615,$0615,$D555,$2AAA,$D555,$D555
	dc.w	$9554,$6AAB,$9554,$9554,$1430,$EBCF,$1430,$1430
	dc.w	$03F7,$FC08,$03F7,$03F7,$7777,$8888,$7777,$7777
	dc.w	$F777,$0888,$F777,$F777,$F7E0,$081F,$F7E0,$F7E0

armed:	dc.w	$000F,$FFF0,$000F,$000F,$9F9D,$6062,$9F9D,$9F9D
	dc.w	$DFDF,$2020,$DFDF,$DFDF,$8000,$7FFF,$8000,$8000
	dc.w	$0018,$FFE7,$0018,$0018,$D0D7,$2F28,$D0D7,$D0D7
	dc.w	$5050,$AFAF,$5050,$5050,$C000,$3FFF,$C000,$C000
	dc.w	$0017,$FFE8,$0017,$0017,$5752,$A8AD,$5752,$5752
	dc.w	$57D7,$A828,$57D7,$57D7,$4000,$BFFF,$4000,$4000
	dc.w	$0010,$FFEF,$0010,$0010,$50D5,$AF2A,$50D5,$50D5
	dc.w	$5095,$AF6A,$5095,$5095,$4000,$BFFF,$4000,$4000
	dc.w	$0017,$FFE8,$0017,$0017,$55D7,$AA28,$55D7,$55D7
	dc.w	$57D7,$A828,$57D7,$57D7,$4000,$BFFF,$4000,$4000
	dc.w	$0015,$FFEA,$0015,$0015,$5655,$A9AA,$5655,$5655
	dc.w	$5050,$AFAF,$5050,$5050,$C000,$3FFF,$C000,$C000
	dc.w	$001D,$FFE2,$001D,$001D,$DFDD,$2022,$DFDD,$DFDD
	dc.w	$DFDF,$2020,$DFDF,$DFDF,$8000,$7FFF,$8000,$8000

bubble:	dc.w	$07E0,$07E0,$07E0,$07E0,$1FF8,$1FF8,$1FF8,$1FF8
	dc.w	$3D54,$3FFC,$3FFC,$3FFC,$7EAA,$7FDE,$7FFE,$7FFE
	dc.w	$7D76,$7F8E,$7FDE,$7FDE,$FEAB,$FFDF,$FFFF,$FFFF
	dc.w	$DF57,$FFFF,$FFFF,$FFFF,$CFAB,$FFFF,$FFFF,$FFFF
	dc.w	$DFFF,$FFFF,$FFFF,$FFFF,$CFFF,$FFFF,$FFFF,$FFFF
	dc.w	$D7FB,$FFFF,$FFFF,$FFFF,$6AA6,$7FFE,$7FFE,$7FFE
	dc.w	$754E,$7FFE,$7FFE,$7FFE,$381C,$3FFC,$3FFC,$3FFC
	dc.w	$1FF8,$1FF8,$1FF8,$1FF8,$07E0,$07E0,$07E0,$07E0


pop:
 dc.w 24840,24840,24840,24840
 dc.w 62364,37524,62364,62364
 dc.w 42474,54902,55286,55286
 dc.w 23484,27268,31676,31676
 dc.w 4216,6520,6520,6520
 dc.w 1344,1344,1344,1344
 dc.w 16660,16668,16668,16668
 dc.w 41436,57824,57852,57852
 dc.w 60500,7260,64604,64604
 dc.w 42736,59120,59120,59120
 dc.w 19188,19180,19196,19196
 dc.w 13758,16354,16374,16374
 dc.w 24538,28086,32766,32766
 dc.w 60094,40414,57342,57342
 dc.w 46504,55256,63480,63480
 dc.w 57976,57976,57976,57976

teleb1:
 dc.w 0,43690,43690,0,0,43690,43690,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 2,43688,43690,0,32768,10922,43690,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 8,43680,43690,0,8192,2730,43690,0
 dc.w 0,0,256,256,0,0,0,0
 dc.w 288,43904,43690,256,8192,2730,43690,0
 dc.w 640,896,1088,1984,0,0,0,0
 dc.w 416,43776,43690,256,2560,170,43690,0
 dc.w 0,0,256,256,0,0,0,0
 dc.w 512,43008,43690,0,128,42,43690,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 512,43008,43690,0,512,170,43690,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 160,43520,43690,0,10240,682,43690,0
 dc.w 0,0,0,0,0,0,60,0
 dc.w 32,43648,43690,0,8192,2730,43690,0
 dc.w 0,0,0,0,0,0,498,0
 dc.w 10,43680,43690,0,16384,43690,60074,0
 dc.w 0,0,0,0,0,0,54,0
 dc.w 0,43690,43690,0,0,43690,43690,0
 dc.w 0,0,0,0,0,0,502,0


teleb2:
 dc.w 0,43690,43690,0,0,43690,43690,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 2,43688,43690,0,32768,10922,43690,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 8,43680,43946,256,8192,2730,43690,0
 dc.w 256,256,0,256,0,0,0,0
 dc.w 32,43904,43690,256,2048,682,43690,0
 dc.w 1088,1984,2080,4064,0,0,0,0
 dc.w 160,43776,43690,256,640,42,43690,0
 dc.w 256,256,0,256,0,0,0,0
 dc.w 512,43008,43946,256,32,10,43690,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 512,43008,43690,0,128,42,43690,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 160,43520,43690,0,2560,170,43690,0
 dc.w 0,0,0,0,0,0,122,0
 dc.w 32,43648,43690,0,8192,2730,43690,0
 dc.w 0,0,0,0,0,0,102,0
 dc.w 10,43680,43690,0,16384,43690,60074,0
 dc.w 0,0,0,0,0,0,214,0
 dc.w 0,43690,43690,0,0,43690,43690,0
 dc.w 0,0,0,0,0,0,458,0

teleb3:
 dc.w 2,43688,43690,0,0,43690,43690,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 0,43680,43690,0,32768,10922,43690,0
 dc.w 0,0,256,256,0,0,0,0
 dc.w 288,43904,43690,256,8832,2090,43690,0
 dc.w 0,256,0,256,0,0,0,0
 dc.w 32,43904,43690,256,2080,10,43690,0
 dc.w 2336,3808,4112,7920,0,0,0,0
 dc.w 160,43776,43690,256,32,10,43690,0
 dc.w 0,256,0,256,0,0,0,0
 dc.w 768,43264,43690,256,128,42,43690,0
 dc.w 0,0,256,256,0,0,0,0
 dc.w 512,43008,43690,0,128,42,43690,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 512,43008,43690,0,512,170,43690,0
 dc.w 0,0,0,0,0,0,78,0
 dc.w 512,43008,43690,0,512,170,43690,0
 dc.w 0,0,0,0,0,0,14,0
 dc.w 170,43520,43690,0,33280,170,43690,0
 dc.w 0,0,0,0,0,0,2,0
 dc.w 0,43690,43690,0,10240,33450,43690,0
 dc.w 0,0,0,0,0,0,190,0


teleb4:
 dc.w 0,43690,43690,0,0,43690,43690,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 682,43008,43690,0,43520,170,43690,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 512,43008,43946,256,128,42,43690,0
 dc.w 256,256,0,256,0,0,0,0
 dc.w 512,43264,43690,256,128,42,43690,0
 dc.w 1088,1984,2080,4064,0,0,0,0
 dc.w 512,43264,43690,256,128,42,43690,0
 dc.w 256,256,0,256,0,0,0,0
 dc.w 512,43008,43946,256,128,42,43690,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 512,43008,43690,0,128,42,43690,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 128,43520,43690,0,128,42,43690,0
 dc.w 0,0,0,0,0,0,22,0
 dc.w 128,43520,43690,0,8320,42,43690,0
 dc.w 0,0,0,0,0,0,14,0
 dc.w 42,43648,43690,0,43648,42,43690,0
 dc.w 0,0,0,0,0,0,122,0
 dc.w 0,43690,43690,0,0,43690,43690,0
 dc.w 0,0,0,0,0,0,2,0

teleb5:
 dc.w 0,43690,43690,0,0,43690,43690,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 34,43656,43690,0,43008,682,43690,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 138,43520,43690,0,512,170,43690,0
 dc.w 0,0,256,256,0,0,0,0
 dc.w 768,43264,43690,256,128,42,43690,0
 dc.w 640,896,1088,1984,0,0,0,0
 dc.w 768,43264,43690,256,128,42,43690,0
 dc.w 0,0,256,256,0,0,0,0
 dc.w 2048,40960,43690,0,160,10,43690,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 640,43008,43690,0,128,42,43690,0
 dc.w 0,0,0,0,0,0,0,0
 dc.w 128,43520,43690,0,128,42,43690,0
 dc.w 0,0,0,0,0,0,30,0
 dc.w 128,43520,43690,0,512,42,43562,0
 dc.w 0,0,0,0,0,0,6,0
 dc.w 42,43648,43690,0,10240,682,43690,0
 dc.w 0,0,0,0,0,0,382,0
 dc.w 0,43690,43690,0,32768,10922,43690,0
 dc.w 0,0,0,0,0,0,126,0


block1:	dc.b	$7F,$80,$FF,$FF,$81,$FE,$FF,$FF
	dc.b	$81,$FE,$FF,$FF,$81,$FE,$FF,$FF
	dc.b	$81,$FE,$FF,$FF,$81,$FE,$FF,$FF
	dc.b	$81,$FE,$FF,$FF,$FE,$FF,$FF,$FF

block2:	dc.b	$26,$E7,$18,$FF,$D9,$FF,$00,$FF
	dc.b	$2A,$3E,$C1,$FF,$AD,$BD,$42,$FF
	dc.b	$AB,$BB,$44,$FF,$5C,$7C,$83,$FF
	dc.b	$A3,$FF,$00,$FF,$5C,$DF,$20,$FF

block3:	dc.b	$00,$FF,$00,$FF,$81,$FF,$00,$FF
	dc.b	$C3,$FF,$00,$FF,$E7,$FF,$00,$FF
	dc.b	$E7,$E7,$18,$FF,$C3,$C3,$3C,$FF
	dc.b	$81,$81,$7E,$FF,$00,$00,$FF,$FF

block4:	dc.b	$42,$7E,$FF,$FF,$BD,$C3,$FF,$FF
	dc.b	$66,$99,$FF,$FF,$5A,$BD,$FF,$FF
	dc.b	$5A,$BD,$FF,$FF,$66,$99,$FF,$FF
	dc.b	$BD,$C3,$FF,$FF,$42,$7E,$FF,$FF

block5:	dc.b	$E3,$FF,$00,$FF,$81,$9F,$60,$FF
	dc.b	$3C,$3F,$C0,$FF,$3C,$3F,$C0,$FF
	dc.b	$3C,$3F,$C0,$FF,$3C,$3F,$C0,$FF
	dc.b	$81,$87,$78,$FF,$C3,$C3,$3C,$FF

block6:	dc.b	$7F,$7F,$7F,$80,$89,$09,$09,$F6
	dc.b	$91,$11,$11,$EE,$A1,$21,$21,$DE
	dc.b	$C3,$43,$43,$BC,$07,$07,$07,$F8
	dc.b	$8D,$0D,$0D,$F2,$E6,$00,$00,$FF

block7:	dc.b	$5B,$7F,$5B,$A4,$A5,$25,$01,$FE
	dc.b	$A5,$25,$01,$FE,$7D,$7D,$81,$FE
	dc.b	$A1,$21,$01,$FE,$A6,$27,$00,$FF
	dc.b	$A5,$25,$01,$FE,$DA,$00,$24,$FF

block8:	dc.b	$FF,$00,$FF,$FF,$7E,$81,$FF,$FF
	dc.b	$3C,$C3,$FF,$FF,$18,$E7,$FF,$FF
	dc.b	$18,$FF,$FF,$FF,$3C,$FF,$FF,$FF
	dc.b	$7E,$FF,$FF,$FF,$FF,$FF,$FF,$FF

block9:	dc.b	$80,$FF,$00,$FF,$7E,$43,$80,$FF
	dc.b	$56,$11,$90,$EB,$62,$21,$A0,$DF
	dc.b	$72,$31,$B0,$CF,$5A,$19,$98,$E7
	dc.b	$3E,$03,$C0,$FF,$01,$01,$FE,$FF

block10:
	dc.b	$E9,$ED,$F3,$FF,$FF,$FF,$FF,$FF
	dc.b	$FF,$00,$FF,$FF,$00,$FF,$FF,$FF
	dc.b	$FF,$FF,$FF,$FF,$E5,$E5,$FB,$FF
	dc.b	$E9,$ED,$F3,$FF,$E9,$ED,$F3,$FF

block11:
	dc.b	$7F,$67,$7F,$98,$81,$19,$19,$FE
	dc.b	$81,$19,$19,$FE,$81,$FE,$FF,$FF
	dc.b	$81,$FE,$FF,$FF,$81,$19,$19,$FE
	dc.b	$81,$19,$19,$FE,$FE,$18,$18,$FF

block12:
	dc.b	$80,$80,$7F,$FF,$7E,$FE,$01,$FF
	dc.b	$62,$E2,$1D,$FF,$5A,$FA,$05,$FF
	dc.b	$5A,$FA,$05,$FF,$46,$FE,$01,$FF
	dc.b	$7E,$FE,$01,$FF,$01,$FF,$00,$FF

block13:
	dc.b	$84,$FF,$04,$FB,$7A,$7B,$80,$FF
	dc.b	$89,$09,$01,$FE,$6E,$6F,$80,$FF
	dc.b	$6E,$6F,$80,$FF,$A9,$29,$01,$FE
	dc.b	$6A,$6B,$80,$FF,$15,$01,$EA,$FF

block14:
	dc.b	$7F,$7F,$7F,$80,$81,$01,$01,$FE
	dc.b	$9D,$1D,$1D,$E2,$A5,$05,$05,$FA
	dc.b	$A5,$05,$05,$FA,$B9,$01,$01,$FE
	dc.b	$81,$01,$01,$FE,$FE,$00,$00,$FF

block15:
	dc.b	$80,$FF,$00,$FF,$7E,$7F,$BC,$FF
	dc.b	$56,$6B,$FA,$FB,$62,$5F,$FE,$FF
	dc.b	$72,$4F,$FE,$FF,$5A,$67,$FE,$FF
	dc.b	$3E,$3F,$FC,$FF,$01,$01,$FE,$FF

block16:
	dc.b	$49,$60,$96,$FF,$9A,$C2,$25,$FF
	dc.b	$95,$C4,$2A,$FF,$82,$C0,$3D,$FF
	dc.b	$40,$F9,$06,$FF,$B9,$BF,$40,$FF
	dc.b	$56,$1E,$A1,$FF,$E9,$38,$06,$FF

block17:
	dc.b	$03,$3C,$00,$FF,$7D,$7E,$00,$FF
	dc.b	$7E,$7F,$80,$FF,$7E,$7F,$80,$FF
	dc.b	$7E,$7F,$80,$FF,$7E,$7F,$80,$FF
	dc.b	$BE,$BE,$C0,$7F,$C0,$C0,$FC,$3F

block18:
	dc.b	$17,$10,$08,$FF,$33,$30,$0C,$FF
	dc.b	$71,$70,$0E,$FF,$70,$70,$8F,$FF
	dc.b	$0F,$FF,$00,$FF,$8E,$FE,$80,$7F
	dc.b	$CC,$FC,$C0,$3F,$E0,$F0,$E8,$1F

