	opt	d-,l-,c+	;remove this if tou don't use Devpac


	include	'general.i'		;my set of macros
	include	'startup2.i'		;the startup code
START
	lea.l	$dff000,a6		;I use this here ever

*---
* Do your personal modify to coplist BEFORE call BScreenInit,
* cause this is not the real coplist but just an header that will
* be copied in chip mem and modified.

	lea.l	Palette,a0		;just set the palette in coplist
	lea.l	BScreenCoplist_color,a1
	move.l	#256,d0
	bsr	SetPalette
*---
*Remember to activate at least all this DMAs
	move.w	#$83e0,$096(a6)		;mast,bpl,cop,blit,spr


	move.w	#$7fff,$09a(a6)		;deactivate interrupts
	move.w	#$7fff,$09c(a6)		;kill survivors

*---
*Call to Inizialization Routine
	bsr	BScreenInit		;create coplist

*---
* VERY IMPORTANT Set the screen to be used by the interrupt lev 3 routine
* By changing this you can perform double buffering.
	move.l	#MyScreen,BScreenCurrentScreen

*---
* The coplist will be started by the Interrupt routine
* V.I. set Interrupt vector and activate bits
	move.l	BaseVBR,a0
	move.l	#BScreenInt3,$06c(a0)	;interrupt routine in 'BScreenInt3.i'
	move.w	#$c060,$09a(a6)		;activate Blitter e VB intreq

*---
*Convert my image
	lea.l	Chunky,a0		;Chunky image to convert
	lea.l	MyScreen,a1		;Destination screen
	bsr	BScreenConvert		;Conversion
	
*---
*Here we wait for BScreen to finish
	bsr	BScreenWait

*OK, now you can call BScreenReStart to convert again the same Chunky screen
*in the same planar screen, but isn't good for double buffering.
*Remember in any case to use BScreenWait first.


	LMB		;just wait for LeftMouse Button
END
	rts
*********End Main*********************



*********************************
* Some datas in fast mem

	include	'BScreen.i'		;<----include these to use BScreen
	include	'BScreenInt3.i'		;<---/

	include	'SetPalette.i'		;my proc to set the palette in coplist
	WaitLine_def			;macro to define WaitLine function
Palette	include	'lakestar.pal'		;Palette of the picture



*******************************
	SECTION	BSSFast,BSS
BScreenList	ds.b	40*1024		;buffer for Blitter programmation



*******************************
	SECTION	BSSChip,BSS_C
	cnop	0,8
MyScreen		ds.b	BScreenPlaneSize*4
BScreenBuffer		ds.b	BScreenChunkySize/2
BScreenScrambleBuffer	ds.b	BScreenChunkySize
BScreenSpriteBuffer0	ds.b	(312*8*2)*8
BScreenSpriteBuffer1	ds.b	(312*8*2)*8
BScreenCoplist0		ds.b	8096
BScreenCoplist1		ds.b	8096





*******************************
	SECTION	DatiChip,DATA_C
					;IMAGE TO CONVERT
					;MUST be in chip mem
Chunky	incbin	'LakeStar160x128.raw'	;in 8 bit Chunky Mode

******				;THE COPPERLIST
BScreenCoplist
     dc.l $01fc400f ;fmode=3  ;SPRfmode=3 ; 2x2: SCANDOUBLE planes
     dc.l $00968100           ;plane dma on line 0
     dc.l $01000211,$01020000 ;LORES 8 planes, ECS on for bblank
     dc.l $0104003f           ;$104 sprite priority!
     dc.l $01060020           ;$1060020: bblank
     dc.l $010c00ff           ;$10c:<--- SELECT HERE THE SPRITE COLORBANK!!!
     dc.l $0108ffd8,$010a0000 ;2x2: modulo -40=$ffd8
     dc.l $008e2881,$009028c1 ;display window
     dc.l $00920038,$009400a0 ;ddfstrt/stp values for 320pix-width-plane

;*** Bpl pointers refreshed in VB-Int3
;*** Color Section
	dc.w	$106,$c00
