	SECTION	chipmemory,DATA_C
							;BY BLAINE EVANS
							;1 ERITH WAY
							;PONTYBODKIN
							;NR MOLD
							;CLWYD
							;CH7 4TR
							;TEL O352-771673


	opt	c-,d+

	move.l	4.w,a6			;FIND EXEC BASE
	lea	gfxlib,a1		;LOAD GRAPHICS LIBRARY IN A1
	moveq	#$00,d0			;VERSION 0
	jsr	-552(a6)		;OPEN LIBRARY
	move.l	d0,_gfxbase		;STORE D0 (GFX ADDRESS )
	beq	nolib_exit		;ELSE EXIT
	lea	$dff000,a6
	bsr	Foreground_addresses	;BRANCH TO FOREGROUND ADDRESSES
	move.l	_gfxbase,a0		;LOAD ADDRESS OF GRAPHICS LIB IN A0
	move.l	50(a0),oldcop		;STORE CURRENT COPPER,ETC TO RETRIEVE LATER
S
	move.l	#newcop,50(a0)		;POINT TO OUR COPPERLIST
	bsr	Fade_Colors_Init	;INITIATE REGISTERS

wait					;WAIT LOOP

	cmp.b	#255,$dff006		;VERTICAL BLANKING GAP 
	bne.s	wait			;
;	move.w	#$fff,$180(a6)		;REMOVE TO MEASURE RASTER TIME
	bsr	Fade_Colors
;	move.w	#$000,$180(a6)		;REMOVE TO MEASURE RASTER TIME
	Btst	#6,$bfe001		;QUIT LEFT MOUSE PRESSED
	bne.s	wait
ended					;ELSE LOOP TO WAIT
	move.l	_gfxbase,a0		;LOAD GRAPHICS LIB ADDRESS IN A0
	move.l	oldcop,50(a0)		;RESTORE OLD COPPER TO RETURN TO EDITTER
nomem_exit	
	move.l	4.w,a6			;FIND EXEC BASE
	move.l	_gfxbase,a1		;LOAD GRAPHICS BASE IN A1
	jsr	-414(a6)		;CLOSE LIBRARY
nolib_exit
	rts				;RETURN TO EDITER
Foreground_addresses			;START OF FOREGROUND DATA
	move.l	#Foreground,d0
	move.w	d0,Bpl0ptl		;LOW WORD IN BIT PLANE 0 LOW
	swap	d0				
	move.w	d0,Bpl0pth		;HIGH WORD IN BIT PLANE 0 HIGH
	swap	d0
	add.l	#200*40,d0
	move.w	d0,Bpl1ptl		;LOW WORD IN BIT PLANE 1 LOW
	swap	d0				
	move.w	d0,Bpl1pth		;HIGH WORD IN BIT PLANE 1 HIGH	
	swap	d0
	add.l	#200*40,d0
	move.w	d0,Bpl2ptl		;LOW WORD IN BIT PLANE 2 LOW
	swap	d0				
	move.w	d0,Bpl2pth		;HIGH WORD IN BIT PLANE 2 HIGH
	swap	d0
	rts
**********************************************************
* This will fade in colors 01,02,03,04,05,06,07 as you requested.
* Just change values in 'Fade_C'to your requirements.
* I'm sure you'll increase the number of colours fading yourself
* because it gets a bit boring typing in inc of 1 in 'Fade_C'.
* Blaine
*********************************************************

Fade_Colors_Init			;Initiate registers with values
	move.w	#0,Color_Delay
	lea	Colors,a2
	lea	6(a2),a2		;get to color01
	move.l	a2,Fade_Store
	lea	Fade_C,a3		;colors to fade in 
	move.l	a3,Color_Store
	rts
Fade_Colors				;lets Fade
	add.w	#1,Color_Delay		;only execute every 25th frame
	cmp.w	#25,Color_Delay		;gives gradual fade
	beq	Yes_Fade
	rts
