File FP8.PA (PAL assembler source file)

Directory of image this file is from
This file as a plain text file

/ FP 8 EM	ANCR 1040
/	INSTRUCTION SUMMARY AND DEFINITION
/
/    MNEMONIC	CODE	CLASS		DESCRIPTION
/
/	EFM	4176	CONTROL		ENTER INTERPRETIVE MODE
/	SFLO	4565	CONTROL		SINGLE, SIGNED FLOAT AND EFM
/	DFLO	4564	CONTROL		DOUBLE PRESISION FLOAT AND EFM
/	FCDF	6060	CONTROL		CHANGE INTERPRETIVE DATA FIELD
/	LFM	0000	CONTROL		LEAVE INTERPRETIVE MODE
/	SFIX	6040	CONTROL		SINGLE FIX AND LFM
/	DFIX	6030	CONTROL		DOUBLE FIX AND LFM
/	LD	1000	MEM. REF.	LOAD FAC FROM MEMORY
/	ST	1400	MEM. REF.	STORE FAC TO MEMORY
/	AD	2000	MEM. REF.	ADD OPERAND TO FAC
/	SB	2400	MEM. REF.	SUBTRACT OPERAND FROM FAC
/	MP	3000	MEM. REF.	MULTIPLY FAC BY OPERAND
/	DV	3400	MEM. REF.	DIVIDE FAC BY OPERAND
/	RDV	4000	MEM. REF.	DIVIDE OPERAND BY FAC TO FAC
/	JS	4400	MEM. REF.	JUMP TO SUBROUTINE
/	CMP	5000	MEM. REF.	COMPARE FAC, CONDITIONAL BRANCH
/	JP	5400	MEM. REF.	JUMP TO NEW LOCATION
/	ILA	0000	OPERATE		IMMEDIATE LOAD TO FAC
/	ZAC	6000	OPERATE		SET FAC TO ZERO
/	ABS	6010	OPERATE		ABSOLUTE VALUE OF FAC
/	CHS	6020	OPERATE		CHANGE SIGN OF FAC
/	FREAD	6050	OPERATE		FREE-FORMAT READ TO FAC
/	WRITE	6051	OPERATE		FORMATTED OUTPUT FROM FAC
/	FCRLF	6052	OPERATE		NEW LINE TO OUTPUT DEVICE
/	FORMAT	6400	OPERATE		SET OUTPUT FORMAT
/	FSQR	6070	FUNCTION	SQUARE OF FAC TO FAC
/	FSQRT	6100	FUNCTION	SQUARE ROOT OF FAC
/	FEXP	6110	FUNCTION	NATURAL EXPONENT
/	FLOG	6120	FUNCTION	NATURAL LOGARITHM
/	FSIN	6130	FUNCTION	SINE OF FAC (RADIANS)
/	FCOS	6140	FUNCTION	COSINE OF FAC
/	FATN	6150	FUNCTION	ARCTANGENT
/
/	FP 8 EM
/	PDP-8 FLOATING POINT
/	EXTENDED MEMORY VERSION
/	ANCR 1040
/	W R MYERS
/	FEBRUARY 1972
/
/FLOATING POINT INSTRUCTIONS:
/
UDF=6211		/FP IN FIELD #1
EFM=4176		/ENTER INTERPRETER
LFM=0000		/LEAVE FLOATING MODE
ILA=0000		/IMMEDIATE LOAD FAC
LD=1000			/LOAD FAC
ST=1400			/STORE FAC
AD=2000			/ADD
SB=2400			/SUBTRACT
MP=3000			/MULTIPLY
DV=3400			/DIVIDE
RDV=4000		/DIVIDE INVERTED
JS=4400			/JUMP TO SUBROUTINE
CMP=5000		/THREE-WAY COMPARE
JP=5400			/JUMP TO LOCATION
SFLO=4565		/SINGLE FLOAT AND EFM
DFLO=4564		/DOUBLE FLOAT AND EFM
ZAC=6000		/ZERO TO FAC
ABS=6010		/ABSOLUTE VALUE
CHS=6020		/CHANGE SIGN
DFIX=6030		/DOUBLE FIX AND LFM
SFIX=6040		/SINGLE FIX AND LFM
FREAD=6050		/INPUT TO FAC
WRITE=6051		/OUTPUT FROM FAC
FCRLF=6052		/NEW OUTPUT LINE
FORMAT=6400		/SET OUTPUT FORMAT
FCDF=6060		/CHANGE FLOATING DATA FIELD
FSQR=6070		/SQUARE FAC
FSQRT=6100		/SQUARE ROOT
FEXP=6110		/EXPONENT
FLOG=6120		/LOGARITHM
FSIN=6130		/SINE
FCOS=6140		/COSINE
FATN=6150		/ARCTANGENT

