Source Code

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

The reconstruction began with source code of Zerlina 56, Luminary 210, and Luminary 131, previously transcribed from digitized copies of those programs. The code was created by combining the three, using Zerlina 56 as a base, since it was based off of Luminary 183. The differences between the three were carefully merged using the Luminary memos as a guide, with all changes made after Luminary 178 being backed out. The reconstruction was verified by matching memory-bank checksums to those listed in drawing 2021152N. Note that page numbers in the reconstructed code match those for the baseline log section mentioned in each file's changelog; the page numbers for a real Luminary 178 listing would be different.

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.

030057,000002:                                                                                                  ## Copyright:   Public domain.
030058,000003:                                                                                                  ## Filename:    R31.agc
030059,000004:                                                                                                  ## Purpose:     A section of Luminary revision 178.
030060,000005:                                                                                                  ##              It is part of the reconstructed source code for the final
030061,000006:                                                                                                  ##              release of the flight software for the Lunar Module's
030062,000007:                                                                                                  ##              (LM) Apollo Guidance Computer (AGC) for Apollo 14. The
030063,000008:                                                                                                  ##              code has been recreated from copies of Zerlina 56, Luminary
030064,000009:                                                                                                  ##              210, and Luminary 131, as well as many Luminary memos.
030065,000010:                                                                                                  ##              It has been adapted such that the resulting bugger words
030066,000011:                                                                                                  ##              exactly match those specified for Luminary 178 in NASA
030067,000012:                                                                                                  ##              drawing 2021152N, which gives relatively high confidence
030068,000013:                                                                                                  ##              that the reconstruction is correct.
030069,000014:                                                                                                  ## Reference:   pp. 698-702
030070,000015:                                                                                                  ## Assembler:   yaYUL
030071,000016:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
030072,000017:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
030073,000018:                                                                                                  ## Mod history: 2019-08-14 MAS  Created from Zerlina 56.
030074,000019: 

Page 698

030076,000021: 40,3746                                           BANK     40                                    
030077,000022: 40,2000                                           SETLOC   R31LOC                                
030078,000023: 40,2000                                           BANK                                           
030079,000024: 
030080,000025: 40,3746                                           COUNT*   $$/R31                                
030081,000026: 
030082,000027: 40,3746           35015        R31CALL            CAF      PRIO3                                 
030083,000028: 40,3747           05105                           TC       FINDVAC                               
030084,000029: 40,3750  E7,1470                                  EBANK=   SUBEXIT                               
030085,000030: 40,3750           03113 76067                     2CADR    V83CALL                               
030086,000031: 
030087,000032: 40,3752           05232        DSPDELAY           TC       FIXDELAY                              
030088,000033: 40,3753           00144                           DEC      100        B-14                       
030089,000034: 40,3754           31043                           CA       EXTVBACT                              
030090,000035: 40,3755           74740                           MASK     BIT12                                 
030091,000036: 40,3756           00006                           EXTEND                                         
030092,000037: 40,3757           13752                           BZF      DSPDELAY                              
030093,000038: 
030094,000039: 40,3760           35017                           CAF      PRIO5                                 
030095,000040: 40,3761           05072                           TC       NOVAC                                 
030096,000041: 40,3762  E7,1611                                  EBANK=   TSTRT                                 
030097,000042: 40,3762           03766 60107                     2CADR    DISPN5X                               
030098,000043: 
030099,000044: 40,3764           15272                           TCF      TASKOVER                              
030100,000045: 
030101,000046: 40,3765           04066        V16N54             VN       1654                                  
030102,000047: 40,3766           33765        DISPN5X            CAF      V16N54                                
030103,000048: 40,3767           04616                           TC       BANKCALL                              
030104,000049: 40,3770           20334                           CADR     GOMARKF                               
030105,000050: 40,3771           05574                           TC       B5OFF                                 
030106,000051: 40,3772           05574                           TC       B5OFF                                 
030107,000052: 40,3773           13766                           TCF      DISPN5X                               
030108,000053: 
030109,000054: 37,3113                                           BANK     37                                    
030110,000055: 37,2000                                           SETLOC   R31                                   
030111,000056: 37,2000                                           BANK                                           
030112,000057: 
030113,000058: 37,3113           40103        V83CALL            CS       FLAGWRD7                              #  TEST AVERAGE G FLAG
030114,000059: 37,3114           74747                           MASK     AVEGFBIT                              
030115,000060: 37,3115           00006                           EXTEND                                         
030116,000061: 37,3116           13371                           BZF      MUNG?                                 #  ON - TEST MUNFLAG
030117,000062: 
030118,000063: 37,3117           40104                           CS       FLAGWRD8                              
030119,000064: 37,3120           74744                           MASK     SURFFBIT                              
030120,000065: 37,3121           00006                           EXTEND                                         
030121,000066: 37,3122           13375                           BZF      ONEBASE                               #  ON SURFACE - BYPASS LEMPREC
030122,000067: 
030123,000068: 37,3123           06042                           TC       INTPRET                               #  EXTRAPOLATE BOTH STATE VECTORS
030124,000069: 37,3124           77634                           RTB                                            

