* Pascal compiler intermediate assembly program.


	SECTION	ONE

	XREF	_stdout
	XREF	_p%writeint
	XREF	_p%writechar
	XREF	_p%writebool
	XREF	_p%writecharray
	XREF	_p%writestring
	XREF	_p%writeln
	XREF	_p%readint
	XREF	_p%readcharray
	XREF	_p%readchar
	XREF	_p%readarbbuf
	XREF	_p%readstring
	XREF	_p%readln
	XREF	_p%readarb
	XREF	_p%dispose
	XREF	_p%new
	XREF	_p%open
	XREF	_p%writearb
	XREF	_p%close
	XREF	_p%case
	XREF	_p%exit

	XREF	_p%initialize
	XREF	_p%wrapitup
	jsr	_p%initialize
	jsr	_MAIN
	jsr	_p%wrapitup
	rts

	XDEF	_usage
_usage	link	a5,#0
	move.l	#_p%1+0,d0
	move.l	_stdout,-(sp)
	move.w	#1,-(sp)
	move.l	#19,d3
	jsr	_p%writecharray
	addq.l	#2,sp
	jsr	_p%writeln
	addq.l	#4,sp
	move.l	#_p%1+19,d0
	move.l	_stdout,-(sp)
	move.w	#1,-(sp)
	move.l	#39,d3
	jsr	_p%writecharray
	addq.l	#2,sp
	jsr	_p%writeln
	addq.l	#4,sp
	move.w	#20,d0
	jsr	_p%exit
	unlk	a5
	rts

	XDEF	_readcycles
_readcycles	link	a5,#-8
	move.w	#1,d0
	ext.l	d0
	move.l	d0,-4(a5)
_p%2
	move.l	-4(a5),d0
	sub.l	#1,d0
	move.l	#_CommandLine,a0
	add.l	d0,a0
	move.b	(a0),d0
	move.l	d0,-(sp)
	move.b	#32,d0
	move.l	(sp)+,d1
	cmp.b	d0,d1
	seq	d0
	move.l	d0,-(sp)
	move.l	-4(a5),d0
	sub.l	#1,d0
	move.l	#_CommandLine,a0
	add.l	d0,a0
	move.b	(a0),d0
	move.l	d0,-(sp)
	move.w	#9,d0
	move.l	(sp)+,d1
	cmp.b	d0,d1
	seq	d0
	move.l	(sp)+,d1
	or.b	d1,d0
	move.l	d0,-(sp)
	move.l	-4(a5),d0
	move.l	d0,-(sp)
	move.w	#128,d0
	move.l	(sp)+,d1
	ext.l	d0
	cmp.l	d0,d1
	slt	d0
	move.l	(sp)+,d1
	and.b	d1,d0
	tst.b	d0
	beq	_p%3
	move.l	-4(a5),d0
	move.l	d0,-(sp)
	move.w	#1,d0
	move.l	(sp)+,d1
	ext.l	d0
	add.l	d1,d0
	move.l	d0,-4(a5)
	bra	_p%2
_p%3
	move.l	-4(a5),d0
	move.l	d0,-(sp)
	move.w	#128,d0
	move.l	(sp)+,d1
	ext.l	d0
	cmp.l	d0,d1
	sge	d0
	tst.b	d0
	beq	_p%4
	jsr	_usage
_p%4
	move.l	-4(a5),d0
	sub.l	#1,d0
	move.l	#_CommandLine,a0
	add.l	d0,a0
	move.b	(a0),d0
	move.l	d0,-(sp)
	move.b	#48,d0
	move.l	(sp)+,d1
	sub.b	d1,d0
	neg.b	d0
	ext.w	d0
	ext.l	d0
	move.l	d0,-8(a5)
	move.l	-8(a5),d0
	move.l	d0,-(sp)
	move.w	#6,d0
	move.l	(sp)+,d1
	ext.l	d0
	cmp.l	d0,d1
	sgt	d0
	move.l	d0,-(sp)
	move.l	-8(a5),d0
	move.l	d0,-(sp)
	move.w	#1,d0
	move.l	(sp)+,d1
	ext.l	d0
	cmp.l	d0,d1
	slt	d0
	move.l	(sp)+,d1
	or.b	d1,d0
	tst.b	d0
	beq	_p%5
	jsr	_usage
_p%5
	move.l	-8(a5),d0
	unlk	a5
	rts
	unlk	a5
	rts

	XDEF	_OpenTheWindow
