ùúùú                              ;file name:
;sikaa.dat

BPLX:	EQU	640
BPLY:	EQU	100
BPLY2:	equ	200
BPLSIZE	EQU	BPLX*BPLY/8
bplsize2: equ	640*200/8
CHUNKYXMAX EQU	BPLX
CHUNKYYMAX EQU	BPLY
C2p_DOUBLEBUFFER: EQU 1
yaddi:	equ 	150*640
dmaconrq: equ	2
intenarq: equ	$01c
custom: equ	$dff000
cop1lchq equ	$080
cop1lclq equ	$082
cop2lchq equ	 $084
cop2lclq equ	 $086
bpl1pth equ $0e0
bpl1ptl equ $0e2
bpl2pth equ $0e4
bpl2ptl equ $0e6
bpl3pth equ $0e8
bpl3ptl equ $0ea
bpl4pth equ $0ec
bpl4ptl equ $0ee
bpl5pth equ $0f0
bpl5ptl equ $0f2
bpl6pth equ $0f4
bpl6ptl equ $0f6

		incdir		"work:assy/inc/"
		include		"exec.i"
		incdir		"work:assy/inc/"
		
OLib		equ		-$0228
CLib		equ		-$019e

		section		K-RAUTA,code
r3alku:
		cmp.l		#'mare',(a0)
		beq		demojatkuu
		rts
demojatkuu:


		move.l		4(a0),time2
		move.l		time2,a1
		move.l		(a1),timer3
		move.l		24(a0),r1aos1
		move.l		28(a0),r1aos2
		move.l		32(a0),r1aos3
		move.l		40(a0),taulut
		move.l		50(a0),blurt
		move.l		56(a0),c2p

		lea		flarea,a1
		move.l		60(a0),(a1)+
		move.l		64(a0),(a1)+
		move.l		68(a0),(a1)+
		move.l		72(a0),(a1)+
		move.l		76(a0),(a1)+
		move.l		80(a0),(a1)+
		move.l		80(a0),(a1)+
		move.l		80(a0),(a1)+
		move.l		80(a0),(a1)+

		move.l		$4.w,a6

	        sub.l   	a1,a1                  

		lea		r3gnimi,a1
		moveq		#0,d0
		jsr		OLib(a6)
		move.l		d0,r3gosote
		beq.w		r3loppu2

		lea		dossi,a1
		moveq.l		#0,d0
		jsr		-$228(a6)
		move.l		d0,dosbeis




 		move.l		r3gosote,a6
;		move.l		$22(a6),r1wbview

		sub.l		a1,a1
;		jsr		-$de(a6)
; Arvoja talteen, jotta voitaisiin jatkaa exitin jalkeen

		lea		scene,a0
		move.l		(a0)+,d7
		beq.w		r3loppu2 ;ei sceneä

lataaseuraava:	move.l		(a0)+,obuosotin
		move.l		(a0)+,moodi
		move.l		moodi,d0
		movem.l		d7/a0,-(sp)
		move.l		#0,morphicheck
		move.l		#0,morphikappale
		bsr.w		Loadi
		tst.l		d4
		bne.b		r3loppu2q
		movem.l		(sp)+,d7/a0
		subq.l		#1,d7
		bne.s		lataaseuraava
		bra.b		kaikkiok

r3loppu2q:	movem.l		(sp)+,d7/a0
		bra.w		r3loppu2	 ;scene ei onnistunut	

kaikkiok:

		move.l		#custom,a0

		





;		jsr		Makephonkitextuuri
;		jsr		Makephongipaletti
		bsr.w		splineprecalc



		lea		bitmapcolors2,a0
		bsr.w		InitTexture2

;		lea		bitmapcolors,a0
;		bsr.w		InitTexture3

;		lea		bitmappi,a0
;		lea		bitmapcolors2,a1
;		lea		bitmap2,a2
;		move.w		#256*256/4-1,d7
;		moveq.l		#0,d0
;Luou:		rept		4
;		move.b		(a2)+,d0
;		move.l		(a1,d0.l*4),(a0)+
;		endr	
;		dbf		d7,Luou

;		lea		bitmappi2,a0
;		lea		bitmapcolors,a1
;		lea		bitmap1,a2
;		move.w		#256*256/4-1,d7
;		moveq.l		#0,d0
;Luou2:		rept		4
;		move.b		(a2)+,d0
;		move.l		(a1,d0.l*4),(a0)+
;		endr	
;		dbf		d7,Luou2
;


;		lea		bitmapcolors3,a0
;		bsr.w		InitTexture


;		lea		bitmapcolors,a3
;		lea		allcolors,a0
;		bsr.w		InitLightTables

		lea		bitmapcolors2,a3
		lea		allcolors2,a0
		bsr.w		InitLightTables

;		lea		bitmapcolors3,a3
;		lea		allcolors3,a0
;		bsr.w		InitLightTables

		bsr.w		Initham8
;		bsr.w		InitControl1

;		move.w		#640,d0 ;xkoko
;		move.w		#100,d1 ;ykoko
;		move.w		#0,d2   ;bpl xoffset
;		move.w		#0,d3   ;bpl yoffset
;		move.w		#80,d4  ;ruudun leveys /8
;		move.l		#8000,d5 ;bplsize
;		bsr.w		c2pinit
		lea		piirtobuffert,a0
		lea		piirtobuffer,a1
		move.w		#8,d7
lupq:		move.l		a1,(a0)+
		add.l		#64,a1
		dbf		d7,lupq
;		jsr		precalc
		
		move.l		#0,timer
		move.l		#0,mones
		move.l		#0,morffiuusi
		move.l		#0,t0
		move.l		#0,t1
		move.l		#1,hippi
		move.l		#maini,d0
		rts
		
maini:

;		move.l		dodorut,a0
;		jsr		(a0)
;		move.l		dodorut,a0
;		jsr		(a0)
;		move.l		dodorut,a0
;		jsr		(a0)
;		move.l		#custom,a0
;		move.l		#r3copperl,cop1lchq(a0)
;		move.l		#0,cop2lchq(a0)
;		move.w		copjmp1(a0),d0
		moveq		#5,d0 ;vertical blanking interrupt
		lea		intstruct,a1
		move.l		4,a6
		jsr		-$00a8(a6)

	
r3mainloop:

		move.l		time2,a0
		cmp.l		#4880+50,(a0)
		bpl		r3loppu2	
;		cmp.l		#23*50,timer
;		bpl		r3loppu2
			addq.l		#1,mones
		clr.l		joflareonpiirretty
		move.l		#r1tasotn,r1tasotnt ;face-bufferin alku
		move.l		#0,ctasot
		jsr		splinemovecam2
		bsr.w		 docama ;tehdään camera matriisi+paikka

;		lea		ky2+12,a3
;		add.l		#1220,(a3)
;		add.l		#1420,4(a3)
;		add.l		#2620,8(a3)

		bsr.w		Objektit
		move.l		morffiuusi,morffivanha
		clr.l		monesflare		
		clr.l		piirtoflaret
		clr.l		flarebuffert+4
		clr.l		flarebuffert+12
		clr.l		flarebuffert+20
		clr.l		flarebuffert+28
		clr.l		flarebuffert+36
		move.l		#flarebufferend,flarebuffert
		move.l		#flarebufferend-18*4*10,flarebuffert+8
		move.l		#flarebufferend-18*4*10*2,flarebuffert+16
		move.l		#flarebufferend-18*4*10*3,flarebuffert+24
		move.l		#flarebufferend-18*4*10*4,flarebuffert+32
		bsr.w		Sorttaus
		move.l		ctasot,d7
		beq.b		eitasoja
		move.l		#r1tasotn,r1tasotnt		
		bsr.w		slopefill

over:
;		move.l		#flarebufferend,flarebuffert
;		move.l		flarebuffert+4,piirtoflaret
;		move.l		piirtobuffert,a0
;		bsr.w		Initlens
;
;		move.l		#flarebufferend-18*4*10,flarebuffert
;		move.l		flarebuffert+12,piirtoflaret
;		move.l		piirtobuffert+4,a0
;		bsr.w		Initlens
;
;		move.l		#flarebufferend,flarebuffert
;		move.l		flarebuffert+4,piirtoflaret
;		move.l		piirtobuffert,piirtot
;		move.l		#flarea,flareat
;		bsr.w		drawlens
;
;		move.l		#flarebufferend-18*4*10,flarebuffert
;		move.l		flarebuffert+12,piirtoflaret
;		move.l		piirtobuffert+4,piirtot
;		move.l		#flarea,flareat
;L		bsr.w		drawlens
		
eitasoja:


		lea		buffer,a0
		move.l		blurt,a4
		add.l		#yaddi,a0
		move.l		spritte,d0
		move.l		c2p,a5
		jsr		(a5)


;		move.l		c2prut,a0
;		move.l		#c2p1,a0
;		jsr		(a0)

;		move.l		dodorut,a0
;		jsr		(a0)

		btst		#6,$bfe001
		bne.w		r3mainloop
r3loppu2:		
;		move.l		r3oldcop,cop1lchq+custom
;		move.w		r3olddma,d0
;		or.w		#$8000,d0
;		move.w		d0,dmacon+custom
;		move.w		r3oldint,d0
;		or.w		#$c000,d0
;		move.w		d0,intena+custom
;		move.l		r3gosote,a6
;		move.l		r1wbview,a1
;		jsr		-$de(a6)

		move.l		$4.w,a6
		move.l		r3gosote,a1
		jsr		CLib(a6)	
		move.l		dosbeis,a1
		jsr		-$19e(a6)

		moveq		#5,d0
		lea		intstruct,a1
		jsr		-$00ae(a6)

r3eimitaanauki:
		moveq		#0,d0
;0		move.l		timer,d1
;		move.l		mones,d2
;		muls.l		#100000,d2
;		divs.l		#833,d2
;		asl.l		#1,d1
;		divs.l		d1,d2
;		move.l		d2,d0
		rts
laskeb:


		movem.l		d0-d7/a0-a6,-(sp)

		move.l		pieninx,d0
		bpl.b		Positiivinen_huh
		neg.l		d0
		move.l		d0,d1
		move.l		#0,d0
		bra.b		vaihe2
Positiivinen_huh:
		neg.l		d0
		move.l		d0,d1
		move.l		#0,d0
vaihe2:		move.l		suurinx,d2
		add.l		d1,d2 
		fmove.l		d2,fp0
		fdiv		#255,fp0;


		move.l		pieninz,d0
		bpl.b		Positiivinen_huhb
		neg.l		d0
		move.l		d0,d1
		move.l		#0,d0
		bra.b		vaihe2b
Positiivinen_huhb:
		neg.l		d0
		move.l		d0,d1
		move.l		#0,d0
vaihe2b:	move.l		suurinz,d2
		add.l		d1,d2 
		fmove.l		d2,fp2
		fdiv		#256,fp2;
		
		
	        move.w		nurkat,d7
		move.w		d7,d6

		move.l		obucords,a3
		move.l		a3,a4
		addq.w		#1,d6
		muls		#4,d6
		add.l		d6,a4
		move.l		a4,a5
		add.l		d6,a5
		move.l		texcordst,a0
		moveq.l		#0,d4
	
r1looppi2:	fmove.l		(a3)+,fp3
		fmove.l		(a5)+,fp4
		fdiv		fp0,fp3
		fdiv		fp2,fp4
		fmul		#256,fp3
		fmul		#256,fp4
		fmove.l		fp3,d0
		fmove.l		fp4,d1
;		asr.l		#1,d0
;		asr.l		#1,d1
		move.b		#0,d0
		move.b		#0,d1
		add.l		#128*256,d0
		move.l		d0,(a0)+
		add.l		#128*256,d1
		move.l		d1,(a0)+
		dbf		d7,r1looppi2

		move.w		nurkat,d0
		addq.w		#1,d0
		ext.l		d0
		asl.l		#3,d0
		add.l		d0,texcordst
		movem.l		(sp)+,d0-d7/a0-a6

		rts

Loadi:	
		move.l		obuosotin,a0
		move.l		morphicheck,d0

		asl.l		#2,d0
		add.l		d0,a0
		move.l		4(a0),d1
		move.l		-4(a0),obudi ;surface--hih paska fixi
		move.l		(a0),d0
		cmp.l		#1,d0
		beq.b		Eimorphelia
		move.l		#1,morphikappale
		move.l		d0,d7
		move.l		d7,-(sp)
		move.l		4(a0),talteen
		add.l		#4,a0
		move.l		4(a0),d1
Eimorphelia:	
		
		bsr.w		lataakappale
		tst.l		d4
		bne.w		r3lop

		lea		b,a0
		lea		cords,a3
		move.l		tyht,a4
		bsr.w		loadobject
		tst.l		moodi
		bne.b		einormia
		move.l		obudi,a1

		tst.l		8(a1)
		beq.b		einormia1
		bra.b		joonormat
einormia1:	tst.l		4(a1)
		beq.b		einormia

joonormat:	lea		cords,a1 
		move.l		tyht,a0
		bsr.w		r1makenorm
		lea		r1pistenorm,a2
		move.l		tyht,a4
		bsr.w		r1makepistenorm

		lea		r1pistenorm,a0
		move.l		normalst,a1
		move.w		nurkat,d7		
		bsr.w		Initnormals

einormia:	lea		obustructure,a0
		add.l		#1,(a0)+
		move.l		obut,a0
		addq.l		#4,obut
		move.l		obu1t,(a0)+
		clr.l		(a0)+

		move.l		obu1t,a0
		move.l		ky2t,(a0)+
		move.l		obucords,(a0)+
		move.l		#r1pistenorm,(a0)+
		move.l		tyht,(a0)+
 		move.w		tasot,(a0)+
		move.w		nurkat,(a0)+ ;16
		move.l		allt,(a0)+
		move.l		r1mapcordsrt,(a0)+
		move.l		zeettat2,(a0)+
		move.l		normalst,(a0)+
		move.l		splinet1t,a1
		move.l		(a1),(a0)+ 
		move.l		moodi,(a0)+ ;polygoni vai partikkeli vai lensflare
		addq.l		#4,splinet1t
		move.l		morphikappale,(a0)+ ;44
		move.l		talteen,a1
		move.l		(a1),(a0)+ ;kuinka monta control pointtia
		clr.l		(a0)+	   ;step
		clr.l		(a0)+	   ;step lisays
		clr.l		(a0)+	   ;nykyinen control pointti
		move.l		talteen,(a0)+
		move.l		texcordst,(a0)+ ;----------- 68
		move.l		obudi,(a0)+ ;72
		move.l		obucords,(a0)+	;76
		move.l		a0,talteena0


		lea		cords,a0
		move.l		obucords,a1
		move.w		nurkat,d7	
		bsr.w		Initobu

		move.l		obudi,a1
		tst.l		4(a1)
		bne.b		eitmap
		bsr.w		laskeb

eitmap:		tst.l		moodi
		bne.s		einormia2

		move.w		tasot,d0
		muls		#16,d0
		add.l		#24,d0
		add.l		d0,tyht

		move.w		nurkat,d0
		muls		#16,d0
		add.l		#32,d0
		add.l		d0,allt
		add.l		d0,normalst

		move.w		nurkat,d0
		muls		#8,d0
		add.l		#24,d0
		add.l		d0,r1mapcordsrt

		bra.b		voe
einormia2:	move.w		nurkat,d0
		move.l		tyht,a0
lupia:		move.w		flarerando,(a0)+
		addq.w		#1,flarerando
		cmp.w		#5,flarerando
		bne.s		eifla2q
		move.w		#0,flarerando
eifla2q:	dbf		d0,lupia

		move.w		nurkat,d0
		muls		#2,d0
		add.l		#24,d0
		add.l		d0,tyht


		move.w		nurkat,d0
		muls		#16,d0
		add.l		#32,d0
		add.l		d0,allt

voe:

		move.w		nurkat,d0
		muls		#4,d0
		add.l		#8,d0
		add.l		d0,zeettat2

		move.w		nurkat,d0
		muls		#12,d0
		add.l		#24,d0
		add.l		d0,obucords

		add.l		#128,obu1t
		move.l		#0,d4
		add.l		#12,ky2t

		tst.l		morphikappale
		beq.b		r3lop
		bra.b		Loadi2q
		
r3lop:		rts

Loadi2q:	move.l		(sp)+,d7
		move.l		d7,d0
		asl.l		#2,d0

Loadi2:		move.l		obuosotin,a0
		move.l		morphicheck,d0
		add.l		#1,morphicheck
		asl.l		#2,d0
		add.l		d0,a0
		move.l		8(a0),d1

		move.l		d7,-(sp)
		
		bsr.b		lataakappale
		tst.l		d4
		bne.b		r3lop2

		lea		b,a0
		lea		cords,a3
		move.l		tyht,a4
		bsr.w		loadobject

		
		lea		cords,a0
		move.l		obucords,a1
		move.w		nurkat,d7		
		bsr.w		Initobu

		move.l		talteena0,a0
		move.l		obucords,(a0)
		addq.l		#4,talteena0

		move.w		nurkat,d0
		muls		#16,d0
		add.l		#24,d0
		add.l		d0,obucords
		move.l		(sp)+,d7
		subq.l		#1,d7
		bne.b		Loadi2
		move.l		talteena0,a0
		
		rts
r3lop2:		move.l		(sp)+,d7
		rts

lataakappale:	moveq.l		#0,d0
		moveq.l		#0,d4
		move.l		dosbeis,a6
		move.l		#1005,d2
		jsr		-$001e(a6)
		beq.b		veke2
		move.l		d0,d5		
		move.l		d0,d1
		move.l		#b,d2
		move.l		#20479*4,d3
		jsr		-$002a(a6)
		move.l		d0,koko
		move.l		d0,d7
		move.l		d0,d6
		move.l		d5,d1
		jsr		-$0024(a6)
		move.l		#0,d4
		rts
veke2:		move.l		#-1,d4
		rts

scaledrawf:
		muls	#640,d1
		muls	#3,d0
		add.l	d0,d1
		add.l	d1,a2
			
;lasketaan delta-arvot ja lähtöpaikat
		move.l  (a0),d0
		move.l  4(a0),d1
		muls.l  #640,d1
		muls.l	#3,d0
		add.l	d0,d1
		add.l  d1,a2		

	
		move.l 16(a0),d0
		sub.l  8(a0),d0 ;flaren leveys
		beq.w    eiflarea
		move.l	d0,fxkoko	

		move.l 28(a0),d1
		sub.l  12(a0),d1 ;flaren korkeus
		beq.w    eiflarea
		
		move.l 8(a1),d2
		sub.l  0(a1),d2
		divs.l d0,d2 ;du
		move.l 20(a1),d3
		sub.l  4(a1),d3
		divs.l d1,d3 ;dv

		move.l	(a1),d4 ;u
		move.l	d3,a6
		move.l	4(a1),d5 ;v
		move.l	d4,d3
		move.l	d1,a1
		move.l	a2,a5
	
flareyl:	move.l	a2,a3
		move.l  d5,d7

flarexl:
		move.l	d4,d6
		asr.l	#8,d6
		and.b	#%11000000,d7
		add.b	d6,d7
		move.l	(a4,d7.l*4),d6
		add.l	d2,d4
		add.l	(a3),d6
		move.l	d4,d1
		ror.l	#8,d6
		asr.l	#8,d1
		cmp.b	#63,d6
		bmi.b	fok
		move.b	#63,d6
fok:		move.b	d6,2(a3)
		ror.l	#8,d6
		and.b	#%11000000,d7
		add.b	d1,d7
		cmp.b	#63,d6
		bmi.b	fok2
		move.b	#63,d6
fok2:		move.b	d6,1(a3)
		ror.w	#8,d6
		move.l	(a4,d7.l*4),d1
		cmp.b	#63,d6
		bmi.b	fok3
		move.b	#63,d6
fok3:		move.b	d6,0(a3)
		add.l	d2,d4
		add.l	3(a3),d1
		ror.l	#8,d1
		cmp.b	#63,d1
		bmi.b	fokb
		move.b	#63,d1
fokb:		move.b	d1,5(a3)

		ror.l	#8,d1
		cmp.b	#63,d1
		bmi.b	fok2b
		move.b	#63,d1
fok2b:		move.b	d1,4(a3)
		ror.w	#8,d1
		addq.w	#6,a3		
		cmp.b	#63,d1
		bmi.b	fok3b
		move.b	#63,d1
fok3b:		move.b	d1,-3(a3)
		subq.l	#2,d0

		bpl.w	flarexl

	        move.l 	d3,d4
		move.l	fxkoko,d0
		add.l	a6,d5
		lea	640(a2),a2
		subq.l	#1,a1
		cmp.l	#0,a1
		bne.w	flareyl

		move.l	a5,a0
		add.l	#75*3+640*35*15,a0
		move.l a0,ta0
		move.l -4(a0),ta0+4
		move.l 4(a0),ta0+8
		move.l -640*3(a0),ta0+12
		move.l 640*3(a0),ta0+16


eiflarea:	rts






Initlens:
		move.l		flarebuffert,a3
		move.l		piirtoflaret,d7
		beq.w		eienaa

LupiLuuppi:
		sub.l		#17*4,a3
		move.l		(a3),d0
		move.l		4(a3),a4
		cmp.l		(a4),d0
		bne.s		Nytloppu
		move.l		#1,(a0)+
		subq.l		#1,d7
		bne.s		LupiLuuppi		
Nytloppu:	move.l		#0,(a0)+	
		rts



drawlens:
drawlens3:	move.l		piirtoflaret,d7
		beq.b		eienaa

drawlens2:	tst.l		piirtoflaret
		beq.b		eienaa
		move.l		piirtot,a0
		tst.l		(a0)
		beq.b		eienaa
		add.l		#4,piirtot
		sub.l		#1,piirtoflaret
		move.l		flarebuffert,a3
		sub.l		#17*4,a3
		move.l		a3,flarebuffert
		add.l		#8,a3
		move.l		(a3)+,fxkoko
		movem.l		(a3)+,d0-d7/a0-a2/a4-a6
		move.l		flareat,a4
		move.l		(a4),a4
		addq.l		#4,flareat
		jsr		flareyl2
		bra.b		drawlens3
eienaa:		rts


scaledrawf2:
		muls	#640,d1
		muls	#3,d0
		add.l	d0,d1
		add.l	d1,a2
;lasketaan delta-arvot ja lähtöpaikat
		move.l  (a0),d0
		move.l  4(a0),d1
		muls.l  #640,d1
		muls.l	#3,d0
		add.l	d0,d1
		add.l  d1,a2		
		move.l	a2,a5
	
		move.l 16(a0),d0
		sub.l  8(a0),d0 ;flaren leveys
		beq.w    eiflarea2
		move.l	d0,fxkoko	

		move.l 28(a0),d1
		sub.l  12(a0),d1 ;flaren korkeus
		beq.w    eiflarea2
		move.l	d1,fykoko
		move.l 8(a1),d2
		sub.l  0(a1),d2
		divs.l d0,d2 ;du
		move.l 20(a1),d3
		sub.l  4(a1),d3
		divs.l d1,d3 ;dv

		move.l	(a1),d4 ;u
		move.l	d3,a6
		move.l	4(a1),d5 ;v
		move.l	d4,d3
		move.l	d1,a1

		move.l	#flarebuffert,a3
		move.l	modeq,d7
		sub.l	#2,d7
		move.l	(a3,d7.l*8),a3
		movem.l	d0-d7/a0-a2/a4-a6,-(a3)
		move.l	fxkoko,-(a3)
		move.l	a5,a1
		move.l	fxkoko,d0
		move.l	fykoko,d1
		asr.l	#1,d0
		asr.l	#1,d1
		muls.l	#640,d1
		muls.l	#3,d0
		add.l	d0,d1
		add.l	d1,a1
		move.l  a1,-(a3)
		move.l (a1),-(a3)
		move.l	 modeq,d7
		sub.l	#2,d7
		move.l	#flarebuffert,a4
		move.l	a3,(a4,d7.l*8)

		add.l	#1,4(a4,d7.l*8)

		bra.w	eiflarea2

	
flareyl2:	move.l	a2,a3
		move.l  d5,d7

flarexl2:
		move.l	d4,d6
		and.b	#%11000000,d7
		asr.l	#8,d6
		add.b	d6,d7
		move.l	(a4,d7.l*4),d6
		add.l	d2,d4
		add.l	(a3),d6
		move.l	d4,d1
		ror.l	#8,d6
		asr.l	#8,d1
		cmp.b	#63,d6
		bmi.b	fokq
		move.b	#63,d6
fokq:		move.b	d6,2(a3)
		ror.l	#8,d6
		and.b	#%11000000,d7
		add.b	d1,d7
		cmp.b	#63,d6
		bmi.b	fok2q
		move.b	#63,d6
fok2q:		move.b	d6,1(a3)
		ror.w	#8,d6
		move.l	(a4,d7.l*4),d1
		cmp.b	#63,d6
		bmi.b	fok3q
		move.b	#63,d6
fok3q:		move.b	d6,0(a3)
		add.l	d2,d4
		add.l	3(a3),d1
		ror.l	#8,d1
		cmp.b	#63,d1
		bmi.b	fokbq
		move.b	#63,d1
fokbq:		move.b	d1,5(a3)

		ror.l	#8,d1
		cmp.b	#63,d1
		bmi.b	fok2bq
		move.b	#63,d1
fok2bq:		move.b	d1,4(a3)
		ror.w	#8,d1
		addq.w	#6,a3		
		cmp.b	#63,d1
		bmi.b	fok3bq
		move.b	#63,d1
fok3bq:		move.b	d1,-3(a3)

		subq.l	#2,d0
		bpl.w	flarexl2

	        move.l 	d3,d4
		move.l	fxkoko,d0
		add.l	a6,d5
		lea	640(a2),a2
		subq.l	#1,a1
		cmp.l	#0,a1
		bne.w	flareyl2

eiflarea2:	rts

scaledrawfsolid:
		muls	#640,d1
		muls	#3,d0
		add.l	d0,d1
		add.l	d1,a2
		lea	ftexture,a1			
		lea	flarea,a4
		move.l	(a4),a4
