Source Code

These source code files are an attempted reconstruction of Sundance revision 306, the Apollo 9 LM (Lunar Module) AGC (Apollo Guidance Computer) flight software, created from binary dumps of original core rope program modules, as follows:
  • B1 — Revision 292
  • B2 — Revision 302
  • B3 — Revision 302
  • B4 — Revision 302
  • B5 — Revision 292
  • B6 — Revision 306
These dumps were then modified using memos, checklists, observed address changes, and the Sundance GSOPs to get the entire program to match Sundance revision 306 as closely as possible. Without more information, it is not possible to say how close it actually is; however, this code should be quite close. It is capable of flying the whole Apollo 9 mission using the original checklists and padload. Since only binary dumps (rather than listings) of Sundance are available as source material, all comments and labels are approximate. They have been taken from other AGC programs where possible, or, in some places, written from scratch to match what we believe would have been in the original listing.

012272,000002:                                                                                                  ## Copyright:   Public domain.
012273,000003:                                                                                                  ## Filename:    R63.agc
012274,000004:                                                                                                  ## Purpose:     A section of an attempt to reconstruct Sundance revision 306
012275,000005:                                                                                                  ##              as closely as possible with available information. Sundance
012276,000006:                                                                                                  ##              306 is the source code for the Lunar Module's (LM) Apollo
012277,000007:                                                                                                  ##              Guidance Computer (AGC) for Apollo 9. This program was created
012278,000008:                                                                                                  ##              using the mixed-revision SundanceXXX as a starting point, and
012279,000009:                                                                                                  ##              pulling back features from Luminary 69 believed to have been
012280,000010:                                                                                                  ##              added based on memos, checklists, observed address changes,
012281,000011:                                                                                                  ##              or the Sundance GSOPs.
012282,000012:                                                                                                  ## Assembler:   yaYUL
012283,000013:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
012284,000014:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
012285,000015:                                                                                                  ## Mod history: 2020-07-24 MAS  Created from SundanceXXX.
012286,000016: 
012287,000017: 
012288,000018: 
012289,000019:                                                                                                  #  SUBROUTINE NAME:      V89CALL
012290,000020:                                                                                                  #  MOD NO:       0                       DATE:           9 JAN 1968
012291,000021:                                                                                                  #  MOD BY:       DIGITAL DEVEL GROUP     LOG SECTION:    R63
012292,000022: 
012293,000023:                                                                                                  #  FUNCTIONAL DESCRIPTION:
012294,000024: 
012295,000025:                                                                                                  #  CALLED BY VERB 89 ENTER DURING P00.  PRIO 10 USED.  CALCULATES AND
012296,000026:                                                                                                  #  DISPLAYS FINAL FDAI BALL ANGLES TO POINT LM +X OR +Z AXIS AT CSM.
012297,000027: 
012298,000028:                                                                                                  #  1. KEY IN V 89 E ONLY IF IN PROG 00.  IF NOT IN P00, OPERATOR ERROR AND
012299,000029:                                                                                                  #  EXIT R63, OTHERWISE CONTINUE.
012300,000030: 
012301,000031:                                                                                                  #  2. IF IN P00, DO IMU STATUS CHECK ROUTINE (R02BOTH).  IF IMU ON AND ITS
012302,000032:                                                                                                  #  ORIENTATION KNOWN TO LGC, CONTINUE.
012303,000033: 
012304,000034:                                                                                                  #  3. FLASH DISPLAY V 04 N 06.  R2 INDICATES WHICH SPACECRAFT AXIS IS TO
012305,000035:                                                                                                  #  BE POINTED AT CSM.  INITIAL CHOICE IS PREFERRED (+Z) AXIS (R2=1).
012306,000036:                                                                                                  #  ASTRONAUT CAN CHANGE TO (+X) AXIS (R2 NOT =1) BY V 22 E 2 E.  CONTINUE
012307,000037:                                                                                                  #  AFTER KEYING IN PROCEED.
012308,000038: 
012309,000039:                                                                                                  #  4. BOTH VEHICLE STATE VECTORS UPDATED BY CONIC EQS.
012310,000040: 
012311,000041:                                                                                                  #  5. HALF MAGNITUDE UNIT LOS VECTOR (IN STABLE MEMBER COORDINATES) AND
012312,000042:                                                                                                  #  HALF MAGNITUDE UNIT SPACECRAFT AXIS VECTOR (IN BODY COORDINATES)
012313,000043:                                                                                                  #  PREPARED FOR VECPOINT.
012314,000044: 
012315,000045:                                                                                                  #  6. GIMBAL ANGLES FROM VECPOINT TRANSFORMED INTO FDAI BALL ANGLES BY
012316,000046:                                                                                                  #  BALLANGS.  FLASH DISPLAY V 06 N 18 AND AWAIT RESPONSE.
012317,000047: 
012318,000048:                                                                                                  #  7.    RECYCLE - RETURN TO STEP 4.
012319,000049:                                                                                                  #        TERMINATE - EXIT R63.
012320,000050:                                                                                                  #        PROCEED - RESET 3AXISFLG AND CALL R60LEM FOR ATTITUDE MANEUVER.
012321,000051: 
012322,000052:                                                                                                  #  CALLING SEQUENCE:     V 89 E.
012323,000053: 
012324,000054:                                                                                                  #  SUBROUTINES CALLED:   CHKPOOH, R02BOTH, GOXDSPF, CSMCONIC, LEMCONIC,
012325,000055:                                                                                                  #                        VECPOINT, BALLANGS, R60LEM.
012326,000056: 
012327,000057:                                                                                                  #  NORMAL EXIT MODES:    TC ENDEXT
012328,000058: 
012329,000059:                                                                                                  #  ALARMS:       1. OPERATOR ERROR IF NOT IN P00.
012330,000060:                                                                                                  #                2. PROGRAM ALARM IF IMU IS OFF.
012331,000061:                                                                                                  #                3. PROGRAM ALARM IF IMU ORIENTATION IS UNKNOWN.
012332,000062: 
012333,000063:                                                                                                  #  OUTPUT:       NONE
012334,000064: 
012335,000065:                                                                                                  #  ERASABLE INITIALIZATION REQUIRED:  NONE
012336,000066: 
012337,000067:                                                                                                  #  DEBRIS:       OPTION1, +1, TDEC1, POINTVSM, SCAXIS, CPHI, CTHETA, CPSI,
012338,000068:                                                                                                  #                3AXISFLG.
012339,000069: 
012340,000070: 06,3712  E4,1614                                  EBANK=   RONE                                  
012341,000071: 32,2000                                           BANK     32                                    
012342,000072: 26,2000                                           SETLOC   BAWLANGS                              
012343,000073: 26,2000                                           BANK                                           
012344,000074: 
012345,000075: 26,2000                                           COUNT*   $$/R63                                
012346,000076: 26,2000           04655        V89CALL            TC       BANKCALL                              #  IMU STATUS CHECK.  RETURNS IF ORIENTATION
012347,000077: 26,2001           11067                           CADR     R02BOTH                               #  KNOWN.  ALARMS IF NOT.
012348,000078: 26,2002           36221                           CAF      THREE                                 #  ALLOW ASTRONAUT TO SELECT DESIRED
012349,000079: 26,2003           55155                           TS       OPTION1                               #  TRACKING ATTITUDE AXIS.
012350,000080: 26,2004           35026                           CAF      ONE                                   
012351,000081: 26,2005           55156                           TS       OPTION1    +1                         
012352,000082: 26,2006           32101                           CAF      VB04N06*                              #  V 04 N 06
012353,000083: 26,2007           04655                           TC       BANKCALL                              
012354,000084: 26,2010           20406                           CADR     GOFLASH                               
012355,000085: 26,2011           05564                           TC       ENDEXT                                #  TERMINATE
012356,000086: 26,2012           02014                           TC       +2                                    #  PROCEED
012357,000087: 26,2013           02006                           TC       -5                                    #  DATA IN. OPTION1+1 = 1 FOR Z AXIS
012358,000088: 26,2014           06014        V89RECL            TC       INTPRET                               #                    = 2 FOR X AXIS
012359,000089: 26,2015           77634                           RTB                                            
012360,000090: 26,2016           21454                                    LOADTIME                              #  READ PRESENT TIME
012361,000091: 26,2017           02213                           STORE    TSTART82                              #  SAVE TIME FOR LEMCONIC CALL
012362,000092: 26,2020           34041                           STCALL   TDEC1                                 #  STORE TIME FOR CSMCONIC CALL
012363,000093: 26,2021           27037                                    CSMCONIC                              #  CSM STATE VECTOR UPDATE
012364,000094: 26,2022           77775                           VLOAD                                          #  CSMCONIC LEFT R VECTOR IN RATT
012365,000095: 26,2023           00001                                    RATT                                  
012366,000096: 26,2024           16215                           STODL    RONE                                  #  SAVE FOR LINE OF SIGHT (LOS) COMPUTATION
012367,000097: 26,2025           02213                                    TSTART82                              
012368,000098: 26,2026           34041                           STCALL   TDEC1                                 #  STORE TIME FOR LEMCONIC CALL
012369,000099: 26,2027           27051                                    LEMCONIC                              #  LEM STATE VECTOR UPDATE
012370,000100: 26,2030           52375                           VLOAD    VSU                                   #  CSM POSITION - LEM POSITION = LOS
012371,000101: 26,2031           02215                                    RONE                                  #  LOS VECTOR LEFT IN MPAC
012372,000102: 26,2032           00001                                    RATT                                  
012373,000103: 26,2033           40121                           MXV      BOV                                   #  (REFSMMAT X LOS).  TRANSFORMS LOS FROM
012374,000104: 26,2034           01736                                    REFSMMAT                              #  REFERENCE COORD TO STAB MEMB COORD.
012375,000105: 26,2035           54036                                    +1                                    
012376,000106: 26,2036           02223                           STORE    VONE                                  
012377,000107: 26,2037           40012                           VSL8     BOV                                   
012378,000108: 26,2040           54042                                    +2                                    
012379,000109: 26,2041           02223                           STORE    VONE                                  
012380,000110: 26,2042           53575                           VLOAD    UNIT                                  
012381,000111: 26,2043           02223                                    VONE                                  
012382,000112: 26,2044           01256                           STORE    POINTVSM                              #  STORE LOS FOR VECPOINT CALL
012383,000113: 26,2045           77776                           EXIT                                           
012384,000114: 26,2046           41156                           CS       OPTION2                               #  1 FOR Z AXIS.  2 FOR X AXIS.
012385,000115: 26,2047           65026                           AD       ONE                                   
012386,000116: 26,2050           00006                           EXTEND                                         
012387,000117: 26,2051           12075                           BZF      ALINEZ                                
012388,000118: 26,2052           06014        ALINEX             TC       INTPRET                               #  X AXIS ALIGNMENT
012389,000119: 26,2053           77775                           VLOAD                                          
012390,000120: 26,2054           06231                                    UNITX                                 #  READ (.5, 0, 0)
012391,000121: 26,2055           35250        V89CALL1           STCALL   SCAXIS                                #  STORE SELECTED ALIGNMENT AXIS
012392,000122: 26,2056           56000                                    VECPOINT                              #  PUTS DESIRED GIM ANG (OG,IG,MG) IN TMPAC
012393,000123: 26,2057           01207                           STORE    CPHI                                  #  STORE GIMBAL ANGLES FOR BALLANGS CALL.
012394,000124: 26,2060           77776                           EXIT                                           
012395,000125: 26,2061           02302                           TC       BALLANGS                              #  PUTS DESIRED BALL ANGLES IN FDAIX,Y,Z
012396,000126: 26,2062           32102                           CAF      VB06N18                               #  V 06 N 18
012397,000127: 26,2063           04655                           TC       BANKCALL                              #  NOUN 18 REFERS TO FDAIX,Y,Z
012398,000128: 26,2064           20406                           CADR     GOFLASH                               
012399,000129: 26,2065           05564                           TC       ENDEXT                                #  TERMINATE
012400,000130: 26,2066           02070                           TC       +2                                    #  PROCEED
012401,000131: 26,2067           02014                           TC       V89RECL                               #  RECYCLE
012402,000132: 26,2070           05600                           TC       DOWNFLAG                              #  RESET 3 AXIS FLAG
012403,000133: 26,2071           00124                           ADRES    3AXISFLG                              #  RESET BIT6 FLAG WORD 5
012404,000134: 26,2072           04655                           TC       BANKCALL                              #  PERFORMS LEM MANEUVER TO ALIGN SELECTED
012405,000135: 26,2073           54103                           CADR     R60LEM                                #  SPACECRAFT AXIS TO CSM.
012406,000136: 26,2074           15564                           TCF      ENDEXT                                #  TERMINATE R63
012407,000137: 
012408,000138: 26,2075           06014        ALINEZ             TC       INTPRET                               #  Z AXIS ALIGNMENT
012409,000139: 26,2076           52175                           VLOAD    GOTO                                  
012410,000140: 26,2077           06225                                    UNITZ                                 #  READ (0, 0, .5)
012411,000141: 26,2100           54055                                    V89CALL1                              
012412,000142: 
012413,000143: 26,2101           01006        VB04N06*           VN       406                                   
012414,000144: 26,2102           01422        VB06N18            VN       0618                                  
012415,000145: 

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