
*-----------------------------------------------------------------------------*
	INCDIR	df0:include/
	INCLUDE	CUSTOM.i
	INCLUDE	CIA.i
	INCLUDE	OFFSETS.i

	INCLUDE	MACROS.i

*-----------------------------------------------------------------------------*
PlaneWidth 	= 45
PlaneHeigth	= 288
PlaneSize	= PlaneWidth*PlaneHeigth
Planes		= 4

Size		= 8

*-----------------------------------------------------------------------------*
	INCDIR	df1:

START	movem.l	d0-a6,-(sp)

	move.l	$4.w,a6
	jsr	_LVOForbid(a6)

	moveq	#0,d0
	lea	GfxName(pc),a1
	jsr	_LVOOpenLibrary(a6)
	tst.l	d0
	beq.w	.Error

	move.l	d0,GfxBase
	move.l	d0,a6
	move.l	$22(a6),Temp_ActiView
	move.l	$26(a6),Temp_CopList1
	move.l	$32(a6),Temp_CopList2

	sub.l	a1,a1
	jsr	_LVOLoadView(a6)

	jsr	_LVOWaitTOF(a6)
	jsr	_LVOWaitTOF(a6)

	lea	$dff000,a6
	move.w	$02(a6),Temp_DMACON
	move.w	$10(a6),Temp_ADKCON
	move.w	$1c(a6),Temp_INTENA
	move.l	$6c.w,Temp_Lev3Int

	move.w	#$7fff,$96(a6)
	move.w	#$7fff,$9a(a6)
	move.w	#$7fff,$9c(a6)
	move.w	#$7f00,$9e(a6)

	lea	LEV3_INTERRUPT(pc),a0
	move.l	a0,$6c.w

	bsr.w	Calc_Tables

	move.w	#%1000001111000000,$96(a6)
	move.w	#%1100000000100000,$9a(a6)


*-----------------------------------------------------------------------------*
.Main	Frame	311

;	move.w	#$fff,$dff180
	bsr.w	Zoomer
;	move.w	#$777,$dff180

	addq.l	#1,Frames

	btst	#6,$bfe001
	bne.s	.Main

*-----------------------------------------------------------------------------*
	move.l	Temp_ActiView(pc),a1
	move.l	GfxBase(pc),a6
	jsr	_LVOLoadView(a6)

	lea	$dff000,a6
	move.w	#$7fff,$96(a6)
	move.w	#$7fff,$9a(a6)
	move.w	#$7fff,$9e(a6)

	move.l	Temp_CopList1(pc),$80(a6)
	move.l	Temp_CopList2(pc),$84(a6)
	move.l	Temp_Lev3Int(pc),$6c.w

	move.w	Temp_ADKCON(pc),d0
	or.w	#$8000,d0
	move.w	d0,$9e(a6)

	move.w	Temp_DMACON(pc),d0
	or.w	#$8000,d0
	move.w	d0,$96(a6)

	move.w	Temp_INTENA(pc),d0
	or.w	#$c000,d0
	move.w	d0,$9a(a6)

	move.l	$4.w,a6
	move.l	GfxBase(pc),a1
	jsr	_LVOCloseLibrary(a6)

.Error	jsr	_LVOPermit(a6)

	movem.l	(sp)+,d0-a6
	moveq	#0,d0

	move.l	Time(pc),d0
	move.l	Frames(pc),d1
	move.l	d0,d2
	divs.w	d1,d2
	rts

*-----------------------------------------------------------------------------*
Temp_ADKCON	dc.w	0
Temp_DMACON	dc.w	0
Temp_INTENA	dc.w	0
Temp_CopList1	dc.l	0
Temp_CopList2	dc.l	0
Temp_Lev3Int	dc.l	0
Temp_ActiView	dc.l	0

Time		dc.l	0
Frames		dc.l	0

GfxBase		dc.l	0

GfxName		dc.b	'graphics.library',0
		even

*-----------------------------------------------------------------------------*
LEV3_INTERRUPT
	movem.l	d0-a6,-(SP)

	bchg	#0,ScCtrl
	beq.s	.out

	bsr.w	Scroll
	addq.l	#1,Time

