;*ratas

xangle		equ	$0400
yangle		equ	$0a00
zangle		equ	$0200

distant		equ	$2000

aradius		equ	$0300
bradius		equ	$0100

xarcus		equ	$0200
yarcus		equ	$0400
drawcolor	equ	$001f
backcolor	equ	$0fed

		include	"offsets.i"
		include	"offsetsd3.i"
		include	"d3Libs.i"
		
		OpenD3	cleanup 
		
		Lib	D3,OpenD3Screen			;openlibs

		OpenD3Window	#20,#20,#160,#140,#1
		
		TestZero		d0,error
		LightArcus	#xarcus,#yarcus

		ColorSet	#drawcolor,#backcolor

		D3Rot		#xangle,#yangle,#zangle

		D3Dist		#distant			;distans

		AllocD3Buf	#1
		
		TestZero	d0,error
		bsr	ring
		
		OpenD3Window	#140,#120,#160,#130,#2
		
		TestZero	d0,error
		D3Rot		#$2400,#$0a00,#$fc00
		
		AllocD3Buf	#2
		
		TestZero		d0,error
		
		bsr	ring
		bra	cont
			
ring		move.w	#aradius,d5
		move.w	#bradius,d6
		move.w	#0,d3
		move.w	#0,d4
		lea	Bval(pc),a3
		lea	xval(pc),a4
		lea	yval(pc),a5
		
loop		
		move.w	#bradius,d6
		move.w	d3,d0
		muls.w	#32,d0
		move.w	#$0040,d2
		mulsini	d2,d0
		add.w	d0,d6

		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)			;y
		mulsini	d6,d4			;z*sin(s)
				

		move.w	d0,d2
		
		D3ColorPlot	(a4),(a5),d2
		add.w	#96,d4
		cmp.w	#$4000,d4
		ble 	loop		

		move.w	#0,d4
		add.w	#18,d3
		cmp.w	#$4000,d3
		ble 	loop
		rts
		
				
	
cont	
		ColorWindow	#1
		
		ColorWindow	#2
error
		FreeD3Buf	#1
	
		FreeD3Buf	#2

		ClickD3Window	#1
		
		ClickD3Window	#2
		
		Lib	D3,CloseD3Screen			;closelibs

cleanup		CloseD3
		rts

_D3Base		dc.l	0		

Aval		dc.w	0
Bval		dc.w	0
vval		dc.w	0
xval		dc.w	0
yval		dc.w	0
zval		dc.w	0	

		end	


		
	
