; AMIGA INTERFACE VECTOR ROUTINE
; OPTIMIZED BY PSYCHO OF DOMINATORS


org $3D000
load $3D000
ADDER=-4000
j:
move.l	#$3000,d0
lea	$70000,a0
clearit:
clr.l	(a0)+
sub.l	#1,d0
bne	clearit

move.l	$4,a6
LEA	GRA_LIB(pc),A1
JSR	-408(A6)
move.l	d0,gfxbase

MOVE.L	D0,A1
MOVE.L	38(A1),OLDCOPPER
JSR	-414(A6)

move.w	#$7fff,$dff09a
move.l	$6c,oldint3
move.l	#inter,$6c
move.w 	#$c020,$dff09a

jsr	multi
BSR	setup

TMUS:	
BTST #6,$BFE001	
BNE TMUS
		
TMUS2:
MOVE.L OLDINT3,$6C
MOVE.W  #$000F,$DFF096
MOVE.L	OLDCOPPER,$DFF080
TST.W	$DFF088
MOVE.W	#$4000,$DFF09A
MOVE.W	#$E02C,$DFF09A
MOVE.W	#$8020,$DFF096
CLR.L	D0
rts
addview:
cmp.l #220,viewdistance
bcs addon
sub.l #20,viewdistance
addon:
cmp.l #0,zgrad
beq addon2
sub.l #1,zgrad
addon2:
rts

even

GfxBase:	dc.l 0

inter:
movem.l	a0-a6/d0-d7,-(a7)
move.l $dff01e,d0
btst #5,d0
bne copp

intend:
move.w #$0020,$dff09c
movem.l	(a7)+,a0-a6/d0-d7
rte
copp:
jsr	draw_figure(pc)
jsr	flip_screen(pc)
bra intend

even
oldint3:dc.l	0
COUNT3: 	DC.W 0
OLDINTER:	DC.W	0
OLDCOPPER:	DC.L	0
GRA_LIB:	DC.B	'graphics.library',0,0
even

coplist:
dc.w $0100,$0200
dc.w $2001,$fffe
bpl_pointers:
dc.w $00e0,$0000
dc.w $00e2,$0000
DC.W $0100,$1200
DC.W $0104,$0000
DC.W $0108,$0000
DC.W $010A,$0000
DC.W $008E,$0c81
DC.W $0090,$3cc1
DC.W $0092,$0038
DC.W $0094,$00d0
dc.w $0096,$0020
dc.w $0180,$0000
dc.w $0182,$000f
colhere:
blk.b	1600,0
;dc.w $f801,$fffe,$0100,$0200
dc.w $ffff,$fffe

setup:
move.l	#200,d6
lea	colhere,a0
move.l	#$3109,d0
set1:
move.l	colpoi,a1
move.w	d0,(a0)+
move.l	#$fffe0182,(a0)+
move.w	(a1),(a0)+
add.l	#2,colpoi
move.l	colpoi,a1
move.w	(a1),d7
cmpa	#$1000,d7
bne	set2
move.l	#colours,colpoi
set2:
add	#$0100,d0
sub.l	#1,d6
bne	set1
move.l	#coplist,$dff080
roxl.w	$dff088
move.w	#$8180,$dff096
rts

multi:
lea	figure1,a0
move.l	size,d4
mul1:
clr.l	d1
clr.l	d2
clr.l	d3
move.w	2(a0),d1
move.w	4(a0),d2
move.w	6(a0),d3
cmpa	#555,d1
beq	mulend
mulu	d4,d1
mulu	d4,d2
mulu	d4,d3
move.w	d1,2(a0)
move.w	d2,4(a0)
move.w	d3,6(a0)
mulcont:
add.l	#8,a0
bra	mul1
mulend:
rts

flip_screen:
	cmp.l #screen0,screen_adress
	beq.s flip_screen1
flip_screen0:
	lea bpl_pointers,a0
	move.l #screen1,d0
	move.w d0,6(a0)
	swap d0
	move.w d0,2(a0)
	move.l #screen0,screen_adress
	rts
flip_screen1:
	lea bpl_pointers,a0
	move.l #screen0,d0
	move.w d0,6(a0)
	swap d0
	move.w d0,2(a0)
	move.l #screen1,screen_adress
	rts

wait_blitter:
	btst #14,$dff002
	bne.s wait_blitter
	rts

draw_figure:
	btst #14,$dff002
	bne.s draw_figure
	move.l #$01000000,$dff040
	move.l screen_adress,d4
	move.l d4,$dff054
	move.w #0,$dff066
	move.w #[272*64]+22,$dff058
	move.l #$00008000,$dff072
	move.l #$ffffffff,$dff044
	move.w #40,$dff060
	
;	calculate new degrees
	
	move.l xdelta,d0
	add.l d0,xgrad
	and.l #$000001ff,xgrad
	move.l ygrad,d6
	add.l  ydelta,d6
	and.l #$000001ff,d6
	move.l d6,ygrad
	lsl.w #1,d6
	move.l zgrad,d7
	add.l zdelta,d7
	and.l #$000001ff,d7
	move.l d7,zgrad
	lsl.w #1,d7

