Source Code
![]() |
This is a reconstruction of the AGC program Luminary 99 Rev 0. It was the
second release of the Lunar Module flight software targeted for use in Apollo 11, after Luminary 97.
A bug (which had been around since at least Apollo 10, Luminary 69) was
discovered in Rev 0 shortly before the Apollo 11 flight, resulting in a last minute
revision into Rev 1,
which is what actually flew rather than
the Rev 0 presented here. A hardcopy of Rev 0 is known to
exist — it belonged to AGC developer Allan Klumpp for many years — but
unfortunately the Virtual AGC Project has not had access to that hardcopy. Thus
the code you see here had been reconstructed (we believe accurately) rather than
transcribed. The first step of the reconstruction of the Rev 0 source code was
the transcription of the Rev 1 source code from a hardcopy in the MIT Museum collection.
The process of reverting the active portion of the source code (i.e., other than
program comments) from Rev 1 to Rev 0 was very minor, consisting
only of moving the position of the STARTSB1 label in
FRESH START AND RESTART. Allan had previously given
us the checksums of the memory banks of Rev 0, and we have verified the program presented here has checksums
identical to all banks of Allan's listing of Rev 0. The notations on Allan's Rev 0 program listing read,
in part:GAP: ASSEMBLE REVISION 099 OF AGC PROGRAM LUMINARY BY NASA 2021112-051 A single program comment is known to differ between Rev 0 and Rev 1, but these are harder to reconstruct and verify than changes to the active portion of the code. Thus it is possible that there are additional differences between the program comments in Rev 0 and Rev 1 that are unknown to us, and therefore are not reflected in the code presented here. |
006300,000002: ## Copyright: Public domain.
006301,000003: ## Filename: INTERRUPT_LEAD_INS.agc
006302,000004: ## Purpose: Part of the reconstructed source code for LMY99 Rev 0,
006303,000005: ## otherwise known as Luminary Rev 99, the second release
006304,000006: ## of the Apollo Guidance Computer (AGC) software for Apollo 11.
006305,000007: ## It differs from LMY99 Rev 1 (the flown version) only in the
006306,000008: ## placement of a single label. The corrections shown here have
006307,000009: ## been verified to have the same bank checksums as AGC developer
006308,000010: ## Allan Klumpp's copy of Luminary Rev 99, and so are believed
006309,000011: ## to be accurate. This file is intended to be a faithful
006310,000012: ## recreation, except that the code format has been changed to
006311,000013: ## conform to the requirements of the yaYUL assembler rather than
006312,000014: ## the original YUL assembler.
006313,000015: ##
006314,000016: ## Assembler: yaYUL
006315,000017: ## Contact: Onno Hommes <ohommes@cmu.edu>.
006316,000018: ## Website: www.ibiblio.org/apollo.
006317,000019: ## Pages: 0153-0154
006318,000020: ## Mod history: 2009-05-14 OH Transcribed from page images.
006319,000021: ## 2016-12-13 RSB Proofed text comments with octopus/ProoferComments
006320,000022: ## and corrected the errors found.
006321,000023: ## 2017-08-01 MAS Created from LMY99 Rev 1.
006322,000024:
006323,000025: ## This source code has been transcribed or otherwise adapted from
006324,000026: ## digitized images of a hardcopy from the MIT Museum. The digitization
006325,000027: ## was performed by Paul Fjeld, and arranged for by Deborah Douglas of
006326,000028: ## the Museum. Many thanks to both. The images (with suitable reduction
006327,000029: ## in storage size and consequent reduction in image quality as well) are
006328,000030: ## available online at www.ibiblio.org/apollo. If for some reason you
006329,000031: ## find that the images are illegible, contact me at info@sandroid.org
006330,000032: ## about getting access to the (much) higher-quality images which Paul
006331,000033: ## actually created.
006332,000034: ##
006333,000035: ## The code has been modified to match LMY99 Revision 0, otherwise
006334,000036: ## known as Luminary Revision 99, the Apollo 11 software release preceeding
006335,000037: ## the listing from which it was transcribed. It has been verified to
006336,000038: ## contain the same bank checksums as AGC developer Allan Klumpp's listing
006337,000039: ## of Luminary Revision 99 (for which we do not have scans).
006338,000040: ##
006339,000041: ## Notations on Allan Klumpp's listing read, in part:
006340,000042: ##
006341,000043: ## ASSEMBLE REVISION 099 OF AGC PROGRAM LUMINARY BY NASA 2021112-51
006342,000044:
![]() |
Page 153 |
006344,000046: 4000 SETLOC 4000
006345,000047:
006346,000048: 4000 COUNT* $$/RUPTS # FIX-FIX LEAD INS
006347,000049: 4000 00004 INHINT # GO
006348,000050: 4001 34054 CAF GOBB
006349,000051: 4002 56006 XCH BBANK
006350,000052: 4003 12667 TCF GOPROG
006351,000053:
006352,000054: 4004 52011 DXCH ARUPT # T6RUPT
006353,000055: 4005 00006 EXTEND
006354,000056: 4006 34056 DCA T6ADR
006355,000057: 4007 52006 DTCB
006356,000058:
006357,000059: 4010 52011 DXCH ARUPT # T5RUPT - AUTOPILOT
006358,000060: 4011 00006 EXTEND
006359,000061: 4012 31275 DCA T5ADR
006360,000062: 4013 52006 DTCB
006361,000063:
006362,000064: 4014 52011 DXCH ARUPT # T3RUPT
006363,000065: 4015 34057 CAF T3RPTBB
006364,000066: 4016 56006 XCH BBANK
006365,000067: 4017 13407 TCF T3RUPT
006366,000068:
006367,000069: 4020 52011 DXCH ARUPT # T4RUPT
006368,000070: 4021 34064 CAF T4RPTBB
006369,000071: 4022 56006 XCH BBANK
006370,000072: 4023 12000 TCF T4RUPT
006371,000073:
006372,000074: 4024 52011 DXCH ARUPT # KEYRUPT1
006373,000075: 4025 34060 CAF KEYRPTBB
006374,000076: 4026 56006 XCH BBANK
006375,000077: 4027 13274 TCF KEYRUPT1
006376,000078:
006377,000079: 4030 52011 DXCH ARUPT # KEYRUPT2
006378,000080: 4031 34061 CAF MKRUPTBB
006379,000081: 4032 56006 XCH BBANK
006380,000082: 4033 12332 TCF MARKRUPT
006381,000083:
006382,000084: 4034 52011 DXCH ARUPT # UPRUPT
006383,000085: 4035 34060 CAF UPRPTBB
006384,000086: 4036 56006 XCH BBANK
006385,000087: 4037 13317 TCF UPRUPT
006386,000088:
006387,000089: 4040 52011 DXCH ARUPT # DOWNRUPT
006388,000090: 4041 34062 CAF DWNRPTBB
006389,000091: 4042 56006 XCH BBANK
006390,000092: 4043 13506 TCF DODOWNTM
006391,000093:
006392,000094: 4044 52011 DXCH ARUPT # RADAR RUPT
006393,000095: 4045 34063 CAF RDRPTBB
![]() |
Page 154 |
006395,000097: 4046 56006 XCH BBANK
006396,000098: 4047 13150 TCF RADAREAD
006397,000099:
006398,000100: 4050 52011 DXCH ARUPT # RUPT10 IS USED ONLY BY LANDING GUIDANCE
006399,000101: 4051 34065 CA RUPT10BB
006400,000102: 4052 56006 XCH BBANK
006401,000103: 4053 12275 TCF PITFALL
006402,000104:
006403,000105:
006404,000106: 4054 E3,1400 EBANK= LST1 # RESTART USES E0, E3
006405,000107: 4054 12103 GOBB BBCON GOPROG
006406,000108:
006407,000109: 4055 E6,1464 EBANK= PERROR
006408,000110: 4055 02065 36106 T6ADR 2CADR DOT6RUPT
006409,000111:
006410,000112: 4057 E3,1400 EBANK= LST1
006411,000113: 4057 02103 T3RPTBB BBCON T3RUPT
006412,000114:
006413,000115: 4060 0073 EBANK= KEYTEMP1
006414,000116: 4060 10100 KEYRPTBB BBCON KEYRUPT1
006415,000117:
006416,000118: 4061 E7,1404 EBANK= AOTAZ
006417,000119: 4061 16107 MKRUPTBB BBCON MARKRUPT
006418,000120:
006419,000121: 4062 4060 UPRPTBB = KEYRPTBB
006420,000122:
006421,000123: 4062 0340 EBANK= DNTMBUFF
006422,000124: 4062 12100 DWNRPTBB BBCON DODOWNTM
006423,000125:
006424,000126: 4063 0110 EBANK= RADMODES
006425,000127: 4063 52100 RDRPTBB BBCON RADAREAD
006426,000128:
006427,000129: 4064 E6,1414 EBANK= M11
006428,000130: 4064 14106 T4RPTBB BBCON T4RUPT
006429,000131:
006430,000132: 4065 1265 EBANK= ELVIRA
006431,000133: 4065 22102 RUPT10BB BBCON PITFALL
006432,000134:
End of include-file INTERRUPT_LEAD_INS.agc. Parent file is MAIN.agc