Source Code
This is an attempt to recreate Luminary 99 Rev 2, otherwise known as LUM99R2, from Luminary 99 Rev 1 and ephemeris data from Luminary 116. The differences are confined to the last 10-12 lines of the CONTROLLED CONSTANTS. Luminary 99 Rev 1 source-code was transcribed from a printout in the MIT Museum, while Luminary 116 source code was transcribed from a printout belonging to Don Eyles. AGC developer James Kernan, the "rope mother" for the Apollo 11 Lunar Module's AGC, explains as follows: "At the last minute, Dan Lickly, our chief engineer, appeared with ephemerides updates and it took two tries to get it right. The result was that we created Lum99 Revision 1 and Lum99 Revision 2." It is suspected that the former is what's in the MIT Museum, and the latter is what we are trying to recreate here. As for which revision actually flew in Apollo 11, all of the other available surviving evidence points to Rev 1 rather than to Rev 2, so we're just not sure! |
029890,000002: ## Copyright: Public domain.
029891,000003: ## Filename: P76.agc
029892,000004: ## Purpose: Part of the source code for Luminary 1A build 099.
029893,000005: ## It is part of the source code for the Lunar Module's (LM)
029894,000006: ## Apollo Guidance Computer (AGC), for Apollo 11.
029895,000007: ## Assembler: yaYUL
029896,000008: ## Contact: Ron Burkey <info@sandroid.org>.
029897,000009: ## Website: www.ibiblio.org/apollo.
029898,000010: ## Pages: 709-711
029899,000011: ## Mod history: 2009-05-19 RSB Adapted from the corresponding
029900,000012: ## Luminary131 file, using page
029901,000013: ## images from Luminary 1A.
029902,000014: ## 2016-12-13 RSB GOTOP00H -> GOTOPOOH
029903,000015: ## 2016-12-14 RSB Proofed text comments with octopus/ProoferComments
029904,000016: ## and corrected the errors found.
029905,000017: ## 2017-03-03 RSB Snapshot of Luminary 99 Rev 1.
029906,000018:
Page 709 |
029908,000020: # 1) PROGRAM NAME - TARGET DELTA V PROGRAM (P76).
029909,000021: # 2) FUNCTIONAL DESCRIPTION - UPON ENTRY BY ASTRONAUT ACTION, P76 FLASHES DSKY REQUESTS TO THE ASTRONAUT
029910,000022: # TO PROVIDE VIA DSKY (1) THE DELTA V TO BE APPLIED TO THE OTHER VEHICLE STATE VECTOR AND (2) THE
029911,000023: # TIME (TIG) AT WHICH THE OTHER VEHICLE VELOCITY WAS CHANGED BY EXECUTION OF A THRUSTING MANEUVER. THE
029912,000024: # OTHER VEHICLE STATE VECTOR IS INTEGRATED TO TIG AND UPDATED BY THE ADDITION OF DELTA V (DELTA V HAVING
029913,000025: # BEEN TRANSFORMED FROM LV TO REF COSYS). USING INTEGRVS, THE PROGRAM THEN INTEGRATES THE OTHER
029914,000026: # VEHICLE STATE VECTOR TO THE STATE VECTOR OF THIS VEHICLE, THUS INSURING THAT THE W-MATRIX AND BOTH VEHICLE
029915,000027: # STATES CORRESPOND TO THE SAME TIME.
029916,000028: # 3) ERASABLE INITIALIZATION REQUIRED - NONE.
029917,000029: # 4) CALLING SEQUENCES AND EXIT MODES - CALLED BY ASTRONAUT REQUEST THRU DSKY V 37 E 76E.
029918,000030: # EXITS BY TCF ENDOFJOB.
029919,000031: # 5) OUTPUT - OTHER VEHICLE STATE VECTOR INTEGRATED TO TIG AND INCREMENTED BY DELTA V IN REF COSYS.
029920,000032: # THE PUSHLIST CONTAINS THE MATRIX BY WHICH THE INPUT DELTA V MUST BE POST-MULTIPLIED TO CONVERT FROM LV
029921,000033: # TO REF COSYS.
029922,000034: # 6) DEBRIS - OTHER VEHICLE STATE VECTOR.
029923,000035: # 7) SUBROUTINES CALLED - BANKCALL, GOXDSPF, CSMPREC (OR LEMPREC), ATOPCSM (OR ATOPLEM), INTSTALL, INTWAKE, PHASCHNG
029924,000036: # INTPRET, INTEGRVS, AND MINIRECT.
029925,000037: # 8) FLAG USE - MOONFLAG, CMOONFLAG, INTYPFLG, RASFLAG, AND MARKCTR.
029926,000038:
029927,000039: 30,2061 BANK 30
029928,000040: 13,2000 SETLOC P76LOC
029929,000041: 13,2000 BANK
029930,000042:
029931,000043: 13,2207 COUNT* $$/P76
029932,000044:
029933,000045: 13,2207 E7,1441 EBANK= TIG
029934,000046:
029935,000047: 13,2207 05504 P76 TC UPFLAG
029936,000048: 13,2210 00031 ADRES TRACKFLG
029937,000049:
029938,000050: 13,2211 06037 TC INTPRET
029939,000051: 13,2212 77775 VLOAD
029940,000052: 13,2213 03434 DELVLVC
029941,000053: 13,2214 02223 STORE DELVOV
029942,000054: 13,2215 77776 EXIT
029943,000055:
029944,000056: 13,2216 32336 CAF V06N84 # FLASH LAST DELTA V,
029945,000057: 13,2217 04616 TC BANKCALL # AND WAIT FOR KEYBOARD ACTION.
029946,000058: 13,2220 20476 CADR GOFLASH
029947,000059: 13,2221 12333 TCF ENDP76
029948,000060: 13,2222 02224 TC +2 # PROCEED
029949,000061: 13,2223 02216 TC -5 # STORE DATA AND REPEAT FLASHING
029950,000062: 13,2224 32337 CAF V06N84 +1 # FLASH VERB 06 NOUN 33, DISPLAY LAST TIG,
029951,000063: 13,2225 04616 TC BANKCALL # AND WAIT FOR KEYBOARD ACTION.
029952,000064: 13,2226 20476 CADR GOFLASH
029953,000065: 13,2227 12333 TCF ENDP76
029954,000066: 13,2230 02232 TC +2
029955,000067: 13,2231 02224 TC -5
029956,000068: 13,2232 06037 TC INTPRET # RETURN TO INTERPRETIVE CODE
Page 710 |
029958,000070: 13,2233 77745 DLOAD # SET D(MPAC)=TIG IN CSEC B28
029959,000071: 13,2234 03442 TIG
029960,000072: 13,2235 34041 STCALL TDEC1 # SET TDEC1=TIG FOR ORBITAL INTEGRATION
029961,000073: 13,2236 27043 OTHPREC
029962,000074: 13,2237 53575 COMPMAT VLOAD UNIT
029963,000075: 13,2240 00001 RATT
029964,000076: 13,2241 77676 VCOMP # U(-R)
029965,000077: 13,2242 00031 STORE 24D # U(-R) TO 24D
029966,000078: 13,2243 53435 VXV UNIT # U(-R) X V = U(V X R)
029967,000079: 13,2244 00007 VATT
029968,000080: 13,2245 00023 STORE 18D
029969,000081: 13,2246 53435 VXV UNIT # U(V X R) X U(-R) = U((R X V) X R)
029970,000082: 13,2247 00031 24D
029971,000083: 13,2250 24015 STOVL 12D
029972,000084: 13,2251 02223 DELVOV
029973,000085: 13,2252 76505 VXM VSL1 # V(MPAC)=DELTA V IN REFCOSYS
029974,000086: 13,2253 00015 12D
029975,000087: 13,2254 77655 VAD
029976,000088: 13,2255 00007 VATT
029977,000089: 13,2256 00007 STORE 6 # V(PD6)=VATT + DELTA V
029978,000090: 13,2257 77624 CALL # PREVENT WOULD-BE USER OF ORBITAL
029979,000091: 13,2260 27414 INTSTALL # INTEG FROM INTERFERING WITH UPDATING
029980,000092: 13,2261 77624 CALL
029981,000093: 13,2262 26340 P76SUB1
029982,000094: 13,2263 53775 VLOAD VSR*
029983,000095: 13,2264 00007 6
029984,000096: 13,2265 57176 0,2
029985,000097: 13,2266 25543 STOVL VCV
029986,000098: 13,2267 00001 RATT
029987,000099: 13,2270 77657 VSR*
029988,000100: 13,2271 57176 0,2
029989,000101: 13,2272 15535 STODL RCV
029990,000102: 13,2273 03442 TIG
029991,000103: 13,2274 01517 STORE TET
029992,000104: 13,2275 71214 CLEAR DLOAD
029993,000105: 13,2276 01673 INTYPFLG
029994,000106: 13,2277 01643 TETTHIS
029995,000107: 13,2300 34041 INTOTHIS STCALL TDEC1
029996,000108: 13,2301 27107 INTEGRVS
029997,000109: 13,2302 77624 CALL
029998,000110: 13,2303 27414 INTSTALL
029999,000111: 13,2304 77775 VLOAD
030000,000112: 13,2305 00017 RATT1
030001,000113: 13,2306 01503 STORE RRECT
030002,000114: 13,2307 15535 STODL RCV
030003,000115: 13,2310 00015 TAT
030004,000116: 13,2311 25517 STOVL TET
030005,000117: 13,2312 00025 VATT1
030006,000118: 13,2313 77624 CALL
030007,000119: 13,2314 23455 MINIRECT
Page 711 |
030009,000121: 13,2315 77776 EXIT
030010,000122: 13,2316 05353 TC PHASCHNG
030011,000123: 13,2317 04024 OCT 04024
030012,000124:
030013,000125: 13,2320 05504 TC UPFLAG
030014,000126: 13,2321 00236 ADRES REINTFLG
030015,000127:
030016,000128: 13,2322 06037 TC INTPRET
030017,000129: 13,2323 77624 CALL
030018,000130: 13,2324 26661 ATOPOTH
030019,000131: 13,2325 77531 SSP EXIT
030020,000132: 13,2326 00053 QPRET
030021,000133: 13,2327 26332 OUT
030022,000134: 13,2330 04616 TC BANKCALL # PERMIT USE OF ORBITAL INTEGRATION
030023,000135: 13,2331 27445 CADR INTWAKE1
030024,000136: 13,2332 77776 OUT EXIT
030025,000137: 13,2333 34755 ENDP76 CAF ZERO
030026,000138: 13,2334 55462 TS MARKCTR # CLEAR RR TRACKING MARK COUNTER
030027,000139: 13,2335 16001 TCF GOTOPOOH
030028,000140:
030029,000141: 13,2336 01524 V06N84 NV 0684
030030,000142: 13,2337 01441 NV 0633
030031,000143: 13,2340 43174 P76SUB1 AXT,2 SET
030032,000144: 13,2341 00002 2
030033,000145: 13,2342 00063 MOONFLAG # SET MEANS MOON IS SPHERE OF INFLUENCE.
030034,000146: 13,2343 77014 BON AXT,2
030035,000147: 13,2344 04303 CMOONFLG # SET MEANS PERM CM STATE IN LUNAR SPHERE.
030036,000148: 13,2345 00052 QPRET
030037,000149: 13,2346 00000 0
030038,000150: 13,2347 43414 CLEAR RVQ
030039,000151: 13,2350 00263 MOONFLAG
030040,000152:
030041,000153:
030042,000154:
End of include-file P76.agc. Parent file is MAIN.agc