.TITLE	$DLG03
	.IFDF	CND$10





	.GLOBL	DLOG,DLOG10,$ERR
	.IFNDF	FPU
	.GLOBL	$POLSH,$ADD,$SBD,$MLD,$DVD,$ID,$POPR4
	.ENDC








	R0=%0
	R1=%1
	R2=%2
	R3=%3
	R4=%4
	R5=%5
	SP=%6
	PC=%7
	F0=%0
	F1=%1
	F2=%2
	F3=%3
	.IFNDF	FPU
DLOG10:	MOV	@PC,-(SP)
	BR	LOG$10
DLOG:	CLR	-(SP)
LOG$10:	MOV	R5,-(SP)
	MOV	2(R5),R4
	ADD	#8.,R4
	MOV	#147572,-(SP)
	MOV	#173721,-(SP)
	MOV	#071027,-(SP)
	MOV	#137661,-(SP)
	SUB	#8.,SP
	MOV	-(R4),-(SP)
	MOV	-(R4),-(SP)
	MOV	-(R4),-(SP)
	MOV	-(R4),-(SP)
	BLE	ERR$10
	ASL	@SP
	MOVB	1(SP),26.(SP)
	MOVB	#200,1(SP)
	ROR	@SP
	MOV	#157145,-(SP)
	MOV	#031771,-(SP)
	MOV	#002363,-(SP)
	MOV	#040065,-(SP)
	MOV	14.(SP),-(SP)
	MOV	14.(SP),-(SP)
	MOV	14.(SP),-(SP)
	MOV	14.(SP),-(SP)
	MOV	#157145,-(SP)
	MOV	#031771,-(SP)
	MOV	#002363,-(SP)
	MOV	#040065,-(SP)
	JSR	R4,$POLSH
	.WORD	$SBD,UP$10,$ADD,$DVD

	.WORD	DUP$10,DUP$10
	.WORD	$MLD
	.WORD	$POPR4
	.WORD	REG$10
XPD$10:	.WORD	$MLD,$ADD,$MLD,$ADD,$MLD,$ADD,$MLD,$ADD
	.WORD	$MLD,$ADD,$MLD,$ADD,$MLD,$ADD

	.WORD	SCL$10,$ID,PL2$10,$MLD
	.WORD	$ADD,EXI$10

	.WORD	$MLD,EXI$10
ERR$10:	ADD	#24.,SP
	JSR	R5,$ERR
	BR	ERO$10
	.BYTE	4
	.BYTE	3

REG$10:	MOV	#CON$10+8.,R4
	MOV	#7,R5
	BR	STC$10
STK$10:	MOV	R3,-(SP)
	MOV	R2,-(SP)
	MOV	R1,-(SP)
	MOV	R0,-(SP)
STC$10:	MOV	-(R4),-(SP)
	MOV	-(R4),-(SP)
	MOV	-(R4),-(SP)
	MOV	-(R4),-(SP)
	DEC	R5
	BGT	STK$10
	MOV	#XPD$10,R4
	JMP	@(R4)+

UP$10:	MOV	(SP)+,22.(SP)
	MOV	(SP)+,22.(SP)
	MOV	(SP)+,22.(SP)
	MOV	(SP)+,22.(SP)
	JMP	@(R4)+

SCL$10:	CLR	-(SP)
	BISB	12.(SP),@SP
	SUB	#200,@SP
	JMP	@(R4)+

DUP$10:	MOV	6(SP),-(SP)
	MOV	6(SP),-(SP)
	MOV	6(SP),-(SP)
	MOV	6(SP),-(SP)
	JMP	@(R4)+

PL2$10:	MOV	#147572,-(SP)
	MOV	#173721,-(SP)
	MOV	#071027,-(SP)
	MOV	#040061,-(SP)
	JMP	@(R4)+

