SINGLE=1
;PRODUCT CODE		DEC-11-NFPMA-A-LA

;COMPUTER		PDP-11

;CONFIGURATION		PAPER TAPE CONFIGURATION IS MINIMUM
;			8192 WORDS MEMORY

;SOFTWARE REQUIREMENTS	PAL-11S (OR MACRO-11)
;			LINK-11S (OR LINK-11)

;PROGRAM NAME		FPMP-11

;VERSION		VERSION LEVEL  1
;			PATCH LEVEL    A

;DESCRIPTION		FLOATING POINT MATH PACKAGE
;			PLUS TRAP HANDLER
;			(FLOATING POINT SUBROUTINES TAKEN FROM
;			DOS-11 FORTRAN IV OTS)

;AUTHOR			E. PETERS (TRAP HANDLER & PACKAGE
;				INTEGRATION)

;DATE			AUGUST, 1972

;			COPYRIGHT 1972, DIGITAL EQUIPMENT CORP.,
;			MAYNARD, MASSACHUSETTS 01754
	.CSECT


	.IFDF	SINGLE
	CND$2=1		
	CND$3=1		
	CND$4=1		
	CND$6=1		
	CND$18=1	
	CND$20=1	
	CND$30=1	
	CND$37=1	
	CND$38=1	
	CND$39=1	
	CND$41=1	
	CND$44=1
	CND$46=1
	.ENDC

	.IFDF	DOUBLE
	CND$1=1		
	CND$5=1		
	CND$10=1	
	CND$13=1	
	CND$14=1	
	CND$15=1	
	CND$16=1	
	CND$19=1	
	CND$28=1	
	CND$45=1	
	CND$47=1	
	.ENDC

	.IFDF	SINGLE!DOUBLE
	CND$8=1		
	CND$9=1		
	CND$31=1	
	CND$42=1	
	.ENDC
	.IFDF	CND$38
	CND$2=1		
	CND$18=1	
	CND$20=1	
	CND$21=1	
	CND$30=1	
	CND$32=1	
	.ENDC

	.IFNDF	FPU
	.IFDF	CND$3!CND$20!CND$37!CND$39
	CND$2=1		
	CND$18=1	
	CND$30=1	
	.IFDF	CND$37
	CND$4=1		
	.ENDC
	.ENDC
	.IFDF	CND$10!CND$13!CND$15!CND$19
	CND$1=1		
	CND$16=1	
	CND$28=1	
	CND$33=1	
	.IFDF	CND$13
	CND$11=1	
	.ENDC
	.ENDC
	.IFDF	CND$3!CND$10
	CND$27=1	
	.ENDC
	.IFDF	CND$19!CND$20
	CND$27=1	
	CND$35=1	
	.ENDC
	.IFDF	CND$14
	CND$1=1		
	CND$16=1	
	.ENDC
	.IFDF	CND$41
	CND$2=1		
	CND$18=1	
	.ENDC
	.ENDC

	.IFDF	CND$23
	CND$27=1	
	CND$33=1	
	.ENDC
	.IFDF	CND$22!CND$26
	CND$35=1	
	.ENDC
	.IFDF	CND$39
	CND$33=1	
	.ENDC
	.TITLE	TRAP02
	.IFDF	CND$42
	.GLOBL	TRAPH,$ERRA

	R0=%0
	R1=%1
	R2=%2
	R3=%3
	R4=%4
	R5=%5
	SP=%6
	PC=%7

TRAPH:	BIC	#17,2(SP)
	CLR	-(SP)
	MOV	R5,-(SP)
	MOV	R4,-(SP)
	MOV	R3,-(SP)
	MOV	R2,-(SP)
	MOV	R1,-(SP)
	MOV	R0,-(SP)
	MOV	20(SP),R3
	BIC	#20,R3
	MOV	R3,@#177776
	MOV	16(SP),R1
	MOV	R1,R5
	MOV	-(R1),R4
	MOV	R4,R3
	BIC	#177700,R4
	ASL	R4
	MOV	TBL$42(R4),R4
	BEQ	ERR$42
	MOV	R4,R2
	BIC	#140000,R2
	ADD	PC,R2
PT$42:	BIT	#40000,R4
	BEQ	NAD$42
	ROLB	R3
	BPL	PLM$42
	BCC	STK$42

	MOV	R5,R0
	ADD	(R5)+,R0
UPC$42:	MOV	R5,16(SP)
STK$42:	MOV	#FAC$42+6,R5
	TST	R4
	BLT	ST4$42
	CLR	@R5
	CLR	-(R5)
	TST	(R5)+
ST4$42:	MOV	@R5,-(SP)
	MOV	-(R5),-(SP)
	MOV	-(R5),-(SP)
	MOV	-(R5),-(SP)
	TST	R4
	BLT	ST6$42
	CMP	(R0)+,(R0)+
	BR	OT2$42
ST6$42:	ADD	#8.,R0
	MOV	-(R0),-(SP)
	MOV	-(R0),-(SP)
OT2$42:	MOV	-(R0),-(SP)
	MOV	-(R0),-(SP)




	MOV	#ADR$42,R4
	JMP	@R2
ADR$42:	.WORD	.+2

	MOV	#FAC$42,R5
	MOV	(SP)+,(R5)+
	MOV	(SP)+,(R5)+
	MOV	(SP)+,(R5)+
	MOV	(SP)+,(R5)+
RET$42:	MOV	@PC,R0
	MOV	#FAC$42,R5
	TST	(R5)+
	BLT	NEG$42
	BGT	PLS$42
	TST	(R5)+
	BNE	PLS$42
	TST	(R5)+
	BNE	PLS$42
	TST	(R5)+
	BNE	PLS$42
	CLR	R0
NEG$42:	NEG	R0
CMF$42:	BIS	@#177776,20(SP) 
PLS$42:	TST	R0
CM1$42:	MOV	(SP)+,R0
	MOV	(SP)+,R1
	MOV	(SP)+,R2
	MOV	(SP)+,R3
	MOV	(SP)+,R4
	MOV	(SP)+,R5
	TST	(SP)+
	BEQ	RTI$42
	BPL	RT2$42
	MOV	(SP)+,6(SP)
	MOV	(SP)+,6(SP)
	CMP	(SP)+,(SP)+
	RTI			
RT2$42:	MOV	(SP)+,2(SP)
	MOV	(SP)+,2(SP)
RTI$42:	RTI


NAD$42:	JSR	R5,@R2
	MOV	(PC)+,R5
	.WORD	FAC$42
	MOV	R0,(R5)+
	MOV	R1,(R5)+
	MOV	R2,(R5)+
	MOV	R3,(R5)+
	BR	RET$42


PLM$42:	BCC	STM$42

	MOV	R5,R0
	TST	R4
	BGE	PL1$42
	ADD	#8.,R5
	BR	UPC$42
PL1$42:	CMP	(R5)+,(R5)+
	BR	UPC$42

STM$42:	MOV	SP,R0
	ADD	#22,R0
	INC	14(SP)
	TST	R4
	BGE	STK$42
	NEG	14(SP)
	BR	STK$42


ERR$42:	CLR	R0
	JSR	R5,$ERRA
	BR	ERR$42


FAC$42:	.WORD	0,0,0,0
	.IFDF	CND$6
	
CMR$42:	MOV	#CAR$42,R4
	JMP	$CMR
CAR$42:	.WORD	.+2
	BIS	@#177776,24(SP) 
	CMP	(SP)+,(SP)+
	BR	CM1$42
	.ENDC

	.IFDF	CND$5
CMD$42:	MOV	#CAD$42,R4
	JMP	$CMD
CAD$42:	.WORD	CMF$42
	.ENDC
	PMODE=40000
	DMODE=100000
TBL$42:	.WORD	0,0,0,0,0,0,0,0	
	.WORD	0,0		
	.IFDF	CND$2
	.WORD	$ADR-PT$42+PMODE	
	.WORD	$SBR-PT$42+PMODE	
	.ENDC
	.IFNDF	CND$2
	.WORD	0,0			
	.ENDC
	.IFDF	CND$1
	.WORD	$ADD-PT$42+PMODE+DMODE	
	.WORD	$SBD-PT$42+PMODE+DMODE	
	.ENDC
	.IFNDF	CND$1
	.WORD	0,0			
	.ENDC
	.IFDF	CND$5
	.WORD	CMD$42-PT$42+PMODE+DMODE	
	.ENDC
	.IFNDF	CND$5
	.WORD	0			
	.ENDC
	.IFDF	CND$6
	.WORD	CMR$42-PT$42+PMODE	
	.ENDC
	.IFNDF	CND$6
	.WORD	0			
	.ENDC
	.WORD	0			
	.IFDF	CND$30
	.WORD	$MLR-PT$42+PMODE	
	.ENDC
	.IFNDF	CND$30
	.WORD	0			
	.ENDC
	.IFDF	CND$28
	.WORD	$MLD-PT$42+PMODE+DMODE	
	.ENDC
	.IFNDF	CND$28
	.WORD	0			
	.ENDC
	.IFDF	CND$16
	.WORD	$DVD-PT$42+PMODE+DMODE	
	.ENDC
	.IFNDF	CND$16
	.WORD	0			
	.ENDC
	.WORD	0			
	.IFDF	CND$18
	.WORD	$DVR-PT$42+PMODE	
	.ENDC
	.IFNDF	CND$18
	.WORD	0			
	.ENDC
	.IFDF	CND$4
	.WORD	AINT-PT$42		
	.ENDC
	.IFNDF	CND$4
	.WORD	0			
	.ENDC
	.WORD	0,0,0,0,0,0,0		
	.IFDF	CND$37
	.WORD	SIN-PT$42,COS-PT$42	
	.ENDC
	.IFNDF	CND$37
	.WORD	0,0			
	.ENDC
	.IFDF	CND$13
	.WORD	DSIN-PT$42+DMODE	
	.WORD	DCOS-PT$42+DMODE	
	.ENDC
	.IFNDF	CND$13
	.WORD	0,0			
	.ENDC
	.IFDF	CND$39
	.WORD	ATAN-PT$42		
	.ENDC
	.IFNDF	CND$39
	.WORD	0
	.ENDC
	.WORD	0			
	.IFDF	CND$15
	.WORD	DATAN-PT$42+DMODE	
	.ENDC
	.IFNDF	CND$15
	.WORD	0			
	.ENDC
	.WORD	0			
	.IFDF	CND$41
	.WORD	SQRT-PT$42		
	.ENDC
	.IFNDF	CND$41
	.WORD	0			
	.ENDC
	.IFDF	CND$14
	.WORD	DSQRT-PT$42+DMODE	
	.ENDC
	.IFNDF	CND$14
	.WORD	0			
	.ENDC
	.IFDF	CND$38
	.WORD	TANH-PT$42		
	.ENDC
	.IFNDF	CND$38
	.WORD	0			
	.ENDC
	.IFDF	CND$20
	.WORD	EXP-PT$42		
	.ENDC
	.IFNDF	CND$20
	.WORD	0			
	.ENDC
	.IFDF	CND$19
	.WORD	DEXP-PT$42+DMODE	
	.ENDC
	.IFNDF	CND$19
	.WORD	0			
	.ENDC
	.IFDF	CND$3
	.WORD	ALOG-PT$42		
	.WORD	ALOG10-PT$42		
	.ENDC
	.IFNDF	CND$3
	.WORD	0,0			
	.ENDC
	.IFDF	CND$10
	.WORD	DLOG-PT$42+DMODE	
	.WORD	DLOG10-PT$42+DMODE	
	.ENDC
	.IFNDF	CND$10
	.WORD	0,0			
	.ENDC
	.WORD	0,0,0,0,0,0,0,0,0,0	
	.IFDF	CND$44
	.WORD	$LDR-PT$42+PMODE	
	.ENDC
	.IFNDF	CND$44
	.WORD	0			
	.ENDC
	.IFDF	CND$45
	.WORD	$LDD-PT$42+PMODE+DMODE	
	.ENDC
	.IFNDF	CND$45
	.WORD	0			
	.ENDC
	.IFDF	CND$46
	.WORD	$STR-PT$42+PMODE	
	.ENDC
	.IFNDF	CND$46
	.WORD	0			
	.ENDC
	.IFDF	CND$47
	.WORD	$STD-PT$42+PMODE+DMODE	
	.ENDC
	.IFNDF	CND$47
	.WORD	0			
	.ENDC
	.WORD	0,0,0			
	.ENDC
	.TITLE	$ADD05
	.IFDF	CND$1
	.GLOBL	$ADD,$SBD,$ERR








	R0=%0
	R1=%1
	R2=%2
	R3=%3
	R4=%4
	R5=%5
	SP=%6
	PC=%7
	A1=6
	B1=8.
	C1=10.
	D1=12.
	A2=14.
	B2=16.
	C2=18.
	D2=20.
	SIGNS=0.
	MQ=177304
	NOR=177312
	LSH=177314
	ASH=177316
	F0=%0
$SBD:	ADD	#100000,@SP	
	.IFDF	FPU
$ADD:	.WORD	170011	
	.WORD	172426	
	.WORD	172026	
	.WORD	174046	
	JMP	@(R4)+
	.ENDC
	.IFNDF	FPU
$ADD:	MOV	R4,-(SP)
	MOV	R5,-(SP)
	CLR	-(SP)	
	CLR	R4	
	CLR	R5
	ASL	D1(SP)	
	ROL	C1(SP)
	ROL	B1(SP)
	ROL	A1(SP)	
	BISB	A1+1(SP),R4	
	BEQ	A1Z$1	
	ROLB	@SP	
	ASL	D2(SP)	
	ROL	C2(SP)
	ROL	B2(SP)
	ROL	A2(SP)	
	BISB	A2+1(SP),R5	
	BNE	A2N$1	
	RORB	@SP	
	ROR	A1(SP)
	ROR	B1(SP)
	ROR	C1(SP)
	ROR	D1(SP)
	MOV	A1(SP),A2(SP)	
	MOV	B1(SP),B2(SP)
	MOV	C1(SP),C2(SP)
	MOV	D1(SP),D2(SP)
A1Z$1:	TST	(SP)+	
	JMP	OUT$1	
A2N$1:	ROLB	SIGNS+1(SP)   	
	MOVB	#1,A2+1(SP)	
	MOVB	#1,A1+1(SP)	
	SUB	R4,R5	
	BGT	EXA$1	
	MOV	A2(SP),R0	
	MOV	B2(SP),R1	
	MOV	C2(SP),R2
	MOV	D2(SP),R3
	BR	SCK$1	
EXA$1:	ADD	R5,R4	
	MOV	A1(SP),R0	
	MOV	B1(SP),R1	
	MOV	C1(SP),R2
	MOV	D1(SP),R3
	MOV	A2(SP),A1(SP)
	MOV	B2(SP),B1(SP)
	MOV	C2(SP),C1(SP)
	MOV	D2(SP),D1(SP)
	SWAB	@SP	
	NEG	R5	
SCK$1:	CMPB	SIGNS+1(SP),@SP	
	BEQ	ECK$1	
	NEG	R3	
	ADC	R2
	ADC	R1
	ADC	R0
	NEG	R2
	ADC	R1
	ADC	R0
	NEG	R1
	ADC	R0
	NEG	R0
ECK$1:	TST	R5	
	BEQ	SFD$1	
SFT$1:	CMP	#-57.,R5	
	BLE	SFR$1	
	MOV	A1(SP),R0	
	MOV	B1(SP),R1	
	MOV	C1(SP),R2
	MOV	D1(SP),R3
	BR	NOD$1
SFR$1:	CMP	#-8.,R5	
	BLE	SR8$1	
	.IFNDF	MULDIV
	CLR	-(SP)	
	TST	R0	
	BPL	SF1$1	
	COM	@SP
	.ENDC
	.IFDF	MULDIV
	TST	R0
	.WORD	006746	
	.ENDC
SF1$1:	CMP	#-16.,R5
	BLT	S16$1	
	MOV	R2,R3	
	MOV	R1,R2
	MOV	R0,R1
	MOV	@SP,R0	
	ADD	#16.,R5	
	BNE	SF1$1	
	TST	(SP)+	
	BR	SFD$1	
	.IFDF	EAE
S16$1:	CMP	#-3,R5
	BLE	S8A$1	
	MOV	R4,@SP	
	MOV	#MQ,R4	
	MOV	R3,@R4	
	MOV	R2,-(R4)
	MOV	R5,@#LSH	
	MOV	(R4)+,R2	
	MOV	@R4,R3	
	CLR	@R4
	MOV	R1,-(R4)	
	MOV	R5,@#LSH	
	TST	(R4)+	
	BIS	@R4,R2	
	MOV	R1,@R4
	MOV	R0,-(R4)	
	MOV	R5,@#ASH
	MOV	(R4)+,R0	
	MOV	@R4,R1
	MOV	(SP)+,R4
	BR	SFD$1
	.ENDC
	.IFNDF	EAE&MULDIV
S16$1:	CMP	#-8.,R5
	BLE	S8A$1	
	ADD	#16.,R5	
SL8$1:	ASL	R3	
	ROL	R2
	ROL	R1
	ROL	R0
	ROL	@SP
	DEC	R5	
	BGT	SL8$1
	MOV	R2,R3
	MOV	R1,R2
	MOV	R0,R1
	MOV	(SP)+,R0
	BR	SFD$1	
	.ENDC
	.IFDF	MULDIV
S16$1:	CMP	#-3,R5	
	BLE	S8A$1
	MOV	R4,@SP	
	MOV	R5,-(SP)
	MOV	R1,R4	
	.WORD	073005	
	MOV	R2,R5	
	.WORD	073416	
	MOV	R2,R4
	MOV	R5,R2	
	MOV	R3,R5	
	.WORD	073426	
	MOV	R5,R3
	MOV	(SP)+,R4	
	BR	SFD$1
	.ENDC
