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


RALF V50A    8-APR-92    PAGE 1

            /COMPLEX ARITHMETIC ROUTINES
            / (A+BI)+-*/(C+DI)
            /
            / VERSION 50A 23-MAY-80 WVDM
            /
            /
                    DPCHK
            
                    SECT    #CAD
00000 1030          JA      .
00001 0000  
00002 6400          FSTA    #CARG           /SAVE SECOND ARG
00003 0273  
00004 0005          STARTF
00005 0400          FLDA    #CARG           /STARTF ROUNDS
00006 0273  
00007 1400          FADD    #CAC            /A:=A+C
00010 0301  
00011 6400          FSTA    #CAC
00012 0301  
00013 0400          FLDA    #CARG+3
00014 0276  
00015 1400          FADD    #CAC+3          /B:=B+D
00016 0304  
00017 6400          FSTA    #CAC+3
00020 0304  
00021 0050          STARTE
00022 1030          JA      #CAD
00023 0000  
            
                    ENTRY   #CSB
00024 1030  #CSB,   JA      .
00025 0024  
00026 6400          FSTA    #CARG
00027 0273  
00030 0005          STARTF
00031 0400          FLDA    #CAC            /STARTF ROUNDS
00032 0301  
00033 2400          FSUB    #CARG
00034 0273  
00035 6400          FSTA    #CAC            /A:=A-C
00036 0301  
00037 0400          FLDA    #CAC+3
00040 0304  
00041 2400          FSUB    #CARG+3         /B:=B-D
00042 0276  
00043 6400          FSTA    #CAC+3
00044 0304  
00045 0050          STARTE
00046 1030          JA      #CSB
00047 0024  
            
                    ENTRY   #CNG
00050 1030  #CNG,   JA      .
00051 0050  
00052 0005          STARTF
RALF V50A    8-APR-92    PAGE 1-1

00053 0400          FLDA    #CAC
00054 0301  
00055 0003          FNEG
00056 6400          FSTA    #CAC            /A:=-A
00057 0301  
00060 0400          FLDA    #CAC+3
00061 0304  
00062 0003          FNEG
00063 6400          FSTA    #CAC+3          /B:=-B
00064 0304  
00065 0050          STARTE
00066 1030          JA      #CNG
00067 0050  
            
                    ENTRY   #CEQ
00070 1030  #CEQ,   JA      .
00071 0070  
00072 1120          JSA     #CSB            /CAC:=CAC-CARG
00073 0024  
00074 0005          STARTF
00075 0400          FLDA    #CAC
00076 0301  
00077 1040          JNE     NOTEQ
00100 0111  
00101 0400          FLDA    #CAC+3
00102 0304  
00103 1040          JNE     NOTEQ
00104 0111  
00105 0400          FLDA    ONE
00106 0114  
00107 1030          JA      #CEQ
00110 0070  
00111 0002  NOTEQ,  FCLA
00112 1030          JA      #CEQ
00113 0070  
00114 0001  ONE,    F       1.0
00115 2000  
00116 0000  
            
                    ENTRY   #CML
00117 1030  #CML,   JA      .
00120 0117  
00121 6400          FSTA    #CARG
00122 0273  
00123 0005          STARTF
00124 0400          FLDA    #CARG           /STARTF ROUNDS
00125 0273  
00126 4400          FMUL    #CAC            /T1:=A*C
00127 0301  
00130 6400          FSTA    TEMP1
00131 0265  
00132 0400          FLDA    #CARG+3
00133 0276  
00134 4400          FMUL    #CAC+3          /T2:=B*D
00135 0304  
00136 6400          FSTA    TEMP2
RALF V50A    8-APR-92    PAGE 1-2

00137 0270  
00140 0400          FLDA    #CARG
00141 0273  
00142 4400          FMUL    #CAC+3          /B:=B*C
00143 0304  
00144 6400          FSTA    #CAC+3
00145 0304  
00146 0400          FLDA    #CAC
00147 0301  
00150 4400          FMUL    #CARG+3         /A*D
00151 0276  
00152 1400          FADD    #CAC+3          /B:=A*D+B*C
00153 0304  
00154 6400          FSTA    #CAC+3
00155 0304  
00156 0400          FLDA    TEMP1
00157 0265  
00160 2400          FSUB    TEMP2           /A:=A*C-B*D
00161 0270  
00162 6400          FSTA    #CAC
00163 0301  
00164 0050          STARTE
00165 1030          JA      #CML
00166 0117  
            
                    ENTRY   #CDV
00167 1030  #CDV,   JA      .
00170 0167  
00171 6400          FSTA    #CARG
00172 0273  
00173 0005          STARTF
00174 0400          FLDA    #CARG           /STARTF ROUNDS
00175 0273  
00176 4400          FMUL    #CAC+3          /T1:=B*C
00177 0304  
00200 6400          FSTA    TEMP1
00201 0265  
00202 0400          FLDA    #CARG+3
00203 0276  
00204 4400          FMUL    #CAC            /T2:=A*D
00205 0301  
00206 6400          FSTA    TEMP2
00207 0270  
00210 0400          FLDA    #CARG
00211 0273  
00212 4400          FMUL    #CAC            /A:=A*C
00213 0301  
00214 6400          FSTA    #CAC
00215 0301  
00216 0400          FLDA    #CAC+3
00217 0304  
00220 4400          FMUL    #CARG+3         /B*D
00221 0276  
00222 1400          FADD    #CAC            /A:=A*C+B*D
00223 0301  
00224 6400          FSTA    #CAC
RALF V50A    8-APR-92    PAGE 1-3

00225 0301  
00226 0400          FLDA    #CARG
00227 0273  
00230 4400          FMUL    #CARG           /C:=C*C
00231 0273  
00232 6400          FSTA    #CARG
00233 0273  
00234 0400          FLDA    #CARG+3
00235 0276  
00236 4400          FMUL    #CARG+3         /D*D
00237 0276  
00240 1400          FADD    #CARG           /C:=C*C+D*D
00241 0273  
00242 6400          FSTA    #CARG
00243 0273  
00244 0400          FLDA    TEMP1
00245 0265  
00246 2400          FSUB    TEMP2           /B*C-A*D
00247 0270  
00250 3400          FDIV    #CARG           /B:=(B*C-A*D)/(C*C+D*D)
00251 0273  
00252 6400          FSTA    #CAC+3
00253 0304  
00254 0400          FLDA    #CAC
00255 0301  
00256 3400          FDIV    #CARG           /A:=(A*C+B*D)/(C*C+D*D)
00257 0273  
00260 6400          FSTA    #CAC
00261 0301  
00262 0050          STARTE
00263 1030          JA      #CDV
00264 0167  
            
00265 0000  TEMP1,  0;0;0
00266 0000  
00267 0000  
00270 0000  TEMP2,  0;0;0
00271 0000  
00272 0000  
            
00273 0000  #CARG,  0;0;0
00274 0000  
00275 0000  
00276 0000          0;0;0
00277 0000  
00300 0000  
            
                    ENTRY   #CAC
00301 0000  #CAC,   0;0;0
00302 0000  
00303 0000  
00304 0000          0;0;0
00305 0000  
00306 0000  
RALF V50A    8-APR-92    PAGE 1-4

NO ERRORS 
12 SYMBOLS, NO ABS REFS 

 #      C 00000   #CAC     00301   #CAD   S 00307   #CARG    00273  
 #CDV     00167   #CEQ     00070   #CML     00117   #CNG     00050  
 #CSB     00024   #MAIN  S 00000   NOTEQ    00111   ONE      00114  
 TEMP1    00265   TEMP2    00270