/		START OF ASSEMBLER CODE
	FIELD 1		/EXAMPLE FP 8 IN FIELD '1'
*0151
SVPC,	SPC1
RSPC,	RPC1
ACZ,	ACZA
BCZ,	BCZA
NOR,	NORA
CHRX,	0000		/INPUT CHARACTER COUNTER
ICHR,	0000		/LAST INPUT CHARACTER
FMQ,	0000		/'MQ' REGISTER
OTR,	UOR		/OUTPUT ROUTINE
FMT,	1305		/FORMAT INDICATOR
INR,	UIR		/INPUT ROUTINE
	FLOR		/DOUBLE FLOAT AND ENTER
	FLOS		/SINGLE SIGNED FLOAT
ACS,	0000		/FLOATING ACCUMULATOR
ACX,	0000
ACH,	0000
ACL,	0000
BCS,	0000		/FLOATING OPERAND
BCX,	0000
BCH,	0000
BCL,	0000
E,	0000		/INTERPRETER LOCAL ENTRY
R,	CLA CLL		/INTERPRETIVE RETURN
	JMS TENT
	NOP
	TAD I EX
	SZA		/TEST FOR LFM
	JMP EGO
	JMS TENT	/RESTORE INSTRUCTION
XIF,	CIF		/AND DATA FIELDS
	DCA E		/AND RETURN
	JMP I EX
TENT,	HLT		/TEST ENTRY AND
	TAD E		/FIX DATA FIELD FOR
	SNA		/INTERPRETER
	JMP .+4		/INSTRUCTION FIELD
	ISZ TENT
	UDF
	JMP .+3
XDF,	UDF
	TAD EME
	DCA EX
	JMP I TENT
EX,	0000
	CDF
EME,	0000		/CROSS-BANK ENTRY
	CLA CLL
	RDF		/CALCULATE DATA FIELD
	TAD EX+1	/AND RETURN LINKAGE
	DCA XDF
	TAD XDF
	IAC
	DCA XIF
	JMP R
IFPC,	HLT		/INCREMENT LOCAL OR
	JMS TENT	/EXTENDED INSTRUCTION POINTER
	JMP .+3
	ISZ E
	SKP
	ISZ EME
	UDF
	JMP I IFPC
ADR,	0000		/OPERAND ADDRESS
	0000		/POINTERS
	0000
P1,	0177		/PAGE #1 CONSTANTS
	0200
	7600
	4000
	3777
	0007
EGO,	DCA FMQ		/SAVE INSTRUCTION
	TAD FMQ
	AND P1		/CALCULATE OPERAND ADDRESS
	DCA ADR
	TAD FMQ
	AND P1+1	/TEST PAGE INDICATOR
	SNA CLA
	JMP .+5
	TAD EX
	AND P1+2
	TAD ADR
	DCA ADR
	TAD I ADR	/INDIRECT ADDRESSING
	DCA ADR		/IS IMPLICIT
	TAD ADR
	IAC		/SET ADDRESS POINTERS
	DCA ADR+1
	TAD ADR+1
	IAC
	DCA ADR+2
	JMS I F8DF	/SET OPERAND DATA FIELD
	TAD I ADR
	DCA BCX		/MOVE OPERAND TO
	TAD I ADR+1	/FLOATING OPERAND
	AND P1+3	/REGISTER
	DCA BCS
	TAD I ADR+1
	AND P1+4
	DCA BCH
	TAD I ADR+2
	DCA BCL
	JMS IFPC
	TAD FMQ		/GET OPERATION CODE
	RTL
	RTL
	AND P1+5
	RAL
	SZA
	JMP .+5
	TAD FMQ		/IMMEDIATE LOAD FAC
	JMS I .+2	/USE SINGLE FLOAT
	JMP R		/ROUTINE
	BFLO
	TAD T1		/CALCULATE BRANCH
