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. |
030988,000002: ## Copyright: Public domain.
030989,000003: ## Filename: P76.agc
030990,000004: ## Purpose: A section of LUM69 revision 2.
030991,000005: ## It is part of the reconstructed source code for the flown
030992,000006: ## version of the flight software for the Lunar Module's (LM)
030993,000007: ## Apollo Guidance Computer (AGC) for Apollo 10. The code has
030994,000008: ## been recreated from a copy of Luminary revsion 069, using
030995,000009: ## changes present in Luminary 099 which were described in
030996,000010: ## Luminary memos 75 and 78. The code has been adapted such
030997,000011: ## that the resulting bugger words exactly match those specified
030998,000012: ## for LUM69 revision 2 in NASA drawing 2021152B, which gives
030999,000013: ## relatively high confidence that the reconstruction is correct.
031000,000014: ## Reference: pp. 717-719
031001,000015: ## Assembler: yaYUL
031002,000016: ## Contact: Ron Burkey <info@sandroid.org>.
031003,000017: ## Website: www.ibiblio.org/apollo/index.html
031004,000018: ## Mod history: 2019-07-27 MAS Created from Luminary 69.
031005,000019:
|
Page 717 |
031007,000021: # 1) PROGRAM NAME - TARGET DELTA V PROGRAM (P76).
031008,000022: # 2) FUNCTIONAL DESCRIPTION - UPON ENTRY BY ASTRONAUT ACTION, P76 FLASHES DSKY REQUESTS TO THE ASTRONAUT
031009,000023: # TO PROVIDE VIA DSKY (1) THE DELTA V TO BE APPLIED TO THE OTHER VEHICLE STATE VECTOR AND (2) THE
031010,000024: # TIME (TIG) AT WHICH THE OTHER VEHICLE VELOCITY WAS CHANGED BY EXECUTION OF A THRUSTING MANEUVER. THE
031011,000025: # OTHER VEHICLE STATE VECTOR IS INTEGRATED TO TIG AND UPDATED BY THE ADDITION OF DELTA V (DELTA V HAVING
031012,000026: # BEEN TRANSFORMED FROM LV TO REF COSYS). USING INTEGRVS, THE PROGRAM THEN INTEGRATES THE OTHER
031013,000027: # VEHICLE STATE VECTOR TO THE STATE VECTOR OF THIS VEHICLE, THUS INSURING THAT THE W-MATRIX AND BOTH VEHICLE
031014,000028: # STATES CORRESPOND TO THE SAME TIME.
031015,000029: # 3) ERASABLE INITIALIZATION REQUIRED - NONE.
031016,000030: # 4) CALLING SEQUENCES AND EXIT MODES - CALLED BY ASTRONAUT REQUEST THRU DSKY V 37 E 76E.
031017,000031: # EXITS BY TCF ENDOFJOB.
031018,000032: # 5) OUTPUT - OTHER VEHICLE STATE VECTOR INTEGRATED TO TIG AND INCREMENTED BY DELTA V IN REF COSYS.
031019,000033: # THE PUSHLIST CONTAINS THE MATRIX BY WHICH THE INPUT DELTA V MUST BE POST-MULTIPLIED TO CONVERT FROM LV
031020,000034: # TO REF COSYS.
031021,000035: # 6) DEBRIS - OTHER VEHICLE STATE VECTOR.
031022,000036: # 7) SUBROUTINES CALLED - BANKCALL, GOXDSPF, CSMPREC (OR LEMPREC), ATOPCSM (OR ATOPLEM), INTSTALL, INTWAKE, PHASCHNG
031023,000037: # INTPRET, INTEGRVS, AND MINIRECT.
031024,000038: # 8) FLAG USE - MOONFLAG, CMOONFLAG, INTYPFLG, RASFLAG, AND MARKCTR.
031025,000039:
031026,000040: 30,2006 BANK 30
031027,000041: 13,2000 SETLOC P76LOC
031028,000042: 13,2000 BANK
031029,000043:
031030,000044: 13,2207 COUNT* $$/P76
031031,000045:
031032,000046: 13,2207 E7,1437 EBANK= TIG
031033,000047:
031034,000048: 13,2207 05504 P76 TC UPFLAG
031035,000049: 13,2210 00031 ADRES TRACKFLG
031036,000050:
031037,000051: 13,2211 06036 TC INTPRET
031038,000052: 13,2212 77775 VLOAD
031039,000053: 13,2213 03432 DELVLVC
031040,000054: 13,2214 02227 STORE DELVOV
031041,000055: 13,2215 77776 EXIT
031042,000056:
031043,000057: 13,2216 32336 CAF V06N84 # FLASH LAST DELTA V,
031044,000058: 13,2217 04616 TC BANKCALL # AND WAIT FOR KEYBOARD ACTION.
031045,000059: 13,2220 20351 CADR GOFLASH
031046,000060: 13,2221 12333 TCF ENDP76
031047,000061: 13,2222 02224 TC +2 # PROCEED
031048,000062: 13,2223 02216 TC -5 # STORE DATA AND REPEAT FLASHING
031049,000063: 13,2224 32337 CAF V06N84 +1 # FLASH VERB 06 NOUN 33, DISPLAY LAST TIG,
031050,000064: 13,2225 04616 TC BANKCALL # AND WAIT FOR KEYBOARD ACTION.
031051,000065: 13,2226 20351 CADR GOFLASH
031052,000066: 13,2227 12333 TCF ENDP76
031053,000067: 13,2230 02232 TC +2
031054,000068: 13,2231 02224 TC -5
031055,000069: 13,2232 06036 TC INTPRET # RETURN TO INTERPRETIVE CODE
|
Page 718 |
031057,000071: 13,2233 77745 DLOAD # SET D(MPAC)=TIG IN CSEC B28
031058,000072: 13,2234 03440 TIG
031059,000073: 13,2235 34041 STCALL TDEC1 # SET TDEC1=TIG FOR ORBITAL INTEGRATION
031060,000074: 13,2236 27043 OTHPREC
031061,000075: 13,2237 53575 COMPMAT VLOAD UNIT
031062,000076: 13,2240 00001 RATT
031063,000077: 13,2241 77676 VCOMP # U(-R)
031064,000078: 13,2242 00031 STORE 24D # U(-R) TO 24D
031065,000079: 13,2243 53435 VXV UNIT # U(-R) X V = U(V X R)
031066,000080: 13,2244 00007 VATT
031067,000081: 13,2245 00023 STORE 18D
031068,000082: 13,2246 53435 VXV UNIT # U(V X R) X U(-R) = U((R X V) X R)
031069,000083: 13,2247 00031 24D
031070,000084: 13,2250 24015 STOVL 12D
031071,000085: 13,2251 02227 DELVOV
031072,000086: 13,2252 76505 VXM VSL1 # V(MPAC)=DELTA V IN REFCOSYS
031073,000087: 13,2253 00015 12D
031074,000088: 13,2254 77655 VAD
031075,000089: 13,2255 00007 VATT
031076,000090: 13,2256 00007 STORE 6 # V(PD6)=VATT + DELTA V
031077,000091: 13,2257 77624 CALL # PREVENT WOULD-BE USER OF ORBITAL
031078,000092: 13,2260 27412 INTSTALL # INTEG FROM INTERFERING WITH UPDATING
031079,000093: 13,2261 77624 CALL
031080,000094: 13,2262 26340 P76SUB1
031081,000095: 13,2263 53775 VLOAD VSR*
031082,000096: 13,2264 00007 6
031083,000097: 13,2265 57176 0,2
031084,000098: 13,2266 25543 STOVL VCV
031085,000099: 13,2267 00001 RATT
031086,000100: 13,2270 77657 VSR*
031087,000101: 13,2271 57176 0,2
031088,000102: 13,2272 15535 STODL RCV
031089,000103: 13,2273 03440 TIG
031090,000104: 13,2274 01517 STORE TET
031091,000105: 13,2275 71214 CLEAR DLOAD
031092,000106: 13,2276 01673 INTYPFLG
031093,000107: 13,2277 01643 TETTHIS
031094,000108: 13,2300 34041 INTOTHIS STCALL TDEC1
031095,000109: 13,2301 27107 INTEGRVS
031096,000110: 13,2302 77624 CALL
031097,000111: 13,2303 27412 INTSTALL
031098,000112: 13,2304 77775 VLOAD
031099,000113: 13,2305 00017 RATT1
031100,000114: 13,2306 01503 STORE RRECT
031101,000115: 13,2307 15535 STODL RCV
031102,000116: 13,2310 00015 TAT
031103,000117: 13,2311 25517 STOVL TET
031104,000118: 13,2312 00025 VATT1
031105,000119: 13,2313 77624 CALL
031106,000120: 13,2314 23361 MINIRECT
|
Page 719 |
031108,000122: 13,2315 77776 EXIT
031109,000123: 13,2316 05353 TC PHASCHNG
031110,000124: 13,2317 04024 OCT 04024
031111,000125:
031112,000126: 13,2320 05504 TC UPFLAG
031113,000127: 13,2321 00236 ADRES REINTFLG
031114,000128:
031115,000129: 13,2322 06036 TC INTPRET
031116,000130: 13,2323 77624 CALL
031117,000131: 13,2324 26661 ATOPOTH
031118,000132: 13,2325 77531 SSP EXIT
031119,000133: 13,2326 00053 QPRET
031120,000134: 13,2327 26332 OUT
031121,000135: 13,2330 04616 TC BANKCALL # PERMIT USE OF ORBITAL INTEGRATION
031122,000136: 13,2331 27447 CADR INTWAKE1
031123,000137: 13,2332 77776 OUT EXIT
031124,000138: 13,2333 34755 ENDP76 CAF ZERO
031125,000139: 13,2334 55460 TS MARKCTR # CLEAR RR TRACKING MARK COUNTER
031126,000140: 13,2335 16001 TCF GOTOPOOH
031127,000141:
031128,000142: 13,2336 01524 V06N84 NV 0684
031129,000143: 13,2337 01441 NV 0633
031130,000144: 13,2340 43174 P76SUB1 AXT,2 SET
031131,000145: 13,2341 00002 2
031132,000146: 13,2342 00063 MOONFLAG # SET MEANS MOON IS SPHERE OF INFLUENCE.
031133,000147: 13,2343 77014 BON AXT,2
031134,000148: 13,2344 04303 CMOONFLG # SET MEANS PERM CM STATE IN LUNAR SPHERE.
031135,000149: 13,2345 00052 QPRET
031136,000150: 13,2346 00000 0
031137,000151: 13,2347 43414 CLEAR RVQ
031138,000152: 13,2350 00263 MOONFLAG
031139,000153:
031140,000154:
031141,000155:
End of include-file P76.agc. Parent file is MAIN.agc