	section lame,code_c


DATEN=$30000

>EXTERN"df0:data",daten

;Trax of Falcon 1991

Trap_vec0  = $80
Execbase   = $4
Oldopen    = -$198
Intenar    = $01c
Intena     = $09a
Dmaconr    = $002
Dmacon     = $096
Cop1lch    = $080
Copjmp1    = $088
Vposr      = $004

go:	Move.l	#Start,$80.w	; Trap vector 0
	Trap	#0		; Execute trap 0 to give full control of the
	Rts			; 68000, needs an RTE to return.

Start:
	LEA	$60000,A0
	LEA	$7F800,A1
CLR0:	CLR.L	(A0)+
	CMP.L	A0,A1
	BNE.S	CLR0
	
	LEA	$DFF000,A5
LOOP:	MOVE.L	$0004(A5),D0
	LSR.L	#8,D0
	CMP.W	#$012A,D0
	BNE.S	LOOP

	bsr.S	KillSys
	bsr.L	main
	bsr.S	setupsys

	Rte		; Return from exception 
		

*****************************************************************************
;Killsys - Disable operating system and interrupts
*****************************************************************************
Killsys:
	Move.l	$4.w,a6		; Execbase vector
	Lea	Gfxname(pc),a1	; Pointer to "graphics.library" into a1
	Jsr	Oldopen(a6)	; Open this library
	Lea	$dff000,a6	; Pointer to custom chips
	Move.l	d0,a0		; Address of the graphics library
	Move.l	38(a0),Sys_copl		; Remember the System copperlist
	Move	Intenar(a6),Int_set	; System interrupts
	Move	#$7fff,Intena(a6)	; Now switch off all interrupts
	Move.l	$6c.w,Vbl_vec		; System vertical blanking int.
	Move.l	#IRQ,$6c
	Move.w	#$c028,Intena(a6)
	Move	Dmaconr(a6),Dma_set	; System DMA
	Move	#$7fff,Dmacon(a6)	; Clear all DMA
	Move	#$87c0,Dmacon(a6)	; Now set the required DMA channels

	Move.l	#COP,Cop1lch(a6)	; Init. our own copperlist
	Clr	Copjmp1(a6)

	Rts

Gfxname:		dc.b "graphics.library",0
	Even
*****************************************************************************
;Sysreturn - Re-enable operating system and interrupts
*****************************************************************************
Setupsys:
	Lea	$dff000,a6
	Move	#$7fff,Intena(a6)	; Clear all interrupts
	Move.l	Vbl_vec,$6c.w	; Restore VBL interrupt
	Move	Int_set,d0
	Or	#$c000,d0
	Move	d0,Intena(a6)		; Restore system interrupts
	Move	#$7fff,Dmacon(a6)
	Move	Dma_set,d0
	Or	#$8200,d0
	Move	d0,Dmacon(a6)		; Restore system DMA
	Move.l	Sys_copl,Cop1lch(a6)	; Restore system copperlist
	Clr	Copjmp1(a6)
	Rts

Vbl_vec:          	dc.l 0
Int_set:          	dc.l 0
Dma_set:          	dc.l 0
Sys_copl:          	dc.l 0


Main:

	; ROUTINE ;

	Btst	#10,$dff016	; Check the left mouse button
	Bne.s	Main

Waitblit:
	Btst	#14,$dff002
	Bne.S	Waitblit

	Rts

;Let there be CHAOS !!!

IRQ:	MOVEM.L	D0-D7/A0-A6,-(A7)
	LEA	$00DFF000,A5
	LEA	Block(PC),A6		;DataBlock

	BSR.L	MEM1

	ADDQ.W	#4,$0016(A6)		;winkel
	AND.W	#$03FF,$0016(A6)
	ADDQ.W	#4,$0018(A6)
	AND.W	#$03FF,$0018(A6)
	LEA	$00DFF000,A5
 
	MOVE.W	SPEED(PC),D3
	ADD.W	D3,$0026(A6)
	AND.W	#$007F,$0026(A6)
	MOVEQ	#$7F,D0
	SUB.W	$0026(A6),D0
	ADDQ.W	#2,D0
	AND.W	#$007F,D0
	MOVEQ	#$11,D1
	MULU	D0,D1
	LSR.L	#7,D1
	MOVE.W	D1,D2
	LSL.W	#4,D2
	OR.B	D1,D2
	LSL.W	#4,D2
	OR.B	D1,D2
	MOVEQ	#$11,D1
	MULU	D0,D1
	LSR.L	#7,D1
	MOVE.W	D1,D0
	LSL.W	#4,D0
	OR.B	D1,D0
	LSL.W	#4,D0
	OR.B	D1,D0
	LEA	COL1(PC),A1		;cop
	AND.W	coli(PC),D0
	AND.W	coli(PC),D2

	MOVE.W	D0,(A1)
	MOVE.W	D2,4(A1)
	MOVE.W	D2,8(A1)
	CMP.W	#4,$0026(A6)
	BNE.S	QOUT
