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. |
035585,000002: ## Copyright: Public domain.
035586,000003: ## Filename: PIPA_READER.agc
035587,000004: ## Purpose: A module for revision 0 of BURST120 (Sunburst). It
035588,000005: ## is part of the source code for the Lunar Module's
035589,000006: ## (LM) Apollo Guidance Computer (AGC) for Apollo 5.
035590,000007: ## Assembler: yaYUL
035591,000008: ## Contact: Ron Burkey <info@sandroid.org>.
035592,000009: ## Website: www.ibiblio.org/apollo/index.html
035593,000010: ## Mod history: 2016-09-30 RSB Created draft version.
035594,000011: ## 2016-10-29 MAS Adapted from Luminary 099.
035595,000012: ## 2016-10-31 RSB Typos.
035596,000013: ## 2016-12-06 RSB Comment-proofing via octopus/ProoferComments;
035597,000014: ## changes were made.
035598,000015: ## 2017-03-14 RSB Comment-text fixes noted in proofing Luminary 116.
035599,000016:
![]() |
Page 835 |
035601,000018: # ***** PIPA READER *****
035602,000019:
035603,000020: # MOD NO. 00 BY D. LICKLY DEC.9 1966
035604,000021:
035605,000022: # FUNCTIONAL DESCRIPTION
035606,000023:
035607,000024: # SUBROUTINE TO READ PIPA COUNTERS, TRYING TO BE VERY CAREFUL SO THAT IT WILL BE RESTARTABLE.
035608,000025: # PIPA READINGS ARE STORED IN THE VECTOR DELV. THE HIGH ORDER PART OF EACH COMPONENT CONTAINS THE PIPA READING,
035609,000026: # RESTARTS BEGIN AT REREADAC.
035610,000027:
035611,000028:
035612,000029: # AT THE END OF THE PIPA READER THE CDUS ARE READ AND STORED AS A
035613,000030: # VECTOR IN CDUTEMP. THE HIGH ORDER PART OF EACH COMPONENT CONTAINS
035614,000031: # THE CDU READING IN 2S COMP IN THE ORDER CDUX,Y,Z. THE THRUST
035615,000032: # VECTOR ESTIMATOR IN FINDCDUD REQUIRES THE CDUS BE READ AT PIPTIME.
035616,000033:
035617,000034: # CALLING SEQUENCE AND EXIT
035618,000035:
035619,000036: # CALL VIA TC, ISWCALL, ETC.
035620,000037:
035621,000038: # EXIT IS VIA Q.
035622,000039:
035623,000040:
035624,000041: # INPUT
035625,000042:
035626,000043: # INPUT IS THROUGH THE COUNTERS PIPAX, PIPAY, PIPAZ, AND TIME2.
035627,000044:
035628,000045: # OUTPUT
035629,000046:
035630,000047: # HIGH ORDER COMPONENTS OF THE VECTOR DELV CONTAIN THE PIPA READINGS.
035631,000048: # PIPTIME CONTAINS TIME OF PIPA READING.
035632,000049:
035633,000050:
035634,000051: # DEBRIS (ERASABLE LOCATIONS DESTROYED BY PROGRAM)
035635,000052:
035636,000053: # TEMX TEMY TEMZ PIPAGE
035637,000054:
035638,000055:
035639,000056: 30,2574 BANK 30
035640,000057: 30,2574 00006 PIPASR EXTEND
035641,000058: 30,2575 30025 DCA TIME2
035642,000059: 30,2576 53307 DXCH PIPTIME # CURRENT TIME POSITIVE VALUE.
035643,000060:
035644,000061: 30,2577 47767 CS ZERO # INITIALIZE THESE AT NEG ZERO.
035645,000062: 30,2600 55155 TS TEMX
035646,000063: 30,2601 55156 TS TEMY
035647,000064: 30,2602 55157 TS TEMZ
035648,000065:
![]() |
Page 836 |
035650,000067: 30,2603 37767 CA ZERO
035651,000068: 30,2604 54407 TS DELVZ # OTHER DELVS OK INCLUDING LOW ORDER
035652,000069: 30,2605 54405 TS DELVY
035653,000070:
035654,000071: 30,2606 55331 TS CDUTEMP +1 # INITIALIZE THESE FOR FINDCDUD
035655,000072: 30,2607 55333 TS CDUTEMP +3
035656,000073: 30,2610 55335 TS CDUTEMP +5
035657,000074:
035658,000075: 30,2611 55161 TS PIPAGE # SHOW PIPA READING IN PROGRESS
035659,000076:
035660,000077: 30,2612 00006 REPIP1 EXTEND
035661,000078: 30,2613 40040 DCS PIPAX # X AND Y PIPS READ
035662,000079: 30,2614 53156 DXCH TEMX
035663,000080: 30,2615 52040 DXCH PIPAX # PIPAS SET TO NEG ZERO AS READ.
035664,000081: 30,2616 54403 TS DELVX
035665,000082: 30,2617 22405 LXCH DELVY
035666,000083:
035667,000084: 30,2620 40041 REPIP3 CS PIPAZ # REPEAT PROCESS FOR Z PIP
035668,000085: 30,2621 57157 XCH TEMZ
035669,000086: 30,2622 56041 XCH PIPAZ
035670,000087: 30,2623 54407 DODELVZ TS DELVZ
035671,000088:
035672,000089: 30,2624 30032 REPIP4 CA CDUX # READ CDUS INTO HIGH ORDER CDUTEMPS
035673,000090: 30,2625 55330 TS CDUTEMP
035674,000091: 30,2626 30033 CA CDUY
035675,000092: 30,2627 55332 TS CDUTEMP +2
035676,000093: 30,2630 30034 CA CDUZ
035677,000094: 30,2631 55334 TS CDUTEMP +4
035678,000095:
035679,000096: 30,2632 00002 TC Q
035680,000097:
035681,000098:
035682,000099:
035683,000100: 30,2633 11110 REREADAC CCS PHASE5 # COMES HERE ON RESARTS. IS PHASE 5 ON?
035684,000101: 30,2634 12636 TCF +2 # YES.. GO ON.
035685,000102: 30,2635 15727 TCF TASKOVER # NO.. HAVE BEEN TO AVGEND SINCE GOJAM.
035686,000103:
035687,000104: 30,2636 11161 CCS PIPAGE # WAS 1 READING THE PIPS WHEN GOJAM OCCURD
035688,000105: 30,2637 12064 TCF PIPREAD # PIP READING NOT STARTED. GO TO BEGINNING
035689,000106: 30,2640 32676 CAF DONEADR # SET UP RETURN FROM PIPASR
035690,000107: 30,2641 54002 TS Q
035691,000108:
035692,000109: 30,2642 10407 CCS DELVZ
035693,000110: 30,2643 12624 TCF REPIP4 # Z DONE, GO DO CDUS
035694,000111: 30,2644 12647 TCF +3 # Z NOT DONE, CHECK Y.
035695,000112: 30,2645 12624 TCF REPIP4
035696,000113: 30,2646 12624 TCF REPIP4
035697,000114:
035698,000115: 30,2647 22007 ZL
035699,000116: 30,2650 10405 CCS DELVY
![]() |
Page 837 |
035701,000118: 30,2651 12654 TCF +3
035702,000119: 30,2652 12663 TCF CHKTEMX # Y NOT DONE, CHECK X.
035703,000120: 30,2653 12654 TCF +1
035704,000121: 30,2654 22041 LXCH PIPAZ # Y DONE, ZERO Z PIP.
035705,000122:
035706,000123: 30,2655 11157 CCS TEMZ
035707,000124: 30,2656 41157 CS TEMZ # TEMZ NOT = -0, CONTAINS -PIPAZ VALUE.
035708,000125: 30,2657 12623 TCF DODELVZ
035709,000126: 30,2660 12656 TCF -2
035710,000127: 30,2661 22407 LXCH DELVZ # TEMZ = -0, L HAS ZPIP VALUE.
035711,000128: 30,2662 12624 TCF REPIP4
035712,000129:
035713,000130: 30,2663 11155 CHKTEMX CCS TEMX # HAS THIS CHANGED
035714,000131: 30,2664 41155 CS TEMX # YES
035715,000132: 30,2665 12670 TCF +3 # YES
035716,000133: 30,2666 12664 TCF -2 # YES
035717,000134: 30,2667 12612 TCF REPIP1 # NO
035718,000135: 30,2670 54403 TS DELVX
035719,000136:
035720,000137: 30,2671 41156 CS TEMY
035721,000138: 30,2672 54405 TS DELVY
035722,000139:
035723,000140: 30,2673 47767 CS ZERO # ZERO X AND Y PIPS
035724,000141: 30,2674 52040 DXCH PIPAX # L STILL ZERO FROM ABOVE
035725,000142:
035726,000143: 30,2675 12620 TCF REPIP3
035727,000144:
035728,000145: 30,2676 02065 DONEADR GENADR PIPSDONE
End of include-file PIPA_READER.agc. Parent file is MAIN.agc