***************************** 
*  A BOB INTRO FOR CRYPTIC  *
* CODED BY TANGO OF CRYPTIC *
***************************** 
 
	OPT C-
	SECTION INTRO,CODE_C
	INCDIR	DF1:
	INCLUDE	DEFINITIONS
	INCLUDE MACROS


; ** LOCAL MACROS **

BlitWait	Macro
BlitW\@		Btst	#14,$dff002
			Bne.s	BlitW\@
			Endm

VPOS		MACRO
W:			CMP.B	#$FF,$DFF006
			BNE.S	W
			ENDM
				
		
; ** OPEN LIBRARIES, FORBID AND SWAP COPPER **

TAKEOVER:
	LEA CUSTOM,a5		
	LEA GFXLIB(PC),a1			 	Point to 'graphics.library'
	MOVEQ #0,D0					 	Doesn't matter which version
 	CALLEXEC					 	Get EXECBASE
	JSR	-132(a6)				 	task switching off (forbid)
 	JSR -$228(a6) 				 	Openlibrary
 	MOVE.L D0,GFXBASE			 	Store library address
	JSR  CYB_INIT		

; ** SET UP SPRITE ZERO **
	
	MOVE.L	#SPRITE,D1
	MOVE.W	D1,SP0L+2
	SWAP	D1
	MOVE.W	D1,SP0H+2
	

; ** SET UP BITPLANES IN COPPER **
	
 	MOVE.L	BOBSPACE,D1			 	FOR BOBS
 	MOVE.W	D1,BP1LO+2
 	SWAP	D1
 	MOVE.W	d1,BP1HI+2

 	MOVE.L	BOBSPACE,D1			 	FOR BOBS 
 	ADD.L	#10240,D1
 	MOVE.W	D1,BP2LO+2
 	SWAP	D1
 	MOVE.W	d1,BP2HI+2

 	MOVE.L	#BLANK,D1			 	FOR SCROLLER
 	MOVE.W	D1,ABP1LO+2
 	SWAP	D1
 	MOVE.W	d1,ABP1HI+2

	
 	MOVE.L GFXBASE,d0				Move gfxbase offset to d0
 	MOVE.L D0,A6				
 	MOVE.W #$80,DMACON(A5)			Turn off copper whilst changing it
 	MOVE.L $32(A6),WBCOPPER	 		Store old (WBench) copper address
 	MOVE.L #OURCOPPER,$32(A6)		Point to new copper list (our own)
 	MOVE.W #$8080,DMACON(a5)    	re-enable copper

 	MOVE.W #$8010,INTENA(a5)		
 	MOVE.L $6C,OLD					Save work bench interrupt
 	MOVE.L #LEV3,$6C				This sets up a level 3 interrupt
	MOVE.W INTENAR(A5),SYSTEMINTS
		
		
; ** EXIT ROUTINE - RESTORE COPPER, INTERRUPTS ETC... **

WAIT: 	
	VPOS						
	Bsr		CLEANSCREEN
	BSR		GET_FORMATION
	Bsr		PRINT_BOBS
	BSR		GET_SCREEN
	BSR		TESTSCROLL
	BSR		GET_ANIM
	BSR		MOVE_STARS

	BTST #6,$BFE001				
 	BNE.S	WAIT				
	MOVE.L	4.W,A6					EXECBASE
 	MOVE.L  OLD,$6C					Restore system interrupts
	MOVE.L  GFXBASE,A6
 	MOVE.W  #$80,DMACON(A5)			Disable DMA
 	MOVE.L  WBCOPPER,$32(A6)		Restore old copperlist
 	MOVE.W  #$8080,DMACON(A5)		Enable DMA
 	MOVE.W	SYSTEMINTS,D0			Systems interrupt
 	OR.W	#$C000,D0
 	MOVE.W	D0,INTENA(A5)			Enable OS interrupts
	CLR.W	$DFF0A8					Clear music
	CLR.W	$DFF0B8
	CLR.W	$DFF0C8
	CLR.W	$DFF0D8
	MOVE.W	#$F,$DFF096
	CLR.L	D0						No return code errors
	RTS


; ** RETURN CODE ERROR **

ERROR:	
	CALLEXEC
	JSR	    -138(A6)				Permit ( multi-tasking on )
	MOVEQ	#0,D0					Clear d0
 	RTS								Return to AmigaDOS