BScreenCoplist_color
	DC.W	$180,0,$182,0,$184,0,$186,0,$188,0,$18A,0,$18C,0,$18E,0
	DC.W	$190,0,$192,0,$194,0,$196,0,$198,0,$19A,0,$19C,0,$19E,0
	DC.W	$1A0,0,$1A2,0,$1A4,0,$1A6,0,$1A8,0,$1AA,0,$1AC,0,$1AE,0
	DC.W	$1B0,0,$1B2,0,$1B4,0,$1B6,0,$1B8,0,$1BA,0,$1BC,0,$1BE,0
	DC.W	$106,$e00
	DC.W	$180,0,$182,0,$184,0,$186,0,$188,0,$18A,0,$18C,0,$18E,0
	DC.W	$190,0,$192,0,$194,0,$196,0,$198,0,$19A,0,$19C,0,$19E,0
	DC.W	$1A0,0,$1A2,0,$1A4,0,$1A6,0,$1A8,0,$1AA,0,$1AC,0,$1AE,0
	DC.W	$1B0,0,$1B2,0,$1B4,0,$1B6,0,$1B8,0,$1BA,0,$1BC,0,$1BE,0
	DC.W	$106,$2C00
	DC.W	$180,0,$182,0,$184,0,$186,0,$188,0,$18A,0,$18C,0,$18E,0
	DC.W	$190,0,$192,0,$194,0,$196,0,$198,0,$19A,0,$19C,0,$19E,0
	DC.W	$1A0,0,$1A2,0,$1A4,0,$1A6,0,$1A8,0,$1AA,0,$1AC,0,$1AE,0
	DC.W	$1B0,0,$1B2,0,$1B4,0,$1B6,0,$1B8,0,$1BA,0,$1BC,0,$1BE,0
	DC.W	$106,$2E00
	DC.W	$180,0,$182,0,$184,0,$186,0,$188,0,$18A,0,$18C,0,$18E,0
	DC.W	$190,0,$192,0,$194,0,$196,0,$198,0,$19A,0,$19C,0,$19E,0
	DC.W	$1A0,0,$1A2,0,$1A4,0,$1A6,0,$1A8,0,$1AA,0,$1AC,0,$1AE,0
	DC.W	$1B0,0,$1B2,0,$1B4,0,$1B6,0,$1B8,0,$1BA,0,$1BC,0,$1BE,0
	DC.W	$106,$4C00
	DC.W	$180,0,$182,0,$184,0,$186,0,$188,0,$18A,0,$18C,0,$18E,0
	DC.W	$190,0,$192,0,$194,0,$196,0,$198,0,$19A,0,$19C,0,$19E,0
	DC.W	$1A0,0,$1A2,0,$1A4,0,$1A6,0,$1A8,0,$1AA,0,$1AC,0,$1AE,0
	DC.W	$1B0,0,$1B2,0,$1B4,0,$1B6,0,$1B8,0,$1BA,0,$1BC,0,$1BE,0
	DC.W	$106,$4E00
	DC.W	$180,0,$182,0,$184,0,$186,0,$188,0,$18A,0,$18C,0,$18E,0
	DC.W	$190,0,$192,0,$194,0,$196,0,$198,0,$19A,0,$19C,0,$19E,0
	DC.W	$1A0,0,$1A2,0,$1A4,0,$1A6,0,$1A8,0,$1AA,0,$1AC,0,$1AE,0
	DC.W	$1B0,0,$1B2,0,$1B4,0,$1B6,0,$1B8,0,$1BA,0,$1BC,0,$1BE,0
	DC.W	$106,$6C00
	DC.W	$180,0,$182,0,$184,0,$186,0,$188,0,$18A,0,$18C,0,$18E,0
	DC.W	$190,0,$192,0,$194,0,$196,0,$198,0,$19A,0,$19C,0,$19E,0
	DC.W	$1A0,0,$1A2,0,$1A4,0,$1A6,0,$1A8,0,$1AA,0,$1AC,0,$1AE,0
	DC.W	$1B0,0,$1B2,0,$1B4,0,$1B6,0,$1B8,0,$1BA,0,$1BC,0,$1BE,0
	DC.W	$106,$6E00
	DC.W	$180,0,$182,0,$184,0,$186,0,$188,0,$18A,0,$18C,0,$18E,0
	DC.W	$190,0,$192,0,$194,0,$196,0,$198,0,$19A,0,$19C,0,$19E,0
	DC.W	$1A0,0,$1A2,0,$1A4,0,$1A6,0,$1A8,0,$1AA,0,$1AC,0,$1AE,0
	DC.W	$1B0,0,$1B2,0,$1B4,0,$1B6,0,$1B8,0,$1BA,0,$1BC,0,$1BE,0
	DC.W	$106,$8C00
	DC.W	$180,0,$182,0,$184,0,$186,0,$188,0,$18A,0,$18C,0,$18E,0
	DC.W	$190,0,$192,0,$194,0,$196,0,$198,0,$19A,0,$19C,0,$19E,0
	DC.W	$1A0,0,$1A2,0,$1A4,0,$1A6,0,$1A8,0,$1AA,0,$1AC,0,$1AE,0
	DC.W	$1B0,0,$1B2,0,$1B4,0,$1B6,0,$1B8,0,$1BA,0,$1BC,0,$1BE,0
	DC.W	$106,$8E00
	DC.W	$180,0,$182,0,$184,0,$186,0,$188,0,$18A,0,$18C,0,$18E,0
	DC.W	$190,0,$192,0,$194,0,$196,0,$198,0,$19A,0,$19C,0,$19E,0
	DC.W	$1A0,0,$1A2,0,$1A4,0,$1A6,0,$1A8,0,$1AA,0,$1AC,0,$1AE,0
	DC.W	$1B0,0,$1B2,0,$1B4,0,$1B6,0,$1B8,0,$1BA,0,$1BC,0,$1BE,0
	DC.W	$106,$AC00
	DC.W	$180,0,$182,0,$184,0,$186,0,$188,0,$18A,0,$18C,0,$18E,0
	DC.W	$190,0,$192,0,$194,0,$196,0,$198,0,$19A,0,$19C,0,$19E,0
	DC.W	$1A0,0,$1A2,0,$1A4,0,$1A6,0,$1A8,0,$1AA,0,$1AC,0,$1AE,0
	DC.W	$1B0,0,$1B2,0,$1B4,0,$1B6,0,$1B8,0,$1BA,0,$1BC,0,$1BE,0
	DC.W	$106,$AE00
	DC.W	$180,0,$182,0,$184,0,$186,0,$188,0,$18A,0,$18C,0,$18E,0
	DC.W	$190,0,$192,0,$194,0,$196,0,$198,0,$19A,0,$19C,0,$19E,0
	DC.W	$1A0,0,$1A2,0,$1A4,0,$1A6,0,$1A8,0,$1AA,0,$1AC,0,$1AE,0
	DC.W	$1B0,0,$1B2,0,$1B4,0,$1B6,0,$1B8,0,$1BA,0,$1BC,0,$1BE,0
	DC.W	$106,$CC00
	DC.W	$180,0,$182,0,$184,0,$186,0,$188,0,$18A,0,$18C,0,$18E,0
	DC.W	$190,0,$192,0,$194,0,$196,0,$198,0,$19A,0,$19C,0,$19E,0
	DC.W	$1A0,0,$1A2,0,$1A4,0,$1A6,0,$1A8,0,$1AA,0,$1AC,0,$1AE,0
	DC.W	$1B0,0,$1B2,0,$1B4,0,$1B6,0,$1B8,0,$1BA,0,$1BC,0,$1BE,0
	DC.W	$106,$CE00
	DC.W	$180,0,$182,0,$184,0,$186,0,$188,0,$18A,0,$18C,0,$18E,0
	DC.W	$190,0,$192,0,$194,0,$196,0,$198,0,$19A,0,$19C,0,$19E,0
	DC.W	$1A0,0,$1A2,0,$1A4,0,$1A6,0,$1A8,0,$1AA,0,$1AC,0,$1AE,0
	DC.W	$1B0,0,$1B2,0,$1B4,0,$1B6,0,$1B8,0,$1BA,0,$1BC,0,$1BE,0
	DC.W	$106,$EC00
	DC.W	$180,0,$182,0,$184,0,$186,0,$188,0,$18A,0,$18C,0,$18E,0
	DC.W	$190,0,$192,0,$194,0,$196,0,$198,0,$19A,0,$19C,0,$19E,0
	DC.W	$1A0,0,$1A2,0,$1A4,0,$1A6,0,$1A8,0,$1AA,0,$1AC,0,$1AE,0
	DC.W	$1B0,0,$1B2,0,$1B4,0,$1B6,0,$1B8,0,$1BA,0,$1BC,0,$1BE,0
	DC.W	$106,$EE00
	DC.W	$180,0,$182,0,$184,0,$186,0,$188,0,$18A,0,$18C,0,$18E,0
	DC.W	$190,0,$192,0,$194,0,$196,0,$198,0,$19A,0,$19C,0,$19E,0
	DC.W	$1A0,0,$1A2,0,$1A4,0,$1A6,0,$1A8,0,$1AA,0,$1AC,0,$1AE,0
	DC.W	$1B0,0,$1B2,0,$1B4,0,$1B6,0,$1B8,0,$1BA,0,$1BC,0,$1BE,0

	dc.l $01060c20
BScreenCoplist_End	;$fffffffe will be added by BScreenInit



	end
