Source Code

These source-code files are part of a reconstructed copy of Luminary 97, the original release of the Apollo 11 Lunar Module (LM) Apollo Guidance Computer (AGC) software.

The reconstruction began with source code of Luminary 99 revision 1 previously transcribed from a digitized copy of that program. The code was then updated by undoing changes described in original Luminary memos 83 and 85, using asterisks indicating changed lines in the listing as a guide. The reconstruction was verified by matching memory-bank checksums to those listed in drawing 2021152D. Note that page numbers in the reconstructed code match those on the Luminary 099 revision 001 printout, although the added code would likely have changed page numbers for a real Luminary 97 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.

029623,000002:                                                                                                  ## Copyright:   Public domain.
029624,000003:                                                                                                  ## Filename:    R31.agc
029625,000004:                                                                                                  ## Purpose:     A section of Luminary revision 97.
029626,000005:                                                                                                  ##              It is part of the reconstructed source code for the
029627,000006:                                                                                                  ##              original release of the flight software for the Lunar 
029628,000007:                                                                                                  ##              Module's (LM) Apollo Guidance Computer (AGC) for Apollo 11.
029629,000008:                                                                                                  ##              The code has been recreated from a copy of Luminary 99
029630,000009:                                                                                                  ##              revision 001, using asterisks indicating changed lines in
029631,000010:                                                                                                  ##              the listing and Luminary Memos #83 and #85, which list 
029632,000011:                                                                                                  ##              changes between Luminary 97 and 98, and 98 and 99. The
029633,000012:                                                                                                  ##              code has been adapted such that the resulting bugger words
029634,000013:                                                                                                  ##              exactly match those specified for Luminary 97 in NASA drawing
029635,000014:                                                                                                  ##              2021152D, which gives relatively high confidence that the
029636,000015:                                                                                                  ##              reconstruction is correct.
029637,000016:                                                                                                  ## Reference:   pp. 703-708
029638,000017:                                                                                                  ## Assembler:   yaYUL
029639,000018:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
029640,000019:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
029641,000020:                                                                                                  ## Mod history: 2019-07-28 MAS  Created from Luminary 99.
029642,000021: 

Page 703

029644,000023: 40,3674                                           BANK     40                                    
029645,000024: 40,2000                                           SETLOC   R31LOC                                
029646,000025: 40,2000                                           BANK                                           
029647,000026: 
029648,000027: 40,3674                                           COUNT*   $$/R31                                
029649,000028: 
029650,000029: 40,3674           35015        R31CALL            CAF      PRIO3                                 
029651,000030: 40,3675           05105                           TC       FINDVAC                               
029652,000031: 40,3676  E7,1470                                  EBANK=   SUBEXIT                               
029653,000032: 40,3676           03121 76067                     2CADR    V83CALL                               
029654,000033: 
029655,000034: 40,3700           05221        DSPDELAY           TC       FIXDELAY                              
029656,000035: 40,3701           00144                           DEC      100        B-14                       
029657,000036: 40,3702           31044                           CA       EXTVBACT                              
029658,000037: 40,3703           74740                           MASK     BIT12                                 
029659,000038: 40,3704           00006                           EXTEND                                         
029660,000039: 40,3705           13700                           BZF      DSPDELAY                              
029661,000040: 
029662,000041: 40,3706           35017                           CAF      PRIO5                                 
029663,000042: 40,3707           05072                           TC       NOVAC                                 
029664,000043: 40,3710  E7,1611                                  EBANK=   TSTRT                                 
029665,000044: 40,3710           03113 76067                     2CADR    DISPN5X                               
029666,000045: 
029667,000046: 40,3712           15261                           TCF      TASKOVER                              
029668,000047: 
029669,000048: 37,3113                                           BANK     37                                    
029670,000049: 37,2000                                           SETLOC   R31                                   
029671,000050: 37,2000                                           BANK                                           
029672,000051: 37,3113                                           COUNT*   $$/R31                                
029673,000052: 
029674,000053: 37,3113           33407        DISPN5X            CAF      V16N54                                
029675,000054: 37,3114           04616                           TC       BANKCALL                              
029676,000055: 37,3115           20334                           CADR     GOMARKF                               
029677,000056: 37,3116           05563                           TC       B5OFF                                 
029678,000057: 37,3117           05563                           TC       B5OFF                                 
029679,000058: 37,3120           13113                           TCF      DISPN5X                               
029680,000059: 
029681,000060: 37,3121           40103        V83CALL            CS       FLAGWRD7                              #  TEST AVERAGE G FLAG
029682,000061: 37,3122           74747                           MASK     AVEGFBIT                              
029683,000062: 37,3123           00006                           EXTEND                                         
029684,000063: 37,3124           13377                           BZF      MUNG?                                 #  ON - TEST MUNFLAG
029685,000064: 
029686,000065: 37,3125           40104                           CS       FLAGWRD8                              
029687,000066: 37,3126           74744                           MASK     SURFFBIT                              
029688,000067: 37,3127           00006                           EXTEND                                         
029689,000068: 37,3130           13403                           BZF      ONEBASE                               #  ON SURFACE - BYPASS LEMPREC
029690,000069: 
029691,000070: 37,3131           06037                           TC       INTPRET                               #  EXTRAPOLATE BOTH STATE VECTORS
029692,000071: 37,3132           77634                           RTB                                            