EXI$10:	DECB	11.(SP)
	BLT	LGT$10
	MOV	#024162,-(SP)
	MOV	#124467,-(SP)
	MOV	#055730,-(SP)
	MOV	#037736,-(SP)
	JMP	@(R4)+
LGT$10:	MOV	(SP)+,R0
	MOV	(SP)+,R1
	MOV	(SP)+,R2
	MOV	(SP)+,R3
ERO$10:	MOV	(SP)+,R5
	TST	(SP)+
	RTS	R5
	.ENDC

	.IFDF	FPU
DLOG10:	MOV	@PC,R4
	BR	LOG$10
DLOG:	CLR	R4
LOG$10:	SETD
	SETI
	MOV	#FCO$10,R0
	LDD	@2(R5),F2
	CFCC
	BLE	ERR$10
	STEXP	F2,R1
	LDCID	R1,F3
	MULD	(R0)+,F3
	LDEXP	#0,F2

	LDD	F2,F1
	SUBD	(R0),F2
	ADDD	(R0)+,F1
	DIVD	F1,F2
	LDD	F2,F1
	MULD	F1,F1

	MOV	#6,R1
	LDD	(R0)+,F0
XPD$10:	MULD	F1,F0
	DEC	R1
	ADDD	(R0)+,F0
	BGT	XPD$10
	MULD	F2,F0
	ADDD	(R0)+,F0
	ADDD	F3,F0
	TST	R4
	BEQ	LGT$10
	MULD	(R0),F0

LGT$10:	STD	F0,-(SP)
	MOV	(SP)+,R0
	MOV	(SP)+,R1
	MOV	(SP)+,R2
	MOV	(SP)+,R3
	RTS	R5

ERR$10:	JSR	R5,$ERR
	RTS	R5
	.BYTE 	4
	.BYTE	3




FCO$10:	.WORD	040061,071027
	.WORD	173721,147572

	.WORD	040065,002363
	.WORD	031771,157145
	.ENDC

	.WORD	037455,106270
	.WORD	157166,174770

	.WORD	037471,072731
	.WORD	137716,117115

	.WORD	037543,111153
	.WORD	060101,135465

	.WORD	037622,044436
	.WORD	007306,063062

	.WORD	037714,146314
	.WORD	153450,165773

	.WORD	040052,125252
	.WORD	125247,004643

CON$10:	.WORD	040400,000000
	.WORD	000000,000057
	.IFDF	FPU


	.WORD	137661,071027
	.WORD	173721,147572

	.WORD	037736,055730
	.WORD	124467,024162
	.ENDC
	.ENDC
	.TITLE	$DNT02
	.IFDF	CND$11



	.GLOBL	$DINT




	R0=%0
	R1=%1
	R2=%2
	R3=%3
	R4=%4
	R5=%5
	SP=%6
	MQ=177304
	ASH=177316
	F0=%0
	F1=%1
	.IFDF	FPU
$DINT:	.WORD	170011
	.WORD	172426
	.WORD	171467,4
	.WORD	174146
	JMP	@(R4)+
	.WORD	040200,0,0,0
	.ENDC
	.IFNDF	FPU
$DINT:	MOV	(SP)+,R0
	MOV	(SP)+,R1
	MOV	(SP)+,R2
	MOV	(SP)+,R3
	MOV	R4,-(SP)
	MOV	R5,-(SP)
	MOV	R0,R4
	ROL	R4
	CLRB	R4
	SWAB	R4
	SUB	#270,R4
	BGE	DNE$11
	CMP	#-70,R4
	BLT	SHF$11
	CLR	R0
	CLR	R1
C23$11:	CLR	R2
	CLR	R3
	BR	DNE$11
SHF$11:
	.IFNDF	EAE&MULDIV
	MOV	R4,R5
	CMP	#-32.,R4
	BLT	ROR$11
	BEQ	C23$11
	ADD	#32.,R4
	MOV	R4,R5
