*****************************************************************************
*                                                                           *
* 		Big Blit Bob Size 48*80 16 Cols Big Or What                 *
*                                                                           *
*  Start Date : 4/3/91                                                      *
* Last Update : 4/3/91                                                      *
*   							   Code : Melt Down *
*                                                                           *
*****************************************************************************

; Include the macros

	Incdir	Df1:
	Include	Source/Macro

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

; Dont forget to use chip ram

	Chip
	
*****************************************************************************

; Kill the operating system for good mesure

	Kill		
	
*****************************************************************************

; Load custom and set up copper list

	Lea	Custom,A5
	Move.l	#Copper,Cop1lch(a5)
	
*****************************************************************************

; Clear Some Memory

	Blitwait
	Move.l	#$70000,Bltdpth(a5)
	Move.l	#0,Bltafwm(a5)
	Move.w	#0,Bltdmod(a5)
	Move.l	#$01000000,Bltcon0(a5)
	Move.w	#512*64+40,Bltsize(a5)

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

; Main routine here

Mouse
	Move.l	$dff004,d2
	And.l	#$1ff00,d2	
	Cmp.l	#$100,d2
	Bne.s	Mouse
	Eor.w	#$7e00,ScreenPtr+2
	Eor.w	#$7e00,Cop1l+2
	Eor.w	#$7e00,Cop2l+2
	Eor.w	#$7e00,Cop3l+2
	Eor.w	#$7e00,Cop4l+2
	Bsr	Clear
	Bsr	DoBobs
	Bsr	DoCop
	Bsr	UpDate
	Tstmice	Mouse				; Pressed the mouse
	
*****************************************************************************

; Return operating system and go back to user

	Heal
	Clr.l	D0				; No error
	Rts
	
*****************************************************************************

Clear
	Blitwait				; Blitter Nasty But Why Do
	Move.l	#$01000000,Bltcon0(a5)		; Clear
	Move.w	#$0000,Bltdmod(a5)		; Skip No Bytes
	Move.l	ScreenPtr,A1
	Move.l	a1,Bltdpth(A5)			; Set Dest
	Move.l	#-1,Bltafwm(a5)			; Use All Bits
	Move.w	#200*64+40,Bltsize(a5)		; Fill Half Screen
	Movem.l	a0-a6/d0-d7,-(a7)		; Save The Regs
	Movem.l	RegFiller(pc),a1-a6/d0-d7	; Clear The Regs
	Move.l	ScreenPtr,A0
	Add.l	#32000,A0

; 16000/56 = 285.14 Rnd Up = 286
	Rept	286				; Rept it 58 times
	Movem.l	a1-a6/d0-d7,-(a0)		; Clear 56 Butes
	Endr					; End repeat
	Movem.l	(a7)+,a0-a6/d0-d7		; Restor Regs
	Rts
RegFiller
	Dcb.l	16,0
	Rts
	
*****************************************************************************

DoBobs
	Blitwait
	Move.w	#32,Bltdmod(a5)
	Move.w	#32,Bltcmod(a5)
	Move.w	#-2,Bltamod(a5)
	Move.w	#-2,Bltbmod(a5)
	Move.l	#$ffff0000,Bltafwm(a5)
	Move.l	#BobsMsk,Bltapth(a5)
	Move.l	#Bobs,Bltbpth(a5)
	Move.w	#320*64+4,d6
	Lea	BobForm1+4,A0
	Lea	Shifts,A1
	Lea	Xsin,A2
	Lea	Bltcon0(a5),A3
	Lea	Bltcpth(a5),A4
	Lea	Bltsize(a5),A6
	Lea	Bltdpth(a5),a5
	Move.l	ScreenPtr,d7
	Move.l	#$200,d2
	Rept	5	
	Move.l	d7,d1
	Move.w	(a0)+,D0			; X
	Move.w	(a2,d0),d0
	Add.w	(a1,d0),d1
	Move.l	2(a1,d0),(A3)
	Move.w	(a0)+,D0			; Y
	Add.w	D2,D0
	Add.w	(A2,d0),d1			; Add y
	Move.l	d1,(a4)
	Move.l	d1,(a5)
	Move.w	d6,(a6)
	Endr
	Lea	Custom,a5
	Rts
	
