
		include	"offsetsd3.i"
		include	"d3Libs.i"

xangle		equ	$0800
yangle		equ	$1600
zangle		equ	$0400

distant		equ	$2000

xarcus		equ	$fa00
yarcus		equ	$0a00

drawcolor	equ	$06f1
backcolor	equ	$0def

radius		equ	$0080
zbegin		equ	$fc00
zend		equ	$0400		
		
		OpenD3	cleanup
		
		Lib	D3,OpenD3Screen		;openlibs

		TestZero	d0,error
		OpenD3Window	#0,#0,#158,#126,#1
		
		TestZero	d0,error
		
		OpenD3Window	#160,#0,#158,#126,#2
		
		TestZero	d0,error
		
		OpenD3Window	#0,#128,#158,#126,#3
		
		TestZero	d0,error
		
		OpenD3Window	#160,#128,#158,#126,#4
		
		TestZero	d0,error
		
		ColorSet	#drawcolor,#backcolor

		LightArcus	#xarcus,#yarcus,#1
		
		LightArcus	#xarcus,#yarcus,2

		D3Rot	#xangle,#yangle,#zangle,#1
		
		D3Rot	#$1000,#$0000,#$1000,#2
		
		D3Rot	#$0000,#$1000,#$1000,#3
		
		D3Rot	#$0000,#$0000,#$1000,#4   

		D3Dist	#distant			;distant

		AllocD3Buf	#1
		
		TestZero	d0,error

		AllocD3Buf	#2
		
		TestZero	d0,error
		
		AllocD3Buf	#3
		
		TestZero	d0,error
		
		AllocD3Buf	#4
		
		TestZero	d0,error
		
		ActiveD3Window	#1
		
		bsr		pipe	
	
		ActiveD3Window	#2
		
		bsr		pipe
		
		ActiveD3Window	#3
		
		bsr		pipe
		
		ActiveD3Window	#4
		
		Bsr		pipe
				
		ColorWindow	#1
		
		ColorWindow	#2
		
		ColorWindow	#3
		
		ColorWindow	#4
		
error		FreeD3Buf	#1
	
		FreeD3Buf	#2
		
		FreeD3Buf	#3
		
		FreeD3Buf	#4
		
		ClickD3Window	#1
		
		ClickD3Window	#2
		
		ClickD3Window	#3
		
		ClickD3Window	#4		
		Lib	D3,CloseD3Screen			;closelibs
cleanup		CloseD3
		rts


pipe
		move.w	#radius,d3
		moveq	#0,d4			;angle
		move.w	#zbegin,d5
loop		mulsini	d3,d4
		move.w	d0,-(sp)
		mulcosi	d3,d4
		move.w	d0,d1
		move.w	(sp)+,d0
		move.w	d5,d2
		
		Lib	D3,D3ColorPlot
			
		add.w	#36,d4
		cmp.w	#$4000,d4
		blt	loop
		
		tst.w	d5
		bpl	pos
		addq.w	#1,d3
		bra	over
pos		subq.w	#1,d3
over		
		moveq	#0,d4
		add.w	#12,d5
		cmp.w	#zend,d5
		blt	loop
		rts

_D3Base		dc.l	0		



		end	