_OpenTheWindow	link	a5,#-4
	move.l	#48,d0
	jsr	_p%new
	move.l	d0,-4(a5)
	move.l	-4(a5),d0
	move.l	d0,-(sp)
	move.w	#0,d0
	move.l	(sp)+,a0
	move.w	d0,(a0)
	move.l	-4(a5),d0
	add.l	#2,d0
	move.l	d0,-(sp)
	move.w	#0,d0
	move.l	(sp)+,a0
	move.w	d0,(a0)
	move.l	-4(a5),d0
	add.l	#4,d0
	move.l	d0,-(sp)
	move.w	#640,d0
	move.l	(sp)+,a0
	move.w	d0,(a0)
	move.l	-4(a5),d0
	add.l	#6,d0
	move.l	d0,-(sp)
	move.w	#200,d0
	move.l	(sp)+,a0
	move.w	d0,(a0)
	move.l	-4(a5),d0
	add.l	#8,d0
	move.l	d0,-(sp)
	move.w	#1,d0
	neg.w	d0
	move.l	(sp)+,a0
	move.b	d0,(a0)
	move.l	-4(a5),d0
	add.l	#9,d0
	move.l	d0,-(sp)
	move.w	#1,d0
	neg.w	d0
	move.l	(sp)+,a0
	move.b	d0,(a0)
	move.l	-4(a5),d0
	add.l	#10,d0
	move.l	d0,-(sp)
	move.l	#512,d0
	move.l	(sp)+,a0
	move.l	d0,(a0)
	move.l	-4(a5),d0
	add.l	#14,d0
	move.l	d0,-(sp)
	move.l	#4,d0
	move.l	d0,-(sp)
	move.l	#8,d0
	move.l	(sp)+,d1
	add.l	d1,d0
	move.l	d0,-(sp)
	move.l	#0,d0
	move.l	(sp)+,d1
	add.l	d1,d0
	move.l	d0,-(sp)
	move.l	#4096,d0
	move.l	(sp)+,d1
	add.l	d1,d0
	move.l	(sp)+,a0
	move.l	d0,(a0)
	move.l	-4(a5),d0
	add.l	#18,d0
	move.l	d0,-(sp)
	move.l	#0,d0
	move.l	(sp)+,a0
	move.l	d0,(a0)
	move.l	-4(a5),d0
	add.l	#22,d0
	move.l	d0,-(sp)
	move.l	#0,d0
	move.l	(sp)+,a0
	move.l	d0,(a0)
	move.l	-4(a5),d0
	add.l	#26,d0
	move.l	d0,-(sp)
	move.l	#_p%1+58,d0
	move.l	(sp)+,a0
	move.l	d0,(a0)
	move.l	-4(a5),d0
	add.l	#30,d0
	move.l	d0,-(sp)
	move.l	#0,d0
	move.l	(sp)+,a0
	move.l	d0,(a0)
	move.l	-4(a5),d0
	add.l	#34,d0
	move.l	d0,-(sp)
	move.l	#0,d0
	move.l	(sp)+,a0
	move.l	d0,(a0)
	move.l	-4(a5),d0
	add.l	#38,d0
	move.l	d0,-(sp)
	move.w	#50,d0
	move.l	(sp)+,a0
	move.w	d0,(a0)
	move.l	-4(a5),d0
	add.l	#42,d0
	move.l	d0,-(sp)
	move.w	#1,d0
	neg.w	d0
	move.l	(sp)+,a0
	move.w	d0,(a0)
	move.l	-4(a5),d0
	add.l	#40,d0
	move.l	d0,-(sp)
	move.w	#20,d0
	move.l	(sp)+,a0
	move.w	d0,(a0)
	move.l	-4(a5),d0
	add.l	#44,d0
	move.l	d0,-(sp)
	move.w	#1,d0
	neg.w	d0
	move.l	(sp)+,a0
	move.w	d0,(a0)
	move.l	-4(a5),d0
	add.l	#46,d0
	move.l	d0,-(sp)
	move.l	#1,d0
	move.l	(sp)+,a0
	move.w	d0,(a0)
	move.l	-4(a5),d0
	move.l	d0,-(sp)
	jsr	_OpenWindow
	add.l	#4,sp
	move.l	d0,_w
	move.l	-4(a5),d0
	jsr	_p%dispose
	move.l	_w,d0
	move.l	d0,-(sp)
	move.l	#0,d0
	move.l	(sp)+,d1
	cmp.l	d0,d1
	sne	d0
	unlk	a5
	rts
	unlk	a5
	rts

	XDEF	_initarrays
