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. |
009116,000002: ## Copyright: Public domain.
009117,000003: ## Filename: KEYRUPT_UPRUPT.agc
009118,000004: ## Purpose: A module for revision 0 of BURST120 (Sunburst).
009119,000005: ## It is part of the source code for the Lunar Module's (LM)
009120,000006: ## Apollo Guidance Computer (AGC) for Apollo 5.
009121,000007: ## Assembler: yaYUL
009122,000008: ## Contact: Ron Burkey <info@sandroid.org>.
009123,000009: ## Website: www.ibiblio.org/apollo/index.html
009124,000010: ## Mod history: 2016-09-30 RSB Created draft version.
009125,000011: ## 2016-10-06 RSB Transcription completed.
009126,000012: ## 2016-10-31 RSB Typos.
009127,000013: ## 2016-12-04 RSB Proofed with octopus/ProoferComments and fixed various
009128,000014: ## comments, but the proofing process is not completed.
009129,000015: ## 2016-12-05 RSB Comment-proofing pass with octopus/ProoferComments completed;
009130,000016: ## changes made.
009131,000017:
![]() |
Page 228 |
009133,000019: 13,3474 BANK 13
009134,000020: 13,3474 54016 KEYRUPT1 TS BANKRUPT
009135,000021: 13,3475 56002 XCH Q
009136,000022: 13,3476 54012 TS QRUPT
009137,000023: 13,3477 04605 TC LODSAMPT # TIME IS SNATCHED IN RUPT FOR NOUN 65.
009138,000024: 13,3500 34556 CAF LOW5
009139,000025: 13,3501 00006 EXTEND
009140,000026: 13,3502 02015 RAND MNKEYIN
009141,000027: 13,3503 54073 KEYCOM TS RUPTREG4
009142,000028: 13,3504 35210 CAF CHRPRIO
009143,000029: 13,3505 05505 TC NOVAC
009144,000030: 13,3506 0270 EBANK= DSPCOUNT
009145,000031: 13,3506 02002 10060 2CADR CHARIN
009146,000032:
009147,000033: 13,3510 30073 CA RUPTREG4
009148,000034: 13,3511 50064 INDEX LOCCTR
009149,000035: 13,3512 54144 TS MPAC # LEAVE 5 BIT KEY CDE IN MPAC FOR CHARIN
009150,000036: 13,3513 05733 TC RESUME
009151,000037:
![]() |
Page 229 |
009153,000039: # UPRUPT PROGRAM
009154,000040:
009155,000041: 13,3514 54016 UPRUPT TS BANKRUPT
009156,000042: 13,3515 56002 XCH Q
009157,000043: 13,3516 54012 TS QRUPT
009158,000044: 13,3517 04605 TC LODSAMPT # TIME IS SNATCHED IN RUPT FOR NOUN 65.
009159,000045: 13,3520 37767 CAF ZERO
009160,000046: 13,3521 56045 XCH INLINK
009161,000047: 13,3522 54073 TS KEYTEMP1
009162,000048: 13,3523 37761 CAF BIT3 # TURN ON UPACT LIGHT
009163,000049: 13,3524 00006 EXTEND # (BIT 3 OF CHANNEL 11)
009164,000050: 13,3525 05011 WOR DSALMOUT
009165,000051: 13,3526 34556 UPRPT1 CAF LOW5 # TEST FOR TRIPLE CHAR REDUNDANCY
009166,000052: 13,3527 70073 MASK KEYTEMP1 # LOW5 OF WORD
009167,000053: 13,3530 56073 XCH KEYTEMP1 # LOW5 INTO KEYTEMP1
009168,000054: 13,3531 56021 XCH SR # WHOLE WORD INTO SR
009169,000055: 13,3532 55076 TS KEYTEMP2 # ORIGINAL SR INTO KEYTEMP2
009170,000056: 13,3533 03577 TC SRGHT5
009171,000057: 13,3534 74556 MASK LOW5 # MID 5
009172,000058: 13,3535 63611 AD HI10
009173,000059: 13,3536 03606 TC UPTEST
009174,000060: 13,3537 03577 TC SRGHT5
009175,000061: 13,3540 74556 MASK LOW5 # HIGH 5
009176,000062: 13,3541 40000 COM
009177,000063: 13,3542 03606 TC UPTEST
009178,000064: 13,3543 03573 UPCK TC RESTORSR # CODE IS GOOD
009179,000065: 13,3544 43550 CS ELRCODE # IF CODE = ERROR LIGHT RESET, PUT +0
009180,000066: 13,3545 60073 AD KEYTEMP1 # INTO BIT1 OF UPLOCK.
009181,000067: 13,3546 10000 CCS A # IF CODE NOT= ELR, PASS CODE ONLY IF
009182,000068: 13,3547 03556 TC TSTUPLOK # BIT1 OF UPLOCK = 0.
009183,000069: 13,3550 00022 ELRCODE OCT 22
009184,000070: 13,3551 03556 TC TSTUPLOK
009185,000071: 13,3552 47761 CS BIT3
009186,000072: 13,3553 70075 MASK FLAGWRD1
009187,000073: 13,3554 54075 TS FLAGWRD1
009188,000074: 13,3555 03562 TC ACCEPTUP
009189,000075: 13,3556 37761 TSTUPLOK CAF BIT3
009190,000076: 13,3557 70075 MASK FLAGWRD1
009191,000077: 13,3560 10000 CCS A
009192,000078: 13,3561 05733 TC RESUME # BIT1 OF UPLOCK = 1.
009193,000079: 13,3562 56073 ACCEPTUP XCH KEYTEMP1 # BIT1 OF UPLOCK = 0.
009194,000080: 13,3563 03503 TC KEYCOM
009195,000081:
009196,000082: 13,3564 03573 TMFAIL2 TC RESTORSR # CODE IS BAD
009197,000083: 13,3565 47761 CS BIT3
009198,000084: 13,3566 70075 MASK FLAGWRD1
009199,000085: 13,3567 67761 AD BIT3
009200,000086: 13,3570 54075 TS FLAGWRD1
009201,000087: 13,3571 05733 TMFAIL1 TC TMALM
009202,000088: 13,3572 05733 TC RESUME
009203,000089:
![]() |
Page 230 |
009205,000091: 13,3573 57076 RESTORSR XCH KEYTEMP2
009206,000092: 13,3574 60000 DOUBLE
009207,000093: 13,3575 54021 TS SR
009208,000094: 13,3576 00002 TC Q
009209,000095:
009210,000096: 13,3577 5733 TMALM = RESUME # FOR NOW
009211,000097:
009212,000098: 13,3577 40021 SRGHT5 CS SR
009213,000099: 13,3600 40021 CS SR
009214,000100: 13,3601 40021 CS SR
009215,000101: 13,3602 40021 CS SR
009216,000102: 13,3603 40021 CS SR
009217,000103: 13,3604 40000 CS A
009218,000104: 13,3605 00002 TC Q # DELIVERS WORD UNCOMPLEMENTED
009219,000105:
009220,000106: 13,3606 60073 UPTEST AD KEYTEMP1
009221,000107: 13,3607 10000 CCS A
009222,000108: 13,3610 03564 TC TMFAIL2
009223,000109: 13,3611 77740 HI10 OCT 77740
009224,000110: 13,3612 03564 TC TMFAIL2
009225,000111: 13,3613 00002 TC Q
009226,000112:
009227,000113: # UPACT IS TURNED OFF BY VBRELDSP, ALSO BY ERROR LIGHT RESET.
![]() |
Page 231 |
009229,000115: # THE RECEPTION OF A BAD CODE BY UPLINK LOCKS OUT FURTHER UPLINK ACTIVITY
009230,000116: # BY PLACING A 1 INTO BIT1 OF UPLOCK. BIT9 (ALONG WITH BIT11) OF TMKEYBUF
009231,000117: # IS SET TO 1 TO SEND AN INDICATION OF THIS SITUATION DOWN THE DOWNLINK.
009232,000118: # THE UPLINK INTERLOCK IS ALLOWED WHEN AN ERROR LIGHT RESET CODE IS SENT
009233,000119: # UP THE UPLINK, OR WHEN A FRESH START IS PERFORMED.
009234,000120:
End of include-file KEYRUPT,_UPRUPT.agc. Parent file is MAIN.agc