Page 704

029694,000073: 37,3133           21573                                    LOADTIME                              
029695,000074: 37,3134           34041                           STCALL   TDEC1                                 
029696,000075: 37,3135           27057                                    LEMPREC                               #  PRECISION BASE VECTOR FOR LM
029697,000076: 37,3136           77775                           VLOAD                                          
029698,000077: 37,3137           00017                                    RATT1                                 
029699,000078: 37,3140           26170                           STOVL    BASETHP                               
029700,000079: 37,3141           00025                                    VATT1                                 
029701,000080: 37,3142           16105                           STODL    BASETHV                               
029702,000081: 37,3143           00015                                    TAT                                   
029703,000082: 37,3144           02114        DOCMBASE           STORE    BASETIME                              #  PRECISION BASE VECTOR FOR CM
029704,000083: 37,3145           34041                           STCALL   TDEC1                                 
029705,000084: 37,3146           27043                                    CSMPREC                               
029706,000085: 37,3147           77775                           VLOAD                                          
029707,000086: 37,3150           00017                                    RATT1                                 
029708,000087: 37,3151           26140                           STOVL    BASEOTP                               
029709,000088: 37,3152           00025                                    VATT1                                 
029710,000089: 37,3153           02120                           STORE    BASEOTV                               
029711,000090: 37,3154           77776                           EXIT                                           
029712,000091: 
029713,000092: 37,3155           40103        REV83              CS       FLAGWRD7                              
029714,000093: 37,3156           74747                           MASK     AVEGFBIT                              
029715,000094: 37,3157           00006                           EXTEND                                         
029716,000095: 37,3160           13326                           BZF      GETRVN                                #  IF AVEGFLAG SET, USE RN,VN
029717,000096: 
029718,000097: 37,3161           40104                           CS       FLAGWRD8                              
029719,000098: 37,3162           74744                           MASK     SURFFBIT                              
029720,000099: 37,3163           00006                           EXTEND                                         
029721,000100: 37,3164           13370                           BZF      R31SURF                               #  IF ON SURFACE, USE LEMAREC
029722,000101: 
029723,000102: 37,3165           06037                           TC       INTPRET                               #  DO CONIC EXTRAPOLATION FOR BOTH VEHICLES
029724,000103: 37,3166           77634                           RTB                                            
029725,000104: 37,3167           21573                                    LOADTIME                              
029726,000105: 37,3170           34041                           STCALL   TDEC1                                 
029727,000106: 37,3171           27414                                    INTSTALL                              
029728,000107: 37,3172           43175                           VLOAD    CLEAR                                 
029729,000108: 37,3173           02170                                    BASETHP                               
029730,000109: 37,3174           00263                                    MOONFLAG                              
029731,000110: 37,3175           25535                           STOVL    RCV                                   
029732,000111: 37,3176           02105                                    BASETHV                               
029733,000112: 37,3177           15543                           STODL    VCV                                   
029734,000113: 37,3200           02114                                    BASETIME                              
029735,000114: 37,3201           43014                           BOF      SET                                   #  GET APPROPRIATE MOONFLAG SETTING
029736,000115: 37,3202           04344                                    MOONTHIS                              
029737,000116: 37,3203           77205                                    +2                                    
029738,000117: 37,3204           00063                                    MOONFLAG                              
029739,000118: 37,3205           77614                           SET                                            
029740,000119: 37,3206           01473                                    INTYPFLG                              #  CONIC EXTRAP.
029741,000120: 37,3207           35517                           STCALL   TET                                   
029742,000121: 37,3210           27107                                    INTEGRVS                              #  INTEGRATION --- AT LAST ---
029743,000122: 37,3211           77775        OTHCONIC           VLOAD                                          