_initarrays	link	a5,#0
	move.w	#0,d0
	ext.l	d0
	muls	#4,d0
	move.l	#_sd,a0
	add.l	a0,d0
	move.l	d0,-(sp)
	move.w	#0,d0
	ext.l	d0
	move.l	(sp)+,a0
	move.l	d0,(a0)
	move.w	#0,d0
	ext.l	d0
	muls	#4,d0
	move.l	#_rd,a0
	add.l	a0,d0
	move.l	d0,-(sp)
	move.w	#0,d0
	ext.l	d0
	move.l	(sp)+,a0
	move.l	d0,(a0)
	move.w	#1,d0
	ext.l	d0
	muls	#4,d0
	move.l	#_sd,a0
	add.l	a0,d0
	move.l	d0,-(sp)
	move.w	#1,d0
	ext.l	d0
	move.l	(sp)+,a0
	move.l	d0,(a0)
	move.w	#1,d0
	ext.l	d0
	muls	#4,d0
	move.l	#_rd,a0
	add.l	a0,d0
	move.l	d0,-(sp)
	move.w	#0,d0
	ext.l	d0
	move.l	(sp)+,a0
	move.l	d0,(a0)
	move.w	#2,d0
	ext.l	d0
	muls	#4,d0
	move.l	#_sd,a0
	add.l	a0,d0
	move.l	d0,-(sp)
	move.w	#1,d0
	ext.l	d0
	move.l	(sp)+,a0
	move.l	d0,(a0)
	move.w	#2,d0
	ext.l	d0
	muls	#4,d0
	move.l	#_rd,a0
	add.l	a0,d0
	move.l	d0,-(sp)
	move.w	#7,d0
	ext.l	d0
	move.l	(sp)+,a0
	move.l	d0,(a0)
	move.w	#3,d0
	ext.l	d0
	muls	#4,d0
	move.l	#_sd,a0
	add.l	a0,d0
	move.l	d0,-(sp)
	move.w	#0,d0
	ext.l	d0
	move.l	(sp)+,a0
	move.l	d0,(a0)
	move.w	#3,d0
	ext.l	d0
	muls	#4,d0
	move.l	#_rd,a0
	add.l	a0,d0
	move.l	d0,-(sp)
	move.w	#10,d0
	ext.l	d0
	move.l	(sp)+,a0
	move.l	d0,(a0)
	move.w	#4,d0
	ext.l	d0
	muls	#4,d0
	move.l	#_sd,a0
	add.l	a0,d0
	move.l	d0,-(sp)
	move.w	#0,d0
	ext.l	d0
	move.l	(sp)+,a0
	move.l	d0,(a0)
	move.w	#4,d0
	ext.l	d0
	muls	#4,d0
	move.l	#_rd,a0
	add.l	a0,d0
	move.l	d0,-(sp)
	move.w	#0,d0
	ext.l	d0
	move.l	(sp)+,a0
	move.l	d0,(a0)
	move.w	#5,d0
	ext.l	d0
	muls	#4,d0
	move.l	#_sd,a0
	add.l	a0,d0
	move.l	d0,-(sp)
	move.w	#0,d0
	ext.l	d0
	move.l	(sp)+,a0
	move.l	d0,(a0)
	move.w	#5,d0
	ext.l	d0
	muls	#4,d0
	move.l	#_rd,a0
	add.l	a0,d0
	move.l	d0,-(sp)
	move.w	#2,d0
	ext.l	d0
	move.l	(sp)+,a0
	move.l	d0,(a0)
	move.w	#6,d0
	ext.l	d0
	muls	#4,d0
	move.l	#_sd,a0
	add.l	a0,d0
	move.l	d0,-(sp)
	move.w	#1,d0
	ext.l	d0
	move.l	(sp)+,a0
	move.l	d0,(a0)
	move.w	#6,d0
	ext.l	d0
	muls	#4,d0
	move.l	#_rd,a0
	add.l	a0,d0
	move.l	d0,-(sp)
	move.w	#2,d0
	ext.l	d0
	move.l	(sp)+,a0
	move.l	d0,(a0)
	move.l	#_n,a0
	move.l	a0,-(sp)
	move.w	#0,d0
	move.l	(sp),a0
	move.l	d0,(a0)
	move.w	#6,d0
	move.l	d0,-(sp)
