
xangle		equ	$0a00
yangle		equ	$1600
zangle		equ	$fd00

drawcolor	equ	$0fd0
backcolor	equ	$0def

distant		equ	$2000

xarcus		equ	$0400
yarcus		equ	$fa00


;		incdir	"ram:include/"
		include	"offsets.i"
		include "offsetsd3.i"
		include	"D3Libs.i"
		
		OpenD3	cleanup
		
		Lib	D3,OpenD3Screen			;openlibs

		OpenD3Window	#0,#0,#310,#240,#1
		
		TestZero	d0,error
		
		D3Rot		#xangle,#yangle,#zangle
		
		D3Dist		#distant			;distans

		ColorSet	#drawcolor,#backcolor

		LightArcus	#xarcus,#yarcus
		
		move.w	#$0200,d5			;m
		move.w	#$0080,d6			;n
		move.w	#$0600,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
		
		TestZero	d0,error

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	d4,d0
	
		move.w	(a2),d1
		move.w	(sp)+,d0

		Lib	D3,D3ColorPlot
		add.w	#48,d4
		cmp.w	#$4000,d4
		ble 	loop		
		move.w	#0,d4
		add.w	#72,d3
		cmp.w	#$4000,d3
		ble 	loop

		add.w	#$0800,(a3)
		move.w	#0,d3
		move.w	(a3),d0
		cmp.w	#$4000,d0
		ble	loop
				
		ColorWindow	#1
	
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	



		end	
