Source Code

These source-code files were transcribed from scans made from Don Eyles's personal copy of Luminary 069. They were scanned at archive.org's Boston facility, and the scanning was sponsored by Onno Hommes. The code was transcribed from these scans by a team of volunteers who are referenced in the program comments. Comments from the original source code are prefixed with a single '#' symbol, whereas comments added later are prefixed by "##" or "###". In some cases, where similar code blocks exist in previously-transcribed AGC programs (primarily Luminary 99, from Apollo 11) those code blocks were used as a starting point and then corrected to agree with the Luminary 69 scans. The full scans are available at the Virtual AGC project's collection at archive.org, while more-convenient reduced-size (but reduced-quality) images are available at the main Virtual AGC website. Report any errors noted by creating an issue report at the Virtual AGC project's GitHub repository. Notations on the program listing read, in part:

	GAP:  ASSEMBLE REVISION 069 OF AGC PROGRAM LUMINARY BY NASA 2021112-011
	19:02 NOV. 25,1968
Note that the date is the date of the printout, not the date of the program revision.

009520,000002:                                                                                                  ## Copyright:   Public domain.
009521,000003:                                                                                                  ## Filename:    AGS_INITIALIZATION.agc
009522,000004:                                                                                                  ## Purpose:     The main source file for Luminary revision 069.
009523,000005:                                                                                                  ##              It is part of the source code for the original release
009524,000006:                                                                                                  ##              of the flight software for the Lunar Module's (LM) Apollo
009525,000007:                                                                                                  ##              Guidance Computer (AGC) for Apollo 10. The actual flown
009526,000008:                                                                                                  ##              version was Luminary 69 revision 2, which included a
009527,000009:                                                                                                  ##              newer lunar gravity model and only affected module 2.
009528,000010:                                                                                                  ##              This file is intended to be a faithful transcription, except
009529,000011:                                                                                                  ##              that the code format has been changed to conform to the
009530,000012:                                                                                                  ##              requirements of the yaYUL assembler rather than the
009531,000013:                                                                                                  ##              original YUL assembler.
009532,000014:                                                                                                  ## Reference:   pp. 221-225
009533,000015:                                                                                                  ## Assembler:   yaYUL
009534,000016:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
009535,000017:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
009536,000018:                                                                                                  ## Mod history: 2016-12-13 MAS  Created from Luminary 99.
009537,000019:                                                                                                  ##              2017-01-08 HG   Transcribed
009538,000020:                                                                                                  ##              2017-01-25 RSB  Proofed comment text using octopus/prooferComments
009539,000021:                                                                                                  ##                              but no errors found.
009540,000022: 

Page 221

