	Opt	c-
	Section	"Base Code",Code_c

Piccy1	= $e0000
Piccy2	= $e4000

Start	Movem.l	d0-d7/a0-a6,-(sp) 
	Bsr	KillSys	  
	
	Lea	CopperList(pc),a0 
	Lea	HardWare,a6	  
	Move.l	a0,Cop1Lc(a6)	  
	Move.w	#$83c0,DMACon(a6)
	
	Bsr	DoVector

Loop	Btst	#6,$Bfe001	  
	Bne	Loop	  
		
	Bsr	ReturnSys	  
	Movem.l	(sp)+,d0-d7/a0-a6 
	Moveq	#0,d0	  
	Rts

CalcVector	Add.w	#2,ZRot
	Cmp.w	#360,ZRot
	Bls	NotOverZRot	
	Sub.w	#360,ZRot	
NotOverZRot	Move.l	ObjectPt(pc),a1
	Move.w	(a1)+,PointsAm
	Lea	VecSineTable(pc),a3
	Move.l	RotPtr,a4
	Move.w	ZRot,d5
	Moveq.l	#9,d7
	Add.w	d5,d5
	Move.w	0(a3,d5.w),SineVar5
	Add.w	#$B4,d5
	Move.w	0(a3,d5.w),SineVar6
	
VecType3	Move.w	(a1)+,d0
	Move.w	(a1)+,d1	
	Asl.w	#5,d0
	Asl.w	#5,d1
	Moveq.l	#0,d2
	Move.w	SineVar5,d3
	Move.w	SineVar6,d4
	Move.w	d3,d5
	Move.w	d4,d6
	Muls	d0,d4
	Muls	d1,d3
	Sub.l	d3,d4
	Asr.l	d7,d4
	Muls	d5,d0
	Muls	d6,d1
	Add.l	d0,d1
	Asr.l	d7,d1
	Move.w	d4,d0
	Asr.w	#4,d2
	Asr.w	#4,d0
	Asr.w	#4,d1
	Move.w	d2,TempDist
	Moveq.l	#9,d4
	Ext.l	d0
	Lsl.l	d4,d0
	Add.w	DistX,d2
	Add.w	#$0200,d2
	Divs	d2,d0
	Ext.l	d1
	Lsl.l	d4,d1
	Move.w	TempDist(pc),d2
	Add.w	DistY,d2
	Add.w	#$0200,d2
	Divs	d2,d1
	Add.w	XPos,d0
	Add.w	YPos,d1
	Move.w	d0,(a4)+
	Move.w	d1,(a4)+
	Move.l	a4,RotPTr
	Subq.w	#1,PointsAm
	Bne	VecType3
	Rts
	
DoXYSine	Lea	DistX(pc),a4
	Lea	SineXPt(pc),a5
	Bsr	DoSine
	Asr.w	#1,d3
	Move.w	d3,(a4)
	Lea	DistY(pc),a4
	Lea	SineYPt(pc),a5
	Bsr	DoSine
	Asr.w	#1,d3
	Move.w	d3,(a4)
	Lea	DistX(pc),a4
	And.w	#4095,0(a4)
	And.w	#4095,2(a4)
	;Move.w	0(a4),2(a4)
	Rts
DoSine	Lea	SineData(pc),a6
	Moveq	#0,d2
	Moveq	#0,d3
	Move.l	08(a5),d0
	Move.l	12(a5),d1
	Add.l	d0,00(a5)
	Add.l	d1,04(a5)
	And.l	#$ffe,00(a5)	
	And.l	#$ffe,04(a5)	
	Move.l	00(a5),d0
	Move.l	04(a5),d1	
	Move.w	(a6,d0.l),d2
	Move.w	(a6,d1.l),d3	
	Add.l	d2,d3	
	Asl.w	#3,d3
	Add.w	#4096,d3
	Rts		

WaitBlitter	Btst	#$6,$2(a6)
	Bne	WaitBlitter
	Rts