Page 705

029745,000124: 37,3212           00001                                    RATT                                  
029746,000125: 37,3213           26207                           STOVL    RONE                                  
029747,000126: 37,3214           00007                                    VATT                                  
029748,000127: 37,3215           36215                           STCALL   VONE                                  #  GET SET FOR CONIC EXTRAP., OTHER.
029749,000128: 37,3216           27414                                    INTSTALL                              
029750,000129: 37,3217           71214                           SET      DLOAD                                 
029751,000130: 37,3220           01473                                    INTYPFLG                              
029752,000131: 37,3221           00015                                    TAT                                   
029753,000132: 37,3222           00041        OTHINT             STORE    TDEC1                                 
029754,000133: 37,3223           43175                           VLOAD    CLEAR                                 
029755,000134: 37,3224           02140                                    BASEOTP                               
029756,000135: 37,3225           00263                                    MOONFLAG                              
029757,000136: 37,3226           25535                           STOVL    RCV                                   
029758,000137: 37,3227           02120                                    BASEOTV                               
029759,000138: 37,3230           15543                           STODL    VCV                                   
029760,000139: 37,3231           02114                                    BASETIME                              
029761,000140: 37,3232           43014                           BOF      SET                                   
029762,000141: 37,3233           04344                                    MOONTHIS                              
029763,000142: 37,3234           77236                                    +2                                    
029764,000143: 37,3235           00063                                    MOONFLAG                              
029765,000144: 37,3236           35517                           STCALL   TET                                   
029766,000145: 37,3237           27107                                    INTEGRVS                              
029767,000146: 37,3240           52375        COMPDISP           VLOAD    VSU                                   
029768,000147: 37,3241           00001                                    RATT                                  
029769,000148: 37,3242           02207                                    RONE                                  
029770,000149: 37,3243           65234                           RTB      PDDL                                  
029771,000150: 37,3244           21724                                    NORMUNX1                              #  UNIT(RANGE) TO PD 0-5
029772,000151: 37,3245           00045                                    36D                                   
029773,000152: 37,3246           77657                           SL*                                            #  RESCALE AFTER NORMUNIT
029774,000153: 37,3247           20201                                    0,1                                   
029775,000154: 37,3250           26201                           STOVL    RANGE                                 #  SCALED 2(29)M
029776,000155: 37,3251           00007                                    VATT                                  
029777,000156: 37,3252           50251                           VSU      DOT                                   #  (VCM-VLM).UNIT(LOS), PD=0
029778,000157: 37,3253           02215                                    VONE                                  
029779,000158: 37,3254           77752                           SL1                                            #  SCALED 2(7)M/CS
029780,000159: 37,3255           26203                           STOVL    RRATE                                 
029781,000160: 37,3256           02207                                    RONE                                  
029782,000161: 37,3257           63256                           UNIT     PDVL                                  #  UNIT(R) TO PD 0-5
029783,000162: 37,3260           06514                                    UNITZ                                 
029784,000163: 37,3261           77624                           CALL                                           
029785,000164: 37,3262           47661                                    CDU*NBSM                              
029786,000165: 37,3263           41505                           VXM      PUSH                                  #  UNIT(Z)/4 TO PD 6-11
029787,000166: 37,3264           01734                                    REFSMMAT                              
029788,000167: 37,3265           72431                           VPROJ    VSL2                                  #  UNIT(P)=UNIT(UZ-(UZ)PROJ(UR))
029789,000168: 37,3266           00001                                    0D                                    
029790,000169: 37,3267           53445                           BVSU     UNIT                                  
029791,000170: 37,3270           00007                                    6D                                    
029792,000171: 37,3271           47315                           PDVL     VXV                                   #  UNIT(P) TO PD 12-17
029793,000172: 37,3272           00001                                    0D                                    #  UNIT(RL)
029794,000173: 37,3273           02215                                    VONE                                  