.out	movem.l	(SP)+,d0-a6
	move.w	#%0000000000111000,$dff09c
	rte

ScCtrl	dc.w	0

*-----------------------------------------------------------------------------*
CALC_TABLES
	lea	BplPtr1,a1
	lea	BplPtr2,a2
	move.l	#Pic1,d0
	move.w	d0,6(a1)
	move.w	d0,6(a2)
	swap.w	d0
	move.w	d0,2(a1)
	move.w	d0,2(a2)
	move.l	#Pic1+40*256,d0
	move.w	d0,14(a1)
	move.w	d0,14(a2)
	swap.w	d0
	move.w	d0,10(a1)
	move.w	d0,10(a2)


	lea	ColTab1,a0
	lea	Plasma,a1
	lea	Palette1,a2
	move.w	#16*128-1,d2
.Loop2	moveq	#7,d1
.Loop1	moveq	#0,d0
	btst	d1,0*16*128(a1)
	beq.s	.B0
	bset	#0,d0
.B0	btst	d1,1*16*128(a1)
	beq.s	.B1
	bset	#1,d0
.B1	btst	d1,2*16*128(a1)
	beq.s	.B2
	bset	#2,d0
.B2	btst	d1,3*16*128(a1)
	beq.s	.B3
	bset	#3,d0
.B3	add.w	d0,d0
	add.w	d0,d0
	move.w	2(a2,d0.w),(a0)+
	dbf	d1,.Loop1
	addq.l	#1,a1
	dbf	d2,.Loop2		

CALC_TABLE2
	lea	ColTab2,a0
	lea	Plasma,a1
	lea	Palette2,a2
	move.w	#16*128-1,d2
.Loop2	moveq	#7,d1
.Loop1	moveq	#0,d0
	btst	d1,0*16*128(a1)
	beq.s	.B0
	bset	#0,d0
.B0	btst	d1,1*16*128(a1)
	beq.s	.B1
	bset	#1,d0
.B1	btst	d1,2*16*128(a1)
	beq.s	.B2
	bset	#2,d0
.B2	btst	d1,3*16*128(a1)
	beq.s	.B3
	bset	#3,d0
.B3	add.w	d0,d0
	add.w	d0,d0
	move.w	2(a2,d0.w),(a0)+
	dbf	d1,.Loop1
	addq.l	#1,a1
	dbf	d2,.Loop2		

CALC_TABLE3
	lea	ColTab3,a0
	lea	Plasma,a1
	lea	Palette3,a2
	move.w	#16*128-1,d2
.Loop2	moveq	#7,d1
.Loop1	moveq	#0,d0
	btst	d1,0*16*128(a1)
	beq.s	.B0
	bset	#0,d0
.B0	btst	d1,1*16*128(a1)
	beq.s	.B1
	bset	#1,d0
.B1	btst	d1,2*16*128(a1)
	beq.s	.B2
	bset	#2,d0
.B2	btst	d1,3*16*128(a1)
	beq.s	.B3
	bset	#3,d0
.B3	add.w	d0,d0
	add.w	d0,d0
	move.w	2(a2,d0.w),(a0)+
	dbf	d1,.Loop1
	addq.l	#1,a1
	dbf	d2,.Loop2		

CALC_COPLIST
	lea	CopCol1(pc),a0
	lea	CopCol2,a1
	move.w	#PlaneHeigth/2-1,d0
	move.l	#$1b31fffe,d1
.Loop	add.l	#$00020000,d1
	move.l	d1,(a0)+
	move.l	d1,(a1)+
	REPT	PlaneWidth
	move.l	#$01800000,(a0)+
	move.l	#$01800000,(a1)+
	ENDR
	add.l	#$01000000,d1
	sub.l	#$00020000,d1
	move.l	d1,(a0)+
	move.l	d1,(a1)+
	REPT	PlaneWidth
	move.l	#$01800000,(a0)+
	move.l	#$01800000,(a1)+
	ENDR
	add.l	#$01000000,d1
	dbf	d0,.Loop
	rts

*-----------------------------------------------------------------------------*
SCROLL	lea	$dff000,a6

	tst.w	Count
	bgt.s	.Ok
	bsr.s	.Set
