Source Code
033113,000001: # Copyright: Public domain.
033114,000002: # Filename: THROTTLE_CONTROL_ROUTINES.agc
033115,000003: # Purpose: A section of Luminary 1C, revision 131.
033116,000004: # It is part of the source code for the Lunar Module's (LM)
033117,000005: # Apollo Guidance Computer (AGC) for Apollo 13 and Apollo 14.
033118,000006: # This file is intended to be a faithful transcription, except
033119,000007: # that the code format has been changed to conform to the
033120,000008: # requirements of the yaYUL assembler rather than the
033121,000009: # original YUL assembler.
033122,000010: # Reference: pp. 793-797 of 1729.pdf.
033123,000011: # Contact: Ron Burkey <info@sandroid.org>.
033124,000012: # Website: www.ibiblio.org/apollo/index.html
033125,000013: # Mod history: 05/24/03 RSB. Began transcribing.
033126,000014: # 05/14/05 RSB Corrected website reference above.
033127,000015:
033128,000016: # Page 793
033129,000017: 31,2144 BANK 31
033130,000018: 31,2000 SETLOC FTHROT
033131,000019: 31,2000 BANK
033132,000020: 31,2144 E7,1612 EBANK= PIF
033133,000021: 31,2144 COUNT* $$/THROT
033134,000022:
033135,000023: # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
033136,000024: # HERE FC, DESIRED THRUST, AND FP, PRESENT THRUST, UNWEIGHTED, ARE COMPUTED.
033137,000025:
033138,000026: 31,2144 31245 THROTTLE CA ABDELV # COMPUTE PRESENT ACCELERATION IN UNITS OF
033139,000027: 31,2145 00006 EXTEND # 2(-4) M/CS/CS, SAVING SERVICER TROUBLE
033140,000028: 31,2146 72356 MP /AF/CNST
033141,000029: 31,2147 00006 +3 EXTEND
033142,000030: 31,2150 23607 QXCH RTNHOLD
033143,000031: 31,2151 02337 AFDUMP TC MASSMULT
033144,000032: 31,2152 53470 DXCH FP # FP = PRESENT THRUST
033145,000033: 31,2153 00006 EXTEND
033146,000034: 31,2154 31464 DCA /AFC/
033147,000035: 31,2155 02337 TC MASSMULT
033148,000036: 31,2156 55615 TS FC # FC = THRUST DESIRED BY GUIDANCE
033149,000037: 31,2157 53466 DXCH FCODD # FCODD = WHAT IT IS GOING TO GET
033150,000038:
033151,000039: # COMPUTE DESIRED THRUST FOR DISPLAY AS A PERCENTAGE OF 10,500 POUNDS
033152,000040:
033153,000041: 31,2160 32360 CAF 4FMAXNOM # MOVE 4FMAXNOM TO ERASABLE FOR DV BELOW
033154,000042: 31,2161 54002 TS Q
033155,000043: 31,2162 31615 CA FC
033156,000044: 31,2163 72357 MASK OCT17777 # FOR SAFETY
033157,000045: 31,2164 00006 EXTEND
033158,000046: 31,2165 10002 DV Q
033159,000047: 31,2166 00006 EXTEND
033160,000048: 31,2167 75003 MP 4SECS
033161,000049: 31,2170 55750 TS THRDISP # FOR DISPLAY IN N92
033162,000050:
033163,000051: # IF IT HAS BEEN LESS THAN 3 SECONDS SINCE THE LAST THROTTLING, AUGMENT FP USING THE FWEIGHT CALCULATED THEN.
033164,000052:
033165,000053: 31,2171 41617 CS TTHROT # THIS CODING ASSUMES A FLATOUT WITHIN
033166,000054: 31,2172 60025 AD TIME1 # 80 SECONDS BEFORE FIRST THROTTLE CALL
033167,000055: 31,2173 74733 MASK POSMAX
033168,000056: 31,2174 40000 COM
033169,000057: 31,2175 65002 AD 3SECS
033170,000058: 31,2176 00006 EXTEND
033171,000059: 31,2177 62203 BZMF WHERETO # BRANCH IF (TIME1-TTHROT +1) > 3 SECONDS
033172,000060: # Page 794
033173,000061: 31,2200 00006 EXTEND
033174,000062: 31,2201 31611 DCA FWEIGHT
033175,000063: 31,2202 21470 DAS FP
033176,000064:
033177,000065: # THIS LOGIC DETERMINES THE THROTTLING IN THE REGION 10% - 94%. THE MANUAL THROTTLE, NOMINALLY SET AT
033178,000066: # MINIMUM BY ASTRONAUT OR MISSION CONTROL PROGRAMS, PROVIDES THE LOWER BOUND. A STOP IN THE THROTTLE HARDWARE
033179,000067: # PROVIDES THE UPPER.
033180,000068:
033181,000069: 31,2203 35014 WHERETO CA EBANK5 # INITIALIZE L*WCR*T AND H*GHCR*T FROM
033182,000070: 31,2204 54003 TS EBANK # PAD LOADED ERASABLES IN W-MATRIX
033183,000071: 31,2205 E5,1506 EBANK= LOWCRIT
033184,000072: 31,2205 00006 EXTEND
033185,000073: 31,2206 31507 DCA LOWCRIT
033186,000074: 31,2207 52131 DXCH L*WCR*T
033187,000075: 31,2210 35016 CA EBANK7
033188,000076: 31,2211 54003 TS EBANK
033189,000077: 31,2212 E7,1612 EBANK= PIF
033190,000078: 31,2212 44755 CS ZERO # INITIALIZE PIFPSET
033191,000079: 31,2213 55606 TS PIFPSET
033192,000080: 31,2214 40131 CS H*GHCR*T
033193,000081: 31,2215 61620 AD FCOLD
033194,000082: 31,2216 00006 EXTEND
033195,000083: 31,2217 62231 BZMF LOWFCOLD # BRANCH IF FCOLD < OR = HIGHCRIT
033196,000084: 31,2220 40130 CS L*WCR*T
033197,000085: 31,2221 61465 AD FCODD
033198,000086: 31,2222 00006 EXTEND
033199,000087: 31,2223 62226 BZMF FCOMPSET # BRANCH IF FC < OR = LOWCRIT
033200,000088: 31,2224 31467 CA FP # SEE NOTE 1
033201,000089: 31,2225 12236 TCF FLATOUT1
033202,000090:
033203,000091: 31,2226 42002 FCOMPSET CS FMAXODD # SEE NOTE 2
033204,000092: 31,2227 61467 AD FP
033205,000093: 31,2230 12240 TCF FLATOUT2
033206,000094:
033207,000095: 31,2231 40131 LOWFCOLD CS H*GHCR*T
033208,000096: 31,2232 61465 AD FCODD
033209,000097: 31,2233 00006 EXTEND
033210,000098: 31,2234 62241 BZMF DOPIF # BRANCH IF FC < OR = HIGHCRIT
033211,000099:
033212,000100: 31,2235 32003 CA FMAXPOS # NO: THROTTLE-UP
033213,000101: 31,2236 53466 FLATOUT1 DXCH FCODD
033214,000102: 31,2237 34737 CA FEXTRA
033215,000103: 31,2240 55606 FLATOUT2 TS PIFPSET
033216,000104:
033217,000105: # NOTE 1 FC IS SET EQUAL TO FP SO PIF WILL BE ZERO. THIS IS DESIRABLE
033218,000106: # AS THERE IS ACTUALLY NO THROTTLE CHANGE.
033219,000107:
033220,000108: # NOTE2 HERE, SINCE WE ARE ABOUT TO RETURN TO THE THROTTLEABLE REGION
033221,000109: # Page 795
033222,000110: # (BELOW 55%) THE QUANTITY -(FMAXODD-FP) IS COMPUTED AND PUT
033223,000111: # INTO PIFPSET TO COMPENSATE FOR THE DIFFERENCE BETWEEN THE
033224,000112: # NUMBER OF BITS CORRESPONDING TO FULL THROTTLE (FMAXODD) AND THE
033225,000113: # NUMBER CORRESPONDING TO ACTUAL THRUST (FP). THUS THE TOTAL
033226,000114: # THROTTLE COMMAND PIF = FC - FP - (FMAXODD - FP) = FC - FMAXODD.
033227,000115:
033228,000116: 31,2241 03677 DOPIF TC FASTCHNG
033229,000117: 31,2242 00006 EXTEND
033230,000118: 31,2243 31466 DCA FCODD
033231,000119: 31,2244 55620 TS FCOLD
033232,000120: 31,2245 53613 DXCH PIF
033233,000121: 31,2246 00006 EXTEND
033234,000122: 31,2247 41470 DCS FP
033235,000123: 31,2250 21613 DAS PIF # PIF = FC - FP, NEVER EQUALS +0
033236,000124:
033237,000125: 31,2251 31612 DOIT CA PIF
033238,000126: 31,2252 61606 AD PIFPSET # ADD IN PIFPSET, WITHOUT CHANGING PIF
033239,000127: 31,2253 55614 TS PSEUDO55
033240,000128: 31,2254 54055 TS THRUST
033241,000129: 31,2255 34750 CAF BIT4
033242,000130: 31,2256 00006 EXTEND
033243,000131: 31,2257 05014 WOR CHAN14
033244,000132: 31,2260 30025 CA TIME1
033245,000133: 31,2261 55617 TS TTHROT
033246,000134:
033247,000135: # SINCE /AF/ IS NOT AN INSTANTANEOUS ACELERATION, BUT RATHER AN "AVERAGE" OF THE ACCELERATION LEVELS DURING
033248,000136: # THE PRECEEDING PIPA INTERVAL, AND SINCE FP IS COMPUTED DIRECTLY FROM /AF/, FP IN ORDER TO CORRESPOND TO THE
033249,000137: # ACTUAL THRUST LEVEL AT THE END OF THE INTERVAL MUST BE WEIGHTED BY
033250,000138: # PIF(PPROCESS + TL) PIF /PIF/
033251,000139: # FWEIGHT = ------------------ + -------------
033252,000140: # PGUID 2 PGUID FRATE
033253,000141: # WHERE PROCESS IS THE TIME BETWEEN PIPA READING AND THE START OF THROTTLING, PGUID IS THE GUIDANCE PERIOD, AND
033254,000142: # FRATE IS THE THROTTLING RATE (32 UNITS PER CENTISECOND). PGUID IS EITHER 1 OR 2 SECONDS. THE "TL" IN THE
033255,000143: # FIRST TERM REPRESENTS THE ENGINE'S RESPONSE LAG. HERE FWEIGHT IS COMPUTED FOR USE NEXT PASS.
033256,000144:
033257,000145: 31,2262 31762 CA THISTPIP +1 # INITIALIZE FWEIGHT COMP AS IF FOR P66
033258,000146: 31,2263 54130 TS BUF
033259,000147:
033260,000148: 31,2264 41010 CS MODREG # ARE WE IN FACT IN P66?
033261,000149: 31,2265 62452 AD DEC66
033262,000150: 31,2266 00006 EXTEND
033263,000151: 31,2267 12274 BZF FWCOMP # YES
033264,000152:
033265,000153: 31,2270 31234 CA PIPTIME +1 # NO: INITIALIZE FOR TWO SECOND PERIOD
033266,000154: 31,2271 54130 TS BUF
033267,000155: 31,2272 35003 CAF 4SECS
033268,000156: 31,2273 12275 TCF FWCOMP +1
033269,000157: # Page 796
033270,000158:
033271,000159: 31,2274 35000 FWCOMP CAF 2SECS
033272,000160: 31,2275 54002 +1 TS Q
033273,000161: 31,2276 00006 EXTEND
033274,000162: 31,2277 74746 MP BIT6
033275,000163: 31,2300 22131 LXCH BUF +1
033276,000164: 31,2301 40130 CS BUF # TIME OF LAST PIPA READIN.
033277,000165: 31,2302 60025 AD TIME1
033278,000166: 31,2303 62004 AD THROTLAG # COMPENSATE FOR ENGINE RESPONSE LAG
033279,000167: 31,2304 74357 MASK LOW8 # MAKE SURE SMALL AND POSITIVE
033280,000168: 31,2305 22007 ZL
033281,000169: 31,2306 00006 EXTEND
033282,000170: 31,2307 10002 DV Q
033283,000171: 31,2310 00006 EXTEND
033284,000172: 31,2311 71612 MP PIF
033285,000173: 31,2312 60000 DOUBLE
033286,000174: 31,2313 53611 DXCH FWEIGHT
033287,000175: 31,2314 11612 CCS PIF
033288,000176: 31,2315 64753 AD ONE
033289,000177: 31,2316 12320 TCF +2
033290,000178: 31,2317 64753 AD ONE
033291,000179: 31,2320 00006 EXTEND
033292,000180: 31,2321 71612 MP PIF
033293,000181: 31,2322 00006 EXTEND
033294,000182: 31,2323 10131 DV BUF +1
033295,000183: 31,2324 22007 ZL
033296,000184: 31,2325 21611 DAS FWEIGHT
033297,000185:
033298,000186: 31,2326 01607 THDUMP TC RTNHOLD
033299,000187:
033300,000188: # FLATOUT THROTTLES UP THE DESCENT ENGINE, AND IS CALLED AS A BASIC SUBROUTINE.
033301,000189:
033302,000190: 31,2327 34737 FLATOUT CAF BIT13 # 4096 PULSES
033303,000191: 31,2330 55606 WHATOUT TS PIFPSET # USE PIFPSET SO FWEIGHT WILL BE ZERO
033304,000192: 31,2331 44755 CS ZERO
033305,000193: 31,2332 55620 TS FCOLD
033306,000194: 31,2333 55612 TS PIF
033307,000195: 31,2334 00006 EXTEND
033308,000196: 31,2335 23607 QXCH RTNHOLD
033309,000197: 31,2336 12251 TCF DOIT
033310,000198:
033311,000199: # MASSMULT SCALES ACCELERATION, ARRIVING IN A AND L IN UNITS OF 2(-4) M/CS/CS, TO FORCE IN PULSE UNITS.
033312,000200:
033313,000201: 31,2337 00006 MASSMULT EXTEND
033314,000202: 31,2340 22130 QXCH BUF
033315,000203: 31,2341 52155 DXCH MPAC
033316,000204: 31,2342 07106 TC DMP
033317,000205: 31,2343 01243 ADRES MASS
033318,000206: # Page 797
033319,000207: 31,2344 07106 TC DMP # LEAVES PROPERLY SCALED FORCE IN MPAC
033320,000208: 31,2345 02005 ADRES SCALEFAC
033321,000209: 31,2346 07262 TC TPAGREE
033322,000210: 31,2347 30154 CA MPAC
033323,000211: 31,2350 00006 EXTEND
033324,000212: 31,2351 12354 BZF +3
033325,000213: 31,2352 34733 CAF POSMAX
033326,000214: 31,2353 00130 TC BUF
033327,000215: 31,2354 52156 DXCH MPAC +1
033328,000216: 31,2355 00130 TC BUF
033329,000217:
033330,000218: # CONSTANTS --
033331,000219:
033332,000220: 31,2356 4737 FEXTRA = BIT13 # FEXT +5.13309020 E+4
033333,000221:
033334,000222: 31,2356 04143 /AF/CNST DEC .13107
033335,000223:
033336,000224: 31,2357 17777 OCT17777 OCT 17777
033337,000225: 31,2360 35074 4FMAXNOM DEC 14908 B-14 # EQUIVALENT TO 10,500 LBS.
033338,000226:
033339,000227: # * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
End of include-file THROTTLE_CONTROL_ROUTINES.agc. Parent file is MAIN.agc