; rotate figure

	move.l screen_adress,a0
	add.l  #adder,a0
	lea figure1,a1
	lea sin_table,a2
	lea cos_table,a3
	lea octant_table,a4
draw_figure2:
	cmp.w #555,(a1)
	beq.l draw_figure_exit
	move.l xgrad,d5
	lsl.w  #1,d5

; rotate around x-axis
	
	move.w (a3,d5),d0
	muls 4(a1),d0
	move.w (a2,d5),d1
	muls 6(a1),d1
	sub.l d1,d0
	lsl.l #2,d0
	move.l d0,y1
	move.w (a2,d5),d0
	muls 4(a1),d0
	move.w (a3,d5),d1
	muls 6(a1),d1
	add.l d1,d0
	lsl.l #2,d0
	move.l d0,z1

;	rotate around y-axis

	move.w (a3,d6),d0
	muls 2(a1),d0
	move.w (a2,d6),d1
	muls z1,d1
	sub.l d1,d0
	lsl.l #2,d0
	move.l d0,x2
	move.w (a2,d6),d0
	muls 2(a1),d0
	move.w (a3,d6),d1
	muls z1,d1
	add.l d1,d0
	lsl.l #2,d0
	swap d0
	ext.l d0
	move.l d0,z2

;	rotate around z-axis

	move.w (a3,d7),d0
	muls x2,d0
	move.w (a2,d7),d1
	muls y1,d1
	sub.l d1,d0
	lsl.l #2,d0
	swap d0
	ext.l d0
	move.w (a2,d7),d1
	muls x2,d1
	move.w (a3,d7),d2
	muls y1,d2
	add.l d2,d1
	lsl.l #2,d1
	swap d1
	ext.l d1

;	tranlate 3d-2d

	move.l yviewpoint,d2
	muls d0,d2
	move.l viewdistance,d4
	add.l d1,d4
	divs d4,d2
	ext.l d2
	add.l xorigo,d2
	move.l last_xpoint,d0
	move.l d2,last_xpoint
	move.l d1,d3
	add.l yorigo,d3
	move.l zviewpoint,d4
	sub.l z2,d4
	muls d3,d4
	add.l viewdistance,d1
	divs d1,d4
	ext.l d4
	add.l z2,d4
	lsr.l #1,d4
	move.l zorigo,d3
	sub.l d4,d3
	move.l last_ypoint,d1
	move.l d3,last_ypoint

;	draw line

	tst.w (a1)
	beq.l draw_figure3
	cmp.l d0,d2
	bne.l draw1
	cmp.l d1,d3
	bne.l draw1
	bra.l draw_figure3

;	d4=startadr for line

draw1:	move.l d1,d4
	move.l d4,d5
	lsl.w #5,d4
	lsl.w #3,d5
	add.l d5,d4
	move.l d0,d5
	lsr.w #3,d5
	add.l d5,d4
	add.l a0,d4

;	calculate octant and delta

	move.l #0,d5
	sub.w d1,d3
	roxl.b #1,d5
	tst.w d3
	bge.s y2gy1
	neg.w d3
y2gy1:	sub.w d0,d2
	roxl.b #1,d5
	tst.w d2
	bge.s x2gx1
	neg.w d2
x2gx1:	move.w d3,d1
	sub.w d2,d1
	bge.s dygdx
	exg d2,d3
dygdx:	roxl.b #1,d5
	move.b (a4,d5),d5
	lsl.l #1,d2
	and.w #$000f,d0
	ror.w #4,d0
	or.w #$0bfa,d0
	move.l d3,d1
	lsl.w #6,d3
	addq.w #2,d3
drawit:	btst #14,$dff002
	bne.s drawit
	move.w d2,$dff062
	sub.w d1,d2
	bge.s signnl
	or.b #$40,d5
signnl:	move.w d2,$dff052
	sub.w d1,d2
	move.w d2,$dff064

;	set other blitter-regs

	move.w d0,$dff040
	move.w d5,$dff042
	move.l d4,$dff048
	move.l d4,$dff054
	move.w #40,$dff066
	move.w d3,$dff058
draw_figure3:
	addq.l #8,a1
	bra.l draw_figure2
draw_figure_exit:
	jsr	wait_blitter
	rts

screen_adress:
	dc.l screen0
octant_table:
	dc.b %00000001 ; 6
	dc.b %00010001 ; 7
	dc.b %00001001 ; 5
	dc.b %00010101 ; 4
	dc.b %00000101 ; 1
	dc.b %00011001 ; 0
	dc.b %00001101 ; 2
	dc.b %00011101 ; 3

xorigo:		dc.l 160
yorigo: 	dc.l -200
zorigo:		dc.l 200
yviewpoint:	dc.l 200
zviewpoint:	dc.l 0
viewdistance:	dc.l 300
xgrad:		dc.l 0
ygrad:		dc.l 0
zgrad:		dc.l 0
xdelta:		dc.l 2
ydelta:		dc.l 2
zdelta:		dc.l 4
y1:		dc.l 0
z1:		dc.l 0
x2:		dc.l 0
z2:		dc.l 0
last_xpoint:	dc.l 0
last_ypoint:	dc.l 0