KillSys	Bsr.s	SysWait	

	Move.l	$4,a6	
	Lea	GFXName(pc),a1	
	Moveq	#0,d0	
	Jsr	-552(a6)	
		
	Lea	OldCop1(pc),a5
	Move.l	$26(a0),$0(a5)	
	Move.l	$32(a0),$4(a5)	
	
	Lea	HardWare,a6
	Move.w	IntEnaR(a6),d0	
	Move.w	DMAConR(a6),d1  
	Or.w	#$8000,d0	
	And.w	#$03ff,d1	
	Or.w	#$8000,d1	
	Move.w	d0,$8(a5)	
	Move.w	d1,$a(a5)	
	
	Move.w	#$7fff,IntEna(a6) 
	Move.w	#$7fff,DMACon(a6) 
	Rts

SysWait	Move.w	#15,d7	
SysWaitLoop	Move.l	#$05000,d1	
	Bsr.s	WaitVBL	
	Bsr.s	DoWaitVBL	
	Dbf	d7,SysWaitLoop	
	Rts

DoWaitVBL	Move.l	#$03000,d1	
WaitVBL	Movem.l	d0-d1/a6,-(sp)	
	Lea	HardWare,a6	
WaitVBLLoop	Move.l	VPosR(a6),d0	
	And.l	#$1ff00,d0	
	Cmp.l	d1,d0	
	Bne.s	WaitVBLLoop	
	Movem.l	(sp)+,d0-d1/a6	
	Rts		

ReturnSys	Lea	HardWare,a6	
	Move.w	OldIntEna(pc),IntEna(a6)
	Move.w	OldDMACon(pc),DMACon(a6)
	Move.l	OldCop1(pc),Cop1lc(a6)
	Move.l	OldCop2(pc),Cop2lc(a6)
	Rts
	
SetNewObject	Lea	ObjectPt(pc),a1
	Move.l	a4,(a1)
	Lea	ConnectPtr(pc),a3
	Move.l	#LSDConnects,(a3)
	Rts

DoVector	Lea	$Dff000,a6
	Bsr	BlitterWait
ClearPiccy1	Move.w	#$01F0,$40(a6)
	Move.w	#0,$42(a6)
	Move.w	#$ffff,$44(a6)
	Move.w	#$ffff,$46(a6)
	Move.w	#0,$74(a6)
	Move.l	#Piccy1,$54(a6)
	Move.w	#0,$66(a6)
	Move.w	#$4AE0,$58(a6)
ClearPiccy2	Move.w	#$01F0,$40(a6)
	Move.w	#0,$42(a6)
	Move.w	#$ffff,$44(a6)
	Move.w	#$ffff,$46(a6)
	Move.w	#0,$74(a6)
	Move.l	#Piccy2,$54(a6)
	Move.w	#0,$66(a6)
	Move.w	#$4AE0,$58(a6)
	
	Bsr	SetCopperLists
	Bsr	BlitterWait

	Lea	$Dff000,a6
	Move.w	#$f,$2E(a6)
	Move.l	#CopperList1,$Dff080
	
LoopX	Bsr	DoXYSine
	Move.l	#RotPoints,RotPtr
	Lea	L_Points(pc),a4
	Bsr	DoVecPart
	Lea	STop_Points(pc),a4
	Bsr	DoVecPart
	Lea	SDot_Points(pc),a4
	Bsr	DoVecPart
	Lea	SBot_Points(pc),a4
	Bsr	DoVecPart
	Lea	D_Points(pc),a4
	Bsr	DoVecPart
	Bsr	VBL
	
	Bsr	DoDrawLines
	Btst	#6,$Bfe001
	Bne	LoopX	
	Rts
	
DoVecPart	Bsr	SetNewObject
	Bsr	CalcVector
	Rts
	
BlitterWait	Btst	#$6,$2(a6)
	Bne	BlitterWait
	Rts
	
DoDrawLines	Bsr	DoubleBuffer
	Move.l	ConnectPtr,a1
	Lea	RotPoints(pc),a2
	Lea	EndRotPoints(pc),a3
	Move.w	(a1)+,d7
	Subq	#1,d7
DrawLineLoop	Move.w	(a1)+,d4
	Move.w	(a1)+,d5
	Add.w	d4,d4
	Add.w	d4,d4
	Add.w	d5,d5
	Add.w	d5,d5
	Movem.w	0(a2,d4.w),d0/d1
	Movem.w	0(a2,d5.w),d2/d3
	Cmp.w	d1,d3
	Bpl.s	CheckSameY
	Exg	d2,d0
	Exg	d3,d1