FN2,	DCA ICHR	/TO OTHER FUNCTIONS
	TAD I ICHR
	DCA ICHR
	JMP I ICHR
T1,	OPT-2
ST1,	JMS I F8DF	/STORE FAC TO MEMORY
	TAD ACX
	DCA I ADR
	TAD ACH
	TAD ACS
	DCA I ADR+1
	TAD ACL
	DCA I ADR+2
	JMP R
JS1,	JMS TENT
	JMP .+6
	TAD E
	DCA I ADR
	TAD ADR+1
JP2,	DCA E
	JMP R
	TAD EME
	DCA I ADR
	TAD ADR+1
JP3,	DCA EME
	JMP R
JP1,	JMS TENT
	JMP .+3
	TAD ADR
	JMP JP2
	TAD ADR
	JMP JP3
F8DF,	FDF1
LD1,	JMS I XAB2
	JMP R
XAB2,	XAB1
FDF1,	HLT
FDF2,	UDF
	JMP I FDF1
CDX1,	TAD FMQ		/FLOATING OPERAND
	AND SPC1-5	/DATA FIELD SET
	CLL RAL
	RTL
	TAD SPC1-3
	JMP .+5
RPC1,	LFM		/RESTORE INSTRUCTION
	TAD SPC1-2	/POINTER AND OPERAND
	DCA E		/FIELD AND RETURN
	TAD SPC1-1	/FROM FUNCTION
	DCA FDF2
	JMP R
	0007
	UDF
	CDF
	HLT
	HLT
SPC1,	HLT		/SAVE LOCAL INSTRUCTION
	TAD E		/POINTER AND DATA FIELD
	DCA SPC1-2	/FOR FP8 USE OF FP8
	TAD FDF2
	DCA SPC1-1
	TAD SPC1-4
	DCA FDF2
	EFM
	JP SPC1
OPT,	LD1		/OPERATION BRANCH TABLE
	ST1
	AD1
	SB1
	MP1
	DV1
	RD1
	JS1
	CM1
	JP1
	FN1
	FM1
	USER		/USER-DEFINED FUNCTIONS; OP=7000
	0017
	OPF
FN1,	TAD FMQ
	RAR
	RTR
	AND FN1-2
	TAD FN1-1
	JMP I .+1
	FN2
OPF,	ZA1		/FUNCTION BRANCH TABLE
	AB1
	CH1
	AFIX
	BFIX
	IO1
	CDX1
	SQAR
	SQRT
	EXP
	LOG
	SIN
	COS
	ATN
IO1,	TAD FMQ
	AND SPC1-5
	TAD .+2
	JMP I OPF-1
	.+1
	IN1		/IO BRANCH TABLE
	OT1
	CR1
ACZA,	HLT		/TEST FAC FOR ZERO
	TAD ACH
	SZA CLA
	JMP .+6
	TAD ACL
	SZA CLA
	JMP .+3
	DCA ACX
	JMP I ACZA
	ISZ ACZA
	JMP I ACZA
BCZA,	HLT		/TEST OPERAND FOR ZERO
	TAD BCH
	SZA CLA
	ISZ BCZA
	JMP I BCZA
RACL,	HLT		/ROTATE FAC LEFT
	TAD ACL		/AND DECREMENT
	CLL RAL		/EXPONENT
	DCA ACL
	TAD ACH
	RAL
	DCA ACH
	CMA
	TAD ACX
	DCA ACX
	JMP I RACL
RACR,	HLT		/ROTATE FAC RIGHT
	TAD ACH		/AND INCREMENT
	CLL RAR		/EXPONENT
	DCA ACH
	TAD ACL
	RAR
	DCA ACL
	ISZ ACX
	JMP I RACR
	JMP I RACR
NORA,	HLT		/NORMALIZE FAC
	JMS ACZA
	JMP I NORA
	TAD ACH
	SMA CLA
	JMP .+3
	JMS RACR
	JMP I NORA
	JMS RACL
	JMP .-6
ZA1,	DCA ACL		/CLEAR FAC
	DCA ACH
	DCA ACX
	JMP AB1
CH1,	STL RAR		/CHANGE SIGN
	TAD ACS
AB1,	DCA ACS		/ABSOLUTE VALUE
	JMP R