Page 706

029796,000175: 37,3274           50235                           VXV      DOT                                   #  (UR * VL) * UR . U(P)
029797,000176: 37,3275           00001                                    0D                                    
029798,000177: 37,3276           00015                                    12D                                   
029799,000178: 37,3277           77715                           PDVL                                           #  SIGN TO 12-13, LOAD U(P)
029800,000179: 37,3300           75241                           DOT      SIGN                                  
029801,000180: 37,3301           00007                                    6D                                    
029802,000181: 37,3302           00015                                    12D                                   
029803,000182: 37,3303           65512                           SL2      ACOS                                  #  ARCCOS(UP.UZ(SIGN))
029804,000183: 37,3304           26205                           STOVL    RTHETA                                
029805,000184: 37,3305           00001                                    0D                                    
029806,000185: 37,3306           51041                           DOT      BPL                                   #  IF UR.UZ NEG,
029807,000186: 37,3307           00007                                    6D                                    #        RTHETA = 1 - RTHETA
029808,000187: 37,3310           77315                                    +5                                    
029809,000188: 37,3311           45345                           DLOAD    DSU                                   
029810,000189: 37,3312           06530                                    DPPOSMAX                              
029811,000190: 37,3313           02205                                    RTHETA                                
029812,000191: 37,3314           02205                           STORE    RTHETA                                
029813,000192: 37,3315           77776                           EXIT                                           
029814,000193: 
029815,000194: 37,3316           34747                           CA       BIT5                                  
029816,000195: 37,3317           71044                           MASK     EXTVBACT                              
029817,000196: 37,3320           00006                           EXTEND                                         #  IF ANSWERED,
029818,000197: 37,3321           15472                           BZF      ENDEXT                                #        TERMINATE
029819,000198: 
029820,000199: 37,3322           41044                           CS       EXTVBACT                              
029821,000200: 37,3323           74740                           MASK     BIT12                                 
029822,000201: 37,3324           27044                           ADS      EXTVBACT                              #  SET BIT 12
029823,000202: 37,3325           13155                           TCF      REV83                                 #  AND START AGAIN.
029824,000203: 
029825,000204: 37,3326           37710        GETRVN             CA       PRIO22                                #  INHIBIT SERVICER
029826,000205: 37,3327           05146                           TC       PRIOCHNG                              
029827,000206: 37,3330           06037                           TC       INTPRET                               
029828,000207: 37,3331           40375                           VLOAD    SETPD                                 
029829,000208: 37,3332           01221                                    RN                                    #  LM STATE VECTOR IN RN,VN
029830,000209: 37,3333           00001                                    0                                     
029831,000210: 37,3334           26207                           STOVL    RONE                                  
029832,000211: 37,3335           01227                                    VN                                    
029833,000212: 37,3336           26215                           STOVL    VONE                                  #  LOAD R(CSM),V(CSM) IN CASE MUNFLAG SET
029834,000213: 37,3337           01726                                    V(CSM)                                #  (TO INSURE TIME COMPATABILITY)
029835,000214: 37,3340           65315                           PDVL     PDDL                                  
029836,000215: 37,3341           01720                                    R(CSM)                                
029837,000216: 37,3342           01235                                    PIPTIME                               
029838,000217: 37,3343           77776                           EXIT                                           
029839,000218: 37,3344           35015                           CA       PRIO3                                 
029840,000219: 37,3345           05146                           TC       PRIOCHNG                              
029841,000220: 37,3346           06037                           TC       INTPRET                               
029842,000221: 37,3347           77214                           BOFF     VLOAD                                 
029843,000222: 37,3350           03347                                    MUNFLAG                               
029844,000223: 37,3351           77363                                    GETRVN2                               #  IF MUNFLAG RESET, DO CM DELTA PRECISION

