*****************************************************************************
*                                                                           *
*    	   		      Big Barrel Scroller                           *
*                                                                           *
*  Start Date : 10/3/91                                                     *
* Last Update : 10/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	#-1,Bltafwm(a5)
	Move.w	#0,Bltdmod(a5)
	Move.l	#$01000000,Bltcon0(a5)
	Move.w	#256*64+26,Bltsize(a5)

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

	Blitwait
	
*****************************************************************************

; Main routine here

Mouse
	Pos					; Get in sync with vbi
	Bsr	Blitchar
	Tstmice	Mouse				; Pressed the mouse
	
*****************************************************************************

; Return operating system and go back to user

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

Blitchar
	Tst.l	ScrollCnt
	Bne	ScrollOn
	Moveq	#0,D0
	Move.l	ScrollPtr,A0
	Move.b	(a0)+,D0
	Cmp.b	#-1,D0
	Bne.s	Scrollend
	Move.l	#Scroll,A0
	Move.b	(a0)+,d0
Scrollend
	Move.l	A0,ScrollPtr
	Sub.b	#32,D0
	Lea	CharTab,A0
	Add.b	d0,d0
	Move.w	(a0,d0),d0
	Add.l	#Font,D0
	Blitwait
	Move.l	d0,Bltapth(a5)
	Move.l	#$70000+(52*80),Bltdpth(A5)
	Move.l	#-1,Bltafwm(a5)
	Move.w	#36,BltaMOD(A5)			
	Move.w	#46,BltdMOD(A5)
	Move.l	#$09f00000,Bltcon0(a5)
	Move.w	#80*64+3,Bltsize(a5)
	Move.l	#48,ScrollCnt
ScrollOn		
	Sub.l	#1,ScrollCnt
	Move.l	#-1,Bltafwm(a5)
	Move.w	#0,BltaMOD(A5)			
	Move.w	#0,BltdMOD(A5)
	Move.l	#$f9f00000,Bltcon0(a5)
	Move.l	#$70002,Bltapth(A5)
	Move.l	#$70000,Bltdpth(A5)
	Move.w	#170*64+26,Bltsize(a5)
	
	Move.w	#6,Bltamod(a5)
	Move.w	#6,Bltdmod(a5)
	Move.l	#$09f00000,Bltcon0(a5)
	Move.l	#$7003a,Bltapth(A5)
	Move.l	#$70006,Bltdpth(A5)
	Move.w	#170*64+23,Bltsize(a5)
	Rts
	
*****************************************************************************

ScrollPtr
	Dc.l	Scroll
Scroll
	Dc.b	"MELT DOWN ",255
 Even
ScrollCnt
	Dc.l	0
	
*****************************************************************************

Chartab
	Dc.w	06+(3402*5),06+(3402*0),12+(3402*0),18+(3402*0) ;....	
	Dc.w	24+(3402*0),30+(3402*0),36+(3402*0)		;...
	Dc.w	00+(3402*1),18+(3402*5),24+(3402*5),18+(3402*1)	;`()*
	Dc.w	24+(3402*1),30+(3402*1),06+(3402*5)		;+,-
	Dc.w	12+(3402*5),30+(3402*5),30+(3402*3),36+(3402*3)	;./01
	Dc.w	00+(3402*4),06+(3402*4),12+(3402*4)		;234
	Dc.w	18+(3402*4),24+(3402*4),30+(3402*4),36+(3402*4)	;5678
	Dc.w	00+(3402*5),36+(3402*5),36+(3402*3)		;9:;
	Dc.w	00+(3402*4),06+(3402*4),12+(3402*4),18+(3402*4)	;<=>?
	Dc.w	24+(3402*4),00+(3402*0),06+(3402*0)		;@AB
	Dc.w	12+(3402*0),18+(3402*0),24+(3402*0),30+(3402*0)	;CDEF
	Dc.w	36+(3402*0),00+(3402*1),06+(3402*1)		;GHI
	Dc.w	12+(3402*1),18+(3402*1),24+(3402*1),30+(3402*1)	;JKLM
	Dc.w	36+(3402*1),00+(3402*2),06+(3402*2)		;NOP
	Dc.w	12+(3402*2),18+(3402*2),24+(3402*2),30+(3402*2)	;QRST
	Dc.w	36+(3402*2),00+(3402*3),06+(3402*3)		;UVW
	Dc.w	12+(3402*3),18+(3402*3),24+(3402*3),00+(3402*0)	;XYZ[
	Dc.w	00+(3402*0),00+(3402*0),00+(3402*0)		;\]

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

; All copper list after here

Copper

	Spr_Off					; Switch sprites off
	Cmove	$2c71,Diwstrt
	Cmove	$2cd1,Diwstop
	Cmove	$0028,Ddfstrt
	Cmove	$00d8,Ddfstop
	Cmove	$0006,Bpl1mod			
	Cmove	$0006,Bpl2mod
	Cmove	$0000,Color00
	Cwait	48,0
	Cmove	$0fff,Color01
	Cmove	$1200,Bplcon0 
	Cmove	$0007,Bpl1pth
	Cmove	$0006,Bpl1ptl
	Endcop

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

Font
	Incbin	Gfx/BigFnt.bm
	
*****************************************************************************
	
