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