S8A$1:	TST	(SP)+	
SR8$1:	ASR	R0	
	ROR	R1
	ROR	R2
	ROR	R3
	INC	R5	
	BLT	SR8$1
SFD$1:	ADD	D1(SP),R3	
	ADC	R2
	ADC	R1
	ADC	R0
	ADD	C1(SP),R2
	ADC	R1
	ADC	R0
	ADD	B1(SP),R1
	ADC	R0
	ADD	A1(SP),R0
	CMPB	SIGNS+1(SP),@SP	
	BNE	SUB$1	
	BIT	R0,#1000
	BEQ	NOD$1	
	ASR	R0
	ROR	R1
	ROR	R2
	ROR	R3
	INC	R4	
NOD$1:	SWAB	R4	
	BNE	OVF$1	
NFL$1:	BISB	R0,R4	
	ROR	(SP)+	
	ROR	R4
	ROR	R1
	ROR	R2
	ROR	R3
	ADC	R3
	ADC	R2
	ADC	R1
	ADC	R4
	BVS	OVR$1	
	BCS	OVR$1
	MOV	R4,A2+0-2(SP)	
	MOV	R1,B2+0-2(SP)	
	MOV	R2,C2+0-2(SP)
	MOV	R3,D2+0-2(SP)
OUT$1:	MOV	(SP)+,R5
	MOV	(SP)+,R4
	ADD	#8.,SP	
	JMP	@(R4)+	

OVF$1:	TST	(SP)+	
OVR$1:	JSR	R5,$ERR	
	BR	OUT$1
	.BYTE	3
	.BYTE	1
UTS$1:	TST	R4	
	BGT	NOD$1
UNF$1:	JSR	R5,$ERR	
	BR	UND$1
	.BYTE	5
	.BYTE	1
UND$1:	CLR	R0
	CLR	R1	
	CLR	R2
	CLR	R3
ZER$1:	CLR	@SP	
	CLR	R4
	BR	NFL$1	

SUB$1:	TST	R0	
	BGT	BT9$1	
	BEQ	ZTS$1	
	NEG	R3	
	ADC	R2
	ADC	R1
	ADC	R0
	NEG	R2
	ADC	R1
	ADC	R0
	NEG	R1
	ADC	R0
	SWAB	@SP	
	NEG	R0
	BEQ	ZTS$1
BT9$1:
	.IFDF	EAE
	BIT	R0,#740
	BNE	B9A$1	
	MOV	R4,-(SP)	
	MOV	#MQ,R4	
	MOV	R1,@R4		
	MOV	R0,-2(R4)	
	CLR	@#NOR	
	MOV	@#NOR,-(SP)	
	SUB	#6,@SP	
	MOV	R1,@R4	
	MOV	R0,-(R4)
	MOV	@SP,@#LSH	
	MOV	(R4)+,R0	
	MOV	@R4,R1	
	MOV	R2,@R4	
	CLR	-(R4)
	MOV	@SP,@#LSH	
	BIS	(R4)+,R1	
	MOV	R3,@R4	
	MOV	R2,-(R4)
	MOV	@SP,@#LSH	
	MOV	(R4)+,R2	
	MOV	@R4,R3	
	SUB	(SP)+,@SP	
	MOV	(SP)+,R4	
	BGT	NOD$1	
	BR	UNF$1
	.ENDC
B9A$1:	BIT	R0,#400	
	BNE	UTS$1	
	DEC	R4	
	ASL	R3	
	ROL	R2
	ROL	R1
	ROL	R0
	BR	B9A$1	
ZTS$1:	SUB	#8.,R4	
	TST	R1
	BNE	ZT1$1	
	SUB	#16.,R4
	MOV	R2,R1
	BNE	ZT2$1	
	SUB	#16.,R4
	TST	R3
	BEQ	ZER$1	
	BISB	R3,R1	
	SWAB	R1
	SWAB	R3
	BISB	R3,R0
	CLR	R3	
	BR	BT9$1	
ZT2$1:	MOV	R3,R2
	CLR	R3
ZT1$1:	SWAB	R1	
	BISB	R1,R0
	CLRB	R1
	SWAB	R2
	BISB	R2,R1
	CLRB	R2
	SWAB	R3
	BISB	R3,R2
	CLRB	R3
	BR	BT9$1	
	.ENDC
	.ENDC	.TITLE	$ADR04
	.IFDF	CND$2
	.GLOBL	$ADR,$SBR,$ERR








	R0=%0
	R1=%1
	R2=%2
	R3=%3
	R4=%4
	R5=%5
	SP=%6
	PC=%7
	SIGNS=0
	A1=4
	B1=6
	A2=8.
	B2=10.
	AC=177302
	MQ=177304
	NOR=177312
	ASH=177316
	F0=%0
$SBR:	ADD	#100000,@SP	
	.IFDF	FPU
$ADR:	.WORD	170001	
	.WORD	172426	
	.WORD	172026	
	.WORD	174046	
	JMP	@(R4)+
	.ENDC
	.IFNDF	FPU
$ADR:	MOV	R4,-(SP)
	CLR	-(SP)	
	CLR	R2	
	CLR	R3
	ASL	B1(SP)	
	ROL	A1(SP)	
	BISB	A1+1(SP),R3	
	BEQ	OUT$2	
	ROLB	@SP	
	ASL	B2(SP)	
	ROL	A2(SP)	
	BISB	A2+1(SP),R2	
	BNE	A2N$2	
	RORB	@SP	
	ROR	A1(SP)
	ROR	B1(SP)
	MOV	A1(SP),A2(SP)	
	MOV	B1(SP),B2(SP)
	BR	OUT$2	
A2N$2:	ROLB	SIGNS+1(SP)   	
	MOVB	#1,A2+1(SP)	
	MOVB	#1,A1+1(SP)	
	SUB	R3,R2	
	BGT	EXA$2	
	MOV	A2(SP),R0	
	MOV	B2(SP),R1	
	BR	SCK$2	
EXA$2:	ADD	R2,R3	
	MOV	A1(SP),R0	
	MOV	B1(SP),R1	
	MOV	A2(SP),A1(SP)
	MOV	B2(SP),B1(SP)
	SWAB	@SP	
	NEG	R2	
SCK$2:	CMPB	SIGNS+1(SP),@SP	
	BEQ	ECK$2	
	NEG	R1	
	ADC	R0
	NEG	R0
ECK$2:	TST	R2
	BEQ	SFD$2	
SFT$2:	CMP	#-25.,R2	
	BLE	SFR$2	
	MOV	A1(SP),R0	
	MOV	B1(SP),R1	
	BR	NOD$2
	.IFDF	EAE
SFR$2:	MOV	R1,@#MQ	
	MOV	R0,@#AC
	MOV	R2,@#ASH	
	MOV	@#MQ,R1	
	MOV	@#AC,R0
	.ENDC
	.IFDF	MULDIV
SFR$2:	.WORD	073002	
	.ENDC
	.IFNDF	EAE&MULDIV
SFR$2:	CMP	#-8.,R2	
	BLE	SF0$2	
	CLR	R4	
	TST	R0	
	BPL	NCP$2	
	COM	R4	
NCP$2:	CMP	#-16.,R2
	BLT	SRL$2	
	MOV	R0,R1	
	MOV	R4,R0	
	ADD	#16.,R2	
	BEQ	SFD$2
SRL$2:	CMP	#-8.,R2
	BLE	SF0$2	
	ADD	#16.,R2	
SFL$2:	ASL	R1
	ROL	R0
	ROL	R4
	DEC	R2	
	BGT	SFL$2
	MOV	R0,R1	
	MOV	R4,R0
	BR	SFD$2
SF0$2:	ASR	R0	
	ROR	R1
	INC	R2	
	BLT	SF0$2
	.ENDC
SFD$2:	ADD	A1(SP),R0	
	ADD	B1(SP),R1	
	ADC	R0
	CMPB	SIGNS+1(SP),@SP
	BNE	SUB$2	
	BIT	R0,#1000
	BEQ	NOD$2	
	ASR	R0
	ROR	R1
	INC	R3	
NOD$2:	SWAB	R3	
	BNE	OVR$2	
	BISB	R0,R3
	ROR	@SP	
	ROR	R3
	ROR	R1
	ADC	R1	
	ADC	R3
	BVS	OVR$2	
	BCS	OVR$2
STR$2:	MOV	R3,A2(SP)	
	MOV	R1,B2(SP)	
OUT$2:	TST	(SP)+	
	MOV	(SP)+,R4
	CMP	(SP)+,(SP)+	
	JMP	@(R4)+	

OVR$2:	JSR	R5,$ERR	
	BR	OUT$2
	.BYTE	3
	.BYTE	2

SUB$2:	TST	R0	
	BGT	BT9$2	
	BEQ	ZTS$2	
	NEG	R0	
	NEG	R1
	SBC	R0
	SWAB	@SP	
BT9$2:
	.IFDF	EAE
	BIT	R0,#700
	BNE	B9A$2	
	MOV	R1,@#MQ	
	MOV	R0,@#AC
	CLR	@#NOR	
	SUB	@#NOR,R3	
	MOV	#-6,@#ASH	
	ADD	#6,R3	
	BLE	UNF$2	
	MOV	@#AC,R0
	MOV	@#MQ,R1	
	BR	NOD$2
	.ENDC
B9A$2:	BIT	R0,#400
	BNE	UTS$2	
	DEC	R3	
	ASL	R1	
	ROL	R0
	BR	B9A$2	
ZTS$2:	TST	R1	
	.IFDF	EAE
	BNE	BT9$2
	BR	ZER$2
	.ENDC
	.IFNDF	EAE
	BEQ	ZER$2
	SWAB	R1	
	BISB	R1,R0	
	CLRB	R1
	SUB	#8.,R3	
	BR	BT9$2
	.ENDC
UTS$2:	TST	R3	
	BGT	NOD$2	
UNF$2:	JSR	R5,$ERR	
	BR	UND$2
	.BYTE	5
	.BYTE	2
UND$2:	CLR	R1	
ZER$2:	CLR	R3	
	BR	STR$2
	.ENDC
	.ENDC
	.EOT
	.TITLE	$ALG03
	.IFDF	CND$3





	.GLOBL	ALOG,ALOG10,$ERR
	.IFNDF	FPU
	.GLOBL	$POLSH,$ADR,$SBR,$MLR,$DVR,$IR
	.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
ALOG10:	MOV	@PC,-(SP)	
	BR	LOG$3
ALOG:	CLR	-(SP)	
LOG$3:	MOV	2(R5),R4	
	MOV	#071030,-(SP)	
	MOV	#137661,-(SP)
	CMP	-(SP),-(SP)	
	MOV	2(R4),-(SP)	
	MOV	@R4,-(SP)
	BLE	ERR$3	
	ASL	@SP
	MOVB	1(SP),12.(SP)	
	MOVB	#200,1(SP)	
	ROR	@SP
	MOV	#002363,-(SP)	
	MOV	#040065,-(SP)
	MOV	6(SP),-(SP)	
	MOV	6(SP),-(SP)
	MOV	#002363,-(SP)	
	MOV	#040065,-(SP)
	JSR	R4,$POLSH	
	.WORD	$SBR,UP$3,$ADR,$DVR	
					
	.WORD	DUP$3,DUP$3	
	.WORD	$MLR,REG$3,STK$3,STK$3,STK$3	
	.WORD	$MLR,$ADR,$MLR,$ADR,$MLR,$ADR,$MLR,$ADR
			
	.WORD	SCL$3,$IR,PL2$3,$MLR	
	.WORD	$ADR,EXI$3	
					
	.WORD	$MLR,EXI$3	

REG$3:	MOV	(SP)+,R0	
	MOV	(SP)+,R1
	MOV	#CON$3+4,R2	
	BR	STC$3
STK$3:	MOV	R1,-(SP)	
	MOV	R0,-(SP)
STC$3:	MOV	-(R2),-(SP)	
	MOV	-(R2),-(SP)
	JMP	@(R4)+

UP$3:	MOV	(SP)+,10.(SP)	
	MOV	(SP)+,10.(SP)
	JMP	@(R4)+

SCL$3:	CLR	-(SP)
	BISB	6(SP),@SP	
	SUB	#200,@SP	
	JMP	@(R4)+

DUP$3:	MOV	2(SP),-(SP)
	MOV	2(SP),-(SP)	
	JMP	@(R4)+

PL2$3:	MOV	#071030,-(SP)	
	MOV	#040061,-(SP)
	JMP	@(R4)+

EXI$3:	DECB	5(SP)	
	BLT	LGT$3	
	MOV	#055731,-(SP)	
	MOV	#037736,-(SP)
	JMP	@(R4)+
LGT$3:	MOV	(SP)+,R0	
	MOV	(SP)+,R1
	TST	(SP)+	
	RTS	R5
ERR$3:	ADD	#14.,SP
	JSR	R5,$ERR	
	RTS	R5
	.BYTE	4
	.BYTE	10.
	.ENDC
	.IFDF	FPU
ALOG10:	MOV	@PC,R4
	BR	LOG$3
ALOG:	CLR	R4
LOG$3:	SETF	
	SETI	
	MOV	#FCO$3,R0	
	LDF	@2(R5),F2
	CFCC
	BLE	ERR$3
	STEXP	F2,R1
	LDCIF	R1,F3
	MULF	(R0)+,F3
	LDEXP	#0,F2
	LDF	F2,F1
	SUBF	(R0),F2
	ADDF	(R0)+,F1
	DIVF	F1,F2
	LDF	F2,F1
	MULF	F1,F1

	MOV	#3,R1
	LDF	(R0)+,F0
XPD$3:	MULF	F1,F0
	DEC	R1
	ADDF	(R0)+,F0
	BGT	XPD$3

	MULF	F2,F0
	ADDF	(R0)+,F0
	ADDF	F3,F0
	TST	R4
	BEQ	LGT$3
	MULF	(R0)+,F0

LGT$3:	STF	F0,-(SP)
	MOV	(SP)+,R0
	MOV	(SP)+,R1
	RTS	R5
ERR$3:	JSR	R5,$ERR
	RTS	R5
	.BYTE	4
	.BYTE	10.



FCO$3:	.WORD	040061,071030

	.WORD	040065,002363
	.ENDC


	.WORD	037632,014525	

	.WORD	037714,120036	

	.WORD	040052,125332	

CON$3:	.WORD	040400,000000	
	.IFDF	FPU

	.WORD	137661,071030

	.WORD	037736,055731
	.ENDC
	.ENDC
	.TITLE	$ANT03
	.IFDF	CND$4
	.GLOBL	AINT,$INTR












	R0=%0
	R1=%1
	R2=%2
	R3=%3
	R4=%4
	R5=%5
	SP=%6
	PC=%7
	MQ=177304
	LSH=177314
	F0=%0
	F1=%1
	.IFDF	FPU
AINT:	.WORD	170001	
	.WORD	172475,2	
	.WORD	171467,24	
	.WORD	174146	
	MOV	(SP)+,R0	
	MOV	(SP)+,R1
	RTS	R5	

$INTR:	.WORD	170001	
	.WORD	172426	
	.WORD	171467,4	
	.WORD	174146	
	JMP	@(R4)+	
ONE$4:	.WORD	040200,0	
	.ENDC
	.IFNDF	FPU
AINT:	MOV	2(R5),R4	
	MOV	@R4,R0	
	MOV	2(R4),R1	
	MOV	PC,R2	
	BR	AI1$4
$INTR:	CLR	R2	
	MOV	(SP)+,R0	
	MOV	(SP)+,R1	
AI1$4:	MOV	R0,R3
	ROL	R3	
	CLRB	R3
	SWAB	R3	
	SUB	#230,R3	
	BGE	DNE$4	
	CMP	#-30,R3
	BLT	SHF$4	
	CLR	R0	
	CLR	R1
	BR	DNE$4
SHF$4:	MOV	R3,-(SP)	
	.IFNDF	EAE&MULDIV
ROR$4:	ROR	R0	
	ROR	R1
	INC	R3	
	BLT	ROR$4	
	MOV	(SP)+,R3	
ASL$4:	ASL	R1	
	ROL	R0
	INC	R3	
	BLT	ASL$4
	.ENDC

	.IFDF	EAE
	MOV	#MQ,R3	
	MOV	R1,@R3	
	MOV	R0,-(R3)
	MOV	@SP,@#LSH	
	NEG	@SP	
	MOV	(SP)+,@#LSH	
	MOV	(R3)+,R0	
	MOV	@R3,R1
	.ENDC

	.IFDF	MULDIV
	.WORD	073016	
	NEG	@SP	
	.WORD	073026	
	.ENDC
DNE$4:	TST	R2	
	BEQ	DN1$4	
	RTS	R5	
DN1$4:	MOV	R1,-(SP)	
	MOV	R0,-(SP)
	JMP	@(R4)+	
	.ENDC
	.ENDC
	.TITLE	$CMD02
	.IFDF	CND$5
	.GLOBL	$CMD













	R0=%0
	R1=%1
	R2=%2
	R4=%4
	SP=%6
	PC=%7
	F0=%0
	.IFDF	FPU
$CMD:	.WORD	170011	
	.WORD	172426	
	.WORD	173426	
	.WORD	170000	
	JMP	@(R4)+
	.ENDC
	.IFNDF	FPU
$CMD:	MOV	@PC,R0	
	MOV	8.(SP),R1	
	BGE	FPS$5	
	ASL	R0	
	MOV	(SP)+,R2	
	BLT	SME$5	
	BR	NEG$5	
FPS$5:	MOV	(SP)+,R2
	BLT	PLS$5	