.Ok	subq.w	#1,Count

	lea	Pic1+40,a0
	lea	Pic1,a1
	WBLIT
	move.l	a0,$50(a6)
	move.l	a1,$54(a6)
	move.l	#$09f00000,$40(a6)
	move.l	#-1,$44(a6)
	move.l	#$00000000,$64(a6)
	move.w	#275<<6+20,$58(a6)
	rts

.Set	move.w	#24,Count
	WBLIT
	
	lea	FontSiz(pc),a2
	move.l	TextPt(pc),a3

	moveq	#0,d2

.Loop2	lea	Pic1+256*40,a0
	lea	Fonts(pc),a1

	moveq	#0,d0
	move.b	(a3)+,d0
	tst.b	d0
	beq.s	.Return
	cmp.b	#1,d0
	beq.s	.ReStrt
	cmp.b	#' ',d0
	beq.s	.Space
	sub.b	#$61,d0

	move.w	d2,d3
	and.w	#15,d3

	move.w	d2,d4
	lsr.w	#4,d4

	add.b	(a2,d0.w),d2

	add.w	d0,d0
	add.w	d4,d4

	moveq	#19-1,d7
.Loop1	moveq	#0,d1
	move.w	(a1,d0.w),d1
	swap.w	d1
	lsr.l	d3,d1
	or.l	d1,(a0,d4.w)
	lea	58(a1),a1
	lea	40(a0),a0
	dbf	d7,.Loop1

	bra.s	.Loop2

.Return	move.l	a3,TextPt
	rts

.ReStrt	move.l	#Text,TextPT
	rts

.Space	addq.l	#8,d2
	bra.s	.Loop2

Count	dc.w	0
TextPt	dc.l	Text

Text	dc.b	0,0
	dc.b	"            projects",0
	dc.b	0,0,0
	dc.b	"           seasick",0
	dc.b	0,0,0
	dc.b	" at the assembly 1995",0
	dc.b	0,0
	dc.b	"     the sailors were",0
	dc.b	0,0
	dc.b	"      engine mechanic",0
	dc.b	"           epidemic",0
	dc.b	0
	dc.b	"     coke shovelman",0
	dc.b	"        paul mcbody",0
	dc.b	0,0
	dc.b	"        tattooman",0
	dc.b	"            boris",0
	dc.b	0
	dc.b	"        ship painter",0
	dc.b	"           prayer",0
	dc.b	0,0
	dc.b	"      singing sailor",0
	dc.b	"          ukulele",0
	dc.b	0,0
	dc.b	"        boatswain",0
	dc.b	"           suhu",0
	dc.b	0
	dc.b	"         old salt",0
	dc.b	"           andy",0
	dc.b	0,0,0
	dc.b	"ahoy to the fellow ships",0
	dc.b	"     stellar sonic vd",0
	dc.b	"  limbo parallax cncd",0
	dc.b	"    spaceballs melon",0
	dc.b	"        out of sight",0
	dc.b	0,0,0,0,0,0,0,0,0,0,0
	dc.b	"       b  a  n  a  l",0
	dc.b	"     p r o j e c t s ",0
	dc.b	0,0,0,0,0,0,0,0,0,0,0,0,0,0,0

	dc.b	1
	even

	
FontSiz	dc.b	15,12,16,13,11,11,16,10,3,15,10,11,15,10,15,13,15,13,14,11
	dc.b	15,15,16,9,9,9,4,14,14
	even
	
Fonts	incbin	df1:16x19font.RAW

*-----------------------------------------------------------------------------*
SWAP_PLANES
	lea	$dff000,a6

	movem.l	ShowCop(pc),d0-d1
	exg.l	d0,d1
	movem.l	d0-d1,ShowCop

	move.l	ShowCop(pc),$80(a6)
	tst.w	$88(a6)
	rts

ShowCop	dc.l	Copperlist1
WorkCop	dc.l	Copperlist2

*-----------------------------------------------------------------------------*
CALC_COORDS
	lea	Sin(pc),a0
	lea	Cos(pc),a1
	lea	Coords(pc),a2
	lea	XYcoord(pc),a3

