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