Page 699

030126,000071: 37,3125           21574                                    LOADTIME                              
030127,000072: 37,3126           34041                           STCALL   TDEC1                                 
030128,000073: 37,3127           27056                                    LEMPREC                               #  PRECISION BASE VECTOR FOR LM
030129,000074: 37,3130           77775                           VLOAD                                          
030130,000075: 37,3131           00017                                    RATT1                                 
030131,000076: 37,3132           26170                           STOVL    BASETHP                               
030132,000077: 37,3133           00025                                    VATT1                                 
030133,000078: 37,3134           16105                           STODL    BASETHV                               
030134,000079: 37,3135           00015                                    TAT                                   
030135,000080: 37,3136           02114        DOCMBASE           STORE    BASETIME                              #  PRECISION BASE VECTOR FOR CM
030136,000081: 37,3137           34041                           STCALL   TDEC1                                 
030137,000082: 37,3140           27042                                    CSMPREC                               
030138,000083: 37,3141           77775                           VLOAD                                          
030139,000084: 37,3142           00017                                    RATT1                                 
030140,000085: 37,3143           26140                           STOVL    BASEOTP                               
030141,000086: 37,3144           00025                                    VATT1                                 
030142,000087: 37,3145           02120                           STORE    BASEOTV                               
030143,000088: 37,3146           77776                           EXIT                                           
030144,000089: 
030145,000090: 37,3147           40103        REV83              CS       FLAGWRD7                              
030146,000091: 37,3150           74747                           MASK     AVEGFBIT                              
030147,000092: 37,3151           00006                           EXTEND                                         
030148,000093: 37,3152           13320                           BZF      GETRVN                                #  IF AVEGFLAG SET, USE RN,VN
030149,000094: 
030150,000095: 37,3153           40104                           CS       FLAGWRD8                              
030151,000096: 37,3154           74744                           MASK     SURFFBIT                              
030152,000097: 37,3155           00006                           EXTEND                                         
030153,000098: 37,3156           13362                           BZF      R31SURF                               #  IF ON SURFACE,USE LEMAREC
030154,000099: 
030155,000100: 37,3157           06042                           TC       INTPRET                               #  DO CONIC EXTRAPOLATION FOR BOTH VEHICLES
030156,000101: 37,3160           77634                           RTB                                            
030157,000102: 37,3161           21574                                    LOADTIME                              
030158,000103: 37,3162           34041                           STCALL   TDEC1                                 
030159,000104: 37,3163           27410                                    INTSTALL                              
030160,000105: 37,3164           43175                           VLOAD    CLEAR                                 
030161,000106: 37,3165           02170                                    BASETHP                               
030162,000107: 37,3166           00263                                    MOONFLAG                              
030163,000108: 37,3167           25535                           STOVL    RCV                                   
030164,000109: 37,3170           02105                                    BASETHV                               
030165,000110: 37,3171           15543                           STODL    VCV                                   
030166,000111: 37,3172           02114                                    BASETIME                              
030167,000112: 37,3173           43014                           BOF      SET                                   #  GET APPROPRIATE MOONFLAG SETTING
030168,000113: 37,3174           04344                                    MOONTHIS                              
030169,000114: 37,3175           77177                                    +2                                    
030170,000115: 37,3176           00063                                    MOONFLAG                              
030171,000116: 37,3177           77614                           SET                                            
030172,000117: 37,3200           01473                                    INTYPFLG                              #  CONIC EXTRAP.
030173,000118: 37,3201           35517                           STCALL   TET                                   
030174,000119: 37,3202           27106                                    INTEGRVS                              #  INTEGRATION --- AT LAST---
030175,000120: 37,3203           77775        OTHCONIC           VLOAD                                          

Page 700