size:	dc.l	1
figure1:
DC.W 0,-20,80,20
DC.W 1,20,80,20
DC.W 1,20,80,-20
DC.W 1,-20,80,-20
DC.W 1,-20,80,20
DC.W 0,-20,40,20
DC.W 1,-20,40,20
DC.W 1,20,40,20
DC.W 1,20,40,-20
DC.W 1,-20,40,-20
DC.W 1,-20,40,20
DC.W 0,-20,80,20
DC.W 1,-20,40,20
DC.W 0,20,80,20
DC.W 1,20,40,20
DC.W 0,20,80,-20
DC.W 1,20,40,-20
DC.W 0,-20,80,-20
DC.W 1,-20,40,-20
DC.W 0,-20,80,20
DC.W 1,-20,40,20
dc.w 555,555,555,555
fig2:
	
sin_table:
	dc.w	 0 
	dc.w	 201 
	dc.w	 402 
	dc.w	 603 
	dc.w	 803 
	dc.w	 1004 
	dc.w	 1205 
	dc.w	 1405 
	dc.w	 1605 
	dc.w	 1805 
	dc.w	 2005 
	dc.w	 2204 
	dc.w	 2404 
	dc.w	 2602 
	dc.w	 2801 
	dc.w	 2998 
	dc.w	 3196 
	dc.w	 3393 
	dc.w	 3589 
	dc.w	 3785 
	dc.w	 3980 
	dc.w	 4175 
	dc.w	 4369 
	dc.w	 4563 
	dc.w	 4756 
	dc.w	 4948 
	dc.w	 5139 
	dc.w	 5329 
	dc.w	 5519 
	dc.w	 5708 
	dc.w	 5896 
	dc.w	 6083 
	dc.w	 6269 
	dc.w	 6455 
	dc.w	 6639 
	dc.w	 6822 
	dc.w	 7005 
	dc.w	 7186 
	dc.w	 7366 
	dc.w	 7545 
	dc.w	 7723 
	dc.w	 7900 
	dc.w	 8075 
	dc.w	 8249 
	dc.w	 8423 
	dc.w	 8594 
	dc.w	 8765 
	dc.w	 8934 
	dc.w	 9102 
	dc.w	 9268 
	dc.w	 9434 
	dc.w	 9597 
	dc.w	 9759 
	dc.w	 9920 
	dc.w	 10079 
	dc.w	 10237 
	dc.w	 10393 
	dc.w	 10548 
	dc.w	 10701 
	dc.w	 10853 
	dc.w	 11002 
	dc.w	 11150 
	dc.w	 11297 
	dc.w	 11442 
	dc.w	 11585 
	dc.w	 11726 
	dc.w	 11866 
	dc.w	 12003 
	dc.w	 12139 
	dc.w	 12273 
	dc.w	 12406 
	dc.w	 12536 
	dc.w	 12665 
	dc.w	 12791 
	dc.w	 12916 
	dc.w	 13038 
	dc.w	 13159 
	dc.w	 13278 
	dc.w	 13395 
	dc.w	 13510 
	dc.w	 13622 
	dc.w	 13733 
	dc.w	 13842 
	dc.w	 13948 
	dc.w	 14053 
	dc.w	 14155 
	dc.w	 14255 
	dc.w	 14353 
	dc.w	 14449 
	dc.w	 14543 
	dc.w	 14634 
	dc.w	 14723 
	dc.w	 14810 
	dc.w	 14895 
	dc.w	 14978 
	dc.w	 15058 
	dc.w	 15136 
	dc.w	 15212 
	dc.w	 15286 
	dc.w	 15357 
	dc.w	 15426 
	dc.w	 15492 
	dc.w	 15557 
	dc.w	 15618 
	dc.w	 15678 
	dc.w	 15735 
	dc.w	 15790 
	dc.w	 15842 
	dc.w	 15892 
	dc.w	 15940 
	dc.w	 15985 
	dc.w	 16028 
	dc.w	 16069 
	dc.w	 16107 
	dc.w	 16142 
	dc.w	 16175 
	dc.w	 16206 
	dc.w	 16234 
	dc.w	 16260 
	dc.w	 16284 
	dc.w	 16305 
	dc.w	 16323 
	dc.w	 16339 
	dc.w	 16353 
	dc.w	 16364 
	dc.w	 16372 
	dc.w	 16379 
	dc.w	 16382 
	dc.w	 16384 
	dc.w	 16382 
	dc.w	 16379 
	dc.w	 16372 
	dc.w	 16364 
	dc.w	 16353 
	dc.w	 16339 
	dc.w	 16323 
	dc.w	 16305 
	dc.w	 16284 
	dc.w	 16260 
	dc.w	 16234 
	dc.w	 16206 
	dc.w	 16175 
	dc.w	 16142 
	dc.w	 16107 
	dc.w	 16069 
	dc.w	 16028 
	dc.w	 15985 
	dc.w	 15940 
	dc.w	 15892 
	dc.w	 15842 
	dc.w	 15790 
	dc.w	 15735 
	dc.w	 15678 
	dc.w	 15618 
	dc.w	 15557 
	dc.w	 15492 
	dc.w	 15426 
	dc.w	 15357 
	dc.w	 15286 
	dc.w	 15212 
	dc.w	 15136 
	dc.w	 15058 
	dc.w	 14978 
	dc.w	 14895 
	dc.w	 14810 
	dc.w	 14723 
	dc.w	 14634 
	dc.w	 14543 
	dc.w	 14449 
	dc.w	 14353 
	dc.w	 14255 
	dc.w	 14155 
	dc.w	 14053 
	dc.w	 13948 
	dc.w	 13842 
	dc.w	 13733 
	dc.w	 13622 
	dc.w	 13510 
	dc.w	 13395 
	dc.w	 13278 
	dc.w	 13159 
	dc.w	 13038 
	dc.w	 12916 
	dc.w	 12791 
	dc.w	 12665 
	dc.w	 12536 
	dc.w	 12406 
	dc.w	 12273 
	dc.w	 12139 
	dc.w	 12003 
	dc.w	 11866 
	dc.w	 11726 
	dc.w	 11585 
	dc.w	 11442 
	dc.w	 11297 
	dc.w	 11150 
	dc.w	 11002 
	dc.w	 10853 
	dc.w	 10701 
	dc.w	 10548 
	dc.w	 10393 
	dc.w	 10237 
	dc.w	 10079 
	dc.w	 9920 
	dc.w	 9759 
	dc.w	 9597 
	dc.w	 9434 
	dc.w	 9268 
	dc.w	 9102 
	dc.w	 8934 
	dc.w	 8765 
	dc.w	 8594 
	dc.w	 8423 
	dc.w	 8249 
	dc.w	 8075 
	dc.w	 7900 
	dc.w	 7723 
	dc.w	 7545 
	dc.w	 7366 
	dc.w	 7186 
	dc.w	 7005 
	dc.w	 6822 
	dc.w	 6639 
	dc.w	 6455 
	dc.w	 6269 
	dc.w	 6083 
	dc.w	 5896 
	dc.w	 5708 
	dc.w	 5519 
	dc.w	 5329 
	dc.w	 5139 
	dc.w	 4948 
	dc.w	 4756 
	dc.w	 4563 
	dc.w	 4369 
	dc.w	 4175 
	dc.w	 3980 
	dc.w	 3785 
	dc.w	 3589 
	dc.w	 3393 
	dc.w	 3196 
	dc.w	 2998 
	dc.w	 2801 
	dc.w	 2602 
	dc.w	 2404 
	dc.w	 2204 
	dc.w	 2005 
	dc.w	 1805 
	dc.w	 1605 
	dc.w	 1405 
	dc.w	 1205 
	dc.w	 1004 
	dc.w	 803 
	dc.w	 603 
	dc.w	 402 
	dc.w	 201 
	dc.w	-1 
	dc.w	-202 
	dc.w	-403 
	dc.w	-604 
	dc.w	-804 
	dc.w	-1005 
	dc.w	-1206 
	dc.w	-1406 
	dc.w	-1606 
	dc.w	-1806 
	dc.w	-2006 
	dc.w	-2205 
	dc.w	-2405 
	dc.w	-2603 
	dc.w	-2802 
	dc.w	-2999 
	dc.w	-3197 
	dc.w	-3394 
	dc.w	-3590 
	dc.w	-3786 
	dc.w	-3981 
	dc.w	-4176 
	dc.w	-4370 
	dc.w	-4564 
	dc.w	-4757 
	dc.w	-4949 
	dc.w	-5140 
	dc.w	-5330 
	dc.w	-5520 
	dc.w	-5709 
	dc.w	-5897 
	dc.w	-6084 
	dc.w	-6270 
	dc.w	-6456 
	dc.w	-6640 
	dc.w	-6823 
	dc.w	-7006 
	dc.w	-7187 
	dc.w	-7367 
	dc.w	-7546 
	dc.w	-7724 
	dc.w	-7901 
	dc.w	-8076 
	dc.w	-8250 
	dc.w	-8424 
	dc.w	-8595 
	dc.w	-8766 
	dc.w	-8935 
	dc.w	-9103 
	dc.w	-9269 
	dc.w	-9435 
	dc.w	-9598 
	dc.w	-9760 
	dc.w	-9921 
	dc.w	-10080 
	dc.w	-10238 
	dc.w	-10394 
	dc.w	-10549 
	dc.w	-10702 
	dc.w	-10854 
	dc.w	-11003 
	dc.w	-11151 
	dc.w	-11298 
	dc.w	-11443 
	dc.w	-11586 
	dc.w	-11727 
	dc.w	-11867 
	dc.w	-12004 
	dc.w	-12140 
	dc.w	-12274 
	dc.w	-12407 
	dc.w	-12537 
	dc.w	-12666 
	dc.w	-12792 
	dc.w	-12917 
	dc.w	-13039 
	dc.w	-13160 
	dc.w	-13279 
	dc.w	-13396 
	dc.w	-13511 
	dc.w	-13623 
	dc.w	-13734 
	dc.w	-13843 
	dc.w	-13949 
	dc.w	-14054 
	dc.w	-14156 
	dc.w	-14256 
	dc.w	-14354 
	dc.w	-14450 
	dc.w	-14544 
	dc.w	-14635 
	dc.w	-14724 
	dc.w	-14811 
	dc.w	-14896 
	dc.w	-14979 
	dc.w	-15059 
	dc.w	-15137 
	dc.w	-15213 
	dc.w	-15287 
	dc.w	-15358 
	dc.w	-15427 
	dc.w	-15493 
	dc.w	-15558 
	dc.w	-15619 
	dc.w	-15679 
	dc.w	-15736 
	dc.w	-15791 
	dc.w	-15843 
	dc.w	-15893 
	dc.w	-15941 
	dc.w	-15986 
	dc.w	-16029 
	dc.w	-16070 
	dc.w	-16108 
	dc.w	-16143 
	dc.w	-16176 
	dc.w	-16207 
	dc.w	-16235 
	dc.w	-16261 
	dc.w	-16285 
	dc.w	-16306 
	dc.w	-16324 
	dc.w	-16340 
	dc.w	-16354 
	dc.w	-16365 
	dc.w	-16373 
	dc.w	-16380 
	dc.w	-16383 
	dc.w	-16384 
	dc.w	-16383 
	dc.w	-16380 
	dc.w	-16373 
	dc.w	-16365 
	dc.w	-16354 
	dc.w	-16340 
	dc.w	-16324 
	dc.w	-16306 
	dc.w	-16285 
	dc.w	-16261 
	dc.w	-16235 
	dc.w	-16207 
	dc.w	-16176 
	dc.w	-16143 
	dc.w	-16108 
	dc.w	-16070 
	dc.w	-16029 
	dc.w	-15986 
	dc.w	-15941 
	dc.w	-15893 
	dc.w	-15843 
	dc.w	-15791 
	dc.w	-15736 
	dc.w	-15679 
	dc.w	-15619 
	dc.w	-15558 
	dc.w	-15493 
	dc.w	-15427 
	dc.w	-15358 
	dc.w	-15287 
	dc.w	-15213 
	dc.w	-15137 
	dc.w	-15059 
	dc.w	-14979 
	dc.w	-14896 
	dc.w	-14811 
	dc.w	-14724 
	dc.w	-14635 
	dc.w	-14544 
	dc.w	-14450 
	dc.w	-14354 
	dc.w	-14256 
	dc.w	-14156 
	dc.w	-14054 
	dc.w	-13949 
	dc.w	-13843 
	dc.w	-13734 
	dc.w	-13623 
	dc.w	-13511 
	dc.w	-13396 
	dc.w	-13279 
	dc.w	-13160 
	dc.w	-13039 
	dc.w	-12917 
	dc.w	-12792 
	dc.w	-12666 
	dc.w	-12537 
	dc.w	-12407 
	dc.w	-12274 
	dc.w	-12140 
	dc.w	-12004 
	dc.w	-11867 
	dc.w	-11727 
	dc.w	-11586 
	dc.w	-11443 
	dc.w	-11298 
	dc.w	-11151 
	dc.w	-11003 
	dc.w	-10854 
	dc.w	-10702 
	dc.w	-10549 
	dc.w	-10394 
	dc.w	-10238 
	dc.w	-10080 
	dc.w	-9921 
	dc.w	-9760 
	dc.w	-9598 
	dc.w	-9435 
	dc.w	-9269 
	dc.w	-9103 
	dc.w	-8935 
	dc.w	-8766 
	dc.w	-8595 
	dc.w	-8424 
	dc.w	-8250 
	dc.w	-8076 
	dc.w	-7901 
	dc.w	-7724 
	dc.w	-7546 
	dc.w	-7367 
	dc.w	-7187 
	dc.w	-7006 
	dc.w	-6823 
	dc.w	-6640 
	dc.w	-6456 
	dc.w	-6270 
	dc.w	-6084 
	dc.w	-5897 
	dc.w	-5709 
	dc.w	-5520 
	dc.w	-5330 
	dc.w	-5140 
	dc.w	-4949 
	dc.w	-4757 
	dc.w	-4564 
	dc.w	-4370 
	dc.w	-4176 
	dc.w	-3981 
	dc.w	-3786 
	dc.w	-3590 
	dc.w	-3394 
	dc.w	-3197 
	dc.w	-2999 
	dc.w	-2802 
	dc.w	-2603 
	dc.w	-2405 
	dc.w	-2205 
	dc.w	-2006 
	dc.w	-1806 
	dc.w	-1606 
	dc.w	-1406 
	dc.w	-1206 
	dc.w	-1005 
	dc.w	-804 
	dc.w	-604 
	dc.w	-403 
	dc.w	-202 


