scene.org File Archive

File download

<root>­/­resources­/­code­/­sources­/­laffik/laffik-sources-03b.lha

File size:
507 662 bytes (495.76K)
File date:
2023-05-14 05:45:01
Download count:
all-time: 123

Preview

  • laffik-asm-sources\03b\PivotalMoveBobsPoly01.exe 575.67K
  • laffik-asm-sources\03b\PivotalMoveBobsPoly01y.exe 575.67K
  • laffik-asm-sources\03b\PivotalMoveBobsPoly03.S 21.86K
  • laffik-asm-sources\03b\PivotalMoveBobsPoly04.S 23.32K
  • laffik-asm-sources\03b\PivotalMoveBobsPoly05.exe 479.19K
  • laffik-asm-sources\03b\PivotalMoveBobsPoly05.S 27.07K
  • laffik-asm-sources\03b\PivotalMoveBobsPoly05y.exe 449.73K
  • laffik-asm-sources\03b\PivotalMoveBobsPoly05y.S 27.07K
  • laffik-asm-sources\03b\PivotalMoveBobsPoly06.exe 449.74K
  • laffik-asm-sources\03b\PivotalMoveBobsPoly06.S 27.07K
  • laffik-asm-sources\03b\PivotalMoveBobsPoly06Yellow.exe 449.74K
  • laffik-asm-sources\03b\PivotalMoveBobsPoly06Yellow.S 27.07K
  • laffik-asm-sources\03b\PivotalMoveBobsPoly06Yellow.txt 28.89K

file_id.diz

::::::::
laffik-asm-sources/03b/PivotalMoveBobsPoly06Yellow.txt
::::::::
Start:
		JSR	StoreCopper

		MOVE.L	#Plane1,Showplane
		MOVE.L	#Plane2,Workplane
		MOVE.L	#Copper1,Showcop
		MOVE.L	#Copper2,Workcop

		JSR	FillC1Planes
		JSR	FillC2Planes

		JSR	FillC1C2Palettes

		MOVE.L	Workcop,$dff080

	wblt:	BTST	#14,$dff002
		BNE	wblt


		MOVE.L	#$0,MaxX
		MOVE.L	#$0fffffff,MinX
		MOVE.L	#$0,MaxY
		MOVE.L	#$0fffffff,MinY
	retrigger:
		LEA	Sequence,a2
		LEA	Sequence,a4
		MOVE.W	AddSub,d7
		NOT.W	d7
		MOVE.W	d7,AddSub
	loopenz:

		BTST.B	#6,$bfe001
		BEQ	tu

		MOVEQ	#0,d7
		MOVE.W	(a2)+,d7
		CMP.W	#$250,d7
		BEQ	DrawLine
		CMP.W	#$251,d7
		BEQ	DrawPolyLine
		CMP.W	#$252,d7
		BEQ	DrawPolyLine3
		CMP.W	#$520,d7
		BEQ	DrawPixel
		CMP.W	#$667,d7
		BEQ	CopyPolygonToSpare
		CMP.W	#$929,d7
		BNE	noShowtime
		MOVE.W	AddSub,d7
		;CMP.W	#0,d7
		;BNE	ShowtimeSub
		;BRA	Showtime
		BRA	ShowtimeReplace
	noShowtime:		
		CMP.W	#$fff,d7
		;BEQ	tu		;quit
		BEQ	retrigger	;loop
		;BEQ	WaitMouse	;wait l mouse button
	tu:
		JSR	RestoreCopper
		RTS

WaitMouse:
		BTST.B	#6,$bfe001
		BNE	WaitMouse

		BRA	tu

DrawPixel:

		MOVE.L	#DP1,a1

		MOVE.W	(a2)+,d1
		MOVE.W	(a2)+,d2

		;BRA	loopenz

		MOVE.W	d1,d3
		LSR.W	#3,d3
		MULU	#40,d2
		ADD.W	d3,d2
		NOT	d1
		BCHG	d1,(a1,d2.w)

		BRA	loopenz

ShowtimeReplace:
		;JSR	CopySpare2Draw2

		MOVE.L	#0,d6

		;JSR	CopySpare2Over
		JSR	CopySpare2WorkRepl

		ADD.L	#$2800,d6

		;JSR	CopySpare2Over
		JSR	CopySpare2WorkRepl

		ADD.L	#$2800,d6

		;JSR	CopySpare2Over
		JSR	CopySpare2WorkRepl

		ADD.L	#$2800,d6

		;JSR	CopySpare2Over
		JSR	CopySpare2WorkRepl

		ADD.L	#$2800,d6

		;JSR	CopySpare2Over
		JSR	CopySpare2WorkRepl

		JSR	ClearDraw2
		JSR	ClearSpare

		JSR	WaitVBL
		JSR	Swap
		;JSR	Clear
;	rmbflickr:
;		BTST.B	#10,$dff016
;		BNE	rmbflickr

	rmblprr:
		BTST.B	#10,$dff016
		BEQ	rmblprr

		BRA	loopenz

Showtime:
		;JSR	CopySpare2Draw2

		MOVE.L	#0,d6

		JSR	CopySpare2Over
		JSR	CopySpare2Work

		ADD.L	#$2800,d6

		JSR	CopySpare2Over
		JSR	CopySpare2Work

		ADD.L	#$2800,d6

		JSR	CopySpare2Over
		JSR	CopySpare2Work

		ADD.L	#$2800,d6

		JSR	CopySpare2Over
		JSR	CopySpare2Work

		ADD.L	#$2800,d6

		JSR	CopySpare2Over
		JSR	CopySpare2Work

		JSR	ClearDraw2
		JSR	ClearSpare

		JSR	WaitVBL
		;JSR	Swap
		;JSR	Clear
;	rmbflick:
;		BTST.B	#10,$dff016
;		BNE	rmbflick

	rmblpr:	BTST.B	#10,$dff016
		BEQ	rmblpr

		BRA	loopenz


ShowtimeSub:
		;JSR	CopySpare2Draw2

		MOVE.L	#0,d6

		JSR	CopySpare2OverSub
		JSR	CopySpare2Work

		ADD.L	#$2800,d6

		JSR	CopySpare2OverSub
		JSR	CopySpare2Work

		ADD.L	#$2800,d6

		JSR	CopySpare2OverSub
		JSR	CopySpare2Work

		ADD.L	#$2800,d6

		JSR	CopySpare2OverSub
		JSR	CopySpare2Work

		ADD.L	#$2800,d6

		JSR	CopySpare2OverSub
		JSR	CopySpare2Work

		JSR	ClearDraw2
		JSR	ClearSpare

		JSR	WaitVBL
		;JSR	Swap
		;JSR	Clear
;	rmbflicks:
;		BTST.B	#10,$dff016
;		BNE	rmbflicks

	rmblprs:
		BTST.B	#10,$dff016
		BEQ	rmblprs

		BRA	loopenz