030177,000122: 37,3204           00001                                    RATT                                  
030178,000123: 37,3205           26207                           STOVL    RONE                                  
030179,000124: 37,3206           00007                                    VATT                                  
030180,000125: 37,3207           36215                           STCALL   VONE                                  #  GET SET FOR CONIC EXTRAP.,OTHER.
030181,000126: 37,3210           27410                                    INTSTALL                              
030182,000127: 37,3211           71214                           SET      DLOAD                                 
030183,000128: 37,3212           01473                                    INTYPFLG                              
030184,000129: 37,3213           00015                                    TAT                                   
030185,000130: 37,3214           00041        OTHINT             STORE    TDEC1                                 
030186,000131: 37,3215           43175                           VLOAD    CLEAR                                 
030187,000132: 37,3216           02140                                    BASEOTP                               
030188,000133: 37,3217           00263                                    MOONFLAG                              
030189,000134: 37,3220           25535                           STOVL    RCV                                   
030190,000135: 37,3221           02120                                    BASEOTV                               
030191,000136: 37,3222           15543                           STODL    VCV                                   
030192,000137: 37,3223           02114                                    BASETIME                              
030193,000138: 37,3224           43014                           BOF      SET                                   
030194,000139: 37,3225           04344                                    MOONTHIS                              
030195,000140: 37,3226           77230                                    +2                                    
030196,000141: 37,3227           00063                                    MOONFLAG                              
030197,000142: 37,3230           35517                           STCALL   TET                                   
030198,000143: 37,3231           27106                                    INTEGRVS                              
030199,000144: 37,3232           52375        COMPDISP           VLOAD    VSU                                   
030200,000145: 37,3233           00001                                    RATT                                  
030201,000146: 37,3234           02207                                    RONE                                  
030202,000147: 37,3235           65234                           RTB      PDDL                                  
030203,000148: 37,3236           21725                                    NORMUNX1                              #  UNIT(RANGE) TO PD 0-5
030204,000149: 37,3237           00045                                    36D                                   
030205,000150: 37,3240           77657                           SL*                                            #  RESCALE AFTER NORMUNIT
030206,000151: 37,3241           20201                                    0,1                                   
030207,000152: 37,3242           26201                           STOVL    RANGE                                 #  SCALED 2(29)M
030208,000153: 37,3243           00007                                    VATT                                  
030209,000154: 37,3244           50251                           VSU      DOT                                   #  (VCM- VLM).UNIT(LOS), PD=0
030210,000155: 37,3245           02215                                    VONE                                  
030211,000156: 37,3246           77752                           SL1                                            #  SCALED 2(7)M/CS
030212,000157: 37,3247           26203                           STOVL    RRATE                                 
030213,000158: 37,3250           02207                                    RONE                                  
030214,000159: 37,3251           63256                           UNIT     PDVL                                  #  UNIT(R) TO PD 0-5
030215,000160: 37,3252           06462                                    UNITZ                                 
030216,000161: 37,3253           77624                           CALL                                           
030217,000162: 37,3254           47636                                    CDU*NBSM                              
030218,000163: 37,3255           41505                           VXM      PUSH                                  #  UNIT (Z)/4 TO PD 6-11
030219,000164: 37,3256           01732                                    REFSMMAT                              
030220,000165: 37,3257           72431                           VPROJ    VSL2                                  #  UNIT(P)=UNIT(UZ -(UZ)PROJ(UR))
030221,000166: 37,3260           00001                                    0D                                    
030222,000167: 37,3261           53445                           BVSU     UNIT                                  
030223,000168: 37,3262           00007                                    6D                                    
030224,000169: 37,3263           47315                           PDVL     VXV                                   #  UNIT(P) TO PD 12-17
030225,000170: 37,3264           00001                                    0D                                    #  UNIT(RL)
030226,000171: 37,3265           02215                                    VONE                                  

Page 701