Page 707

029846,000225: 37,3352           60505                           VXM      VSR4                                  #  CHANGE TO REFERENCE SYSTEM AND RESCALE
029847,000226: 37,3353           01734                                    REFSMMAT                              
029848,000227: 37,3354           77715                           PDVL                                           #  R TO PD 0-5
029849,000228: 37,3355           76505                           VXM      VSL1                                  
029850,000229: 37,3356           01734                                    REFSMMAT                              
029851,000230: 37,3357           40206                           PUSH     SETPD                                 #  V TO PD 5-11
029852,000231: 37,3360           00001                                    0                                     
029853,000232: 37,3361           77650                           GOTO                                           
029854,000233: 37,3362           77240                                    COMPDISP                              
029855,000234: 
029856,000235: 37,3363           77624        GETRVN2            CALL                                           
029857,000236: 37,3364           27414                                    INTSTALL                              
029858,000237: 37,3365           52014                           CLEAR    GOTO                                  
029859,000238: 37,3366           01673                                    INTYPFLG                              #  PREC EXTRAP FOR OTHER
029860,000239: 37,3367           77222                                    OTHINT                                
029861,000240: 37,3370           06037        R31SURF            TC       INTPRET                               
029862,000241: 37,3371           77634                           RTB                                            #  LM IS ON SURFACE, SO PRECISION
029863,000242: 37,3372           21573                                    LOADTIME                              #  INTEGRATION USES PLANETARY INERTIAL
029864,000243: 37,3373           34041                           STCALL   TDEC1                                 #  ORIENTATION SUBROUTINE
029865,000244: 37,3374           27057                                    LEMPREC                               
029866,000245: 37,3375           77650                           GOTO                                           #  DO CSM CONIC
029867,000246: 37,3376           77211                                    OTHCONIC                              
029868,000247: 37,3377           40102        MUNG?              CS       FLAGWRD6                              
029869,000248: 37,3400           74744                           MASK     MUNFLBIT                              
029870,000249: 37,3401           00006                           EXTEND                                         
029871,000250: 37,3402           13326                           BZF      GETRVN                                #  IF MUNFLAG SET, CSM BASE NOT NEEDED
029872,000251: 
029873,000252: 37,3403           06037        ONEBASE            TC       INTPRET                               #  GET CSM BASE VECTOR
029874,000253: 37,3404           52034                           RTB      GOTO                                  
029875,000254: 37,3405           21573                                    LOADTIME                              
029876,000255: 37,3406           77144                                    DOCMBASE                              
029877,000256: 
029878,000257: 37,3407           04066        V16N54             VN       1654                                  
029879,000258: 

Page 708
This page is empty.

029882,000261: 

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