Source Code
|
These source-code files are part of a reconstructed copy of LUM69 Revision 2, the
flown Apollo 10 Lunar Module (LM) Apollo Guidance Computer (AGC) software.
The reconstruction began with source code of Luminary 69 revision 0 previously transcribed from a digitized copy of that program. The code was then updated by back-porting the R-2 lunar potential model from previously-transcribed source code of Luminary 99. These required changes were described in the original Luminary memos 75 and 78. The reconstructed code was verified by matching memory-bank checksums to those listed in drawing 2021152G. Note that page numbers in the reconstructed code match those on the Luminary 069 printout, although the added code would likely have changed page numbers for a real LUM69 Revision 2 listing. 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. |
015028,000002: ## Copyright: Public domain.
015029,000003: ## Filename: R63.agc
015030,000004: ## Purpose: A section of LUM69 revision 2.
015031,000005: ## It is part of the reconstructed source code for the flown
015032,000006: ## version of the flight software for the Lunar Module's (LM)
015033,000007: ## Apollo Guidance Computer (AGC) for Apollo 10. The code has
015034,000008: ## been recreated from a copy of Luminary revsion 069, using
015035,000009: ## changes present in Luminary 099 which were described in
015036,000010: ## Luminary memos 75 and 78. The code has been adapted such
015037,000011: ## that the resulting bugger words exactly match those specified
015038,000012: ## for LUM69 revision 2 in NASA drawing 2021152B, which gives
015039,000013: ## relatively high confidence that the reconstruction is correct.
015040,000014: ## Reference: pp. 351-354
015041,000015: ## Assembler: yaYUL
015042,000016: ## Contact: Ron Burkey <info@sandroid.org>.
015043,000017: ## Website: www.ibiblio.org/apollo/index.html
015044,000018: ## Mod history: 2019-07-27 MAS Created from Luminary 69.
015045,000019:
|
Page 351 |
015047,000021: # SUBROUTINE NAME: V89CALL
015048,000022: # MOD NO: 0 DATE: 9 JAN 1968
015049,000023: # MOD BY: DIGITAL DEVEL GROUP LOG SECTION: R63
015050,000024:
015051,000025: # FUNCTIONAL DESCRIPTION:
015052,000026:
015053,000027: # CALLED BY VERB 89 ENTER DURING P00. PRIO 10 USED. CALCULATES AND
015054,000028: # DISPLAYS FINAL FDAI BALL ANGLES TO POINT LM +X OR +Z AXIS AT CSM.
015055,000029:
015056,000030: # 1. KEY IN V 89 E ONLY IF IN PROG 00. IF NOT IN P00, OPERATOR ERROR AND
015057,000031: # EXIT R63, OTHERWISE CONTINUE.
015058,000032:
015059,000033: # 2. IF IN P00, DO IMU STATUS CHECK ROUTINE (R02BOTH). IF IMU ON AND ITS
015060,000034: # ORIENTATION KNOWN TO LGC, CONTINUE.
015061,000035:
015062,000036: # 3. FLASH DISPLAY V 04 N 06. R2 INDICATES WHICH SPACECRAFT AXIS IS TO
015063,000037: # BE POINTED AT CSM. INITIAL CHOICE IS PREFERRED (+Z) AXIS (R2=1).
015064,000038: # ASTRONAUT CAN CHANGE TO (+X) AXIS (R2 NOT =1) BY V 22 E 2 E. CONTINUE
015065,000039: # AFTER KEYING IN PROCEED.
015066,000040:
015067,000041: # 4. BOTH VEHICLE STATE VECTORS UPDATED BY CONIC EQS.
015068,000042:
015069,000043: # 5. HALF MAGNITUDE UNIT LOS VECTOR (IN STABLE MEMBER COORDINATES) AND
015070,000044: # HALF MAGNITUDE UNIT SPACECRAFT AXIS VECTOR (IN BODY COORDINATES)
015071,000045: # PREPARED FOR VECPOINT.
015072,000046:
015073,000047: # 6. GIMBAL ANGLES FROM VECPOINT TRANSFORMED INTO FDAI BALL ANGLES BY
015074,000048: # BALLANGS. FLASH DISPLAY V 06 N 18 AND AWAIT RESPONSE.
015075,000049:
015076,000050: # 7. RECYCLE - RETURN TO STEP 4.
015077,000051: # TERMINATE - EXIT R63.
015078,000052: # PROCEED - RESET 3AXISFLG AND CALL R60LEM FOR ATTITUDE MANEUVER.
015079,000053:
015080,000054: # CALLING SEQUENCE: V 89 E.
015081,000055:
015082,000056: # SUBROUTINES CALLED: CHKPOOH, R02BOTH, GOXDSPF, CSMCONIC, LEMCONIC,
015083,000057: # VECPOINT, BALLANGS, R60LEM.
015084,000058:
015085,000059: # NORMAL EXIT MODES: TC ENDEXT
015086,000060:
015087,000061: # ALARMS: 1. OPERATOR ERROR IF NOT IN P00.
015088,000062: # 2. PROGRAM ALARM IF IMU IS OFF.
015089,000063: # 3. PROGRAM ALARM IF IMU ORIENTATION IS UNKNOWN.
015090,000064:
015091,000065: # OUTPUT: NONE
015092,000066:
015093,000067: # ERASABLE INITIALIZATION REQUIRED: NONE
015094,000068:
015095,000069: # DEBRIS: OPTION1, +1, TDEC1, POINTVSM, SCAXIS, CPHI, CTHETA, CPSI,
|
Page 352 |
015097,000071: # 3AXISFLG.
015098,000072:
015099,000073: 06,3715 E4,1612 EBANK= RONE
015100,000074: 32,2227 BANK 32
015101,000075: 26,2000 SETLOC BAWLANGS
015102,000076: 26,2000 BANK
015103,000077:
015104,000078: 26,2000 COUNT* $$/R63
015105,000079: 26,2000 04616 V89CALL TC BANKCALL # IMU STATUS CHECK. RETURNS IF ORIENTATION
015106,000080: 26,2001 11175 CADR R02BOTH # KNOWN. ALARMS IF NOT.
015107,000081: 26,2002 36244 CAF THREE # ALLOW ASTRONAUT TO SELECT DESIRED
015108,000082: 26,2003 55051 TS OPTIONX # TRACKING ATTITUDE AXIS.
015109,000083: 26,2004 34753 CAF ONE
015110,000084: 26,2005 55052 TS OPTIONX +1
015111,000085: 26,2006 32075 CAF VB04N12 # V 04 N 12
015112,000086: 26,2007 04616 TC BANKCALL
015113,000087: 26,2010 20351 CADR GOFLASH
015114,000088: 26,2011 05472 TC ENDEXT # TERMINATE
015115,000089: 26,2012 02014 TC +2 # PROCEED
015116,000090: 26,2013 02006 TC -5 # DATA IN. OPTION1+1 = 1 FOR Z AXIS
015117,000091: 26,2014 06036 V89RECL TC INTPRET # = 2 FOR X AXIS
015118,000092: 26,2015 43234 RTB DAD
015119,000093: 26,2016 21462 LOADTIME # READ PRESENT TIME
015120,000094: 26,2017 14100 DP1MIN
015121,000095: 26,2020 02211 STORE TSTART82 # SAVE TIME FOR LEMCONIC CALL
015122,000096: 26,2021 34041 STCALL TDEC1 # STORE TIME FOR CSMCONIC CALL
015123,000097: 26,2022 27066 CSMCONIC # CSM STATE VECTOR UPDATE
015124,000098: 26,2023 77775 VLOAD # CSMCONIC LEFT R VECTOR IN RATT
015125,000099: 26,2024 00001 RATT
015126,000100: 26,2025 16213 STODL RONE # SAVE FOR LINE OF SIGHT (LOS) COMPUTATION
015127,000101: 26,2026 02211 TSTART82
015128,000102: 26,2027 34041 STCALL TDEC1 # STORE TIME FOR LEMCONIC CALL
015129,000103: 26,2030 27100 LEMCONIC # LEM STATE VECTOR UPDATE
015130,000104: 26,2031 52375 VLOAD VSU # CSM POSITION - LEM POSITION = LOS
015131,000105: 26,2032 02213 RONE # LOS VECTOR LEFT IN MPAC
015132,000106: 26,2033 00001 RATT
015133,000107: 26,2034 47121 MXV RTB # (REFSMMAT X LOS). TRANSFORMS LOS FROM
015134,000108: 26,2035 01734 REFSMMAT # REFERENCE COORD TO STAB MEMB COORD.
015135,000109: 26,2036 21700 NORMUNIT
015136,000110: 26,2037 03767 STORE POINTVSM # STORE LOS FOR VECPOINT CALL
015137,000111: 26,2040 77776 EXIT
015138,000112: 26,2041 41052 CS OPTIONX +1 # 1 FOR Z AXIS. 2 FOR X AXIS.
015139,000113: 26,2042 64753 AD ONE
015140,000114: 26,2043 00006 EXTEND
015141,000115: 26,2044 12071 BZF ALINEZ
015142,000116: 26,2045 06036 ALINEX TC INTPRET # X AXIS ALIGNMENT
015143,000117: 26,2046 77775 VLOAD
015144,000118: 26,2047 06422 UNITX # READ (.5, 0, 0)
|
Page 353 |
015146,000120: 26,2050 37761 V89CALL1 STCALL SCAXIS # STORE SELECTED ALIGNMENT AXIS
015147,000121: 26,2051 56016 VECPOINT # PUTS DESIRED GIM ANG (OG,IG,MG) IN TMPAC
015148,000122: 26,2052 00322 STORE CPHI # STORE GIMBAL ANGLES FOR BALLANGS CALL.
015149,000123: 26,2053 77776 EXIT
015150,000124: 26,2054 04616 TC BANKCALL
015151,000125: 26,2055 54244 CADR BALLANGS # PUTS DESIRED BALL ANGLES IN FDAIX,Y,Z
015152,000126: 26,2056 32076 CAF VB06N18 # V 06 N 18
015153,000127: 26,2057 04616 TC BANKCALL # NOUN 18 REFERS TO FDAIX,Y,Z
015154,000128: 26,2060 20351 CADR GOFLASH
015155,000129: 26,2061 05472 TC ENDEXT # TERMINATE
015156,000130: 26,2062 02064 TC +2 # PROCEED
015157,000131: 26,2063 02014 TC V89RECL # RECYCLE
015158,000132: 26,2064 05516 TC DOWNFLAG # RESET 3 AXIS FLAG
015159,000133: 26,2065 00124 ADRES 3AXISFLG # RESET BIT6 FLAG WORD 5
015160,000134: 26,2066 04616 TC BANKCALL # PERFORMS LEM MANEUVER TO ALIGN SELECTED
015161,000135: 26,2067 54101 CADR R60LEM # SPACECRAFT AXIS TO CSM.
015162,000136: 26,2070 15472 TCF ENDEXT # TERMINATE R63
015163,000137:
015164,000138: 26,2071 06036 ALINEZ TC INTPRET # Z AXIS ALIGNMENT
015165,000139: 26,2072 52175 VLOAD GOTO
015166,000140: 26,2073 06416 UNITZ # READ (0, 0, .5)
015167,000141: 26,2074 54050 V89CALL1
015168,000142:
015169,000143: 26,2075 01014 VB04N12 VN 412
015170,000144: 26,2076 01422 VB06N18 VN 0618
|
Page 354 |
015172,000146: 26,2077 00000 13560 DP1MIN 2DEC 6000 B-28
015173,000147:
End of include-file R63.agc. Parent file is MAIN.agc