030228,000173: 37,3266           50235                           VXV      DOT                                   #  (UR * VL)*UR . U(P)
030229,000174: 37,3267           00001                                    0D                                    
030230,000175: 37,3270           00015                                    12D                                   
030231,000176: 37,3271           77715                           PDVL                                           #  SIGN TO 12-13 , LOAD U(P)
030232,000177: 37,3272           75241                           DOT      SIGN                                  
030233,000178: 37,3273           00007                                    6D                                    
030234,000179: 37,3274           00015                                    12D                                   
030235,000180: 37,3275           65512                           SL2      ACOS                                  #  ARCCOS(UP.UZ(SIGN))
030236,000181: 37,3276           26205                           STOVL    RTHETA                                
030237,000182: 37,3277           00001                                    0D                                    
030238,000183: 37,3300           51041                           DOT      BPL                                   #  IF UR.UZ NEG,
030239,000184: 37,3301           00007                                    6D                                    #    RTHETA = 1 - RTHETA
030240,000185: 37,3302           77307                                    +5                                    
030241,000186: 37,3303           45345                           DLOAD    DSU                                   
030242,000187: 37,3304           06476                                    DPPOSMAX                              
030243,000188: 37,3305           02205                                    RTHETA                                
030244,000189: 37,3306           02205                           STORE    RTHETA                                
030245,000190: 37,3307           77776                           EXIT                                           
030246,000191: 
030247,000192: 37,3310           34747                           CA       BIT5                                  
030248,000193: 37,3311           71043                           MASK     EXTVBACT                              
030249,000194: 37,3312           00006                           EXTEND                                         #  IF ANSWERED,
030250,000195: 37,3313           15503                           BZF      ENDEXT                                #         TERMINATE
030251,000196: 
030252,000197: 37,3314           41043                           CS       EXTVBACT                              
030253,000198: 37,3315           74740                           MASK     BIT12                                 
030254,000199: 37,3316           27043                           ADS      EXTVBACT                              #  SET BIT 12
030255,000200: 37,3317           13147                           TCF      REV83                                 #  AND START AGAIN.
030256,000201: 
030257,000202: 37,3320           37713        GETRVN             CA       PRIO22                                #  INHIBIT SERVICER
030258,000203: 37,3321           05146                           TC       PRIOCHNG                              
030259,000204: 37,3322           06042                           TC       INTPRET                               
030260,000205: 37,3323           40375                           VLOAD    SETPD                                 
030261,000206: 37,3324           01220                                    RN                                    #  LM STATE VECTOR IN RN,VN
030262,000207: 37,3325           00001                                    0                                     
030263,000208: 37,3326           26207                           STOVL    RONE                                  
030264,000209: 37,3327           01226                                    VN                                    
030265,000210: 37,3330           26215                           STOVL    VONE                                  #  LOAD R(CSM),V(CSM) IN CASE MUNFLAG SET
030266,000211: 37,3331           01724                                    V(CSM)                                #  (TO INSURE TIME COMPATABILITY)
030267,000212: 37,3332           65315                           PDVL     PDDL                                  
030268,000213: 37,3333           01716                                    R(CSM)                                
030269,000214: 37,3334           01234                                    PIPTIME                               
030270,000215: 37,3335           77776                           EXIT                                           
030271,000216: 37,3336           35015                           CA       PRIO3                                 
030272,000217: 37,3337           05146                           TC       PRIOCHNG                              
030273,000218: 37,3340           06042                           TC       INTPRET                               
030274,000219: 37,3341           77214                           BOFF     VLOAD                                 
030275,000220: 37,3342           03347                                    MUNFLAG                               
030276,000221: 37,3343           77355                                    GETRVN2                               #  IF MUNFLAG RESET, DO CM DELTA PRECISION

Page 702

030278,000223: 37,3344           60505                           VXM      VSR4                                  #  CHANGE TO REFERENCE SYSTEM AND RESCALE
030279,000224: 37,3345           01732                                    REFSMMAT                              
030280,000225: 37,3346           77715                           PDVL                                           #  R TO PD 0-5
030281,000226: 37,3347           76505                           VXM      VSL1                                  
030282,000227: 37,3350           01732                                    REFSMMAT                              
030283,000228: 37,3351           40206                           PUSH     SETPD                                 #  V TO PD 5-11
030284,000229: 37,3352           00001                                    0                                     
030285,000230: 37,3353           77650                           GOTO                                           
030286,000231: 37,3354           77232                                    COMPDISP                              
030287,000232: 
030288,000233: 37,3355           77624        GETRVN2            CALL                                           
030289,000234: 37,3356           27410                                    INTSTALL                              
030290,000235: 37,3357           52014                           CLEAR    GOTO                                  
030291,000236: 37,3360           01673                                    INTYPFLG                              #  PREC EXTRAP FOR OTHER
030292,000237: 37,3361           77214                                    OTHINT                                
030293,000238: 37,3362           06042        R31SURF            TC       INTPRET                               
030294,000239: 37,3363           77634                           RTB                                            #  LM IS ON SURFACE, SO PRECISION
030295,000240: 37,3364           21574                                    LOADTIME                              #  INTEGRATION USES PLANETARY INERTIAL
030296,000241: 37,3365           34041                           STCALL   TDEC1                                 #  ORIENTATION SUBROUTINE
030297,000242: 37,3366           27056                                    LEMPREC                               
030298,000243: 37,3367           77650                           GOTO                                           #  DO CSM CONIC
030299,000244: 37,3370           77203                                    OTHCONIC                              
030300,000245: 37,3371           40102        MUNG?              CS       FLAGWRD6                              
030301,000246: 37,3372           74744                           MASK     MUNFLBIT                              
030302,000247: 37,3373           00006                           EXTEND                                         
030303,000248: 37,3374           13320                           BZF      GETRVN                                #  IF MUNFLAG SET, CSM BASE NOT NEEDED
030304,000249: 
030305,000250: 37,3375           06042        ONEBASE            TC       INTPRET                               #  GET CSM BASE VECTOR
030306,000251: 37,3376           52034                           RTB      GOTO                                  
030307,000252: 37,3377           21574                                    LOADTIME                              
030308,000253: 37,3400           77136                                    DOCMBASE                              

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