CheckSameY	Cmp.w	#0,d3
	Bmi	DoNextConnect
	Cmp.w	#$012B,d1
	Bpl	DoNextConnect
	Cmp.w	#0,d1
	Bpl.s	ClipVec1
	Sub.w	d2,d0
	Sub.w	d3,d1
	Move.w	d3,d4
	Sub.w	#0,d4
	Muls	d4,d0
	Divs	d1,d0
	Sub.w	d2,d0
	Neg.w	d0
	Move.w	#0,d1
	Cmp.w	#$015F,d0
	Bpl.s	ClipVec1
	Bset	#4,Flags
	Move.w	d1,-(a3)
ClipVec1	Cmp.w	#$012B,d3
	Bmi.s	ClipVec2
	Move.w	d2,d4
	Sub.w	d0,d2
	Move.w	d1,d5
	Sub.w	d3,d5
	Sub.w	#$012B,d3
	Muls	d3,d2
	Divs	d5,d2
	Add.w	d4,d2
	Move.w	#$012B,d3
	Cmp.w	#$015F,d2
	Bpl.s	ClipVec2
	Bset	#4,Flags
	Move.w	d3,-(a3)
ClipVec2	Cmp.w	#$015F,d0
	Bpl.s	ClipVec3
	Cmp.w	#0,d0
	Bmi	ClipVec4
	Cmp.w	#$015F,d2
	Bpl	ClipVec5
	Cmp.w	#0,d2
	Bmi	SetCopperData
	Bra	CopperLine1
 
ClipVec3	Cmp.w	#$015F,d2
	Bpl	DoNextConnect1
	Sub.w	d3,d1
	Sub.w	d2,d0
	Move.w	d2,d4
	Sub.w	#$015F,d4
	Muls	d4,d1
	Divs	d0,d1
	Sub.w	d3,d1
	Neg.w	d1
	Move.w	#$015F,d0
	Bset	#2,Flags
	Move.w	d1,-(a3)
	Cmp.w	#0,d2
	Bmi	SetCopperData
	Bra.s	CopperLine1
 
ClipVec4	Cmp.w	#0,d2
	Bmi	DoNextConnect
	Sub.w	d3,d1
	Move.w	d2,d4
	Sub.w	#0,d4
	Sub.w	d2,d0
	Muls	d4,d1
	Divs	d0,d1
	Sub.w	d3,d1
	Neg.w	d1
	Move.w	#0,d0
	Cmp.w	#$015F,d2
	Bpl	ClipVec5
	Bra.s	CopperLine1
 
ClipVec5	Move.w	d3,d6
	Sub.w	d1,d3
	Move.w	d0,d5
	Sub.w	d2,d5
	Sub.w	#$015F,d2
	Muls	d2,d3
	Divs	d5,d3
	Add.w	d6,d3
	Move.w	#$015F,d2
	Bset	#2,Flags
	Move.w	d3,-(a3)
	Bra.s	CopperLine1
 
SetCopperData	Move.w	d3,d6
	Sub.w	d1,d3
	Move.w	d0,d5
	Sub.w	d2,d5
	Sub.w	#0,d2
	Muls	d2,d3
	Divs	d5,d3
	Add.w	d6,d3
	Move.w	#0,d2
CopperLine1	Cmp.w	d1,d3
	Beq	DoNextConnect
	Addq.w	#1,d1
	Move.l	#$10000,(a5)+
	Move.w	d0,d5
	Move.w	d1,d4
	Muls	#$2C,d4
	Asr.w	#3,d5
	Add.w	d5,d4
	Add.l	a6,d4
	Move.w	#$4A,(a5)+
	Move.w	d4,(a5)+
	Move.w	#$56,(a5)+
	Move.w	d4,(a5)+
	Swap	d4
	Move.w	#$48,(a5)+
	Move.w	d4,(a5)+
	Move.w	#$54,(a5)+
	Move.w	d4,(a5)+
	Move.w	d0,d5
	And.w	#15,d5
	Ror.w	#4,d5
	Add.w	#$0B4A,d5
	Move.w	#$40,(a5)+
	Move.w	d5,(a5)+
	Moveq.l	#0,d4
	Sub.w	d2,d0
	Bpl.s	CalcCop1
	Neg.w	d0
	Or.b	#1,d4