StShift	Macro
	Dc.w	\1,$0fca,$0000
	Dc.w	\1,$1fca,$1000
	Dc.w	\1,$2fca,$2000
	Dc.w	\1,$3fca,$3000
	Dc.w	\1,$4fca,$4000
	Dc.w	\1,$5fca,$5000
	Dc.w	\1,$6fca,$6000
	Dc.w	\1,$7fca,$7000
	Dc.w	\1,$8fca,$8000
	Dc.w	\1,$9fca,$9000
	Dc.w	\1,$afca,$a000
	Dc.w	\1,$bfca,$b000
	Dc.w	\1,$cfca,$c000
	Dc.w	\1,$dfca,$d000
	Dc.w	\1,$efca,$e000
	Dc.w	\1,$ffca,$f000
	Endm
Shifts
	StShift	0
	StShift	2
	StShift	4
	StShift	6
	StShift	8
	StShift	10
	StShift	12
	StShift	14
	StShift	16
	StShift	18
	StShift	20
	StShift	22
	StShift	24
	StShift	26
	StShift	28
	StShift	30
	StShift	32
	StShift	34
	StShift	36
	StShift	38
	StShift	40
	
*****************************************************************************

DoCop
	Lea	custom,a5
	Blitwait	
	Move.l	#Col1,Bltapth(a5)
	Move.l	#$09f00000,Bltcon0(a5)
	Move.l	#-1,Bltafwm(A5)
	Move.w	#0,Bltamod(A5)
	Move.w	#42,Bltdmod(A5)
	Move.w	#72*64+1,D3
	Move.l	#CopStart+6+(6*44),A2
	Lea	BobForm1+4,a0
	Lea	YCopSin,a1
	Move.l	#4,D1

	Rept	5
	Move.w	2(A0),d0
	Move.w	(a1,d0),d0
	Add.w	d0,a2
	Move.l	A2,Bltdpth(a5)
	Move.w	d3,Bltsize(a5)
	Sub.w	d0,a2
	Add.w	D1,A2

	Move.w	2(A0),d0
	Move.w	(a1,d0),d0
	Add.w	d0,a2
	Move.l	A2,Bltdpth(a5)
	Move.w	d3,Bltsize(a5)
	Sub.w	d0,a2
	Add.w	D1,A2

	Add.w	D1,A0
	Endr

	Rts

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

; Up Date Shit

UpDate
	Lea	BobForm1,A0
	Move.l	(a0)+,d7
	Move.l	#$01fe01fe,D6
	Rept	5
	Add.l	d7,(a0)
	And.l	d6,(a0)+
	Endr	
	Rts

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

; All copper list after here

Copper

	Spr_Off					; Switch sprites off
	Cmove	$2c81,Diwstrt
	Cmove	$2cc1,Diwstop
	Cmove	$0038,Ddfstrt
	Cmove	$00d0,Ddfstop
	Cmove	$0078,Bpl1mod			
	Cmove	$0078,Bpl2mod
	dc.w	$0180,$0000,$0182,$0fff,$0184,$0ddd,$0186,$0ccc
	dc.w	$0188,$0bbb,$018a,$0999,$018c,$0888,$018e,$0666
	dc.w	$0190,$0555,$0192,$0333,$0194,$0222,$0196,$0540
	dc.w	$0198,$0750,$019a,$0960,$019c,$0b70,$019e,$0d90
	Cmove	$0007,Bpl1pth
Cop1l
	Cmove	$0000,Bpl1ptl
	Cmove	$0007,Bpl2pth
Cop2l
	Cmove	$0028,Bpl2ptl
	Cmove	$0007,Bpl3pth
Cop3l
	Cmove	$0050,Bpl3ptl
	Cmove	$0007,Bpl4pth
Cop4l
	Cmove	$0078,Bpl4ptl
	Cmove	$4200,Bplcon0
	Cwait	40,0
	Cmove	$000f,Color00
	Cwait	41,0
	Cmove	$0000,Color00