;lasketaan delta-arvot ja lähtöpaikat
		move.l  (a0),d0
		move.l  4(a0),d1
		muls.l  #640,d1
		muls.l	#3,d0
		add.l	d0,d1
		add.l  d1,a2		

	
		move.l 16(a0),d0
		sub.l  8(a0),d0 ;flaren leveys
		beq.w    eiflarea
		move.l 28(a0),d1
		sub.l  12(a0),d1 ;flaren korkeus
		beq.w    eiflarea
		
		move.l 8(a1),d2
		sub.l  0(a1),d2
		divs.l d0,d2 ;du
		move.l 20(a1),d3
		sub.l  4(a1),d3
		divs.l d1,d3 ;dv

		move.l	(a1),d4 ;u
		move.l	4(a1),d5 ;v
		move.l	a2,a5

flareyls:	move.l	a2,a3
		movem.l d0/d3/d4,-(sp)

		move.l  d5,d7
flarexls:	move.l	d4,d6
		asr.l	#8,d6
		and.b	#%11000000,d7
		add.b	d6,d7
		move.l	(a4,d7.l*4),d6
		beq.b	nol3	
		move.l	d6,(a3)
nol3:		addq.w	#3,a3
		add.l	d2,d4
		subq.l	#1,d0
		bne.s	flarexls
	        movem.l (sp)+,d0/d3/d4
		add.l	d3,d5
		lea	640(a2),a2
		subq.l	#1,d1
		bne.s	flareyls

		move.l	a5,a0
		add.l	#25*3+640*15,a0
		move.l a0,ta0
		move.l -4(a0),ta0+4
		move.l 4(a0),ta0+8
		move.l -640*3(a0),ta0+12
		move.l 640*3(a0),ta0+16
		rts

drawflare:
		lea		realflareplace,a2
		add.l		flareaddi,a2
		addq.l		#6,flareaddi
		move.w		10(a2),flareraja
		move.w		(a2),d0
		move.w		2(a2),d1
		move.l		f1kokot,a0

		move.l		flareaddi,d3
		divs		#6,d3
		muls		#32,d3
		sub.l		#32,d3
		add.l		d3,a0
		cmp.l		#6,flareaddi
		bne.s		eifla
		lea		buffer-25*3-16*640,a2
		lea		ftexture,a1
		bsr.w		scaledrawfsolid
		bra.w		joofla
eifla:


		cmp.l		#12,flareaddi
		bne.b		eifla2

		move.l 		ta0,a2
		move.l 		ta0+4,d2
		move.l 		ta0+8,d3
		move.l 		ta0+12,d4
		move.l		ta0+16,d5
		cmp.l  		-4(a2),d2
		bne.s 		joofla
		cmp.l  		4(a2),d3
		bne.s		joofla
		cmp.l 		-640*3(a2),d4
		bne.s		joofla
		cmp.l 		640*3(a2),d5
		bne.s		joofla

		lea		buffer-75*3-35*640,a2
		lea		ftexture,a1
		lea		flarea,a4
		move.l		(a4),a4
		bsr.w		scaledrawf

		bra.b		joofla
eifla2:
		move.l 		ta0,a2
		move.l 		ta0+4,d2
		move.l 		ta0+8,d3
		move.l 		ta0+12,d4
		move.l		ta0+16,d5
		cmp.l  		-4(a2),d2
		bne.s 		joofla
		cmp.l  		4(a2),d3
		bne.s		joofla
		cmp.l 		-640*3(a2),d4
		bne.s		joofla
		cmp.l 		640*3(a2),d5
		bne.s		joofla


		lea		buffer-160*3-70*640,a2
		lea		ftexture2,a1
		lea		flarea,a4
		move.l		4(a4),a4
		bsr.w		scaledrawf


joofla:
		lea		realflareplace,a2


		rts

draw:

		move.w		#31,d7
lupa:		rept		32
		move.l		(a1)+,d0
		add.w		d0,(a0)+
		swap		d0
		add.b		d0,(a0)+
		endr

		lea		(640-32*3)(a0),a0
		dbf		d7,lupa

		rts


splinemovecam:	
		add.l		#2,t0
		cmp.l		#256,t0
		blt.s		ei256
		sub.l		#256,t0
		addq.l		#4,dct
		addq.l		#1,solmu
		cmp.l		#67,solmu
		bne.s		ei256
		move.l		#0,solmu
		move.l		#dc1,dct
		move.l		#0,t0
ei256:
;
;		add.l		#2,t1
;		cmp.l		#256,t1
;		blt.s		ei2562
;		sub.l		#256,t1
;		addq.l		#4,dct2
;		addq.l		#1,solmu2
;		cmp.l		#47,solmu2
;		bne.s		ei2562
;		move.l		#0,solmu2
;		move.l		#dc2,dct2
;		move.l		#0,t1
;ei2562:

		rts
	
splinemovecam2:
		move.l		t0,d6
		lea		camplace,a6
		move.l		dct,a5
		move.w		#2,d7
		bsr.w		spline

;		move.l		t1,d6
;		lea		focus,a6
;		move.l		dct2,a5
;		move.w		#2,d7
;		bsr.w		spline


		bsr		otetaankulmaa
		bsr		otetaankulmaa2
;		lea		camplace,a0
;		move.l		4(a0),d0
;		add.l		(a0),d0
;		muls.l		#100,d0
;		asr.l		#3,d0
;		move.l		d0,20(a0)

		rts



Initham8:	
;		move.w		#%1000101000010001,bplcon0t
;		move.l		#dodoham8,dodorut
		move.l		#1,mode
;		bsr.w		InitControl1
		move.w		#0,vasenr
		move.l		#0,vasenr2
		move.l		#0*256,vasenr3

		move.l		#0,fakereso
		move.w		#106,xlisa

		tst.l		hires
		beq.b		eihiresq3
		move.l		#f1koko2,f1kokot

		rts
eihiresq3:	move.l		#f1koko,f1kokot
		rts


InitTexture:	move.w		#256-1,d7
zLopa:		move.l		(a0),d0
		lsl.l		#8,d0
		move.l		d0,(a0)
		move.b		(a0),3(a0)
		move.l		(a0),d0
;		asr.l		#1,d0
;		and.l		#%01111111011111110111111101111111,d0
		move.l		d0,(a0)+
		dbf		d7,zLopa
		rts

InitTexture3:	move.w		#256-1,d7
zLopa3:		move.l		(a0),d0
		lsl.l		#8,d0
		move.l		d0,(a0)
		move.b		(a0),3(a0)
		move.l		(a0),d0
		asr.l		#2,d0
		and.l		#%00111111001111110011111100111111,d0
		move.l		d0,(a0)+
		dbf		d7,zLopa3
		rts

InitTexture2:	move.w		#256/4-1,d7
zLopa2:		rept		4
		move.l		(a0),d0
		lsl.l		#8,d0
		move.l		d0,(a0)
		move.b		(a0),3(a0)
		addq.w		#4,a0
	;		move.l		(a0),d0
;		asr.l		#1,d0
;		and.l		#%01111111011111110111111101111111,d0
;		move.l		d0,(a0)+
		endr
		dbf		d7,zLopa2
		rts


;InitControl1:
;		lea		pla,a0
;		move.l		a0,a1
;		add.l		#bplsize2,a1		
;		move.w		#200-1,d7
;zloopa:
;	rept		6
;	move.l		#%01101101101101101101101101101101,(a0)+
;	move.l		#%10110110110110110110110110110110,(a0)+
;	move.l		#%11011011011011011011011011011011,(a0)+
;
;	move.l		#%11011011011011011011011011011011,(a1)+
;	move.l		#%01101101101101101101101101101101,(a1)+
;	move.l		#%10110110110110110110110110110110,(a1)+
;	endr
;	
;	move.l		#%01101101101101101101101101101101,(a0)+
;	move.l		#%10110110110110110110110110110110,(a0)+
;
;	move.l		#%11011011011011011011011011011011,(a1)+
;	move.l		#%01101101101101101101101101101101,(a1)+
;
;
;	dbf		d7,zloopa
;	rts
;
;InitControl2: 
;		lea		pla,a0
;		move.l		a0,a1
;		add.l		#bplsize2,a1
;		move.w		#200-1,d7
;		
;zloopab:	move.w		#640/8-1,d6
;
;zloopab2:	move.b 		#%01110111,(a0)+
;		move.b		#%11101110,(a1)+
;		dbf		d6,zloopab2
;
;		dbf		d7,zloopab
;		rts

InitLightTables:

		move.w		#256-1,d7
		move.l		#-0*256,d6
		move.l		#0,a2
		move.l		taulut,a1
lightloop1:	move.l		a3,a6
		move.w		#256-1,d5
		
lightloop2:	move.l		(a6)+,d0
		move.b		d0,d1
		ror.l		#8,d0
		move.b		d0,d2
		ror.l		#8,d0
		move.b		d0,d3
		ror.l		#8,d0
		move.b		d0,d4
		and.l		#%00000000000000000000000011111111,d1
		and.l		#%00000000000000000000000011111111,d2
		and.l		#%00000000000000000000000011111111,d3
		and.l		#%00000000000000000000000011111111,d4
;		asl.w		#8,d1
;		asl.w		#8,d2
;		asl.w		#8,d3
;		asl.w		#8,d4
		move.b		(a1,d1.l),d1
		move.b		(a1,d2.l),d2
		move.b		(a1,d3.l),d3
		move.b		(a1,d4.l),d4

		move.b		d4,d0
		rol.l		#8,d0
		move.b		d3,d0
		rol.l		#8,d0
		move.b		d2,d0
		rol.l		#8,d0
		move.b		d1,d0
		asr.l		#1,d0
		and.l		#%01111111011111110111111101111111,d0
		move.l		d0,(a0)+
		dbf		d5,lightloop2
		lea		256(a1),a1	
eivalo2:	dbf		d7,lightloop1
		rts


InitLightTables2:

		move.w		#256-1,d7
		move.w		#1,d6
		move.l		#0,a2
		move.l		taulut,a1
lightloop3:	move.l		a3,a6
		move.w		#256-1,d5
		
lightloop4:	move.l		(a6)+,d0
		move.b		d0,d1
		ror.l		#8,d0
		move.b		d0,d2
		ror.l		#8,d0
		move.b		d0,d3
		ror.l		#8,d0
		move.b		d0,d4
		and.w		#%0000000011111111,d1
		and.w		#%0000000011111111,d2
		and.w		#%0000000011111111,d3
		and.w		#%0000000011111111,d4
		muls		d6,d1
		muls		d6,d2
		muls		d6,d3
		muls		d6,d4
		divs		#200,d1		
		divs		#200,d2		
		divs		#200,d3		
		divs		#200,d4		

		cmp.w		#255,d1
		bmi.b		lib5
		move.w		#255,d1
lib5:		cmp.w		#255,d2
		bmi.b		lib6
		move.w		#255,d2
lib6:		cmp.w		#255,d3
		bmi.b		lib7
		move.w		#255,d3
lib7:		cmp.w		#255,d4
		bmi.b		lib8
		move.w		#255,d4
lib8:

		move.b		(a1,d1.w),d1
		move.b		(a1,d2.w),d2
		move.b		(a1,d3.w),d3
		move.b		(a1,d4.w),d4

		move.b		d4,d0
		rol.l		#8,d0
		move.b		d3,d0
		rol.l		#8,d0
		move.b		d2,d0
		rol.l		#8,d0
		move.b		d1,d0
;		asr.l		#2,d0
;		and.l		#%00111111001111110011111100111111,d0
		move.l		d0,(a0)+
		dbf		d5,lightloop4
		add.w		#11,d6	
		addq.l		#1,a2
		cmp.l		#2,a2
		bne.s		eivalo2b
		move.l		#0,a2
		lea		256(a1),a1	
eivalo2b:	dbf		d7,lightloop3
		rts

Obuquu:		move.l		kulmat,a3
		move.l		#obuma,tulost
		bsr.w		docam

		lea		camerat,a1
		lea		obuma,a2
		lea		obumatcam,a0
		bsr.w		mul3x3matrO







		lea		obupaikka,a0
		lea		camplace,a1
		lea		realobu,a2
		move.l		(a1)+,d0
		move.l		(a1)+,d1
		move.l		(a1)+,d2
		move.l		(a0)+,d3
		move.l		(a0)+,d4
		move.l		(a0)+,d5
		sub.l		d0,d3
		sub.l		d1,d4
		sub.l		d2,d5
		move.l		d3,(a2)
		move.l		d4,12(a2)
		move.l		d5,24(a2)

		lea		camerat,a1
		lea		realobu,a2
		lea		oburealplace,a0
		bsr.w		mul1x3matr


		cmp.l		#2,moodi
		bmi.b		eilensflare
;		bsr		letsflarearound

letsflarearound:

		move.w		nurkat,d0
		addq.w		#1,d0
		muls		#4,d0
		move.l		d0,d1
		add.l		d1,d1
		
		lea		oburealplace,a0
		lea		ready,a1
		move.l		(a0),d3
		move.l		12(a0),d4
		move.l		24(a0),d5

		move.l		d4,(a1,d0.l)
		move.l		d5,(a1,d1.l)
		move.l		d3,(a1)+

		bra.b		joolensflare

eilensflare:


		lea		ready,a0
		lea		obumatcam,a1
		move.l		Obutamu,a2
		bsr.w		mulNx3matr

joolensflare:
		cmp.l		#2,moodi
		bpl.b		onflare
		tst.l		moodi
		bne.s		onflare2
		tst.l		envimappionko
		beq.b		checker
jooenvimappi:	move.l		envimappit,a0
		lea		obumatcam,a1
		move.l		normalst2,a2
		bsr.w		mulNx3matrenvi
		bsr.w		envimap
		bra.b		eichecker
checker:	tst.l		mikafilleri
		bne.s		jooenvimappi
eichecker:	clr.l		eka
		bsr.w		projisoi		
		bra.b		ernesti

onflare:	bsr.w		projisoiflare
		bra.b		ernesti
onflare2:	bsr.w		projisoi

ernesti:	tst.l		moodi
		bne.b		flarejoo
		bsr.w		r1sekalaista	
		rts
flarejoo:	bsr.w		flareseka
		rts


otetaankulmaa:	lea		camplace,a0
		lea		focus,a4
		rept		3
		clr.l		(a4)+
		endr
		lea		oburealplace,a1
		fmove.l		(a4),fp2
		fmove.l		8(a4),fp3
		fmove.l		(a0),fp0
		fmove.l		8(a0),fp1
		fsub		fp2,fp0
		fsub		fp3,fp1
		fmove.l		fp0,d0
		fmove.l		fp1,d1

		fmove		fp1,fp4
	
		fmove		fp0,fp2
		fmove		fp1,fp3
		fmul		fp2,fp2
		fmul		fp3,fp3
		fadd		fp3,fp2
		fsqrt 		fp2
		fdiv		fp2,fp4
		fasin		fp4
		fmul		#100000,fp4
		
		tst.l		d0
		bpl.b		oikeapuoliq
vasenpuoliq:	tst.l		d1
		bpl.b		vasenyla

vasenala:	fneg		fp4
		fadd		#314159,fp4
		

musti:		fadd		#314159/2,fp4
		fmove.l		fp4,12(a0)		
		rts

oikeapuoliq:	tst.l		d1

		bpl.b		oikeayla
oikeaala:	fmove		#314159+314159,fp3
		fadd		fp4,fp3
		fmove		fp3,fp4
		bra.b		musti
oikeayla:


		bra.b		musti

vasenyla:	fmove		#314159,fp3
		fsub		fp4,fp3
		fmove		fp3,fp4
		bra.b		musti
	
		
otetaankulmaa2:	lea		camplace,a0
		lea		oburealplace,a1
		lea		focus,a5
		fmove.l		(a0),fp0
		fmove.l		4(a0),fp1
		fmove.l		8(a0),fp6
		fmove.l		(a5),fp2
		fmove.l		4(a5),fp3
		fmove.l		8(a5),fp4
		fsub		fp2,fp0
		fsub		fp3,fp1
		fsub		fp4,fp6

		fmove		fp1,fp4
		fmove		fp0,fp2
		fmove		fp1,fp3
		fmul		fp2,fp2
		fmul		fp3,fp3
		fmul		fp6,fp6
		fadd		fp6,fp3
		fadd		fp3,fp2
		fsqrt 		fp2
		fdiv		fp2,fp4
		fasin		fp4
		fmul		#100000,fp4
		

oikeapuoli2q:	tst.l		d1
		bpl.b		oikeayla2
oikeaala2:	fmove		#314159+314159,fp3
		fadd		fp4,fp3
		fmove		fp3,fp4
		bra.w		musti2
oikeayla2:


musti2:;	fadd		#3,fp4
		fmove.l		fp4,16(a0)		
		rts

	
		
docama: 	;jsr		Letsmove
		lea		ky,a3
		move.l		#camera,tulost
		bsr.w		docam
		lea		camera,a0
		lea		camerat,a1
		bsr.w		transpose
		lea		camera,a1
		lea		suunnat,a2
		lea		suunnat2,a0
		bsr.w		mul3x3matrO

		rts

Objektit:

		lea		obustructure,a0
		move.l		(a0),d7 
		beq.w		eiobuja
hiho:		movem.l		d7/a0,-(sp)

		move.l		4(a0),a1 ;obun structuuri
		tst.l		(a1)
		beq.w		eiobua
		move.l		a1,obustruct
		move.l		(a1),kulmat
		move.l		4(a1),Obutamu ;objektin koordinaatit
; 		move.l		8(a1),norma   ;ei käytössä
		move.l		12(a1),r1yhty ;yhdistystaulukko
		move.w		16(a1),tasot  ;tasot
		move.w		18(a1),nurkat ;nurkat
		move.l		20(a1),allcordst ;valmiit koordinaatit
		move.l		24(a1),envimappit ;valmiit tkoordit
		move.l		28(a1),zeettat	  ;shade taulu
		move.l		32(a1),normalst2  ;piste normaalit
		move.l		36(a1),a0 ;spline ;
		move.l		40(a1),moodi
		move.l		72(a1),a2
		move.l		4(a2),envimappionko
		move.l		8(a2),mikafilleri
		move.l		8(a2),shade
					;68(a1) = textu-cords, jos tmap
		move.l		moodi,d0
		divs		#1,d0
		move.w		d0,moodi2
		tst.l		44(a1)
		beq.b		eimorphiobu
		movem.l		d0-d7/a0-a6,-(sp)
		bsr.b		morphataan
		movem.l		(sp)+,d0-d7/a0-a6
eimorphiobu:	
		move.l		(a1),a2
		bsr.w		splineseikkailu
		bsr.w		Obuquu
eiobua:		movem.l		(sp)+,d7/a0
		addq.l		#4,a0
		subq.l		#1,d7
		bne.w		hiho
eiobuja:	rts




;48		move.l		(sp),(a0)+ ;kuinka monta control pointtia
;52		clr.l		(a0)+	   ;step
;56		clr.l		(a0)+	   ;step lisays
;60		clr.l		(a0)+	   ;nykyinen control pointti
;64		move.l		talteen,(a0)+ ;spline taulukko
;68		move.l		a0,talteena0

morphataan:
		move.l		morffiuusi,52(a1)
		move.l		lisaq,60(a1)
		move.l		48(a1),d1
		cmp.l		60(a1),d1
		bne.b		adei256
		sub.l		d1,60(a1)
		sub.l		d1,lisaq

adei256:		
		move.l		52(a1),d6 ;step
		move.l		60(a1),d0
		move.w		18(a1),d7

		move.w		d7,d5
		add.w		d7,d7
		add.w		d5,d7
		addq.w		#2,d7
		asl.l		#2,d0
		move.l		Obutamu,a6
		move.l		a1,a5		
		add.l		#76,a5

		move.l		64(a1),a4
		add.l		d0,a4
		

		move.l		4(a4),d0
		move.l		4(a5,d0.l*4),a0
		move.l		8(a4),d0
		move.l		4(a5,d0.l*4),a1
		move.l		12(a4),d0
		move.l		4(a5,d0.l*4),a2
		move.l		16(a4),d0
		move.l		4(a5,d0.l*4),a3

spline2:		
		fmove		#1.0/256.0,fp7
		lea		m1,a4
		fmove.l		(a4,d6.l*4),fp3
		lea		m2,a4
		fmove.l		(a4,d6.l*4),fp4
		lea		m3,a4
		fmove.l		(a4,d6.l*4),fp5
		lea		m4,a4
		fmove.l		(a4,d6.l*4),fp6
mopilupi2:	fmove.l		(a0)+,fp0
		fmove.l		(a1)+,fp1
		fmove.l		(a2)+,fp2		
		fmul		fp3,fp0
		fmul		fp4,fp1
		fmul		fp5,fp2
		fadd		fp2,fp1
		fadd		fp1,fp0
		fmove.l		(a3)+,fp1
		fmul		fp6,fp1
		fadd		fp1,fp0
		fmul		fp7,fp0
		fmove.l		fp0,(a6)+
		dbf		d7,mopilupi2
		rts

splineseikkailu:
		tst.l		(a0)
		bne.s		lasketaan
		lea		obupaikka,a1
		move.l		4(a0),(a1)
		move.l		8(a0),4(a1)
		move.l		12(a0),8(a1)

		move.l		16(a0),d0
		move.l		20(a0),d1
		move.l		24(a0),d2
		add.l		d0,0(a2)
		add.l		d1,4(a2)
		add.l		d2,8(a2)
		

		rts
lasketaan:
		move.l		16(a0),d0
		move.l		20(a0),d1
		move.l		24(a0),d2
		add.l		d0,0(a2)
		add.l		d1,4(a2)
		add.l		d2,8(a2)

		move.l		(a0),a0 
		move.l		4(a0),d1 ;monta control pointtia
		move.l		lisaq2,8(a0)
		move.l		lisaq3,12(a0)
		

		cmp.l		12(a0),d1
		bne.b		dei256
		sub.l		d1,12(a0)
		sub.l		d1,lisaq3
dei256:
		move.l		8(a0),d6
		move.l		12(a0),d0
		add.l		#16,a0

		asl.l		#2,d0
		move.l		a0,a5
		add.l		d0,a5
		lea		obupaikka,a6
		move.w		#2,d7
		bsr.w		spline
				
		rts




Letsmove:	lea		camplace,a0
		lea		speed,a1
		move.l		(a1),d1
		add.l		d1,(a0)+
		move.l		d1,d2
		asr.l		#2,d2
		sub.l		d2,d1		
		move.l		d1,(a1)+


		move.l		(a1),d1
		add.l		d1,(a0)+
		move.l		d1,d2
		asr.l		#2,d2
		sub.l		d2,d1		
		move.l		d1,(a1)+

		move.l		(a1),d1
		add.l		d1,(a0)+
		move.l		d1,d2
		asr.l		#2,d2
		sub.l		d2,d1		
		move.l		d1,(a1)+
		rts


projisoi:	lea		oburealplace,a4
		move.l		(a4),d3
		move.l		12(a4),d4
		moveq.l		#0,d5		
		move.w		nurkat,d7
		lea		ready,a0
		move.l		a0,a1
		move.l		a1,a2
		move.w		nurkat,d0
		addq.w		#1,d0
		ext.l		d0
		asl.l		#2,d0
		move.l		allcordst,a5
		move.l		d0,d1
		move.l		zeettat,a6
		add.l		d1,d1
		add.l		d0,a1
		add.l		d1,a2 
		

lapid:		move.l		(a0)+,d0
		move.l		(a1)+,d1
		add.l		d3,d0
		move.l		(a2)+,d2
		add.l		d4,d1
		add.l		24(a4),d2
		move.l		d2,-(sp)
		asr.l		#6,d2
		add.w		#5000,d2		
		move.w		d2,(a5)+
;		tst.l		moodi
;		bne.s		ainaz
eifogg:		move.l		(sp)+,d2
		divs		#180,d2
		add.w		#10,d2
		cmp.w		#1,d2
		bpl.b		dei03
		move.w		#1,d2
dei03:
		
		cmp.w		#1,d2
		bpl.b		dei0
		move.w		#1,d2
dei0:
		divs		d2,d0
		divs		d2,d1
		add.w		xlisa,d0
		add.w		#200,d1
		move.w		d0,(a5)+
		move.w		d1,(a5)+
		move.w		d1,(a5)+
		dbf		d7,lapid
		rts

projisoiflare:
		lea		oburealplace,a4
		move.l		(a4),d3
		move.l		12(a4),d4
		moveq.l		#0,d5		
		move.w		nurkat,d7
		lea		ready,a0
		move.l		a0,a1
		move.w		nurkat,d0
		move.l		a1,a2
		addq.w		#1,d0
		asl.w		#2,d0
		ext.l		d0
		move.l		d0,d1
		move.l		zeettat,a6
		add.l		d1,d1
		move.l		allcordst,a5
		add.l		d0,a1
		add.l		d1,a2 
		
lapidfl:	move.l		(a0),d0
		move.l		(a1),d1
		add.l		d3,d0
		move.l		(a2),d2
		add.l		d4,d1
		add.l		24(a4),d2
		move.l		d2,-(sp)
		asr.l		#6,d2
		addx.l		d5,d2
		add.w		#5000,d2
		move.w		d2,(a5)+
		move.l		(sp),d2
		divs		#-158*2,d2
		add.w		#128,d2
		cmp.w		#10,d2
		bpl.b		okf
		moveq.l		#10,d2
okf:
		cmp.w		#128,d2
		bmi.b		ok2f
		move.w		#128,d2
ok2f:		move.w		d2,(a6)
		move.w		moodi2,2(a6)

		move.l		(sp)+,d2
		divs		#90,d2
		add.w		#10,d2
		cmp.w		#1,d2
		bpl.b		dei03fl
		move.w		#1,d2
dei03fl:
		
		cmp.w		#1,d2
		bpl.b		dei0fl
		move.w		#1,d2
dei0fl:

		divs		d2,d0
		divs		d2,d1
		add.w		xlisa,d0
		add.w		#200,d1