CalcCop1	Sub.w	d3,d1
	Bpl.s	CalcCop2
	Neg.w	d1
	Or.b	#2,d4
CalcCop2	Cmp.w	d0,d1
	Bmi.s	CheckOctants
	Or.b	#4,d4
	Exg	d0,d1
CheckOctants	Move.b	Octants(pc,d4.w),d4
	Add.w	d1,d1
	Move.w	#$62,(a5)+
	Move.w	d1,(a5)+
	Sub.w	d0,d1
	Bpl.s	SetDataInCop
	Bset	#6,d4
SetDataInCop	Move.w	#$42,(a5)+
	Move.w	d4,(a5)+
	Move.w	#$52,(a5)+
	Move.w	d1,(a5)+
	Move.w	d1,d3
	Sub.w	d0,d1
	Move.w	#$64,(a5)+
	Move.w	d1,(a5)+
	Lsl.w	#6,d0
	Add.w	#$42,d0
	Move.w	#$58,(a5)+
	Move.w	d0,(a5)+
	Bra.s	DoNextConnect
 
Octants	Dc.l	$1F1B1713
	Dc.l	$0F070B03
DoNextConnect	Dbra	d7,DrawLineLoop
	Bra.s	FinalCopCalc
 
DoNextConnect1	Bset	#3,Flags
	Dbra	d7,DrawLineLoop
FinalCopCalc	Btst	#2,Flags
	Beq.s	CopDataPlace
	Cmp.l	#EndRotPoints,a3
	Bne.s	CopDataPlace
	Btst	#3,Flags
	Bne	EndCoordData
CopDataPlace	Btst	#4,Flags
	Beq	CheckEndData
	Btst	#3,Flags
	Beq	CheckEndData
	Cmp.l	#EndRotPoints,a3
	Bne	CheckEndData
	Move.w	#$015F,d0
	Move.w	#0,d1
	Move.w	d0,d2
	Move.w	#$012B,d3
	Addq.w	#1,d1
	Move.l	#$10000,(a5)+
	Move.w	d0,d5
	Move.w	d1,d4
	Muls	#$2C,d4
	Asr.w	#3,d5
	Add.w	d5,d4
	Add.l	a6,d4
	Move.w	#$4A,(a5)+
	Move.w	d4,(a5)+
	Move.w	#$56,(a5)+
	Move.w	d4,(a5)+
	Swap	d4
	Move.w	#$48,(a5)+
	Move.w	d4,(a5)+
	Move.w	#$54,(a5)+
	Move.w	d4,(a5)+
	Move.w	d0,d5
	And.w	#15,d5
	Ror.w	#4,d5
	Add.w	#$0B4A,d5
	Move.w	#$40,(a5)+
	Move.w	d5,(a5)+
	Moveq.l	#0,d4
	Sub.w	d2,d0
	Bpl.s	CalcCop1a
	Neg.w	d0
	Or.b	#1,d4
CalcCop1a	Sub.w	d3,d1
	Bpl.s	CalcCop2a
	Neg.w	d1
	Or.b	#2,d4
CalcCop2a	Cmp.w	d0,d1
	Bmi.s	CheckOctants1a
	Or.b	#4,d4
	Exg	d0,d1
CheckOctants1a	Move.b	Octants1a(pc,d4.w),d4
	Add.w	d1,d1
	Move.w	#$62,(a5)+
	Move.w	d1,(a5)+
	Sub.w	d0,d1
	Bpl.s	NoSet6Flag
	Bset	#6,d4
NoSet6Flag	Move.w	#$42,(a5)+
	Move.w	d4,(a5)+
	Move.w	#$52,(a5)+
	Move.w	d1,(a5)+
	Move.w	d1,d3
	Sub.w	d0,d1
	Move.w	#$64,(a5)+
	Move.w	d1,(a5)+
	Lsl.w	#6,d0
	Add.w	#$42,d0
	Move.w	#$58,(a5)+
	Move.w	d0,(a5)+
	Bra.s	CalcTheCopSet
 