DTAD,	HLT		/DOUBLE PRECISION ADD
	CLA CLL		/AC AND BC MANTISSAS
	TAD ACL
	TAD BCL
	DCA ACL
	CLA RAL
	TAD ACH
	TAD BCH
	DCA ACH
	JMP I DTAD
MPTN,	HLT		/MULTIPLY FAC BY 10
	TAD ACH
	DCA BCH
	TAD ACL
	DCA BCL
	JMS I RR3
	JMS I RR3
	JMS DTAD
	ISZ ACX
	CLL
	JMS I NOR
	JMP I MPTN
DVTN,	HLT		/DIVIDE FAC BY 10
	TAD ACH
	DCA FMQ
	TAD ACL
	JMS DIV
	RR3+2
	DCA ACH
	JMS DIV
	RR3+2
	DCA ACL
	TAD RR3+1
	TAD ACX
	DCA ACX
	JMS I NOR
	JMP I DVTN
XAB1,	HLT		/EXCHANGE FAC
	TAD ACL		/AND OPERAND
	DCA DTAD
	TAD ACH
	DCA MPTN
	TAD ACX
	DCA DVTN
	TAD ACS
	CLL RAL
	TAD BCS
	DCA ACS
	RAR
	DCA BCS
	TAD BCX
	DCA ACX
	TAD BCH
	DCA ACH
	TAD BCL
	DCA ACL
	TAD DTAD
	DCA BCL
	TAD MPTN
	DCA BCH
	TAD DVTN
	DCA BCX
	JMP I XAB1
DIV,	HLT		/DIVIDE FMQ, AC BY
	DCA DTAD	/ADDRESSED NUMBER
	TAD I DIV
	DCA MPTN	/QUOTIENT IN AC AND
	TAD I MPTN	/REMANDER IN FMQ
	CIA CLL
	DCA MPTN
	TAD RR3+3
	DCA XAB1
	ISZ DIV
	JMP .+11
	TAD FMQ
	RAL
	DCA FMQ
	TAD FMQ
	TAD MPTN
	SZL
	DCA FMQ
	CLA
	TAD DTAD
	RAL
	DCA DTAD
	ISZ XAB1
	JMP .-14
	TAD DTAD
	JMP I DIV
MPY,	HLT		/MULTIPLY AC BY
	DCA DTAD	/ADDRESSED NUMBER
	DCA FMQ
	TAD RR3+4	/HIGH PRODUCT IN FMQ,
	DCA MPTN	/LOW PRODUCT IN AC.
	TAD I MPY
	DCA DIV
	TAD I DIV
	DCA DIV
	ISZ MPY
	CLL
	TAD DTAD
	RAR
	DCA DTAD
	TAD FMQ
	SNL
	JMP .+3
	CLL
	TAD DIV
	RAR
	DCA FMQ
	ISZ MPTN
	JMP .-13
	TAD DTAD
	RAR
	CLL
	JMP I MPY
RR3,	RACR
	7774
	5000
	7763
	7764
	RACL
MP1,	JMS I RR3+5	/MULTIPLY FAC
	TAD ACX		/BY OPERAND.
	TAD BCX
	IAC
	DCA ACX
	TAD ACS
	TAD BCS
	DCA ACS
	TAD ACL
	JMS I MP4
	BCL
	CLA CLL
	TAD FMQ
	DCA BCS
	TAD ACL
	JMS I MP4
	BCH
	TAD BCS
	DCA BCS
	GLK
	TAD FMQ
	DCA ACL
	GLK
	DCA BCX
	TAD ACH
	JMS I MP4
	BCL
	TAD BCS
	GLK
	TAD ACL
	DCA ACL
	GLK
	TAD BCX
	DCA BCX
	TAD FMQ
	TAD ACL
	DCA ACL
	GLK
	TAD BCX
	DCA BCX
	TAD ACH
	JMS I MP4
	BCH
	TAD ACL
	DCA ACL
	GLK
	TAD BCX
	TAD FMQ
	DCA ACH
	JMS I NOR
	JMP R
SB1,	STL RAR		/SUBTRACT
	TAD BCS
	DCA BCS
