| 1 | / |
| 2 | / |
| 3 | / A T A N |
| 4 | / - - - - |
| 5 | / |
| 6 | /SUBROUTINE ATAN(X) |
| 7 | / |
| 8 | / VERSION 5A 4-27-77 PT |
| 9 | / |
| 10 | SECT ATAN |
| 11 | JA #ATAN |
| 12 | TEXT +ATAN + |
| 13 | ATANXR, SETX XRATAN |
| 14 | SETB BPATAN |
| 15 | BPATAN, F 0.0 |
| 16 | XRATAN, F 0.0 |
| 17 | ATAN1, F 0.0 |
| 18 | ATAN22, F 0.0 |
| 19 | ATAN3, F 0.0 |
| 20 | ATAN4, F 0.0 |
| 21 | F1ATAN, F 1. |
| 22 | ORG 10*3+BPATAN |
| 23 | FNOP |
| 24 | JA ATANXR |
| 25 | 0 |
| 26 | ATNRTN, JA . |
| 27 | / |
| 28 | ATANC1, -15 /LOWER LIMIT TEST. |
| 29 | 2000 |
| 30 | 0000 |
| 31 | / |
| 32 | ATANC2, 0 /UPPER LIMIT TEST. |
| 33 | 3777 |
| 34 | 7000 |
| 35 | / |
| 36 | ATANC3, -1 |
| 37 | 2111 |
| 38 | 4121 |
| 39 | / |
| 40 | ATANC4, 1 |
| 41 | 3355 |
| 42 | 4754 |
| 43 | / |
| 44 | ATANC5, 0 |
| 45 | 2060 |
| 46 | 2511 |
| 47 | / |
| 48 | ATANC6, -3 |
| 49 | 3023 |
| 50 | 1227 |
| 51 | / |
| 52 | ATANC7, -2 |
| 53 | 5566 |
| 54 | 7220 |
| 55 | / |
| 56 | ATANC8, -2 |
| 57 | 3146 |
| 58 | 0740 |
| 59 | / |
| 60 | ATANC9, -1 |
| 61 | 5252 |
| 62 | 5262 |
| 63 | / |
| 64 | ATANCH, 1 |
| 65 | 3110 |
| 66 | 3755 |
| 67 | / |
| 68 | ATANCJ, F -4. |
| 69 | BASE 0 |
| 70 | #ATAN, STARTD |
| 71 | FLDA 10*3 |
| 72 | FSTA ATNRTN |
| 73 | FLDA 0 |
| 74 | SETX XRATAN |
| 75 | SETB BPATAN |
| 76 | BASE BPATAN |
| 77 | LDX 1,1 |
| 78 | FSTA BPATAN |
| 79 | FLDA% BPATAN,1 /ADDR OF X |
| 80 | FSTA BPATAN |
| 81 | STARTF |
| 82 | FLDA% BPATAN /GET X |
| 83 | LDX -1,0 /REMEMBER SIGN |
| 84 | JGE .+5 |
| 85 | LDX 0,0 /SAVE THE SIGN. |
| 86 | FNEG /NEGATE THE FAC [ABS] |
| 87 | FSTA ATAN1 /AND STORE AWAY. |
| 88 | FSTA ATAN22 |
| 89 | FSUB ATANC1 /TEST TO SEE IF TOO SMALL. |
| 90 | JLE ATANBG /IT IS. ATAN(X)=X |
| 91 | FSUB ATANC2 /TEST TO SEE IF TOO BIG. |
| 92 | JLE ATANLW /IT ISNT. |
| 93 | FLDA F1ATAN /TO BIG. INVERT IT. |
| 94 | FDIV ATAN1 |
| 95 | FSTA ATAN1 |
| 96 | / |
| 97 | ATANLW, FCLA /CLEAR OUT TEMP. |
| 98 | FSTA ATAN3 |
| 99 | FLDA ATAN1 /RECALL NUMBER. |
| 100 | FSUB ATANC3 /START THE KNOCKING OFF PROCESS. |
| 101 | JLT ATANNT /WRONG SECTOR. |
| 102 | FLDA ATANC4 /BOP UP ORIGINAL. |
| 103 | FADDM ATAN1 |
| 104 | FLDA ATANCJ /GET MAGIC NUMBER. |
| 105 | FDIV ATAN1 |
| 106 | FADD ATANC4 |
| 107 | FSTA ATAN1 |
| 108 | FLDA ATANC5 |
| 109 | FSTA ATAN3 |
| 110 | / |
| 111 | ATANNT, FLDA ATAN1 /RECALL AND SQUARE IT. |
| 112 | FMUL ATAN1 |
| 113 | FSTA ATAN4 /YET ANOTHER TEMP. |
| 114 | FLDA ATANC6 |
| 115 | FMUL ATAN4 |
| 116 | FADD ATANC7 |
| 117 | FMUL ATAN4 |
| 118 | FADD ATANC8 |
| 119 | FMUL ATAN4 |
| 120 | FADD ATANC9 |
| 121 | FMUL ATAN4 |
| 122 | FADD F1ATAN |
| 123 | FMUL ATAN1 |
| 124 | FADD ATAN3 |
| 125 | FSTA ATAN1 |
| 126 | FLDA ATAN22 |
| 127 | FSUB F1ATAN |
| 128 | JLE ATANBG |
| 129 | FLDA ATANCH |
| 130 | FSUB ATAN1 |
| 131 | JA .+3 |
| 132 | / |
| 133 | ATANBG, FLDA ATAN1 |
| 134 | JXN ATNRTN,0 |
| 135 | FNEG |
| 136 | JA ATNRTN |
| 137 | \f |