.loop	movem.w	(a2)+,d0/d1/d2		;x1,y1,z1

	move.w	(a1),d3
	move.w	d3,d4
	move.w	(a0),d5
	move.w	d5,d6
	muls.w	d0,d3
	muls.w	d2,d5
	add.l	d3,d5
	asr.l	#8,d5			;x2

	muls.w	d0,d6
	muls.w	d2,d4
	sub.l	d6,d4
	asr.l	#8,d4			;z2

	move.w	(a1),d0
	move.w	d0,d2
	move.w	(a0),d3
	move.w	d3,d6
	muls.w	d1,d0
	muls.w	d4,d3
	sub.l	d3,d0
	asr.l	#8,d0			;y3

	muls.w	d1,d6
	muls.w	d4,d2
	add.l	d6,d2
	asr.l	#8,d2			;z3

	move.w	(a1,d7.w),d1
	move.w	d1,d3
	move.w	(a0,d7.w),d4
	move.w	d4,d6		
	muls.w	d5,d1
	muls.w	d0,d4
	sub.l	d4,d1
	asr.l	#8,d1

	muls.w	d5,d6
	muls.w	d0,d3
	add.l	d6,d3
	asr.l	#8,d3

	muls.w	Dist(pc),d1
	asr.l	#8,d1
	add.w	Xcentre(pc),d1
	move.w	d1,(a3)+

	muls.w	Dist(pc),d3
	asr.l	#8,d3
	add.w	Ycentre(pc),d3
	move.w	d3,(a3)+	

	cmp.w	#9999,(a2)
	bne.w	.loop
	rts

*-----------------------------------------------------------------------------*
ZOOMER	bsr.w	Swap_Planes


	add.w	#6,Xcentre
	add.w	#1,Ycentre
	and.w	#4095,Xcentre
	and.w	#4095,Ycentre


	move.l	Line(pc),d0
	add.l	#PlaneWidth*4+4,d0
	cmp.l	#8*[PlaneWidth*4+4],d0
	blt.s	.Lok
	moveq	#0,d0
.Lok	move.l	d0,Line

	movem.w	Zptrs(pc),d0-d2
	add.w	#4,d0
	add.w	#2,d1
	add.w	#6,d2
	and.w	#511,d0
	and.w	#511,d1
	and.w	#511,d2
	movem.w	d0-d2,Zptrs

	lea	Sin(pc),a0
	move.w	(a0,d0.w),d0
	add.w	#312,d0
	move.w	d0,Dist1

	move.w	(a0,d1.w),d1
	add.w	#312,d1
	move.w	d1,Dist2

	move.w	(a0,d2.w),d2
	add.w	#312,d2
	move.w	d2,Dist3



	move.w	Kz1(pc),d7
	asr.w	#1,d7
	add.w	d7,d7
	move.w	Dist1(pc),d0
	move.w	d0,Dist
	bsr.w	Calc_Coords
	bsr.w	Rotate1
	
	move.w	Kz2(pc),d7
	asr.w	#1,d7
	add.w	d7,d7
	move.w	Dist2(pc),d0
	move.w	d0,Dist
	bsr.w	Calc_Coords
	bsr.w	Rotate2

	move.w	Kz3(pc),d7
	asr.w	#1,d7
	add.w	d7,d7
	move.w	Dist3(pc),d0
	move.w	d0,Dist
	bsr.w	Calc_Coords
	bsr.w	Rotate3


	movem.w	Kz1(pc),d0-d2
	add.w	#1,d0
	add.w	#-1,d1
	add.w	#2,d2
	and.w	#511,d0
	and.w	#511,d1
	and.w	#511,d2
	movem.w	d0-d2,Kz1
	rts

