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


RALF V50A    8-APR-92    PAGE 1

            /R=ATAN2(R1,R2) SINGLE PREC. ARC-TANGENT 2-ARGS
            /
            /
            / VERSION 50A 27-MAY-80 WVDM
            /
            /
                    SECT    ATAN2
00000 1030          JA      #ATAN2
00001 0047  
00002 0124          TEXT    +ATAN2 +
00003 0116  
00004 6240  
00005 1100  ATN2XR, SETX    XRATN2
00006 0014  
00007 1110          SETB    BPATN2
00010 0011  
00011 0040  BPATN2, FNOP
00012 0000          0
00013 0000          0
00014 0000  XRATN2, F 0.0
00015 0000  
00016 0000  
00017 0000  YCOR,   F 0.0
00020 0000  
00021 0000  
00022 0000  XCOR,   F 0.0
00023 0000  
00024 0000  
00025 0002  FPIAT2, 2                       /PI
00026 3110          3110
00027 3755          3755
00030 0001  ATPI,   F 1.570796              /PI/2
00031 3110  
00032 3753  
                    ORG     10*3+BPATN2
00041 0040          FNOP
00042 1030          JA      ATN2XR
00043 0005  
00044 0000          0
00045 1030  AT2RTN, JA      .
00046 0045  
            /
                    BASE    0
00047 0006  #ATAN2, STARTD
00050 0210          FLDA    10*3
00051 6400          FSTA    AT2RTN
00052 0045  
00053 0200          FLDA    0
00054 1100          SETX    XRATN2
00055 0014  
00056 1110          SETB    BPATN2
00057 0011  
                    BASE    BPATN2
00060 0101          LDX     1,1
00061 0001  
00062 6200          FSTA    BPATN2
RALF V50A    8-APR-92    PAGE 1-1

00063 0610          FLDA%   BPATN2,1        /ADDR OF Y
00064 6202          FSTA    YCOR
00065 0710          FLDA%   BPATN2,1+       /ADDR OF X
00066 6203          FSTA    XCOR
00067 0005          STARTF
00070 0602          FLDA%   YCOR            /GET Y - THE TAN
00071 6202          FSTA    YCOR            /SAVE FOR A SECOND
00072 0102          LDX     1,2             /POSITIVE X
00073 0001  
00074 1000          JEQ     ATN0
00075 0140  
00076 1060          JGT     ATN1
00077 0102  
00100 0102          LDX     0,2
00101 0000  
00102 0603  ATN1,   FLDA%   XCOR            /GET X - THE QUADRAND
00103 6203          FSTA    XCOR            /+MOVE IT TO A SAFE PLACE
00104 1000          JEQ     ATASP
00105 0132  
00106 0202          FLDA    YCOR            /Y/X
00107 3203          FDIV    XCOR
00110 6202          FSTA    YCOR
                    EXTERN  ATAN
00111 1130          JSR     ATAN            /CALL ATAN
00112 0000  
00113 1030          JA      .+4             /TAKE ARCTAN OF Y/X
00114 0117  
00115 1030          JA      YCOR
00116 0017  
00117 6202          FSTA    YCOR            /SAVE IT AWAY
00120 1010          JGE     A2              /SKIP IF 1 OR 3 Q
00121 0124  
00122 1204          FADD    FPIAT2          /ADD PI FOR 4TH Q
00123 6202          FSTA    YCOR
00124 2020  A2,     JXN     AT2RTN,2
00125 0045  
00126 0202          FLDA    YCOR
00127 2204          FSUB    FPIAT2          /SUB PI FOR 2ND+3RD QUADS
00130 1030          JA      AT2RTN
00131 0045  
            /
00132 0205  ATASP,  FLDA    ATPI            /X=0 MEANS +-PI/2
00133 2020          JXN     ATNG,2
00134 0136  
00135 0003          FNEG
00136 1030  ATNG,   JA      AT2RTN
00137 0045  
            /
00140 0603  ATN0,   FLDA%   XCOR
00141 1050          JLT     POSX            /IF X POS,ANS IS 0
00142 0146  
00143 0002          FCLA
00144 1030          JA      AT2RTN
00145 0045  
00146 0204  POSX,   FLDA    FPIAT2          /OTHERWISE,ANS IS PI
00147 1030          JA      AT2RTN
RALF V50A    8-APR-92    PAGE 1-2

00150 0045  
RALF V50A    8-APR-92    PAGE 2

            
RALF V50A    8-APR-92    PAGE 2-1

NO ERRORS 
17 SYMBOLS, NO ABS REFS 

 #      C 00000   #ATAN2   00047   #MAIN  S 00000   ATAN   X 00000  
 ATAN2  S 00151   ATASP    00132   ATNG     00136   ATN0     00140  
 ATN1     00102   ATN2XR   00005   ATPI     00030   AT2RTN   00045  
 A2       00124   BPATN2   00011   FPIAT2   00025   POSX     00146  
 XCOR     00022   XRATN2   00014   YCOR     00017