software: Added more and more
[pdp8.git] / sw / f4 / FRTSRC / exp.ra
1 /
2 /
3 / E X P
4 / - - -
5 /
6 /SUBROUTINE EXP(X)
7 /
8 / VERSION 5A 4-27-77 PT
9 /
10 SECT EXP
11 JA #EXP
12 0
13 EXPFUD, 0
14 0
15 0
16 /
17 EXTERN #ARGER
18 EXPER, TRAP4 #ARGER
19 TEXT +EXP +
20 EXPXR, SETX XREXP
21 SETB BPEXP
22 BPEXP, F 0.0
23 XREXP, F 0.0
24 EXP1, F 0.0
25 EXP2, F 0.0
26 EXP33, F 0.0
27 EXP4, F 0.0
28 F1EXP, F 1.
29 F2EXP, F 2.
30 ORG 10*3+BPEXP
31 FNOP
32 JA EXPXR
33 0
34 EXPRTN, JA .
35 /
36 EXPAF, 4
37 2372
38 1402
39 /
40 EXPBF, 7774
41 2157
42 5157
43 /
44 EXPCF, 12
45 5454
46 343
47 /
48 EXPDF, 7
49 2566
50 5341
51 /
52 EXP2E, 1
53 2705
54 2435
55 BASE 0
56 #EXP, STARTD
57 FLDA 10*3
58 FSTA EXPRTN
59 FLDA 0
60 SETX XREXP
61 SETB BPEXP
62 BASE BPEXP
63 LDX 1,1
64 FSTA BPEXP
65 FLDA% BPEXP,1 /ADDR OF X
66 FSTA BPEXP
67 STARTF
68 FLDA% BPEXP /GET X
69 LDX -1,0 /PRESERVE SIGN.
70 JGE .+5
71 FNEG /IF NEGATIVE NEGATE IT.
72 LDX 0,0 /AND REMEMBER IT,BUBBY.
73 FMUL EXP2E /MULTIPLY TO BINARY TYPE.
74 FSTA EXP1 /AND SAVE IT AWAY.
75 JAL EXPER /CAN T FIX IT, ERROR.
76 ALN 0 /FIX IT UP.
77 FSTA EXP33 /AND SAVE IT.
78 FNORM /NOW NORMALIZE FOR OUR COMPUTATIONS.
79 FNEG /NEGATE THE FAC
80 FADD EXP1 /ADD IN BEFORE NORMAL.
81 FSTA EXP1 /AND STORE BACK. NO FADDM
82 FMUL EXP1 /NOW SQUARE IT.
83 FSTA EXP2 /AND SAVE IT.
84 FADD EXPDF /START THE ITERATION.
85 FSTA EXP4 /SAVE IN ANOTHER TEMP.
86 FLDA EXPCF /NEXT CONSTANT.
87 FDIV EXP4 /AND DIVIDE INTO IT.
88 FSUB EXP1 /SUBTRACT BACK NOW.
89 FADD EXPAF /NEXT CONSTANT.
90 FSTA EXP4 /AND SAVE AGAIN. KEEP THIS UP.
91 FLDA EXPBF
92 FMUL EXP2
93 FADDM EXP4
94 FLDA EXP1
95 FDIV EXP4
96 FMUL F2EXP
97 FADD F1EXP
98 FSTA EXPFUD /NOW FIDDLE THE EXPONENT.
99 STARTD
100 FLDA EXP33
101 FADDM EXPFUD-1 /EXPONENT UPDATE.
102 STARTF
103 JXN EXPP,0 /NO INVERSION NECESSARY. RETURN.
104 FLDA F1EXP /INVERT IT
105 FDIV EXPFUD
106 JA EXPRTN
107 EXPP, FLDA EXPFUD /AN EXIT.
108 JA EXPRTN
109 \f