Commit | Line | Data |
---|---|---|
81e70d48 PH |
1 | / |
2 | / | |
3 | / | |
4 | / D A T A N 2 | |
5 | / - - - - - - | |
6 | / | |
7 | /SUBROUTINE DATAN2(Y,X) | |
8 | / | |
9 | / VERSION 5A 4-27-77 PT | |
10 | / | |
11 | SECT DATAN2 | |
12 | JA #DATN2 | |
13 | DPCHK | |
14 | TEXT +DATAN2+ | |
15 | ATN2XR, SETX XRATN2 | |
16 | SETB BPATN2 | |
17 | BPATN2, FNOP | |
18 | 0 | |
19 | 0 | |
20 | XRATN2, F 0.0 | |
21 | YCOR, F 0.0 | |
22 | 0;0;0 | |
23 | XCOR, F 0.0 | |
24 | 0;0;0 | |
25 | ORG 10*3+BPATN2 | |
26 | FNOP | |
27 | JA ATN2XR | |
28 | 0 | |
29 | AT2RTN, JA . | |
30 | FPIAT2, 2 | |
31 | 3110 /PI | |
32 | 3755 | |
33 | 2421 | |
34 | 0264 | |
35 | 3016 | |
36 | ATPI, 0001 | |
37 | 3110 /PI/2 | |
38 | 3755 | |
39 | 2421 | |
40 | 0264 | |
41 | 3016 | |
42 | BASE 0 | |
43 | #DATN2, STARTD | |
44 | FLDA 10*3 | |
45 | FSTA AT2RTN | |
46 | FLDA 0 | |
47 | SETX XRATN2 | |
48 | SETB BPATN2 | |
49 | BASE BPATN2 | |
50 | LDX 1,1 | |
51 | FSTA BPATN2 | |
52 | FLDA% BPATN2,1 /ADDR OF Y | |
53 | FSTA YCOR | |
54 | FLDA% BPATN2,1+ /ADDR OF X | |
55 | FSTA XCOR | |
56 | STARTE | |
57 | FLDA% YCOR | |
58 | FSTA YCOR /SAVE FOR A SECOND | |
59 | LDX 1,2 /POSITIVE Y | |
60 | JEQ ATN0 | |
61 | JGT ATN1 | |
62 | LDX 0,2 | |
63 | ATN1, FLDA% XCOR /GET X - THE QUADRAND | |
64 | FSTA XCOR /+MOVE IT TO A SAFE PLACE | |
65 | JEQ ATASP | |
66 | FLDA YCOR /Y/X | |
67 | FDIV XCOR | |
68 | FSTA YCOR | |
69 | EXTERN DATAN | |
70 | JSR DATAN /CALL ATAN | |
71 | JA .+4 /TAKE ARCTAN OF Y/X | |
72 | JA YCOR | |
73 | FSTA YCOR /SAVE IT AWAY | |
74 | JGE A2 /SKIP IF 1ST OR 3RD QUADS | |
75 | FADD FPIAT2 /ADD PI FOR 4TH QUAD | |
76 | FSTA YCOR | |
77 | A2, JXN AT2RTN,2 /DONE IF 1 OR 4 Q | |
78 | FLDA YCOR | |
79 | FSUB FPIAT2 /2ND OR 3RD Q | |
80 | JA AT2RTN | |
81 | ATASP, FLDA ATPI /PI/2 | |
82 | JXN ATNG,2 | |
83 | FNEG | |
84 | ATNG, JA AT2RTN | |
85 | ATN0, FLDA% XCOR | |
86 | JLT POSX | |
87 | FCLA /X POS, ANS =0 | |
88 | JA AT2RTN | |
89 | POSX, FLDA FPIAT2 /X LT 0, ANS = PI | |
90 | JA AT2RTN | |
91 | \f |