A	Set	42
CopStart
	Rept	203
	Cwait	a,0
	Cmove	$000,Color01		
	Cmove	$000,Color02	
	
	Cmove	$000,Color03
	Cmove	$000,Color04		

	Cmove	$000,Color05		
	Cmove	$000,Color06	

	Cmove	$000,Color07
	Cmove	$000,Color08

	Cmove	$000,Color09
	Cmove	$000,Color10
A	Set	a+1
	Endr		

	Cwait	245,0
	Cmove	$0200,Bplcon0
	Cmove	$000f,Color00
	Cwait	246,0
	Cmove	$0000,Color00
	Endcop

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

ScreenPtr
	dc.l	$70000
	
*****************************************************************************

Col1
SetCol	Macro
	Dc.w	$0000&\1,$0000&\1,$0111&\1,$0111&\1,$0222&\1,$0222&\1,$0333&\1,$0333&\1
	Dc.w	$0444&\1,$0444&\1,$0555&\1,$0555&\1,$0666&\1,$0666&\1,$0777&\1,$0777&\1
	Dc.w	$0888&\1,$0888&\1,$0999&\1,$0999&\1,$0aaa&\1,$0aaa&\1,$0bbb&\1,$0bbb&\1
	Dc.w	$0ccc&\1,$0ccc&\1,$0ddd&\1,$0ddd&\1,$0eee&\1,$0eee&\1,$0fff&\1,$0fff&\1
	Dc.w	$0fff&\1,$0fff&\1,$0fff&\1,$0fff&\1,$0fff&\1,$0fff&\1,$0fff&\1,$0fff&\1
	Dc.w	$0fff&\1,$0fff&\1,$0eee&\1,$0eee&\1,$0ddd&\1,$0ddd&\1,$0ccc&\1,$0ccc&\1
	Dc.w	$0bbb&\1,$0bbb&\1,$0aaa&\1,$0aaa&\1,$0999&\1,$0999&\1,$0888&\1,$0888&\1
	Dc.w	$0777&\1,$0777&\1,$0666&\1,$0666&\1,$0555&\1,$0555&\1,$0444&\1,$0444&\1
	Dc.w	$0333&\1,$0333&\1,$0222&\1,$0222&\1,$0111&\1,$0111&\1,$0000&\1,$0000&\1
	Endm
	SetCol	$fff
	SetCol	$f00
	
	SetCol	$fff
	SetCol	$0f0

	SetCol	$fff
	SetCol	$00f

	SetCol	$fff
	SetCol	$f0f

	SetCol	$fff
	SetCol	$0ff

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

BobForm1
	Dc.w	2,2				; Xupdate, Yupdate
	Dc.w	000,250				; X,Y
	Dc.w	050,200				; X,Y
	Dc.w	100,150				; X,Y
	Dc.w	150,100				; X,Y
	Dc.w	200,050				; X,Y

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

