Source Code
![]() |
These source-code files were transcribed from a printout in Don Eyles's personal
collection, scanned by archive.org, and financially sponsored by Peter McDermott.
A team of volunteers performed the transcription and proof-reading. The scanned
page images are available at
the Virtual AGC Project website, as well as higher-quality (but much larger)
images at
the Virtual AGC Project's collection in the Internet Archive. Report any problems by creating
"issues" at
the Virtual AGC Project's GitHub Repository. Notations on the program listing read, in part: YUL SYSTEM FOR AGC: NEW PROGRAM SHEPATIN BY EYLES DEC 13, 1966 THIS PROGRAM WAS ASSEMBLED AS A VERSION OF REVISION 37 OF PROGRAM SUNBURST BY LEM GROUPNote that the date is the date of the printout, not the date of the program revision. |
038476,000002: ## Copyright: Public domain.
038477,000003: ## Filename: PREBURN_FOR_APS2.agc
038478,000004: ## Purpose: A section of Sunburst revision 37, or Shepatin revision 0.
038479,000005: ## It is part of an early development version of the software
038480,000006: ## for Apollo Guidance Computer (AGC) on the unmanned Lunar
038481,000007: ## Module (LM) flight Apollo 5. Sunburst 37 was the program
038482,000008: ## upon which Don Eyles's offline development program Shepatin
038483,000009: ## was based; the listing herein transcribed was actually for
038484,000010: ## the equivalent revision 0 of Shepatin.
038485,000011: ## This file is intended to be a faithful transcription, except
038486,000012: ## that the code format has been changed to conform to the
038487,000013: ## requirements of the yaYUL assembler rather than the
038488,000014: ## original YUL assembler.
038489,000015: ## Reference: pp. 851-852
038490,000016: ## Assembler: yaYUL
038491,000017: ## Contact: Ron Burkey <info@sandroid.org>.
038492,000018: ## Website: www.ibiblio.org/apollo/index.html
038493,000019: ## Mod history: 2017-05-24 MAS Created from Sunburst 120.
038494,000020: ## 2017-06-11 HG Transcribed
038495,000021: ## 2017-06-15 HG Fix interpretive operator STODL -> STORE
038496,000022: ## 2017-06-17 MAS Split up an "E-4B9".
038497,000023: ## 2017-06-23 RSB Proofed comment text with
038498,000024: ## octopus/ProoferComments.
038499,000025:
![]() |
Page 851 |
038501,000027: # PREAPS2 IS A PROGRAM WHICH INITIALIZES **ASCENT** FOR THE 2ND APS
038502,000028: # BURN. IT USES RN AND VN(TIG), PROVIDED BY MIDTOAVE THROUGH MP13, TO COM-
038503,000029: # PUTE THE P, Q, AND S AXES FOR TRANSFORMATIONS, SETS 3 SWITCHES FOR PRO-
038504,000030: # PER MODING OF ASCENT, AND TRANSFERS DATA FROM FIXED TO ERASABLE FOR USE
038505,000031: # AS NOMINALS AT TIG.
038506,000032: # IT CALLS ASCENT ONCE TO PROVIDE UT AT IGNITION, AND THEN RESETS THE
038507,000033:
038508,000034: # EXIT FROM ASCENT TO GO TO FINDCDUD ON SUBSEQUENT ASCENT ENTRIES.
038509,000035:
038510,000036: 32,2000 BANK 32
038511,000037: 32,2000 E4,1400 EBANK= PAXIS1
038512,000038: 32,2000 53447 PREAPS2 DXCH RRETURN
038513,000039: 32,2001 35662 CA PRIO21 # GIVE LAMBERT A HIGHER PRIORITY THAN
038514,000040: 32,2002 55451 TS LAMPRIO # ASCENT, SO IT WILL FINISH.
038515,000041: 32,2003 06103 TC INTPRET
038516,000042: 32,2004 77624 CALL
038517,000043: 32,2005 60347 VPATCHER
038518,000044: 32,2006 77775 VLOAD
038519,000045: 32,2007 01011 RN # LOAD RN*2(N-29)
038520,000046:
038521,000047: 32,2010 53435 VXV UNIT # RN X VN*2(N-36)
038522,000048: 32,2011 01017 VN # SAXIS*2(-1)
038523,000049: 32,2012 02015 STORE SAXIS # STORE SAXIS
038524,000050: 32,2013 76435 VXV VSL1 # S X UR*2(-2)=Q1*2(-2), NORM TO S AND R
038525,000051: 32,2014 01033 UNITR # Q1*2(-1)
038526,000052: 32,2015 63361 VXSC PDVL # Q1* COS27*2(-1)
038527,000053: 32,2016 24072 COS27 # IN PDL(0)*2(-1) 2
038528,000054: 32,2017 01033 UNITR # LOAD UR*2(-1)
038529,000055: 32,2020 51361 VXSC BVSU # UR SIN27*2(-1)
038530,000056: 32,2021 24074 SIN27 # Q1 COS27-UR SIN27 = Q
038531,000057:
038532,000058: 32,2022 77626 STADR # 0
038533,000059: 32,2023 75770 STORE QAXIS # STORE QAXIS
038534,000060: 32,2024 76435 VXV VSL1 # Q X S*2(-2) = P*2(-2)
038535,000061: 32,2025 02015 SAXIS # P*2(-1)
038536,000062: 32,2026 26001 STOVL PAXIS1 # STORE PAXIS
038537,000063: 32,2027 24076 ENGNOM # LOAD NOMINAL AT, 1/VE, TBUP
038538,000064: 32,2030 26023 STOVL AT # STORE IN ERASE
038539,000065: 32,2031 24104 PREIGN # LOAD NOM, 1/DV2,1/DV1,KR
038540,000066: 32,2032 16031 STODL ATMEAS # STORE IN ERASE
038541,000067: 32,2033 26517 DP0 # LOAD 0
038542,000068: 32,2034 26037 STOVL KR1 # STORE IN KR1
038543,000069: 32,2035 24112 VCONOM # LOAD NOM. RDOTD,YDOTD,ZDOTD
038544,000070:
038545,000071: 32,2036 02041 STORE RDOTD # STORE IN ERASE
038546,000072: 32,2037 77731 SSP
038547,000073: 32,2040 02051 ASCRET
038548,000074: 32,2041 64053 PRAPS # LOAD RETURN ADD. FROM ASCENT
038549,000075: 32,2042 43014 SET CLEAR
038550,000076: 32,2043 01474 DIRECT # DIRECT=1
038551,000077: 32,2044 01675 PASS # PASS=0
038552,000078: 32,2045 43014 CLEAR SET # CLEAR GUESSW FOR NO COGAVAIL
038553,000079: 32,2046 02263 GUESSW
038554,000080: 32,2047 02061 DONESW # TO START LAMBERT
038555,000081:
![]() |
Page 852 |
038557,000083: 32,2050 52014 CLEAR GOTO
038558,000084: 32,2051 01676 HC # HC=0
038559,000085:
038560,000086: 32,2052 64120 ASCENT # GO TO ASCENT EQUATIONS
038561,000087: 32,2053 43175 PRAPS VLOAD SET
038562,000088: 32,2054 02057 UT # LOAD DES. THRUST VECTOR
038563,000089: 32,2055 02063 GUESSW # SET GUESSW FOR COGAVAIL
038564,000090: 32,2056 25656 STOVL POINTVSM # STORE FOR CALCMANU
038565,000091: 32,2057 26515 BODYVECT # LOAD UNIT X-AXIS
038566,000092: 32,2060 01664 STORE SCAXIS # STORE FOR CALCMANU
038567,000093: 32,2061 77776 EXIT
038568,000094: 32,2062 32117 CA CDUFAD # SET UP FOR NORMAL EXIT FROM ASCENT TO
038569,000095: 32,2063 55450 TS ASCRET # FINDCDUD
038570,000096:
038571,000097: 32,2064 35661 CA PRIO17 # GIVE LAMBERT A LOWER PRIORITY
038572,000098: 32,2065 55451 TS LAMPRIO
038573,000099: 32,2066 00006 EXTEND
038574,000100: 32,2067 31447 DCA RRETURN # GO BACK TO MP13
038575,000101: 32,2070 52006 DXCH Z
038576,000102: 32,2071 34406 10015 COS27 2DEC .89100652
038577,000103: 32,2073 16416 05613 SIN27 2DEC .45399050
038578,000104: 32,2075 05204 04411 ENGNOM 2DEC 3.20928237 E-4 B9 # AT*2(9)
038579,000105: 32,2077 20712 37674 2DEC .0330009301 B4 # (1/VE)*2(4)
038580,000106:
038581,000107: 32,2101 27032 21513 2DEC 94420.4114 B-17 # TBUP*2(-17)
038582,000108: 32,2103 00000 00000 PREIGN 2DEC 0 B-28 # NOMINAL (1/DV2)*2( )
038583,000109: 32,2105 00000 00000 2DEC 0 B-28 # NOMINAL (1/DV1)*2( )
038584,000110: 32,2107 20000 00000 2DEC .5 # KR*2(-1) FOR APS2
038585,000111: 32,2111 00000 00000 VCONOM 2DEC 0 B-28 # RDOTD*2(-7)
038586,000112:
038587,000113: 32,2113 22363 06315 2DEC 73.9 B-7
038588,000114: 32,2115 05000 00000 2DEC 20 B-7
038589,000115: 32,2117 33,2514 DP.5 = BODYVECT
038590,000116: 32,2117 33,2516 DP0 = BODYVECT +2
038591,000117: 32,2117 E4,1400 EBANK= PAXIS1
038592,000118: 32,2117 60643 CDUFAD FCADR FINDCDUD
End of include-file PREBURN_FOR_APS2.agc. Parent file is MAIN.agc