RETURN:	MOVE.L	COLPOINTER(PC),A0
	CMP.W	#$FFFF,(A0)
	BNE.S	OK
	MOVE.L	#COLTAB,A0
OK:	MOVE.W	(A0)+,COLI
	MOVE.W	(A0)+,SPEED
	MOVE.L	A0,COLPOINTER

	MOVE.L	$0012(A6),A0
	MOVE.L	(A0)+,D0
	MOVE.L	(A0)+,D1
	BEQ.S	OUTPENG
	MOVE.L	D0,10(A6)
	MOVE.L	D1,14(A6)
	MOVE.L	A0,$0012(A6)
QOUT:	

	MOVE.W	#$0028,$009C(A5)
	MOVEM.L	(A7)+,D0-D7/A0-A6
	RTE	

OUTPENG:
	MOVE.L	#PENG,$0012(A6)
 	BRA.S	RETURN


MEM1:	LEA	BLOCK(PC),A6
	LEA	$00DFF000,A5
	LEA	POINTER(PC),A4
	MOVEQ	#15,D2
	MOVE.W	2(A6),D0
	MOVE.W	D0,D1
	ADD.W	D0,D0
	ADD.W	D0,D0
	ADDQ.W	#1,D1
	AND.W	#3,D1
	MOVE.W	D1,2(A6)
	MOVE.L	0(A4,D0.W),D1
	ADDQ.W	#4,D0
	AND.W	D2,D0
	MOVE.L	0(A4,D0.W),A0
	MOVE.L	A0,-(A7)
	ADDQ.W	#4,D0
	AND.W	D2,D0
	MOVE.L	0(A4,D0.W),A0
	LEA	POS1(PC),A1
	MOVE.W	#$2A01,(A1)
	LEA	POS2(PC),A1
	MOVE.L	#$FFDFFFFE,(A1)+
	MOVE.W	#$2801,(A1)+
	MOVE.L	10(A6),D0
	MOVE.L	D0,D2
	ASR.L	#3,D2
	ADD.L	D2,D1
	AND.L	#15,D0
	EOR.W	#15,D0
	MOVE.W	D0,D3
	ASL	#4,D3
	ADD.W	D3,D0
	LEA	POS03(PC),A1
	MOVE.W	D0,(A1)
	MOVE.L	14(A6),D0
	BEQ.S	COPPPP
	BMI.S	MINUS
	MOVE.L	D0,D2
	ASL.L	#7,D0
	ADD.L	D0,D1
	SUB.L	#$00000100,D2
	NEG.L	D2
	ADD.L	#$00000029,D2
	CMP.L	#$000000FF,D2
	BLE.S	LESS
	SUB.L	#$00000100,D2
	LSL.W	#8,D2
	ADDQ.W	#1,D2
	LEA	POS2(PC),A1
	MOVE.L	#$FFDFFFFE,(A1)+
	MOVE.W	D2,(A1)+
	BRA.S	COPPPP
 
LESS:	LSL.W	#8,D2
	ADDQ.W	#1,D2
	LEA	POS2(PC),A1
	MOVE.L	#$01900000,(A1)+
	MOVE.W	D2,(A1)+
	BRA.S	COPPPP
 
MINUS:	MOVE.L	D0,D2
	NEG.L	D2
	ADD.L	#$00000029,D2
	LSL.W	#8,D2
	ADDQ.W	#1,D2
	LEA	POS1(PC),A1
	MOVE.W	D2,(A1)
COPPPP:	LEA	POS5(PC),A1
	ADD.L	#12,D1
	MOVE.W	D1,6(A1)
	SWAP	D1
	MOVE.W	D1,2(A1)
	SWAP	D1
	ADD.L	#$00000040,D1
	MOVE.W	D1,14(A1)
	SWAP	D1
	MOVE.W	D1,10(A1)
	SWAP	D1
	LEA	$00DFF000,A5
BWAIT:	BTST	#14,2(A5)
	BNE.S	BWAIT
	LEA	12(A0),A0
	MOVE.L	A0,$0054(A5)
	MOVE.W	#$0018,$0066(A5)
	CLR.W	$0042(A5)
	MOVE.W	#$0100,$0040(A5)
	MOVE.W	#$7F94,$0058(A5)	;Loeschen der Plane 1&2
	BSR.S	MEM2
	MOVE.L	(A7)+,A5
	BSR.L	MEM3
	RTS	
	

