Source Code
These source-code files are part of a reconstructed copy of Luminary 173, the
second (unflown) release of the Apollo 14 Lunar Module (LM) Apollo Guidance
Computer (AGC) software.
The reconstruction began with reconstructed source code for Luminary 178. Changes between revision 173 and 178 were backed out, as described by Luminary memo 167 (revision 1). The reconstruction was verified by matching memory-bank checksums to those listed in drawing 2021152N. Note that page numbers in the reconstructed code match those for the baseline log section mentioned in each file's changelog; the page numbers for a real Luminary 173 listing would be different. 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. |
014535,000002: ## Copyright: Public domain.
014536,000003: ## Filename: R63.agc
014537,000004: ## Purpose: A section of Luminary revision 173.
014538,000005: ## It is part of the reconstructed source code for the second
014539,000006: ## (unflown) release of the flight software for the Lunar
014540,000007: ## Module's (LM) Apollo Guidance Computer (AGC) for Apollo 14.
014541,000008: ## The code has been recreated from a reconstructed copy of
014542,000009: ## Luminary 178, as well as Luminary memo 167 (revision 1).
014543,000010: ## It has been adapted such that the resulting bugger words
014544,000011: ## exactly match those specified for Luminary 173 in NASA
014545,000012: ## drawing 2021152N, which gives relatively high confidence
014546,000013: ## that the reconstruction is correct.
014547,000014: ## Reference: pp. 343-346
014548,000015: ## Assembler: yaYUL
014549,000016: ## Contact: Ron Burkey <info@sandroid.org>.
014550,000017: ## Website: www.ibiblio.org/apollo/index.html
014551,000018: ## Mod history: 2019-09-18 MAS Created from Luminary 178.
014552,000019:
Page 343 |
014554,000021: # SUBROUTINE NAME: V89CALL
014555,000022: # MOD NO: 0 DATE: 9 JAN 1968
014556,000023: # MOD BY: DIGITAL DEVEL GROUP LOG SECTION: R63
014557,000024:
014558,000025: # FUNCTIONAL DESCRIPTION:
014559,000026:
014560,000027: # CALLED BY VERB 89 ENTER DURING P00. PRIO 10 USED. CALCULATES AND
014561,000028: # DISPLAYS FINAL FDAI BALL ANGLES TO POINT LM +X OR +Z AXIS AT CSM.
014562,000029:
014563,000030: # 1. KEY IN V 89 E ONLY IF IN PROG 00. IF NOT IN P00, OPERATOR ERROR AND
014564,000031: # EXIT R63, OTHERWISE CONTINUE.
014565,000032:
014566,000033: # 2. IF IN P00, DO IMU STATUS CHECK ROUTINE (R02BOTH). IF IMU ON AND ITS
014567,000034: # ORIENTATION KNOWN TO LGC, CONTINUE.
014568,000035:
014569,000036: # 3. FLASH DISPLAY V 04 N 06. R2 INDICATES WHICH SPACECRAFT AXIS IS TO
014570,000037: # BE POINTED AT CSM. INITIAL CHOICE IS PREFERRED (+Z) AXIS (R2=1).
014571,000038: # ASTRONAUT CAN CHANGE TO (+X) AXIS (R2 NOT = 1) BY V 22 E 2 E. CONTINUE
014572,000039: # AFTER KEYING IN PROCEED.
014573,000040:
014574,000041: # 4. BOTH VEHICLE STATE VECTORS UPDATED BY CONIC EQS.
014575,000042:
014576,000043: # 5. HALF MAGNITUDE UNIT LOS VECTOR (IN STABLE MEMBER COORDINATES) AND
014577,000044: # HALF MAGNITUDE UNIT SPACECRAFT AXIS VECTOR (IN BODY COORDINATES)
014578,000045: # PREPARED FOR VECPOINT.
014579,000046:
014580,000047: # 6. GIMBAL ANGLES FROM VECPOINT TRANSFORMED INTO FDAI BALL ANGLES BY
014581,000048: # BALLANGS. FLASH DISPLAY V 06 N 18 AND AWAIT RESPONSE.
014582,000049:
014583,000050: # 7. RECYCLE - RETURN TO STEP 4.
014584,000051: # TERMINATE - EXIT R63.
014585,000052: # PROCEED - RESET 3AXISFLG AND CALL R60LEM FOR ATTITUDE MANEUVER.
014586,000053:
014587,000054:
014588,000055: # CALLING SEQUENCE: V 89 E.
014589,000056:
014590,000057: # SUBROUTINES CALLED: CHKPOOH, R02BOTH, GOXDSPF, CSMCONIC, LEMCONIC,
014591,000058: # VECPOINT, BALLANGS, R60LEM.
014592,000059:
014593,000060: # NORMAL EXIT MODES: TC ENDEXT
014594,000061:
014595,000062: # ALARMS: 1. OPERATOR ERROR IF NOT IN P00.
014596,000063: # 2. PROGRAM ALARM IF IMU IS OFF.
014597,000064: # 3. PROGRAM ALARM IF IMU ORIENTATION IS UNKNOWN.
014598,000065:
014599,000066: # OUTPUT: NONE
014600,000067:
014601,000068: # ERASABLE INITIALIZATION REQUIRED: NONE
014602,000069:
014603,000070: # DEBRIS: OPTION1, +1, TDEC1, POINTVSM, SCAXIS, CPHI, CTHETA, CPSI,
014604,000071:
Page 344 |
014606,000073: # 3AXISFLG.
014607,000074:
014608,000075: 06,3723 E4,1606 EBANK= RONE
014609,000076: 32,2217 BANK 32
014610,000077: 26,2000 SETLOC BAWLANGS
014611,000078: 26,2000 BANK
014612,000079:
014613,000080:
014614,000081: 26,2024 COUNT* $$/R63
014615,000082: 26,2024 04616 V89CALL TC BANKCALL # IMU STATUS CHECK. RETURNS IF ORIENTATION
014616,000083: 26,2025 11241 CADR R02BOTH # KNOWN. ALARMS IF NOT.
014617,000084: 26,2026 36250 CAF THREE # ALLOW ASTRONAUT TO SELECT DESIRED
014618,000085: 26,2027 55050 TS OPTIONX # TRACKING ATTITUDE AXIS.
014619,000086: 26,2030 34753 CAF ONE
014620,000087: 26,2031 55051 TS OPTIONX +1
014621,000088: 26,2032 32121 CAF VB04N12 # V 04 N 12
014622,000089: 26,2033 04616 TC BANKCALL
014623,000090: 26,2034 20477 CADR GOFLASH
014624,000091: 26,2035 05503 TC ENDEXT # TERMINATE
014625,000092: 26,2036 02040 TC +2 # PROCEED
014626,000093: 26,2037 02032 TC -5 # DATA IN. OPTION1+1 = 1 FOR Z AXIS
014627,000094: 26,2040 06042 V89RECL TC INTPRET # = 2 FOR X AXIS
014628,000095: 26,2041 43234 RTB DAD
014629,000096: 26,2042 21574 LOADTIME # READ PRESENT TIME
014630,000097: 26,2043 14124 DP1MIN
014631,000098: 26,2044 02205 STORE TSTART82 # SAVE TIME FOR LEMCONIC CALL
014632,000099: 26,2045 34041 STCALL TDEC1 # STORE TIME FOR CSMCONIC CALL
014633,000100: 26,2046 27065 CSMCONIC # CSM STATE VECTOR UPDATE
014634,000101: 26,2047 77775 VLOAD # CSMCONIC LEFT R VECTOR IN RATT
014635,000102: 26,2050 00001 RATT
014636,000103: 26,2051 16207 STODL RONE # SAVE FOR LINE OF SIGHT (LOS) COMPUTATION
014637,000104: 26,2052 02205 TSTART82
014638,000105: 26,2053 34041 STCALL TDEC1 # STORE TIME FOR LEMCONIC CALL
014639,000106: 26,2054 27077 LEMCONIC # LEM STATE VECTOR UPDATE
014640,000107: 26,2055 52375 VLOAD VSU # CSM POSITION - LEM POSITION = LOS
014641,000108: 26,2056 02207 RONE # LOS VECTOR LEFT IN MPAC
014642,000109: 26,2057 00001 RATT
014643,000110: 26,2060 47121 MXV RTB # (REFSMMAT X LOS). TRANSFORMS LOS FROM
014644,000111: 26,2061 01732 REFSMMAT # REFERENCE COORD TO STAB MEMB COORD.
014645,000112: 26,2062 21727 NORMUNIT
014646,000113: 26,2063 03773 STORE POINTVSM # STORE LOS FOR VECPOINT CALL
014647,000114: 26,2064 77776 EXIT
014648,000115: 26,2065 41051 CS OPTIONX +1 # 1 FOR Z AXIS. 2 FOR X AXIS.
014649,000116: 26,2066 64753 AD ONE
014650,000117: 26,2067 00006 EXTEND
014651,000118: 26,2070 12115 BZF ALINEZ
014652,000119: 26,2071 06042 ALINEX TC INTPRET # X AXIS ALIGNMENT
014653,000120: 26,2072 77775 VLOAD
014654,000121: 26,2073 06516 UNITX # READ (.5, 0, 0)
014655,000122:
Page 345 |
014657,000124: 26,2074 37765 V89CALL1 STCALL SCAXIS # STORE SELECTED ALIGNMENT AXIS
014658,000125: 26,2075 56040 VECPOINT # PUTS DESIRED GIM ANG (OG,IG,MG) IN TMPAC
014659,000126: 26,2076 00322 STORE CPHI # STORE GIMBAL ANGLES FOR BALLANGS CALL.
014660,000127: 26,2077 77776 EXIT
014661,000128: 26,2100 04616 TC BANKCALL
014662,000129: 26,2101 54274 CADR BALLANGS # PUTS DESIRED BALL ANGLES IN FDAIX,Y,Z
014663,000130: 26,2102 32122 CAF VB06N18 # V 06 N 18
014664,000131: 26,2103 04616 TC BANKCALL # NOUN 18 REFERS TO FDAIX,Y,Z
014665,000132: 26,2104 20477 CADR GOFLASH
014666,000133: 26,2105 05503 TC ENDEXT # TERMINATE
014667,000134: 26,2106 02110 TC +2 # PROCEED
014668,000135: 26,2107 02040 TC V89RECL # RECYCLE
014669,000136: 26,2110 05527 TC DOWNFLAG # RESET 3 AXIS FLAG
014670,000137: 26,2111 00124 ADRES 3AXISFLG # RESET BIT6 FLAG WORD 5
014671,000138: 26,2112 04616 TC BANKCALL # PERFORMS LEM MANEUVER TO ALIGN SELECTED
014672,000139: 26,2113 54125 CADR R60LEM # SPACECRAFT AXIS TO CSM.
014673,000140: 26,2114 15503 TCF ENDEXT # TERMINATE R63
014674,000141:
014675,000142:
014676,000143: 26,2115 06042 ALINEZ TC INTPRET # Z AXIS ALIGNMENT
014677,000144: 26,2116 52175 VLOAD GOTO
014678,000145: 26,2117 06512 UNITZ # READ (0, 0, .5)
014679,000146: 26,2120 54074 V89CALL1
014680,000147:
014681,000148:
014682,000149: 26,2121 01014 VB04N12 VN 412
014683,000150: 26,2122 01422 VB06N18 VN 0618
014684,000151:
Page 346 |
014686,000153: 26,2123 00000 13560 DP1MIN 2DEC 6000 B-28
End of include-file R63.agc. Parent file is MAIN.agc