Source Code

These source-code files are part of a reconstructed copy of LUM69 Revision 2, the flown Apollo 10 Lunar Module (LM) Apollo Guidance Computer (AGC) software.

The reconstruction began with source code of Luminary 69 revision 0 previously transcribed from a digitized copy of that program. The code was then updated by back-porting the R-2 lunar potential model from previously-transcribed source code of Luminary 99. These required changes were described in the original Luminary memos 75 and 78. The reconstructed code was verified by matching memory-bank checksums to those listed in drawing 2021152G. Note that page numbers in the reconstructed code match those on the Luminary 069 printout, although the added code would likely have changed page numbers for a real LUM69 Revision 2 listing.

Comments from the original source code are prefixed with a single '#' symbol, whereas comments added later are prefixed by "##" or "###". Report any errors noted by creating an issue report at the Virtual AGC project's GitHub repository.

034428,000002:                                                                                                  ## Copyright:   Public domain.
034429,000003:                                                                                                  ## Filename:    THE_LUNAR_LANDING.agc
034430,000004:                                                                                                  ## Purpose:     A section of LUM69 revision 2.
034431,000005:                                                                                                  ##              It is part of the reconstructed source code for the flown
034432,000006:                                                                                                  ##              version of the flight software for the Lunar Module's (LM)
034433,000007:                                                                                                  ##              Apollo Guidance Computer (AGC) for Apollo 10. The code has
034434,000008:                                                                                                  ##              been recreated from a copy of Luminary revsion 069, using
034435,000009:                                                                                                  ##              changes present in Luminary 099 which were described in
034436,000010:                                                                                                  ##              Luminary memos 75 and 78. The code has been adapted such
034437,000011:                                                                                                  ##              that the resulting bugger words exactly match those specified
034438,000012:                                                                                                  ##              for LUM69 revision 2 in NASA drawing 2021152B, which gives
034439,000013:                                                                                                  ##              relatively high confidence that the reconstruction is correct.
034440,000014:                                                                                                  ## Reference:   pp. 789-796
034441,000015:                                                                                                  ## Assembler:   yaYUL
034442,000016:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
034443,000017:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
034444,000018:                                                                                                  ## Mod history: 2019-07-27 MAS  Created from Luminary 69.
034445,000019: 

Page 789

034447,000021: 32,2772                                           BANK     32                                    
034448,000022: 32,2000                                           SETLOC   F2DPS*32                              
034449,000023: 32,2000                                           BANK                                           
034450,000024: 
034451,000025: 32,2772  E7,1617                                  EBANK=   E2DPS                                 
034452,000026: 
034453,000027:                                                                                                  #        ****************************************
034454,000028:                                                                                                  #        P63: THE LUNAR LANDING, BRAKING PHASE
034455,000029:                                                                                                  #        ****************************************
034456,000030: 
034457,000031: 32,2772                                           COUNT*   $$/P63                                
034458,000032: 
034459,000033: 32,2772           05353        P63LM              TC       PHASCHNG                              
034460,000034: 32,2773           04024                           OCT      04024                                 
034461,000035: 
034462,000036: 32,2774           04616                           TC       BANKCALL                              #  DO IMU STATUS CHECK ROUTINE R02
034463,000037: 32,2775           11175                           CADR     R02BOTH                               
034464,000038: 
034465,000039: 32,2776           33246                           CAF      P63ADRES                              #  INITIALIZE WHICH FOR BURNBABY
034466,000040: 32,2777           55453                           TS       WHICH                                 
034467,000041: 
034468,000042: 32,3000           32010                           CAF      DPSTHRSH                              #  INITIALIZE DVMON
034469,000043: 32,3001           55251                           TS       DVTHRUSH                              
034470,000044: 32,3002           34751                           CAF      FOUR                                  
034471,000045: 32,3003           55513                           TS       DVCNTR                                
034472,000046: 
034473,000047: 32,3004           44753                           CS       ONE                                   #  INITIALIZE WCHPHASE AND FLPASSO
034474,000048: 32,3005           22007                           ZL                                             #    FOR IGNITION ALGORITHM
034475,000049: 32,3006           53621                           DXCH     WCHPHASE                              
034476,000050: 
034477,000051: 
034478,000052: 32,3007           44736                           CS       BIT14                                 
034479,000053: 32,3010           00006                           EXTEND                                         
034480,000054: 32,3011           03012                           WAND     CHAN12                                #  REMOVE TRACK-ENABLE DISCRETE.
034481,000055: 
034482,000056: 32,3012           06036        FLAGORGY           TC       INTPRET                               #  DIONYSIAN FLAG WAVING
034483,000057: 32,3013           43014                           CLEAR    CLEAR                                 
034484,000058: 32,3014           02663                                    NOTHROTL                              
034485,000059: 32,3015           03271                                    REDFLAG                               
034486,000060: 32,3016           43014                           CLEAR    SET                                   
034487,000061: 32,3017           05660                                    LRBYPASS                              
034488,000062: 32,3020           03067                                    MUNFLAG                               
034489,000063: 32,3021           43014                           CLEAR    CLEAR                                 
034490,000064: 32,3022           00266                                    P25FLAG                               #  TERMINATE P25 IF IT IS RUNNING.
034491,000065: 32,3023           00270                                    RNDVZFLG                              #  TERMINATE P20 IF IT IS RUNNING
034492,000066: 
034493,000067:                                                                                                  #  ****************************************
034494,000068: 
034495,000069: 32,3024           77201        IGNALG             SETPD    VLOAD                                 #  FIRST SET UP INPUTS FOR RP-TO-R:-
034496,000070: 32,3025           00001                                    0                                     #        AT 0D LANDING SITE IN MOON FIXED FRAME
034497,000071: 32,3026           02023                                    RLS                                   #        AT 6D ESTIMATED TIME OF LANDING

