File POWERS.SB (8k SABR macro assembler source file)

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

/
/POWERS.V04
/8K FORTRAN LIBRARY
/COPYRIGHT 1969
/DIGITAL EQUIPMENT COPR., MAYNARD, MASS.
/
	ENTRY	IFPOW	/     INTEGER TO FLOATING POWER
	ENTRY	FFPOW	/     FLOATING TO FLOATING POWER
	ENTRY	EXP	/     E TO A POWER
	ENTRY	ALOG	/     NATURAL LOGARITHM
/
/
	DUMMY	LXP
	OPDEF	JMSKP	4000
/
/	INTERNAL SUBROUTINE POL
/
/	COMPUTES N TERMS OF POLYNOMIAL (NO CONSTANT TERM)
/	N IN AC ... X IN FLOATING AC
/	COEFFICIENTS START IN LOCATION WHOSE ADDRESS FOLLOWS JMS TO POL
/
POL2,	BLOCK	1
POL,	BLOCK	1
	CIA
	DCA	POL2
	CALL	1,STO
	ARG	X
	TAD I	POL
	INC	POL
/	DCA	ARG1#	/THIS CODE PROBABLY EXTRANEOUS
/	SKP
ARG2,	DCA	ARG1#
	CALL	1,FAD
ARG1,	ARG	EXS	/     ADDRESS STORED HERE
	CALL	1,FMP
	ARG	X
	ISZ	POL2
	JMP	POL1
	JMP I	POL