Yes_Fade
	move.w	#0,Color_Delay		;clear delay counter
	cmp.w	#$0000,(a3)		;is it black yet
	beq	Reset			;yes reset a3 back to start of list
	move.l	Fade_Store,a2
	move.l	Color_Store,a3
	move.w	(a3)+,(a2)		;color01
	move.w	(a3)+,4(a2)		;color02
	move.w	(a3)+,8(a2)		;color03
	move.w	(a3)+,12(a2)		;color04
	move.w	(a3)+,16(a2)		;color05
	move.w	(a3)+,20(a2)		;color06
	move.w	(a3)+,24(a2)		;color07
	move.l	a3,Color_Store		;store where we are up to 
	rts
Reset
	lea	Fade_C,a3		;re-load fade colors
	move.l	a3,Color_Store
	rts
************************************************************

gfxlib	dc.b	"graphics.library",0	
	even
_gfxbase	dc.l	0		;LONG WORD TO STORE GFX ADDRESS
oldcop		dc.l	0		;OLD COPPERLIST ADDRESS
Fade_Store	dc.l	0
Color_Store	dc.l	0
Color_Delay	dc.w	0
         EVEN
	even
;	SECTION		chipmemory,data_c	

newcop
	dc.w	$0100,%0011001000000000		;3 PLANES 
	dc.w	$0102
scroll0	dc.w	$0000				;SCROLL VALUE
	dc.w	$0104,%0000000000011011		;PRIORITIES
	dc.w	$0108,$0000,$010a,$0000		;MODULAS
	dc.w	$0092,$0038,$0094,$00d0		;200*40 SCREEN
	dc.w	$008e,$3781,$0090,$fec1		;VISIBLE AREA
						
planes						;PLANE CONTROL WORDS
	dc.w	$00e0
Bpl0pth	dc.w	$0000
	dc.w	$00e2
Bpl0ptl	dc.w	$0000		
	dc.w	$00e4
Bpl1pth	dc.w	$0000
	dc.w	$00e6
Bpl1ptl	dc.w	$0000
	dc.w	$00e8
Bpl2pth	dc.w	$0000
	dc.w	$00ea
Bpl2ptl	dc.w	$0000
	dc.w	$00ec
Bpl3pth	dc.w	$0000
	dc.w	$00ee
Bpl3ptl	dc.w	$0000	
	dc.w	$00f0
Bpl4pth	dc.w	$0000
	dc.w	$00f2
Bpl4ptl	dc.w	$0000
	dc.w	$00f4
Bpl5pth	dc.w	$0000
	dc.w	$00f6
Bpl5ptl	dc.w	$0000

sprites						;SPRITES CONTROL WORDS
	dc.w	$0120
Spl0pth	dc.w	$0000,$0122
Spl0ptl	dc.w	$0000,$0124
Spl1pth	dc.w	$0000,$0126
Spl1ptl	dc.w	$0000,$0128
Spl2pth	dc.w	$0000,$012a
Spl2ptl	dc.w	$0000,$012c
Spl3pth	dc.w	$0000,$012e
Spl3ptl	dc.w	$0000,$0130
Spl4pth	dc.w	$0000,$0132
Spl4ptl	dc.w	$0000,$0134
Spl5pth	dc.w	$0000,$0136
Spl5ptl	dc.w	$0000,$0138
Spl6pth	dc.w	$0000,$013a
Spl6ptl	dc.w	$0000,$013c
Spl7pth	dc.w	$0000,$013e
Spl7ptl	dc.w	$0000

