Source Code

This source code is very close to the Apollo Guidance Computer software for the Apollo 13 Lunar module. This revision of the Luminary 131 program is from December of 1969, whereas there was a later revision in January of 1970, and still another revision in February, which is the code that flew on the mission. As far as this transcription is concerned, it was originally from a copy made in 1991 of a printout from the collection of AGC developer Don Eyles for collector David Craig. It was subsequently scanned by Gary Neff, reprocessed for online presentation at the now-discontinued History of Recent Science and Technology (HRST) website of MIT's Dibner Institute (the full-quality scans being discarded in the process), and finally transcribed by Ron Burkey for the Virtual AGC Project. Although a high-quality replacement scan for a completely illegible page was later provided by Gary Neff, the reduced legibility of the reprocessed HRST posting nevertheless caused many errors to be introduced into the transcription. Accordingly, a second scan of the same physical printout was made in 2017 for the Virtual AGC Project's collection at the Internet Archive, and used to correct the transcription errors. All of the scanned materials mentioned, as well as other Luminary 131 related material, are available online. Don Eyles apprently made additional hand-written notes in printout between 1991 and 2017, so the two scans are not identical in that respect. The page-headings in the printout read, in part:
	GAP:  ASSEMBLE REVISION 131 OF AGC PROGRAM LUMINARY BY NASA 2021112-091
	17:53 DEC. 19, 1969
Note that the date is the date the printout was made, not the date on which the program revision was released, although these happen to be very close together.

035623,000002:                                                                                                  ## Copyright:   Public domain.
035624,000003:                                                                                                  ## Filename:    P12.agc
035625,000004:                                                                                                  ## Purpose:     A section of Luminary 1C, revision 131.
035626,000005:                                                                                                  ##              It is part of the source code for the Lunar Module's (LM)
035627,000006:                                                                                                  ##              Apollo Guidance Computer (AGC) for Apollo 13.
035628,000007:                                                                                                  ##              This file is intended to be a faithful transcription, except
035629,000008:                                                                                                  ##              that the code format has been changed to conform to the
035630,000009:                                                                                                  ##              requirements of the yaYUL assembler rather than the
035631,000010:                                                                                                  ##              original YUL assembler.
035632,000011:                                                                                                  ## Reference:   pp. 831-835
035633,000012:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
035634,000013:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
035635,000014:                                                                                                  ## Mod history: 05/26/03 RSB.   Began transcribing.
035636,000015:                                                                                                  ##              05/14/05 RSB    Corrected website reference above.
035637,000016:                                                                                                  ##              2017-01-06 RSB  Page numbers now agree with those on the
035638,000017:                                                                                                  ##                              original harcopy, as opposed to the PDF page
035639,000018:                                                                                                  ##                              numbers in 1701.pdf.
035640,000019:                                                                                                  ##              2017-01-28 RSB  Proofed comment text using octopus/prooferComments
035641,000020:                                                                                                  ##                              and fixed errors found.
035642,000021:                                                                                                  ##              2017-02-26 RSB  Proofed comment text using octopus/ProoferComments.
035643,000022:                                                                                                  ##              2017-03-13 RSB  Comment-text fixes noted in proofing Luminary 116.
035644,000023:                                                                                                  ##              2017-08-26 MAS  Fixed a comment-text error found while transcribing
035645,000024:                                                                                                  ##                              Zerlina 56.
035646,000025: 

Page 831

