File: EXPDI.LS of Disk: V50/Source/Source-Listing-RALF-1
(Source file text) 


RALF V50A    8-APR-92    PAGE 1

            / D=D**I INTERNAL EXPONENTIATION FUNCTION
            /
            /
            / VERSION 50A 28-MAY-80 WVDM
            /
            /
                    SECT    #EXPDI
                    DPCHK
                    BASE    0
00000 1030  EXPDI,  JA      .
00001 0000  
00002 6400          FSTA    SIGN            /SAVE SIGN OF EXPONENT
00003 0130  
00004 1010          JGE     POSINT          /ITS POSITIVE
00005 0007  
00006 0003          FNEG
00007 6400  POSINT, FSTA    EXP
00010 0141  
00011 0031          XTA     1               /SAVE XR 1
00012 6400          FSTA    XR1
00013 0136  
00014 0101          LDX     -27,1           /BIT COUNT
00015 7751  
00016 0050          STARTE
00017 0400          FLDA    ONE             /START WITH ONE
00020 0111  
00021 6400          FSTA    PROD
00022 0122  
00023 0005          STARTF
00024 0400          FLDA    EXP
00025 0141  
00026 1000  LOOP,   JEQ     YES             /DONE IF ITS ZERO
00027 0057  
00030 3400          FDIV    TWO             /DIVIDE BY TWO
00031 0117  
00032 0010          ALN     0               /INTEGERIZE
00033 0004          FNORM
00034 6400          FSTA    TEMP            /SAVE AT
00035 0133  
00036 4400          FMUL    TWO             /IS EXPONENT ODD ?
00037 0117  
00040 2400          FSUB    EXP
00041 0141  
00042 0050          STARTE
00043 1050          JLT     ODD             /YES, JUMP
00044 0102  
00045 0200  SQUARE, FLDA    0               /SQUARE BASE
00046 4200          FMUL    0
00047 6200          FSTA    0
00050 0005          STARTF
00051 0400          FLDA    TEMP            /EXPONENT OVER 2
00052 0133  
00053 6400          FSTA    EXP
00054 0141  
00055 2110          JXN     LOOP,1+         /LOOP IF MORE BITS
00056 0026  
RALF V50A    8-APR-92    PAGE 1-1

00057 0400  YES,    FLDA    XR1             /DONE, RESTORE XR 1
00060 0136  
00061 0021          ATX     1
00062 0400          FLDA    SIGN            /CHECK SIGN OF EXPONENT
00063 0130  
00064 1050          JLT     INVERT          /IT WS NEGATIVE, INVERT RESULT
00065 0073  
00066 0050          STARTE
00067 0400          FLDA    PROD            /RETURN ANSWER
00070 0122  
00071 1030          JA      EXPDI
00072 0000  
00073 0050  INVERT, STARTE
00074 0400          FLDA    ONE             /RETURN WITH 1/PROD
00075 0111  
00076 3400          FDIV    PROD
00077 0122  
00100 1030          JA      EXPDI
00101 0000  
00102 0200  ODD,    FLDA    0
00103 4400          FMUL    PROD
00104 0122  
00105 6400          FSTA    PROD
00106 0122  
00107 1030          JA      SQUARE          /GO SQUARE THE BASE
00110 0045  
            /
00111 0001  ONE,    F       1.0
00112 2000  
00113 0000  
00114 0000          F       0.0
00115 0000  
00116 0000  
00117 0002  TWO,    F       2.0
00120 2000  
00121 0000  
00122 0000  PROD,   F       0.0
00123 0000  
00124 0000  
00125 0000          F       0.0
00126 0000  
00127 0000  
00130 0000  SIGN,   F       0.0
00131 0000  
00132 0000  
00133 0000  TEMP,   F       0.0
00134 0000  
00135 0000  
00136 0000  XR1,    F       0.0
00137 0000  
00140 0000  
00141 0000  EXP,    F       0.0
00142 0000  
00143 0000  
00144 0000          F       0.0
00145 0000  
RALF V50A    8-APR-92    PAGE 1-2

00146 0000  
RALF V50A    8-APR-92    PAGE 1-3

NO ERRORS 
15 SYMBOLS, NO ABS REFS 

 #      C 00000   #EXPDI S 00147   #MAIN  S 00000   EXP      00141  
 EXPDI    00000   INVERT   00073   LOOP     00026   ODD      00102  
 ONE      00111   POSINT   00007   PROD     00122   SIGN     00130  
 SQUARE   00045   TEMP     00133   TWO      00117   XR1      00136  
 YES      00057