_p%6
	move.l	_n,d0
	muls	#4,d0
	move.l	#_ln,a0
	add.l	a0,d0
	move.l	d0,-(sp)
	move.w	#1,d0
	ext.l	d0
	move.l	d0,-(sp)
	jsr	_SPFloat
	add.l	#4,sp
	move.l	d0,-(sp)
	move.w	#3,d0
	ext.l	d0
	move.l	d0,-(sp)
	jsr	_SPFloat
	add.l	#4,sp
	move.l	d0,-(sp)
	jsr	_SPDiv
	add.l	#8,sp
	move.l	(sp)+,a0
	move.l	d0,(a0)
	move.l	4(sp),a0
	add.l	#1,(a0)
	move.l	(a0),d0
	move.l	(sp),d1
	cmp.l	d1,d0
	ble	_p%6
	add.l	#8,sp
	move.w	#2,d0
	ext.l	d0
	muls	#4,d0
	move.l	#_ln,a0
	add.l	a0,d0
	move.l	d0,-(sp)
	move.w	#1,d0
	ext.l	d0
	muls	#4,d0
	move.l	#_ln,a0
	add.l	d0,a0
	move.l	(a0),d0
	move.l	d0,-(sp)
	jsr	_SPSqrt
	add.l	#4,sp
	move.l	(sp)+,a0
	move.l	d0,(a0)
	move.w	#0,d0
	ext.l	d0
	move.l	d0,-(sp)
	jsr	_SPFloat
	add.l	#4,sp
	move.l	d0,_a
	move.l	#_n,a0
	move.l	a0,-(sp)
	move.w	#6,d0
	move.l	(sp),a0
	move.l	d0,(a0)
	move.w	#11,d0
	move.l	d0,-(sp)
_p%7
	move.l	_n,d0
	muls	#4,d0
	move.l	#_dy,a0
	add.l	a0,d0
	move.l	d0,-(sp)
	move.l	_n,d0
	muls	#4,d0
	move.l	#_dx,a0
	adda.l	d0,a0
	move.l	a0,-(sp)
	move.l	_a,d0
	move.l	d0,-(sp)
	jsr	_SPSincos
	add.l	#8,sp
	move.l	(sp)+,a0
	move.l	d0,(a0)
	move.l	_a,d0
	move.l	d0,-(sp)
	move.l	#$CC87,d0
	move.l	d0,-(sp)
	jsr	_SPFloat
	add.l	#4,sp
	move.l	d0,-(sp)
	move.l	#$186A0,d0
	move.l	d0,-(sp)
	jsr	_SPFloat
	add.l	#4,sp
	move.l	d0,-(sp)
	jsr	_SPDiv
	add.l	#8,sp
	move.l	d0,-(sp)
	jsr	_SPAdd
	add.l	#8,sp
	move.l	d0,_a
	move.l	4(sp),a0
	add.l	#1,(a0)
	move.l	(a0),d0
	move.l	(sp),d1
	cmp.l	d1,d0
	ble	_p%7
	add.l	#8,sp
	move.l	#_n,a0
	move.l	a0,-(sp)
	move.w	#0,d0
	move.l	(sp),a0
	move.l	d0,(a0)
	move.w	#5,d0
	move.l	d0,-(sp)