; ** NEW INTERRUPT **

LEV3:
	SAVE_ALL
	LEA	CUSTOM,a5
	AND #$10,INTREQR(A5)       		Check if interrupt is from Copper 
	BNE OUT
	MOVE.W	#$8010,$9C								


; ** MAIN ROUTINES CALLED EVERY VBI **

	JSR	CYB_MUSIC					; CAN STILL BE UNDER PROCESSOR
									; IF I WANT IT TO.


; ** RESTORE SYSTEMS INTERRUPT **

OUT:
	RETURN_ALL
	DC.W $4EF9					
OLD:
	DC.L 0						


; ** Move the sprites **

move_stars:
	sub.b	#$1,x+1
	sub.b	#$2,x+9
	sub.b	#$1,x+17
	sub.b	#$3,x+25
	sub.b	#$2,x+33
	sub.b	#$4,x+41
	sub.b	#$2,x+49
	sub.b	#$1,x+57
	sub.b	#$3,x+65
	sub.b	#$1,x+73
	sub.b	#$2,x+81
	sub.b	#$4,x+89
	sub.b	#$3,x+97
	sub.b	#$2,x+105
	sub.b	#$1,x+113
	sub.b	#$4,x+121
	sub.b	#$3,x+129
	sub.b	#$3,x+137
	sub.b	#$2,x+145
	sub.b	#$4,x+153
	sub.b	#$1,x+161
	sub.b	#$3,x+169
	sub.b	#$1,x+177
	sub.b	#$2,x+185
	sub.b	#$4,x+193
	sub.b	#$1,x+201
	sub.b	#$3,x+209
	sub.b	#$1,x+217
	sub.b	#$2,x+225
	sub.b	#$2,x+233
	rts


; ** SCREEN NEEDS TO BE DOUBLE BUFFERED IF MORE THAN 20 BOBS **

FLIPSCREENS:
	Move.l		Buffer(pc),D0	Pointer To Buffer Poiner
	Eor.l		#10240*2,D0		Buffer With Size Of Screen
	Move.l		D0,Buffer		Store It
	Add.l		#ActSpace,D0	Add Screen To It
	Move.l		D0,BobSpace		Store It 
	Rts

GET_SCREEN:
	Move.l	BobSpace,D0			
	MOVE.W	D0,BP1LO+2
	SWAP	D0
	MOVE.W	D0,BP1HI+2
	
	Move.l	BobSpace,D0			
	ADD.L	#10240,D0
	MOVE.W	D0,BP2LO+2
	SWAP	D0
	MOVE.W	D0,BP2HI+2
	RTS


; ** CLEAR THE ENTIRE SCREEN **

CLEANSCREEN:
	Bsr			FLIPSCREENS
	Lea			Custom,A1
	Move.l		BobSpace,a2		
	LEA			BLTDPTH(A1),A3
	LEA			BLTSIZE(A1),A4
	Move.l		A2,(A3)
	move.w		#%0000000110000000,BltCon0(A1)	
	Move.w		#$0000,BltCon1(A1)	
	Move.w		#0,BltdMod(A1)		
	Move.l		#-1,Bltafwm(A1)		
	Move.w		#450*64+20,(A4)
	rts


; ** BOB ANIMATION ROUTINE CALLED EVERY VBI **

GET_ANIM:
	CMP.L	#4,ANDEL
	BEQ.S	GET_ANIMS
	ADD.L	#1,ANDEL
	RTS
GET_ANIMS:
	CLR.L	ANDEL
	LEA		BANIM,A0
	LEA		ANIM,A2
	ADD.L	ANT,A2
	CMP.L	#-1,(A2)
	BEQ.S	RST_ANT
	MOVE.L	ANT,D2
	MOVE.L	(A2),WHICH_FRAME
	MOVE.L	(A0,D2),MASK_WHICH_FRAME
	ADD.L	#4,ANT
	CLR.L	D2
	BRA		BLITBOB
RST_ANT:
	CLR.L	ANT
	RTS

ANIM:	DC.L	BOBS,BOBS+6,BOBS+12,BOBS+18,BOBS+24,BOBS+30
		DC.L	BOBS+(32*40),BOBS+(32*40)+6,BOBS+(32*40)+12,BOBS+(32*40)+18
		DC.L	BOBS+(32*40)+12,BOBS+(32*40)+6,BOBS+(32*40),BOBS+30,BOBS+24,BOBS+18
		DC.L	BOBS+12,BOBS+6,-1
