File: ALOG.LS of Disk: V50/Source/Source-Listing-RALF-1
(Source file text)
RALF V50A 8-APR-92 PAGE 1 /R=ALOG(R) SINGLE PREC. NATURAL LOGARITHM / / / VERSION 50A 26-MAY-80 WVDM / / SECT ALOG 00000 1030 JA #ALOG 00001 0113 00002 0000 0 /WORKING SPACE FOR EXPONENT DIDDLE. 00003 0000 0 00004 0000 0 00005 0000 ALOGTM, 0 00006 0000 0 00007 0000 0 00010 0000 0 / EXTERN #ARGER 00011 4000 ALOGER, TRAP4 #ARGER 00012 0000 00013 0114 TEXT +ALOG + 00014 1707 00015 4040 00016 1100 ALOGXR, SETX XRALOG 00017 0025 00020 1110 SETB BPALOG 00021 0022 00022 0000 BPALOG, F 0.0 00023 0000 00024 0000 00025 0000 XRALOG, F 0.0 00026 0000 00027 0000 00030 0000 ALOG1, F 0.0 00031 0000 00032 0000 00033 0000 ALOG2, F 0.0 00034 0000 00035 0000 00036 0001 F1ALOG, F 1. 00037 2000 00040 0000 00041 0002 F2ALOG, F 2. 00042 2000 00043 0000 / 00044 0000 ALOGMG, 0 00045 0000 0 00046 0013 13 00047 0000 ALOGP1, 0 /CORRECT EXPONENT DIDDLERS 00050 0000 0 00051 0001 1 / ORG 10*3+BPALOG 00052 0040 FNOP 00053 1030 JA ALOGXR RALF V50A 8-APR-92 PAGE 1-1 00054 0016 00055 0000 0 00056 1030 ALGRTN, JA . 00057 0056 / 00060 0000 ALOGE2, 0 /.69314718 = LN(2) 00061 2613 2613 00062 4414 4414 / 00063 0000 ALOGL1, 0 /.99999642 00064 3777 3777 00065 7742 7742 / 00066 7777 ALOGL2, 7777 /-.49987411 00067 4000 4000 00070 4100 4100 / 00071 7777 ALOGL3, 7777 /.33179903 00072 2517 2517 00073 0310 0310 / 00074 7776 ALOGL4, 7776 /-.24073383 00075 4113 4113 00076 7211 7211 / 00077 7776 ALOGL5, 7776 /.16765407 00100 2535 2535 00101 3301 3301 / 00102 7775 ALOGL6, 7775 /-.09532939 00103 4746 4746 00104 0771 0771 / 00105 7774 ALOGL7, 7774 /.03608850 00106 2236 2236 00107 4304 4304 / 00110 7771 ALOGL8, 7771 /-.00645355 00111 4544 4544 00112 1735 1735 / BASE 0 00113 0006 #ALOG, STARTD 00114 0210 FLDA 10*3 00115 6400 FSTA ALGRTN 00116 0056 00117 0200 FLDA 0 00120 1100 SETX XRALOG 00121 0025 00122 1110 SETB BPALOG 00123 0022 BASE BPALOG 00124 0101 LDX 1,1 00125 0001 00126 6200 FSTA BPALOG 00127 0610 FLDA% BPALOG,1 /ADDR OF X RALF V50A 8-APR-92 PAGE 1-2 00130 6200 FSTA BPALOG 00131 0005 STARTF 00132 0600 FLDA% BPALOG /GET X 00133 1020 JLE ALOGER /IF =<0 THEN ERROR 00134 0011 00135 0100 LDX -1,0 /IF >0 THEN START DOING 00136 7777 00137 6202 FSTA ALOG1 /SAVE IN A TEMP. 00140 2204 FSUB F1ALOG /KNOCK OFF ONE. 00141 1000 JEQ ALGRTN /IF ZERO EXIT. LOG(1)=0 00142 0056 00143 1010 JGE ALOGST /IF POSITIVE LOG>0 00144 0154 00145 0204 FLDA F1ALOG /NEGATIVE. INVERT IT. 00146 3202 FDIV ALOG1 /BY DIVIDING INTO ONE. 00147 6202 FSTA ALOG1 00150 0100 LDX 0,0 /RESET SIGN TO NEGATIVE. 00151 0000 00152 1030 JA .+3 /AVOID USELESS LOAD INSTRUCTION. 00153 0155 / 00154 0202 ALOGST, FLDA ALOG1 /RECALL NUMBER. 00155 3205 FDIV F2ALOG /CUT IN HALF. 00156 6400 FSTA ALOGTM /PREPARE FOR EXPONENT DIDDLE. 00157 0005 00160 0206 FLDA ALOGMG /SET THE EXPONENT OF THE EXPONENT TO 13. 00161 6400 FSTA ALOGTM-3 /SO THAT NORMALIZE WILL DO JOB. 00162 0002 00163 6400 FSTA ALOGTM+1 /AND ALSO ZERO LOW ORDER PART OF EX. MANT. 00164 0006 00165 0400 FLDA ALOGTM-1 /RECALL THE NUMBER 00166 0004 00167 0004 FNORM /NORMALIZE IT. 00170 4212 FMUL ALOGE2 /NOW MULTIPLY EXPONENT BY LOG E 2 00171 6203 FSTA ALOG2 /AND SAVE IT FOR A SECOND. 00172 0202 FLDA ALOG1 /RECALL THE NUMBER AGAIN. 00173 6400 FSTA ALOGTM /STORE IN THE TEMPORARY WORKER. 00174 0005 00175 0207 FLDA ALOGP1 /RECALL WORD WITH LOW ORDER ONE. 00176 6400 FSTA ALOGTM-2 /STORE AWAY. 00177 0003 00200 0400 FLDA ALOGTM /RECALL NUMBER WITH AN EXPONENT OF 1 00201 0005 00202 2204 FSUB F1ALOG /SUBTRACT AWAY. 00203 6202 FSTA ALOG1 /AND STORE 00204 4222 FMUL ALOGL8 /MULTIPLY BY THE CONSTANT. 00205 1221 FADD ALOGL7 /ADD IN 00206 4202 FMUL ALOG1 /MULT. 00207 1220 FADD ALOGL6 /AND SO ON DOWN THE LINE. 00210 4202 FMUL ALOG1 00211 1217 FADD ALOGL5 00212 4202 FMUL ALOG1 00213 1216 FADD ALOGL4 00214 4202 FMUL ALOG1 00215 1215 FADD ALOGL3 00216 4202 FMUL ALOG1 RALF V50A 8-APR-92 PAGE 1-3 00217 1214 FADD ALOGL2 00220 4202 FMUL ALOG1 00221 1213 FADD ALOGL1 00222 4202 FMUL ALOG1 00223 1203 FADD ALOG2 /CORRECT NOW.ADD IN EXPONENT. 00224 2000 JXN ALGRTN,0 /EXIT IF SIGN IS OK. 00225 0056 00226 0003 FNEG /ELSE NEGATE IT. 00227 1030 JA ALGRTN 00230 0056 RALF V50A 8-APR-92 PAGE 2 RALF V50A 8-APR-92 PAGE 2-1 NO ERRORS 25 SYMBOLS, NO ABS REFS # C 00000 #ALOG 00113 #ARGER X 00000 #MAIN S 00000 ALGRTN 00056 ALOG S 00231 ALOGER 00011 ALOGE2 00060 ALOGL1 00063 ALOGL2 00066 ALOGL3 00071 ALOGL4 00074 ALOGL5 00077 ALOGL6 00102 ALOGL7 00105 ALOGL8 00110 ALOGMG 00044 ALOGP1 00047 ALOGST 00154 ALOGTM 00005 ALOGXR 00016 ALOG1 00030 ALOG2 00033 BPALOG 00022 F1ALOG 00036 F2ALOG 00041 XRALOG 00025