RR1$11:	ROR	R0
	ROR	R1
	INC	R4
	BLT	RR1$11
AS1$11:	ASL	R1
	ROL	R0
	INC	R5
	BLT	AS1$11
	BR	C23$11
ROR$11:	ROR	R2
	ROR	R3
	INC	R4
	BLT	ROR$11
ASL$11:	ASL	R3
	ROL	R2
	INC	R5
	BLT	ASL$11
	.ENDC
	.IFDF	EAE
	MOV	#MQ,R5
	.ENDC
	.IFDF	MULDIV!EAE
	CMP	#-32.,R4
	BLT	R23$11
	BEQ	C23$11
R01$11:	ADD	#32.,R4
	.IFDF	MULDIV
	.WORD	073004
	NEG	R4
	.WORD	073004
	.ENDC
	.IFDF	EAE
	MOV	R1,@R5
	MOV	R0,-(R5)
	MOV	R4,@#ASH
	NEG	R4
	MOV	R4,@#ASH
	MOV	(R5)+,R0
	MOV	@R5,R1
	.ENDC
	BR	C23$11
	.IFDF	MULDIV
R23$11:	.WORD	073204
	NEG	R4
	.WORD	073204
	.ENDC
	.IFDF	EAE
R23$11:	MOV	R3,@R5
	MOV	R2,-(R5)
	MOV	R4,@#ASH
	NEG	R4
	MOV	R4,@#ASH
	MOV	(R5)+,R2
	MOV	@R5,R3
	.ENDC
	.ENDC
DNE$11:	MOV	(SP)+,R5
	MOV	(SP)+,R4
	MOV	R3,-(SP)
	MOV	R2,-(SP)
	MOV	R1,-(SP)
	MOV	R0,-(SP)
	JMP	@(R4)+
	.ENDC
	.ENDC
	.TITLE	$DR02
	.IFDF	CND$12
	.GLOBL	$DR,$ERR






	R4=%4
	R5=%5
	SP=%6
	F0=%0
	.IFDF	FPU
$DR:	.WORD	170001
	.WORD	177426
	.WORD	170000
	BVS	OV1$12
	.WORD	174046
	JMP	@(R4)+
	.ENDC
	.IFNDF	FPU
$DR:	ROL	4(SP)
	ADC	2(SP)
	ADC	@SP
	BCS	OVR$12
	BVS	OVR$12
DR1$12:	MOV	(SP)+,2(SP)
	MOV	(SP)+,2(SP)
	JMP	@(R4)+
OVR$12:	CMP	(SP)+,(SP)+
	CMP	(SP)+,(SP)+
	.ENDC
OV1$12:	JSR	R5,$ERR
	BR	DR2$12
	.BYTE	3
	.BYTE	23.
DR2$12:	CLR	-(SP)
	CLR	-(SP)
	JMP	@(R4)+
	.ENDC
	.TITLE	$DSN04
	.IFDF	CND$13






	.GLOBL	DSIN,DCOS
	.IFNDF	FPU
	.GLOBL	$ADD,$SBD,$MLD,$DVD,$DINT,$POLSH,$POPR4
	.ENDC








	R0=%0
	R1=%1
	R2=%2
	R3=%3
	R4=%4
	R5=%5
	SP=%6
	PC=%7
	F0=%0
	F1=%1
	F2=%2
	F3=%3
	.IFNDF	FPU
DCOS:	MOV	R5,-(SP)
	MOV	2(R5),R4
	CLR	-(SP)
	MOV	6(R4),-(SP)
	MOV	4(R4),-(SP)
	MOV	2(R4),-(SP)
	MOV	@R4,-(SP)
	MOV	#064302,-(SP)
	MOV	#121041,-(SP)
	MOV	#007732,-(SP)
	MOV	#040311,-(SP)
	JSR	R4,$POLSH
	.WORD	$ADD,SNC$13
