File: EXPII.LS of Disk: V50/Source/Source-Listing-RALF-1
(Source file text)
RALF V50A 8-APR-92 PAGE 1 /R=R**I INTERNAL FUNCTION (EXPONENT INTEGER) / / / VERSION 50A 27-MAY-80 WVDM / / SECT #EXPII BASE 0 00000 1030 JA . 00001 0000 00002 6400 FSTA SIGN /SAVE SIGN OF EXPONENT 00003 0110 00004 1010 JGE POSINT /ITS POSITIVE 00005 0007 00006 0003 FNEG 00007 6201 POSINT, FSTA 3 /PUT IT INTO 3 00010 0031 XTA 1 /SAVE XR 1 00011 6400 FSTA XR1 00012 0116 00013 0101 LDX -27,1 /BIT COUNT 00014 7751 00015 0400 FLDA ONE /START WITH ONE 00016 0077 00017 6400 FSTA PROD 00020 0105 00021 0201 FLDA 3 /GET EXPONENT 00022 1000 LOOP, JEQ YES /DONE IF ITS ZERO 00023 0047 00024 3400 FDIV TWO /DIVIDE BY TWO 00025 0102 00026 0010 ALN 0 /INTEGERIZE 00027 0004 FNORM 00030 6400 FSTA TEMP /SAVE AT 00031 0113 00032 4400 FMUL TWO /IS EXPONENT ODD ? 00033 0102 00034 2201 FSUB 3 00035 1050 JLT ODD /YES, JUMP 00036 0070 00037 0200 SQUARE, FLDA 0 /SQUARE BASE 00040 4200 FMUL 0 00041 6200 FSTA 0 00042 0400 FLDA TEMP /EXPONENT OVER 2 00043 0113 00044 6201 FSTA 3 00045 2110 JXN LOOP,1+ /LOOP IF MORE BITS 00046 0022 00047 0400 YES, FLDA XR1 /DONE, RESTORE XR 1 00050 0116 00051 0021 ATX 1 00052 0400 FLDA SIGN /CHECK SIGN OF EXPONENT 00053 0110 00054 1050 JLT INVERT /IT WAS NEGATIVE, INVERT RESULT 00055 0062 00056 0400 FLDA PROD /RETURN ANSWER 00057 0105 RALF V50A 8-APR-92 PAGE 1-1 00060 1030 JA #EXPII 00061 0000 / 00062 0400 INVERT, FLDA ONE /RETURN 1/PROD 00063 0077 00064 3400 FDIV PROD 00065 0105 00066 1030 JA #EXPII 00067 0000 / 00070 0200 ODD, FLDA 0 /MULT PROD BY BASE 00071 4400 FMUL PROD 00072 0105 00073 6400 FSTA PROD 00074 0105 00075 1030 JA SQUARE /GO SQUARE THE BASE 00076 0037 / 00077 0001 ONE, F 1.0 00100 2000 00101 0000 00102 0002 TWO, F 2.0 00103 2000 00104 0000 00105 0000 PROD, F 0.0 00106 0000 00107 0000 00110 0000 SIGN, F 0.0 00111 0000 00112 0000 00113 0000 TEMP, F 0.0 00114 0000 00115 0000 00116 0000 XR1, F 0.0 00117 0000 00120 0000 RALF V50A 8-APR-92 PAGE 1-2 NO ERRORS 13 SYMBOLS, NO ABS REFS # C 00000 #EXPII S 00121 #MAIN S 00000 INVERT 00062 LOOP 00022 ODD 00070 ONE 00077 POSINT 00007 PROD 00105 SIGN 00110 SQUARE 00037 TEMP 00113 TWO 00102 XR1 00116 YES 00047