SME$5:	CMP	R1,R2	
	BNE	OUT$5	
	CMP	8.(SP),@SP
	BNE	OUT$5
	CMP	10.(SP),2(SP)
	BNE	OUT$5
	CMP	12.(SP),4(SP)
	BNE	OUT$5
	CLR	R0	
OUT$5:	ROR	R0	
	BCS	PLS$5	
NEG$5:	NEG	R0	
PLS$5:	ADD	#14.,SP	
	TST	R0	
	JMP	@(R4)+	
	.ENDC
	.ENDC
	.TITLE	$CMR02
	.IFDF	CND$6
	.GLOBL	$CMR













	R0=%0
	R1=%1
	R2=%2
	R4=%4
	SP=%6
	PC=%7
	F0=%0
	.IFDF	FPU
$CMR:	.WORD	170001	
	.WORD	172426	
	.WORD	173426	
	.WORD	170000	
	JMP	@(R4)+
	.ENDC
	.IFNDF	FPU
$CMR:	MOV	@PC,R0	
	MOV	4(SP),R1	
	BGE	FPS$6	
	ASL	R0	
	MOV	(SP)+,R2	
	BLT	SME$6	
	BR	NEG$6	
FPS$6:	MOV	(SP)+,R2
	BLT	PLS$6	
SME$6:	CMP	R1,R2	
	BNE	OUT$6	
	CMP	4(SP),@SP	
	BNE	OUT$6	
	CLR	R0	
OUT$6:	ROR	R0	
	BCS	PLS$6	
NEG$6:	NEG	R0	
PLS$6:	ADD	#6,SP	
	TST	R0	
	JMP	@(R4)+	
	.ENDC
	.ENDC
	.TITLE	$DBL02
	.IFDF	CND$7





	
	.GLOBL	DBLE









	R0=%0
	R1=%1
	R2=%2
	R3=%3
	R5=%5
DBLE:	MOV	2(R5),R2	
	MOV	(R2)+,R0	
	MOV	@R2,R1	
	CLR	R2	
	CLR	R3
	RTS	R5	
	.ENDC
	.TITLE	$DCI01
	.IFDF	CND$8





	.GLOBL	$DCI,$RCI









	R0=%0
	R1=%1
	R2=%2
	R3=%3
	R4=%4
	R5=%5
	SP=%6
	PC=%7
NUMEND=0
POINTL=2
DIGITS=4
BEXP=6
ESIGN=8.
SIGN=10.
EEXP=12.
P=30.
D=32.
ERF=26.
LENGTH=34.
TEMP=LENGTH
RESULT=P
START=36.
END=START
$RCI:	CLR	-(SP)	
	INC	@SP	
	BR	CNV$8
$DCI:	CLR	-(SP)	
CNV$8:	MOV	R0,-(SP)
	MOV	R1,-(SP)
	MOV	R2,-(SP)
	MOV	R3,-(SP)
	MOV	R4,-(SP)
	MOV	R5,-(SP)
	CLR	-(SP)	
	CLR	-(SP)	
	CLR	-(SP)	
	MOV	#65.,-(SP)	
	MOV	#18.,-(SP)	
	CLR	-(SP)	
	CLR	-(SP)	
	MOV	START(SP),R5	
	ADD	LENGTH(SP),END(SP)	
	CLR	R0	
	CLR	R1
	CLR	R2
	CLR	R3
SCN$8:	MOVB	(R5)+,R4	
	BIC	#177600,R4
	CMPB	R4,#' 	
	BNE	SGS$8	
	CMP	R5,START(SP)	
	BLT	SCN$8	
	JMP	ZER$8	
SGS$8:	CMPB	R4,#'+	
	BEQ	FLD$8	
	CMPB	R4,#'-	
	BNE	NCK$8	
	INC	SIGN(SP)	
	BR	FLD$8
NXT$8:	MOVB	(R5)+,R4	
	BIC	#177600,R4
	CMPB	R4,#' 	
	BNE	NCK$8
	MOV	#'0,R4	
NCK$8:	CMPB	R4,#'0	
	BLT	PCK$8	
	BNE	NNZ$8	
	TST	R0	
	BNE	NNZ$8
	TST	R1
	BNE	NNZ$8
	TST	R2
	BNE	NNZ$8
	TST	R3
	BEQ	FLD$8
NNZ$8:	CMPB	R4,#'9
	BGT	EXC$8	
	DEC	DIGITS(SP)	
	BGE	A2I$8	
	INC	EEXP(SP)	
	BR	FLD$8
A2I$8:	SUB	#60,R4	
	JSR	PC,ML5$8	
	JSR	PC,LFT$8	
	ADD	R4,R3	
	ADC	R2
	ADC	R1
	ADC	R0	
FLD$8:	CMP	R5,END(SP)	
	BLT	NXT$8
	MOV	R5,@SP	
SCL$8:	TST	R0
	BNE	SC1$8	
	TST	R1
	BNE	SC1$8
	TST	R2
	BNE	SC1$8
	TST	R3
	BEQ	ZER$8	
SC1$8:	CMP	@SP,R5	
	BNE	NOP$8	
	SUB	P(SP),EEXP(SP)	
NOP$8:	TST	POINTL(SP)
	BNE	PNT$8	
	MOV	D(SP),@SP	
PNT$8:	SUB	POINTL(SP),@SP
	SUB	@SP,EEXP(SP)	
	BGT	MUL$8	
	BLT	DIV$8	
	JMP	FLT$8	
MUL$8:	CMP	R0,#31462
	BHI	MDV$8	
	JSR	PC,ML5$8	
	INC	BEXP(SP)	
D10$8:	DEC	EEXP(SP)	
	BGT	MUL$8	
	JMP	FLT$8	
MDV$8:	JSR	PC,M54$8	
	ADD	#3,BEXP(SP)	
	BR	D10$8	
PCK$8:	CMPB	R4,#'.
	BNE	ERR$8	
PTF$8:	TST	POINTL(SP)
	BNE	ERR$8	
	MOV	R5,POINTL(SP)	
	BR	FLD$8	
ERR$8:	COMB	ERF+1(SP)	
ZER$8:	CLR	R0	
	CLR	R1
	CLR	R2
	CLR	R3
	JMP	STR$8	
EXC$8:	CMPB	R4,#'E
	BEQ	EXT$8	
	CMPB	R4,#'D
	BNE	ERR$8	
EXT$8:	MOV	R5,@SP	
	DEC	@SP	
	MOV	R3,TEMP(SP)
	CLR	R3
	CMP	R5,END(SP)
	BGE	ERR$8	
	MOVB	(R5)+,R4
	BIC	#177600,R4
	CMPB	R4,#'+	
	BEQ	EF1$8
	CMPB	R4,#'-	
	BNE	ENM$8	
	INC	ESIGN(SP)	
EF1$8:	CMP	R5,END(SP)
	BGE	ERR$8
EF2$8:	MOVB	(R5)+,R4	
	BIC	#177600,R4
ENM$8:	CMPB	R4,#' 	
	BNE	EN1$8
	MOV	#'0,R4	
EN1$8:	CMPB	R4,#'0
	BLT	ERR$8
	CMPB	R4,#'9
	BGT	ERR$8	
	SUB	#60,R4	
	ASL	R3	
	ADD	R3,R4
	ASL	R3
	ASL	R3
	ADD	R4,R3	
	CMP	R5,END(SP)
	BLT	EF2$8	
	TST	ESIGN(SP)	
	BEQ	EN2$8	
	NEG	R3	
EN2$8:	ADD	R3,EEXP(SP)	
	MOV	TEMP(SP),R3
	JMP	SCL$8	
DIV$8:	TST	R0
	BLT	DV1$8	
DV2$8:	DEC	BEXP(SP)	
	JSR	PC,LFT$8
	BPL	DV2$8
DV1$8:	MOV	#16.,R4	
	JSR	PC,RIT$8
	MOV	R3,-(SP)
	MOV	R2,-(SP)
	MOV	R1,-(SP)	
	MOV	R0,-(SP)
DV3$8:	JSR	PC,RIT$8
	CLC
	JSR	PC,RIT$8
	MOV	#2,R5
	CLC
DV4$8:	JSR	PC,RIT$8
	ADD	6(SP),R3
	ADC	R2
	ADC	R1
	ADC	R0
	ADD	4(SP),R2
	ADC	R1
	ADC	R0
	ADD	2(SP),R1
	ADC	R0
	ADD	@SP,R0
	DEC	R5	
	BGT	DV4$8
	DEC	R4
	BGT	DV3$8
	ADD	#8.,SP	
	SUB	#3,BEXP(SP)
	INC	EEXP(SP)	
	BLT	DIV$8	
FLT$8:	DEC	BEXP(SP)	
	JSR	PC,LFT$8
	BCC	FLT$8
	ADD	#200,BEXP(SP)	
	BLE	UND$8	
	CMP	BEXP(SP),#377
	BGT	OVR$8	
	CLRB	R3
	BISB	R2,R3
	SWAB	R3
	CLRB	R2
	BISB	R1,R2
	SWAB	R2
	CLRB	R1
	BISB	R0,R1	
	SWAB	R1
	CLRB	R0
	BISB	BEXP(SP),R0	
	SWAB	R0	
	ROR	SIGN(SP)	
	JSR	PC,RIT$8	
	ADC	R3
	ADC	R2
	ADC	R1	
	ADC	R0
	BVS	OVR$8	
	BCS	OVR$8
STR$8:	TSTB	ERF(SP)	
	BEQ	DPR$8	
	ROL	R2	
	ADC	R1
	ADC	R0
	BVS	OVR$8
	BCS	OVR$8	
	MOV	R0,R2	
	MOV	R1,R3
DPR$8:	MOV	R0,RESULT(SP)	
	MOV	R1,RESULT+2(SP)
	MOV	R2,RESULT+4(SP)
	MOV	R3,RESULT+6(SP)
	ADD	#14.,SP	
	MOV	(SP)+,R5
	MOV	(SP)+,R4
	MOV	(SP)+,R3
	MOV	(SP)+,R2
	MOV	(SP)+,R1
	MOV	(SP)+,R0
	TSTB	@SP	
	BEQ	RRN$8	
	MOV	(SP)+,2(SP)	
	MOV	(SP)+,2(SP)	
RRN$8:	ROL	(SP)+	
	RTS	PC

OVR$8:
UND$8:	JMP	ERR$8

M54$8:	CMP	R0,#146314
	BLO	M55$8	
	CLC
	JSR	PC,RIT$8	
	INC	BEXP+0+2(SP)	
M55$8:	MOV	R0,-(SP)
	MOV	R1,-(SP)
	MOV	R2,-(SP)
	MOV	R3,-(SP)
	CLC
	JSR	PC,RIT$8	
	CLC
	JSR	PC,RIT$8	
	BR	M5A$8	
ML5$8:	MOV	R0,-(SP)	
	MOV	R1,-(SP)
	MOV	R2,-(SP)
	MOV	R3,-(SP)
	JSR	PC,LFT$8	
	JSR	PC,LFT$8	
M5A$8:	ADD	(SP)+,R3
	ADC	R2
	ADC	R1
	ADC	R0
	ADD	(SP)+,R2
	ADC	R1
	ADC	R0
	ADD	(SP)+,R1
	ADC	R0
	ADD	(SP)+,R0
	RTS	PC	
LFT$8:	ASL	R3
	ROL	R2
	ROL	R1
	ROL	R0
	RTS	PC
RIT$8:	ROR	R0
	ROR	R1
	ROR	R2
	ROR	R3
	RTS	PC
	.ENDC
	.TITLE	$DCO04
	.IFDF	CND$9





	
	.GLOBL	$ECO,$FCO,$GCO,$DCO












	R0=%0
	R1=%1
	R2=%2
	R3=%3
	R4=%4
	R5=%5
	SP=%6
	PC=%7
POINT=2
BEXP=4
EEXP=6
TYPE=12.
P=16.
D=18.
L=20.
S=22.
$GCO:	MOV	#42403,R0	
	BR	XCO$9
$FCO:	CLR	R0	
	BR	XCO$9
$DCO:	MOV	(SP)+,R0	
	MOV	(SP)+,R1	
	MOV	(SP)+,R2	
	MOV	@SP,R3	
	MOV	#42002,@SP	
	MOV	R4,-(SP)	
	MOV	4(SP),R4	
	MOV	R0,4(SP)	
	BR	XC1$9
$ECO:	MOV	#42402,R0	
XCO$9:	MOV	(SP)+,R3	
	MOV	(SP)+,R1	
	MOV	(SP)+,R2	
	MOV	R3,-(SP)	
	MOV	R0,-(SP)	
	CLR	R3	
	MOV	R4,-(SP)	
	CLR	R4
XC1$9:	MOV	R5,-(SP)	
	CLR	-(SP)	
	CLR	-(SP)	
	CMP	-(SP),-(SP)	
	ADD	S(SP),L(SP)	
	MOV	S(SP),R0
CLE$9:	MOVB	#' ,(R0)+	
	CMP	R0,L(SP)
	BLO	CLE$9
	ROL	R1	
	ROL	@SP	
	SWAB	R1
	MOVB	R1,BEXP(SP)	
	BNE	NNZ$9	
	CLR	R0
	BR	NOD$9

NNZ$9:	SEC	
	ROR	R1
	CLRB	R1	
	SWAB	R2
	BISB	R2,R1
	CLRB	R2
	SWAB	R3
	BISB	R3,R2
	CLRB	R3
	SWAB	R4
	BISB	R4,R3
	CLRB	R4
	SUB	#200,BEXP(SP)	
	BLT	DIV$9	
	BEQ	NOM$9	
MUL$9:	TST	R1	
	BLT	ML1$9	
	ASL	R4	
	ROL	R3
	ROL	R2
	ROL	R1
	DEC	BEXP(SP)	
	BGT	MUL$9	
	BR	NOM$9
ML1$9:	JSR	PC,M45$9	
	INC	EEXP(SP)	
	SUB	#3,BEXP(SP)	
	BGT	MUL$9	
	BEQ	NOM$9	
DIV$9:	CMP	R1,#146314	
	BHIS	DV1$9	
	CMP	BEXP(SP),#-3
	BGT	DV1$9	
	JSR	PC,M54$9	
	DEC	EEXP(SP)	
	ADD	#2,BEXP(SP)	
	BR	DV2$9
DV1$9:	JSR	PC,RIT$9	
DV2$9:	INC	BEXP(SP)	
	BNE	DIV$9	


NOM$9:	CLR	R0	
NO1$9:	JSR	PC,M54$9	
	JSR	PC,ML8$9	
	TST	R0
	BNE	NOD$9	
	DEC	EEXP(SP)	
	BR	NO1$9	

NOD$9:	TSTB	TYPE(SP)	
	BEQ	FFT$9	
	RORB	TYPE(SP)
	BCC	EFT$9	
	TST	EEXP(SP)	
	BLT	EFT$9	
	CMP	EEXP(SP),D(SP)
	BGT	EFT$9	
	CLRB	TYPE(SP)	
	SUB	#4,L(SP)	
	SUB	EEXP(SP),D(SP)	
	CLR	P(SP)	
FFT$9:	MOV	EEXP(SP),R5	
FFE$9:	ADD	D(SP),R5
	ADD	P(SP),R5
	JSR	PC,RUD$9	
	MOV	L(SP),R5
	SUB	D(SP),R5
	TSTB	TYPE(SP)
	BNE	FF5$9	
	ADD	EEXP(SP),P(SP)	
	BLE	FF5$9	
	SUB	P(SP),R5
	SUB	#2,R5	
	JSR	PC,ISN$9	
	BR	FF3$9	
FF5$9:	SUB	#3,R5	
	JSR	PC,ISN$9	
	MOVB	#'0,(R5)+	
	MOVB	#'.,(R5)+	
FF4$9:	CMP	R5,L(SP)	
	BHIS	FF3$9	
	MOVB	#'0,(R5)+	
	BR	FF4$9
FF3$9:	MOV	L(SP),R5
	SUB	D(SP),R5
	DEC	R5	
	MOV	R5,POINT(SP)	
	TST	P(SP)
	BGT	FF6$9
	INC	R5	
FF6$9:	SUB	P(SP),R5
	JSR	PC,DGS$9	
	TSTB	TYPE(SP)
	BEQ	DNE$9	
	BR	EFE$9	
EFT$9:	SUB	#4,L(SP)	
	CLR	R5
	TST	P(SP)
	BLE	FFE$9	
	MOV	D(SP),R5	
	ADD	P(SP),R5
	JSR	PC,RUD$9	
	MOV	L(SP),R5	
	SUB	D(SP),R5
	DEC	R5
	MOV	R5,POINT(SP)
	SUB	P(SP),R5
	DEC	R5
	JSR	PC,ISN$9	
	JSR	PC,DGS$9	
EFE$9:	SUB	P(SP),EEXP(SP)	
	MOV	L(SP),R3
	MOVB	TYPE+1(SP),(R3)+	
	MOV	EEXP(SP),R4
	BGE	EXP$9	
	NEG	R4	
	MOVB	#'-,(R3)+	
	BR	EX1$9
EXP$9:	MOVB	#' ,(R3)+	
EX1$9:	MOVB	#'0,@R3	
EX3$9:	SUB	#10.,R4	
	BLT	EX2$9
	INCB	@R3	
	BR	EX3$9
EX2$9:	ADD	#72,R4	
	MOVB	R4,1(R3)	
DNE$9:	ADD	#8.,SP
	MOV	(SP)+,R5
	MOV	(SP)+,R4
	MOV	(SP)+,6(SP)	
	MOV	(SP)+,6(SP)
	CMP	(SP)+,(SP)+	
	ROL	(SP)+	
	RTS	PC	



