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. |
036842,000002: ## Copyright: Public domain.
036843,000003: ## Filename: P12.agc
036844,000004: ## Purpose: A section of LUM69 revision 2.
036845,000005: ## It is part of the reconstructed source code for the flown
036846,000006: ## version of the flight software for the Lunar Module's (LM)
036847,000007: ## Apollo Guidance Computer (AGC) for Apollo 10. The code has
036848,000008: ## been recreated from a copy of Luminary revsion 069, using
036849,000009: ## changes present in Luminary 099 which were described in
036850,000010: ## Luminary memos 75 and 78. The code has been adapted such
036851,000011: ## that the resulting bugger words exactly match those specified
036852,000012: ## for LUM69 revision 2 in NASA drawing 2021152B, which gives
036853,000013: ## relatively high confidence that the reconstruction is correct.
036854,000014: ## Reference: pp. 839-843
036855,000015: ## Assembler: yaYUL
036856,000016: ## Contact: Ron Burkey <info@sandroid.org>.
036857,000017: ## Website: www.ibiblio.org/apollo/index.html
036858,000018: ## Mod history: 2019-07-27 MAS Created from Luminary 69.
036859,000019:
|
Page 839 |
036861,000021: 24,3504 BANK 24
036862,000022: 30,2000 SETLOC P12
036863,000023: 30,2000 BANK
036864,000024:
036865,000025: 30,2006 E7,1513 EBANK= DVCNTR
036866,000026: 30,2006 COUNT* $$/P12
036867,000027:
036868,000028: 30,2006 05353 P12LM TC PHASCHNG
036869,000029: 30,2007 04024 OCT 04024
036870,000030:
036871,000031: 30,2010 04616 TC BANKCALL
036872,000032: 30,2011 11175 CADR R02BOTH # CHECK THE STATUS OF THE IMU.
036873,000033:
036874,000034: 30,2012 05504 TC UPFLAG
036875,000035: 30,2013 00141 ADRES MUNFLAG
036876,000036:
036877,000037: 30,2014 05504 TC UPFLAG # INSURE 4-JET TRANSLATION CAPABILITY.
036878,000038: 30,2015 00307 ADRES ACC4-2FL
036879,000039:
036880,000040: 30,2016 05504 TC UPFLAG # PREVENT R10 FROM ISSUING CROSS-POINTER
036881,000041: 30,2017 00015 ADRES R10FLAG # OUTPUTS.
036882,000042:
036883,000043: 30,2020 05516 TC DOWNFLAG # CLEAR RENDEZVOUS FLAG FOR P22
036884,000044: 30,2021 00010 ADRES RNDVZFLG
036885,000045:
036886,000046: 30,2022 36000 CAF THRESH2 # INITIALIZE DVMON
036887,000047: 30,2023 55251 TS DVTHRUSH
036888,000048: 30,2024 34751 CAF FOUR
036889,000049: 30,2025 55513 TS DVCNTR
036890,000050:
036891,000051: 30,2026 34755 CA ZERO
036892,000052: 30,2027 55460 TS TRKMKCNT # SHOW THAT R29 DOWNLINK DATA ISN'T READY.
036893,000053: 30,2030 33044 CAF V06N33A
036894,000054: 30,2031 04616 TC BANKCALL # FLASH TIG
036895,000055: 30,2032 20351 CADR GOFLASH
036896,000056: 30,2033 16001 TCF GOTOPOOH
036897,000057: 30,2034 12036 TCF +2 # PROCEED
036898,000058: 30,2035 12030 TCF -5 # ENTER
036899,000059:
036900,000060: 30,2036 05353 TC PHASCHNG
036901,000061: 30,2037 04024 OCT 04024
036902,000062:
036903,000063: 30,2040 06036 TC INTPRET
036904,000064: 30,2041 77624 CALL # INITIALIZE WM AND /LAND/
036905,000065: 30,2042 60264 GUIDINIT
036906,000066: 30,2043 45014 SET CALL
036907,000067: 30,2044 04464 FLPI
036908,000068: 30,2045 60204 P12INIT
036909,000069:
036910,000070: 30,2046 77745 P12LMB DLOAD
036911,000071: 30,2047 25604 (TGO)A # SET TGO TO AN INITIAL NOMINAL VALUE.
|
Page 840 |
036913,000073: 30,2050 17515 STODL TGO
036914,000074: 30,2051 03440 TIG
036915,000075: 30,2052 34041 STCALL TDEC1
036916,000076: 30,2053 27057 LEMPREC # ROTATE THE STATE VECTORS TO THE
036917,000077: 30,2054 64375 VLOAD MXV # IGNITION TIME.
036918,000078: 30,2055 00007 VATT
036919,000079: 30,2056 01734 REFSMMAT
036920,000080: 30,2057 77772 VSL1
036921,000081: 30,2060 27577 STOVL V1S # COMPUTE V1S = VEL(TIG)*2(-7) M/CS.
036922,000082: 30,2061 00001 RATT
036923,000083: 30,2062 52521 MXV VSL6
036924,000084: 30,2063 01734 REFSMMAT
036925,000085: 30,2064 37517 STCALL R # COMPUTE R = POS(TIG)*2(-24) M.
036926,000086: 30,2065 67162 MUNGRAV # COMPUTE GDT1/2(TIG)*2(-7)M/CS.
036927,000087: 30,2066 53575 VLOAD UNIT
036928,000088: 30,2067 03517 R
036929,000089: 30,2070 37535 STCALL UNIT/R/ # COMPUTE UNIT/R/ FOR YCOMP.
036930,000090: 30,2071 57316 YCOMP
036931,000091: 30,2072 57461 SR DCOMP
036932,000092: 30,2073 20606 5D
036933,000093: 30,2074 17641 STODL XRANGE # INITIALIZE XRANGE FOR NOUN 76.
036934,000094: 30,2075 20312 (APO)
036935,000095: 30,2076 03643 STORE APO # INITIALIZE APO FOR NOUN 76.
036936,000096: 30,2077 77776 EXIT
036937,000097:
036938,000098: 30,2100 05353 TC PHASCHNG
036939,000099: 30,2101 04024 OCT 04024
036940,000100:
036941,000101: 30,2102 33043 NEWLOAD CAF V06N76 # FLASH CROSS-RANGE AND APOLUNE VALUES.
036942,000102: 30,2103 04616 TC BANKCALL
036943,000103: 30,2104 20351 CADR GOFLASH
036944,000104: 30,2105 16001 TCF GOTOPOOH
036945,000105: 30,2106 12110 TCF +2 # PROCEED
036946,000106: 30,2107 12102 TCF NEWLOAD # ENTER NEW DATA.
036947,000107:
036948,000108: 30,2110 32306 CAF P12ADRES
036949,000109: 30,2111 55453 TS WHICH
036950,000110:
036951,000111: 30,2112 05353 TC PHASCHNG
036952,000112: 30,2113 04024 OCT 04024
036953,000113:
036954,000114: 30,2114 06036 TC INTPRET
036955,000115: 30,2115 54345 DLOAD SL
036956,000116: 30,2116 03641 XRANGE
036957,000117: 30,2117 20206 5D
036958,000118: 30,2120 77615 DAD
036959,000119: 30,2121 02341 Y
036960,000120: 30,2122 17631 STODL YCO
036961,000121: 30,2123 03643 APO # RA = APO + /LAND/
036962,000122: 30,2124 77661 SL
|
Page 841 |
036964,000124: 30,2125 20206 5D
036965,000125: 30,2126 41415 DAD PUSH # RA*2(-24) IN MPAC AND PDL
036966,000126: 30,2127 02337 /LAND/
036967,000127: 30,2130 65205 DMP PDDL # 2 RA MU*2(-62) IN PDL, LOAD RA
036968,000128: 30,2131 20003 MUM(-37)
036969,000129: 30,2132 41215 DAD DMP # (RA+RP)*2(-24)
036970,000130: 30,2133 03627 RCO # RP(RA+RP)*2(-48)
036971,000131: 30,2134 03627 RCO
036972,000132: 30,2135 75465 BDDV SQRT # 2 MU RA/RP(RA+RP)*2(-14)=ZDOTD(2)
036973,000133: 30,2136 77626 STADR
036974,000134: 30,2137 51504 STOVL ZDOTD
036975,000135: 30,2140 03535 UNIT/R/
036976,000136: 30,2141 53361 VXSC VAD
036977,000137: 30,2142 20310 49FPS
036978,000138: 30,2143 03577 V1S
036979,000139: 30,2144 03525 STORE V # V(TIPOVER) = V(IGN) + 57FPS (UNIT/R/)
036980,000140: 30,2145 77614 SETGO
036981,000141: 30,2146 04421 FLVR
036982,000142: 30,2147 60313 ASCENT
036983,000143: 30,2150 77745 P12RET DLOAD
036984,000144: 30,2151 02365 ATP # ATP(2)*2(18)
036985,000145: 30,2152 65316 DSQ PDDL
036986,000146: 30,2153 02361 ATY # ATY(2)*2(18)
036987,000147: 30,2154 43316 DSQ DAD
036988,000148: 30,2155 75454 BZE SQRT
036989,000149: 30,2156 60162 YAWDUN
036990,000150: 30,2157 55352 SL1 BDDV
036991,000151: 30,2160 02361 ATY
036992,000152: 30,2161 77736 ARCSIN
036993,000153: 30,2162 26367 YAWDUN STOVL YAW
036994,000154: 30,2163 03252 UNFC/2
036995,000155: 30,2164 50256 UNIT DOT
036996,000156: 30,2165 03535 UNIT/R/
036997,000157: 30,2166 65552 SL1 ARCCOS
036998,000158: 30,2167 77676 DCOMP
036999,000159: 30,2170 02371 STORE PITCH
037000,000160: 30,2171 77776 EXIT
037001,000161: 30,2172 05353 TC PHASCHNG
037002,000162: 30,2173 04024 OCT 04024
037003,000163:
037004,000164: 30,2174 05516 TC DOWNFLAG
037005,000165: 30,2175 00213 ADRES FLPI
037006,000166:
037007,000167: 30,2176 00004 INHINT
037008,000168: 30,2177 04674 TC IBNKCALL
037009,000169: 30,2200 40142 CADR PFLITEDB
037010,000170: 30,2201 00003 RELINT
037011,000171:
037012,000172: 30,2202 04635 TC POSTJUMP
037013,000173: 30,2203 74124 CADR BURNBABY
|
Page 842 |
037015,000175: 30,2204 77745 P12INIT DLOAD # INITIALIZE ENGINE DATA. USED FOR P12 AND
037016,000176: 30,2205 24001 (1/DV)A # P71.
037017,000177: 30,2206 03637 STORE 1/DV3
037018,000178: 30,2207 03635 STORE 1/DV2
037019,000179: 30,2210 17633 STODL 1/DV1
037020,000180: 30,2211 24005 (AT)A
037021,000181: 30,2212 16257 STODL AT
037022,000182: 30,2213 24007 (TBUP)A
037023,000183: 30,2214 16265 STODL TBUP
037024,000184: 30,2215 34013 ATDECAY
037025,000185: 30,2216 54276 DCOMP SL
037026,000186: 30,2217 20214 11D
037027,000187: 30,2220 02263 STORE TTO
037028,000188: 30,2221 57535 SLOAD DCOMP
037029,000189: 30,2222 26001 APSVEX
037030,000190: 30,2223 77702 SR2
037031,000191: 30,2224 02261 STORE VE
037032,000192: 30,2225 43414 BOFF RVQ
037033,000193: 30,2226 04747 FLAP
037034,000194: 30,2227 60230 COMMINIT
037035,000195: 30,2230 43345 COMMINIT DLOAD DAD # INITIALIZE TARGET DATA. USED BY P12, P70
037036,000196: 30,2231 25602 HINJECT # AND P71 IF IT DOES NOT FOLLOW P70.
037037,000197: 30,2232 02337 /LAND/
037038,000198: 30,2233 17627 STODL RCO
037039,000199: 30,2234 06424 HI6ZEROS
037040,000200: 30,2235 03654 STORE TXO
037041,000201: 30,2236 03631 STORE YCO
037042,000202: 30,2237 02267 STORE RDOTD
037043,000203: 30,2240 26271 STOVL YDOTD
037044,000204: 30,2241 01563 VRECTCSM
037045,000205: 30,2242 64235 VXV MXV
037046,000206: 30,2243 01555 RRECTCSM
037047,000207: 30,2244 01734 REFSMMAT
037048,000208: 30,2245 77656 UNIT
037049,000209: 30,2246 17716 STODL QAXIS
037050,000210: 30,2247 02506 ABTVINJ2 # TENTATIVELY STORE LOW INJECTION VELOCITY
037051,000211: 30,2250 02273 STORE ZDOTD
037052,000212: 30,2251 77614 BON
037053,000213: 30,2252 04704 FLPI
037054,000214: 30,2253 60263 LOVEL
037055,000215: 30,2254 45335 SLOAD DSU
037056,000216: 30,2255 02503 TBRKPNT # TBRKPNT-TGO
037057,000217: 30,2256 03515 TGO
037058,000218: 30,2257 71240 BMN DLOAD # IF TGO>TBRKPNT,LOW VINJECT IS OK;RETURN
037059,000219: 30,2260 60263 LOVEL
037060,000220: 30,2261 02504 ABTVINJ1 # FOR TGO.TBRKPNT USE HI VELOCITY.
037061,000221: 30,2262 02273 STORE ZDOTD
037062,000222: 30,2263 77616 LOVEL RVQ
037063,000223: 30,2264 40220 GUIDINIT STQ SETPD
037064,000224: 30,2265 01164 TEMPR60
|
Page 843 |
037066,000226: 30,2266 00001 0D
037067,000227: 30,2267 41575 VLOAD PUSH
037068,000228: 30,2270 06416 UNITZ
037069,000229: 30,2271 41434 RTB PUSH
037070,000230: 30,2272 21462 LOADTIME
037071,000231: 30,2273 45135 SLOAD CALL
037072,000232: 30,2274 20312 (APO)
037073,000233: 30,2275 51504 RP-TO-R
037074,000234: 30,2276 74321 MXV VXSC
037075,000235: 30,2277 01734 REFSMMAT
037076,000236: 30,2300 20005 MOONRATE
037077,000237: 30,2301 26331 STOVL WM
037078,000238: 30,2302 02023 RLS
037079,000239: 30,2303 52446 ABVAL SL3
037080,000240: 30,2304 36337 STCALL /LAND/
037081,000241: 30,2305 01164 TEMPR60
037082,000242:
037083,000243: 30,2306 02022 P12ADRES REMADR P12TABLE # NOT IN SAME BANK.
037084,000244: 30,2307 00046 07374 49FPS 2DEC .149352 B-6 # EXPECTED RDOT AT TIPOVER
037085,000245:
037086,000246: 30,2311 00001 26227 (APO) 2DEC 55597.5 B-29 # 30 N.M. EXPRESSED IN METERS.
End of include-file P12.agc. Parent file is MAIN.agc