DSIN:	MOV	R5,-(SP)
	MOV	2(R5),R4
	CLR	-(SP)
	MOV	6(R4),-(SP)
	MOV	4(R4),-(SP)
	MOV	2(R4),-(SP)
	MOV	@R4,-(SP)
SNC$13:	ASL	@SP
	ROR	8.(SP)
	ROR	@SP
	MOV	#064302,-(SP)
	MOV	#121041,-(SP)
	MOV	#007732,-(SP)
	MOV	#040711,-(SP)
	JSR	R4,$POLSH
	.WORD	$DVD
	.WORD	DUP$13
	.WORD	$DINT
	.WORD	$SBD
	.WORD	X4$13
	.WORD	DUP$13
	.WORD	$DINT
	.WORD	QUD$13
	.WORD	$SBD
	.WORD	QST$13
QSE$13:	.WORD	DUP$13
	.WORD	DUP$13
	.WORD	$MLD
	.WORD	$POPR4
	.WORD	PLY$13
XPD$13:	.WORD	$MLD,$ADD,$MLD,$ADD,$MLD,$ADD,$MLD,$ADD
	.WORD	$MLD,$ADD,$MLD,$ADD,$MLD,$ADD,$MLD,$ADD
	.WORD	$MLD
PR4$13:	.WORD	$POPR4
	.WORD	RTN$13
RTN$13:	TST	(SP)+
	BGE	RT1$13
	ADD	#100000,R0
RT1$13:	MOV	(SP)+,R5
	RTS	R5

DUP$13:	MOV	6(SP),-(SP)
	MOV	6(SP),-(SP)
	MOV	6(SP),-(SP)
	MOV	6(SP),-(SP)
	JMP	@(R4)+

X4$13:	TST	@SP
	BEQ	ZER$13
	INCB	1(SP)
	JMP	@(R4)+
ZER$13:	MOV	#PR4$13,R4
	JMP	@(R4)+

QUD$13:	BIS	@SP,16.(SP)
	JMP	@(R4)+

QST$13:	TSTB	8.(SP)
	BEQ	Q13$13
	ADD	#100000,@SP
	CLR	-(SP)
	CLR	-(SP)
	CLR	-(SP)
	MOV	#40200,-(SP)
	JSR	R4,$POLSH
	.WORD	$ADD,QSR$13
QSR$13:	MOV	#QSE$13,R4
Q13$13:	ASRB	9.(SP)
	BCC	QUT$13
	ADD	#100000,@SP
QUT$13:	JMP	@(R4)+

PLY$13:	MOV	#CON$13+8.,R4
	MOV	#9.,R5
	BR	PY1$13
PY2$13:	MOV	R3,-(SP)
	MOV	R2,-(SP)
	MOV	R1,-(SP)
	MOV	R0,-(SP)
PY1$13:	MOV	-(R4),-(SP)
	MOV	-(R4),-(SP)
	MOV	-(R4),-(SP)
	MOV	-(R4),-(SP)
	DEC	R5
	BGT	PY2$13
	MOV	#XPD$13,R4
	JMP	@(R4)+
	.ENDC

	.IFDF	FPU
DCOS:	SETD
	LDD	@2(R5),F0
	ADDD	PI2$13,F0
	BR	SNC$13
DSIN:	SETD
	LDD	@2(R5),F0
SNC$13:	SETI
	MOV	#FCO$13,R0
	CLR	R4
	CFCC
	BGE	POS$13
	INC	R4
	ABSD	F0
POS$13:	DIVD	(R0)+,F0
	MODD	#1.0,F0
	CFCC
	BEQ	RTN$13
	MODD	#4.0,F0
	STCDI	F1,R1
	ROR	R1
	BCC	Q13$13
	NEGD	F0
	ADDD	#1.0,F0
Q13$13:	ROR	R1
	BCC	Q12$13
	NEGD	F0

Q12$13:	LDD	F0,F2
	MULD	F2,F2
	MOV	#8.,R1
	LDD	(R0)+,F1