Octants1a	Dc.l	$1F1B1713
	Dc.l	$0F070B03
CalcTheCopSet	Bra	EndCoordData
 
CheckEndData	Cmp.l	#EndRotPoints,a3
	Bpl	EndCoordData
	Movem.w	(a3)+,d1/d3
	Cmp.w	d1,d3
	Beq	DoCheckData
	Move.w	#$015F,d0
	Move.w	d0,d2
	Cmp.w	d1,d3
	Bpl.s	CheckYLine1
	Exg	d2,d0
	Exg	d3,d1
CheckYLine1	Addq.w	#1,d1
	Move.l	#$10000,(a5)+
	Move.w	d0,d5
	Move.w	d1,d4
	Muls	#$2C,d4
	Asr.w	#3,d5
	Add.w	d5,d4
	Add.l	a6,d4
	Move.w	#$4A,(a5)+
	Move.w	d4,(a5)+
	Move.w	#$56,(a5)+
	Move.w	d4,(a5)+
	Swap	d4
	Move.w	#$48,(a5)+
	Move.w	d4,(a5)+
	Move.w	#$54,(a5)+
	Move.w	d4,(a5)+
	Move.w	d0,d5
	And.w	#15,d5
	Ror.w	#4,d5
	Add.w	#$0B4A,d5
	Move.w	#$40,(a5)+
	Move.w	d5,(a5)+
	Moveq.l	#0,d4
	Sub.w	d2,d0
	Bpl.s	CalVars1
	Neg.w	d0
	Or.b	#1,d4
CalVars1	Sub.w	d3,d1
	Bpl.s	CalVars2
	Neg.w	d1
	Or.b	#2,d4
CalVars2	Cmp.w	d0,d1
	Bmi.s	CheckOctants1b
	Or.b	#4,d4
	Exg	d0,d1
CheckOctants1b	Move.b	Octants1b(pc,d4.w),d4
	Add.w	d1,d1
	Move.w	#$62,(a5)+
	Move.w	d1,(a5)+
	Sub.w	d0,d1
	Bpl.s	SetCopper1a
	Bset	#6,d4
SetCopper1a	Move.w	#$42,(a5)+
	Move.w	d4,(a5)+
	Move.w	#$52,(a5)+
	Move.w	d1,(a5)+
	Move.w	d1,d3
	Sub.w	d0,d1
	Move.w	#$64,(a5)+
	Move.w	d1,(a5)+
	Lsl.w	#6,d0
	Add.w	#$42,d0
	Move.w	#$58,(a5)+
	Move.w	d0,(a5)+
	Bra.s	DoCheckData
 
Octants1b	Dc.l	$1F1B1713
	Dc.l	$0F070B03
DoCheckData	Bra	CheckEndData
 
EndCoordData	Bclr	#2,Flags
	Bclr	#3,Flags
	Bclr	#4,Flags
	Move.l	a6,d0
	Add.l	#$0338E,d0
	Move.l	#$10000,(a5)+
	Move.l	#$4009F0,(a5)+
	Move.l	#$42001A,(a5)+
	Move.l	#$640001,(a5)+
	Move.l	#$660001,(a5)+
	Move.l	#$44FFFF,(a5)+
	Move.l	#$46FFFF,(a5)+
	Move.w	#$52,(a5)+
	Move.w	d0,(a5)+
	Move.w	#$56,(a5)+
	Move.w	d0,(a5)+
	Swap	d0
	Move.w	#$50,(a5)+
	Move.w	d0,(a5)+
	Move.w	#$54,(a5)+
	Move.w	d0,(a5)+
	Move.l	#$584AD6,(a5)+
	Move.l	#$ffffFFFE,(a5)+
	Rts
 
VBL	Move.l	$Dff004,d0
	And.l	#$01FF00,d0
	Cmp.l	#$012400,d0
	Bne.s	VBL
	Rts	
 