035648,000027: 24,3700                                           BANK     24                                    
035649,000028: 30,2000                                           SETLOC   P12                                   
035650,000029: 30,2000                                           BANK                                           
035651,000030: 
035652,000031: 30,2061  E7,1515                                  EBANK=   DVCNTR                                
035653,000032: 30,2061                                           COUNT*   $$/P12                                
035654,000033: 
035655,000034: 30,2061           05353        P12LM              TC       PHASCHNG                              
035656,000035: 30,2062           04024                           OCT      04024                                 
035657,000036: 
035658,000037: 30,2063           04616                           TC       BANKCALL                              
035659,000038: 30,2064           11233                           CADR     R02BOTH                               #  CHECK THE STATUS OF THE IMU.
035660,000039: 30,2065           06011                           TC       CLRADMOD                              #  INITIALIZE RADMODES FOR R29.
035661,000040: 30,2066           36000                           CAF      THRESH2                               #  INITIALIZE DVMON
035662,000041: 30,2067           55250                           TS       DVTHRUSH                              
035663,000042: 30,2070           34751                           CAF      FOUR                                  
035664,000043: 30,2071           55515                           TS       DVCNTR                                
035665,000044: 
035666,000045: 30,2072           34755                           CA       ZERO                                  
035667,000046: 30,2073           55462                           TS       TRKMKCNT                              #  SHOW THAT R29 DOWNLINK DATA IS NOT READY
035668,000047: 
035669,000048: 30,2074           33022                           CAF      V06N33A                               
035670,000049: 30,2075           04616                           TC       BANKCALL                              #  FLASH TIG
035671,000050: 30,2076           20477                           CADR     GOFLASH                               
035672,000051: 30,2077           16001                           TCF      GOTOPOOH                              
035673,000052: 30,2100           12102                           TCF      +2                                    #  PROCEED
035674,000053: 30,2101           12074                           TCF      -5                                    #  ENTER
035675,000054: 
035676,000055: 30,2102           05353                           TC       PHASCHNG                              
035677,000056: 30,2103           04024                           OCT      04024                                 
035678,000057: 
035679,000058: 30,2104           06042                           TC       INTPRET                               
035680,000059: 30,2105           43014                           SET      SET                                   
035681,000060: 30,2106           03067                                    MUNFLAG                               
035682,000061: 30,2107           06464                                    ACC4-2FL                              
035683,000062: 30,2110           43014                           SET      CLEAR                                 
035684,000063: 30,2111           00075                                    R10FLAG                               
035685,000064: 30,2112           00270                                    RNDVZFLG                              
035686,000065: 30,2113           43014                           SET      SET                                   
035687,000066: 30,2114           04464                                    FLPI                                  
035688,000067: 30,2115           04461                                    FLVR                                  
035689,000068: 30,2116           77624                           CALL                                           #  INITIALIZE WM AND /LAND/
035690,000069: 30,2117           71343                                    GUIDINIT                              
035691,000070: 30,2120           77624                           CALL                                           
035692,000071: 30,2121           60251                                    P12INIT                               
035693,000072: 30,2122           77745        P12LMB             DLOAD                                          
035694,000073: 30,2123           25740                                    (TGO)A                                #  SET TGO TO AN INITIAL NOMINAL VALUE.
035695,000074: 30,2124           17517                           STODL    TGO                                   

Page 832

035697,000076: 30,2125           03442                                    TIG                                   
035698,000077: 30,2126           34041                           STCALL   TDEC1                                 
035699,000078: 30,2127           27056                                    LEMPREC                               #  ROTATE THE STATE VECTORS TO THE
035700,000079: 30,2130           64375                           VLOAD    MXV                                   #  IGNITION TIME.
035701,000080: 30,2131           00007                                    VATT                                  
035702,000081: 30,2132           01734                                    REFSMMAT                              
035703,000082: 30,2133           77772                           VSL1                                           
035704,000083: 30,2134           27601                           STOVL    V1S                                   #  COMPUTE V1S = VEL(TIG)*2(-7) M/CS.
035705,000084: 30,2135           00001                                    RATT                                  
035706,000085: 30,2136           52521                           MXV      VSL6                                  
035707,000086: 30,2137           01734                                    REFSMMAT                              
035708,000087: 30,2140           37521                           STCALL   R                                     #  COMPUTE R = POS(TIG)*2(-24) M.
035709,000088: 30,2141           67067                                    MUNGRAV                               #  COMPUTE GDT1/2(TIG)*2(-7)M/CS.
035710,000089: 30,2142           53575                           VLOAD    UNIT                                  
035711,000090: 30,2143           03521                                    R                                     
035712,000091: 30,2144           37537                           STCALL   UNIT/R/                               #  COMPUTE UNIT/R/ FOR YCOMP.
035713,000092: 30,2145           57313                                    YCOMP                                 
035714,000093: 30,2146           57461                           SR       DCOMP                                 
035715,000094: 30,2147           20606                                    5D                                    
035716,000095: 30,2150           17643                           STODL    XRANGE                                #  INITIALIZE XRANGE FOR NOUN 76.
035717,000096: 30,2151           31367                                    VINJNOM                               
035718,000097: 30,2152           16277                           STODL    ZDOTD                                 
035719,000098: 30,2153           31371                                    RDOTDNOM                              
035720,000099: 30,2154           02273                           STORE    RDOTD                                 
035721,000100: 30,2155           77776                           EXIT                                           
035722,000101: 
035723,000102: 30,2156           05353                           TC       PHASCHNG                              
035724,000103: 30,2157           04024                           OCT      04024                                 
035725,000104: 
035726,000105: 30,2160           33021        NEWLOAD            CAF      V06N76                                #  FLASH CROSS-RANGE AND APOLUNE VALUES.
035727,000106: 30,2161           04616                           TC       BANKCALL                              
035728,000107: 30,2162           20477                           CADR     GOFLASH                               
035729,000108: 30,2163           16001                           TCF      GOTOPOOH                              
035730,000109: 30,2164           12166                           TCF      +2                                    #  PROCEED
035731,000110: 30,2165           12160                           TCF      NEWLOAD                               #  ENTER NEW DATA.
035732,000111: 
035733,000112: 30,2166           32314                           CAF      P12ADRES                              
035734,000113: 30,2167           55455                           TS       WHICH                                 
035735,000114: 
035736,000115: 30,2170           05353                           TC       PHASCHNG                              
035737,000116: 30,2171           04024                           OCT      04024                                 
035738,000117: 
035739,000118: 30,2172           06042                           TC       INTPRET                               
035740,000119: 30,2173           54345                           DLOAD    SL                                    
035741,000120: 30,2174           03643                                    XRANGE                                
035742,000121: 30,2175           20206                                    5D                                    
035743,000122: 30,2176           77615                           DAD                                            
035744,000123: 30,2177           02335                                    Y                                     
035745,000124: 30,2200           27633                           STOVL    YCO                                   
035746,000125: 30,2201           03537                                    UNIT/R/                               