XPD$13:	MULD	F2,F1
	DEC	R1
	ADDD	(R0)+,F1
	BGT	XPD$13

	MULD	F1,F0
	TST	R4
	BEQ	RTN$13
	NEGD	F0
RTN$13:	STD	F0,-(SP)
	MOV	(SP)+,R0
	MOV	(SP)+,R1
	MOV	(SP)+,R2
	MOV	(SP)+,R3
	RTS	R5

PI2$13:	.WORD	040311,007732
	.WORD	121041,064302



FCO$13:	.WORD	040711,007732
	.WORD	121041,064302
	.ENDC
	.WORD	026716,106703
	.WORD	045277,146362

	.WORD	130467,136273
	.WORD	103054,123153

	.WORD	032164,074657
	.WORD	047254,154742

	.WORD	133561,101646
	.WORD	167216,134016

	.WORD	035050,036032
	.WORD	041214,103131

	.WORD	136231,064546
	.WORD	071423,125024

	.WORD	037243,032743
	.WORD	035655,051557

	.WORD	140045,056747
	.WORD	030455,171222

CON$13:	.WORD	040311,007732
	.WORD	121041,064302

	.ENDC
	.TITLE	$DSQ03
	.IFDF	CND$14






	.GLOBL	DSQRT,$ERR
	.IFNDF	FPU
	.GLOBL	$ADD,$DVD,$POLSH
	.ENDC








	R0=%0
	R1=%1
	R2=%2
	R3=%3
	R4=%4
	R5=%5
	F0=%0
	F1=%1
	F2=%2
	SP=%6
	.IFNDF	FPU
DSQRT:	MOV	R5,-(SP)
	MOV	2(R5),R5
	MOV	@R5,R1
	BMI	ERR$14
	BEQ	ZER$14
	MOV	2(R5),R2
	MOV	#4,-(SP)
	ASR	R1
	ROR	R2
	ADD	#20100,R1
	CLR	-(SP)
	CLR	-(SP)
	MOV	R2,-(SP)
	MOV	R1,-(SP)
	CLR	-(SP)
	CLR	-(SP)
	MOV	2(R5),-(SP)
	MOV	@R5,-(SP)
	CLR	-(SP)
	CLR	-(SP)
	MOV	R2,-(SP)
	MOV	R1,-(SP)
LUP$14:	JSR	R4,$POLSH
	.WORD	$DVD,$ADD,UPL$14
UPL$14:	SUB	#200,@SP
	DEC	8.(SP)
	BEQ	OUT$14
	MOV	6(R5),-(SP)
	MOV	4(R5),-(SP)
	MOV	2(R5),-(SP)
	MOV	@R5,-(SP)
	MOV	14.(SP),-(SP)
	MOV	14.(SP),-(SP)
	MOV	14.(SP),-(SP)
	MOV	14.(SP),-(SP)
	BR	LUP$14
OUT$14:	MOV	(SP)+,R0
	MOV	(SP)+,R1
	MOV	(SP)+,R2
	MOV	(SP)+,R3
	TST	(SP)+
RTN$14:	MOV	(SP)+,R5
	RTS	R5
ERR$14:	JSR	R5,$ERR
	BR	RTN$14
	.BYTE	4
	.BYTE	4
ZER$14:	CLR	R0
	CLR	R1
	CLR	R2
	CLR	R3
	BR	RTN$14

	.ENDC

	.IFDF	FPU
DSQRT:	MOV	2(R5),R4
	MOV	@R4,R1
	BMI	ERR$14
	BEQ	ZER$14
	MOV	2(R4),R2
	ASR	R1
	ROR	R2
	ADD	#20100,R1
	CLR	-(SP)
	CLR	-(SP)
	MOV	R2,-(SP)
	MOV	R1,-(SP)
	MOV	#4,R0
	SETD
	LDD	(SP)+,F0
	LDD	@R4,F2