AD1,	JMS I BCZ	/ADD OPERAND TO FAC.
	JMP R
	JMS I ACZ
	JMP I MP4+1
	JMS I MP4+2
	CLA SMA SZA
	JMS I MP4+3
	TAD BCX
	CIA
	TAD ACX
	SMA CLA
	JMP .+3
	JMS I MP4+4
	JMP .-6
	TAD ACS
	TAD BCS
	SNA CLA
	JMP .+11
	TAD ACL
	CLL CIA
	DCA ACL
	TAD ACH
	CMA
	SZL
	IAC
	DCA ACH
	TAD BCS
	DCA ACS
	JMS I MP4+5
AR3,	JMS I NOR
	JMP R
RD1,	JMS I MP4+3	/INVERSE DIVIDE
DV1,	JMS I ACZ	/NORMAL DIVIDE
	JMP R
	JMS I BCZ
	JMP I MP4+6
	TAD ACS
	TAD BCS
	DCA ACS
	TAD BCX
	CIA
	TAD ACX
	DCA ACX
	TAD BCL
	CLL RAL
	DCA BCL
	TAD BCH
	RAL
	DCA BCH
	TAD ACH
	JMS I MP4
	BCL
	JMS I MP4+7
	BCH
	CLL CIA
	TAD ACL
	DCA ACL
	SNL
	CMA
	TAD ACH
	DCA FMQ
	TAD ACL
	JMS I MP4+7
	BCH
	DCA ACH
	JMS I MP4+7
	BCH
	DCA ACL
	JMP AR3
MP4,	MPY
	LD1
	CPQ
	XAB1
	RACR
	DTAD
	ZA1
	DIV
SCR1,	HLT
	HLT
	HLT
FLOS,	HLT		/SINGLE, SIGNED
	JMS BFLO	/FLOAT AND ENTER
	EFM
	JP FLOS
FLOR,	HLT		/DOUBLE PRECISION
	JMS AFLO	/FLOAT AND ENTER
	EFM
	JP FLOR
AFLO,	HLT
	DCA ACL
	DCA ACS
	TAD AFLO
	DCA BFLO
	JMP CFLO
BFLO,	HLT
	SMA
	JMP .+5
	CIA
	DCA ACL
	STL RAR
	SKP
	DCA ACL
	DCA ACS
	DCA ACH
CFLO,	TAD T5
	DCA ACX
	JMS I NOR
	RDF
	TAD T5+1
	DCA .+1
	HLT
	JMP I BFLO
FXQ,	HLT
	TAD ACX
	SMA
	JMP .+5
	CLA CLL
	DCA ACH
	DCA ACL
	JMP I FXQ
	TAD T5+2
	SMA
	JMP .-6
	DCA AFLO
	JMS I T5+3
	ISZ AFLO
	JMP .-2
	TAD ACL
	JMP I FXQ
CFIX,	HLT
	JMS FXQ
	SNL CLA
	JMP I CFIX
	ISZ ACL
	JMP I CFIX
	ISZ ACH
	JMP I CFIX
BFIX,	JMS CFIX
	TAD ACS		/SINGLE, SIGNED
	CLL RAL		/FIX AND LEAVE
	TAD ACL
	SZL
	CIA
	DCA ACL
	SKP
AFIX,	JMS CFIX	/DOUBLE PRECISION
	TAD I T5+4	/FIX AND LEAVE
	IAC CLL
	DCA CFIX
	TAD I T5+5
	DCA .+2
	JMS I T5+6
	HLT
	DCA E
	TAD ACL
	JMP I CFIX
T5,	27
	CIF
	7751
	RACR
	EX
	XIF
	TENT
	IFPC
CPQ,	HLT		/COMPARE OPERAND
	TAD BCX		/MAGNITUDES
	CIA
	TAD ACX
	SZA
	JMP I CPQ
	TAD BCH
	CIA
	TAD ACH
	SZA
	JMP I CPQ
	TAD BCL
	CIA CLL
	TAD ACL
	SZA
	CML RAR CLA CMA
	JMP I CPQ
	HLT
CZ,	TAD ACS
	SZA CLA
	JMP R
	JMS I T5+7
	JMS I T5+7
	JMP R
CM1,	JMS I ACZ	/THREE-WAY BRANCH
	JMP RAZ
	JMS I BCZ
	JMP CZ
	TAD ACS
	TAD BCS
	SZA CLA
	JMP CZ
	JMS CPQ
	SNA
	JMP CZ+4
	SMA CLA
	JMP CZ
	TAD BCS
	SZA CLA
	JMP CZ+3
	JMP R
