Source Code
These source-code files are part of a reconstructed copy of Luminary 97, the
second release of the Apollo 11 Lunar Module (LM) Apollo Guidance Computer
(AGC) software. It was created to fix two incorrect ephemeris constants in
Luminary 96, as described by anomaly report LNY-59.
The reconstruction began with source code of Luminary 99 revision 1 previously transcribed from a digitized copy of that program. The code was then updated by undoing changes described in original Luminary memos 83 and 85, using asterisks indicating changed lines in the listing as a guide. The reconstruction was verified by matching memory-bank checksums to those listed in drawing 2021152D. Note that page numbers in the reconstructed code match those on the Luminary 099 revision 001 printout, although the added code would likely have changed page numbers for a real Luminary 97 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. |
029967,000002: ## Copyright: Public domain.
029968,000003: ## Filename: P76.agc
029969,000004: ## Purpose: A section of Luminary revision 97.
029970,000005: ## It is part of the reconstructed source code for the
029971,000006: ## second release of the flight software for the Lunar
029972,000007: ## Module's (LM) Apollo Guidance Computer (AGC) for Apollo 11.
029973,000008: ## It was created to fix two incorrect ephemeris constants in
029974,000009: ## Luminary 96, as described by anomaly report LNY-59.
029975,000010: ## The code has been recreated from a copy of Luminary 99
029976,000011: ## revision 001, using asterisks indicating changed lines in
029977,000012: ## the listing and Luminary Memos #83 and #85, which list
029978,000013: ## changes between Luminary 97 and 98, and 98 and 99. The
029979,000014: ## code has been adapted such that the resulting bugger words
029980,000015: ## exactly match those specified for Luminary 97 in NASA drawing
029981,000016: ## 2021152D, which gives relatively high confidence that the
029982,000017: ## reconstruction is correct.
029983,000018: ## Reference: pp. 709-711
029984,000019: ## Assembler: yaYUL
029985,000020: ## Contact: Ron Burkey <info@sandroid.org>.
029986,000021: ## Website: www.ibiblio.org/apollo/index.html
029987,000022: ## Mod history: 2019-07-28 MAS Created from Luminary 99.
029988,000023:
Page 709 |
029990,000025: # 1) PROGRAM NAME - TARGET DELTA V PROGRAM (P76).
029991,000026: # 2) FUNCTIONAL DESCRIPTION - UPON ENTRY BY ASTRONAUT ACTION, P76 FLASHES DSKY REQUESTS TO THE ASTRONAUT
029992,000027: # TO PROVIDE VIA DSKY (1) THE DELTA V TO BE APPLIED TO THE OTHER VEHICLE STATE VECTOR AND (2) THE
029993,000028: # TIME (TIG) AT WHICH THE OTHER VEHICLE VELOCITY WAS CHANGED BY EXECUTION OF A THRUSTING MANEUVER. THE
029994,000029: # OTHER VEHICLE STATE VECTOR IS INTEGRATED TO TIG AND UPDATED BY THE ADDITION OF DELTA V (DELTA V HAVING
029995,000030: # BEEN TRANSFORMED FROM LV TO REF COSYS). USING INTEGRVS, THE PROGRAM THEN INTEGRATES THE OTHER
029996,000031: # VEHICLE STATE VECTOR TO THE STATE VECTOR OF THIS VEHICLE, THUS INSURING THAT THE W-MATRIX AND BOTH VEHICLE
029997,000032: # STATES CORRESPOND TO THE SAME TIME.
029998,000033: # 3) ERASABLE INITIALIZATION REQUIRED - NONE.
029999,000034: # 4) CALLING SEQUENCES AND EXIT MODES - CALLED BY ASTRONAUT REQUEST THRU DSKY V 37 E 76E.
030000,000035: # EXITS BY TCF ENDOFJOB.
030001,000036: # 5) OUTPUT - OTHER VEHICLE STATE VECTOR INTEGRATED TO TIG AND INCREMENTED BY DELTA V IN REF COSYS.
030002,000037: # THE PUSHLIST CONTAINS THE MATRIX BY WHICH THE INPUT DELTA V MUST BE POST-MULTIPLIED TO CONVERT FROM LV
030003,000038: # TO REF COSYS.
030004,000039: # 6) DEBRIS - OTHER VEHICLE STATE VECTOR.
030005,000040: # 7) SUBROUTINES CALLED - BANKCALL, GOXDSPF, CSMPREC (OR LEMPREC), ATOPCSM (OR ATOPLEM), INTSTALL, INTWAKE, PHASCHNG
030006,000041: # INTPRET, INTEGRVS, AND MINIRECT.
030007,000042: # 8) FLAG USE - MOONFLAG, CMOONFLAG, INTYPFLG, RASFLAG, AND MARKCTR.
030008,000043:
030009,000044: 30,2061 BANK 30
030010,000045: 13,2000 SETLOC P76LOC
030011,000046: 13,2000 BANK
030012,000047:
030013,000048: 13,2207 COUNT* $$/P76
030014,000049:
030015,000050: 13,2207 E7,1441 EBANK= TIG
030016,000051:
030017,000052: 13,2207 05504 P76 TC UPFLAG
030018,000053: 13,2210 00031 ADRES TRACKFLG
030019,000054:
030020,000055: 13,2211 06037 TC INTPRET
030021,000056: 13,2212 77775 VLOAD
030022,000057: 13,2213 03434 DELVLVC
030023,000058: 13,2214 02223 STORE DELVOV
030024,000059: 13,2215 77776 EXIT
030025,000060:
030026,000061: 13,2216 32336 CAF V06N84 # FLASH LAST DELTA V,
030027,000062: 13,2217 04616 TC BANKCALL # AND WAIT FOR KEYBOARD ACTION.
030028,000063: 13,2220 20476 CADR GOFLASH
030029,000064: 13,2221 12333 TCF ENDP76
030030,000065: 13,2222 02224 TC +2 # PROCEED
030031,000066: 13,2223 02216 TC -5 # STORE DATA AND REPEAT FLASHING
030032,000067: 13,2224 32337 CAF V06N84 +1 # FLASH VERB 06 NOUN 33, DISPLAY LAST TIG,
030033,000068: 13,2225 04616 TC BANKCALL # AND WAIT FOR KEYBOARD ACTION.
030034,000069: 13,2226 20476 CADR GOFLASH
030035,000070: 13,2227 12333 TCF ENDP76
030036,000071: 13,2230 02232 TC +2
030037,000072: 13,2231 02224 TC -5
030038,000073: 13,2232 06037 TC INTPRET # RETURN TO INTERPRETIVE CODE
Page 710 |
030040,000075: 13,2233 77745 DLOAD # SET D(MPAC)=TIG IN CSEC B28
030041,000076: 13,2234 03442 TIG
030042,000077: 13,2235 34041 STCALL TDEC1 # SET TDEC1=TIG FOR ORBITAL INTEGRATION
030043,000078: 13,2236 27043 OTHPREC
030044,000079: 13,2237 53575 COMPMAT VLOAD UNIT
030045,000080: 13,2240 00001 RATT
030046,000081: 13,2241 77676 VCOMP # U(-R)
030047,000082: 13,2242 00031 STORE 24D # U(-R) TO 24D
030048,000083: 13,2243 53435 VXV UNIT # U(-R) X V = U(V X R)
030049,000084: 13,2244 00007 VATT
030050,000085: 13,2245 00023 STORE 18D
030051,000086: 13,2246 53435 VXV UNIT # U(V X R) X U(-R) = U((R X V) X R)
030052,000087: 13,2247 00031 24D
030053,000088: 13,2250 24015 STOVL 12D
030054,000089: 13,2251 02223 DELVOV
030055,000090: 13,2252 76505 VXM VSL1 # V(MPAC)=DELTA V IN REFCOSYS
030056,000091: 13,2253 00015 12D
030057,000092: 13,2254 77655 VAD
030058,000093: 13,2255 00007 VATT
030059,000094: 13,2256 00007 STORE 6 # V(PD6)=VATT + DELTA V
030060,000095: 13,2257 77624 CALL # PREVENT WOULD-BE USER OF ORBITAL
030061,000096: 13,2260 27414 INTSTALL # INTEG FROM INTERFERING WITH UPDATING
030062,000097: 13,2261 77624 CALL
030063,000098: 13,2262 26340 P76SUB1
030064,000099: 13,2263 53775 VLOAD VSR*
030065,000100: 13,2264 00007 6
030066,000101: 13,2265 57176 0,2
030067,000102: 13,2266 25543 STOVL VCV
030068,000103: 13,2267 00001 RATT
030069,000104: 13,2270 77657 VSR*
030070,000105: 13,2271 57176 0,2
030071,000106: 13,2272 15535 STODL RCV
030072,000107: 13,2273 03442 TIG
030073,000108: 13,2274 01517 STORE TET
030074,000109: 13,2275 71214 CLEAR DLOAD
030075,000110: 13,2276 01673 INTYPFLG
030076,000111: 13,2277 01643 TETTHIS
030077,000112: 13,2300 34041 INTOTHIS STCALL TDEC1
030078,000113: 13,2301 27107 INTEGRVS
030079,000114: 13,2302 77624 CALL
030080,000115: 13,2303 27414 INTSTALL
030081,000116: 13,2304 77775 VLOAD
030082,000117: 13,2305 00017 RATT1
030083,000118: 13,2306 01503 STORE RRECT
030084,000119: 13,2307 15535 STODL RCV
030085,000120: 13,2310 00015 TAT
030086,000121: 13,2311 25517 STOVL TET
030087,000122: 13,2312 00025 VATT1
030088,000123: 13,2313 77624 CALL
030089,000124: 13,2314 23455 MINIRECT
Page 711 |
030091,000126: 13,2315 77776 EXIT
030092,000127: 13,2316 05353 TC PHASCHNG
030093,000128: 13,2317 04024 OCT 04024
030094,000129:
030095,000130: 13,2320 05504 TC UPFLAG
030096,000131: 13,2321 00236 ADRES REINTFLG
030097,000132:
030098,000133: 13,2322 06037 TC INTPRET
030099,000134: 13,2323 77624 CALL
030100,000135: 13,2324 26661 ATOPOTH
030101,000136: 13,2325 77531 SSP EXIT
030102,000137: 13,2326 00053 QPRET
030103,000138: 13,2327 26332 OUT
030104,000139: 13,2330 04616 TC BANKCALL # PERMIT USE OF ORBITAL INTEGRATION
030105,000140: 13,2331 27445 CADR INTWAKE1
030106,000141: 13,2332 77776 OUT EXIT
030107,000142: 13,2333 34755 ENDP76 CAF ZERO
030108,000143: 13,2334 55462 TS MARKCTR # CLEAR RR TRACKING MARK COUNTER
030109,000144: 13,2335 16001 TCF GOTOPOOH
030110,000145:
030111,000146: 13,2336 01524 V06N84 NV 0684
030112,000147: 13,2337 01441 NV 0633
030113,000148: 13,2340 43174 P76SUB1 AXT,2 SET
030114,000149: 13,2341 00002 2
030115,000150: 13,2342 00063 MOONFLAG # SET MEANS MOON IS SPHERE OF INFLUENCE.
030116,000151: 13,2343 77014 BON AXT,2
030117,000152: 13,2344 04303 CMOONFLG # SET MEANS PERM CM STATE IN LUNAR SPHERE.
030118,000153: 13,2345 00052 QPRET
030119,000154: 13,2346 00000 0
030120,000155: 13,2347 43414 CLEAR RVQ
030121,000156: 13,2350 00263 MOONFLAG
030122,000157:
030123,000158:
030124,000159:
End of include-file P76.agc. Parent file is MAIN.agc