SetCopperLists	Move.l	#Piccy1,d0
	Move.l	#Piccy2,d1
	Lea	CopperList1(pc),a0
	Lea	CopperList2(pc),a1
	Lea	CopperBlitBPLS1(pc),a2
	Lea	CopperBlitBPLS2(pc),a3	
	Move.w	d0,6(a1)
	Move.w	d0,6(a2)
	Move.w	d1,6(a0)
	Move.w	d1,6(a3)
	Swap	d0
	Swap	d1
	Move.w	d0,2(a1)
	Move.w	d0,2(a2)
	Move.w	d1,2(a0)
	Move.w	d1,2(a3)
	Rts	
 
DoubleBuffer	Btst	#0,Flags
	Bne.s	DBuffer1
	Move.l	#Piccy1,a6
	Move.l	#Piccy2,a4
	Move.l	#CopperList1,$Dff080
	Lea	CopBlit1,a5
	Bra.s	Altern8Buff
 
DBuffer1	Move.l	#Piccy2,a6
	Move.l	#Piccy1,a4
	Move.l	#CopperList2,$Dff080
	Lea	CopBlit2,a5
Altern8Buff	Bchg	#0,Flags
	Rts	
 

GFXName	Dc.b	"graphics.library",0
	Even
OldCop1	Dc.l	0	
OldCop2	Dc.l	0	
OldIntEna	Dc.w	0	
OldDmaCon	Dc.w	0	
Screen	Dc.l	$c0000	

SineVar1	Dc.w	0
SineVar2	Dc.w	0
SineVar3	Dc.w	0
SineVar4	Dc.w	0
SineVar5	Dc.w	0
SineVar6	Dc.w	0

XRot	Dc.w	10
YRot	Dc.w	10
ZRot	Dc.w	10

PointsAm	Dc.w	0

DistX	Dc.w	500
DistY	Dc.w	500
TempDist	Dc.w	0

XPos	Dc.w	176
YPos	Dc.w	148

SineXPt	Dc.l	0
SineXPt1	Dc.l	0
SineXAdd	Dc.l	70
SineXAdd1	Dc.l	54

SineYPt	Dc.l	0
SineYPt1	Dc.l	0
SineYAdd	Dc.l	66
SineYAdd1	Dc.l	44

ObjectPt	Dc.l	0

XSize	Dc.w	0
YSize	Dc.w	0

MiscVar1	Dc.w	0
MiscVar2	Dc.w	$07d0
MiscVar3	Dc.w	10
MiscVar4	Dc.w	0
MiscVar5	Dc.w	0
MiscVar6	Dc.w	1
MiscVar7	Dc.w	$f441
MiscVar8	Dc.w	$09e7
	Dc.w	2
	Dc.w	$7bd6
MiscPtr1	Dc.l	0

ConnectPtr	Dc.l	Connects
MiscVar9	Dc.w	$49

DrawX	Dc.w	$4
DrawVar1	Dc.w	$fffc
DrawVar2	Dc.w	$3
DrawVar3	Dc.w	$1
DrawVar4	Dc.w	$1

FrameWait	Dc.w	$18

VecType	Dc.w	14

StatVar	Dc.w	0

Flags	Dc.w	0
Flags1	Dc.w	0
Flags2	Dc.w	$49
Flags3	Dc.w	$4d
Flags4	Dc.w	$36
Flags5	Dc.w	$4b

RotPtr	Dc.l	0

*****************************************************************************
* LSD Vector Logo Data - L / S (top, dot, bottom) / D   *   Phagex 27-8-93  *
*****************************************************************************

L_Points	Dc.w	8
	Dc.w	$FF79,$FFEB,$FF6E,$0000,$FF79,$0017,$FFCC,$0017
	Dc.w	$FFD4,$0008,$FF95,$0008,$FF92,$0001,$FF9D,$FFEB

STop_Points	Dc.w	8
	Dc.w	$FFCB,$FFEB,$0026,$FFEB,$001F,$FFFA,$FFE7,$FFFA
	Dc.w	$FFE3,$0001,$FFE5,$0005,$FFC2,$0005,$FFC0,$0001

SDot_Points	Dc.w	8	
	Dc.w	$FFF4,$FFFF,$FFF9,$FFFD,$FFFE,$FFFD,$0003,$FFFF
	Dc.w	$0003,$0003,$FFFE,$0005,$FFF9,$0005,$FFF4,$0003