CopyPolygonToSpare:
		MOVE.W	(a2)+,Kolorro
		;MOVE.W	#1,Kolorro

		;ADD.L	#5,MaxY
		;SUB.L	#5,MinY

		JSR	CopyDraw2Draw2
		JSR	ClearDraw
		MOVE.W	Kolorro,d2
		BTST	#0,d2
		BNE	CopyDraw22Spare0
		BRA	CopyDraw22Spare0c
	cdw1:	
		MOVE.W	Kolorro,d2
		BTST	#1,d2
		BNE	CopyDraw22Spare1
		BRA	CopyDraw22Spare1c
	cdw2:	
		MOVE.W	Kolorro,d2
		BTST	#2,d2
		BNE	CopyDraw22Spare2
		BRA	CopyDraw22Spare2c
	cdw3:	
		MOVE.W	Kolorro,d2
		BTST	#3,d2
		BNE	CopyDraw22Spare3		
		BRA	CopyDraw22Spare3c
	cdw4:	
		MOVE.W	Kolorro,d2
		BTST	#4,d2
		BNE	CopyDraw22Spare4		
		BRA	CopyDraw22Spare4c
	cdw5:
		JSR	ClearDraw2

		MOVE.L	#$0,MaxX
		MOVE.L	#$0fffffff,MinX
		MOVE.L	#$0,MaxY
		MOVE.L	#$0fffffff,MinY

		MOVE.L	#0,CoordsOffset

		LEA	PolygonCoords,a0
		MOVE.L	#0,(a0)+
		MOVE.L	#0,(a0)+
		MOVE.L	#0,(a0)+
		MOVE.L	#0,(a0)+
		MOVE.L	#0,(a0)+
		MOVE.L	#0,(a0)+
		MOVE.L	#0,(a0)+
		MOVE.L	#0,(a0)+
		MOVE.L	#0,(a0)+
		MOVE.L	#0,(a0)+
		MOVE.L	#0,(a0)+
		MOVE.L	#0,(a0)+
		MOVE.L	#0,(a0)+
		MOVE.L	#0,(a0)+
		MOVE.L	#0,(a0)+
		MOVE.L	#0,(a0)+
		MOVE.L	#0,(a0)+
		MOVE.L	#0,(a0)+
		MOVE.L	#0,(a0)+
		MOVE.L	#0,(a0)+

		BRA	loopenz
		
DrawLine:
		MOVE.W	(a2)+,d1
		MOVE.W	(a2)+,d2
		MOVE.W	(a2)+,d3
		MOVE.W	(a2)+,d4

		EXT.L	d1
		EXT.L	d2
		EXT.L	d3
		EXT.L	d4
		
		JSR	SetMinMax

		JSR	WriteCoords

		JSR	Kreska

		BRA	loopenz

DrawPolyLine:
		MOVE.W	(a2),d1
		MOVE.W	2(a2),d2
		MOVE.W	4(a2),d3
		MOVE.W	6(a2),d4

		EXT.L	d1
		EXT.L	d2
		EXT.L	d3
		EXT.L	d4
		
		JSR	SetMinMax

		JSR	WriteCoords

		JSR	Kreska

		MOVE.W	4(a2),d1
		MOVE.W	6(a2),d2
		MOVE.W	8(a2),d3
		MOVE.W	10(a2),d4

		EXT.L	d1
		EXT.L	d2
		EXT.L	d3
		EXT.L	d4
		
		JSR	SetMinMax

		JSR	WriteCoords

		JSR	Kreska

		MOVE.W	8(a2),d1
		MOVE.W	10(a2),d2
		MOVE.W	12(a2),d3
		MOVE.W	14(a2),d4

		EXT.L	d1
		EXT.L	d2
		EXT.L	d3
		EXT.L	d4
		
		JSR	SetMinMax

		JSR	WriteCoords

		JSR	Kreska

		MOVE.W	12(a2),d1
		MOVE.W	14(a2),d2
		MOVE.W	(a2),d3
		MOVE.W	2(a2),d4

		ADDA.L	#16,a2

		EXT.L	d1
		EXT.L	d2
		EXT.L	d3
		EXT.L	d4
		
		JSR	SetMinMax

		JSR	WriteCoords

		JSR	Kreska

		BRA	loopenz

DrawPolyLine3:
		MOVE.W	(a2),d1
		MOVE.W	2(a2),d2
		MOVE.W	4(a2),d3
		MOVE.W	6(a2),d4

		EXT.L	d1
		EXT.L	d2
		EXT.L	d3
		EXT.L	d4
		
		JSR	SetMinMax

		JSR	WriteCoords

		JSR	Kreska

		MOVE.W	4(a2),d1
		MOVE.W	6(a2),d2
		MOVE.W	8(a2),d3
		MOVE.W	10(a2),d4

		EXT.L	d1
		EXT.L	d2
		EXT.L	d3
		EXT.L	d4
		
		JSR	SetMinMax

		JSR	WriteCoords

		JSR	Kreska

		MOVE.W	8(a2),d1
		MOVE.W	10(a2),d2
		MOVE.W	(a2),d3
		MOVE.W	2(a2),d4

		EXT.L	d1
		EXT.L	d2
		EXT.L	d3
		EXT.L	d4
		
		JSR	SetMinMax

		JSR	WriteCoords

		JSR	Kreska

		ADDA.L	#12,a2

		BRA	loopenz

WriteCoords:
		LEA	PolygonCoords,a0
		MOVE.L	CoordsOffset,d5

		MOVE.L	d1,(a0,d5.l)
		MOVE.L	d2,4(a0,d5.l)
		MOVE.L	d3,8(a0,d5.l)
		MOVE.L	d4,12(a0,d5.l)

		ADD.L	#16,d5

		MOVE.L	d5,CoordsOffset

		RTS

SetMinMax:
		MOVE.L	MinX,d5
		CMP.L	d1,d5
		BLE	nonewmin
		MOVE.L	d1,d5
	nonewmin:
		CMP.L	d3,d5
		BLE	nonewmin2
		MOVE.L	d3,d5
	nonewmin2:
		MOVE.L	d5,MinX

		MOVE.L	MaxX,d5
		CMP.L	d1,d5
		BGE	nonewmax
		MOVE.L	d1,d5
	nonewmax:
		CMP.L	d3,d5
		BGE	nonewmax2
		MOVE.L	d3,d5
	nonewmax2:
		MOVE.L	d5,MaxX

		MOVE.L	MinY,d5
		CMP.L	d2,d5
		BLE	nonewminy
		MOVE.L	d2,d5
	nonewminy:
		CMP.L	d4,d5
		BLE	nonewminy2
		MOVE.L	d4,d5
	nonewminy2:
		MOVE.L	d5,MinY

		MOVE.L	MaxY,d5
		CMP.L	d2,d5
		BGE	nonewmaxy
		MOVE.L	d2,d5
	nonewmaxy:
		CMP.L	d4,d5
		BGE	nonewmaxy2
		MOVE.L	d4,d5
	nonewmaxy2:
		MOVE.L	d5,MaxY
	
		RTS

