

		include "offsetsd3.i"
		include	"d3libs.i"

xangle		equ	$0d00
yangle		equ	$1600
zangle		equ   	$d800
xarcus		equ	$0200
yarcus		equ	$fd00
drawcolor	equ	$016f
backcolor	equ	$0def
distant		equ	$2000
		OpenD3  cleanup
		
		Lib	D3,OpenD3Screen		;openlibs

		OpenD3Window	#0,#0,#310,#240,#1
		
		TestZero	d0,error
		
		LightArcus	#xarcus,#yarcus

		ColorSet	#drawcolor,#backcolor
		
		D3Rot		#xangle,#yangle,#zangle
		
		D3Dist		#distant		;distans


		move.w	#$0200,d5			;m
		move.w	#$0100,d6			;n
		move.w	#$0500,d7			;l

		move.w	#0,d3
		move.w	#0,d4
		
		lea	yval(pc),a2	
		lea	vval(pc),a3
		lea	xval(pc),a4
		lea	zval(pc),a5

		AllocD3Buf	#1
		
loop
	
		mulcosi	d6,d4
		add.w	d5,d0
		move.w	d0,d2
		mulcosi	d2,d3
		move.w	d0,(a4)			;x
	
		mulcosi	d6,d4
		add.w	d5,d0
		move.w	d0,d2
		mulsini	d2,d3
		move.w	d0,(a5)			;z

		mulsini	d6,d4			;y*sin(s)
		move.w	d0,(a2)			y

		move.w	(a4),d2
		add.w	d7,d2
		move.w	d2,(a4)			;l+mcost+ncosscost
		mulcosi	d2,(a3)
		move.w	d0,d2
	
		mulsini	(a2),(a3)		;ysinv
		add.w	d2,d0
		move.w	d0,-(sp)		;xval

		mulcosi	(a2),(a3)		;ycosv
		move.w	d0,-(sp)

		move.w	(a4),d2
		
		mulsini	d2,(a3)			;xsinv
		sub.w	(sp)+,d0
		move.w	d0,(a2)			;y
			
		move.w	(a5),d0			;z
		move.w	d0,d2

	 	move.w	(a2),d1
		move.w	(sp)+,d0
		
		Lib	D3,D3ColorPlot
		add.w	#96,d4
		cmp.w	#$4000,d4
		ble 	loop		
		move.w	#0,d4
		add.w	#$0004,(a3)
		add.w	#32,d3
		cmp.w	#$4000,d3
		ble 	loop

		Lib 	D3,VanillaKey
		tst.b	d0
		bne	stop


		move.w	#0,d3
		move.w	(a3),d0
		cmp.w	#$4000,d0
		ble	loop
				
		
		ColorWindow	#1
		
stop
error		
		FreeD3Buf	#1
	
		ClickD3Window	#1

		Lib	D3,CloseD3Screen		;closelibs
cleanup		CloseD3
		rts

_D3Base		dc.l	0		

Aval		dc.w	0
vval		dc.w	0
xval		dc.w	0
yval		dc.w	0
zval		dc.w	0	
D3buf		dc.l	0
lm		dc.w	0





		end	