LUP$14:	LDD	F0,F1
	LDD	F2,F0
	DIVD	F1,F0
	ADDD	F1,F0
	DEC	R0
	DIVD	#2.0,F0
	BGT	LUP$14

	STD	F0,-(SP)
	MOV	(SP)+,R0
	MOV	(SP)+,R1
	MOV	(SP)+,R2
	MOV	(SP)+,R3
	RTS	R5

ERR$14:	JSR	R5,$ERR
	RTS	R5
	.BYTE	4
	.BYTE	4
ZER$14:	CLR	R0
	CLR	R1
	CLR	R2
	CLR	R3
	RTS	R5
	.ENDC
	.ENDC
	.TITLE	$DTN03
	.IFDF	CND$15






	.GLOBL	DATAN,DATAN2
	.IFNDF	FPU
	.GLOBL	$ADD,$SBD,$MLD,$DVD,$POLSH,$POPR4
	.ENDC




















	R0=%0
	R1=%1
	R2=%2
	R3=%3
	R4=%4
	R5=%5
	SP=%6
	F0=%0
	F1=%1
	F2=%2
	F3=%3
	F4=%4
	F5=%5
	.IFNDF	FPU
DATAN2:	MOV	R5,-(SP)
	CLR	-(SP)
	CLR	-(SP)
	CLR	-(SP)
	CLR	-(SP)
	CLR	-(SP)
	CLR	-(SP)
	CLR	-(SP)
	CLR	-(SP)
	CLR	-(SP)
	MOV	2(R5),R4
	MOV	6(R4),-(SP)
	MOV	4(R4),-(SP)
	MOV	2(R4),-(SP)
	MOV	@R4,-(SP)
	MOV	@SP,R0
	MOV	4(R5),R4
	MOV	6(R4),-(SP)
	MOV	4(R4),-(SP)
	MOV	2(R4),-(SP)
	MOV	@R4,-(SP)
	MOV	@SP,R1
	BEQ	INF$15
	ASL	R0
	CLRB	R0
	SWAB	R0
	ASL	R1
	CLRB	R1
	SWAB	R1
	SUB	R1,R0
	CMP	#58.,R0
	BLT	INF$15
DIV$15:	JSR	R4,$POLSH
	.WORD	$DVD,UPL$15
UPL$15:	TST	@4(R5)
	BGE	ATE$15
	MOV	#040511,16.(SP)
	MOV	#007732,18.(SP)
	MOV	#121041,20.(SP)
	MOV	#064301,22.(SP)
	TST	@2(R5)
	BGE	ATE$15
	ADD	#100000,16.(SP)
ATE$15:	TST	@SP
	BR	AT1$15
INF$15:	ADD	#36.,SP
	MOV	#040311,R0
	MOV	#007732,R1
	MOV	#121041,R2
	MOV	#064301,R3
	TST	@2(R5)
	BGE	INR$15
	ADD	#100000,R0
INR$15:	RTS	R5

DATAN:	MOV	R5,-(SP)
	CLR	-(SP)
	CLR	-(SP)
	CLR	-(SP)
	CLR	-(SP)
	CLR	-(SP)
	CLR	-(SP)
	CLR	-(SP)
	CLR	-(SP)
	CLR	-(SP)
	MOV	2(R5),R4
	MOV	6(R4),-(SP)
	MOV	4(R4),-(SP)
	MOV	2(R4),-(SP)
	MOV	@R4,-(SP)
AT1$15:	BGE	PLU$15
	ADD	#100000,@SP
	INC	24.(SP)
PLU$15:	CMP	@SP,#40200
	BLO	LE1$15
	BGT	GT1$15
	TST	2(SP)
	BNE	GT1$15
	TST	4(SP)
	BNE	GT1$15
	TST	6(SP)
	BEQ	LE1$15