Rotate1	lea	XYcoord(pc),a0

	move.w	00(a0),d0
	move.w	02(a0),d1
	move.w	04(a0),d2
	move.w	06(a0),d3

	move.w	d2,d4
	sub.w	d0,d4
	muls.w	#128,d4
	divs.w	#PlaneWidth*8/Size,d4
	move.w	d4,Xadd1

	move.w	d3,d5
	sub.w	d1,d5
	muls.w	#128,d5
	divs.w	#PlaneWidth*8/Size,d5
	move.w	d5,Yadd1
	
	move.w	00(a0),d0
	move.w	02(a0),d1
	move.w	08(a0),d2
	move.w	10(a0),d3
	
	move.w	d2,d4
	sub.w	d0,d4
	muls.w	#128,d4
	divs.w	#PlaneWidth*8/Size,d4
	move.w	d4,Xadd2

	move.w	d3,d5
	sub.w	d1,d5
	muls.w	#128,d5
	divs.w	#PlaneWidth*8/Size,d5
	move.w	d5,Yadd2

	moveq	#0,d0
	move.w	0(a0),d0
	muls.w	#168/2,d0
	move.w	d0,a5

	moveq	#0,d0
	move.w	2(a0),d0
	muls.w	#198/2,d0
	move.w	d0,a6


	lea	ColTab1,a0

	move.l	WorkCop(pc),a1
	lea	CopCol1-Copperlist1+6(a1),a1
	add.l	Line(pc),a1

	move.w	Xadd1(pc),a3
	move.w	Yadd1(pc),a4

	move.w	#256-2,d4
	move.w	#$7f00,d5
	move.w	#PlaneHeigth/Size-1,d7

.Loop2	move.w	a5,d0
	move.w	a6,d1
	move.w	#PlaneWidth-1,d6

.Loop1	move.w	d0,d2
	move.w	d1,d3
	asr.w	#7,d2
	and.w	d4,d2
	and.w	d5,d3
	add.w	d2,d3
	move.w	(a0,d3.w),0*[PlaneWidth*4+4](a1)
;	move.w	(a0,d3.w),2*[PlaneWidth*4+4](a1)
;	move.w	(a0,d3.w),4*[PlaneWidth*4+4](a1)
;	move.w	(a0,d3.w),6*[PlaneWidth*4+4](a1)
	add.w	a3,d0
	add.w	a4,d1
	addq.l	#4,a1
	dbf	d6,.Loop1
	
	lea	Size*[PlaneWidth*4+4]-PlaneWidth*4(a1),a1
	add.w	Xadd2(pc),a5
	add.w	Yadd2(pc),a6
	dbf	d7,.Loop2
	rts

Rotate2	lea	XYcoord(pc),a0

	move.w	00(a0),d0
	move.w	02(a0),d1
	move.w	04(a0),d2
	move.w	06(a0),d3

	move.w	d2,d4
	sub.w	d0,d4
	muls.w	#128,d4
	divs.w	#PlaneWidth*8/Size,d4
	move.w	d4,Xadd1

	move.w	d3,d5
	sub.w	d1,d5
	muls.w	#128,d5
	divs.w	#PlaneWidth*8/Size,d5
	move.w	d5,Yadd1
	
	move.w	00(a0),d0
	move.w	02(a0),d1
	move.w	08(a0),d2
	move.w	10(a0),d3
	
	move.w	d2,d4
	sub.w	d0,d4
	muls.w	#128,d4
	divs.w	#PlaneWidth*8/Size,d4
	move.w	d4,Xadd2

	move.w	d3,d5
	sub.w	d1,d5
	muls.w	#128,d5
	divs.w	#PlaneWidth*8/Size,d5
	move.w	d5,Yadd2

	moveq	#0,d0
	move.w	0(a0),d0
	muls.w	#228/2,d0
	move.w	d0,a5

	moveq	#0,d0
	move.w	2(a0),d0
	muls.w	#100/2,d0
	move.w	d0,a6


	lea	ColTab2,a0

	move.l	WorkCop(pc),a1
	lea	CopCol1-Copperlist1+6(a1),a1
	add.l	Line(pc),a1

	move.w	Xadd1(pc),a3
	move.w	Yadd1(pc),a4

	move.w	#256-2,d4
	move.w	#$7f00,d5
	move.w	#PlaneHeigth/Size-1,d7

.Loop2	move.w	a5,d0
	move.w	a6,d1
	move.w	#PlaneWidth-1,d6

.Loop1	move.w	d0,d2
	move.w	d1,d3
	asr.w	#7,d2
	and.w	d4,d2
	and.w	d5,d3
	add.w	d2,d3
	move.w	(a0,d3.w),d3
	add.w	d3,0*[PlaneWidth*4+4](a1)
