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