Page 833

035748,000127: 30,2202           53361                           VXSC     VAD                                   
035749,000128: 30,2203           31365                                    49FPS                                 
035750,000129: 30,2204           03601                                    V1S                                   
035751,000130: 30,2205           03527                           STORE    V                                     #  V(TIPOVER) = V(IGN) + 57FPS (UNIT/R/)
035752,000131: 30,2206           72441                           DOT      SL1                                   
035753,000132: 30,2207           03537                                    UNIT/R/                               
035754,000133: 30,2210           27474                           STOVL    RDOT                                  #  RDOT * 2(-7)
035755,000134: 30,2211           03537                                    UNIT/R/                               
035756,000135: 30,2212           53435                           VXV      UNIT                                  
035757,000136: 30,2213           03720                                    QAXIS                                 
035758,000137: 30,2214           37726                           STCALL   ZAXIS1                                
035759,000138: 30,2215           60315                                    ASCENT                                
035760,000139: 30,2216           77745        P12RET             DLOAD                                          
035761,000140: 30,2217           02361                                    ATP                                   #  ATP(2)*2(18)
035762,000141: 30,2220           65316                           DSQ      PDDL                                  
035763,000142: 30,2221           02355                                    ATY                                   #  ATY(2)*2(18)
035764,000143: 30,2222           43316                           DSQ      DAD                                   
035765,000144: 30,2223           75454                           BZE      SQRT                                  
035766,000145: 30,2224           60230                                    YAWDUN                                
035767,000146: 30,2225           55352                           SL1      BDDV                                  
035768,000147: 30,2226           02355                                    ATY                                   
035769,000148: 30,2227           77736                           ARCSIN                                         
035770,000149: 30,2230           26363        YAWDUN             STOVL    YAW                                   
035771,000150: 30,2231           03253                                    UNFC/2                                
035772,000151: 30,2232           50256                           UNIT     DOT                                   
035773,000152: 30,2233           03537                                    UNIT/R/                               
035774,000153: 30,2234           65552                           SL1      ARCCOS                                
035775,000154: 30,2235           77676                           DCOMP                                          
035776,000155: 30,2236           02365                           STORE    PITCH                                 
035777,000156: 30,2237           77776                           EXIT                                           
035778,000157: 30,2240           05353                           TC       PHASCHNG                              
035779,000158: 30,2241           04024                           OCT      04024                                 
035780,000159: 
035781,000160: 30,2242           00004                           INHINT                                         
035782,000161: 30,2243           04674                           TC       IBNKCALL                              
035783,000162: 30,2244           40143                           CADR     PFLITEDB                              
035784,000163: 30,2245           05516                           TC       DOWNFLAG                              
035785,000164: 30,2246           00213                           ADRES    FLPI                                  
035786,000165: 
035787,000166: 30,2247           04635                           TC       POSTJUMP                              
035788,000167: 30,2250           74130                           CADR     BURNBABY                              
035789,000168: 
035790,000169: 30,2251           77745        P12INIT            DLOAD                                          #  INITIALIZE ENGINE DATA.  USED FOR P12 AND
035791,000170: 30,2252           16013                                    (1/DV)A                               #  P71.
035792,000171: 30,2253           03641                           STORE    1/DV3                                 
035793,000172: 30,2254           03637                           STORE    1/DV2                                 
035794,000173: 30,2255           17635                           STODL    1/DV1                                 
035795,000174: 30,2256           16017                                    (AT)A                                 
035796,000175: 30,2257           16263                           STODL    AT                                    
035797,000176: 30,2260           16021                                    (TBUP)A                               