;	add.w	d3,2*[PlaneWidth*4+4](a1)
;	add.w	d3,4*[PlaneWidth*4+4](a1)
;	add.w	d3,6*[PlaneWidth*4+4](a1)
	add.w	a3,d0
	add.w	a4,d1
	addq.l	#4,a1
	dbf	d6,.Loop1
	
	lea	Size*[PlaneWidth*4+4]-PlaneWidth*4(a1),a1
	add.w	Xadd2(pc),a5
	add.w	Yadd2(pc),a6
	dbf	d7,.Loop2
	rts

Rotate3	lea	XYcoord(pc),a0

	move.w	00(a0),d0
	move.w	02(a0),d1
	move.w	04(a0),d2
	move.w	06(a0),d3

	move.w	d2,d4
	sub.w	d0,d4
	muls.w	#128,d4
	divs.w	#PlaneWidth*8/Size,d4
	move.w	d4,Xadd1

	move.w	d3,d5
	sub.w	d1,d5
	muls.w	#128,d5
	divs.w	#PlaneWidth*8/Size,d5
	move.w	d5,Yadd1
	
	move.w	00(a0),d0
	move.w	02(a0),d1
	move.w	08(a0),d2
	move.w	10(a0),d3
	
	move.w	d2,d4
	sub.w	d0,d4
	muls.w	#128,d4
	divs.w	#PlaneWidth*8/Size,d4
	move.w	d4,Xadd2

	move.w	d3,d5
	sub.w	d1,d5
	muls.w	#128,d5
	divs.w	#PlaneWidth*8/Size,d5
	move.w	d5,Yadd2

	moveq	#0,d0
	move.w	0(a0),d0
	muls.w	#100/2,d0
	move.w	d0,a5

	moveq	#0,d0
	move.w	2(a0),d0
	muls.w	#170/2,d0
	move.w	d0,a6


	lea	ColTab3,a0

	move.l	WorkCop(pc),a1
	lea	CopCol1-Copperlist1+6(a1),a1
	add.l	Line(pc),a1

	move.w	Xadd1(pc),a3
	move.w	Yadd1(pc),a4

	move.w	#256-2,d4
	move.w	#$7f00,d5
	move.w	#PlaneHeigth/Size-1,d7

.Loop2	move.w	a5,d0
	move.w	a6,d1
	move.w	#PlaneWidth-1,d6

.Loop1	move.w	d0,d2
	move.w	d1,d3
	asr.w	#7,d2
	and.w	d4,d2
	and.w	d5,d3
	add.w	d2,d3
	move.w	(a0,d3.w),d3
	add.w	d3,0*[PlaneWidth*4+4](a1)
;	add.w	d3,2*[PlaneWidth*4+4](a1)
;	add.w	d3,4*[PlaneWidth*4+4](a1)
;	add.w	d3,6*[PlaneWidth*4+4](a1)
	add.w	a3,d0
	add.w	a4,d1
	addq.l	#4,a1
	dbf	d6,.Loop1
	
	lea	Size*[PlaneWidth*4+4]-PlaneWidth*4(a1),a1
	add.w	Xadd2(pc),a5
	add.w	Yadd2(pc),a6
	dbf	d7,.Loop2
	rts

*-----------------------------------------------------------------------------*
Line	dc.l	0
Zptrs	dc.w	0,0,0

Xadd1	dc.w	0
Yadd1	dc.w	0
Xadd2	dc.w	0
Yadd2	dc.w	0

Kz1	dc.w	0*2
Kz2	dc.w	0*2
Kz3	dc.w	0*2

Dist1	dc.w	512
Dist2	dc.w	512
Dist3	dc.w	512

Dist	dc.w	512
XCentre	dc.w	0
YCentre	dc.w	0

Coords	dc.w	-63,-63,000
	dc.w	+63,-63,000
	dc.w	-63,+63,000
	dc.w	+63,+63,000
	dc.w	9999

XYcoord	blk.w	128,0