RAZ,	JMS I BCZ
	JMP CZ+4
	JMP .-6
CHAR,	HLT		/INPUT CHARACTER PROCESSOR
	JMS I INR
	AND K5		/MASK TO 7 BITS
	SNA		/IGNORE NULL
	JMP CHAR+1
	DCA ICHR	/SAVE CHAR
	TAD ICHR
	TAD K5+1	/TEST FOR RUBOUT
	SNA
	JMP RBO
	TAD K5+2	/TEST FOR 'E'
	SNA
	JMP EXPN
	TAD K5+3	/TEST FOR DECIMAL POINT
	SNA
	JMP DC5
	IAC		/CHECK FORT MINUS
	SNA
	JMP MN5
	TAD K5+4	/IGNORE PLUS
	SNA
	JMP CHAR+1
	TAD K5+5	/BLANK MAY TERMINATE
	SNA
	JMP BK5
	TAD K5+6	/IGNORE LINEFEED
	SNA
	JMP CHAR+1
	TAD K5+7	/TERMINATE IF NOT
	SMA SZA		/DECIMAL DIGIT
	JMP INAN
	TAD K5+10
	SPA
	JMP INAN	/INCREMENT COUNTER,
	DCA ACX		/RETURN FOUR-BIT
	ISZ CHRX	/DIGIT IN ACX
	JMP I CHAR
MN5,	STL CLA RAR
	ISZ CHAR
	JMP I CHAR
DC5,	STA
	JMP IN2-1
RBO,	TAD ROC
	JMS I OTR
	JMP IN1
BK5,	TAD CHRX
	SNA CLA
	JMP CHAR+1
INAN,	CLA CLL		/INTERPRET AND NORMALIZE
	TAD K5+3
	DCA ACX
	JMS I NOR
	TAD BCL
	CLL RAL
	TAD BCH
	SZL
	CIA CLL
	TAD BCS
	SNA
	JMP R
	DCA BCS
	TAD BCS
	SMA
	CIA
	DCA BCX
	TAD BCS
ROC,	SMA CLA
	JMP .+3
	TAD K5+12
	SKP
	TAD K5+11
	DCA CHAR
	JMS I CHAR
	ISZ BCX
	JMP .-2
	JMP R
K5,	177
	7601
	72
	27
	2
	13
	26
	7720
	12
	MPTN
	DVTN
	MPY
IN1,	DCA CHRX
	DCA ACL
	DCA ACH
	DCA ACS
	DCA BCL
	DCA BCH
	DCA BCS
	DCA BCX
IN2,	JMS CHAR
	JMP .+3
	DCA ACS
	JMP IN2
	TAD BCS
	TAD BCX
	DCA BCS
	TAD ACH
	JMS I K5+13
	K5+10
	DCA ACH
	TAD ACL
	JMS I K5+13
	K5+10
	TAD ACX
	DCA ACL
	CLA RAL
	TAD ACH
	TAD FMQ
	DCA ACH
	JMP IN2
EXPN,	JMS CHAR
	JMP .+3
	DCA BCL
	JMP EXPN
	TAD BCH
	JMS I K5+13
	K5+10
	TAD ACX
	DCA BCH
	JMP EXPN
	HLT
OT1,	TAD FMT		/FIXED-POINT OUTPUT
	AND T6A
	CIA
	DCA FRWD
	TAD FMT
	RTR
	RTR
	RTR
	AND T6A
	CIA
	DCA INWD
	TAD ACS
	SMA CLA
	JMP .+3
	TAD T6A+4
	SKP
	TAD T6A+3
	DCA T6A+7
	DCA ACS
	JMS I SVPC
	ST T6B
	LFM
	JMS I ACZ
	JMP ZOT
	TAD FRWD
	SMA
	STA
	DCA SPAC
	EFM
	ILA 5
	LFM
	JMS I T6B+1
	ISZ SPAC
	JMP .-2
	EFM
	AD T6B
	LFM
	TAD ACX
	SMA SZA CLA
	JMP IGOT
	JMP .+3
ZOT,	TAD T6A+6
	DCA T6A+7
	IAC
	TAD INWD
	SPA
	JMS SPAC
	TAD T6A+7
	JMS I OTR
