Source Code
These source-code files are part of a reconstructed copy of LM131 revision 1,
the final release of the Apollo 13 Lunar Module (LM) Apollo Guidance Computer
(AGC) software.
The source reconstruction began with source code of Luminary 131 previously transcribed from a digitized copy of that program. A dump of the flight spare core rope memory module B5, part number 2010802-171, serial number RAY 411, was obtained. This module is the only module different between Luminary 131 and LM131 revision 1. The dump was disassembled and all changes were incorporated into these source files. Note that page numbers in the reconstructed code match those on the Luminary 131 printout, although the changed code would likely have changed page numbers for a real LM131 revision 1 listing. Comments from the original source code are prefixed with a single '#' symbol, whereas comments added later are prefixed by "##" or "###". Report any errors noted by creating an issue report at the Virtual AGC project's GitHub repository. |
033549,000002: ## Copyright: Public domain.
033550,000003: ## Filename: LUNAR_LANDING_GUIDANCE_EQUATIONS.agc
033551,000004: ## Purpose: A section of LM131 revision 1.
033552,000005: ## It is part of the reconstructed source code for the final
033553,000006: ## release of the flight software for the Lunar Module's (LM)
033554,000007: ## Apollo Guidance Computer (AGC) for Apollo 13. The code has
033555,000008: ## been reconstructed from a listing of Luminary 131 and a dump
033556,000009: ## of a core rope memory module B5, part number 2010802-171,
033557,000010: ## which is the only module different between LM131 revision 1
033558,000011: ## and Luminary 131. The executable generated from this source
033559,000012: ## has been verified against the module dump, so while the names,
033560,000013: ## comments, and ordering may not be exactly correct, the
033561,000014: ## resulting binary is.
033562,000015: ## Reference: pp. 793-822
033563,000016: ## Assembler: yaYUL
033564,000017: ## Contact: Ron Burkey <info@sandroid.org>.
033565,000018: ## Website: www.ibiblio.org/apollo/index.html
033566,000019: ## Mod history: 2022-10-28 MAS Created from Luminary 131 and incorporated
033567,000020: ## changes from the LM131 module dump.
033568,000021:
Page 793 |
033570,000023: 31,2361 E7,1621 EBANK= E2DPS
033571,000024: 31,2361 COUNT* $$/F2DPS
033572,000025:
033573,000026: # ****************************************************************************************************************
033574,000027: # LUNAR LANDING FLIGHT SEQUENCE TABLES
033575,000028: # ****************************************************************************************************************
033576,000029:
033577,000030: # FLIGHT SEQUENCE TABLES ARE ARRANGED BY FUNCTION. THEY ARE REFERENCED USING AS AN INDEX THE REGISTER WCHPHASE:
033578,000031: # WCHPHASE = -1 ---> IGNALG
033579,000032: # WCHPHASE = 0 ---> BRAKQUAD
033580,000033: # WCHPHASE = 1 ---> APPRQUAD
033581,000034: # WCHPHASE = 2 ---> VERTICAL
033582,000035:
033583,000036: # ***************************************************************************************************************
033584,000037:
033585,000038: # ROUTINES FOR STARTING NEW GUIDANCE PHASES:
033586,000039:
033587,000040: 31,2361 12573 TCF TTFINCR # IGNALG
033588,000041: 31,2362 12573 NEWPHASE TCF TTFINCR # BRAKQUAD
033589,000042: 31,2363 12556 TCF STARTP64 # APPRQUAD
This was TCF P65START in Luminary 131. |
033591,000044: 31,2364 12450 TCF STARTP66 # VERTICAL
033592,000045:
033593,000046: # PRE-GUIDANCE COMPUTATIONS:
033594,000047:
033595,000048: 31,2365 12753 TCF CALCRGVG # IGNALG
033596,000049: 31,2366 12763 PREGUIDE TCF RGVGCALC # BRAKQUAD
033597,000050: 31,2367 12654 TCF REDESIG # APPRQUAD
033598,000051: 31,2370 12763 TCF RGVGCALC # VERTICAL
033599,000052:
033600,000053: # GUIDANCE EQUATIONS:
033601,000054:
033602,000055: 31,2371 13026 TCF TTF/8CL # IGNALG
033603,000056: 31,2372 13026 WHATGUID TCF TTF/8CL # BRAKQUAD
033604,000057: 31,2373 13026 TCF TTF/8CL # APPRQUAD
This was TCF VERTGUID in Luminary 131. |
033606,000059: 31,2374 12375 TCF +1 # VERTICAL
033607,000060:
033608,000061: # POST GUIDANCE EQUATION COMPUTATIONS:
033609,000062:
033610,000063: 31,2375 13225 TCF CGCALC # IGNALG
033611,000064: 31,2376 13212 AFTRGUID TCF EXTLOGIC # BRAKQUAD
033612,000065: 31,2377 13212 TCF EXTLOGIC # APPRQUAD
033613,000066: 31,2400 13400 TCF STEER? # VERTICAL
033614,000067:
Page 794 |
033616,000069: # WINDOW VECTOR COMPUTATIONS:
033617,000070:
033618,000071: 31,2401 13275 TCF EXGSUB # IGNALG
033619,000072: 31,2402 13316 WHATEXIT TCF EXBRAK # BRAKQUAD
033620,000073: 31,2403 13324 TCF EXNORM # APPRQUAD
033621,000074:
033622,000075: # DISPLAY ROUTINES:
033623,000076:
033624,000077: 31,2404 13434 WHATDISP TCF P63DISPS # BRAKQUAD
033625,000078: 31,2405 13437 TCF P64DISPS # APPRQUAD
033626,000079: 31,2406 13466 TCF VERTDISP # VERTICAL
033627,000080:
033628,000081: # ALARM ROUTINE FOR TTF COMPUTATION:
033629,000082:
033630,000083: 31,2407 13672 TCF 1406POO # IGNALG
033631,000084: 31,2410 13674 WHATALM TCF 1406ALM # BRAKQUAD
033632,000085: 31,2411 13674 TCF 1406ALM # APPRQUAD
033633,000086:
033634,000087: # INDICES FOR REFERENCING TARGET PARAMETERS:
033635,000088:
033636,000089: 31,2412 00000 OCT 0 # IGNALG
033637,000090: 31,2413 00000 TARGTDEX OCT 0 # BRAKQUAD
033638,000091: 31,2414 00034 OCT 34 # APPRQUAD
033639,000092:
033640,000093: # ****************************************************************************************************************
033641,000094: # ENTRY POINTS: ?GUIDSUB FOR THE IGNITION ALGORITHM, LUNLAND FOR SERVOUT
033642,000095: # ****************************************************************************************************************
033643,000096:
033644,000097: # IGNITION ALGORITHM ENTRY: DELIVERS N PASSES OF QUADRATIC QUIDANCE
033645,000098:
033646,000099: 31,2415 77776 ?GUIDSUB EXIT
033647,000100: 31,2416 34752 CAF TWO # N = 3
033648,000101: 31,2417 55647 TS NGUIDSUB
033649,000102: 31,2420 12531 TCF GUILDRET +2
033650,000103:
033651,000104: 31,2421 55647 GUIDSUB TS NGUIDSUB # ON SUCEEDING PASSES SKIP TTFINCR
033652,000105: 31,2422 12753 TCF CALCRGVG
033653,000106:
033654,000107: # NORMAL ENTRY: CONTROL COMES HERE FROM SERVOUT
033655,000108:
033656,000109: 31,2423 05353 LUNLAND TC PHASCHNG
033657,000110: 31,2424 00035 OCT 00035 # GROUP 5: RETAIN ONLY PIPA TASK
033658,000111: 31,2425 30101 CA FLAGWRD5 # HAS THROTTLE-UP COME YET?
033659,000112: 31,2426 74744 MASK ZOOMBIT
033660,000113: 31,2427 00006 EXTEND
033661,000114: 31,2430 13426 BZF DISPEXIT +3 # NO: DO DISPLAYS ONLY
Page 795 |
033663,000116: 31,2431 05353 TC PHASCHNG # YES: DO GUIDANCE
033664,000117: 31,2432 05023 OCT 05023
033665,000118: 31,2433 20000 OCT 20000
033666,000119:
033667,000120: # ****************************************************************************************************************
033668,000121: # GUILDENSTERN: AUTO-MODES MONITOR (R13)
033669,000122: # ****************************************************************************************************************
033670,000123:
033671,000124: 31,2434 COUNT* $$/R13
033672,000125:
033673,000126: # THE PHILOSOPHY OF GUILDENSTERN: ON EVERY APPEARANCE OF THE ATTITUDE-HOLD DISCRETE CHECK TO SEE IF THE ROD SWITCH
033674,000127: # HAS BEEN CLICKED. IF SO, SELECT P66. IF THE DAP IS IN AUTO AND THE PRESENT
033675,000128: # 9PROGRAM IN PROGRESS IS P66, CHECK FOR A
033676,000129: # RESTART. IF ONE HAS OCCURED RE-INITIALIZE P66 AND CONTINUE OTHERWISE YOUCONTINUE WITH PRESENT DATA IN P66.TO
033677,000130: # SELECT P66 THE ATTITUDE-HOLD DISCRETE MUST BE PRESENT AND THE ROD SWITCH MUST HAVE BEEN CLICKED. OTHERWISE THE
033678,000131: # AUTOMATIC LANDING WILL CONTINUE.
033679,000132:
033680,000133: 31,2434 41010 GUILDEN CS MODREG # ARE WE IN P66? (EVEN THO WE ARE IN AUTO
033681,000134: 31,2435 62452 AD DEC66 # DAP)
033682,000135: 31,2436 00006 EXTEND
033683,000136: 31,2437 12522 BZF RESTART? # YES: GO SE IF THERE HAS BEEN A RESTART
033684,000137:
033685,000138: 31,2440 34737 CAF BIT13 # NO: IS UN-ATTITUDE-HOLD DISCRETE HERE?
033686,000139: 31,2441 00006 EXTEND
033687,000140: 31,2442 02031 RAND CHAN31
033688,000141: 31,2443 10000 CCS A
033689,000142: 31,2444 12527 TCF GUILDRET # YES: ALL'S WELL, OR AT LEAST AUTOMATIC
033690,000143:
033691,000144: 31,2445 31746 CA RODCOUNT # NO: HAS ROD SWITCH BEEN CLICKED
033692,000145: 31,2446 00006 EXTEND
033693,000146: 31,2447 12527 BZF GUILDRET # NO: CONTINUE WITH THE AUTOMATIC LANDING
033694,000147:
033695,000148: 31,2450 03677 STARTP66 TC FASTCHNG # YES
033696,000149: 31,2451 05311 TC NEWMODEX
033697,000150: 31,2452 00102 DEC66 DEC 66 B-14
033698,000151: 31,2453 00006 EXTEND
033699,000152: 31,2454 31474 DCA HDOTDISP # SET DESIRED ALTITUDE RATE = CURRENT
033700,000153: 31,2455 53645 DXCH VDGVERT # ALTITUDE RATE.
033701,000154:
Luminary 131 continues straight into STRTP66A here. |
033703,000156: 31,2456 13477 TCF STRTP66B
033704,000157:
033705,000158: 31,2457 06042 STRTP66A TC INTPRET
033706,000159: 31,2460 41535 SLOAD PUSH
033707,000160: 31,2461 01457 PBIASZ
033708,000161: 31,2462 41535 SLOAD PUSH
033709,000162: 31,2463 01455 PBIASY
033710,000163: 31,2464 55535 SLOAD VDEF
033711,000164: 31,2465 01453 PBIASX
033712,000165: 31,2466 43161 VXSC SET
033713,000166: 31,2467 23756 BIASFACT
033714,000167: 31,2470 00463 RODFLAG
033715,000168: 31,2471 26621 STOVL VBIAS
033716,000169: 31,2472 01254 TEMX
033717,000170: 31,2473 77676 VCOMP
Page 796 |
033719,000172: 31,2474 27764 STOVL OLDPIPAX
033720,000173: 31,2475 06524 ZEROVECS
033721,000174: 31,2476 17767 STODL DELVROD
033722,000175: 31,2477 02540 RODSCALE
033723,000176: 31,2500 17757 STODL RODSCAL1
033724,000177: 31,2501 01234 PIPTIME
033725,000178: 31,2502 03760 STORE LASTTPIP
033726,000179: 31,2503 77776 EXIT
033727,000180: 31,2504 34755 CAF ZERO
033728,000181: 31,2505 55620 TS FCOLD
033729,000182: 31,2506 55610 TS FWEIGHT
033730,000183: 31,2507 55611 TS FWEIGHT +1
033731,000184: 31,2510 34752 CAF TWO # WCHPHASE = 2 ---> VERTICAL: P65,P66,P67
Luminary 131 also initializes WCHVERT, a P65 erasable, here. |
033733,000186: 31,2511 55621 TS WCHPHOLD
033734,000187: 31,2512 55346 TS WCHPHASE
033735,000188: 31,2513 04616 TC BANKCALL # TEMPORARY, I HOPE HOPE HOPE
033736,000189: 31,2514 40166 CADR STOPRATE # TEMPORARY, I HOPE HOPE HOPE
033737,000190: 31,2515 05516 TC DOWNFLAG # PERMIT X-AXIS OVERRIDE
033738,000191: 31,2516 00311 ADRES XOVINFLG
033739,000192: 31,2517 05516 TC DOWNFLAG
033740,000193: 31,2520 00143 ADRES REDFLAG
This jump goes to VERTGUID in Luminary 131. |
033742,000195: 31,2521 13721 TCF P66
033743,000196:
033744,000197: 31,2522 30075 RESTART? CA FLAGWRD1 # HAS THERE BEEN A RESTART?
033745,000198: 31,2523 74740 MASK RODFLBIT
033746,000199: 31,2524 00006 EXTEND
033747,000200: 31,2525 12457 BZF STRTP66A # Y
033748,000201: # N
033749,000202:
This jump goes to VERTGUID in Luminary 131. |
033751,000204: 31,2526 13721 TCF P66
033752,000205:
033753,000206: # ****************************************************************************************************************
033754,000207: # INITIALIZATION FOR THIS PASS
033755,000208: # ****************************************************************************************************************
033756,000209:
033757,000210: 31,2527 COUNT* $$/F2DPS
033758,000211:
033759,000212: 31,2527 34755 GUILDRET CAF ZERO
033760,000213: 31,2530 55746 TS RODCOUNT
033761,000214:
033762,000215: 31,2531 00006 +2 EXTEND
033763,000216: 31,2532 31625 DCA TPIP
033764,000217: 31,2533 53574 DXCH TPIPOLD
033765,000218:
033766,000219: 31,2534 03677 TC FASTCHNG
033767,000220:
033768,000221: 31,2535 00006 EXTEND
033769,000222: 31,2536 31561 DCA PIPTIME1
033770,000223: 31,2537 53625 DXCH TPIP
Page 797 |
033772,000225: 31,2540 00006 EXTEND
033773,000226: 31,2541 31643 DCA TTF/8
033774,000227: 31,2542 53553 DXCH TTF/8TMP
033775,000228:
033776,000229: 31,2543 11623 CCS FLPASS0
033777,000230: 31,2544 12573 TCF TTFINCR
033778,000231:
033779,000232: 31,2545 51346 BRSPOT1 INDEX WCHPHASE
033780,000233: 31,2546 12362 TCF NEWPHASE
033781,000234:
033782,000235: # ****************************************************************************************************************
033783,000236: # ROUTINES TO START NEW PHASES
033784,000237: # ****************************************************************************************************************
033785,000238:
033786,000239: 31,2547 05311 P65START TC NEWMODEX
033787,000240: 31,2550 00101 DEC 65 B-14
033788,000241: 31,2551 34755 CAF ZERO
033789,000242: 31,2552 55647 TS WCHVERT
033790,000243: 31,2553 05516 TC DOWNFLAG # PERMIT X-AXIS OVERRIDE
033791,000244: 31,2554 00311 ADRES XOVINFLG
033792,000245: 31,2555 12573 TCF TTFINCR
033793,000246:
033794,000247: 31,2556 05311 STARTP64 TC NEWMODEX
033795,000248: 31,2557 00100 DEC 64 B-14
033796,000249: 31,2560 31425 CA DELTTFAP # AUGMENT TTF/8
033797,000250: 31,2561 27552 ADS TTF/8TMP
033798,000251: 31,2562 00004 INHINT
033799,000252: 31,2563 06022 TC C13STALL
033800,000253: 31,2564 34740 CA BIT12 # ENABLE RUPT10
033801,000254: 31,2565 00006 EXTEND
033802,000255: 31,2566 05013 WOR CHAN13
033803,000256: 31,2567 33707 CAF P64DB
033804,000257: 31,2570 55343 TS DB
033805,000258: 31,2571 05516 TC DOWNFLAG # INITIALIZE REDESIGNATION FLAG
033806,000259: 31,2572 00143 ADRES REDFLAG
033807,000260:
033808,000261: # (CONTINUE TO TTFINCR)
033809,000262:
033810,000263: # ****************************************************************************************************************
033811,000264: # INCREMENT TTF/8, UPDATE LAND FOR LUNAR ROTATION, DO OTHER USEFUL THINGS
033812,000265: # ****************************************************************************************************************
033813,000266:
033814,000267: # TTFINCR COMPUTATIONS ARE AS FOLLOWS :-
033815,000268: # TTF/8 UPDATED FOR TIME SINCE LAST PASS:
033816,000269: # TTF/8 = TTF/8 + (TPIP - TPIPOLD)/8
033817,000270: # LANDING SITE VECTOR UPDATED FOR LUNAR ROTATION:
Page 798 |
033819,000272: # - - - -
033820,000273: # LAND = /LAND/ UNIT(LAND - LAND(TPIP - TPIPOLD) * WM)
033821,000274: # SLANT RANGE TO LANDING SITE, FOR DISPLAY:
033822,000275: # - -
033823,000276: # RANGEDSP = ABVAL(LAND - R)
033824,000277:
033825,000278: 31,2573 06042 TTFINCR TC INTPRET
033826,000279: 31,2574 45345 DLOAD DSU
033827,000280: 31,2575 03625 TPIP
033828,000281: 31,2576 03574 TPIPOLD
033829,000282: 31,2577 41461 SLR PUSH # SHIFT SCALES DELTA TIME TO 2(17) CSECS
033830,000283: 31,2600 21214 11D
033831,000284: 31,2601 47361 VXSC VXV
033832,000285: 31,2602 03635 LAND
033833,000286: 31,2603 02325 WM
033834,000287: 31,2604 47045 BVSU RTB
033835,000288: 31,2605 03635 LAND
033836,000289: 31,2606 21727 NORMUNIT
033837,000290: 31,2607 76561 VXSC VSL1
033838,000291: 31,2610 02333 /LAND/
033839,000292: 31,2611 17545 STODL LANDTEMP
033840,000293: 31,2612 77776 EXIT
033841,000294:
033842,000295: 31,2613 52155 DXCH MPAC
033843,000296: 31,2614 21553 DAS TTF/8TMP # NOW HAVE INCREMENTED TTF/8 IN TTF/8TMP
033844,000297:
033845,000298: 31,2615 03677 TC FASTCHNG
033846,000299:
033847,000300: 31,2616 00006 EXTEND
033848,000301: 31,2617 31553 DCA TTF/8TMP
033849,000302: 31,2620 53643 DXCH TTF/8
033850,000303:
033851,000304: 31,2621 03643 TC TDISPSET
033852,000305:
033853,000306: 31,2622 37721 CAF PRIO31 # TEMPORARILY OVER-PRIO CHARIN
033854,000307: 31,2623 05146 TC PRIOCHNG
033855,000308:
033856,000309: 31,2624 06042 TC INTPRET
033857,000310: 31,2625 53375 VLOAD VAD # ADD IN CORRECTION FROM NOUN 69
033858,000311: 31,2626 03545 LANDTEMP
033859,000312: 31,2627 02635 DLAND
033860,000313: 31,2630 03635 STORE LAND
033861,000314: 31,2631 77646 ABVAL # RECOMPUTE /LAND/
033862,000315: 31,2632 02333 STORE /LAND/
033863,000316: 31,2633 77776 EXIT
033864,000317:
033865,000318: 31,2634 03677 TC FASTCHNG # SINCE REDESIG MAY CHANGE LANDTEMP
Page 799 |
033867,000320: 31,2635 35014 CAF EBANK5
033868,000321: 31,2636 E5,1634 EBANK= DLAND
033869,000322: 31,2636 54003 TS EBANK
033870,000323: 31,2637 34755 CAF ZERO # ZERO N 69 REGISTERS
033871,000324: 31,2640 55634 TS DLAND
033872,000325: 31,2641 55635 TS DLAND +1
033873,000326: 31,2642 55636 TS DLAND +2
033874,000327: 31,2643 55637 TS DLAND +3
033875,000328: 31,2644 55640 TS DLAND +4
033876,000329: 31,2645 55641 TS DLAND +5
033877,000330: 31,2646 35016 CAF EBANK7
033878,000331: 31,2647 E7,1666 EBANK= TREDES
033879,000332: 31,2647 54003 TS EBANK
033880,000333:
033881,000334: 31,2650 34736 CAF PRIO20
033882,000335: 31,2651 05146 TC PRIOCHNG
033883,000336:
033884,000337: 31,2652 51346 BRSPOT2 INDEX WCHPHASE
033885,000338: 31,2653 12366 TCF PREGUIDE
033886,000339:
033887,000340: # ****************************************************************************************************************
033888,000341: # LANDING SITE PERTURBATION EQUATIONS
033889,000342: # ****************************************************************************************************************
033890,000343:
033891,000344: 31,2654 30102 REDESIG CA FLAGWRD6 # IS REDFLAG SET?
033892,000345: 31,2655 74746 MASK REDFLBIT
033893,000346: 31,2656 00006 EXTEND
033894,000347: 31,2657 12763 BZF RGVGCALC # NO: SKIP REDESIGNATION LOGIC
033895,000348:
033896,000349: 31,2660 31666 CA TREDES # YES: HAS TREDES REACHED ZERO?
033897,000350: 31,2661 00006 EXTEND
033898,000351: 31,2662 12763 BZF RGVGCALC # YES: SKIP REDESIGNATION LOGIC
033899,000352:
033900,000353: 31,2663 00004 INHINT
033901,000354: 31,2664 31446 CA ELINCR1
033902,000355: 31,2665 55554 TS ELINCR
033903,000356: 31,2666 31445 CA AZINCR1
033904,000357: 31,2667 55556 TS AZINCR
033905,000358: 31,2670 03677 TC FASTCHNG
033906,000359:
033907,000360: 31,2671 34755 CA ZERO
033908,000361: 31,2672 55446 TS ELINCR1
033909,000362: 31,2673 55445 TS AZINCR1
033910,000363: 31,2674 55555 TS ELINCR +1
033911,000364: 31,2675 55557 TS AZINCR +1
033912,000365:
033913,000366: 31,2676 30120 CA FIXLOC # SET PD TO 0
033914,000367: 31,2677 54166 TS PUSHLOC
033915,000368:
033916,000369: 31,2700 06042 TC INTPRET
Page 800 |
033918,000371: 31,2701 52375 VLOAD VSU
033919,000372: 31,2702 03635 LAND
033920,000373: 31,2703 03521 R # - -
033921,000374: 31,2704 41434 RTB PUSH # PUSH DOWN UNIT (LAND - R)
033922,000375: 31,2705 21727 NORMUNIT
033923,000376: 31,2706 76435 VXV VSL1
033924,000377: 31,2707 02154 YNBPIP # - - -
033925,000378: 31,2710 65361 VXSC PDDL # PUSH DOWN - ELINCR(YNB * UNIT(LAND - R))
033926,000379: 31,2711 03555 ELINCR
033927,000380: 31,2712 03557 AZINCR
033928,000381: 31,2713 52361 VXSC VSU
033929,000382: 31,2714 02154 YNBPIP
033930,000383: 31,2715 41455 VAD PUSH # RESULTING VECTOR IS 1/2 REAL SIZE
033931,000384:
033932,000385: 31,2716 45345 DLOAD DSU # MAKE SURE REDESIGNATION IS NOT
033933,000386: 31,2717 00001 0 # TOO CLOSE TO THE HORIZON
033934,000387: 31,2720 05660 DEPRCRIT
033935,000388: 31,2721 71240 BMN DLOAD
033936,000389: 31,2722 62725 REDES1
033937,000390: 31,2723 05660 DEPRCRIT
033938,000391: 31,2724 00001 STORE 0
033939,000392: 31,2725 45345 REDES1 DLOAD DSU
033940,000393: 31,2726 03635 LAND
033941,000394: 31,2727 03521 R
033942,000395: 31,2730 74271 DDV VXSC
033943,000396: 31,2731 00001 0
033944,000397: 31,2732 53455 VAD UNIT
033945,000398: 31,2733 03521 R
033946,000399: 31,2734 76561 VXSC VSL1
033947,000400: 31,2735 02333 /LAND/
033948,000401: 31,2736 03545 STORE LANDTEMP
033949,000402: 31,2737 77776 EXIT # LOOKANGL WILL BE COMPUTED AT RGVGCALC
033950,000403:
033951,000404: 31,2740 03677 TC FASTCHNG
033952,000405:
033953,000406: 31,2741 00006 EXTEND
033954,000407: 31,2742 31545 DCA LANDTEMP
033955,000408: 31,2743 53635 DXCH LAND
033956,000409: 31,2744 00006 EXTEND
033957,000410: 31,2745 31547 DCA LANDTEMP +2
033958,000411: 31,2746 53637 DXCH LAND +2
033959,000412: 31,2747 00006 EXTEND
033960,000413: 31,2750 31551 DCA LANDTEMP +4
033961,000414: 31,2751 53641 DXCH LAND +4
033962,000415:
033963,000416: 31,2752 12763 TCF RGVGCALC
033964,000417:
033965,000418: # ****************************************************************************************************************
033966,000419: # COMPUTE STATE IN GUIDANCE COORDINATES
033967,000420: # ****************************************************************************************************************
Page 801 |
033969,000422:
033970,000423: # RGVGCALC COMPUTATIONS ARE AS FOLLOWS:-
033971,000424:
033972,000425: # VELOCITY RELATIVE TO THE SURFACE:
033973,000426:
033974,000427: # - - - -
033975,000428: # ANGTERM = V + R * WM
033976,000429:
033977,000430: # STATE IN GUIDANCE COORDINATES:
033978,000431:
033979,000432: # - * - -
033980,000433: # RGU = CG (R - LAND)
033981,000434:
033982,000435: # - * - - -
033983,000436: # VGU = CG (V - WM * R)
033984,000437:
033985,000438: # DEPRESSION ANGLE FOR DISPLAY:
033986,000439:
033987,000440: # - - -
033988,000441: # LOOKANGL = ARCSIN(UNIT(R - LAND).XMBPIP)
033989,000442:
033990,000443: 31,2753 06042 CALCRGVG TC INTPRET # IN IGNALG, COMPUTE V FROM INTEGRATION
033991,000444: 31,2754 64375 VLOAD MXV # OUTPUT AND TRIM CORRECTION TERM
033992,000445: 31,2755 00025 VATT1 # COMPUTED LAST PASS AND LEFT IN UNFC/2
033993,000446: 31,2756 01734 REFSMMAT
033994,000447: 31,2757 53362 VSR1 VAD
033995,000448: 31,2760 03253 UNFC/2
033996,000449: 31,2761 03527 STORE V
033997,000450: 31,2762 77776 EXIT
033998,000451:
033999,000452: 31,2763 06042 RGVGCALC TC INTPRET # ENTER HERE TO RECOMPUTE RG AND VG
034000,000453: 31,2764 47375 VLOAD VXV
034001,000454: 31,2765 03521 R
034002,000455: 31,2766 02325 WM
034003,000456: 31,2767 70455 VAD VSR2 # RESCALE TO UNITS OF 2(9) M/CS
034004,000457: 31,2770 03527 V
034005,000458: 31,2771 02265 STORE ANGTERM
034006,000459: 31,2772 77721 MXV
034007,000460: 31,2773 02575 CG # NO SHIFT SINCE ANGTERM IS DOUBLE SIZED
034008,000461: 31,2774 27627 STOVL VGU
034009,000462: 31,2775 03521 R # - -
034010,000463: 31,2776 41451 VSU PUSH # PUSH DOWN R - LAND
034011,000464: 31,2777 03635 LAND
034012,000465: 31,3000 76521 MXV VSL1
034013,000466: 31,3001 02575 CG
034014,000467: 31,3002 02627 STORE RGU
034015,000468: 31,3003 77646 ABVAL
034016,000469: 31,3004 26617 STOVL RANGEDSP
034017,000470: 31,3005 50234 RTB DOT # NOW IN MPAC IS SINE(LOOKANGL)/4
034018,000471: 31,3006 21727 NORMUNIT
034019,000472: 31,3007 02146 XNBPIP
Page 802 |
034021,000474: 31,3010 77776 EXIT
034022,000475:
034023,000476: 31,3011 30120 CA FIXLOC # RESET PUSH DOWN POINTER
034024,000477: 31,3012 54166 TS PUSHLOC
034025,000478:
034026,000479: 31,3013 30154 CA MPAC # COMPUTE LOOKANGL ITSELF
034027,000480: 31,3014 60000 DOUBLE
034028,000481: 31,3015 04616 TC BANKCALL
034029,000482: 31,3016 61663 CADR SPARCSIN -1
034030,000483: 31,3017 63713 AD 1/2DEG
034031,000484: 31,3020 61356 AD ELBIAS # BIAS LPD ANGLE FOR WINDOW BENDING
034032,000485: 31,3021 00006 EXTEND
034033,000486: 31,3022 73712 MP 180DEGS
034034,000487: 31,3023 55667 TS LOOKANGL # LOOKANGL FOR DISPLAY DURING P64
034035,000488:
034036,000489: 31,3024 51346 BRSPOT3 INDEX WCHPHASE
034037,000490: 31,3025 12372 TCF WHATGUID
034038,000491:
034039,000492: # ****************************************************************************************************************
034040,000493: # TTF/8 COMPUTATION
034041,000494: # ****************************************************************************************************************
034042,000495:
034043,000496: 31,3026 03636 TTF/8CL TC INTPRETX
034044,000497: 31,3027 77743 DLOAD*
034045,000498: 31,3030 02431 JDG2TTF,1
034046,000499: 31,3031 23571 STODL* TABLTTF +6 # A(3) = 8 JDG TO TABLTTF
034047,000500: 31,3032 02427 ADG2TTF,1 # 2
034048,000501: 31,3033 17567 STODL TABLTTF +4 # A(2) = 6 ADG TO TABLTTF
034049,000502: 31,3034 03633 VGU +4 # 2
034050,000503: 31,3035 42605 DMP DAD*
034051,000504: 31,3036 05656 3/4DP
034052,000505: 31,3037 02425 VDG2TTF,1
034053,000506: 31,3040 23565 STODL* TABLTTF +2 # A(1) = (6 VGU + 18 VDG )/8 TO TABLTTF
034054,000507: 31,3041 02407 RDG +4,1 # 2 2
034055,000508: 31,3042 41225 DSU DMP
034056,000509: 31,3043 02633 RGU +4
034057,000510: 31,3044 05654 3/8DP
034058,000511: 31,3045 03563 STORE TABLTTF # A(0) = -24 (RGU - RDG )/64 TO TABLTTF
034059,000512: 31,3046 77776 EXIT # 2 2
034060,000513:
034061,000514: 31,3047 34744 CA BIT8
034062,000515: 31,3050 55572 TS TABLTTF +10 # FRACTIONAL PRECISION FOR TTF TO TABLE
034063,000516:
034064,000517: 31,3051 00006 EXTEND
034065,000518: 31,3052 31643 DCA TTF/8
034066,000519: 31,3053 52155 DXCH MPAC # LOADS TTF/8 (INITIAL GUESS) INTO MPAC
034067,000520: 31,3054 34752 CAF TWO # DEGREE - ONE
034068,000521: 31,3055 54001 TS L
034069,000522: 31,3056 33705 CAF TABLTTFL
034070,000523: 31,3057 03512 TC ROOTPSRS # YIELDS TTF/8 IN MPAC
Page 803 |
034072,000525: 31,3060 51346 INDEX WCHPHASE
034073,000526: 31,3061 12410 TCF WHATALM
034074,000527:
034075,000528: 31,3062 00006 EXTEND # GOOD RETURN
034076,000529: 31,3063 30155 DCA MPAC # FETCH TTF/8 KEEPING IT IN MPAC
034077,000530: 31,3064 53643 DXCH TTF/8 # CORRECTED TTF/8
034078,000531:
034079,000532: 31,3065 03643 TC TDISPSET
034080,000533:
034081,000534: # (CONTINUE TO QUADGUID)
034082,000535:
034083,000536: # ****************************************************************************************************************
034084,000537: # MAIN GUIDANCE EQUATION
034085,000538: # ****************************************************************************************************************
034086,000539:
034087,000540: # AS PUBLISHED:-
034088,000541: # - - - -
034089,000542: # - - 6(VDG + VG) 12(RDG - RG)
034090,000543: # ACG = ADG + ----------- + ------------
034091,000544: # TTF (TTF)(TTF)
034092,000545: # AS HERE PROGRAMMED:-
034093,000546: # - -
034094,000547: # 3 (1/4(RDG - RG) - - )
034095,000548: # - (------------- + VDG + VG)
034096,000549: # - 4 ( TTF/8 ) -
034097,000550: # ACG = ---------------------------- + ADG
034098,000551: # TTF/8
034099,000552:
034100,000553: 31,3066 41642 QUADGUID CS TTF/8
034101,000554: 31,3067 61426 AD LEADTIME # LEADTIME IS A NEGATIVE NUMBER
034102,000555: 31,3070 64733 AD POSMAX # SAFEGUARD THE COMPUTATIONS THAT FOLLOW
034103,000556: 31,3071 54001 TS L # BY FORCING -TTF+LEADTIME > OR = ZERO
034104,000557: 31,3072 40001 CS L
034105,000558: 31,3073 60001 AD L
034106,000559: 31,3074 22007 ZL
034107,000560: 31,3075 00006 EXTEND
034108,000561: 31,3076 11642 DV TTF/8
034109,000562: 31,3077 54130 TS BUF # - RATIO OF LAG-DIMINISHED TTF TO TTF
034110,000563: 31,3100 00006 EXTEND
034111,000564: 31,3101 70000 SQUARE
034112,000565: 31,3102 54131 TS BUF +1
034113,000566: 31,3103 60130 AD BUF
034114,000567: 31,3104 56131 XCH BUF +1 # RATIO SQUARED - RATIO
034115,000568: 31,3105 60131 AD BUF +1
034116,000569: 31,3106 54154 TS MPAC # COEFFICIENT FOR VGU TERM
034117,000570: 31,3107 60131 AD BUF +1
Page 804 |
034119,000572: 31,3110 50120 INDEX FIXLOC
034120,000573: 31,3111 54032 TS 26D # COEFFICIENT FOR RDG-RGU TERM
034121,000574: 31,3112 60131 AD BUF +1
034122,000575: 31,3113 50120 INDEX FIXLOC
034123,000576: 31,3114 54034 TS 28D # COEFFICIENT FOR VDG TERM
034124,000577: 31,3115 60130 AD BUF
034125,000578: 31,3116 64733 AD POSMAX
034126,000579: 31,3117 60131 AD BUF +1
034127,000580: 31,3120 60131 AD BUF +1
034128,000581: 31,3121 50120 INDEX FIXLOC
034129,000582: 31,3122 54036 TS 30D # COEFFICIENT FOR ADG TERM
034130,000583:
034131,000584: 31,3123 34755 CAF ZERO
034132,000585: 31,3124 54163 TS MODE
034133,000586:
034134,000587: 31,3125 03636 TC INTPRETX
034135,000588: 31,3126 65361 VXSC PDDL
034136,000589: 31,3127 03627 VGU
034137,000590: 31,3130 00035 28D
034138,000591: 31,3131 62757 VXSC* PDVL*
034139,000592: 31,3132 02411 VDG,1
034140,000593: 31,3133 02403 RDG,1
034141,000594: 31,3134 70251 VSU V/SC
034142,000595: 31,3135 02627 RGU
034143,000596: 31,3136 03643 TTF/8
034144,000597: 31,3137 74342 VSR2 VXSC
034145,000598: 31,3140 00033 26D
034146,000599: 31,3141 53255 VAD VAD
034147,000600: 31,3142 74341 V/SC VXSC
034148,000601: 31,3143 03643 TTF/8
034149,000602: 31,3144 05656 3/4DP
034150,000603: 31,3145 73725 PDDL VXSC*
034151,000604: 31,3146 00037 30D
034152,000605: 31,3147 02417 ADG,1
034153,000606: 31,3150 77655 VAD
034154,000607: 31,3151 76505 AFCCALC1 VXM VSL1 # VERTGUID COMES HERE
034155,000608: 31,3152 02575 CG
034156,000609: 31,3153 70315 PDVL V/SC
034157,000610: 31,3154 01236 GDT/2
034158,000611: 31,3155 05652 GSCALE
034159,000612: 31,3156 45445 BVSU STADR
034160,000613: 31,3157 74524 STORE UNFC/2 # UNFC/2 NEED NOT BE UNITIZED
034161,000614: 31,3160 77646 ABVAL
034162,000615: 31,3161 17464 AFCCALC2 STODL /AFC/ # MAGNITUDE OF AFC FOR THROTTLE
034163,000616: 31,3162 03253 UNFC/2 # VERTICAL COMPONENT
034164,000617: 31,3163 65316 DSQ PDDL
034165,000618: 31,3164 03255 UNFC/2 +2 # OUT-OF-PLANE
034166,000619: 31,3165 65316 DSQ PDDL
034167,000620: 31,3166 05650 HIGHESTF
034168,000621: 31,3167 63471 DDV DSQ
Page 805 |
034170,000623: 31,3170 01244 MASS # 2 2 2
034171,000624: 31,3171 45225 DSU DSU # AMAXHORIZ = SQRT(ATOTAL - A - A )
034172,000625: 31,3172 71244 BPL DLOAD # 1 0
034173,000626: 31,3173 63175 AFCCALC3
034174,000627: 31,3174 06524 ZEROVECS
034175,000628: 31,3175 43366 AFCCALC3 SQRT DAD
034176,000629: 31,3176 03257 UNFC/2 +4
034177,000630: 31,3177 44244 BPL BDSU
034178,000631: 31,3200 63203 AFCCLEND
034179,000632: 31,3201 03257 UNFC/2 +4
034180,000633: 31,3202 03257 STORE UNFC/2 +4
034181,000634: 31,3203 77776 AFCCLEND EXIT
034182,000635: 31,3204 03677 TC FASTCHNG
034183,000636:
034184,000637: 31,3205 31346 CA WCHPHASE # PREPARE FOR PHASE SWITCHING LOGIC
034185,000638: 31,3206 55621 TS WCHPHOLD
034186,000639: 31,3207 25623 INCR FLPASS0 # INCREMENT PASS COUNTER
034187,000640:
034188,000641: 31,3210 51346 BRSPOT4 INDEX WCHPHASE
034189,000642: 31,3211 12376 TCF AFTRGUID
034190,000643:
034191,000644: # ****************************************************************************************************************
034192,000645: # NEW PHASE NOW?
034193,000646: # ****************************************************************************************************************
034194,000647:
034195,000648: 31,3212 51346 EXTLOGIC INDEX WCHPHASE # IS TTF NEARER ZERO THAN CRITERION?
034196,000649: 31,3213 31423 CA TENDBRAK
034197,000650: 31,3214 61642 AD TTF/8
034198,000651: 31,3215 00006 EXTEND
034199,000652: 31,3216 63225 BZMF CGCALC # NO
034200,000653:
034201,000654: 31,3217 03677 TC FASTCHNG # YES: INCREMENT WCHPHASE, ZERO FLPASS0
034202,000655:
034203,000656: 31,3220 31621 CA WCHPHOLD
034204,000657: 31,3221 64753 AD ONE
034205,000658: 31,3222 55346 TS WCHPHASE
034206,000659: 31,3223 34755 CAF ZERO
034207,000660: 31,3224 55623 TS FLPASS0
034208,000661:
034209,000662: # (CONTINUE TO CGCALC)
034210,000663:
034211,000664: # ***************************************************************************************************************
034212,000665: # ERECT GUIDANCE-STABLE MEMBER TRANSFORMATION MATRIX
034213,000666: # ***************************************************************************************************************
034214,000667:
034215,000668: 31,3225 35014 CGCALC CAF EBANK5
034216,000669: 31,3226 54003 TS EBANK
034217,000670: 31,3227 E5,1435 EBANK= TCGIBRAK
034218,000671: 31,3227 00006 EXTEND
034219,000672: 31,3230 51346 INDEX WCHPHASE
Page 806 |
034221,000674: 31,3231 52413 INDEX TARGTDEX
034222,000675: 31,3232 31435 DCA TCGFBRAK
034223,000676: 31,3233 24006 INCR BBANK
034224,000677: 31,3234 24006 INCR BBANK
034225,000678: 31,3235 E7,1642 EBANK= TTF/8
034226,000679: 31,3235 61642 AD TTF/8
034227,000680: 31,3236 56001 XCH L
034228,000681: 31,3237 61642 AD TTF/8
034229,000682: 31,3240 10000 CCS A
034230,000683: 31,3241 10001 CCS L
034231,000684: 31,3242 13273 TCF EXITSPOT
034232,000685: 31,3243 13273 TCF EXITSPOT
034233,000686: 31,3244 13245 NOOP
034234,000687:
034235,000688: 31,3245 03636 TC INTPRETX
034236,000689: 31,3246 53575 VLOAD UNIT
034237,000690: 31,3247 03635 LAND
034238,000691: 31,3250 16575 STODL CG
034239,000692: 31,3251 03643 TTF/8
034240,000693: 31,3252 74203 DMP* VXSC
034241,000694: 31,3253 02433 GAINBRAK,1 # NUMERO MYSTERIOSO
034242,000695: 31,3254 02265 ANGTERM
034243,000696: 31,3255 77655 VAD
034244,000697: 31,3256 03635 LAND
034245,000698: 31,3257 47051 VSU RTB
034246,000699: 31,3260 03521 R
034247,000700: 31,3261 21727 NORMUNIT
034248,000701: 31,3262 47035 VXV RTB
034249,000702: 31,3263 03635 LAND
034250,000703: 31,3264 21727 NORMUNIT
034251,000704: 31,3265 26603 STOVL CG +6 # SECOND ROW
034252,000705: 31,3266 02575 CG
034253,000706: 31,3267 76435 VXV VSL1
034254,000707: 31,3270 02603 CG +6
034255,000708: 31,3271 02611 STORE CG +14
034256,000709: 31,3272 77776 EXIT
034257,000710:
034258,000711: 31,3273 51621 EXITSPOT INDEX WCHPHOLD
034259,000712: 31,3274 12402 TCF WHATEXIT
034260,000713:
034261,000714: # ****************************************************************************************************************
034262,000715: # ROUTINES FOR EXITING FROM LANDING GUIDANCE
034263,000716: # ****************************************************************************************************************
034264,000717:
034265,000718: # 1. EXGSUB IS THE RETURN WHEN GUIDSUB IS CALLED BY THE IGNITION ALGORITHM.
034266,000719: # 2. EXBRAK IN THE EXIT USED DURING THE BRAKING PHASE. IN THIS CASE UNIT(R) IS THE WINDOW POINTING VECTOR.
034267,000720: # 3. EXNORM IS THE EXIT USED AT OTHER TIMES DURING THE BURN.
Page 807 |
034269,000722: # (EXOVFLOW IS A SUBROUTINE OF EXBRAK AND EXNORM CALLED WHEN OVERFLOW OCCURRED ANYWHERE IN GUIDANCE.)
034270,000723:
034271,000724: 31,3275 06042 EXGSUB TC INTPRET # COMPUTE TRIM VELOCITY CORRECTION TERM
034272,000725: 31,3276 47175 VLOAD RTB
034273,000726: 31,3277 03253 UNFC/2
034274,000727: 31,3300 21727 NORMUNIT
034275,000728: 31,3301 74361 VXSC VXSC
034276,000729: 31,3302 03423 ZOOMTIME
034277,000730: 31,3303 22001 TRIMACCL
034278,000731: 31,3304 03253 STORE UNFC/2
034279,000732: 31,3305 77776 EXIT
034280,000733:
034281,000734: 31,3306 11647 CCS NGUIDSUB
034282,000735: 31,3307 12421 TCF GUIDSUB
034283,000736: 31,3310 11646 CCS NIGNLOOP
034284,000737: 31,3311 13314 TCF +3
034285,000738: 31,3312 05567 TC ALARM
034286,000739: 31,3313 01412 OCT 01412
034287,000740:
034288,000741: 31,3314 04635 +3 TC POSTJUMP
034289,000742: 31,3315 65104 CADR DDUMCALC
034290,000743:
034291,000744: 31,3316 06042 EXBRAK TC INTPRET
034292,000745: 31,3317 77775 VLOAD
034293,000746: 31,3320 03537 UNIT/R/
034294,000747: 31,3321 03261 STORE UNWC/2
034295,000748: 31,3322 77776 EXIT
034296,000749: 31,3323 13400 TCF STEER?
034297,000750:
034298,000751: 31,3324 06042 EXNORM TC INTPRET
034299,000752: 31,3325 52375 VLOAD VSU
034300,000753: 31,3326 03635 LAND
034301,000754: 31,3327 03521 R
034302,000755: 31,3330 77634 RTB
034303,000756: 31,3331 21727 NORMUNIT
034304,000757: 31,3332 03261 STORE UNWC/2 # UNIT(LAND - R) IS TENTATIVE CHOICE
034305,000758: 31,3333 50235 VXV DOT
034306,000759: 31,3334 02146 XNBPIP
034307,000760: 31,3335 02603 CG +6
034308,000761: 31,3336 77776 EXIT # WITH PROJ IN MPAC 1/8 REAL SIZE
034309,000762:
034310,000763: 31,3337 40154 CS MPAC # GET COEFFICIENT FOR CG +14
034311,000764: 31,3340 63714 AD PROJMAX
034312,000765: 31,3341 64733 AD POSMAX
034313,000766: 31,3342 54130 TS BUF
034314,000767: 31,3343 40130 CS BUF
034315,000768: 31,3344 26130 ADS BUF # RESULT IS 0 IF PROJMAX - PROJ NEGATIVE
034316,000769:
034317,000770: 31,3345 43715 CS PROJMIN # GET COEFFICIENT FOR UNIT(LAND - R)
034318,000771: 31,3346 60154 AD MPAC
Page 808 |
034320,000773: 31,3347 64733 AD POSMAX
034321,000774: 31,3350 54131 TS BUF +1
034322,000775: 31,3351 40131 CS BUF +1
034323,000776: 31,3352 26131 ADS BUF +1 # RESULT IS 0 IF PROJ - PROJMIN NEGATIVE
034324,000777:
034325,000778: 31,3353 34751 CAF FOUR
034326,000779: 31,3354 76245 UNWCLOOP MASK SIX
034327,000780: 31,3355 54002 TS Q
034328,000781: 31,3356 35014 CA EBANK5
034329,000782: 31,3357 54003 TS EBANK
034330,000783: 31,3360 E5,1574 EBANK= CG
034331,000784: 31,3360 30130 CA BUF
034332,000785: 31,3361 00006 EXTEND
034333,000786: 31,3362 50002 INDEX Q
034334,000787: 31,3363 71610 MP CG +14
034335,000788: 31,3364 24006 INCR BBANK
034336,000789: 31,3365 E6,1660 EBANK= UNWC/2
034337,000790: 31,3365 50002 INDEX Q
034338,000791: 31,3366 53661 DXCH UNWC/2
034339,000792: 31,3367 00006 EXTEND
034340,000793: 31,3370 70131 MP BUF +1
034341,000794: 31,3371 50002 INDEX Q
034342,000795: 31,3372 21661 DAS UNWC/2
034343,000796: 31,3373 10002 CCS Q
034344,000797: 31,3374 13354 TCF UNWCLOOP
034345,000798:
034346,000799: 31,3375 31773 CA AZBIAS # SET OUTER GIMBAL
034347,000800: 31,3376 55677 TS OGABIAS # ANGLE BIAS FOR WINDOW BENDING
034348,000801:
034349,000802: 31,3377 24006 INCR BBANK
034350,000803: 31,3400 E7,1612 EBANK= PIF
034351,000804:
These routines were largely rewritten between Luminary 131 and LM131 rev 1. |
034353,000806: 31,3400 30121 STEER? CA OVFIND # OVERFLOW?
034354,000807: 31,3401 00006 EXTEND
034355,000808: 31,3402 13405 BZF STEERSW? # N: CHECK STEERSW
034356,000809:
034357,000810: 31,3403 03757 TC OVFDESC # Y: REMEDIAL ACTION AND
034358,000811: 31,3404 13423 TCF DISPEXIT # SKIP ISSUANCE OF CMDS. NO STEERSW CHK
034359,000812:
034360,000813: 31,3405 40076 STEERSW? CS FLAGWRD2 # IS STEERSW UP?
034361,000814: 31,3406 74741 MASK STEERBIT
034362,000815:
034363,000816: 31,3407 00006 EXTEND
034364,000817: 31,3410 13416 BZF THRTCALL # Y: ISSUE GUIDANCE CMDS
034365,000818:
034366,000819: 31,3411 00004 RATESTOP INHINT # N: REMEDIAL ACTION
034367,000820: 31,3412 04674 TC IBNKCALL # AND
034368,000821: 31,3413 40166 FCADR STOPRATE # SKIP ISSUANCE OF CMDS
034369,000822: 31,3414 00003 RELINT
034370,000823: 31,3415 13423 TCF DISPEXIT
034371,000824:
034372,000825: 31,3416 31,3416 GDUMP1 = THRTCALL
034373,000826: 31,3416 02144 THRTCALL TC THROTTLE
034374,000827: 31,3417 06042 TC INTPRET
034375,000828: 31,3420 77624 CALL
034376,000829: 31,3421 61100 FINDCDUW -2
034377,000830: 31,3422 77776 EXIT
034378,000831:
034379,000832: # (CONTINUE TO DISPEXIT)
034380,000833:
034381,000834: # ****************************************************************************************************************
034382,000835: # GUIDANCE LOOP DISPLAYS
034383,000836: # ****************************************************************************************************************
034384,000837:
034385,000838: 31,3423 00006 DISPEXIT EXTEND # KILL GROUP 3: DISPLAYS WILL BE
034386,000839: 31,3424 34755 DCA NEG0 # RESTORED BY NEXT GUIDANCE CYCLE
034387,000840: 31,3425 52756 DXCH -PHASE3
034388,000841:
034389,000842: 31,3426 31,3426 ENDLLJOB = DISPEXIT +3
034390,000843:
034391,000844: 31,3426 31,3426 DISPEX66 = DISPEXIT +3
034392,000845: 31,3426 40104 +3 CS FLAGWRD8 # IF FLUNDISP IS SET, NO DISPLAY THIS PASS
034393,000846: 31,3427 74742 MASK FLUNDBIT
034394,000847: 31,3430 00006 EXTEND
034395,000848: 31,3431 15155 BZF ENDOFJOB
034396,000849:
034397,000850: 31,3432 51621 INDEX WCHPHOLD
034398,000851: 31,3433 12404 TCF WHATDISP
034399,000852:
034400,000853: 31,3434 33716 P63DISPS CAF V06N63
034401,000854: 31,3435 04616 DISPCOMN TC BANKCALL
034402,000855: 31,3436 20466 CADR REGODSP
034403,000856:
034404,000857: 31,3437 31666 P64DISPS CA TREDES # HAS TREDES REACHED ZERO?
034405,000858: 31,3440 00006 EXTEND
034406,000859: 31,3441 13462 BZF RED-OVER # YES: CLEAR REDESIGNATION FLAG
034407,000860:
034408,000861: 31,3442 40102 CS FLAGWRD6 # NO: IS REDFLAG SET?
034409,000862: 31,3443 74746 MASK REDFLBIT
034410,000863: 31,3444 00006 EXTEND
034411,000864: 31,3445 13464 BZF REDES-OK # YES: DO STATIC DISPLAY
034412,000865:
034413,000866: 31,3446 33717 CAF V06N64 # OTHERWISE USE FLASHING DISPLAY
034414,000867: 31,3447 04616 TC BANKCALL
034415,000868: 31,3450 20460 CADR REFLASH
034416,000869: 31,3451 16001 TCF GOTOPOOH # TERMINATE
Page 810 |
034418,000871: 31,3452 13454 TCF P64CEED # PROCEED PERMIT REDESIGNATIONS
034419,000872: 31,3453 13437 TCF P64DISPS # RECYCLE
034420,000873:
034421,000874: 31,3454 34755 P64CEED CAF ZERO
034422,000875: 31,3455 55446 TS ELINCR1
034423,000876: 31,3456 55445 TS AZINCR1
034424,000877:
034425,000878: 31,3457 05504 TC UPFLAG # ENABLE REDESIGNATION LOGIC
034426,000879: 31,3460 00143 ADRES REDFLAG
034427,000880:
034428,000881: 31,3461 15155 TCF ENDOFJOB
034429,000882:
034430,000883: 31,3462 05516 RED-OVER TC DOWNFLAG
034431,000884: 31,3463 00143 ADRES REDFLAG
034432,000885: 31,3464 33717 REDES-OK CAF V06N64
034433,000886: 31,3465 13435 TCF DISPCOMN
034434,000887:
034435,000888: 31,3466 33720 VERTDISP CAF V06N60
034436,000889: 31,3467 04616 TC BANKCALL
034437,000890: 31,3470 20460 CADR REFLASH
034438,000891: 31,3471 16001 TCF GOTOPOOH # TERMINATE
034439,000892: 31,3472 13474 TCF STOPFIRE # PROCEED
034440,000893: 31,3473 13474 TCF STOPFIRE # V32E
034441,000894:
Luminary 131 calls ZATTEROR under INHINT here, instead of setting WCHVERT to POSMAX. |
034443,000896: 31,3474 34733 STOPFIRE CAF POSMAX
034444,000897: 31,3475 55647 TS WCHVERT
034445,000898: 31,3476 15155 TCF ENDOFJOB
034446,000899:
Luminary 131 had P65 code here. |
034448,000901: 31,3477 44755 STRTP66B CS ZERO
034449,000902: 31,3500 55647 TS WCHVERT
034450,000903:
034451,000904: 31,3501 03743 TC RSTCTHRT
034452,000905:
034453,000906: 31,3502 06042 TC INTPRET
034454,000907: 31,3503 47375 VLOAD VXV # COMPUTE HORIZONTAL VELOCITY COMMAND
034455,000908: 31,3504 02325 WM # MOON'S ANGULAR RATE IN 2(-17)RAD/CS
034456,000909: 31,3505 03521 R # LM POSITION IN 2(24)M
034457,000910: 31,3506 03434 STORE VHZC
034458,000911: 31,3507 77776 EXIT
034459,000912: 31,3510 12457 TCF STRTP66A
034460,000913:
One of the requirements in the creation of LM131 rev 1 was that it must only change module B5, for both schedule and cost reasons (it takes more time and more money to remake all 6 rope modules instead of just 1). Therefore one of the major challenges in adding Auto P66 was figuring out how to fit all of the new code into the available space, *without* breaking references to module B5 from other modules. FIXME To aid with this challenge, engineers inserted at the end of new code a series of constants counting down how many words they had left within that section before the next immovable reference from another module. In this case, only a single word was left. |
034469,000922: 31,3511 00001 DEC 1 B-14
034470,000923:
Page 811 |
034472,000925:
034473,000926: # ***************************************************************************************************************
034474,000927: # P66 VERTICAL CHANNEL
034475,000928: # ***************************************************************************************************************
034476,000929:
034477,000930: 32,2000 SETLOC P66LOC
034478,000931: 32,2000 BANK
034479,000932: 32,3265 COUNT* $$/F2DPS
034480,000933:
034481,000934: 32,3265 37713 RODTASK CAF PRIO22 # BUMPS ALL OF SERVICER JOB EXCEPT RODCOMP
034482,000935: 32,3266 05105 TC FINDVAC
034483,000936: 32,3267 E7,1515 EBANK= DVCNTR
034484,000937: 32,3267 03275 64067 2CADR RODCOMP
034485,000938:
034486,000939: 32,3271 15261 TCF TASKOVER
034487,000940:
The following P66 vertical channel code replaced the main implementation of P65 in LM131 rev 1. |
034489,000942: 32,3272 34777 P66VERT CA 1SEC
034490,000943: 32,3273 05173 TC TWIDDLE
034491,000944: 32,3274 03265 ADRES RODTASK
034492,000945:
034493,000946: 32,3275 37714 RODCOMP CA PRIO23 # LET ONLY ONE JOB THRU RODCOMP AT A TIME
034494,000947: 32,3276 05146 TC PRIOCHNG
034495,000948:
034496,000949: 32,3277 00004 INHINT
034497,000950:
034498,000951: 32,3300 34755 CAF ZERO
034499,000952: 32,3301 57746 XCH RODCOUNT
034500,000953: 32,3302 00006 EXTEND
034501,000954: 32,3303 71756 MP RODSCAL1
034502,000955: 32,3304 21645 DAS VDGVERT # UPDATE DESIRED ALTITUDE RATE.
034503,000956:
034504,000957: 32,3305 34747 CAF BIT5 # ARE WE IN AUTO THROTTLE?
034505,000958: 32,3306 00006 EXTEND
034506,000959: 32,3307 02030 RAND CHAN30
034507,000960: 32,3310 00006 EXTEND
034508,000961: 32,3311 13315 BZF RODCOMPA # Y: CONTINUE ROD
034509,000962:
034510,000963: 32,3312 00006 EXTEND # N: RESET VDGVERT TO CURRENT HDOT
034511,000964: 32,3313 31474 DCA HDOTDISP
034512,000965: 32,3314 53645 DXCH VDGVERT
034513,000966:
034514,000967: # READ THE PIPAS FOR P66
034515,000968:
034516,000969: 32,3315 00006 RODCOMPA EXTEND
034517,000970: 32,3316 30040 DCA PIPAX
034518,000971: 32,3317 53764 DXCH OLDPIPAX # CURRENT PIPA READINGS INTO OLDPIPAX,Y,Z
034519,000972: 32,3320 52071 DXCH RUPTREG1 # SAVE PRIOR READINGS IN RUPTREG1,2,3
034520,000973: 32,3321 30041 CA PIPAZ
034521,000974: 32,3322 57765 XCH OLDPIPAZ
034522,000975: 32,3323 56072 XCH RUPTREG3
034523,000976:
034524,000977: 32,3324 00006 EXTEND # SHAPSHOT TIME OF PIPA READING.
034525,000978: 32,3325 30025 DCA TIME2
034526,000979: 32,3326 53762 DXCH THISTPIP
Page 812 |
034528,000981: 32,3327 31763 CA OLDPIPAX
034529,000982: 32,3330 61157 AD PIPATMPX
034530,000983: 32,3331 54154 TS MPAC # MPAC(X) = PIPAX + PIPATMPX
034531,000984: 32,3332 31764 CA OLDPIPAY
034532,000985: 32,3333 61160 AD PIPATMPY
034533,000986: 32,3334 54157 TS MPAC +3 # MPAC(Y) = PIPAY + PIPATMPY
034534,000987: 32,3335 31765 CA OLDPIPAZ
034535,000988: 32,3336 61161 AD PIPATMPZ
034536,000989: 32,3337 54161 TS MPAC +5 # MPAC(Z) = PIPAZ + PIPATMPZ
034537,000990:
034538,000991: # COMPUTE DELV SINCE THE LAST P66 PASS
034539,000992:
034540,000993: 32,3340 41763 CS OLDPIPAX # - CURRENT P66 PIPA
034541,000994: 32,3341 61253 AD TEMX # - PIPA BY PIPASR IF INTERVENING, ELSE 0
034542,000995: 32,3342 60070 AD RUPTREG1 # + PIPA BY P66 ON THE LAST P66 PASS
034543,000996: 32,3343 55766 TS DELVROD # = -DELV SINCE LAST P66 PASS, 2(14)CM/SEC
034544,000997: 32,3344 41764 CS OLDPIPAY
034545,000998: 32,3345 61254 AD TEMY
034546,000999: 32,3346 60071 AD RUPTREG2
034547,001000: 32,3347 55770 TS DELVROD +2
034548,001001: 32,3350 41765 CS OLDPIPAZ
034549,001002: 32,3351 61255 AD TEMZ
034550,001003: 32,3352 60072 AD RUPTREG3
034551,001004: 32,3353 55772 TS DELVROD +4
034552,001005:
034553,001006: 32,3354 34755 CAF ZERO
034554,001007: 32,3355 54155 TS MPAC +1 # ZERO LO-ORDER MPAC COMPONENTS
034555,001008: 32,3356 54160 TS MPAC +4
034556,001009: 32,3357 54162 TS MPAC +6
034557,001010: 32,3360 55253 TS TEMX # ZERO TEMX, TEMY, AND TEMZ SO WE WILL
034558,001011: 32,3361 55254 TS TEMY # KNOW WHEN READACCS CHANGES THEM.
034559,001012: 32,3362 55255 TS TEMZ
034560,001013: 32,3363 44753 CS ONE
034561,001014: 32,3364 54163 TS MODE
034562,001015: 32,3365 06042 TC INTPRET
034563,001016: 32,3366 65361 ITRPNT1 VXSC PDDL # SCALE MPAC TO M/CS *2(-7) AND PUSH (6)
034564,001017: 32,3367 26022 KPIP1
034565,001018: 32,3370 03762 THISTPIP
034566,001019: 32,3371 77625 DSU
034567,001020: 32,3372 01234 PIPTIME
034568,001021: 32,3373 00037 STORE 30D # 30-31D CONTAINS TIME IN CS SINCE PIPTIME
034569,001022: 32,3374 63271 DDV PDVL # (8)
034570,001023: 32,3375 27110 4SEC(28)
034571,001024: 32,3376 01236 GDT/2
034572,001025: 32,3377 74251 VSU VXSC # (6)
034573,001026: 32,3400 02621 VBIAS
034574,001027: 32,3401 53352 VSL2 VAD
034575,001028: 32,3402 03527 V
034576,001029: 32,3403 45455 VAD STADR # (0)
034577,001030: 32,3404 53746 STOVL 24D # STORE UPDATED VELOCITY IN 24-29D
034578,001031: 32,3405 03521 R
034579,001032: 32,3406 77656 UNIT
Page 813 |
034581,001034: 32,3407 00017 STORE 14D
034582,001035: 32,3410 72441 DOT SL1
034583,001036: 32,3411 00031 24D
034584,001037: 32,3412 17474 STODL HDOTDISP # UPDATE ALTITUDE RATE FOR NOUN 60
034585,001038: 32,3413 00037 30D
034586,001039: 32,3414 41261 SL DMP
034587,001040: 32,3415 20214 11D
034588,001041: 32,3416 03474 HDOTDISP
034589,001042: 32,3417 45215 DAD DSU
034590,001043: 32,3420 00045 36D
034591,001044: 32,3421 02333 /LAND/
034592,001045: 32,3422 17775 STODL HCALC1 # UPDATE ALTITUDE FOR NOUN 60
034593,001046: 32,3423 03474 HDOTDISP
034594,001047: 32,3424 56221 BDSU DDV
034595,001048: 32,3425 03645 VDGVERT
034596,001049: 32,3426 02541 TAUROD
034597,001050: 32,3427 51515 PDVL ABVAL # (2)
034598,001051: 32,3430 01236 GDT/2
034599,001052: 32,3431 60471 DDV SR2
034600,001053: 32,3432 05652 GSCALE
034601,001054: 32,3433 00025 STORE 20D
034602,001055: 32,3434 77615 DAD # (0)
034603,001056: 32,3435 45115 PDVL CALL # (2)
034604,001057: 32,3436 06522 UNITX
034605,001058: 32,3437 47663 CDU*NBSM
034606,001059: 32,3440 77641 DOT
034607,001060: 32,3441 00017 14D
034608,001061: 32,3442 00027 STORE 22D
034609,001062: 32,3443 45465 BDDV STADR # (0)
034610,001063: 32,3444 50313 STOVL /AFC/
034611,001064: 32,3445 03767 DELVROD
034612,001065: 32,3446 53361 VXSC VAD
034613,001066: 32,3447 26022 KPIP1
034614,001067: 32,3450 02621 VBIAS
034615,001068: 32,3451 65246 ABVAL PDDL # (2)
034616,001069: 32,3452 03762 THISTPIP
034617,001070: 32,3453 65225 DSU PDDL # (4)
034618,001071: 32,3454 03760 LASTTPIP
034619,001072: 32,3455 03762 THISTPIP
034620,001073: 32,3456 17760 STODL LASTTPIP # (2)
034621,001074: 32,3457 55271 DDV BDDV # (0)
034622,001075: 32,3460 23754 SHFTFACT
034623,001076: 32,3461 41325 PDDL DMP # (2)
034624,001077: 32,3462 03611 FWEIGHT
034625,001078: 32,3463 23753 BIT1H
034626,001079: 32,3464 56271 DDV DDV
034627,001080: 32,3465 01244 MASS
034628,001081: 32,3466 22006 SCALEFAC
034629,001082: 32,3467 65215 DAD PDDL # (4)
034630,001083: 32,3470 00001 0D
Page 814 |
034632,001085: 32,3471 00025 20D
034633,001086: 32,3472 45271 DDV DSU # (2)
034634,001087: 32,3473 00027 22D
034635,001088: 32,3474 43205 DMP DAD
034636,001089: 32,3475 02543 LAG/TAU
034637,001090: 32,3476 03464 /AFC/
034638,001091: 32,3477 56325 PDDL DDV # (4)
034639,001092: 32,3500 02547 MAXFORCE
034640,001093: 32,3501 01244 MASS
034641,001094: 32,3502 56325 PDDL DDV # (6)
034642,001095: 32,3503 02545 MINFORCE
034643,001096: 32,3504 01244 MASS
034644,001097: 32,3505 44206 PUSH BDSU # (8)
034645,001098: 32,3506 00003 2D
034646,001099: 32,3507 71240 BMN DLOAD # (6)
034647,001100: 32,3510 65516 AFCSPOT
034648,001101: 32,3511 41545 DLOAD PUSH # (6)
034649,001102: 32,3512 51021 BDSU BPL
034650,001103: 32,3513 00003 2D
034651,001104: 32,3514 65516 AFCSPOT
034652,001105: 32,3515 77745 DLOAD # (4)
034653,001106: 32,3516 77745 AFCSPOT DLOAD # (2), (4), OR (6)
034654,001107: 32,3517 77601 SETPD # (2)
034655,001108: 32,3520 00003 2D
034656,001109: 32,3521 17464 STODL /AFC/ # (0)
034657,001110: 32,3522 77776 ITRPNT2 EXIT
034658,001111: 32,3523 52155 DXCH MPAC # MPAC = MEASURED ACCELERATION.
034659,001112: 32,3524 04616 TC BANKCALL
034660,001113: 32,3525 62147 CADR THROTTLE +3
034661,001114: 32,3526 25623 INCR CNTTHROT # COUNT ONE THROTTLE COMPLETION
034662,001115: 32,3527 04616 TC BANKCALL # PUT UP V06N60 DISPLAY BUT AVOID PHASCHNG
034663,001116: 32,3530 63426 CADR DISPEXIT +3
034664,001117:
One of the requirements in the creation of LM131 rev 1 was that it must only change module B5, for both schedule and cost reasons (it takes more time and more money to remake all 6 rope modules instead of just 1). Therefore one of the major challenges in adding Auto P66 was figuring out how to fit all of the new code into the available space, *without* breaking references to module B5 from other modules. To aid with this challenge, engineers inserted at the end of new code a series of constants counting down how many words they had left within that section before the next immovable reference from another module. In this case, two words were left. |
034673,001126: 32,3531 00002 DEC 2 B-14
034674,001127: 32,3532 00001 DEC 1 B-14
034675,001128:
034676,001129: # ****************************************************************************************************************
034677,001130: # REDESIGNATOR TRAP
034678,001131: # ****************************************************************************************************************
034679,001132:
034680,001133: 11,2302 BANK 11
034681,001134: 11,2000 SETLOC F2DPS*11
034682,001135: 11,2000 BANK
034683,001136:
034684,001137: 11,2302 COUNT* $$/F2DPS
034685,001138:
034686,001139: 11,2302 56016 PITFALL XCH BANKRUPT
034687,001140: 11,2303 00006 EXTEND
034688,001141: 11,2304 22012 QXCH QRUPT
Page 815 |
034690,001143: 11,2305 05321 TC CHECKMM # IF NOT IN P64, NO REASON TO CONTINUE
034691,001144: 11,2306 00100 DEC 64 B-14
034692,001145: 11,2307 15270 TCF RESUME
034693,001146:
034694,001147: 11,2310 00006 EXTEND
034695,001148: 11,2311 00031 READ CHAN31
034696,001149: 11,2312 40000 COM
034697,001150: 11,2313 72401 MASK ALL4BITS
034698,001151: 11,2314 55444 TS ELVIRA
034699,001152: 11,2315 34752 CAF TWO
034700,001153: 11,2316 55443 TS ZERLINA
034701,001154: 11,2317 34756 CAF FIVE
034702,001155: 11,2320 05173 TC TWIDDLE
034703,001156: 11,2321 02326 ADRES REDESMON
034704,001157: 11,2322 15270 TCF RESUME
034705,001158:
034706,001159: # REDESIGNATION MONITOR (INITIATED BY PITFALL)
034707,001160:
034708,001161: 11,2323 55443 PREMON1 TS ZERLINA
034709,001162: 11,2324 34757 PREMON2 CAF SEVEN
034710,001163: 11,2325 05224 TC VARDELAY
034711,001164: 11,2326 00006 REDESMON EXTEND
034712,001165: 11,2327 00031 READ 31
034713,001166: 11,2330 40000 COM
034714,001167: 11,2331 72401 MASK ALL4BITS
034715,001168: 11,2332 57444 XCH ELVIRA
034716,001169: 11,2333 54001 TS L
034717,001170: 11,2334 11444 CCS ELVIRA # DO ANY BITS APPEAR THIS PASS?
034718,001171: 11,2335 12324 TCF PREMON2 # Y: CONTINUE MONITOR
034719,001172: 11,2336 10001 CCS L # N: ANY LAST PASS?
034720,001173: 11,2337 12347 TCF COUNT'EM # Y: COUNT 'EM, RESET RUPT, TERMINATE
034721,001174: 11,2340 11443 CCS ZERLINA # N: HAS ZERLINA REACHED ZERO YET?
034722,001175: 11,2341 12323 TCF PREMON1 # N: DIMINISH ZERLINA, CONTINUE
034723,001176: 11,2342 06022 RESETRPT TC C13STALL # Y: RESET RUPT, TERMINATE
034724,001177: 11,2343 34740 CAF BIT12
034725,001178: 11,2344 00006 EXTEND
034726,001179: 11,2345 05013 WOR CHAN13
034727,001180: 11,2346 15261 TCF TASKOVER
034728,001181:
034729,001182: 11,2347 34737 COUNT'EM CAF BIT13 # ARE WE IN ATTITUDE-HOLD?
034730,001183: 11,2350 00006 EXTEND
034731,001184: 11,2351 02031 RAND CHAN31
034732,001185: 11,2352 00006 EXTEND
034733,001186: 11,2353 12342 BZF RESETRPT # YES: SKIP REDESIGNATION LOGIC.
034734,001187: 11,2354 30001 CA L # NO
034735,001188: 11,2355 74746 MASK -AZBIT
Page 816 |
034737,001190: 11,2356 10000 CCS A
034738,001191: 11,2357 42402 -AZ CS AZEACH
034739,001192: 11,2360 27445 ADS AZINCR1
034740,001193: 11,2361 30001 CA L
034741,001194: 11,2362 74747 MASK +AZBIT
034742,001195: 11,2363 10000 CCS A
034743,001196: 11,2364 32402 +AZ CA AZEACH
034744,001197: 11,2365 27445 ADS AZINCR1
034745,001198: 11,2366 30001 CA L
034746,001199: 11,2367 74753 MASK -ELBIT
034747,001200: 11,2370 10000 CCS A
034748,001201: 11,2371 42403 -EL CS ELEACH
034749,001202: 11,2372 27446 ADS ELINCR1
034750,001203: 11,2373 30001 CA L
034751,001204: 11,2374 74752 MASK +ELBIT
034752,001205: 11,2375 10000 CCS A
034753,001206: 11,2376 32403 +EL CA ELEACH
034754,001207: 11,2377 27446 ADS ELINCR1
034755,001208: 11,2400 12342 TCF RESETRPT
034756,001209:
034757,001210: # THESE EQUIVALENCIES ARE BASED ON GSOP CHAPTER 4, REVISION 16 OF P64LM
034758,001211:
034759,001212: 11,2401 4752 +ELBIT = BIT2 # -PITCH
034760,001213: 11,2401 4753 -ELBIT = BIT1 # +PITCH
034761,001214: 11,2401 4747 +AZBIT = BIT5
034762,001215: 11,2401 4746 -AZBIT = BIT6
034763,001216:
034764,001217: 11,2401 00063 ALL4BITS OCT 00063
034765,001218: 11,2402 01074 AZEACH DEC .03491 # 2 DEGREES
034766,001219: 11,2403 00217 ELEACH DEC .00873 # 1/2 DEGREE
034767,001220:
034768,001221: # ****************************************************************************************************************
034769,001222: # R.O.D. TRAP
034770,001223: # ************************************************************************
034771,001224:
034772,001225: 23,2000 SETLOC RODTRAP
Page 817 |
034774,001227: 23,2000 BANK
034775,001228: 23,2455 COUNT* $$/F2DPS # ****************************************
034776,001229:
034777,001230: 23,2455 74745 DESCBITS MASK BIT7 # COME HERE FROM MARKRUPT CODING WITH BIT
034778,001231: 23,2456 10000 CCS A # 7 OR 6 OF CHANNEL 16 IN A: BIT 7 MEANS
034779,001232: 23,2457 44752 CS TWO # - RATE INCREMENT, BIT 6 + INCREMENT
034780,001233: 23,2460 64753 AD ONE
034781,001234: 23,2461 27746 ADS RODCOUNT
034782,001235: 23,2462 15270 TCF RESUME # TRAP IS RESET WHEN SWITCH IS RELEASED
034783,001236:
034784,001237: 31,3512 BANK 31
034785,001238: 31,2000 SETLOC F2DPS*31
034786,001239: 31,2000 BANK
034787,001240:
034788,001241: 31,3512 COUNT* $$/F2DPS
034789,001242:
034790,001243: # ****************************************************************************************************************
034791,001244: # DOUBLE PRECISION ROOT FINDER SUBROUTINE (BY ALLAN KLUMPP)
034792,001245: # ****************************************************************************************************************
034793,001246:
034794,001247: # N N-1
034795,001248: # ROOTPSRS FINDS ONE ROOT OF THE POWER SERIES A X + A X + ... + A X + A
034796,001249: # N N-1 1 0
034797,001250: # USING NEWTON'S METHOD STARTING WITH AN INITIAL GUESS FOR THE ROOT. THE ENTERING DATA MUST BE AS FOLLOWS:
034798,001251: # A SP LOC-3 ADRES FOR REFERENCING PWR COF TABL
034799,001252: # L SP N-1 N IS THE DEGREE OF THE POWER SERIES
034800,001253: # MPAC DP X INITIAL GUESS FOR ROOT
034801,001254: # LOC-2N DP A(0)
034802,001255: # ...
034803,001256: # LOC DP A(N)
034804,001257: # LOC+2 SP PRECROOT PREC RQD OF ROOT (AS FRACT OF 1ST GUESS)
034805,001258:
034806,001259: # THE DP RESULT IS LEFT IN MPAC UPON EXIT, AND A SP COUNT OF THE ITERATIONS TO CONVERGENCE IS LEFT IN MPAC+2.
034807,001260: # RETURN IS NORMALLY TO LOC(TC ROOTPSRS)+3. IF ROOTPSRS FAILS TO CONVERGE IN 8 PASSES, RETURN IS TO LOC+1 AND
034808,001261: # OUTPUTS ARE NOT TO BE TRUSTED.
034809,001262:
034810,001263: # PRECAUTION: ROOTPSRS MAKES NO CHECKS FOR OVERFLOW OR FOR IMPROPER USAGE. IMPROPER USAGE COULD
034811,001264: # PRECLUDE CONVERGENCE OR REQUIRE EXCESSIVE ITERATIONS. AS A SPECIFIC EXAMPLE, ROOTPSRS FORMS A DERIVATIVE
034812,001265: # COEFFICIENT TABLE BY MULTIPLYING EACH A(I) BY I, WHERE I RANGES FROM 1 TO N. IF AN ELEMENT OF THE DERIVATIVE
034813,001266: # COEFFICIENT TABLE = 1 OR >1 IN MAGNITUDE, ONLY THE EXCESS IS RETAINED. ROOTPSRS MAY CONVERGE ON THE CORRECT
034814,001267: # ROOT NONETHELESS, BUT IT MAY TAKE AN EXCESSIVE NUMBER OF ITERATIONS. THEREFORE THE USER SHOULD RECOGNIZE:
034815,001268: # 1. USER'S RESPONSIBILITY TO ASSURE THAT I X A(I) < 1 IN MAGNITUDE FOR ALL I.
034816,001269: # 2. USER'S RESPONSIBILITY TO ASSURE OVERFLOW WILL NOT OCCUR IN EVALUATING EITHER THE RESIDUAL OR THE DERIVATIVE
034817,001270: # POWER SERIES. THIS OVERFLOW WOULD BE PRODUCED BY SUBROUTINE POWRSERS, CALLED BY ROOTPSRS, AND MIGHT NOT
Page 818 |
034819,001272: # PRECLUDE EVENTUAL CONVERGENCE.
034820,001273: # 3. AT PRESENT, ERASABLE LOCATIONS ARE RESERVED ONLY FOR N UP TO 5. AN N IN EXCESS OF 5 WILL PRODUCE CHAOS.
034821,001274: # ALL ERASABLES USED BY ROOTPSRS ARE UNSWITCHED LOCATED IN THE REGION FROM MPAC-33 OCT TO MPAC+7.
034822,001275: # 4. THE ITERATION COUNT RETURNED IN MPAC+2 MAY BE USED TO DETECT ABNORMAL PERFORMANCE.
034823,001276:
034824,001277: # STORE ENTERING DATA, INITLIZE ERASABLES
034825,001278: 31,3512 00006 ROOTPSRS EXTEND
034826,001279: 31,3513 22132 QXCH RETROOT # RETURN ADRES
034827,001280: 31,3514 54117 TS PWRPTR # PWR TABL POINTER
034828,001281: 31,3515 52160 DXCH MPAC +3 # PWR TABL ADRES, N-1
034829,001282: 31,3516 33635 CA DERTABLL
034830,001283: 31,3517 54141 TS DERPTR # DER TABL POINTER
034831,001284: 31,3520 54161 TS MPAC +5 # DER TABL ADRES
034832,001285: 31,3521 10160 CCS MPAC +4 # NO POWER SERIES OF DEGREE 1 OR LESS
034833,001286: 31,3522 54162 TS MPAC +6 # N-2
034834,001287: 31,3523 34755 CA ZERO # MODE USED AS ITERATION COUNTER. MODE
034835,001288: 31,3524 54163 TS MODE # MUST BE POS SO ABS WON'T COMP MPAC+3 ETC
034836,001289:
034837,001290: # COMPUTE CRITERION TO STOP ITERATING
034838,001291: 31,3525 00006 EXTEND
034839,001292: 31,3526 30155 DCA MPAC # FETCH ROOT GUESS, KEEPING IT IN MPAC
034840,001293: 31,3527 52127 DXCH ROOTPS # AND IN ROOTPS
034841,001294: 31,3530 50157 INDEX MPAC +3 # PWR TABL ADRES
034842,001295: 31,3531 30005 CA 5 # PRECROOT TO A
034843,001296: 31,3532 07312 TC SHORTMP # YIELDS DP PRODUCT IN MPAC
034844,001297: 31,3533 04713 TC USPRCADR
034845,001298: 31,3534 01226 CADR ABS # YIELDS ABVAL OF CRITERION ON DX IN MPAC
034846,001299: 31,3535 52155 DXCH MPAC
034847,001300: 31,3536 52125 DXCH DXCRIT # CRITERION
034848,001301:
034849,001302: # SET UP DER COF TABL
034850,001303: 31,3537 00006 EXTEND
034851,001304: 31,3540 50117 INDEX PWRPTR
034852,001305: 31,3541 30004 DCA 3
034853,001306: 31,3542 52155 DXCH MPAC # A(N) TO MPAC
034854,001307:
034855,001308: 31,3543 30160 CA MPAC +4 # N-1 TO A
034856,001309:
034857,001310: 31,3544 54140 DERCLOOP TS PWRCNT # LOOP COUNTER
034858,001311: 31,3545 64753 AD ONE
034859,001312: 31,3546 07321 TC DMPNSUB # YIELDS DERCOF = I X A(I) IN MPAC
034860,001313: 31,3547 00006 EXTEND
034861,001314: 31,3550 50117 INDEX PWRPTR
034862,001315: 31,3551 30002 DCA 1
034863,001316: 31,3552 52155 DXCH MPAC # A(I-1) TO MPAC, FETCHING DERCOF
Page 819 |
034865,001318: 31,3553 50141 INDEX DERPTR
034866,001319: 31,3554 52004 DXCH 3 # DERCOF TO DER TABL
034867,001320: 31,3555 44752 CS TWO
034868,001321: 31,3556 26117 ADS PWRPTR # DECREMENT PWR POINTER
034869,001322: 31,3557 44752 CS TWO
034870,001323: 31,3560 26141 ADS DERPTR # DECREMENT DER POINTER
034871,001324: 31,3561 10140 CCS PWRCNT
034872,001325: 31,3562 13544 TCF DERCLOOP
034873,001326:
034874,001327: # CONVERGE ON ROOT
034875,001328: 31,3563 00006 ROOTLOOP EXTEND
034876,001329: 31,3564 30127 DCA ROOTPS # FETCH CURRENT ROOT
034877,001330: 31,3565 52155 DXCH MPAC # LEAVE IN MPAC
034878,001331: 31,3566 00006 EXTEND
034879,001332: 31,3567 30162 DCA MPAC +5 # LOAD A, L WITH DER TABL ADRES, N-2
034880,001333: 31,3570 07220 TC POWRSERS # YIELDS DERIVATIVE IN MPAC
034881,001334:
034882,001335: 31,3571 00006 EXTEND
034883,001336: 31,3572 30127 DCA ROOTPS
034884,001337: 31,3573 52155 DXCH MPAC # CURRENT ROOT TO MPAC, FETCHING DERIVTIVE
034885,001338: 31,3574 52131 DXCH BUF # LEAVE DERIVATIVE IN BUF AS DIVISOR
034886,001339: 31,3575 00006 EXTEND
034887,001340: 31,3576 30160 DCA MPAC +3 # LOAD A, L WITH PWR TABL ADRES, N-1
034888,001341: 31,3577 07220 TC POWRSERS # YIELDS RESIDUAL IN MPAC
034889,001342:
034890,001343: 31,3600 04713 TC USPRCADR
034891,001344: 31,3601 00353 CADR DDV/BDDV # YIELDS -DX IN MPAC
034892,001345:
034893,001346: 31,3602 00006 EXTEND
034894,001347: 31,3603 40155 DCS MPAC # FETCH DX, LEAVING -DX IN MPAC
034895,001348: 31,3604 20127 DAS ROOTPS # CORRECTED ROOT NOW IN ROOTPS
034896,001349:
034897,001350: 31,3605 04713 TC USPRCADR
034898,001351: 31,3606 01226 CADR ABS # YIELDS ABS(DX) IN MPAC
034899,001352: 31,3607 00006 EXTEND
034900,001353: 31,3610 40125 DCS DXCRIT
034901,001354: 31,3611 20155 DAS MPAC # ABS(DX)-ABS(DXCRIT) IN MPAC
034902,001355:
034903,001356: 31,3612 30163 CA MODE
034904,001357: 31,3613 74750 MASK BIT4 # KLUMPP SAYS GIVE UP AFTER EIGHT PASSES
034905,001358: 31,3614 10000 CCS A
034906,001359: 31,3615 00132 BADROOT TC RETROOT
034907,001360:
034908,001361: 31,3616 24163 INCR MODE # INCREMENT ITERATION COUNTER
034909,001362: 31,3617 10154 CCS MPAC # TEST HI ORDER DX
034910,001363: 31,3620 13563 TCF ROOTLOOP
034911,001364: 31,3621 13623 TCF TESTLODX
034912,001365: 31,3622 13627 TCF ROOTSTOR
034913,001366: 31,3623 10155 TESTLODX CCS MPAC +1 # TEST LO ORDER DX
Page 820 |
034915,001368: 31,3624 13563 TCF ROOTLOOP
034916,001369: 31,3625 13627 TCF ROOTSTOR
034917,001370: 31,3626 13627 TCF ROOTSTOR
034918,001371: 31,3627 52127 ROOTSTOR DXCH ROOTPS
034919,001372: 31,3630 52155 DXCH MPAC
034920,001373: 31,3631 30163 CA MODE
034921,001374: 31,3632 54156 TS MPAC +2 # STORE SP ITERATION COUNT IN MPAC+2
034922,001375: 31,3633 50132 INDEX RETROOT
034923,001376: 31,3634 10002 TCF 2
034924,001377:
034925,001378: 31,3635 00147 DERTABLL ADRES DERCOFN -3
034926,001379:
034927,001380: # ****************************************************************************************************************
034928,001381: # TRASHY LITTLE SUBROUTINES
034929,001382: # ****************************************************************************************************************
034930,001383:
034931,001384: 31,3636 51346 INTPRETX INDEX WCHPHASE # SET X1 ON THE WAY TO THE INTERPRETER
034932,001385: 31,3637 42413 CS TARGTDEX
034933,001386: 31,3640 50120 INDEX FIXLOC
034934,001387: 31,3641 54046 TS X1
034935,001388: 31,3642 16042 TCF INTPRET
034936,001389:
034937,001390: 31,3643 31642 TDISPSET CA TTF/8
034938,001391: 31,3644 00006 EXTEND
034939,001392: 31,3645 74750 MP TSCALINV
034940,001393: 31,3646 53476 DXCH TTFDISP
034941,001394:
034942,001395: 31,3647 35014 CA EBANK5 # TREDES BECOMES ZERO TWO PASSES
034943,001396: 31,3650 54003 TS EBANK # BEFORE TCGFAPPR IS REACHED
034944,001397: 31,3651 E5,1470 EBANK= TCGFAPPR
034945,001398: 31,3651 31470 CA TCGFAPPR
034946,001399: 31,3652 24006 INCR BBANK
034947,001400: 31,3653 24006 INCR BBANK
034948,001401: 31,3654 E7,1642 EBANK= TTF/8
034949,001402: 31,3654 61642 AD TTF/8
034950,001403: 31,3655 00006 EXTEND
034951,001404: 31,3656 73711 MP TREDESCL
034952,001405: 31,3657 63706 AD -DEC103
034953,001406: 31,3660 64735 AD NEGMAX
034954,001407: 31,3661 54001 TS L
034955,001408: 31,3662 40001 CS L
034956,001409: 31,3663 60001 AD L
034957,001410: 31,3664 63710 AD +DEC99
034958,001411: 31,3665 64733 AD POSMAX
034959,001412: 31,3666 55666 TS TREDES
034960,001413: 31,3667 41666 CS TREDES
034961,001414: 31,3670 27666 ADS TREDES
034962,001415: 31,3671 00002 TC Q
034963,001416:
Page 821 |
034965,001418: 31,3672 05642 1406POO TC POODOO
034966,001419: 31,3673 21406 OCT 21406
034967,001420: 31,3674 05567 1406ALM TC ALARM
034968,001421: 31,3675 01406 OCT 01406
034969,001422: 31,3676 13411 TCF RATESTOP
034970,001423:
034971,001424: # ****************************************************************************************************************
034972,001425: # SPECIALIZED "PHASCHNG" SUBROUTINE
034973,001426: # ****************************************************************************************************************
034974,001427:
034975,001428: 31,3677 E3,1440 EBANK= PHSNAME2
034976,001429: 31,3677 35007 FASTCHNG CA EBANK3 # SPECIALIZED 'PHASCHNG' ROUTINE
034977,001430: 31,3700 56003 XCH EBANK
034978,001431: 31,3701 52002 DXCH L
034979,001432: 31,3702 55442 TS PHSNAME3
034980,001433: 31,3703 22003 LXCH EBANK
034981,001434: 31,3704 E7,1621 EBANK= E2DPS
034982,001435: 31,3704 00000 TC A
034983,001436:
034984,001437: # ****************************************************************************************************************
034985,001438: # PARAMETER TABLE INDIRECT ADDRESSES
034986,001439: # ****************************************************************************************************************
034987,001440:
034988,001441: 31,3705 E5,1402 RDG = RBRFG
034989,001442: 31,3705 E5,1410 VDG = VBRFG
034990,001443: 31,3705 E5,1416 ADG = ABRFG
034991,001444: 31,3705 E5,1424 VDG2TTF = VBRFG*
034992,001445: 31,3705 E5,1426 ADG2TTF = ABRFG*
034993,001446: 31,3705 E5,1430 JDG2TTF = JBRFG*
034994,001447:
034995,001448: # ****************************************************************************************************************
034996,001449: # LUNAR LANDING CONSTANTS
034997,001450: # ***************************************************************************************************************
034998,001451:
034999,001452: 31,3705 01565 TABLTTFL ADRES TABLTTF +3 # ADDRESS FOR REFERENCING TTF TABLE
035000,001453: 31,3706 4740 TTFSCALE = BIT12
035001,001454: 31,3706 4750 TSCALINV = BIT4
035002,001455: 31,3706 77630 -DEC103 DEC -103 B-14
035003,001456: 31,3707 00155 P64DB OCT 00155 # 0.3 DEGREES SCALED AT CDU SCALING
Page 822 |
035005,001458: 31,3710 00143 +DEC99 DEC +99 B-14
035006,001459: 31,3711 75340 TREDESCL DEC -.08
035007,001460: 31,3712 00264 180DEGS DEC +180 B-14
035008,001461: 31,3713 00056 1/2DEG DEC +.00278
035009,001462: 31,3714 01542 PROJMAX DEC .42262 B-3 # SIN(25')/8 TO COMPARE WITH PROJ
035010,001463: 31,3715 01022 PROJMIN DEC .25882 B-3 # SIN(15')/8 TO COMPARE WITH PROJ
035011,001464: 31,3716 01477 V06N63 VN 0663 # P63
035012,001465: 31,3717 01500 V06N64 VN 0664 # P64
035013,001466: 31,3720 01474 V06N60 VN 0660 # P65, P66, P67
035014,001467:
035015,001468: 22,3647 BANK 22
035016,001469: 22,2000 SETLOC LANDCNST
035017,001470: 22,2000 BANK
035018,001471: 22,3647 COUNT* $$/F2DPS
035019,001472:
035020,001473: 22,3647 00021 14161 HIGHESTF 2DEC 4.34546769 B-12
035021,001474: 22,3651 01440 00000 GSCALE 2DEC 100 B-11
035022,001475: 22,3653 14000 00000 3/8DP 2DEC .375
035023,001476: 22,3655 30000 00000 3/4DP 2DEC .750
035024,001477: 22,3657 77534 45074 DEPRCRIT 2DEC -.02 B-1
035025,001478:
The following P66 code was all added as part of PCR 988 (Auto P66) and PCR 1013 (Multiple Servicer Avoidance) in LM131 rev 1. |
035028,001481:
035029,001482: # ****************************************************************************************************************
035030,001483: # GUIDANCE FOR P66
035031,001484: # ****************************************************************************************************************
035032,001485:
035033,001486: # THE P66 HORIZONTAL (HZ) EQUATION IS:
035034,001487:
035035,001488: # UNFC/2X = GHZ
035036,001489:
035037,001490: # UNFC/2Y = (LIMIT AHZLIM)(-QHZ UNFC/2Y -(VY-VHZCY)/TAUHZ)
035038,001491: # I-1
035039,001492:
035040,001493: # UNFC/2Z = (LIMIT AHZLIM)(-QHZ UNFC/2Z -(VZ-VHZCZ)/TAUHZ)
035041,001494: # I-1
035042,001495:
035043,001496: # WHERE GHZ IS LUNAR GRAVITY
035044,001497: # QHZ AND 1/TAUHZ ARE GAIN CONSTANTS
035045,001498: # VHZCY AND VHZCZ ARE THE Y AND Z COMPONENTS OF COMMANDED
035046,001499: # VELOCITY, PLATFORM COORDINATES. THESE ARE INITIALIZED
035047,001500: # TO MOONRATE
035048,001501: # (LIMIT AHZLIM) INDICATES THE CONTENT OF THE SUBSEQUENT
035049,001502: # PARENTHESES IS MAGNITUDE LIMITED TO AHZLIM
035050,001503:
035051,001504: 31,2000 SETLOC P66LOC2
035052,001505: 31,2000 BANK
035053,001506:
035054,001507: 31,3721 05353 P66 TC PHASCHNG # TERMINATE GROUP 3
035055,001508: 31,3722 00003 OCT 00003
035056,001509:
035057,001510: 31,3723 06042 TC INTPRET
035058,001511: 31,3724 45234 RTB DSU # IS THERE TIME FOR P66?
035059,001512: 31,3725 21574 LOADTIME
035060,001513: 31,3726 01234 PIPTIME
035061,001514: 31,3727 51021 BDSU BPL
035062,001515: 31,3730 02517 2LATE466
035063,001516: 31,3731 71650 P66HZ # Y: DOIT
035064,001517: 31,3732 77414 CLEAR EXIT # N: OMIT
035065,001518: 31,3733 00663 RODFLAG
035066,001519:
035067,001520: 31,3734 03743 TC RSTCTHRT
035068,001521: 31,3735 00006 EXTEND # TOO FEW THROTTLINGS SINCE LAST OMISSION?
035069,001522: 31,3736 63740 BZMF OMITWALM
035070,001523:
035071,001524: 31,3737 13426 TCF DISPEX66 # N: PERMIT OMISSION SANS ALARM
035072,001525:
035073,001526: 31,3740 05567 OMITWALM TC ALARM # Y: PERMIT OMISSION WITH ALARM
035074,001527: 31,3741 01466 OCT 01466
035075,001528:
035076,001529: 31,3742 13426 TCF DISPEX66
035077,001530:
035078,001531: 31,3743 35014 RSTCTHRT CAF EBANK5
035079,001532: 31,3744 54001 TS L
035080,001533: 31,3745 22003 LXCH EBANK
035081,001534: 31,3746 E5,1774 EBANK= END-E5
035082,001535: 31,3746 41513 CS TOOFEW # INITIALIZE CNTTHROT TO TOOFEW AND LOAD
035083,001536: 31,3747 22003 LXCH EBANK # ACCUMULATOR WITH ITS PREVIOUS CONTENTS
035084,001537: 31,3750 E7,1777 EBANK= END-E7
035085,001538: 31,3750 57623 XCH CNTTHROT
035086,001539: 31,3751 00002 TC Q
035087,001540:
These constants were moved from bank 32 to make more room there for P66 code. |
035089,001542: # CONSTANTS FOR P66
035090,001543:
035091,001544: 31,3752 00001 BIT1H OCT 00001
035092,001545: 31,3753 00000 04000 SHFTFACT 2DEC 1 B-17
035093,001546: 31,3755 00000 05075 BIASFACT 2DEC 655.36 B-26
035094,001547:
035095,001548: # DESCENT OVERFLOW SUBROUTINE
035096,001549: 31,3757 00006 OVFDESC EXTEND
035097,001550: 31,3760 23456 QXCH OVFRET
035098,001551:
035099,001552: 31,3761 05567 TC ALARM
035100,001553: 31,3762 01410 OCT 01410
035101,001554:
035102,001555: 31,3763 00004 INHINT # MUST USE INHINT, IBNKCALL, RELINT
035103,001556: 31,3764 04674 TC IBNKCALL # BECAUSE DAP COULD INTERRUPT STOPRATE AND
035104,001557: 31,3765 40166 FCADR STOPRATE # BECAUSE WE COME FROM P66HZ VIA BANKCALL
035105,001558: 31,3766 00003 RELINT
035106,001559:
035107,001560: 31,3767 34755 CA ZERO
035108,001561: 31,3770 54121 TS OVFIND
035109,001562:
035110,001563: 31,3771 01456 TC OVFRET
035111,001564:
035112,001565:
035113,001566:
035114,001567: # ****************************************************************************************************************
End of include-file LUNAR_LANDING_GUIDANCE_EQUATIONS.agc. Parent file is MAIN.agc