009542,000024: 
009543,000025:                                                                                                  #  PROGRAM NAME:   AGS INITIALIZATION (R47)
009544,000026: 
009545,000027:                                                                                                  #  WRITTEN BY  :   RHODE/KILROY/FOLLETT
009546,000028: 
009547,000029:                                                                                                  #  MOD NO. :       0
009548,000030:                                                                                                  #  DATE    :       23 MARCH 1967
009549,000031:                                                                                                  #  MOD BY  :       KILROY
009550,000032: 
009551,000033:                                                                                                  #  MOD NO. :       1
009552,000034:                                                                                                  #  DATE    :       28 OCTOBER 1967
009553,000035:                                                                                                  #  MOD BY  :       FOLLETT
009554,000036: 
009555,000037:                                                                                                  #  FUNCT. DESC.:   (1) TO PROVIDE THE AGS ABORT ELECTRONICS ASSEMBLY(AEA) WITH THE LEM AND CSM STATE VECTORS
009556,000038:                                                                                                  #                  (POSITION,VELOCITY,TIME) IN LEM IMU COORDINATES BY MEANS OF THE LGC DIGITAL DOWNLINK.
009557,000039: 
009558,000040:                                                                                                  #                  (2) TO ZERO THE ICDU, LGC AND AEA GIMBAL ANGLE COUNTERS SIMULTANEOUSLY IN ORDER TO ESTABLISH A
009559,000041:                                                                                                  #                  COMMON ZERO REFERENCE FOR THE MEASUREMENT OF GIMBAL(EULER) ANGLES WHICH DEFINE LEM ATTITUDE
009560,000042:                                                                                                  #                  (3) TO ESTABLISH THE GROUND ELAPSED TIME OF AEA CLOCK ZERO.(IF AN AEA CLOCK ZERO IS
009561,000043:                                                                                                  #                  REQUESTED DURING THIS PROGRAM
009562,000044: 
009563,000045:                                                                                                  #  LOG SECTION :   AGS INITIALIZATION
009564,000046: 
009565,000047:                                                                                                  #  CALLING SEQ :   PROGRAM IS ENTERED WHEN ASTRONAUT KEYS V47E ON DSKY.
009566,000048:                                                                                                  #                  R47 MAY BE CALLED AT ANY TIME EXCEPT WHEN ANOTHER EXTENDED VERB IS IN PROGRESS
009567,000049: 
009568,000050:                                                                                                  #  SUBROUTINES
009569,000051:                                                                                                  #  CALLED      :
009570,000052: 
009571,000053:                                                                                                  #  NORMAL EXIT :   ENDEXT
009572,000054: 
009573,000055:                                                                                                  #  ALARM/ABORT :   ALARM - BAD REFSMMAT - CODE:220
009574,000056:                                                                                                  #                  OPERATOR ERROR IF V47 SELECTED DURING ANOTHER EXTENDED VERB.
009575,000057: 
009576,000058:                                                                                                  #  ERASABLES
009577,000059:                                                                                                  #  USED        :   SAMPTIME    (2) TIME OF :ENTER: KEYSTROKE
009578,000060:                                                                                                  #                  AGSK        (2) GROUND ELAPSED TIME OF THE AEA CLOCK :ZERO:
009579,000061:                                                                                                  #                  AGSBUFF   (140) CONTAINS AGS INITIALIZATION DATA (SEE :OUTPUT: BELOW)
009580,000062:                                                                                                  #                  AGSWORD     (1) PREVIOUS DOWNLIST SAVED HERE
009581,000063: 
009582,000064: 05,2447  E4,1604                                  EBANK=   AGSBUFF                               
009583,000065: 
009584,000066: 40,2000                                           BANK     40                                    
009585,000067: 32,2000                                           SETLOC   R47                                   
009586,000068: 32,2000                                           BANK                                           
009587,000069: 
009588,000070: 32,2015                                           COUNT*   $$/R47                                
009589,000071: 
009590,000072: 32,2015           34737        AGSINIT            CAF      REFSMBIT                              
009591,000073: 32,2016           70077                           MASK     FLAGWRD3                              #  CHECK REFSMFLG.
009592,000074: 32,2017           10000                           CCS      A                                     
009593,000075: 

Page 222