BANIM:	DC.L	BOBMASK,BOBMASK+6,BOBMASK+12,BOBMASK+18,BOBMASK+24,BOBMASK+30
		DC.L	BOBMASK+(32*40),BOBMASK+(32*40)+6,BOBMASK+(32*40)+12,BOBMASK+(32*40)+18
		DC.L	BOBMASK+(32*40)+12,BOBMASK+(32*40)+6,BOBMASK+(32*40),BOBMASK+30,BOBMASK+24
		DC.L	BOBMASK+18,BOBMASK+12,BOBMASK+6,-1
		EVEN	
	

; ** BLIT OBJECT TO SCREEN **

; ENTRIES:
; 	  D1	X              
;	  D2	Y              
;	  D3	Bob Number     
;	  A3	Screen Address 


BlitBob:
	MOVE.L		XPOS(pc),D1
	MOVE.L		YPOS(pc),D2
	MOVE.L		BOBSPACE,A3	
	Move.w		#$0FCA,D6
	MOVE.L		MASK_WHICH_FRAME,A0		; WHICH BOB MASK
	MOVE.L		WHICH_FRAME,A2			; WHICH BOB
	Ror.l		#4,D1
	Add.w		D1,D1
	Mulu		#40,D2
	Add.w		D1,D2
	Add.l		D2,a3
	Swap		D1
	Or.w		D1,D6
	Lea			Custom,a1
	CLR.L		D5
	MOVE.W		#34,D4
	MOVE.W		#32*64+3,D5
	LEA 		BLTSIZE(A1),A4			
	LEA			BLTAPTH(A1),A6
	LEA			BLTDPTH(A1),A5
	BlitWait
	Move.w		D4,Bltamod(A1)
	Move.w		D4,Bltbmod(A1)
	Move.w		D4,Bltcmod(A1)
	Move.w		D4,Bltdmod(A1)
	Move.l		A0,(A6)
	Move.l		A2,Bltbpth(A1)
	Move.l		A3,Bltcpth(A1)
	Move.l		A3,(A5)
	Move.w		D1,BltCon1(A1)
	Move.w		D6,BltCon0(A1)
	Move.w		D5,(A4)
	LEA			40*70(A2),A2
	LEA			10240(A3),A3
	BlitWait
	Move.l		A0,Bltapth(A1)
	Move.l		A2,Bltbpth(A1)
	Move.l		A3,Bltcpth(A1)
	Move.l		A3,(A5)
	Move.w		D5,(A4)
	Rts	


PRINT_BOBS:
	MOVE.L	WHICH_FRM,A1		Get ptr To Bobs
	MOVE.L	(a1)+,d1			Number Of Bobs
MoveB:
	Move.l	(a1),d2				Get x Val
	add.l	xspeed,d2			Incriment it
	Cmp.l	#xposend,d2			End Of SinTab ???
	blt		misa				If Lower Miss
	Move.l	#0,d2				Clear The Bastard
Misa:
	Move.l	d2,(a1)+			Store it
	Move.l	(a1),d2				Get y Pos
	add.l	yspeed,d2			Incriment It
	Cmp.l	#yposend,d2			REached End
	blt		misb				Less Than Miss
	Move.l	#0,d2				Reset
Misb:
	Move.l	d2,(a1)+			Store It
	dbf		d1,Moveb			Loop


; ** PLOT THE BOBS FROM BOBTABLE **

	move.l	#4,d2
	move.l	#8,d3
	move.l	which_frm,a4
	move.l	(a4),d7			; how many bobs to print
bloop:
	save_all
	move.l	(a4,d2),xpos		
	move.l	(a4,d3),ypos
	Save_All

	Lea		Xposi,A1	; GET XPOS IN SINETABLE
	Move.l	Xpos(pc),d1			; 
	Add.l	d1,d1			; CONVERT TO WORDS FOR SINETABLE
	Add.l	d1,A1			; ADD TO SINETABLE
	Move.w	(A1),Xpos+2		
		
	Lea		Yposi,A1
	Move.l	Ypos(pc),d1
	Add.l	d1,d1
	Add.l	d1,A1
	Move.w	(A1),Ypos+2
	Return_All
	bsr		blitbob
	return_all
	add.l	#8,d2			; get next xpos
	add.l	#8,d3			; get next ypos
	dbf		d7,bloop
	rts


