Source Code

032769,000001: # Copyright: Public domain. 032770,000002: # Filename: THE_LUNAR_LANDING.agc 032771,000003: # Purpose: A section of Luminary 1C, revision 131. 032772,000004: # It is part of the source code for the Lunar Module's (LM) 032773,000005: # Apollo Guidance Computer (AGC) for Apollo 13 and Apollo 14. 032774,000006: # This file is intended to be a faithful transcription, except 032775,000007: # that the code format has been changed to conform to the 032776,000008: # requirements of the yaYUL assembler rather than the 032777,000009: # original YUL assembler. 032778,000010: # Reference: pp. 785-792 of 1729.pdf. 032779,000011: # Contact: Ron Burkey <info@sandroid.org>. 032780,000012: # Website: www.ibiblio.org/apollo/index.html 032781,000013: # Mod history: 05/25/03 RSB. Began transcribing. 032782,000014: # 05/14/05 RSB Corrected website reference above. 032783,000015: 032784,000016: # Page 785 032785,000017: 32,3000 BANK 32 032786,000018: 32,2000 SETLOC F2DPS*32 032787,000019: 32,2000 BANK 032788,000020: 032789,000021: 32,3000 E7,1621 EBANK= E2DPS 032790,000022: 032791,000023: # ************************************* 032792,000024: # P63: THE LUNAR LANDING, BRAKING PHASE 032793,000025: # ************************************* 032794,000026: 032795,000027: 32,3000 COUNT* $$/P63 032796,000028: 032797,000029: 32,3000 05353 P63LM TC PHASCHNG 032798,000030: 32,3001 04024 OCT 04024 032799,000031: 032800,000032: 32,3002 04616 TC BANKCALL # DO IMU STATUS CHECK ROUTINE R02 032801,000033: 32,3003 11233 CADR R02BOTH 032802,000034: 032803,000035: 32,3004 33255 CAF P63ADRES # INITIALIZE WHICH FOR BURNBABY 032804,000036: 32,3005 55455 TS WHICH 032805,000037: 032806,000038: 32,3006 32000 CAF DPSTHRSH # INITIALIZE DVMON 032807,000039: 32,3007 55250 TS DVTHRUSH 032808,000040: 32,3010 34751 CAF FOUR 032809,000041: 32,3011 55515 TS DVCNTR 032810,000042: 032811,000043: 32,3012 44753 CS ONE # INITIALIZE WCHPHASE AND FLPASS0 032812,000044: 32,3013 55346 TS WCHPHASE 032813,000045: 032814,000046: 32,3014 34755 CA ZERO 032815,000047: 32,3015 55623 TS FLPASS0 032816,000048: 032817,000049: 32,3016 44736 CS BIT14 032818,000050: 32,3017 00006 EXTEND 032819,000051: 32,3020 03012 WAND CHAN12 # REMOVE TRACK-ENABLE DISCRETE. 032820,000052: 032821,000053: 32,3021 06042 FLAGORGY TC INTPRET # DIONYSIAN FLAG WAVING 032822,000054: 32,3022 43014 CLEAR CLEAR 032823,000055: 32,3023 02663 NOTHROTL 032824,000056: 32,3024 03271 REDFLAG 032825,000057: 32,3025 43014 CLEAR SET 032826,000058: 32,3026 05660 LRBYPASS 032827,000059: 32,3027 03067 MUNFLAG 032828,000060: 32,3030 43014 CLEAR CLEAR 032829,000061: 32,3031 00266 P25FLAG # TERMINATE P25 IF IT IS RUNNING. 032830,000062: 32,3032 00270 RNDVZFLG # TERMINATE P20 IF IT IS RUNNING. 032831,000063: 032832,000064: # ******************************** 032833,000065: 032834,000066: 32,3033 77201 IGNALG SETPD VLOAD # FIRST SET UP INPUTS FOR RP-TO-R: 032835,000067: # Page 786 032836,000068: 32,3034 00001 0 # AT 0D LANDING SITE IN MOON FIXED FRAME 032837,000069: 32,3035 02023 RLS # AT 6D ESTIMATED TIME OF LANDING 032838,000070: 32,3036 41525 PDDL PUSH # MPAC NON-ZERO TO INDICATE LUNAR CASE 032839,000071: 32,3037 02401 TLAND 032840,000072: 32,3040 37625 STCALL TPIP # ALSO SET TPIP FOR FIRST GUIDANCE PASS 032841,000073: 32,3041 55716 RP-TO-R 032842,000074: 32,3042 64312 VSL4 MXV 032843,000075: 32,3043 01734 REFSMMAT 032844,000076: 32,3044 37635 STCALL LAND 032845,000077: 32,3045 71343 GUIDINIT # GUIDINIT INITIALIZES WM AND /LAND/ 032846,000078: 32,3046 45345 DLOAD DSU 032847,000079: 32,3047 02401 TLAND 032848,000080: 32,3050 25262 GUIDDURN 032849,000081: 32,3051 34041 STCALL TDEC1 # INTEGRATE STATE FORWARD TO THAT TIME 032850,000082: 32,3052 27056 LEMPREC 032851,000083: 32,3053 77331 SSP VLOAD 032852,000084: 32,3054 03647 NIGNLOOP 032853,000085: 32,3055 00050 40D 032854,000086: 32,3056 06522 UNITX 032855,000087: 32,3057 26575 STOVL CG 032856,000088: 32,3060 06520 UNITY 032857,000089: 32,3061 26603 STOVL CG +6 032858,000090: 32,3062 06516 UNITZ 032859,000091: 32,3063 16611 STODL CG +14 032860,000092: 32,3064 25260 99999CON 032861,000093: 32,3065 27665 STOVL DELTAH # INITIALIZE DELTAH FOR V16N68 DISPLAY 032862,000094: 32,3066 06524 ZEROVECS 032863,000095: 32,3067 17253 STODL UNFC/2 # INITIALIZE TRIM VELOCITY CORRECTION TERM 032864,000096: 32,3070 06524 HI6ZEROS 032865,000097: 32,3071 03643 STORE TTF/8 032866,000098: 032867,000099: 32,3072 77745 IGNALOOP DLOAD 032868,000100: 32,3073 00015 TAT 032869,000101: 32,3074 27561 STOVL PIPTIME1 032870,000102: 32,3075 00017 RATT1 032871,000103: 32,3076 64312 VSL4 MXV 032872,000104: 32,3077 01734 REFSMMAT 032873,000105: 32,3100 37521 STCALL R 032874,000106: 32,3101 67067 MUNGRAV 032875,000107: 32,3102 35236 STCALL GDT/2 032876,000108: 32,3103 62415 ?GUIDSUB # WHICH DELIVERS N PASSES OF GUIDANCE 032877,000109: 032878,000110: # DDUMCALC IS PROGRAMMED AS FOLLOWS: 032879,000111: # 2 ___ 032880,000112: # (RIGNZ - RGU )/16 + 16(RGU )KIGNY/B8 + (RGU - RIGNX)KIGNX/B4 + (ABVAL(VGU) - VIGN)KIGNV/B4 032881,000113: # 2 1 0 032882,000114: # DDUM = ------------------------------------------------------------------------------------------- 032883,000115: # 10 032884,000116: # 2 (VGU - 16 VGU KIGNX/B4) 032885,000117: # 2 0 032886,000118: # Page 787 032887,000119: # THE NUMERATOR IS SCALED IN METERS AT 2(28). THE DENOMINATOR IS A VELOCITY IN UNITS OF 2(10) M/CS. 032888,000120: # THE QUOTIENT IS THUS A TIME IN UNITS OF 2(18) CENTISECONDS. THE FINAL SHIFT RESCALES TO UNITS OF 2(28) CS. 032889,000121: # THERE IS NO DAMPING FACTOR. THE CONSTANTS KIGNX/B4, KIGNY/88 AND KIGNV/B4 ARE ALL NEGATIVE IN SIGN. 032890,000122: 032891,000123: 32,3104 55646 DDUMCALC TS NIGNLOOP 032892,000124: 32,3105 06042 TC INTPRET 032893,000125: 32,3106 57345 DLOAD DMPR # FORM DENOMINATOR FIRST 032894,000126: 32,3107 03627 VGU 032895,000127: 32,3110 02501 KIGNX/B4 032896,000128: 32,3111 44232 SL4R BDSU 032897,000129: 32,3112 03633 VGU +4 032898,000130: 32,3113 45325 PDDL DSU 032899,000131: 32,3114 02477 RIGNZ 032900,000132: 32,3115 02633 RGU +4 032901,000133: 32,3116 65222 SR4R PDDL 032902,000134: 32,3117 02631 RGU +2 032903,000135: 32,3120 57316 DSQ DMPR 032904,000136: 32,3121 02503 KIGNY/B8 032905,000137: 32,3122 65232 SL4R PDDL 032906,000138: 32,3123 02627 RGU 032907,000139: 32,3124 57225 DSU DMPR 032908,000140: 32,3125 02475 RIGNX 032909,000141: 32,3126 02501 KIGNX/B4 032910,000142: 32,3127 51515 PDVL ABVAL 032911,000143: 32,3130 03627 VGU 032912,000144: 32,3131 57225 DSU DMPR 032913,000145: 32,3132 02473 VIGN 032914,000146: 32,3133 02505 KIGNV/B4 032915,000147: 32,3134 43215 DAD DAD 032916,000148: 32,3135 56215 DAD DDV 032917,000149: 32,3136 77661 SRR 032918,000150: 32,3137 21613 10D 032919,000151: 032920,000152: 32,3140 43206 PUSH DAD 032921,000153: 32,3141 03561 PIPTIME1 032922,000154: 32,3142 14041 STODL TDEC1 # STORE NEW GUESS FOR NEXT INTEGRATION 032923,000155: 32,3143 45246 ABS DSU 032924,000156: 32,3144 25264 DDUMCRIT 032925,000157: 32,3145 45040 BMN CALL 032926,000158: 32,3146 65165 DDUMGOOD 032927,000159: 32,3147 27410 INTSTALL 032928,000160: 32,3150 43014 SET SET 032929,000161: 32,3151 01473 INTYPFLG 032930,000162: 32,3152 00063 MOONFLAG 032931,000163: 32,3153 77745 DLOAD 032932,000164: 32,3154 03561 PIPTIME1 032933,000165: 32,3155 25517 STOVL TET # HOPEFULLY ?GUIDSUB DID NOT 032934,000166: 32,3156 00017 RATT1 # CLOBBER RATT1 AND VATT1 032935,000167: # Page 788 032936,000168: 32,3157 25535 STOVL RCV 032937,000169: 32,3160 00025 VATT1 032938,000170: 32,3161 35543 STCALL VCV 032939,000171: 32,3162 27106 INTEGRVS 032940,000172: 32,3163 77650 GOTO 032941,000173: 32,3164 65072 IGNALOOP 032942,000174: 032943,000175: 32,3165 54335 DDUMGOOD SLOAD SR 032944,000176: 32,3166 03423 ZOOMTIME 032945,000177: 32,3167 20617 14D 032946,000178: 32,3170 77621 BDSU 032947,000179: 32,3171 00041 TDEC1 032948,000180: 32,3172 27442 STOVL TIG # COMPUTE DISTANCE LANDING SITE WILL BE 032949,000181: 32,3173 03527 V # OUT OF LM'S ORBITAL PLANE AT IGNITION: 032950,000182: 32,3174 53435 VXV UNIT # SIGN IS + IF LANDING SITE IS TO THE 032951,000183: 32,3175 03521 R # RIGHT, NORTH; IF TO THE LEFT, SOUTH. 032952,000184: 32,3176 72441 DOT SL1 032953,000185: 32,3177 03635 LAND 032954,000186: 32,3200 26617 R60INIT STOVL OUTOFPLN # INITIALIZATION FOR CALCMANU 032955,000187: 32,3201 03253 UNFC/2 032956,000188: 32,3202 02621 STORE R60VSAVE # STORE UNFC/2 TEMPORARILY IN R60SAVE 032957,000189: 32,3203 77776 EXIT 032958,000190: # ******************************************* 032959,000191: 032960,000192: 32,3204 05353 IGNALGRT TC PHASCHNG # PREVENT REPEATING IGNALG 032961,000193: 32,3205 04024 OCT 04024 032962,000194: 032963,000195: 32,3206 44362 ASTNCLOK CS ASTNDEX 032964,000196: 32,3207 04616 TC BANKCALL 032965,000197: 32,3210 74670 CADR STCLOK2 032966,000198: 32,3211 15155 TCF ENDOFJOB # RETURN IN NEW JOB AND IN EBANK FIVE 032967,000199: 032968,000200: 32,3212 06042 ASTNRET TC INTPRET 032969,000201: 32,3213 47131 SSP RTB # GO PICK UP DISPLAY AT END OF R51: 032970,000202: 32,3214 02747 QMAJ # "PROCEED" WILL DO A FINE ALIGNMENT 032971,000203: 32,3215 65217 FCADR P63SPOT2 # "ENTER" WILL RETURN TO P63SPOT2 032972,000204: 32,3216 31127 R51P63 032973,000205: 32,3217 53575 P63SPOT2 VLOAD UNIT # INITIALIZE KALCMANU FOR BURN ATTITUDE 032974,000206: 32,3220 02621 R60VSAVE 032975,000207: 32,3221 27773 STOVL POINTVSM 032976,000208: 32,3222 06522 UNITX 032977,000209: 32,3223 03765 STORE SCAXIS 032978,000210: 32,3224 77776 EXIT 032979,000211: 032980,000212: 32,3225 35016 CAF EBANK7 032981,000213: 32,3226 54003 TS EBANK 032982,000214: 032983,000215: 32,3227 00004 INHINT 032984,000216: 32,3230 04674 TC IBNKCALL 032985,000217: 32,3231 40143 CADR PFLITEDB 032986,000218: # Page 789 032987,000219: 32,3232 00003 RELINT 032988,000220: 032989,000221: 32,3233 04616 TC BANKCALL 032990,000222: 32,3234 54123 CADR R60LEM 032991,000223: 032992,000224: 32,3235 05353 TC PHASCHNG # PREVENT RECALLINE R60 032993,000225: 32,3236 04024 OCT 04024 032994,000226: 032995,000227: 32,3237 34746 P63SPOT3 CA BIT6 # IS THE LR ANTENNA IN POSITION 1 YET 032996,000228: 32,3240 00006 EXTEND 032997,000229: 32,3241 02033 RAND CHAN33 032998,000230: 32,3242 00006 EXTEND 032999,000231: 32,3243 13251 BZF P63SPOT4 # BRANCH IF ANTENNA ALREADY IN POSITION 1 033000,000232: 033001,000233: 32,3244 33256 CAF CODE500 # ASTRONAUT: PLEASE CRANK THE 033002,000234: 32,3245 04616 TC BANKCALL # SILLY THING AROUND 033003,000235: 32,3246 20624 CADR GOPERF1 033004,000236: 32,3247 16001 TCF GOTOP00H # TERMINATE 033005,000237: 32,3250 13237 TCF P63SPOT3 # PROCEED SEE IF HE'S LYING 033006,000238: 033007,000239: 32,3251 04616 P63SPOT4 TC BANKCALL # ENTER INITIALIZE LANDING RADAR 033008,000240: 32,3252 67701 CADR SETPOS1 033009,000241: 033010,000242: 32,3253 04635 TC POSTJUMP # OFF TO SEE THE WIZARD ... 033011,000243: 32,3254 74130 CADR BURNBABY 033012,000244: 033013,000245: # --------------------------------- 033014,000246: 033015,000247: # CONSTANTS FOR P63LM AND IGNALG 033016,000248: 033017,000249: 32,3255 02100 P63ADRES GENADR P63TABLE 033018,000250: 033019,000251: 32,3256 4362 ASTNDEX = MD1 # OCT 25: INDEX FOR CLOKTASK 033020,000252: 033021,000253: 32,3256 00500 CODE500 OCT 00500 033022,000254: 033023,000255: 32,3257 00035 30373 99999CON 2DEC 30479.7 B-24 033024,000256: 033025,000257: 32,3261 00004 01610 GUIDDURN 2DEC +66440 B-28 # GUIDDURN +6.64400314 E+2 033026,000258: 32,3263 00000 00010 DDUMCRIT 2DEC +8 B-28 # CRITERION FOR IGNALG CONVERGENCE 033027,000259: 033028,000260: # Page 790 033029,000261: # -------------------------------- 033030,000262: 033031,000263: # Page 791 033032,000264: # ************************* 033033,000265: # P68: LANDING CONFIRMATION 033034,000266: # ************************* 033035,000267: 033036,000268: 34,3271 BANK 34 033037,000269: 34,2000 SETLOC F2DPS*34 033038,000270: 34,2000 BANK 033039,000271: 033040,000272: 34,3271 COUNT* $$/P6567 033041,000273: 033042,000274: 34,3271 05353 LANDJUNK TC PHASCHNG 033043,000275: 34,3272 04024 OCT 04024 033044,000276: 033045,000277: 34,3273 00004 INHINT 033046,000278: 34,3274 04616 TC BANKCALL # ZERO ATTITUDE ERROR 033047,000279: 34,3275 40154 CADR ZATTEROR 033048,000280: 033049,000281: 34,3276 06042 TC INTPRET # TO INTERPRETATIVE AS TIME IS NOT CRITICAL 033050,000282: 34,3277 77614 SET # PREVENT RCS JET FIRINGS IF MOD CONT IS 033051,000283: 34,3300 06460 PULSEFLG # IN ATT HOLD 033052,000284: 34,3301 43014 SET CLEAR 033053,000285: 34,3302 04067 SURFFLAG 033054,000286: 34,3303 04666 LETABORT 033055,000287: 34,3304 77214 SET VLOAD 033056,000288: 34,3305 05062 APSFLAG 033057,000289: 34,3306 01220 RN 033058,000290: 34,3307 16032 STODL ALPHAV 033059,000291: 34,3310 01234 PIPTIME 033060,000292: 34,3311 45014 SET CALL 033061,000293: 34,3312 01463 LUNAFLAG 033062,000294: 34,3313 26347 LAT-LONG 033063,000295: 34,3314 77201 SETPD VLOAD # COMPUTE RLS AND STORE IT AWAY 033064,000296: 34,3315 00001 0 033065,000297: 34,3316 01220 RN 033066,000298: 34,3317 65352 VSL2 PDDL 033067,000299: 34,3320 01234 PIPTIME 033068,000300: 34,3321 45006 PUSH CALL 033069,000301: 34,3322 51700 R-TO-RP 033070,000302: 34,3323 02023 STORE RLS 033071,000303: 34,3324 77776 EXIT 033072,000304: 34,3325 33342 CAF V06N43* # ASTRONAUT: NOW LOOK WHERE TO ENDED UP 033073,000305: 34,3326 04616 TC BANKCALL 033074,000306: 34,3327 20477 CADR GOFLASH 033075,000307: 34,3330 16001 TCF GOTOP00H # TERMINATE 033076,000308: 34,3331 13333 TCF +2 # PROCEED 033077,000309: 34,3332 13325 TCF -5 # RECYCLE 033078,000310: 033079,000311: 34,3333 06042 TC INTPRET 033080,000312: 34,3334 77775 VLOAD # INITIALIZE GSAV AND (USING REFMF) 033081,000313: # Page 792 033082,000314: 34,3335 06522 UNITX # YNBSAV, ZNBSAV AND ATTFLAG FOR P57 033083,000315: 34,3336 36231 STCALL GSAV 033084,000316: 34,3337 33471 REFMF 033085,000317: 34,3340 77776 EXIT 033086,000318: 033087,000319: 34,3341 16001 TCF GOTOP00H # ASTRONAUT: PLEASE SELECT P57 033088,000320: 033089,000321: 34,3342 01453 V06N43* VN 0643 033090,000322: End of include-file THE_LUNAR_LANDING.agc. Parent file is MAIN.agc