Source Code
These source-code files derive from a printout of Luminary 210 (Apollo 15-17
Lunar Module guidance computer program), from the personal library of
original AGC developer Don Eyles, digitally photographed at archive.org,
financially sponsored by Jim Lawton, and transcribed to source code by a
team of volunteers. This colorized, syntax-highlighted form was created
by assembling that transcribed source code. Note that the full page images
are available on the
Virtual AGC project page at archive.org, while reduced-size images
are presented at the VirtualAGC project website. Report or fix any
transcription errors at
the Virtual AGC project code repository. Notations on the program listing read, in part: GAP: ASSEMBLE REVISION 210 OF AGC PROGRAM LUMINARY BY NASA 2021112-161 17:11 MAR. 19,1971Note that the date is the date of the printout, not the date of the program revision. |
037305,000002: ## Copyright: Public domain.
037306,000003: ## Filename: ASCENT_GUIDANCE.agc
037307,000004: ## Purpose: A section of Luminary revision 210.
037308,000005: ## It is part of the source code for the Lunar Module's (LM)
037309,000006: ## Apollo Guidance Computer (AGC) for Apollo 15-17.
037310,000007: ## This file is intended to be a faithful transcription, except
037311,000008: ## that the code format has been changed to conform to the
037312,000009: ## requirements of the yaYUL assembler rather than the
037313,000010: ## original YUL assembler.
037314,000011: ## Reference: pp. 844-859
037315,000012: ## Assembler: yaYUL
037316,000013: ## Contact: Ron Burkey <info@sandroid.org>.
037317,000014: ## Website: www.ibiblio.org/apollo/index.html
037318,000015: ## Mod history: 2016-11-17 JL Created from Luminary131 version.
037319,000016: ## 2016-12-01 RSB Completed the transcription.
037320,000017: ## 2016-12-08 HG Fix operand V16N63 -> V16N94
037321,000018: ## 2016-12-10 HG remove BANK 7 operation
037322,000019: ## SETLOC ASENT2 -> SETLOC ASENT7
037323,000020: ## 2016-12-12 HG remove superfluous interpretive operator BON
037324,000021: ## 2016-12-25 RSB Comment-text proofed using ProoferComments
037325,000022: ## and corrected errors found.
037326,000023:
Page 844 |
037328,000025: 34,3375 BANK 34
037329,000026: 34,2000 SETLOC ASCFILT
037330,000027: 34,2000 BANK
037331,000028:
037332,000029: 34,3375 E7,1515 EBANK= DVCNTR
037333,000030:
037334,000031: 34,3375 COUNT* $$/ASENT
037335,000032:
037336,000033: 34,3375 05355 ATMAG TC PHASCHNG
037337,000034: 34,3376 00035 OCT 00035
037338,000035: 34,3377 06060 TC INTPRET
037339,000036: 34,3400 77614 BON
037340,000037: 34,3401 04705 FLRCS
037341,000038: 34,3402 60307 ASCENT
037342,000039: 34,3403 45345 DLOAD DSU
037343,000040: 34,3404 03514 ABDVCONV
037344,000041: 34,3405 26116 MINABDV
037345,000042: 34,3406 43040 BMN CLEAR
037346,000043: 34,3407 60750 ASCTERM4
037347,000044: 34,3410 04267 SURFFLAG
037348,000045: 34,3411 67214 CLEAR SLOAD
037349,000046: 34,3412 02676 RENDWFLG
037350,000047: 34,3413 31451 BIT3H
037351,000048: 34,3414 77471 DDV EXIT
037352,000049: 34,3415 03514 ABDVCONV
037353,000050: 34,3416 52155 DXCH MPAC
037354,000051: 34,3417 53641 DXCH 1/DV3
037355,000052: 34,3420 53637 DXCH 1/DV2
037356,000053: 34,3421 53635 DXCH 1/DV1
037357,000054: 34,3422 53571 DXCH 1/DV0
037358,000055: 34,3423 06060 TC INTPRET
037359,000056: 34,3424 43345 DLOAD DAD
037360,000057: 34,3425 03571 1/DV0
037361,000058: 34,3426 03635 1/DV1
037362,000059: 34,3427 43215 DAD DAD
037363,000060: 34,3430 03637 1/DV2
037364,000061: 34,3431 03641 1/DV3
037365,000062: 34,3432 41205 DMP DMP
037366,000063: 34,3433 02256 VE
037367,000064: 34,3434 21011 2SEC(9)
037368,000065: 34,3435 65252 SL3 PDDL
037369,000066: 34,3436 02262 TBUP
037370,000067: 34,3437 43342 SR1 DAD
037371,000068: 34,3440 77625 DSU
037372,000069: 34,3441 21006 6SEC(18)
037373,000070: 34,3442 16262 STODL TBUP
037374,000071: 34,3443 02256 VE
037375,000072: 34,3444 56342 SR1 DDV
037376,000073: 34,3445 02262 TBUP
037377,000074: 34,3446 36254 STCALL AT
Page 845 |
037379,000076: 34,3447 60307 ASCENT
037380,000077: 34,3450 00004 BIT3H OCT 4
037381,000078:
Page 846 |
037383,000080: 30,2307 BANK 30
037384,000081: 30,2000 SETLOC ASENT
037385,000082: 30,2000 BANK
037386,000083: 30,2307 COUNT* $$/ASENT
037387,000084:
037388,000085: 30,2307 51575 ASCENT VLOAD ABVAL
037389,000086: 30,2310 03521 R
037390,000087: 30,2311 26272 STOVL /R/MAG
037391,000088: 30,2312 03537 UNIT/R/
037392,000089: 30,2313 53435 VXV UNIT
037393,000090: 30,2314 02600 QAXIS
037394,000091: 30,2315 02606 STORE ZAXIS1
037395,000092: 30,2316 72441 DOT SL1
037396,000093: 30,2317 03527 V # Z.V = ZDOT*2(-8).
037397,000094: 30,2320 26304 STOVL ZDOT # ZDOT*2(-7)
037398,000095: 30,2321 02606 ZAXIS1
037399,000096: 30,2322 76435 VXV VSL1
037400,000097: 30,2323 03537 UNIT/R/ # Z X UR = LAXIS*2(-2)
037401,000098: 30,2324 02274 STORE LAXIS # LAXIS*2(-1)
037402,000099: 30,2325 72441 DOT SL1
037403,000100: 30,2326 03527 V # L.V = YDOT*2(-8).
037404,000101: 30,2327 36302 STCALL YDOT # YDOT * 2(-7)
037405,000102: 30,2330 57315 YCOMP
037406,000103: 30,2331 77775 VLOAD
037407,000104: 30,2332 03563 GDT1/2 # LOAD GDT1/2*2(-7)M/CS.
037408,000105: 30,2333 50341 V/SC DOT
037409,000106: 30,2334 27053 2SEC(18)
037410,000107: 30,2335 03537 UNIT/R/ # G.UR*2(9) = GR*2(9).
037411,000108: 30,2336 47315 PDVL VXV # STORE IN PDL(0) (2)
037412,000109: 30,2337 03537 UNIT/R/ # LOAD UNIT/R/ *2(-1).
037413,000110: 30,2340 03527 V # UR*2(-1) X V*2(-7) = H/R*2(-8).
037414,000111: 30,2341 56236 VSQ DDV # H(2)/R(2)*2(-16).
037415,000112: 30,2342 02272 /R/MAG # H(2)/R(3)*2(9).
037416,000113: 30,2343 43352 SL1 DAD
037417,000114: 30,2344 77626 STADR
037418,000115: 30,2345 75471 STORE GEFF # GEFF*2(10)M/CS/CS
037419,000116: 30,2346 45014 BOFF CALL # IF P7071FLG = 1 (I.E. P70 OR P71)
037420,000117: 30,2347 04742 P7071FLG # CALL ZDOTDCMP TO UPDATE ZDOTD
037421,000118: 30,2350 60352 +2 # ON THE BASIS OF THE LAST RP.
037422,000119: 30,2351 71620 ZDOTDCMP
037423,000120: 30,2352 45345 +2 DLOAD DSU
037424,000121: 30,2353 02270 ZDOTD
037425,000122: 30,2354 02304 ZDOT
037426,000123: 30,2355 02334 STORE DZDOT # DZDOT = (ZDOTD - ZDOT)*2(7)M/CS.
037427,000124: 30,2356 65361 VXSC PDDL
037428,000125: 30,2357 02606 ZAXIS1
Page 847 |
037430,000127: 30,2360 02266 YDOTD
037431,000128: 30,2361 77625 DSU
037432,000129: 30,2362 02302 YDOT
037433,000130: 30,2363 02332 STORE DYDOT # DYDOT = (YDOTD - YDOT)*2(7)M/CS.
037434,000131: 30,2364 65361 VXSC PDDL
037435,000132: 30,2365 02274 LAXIS
037436,000133: 30,2366 02264 RDOTD
037437,000134: 30,2367 77625 DSU
037438,000135: 30,2370 03474 RDOT
037439,000136: 30,2371 02330 STORE DRDOT # DRDOT = (RDOTD - RDOT)*2(7)M/CS.
037440,000137: 30,2372 53361 VXSC VAD
037441,000138: 30,2373 03537 UNIT/R/
037442,000139: 30,2374 76455 VAD VSL1
037443,000140: 30,2375 77626 STADR
037444,000141: 30,2376 74131 STORE VGVECT # VG = (DRDOT)R + (DYDOT)L + (DZDOT)Z.
037445,000142: 30,2377 41345 DLOAD DMP # LOAD TGO
037446,000143: 30,2400 03517 TGO # TGO GEFF
037447,000144: 30,2401 02306 GEFF
037448,000145: 30,2402 76561 VXSC VSL1
037449,000146: 30,2403 03537 UNIT/R/ # TGO GEFF UR
037450,000147: 30,2404 77645 BVSU
037451,000148: 30,2405 03646 VGVECT # COMPENSATED FOR GEFF
037452,000149: 30,2406 03646 STORE VGVECT # STORE FOR DOWNLINK
037453,000150: 30,2407 76521 MXV VSL1 # GET VGBODY FOR N85 DISPLAY
037454,000151: 30,2410 02137 XNBPIP
037455,000152: 30,2411 27502 STOVL VGBODY
037456,000153: 30,2412 03646 VGVECT
037457,000154: 30,2413 43046 ABVAL BOFF # MAGNITUDE OF VGVECT
037458,000155: 30,2414 04745 FLRCS # IF FLRCS=0,DO NORMAL GUIDANCE
037459,000156: 30,2415 60424 MAINENG
037460,000157: 30,2416 77671 DDV # USE TGO=VG/AT WITH RCS
037461,000158: 30,2417 20001 AT/RCS
037462,000159: 30,2420 37517 STCALL TGO # THIS WILL BE USED ON NEXT CYCLE
037463,000160: 30,2421 71571 RPCOMP1 # COMPUTE NEW RP FOR NEXT CYCLE.
037464,000161: 30,2422 77650 GOTO
037465,000162: 30,2423 60746 ASCTERM2
037466,000163: 30,2424 41471 MAINENG DDV PUSH # VG/VE IN PDL(0) (2)
037467,000164: 30,2425 02256 VE
037468,000165: 30,2426 44342 SR1 BDSU # 1 - VG / 2 VE
037469,000166: 30,2427 17774 NEARONE
037470,000167: 30,2430 41205 DMP DMP # TBUP VG(1-KT VG/VE)/VE (0)
037471,000168: 30,2431 02262 TBUP # = TGO
037472,000169: 30,2432 77625 DSU # COMPENSATE FOR TAILOFF
037473,000170: 30,2433 02260 TTO
037474,000171: 30,2434 03517 STORE TGO
037475,000172: 30,2435 57461 SR DCOMP
037476,000173: 30,2436 20614 11D
037477,000174: 30,2437 17454 STODL TTOGO # TGO*2(-28)CS
037478,000175: 30,2440 03517 TGO
037479,000176: 30,2441 45214 BON DSU
Page 848 |
037481,000178: 30,2442 03710 IDLEFLAG
037482,000179: 30,2443 60447 T2TEST
037483,000180: 30,2444 21000 4SEC(17) # ( TGO - 4 )*2(-17)CS.
037484,000181: 30,2445 77640 BMN
037485,000182: 30,2446 71457 ENGOFF
037486,000183: 30,2447 77745 T2TEST DLOAD
037487,000184: 30,2450 03517 TGO
037488,000185: 30,2451 50025 DSU BMN # IF TGO - T2 NEG., GO TO CMPONENT
037489,000186: 30,2452 21002 T2A
037490,000187: 30,2453 60607 CMPONENT
037491,000188: 30,2454 45345 DLOAD DSU
037492,000189: 30,2455 02262 TBUP
037493,000190: 30,2456 03517 TGO
037494,000191: 30,2457 45071 DDV CALL # 1-TGO/TBUP
037495,000192: 30,2460 02262 TBUP
037496,000193: 30,2461 61015 LOGSUB
037497,000194: 30,2462 41461 SL PUSH # -L IN PDL(0) (2)
037498,000195: 30,2463 20206 5
037499,000196: 30,2464 44265 BDDV BDSU # -TGO/L*2(-17)
037500,000197: 30,2465 03517 TGO
037501,000198: 30,2466 02262 TBUP # TBUP + TGO/L = D12*2(-17)
037502,000199: 30,2467 43006 PUSH BON # STORE IN PDL(2) (4)
037503,000200: 30,2470 04703 FLPC # IF FLPC = 1, GO TO CONST
037504,000201: 30,2471 60500 NORATES
037505,000202: 30,2472 45345 DLOAD DSU
037506,000203: 30,2473 03517 TGO
037507,000204: 30,2474 21004 T3
037508,000205: 30,2475 43044 BPL SET # FLPC=1
037509,000206: 30,2476 60505 RATES
037510,000207: 30,2477 04463 FLPC
037511,000208: 30,2500 77745 NORATES DLOAD
037512,000209: 30,2501 06505 HI6ZEROS
037513,000210: 30,2502 02342 STORE PRATE # B = 0
037514,000211: 30,2503 36344 STCALL YRATE # D = 0
037515,000212: 30,2504 60567 CONST # GO TO CONST
037516,000213: 30,2505 45345 RATES DLOAD DSU
037517,000214: 30,2506 03517 TGO
037518,000215: 30,2507 00003 02D # TGO - D12 = D21*2(-17)
037519,000216: 30,2510 72406 PUSH SL1 # IN PDL(4) (6)
037520,000217: 30,2511 52421 BDSU SL3 # (1/2TGO - D21)*2(-13) = E * 2(-13)
037521,000218: 30,2512 03517 TGO # (8)
037522,000219: 30,2513 41325 PDDL DMP # IN PDL(6)
037523,000220: 30,2514 03517 TGO
037524,000221: 30,2515 03474 RDOT # RDOT TGO * 2(-24)
037525,000222: 30,2516 45215 DAD DSU # R + RDOT TGO
037526,000223: 30,2517 02272 /R/MAG # R + RDOT TGO - RCO
037527,000224: 30,2520 03631 RCO # MPAC = - DR*2(-24).
037528,000225: 30,2521 41325 PDDL DMP # -DR IN PDL(8) (10)
037529,000226: 30,2522 02330 DRDOT
037530,000227: 30,2523 00005 04D # D21 DRDOT*2(-24)
Page 849 |
037532,000229: 30,2524 62415 DAD SL2 # (D21 DRDOT-DR)*2(-22) (8)
037533,000230: 30,2525 56271 DDV DDV
037534,000231: 30,2526 00007 06D # (D21 DRDOT-DR)/E*2(-9)
037535,000232: 30,2527 03517 TGO
037536,000233: 30,2530 02342 STORE PRATE # B * 2(8)
037537,000234: 30,2531 71240 BMN DLOAD # B>0 NOT PERMITTED
037538,000235: 30,2532 60536 CHKBMAG
037539,000236: 30,2533 06505 HI6ZEROS
037540,000237: 30,2534 36342 STCALL PRATE
037541,000238: 30,2535 60550 PROK
037542,000239: 30,2536 56202 CHKBMAG SR4 DDV # B*2(4)
037543,000240: 30,2537 02262 TBUP # (B / TAU) * 2(21)
037544,000241: 30,2540 51025 DSU BPL
037545,000242: 30,2541 26114 PRLIMIT # ( B/ TAU ) * 2(21) MAX.
037546,000243: 30,2542 60550 PROK
037547,000244: 30,2543 41345 DLOAD DMP
037548,000245: 30,2544 26114 PRLIMIT
037549,000246: 30,2545 02262 TBUP # B MAX. * 2(4)
037550,000247: 30,2546 77612 SL4 # BMAX*2(8)
037551,000248: 30,2547 02342 STORE PRATE
037552,000249: 30,2550 77745 PROK DLOAD
037553,000250: 30,2551 03517 TGO
037554,000251: 30,2552 43205 DMP DAD # YDOT TGO
037555,000252: 30,2553 02302 YDOT
037556,000253: 30,2554 02326 Y # Y + YDOT TGO
037557,000254: 30,2555 65225 DSU PDDL # Y + YDOT TGO - YCO
037558,000255: 30,2556 03633 YCO # MPAC = - DY*2(-24.) IN PDL(8) (10)
037559,000256: 30,2557 02332 DYDOT
037560,000257: 30,2560 43205 DMP DAD # D21 DYDOT - DY (8)
037561,000258: 30,2561 00005 04D
037562,000259: 30,2562 56312 SL2 DDV # (D21 DYDOT - DY)/E*2(-9)
037563,000260: 30,2563 40271 DDV SETPD # (D21 DYDOT - DY)/E TGO*2(8)
037564,000261: 30,2564 03517 TGO # = D*2(8)
037565,000262: 30,2565 00005 04
037566,000263: 30,2566 02344 STORE YRATE
037567,000264: 30,2567 41345 CONST DLOAD DMP # LOAD B*2(8)
037568,000265: 30,2570 02342 PRATE # B D12*2(-9)
037569,000266: 30,2571 00003 02D
037570,000267: 30,2572 56325 PDDL DDV # D12 B IN PDL(4) (6)
037571,000268: 30,2573 02330 DRDOT # LOAD DRDOT*2(-7)
037572,000269: 30,2574 00001 00D # -DRDOT/L*2(-7)
037573,000270: 30,2575 45302 SR2 DSU # (-DRDOT/L-D12 B)=A*2(-9) (4)
037574,000271: 30,2576 77626 STADR
037575,000272: 30,2577 61441 STODL PCONS
037576,000273: 30,2600 02344 YRATE # D*2(8)
037577,000274: 30,2601 65205 DMP PDDL # D12 D,EXCH WITH -L IN PDL(0) (2,2)
037578,000275: 30,2602 60465 BDDV SR2 # -DYDOT/L*2(-9)
037579,000276: 30,2603 02332 DYDOT
037580,000277: 30,2604 77625 DSU # (-DYDOT/L-D12 D)=C*2(-9)
037581,000278: 30,2605 00001 00D
Page 850 |
037583,000280: 30,2606 02340 STORE YCONS
037584,000281: 30,2607 43001 CMPONENT SETPD BOFF
037585,000282: 30,2610 00001 00D
037586,000283: 30,2611 04742 P7071FLG
037587,000284: 30,2612 60615 +3 # IF P7071FLG = 1 (I.E. P70 OR P71)
037588,000285: 30,2613 77624 CALL # COMPUTE NEW RP FOR NEXT CYCLE.
037589,000286: 30,2614 71575 RPCOMP2
037590,000287: 30,2615 41345 +3 DLOAD DMP
037591,000288: 30,2616 27053 100CS
037592,000289: 30,2617 02342 PRATE # B(T-T0)*2(-9)
037593,000290: 30,2620 56215 DAD DDV # (A+B(T-T0))*2(-9)
037594,000291: 30,2621 02336 PCONS # (A+B(T-T0))/TBUP*2(8)
037595,000292: 30,2622 02262 TBUP
037596,000293: 30,2623 45352 SL1 DSU
037597,000294: 30,2624 02306 GEFF # ATR*2(9)
037598,000295: 30,2625 16350 STODL ATR
037599,000296: 30,2626 27053 100CS
037600,000297: 30,2627 43205 DMP DAD
037601,000298: 30,2630 02344 YRATE
037602,000299: 30,2631 02340 YCONS # (C+D(T-T0))*2(-9)
037603,000300: 30,2632 72471 DDV SL1
037604,000301: 30,2633 02262 TBUP
037605,000302: 30,2634 02346 STORE ATY # ATY*2(9)
037606,000303: 30,2635 65361 VXSC PDDL # ATY UY*2(8) (6)
037607,000304: 30,2636 02274 LAXIS
037608,000305: 30,2637 02350 ATR
037609,000306: 30,2640 53361 VXSC VAD # (0)
037610,000307: 30,2641 03537 UNIT/R/
037611,000308: 30,2642 41572 VSL1 PUSH # AH*2(9) IN PDL(0) (6)
037612,000309: 30,2643 65246 ABVAL PDDL # AH(2) IN PDL(34)
037613,000310: 30,2644 02254 AT # AHMAG IN PDL(6) (8)
037614,000311: 30,2645 45316 DSQ DSU # (AT(2)-AH(2))*2(18)
037615,000312: 30,2646 00043 34D # =ATP2*2(18)
037616,000313: 30,2647 41525 PDDL PUSH # (12)
037617,000314: 30,2650 02254 AT
037618,000315: 30,2651 45316 DSQ DSU # (AT(2)KR(2)-AH(2))*2(18) (10)
037619,000316: 30,2652 00043 34D # =ATP3*2(18)
037620,000317: 30,2653 71240 BMN DLOAD # IF ATP3 NEG,GO TO NO-ATP
037621,000318: 30,2654 60660 NO-ATP # LOAD ATP2,IF ATP3 POS
037622,000319: 30,2655 00011 8D
037623,000320: 30,2656 52166 SQRT GOTO # ATP*2(9)
037624,000321: 30,2657 60666 AIMER
037625,000322: 30,2660 55345 NO-ATP DLOAD BDDV # KR AT/AH = KH (8)
037626,000323: 30,2661 00007 6D
037627,000324: 30,2662 77761 VXSC # KH AH*2(9)
037628,000325: 30,2663 00001 00D
037629,000326: 30,2664 14001 STODL 00D # STORE NEW AH IN PDL(0)
037630,000327: 30,2665 06505 HI6ZEROS
037631,000328: 30,2666 77765 AIMER SIGN
037632,000329: 30,2667 02334 DZDOT
Page 851 |
037634,000331: 30,2670 02352 STORE ATP
037635,000332: 30,2671 77761 VXSC
037636,000333: 30,2672 02606 ZAXIS1 # ATP ZAXIS *2(8).
037637,000334: 30,2673 53372 VSL1 VAD # AT*2(9)
037638,000335: 30,2674 00001 00D
037639,000336: 30,2675 03252 STORE UNFC/2 # WILL BE OVERWRITTEN IF IN VERT. RISE.
037640,000337: 30,2676 43001 SETPD BON
037641,000338: 30,2677 00001 00D
037642,000339: 30,2700 04704 FLPI
037643,000340: 30,2701 60210 P12RET
037644,000341: 30,2702 77614 BON
037645,000342: 30,2703 04701 FLVR
037646,000343: 30,2704 60755 CHECKALT
037647,000344: 30,2705 57575 MAINLINE VLOAD VCOMP
037648,000345: 30,2706 03537 UNIT/R/
037649,000346: 30,2707 17260 STODL UNWC/2
037650,000347: 30,2710 03654 TXO
037651,000348: 30,2711 51025 DSU BPL
037652,000349: 30,2712 01234 PIPTIME
037653,000350: 30,2713 60721 ASCTERM
037654,000351: 30,2714 77614 BON
037655,000352: 30,2715 04711 ROTFLAG
037656,000353: 30,2716 57275 ANG1CHEK
037657,000354: 30,2717 77614 CLRXFLAG CLEAR
037658,000355: 30,2720 06666 XOVINFLG # (XOVINFLG)
037659,000356: 30,2721 77776 ASCTERM EXIT
037660,000357: 30,2722 30105 CA FLAGWRD9
037661,000358: 30,2723 74733 MASK FLRCSBIT
037662,000359: 30,2724 10000 CCS A
037663,000360: 30,2725 12747 TCF ASCTERM3
037664,000361: 30,2726 06060 TC INTPRET
037665,000362: 30,2727 77624 CALL
037666,000363: 30,2730 61072 FINDCDUW -2
037667,000364: 30,2731 77776 ASCTERM1 EXIT
037668,000365: 30,2732 30105 +1 CA FLAGWRD9 # INSURE THAT THE NOUN 63 DISPLAY IS
037669,000366: 30,2733 74733 MASK FLRCSBIT # BYPASSED IF WE ARE IN THE RCS TRIMMING
037670,000367: 30,2734 10000 CCS A # MODE OF OPERATION
037671,000368: 30,2735 12747 TCF ASCTERM3
037672,000369: 30,2736 30104 CA FLAGWRD8 # BYPASS DISPLAYS IF ENGINE FAILURE IS
037673,000370: 30,2737 74733 MASK FLUNDBIT # INDICATED.
037674,000371: 30,2740 10000 CCS A
037675,000372: 30,2741 12747 TCF ASCTERM3
037676,000373: 30,2742 05156 TC VACRLEAS
037677,000374: 30,2743 33012 CAF V06N94
037678,000375: 30,2744 04607 TC BANKCALL
037679,000376: 30,2745 20436 CADR GODSP
037680,000377: 30,2746 77776 ASCTERM2 EXIT
037681,000378: 30,2747 15146 ASCTERM3 TCF ENDOFJOB
037682,000379: 30,2750 77776 ASCTERM4 EXIT
037683,000380: 30,2751 00004 INHINT
Page 852 |
037685,000382: 30,2752 04665 TC IBNKCALL # NO GUIDANCE THIS CYCLE -- HENCE ZERO
037686,000383: 30,2753 40166 CADR STOPRATE # THE DAP COMMANDED RATES.
037687,000384: 30,2754 12732 TCF ASCTERM1 +1
037688,000385:
037689,000386: 30,2755 45345 CHECKALT DLOAD DSU
037690,000387: 30,2756 02272 /R/MAG
037691,000388: 30,2757 02324 /LAND/
037692,000389: 30,2760 50025 DSU BMN # IF H LT 25K CHECK Z AXIS ORIENTATION.
037693,000390: 30,2761 26120 25KFT
037694,000391: 30,2762 46453 CHECKYAW
037695,000392: 30,2763 43014 EXITVR CLEAR BON
037696,000393: 30,2764 04661 FLVR
037697,000394: 30,2765 04711 ROTFLAG
037698,000395: 30,2766 60705 MAINLINE
037699,000396: 30,2767 43345 DLOAD DAD
037700,000397: 30,2770 01234 PIPTIME
037701,000398: 30,2771 25644 10SECS
037702,000399: 30,2772 37654 STCALL TXO
037703,000400: 30,2773 60705 MAINLINE
037704,000401: 30,2774 77614 EXITVR1 CLRGO
037705,000402: 30,2775 04631 ROTFLAG
037706,000403: 30,2776 60763 EXITVR
037707,000404:
037708,000405: 27,2000 SETLOC ASENT1
037709,000406: 27,2000 BANK
037710,000407: 27,3275 COUNT* $$/ASENT
037711,000408:
037712,000409: 27,3275 53575 ANG1CHEK VLOAD UNIT
037713,000410: 27,3276 03252 UNFC/2
037714,000411: 27,3277 77641 DOT
037715,000412: 27,3300 02137 XNBPIP
037716,000413: 27,3301 51025 DSU BPL
037717,000414: 27,3302 02566 COSTHET1
037718,000415: 27,3303 57312 OFFROT
037719,000416: 27,3304 50375 VLOAD DOT
037720,000417: 27,3305 02137 XNBPIP
037721,000418: 27,3306 03537 UNIT/R/
037722,000419: 27,3307 50025 DSU BMN
037723,000420: 27,3310 02570 COSTHET2
037724,000421: 27,3311 71453 KEEPVR1
037725,000422: 27,3312 77614 OFFROT CLRGO
037726,000423: 27,3313 04631 ROTFLAG
037727,000424: 27,3314 60717 CLRXFLAG
037728,000425:
037729,000426: 23,2000 SETLOC ASENT7
037730,000427: 23,2000 BANK
037731,000428: 23,2453 COUNT* $$/ASENT
037732,000429:
037733,000430: 23,2453 23,2453 SETXFLAG = CHECKYAW
037734,000431:
Page 853 |
037736,000433: 23,2453 77614 CHECKYAW SET
037737,000434: 23,2454 06466 XOVINFLG # PROHIBIT X-AXIS OVERRIDE
037738,000435: 23,2455 74345 DLOAD VXSC
037739,000436: 23,2456 02346 ATY
037740,000437: 23,2457 02274 LAXIS
037741,000438: 23,2460 74325 PDDL VXSC
037742,000439: 23,2461 02352 ATP
037743,000440: 23,2462 02606 ZAXIS1
037744,000441: 23,2463 53455 VAD UNIT
037745,000442: 23,2464 45325 PDDL DSU
037746,000443: 23,2465 03474 RDOT
037747,000444: 23,2466 06473 40FPS
037748,000445: 23,2467 52044 BPL GOTO
037749,000446: 23,2470 60774 EXITVR1
037750,000447: 23,2471 71451 KEEPVR
037751,000448:
037752,000449: 23,2472 00017 23305 40FPS 2DEC 0.12192 B-7
037753,000450:
037754,000451: 34,3451 BANK 34
037755,000452: 34,2000 SETLOC ASENT8
037756,000453: 34,2000 BANK
037757,000454: 34,3451 COUNT* $$/ASENT
037758,000455:
037759,000456: 34,3451 45575 KEEPVR VLOAD STADR # RECALL LOSVEC FROM PUSHLIST
037760,000457: 34,3452 74517 STORE UNWC/2
037761,000458: 34,3453 77775 KEEPVR1 VLOAD
037762,000459: 34,3454 03537 UNIT/R/
037763,000460: 34,3455 37252 STCALL UNFC/2
037764,000461: 34,3456 60721 ASCTERM
037765,000462:
037766,000463:
037767,000464: 34,3457 77634 ENGOFF RTB
037768,000465: 34,3460 21603 LOADTIME
037769,000466: 34,3461 43225 DSU DAD
037770,000467: 34,3462 01234 PIPTIME
037771,000468: 34,3463 03454 TTOGO
037772,000469: 34,3464 77476 DCOMP EXIT
037773,000470: 34,3465 07300 TC TPAGREE # FORCE SIGN AGREEMENT ON MPAC, MPAC +1.
037774,000471: 34,3466 35007 CAF EBANK7
037775,000472: 34,3467 54003 TS EBANK
037776,000473: 34,3470 E7,1516 EBANK= TGO
037777,000474: 34,3470 00004 INHINT
037778,000475: 34,3471 10155 CCS MPAC +1
037779,000476: 34,3472 13475 TCF +3 # C(A) = DT - 1 BIT
037780,000477: 34,3473 13475 TCF +2 # C(A) = 0
037781,000478: 34,3474 34746 CAF ZERO # C(A) = 0
037782,000479: 34,3475 64744 AD BIT1 # C(A) = 1 BIT OR DT.
037783,000480: 34,3476 55644 TS ENGOFFDT
037784,000481: 34,3477 05175 TC TWIDDLE
037785,000482: 34,3500 03512 ADRES ENGOFF1
Page 854 |
037787,000484: 34,3501 05355 TC PHASCHNG
037788,000485: 34,3502 47014 OCT 47014
037789,000486: 34,3503 76133 -GENADR ENGOFFDT
037790,000487: 34,3504 E7,1516 EBANK= TGO
037791,000488: 34,3504 03512 70067 2CADR ENGOFF1
037792,000489:
037793,000490: 34,3506 06060 TC INTPRET
037794,000491: 34,3507 52014 SET GOTO
037795,000492: 34,3510 03470 IDLEFLAG # DISABLE DELTA-V MONITOR
037796,000493: 34,3511 60447 T2TEST
037797,000494:
037798,000495: 34,3512 04665 ENGOFF1 TC IBNKCALL # SHUT OFF THE ENGINE.
037799,000496: 34,3513 75552 CADR ENGINOF2
037800,000497:
037801,000498: 34,3514 35020 CAF PRIO17 # SET UP A JOB FOR THE ASCENT GUIDANCE
037802,000499: 34,3515 05063 TC NOVAC
037803,000500: 34,3516 E7,1455 EBANK= WHICH
037804,000501: 34,3516 03526 70067 2CADR CUTOFF
037805,000502:
037806,000503: 34,3520 05355 TC PHASCHNG
037807,000504: 34,3521 07024 OCT 07024
037808,000505: 34,3522 17000 OCT 17000
037809,000506: 34,3523 E7,1516 EBANK= TGO
037810,000507: 34,3523 03526 70067 2CADR CUTOFF
037811,000508:
037812,000509: 34,3525 15263 TCF TASKOVER
037813,000510:
037814,000511: 34,3526 05506 CUTOFF TC UPFLAG # SET FLRCS FLAG.
037815,000512: 34,3527 00214 ADRES FLRCS
037816,000513:
037817,000514: 34,3530 33547 -5 CAF V16N94
037818,000515: 34,3531 04607 TC BANKCALL
037819,000516: 34,3532 20471 CADR GOFLASH
037820,000517: 34,3533 13536 TCF +3
037821,000518: 34,3534 13540 TCF CUTOFF1
037822,000519: 34,3535 13530 TCF -5
037823,000520:
037824,000521: 34,3536 04626 +3 TC POSTJUMP
037825,000522: 34,3537 71560 CADR TERMASC
037826,000523:
037827,000524: 34,3540 00004 CUTOFF1 INHINT
037828,000525: 34,3541 04665 TC IBNKCALL # ZERO ATTITUDE ERRORS BEFORE REDUCING DB.
037829,000526: 34,3542 40154 CADR ZATTEROR
037830,000527: 34,3543 04665 TC IBNKCALL
037831,000528: 34,3544 40141 CADR SETMINDB
037832,000529: 34,3545 04626 TC POSTJUMP
037833,000530: 34,3546 71550 CADR CUTOFF2
037834,000531:
037835,000532: 34,3547 04136 V16N94 VN 1694
037836,000533: 34,3550 05355 CUTOFF2 TC PHASCHNG
Page 855 |
037838,000535: 34,3551 04024 OCT 04024
037839,000536:
037840,000537: 34,3552 33570 CAF V16N85C
037841,000538: 34,3553 04607 TC BANKCALL
037842,000539: 34,3554 20471 CADR GOFLASH
037843,000540: 34,3555 13560 TCF TERMASC
037844,000541: 34,3556 13560 TCF +2 # PROCEED
037845,000542: 34,3557 13550 TCF CUTOFF2
037846,000543:
037847,000544: 34,3560 05355 TERMASC TC PHASCHNG
037848,000545: 34,3561 04024 OCT 04024
037849,000546:
037850,000547: 34,3562 00004 INHINT # RESTORE DEADBAND DESIRED BY ASTRONAUT.
037851,000548: 34,3563 04665 TC IBNKCALL
037852,000549: 34,3564 40115 CADR RESTORDB
037853,000550: 34,3565 05520 TC DOWNFLAG # DISALLOW ABORTS AT THIS TIME.
037854,000551: 34,3566 00215 ADRES LETABORT
037855,000552: 34,3567 16001 TCF GOTOPOOH
037856,000553:
037857,000554: 34,3570 04125 V16N85C VN 1685
037858,000555:
037859,000556: 34,3571 77745 RPCOMP1 DLOAD # FLRCS = 1 (TRIM MODE)
037860,000557: 34,3572 06505 HI6ZEROS
037861,000558: 34,3573 02336 STORE PCONS # SET PCONS = PRATE = 0 SO THAT
037862,000559: 34,3574 02342 STORE PRATE # RP = R + RDOT TGO
037863,000560: 34,3575 41345 RPCOMP2 DLOAD DMP # FLRCS = 0 (GUIDANCE MODE)
037864,000561: 34,3576 02342 PRATE # LEAVE PCONS AND PRATE ALONE SO THAT
037865,000562: 34,3577 03517 TGO # RP = R + RDOT TGO + (PCONS*TGO**2)/
037866,000563: 34,3600 43205 DMP DAD # (2 TBUP) + (PRATE*TGO**3)/(6 TBUP)
037867,000564: 34,3601 33646 THIRD
037868,000565: 34,3602 02336 PCONS
037869,000566: 34,3603 41205 DMP DMP
037870,000567: 34,3604 03517 TGO
037871,000568: 34,3605 03517 TGO
037872,000569: 34,3606 72471 DDV SL1
037873,000570: 34,3607 02262 TBUP
037874,000571: 34,3610 65215 DAD PDDL
037875,000572: 34,3611 02272 /R/MAG
037876,000573: 34,3612 03474 RDOT
037877,000574: 34,3613 43205 DMP DAD
037878,000575: 34,3614 03517 TGO
037879,000576: 34,3615 77626 STADR
037880,000577: 34,3616 75201 STORE RP
037881,000578: 34,3617 77616 RVQ
037882,000579:
037883,000580: 34,3620 45020 ZDOTDCMP STQ CALL # COMPUTE CENTRAL ANGLE (0)
037884,000581: 34,3621 02637 ASCSAVE
037885,000582: 34,3622 71650 THETCOMP
037886,000583: 34,3623 43205 DMP DAD # CENTRAL ANGLE IN MPAC
037887,000584: 34,3624 02574 KPARM
Page 856 |
037889,000586: 34,3625 02572 JPARM
037890,000587: 34,3626 41425 DSU PUSH # RA IN MPAC AND IN PUSHLIST (2)
037891,000588: 34,3627 02576 RP
037892,000589: 34,3630 51025 DSU BPL
037893,000590: 34,3631 02560 RAMIN
037894,000591: 34,3632 71635 +3
037895,000592: 34,3633 65345 DLOAD PDDL # RA < RAMIN. SET RA = RAMIN. (2)
037896,000593: 34,3634 02560 RAMIN
037897,000594: 34,3635 41345 +3 DLOAD DMP
037898,000595: 34,3636 00001 0D
037899,000596: 34,3637 16025 MUM(-37)
037900,000597: 34,3640 77725 PDDL
037901,000598: 34,3641 41215 DAD DMP
037902,000599: 34,3642 02576 RP
037903,000600: 34,3643 02576 RP
037904,000601: 34,3644 75465 BDDV SQRT # (0)
037905,000602: 34,3645 77626 STADR
037906,000603: 34,3646 41507 STCALL ZDOTD # UPDATE ZDOTD FOR GUIDANCE AND DOWNLINK.
037907,000604: 34,3647 02637 ASCSAVE
037908,000605:
037909,000606: 34,3650 53575 THETCOMP VLOAD UNIT
037910,000607: 34,3651 03521 R
037911,000608: 34,3652 53515 PDVL UNIT # (6)
037912,000609: 34,3653 01716 R(CSM)
037913,000610: 34,3654 47206 PUSH VXV # (12)
037914,000611: 34,3655 00001 0D
037915,000612: 34,3656 77641 DOT
037916,000613: 34,3657 02316 WM
037917,000614: 34,3660 24037 STOVL 30D # (6)
037918,000615: 34,3661 72441 DOT SL1 # (0)
037919,000616: 34,3662 75326 ARCCOS SIGN
037920,000617: 34,3663 00037 30D
037921,000618: 34,3664 77616 RVQ
037922,000619:
037923,000620: 27,3315 BANK 27
037924,000621: 27,2000 SETLOC ASENT1
037925,000622: 27,2000 BANK
037926,000623: 27,3315 COUNT* $$/ASENT
037927,000624:
037928,000625: 27,3315 50375 YCOMP VLOAD DOT
037929,000626: 27,3316 03537 UNIT/R/
037930,000627: 27,3317 02600 QAXIS
037931,000628: 27,3320 41312 SL2 DMP
037932,000629: 27,3321 03631 RCO
037933,000630: 27,3322 02326 STORE Y
037934,000631: 27,3323 77616 RVQ
037935,000632:
037936,000633: 30,2777 BANK 30
037937,000634: 30,2000 SETLOC ASENT
Page 857 |
037939,000636: 30,2000 BANK
037940,000637:
Page 858 |
037942,000639: # ASCENT GUIDANCE CONSTANTS
037943,000640:
037944,000641: 30,2777 33,3052 100CS EQUALS 2SEC(18)
037945,000642: 30,2777 30,3001 T2A EQUALS 2SEC(17)
037946,000643: 30,2777 00062 00000 4SEC(17) 2DEC 400 B-17
037947,000644:
037948,000645: 30,3001 00031 00000 2SEC(17) 2DEC 200 B-17
037949,000646:
037950,000647: 30,3003 00175 00000 T3 2DEC 1000 B-17
037951,000648:
037952,000649: 30,3005 00045 20000 6SEC(18) 2DEC 600 B-18
037953,000650:
037954,000651: 30,3007 00010 BIT4H OCT 10
037955,000652:
037956,000653: 30,3010 14400 00000 2SEC(9) 2DEC 200 B-9
037957,000654:
037958,000655: 30,3012 01536 V06N94 VN 0694
037959,000656: 30,3013 01514 V06N76 VN 0676
037960,000657: 30,3014 01441 V06N33A VN 0633
037961,000658:
037962,000659: 33,2113 BANK 33
037963,000660: 33,2000 SETLOC ASENT6
037964,000661: 33,2000 BANK
037965,000662: 33,2113 COUNT* $$/ASENT
037966,000663:
037967,000664: 33,2113 75751 41775 PRLIMIT 2DEC -.0639 # (B/TBUP)MIN=-.1FT.SEC(-3)
037968,000665:
037969,000666: 33,2115 00022 07212 MINABDV 2DEC .0356 B-5 # 10 PERCENT BIGGER THAN GRAVITY
037970,000667:
037971,000668: 33,2117 00007 16100 25KFT 2DEC 7620 B-24
037972,000669:
Page 859 |
037974,000671: # THE LOGARITHM SUBROUTINE
037975,000672:
037976,000673: 24,3644 BANK 24
037977,000674: 30,2000 SETLOC FLOGSUB
037978,000675: 30,2000 BANK
037979,000676:
037980,000677: # INPUT ..... X IN MPAC
037981,000678: # OUTPUT ..... -LOG(X) IN MPAC
037982,000679:
037983,000680: 30,3015 44301 LOGSUB NORM BDSU
037984,000681: 30,3016 00163 MPAC +6
037985,000682: 30,3017 17774 NEARONE
037986,000683: 30,3020 77776 EXIT
037987,000684: 30,3021 07243 TC POLY
037988,000685: 30,3022 00006 DEC 6 B-14
037989,000686: 30,3023 00000 00002 2DEC .0000000060
037990,000687:
037991,000688: 30,3025 76777 77175 2DEC -.0312514377
037992,000689:
037993,000690: 30,3027 77400 75416 2DEC -.0155686771
037994,000691:
037995,000692: 30,3031 77507 65515 2DEC -.0112502068
037996,000693:
037997,000694: 30,3033 77741 63547 2DEC -.0018545108
037998,000695:
037999,000696: 30,3035 77052 55373 2DEC -.0286607906
038000,000697:
038001,000698: 30,3037 01167 30361 2DEC .0385598563
038002,000699:
038003,000700: 30,3041 76520 75267 2DEC -.0419361902
038004,000701:
038005,000702: 30,3043 34746 CAF ZERO
038006,000703: 30,3044 54156 TS MPAC +2
038007,000704: 30,3045 00006 EXTEND
038008,000705: 30,3046 33062 DCA CLOG2/32
038009,000706: 30,3047 52155 DXCH MPAC
038010,000707: 30,3050 52132 DXCH BUF +1
038011,000708: 30,3051 30162 CA MPAC +6
038012,000709: 30,3052 07330 TC SHORTMP
038013,000710: 30,3053 52156 DXCH MPAC +1
038014,000711: 30,3054 52155 DXCH MPAC
038015,000712: 30,3055 52132 DXCH BUF +1
038016,000713: 30,3056 20155 DAS MPAC
038017,000714: 30,3057 06060 TC INTPRET
038018,000715: 30,3060 43476 DCOMP RVQ
038019,000716:
038020,000717: 30,3061 00542 34414 CLOG2/32 2DEC .0216608494
038021,000718:
End of include-file ASCENT_GUIDANCE.agc. Parent file is MAIN.agc