GT1$15:	MOV	#140311,8.(SP)
	MOV	#007732,10.(SP)
	MOV	#121041,12.(SP)
	MOV	#064301,14.(SP)
	DEC	24.(SP)
	MOV	6(SP),-(SP)
	MOV	6(SP),-(SP)
	MOV	6(SP),-(SP)
	MOV	6(SP),-(SP)
	MOV	#40200,8.(SP)
	CLR	10.(SP)
	CLR	12.(SP)
	CLR	14.(SP)
	JSR	R4,$POLSH
	.WORD	$DVD,LE1$15
LE1$15:	MOV	6(SP),-(SP)
	MOV	6(SP),-(SP)
	MOV	6(SP),-(SP)
	MOV	6(SP),-(SP)
	CLR	8.(SP)
	CLR	10.(SP)
	CLR	12.(SP)
	CLR	14.(SP)
	CMP	@SP,#037611
	BLO	L15$15
	BHI	TNS$15
	CMP	2(SP),#030242
	BHI	TNS$15
	BLO	L15$15
	CMP	4(SP),#172366
	BHI	TNS$15
	BLO	L15$15
	CMP	6(SP),#065261
	BLOS	L15$15
TNS$15:	MOV	#040006,8.(SP)
	MOV	#005221,10.(SP)
	MOV	#140553,12.(SP)
	MOV	#115454,14.(SP)
	MOV	@SP,R0
	MOV	2(SP),R1
	MOV	4(SP),R2
	MOV	6(SP),R3
	MOV	#062524,-(SP)
	MOV	#041302,-(SP)
	MOV	#131727,-(SP)
	MOV	#140335,-(SP)
	MOV	R3,-(SP)
	MOV	R2,-(SP)
	MOV	R1,-(SP)
	MOV	R0,-(SP)
	CLR	-(SP)
	CLR	-(SP)
	CLR	-(SP)
	MOV	#40200,-(SP)
	MOV	#062524,-(SP)
	MOV	#041302,-(SP)
	MOV	#131727,-(SP)
	MOV	#040335,-(SP)
	MOV	R3,-(SP)
	MOV	R2,-(SP)
	MOV	R1,-(SP)
	MOV	R0,-(SP)
	JSR	R4,$POLSH

	.WORD	$MLD,$SBD,UP$15,$SBD,$DVD,L15$15
L15$15:	MOV	@SP,R0
	MOV	2(SP),R1
	MOV	4(SP),R2
	MOV	6(SP),R3
	MOV	R3,-(SP)
	MOV	R2,-(SP)
	MOV	R1,-(SP)
	MOV	R0,-(SP)
	MOV	R3,-(SP)
	MOV	R2,-(SP)
	MOV	R1,-(SP)
	MOV	R0,-(SP)
	JSR	R4,$POLSH
	.WORD	$MLD
	.WORD	$POPR4,PLY$15
XPD$15:	.WORD	$MLD,$ADD,$MLD,$ADD,$MLD,$ADD
	.WORD	$MLD,$ADD,$MLD,$ADD,$MLD,$ADD
	.WORD	$MLD,$ADD,$MLD,$ADD,$MLD,$ADD
	.WORD	$ADD
	.WORD	SGN$15
	.WORD	$ADD
	.WORD	$POPR4
	.WORD	EXI$15
EXI$15:	TST	(SP)+
	MOV	(SP)+,R5
	RTS	R5

UP$15:	MOV	(SP)+,22.(SP)
	MOV	(SP)+,22.(SP)
	MOV	(SP)+,22.(SP)
	MOV	(SP)+,22.(SP)
	JMP	@(R4)+

PLY$15:	MOV	#CON$15+8.,R4
	MOV	#9.,R5
	BR	PY1$15
PY2$15:	MOV	R3,-(SP)
	MOV	R2,-(SP)
	MOV	R1,-(SP)
	MOV	R0,-(SP)