joohiresfl:
		cmp.w		vasenr,d0
		bmi.w		r1einay1f1
		cmp.w		oikear,d0
		bpl.w		r1einay1f1
		cmp.w		#150,d1
		bmi.w		r1einay1f1
		cmp.w		alar1,d1
		bpl.w		r1einay1f1

		move.w		d0,(a5)+
		move.w		d1,(a5)+
		move.w		d1,(a5)+

		move.w		vasenr,d2
		add.w		oikear,d2
		asr.w		#1,d2
		addx.w		d5,d2
		cmp.w		d2,d0
		bmi.b		nega
		sub.w		d2,d0
		neg.w		d0
		add.w		d2,d0
		bra.b		einega
nega:		sub.w		oikear,d0
		neg.w		d0
		add.w		vasenr,d0
einega:

		move.w		#150,d2
		add.w		alar1,d2
		asr.w		#1,d2
		addx.w		d5,d2
		cmp.w		d2,d1
		bmi.b		nega2
		sub.w		d2,d1
		neg.w		d1
		add.w		d2,d1
		bra.b		einega2
nega2:		sub.w		alar1,d1
		neg.w		d1
		add.w		#150,d1
einega2:
		move.w		-8(a5),(a5)+
		neg.w		-2(a5)
		move.w		d0,(a5)+
		move.w		d1,(a5)+
		move.w		d1,(a5)+

		move.w		-8(a5),d0 ;z2
		move.w		#5000,d0
		move.w		-6(a5),d1 ;x2
		move.w		-4(a5),d2 ;y2

		sub.w		-16(a5),d0
		sub.w		-14(a5),d1
		sub.w		-12(a5),d2
		asr.w		#3,d0
		addx.w		d5,d0
		asr.w		#3,d1
		addx.w		d5,d1
		asr.w		#3,d2
		addx.w		d5,d2

		move.w		-16(a5),d3
		move.w		-14(a5),d4
		move.w		-12(a5),d5

		move.w		(a6),d6
		move.w		d6,(a6)+
		add.w		#35,-2(a6)
		move.w		moodi2,(a6)+
		move.w		#2,d7
		
flok2:		add.w		d0,d3
		add.w		d1,d4
		add.w		d2,d5
		sub.w		#28,d6
		move.w		d6,(a6)+
		move.w		moodi2,(a6)+
		cmp.w		#250,d6
		bmi.b		flokok1
		move.w		#250,-4(a6)
flokok1:

		move.w		d3,-8(a5)
		move.w		d4,-6(a5)
		move.w		d5,-4(a5)
		move.w		d5,-2(a5)
		addq.w		#8,a5
		dbf		d7,flok2

		move.w		#4,d7
	
flok3:		add.w		d0,d3
		add.w		d1,d4
		add.w		d2,d5
		move.w		d6,(a6)+
		move.w		moodi2,(a6)+
		cmp.w		#10,d6
		bpl.b		flokok2
		move.w		#10,-4(a6)
flokok2:
		add.w		#50,d6

		move.w		d3,-8(a5)
		move.w		d4,-6(a5)
		move.w		d5,-4(a5)
		move.w		d5,-2(a5)
		addq.w		#8,a5
		dbf		d7,flok3

		rts

r1einay1f1:	move.w		#8,d7
lupea:		clr.l		(a5)+
		clr.l		(a5)+
		dbf		d7,lupea


;----------------

envimap:
		cmp.l		#2,shade
		bpl.b		foggia
;		cmp.l		#1,shade
;		beq.w		eitmap
;		bsr.w		r1laskeb
;eitmap:
		rts

foggia:		cmp.l		#3,shade
		bne.w		ei3sh
;		bsr		r1laskeb
ei3sh:		rts


Initobu:
		move.w		d7,d0
		addq.w		#1,d0
		muls		#4,d0
		move.l		d0,d1
		add.l		d1,d1

		fmove		#1024,fp1
		fmove		#600,fp2
		move.l		#-1000000,suurinx
		move.l		#1000000,pieninx
		move.l		#-1000000,suuriny
		move.l		#1000000,pieniny
		move.l		#-1000000,suurinz
		move.l		#1000000,pieninz

loopa:		fmove.w		(a0)+,fp0
		fmul		fp2,fp0
		fmove.l		fp0,(a1)

		fmove.l		fp0,d2
		cmp.l		suurinx,d2
		bmi.b		eioosuurinx
		move.l		d2,suurinx
eioosuurinx:	cmp.l		pieninx,d2
		bpl.b		eioopieninx
		move.l		d2,pieninx
eioopieninx:

		fmove.w		(a0)+,fp0
		fmul		fp2,fp0
		fmove.l		fp0,(a1,d0.l)
		fmove.l		fp0,d2
		cmp.l		suuriny,d2
		bmi.b		eioosuuriny
		move.l		d2,suuriny
eioosuuriny:	cmp.l		pieniny,d2
		bpl.b		eioopieniny
		move.l		d2,pieniny
eioopieniny:

		fmove.w		(a0)+,fp0
		fmul		fp2,fp0
;		fneg		fp0
		fmove.l		fp0,(a1,d1.l)
		fmove.l		fp0,d2
		cmp.l		suurinz,d2
		bmi.b		eioosuurinz
		move.l		d2,suurinz
eioosuurinz:	cmp.l		pieninz,d2
		bpl.b		eioopieninz
		move.l		d2,pieninz
eioopieninz:

		addq.w		#4,a1
		dbf		d7,loopa
		rts


Initnormals:
		move.w		d7,d0
		addq.w		#1,d0
		muls		#4,d0
		move.l		d0,d1
		add.l		d1,d1
		fmove.l		#1024,fp1


loopa2:		fmove.w		(a0)+,fp0
		fmul		fp1,fp0
		fmove.l		fp0,(a1)

		fmove.w		(a0)+,fp0
		fmul		fp1,fp0
		fmove.l		fp0,(a1,d0.l)

		fmove.w		(a0)+,fp0
		fmul		fp1,fp0
		fmove.l		fp0,(a1,d1.l)

		addq.w		#4,a1
		addq.w		#2,a0
		dbf		d7,loopa2
		rts





transpose:	move.l		(a0),(a1)+
		move.l		12(a0),(a1)+
		move.l		24(a0),(a1)+

		move.l		4(a0),(a1)+
		move.l		16(a0),(a1)+
		move.l		28(a0),(a1)+

		move.l		8(a0),(a1)+
		move.l		20(a0),(a1)+
		move.l		32(a0),(a1)+

		rts

docam:		fmove.l		#1024,fp6
		fmove.l		#100000,fp7

		fmove.l		(a3),fp0
		fdiv		fp7,fp0
		fmove		fp0,fp1
		fsin		fp0
		fcos		fp1
		fmul		fp6,fp0
		fmul		fp6,fp1
		lea		yrotta,a0
		fmove.l		fp1,0(a0)
		fmove.l		fp0,24(a0)
		fmove.l		fp1,32(a0)
		fneg		fp0
		fmove.l		fp0,8(a0)


		fmove.l		4(a3),fp0
		fdiv		fp7,fp0
		fmove		fp0,fp1
		fsin		fp0
		fcos		fp1
		fmul		fp6,fp0
		fmul		fp6,fp1
		lea		xrotta,a0
		fmove.l		fp1,16(a0)
		fmove.l		fp1,32(a0)
		fmove.l		fp0,28(a0)
		fneg		fp0
		fmove.l		fp0,20(a0)

		fmove.l		8(a3),fp0
		fdiv		fp7,fp0
		fmove		fp0,fp1
		fsin		fp0
		fcos		fp1
		fmul		fp6,fp0
		fmul		fp6,fp1
		lea		zrotta,a0
		fmove.l		fp1,0(a0)
		fmove.l		fp0,12(a0)
		fmove.l		fp1,16(a0)
		fneg		fp0
		fmove.l		fp0,4(a0)

		lea		yrotta,a1
		lea		xrotta,a2
		lea		tempq,a0
		bsr.b		mul3x3matrO
 
		lea		tempq,a1
		lea		zrotta,a2
		move.l		tulost,a0
		bsr.b		mul3x3matrO
		rts



		

;mul4x4matr:	move.w		#4,a6
;lop2:		move.w		#4,a5
;		move.l		(a1),d0
;		move.l		4(a1),d1
;		move.l		8(a1),d2
;		moveq.l		#0,d3
;lop3:		move.l		0(a2),d4
;		move.l		16(a2),d5
;		move.l		32(a2),d6
;		move.l		48(a2),d7
;		muls.l		d0,d4
;		muls.l		d1,d5
;		muls.l		d2,d6
;		muls.l		12(a1),d7
;		add.l		d7,d6
;		add.l		d6,d5
;		add.l		d5,d4
;		divs.l		#1024,d4
;		addx.l		d3,d4
;		move.l		d4,(a0)+
;		addq.l		#4,a2
;		subq.w		#1,a5
;		cmp.w		#0,a5
;		bne.s		lop3
;		sub.l		#16,a2
;		add.l		#16,a1
;		subq.w		#1,a6
;		cmp.w		#0,a6
;		bne.s		lop2	
;		rts

mul3x3matrO:	moveq.l		#3,d7
		moveq.l		#0,d3

lop23O:
		fmove.l		(a1),fp0
		fmove.l		4(a1),fp1
		fmove.l		8(a1),fp2

		fmove.l		0(a2),fp4
		fmove.l		12(a2),fp5
		fmul		fp0,fp4
		fmove.l		24(a2),fp6
		fmul		fp1,fp5
		fmul		fp2,fp6
		fadd		fp5,fp4
		fadd		fp6,fp4
		fdiv		#1024,fp4
		fmove.l		16(a2),fp5
		fmove.l		28(a2),fp6
		fmove.l		fp4,(a0)+
		fmul		fp1,fp5

		fmove.l		4(a2),fp4
		fmul		fp2,fp6
		fmul		fp0,fp4
		fadd		fp5,fp4
		fadd		fp6,fp4
		fdiv		#1024,fp4
		fmove.l		20(a2),fp5
		fmove.l		32(a2),fp6
		fmove.l		fp4,(a0)+
		fmul		fp1,fp5
		fmove.l		8(a2),fp4
		fmul		fp0,fp4
		fmul		fp2,fp6
		fadd		fp5,fp4
		fadd		fp6,fp4
		fdiv		#1024,fp4
		lea		12(a1),a1
		fmove.l		fp4,(a0)+
		dbf		d7,lop23O
		rts

mul1x3matr:	move.l		#3,a6
lop23b:		move.l		#1,a5

		fmove.l		0(a2),fp0
		fmove.l		12(a2),fp1
		fmove.l		24(a2),fp2

		moveq.l		#0,d3

lop33b:
		fmove.l		(a1),fp4
		fmove.l		4(a1),fp5
		fmove.l		8(a1),fp6

		fmul		fp0,fp4
		fmul		fp1,fp5
		fmul		fp2,fp6
		fadd		fp6,fp5
		fadd		fp5,fp4
		fdiv		#1024,fp4
		fmove.l		fp4,(a0)
		add.l		#12,a0
		add.l		#12,a1
		subq.w		#1,a6
		cmp.w		#0,a6
		bne.s		lop23b
		rts
mulNx3matr:	move.w		#3,a6
		move.w		nurkat,d0
		
		move.w		d0,d1
		addq.w		#1,d1
		asl.w		#1,d1
		move.w		d1,d2
		add.w		d2,d2

		move.l		a2,a3
		move.l		a3,a4

		move.w		nurkat,d4
		addq.w		#1,d4
		muls		#4,d4
		add.l		d4,a3
		add.l		d4,d4
		add.l		d4,a4
		moveq.l		#0,d3
lop2n3:		move.w		nurkat,d7
		move.l		4(a1),d1

lop3n3:		move.l		(a2)+,d4
		muls.l		(a1),d4
		move.l		(a3)+,d5
		move.l		(a4)+,d6
		muls.l		d1,d5
		muls.l		8(a1),d6
		add.l		d6,d5
		add.l		d5,d4
		asr.l		#8,d4
		asr.l		#2,d4
		addx.l		d3,d4
		move.l		d4,(a0)+
		dbf		d7,lop3n3

		sub.w		d2,a2
		sub.w		d2,a3
		sub.w		d2,a4
		add.w		#12,a1
		subq.w		#1,a6
		cmp.w		#0,a6
		bne.s		lop2n3
		rts

;;------------------------
;mulNx4matr:	move.w		#4-1,d6
;		move.w		nurkat,d0
;
;		
;		move.w		d0,d1
;		addq.w		#1,d1
;		asl.w		#1,d1
;		move.w		d1,d2
;		add.w		d2,d2
;
;		move.l		a2,a3
;		move.l		a3,a4
;		move.l		a4,a5
;
;		move.w		nurkat,d4
;		addq.w		#1,d4
;		muls		#4,d4
;		add.l		d4,a3
;
;		move.l		d4,d5
;		add.l		d5,d5
;
;		add.l		d5,a4
;		add.l		d4,d5
;		add.l		d5,a5
;		addq.w		#1,d0
;
;lop2n:		move.w		d0,a6
;		movem.l		d0/d2/d6,-(sp)
;		
;		move.l		(a1),d0
;		move.l		4(a1),d1
;		move.l		8(a1),d2
;		moveq.l		#0,d3
;
;lop3n:		move.l		(a2)+,d4
;		move.l		(a3)+,d5
;		move.l		(a4)+,d6
;		move.l		(a5)+,d7
;
;		muls.l		d0,d4
;		muls.l		d1,d5
;		muls.l		d2,d6
;		muls.l		12(a1),d7
;		add.l		d7,d6
;		add.l		d6,d5
;		add.l		d5,d4
;		divs.l		#1024,d4
;		addx.l		d3,d4
;		move.l		d4,(a0)+
;		subq.w		#1,a6
;		cmp.w		#0,a6
;		bne.b		lop3n
;		movem.l		(sp)+,d0/d2/d6
;
;		sub.w		d2,a2
;		sub.w		d2,a3
;		sub.w		d2,a4
;		sub.w		d2,a5
;		add.w		#16,a1
;		dbf		d6,lop2n		
;		rts
;
;mulNx4matrenvi:	move.w		#4-1,d6
;		move.w		nurkat,d0
;
;		
;		move.w		d0,d1
;		addq.w		#1,d1
;		asl.w		#1,d1
;		move.w		d1,d2
;		add.w		d2,d2
;
;		move.l		a2,a3
;		move.l		a3,a4
;		move.l		a4,a5
;
;		move.w		nurkat,d4
;		addq.w		#1,d4
;		muls		#4,d4
;		add.l		d4,a3
;
;		move.l		d4,d5
;		add.l		d5,d5
;
;		add.l		d5,a4
;		add.l		d4,d5
;		addq.w		#1,d0
;
;lop2ne:		move.w		d0,a6
;		movem.l		d0/d2/d6,-(sp)
;		
;		move.l		(a1),d0
;		move.l		4(a1),d1
;		move.l		8(a1),d2
;		moveq.l		#0,d3
;
;lop3ne:		move.l		(a2)+,d4
;		move.l		(a3)+,d5
;		move.l		(a4)+,d6
;
;		muls.l		d0,d4
;		muls.l		d1,d5
;		muls.l		d2,d6
;		muls.l		12(a1),d7
;		add.l		d7,d6
;		add.l		d6,d5
;		add.l		d5,d4
;		divs.l		#1024*4,d4
;		addx.l		d3,d4
;		move.l		d4,(a0)+
;		subq.w		#1,a6
;		cmp.w		#0,a6
;		bne.b		lop3ne
;		movem.l		(sp)+,d0/d2/d6
;
;		sub.w		d2,a2
;		sub.w		d2,a3
;		sub.w		d2,a4
;		sub.w		d2,a5
;		add.w		#16,a1
;		dbf		d6,lop2ne
;		rts

mulNx3matrenvi:
		cmp.l		#2,shade
		bpl.w		mulNx3matrenvib

		move.w		#2,a6
		move.w		nurkat,d0
		move.l		zeettat,a5
		move.l		a0,check		
		move.w		d0,d1
		addq.w		#1,d1
		asl.w		#1,d1
		move.w		d1,d2
		add.w		d2,d2

		move.l		a2,a3
		move.l		a3,a4

		move.w		nurkat,d4
		addq.w		#1,d4
		muls		#4,d4
		add.l		d4,a3

		add.l		d4,d4
		add.l		d4,a4

lop2ne3:	move.w		nurkat,d7
		move.l		4(a1),d1
lop3ne3:	move.l		(a2)+,d4
		move.l		(a3)+,d5
		move.l		(a4)+,d6
		muls.l		(a1),d4
		muls.l		d1,d5
		muls.l		8(a1),d6
		add.l		d6,d5
		add.l		d5,d4
		asr.l		#8,d4
		asr.l		#4,d4
		move.l		d4,d5
;		divs		#200,d5
		asr.w		#8,d5
		add.w		#128,d5
		add.l		#128*256,d4
		move.w		d5,(a5)+
		clr.w		(a5)+
		move.l		d4,(a0)
		addq.w		#8,a0
		dbf		d7,lop3ne3

		sub.w		d2,a2
		sub.w		d2,a3
		sub.w		d2,a4
		add.w		#12,a1

		move.w		nurkat,d7
		move.l		check,a0
		addq.w		#4,a0
		move.l		(a1),d0
		move.l		4(a1),d1
		move.l		8(a1),d2
lop3ne3b:	move.l		(a2)+,d4
		move.l		(a3)+,d5
		move.l		(a4)+,d6
		muls.l		d0,d4
		muls.l		d1,d5
		muls.l		d2,d6
		add.l		d6,d5
		add.l		d5,d4
		asr.l		#8,d4
		asr.l		#4,d4
		addq.w		#8,a0
		add.l		#128*256,d4
		move.l		d4,-8(a0)
		dbf		d7,lop3ne3b
		rts





mulNx3matrenvib:
		move.w		#2,a6
		move.w		nurkat,d0
		move.l		a0,check		
		move.w		d0,d1
		addq.w		#1,d1
		asl.w		#1,d1
		move.w		d1,d2
		add.w		d2,d2

		move.l		a2,a3
		move.l		a3,a4

		move.w		nurkat,d4
		addq.w		#1,d4
		muls		#4,d4
		add.l		d4,a3

		add.l		d4,d4
		add.l		d4,a4

lop2ne3e:	move.w		nurkat,d7
		move.l		4(a1),d1
lop3ne3e:	move.l		(a2)+,d4
		move.l		(a3)+,d5
		move.l		(a4)+,d6
		muls.l		(a1),d4
		muls.l		d1,d5
		muls.l		8(a1),d6
		add.l		d6,d5
		add.l		d5,d4
		asr.l		#8,d4
		asr.l		#4,d4
;		divs.l		#1024*3,d4
		add.l		#128*256,d4
		move.l		d4,(a0)
		addq.w		#8,a0
		dbf		d7,lop3ne3e

		sub.w		d2,a2
		sub.w		d2,a3
		sub.w		d2,a4
		add.w		#12,a1

		move.w		nurkat,d7
		move.l		check,a0
		addq.w		#4,a0
		move.l		(a1),d0
		move.l		4(a1),d1
		move.l		8(a1),d2
lop3ne3be:	move.l		(a2)+,d4
		move.l		(a3)+,d5
		move.l		(a4)+,d6
		muls.l		d0,d4
		muls.l		d1,d5
		muls.l		d2,d6
		add.l		d6,d5
		add.l		d5,d4
		divs.l		#1024*3,d4
		addq.w		#8,a0
		add.l		#128*256,d4
		move.l		d4,-8(a0)
		dbf		d7,lop3ne3be
		rts



slopefill:	movem.l		d7,-(sp)
		move.l		r1tasotnt,a0
		addq.l		#6,r1tasotnt
		move.w		(a0),d0
		move.l		2(a0),a0
		tst.l		40(a0)
		beq.w		eiflare

		move.l		28(a0),a4		
		move.w		2(a4,d0.w*4),d2
		ext.l		d2
		move.l		d2,modeq


		move.l		28(a0),a5
		lea		fkoko,a4
		move.w		(a5,d0.w*4),d1

		cmp.l		#1,modeq
		beq.b		Miniflaret		
		cmp.l		#1,miniflare
		beq.b		pakkolaskea
		cmp.w		entkoko,d1
		beq.b		eilasketauusiksi

pakkolaskea:	move.w		d1,entkoko
		clr.l		miniflare

		cmp.w		#200,d1
		bmi.b		tarki2
		move.w		#200,d1
		bra.b		ados
tarki2:		cmp.w		#5,d1
		bpl.b		ados
		move.w		#5,d1
		bra.b		ados

Miniflaret:	tst.l		miniflare
		beq.b		pakkolaskea2
		cmp.w		entkoko,d1
		beq.b		eilasketauusiksi



pakkolaskea2:	move.l		#1,miniflare
		move.w		d1,entkoko
		neg.w		d1
		add.w		#256,d1
		asr.w		#2,d1
		cmp.w		#20,d1
		bmi.b		ados
		move.w		#20,d1
ados:


		ext.l		d1
		move.l		d1,d2
		move.l		d1,16(a4)
		add.l		#7,16(a4)
		asr.l		#1,d1
		move.l		d1,28(a4)		
		neg.l		d1
		move.l		d1,(a4)
		asr.l		#1,d1
		move.l		d1,4(a4)
		add.l		#5,28(a4)
eilasketauusiksi:
		move.l		12(a0),a3
		move.w		d0,d1
		move.w		(a3,d0.w*2),d5


		move.l		20(a0),a1
		move.w		2(a1,d1.w*8),d0
		move.w		4(a1,d1.w*8),d1
		lea		flarea,a4

		tst.w		d5
		bne.s		eite1
		lea		ftexture2,a1
		move.l		(a4),a4
		bra.b		eite2
eite1:		cmp.w		#1,d5
		bne.s		eite3
		lea		ftexture2,a1
		move.l		4(a4),a4
		bra.b		eite2
eite3:		cmp.w		#2,d5
		bne.s		eite4
		lea		ftexture2,a1
		move.l		8(a4),a4
		bra.b		eite2
eite4:		cmp.w		#3,d5
		bne.s		eite5
		lea		ftexture2,a1
		move.l		12(a4),a4
		bra.b		eite2
eite5:
		lea		ftexture2,a1
		move.l		16(a4),a4


eite2:		lea		fkoko,a0
		lea		buffer,a2

		cmp.l		#2,modeq
		bpl.b		lenssi				
		bsr.w		scaledrawf

		bra.w		poisl
lenssi:		bsr.w		scaledrawf2
		bra.w		poisl

eiflare:
		move.l		12(a0),a3
		lsl.w		#3,d0
		move.l		72(a0),a2
		tst.l		8(a2)
		beq.w		tmapfilli
shadefilli:	move.l		(a2),a6
		move.l		12(a2),allcolorst
		tst.l		4(a2)
		bne.s		onenvimappi
		move.l		68(a0),a2 ;------------------
		bra.b		eienvimappi
onenvimappi:	move.l		24(a0),a2
eienvimappi:

		add.w		d0,a3
		move.l		28(a0),a4		
		move.l		20(a0),a0

		lea		r1cordsready,a1
		move.w		(a3),d5
		move.w		2(a3),d6
		move.w		4(a3),d2

		move.w		6(a3),d3
		bne.s		eipol0


		move.l		#Loop,mitenruudulle
		move.l		#flippand,mitenruudulle+4
		bra.b		bitmapvalmis

eipol0:		cmp.w		#2,d3
;		bne.s		eipol1
		move.l		#Loopl,mitenruudulle
		move.l		#aClippandeerl,mitenruudulle+4
		bra.b		bitmapvalmis
eipol1:		move.l		#Loopl,mitenruudulle
		move.l		#aClippandeerl,mitenruudulle+4

bitmapvalmis:
		move.w		4(a0,d5.w*8),d3
		move.w		4(a0,d6.w*8),d0
		move.w		4(a0,d2.w*8),d1


		cmp.w		d0,d3
		bmi.b		yli1
		exg		d5,d6
		exg		d3,d0
yli1:		cmp.w		d1,d0
		bmi.b		readyq
		exg		d6,d2
		exg		d0,d1
		cmp.w		d0,d3
		bmi.b		readyq
		exg		d5,d6
		exg		d3,d0
readyq:
		cmp.w		#150,d1
		bmi.w		poisl
		cmp.w		alar1,d3
		bpl.w		poisl

		clr.l		vasclip
		clr.l		oikclip
		clr.l		upclip
		cmp.w		#150,d3
		bpl.b		azeiei1
		move.l		#1,upclip
azeiei1:
		cmp.w		alar1,d1
		bmi.b		azeiei2
		move.l		#1,upclip
azeiei2:
		

		sub.w		d3,d1
		beq.w		poisl


		move.w		vasenr,d7
		cmp.w		2(a0,d5.w*8),d7
		bmi.b		aeivas1
		add.l		#1,vasclip
aeivas1:	cmp.w		2(a0,d6.w*8),d7
		bmi.b		aeivas2
		add.l		#1,vasclip
aeivas2:	cmp.w		2(a0,d2.w*8),d7
		bmi.b		aeivas3
		add.l		#1,vasclip
aeivas3:	cmp.l		#3,vasclip
		beq.w		poisl

		move.w		oikear,d7
		cmp.w		2(a0,d5.w*8),d7
		bpl.b		aeioik1
		add.l		#1,oikclip
aeioik1:	cmp.w		2(a0,d6.w*8),d7
		bpl.b		aeioik2
		add.l		#1,oikclip
aeioik2:	cmp.w		2(a0,d2.w*8),d7
		bpl.b		aeioik3
		add.l		#1,oikclip
