A large commit.
[pdp8.git] / sw / os8 / v3d / sources / fortran / dectapes / dectape2 / atan2.ra
1 /
2 /
3 /
4 / A T A N 2
5 / - - - - -
6 /
7 /SUBROUTINE ATAN2(Y,X)
8 /
9 / VERSION 5A 4-27-77 PT
10 /
11 SECT ATAN2
12 JA #ATAN2
13 TEXT +ATAN2 +
14 ATN2XR, SETX XRATN2
15 SETB BPATN2
16 BPATN2, FNOP
17 0
18 0
19 XRATN2, F 0.0
20 YCOR, F 0.0
21 XCOR, F 0.0
22 FPIAT2, 2 /PI
23 3110
24 3755
25 ATPI, F 1.570796 /PI/2
26 ORG 10*3+BPATN2
27 FNOP
28 JA ATN2XR
29 0
30 AT2RTN, JA .
31 BASE 0
32 #ATAN2, STARTD
33 FLDA 10*3
34 FSTA AT2RTN
35 FLDA 0
36 SETX XRATN2
37 SETB BPATN2
38 BASE BPATN2
39 LDX 1,1
40 FSTA BPATN2
41 FLDA% BPATN2,1 /ADDR OF Y
42 FSTA YCOR
43 FLDA% BPATN2,1+ /ADDR OF X
44 FSTA XCOR
45 STARTF
46 FLDA% YCOR /GET Y - THE TAN
47 FSTA YCOR /SAV FOR A SECOND
48 LDX 1,2 /POSITIVE X
49 JEQ ATN0
50 JGT ATN1
51 LDX 0,2
52 ATN1, FLDA% XCOR /GET X - THE QUADRAND
53 FSTA XCOR /+MOVE IT TO A SAFE PLACE
54 JEQ ATASP
55 FLDA YCOR /Y/X
56 FDIV XCOR
57 FSTA YCOR
58 EXTERN ATAN
59 JSR ATAN /CALL ATAN
60 JA .+4 /TAKE ARCTAN OF Y/X
61 JA YCOR
62 FSTA YCOR /SAVE IT AWAY
63 JGE A2 /SKIP IF 1 OR 3 Q
64 FADD FPIAT2 /ADD PI FOR 4TH Q
65 FSTA YCOR
66 A2, JXN AT2RTN,2
67 FLDA YCOR
68 FSUB FPIAT2 /SUB PI FOR 2ND+3RD QUADS
69 JA AT2RTN
70 ATASP, FLDA ATPI /X=0 MEANS +-PI/2
71 JXN ATNG,2
72 FNEG
73 ATNG, JA AT2RTN
74 ATN0, FLDA% XCOR
75 JLT POSX /IF X POS,ANS IS 0
76 FCLA
77 JA AT2RTN
78 POSX, FLDA FPIAT2 /OTHERWISE,ANS IS PI
79 JA AT2RTN
80 \f