MEM2:	LEA	SINLIST(PC),A4		;Koordtrans. (optimiert)
	LEA	DATEN,A2		;data
	MOVE.W	$0016(A6),D0
	MOVE.W	$0018(A6),D1
	MOVEM.W	0(A4,D0.W),D2/D3
	MOVEM.W	0(A4,D1.W),D4/D5
	MOVE.W	$0026(A6),D7
	MOVE.L	#$00000080,D1
	MOVEQ	#0,D0
	MOVE.W	D2,D0
	MULS	4(A6),D0
	ASR.L	#6,D0
	MULS	D7,D0
	ASR.L	#7,D0
	ADD.L	D1,D0
	LSL.L	#8,D0
	ADD.L	A2,D0
	MOVE.L	D0,$0080(A6)
	NEG.W	D3
	MOVEQ	#0,D0
	MOVE.W	D3,D0
	MULS	4(A6),D0
	ASR.L	#6,D0
	MULS	D7,D0
	ASR.L	#7,D0
	ADD.L	D1,D0
	LSL.L	#8,D0
	ADD.L	A2,D0
	MOVE.L	D0,$007C(A6)
	MOVEQ	#0,D0
	MOVE.W	D4,D0
	MULS	6(A6),D0
	ASR.L	#6,D0
	MULS	D7,D0
	ASR.L	#7,D0
	ADD.L	D1,D0
	LSL.L	#8,D0
	ADD.L	A2,D0
	MOVE.L	D0,$0078(A6)
	NEG.W	D5
	MOVEQ	#0,D0
	MOVE.W	D5,D0
	MULS	8(A6),D0
	ASR.L	#6,D0
	MULS	D7,D0
	ASR.L	#7,D0
	ADD.L	D1,D0
	LSL.L	#8,D0
	ADD.L	A2,D0
	MOVE.L	D0,$006C(A6)
	MOVE.W	D5,D6
	MULS	D2,D6
	ASR.L	#7,D6
	MOVEQ	#0,D0
	MOVE.W	D6,D0
	MULS	6(A6),D0
	ASR.L	#6,D0
	MULS	D7,D0
	ASR.L	#7,D0
	ADD.L	D1,D0
	LSL.L	#8,D0
	ADD.L	A2,D0
	MOVE.L	D0,$0070(A6)
	MOVE.W	D5,D6
	MULS	D3,D6
	ASR.L	#7,D6
	NEG.L	D6
	MOVEQ	#0,D0
	MOVE.W	D6,D0
	MULS	6(A6),D0
	ASR.L	#6,D0
	MULS	D7,D0
	ASR.L	#7,D0
	ADD.L	D1,D0
	LSL.L	#8,D0
	ADD.L	A2,D0
	MOVE.L	D0,$0074(A6)
	MOVE.W	D3,D6
	MULS	D4,D6
	ASR.L	#7,D6
	MOVEQ	#0,D0
	MOVE.W	D6,D0
	MULS	8(A6),D0
	ASR.L	#6,D0
	MULS	D7,D0
	ASR.L	#7,D0
	ADD.L	D1,D0
	LSL.L	#8,D0
	ADD.L	A2,D0
	MOVE.L	D0,$0068(A6)
	MOVE.W	D4,D6
	MULS	D2,D6
	NEG.L	D6
	ASR.L	#7,D6
	MOVEQ	#0,D0
	MOVE.W	D6,D0
	MULS	8(A6),D0
	ASR.L	#6,D0
	MULS	D7,D0
	ASR.L	#7,D0
	ADD.L	D1,D0
	LSL.L	#8,D0
	ADD.L	A2,D0
	MOVE.L	D0,$0064(A6)
	RTS	

MEM3:	MOVE.W	$001A(A6),A1		;setpoint(x,y)
	MOVE.W	$001E(A6),A3
	LEA	KOORD(PC),A4		
	MOVE.W	#$0121,D7		;290 Mal
	MOVEQ	#7,D2
	MOVEQ	#-$80,D6
LOOP77:	LEA	$64(A6),A2
	MOVEM.W	(A4)+,D3-D5
	MOVE.L	(A2)+,A0
	MOVE.W	0(A0,D3.W),D0
	MOVE.L	(A2)+,A0
	MOVE.W	0(A0,D4.W),D1
	ADD.W	D1,D0
	MOVE.L	(A2)+,A0
	MOVE.W	0(A0,D5.W),D1
	ADD.W	D1,D0
	BPL.S	ZWQ
	MOVE.L	(A2)+,A0
	MOVE.W	0(A0,D3.W),D0
	MOVE.L	(A2)+,A0
	MOVE.W	0(A0,D4.W),D1
	ADD.W	D1,D0
	MOVE.L	(A2)+,A0
	MOVE.W	0(A0,D5.W),D1
	ADD.W	D1,D0
	ADD.W	A3,D0
	ADD.W	D0,D0
	AND.W	D6,D0
	MOVE.W	D0,D5
	MOVE.L	(A2)+,A0
	MOVE.W	0(A0,D3.W),D0
	MOVE.L	(A2)+,A0
	MOVE.W	0(A0,D4.W),D1
	ADD.W	D1,D0
	ASR.W	#6,D0
	ADD.W	A1,D0
	MOVE.W	D0,D1
	LSR.W	#3,D1
	ADD.W	D1,D5
	EOR.W	D2,D0
	BSET	D0,0(A5,D5.W)
	EOR.W	D2,D0
	EOR.W	#$7FFF,D5
	BSET	D0,0(A5,D5.W)
	DBRA	D7,LOOP77
	RTS	
 