PY1$15:	MOV	-(R4),-(SP)
	MOV	-(R4),-(SP)
	MOV	-(R4),-(SP)
	MOV	-(R4),-(SP)
	DEC	R5
	BGT	PY2$15
	MOV	#XPD$15,R4
	JMP	@(R4)+

SGN$15:	TST	16.(SP)
	BEQ	SG1$15
	ADD	#100000,@SP
SG1$15:	JMP	@(R4)+
	.ENDC

	.IFDF	FPU
DATAN2:	SETD
	MOV	2(R5),R3
	MOV	4(R5),R4
	MOV	@R3,R0
	MOV	@R4,R1
	BEQ	INF$15
	ASL	R0
	CLRB	R0
	SWAB	R0
	ASL	R1
	CLRB	R1
	SWAB	R1
	SUB	R1,R0
	CMP	#58.,R0
	BLT	INF$15
	LDD	PI$15,F3
	LDD	@R3,F0
	CFCC
	BGE	A1P$15
	NEGD	F3
A1P$15:	LDD	@R4,F1
	CFCC
	BLT	A2M$15
	CLRD	F3
A2M$15:	DIVD	F1,F0
	BR	AT1$15

INF$15:	LDD	PI2$15,F1
	TST	@R3
	BGE	EXI$15
	NEGD	F1
	BR	EXI$15

DATAN:	SETD
	CLRD	F3
	LDD	@2(R5),F0
AT1$15:	CLR	R4
	CFCC
	STD	F3,F5
	CLRD	F3
	BGE	PLU$15
	ABSD	F0
	INC	R4
PLU$15:	LDD	#1.0,F1
	CMPD	F0,F1
	CFCC
	BLE	LE1$15
GT1$15:	DEC	R4
	DIVD	F0,F1
	LDD	F1,F0
	LDD	PI2$15,F3

LE1$15:	STD	F3,F4
	CLRD	F3
	CMPD	T15$15,F0
	CFCC
	BGE	L15$15
	LDD	PI6$15,F3
	LDD	F0,F1
	MULD	RT3$15,F0
	SUBD	#1.0,F0
	ADDD	RT3$15,F1
	DIVD	F1,F0

L15$15:	LDD	F0,F2
	MULD	F0,F0
	MOV	#FCO$15,R0
	MOV	#8.,R1
	LDD	(R0)+,F1
XPD$15:	MULD	F0,F1
	DEC	R1
	ADDD	(R0)+,F1
	BGT	XPD$15
	MULD	F2,F1
	ADDD	F3,F1
	SUBD	F4,F1
	TST	R4
	BEQ	SG1$15
	NEGD	F1
SG1$15:	ADDD	F5,F1

EXI$15:	STD	F1,-(SP)
	MOV	(SP)+,R0
	MOV	(SP)+,R1
	MOV	(SP)+,R2
	MOV	(SP)+,R3
	RTS	R5


PI$15:	.WORD	040511,007732
	.WORD	121041,064301

PI2$15:	.WORD	040311,007732
	.WORD	121041,064301

T15$15:	.WORD	037611,030242
	.WORD	172366,065261

PI6$15:	.WORD	040006,005221
	.WORD	140553,115454

RT3$15:	.WORD	040335,131727
	.WORD	041302,062524
	.ENDC
FCO$15:	.WORD	037065,150707
	.WORD	162300,163030

	.WORD	137204,143233
	.WORD	004010,000413

	.WORD	037235,043002
	.WORD	027154,142446

	.WORD	137272,025671
	.WORD	116412,065630

	.WORD	037343,107047
	.WORD	023625,025401

	.WORD	137422,044444
	.WORD	071335,116151

	.WORD	037514,146314
	.WORD	146224,165650

	.WORD	137652,125252
	.WORD	125252,113602

CON$15:	.WORD	040200,000000
	.WORD	000000,000000

	.ENDC
	.EOT
�U�69"