cos_table:
	dc.w	 16384 
	dc.w	 16382 
	dc.w	 16379 
	dc.w	 16372 
	dc.w	 16364 
	dc.w	 16353 
	dc.w	 16339 
	dc.w	 16323 
	dc.w	 16305 
	dc.w	 16284 
	dc.w	 16260 
	dc.w	 16234 
	dc.w	 16206 
	dc.w	 16175 
	dc.w	 16142 
	dc.w	 16107 
	dc.w	 16069 
	dc.w	 16028 
	dc.w	 15985 
	dc.w	 15940 
	dc.w	 15892 
	dc.w	 15842 
	dc.w	 15790 
	dc.w	 15735 
	dc.w	 15678 
	dc.w	 15618 
	dc.w	 15557 
	dc.w	 15492 
	dc.w	 15426 
	dc.w	 15357 
	dc.w	 15286 
	dc.w	 15212 
	dc.w	 15136 
	dc.w	 15058 
	dc.w	 14978 
	dc.w	 14895 
	dc.w	 14810 
	dc.w	 14723 
	dc.w	 14634 
	dc.w	 14543 
	dc.w	 14449 
	dc.w	 14353 
	dc.w	 14255 
	dc.w	 14155 
	dc.w	 14053 
	dc.w	 13948 
	dc.w	 13842 
	dc.w	 13733 
	dc.w	 13622 
	dc.w	 13510 
	dc.w	 13395 
	dc.w	 13278 
	dc.w	 13159 
	dc.w	 13038 
	dc.w	 12916 
	dc.w	 12791 
	dc.w	 12665 
	dc.w	 12536 
	dc.w	 12406 
	dc.w	 12273 
	dc.w	 12139 
	dc.w	 12003 
	dc.w	 11866 
	dc.w	 11726 
	dc.w	 11585 
	dc.w	 11442 
	dc.w	 11297 
	dc.w	 11150 
	dc.w	 11002 
	dc.w	 10853 
	dc.w	 10701 
	dc.w	 10548 
	dc.w	 10393 
	dc.w	 10237 
	dc.w	 10079 
	dc.w	 9920 
	dc.w	 9759 
	dc.w	 9597 
	dc.w	 9434 
	dc.w	 9268 
	dc.w	 9102 
	dc.w	 8934 
	dc.w	 8765 
	dc.w	 8594 
	dc.w	 8423 
	dc.w	 8249 
	dc.w	 8075 
	dc.w	 7900 
	dc.w	 7723 
	dc.w	 7545 
	dc.w	 7366 
	dc.w	 7186 
	dc.w	 7005 
	dc.w	 6822 
	dc.w	 6639 
	dc.w	 6455 
	dc.w	 6269 
	dc.w	 6083 
	dc.w	 5896 
	dc.w	 5708 
	dc.w	 5519 
	dc.w	 5329 
	dc.w	 5139 
	dc.w	 4948 
	dc.w	 4756 
	dc.w	 4563 
	dc.w	 4369 
	dc.w	 4175 
	dc.w	 3980 
	dc.w	 3785 
	dc.w	 3589 
	dc.w	 3393 
	dc.w	 3196 
	dc.w	 2998 
	dc.w	 2801 
	dc.w	 2602 
	dc.w	 2404 
	dc.w	 2204 
	dc.w	 2005 
	dc.w	 1805 
	dc.w	 1605 
	dc.w	 1405 
	dc.w	 1205 
	dc.w	 1004 
	dc.w	 803 
	dc.w	 603 
	dc.w	 402 
	dc.w	 201 
	dc.w	-1 
	dc.w	-202 
	dc.w	-403 
	dc.w	-604 
	dc.w	-804 
	dc.w	-1005 
	dc.w	-1206 
	dc.w	-1406 
	dc.w	-1606 
	dc.w	-1806 
	dc.w	-2006 
	dc.w	-2205 
	dc.w	-2405 
	dc.w	-2603 
	dc.w	-2802 
	dc.w	-2999 
	dc.w	-3197 
	dc.w	-3394 
	dc.w	-3590 
	dc.w	-3786 
	dc.w	-3981 
	dc.w	-4176 
	dc.w	-4370 
	dc.w	-4564 
	dc.w	-4757 
	dc.w	-4949 
	dc.w	-5140 
	dc.w	-5330 
	dc.w	-5520 
	dc.w	-5709 
	dc.w	-5897 
	dc.w	-6084 
	dc.w	-6270 
	dc.w	-6456 
	dc.w	-6640 
	dc.w	-6823 
	dc.w	-7006 
	dc.w	-7187 
	dc.w	-7367 
	dc.w	-7546 
	dc.w	-7724 
	dc.w	-7901 
	dc.w	-8076 
	dc.w	-8250 
	dc.w	-8424 
	dc.w	-8595 
	dc.w	-8766 
	dc.w	-8935 
	dc.w	-9103 
	dc.w	-9269 
	dc.w	-9435 
	dc.w	-9598 
	dc.w	-9760 
	dc.w	-9921 
	dc.w	-10080 
	dc.w	-10238 
	dc.w	-10394 
	dc.w	-10549 
	dc.w	-10702 
	dc.w	-10854 
	dc.w	-11003 
	dc.w	-11151 
	dc.w	-11298 
	dc.w	-11443 
	dc.w	-11586 
	dc.w	-11727 
	dc.w	-11867 
	dc.w	-12004 
	dc.w	-12140 
	dc.w	-12274 
	dc.w	-12407 
	dc.w	-12537 
	dc.w	-12666 
	dc.w	-12792 
	dc.w	-12917 
	dc.w	-13039 
	dc.w	-13160 
	dc.w	-13279 
	dc.w	-13396 
	dc.w	-13511 
	dc.w	-13623 
	dc.w	-13734 
	dc.w	-13843 
	dc.w	-13949 
	dc.w	-14054 
	dc.w	-14156 
	dc.w	-14256 
	dc.w	-14354 
	dc.w	-14450 
	dc.w	-14544 
	dc.w	-14635 
	dc.w	-14724 
	dc.w	-14811 
	dc.w	-14896 
	dc.w	-14979 
	dc.w	-15059 
	dc.w	-15137 
	dc.w	-15213 
	dc.w	-15287 
	dc.w	-15358 
	dc.w	-15427 
	dc.w	-15493 
	dc.w	-15558 
	dc.w	-15619 
	dc.w	-15679 
	dc.w	-15736 
	dc.w	-15791 
	dc.w	-15843 
	dc.w	-15893 
	dc.w	-15941 
	dc.w	-15986 
	dc.w	-16029 
	dc.w	-16070 
	dc.w	-16108 
	dc.w	-16143 
	dc.w	-16176 
	dc.w	-16207 
	dc.w	-16235 
	dc.w	-16261 
	dc.w	-16285 
	dc.w	-16306 
	dc.w	-16324 
	dc.w	-16340 
	dc.w	-16354 
	dc.w	-16365 
	dc.w	-16373 
	dc.w	-16380 
	dc.w	-16383 
	dc.w	-16384 
	dc.w	-16383 
	dc.w	-16380 
	dc.w	-16373 
	dc.w	-16365 
	dc.w	-16354 
	dc.w	-16340 
	dc.w	-16324 
	dc.w	-16306 
	dc.w	-16285 
	dc.w	-16261 
	dc.w	-16235 
	dc.w	-16207 
	dc.w	-16176 
	dc.w	-16143 
	dc.w	-16108 
	dc.w	-16070 
	dc.w	-16029 
	dc.w	-15986 
	dc.w	-15941 
	dc.w	-15893 
	dc.w	-15843 
	dc.w	-15791 
	dc.w	-15736 
	dc.w	-15679 
	dc.w	-15619 
	dc.w	-15558 
	dc.w	-15493 
	dc.w	-15427 
	dc.w	-15358 
	dc.w	-15287 
	dc.w	-15213 
	dc.w	-15137 
	dc.w	-15059 
	dc.w	-14979 
	dc.w	-14896 
	dc.w	-14811 
	dc.w	-14724 
	dc.w	-14635 
	dc.w	-14544 
	dc.w	-14450 
	dc.w	-14354 
	dc.w	-14256 
	dc.w	-14156 
	dc.w	-14054 
	dc.w	-13949 
	dc.w	-13843 
	dc.w	-13734 
	dc.w	-13623 
	dc.w	-13511 
	dc.w	-13396 
	dc.w	-13279 
	dc.w	-13160 
	dc.w	-13039 
	dc.w	-12917 
	dc.w	-12792 
	dc.w	-12666 
	dc.w	-12537 
	dc.w	-12407 
	dc.w	-12274 
	dc.w	-12140 
	dc.w	-12004 
	dc.w	-11867 
	dc.w	-11727 
	dc.w	-11586 
	dc.w	-11443 
	dc.w	-11298 
	dc.w	-11151 
	dc.w	-11003 
	dc.w	-10854 
	dc.w	-10702 
	dc.w	-10549 
	dc.w	-10394 
	dc.w	-10238 
	dc.w	-10080 
	dc.w	-9921 
	dc.w	-9760 
	dc.w	-9598 
	dc.w	-9435 
	dc.w	-9269 
	dc.w	-9103 
	dc.w	-8935 
	dc.w	-8766 
	dc.w	-8595 
	dc.w	-8424 
	dc.w	-8250 
	dc.w	-8076 
	dc.w	-7901 
	dc.w	-7724 
	dc.w	-7546 
	dc.w	-7367 
	dc.w	-7187 
	dc.w	-7006 
	dc.w	-6823 
	dc.w	-6640 
	dc.w	-6456 
	dc.w	-6270 
	dc.w	-6084 
	dc.w	-5897 
	dc.w	-5709 
	dc.w	-5520 
	dc.w	-5330 
	dc.w	-5140 
	dc.w	-4949 
	dc.w	-4757 
	dc.w	-4564 
	dc.w	-4370 
	dc.w	-4176 
	dc.w	-3981 
	dc.w	-3786 
	dc.w	-3590 
	dc.w	-3394 
	dc.w	-3197 
	dc.w	-2999 
	dc.w	-2802 
	dc.w	-2603 
	dc.w	-2405 
	dc.w	-2205 
	dc.w	-2006 
	dc.w	-1806 
	dc.w	-1606 
	dc.w	-1406 
	dc.w	-1206 
	dc.w	-1005 
	dc.w	-804 
	dc.w	-604 
	dc.w	-403 
	dc.w	-202 
	dc.w	-1 
	dc.w	 201 
	dc.w	 402 
	dc.w	 603 
	dc.w	 803 
	dc.w	 1004 
	dc.w	 1205 
	dc.w	 1405 
	dc.w	 1605 
	dc.w	 1805 
	dc.w	 2005 
	dc.w	 2204 
	dc.w	 2404 
	dc.w	 2602 
	dc.w	 2801 
	dc.w	 2998 
	dc.w	 3196 
	dc.w	 3393 
	dc.w	 3589 
	dc.w	 3785 
	dc.w	 3980 
	dc.w	 4175 
	dc.w	 4369 
	dc.w	 4563 
	dc.w	 4756 
	dc.w	 4948 
	dc.w	 5139 
	dc.w	 5329 
	dc.w	 5519 
	dc.w	 5708 
	dc.w	 5896 
	dc.w	 6083 
	dc.w	 6269 
	dc.w	 6455 
	dc.w	 6639 
	dc.w	 6822 
	dc.w	 7005 
	dc.w	 7186 
	dc.w	 7366 
	dc.w	 7545 
	dc.w	 7723 
	dc.w	 7900 
	dc.w	 8075 
	dc.w	 8249 
	dc.w	 8423 
	dc.w	 8594 
	dc.w	 8765 
	dc.w	 8934 
	dc.w	 9102 
	dc.w	 9268 
	dc.w	 9434 
	dc.w	 9597 
	dc.w	 9759 
	dc.w	 9920 
	dc.w	 10079 
	dc.w	 10237 
	dc.w	 10393 
	dc.w	 10548 
	dc.w	 10701 
	dc.w	 10853 
	dc.w	 11002 
	dc.w	 11150 
	dc.w	 11297 
	dc.w	 11442 
	dc.w	 11585 
	dc.w	 11726 
	dc.w	 11866 
	dc.w	 12003 
	dc.w	 12139 
	dc.w	 12273 
	dc.w	 12406 
	dc.w	 12536 
	dc.w	 12665 
	dc.w	 12791 
	dc.w	 12916 
	dc.w	 13038 
	dc.w	 13159 
	dc.w	 13278 
	dc.w	 13395 
	dc.w	 13510 
	dc.w	 13622 
	dc.w	 13733 
	dc.w	 13842 
	dc.w	 13948 
	dc.w	 14053 
	dc.w	 14155 
	dc.w	 14255 
	dc.w	 14353 
	dc.w	 14449 
	dc.w	 14543 
	dc.w	 14634 
	dc.w	 14723 
	dc.w	 14810 
	dc.w	 14895 
	dc.w	 14978 
	dc.w	 15058 
	dc.w	 15136 
	dc.w	 15212 
	dc.w	 15286 
	dc.w	 15357 
	dc.w	 15426 
	dc.w	 15492 
	dc.w	 15557 
	dc.w	 15618 
	dc.w	 15678 
	dc.w	 15735 
	dc.w	 15790 
	dc.w	 15842 
	dc.w	 15892 
	dc.w	 15940 
	dc.w	 15985 
	dc.w	 16028 
	dc.w	 16069 
	dc.w	 16107 
	dc.w	 16142 
	dc.w	 16175 
	dc.w	 16206 
	dc.w	 16234 
	dc.w	 16260 
	dc.w	 16284 
	dc.w	 16305 
	dc.w	 16323 
	dc.w	 16339 
	dc.w	 16353 
	dc.w	 16364 
	dc.w	 16372 
	dc.w	 16379 
	dc.w	 16382 