; ** GET FORMATION **

GET_FORMATION:
	CMP.L	#200,DELTA
	BEQ.S	READ_MOUSE
	ADD.L	#1,DELTA
	RTS
READ_MOUSE:
	CLR.L	DELTA
	LEA		FORMATIONS,A3
	ADD.L	FNT,A3
	CMP.L	#-1,(A3)
	BEQ.S	RST_FNT
	MOVE.L	(A3),WHICH_FRM
	ADD.L	#4,FNT
	RTS
RST_FNT:
	CLR.L	FNT
	RTS

DELTA:		DC.L	0	
FNT:		DC.L	0
FORMATIONS:	DC.L	BOBFORM,BOBFORM2,BOBFORM3,BOBFORM5,BOBFORM6,BOBFORM7,BOBFORM4
			DC.L	BOBFORM8,BOBFORM9,BOBFORM10,BOBFORM11
			DC.L	-1
			EVEN



; ** THE SCROLL ROUTINE **

TESTSCROLL:
	TST.L	STOPPER
	BEQ.S	SCROLL
	SUB.L	#1,STOPPER
	RTS
SCROLL:
	CMP.L	#15,VAL
	BLO.S	COARSE_SCROLL_IT
	BSR		BLIT_CHAR
	CLR.L	VAL
COARSE_SCROLL_IT:
	BSR		COARSE
	RTS							
	
	
; ** BLIT LETTER ON THE SCREEN **

BLIT_CHAR:
	JSR		TEXT
	LEA		CUSTOM,A5				Get custom chip address
	MOVE.L	SCREENX,A0			 	Can~t see this picture !!
	MOVE.L	#FONT,A1			 	Put font in blitter source
	ADD.L	D1,a1
BLIT_TEST:
	BTST	#14,$DFF002
	BNE		BLIT_TEST
	MOVE.L	#-1,BLTAFWM(A5)
	MOVE.L	a0,BLTDPTH(A5)		 	Blitter dest D (BOTTOM OF SCREEN)
	MOVE.L	a1,BLTAPTH(A5)		 	Blitter source A (SCROLLING FONT)
	MOVE.W	#38,BLTAMOD(A5)		 	Modulo (20-1)*2
	MOVE.W	#38,BLTDMOD(A5)		 	Modulo (20-1)*2
	MOVE.W	#$9f0,BLTCON0(A5)	 	Minterms D=A
	CLR.W	BLTCON1(A5)			 	Set Ascending mode
 	MOVE.W	#16*64+1,BLTSIZE(A5) 	Blit size (SIZE OF FONT)
	RTS							  	Return


; ** BLITSHIFT THE ENTIRE SCROLL LINE **

COARSE:
	LEA		CUSTOM,A5			 	
	MOVE.L	SCREENX,A0				
	MOVE.L	A0,A1
	ADD.L	#2,A1
BLIT_WAIT:
	BTST	#14,$DFF002
	BNE		BLIT_WAIT
	ADD.L	#4,VAL					; (1 for slower)
	MOVE	#12,D7					; Amount of pixels to shift(15 for slow)
	ROR		#4,D7					; Set to correct bits (12-15)
	OR		#%100111110000,D7		
	MOVE.L	#-1,BLTAFWM(A5)
	MOVE.L	A1,BLTAPTH(A5)
	MOVE.L	A0,BLTDPTH(A5)
	MOVE.W	#0,BLTAMOD(A5)
	MOVE.W	#0,BLTDMOD(A5)
	MOVE.W	D7,BLTCON0(A5)	
	MOVE.W	#16*64+20,BLTSIZE(A5)
	RTS	


BLIT_WAITMAN:
	BTST	#14,$DFF002
	BNE.S	BLIT_WAITMAN
	RTS
	

; ** CHARACTER DECODER ROUTINE **

