Source Code
These source-code files are part of a reconstructed copy of Luminary 69/2,
the flown, final release of the Apollo 10 Lunar Module (LM) Apollo Guidance Computer (AGC) software.
The reconstruction is based on the source code of Luminary 69 — i.e., the initial, unflown version, "revision 0" — of which a contemporary listing was available. The code was then updated by incorporating the differences between Luminary 69 and Luminary 69/2, known from other contemporary documentation. The only such difference is the implementation in Luminary 69/2 of the "R-2 Lunar Potential Model", the source code for which was taken from program Luminary 99/1 (Apollo 11 LM), of which a contemporary listing was also available. Finally, the now-reconstructed Luminary 69/2 was then validated by assembling it to executable form and verifying that its memory banks had the correct checksums, known from still other contemporary documentation. Note that page numbers in the reconstructed code match those in the original Luminary 69 program listing, or in the ORBITAL INTEGRATION log section, in Luminary 99/1. Page numbers would certainly differ somewhat in a contemporary Luminary 69/2 listing. Moreover, annotations that were not present in the contemporary source code have been added to the reconstructed code to justify each change in Luminary 69/2 relative to Luminary 69. Here's a guide to the Apollo documentation referenced in those annotations:
|
001054,000002: ## Copyright: Public domain.
001055,000003: ## Filename: TAGS_FOR_RELATIVE_SETLOC_AND_BLANK_BANK_CARDS.agc
001056,000004: ## Purpose: A section of LUM69 revision 2.
001057,000005: ## It is part of the reconstructed source code for the flown
001058,000006: ## version of the flight software for the Lunar Module's (LM)
001059,000007: ## Apollo Guidance Computer (AGC) for Apollo 10. The code has
001060,000008: ## been recreated from a copy of Luminary revsion 069, using
001061,000009: ## changes present in Luminary 099 which were described in
001062,000010: ## Luminary memos 75 and 78. The code has been adapted such
001063,000011: ## that the resulting bugger words exactly match those specified
001064,000012: ## for LUM69 revision 2 in NASA drawing 2021152B, which gives
001065,000013: ## relatively high confidence that the reconstruction is correct.
001066,000014: ## Reference: pp. 27-36
001067,000015: ## Assembler: yaYUL
001068,000016: ## Contact: Ron Burkey <info@sandroid.org>.
001069,000017: ## Website: www.ibiblio.org/apollo/index.html
001070,000018: ## Mod history: 2019-07-27 MAS Created from Luminary 69.
001071,000019: ## 2019-07-27 MAS Added tag for LUM69 rev 2 lunar potential code.
001072,000020: ## 2020-12-14 RSB Tweaked the annotation relevant to the
001073,000021: ## change mentioned above to conform to the
001074,000022: ## style and extent of similar justifying
001075,000023: ## annotations previously added to
001076,000024: ## Comanche 44 and 51.
001077,000025:
Page 27 |
001079,000027: ??????? COUNT BANKSUM
001080,000028:
001081,000029: # MODULE 1 CONTAINS BANKS 0 THROUGH 5
001082,000030:
001083,000031: 4000 BLOCK 02
001084,000032: 4000 RADARFF EQUALS
001085,000033: 4000 FFTAG1 EQUALS
001086,000034: 4000 FFTAG2 EQUALS
001087,000035: 4000 FFTAG3 EQUALS
001088,000036: 4000 FFTAG4 EQUALS
001089,000037: 4000 FFTAG7 EQUALS
001090,000038: 4000 FFTAG8 EQUALS
001091,000039: 4000 FFTAG9 EQUALS
001092,000040: 4000 FFTAG10 EQUALS
001093,000041: 4000 FFTAG11 EQUALS
001094,000042: 4000 FFTAG12 EQUALS
001095,000043: 4000 FFTAG13 EQUALS
001096,000044: 4000 BNKSUM 02
001097,000045:
001098,000046:
001099,000047: 6000 BLOCK 03
001100,000048: 6000 FFTAG5 EQUALS
001101,000049: 6000 FFTAG6 EQUALS
001102,000050: 6000 BNKSUM 03
001103,000051:
001104,000052:
001105,000053: 00,2000 BANK 00
001106,000054: 00,2000 DLAYJOB EQUALS
001107,000055: 00,2000 BNKSUM 00
001108,000056:
001109,000057:
001110,000058: 01,2000 BANK 01
001111,000059: 01,2000 RESTART EQUALS
001112,000060: 01,2000 LOADDAP1 EQUALS
001113,000061: 01,2000 BNKSUM 01
001114,000062:
001115,000063:
001116,000064: 04,2000 BANK 04
001117,000065: 04,2000 R02 EQUALS
001118,000066: 04,2000 VERB37 EQUALS
001119,000067: 04,2000 PINBALL4 EQUALS
001120,000068: 04,2000 CONICS1 EQUALS
001121,000069: 04,2000 KEYRUPT EQUALS
001122,000070: 04,2000 R36LM EQUALS
001123,000071: 04,2000 UPDATE2 EQUALS
001124,000072: 04,2000 E/PROG EQUALS
001125,000073: 04,2000 BNKSUM 04
001126,000074:
001127,000075:
Page 28 |
001129,000077: 05,2000 BANK 05
001130,000078: 05,2000 FRANDRES EQUALS
001131,000079: 05,2000 DOWNTELM EQUALS
001132,000080: 05,2000 AOTMARK2 EQUALS
001133,000081: 05,2000 EPHEM1 EQUALS
001134,000082: 05,2000 BNKSUM 05
001135,000083:
001136,000084:
001137,000085: # MODULE 2 CONTAINS BANKS 6 THROUGH 13
001138,000086:
001139,000087: 06,2000 BANK 06
001140,000088: 06,2000 IMUCOMP EQUALS
001141,000089: 06,2000 T4RUP EQUALS
001142,000090: 06,2000 RCSMONT EQUALS
001143,000091: 06,2000 BNKSUM 06
001144,000092:
001145,000093:
001146,000094: 07,2000 BANK 07
001147,000095: 07,2000 AOTMARK1 EQUALS
001148,000096: 07,2000 MODESW EQUALS
001149,000097: 07,2000 BNKSUM 07
001150,000098:
001151,000099:
001152,000100: 10,2000 BANK 10
001153,000101: 10,2000 RTBCODES EQUALS
001154,000102: 10,2000 DISPLAYS EQUALS
001155,000103: 10,2000 PHASETAB EQUALS
001156,000104: 10,2000 MIDDGIM EQUALS
001157,000105: 10,2000 BNKSUM 10
001158,000106:
001159,000107:
001160,000108: 11,2000 BANK 11
001161,000109: 11,2000 ORBITAL EQUALS
001162,000110: 11,2000 ORBITAL1 EQUALS
001163,000111: 11,2000 INTVEL EQUALS
001164,000112: 11,2000 INTPRET2 EQUALS
Reconstruction: The alias immediately following this annotation was not present in Luminary 69. It is associated with the incorporation of the R-2 Lunar Potential Model (see LUMINARY Memo #75). The alias is used for the purpose of placing the R-2 model functions QUALITY1 and QUALITY2 into desired memory banks. The placement used differs between different revisions of Luminary and Colossus. The particular choice of BANK 11 in reconstructing Luminary 69/2 was determined empirically. Moreover, this particular placement of QUALITY1 and QUALITY2 into BANK 11 is not matched by any other available AGC software version, and hence there is no particular reason to believe that the specific string "MODCHG1" was the alias used in the original Luminary 69/2 source code. The string MODCHG1 was selected in the reconstruction process by analogy to the use in the original Comanche 55 source code of the aliases MODCHG2 and MODCHG3 for relocation of QUALITY1 and QUALITY2 (into BANK 12 and BANK 13, respectively). However, some other alias for BANK 11 (such as ORBITAL or ORBITAL1) could have just as easily been used for this purpose in Luminary 69/2. |
001181,000129: 11,2000 MODCHG1 EQUALS
001182,000130: 11,2000 BNKSUM 11
001183,000131:
001184,000132:
001185,000133: 12,2000 BANK 12
001186,000134: 12,2000 CONICS EQUALS
001187,000135: 12,2000 BNKSUM 12
001188,000136:
001189,000137:
Page 29 |
001191,000139: 13,2000 BANK 13
001192,000140: 13,2000 LATLONG EQUALS
001193,000141: 13,2000 INTINIT EQUALS
001194,000142: 13,2000 LEMGEOM EQUALS
001195,000143: 13,2000 P76LOC EQUALS
001196,000144: 13,2000 ORBITAL2 EQUALS
001197,000145: 13,2000 BNKSUM 13
001198,000146:
001199,000147:
Page 30 |
001201,000149: # MODULE 3 CONTAINS BANKS 14 THROUGH 21
001202,000150:
001203,000151: 14,2000 BANK 14
001204,000152: 14,2000 P50S1 EQUALS
001205,000153: 14,2000 STARTAB EQUALS
001206,000154: 14,2000 BNKSUM 14
001207,000155:
001208,000156:
001209,000157: 15,2000 BANK 15
001210,000158: 15,2000 P50S EQUALS
001211,000159: 15,2000 EPHEM EQUALS
001212,000160: 15,2000 BNKSUM 15
001213,000161:
001214,000162:
001215,000163: 16,2000 BANK 16
001216,000164: 16,2000 DAPS1 EQUALS
001217,000165: 16,2000 BNKSUM 16
001218,000166:
001219,000167:
001220,000168: 17,2000 BANK 17
001221,000169: 17,2000 DAPS2 EQUALS
001222,000170: 17,2000 BNKSUM 17
001223,000171:
001224,000172:
001225,000173: 20,2000 BANK 20
001226,000174: 20,2000 DAPS3 EQUALS
001227,000175: 20,2000 LOADDAP EQUALS
001228,000176: 20,2000 RODTRAP EQUALS
001229,000177: 20,2000 BNKSUM 20
001230,000178:
001231,000179:
001232,000180: 21,2000 BANK 21
001233,000181: 21,2000 DAPS4 EQUALS
001234,000182: 21,2000 F2DPS*21 EQUALS
001235,000183: 21,2000 R10 EQUALS
001236,000184: 21,2000 R11 EQUALS
001237,000185: 21,2000 BNKSUM 21
001238,000186:
Page 31 |
001240,000188:
001241,000189: # MODULE 4 CONTAINS BANKS 22 THROUGH 27
001242,000190:
001243,000191: 22,2000 BANK 22
001244,000192: 22,2000 KALCMON1 EQUALS
001245,000193: 22,2000 KALCMON2 EQUALS
001246,000194: 22,2000 R30LOC EQUALS
001247,000195: 22,2000 RENDEZ EQUALS
001248,000196: 22,2000 BNKSUM 22
001249,000197:
001250,000198:
001251,000199: 23,2000 BANK 23
001252,000200: 23,2000 POWFLITE EQUALS
001253,000201: 23,2000 POWFLIT1 EQUALS
001254,000202: 23,2000 INFLIGHT EQUALS
001255,000203: 23,2000 APOPERI EQUALS
001256,000204: 23,2000 R61 EQUALS
001257,000205: 23,2000 R62 EQUALS
001258,000206: 23,2000 INTPRET1 EQUALS
001259,000207: 23,2000 MEASINC EQUALS
001260,000208: 23,2000 MEASINC1 EQUALS
001261,000209: 23,2000 EXTVB1 EQUALS
001262,000210: 23,2000 BNKSUM 23
001263,000211:
001264,000212:
001265,000213: 24,2000 BANK 24
001266,000214: 24,2000 PLANTIN EQUALS
001267,000215: 24,2000 P20S EQUALS
001268,000216: 24,2000 BNKSUM 24
001269,000217:
001270,000218:
001271,000219: 25,2000 BANK 25
001272,000220: 25,2000 P20S1 EQUALS
001273,000221: 25,2000 P20S2 EQUALS
001274,000222: 25,2000 RADARUPT EQUALS
001275,000223: 25,2000 RRLEADIN EQUALS
001276,000224: 25,2000 R29S1 EQUALS
001277,000225: 25,2000 BNKSUM 25
001278,000226:
001279,000227:
001280,000228: 26,2000 BANK 26
001281,000229: 26,2000 P20S3 EQUALS
001282,000230: 26,2000 BAWLANGS EQUALS
001283,000231: 26,2000 MANUVER EQUALS
001284,000232: 26,2000 MANUVER1 EQUALS
001285,000233: 26,2000 PLANTIN1 EQUALS
001286,000234: 26,2000 BNKSUM 26
001287,000235:
001288,000236:
Page 32 |
001290,000238: 27,2000 BANK 27
001291,000239: 27,2000 TOF-FF EQUALS
001292,000240: 27,2000 TOF-FF1 EQUALS
001293,000241: 27,2000 P40S1 EQUALS
001294,000242: 27,2000 VECPT EQUALS
001295,000243: 27,2000 ASENT1 EQUALS
001296,000244: 27,2000 BNKSUM 27
001297,000245:
001298,000246:
Page 33 |
001300,000248: # MODULE 5 CONTAINS BANKS 30 THROUGH 35
001301,000249:
001302,000250: 30,2000 BANK 30
001303,000251: 30,2000 LOWSUPER EQUALS
001304,000252: 30,2000 P12 EQUALS
001305,000253: 30,2000 ASENT EQUALS
001306,000254: 30,2000 FCDUW EQUALS
001307,000255: 30,2000 BNKSUM 30
001308,000256:
001309,000257:
001310,000258: 31,2000 BANK 31
001311,000259: 31,2000 FTHROT EQUALS
001312,000260: 31,2000 F2DPS*31 EQUALS
001313,000261: 31,2000 VB67 EQUALS
001314,000262: 31,2000 BNKSUM 31
001315,000263:
001316,000264:
001317,000265: 32,2000 BANK 32
001318,000266: 32,2000 P20S4 EQUALS
001319,000267: 32,2000 F2DPS*32 EQUALS
001320,000268: 32,2000 ABORTS EQUALS
001321,000269: 32,2000 LRS22 EQUALS
001322,000270: 32,2000 FLOGSUB EQUALS
001323,000271: 32,2000 SERV2 EQUALS
001324,000272: 32,2000 R47 EQUALS
001325,000273: 32,2000 BNKSUM 32
001326,000274:
001327,000275:
001328,000276: 33,2000 BANK 33
001329,000277: 33,2000 SERVICES EQUALS
001330,000278: 33,2000 R29/SERV EQUALS
001331,000279: 33,2000 BNKSUM 33
001332,000280:
001333,000281:
001334,000282: 34,2000 BANK 34
001335,000283: 34,2000 STBLEORB EQUALS
001336,000284: 34,2000 P30S1 EQUALS
001337,000285: 34,2000 CSI/CDH1 EQUALS
001338,000286: 34,2000 ASCFILT EQUALS
001339,000287: 34,2000 R12STUFF EQUALS
001340,000288: 34,2000 BNKSUM 34
001341,000289:
001342,000290:
001343,000291: 35,2000 BANK 35
001344,000292: 35,2000 CSI/CDH EQUALS
001345,000293:
Page 34 |
001347,000295: 35,2000 P30S EQUALS
001348,000296: 35,2000 GLM EQUALS
001349,000297: 35,2000 P40S2 EQUALS
001350,000298: 35,2000 BNKSUM 35
001351,000299:
Page 35 |
001353,000301: # MODULE 6 CONTAINS BANKS 36 THROUGH 43
001354,000302:
001355,000303: 36,2000 BANK 36
001356,000304: 36,2000 P40S EQUALS
001357,000305: 36,2000 BNKSUM 36
001358,000306:
001359,000307:
001360,000308: 37,2000 BANK 37
001361,000309: 37,2000 P05P06 EQUALS
001362,000310: 37,2000 IMU2 EQUALS
001363,000311: 37,2000 IMU4 EQUALS
001364,000312: 37,2000 R31 EQUALS
001365,000313: 37,2000 IMUSUPER EQUALS
001366,000314: 37,2000 SERV1 EQUALS
001367,000315: 37,2000 BNKSUM 37
001368,000316:
001369,000317:
001370,000318: 40,2000 BANK 40
001371,000319: 40,2000 PINBALL1 EQUALS
001372,000320: 40,2000 SELFSUPR EQUALS
001373,000321: 40,2000 PINSUPER EQUALS
001374,000322: 40,2000 BNKSUM 40
001375,000323:
001376,000324:
001377,000325: 41,2000 BANK 41
001378,000326: 41,2000 PINBALL2 EQUALS
001379,000327: 41,2000 BNKSUM 41
001380,000328:
001381,000329:
001382,000330: 42,2000 BANK 42
001383,000331: 42,2000 SBAND EQUALS
001384,000332: 42,2000 PINBALL3 EQUALS
001385,000333: 42,2000 BNKSUM 42
001386,000334:
001387,000335:
001388,000336: 43,2000 BANK 43
001389,000337: 43,2000 EXTVERBS EQUALS
001390,000338: 43,2000 SELFCHEC EQUALS
001391,000339:
001392,000340: 43,2000 BNKSUM 43
001393,000341:
Page 36 |
001395,000343:
001396,000344: 43,2000 23,2423 HI6ZEROS EQUALS ZEROVECS # ZERO VECTOR ALWAYS IN HIGH MEMORY
001397,000345: 43,2000 11,2274 LO6ZEROS EQUALS ZEROVEC # ZERO VECTOR ALWAYS IN LOW MEMORY
001398,000346: 43,2000 23,2421 HIDPHALF EQUALS UNITX
001399,000347: 43,2000 11,2272 LODPHALF EQUALS XUNIT
001400,000348: 43,2000 23,2413 HIDP1/4 EQUALS DP1/4TH
001401,000349: 43,2000 04,2757 LODP1/4 EQUALS D1/4 # 2DEC .25
001402,000350: 43,2000 23,2421 HIUNITX EQUALS UNITX
001403,000351: 43,2000 23,2417 HIUNITY EQUALS UNITY
001404,000352: 43,2000 23,2415 HIUNITZ EQUALS UNITZ
001405,000353: 43,2000 11,2272 LOUNITX EQUALS XUNIT # 2DEC .5
001406,000354: 43,2000 11,2270 LOUNITY EQUALS YUNIT # 2DEC 0
001407,000355: 43,2000 11,2266 LOUNITZ EQUALS ZUNIT # 2DEC 0
001408,000356:
001409,000357:
001410,000358:
001411,000359: 43,2000 22,3541 DELRSPL EQUALS SPLRET # COL PGM, ALSO CALLED BY R30 IN LUMINARY
001412,000360: # ROPE-SPECIFIC ASSIGNS OBVIATING NEED TO CHECK COMPUTER FLAG IN DETERMINING INTEGRATION AREA ENTRIES.
001413,000361:
001414,000362: 43,2000 13,2734 ATOPTHIS EQUALS ATOPLEM
001415,000363: 43,2000 13,2661 ATOPOTH EQUALS ATOPCSM
001416,000364: 43,2000 13,3043 OTHPREC EQUALS CSMPREC
001417,000365: 43,2000 0000174 MOONTHIS EQUALS LMOONFLG
001418,000366: 43,2000 0000173 MOONOTH EQUALS CMOONFLG
001419,000367: 43,2000 13,2747 MOVATHIS EQUALS MOVEALEM
001420,000368: 43,2000 11,2305 RMM = LODPMAX
001421,000369: 43,2000 11,2307 RME = LODPMAX1
001422,000370: 43,2000 13,3057 THISPREC EQUALS LEMPREC
001423,000371: 43,2000 23,2415 THISAXIS = UNITZ
001424,000372: 43,2000 23,2415 NB1NB2 EQUALS THISAXIS # FOR R31
001425,000373: 43,2000 5011 ERASID EQUALS BITS2-10 # DOWNLINK ERASABLE DUMP ID
001426,000374: 43,2000 4752 DELAYNUM EQUALS TWO
End of include-file TAGS_FOR_RELATIVE_SETLOC_AND_BLANK_BANK_CARDS.agc. Parent file is MAIN.agc