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. |
020192,000002: ## Copyright: Public domain.
020193,000003: ## Filename: DAPIDLER_PROGRAM.agc
020194,000004: ## Purpose: A module for revision 0 of BURST120 (Sunburst). It
020195,000005: ## is part of the source code for the Lunar Module's
020196,000006: ## (LM) Apollo Guidance Computer (AGC) for Apollo 5.
020197,000007: ## Assembler: yaYUL
020198,000008: ## Contact: Ron Burkey <info@sandroid.org>.
020199,000009: ## Website: www.ibiblio.org/apollo/index.html
020200,000010: ## Mod history: 2016-09-30 RSB Created draft version.
020201,000011: ## 2016-10-21 HG Transcribed
020202,000012: ## 2016-10-31 RSB Typos.
020203,000013: ## 2016-11-01 RSB More typos.
020204,000014: ## 2016-12-05 RSB Comment-proofing with octopus/ProoferComments
020205,000015: ## completed, changes made.
020206,000016:
![]() |
Page 487 |
020208,000018: # THE DAPIDLER PROGRAM IS STARTED BY FRESH START AND RESTART. THE DAPIDLER PROGRAM IS DONE 10 TIMES
020209,000019: # PER SECOND UNTIL THE ASTRONAUT DESIRES THE DAP TO WAKE UP, AND THE IMU AND CDUS ARE READY FOR USE BY THE DAP.
020210,000020: # THE NECESSARY INITIALIZATION OF THE DAP IS DONE BY THE DAPIDLER PROGRAM.
020211,000021: # ADDITIONAL WORK MUST BE DONE ON DAPIDLER IN THE FUTURE.
020212,000022:
020213,000023:
020214,000024:
020215,000025: 16,2005 BANK 16
020216,000026: 16,2005 E6,1542 EBANK= DT
020217,000027:
020218,000028: 16,2005 37756 CHEKBITS CAF BIT6
020219,000029: 16,2006 70365 MASK IMODES30
020220,000030: 16,2007 10000 CCS A
020221,000031: 16,2010 12166 TCF MOREIDLE
020222,000032:
020223,000033: 16,2011 37760 CAF BIT4
020224,000034: 16,2012 67757 AD BIT5
020225,000035: 16,2013 00006 EXTEND
020226,000036: 16,2014 02012 RAND 12
020227,000037: 16,2015 10000 CCS A
020228,000038: 16,2016 12166 TCF MOREIDLE
020229,000039:
020230,000040: 16,2017 37752 CAF BIT10 # BIT10 OF 30 IS PNGCS CONTROL OF S/C
020231,000041: 16,2020 00006 EXTEND
020232,000042: 16,2021 02030 RAND 30 # BITS IN 30 ARE INVERTED
020233,000043: 16,2022 10000 CCS A
020234,000044: 16,2023 12166 TCF MOREIDLE
020235,000045:
020236,000046: 16,2024 00006 EXTEND
020237,000047: 16,2025 00031 READ 31 # IF BOTH BIT13 AND BIT14 ARE ONE
020238,000048: 16,2026 40000 COM # THEN MODE SELECT SWITCH IS IN OFF
020239,000049: 16,2027 75210 MASK BIT13-14 # POSITION.
020240,000050: 16,2030 00006 EXTEND
020241,000051: 16,2031 12166 BZF MOREIDLE # HENCE DAP SHOULD BE OFF.
020242,000052:
020243,000053: 16,2032 37751 CAF GODAPGO
020244,000054: 16,2033 70077 MASK DAPBOOLS
020245,000055: 16,2034 00006 EXTEND
020246,000056: 16,2035 12166 BZF MOREIDLE
020247,000057:
020248,000058: 16,2036 00002 RETURN
020249,000059:
![]() |
Page 488 |
020251,000061: # DAPIDLER ENTRY.
020252,000062:
020253,000063: 16,2037 22016 DAPIDLER LXCH BANKRUPT # INTERRUPT LEAD INS (CONTINUED)
020254,000064: # START CODING FOR MODULE 3 REMAKE, AUGUST 1967***START CODING FOR MODULE 3 REMAKE, AUGUST 1967*******************
020255,000065: 16,2040 13627 TCF T5IDLERI
020256,000066: 16,2041 04736 TC CCSHOLE
020257,000067:
020258,000068: 16,2042 37761 DAPIDLEI CAF DATAGOOD
020259,000069: # **END CODING FOR MODULE 3 REMAKE, AUGUST 1967*****END CODING FOR MODULE 3 REMAKE, AUGUST 1967*******************
020260,000070:
020261,000071: 16,2043 70077 MASK DAPBOOLS
020262,000072: 16,2044 00006 EXTEND
020263,000073: 16,2045 12207 BZF TESTMASS
020264,000074: 16,2046 02005 TC CHEKBITS # CHECK TO SEE IF LM DAP IS TO GO ON.
020265,000075:
020266,000076: 16,2047 05270 STARTDAP TC IBNKCALL
020267,000077: 16,2050 40114 FCADR STOPRATE
020268,000078: 16,2051 37767 CAF ZERO # ********** INITIALIZE: **********
020269,000079: 16,2052 54031 TS TIME6 # T6RUPT CLOCK
020270,000080: 16,2053 55611 TS TP # RATE DERIVATION DTS
020271,000081: 16,2054 55612 TS TQR
020272,000082: 16,2055 55605 TS JETRATEQ # Q,R JETRATES USED IN Q,R-AXES BEFORE
020273,000083: 16,2056 55606 TS JETRATER # BEING SET, GIVEN TQR ZERO.
020274,000084: 16,2057 55463 TS LASTPER # ATTITUDE ERROR RECORDS FOR EIGHTBALL.
020275,000085: 16,2060 55464 TS LASTQER
020276,000086: 16,2061 55465 TS LASTRER
020277,000087: 16,2062 55466 TS PERROR
020278,000088: 16,2063 55467 TS QERROR
020279,000089: 16,2064 55470 TS RERROR
020280,000090: 16,2065 55415 TS OMEGAP # RATES IN BODY (PILOT) COORDINATES.
020281,000091: 16,2066 55416 TS OMEGAQ
020282,000092: 16,2067 55420 TS OMEGAR
020283,000093: 16,2070 55002 TS T6NEXT # JTLST VARIABLES.
020284,000094: 16,2071 55003 TS T6NEXT +1
020285,000095: 16,2072 55473 TS ADDT6JTS
020286,000096: 16,2073 55474 TS ADDTLT6
020287,000097: 16,2074 55007 TS DELAYCTR # MINIMUM IMPULSE RHC MODE COUNTER.
020288,000098: 16,2075 55417 TS ALPHAQ # DESCENT ACCELERATION ESTIMATES.
020289,000099: 16,2076 55421 TS ALPHAR
020290,000100: 16,2077 55515 TS DISPLACT # EIGHTBALL ROUTINE SWITCH.
020291,000101: 16,2100 55642 TS (1-K) # K=1 FIRST PASS.
020292,000102:
020293,000103: # START CODING FOR MODULE 3 REMAKE, AUGUST 1967***START CODING FOR MODULE 3 REMAKE, AUGUST 1967*******************
020294,000104:
020295,000105: 16,2101 12455 INSRT16B TCF PROTCTOR # RESTART PROTECT ENGINE-ON AND GIMBAL
020296,000106: # DRIVE BITS.
020297,000107: # **END CODING FOR MODULE 3 REMAKE, AUGUST 1967*****END CODING FOR MODULE 3 REMAKE, AUGUST 1967*******************
020298,000108:
020299,000109: 16,2102 37762 CAF BIT2 # CHECK FOR STAGE
020300,000110: 16,2103 00006 EXTEND
020301,000111:
![]() |
Page 489 |
020303,000113: 16,2104 02030 RAND 30
020304,000114: 16,2105 00006 EXTEND
020305,000115: 16,2106 12117 BZF +9D # (BRANCH FOR ASCENT.)
020306,000116:
020307,000117: 16,2107 37767 CAF ZERO # 1/ACCS BRANCHING VALUE IS ZERO FOR
020308,000118: 16,2110 55655 TS -.06R/S2 # DESCENT LM DAP.
020309,000119:
020310,000120: 16,2111 00006 EXTEND # SET DESCENT URGENCY LIMIT = 1.5 SECONDS
020311,000121: 16,2112 32251 DCA URGLMDWN # AS BOUND TO USE MAXIMUM JETS.
020312,000122: 16,2113 53477 DXCH URGLMS
020313,000123: 16,2114 00006 EXTEND # RATE ERROR LIMIT W/MIN JETS: 1.4 DEG/SEC
020314,000124: 16,2115 32245 DCA RCOMDOWN # RATE ERROR DB W/MIN JETS: 0.4 DEG/SEC
020315,000125: 16,2116 12126 TCF +8D
020316,000126:
020317,000127: 16,2117 32254 +9D CAF ACCLIMIT # 1/ACCS BRANCHING VALUE MUST BE
020318,000128: 16,2120 55655 TS -.06R/S2 # 0.06 RADIANS/SECOND(2) FOR ASCENT DAP.
020319,000129:
020320,000130: 16,2121 00006 EXTEND # SET ASCENT URGENCY LIMIT = .25 SECONDS
020321,000131: 16,2122 32253 DCA URGLMUP # AS BOUND TO USE MAXIMUM JETS.
020322,000132: 16,2123 53477 DXCH URGLMS
020323,000133: 16,2124 00006 EXTEND # RATE ERROR LIMIT W/MIN JETS: 2.0 DEG/SEC
020324,000134: 16,2125 32247 DCA RCOMNDUP # RATE ERROR DB W/MIN JETS: 1.0 DEG/SEC
020325,000135: 16,2126 53501 +8D DXCH -2JETLIM
020326,000136:
020327,000137: # SET UP "OLD" MEASURED CDU ANGLES:
020328,000138:
020329,000139: 16,2127 00006 EXTEND
020330,000140: 16,2130 30033 DCA CDUX # OLDXFORP AND OLDYFORP
020331,000141: 16,2131 53426 DXCH OLDXFORP
020332,000142: 16,2132 00006 EXTEND
020333,000143: 16,2133 30034 DCA CDUY # OLDYFORQ AND OLDZFORQ
020334,000144: 16,2134 53430 DXCH OLDYFORQ
020335,000145:
020336,000146: 16,2135 32230 CAF 0.62170
020337,000147: 16,2136 55455 TS 4JETTORK
020338,000148: 16,2137 32231 CAF .68387 # 2200 FT LBS. SCALED AT 2(10) X PI.
020339,000149: 16,2140 55456 TS JETTORK4 # QR AXIS JET TORQUE FOR 4 JETS.
020340,000150: # SET UP THE TORQUE VECTOR RECONSTRUCTION SWITCHES:
020341,000151:
020342,000152: 16,2141 00006 EXTEND
020343,000153: 16,2142 32241 DCA VISNORMQ # PJUMPADR AND QJUMPADR
020344,000154: 16,2143 53653 DXCH PJUMPADR
020345,000155:
020346,000156: # SET SWITCH TO SKIP Q,R-TJETLAW SQUARE ROOT:
020347,000157:
020348,000158: # SET UP INITIAL VALUES FOR WFORP AND WFORQR:
020349,000159:
020350,000160: 16,2144 00006 EXTEND # SCALED AT 16:
020351,000161: 16,2145 32243 DCA WFORPQRK # WFORP = K/DT = K/.1 = 1/.1 = 0.625
020352,000162: 16,2146 53641 DXCH WFORP # WFORQR = K/DT = K/.15 = 1/.15 = 0.41667
020353,000163:
![]() |
Page 490 |
020355,000165: # SET UP WAITLIST CALL TO RESET WFORP AND WFORQR:
020356,000166:
020357,000167: 16,2147 32236 CAF 180MS
020358,000168: 16,2150 05663 TC WAITLIST
020359,000169: 16,2151 E6,1641 EBANK= WFORQR
020360,000170: 16,2151 03435 40066 2CADR WCHANGER
020361,000171:
020362,000172: 16,2153 00006 EXTEND # SET UP P-AXIS TO GO TO DUMMYFIL
020363,000173: 16,2154 32225 DCA DF2CADR
020364,000174: 16,2155 53573 DXCH PFILTADR
020365,000175:
020366,000176: 16,2156 00006 EXTEND
020367,000177: 16,2157 32223 DCA PAXADIDL
020368,000178: 16,2160 53001 DXCH T5ADR
020369,000179: 16,2161 32226 SETTIME5 CAF MS100
020370,000180: 16,2162 54030 TS TIME5
020371,000181: 16,2163 15733 TCF RESUME
020372,000182: 16,2164 E6,1542 EBANK= DT
020373,000183: 16,2164 02037 34066 IDLERADR 2CADR DAPIDLER
020374,000184: 16,2166 42222 MOREIDLE CS PAXADIDL # DAP SHOULD BE OFF
020375,000185: 16,2167 61000 AD T5ADR
020376,000186: 16,2170 00006 EXTEND
020377,000187: 16,2171 12176 BZF SHUTDOWN # CHECK TO SEE WHETHER THIS IS FROM P-AXIS
020378,000188:
020379,000189: 16,2172 00006 SETT5ADR EXTEND
020380,000190: 16,2173 32165 DCA IDLERADR
020381,000191: 16,2174 53001 DXCH T5ADR
020382,000192: 16,2175 12161 TCF SETTIME5
020383,000193:
020384,000194: 16,2176 37767 SHUTDOWN CAF ZERO # COMMAND JETS OFF
020385,000195: 16,2177 00006 EXTEND
020386,000196: 16,2200 01005 WRITE 5
020387,000197: 16,2201 00006 EXTEND
020388,000198: 16,2202 01006 WRITE 6
020389,000199:
020390,000200: 16,2203 42220 CS BGIM23 # TURN TRIM GIMBAL OFF
020391,000201: 16,2204 00006 EXTEND
020392,000202: 16,2205 03012 WAND 12
020393,000203:
020394,000204: 16,2206 12172 TCF SETT5ADR
020395,000205: 16,2207 37750 TESTMASS CAF MASSGOOD
020396,000206: 16,2210 70077 MASK DAPBOOLS
020397,000207: 16,2211 00006 EXTEND
020398,000208: 16,2212 12166 BZF MOREIDLE
020399,000209:
020400,000210: 16,2213 35655 CAF PRIO34
020401,000211: 16,2214 05505 TC NOVAC
020402,000212: 16,2215 E6,1542 EBANK= DT
020403,000213: 16,2215 02713 54066 2BCADR 1/ACCS
020404,000214:
![]() |
Page 491 |
020406,000216: 16,2217 12172 TCF SETT5ADR
020407,000217: 16,2220 07400 BGIM23 OCTAL 07400
020408,000218: 16,2221 26501 .707P DEC .70711 # SQUARE ROOT OF 1/2
020409,000219: 16,2222 E6,1415 EBANK= OMEGAP
020410,000220: 16,2222 02255 34066 PAXADIDL 2CADR PAXIS
020411,000221:
020412,000222: 16,2224 E6,1417 EBANK= ALPHAQ
020413,000223: 16,2224 03642 34066 DF2CADR 2CADR DUMMYFIL
020414,000224:
020415,000225: 16,2226 37766 MS100 OCTAL 37766
020416,000226: 16,2227 00033 0.00167 DEC 0.00167
020417,000227: 16,2230 23712 0.62170 DEC 0.62170
020418,000228: 16,2231 25705 .68387 DEC 0.68387
020419,000229: 16,2232 12000 0.31250 DEC 0.31250
020420,000230:
020421,000231: 16,2233 02215 DELTADOT DEC 0.07111 # 0.2 DEG/SEC SCALED AT PI/64
020422,000232: 16,2234 11643 .5ACCMIN DEC 0.30680
020423,000233: 16,2235 00033 DBMNMP DEC 0.00167 # .3 DEGREES SCALED AT PI RADIANS
020424,000234: # TORQUE AND WEIGHTING CONSTANTS:
020425,000235:
020426,000236: 16,2236 00022 180MS DEC 18 B-14 # 180 MS WAITLIST DT.
020427,000237: 16,2237 02315 .075DEC DEC 0.075 # 100 MS JET PULSE TORQUE TERM WITH K = .5
020428,000238: 16,2240 02404 VISNORMQ GENADR CHKVISFZ # D.P. GENADR FOR INITIALIZATION OF THE
020429,000239: 16,2241 02106 GENADR NORMALQ # TORQUE VECTOR RECONSTRUCTION SWITCHES.
020430,000240: 16,2242 24000 10AT16 DEC 0.625 # INITIAL VALUE FOR WFORP.
020431,000241: 16,2243 15253 6.6AT16 DEC 0.41667 # INITIAL VALUE FOR WFORQR.
020432,000242: 16,2244 16,2242 WFORPQRK EQUALS 10AT16 # D.P. NAME FOR BOTH CONSTANTS
020433,000243:
020434,000244:
020435,000245:
020436,000246: 16,2244 77001 RCOMDOWN OCTAL 77001 # -1.4 DEG/SEC SCALED AT PI/4 RADIANS/SEC.
020437,000247: 16,2245 77555 OCTAL 77555 # -0.4 DEG/SEC SCALED AT PI/4 RADIANS/SEC.
020438,000248: 16,2246 76447 RCOMNDUP OCTAL 76447 # -2.0 DEG/SEC SCALED AT PI/4 RADIANS/SEC.
020439,000249: 16,2247 77223 OCTAL 77223 # -1.0 DEG/SEC SCALED AT PI/4 RADIANS/SEC.
020440,000250: 16,2250 77717 URGLMDWN DEC -.00293 # -1.5 SECONDS SCALED AT 2(+9).
020441,000251: 16,2251 74777 DEC -.09375 # -1.5 SECONDS SCALED AT 2(+4).
020442,000252: 16,2252 77767 URGLMUP DEC -0.25 B-9 # -0.25 SECONDS SCALED AT 2(+9).
020443,000253: 16,2253 77377 DEC -0.25 B-4 # -0.25 SECONDS SCALED AT 2(+4).
020444,000254: 16,2254 76615 ACCLIMIT DEC -0.03820 # -.06 RADIANS/SECOND(2) SCALED AT PI/2.
End of include-file DAPIDLER_PROGRAM.agc. Parent file is MAIN.agc