TEXT:
	MOVE.L	ACURENT,A2				Get message
	CLR.L	D1						
	MOVE.B	(A2)+,D1				Update it
	MOVE.B	D1,LETTER				Store in offset
	CMP.B	#255,D1					Check for end of message
	BEQ.W	RST_TEXT				If equal, then reset
	CMP.B	#254,D1
	BEQ		STOP
	SUB.L	#32,D1					Subract 32 (ie space)
	ASL		D1						Times by 2 
	MOVE.L	A2,ACURENT				Update ACURENT
	CMP.B	#"4",LETTER				Is letter "K" or larger
	BPL.S	ADD_MORE				If larger then add on
	RTS								Return
ADD_MORE:
	CMP.B	#"H",LETTER				Is letter "U" or larger
	BPL.S	ADD_MORE2				If larger then add on
	ADD.L	#40*15,D1				Get next line down (KLMNOPQRST)
	RTS
ADD_MORE2:
	ADD.L	#40*30,D1				Get next line down (UVWXYZ0123)
	RTS
RST_TEXT:
	MOVE.L	#0,D1
	MOVE.L	#MESSAGE,D2				Get begining of text
	MOVE.L	D2,ACURENT				Reset to begining
	RTS								Return
STOP:
	MOVE.L	#0,D1
	ADD.L	#1,ACURENT
	MOVE.L	#150,STOPPER
	RTS


MESSAGE:
; 254=STOP,255=END.

	DC.B	"         CRYPTIC STRIKE BACK WITH AN INTRO TO PRONOUCE ABOUT THEIR CHAT MAG COMING"
	DC.B	" YOUR WAY SHORTLY.  THIS INTRO WAS CODED BY TANGO WHO ALSO DID THE BOB ANIMATIONS   MUSIC WAS SCORED BY COLIN OF CRYPTIC    "
	DC.B	"  THE CHAT MAG NEEDS YOUR HELP !!!  PLEASE SEND ANY ARTICLES YOU HAVE OR ANY OPINIONS YOU WANT TO EXPRESS"
	DC.B	" TO ME (TANGO) AT THE FOLLOWING ADDRESS......."
	DC.B	"       368 HIGHFIELD RD          FARNWORTH           BOLTON         LANCASHIRE       BL4 OPG"
	DC.B	"         I'LL SHOW YOU THAT ADDRESS AGAIN........."
	DC.B	"       368 HIGHFIELD RD          FARNWORTH           BOLTON         LANCASHIRE       BL4 OPG"
	DC.B	"       OR YOU CAN PHONE ME ON THIS NUMBER     0204 795267"
	DC.B	"   OR PHONE R-TYME ON THIS NUMBER  021 327 5931"
	DC.B	"    WELL I'LL BE SEEING YOU IN THE CHAT MAG SO WATCH OUT FOR IT AND STAY COOL       TEXT RESTARTS"
	DC.B	"                            "
	DC.B	255
	EVEN


; ** NOISE TRACKER PLAY ROUTINE TO BE INCLUDED HERE **

	INCLUDE	SOURCE/NT.S

	EVEN


; ** COPPERLIST **

OURCOPPER:
SP0L:	DC.W		SPR0PTL,$0000
SP0H:	DC.W		SPR0PTH,$0000
		DC.W		BPL1MOD,0
		DC.W		BPL2MOD,0
		DC.W		BplCon1,$00
		DC.W		diwstrt,$3881-32
		DC.W		diwstop,$3CC1+32		
		DC.W		ddfstrt,$0038		
		DC.W		ddfstop,$00D0		
		DC.W		Bplcon0,$2200
		DC.W		COLOR00,$000
		DC.W		COLOR01,$F00
		DC.W		COLOR02,$00F
		DC.W		COLOR03,$FFF
BP1LO:	DC.W		Bpl1ptl,$0000
BP1HI:	DC.W		Bpl1pth,$0000
BP2LO:	DC.W		Bpl2ptl,$0000
BP2HI:	DC.W		Bpl2pth,$0000
		WAIT		$EA09,$FFFE
		DC.W		BPL1MOD,-120
		DC.W		BPL2MOD,-120
		SET_PAL
		WAIT		$1409,$FFFE