Sin	DC.W	$0000,$0006,$000C,$0012,$0019,$001F,$0025,$002B
	DC.W	$0031,$0037,$003E,$0044,$004A,$0050,$0056,$005B
	DC.W	$0061,$0067,$006D,$0072,$0078,$007D,$0083,$0088
	DC.W	$008D,$0093,$0098,$009D,$00A2,$00A6,$00AB,$00B0
	DC.W	$00B4,$00B9,$00BD,$00C1,$00C5,$00C9,$00CD,$00D0
	DC.W	$00D4,$00D7,$00DB,$00DE,$00E1,$00E4,$00E6,$00E9
	DC.W	$00EC,$00EE,$00F0,$00F2,$00F4,$00F6,$00F7,$00F9
	DC.W	$00FA,$00FB,$00FC,$00FD,$00FE,$00FE,$00FF,$00FF
Cos	DC.W	$00FF,$00FF,$00FF,$00FE,$00FE,$00FD,$00FC,$00FB
	DC.W	$00FA,$00F9,$00F7,$00F6,$00F4,$00F2,$00F0,$00EE
	DC.W	$00EC,$00E9,$00E6,$00E4,$00E1,$00DE,$00DB,$00D7
	DC.W	$00D4,$00D0,$00CD,$00C9,$00C5,$00C1,$00BD,$00B9
	DC.W	$00B4,$00B0,$00AB,$00A6,$00A2,$009D,$0098,$0093
	DC.W	$008D,$0088,$0083,$007D,$0078,$0072,$006D,$0067
	DC.W	$0061,$005B,$0056,$0050,$004A,$0044,$003E,$0037
	DC.W	$0031,$002B,$0025,$001F,$0019,$0012,$000C,$0006
	DC.W	$0000,$FFF9,$FFF3,$FFED,$FFE6,$FFE0,$FFDA,$FFD4
	DC.W	$FFCE,$FFC8,$FFC1,$FFBB,$FFB5,$FFAF,$FFA9,$FFA4
	DC.W	$FF9E,$FF98,$FF92,$FF8D,$FF87,$FF82,$FF7C,$FF77
	DC.W	$FF72,$FF6C,$FF67,$FF62,$FF5D,$FF59,$FF54,$FF4F
	DC.W	$FF4B,$FF46,$FF42,$FF3E,$FF3A,$FF36,$FF32,$FF2F
	DC.W	$FF2B,$FF28,$FF24,$FF21,$FF1E,$FF1B,$FF19,$FF16
	DC.W	$FF13,$FF11,$FF0F,$FF0D,$FF0B,$FF09,$FF08,$FF06
	DC.W	$FF05,$FF04,$FF03,$FF02,$FF01,$FF01,$FF00,$FF00
	DC.W	$FF00,$FF00,$FF00,$FF01,$FF01,$FF02,$FF03,$FF04
	DC.W	$FF05,$FF06,$FF08,$FF09,$FF0B,$FF0D,$FF0F,$FF11
	DC.W	$FF13,$FF16,$FF19,$FF1B,$FF1E,$FF21,$FF24,$FF28
	DC.W	$FF2B,$FF2F,$FF32,$FF36,$FF3A,$FF3E,$FF42,$FF46
	DC.W	$FF4B,$FF4F,$FF54,$FF59,$FF5D,$FF62,$FF67,$FF6C
	DC.W	$FF72,$FF77,$FF7C,$FF82,$FF87,$FF8D,$FF92,$FF98
	DC.W	$FF9E,$FFA4,$FFA9,$FFAF,$FFB5,$FFBB,$FFC1,$FFC8
	DC.W	$FFCE,$FFD4,$FFDA,$FFE0,$FFE6,$FFED,$FFF3,$FFF9
	DC.W	$0000,$0006,$000C,$0012,$0019,$001F,$0025,$002B
	DC.W	$0031,$0037,$003E,$0044,$004A,$0050,$0056,$005B
	DC.W	$0061,$0067,$006D,$0072,$0078,$007D,$0083,$0088
	DC.W	$008D,$0093,$0098,$009D,$00A2,$00A6,$00AB,$00B0
	DC.W	$00B4,$00B9,$00BD,$00C1,$00C5,$00C9,$00CD,$00D0
	DC.W	$00D4,$00D7,$00DB,$00DE,$00E1,$00E4,$00E6,$00E9
	DC.W	$00EC,$00EE,$00F0,$00F2,$00F4,$00F6,$00F7,$00F9
	DC.W	$00FA,$00FB,$00FC,$00FD,$00FE,$00FE,$00FF,$00FF
	DC.W	$00FF,$00FF,$00FF,$00FE,$00FE,$00FD,$00FC,$00FB