FRO,	TAD FRWD
	SMA CLA
	JMP ODN
	TAD T6A+5
	JMS I OTR
	ISZ FRWD
	SKP CLA
	JMP ODN
	JMS I T6B+2
	JMP .-4
IGOT,	DCA CHRX
	JMS I T6B+1
	ISZ CHRX
	TAD ACX
	SMA SZA CLA
	JMP .-4
	TAD INWD
	TAD CHRX
	SPA
	JMP OCN
	CLA
	TAD FRWD
	TAD INWD
	DCA CHRX
	TAD T6A+3
	SKP
	TAD T6A+5
	JMS I OTR
	ISZ CHRX
	JMP .-3
ODN,	EFM
	LD T6B
	JP RSPC
OCN,	IAC
	SPA
	JMS SPAC
	TAD CHRX
	CMA
	DCA CHRX
	TAD T6A+7
	JMS I OTR
	ISZ CHRX
	SKP CLA
	JMP FRO
	JMS I T6B+2
	JMP .-4
T6B,	SCR1
	DVTN
	DGO
FRWD,	HLT
INWD,	HLT
T6A,	77
	212
	215
	240
	255
	256
	260
	HLT
	HLT
SPAC,	HLT
	DCA T6A+10
	TAD T6A+3
	JMS I OTR
	ISZ T6A+10
	JMP .-3
	JMP I SPAC
CR1,	TAD T6A+2
	JMS I OTR
	TAD T6A+1
	JMS I OTR
	JMP R
SQAR,	JMS I SVPC
	ST T6B
	MP T6B
	JP RSPC
SCR2,	HLT
	HLT
	HLT
DGO,	HLT		/PRINT FAC HIGH

	JMS I T7A	/DECIMAL DIGIT
	EFM
	ST T7A+2
	LFM
	JMS I T7A+1
	DCA T7B
	TAD T7B
	TAD T7B+1
	JMS I OTR
	TAD T7B
	CIA
	SFLO
	AD T7A+2
	LFM
	JMP I DGO
FM1,	TAD FMQ		/SET OUTPUT FORMAT
	AND T7B+2
	DCA T7B
	TAD FMQ
	AND T7B+3
	CLL RAL
	RTL
	TAD T7B
	DCA FMT
	JMP R
T7A,	MPTN
	FXQ
	SCR2
T7B,	HLT
	0260
	0007
	0360
SCR3,	HLT
	HLT
	HLT
PIOT,	0001
	3110
	3755
ONE,	0001
	2000
HALF,	0000
	2000
ZERO,	0000
	0000
	0000
XK2,	0000
	2000
	0000
XTA,	ONE
	XK1
	SCR1
	XK1+3
	XK2
	SCR2
	SCR3
	ZERO
	EXPS
	EXPT
EXP,	JMS I SVPC	/NATURAL EXPONENT
	MP XTA+1
	ST XTA+2
	SFIX
	DCA T7B
	TAD T7B
	IAC
	DCA XK2
	TAD T7B
	CIA
	SFLO
	AD XTA+2
	MP XTA+3
	ST XTA+2
	LD STA
	ST XTA+5
	ILA 10
EXPT,	ST XTA+6
	RDV XTA+2
	MP XTA+5
	AD XTA
	ST XTA+5
	LD XTA+6
	SB XTA
	CMP XTA+7
	JP XTA+10
	JP XTA+10
	JP XTA+11
EXPS,	LD XTA+5
	MP XTA+4
	JP RSPC
LGK,	LGC
	LGC+3
	LGC+6
	LGC+11
	LGC+14
	LGC+17
	LGC+22
	HALF
LOG,	TAD ACX		/NATURAL LOGARITHM
	DCA XK2
	IAC
	DCA ACX
	JMS I ACZ
	JMP R
	JMS I SVPC
	AD LGK+1
	ST XTA+5
	SB LGK
	DV XTA+5
	ST XTA+5
	MP XTA+5
	ST XTA+2
	MP LGK+3
	AD LGK+4
	MP XTA+2
	AD LGK+5
	MP XTA+2
	AD LGK+6
	MP XTA+5
	ST XTA+5
	LFM
	TAD XK2
	SFLO
	SB LGK+7
	AD XTA+5
	MP LGK+2
	JP RSPC
