Source Code

034760,000001: # Copyright: Public domain. 034761,000002: # Filename: P70-P71.agc 034762,000003: # Purpose: A section of Luminary 1C, revision 131. 034763,000004: # It is part of the source code for the Lunar Module's (LM) 034764,000005: # Apollo Guidance Computer (AGC) for Apollo 13 and Apollo 14. 034765,000006: # This file is intended to be a faithful transcription, except 034766,000007: # that the code format has been changed to conform to the 034767,000008: # requirements of the yaYUL assembler rather than the 034768,000009: # original YUL assembler. 034769,000010: # Reference: pp. 828-835 of 1729.pdf. 034770,000011: # Contact: Ron Burkey <info@sandroid.org>. 034771,000012: # Website: www.ibiblio.org/apollo 034772,000013: # Mod history: 05/26/03 RSB. Began transcribing. 034773,000014: 034774,000015: # Page 828 034775,000016: 21,2006 BANK 21 034776,000017: 21,2000 SETLOC R11 034777,000018: 21,2000 BANK 034778,000019: 034779,000020: 21,2006 E7,1515 EBANK= DVCNTR 034780,000021: 21,2006 COUNT* $$/R11 034781,000022: 034782,000023: 21,2006 40103 R10,R11 CS FLAGWRD7 # IS SERVICER STILL RUNNING? 034783,000024: 21,2007 74747 MASK AVEGFBIT 034784,000025: 21,2010 10000 CCS A 034785,000026: 21,2011 15261 TCF TASKOVER # LET AVGEND TAKE CARE OF GROUP 2. 034786,000027: 21,2012 11055 CCS PIPCTR 034787,000028: 21,2013 12015 TCF +2 034788,000029: 21,2014 12125 TCF LRHTASK # LAST PASS. CALL LRHTASK. 034789,000030: 21,2015 55714 +2 TS PIPCTR1 034790,000031: 034791,000032: 21,2016 E7,1714 PIPCTR1 = LADQSAVE 034792,000033: 21,2016 1055 PIPCTR = PHSPRDT2 034793,000034: 21,2016 36010 CAF OCT31 034794,000035: 21,2017 05173 TC TWIDDLE 034795,000036: 21,2020 02006 ADRES R10,R11 034796,000037: 21,2021 34753 R10,R11A CAF HFLSHBIT 034797,000038: 21,2022 70107 FLASHH? MASK FLGWRD11 034798,000039: 21,2023 00006 EXTEND 034799,000040: 21,2024 12030 BZF FLASHV? # H FLASH OFF, SO LEAVE ALONE 034800,000041: 034801,000042: 21,2025 34747 CA HLITE 034802,000043: 21,2026 54001 TS L 034803,000044: 21,2027 04606 TC FLIP # FLIP H LITE 034804,000045: 034805,000046: 21,2030 34752 FLASHV? CA VFLSHBIT # VLASHBIT MUST BE BIT 2. 034806,000047: 21,2031 70107 MASK FLGWRD11 034807,000048: 21,2032 00006 EXTEND 034808,000049: 21,2033 12037 BZF 10,11 # VFLASH OFF 034809,000050: 034810,000051: 21,2034 34751 CA VLITE 034811,000052: 21,2035 54001 TS L 034812,000053: 21,2036 04606 TC FLIP # FLIP V LITE 034813,000054: 034814,000055: 21,2037 30105 10,11 CA FLAGWRD9 # IS THE LETABORT FLAG SET ? 034815,000056: 21,2040 74743 MASK LETABBIT 034816,000057: 21,2041 00006 EXTEND 034817,000058: 21,2042 12145 BZF LANDISP # NO. PROCEED TO R10. 034818,000059: 034819,000060: 21,2043 41010 P71NOW? CS MODREG # YES. ARE WE IN P71 NOW? 034820,000061: 21,2044 62104 AD 1DEC71 034821,000062: 21,2045 00006 EXTEND 034822,000063: 21,2046 12145 BZF LANDISP # YES. PROCEED TO R10. 034823,000064: # Page 829 034824,000065: 21,2047 00006 EXTEND # NO. IS AN ABORT STAGE COMMANDED? 034825,000066: 21,2050 00030 READ CHAN30 034826,000067: 21,2051 40000 COM 034827,000068: 21,2052 54001 TS L 034828,000069: 21,2053 74750 MASK BIT4 034829,000070: 21,2054 10000 CCS A 034830,000071: 21,2055 12073 TCF P71A # YES. 034831,000072: 034832,000073: 21,2056 41010 P70NOW? CS MODREG # NO. ARE WE IN P70 NOW? 034833,000074: 21,2057 62103 AD 1DEC70 034834,000075: 21,2060 00006 EXTEND 034835,000076: 21,2061 12145 BZF LANDISP # YES. PROCEED TO R10. 034836,000077: 034837,000078: 21,2062 30001 CA L # NO. IS AN ABORT COMMANDED? 034838,000079: 21,2063 74753 MASK BIT1 034839,000080: 21,2064 10000 CCS A 034840,000081: 21,2065 12070 TCF P70A # YES. 034841,000082: 21,2066 12145 TCF LANDISP # NO. PROCEED TO R10. 034842,000083: 034843,000084: 21,2067 COUNT* $$/P70 034844,000085: 034845,000086: 21,2067 02105 P70 TC LEGAL? 034846,000087: 21,2070 44755 P70A CS ZERO 034847,000088: 21,2071 12074 TCF +3 034848,000089: 21,2072 02105 P71 TC LEGAL? 034849,000090: 21,2073 34752 P71A CAF TWO 034850,000091: 21,2074 54002 +3 TS Q 034851,000092: 21,2075 00004 INHINT 034852,000093: 21,2076 00006 EXTEND 034853,000094: 21,2077 32102 DCA CNTABTAD 034854,000095: 21,2100 52006 DTCB 034855,000096: 034856,000097: 21,2101 E7,1515 EBANK= DVCNTR 034857,000098: 21,2101 03413 12067 CNTABTAD 2CADR CONTABRT 034858,000099: 034859,000100: 21,2103 00106 1DEC70 DEC 70 B-14 034860,000101: 21,2104 00107 1DEC71 DEC 71 B-14 034861,000102: 034862,000103: 05,3413 BANK 05 034863,000104: 05,2000 SETLOC ABORTS1 034864,000105: 05,2000 BANK 034865,000106: 05,3413 COUNT* $$/P70 034866,000107: 034867,000108: 05,3413 33416 CONTABRT CAF ABRTJADR 034868,000109: 05,3414 54017 TS BRUPT 034869,000110: 05,3415 50017 RESUME 034870,000111: 034871,000112: 05,3416 13417 ABRTJADR TCF ABRTJASK 034872,000113: 05,3417 33477 ABRTJASK CAF OCTAL27 034873,000114: 034874,000115: # Page 830 034875,000116: 05,3420 60002 AD Q 034876,000117: 05,3421 54001 TS L 034877,000118: 05,3422 40000 COM 034878,000119: 05,3423 52760 DXCH -PHASE4 034879,000120: 05,3424 50002 INDEX Q 034880,000121: 05,3425 33476 CAF MODE70 034881,000122: 05,3426 55010 TS MODREG 034882,000123: 034883,000124: 05,3427 55162 TS DISPDEX # INSURE DISPDEX IS POSITIVE. 034884,000125: 034885,000126: 05,3430 10002 CCS Q # SET APSFLAG IF P71. 034886,000127: 05,3431 40106 CS FLGWRD10 # SET APSFLAG PRIOR TO THE ENEMA. 034887,000128: 05,3432 74737 MASK APSFLBIT 034888,000129: 05,3433 26106 ADS FLGWRD10 034889,000130: 05,3434 43501 CS DAPBITS # DAPBITS = OCT 40640 = BITS 6,8,9,15 034890,000131: 05,3435 70111 MASK DAPBOOLS # RESET ULLAGE,DRIVT,XOVR11MM, AND PULSES 034891,000132: 05,3436 54111 TS DAPBOOLS 034892,000133: 034893,000134: 05,3437 33502 CAF 1DEGDB # INSURE DAP DEADBAND IS SET TO 1 DEGREE 034894,000135: 05,3440 55343 TS DB 034895,000136: 034896,000137: 05,3441 40101 CS FLAGWRD5 # SET ENGONFLG. 034897,000138: 05,3442 74745 MASK ENGONBIT 034898,000139: 05,3443 26101 ADS FLAGWRD5 034899,000140: 034900,000141: 05,3444 44355 CS PRIO30 # INSURE THAT THE ENGINE IS ON, IF ARMED. 034901,000142: 05,3445 00006 EXTEND 034902,000143: 05,3446 02011 RAND DSALMOUT 034903,000144: 05,3447 64737 AD BIT13 034904,000145: 05,3450 00006 EXTEND 034905,000146: 05,3451 01011 WRITE DSALMOUT 034906,000147: 034907,000148: 05,3452 34735 CAF LRBYBIT # TERMINATE R12. 034908,000149: 05,3453 54107 TS FLGWRD11 034909,000150: 034910,000151: 05,3454 40074 CS FLAGWRD0 # SET R10FLAG TO SUPPRESS OUTPUTS TO THE 034911,000152: 05,3455 74752 MASK R10FLBIT # CROSS-POINTER DISPLAY. 034912,000153: 05,3456 26074 ADS FLAGWRD0 # THE FOLLOWING ENEMA WILL REMOVE THE 034913,000154: # DISPLAY INERTIAL DATA OUTBIT. 034914,000155: 034915,000156: 05,3457 00006 EXTEND # LOAD TEVENT FOR THE DOWNLINK. 034916,000157: 05,3460 30025 DCA TIME2 034917,000158: 05,3461 53342 DXCH TEVENT 034918,000159: 034919,000160: 05,3462 00006 EXTEND 034920,000161: 05,3463 33475 DCA SVEXITAD 034921,000162: 05,3464 53252 DXCH AVGEXIT 034922,000163: 034923,000164: 05,3465 02653 TC ABTKLEAN # KILL GROUPS 1,3, AND 6. 034924,000165: # Page 831 034925,000166: 05,3466 36250 CAF THREE # SET UP 4.3SPOT FOR GOABORT 034926,000167: 05,3467 54001 TS L 034927,000168: 05,3470 40000 COM 034928,000169: 05,3471 52760 DXCH -PHASE4 034929,000170: 034930,000171: 05,3472 04635 TC POSTJUMP 034931,000172: 05,3473 12763 CADR ENEMA 034932,000173: 034933,000174: 05,3474 E7,1515 EBANK= DVCNTR 034934,000175: 05,3474 03746 64067 SVEXITAD 2CADR SERVEXIT 034935,000176: 034936,000177: 05,3476 00106 MODE70 DEC 70 B-14 034937,000178: 05,3477 00027 OCTAL27 OCT 27 034938,000179: 05,3500 00107 MODE71 DEC 71 B-14 034939,000180: 034940,000181: 05,3501 40640 DAPBITS OCT 40640 034941,000182: 034942,000183: 05,3502 00554 1DEGDB OCT 00554 034943,000184: 32,3533 BANK 32 034944,000185: 32,2000 SETLOC ABORTS 034945,000186: 32,2000 BANK 034946,000187: 034947,000188: 32,3533 COUNT* $$/P70 034948,000189: 034949,000190: 32,3533 34751 GOABORT CAF FOUR 034950,000191: 32,3534 55515 TS DVCNTR 034951,000192: 034952,000193: 32,3535 33743 CAF WHICHADR 034953,000194: 32,3536 55455 TS WHICH 034954,000195: 034955,000196: 32,3537 06042 TC INTPRET 034956,000197: 32,3540 43014 CLEAR CLEAR 034957,000198: 32,3541 04665 FLRCS 034958,000199: 32,3542 04265 FLUNDISP 034959,000200: 32,3543 43014 CLEAR SET 034960,000201: 32,3544 03670 IDLEFLAG 034961,000202: 32,3545 06464 ACC4-2FL 034962,000203: 32,3546 45014 SET CALL 034963,000204: 32,3547 04462 P7071FLG 034964,000205: 32,3550 61071 INITCDUW 034965,000206: 32,3551 77776 EXIT 034966,000207: 034967,000208: 32,3552 05321 TC CHECKMM 034968,000209: 32,3553 00106 70DEC DEC 70 B-14 034969,000210: 32,3554 13667 TCF P71RET 034970,000211: 034971,000212: 32,3555 06042 P70INIT TC INTPRET 034972,000213: 32,3556 77624 CALL 034973,000214: 32,3557 65716 TGOCOMP 034974,000215: 32,3560 54345 DLOAD SL 034975,000216: # Page 832 034976,000217: 32,3561 34003 MDOTDPS 034977,000218: 32,3562 20205 4D 034978,000219: 32,3563 77665 BDDV 034979,000220: 32,3564 01244 MASS 034980,000221: 32,3565 16271 STODL TBUP 034981,000222: 32,3566 01244 MASS 034982,000223: 32,3567 70471 DDV SR1 034983,000224: 32,3570 16015 K(1/DV) 034984,000225: 32,3571 03635 STORE 1/DV1 034985,000226: 32,3572 03637 STORE 1/DV2 034986,000227: 32,3573 03641 STORE 1/DV3 034987,000228: 32,3574 77665 BDDV 034988,000229: 32,3575 25742 K(AT) 034989,000230: 32,3576 16263 STODL AT 034990,000231: 32,3577 34015 100PCTTO 034991,000232: 32,3600 02267 STORE TTO 034992,000233: 32,3601 57535 SLOAD DCOMP 034993,000234: 32,3602 26002 DPSVEX 034994,000235: 32,3603 77702 SR2 034995,000236: 32,3604 36265 STCALL VE 034996,000237: 32,3605 60275 COMMINIT 034997,000238: 32,3606 77745 INJTARG DLOAD 034998,000239: 32,3607 02567 ABTRDOT 034999,000240: 32,3610 36273 STCALL RDOTD # INITIALZE ROOTD. 035000,000241: 32,3611 57313 YCOMP # COMPUTE Y 035001,000242: 32,3612 45246 ABS DSU 035002,000243: 32,3613 02565 YLIM # /Y/-DYMAX 035003,000244: 32,3614 75240 BMN SIGN # IF <0, XR<.5DEG, LEAVE YCO AT 0 035004,000245: 32,3615 65620 YOK # IF >0, FIX SIGN OF DEFICIT. THIS IS YCO. 035005,000246: 32,3616 02335 Y 035006,000247: 32,3617 03633 STORE YCO 035007,000248: 32,3620 45345 YOK DLOAD DSU 035008,000249: 32,3621 03633 YCO 035009,000250: 32,3622 02335 Y 035010,000251: 32,3623 77661 SR 035011,000252: 32,3624 20606 5D 035012,000253: 32,3625 03643 STORE XRANGE 035013,000254: 32,3626 45014 SET CALL 035014,000255: 32,3627 04461 FLVR 035015,000256: 32,3630 71554 THETCOMP 035016,000257: 32,3631 51025 DSU BPL 035017,000258: 32,3632 02561 THETCRIT 035018,000259: 32,3633 65637 +4 035019,000260: 32,3634 52175 VLOAD GOTO 035020,000261: 32,3635 02551 J1PARM 035021,000262: 32,3636 65642 STORPARM 035022,000263: 32,3637 43175 +4 VLOAD SET # IF J2 IS USED, SET THE 035023,000264: 32,3640 02555 J2PARM # ABORT TARGETING FLAG 035024,000265: 32,3641 04470 ABTTGFLG 035025,000266: 32,3642 16621 STORPARM STODL JPARM 035026,000267: # Page 833 035027,000268: 32,3643 03631 RCO 035028,000269: 32,3644 02625 STORE RP 035029,000270: 32,3645 77414 SET EXIT 035030,000271: 32,3646 04471 ROTFLAG 035031,000272: 035032,000273: 32,3647 03725 UPTHROT TC THROTUP 035033,000274: 035034,000275: 32,3650 05353 TC PHASCHNG 035035,000276: 32,3651 04024 OCT 04024 035036,000277: 035037,000278: 32,3652 05504 TC UPFLAG 035038,000279: 32,3653 00216 ADRES FLAP 035039,000280: 035040,000281: 32,3654 04616 UPTHROT1 TC BANKCALL # VERIFY THAT THE PANEL SWITCHES 035041,000282: 32,3655 73707 CADR P40AUTO # ARE PROPERLY SET. 035042,000283: 035043,000284: 32,3656 03725 TC THROTUP 035044,000285: 035045,000286: 32,3657 35027 CAF PRIO17 # LET SERVICER FINISH BEFORE CONNECTING 035046,000287: 32,3660 05146 TC PRIOCHNG # ASCENT GUIDANCE EQUATIONS. 035047,000288: 035048,000289: 32,3661 00006 EXTEND 035049,000290: 32,3662 33745 DCA ATMAGAD 035050,000291: 32,3663 53252 DXCH AVGEXIT 035051,000292: 035052,000293: 32,3664 05353 GRP4OFF TC PHASCHNG # TERMINATE USE OF GROUP 4. 035053,000294: 32,3665 00004 OCT 00004 035054,000295: 035055,000296: 32,3666 15155 TCF ENDOFJOB 035056,000297: 035057,000298: 32,3667 05516 P71RET TC DOWNFLAG 035058,000299: 32,3670 00215 ADRES LETABORT 035059,000300: 035060,000301: 32,3671 36000 CAF THRESH2 # SET DVMON THRESHOLD TO THE ASCENT VALUE. 035061,000302: 32,3672 55250 TS DVTHRUSH 035062,000303: 035063,000304: 32,3673 06042 TC INTPRET 035064,000305: 32,3674 77624 CALL 035065,000306: 32,3675 60251 P12INIT 035066,000307: 32,3676 45014 BON CALL 035067,000308: 32,3677 04707 FLAP 035068,000309: 32,3700 65704 OLDTIME 035069,000310: 32,3701 65716 TGOCOMP # IF FLAP=0, TGO=T-TIG 035070,000311: 32,3702 77650 GOTO 035071,000312: 32,3703 65606 INJTARG 035072,000313: 32,3704 72545 OLDTIME DLOAD SL1 # IF FLAP=1,GTO=2 TGO 035073,000314: 32,3705 03517 TGO 035074,000315: 32,3706 03502 STORE TGO1 035075,000316: 32,3707 77776 EXIT 035076,000317: 035077,000318: # Page 834 035078,000319: 32,3710 05353 TC PHASCHNG 035079,000320: 32,3711 04024 OCT 04024 035080,000321: 035081,000322: 32,3712 00006 EXTEND 035082,000323: 32,3713 31502 DCA TGO1 035083,000324: 32,3714 53517 DXCH TGO 035084,000325: 32,3715 13654 TCF UPTHROT1 035085,000326: 035086,000327: 32,3716 E7,1501 TGO1 = VGBODY 035087,000328: 035088,000329: # ************************************************************************* 035089,000330: 035090,000331: 21,2105 BANK 21 035091,000332: 21,2000 SETLOC R11 035092,000333: 21,2000 BANK 035093,000334: 21,2105 COUNT* $$/P70 035094,000335: 035095,000336: 21,2105 40774 LEGAL? CS MMNUMBER # IS THE DESIRED PGM ALREADY IN PROGRESS? 035096,000337: 21,2106 61010 AD MODREG 035097,000338: 21,2107 00006 EXTEND 035098,000339: 21,2110 12121 BZF ABORTALM 035099,000340: 035100,000341: 21,2111 40105 CS FLAGWRD9 # ARE THE ABORTS ENABLED? 035101,000342: 21,2112 74743 MASK LETABBIT 035102,000343: 21,2113 10000 CCS A 035103,000344: 21,2114 12121 TCF ABORTALM 035104,000345: 035105,000346: 21,2115 30103 CA FLAGWRD7 # IS SERVICER ON THE A1R7 035106,000347: 21,2116 74747 MASK AVEGFBIT 035107,000348: 21,2117 10000 CCS A 035108,000349: 21,2120 00002 TC Q # YES. ALL IS WELL. 035109,000350: 21,2121 04364 ABORTALM TC FALTON 035110,000351: 21,2122 04457 TC RELDSP 035111,000352: 21,2123 04635 TC POSTJUMP 035112,000353: 21,2124 21051 CADR PINBRNCH 035113,000354: 035114,000355: 32,3716 BANK 32 035115,000356: 32,2000 SETLOC ABORTS 035116,000357: 32,2000 BANK 035117,000358: 035118,000359: 32,3716 COUNT* $$/P70 035119,000360: 035120,000361: # ********************************************************************** 035121,000362: 035122,000363: 32,3716 45234 TGOCOMP RTB DSU 035123,000364: 32,3717 21574 LOADTIME 035124,000365: 32,3720 03442 TIG 035125,000366: 32,3721 77661 SL 035126,000367: 32,3722 20214 11D 035127,000368: 32,3723 03517 STORE TGO 035128,000369: # Page 835 035129,000370: 32,3724 77616 RVQ 035130,000371: 035131,000372: # ************************************************************************ 035132,000373: 035133,000374: 32,3725 34737 THROTUP CAF BIT13 035134,000375: 32,3726 54055 TS THRUST 035135,000376: 32,3727 34750 CAF BIT4 035136,000377: 32,3730 00006 EXTEND 035137,000378: 32,3731 05014 WOR CHAN14 035138,000379: 32,3732 00002 TC Q 035139,000380: 035140,000381: # ************************************************************************ 035141,000382: 035142,000383: 32,3733 00000 01750 10SECS 2DEC 1000 B-28 035143,000384: 32,3735 00021 33400 HINJECT 2DEC 18288 B-24 # 60,000 FEET EXPRESSED IN METERS. 035144,000385: 32,3737 11021 00000 (TGO)A 2DEC 37000 B-17 035145,000386: 32,3741 00507 25605 K(AT) 2DEC .02 # SCALING CONSTANT 035146,000387: 32,3743 02114 WHICHADR REMADR ABRTABLE 035147,000388: 035148,000389: # ************************************************************************ 035149,000390: 035150,000391: 32,3744 E7,1515 EBANK= DVCNTR 035151,000392: 32,3744 03372 70067 ATMAGAD 2CADR ATMAG End of include-file P70-P71.agc. Parent file is MAIN.agc