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. |
048005,000002: ## Copyright: Public domain.
048006,000003: ## Filename: SINGLE_PRECISION_SUBROUTINES.agc
048007,000004: ## Purpose: Part of the reconstructed source code for LMY99 Rev 0,
048008,000005: ## otherwise known as Luminary Rev 99, the second release
048009,000006: ## of the Apollo Guidance Computer (AGC) software for Apollo 11.
048010,000007: ## It differs from LMY99 Rev 1 (the flown version) only in the
048011,000008: ## placement of a single label. The corrections shown here have
048012,000009: ## been verified to have the same bank checksums as AGC developer
048013,000010: ## Allan Klumpp's copy of Luminary Rev 99, and so are believed
048014,000011: ## to be accurate. This file is intended to be a faithful
048015,000012: ## recreation, except that the code format has been changed to
048016,000013: ## conform to the requirements of the yaYUL assembler rather than
048017,000014: ## the original YUL assembler.
048018,000015: ##
048019,000016: ## Assembler: yaYUL
048020,000017: ## Contact: Ron Burkey <info@sandroid.org>.
048021,000018: ## Website: www.ibiblio.org/apollo.
048022,000019: ## Pages: 1102
048023,000020: ## Mod history: 2009-05-25 RSB Adapted from the corresponding
048024,000021: ## Luminary131 file, using page
048025,000022: ## images from Luminary 1A.
048026,000023: ## 2010-12-31 JL Fixed page number comment.
048027,000024: ## 2016-12-17 RSB Proofed text comments with octopus/ProoferComments
048028,000025: ## and corrected the errors found.
048029,000026: ## 2017-08-01 MAS Created from LMY99 Rev 1.
048030,000027:
048031,000028: ## This source code has been transcribed or otherwise adapted from
048032,000029: ## digitized images of a hardcopy from the MIT Museum. The digitization
048033,000030: ## was performed by Paul Fjeld, and arranged for by Deborah Douglas of
048034,000031: ## the Museum. Many thanks to both. The images (with suitable reduction
048035,000032: ## in storage size and consequent reduction in image quality as well) are
048036,000033: ## available online at www.ibiblio.org/apollo. If for some reason you
048037,000034: ## find that the images are illegible, contact me at info@sandroid.org
048038,000035: ## about getting access to the (much) higher-quality images which Paul
048039,000036: ## actually created.
048040,000037: ##
048041,000038: ## The code has been modified to match LMY99 Revision 0, otherwise
048042,000039: ## known as Luminary Revision 99, the Apollo 11 software release preceeding
048043,000040: ## the listing from which it was transcribed. It has been verified to
048044,000041: ## contain the same bank checksums as AGC developer Allan Klumpp's listing
048045,000042: ## of Luminary Revision 99 (for which we do not have scans).
048046,000043: ##
048047,000044: ## Notations on Allan Klumpp's listing read, in part:
048048,000045: ##
048049,000046: ## ASSEMBLE REVISION 099 OF AGC PROGRAM LUMINARY BY NASA 2021112-51
048050,000047:
![]() |
Page 1102 |
048052,000049: 5032 BLOCK 02
048053,000050:
048054,000051: # SINGLE PRECISION SINE AND COSINE
048055,000052:
048056,000053: 5032 COUNT* $$/INTER
048057,000054: 5032 64736 SPCOS AD HALF # ARGUMENTS SCALED AT PI
048058,000055: 5033 55076 SPSIN TS TEMK
048059,000056: 5034 15036 TCF SPT
048060,000057: 5035 41076 CS TEMK
048061,000058: 5036 60000 SPT DOUBLE
048062,000059: 5037 55076 TS TEMK
048063,000060: 5040 15051 TCF POLLEY
048064,000061: 5041 57076 XCH TEMK
048065,000062: 5042 51076 INDEX TEMK
048066,000063: 5043 64734 AD LIMITS
048067,000064: 5044 40000 COM
048068,000065: 5045 61076 AD TEMK
048069,000066: 5046 55076 TS TEMK
048070,000067: 5047 15051 TCF POLLEY
048071,000068: 5050 15067 TCF ARG90
048072,000069: 5051 00006 POLLEY EXTEND
048073,000070: 5052 71076 MP TEMK
048074,000071: 5053 55077 TS SQ
048075,000072: 5054 00006 EXTEND
048076,000073: 5055 75005 MP C5/2
048077,000074: 5056 67737 AD C3/2
048078,000075: 5057 00006 EXTEND
048079,000076: 5060 71077 MP SQ
048080,000077: 5061 67717 AD C1/2
048081,000078: 5062 00006 EXTEND
048082,000079: 5063 71076 MP TEMK
048083,000080: 5064 20001 DDOUBL
048084,000081: 5065 55076 TS TEMK
048085,000082: 5066 00002 TC Q
048086,000083: 5067 50000 ARG90 INDEX A
048087,000084: 5070 44734 CS LIMITS
048088,000085: 5071 00002 TC Q # RESULT SCALED AT 1
048089,000086:
048090,000087:
End of include-file SINGLE_PRECISION_SUBROUTINES.agc. Parent file is MAIN.agc