aeioik3:	cmp.l		#3,oikclip
		beq.w		poisl



		fmove.w		(a4,d5.w*4),fp0
		fmove.w		(a4,d6.w*4),fp1 
		move.w		d0,d4
		fmove.w		(a4,d2.w*4),fp2
		ext.l		d1
		move.l		2(a0,d5.w*8),(a1)
		move.w		d0,d7	
		move.l		(a2,d5.w*8),12(a1)
		sub.w		d3,d4
		move.l		4(a2,d5.w*8),16(a1)
		ext.l		d4
		move.l		2(a0,d6.w*8),4(a1)
		asl.l		#8,d4
		move.l		(a2,d6.w*8),20(a1)
		divs		d1,d4 ;temp		
		move.l		4(a2,d6.w*8),24(a1)
		ext.l		d4
		move.l		2(a0,d2.w*8),8(a1)
		move.l		(a2,d2.w*8),28(a1)
		fmove.l		d4,fp5
		move.l		4(a2,d2.w*8),32(a1)


		move.w		(a1),d2
		move.l		d4,d0
		sub.w		4(a1),d2
		ext.l		d2		
		move.w		8(a1),d1
		asl.l		#8,d2
		sub.w		(a1),d1
		fmove		#1/256.0,fp7
		ext.l		d1
		muls.l		d1,d0
		add.l		d2,d0
		beq.w		poisl
		move.l		d0,leveys		

		fmove.l		d0,fp6
		move.l		28(a1),d1
		fmul		fp7,fp6
		fmul		fp7,fp5

		fmove		fp2,fp4
		sub.l		12(a1),d1
		fsub		fp0,fp4
		muls.l		d4,d1
		move.l		12(a1),d2
		fmul		fp5,fp4
		sub.l		20(a1),d2
		fmove		fp0,fp5
		asl.l		#8,d2
		fmove		fp0,fp5
		fsub		fp1,fp5
		add.l		d2,d1
		fadd		fp5,fp4
		divs.l		d0,d1
		fdiv		fp6,fp4 ;ok
		move.l		d1,a2
		move.l		32(a1),d1
		sub.l		16(a1),d1
		muls.l		d4,d1
		move.l		16(a1),d2
		sub.l		24(a1),d2
		asl.l		#8,d2
		add.l		d2,d1
		divs.l		d0,d1
		move.l		d1,a3
		move.l		#2,suunta
		cmp.w		10(a1),d7
		bne.s		eisamat2


		move.w		4(a1),d0
		cmp.w		8(a1),d0
		bmi.w		vasenpuoli

		fmove		fp1,fp5
		move.l		4(a1),d1
		fmove		fp2,fp1
		move.l		8(a1),4(a1)
		move.l		d1,8(a1)
		fmove		fp5,fp2
		move.l		28(a1),d0
		move.l		20(a1),28(a1)
		move.l		d0,20(a1)
		move.l		32(a1),d0
		move.l		24(a1),32(a1)
		move.l		d0,24(a1)
		bra.w		vasenpuoli2

eisamat2:	cmp.w		2(a1),d7
		bne.w		eisamat
		move.w		(a1),d0
		cmp.w		4(a1),d0
		bmi.b		zokoks
		move.l		20(a1),d1
		move.l		12(a1),20(a1)
		move.l		d1,12(a1)
		move.l		24(a1),d1
		move.l		16(a1),24(a1)
		move.l		d1,16(a1)
		move.l		(a1),d1
		move.l		4(a1),(a1)
		move.l		d1,4(a1)

		fmove		fp0,fp5
		fmove		fp1,fp0
		fmove		fp5,fp1

zokoks:		move.w		8(a1),d0
		move.w		10(a1),d7
		move.w		d0,d2
		sub.w		2(a1),d7
		sub.w		(a1),d0
		sub.w		4(a1),d2
		muls		#256,d0
		muls		#256,d2
		ext.l		d7
		move.w		2(a1),d4
		divs.l		d7,d0 ;xstep1
		move.w		4(a1),d3
		fmove.w		d7,fp7
		divs.l		d7,d2 ;xstep2, ystep on aina 1...
		move.w		(a1),d1 
		muls		#640,d4
		lea		buffer,a0
		muls		#256,d1 ;alkux1
		add.l		d4,a0
		muls		#256,d3

		move.l		28(a1),d4
		fmove		fp2,fp5
		move.l		32(a1),d5
		fsub		fp0,fp5
		sub.l		12(a1),d4
		fdiv		fp7,fp5
		sub.l		16(a1),d5
		divs.l		d7,d4
		divs.l		d7,d5
		move.l		d4,a4
		move.l		12(a1),d4
		move.l		d5,a5
		move.l		16(a1),d5
		bra.w		Loopa
eisamat:	clr.l		suunta
		move.l		leveys,d0
		bpl.b		vasenpuoli
oikeapuoli:	move.l		#1,suunta2
oikeapuoli2:	move.w		8(a1),d0
		fmove		fp2,fp5
		move.w		10(a1),d1
		move.w		4(a1),d2
		move.w		6(a1),d3
		fsub		fp0,fp5
		move.l		28(a1),d4
		move.l		32(a1),d5
		sub.w		0(a1),d0  ;-ylin x,y
		sub.w		0(a1),d2
		sub.w		2(a1),d3
		sub.w		2(a1),d1


		move.l		d3,d6
		move.l		d1,d7
		cmp.w		d1,d3
		bpl.b		atqi
		move.w		d3,d7
		move.w		d1,d6
atqi:		sub.l		12(a1),d4
		ext.l		d6
		sub.l		16(a1),d5
		divs.l		d6,d4
		divs.l		d6,d5
		bra.b		sopx2

vasenpuoli:	move.l		#0,suunta2
vasenpuoli2:	move.w		4(a1),d0
		fmove		fp1,fp5
		move.w		6(a1),d1
		move.w		8(a1),d2
		move.w		10(a1),d3
		fsub		fp0,fp5
		move.l		20(a1),d4
		move.l		24(a1),d5
		sub.w		0(a1),d0  ;-ylin x,y
		sub.w		0(a1),d2
		sub.w		2(a1),d1
		sub.w		2(a1),d3


		move.w		d1,d7
		cmp.w		d1,d3
		bpl.b		sopx
		move.w		d3,d7
sopx:		sub.l		12(a1),d4
		ext.l		d7
		sub.l		16(a1),d5
		divs.l		d7,d4
		divs.l		d7,d5
sopx2:

		move.l		d4,a4
		ext.l		d0
		move.l		d5,a5	
		ext.l		d2
		move.l		12(a1),d4
		asl.l		#8,d0
		move.l		16(a1),d5
		ext.l		d1
		asl.l		#8,d2
		fdiv.l		d1,fp5
		ext.l		d3
		divs.l		d1,d0
		divs.l		d3,d2   

		
aeivoi:		move.w		2(a1),d1
		muls		#640,d1

		lea		buffer,a0
		add.l		d1,a0
		move.w		(a1),d1 
		muls		#256,d1 ;alkux1

		move.l		d1,d3

Loopa:		fmove		#256,fp7
		fmul		fp7,fp0
		fmul		fp7,fp5
		fmul		fp7,fp4
		tst.l		vasclip
		bne.w		aClippandeer
		tst.l		oikclip
		bne.w		aClippandeer
		tst.l		upclip
		bne.w		aClippandeer

		move.l		mitenruudulle,a1
		jmp		(a1)
		rts

Loop:		move.l		d1,tad1
		move.l		d3,tad3
		asr.l		#8,d1
		asr.l		#8,d3
		sub.l		d1,d3

		bmi.b		poisqw2
		movem.l		d4/d5/a4,-(sp)

		fmove		fp0,fp3
		move.l		a0,a1
		muls.l		#3,d1
		move.l		allcolorst,a4
		add.l		d1,a1

heps:		ror.l		#8,d4
		move.l		d5,d6
		fmove.l		fp3,-(sp)
		addq.w		#6,a1
		move.b		d4,d6
		move.l		(sp)+,d1
		rol.l		#8,d4
		move.b		(a6,d6.l),d1
		add.l		a2,d4
		move.l		(a4,d1.l*4),-6(a1)
		move.l		d5,d6
		fadd		fp4,fp3
		add.l		a3,d5
		ror.l		#8,d4
		subq.w		#1,d3
		bmi.b		poisqw

		fmove.l		fp3,-(sp)
		move.b		d4,d6
		move.l		(sp)+,d1
		rol.l		#8,d4
		move.b		(a6,d6.l),d1
		add.l		a2,d4
		move.l		(a4,d1.l*4),-3(a1)
		fadd		fp4,fp3
		add.l		a3,d5
		subq.w		#1,d3
		bpl.b		heps

poisqw:		movem.l		(sp)+,d4/d5/a4
poisqw2:
		move.l		tad1,d1
		move.l		tad3,d3
		add.l		d0,d1
		fadd		fp5,fp0
		add.l		d2,d3
		add.l		a4,d4
		add.l		a5,d5
		lea		640(a0),a0
		subq.w		#1,d7
		bne.w		Loop

sikakyosti:
		cmp.l		#2,suunta
		beq.w		pois
		lea		r1cordsready,a1
		move.w		10(a1),d7
		sub.w		6(a1),d7
		beq.w		pois 
		tst.l		suunta2
		bne.b		oikea


vasen:		move.l		28(a1),d0
		ext.l		d7
		sub.l		20(a1),d0
		fmove.w		d7,fp7
		divs.l		d7,d0
		move.l		d0,a4
		move.l		32(a1),d0
		fmove		fp2,fp5
		sub.l		24(a1),d0
		divs.l		d7,d0
		fsub		fp1,fp5
		move.l		d0,a5
		fdiv		fp7,fp5
		move.w		8(a1),d0
		sub.w		4(a1),d0
		muls		#256,d0
		divs.l		d7,d0
		fmul		#256,fp5
		ext.l		d0
		move.l		#2,suunta
		bra.w		Loop

oikea:		move.w		8(a1),d2
		ext.l		d7
		sub.w		4(a1),d2
		muls		#256,d2
		divs.l		d7,d2
		move.l		#2,suunta
		bra.w		Loop		
pois:		move.l		(sp)+,d7
		subq.l		#1,d7
		bne.w		slopefill
		rts


		
Loopl:		move.l		d1,tad1
		move.l		d3,tad3
		moveq.l		#0,d6
		add.l		#256,d1
		
		asr.l		#8,d1
		addx.l		d6,d1
		asr.l		#8,d3
		addx.l		d6,d3
		sub.l		d1,d3
		
		bmi.b		poisqw2l
		movem.l		d4/d5/a4,-(sp)

		fmove		fp0,fp3
		move.l		a0,a1
		muls.l		#3,d1
		move.l		allcolorst,a4
		add.l		d1,a1
hepsl:		ror.l		#8,d4
		move.l		d5,d6
		fmove.l		fp3,-(sp)
		move.b		d4,d6
		move.l		(sp)+,d1
		rol.l		#8,d4
		move.b		(a6,d6.l),d1
		add.l		a2,d4
		move.b		(a4,d1.l*4),d6
		add.b		d6,(a1)+
		move.b		1(a4,d1.l*4),d6
		add.b		d6,(a1)+
		move.b		2(a4,d1.l*4),d6
		add.b		d6,(a1)+
		
		move.l		d5,d6
		fadd		fp4,fp3
		add.l		a3,d5
		ror.l		#8,d4
		subq.w		#1,d3
		bmi.b		poisqwl

		fmove.l		fp3,-(sp)
		move.b		d4,d6
		move.l		(sp)+,d1
		rol.l		#8,d4
		move.b		(a6,d6.l),d1
		add.l		a2,d4
		move.b		(a4,d1.l*4),d6
		add.b		d6,(a1)+
		move.b		1(a4,d1.l*4),d6
		add.b		d6,(a1)+
		move.b		2(a4,d1.l*4),d6
		add.b		d6,(a1)+

		fadd		fp4,fp3
		add.l		a3,d5
		subq.w		#1,d3
		bpl.b		hepsl

poisqwl:	movem.l		(sp)+,d4/d5/a4
poisqw2l:
		move.l		tad1,d1
		move.l		tad3,d3
		add.l		d0,d1
		fadd		fp5,fp0
		add.l		d2,d3
		add.l		a4,d4
		add.l		a5,d5
		lea		640(a0),a0
		subq.w		#1,d7
		bne.w		Loopl

sikakyostil:
		cmp.l		#2,suunta
		beq.w		poisl
		lea		r1cordsready,a1
		move.w		10(a1),d7
		sub.w		6(a1),d7
		beq.w		poisl
		tst.l		suunta2
		bne.b		oikeal


vasenl:		move.l		28(a1),d0
		ext.l		d7
		sub.l		20(a1),d0
		divs.l		d7,d0
		move.l		d0,a4

		move.l		32(a1),d0
		sub.l		24(a1),d0
		divs.l		d7,d0
		move.l		d0,a5
		move.w		8(a1),d0
		sub.w		4(a1),d0
		muls		#256,d0
		divs.l		d7,d0

		fmove.w		d7,fp7
		fmove		fp2,fp5
		fsub		fp1,fp5
		fdiv		fp7,fp5
		fmul		#256,fp5
		ext.l		d0
		move.l		#2,suunta
		bra.w		Loopl

oikeal:		move.w		8(a1),d2
		ext.l		d7
		sub.w		4(a1),d2
		muls		#256,d2
		divs.l		d7,d2
		move.l		#2,suunta
		bra.w		Loopl
poisl:		move.l		(sp)+,d7
		subq.l		#1,d7
		bne.w		slopefill
		rts







;--------------------- clipper routines

flippand:
		cmp.l		#buffer+640*150,a0
		bmi.w		cpoisqwv2
		cmp.l		alar2,a0
		bpl.w		cpoisv
		cmp.l		#640*256,d1
		bpl.w		cpoisqwv2

		move.l		d3,tad3 ;vasenreuna aina 0:a
		bmi.w		cpoisqwv2
		move.l		d1,tad1
		asr.l		#8,d1
		asr.l		#8,d3

		cmp.l		#212,d3
		bmi.b		asokos
		move.l		#212,d3
asokos:		sub.l		d1,d3
		bmi.w		cpoisqwv3
		movem.l		d4/d5/a4,-(sp)

		move.l		a0,a1
		move.l		allcolorst,a4
		fmove		fp0,fp3
		tst.l		d1
		bpl.b		aNoNeedToAdjustv

		neg.l		d1

		sub.l		d1,d3
		move.l		a2,d6
		muls.l		d1,d6
		add.l		d6,d4


		move.l		a3,d6
		muls.l		d1,d6
		add.l		d6,d5
		fmove		fp0,-(sp)
		fmove		fp4,fp0
		fmove.l		d1,fp7
		fmul		fp7,fp0
		fadd		fp0,fp3
		fmove		(sp)+,fp0
		bra.b		chepsv
aNoNeedToAdjustv:
		muls.l		#3,d1
		add.l		d1,a1

chepsv:
		move.l		d5,d6
		ror.l		#8,d4
		fmove.l		fp3,-(sp)
		move.b		d4,d6
		move.l		(sp)+,d1
		rol.l		#8,d4
		move.b		(a6,d6.l),d1
		add.l		a2,d4
		move.l		(a4,d1.l*4),(a1)
		move.l		d5,d6
		ror.l		#8,d4
		fadd		fp4,fp3
		move.b		d4,d6
		add.l		a3,d5
		tst.w		d3
		beq.b		cpoisqwv
		fmove.l		fp3,-(sp)
		rol.l		#8,d4
		move.l		(sp)+,d1
		add.l		a2,d4
		move.b		(a6,d6.l),d1
		add.l		a3,d5
		move.l		(a4,d1.l*4),3(a1)
		fadd		fp4,fp3
		addq.w		#6,a1
		subq.w		#2,d3
		bpl.b		chepsv
		
cpoisqwv:	movem.l		(sp)+,d4/d5/a4

cpoisqwv3:	move.l		tad1,d1
		move.l		tad3,d3
cpoisqwv2:
		add.l		d0,d1
		fadd		fp5,fp0
		add.l		d2,d3
		add.l		a4,d4
		add.l		a5,d5

		lea		640(a0),a0
		subq.w		#1,d7
		bne.w		flippand
		cmp.l		#2,suunta
		beq.w		cpoisv
		lea		r1cordsready,a1
		move.w		10(a1),d7
		sub.w		6(a1),d7
		beq.w		cpoisv 
		tst.l		suunta2
		bne.b		coikeav
cvasenv:	move.l		28(a1),d0
		ext.l		d7
		sub.l		20(a1),d0
		divs.l		d7,d0
		move.l		d0,a4
		move.l		32(a1),d0
		sub.l		24(a1),d0
		divs.l		d7,d0
		move.l		d0,a5
		move.w		8(a1),d0
		sub.w		4(a1),d0
		muls		#256,d0
		divs		d7,d0
		fmove.w		d7,fp7
		ext.l		d0
		fmove		fp2,fp5
		fsub		fp1,fp5
		fdiv		fp7,fp5
		fmul		#256,fp5
		move.l		#2,suunta
		bra.w		flippand
coikeav:	move.w		8(a1),d2
		ext.l		d7
		sub.w		4(a1),d2
		muls		#256,d2
		divs.l		d7,d2
		move.l		#2,suunta
		bra.w		flippand
cpoisv:		move.l		(sp)+,d7
		subq.l		#1,d7
		bne.w		slopefill
		rts


aClippandeer:
		move.l		mitenruudulle+4,a1
		jmp		(a1)
		rts
aClippandeerl:
		cmp.l		#buffer+640*150,a0
		bmi.w		cpoisqwv2l
		cmp.l		alar2,a0
		bpl.w		cpoisvl

		cmp.l		#212*256,d1
		bpl.w		cpoisqwv2l
		cmp.l		vasenr3,d3
		bmi.w		cpoisqwv2l

		move.l		d1,tad1
		move.l		d3,tad3
		moveq.l		#0,d6
		add.l		#256,d1
		asr.l		#8,d1
		addx.l		d6,d1
		asr.l		#8,d3
		addx.l		d6,d3

		cmp.l		#212,d3
		bmi.b		asokosl
		move.l		#212,d3
asokosl:	sub.l		d1,d3
		bmi.w		cpoisqwv3l
		movem.l		d4/d5/a4,-(sp)

		move.l		a0,a1
		move.l		allcolorst,a4
		add.l		d1,a1
		add.l		d1,a1
		add.l		d1,a1
		fmove		fp0,fp3
	
		cmp.l		vasenr2,d1
		bpl.b		aNoNeedToAdjustvl

		movem.l		d0,-(sp)
		move.l		vasenr2,d6
		sub.l		d1,d6 
		add.l		d6,a1
		add.l		d6,a1
		add.l		d6,a1
		sub.l		d6,d3
		move.l		a2,d0
		move.l		a3,d1
		muls.l		d6,d0
		muls.l		d6,d1
		add.l		d0,d4
		add.l		d1,d5
		fmove		fp0,-(sp)
		fmove		fp4,fp0
		fmove.l		d6,fp7
		fmul		fp7,fp0
		fadd		fp0,fp3
		fmove		(sp)+,fp0
		move.l		(sp)+,d0


aNoNeedToAdjustvl:
chepsvl:
		move.l		d5,d6
		ror.l		#8,d4
		fmove.l		fp3,-(sp)
		move.b		d4,d6
		move.l		(sp)+,d1
		rol.l		#8,d4
		move.b		(a6,d6.l),d1
		add.l		a2,d4
		move.b		(a4,d1.l*4),d6
		add.b		d6,(a1)+
		move.b		1(a4,d1.l*4),d6
		add.b		d6,(a1)+
		move.b		2(a4,d1.l*4),d6
		add.b		d6,(a1)+

		move.l		d5,d6
		ror.l		#8,d4
		move.b		d4,d6
		fadd		fp4,fp3
		add.l		a3,d5
		subq.w		#1,d3
		bmi.b		cpoisqwvl
		fmove.l		fp3,-(sp)
		rol.l		#8,d4
		move.l		(sp)+,d1
		add.l		a2,d4
		move.b		(a6,d6.l),d1
		add.l		a3,d5
		move.b		(a4,d1.l*4),d6
		add.b		d6,(a1)+
		move.b		1(a4,d1.l*4),d6
		add.b		d6,(a1)+
		move.b		2(a4,d1.l*4),d6
		add.b		d6,(a1)+

		fadd		fp4,fp3
		subq.w		#1,d3
		bpl.b		chepsvl
		
cpoisqwvl:	movem.l		(sp)+,d4/d5/a4

cpoisqwv3l:	move.l		tad1,d1
		move.l		tad3,d3
cpoisqwv2l:
		add.l		d0,d1
		add.l		d2,d3
		add.l		a4,d4
		add.l		a5,d5
		fadd		fp5,fp0

		lea		640(a0),a0
		subq.w		#1,d7
		bne.w		aClippandeerl
		cmp.l		#2,suunta
		beq.w		cpoisvl
		lea		r1cordsready,a1
		move.w		10(a1),d7
		sub.w		6(a1),d7
		beq.w		cpoisvl
		tst.l		suunta2
		bne.b		coikeavl
cvasenvl:	move.l		28(a1),d0
		ext.l		d7
		sub.l		20(a1),d0
		divs.l		d7,d0
		move.l		d0,a4
		move.l		32(a1),d0
		sub.l		24(a1),d0
		divs.l		d7,d0
		move.l		d0,a5
		move.w		8(a1),d0
		sub.w		4(a1),d0
		muls		#256,d0
		divs		d7,d0
		fmove.w		d7,fp7
		ext.l		d0
		fmove		fp2,fp5
		fsub		fp1,fp5
		fdiv		fp7,fp5
		fmul		#256,fp5
		move.l		#2,suunta
		bra.w		aClippandeerl
coikeavl:	move.w		8(a1),d2
		ext.l		d7
		sub.w		4(a1),d2
		muls		#256,d2
		divs.l		d7,d2
		move.l		#2,suunta
		bra.w		aClippandeerl
cpoisvl:	move.l		(sp)+,d7
		subq.l		#1,d7
		bne.w		slopefill
		rts
;-------------------------
;tmapperi fillerit....
tmapfilli:	move.l		a0,a5


		add.w		d0,a3
		move.l		28(a0),a4		
		move.l		20(a0),a0

		lea		r1cordsready,a1
		move.w		(a3),d5
		move.w		2(a3),d6
		move.w		4(a3),d2

		move.w		6(a3),d3
		bne.s		eipol0p
		move.l		#Loopp,mitenruudulle
		move.l		#flippandp,mitenruudulle+4
		bra.b		bitmapvalmisp
eipol0p:	move.l		#Looplp,mitenruudulle
		move.l		#aClippandeerlp,mitenruudulle+4
bitmapvalmisp:

		move.w		4(a0,d5.w*8),d3
		move.w		4(a0,d6.w*8),d0
		move.w		4(a0,d2.w*8),d1


		cmp.w		d0,d3
		bmi.b		yli1p
		exg		d5,d6
		exg		d3,d0
yli1p:		cmp.w		d1,d0
		bmi.b		readyqp
		exg		d6,d2
		exg		d0,d1
		cmp.w		d0,d3
		bmi.b		readyqp
		exg		d5,d6
		exg		d3,d0
readyqp:
		cmp.w		#150,d1
		bmi.w		poislp
		cmp.w		alar1,d3
		bpl.w		poislp

		clr.l		vasclip
		clr.l		oikclip
		clr.l		upclip
		cmp.w		#150,d3
		bpl.b		azeiei1p
		move.l		#1,upclip
azeiei1p:
		cmp.w		alar1,d1
		bmi.b		azeiei2p
		move.l		#1,upclip
azeiei2p:
		
		sub.w		d3,d1
		beq.w		poislp

		move.w		vasenr,d7
		cmp.w		2(a0,d5.w*8),d7
		bmi.b		aeivas1p
		addq.l		#1,vasclip
aeivas1p:	cmp.w		2(a0,d6.w*8),d7
		bmi.b		aeivas2p
		addq.l		#1,vasclip
aeivas2p:	cmp.w		2(a0,d2.w*8),d7
		bmi.b		aeivas3p
		addq.l		#1,vasclip
aeivas3p:	cmp.l		#3,vasclip
		beq.w		poislp

		move.w		oikear,d7
		cmp.w		2(a0,d5.w*8),d7
		bpl.b		aeioik1p
		addq.l		#1,oikclip
aeioik1p:	cmp.w		2(a0,d6.w*8),d7
		bpl.b		aeioik2p
		addq.l		#1,oikclip
aeioik2p:	cmp.w		2(a0,d2.w*8),d7
		bpl.b		aeioik3p
		addq.l		#1,oikclip
aeioik3p:	cmp.l		#3,oikclip
		beq.w		poislp

		move.l		(a2),a6
		move.l		12(a2),allcolorst
		tst.l		4(a2)
		bne.b		onenvimappi2
		move.l		68(a5),a2 ;------------------
		bra.b		eienvimappi2
onenvimappi2:	move.l		24(a5),a2
eienvimappi2:



		move.w		d0,d4
		move.l		2(a0,d5.w*8),(a1)
		move.w		d0,d7	
		move.l		(a2,d5.w*8),12(a1)
		sub.w		d3,d4
		move.l		4(a2,d5.w*8),16(a1)
		ext.l		d4
		move.l		2(a0,d6.w*8),4(a1)
		asl.l		#8,d4
		move.l		(a2,d6.w*8),20(a1)
		divs		d1,d4 ;temp		
		move.l		4(a2,d6.w*8),24(a1)
		ext.l		d4
		move.l		2(a0,d2.w*8),8(a1)
		move.l		(a2,d2.w*8),28(a1)
		move.l		4(a2,d2.w*8),32(a1)


		move.w		(a1),d2
		move.l		d4,d0
		sub.w		4(a1),d2
		ext.l		d2		
		move.w		8(a1),d1
		asl.l		#8,d2
		sub.w		(a1),d1
		ext.l		d1
		muls.l		d1,d0
		add.l		d2,d0
		beq.w		poislp
		move.l		d0,leveys		

		move.l		28(a1),d1
		sub.l		12(a1),d1
		muls.l		d4,d1
		move.l		12(a1),d2
		sub.l		20(a1),d2
		asl.l		#8,d2
		add.l		d2,d1
		divs.l		d0,d1
		move.l		d1,a2
		move.l		32(a1),d1
		sub.l		16(a1),d1
		muls.l		d4,d1
		move.l		16(a1),d2
		sub.l		24(a1),d2
		asl.l		#8,d2
		add.l		d2,d1
		divs.l		d0,d1
		move.w		4(a1),d2
		move.l		d1,a3
		move.l		#2,suunta
		cmp.w		10(a1),d7
		bne.s		eisamat2p

		cmp.w		8(a1),d2
		bmi.w		vasenpuolip

		move.l		4(a1),d1
		move.l		8(a1),4(a1)
		move.l		d1,8(a1)
		move.l		28(a1),d0
		move.l		20(a1),28(a1)
		move.l		d0,20(a1)
		move.l		32(a1),d0
		move.l		24(a1),32(a1)
		move.l		d0,24(a1)
		bra.w		vasenpuoli2p