M54$9:	MOV	R1,-(SP)	
	MOV	R2,-(SP)
	MOV	R3,-(SP)
	MOV	R4,-(SP)
	JSR	PC,RIT$9	
	JSR	PC,RIT$9	
	ADC	R4	
	ADC	R3
	ADC	R2	
	ADC	R1
	ADD	(SP)+,R4
	ADC	R3
	ADC	R2
	ADC	R1
	ADC	R0
	ADD	(SP)+,R3
	ADC	R2
	ADC	R1
	ADC	R0
	ADD	(SP)+,R2
	ADC	R1
	ADC	R0
	ADD	(SP)+,R1
	ADC	R0
	RTS	PC	


M45$9:	MOV	#16.,R5	
	JSR	PC,RIT$9
	MOV	R4,-(SP)
	MOV	R3,-(SP)
	MOV	R2,-(SP)
	MOV	R1,-(SP)
M51$9:	JSR	PC,RIT$9
	JSR	PC,RIT$9
	MOV	#2,R0
M52$9:	JSR	PC,RIT$9
	ADD	6(SP),R4
	ADC	R3
	ADC	R2
	ADC	R1
	ADD	4(SP),R3
	ADC	R2
	ADC	R1
	ADD	2(SP),R2
	ADC	R1
	ADD	@SP,R1
	DEC	R0
	BGT	M52$9
	DEC	R5
	BGT	M51$9
	ADD	#8.,SP	
	RTS	PC



ML8$9:	MOV	R5,-(SP)
	MOV	#3,R5
M81$9:	ASL	R4
	ROL	R3
	ROL	R2
	ROL	R1
	ROL	R0
	DEC	R5
	BGT	M81$9
	MOV	(SP)+,R5
	RTS	PC
ERR$9:	TST	(SP)+	
	MOV	S(SP),R3	
	MOV	L(SP),R4	
	TSTB	TYPE(SP)	
	BEQ	STS$9	
	ADD	#4,R4	
STS$9:	MOVB	#'*,(R3)+	
	CMP	R3,R4
	BLO	STS$9	
	COM	TYPE(SP)	
	BR	DNE$9





RUD$9:	CMP	R5,#20.
	BGT	RU1$9	
	MOV	R5,BEXP+0+2(SP)	
	BEQ	RU3$9	
	BLT	RU1$9	
	MOV	R0,-(SP)
	MOV	R1,-(SP)
	MOV	R2,-(SP)
	MOV	R3,-(SP)
	MOV	R4,-(SP)
	MOV	#100000,R1	
	CLR	R2
	CLR	R3
	CLR	R4
RDF$9:	DEC	BEXP+0+2+10.(SP)	
	BEQ	RDD$9	
	JSR	PC,M45$9	
	JSR	PC,RIT$9
	JSR	PC,RIT$9
	JSR	PC,RIT$9	
	BR	RDF$9	
RDD$9:	CLR	R0
	ADD	(SP)+,R4	
	ADC	R3
	ADC	R2
	ADC	R1
	ADD	(SP)+,R3
	ADC	R2
	ADC	R1
	ADD	(SP)+,R2
	ADC	R1
	ADD	(SP)+,R1
	ADC	R0
	ADD	(SP)+,R0
RU2$9:	CMP	#10.,R0
	BGT	RU1$9	
	INC	EEXP+2(SP)	
RU1$9:	RTS	PC	
RU3$9:	ADD	#5,R0	
	BR	RU2$9



ISN$9:	CMP	R5,S-0+2(SP)	
	BLO	SPC$9	
	ROR	0+2(SP)	
	BCC	ISR$9	
	MOVB	#'-,@R5	
ISR$9:	INC	R5	
	RTS	PC	
SPC$9:	ROR	0+2(SP)	
	BCS	ERR$9	
	INC	R5	
	CMP	R5,S+2(SP)
	BLO	ERR$9	
	RTS	PC




DGS$9:	CMP	#10.,R0	
	BGT	DG1$9	
	MOVB	#'1,(R5)+	
	SUB	#10.,R0	
DG1$9:	CMP	POINT+2(SP),R5	
	BNE	DG2$9
	MOVB	#'.,(R5)+	
DG2$9:	CMP	L+2(SP),R5	
	BLOS	DIG$9	
DG3$9:	ADD	#60,R0	
	MOVB	R0,(R5)+	
	CLR	R0
	JSR	PC,M54$9	
	JSR	PC,ML8$9	
	BR	DG1$9	
DIG$9:	RTS	PC	


RIT$9:	CLC
	ROR	R1
	ROR	R2
	ROR	R3
	ROR	R4
	RTS	PC
	.ENDC
	.EOT
	.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
	.TITLE	$DVD05
	.IFDF	CND$16
	.GLOBL	$DVD,$ERRA










	R0=%0
	R1=%1
	R2=%2
	R3=%3
	R4=%4
	R5=%5
	SP=%6
	PC=%7
	F0=%0
	F1=%1
	D=8.
	N=16.
	Q=16.
	.IFDF	FPU
$DVD:	.WORD	170011	
	.WORD	172526	
	.WORD	172426	
	.WORD	174401	
	.WORD	174046	
	JMP	@(R4)+
	.ENDC
	.IFNDF	FPU
$DVD:	MOV	R4,-(SP)
	MOV	R5,-(SP)
	CLR	R0
	CLR	R1
	CLR	R2
	CLR	R3
	CLR	-(SP)
	ASL	N+0-2(SP)	
	ROL	@SP	
	CLR	-(SP)
	TST	D(SP)
	BEQ	DCH$16
	BISB	N+1(SP),@SP	
	BEQ	ZER$16	
	BISB	N(SP),R0
	SWAB	R0	
	SEC		
	ROR	R0
	BISB	N+3(SP),R0
	BISB	N+2(SP),R1
	SWAB	R1
	BISB	N+5(SP),R1
	BISB	N+4(SP),R2
	SWAB	R2
	BISB	N+7(SP),R2
	BISB	N+6(SP),R3
	SWAB	R3
	ASL	D(SP)	
	ADC	2(SP)	
	CLR	R4
	BISB	D+1(SP),R4	
	SUB	R4,@SP	
	SWAB	D(SP)	
	SEC		
	ROR	D(SP)
	MOVB	D+3(SP),D(SP)
	MOVB	D+2(SP),D+3(SP)
	MOVB	D+5(SP),D+2(SP)
	MOVB	D+4(SP),D+5(SP)
	MOVB	D+7(SP),D+4(SP)
	MOVB	D+6(SP),D+7(SP)
	CLRB	D+6(SP)
	CLR	Q(SP)	
	CLR	Q+2(SP)
	CLR	Q+4(SP)
	CMP	R0,D(SP)	
	BHI	DLW$16	
	BLO	DHI$16	
	CMP	R1,D+2(SP)	
	BHI	DLW$16
	BLO	DHI$16
	CMP	R2,D+4(SP)
	BHI	DLW$16
	BLO	DHI$16
	CMP	R3,D+6(SP)
	BHI	DLW$16
	BNE	DHI$16
	INC	@SP	
	CLR	R4
	BR	FLT$16
DCH$16:	MOV	#1403,R0	
	BR	EC1$16
UND$16:	MOV	#4005,R0	
ECL$16:	TST	-(SP)	
EC1$16:	JSR	R5,$ERRA
ZER$16:	CMP	(SP)+,(SP)+	
	CLR	Q+0-4(SP)
	CLR	Q+2-4(SP)
	CLR	Q+4-4(SP)
	CLR	Q+6-4(SP)
	BR	RTN$16
DLW$16:	ROR	R0	
	ROR	R1	
	ROR	R2
	ROR	R3
	INC	@SP	
DHI$16:	MOV	#9.,R5	
	JSR	PC,DV1$16
	MOVB	R4,Q(SP)	
				
	TST	R5	
	BNE	FL1$16	
	MOV	#16.,R5	
	JSR	PC,DV1$16
	MOV	R4,Q+2(SP)
	TST	R5
	BNE	FL1$16
	MOV	#16.,R5
	JSR	PC,DV1$16
	MOV	R4,Q+4(SP)
	TST	R5
	BNE	FL1$16
	MOV	#16.,R5
	JSR	PC,DV1$16
	BR	FLT$16
FL1$16:	CLR	R4	
FLT$16:	MOV	(SP)+,R5	
	ADD	#200,R5	
	BLE	UND$16	
	CMP	#377,R5
	BLT	OVR$16	
	MOVB	R5,Q+1-2(SP)	
SGN$16:	ROR	(SP)+	
	ROR	Q+0-4(SP)
	ROR	Q+2-4(SP)
	ROR	Q+4-4(SP)
	ROR	R4
	ADC	R4	
	ADC	Q+4-4(SP)
	ADC	Q+2-4(SP)
	ADC	Q+0-4(SP)
	MOV	R4,Q+6-4(SP)	
	BCS	OV1$16
	BVS	OV1$16
RTN$16:	MOV	(SP)+,R5
	MOV	(SP)+,R4
	ADD	#8.,SP	
	JMP	@(R4)+
OV1$16:	TST	-(SP)	
OVR$16:	MOV	#2003,R0	
	BR	ECL$16
DV1$16:	ASL	R4	
	ASL	R3	
	ROL	R2
	ROL	R1
	ROL	R0
	BCS	GO$16	
	CMP	D+0+2(SP),R0	
	BHI	NGO$16	
	BLO	GO$16	
	CMP	D+2+2(SP),R1	
	BHI	NGO$16
	BLO	GO$16
	CMP	D+4+2(SP),R2
	BHI	NGO$16
	BLO	GO$16
	CMP	D+6+2(SP),R3
	BHI	NGO$16
	BEQ	NQD$16	
GO$16:	SUB	D+6+2(SP),R3	
	SBC	R2
	SBC	R1
	SBC	R0
	SUB	D+4+2(SP),R2
	SBC	R1
	SBC	R0
	SUB	D+2+2(SP),R1
	SBC	R0
	SUB	D+0+2(SP),R0
	INC	R4	
NGO$16:	DEC	R5	
	BGT	DV1$16
	RTS	PC
NQD$16:	INC	R4	
	BR	EQ1$16
EQ2$16:	ASL	R4	
EQ1$16:	DEC	R5
	BGT	EQ2$16
	INC	R5	
RTS$16:	RTS	PC	
	.ENDC
	.ENDC
	.TITLE	$DVI03
	.IFDF	CND$17
	.GLOBL	$DVI,$ERR








	R0=%0
	R1=%1
	R2=%2
	R3=%3
	R4=%4
	R5=%5
	SP=%6
	MQ=177304
	.IFNDF	EAE&MULDIV
$DVI:	CLR	R0	
	MOV	(SP)+,R1	
	BGT	P1$17	
	BEQ	CHK$17	
	INC	R0	
	NEG	R1
P1$17:	MOV	@SP,R3	
	BGT	P2$17	
	BEQ	ZER$17	
	INC	R0	
	NEG	R3
P2$17:	MOV	R4,-(SP)
	MOV	#8.,R4	
	CLR	R2	
	SWAB	R3	
	BEQ	DIV$17	
	ASL	R4	
	SWAB	R3	
DIV$17:	ASL	R3	
	ROL	R2
	BEQ	LUP$17	
	INC	R3	
	SUB	R1,R2	
	BHIS	LUP$17	
	ADD	R1,R2	
	DEC	R3	
LUP$17:	DEC	R4
	BGT	DIV$17	
	MOV	(SP)+,R4
	NEG	R3	
	ASR	R0	
	BCS	P3$17	
	NEG	R3	
	BVS	CHK$17	
P3$17:	MOV	R3,@SP	
	JMP	@(R4)+	
ZER$17:	CLR	@SP	
	JMP	@(R4)+
	.ENDC

	.IFDF	EAE
$DVI:	MOV	#MQ,R0	
	MOV	(SP)+,R1	
	BEQ	CHK$17	
	MOV	(SP)+,@R0	
	TST	-(R0)	
	MOV	R1,-(R0)	
	CMP	(R0)+,(R0)+	
	MOV	@R0,-(SP)	
	JMP	@(R4)+	
	.ENDC

	.IFDF	MULDIV
$DVI:	MOV	2(SP),R1	
	.WORD	006700	
	.WORD	071026	
	MOV	R0,@SP	
	BCS	CHK$17	
	JMP	@(R4)+
	.ENDC
CHK$17:	JSR	R5,$ERR	
	JMP	@(R4)+
	.BYTE	3
	.BYTE	5
	.ENDC
	.TITLE	$DVR08
	.IFDF	CND$18
	.GLOBL	$DVR,$ERRA












	R0=%0
	R1=%1
	R2=%2
	R3=%3
	R4=%4
	R5=%5
	SP=%6
	PC=%7
	MQ=177304
	NOR=177312
	LSH=177314
	ASH=177316
	F0=%0
	F1=%1
	D=8.
	N=12.
	Q=12.
	.IFDF	FPU
$DVR:	.WORD	170001	
	.WORD	172526	
	.WORD	172426	
	.WORD	174401	
	.WORD	174046	
	JMP	@(R4)+
	.ENDC
	.IFNDF	FPU
$DVR:	MOV	R4,-(SP)
	MOV	R5,-(SP)
	CLR	R0
	CLR	R1
	CLR	-(SP)
	ASL	N+0-2(SP)	
	ROL	@SP	
	CLR	-(SP)
	TST	D(SP)
	BEQ	DCH$18
	BISB	N+1(SP),@SP	
	BEQ	ZER$18	
	BISB	N(SP),R0
	SWAB	R0	
	SEC		
	ROR	R0
	BISB	N+3(SP),R0
	BISB	N+2(SP),R1
	SWAB	R1
	CLR	R2
	CLR	R3
	ASL	D(SP)	
	ADC	2(SP)	
	BISB	D+1(SP),R2	
	SUB	R2,@SP	
	CLR	R2
	BISB	D(SP),R2	
	SWAB	R2
	SEC		
	ROR	R2
	BISB	D+3(SP),R2
	BISB	D+2(SP),R3
	SWAB	R3
	.IFDF	EAE!MULDIV
	CLC		
	ROR	R0
	ROR	R1	
	ROR	R2
	ROR	R3
	.ENDC
	CMP	R0,R2	
	BLO	DHI$18	
	.IFNDF	EAE&MULDIV
	BHI	DLW$18	
	CMP	R1,R3	
	BHI	DLW$18
	BNE	DHI$18
	CLR	Q(SP)	
	INC	@SP	
	CLR	R5
	BR	FLT$18
	.ENDC
	.IFDF	EAE!MULDIV
	BHIS	DLW$18	
	.ENDC
ZER$18:	CMP	(SP)+,(SP)+	
	BR	EC1$18
DCH$18:	TST	(SP)+	
	MOV	#4003,R0	
	BR	ECL$18
OV1$18:	TST	-(SP)	
OVR$18:	MOV	#3003,R0	
	BR	ECL$18
UND$18:	MOV	#1405,R0	
ECL$18:	TST	(SP)+	
	JSR	R5,$ERRA
EC1$18:	CLR	Q+0-4(SP)	
	CLR	Q+2-4(SP)
	BR	RTN$18
DLW$18:	ROR	R0	
	ROR	R1	
	INC	@SP	
	.IFNDF	EAE&MULDIV
DHI$18:	MOV	#9.,R4	
	JSR	PC,DV1$18
	MOVB	R5,Q(SP)	
				
	TST	R4	
	BEQ	NT0$18	
	CLR	R5	
	BR	FLT$18
NT0$18:	MOV	#16.,R4	
	JSR	PC,DV1$18
	.ENDC
	.IFDF	EAE!MULDIV
DHI$18:	CLC
	ROR	R3	
	ROR	R0	
	ROR	R1
	.ENDC
	.IFDF	EAE
	MOV	#MQ,R5	
	MOV	R1,@R5	
	MOV	R0,-(R5)
	MOV	R2,-(R5)	
	TST	(R5)+	
	MOV	(R5)+,R1	
	MOV	(R5)+,R4	
	MOV	R3,@R5	
	TST	-(R5)	
	ASR	R1	
	SUB	R1,-(R5)	
	DEC	@#ASH
	MOV	R2,-(R5)	
	CMP	(R5)+,(R5)+	
	NEG	@R5
	MOV	#2,@#ASH	
	ADD	R4,-(R5)	
	CLR	@#NOR	
	SUB	@#NOR,@SP	
	MOV	#-6,@#LSH	
	MOV	(R5)+,Q(SP)	
	MOV	@R5,R5
	.ENDC
	.IFDF	MULDIV
	MOV	R0,R4	
	MOV	R1,R5
	.WORD	071402	
	MOV	R5,R1	
	MOV	R4,R0	
	.WORD	070403	
	ASR	R1	
	SUB	R1,R4	
	.WORD	073427,-1	
	.WORD	071402	
	NEG	R4	
	.WORD	073427,-14.	
	ADD	R0,R4	
NBT$18:	.WORD	073427,1	
	BMI	NBI$18	
	DEC	@SP	
	BR	NBT$18	
NBI$18:	.WORD	073427,-7	
	MOV	R4,Q(SP)	
	.ENDC
FLT$18:	MOV	(SP)+,R4	
	ADD	#200,R4	
	BLE	UND$18	
	CMP	#377,R4
	BLT	OVR$18	
	MOVB	R4,Q+1-2(SP)	
SGN$18:	ROR	(SP)+	
	ROR	Q+0-4(SP)
	ROR	R5
	ADC	R5	
	ADC	Q+0-4(SP)
	MOV	R5,Q+2-4(SP)	
	BCS	OV1$18
	BVS	OV1$18
RTN$18:	MOV	(SP)+,R5
	MOV	(SP)+,R4
	CMP	(SP)+,(SP)+	
	JMP	@(R4)+
	.IFNDF	EAE&MULDIV