_p%8
	move.l	_n,d0
	muls	#4,d0
	move.l	#_dx,a0
	add.l	a0,d0
	move.l	d0,-(sp)
	move.l	_n,d0
	move.l	d0,-(sp)
	move.w	#6,d0
	move.l	(sp)+,d1
	ext.l	d0
	add.l	d1,d0
	muls	#4,d0
	move.l	#_dx,a0
	add.l	d0,a0
	move.l	(a0),d0
	move.l	d0,-(sp)
	jsr	_SPNeg
	add.l	#4,sp
	move.l	(sp)+,a0
	move.l	d0,(a0)
	move.l	_n,d0
	muls	#4,d0
	move.l	#_dy,a0
	add.l	a0,d0
	move.l	d0,-(sp)
	move.l	_n,d0
	move.l	d0,-(sp)
	move.w	#6,d0
	move.l	(sp)+,d1
	ext.l	d0
	add.l	d1,d0
	muls	#4,d0
	move.l	#_dy,a0
	add.l	d0,a0
	move.l	(a0),d0
	move.l	d0,-(sp)
	jsr	_SPNeg
	add.l	#4,sp
	move.l	(sp)+,a0
	move.l	d0,(a0)
	move.l	4(sp),a0
	add.l	#1,(a0)
	move.l	(a0),d0
	move.l	(sp),d1
	cmp.l	d1,d0
	ble	_p%8
	add.l	#8,sp
	move.w	#534,d0
	ext.l	d0
	move.l	d0,-(sp)
	jsr	_SPFloat
	add.l	#4,sp
	move.l	d0,_x
	move.w	#151,d0
	ext.l	d0
	move.l	d0,-(sp)
	jsr	_SPFloat
	add.l	#4,sp
	move.l	d0,_y
	move.w	#324,d0
	ext.l	d0
	move.l	d0,-(sp)
	jsr	_SPFloat
	add.l	#4,sp
	move.l	d0,_t
	move.w	#4,d0
	ext.l	d0
	move.l	d0,-(sp)
	jsr	_SPFloat
	add.l	#4,sp
	move.l	d0,-(sp)
	move.w	#3,d0
	ext.l	d0
	move.l	d0,-(sp)
	jsr	_SPFloat
	add.l	#4,sp
	move.l	d0,-(sp)
	jsr	_SPDiv
	add.l	#8,sp
	move.l	d0,_rcon133
	move.w	#1,d0
	ext.l	d0
	move.l	d0,-(sp)
	jsr	_SPFloat
	add.l	#4,sp
	move.l	d0,-(sp)
	move.w	#2,d0
	ext.l	d0
	move.l	d0,-(sp)
	jsr	_SPFloat
	add.l	#4,sp
	move.l	d0,-(sp)
	jsr	_SPDiv
	add.l	#8,sp
	move.l	d0,_rcon05
	unlk	a5
	rts

	XDEF	_MAIN
_MAIN
	jsr	_readcycles
	move.l	d0,_nc
	jsr	_OpenMathTrans
	not.b	d0
	tst.b	d0
	beq	_p%9
	move.l	#_p%1+76,d0
	move.l	_stdout,-(sp)
	move.w	#1,-(sp)
	move.l	#33,d3
	jsr	_p%writecharray
	addq.l	#2,sp
	jsr	_p%writeln
	addq.l	#4,sp
	move.w	#20,d0
	jsr	_p%exit
_p%9
	jsr	_initarrays
	move.l	#_p%1+109,d0
	move.l	d0,-(sp)
	move.w	#0,d0
	ext.l	d0
	move.l	d0,-(sp)
	jsr	_OpenLibrary
	add.l	#8,sp
	move.l	d0,_GfxBase
	move.l	_GfxBase,d0
	move.l	d0,-(sp)
	move.l	#0,d0
	move.l	(sp)+,d1
	cmp.l	d0,d1
	seq	d0
	tst.b	d0
	beq	_p%10
	move.l	#_p%1+126,d0
	move.l	_stdout,-(sp)
	move.w	#1,-(sp)
	move.l	#31,d3
	jsr	_p%writecharray
	addq.l	#2,sp
	jsr	_p%writeln
	addq.l	#4,sp
	jsr	_FlushMathTrans
	move.w	#20,d0
	jsr	_p%exit
_p%10
	jsr	_OpenTheWindow
	tst.b	d0
	beq	_p%11
	move.l	_w,d0
	add.l	#50,d0
	move.l	d0,a0
	move.l	(a0),d0
	move.l	d0,_rp
	move.l	#_n,a0
	move.l	a0,-(sp)
	move.w	#0,d0
	move.l	(sp),a0
	move.l	d0,(a0)
	move.l	_nc,d0
	move.l	d0,-(sp)
_p%12
	move.l	_n,d0
	muls	#4,d0
	move.l	#_sn,a0
	add.l	a0,d0
	move.l	d0,-(sp)
	move.w	#0,d0
	ext.l	d0
	move.l	(sp)+,a0
	move.l	d0,(a0)
	move.l	4(sp),a0
	add.l	#1,(a0)
	move.l	(a0),d0
	move.l	(sp),d1
	cmp.l	d1,d0
	ble	_p%12
	add.l	#8,sp
	move.l	_rp,d0
	move.l	d0,-(sp)
	move.l	_x,d0
	move.l	d0,-(sp)
	jsr	_SPFix
	add.l	#4,sp
	move.l	d0,-(sp)
	move.l	_y,d0
	move.l	d0,-(sp)
	jsr	_SPFix
	add.l	#4,sp
	move.l	d0,-(sp)
	jsr	_Move
	add.l	#12,sp
