*****************************************************************************
*                                                                           *
* 			   Vertical Razta Routines			    *
*                                                                           *
*  Start Date : 24/3/91                                                     *
* Last Update : 24/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)
	
*****************************************************************************

; Main routine here

Mouse
	Move.l	$dff004,d2
	And.l	#$1ff00,d2	
	Cmp.l	#$100,d2
	Bne.s	Mouse

	Lea	$70000,A1
	Move.l	#120/4,d7
ShagA
	Clr.l	(a1)+
	Dbf	D7,Shaga

	Bsr	BobLoop
	Tstmice	Mouse				; Pressed the mouse
	
*****************************************************************************

; Return operating system and go back to user

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

BobLoop
	Move.l	X1SpdInc,D0
	Add.l	D0,X1pt
	And.l	#$03fe03fe,X1pt
	Move.w	#-2,Bltamod(a5)
	Move.w	#-2,Bltbmod(a5)
	Move.w	#36,Bltcmod(a5)
	Move.w	#36,Bltdmod(a5)
	Move.l	#$ffff0000,Bltafwm(a5)
	Move.l	#$70000,Bltcpth(a5)
	Move.l	#$70000,Bltdpth(a5)
	Lea	XSin,A0
	Lea	XSin,A3
	Add.w	X1pt,A0
	Add.w	X2pt,A3
	Lea	Bob,A1
	Lea	Mask,A2
	Move.l	#128,D7
	Move.w	#0,D1
	Move.w	#0,D2
	Move.w	X1inc,D3
	Move.w	X2inc,D4
	Move.l	#40,D5
BlitLoop
	Move.b	$dff006,D6
	Cmp.b	D5,D6
	Bne.s	BlitLoop
	Add.w	#2,D5
	Moveq	#0,d0
	Move.w	(a0,D1),d0	
	Add.w	(a3,D2),d0	
	Add.w	D3,D1
	Add.w	D4,D2
	Move.l	A2,Bltapth(a5)
	Move.l	A1,Bltbpth(a5)
	Ror.l	#4,D0
	Add.w	D0,D0
	Move.w	D0,Bltcptl(a5)
	Move.w	D0,Bltdptl(a5)
	Swap	D0
	Move.w	D0,Bltcon1(a5)
	Or.w	#$0fca,D0
	Move.w	D0,Bltcon0(a5)
	Move.w	#3*64+2,Bltsize(a5)
	Dbf	D7,BlitLoop
	Rts
	
*****************************************************************************

; All copper list after here

Copper

	Spr_Off					; Switch sprites off
	Cmove	$2881,Diwstrt
	Cmove	$2cc1,Diwstop
	Cmove	$0038,Ddfstrt
	Cmove	$00d0,Ddfstop
	Cmove	-40,Bpl1mod			
	Cmove	-40,Bpl2mod			
	Cmove	$0000,Color00
	Cmove	$0222,Color01
	Cmove	$0444,Color02
	Cmove	$0666,Color03
	Cmove	$0888,Color04
	Cmove	$0aaa,Color05
	Cmove	$0ccc,Color06
	Cmove	$0fff,Color07
	Cmove	$0007,Bpl1pth
	Cmove	$0000,Bpl1ptl
	Cmove	$0007,Bpl2pth
	Cmove	$0028,Bpl2ptl
	Cmove	$0007,Bpl3pth
	Cmove	$0050,Bpl3ptl
	Cmove	$3200,Bplcon0
	Endcop
	
*****************************************************************************

XSin
	Rept	5
	dc.w	150,150,150,150,150,150,150,150
	dc.w	150,150,149,149,149,149,149,149
	dc.w	149,148,148,148,148,148,147,147
	dc.w	147,146,146,146,146,145,145,145
	dc.w	144,144,144,143,143,142,142,142
	dc.w	141,141,140,140,139,139,138,138
	dc.w	137,137,136,136,135,135,134,134
	dc.w	133,132,132,131,131,130,129,129
	dc.w	128,127,127,126,125,125,124,123
	dc.w	123,122,121,120,120,119,118,117
	dc.w	117,116,115,114,114,113,112,111
	dc.w	110,110,109,108,107,106,105,105
	dc.w	104,103,102,101,100,99,99,98
	dc.w	97,96,95,94,93,92,91,91
	dc.w	90,89,88,87,86,85,84,83
	dc.w	82,81,81,80,79,78,77,76
	dc.w	75,74,73,72,71,70,69,69
	dc.w	68,67,66,65,64,63,62,61
	dc.w	60,59,59,58,57,56,55,54
	dc.w	53,52,51,51,50,49,48,47
	dc.w	46,45,45,44,43,42,41,40
	dc.w	40,39,38,37,36,36,35,34
	dc.w	33,33,32,31,30,30,29,28
	dc.w	27,27,26,25,25,24,23,23
	dc.w	22,21,21,20,19,19,18,18
	dc.w	17,16,16,15,15,14,14,13
	dc.w	13,12,12,11,11,10,10,9
	dc.w	9,8,8,8,7,7,6,6
	dc.w	6,5,5,5,4,4,4,4
	dc.w	3,3,3,2,2,2,2,2
	dc.w	1,1,1,1,1,1,1,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,1,1,1,1,1,1
	dc.w	1,2,2,2,2,2,3,3
	dc.w	3,4,4,4,4,5,5,5
	dc.w	6,6,6,7,7,8,8,8
	dc.w	9,9,10,10,11,11,12,12
	dc.w	13,13,14,14,15,15,16,16
	dc.w	17,18,18,19,19,20,21,21
	dc.w	22,23,23,24,25,25,26,27
	dc.w	27,28,29,30,30,31,32,33
	dc.w	33,34,35,36,36,37,38,39
	dc.w	40,40,41,42,43,44,45,45
	dc.w	46,47,48,49,50,51,51,52
	dc.w	53,54,55,56,57,58,59,59
	dc.w	60,61,62,63,64,65,66,67
	dc.w	68,69,69,70,71,72,73,74
	dc.w	75,76,77,78,79,80,81,81
	dc.w	82,83,84,85,86,87,88,89
	dc.w	90,91,91,92,93,94,95,96
	dc.w	97,98,99,99,100,101,102,103
	dc.w	104,105,105,106,107,108,109,110
	dc.w	110,111,112,113,114,114,115,116
	dc.w	117,117,118,119,120,120,121,122
	dc.w	123,123,124,125,125,126,127,127
	dc.w	128,129,129,130,131,131,132,132
	dc.w	133,134,134,135,135,136,136,137
	dc.w	137,138,138,139,139,140,140,141
	dc.w	141,142,142,142,143,143,144,144
	dc.w	144,145,145,145,146,146,146,146
	dc.w	147,147,147,148,148,148,148,148
	dc.w	149,149,149,149,149,149,149,150
	dc.w	150,150,150,150,150,150,150,150
	Endr
	
*****************************************************************************

X1Inc
	Dc.w	10
X2Inc
	Dc.w	8
X1SpdInc	
	Dc.w	8
X2SpdInc	
	Dc.w	0 
X1pt
	Dc.w	0	
X2pt
	Dc.w	0
		
*****************************************************************************

Bob
	Dc.w	%1010101111010101
	DC.w	%0110011111100110
	Dc.w	%0001111111111000
Mask
	Dc.w	%1111111111111111
	Dc.w	%1111111111111111
	Dc.w	%1111111111111111

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