Kreska:
		;BRA	aresorted
		CMP.L	d2,d4
		BGE	aresorted
		EXG.L	d1,d3
		EXG.L	d2,d4
	aresorted:

		MOVEQ	#0,d5
		MOVE.W	d1,d5
		ANDI.L	#$0f,d5
		LSL.L	#8,d5
		LSL.L	#4,d5
		OR.L	#%0000101101011010,d5	;XOR
		;OR.L	#%0000101111111010,d5	;OR

		MOVE.W	d5,$dff040
	
		MOVE.L	d1,d5
		SUB.L	d3,d5
		CMP.L	#0,d5
		BGE	noneg
		NEG.L	d5
	noneg:	MOVE.L	d5,DeltaX

		MOVE.L	d2,d5
		SUB.L	d4,d5
		CMP.L	#0,d5
		BGE	noneg2
		NEG.L	d5
	noneg2: MOVE.L	d5,DeltaY

		MOVE.L	DeltaX,d5
		MOVE.L	DeltaY,d6

		CMP.L	d5,d6
		BGE	nosfap
		EXG	d5,d6
	nosfap:	MOVE.L	d6,DX
		MOVE.L	d5,DY		

		MOVE.L	#DP1,d0

		MOVE.W	#$8000,$dff074
		MOVE.W	#$ffff,$dff072
		MOVE.W	#$ffff,$dff044
		MOVE.W	#$ffff,$dff046

		SUB.L	d6,d5
		ASL.L	#2,d5

		MOVE.W	d5,$dff064

		MOVE.L	DY,d5
		ASL.L	#2,d5

		MOVE.W	d5,$dff062

		MOVE.W	#40,$dff060
		MOVE.W	#40,$dff066

		MOVE.L	DY,d5
		MOVE.L	DX,d6

		LSL.L	#2,d5
		LSL.L	#2,d6
		SUB.L	d6,d5

		MOVE.B	#0,Sign
		CMP.L	#0,d5
		BGE	noset
		MOVE.B	#64,Sign
	noset:
		MOVE.L	d5,$dff050
		
		MOVE.L	d2,d5
		MULU	#40,d5
		MOVE.L	d1,d6
		LSR.L	#4,d6
		LSL.L	#1,d6
		ADD.L	d6,d5

		ADD.L	d0,d5
		MOVE.L	d5,$dff048
		MOVE.L	d5,$dff054

		MOVEQ	#0,d0

		MOVE.L	DeltaX,d5
		MOVE.L	DeltaY,d6	

		CMP.L	d5,d6
		BGE	nooneset1
		BSET.L	#0,d0
	nooneset1:
		CMP.L	d2,d4
		BGE	nooneset2
		BSET.L	#1,d0
	nooneset2:
		CMP.L	d1,d3
		BGE	nooneset3
		BSET.L	#2,d0
	nooneset3:
		LEA	Function,a3
		MOVE.B	(a3,d0.w),d6	

		MOVE.W	#%0000000000000011,d5
		OR.B	Sign,d5
		OR.B	d6,d5
		
		MOVE.W	d5,$dff042

		MOVE.L	DX,d5
		ADD.L	#1,d5
		LSL.L	#6,d5
		ADD.L	#2,d5

		MOVE.W	d5,$dff058

	wblt11:	BTST	#14,$dff002
		BNE	wblt11

		RTS

CopySpare2Over:
		MOVE.L	#0,d2
		MOVE.L	#319,d3
		LSR.L	#4,d2
		LSR.L	#4,d3
		LSL.L	#1,d2
		LSL.L	#1,d3

		MOVE.L	d3,d5
		SUB.L	d2,d5
		;LSR.L	#1,d5
		ADD.L	#2,d5
		MOVE.L	#40,d4
		SUB.L	d5,d4

		MOVE.W	d4,$dff064
		MOVE.W	d4,$dff062
		MOVE.W	d4,$dff060
		MOVE.W	d4,$dff066
		MOVE.L	#$0fe80002,$dff040
		MOVE.L	#$ffffffff,$dff044

		MOVE.L	#DP3,d4
		MOVE.L	#255,d5
		SUB.L	#1,d5
		MULU.L	#40,d5
		ADD.L	d3,d5
		ADD.L	d5,d4
		ADD.L	d6,d4
		MOVE.L	d4,$dff050	;a - obiekt
		MOVE.L	#DP2,d4
		ADD.L	d5,d4
		ADD.L	d6,d4
		ADD.L	#$2800,d4
		CMP.L	#$a000,d6
		BNE	nolastbt
		SUB.L	#$c800,d4
	nolastbt:
		MOVE.L	d4,$dff054	;d - overflow+1

		MOVE.L	Workplane,d4
		MOVE.L	#255,d5
		SUB.L	#1,d5
		MULU.L	#40,d5
		ADD.L	d3,d5
		ADD.L	d5,d4
		ADD.L	d6,d4
		MOVE.L	d4,$dff048	;c - workplane

		MOVE.L	#DP2,d4
		MOVE.L	#255,d5
		SUB.L	#1,d5
		MULU.L	#40,d5
		ADD.L	d3,d5
		ADD.L	d5,d4
		ADD.L	d6,d4
		MOVE.L	d4,$dff04c	;b - overflow
		
		MOVE.L	#255,d5
		SUB.L	#0,d5
		SUB.L	#1,d5
		MULU.L	#64,d5
		SUB.L	d2,d3
		LSR.L	#1,d3
		ADD.L	#1,d3
		ADD.L	d3,d5
		MOVE.W	d5,$dff058

	wbltw112938:
		BTST	#14,$dff002
		BNE.B	wbltw112938

		RTS

CopySpare2OverSub:
		MOVE.L	#0,d2
		MOVE.L	#319,d3
		LSR.L	#4,d2
		LSR.L	#4,d3
		LSL.L	#1,d2
		LSL.L	#1,d3

		MOVE.L	d3,d5
		SUB.L	d2,d5
		;LSR.L	#1,d5
		ADD.L	#2,d5
		MOVE.L	#40,d4
		SUB.L	d5,d4

		MOVE.W	d4,$dff064
		MOVE.W	d4,$dff062
		MOVE.W	d4,$dff060
		MOVE.W	d4,$dff066
		MOVE.L	#$0fd40002,$dff040
		MOVE.L	#$ffffffff,$dff044

		MOVE.L	#DP3,d4
		MOVE.L	#255,d5
		SUB.L	#1,d5
		MULU.L	#40,d5
		ADD.L	d3,d5
		ADD.L	d5,d4
		ADD.L	d6,d4
		MOVE.L	d4,$dff050	;a - obiekt
		MOVE.L	#DP2,d4
		ADD.L	d5,d4
		ADD.L	d6,d4
		ADD.L	#$2800,d4
		CMP.L	#$a000,d6
		BNE	nolastbts
		SUB.L	#$c800,d4
	nolastbts:
		MOVE.L	d4,$dff054	;d - overflow+1

		MOVE.L	Workplane,d4
		MOVE.L	#255,d5
		SUB.L	#1,d5
		MULU.L	#40,d5
		ADD.L	d3,d5
		ADD.L	d5,d4
		ADD.L	d6,d4
		MOVE.L	d4,$dff048	;c - workplane

		MOVE.L	#DP2,d4
		MOVE.L	#255,d5
		SUB.L	#1,d5
		MULU.L	#40,d5
		ADD.L	d3,d5
		ADD.L	d5,d4
		ADD.L	d6,d4
		MOVE.L	d4,$dff04c	;b - overflow
		
		MOVE.L	#255,d5
		SUB.L	#0,d5
		SUB.L	#1,d5
		MULU.L	#64,d5
		SUB.L	d2,d3
		LSR.L	#1,d3
		ADD.L	#1,d3
		ADD.L	d3,d5
		MOVE.W	d5,$dff058

	wbltw112938s:
		BTST	#14,$dff002
		BNE.B	wbltw112938s

		RTS


