Source Code
![]() |
These source-code files were from the printout at the MIT Museum, with many thanks
to Deborah Douglas, the Museum's Curator of Science and Technology, for releasing
it to us. The printout was digitally photographed by Paul Fjeld. A team of
volunteers transcribed the source code manually from these images or, where
appropriate, modified already-transcribed but similar source Luminary 131 (Apollo 13)
source code to agree with the images from the printout. Note that the page images
presented online are of reduced quality, and that higher-quality images
are available. Report any conversion errors or legibility
problems in page images to info@sandroid.org.
Notations on the program listing read, in part:GAP: ASSEMBLE REVISION 001 OF AGC PROGRAM LMY99 BY NASA 2021112-061 20'35 OCT. 28,1968Note that the date is the date of the printout, not the date of the program revision. |
034071,000002: ## Copyright: Public domain.
034072,000003: ## Filename: THE_LUNAR_LANDING.agc
034073,000004: ## Purpose: Part of the source code for Luminary 1A build 099.
034074,000005: ## It is part of the source code for the Lunar Module's (LM)
034075,000006: ## Apollo Guidance Computer (AGC), for Apollo 11.
034076,000007: ## Assembler: yaYUL
034077,000008: ## Contact: Hartmuth Gutsche<hgutsche@xplornet.com>.
034078,000009: ## Website: www.ibiblio.org/apollo.
034079,000010: ## Pages: 785-792
034080,000011: ## Mod history: 2009-05-20 HG Transcribed from page images.
034081,000012: ## 2016-12-13 RSB GOTOP00H -> GOTOPOOH
034082,000013: ## 2016-12-16 RSB Proofed text comments with octopus/ProoferComments
034083,000014: ## and corrected the errors found.
034084,000015: ## 2017-03-13 RSB Comment-text fixes noted in proofing Luminary 116.
034085,000016: ## 2017-03-16 RSB Comment-text fixes identified in 5-way
034086,000017: ## side-by-side diff of Luminary 69/99/116/131/210.
034087,000018:
034088,000019: ## This source code has been transcribed or otherwise adapted from
034089,000020: ## digitized images of a hardcopy from the MIT Museum. The digitization
034090,000021: ## was performed by Paul Fjeld, and arranged for by Deborah Douglas of
034091,000022: ## the Museum. Many thanks to both. The images (with suitable reduction
034092,000023: ## in storage size and consequent reduction in image quality as well) are
034093,000024: ## available online at www.ibiblio.org/apollo. If for some reason you
034094,000025: ## find that the images are illegible, contact me at info@sandroid.org
034095,000026: ## about getting access to the (much) higher-quality images which Paul
034096,000027: ## actually created.
034097,000028: ##
034098,000029: ## Notations on the hardcopy document read, in part:
034099,000030: ##
034100,000031: ## Assemble revision 001 of AGC program LMY99 by NASA 2021112-61
034101,000032: ## 16:27 JULY 14, 1969
034102,000033:
![]() |
Page 785 |
034104,000035: 32,2776 BANK 32
034105,000036: 32,2000 SETLOC F2DPS*32
034106,000037: 32,2000 BANK
034107,000038:
034108,000039: 32,2776 E7,1621 EBANK= E2DPS
034109,000040:
034110,000041: # ****************************************
034111,000042: # P63: THE LUNAR LANDING, BRAKING PHASE
034112,000043: # ****************************************
034113,000044:
034114,000045: 32,2776 COUNT* $$/P63
034115,000046:
034116,000047: 32,2776 05353 P63LM TC PHASCHNG
034117,000048: 32,2777 04024 OCT 04024
034118,000049:
034119,000050: 32,3000 04616 TC BANKCALL # DO IMU STATUS CHECK ROUTINE R02
034120,000051: 32,3001 11254 CADR R02BOTH
034121,000052:
034122,000053: 32,3002 33253 CAF P63ADRES # INITIALIZE WHICH FOR BURNBABY
034123,000054: 32,3003 55455 TS WHICH
034124,000055:
034125,000056: 32,3004 32000 CAF DPSTHRSH # INITIALIZE DVMON
034126,000057: 32,3005 55251 TS DVTHRUSH
034127,000058: 32,3006 34751 CAF FOUR
034128,000059: 32,3007 55515 TS DVCNTR
034129,000060:
034130,000061: 32,3010 44753 CS ONE # INITIALIZE WCHPHASE AND FLPASSO
034131,000062: 32,3011 55351 TS WCHPHASE
034132,000063:
034133,000064: 32,3012 34755 CA ZERO
034134,000065: 32,3013 55623 TS FLPASS0
034135,000066:
034136,000067: 32,3014 44736 CS BIT14
034137,000068: 32,3015 00006 EXTEND
034138,000069: 32,3016 03012 WAND CHAN12 # REMOVE TRACK-ENABLE DISCRETE.
034139,000070:
034140,000071: 32,3017 06037 FLAGORGY TC INTPRET # DIONYSIAN FLAG WAVING
034141,000072: 32,3020 43014 CLEAR CLEAR
034142,000073: 32,3021 02663 NOTHROTL
034143,000074: 32,3022 03271 REDFLAG
034144,000075: 32,3023 43014 CLEAR SET
034145,000076: 32,3024 05660 LRBYPASS
034146,000077: 32,3025 03067 MUNFLAG
034147,000078: 32,3026 43014 CLEAR CLEAR
034148,000079: 32,3027 00266 P25FLAG # TERMINATE P25 IF IT IS RUNNING.
034149,000080: 32,3030 00270 RNDVZFLG # TERMINATE P20 IF IT IS RUNNING
034150,000081:
034151,000082: # ****************************************
034152,000083:
034153,000084: 32,3031 77201 IGNALG SETPD VLOAD # FIRST SET UP INPUTS FOR RP-TO-R:-
![]() |
Page 786 |
034155,000086: 32,3032 00001 0 # AT 0D LANDING SITE IN MOON FIXED FRAME
034156,000087: 32,3033 02023 RLS # AT 6D ESTIMATED TIME OF LANDING
034157,000088: 32,3034 41525 PDDL PUSH # MPAC NON-ZERO TO INDICATE LUNAR CASE
034158,000089: 32,3035 02401 TLAND
034159,000090: 32,3036 37625 STCALL TPIP # ALSO SET TPIP FOR FIRST GUIDANCE PASS
034160,000091: 32,3037 55716 RP-TO-R
034161,000092: 32,3040 64312 VSL4 MXV
034162,000093: 32,3041 01734 REFSMMAT
034163,000094: 32,3042 37635 STCALL LAND
034164,000095: 32,3043 46432 GUIDINIT # GUIDINIT INITIALIZES WM AND /LAND/
034165,000096: 32,3044 45345 DLOAD DSU
034166,000097: 32,3045 02401 TLAND
034167,000098: 32,3046 25260 GUIDDURN
034168,000099: 32,3047 34041 STCALL TDEC1 # INTEGRATE STATE FORWARD TO THAT TIME
034169,000100: 32,3050 27057 LEMPREC
034170,000101: 32,3051 77331 SSP VLOAD
034171,000102: 32,3052 03647 NIGNLOOP
034172,000103: 32,3053 00050 40D
034173,000104: 32,3054 06520 UNITX
034174,000105: 32,3055 26603 STOVL CG
034175,000106: 32,3056 06516 UNITY
034176,000107: 32,3057 26611 STOVL CG +6
034177,000108: 32,3060 06514 UNITZ
034178,000109: 32,3061 16617 STODL CG +14
034179,000110: 32,3062 25256 99999CON
034180,000111: 32,3063 27665 STOVL DELTAH # INITIALIZE DELTAH FOR V16N68 DISPLAY
034181,000112: 32,3064 06522 ZEROVECS
034182,000113: 32,3065 17254 STODL UNFC/2 # INITIALIZE TRIM VELOCITY CORRECTION TERM
034183,000114: 32,3066 06522 HI6ZEROS
034184,000115: 32,3067 03643 STORE TTF/8
034185,000116:
034186,000117: 32,3070 77745 IGNALOOP DLOAD
034187,000118: 32,3071 00015 TAT
034188,000119: 32,3072 27561 STOVL PIPTIME1
034189,000120: 32,3073 00017 RATT1
034190,000121: 32,3074 64312 VSL4 MXV
034191,000122: 32,3075 01734 REFSMMAT
034192,000123: 32,3076 37521 STCALL R
034193,000124: 32,3077 67130 MUNGRAV
034194,000125: 32,3100 35237 STCALL GDT/2
034195,000126: 32,3101 62454 ?GUIDSUB # WHICH DELIVERS N PASSES OF GUIDANCE
034196,000127:
034197,000128: # DDUMCALC IS PROGRAMMED AS FOLLOWS:-
034198,000129: # 2 -
034199,000130: # (RIGNZ - RGU )/16 + 16(RGU )KIGNY/B8 + (RGU - RIGNX)KIGNX/B4 + (ABVAL(VGU) - VIGN)KIGNV/B4
034200,000131: # 2 1 0
034201,000132: # DDUM = -------------------------------------------------------------------------------------------
034202,000133: # 10
034203,000134: # 2 (VGU - 16 VGU KIGNX/B4)
![]() |
Page 787 |
034205,000136: # 2 0
034206,000137: # THE NUMERATOR IS SCALED IN METERS AT 2(28). THE DENOMINATOR IS A VELOCITY IN UNITS OF 2(10) M/CS.
034207,000138: # THE QUOTIENT IS THUS A TIME IN UNITS OF 2(18) CENTISECONDS. THE FINAL SHIFT RESCALES TO UNITS OF 2(28) CS.
034208,000139: # THERE IS NO DAMPING FACTOR. THE CONSTANTS KIGNX/B4, KIGNY/B8 AND KIGNV/B4 ARE ALL NEGATIVE IN SIGN.
034209,000140:
034210,000141: 32,3102 55646 DDUMCALC TS NIGNLOOP
034211,000142: 32,3103 06037 TC INTPRET
034212,000143: 32,3104 57345 DLOAD DMPR # FORM DENOMINATOR FIRST
034213,000144: 32,3105 03627 VGU
034214,000145: 32,3106 02501 KIGNX/B4
034215,000146: 32,3107 44232 SL4R BDSU
034216,000147: 32,3110 03633 VGU +4
034217,000148: 32,3111 45325 PDDL DSU
034218,000149: 32,3112 02477 RIGNZ
034219,000150: 32,3113 02643 RGU +4
034220,000151: 32,3114 65222 SR4R PDDL
034221,000152: 32,3115 02641 RGU +2
034222,000153: 32,3116 57316 DSQ DMPR
034223,000154: 32,3117 02503 KIGNY/B8
034224,000155: 32,3120 65232 SL4R PDDL
034225,000156: 32,3121 02637 RGU
034226,000157: 32,3122 57225 DSU DMPR
034227,000158: 32,3123 02475 RIGNX
034228,000159: 32,3124 02501 KIGNX/B4
034229,000160: 32,3125 51515 PDVL ABVAL
034230,000161: 32,3126 03627 VGU
034231,000162: 32,3127 57225 DSU DMPR
034232,000163: 32,3130 02473 VIGN
034233,000164: 32,3131 02505 KIGNV/B4
034234,000165: 32,3132 43215 DAD DAD
034235,000166: 32,3133 56215 DAD DDV
034236,000167: 32,3134 77661 SRR
034237,000168: 32,3135 21613 10D
034238,000169:
034239,000170: 32,3136 43206 PUSH DAD
034240,000171: 32,3137 03561 PIPTIME1
034241,000172: 32,3140 14041 STODL TDEC1 # STORE NEW GUESS FOR NEXT INTEGRATION
034242,000173: 32,3141 45246 ABS DSU
034243,000174: 32,3142 25262 DDUMCRIT
034244,000175: 32,3143 45040 BMN CALL
034245,000176: 32,3144 65163 DDUMGOOD
034246,000177: 32,3145 27414 INTSTALL
034247,000178: 32,3146 43014 SET SET
034248,000179: 32,3147 01473 INTYPFLG
034249,000180: 32,3150 00063 MOONFLAG
034250,000181: 32,3151 77745 DLOAD
034251,000182: 32,3152 03561 PIPTIME1
034252,000183: 32,3153 25517 STOVL TET # HOPEFULLY ?GUIDSUB DID NOT
034253,000184: 32,3154 00017 RATT1 # CLOBBER RATT1 AND VATT1
![]() |
Page 788 |
034255,000186: 32,3155 25535 STOVL RCV
034256,000187: 32,3156 00025 VATT1
034257,000188: 32,3157 35543 STCALL VCV
034258,000189: 32,3160 27107 INTEGRVS
034259,000190: 32,3161 77650 GOTO
034260,000191: 32,3162 65070 IGNALOOP
034261,000192:
034262,000193: 32,3163 54335 DDUMGOOD SLOAD SR
034263,000194: 32,3164 03423 ZOOMTIME
034264,000195: 32,3165 20617 14D
034265,000196: 32,3166 77621 BDSU
034266,000197: 32,3167 00041 TDEC1
034267,000198: 32,3170 27442 STOVL TIG # COMPUTE DISTANCE LANDING SITE WILL BE
034268,000199: 32,3171 03527 V # OUT OF LM'S ORBITAL PLANE AT IGNITION:
034269,000200: 32,3172 53435 VXV UNIT # SIGN IS + IF LANDING SITE IS TO THE
034270,000201: 32,3173 03521 R # RIGHT, NORTH; - IF TO THE LEFT, SOUTH.
034271,000202: 32,3174 72441 DOT SL1
034272,000203: 32,3175 03635 LAND
034273,000204: 32,3176 26627 R60INIT STOVL OUTOFPLN # INITIALIZATION FOR CALCMANU
034274,000205: 32,3177 03254 UNFC/2
034275,000206: 32,3200 02631 STORE R60VSAVE # STORE UNFC/2 TEMPORARILY IN R60SAVE
034276,000207: 32,3201 77776 EXIT
034277,000208: # ****************************************
034278,000209:
034279,000210: 32,3202 05353 IGNALGRT TC PHASCHNG # PREVENT REPEATING IGNALG
034280,000211: 32,3203 04024 OCT 04024
034281,000212:
034282,000213: 32,3204 44362 ASTNCLOK CS ASTNDEX
034283,000214: 32,3205 04616 TC BANKCALL
034284,000215: 32,3206 74664 CADR STCLOK2
034285,000216: 32,3207 15155 TCF ENDOFJOB # RETURN IN NEW JOB AND IN EBANK FIVE
034286,000217:
034287,000218: 32,3210 06037 ASTNRET TC INTPRET
034288,000219: 32,3211 47131 SSP RTB # GO PICK UP DISPLAY AT END OF R51:
034289,000220: 32,3212 02747 QMAJ # "PROCEED" WILL DO A FINE ALIGNMENT
034290,000221: 32,3213 65215 FCADR P63SPOT2 # "ENTER" WILL RETURN TO P63SPOT2
034291,000222: 32,3214 31135 R51P63
034292,000223: 32,3215 53575 P63SPOT2 VLOAD UNIT # INITIALIZE KALCMANU FOR BURN ATTITUDE
034293,000224: 32,3216 02631 R60VSAVE
034294,000225: 32,3217 27773 STOVL POINTVSM
034295,000226: 32,3220 06520 UNITX
034296,000227: 32,3221 03765 STORE SCAXIS
034297,000228: 32,3222 77776 EXIT
034298,000229:
034299,000230: 32,3223 35016 CAF EBANK7
034300,000231: 32,3224 54003 TS EBANK
034301,000232:
034302,000233: 32,3225 00004 INHINT
034303,000234: 32,3226 04674 TC IBNKCALL
034304,000235: 32,3227 40142 CADR PFLITEDB
![]() |
Page 789 |
034306,000237: 32,3230 00003 RELINT
034307,000238:
034308,000239: 32,3231 04616 TC BANKCALL
034309,000240: 32,3232 54123 CADR R60LEM
034310,000241:
034311,000242: 32,3233 05353 TC PHASCHNG # PREVENT RECALLING R60
034312,000243: 32,3234 04024 OCT 04024
034313,000244:
034314,000245: 32,3235 34746 P63SPOT3 CA BIT6 # IS THE LR ANTENNA IN POSITION 1 YET
034315,000246: 32,3236 00006 EXTEND
034316,000247: 32,3237 02033 RAND CHAN33
034317,000248: 32,3240 00006 EXTEND
034318,000249: 32,3241 13247 BZF P63SPOT4 # BRANCH IF ANTENNA ALREADY IN POSITION 1
034319,000250:
034320,000251: 32,3242 33254 CAF CODE500 # ASTRONAUT: PLEASE CRANK THE
034321,000252: 32,3243 04616 TC BANKCALL # SILLY THING AROUND
034322,000253: 32,3244 20623 CADR GOPERF1
034323,000254: 32,3245 16001 TCF GOTOPOOH # TERMINATE
034324,000255: 32,3246 13235 TCF P63SPOT3 # PROCEED SEE IF HE'S LYING
034325,000256:
034326,000257: 32,3247 04616 P63SPOT4 TC BANKCALL # ENTER INITIALIZE LANDING RADAR
034327,000258: 32,3250 67721 CADR SETPOS1
034328,000259:
034329,000260: 32,3251 04635 TC POSTJUMP # OFF TO SEE THE WIZARD ...
034330,000261: 32,3252 74126 CADR BURNBABY
034331,000262:
034332,000263: # ----------------------------------------
034333,000264:
034334,000265: # CONSTANTS FOR P63LM AND IGNALG
034335,000266:
034336,000267: 32,3253 02076 P63ADRES GENADR P63TABLE
034337,000268:
034338,000269: 32,3254 4362 ASTNDEX = MD1 # OCT 25; INDEX FOR CLOKTASK
034339,000270:
034340,000271: 32,3254 00500 CODE500 OCT 00500
034341,000272:
034342,000273: 32,3255 00035 30373 99999CON 2DEC 30479.7 B-24
034343,000274:
034344,000275: 32,3257 00004 01610 GUIDDURN 2DEC +66440 B-28 # GUIDDURN +6.64400314 E+2
034345,000276: 32,3261 00000 00010 DDUMCRIT 2DEC +8 B-28 # CRITERION FOR IGNALG CONVERGENCE
034346,000277:
![]() |
Page 790 |
034348,000279: # ----------------------------------------
034349,000280:
![]() |
Page 791 |
034351,000282: # ****************************************
034352,000283: # P68: LANDING CONFIRMATION
034353,000284: # ****************************************
034354,000285:
034355,000286: 31,2144 BANK 31
034356,000287: 31,2000 SETLOC F2DPS*31
034357,000288: 31,2000 BANK
034358,000289:
034359,000290: 31,2144 COUNT* $$/P6567
034360,000291:
034361,000292: 31,2144 05353 LANDJUNK TC PHASCHNG
034362,000293: 31,2145 04024 OCT 04024
034363,000294:
034364,000295: 31,2146 00004 INHINT
034365,000296: 31,2147 04616 TC BANKCALL # ZERO ATTITUDE ERROR
034366,000297: 31,2150 40153 CADR ZATTEROR
034367,000298:
034368,000299: 31,2151 04616 TC BANKCALL # SET 5 DEGREE DEADBAND
034369,000300: 31,2152 40127 CADR SETMAXDB
034370,000301:
034371,000302: 31,2153 06037 TC INTPRET # TO INTERPRETIVE AS TIME IS NOT CRITICAL
034372,000303: 31,2154 43014 SET CLEAR
034373,000304: 31,2155 04067 SURFFLAG
034374,000305: 31,2156 04666 LETABORT
034375,000306: 31,2157 77214 SET VLOAD
034376,000307: 31,2160 05062 APSFLAG
034377,000308: 31,2161 01221 RN
034378,000309: 31,2162 16032 STODL ALPHAV
034379,000310: 31,2163 01235 PIPTIME
034380,000311: 31,2164 45014 SET CALL
034381,000312: 31,2165 01463 LUNAFLAG
034382,000313: 31,2166 26351 LAT-LONG
034383,000314: 31,2167 77201 SETPD VLOAD # COMPUTE RLS AND STORE IT AWAY
034384,000315: 31,2170 00001 0
034385,000316: 31,2171 01221 RN
034386,000317: 31,2172 65352 VSL2 PDDL
034387,000318: 31,2173 01235 PIPTIME
034388,000319: 31,2174 45006 PUSH CALL
034389,000320: 31,2175 51670 R-TO-RP
034390,000321: 31,2176 02023 STORE RLS
034391,000322: 31,2177 77776 EXIT
034392,000323: 31,2200 32215 CAF V06N43* # ASTRONAUT: NOW LOOK WHERE YOU ENDED UP
034393,000324: 31,2201 04616 TC BANKCALL
034394,000325: 31,2202 20476 CADR GOFLASH
034395,000326: 31,2203 16001 TCF GOTOPOOH # TERMINATE
034396,000327: 31,2204 12206 TCF +2 # PROCEED
034397,000328: 31,2205 12200 TCF -5 # RECYCLE
034398,000329:
034399,000330: 31,2206 06037 TC INTPRET
![]() |
Page 792 |
034401,000332: 31,2207 77775 VLOAD # INITIALIZE GSAV AND (USING REFMF)
034402,000333: 31,2210 06520 UNITX # YNBSAV, ZNBSAV AND ATTFLAG FOR P57
034403,000334: 31,2211 36231 STCALL GSAV
034404,000335: 31,2212 33506 REFMF
034405,000336: 31,2213 77776 EXIT
034406,000337:
034407,000338: 31,2214 16001 TCF GOTOPOOH # ASTRONAUT: PLEASE SELECT P57
034408,000339:
034409,000340: 31,2215 01453 V06N43* VN 0643
034410,000341:
End of include-file THE_LUNAR_LANDING.agc. Parent file is MAIN.agc