_p%13
	move.w	#0,d0
	ext.l	d0
	move.l	d0,_d
	move.l	_t,d0
	move.l	d0,_l
	move.w	#0,d0
	ext.l	d0
	move.l	d0,_ns
	move.l	#_n,a0
	move.l	a0,-(sp)
	move.w	#1,d0
	move.l	(sp),a0
	move.l	d0,(a0)
	move.l	_nc,d0
	move.l	d0,-(sp)
_p%14
	move.l	_n,d0
	muls	#4,d0
	move.l	#_sn,a0
	add.l	d0,a0
	move.l	(a0),d0
	move.l	d0,_i
	move.l	_l,d0
	move.l	d0,-(sp)
	move.l	_i,d0
	muls	#4,d0
	move.l	#_ln,a0
	add.l	d0,a0
	move.l	(a0),d0
	move.l	d0,-(sp)
	jsr	_SPMul
	add.l	#8,sp
	move.l	d0,_l
	move.l	_n,d0
	move.l	d0,-(sp)
	move.w	#1,d0
	move.l	(sp)+,d1
	ext.l	d0
	sub.l	d1,d0
	neg.l	d0
	muls	#4,d0
	move.l	#_sn,a0
	add.l	d0,a0
	move.l	(a0),d0
	move.l	d0,_j
	move.l	_ns,d0
	move.l	d0,-(sp)
	move.l	_j,d0
	muls	#4,d0
	move.l	#_sd,a0
	add.l	d0,a0
	move.l	(a0),d0
	move.l	(sp)+,d1
	add.l	d1,d0
	move.l	d0,_ns
	move.l	_ns,d0
	and.l	#1,d0
	sne	d0
	tst.b	d0
	beq	_p%15
	move.l	_d,d0
	move.l	d0,-(sp)
	move.w	#12,d0
	move.l	(sp)+,d1
	ext.l	d0
	add.l	d1,d0
	move.l	d0,-(sp)
	move.l	_i,d0
	muls	#4,d0
	move.l	#_rd,a0
	add.l	d0,a0
	move.l	(a0),d0
	move.l	(sp)+,d1
	sub.l	d1,d0
	neg.l	d0
	move.l	d0,-(sp)
	move.w	#12,d0
	move.l	(sp)+,d1
	ext.l	d0
	divs	d0,d1
	move.l	d1,d0
	swap	d0
	ext.l	d0
	move.l	d0,_d
	bra	_p%16
_p%15
	move.l	_d,d0
	move.l	d0,-(sp)
	move.l	_i,d0
	muls	#4,d0
	move.l	#_rd,a0
	add.l	d0,a0
	move.l	(a0),d0
	move.l	(sp)+,d1
	add.l	d1,d0
	move.l	d0,-(sp)
	move.w	#12,d0
	move.l	(sp)+,d1
	ext.l	d0
	divs	d0,d1
	move.l	d1,d0
	swap	d0
	ext.l	d0
	move.l	d0,_d
_p%16
	move.l	4(sp),a0
	add.l	#1,(a0)
	move.l	(a0),d0
	move.l	(sp),d1
	cmp.l	d1,d0
	ble	_p%14
	add.l	#8,sp
	move.l	_x,d0
	move.l	d0,-(sp)
	move.l	_rcon133,d0
	move.l	d0,-(sp)
	move.l	_l,d0
	move.l	d0,-(sp)
	jsr	_SPMul
	add.l	#8,sp
	move.l	d0,-(sp)
	move.l	_d,d0
	muls	#4,d0
	move.l	#_dx,a0
	add.l	d0,a0
	move.l	(a0),d0
	move.l	d0,-(sp)
	jsr	_SPMul
	add.l	#8,sp
	move.l	d0,-(sp)
	jsr	_SPAdd
	add.l	#8,sp
	move.l	d0,_x
	move.l	_y,d0
	move.l	d0,-(sp)
	move.l	_l,d0
	move.l	d0,-(sp)
	move.l	_d,d0
	muls	#4,d0
	move.l	#_dy,a0
	add.l	d0,a0
	move.l	(a0),d0
	move.l	d0,-(sp)
	jsr	_SPMul
	add.l	#8,sp
	move.l	d0,-(sp)
	move.l	_rcon05,d0
	move.l	d0,-(sp)
	jsr	_SPMul
	add.l	#8,sp
	move.l	d0,-(sp)
	jsr	_SPSub
	add.l	#8,sp
	move.l	d0,_y
	move.l	_rp,d0
	move.l	d0,-(sp)
	move.l	_x,d0
	move.l	d0,-(sp)
	jsr	_SPFix
	add.l	#4,sp
	move.l	d0,-(sp)
	move.l	_y,d0
	move.l	d0,-(sp)
	jsr	_SPFix
	add.l	#4,sp
	move.l	d0,-(sp)
	jsr	_Draw
	add.l	#12,sp
	move.l	_nc,d0
	muls	#4,d0
	move.l	#_sn,a0
	add.l	a0,d0
	move.l	d0,-(sp)
	move.l	_nc,d0
	muls	#4,d0
	move.l	#_sn,a0
	add.l	d0,a0
	move.l	(a0),d0
	move.l	d0,-(sp)
	move.w	#1,d0
	move.l	(sp)+,d1
	ext.l	d0
	add.l	d1,d0
	move.l	(sp)+,a0
	move.l	d0,(a0)
	move.l	_nc,d0
	move.l	d0,_n