DV1$18:	ASL	R5	
	ASL	R1	
	ROL	R0
	BCS	GO$18	
	CMP	R2,R0	
	BHI	NGO$18	
	BLO	GO$18	
	CMP	R3,R1	
	BHI	NGO$18
	BEQ	NQD$18	
GO$18:	SUB	R3,R1	
	SBC	R0
	SUB	R2,R0
	INC	R5	
NGO$18:	DEC	R4	
	BGT	DV1$18
	RTS	PC
NQD$18:	INC	R5	
	BR	EQ1$18
EQ2$18:	ASL	R5	
EQ1$18:	DEC	R4
	BGT	EQ2$18
	INC	R4	
RTS$18:	RTS	PC	
	.ENDC
	.ENDC
	.ENDC
	.TITLE	$DXP05
	.IFDF	CND$19





	.GLOBL	DEXP,$ERRA
	.IFNDF	FPU
	.GLOBL	$ADD,$SBD,$MLD,$DVD,$ID,$DI,$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
	.IFDF	FPU
DEXP:	MOV	@2(R5),R0
	.ENDC
	.IFNDF	FPU
DEXP:	MOV	R5,-(SP)	
	MOV	2(R5),R4	
	MOV	@R4,R0	
	.ENDC
	BGT	POS$19	
	CMP	R0,#141662	
	BHI	ZER$19	
	BR	SMT$19	
POS$19:	CMP	R0,#41660
	BHI	OVR$19	
SMT$19:	ASL	R0	
	CMP	R0,#43000
	BLO	ONE$19	
	.IFNDF	FPU
	SUB	#20.,SP	
	ADD	#8.,R4	
	MOV	-(R4),-(SP)	
	MOV	-(R4),-(SP)
	MOV	-(R4),-(SP)
	MOV	-(R4),-(SP)
	MOV	#013761,-(SP)	
	MOV	#024534,-(SP)
	MOV	#125073,-(SP)
	MOV	#40270,-(SP)
	JSR	R4,$POLSH	
	.WORD	$MLD	
	.WORD	DUP$19
	.WORD	$DI	
	.WORD	ADJ$19
	.WORD	$ID	
	.WORD	$SBD
	.WORD	M16$19	
	.WORD	DUP$19	
	.WORD	$DI
	.WORD	DSV$19	
	.WORD	$ID	
	.WORD	$SBD,D16$19	
	.WORD	DUP$19,DUP$19	
	.WORD	$MLD	
	.WORD	$POPR4		
	.WORD	UPL$19
ONE$19:	MOV	#40200,R0	
	BR	Z1$19
OVR$19:	MOV	#1004,R0	
	BR	ECL$19
ZER$19:	MOV	#2005,R0	
ECL$19:	JSR	R5,$ERRA
	CLR	R0	
Z1$19:	CLR	R1
	CLR	R2
	CLR	R3
	BR	OUT$19
UPL$19:	MOV	#033343,-(SP)	
	MOV	#015345,-(SP)
	MOV	#152405,-(SP)
	MOV	#040746,-(SP)

	MOV	R3,-(SP)
	MOV	R2,-(SP)
	MOV	R1,-(SP)
	MOV	R0,-(SP)

	MOV	#153703,-(SP)	
	MOV	#153011,-(SP)
	MOV	#113360,-(SP)
	MOV	#037154,-(SP)

	MOV	R3,-(SP)
	MOV	R2,-(SP)
	MOV	R1,-(SP)
	MOV	R0,-(SP)

	MOV	#171042,-(SP)	
	MOV	#074433,-(SP)
	MOV	#101232,-(SP)
	MOV	#041246,-(SP)

	JSR	R4,$POLSH
	.WORD	$ADD,AUP$19	
	.WORD	$MLD,$ADD,$MLD	
	.WORD	TWC$19	
	.WORD	$ADD,ABP$19	
	.WORD	$SBD,$DVD	
	.WORD	SCL$19	
SCL$19:	MOV	#RT2$19+8.,R5	
ASR$19:	ASR	8.(SP)	
	BCC	NML$19	
	MOV	-(R5),-(SP)	
	MOV	-(R5),-(SP)
	MOV	-(R5),-(SP)
	MOV	-(R5),-(SP)
	JSR	R4,$POLSH
	.WORD	$MLD,ASR$19	
NML$19:	BEQ	SC1$19
	SUB	#8.,R5	
	BR	ASR$19
SC1$19:	MOV	(SP)+,R0	
	MOV	(SP)+,R1
	MOV	(SP)+,R2
	MOV	(SP)+,R3
	TST	(SP)+	
	MOV	(SP)+,R4	
	SWAB	R4
	CLRB	R4	
	ASR	R4
	ADD	R4,R0	
	BMI	OVR$19	
OUT$19:	MOV	(SP)+,R5	
	RTS	R5	

ADJ$19:	TST	@2(R5)	
	BGE	ARN$19	
	DEC	@SP	
ARN$19:	MOV	@SP,28.(SP)	
	JMP	@(R4)+

M16$19:	ADD	#1000,@SP	
	JMP	@(R4)+

D16$19:	SUB	#1000,@SP	
	BPL	D6R$19	
	CLR	@SP	
D6R$19:	JMP	@(R4)+

DSV$19:	MOV	@SP,26.(SP)	
	JMP	@(R4)+

AUP$19:	MOV	(SP)+,38.(SP)	
	MOV	(SP)+,38.(SP)
	MOV	(SP)+,38.(SP)
	MOV	(SP)+,38.(SP)
	JMP	@(R4)+

ABP$19:	MOV	(SP)+,22.(SP)	
	MOV	(SP)+,22.(SP)
	MOV	(SP)+,22.(SP)
	MOV	(SP)+,22.(SP)
	JMP	@(R4)+

DUP$19:	MOV	6(SP),-(SP)	
	MOV	6(SP),-(SP)
	MOV	6(SP),-(SP)
	MOV	6(SP),-(SP)
	JMP	@(R4)+

TWC$19:	MOV	#8.,R0	
TW1$19:	MOV	14.(SP),-(SP)	
	DEC	R0
	BGT	TW1$19
	JMP	@(R4)+


	.WORD	040265,002363,031771,157145	
	.WORD	040230,033760,050615,134251	
	.WORD	040213,112701,161752,105727	
RT2$19:	.WORD	040205,125303,063714,044173	
	.ENDC

	.IFDF	FPU
	SETD	
	SETI	
	MOV	#FCO$19,R0
	LDD	@2(R5),F2
	MODD	(R0)+,F2
	STCDI	F3,R4
	TSTD	F2
	CFCC	
	BGE	M16$19
	ADDD	#1.0,F2
	DEC	R4

M16$19:	MODD	#16.0,F2
	STCDI	F3,R3
	DIVD	#16.0,F2
	LDD	F2,F3
	MULD	F3,F3

	LDD	F3,F1
	ADDD	(R0)+,F1
	MULD	(R0)+,F3
	ADDD	(R0)+,F3
	MULD	F2,F3
	LDD	F1,F0
	ADDD	F3,F0
	SUBD	F3,F1
	DIVD	F1,F0

SCL$19:	ASR	R3
	BCC	NML$19
	MULD	(R0)+,F0
	BR	SCL$19
NML$19:	BEQ	SC1$19
	ADD	#8.,R0
	BR	SCL$19

SC1$19:	STD	F0,-(SP)
	MOV	(SP)+,R0
	MOV	(SP)+,R1
	MOV	(SP)+,R2
	MOV	(SP)+,R3
	SWAB	R4
	CLRB	R4
	ASR	R4
	ADD	R4,R0
	BMI	OVR$19
	RTS	R5

ONE$19:	MOV	#40200,R0	
	BR	Z1$19
OVR$19:	MOV	#1004,R0	
	BR	ECL$19
ZER$19:	MOV	#2005,R0	
ECL$19:	JSR	R5,$ERRA
	CLR	R0	
Z1$19:	CLR	R1
	CLR	R2
	CLR	R3
	RTS	R5




FCO$19:	.WORD	40270,125073,024534,013761

	.WORD	041246,101232,074433,171042
	.WORD	037154,113360,153011,153703
	.WORD	040746,152405,015345,033343
	.WORD	040205,125303,063714,044173
	.WORD	040213,112701,161752,105727
	.WORD	040230,033760,050615,134251
	.WORD	040265,002363,031771,157145
	.ENDC
	.ENDC
	.TITLE	$EXP04
	.IFDF	CND$20





	
	.GLOBL	EXP,$ERRA
	.IFNDF	FPU
	.GLOBL	$ADR,$SBR,$MLR,$DVR,$IR,$RI,$POLSH
	.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
EXP:	MOV	2(R5),R4	
	MOV	@R4,R0	
	BGT	POS$20	
	CMP	R0,#141662
	BHI	ZER$20	
	BR	SMT$20
POS$20:	CMP	R0,#41660
	BHI	OVR$20	
SMT$20:	ASL	R0	
	CMP	R0,#63000
	BLO	ONE$20	
	.IFNDF	FPU
	TST	-(SP)	
	CLR	-(SP)	
	MOV	#40200,-(SP)
	MOV	2(R4),-(SP)	
	MOV	@R4,-(SP)	
	MOV	2(R4),-(SP)	
	MOV	@R4,-(SP)
	JSR	R4,$POLSH	
	.WORD	PLE$20	
	.WORD	$MLR
	.WORD	$RI	
	.WORD	ESV$20	
	.WORD	$IR	
	.WORD	PLE$20	
	.WORD	$DVR
	.WORD	$SBR
	.WORD	CFR$20	
	.WORD	$MLR	
	.WORD	$ADR	
	.WORD	$DVR	
	.WORD	$ADR	
	.WORD	$ADR	
	.WORD	$DVR	
	.WORD	INC$20	
	.WORD	$ADR	
	.WORD	DUP$20	
	.WORD	$MLR	
	.WORD	SCL$20	
INC$20:	ADD	#100200,@SP	
	JMP	@(R4)+	

DUP$20:	MOV	2(SP),-(SP)	
	MOV	2(SP),-(SP)
	JMP	@(R4)+

PLE$20:	MOV	#125073,-(SP)	
	MOV	#40270,-(SP)
	JMP	@(R4)+

ESV$20:	MOV	@SP,10.(SP)	
	JMP	@(R4)+

CFR$20:	ROL	@SP	
	ROL	R0	
	SUB	#400,@SP	
	BLOS	ZFR$20	
	ROR	R0	
	ROR	@SP
	MOV	@SP,R0	
	MOV	2(SP),R1	
	MOV	#036602,-(SP)	
	MOV	#141100,-(SP)
	MOV	R1,-(SP)
	MOV	R0,-(SP)
	MOV	#071571,-(SP)	
	MOV	#042426,-(SP)
	MOV	#056133,-(SP)	
	MOV	#041560,-(SP)
	MOV	R1,-(SP)
	MOV	R0,-(SP)
	MOV	R1,-(SP)
	MOV	R0,-(SP)
	JMP	@(R4)+
	.ENDC

	.IFDF	FPU
	SETD	
	SETI	
	MOV	#FCO$20,R0
	LDCFD	@R4,F2
	MODD	(R0)+,F2
	STCDI	F3,R4
	LDD	#1.0,F0
	DIVD	(R0)+,F2
	SETF	
	LDCDF	F2,F2
	CFCC	
	BEQ	SC1$20
	LDF	F2,F3
	MULF	F3,F3
	ADDF	(R0)+,F3
	LDF	(R0)+,F1
	DIVF	F3,F1
	ADDF	F2,F1
	ADDF	(R0)+,F1
	DIVF	F1,F2
	MULF	#2.0,F2
	SUBF	F2,F0
	MULF	F0,F0
SC1$20:	STF	F0,-(SP)
	.ENDC

	.IFNDF	FPU
ZFR$20:	CMP	(SP)+,(SP)+	

	.ENDC
SCL$20:	MOV	(SP)+,R0
	MOV	(SP)+,R1
	.IFNDF	FPU
	MOV	(SP)+,R4
	.ENDC
	SWAB	R4
	CLRB	R4
	ASR	R4
	ADD	R4,R0
	BMI	OVR$20
	RTS	R5

ONE$20:	CLR	R1
	MOV	#40200,R0	
	RTS	R5
OVR$20:	MOV	#2404,R0	
	BR	ECL$20
ZER$20:	MOV	#2405,R0	
ECL$20:	JSR	R5,$ERRA
	CLR	R0	
	CLR	R1
	RTS	R5

	.IFDF	FPU


FCO$20:	.WORD	040270,125073
	.WORD	024534,013761

	.WORD	040470,125073
	.WORD	024534,013761

	.WORD	041560,056133

	.WORD	042426,071571

	.WORD	141100,036602
	.ENDC
	.ENDC
	.EOT
	.TITLE	$FCL02
	.IFDF	CND$21





	.GLOBL	$FCALL







	R0=%0
	R4=%4
	R5=%5
	SP=%6
$FCALL:	MOV	#RET$21,-(SP)	
	MOV	#137,-(SP)	
	MOV	R5,-(SP)	
	MOV	#401,-(SP)	
	MOV	SP,R5		
	JSR	R0,@R4
RET$21:	ADD	#8.,SP	
	JMP	@(SP)+	

	.ENDC
	.TITLE	$FIX03
	.IFDF	CND$22





	.GLOBL	IFIX,$RI,$POLSH









	R0=%0
	R4=%4
	R5=%5
	SP=%6
IFIX:	MOV	2(R5),R4	
	MOV	2(R4),-(SP)	
	MOV	@R4,-(SP)
RND$22:	JSR	R4,$POLSH	
	.WORD	$RI,UPL$22	
UPL$22:	MOV	(SP)+,R0	
	RTS	R5	
	.ENDC
	.TITLE	$FLT02
	.IFDF	CND$23





	.GLOBL	FLOAT,$IR,$POLSH,$POPR3









	R0=%0
	R1=%1
	R4=%4
	R5=%5
	SP=%6
FLOAT:	MOV	@2(R5),-(SP)	
	JSR	R4,$POLSH	
	.WORD	$IR	
	.WORD	$POPR3	
	.WORD	UPL$23
UPL$23:	RTS	R5	
	.ENDC
	.TITLE	$ICI02
	.IFDF	CND$24





	.GLOBL	$ICI,$OCI







	R0=%0
	R1=%1
	R2=%2
	SP=%6
	PC=%7
$OCI:	MOV	#67,-(SP)	
	BR	GO$24
$ICI:	MOV	#471,-(SP)	
GO$24:	MOV	R1,-(SP)	
	MOV	8.(SP),R1	
	ADD	6(SP),8.(SP)	
	MOV	4(SP),6(SP)	
	MOV	R0,4(SP)	
	MOV	R2,-(SP)	
	CLR	-(SP)	
	CLR	R0	
STT$24:	MOVB	(R1)+,R2	
	BIC	#177600,R2
	CMPB	R2,#' 
	BNE	SGS$24	
	CMP	R1,12.(SP)
	BLT	STT$24	
	BR	SGN$24	
SGS$24:	TSTB	7(SP)
	BNE	SN1$24
	INC	@SP
	BR	NCK$24
SN1$24:	CMPB	R2,#'+
	BEQ	FLD$24	+
	CMPB	R2,#'-
	BNE	NCK$24	
	INC	@SP	
	BR	FLD$24
NXT$24:	MOVB	(R1)+,R2	
	BIC	#177600,R2
	CMPB	R2,#' 
	BNE	NCK$24	
	MOVB	#60,R2	
NCK$24:	CMPB	R2,#'0
	BLT	ERR$24	
	CMPB	R2,6(SP)
	BGT	ERR$24	
	SUB	#60,R2	
	TSTB	7(SP)	
	BEQ	OCL$24
	ASL	R0	
	BVS	ERR$24
	SUB	R0,R2
	ASL	R0
	BVS	ERR$24
	ASL	R0
	BVS	ERR$24
	SUB	R2,R0
	BVS	ERR$24
FLD$24:	CMP	R1,12.(SP)
	BLT	NXT$24	
SGN$24:	ROR	(SP)+	
	BCS	DNE$24	
	NEG	R0	
	BVS	NGM$24	
	CLC	
DNE$24:	MOV	(SP)+,R2	
	MOV	(SP)+,R1	
	ROL	(SP)+	
	MOV	R0,4(SP)	
	MOV	(SP)+,R0
	RTS	PC
ERR$24:	TST	(SP)+	
NGM$24:	CLR	R0
	COM	4(SP)	
	BR	DNE$24

OCL$24:	ROL	R0
	BCS	ERR$24
	ROL	R0
	BCS	ERR$24
	ROL	R0
	BCS	ERR$24
	ADD	R2,R0
	BR	FLD$24
	.ENDC
	.TITLE	$ICO02
	.IFDF	CND$25





	
	.GLOBL	$ICO,$OCO









	R0=%0
	R1=%1
	R2=%2
	R3=%3
	R4=%4
	SP=%6
	PC=%7
$OCO:	MOV	#OCT$25-REL$25,R0	
	BR	GO$25
$ICO:	MOV	#DEC$25-REL$25,R0	
GO$25:	MOV	R4,-(SP)
	MOV	8.(SP),R3	
	MOV	6.(SP),R2	
	BGE	LPS$25	
	CLR	R2
	CLR	6(SP)
LPS$25:	MOV	4.(SP),R4	
	MOV	#' ,-(SP)	
	CMP	R0,#OCT$25-REL$25	
	BEQ	POS$25	
	TST	R4
	BGE	POS$25	
	NEG	R4	
	MOV	#'-,@SP	
POS$25:	CLR	-(SP)	
	ADD	PC,R0
REL$25:
TST$25:	TST	@R0
	BEQ	MOV$25	
	CLR	R1