XSin
	dc.w	270*6,270*6,270*6,270*6,269*6,269*6,269*6,268*6
	dc.w	267*6,267*6,266*6,265*6,264*6,263*6,262*6,261*6
	dc.w	260*6,258*6,257*6,256*6,254*6,252*6,251*6,249*6
	dc.w	247*6,245*6,243*6,241*6,239*6,237*6,235*6,233*6
	dc.w	230*6,228*6,226*6,223*6,221*6,218*6,215*6,213*6
	dc.w	210*6,207*6,204*6,202*6,199*6,196*6,193*6,190*6
	dc.w	187*6,184*6,180*6,177*6,174*6,171*6,168*6,165*6
	dc.w	161*6,158*6,155*6,152*6,148*6,145*6,142*6,138*6
	dc.w	135*6,132*6,128*6,125*6,122*6,118*6,115*6,112*6
	dc.w	109*6,105*6,102*6,99*6,96*6,93*6,90*6,86*6
	dc.w	83*6,80*6,77*6,74*6,71*6,68*6,66*6,63*6
	dc.w	60*6,57*6,55*6,52*6,49*6,47*6,44*6,42*6
	dc.w	40*6,37*6,35*6,33*6,31*6,29*6,27*6,25*6
	dc.w	23*6,21*6,19*6,18*6,16*6,14*6,13*6,12*6
	dc.w	10*6,9*6,8*6,7*6,6*6,5*6,4*6,3*6
	dc.w	3*6,2*6,1*6,1*6,1*6,0*6,0*6,0*6
	dc.w	0*6,0*6,0*6,0*6,1*6,1*6,1*6,2*6
	dc.w	3*6,3*6,4*6,5*6,6*6,7*6,8*6,9*6
	dc.w	10*6,12*6,13*6,14*6,16*6,18*6,19*6,21*6
	dc.w	23*6,25*6,27*6,29*6,31*6,33*6,35*6,37*6
	dc.w	40*6,42*6,44*6,47*6,49*6,52*6,55*6,57*6
	dc.w	60*6,63*6,66*6,68*6,71*6,74*6,77*6,80*6
	dc.w	83*6,86*6,90*6,93*6,96*6,99*6,102*6,105*6
	dc.w	109*6,112*6,115*6,118*6,122*6,125*6,128*6,132*6
	dc.w	135*6,138*6,142*6,145*6,148*6,152*6,155*6,158*6
	dc.w	161*6,165*6,168*6,171*6,174*6,177*6,180*6,184*6
	dc.w	187*6,190*6,193*6,196*6,199*6,202*6,204*6,207*6
	dc.w	210*6,213*6,215*6,218*6,221*6,223*6,226*6,228*6
	dc.w	230*6,233*6,235*6,237*6,239*6,241*6,243*6,245*6
	dc.w	247*6,249*6,251*6,252*6,254*6,256*6,257*6,258*6
	dc.w	260*6,261*6,262*6,263*6,264*6,265*6,266*6,267*6
	dc.w	267*6,268*6,269*6,269*6,269*6,270*6,270*6,270*6
YSin
	dc.w	120*160,120*160,120*160,120*160,120*160,120*160,119*160,119*160
	dc.w	119*160,119*160,118*160,118*160,117*160,117*160,116*160,116*160
	dc.w	115*160,115*160,114*160,114*160,113*160,112*160,111*160,111*160
	dc.w	110*160,109*160,108*160,107*160,106*160,105*160,104*160,103*160
	dc.w	102*160,101*160,100*160,99*160,98*160,97*160,96*160,95*160
	dc.w	93*160,92*160,91*160,90*160,88*160,87*160,86*160,84*160
	dc.w	83*160,82*160,80*160,79*160,77*160,76*160,75*160,73*160
	dc.w	72*160,70*160,69*160,67*160,66*160,64*160,63*160,61*160
	dc.w	60*160,59*160,57*160,56*160,54*160,53*160,51*160,50*160
	dc.w	48*160,47*160,45*160,44*160,43*160,41*160,40*160,38*160
	dc.w	37*160,36*160,34*160,33*160,32*160,30*160,29*160,28*160
	dc.w	27*160,25*160,24*160,23*160,22*160,21*160,20*160,19*160
	dc.w	18*160,17*160,16*160,15*160,14*160,13*160,12*160,11*160
	dc.w	10*160,9*160,9*160,8*160,7*160,6*160,6*160,5*160
	dc.w	5*160,4*160,4*160,3*160,3*160,2*160,2*160,1*160
	dc.w	1*160,1*160,1*160,0*160,0*160,0*160,0*160,0*160
	dc.w	0*160,0*160,0*160,0*160,0*160,0*160,1*160,1*160
	dc.w	1*160,1*160,2*160,2*160,3*160,3*160,4*160,4*160
	dc.w	5*160,5*160,6*160,6*160,7*160,8*160,9*160,9*160
	dc.w	10*160,11*160,12*160,13*160,14*160,15*160,16*160,17*160
	dc.w	18*160,19*160,20*160,21*160,22*160,23*160,24*160,25*160
	dc.w	27*160,28*160,29*160,30*160,32*160,33*160,34*160,36*160
	dc.w	37*160,38*160,40*160,41*160,43*160,44*160,45*160,47*160
	dc.w	48*160,50*160,51*160,53*160,54*160,56*160,57*160,59*160
	dc.w	60*160,61*160,63*160,64*160,66*160,67*160,69*160,70*160
	dc.w	72*160,73*160,75*160,76*160,77*160,79*160,80*160,82*160
	dc.w	83*160,84*160,86*160,87*160,88*160,90*160,91*160,92*160
	dc.w	93*160,95*160,96*160,97*160,98*160,99*160,100*160,101*160
	dc.w	102*160,103*160,104*160,105*160,106*160,107*160,108*160,109*160
	dc.w	110*160,111*160,111*160,112*160,113*160,114*160,114*160,115*160
	dc.w	115*160,116*160,116*160,117*160,117*160,118*160,118*160,119*160
	dc.w	119*160,119*160,119*160,120*160,120*160,120*160,120*160,120*160