SBot_Points	Dc.w	8
	Dc.w	$0012,$FFFD,$0035,$FFFD,$0037,$0001,$002C,$0017
	Dc.w	$FFD1,$0017,$FFD8,$0008,$0010,$0008,$0014,$0001

D_Points	Dc.w	10
	Dc.w	$002B,$FFEB,$0088,$FFEB,$0093,$0001,$0088,$0017
	Dc.w	$0031,$0017,$0038,$0008,$006B,$0008,$006F,$0000
	Dc.w	$006C,$FFFA,$0024,$FFFA

LSDConnects	Dc.w	42
	Dc.w	00,01,01,02,02,03,03,04,04,05,05,06,06,07,07,00
	Dc.w	08,09,09,10,10,11,11,12,12,13,13,14,14,15,15,08
	Dc.w	16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,16
	Dc.w	24,25,25,26,26,27,27,28,28,29,29,30,30,31,31,24
	Dc.w	32,33,33,34,34,35,35,36,36,37,37,38,38,39,39,40,40,41,41,32

RotPoints	Dc.w	30,40
	Dc.w	40,60
	Dc.w	60,60
	Dc.w	60,40
	
	Ds.w	600
EndRotPoints	Dc.w	0

Connects	Dc.w	4
	Dc.w	0,1
	Dc.w	1,2
	Dc.w	2,3
	Dc.w	3,0	

Cmv	Macro
	Dc.w	\2,\1
	EndM
	
Cwt	Macro
	Dc.w	(\1*$100)+$01,$fffe
	EndM	
	
CwtBlit	Macro
	Dc.w	$1,0
	EndM	

Pal	Macro
	Dc.w	$ffe1,$fffe
	EndM	

EndCop	Macro
	Dc.w	$ffff,$fffe
	EndM	

CopperList	Cwt	$15	
	Cmv	$0200,BplCon0	
	Cmv	$00bb,BplCon1	
	Cmv	$000a,BplCon2	
	Cmv	$1681,DiwStrt	
	Cmv	$36c1,DiwStop
	Cmv	$0034,DdfStrt	
	Cmv	$00c8,DdfStop	
	Cmv	$0,BplMod1
	Cmv	$0,BplMod2
	
	Cwt	$25		
	Cmv	$0000,Color01
	Cmv	$0fff,Color01
	
CopperBPLS	Cmv	$c,BplPt0h	
	Cmv	$0,BplPt0l	
	Cmv	$0,BplPt1h	
	Cmv	$0,BplPt1l	
	Cmv	$0,BplPt2h	
	Cmv	$0,BplPt2l	
	Cmv	$0,BplPt3h	
	Cmv	$0,BplPt3l	
	Cmv	$0,BplPt4h
	Cmv	$0,BplPt4l 
	
	Cwt	$28	
	Cmv	$1200,BplCon0	

	EndCop

CopperList1	Cmv	$0,BplPt0h
	Cmv	$0,BplPt0l
	Cmv	$0c71,DiwStrt
	Cmv	$37d1,DiwStop
	Cmv	$0030,DdfStrt
	Cmv	$00d8,DdfStop

	Cmv	$1200,BplCon0
	Cmv	$0000,BplCon1
	Cmv	$0024,BplCon2
	Cmv	$0,BplMod1
	Cmv	$0,BplMod2

	Cmv	$0000,Color01
	Cmv	$0fff,Color01
		
	CwtBlit	
	Cmv	$01f0,BltCon0
	Cmv	$0000,BltCon1
	Cmv	$ffff,BltAFWM
	Cmv	$ffff,BltALWM
	Cmv	$0000,BltADat
CopperBlitBPLS1	Cmv	$0000,BltDPth
	Cmv	$0000,BltDPtl
	Cmv	$0000,BltDMod
	Cmv	$4ad6,BltSize
	CwtBlit
	Cmv	$002c,BltCMod
	Cmv	$002c,BltDMod
	Cmv	$ffff,BltBDat
	Cmv	$8000,BltADat
	
CopBlit1	EndCop
	Ds.l	$420

