Source Code
This source code is very close to the Apollo Guidance Computer software for the
Apollo 13 Lunar module. This revision of the Luminary 131 program is from December
of 1969, whereas there was a later revision in January of 1970, and still another
revision in February, which is the code that flew on the mission.
As far as this transcription is concerned, it was originally from a copy made in 1991 of
a printout from the collection of AGC developer Don Eyles for collector David Craig.
It was subsequently scanned by Gary Neff, reprocessed for online
presentation at the now-discontinued History of Recent Science and Technology (HRST) website
of MIT's Dibner Institute (the full-quality scans being discarded in the process),
and finally transcribed by Ron Burkey for the Virtual AGC Project. Although a
high-quality replacement scan for a completely illegible page was later provided by Gary
Neff, the reduced legibility of the reprocessed HRST posting nevertheless caused many
errors to be introduced into the transcription. Accordingly, a second scan of the same physical
printout was made in 2017 for the Virtual AGC Project's collection at the Internet Archive,
and used to correct the transcription errors. All of the scanned materials mentioned,
as well as other Luminary 131 related material, are available online.
Don Eyles apprently made additional hand-written notes in printout between 1991 and 2017,
so the two scans are not identical in that respect. The page-headings in the printout read, in part:GAP: ASSEMBLE REVISION 131 OF AGC PROGRAM LUMINARY BY NASA 2021112-091 17:53 DEC. 19, 1969Note that the date is the date the printout was made, not the date on which the program revision was released, although these happen to be very close together. |
035643,000002: ## Copyright: Public domain.
035644,000003: ## Filename: P12.agc
035645,000004: ## Purpose: A section of Luminary 1C, revision 131.
035646,000005: ## It is part of the source code for the Lunar Module's (LM)
035647,000006: ## Apollo Guidance Computer (AGC) for Apollo 13.
035648,000007: ## This file is intended to be a faithful transcription, except
035649,000008: ## that the code format has been changed to conform to the
035650,000009: ## requirements of the yaYUL assembler rather than the
035651,000010: ## original YUL assembler.
035652,000011: ## Reference: pp. 831-835
035653,000012: ## Contact: Ron Burkey <info@sandroid.org>.
035654,000013: ## Website: www.ibiblio.org/apollo/index.html
035655,000014: ## Mod history: 05/26/03 RSB. Began transcribing.
035656,000015: ## 05/14/05 RSB Corrected website reference above.
035657,000016: ## 2017-01-06 RSB Page numbers now agree with those on the
035658,000017: ## original harcopy, as opposed to the PDF page
035659,000018: ## numbers in 1701.pdf.
035660,000019: ## 2017-01-28 RSB Proofed comment text using octopus/prooferComments
035661,000020: ## and fixed errors found.
035662,000021: ## 2017-02-26 RSB Proofed comment text using octopus/ProoferComments.
035663,000022: ## 2017-03-13 RSB Comment-text fixes noted in proofing Luminary 116.
035664,000023: ## 2017-08-26 MAS Fixed a comment-text error found while transcribing
035665,000024: ## Zerlina 56.
035666,000025:
Page 831 |
035668,000027: 24,3700 BANK 24
035669,000028: 30,2000 SETLOC P12
035670,000029: 30,2000 BANK
035671,000030:
035672,000031: 30,2061 E7,1515 EBANK= DVCNTR
035673,000032: 30,2061 COUNT* $$/P12
035674,000033:
035675,000034: 30,2061 05353 P12LM TC PHASCHNG
035676,000035: 30,2062 04024 OCT 04024
035677,000036:
035678,000037: 30,2063 04616 TC BANKCALL
035679,000038: 30,2064 11233 CADR R02BOTH # CHECK THE STATUS OF THE IMU.
035680,000039: 30,2065 06011 TC CLRADMOD # INITIALIZE RADMODES FOR R29.
035681,000040: 30,2066 36000 CAF THRESH2 # INITIALIZE DVMON
035682,000041: 30,2067 55250 TS DVTHRUSH
035683,000042: 30,2070 34751 CAF FOUR
035684,000043: 30,2071 55515 TS DVCNTR
035685,000044:
035686,000045: 30,2072 34755 CA ZERO
035687,000046: 30,2073 55462 TS TRKMKCNT # SHOW THAT R29 DOWNLINK DATA IS NOT READY
035688,000047:
035689,000048: 30,2074 33022 CAF V06N33A
035690,000049: 30,2075 04616 TC BANKCALL # FLASH TIG
035691,000050: 30,2076 20477 CADR GOFLASH
035692,000051: 30,2077 16001 TCF GOTOPOOH
035693,000052: 30,2100 12102 TCF +2 # PROCEED
035694,000053: 30,2101 12074 TCF -5 # ENTER
035695,000054:
035696,000055: 30,2102 05353 TC PHASCHNG
035697,000056: 30,2103 04024 OCT 04024
035698,000057:
035699,000058: 30,2104 06042 TC INTPRET
035700,000059: 30,2105 43014 SET SET
035701,000060: 30,2106 03067 MUNFLAG
035702,000061: 30,2107 06464 ACC4-2FL
035703,000062: 30,2110 43014 SET CLEAR
035704,000063: 30,2111 00075 R10FLAG
035705,000064: 30,2112 00270 RNDVZFLG
035706,000065: 30,2113 43014 SET SET
035707,000066: 30,2114 04464 FLPI
035708,000067: 30,2115 04461 FLVR
035709,000068: 30,2116 77624 CALL # INITIALIZE WM AND /LAND/
035710,000069: 30,2117 71343 GUIDINIT
035711,000070: 30,2120 77624 CALL
035712,000071: 30,2121 60251 P12INIT
035713,000072: 30,2122 77745 P12LMB DLOAD
035714,000073: 30,2123 25740 (TGO)A # SET TGO TO AN INITIAL NOMINAL VALUE.
035715,000074: 30,2124 17517 STODL TGO
Page 832 |
035717,000076: 30,2125 03442 TIG
035718,000077: 30,2126 34041 STCALL TDEC1
035719,000078: 30,2127 27056 LEMPREC # ROTATE THE STATE VECTORS TO THE
035720,000079: 30,2130 64375 VLOAD MXV # IGNITION TIME.
035721,000080: 30,2131 00007 VATT
035722,000081: 30,2132 01734 REFSMMAT
035723,000082: 30,2133 77772 VSL1
035724,000083: 30,2134 27601 STOVL V1S # COMPUTE V1S = VEL(TIG)*2(-7) M/CS.
035725,000084: 30,2135 00001 RATT
035726,000085: 30,2136 52521 MXV VSL6
035727,000086: 30,2137 01734 REFSMMAT
035728,000087: 30,2140 37521 STCALL R # COMPUTE R = POS(TIG)*2(-24) M.
035729,000088: 30,2141 67067 MUNGRAV # COMPUTE GDT1/2(TIG)*2(-7)M/CS.
035730,000089: 30,2142 53575 VLOAD UNIT
035731,000090: 30,2143 03521 R
035732,000091: 30,2144 37537 STCALL UNIT/R/ # COMPUTE UNIT/R/ FOR YCOMP.
035733,000092: 30,2145 57313 YCOMP
035734,000093: 30,2146 57461 SR DCOMP
035735,000094: 30,2147 20606 5D
035736,000095: 30,2150 17643 STODL XRANGE # INITIALIZE XRANGE FOR NOUN 76.
035737,000096: 30,2151 31367 VINJNOM
035738,000097: 30,2152 16277 STODL ZDOTD
035739,000098: 30,2153 31371 RDOTDNOM
035740,000099: 30,2154 02273 STORE RDOTD
035741,000100: 30,2155 77776 EXIT
035742,000101:
035743,000102: 30,2156 05353 TC PHASCHNG
035744,000103: 30,2157 04024 OCT 04024
035745,000104:
035746,000105: 30,2160 33021 NEWLOAD CAF V06N76 # FLASH CROSS-RANGE AND APOLUNE VALUES.
035747,000106: 30,2161 04616 TC BANKCALL
035748,000107: 30,2162 20477 CADR GOFLASH
035749,000108: 30,2163 16001 TCF GOTOPOOH
035750,000109: 30,2164 12166 TCF +2 # PROCEED
035751,000110: 30,2165 12160 TCF NEWLOAD # ENTER NEW DATA.
035752,000111:
035753,000112: 30,2166 32314 CAF P12ADRES
035754,000113: 30,2167 55455 TS WHICH
035755,000114:
035756,000115: 30,2170 05353 TC PHASCHNG
035757,000116: 30,2171 04024 OCT 04024
035758,000117:
035759,000118: 30,2172 06042 TC INTPRET
035760,000119: 30,2173 54345 DLOAD SL
035761,000120: 30,2174 03643 XRANGE
035762,000121: 30,2175 20206 5D
035763,000122: 30,2176 77615 DAD
035764,000123: 30,2177 02335 Y
035765,000124: 30,2200 27633 STOVL YCO
035766,000125: 30,2201 03537 UNIT/R/
Page 833 |
035768,000127: 30,2202 53361 VXSC VAD
035769,000128: 30,2203 31365 49FPS
035770,000129: 30,2204 03601 V1S
035771,000130: 30,2205 03527 STORE V # V(TIPOVER) = V(IGN) + 57FPS (UNIT/R/)
035772,000131: 30,2206 72441 DOT SL1
035773,000132: 30,2207 03537 UNIT/R/
035774,000133: 30,2210 27474 STOVL RDOT # RDOT * 2(-7)
035775,000134: 30,2211 03537 UNIT/R/
035776,000135: 30,2212 53435 VXV UNIT
035777,000136: 30,2213 03720 QAXIS
035778,000137: 30,2214 37726 STCALL ZAXIS1
035779,000138: 30,2215 60315 ASCENT
035780,000139: 30,2216 77745 P12RET DLOAD
035781,000140: 30,2217 02361 ATP # ATP(2)*2(18)
035782,000141: 30,2220 65316 DSQ PDDL
035783,000142: 30,2221 02355 ATY # ATY(2)*2(18)
035784,000143: 30,2222 43316 DSQ DAD
035785,000144: 30,2223 75454 BZE SQRT
035786,000145: 30,2224 60230 YAWDUN
035787,000146: 30,2225 55352 SL1 BDDV
035788,000147: 30,2226 02355 ATY
035789,000148: 30,2227 77736 ARCSIN
035790,000149: 30,2230 26363 YAWDUN STOVL YAW
035791,000150: 30,2231 03253 UNFC/2
035792,000151: 30,2232 50256 UNIT DOT
035793,000152: 30,2233 03537 UNIT/R/
035794,000153: 30,2234 65552 SL1 ARCCOS
035795,000154: 30,2235 77676 DCOMP
035796,000155: 30,2236 02365 STORE PITCH
035797,000156: 30,2237 77776 EXIT
035798,000157: 30,2240 05353 TC PHASCHNG
035799,000158: 30,2241 04024 OCT 04024
035800,000159:
035801,000160: 30,2242 00004 INHINT
035802,000161: 30,2243 04674 TC IBNKCALL
035803,000162: 30,2244 40143 CADR PFLITEDB
035804,000163: 30,2245 05516 TC DOWNFLAG
035805,000164: 30,2246 00213 ADRES FLPI
035806,000165:
035807,000166: 30,2247 04635 TC POSTJUMP
035808,000167: 30,2250 74130 CADR BURNBABY
035809,000168:
035810,000169: 30,2251 77745 P12INIT DLOAD # INITIALIZE ENGINE DATA. USED FOR P12 AND
035811,000170: 30,2252 16013 (1/DV)A # P71.
035812,000171: 30,2253 03641 STORE 1/DV3
035813,000172: 30,2254 03637 STORE 1/DV2
035814,000173: 30,2255 17635 STODL 1/DV1
035815,000174: 30,2256 16017 (AT)A
035816,000175: 30,2257 16263 STODL AT
035817,000176: 30,2260 16021 (TBUP)A
Page 834 |
035819,000178: 30,2261 16271 STODL TBUP
035820,000179: 30,2262 34013 ATDECAY
035821,000180: 30,2263 54276 DCOMP SL
035822,000181: 30,2264 20214 11D
035823,000182: 30,2265 02267 STORE TTO
035824,000183: 30,2266 57535 SLOAD DCOMP
035825,000184: 30,2267 26001 APSVEX
035826,000185: 30,2270 77702 SR2
035827,000186: 30,2271 02265 STORE VE
035828,000187: 30,2272 43414 BOFF RVQ
035829,000188: 30,2273 04747 FLAP
035830,000189: 30,2274 60275 COMMINIT
035831,000190: 30,2275 43345 COMMINIT DLOAD DAD # INITIALIZE TARGET DATA. USED BY P12, P70
035832,000191: 30,2276 25736 HINJECT # AND P71 IF IT DOES NOT FOLLOW P70.
035833,000192: 30,2277 02333 /LAND/
035834,000193: 30,2300 17631 STODL RCO
035835,000194: 30,2301 06524 HI6ZEROS
035836,000195: 30,2302 03654 STORE TXO
035837,000196: 30,2303 03633 STORE YCO
035838,000197: 30,2304 26275 STOVL YDOTD
035839,000198: 30,2305 01563 VRECTCSM
035840,000199: 30,2306 64235 VXV MXV
035841,000200: 30,2307 01555 RRECTCSM
035842,000201: 30,2310 01734 REFSMMAT
035843,000202: 30,2311 77656 UNIT
035844,000203: 30,2312 03720 STORE QAXIS
035845,000204: 30,2313 77616 RVQ
035846,000205:
035847,000206: 30,2314 02024 P12ADRES REMADR P12TABLE
035848,000207:
035849,000208: 34,2000 SETLOC ASENT8
035850,000209: 34,2000 BANK
035851,000210: 34,3343 COUNT* $$/P12
035852,000211:
035853,000212: 34,3343 40220 GUIDINIT STQ SETPD
035854,000213: 34,3344 01163 TEMPR60
035855,000214: 34,3345 00001 0D
035856,000215: 34,3346 41575 VLOAD PUSH
035857,000216: 34,3347 06516 UNITZ
035858,000217: 34,3350 41434 RTB PUSH
035859,000218: 34,3351 21574 LOADTIME
035860,000219: 34,3352 77624 CALL
035861,000220: 34,3353 55716 RP-TO-R
035862,000221: 34,3354 74321 MXV VXSC
035863,000222: 34,3355 01734 REFSMMAT
035864,000223: 34,3356 16027 MOONRATE
035865,000224: 34,3357 26325 STOVL WM
035866,000225: 34,3360 02023 RLS
035867,000226: 34,3361 52446 ABVAL SL3
035868,000227: 34,3362 36333 STCALL /LAND/
Page 835 |
035870,000229: 34,3363 01163 TEMPR60
035871,000230:
035872,000231: 34,3364 00046 07374 49FPS 2DEC .149352 B-6 # EXPECTED RDOT AT TIPOVER
035873,000232: 34,3366 04145 15527 VINJNOM 2DEC 16.7924 B-7 # 5509.5 FPS(APO=30NM WITH RDOT=19.5FPS)
035874,000233: 34,3370 00007 23346 RDOTDNOM 2DEC .059436 B-7 # 19.5 FPS
035875,000234:
035876,000235:
End of include-file P12.agc. Parent file is MAIN.agc