Page 834

035799,000178: 30,2261           16271                           STODL    TBUP                                  
035800,000179: 30,2262           34013                                    ATDECAY                               
035801,000180: 30,2263           54276                           DCOMP    SL                                    
035802,000181: 30,2264           20214                                    11D                                   
035803,000182: 30,2265           02267                           STORE    TTO                                   
035804,000183: 30,2266           57535                           SLOAD    DCOMP                                 
035805,000184: 30,2267           26001                                    APSVEX                                
035806,000185: 30,2270           77702                           SR2                                            
035807,000186: 30,2271           02265                           STORE    VE                                    
035808,000187: 30,2272           43414                           BOFF     RVQ                                   
035809,000188: 30,2273           04747                                    FLAP                                  
035810,000189: 30,2274           60275                                    COMMINIT                              
035811,000190: 30,2275           43345        COMMINIT           DLOAD    DAD                                   #  INITIALIZE TARGET DATA.  USED BY P12, P70
035812,000191: 30,2276           25736                                    HINJECT                               #  AND P71 IF IT DOES NOT FOLLOW P70.
035813,000192: 30,2277           02333                                    /LAND/                                
035814,000193: 30,2300           17631                           STODL    RCO                                   
035815,000194: 30,2301           06524                                    HI6ZEROS                              
035816,000195: 30,2302           03654                           STORE    TXO                                   
035817,000196: 30,2303           03633                           STORE    YCO                                   
035818,000197: 30,2304           26275                           STOVL    YDOTD                                 
035819,000198: 30,2305           01563                                    VRECTCSM                              
035820,000199: 30,2306           64235                           VXV      MXV                                   
035821,000200: 30,2307           01555                                    RRECTCSM                              
035822,000201: 30,2310           01734                                    REFSMMAT                              
035823,000202: 30,2311           77656                           UNIT                                           
035824,000203: 30,2312           03720                           STORE    QAXIS                                 
035825,000204: 30,2313           77616                           RVQ                                            
035826,000205: 
035827,000206: 30,2314           02024        P12ADRES           REMADR   P12TABLE                              
035828,000207: 
035829,000208: 34,2000                                           SETLOC   ASENT8                                
035830,000209: 34,2000                                           BANK                                           
035831,000210: 34,3343                                           COUNT*   $$/P12                                
035832,000211: 
035833,000212: 34,3343           40220        GUIDINIT           STQ      SETPD                                 
035834,000213: 34,3344           01163                                    TEMPR60                               
035835,000214: 34,3345           00001                                    0D                                    
035836,000215: 34,3346           41575                           VLOAD    PUSH                                  
035837,000216: 34,3347           06516                                    UNITZ                                 
035838,000217: 34,3350           41434                           RTB      PUSH                                  
035839,000218: 34,3351           21574                                    LOADTIME                              
035840,000219: 34,3352           77624                           CALL                                           
035841,000220: 34,3353           55716                                    RP-TO-R                               
035842,000221: 34,3354           74321                           MXV      VXSC                                  
035843,000222: 34,3355           01734                                    REFSMMAT                              
035844,000223: 34,3356           16027                                    MOONRATE                              
035845,000224: 34,3357           26325                           STOVL    WM                                    
035846,000225: 34,3360           02023                                    RLS                                   
035847,000226: 34,3361           52446                           ABVAL    SL3                                   
035848,000227: 34,3362           36333                           STCALL   /LAND/                                

Page 835

035850,000229: 34,3363           01163                                    TEMPR60                               
035851,000230: 
035852,000231: 34,3364           00046 07374  49FPS              2DEC     .149352    B-6                        #  EXPECTED RDOT AT TIPOVER
035853,000232: 34,3366           04145 15527  VINJNOM            2DEC     16.7924    B-7                        #  5509.5 FPS(APO=30NM WITH RDOT=19.5FPS)
035854,000233: 34,3370           00007 23346  RDOTDNOM           2DEC     .059436    B-7                        #  19.5 FPS
035855,000234: 
035856,000235: 

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