eisamat2p:	cmp.w		2(a1),d7
		bne.w		eisamatp
		move.w		(a1),d0
		cmp.w		4(a1),d0
		bmi.b		zokoksp
		move.l		20(a1),d1
		move.l		12(a1),20(a1)
		move.l		d1,12(a1)
		move.l		24(a1),d1
		move.l		16(a1),24(a1)
		move.l		d1,16(a1)
		move.l		(a1),d1
		move.l		4(a1),(a1)
		move.l		d1,4(a1)

zokoksp:		move.w		8(a1),d0
		move.w		10(a1),d7
		move.w		d0,d2
		sub.w		2(a1),d7
		sub.w		(a1),d0
		sub.w		4(a1),d2
		muls		#256,d0
		muls		#256,d2
		ext.l		d7
		move.w		2(a1),d4
		divs.l		d7,d0 ;xstep1
		move.w		4(a1),d3
		divs.l		d7,d2 ;xstep2, ystep on aina 1...
		move.w		(a1),d1 
		muls		#640,d4
		lea		buffer,a0
		muls		#256,d1 ;alkux1
		add.l		d4,a0
		muls		#256,d3

		move.l		28(a1),d4
		move.l		32(a1),d5
		sub.l		12(a1),d4
		sub.l		16(a1),d5
		divs.l		d7,d4
		divs.l		d7,d5
		move.l		d4,a4
		move.l		12(a1),d4
		move.l		d5,a5
		move.l		16(a1),d5
		bra.w		Loopap
eisamatp:	clr.l		suunta
		move.l		leveys,d0
		bpl.b		vasenpuolip
oikeapuolip:	move.l		#1,suunta2
oikeapuoli2p:	move.w		8(a1),d0
		move.w		10(a1),d1
		move.w		4(a1),d2
		move.w		6(a1),d3
		move.l		28(a1),d4
		move.l		32(a1),d5
		sub.w		0(a1),d0  ;-ylin x,y
		sub.w		0(a1),d2
		sub.w		2(a1),d3
		sub.w		2(a1),d1


		move.l		d3,d6
		move.l		d1,d7
		cmp.w		d1,d3
		bpl.b		atqip
		move.w		d3,d7
		move.w		d1,d6
atqip:		sub.l		12(a1),d4
		ext.l		d6
		sub.l		16(a1),d5
		divs.l		d6,d4
		divs.l		d6,d5
		bra.b		sopx2p


vasenpuolip:	move.l		#0,suunta2
vasenpuoli2p:	move.w		4(a1),d0
		move.w		6(a1),d1
		move.w		8(a1),d2
		move.w		10(a1),d3
		move.l		20(a1),d4
		move.l		24(a1),d5
		sub.w		0(a1),d0  ;-ylin x,y
		sub.w		0(a1),d2
		sub.w		2(a1),d1
		sub.w		2(a1),d3


		move.w		d1,d7
		cmp.w		d1,d3
		bpl.b		sopxp
		move.w		d3,d7
sopxp:		sub.l		12(a1),d4
		ext.l		d7
		sub.l		16(a1),d5
		divs.l		d7,d4
		divs.l		d7,d5
sopx2p:

		move.l		d4,a4
		ext.l		d0
		move.l		d5,a5	
		ext.l		d2
		move.l		12(a1),d4
		asl.l		#8,d0
		move.l		16(a1),d5
		ext.l		d1
		asl.l		#8,d2
		ext.l		d3
		divs.l		d1,d0
		divs.l		d3,d2   
aeivoip:
		move.w		(a1),d1 
		move.w		2(a1),d6
		ext.l		d1
		muls		#640,d6
		lea		buffer,a0
		asl.l		#8,d1
		add.l		d6,a0
		move.l		d1,d3

Loopap:
		tst.l		vasclip
		bne.w		aClippandeerp
		tst.l		oikclip
		bne.w		aClippandeerp
		tst.l		upclip
		bne.w		aClippandeerp

		move.l		mitenruudulle,a1
		jmp		(a1)
		rts

Loopp:		move.l		d1,tad1
		move.l		d3,tad3
		asr.l		#8,d1
		asr.l		#8,d3
		sub.l		d1,d3

		bmi.b		poisqw2p
		movem.l		d4/d5,-(sp)

		move.l		a0,a1
		muls.l		#3,d1
		add.l		d1,a1

hepsp:		ror.l		#8,d4
		move.l		d5,d6
		addq.w		#6,a1
		move.b		d4,d6
		rol.l		#8,d4
		move.l		(a6,d6.l*4),-6(a1)
		add.l		a2,d4
		move.l		d5,d6
		add.l		a3,d5
		ror.l		#8,d4
		tst.w		d3
		beq.b		poisqwp
		move.b		d4,d6
		add.l		a3,d5
		rol.l		#8,d4
		move.l		(a6,d6.l*4),-3(a1)
		add.l		a2,d4
		subq.w		#2,d3
		bpl.b		hepsp

poisqwp:	movem.l		(sp)+,d4/d5
poisqw2p:
		move.l		tad1,d1
		add.l		a4,d4
		add.l		d0,d1
		move.l		tad3,d3
		add.l		a5,d5
		add.l		d2,d3
		lea		640(a0),a0
		subq.w		#1,d7
		bne.b		Loopp

sikakyostip:
		cmp.l		#2,suunta
		beq.b		poisp
		lea		r1cordsready,a1
		move.w		10(a1),d7
		sub.w		6(a1),d7
		beq.b		poisp
		tst.l		suunta2
		bne.b		oikeap


vasenp:		move.l		28(a1),d0
		ext.l		d7
		sub.l		20(a1),d0
		divs.l		d7,d0
		move.l		d0,a4

		move.l		32(a1),d0
		sub.l		24(a1),d0
		divs.l		d7,d0
		move.l		d0,a5
		move.w		8(a1),d0
		sub.w		4(a1),d0
		muls		#256,d0
		divs.l		d7,d0

		ext.l		d0
		move.l		#2,suunta
		bra.w		Loopp

oikeap:		move.w		8(a1),d2
		ext.l		d7
		sub.w		4(a1),d2
		muls		#256,d2
		divs.l		d7,d2
		move.l		#2,suunta
		bra.w		Loopp
poisp:		move.l		(sp)+,d7
		subq.l		#1,d7
		bne.w		slopefill
		rts


		
Looplp:		move.l		d1,tad1
		move.l		d3,tad3
		moveq.l		#0,d6
		add.l		#256,d1
		
		asr.l		#8,d1
		addx.l		d6,d1
		asr.l		#8,d3
		addx.l		d6,d3
		sub.l		d1,d3
		
		bmi.b		poisqw2lp
		movem.l		d4/d5,-(sp)

		move.l		a0,a1
		muls.l		#3,d1
		add.l		d1,a1
hepslp:		ror.l		#8,d4
		move.l		d5,d6
		move.b		d4,d6
		rol.l		#8,d4
		add.l		a2,d4
		move.b		(a6,d6.l*4),d1
		add.b		d1,(a1)+
		move.b		1(a6,d6.l*4),d1
		add.b		d1,(a1)+
		move.b		2(a6,d6.l*4),d1
		add.b		d1,(a1)+
		
		move.l		d5,d6
		add.l		a3,d5
		ror.l		#8,d4
		subq.w		#1,d3
		bmi.b		poisqwlp

		move.b		d4,d6
		rol.l		#8,d4
		add.l		a2,d4
		move.b		(a6,d6.l*4),d1
		add.b		d1,(a1)+
		move.b		1(a6,d6.l*4),d1
		add.b		d1,(a1)+
		move.b		2(a6,d6.l*4),d1
		add.b		d1,(a1)+

		add.l		a3,d5
		subq.w		#1,d3
		bpl.b		hepslp

poisqwlp:	movem.l		(sp)+,d4/d5
poisqw2lp:
		move.l		tad1,d1
		move.l		tad3,d3
		add.l		d0,d1
		add.l		d2,d3
		add.l		a4,d4
		add.l		a5,d5
		lea		640(a0),a0
		subq.w		#1,d7
		bne.w		Looplp

sikakyostilp:
		cmp.l		#2,suunta
		beq.b		poislp
		lea		r1cordsready,a1
		move.w		10(a1),d7
		sub.w		6(a1),d7
		beq.b		poislp
		tst.l		suunta2
		bne.b		oikealp


vasenlp:		move.l		28(a1),d0
		ext.l		d7
		sub.l		20(a1),d0
		divs.l		d7,d0
		move.l		d0,a4

		move.l		32(a1),d0
		sub.l		24(a1),d0
		divs.l		d7,d0
		move.l		d0,a5
		move.w		8(a1),d0
		sub.w		4(a1),d0
		muls		#256,d0
		divs.l		d7,d0

		ext.l		d0
		move.l		#2,suunta
		bra.w		Looplp

oikealp:		move.w		8(a1),d2
		ext.l		d7
		sub.w		4(a1),d2
		muls		#256,d2
		divs.l		d7,d2
		move.l		#2,suunta
		bra.w		Looplp
poislp:		move.l		(sp)+,d7
		subq.l		#1,d7
		bne.w		slopefill
		rts







;--------------------- clipper routines

flippandp:	cmp.l		#buffer+640*150,a0
		bpl.b		flippandp2
		add.l		d0,d1
		add.l		d2,d3
		add.l		a4,d4
		add.l		a5,d5
		lea		640(a0),a0
		subq.w		#1,d7
		bne.b		flippandp
		bra.w		Jahas

flippandp2:	cmp.l		alar2,a0
		bpl.w		cpoisvp
		cmp.l		#640*256,d1
		bpl.w		cpoisqwv2p
		move.l		d3,tad3
		bmi.w		cpoisqwv2p
		move.l		d1,tad1
		asr.l		#8,d1
		asr.l		#8,d3

		cmp.l		#212,d3
		bmi.b		asokosp
		move.l		#212,d3
asokosp:	sub.l		d1,d3
		bmi.b		cpoisqwv3p
		move.l		a0,a1
		movem.l		d4/d5,-(sp)
	
		tst.l		d1
		bpl.b		aNoNeedToAdjustvp
		move.l		a2,d6
		neg.l		d1
		sub.l		d1,d3
		muls.l		d1,d6
		add.l		d6,d4
		move.l		a3,d6
		muls.l		d1,d6
		add.l		d6,d5
		bra.b		chepsvp

aNoNeedToAdjustvp:
		muls.l		#3,d1
		add.l		d1,a1

chepsvp:
		ror.l		#8,d4
		move.l		d5,d6
		move.b		d4,d6
		move.l		(a6,d6.l*4),(a1)
		rol.l		#8,d4
		move.l		d5,d6
		add.l		a2,d4
		ror.l		#8,d4
		add.l		a3,d5
		move.b		d4,d6
		tst.w		d3
		beq.b		cpoisqwvp
		rol.l		#8,d4
		move.l		(a6,d6.l*4),3(a1)
		add.l		a2,d4
		add.l		a3,d5
		addq.w		#6,a1
		subq.w		#2,d3
		bpl.b		chepsvp
		
cpoisqwvp:	movem.l		(sp)+,d4/d5

cpoisqwv3p:	move.l		tad1,d1
		move.l		tad3,d3
cpoisqwv2p:
		add.l		d0,d1
		add.l		d2,d3
		add.l		a4,d4
		add.l		a5,d5
		lea		640(a0),a0
		subq.w		#1,d7
		bne.w		flippandp2
Jahas:		cmp.l		#2,suunta
		beq.b		cpoisvp
		lea		r1cordsready,a1
		move.w		10(a1),d7
		sub.w		6(a1),d7
		beq.b		cpoisvp
		tst.l		suunta2
		bne.b		coikeavp
cvasenvp:	move.l		28(a1),d0
		ext.l		d7
		sub.l		20(a1),d0
		divs.l		d7,d0
		move.l		d0,a4
		move.l		32(a1),d0
		sub.l		24(a1),d0
		divs.l		d7,d0
		move.l		d0,a5
		move.w		8(a1),d0
		sub.w		4(a1),d0
		muls		#256,d0
		divs		d7,d0
		ext.l		d0
		move.l		#2,suunta
		bra.w		flippandp
coikeavp:	move.w		8(a1),d2
		ext.l		d7
		sub.w		4(a1),d2
		muls		#256,d2
		divs.l		d7,d2
		move.l		#2,suunta
		bra.w		flippandp
cpoisvp:		move.l		(sp)+,d7
		subq.l		#1,d7
		bne.w		slopefill
		rts


aClippandeerp:
		move.l		mitenruudulle+4,a1
		jmp		(a1)
		rts
aClippandeerlp:
		cmp.l		#buffer+640*150,a0
		bmi.w		cpoisqwv2lp
		cmp.l		alar2,a0
		bpl.w		cpoisvlp

		cmp.l		#212*256,d1
		bpl.w		cpoisqwv2lp
		cmp.l		vasenr3,d3
		bmi.w		cpoisqwv2lp

		move.l		d1,tad1
		move.l		d3,tad3
		moveq.l		#0,d6
		add.l		#256,d1
		asr.l		#8,d1
		addx.l		d6,d1
		asr.l		#8,d3
		addx.l		d6,d3

		cmp.l		#212,d3
		bmi.b		asokoslp
		move.l		#212,d3
asokoslp:	sub.l		d1,d3
		bmi.w		cpoisqwv3lp
		movem.l		d4/d5,-(sp)

		move.l		a0,a1
		add.l		d1,a1
		add.l		d1,a1
		add.l		d1,a1
	
		cmp.l		vasenr2,d1
		bpl.b		aNoNeedToAdjustvlp

		movem.l		d0,-(sp)
		move.l		vasenr2,d6
		sub.l		d1,d6 
		add.l		d6,a1
		add.l		d6,a1
		add.l		d6,a1
		sub.l		d6,d3
		move.l		a2,d0
		move.l		a3,d1
		muls.l		d6,d0
		muls.l		d6,d1
		add.l		d0,d4
		add.l		d1,d5
		move.l		(sp)+,d0


aNoNeedToAdjustvlp:
chepsvlp:
		move.l		d5,d6
		ror.l		#8,d4
		move.b		d4,d6
		rol.l		#8,d4
		add.l		a2,d4
		move.b		(a6,d6.l*4),d1
		add.b		d1,(a1)+
		move.b		1(a6,d6.l*4),d1
		add.b		d1,(a1)+
		move.b		2(a6,d6.l*4),d1
		add.b		d1,(a1)+

		move.l		d5,d6
		ror.l		#8,d4
		move.b		d4,d6
		add.l		a3,d5
		subq.w		#1,d3
		bmi.b		cpoisqwvlp
		rol.l		#8,d4
		add.l		a2,d4
		add.l		a3,d5
		move.b		(a6,d6.l*4),d1
		add.b		d1,(a1)+
		move.b		1(a6,d6.l*4),d1
		add.b		d1,(a1)+
		move.b		2(a6,d6.l*4),d1
		add.b		d1,(a1)+

		subq.w		#1,d3
		bpl.b		chepsvlp
		
cpoisqwvlp:	movem.l		(sp)+,d4/d5

cpoisqwv3lp:	move.l		tad1,d1
		move.l		tad3,d3
cpoisqwv2lp:
		add.l		d0,d1
		add.l		d2,d3
		add.l		a4,d4
		add.l		a5,d5

		lea		640(a0),a0
		subq.w		#1,d7
		bne.w		aClippandeerlp
		cmp.l		#2,suunta
		beq.b		cpoisvlp
		lea		r1cordsready,a1
		move.w		10(a1),d7
		sub.w		6(a1),d7
		beq.b		cpoisvlp
		tst.l		suunta2
		bne.b		coikeavlp
cvasenvlp:	move.l		28(a1),d0
		ext.l		d7
		sub.l		20(a1),d0
		divs.l		d7,d0
		move.l		d0,a4
		move.l		32(a1),d0
		sub.l		24(a1),d0
		divs.l		d7,d0
		move.l		d0,a5
		move.w		8(a1),d0
		sub.w		4(a1),d0
		muls		#256,d0
		divs		d7,d0
		ext.l		d0
		move.l		#2,suunta
		bra.w		aClippandeerlp
coikeavlp:	move.w		8(a1),d2
		ext.l		d7
		sub.w		4(a1),d2
		muls		#256,d2
		divs.l		d7,d2
		move.l		#2,suunta
		bra.w		aClippandeerlp
cpoisvlp:	move.l		(sp)+,d7
		subq.l		#1,d7
		bne.w		slopefill
		rts


;----------------------filleri2
;tslopefill:	movem.l		d7,-(sp)
;		move.l		r1tasotnt,a0
;		addq.l		#2,r1tasotnt
;		move.l		r1yhty,a3
;		move.w		4(a0),d0
;		move.w		(a0),d0
;		lsl.w		#3,d0
;		add.w		d0,a3
;		lea		r1allcords,a0
;		lea		r1mapcordsr,a2
;		lea		r1cordsready,a1
;		move.w		(a3),d5
;		move.w		2(a3),d6
;		move.w		4(a3),d2
;
;		tst.w		2(a0,d5.w*8)
;		bmi.w		tpois
;		tst.w		2(a0,d6.w*8)
;		bmi.w		tpois
;		tst.w		2(a0,d2.w*8)
;		bmi.w		tpois
;
;		move.w		4(a0,d5.w*8),d3
;		move.w		4(a0,d6.w*8),d0
;		move.w		4(a0,d2.w*8),d1
;
;		cmp.w		d0,d3
;		bmi.b		tyli1
;		exg		d3,d0
;		exg		d5,d6
;tyli1:		cmp.w		d1,d0
;		bmi.b		tready
;		exg		d0,d1
;		exg		d6,d2
;		cmp.w		d0,d3
;		bmi.b		tready
;		exg		d3,d0
;		exg		d5,d6
;tready:
;		cmp.w		#150,d1
;		bmi.w		tpois
;		cmp.w		#250,d3
;		bhi.w		tpois
;
;		move.l		#0,vasclip
;;		move.l		#0,vaskclip
;;		move.l		#0,clip
;
;		cmp.w		#150,d3
;		bhi.b		zeiei1
;		move.l		#1,vasclip
;zeiei1:
;		cmp.w		#250,d1
;		bmi.b		zeiei2
;		move.l		#1,vasclip
;zeiei2:
;		
;
;		sub.w		d3,d1
;		beq.w		tpois
;
;		ext.l		d1
;		move.l		2(a0,d5.w*8),(a1)
;		move.w		d0,d7	
;		move.l		(a2,d5.w*8),12(a1)
;		sub.w		d3,d0
;		move.l		4(a2,d5.w*8),16(a1)
;		move.l		2(a0,d6.w*8),4(a1)
;		muls		#256,d0
;		move.l		(a2,d6.w*8),20(a1)
;		divs.l		d1,d0 ;temp		
;		move.l		4(a2,d6.w*8),24(a1)
;		move.l		2(a0,d2.w*8),8(a1)
;		move.l		d0,temp
;		move.l		(a2,d2.w*8),28(a1)
;		move.l		4(a2,d2.w*8),32(a1)
;
;		cmp.w		#100,(a1)
;		bhi.b		eivas1
;		move.l		#1,vasclip
;eivas1:		cmp.w		#100,4(a1)
;		bhi.b		eivas2
;		move.l		#1,vasclip
;eivas2:		cmp.w		#100,8(a1)
;		bhi.b		eivas3
;		move.l		#1,vasclip
;
;eivas3:
;		cmp.w		#360,(a1)
;		bmi.b		eioik1
;		move.l		#1,vasclip
;eioik1:
;		cmp.w		#360,4(a1)
;		bmi.b		eioik2
;		move.l		#1,vasclip
;eioik2:
;		cmp.w		#360,8(a1)
;		bmi.b		eioik3
;		move.l		#1,vasclip
;eioik3:
;
;
;		move.w		8(a1),d1
;		sub.w		(a1),d1
;		move.w		(a1),d2
;		ext.l		d1
;		sub.w		4(a1),d2
;		muls.l		d1,d0
;		muls		#256,d2
;		add.l		d2,d0
;		beq.w		tpois
;		move.l		d0,leveys		
;
;		move.l		28(a1),d1
;		sub.l		12(a1),d1
;		muls.l		temp,d1
;		move.l		12(a1),d2
;		sub.l		20(a1),d2
;		asl.l		#8,d2
;		add.l		d2,d1
;		divs.l		d0,d1
;		move.l		d1,a2
;		move.l		32(a1),d1
;		sub.l		16(a1),d1
;		muls.l		temp,d1
;		move.l		16(a1),d2
;		sub.l		24(a1),d2
;		asl.l		#8,d2
;		add.l		d2,d1
;		divs.l		d0,d1
;		move.l		d1,a3
;		move.l		#2,suunta
;		cmp.w		10(a1),d7
;		bne.s		teisamat2
;
;
;		move.w		4(a1),d0
;		cmp.w		8(a1),d0
;		bmi.w		tvasenpuoli
;		move.l		4(a1),d1
;		move.l		8(a1),4(a1)
;		move.l		d1,8(a1)
;		move.l		28(a1),d0
;		move.l		20(a1),28(a1)
;		move.l		d0,20(a1)
;		move.l		32(a1),d0
;		move.l		24(a1),32(a1)
;		move.l		d0,24(a1)
;		bra.w		tvasenpuoli2
;
;teisamat2:	cmp.w		2(a1),d7
;		bne.w		teisamat
;		move.w		(a1),d0
;		cmp.w		4(a1),d0
;		bmi.b		tzokoks
;		move.l		20(a1),d1
;		move.l		12(a1),20(a1)
;		move.l		d1,12(a1)
;		move.l		24(a1),d1
;		move.l		16(a1),24(a1)
;		move.l		d1,16(a1)
;		move.l		(a1),d1
;		move.l		4(a1),(a1)
;		move.l		d1,4(a1)
;tzokoks:	move.w		8(a1),d0
;		move.w		10(a1),d7
;		move.w		d0,d2
;		sub.w		2(a1),d7
;		beq.w		tpois
;		sub.w		(a1),d0
;		sub.w		4(a1),d2
;		muls		#256,d0
;		muls		#256,d2
;		move.w		2(a1),d4
;		divs		d7,d0 ;xstep1
;		move.w		4(a1),d3
;		divs		d7,d2 ;xstep2, ystep on aina 1...
;		move.w		(a1),d1 
;		muls		#360,d4
;		lea		buffer,a0
;		muls		#256,d1 ;alkux1
;		asl.l		#2,d4
;		add.l		d4,a0
;		muls		#256,d3
;
;		move.l		28(a1),d4
;		move.l		32(a1),d5
;		sub.l		12(a1),d4
;		sub.l		16(a1),d5
;		divs		d7,d4
;		divs		d7,d5
;		move.w		d4,a4
;		move.w		d5,a5
;		move.l		12(a1),d4
;		move.l		16(a1),d5
;		ext.l		d0
;		ext.l		d2
;		bra.w		tLoopa
;teisamat:	clr.l		suunta
;		move.l		leveys,d0
;		bpl.b		tvasenpuoli
;toikeapuoli:	move.l		#1,suunta2
;toikeapuoli2:	move.w		8(a1),d0
;		move.w		10(a1),d1
;		move.w		4(a1),d2
;		move.w		6(a1),d3
;		move.l		28(a1),d4
;		move.l		32(a1),d5
;		sub.w		0(a1),d0  ;-ylin x,y
;		sub.w		0(a1),d2
;		sub.w		2(a1),d1
;		sub.w		2(a1),d3
;		move.w		d1,d7
;		move.w		d3,d6
;		cmp.w		d1,d3
;		bhi.b		tqi
;		move.w		d3,d7
;		move.w		d1,d6
;tqi:		sub.l		12(a1),d4
;		sub.l		16(a1),d5
;		divs		d6,d4
;		divs		d6,d5
;		bra.b		tsopx2
;
;tvasenpuoli:	move.l		#0,suunta2
;tvasenpuoli2:	move.w		4(a1),d0
;		move.w		6(a1),d1
;		move.w		8(a1),d2
;		move.w		10(a1),d3
;		move.l		20(a1),d4
;		move.l		24(a1),d5
;		sub.w		0(a1),d0  ;-ylin x,y
;		sub.w		0(a1),d2
;		sub.w		2(a1),d1
;		sub.w		2(a1),d3
;		move.w		d1,d7
;		cmp.w		d1,d3
;		bhi.b		tsopx
;		move.w		d3,d7
;tsopx:		sub.l		12(a1),d4
;		sub.l		16(a1),d5
;		divs		d7,d4
;		divs		d7,d5
;tsopx2:		move.w		d4,a4
;		move.w		d5,a5	
;		move.l		12(a1),d4
;		move.l		16(a1),d5
;
;		muls		#256,d0
;		muls		#256,d2
;
;		ext.l		d1
;		divs.l		d1,d0
;		ext.l		d3
;
;		divs.l		d3,d2   
;		move.l		d2,d1
;
;		
;eivoi:		move.w		2(a1),d1
;		muls		#360,d1
;		lea		buffer,a0
;		asl.l		#2,d1
;		add.l		d1,a0
;
;		move.w		(a1),d1 
;
;		
;
;		muls		#256,d1 ;alkux1
;
;		move.l		d1,d3
;
;tLoopa:		tst.l		vasclip
;		bne.w		Clippandeer
;;		tst.l		oikclip
;;		bne.w		Clippandeer
;;		tst.l		upclip
;;		bne.w		Clippandeer
;
;tLoop:		movem.l		d1/d3-d5,-(sp)
;		lsr.l		#8,d1
;		lsr.l		#8,d3
;		sub.l		d1,d3
;		bmi.b		tpoisqw
;		move.l		a0,a1
;		asl.l		#2,d1
;		add.l		d1,a1
;		
;theps:		move.l		d4,d1
;		lsr.l		#8,d1
;		move.l		d5,d6
;		move.b		d1,d6
;		move.l		(a6,d6.l*4),(a1)+
;		add.l		a2,d4
;		add.l		a3,d5
;		dbf		d3,theps
;tpoisqw:	movem.l		(sp)+,d1/d3-d5
;		add.l		d0,d1
;		add.l		d2,d3
;		add.l		a4,d4
;		add.l		a5,d5
;		lea		360*4(a0),a0
;		subq.w		#1,d7
;		bne.s		tLoop
;
;		cmp.l		#2,suunta
;		beq.b		tpois
;		lea		r1cordsready,a1
;		move.w		10(a1),d7
;		sub.w		6(a1),d7
;		beq.b		tpois 
;		tst.l		suunta2
;		bne.b		toikea
;
;
;tvasen:		move.l		28(a1),d0
;		sub.l		20(a1),d0
;		divs		d7,d0
;		move.w		d0,a4
;		move.l		32(a1),d0
;		sub.l		24(a1),d0
;		divs		d7,d0
;		ext.l		d0
;		move.l		d0,a5
;		move.w		8(a1),d0
;		sub.w		4(a1),d0
;		muls		#256,d0
;		divs		d7,d0
;		ext.l		d0
;		move.l		#2,suunta
;		bra.w		tLoop
;
;toikea:		move.w		8(a1),d2
;		sub.w		4(a1),d2
;		muls		#256,d2
;		divs		d7,d2
;		ext.l		d2
;		move.l		#2,suunta
;		bra.w		tLoop		
;tpois:		move.l		(sp)+,d7
;		dbf		d7,tslopefill
;		rts
;
;
;
;
;
;
;
;;--------------------- clipper routines
;
;
;Clippandeer:
;		cmp.l		#buffer+360*4*150,a0
;		bmi.w		tcpoisqwv2
;		cmp.l		#buffer+360*4*250,a0
;		bpl.w		tcpoisv
;		cmp.l		#359*256,d1
;		bpl.b		tcpoisqwv2
;		cmp.l		#101*256,d3
;		bmi.b		tcpoisqwv2
;
;		movem.l		d1/d3-d5,-(sp)
;		lsr.l		#8,d1
;		lsr.l		#8,d3
;		cmp.l		#360,d3
;		bmi.b		sokos
;		move.l		#360,d3
;sokos:		sub.l		d1,d3
;		bmi.b		tcpoisqwv
;		move.l		a0,a1
;		asl.l		#2,d1
;		add.l		d1,a1
;	
;		cmp.l		#100*4,d1
;		bhi.b		NoNeedToAdjustv
;
;		movem.l		d0,-(sp)
;		asr.l		#2,d1
;		move.l		#100,d6
;		sub.l		d1,d6 
;		add.l		d6,a1
;		sub.w		d6,d3
;		move.l		a2,d0
;		move.l		a3,d1
;		muls.l		d6,d0
;		muls.l		d6,d1
;		add.l		d0,d4
;		add.l		d1,d5
;
;		move.l		(sp)+,d0
;
;NoNeedToAdjustv:
;
;tchepsv:	move.l		d4,d1
;		lsr.l		#8,d1
;		move.l		d5,d6
;		move.b		d1,d6
;		move.l		(a6,d6.l*4),(a1)+
;		add.l		a2,d4
;		add.l		a3,d5
;		dbf		d3,tchepsv
;tcpoisqwv:	movem.l		(sp)+,d1/d3-d5
;tcpoisqwv2:
;		add.l		d0,d1
;		add.l		d2,d3
;		add.l		a4,d4
;		add.l		a5,d5
;		lea		360*4(a0),a0
;		subq.w		#1,d7
;		bne.w		Clippandeer
;		cmp.l		#2,suunta
;		beq.b		tcpoisv
;		lea		r1cordsready,a1
;		move.w		10(a1),d7
;		sub.w		6(a1),d7
;		beq.b		tcpoisv 
;		tst.l		suunta2
;		bne.b		tcoikeav
;tcvasenv:	move.l		28(a1),d0
;		sub.l		20(a1),d0
;		divs		d7,d0
;		move.w		d0,a4
;		move.l		32(a1),d0
;		sub.l		24(a1),d0
;		divs		d7,d0
;		ext.l		d0
;		move.l		d0,a5
;		move.w		8(a1),d0
;		sub.w		4(a1),d0
;		muls		#256,d0
;		divs		d7,d0
;		ext.l		d0
;		move.l		#2,suunta
;		bra.w		Clippandeer
;tcoikeav:	move.w		8(a1),d2
;		sub.w		4(a1),d2
;		muls		#256,d2
;		divs		d7,d2
;		ext.l		d2
;		move.l		#2,suunta
;		bra.w		Clippandeer
;tcpoisv:	move.l		(sp)+,d7
;		dbf		d7,tslopefill
;		rts