_p%17
	move.l	_n,d0
	move.l	d0,-(sp)
	move.w	#1,d0
	move.l	(sp)+,d1
	ext.l	d0
	cmp.l	d0,d1
	sge	d0
	move.l	d0,-(sp)
	move.l	_n,d0
	muls	#4,d0
	move.l	#_sn,a0
	add.l	d0,a0
	move.l	(a0),d0
	move.l	d0,-(sp)
	move.w	#7,d0
	move.l	(sp)+,d1
	ext.l	d0
	cmp.l	d0,d1
	seq	d0
	move.l	(sp)+,d1
	and.b	d1,d0
	tst.b	d0
	beq	_p%18
	move.l	_n,d0
	muls	#4,d0
	move.l	#_sn,a0
	add.l	a0,d0
	move.l	d0,-(sp)
	move.w	#0,d0
	ext.l	d0
	move.l	(sp)+,a0
	move.l	d0,(a0)
	move.l	_n,d0
	move.l	d0,-(sp)
	move.w	#1,d0
	move.l	(sp)+,d1
	ext.l	d0
	sub.l	d1,d0
	neg.l	d0
	muls	#4,d0
	move.l	#_sn,a0
	add.l	a0,d0
	move.l	d0,-(sp)
	move.l	_n,d0
	move.l	d0,-(sp)
	move.w	#1,d0
	move.l	(sp)+,d1
	ext.l	d0
	sub.l	d1,d0
	neg.l	d0
	muls	#4,d0
	move.l	#_sn,a0
	add.l	d0,a0
	move.l	(a0),d0
	move.l	d0,-(sp)
	move.w	#1,d0
	move.l	(sp)+,d1
	ext.l	d0
	add.l	d1,d0
	move.l	(sp)+,a0
	move.l	d0,(a0)
	move.l	_n,d0
	move.l	d0,-(sp)
	move.w	#1,d0
	move.l	(sp)+,d1
	ext.l	d0
	sub.l	d1,d0
	neg.l	d0
	move.l	d0,_n
	bra	_p%17
_p%18
	move.w	#0,d0
	ext.l	d0
	muls	#4,d0
	move.l	#_sn,a0
	add.l	d0,a0
	move.l	(a0),d0
	move.l	d0,-(sp)
	move.w	#0,d0
	move.l	(sp)+,d1
	ext.l	d0
	cmp.l	d0,d1
	sne	d0
	tst.b	d0
	beq	_p%13
	move.l	_w,d0
	add.l	#86,d0
	move.l	d0,a0
	move.l	(a0),d0
	move.l	d0,-(sp)
	jsr	_WaitPort
	add.l	#4,sp
	move.l	d0,_m
	jsr	_Forbid
_p%19
	move.l	_w,d0
	add.l	#86,d0
	move.l	d0,a0
	move.l	(a0),d0
	move.l	d0,-(sp)
	jsr	_GetMsg
	add.l	#4,sp
	move.l	d0,_m
	move.l	_m,d0
	move.l	d0,-(sp)
	move.l	#0,d0
	move.l	(sp)+,d1
	cmp.l	d0,d1
	seq	d0
	tst.b	d0
	beq	_p%19
	jsr	_Permit
	move.l	_w,d0
	move.l	d0,-(sp)
	jsr	_CloseWindow
	add.l	#4,sp
	bra	_p%20
_p%11
	move.l	#_p%1+157,d0
	move.l	_stdout,-(sp)
	move.w	#1,-(sp)
	move.l	#25,d3
	jsr	_p%writecharray
	addq.l	#2,sp
	jsr	_p%writeln
	addq.l	#4,sp