Page 790

034499,000073: 32,3027           41525                           PDDL     PUSH                                  #        MPAC NON-ZERO TO INDICATE LUNAR CASE
034500,000074: 32,3030           02401                                    TLAND                                 
034501,000075: 32,3031           37623                           STCALL   TPIP                                  #  ALSO SET TPIP FOR FIRST GUIDANCE PASS
034502,000076: 32,3032           51504                                    RP-TO-R                               
034503,000077: 32,3033           64312                           VSL4     MXV                                   
034504,000078: 32,3034           01734                                    REFSMMAT                              
034505,000079: 32,3035           37633                           STCALL   LAND                                  
034506,000080: 32,3036           60264                                    GUIDINIT                              #  GUIDINIT INITIALIZES WM AND /LAND/
034507,000081: 32,3037           45345                           DLOAD    DSU                                   
034508,000082: 32,3040           02401                                    TLAND                                 
034509,000083: 32,3041           25254                                    GUIDDURN                              
034510,000084: 32,3042           34041                           STCALL   TDEC1                                 #  INTEGRATE STATE FORWARD TO THAT TIME
034511,000085: 32,3043           27057                                    LEMPREC                               
034512,000086: 32,3044           77331                           SSP      VLOAD                                 
034513,000087: 32,3045           03645                                    NIGNLOOP                              
034514,000088: 32,3046           00050                                    40D                                   
034515,000089: 32,3047           06422                                    UNITX                                 
034516,000090: 32,3050           26510                           STOVL    CG                                    
034517,000091: 32,3051           06420                                    UNITY                                 
034518,000092: 32,3052           26516                           STOVL    CG         +6                         
034519,000093: 32,3053           06416                                    UNITZ                                 
034520,000094: 32,3054           16524                           STODL    CG         +14                        
034521,000095: 32,3055           25252                                    99999CON                              
034522,000096: 32,3056           27663                           STOVL    DELTAH                                #  INITIALIZE DELTAH FOR V16N68 DISPLAY
034523,000097: 32,3057           06424                                    ZEROVECS                              
034524,000098: 32,3060           17252                           STODL    UNFC/2                                #  INITIALIZE TRIM VELOCITY CORRECTION TERM
034525,000099: 32,3061           06424                                    HI6ZEROS                              
034526,000100: 32,3062           03641                           STORE    TTF/8                                 
034527,000101: 
034528,000102: 32,3063           77745        IGNALOOP           DLOAD                                          
034529,000103: 32,3064           00015                                    TAT                                   
034530,000104: 32,3065           27557                           STOVL    PIPTIME1                              
034531,000105: 32,3066           00017                                    RATT1                                 
034532,000106: 32,3067           64312                           VSL4     MXV                                   
034533,000107: 32,3070           01734                                    REFSMMAT                              
034534,000108: 32,3071           37517                           STCALL   R                                     
034535,000109: 32,3072           67162                                    MUNGRAV                               
034536,000110: 32,3073           35237                           STCALL   GDT/2                                 
034537,000111: 32,3074           62514                                    ?GUIDSUB                              #  WHICH DELIVERS N PASSES OF GUIDANCE
034538,000112: 
034539,000113:                                                                                                  #  DDUMCALC IS PROGRAMMED AS FOLLOWS:-
034540,000114:                                                                                                  #                                          2                                           -
034541,000115:                                                                                                  #               (RIGNZ - RGU )/16 + 16(RGU  )KIGNY/B8 + (RGU - RIGNX)KIGNX/B4 + (ABVAL(VGU) - VIGN)KIGNV/B4
034542,000116:                                                                                                  #                           2             1                 0
034543,000117:                                                                                                  #        DDUM = -------------------------------------------------------------------------------------------
034544,000118:                                                                                                  #                                                 10
034545,000119:                                                                                                  #                                                2   (VGU - 16 VGU KIGNX/B4)
034546,000120:                                                                                                  #                                                        2        0