ZWQ:	MOVE.L	(A2)+,A0
	MOVE.W	0(A0,D3.W),D0
	MOVE.L	(A2)+,A0
	MOVE.W	0(A0,D4.W),D1
	ADD.W	D1,D0
	MOVE.L	(A2)+,A0
	MOVE.W	0(A0,D5.W),D1
	ADD.W	D1,D0
	ADD.W	A3,D0
	ADD.W	D0,D0
	AND.W	D6,D0
	MOVE.W	D0,D5
	MOVE.L	(A2)+,A0
	MOVE.W	0(A0,D3.W),D0
	MOVE.L	(A2)+,A0
	MOVE.W	0(A0,D4.W),D1
	ADD.W	D1,D0
	ASR.W	#6,D0
	ADD.W	A1,D0
	MOVE.W	D0,D1
	LSR.W	#3,D1
	ADD.W	D1,D5
	EOR.W	D2,D0
	BSET	D0,$0040(A5,D5.W)
	EOR.W	D2,D0
	EOR.W	#$7FFF,D5
	BSET	D0,$0040(A5,D5.W)
	DBRA	D7,LOOP77
	RTS	

POINTER:
		dc.L	$60000,$68000,$70000,$78000	;Bitplanes

COLI:		dc.W	0
SPEED:		dc.W	2
COLPOINTER:
		dc.L	COLTAB

COLTAB:
		dc.W	$FF0,1,$00F,2,$0F0,4,$FFF,2,$0FF,1,$F0F,2,$FFF,4,$F00,2
		dc.W	$FFFF

COP:		dc.W	$009C,$8010,$008E,$2981,$0090,$29D1
		dc.W	$0092,$0038,$0094,$00D0,$0100,$0600
		dc.W	$0120,$0000,$0122,$0000,$0124,$0000
		dc.W	$0126,$0000,$0128,$0000,$012A,$0000
		dc.W	$012C,$0000,$012E,$0000,$0130,$0000
		dc.W	$0132,$0000,$0134,$0000,$0136,$0000
		dc.W	$0138,$0000,$013A,$0000,$013C,$0000
		dc.W	$013E,$0000
POS1:		dc.W	$2A01,$FFFE
		dc.W	$0100,$2200
POS5:		dc.W	$00E0,$0007,$00E2,$800C,$00E4,$0007,$00E6,$804C
		dc.W	$0108,$0058,$010A,$0058,$0102
POS03:		dc.W	$0000
		dc.W    $0104,$0040,$009C,$8800,$0180,$0000
		dc.W	$0182
COL1:		dc.W	$0999,$0184,$0FFF,$0186,$0FFF
POS2:		dc.W	$FFDF,$FFFE,$2801,$FFFE,$0100,$0200
		dc.W	$FFFF,$FFFE

	;	3C    3E   40   3A	
TAB:
		dc.L	$00000000,$00000032,$FFFF0000,$00000028
		dc.L	$00010000,$00000028,$0000FFFF,$00000028
		dc.L	$00000001,$00000028,$0000FFFF,$00000028
		dc.L	$00000000,$00000032,$FFFF0001,$00000028
		dc.L	$0001FFFF,$00000028,$00000001,$00000028
		dc.L	$00000000,$00000032,$03E70000

BLOCK:
	dc.W	$0000
	dc.L	$00000040,$00400040,$00000000,$00000000,PENG
	dc.W	$0000
	dc.L	$00000100,$00001FC0,$00000000,$00000064,$00000000,$00000000
	dc.L	$00000000,$00010000,$00000000,$00000000,$00000000,$00000000
	dc.L	$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
	dc.L	$00000000,$00000000,$00000000,$00000000,$00000000,$00000000
	dc.L	$00000000,$00000000,$00000000,$00000000,$00000000,$00000000

PENG:	;Versch. der Planes
	dc.L	$0000000C,$00000032,$00000064,$FFFFFFE7
	dc.L	$FFFFFFE9,$FFFFFFFE,$FFFFFFB2,$0000000C
	dc.L	$0000000C,$FFFFFFFE,$00000064,$FFFFFFE7
	dc.L	$00000032,$FFFFFFE9,$00000000,$00000000