CopySpare2WorkRepl:

		MOVE.L	#0,d2
		MOVE.L	#319,d3
		LSR.L	#4,d2
		LSR.L	#4,d3
		LSL.L	#1,d2
		LSL.L	#1,d3

		MOVE.L	d3,d5
		SUB.L	d2,d5
		;LSR.L	#1,d5
		ADD.L	#2,d5
		MOVE.L	#40,d4
		SUB.L	d5,d4

		MOVE.W	d4,$dff064
		MOVE.W	d4,$dff062
		MOVE.W	d4,$dff060
		MOVE.W	d4,$dff066
		MOVE.L	#$0ff00002,$dff040
		MOVE.L	#$ffffffff,$dff044

		MOVE.L	#DP3,d4
		MOVE.L	#255,d5
		SUB.L	#1,d5
		MULU.L	#40,d5
		ADD.L	d3,d5
		ADD.L	d5,d4
		ADD.L	d6,d4
		MOVE.L	d4,$dff050	;a
		MOVE.L	Workplane,d4
		;ADD.L	#$2800,d4
		ADD.L	d5,d4
		ADD.L	d6,d4
		MOVE.L	d4,$dff054	;d
		MOVE.L	d4,$dff048	;c

		MOVE.L	#DP2,d4
		MOVE.L	#255,d5
		SUB.L	#1,d5
		MULU.L	#40,d5
		ADD.L	d3,d5
		ADD.L	d5,d4
		ADD.L	d6,d4
		MOVE.L	d4,$dff04c	;b
		
		MOVE.L	#255,d5
		SUB.L	#0,d5
		SUB.L	#1,d5
		MULU.L	#64,d5
		SUB.L	d2,d3
		LSR.L	#1,d3
		ADD.L	#1,d3
		ADD.L	d3,d5
		MOVE.W	d5,$dff058

	wbltw11299r:
		BTST	#14,$dff002
		BNE.B	wbltw11299r

		RTS


CopySpare2Work:
		MOVE.L	#0,d2
		MOVE.L	#319,d3
		LSR.L	#4,d2
		LSR.L	#4,d3
		LSL.L	#1,d2
		LSL.L	#1,d3

		MOVE.L	d3,d5
		SUB.L	d2,d5
		;LSR.L	#1,d5
		ADD.L	#2,d5
		MOVE.L	#40,d4
		SUB.L	d5,d4

		MOVE.W	d4,$dff064
		MOVE.W	d4,$dff062
		MOVE.W	d4,$dff060
		MOVE.W	d4,$dff066
		MOVE.L	#$0f960002,$dff040
		MOVE.L	#$ffffffff,$dff044

		MOVE.L	#DP3,d4
		MOVE.L	#255,d5
		SUB.L	#1,d5
		MULU.L	#40,d5
		ADD.L	d3,d5
		ADD.L	d5,d4
		ADD.L	d6,d4
		MOVE.L	d4,$dff050	;a
		MOVE.L	Workplane,d4
		;ADD.L	#$2800,d4
		ADD.L	d5,d4
		ADD.L	d6,d4
		MOVE.L	d4,$dff054	;d
		MOVE.L	d4,$dff048	;c

		MOVE.L	#DP2,d4
		MOVE.L	#255,d5
		SUB.L	#1,d5
		MULU.L	#40,d5
		ADD.L	d3,d5
		ADD.L	d5,d4
		ADD.L	d6,d4
		MOVE.L	d4,$dff04c	;b
		
		MOVE.L	#255,d5
		SUB.L	#0,d5
		SUB.L	#1,d5
		MULU.L	#64,d5
		SUB.L	d2,d3
		LSR.L	#1,d3
		ADD.L	#1,d3
		ADD.L	d3,d5
		MOVE.W	d5,$dff058

	wbltw11299:
		BTST	#14,$dff002
		BNE.B	wbltw11299

		RTS


CopyDraw22Spare0:
		MOVE.L	MinX,d2
		MOVE.L	MaxX,d3
		LSR.L	#4,d2
		LSR.L	#4,d3
		LSL.L	#1,d2
		LSL.L	#1,d3

		MOVE.L	d3,d5
		SUB.L	d2,d5
		;LSR.L	#1,d5
		ADD.L	#2,d5
		MOVE.L	#40,d4
		SUB.L	d5,d4

		MOVE.W	d4,$dff064
		MOVE.W	d4,$dff060
		MOVE.W	d4,$dff066
		MOVE.L	#$0bfa0002,$dff040
		MOVE.L	#$ffffffff,$dff044
		MOVE.L	#DP2,d4
				
		MOVE.L	MaxY,d5
		;SUB.L	Shifter,d5
		MULU.L	#40,d5
		ADD.L	d3,d5
		ADD.L	d5,d4
		MOVE.L	d4,$dff050
		MOVE.L	#DP3,d4
		;ADD.L	#$2800*3,d4
		ADD.L	d5,d4
		MOVE.L	d4,$dff054
		MOVE.L	d4,$dff048
		MOVE.L	MaxY,d5
		SUB.L	MinY,d5
		;SUB.L	Shifter2,d5
		MULU.L	#64,d5
		SUB.L	d2,d3
		LSR.L	#1,d3
		ADD.L	#1,d3
		ADD.L	d3,d5
		MOVE.W	d5,$dff058

	wbltw11290:
		BTST	#14,$dff002
		BNE.B	wbltw11290

		BRA	cdw1

CopyDraw22Spare1:
		MOVE.L	MinX,d2
		MOVE.L	MaxX,d3
		LSR.L	#4,d2
		LSR.L	#4,d3
		LSL.L	#1,d2
		LSL.L	#1,d3

		MOVE.L	d3,d5
		SUB.L	d2,d5
		;LSR.L	#1,d5
		ADD.L	#2,d5
		MOVE.L	#40,d4
		SUB.L	d5,d4

		MOVE.W	d4,$dff064
		MOVE.W	d4,$dff060
		MOVE.W	d4,$dff066
		MOVE.L	#$0bfa0002,$dff040
		MOVE.L	#$ffffffff,$dff044
		MOVE.L	#DP2,d4
				
		MOVE.L	MaxY,d5
		;SUB.L	Shifter,d5
		MULU.L	#40,d5
		ADD.L	d3,d5
		ADD.L	d5,d4
		MOVE.L	d4,$dff050
		MOVE.L	#DP3,d4
		ADD.L	#$2800,d4
		ADD.L	d5,d4
		MOVE.L	d4,$dff054
		MOVE.L	d4,$dff048
		MOVE.L	MaxY,d5
		SUB.L	MinY,d5
		;SUB.L	Shifter2,d5
		MULU.L	#64,d5
		SUB.L	d2,d3
		LSR.L	#1,d3
		ADD.L	#1,d3
		ADD.L	d3,d5
		MOVE.W	d5,$dff058

	wbltw11291:
		BTST	#14,$dff002
		BNE.B	wbltw11291

		BRA	cdw2
		