_p%20
	move.l	_GfxBase,d0
	move.l	d0,-(sp)
	jsr	_CloseLibrary
	add.l	#4,sp
	jsr	_FlushMathTrans
	rts

	SECTION	THREE,BSS

	XDEF	_CommandLine
_CommandLine	ds.b	128
	XREF	_OpenWindow
	XREF	_CloseWindow
	XREF	_OpenScreen
	XREF	_CloseScreen
	XREF	_CurrentTime
	XREF	_MoveScreen
	XREF	_MoveWindow
	XREF	_ScreenToBack
	XREF	_ScreenToFront
	XREF	_SetWindowTitles
	XREF	_ShowTitle
	XREF	_SizeWindow
	XREF	_ViewPortAddress
	XREF	_WBenchToBack
	XREF	_WBenchToFront
	XREF	_WindowToBack
	XREF	_WindowToFront
	XREF	_SPFix
	XREF	_SPFloat
	XREF	_SPCmp
	XREF	_SPTst
	XREF	_SPAbs
	XREF	_SPNeg
	XREF	_SPAdd
	XREF	_SPSub
	XREF	_SPMul
	XREF	_SPDiv
	XREF	_OpenMathTrans
	XREF	_CloseMathTrans
	XREF	_FlushMathTrans
	XREF	_SPAsin
	XREF	_SPAcos
	XREF	_SPAtan
	XREF	_SPSin
	XREF	_SPCos
	XREF	_SPTan
	XREF	_SPSincos
	XREF	_SPSinh
	XREF	_SPCosh
	XREF	_SPTanh
	XREF	_SPExp
	XREF	_SPLog
	XREF	_SPLog10
	XREF	_SPPow
	XREF	_SPSqrt
	XREF	_SPTieee
	XREF	_SPFieee
	XDEF	_GfxBase
_GfxBase	ds.b	4
	XREF	_AllocRaster
	XREF	_AreaDraw
	XREF	_AreaEnd
	XREF	_AreaMove
	XREF	_BltClear
	XREF	_Draw
	XREF	_Flood
	XREF	_FreeRaster
	XREF	_InitBitMap
	XREF	_InitRastPort
	XREF	_Move
	XREF	_OwnBlitter
	XREF	_DisownBlitter
	XREF	_PolyDraw
	XREF	_ReadPixel
	XREF	_RectFill
	XREF	_ScrollRaster
	XREF	_SetAPen
	XREF	_SetBPen
	XREF	_SetDrMd
	XREF	_SetRast
	XREF	_SetRGB4
	XREF	_VBeamPos
	XREF	_WaitTOF
	XREF	_WritePixel
	XREF	_OpenLibrary
	XREF	_CloseLibrary
	XREF	_AvailMem
	XREF	_AllocMem
	XREF	_FreeMem
	XREF	_FindTask
	XREF	_SetTaskPri
	XREF	_Forbid
	XREF	_Permit
	XREF	_AddPort
	XREF	_FindPort
	XREF	_GetMsg
	XREF	_PutMsg
	XREF	_RemPort
	XREF	_ReplyMsg
	XREF	_WaitPort
	XDEF	_dx
_dx	ds.b	48
	XDEF	_dy
_dy	ds.b	48
	XDEF	_sd
_sd	ds.b	28
	XDEF	_rd
_rd	ds.b	28
	XDEF	_sn
_sn	ds.b	28
	XDEF	_ln
_ln	ds.b	28
	XDEF	_a
_a	ds.b	4
	XDEF	_nc
_nc	ds.b	4
	XDEF	_x
_x	ds.b	4
	XDEF	_y
_y	ds.b	4
	XDEF	_t
_t	ds.b	4
	XDEF	_w
_w	ds.b	4
	XDEF	_rp
_rp	ds.b	4
	XDEF	_n
_n	ds.b	4
	XDEF	_d
_d	ds.b	4
	XDEF	_ns
_ns	ds.b	4
	XDEF	_i
_i	ds.b	4
	XDEF	_j
_j	ds.b	4
	XDEF	_l
_l	ds.b	4
	XDEF	_rcon133
_rcon133	ds.b	4
	XDEF	_rcon05
_rcon05	ds.b	4
	XDEF	_m
_m	ds.b	4

	SECTION	TWO,DATA

_p%1	dc.b	'Usage: Snow <level>       where <level> '
	dc.b	'is between 1 and 6Fractal Snowflake',0
	dc.b	'Could not open MathTrans.library.graphic'
	dc.b	's.library',0,'Could not open Graphics.lib'
	dc.b	'raryCould not open the window'
	END