Page 791

034548,000122:                                                                                                  #  THE NUMERATOR IS SCALED IN METERS AT 2(28).  THE DENOMINATOR IS A VELOCITY IN UNITS OF 2(10) M/CS.
034549,000123:                                                                                                  #  THE QUOTIENT IS THUS A TIME IN UNITS OF 2(18) CENTISECONDS.  THE FINAL SHIFT RESCALES TO UNITS OF 2(28) CS.
034550,000124:                                                                                                  #  THERE IS NO DAMPING FACTOR.  THE CONSTANTS KIGNX/B4, KIGNY/B8 AND KIGNV/B4 ARE ALL NEGATIVE IN SIGN.
034551,000125: 
034552,000126: 32,3075           55644        DDUMCALC           TS       NIGNLOOP                              
034553,000127: 32,3076           06036                           TC       INTPRET                               
034554,000128: 32,3077           57345                           DLOAD    DMPR                                  #  FORM DENOMINATOR FIRST
034555,000129: 32,3100           03625                                    VGU                                   
034556,000130: 32,3101           02471                                    KIGNX/B4                              
034557,000131: 32,3102           44232                           SL4R     BDSU                                  
034558,000132: 32,3103           03631                                    VGU        +4                         
034559,000133: 32,3104           45325                           PDDL     DSU                                   
034560,000134: 32,3105           02467                                    RIGNZ                                 
034561,000135: 32,3106           02550                                    RGU        +4                         
034562,000136: 32,3107           65222                           SR4R     PDDL                                  
034563,000137: 32,3110           02546                                    RGU        +2                         
034564,000138: 32,3111           57316                           DSQ      DMPR                                  
034565,000139: 32,3112           02473                                    KIGNY/B8                              
034566,000140: 32,3113           65232                           SL4R     PDDL                                  
034567,000141: 32,3114           02544                                    RGU                                   
034568,000142: 32,3115           57225                           DSU      DMPR                                  
034569,000143: 32,3116           02465                                    RIGNX                                 
034570,000144: 32,3117           02471                                    KIGNX/B4                              
034571,000145: 32,3120           51515                           PDVL     ABVAL                                 
034572,000146: 32,3121           03625                                    VGU                                   
034573,000147: 32,3122           57225                           DSU      DMPR                                  
034574,000148: 32,3123           02463                                    VIGN                                  
034575,000149: 32,3124           02475                                    KIGNV/B4                              
034576,000150: 32,3125           43215                           DAD      DAD                                   
034577,000151: 32,3126           56215                           DAD      DDV                                   
034578,000152: 32,3127           77661                           SRR                                            
034579,000153: 32,3130           21613                                    10D                                   
034580,000154: 
034581,000155: 32,3131           43206                           PUSH     DAD                                   
034582,000156: 32,3132           03557                                    PIPTIME1                              
034583,000157: 32,3133           14041                           STODL    TDEC1                                 #  STORE NEW GUESS FOR NEXT INTEGRATION
034584,000158: 32,3134           45246                           ABS      DSU                                   
034585,000159: 32,3135           25256                                    DDUMCRIT                              
034586,000160: 32,3136           45040                           BMN      CALL                                  
034587,000161: 32,3137           65156                                    DDUMGOOD                              
034588,000162: 32,3140           27412                                    INTSTALL                              
034589,000163: 32,3141           43014                           SET      SET                                   
034590,000164: 32,3142           01473                                    INTYPFLG                              
034591,000165: 32,3143           00063                                    MOONFLAG                              
034592,000166: 32,3144           77745                           DLOAD                                          
034593,000167: 32,3145           03557                                    PIPTIME1                              
034594,000168: 32,3146           25517                           STOVL    TET                                   #  HOPEFULLY ?GUIDSUB DID NOT
034595,000169: 32,3147           00017                                    RATT1                                 #        CLOBBER RATT1 AND VATT1
034596,000170: 32,3150           25535                           STOVL    RCV                                   
034597,000171: 32,3151           00025                                    VATT1                                 

