Source Code

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