CopyDraw22Spare2:
		MOVE.L	MinX,d2
		MOVE.L	MaxX,d3
		LSR.L	#4,d2
		LSR.L	#4,d3
		LSL.L	#1,d2
		LSL.L	#1,d3

		MOVE.L	d3,d5
		SUB.L	d2,d5
		;LSR.L	#1,d5
		ADD.L	#2,d5
		MOVE.L	#40,d4
		SUB.L	d5,d4

		MOVE.W	d4,$dff064
		MOVE.W	d4,$dff060
		MOVE.W	d4,$dff066
		MOVE.L	#$0bfa0002,$dff040
		MOVE.L	#$ffffffff,$dff044
		MOVE.L	#DP2,d4
				
		MOVE.L	MaxY,d5
		;SUB.L	Shifter,d5
		MULU.L	#40,d5
		ADD.L	d3,d5
		ADD.L	d5,d4
		MOVE.L	d4,$dff050
		MOVE.L	#DP3,d4
		ADD.L	#$2800*2,d4
		ADD.L	d5,d4
		MOVE.L	d4,$dff054
		MOVE.L	d4,$dff048
		MOVE.L	MaxY,d5
		SUB.L	MinY,d5
		;SUB.L	Shifter2,d5
		MULU.L	#64,d5
		SUB.L	d2,d3
		LSR.L	#1,d3
		ADD.L	#1,d3
		ADD.L	d3,d5
		MOVE.W	d5,$dff058

	wbltw11292:
		BTST	#14,$dff002
		BNE.B	wbltw11292

		BRA	cdw3

CopyDraw22Spare3:
		MOVE.L	MinX,d2
		MOVE.L	MaxX,d3
		LSR.L	#4,d2
		LSR.L	#4,d3
		LSL.L	#1,d2
		LSL.L	#1,d3

		MOVE.L	d3,d5
		SUB.L	d2,d5
		;LSR.L	#1,d5
		ADD.L	#2,d5
		MOVE.L	#40,d4
		SUB.L	d5,d4

		MOVE.W	d4,$dff064
		MOVE.W	d4,$dff060
		MOVE.W	d4,$dff066
		MOVE.L	#$0bfa0002,$dff040
		MOVE.L	#$ffffffff,$dff044
		MOVE.L	#DP2,d4
				
		MOVE.L	MaxY,d5
		;SUB.L	Shifter,d5
		MULU.L	#40,d5
		ADD.L	d3,d5
		ADD.L	d5,d4
		MOVE.L	d4,$dff050
		MOVE.L	#DP3,d4
		ADD.L	#$2800*3,d4
		ADD.L	d5,d4
		MOVE.L	d4,$dff054
		MOVE.L	d4,$dff048
		MOVE.L	MaxY,d5
		SUB.L	MinY,d5
		;SUB.L	Shifter2,d5
		MULU.L	#64,d5
		SUB.L	d2,d3
		LSR.L	#1,d3
		ADD.L	#1,d3
		ADD.L	d3,d5
		MOVE.W	d5,$dff058

	wbltw11293:
		BTST	#14,$dff002
		BNE.B	wbltw11293

		BRA	cdw4

CopyDraw22Spare4:
		MOVE.L	MinX,d2
		MOVE.L	MaxX,d3
		LSR.L	#4,d2
		LSR.L	#4,d3
		LSL.L	#1,d2
		LSL.L	#1,d3

		MOVE.L	d3,d5
		SUB.L	d2,d5
		;LSR.L	#1,d5
		ADD.L	#2,d5
		MOVE.L	#40,d4
		SUB.L	d5,d4

		MOVE.W	d4,$dff064
		MOVE.W	d4,$dff060
		MOVE.W	d4,$dff066
		MOVE.L	#$0bfa0002,$dff040
		MOVE.L	#$ffffffff,$dff044
		MOVE.L	#DP2,d4
				
		MOVE.L	MaxY,d5
		;SUB.L	Shifter,d5
		MULU.L	#40,d5
		ADD.L	d3,d5
		ADD.L	d5,d4
		MOVE.L	d4,$dff050
		MOVE.L	#DP3,d4
		ADD.L	#$2800*4,d4
		ADD.L	d5,d4
		MOVE.L	d4,$dff054
		MOVE.L	d4,$dff048
		MOVE.L	MaxY,d5
		SUB.L	MinY,d5
		;SUB.L	Shifter2,d5
		MULU.L	#64,d5
		SUB.L	d2,d3
		LSR.L	#1,d3
		ADD.L	#1,d3
		ADD.L	d3,d5
		MOVE.W	d5,$dff058

	wbltw112935:
		BTST	#14,$dff002
		BNE.B	wbltw112935

		BRA	cdw5
		
CopyDraw22Spare0c:
		MOVE.L	MinX,d2
		MOVE.L	MaxX,d3
		LSR.L	#4,d2
		LSR.L	#4,d3
		LSL.L	#1,d2
		LSL.L	#1,d3

		MOVE.L	d3,d5
		SUB.L	d2,d5
		;LSR.L	#1,d5
		ADD.L	#2,d5
		MOVE.L	#40,d4
		SUB.L	d5,d4

		MOVE.W	d4,$dff064
		MOVE.W	d4,$dff060
		MOVE.W	d4,$dff066
		MOVE.L	#$0b0a0002,$dff040
		MOVE.L	#$ffffffff,$dff044
		MOVE.L	#DP2,d4
				
		MOVE.L	MaxY,d5
		;SUB.L	Shifter,d5
		MULU.L	#40,d5
		ADD.L	d3,d5
		ADD.L	d5,d4
		MOVE.L	d4,$dff050
		MOVE.L	#DP3,d4
		;ADD.L	#$2800*3,d4
		ADD.L	d5,d4
		MOVE.L	d4,$dff054
		MOVE.L	d4,$dff048
		MOVE.L	MaxY,d5
		SUB.L	MinY,d5
		;SUB.L	Shifter2,d5
		MULU.L	#64,d5
		SUB.L	d2,d3
		LSR.L	#1,d3
		ADD.L	#1,d3
		ADD.L	d3,d5
		MOVE.W	d5,$dff058

	wbltw11290c:
		BTST	#14,$dff002
		BNE.B	wbltw11290c

		BRA	cdw1

CopyDraw22Spare1c:
		MOVE.L	MinX,d2
		MOVE.L	MaxX,d3
		LSR.L	#4,d2
		LSR.L	#4,d3
		LSL.L	#1,d2
		LSL.L	#1,d3

		MOVE.L	d3,d5
		SUB.L	d2,d5
		;LSR.L	#1,d5
		ADD.L	#2,d5
		MOVE.L	#40,d4
		SUB.L	d5,d4

		MOVE.W	d4,$dff064
		MOVE.W	d4,$dff060
		MOVE.W	d4,$dff066
		MOVE.L	#$0b0a0002,$dff040
		MOVE.L	#$ffffffff,$dff044
		MOVE.L	#DP2,d4
				
		MOVE.L	MaxY,d5
		;SUB.L	Shifter,d5
		MULU.L	#40,d5
		ADD.L	d3,d5
		ADD.L	d5,d4
		MOVE.L	d4,$dff050
		MOVE.L	#DP3,d4
		ADD.L	#$2800,d4
		ADD.L	d5,d4
		MOVE.L	d4,$dff054
		MOVE.L	d4,$dff048
		MOVE.L	MaxY,d5
		SUB.L	MinY,d5
		;SUB.L	Shifter2,d5
		MULU.L	#64,d5
		SUB.L	d2,d3
		LSR.L	#1,d3
		ADD.L	#1,d3
		ADD.L	d3,d5
		MOVE.W	d5,$dff058

	wbltw11291c:
		BTST	#14,$dff002
		BNE.B	wbltw11291c

		BRA	cdw2
		
