Source Code

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