Page 792

034599,000173: 32,3152           35543                           STCALL   VCV                                   
034600,000174: 32,3153           27107                                    INTEGRVS                              
034601,000175: 32,3154           77650                           GOTO                                           
034602,000176: 32,3155           65063                                    IGNALOOP                              
034603,000177: 
034604,000178: 32,3156           54335        DDUMGOOD           SLOAD    SR                                    
034605,000179: 32,3157           03425                                    ZOOMTIME                              
034606,000180: 32,3160           20617                                    14D                                   
034607,000181: 32,3161           77621                           BDSU                                           
034608,000182: 32,3162           00041                                    TDEC1                                 
034609,000183: 32,3163           27440                           STOVL    TIG                                   #  COMPUTE DISTANCE LANDING SITE WILL BE
034610,000184: 32,3164           03525                                    V                                     #        OUT OF LM'S ORBITAL PLANE AT IGNITION:
034611,000185: 32,3165           53435                           VXV      UNIT                                  #        SIGN IS + IF LANDING SITE IS TO THE
034612,000186: 32,3166           03517                                    R                                     #        RIGHT, NORTH; - IF TO THE LEFT, SOUTH.
034613,000187: 32,3167           72441                           DOT      SL1                                   
034614,000188: 32,3170           03633                                    LAND                                  
034615,000189: 32,3171           26534        R60INIT            STOVL    OUTOFPLN                              #  INITIALIZATION FOR CALCMANU
034616,000190: 32,3172           03252                                    UNFC/2                                
034617,000191: 32,3173           02536                           STORE    R60VSAVE                              #  STORE UNFC/2 TEMPORARILY IN R60SAVE
034618,000192: 32,3174           77776                           EXIT                                           
034619,000193:                                                                                                  #  ****************************************
034620,000194: 
034621,000195: 32,3175           05353        IGNALGRT           TC       PHASCHNG                              #  PREVENT REPEATING IGNALG
034622,000196: 32,3176           04024                           OCT      04024                                 
034623,000197: 
034624,000198: 32,3177           43247        ASTNCLOK           CS       ASTNDEX                               
034625,000199: 32,3200           04616                           TC       BANKCALL                              
034626,000200: 32,3201           74667                           CADR     STCLOK2                               
034627,000201: 32,3202           15155                           TCF      ENDOFJOB                              #  RETURN IN NEW JOB AND IN EBANK FIVE
034628,000202: 
034629,000203: 32,3203           06036        ASTNRET            TC       INTPRET                               
034630,000204: 32,3204           47131                           SSP      RTB                                   #  GO PICK UP DISPLAY AT END OF R51:
034631,000205: 32,3205           02747                                    QMAJ                                  #        "PROCEED" WILL DO A FINE ALIGNMENT
034632,000206: 32,3206           65210                           FCADR    P63SPOT2                              #        "ENTER" WILL RETURN TO P63SPOT2
034633,000207: 32,3207           30776                                    R51P63                                
034634,000208: 32,3210           53575        P63SPOT2           VLOAD    UNIT                                  #  INITIALIZE KALCMANU FOR BURN ATTITUDE
034635,000209: 32,3211           02536                                    R60VSAVE                              
034636,000210: 32,3212           27767                           STOVL    POINTVSM                              
034637,000211: 32,3213           06422                                    UNITX                                 
034638,000212: 32,3214           03761                           STORE    SCAXIS                                
034639,000213: 32,3215           77776                           EXIT                                           
034640,000214: 
034641,000215: 32,3216           35016                           CAF      EBANK7                                
034642,000216: 32,3217           54003                           TS       EBANK                                 
034643,000217: 
034644,000218: 32,3220           00004                           INHINT                                         
034645,000219: 32,3221           04674                           TC       IBNKCALL                              
034646,000220: 32,3222           40142                           CADR     PFLITEDB                              
034647,000221: 32,3223           00003                           RELINT                                         
034648,000222: 