CopyDraw22Spare2c:
		MOVE.L	MinX,d2
		MOVE.L	MaxX,d3
		LSR.L	#4,d2
		LSR.L	#4,d3
		LSL.L	#1,d2
		LSL.L	#1,d3

		MOVE.L	d3,d5
		SUB.L	d2,d5
		;LSR.L	#1,d5
		ADD.L	#2,d5
		MOVE.L	#40,d4
		SUB.L	d5,d4

		MOVE.W	d4,$dff064
		MOVE.W	d4,$dff060
		MOVE.W	d4,$dff066
		MOVE.L	#$0b0a0002,$dff040
		MOVE.L	#$ffffffff,$dff044
		MOVE.L	#DP2,d4
				
		MOVE.L	MaxY,d5
		;SUB.L	Shifter,d5
		MULU.L	#40,d5
		ADD.L	d3,d5
		ADD.L	d5,d4
		MOVE.L	d4,$dff050
		MOVE.L	#DP3,d4
		ADD.L	#$2800*2,d4
		ADD.L	d5,d4
		MOVE.L	d4,$dff054
		MOVE.L	d4,$dff048
		MOVE.L	MaxY,d5
		SUB.L	MinY,d5
		;SUB.L	Shifter2,d5
		MULU.L	#64,d5
		SUB.L	d2,d3
		LSR.L	#1,d3
		ADD.L	#1,d3
		ADD.L	d3,d5
		MOVE.W	d5,$dff058

	wbltw11292c:
		BTST	#14,$dff002
		BNE.B	wbltw11292c

		BRA	cdw3

CopyDraw22Spare3c:
		MOVE.L	MinX,d2
		MOVE.L	MaxX,d3
		LSR.L	#4,d2
		LSR.L	#4,d3
		LSL.L	#1,d2
		LSL.L	#1,d3

		MOVE.L	d3,d5
		SUB.L	d2,d5
		;LSR.L	#1,d5
		ADD.L	#2,d5
		MOVE.L	#40,d4
		SUB.L	d5,d4

		MOVE.W	d4,$dff064
		MOVE.W	d4,$dff060
		MOVE.W	d4,$dff066
		MOVE.L	#$0b0a0002,$dff040
		MOVE.L	#$ffffffff,$dff044
		MOVE.L	#DP2,d4
				
		MOVE.L	MaxY,d5
		;SUB.L	Shifter,d5
		MULU.L	#40,d5
		ADD.L	d3,d5
		ADD.L	d5,d4
		MOVE.L	d4,$dff050
		MOVE.L	#DP3,d4
		ADD.L	#$2800*3,d4
		ADD.L	d5,d4
		MOVE.L	d4,$dff054
		MOVE.L	d4,$dff048
		MOVE.L	MaxY,d5
		SUB.L	MinY,d5
		;SUB.L	Shifter2,d5
		MULU.L	#64,d5
		SUB.L	d2,d3
		LSR.L	#1,d3
		ADD.L	#1,d3
		ADD.L	d3,d5
		MOVE.W	d5,$dff058

	wbltw11293c:
		BTST	#14,$dff002
		BNE.B	wbltw11293c

		BRA	cdw4

CopyDraw22Spare4c:
		MOVE.L	MinX,d2
		MOVE.L	MaxX,d3
		LSR.L	#4,d2
		LSR.L	#4,d3
		LSL.L	#1,d2
		LSL.L	#1,d3

		MOVE.L	d3,d5
		SUB.L	d2,d5
		;LSR.L	#1,d5
		ADD.L	#2,d5
		MOVE.L	#40,d4
		SUB.L	d5,d4

		MOVE.W	d4,$dff064
		MOVE.W	d4,$dff060
		MOVE.W	d4,$dff066
		MOVE.L	#$0b0a0002,$dff040
		MOVE.L	#$ffffffff,$dff044
		MOVE.L	#DP2,d4
				
		MOVE.L	MaxY,d5
		;SUB.L	Shifter,d5
		MULU.L	#40,d5
		ADD.L	d3,d5
		ADD.L	d5,d4
		MOVE.L	d4,$dff050
		MOVE.L	#DP3,d4
		ADD.L	#$2800*4,d4
		ADD.L	d5,d4
		MOVE.L	d4,$dff054
		MOVE.L	d4,$dff048
		MOVE.L	MaxY,d5
		SUB.L	MinY,d5
		;SUB.L	Shifter2,d5
		MULU.L	#64,d5
		SUB.L	d2,d3
		LSR.L	#1,d3
		ADD.L	#1,d3
		ADD.L	d3,d5
		MOVE.W	d5,$dff058

	wbltw112935c:
		BTST	#14,$dff002
		BNE.B	wbltw112935c

		BRA	cdw5


CopyDraw2Draw2:
		MOVE.L	MinX,d2
		MOVE.L	MaxX,d3
		LSR.L	#4,d2
		LSR.L	#4,d3
		LSL.L	#1,d2
		LSL.L	#1,d3

		MOVE.L	d3,d5
		SUB.L	d2,d5
		;LSR.L	#1,d5
		ADD.L	#2,d5
		MOVE.L	#40,d4
		SUB.L	d5,d4

		MOVE.W	d4,$dff064
		MOVE.W	d4,$dff066
		MOVE.L	#$09f0000a,$dff040
		MOVE.L	#$ffffffff,$dff044
		MOVE.L	#DP1,d4
				
		MOVE.L	MaxY,d5
		;SUB.L	Shifter,d5
		MULU.L	#40,d5
		ADD.L	d3,d5
		ADD.L	d5,d4
		MOVE.L	d4,$dff050
		MOVE.L	#DP2,d4
		;ADD.L	#$2800*3,d4
		ADD.L	d5,d4
		MOVE.L	d4,$dff054
		MOVE.L	MaxY,d5
		SUB.L	MinY,d5
		;SUB.L	Shifter2,d5
		MULU.L	#64,d5
		SUB.L	d2,d3
		LSR.L	#1,d3
		ADD.L	#1,d3
		ADD.L	d3,d5
		MOVE.W	d5,$dff058

	wbltw1128:
		BTST	#14,$dff002
		BNE.B	wbltw1128

		RTS

ClearDraw:
	wabltc:	BTST	#14,$dff002
		BNE.B	wabltc

		MOVE.L	#DP1,d0
		MOVE.L	d0,$dff054
		MOVE.W	#$0000,$dff066
		MOVE.W	#%0000000100000000,$dff040
		MOVE.W	#$0000,$dff042
		MOVE.W	#256*64+20,$dff058

	wabltc2:
		BTST	#14,$dff002
		BNE.B	wabltc2

		RTS