YCopSin
	dc.w	120*44,120*44,120*44,120*44,120*44,120*44,119*44,119*44
	dc.w	119*44,119*44,118*44,118*44,117*44,117*44,116*44,116*44
	dc.w	115*44,115*44,114*44,114*44,113*44,112*44,111*44,111*44
	dc.w	110*44,109*44,108*44,107*44,106*44,105*44,104*44,103*44
	dc.w	102*44,101*44,100*44,99*44,98*44,97*44,96*44,95*44
	dc.w	93*44,92*44,91*44,90*44,88*44,87*44,86*44,84*44
	dc.w	83*44,82*44,80*44,79*44,77*44,76*44,75*44,73*44
	dc.w	72*44,70*44,69*44,67*44,66*44,64*44,63*44,61*44
	dc.w	60*44,59*44,57*44,56*44,54*44,53*44,51*44,50*44
	dc.w	48*44,47*44,45*44,44*44,43*44,41*44,40*44,38*44
	dc.w	37*44,36*44,34*44,33*44,32*44,30*44,29*44,28*44
	dc.w	27*44,25*44,24*44,23*44,22*44,21*44,20*44,19*44
	dc.w	18*44,17*44,16*44,15*44,14*44,13*44,12*44,11*44
	dc.w	10*44,9*44,9*44,8*44,7*44,6*44,6*44,5*44
	dc.w	5*44,4*44,4*44,3*44,3*44,2*44,2*44,1*44
	dc.w	1*44,1*44,1*44,0*44,0*44,0*44,0*44,0*44
	dc.w	0*44,0*44,0*44,0*44,0*44,0*44,1*44,1*44
	dc.w	1*44,1*44,2*44,2*44,3*44,3*44,4*44,4*44
	dc.w	5*44,5*44,6*44,6*44,7*44,8*44,9*44,9*44
	dc.w	10*44,11*44,12*44,13*44,14*44,15*44,16*44,17*44
	dc.w	18*44,19*44,20*44,21*44,22*44,23*44,24*44,25*44
	dc.w	27*44,28*44,29*44,30*44,32*44,33*44,34*44,36*44
	dc.w	37*44,38*44,40*44,41*44,43*44,44*44,45*44,47*44
	dc.w	48*44,50*44,51*44,53*44,54*44,56*44,57*44,59*44
	dc.w	60*44,61*44,63*44,64*44,66*44,67*44,69*44,70*44
	dc.w	72*44,73*44,75*44,76*44,77*44,79*44,80*44,82*44
	dc.w	83*44,84*44,86*44,87*44,88*44,90*44,91*44,92*44
	dc.w	93*44,95*44,96*44,97*44,98*44,99*44,100*44,101*44
	dc.w	102*44,103*44,104*44,105*44,106*44,107*44,108*44,109*44
	dc.w	110*44,111*44,111*44,112*44,113*44,114*44,114*44,115*44
	dc.w	115*44,116*44,116*44,117*44,117*44,118*44,118*44,119*44
	dc.w	119*44,119*44,119*44,120*44,120*44,120*44,120*44,120*44
	
*****************************************************************************

Bobs
	Incbin	Gfx/BigBobs.Bm
BobsMsk
	Incbin	Gfx/BigBobsMsk.Bm
	
*****************************************************************************

