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! |
029631,000002: ## Copyright: Public domain. 029632,000003: ## Filename: R31.agc 029633,000004: ## Purpose: Part of the source code for Luminary 1A build 099. 029634,000005: ## It is part of the source code for the Lunar Module's (LM) 029635,000006: ## Apollo Guidance Computer (AGC), for Apollo 11. 029636,000007: ## Assembler: yaYUL 029637,000008: ## Contact: Ron Burkey <info@sandroid.org>. 029638,000009: ## Website: www.ibiblio.org/apollo. 029639,000010: ## Pages: 703-708 029640,000011: ## Mod history: 2009-05-19 RSB Adapted from the corresponding 029641,000012: ## Luminary131 file, using page 029642,000013: ## images from Luminary 1A. 029643,000014: ## 2016-12-14 RSB Proofed text comments with octopus/ProoferComments 029644,000015: ## and corrected the errors found. 029645,000016: ## 2017-03-03 RSB Snapshot of Luminary 99 Rev 1. 029646,000017: ## 2017-03-09 RSB Comment-text fixes noted in proofing Luminary 116. 029647,000018:
Page 703 |
029649,000020: 40,3674 BANK 40 029650,000021: 40,2000 SETLOC R31LOC 029651,000022: 40,2000 BANK 029652,000023: 029653,000024: 40,3674 COUNT* $$/R31 029654,000025: 029655,000026: 40,3674 35015 R31CALL CAF PRIO3 029656,000027: 40,3675 05105 TC FINDVAC 029657,000028: 40,3676 E7,1470 EBANK= SUBEXIT 029658,000029: 40,3676 03121 76067 2CADR V83CALL 029659,000030: 029660,000031: 40,3700 05221 DSPDELAY TC FIXDELAY 029661,000032: 40,3701 00144 DEC 100 B-14 029662,000033: 40,3702 31044 CA EXTVBACT 029663,000034: 40,3703 74740 MASK BIT12 029664,000035: 40,3704 00006 EXTEND 029665,000036: 40,3705 13700 BZF DSPDELAY 029666,000037: 029667,000038: 40,3706 35017 CAF PRIO5 029668,000039: 40,3707 05072 TC NOVAC 029669,000040: 40,3710 E7,1611 EBANK= TSTRT 029670,000041: 40,3710 03113 76067 2CADR DISPN5X 029671,000042: 029672,000043: 40,3712 15261 TCF TASKOVER 029673,000044: 029674,000045: 37,3113 BANK 37 029675,000046: 37,2000 SETLOC R31 029676,000047: 37,2000 BANK 029677,000048: 37,3113 COUNT* $$/R31 029678,000049: 029679,000050: 37,3113 33407 DISPN5X CAF V16N54 029680,000051: 37,3114 04616 TC BANKCALL 029681,000052: 37,3115 20334 CADR GOMARKF 029682,000053: 37,3116 05563 TC B5OFF 029683,000054: 37,3117 05563 TC B5OFF 029684,000055: 37,3120 13113 TCF DISPN5X 029685,000056: 029686,000057: 37,3121 40103 V83CALL CS FLAGWRD7 # TEST AVERAGE G FLAG 029687,000058: 37,3122 74747 MASK AVEGFBIT 029688,000059: 37,3123 00006 EXTEND 029689,000060: 37,3124 13377 BZF MUNG? # ON - TEST MUNFLAG 029690,000061: 029691,000062: 37,3125 40104 CS FLAGWRD8 029692,000063: 37,3126 74744 MASK SURFFBIT 029693,000064: 37,3127 00006 EXTEND 029694,000065: 37,3130 13403 BZF ONEBASE # ON SURFACE - BYPASS LEMPREC 029695,000066: 029696,000067: 37,3131 06037 TC INTPRET # EXTRAPOLATE BOTH STATE VECTORS 029697,000068: 37,3132 77634 RTB
Page 704 |
029699,000070: 37,3133 21573 LOADTIME 029700,000071: 37,3134 34041 STCALL TDEC1 029701,000072: 37,3135 27057 LEMPREC # PRECISION BASE VECTOR FOR LM 029702,000073: 37,3136 77775 VLOAD 029703,000074: 37,3137 00017 RATT1 029704,000075: 37,3140 26170 STOVL BASETHP 029705,000076: 37,3141 00025 VATT1 029706,000077: 37,3142 16105 STODL BASETHV 029707,000078: 37,3143 00015 TAT 029708,000079: 37,3144 02114 DOCMBASE STORE BASETIME # PRECISION BASE VECTOR FOR CM 029709,000080: 37,3145 34041 STCALL TDEC1 029710,000081: 37,3146 27043 CSMPREC 029711,000082: 37,3147 77775 VLOAD 029712,000083: 37,3150 00017 RATT1 029713,000084: 37,3151 26140 STOVL BASEOTP 029714,000085: 37,3152 00025 VATT1 029715,000086: 37,3153 02120 STORE BASEOTV 029716,000087: 37,3154 77776 EXIT 029717,000088: 029718,000089: 37,3155 40103 REV83 CS FLAGWRD7 029719,000090: 37,3156 74747 MASK AVEGFBIT 029720,000091: 37,3157 00006 EXTEND 029721,000092: 37,3160 13326 BZF GETRVN # IF AVEGFLAG SET, USE RN,VN 029722,000093: 029723,000094: 37,3161 40104 CS FLAGWRD8 029724,000095: 37,3162 74744 MASK SURFFBIT 029725,000096: 37,3163 00006 EXTEND 029726,000097: 37,3164 13370 BZF R31SURF # IF ON SURFACE, USE LEMAREC 029727,000098: 029728,000099: 37,3165 06037 TC INTPRET # DO CONIC EXTRAPOLATION FOR BOTH VEHICLES 029729,000100: 37,3166 77634 RTB 029730,000101: 37,3167 21573 LOADTIME 029731,000102: 37,3170 34041 STCALL TDEC1 029732,000103: 37,3171 27414 INTSTALL 029733,000104: 37,3172 43175 VLOAD CLEAR 029734,000105: 37,3173 02170 BASETHP 029735,000106: 37,3174 00263 MOONFLAG 029736,000107: 37,3175 25535 STOVL RCV 029737,000108: 37,3176 02105 BASETHV 029738,000109: 37,3177 15543 STODL VCV 029739,000110: 37,3200 02114 BASETIME 029740,000111: 37,3201 43014 BOF SET # GET APPROPRIATE MOONFLAG SETTING 029741,000112: 37,3202 04344 MOONTHIS 029742,000113: 37,3203 77205 +2 029743,000114: 37,3204 00063 MOONFLAG 029744,000115: 37,3205 77614 SET 029745,000116: 37,3206 01473 INTYPFLG # CONIC EXTRAP. 029746,000117: 37,3207 35517 STCALL TET 029747,000118: 37,3210 27107 INTEGRVS # INTEGRATION --- AT LAST --- 029748,000119: 37,3211 77775 OTHCONIC VLOAD
Page 705 |
029750,000121: 37,3212 00001 RATT 029751,000122: 37,3213 26207 STOVL RONE 029752,000123: 37,3214 00007 VATT 029753,000124: 37,3215 36215 STCALL VONE # GET SET FOR CONIC EXTRAP., OTHER. 029754,000125: 37,3216 27414 INTSTALL 029755,000126: 37,3217 71214 SET DLOAD 029756,000127: 37,3220 01473 INTYPFLG 029757,000128: 37,3221 00015 TAT 029758,000129: 37,3222 00041 OTHINT STORE TDEC1 029759,000130: 37,3223 43175 VLOAD CLEAR 029760,000131: 37,3224 02140 BASEOTP 029761,000132: 37,3225 00263 MOONFLAG 029762,000133: 37,3226 25535 STOVL RCV 029763,000134: 37,3227 02120 BASEOTV 029764,000135: 37,3230 15543 STODL VCV 029765,000136: 37,3231 02114 BASETIME 029766,000137: 37,3232 43014 BOF SET 029767,000138: 37,3233 04344 MOONTHIS 029768,000139: 37,3234 77236 +2 029769,000140: 37,3235 00063 MOONFLAG 029770,000141: 37,3236 35517 STCALL TET 029771,000142: 37,3237 27107 INTEGRVS 029772,000143: 37,3240 52375 COMPDISP VLOAD VSU 029773,000144: 37,3241 00001 RATT 029774,000145: 37,3242 02207 RONE 029775,000146: 37,3243 65234 RTB PDDL 029776,000147: 37,3244 21724 NORMUNX1 # UNIT(RANGE) TO PD 0-5 029777,000148: 37,3245 00045 36D 029778,000149: 37,3246 77657 SL* # RESCALE AFTER NORMUNIT 029779,000150: 37,3247 20201 0,1 029780,000151: 37,3250 26201 STOVL RANGE # SCALED 2(29)M 029781,000152: 37,3251 00007 VATT 029782,000153: 37,3252 50251 VSU DOT # (VCM-VLM).UNIT(LOS), PD=0 029783,000154: 37,3253 02215 VONE 029784,000155: 37,3254 77752 SL1 # SCALED 2(7)M/CS 029785,000156: 37,3255 26203 STOVL RRATE 029786,000157: 37,3256 02207 RONE 029787,000158: 37,3257 63256 UNIT PDVL # UNIT(R) TO PD 0-5 029788,000159: 37,3260 06514 UNITZ 029789,000160: 37,3261 77624 CALL 029790,000161: 37,3262 47661 CDU*NBSM 029791,000162: 37,3263 41505 VXM PUSH # UNIT(Z)/4 TO PD 6-11 029792,000163: 37,3264 01734 REFSMMAT 029793,000164: 37,3265 72431 VPROJ VSL2 # UNIT(P)=UNIT(UZ-(UZ)PROJ(UR)) 029794,000165: 37,3266 00001 0D 029795,000166: 37,3267 53445 BVSU UNIT 029796,000167: 37,3270 00007 6D 029797,000168: 37,3271 47315 PDVL VXV # UNIT(P) TO PD 12-17 029798,000169: 37,3272 00001 0D # UNIT(RL) 029799,000170: 37,3273 02215 VONE
Page 706 |
029801,000172: 37,3274 50235 VXV DOT # (UR * VL) * UR . U(P) 029802,000173: 37,3275 00001 0D 029803,000174: 37,3276 00015 12D 029804,000175: 37,3277 77715 PDVL # SIGN TO 12-13, LOAD U(P) 029805,000176: 37,3300 75241 DOT SIGN 029806,000177: 37,3301 00007 6D 029807,000178: 37,3302 00015 12D 029808,000179: 37,3303 65512 SL2 ACOS # ARCCOS(UP.UZ(SIGN)) 029809,000180: 37,3304 26205 STOVL RTHETA 029810,000181: 37,3305 00001 0D 029811,000182: 37,3306 51041 DOT BPL # IF UR.UZ NEG, 029812,000183: 37,3307 00007 6D # RTHETA = 1 - RTHETA 029813,000184: 37,3310 77315 +5 029814,000185: 37,3311 45345 DLOAD DSU 029815,000186: 37,3312 06530 DPPOSMAX 029816,000187: 37,3313 02205 RTHETA 029817,000188: 37,3314 02205 STORE RTHETA 029818,000189: 37,3315 77776 EXIT 029819,000190: 029820,000191: 37,3316 34747 CA BIT5 029821,000192: 37,3317 71044 MASK EXTVBACT 029822,000193: 37,3320 00006 EXTEND # IF ANSWERED, 029823,000194: 37,3321 15472 BZF ENDEXT # TERMINATE 029824,000195: 029825,000196: 37,3322 41044 CS EXTVBACT 029826,000197: 37,3323 74740 MASK BIT12 029827,000198: 37,3324 27044 ADS EXTVBACT # SET BIT 12 029828,000199: 37,3325 13155 TCF REV83 # AND START AGAIN. 029829,000200: 029830,000201: 37,3326 37710 GETRVN CA PRIO22 # INHIBIT SERVICER 029831,000202: 37,3327 05146 TC PRIOCHNG 029832,000203: 37,3330 06037 TC INTPRET 029833,000204: 37,3331 40375 VLOAD SETPD 029834,000205: 37,3332 01221 RN # LM STATE VECTOR IN RN,VN 029835,000206: 37,3333 00001 0 029836,000207: 37,3334 26207 STOVL RONE 029837,000208: 37,3335 01227 VN 029838,000209: 37,3336 26215 STOVL VONE # LOAD R(CSM),V(CSM) IN CASE MUNFLAG SET 029839,000210: 37,3337 01726 V(CSM) # (TO INSURE TIME COMPATABILITY) 029840,000211: 37,3340 65315 PDVL PDDL 029841,000212: 37,3341 01720 R(CSM) 029842,000213: 37,3342 01235 PIPTIME 029843,000214: 37,3343 77776 EXIT 029844,000215: 37,3344 35015 CA PRIO3 029845,000216: 37,3345 05146 TC PRIOCHNG 029846,000217: 37,3346 06037 TC INTPRET 029847,000218: 37,3347 77214 BOFF VLOAD 029848,000219: 37,3350 03347 MUNFLAG 029849,000220: 37,3351 77363 GETRVN2 # IF MUNFLAG RESET, DO CM DELTA PRECISION
Page 707 |
029851,000222: 37,3352 60505 VXM VSR4 # CHANGE TO REFERENCE SYSTEM AND RESCALE 029852,000223: 37,3353 01734 REFSMMAT 029853,000224: 37,3354 77715 PDVL # R TO PD 0-5 029854,000225: 37,3355 76505 VXM VSL1 029855,000226: 37,3356 01734 REFSMMAT 029856,000227: 37,3357 40206 PUSH SETPD # V TO PD 5-11 029857,000228: 37,3360 00001 0 029858,000229: 37,3361 77650 GOTO 029859,000230: 37,3362 77240 COMPDISP 029860,000231: 029861,000232: 37,3363 77624 GETRVN2 CALL 029862,000233: 37,3364 27414 INTSTALL 029863,000234: 37,3365 52014 CLEAR GOTO 029864,000235: 37,3366 01673 INTYPFLG # PREC EXTRAP FOR OTHER 029865,000236: 37,3367 77222 OTHINT 029866,000237: 37,3370 06037 R31SURF TC INTPRET 029867,000238: 37,3371 77634 RTB # LM IS ON SURFACE, SO PRECISION 029868,000239: 37,3372 21573 LOADTIME # INTEGRATION USES PLANETARY INERTIAL 029869,000240: 37,3373 34041 STCALL TDEC1 # ORIENTATION SUBROUTINE 029870,000241: 37,3374 27057 LEMPREC 029871,000242: 37,3375 77650 GOTO # DO CSM CONIC 029872,000243: 37,3376 77211 OTHCONIC 029873,000244: 37,3377 40102 MUNG? CS FLAGWRD6 029874,000245: 37,3400 74744 MASK MUNFLBIT 029875,000246: 37,3401 00006 EXTEND 029876,000247: 37,3402 13326 BZF GETRVN # IF MUNFLAG SET, CSM BASE NOT NEEDED 029877,000248: 029878,000249: 37,3403 06037 ONEBASE TC INTPRET # GET CSM BASE VECTOR 029879,000250: 37,3404 52034 RTB GOTO 029880,000251: 37,3405 21573 LOADTIME 029881,000252: 37,3406 77144 DOCMBASE 029882,000253: 029883,000254: 37,3407 04066 V16N54 VN 1654 029884,000255:
Page 708
This page is intentionally empty. |
029887,000258: End of include-file R31.agc. Parent file is MAIN.agc