009595,000077: 32,2020           02027                           TC       REDSPTEM                              #  REFSMMAT IS OK
009596,000078: 32,2021           05567                           TC       ALARM                                 #  REFSMMAT IS BAD
009597,000079: 32,2022           00220                           OCT      220                                   
009598,000080: 32,2023           05472                           TC       ENDEXT                                
009599,000081: 
009600,000082: 32,2024           00006        NEWAGS             EXTEND                                         
009601,000083: 32,2025           30014                           DCA      SAMPTIME                              #  TIME OF THE :ENTER: KEYSTROKE
009602,000084: 32,2026           53421                           DXCH     AGSK                                  #  BECOMES NEW AEA CLOCK :ZERO:
009603,000085: 
009604,000086: 32,2027           00006        REDSPTEM           EXTEND                                         
009605,000087: 32,2030           31421                           DCA      AGSK                                  
009606,000088: 32,2031           53052                           DXCH     DSPTEMX                               
009607,000089: 32,2032           32202        AGSDISPK           CAF      V06N16                                
009608,000090: 32,2033           04616                           TC       BANKCALL                              #  R1 = 00XXX. HRS., R2 = 000XX MIN.,
009609,000091: 32,2034           20212                           CADR     GOMARKF                               #  R3 = 0XX.XX SEC.
009610,000092: 32,2035           05472                           TC       ENDEXT                                #  TERMINATE RETURN
009611,000093: 32,2036           02046                           TC       AGSVCALC                              #  PROCEED   RETURN
009612,000094: 32,2037           44746                           CS       BIT6                                  #  IS ENTER VIA A V32
009613,000095: 32,2040           60154                           AD       MPAC                                  
009614,000096: 32,2041           00006                           EXTEND                                         
009615,000097: 32,2042           12024                           BZF      NEWAGS                                #  YES, USE KEYSTROKE TIME FOR NEW AGSK
009616,000098: 
009617,000099: 32,2043           00006                           EXTEND                                         #  NO, NEW AGSK LOADED VIA V25
009618,000100: 32,2044           31052                           DCA      DSPTEMX                               #  LOADED INTO DSPTEMX BY KEYING
009619,000101: 32,2045           02026                           TC       REDSPTEM   -1                         #  V25E FOLLOWED BY HRS.,MINS.,SECS.
009620,000102:                                                                                                  #  DISPLAY THE NEW K
009621,000103: 
009622,000104: 32,2046           06036        AGSVCALC           TC       INTPRET                               
009623,000105: 32,2047           77614                           SET                                            
009624,000106: 32,2050           01076                                    NODOFLAG                              #  DONT ALLOW V37
009625,000107: 32,2051           77414                           SET      EXIT                                  
009626,000108: 32,2052           02076                                    XDSPFLAG                              
009627,000109: 
009628,000110: 32,2053           32202                           CAF      V06N16                                
009629,000111: 32,2054           04616                           TC       BANKCALL                              
009630,000112: 32,2055           20473                           CADR     EXDSPRET                              
009631,000113: 
009632,000114: 32,2056           06036                           TC       INTPRET                               #  EXTRAPOLATE LEM AND CSM STATE VECTORS
009633,000115: 32,2057           77634                           RTB                                            #  TO THE PRESENT TIME
009634,000116: 32,2060           21462                                    LOADTIME                              #  LOAD MPAC WITH TIME2,TIME1
009635,000117: 32,2061           34041                           STCALL   TDEC1                                 #  CALCULATE LEM STATE VECTOR
009636,000118: 32,2062           27057                                    LEMPREC                               
009637,000119: 32,2063           77624                           CALL                                           #  CALL ROUTINE TO CONVERT TO SM COORDS AND
009638,000120: 32,2064           64142                                    SCALEVEC                              #  PROVIDE PROPER SCALING
009639,000121: 32,2065           16205                           STODL    AGSBUFF                               #  (LEMPREC AND CSMPREC LEAVE TDEC1 IN TAT)
009640,000122: 32,2066           00015                                    TAT                                   #  TAT = TIME TO WHICH RATT1 AND VATT1 ARE
009641,000123: 32,2067           34041                           STCALL   TDEC1                                 #  COMPUTED(CSEC SINCE CLOCK START B-28).
009642,000124: 32,2070           27043                                    CSMPREC                               #  CALCULATE CSM STATE VECTOR FOR SAME TIME
009643,000125: 32,2071           77624                           CALL                                           
009644,000126: 32,2072           64142                                    SCALEVEC                              
009645,000127: 

Page 223