KOORD:	;         x     y     z
	;------------------------
		dc.W	$0092,$00CC,$001C
		dc.W	$0038,$00E2,$0060
		dc.W	$0094,$0020,$002E
		dc.W	$001A,$004A,$0048
		dc.W	$007C,$00DE,$002C
		dc.W	$00A8,$00E2,$003E
		dc.W	$0048,$0012,$009C
		dc.W	$00CC,$0036,$003A
		dc.W	$0038,$0026,$00B4
		dc.W	$00E4,$0052,$00BA
		dc.W	$00B8,$00A2,$0014
		dc.W	$00CE,$0038,$003C
		dc.W	$007E,$00D2,$00DE
		dc.W	$00EC,$00A2,$004A
		dc.W	$0098,$00FA,$007A
		dc.W	$004C,$0098,$00F0
		dc.W	$0098,$0038,$001A
		dc.W	$0048,$00BC,$0020
		dc.W	$007E,$00DC,$00D4
		dc.W	$00B8,$007E,$00EE
		dc.W	$0036,$00DE,$005A
		dc.W	$0038,$003A,$00CC
		dc.W	$0024,$0084,$00D6
		dc.W	$002C,$0062,$00D8
		dc.W	$0068,$0004,$0072
		dc.W	$0022,$00A6,$0034
		dc.W	$00D0,$0062,$00DC
		dc.W	$009C,$005E,$00F6
		dc.W	$002C,$00B0,$002E
		dc.W	$00DE,$0038,$00A8
		dc.W	$003C,$007C,$0014
		dc.W	$00CA,$00AC,$00DA
		dc.W	$0080,$0048,$000E
		dc.W	$0066,$0080,$00FA
		dc.W	$003E,$0018,$00A0
		dc.W	$00BC,$00DA,$0040
		dc.W	$007C,$0044,$00EE
		dc.W	$008C,$00E0,$0030
		dc.W	$00D2,$003A,$003C
		dc.W	$002E,$0020,$006C
		dc.W	$00EE,$006A,$00B8
		dc.W	$006C,$0006,$00A0
		dc.W	$00BE,$0038,$00D2
		dc.W	$00A6,$00F6,$008C
		dc.W	$00FC,$0078,$0074
		dc.W	$00BC,$00EC,$006C
		dc.W	$0022,$00B4,$003E
		dc.W	$00CC,$00C4,$0038
		dc.W	$0094,$00E2,$0034
		dc.W	$00CC,$00E2,$008E
		dc.W	$0036,$0020,$0058
		dc.W	$00A2,$0038,$00E2
		dc.W	$00D6,$0026,$006E
		dc.W	$0036,$0030,$0040
		dc.W	$0008,$0054,$0074
		dc.W	$0034,$002E,$0044
		dc.W	$00FA,$007E,$0098
		dc.W	$00B8,$00D2,$0034
		dc.W	$0014,$0056,$0048
		dc.W	$000E,$0056,$00A2
		dc.W	$0042,$0046,$00DE
		dc.W	$00E6,$0038,$008E
		dc.W	$00B2,$007E,$00F2
		dc.W	$0046,$00CE,$002E
		dc.W	$00AA,$001C,$003E
		dc.W	$00CC,$0086,$001C
		dc.W	$0082,$0004,$0060
		dc.W	$0076,$0004,$0096
		dc.W	$000A,$0050,$0078
		dc.W	$00BA,$003C,$00D6
		dc.W	$00C6,$0072,$00E6
		dc.W	$00DE,$004C,$00C0
		dc.W	$00E8,$006A,$00C2
		dc.W	$0088,$00CA,$00E4
		dc.W	$00CA,$003E,$0032
		dc.W	$004A,$00B8,$00E2
		dc.W	$003C,$00C8,$00CC
		dc.W	$0076,$002A,$0022
		dc.W	$000C,$0052,$0098
		dc.W	$0064,$00E0,$00CA
		dc.W	$002C,$006E,$0022
		dc.W	$0098,$0006,$009A
		dc.W	$00FC,$006E,$0078
		dc.W	$001C,$0094,$00CA
		dc.W	$0064,$0034,$00E0
		dc.W	$008E,$00BC,$0012
		dc.W	$00CA,$0038,$00C8
		dc.W	$00CE,$00CC,$00BC
		dc.W	$00F8,$009E,$0094
		dc.W	$00D2,$0044,$0034
		dc.W	$0084,$006C,$0002
		dc.W	$0096,$0028,$0026
		dc.W	$00B2,$0020,$003E
		dc.W	$0050,$00EE,$0056
		dc.W	$00C6,$0038,$00CC
		dc.W	$0030,$0038,$00C4
		dc.W	$0036,$00CE,$00C0
		dc.W	$001C,$0048,$00B6
		dc.W	$00B2,$00DC,$003A
		dc.W	$0048,$00D4,$00CA
		dc.W	$00E0,$003C,$0052
		dc.W	$002C,$0052,$00D2
		dc.W	$00C6,$0090,$00E6
		dc.W	$00C6,$00E6,$006E
		dc.W	$006C,$00D6,$00DA
		dc.W	$00C2,$0030,$00C6
		dc.W	$0066,$0026,$00D4
		dc.W	$0016,$0048,$0052
		dc.W	$0060,$00D8,$002A
		dc.W	$00BE,$0018,$00A4
		dc.W	$00B6,$0012,$00A0
		dc.W	$009A,$00F4,$00A6
		dc.W	$0054,$00D4,$002E
		dc.W	$0070,$00F8,$0062
		dc.W	$0094,$00F8,$0064
		dc.W	$0068,$00F0,$00B2
		dc.W	$003C,$0044,$00D8
		dc.W	$0044,$00D0,$0032
		dc.W	$002A,$00BE,$003A
		dc.W	$00F0,$0052,$009E
		dc.W	$00BE,$00DC,$00B8
		dc.W	$0086,$0098,$0004
		dc.W	$0032,$0044,$00CE
		dc.W	$00E0,$005C,$00C8
		dc.W	$0032,$0054,$0026
		dc.W	$000C,$00A0,$00A8
		dc.W	$00EC,$0054,$00AC
		dc.W	$00F4,$006C,$00AC
		dc.W	$003C,$00D4,$003E
		dc.W	$00A2,$000C,$005A
		dc.W	$00D8,$0058,$0030
		dc.W	$003E,$0014,$008A
		dc.W	$00BA,$0040,$00DA
		dc.W	$00D4,$00A2,$00D4
		dc.W	$0012,$0044,$0090
		dc.W	$007E,$0060,$00FA
		dc.W	$00E6,$003C,$009A
		dc.W	$0084,$0052,$000A
		dc.W	$00AC,$003A,$0020
		dc.W	$00C0,$001C,$00AA
		dc.W	$0014,$0072,$00C0
		dc.W	$007A,$00B8,$000E
		dc.W	$00F2,$008C,$0050
		dc.W	$0052,$00A2,$00F0
		dc.W	$0012,$0040,$0078
		dc.W	$0054,$00F2,$0062
		dc.W	$00A2,$00DA,$00CE
		dc.W	$0014,$005C,$00B6
		dc.W	$007E,$00CE,$00E2
		dc.W	$00B0,$00A2,$00EE
		dc.W	$00F6,$0098,$0060
		dc.W	$005C,$003E,$0018
		dc.W	$0004,$008E,$0066
		dc.W	$001C,$009C,$00C8
		dc.W	$0028,$00D6,$009A
		dc.W	$0032,$0088,$00E2
		dc.W	$0098,$001C,$00C8
		dc.W	$00C8,$00E2,$009A
		dc.W	$0054,$00E0,$00C2
		dc.W	$006E,$006E,$0004
		dc.W	$008E,$00A4,$00F6
		dc.W	$0038,$007E,$0016
		dc.W	$0048,$0088,$000E
		dc.W	$009E,$0086,$00F8
		dc.W	$002A,$00AA,$002C
		dc.W	$00BA,$0022,$00BC
		dc.W	$0050,$00CE,$00D6
		dc.W	$00FC,$0074,$007E
		dc.W	$0074,$00D8,$00D8
		dc.W	$0024,$00D6,$0088
		dc.W	$0044,$00CC,$002E
		dc.W	$00D4,$0072,$00DC
		dc.W	$00C4,$00E8,$0082
		dc.W	$009C,$0014,$00BC
		dc.W	$00BA,$00E2,$00B2
		dc.W	$0022,$00A8,$00CA
		dc.W	$00BC,$0084,$0012
		dc.W	$00B4,$00D4,$0034
		dc.W	$00A0,$00F8,$0078
		dc.W	$0086,$0054,$00F6
		dc.W	$0034,$0056,$00DC
		dc.W	$00C2,$003A,$00D0
		dc.W	$0046,$005E,$0014
		dc.W	$00BC,$0016,$00A0
		dc.W	$0096,$00C6,$001A
		dc.W	$0016,$004E,$00B0
		dc.W	$0062,$00D8,$002A
		dc.W	$0028,$0090,$0024
		dc.W	$00C6,$00AC,$0022
		dc.W	$0054,$00BC,$00E4
		dc.W	$00C2,$0072,$00E8
		dc.W	$00AC,$00CC,$00D8
		dc.W	$00DA,$00D6,$0084
		dc.W	$0066,$0038,$001A
		dc.W	$00D2,$002E,$004E
		dc.W	$00CE,$00B4,$002C
		dc.W	$009C,$00DC,$00CE
		dc.W	$0014,$00A0,$00BA
		dc.W	$0040,$0026,$0040
		dc.W	$0060,$001E,$0034
		dc.W	$0028,$0028,$009A
		dc.W	$0040,$005C,$00E6
		dc.W	$007C,$002E,$001E
		dc.W	$00EE,$009C,$00B4
		dc.W	$00AC,$0044,$001A
		dc.W	$006E,$00C4,$00E8
		dc.W	$001A,$0040,$00A8
		dc.W	$00BE,$0012,$007E
		dc.W	$0024,$009A,$002C
		dc.W	$004E,$00BA,$001A
		dc.W	$00DC,$00C4,$004E
		dc.W	$0038,$001C,$0060
		dc.W	$00CC,$003C,$00CA
		dc.W	$00C6,$00AA,$0020
		dc.W	$000E,$007A,$00B8
		dc.W	$00A2,$00DE,$00CA
		dc.W	$0062,$00EC,$0048
		dc.W	$00E0,$0084,$002E
		dc.W	$00E2,$0032,$0078
		dc.W	$0066,$00FA,$0074
		dc.W	$008C,$0030,$00E0
		dc.W	$0074,$001E,$002E
		dc.W	$00D6,$0094,$0026
		dc.W	$00B2,$00D6,$00CA
		dc.W	$00D2,$00DE,$0070
		dc.W	$003C,$00D6,$00BE
		dc.W	$00EC,$005A,$00B4
		dc.W	$00DC,$00A4,$00CC
		dc.W	$00D6,$00D6,$009A
		dc.W	$001C,$00A6,$003C
		dc.W	$0016,$0066,$00C0
		dc.W	$007A,$002E,$001E
		dc.W	$0014,$0044,$005E
		dc.W	$0036,$00C8,$00C8
		dc.W	$0012,$0046,$0060
		dc.W	$002E,$00DA,$00A0
		dc.W	$00FA,$0068,$0076
		dc.W	$003A,$003C,$00D0
		dc.W	$00BC,$001C,$004E
		dc.W	$0028,$0028,$0096
		dc.W	$00BC,$0010,$008A
		dc.W	$00B8,$002E,$0032
		dc.W	$008E,$00F0,$0048
		dc.W	$0028,$00A8,$00D0
		dc.W	$001C,$00B2,$00BA
		dc.W	$00DC,$004C,$003C
		dc.W	$00D2,$003C,$00C0
		dc.W	$0014,$003C,$0076
		dc.W	$0086,$0024,$00D6
		dc.W	$00D4,$00D6,$005C
		dc.W	$0032,$001E,$0068
		dc.W	$00A2,$00E8,$0042
		dc.W	$00CA,$00E0,$009A
		dc.W	$00D8,$003A,$00B8
		dc.W	$006C,$00CA,$00E2
		dc.W	$008E,$0002,$0082
		dc.W	$0028,$00BC,$00C2
		dc.W	$0056,$0058,$00F0
		dc.W	$00AE,$0026,$00CC
		dc.W	$0036,$00E6,$007C
		dc.W	$00B4,$0020,$0040
		dc.W	$00B0,$00D8,$00C8
		dc.W	$002E,$00D4,$0052
		dc.W	$0032,$003E,$00CA
		dc.W	$00A4,$001C,$003A
		dc.W	$002A,$003E,$003C
		dc.W	$002A,$00D6,$005C
		dc.W	$00C6,$00C6,$00CA
		dc.W	$00A0,$00AE,$0010
		dc.W	$00BC,$00D2,$00C8
		dc.W	$00EA,$0058,$004A
		dc.W	$0046,$00AE,$0018
		dc.W	$0036,$00AA,$0022
		dc.W	$0050,$00F2,$006E
		dc.W	$00C6,$00CE,$003C
		dc.W	$0016,$005E,$0040
		dc.W	$0040,$0012,$0076
		dc.W	$0034,$002A,$00B8
		dc.W	$00A8,$0028,$00D2
		dc.W	$002A,$00DC,$0070
		dc.W	$00B6,$0040,$0020
		dc.W	$0032,$003A,$0036
		dc.W	$0020,$002C,$007C
		dc.W	$0050,$0020,$003A
		dc.W	$00CC,$0072,$00E2
		dc.W	$0064,$00EC,$0046
		dc.W	$007A,$00C2,$0014
		dc.W	$00B8,$00CA,$00D4
		dc.W	$004C,$00C8,$00D8
		dc.W	$0050,$003C,$00E0