SUB$25:	SUB	@R0,R4	
	BLO	BAC$25
	INC	R1	
	BR	SUB$25
BAC$25:	ADD	(R0)+,R4	
	TST	R1
	BNE	NZE$25	
	TST	@SP
	BEQ	TST$25	
NZE$25:	ADD	#60,R1	
	MOV	R1,-(SP)
	BR	TST$25
MOV$25:	ADD	R2,R3	
	ADD	#60,R4	
	MOVB	R4,-(R3)
DCR$25:	DEC	R2
	BLE	FUL$25	
	MOVB	(SP)+,-(R3)	
	BNE	DCR$25	
	MOVB	(SP)+,@R3	
FIL$25:	DEC	R2
	BEQ	DNE$25	
	MOVB	#' ,-(R3)	
	BR	FIL$25
FUL$25:	TST	(SP)+
	BNE	ERR$25	
	CMP	#' ,(SP)+
	BNE	STS$25-4.	
DNE$25:	MOV	(SP)+,R4
	MOV	(SP)+,4(SP)	
	TST	(SP)+	
	ROL	(SP)+	
	RTS	PC
ERR$25:	TST	(SP)+
	BNE	ERR$25
	TST	(SP)+	
	MOV	8.(SP),R3
STS$25:	MOVB	#'*,(R3)+	
	DEC	6(SP)
	BGT	STS$25	
	COM	6(SP)	
	BR	DNE$25
DEC$25:	.WORD	10000.,1000.,100.,10.,0
OCT$25:	.WORD	100000,10000,1000,100,10,0
	.ENDC
	.TITLE	$INT02
	.IFDF	CND$26





	.GLOBL	INT,IDINT,$RI,$POLSH









	R0=%0
	R4=%4
	R5=%5
	SP=%6
INT:
IDINT:	MOV	2(R5),R4	
	MOV	2(R4),-(SP)	
	MOV	@R4,-(SP)	
	JSR	R4,$POLSH	
	.WORD	$RI,UPL$26	
UPL$26:	MOV	(SP)+,R0	
	RTS	R5
	.ENDC
	.TITLE	$IR04
	.IFDF	CND$27
	.GLOBL	$IR,$ID








	R0=%0
	R1=%1
	R2=%2
	R3=%3
	R4=%4
	SP=%6
	MQ=177304
	NOR=177312
	F0=%0
	.IFDF	FPU
$ID:	SETD
	BR	IDI$27
$IR:	SETF	
IDI$27:	SETI	
	LDCIF	(SP)+,F0
	STF	F0,-(SP)
	JMP	@(R4)+
	.ENDC
	.IFNDF	FPU
$ID:	MOV	@SP,-(SP)	
	MOV	@SP,-(SP)
	CLR	2(SP)	
	CLR	4(SP)
$IR:	CLR	-(SP)	
	MOV	2(SP),R1	
	BGT	POS$27
	BEQ	ZER$27
	NEG	R1	
POS$27:	ROL	-(SP)	
	.IFNDF	EAE
	MOV	#220,R2	
	.ENDC

	.IFDF	EAE
	MOV	#217,R2	
	.ENDC
	CLRB	4(SP)	
NOM$27:
	.IFNDF	EAE
	ROL	R1	
	BCS	NOD$27	
	DEC	R2	
	BR	NOM$27	
	.ENDC

	.IFDF	EAE
	MOV	#MQ,R3	
	CLR	@R3
	MOV	R1,-(R3)	
	MOV	#NOR,R0	
	CLR	@R0	
	SUB	(R0)+,R2	
	MOV	#2,@R0	
	MOV	@R3,R1	
	.ENDC
NOD$27:	MOVB	R1,5(SP)	
	CLRB	R1
	BISB	R2,R1	
	SWAB	R1
	ROR	(SP)+	
	ROR	R1	
	RORB	3(SP)
	MOV	R1,@SP	
ZER$27:	JMP	@(R4)+
	.ENDC
	.ENDC
	.TITLE	$MLD05
	.IFDF	CND$28
	.GLOBL	$MLD,$ERRA








	R0=%0
	R1=%1
	R2=%2
	R3=%3
	R4=%4
	R5=%5
	SP=%6
	PC=%7
	MQ=177304
	A=8.
	B=16.
	RESLT=12.
	SIGN=2
	F0=%0
	.IFDF	FPU
$MLD:	.WORD	170011	
	.WORD	172426	
	.WORD	171026	
	.WORD	174046	
	JMP	@(R4)+
	.ENDC
	.IFNDF	FPU
$MLD:	MOV	R4,-(SP)
	MOV	R5,-(SP)
	ASL	A+0-4(SP)	
	ROL	-(SP)	
	CLR	-(SP)	
	MOVB	A+1(SP),@SP	
	BEQ	ZER$28	
	MOVB	A(SP),A+1(SP)	
	SEC		
	ROR	A(SP)
	MOVB	A+3(SP),A(SP)
	SWAB	A+2(SP)
	MOVB	A+5(SP),A+2(SP)
	SWAB	A+4(SP)
	MOVB	A+7(SP),A+4(SP)
	SWAB	A+6(SP)
	CLRB	A+6(SP)	
	ASL	B(SP)	
	ADC	SIGN(SP)	
	TSTB	B+1(SP)
	BNE	NNZ$28	
ZER$28:	CMP	(SP)+,(SP)+	
ZE1$28:	JMP	ZE2$28
NNZ$28:	CLR	R0	
	CLR	R1
	.IFNDF	EAE&MULDIV
	CLR	R2
	CLR	R3
	CLR	R5	
	ROR	B(SP)	
	MOV	#16.,-(SP)	
	MOV	B+6+2(SP),R4	
	BEQ	B6Z$28	
	JSR	PC,MT0$28
	MOV	#16.,@SP	
B6Z$28:	MOV	B+4+2(SP),R4	
	BNE	B4N$28	
	TST	B+6+2(SP)
	BEQ	B4Z$28	
B4N$28:	JSR	PC,MT2$28
	JSR	PC,MLT$28	
	MOV	#16.,@SP
B4Z$28:	MOV	B+2+2(SP),R4	
	BNE	B2N$28
	TST	B+4+2(SP)
	BNE	B2N$28
	TST	B+6+2(SP)
	BEQ	B2Z$28
B2N$28:	JSR	PC,MLT$28
B2Z$28:	MOV	B+0+2(SP),R4	
	MOV	#7,@SP	
	JSR	PC,MLT$28
	JSR	PC,MT1$28	
	TST	(SP)+	
	ADD	(SP)+,R4	
	.ENDC
	.IFDF	EAE!MULDIV
	CLR	R4
	BISB	B+1(SP),R4	
	ADD	R4,@SP	
	MOVB	#1,B+1(SP)	
	ROR	B(SP)
	SWAB	B(SP)	
	MOVB	B+3(SP),B(SP)
	SWAB	B+2(SP)
	MOVB	B+5(SP),B+2(SP)
	SWAB	B+4(SP)
	MOVB	B+7(SP),B+4(SP)
	SWAB	B+6(SP)
	CLRB	B+6(SP)
	.ENDC
	.IFDF	EAE
	MOV	#MQ,R4	
	MOV	A(SP),-(SP)
	MOV	B+6+2(SP),@R4	
	JSR	R5,EMU$28
	MOV	(SP)+,R2	
	MOV	(SP)+,R3
	MOV	A+2(SP),-(SP)
	MOV	B+4+2(SP),@R4	
	JSR	R5,EMU$28
	ADD	(SP)+,R2	
	ADC	R1
	ADD	(SP)+,R3
	ADC	R2
	ADC	R1
	MOV	A+4(SP),-(SP)
	MOV	B+2+2(SP),@R4	
	JSR	R5,EMU$28
	ADD	(SP)+,R2
	ADC	R1
	ADD	(SP)+,R3
	ADC	R2
	ADC	R1
	MOV	A+6(SP),-(SP)
	MOV	B+0+2(SP),@R4	
	JSR	R5,EMU$28
	ADD	(SP)+,R2
	ADC	R1
	ADD	(SP)+,R3
	ADC	R2
	ADC	R1
	MOV	R2,R3	
	MOV	R1,R2
	CLR	R1
	MOV	A(SP),-(SP)
	MOV	B+4+2(SP),@R4	
	JSR	R5,EMU$28
	ADD	(SP)+,R2
	ADC	R1
	ADD	(SP)+,R3
	ADC	R2
	ADC	R1
	MOV	A+2(SP),-(SP)
	MOV	B+2+2(SP),@R4	
	JSR	R5,EMU$28
	ADD	(SP)+,R2
	ADC	R1
	ADD	(SP)+,R3
	ADC	R2
	ADC	R1
	MOV	A+4(SP),-(SP)
	MOV	B+0+2(SP),@R4	
	JSR	R5,EMU$28
	ADD	(SP)+,R2
	ADC	R1
	ADD	(SP)+,R3
	ADC	R2
	ADC	R1
	MOV	A(SP),-(SP)
	MOV	B+2+2(SP),@R4	
	JSR	R5,EMU$28
	ADD	(SP)+,R1
	ADC	R0
	ADD	(SP)+,R2
	ADC	R1
	ADC	R0
	MOV	A+2(SP),-(SP)
	MOV	B+0+2(SP),@R4	
	JSR	R5,EMU$28
	ADD	(SP)+,R1
	ADC	R0
	ADD	(SP)+,R2
	ADC	R1
	ADC	R0
	MOV	A(SP),-(SP)
	MOV	B+0+2(SP),@R4	
	JSR	R5,EMU$28
	ADD	(SP)+,R0
	ADD	(SP)+,R1
	ADC	R0
	MOV	(SP)+,R4	
	.ENDC
	.IFDF	MULDIV
	MOV	A(SP),-(SP)
	MOV	B+6+2(SP),R4	
	JSR	PC,EMU$28
	MOV	R4,R2	
	MOV	R5,R3
	MOV	A+2(SP),-(SP)
	MOV	B+4+2(SP),R4	
	JSR	PC,EMU$28
	ADD	R4,R2	
	ADC	R1
	ADD	R5,R3
	ADC	R2
	ADC	R1
	MOV	A+4(SP),-(SP)
	MOV	B+2+2(SP),R4	
	JSR	PC,EMU$28
	ADD	R4,R2
	ADC	R1
	ADD	R5,R3
	ADC	R2
	ADC	R1
	MOV	A+6(SP),-(SP)
	MOV	B+0+2(SP),R4	
	JSR	PC,EMU$28
	ADD	R4,R2
	ADC	R1
	ADD	R5,R3
	ADC	R2
	ADC	R1
	MOV	R2,R3	
	MOV	R1,R2
	CLR	R1
	MOV	A(SP),-(SP)
	MOV	B+4+2(SP),R4	
	JSR	PC,EMU$28
	ADD	R4,R2
	ADC	R1
	ADD	R5,R3
	ADC	R2
	ADC	R1
	MOV	A+2(SP),-(SP)
	MOV	B+2+2(SP),R4	
	JSR	PC,EMU$28
	ADD	R4,R2
	ADC	R1
	ADD	R5,R3
	ADC	R2
	ADC	R1
	MOV	A+4(SP),-(SP)
	MOV	B+0+2(SP),R4	
	JSR	PC,EMU$28
	ADD	R4,R2
	ADC	R1
	ADD	R5,R3
	ADC	R2
	ADC	R1
	MOV	A(SP),-(SP)
	MOV	B+2+2(SP),R4	
	JSR	PC,EMU$28
	ADD	R4,R1
	ADC	R0
	ADD	R5,R2
	ADC	R1
	ADC	R0
	MOV	A+2(SP),-(SP)
	MOV	B+0+2(SP),R4	
	JSR	PC,EMU$28
	ADD	R4,R1
	ADC	R0
	ADD	R5,R2
	ADC	R1
	ADC	R0
	MOV	A(SP),-(SP)
	MOV	B+0+2(SP),R4	
	JSR	PC,EMU$28
	ADD	R4,R0
	ADD	R5,R1
	ADC	R0
	MOV	(SP)+,R4	
	.ENDC
	ASL	R3	
	ROL	R2
	ROL	R1
	ROL	R0
	BCS	NOM$28	
	ASL	R3
	ROL	R2
	ROL	R1
	ROL	R0	
	DEC	R4	
NOM$28:	SUB	#200,R4	
	BLE	UND$28	
	CMP	#377,R4
	BLT	OVR$28	
	CLRB	R3
	BISB	R2,R3	
	SWAB	R3
	CLRB	R2
	BISB	R1,R2
	SWAB	R2
	CLRB	R1
	BISB	R0,R1
	SWAB	R1
	CLRB	R0
	BISB	R4,R0
	SWAB	R0
	ROR	(SP)+	
	ROR	R0	
	ROR	R1
	ROR	R2
	ROR	R3
	ADC	R3	
	ADC	R2
	ADC	R1
	ADC	R0
	BCS	OV1$28	
	BVS	OV1$28
OUT$28:	MOV	R0,RESLT(SP)	
	MOV	R1,RESLT+2(SP)
	MOV	R2,RESLT+4(SP)
	MOV	R3,RESLT+6(SP)
	MOV	(SP)+,R5
	MOV	(SP)+,R4
	ADD	#8.,SP	
	JMP	@(R4)+	
OV1$28:	TST	-(SP)	
OVR$28:	MOV	#5003,R0	
	BR	ECL$28
UND$28:	MOV	#3005,R0	
ECL$28:	TST	(SP)+	
	JSR	R5,$ERRA	
ZE2$28:	CLR	R0	
	CLR	R1	
	CLR	R2
	CLR	R3
	BR	OUT$28
	.IFNDF	EAE&MULDIV
MLT$28:	ASR	R4	
	BCC	X0$28	
MT1$28:	ADD	A+6+4(SP),R3	
	ADC	R2
	ADC	R1
	ADC	R0
	ADC	R5	
	ADD	A+4+4(SP),R2
	ADC	R1
	ADC	R0
	ADC	R5
	ADD	A+2+4(SP),R1
	ADC	R0
	ADC	R5
	ADD	A+0+4(SP),R0
	ADC	R5
X0$28:	ASR	R5	
	ROR	R0	
	ROR	R1
	ROR	R2
	ROR	R3
	DEC	2(SP)	
	BGT	MLT$28	
	RTS	PC	
MT2$28:	DEC	2(SP)	
MT0$28:	ASR	R4	
	BCC	X00$28	
	ADD	A+2+4(SP),R1	
	ADC	R0
	ADC	R5
	ADD	A+0+4(SP),R0
	ADC	R5
X00$28:	ASR	R5	
	ROR	R0
	ROR	R1
	ROR	R2
	ROR	R3
	DEC	2(SP)	
	BGT	MT0$28
	RTS	PC	
	.ENDC
	.IFDF	EAE
EMU$28:	CLR	@SP	
	TST	@R4
	BEQ	MZ$28	
	BGT	MPL$28
	TST	2(SP)	
	BEQ	MZ$28	
	BGT	MNG$28	
	ADD	(R4)+,@SP	
	ADD	2(SP),@SP
	BR	EML$28
MPL$28:	TST	2(SP)	
	BEQ	MZ$28	
	BGT	MLQ$28	
	ADD	(R4)+,@SP
	BR	EML$28
MNG$28:	ADD	2(SP),@SP
MLQ$28:	TST	(R4)+	
EML$28:	MOV	2(SP),@R4	
	MOV	-(R4),2(SP)	
	ADD	-(R4),@SP
	TST	(R4)+	
	JMP	@R5	
MZ$28:	CLR	2(SP)	
	JMP	@R5
	.ENDC
	.IFDF	MULDIV
EMU$28:	CLR	-(SP)	
	TST	R4	
	BEQ	MZ$28	
	BGT	MPL$28	
	TST	4(SP)	
	BEQ	MZ$28	
	BGT	MN1$28	
	BR	MNG$28
MPL$28:	TST	4(SP)	
	BEQ	MZ$28	
	BGT	MLQ$28	
	ADD	R4,@SP
	BR	MLQ$28
MNG$28:	ADD	R4,@SP
MN1$28:	ADD	4(SP),@SP
MLQ$28:	.WORD	070466,4	
MDN$28:	ADD	(SP)+,R4	
	MOV	(SP)+,@SP	
	RTS	PC	
MZ$28:	CLR	R4	
	CLR	R5
	BR	MDN$28
	.ENDC
	.ENDC
	.ENDC
	.TITLE	$MLI05
	.IFDF	CND$29
	.GLOBL	$MLI,$ERR








	R0=%0
	R1=%1
	R2=%2
	R3=%3
	R4=%4
	R5=%5
	SP=%6
	SR$29=177311
	MQ=177304
	.IFNDF	EAE&MULDIV
$MLI:	CLR	R0	
	MOV	(SP)+,R1	
	BGT	P1$29	
	BEQ	ZER$29	
	INC	R0	
	NEG	R1
P1$29:	MOV	@SP,R3	
	BGT	P2$29
	BEQ	ZER$29
	INC	R0	
	NEG	R3
P2$29:	MOV	R4,-(SP)	
	MOV	#8.,R4	
	CMP	R1,R3
	BGE	CLR$29	
	MOV	R1,R2	
	MOV	R3,R1
	MOV	R2,R3
CLR$29:	CLR	R2	
MUL$29:	ROR	R2	
	ROR	R3
	BCC	CYC$29	
	ADD	R1,R2	
CYC$29:	DEC	R4	
	BGT	MUL$29
	MOV	(SP)+,R4	
	TSTB	R3	
	BNE	OVR$29	
	BISB	R2,R3	
	SWAB	R3
	CLRB	R2
	SWAB	R2
	ASR	R2	
	BNE	OVR$29	
	ROR	R3
	NEG	R3	
	BPL	OVR$29	
	ROR	R0	
	BCS	OUT$29	
	NEG	R3	
	BVS	OVR$29