009647,000129: 32,2073           16213                           STODL    AGSBUFF    +6                         
009648,000130: 32,2074           00015                                    TAT                                   
009649,000131: 32,2075           56225                           DSU      DDV                                   #  CALCULATE AND STORE THE TIME
009650,000132: 32,2076           02021                                    AGSK                                  
009651,000133: 32,2077           24205                                    TSCALE                                
009652,000134: 32,2100           02221                           STORE    AGSBUFF    +12D                       
009653,000135: 32,2101           77776                           EXIT                                           
009654,000136: 
009655,000137: 32,2102           34753                           CAF      LAGSLIST                              
009656,000138: 32,2103           54332                           TS       DNLSTCOD                              
009657,000139: 
009658,000140: 32,2104           32206                           CAF      20SEC                                 #  DELAY FOR 20 SEC WHILE THE AGS
009659,000141: 32,2105           04616                           TC       BANKCALL                              #  DOWNLIST IS TRANSMITTED
009660,000142: 32,2106           01735                           CADR     DELAYJOB                              
009661,000143: 
009662,000144: 32,2107           31324                           CA       AGSWORD                               
009663,000145: 32,2110           54332                           TS       DNLSTCOD                              #  RETURN TO THE OLD DOWNLIST
009664,000146: 32,2111           34744                           CAF      IMUSEBIT                              
009665,000147: 32,2112           70074                           MASK     FLAGWRD0                              #  CHECK IMUSE FLAG.
009666,000148: 32,2113           10000                           CCS      A                                     
009667,000149: 32,2114           02132                           TC       AGSEND                                #  IMU IS BEING USED - DO NOT ZERO
009668,000150: 32,2115           11304        CKSTALL            CCS      IMUCADR                               #  CHECK FOR IMU USAGE WHICH AVOIDS THE
009669,000151: 32,2116           12121                           TCF      +3                                    #  IMUSE BIT:  I.E., IMU COMPENSATION.
009670,000152: 32,2117           12125                           TCF      +6                                    #  FREE.  GO AHEAD WITH THE IMU ZERO.
009671,000153: 32,2120           12121                           TCF      +1                                    
009672,000154: 32,2121           34363                 +3        CAF      TEN                                   #  WAIT .1 SEC AND TRY AGAIN.
009673,000155: 32,2122           04616                           TC       BANKCALL                              
009674,000156: 32,2123           01735                           CADR     DELAYJOB                              
009675,000157: 32,2124           12115                           TCF      CKSTALL                               
009676,000158: 
009677,000159: 32,2125           04616                 +6        TC       BANKCALL                              #  IMU IS NOT IN USE
009678,000160: 32,2126           16667                           CADR     IMUZERO                               #  SET IMU ZERO DISCRETE FOR 320MSECS
009679,000161: 32,2127           04616                           TC       BANKCALL                              #  WAIT 3 SEC FOR COUNTERS TO INCREMENT
009680,000162: 32,2130           17671                           CADR     IMUSTALL                              
009681,000163: 32,2131           02132                           TC       AGSEND                                
009682,000164: 32,2132           05516        AGSEND             TC       DOWNFLAG                              #  ALLOW V37
009683,000165: 32,2133           00054                           ADRES    NODOFLAG                              
009684,000166: 
009685,000167: 32,2134           32203                           CAF      V50N16                                
009686,000168: 32,2135           04616                           TC       BANKCALL                              
009687,000169: 32,2136           20220                           CADR     GOMARK3                               
009688,000170: 32,2137           15472                           TCF      ENDEXT                                
009689,000171: 32,2140           15472                           TCF      ENDEXT                                
009690,000172: 32,2141           05472                           TC       ENDEXT                                
009691,000173: 
009692,000174: 32,2142           64375        SCALEVEC           VLOAD    MXV                                   
009693,000175: 32,2143           00025                                    VATT1                                 
009694,000176: 32,2144           01734                                    REFSMMAT                              
009695,000177: 32,2145           72561                           VXSC     VSL2                                  
009696,000178: 32,2146           24212                                    VSCALE                                
009697,000179: 

Page 224