ClearDraw2:

	wabltc222:
		BTST	#14,$dff002
		BNE.B	wabltc222

		MOVE.L	#DP2,d0
		MOVE.L	d0,$dff054
		MOVE.W	#$0000,$dff066
		MOVE.W	#%0000000100000000,$dff040
		MOVE.W	#$0000,$dff042
		MOVE.W	#256*64+20,$dff058

	wabltc2222:
		BTST	#14,$dff002
		BNE.B	wabltc2222

		MOVE.L	#DP2,d0
		ADD.L	#$2800,d0
		MOVE.L	d0,$dff054
		MOVE.W	#$0000,$dff066
		MOVE.W	#%0000000100000000,$dff040
		MOVE.W	#$0000,$dff042
		MOVE.W	#256*64+20,$dff058

	wabltc2233:
		BTST	#14,$dff002
		BNE.B	wabltc2233
		
		MOVE.L	#DP2,d0
		ADD.L	#$5000,d0
		MOVE.L	d0,$dff054
		MOVE.W	#$0000,$dff066
		MOVE.W	#%0000000100000000,$dff040
		MOVE.W	#$0000,$dff042
		MOVE.W	#256*64+20,$dff058

	wabltc2244:
		BTST	#14,$dff002
		BNE.B	wabltc2244
		
		MOVE.L	#DP2,d0
		ADD.L	#$7800,d0
		MOVE.L	d0,$dff054
		MOVE.W	#$0000,$dff066
		MOVE.W	#%0000000100000000,$dff040
		MOVE.W	#$0000,$dff042
		MOVE.W	#256*64+20,$dff058

	wabltc224:
		BTST	#14,$dff002
		BNE.B	wabltc224

		MOVE.L	#DP2,d0
		ADD.L	#$a000,d0
		MOVE.L	d0,$dff054
		MOVE.W	#$0000,$dff066
		MOVE.W	#%0000000100000000,$dff040
		MOVE.W	#$0000,$dff042
		MOVE.W	#256*64+20,$dff058

	wabltc2245:
		BTST	#14,$dff002
		BNE.B	wabltc2245


		RTS

ClearSpare:

	wabltc222s:
		BTST	#14,$dff002
		BNE.B	wabltc222s

		MOVE.L	#DP3,d0
		MOVE.L	d0,$dff054
		MOVE.W	#$0000,$dff066
		MOVE.W	#%0000000100000000,$dff040
		MOVE.W	#$0000,$dff042
		MOVE.W	#256*64+20,$dff058

	wabltc2222s:
		BTST	#14,$dff002
		BNE.B	wabltc2222s

		MOVE.L	#DP3,d0
		ADD.L	#$2800,d0
		MOVE.L	d0,$dff054
		MOVE.W	#$0000,$dff066
		MOVE.W	#%0000000100000000,$dff040
		MOVE.W	#$0000,$dff042
		MOVE.W	#256*64+20,$dff058

	wabltc2233s:
		BTST	#14,$dff002
		BNE.B	wabltc2233s
		
		MOVE.L	#DP3,d0
		ADD.L	#$5000,d0
		MOVE.L	d0,$dff054
		MOVE.W	#$0000,$dff066
		MOVE.W	#%0000000100000000,$dff040
		MOVE.W	#$0000,$dff042
		MOVE.W	#256*64+20,$dff058

	wabltc2244s:
		BTST	#14,$dff002
		BNE.B	wabltc2244s
		
		MOVE.L	#DP3,d0
		ADD.L	#$7800,d0
		MOVE.L	d0,$dff054
		MOVE.W	#$0000,$dff066
		MOVE.W	#%0000000100000000,$dff040
		MOVE.W	#$0000,$dff042
		MOVE.W	#256*64+20,$dff058

	wabltc224s:
		BTST	#14,$dff002
		BNE.B	wabltc224s

		MOVE.L	#DP3,d0
		ADD.L	#$a000,d0
		MOVE.L	d0,$dff054
		MOVE.W	#$0000,$dff066
		MOVE.W	#%0000000100000000,$dff040
		MOVE.W	#$0000,$dff042
		MOVE.W	#256*64+20,$dff058

	wabltc225s:
		BTST	#14,$dff002
		BNE.B	wabltc225s


		RTS

Clear:
		;clear Workplane - 5 bitplanes
		
	wablt:	BTST	#14,$dff002
		BNE.B	wablt

		MOVE.L	Workplane,d0
		MOVE.L	d0,$dff054
		MOVE.W	#$0000,$dff066
		MOVE.W	#%0000000100000000,$dff040
		MOVE.W	#$0000,$dff042
		MOVE.W	#256*64+20,$dff058

	wablt2:	BTST	#14,$dff002
		BNE.B	wablt2

		ADD.L	#$2800,d0
		MOVE.L	d0,$dff054
		MOVE.W	#$0000,$dff066
		MOVE.W	#%0000000100000000,$dff040
		MOVE.W	#$0000,$dff042
		MOVE.W	#256*64+20,$dff058

	wablt3:	BTST	#14,$dff002
		BNE.B	wablt3

		ADD.L	#$2800,d0
		MOVE.L	d0,$dff054
		MOVE.W	#$0000,$dff066
		MOVE.W	#%0000000100000000,$dff040
		MOVE.W	#$0000,$dff042
		MOVE.W	#256*64+20,$dff058

	wablt4:	BTST	#14,$dff002
		BNE.B	wablt4

		ADD.L	#$2800,d0
		MOVE.L	d0,$dff054
		MOVE.W	#$0000,$dff066
		MOVE.W	#%0000000100000000,$dff040
		MOVE.W	#$0000,$dff042
		MOVE.W	#256*64+20,$dff058

	wablt5:	BTST	#14,$dff002
		BNE.B	wablt5

		ADD.L	#$2800,d0
		MOVE.L	d0,$dff054
		MOVE.W	#$0000,$dff066
		MOVE.W	#%0000000100000000,$dff040
		MOVE.W	#$0000,$dff042
		MOVE.W	#256*64+20,$dff058

	wablt6:	BTST	#14,$dff002
		BNE.B	wablt6


		RTS

Swap:
		MOVE.L	Showplane,d0
		MOVE.L	Workplane,Showplane
		MOVE.L	d0,Workplane

		MOVE.L	Showcop,d0
		MOVE.L	Workcop,Showcop
		MOVE.L	d0,Workcop		

		MOVE.L	Showcop,$dff080
		RTS

FillC1C2Palettes:
		LEA	C1Palette,a0
		LEA	C2Palette,a1
		LEA	Palette,a2
		MOVE.W	#$0180,d0
		MOVE.W	#31,d1
	pl:
		MOVE.W	d0,(a0)+
		MOVE.W	d0,(a1)+		
		MOVE.W	(a2),(a0)+
		MOVE.W	(a2)+,(a1)+
		ADD.W	#2,d0
		DBF	d1,pl
		RTS