POL1,	TAD	ARG1#
	TAD	(3
	JMP	ARG2

	CPAGE	17	/     CANT BREAK UP THIS TABLE
EXS,	1464		/7.9608942E-9	CONSTANTS FOR EXP
	2142
	1421
	1545		/6.3578287E-7
	2525
	2525
	1625		/4.0690103E-5
	2525
	2525
	1704		/1.9531250E-3
	0000
	0000
	1754		/6.25E-2
	0000
	0000
	CPAGE	3
ONE,	2014
	0000
	0000
	CPAGE	30
COF,	5716		/-6.4535442E-3	CONSTANTS FOR LOGS
	4674
	1006
	1744		/3.6088494E-2
	4750
	6073
	5756		/-9.5329390E-2
	0636
	0162
	1765		/1.6765407E-1
	2726
	6023
	5767		/-2.4073380E-1
	5501
	3543
	1775		/3.3179902E-1
	2360
	6176
	5777		/-4.9987412E-1
	7767
	6001
	2007		/9.9999643E-1
	7777
	7041
	CPAGE	3
ER16,	2014		/1.0644944
	2040
	5326
	CPAGE	3
LN2,	1755		/8.6643397E-2
	4271
	0300

X,	BLOCK	3
Y,	BLOCK	3

/ / ALOG - NATURAL LOGARITHM / / ALOG(X)=N*ALOG(2)+ALOG(M) WHERE 1/2 OR EQUAL TO M / ALOG(M)=ALTERNATING SERIES (K**I)/I WHERE K=2M-1 AND M AS ABOVE / CPAGE 4 LGER, 0114 / "ALOG" ERROR AT LOC XXXXX 707 ALOG, BLOCK 2 / ENTRY POINT TAD ALOG DCA TEM TAD ALOG# DCA TEM# CALL 1,IFAD TEM, ARG 0 INC ALOG# INC ALOG# TAD ACH / GET EXPONENT SPA SNA JMP LGERR /LOG OF X<=0 - ERROR AND (3770 TAD (5770 / -2000 DCA TEM / N INTO TEM TAD ACH / GET M WITHOUT SIGN AND (7 TAD (2010 / 2M DCA ACH CALL 1,FSB / 2M-1 ARG ONE TAD (D8 / 8 TERMS OF SERIES JMS POL COF CALL 1,STO / ALOG(M) INTO Y ARG Y TAD TEM / GET N CALL 0,FLOT / FLOAT IT CALL 1,FMP / N *ALOG(2) ARG LN2 CALL 1,FAD / N *ALOG(2) ALOG(M)(ALOG(X) ARG Y RETRN ALOG / EXIT LGERR, CALL 1,ERROR ARG LGER
/ / EXP - E TO A POWER / / E**X=SERIES (X**I)/(I!) / IF B=E**(1/16) AND X IS BETWEEN -1 AND 1 THEN / B**X=1 SUMA(I)*(X**I) FOR I FROM I=1 TO I=5 / WHERE A(I)(1/((I!)*16**2)) / CPAGE 4 EXPER, 4530 2040 EXP, BLOCK 2 / ENTRY POINT TAD EXP DCA XT TAD EXP# DCA XT# INC EXP# INC EXP# CALL 1,IFAD XT, ARG 0 CLA CLL CMA RAR AND ACH TAD (-2075 SMA CLA TAD ACM CLL TAD (-4271 /TEST FOR FLTG. AC <88.2 SZL CLA JMP EXPERR TAD ACH SZA TAD (40 / X*16 DCA ACH CALL 1,STO / Y=16X ARG Y CALL 1,FAD / EXPRESS Y AS INTEGER N AND FRACTION F ARG Y CALL 0,FIX / GET N SMA IAC DCA ALOG / ALOG=N TAD ALOG / GET F CIA CALL 0,FLOT CALL 1,FAD ARG Y TAD (5 / 5 TERMS OF SERIES JMS POL EXS CALL 1,FAD / PLUS 1 ARG ONE CALL 1,STO / GIVES B**F ARG Y CALL 1,FAD / GET B ARG ER16 CALL 1,FIPOW ARG ALOG CALL 1,FMP / B**(N+F)=(B**16X)(E**X) ARG Y RETRN EXP / EXIT EXPERR, CALL 1,ERROR ARG EXPER TAD ACH SMA CLA CLL CMA RAR DCA ACH DCA ACM DCA ACL RETRN EXP
/ / IFPOW - INTEGER TO FLOATING POWER / / JUST FLOAT BASE AND GO TO FFPOW / IFPOW, BLOCK 2 / ENTRY POINT CALL 0,FLOT TAD IFPOW / FROM BANK DCA FFPOW / TO PROPER LOCATION TAD IFPOW# // FROM ADDRESS DCA FFPOW# /TO PROPER LOC JMP ML / SNEAK INTO ROUTINE / / FFPOW- FLOATING TO FLOATING POWER / / IDENTITY USED ... X**Y=EXP(Y*ALOG(X)) / CPAGE 4 FFPER, 4614 2027 FFPOW, BLOCK 2 / ENTRY POINT ML, TAD I FFPOW / GET CDF TO EXPONENT DCA LXP INC FFPOW# / INCREMENT TO EXPONENT ADDRESS TAD I FFPOW / GET EXPONENT ADDRESS DCA LXP# INC FFPOW# / INCREMENT FOR EXIT TAD I LXP / HIGH ORDER WORD OF EXPONENT SNA CLA / IS IT ZERO JMP FFP5 / YES ... RESULT=1 TAD ACH / BASE IS IN FLOATING POINT AC SPA JMP FFPERR SZA CLA / IF BASE EQUALS ZERO ... RESULT EQUALS ZERO JMP FFP1 RETRN FFPOW / ZERO RESULT EXIT FFP1, CALL 1,STO / SAVE BASE FFP2, ARG X CALL 1,ALOG ARG X CALL 1,FMP / Y*LOG(X) LXP, ARG 0 / ADDRESS STORED HERE CALL 1,STO ARG X CALL 1,EXP ARG X FFP6, RETRN FFPOW FFP5, CALL 0,CLEAR / ANYTHING TO ZERO POWER IS 1 TAD (2014 DCA ACH JMP FFP6 FFPERR, TAD (4000 DCA ACH CALL 1,ERROR ARG FFPER JMP FFP1 END



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