Source Code
![]() |
These source-code files were transcribed from scans made from Don Eyles's personal
copy of BURST120 (SUNBURST 120). They were scanned at archive.org's Boston
facility, and the scanning was sponsored by Mike Stewart. The code was transcribed
from these scans by a team of volunteers who are referenced in the program
comments. Comments from the original source code are in ALL-CAPS, whereas
comments added later in transcription are in Mixed-Case. In some cases, where
similar code blocks exist in previously-transcribed AGC programs (primarily
Luminary 99, from Apollo 11) those code blocks were used as a starting point and
then corrected to agree with the BURST120 scans. The full scans are available
at the Virtual AGC
project's collection at archive.org, while more-convenient reduced-size (but reduced-quality)
images are available at
the main Virtual AGC website. Report any errors noted by creating an
issue report at the Virtual AGC
project's GitHub repository. Notations on the program listing read, in part:YUL SYSTEM FOR AGC: REVISION 0 OF PROGRAM BURST120 BY NASA 2021106-031 DEC 7, 1967 THIS LISTING IS A COPY OF A VERSION OF THE PROGRAM INTENDED FOR USE IN THE ON-BOARD PRIMARY GUIDANCE COMPUTER IN THE UNMANNED FLIGHT OF APOLLO LUNAR MODULE 1 --- THE AS206 MISSION.Note that the date is the date of the printout, not the date of the program revision. |
009052,000002: ## Copyright: Public domain.
009053,000003: ## Filename: KEYRUPT_UPRUPT.agc
009054,000004: ## Purpose: A module for revision 0 of BURST120 (Sunburst).
009055,000005: ## It is part of the source code for the Lunar Module's (LM)
009056,000006: ## Apollo Guidance Computer (AGC) for Apollo 5.
009057,000007: ## Assembler: yaYUL
009058,000008: ## Contact: Ron Burkey <info@sandroid.org>.
009059,000009: ## Website: www.ibiblio.org/apollo/index.html
009060,000010: ## Mod history: 2016-09-30 RSB Created draft version.
009061,000011: ## 2016-10-06 RSB Transcription completed.
009062,000012: ## 2016-10-31 RSB Typos.
009063,000013:
![]() |
Page 228 |
009065,000015: 13,3474 BANK 13
009066,000016: 13,3474 54016 KEYRUPT1 TS BANKRUPT
009067,000017: 13,3475 56002 XCH Q
009068,000018: 13,3476 54012 TS QRUPT
009069,000019: 13,3477 04605 TC LODSAMPT # TIME IS SNATCHED IN RUPT FOR NOUN 65.
009070,000020: 13,3500 34556 CAF LOW5
009071,000021: 13,3501 00006 EXTEND
009072,000022: 13,3502 02015 RAND MNKEYIN
009073,000023: 13,3503 54073 KEYCOM TS RUPTREG4
009074,000024: 13,3504 35210 CAF CHRPRIO
009075,000025: 13,3505 05505 TC NOVAC
009076,000026: 13,3506 0270 EBANK= DSPCOUNT
009077,000027: 13,3506 02002 10060 2CADR CHARIN
009078,000028:
009079,000029: 13,3510 30073 CA RUPTREG4
009080,000030: 13,3511 50064 INDEX LOCCTR
009081,000031: 13,3512 54144 TS MPAC # LEAVE 5 BIT KEY CODE IN MPAC FOR CHARIN
009082,000032: 13,3513 05733 TC RESUME
009083,000033:
![]() |
Page 229 |
009085,000035: # UPRUPT PROGRAM
009086,000036:
009087,000037: 13,3514 54016 UPRUPT TS BANKRUPT
009088,000038: 13,3515 56002 XCH Q
009089,000039: 13,3516 54012 TS QRUPT
009090,000040: 13,3517 04605 TC LODSAMPT # TIME IS SNATCHED IN RUPT FOR NOUN 65.
009091,000041: 13,3520 37767 CAF ZERO
009092,000042: 13,3521 56045 XCH INLINK
009093,000043: 13,3522 54073 TS KEYTEMP1
009094,000044: 13,3523 37761 CAF BIT3 # TURN ON UPACT LIGHT
009095,000045: 13,3524 00006 EXTEND # (BIT 3 OF CHANNEL 11)
009096,000046: 13,3525 05011 WOR DSALMOUT
009097,000047: 13,3526 34556 UPRPT1 CAF LOW5 # TEST FOR TRIPLE CHAR REDUNDANCY
009098,000048: 13,3527 70073 MASK KEYTEMP1 # LOW5 OF WORD
009099,000049: 13,3530 56073 XCH KEYTEMP1 # LOW5 INTO KEYTEMP1
009100,000050: 13,3531 56021 XCH SR # WHOLE WORD INTO SR
009101,000051: 13,3532 55076 TS KEYTEMP2
009102,000052: 13,3533 03577 TC SRGHT5
009103,000053: 13,3534 74556 MASK LOW5 # MID 5
009104,000054: 13,3535 63611 AD HI10
009105,000055: 13,3536 03606 TC UPTEST
009106,000056: 13,3537 03577 TC SRGHT5
009107,000057: 13,3540 74556 MASK LOW5 # HIGH 5
009108,000058: 13,3541 40000 COM
009109,000059: 13,3542 03606 TC UPTEST
009110,000060: 13,3543 03573 UPCK TC RESTORSR # CODE IS GOOD
009111,000061: 13,3544 43550 CS ELRCODE # IF CODE = ERROR LIGHT RESET, PUT +0
009112,000062: 13,3545 60073 AD KEYTEMP1 # INTO BIT1 OF UPLOCK.
009113,000063: 13,3546 10000 CCS A # IF CODE NOT= ELR, PASS CODE ONLY IF
009114,000064: 13,3547 03556 TC TSTUPLOK # BIT1 OF UPLOCK = 0.
009115,000065: 13,3550 00022 ELRCODE OCT 22
009116,000066: 13,3551 03556 TC TSTUPLOK
009117,000067: 13,3552 47761 CS BIT3
009118,000068: 13,3553 70075 MASK FLAGWRD1
009119,000069: 13,3554 54075 TS FLAGWRD1
009120,000070: 13,3555 03562 TC ACCEPTUP
009121,000071: 13,3556 37761 TSTUPLOK CAF BIT3
009122,000072: 13,3557 70075 MASK FLAGWRD1
009123,000073: 13,3560 10000 CCS A
009124,000074: 13,3561 05733 TC RESUME # BIT1 OF UPLOCK = 1.
009125,000075: 13,3562 56073 ACCEPTUP XCH KEYTEMP1 # BIT1 OF UPLOCK = 0.
009126,000076: 13,3563 03503 TC KEYCOM
009127,000077:
009128,000078: 13,3564 03573 TMFAIL2 TC RESTORSR # CODE IS BAD
009129,000079: 13,3565 47761 CS BIT3
009130,000080: 13,3566 70075 MASK FLAGWRD1
009131,000081: 13,3567 67761 AD BIT3
009132,000082: 13,3570 54075 TS FLAGWRD1
009133,000083: 13,3571 05733 TMFAIL1 TC TMALM
009134,000084: 13,3572 05733 TC RESUME
009135,000085:
![]() |
Page 230 |
009137,000087: 13,3573 57076 RESTORSR XCH KEYTEMP2
009138,000088: 13,3574 60000 DOUBLE
009139,000089: 13,3575 54021 TS SR
009140,000090: 13,3576 00002 TC Q
009141,000091:
009142,000092: 13,3577 5733 TMALM = RESUME # FOR NOW
009143,000093:
009144,000094: 13,3577 40021 SRGHT5 CS SR
009145,000095: 13,3600 40021 CS SR
009146,000096: 13,3601 40021 CS SR
009147,000097: 13,3602 40021 CS SR
009148,000098: 13,3603 40021 CS SR
009149,000099: 13,3604 40000 CS A
009150,000100: 13,3605 00002 TC Q # DELIVERS WORD UNCOMPLEMENTED
009151,000101:
009152,000102: 13,3606 60073 UPTEST AD KEYTEMP1
009153,000103: 13,3607 10000 CCS A
009154,000104: 13,3610 03564 TC TMFAIL2
009155,000105: 13,3611 77740 HI10 OCT 77740
009156,000106: 13,3612 03564 TC TMFAIL2
009157,000107: 13,3613 00002 TC Q
009158,000108:
009159,000109: # THE RECEPTION OF A BAD CODE BY UPLINK LOCKS OUT FURTHER UPLINK ACTIVITY
009160,000110: # BY PLACING A 1 INTO BIT1 OF UPLOCK. BIT9 (ALONG WITH BIT11) OF TMKEYBUF
009161,000111: # IS SET TO 1 TO SEND AN INDICATION OF THIS SITUATION DOWN THE DOWNLINK.
009162,000112: # THE UPLINK INTERLOCK IS ALLOWED WHEN AN ERROR LIGHT RESET CODE IS SENT
009163,000113: # UP THE UPLINK, OR WHEN A FRESH START IS PERFORMED.
009164,000114:
End of include-file KEYRUPT_UPRUPT.agc. Parent file is MAIN.agc