FillC1Planes:
		LEA	C1Planes,a0
		MOVE.L	Showplane,d0
		MOVE.W	#$00e2,(a0)+
		MOVE.W	d0,(a0)+
		SWAP	d0
		MOVE.W	#$00e0,(a0)+
		MOVE.W	d0,(a0)+
		SWAP	d0
		ADD.L	#$2800,d0
		MOVE.W	#$00e6,(a0)+
		MOVE.W	d0,(a0)+
		SWAP	d0
		MOVE.W	#$00e4,(a0)+
		MOVE.W	d0,(a0)+
		SWAP	d0
		ADD.L	#$2800,d0
		MOVE.W	#$00ea,(a0)+
		MOVE.W	d0,(a0)+
		SWAP	d0
		MOVE.W	#$00e8,(a0)+
		MOVE.W	d0,(a0)+
		SWAP	d0
		ADD.L	#$2800,d0
		MOVE.W	#$00ee,(a0)+
		MOVE.W	d0,(a0)+
		SWAP	d0
		MOVE.W	#$00ec,(a0)+
		MOVE.W	d0,(a0)+
		SWAP	d0
		ADD.L	#$2800,d0
		MOVE.W	#$00f2,(a0)+
		MOVE.W	d0,(a0)+
		SWAP	d0
		MOVE.W	#$00f0,(a0)+
		MOVE.W	d0,(a0)
		RTS

FillC2Planes:
		LEA	C2Planes,a0
		MOVE.L	Workplane,d0
		MOVE.W	#$00e2,(a0)+
		MOVE.W	d0,(a0)+
		SWAP	d0
		MOVE.W	#$00e0,(a0)+
		MOVE.W	d0,(a0)+
		SWAP	d0
		ADD.L	#$2800,d0
		MOVE.W	#$00e6,(a0)+
		MOVE.W	d0,(a0)+
		SWAP	d0
		MOVE.W	#$00e4,(a0)+
		MOVE.W	d0,(a0)+
		SWAP	d0
		ADD.L	#$2800,d0
		MOVE.W	#$00ea,(a0)+
		MOVE.W	d0,(a0)+
		SWAP	d0
		MOVE.W	#$00e8,(a0)+
		MOVE.W	d0,(a0)+
		SWAP	d0
		ADD.L	#$2800,d0
		MOVE.W	#$00ee,(a0)+
		MOVE.W	d0,(a0)+
		SWAP	d0
		MOVE.W	#$00ec,(a0)+
		MOVE.W	d0,(a0)+
		SWAP	d0
		ADD.L	#$2800,d0
		MOVE.W	#$00f2,(a0)+
		MOVE.W	d0,(a0)+
		SWAP	d0
		MOVE.W	#$00f0,(a0)+
		MOVE.W	d0,(a0)

		RTS

StoreCopper:
		MOVE.L	4.w,a6
		JSR	-132(a6)
		MOVE.L	156(a6),a1
		MOVE.L	38(a1),OldCop
		RTS

RestoreCopper:
		MOVE.L	4.w,a6
		JSR	-138(a6)
		MOVE.L	OldCop,$dff080
		RTS

WMB:
	mbl:	BTST.B	#6,$bfe001
		BNE.W	mbl
		RTS

WaitVBL:
		MOVE.L	$dff004,d0
		LSR.L	#8,d0
		ANDI.W	#$1ff,d0
		CMP.W	#$12d,d0
		BNE	WaitVBL
		RTS



;----------------------------------------------
	SECTION Dane,DATA_P

OldCop:		DC.L	$00000000

Showplane:	DC.L	$00000000
Workplane:	DC.L	$00000000
Showcop:	DC.L	$00000000
Workcop:	DC.L	$00000000

DeltaX:		DC.L	0
DeltaY:		DC.L	0
DX:		DC.L	0
DY:		DC.L	0
DDX:		DC.L	0
DDY:		DC.L	0
		even

Sign:		DC.B	0
		even

HalfOctant:	DC.B	0
		even

HalfOctant2:	DC.B	0
		even

Octant:		DC.B	0
		even

	SECTION	Copper,DATA_C

Copper1:	
		DC.L	$008e2c81,$00902cc1
		DC.L	$00920038,$009400d0
		DC.L	$00960020
		DC.L	$01020000,$01040000
		DC.L	$01080000,$010a0000
C1Palette:	DS.L	32
C1Planes:	DS.L	10
		DC.L	$01005000
		DC.L	$01fc0000
		DC.L	$fffffffe

Copper2:	
		DC.L	$008e2c81,$00902cc1
		DC.L	$00920038,$009400d0
		DC.L	$00960020
		DC.L	$01020000,$01040000
		DC.L	$01080000,$010a0000
C2Palette:	DS.L	32
C2Planes:	DS.L	10
		DC.L	$01005000
		DC.L	$01fc0000
		DC.L	$fffffffe

	SECTION	Paleta,DATA_P

Palette:	DC.W	$0040,$0140,$0250,$0350,$0460,$0560,$0670,$0770
		DC.W	$0870,$0980,$0a80,$0b80,$0c90,$0d90,$0ea0,$0fa0
		DC.W	$0fb1,$0fb2,$0fb3,$0fb4,$0fc5,$0fc6,$0fc7,$0fc8
		DC.W	$0fd9,$0fda,$0fdb,$0fec,$0fed,$0fee,$0fef,$0fff


	SECTION Screeny,DATA_C

Plane1:
	P11:	DCB.B	$2800,$0
	P12:	DCB.B	$2800,$0
	P13:	DCB.B	$2800,$0
	P14:	DCB.B	$2800,$0	
	P15:	DCB.B	$2800,$0	

Plane2:
	P21:	DCB.B	$2800,$0
	P22:	DCB.B	$2800,$0
	P23:	DCB.B	$2800,$0
	P24:	DCB.B	$2800,$0
	P25:	DCB.B	$2800,$0

DrawPlane:
	DP1:	DCB.B	$2800,$0
		DCB.B	$2800,$0
		DCB.B	$2800,$0
		DCB.B	$2800,$0
		DCB.B	$2800,$0

	DP2:	DCB.B	$2800,$0
		DCB.B	$2800,$0
		DCB.B	$2800,$0
		DCB.B	$2800,$0
		DCB.B	$2800,$0

	DP3:	DCB.B	$2800,$0
		DCB.B	$2800,$0
		DCB.B	$2800,$0
		DCB.B	$2800,$0
		DCB.B	$2800,$0

AD:	DS.B	4

AddSub:	DC.W	$ffff

CoordsOffset:
	DC.L	0

PolygonCoords:
	DC.L	0,0,0,0,0,0,0,0
	DC.L	0,0,0,0,0,0,0,0
	DC.L	0,0,0,0,0,0,0,0
	DC.L	0,0,0,0,0,0,0,0

Kolorro:
	DC.L	0

Shifter:
	DC.L	0

Shifter2:
	DC.L	0

MinY:	DC.L	0
MaxY:	DC.L	0
MinX:	DC.L	0
MaxX:	DC.L	0

MaxYTimes:
	DC.L	0

MinYTimes:
	DC.L	0

Sequence:
	INCBIN	"Sources:spheroid proppa.seq"

Function:
	DC.B	0,16,4,24,8,20,12,28