Page 793

034650,000224: 32,3224           04616                           TC       BANKCALL                              
034651,000225: 32,3225           54101                           CADR     R60LEM                                
034652,000226: 
034653,000227: 32,3226           05353                           TC       PHASCHNG                              #  PREVENT RECALLING R60
034654,000228: 32,3227           04024                           OCT      04024                                 
034655,000229: 
034656,000230: 32,3230           34746        P63SPOT3           CA       BIT6                                  #  IS THE LR ANTENNA IN POSITION 1 YET
034657,000231: 32,3231           00006                           EXTEND                                         
034658,000232: 32,3232           02033                           RAND     CHAN33                                
034659,000233: 32,3233           00006                           EXTEND                                         
034660,000234: 32,3234           13242                           BZF      P63SPOT4                              #  BRANCH IF ANTENNA ALREADY IN POSITION 1
034661,000235: 
034662,000236: 32,3235           33250                           CAF      CODE500                               #  ASTRONAUT:    PLEASE CRANK THE
034663,000237: 32,3236           04616                           TC       BANKCALL                              #                SILLY THING AROUND
034664,000238: 32,3237           20476                           CADR     GOPERF1                               
034665,000239: 32,3240           16001                           TCF      GOTOPOOH                              #  TERMINATE
034666,000240: 32,3241           13230                           TCF      P63SPOT3                              #  PROCEED       SEE IF HE'S LYING
034667,000241: 
034668,000242: 32,3242           04616        P63SPOT4           TC       BANKCALL                              #  ENTER         INITIALIZE LANDING RADAR
034669,000243: 32,3243           67704                           CADR     SETPOS1                               
034670,000244: 
034671,000245: 32,3244           04635                           TC       POSTJUMP                              #  OFF TO SEE THE WIZARD ...
034672,000246: 32,3245           74124                           CADR     BURNBABY                              
034673,000247: 
034674,000248:                                                                                                  #        ----------------------------------------
034675,000249: 
034676,000250:                                                                                                  #  CONSTANTS FOR P63LM AND IGNALG
034677,000251: 
034678,000252: 32,3246           02074        P63ADRES           GENADR   P63TABLE                              
034679,000253: 
034680,000254: 32,3247           00027        ASTNDEX            OCT      00027                                 #  INDEX FOR CLOKTASK
034681,000255: 
034682,000256: 32,3250           00500        CODE500            OCT      00500                                 
034683,000257: 
034684,000258: 32,3251           00035 30373  99999CON           2DEC     30479.7    B-24                       
034685,000259: 
034686,000260: 32,3253           00003 37214  GUIDDURN           2DEC     +65164     B-28                       
034687,000261: 32,3255           00000 00010  DDUMCRIT           2DEC     +8         B-28                       #  CRITERION FOR IGNALG CONVERGENCE
034688,000262: 

Page 794

034690,000264:                                                                                                  #        ----------------------------------------
034691,000265: 

Page 795

