Source Code
013264,000001: # Copyright: Public domain.
013265,000002: # Filename: LEM_GEOMETRY.agc
013266,000003: # Purpose: A section of Luminary 1C, revision 131.
013267,000004: # It is part of the source code for the Lunar Module's (LM)
013268,000005: # Apollo Guidance Computer (AGC) for Apollo 13 and Apollo 14.
013269,000006: # This file is intended to be a faithful transcription, except
013270,000007: # that the code format has been changed to conform to the
013271,000008: # requirements of the yaYUL assembler rather than the
013272,000009: # original YUL assembler.
013273,000010: # Reference: pp. 327-332 of 1729.pdf.
013274,000011: # Contact: Ron Burkey <info@sandroid.org>.
013275,000012: # Website: www.ibiblio.org/apollo/index.html
013276,000013: # Mod history: 05/10/03 RSB. Began transcribing.
013277,000014: # 05/14/05 RSB Corrected website reference above.
013278,000015: # 2010-08-24 JL Fixed page 330 number.
013279,000016:
013280,000017: # Page 327
013281,000018: 23,2041 BANK 23
013282,000019: 13,2000 SETLOC LEMGEOM
013283,000020: 13,2000 BANK
013284,000021:
013285,000022: 13,2070 30,2000 SBANK= LOWSUPER
013286,000023: 13,2070 E5,1642 EBANK= XSM
013287,000024:
013288,000025: # THESE TWO ROUTINES COMPUTE THE ACTUAL STATE VECTOR FOR LM,CSM BY ADDING
013289,000026: # THE CONIC R,V AND THE DEVIATIONS R,V. THE STATE VECTORS ARE CONVERTED TO
013290,000027: # METERS B-29 AND METERS/CSEC B-7 AND STORED APPROPIRATELY IN RN,VN OR
013291,000028: # R-OTHER,V-OTHER FOR DOWNLINK. THE ROUTINES' NAMES ARE SWITCHED IN THE
013292,000029: # OTHER VEHICLE'S COMPUTER.
013293,000030:
013294,000031: # INPUT
013295,000032: # STATE VECTOR IN TEMPORARY STORAGE AREA
013296,000033: # IF STATE VECTOR IS SCALED POS B27 AND VEL B5
013297,000034: # SET X2 TO +2
013298,000035: # IF STATE VECTOR IS SCALED POS B29 AND VEL B7
013299,000036: # SET X2 TO 0
013300,000037:
013301,000038: # OUTPUT
013302,000039: # R(T) IN RN, V(T) IN VN, T IN PIPTIME
013303,000040: # OR
013304,000041: # R(T) IN R-OTHER, V(T) IN V-OTHER (T IS DEFINED BY T-OTHER)
013305,000042:
013306,000043: 13,2070 COUNT* $$/GEOM
013307,000044: 13,2070 43414 SVDWN2 BOF RVQ # SW=1=AVETOMID DOING W-MATRIX INTEG.
013308,000045: 13,2071 04756 AVEMIDSW
013309,000046: 13,2072 26073 +1
013310,000047: 13,2073 53775 VLOAD VSL*
013311,000048: 13,2074 01521 TDELTAV
013312,000049: 13,2075 57605 0 -7,2
013313,000050: 13,2076 53655 VAD VSL*
013314,000051: 13,2077 01535 RCV
013315,000052: 13,2100 57576 0,2
013316,000053: 13,2101 25220 STOVL RN
013317,000054: 13,2102 01527 TNUV
013318,000055: 13,2103 53257 VSL* VAD
013319,000056: 13,2104 57602 0 -4,2
013320,000057: 13,2105 01543 VCV
013321,000058: 13,2106 77657 VSL*
013322,000059: 13,2107 57576 0,2
013323,000060: 13,2110 15226 STODL VN
013324,000061: 13,2111 01517 TET
013325,000062: 13,2112 01234 STORE PIPTIME
013326,000063: 13,2113 77616 RVQ
013327,000064: # Page 328
013328,000065: 13,2114 53775 SVDWN1 VLOAD VSL*
013329,000066: 13,2115 01521 TDELTAV
013330,000067: 13,2116 57605 0 -7,2
013331,000068: 13,2117 53655 VAD VSL*
013332,000069: 13,2120 01535 RCV
013333,000070: 13,2121 57576 0,2
013334,000071: 13,2122 25720 STOVL R-OTHER
013335,000072: 13,2123 01527 TNUV
013336,000073: 13,2124 53257 VSL* VAD
013337,000074: 13,2125 57602 0 -4,2
013338,000075: 13,2126 01543 VCV
013339,000076: 13,2127 77657 VSL*
013340,000077: 13,2130 57576 0,2
013341,000078: 13,2131 01726 STORE V-OTHER
013342,000079: 13,2132 77616 RVQ
013343,000080:
013344,000081: # Page 329
013345,000082: # THE FOLLOWING ROUTINE TAKES A HALF UNIT TARGET VECTOR REFERRED TO NAV BASE COORDINATES AND FINDS BOTH
013346,000083: # GIMBAL ORIENTATIONS AT WHICH THE RR MIGHT SIGHT THE TARGET. THE GIMBAL ANGLES CORRESPONDING TO THE PRESENT MODE
013347,000084: # ARE LEFT IN MODEA AND THOSE WHICH WOULD BE USED AFTER A REMODE IN MODEB. THIS ROUTINE ASSUMES MODE 1 IS TRUNNION
013348,000085: # ANGLE LESS THAN 90 DEGS IN ABS VALUE WITH ARBITRARY SHAFT, WITH A CORRESPONDING DEFINITION FOR MODE 2. MODE
013349,000086: # SELECTION AND LIMIT CHECKING ARE DONE ELSEWHERE.
013350,000087:
013351,000088: # THE MODE 1 CONFIGURATION IS CALCULATED FROM THE VECTOR AND THEN MODE 2 IS FOUND USING THE RELATIONS
013352,000089:
013353,000090: # S(2) = 180 + S(1)
013354,000091: # T(2) = 180 - T(1)
013355,000092:
013356,000093: # THE VECTOR ARRIVES IN MPAC WHERE TRG*SMNG OR *SMNB* WILL HAVE LEFT IT.
013357,000094:
013358,000095: 13,2133 00041 RRANGLES STORE 32D
013359,000096: 13,2134 57545 DLOAD DCOMP # SINCE WE WILL FIND THE MODE 1 SHAFT
013360,000097: 13,2135 00043 34D # ANGLE LATER, WE CAN FIND THE MODE 1
013361,000098: 13,2136 67401 SETPD ASIN # TRUNNION BY SIMPLY TAKING THE ARCSIN OF
013362,000099: 13,2137 00001 0 # THE Y COMPONENT, THE ASIN GIVIN AN
013363,000100: 13,2140 44206 PUSH BDSU # ANSWER WHOSE ABS VAL IS LESS THAN 90 DEG.
013364,000101: 13,2141 24005 LODPHALF
013365,000102: 13,2142 14005 STODL 4 # MODE 2 TRUNNION TO 4.
013366,000103: 13,2143 24007 LO6ZEROS
013367,000104: 13,2144 24043 STOVL 34D # UNIT THE PROJECTION OF THE VECTOR
013368,000105: 13,2145 00041 32D # IN THE X-Z PLANE
013369,000106: 13,2146 41056 UNIT BOVB # IF OVERFLOW, TARGET VECTOR IS ALONG Y
013370,000107: 13,2147 52432 LUNDESCH # CALL FOR MANEUVER UNLESS ON LUNAR SURF
013371,000108: 13,2150 14041 STODL 32D # PROJECTION VECTOR.
013372,000109: 13,2151 00041 32D
013373,000110: 13,2152 44142 SR1 STQ
013374,000111: 13,2153 00051 S2
013375,000112: 13,2154 14023 STODL SINTH # USE ARCTRIG SINCE SHAFT COULD BE ARG.
013376,000113: 13,2155 00045 36D
013377,000114: 13,2156 77742 SR1
013378,000115: 13,2157 34021 STCALL COSTH
013379,000116: 13,2160 47322 ARCTRIG
013380,000117: # Page 330
013381,000118: 13,2161 43206 PUSH DAD # MODE 1 SHAFT TO 2.
013382,000119: 13,2162 24005 LODPHALF
013383,000120: 13,2163 24007 STOVL 6
013384,000121: 13,2164 00005 4
013385,000122: 13,2165 77634 RTB # FIND MODE 2 CDU ANGLES.
013386,000123: 13,2166 21636 2V1STO2S
013387,000124: 13,2167 25111 STOVL MODEB
013388,000125: 13,2170 00001 0
013389,000126: 13,2171 77634 RTB # MODE 1 ANGLES TO MODE A.
013390,000127: 13,2172 21636 2V1STO2S
013391,000128: 13,2173 01107 STORE MODEA
013392,000129: 13,2174 77776 EXIT
013393,000130:
013394,000131: 13,2175 40110 CS RADMODES # SWAP MODEA AND MODEB IF RR IN MODE 2.
013395,000132: 13,2176 74740 MASK ANTENBIT
013396,000133: 13,2177 10000 CCS A
013397,000134: 13,2200 12204 TCF +4
013398,000135:
013399,000136: 13,2201 53107 DXCH MODEA
013400,000137: 13,2202 53111 DXCH MODEB
013401,000138: 13,2203 53107 DXCH MODEA
013402,000139:
013403,000140: 13,2204 06042 TC INTPRET
013404,000141: 13,2205 77650 GOTO
013405,000142: 13,2206 00051 S2
013406,000143: # Page 331
013407,000144: # GIVEN RR TRUNNION AND SHAFT (T,S) IN TANGNB,+1, FIND THE ASSOCIATED
013408,000145: # LINE OF SIGHT IN NAV BASE AXES. THE HALF UNIT VECTOR, .5(SIN(S)COS(T),
013409,000146: # -SIN(T),COS(S)COS(T)) IS LEFT IN MPAC AND 32D.
013410,000147:
013411,000148: 23,2000 SETLOC INFLIGHT
013412,000149: 23,2000 BANK
013413,000150:
013414,000151: 23,2041 COUNT* $$/GEOM
013415,000152:
013416,000153: 23,2041 47135 RRNB SLOAD RTB
013417,000154: 23,2042 03753 TANGNB
013418,000155: 23,2043 21577 CDULOGIC
013419,000156: 23,2044 41401 SETPD PUSH # TRUNNION ANGLE TO 0
013420,000157: 23,2045 00001 0
013421,000158: 23,2046 57556 SIN DCOMP
013422,000159: 23,2047 14043 STODL 34D # Y COMPONENT
013423,000160:
013424,000161: 23,2050 41546 COS PUSH # .5 COS(T) TO 0
013425,000162: 23,2051 47135 SLOAD RTB
013426,000163: 23,2052 03754 TANGNB +1
013427,000164: 23,2053 21577 CDULOGIC
013428,000165: 23,2054 71406 RRNB1 PUSH COS # SHAFT ANGLE TO 2
013429,000166: 23,2055 72405 DMP SL1
013430,000167: 23,2056 00001 0
013431,000168: 23,2057 14045 STODL 36D # Z COMPONENT
013432,000169:
013433,000170: 23,2060 41356 SIN DMP
013434,000171: 23,2061 77752 SL1
013435,000172: 23,2062 24041 STOVL 32D
013436,000173: 23,2063 00041 32D
013437,000174: 23,2064 77616 RVQ
013438,000175:
013439,000176: # THIS ENTRY TO RRNB REQUIRES THE TRUNNION AND SHAFT ANGLES IN MPAC AND MPAC +1 RESPECTIVELY
013440,000177:
013441,000178: 23,2065 14025 RRNBMPAC STODL 20D # SAVE SHAFT CDU IN 21.
013442,000179: 23,2066 00155 MPAC # SET MODE TO DP. (THE PRECEEDING STORE
013443,000180: # MAY BE DP, TP OR VECTOR.)
013444,000181: 23,2067 40234 RTB SETPD
013445,000182: 23,2070 21577 CDULOGIC
013446,000183: 23,2071 00001 0
013447,000184: 23,2072 73406 PUSH SIN # TRUNNION ANGLE TO 0
013448,000185: 23,2073 77676 DCOMP
013449,000186: 23,2074 14043 STODL 34D # Y COMPONENT
013450,000187: 23,2075 41546 COS PUSH # .5COS(T) TO 0
013451,000188: 23,2076 47135 SLOAD RTB # PICK UP CDU'S.
013452,000189: 23,2077 00026 21D
013453,000190: 23,2100 21577 CDULOGIC
013454,000191: 23,2101 77650 GOTO
013455,000192: 23,2102 46054 RRNB1
013456,000193: # Page 332
013457,000194: # (This page has nothing on it.)
013458,000195:
013459,000196:
End of include-file LEM_GEOMETRY.agc. Parent file is MAIN.agc