ABP1LO:	DC.W		Bpl1ptl,$0000
ABP1HI:	DC.W		Bpl1pth,$0000
		DC.W		BPLCON0,$1200
		DC.W		BPL1MOD,0
		DC.W		BPL2MOD,0
		DC.W		diwstrt,$3881+16		
		DC.W		diwstop,$3CC1-16		
		DC.W		COLOR01,$0F0
		WAIT		$1A09,$FFFE
		DC.W		COLOR01,$3F3
		WAIT		$1B09,$FFFE
		DC.W		COLOR01,$6F6
		WAIT		$1C09,$FFFE
		DC.W		COLOR01,$9F9
		WAIT		$1D09,$FFFE
		DC.W		COLOR01,$CFC
		WAIT		$1E09,$FFFE
		DC.W		COLOR01,$FFF
		WAIT		$1F09,$FFFE
		DC.W		COLOR01,$CCF
		WAIT		$2009,$FFFE
		DC.W		COLOR01,$99F
		END_COPPER


; ** LOCAL CONSTANTS **

WBCOPPER:			DC.L	0
GFXLIB:				DC.B 	"graphics.library",0
GFXBASE:			DC.L	0
SYSTEMINTS:			DC.L	0
XPOS:				DC.L	0
YPOS:				DC.L	0
Buffer				DC.L	0
xspeed:				dc.l	5
yspeed:				dc.l	4
val:				dc.l	0
stopper:			dc.l	0
acurent:			dc.l	message
screenx:			dc.l	blank+(40*4)
letter:				dc.l	0
which_frame:		dc.l	BOBS
mask_which_frame:	dc.l	BOBMASK
ant:				dc.l	0
andel:				dc.l	0
which_frm:			dc.l	BobForm4


; ** BINARIES **
	EVEN
SPRITE:
	INCLUDE	SPRITE.LIST
CYB_DATA:
	INCBIN	"MOD.BIG DEMO"
	EVEN		
BobSpace:
	Dc.l	ActSpace
ActSpace:
	Dcb.b	10240*4,0
Bobs:
	Incbin	Bobs2.Bin
BobMask:	
	Incbin	Bobsmask2.bin
	EVEN
BLANK:
	DCB.B	40*56,0
	EVEN
font:
	incbin	neatfont.bin
	even
		

*****************************************************************************************************

; ** ALL BOB FORMATIONS ARE HERE **

			EVEN
bobform:
			dc.l	12-1				; no. of bobs
			dc.l	10,10				; xpos,ypos (x,y)
			dc.l	20,10
			dc.l	30,10
			dc.l	40,10
			dc.l	50,10
			dc.l	60,10
			dc.l	70,10
			dc.l	40,20
			dc.l	40,30
			dc.l	40,40
			dc.l	40,50
			dc.l	40,60
bobform2:
			dc.l	18-1
			dc.l	10,100		
			dc.l	20,100
			dc.l	30,100
			dc.l	40,100
			dc.l	50,100
			dc.l	60,100
			dc.l	10,120
			dc.l	60,120
			dc.l	10,140
			dc.l	60,140
			dc.l	10,160
			dc.l	60,160
			dc.l	10,180
			dc.l	20,180
			dc.l	30,180
			dc.l	40,180
			dc.l	50,180
			dc.l	60,180
bobform3:
			dc.l	20-1
			dc.l	1,10
			dc.l	1,20
			dc.l	1,30
			dc.l	1,40
			dc.l	1,50
			dc.l	1,60
			dc.l	1,70
			dc.l	1,80
			dc.l	1,90
			dc.l	1,100
			dc.l	1,110
			dc.l	1,120
			dc.l	1,130
			dc.l	1,140
			dc.l	1,150
			dc.l	1,160
			dc.l	1,170
			dc.l	1,180
			dc.l	1,190
			dc.l	1,200
bobform4:
			dc.l	24-1
			DC.L	10,240
			DC.L	20,230
			DC.L	30,220
			DC.L	40,210
			DC.L	50,200
			DC.L	60,190
			DC.L	70,180
			DC.L	80,170
			DC.L	90,160
			DC.L	100,150
			DC.L	110,140
			DC.L	120,130
			DC.L	130,120
			DC.L	140,110
			DC.L	150,100
			DC.L	160,90
			DC.L	170,80
			DC.L	180,70
			DC.L	190,60
			DC.L	200,50
			DC.L	210,40
			DC.L	220,30
			DC.L	230,20
			DC.L	240,10
bobform5:
			dc.l	8-1
			dc.l	80,10
			dc.l	60,30
			dc.l	100,30
			dc.l	40,50
			dc.l	120,50
			dc.l	60,70
			dc.l	100,70
			dc.l	80,90				
