Source Code
![]() |
This source code is very close to the Apollo Guidance Computer software for the
Apollo 13 Lunar module. This revision of the Luminary 131 program is from December
of 1969, whereas there was a later revision in January of 1970, and still another
revision in February, which is the code that flew on the mission.
As far as this transcription is concerned, it was originally from a copy made in 1991 of
a printout from the collection of AGC developer Don Eyles for collector David Craig.
It was subsequently scanned by Gary Neff, reprocessed for online
presentation at the now-discontinued History of Recent Science and Technology (HRST) website
of MIT's Dibner Institute (the full-quality scans being discarded in the process),
and finally transcribed by Ron Burkey for the Virtual AGC Project. Although a
high-quality replacement scan for a completely illegible page was later provided by Gary
Neff, the reduced legibility of the reprocessed HRST posting nevertheless caused many
errors to be introduced into the transcription. Accordingly, a second scan of the same physical
printout was made in 2017 for the Virtual AGC Project's collection at the Internet Archive,
and used to correct the transcription errors. All of the scanned materials mentioned,
as well as other Luminary 131 related material, are available online.
Don Eyles apprently made additional hand-written notes in printout between 1991 and 2017,
so the two scans are not identical in that respect. The page-headings in the printout read, in part:GAP: ASSEMBLE REVISION 131 OF AGC PROGRAM LUMINARY BY NASA 2021112-091 17:53 DEC. 19, 1969Note that the date is the date the printout was made, not the date on which the program revision was released, although these happen to be very close together. |
035859,000002: ## Copyright: Public domain.
035860,000003: ## Filename: ASCENT_GUIDANCE.agc
035861,000004: ## Purpose: A section of Luminary 1C, revision 131.
035862,000005: ## It is part of the source code for the Lunar Module's (LM)
035863,000006: ## Apollo Guidance Computer (AGC) for Apollo 13.
035864,000007: ## This file is intended to be a faithful transcription, except
035865,000008: ## that the code format has been changed to conform to the
035866,000009: ## requirements of the yaYUL assembler rather than the
035867,000010: ## original YUL assembler.
035868,000011: ## Reference: pp. 836-851
035869,000012: ## Contact: Ron Burkey <info@sandroid.org>.
035870,000013: ## Website: www.ibiblio.org/apollo/index.html
035871,000014: ## Mod history: 05/26/03 RSB. Began transcribing.
035872,000015: ## 05/14/05 RSB Corrected website reference above.
035873,000016: ## 2010-10-25 JL Added missing # in comments.
035874,000017: ## 2017-01-06 RSB Page numbers now agree with those on the
035875,000018: ## original hardcopy, as opposed to the PDF page
035876,000019: ## numbers in 1701.pdf.
035877,000020: ## 2017-02-26 RSB Proofed comment text using octopus/ProoferComments.
035878,000021: ## 2017-03-01 RSB Fixed lingering typos.
035879,000022: ## 2017-03-14 RSB Comment-text fixes identified in 5-way
035880,000023: ## side-by-side diff of Luminary 69/99/116/131/210.
035881,000024:
![]() |
Page 836 |
035883,000026: 34,3372 BANK 34
035884,000027: 34,2000 SETLOC ASCFILT
035885,000028: 34,2000 BANK
035886,000029:
035887,000030: 34,3372 E7,1515 EBANK= DVCNTR
035888,000031:
035889,000032: 34,3372 COUNT* $$/ASENT
035890,000033:
035891,000034: 34,3372 05353 ATMAG TC PHASCHNG
035892,000035: 34,3373 00035 OCT 00035
035893,000036: 34,3374 06042 TC INTPRET
035894,000037: 34,3375 77614 BON
035895,000038: 34,3376 04705 FLRCS
035896,000039: 34,3377 60315 ASCENT
035897,000040: 34,3400 45345 DLOAD DSU
035898,000041: 34,3401 03514 ABDVCONV
035899,000042: 34,3402 26203 MINABDV
035900,000043: 34,3403 43040 BMN CLEAR
035901,000044: 34,3404 60756 ASCTERM4
035902,000045: 34,3405 04267 SURFFLAG
035903,000046: 34,3406 67214 CLEAR SLOAD
035904,000047: 34,3407 02676 RENDWFLG
035905,000048: 34,3410 31446 BIT3H
035906,000049: 34,3411 77471 DDV EXIT
035907,000050: 34,3412 03514 ABDVCONV
035908,000051: 34,3413 52155 DXCH MPAC
035909,000052: 34,3414 53641 DXCH 1/DV3
035910,000053: 34,3415 53637 DXCH 1/DV2
035911,000054: 34,3416 53635 DXCH 1/DV1
035912,000055: 34,3417 53571 DXCH 1/DV0
035913,000056: 34,3420 06042 TC INTPRET
035914,000057: 34,3421 43345 DLOAD DAD
035915,000058: 34,3422 03571 1/DV0
035916,000059: 34,3423 03635 1/DV1
035917,000060: 34,3424 43215 DAD DAD
035918,000061: 34,3425 03637 1/DV2
035919,000062: 34,3426 03641 1/DV3
035920,000063: 34,3427 41205 DMP DMP
035921,000064: 34,3430 02265 VE
035922,000065: 34,3431 21017 2SEC(9)
035923,000066: 34,3432 65252 SL3 PDDL
035924,000067: 34,3433 02271 TBUP
035925,000068: 34,3434 43342 SR1 DAD
035926,000069: 34,3435 77625 DSU
035927,000070: 34,3436 21014 6SEC(18)
035928,000071: 34,3437 16271 STODL TBUP
035929,000072: 34,3440 02265 VE
035930,000073: 34,3441 56342 SR1 DDV
035931,000074: 34,3442 02271 TBUP
035932,000075: 34,3443 36263 STCALL AT
![]() |
Page 837 |
035934,000077: 34,3444 60315 ASCENT
035935,000078: 34,3445 00004 BIT3H OCT 4
035936,000079:
![]() |
Page 838 |
035938,000081: 30,2315 BANK 30
035939,000082: 30,2000 SETLOC ASENT
035940,000083: 30,2000 BANK
035941,000084: 30,2315 COUNT* $$/ASENT
035942,000085:
035943,000086: 30,2315 51575 ASCENT VLOAD ABVAL
035944,000087: 30,2316 03521 R
035945,000088: 30,2317 26301 STOVL /R/MAG
035946,000089: 30,2320 03726 ZAXIS1
035947,000090: 30,2321 72441 DOT SL1
035948,000091: 30,2322 03527 V # Z.V = ZDOT*2(-8).
035949,000092: 30,2323 26313 STOVL ZDOT # ZDOT*2(-7)
035950,000093: 30,2324 03726 ZAXIS1
035951,000094: 30,2325 76435 VXV VSL1
035952,000095: 30,2326 03537 UNIT/R/ # Z X UR = LAXIS*2(-2)
035953,000096: 30,2327 02303 STORE LAXIS # LAXIS*2(-1)
035954,000097: 30,2330 72441 DOT SL1
035955,000098: 30,2331 03527 V # L.V = YDOT*2(-8).
035956,000099: 30,2332 36311 STCALL YDOT # YDOT * 2(-7)
035957,000100: 30,2333 57313 YCOMP
035958,000101: 30,2334 77775 VLOAD
035959,000102: 30,2335 03563 GDT1/2 # LOAD GDT1/2*2(-7) M/CS.
035960,000103: 30,2336 50341 V/SC DOT
035961,000104: 30,2337 27104 2SEC(18)
035962,000105: 30,2340 03537 UNIT/R/ # G.UR*2(9) = GR*2(9).
035963,000106: 30,2341 47315 PDVL VXV # STORE IN PDL(0) (2)
035964,000107: 30,2342 03537 UNIT/R/ # LOAD UNIT/R/ *2(-1).
035965,000108: 30,2343 03527 V # UR*2(-1) X V*2(-7) = H/R*2(-8).
035966,000109: 30,2344 56236 VSQ DDV # H(2)/R(2)*2(-16).
035967,000110: 30,2345 02301 /R/MAG # H(2)/R(3)*2(9).
035968,000111: 30,2346 43352 SL1 DAD
035969,000112: 30,2347 77626 STADR
035970,000113: 30,2350 75462 STORE GEFF # GEFF*2(10) M/CS/CS
035971,000114: 30,2351 45014 BOFF CALL # IF P7071FLG = 1 (I.E. P70 OR P71)
035972,000115: 30,2352 04742 P7071FLG # CALL ZDOTDCMP TO UPDATE ZDOTD
035973,000116: 30,2353 60355 +2 # ON THE BASIS OF THE LAST RP.
035974,000117: 30,2354 71524 ZDOTDCMP
035975,000118: 30,2355 45345 +2 DLOAD DSU
035976,000119: 30,2356 02277 ZDOTD
035977,000120: 30,2357 02313 ZDOT
035978,000121: 30,2360 02343 STORE DZDOT # DZDOT = (ZDOTD - ZDOT) * 2(7) M/CS.
035979,000122: 30,2361 65361 VXSC PDDL
035980,000123: 30,2362 03726 ZAXIS1
035981,000124: 30,2363 02275 YDOTD
035982,000125: 30,2364 77625 DSU
035983,000126: 30,2365 02311 YDOT
![]() |
Page 839 |
035985,000128: 30,2366 02341 STORE DYDOT # DYDOT = (YDOTD - YDOT) *2(7) M/CS.
035986,000129: 30,2367 65361 VXSC PDDL
035987,000130: 30,2370 02303 LAXIS
035988,000131: 30,2371 02273 RDOTD
035989,000132: 30,2372 77625 DSU
035990,000133: 30,2373 03474 RDOT
035991,000134: 30,2374 02337 STORE DRDOT # DRDOT = (RDOTD - RDOT) * 2(7) M/CS.
035992,000135: 30,2375 53361 VXSC VAD
035993,000136: 30,2376 03537 UNIT/R/
035994,000137: 30,2377 76455 VAD VSL1
035995,000138: 30,2400 77626 STADR
035996,000139: 30,2401 74131 STORE VGVECT # VG = (DRDOT)R + (DYDOT)L + (DZDOT)Z.
035997,000140: 30,2402 41345 DLOAD DMP # LOAD TGO
035998,000141: 30,2403 03517 TGO # TGO GEFF
035999,000142: 30,2404 02315 GEFF
036000,000143: 30,2405 76561 VXSC VSL1
036001,000144: 30,2406 03537 UNIT/R/ # TGO GEFF UR
036002,000145: 30,2407 77645 BVSU
036003,000146: 30,2410 03646 VGVECT # COMPENSATED FOR GEFF
036004,000147: 30,2411 03646 STORE VGVECT # STORE FOR DOWNLINK
036005,000148: 30,2412 76521 MXV VSL1 # GET VGBODY FOR N85 DISPLAY
036006,000149: 30,2413 02146 XNBPIP
036007,000150: 30,2414 27502 STOVL VGBODY
036008,000151: 30,2415 03646 VGVECT
036009,000152: 30,2416 43046 ABVAL BOFF # MAGNITUDE OF VGVECT
036010,000153: 30,2417 04745 FLRCS # IF FLRCS=0,DO NORMAL GUIDANCE
036011,000154: 30,2420 60427 MAINENG
036012,000155: 30,2421 77671 DDV # USE TGO=VG/AT WITH RCS
036013,000156: 30,2422 20001 AT/RCS
036014,000157: 30,2423 37517 STCALL TGO # THIS WILL BE USED ON NEXT CYCLE
036015,000158: 30,2424 71475 RPCOMP1 # COMPUTE NEW RP FOR NEXT CYCLE.
036016,000159: 30,2425 77650 GOTO
036017,000160: 30,2426 60754 ASCTERM2
036018,000161: 30,2427 41471 MAINENG DDV PUSH # VG/VE IN PDL(0) (2)
036019,000162: 30,2430 02265 VE
036020,000163: 30,2431 44342 SR1 BDSU # 1 - VG / 2 VE
036021,000164: 30,2432 17772 NEARONE
036022,000165: 30,2433 41205 DMP DMP # TBUP VG(1-KT VG/VE)/VE (0)
036023,000166: 30,2434 02271 TBUP # = TGO
036024,000167: 30,2435 77625 DSU # COMPENSATE FOR TAILOFF
036025,000168: 30,2436 02267 TTO
036026,000169: 30,2437 03517 STORE TGO
036027,000170: 30,2440 57461 SR DCOMP
036028,000171: 30,2441 20614 11D
036029,000172: 30,2442 17454 STODL TTOGO # TGO *2(-28) CS
036030,000173: 30,2443 03517 TGO
036031,000174: 30,2444 45214 BON DSU
036032,000175: 30,2445 03710 IDLEFLAG
036033,000176: 30,2446 60452 T2TEST
036034,000177: 30,2447 21006 4SEC(17) # ( TGO - 4 )*2(-17) CS.
036035,000178:
![]() |
Page 840 |
036037,000180: 30,2450 77640 BMN
036038,000181: 30,2451 30347 ENGOFF
036039,000182: 30,2452 77745 T2TEST DLOAD
036040,000183: 30,2453 03517 TGO
036041,000184: 30,2454 50025 DSU BMN # IF TGO - T2 NEG., GO TO CMPONENT
036042,000185: 30,2455 21010 T2A
036043,000186: 30,2456 60612 CMPONENT
036044,000187: 30,2457 45345 DLOAD DSU
036045,000188: 30,2460 02271 TBUP
036046,000189: 30,2461 03517 TGO
036047,000190: 30,2462 45071 DDV CALL # 1- TGO/TBUP
036048,000191: 30,2463 02271 TBUP
036049,000192: 30,2464 61023 LOGSUB
036050,000193: 30,2465 41461 SL PUSH # -L IN PDL(0) (2)
036051,000194: 30,2466 20206 5
036052,000195: 30,2467 44265 BDDV BDSU # -TGO/L*2(-17)
036053,000196: 30,2470 03517 TGO
036054,000197: 30,2471 02271 TBUP # TBUP + TGO/L = D12*2(-17)
036055,000198: 30,2472 43006 PUSH BON # STORE IN PDL(2) (4)
036056,000199: 30,2473 04703 FLPC # IF FLPC = 1, GO TO CONST
036057,000200: 30,2474 60503 NORATES
036058,000201: 30,2475 45345 DLOAD DSU
036059,000202: 30,2476 03517 TGO
036060,000203: 30,2477 21012 T3
036061,000204: 30,2500 43044 BPL SET # FLPC=1
036062,000205: 30,2501 60510 RATES
036063,000206: 30,2502 04463 FLPC
036064,000207: 30,2503 77745 NORATES DLOAD
036065,000208: 30,2504 06524 HI6ZEROS
036066,000209: 30,2505 02351 STORE PRATE # B = 0
036067,000210: 30,2506 36353 STCALL YRATE # D = 0
036068,000211: 30,2507 60572 CONST # GO TO CONST
036069,000212: 30,2510 45345 RATES DLOAD DSU
036070,000213: 30,2511 03517 TGO
036071,000214: 30,2512 00003 02D # TGO - D12 = D21*2(-17)
036072,000215: 30,2513 72406 PUSH SL1 # IN PDL(4) (6)
036073,000216: 30,2514 52421 BDSU SL3 # (1/2TGO - D21)*2(-13) = E * 2(-13)
036074,000217: 30,2515 03517 TGO # (8)
036075,000218: 30,2516 41325 PDDL DMP # IN PDL(6)
036076,000219: 30,2517 03517 TGO
036077,000220: 30,2520 03474 RDOT # RDOT TGO * 2(-24)
036078,000221: 30,2521 45215 DAD DSU # R + RDOT TGO
036079,000222: 30,2522 02301 /R/MAG # R + RDOT TGO - RCO
036080,000223: 30,2523 03631 RCO # MPAC = -DR *2(-24).
036081,000224: 30,2524 41325 PDDL DMP # -DR IN PDL(8) (10)
036082,000225: 30,2525 02337 DRDOT
036083,000226: 30,2526 00005 04D # D21 DRDOT*2(-24)
036084,000227: 30,2527 62415 DAD SL2 # (D21 DRDOT-DR)*2(-22) (8)
036085,000228: 30,2530 56271 DDV DDV
036086,000229: 30,2531 00007 06D # (D21 DRDOT-DR)/E*2(-9)
![]() |
Page 841 |
036088,000231: 30,2532 03517 TGO
036089,000232: 30,2533 02351 STORE PRATE # B * 2(8)
036090,000233: 30,2534 71240 BMN DLOAD # B>0 NOT PERMITTED
036091,000234: 30,2535 60541 CHKBMAG
036092,000235: 30,2536 06524 HI6ZEROS
036093,000236: 30,2537 36351 STCALL PRATE
036094,000237: 30,2540 60553 PROK
036095,000238: 30,2541 56202 CHKBMAG SR4 DDV # B*2(4)
036096,000239: 30,2542 02271 TBUP # (B / TAU) * 2(21)
036097,000240: 30,2543 51025 DSU BPL
036098,000241: 30,2544 26201 PRLIMIT # ( B / TAU ) * 2(21) MAX.
036099,000242: 30,2545 60553 PROK
036100,000243: 30,2546 41345 DLOAD DMP
036101,000244: 30,2547 26201 PRLIMIT
036102,000245: 30,2550 02271 TBUP # B MAX. * 2(4)
036103,000246: 30,2551 77612 SL4 # BMAX*2(8)
036104,000247: 30,2552 02351 STORE PRATE
036105,000248: 30,2553 77745 PROK DLOAD
036106,000249: 30,2554 03517 TGO
036107,000250: 30,2555 43205 DMP DAD # YDOT TGO
036108,000251: 30,2556 02311 YDOT
036109,000252: 30,2557 02335 Y # Y + YDOT TGO
036110,000253: 30,2560 65225 DSU PDDL # Y + YDOT TGO - YCO
036111,000254: 30,2561 03633 YCO # MPAC = - DY*2(-24.) IN PDL(8) (10)
036112,000255: 30,2562 02341 DYDOT
036113,000256: 30,2563 43205 DMP DAD # D21 DYDOT - DY (8)
036114,000257: 30,2564 00005 04D
036115,000258: 30,2565 56312 SL2 DDV # (D21 DYDOT - DY)/E*2(-9)
036116,000259: 30,2566 40271 DDV SETPD # (D21 DYDOT - DY)/E TGO*2(8)
036117,000260: 30,2567 03517 TGO # = D*2(8)
036118,000261: 30,2570 00005 04
036119,000262: 30,2571 02353 STORE YRATE
036120,000263: 30,2572 41345 CONST DLOAD DMP # LOAD B*2(8)
036121,000264: 30,2573 02351 PRATE # B D12*2(-9)
036122,000265: 30,2574 00003 02D
036123,000266: 30,2575 56325 PDDL DDV # D12 B IN PDL(4) (6)
036124,000267: 30,2576 02337 DRDOT # LOAD DRDOT*2(-7)
036125,000268: 30,2577 00001 00D # -DRDOT/L*2(-7)
036126,000269: 30,2600 45302 SR2 DSU # (-DRDOT/L-D12 B)=A*2(-9) (4)
036127,000270: 30,2601 77626 STADR
036128,000271: 30,2602 61432 STODL PCONS
036129,000272: 30,2603 02353 YRATE # D*2(8)
036130,000273: 30,2604 65205 DMP PDDL # D12 D,EXCH WITH -L IN PDL(0) (2,2)
036131,000274: 30,2605 60465 BDDV SR2 # -DYDOT/L*2(-9)
036132,000275: 30,2606 02341 DYDOT
036133,000276: 30,2607 77625 DSU # (-DYDOT/L-D12 D)=C*2(-9)
036134,000277: 30,2610 00001 00D
036135,000278: 30,2611 02347 STORE YCONS
036136,000279: 30,2612 43001 CMPONENT SETPD BOFF
036137,000280: 30,2613 00001 00D
![]() |
Page 842 |
036139,000282: 30,2614 04742 P7071FLG
036140,000283: 30,2615 60620 +3 # IF P7071FLG = 1 (I.E. P70 OR P71)
036141,000284: 30,2616 77624 CALL # COMPUTE NEW RP FOR NEXT CYCLE.
036142,000285: 30,2617 71501 RPCOMP2
036143,000286: 30,2620 41345 +3 DLOAD DMP
036144,000287: 30,2621 27104 100CS
036145,000288: 30,2622 02351 PRATE # B(T-T0)*2(-9)
036146,000289: 30,2623 56215 DAD DDV # (A+B(T-T0))*2(-9)
036147,000290: 30,2624 02345 PCONS # (A+B(T-T0))/TBUP*2(8)
036148,000291: 30,2625 02271 TBUP
036149,000292: 30,2626 45352 SL1 DSU
036150,000293: 30,2627 02315 GEFF # ATR*2(9)
036151,000294: 30,2630 16357 STODL ATR
036152,000295: 30,2631 27104 100CS
036153,000296: 30,2632 43205 DMP DAD
036154,000297: 30,2633 02353 YRATE
036155,000298: 30,2634 02347 YCONS # (C+D(T-T0))*2(-9)
036156,000299: 30,2635 72471 DDV SL1
036157,000300: 30,2636 02271 TBUP
036158,000301: 30,2637 02355 STORE ATY # ATY*2(9)
036159,000302: 30,2640 65361 VXSC PDDL # ATY UY*2(8) (6)
036160,000303: 30,2641 02303 LAXIS
036161,000304: 30,2642 02357 ATR
036162,000305: 30,2643 53361 VXSC VAD # (0)
036163,000306: 30,2644 03537 UNIT/R/
036164,000307: 30,2645 41572 VSL1 PUSH # AH*2(9) IN PDL(0) (6)
036165,000308: 30,2646 65246 ABVAL PDDL # AH(2) IN PDL(34)
036166,000309: 30,2647 02263 AT # AHMAG IN PDL(6) (8)
036167,000310: 30,2650 45316 DSQ DSU # (AT(2)-AH(2))*2(18)
036168,000311: 30,2651 00043 34D # =ATP2*2(18)
036169,000312: 30,2652 41525 PDDL PUSH # (12)
036170,000313: 30,2653 02263 AT
036171,000314: 30,2654 45316 DSQ DSU # (AT(2)KR(2)-AH(2))*2(18) (10)
036172,000315: 30,2655 00043 34D # =ATP3*2(18)
036173,000316: 30,2656 71240 BMN DLOAD # IF ATP3 NEG,GO TO NO-ATP
036174,000317: 30,2657 60663 NO-ATP # LOAD ATP2, IF ATP3 POS
036175,000318: 30,2660 00011 8D
036176,000319: 30,2661 52166 SQRT GOTO # ATP*2(9)
036177,000320: 30,2662 60671 AIMER
036178,000321: 30,2663 55345 NO-ATP DLOAD BDDV # KR AT/AH = KH (8)
036179,000322: 30,2664 00007 6D
036180,000323: 30,2665 77761 VXSC # KH AH*2(9)
036181,000324: 30,2666 00001 00D
036182,000325: 30,2667 14001 STODL 00D # STORE NEW AH IN PDL(0)
036183,000326: 30,2670 06524 HI6ZEROS
036184,000327: 30,2671 77765 AIMER SIGN
036185,000328: 30,2672 02343 DZDOT
036186,000329: 30,2673 02361 STORE ATP
036187,000330: 30,2674 77761 VXSC
036188,000331: 30,2675 03726 ZAXIS1 # ATP ZAXIS *2(8).
![]() |
Page 843 |
036190,000333: 30,2676 53372 VSL1 VAD # AT*2(9)
036191,000334: 30,2677 00001 00D
036192,000335: 30,2700 03253 STORE UNFC/2 # WILL BE OVERWRITTEN IF IN VERT. RISE.
036193,000336: 30,2701 43001 SETPD BON
036194,000337: 30,2702 00001 00D
036195,000338: 30,2703 04704 FLPI
036196,000339: 30,2704 60216 P12RET
036197,000340: 30,2705 77614 BON
036198,000341: 30,2706 04701 FLVR
036199,000342: 30,2707 60763 CHECKALT
036200,000343: 30,2710 57575 MAINLINE VLOAD VCOMP
036201,000344: 30,2711 03537 UNIT/R/
036202,000345: 30,2712 17261 STODL UNWC/2
036203,000346: 30,2713 03654 TXO
036204,000347: 30,2714 51025 DSU BPL
036205,000348: 30,2715 01234 PIPTIME
036206,000349: 30,2716 60730 ASCTERM
036207,000350: 30,2717 77614 BON
036208,000351: 30,2720 04711 ROTFLAG
036209,000352: 30,2721 57273 ANG1CHEK
036210,000353: 30,2722 43014 CLRXFLAG CLEAR BON # ALLOW X-AXIS OVERRIDE
036211,000354: 30,2723 06666 XOVINFLG
036212,000355: 30,2724 04702 P7071FLG # ONLY ACTIVATE R29 IF IN P12.
036213,000356: 30,2725 60730 ASCTERM
036214,000357: 30,2726 77614 CLEAR
036215,000358: 30,2727 01664 NOR29FLG
036216,000359: 30,2730 77776 ASCTERM EXIT
036217,000360: 30,2731 30105 CA FLAGWRD9
036218,000361: 30,2732 74742 MASK FLRCSBIT
036219,000362: 30,2733 10000 CCS A
036220,000363: 30,2734 12755 TCF ASCTERM3
036221,000364: 30,2735 06042 TC INTPRET
036222,000365: 30,2736 77624 CALL
036223,000366: 30,2737 61100 FINDCDUW -2
036224,000367: 30,2740 77776 ASCTERM1 EXIT
036225,000368: 30,2741 30105 +1 CA FLAGWRD9 # INSURE THAT THE NOUN 63 DISPLAY IS
036226,000369: 30,2742 74742 MASK FLRCSBIT # BYPASSED IF WE ARE IN THE RCS TRIMMING
036227,000370: 30,2743 10000 CCS A # MODE OF OPERATION
036228,000371: 30,2744 12755 TCF ASCTERM3
036229,000372: 30,2745 30104 CA FLAGWRD8 # BYPASS DISPLAYS IF ENGINE FAILURE IS
036230,000373: 30,2746 74742 MASK FLUNDBIT # INDICATED.
036231,000374: 30,2747 10000 CCS A
036232,000375: 30,2750 12755 TCF ASCTERM3
036233,000376: 30,2751 33020 CAF V06N63*
036234,000377: 30,2752 04616 TC BANKCALL
036235,000378: 30,2753 20444 CADR GODSP
036236,000379: 30,2754 77776 ASCTERM2 EXIT
036237,000380: 30,2755 15155 ASCTERM3 TCF ENDOFJOB
036238,000381: 30,2756 77776 ASCTERM4 EXIT
036239,000382: 30,2757 00004 INHINT
![]() |
Page 844 |
036241,000384: 30,2760 04674 TC IBNKCALL # NO GUIDANCE THIS CYCLE -- HENCE ZERO
036242,000385: 30,2761 40166 CADR STOPRATE # THE DAP COMMANDED RATES.
036243,000386: 30,2762 12741 TCF ASCTERM1 +1
036244,000387:
036245,000388: 30,2763 45345 CHECKALT DLOAD DSU
036246,000389: 30,2764 02301 /R/MAG
036247,000390: 30,2765 02333 /LAND/
036248,000391: 30,2766 50025 DSU BMN # IF H LT 25K CHECK Z AXIS ORIENTATION.
036249,000392: 30,2767 26205 25KFT
036250,000393: 30,2770 16666 CHECKYAW
036251,000394: 30,2771 43014 EXITVR CLEAR BON
036252,000395: 30,2772 04661 FLVR
036253,000396: 30,2773 04711 ROTFLAG
036254,000397: 30,2774 60710 MAINLINE
036255,000398: 30,2775 43345 DLOAD DAD
036256,000399: 30,2776 01234 PIPTIME
036257,000400: 30,2777 25734 10SECS
036258,000401: 30,3000 37654 STCALL TXO
036259,000402: 30,3001 60710 MAINLINE
036260,000403: 30,3002 77614 EXITVR1 CLRGO
036261,000404: 30,3003 04631 ROTFLAG
036262,000405: 30,3004 60771 EXITVR
036263,000406:
036264,000407: 27,2000 SETLOC ASENT1
036265,000408: 27,2000 BANK
036266,000409: 27,3273 COUNT* $$/ASENT
036267,000410:
036268,000411: 27,3273 53575 ANG1CHEK VLOAD UNIT
036269,000412: 27,3274 03253 UNFC/2
036270,000413: 27,3275 77641 DOT
036271,000414: 27,3276 02146 XNBPIP
036272,000415: 27,3277 51025 DSU BPL
036273,000416: 27,3300 02571 COSTHET1
036274,000417: 27,3301 57310 OFFROT
036275,000418: 27,3302 50375 VLOAD DOT
036276,000419: 27,3303 02146 XNBPIP
036277,000420: 27,3304 03537 UNIT/R/
036278,000421: 27,3305 50025 DSU BMN
036279,000422: 27,3306 02573 COSTHET2
036280,000423: 27,3307 71450 KEEPVR1
036281,000424: 27,3310 77614 OFFROT CLRGO
036282,000425: 27,3311 04631 ROTFLAG
036283,000426: 27,3312 60722 CLRXFLAG
036284,000427:
036285,000428: 07,2666 BANK 7
036286,000429: 07,2000 SETLOC ASENT2
036287,000430: 07,2000 BANK
036288,000431: 07,2666 COUNT* $$/ASENT
036289,000432:
036290,000433: 07,2666 07,2666 SETXFLAG = CHECKYAW
036291,000434:
![]() |
Page 845 |
036293,000436: 07,2666 77614 CHECKYAW SET
036294,000437: 07,2667 06466 XOVINFLG # PROHIBIT X-AXIS OVERRIDE
036295,000438: 07,2670 74345 DLOAD VXSC
036296,000439: 07,2671 02355 ATY
036297,000440: 07,2672 02303 LAXIS
036298,000441: 07,2673 74325 PDDL VXSC
036299,000442: 07,2674 02361 ATP
036300,000443: 07,2675 03726 ZAXIS1
036301,000444: 07,2676 53455 VAD UNIT
036302,000445: 07,2677 45325 PDDL DSU
036303,000446: 07,2700 03474 RDOT
036304,000447: 07,2701 13504 40FPS
036305,000448: 07,2702 52044 BPL GOTO
036306,000449: 07,2703 61002 EXITVR1
036307,000450: 07,2704 71446 KEEPVR
036308,000451:
036309,000452: 05,3503 BANK 5
036310,000453: 05,2000 SETLOC ASENT3
036311,000454: 05,2000 BANK
036312,000455: 05,3503 COUNT* $$/ASENT
036313,000456:
036314,000457: 05,3503 00017 23305 40FPS 2DEC 0.12192 B-7
036315,000458:
036316,000459: 34,3446 BANK 34
036317,000460: 34,2000 SETLOC ASENT8
036318,000461: 34,2000 BANK
036319,000462: 34,3446 COUNT* $$/ASENT
036320,000463:
036321,000464: 34,3446 45575 KEEPVR VLOAD STADR # RECALL LOSVEC FROM PUSHLIST
036322,000465: 34,3447 74516 STORE UNWC/2
036323,000466: 34,3450 77775 KEEPVR1 VLOAD
036324,000467: 34,3451 03537 UNIT/R/
036325,000468: 34,3452 37253 STCALL UNFC/2
036326,000469: 34,3453 60730 ASCTERM
036327,000470:
036328,000471: 14,2347 BANK 14
036329,000472: 14,2000 SETLOC ASENT4
036330,000473: 14,2000 BANK
036331,000474: 14,2347 COUNT* $$/ASENT
036332,000475:
036333,000476: 14,2347 77634 ENGOFF RTB
036334,000477: 14,2350 21574 LOADTIME
036335,000478: 14,2351 43225 DSU DAD
036336,000479: 14,2352 01234 PIPTIME
036337,000480: 14,2353 03454 TTOGO
036338,000481: 14,2354 77476 DCOMP EXIT
036339,000482: 14,2355 07262 TC TPAGREE # FORCE SIGN AGREEMENT ON MPAC, MPAC +1.
036340,000483: 14,2356 35016 CAF EBANK7
036341,000484: 14,2357 54003 TS EBANK
![]() |
Page 846 |
036343,000486: 14,2360 E7,1516 EBANK= TGO
036344,000487: 14,2360 00004 INHINT
036345,000488: 14,2361 10155 CCS MPAC +1
036346,000489: 14,2362 12365 TCF +3 # C(A) = DT - 1 BIT
036347,000490: 14,2363 12365 TCF +2 # C(A) = 0
036348,000491: 14,2364 34755 CAF ZERO # C(A) = 0
036349,000492: 14,2365 64753 AD BIT1 # C(A) = 1 BIT OR DT.
036350,000493: 14,2366 55644 TS ENGOFFDT
036351,000494: 14,2367 05173 TC TWIDDLE
036352,000495: 14,2370 02402 ADRES ENGOFF1
036353,000496: 14,2371 05353 TC PHASCHNG
036354,000497: 14,2372 47014 OCT 47014
036355,000498: 14,2373 76133 -GENADR ENGOFFDT
036356,000499: 14,2374 E7,1516 EBANK= TGO
036357,000500: 14,2374 02402 30067 2CADR ENGOFF1
036358,000501:
036359,000502: 14,2376 06042 TC INTPRET
036360,000503: 14,2377 52014 SET GOTO
036361,000504: 14,2400 03470 IDLEFLAG # DISABLE DELTA-V MONITOR
036362,000505: 14,2401 60452 T2TEST
036363,000506:
036364,000507: 14,2402 04674 ENGOFF1 TC IBNKCALL # SHUT OFF THE ENGINE.
036365,000508: 14,2403 75555 CADR ENGINOF2
036366,000509:
036367,000510: 14,2404 35027 CAF PRIO17 # SET UP A JOB FOR THE ASCENT GUIDANCE
036368,000511: 14,2405 05105 TC FINDVAC # POSTBURN LOGIC.
036369,000512: 14,2406 E7,1455 EBANK= WHICH
036370,000513: 14,2406 02416 30067 2CADR CUTOFF
036371,000514:
036372,000515: 14,2410 05353 TC PHASCHNG
036373,000516: 14,2411 07024 OCT 07024
036374,000517: 14,2412 17000 OCT 17000
036375,000518: 14,2413 E7,1516 EBANK= TGO
036376,000519: 14,2413 02416 30067 2CADR CUTOFF
036377,000520:
036378,000521: 14,2415 15261 TCF TASKOVER
036379,000522:
036380,000523: 14,2416 05504 CUTOFF TC UPFLAG # SET FLRCS FLAG.
036381,000524: 14,2417 00214 ADRES FLRCS
036382,000525:
036383,000526: 14,2420 32437 -5 CAF V16N63
036384,000527: 14,2421 04616 TC BANKCALL
036385,000528: 14,2422 20477 CADR GOFLASH
036386,000529: 14,2423 12426 TCF +3
036387,000530: 14,2424 12430 TCF CUTOFF1
036388,000531: 14,2425 12420 TCF -5
036389,000532:
036390,000533: 14,2426 04635 +3 TC POSTJUMP
036391,000534: 14,2427 71464 CADR TERMASC
![]() |
Page 847 |
036393,000536:
036394,000537: 14,2430 00004 CUTOFF1 INHINT
036395,000538: 14,2431 04674 TC IBNKCALL # ZERO ATTITUDE ERRORS BEFORE REDUCING DB.
036396,000539: 14,2432 40154 CADR ZATTEROR
036397,000540: 14,2433 04674 TC IBNKCALL
036398,000541: 14,2434 40141 CADR SETMINDB
036399,000542: 14,2435 04635 TC POSTJUMP
036400,000543: 14,2436 71454 CADR CUTOFF2
036401,000544:
036402,000545: 14,2437 04077 V16N63 VN 1663
036403,000546: 34,3454 BANK 34
036404,000547: 34,2000 SETLOC ASENT8
036405,000548: 34,2000 BANK
036406,000549: 34,3454 COUNT* $$/ASENT
036407,000550:
036408,000551: 34,3454 05353 CUTOFF2 TC PHASCHNG
036409,000552: 34,3455 04024 OCT 04024
036410,000553:
036411,000554: 34,3456 33474 CAF V16N85C
036412,000555: 34,3457 04616 TC BANKCALL
036413,000556: 34,3460 20477 CADR GOFLASH
036414,000557: 34,3461 13464 TCF TERMASC
036415,000558: 34,3462 13464 TCF +2 # PROCEED
036416,000559: 34,3463 13454 TCF CUTOFF2
036417,000560:
036418,000561: 34,3464 05353 TERMASC TC PHASCHNG
036419,000562: 34,3465 04024 OCT 04024
036420,000563:
036421,000564: 34,3466 00004 INHINT # RESTORE DEADBAND DESIRED BY ASTRONAUT.
036422,000565: 34,3467 04674 TC IBNKCALL
036423,000566: 34,3470 40115 CADR RESTORDB
036424,000567: 34,3471 05516 TC DOWNFLAG # DISALLOW ABORTS AT THIS TIME.
036425,000568: 34,3472 00215 ADRES LETABORT
036426,000569: 34,3473 16001 TCF GOTOPOOH
036427,000570:
036428,000571: 34,3474 04125 V16N85C VN 1685
036429,000572:
036430,000573: 34,3475 77745 RPCOMP1 DLOAD # FLRCS = 1 (TRIM MODE)
036431,000574: 34,3476 06524 HI6ZEROS
036432,000575: 34,3477 02345 STORE PCONS # SET PCONS = PRATE = 0 SO THAT
036433,000576: 34,3500 02351 STORE PRATE # RP = R + RDOT TGO
036434,000577: 34,3501 41345 RPCOMP2 DLOAD DMP # FLRCS = 0 (GUIDANCE MODE)
036435,000578: 34,3502 02351 PRATE # LEAVE PCONS AND PRATE ALONE SO THAT
036436,000579: 34,3503 03517 TGO # RP = R + RDOT TGO + (PCONS*TGO**2)/
036437,000580: 34,3504 43205 DMP DAD # (2 TBUP) + (PRATE*TGO**3)/(6 TBUP)
036438,000581: 34,3505 33645 THIRD
036439,000582: 34,3506 02345 PCONS
036440,000583: 34,3507 41205 DMP DMP
036441,000584: 34,3510 03517 TGO
036442,000585: 34,3511 03517 TGO
036443,000586: 34,3512 72471 DDV SL1
![]() |
Page 848 |
036445,000588: 34,3513 02271 TBUP
036446,000589: 34,3514 65215 DAD PDDL
036447,000590: 34,3515 02301 /R/MAG
036448,000591: 34,3516 03474 RDOT
036449,000592: 34,3517 43205 DMP DAD
036450,000593: 34,3520 03517 TGO
036451,000594: 34,3521 77626 STADR
036452,000595: 34,3522 75152 STORE RP
036453,000596: 34,3523 77616 RVQ
036454,000597:
036455,000598: 34,3524 45020 ZDOTDCMP STQ CALL # COMPUTE CENTRAL ANGLE (0)
036456,000599: 34,3525 02574 ASCSAVE
036457,000600: 34,3526 71554 THETCOMP
036458,000601: 34,3527 43205 DMP DAD # CENTRAL ANGLE IN MPAC
036459,000602: 34,3530 02623 KPARM
036460,000603: 34,3531 02621 JPARM
036461,000604: 34,3532 41425 DSU PUSH # RA IN MPAC AND IN PUSHLIST (2)
036462,000605: 34,3533 02625 RP
036463,000606: 34,3534 51025 DSU BPL
036464,000607: 34,3535 02563 RAMIN
036465,000608: 34,3536 71541 +3
036466,000609: 34,3537 65345 DLOAD PDDL # RA < RAMIN. SET RA = RAMIN. (2)
036467,000610: 34,3540 02563 RAMIN
036468,000611: 34,3541 41345 +3 DLOAD DMP
036469,000612: 34,3542 00001 0D
036470,000613: 34,3543 16025 MUM(-37)
036471,000614: 34,3544 77725 PDDL
036472,000615: 34,3545 41215 DAD DMP
036473,000616: 34,3546 02625 RP
036474,000617: 34,3547 02625 RP
036475,000618: 34,3550 75465 BDDV SQRT # (0)
036476,000619: 34,3551 77626 STADR
036477,000620: 34,3552 41500 STCALL ZDOTD # UPDATE ZDOTD FOR GUIDANCE AND DOWNLINK.
036478,000621: 34,3553 02574 ASCSAVE
036479,000622:
036480,000623: 34,3554 53575 THETCOMP VLOAD UNIT
036481,000624: 34,3555 03521 R
036482,000625: 34,3556 53515 PDVL UNIT # (6)
036483,000626: 34,3557 01720 R(CSM)
036484,000627: 34,3560 47206 PUSH VXV # (12)
036485,000628: 34,3561 00001 0D
036486,000629: 34,3562 77641 DOT
036487,000630: 34,3563 02325 WM
036488,000631: 34,3564 24037 STOVL 30D # (6)
036489,000632: 34,3565 72441 DOT SL1 # (0)
036490,000633: 34,3566 75326 ARCCOS SIGN
036491,000634: 34,3567 00037 30D
036492,000635: 34,3570 77616 RVQ
036493,000636:
036494,000637: 34,3571 E5,1574 ASCSAVE = CG
036495,000638:
![]() |
Page 849 |
036497,000640: 27,3313 BANK 27
036498,000641: 27,2000 SETLOC ASENT1
036499,000642: 27,2000 BANK
036500,000643: 27,3313 COUNT* $$/ASENT
036501,000644:
036502,000645: 27,3313 50375 YCOMP VLOAD DOT
036503,000646: 27,3314 03537 UNIT/R/
036504,000647: 27,3315 03720 QAXIS
036505,000648: 27,3316 41312 SL2 DMP
036506,000649: 27,3317 03631 RCO
036507,000650: 27,3320 02335 STORE Y
036508,000651: 27,3321 77616 RVQ
036509,000652:
036510,000653: 30,3005 BANK 30
036511,000654: 30,2000 SETLOC ASENT
036512,000655: 30,2000 BANK
036513,000656:
![]() |
Page 850 |
036515,000658: # ASCENT GUIDANCE CONSTANTS
036516,000659:
036517,000660: 30,3005 33,3103 100CS EQUALS 2SEC(18)
036518,000661: 30,3005 30,3007 T2A EQUALS 2SEC(17)
036519,000662: 30,3005 00062 00000 4SEC(17) 2DEC 400 B-17
036520,000663: 30,3007 00031 00000 2SEC(17) 2DEC 200 B-17
036521,000664: 30,3011 00175 00000 T3 2DEC 1000 B-17
036522,000665: 30,3013 00045 20000 6SEC(18) 2DEC 600 B-18
036523,000666: 30,3015 00010 BIT4H OCT 10
036524,000667: 30,3016 14400 00000 2SEC(9) 2DEC 200 B-9
036525,000668: 30,3020 01477 V06N63* VN 0663
036526,000669: 30,3021 01514 V06N76 VN 0676
036527,000670: 30,3022 01441 V06N33A VN 0633
036528,000671:
036529,000672: 33,2200 BANK 33
036530,000673: 33,2000 SETLOC ASENT6
036531,000674: 33,2000 BANK
036532,000675: 33,2200 COUNT* $$/ASENT
036533,000676:
036534,000677: 33,2200 75751 41775 PRLIMIT 2DEC -.0639 # (B/TBUP)MIN=-.1FT.SEC(-3)
036535,000678: 33,2202 00022 07212 MINABDV 2DEC .0356 B-5 # 10 PERCENT BIGGER THAN GRAVITY
036536,000679: 33,2204 00007 16100 25KFT 2DEC 7620 B-24
036537,000680: 33,2206 E7,1570 1/DV0 = MASS1
036538,000681:
![]() |
Page 851 |
036540,000683: # THE LOGARITHM SUBROUTINE
036541,000684:
036542,000685: 24,3700 BANK 24
036543,000686: 30,2000 SETLOC FLOGSUB
036544,000687: 30,2000 BANK
036545,000688:
036546,000689: # INPUT ..... X IN MPAC
036547,000690: # OUTPUT ..... -LOG(X) IN MPAC
036548,000691:
036549,000692: 30,3023 44301 LOGSUB NORM BDSU
036550,000693: 30,3024 00163 MPAC +6
036551,000694: 30,3025 17772 NEARONE
036552,000695: 30,3026 77776 EXIT
036553,000696: 30,3027 07225 TC POLY
036554,000697: 30,3030 00006 DEC 6 B-14
036555,000698: 30,3031 00000 00002 2DEC .0000000060
036556,000699: 30,3033 76777 77175 2DEC -.0312514377
036557,000700: 30,3035 77400 75416 2DEC -.0155686771
036558,000701: 30,3037 77507 65515 2DEC -.0112502068
036559,000702: 30,3041 77741 63547 2DEC -.0018545108
036560,000703: 30,3043 77052 55373 2DEC -.0286607906
036561,000704: 30,3045 01167 30361 2DEC .0385598563
036562,000705: 30,3047 76520 75267 2DEC -.0419361902
036563,000706:
036564,000707: 30,3051 34755 CAF ZERO
036565,000708: 30,3052 54156 TS MPAC +2
036566,000709: 30,3053 00006 EXTEND
036567,000710: 30,3054 33070 DCA CLOG2/32
036568,000711: 30,3055 52155 DXCH MPAC
036569,000712: 30,3056 52132 DXCH BUF +1
036570,000713: 30,3057 30162 CA MPAC +6
036571,000714: 30,3060 07312 TC SHORTMP
036572,000715: 30,3061 52156 DXCH MPAC +1
036573,000716: 30,3062 52155 DXCH MPAC
036574,000717: 30,3063 52132 DXCH BUF +1
036575,000718: 30,3064 20155 DAS MPAC
036576,000719: 30,3065 06042 TC INTPRET
036577,000720: 30,3066 43476 DCOMP RVQ
036578,000721:
036579,000722: 30,3067 00542 34414 CLOG2/32 2DEC .0216608494
036580,000723:
End of include-file ASCENT_GUIDANCE.agc. Parent file is MAIN.agc