spline:		
		fmove		#1.0/256.0,fp7
		lea		m1,a0
		lea		m2,a1
		lea		m3,a2
		lea		m4,a3
		fmove.l		(a0,d6.l*4),fp3
		fmove.l		(a1,d6.l*4),fp4
		fmove.l		(a2,d6.l*4),fp5
		fmove.l		(a3,d6.l*4),fp6

		move.l		(a5),a0
		move.l		4(a5),a1
		move.l		8(a5),a2
		move.l		12(a5),a3

mopilupi:	fmove.l		(a0)+,fp0
		fmove.l		(a1)+,fp1
		fmove.l		(a2)+,fp2		
		fmul		fp3,fp0
		fmul		fp4,fp1
		fmul		fp5,fp2
		fadd		fp2,fp1
		fadd		fp1,fp0
		fmove.l		(a3)+,fp1
		fmul		fp6,fp1
		fadd		fp1,fp0
		fmul		fp7,fp0
		fmove.l		fp0,(a6)+
		dbf		d7,mopilupi
		rts



r3intti:	movem.l		d0-d7/a0-a6,-(sp)		
		add.l		#1,timer3
		move.l		time2,a0

		cmp.l		#4880+50-1370,(a0)
		bmi.s		eioo
		lea		SPRITEDATA1,a1
		move.b		#$80,(a1)
		move.l		#SPRITEDATA1,d0
eioo:		

		cmp.l		#4880+50-720,(a0)
		bmi.s		eioo2
		lea		SPRITEDATA2,a1
		move.b		#$80,(a1)
		move.l		#SPRITEDATA2,d0
eioo2:		

		move.l		d0,spritte
		cmp.l		#4880+50-150,(a0)
		bmi		nohnoh
		move.l		#0,spritte
nohnoh:
;		move.w		d0,SLO
;		swap		d0
;		move.w		d0,SHI				

		tst.l		hippi
		beq		poisq
		addq.l		#1,timer
		jsr		splinemovecam

		add.l		#5,morffiuusi 
		cmp.l		#256,morffiuusi
		blt.b		eiei
		sub.l		#256,morffiuusi
		add.l		#1,lisaq
eiei:						
		add.l		#4,lisaq2
		cmp.l		#256,lisaq2
		blt.b		dei2562
		sub.l		#256,lisaq2
		addq.l		#1,lisaq3
dei2562:

;		jsr		Key

poisq:		movem.l		(sp)+,d0-d7/a0-a6
		rts

Key:		move.b		$bfec01,d0
		not.b		d0
		ror.b		#1,d0
		tst.b		d0
		beq.b		Exut
		bsr.w		optiot
		bsr.b		liiku
Exut:		rts

liiku:		move.b		$bfec01,d0
		not.b		d0
		ror.b		#1,d0
		tst.b		d0
		beq.w		ex5
		tst.l		Rottamode
		bne.s		rottakappale
		lea		camplace,a0
		bra.b		eiro
rottakappale:   lea  		ky2-12,a0
eiro:		cmp.b		#$4c,d0
		bne.b		e1
		add.l		#1500,16(a0)
		bra.w		ex5
e1:		cmp.b		#$4d,d0
		bne.s		e2
		sub.l		#1500,16(a0)
		bra.w		ex5
e2:
		cmp.b		#$4f,d0
		bne.s		e3
		add.l		#1500,12(a0)
		bra.b		e4
e3:		cmp.b		#$4e,d0
		bne.s		e4
		sub.l		#1500,12(a0)
e4:

		cmp.b		#$5a,d0
		bne.s		ee3
		add.l		#1500,20(a0)
		bra.b		ee4
ee3:		cmp.b		#$5b,d0
		bne.s		ee4
		sub.l		#1500,20(a0)
ee4:


		cmp.b		#$44,d0
		bne.s		e5
		lea		suunnat2,a2
		lea		speed,a3
		move.l		(a2),d1
		add.l		d1,(a3)
		move.l		12(a2),d1
		add.l		d1,4(a3)
		move.l		24(a2),d1
		add.l		d1,8(a3)
		bra.w		ex5
		
e5:		cmp.b		#$61,d0
		bne.s		e6
		lea		suunnat2,a2
		lea		speed,a3
		move.l		(a2),d1
		sub.l		d1,(a3)
		move.l		12(a2),d1
		sub.l		d1,4(a3)
		move.l		24(a2),d1
		sub.l		d1,8(a3)
		bra.w		ex5
e6:
		cmp.b		#$1e,d0
		bne.s		e7
		lea		suunnat2+4,a2
		lea		speed,a3
		move.l		(a2),d1
		add.l		d1,(a3)
		move.l		12(a2),d1
		add.l		d1,4(a3)
		move.l		24(a2),d1
		add.l		d1,8(a3)
		bra.w		ex5
e7:
		cmp.b		#$3e,d0
		bne.s		e8
		lea		suunnat2+4,a2
		lea		speed,a3
		move.l		(a2),d1
		sub.l		d1,(a3)
		move.l		12(a2),d1
		sub.l		d1,4(a3)
		move.l		24(a2),d1
		sub.l		d1,8(a3)
		bra.b		ex5

e8:		cmp.b		#$2f,d0
		bne.s		e9
		lea		suunnat2+8,a2
		lea		speed,a3
		move.l		(a2),d1
		add.l		d1,(a3)
		move.l		12(a2),d1
		add.l		d1,4(a3)
		move.l		24(a2),d1
		add.l		d1,8(a3)
		bra.b		ex5

e9:
		cmp.b		#$2d,d0
		bne.s		e10
		lea		suunnat2+8,a2
		lea		speed,a3
		move.l		(a2),d1
		sub.l		d1,(a3)
		move.l		12(a2),d1
		sub.l		d1,4(a3)
		move.l		24(a2),d1
		sub.l		d1,8(a3)
		bra.b		ex5
e10:
		cmp.b		#$33,d0
		bne.s		e11
		move.l		#0,Rottamode
		rts

e11:		cmp.b		#$18,d0
		bne.s		e12
		move.l		#1,Rottamode
		rts
e12:
ex5:


		rts
optiot:
eif1:		cmp.b		#$51,d0
		bne.s		eif2
		bsr.w		Initham8
		rts
eif2:
eif4:		cmp.b		#$54,d0
		bne.s		eif5
		bsr.b		InitHires
		rts
eif5:
		cmp.b		#$55,d0
		bne.s		eif6
		bsr.w		InitLores
		rts
eif6:

		cmp.b		#$1,d0
		bne.s		ein1
		move.l		#0,shade
		rts
ein1:		
		cmp.b		#$2,d0
		bne.s		ein2
		move.l		#1,shade
		rts
ein2:		
		cmp.b		#$3,d0
		bne.s		ein3
		move.l		#2,shade
		rts
ein3:		
		cmp.b		#$4,d0
		bne.s		ein4
		move.l		#3,shade
		rts
ein4:		

		cmp.b		#$5d,d0
		bne.s		ein5
		move.l		#1,blurri
		rts
ein5:		

		cmp.b		#$4a,d0
		bne.s		ein6
		move.l		#0,blurri
		rts
ein6:		


		rts

InitHires:	move.w	#199,korkeus
		move.l	#16000,bplkoko
;		move.w	#0,modulo
;		move.l	#c2pham2,c2prut
		move.l	#1,hires
		move.w	#350,alar1
		move.l	#buffer+360*3*350,alar2
		tst.l	fakereso
		beq.b	eifake1
		move.l	#f1kokof2,f1kokot
		rts
eifake1:	move.l	#f1koko2,f1kokot
		rts

InitLores:	move.w	#99,korkeus
		move.l	#8000,bplkoko
;		move.w	#-80,modulo
;		move.l	#c2pham1,c2prut
		move.l	#0,hires
		move.w	#250,alar1
		move.l	#buffer+360*3*250,alar2
		tst.l	fakereso
		beq.b	eifake2
		move.l	#f1kokof,f1kokot
		rts
eifake2:	move.l	#f1koko,f1kokot
		rts

r1sekalaista:
		move.w		tasot,d7
		move.l		r1yhty,r1tyhty	
 		move.l		ctasot,a4
		moveq.l		#0,d6
		move.l		r1tyhty,a3
		move.l		r1tasotnt,a2
		move.l		allcordst,a0

r1dopol1:	move.l		(a3),d0
		move.w		(a0,d0.w*8),a5
		move.w		2(a0,d0.w*8),d2
		move.w		4(a0,d0.w*8),d3
		swap		d0
		cmp.w		(a0,d0.w*8),a5
		bmi.b		eiei1
		move.w		(a0,d0.w*8),a5
eiei1:		move.w		2(a0,d0.w*8),d4
		move.w		4(a0,d0.w*8),d5
		move.w		4(a3),d0
		cmp.w		(a0,d0.w*8),a5
		bmi.b		eiei2
		move.w		(a0,d0.w*8),a5
eiei2:		move.w		4(a0,d0.w*8),d1
		move.w		2(a0,d0.w*8),d0
		cmp.l		#5001,a5
		bmi.b		r1einay1
		tst.w		6(a3)
		bne.s		nakyyaina

r1checkvis:	sub.w		d2,d0
		sub.w		d3,d1
		sub.w		d2,d4
		sub.w		d3,d5
		muls		d4,d1
		muls		d5,d0
		sub.l		d0,d1
		bmi.b		r1einay1
nakyyaina:	move.w		a5,d6
		move.l		d6,(a2)+ 
		move.l		obustruct,(a2)+ ;"facen"-struktuuri
		addq.l		#8,r1tasotnt
		addq.l		#1,a4
r1einay1:	add.l		#256*256,d6
		addq.w		#8,a3
		dbf		d7,r1dopol1
		move.l		a4,ctasot
		rts
flareseka:
		move.w		nurkat,d7
 		move.l		ctasot,a4
		moveq.l		#0,d6
		move.l		r1tasotnt,a2
		move.l		allcordst,a0

r1dopol1f:
		move.w		(a0),d6
		cmp.w		#1999,d6
		bpl.b		r1checkvisf
		subq.w		#1,d7
		bmi.b		flaresekopois
		add.l		#256*256,d6
		addq.w		#8,a0
		move.w		(a0),d6
		cmp.w		#5001,d6
		bmi.b		r1einay1f
r1checkvisf:
		move.w		2(a0),d0
		move.w		4(a0),d1
		
		cmp.w		vasenr,d0
		bmi.b		r1einay1f
		cmp.w		oikear,d0
		bpl.b		r1einay1f
		cmp.w		#150,d1
		bmi.b		r1einay1f
		cmp.w		alar1,d1
		bpl.b		r1einay1f

		move.l		d6,(a2)+ 
		addq.l		#8,r1tasotnt
		move.l		obustruct,(a2)+ ;"facen"-struktuuri
		addq.l		#1,a4
r1einay1f:	addq.w		#8,a0
		add.l		#256*256,d6
		dbf		d7,r1dopol1f
flaresekopois:	move.l		a4,ctasot
		rts

Sorttaus:	move.l		ctasot,a4
		tst.l		a4
		beq.w		eioofaceja
r1mainz:	lea		zerobuffer,a0
		lea		onebuffer,a1 
		move.l		#r1tasotn,a2
		moveq.l		#0,d7 
		move.l		a0,a3
		move.l		a1,a5
		move.l		a2,a6
MainLoop:	move.l		a4,d6
		moveq.l		#-1,d1
Loop1:		move.l		(a2)+,d0
		btst.l		d7,d0
		beq.b		Zero
		move.l		d0,(a1)+
		move.l		(a2)+,(a1)+
		subq.l		#1,d6
		bne.s		Loop1
;-----------
		tst.w		d1
		bmi.b		No1
		move.l		a3,a0
Loop3b:		move.l		(a0)+,(a1)+
		move.l		(a0)+,(a1)+
		subq.w		#1,d1
		bmi.b		No1
		move.l		(a0)+,(a1)+
		move.l		(a0)+,(a1)+
		subq.w		#1,d1
		bpl.b		Loop3b
		bra.b		No1
		
Zero:		addq.w		#1,d1
		move.l		d0,(a0)+
		move.l		(a2)+,(a0)+
		subq.l		#1,d6
		bne.s		Loop1
Loop2:
		tst.w		d1
		bmi.b		No1
		move.l		a3,a0
Loop3:		move.l		(a0)+,(a1)+
		move.l		(a0)+,(a1)+
		subq.w		#1,d1
		bmi.b		No1
		move.l		(a0)+,(a1)+
		move.l		(a0)+,(a1)+
		subq.w		#1,d1
		bpl.b		Loop3
		
No1:		move.l		a6,a1
		move.l		a5,a2
		exg		a5,a6
		move.l		a3,a0
		addq.l		#1,d7
		cmp.l		#15,d7
		bne.b		MainLoop		

		move.l		a4,d6
		move.l		#r1tasotn,a0
Asss:		move.l		(a2)+,d0
		swap		d0
		move.w		d0,(a0)+
		move.l		(a2)+,(a0)+
		subq.l		#1,d6
		bne.s		Asss
eioofaceja:	rts


r1dorotate:
		addq.w		#2,r1ky2
		addq.w		#2,r1kx2
		addq.w		#2,r1kz2

		cmp.w		#720,r1kx
		blt.b		r1eixk
		sub.w		#720,r1kx
r1eixk:
		cmp.w		#720,r1ky
		blt.b		r1eiyk
		sub.w		#720,r1ky
r1eiyk:
		cmp.w		#720,r1kz
		blt.b		r1eizk
		sub.w		#720,r1kz
r1eizk:		

		cmp.w		#720,r1kx2
		blt.b		r1eixk2
		sub.w		#720,r1kx2
r1eixk2:
		cmp.w		#720,r1ky2
		blt.b		r1eiyk2
		sub.w		#720,r1ky2
r1eiyk2:
		cmp.w		#720,r1kz2
		blt.b		r1eizk2
		sub.w		#720,r1kz2
r1eizk2:		


		cmp.w		#0,r1kx
		bpl.b		r1eixkw
		add.w		#720,r1kx
r1eixkw:
		cmp.w		#0,r1ky
		bpl.b		r1eiykw
		add.w		#720,r1ky
r1eiykw:
		cmp.w		#0,r1kz
		bpl.b		r1eizkw
		add.w		#720,r1kz
r1eizkw:		

		rts




r1makenorm:
		lea		r1normaalit,a2
;		lea		sqr,a4

		move.w		tasot,d7       ;tasojen määrä-1
loop1:	
		move.w		(a0),d0      ;pointterit (a1) taulukkoon
		move.w		2(a0),d1
		move.w		4(a0),d2
		addq.w		#8,a0	     ;seuraava taso
		muls		#6,d0
		muls		#6,d1
		muls		#6,d2
		
		move.w		(a1,d0.l),x1 ;otetaan koordinaatit
		move.w		2(a1,d0.l),y1
		move.w		4(a1,d0.l),z1
		move.w		(a1,d1.l),ax
		move.w		2(a1,d1.l),ay
		move.w		4(a1,d1.l),az
		move.w		(a1,d2.l),bx
		move.w		2(a1,d2.l),by
		move.w		4(a1,d2.l),bz


		move.w		x1,d0
		sub.w		d0,ax
		sub.w		d0,bx
		move.w		y1,d0
		sub.w		d0,ay
		sub.w		d0,by
		move.w		z1,d0
		sub.w		d0,az
		sub.w		d0,bz

		fmove.w		ay,fp0 ;ux=(ay*bz-az*by)
		fmove.w		bz,fp1
		fmul		fp1,fp0 
		fmove.w		az,fp1
		fmove.w		by,fp2
		fmul		fp2,fp1
		fsub		fp1,fp0
		
		fmove.w		az,fp1 ;uy=(az*bx-ax*bz)
		fmove.w		bx,fp2
		fmul		fp2,fp1
		fmove.w		ax,fp2
		fmove.w		bz,fp3	
		fmul		fp3,fp2
		fsub		fp2,fp1

		fmove.w		ax,fp2 ;uz=(ax*by-ay*bx)
		fmove.w		by,fp3	
		fmul		fp3,fp2
		fmove.w		ay,fp3
		fmove.w		bx,fp4
		fmul		fp4,fp3
		fsub		fp3,fp2

		fdiv		#100,fp0
		fdiv		#100,fp1	
		fdiv		#100,fp2
;norma
		fmove		fp0,fp3
		fmove		fp1,fp4
		fmove		fp2,fp5
		fmul		fp3,fp3
		fmul		fp4,fp4
		fmul		fp5,fp5
		fadd		fp5,fp4
		fadd		fp4,fp3
		fsqrt		fp3
		fmove		#125,fp6
		fdiv		fp3,fp6
		fmul		fp6,fp0
		fmul		fp6,fp1
		fmul		fp6,fp2
		fmove.w		fp0,(a2)+
		fmove.w		fp1,(a2)+
		fmove.w		fp2,(a2)+
		clr.w		(a2)+
		dbf		d7,loop1
		rts
		

r1makepistenorm:
		moveq.l		#0,d1           ;etsittävä piste(numbah)
		move.w		nurkat,d6	;
		lea		r1normaalit,a1  ;normaali taulukko

r1qloop1:	move.w		tasot,d7 ;tasoissa olevien pisteiden määrä
		move.l		#0,a3 
		moveq.l		#0,d0 		;paikka taulukossa
		move.l		#0,x1 		;nollataan vektori
		move.l		#0,y1
		move.l		#0,z1
		moveq.l		#0,d2 		;kuinka mones taso
		moveq.l		#0,d4 		;kuinkamonta samaa pistettä
		move.l		a4,a0
r1qloop2:	move.w		#2,d5
r1qloop5:	move.w		(a0)+,d4
		cmp.w		d1,d4
		bne.s		r1qloop3
		addq.w		#1,a3
		move.w		(a1,d0.w*8),d3
		ext.l		d3
		add.l		d3,x1
		move.w		2(a1,d0.w*8),d3
		ext.l		d3
		add.l		d3,y1
		move.w		4(a1,d0.w*8),d3
		ext.l		d3
		add.l		d3,z1
r1qloop3:	dbf		d5,r1qloop5
		addq.w		#2,a0
		addq.w		#1,d0		
		dbf		d7,r1qloop2
		move.w		a3,d7
		addq.w		#1,d1
		move.l		x1,d4
		tst.w		d7
		bne.s		eo
		move.w		#16101,d7
eo:		divs		d7,d4
		move.w		d4,(a2)
		move.l		y1,d4
		divs		d7,d4
		move.w		d4,2(a2)
		move.l		z1,d4
		divs		d7,d4
		move.w		d4,4(a2)
		addq.l		#8,a2
		dbf		d6,r1qloop1	

		rts

;dodoham6:
;		move.l		#bplsize2,d1
;
;		move.l		#pla,d0
;		move.w		d0,r3b5l
;		swap		d0
;		move.w		d0,r3b5h
;		swap		d0
;		add.l		d1,d0
;		move.w		d0,r3b6l
;		swap		d0
;		move.w		d0,r3b6h
;		
;		move.l		bplkoko,d1
;		move.l		r1aos2,a0
;		move.l		r1aos1,r1aos2
;		move.l		a0,d0
;		move.l		r1aos3,r1aos1
;		move.l		a0,r1aos3
;
;		move.w		d0,r3b1l
;		swap		d0
;		move.w		d0,r3b1h
;		swap		d0
;		add.l		d1,d0
;		move.w		d0,r3b2l
;		swap		d0
;		move.w		d0,r3b2h
;		swap		d0
;		add.l		d1,d0
;		move.w		d0,r3b3l
;		swap		d0
;		move.w		d0,r3b3h
;		swap		d0
;		add.l		d1,d0
;		move.w		d0,r3b4l
;		swap		d0
;		move.w		d0,r3b4h
;		rts
;
;dodoham8:
;		move.l		#bplsize2,d1
;		
;		move.l		#pla,d0
;		move.w		d0,r3b1l
;		swap		d0
;		move.w		d0,r3b1h
;		swap		d0
;		add.l		d1,d0
;		move.w		d0,r3b2l
;		swap		d0
;		move.w		d0,r3b2h
;
;		move.l		bplkoko,d1
;		move.l		r1aos2,a0
;		move.l		r1aos1,r1aos2
;		move.l		a0,d0
;		move.l		r1aos3,r1aos1
;		move.l		a0,r1aos3
;		move.l		#c2p1,d3
;;		cmp.l		c2prut,d3
;;		beq		eiylim
;;		add.l		d1,d0
;;		add.l		d1,d0
;eiylim:		move.w		d0,r3b3l
;		swap		d0
;		move.w		d0,r3b3h
;		swap		d0
;		add.l		d1,d0
;		move.w		d0,r3b4l
;		swap		d0
;		move.w		d0,r3b4h
;		swap		d0
;		add.l		d1,d0
;		move.w		d0,r3b5l
;		swap		d0
;		move.w		d0,r3b5h
;		swap		d0
;		add.l		d1,d0
;		move.w		d0,r3b6l
;		swap		d0
;		move.w		d0,r3b6h
;		swap		d0
;		add.l		d1,d0
;		move.w		d0,r3b7l
;		swap		d0
;		move.w		d0,r3b7h
;		swap		d0
;		add.l		d1,d0
;		move.w		d0,r3b8l
;		swap		d0
;		move.w		d0,r3b8h
;		rts
;


eigeo:
		cmp.l		#'LWOB',8(a0)
		bne.w		paskakappale
		move.l		a0,a5
lwloop:		addq.w		#1,a0
		cmp.l		#'PNTS',(a0)
		bne.s		lwloop
		addq.l		#4,a0
		move.l		(a0)+,d0
		divs		#12,d0
		subq.w		#1,d0
		move.w		d0,nurkat
		fmove.l		#20,fp1
lwpoints:	rept		3
		fmove.s		(a0)+,fp0
		fmul		fp1,fp0
		fmove.w		fp0,(a3)+
		endr
		dbf		d0,lwpoints
		subq.w		#1,a0