LGC,	0002
	2650
	1172
	0001
	2650
	1172
	0000
	2613
	4414
	7777
	3362
	5646
	0000
	2234
	6604
	0000
	3661
	6112
	0002
	2705
	2436
XK1,	0001
	2705
	2436
	0000
	2613
	4414
TSQ,	SCR1
	SCR2
	0000
	HALF
	ONE
	7774
	SQRTL
	0000
SQRT,	DCA ACS		/SQUARE ROOT
	JMS I ACZ
	JMP R
	TAD ACX
	SPA
	CML
	RAR
	DCA SQRT-1
	GLK
	DCA ACX
	TAD TSQ+5
	DCA TSQ+2
	JMS I SVPC
	ST TSQ
	AD TSQ+4
	JP TSQ+6
	EFM
	ST TSQ+1
	RDV TSQ
	AD TSQ+1
SQRTL,	MP TSQ+3
	LFM
	ISZ TSQ+2
	JMP .-7
	TAD ACX
	TAD SQRT-1
	DCA ACX
	JMP I RSPC
ATN,	TAD ACS		/ARCTANGENT
	DCA TSQ+2
	DCA ACS
	TAD ACX
	DCA TSQ+7
	JMS I SVPC
	CMP TSQ+4
	JP KAT+1
	JP KAT+1
	RDV TSQ+4
ATL,	ST KAT+11
	MP KAT+11
	ST KAT+10
	DV KAT+7
	AD KAT+6
	RDV KAT+10
	AD KAT+5
	RDV KAT+10
	AD KAT+4
	RDV KAT+10
	AD KAT+3
	RDV KAT+10
	AD KAT+2
	RDV KAT+10
	AD TSQ+4
	MP KAT+11
	LFM
	TAD TSQ+7
	SPA SNA CLA
	JMP .+5
	EFM
	CHS
	AD KAT
	LFM
	TAD TSQ+2
	DCA ACS
	JMP I RSPC
KAT,	PIOT
	ATL
	XAT
	XAT+5
	XAT+10
	XAT+13
	XAT+2
	XAT+16
	SCR1
	SCR2
XAT,	0002
	7000
	0006
	6622
	2322
	0000
	6161
	6351
	0004
	7743
	0460
	7776
	6456
	2636
	7775
	7353
	1611
COS,	DCA ACS		/COSINE
	JMS I SVPC
	AD KR1
	JP .+1
	SIN+1
KS1,	SCR1
	SCR2
	SCR3
KR1,	PIOT
	FXQ
	ONE
	0000
SCOS,	.+1
SCOX,	HLT
	RDV KS1+1
	MP KS1+1
	CHS
	AD KR1+2
	ST KS1+2
	JP SCOX
SIN,	JMS I SVPC	/SINE
	LFM
	TAD ACS
	DCA KR1+3
	DCA ACS
	EFM
	DV KR1
	ST KS1
	LFM
	JMS I KR1+1
	RTR
	DCA SCOX
	CLA RAR
	TAD KR1+3
	DCA KR1+3
	DCA ACH
	TAD ACL
	DFLO
	CHS
	AD KS1
	ST KS1
	LFM
	TAD SCOX
	SMA
	JMP .+5
	EFM
	LD KR1+2
	SB KS1
	LFM
	EFM
	MP KR1
	ST KS1
	MP KS1
	ST KS1+1
	LD KR1+2
	ST KS1+2
	0322
	JS SCOS
	0234
	JS SCOS
	0156
	JS SCOS
	0110
	JS SCOS
	0052
	JS SCOS
	0024
	JS SCOS
	0006
	JS SCOS
	MP KS1
	LFM
	TAD KR1+3
	DCA ACS
	JMP I RSPC
/	SAMPLE USER OUTPUT ROUTINE
/	USES 'PRINTA' IN FIELD '0'
UOR,	HLT
	TLS
	JMP I UOR
UIR,	HLT
	KRB
	JMP I UIR
/	SAMPLE USER-DEFINED FUNCTION
USER,	JMS I SVPC	/SAVE FPC AND EFM
/	ANY CODE (SEE TEXT)
	JMP I RSPC	/RESTORE AND RETURN
$$$$$$$$$$$$$$$$



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search