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:
|
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