lwloop2:
		move.w		#0,d5
		tst.l		moodi
		bne.s		loppu2
		addq.w		#1,a0
		subq.l		#1,koko
		beq.b		loppu2
		cmp.l		#'POLS',(a0)
		bne.s		lwloop2
		addq.w		#4,a0

		move.l		a4,a6
		move.l		(a0)+,d7 ;tavujen määrä tässä hunkissa
lwpoly:		move.w		(a0)+,d6
		subq.l		#2,d7
		beq.b		loppu2
lwpoly2:	move.w		(a0)+,(a4)+
		subq.l		#2,d7
		beq.b		loppu2
		dbf		d6,lwpoly2
		addq.w		#1,d5
		tst.l		d7
		bne.s		lwpoly

loppu2:
		move.w		d5,tasot
		move.l		a5,a0
		move.l		#120000,d5
		moveq.l		#0,d0
		lea		surfat,a1
		moveq.l		#0,d6
		
etsisrfhunkki:  cmp.l		#'SURF',(a0)
		beq.b		srfloyty
		addq.l		#1,a0
		subq.l		#1,d5
		bne.s		etsisrfhunkki
		rts
srfloyty:	addq.l		#4,a0
		move.l		(a0)+,d0 ;koko
etsi:		subq.l		#1,d0
		beq.b		enough
		cmp.l		#'FLAG',(a0)
		beq.b		joflaggi
		addq.w		#1,a0
		bra.b		etsi
joflaggi:	addq.l		#6,a0
		move.w		(a0)+,d1
		btst		#8,d1
		beq.b		eidouble
		move.w		#1,(a1)+
		bra.b		nexti
eidouble:	move.w		#0,(a1)+			
nexti:		addq.l		#1,d6
		subq.w		#6,d0
		bmi.b		enough
		bra.b		etsi
enough:		tst.l		d6
		beq.b		Nolla
		lea		surfat,a0
		move.w		tasot,d7	
		bmi.b		Nolla
Luuppia:	move.w		6(a6),d0
		move.w		-2(a0,d0.w*2),6(a6)
		addq.w		#8,a6
		dbf		d7,Luuppia
Nolla:		rts


loadobject:
	move.l #0,nurkat
	move.l #0,tasot
loop:

points:	cmp.l	#"3DG1",(a0)
	bne.w	eigeo
	addq.l	#5,a0 ;rivin lopun yli;)
	lea	luku,a1
lisaa:	move.b	(a0)+,(a1)+
	cmp.b	#$a,(a0)
	bne.s	lisaa
	addq.w	#1,a0 ;rivin lopun yli
	bsr.w	otaluku
	divu	#1,d0 ;sanity checks
	tst.w	d0
	bmi.w	paskakappale
cordsa:	
	move.w	d0,d7
	move.w	d7,nurkat
	subq.w	#1,nurkat
	add.w	d0,d7
	add.w	d0,d7
	subq.w	#1,d7
	move.l	a3,a2
luecords:
	move.w	#1,etumerkki
	lea	luku,a1
	cmp.b	#'-',(a0)
	bne.s	luemut
	move.w	#-1,etumerkki
	addq.l	#1,a0
luemut:
	move.b	(a0)+,d0
	cmp.b	#$20,d0
	beq.b	convert
	cmp.b	#'.',d0
	beq.w	tyhjaa
	cmp.b	#$a,d0
	beq.b	convert
	move.b	d0,(a1)+
	bra.b	luemut
convert: 
	bsr.w	otaluku
	divs	etumerkki,d0
	move.w	d0,(a2)+
	dbf	d7,luecords

	move.l	a4,a2
	moveq.l	#0,d4
luemut22:
	lea	luku,a1
luemut2:
	move.b	(a0)+,d0
	cmp.b	#$20,d0
	beq.b	convert2
	cmp.b	#$a,d0
	beq.b	convert2
	move.b	d0,(a1)+
	bra.b	luemut2

convert2: 
	bsr.w	otaluku
	btst	#6,$bfe001
	beq.s	happyend
	move.w	d0,(a2)+
	addq.l	#1,d4
	lea	luku,a1
	cmp.b	#$a,-1(a0)
	bne.s	luemut22
	
	cmp.l	#$fefefefe,(a0)
	beq.b	happyend
tyhjatpois:
	cmp.b	#$a,(a0)+
	bne.s	tyhjatpois

	cmp.l	#$fefefefe,(a0)
	beq.b	happyend
	bra.b	luemut22

happyend:
	divs	#5,d4	
	subq.w	#1,d4
	move.w	d4,tasot	
	move.l	a4,a0
	move.l	a0,a1
	move.w	d4,d7
kivalooppi:
	move.w	2(a0),(a1)+
	move.w	4(a0),(a1)+
	move.w	6(a0),(a1)+
	move.w	8(a0),(a1)+
	add.l	#10,a0
	dbf	d7,kivalooppi
	
	move.w	d0,d1
	move.w	-4(a2),d2
	moveq.l	#0,d0
	rts
paskakappale:
	moveq.l	#-1,d0 ;virheen kera pois
	rts

tyhjaa:	cmp.b	#$20,(a0)+
	beq.w	convert
	cmp.b	#$a,-1(a0)
	beq.w	convert
	bra.b	tyhjaa
	

otaluku:
	move.b	-(a1),d0
	sub.b	#$30,d0
	extb	d0
	move.l	#10,d3
next:	move.b	-(a1),d1
	tst.b	d1
	bmi.b	loppu
	sub.b	#$30,d1
	extb	d1
	muls	d3,d1
	muls.l	#10,d3
	add.l	d1,d0 ;heh
	bra.b	next
loppu:	rts	

splineprecalc:  moveq.l		#0,d7
		lea		m1,a1
		lea		m2,a2
		lea		m3,a3
		lea		m4,a4
		moveq.l		#0,d6
		fmove		#1,fp6
		fmove		#6,fp0
		fdiv		fp0,fp6
		fmove		#2,fp7
		fmove		#3,fp0
		fdiv		fp0,fp7
		fmul		#256,fp6
		fmul		#256,fp7
splineloop:
		
		fmove.l		d7,fp0 ;t

		fmove		fp0,fp1
		fmul		fp0,fp1
		fmul		#1/256.0,fp1
		
		fmove		fp1,fp2
		fmul		fp0,fp2 
		fmul		#1/256.0,fp2
		fmove		fp2,fp3
		fmul		fp6,fp3
		fneg		fp3
		fmul		#1/256.0,fp3
		fmove		fp1,fp4
		fdiv		#2,fp4
		fadd		fp4,fp3
		fmove		fp0,fp4
		fmul		#1/2.0,fp4
		fsub		fp4,fp3		
		fadd		fp6,fp3
		fmove.l		fp3,(a1)+ ; -1/6*t³ + 1/2*t² - 1/2*t + 1/6

		fmove		fp2,fp3
		fmul		#1/2.0,fp3
		fsub		fp1,fp3
		fadd		fp7,fp3
		fmove.l		fp3,(a2)+ ;1/2*t³ - t² + 2/3


		fmove		fp2,fp3
		fmul		#1/2.0,fp3
		fneg		fp3
		fmove		fp1,fp5
		fmul		#1/2.0,fp5		
		fadd		fp5,fp3
		fmove		fp0,fp5
		fdiv		#2,fp5
		fadd		fp5,fp3
		fadd		fp6,fp3			
		fmove.l		fp3,(a3)+; -1/2*t³ + 1/2*t² + 1/2*t + 1/6

		fmove		fp2,fp3
		fmul		fp6,fp3
		fdiv		#256,fp3
		fmove.l		fp3,(a4)+ ;1/6*t³
		
		addq.l		#1,d7
		cmp.l		#256,d7
		bne.w		splineloop
		rts
		





;c2pinit:
;	movem.l	d2-d3,-(sp)
;	lea	c2pp_datanew(pc),a0
;	andi.l	#$ffff,d0
;	mulu.w	d0,d3
;	lsr.l	#3,d3
;	move.l	d3,c2pp_scroffs-c2pp_data(a0)
;	mulu.w	d0,d1
;	move.l	d1,c2pp_pixels-c2pp_data(a0)
;	movem.l	(sp)+,d2-d3
;	rts
;
;; a0	c2pscreen
;; a1	bitplanes

c2p1:

		lea		buffer,a0
;		lea		blur,a4
		move.l		blurt,a4
		add.l		#yaddi,a0
		move.l		spritte,d0
		move.l		c2p,a5
		jsr		(a5)
		rts
;		
;
;		move.l		r1aos1,a1
;
;;	movem.l	d2-d7/a2-a6,-(sp)
;
;	bsr.w	c2pp_copyinitblock
;
;	lea	c2pp_data(pc),a2
;
;	move.l	c2pp_pixels-c2pp_data(a2),a3
;	add.l	a0,a3
;
;; add.l	#640*100,a3
;
;	add.w	#BPLSIZE,a1
;	add.l	c2pp_scroffs-c2pp_data(a2),a1
;	move.l	a1,a2
;	add.l	#BPLSIZE*3,a2
;
;	move.l		(a0)+,d0
;	add.l		(a4),d0
;	lsr.l		#1,d0
;	move.l		(a0)+,d1
;	and.l		#%01111111011111110111111101111111,d0
;	move.l		d0,(a4)+
;	add.l		(a4),d1
;	move.l		(a0)+,d2
;	lsr.l		#1,d1
;	and.l		#%01111111011111110111111101111111,d1
;	move.l		d1,(a4)+
;	add.l		(a4),d2
;	move.l		d1,d7			; Swap 4x1, part 1
;	move.l		(a0)+,d3
;	lsr.l		#1,d2
;	and.l		#%01111111011111110111111101111111,d2
;	move.l		d2,(a4)+
;	lsr.l		#4,d7
;	add.l		(a4),d3
;	lsr.l		#1,d3
;	move.l		(a0)+,d4
;	and.l		#%01111111011111110111111101111111,d3
;	move.l		d3,(a4)+
;	eor.l		d0,d7
;	add.l		(a4),d4
;	lsr.l		#1,d4
;	move.l		(a0)+,d5
;	and.l		#%01111111011111110111111101111111,d4
;	move.l		d4,(a4)+
;	and.l		#$0f0f0f0f,d7
;	add.l		(a4),d5
;	lsr.l		#1,d5
;	and.l		#%01111111011111110111111101111111,d5
;	move.l		d5,(a4)+
;	eor.l		d7,d0
;	lsl.l	#4,d7
;	eor.l	d7,d1
;	move.l	d5,d7
;	lsr.l	#4,d7
;	clr.l	-24(a0)
;	eor.l	d4,d7
;	and.l	#$0f0f0f0f,d7
;	clr.l	-20(a0)
;	eor.l	d7,d4
;	lsl.l	#4,d7
;	eor.l	d7,d5
;	clr.l	-16(a0)
;	move.w	d4,d7			; Swap 16x4, part 1
;	move.w	d0,d4
;	swap	d4
;	clr.l	-12(a0)
;	move.w	d4,d0
;	move.w	d7,d4
;	move.w	d5,d7
;	move.w	d1,d5
;	clr.l	-8(a0)
;	swap	d5
;	move.w	d5,d1
;	clr.l	-4(a0)
;	move.w	d7,d5
;
;	lsl.l	#2,d0			; Swap/merge 2x4, part 1
;	or.l	d4,d0
;	move.l	d5,d7
;	move.l	(a0)+,d4
;	lsr.l	#2,d7
;	eor.l	d1,d7
;	and.l	#$33333333,d7
;	eor.l	d7,d1
;	lsl.l	#2,d7
;	eor.l	d7,d5
;	move.l	d5,ta4
;	move.l	d3,d7			; Swap 4x1, part 2
;	move.l		(a0)+,d5
;	lsr.l		#4,d7	
;	add.l		(a4)+,d4
;	eor.l		d2,d7
;	lsr.l		#1,d4
;	add.l		(a4)+,d5
;	and.l		#%01111111011111110111111101111111,d4
;	lsr.l		#1,d5
;	move.l		d4,-8(a4)
;	and.l		#%01111111011111110111111101111111,d5
;	and.l		#$0f0f0f0f,d7
;	move.l		d5,-4(a4)
;
;	eor.l	d7,d2
;	lsl.l	#4,d7
;	eor.l	d7,d3
;	move.l	d5,d7
;	clr.l	-8(a0)
;	lsr.l	#4,d7
;	eor.l	d4,d7
;	and.l	#$0f0f0f0f,d7
;	clr.l	-4(a0)
;	eor.l	d7,d4
;	lsl.l	#4,d7
;	eor.l	d7,d5
;
;	move.w	d4,d7			; Swap 16x4, part 2
;	move.w	d2,d4
;	swap	d4
;	move.w	d4,d2
;	move.w	d7,d4
;	move.w	d5,d7
;	move.w	d3,d5
;	swap	d5
;	move.w	d5,d3
;	move.w	d7,d5
;
;	bra.w	.startss
;.xss
;
;	move.l		(a0)+,d0
;	add.l		(a4),d0
;	lsr.l		#1,d0
;	move.l		(a0)+,d1
;	and.l		#%01111111011111110111111101111111,d0
;	move.l		d0,(a4)+
;	add.l		(a4),d1
;	lsr.l		#1,d1
;	move.l		(a0)+,d2
;	and.l		#%01111111011111110111111101111111,d1
;	move.l		d1,(a4)+
;	add.l		(a4),d2
;	move.l		(a0)+,d3
;	lsr.l		#1,d2
;	and.l		#%01111111011111110111111101111111,d2
;	move.l		d2,(a4)+
;	add.l		(a4),d3
;	lsr.l		#1,d3
;	move.l		(a0)+,d4
;	and.l		#%01111111011111110111111101111111,d3
;	move.l		d3,(a4)+
;	add.l		(a4),d4
;	lsr.l		#1,d4
;	move.l		(a0)+,d5
;	and.l		#%01111111011111110111111101111111,d4
;	move.l		d4,(a4)+
;	add.l		(a4),d5
;	lsr.l		#1,d5
;	and.l		#%01111111011111110111111101111111,d5
;	move.l		d5,(a4)+
;	move.l		d7,-BPLSIZE(a1)
;	move.l	d1,d7			; Swap 4x1, part 1
;	clr.l	-24(a0)
;	lsr.l	#4,d7
;	eor.l	d0,d7
;	clr.l	-20(a0)
;	and.l	#$0f0f0f0f,d7
;	eor.l	d7,d0
;	clr.l	-16(a0)
;	lsl.l	#4,d7
;	eor.l	d7,d1
;	clr.l	-12(a0)	
;	move.l	d5,d7
;	lsr.l	#4,d7
;	clr.l	-8(a0)	
;	eor.l	d4,d7
;	and.l	#$0f0f0f0f,d7
;	clr.l	-4(a0)
;	eor.l	d7,d4
;	lsl.l	#4,d7
;	eor.l	d7,d5
;
;	move.w	d4,d7			; Swap 16x4, part 1
;	move.w	d0,d4
;	swap	d4
;	move.w	d4,d0
;	move.l	a5,(a1)+
;	move.w	d7,d4
;	move.w	d5,d7
;	move.w	d1,d5
;	swap	d5
;	move.w	d5,d1
;	move.w	d7,d5
;
;	lsl.l	#2,d0			; Swap/merge 2x4, part 1
;	or.l	d4,d0
;	move.l	(a0)+,d4
;	move.l	d5,d7
;	lsr.l	#2,d7
;	eor.l	d1,d7
;	and.l	#$33333333,d7
;	eor.l	d7,d1
;	lsl.l	#2,d7
;	eor.l	d7,d5
;	move.l	d5,ta4
;
;	move.l	(a0)+,d5
;	add.l		(a4)+,d4
;	lsr.l		#1,d4
;	add.l		(a4)+,d5
;	and.l		#%01111111011111110111111101111111,d4
;	lsr.l		#1,d5
;	move.l		d4,-8(a4)
;	and.l		#%01111111011111110111111101111111,d5
;	move.l	d3,d7			; Swap 4x1, part 2
;	lsr.l	#4,d7
;	eor.l	d2,d7
;	and.l	#$0f0f0f0f,d7
;	move.l		d5,-4(a4)
;	eor.l	d7,d2
;	lsl.l	#4,d7
;	clr.l	-8(a0)
;	eor.l	d7,d3
;	move.l	d5,d7
;	clr.l	-4(a0)
;	lsr.l	#4,d7
;	eor.l	d4,d7
;	move.l	d6,BPLSIZE-4(a1)
;	and.l	#$0f0f0f0f,d7
;	eor.l	d7,d4
;	lsl.l	#4,d7
;	eor.l	d7,d5
;
;	move.w	d4,d7			; Swap 16x4, part 2
;	move.w	d2,d4
;	swap	d4
;	move.w	d4,d2
;	move.w	d7,d4
;	move.w	d5,d7
;	move.w	d3,d5
;	swap	d5
;	move.w	d5,d3
;	move.l	a6,-BPLSIZE-4(a2)
;	move.w	d7,d5
;.startss
;	lsl.l	#2,d2			; Swap/merge 2x4, part 2
;	or.l	d4,d2
;	move.l	d5,d7
;	lsr.l	#2,d7
;	eor.l	d3,d7
;	and.l	#$33333333,d7
;	eor.l	d7,d3
;	lsl.l	#2,d7
;	eor.l	d7,d5
;
;	move.l	ta4,d4
;
;	move.l	d2,d7			; Swap 8x2, part 1
;	lsr.l	#8,d7
;	eor.l	d0,d7
;	and.l	#$00ff00ff,d7
;	eor.l	d7,d0
;	lsl.l	#8,d7
;	eor.l	d7,d2
;	move.l	d2,d7			; Swap 1x2, part 1
;	lsr.l	#1,d7
;	eor.l	d0,d7
;	and.l	#$55555555,d7
;	eor.l	d7,d0
;	move.l	d0,BPLSIZE(a2)
;	add.l	d7,d7
;	eor.l	d7,d2
;
;	move.l	d3,d7			; Swap 8x2, part 2
;	lsr.l	#8,d7
;	eor.l	d1,d7
;	and.l	#$00ff00ff,d7
;	eor.l	d7,d1
;	lsl.l	#8,d7
;	eor.l	d7,d3
;	move.l	d5,d7
;	lsr.l	#8,d7
;	eor.l	d4,d7
;	and.l	#$00ff00ff,d7
;	eor.l	d7,d4
;	lsl.l	#8,d7
;	eor.l	d7,d5
;	move.l	d2,(a2)+
;
;	move.l	d3,d6			; Swap 1x2, part 2
;	lsr.l	#1,d6
;	eor.l	d1,d6
;	and.l	#$55555555,d6
;	eor.l	d6,d1
;	add.l	d6,d6
;	eor.l	d3,d6
;	move.l	d5,d7
;	lsr.l	#1,d7
;	eor.l	d4,d7
;	and.l	#$55555555,d7
;	eor.l	d7,d4
;	add.l	d7,d7
;	eor.l	d5,d7
;
;	move.l	d1,a6
;	move.l	d4,a5
;
;;		addq.w	#1,rivi_jum_ss
;;		cmp.w	#19,rivi_jum_ss
;;		ble.s	.nyt_ei_rivi_jum_ss
;;		clr.w	rivi_jum_ss
;;		lea	640(a0),a0
;;.nyt_ei_rivi_jum_ss
;
;	cmpa.l	a0,a3
;	bgt.w	.xss
;;	cmpa.l	a0,a3
;;	bne	.xss
;.x2ss
;	move.l	d7,-BPLSIZE(a1)
;	move.l	a5,(a1)+
;	move.l	d6,BPLSIZE-4(a1)
;	move.l	a6,-BPLSIZE-4(a2)
;
;.noness
;;	movem.l	(sp)+,d2-d7/a2-a6
;	rts
;
;c2pp_copyinitblock
;	movem.l	a0-a1,-(sp)
;	lea	c2pp_datanew,a0
;	lea	c2pp_data,a1
;	moveq	#16-1,d0
;.copyss	move.l	(a0)+,(a1)+
;	dbf	d0,.copyss
;	movem.l	(sp)+,a0-a1
;	rts
;
;	cnop	0,4
;
;c2pp_data
;c2pp_scroffs dc.l 0
;c2pp_pixels dc.l 0
;	ds.l	16
;
;	cnop 0,4
;c2pp_datanew
;	ds.l	16



;r3copperl:	dc.w		$1fc,%0100000000001111
;		dc.w		bpl1mod,0
;		dc.w		bpl2mod
;modulo:		dc.w		-80
;		dc.w		bplcon0
;bplcon0t:	dc.w		%1110101000000001
;
;		dc.w		bplcon1,0
;		dc.w		bplcon2,%0000001000000000
;		dc.w		dmacon,%1000000000100000
;		dc.w		ddfstrt,$38
;		dc.w		$10c,0
;		dc.w		ddfstop,$d0-14
;		dc.w		diwstrt,$4c81
;		dc.w		diwstop,$11c1
;		dc.w		bpl1pth
;r3b1h:		dc.w		0
;		dc.w		bpl1ptl
;r3b1l:		dc.w		0
;		dc.w		bpl2pth
;r3b2h:		dc.w		0
;		dc.w		bpl2ptl
;r3b2l:		dc.w		0
;		dc.w		bpl3pth
;r3b3h:		dc.w		0
;		dc.w		bpl3ptl
;r3b3l:		dc.w		0
;		dc.w		bpl4pth
;r3b4h:		dc.w		0
;		dc.w		bpl4ptl
;r3b4l:		dc.w		0
;		dc.w		bpl5pth
;r3b5h:		dc.w		0
;		dc.w		bpl5ptl
;r3b5l:		dc.w		0
;		dc.w		bpl6pth
;r3b6h:		dc.w		0
;		dc.w		bpl6ptl
;r3b6l:		dc.w		0
;		dc.w		bpl6pth+4
;r3b7h:		dc.w		0
;		dc.w		bpl6ptl+4
;r3b7l:		dc.w		0
;		dc.w		bpl6pth+8
;r3b8h:		dc.w		0
;		dc.w		bpl6ptl+8
;r3b8l:		dc.w		0
;
;
;SPRITE_P:	dc.w 	$0120
;SHI:		dc.w	$0000
;		dc.w 	$0122
;SLO:		dc.w	$0000
;		dc.w	$0124
;SHI2:		dc.w	$0000
;		dc.w	$0126
;SLO2:		dc.w	$0000
;		dc.w	$0128,$0000,$012a,$0000
;		dc.w	$012c,$0000,$012e,$0000
;
;		dc.w	$0130
;SHI5:		dc.w	$0000
;		dc.w	$0132
;SLO5:		dc.w	$0000
;		dc.w	$0134
;SHI7:		dc.w	$0000
;		dc.w	$0136
;SLO7:		dc.w	$0000
;		dc.w	$0138
;SHI6:		dc.w	$0000
;		dc.w	$013a
;SLO6:		dc.w	$0000
;		dc.w	$013c
;SHI8:		dc.w	$0000
;		dc.w	$013e
;SLO8:		dc.w	$0000
;		dc.w	$0104,$003f
;		dc.w	$0106,$0000
;		dc.w	$0096,%1000010111100000
;balette:	incbin	"develop:gfx/paletit/sprite.s"
;
;		dc.w		$ffe1,$fffe
;		dc.w		$ffe1,$fffe
;		dc.w		$ffff,$fffe
;
;spriten:	blk.l		2048,0
	


		section		muuttujia,data		
		cnop		0,256
r3gosote	dc.l		1
r3oldint	dc.l		1
r3olddma	dc.l		1
r3oldcop	dc.l		1
r1wbview	dc.l		1
intstruct:	dc.l		0,0
		dc.b		2,0
		dc.l		inttinimi
		dc.l		0
		dc.l		r3intti
inttinimi:	dc.b		'to BE or NoT to Be(why???)',0
		cnop		0,4
r3gnimi:	dc.b		'graphics.library',0
dossi:		dc.b		'dos.library',0

		cnop		0,4		
oldvbi:		dc.l		0
nurkat:    	dc.l		0
tasot:		dc.l		0
r1tasotnt:	dc.l		0
r1zt:		dc.l		0
r1tyhty:	dc.l		0 ;pointteri yhtykaa taulukkoon
timer:		dc.l		0
mones:		dc.l		0
r1ky:		dc.w		20
r1kx:		dc.w		690
r1kz:		dc.w		$14
r1ky2:		dc.w		180
r1kx2:		dc.w		180
r1kz2:		dc.w		180

		dc.l		0,0
		dc.b		0,0
r1xx:		dc.l		0,0
r1xy:		dc.l		0,0
r1xz:		dc.l		0,0
r1yx:		dc.l		0,0
r1yy:		dc.l		0,0
r1yz:		dc.l		0,0
r1zx:		dc.l		0,0
r1zy:		dc.l		0,0
r1zz:		dc.l		0,0
x1:	dc.l	0
x2:	dc.l	0
x3:	dc.l	0
y1:	dc.l	0
y2:	dc.l	0
y3:	dc.l	0
z1:	dc.l	0
z2:	dc.l	0
z3:	dc.l	0
ux:	dc.l	0
uy:	dc.l	0
uz:	dc.l	0
ax:	dc.l	0
ay:	dc.l	0
az:	dc.l	0
bx:	dc.l	0
by:	dc.l	0
bz:	dc.l	0
jalka2:	dc.l	0
jalka:	dc.l	0
jakaja:	dc.l	0
jakaja2: dc.l	0
r1k:	dc.l	0
Fel:		dc.l		0
MM1:		dc.w		0,0
MM2:		dc.w		179,0
leveys:		dc.l		0
du:		dc.l		0
dy:		dc.l		0
sin:		dc.l		0
cos:		dc.l		0
temp:		dc.l		0
suunta:		dc.l		0
suunta2:	dc.l		0
		section		graffaa2,data
		cnop		0,256
;bitmap1:	incbin		"develop:gfx/chunky/256*256/cncd2.c"
bitmap2:	incbin		"develop:gfx/chunky/256*256/cncd5.c"
;bitmapcolors:   incbin 		"develop:gfx/paletit/cncd2b.s"
bitmapcolors2:  incbin 		"develop:gfx/paletit/cncd5b.s"

