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. |
037529,000002: ## Copyright: Public domain.
037530,000003: ## Filename: ASCENT_GUIDANCE.agc
037531,000004: ## Purpose: Part of the reconstructed source code for LMY99 Rev 0,
037532,000005: ## otherwise known as Luminary Rev 99, the second release
037533,000006: ## of the Apollo Guidance Computer (AGC) software for Apollo 11.
037534,000007: ## It differs from LMY99 Rev 1 (the flown version) only in the
037535,000008: ## placement of a single label. The corrections shown here have
037536,000009: ## been verified to have the same bank checksums as AGC developer
037537,000010: ## Allan Klumpp's copy of Luminary Rev 99, and so are believed
037538,000011: ## to be accurate. This file is intended to be a faithful
037539,000012: ## recreation, except that the code format has been changed to
037540,000013: ## conform to the requirements of the yaYUL assembler rather than
037541,000014: ## the original YUL assembler.
037542,000015: ##
037543,000016: ## Assembler: yaYUL
037544,000017: ## Contact: Hartmuth Gutsche <hgutsche@xplornet.com>.
037545,000018: ## Website: www.ibiblio.org/apollo.
037546,000019: ## Pages: 843-856
037547,000020: ## Mod history: 2009-05-23 HG Transcribed from page images.
037548,000021: ## 2009-06-05 RSB Fixed a couple of typos.
037549,000022: ## 2009-06-07 RSB Corrected a typo.
037550,000023: ## 2010-12-31 JL Fixed page number comment.
037551,000024: ## 2016-12-13 RSB GOTOP00H -> GOTOPOOH
037552,000025: ## 2016-12-17 RSB Proofed text comments with octopus/ProoferComments
037553,000026: ## and corrected the errors found.
037554,000027: ## 2017-03-14 RSB Comment-text fixes identified in 5-way
037555,000028: ## side-by-side diff of Luminary 69/99/116/131/210.
037556,000029: ## 2017-08-01 MAS Created from LMY99 Rev 1.
037557,000030:
037558,000031: ## This source code has been transcribed or otherwise adapted from
037559,000032: ## digitized images of a hardcopy from the MIT Museum. The digitization
037560,000033: ## was performed by Paul Fjeld, and arranged for by Deborah Douglas of
037561,000034: ## the Museum. Many thanks to both. The images (with suitable reduction
037562,000035: ## in storage size and consequent reduction in image quality as well) are
037563,000036: ## available online at www.ibiblio.org/apollo. If for some reason you
037564,000037: ## find that the images are illegible, contact me at info@sandroid.org
037565,000038: ## about getting access to the (much) higher-quality images which Paul
037566,000039: ## actually created.
037567,000040: ##
037568,000041: ## The code has been modified to match LMY99 Revision 0, otherwise
037569,000042: ## known as Luminary Revision 99, the Apollo 11 software release preceeding
037570,000043: ## the listing from which it was transcribed. It has been verified to
037571,000044: ## contain the same bank checksums as AGC developer Allan Klumpp's listing
037572,000045: ## of Luminary Revision 99 (for which we do not have scans).
037573,000046: ##
037574,000047: ## Notations on Allan Klumpp's listing read, in part:
037575,000048: ##
037576,000049: ## ASSEMBLE REVISION 099 OF AGC PROGRAM LUMINARY BY NASA 2021112-51
037577,000050:
![]() |
Page 843 |
037579,000052: 34,3642 BANK 34
037580,000053: 34,2000 SETLOC ASCFILT
037581,000054: 34,2000 BANK
037582,000055:
037583,000056: 34,3642 E7,1515 EBANK= DVCNTR
037584,000057:
037585,000058: 34,3642 COUNT* $$/ASENT
037586,000059:
037587,000060: 34,3642 05353 ATMAG TC PHASCHNG
037588,000061: 34,3643 00035 OCT 00035
037589,000062: 34,3644 06037 TC INTPRET
037590,000063: 34,3645 77614 BON
037591,000064: 34,3646 04705 FLRCS
037592,000065: 34,3647 60321 ASCENT
037593,000066: 34,3650 45345 DLOAD DSU
037594,000067: 34,3651 03514 ABDVCONV
037595,000068: 34,3652 26205 MINABDV
037596,000069: 34,3653 43040 BMN CLEAR
037597,000070: 34,3654 60750 ASCTERM4
037598,000071: 34,3655 04267 SURFFLAG
037599,000072: 34,3656 67214 CLEAR SLOAD
037600,000073: 34,3657 02676 RENDWFLG
037601,000074: 34,3660 31716 BIT3H
037602,000075: 34,3661 77471 DDV EXIT
037603,000076: 34,3662 03514 ABDVCONV
037604,000077: 34,3663 52155 DXCH MPAC
037605,000078: 34,3664 53641 DXCH 1/DV3
037606,000079: 34,3665 53637 DXCH 1/DV2
037607,000080: 34,3666 53635 DXCH 1/DV1
037608,000081: 34,3667 53571 DXCH 1/DV0
037609,000082: 34,3670 06037 TC INTPRET
037610,000083: 34,3671 43345 DLOAD DAD
037611,000084: 34,3672 03571 1/DV0
037612,000085: 34,3673 03635 1/DV1
037613,000086: 34,3674 43215 DAD DAD
037614,000087: 34,3675 03637 1/DV2
037615,000088: 34,3676 03641 1/DV3
037616,000089: 34,3677 41205 DMP DMP
037617,000090: 34,3700 02265 VE
037618,000091: 34,3701 21032 2SEC(9)
037619,000092: 34,3702 65252 SL3 PDDL
037620,000093: 34,3703 02271 TBUP
037621,000094: 34,3704 43342 SR1 DAD
037622,000095: 34,3705 77625 DSU
037623,000096: 34,3706 21027 6SEC(18)
037624,000097: 34,3707 16271 STODL TBUP
037625,000098: 34,3710 02265 VE
037626,000099: 34,3711 56342 SR1 DDV
037627,000100: 34,3712 02271 TBUP
037628,000101: 34,3713 36263 STCALL AT
![]() |
Page 844 |
037630,000103: 34,3714 60321 ASCENT
037631,000104: 34,3715 00004 BIT3H OCT 4
037632,000105:
![]() |
Page 845 |
037634,000107: 30,2321 BANK 30
037635,000108: 30,2000 SETLOC ASENT
037636,000109: 30,2000 BANK
037637,000110: 30,2321 COUNT* $$/ASENT
037638,000111:
037639,000112: 30,2321 51575 ASCENT VLOAD ABVAL
037640,000113: 30,2322 03521 R
037641,000114: 30,2323 26301 STOVL /R/MAG
037642,000115: 30,2324 03726 ZAXIS1
037643,000116: 30,2325 72441 DOT SL1
037644,000117: 30,2326 03527 V # Z.V = ZDOT*2(-8).
037645,000118: 30,2327 26313 STOVL ZDOT # ZDOT*2(-7)
037646,000119: 30,2330 03726 ZAXIS1
037647,000120: 30,2331 76435 VXV VSL1
037648,000121: 30,2332 03537 UNIT/R/ # Z X UR = LAXIS*2(-2)
037649,000122: 30,2333 02303 STORE LAXIS # LAXIS*2(-1)
037650,000123: 30,2334 72441 DOT SL1
037651,000124: 30,2335 03527 V # L.V = YDOT*2(-8).
037652,000125: 30,2336 36311 STCALL YDOT # YDOT * 2(-7)
037653,000126: 30,2337 57312 YCOMP
037654,000127: 30,2340 77775 VLOAD
037655,000128: 30,2341 03563 GDT1/2 # LOAD GDT1/2*2(-7) M/CS.
037656,000129: 30,2342 50341 V/SC DOT
037657,000130: 30,2343 27147 2SEC(18)
037658,000131: 30,2344 03537 UNIT/R/ # G.UR*2(9) = GR*2(9).
037659,000132: 30,2345 47315 PDVL VXV # STORE IN PDL(0) (2)
037660,000133: 30,2346 03537 UNIT/R/ # LOAD UNIT/R/ *2(-1).
037661,000134: 30,2347 03527 V # UR*2(-1) X V*2(-7) = H/R*2(-8).
037662,000135: 30,2350 56236 VSQ DDV # H(2)/R(2)*2(-16).
037663,000136: 30,2351 02301 /R/MAG # H(2)/R(3)*2(9).
037664,000137: 30,2352 43352 SL1 DAD
037665,000138: 30,2353 77626 STADR
037666,000139: 30,2354 61462 STODL GEFF # GEFF*2(10)M/CS/CS.
037667,000140: 30,2355 02277 ZDOTD
037668,000141: 30,2356 77625 DSU
037669,000142: 30,2357 02313 ZDOT
037670,000143: 30,2360 02343 STORE DZDOT # DZDOT = (ZDOTD - ZDOT) * 2(7) M/CS.
037671,000144: 30,2361 65361 VXSC PDDL
037672,000145: 30,2362 03726 ZAXIS1
037673,000146: 30,2363 02275 YDOTD
037674,000147: 30,2364 77625 DSU
037675,000148: 30,2365 02311 YDOT
037676,000149: 30,2366 02341 STORE DYDOT # DYDOT = (YDOTD - YDOT) *2(7) M/CS.
037677,000150: 30,2367 65361 VXSC PDDL
037678,000151: 30,2370 02303 LAXIS
037679,000152: 30,2371 02273 RDOTD
![]() |
Page 846 |
037681,000154: 30,2372 77625 DSU
037682,000155: 30,2373 03474 RDOT
037683,000156: 30,2374 02337 STORE DRDOT # DRDOT = (RDOTD - RDOT) * 2(7) M/CS.
037684,000157: 30,2375 53361 VXSC VAD
037685,000158: 30,2376 03537 UNIT/R/
037686,000159: 30,2377 76455 VAD VSL1
037687,000160: 30,2400 77626 STADR
037688,000161: 30,2401 74131 STORE VGVECT # VG = (DRDOT)R + (DYDOT)L + (DZDOT)Z.
037689,000162: 30,2402 41345 DLOAD DMP # LOAD TGO
037690,000163: 30,2403 03517 TGO # TGO GEFF
037691,000164: 30,2404 02315 GEFF
037692,000165: 30,2405 76561 VXSC VSL1
037693,000166: 30,2406 03537 UNIT/R/ # TGO GEFF UR
037694,000167: 30,2407 77645 BVSU
037695,000168: 30,2410 03646 VGVECT # COMPENSATED FOR GEFF
037696,000169: 30,2411 03646 STORE VGVECT # STORE FOR DOWNLINK
037697,000170: 30,2412 76521 MXV VSL1 # GET VGBODY FOR N85 DISPLAY
037698,000171: 30,2413 02146 XNBPIP
037699,000172: 30,2414 27502 STOVL VGBODY
037700,000173: 30,2415 03646 VGVECT
037701,000174: 30,2416 43046 ABVAL BOFF # MAGNITUDE OF VGVECT
037702,000175: 30,2417 04745 FLRCS # IF FLRCS=0,DO NORMAL GUIDANCE
037703,000176: 30,2420 60425 MAINENG
037704,000177: 30,2421 77671 DDV # USE TGO=VG/AT WITH RCS
037705,000178: 30,2422 20001 AT/RCS
037706,000179: 30,2423 37517 STCALL TGO # THIS WILL BE USED ON NEXT CYCLE
037707,000180: 30,2424 60746 ASCTERM2
037708,000181: 30,2425 41471 MAINENG DDV PUSH # VG/VE IN PDL(0) (2)
037709,000182: 30,2426 02265 VE
037710,000183: 30,2427 44205 DMP BDSU # 1 - KT VG/VE
037711,000184: 30,2430 26201 KT1
037712,000185: 30,2431 17771 NEARONE
037713,000186: 30,2432 41205 DMP DMP # TBUP VG(1-KT VG/VE)/VE (0)
037714,000187: 30,2433 02271 TBUP # = TGO
037715,000188: 30,2434 77625 DSU # COMPENSATE FOR TAILOFF
037716,000189: 30,2435 02267 TTO
037717,000190: 30,2436 03517 STORE TGO
037718,000191: 30,2437 57461 SR DCOMP
037719,000192: 30,2440 20614 11D
037720,000193: 30,2441 17454 STODL TTOGO # TGO *2(-28) CS
037721,000194: 30,2442 03517 TGO
037722,000195: 30,2443 45214 BON DSU
037723,000196: 30,2444 03710 IDLEFLAG
037724,000197: 30,2445 60451 T2TEST
037725,000198: 30,2446 21021 4SEC(17) # ( TGO - 4 )*2(-17) CS.
037726,000199: 30,2447 77640 BMN
037727,000200: 30,2450 30355 ENGOFF
037728,000201: 30,2451 77745 T2TEST DLOAD
037729,000202: 30,2452 03517 TGO
037730,000203: 30,2453 50025 DSU BMN # IF TGO - T2 NEG., GO TO CMPONENT
![]() |
Page 847 |
037732,000205: 30,2454 21023 T2A
037733,000206: 30,2455 60612 CMPONENT
037734,000207: 30,2456 45345 DLOAD DSU
037735,000208: 30,2457 02271 TBUP
037736,000209: 30,2460 03517 TGO
037737,000210: 30,2461 45071 DDV CALL # 1- TGO/TBUP
037738,000211: 30,2462 02271 TBUP
037739,000212: 30,2463 61036 LOGSUB
037740,000213: 30,2464 41461 SL PUSH # -L IN PDL(0) (2)
037741,000214: 30,2465 20206 5
037742,000215: 30,2466 44265 BDDV BDSU # -TGO/L*2(-17)
037743,000216: 30,2467 03517 TGO
037744,000217: 30,2470 02271 TBUP # TBUP + TGO/L = D12*2(-17)
037745,000218: 30,2471 43006 PUSH BON # STORE IN PDL(2) (4)
037746,000219: 30,2472 04703 FLPC # IF FLPC = 1, GO TO CONST
037747,000220: 30,2473 60502 NORATES
037748,000221: 30,2474 45345 DLOAD DSU
037749,000222: 30,2475 03517 TGO
037750,000223: 30,2476 21025 T3
037751,000224: 30,2477 43044 BPL SET # FLPC=1
037752,000225: 30,2500 60510 RATES
037753,000226: 30,2501 04463 FLPC
037754,000227: 30,2502 77745 NORATES DLOAD
037755,000228: 30,2503 06522 HI6ZEROS
037756,000229: 30,2504 02351 STORE PRATE # B = 0
037757,000230: 30,2505 02353 STORE YRATE # D = 0
037758,000231: 30,2506 77650 GOTO
037759,000232: 30,2507 60572 CONST # GO TO CONST
037760,000233: 30,2510 45345 RATES DLOAD DSU
037761,000234: 30,2511 03517 TGO
037762,000235: 30,2512 00003 02D # TGO - D12 = D21*2(-17)
037763,000236: 30,2513 72406 PUSH SL1 # IN PDL(4) (6)
037764,000237: 30,2514 52421 BDSU SL3 # (1/2TGO - D21)*2(-13) = E * 2(-13)
037765,000238: 30,2515 03517 TGO # (8)
037766,000239: 30,2516 41325 PDDL DMP # IN PDL(6)
037767,000240: 30,2517 03517 TGO
037768,000241: 30,2520 03474 RDOT # RDOT TGO * 2(-24)
037769,000242: 30,2521 45215 DAD DSU # R + RDOT TGO
037770,000243: 30,2522 02301 /R/MAG # R + RDOT TGO - RCO
037771,000244: 30,2523 03631 RCO # MPAC = -DR *2(-24).
037772,000245: 30,2524 41325 PDDL DMP # -DR IN PDL(8) (10)
037773,000246: 30,2525 02337 DRDOT
037774,000247: 30,2526 00005 04D # D21 DRDOT*2(-24)
037775,000248: 30,2527 62415 DAD SL2 # (D21 DRDOT-DR)*2(-22) (8)
037776,000249: 30,2530 56271 DDV DDV
037777,000250: 30,2531 00007 06D # (D21 DRDOT-DR)/E*2(-9)
037778,000251: 30,2532 03517 TGO
037779,000252: 30,2533 02351 STORE PRATE # B * 2(8)
037780,000253: 30,2534 71240 BMN DLOAD # B>0 NOT PERMITTED
037781,000254: 30,2535 60541 CHKBMAG
![]() |
Page 848 |
037783,000256: 30,2536 06522 HI6ZEROS
037784,000257: 30,2537 36351 STCALL PRATE
037785,000258: 30,2540 60553 PROK
037786,000259: 30,2541 56202 CHKBMAG SR4 DDV # B*2(4)
037787,000260: 30,2542 02271 TBUP # (B / TAU) * 2(21)
037788,000261: 30,2543 51025 DSU BPL
037789,000262: 30,2544 26203 PRLIMIT # ( B / TAU ) * 2(21) MAX.
037790,000263: 30,2545 60553 PROK
037791,000264: 30,2546 41345 DLOAD DMP
037792,000265: 30,2547 26203 PRLIMIT
037793,000266: 30,2550 02271 TBUP # B MAX. * 2(4)
037794,000267: 30,2551 77612 SL4 # BMAX*2(8)
037795,000268: 30,2552 02351 STORE PRATE
037796,000269: 30,2553 77745 PROK DLOAD
037797,000270: 30,2554 03517 TGO
037798,000271: 30,2555 43205 DMP DAD # YDOT TGO
037799,000272: 30,2556 02311 YDOT
037800,000273: 30,2557 02335 Y # Y + YDOT TGO
037801,000274: 30,2560 65225 DSU PDDL # Y + YDOT TGO - YCO
037802,000275: 30,2561 03633 YCO # MPAC = - DY*2(-24.) IN PDL(8) (10)
037803,000276: 30,2562 02341 DYDOT
037804,000277: 30,2563 43205 DMP DAD # D21 DYDOT - DY (8)
037805,000278: 30,2564 00005 04D
037806,000279: 30,2565 56312 SL2 DDV # (D21 DYDOT - DY)/E*2(-9)
037807,000280: 30,2566 40271 DDV SETPD # (D21 DYDOT - DY)/E TGO*2(8)
037808,000281: 30,2567 03517 TGO # = D*2(8)
037809,000282: 30,2570 00005 04
037810,000283: 30,2571 02353 STORE YRATE
037811,000284: 30,2572 41345 CONST DLOAD DMP # LOAD B*2(8)
037812,000285: 30,2573 02351 PRATE # B D12*2(-9)
037813,000286: 30,2574 00003 02D
037814,000287: 30,2575 56325 PDDL DDV # D12 B IN PDL(4) (6)
037815,000288: 30,2576 02337 DRDOT # LOAD DRDOT*2(-7)
037816,000289: 30,2577 00001 00D # -DRDOT/L*2(-7)
037817,000290: 30,2600 45302 SR2 DSU # (-DRDOT/L-D12 B)=A*2(-9) (4)
037818,000291: 30,2601 77626 STADR
037819,000292: 30,2602 61432 STODL PCONS
037820,000293: 30,2603 02353 YRATE # D*2(8)
037821,000294: 30,2604 65205 DMP PDDL # D12 D,EXCH WITH -L IN PDL(0) (2,2)
037822,000295: 30,2605 60465 BDDV SR2 # -DYDOT/L*2(-9)
037823,000296: 30,2606 02341 DYDOT
037824,000297: 30,2607 77625 DSU # (-DYDOT/L-D12 D)=C*2(-9)
037825,000298: 30,2610 00001 00D
037826,000299: 30,2611 02347 STORE YCONS
037827,000300: 30,2612 71201 CMPONENT SETPD DLOAD
037828,000301: 30,2613 00001 00D
037829,000302: 30,2614 27147 100CS
037830,000303: 30,2615 77605 DMP
037831,000304: 30,2616 02351 PRATE # B(T-T0)*2(-9)
037832,000305: 30,2617 56215 DAD DDV # (A+B(T-T0))*2(-9)
![]() |
Page 849 |
037834,000307: 30,2620 02345 PCONS # (A+B(T-T0))/TBUP*2(8)
037835,000308: 30,2621 02271 TBUP
037836,000309: 30,2622 45352 SL1 DSU
037837,000310: 30,2623 02315 GEFF # ATR*2(9)
037838,000311: 30,2624 16357 STODL ATR
037839,000312: 30,2625 27147 100CS
037840,000313: 30,2626 43205 DMP DAD
037841,000314: 30,2627 02353 YRATE
037842,000315: 30,2630 02347 YCONS # (C+D(T-T0))*2(-9)
037843,000316: 30,2631 72471 DDV SL1
037844,000317: 30,2632 02271 TBUP
037845,000318: 30,2633 02355 STORE ATY # ATY*2(9)
037846,000319: 30,2634 65361 VXSC PDDL # ATY UY*2(8) (6)
037847,000320: 30,2635 02303 LAXIS
037848,000321: 30,2636 02357 ATR
037849,000322: 30,2637 53361 VXSC VAD # (0)
037850,000323: 30,2640 03537 UNIT/R/
037851,000324: 30,2641 41572 VSL1 PUSH # AH*2(9) IN PDL(0) (6)
037852,000325: 30,2642 65246 ABVAL PDDL # AH(2) IN PDL(34)
037853,000326: 30,2643 02263 AT # AHMAG IN PDL(6) (8)
037854,000327: 30,2644 45316 DSQ DSU # (AT(2)-AH(2))*2(18)
037855,000328: 30,2645 00043 34D # =ATP2*2(18)
037856,000329: 30,2646 41525 PDDL PUSH # (12)
037857,000330: 30,2647 02263 AT
037858,000331: 30,2650 45316 DSQ DSU # (AT(2)KR(2)-AH(2))*2(18) (10)
037859,000332: 30,2651 00043 34D # =ATP3*2(18)
037860,000333: 30,2652 71240 BMN DLOAD # IF ATP3 NEG,GO TO NO-ATP
037861,000334: 30,2653 60657 NO-ATP # LOAD ATP2, IF ATP3 POS
037862,000335: 30,2654 00011 8D
037863,000336: 30,2655 52166 SQRT GOTO # ATP*2(9)
037864,000337: 30,2656 60665 AIMER
037865,000338: 30,2657 55345 NO-ATP DLOAD BDDV # KR AT/AH = KH (8)
037866,000339: 30,2660 00007 6D
037867,000340: 30,2661 77761 VXSC # KH AH*2(9)
037868,000341: 30,2662 00001 00D
037869,000342: 30,2663 14001 STODL 00D # STORE NEW AH IN PDL(0)
037870,000343: 30,2664 06522 HI6ZEROS
037871,000344: 30,2665 77765 AIMER SIGN
037872,000345: 30,2666 02343 DZDOT
037873,000346: 30,2667 02361 STORE ATP
037874,000347: 30,2670 77761 VXSC
037875,000348: 30,2671 03726 ZAXIS1 # ATP ZAXIS *2(8).
037876,000349: 30,2672 53372 VSL1 VAD # AT*2(9)
037877,000350: 30,2673 00001 00D
037878,000351: 30,2674 03254 STORE UNFC/2 # WILL BE OVERWRITTEN IF IN VERT. RISE.
037879,000352: 30,2675 43001 SETPD BON
037880,000353: 30,2676 00001 00D
037881,000354: 30,2677 04704 FLPI
037882,000355: 30,2700 60220 P12RET
037883,000356: 30,2701 77614 BON
![]() |
Page 850 |
037885,000358: 30,2702 04701 FLVR
037886,000359: 30,2703 60755 CHECKALT
037887,000360: 30,2704 57575 MAINLINE VLOAD VCOMP
037888,000361: 30,2705 03537 UNIT/R/
037889,000362: 30,2706 17262 STODL UNWC/2
037890,000363: 30,2707 03654 TXO
037891,000364: 30,2710 51025 DSU BPL
037892,000365: 30,2711 01235 PIPTIME
037893,000366: 30,2712 60721 ASCTERM
037894,000367: 30,2713 77614 BON
037895,000368: 30,2714 04711 ROTFLAG
037896,000369: 30,2715 57273 ANG1CHEK
037897,000370: 30,2716 43014 CLRXFLAG CLEAR CLEAR
037898,000371: 30,2717 01664 NOR29FLG # START R29 IN ASCENT PHASE.
037899,000372: 30,2720 06666 XOVINFLG # ALLOW X-AXIS OVERRIDE
037900,000373: 30,2721 77776 ASCTERM EXIT
037901,000374: 30,2722 30105 CA FLAGWRD9
037902,000375: 30,2723 74742 MASK FLRCSBIT
037903,000376: 30,2724 10000 CCS A
037904,000377: 30,2725 12747 TCF ASCTERM3
037905,000378: 30,2726 06037 TC INTPRET
037906,000379: 30,2727 77624 CALL
037907,000380: 30,2730 61111 FINDCDUW -2
037908,000381: 30,2731 77776 ASCTERM1 EXIT
037909,000382: 30,2732 30105 +1 CA FLAGWRD9 # INSURE THAT THE NOUN 63 DISPLAY IS
037910,000383: 30,2733 74742 MASK FLRCSBIT # BYPASSED IF WE ARE IN THE RCS TRIMMING
037911,000384: 30,2734 10000 CCS A # MODE OF OPERATION
037912,000385: 30,2735 12747 TCF ASCTERM3
037913,000386: 30,2736 30104 CA FLAGWRD8 # BYPASS DISPLAYS IF ENGINE FAILURE IS
037914,000387: 30,2737 74742 MASK FLUNDBIT # INDICATED.
037915,000388: 30,2740 10000 CCS A
037916,000389: 30,2741 12747 TCF ASCTERM3
037917,000390: 30,2742 33033 CAF V06N63*
037918,000391: 30,2743 04616 TC BANKCALL
037919,000392: 30,2744 20451 CADR GODSPR
037920,000393: 30,2745 12747 TCF ASCTERM3
037921,000394: 30,2746 77776 ASCTERM2 EXIT
037922,000395: 30,2747 15155 ASCTERM3 TCF ENDOFJOB
037923,000396: 30,2750 77776 ASCTERM4 EXIT
037924,000397: 30,2751 00004 INHINT
037925,000398: 30,2752 04674 TC IBNKCALL # NO GUIDANCE THIS CYCLE -- HENCE ZERO
037926,000399: 30,2753 40153 CADR ZATTEROR # THE DAP ATTITUDE ERRORS.
037927,000400: 30,2754 12732 TCF ASCTERM1 +1
037928,000401:
037929,000402: 30,2755 45345 CHECKALT DLOAD DSU
037930,000403: 30,2756 02301 /R/MAG
037931,000404: 30,2757 02333 /LAND/
037932,000405: 30,2760 50025 DSU BMN # IF H LT 25K CHECK Z AXIS ORIENTATION.
037933,000406: 30,2761 26700 25KFT
037934,000407: 30,2762 16667 CHECKYAW
![]() |
Page 851 |
037936,000409: 30,2763 43014 EXITVR CLEAR BON
037937,000410: 30,2764 04661 FLVR
037938,000411: 30,2765 04711 ROTFLAG
037939,000412: 30,2766 60704 MAINLINE
037940,000413: 30,2767 43345 DLOAD DAD
037941,000414: 30,2770 01235 PIPTIME
037942,000415: 30,2771 25755 10SECS
037943,000416: 30,2772 37654 STCALL TXO
037944,000417: 30,2773 60704 MAINLINE
037945,000418: 30,2774 77614 EXITVR1 CLRGO
037946,000419: 30,2775 04631 ROTFLAG
037947,000420: 30,2776 60763 EXITVR
037948,000421:
037949,000422: 27,2000 SETLOC ASENT1
037950,000423: 27,2000 BANK
037951,000424: 27,3273 COUNT* $$/ASENT
037952,000425:
037953,000426: 27,3273 50375 ANG1CHEK VLOAD DOT
037954,000427: 27,3274 03254 UNFC/2
037955,000428: 27,3275 02146 XNBPIP
037956,000429: 27,3276 51025 DSU BPL
037957,000430: 27,3277 02577 COSTHET1
037958,000431: 27,3300 57307 OFFROT
037959,000432: 27,3301 50375 VLOAD DOT
037960,000433: 27,3302 02146 XNBPIP
037961,000434: 27,3303 03537 UNIT/R/
037962,000435: 27,3304 50025 DSU BMN
037963,000436: 27,3305 02601 COSTHET2
037964,000437: 27,3306 30351 KEEPVR1
037965,000438: 27,3307 77614 OFFROT CLRGO
037966,000439: 27,3310 04631 ROTFLAG
037967,000440: 27,3311 60716 CLRXFLAG
037968,000441:
037969,000442: 07,2667 BANK 7
037970,000443: 07,2000 SETLOC ASENT2
037971,000444: 07,2000 BANK
037972,000445: 07,2667 COUNT* $$/ASENT
037973,000446:
037974,000447: 07,2667 07,2667 SETXFLAG = CHECKYAW
037975,000448:
037976,000449: 07,2667 77614 CHECKYAW SET
037977,000450: 07,2670 06466 XOVINFLG # PROHIBIT X-AXIS OVERRIDE
037978,000451: 07,2671 74345 DLOAD VXSC
037979,000452: 07,2672 02355 ATY
037980,000453: 07,2673 02303 LAXIS
037981,000454: 07,2674 74325 PDDL VXSC
037982,000455: 07,2675 02361 ATP
037983,000456: 07,2676 03726 ZAXIS1
037984,000457: 07,2677 53455 VAD UNIT
037985,000458: 07,2700 50206 PUSH DOT
![]() |
Page 852 |
037987,000460: 07,2701 02154 YNBPIP
037988,000461: 07,2702 45246 ABS DSU
037989,000462: 07,2703 13503 SIN5DEG
037990,000463: 07,2704 71244 BPL DLOAD
037991,000464: 07,2705 30347 KEEPVR
037992,000465: 07,2706 03474 RDOT
037993,000466: 07,2707 51025 DSU BPL
037994,000467: 07,2710 13505 40FPS
037995,000468: 07,2711 60774 EXITVR1
037996,000469: 07,2712 77650 GOTO
037997,000470: 07,2713 30347 KEEPVR
037998,000471:
037999,000472: 05,3502 BANK 5
038000,000473: 05,2000 SETLOC ASENT3
038001,000474: 05,2000 BANK
038002,000475: 05,3502 COUNT* $$/ASENT
038003,000476:
038004,000477: 05,3502 00545 00171 SIN5DEG 2DEC 0.08716 B-2
038005,000478: 05,3504 00017 23305 40FPS 2DEC 0.12192 B-7
038006,000479:
038007,000480: 14,2347 BANK 14
038008,000481: 14,2000 SETLOC ASENT4
038009,000482: 14,2000 BANK
038010,000483: 14,2347 COUNT* $$/ASENT
038011,000484:
038012,000485: 14,2347 45575 KEEPVR VLOAD STADR # RECALL LOSVEC FROM PUSHLIST
038013,000486: 14,2350 74515 STORE UNWC/2
038014,000487: 14,2351 77775 KEEPVR1 VLOAD
038015,000488: 14,2352 03537 UNIT/R/
038016,000489: 14,2353 37254 STCALL UNFC/2
038017,000490: 14,2354 60721 ASCTERM
038018,000491:
038019,000492: 14,2355 77634 ENGOFF RTB
038020,000493: 14,2356 21573 LOADTIME
038021,000494: 14,2357 43225 DSU DAD
038022,000495: 14,2360 01235 PIPTIME
038023,000496: 14,2361 03454 TTOGO
038024,000497: 14,2362 77476 DCOMP EXIT
038025,000498: 14,2363 07257 TC TPAGREE # FORCE SIGN AGREEMENT ON MPAC, MPAC +1.
038026,000499: 14,2364 35016 CAF EBANK7
038027,000500: 14,2365 54003 TS EBANK
038028,000501: 14,2366 E7,1516 EBANK= TGO
038029,000502: 14,2366 00004 INHINT
038030,000503: 14,2367 10155 CCS MPAC +1
038031,000504: 14,2370 12373 TCF +3 # C(A) = DT - 1 BIT
038032,000505: 14,2371 12373 TCF +2 # C(A) = 0
038033,000506: 14,2372 34755 CAF ZERO # C(A) = 0
038034,000507: 14,2373 64753 AD BIT1 # C(A) = 1 BIT OR DT.
![]() |
Page 853 |
038036,000509: 14,2374 55644 TS ENGOFFDT
038037,000510: 14,2375 05173 TC TWIDDLE
038038,000511: 14,2376 02410 ADRES ENGOFF1
038039,000512: 14,2377 05353 TC PHASCHNG
038040,000513: 14,2400 47014 OCT 47014
038041,000514: 14,2401 76133 -GENADR ENGOFFDT
038042,000515: 14,2402 E7,1516 EBANK= TGO
038043,000516: 14,2402 02410 30067 2CADR ENGOFF1
038044,000517:
038045,000518: 14,2404 06037 TC INTPRET
038046,000519: 14,2405 52014 SET GOTO
038047,000520: 14,2406 03470 IDLEFLAG # DISABLE DELTA-V MONITOR
038048,000521: 14,2407 60451 T2TEST
038049,000522:
038050,000523: 14,2410 04674 ENGOFF1 TC IBNKCALL # SHUT OFF THE ENGINE.
038051,000524: 14,2411 75551 CADR ENGINOF2
038052,000525:
038053,000526: 14,2412 35027 CAF PRIO17 # SET UP A JOB FOR THE ASCENT GUIDANCE
038054,000527: 14,2413 05105 TC FINDVAC # POSTBURN LOGIC.
038055,000528: 14,2414 E7,1455 EBANK= WHICH
038056,000529: 14,2414 02424 30067 2CADR CUTOFF
038057,000530:
038058,000531: 14,2416 05353 TC PHASCHNG
038059,000532: 14,2417 07024 OCT 07024
038060,000533: 14,2420 17000 OCT 17000
038061,000534: 14,2421 E7,1516 EBANK= TGO
038062,000535: 14,2421 02424 30067 2CADR CUTOFF
038063,000536:
038064,000537: 14,2423 15261 TCF TASKOVER
038065,000538:
038066,000539: 14,2424 05504 CUTOFF TC UPFLAG # SET FLRCS FLAG.
038067,000540: 14,2425 00214 ADRES FLRCS
038068,000541:
038069,000542: 14,2426 32445 -5 CAF V16N63
038070,000543: 14,2427 04616 TC BANKCALL
038071,000544: 14,2430 20476 CADR GOFLASH
038072,000545: 14,2431 12434 TCF +3
038073,000546: 14,2432 12436 TCF CUTOFF1
038074,000547: 14,2433 12426 TCF -5
038075,000548:
038076,000549: 14,2434 04635 +3 TC POSTJUMP
038077,000550: 14,2435 61007 CADR TERMASC
038078,000551:
038079,000552: 14,2436 00004 CUTOFF1 INHINT
038080,000553: 14,2437 04674 TC IBNKCALL # ZERO ATTITUDE ERRORS BEFORE REDUCING DB.
038081,000554: 14,2440 40153 CADR ZATTEROR
038082,000555: 14,2441 04674 TC IBNKCALL
038083,000556: 14,2442 40140 CADR SETMINDB
038084,000557: 14,2443 04635 TC POSTJUMP
038085,000558: 14,2444 60777 CADR CUTOFF2
![]() |
Page 854 |
038087,000560:
038088,000561: 14,2445 04077 V16N63 VN 1663
038089,000562: 30,2777 BANK 30
038090,000563: 30,2000 SETLOC ASENT5
038091,000564: 30,2000 BANK
038092,000565: 30,2777 COUNT* $$/ASENT
038093,000566:
038094,000567: 30,2777 05353 CUTOFF2 TC PHASCHNG
038095,000568: 30,3000 04024 OCT 04024
038096,000569:
038097,000570: 30,3001 33017 CAF V16N85C
038098,000571: 30,3002 04616 TC BANKCALL
038099,000572: 30,3003 20476 CADR GOFLASH
038100,000573: 30,3004 13007 TCF TERMASC
038101,000574: 30,3005 13007 TCF +2 # PROCEED
038102,000575: 30,3006 12777 TCF CUTOFF2
038103,000576:
038104,000577: 30,3007 05353 TERMASC TC PHASCHNG
038105,000578: 30,3010 04024 OCT 04024
038106,000579:
038107,000580: 30,3011 00004 INHINT # RESTORE DEADBAND DESIRED BY ASTRONAUT.
038108,000581: 30,3012 04674 TC IBNKCALL
038109,000582: 30,3013 40123 CADR RESTORDB
038110,000583: 30,3014 05516 TC DOWNFLAG # DISALLOW ABORTS AT THIS TIME.
038111,000584: 30,3015 00215 ADRES LETABORT
038112,000585: 30,3016 16001 TCF GOTOPOOH
038113,000586:
038114,000587: 30,3017 04125 V16N85C VN 1685
038115,000588:
038116,000589: 27,3312 BANK 27
038117,000590: 27,2000 SETLOC ASENT1
038118,000591: 27,2000 BANK
038119,000592: 27,3312 COUNT* $$/ASENT
038120,000593:
038121,000594: 27,3312 50375 YCOMP VLOAD DOT
038122,000595: 27,3313 03537 UNIT/R/
038123,000596: 27,3314 03720 QAXIS
038124,000597: 27,3315 41312 SL2 DMP
038125,000598: 27,3316 03631 RCO
038126,000599: 27,3317 02335 STORE Y
038127,000600: 27,3320 77616 RVQ
038128,000601:
038129,000602: 30,3020 BANK 30
038130,000603: 30,2000 SETLOC ASENT
038131,000604: 30,2000 BANK
038132,000605:
![]() |
Page 855 |
038134,000607: # ASCENT GUIDANCE CONSTANTS
038135,000608:
038136,000609: 30,3020 33,3146 100CS EQUALS 2SEC(18)
038137,000610: 30,3020 30,3022 T2A EQUALS 2SEC(17)
038138,000611: 30,3020 00062 00000 4SEC(17) 2DEC 400 B-17
038139,000612: 30,3022 00031 00000 2SEC(17) 2DEC 200 B-17
038140,000613: 30,3024 00175 00000 T3 2DEC 1000 B-17
038141,000614: 30,3026 00045 20000 6SEC(18) 2DEC 600 B-18
038142,000615: 30,3030 00010 BIT4H OCT 10
038143,000616: 30,3031 14400 00000 2SEC(9) 2DEC 200 B-9
038144,000617: 30,3033 01477 V06N63* VN 0663
038145,000618: 30,3034 01514 V06N76 VN 0676
038146,000619: 30,3035 01441 V06N33A VN 0633
038147,000620:
038148,000621: 33,2200 BANK 33
038149,000622: 33,2000 SETLOC ASENT6
038150,000623: 33,2000 BANK
038151,000624: 33,2200 COUNT* $$/ASENT
038152,000625:
038153,000626: 33,2200 20000 00000 KT1 2DEC 0.5000
038154,000627: 33,2202 75751 41775 PRLIMIT 2DEC -.0639 # (B/TBUP)MIN=-.1FT.SEC(-3)
038155,000628: 33,2204 00022 07212 MINABDV 2DEC .0356 B-5 # 10 PERCENT BIGGER THAN GRAVITY
038156,000629: 33,2206 E7,1570 1/DV0 = MASS1
038157,000630:
![]() |
Page 856 |
038159,000632: # THE LOGARITHM SUBROUTINE
038160,000633:
038161,000634: 24,3670 BANK 24
038162,000635: 30,2000 SETLOC FLOGSUB
038163,000636: 30,2000 BANK
038164,000637:
038165,000638: # INPUT ..... X IN MPAC
038166,000639: # OUTPUT ..... -LOG(X) IN MPAC
038167,000640:
038168,000641: 30,3036 44301 LOGSUB NORM BDSU
038169,000642: 30,3037 00163 MPAC +6
038170,000643: 30,3040 17771 NEARONE
038171,000644: 30,3041 77776 EXIT
038172,000645: 30,3042 07222 TC POLY
038173,000646: 30,3043 00006 DEC 6 B-14
038174,000647: 30,3044 00000 00002 2DEC .0000000060
038175,000648: 30,3046 76777 77175 2DEC -.0312514377
038176,000649: 30,3050 77400 75416 2DEC -.0155686771
038177,000650: 30,3052 77507 65515 2DEC -.0112502068
038178,000651: 30,3054 77741 63547 2DEC -.0018545108
038179,000652: 30,3056 77052 55373 2DEC -.0286607906
038180,000653: 30,3060 01167 30361 2DEC .0385598563
038181,000654: 30,3062 76520 75267 2DEC -.0419361902
038182,000655:
038183,000656: 30,3064 34755 CAF ZERO
038184,000657: 30,3065 54156 TS MPAC +2
038185,000658: 30,3066 00006 EXTEND
038186,000659: 30,3067 33103 DCA CLOG2/32
038187,000660: 30,3070 52155 DXCH MPAC
038188,000661: 30,3071 52132 DXCH BUF +1
038189,000662: 30,3072 30162 CA MPAC +6
038190,000663: 30,3073 07307 TC SHORTMP
038191,000664: 30,3074 52156 DXCH MPAC +1
038192,000665: 30,3075 52155 DXCH MPAC
038193,000666: 30,3076 52132 DXCH BUF +1
038194,000667: 30,3077 20155 DAS MPAC
038195,000668: 30,3100 06037 TC INTPRET
038196,000669: 30,3101 43476 DCOMP RVQ
038197,000670:
038198,000671: 30,3102 00542 34414 CLOG2/32 2DEC .0216608494
038199,000672:
End of include-file ASCENT_GUIDANCE.agc. Parent file is MAIN.agc