Colors
	dc.w	$0180,$0000,$0182,$0000		;COLORS PLAY 1
	dc.w	$0184,$0000,$0186,$0000		;colors 1-7 set to $0000
	dc.w	$0188,$0000,$018a,$0000
	dc.w	$018c,$0000,$018e,$0000

	dc.w	$0190,$0000,$0192,$0283		;COLORS PLAY 2
	dc.w	$0194,$08f4,$0196,$0095
	dc.w	$0198,$0243,$019a,$00ff
	dc.w	$019c,$0ff0,$019e,$0fa0

	dc.w	$01a0,$0000,$01a2,$0fff		;SPRITE COLORS
	dc.w	$01a4,$0f00,$01a6,$0b00
	dc.w	$01a8,$0600,$01aa,$0F40
	dc.w	$01ac,$0F80,$01ae,$0Fa0
	dc.w	$01b0,$0Ff0,$01b2,$000f
	dc.w	$01b4,$004f,$01b6,$008f
	dc.w	$01b8,$00ff,$01ba,$00f0
	dc.w	$01bc,$0283,$01be,$0f0f

	dc.w	$ffff,$fffe			;END OF COPPERLIST
Foreground		incbin	source:bitmaps/Fade_Colors.raw
***** note: 8 colours fading.Therefore 8 values for each frame  ******
*	COLOR	  01	02    03    04    05    06    07    *
Fade_C
	DC.W	$0111,$0001,$0100,$0101,$0011,$0010,$0110
	DC.W	$0222,$0002,$0200,$0202,$0022,$0020,$0220
	DC.W	$0333,$0003,$0300,$0303,$0033,$0030,$0330
	DC.W	$0444,$0004,$0400,$0404,$0044,$0040,$0440
	DC.W	$0555,$0005,$0500,$0505,$0055,$0050,$0550
	DC.W	$0666,$0006,$0600,$0606,$0066,$0060,$0660
	DC.W	$0777,$0007,$0700,$0707,$0077,$0070,$0770
	DC.W	$0888,$0008,$0800,$0808,$0088,$0080,$0880
	DC.W	$0999,$0009,$0900,$0909,$0099,$0090,$0990
	DC.W	$0aaa,$000a,$0a00,$0a0a,$00aa,$00a0,$0aa0
	DC.W	$0bbb,$000b,$0b00,$0b0b,$00bb,$00b0,$0bb0
	DC.W	$0ccc,$000c,$0c00,$0c0c,$00cc,$00c0,$0cc0
	DC.W	$0ddd,$000d,$0d00,$0d0d,$00dd,$00d0,$0dd0
	DC.W	$0eee,$000e,$0e00,$0e0e,$00ee,$00e0,$0ee0
	DC.W	$0fff,$000f,$0f00,$0f0f,$00ff,$00f0,$0ff0
*********  Fade Back To Black  ********************************
	DC.W	$0eee,$000e,$0e00,$0e0e,$00ee,$00e0,$0ee0
	DC.W	$0ddd,$000d,$0d00,$0d0d,$00dd,$00d0,$0dd0
	DC.W	$0ccc,$000c,$0c00,$0c0c,$00cc,$00c0,$0cc0
	DC.W	$0bbb,$000b,$0b00,$0b0b,$00bb,$00b0,$0bb0
	DC.W	$0aaa,$000a,$0a00,$0a0a,$00aa,$00a0,$0aa0
	DC.W	$0999,$0009,$0900,$0909,$0099,$0090,$0990
	DC.W	$0888,$0008,$0800,$0808,$0088,$0080,$0880
	DC.W	$0777,$0007,$0700,$0707,$0077,$0070,$0770
	DC.W	$0666,$0006,$0600,$0606,$0066,$0060,$0660
	DC.W	$0555,$0005,$0500,$0505,$0055,$0050,$0550
	DC.W	$0444,$0004,$0400,$0404,$0044,$0040,$0440
	DC.W	$0333,$0003,$0300,$0303,$0033,$0030,$0330
	DC.W	$0222,$0002,$0200,$0202,$0022,$0020,$0220
	DC.W	$0111,$0001,$0100,$0101,$0011,$0010,$0110
End	DC.W	$0000,$0000,$0000,$0000,$0000,$0000,$0000