;bitmap3:	incbin		"develop:gfx/chunky/256*256/cncd5.c"
;bitmapcolors3:  incbin 		"develop:gfx/paletit/cncd5b.s"

;sqr:		incbin		"work:assy/taulukot/sqr64000.bin"
etumerkki: 	dc.b	0,0,0,0,-1,-1,-1,-1
luku:	   	dc.l	0,0,0,0 ;maksimi 8merkkiä per luku

		dc.l	$fefefefe,$fefefefe

sx0:		dc.l		-200,-200,-50
		dc.l		200,0,-100
		dc.l		200,200,-30
		dc.l		-100,200,-50

		dc.l		-200,-200,-50
		dc.l		200,0,-100
		dc.l		200,200,-30
		dc.l		-100,200,-50

qsx0:		dc.l		0,0,0
		dc.l		200,200,0
		dc.l		-200,0,0
		dc.l		0,200,0

		dc.l		0,0,0
		dc.l		200,200,0
		dc.l		-200,0,0
		dc.l		0,200,0

yrotta:		dc.l		0,0,0
		dc.l		0,1024,0
		dc.l		0,0,0

xrotta:		dc.l		1024,0,0
		dc.l		0,0,0
		dc.l		0,0,0

zrotta:		dc.l		0,0,0
		dc.l		0,0,0
		dc.l		0,0,1024


me:		dc.l		0
x:		dc.l		0
y:		dc.l		0
z:		dc.l		0
dista:		dc.l		0
T:		dc.l		0,0,0,0
T2:		dc.l		0,0,0,0
cx:		dc.l		0
cy:		dc.l		0
cz:		dc.l		0
cx2:		dc.l		0
cy2:		dc.l		0
cz2:		dc.l		0
cxt:		dc.l		0
cyt:		dc.l		0
czt:		dc.l		0
t0:		dc.l		0
addispl:	dc.l		0
Eye:		dc.l		0,0,0
Focus:		dc.l		0,0,0
Up:		dc.l		0,0,0
N:		dc.l		0,0,0
D:		dc.l		0,0,0
V:		dc.l		0,0,0
U:		dc.l		0,0,0
viewmatrix:	dc.l		0,0,0
		dc.l		0,0,0
		dc.l		0,0,0


lisa:		dc.l		0
tempq:		blk.l		16,0
camera:		blk.l		16,0
camerat:	blk.l		16,0

obuma:		dc.l		0,0,0
		dc.l		0,0,0
		dc.l		0,0,0

obumatcam:	dc.l		0,0,0
		dc.l		0,0,0
		dc.l		0,0,0

tulost:		dc.l		0
oburealplace	dc.l		0,0,0
		dc.l		0,0,0
		dc.l		0,0,0
camplace:	dc.l		0,00,-70000
ky:		dc.l		0
kx:		dc.l		0	
kz:		dc.l		0,0,0,0,0	
focus:		dc.l		0,0,0
realobu:	dc.l		0,0,0
		dc.l		0,0,0
		dc.l		0,0,0
obupaikka:	dc.l		0,0,0
vasclip:	dc.l		0
oikclip:	dc.l		0
upclip:		dc.l		0
t1:		dc.l		0
t2:		dc.l		0
t3:		dc.l		0
spot1:		dc.l		0,-4000*32,0
spot2:		dc.l		0,-3000*32,0
spot3:		dc.l		0,-2000*32,0
spot4:		dc.l		0,-1500*32,0
spot5:		dc.l		0,-1000*32,0
spot6:		dc.l		0,-1000*32,0
spot7:		dc.l		0,-1000*32,0
spot8:		dc.l		0,-1000*32,0
spot9:		dc.l		100*32,2700*32,100*32
spot10:		dc.l		10*32,1500*32,10*32
spot11:		dc.l		0,500*32,500*32 ;tokavika
spot12:		dc.l		0,-500,-1000*32
spot13:		dc.l		0,500*32,500*32
spot14:		dc.l		-800*32,-800*32,0 ;vikavika
spot15:		dc.l		-16000*32,-00*32,-16000*32
spot16:		dc.l		-750*32,0,750*32 ;
spot17:		dc.l		-1500*32,-500*32,-1500*32;
spot18:		dc.l		-6000*32,0*32,-6000*32
cspot1:		dc.l		0,000,0
		dc.l		0,000,0
		dc.l		0,000,0	
		dc.l		0,000,0
		dc.l		0,000,0
		dc.l		0,000,0
		dc.l		0,00,0
		dc.l		0,00,00
		dc.l		0,0,00
		dc.l		0,0,0
		
aspot1:		dc.w		-400,-100,-400
aspot2:		dc.w		200,-300,0
aspot3:		dc.w		500,-300,250
aspot4:		dc.w		900,-400,550
aspot5:		dc.w		500,-400,-300
aspot6:		dc.w		200,-500,-500

bspot1:		dc.l		110000,110000,110000
bspot2:		dc.l		55000,55000,55000
bspot3:		dc.l		30000,30000,30000
bspot4:		dc.l		10000,10000,10000
bspot5:		dc.l		0,0,0

		
dct:		dc.l		dc1
dc1:		dc.l		spot1
		dc.l		spot2
		dc.l		spot3
		dc.l		spot4
		dc.l		spot5
		dc.l		spot6
		dc.l		spot7
		dc.l		spot8
		dc.l		spot8
 		dc.l		spot8
 		dc.l		spot9
		dc.l		spot9
		dc.l		spot10
		dc.l		spot14
		dc.l		spot13
		dc.l		spot12
		dc.l		spot11
		dc.l		spot16
		dc.l		spot17
		dc.l		spot18
		dc.l		spot15
		dc.l		spot15
		dc.l		spot15
		dc.l		spot15
		dc.l		spot15
		dc.l		spot15
		dc.l		spot15
		dc.l		spot15
		dc.l		spot15
		dc.l		spot15
		dc.l		spot15
		dc.l		spot15
		dc.l		spot15
		
		dc.l		spot11
vanhakulma: dc.l	0
zY1:	dc.l	1
r1yhty:	dc.l	0
vasenr:		dc.w		0,0
vasenr2:	dc.l		0,0
vasenr3:	dc.l		0*256,0
vasenr4:	dc.l		0*3,0
oikear:		dc.w		212,0
oikear2:	dc.l		212,0
oikear3:	dc.l		212*256,0
alar1:		dc.w		250,0
alar2:		dc.l		buffer+640*250
suunnat:	dc.l		0,0,100
		dc.l		0,100,0
		dc.l		100,0,0

kulmat:	dc.l	0
joflareonpiirretty: dc.l	0
patht2:	dc.l	0
solmu:	dc.l	0
solmu2:	dc.l	0
f1kokot: dc.l 	f1koko

fkoko: dc.l	0,0,0,0,15,0,0,10 ;paikka,koko,koko,koko

f1koko: dc.l	-18+27,0,0,0,50,0,0,30 ;paikka,koko,koko,koko
f2koko: dc.l    -18+27,0,0,0,150,0,0,70
f3koko:	dc.l	-18+27,0,0,0,300,0,0,150

f1koko2: dc.l	-18+27,-20,0,0,50,0,0,60 ;paikka,koko,koko,koko
f2koko2: dc.l   -18+27,-40,0,0,150,0,0,140
f3koko2: dc.l	-18+27,-100,0,0,300,0,0,300

f1kokof: dc.l	-75+77,0,0,0,75,0,0,30 ;paikka,koko,koko,koko
f2kokof: dc.l    -100+77,0,0,0,210,0,0,70
f3kokof: dc.l	-115+77,0,0,0,420,0,0,150

f1kokof2: dc.l	-75+77,-15,0,0,75,0,0,60 ;paikka,koko,koko,koko
f2kokof2: dc.l   -100+77,-30,0,0,210,0,0,140
f3kokof2: dc.l	-115+77,-90,0,0,420,0,0,300

;-16,-35,-70

ftexture: dc.l  0*256,0*64, 63*256,0*64, 0*256,63*64
ftexture2:dc.l  0*256,0*64, 63*256,0*64, 0*256,63*64
		
montaflarea: dc.l	0
Obutamu: dc.l 0
tas:	dc.l	0
nur:	dc.l	0
mode: 	dc.l	0 ;0=ham6,1=ham8
focu:	dc.l	160
shade:	dc.l	0
material1q: dc.l 1
material2q: dc.l	255
Nbq:	   dc.l	450
prosentti: dc.l 0
korkeus:   dc.w	99,0
bplkoko:   dc.l 8000
dosbeis:   dc.l	0
fakereso:  dc.l	0
blurri:	   dc.l 0
fxkoko:	   dc.l 0
fykoko:	   dc.l 0
ctasot:	   dc.l	0
lisaq:	dc.l	0
lisaq2:	dc.l	0
lisaq3:	dc.l	0
xlisa:	   dc.w	106,0
speed:		dc.l		0,0,0,0
c2prut:	dc.l	c2p1
hires:	dc.l	0
;dodorut: dc.l dodoham6
allcolorst: dc.l	0
flareraja: dc.l 0,0
flareaddi: dc.l	0,0
Rottamode: dc.l	0
ta0:		dc.l 0,0,0,0,0,0,0,0
ta02:		dc.l	0,0,0,0,0
check:		dc.l	0
allcordst:	dc.l	0
envimappit:	dc.l	0
zeettat:	dc.l	0
obustruct:	dc.l	0
obut:		dc.l	obustructure+4
obucords:	dc.l	obu
ky2t:		dc.l	ky2
obu1t:		dc.l	obu1
zeettat2:	dc.l	zeetta
r1mapcordsrt:	dc.l	r1mapcordsr
normalst:	dc.l	normals
ky2:		blk.l	256,0
splinet1t:	dc.l	splinet1
flareobu:	dc.b		"develop:3d/lw/lensflare.lwo",0
kappaleq2:	dc.b		"data/sydan2",0
kappaleq3:	dc.b		"data/flare1",0
kappaleq4:	dc.b		"data/flare1b",0
kappaleq5:	dc.b		"data/flare1c",0
kappaleq6:	dc.b		"data/flare1d",0
kappaleq7:	dc.b		"data/flare1e",0
kappaleq8:	dc.b		"data/flare1f",0

kappaleq:	dc.b		"develop:3d/lw/ball1",0
		cnop		0,4
		
scene:		dc.l	2
		dc.l	Objekti7,1
		dc.l	Objekti9,0
		dc.l	0

splinet1:	dc.l	spl2,splinetti1,splinetti4,splinetti1,spl2,spl2

;surfa1:		dc.l	bitmap3 ;pelkkä tmap-pinta
;		dc.l	1 ;0=tmap 1=fonki 
;		dc.l	1 ;0=ei varjostusta+tmapfill filleri  1=varjostus 2=sumußssss
;		dc.l	allcolors3
;		dc.l	0 ;lopetus merkki

surfa2:		dc.l	bitmap2 ;varjostus pinta
		dc.l	1 ;0=tmap 1=fonki 
		dc.l	1 ;0=ei varjostusta+tmapfill filleri  1=varjostus 2=sumu
		dc.l	allcolors2
		dc.l	0 ;lopetus merkki


Objekti3:	dc.l	1
		dc.l	flareobu
		dc.l	0

Objekti8:	dc.l	1
		dc.l	kappaleq
		dc.l	0

		dc.l	surfa2
Objekti9:	dc.l	1
		dc.l	kappaleq2
		dc.l	0

		dc.l	surfa2
Objekti7:	dc.l	6
		dc.l	obumatu
		dc.l	kappaleq3
		dc.l	kappaleq4
		dc.l	kappaleq5
		dc.l	kappaleq6
		dc.l	kappaleq7
		dc.l	kappaleq8
		dc.l	0

obumatu:	dc.l	70
		dc.l	0,0,0,0,1,2,3,4,4,2,3,3,1,2,3,2,3,3,3,3,3,3,4,4,3,3,3,3,2,2,3,4,4,4,4,4,4,4,4,5,5,4,4,3,1,2,3,5,5,3,1,2,3,5,5,3,1,2,3,1,2,3,1,2,3,3,2,1,3,2,1,3,2,1

;		dc.l	2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,3,0,0,0,0
		dc.l	0

obustructure:   dc.l 0 		;monta objektia
		dc.l 0	 	;pointteri objektin structuurin
	        dc.l 0 		;lopetus merkki(käyttämätön vielä)
		blk.l		1024,0

obu1:		dc.l		0    ;kulmat
		dc.l		0    ;koordinaatit
		dc.l		0    ;normaalivektorit pisteille
		dc.l		0    ;yhdistystaulukko
		dc.w		0    ;tasot
		dc.w		0    ;nurkat
		dc.l		0    ;projisoidut pisteet
		dc.l		0    ;envimappi
		dc.l		0    ;shadetable
		dc.l		0    ;pointteri spline+xyz paikka taulukkoon
		dc.l		0    ;normaalit (pyöritetty)
		dc.l		0    ; 0=obu 1=flareobu
		dc.l		0    ;onko vai ei morphiobu
		dc.l		0    ;control pointtien määrä+1
		dc.l		0    ;step	
		dc.l		0    ;step lisays ;ei vielä käytössä
		dc.l		0    ;nykyinen control pointti		
		dc.l		0    ;lopetusmerkki
		blk.l		16,0 ;control1-12(4 kopiodaan alusta loppuun)

		blk.l		2048,0


splinetti1:	dc.l		splineblock ;osotin splinepalikkaan 0=ei splinea
		dc.l		0,0,0 ;x,y,z jos ei splinea
		dc.l		2500,2000,1500 ;x,y,z kulmien lisäys aina(muuta splineksi)
		dc.l		0 ;lopetusmerkki

splinetti4:	dc.l		splineblock4 ;osotin splinepalikkaan 0=ei splinea
		dc.l		0,0,0 ;x,y,z jos ei splinea
		dc.l		-1000,-2000,-3000 ;x,y,z kulmien lisäys aina(muuta splineksi)
		dc.l		0 ;lopetusmerkki

splinetti2:	dc.l		splineblock2 ;osotin splinepalikkaan 0=ei splinea
		dc.l		0,0,0 ;x,y,z jos ei splinea
		dc.l		1000,2000,3000 ;x,y,z kulmien lisäys aina(muuta splineksi)
		dc.l		0 ;lopetusmerkki

splinetti3:	dc.l		splineblock3 ;osotin splinepalikkaan 0=ei splinea
		dc.l		0,0,0 ;x,y,z jos ei splinea
		dc.l		-1000,-2000,-3000 ;x,y,z kulmien lisäys aina(muuta splineksi)
		dc.l		0 ;lopetusmerkki

spl1:		dc.l		0
		dc.l		100000,100000,100000
		dc.l		500,1500,1000
		dc.l		0
spl2:		dc.l		0
		dc.l		0,0,0
		dc.l		1500,500,1000
		dc.l		0

spl3:		dc.l		0
		dc.l		-0,-5000,0
		dc.l		1100,1600,2100
		dc.l		0

spl4:		dc.l		0
		dc.l		0,-10000,00
		dc.l		0,0,0
		dc.l		0
taulut:		dc.l		0
splineblock:	dc.l		0 ;0=ei interpoloida kulmia, 1= interpoloi kulmat
		dc.l		70 ;montako control pointtia
		dc.l		0 ;askel
		dc.l		0 ;current control pointti
		rept		23-5
		dc.l		bspot1 ;control pointit
		endr
		dc.l		bspot2
		dc.l		bspot3
		dc.l		bspot4
		rept		40
		dc.l		bspot5
		endr
		dc.l		bspot2
		dc.l		bspot3
		dc.l		bspot4
		dc.l		0 ;loppumerkki

splineblock4:	dc.l		0 ;0=ei interpoloida kulmia, 1= interpoloi kulmat
		dc.l		4 ;montako control pointtia
		dc.l		0 ;askel
		dc.l		0 ;current control pointti
		dc.l		bspot1 ;control pointit
		dc.l		bspot2
		dc.l		bspot3
		dc.l		bspot4
		dc.l		bspot1
		dc.l		bspot2
		dc.l		bspot3
		dc.l		bspot4
		dc.l		0 ;loppumerkki

splineblock2:	dc.l		0 ;0=ei interpoloida kulmia, 1= interpoloi kulmat
		dc.l		6 ;montako control pointtia
		dc.l		0 ;askel
		dc.l		0 ;current control pointti
		dc.l		aspot2 ;control pointit
		dc.l		aspot3
		dc.l		aspot4
		dc.l		aspot5
		dc.l		aspot6
		dc.l		aspot1
		dc.l		aspot2
		dc.l		aspot3
		dc.l		aspot4
		dc.l		aspot5
		dc.l		0 ;loppumerkki
splineblock3:	dc.l		0 ;0=ei interpoloida kulmia, 1= interpoloi kulmat
		dc.l		6 ;montako control pointtia
		dc.l		0 ;askel
		dc.l		0 ;current control pointti
		dc.l		aspot1 ;control pointit
		dc.l		aspot2
		dc.l		aspot3
		dc.l		aspot4
		dc.l		aspot5
		dc.l		aspot6
		dc.l		aspot1
		dc.l		aspot2
		dc.l		aspot3
		dc.l		aspot4
		dc.l		0 ;loppumerkki

ta4:		dc.l		0
tyht:		dc.l		r1yhtykaa
allt:		dc.l		r1allcords
moodi:		dc.l		0
flarerando:	dc.l		0
normalst2:	dc.l		0
hmh:		dc.l		0
obuosotin:	dc.l		0
morphikappale:	dc.l		0
morphicheck:	dc.l		0
talteena0:	dc.l		0
flareat:	dc.l		flarea
flarea:		dc.l		0,0,0,0,0,0,0,0,0,0,0,0,0


koko:		dc.l		0
time2:		dc.l		0
talteen:	dc.l		0
timer3:		dc.l		0
entkoko:	dc.l		0
tad1:		dc.l		0
tad3:		dc.l		0
td3:		dc.l		0
td4:		dc.l		0
td5:		dc.l		0
eka:		dc.l		0
morffiuusi:	dc.l		0
morffivanha:	dc.l		0
miniflare:	dc.l		0
spritte:	dc.l		0
c2p:		dc.l		0
monesflare:	dc.l		0
piirtoflaret:	dc.l		0
flarebuffert:	blk.l		16,0
hippi:		dc.l		0
piirtot:	dc.l		0
texcordst:	dc.l		textcords
moodi2:		dc.l		0
modeq:		dc.l		0
piirtobuffert:	blk.l		32,0
blurt:		dc.l		0
mitenruudulle:	dc.l		Loop,flippand
obudi:		dc.l		0
		section	chunky,bss_p
		cnop	0,256
buffer:		ds.b	640*400
table:		ds.w	256*256
r1normaalit:	ds.w		8000
flarebuffer:	ds.l		20*16*12
flarebufferend: ds.l		1
r1pistenorm:	ds.w		8000
ready:		ds.l		8192
cords:		ds.l		10240
r1yhtykaa:	ds.l		20480
obu:		ds.l		64000
b:		ds.l		8192

		section  chunky2,bss_p

textcords:	ds.l		10240
zeetta:		ds.l		10240
r1allcords:	ds.l		1024*4*4
r1mapcordsr:	ds.l		10240
;allcolors:	ds.l		256*256
allcolors2:	ds.l		256*256
;allcolors3:	ds.l		256*256
suunnat2:	ds.l		128
flarerealplace: ds.l		128
realflareplace: ds.l		128
normals:	ds.l		8192*4
;blur:		ds.l		320*100
r1aos1:		ds.l		1
r1aos2:		ds.l		1
r1aos3:		ds.l		1
r1cordsready:	ds.l		128
r1tasotn:	ds.l		10240
zerobuffer:	ds.l		10240
onebuffer:	ds.l		10240
m1:		ds.l		512
m2:		ds.l		512
m3:		ds.l		512
m4:		ds.l		512
piirtobuffer:	ds.l		512
surfat:		ds.l		1024
tauluq:		ds.l		256*256
;bitmappi:	ds.l		256*256
;bitmappi2:	ds.l		256*256
suurinx:	ds.l		1
pieninx:	ds.l		1
suuriny:	ds.l		1
pieniny:	ds.l		1
suurinz:	ds.l		1
pieninz:	ds.l		1
envimappionko:	ds.l		1
mikafilleri:	ds.l		1

		section		spritet,data_c
		cnop	0,256
SPRITEDATA1:
	dc.l	$00900000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$000001ff,$e0000000,$0000007e,$e0000000
	dc.l	$000003ff,$f0000000,$000000fe,$f0000000
	dc.l	$00ffffff,$f1400000,$003ffcc0,$30400000
	dc.l	$01ffffff,$fbe00000,$007ffd80,$38e00000
	dc.l	$01ffffff,$fbe00000,$003ffd80,$18e00000
	dc.l	$00ffffff,$ffeff000,$00003d00,$18c37000
	dc.l	$007fffff,$fffff000,$00007900,$18c7f000
	dc.l	$007ffff0,$7ffff000,$0000f180,$180c0000
	dc.l	$003fffe0,$fffff000,$0001e180,$300c0000
	dc.l	$000fffe3,$fefffc00,$0003c1e0,$e00f8000
	dc.l	$000fffff,$fefffc00,$000380ff,$c007e000
	dc.l	$001fffff,$fe3ffc00,$0007001f,$0000f000
	dc.l	$003ffdff,$fe0ff000,$000f0000,$0003f000
	dc.l	$003ff9ff,$fc1ff780,$000e000e,$0007e180
	dc.l	$003ff0ff,$f81fff80,$0004000e,$00000180
	dc.l	$001fe03f,$f00fff80,$0000000e,$00000180
	dc.l	$000fc03f,$c007ff80,$0000000e,$00000180
	dc.l	$000fc03f,$fe07ffe0,$0000000c,$1e000180
	dc.l	$0007803f,$fe01ffe0,$0000000c,$1e000180
	dc.l	$007ff03f,$ffffffe0,$001f700c,$399ffd80
	dc.l	$007ff03f,$ffffffe0,$001f700c,$399ffd80
	dc.l	$007ff3ff,$ffffffe0,$001c60ec,$70c03d80
	dc.l	$007ff3ff,$ffffffe0,$001c60ec,$70c03d80
	dc.l	$007fffff,$ffffffe0,$001c60ec,$e0c07180
	dc.l	$007fffff,$ffffffe0,$001c60ec,$e0c07180
	dc.l	$007fffff,$fff7ffe0,$001c60ec,$e0c0e180
	dc.l	$007ffbff,$fff3ffe0,$001c60ec,$e0c0e180
	dc.l	$007ffbff,$ffffffe0,$001c60ec,$ff838180
	dc.l	$007ffbff,$ffffffe0,$001c60ec,$ff838180
	dc.l	$007ffbff,$ffffffe0,$001c60ec,$c0070000
	dc.l	$007ffbff,$fffffbe0,$001c60ec,$c0070000
	dc.l	$007fffff,$fffff9e0,$001c71ec,$70ee0000
	dc.l	$007fffff,$ffffe1e0,$001c71ec,$70ee0000
	dc.l	$007fffff,$ffffffe0,$001c3fee,$3f9ff9c0
	dc.l	$007fffff,$ffffffc0,$001c3fee,$3f9ff9c0
	dc.l	$007fffff,$ffffffc0,$00000000,$00000000
	dc.l	$003f7fff,$7ffffbc0,$00000000,$00000000
	dc.l	$001f3fff,$bffffff0,$00000000,$00000000
	dc.l	$001f3fff,$bffffff0,$00000000,$00000000
	dc.l	$00070ffb,$8fe7fe70,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000

SPRITEDATA2:
	dc.l	$00900000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$000000f8,$00000000,$000000f0
	dc.l	$0e00001e,$000001fc,$0c00001c,$000000f8
	dc.l	$3f00003f,$000001fc,$3e00003e,$000000f8
	dc.l	$7f0000fe,$01f001fc,$1e0000fc,$01e000f8
	dc.l	$3f8001fe,$03f001fc,$1f0001f0,$01e000f8
	dc.l	$3f8003ff,$03f001fc,$0f0003e0,$01e000f8
	dc.l	$1f8007fe,$03f001fc,$0f000780,$01e000f8
	dc.l	$1fc00ff8,$03f001fc,$07800f00,$01e000f0
	dc.l	$0fc03ff0,$03f001fc,$07803e00,$01c000f0
	dc.l	$0fe07fff,$e3f001fc,$07c07c7f,$c1c000f0
	dc.l	$0fe0ffff,$fbf001f8,$03c0f3f0,$f1c000f0
	dc.l	$07f1ffff,$ffe001f8,$03e1ef80,$79c000f0
	dc.l	$07f3ffff,$ffe01ff8,$01e3c000,$39c01ef0
	dc.l	$03f7fff8,$7fe03ff8,$01e78000,$3dc038f0
	dc.l	$03fff7c0,$7fe0fff8,$00ff0000,$1dc0f0f0
	dc.l	$01ffe000,$3fe3fff8,$00fe0000,$3dc3c0f0
	dc.l	$01ffc01f,$ffeffdf8,$007c001f,$fdcf80f0
	dc.l	$00ff80ff,$fffff9f8,$007800ff,$fdfe0070
	dc.l	$00ff03ff,$ffffe0f8,$007803f0,$1dfe0000
	dc.l	$00fe07ff,$ffffc078,$007007c0,$1dfe0000
	dc.l	$00fc0fff,$ffff8078,$00f00f00,$1dff0070
	dc.l	$01fc1ff8,$3fffc0fc,$00f00f00,$1de380f8
	dc.l	$01f81fe0,$3ffff1fc,$00e00f00,$3dc1e0f8
	dc.l	$01f81fff,$fffff9fc,$01e003ff,$fdc0f078
	dc.l	$03f80fff,$fff1fcfc,$01e0007f,$fdc03830
	dc.l	$03f007ff,$ffe0ff7c,$00000000,$3dc01e00
	dc.l	$01f001ff,$ffe07fbc,$00000000,$01c00f00
	dc.l	$00f0003f,$ffe01f18,$00000000,$00000000
	dc.l	$00000000,$1fe00f00,$00000000,$00000000
	dc.l	$00000000,$00e00780,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
	dc.l	$00000000,$00000000,$00000000,$00000000
		end