SINLIST: 	;as always ..
		dc.L	$007F0000,$007F0003,$007F0006,$007F0009
		dc.L	$007E000C,$007E0010,$007E0013,$007D0016
		dc.L	$007D0019,$007C001C,$007B001F,$007A0022
		dc.L	$007A0025,$00790028,$0078002B,$0076002E
		dc.L	$00750031,$00740033,$00730036,$00710039
		dc.L	$0070003C,$006F003F,$006D0041,$006B0044
		dc.L	$006A0047,$00680049,$0066004C,$0064004E
		dc.L	$00620051,$00600053,$005E0055,$005C0058
		dc.L	$005A005A,$0058005C,$0055005E,$00530060
		dc.L	$00510062,$004E0064,$004C0066,$00490068
		dc.L	$0047006A,$0044006B,$0041006D,$003F006E
		dc.L	$003C0070,$00390071,$00360073,$00340074
		dc.L	$00310075,$002E0076,$002B0078,$00280079
		dc.L	$0025007A,$0022007A,$001F007B,$001C007C
		dc.L	$0019007D,$0016007D,$0013007E,$0010007E
		dc.L	$000D007E,$0009007F,$0006007F,$0003007F
		dc.L	$0000007F,$FFFD007F,$FFFA007F,$FFF7007F
		dc.L	$FFF4007E,$FFF1007E,$FFED007E,$FFEA007D
		dc.L	$FFE7007D,$FFE4007C,$FFE1007B,$FFDE007A
		dc.L	$FFDB007A,$FFD80079,$FFD50078,$FFD20077
		dc.L	$FFD00075,$FFCD0074,$FFCA0073,$FFC70071
		dc.L	$FFC40070,$FFC2006F,$FFBF006D,$FFBC006B
		dc.L	$FFBA006A,$FFB70068,$FFB40066,$FFB20064
		dc.L	$FFB00062,$FFAD0060,$FFAB005E,$FFA9005C
		dc.L	$FFA6005A,$FFA40058,$FFA20055,$FFA00053
		dc.L	$FF9E0051,$FF9C004E,$FF9A004C,$FF980049
		dc.L	$FF960047,$FF950044,$FF930041,$FF92003F
		dc.L	$FF90003C,$FF8F0039,$FF8D0036,$FF8C0034
		dc.L	$FF8B0031,$FF8A002E,$FF88002B,$FF870028
		dc.L	$FF870025,$FF860022,$FF85001F,$FF84001C
		dc.L	$FF830019,$FF830016,$FF820013,$FF820010
		dc.L	$FF82000D,$FF81000A,$FF810006,$FF810003
		dc.L	$FF810000,$FF81FFFD,$FF81FFFA,$FF81FFF7
		dc.L	$FF82FFF4,$FF82FFF1,$FF82FFEE,$FF83FFEA
		dc.L	$FF83FFE7,$FF84FFE4,$FF85FFE1,$FF86FFDE
		dc.L	$FF86FFDB,$FF87FFD8,$FF88FFD5,$FF89FFD3
		dc.L	$FF8BFFD0,$FF8CFFCD,$FF8DFFCA,$FF8EFFC7
		dc.L	$FF90FFC4,$FF91FFC2,$FF93FFBF,$FF95FFBC
		dc.L	$FF96FFBA,$FF98FFB7,$FF9AFFB5,$FF9CFFB2
		dc.L	$FF9EFFB0,$FFA0FFAD,$FFA2FFAB,$FFA4FFA9
		dc.L	$FFA6FFA6,$FFA8FFA4,$FFABFFA2,$FFADFFA0
		dc.L	$FFAFFF9E,$FFB2FF9C,$FFB4FF9A,$FFB7FF98
		dc.L	$FFB9FF97,$FFBCFF95,$FFBEFF93,$FFC1FF92
		dc.L	$FFC4FF90,$FFC7FF8F,$FFC9FF8D,$FFCCFF8C
		dc.L	$FFCFFF8B,$FFD2FF8A,$FFD5FF89,$FFD8FF87
		dc.L	$FFDBFF87,$FFDEFF86,$FFE1FF85,$FFE4FF84
		dc.L	$FFE7FF83,$FFEAFF83,$FFEDFF82,$FFF0FF82
		dc.L	$FFF3FF82,$FFF6FF81,$FFF9FF81,$FFFDFF81
		dc.L	$0000FF81,$0003FF81,$0006FF81,$0009FF81
		dc.L	$000CFF82,$000FFF82,$0012FF82,$0015FF83
		dc.L	$0018FF83,$001CFF84,$001FFF85,$0022FF86
		dc.L	$0025FF86,$0028FF87,$002AFF88,$002DFF89
		dc.L	$0030FF8B,$0033FF8C,$0036FF8D,$0039FF8E
		dc.L	$003CFF90,$003EFF91,$0041FF93,$0044FF95
		dc.L	$0046FF96,$0049FF98,$004BFF9A,$004EFF9C
		dc.L	$0050FF9E,$0053FFA0,$0055FFA2,$0057FFA4
		dc.L	$005AFFA6,$005CFFA8,$005EFFAA,$0060FFAD
		dc.L	$0062FFAF,$0064FFB2,$0066FFB4,$0068FFB7
		dc.L	$0069FFB9,$006BFFBC,$006DFFBE,$006EFFC1
		dc.L	$0070FFC4,$0071FFC7,$0073FFC9,$0074FFCC
		dc.L	$0075FFCF,$0076FFD2,$0077FFD5,$0078FFD8
		dc.L	$0079FFDB,$007AFFDE,$007BFFE1,$007CFFE4
		dc.L	$007CFFE7,$007DFFEA,$007EFFED,$007EFFF0
		dc.L	$007EFFF3,$007FFFF6,$007FFFF9,$007FFFFC