bobform6:
			dc.l	19-1
			dc.l	10,10
			dc.l	20,20
			dc.l	30,30
			dc.l	40,40
			dc.l	50,50
			dc.l	60,60
			dc.l	70,70
			dc.l	80,80
			dc.l	90,90
			dc.l	100,100
			dc.l	90,110
			dc.l	80,120
			dc.l	70,130
			dc.l	60,140
			dc.l	50,150
			dc.l	40,160
			dc.l	30,170
			dc.l	20,180
			dc.l	10,190
bobform7:
			dc.l	25-1
			dc.l	10,20
			dc.l	11,111
			dc.l	22,230
			dc.l	80,43
			dc.l	90,23
			dc.l	43,21
			dc.l	65,76
			dc.l	32,55
			dc.l	80,23
			dc.l	43,2
			dc.l	97,76
			dc.l	65,23
			dc.l	98,98
			dc.l	89,79
			dc.l	54,32
			dc.l	84,98
			dc.l	87,43
			dc.l	98,78
			dc.l	33,4
			dc.l	76,98
			dc.l	98,32
			dc.l	87,32
			dc.l	65,21
			dc.l	93,213
			dc.l	98,2			
bobform8:
			dc.l	29-1
			dc.l	10,10
			dc.l	10,20
			dc.l	10,30
			dc.l	10,30
			dc.l	10,40
			dc.l	10,50
			dc.l	10,60
			dc.l	10,70
			dc.l	10,80
			dc.l	10,90
			dc.l	10,100
			dc.l	10,110
			dc.l	50,120
			dc.l	50,130
			dc.l	50,140
			dc.l	50,150
			dc.l	50,160
			dc.l	50,170
			dc.l	50,180
			dc.l	50,190
			dc.l	60,200
			dc.l	60,210
			dc.l	60,220
			dc.l	60,230
			dc.l	60,240
			dc.l	60,250
			dc.l	100,100
			dc.l	110,120
			dc.l	120,130
bobform9:
			dc.l	27-1
			dc.l	10,10
			dc.l	20,10
			dc.l	30,10
			dc.l	40,10
			dc.l	50,10
			dc.l	60,10
			dc.l	10,30
			dc.l	20,30
			dc.l	30,30
			dc.l	40,30
			dc.l	50,30
			dc.l	60,30
			dc.l	10,50
			dc.l	20,50
			dc.l	30,50
			dc.l	40,50
			dc.l	50,50
			dc.l	60,50
			dc.l	10,70
			dc.l	20,70
			dc.l	30,70
			dc.l	40,70
			dc.l	50,70
			dc.l	60,70
			dc.l	20,90
			dc.l	30,90
			dc.l	40,90
bobform10:
			dc.l	25-1
			dc.l	10,10
			dc.l	20,10
			dc.l	30,10
			dc.l	40,10
			dc.l	50,10
			dc.l	10,30
			dc.l	20,30
			dc.l	30,30
			dc.l	40,30
			dc.l	50,30
			dc.l	10,50
			dc.l	20,50
			dc.l	30,50
			dc.l	40,50
			dc.l	50,50
			dc.l	10,70
			dc.l	20,70
			dc.l	30,70
			dc.l	40,70
			dc.l	50,70
			dc.l	10,90
			dc.l	20,90
			dc.l	30,90
			dc.l	40,90
			dc.l	50,90						
bobform11:
			dc.l	24-1
			dc.l	10,20
			dc.l	20,30
			dc.l	30,40
			dc.l	40,50
			dc.l	50,60
			dc.l	60,70
			dc.l	70,80
			dc.l	80,90
			dc.l	90,100
			dc.l	100,110
			dc.l	110,120
			dc.l	120,130
			dc.l	130,140
			dc.l	140,150
			dc.l	150,160
			dc.l	160,170
			dc.l	170,180
			dc.l	180,190
			dc.l	190,200
			dc.l	200,210
			dc.l	210,220
			dc.l	220,230
			dc.l	230,240
			dc.l	240,250
			

; ** XPOS SINETABLE AND YPOS SINETABLE **

	EVEN
Xposi		Incbin	ypos			
XPOSEND		EQU		((*-XPOSI)/2)-1
YPosi		Incbin	xpos
yPOSEND		EQU		((*-YPOSI)/2)-1




	


	








