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. |
020068,000002: ## Copyright: Public domain.
020069,000003: ## Filename: DAPIDLER_PROGRAM.agc
020070,000004: ## Purpose: A section of Sunburst revision 37, or Shepatin revision 0.
020071,000005: ## It is part of an early development version of the software
020072,000006: ## for Apollo Guidance Computer (AGC) on the unmanned Lunar
020073,000007: ## Module (LM) flight Apollo 5. Sunburst 37 was the program
020074,000008: ## upon which Don Eyles's offline development program Shepatin
020075,000009: ## was based; the listing herein transcribed was actually for
020076,000010: ## the equivalent revision 0 of Shepatin.
020077,000011: ## This file is intended to be a faithful transcription, except
020078,000012: ## that the code format has been changed to conform to the
020079,000013: ## requirements of the yaYUL assembler rather than the
020080,000014: ## original YUL assembler.
020081,000015: ## Reference: pp. 463-467
020082,000016: ## Assembler: yaYUL
020083,000017: ## Contact: Ron Burkey <info@sandroid.org>.
020084,000018: ## Website: www.ibiblio.org/apollo/index.html
020085,000019: ## Mod history: 2017-05-24 MAS Created from Sunburst 120.
020086,000020: ## 2017-05-30 HG Transcribed
020087,000021: ## 2017-06-03 HG Add missing constant DGBF
020088,000022: ## 2017-06-22 RSB Proofed comment text with
020089,000023: ## octopus/ProoferComments.
020090,000024:
Page 463 |
020092,000026: # THE DAPIDLER PROGRAM IS STARTED BY FRESH START AND RESTART. THE DAPIDLER PROGRAM IS DONE 10 TIMES
020093,000027: # PER SECOND UNTIL THE ASTRONAUT DESIRES THE DAP TO WAKE UP, AND THE IMU AND CDUS ARE READY FOR USE BY THE DAP.
020094,000028: # THE NECESSARY INITIALIZATION OF THE DAP IS DONE BY THE DAPIDLER PROGRAM.
020095,000029: # ADDITIONAL WORK MUST BE DONE ON DAPIDLER IN THE FUTURE.
020096,000030:
020097,000031:
020098,000032:
020099,000033: 16,2104 BANK 16
020100,000034: 16,2104 E6,1541 EBANK= DT
020101,000035:
020102,000036: 16,2104 37750 CHEKBITS CAF BIT6
020103,000037: 16,2105 70365 MASK IMODES30
020104,000038: 16,2106 10000 CCS A
020105,000039: 16,2107 12305 TCF MOREIDLE
020106,000040:
020107,000041: 16,2110 37752 CAF BIT4
020108,000042: 16,2111 67751 AD BIT5
020109,000043: 16,2112 00006 EXTEND
020110,000044: 16,2113 02012 RAND 12
020111,000045:
020112,000046: 16,2114 10000 CCS A
020113,000047: 16,2115 12305 TCF MOREIDLE
020114,000048:
020115,000049: 16,2116 37744 CAF BIT10 # BIT10 OF 30 IS PNGCS CONTROL OF S/C
020116,000050: 16,2117 00006 EXTEND
020117,000051: 16,2120 02030 RAND 30 # BITS IN 30 ARE INVERTED
020118,000052: 16,2121 10000 CCS A
020119,000053: 16,2122 12305 TCF MOREIDLE
020120,000054:
020121,000055: 16,2123 00006 EXTEND
020122,000056: 16,2124 00031 READ 31 # IF BOTH BIT13 AND BIT14 ARE ONE
020123,000057: 16,2125 40000 COM # THEN MODE SELECT SWITCH IS IN OFF
020124,000058: 16,2126 75226 MASK BIT13-14 # POSITION.
020125,000059: 16,2127 00006 EXTEND
020126,000060: 16,2130 12305 BZF MOREIDLE # HENCE DAP SHOULD BE OFF.
020127,000061:
020128,000062: 16,2131 37743 CAF GODAPGO
020129,000063: 16,2132 70077 MASK DAPBOOLS
020130,000064: 16,2133 00006 EXTEND
020131,000065: 16,2134 12305 BZF MOREIDLE
020132,000066:
020133,000067: 16,2135 00002 RETURN
020134,000068:
Page 464 |
020136,000070: # DAPIDLER ENTRY.
020137,000071:
020138,000072: 16,2136 22016 DAPIDLER LXCH BANKRUPT # INTERRUPT LEAD INS (CONTINUED)
020139,000073: 16,2137 00006 EXTEND
020140,000074: 16,2140 22012 QXCH QRUPT
020141,000075:
020142,000076: 16,2141 02104 TC CHEKBITS # CHECK TO SEE IF LM DAP IS TO GO ON.
020143,000077:
020144,000078: # THIS SUBROUTINE CALL PERFORMS THE FOLLOWING INITIALIZATION FUNCTIONS:
020145,000079: # 1. THE DESIRED RATE VECTOR IS ZEROED.
020146,000080: # 2. THE DELCDU VECTOR IS ZEROED.
020147,000081: # 3. THE DESIRED CDU REGISTERS ARE SET EQUAL TO THE CDU REGISTERS.
020148,000082:
020149,000083: 16,2142 02057 STARTDAP TC STOPRATE # USE DAP INTERFACE SUBROUTINE
020150,000084:
020151,000085: # THIS SUBROUTINE CALL PERFORMS THE FOLLOWING INITIALIZATION FUNCTIONS:
020152,000086: # 1. THE MINIMUM IMPULSE DEADBANDS ARE SET.
020153,000087: # 2. THE OFFSET ACCELERATION ESTIMATES ARE ZEROED.
020154,000088: # 3. THE RATE DERIVATION ACCELERATION TERMS ARE ZEROED.
020155,000089: # 4. THE NJ FLAGS ARE CLEARED.
020156,000090: # 5. THE URGENCY FUNCTION CORRECTION RATIOS ARE SET TO ONE.
020157,000091:
020158,000092: 16,2143 05307 TC IBNKCALL
020159,000093: 16,2144 40057 FCADR ALLCOAST
020160,000094:
020161,000095: 16,2145 37761 CAF ZERO # ********** INITIALIZE: **********
020162,000096:
020163,000097: 16,2146 54031 TS TIME6 # T6RUPT CLOCK
020164,000098: 16,2147 55610 TS TP # RATE DERIVATION DTS
020165,000099: 16,2150 55611 TS TQR
020166,000100: 16,2151 55463 TS LASTPER # ATTITUDE ERROR RECORDS FOR EIGHTBALL.
020167,000101: 16,2152 55464 TS LASTQER
020168,000102: 16,2153 55465 TS LASTRER
020169,000103: 16,2154 55466 TS PERROR
020170,000104: 16,2155 55467 TS QERROR
020171,000105: 16,2156 55470 TS RERROR
020172,000106: 16,2157 55416 TS OMEGAP # RATES IN BODY (PILOT) COORDINATES.
020173,000107: 16,2160 55417 TS OMEGAQ
020174,000108: 16,2161 55421 TS OMEGAR
020175,000109: 16,2162 55002 TS T6NEXT # JTLST VARIABLES.
020176,000110: 16,2163 55003 TS T6NEXT +1
020177,000111: 16,2164 55473 TS ADDT6JTS
020178,000112: 16,2165 55474 TS ADDTLT6
020179,000113: 16,2166 55007 TS DELAYCTR # MINIMUM IMPULSE RHC MODE COUNTER.
020180,000114: 16,2167 55420 TS ALPHAQ # DESCENT ACCELERATION ESTIMATES.
020181,000115: 16,2170 55422 TS ALPHAR
020182,000116: 16,2171 55514 TS DISPLACT # EIGHTBALL ROUTINE SWITCH.
020183,000117: 16,2172 55636 TS (1-K) # K=1 FIRST PASS.
020184,000118: 16,2173 55637 TS (1-K)/8
020185,000119:
020186,000120: 16,2174 55502 TS CH5MASK # TEMP. INIT. FOR FAILURE MONITOR
020187,000121:
Page 465 |
020189,000123: 16,2175 55503 TS CH6MASK
020190,000124:
020191,000125:
020192,000126:
020193,000127: # SET UP "OLD" MEASURED CDU ANGLES:
020194,000128:
020195,000129: 16,2176 00006 EXTEND
020196,000130: 16,2177 30033 DCA CDUX # OLDXFORP AND OLDYFORP
020197,000131:
020198,000132: 16,2200 53427 DXCH OLDXFORP
020199,000133: 16,2201 00006 EXTEND
020200,000134: 16,2202 30034 DCA CDUY # OLDYFORQ AND OLDZFORQ
020201,000135: 16,2203 53431 DXCH OLDYFORQ
020202,000136:
020203,000137: 16,2204 32331 CAF 0.62170
020204,000138: 16,2205 55455 TS 4JETTORK
020205,000139: 16,2206 32332 CAF .68387 # 2200 FT LBS. SCALED AT 2(10) X PI.
020206,000140: 16,2207 55456 TS JETTORK4 # QR AXIS JET TORQUE FOR 4 JETS.
020207,000141: # SET UP THE TORQUE VECTOR RECONSTRUCTION SWITCHES:
020208,000142:
020209,000143: 16,2210 00006 EXTEND
020210,000144: 16,2211 32343 DCA VISNORMQ # PJUMPADR AND QJUMPADR
020211,000145: 16,2212 53647 DXCH PJUMPADR
020212,000146:
020213,000147: # SET UP INITIAL VALUES FOR WFORP AND WFORQR:
020214,000148:
020215,000149: 16,2213 00006 EXTEND # SCALED AT 16:
020216,000150: 16,2214 32345 DCA WFORPQRK # WFORP = K/DT = K/.1 = 1/.1 = 0.625
020217,000151: 16,2215 53635 DXCH WFORP # WFORQR = K/DT = K/.15 = 1/.15 = 0.41667
020218,000152:
020219,000153: # SET UP WAITLIST CALL TO RESET WFORP AND WFORQR:
020220,000154:
020221,000155: 16,2216 32340 CAF 180MS
020222,000156: 16,2217 05701 TC WAITLIST
020223,000157: 16,2220 E6,1635 EBANK= WFORQR
020224,000158: 16,2220 03322 40006 2CADR WCHANGER
020225,000159:
020226,000160: 16,2222 37755 CAF ONE
020227,000161: 16,2223 05701 TC WAITLIST
020228,000162: 16,2224 E6,1452 EBANK= IXX
020229,000163: 16,2224 02441 54006 2CADR IXXTASK
020230,000164:
020231,000165: 16,2226 37755 CA ONE
020232,000166: 16,2227 05701 TC WAITLIST
020233,000167: 16,2230 E6,1453 EBANK= IYY
020234,000168: 16,2230 02452 54006 2CADR IYYTASK
020235,000169:
020236,000170: 16,2232 37755 CA ONE
020237,000171: 16,2233 05701 TC WAITLIST
020238,000172: 16,2234 E6,1454 EBANK= IZZ
020239,000173: 16,2234 02463 54006 2CADR IZZTASK
020240,000174:
Page 466 |
020242,000176: # THIS SECTION COMPUTES THE RATE OF CHANGE OF ACCELERATION DUE TO THE
020243,000177: # ROTATION OF THE GIMBAL ENGINE. THE EQUATION IMPLEMENTED IN BOTH THE
020244,000178: # Y-X PLANE AND THE Z-X PLANE IS -- D(ALPHA)/DT = T L/I * D(DELTA)/DT
020245,000179: # WHERE ----
020246,000180: # T = ENGINE THRUST COMMAND
020247,000181: # L = PIVOT TO CG DISTANCE OF THE GIMBAL ENGINE
020248,000182: # I = INERTIA
020249,000183: # DELTA = GIMBAL ENGINE ANGLE MEASURED FROM THE X AXIS.
020250,000184:
020251,000185: 16,2236 32334 CAF DELTADOT # 0.2 DEG/SEC SCALED AT PI/64
020252,000186: 16,2237 00006 EXTEND
020253,000187: 16,2240 71451 MP L,PVT-CG # GIMBAL PIVOT TO C.G. DISTANCE ,SCALE=8.
020254,000188: 16,2241 00006 EXTEND
020255,000189: 16,2242 71523 MP THRSTCMD # COMMANDED THRUST SCALED AT 2(14) =16384.
020256,000190:
020257,000191: 16,2243 52062 DXCH ITEMP1
020258,000192: 16,2244 00006 EXTEND
020259,000193: 16,2245 30062 DCA ITEMP1
020260,000194: 16,2246 00006 EXTEND
020261,000195: 16,2247 11454 DV IZZ # AT 2(18)
020262,000196: 16,2250 55533 TS ACCDOTR # AT PI/2(7)
020263,000197: 16,2251 52062 DXCH ITEMP1
020264,000198: 16,2252 00006 EXTEND
020265,000199: 16,2253 11453 DV IYY # AT 2(18)
020266,000200: 16,2254 55531 TS ACCDOTQ # AT PI/2(7)
020267,000201:
020268,000202: 16,2255 00006 EXTEND # .3ACCDOTQ AT PI/2(8)
020269,000203: 16,2256 72335 MP DGBF
020270,000204: 16,2257 55525 TS KQ
020271,000205: 16,2260 00006 EXTEND
020272,000206: 16,2261 70000 SQUARE
020273,000207: 16,2262 55526 TS KQ2 # KQ(2)
020274,000208:
020275,000209: 16,2263 31533 CAE ACCDOTR # .3ACCDOTR AT PI/2(8)
020276,000210: 16,2264 00006 EXTEND
020277,000211: 16,2265 72335 MP DGBF
020278,000212: 16,2266 55527 TS KRDAP
020279,000213: 16,2267 00006 EXTEND
020280,000214:
020281,000215: 16,2270 70000 SQUARE
020282,000216: 16,2271 55530 TS KR2
020283,000217:
020284,000218:
020285,000219: 16,2272 00006 EXTEND # SET UP P-AXIS TO GO TO DUMMYFIL
020286,000220: 16,2273 32326 DCA DF2CADR
020287,000221: 16,2274 53572 DXCH PFILTADR
020288,000222:
020289,000223: 16,2275 00006 EXTEND
020290,000224: 16,2276 32324 DCA PAXADIDL
020291,000225: 16,2277 53001 DXCH T5ADR
020292,000226: 16,2300 32327 SETTIME5 CAF MS100
020293,000227: 16,2301 54030 TS TIME5
020294,000228: 16,2302 15751 TCF RESUME
020295,000229:
Page 467 |
020297,000231: 16,2303 E6,1541 EBANK= DT
020298,000232: 16,2303 02136 34006 IDLERADR 2CADR DAPIDLER # DAP SHOULD BE OFF
020299,000233: 16,2305 00006 MOREIDLE EXTEND
020300,000234: 16,2306 32304 DCA IDLERADR
020301,000235: 16,2307 53001 DXCH T5ADR
020302,000236:
020303,000237: 16,2310 37761 CAF ZERO # COMMAND JETS OFF
020304,000238: 16,2311 00006 EXTEND
020305,000239: 16,2312 01005 WRITE 5
020306,000240: 16,2313 00006 EXTEND
020307,000241: 16,2314 01006 WRITE 6
020308,000242:
020309,000243: 16,2315 42321 CS BGIM23 # TURN TRIM GIMBAL OFF
020310,000244: 16,2316 00006 EXTEND
020311,000245: 16,2317 03012 WAND 12
020312,000246:
020313,000247: 16,2320 12300 TCF SETTIME5
020314,000248:
020315,000249: 16,2321 07400 BGIM23 OCTAL 07400
020316,000250: 16,2322 26501 .707P DEC .70711 # SQUARE ROOT OF 1/2
020317,000251: 16,2323 E6,1416 EBANK= OMEGAP
020318,000252: 16,2323 02346 34006 PAXADIDL 2CADR PAXIS
020319,000253:
020320,000254: 16,2325 E6,1420 EBANK= ALPHAQ
020321,000255: 16,2325 03631 34006 DF2CADR 2CADR DUMMYFIL
020322,000256:
020323,000257: 16,2327 37766 MS100 OCTAL 37766
020324,000258: 16,2330 00033 0.00167 DEC 0.00167
020325,000259: 16,2331 23712 0.62170 DEC 0.62170
020326,000260: 16,2332 25705 .68387 DEC 0.68387
020327,000261: 16,2333 12000 0.31250 DEC 0.31250
020328,000262:
020329,000263: 16,2334 02215 DELTADOT DEC 0.07111 # 0.2 DEG/SEC SCALED AT PI/64
020330,000264: 16,2335 23146 DGBF DEC 0.6
020331,000265: 16,2336 11643 .5ACCMIN DEC 0.30680
020332,000266: 16,2337 00033 DBMNMP DEC 0.00167 # .3 DEGREES SCALED AT PI RADIANS
020333,000267: # TORQUE AND WEIGHTING CONSTANTS:
020334,000268:
020335,000269: 16,2340 00022 180MS DEC 18 B-14 # 180 MS WAITLIST DT.
020336,000270: 16,2341 02315 .075DEC DEC 0.075 # 100 MS JET PULSE TORQUE TERM WITH K = .5
020337,000271: 16,2342 02454 VISNORMQ GENADR CHKVISFZ # D.P. GENADR FOR INITIALIZATION OF THE
020338,000272: 16,2343 02077 GENADR NORMALQ # TORQUE VECTOR RECONSTRUCTION SWITCHES.
020339,000273:
020340,000274: 16,2344 24000 10AT16 DEC 0.625 # INITIAL VALUE FOR WFORP.
020341,000275: 16,2345 15253 6.6AT16 DEC 0.41667 # INITIAL VALUE FOR WFORQR.
020342,000276: 16,2346 16,2344 WFORPQRK EQUALS 10AT16 # D.P. NAME FOR BOTH CONSTANTS.
End of include-file DAPIDLER_PROGRAM.agc. Parent file is MAIN.agc