OUT$29:	MOV	R3,@SP	
	JMP	@(R4)+	
NGM$29:	NEG	R3	
	BVC	OVR$29	
	ROR	R0	
	BCS	OUT$29	
	BR	OVR$29	
ZER$29:	CLR	@SP	
	JMP	@(R4)+	
	.ENDC

	.IFDF	EAE
$MLI:	MOV	#MQ,R0	
	MOV	(SP)+,(R0)+	
	MOV	(SP)+,@R0	
	MOV	-(R0),-(SP)	
	BITB	#2,SR$29
	BEQ	OVR$29	
	JMP	@(R4)+	
	.ENDC

	.IFDF	MULDIV
$MLI:	MOV	(SP)+,R0	
	.WORD	070026	
	MOV	R1,-(SP)	
	BCS	OVR$29	
	JMP	@(R4)+
	.ENDC
OVR$29:	CLR	(SP)	
	JSR	R5,$ERR	
	JMP	@(R4)+
	.BYTE	3
	.BYTE	14.
	.ENDC
	.TITLE	$MLR05
	.IFDF	CND$30
	.GLOBL	$MLR,$ERRA










	R0=%0
	R1=%1
	R2=%2
	R3=%3
	R4=%4
	R5=%5
	SP=%6
	PC=%7
	MQ=177304
	SR=177311
	LSH=177314
	F0=%0
A=8.
B=12.
RESLT=8.
SIGN=2
	.IFDF	FPU
$MLR:	.WORD	170001	
	.WORD	172426	
	.WORD	171026	
	.WORD	174046	
	JMP	@(R4)+
	.ENDC
	.IFNDF	FPU
$MLR:	MOV	R4,-(SP)
	MOV	R5,-(SP)
	.IFNDF	EAE&MULDIV
	MOV	A+0-4(SP),R2
	ASL	R2	
	ROL	-(SP)	
	CLR	-(SP)	
	SWAB	R2
	MOVB	R2,@SP	
	BEQ	ZE1$30	
	SEC		
	ROR	R2
	CLRB	R2
	BISB	A+3(SP),R2
	CLR	R3
	BISB	A+2(SP),R3
	SWAB	R3
	ASL	B(SP)	
	ADC	SIGN(SP)		
	ADC	SIGN(SP)	
	TSTB	B+1(SP)
	BEQ	ZE1$30	
	ROR	B(SP)	
	CLR	R0	
	CLR	R1
	MOV	B+2(SP),R4	
	BEQ	B2Z$30
B2N$30:	MOV	#15.,R5
	JSR	PC,MT0$30
	JSR	PC,MLT$30	
B2Z$30:	MOV	B(SP),R4	
	MOV	#7,R5	
	JSR	PC,MLT$30
	JSR	PC,MT1$30	
	ADD	(SP)+,R4	
	.ENDC

	.IFDF	EAE

	MOV	#MQ,R4	
	MOV	#100000,R5	
	MOV	B+2-4(SP),@R4	
	MOV	B+0-4(SP),-(R4)	
	BEQ	ZER$30	
	INC	@#LSH	
	RORB	@#SR
	ROL	-(SP)	
	MOV	(R4)+,-(SP)	
	CLRB	@SP	
	SWAB	@SP
	MOV	#7,@#LSH	
	MOV	@R4,-(SP)	
	BIS	R5,-(R4)	
	MOV	(R4)+,-(SP)	
	MOV	A+2+4(SP),@R4	
	MOV	A+0+4(SP),-(R4)	
	BEQ	ZE2$30	
	INC	@#LSH	
	RORB	@#SR
	ADC	6(SP)	
	MOV	@R4,R3	
	CLRB	R3
	SWAB	R3
	ADD	R3,4(SP)	
	MOV	#7,@#LSH	
	MOV	(R4)+,R2	
	BIS	R5,R2	
	CLR	R0	
	CLR	R1
	MOV	(R4)+,R3	
	BNE	A2N$30
	TST	-(R4)	
	BR	A2Z$30	
A2N$30:	MOV	@SP,@R4	
	CMP	-(R4),-(R4)	
	ADD	R3,@R4	
	TST	R3
	BPL	A2P$30
	ADD	@SP,@R4	
A2P$30:	MOV	(R4)+,R1	
A2Z$30:	MOV	2(SP),(R4)+	
	BNE	B2N$30
	TST	-(R4)	
	BR	B2Z$30	
B2N$30:	MOV	R2,@R4	
	CMP	-(R4),-(R4)	
	ADD	2(SP),@R4	
	TST	2(SP)
	BPL	B2P$30	
	ADD	R2,@R4	
B2P$30:	ADD	(R4)+,R1	
	ADC	R0
B2Z$30:	MOV	R2,(R4)+	
	ADD	R2,R0
	MOV	@SP,@R4	
	ADD	(SP)+,R0
	ADD	-(R4),R1
	ADC	R0
	ADD	-(R4),R0	
	TST	(SP)+	
	MOV	(SP)+,R4	
	.ENDC

	.IFDF	MULDIV

	MOV	B+2-4(SP),R5	
	MOV	B+0-4(SP),R4	
	BEQ	ZER$30
	.WORD	073427,1	
	ROL	-(SP)	
	MOV	R4,-(SP)	
	CLRB	@SP
	SWAB	@SP	
	.WORD	073427,7	
	MOV	R5,-(SP)	
	BIS	#100000,R4	
	MOV	R4,-(SP)	
	MOV	A+2+4(SP),R3	
	MOV	A+0+4(SP),R2	
	BEQ	ZE2$30	
	.WORD	073227,1	
	ADC	6(SP)	
	MOV	R2,R0	
	CLRB	R0
	SWAB	R0
	ADD	R0,4(SP)	
	.WORD	073227,7	
	BIS	#100000,R2	
	CLR	R0	
	CLR	R1
	TST	R3	
	BEQ	A2Z$30	
	.WORD	070403	
	ADD	R3,R4
	TST	R3
	BPL	A2P$30	
	ADD	@SP,R4	
A2P$30:	MOV	R4,R1	
A2Z$30:	MOV	2(SP),R4	
	BEQ	B2Z$30	
	.WORD	070402	
	ADD	2(SP),R4
	TST	2(SP)
	BPL	B2P$30	
	ADD	R2,R4	
B2P$30:	ADD	R4,R1	
	ADC	R0
B2Z$30:	MOV	R2,R4	
	ADD	R2,R0
	.WORD	070416	
	ADD	(SP)+,R0
	ADD	R5,R1	
	ADC	R0
	ADD	R4,R0	
	TST	(SP)+	
	MOV	(SP)+,R4	
	.ENDC
	ROL	R1	
	ROL	R0
	BCS	NOM$30	
	ROL	R1
	ROL	R0	
	DEC	R4	
NOM$30:	SUB	#200,R4	
	BLE	UND$30	
	CMP	#377,R4
	BLT	OVR$30	
	CLRB	R1
	BISB	R0,R1
	SWAB	R1
	CLRB	R0
	BISB	R4,R0
	SWAB	R0
	ROR	(SP)+	
	ROR	R0	
	ROR	R1
	ADC	R1
	ADC	R0
	BCS	OV1$30	
	BVS	OV1$30
OUT$30:	MOV	R0,RESLT(SP)	
	MOV	R1,RESLT+2(SP)
	MOV	(SP)+,R5
	MOV	(SP)+,R4
	CMP	(SP)+,(SP)+	
	JMP	@(R4)+	
	.IFDF	EAE!MULDIV
ZE2$30:	CMP	(SP)+,(SP)+	
	.ENDC
ZE1$30:	CMP	(SP)+,(SP)+	
	BR	ZER$30
OVR$30:	TST	(SP)+	
OV1$30:	MOV	#6003,R0	
	BR	ECL$30
UND$30:	MOV	#3405,R0	
	TST	(SP)+	
ECL$30:	JSR	R5,$ERRA	
ZER$30:	CLR	R0	
	CLR	R1
	BR	OUT$30
	.IFNDF	EAE&MULDIV
MLT$30:	ASR	R4	
	BCC	X0$30	
MT1$30:	ADD	R3,R1
	ADC	R0
	BCS	COV$30
	ADD	R2,R0
X0$30:	ROR	R0	
	ROR	R1
	DEC	R5	
	BGT	MLT$30	
	RTS	PC	
COV$30:	ADD	R2,R0	
	SEC		
	BR	X0$30
MT0$30:	ASR	R4	
	BCC	X00$30
	ADD	R2,R0	
X00$30:	ROR	R0
	ROR	R1
	DEC	R5
	BGT	MT0$30
	RTS	PC
	.ENDC
	.ENDC
	.ENDC
	.EOT
	.TITLE	$NEG02
	.IFDF	CND$31





	.GLOBL	$NGI,$NGR,$NGD,$ERR



	R4=%4
	R5=%5
	SP=%6
$NGI:	NEG	@SP	
	BVS	OVR$31	
	JMP	@(R4)+	
$NGR:
$NGD:	TST	@SP
	BEQ	ZER$31	
	ADD	#100000,@SP	
ZER$31:	JMP	@(R4)+
OVR$31:	JSR	R5,$ERR	
	JMP	@(R4)+
	.BYTE	3
	.BYTE	11.
	.ENDC
	.TITLE	$PHR07
	.IFDF	CND$32





	
R0	=	%0
R1	=	%1
R2	=	%2
R3	=	%3
R4	=	%4
R5	=	%5
SP	=	%6
PC	=	%7





	.GLOBL	$PSHR5,$PSHR4,$PSHR3,$PSHR2,$PSHR1
$PSHR5:
$PSHR4:	MOV	R3,-(SP)	
	MOV	R2,-(SP)
$PSHR3:	MOV	R1,-(SP)	
$PSHR2:
$PSHR1:	MOV	R0,-(SP)	
	JMP	@(R4)+

	.ENDC
	.TITLE	$PPR04
	.IFDF	CND$33






R0=%0
R1=%1
R2=%2
R3=%3
R4=%4
R5=%5
SP=%6
PC=%7





	.GLOBL	$POPR5,$POPR4,$POPR3

$POPR5:
$POPR4:	MOV	(SP)+,R0	
	MOV	(SP)+,R1
	MOV	(SP)+,R2
	MOV	(SP)+,R3
	JMP	@(R4)+
$POPR3:	MOV	(SP)+,R0	
	MOV	(SP)+,R1
	JMP	@(R4)+

	.ENDC
	.TITLE	$RD02
	.IFDF	CND$34
	.GLOBL	$RD







	R4=%4
	SP=%6
	F0=%0
	F1=%1
	.IFDF	FPU
$RD:	.WORD	170011	
	.WORD	177426	
	.WORD	174046	
	JMP	@(R4)+
	.ENDC
	.IFNDF	FPU
$RD:	MOV	2(SP),-(SP)	
	MOV	2(SP),-(SP)	
	CLR	4(SP)	
	CLR	6(SP)
	JMP	@(R4)+
	.ENDC
	.ENDC
	.TITLE	$RI04
	.IFDF	CND$35
	.GLOBL	$RI,$DI,$ERR









	R0=%0
	R1=%1
	R2=%2
	R3=%3
	R4=%4
	R5=%5
	SP=%6
	MQ=177304
	LSH=177314
	F0=%0
	.IFDF	FPU
$DI:	SETD	
	BR	RID$35
$RI:	SETF	
RID$35:	SETI	
	LDD	(SP)+,F0
	STCDI	F0,-(SP)
	JMP	@(R4)+
	.ENDC
	.IFNDF	FPU
$DI:	MOV	(SP)+,2(SP)
	MOV	(SP)+,2(SP)
$RI:	CLR	R2	
	INC	R2	
	MOV	(SP)+,R1	
	ROL	@SP	
	ROL	R1	
	ROL	-(SP)	
	MOVB	R1,R3	
	CLRB	R1
	SWAB	R1	
	SUB	#201,R1
	BLT	ZER$35	
	BEQ	DNE$35
	CMP	#15.,R1
	BLT	OVR$35	
	SWAB	R3	
	CLRB	R3
	BISB	3(SP),R3
SFT$35:
	.IFNDF	EAE&MULDIV
	ROL	R3	
	ROL	R2
DEC$35:	DEC	R1	
	BGT	SFT$35	
	.ENDC


	.IFDF	EAE
	MOV	#MQ,R0	
	MOV	R3,@R0	
	MOV	R2,-(R0)
	MOV	R1,@#LSH	
	MOV	@R0,R2	
	.ENDC

	.IFDF	MULDIV
	.WORD	073201	
	.ENDC
DNE$35:	NEG	R2	
	BVS	NGM$35	
	BGT	OVR$35	
SGN$35:	ROR	(SP)+	
	BCS	OUT$35	
	NEG	R2	
OUT$35:	MOV	R2,@SP	
	JMP	@(R4)+	
NGM$35:	ROR	(SP)+
	BCS	OUT$35	
OVR$35:	TST	-(SP)	
	JSR	R5,$ERR	
	BR	ZER$35
	.BYTE	3
	.BYTE	22.
ZER$35:	CLR	R2	
	BR	SGN$35
	.ENDC
	.ENDC
	.TITLE	$SGL02
	.IFDF	CND$36





	.GLOBL	SNGL,$ERR









	R0=%0
	R1=%1
	R4=%4
	R5=%5
SNGL:	MOV	2(R5),R4	
	MOV	(R4)+,R0	
	MOV	(R4)+,R1	
	MOV	@R4,R4	
	ROL	R4	
	ADC	R1	
	ADC	R0
	BCS	OVR$36	
	BVS	OVR$36
	RTS	R5	
OVR$36:	JSR	R5,$ERR	
	RTS	R5
	.BYTE	4
	.BYTE	12.
	.ENDC
	.TITLE	$SIN04
	.IFDF	CND$37





	.GLOBL	SIN,COS
	.IFNDF	FPU
	.GLOBL	$ADR,$MLR,$SBR,$DVR,$INTR,$POLSH
	.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
COS:	MOV	2(R5),R4	
	CLR	-(SP)	
	MOV	2(R4),-(SP)	
	MOV	@R4,-(SP)
	MOV	#007733,-(SP)	
	MOV	#040311,-(SP)
	JSR	R4,$POLSH	
	.WORD	$ADR,SNC$37	
SIN:	MOV	2(R5),R4	
	CLR	-(SP)	
	MOV	2(R4),-(SP)
	MOV	@R4,-(SP)	
SNC$37:	ASL	@SP	
	ROR	4(SP)	
	ROR	@SP
	MOV	#007733,-(SP)	
	MOV	#040711,-(SP)
	JSR	R4,$POLSH	
	.WORD	$DVR	
	.WORD	DUP$37	
	.WORD	$INTR	
	.WORD	$SBR	
	.WORD	X4$37	
	.WORD	DUP$37	
	.WORD	$INTR	
	.WORD	QUD$37	
	.WORD	$SBR	
	.WORD	QST$37	
QSE$37:	.WORD	DUP$37	
	.WORD	DUP$37	
	.WORD	$MLR	
	.WORD	PLY$37	
	.WORD	$MLR	
	.WORD	$ADR	
	.WORD	$MLR
	.WORD	$ADR
	.WORD	$MLR
	.WORD	$ADR
	.WORD	$MLR
	.WORD	$ADR
	.WORD	$MLR	
			
	.WORD	RTN$37
RTN$37:	MOV	(SP)+,R0	
	MOV	(SP)+,R1
	TST	(SP)+	
	BGE	RT1$37	
	ADD	#100000,R0	
RT1$37:	RTS	R5	

DUP$37:	MOV	2(SP),-(SP)	
	MOV	2(SP),-(SP)
	JMP	@(R4)+

X4$37:	TST	@SP	
	BEQ	RTN$37	
	INCB	1(SP)	
	JMP	@(R4)+

QUD$37:	BIS	@SP,8.(SP)	
	JMP	@(R4)+

QST$37:	TSTB	4(SP)	
	BEQ	Q13$37	
	ADD	#100000,@SP	
	CLR	-(SP)	
	MOV	#40200,-(SP)
	JSR	R4,$POLSH	
	.WORD	$ADR,QSR$37	
QSR$37:	MOV	#QSE$37,R4	
Q13$37:	ASRB	5(SP)	
	BCC	QUT$37	
	ADD	#100000,@SP	
QUT$37:	JMP	@(R4)+

PLY$37:	MOV	(SP)+,R0	
	MOV	(SP)+,R1
	MOV	#CON$37+4,R2	
	MOV	#5,R3
	BR	PY1$37
PY2$37:	MOV	R1,-(SP)	
	MOV	R0,-(SP)
PY1$37:	MOV	-(R2),-(SP)
	MOV	-(R2),-(SP)
	DEC	R3	
	BGT	PY2$37
	JMP	@(R4)+
	.ENDC

	.IFDF 	FPU
COS:	SETD	
	LDCFD	@2(R5),F0
	ADDD	PI2$37,F0
	BR	SNC$37
SIN:	SETD	
	LDCFD	@2(R5),F0
SNC$37:	SETI	
	MOV	#FCO$37,R0
	CLR	R4
	CFCC	
	BGE	POS$37
	INC	R4
	ABSD	F0
POS$37:	DIVD	(R0)+,F0
	MODD	#0.25,F0
	SETF	
	LDCDF	F0,F0
	CFCC	
	BEQ	RTN$37
	MODF	#4.0,F0
	STCFI	F1,R1
	ROR	R1
	BCC	Q13$37
	NEGF	F0
	ADDF	#1.0,F0
Q13$37:	ROR	R1
	BCC	Q12$37
	NEGF	F0