SCREEN0 = $71000
SCREEN1 = $74000

colpoi:	dc.l	colours
colours:
DC.W $000F,$001F,$002F
DC.W $003F,$004F,$005F,$006F,$007F,$008F,$009F,$00AF,$00BF,$00CF,$00DF
DC.W $00EF,$00FF,$01FF,$02FF,$03FF,$04FF,$05FF,$06FF,$07FF,$08FF,$09FF
DC.W $0AFF,$0BFF,$0CFF,$0DFF,$0EFF,$0FFF,$0FEF,$0FDF,$0FCF,$0FBF,$0FAF
DC.W $0F9F,$0F8F,$0F7F,$0F6F,$0F5F,$0F4F,$0F3F,$0F2F,$0F1F,$0F0F,$0F0E
DC.W $0F0D,$0F0C,$0F0B,$0F0A,$0F09,$0F08,$0F08,$0F06,$0F05,$0F04,$0F03
DC.W $0F02,$0F01,$0F00,$0F10,$0F20,$0F30,$0F40,$0F50,$0F60,$0F70,$0F80
DC.W $0F90,$0FA0,$0FB0,$0FC0,$0FD0,$0FE0,$0FF0,$0EF0,$0DF0,$0CF0,$0BF0
DC.W $0AF0,$09F0,$08F0,$07F0,$06F0,$05F0,$04F0,$03F0,$02F0,$01F0,$00F0
DC.W $00F1,$00F2,$00F3,$00F4,$00F5,$00F6,$00F7,$00F8,$00F9,$00FA,$00FB
DC.W $00FC,$00FD,$00FE,$00FF,$00EF,$00DF,$00CF,$00BF,$00AF,$009F,$008F
DC.W $007F,$006F,$005F,$004F,$003F,$002F,$001F
DC.W $1000
