Source Code

033871,000001: # Copyright: Public domain. 033872,000002: # Filename: THE_LUNAR_LANDING.agc 033873,000003: # Purpose: Part of the source code for Luminary 1A build 099. 033874,000004: # It is part of the source code for the Lunar Module's (LM) 033875,000005: # Apollo Guidance Computer (AGC), for Apollo 11. 033876,000006: # Assembler: yaYUL 033877,000007: # Contact: Hartmuth Gutsche<hgutsche@xplornet.com>. 033878,000008: # Website: www.ibiblio.org/apollo. 033879,000009: # Pages: 785-792 033880,000010: # Mod history: 2009-05-20 HG Transcribed from page images. 033881,000011: 033882,000012: # This source code has been transcribed or otherwise adapted from 033883,000013: # digitized images of a hardcopy from the MIT Museum. The digitization 033884,000014: # was performed by Paul Fjeld, and arranged for by Deborah Douglas of 033885,000015: # the Museum. Many thanks to both. The images (with suitable reduction 033886,000016: # in storage size and consequent reduction in image quality as well) are 033887,000017: # available online at www.ibiblio.org/apollo. If for some reason you 033888,000018: # find that the images are illegible, contact me at info@sandroid.org 033889,000019: # about getting access to the (much) higher-quality images which Paul 033890,000020: # actually created. 033891,000021: 033892,000022: # Notations on the hardcopy document read, in part: 033893,000023: 033894,000024: # Assemble revision 001 of AGC program LMY99 by NASA 2021112-61 033895,000025: # 16:27 JULY 14, 1969 033896,000026: 033897,000027: # Page 785 033898,000028: 32,2776 BANK 32 033899,000029: 32,2000 SETLOC F2DPS*32 033900,000030: 32,2000 BANK 033901,000031: 033902,000032: 32,2776 E7,1621 EBANK= E2DPS 033903,000033: 033904,000034: # ************************************* 033905,000035: # P63: THE LUNAR LANDING, BRAKING PHASE 033906,000036: # ************************************* 033907,000037: 033908,000038: 32,2776 COUNT* $$/P63 033909,000039: 033910,000040: 32,2776 05353 P63LM TC PHASCHNG 033911,000041: 32,2777 04024 OCT 04024 033912,000042: 033913,000043: 32,3000 04616 TC BANKCALL # DO IMU STATUS CHECK ROUTINE R02 033914,000044: 32,3001 11254 CADR R02BOTH 033915,000045: 033916,000046: 32,3002 33253 CAF P63ADRES # INITIALIZE WHICH FOR BURNBABY 033917,000047: 32,3003 55455 TS WHICH 033918,000048: 033919,000049: 32,3004 32000 CAF DPSTHRSH # INITIALIZE DVMON 033920,000050: 32,3005 55251 TS DVTHRUSH 033921,000051: 32,3006 34751 CAF FOUR 033922,000052: 32,3007 55515 TS DVCNTR 033923,000053: 033924,000054: 32,3010 44753 CS ONE # INITIALIZE WCHPHASE AND FLPASS0 033925,000055: 32,3011 55351 TS WCHPHASE 033926,000056: 033927,000057: 32,3012 34755 CA ZERO 033928,000058: 32,3013 55623 TS FLPASS0 033929,000059: 033930,000060: 32,3014 44736 CS BIT14 033931,000061: 32,3015 00006 EXTEND 033932,000062: 32,3016 03012 WAND CHAN12 # REMOVE TRACK-ENABLE DISCRETE. 033933,000063: 033934,000064: 32,3017 06037 FLAGORGY TC INTPRET # DIONYSIAN FLAG WAVING 033935,000065: 32,3020 43014 CLEAR CLEAR 033936,000066: 32,3021 02663 NOTHROTL 033937,000067: 32,3022 03271 REDFLAG 033938,000068: 32,3023 43014 CLEAR SET 033939,000069: 32,3024 05660 LRBYPASS 033940,000070: 32,3025 03067 MUNFLAG 033941,000071: 32,3026 43014 CLEAR CLEAR 033942,000072: 32,3027 00266 P25FLAG # TERMINATE P25 IF IT IS RUNNING. 033943,000073: 32,3030 00270 RNDVZFLG # TERMINATE P20 IF IT IS RUNNING. 033944,000074: 033945,000075: # ******************************** 033946,000076: 033947,000077: 32,3031 77201 IGNALG SETPD VLOAD # FIRST SET UP INPUTS FOR RP-TO-R: 033948,000078: # Page 786 033949,000079: 32,3032 00001 0 # AT 0D LANDING SITE IN MOON FIXED FRAME 033950,000080: 32,3033 02023 RLS # AT 6D ESTIMATED TIME OF LANDING 033951,000081: 32,3034 41525 PDDL PUSH # MPAC NON-ZERO TO INDICATE LUNAR CASE 033952,000082: 32,3035 02401 TLAND 033953,000083: 32,3036 37625 STCALL TPIP # ALSO SET TPIP FOR FIRST GUIDANCE PASS 033954,000084: 32,3037 55716 RP-TO-R 033955,000085: 32,3040 64312 VSL4 MXV 033956,000086: 32,3041 01734 REFSMMAT 033957,000087: 32,3042 37635 STCALL LAND 033958,000088: 32,3043 46432 GUIDINIT # GUIDINIT INITIALIZES WM AND /LAND/ 033959,000089: 32,3044 45345 DLOAD DSU 033960,000090: 32,3045 02401 TLAND 033961,000091: 32,3046 25260 GUIDDURN 033962,000092: 32,3047 34041 STCALL TDEC1 # INTEGRATE STATE FORWARD TO THAT TIME 033963,000093: 32,3050 27057 LEMPREC 033964,000094: 32,3051 77331 SSP VLOAD 033965,000095: 32,3052 03647 NIGNLOOP 033966,000096: 32,3053 00050 40D 033967,000097: 32,3054 06520 UNITX 033968,000098: 32,3055 26603 STOVL CG 033969,000099: 32,3056 06516 UNITY 033970,000100: 32,3057 26611 STOVL CG +6 033971,000101: 32,3060 06514 UNITZ 033972,000102: 32,3061 16617 STODL CG +14 033973,000103: 32,3062 25256 99999CON 033974,000104: 32,3063 27665 STOVL DELTAH # INITIALIZE DELTAH FOR V16N68 DISPLAY 033975,000105: 32,3064 06522 ZEROVECS 033976,000106: 32,3065 17254 STODL UNFC/2 # INITIALIZE TRIM VELOCITY CORRECTION TERM 033977,000107: 32,3066 06522 HI6ZEROS 033978,000108: 32,3067 03643 STORE TTF/8 033979,000109: 033980,000110: 32,3070 77745 IGNALOOP DLOAD 033981,000111: 32,3071 00015 TAT 033982,000112: 32,3072 27561 STOVL PIPTIME1 033983,000113: 32,3073 00017 RATT1 033984,000114: 32,3074 64312 VSL4 MXV 033985,000115: 32,3075 01734 REFSMMAT 033986,000116: 32,3076 37521 STCALL R 033987,000117: 32,3077 67130 MUNGRAV 033988,000118: 32,3100 35237 STCALL GDT/2 033989,000119: 32,3101 62454 ?GUIDSUB # WHICH DELIVERS N PASSES OF GUIDANCE 033990,000120: 033991,000121: # DDUMCALC IS PROGRAMMED AS FOLLOWS: 033992,000122: # 2 ___ 033993,000123: # (RIGNZ - RGU )/16 + 16(RGU )KIGNY/B8 + (RGU - RIGNX)KIGNX/B4 + (ABVAL(VGU) - VIGN)KIGNV/B4 033994,000124: # 2 1 0 033995,000125: # DDUM = ------------------------------------------------------------------------------------------- 033996,000126: # 10 033997,000127: # 2 (VGU - 16 VGU KIGNX/B4) 033998,000128: # 2 0 033999,000129: # Page 787 new page is actually one line earlier but this would put the indices on a seperate line 034000,000130: # disconnected from their respective variables 034001,000131: # THE NUMERATOR IS SCALED IN METERS AT 2(28). THE DENOMINATOR IS A VELOCITY IN UNITS OF 2(10) M/CS. 034002,000132: # THE QUOTIENT IS THUS A TIME IN UNITS OF 2(18) CENTISECONDS. THE FINAL SHIFT RESCALES TO UNITS OF 2(28) CS. 034003,000133: # THERE IS NO DAMPING FACTOR. THE CONSTANTS KIGNX/B4, KIGNY/B8 AND KIGNV/B4 ARE ALL NEGATIVE IN SIGN. 034004,000134: 034005,000135: 32,3102 55646 DDUMCALC TS NIGNLOOP 034006,000136: 32,3103 06037 TC INTPRET 034007,000137: 32,3104 57345 DLOAD DMPR # FORM DENOMINATOR FIRST 034008,000138: 32,3105 03627 VGU 034009,000139: 32,3106 02501 KIGNX/B4 034010,000140: 32,3107 44232 SL4R BDSU 034011,000141: 32,3110 03633 VGU +4 034012,000142: 32,3111 45325 PDDL DSU 034013,000143: 32,3112 02477 RIGNZ 034014,000144: 32,3113 02643 RGU +4 034015,000145: 32,3114 65222 SR4R PDDL 034016,000146: 32,3115 02641 RGU +2 034017,000147: 32,3116 57316 DSQ DMPR 034018,000148: 32,3117 02503 KIGNY/B8 034019,000149: 32,3120 65232 SL4R PDDL 034020,000150: 32,3121 02637 RGU 034021,000151: 32,3122 57225 DSU DMPR 034022,000152: 32,3123 02475 RIGNX 034023,000153: 32,3124 02501 KIGNX/B4 034024,000154: 32,3125 51515 PDVL ABVAL 034025,000155: 32,3126 03627 VGU 034026,000156: 32,3127 57225 DSU DMPR 034027,000157: 32,3130 02473 VIGN 034028,000158: 32,3131 02505 KIGNV/B4 034029,000159: 32,3132 43215 DAD DAD 034030,000160: 32,3133 56215 DAD DDV 034031,000161: 32,3134 77661 SRR 034032,000162: 32,3135 21613 10D 034033,000163: 034034,000164: 32,3136 43206 PUSH DAD 034035,000165: 32,3137 03561 PIPTIME1 034036,000166: 32,3140 14041 STODL TDEC1 # STORE NEW GUESS FOR NEXT INTEGRATION 034037,000167: 32,3141 45246 ABS DSU 034038,000168: 32,3142 25262 DDUMCRIT 034039,000169: 32,3143 45040 BMN CALL 034040,000170: 32,3144 65163 DDUMGOOD 034041,000171: 32,3145 27414 INTSTALL 034042,000172: 32,3146 43014 SET SET 034043,000173: 32,3147 01473 INTYPFLG 034044,000174: 32,3150 00063 MOONFLAG 034045,000175: 32,3151 77745 DLOAD 034046,000176: 32,3152 03561 PIPTIME1 034047,000177: 32,3153 25517 STOVL TET # HOPEFULLY ?GUIDSUB DID NOT 034048,000178: 32,3154 00017 RATT1 # CLOBBER RATT1 AND VATT1 034049,000179: # Page 788 034050,000180: 32,3155 25535 STOVL RCV 034051,000181: 32,3156 00025 VATT1 034052,000182: 32,3157 35543 STCALL VCV 034053,000183: 32,3160 27107 INTEGRVS 034054,000184: 32,3161 77650 GOTO 034055,000185: 32,3162 65070 IGNALOOP 034056,000186: 034057,000187: 32,3163 54335 DDUMGOOD SLOAD SR 034058,000188: 32,3164 03423 ZOOMTIME 034059,000189: 32,3165 20617 14D 034060,000190: 32,3166 77621 BDSU 034061,000191: 32,3167 00041 TDEC1 034062,000192: 32,3170 27442 STOVL TIG # COMPUTE DISTANCE LANDING SITE WILL BE 034063,000193: 32,3171 03527 V # OUT OF LM'S ORBITAL PLANE AT IGNITION: 034064,000194: 32,3172 53435 VXV UNIT # SIGN IS + IF LANDING SITE IS TO THE 034065,000195: 32,3173 03521 R # RIGHT, NORTH; - IF TO THE LEFT, SOUTH. 034066,000196: 32,3174 72441 DOT SL1 034067,000197: 32,3175 03635 LAND 034068,000198: 32,3176 26627 R60INIT STOVL OUTOFPLN # INITIALIZATION FOR CALCMANU 034069,000199: 32,3177 03254 UNFC/2 034070,000200: 32,3200 02631 STORE R60VSAVE # STORE UNFC/2 TEMPORARILY IN R60SAVE 034071,000201: 32,3201 77776 EXIT 034072,000202: # ******************************************* 034073,000203: 034074,000204: 32,3202 05353 IGNALGRT TC PHASCHNG # PREVENT REPEATING IGNALG 034075,000205: 32,3203 04024 OCT 04024 034076,000206: 034077,000207: 32,3204 44362 ASTNCLOK CS ASTNDEX 034078,000208: 32,3205 04616 TC BANKCALL 034079,000209: 32,3206 74664 CADR STCLOK2 034080,000210: 32,3207 15155 TCF ENDOFJOB # RETURN IN NEW JOB AND IN EBANK FIVE 034081,000211: 034082,000212: 32,3210 06037 ASTNRET TC INTPRET 034083,000213: 32,3211 47131 SSP RTB # GO PICK UP DISPLAY AT END OF R51: 034084,000214: 32,3212 02747 QMAJ # "PROCEED" WILL DO A FINE ALIGNMENT 034085,000215: 32,3213 65215 FCADR P63SPOT2 # "ENTER" WILL RETURN TO P63SPOT2 034086,000216: 32,3214 31135 R51P63 034087,000217: 32,3215 53575 P63SPOT2 VLOAD UNIT # INITIALIZE KALCMANU FOR BURN ATTITUDE 034088,000218: 32,3216 02631 R60VSAVE 034089,000219: 32,3217 27773 STOVL POINTVSM 034090,000220: 32,3220 06520 UNITX 034091,000221: 32,3221 03765 STORE SCAXIS 034092,000222: 32,3222 77776 EXIT 034093,000223: 034094,000224: 32,3223 35016 CAF EBANK7 034095,000225: 32,3224 54003 TS EBANK 034096,000226: 034097,000227: 32,3225 00004 INHINT 034098,000228: 32,3226 04674 TC IBNKCALL 034099,000229: 32,3227 40142 CADR PFLITEDB 034100,000230: # Page 789 034101,000231: 32,3230 00003 RELINT 034102,000232: 034103,000233: 32,3231 04616 TC BANKCALL 034104,000234: 32,3232 54123 CADR R60LEM 034105,000235: 034106,000236: 32,3233 05353 TC PHASCHNG # PREVENT RECALLING R60 034107,000237: 32,3234 04024 OCT 04024 034108,000238: 034109,000239: 32,3235 34746 P63SPOT3 CA BIT6 # IS THE LR ANTENNA IN POSITION 1 YET 034110,000240: 32,3236 00006 EXTEND 034111,000241: 32,3237 02033 RAND CHAN33 034112,000242: 32,3240 00006 EXTEND 034113,000243: 32,3241 13247 BZF P63SPOT4 # BRANCH IF ANTENNA ALREADY IN POSITION 1 034114,000244: 034115,000245: 32,3242 33254 CAF CODE500 # ASTRONAUT: PLEASE CRANK THE 034116,000246: 32,3243 04616 TC BANKCALL # SILLY THING AROUND 034117,000247: 32,3244 20623 CADR GOPERF1 034118,000248: 32,3245 16001 TCF GOTOP00H # TERMINATE 034119,000249: 32,3246 13235 TCF P63SPOT3 # PROCEED SEE IF HE'S LYING 034120,000250: 034121,000251: 32,3247 04616 P63SPOT4 TC BANKCALL # ENTER INITIALIZE LANDING RADAR 034122,000252: 32,3250 67721 CADR SETPOS1 034123,000253: 034124,000254: 32,3251 04635 TC POSTJUMP # OFF TO SEE THE WIZARD ... 034125,000255: 32,3252 74126 CADR BURNBABY 034126,000256: 034127,000257: # --------------------------------- 034128,000258: 034129,000259: # CONSTANTS FOR P63LM AND IGNALG 034130,000260: 034131,000261: 32,3253 02076 P63ADRES GENADR P63TABLE 034132,000262: 034133,000263: 32,3254 4362 ASTNDEX = MD1 # OCT 25: INDEX FOR CLOKTASK 034134,000264: 034135,000265: 32,3254 00500 CODE500 OCT 00500 034136,000266: 034137,000267: 32,3255 00035 30373 99999CON 2DEC 30479.7 B-24 034138,000268: 034139,000269: 32,3257 00004 01610 GUIDDURN 2DEC +66440 B-28 # GUIDDURN +6.64400314 E+2 034140,000270: 32,3261 00000 00010 DDUMCRIT 2DEC +8 B-28 # CRITERION FOR IGNALG CONVERGENCE 034141,000271: 034142,000272: # Page 790 034143,000273: # -------------------------------- 034144,000274: 034145,000275: # Page 791 034146,000276: # ************************* 034147,000277: # P68: LANDING CONFIRMATION 034148,000278: # ************************* 034149,000279: 034150,000280: 31,2144 BANK 31 034151,000281: 31,2000 SETLOC F2DPS*31 034152,000282: 31,2000 BANK 034153,000283: 034154,000284: 31,2144 COUNT* $$/P6567 034155,000285: 034156,000286: 31,2144 05353 LANDJUNK TC PHASCHNG 034157,000287: 31,2145 04024 OCT 04024 034158,000288: 034159,000289: 31,2146 00004 INHINT 034160,000290: 31,2147 04616 TC BANKCALL # ZERO ATTITUDE ERROR 034161,000291: 31,2150 40153 CADR ZATTEROR 034162,000292: 034163,000293: 31,2151 04616 TC BANKCALL # SET 5 DEGREE DEADBAND 034164,000294: 31,2152 40127 CADR SETMAXDB 034165,000295: 034166,000296: 31,2153 06037 TC INTPRET # TO INTERPRETIVE AS TIME IS NOT CRITICAL 034167,000297: 31,2154 43014 SET CLEAR 034168,000298: 31,2155 04067 SURFFLAG 034169,000299: 31,2156 04666 LETABORT 034170,000300: 31,2157 77214 SET VLOAD 034171,000301: 31,2160 05062 APSFLAG 034172,000302: 31,2161 01221 RN 034173,000303: 31,2162 16032 STODL ALPHAV 034174,000304: 31,2163 01235 PIPTIME 034175,000305: 31,2164 45014 SET CALL 034176,000306: 31,2165 01463 LUNAFLAG 034177,000307: 31,2166 26351 LAT-LONG 034178,000308: 31,2167 77201 SETPD VLOAD # COMPUTE RLS AND STORE IT AWAY 034179,000309: 31,2170 00001 0 034180,000310: 31,2171 01221 RN 034181,000311: 31,2172 65352 VSL2 PDDL 034182,000312: 31,2173 01235 PIPTIME 034183,000313: 31,2174 45006 PUSH CALL 034184,000314: 31,2175 51670 R-TO-RP 034185,000315: 31,2176 02023 STORE RLS 034186,000316: 31,2177 77776 EXIT 034187,000317: 31,2200 32215 CAF V06N43* # ASTRONAUT: NOW LOOK WHERE TO ENDED UP 034188,000318: 31,2201 04616 TC BANKCALL 034189,000319: 31,2202 20476 CADR GOFLASH 034190,000320: 31,2203 16001 TCF GOTOP00H # TERMINATE 034191,000321: 31,2204 12206 TCF +2 # PROCEED 034192,000322: 31,2205 12200 TCF -5 # RECYCLE 034193,000323: 034194,000324: 31,2206 06037 TC INTPRET 034195,000325: # Page 792 034196,000326: 31,2207 77775 VLOAD # INITIALIZE GSAV AND (USING REFMF) 034197,000327: 31,2210 06520 UNITX # YNBSAV, ZNBSAV AND ATTFLAG FOR P57 034198,000328: 31,2211 36231 STCALL GSAV 034199,000329: 31,2212 33506 REFMF 034200,000330: 31,2213 77776 EXIT 034201,000331: 034202,000332: 31,2214 16001 TCF GOTOP00H # ASTRONAUT: PLEASE SELECT P57 034203,000333: 034204,000334: 31,2215 01453 V06N43* VN 0643 034205,000335: End of include-file THE_LUNAR_LANDING.agc. Parent file is MAIN.agc