Source Code
![]() |
This is a reconstruction of the AGC program Luminary 99 Rev 0. It was the
second release of the Lunar Module flight software targeted for use in Apollo 11, after Luminary 97.
A bug (which had been around since at least Apollo 10, Luminary 69) was
discovered in Rev 0 shortly before the Apollo 11 flight, resulting in a last minute
revision into Rev 1,
which is what actually flew rather than
the Rev 0 presented here. A hardcopy of Rev 0 is known to
exist — it belonged to AGC developer Allan Klumpp for many years — but
unfortunately the Virtual AGC Project has not had access to that hardcopy. Thus
the code you see here had been reconstructed (we believe accurately) rather than
transcribed. The first step of the reconstruction of the Rev 0 source code was
the transcription of the Rev 1 source code from a hardcopy in the MIT Museum collection.
The process of reverting the active portion of the source code (i.e., other than
program comments) from Rev 1 to Rev 0 was very minor, consisting
only of moving the position of the STARTSB1 label in
FRESH START AND RESTART. Allan had previously given
us the checksums of the memory banks of Rev 0, and we have verified the program presented here has checksums
identical to all banks of Allan's listing of Rev 0. The notations on Allan's Rev 0 program listing read,
in part:GAP: ASSEMBLE REVISION 099 OF AGC PROGRAM LUMINARY BY NASA 2021112-051 A single program comment is known to differ between Rev 0 and Rev 1, but these are harder to reconstruct and verify than changes to the active portion of the code. Thus it is possible that there are additional differences between the program comments in Rev 0 and Rev 1 that are unknown to us, and therefore are not reflected in the code presented here. |
039943,000002: ## Copyright: Public domain.
039944,000003: ## Filename: LANDING_ANALOG_DISPLAYS.agc
039945,000004: ## Purpose: Part of the reconstructed source code for LMY99 Rev 0,
039946,000005: ## otherwise known as Luminary Rev 99, the second release
039947,000006: ## of the Apollo Guidance Computer (AGC) software for Apollo 11.
039948,000007: ## It differs from LMY99 Rev 1 (the flown version) only in the
039949,000008: ## placement of a single label. The corrections shown here have
039950,000009: ## been verified to have the same bank checksums as AGC developer
039951,000010: ## Allan Klumpp's copy of Luminary Rev 99, and so are believed
039952,000011: ## to be accurate. This file is intended to be a faithful
039953,000012: ## recreation, except that the code format has been changed to
039954,000013: ## conform to the requirements of the yaYUL assembler rather than
039955,000014: ## the original YUL assembler.
039956,000015: ##
039957,000016: ## Assembler: yaYUL
039958,000017: ## Reference: pp. 898-907
039959,000018: ## Contact: Ron Burkey <info@sandroid.org>,
039960,000019: ## Fabrizio Bernardini <fabrizio@spacecraft.it>
039961,000020: ## Website: http://www.ibiblio.org/apollo.
039962,000021: ## Mod history: 05/06/09 FB Transcription Batch 4 Assignment.
039963,000022: ## 2016-12-17 RSB Proofed text comments with octopus/ProoferComments
039964,000023: ## and corrected the errors found.
039965,000024: ## 2017-08-01 MAS Created from LMY99 Rev 1.
039966,000025:
039967,000026: ## This source code has been transcribed or otherwise adapted from
039968,000027: ## digitized images of a hardcopy from the MIT Museum. The digitization
039969,000028: ## was performed by Paul Fjeld, and arranged for by Deborah Douglas of
039970,000029: ## the Museum. Many thanks to both. The images (with suitable reduction
039971,000030: ## in storage size and consequent reduction in image quality as well) are
039972,000031: ## available online at www.ibiblio.org/apollo. If for some reason you
039973,000032: ## find that the images are illegible, contact me at info@sandroid.org
039974,000033: ## about getting access to the (much) higher-quality images which Paul
039975,000034: ## actually created.
039976,000035: ##
039977,000036: ## The code has been modified to match LMY99 Revision 0, otherwise
039978,000037: ## known as Luminary Revision 99, the Apollo 11 software release preceeding
039979,000038: ## the listing from which it was transcribed. It has been verified to
039980,000039: ## contain the same bank checksums as AGC developer Allan Klumpp's listing
039981,000040: ## of Luminary Revision 99 (for which we do not have scans).
039982,000041: ##
039983,000042: ## Notations on Allan Klumpp's listing read, in part:
039984,000043: ##
039985,000044: ## ASSEMBLE REVISION 099 OF AGC PROGRAM LUMINARY BY NASA 2021112-51
039986,000045:
![]() |
Page 898 |
039988,000047: 21,2154 BANK 21
039989,000048: 21,2000 SETLOC R10
039990,000049: 21,2000 BANK
039991,000050:
039992,000051: 21,2154 E7,1536 EBANK= UNIT/R/
039993,000052: 21,2154 COUNT* $$/R10
039994,000053:
039995,000054: 21,2154 23714 LANDISP LXCH PIPCTR1 # UPDATE TBASE2 AND PIPCTR SIMULTANEOUSLY.
039996,000055: 21,2155 40025 CS TIME1
039997,000056: 21,2156 53056 DXCH TBASE2
039998,000057:
039999,000058: 21,2157 40103 CS FLAGWRD7 # IS LANDING ANALOG DISPLAYS FLAG SET?
040000,000059: 21,2160 74741 MASK SWANDBIT
040001,000060: 21,2161 10000 CCS A
040002,000061: 21,2162 13053 TCF DISPRSET # NO.
040003,000062: 21,2163 31303 CA IMODES33 # BIT 7 = 0 (DO ALTRATE), =1 (DO ALT.)
040004,000063: 21,2164 74745 MASK BIT7
040005,000064: 21,2165 10000 CCS A
040006,000065: 21,2166 12240 TCF ALTOUT
040007,000066: 21,2167 02324 ALTROUT TC DISINDAT # CHECK MODE SELECT SWITCH AND DIDFLG.
040008,000067: 21,2170 41303 CS IMODES33
040009,000068: 21,2171 74745 MASK BIT7
040010,000069: 21,2172 27303 ADS IMODES33 # ALTERNATE ALTITUDE RATE WITH ALTITUDE.
040011,000070: 21,2173 34752 CAF BIT2 # RATE COMMAND IS EXECUTED BEFORE RANGE.
040012,000071: 21,2174 00006 EXTEND
040013,000072: 21,2175 05014 WOR CHAN14 # ALTRATE (BIT2 = 1), ALTITUDE (BIT2 = 0).
040014,000073: 21,2176 31743 ARCOMP CA RUNIT # COMPUTE ALTRATE = RUNIT.VVECT M/CS *2(-6).
040015,000074: 21,2177 00006 EXTEND
040016,000075: 21,2200 71706 MP VVECT # MULTIPLY X-COMPONENTS.
040017,000076: 21,2201 56070 XCH RUPTREG1 # SAVE SINGLE PRECISION RESULT M/CS*2(-6).
040018,000077: 21,2202 31744 CA RUNIT +1 # MULTIPLY Y-COMPONENTS.
040019,000078: 21,2203 00006 EXTEND
040020,000079: 21,2204 71707 MP VVECT +1
040021,000080: 21,2205 26070 ADS RUPTREG1 # ACCUMULATE PARTIAL PRODUCTS.
040022,000081: 21,2206 31745 CA RUNIT +2 # MULTIPLY Z-COMPONENTS.
040023,000082: 21,2207 00006 EXTEND
040024,000083: 21,2210 71710 MP VVECT +2
040025,000084: 21,2211 26070 ADS RUPTREG1 # ALTITUDE RATE IN M/CS *2(-6).
040026,000085: 21,2212 32000 CA ARCONV # CONVERT ALTRATE TO BIT UNITS (.5FPS/BIT)
040027,000086: 21,2213 00006 EXTEND
040028,000087: 21,2214 70070 MP RUPTREG1
040029,000088: 21,2215 20001 DDOUBL
040030,000089: 21,2216 20001 DDOUBL
040031,000090: 21,2217 56070 XCH RUPTREG1 # ALTITUDE RATE IN BIT UNITS*2(-14).
040032,000091: 21,2220 31716 CA DALTRATE # ALTITUDE RATE COMPENSATION FACTOR.
040033,000092: 21,2221 00006 EXTEND
040034,000093: 21,2222 71715 MP DT
040035,000094: 21,2223 60070 AD RUPTREG1
040036,000095: 21,2224 55711 TS ALTRATE # ALTITUDE RATE IN BIT UNITS*2(-14).
040037,000096: 21,2225 41711 CS ALTRATE
![]() |
Page 899 |
040039,000098: 21,2226 00006 EXTEND # CHECK POLARITY OF ALTITUDE RATE.
040040,000099: 21,2227 62231 BZMF +2
040041,000100: 21,2230 12233 TCF DATAOUT # NEGATIVE - SEND POS. PULSES TO ALTM REG.
040042,000101: 21,2231 31711 CA ALTRATE # POSITIVE OR ZERO - SET SIGN BIT = 1 AND
040043,000102: 21,2232 64735 AD BIT15 # SEND TO ALTM REGISTER. *DO NOT SEND +0*
040044,000103: 21,2233 54060 DATAOUT TS ALTM # ACTIVATE THE LANDING ANALOG DISPLAYS - -
040045,000104: 21,2234 34751 CAF BIT3
040046,000105: 21,2235 00006 EXTEND
040047,000106: 21,2236 05014 WOR CHAN14 # BIT3 DRIVES THE ALT/ALTRATE METER.
040048,000107: 21,2237 15261 TCF TASKOVER # EXIT
040049,000108:
040050,000109: 21,2240 02324 ALTOUT TC DISINDAT # CHECK MODE SELECT SWITCH AND DIDFLG.
040051,000110: 21,2241 44745 CS BIT7
040052,000111: 21,2242 71303 MASK IMODES33
040053,000112: 21,2243 55303 TS IMODES33 # ALTERNATE ALTITUDE RATE WITH ALTITUDE.
040054,000113: 21,2244 44752 CS BIT2
040055,000114: 21,2245 00006 EXTEND
040056,000115: 21,2246 03014 WAND CHAN14
040057,000116: 21,2247 11741 CCS ALTBITS # = -1 IF OLD ALT. DATA TO BE EXTRAPOLATED.
040058,000117: 21,2250 12254 TCF +4
040059,000118: 21,2251 12254 TCF +3
040060,000119: 21,2252 12272 TCF OLDDATA
040061,000120: 21,2253 55741 TS ALTBITS # SET ALTBITS FROM -0 TO +0.
040062,000121: 21,2254 44753 CS ONE
040063,000122: 21,2255 53742 DXCH ALTBITS # SET ALTBITS = -1 FOR SWITCH USE NEXT PASS.
040064,000123: 21,2256 53713 DXCH ALTSAVE
040065,000124: 21,2257 34742 CA BIT10 # NEW ALTITUDE EXTRAPOLATION WITH ALTRATE.
040066,000125: 21,2260 56002 XCH Q
040067,000126: 21,2261 22007 LXCH 7 # ZL
040068,000127: 21,2262 31715 CA DT
040069,000128: 21,2263 00006 EXTEND
040070,000129: 21,2264 10002 DV Q # RESCALE DT*2(-14) TO *2(-9) TIME IN CS.
040071,000130: 21,2265 00006 EXTEND
040072,000131: 21,2266 72002 MP ARTOA2 # .0021322 *2(+8)
040073,000132: 21,2267 12273 TCF OLDDATA +1 # RATE APPLIES FOR DT CS.
040074,000133:
040075,000134: 21,2270 53713 ZDATA2 DXCH ALTSAVE
040076,000135: 21,2271 12313 TCF NEWDATA
040077,000136: 21,2272 32001 OLDDATA CA ARTOA # RATE APPLIES FOR .5 SEC. (4X/SEC. CYCLE)
040078,000137: 21,2273 00006 EXTEND
040079,000138: 21,2274 71711 MP ALTRATE # EXTRAPOLATE WITH ALTITUDE RATE.
040080,000139: 21,2275 20001 DDOUBL
040081,000140: 21,2276 61713 AD ALTSAVE +1
040082,000141: 21,2277 55713 TS ALTSAVE +1
040083,000142: 21,2300 34755 CAF ZERO
040084,000143: 21,2301 27712 ADS ALTSAVE
040085,000144: 21,2302 34733 CAF POSMAX # FORCE SIGN AGREEMENT ASSUMING A
040086,000145: 21,2303 64753 AD ONE # NON-NEGATIVE ALTSAVE.
040087,000146: 21,2304 61713 AD ALTSAVE +1 # IF ALTSAVE IS NEGATIVE, ZERO ALTSAVE
040088,000147: 21,2305 55713 TS ALTSAVE +1 # AND ALTSAVE +1 AT ZERODATA.
![]() |
Page 900 |
040090,000149: 21,2306 34755 CAF ZERO
040091,000150: 21,2307 64733 AD POSMAX
040092,000151: 21,2310 61712 AD ALTSAVE
040093,000152: 21,2311 55712 TS ALTSAVE # POSSIBLY SKIP TO NEWDATA.
040094,000153: 21,2312 13050 TCF ZERODATA
040095,000154: 21,2313 11713 NEWDATA CCS ALTSAVE +1
040096,000155: 21,2314 12320 TCF +4
040097,000156: 21,2315 12320 TCF +3
040098,000157: 21,2316 34755 CAF ZERO # SET NEGATIVE ALTSAVE +1 TO +0.
040099,000158: 21,2317 55713 TS ALTSAVE +1
040100,000159: 21,2320 11712 CCS ALTSAVE # PROVIDE A 15 BIT UNSIGNED OUTPUT.
040101,000160: 21,2321 34735 CAF BIT15 # THE HI-ORDER PART IS +1 OR +0.
040102,000161: 21,2322 61713 AD ALTSAVE +1
040103,000162: 21,2323 12233 TCF DATAOUT # DISPATCH UNSIGNED BITS TO ALTM REG.
040104,000163: 21,2324 00006 DISINDAT EXTEND
040105,000164: 21,2325 23714 QXCH LADQSAVE # SAVE RETURN TO ALTROUT +1 OR ALTOUT +1
040106,000165: 21,2326 34746 CAF BIT6
040107,000166: 21,2327 00006 EXTEND # WISHETH THE ASTRONAUT THE ANALOG
040108,000167: 21,2330 02030 RAND CHAN30 # DISPLAYS? I.E.,
040109,000168: 21,2331 10000 CCS A # IS THE MODE SELECT SWITCH IN PGNCS?
040110,000169: 21,2332 13053 TCF DISPRSET # NO. ASTRONAUT REQUESTS NO INERTIAL DATA
040111,000170: 21,2333 40075 CS FLAGWRD1 # YES. CHECK STATUS OF DIDFLAG.
040112,000171: 21,2334 74736 MASK DIDFLBIT
040113,000172: 21,2335 00006 EXTEND
040114,000173: 21,2336 12374 BZF SPEEDRUN # SET. PERFORM DATA DISPLAY SEQUENCE.
040115,000174: 21,2337 40075 CS FLAGWRD1 # RESET. PERFORM INITIALIZATION FUNCTIONS.
040116,000175: 21,2340 74736 MASK DIDFLBIT
040117,000176: 21,2341 26075 ADS FLAGWRD1 # SET DIDFLAG.
040118,000177: 21,2342 44745 CS BIT7
040119,000178: 21,2343 71303 MASK IMODES33 # TO DISPLAY ALTRATE FIRST AND ALT. SECOND
040120,000179: 21,2344 55303 TS IMODES33
040121,000180: 21,2345 40074 CS FLAGWRD0 # ARE WE IN DESCENT TRAJECTORY?
040122,000181: 21,2346 74752 MASK R10FLBIT
040123,000182: 21,2347 00006 EXTEND
040124,000183: 21,2350 15261 BZF TASKOVER # NO
040125,000184: 21,2351 34744 CAF BIT8 # YES.
040126,000185: 21,2352 00006 EXTEND
040127,000186: 21,2353 05012 WOR CHAN12 # SET DISPLAY INERTIAL DATA OUTBIT.
040128,000187: 21,2354 34755 CAF ZERO
040129,000188: 21,2355 55702 TS TRAKLATV # LATERAL VELOCITY MONITOR FLAG
040130,000189: 21,2356 55703 TS TRAKFWDV # FORWARD VELOCITY MONITOR FLAG
040131,000190: 21,2357 55676 TS LATVMETR # LATVEL MONITOR METER
040132,000191: 21,2360 55677 TS FORVMETR # FORVEL MONITOR METER
040133,000192: 21,2361 34750 CAF BIT4
040134,000193: 21,2362 05173 TC TWIDDLE
040135,000194: 21,2363 02365 ADRES INTLZE
040136,000195: 21,2364 15261 TCF TASKOVER
040137,000196: 21,2365 34752 INTLZE CAF BIT2
040138,000197: 21,2366 00006 EXTEND
040139,000198: 21,2367 05012 WOR CHAN12 # ENABLE RR ERROR COUNTER.
![]() |
Page 901 |
040141,000200: 21,2370 41303 CS IMODES33
040142,000201: 21,2371 74744 MASK BIT8
040143,000202: 21,2372 27303 ADS IMODES33 # SET INERTIAL DATA FLAG.
040144,000203: 21,2373 15261 TCF TASKOVER
040145,000204:
040146,000205: 21,2374 41235 SPEEDRUN CS PIPTIME +1 # UPDATE THE VELOCITY VECTOR
040147,000206: 21,2375 60025 AD TIME1 # COMPUTE T - TN
040148,000207: 21,2376 64736 AD HALF # CORRECT FOR POSSIBLE OVERFLOW OF TIME1.
040149,000208: 21,2377 64736 AD HALF
040150,000209: 21,2400 57715 XCH DT # SAVE FOR LATER USE
040151,000210: 21,2401 34777 CA 1SEC
040152,000211: 21,2402 54065 TS ITEMP5 # INITIALIZE FOR DIVISION LATER
040153,000212: 21,2403 00006 EXTEND
040154,000213: 21,2404 31237 DCA GDT/2 # COMPUTE THE X-COMPONENT OF VELOCITY.
040155,000214: 21,2405 20001 DDOUBL
040156,000215: 21,2406 20001 DDOUBL
040157,000216: 21,2407 00006 EXTEND
040158,000217: 21,2410 71715 MP DT
040159,000218: 21,2411 00006 EXTEND
040160,000219: 21,2412 10065 DV ITEMP5
040161,000220: 21,2413 57706 XCH VVECT # VVECT = G(T-TN) M/CS *2(-5)
040162,000221: 21,2414 00006 EXTEND
040163,000222: 21,2415 31527 DCA V # M/CS *2(-7)
040164,000223: 21,2416 20001 DDOUBL # RESCALE TO 2(-5)
040165,000224: 21,2417 20001 DDOUBL
040166,000225: 21,2420 27706 ADS VVECT # VVECT = VN + G(T-TN) M/CS *2(-5)
040167,000226: 21,2421 30037 CA PIPAX # DELV CM/SEC *2(-14)
040168,000227: 21,2422 61160 AD PIPATMPX # IN CASE PIPAX HAS BEEN ZEROED
040169,000228: 21,2423 00006 EXTEND
040170,000229: 21,2424 72004 MP KPIP1(5) # DELV M/CS *2(-5)
040171,000230: 21,2425 27706 ADS VVECT # VVECT = VN + DELV + GN(T-TN) M/CS *2(-5)
040172,000231: 21,2426 00006 EXTEND
040173,000232: 21,2427 31241 DCA GDT/2 +2 # COMPUTE THE Y-COMPONENT OF VELOCITY.
040174,000233: 21,2430 20001 DDOUBL
040175,000234: 21,2431 20001 DDOUBL
040176,000235: 21,2432 00006 EXTEND
040177,000236: 21,2433 71715 MP DT
040178,000237: 21,2434 00006 EXTEND
040179,000238: 21,2435 10065 DV ITEMP5
040180,000239: 21,2436 57707 XCH VVECT +1
040181,000240: 21,2437 00006 EXTEND
040182,000241: 21,2440 31531 DCA V +2
040183,000242: 21,2441 20001 DDOUBL
040184,000243: 21,2442 20001 DDOUBL
040185,000244: 21,2443 27707 ADS VVECT +1
040186,000245: 21,2444 30040 CA PIPAY
040187,000246: 21,2445 61161 AD PIPATMPY
040188,000247: 21,2446 00006 EXTEND
040189,000248: 21,2447 72004 MP KPIP1(5)
040190,000249: 21,2450 27707 ADS VVECT +1
![]() |
Page 902 |
040192,000251: 21,2451 00006 EXTEND
040193,000252: 21,2452 31243 DCA GDT/2 +4 # COMPUTE THE Z-COMPONENT OF VELOCITY.
040194,000253: 21,2453 20001 DDOUBL
040195,000254: 21,2454 20001 DDOUBL
040196,000255: 21,2455 00006 EXTEND
040197,000256: 21,2456 71715 MP DT
040198,000257: 21,2457 00006 EXTEND
040199,000258: 21,2460 10065 DV ITEMP5
040200,000259: 21,2461 57710 XCH VVECT +2
040201,000260: 21,2462 00006 EXTEND
040202,000261: 21,2463 31533 DCA V +4
040203,000262: 21,2464 20001 DDOUBL
040204,000263: 21,2465 20001 DDOUBL
040205,000264: 21,2466 27710 ADS VVECT +2
040206,000265: 21,2467 30041 CA PIPAZ
040207,000266: 21,2470 61162 AD PIPATMPZ
040208,000267: 21,2471 00006 EXTEND
040209,000268: 21,2472 72004 MP KPIP1(5)
040210,000269: 21,2473 27710 ADS VVECT +2
040211,000270:
040212,000271: 21,2474 34751 CAF BIT3 # PAUSE 40 MS TO LET OTHER RUPTS IN.
040213,000272: 21,2475 05224 TC VARDELAY
040214,000273:
040215,000274: 21,2476 40074 CS FLAGWRD0 # ARE WE IN DESCENT TRAJECTORY?
040216,000275: 21,2477 74752 MASK R10FLBIT
040217,000276: 21,2500 10000 CCS A
040218,000277: 21,2501 12503 TCF +2 # YES.
040219,000278: 21,2502 01714 TC LADQSAVE # NO.
040220,000279:
040221,000280: 21,2503 31733 CA DELVS # HI X OF VELOCITY CORRECTION TERM.
040222,000281: 21,2504 61706 AD VVECT # HI X OF UPDATED VELOCITY VECTOR.
040223,000282: 21,2505 54061 TS ITEMP1 # = VX - DVX M/CS *2(-5).
040224,000283: 21,2506 31735 CA DELVS +2 # Y
040225,000284: 21,2507 61707 AD VVECT +1 # Y
040226,000285: 21,2510 54062 TS ITEMP2 # = VY - DVY M/CS *2(-5).
040227,000286: 21,2511 31737 CA DELVS +4 # Z
040228,000287: 21,2512 61710 AD VVECT +2 # Z
040229,000288: 21,2513 54063 TS ITEMP3 # = VZ - DVZ M/CS *2(-5).
040230,000289: 21,2514 30061 CA ITEMP1 # COMPUTE VHY, VELOCITY DIRECTED ALONG THE
040231,000290: 21,2515 00006 EXTEND # Y-COORDINATE.
040232,000291: 21,2516 71717 MP UHYP # HI X OF CROSS-RANGE HALF-UNIT VECTOR.
040233,000292: 21,2517 56070 XCH RUPTREG1
040234,000293: 21,2520 30062 CA ITEMP2
040235,000294: 21,2521 00006 EXTEND
040236,000295: 21,2522 71721 MP UHYP +2 # Y
040237,000296: 21,2523 26070 ADS RUPTREG1 # ACCUMULATE PARTIAL PRODUCTS.
040238,000297: 21,2524 30063 CA ITEMP3
040239,000298: 21,2525 00006 EXTEND
040240,000299: 21,2526 71723 MP UHYP +4 # Z
040241,000300: 21,2527 26070 ADS RUPTREG1
![]() |
Page 903 |
040243,000302: 21,2530 30070 CA RUPTREG1
040244,000303: 21,2531 60000 DOUBLE
040245,000304: 21,2532 57704 XCH VHY # VHY=VMP.UHYP M/CS*2(-5).
040246,000305: 21,2533 30061 CA ITEMP1 # NOW COMPUTE VHZ, VELOCITY DIRECTED ALONG
040247,000306: 21,2534 00006 EXTEND # THE Z-COORDINATE.
040248,000307: 21,2535 71725 MP UHZP # HI X OF DOWN-RANGE HALF-UNIT VECTOR.
040249,000308: 21,2536 56070 XCH RUPTREG1
040250,000309: 21,2537 30062 CA ITEMP2
040251,000310: 21,2540 00006 EXTEND
040252,000311: 21,2541 71727 MP UHZP +2 # Y
040253,000312: 21,2542 26070 ADS RUPTREG1 # ACCUMULATE PARTIAL PRODUCTS.
040254,000313: 21,2543 30063 CA ITEMP3
040255,000314: 21,2544 00006 EXTEND
040256,000315: 21,2545 71731 MP UHZP +4 # Z
040257,000316: 21,2546 26070 ADS RUPTREG1
040258,000317: 21,2547 30070 CA RUPTREG1
040259,000318: 21,2550 60000 DOUBLE
040260,000319: 21,2551 57705 XCH VHZ # VHZ = VMP.UHZP M/CS*2(-5).
040261,000320: 21,2552 35015 GET22/32 CAF EBANK6 # GET SIN(AOG),COS(AOG) FROM GPMATRIX.
040262,000321: 21,2553 54003 TS EBANK
040263,000322: 21,2554 E6,1417 EBANK= M22
040264,000323: 21,2554 31417 CA M22
040265,000324: 21,2555 54063 TS ITEMP3
040266,000325: 21,2556 31420 CA M32
040267,000326: 21,2557 54064 TS ITEMP4
040268,000327: 21,2560 35016 CAF EBANK7
040269,000328: 21,2561 54003 TS EBANK
040270,000329: 21,2562 E7,1536 EBANK= UNIT/R/
040271,000330: 21,2562 30064 LATFWDV CA ITEMP4 # COMPUTE LATERAL AND FORWARD VELOCITIES.
040272,000331: 21,2563 00006 EXTEND
040273,000332: 21,2564 71704 MP VHY
040274,000333: 21,2565 56070 XCH RUPTREG1
040275,000334: 21,2566 30063 CA ITEMP3
040276,000335: 21,2567 00006 EXTEND
040277,000336: 21,2570 71705 MP VHZ
040278,000337: 21,2571 26070 ADS RUPTREG1 # = VHY(COS)AOG+VHZ(SIN)AOG M/CS *2(-5)
040279,000338: 21,2572 32003 CA VELCONV # CONVERT LATERAL VELOCITY TO BIT UNITS.
040280,000339: 21,2573 00006 EXTEND
040281,000340: 21,2574 70070 MP RUPTREG1
040282,000341: 21,2575 20001 DDOUBL
040283,000342: 21,2576 57700 XCH LATVEL # LATERAL VELOCITY IN BIT UNITS *2(-14).
040284,000343: 21,2577 30064 CA ITEMP4 # COMPUTE FORWARD VELOCITY.
040285,000344: 21,2600 00006 EXTEND
040286,000345: 21,2601 71705 MP VHZ
040287,000346: 21,2602 56070 XCH RUPTREG1
040288,000347: 21,2603 30063 CA ITEMP3
040289,000348: 21,2604 00006 EXTEND
040290,000349: 21,2605 71704 MP VHY
040291,000350: 21,2606 40000 CS A
040292,000351: 21,2607 26070 ADS RUPTREG1 # =VHZ(COS)AOG-VHY(SIN)AOG M/CS *2(-5).
![]() |
Page 904 |
040294,000353: 21,2610 32003 CA VELCONV # CONVERT FORWARD VELOCITY TO BIT UNITS.
040295,000354: 21,2611 00006 EXTEND
040296,000355: 21,2612 70070 MP RUPTREG1
040297,000356: 21,2613 20001 DDOUBL
040298,000357: 21,2614 57701 XCH FORVEL # FORWARD VELOCITY IN BIT UNITS *2(-14).
040299,000358:
040300,000359: 21,2615 42005 CS MAXVBITS # ACC.=-199.9989 FT./SEC.
040301,000360: 21,2616 54066 TS ITEMP6 # -547 BIT UNITS (OCTAL) AT 0.5571 FPS/BIT
040302,000361:
040303,000362: 21,2617 34753 CAF ONE # LOOP TWICE.
040304,000363: 21,2620 54065 VMONITOR TS ITEMP5 # FORWARD AND LATERAL VELOCITY LANDING
040305,000364: 21,2621 50065 INDEX ITEMP5 # ANALOG DISPLAYS MONITOR.
040306,000365: 21,2622 11700 CCS LATVEL
040307,000366: 21,2623 12627 TCF +4
040308,000367: 21,2624 12730 TCF LVLIMITS
040309,000368: 21,2625 12635 TCF +8D
040310,000369: 21,2626 12730 TCF LVLIMITS
040311,000370: 21,2627 50065 INDEX ITEMP5
040312,000371: 21,2630 41700 CS LATVEL
040313,000372: 21,2631 62005 AD MAXVBITS # +199.9989 FT./SEC.
040314,000373: 21,2632 00006 EXTEND
040315,000374: 21,2633 62643 BZMF CHKLASTY
040316,000375: 21,2634 12730 TCF LVLIMITS
040317,000376: 21,2635 50065 INDEX ITEMP5
040318,000377: 21,2636 31700 CA LATVEL
040319,000378: 21,2637 62005 AD MAXVBITS
040320,000379: 21,2640 00006 EXTEND
040321,000380: 21,2641 62643 BZMF +2
040322,000381: 21,2642 12730 TCF LVLIMITS
040323,000382: 21,2643 50065 CHKLASTY INDEX ITEMP5
040324,000383: 21,2644 11676 CCS LATVMETR
040325,000384: 21,2645 12651 TCF +4
040326,000385: 21,2646 12662 TCF LASTOK
040327,000386: 21,2647 12656 TCF +7
040328,000387: 21,2650 12662 TCF LASTOK
040329,000388: 21,2651 50065 INDEX ITEMP5
040330,000389: 21,2652 31700 CA LATVEL
040331,000390: 21,2653 00006 EXTEND
040332,000391: 21,2654 62701 BZMF LASTPOSY +5
040333,000392: 21,2655 12662 TCF +5
040334,000393: 21,2656 50065 INDEX ITEMP5
040335,000394: 21,2657 41700 CS LATVEL
040336,000395: 21,2660 00006 EXTEND
040337,000396: 21,2661 62716 BZMF LASTNEGY +4
040338,000397: 21,2662 50065 LASTOK INDEX ITEMP5
040339,000398: 21,2663 11702 CCS TRAKLATV
040340,000399: 21,2664 12674 TCF LASTPOSY
040341,000400: 21,2665 12667 TCF +2
040342,000401: 21,2666 12712 TCF LASTNEGY
040343,000402: 21,2667 50065 INDEX ITEMP5
![]() |
Page 905 |
040345,000404: 21,2670 31700 CA LATVEL
040346,000405: 21,2671 00006 EXTEND
040347,000406: 21,2672 62720 BZMF NEGVMAXY
040348,000407: 21,2673 12703 TCF POSVMAXY
040349,000408: 21,2674 50065 LASTPOSY INDEX ITEMP5
040350,000409: 21,2675 31700 CA LATVEL
040351,000410: 21,2676 00006 EXTEND
040352,000411: 21,2677 62701 BZMF +2
040353,000412: 21,2700 12703 TCF POSVMAXY
040354,000413: 21,2701 42005 CS MAXVBITS
040355,000414: 21,2702 13024 TCF ZEROLSTY
040356,000415: 21,2703 50065 POSVMAXY INDEX ITEMP5
040357,000416: 21,2704 41676 CS LATVMETR
040358,000417: 21,2705 62005 AD MAXVBITS
040359,000418: 21,2706 50065 INDEX ITEMP5
040360,000419: 21,2707 56072 XCH RUPTREG3
040361,000420: 21,2710 34753 CAF ONE
040362,000421: 21,2711 13027 TCF ZEROLSTY +3
040363,000422: 21,2712 50065 LASTNEGY INDEX ITEMP5
040364,000423: 21,2713 31700 CA LATVEL
040365,000424: 21,2714 00006 EXTEND
040366,000425: 21,2715 62720 BZMF NEGVMAXY
040367,000426: 21,2716 32005 CA MAXVBITS
040368,000427: 21,2717 13024 TCF ZEROLSTY
040369,000428: 21,2720 50065 NEGVMAXY INDEX ITEMP5
040370,000429: 21,2721 31676 CA LATVMETR
040371,000430: 21,2722 62005 AD MAXVBITS
040372,000431: 21,2723 40000 COM
040373,000432: 21,2724 50065 INDEX ITEMP5
040374,000433: 21,2725 56072 XCH RUPTREG3
040375,000434: 21,2726 44753 CS ONE
040376,000435: 21,2727 13027 TCF ZEROLSTY +3
040377,000436: 21,2730 50065 LVLIMITS INDEX ITEMP5
040378,000437: 21,2731 11702 CCS TRAKLATV
040379,000438: 21,2732 12761 TCF LATVPOS
040380,000439: 21,2733 12735 TCF +2
040381,000440: 21,2734 12766 TCF LATVNEG
040382,000441: 21,2735 50065 INDEX ITEMP5
040383,000442: 21,2736 41676 CS LATVMETR
040384,000443: 21,2737 00006 EXTEND
040385,000444: 21,2740 62742 BZMF +2
040386,000445: 21,2741 12775 TCF NEGLMLV
040387,000446: 21,2742 50065 INDEX ITEMP5
040388,000447:
040389,000448: 21,2743 41700 CS LATVEL
040390,000449: 21,2744 00006 EXTEND
040391,000450: 21,2745 63020 BZMF LVMINLM
040392,000451: 21,2746 60066 AD ITEMP6
040393,000452: 21,2747 50065 INDEX ITEMP5
040394,000453: 21,2750 61676 AD LATVMETR
040395,000454: 21,2751 00006 EXTEND
![]() |
Page 906 |
040397,000456: 21,2752 63020 BZMF LVMINLM
040398,000457: 21,2753 50065 INDEX ITEMP5
040399,000458: 21,2754 61700 AD LATVEL
040400,000459: 21,2755 00006 EXTEND
040401,000460: 21,2756 50065 INDEX ITEMP5
040402,000461: 21,2757 61676 SU LATVMETR
040403,000462: 21,2760 13024 TCF ZEROLSTY
040404,000463: 21,2761 50065 LATVPOS INDEX ITEMP5
040405,000464: 21,2762 41700 CS LATVEL
040406,000465: 21,2763 00006 EXTEND
040407,000466: 21,2764 63020 BZMF LVMINLM
040408,000467: 21,2765 12772 TCF +5
040409,000468: 21,2766 50065 LATVNEG INDEX ITEMP5
040410,000469: 21,2767 31700 CA LATVEL
040411,000470: 21,2770 00006 EXTEND
040412,000471: 21,2771 63020 BZMF LVMINLM
040413,000472: 21,2772 50065 INDEX ITEMP5
040414,000473: 21,2773 41676 CS LATVMETR
040415,000474: 21,2774 13024 TCF ZEROLSTY
040416,000475: 21,2775 50065 NEGLMLV INDEX ITEMP5
040417,000476: 21,2776 31700 CA LATVEL
040418,000477: 21,2777 00006 EXTEND
040419,000478: 21,3000 63020 BZMF LVMINLM
040420,000479: 21,3001 32005 CA MAXVBITS
040421,000480: 21,3002 50065 INDEX ITEMP5
040422,000481: 21,3003 61676 AD LATVMETR
040423,000482: 21,3004 40000 COM
040424,000483: 21,3005 50065 INDEX ITEMP5
040425,000484: 21,3006 61700 AD LATVEL
040426,000485: 21,3007 00006 EXTEND
040427,000486: 21,3010 63020 BZMF LVMINLM
040428,000487: 21,3011 00006 EXTEND
040429,000488: 21,3012 50065 INDEX ITEMP5
040430,000489: 21,3013 61700 SU LATVEL
040431,000490: 21,3014 50065 INDEX ITEMP5
040432,000491: 21,3015 61676 AD LATVMETR
040433,000492: 21,3016 40000 COM
040434,000493: 21,3017 13024 TCF ZEROLSTY
040435,000494: 21,3020 50065 LVMINLM INDEX ITEMP5
040436,000495: 21,3021 41676 CS LATVMETR
040437,000496: 21,3022 50065 INDEX ITEMP5
040438,000497: 21,3023 61700 AD LATVEL
040439,000498: 21,3024 50065 ZEROLSTY INDEX ITEMP5
040440,000499: 21,3025 56072 XCH RUPTREG3
040441,000500: 21,3026 34755 CAF ZERO
040442,000501: 21,3027 50065 INDEX ITEMP5
040443,000502: 21,3030 55702 TS TRAKLATV
040444,000503: 21,3031 50065 INDEX ITEMP5
040445,000504: 21,3032 30072 CA RUPTREG3
040446,000505: 21,3033 64754 AD NEG0 # AVOIDS +0 DINC HARDWARE MALFUNCTION
![]() |
Page 907 |
040448,000507: 21,3034 50065 INDEX ITEMP5
040449,000508: 21,3035 54053 TS CDUTCMD
040450,000509: 21,3036 50065 INDEX ITEMP5
040451,000510: 21,3037 30072 CA RUPTREG3
040452,000511: 21,3040 50065 INDEX ITEMP5
040453,000512: 21,3041 27676 ADS LATVMETR
040454,000513: 21,3042 10065 CCS ITEMP5 # FIRST MONITOR FORWARD THEN LATERAL VEL.
040455,000514: 21,3043 12620 TCF VMONITOR
040456,000515:
040457,000516: 21,3044 35020 CAF BITSET # DRIVE THE X-POINTER DISPLAY.
040458,000517: 21,3045 00006 EXTEND
040459,000518: 21,3046 05014 WOR CHAN14
040460,000519: 21,3047 01714 TC LADQSAVE # GO TO ALTROUT +1 OR TO ALTOUT +1
040461,000520: 21,3050 34755 ZERODATA CAF ZERO # ZERO ALTSAVE AND ALTSAVE +1 - - -
040462,000521: 21,3051 54001 TS L # NO NEGATIVE ALTITUDES ALLOWED.
040463,000522: 21,3052 12270 TCF ZDATA2
040464,000523:
040465,000524: # ************************************************************************
040466,000525:
040467,000526: 21,3053 40074 DISPRSET CS FLAGWRD0 # ARE WE IN DESCENT TRAJECTORY?
040468,000527: 21,3054 74752 MASK R10FLBIT
040469,000528: 21,3055 00006 EXTEND
040470,000529: 21,3056 13067 BZF ABORTON # NO.
040471,000530: 21,3057 34744 CAF BIT8 # YES.
040472,000531: 21,3060 71303 MASK IMODES33 # CHECK IF INERTIAL DATA JUST DISPLAYED.
040473,000532: 21,3061 10000 CCS A
040474,000533: 21,3062 34752 CAF BIT2 # YES. DISABLE RR ERROR COUNTER
040475,000534: 21,3063 64744 AD BIT8 # NO. REMOVE DISPLAY INERTIAL DATA
040476,000535: 21,3064 40000 COM
040477,000536: 21,3065 00006 EXTEND
040478,000537: 21,3066 03012 WAND CHAN12
040479,000538: 21,3067 43076 ABORTON CS BITS8/7 # RESET INERTIAL DATA, INTERLEAVE FLAGS.
040480,000539: 21,3070 71303 MASK IMODES33
040481,000540: 21,3071 55303 TS IMODES33
040482,000541: 21,3072 44736 CS DIDFLBIT
040483,000542: 21,3073 70075 MASK FLAGWRD1
040484,000543: 21,3074 54075 TS FLAGWRD1 # RESET DIDFLAG.
040485,000544: 21,3075 15261 TCF TASKOVER
040486,000545:
040487,000546: # ************************************************************************
040488,000547:
040489,000548: 21,3076 00300 BITS8/7 OCT 00300 # INERTIAL DATA AND INTERLEAVE FLAGS.
040490,000549: 21,3077 5020 BITSET = PRIO6
040491,000550:
040492,000551: # ************************************************************************
End of include-file LANDING_ANALOG_DISPLAYS.agc. Parent file is MAIN.agc