Q12$37:	LDF	F0,F2
	MULF	F2,F2
	MOV	#4,R1
	LDF	(R0)+,F1
XPD$37:	MULF	F2,F1
	DEC	R1
	ADDF	(R0)+,F1
	BGT	XPD$37
	MULF	F1,F0
	TST	R4
	BEQ	RTN$37
	NEGF	F0
RTN$37:	STF	F0,-(SP)
	MOV	(SP)+,R0
	MOV	(SP)+,R1
	RTS	R5

FCO$37:
PI2$37:	.WORD	040311,007732
	.WORD	121041,064302



	.ENDC

	.WORD	035036,153672

	.WORD	136231,023143

	.WORD	037243,032130

	.WORD	140045,056741

CON$37:	.WORD	040311,007733
	.ENDC
	.TITLE	$TNH02
	.IFDF	CND$38
	.GLOBL	TANH,EXP,$ADR,$SBR,$MLR,$DVR,$FCALL
	.GLOBL	$POLSH,$PSHR3










	R0=%0
	R1=%1
	R4=%4
	R5=%5
	SP=%6
	PC=%7
TANH:	MOV	R5,-(SP)	
	MOV	2(R5),R5	
	MOV	@R5,R0	
	BEQ	ZER$38	
	ASL	R0
	CLRB	R0
	SWAB	R0	
	CMP	R0,#205
	BLT	STE$38	
	MOV	#40200,R0	
	CLR	R1
	TST	@R5	
	BGE	OUT$38
	ADD	#100000,R0	
	BR	OUT$38
STE$38:	CMP	R0,#177
	BGT	TAN$38	
	CMP	R0,#164
	BGE	SML$38	
	MOV	2(R5),R1
	MOV	@R5,R0	
	BR	OUT$38
TAN$38:	MOV	2(R5),-(SP)	
	MOV	@R5,-(SP)
	ADD	#200,@SP	
	MOV	SP,R5	
	MOV	#EXP,R4	
	JSR	PC,$FCALL
	MOV	R1,-(SP)	
	MOV	R0,-(SP)
	CLR	-(SP)	
	MOV	#40200,-(SP)
	MOV	R1,-(SP)	
	MOV	R0,-(SP)
	CLR	-(SP)
	MOV	#40200,-(SP)	
	JSR	R4,$POLSH	
	.WORD	$SBR,UP$38,$ADR,$DVR,UPL$38
UPL$38:	MOV	(SP)+,R0	
	MOV	(SP)+,R1
OUT$38:	MOV	(SP)+,R5	
	RTS	R5	
SML$38:	MOV	2(R5),R1	
	MOV	@R5,R0
	JSR	R4,$POLSH
	.WORD	$PSHR3,$PSHR3,$PSHR3,$MLR,XSQ$38	
XSQ$38:	MOV	2(SP),-(SP)	
	MOV	2(SP),-(SP)
	JSR	R4,$POLSH
	.WORD	P35$38,$ADR,ONE$38	
	.WORD	$PSHR3,P45$38,$PSHR3,$DVR,$ADR,$ADR,$DVR	
	.WORD	$SBR,$MLR,UPL$38


ONE$38:	MOV	4(SP),R0	
	MOV	6(SP),R1
	CLR	6(SP)	
	MOV	#40200,4(SP)
	JMP	@(R4)+
P45$38:	MOV	#136237,-(SP)	
	MOV	#41464,-(SP)
P15$38:	MOV	#165707,-(SP)	
	MOV	#41722,-(SP)
	JMP	@(R4)+
P35$38:	MOV	#116457,-(SP)	
	MOV	#41414,-(SP)
	JMP	@(R4)+
ZER$38:	CLR	R0
	CLR	R1
	BR	OUT$38

UP$38:	MOV	(SP)+,10.(SP)	
	MOV	(SP)+,10.(SP)
	JMP	@(R4)+

	.ENDC
	.TITLE	$ATN03
	.IFDF	CND$39





	
	.GLOBL	ATAN,ATAN2
	.IFNDF	FPU
	.GLOBL	$ADR,$SBR,$MLR,$DVR,$POLSH,$POPR3
	.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
ATAN2:	CLR	-(SP)	
	CLR	-(SP)	
	CLR	-(SP)
	CLR	-(SP)	
	CLR	-(SP)
	MOV	2(R5),R4	
	MOV	2(R4),-(SP)	
	MOV	@R4,-(SP)
	MOV	@SP,R0	
	MOV	4(R5),R4	
	MOV	2(R4),-(SP)	
	MOV	@R4,-(SP)
	MOV	@SP,R1	
	BEQ	INF$39	
	ASL	R0	
	CLRB	R0	
	SWAB	R0
	ASL	R1
	CLRB	R1	
	SWAB	R1
	SUB	R1,R0	
	CMP	#26.,R0	
	BLT	INF$39	
DIV$39:	JSR	R4,$POLSH
	.WORD	$DVR,UPL$39	
UPL$39:	TST	@4(R5)	
	BGE	ATE$39	
	MOV	#040511,8.(SP)	
	MOV	#007733,10.(SP)
	TST	@2(R5)	
	BGE	ATE$39
	ADD	#100000,8.(SP)	
ATE$39:	TST	@SP	
	BR	AT1$39	
INF$39:	ADD	#18.,SP	
	MOV	#040311,R0	
	MOV	#007733,R1
	TST	@2(R5)	
	BGE	INR$39	
	ADD	#100000,R0	
INR$39:	RTS	R5	

ATAN:	CLR	-(SP)	
	CLR	-(SP)	
	CLR	-(SP)
	CLR	-(SP)	
	CLR	-(SP)
	MOV	2(R5),R4	
	MOV	2(R4),-(SP)	
	MOV	@R4,-(SP)	
AT1$39:	BGE	PLU$39	
	ADD	#100000,@SP	
	INC	12.(SP)	
PLU$39:	CMP	@SP,#40200	
	BLO	LE1$39	
	BGT	GT1$39	
	TST	2(SP)	
	BEQ	LE1$39	
GT1$39:	MOV	#140311,4(SP)	
	MOV	#007733,6(SP)	
	DEC	12.(SP)	
	MOV	2(SP),-(SP)	
	MOV	2(SP),-(SP)
	MOV	#40200,4(SP)	
	CLR	6(SP)
	JSR	R4,$POLSH	
	.WORD	$DVR,LE1$39
LE1$39:	MOV	2(SP),-(SP)	
	MOV	2(SP),-(SP)
	CLR	4(SP)
	CLR	6(SP)
	CMP	@SP,#037611	
	BLO	L15$39	
	BHI	TNS$39	
	CMP	2(SP),#030243
	BLOS	L15$39
TNS$39:	MOV	#040006,4(SP)	
	MOV	#005222,6(SP)
	MOV	@SP,R0	
	MOV	2(SP),R1
	MOV	#131727,-(SP)	
	MOV	#140335,-(SP)
	MOV	R1,-(SP)
	MOV	R0,-(SP)	
	CLR	-(SP)	
	MOV	#40200,-(SP)
	MOV	#131727,-(SP)	
	MOV	#040335,-(SP)
	MOV	R1,-(SP)	
	MOV	R0,-(SP)
	JSR	R4,$POLSH	

	.WORD	$MLR,$SBR,UP$39,$SBR,$DVR,L15$39
L15$39:	MOV	@SP,R0	
	MOV	2(SP),R1
	MOV	R1,-(SP)	
	MOV	R0,-(SP)
	MOV	R1,-(SP)
	MOV	R0,-(SP)
	JSR	R4,$POLSH
	.WORD	$MLR	
	.WORD	PLY$39	
	.WORD	$MLR,$ADR,$MLR,$ADR,$MLR,$ADR
	.WORD	$MLR,$ADR,$MLR,$ADR
	.WORD	$ADR	
	.WORD	SGN$39	
	.WORD	$ADR	
	.WORD	$POPR3,EXI$39	
EXI$39:	TST	(SP)+	
	RTS	R5	

UP$39:	MOV	(SP)+,10.(SP)	
	MOV	(SP)+,10.(SP)
	JMP	@(R4)+

PLY$39:	MOV	(SP)+,R0	
	MOV	(SP)+,R1
	MOV	#CON$39+4,R2	
	MOV	#5,R3	
	BR	PY1$39
PY2$39:	MOV	R1,-(SP)	
	MOV	R0,-(SP)
PY1$39:	MOV	-(R2),-(SP)	
	MOV	-(R2),-(SP)
	DEC	R3	
	BGT	PY2$39
	JMP	@(R4)+

SGN$39:	TST	8.(SP)	
	BEQ	SG1$39
	ADD	#100000,@SP	
SG1$39:	JMP	@(R4)+
	.ENDC

	.IFDF	FPU
ATAN2:	SETF	
	MOV	2(R5),R3
	MOV	4(R5),R4
	MOV	@R3,R0
	MOV	@R4,R1
	BEQ	INF$39
	ASL	R0
	CLRB	R0
	SWAB	R0
	ASL	R1
	CLRB	R1
	SWAB	R1
	SUB	R1,R0
	CMP	#26.,R0
	BLT	INF$39
	LDF	PI$39,F3
	LDF	@R3,F0
	CFCC
	BGE	A1P$39
	NEGF	F3
A1P$39:	LDF	@R4,F1
	CFCC
	BLT	A2M$39
	CLRF	F3
A2M$39:	DIVF	F1,F0
	BR	AT1$39

INF$39:	LDF	PI2$39,F1
	TST	@R3
	BGE	EXI$39
	NEGF	F1
	BR	EXI$39

ATAN:	SETF	
	CLRF	F3
	LDF	@2(R5),F0
AT1$39:	CLR	R4
	CFCC	
	STF	F3,F5
	CLRF	F3
	BGE	PLU$39
	ABSF	F0
	INC	R4
PLU$39:	LDF	#1.0,F1
	CMPF	F0,F1
	CFCC
	BLE	LE1$39
GT1$39:	DEC	R4
	DIVF	F0,F1
	LDF	F1,F0
	LDF	PI2$39,F3

LE1$39:	STF	F3,F4
	CLRF	F3
	CMPF	T15$39,F0
	CFCC
	BGE	L15$39
	LDF	PI6$39,F3
	LDF	F0,F1
	MULF	RT3$39,F0
	SUBF	#1.0,F0
	ADDF	RT3$39,F1
	DIVF	F1,F0

L15$39:	LDF	F0,F2
	MULF	F0,F0
	MOV	#FCO$39,R0
	MOV	#4,R1
	LDF	(R0)+,F1
XPD$39:	MULF	F0,F1
	DEC	R1
	ADDF	(R0)+,F1
	BGT	XPD$39
	MULF	F2,F1
	ADDF	F3,F1
	SUBF	F4,F1
	TST	R4
	BEQ	SG1$39
	NEGF	F1
SG1$39:	ADDF	F5,F1

EXI$39:	STF	F1,-(SP)
	MOV	(SP)+,R0
	MOV	(SP)+,R1
	RTS	R5

PI$39:	.WORD	040511,007733
PI2$39:	.WORD	040311,007733
T15$39:	.WORD	037611,030243
PI6$39:	.WORD	040006,005222
RT3$39:	.WORD	040335,131727
	.ENDC
FCO$39:	.WORD	037305,035302	
	.WORD	137421,056514	
	.WORD	037514,143333	
	.WORD	137652,125244	
CON$39:	.WORD	040200,000000	

	.ENDC
	.TITLE	$POL07
	.GLOBL	$POLSH









R4=%4
SP=%6
	









	.GLOBL	$V20A	
$V20A:

$POLSH:	TST	(SP)+		
	JMP	@(R4)+		



	.IFDF	EAE
	.GLOBL	$EAE
$EAE:
	.ENDC
	.IFDF	EIS!MULDIV
	.GLOBL	$EIS
$EIS:
	.ENDC
	.IFDF	FPU
	.GLOBL	$FPU
$FPU:
	.ENDC
	.IFDF	FIS

	.GLOBL	$FIS
$FIS:
	.ENDC
	.IFDF	RSX
	.GLOBL	$RSX
$RSX:
	.ENDC
	.TITLE	$SQT03
	.IFDF	CND$41





	
	.GLOBL	SQRT,$ERR
	.IFNDF	FPU
	.GLOBL	$ADR,$DVR,$POLSH
	.ENDC








	R0=%0
	R1=%1
	R4=%4
	R5=%5
	SP=%6
	F0=%0
	F1=%1
	F2=%2
	.IFDF	FPU
SQRT:	MOV	@2(R5),R1
	.ENDC
	.IFNDF	FPU
SQRT:	MOV	R5,-(SP)
	MOV	2(R5),R5	
	MOV	@R5,R1	
	.ENDC
	BMI	ERR$41	
	BEQ	ZER$41	
	.IFNDF	FPU
	MOV	#3,-(SP)	
	.ENDC
	ASR	R1	
	ADD	#20100,R1
	CLR	-(SP)	
	MOV	R1,-(SP)	
	.IFNDF	FPU
	CLR	-(SP)	
	MOV	@R5,-(SP)
	CLR	-(SP)
	MOV	R1,-(SP)
LUP$41:	JSR	R4,$POLSH	
	.WORD	$DVR,$ADR,UPL$41	
UPL$41:	SUB	#200,@SP	
	DEC	4(SP)	
	BEQ	OUT$41
	MOV	2(R5),-(SP)	
	MOV	@R5,-(SP)	
	MOV	6(SP),-(SP)
	MOV	6(SP),-(SP)
	BR	LUP$41	
OUT$41:	MOV	(SP)+,R0	
	MOV	(SP)+,R1
	TST	(SP)+	
RTN$41:	MOV	(SP)+,R5
	RTS	R5	
ERR$41:	JSR	R5,$ERR	
	BR	RTN$41
	.BYTE	4
	.BYTE	11.
ZER$41:	CLR	R0
	CLR	R1
	BR	RTN$41
	.ENDC
	.IFDF	FPU
	MOV	#3,R0
	SETF	
	LDF	(SP)+,F0
	LDF	@2(R5),F2

LUP$41:	LDF	F0,F1
	LDF	F2,F0
	DIVF	F1,F0
	ADDF	F1,F0
	DEC	R0
	DIVF	#2.0,F0
	BGT	LUP$41

	STF	F0,-(SP)
	MOV	(SP)+,R0
	MOV	(SP)+,R1
	RTS	R5

ERR$41:	JSR	R5,$ERR
	RTS	R5
	.BYTE	4
	.BYTE	11.
ZER$41:	CLR	R0
	CLR	R1
	RTS	R5
	.ENDC
	.ENDC
	.TITLE	$ERR01
	.GLOBL	$ERR,$ERRA,$ERVEC
	R0 = %0
	R5 = %5
	SP = %6
	PC = %7






















$ERR:	MOV	R0,-(SP)
	MOV	2(R5),R0
	BR	ERB$43
$ERRA:	MOV	R0,-(SP)
ERB$43:	.IFNDF	CLASS5
	CMPB	R0,#5
	BEQ	IGN$43
	.ENDC
	JSR	PC,@$ERVEC
IGN$43:	MOV	(SP)+,R0
	RTS	R5
$ERVEC:	.WORD	HLT$43
HLT$43:	HALT
	BR	HLT$43
	.TITLE	$LDR01
	.IFDF	CND$44&CND$42
	R4=%4
	SP=%6



$LDR:	MOV	(SP)+,2(SP)
	MOV	(SP)+,2(SP)
	JMP	@(R4)+
	.ENDC
	.TITLE	$LDD01
	.IFDF	CND$45&CND$42
	R0=%0
	R4=%4
	SP=%6



$LDD:	MOV	SP,R0
	ADD	#8.,R0
	MOV	(SP)+,(R0)+
	MOV	(SP)+,(R0)+
	MOV	(SP)+,(R0)+
	MOV	(SP)+,(R0)+
	JMP	@(R4)+
	.ENDC
	.TITLE	$STR01
	.IFDF	CND$46&CND$42
	R0=%0
	R1=%1
	R2=%2
	R3=%3
	R4=%4
	R5=%5
	SP=%6
	PC=%7



$STR:	MOV	#FAC$42,R5
	TST	30(SP)
	BEQ	STK$46
	CLR	30(SP)
	MOV	SP,R0
	MOV	SP,R1
	CMP	(R1)+,(R1)+
	MOV	#13,R2
LP$46:	MOV	(R1)+,(R0)+
	DEC	R2
	BNE	LP$46

	MOV	(R5)+,(R0)+
	MOV	(R5)+,(R0)+
	JMP	@(R4)+
STK$46:	MOV	(R5)+,(R0)+
	MOV	(R5)+,(R0)+
	CMP	(SP)+,(SP)+
	JMP	@(R4)+
	.ENDC
	.TITLE	$STD01
	.IFDF	CND$47&CND$42
	R0=%0
	R1=%1
	R2=%2
	R3=%3
	R4=%4
	R5=%5
	SP=%6
	PC=%7

$STD:	MOV	#FAC$42,R5
	TST	34(SP)
	BEQ	STK$47
	CLR	34(SP)
	MOV	SP,R0
	MOV	SP,R1
	ADD	#10,R1
	MOV	#13,R2
LP$47:	MOV	(R1)+,(R0)+
	DEC	R2
	BNE	LP$47
	MOV	(R5)+,(R0)+
	MOV	(R5)+,(R0)+
	MOV	(R5)+,(R0)+
	MOV	(R5)+,(R0)+
	JMP	@(R4)+
STK$47:	MOV	(R5)+,(R0)+
	MOV	(R5)+,(R0)+
	MOV	(R5)+,(R0)+
	MOV	(R5)+,(R0)+
	ADD	#10,SP
	JMP	@(R4)+
	.ENDC
	.TITLE	FPMP11 FLOATING POINT & MATH PACKAGE

	.END