CopperList2	Cmv	$0,BplPt0h
	Cmv	$0,BplPt0l
	Cmv	$0c71,DiwStrt
	Cmv	$37d1,DiwStop
	Cmv	$0030,DdfStrt
	Cmv	$00d8,DdfStop

	Cmv	$1200,BplCon0
	Cmv	$0000,BplCon1
	Cmv	$0024,BplCon2
	Cmv	$0,BplMod1
	Cmv	$0,BplMod2

	Cmv	$0000,Color01
	Cmv	$0fff,Color01
		
	CwtBlit	
	Cmv	$01f0,BltCon0
	Cmv	$0000,BltCon1
	Cmv	$ffff,BltAFWM
	Cmv	$ffff,BltALWM
	Cmv	$0000,BltADat
CopperBlitBPLS2	Cmv	$0000,BltDPth
	Cmv	$0000,BltDPtl
	Cmv	$0000,BltDMod
	Cmv	$4ad6,BltSize
	CwtBlit
	Cmv	$002c,BltCMod
	Cmv	$002c,BltDMod
	Cmv	$ffff,BltBDat
	Cmv	$8000,BltADat
	
CopBlit2	EndCop
	Ds.l	$420

SineData	Incbin	Df0:SysData/Sine1024Bs.Dat
	Incbin	Df0:SysData/Sine1024Bs.Dat
VecSineTable	Incbin	Df0:SysData/VecSine.Data

****Custom Chip Registers****

Hardware	= $Dff000

;Control Registers

Dmaconr	= $002
Vposr	= $004
Vhposr	= $006
Joy0dat	= $00A
Joy1dat	= $00C
Clxdat	= $00E
Intenar	= $01C
Intereqr	= $01E
Copcon	= $02E

;Blitter Registers

Bltcon0	= $040
Bltcon1	= $042
Bltafwm	= $044
Bltalwm	= $046
Bltcpth	= $048
Bltcptl	= $04A
Bltbpth	= $04C
Bltbptl	= $04E
Bltapth	= $050
Bltaptl	= $052
Bltdpth	= $054
Bltdptl	= $056
Bltsize	= $058
Bltcmod	= $060
Bltbmod	= $062
Bltamod	= $064
Bltdmod	= $066
Bltcdat	= $070
Bltbdat	= $072
Bltadat	= $074

;Copper Registers

Cop1lc	= $080
Cop1lch	= $080
Cop1lcl	= $082
Cop2lc	= $084
Cop2lch	= $084
Cop2lcl	= $086
Copjmp1	= $088
Copjmp2	= $08A
Diwstrt	= $08E
Diwstop	= $090
Ddfstrt	= $092
Ddfstop	= $094
Dmacon	= $096
Clxcon	= $098
Intena	= $09A
Intreq	= $09C

;BitPlane Registers 

BplCon0	= $100
BplCon1	= $102
BplCon2	= $104
BplMod1	= $108
BplMod2	= $10a

BplPt0h	= $0e0
BplPt0l	= $0e2
BplPt1h	= $0e4
BplPt1l	= $0e6
BplPt2h	= $0e8
BplPt2l	= $0ea
BplPt3h	= $0ec
BplPt3l	= $0ee
BplPt4h	= $0f0
BplPt4l	= $0f2
BplPt5h	= $0f4
BplPt5l	= $0f6

;Colour Registers

Color00	= $180
Color01	= $182
Color02	= $184
Color03	= $186
Color04	= $188
Color05	= $18a
Color06	= $18c
Color07	= $18e
Color08	= $190
Color09	= $192
Color10	= $194
Color11	= $196
Color12	= $198
Color13 	= $19a
Color14 	= $19c
Color15 	= $19e
Color16 	= $1a0
Color17 	= $1a2
Color18 	= $1a4
Color19 	= $1a6
Color20 	= $1a8
Color21 	= $1aa
Color22 	= $1ac
Color23 	= $1ae
Color24 	= $1b0
Color25 	= $1b2
Color26 	= $1b4
Color27 	= $1b6
Color28 	= $1b8
Color29 	= $1ba
Color30 	= $1bc
Color31 	= $1be

EcsNop	= $1fe

