009699,000181: 32,2147           53255                           VAD      VAD                                   #  THIS SECTION ROUNDS THE VECTOR, AND
009700,000182: 32,2150           24214                                    AGSRND1                               #  CORRECTS FOR THE FACT THAT THE AGS
009701,000183: 32,2151           24222                                    AGSRND2                               #  IS A 2 S COMPLIMENT MACHINE WHILE THE
009702,000184: 32,2152           77634                           RTB                                            #  LGC IS A 1 S COMPLIMENT MACHINE.
009703,000185: 32,2153           21744                                    VECSGNAG                              
009704,000186: 32,2154           24025                           STOVL    VATT1                                 
009705,000187: 32,2155           00017                                    RATT1                                 
009706,000188: 32,2156           74321                           MXV      VXSC                                  
009707,000189: 32,2157           01734                                    REFSMMAT                              
009708,000190: 32,2160           24210                                    RSCALE                                
009709,000191: 32,2161           53212                           VSL8     VAD                                   #  AGAIN THIS SECTION ROUNDS.  TWO VECTORS
009710,000192: 32,2162           24214                                    AGSRND1                               #  ARE ADDED TO DEFEAT ALSIGNAG IN THE
009711,000193: 32,2163           47055                           VAD      RTB                                   #  CASE OF A HIGH-ORDER ZERO COUPLED WITH
009712,000194: 32,2164           24222                                    AGSRND2                               #  A LOW ORDER NEGATIVE PART.
009713,000195: 32,2165           21744                                    VECSGNAG                              
009714,000196: 32,2166           77750                           LXA,1                                          
009715,000197: 32,2167           00024                                    VATT1                                 
009716,000198: 32,2170           72130                           SXA,1    LXA,1                                 
009717,000199: 32,2171           00155                                    MPAC       +1                         
009718,000200: 32,2172           00026                                    VATT1      +2                         
009719,000201: 32,2173           72130                           SXA,1    LXA,1                                 
009720,000202: 32,2174           00160                                    MPAC       +4                         
009721,000203: 32,2175           00030                                    VATT1      +4                         
009722,000204: 32,2176           43530                           SXA,1    RVQ                                   
009723,000205: 32,2177           00162                                    MPAC       +6                         
009724,000206: 
009725,000207: 32,2200     4753               LAGSLIST           =        ONE                                   
009726,000208: 32,2200           00216        V01N14             VN       0114                                  
009727,000209: 32,2201           14400        V50N00A            VN       5000                                  
009728,000210: 32,2202     6010               V00N25             EQUALS   OCT31                                 
009729,000211: 32,2202           01420        V06N16             VN       0616                                  
009730,000212: 32,2203     4242               V00N34             EQUALS   34DEC                                 
009731,000213: 32,2203           14420        V50N16             VN       5016                                  
009732,000214: 32,2204           03100 00000  TSCALE             2DEC     100        B-10                       #  CSEC TO SEC SCALE FACTOR
009733,000215: 32,2206           03720        20SEC              DEC      2000       B-14                       
009734,000216: 32,2207           15077 05041  RSCALE             2DEC     3.280839   B-3                        #  METERS TO FEET SCALE FACTOR
009735,000217: 32,2211           24402 25724  VSCALE             2DEC     3.280839   E2         B-9             #  METERS/CS TO FEET/SEC SCALE FACTOR
009736,000218: 32,2213           00000 60000  AGSRND1            2OCT     0000060000                            
009737,000219: 32,2215           00000 60000                     2OCT     0000060000                            
009738,000220: 32,2217           00000 60000                     2OCT     0000060000                            
009739,000221: 32,2221           00000 37777  AGSRND2            2OCT     0000037777                            
009740,000222: 32,2223           00000 37777                     2OCT     0000037777                            
009741,000223: 

Page 225

009743,000225: 32,2225           00000 37777                     2OCT     0000037777                            
009744,000226: 
009745,000227: 32,2227  30,2000                                  SBANK=   LOWSUPER                              #  FOR SUBSEQUENT LOW 2CADRS.

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