*-----------------------------------------------------------------------------*
COPPERLIST1
	dc.w	$0001,$fffe,$0100,$0000

	dc.w	$0120,$0000,$0122,$0000,$0124,$0000,$0126,$0000
	dc.w	$0128,$0000,$012a,$0000,$012c,$0000,$012e,$0000
	dc.w	$0130,$0000,$0132,$0000,$0134,$0000,$0136,$0000
	dc.w	$0138,$0000,$013a,$0000,$013c,$0000,$013e,$0000

	dc.w	$008e,$2881,$0090,$28c1
	dc.w	$0092,$006c,$0094,$00b4
	dc.w	$0108,$0000,$010a,$0000
	dc.w	$0102,$0000,$0104,$0000
	dc.w	$0100,$9200

	dc.w	$0182,$0fff,$0184,$0000,$0186,$0000

BplPtr1	dc.w	$00e0,$0000,$00e2,$0000,$00e4,$0000,$00e6,$0000
	dc.w	$00e8,$0000,$00ea,$0000,$00ec,$0000,$00ee,$0000

CopCol1	blk.b	PlaneHeigth*[PlaneWidth*4+4],0

	dc.w	$ffff,$fffe

COPPERLIST2
	dc.w	$0001,$fffe,$0100,$0000

	dc.w	$0120,$0000,$0122,$0000,$0124,$0000,$0126,$0000
	dc.w	$0128,$0000,$012a,$0000,$012c,$0000,$012e,$0000
	dc.w	$0130,$0000,$0132,$0000,$0134,$0000,$0136,$0000
	dc.w	$0138,$0000,$013a,$0000,$013c,$0000,$013e,$0000

	dc.w	$008e,$2881,$0090,$28c1
	dc.w	$0092,$006c,$0094,$00b4
	dc.w	$0108,$0000,$010a,$0000
	dc.w	$0102,$0000,$0104,$0000
	dc.w	$0100,$9200

BplPtr2	dc.w	$00e0,$0000,$00e2,$0000,$00e4,$0000,$00e6,$0000
	dc.w	$00e8,$0000,$00ea,$0000,$00ec,$0000,$00ee,$0000

	dc.w	$0182,$0fff,$0184,$0000,$0186,$0000

CopCol2	blk.b	PlaneHeigth*[PlaneWidth*4+4],0

	dc.w	$ffff,$fffe

*-----------------------------------------------------------------------------*
Palette1
	dc.w	$0180,$001,$0182,$001,$0184,$001,$0186,$001
	dc.w	$0188,$002,$018a,$002,$018c,$003,$018e,$003
	dc.w	$0190,$004,$0192,$004,$0194,$005,$0196,$005
	dc.w	$0198,$005,$019a,$005,$019c,$006,$019e,$006

Palette2
	dc.w	$0180,$000,$0182,$001,$0184,$001,$0186,$001
	dc.w	$0188,$002,$018a,$002,$018c,$003,$018e,$003
	dc.w	$0190,$004,$0192,$004,$0194,$005,$0196,$005
	dc.w	$0198,$005,$019a,$005,$019c,$005,$019e,$005

Palette3
	dc.w	$0180,$000,$0182,$001,$0184,$001,$0186,$001
	dc.w	$0188,$002,$018a,$002,$018c,$003,$018e,$003
	dc.w	$0190,$004,$0192,$004,$0194,$005,$0196,$005
	dc.w	$0198,$005,$019a,$005,$019c,$005,$019e,$005

*-----------------------------------------------------------------------------*
Plasma	incbin	df1:Lulli.RAW

Pic1	blk.b	40*276,0

ColTab1	blk.w	128*128,0
ColTab2	blk.w	128*128,0
ColTab3	blk.w	128*128,0


