Source Code

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