034693,000267:                                                                                                  #        ****************************************
034694,000268:                                                                                                  #        P68: LANDING CONFIRMATION
034695,000269:                                                                                                  #        ****************************************
034696,000270: 
034697,000271: 31,2172                                           BANK     31                                    
034698,000272: 31,2000                                           SETLOC   F2DPS*31                              
034699,000273: 31,2000                                           BANK                                           
034700,000274: 
034701,000275: 31,2172                                           COUNT*   $$/P6567                              
034702,000276: 
034703,000277: 31,2172           05353        LANDJUNK           TC       PHASCHNG                              
034704,000278: 31,2173           04024                           OCT      04024                                 
034705,000279: 
034706,000280: 31,2174           00004                           INHINT                                         
034707,000281: 31,2175           04616                           TC       BANKCALL                              #  ZERO ATTITUDE ERROR
034708,000282: 31,2176           40153                           CADR     ZATTEROR                              
034709,000283: 
034710,000284: 31,2177           04616                           TC       BANKCALL                              #  SET 5 DEGREE DEADBAND
034711,000285: 31,2200           40127                           CADR     SETMAXDB                              
034712,000286: 
034713,000287: 31,2201           06036                           TC       INTPRET                               #  TO INTERPRETIVE AS TIME IS NOT CRITICAL
034714,000288: 31,2202           43014                           SET      CLEAR                                 
034715,000289: 31,2203           04067                                    SURFFLAG                              
034716,000290: 31,2204           04666                                    LETABORT                              
034717,000291: 31,2205           43014                           SET      CLEAR                                 
034718,000292: 31,2206           05062                                    APSFLAG                               
034719,000293: 31,2207           03664                                    SWANDISP                              
034720,000294: 31,2210           77214                           SET      VLOAD                                 
034721,000295: 31,2211           05460                                    LRBYPASS                              
034722,000296: 31,2212           01221                                    RN                                    
034723,000297: 31,2213           16032                           STODL    ALPHAV                                
034724,000298: 31,2214           01235                                    PIPTIME                               
034725,000299: 31,2215           45014                           SET      CALL                                  
034726,000300: 31,2216           01463                                    LUNAFLAG                              
034727,000301: 31,2217           26351                                    LAT-LONG                              
034728,000302: 31,2220           77201                           SETPD    VLOAD                                 #  COMPUTE RLS AND STORE IT AWAY
034729,000303: 31,2221           00001                                    0                                     
034730,000304: 31,2222           01221                                    RN                                    
034731,000305: 31,2223           65352                           VSL2     PDDL                                  
034732,000306: 31,2224           01235                                    PIPTIME                               
034733,000307: 31,2225           45006                           PUSH     CALL                                  
034734,000308: 31,2226           51531                                    R-TO-RP                               
034735,000309: 31,2227           02023                           STORE    RLS                                   
034736,000310: 31,2230           77776                           EXIT                                           
034737,000311: 31,2231           32246                           CAF      V06N43*                               #  ASTRONAUT:  NOW LOOK WHERE YOU ENDED UP
034738,000312: 31,2232           04616                           TC       BANKCALL                              
034739,000313: 31,2233           20351                           CADR     GOFLASH                               
034740,000314: 31,2234           16001                           TCF      GOTOPOOH                              #  TERMINATE
034741,000315: 31,2235           12237                           TCF      +2                                    #  PROCEED
034742,000316: 31,2236           12231                           TCF      -5                                    #  RECYCLE
034743,000317: 

Page 796

034745,000319: 31,2237           06036                           TC       INTPRET                               
034746,000320: 31,2240           77775                           VLOAD                                          #  INITIALIZE GSAV AND (USING REFMF)
034747,000321: 31,2241           06422                                    UNITX                                 #  YNBSAV, ZNBSAV AND ATTFLAG FOR P57
034748,000322: 31,2242           36235                           STCALL   GSAV                                  
034749,000323: 31,2243           33470                                    REFMF                                 
034750,000324: 31,2244           77776                           EXIT                                           
034751,000325: 
034752,000326: 31,2245           16001                           TCF      GOTOPOOH                              #  ASTRONAUT:  PLEASE SELECT P57
034753,000327: 
034754,000328: 31,2246           01453        V06N43*            VN       0643                                  
034755,000329: 

End of include-file THE_LUNAR_LANDING.agc.  Parent file is MAIN.agc