Source Code
These source-code files are part of a reconstructed copy of Comanche 67, the
Apollo Guidance Computer (AGC) Command Module (CM) software for Apollo 12.
They have been adapted from sources files for Comanche 55, and updated via disassembly of binary dumps of original core rope memory modules, part numbers 2003972-1081, 2003972-1091, 2003972-1111, 2003972-1121, 2003972-1131, and 2003972-1141. Since only binary dumps (rather than listings) of Comanche 67 are available as source material, all comments and labels are approximate. They have been taken from other AGC programs where possible, or, in some places, written from scratch to match what we believe would have been in the original listing. |
042682,000002: ## Copyright: Public domain.
042683,000003: ## Filename: RCS-CSM_DIGITAL_AUTOPILOT.agc
042684,000004: ## Purpose: A section of Comanche revision 067.
042685,000005: ## It is part of the reconstructed source code for the flight
042686,000006: ## software for the Command Module's (CM) Apollo Guidance Computer
042687,000007: ## (AGC) for Apollo 12. No original listings of this program are
042688,000008: ## available; instead, this file was created via dissassembly of
042689,000009: ## dumps of Comanche 067 core rope modules and comparison with
042690,000010: ## other AGC programs.
042691,000011: ## Assembler: yaYUL
042692,000012: ## Contact: Ron Burkey <info@sandroid.org>.
042693,000013: ## Website: www.ibiblio.org/apollo/index.html
042694,000014: ## Mod history: 2023-08-16 MAS Created from Comanche 055.
042695,000015:
042696,000016: # T5 INTERRUPT PROGRAM FOR THE RCS-CSM AUTOPILOT
042697,000017:
042698,000018: # START OF T5 INTERRUPT PROGRAM
042699,000019:
042700,000020: 20,3651 BANK 20
042701,000021: 21,2000 SETLOC DAPS3
042702,000022: 21,2000 BANK
042703,000023:
042704,000024: 21,2117 COUNT 21/DAPRC
042705,000025:
042706,000026: 21,2117 E6,1510 EBANK= KMPAC
042707,000027: 21,2117 22016 REDORCS LXCH BANKRUPT # RESTART OF AUTOPILOT COMES HERE
042708,000028: 21,2120 31465 CA T5PHASE # ON A T5 RUPT.
042709,000029: 21,2121 00006 EXTEND
042710,000030: 21,2122 62124 BZMF +2 # IF T5PHASE +0, -0, OR -, RESET TO -
042711,000031: 21,2123 12126 TCF +3 # IF T5PHASE +, LEAVE IT +. DO A FRESHDAP
042712,000032: 21,2124 45033 CS ONE
042713,000033: 21,2125 55465 TS T5PHASE
042714,000034: 21,2126 00006 EXTEND
042715,000035: 21,2127 32133 DCA RCSLOC
042716,000036: 21,2130 53313 DXCH T5LOC # HOOK UP T5RUPT TO AUTOPILOT
042717,000037: 21,2131 12135 TCF RCSATT +1
042718,000038: 21,2132 E6,1510 EBANK= KMPAC
042719,000039: 21,2132 02134 42066 RCSLOC 2CADR RCSATT
042720,000040:
042721,000041: 21,2134 22016 RCSATT LXCH BANKRUPT # SAVE BB
042722,000042: 21,2135 00006 EXTEND # SAVE Q
042723,000043: 21,2136 22012 QXCH QRUPT
042724,000044: 21,2137 35015 CAF BIT15 # BIT15 CHAN31 = 0 IF IMU POWER IS ON AND
042725,000045: 21,2140 00006 EXTEND # S/C CONT SW IS IN CMC (I.E. IF G/C AUTO
042726,000046: 21,2141 02031 RAND CHAN31 # PILOT IS FULLY ENABLED)
042727,000047: 21,2142 00006 EXTEND
042728,000048: 21,2143 12172 BZF SETT5 # IF G/C AUTOPILOT IS FULLY ENABLED,
042729,000049: # GO TO SETT5
042730,000050:
042731,000051: 21,2144 41501 CS RCSFLAGS # IF G/C AUTOPILOT IS NOT FULLY ENABLED,
042732,000052: 21,2145 75016 MASK BIT14
042733,000053: 21,2146 27501 ADS RCSFLAGS # SET NORATE FLAG,
042734,000054: 21,2147 35013 CAF POSMAX
042735,000055: 21,2150 55332 TS HOLDFLAG # SET HOLDFLAG +,
042736,000056: 21,2151 35035 CAF ZERO # ZERO ERRORX, ERRORY, AND ERRORZ,
042737,000057: 21,2152 55567 TS ERRORX
042738,000058: 21,2153 55570 TS ERRORY
042739,000059: 21,2154 55571 TS ERRORZ
042740,000060: 21,2155 35016 CAF BIT14
042741,000061: 21,2156 00006 EXTEND
042742,000062: 21,2157 02031 RAND CHAN31 # AND CHECK FREE FUNCTION (BIT14 CHAN31).
042743,000063: 21,2160 00006 EXTEND
042744,000064: 21,2161 12172 BZF SETT5 # IF IN FREE MODE, GO TO SETT5.
042745,000065:
042746,000066: 21,2162 55465 TS T5PHASE # IF NOT IN FREE MODE,
042747,000067: 21,2163 37676 CAF OCT37766 # SCHEDULE REINITIALIZATION (FRESHDAP)
042748,000068: 21,2164 54030 TS TIME5 # IN 100 MS VIA T5RUPT
042749,000069:
042750,000070: 21,2165 02644 TCR ZEROJET # ZERO JET CHANNELS IN 14 MS VIA ZEROJET
042751,000071:
042752,000072: 21,2166 12362 TCF KMATRIX
042753,000073: 21,2167 37770 DELTATT OCT 37770 # 80MS (TIME5)
042754,000074: 21,2170 37776 DELTATT2 OCT 37776 # 20MS (TIME5)
042755,000075: 21,2171 37634 ONESEK DEC 16284 B-14 # 1 SEC(TIME5)
042756,000076: 21,2172 CHAN5 EQUALS 5
042757,000077: 21,2172 CHAN6 EQUALS 6
042758,000078: 21,2172 7671 PRIO34A = PRIO34
042759,000079:
042760,000080: # CHECK PHASE OF T5 PROGRAM
042761,000081:
042762,000082: # BECAUSE OF THE LENGTH OF THE T5 PROGRAM,IT HAS BEEN DIVIDED INTO
042763,000083: # THREE PARTS, T5PHASE1, T5PHASE2, AND THE JET SELECTION LOGIC,
042764,000084: # TO ALLOW FOR THE EXECUTION OF OTHER
042765,000085: # INTERRUPTS. T5PHASE IS ALSO USED IN THE INITIALIZATION OF THE AUTOPILOT
042766,000086: # VARIABLES AT TURN ON.
042767,000087:
042768,000088: # THE CODING OF T5PHASE IS...
042769,000089:
042770,000090: # + = INITIALIZE T5 RCS-CSM AUTOPILOT
042771,000091: # T5PHASE = +0 = PHASE2 OF THE T5 PROGRAM
042772,000092: # - = RESTART DAP
042773,000093: # -0 = PHASE1 OF THE T5 PROGRAM
042774,000094:
042775,000095: 21,2172 11465 SETT5 CCS T5PHASE
042776,000096: 21,2173 12556 TCF FRESHDAP # TURN ON AUTOPILOT
042777,000097: 21,2174 12673 TCF T5PHASE2 # BRANCH TO PHASE2 OF PROGRAM
042778,000098: 21,2175 12560 TCF REDAP # RESTART AUTOPILOT
042779,000099:
042780,000100: 21,2176 55465 TS T5PHASE # PHASE 1 RESET FOR PHASE 2
042781,000101: 21,2177 30030 CA TIME5
042782,000102: 21,2200 55634 TS T5TIME # USED IN COMPENSATING FOR DELAYS IN T5
042783,000103: 21,2201 32170 CAF DELTATT2 # RESET FOR T5RUPT IN 20MS FOR PHASE2
042784,000104: 21,2202 54030 TS TIME5 # OF PROGRAM
042785,000105:
042786,000106: # IMU STATUS CHECK
042787,000107:
042788,000108: 21,2203 41321 CS IMODES33 # CHECK IMU STATUS
042789,000109: 21,2204 75026 MASK BIT6 # BIT6 = 0 IMU OK
042790,000110: 21,2205 10000 CCS A # BIT6 = 1 NO IMU
042791,000111: 21,2206 12222 TCF RATEFILT
042792,000112: 21,2207 41501 FREECHK CS RCSFLAGS # BIT14 INDICATES THAT RATES HAVE NOT BEEN
042793,000113: 21,2210 75016 MASK BIT14 # INITIALIZED
042794,000114: 21,2211 27501 ADS RCSFLAGS
042795,000115: 21,2212 35016 CAF BIT14 # NO ATTITUDE REFERENCE
042796,000116: 21,2213 55332 TS HOLDFLAG # STOP ANY AUTOMATIC STEERING AND PREPARE
042797,000117: # TO PICK UP CDU ANGLES UPON RESUMPTION OF
042798,000118: # ATTITUDE HOLD
042799,000119: 21,2214 00006 EXTEND
042800,000120: 21,2215 02031 RAND CHAN31 # CHECK FOR FREE MODE
042801,000121: 21,2216 00006 EXTEND
042802,000122: 21,2217 12431 BZF KRESUME1 # IN FREE MODE PROVIDE FREE CONTROL ONLY
042803,000123: 21,2220 12546 TCF REINIT # .....TILT...............................
042804,000124: 21,2221 00030 BITS4,5 OCT 30
042805,000125:
042806,000126: 21,2222 31501 RATEFILT CA RCSFLAGS # SEE IF RATEFILTER HAS BEEN INITIALIZED
042807,000127: 21,2223 75016 MASK BIT14
042808,000128: 21,2224 00006 EXTEND # IF SO, PROCEED WITH RATE DERIVATION
042809,000129: 21,2225 12227 BZF +2
042810,000130: 21,2226 12362 TCF KMATRIX # IF NOT, SKIP RATE DERIVATION
042811,000131:
042812,000132: # RATE FILTER TIMING = 7.72 MS
042813,000133:
042814,000134: # RATE FILTER EQUATIONS
042815,000135:
042816,000136:
042817,000137: # DRHO = DELRHO - (.1)ADOT + (1 - GAIN1)DRHO
042818,000138: # -1
042819,000139:
042820,000140: # ADOT = ADOT + GAIN2 DRHO + KMJ DFT
042821,000141: # -1
042822,000142: # - * - -
042823,000143: # WHERE DELRHO = AMGB (CDU - CDU )
042824,000144: # -1
042825,000145:
042826,000146: 21,2227 35032 CAF TWO
042827,000147: 21,2230 55506 DRHOLOOP TS SPNDX
042828,000148: 21,2231 60000 DOUBLE
042829,000149: 21,2232 55507 TS DPNDX
042830,000150: 21,2233 51507 INDEX DPNDX
042831,000151: 21,2234 41552 CS DRHO # DRHO SCALED 180 DEGS
042832,000152: 21,2235 00006 EXTEND
042833,000153: 21,2236 51617 INDEX ATTKALMN # PICK UP DESIRED FILTER GAIN
042834,000154: 21,2237 73111 MP GAIN1
042835,000155: 21,2240 51507 INDEX DPNDX
042836,000156: 21,2241 21553 DAS DRHO # (1 -.064) DRHO
042837,000157: 21,2242 00006 EXTEND
042838,000158: 21,2243 51507 INDEX DPNDX
042839,000159: 21,2244 41534 DCS ADOT
042840,000160: 21,2245 53511 DXCH KMPAC # -(.1)ADOT
042841,000161: 21,2246 35017 CA QUARTER
042842,000162: 21,2247 02054 TC SMALLMP
042843,000163: 21,2250 53511 DXCH KMPAC
042844,000164: 21,2251 51507 INDEX DPNDX
042845,000165: 21,2252 21553 DAS DRHO
042846,000166: 21,2253 11506 CCS SPNDX
042847,000167: 21,2254 12230 TCF DRHOLOOP
042848,000168:
042849,000169: 21,2255 30032 CA CDUX # MEASURED BODY RATES--
042850,000170: 21,2256 57635 XCH RHO
042851,000171: 21,2257 00006 EXTEND
042852,000172: 21,2260 21635 MSU RHO # - * - -
042853,000173: 21,2261 40000 COM # DELRHO = AMGB (CDU - CDU )
042854,000174: # -1
042855,000175: 21,2262 22007 ZL
042856,000176: 21,2263 53516 DXCH DELTEMPX
042857,000177: 21,2264 30033 CA CDUY
042858,000178: 21,2265 57636 XCH RHO1
042859,000179: 21,2266 00006 EXTEND
042860,000180: 21,2267 21636 MSU RHO1
042861,000181: 21,2270 40000 COM
042862,000182: 21,2271 55502 TS T5TEMP # (CDUY - RHO1) SCALED 90 DEGS
042863,000183: 21,2272 00006 EXTEND
042864,000184: 21,2273 71640 MP AMGB1
042865,000185: 21,2274 21516 DAS DELTEMPX # DELTEMPX = (CDUX-RHO) + AMGB1(CDUY-RHO1)
042866,000186: # MUST BE DOUBLE PRECISION OR WILL LOSE
042867,000187: # PULSES
042868,000188: 21,2275 31641 CA AMGB4
042869,000189: 21,2276 00006 EXTEND
042870,000190: 21,2277 71502 MP T5TEMP
042871,000191: 21,2300 53520 DXCH DELTEMPY
042872,000192: 21,2301 31643 CA AMGB7
042873,000193: 21,2302 00006 EXTEND
042874,000194: 21,2303 71502 MP T5TEMP
042875,000195: 21,2304 53522 DXCH DELTEMPZ
042876,000196: 21,2305 30034 CA CDUZ
042877,000197: 21,2306 57637 XCH RHO2
042878,000198: 21,2307 00006 EXTEND
042879,000199: 21,2310 21637 MSU RHO2
042880,000200: 21,2311 40000 COM
042881,000201: 21,2312 55502 TS T5TEMP # (CDUZ - RHO2) SCALED 90 DEGS
042882,000202: 21,2313 00006 EXTEND
042883,000203: 21,2314 71642 MP AMGB5
042884,000204: 21,2315 21520 DAS DELTEMPY # DELTEMPY = AMGB4(CDUY-RHO1)
042885,000205: # + AMGB5(CDUZ-RHO2)
042886,000206: 21,2316 31644 CA AMGB8
042887,000207: 21,2317 00006 EXTEND
042888,000208:
042889,000209: 21,2320 71502 MP T5TEMP
042890,000210: 21,2321 21522 DAS DELTEMPZ # DELTEMPZ = AMGB7(CDUY-RHO1)
042891,000211: # + AMGB8(CDUZ-RHO2)
042892,000212: 21,2322 35032 CAF TWO
042893,000213: 21,2323 55506 ADOTLOOP TS SPNDX
042894,000214: 21,2324 60000 DOUBLE
042895,000215: 21,2325 55507 TS DPNDX
042896,000216: 21,2326 00006 EXTEND
042897,000217: 21,2327 51507 INDEX DPNDX
042898,000218: 21,2330 31516 DCA DELTEMPX
042899,000219: 21,2331 51507 INDEX DPNDX
042900,000220: 21,2332 21553 DAS DRHO
042901,000221: 21,2333 00006 EXTEND
042902,000222: 21,2334 51507 INDEX DPNDX
042903,000223: 21,2335 31516 DCA DELTEMPX
042904,000224: 21,2336 51507 INDEX DPNDX
042905,000225: 21,2337 21542 DAS MERRORX
042906,000226: 21,2340 51507 INDEX DPNDX
042907,000227: 21,2341 31552 CA DRHO
042908,000228: 21,2342 60000 DOUBLE # N.B.
042909,000229: 21,2343 60000 DOUBLE # N.B.
042910,000230: 21,2344 00006 EXTEND
042911,000231: 21,2345 51617 INDEX ATTKALMN # PICK UP DESIRED FILTER GAINS
042912,000232: 21,2346 73127 MP GAIN2
042913,000233: 21,2347 51507 INDEX DPNDX # ADOT + (.16)(.1)DRHO
042914,000234: 21,2350 21534 DAS ADOT # -1
042915,000235: 21,2351 51506 INDEX SPNDX # S/C TORQUE TO INERTIA RATIO
042916,000236: 21,2352 31620 CA KMJ # SCALED (450)(1600)/(57.3)(16384)=1/1.3
042917,000237: 21,2353 00006 EXTEND
042918,000238: 21,2354 51506 INDEX SPNDX
042919,000239: 21,2355 71547 MP DFT
042920,000240: 21,2356 51507 INDEX DPNDX
042921,000241: 21,2357 21534 DAS ADOT # KMJ(DFT)
042922,000242: 21,2360 11506 CCS SPNDX
042923,000243: 21,2361 12323 TCF ADOTLOOP # END CALCULATION OF VEHICLE RATES
042924,000244: 21,2362 31560 KMATRIX CA ATTSEC
042925,000245: 21,2363 75042 MASK LOW4
042926,000246: 21,2364 10000 CCS A
042927,000247: 21,2365 12373 TCF TENTHSEK
042928,000248: 21,2366 37671 CAF PRIO34 # CALL FOR 1 SEC UPDATE OF TRANSFORMATION
042929,000249: 21,2367 05150 TC NOVAC # MATRIX FROM GIMBAL AXES TO BODY AXES
042930,000250: 21,2370 E6,1510 EBANK= KMPAC
042931,000251: 21,2370 03447 44066 2CADR AMBGUPDT
042932,000252:
042933,000253: 21,2372 34334 CAF NINE
042934,000254:
042935,000255: 21,2373 55560 TENTHSEK TS ATTSEC
042936,000256:
042937,000257: # WHEN AUTOMATIC MANEUVERS ARE BEING PERFORMED, THE FOLLOWING ANGLE ADDITION MUST BE MADE TO PROVIDE A SMOOTH
042938,000258: # SEQUENCE OF ANGULAR COMMANDS TO THE AUTOPILOT--
042939,000259:
042940,000260: # CDUXD = CDUXD + DELCDUX (DOUBLE PRECISION)
042941,000261: # CDUYD = CDUYD + DELCDUY (DOUBLE PRECISION)
042942,000262: # CDUZD = CDUZD + DELCDUZ (DOUBLE PRECISION)
042943,000263:
042944,000264: # THE STEERING PROGRAMS-
042945,000265: # 1) ATTITUDE MANEUVER ROUTINE
042946,000266: # 2) LEM TRACKING
042947,000267:
042948,000268: # SHOULD GENERATE THE DESIRED ANGLES (CDUXD, CDUYD, CDUZD) AS WELL AS THE INCREMENTAL ANGLES (DELCDUX, DELCDUY,
042949,000269: # DELCDUZ) SO THAT THE GIMBAL ANGLE COMMANDS CAN BE INTERPOLATED BETWEEN UPDATES.
042950,000270:
042951,000271: # HOLDFLAG CODING-
042952,000272:
042953,000273: # + = GRAB PRESENT CDU ANGLES AND STORE IN THETADX, THETADY, THETADZ
042954,000274: # AND PERFORM ATTITUDE HOLD ABOUT THESE ANGLES
042955,000275: # ALSO IGNORE AUTOMATIC STEERING
042956,000276: # SET = + BY
042957,000277: # 1) INITIALIZATION PHASE OF AUTOPILOT
042958,000278: # 2) OCCURANCE OF RHC COMMANDS
042959,000279: # 3) FREE MODE
042960,000280: # 4) SWITCH OVER TO ATTITUDE HOLD FROM AUTO
042961,000281: # WHILE DOING AUTOMATIC STEERING (IN THIS CASE
042962,000282: # HOLDFLAG IS NOT ACTUALLY SET TO +, BUT THE LOGIC
042963,000283: # FUNCTIONS AS IF IT WERE.)
042964,000284: # 5) S/C CONTROL SWITCH IN SCS
042965,000285: # 6) IMU POWER OFF
042966,000286: # +0 = IN ATTITUDE HOLD ABOUT A PREVIOUSLY ESTABLISHED REFERENCE
042967,000287: # - = PERFORMING AUTOMATIC MANEUVER
042968,000288: # -0 = NOT USED AT PRESENT
042969,000289:
042970,000290: # NOTE THAT THIS FLAG MUST BE SET = - BY THE STEERING PROGRAM IF IT IS TO COMMAND THE AUTOPILOT.
042971,000291: # SINCE ASTRONAUT ACTION MAY CHANGE THE HOLDFLAG SETTING, IT SHOULD BE MONITORED BY THE STEERING PROGRAM TO
042972,000292: # DETERMINE IF THE AUTOMATIC SEQUENCE HAS BEEN INTERRUPTED AND IF SO, TAKE APPROPRIATE ACTION.
042973,000293:
042974,000294: 21,2374 41332 CS HOLDFLAG
042975,000295: 21,2375 00006 EXTEND
042976,000296: 21,2376 62423 BZMF DACNDLS # IF HOLDFLAG +0,-0,+, BYPASS AUTOMATIC
042977,000297: # COMMANDS
042978,000298: 21,2377 35032 DCDUINCR CAF TWO
042979,000299: 21,2400 55506 DELOOP TS SPNDX
042980,000300: 21,2401 60000 DOUBLE
042981,000301: 21,2402 55507 TS DPNDX
042982,000302: 21,2403 00006 EXTEND
042983,000303: 21,2404 50000 INDEX A
042984,000304: 21,2405 31647 DCA CDUXD
042985,000305: 21,2406 53511 DXCH KMPAC
042986,000306: 21,2407 00006 EXTEND
042987,000307: 21,2410 51507 INDEX DPNDX
042988,000308: 21,2411 31576 DCA DELCDUX
042989,000309: 21,2412 02066 TC DPADD
042990,000310: 21,2413 00006 EXTEND
042991,000311: 21,2414 31511 DCA KMPAC
042992,000312: 21,2415 51506 INDEX SPNDX
042993,000313: 21,2416 55572 TS THETADX
042994,000314: 21,2417 51507 INDEX DPNDX
042995,000315: 21,2420 53647 DXCH CDUXD
042996,000316: 21,2421 11506 CCS SPNDX
042997,000317: 21,2422 12400 TCF DELOOP
042998,000318:
042999,000319: # RCS-CSM AUTOPILOT ATTITUDE ERROR DISPLAY
043000,000320:
043001,000321: # THREE TYPES OF ATTITUDE ERRORS MAY BE DISPLAYED ON THE FDAI-
043002,000322:
043003,000323: # MODE 1) AUTOPILOT FOLLOWING ERRORS SELECTED BY V61E
043004,000324: # GENERATED INTERNALLY BY THE AUTOPILOT
043005,000325:
043006,000326: # MODE 2) TOTAL ATTITUDE ERRORS SELECTED BY V62E
043007,000327: # WITH RESPECT TO THE CONTENTS OF N22
043008,000328:
043009,000329: # MODE 3) TOTAL ASTRONAUT ATTITUDE ERRORS SELECTED BY V63E
043010,000330: # WITH RESPECT TO THE CONTENTS OF N17
043011,000331:
043012,000332: # MODE 1 IS PROVIDED AS A MONITOR OF THE RCS DAP AND ITS ABILITY TO TRACK AUTOMATIC STEERING COMMANDS. IN THIS
043013,000333: # MODE THE ATTITUDE ERRORS WILL BE ZEROED WHEN THE CMC MODE SWITCH IS IN FREE
043014,000334:
043015,000335: # MODE 2 IS PROVIDED TO ASSIST THE CREW IN MANUALLY MANEUVERING THE S/C TO THE ATTITUDE (GIMBAL ANGLES) SPECIFIED
043016,000336: # IN N22. THE ATTITUDE ERRORS WRT THESE ANGLES AND THE CURRENT CDU ANGLES ARE RESOLVED INTO S/C CONTROL AXES
043017,000337: # AS A FLY-TO INDICATOR.
043018,000338:
043019,000339: # MODE 3 IS PROVIDED TO ASSIST THE CREW IN MANUALLY MANEUVERING THE S/C TO THE ATTITUDE (GIMBAL ANGLES) SPECIFIED
043020,000340: # IN N17. THE ATTITUDE ERRORS WRT THESE ANGLES AND THE CURRENT CDU ANGLES ARE RESOLVED INTO S/C CONTROL AXES
043021,000341: # AS A FLY-TO INDICATOR.
043022,000342:
043023,000343: # V60 IS PROVIDED TO LOAD N17 WITH A SNAPSHOT OF THE CURRENT CDU ANGLES, THUS SYNCHRONIZING THE MODE 3 DISPLAY
043024,000344: # WITH THE CURRENT S/C ATTITUDE. THIS VERB MAY BE USED AT ANY TIME.
043025,000345:
043026,000346: # THESE DISPLAYS WILL BE AVAILIABLE IN ANY MODE (AUTO, HOLD, FREE, G+N, OR SCS) ONCE THE RCS DAP HAS BEEN
043027,000347: # INITIATED VIA V46E. MODE 1, HOWEVER, WILL BE MEANINGFUL ONLY IN G+N AUTO OR HOLD. THE CREW MAY PRESET (VIA
043028,000348: # V25N17) AN ATTITUDE REFERENCE (DESIRED GIMBAL ANGLES) INTO N17 AT ANY TIME.
043029,000349:
043030,000350: 21,2423 41501 DACNDLS CS RCSFLAGS # ALTERNATE BETWEEN FDAIDSP1 AND FDAIDSP2
043031,000351: 21,2424 75030 MASK BIT4
043032,000352: 21,2425 00006 EXTEND
043033,000353: 21,2426 13172 BZF FDAIDSP2
043034,000354:
043035,000355: 21,2427 27501 FDAIDSP1 ADS RCSFLAGS
043036,000356: 21,2430 02432 TC NEEDLER
043037,000357: 21,2431 15347 KRESUME1 TCF RESUME # END PHASE 1
043038,000358:
043039,000359: # FDAI ATTITUDE ERROR DISPLAY SUBROUTINE
043040,000360:
043041,000361: # PROGRAM DESCRIPTION: D. KEENE 5/24/67
043042,000362:
043043,000363: # THIS SUBROUTINE IS USED TO DISPLAY ATTITUDE ERRORS ON THE FDAI VIA THE DIGITAL TO ANALOG CONVERTERS (DACS)
043044,000364: # IN THE CDUS. CARE IS TAKEN TO METER OUT THE APPROPRIATE NUMBER OF PULSES TO THE IMU ERROR COUNTERS AND PREVENT
043045,000365: # OVERFLOW, TO CONTROL THE RELAY SEQUENCING, AND TO AVOID INTERFERENCE WITH THE COARSE ALIGN LOOP WHICH ALSO USES
043046,000366: # THE DACS.
043047,000367:
043048,000368: # CALLING SEQUENCE:
043049,000369:
043050,000370: # DURING THE INITIALIZATION SECTION OF THE USER'S PROGRAM, BIT3 OF RCSFLAGS SHOULD BE SET TO INITIATE THE
043051,000371: # TURN-ON SEQUENCE WITHIN THE NEEDLES PROGRAM:
043052,000372:
043053,000373: # CS RCSFLAGS IN EBANK6
043054,000374: # MASK BIT3
043055,000375: # ADS RCSFLAGS
043056,000376:
043057,000377: # THEREAFTER, THE ATTITUDE ERRORS GENERATED BY THE USER SHOULD BE TRANSFERED TO THE FOLLOWING LOCATIONS IN EBANK6:
043058,000378:
043059,000379: # AK SCALED 180 DEGREES NOTE: THESE LOCATIONS ARE SUBJECT
043060,000380: # AK1 SCALED 180 DEGREES TO CHANGE
043061,000381: # AK2 SCALED 180 DEGREES
043062,000382:
043063,000383: # FULL SCALED DEFLECTION CORRESPONDS TO 16 7/8 DEGREES OF ATTITUDE ERROR
043064,000384: # (= 384 BITS IN IMU ERROR COUNTER)
043065,000385:
043066,000386: # A CALL TO NEEDLER WILL THEN UPDATE THE DISPLAY:
043067,000387:
043068,000388: # INHINT
043069,000389: # TC IBNKCALL NOTE: EBANK SHOULD BE SET TO E6
043070,000390: # CADR NEEDLER
043071,000391: # RELINT
043072,000392:
043073,000393: # THIS PROCESS SHOULD BE REPEATED EACH TIME THE ERRORS ARE UPDATED. AT LEAST 3 PASSES THRU THE PROGRAM ARE
043074,000394: # REQUIRED BEFORE ANYTHING IS ACTUALLY DISPLAYED ON THE ERROR METERS.
043075,000395: # NOTE: EACH CALL TO NEEDLER MUST BE SEPARATED BY AT LEAST 50MS TO ASSURE PROPER RELAY SEQUENCING.
043076,000396:
043077,000397: # ERASABLE USED:
043078,000398: # AK CDUXCMD
043079,000399: # AK1 CDUYCMD
043080,000400: # AK2 CDUZCMD
043081,000401: # EDRIVEX A,L,Q
043082,000402: # EDRIVEY T5TEMP
043083,000403: # EDRIVEZ SPNDX
043084,000404:
043085,000405: # SWITCHES: RCSFLAGS BITS 3,2
043086,000406:
043087,000407: # I/O CHANNELS: CHAN12 BIT 4 (COARSE ALIGN - READ ONLY)
043088,000408: # CHAN12 BIT 6 (IMU ERROR COUNTER ENABLE)
043089,000409: # CHAN14 BIT 13,14,15 (DAC ACTIVITY)
043090,000410:
043091,000411: # SIGN CONVENTION< AK = THETAC - THETA
043092,000412: # WHERE THETAC = COMMAND ANGLE
043093,000413: # THETA = PRESENT ANGLE
043094,000414:
043095,000415: 21,2432 35030 NEEDLER CAF BIT4 # CHECK FOR COARSE ALIGN ENABLE
043096,000416: 21,2433 00006 EXTEND # IF IN COARSE ALIGN DO NOT USE IMU
043097,000417: 21,2434 02012 RAND CHAN12 # ERROR COUNTERS. DONT USE NEEDLES
043098,000418: 21,2435 00006 EXTEND
043099,000419: 21,2436 12443 BZF NEEDLER1
043100,000420: 21,2437 41501 CS RCSFLAGS # SET BIT3 FOR INITIALIZATION PASS
043101,000421: 21,2440 75031 MASK BIT3
043102,000422: 21,2441 27501 ADS RCSFLAGS
043103,000423: 21,2442 00002 TC Q
043104,000424:
043105,000425: 21,2443 31501 NEEDLER1 CA RCSFLAGS
043106,000426: 21,2444 76211 MASK SIX
043107,000427: 21,2445 00006 EXTEND
043108,000428: 21,2446 12503 BZF NEEDLES3
043109,000429: 21,2447 75031 MASK BIT3
043110,000430: 21,2450 00006 EXTEND
043111,000431: 21,2451 12474 BZF NEEDLER2 # BIT3 = 0, BIT2 = 1
043112,000432:
043113,000433: 21,2452 45026 CS BIT6 # FIRST PASS BIT3 = 1
043114,000434: 21,2453 00006 EXTEND # DISABLE IMU ERROR COUNTER TO ZERO DACS
043115,000435: 21,2454 03012 WAND CHAN12 # MUST WAIT AT LEAST 60 MS BEFORE
043116,000436: 21,2455 45035 NEEDLE11 CS ZERO # ENABLING COUNTERS.
043117,000437: 21,2456 55476 TS AK # ZERO THE INPUTS ON FIRST PASS
043118,000438: 21,2457 55477 TS AK1
043119,000439: 21,2460 55500 TS AK2
043120,000440: 21,2461 55503 TS EDRIVEX # ZERO THE DISPLAY REGISTERS
043121,000441: 21,2462 55504 TS EDRIVEY
043122,000442: 21,2463 55505 TS EDRIVEZ
043123,000443: 21,2464 54050 TS CDUXCMD # ZERO THE OUT COUNTERS
043124,000444: 21,2465 54051 TS CDUYCMD
043125,000445: 21,2466 54052 TS CDUZCMD
043126,000446: 21,2467 46211 CS SIX # RESET RCSFLAGS FOR PASS2
043127,000447: 21,2470 71501 MASK RCSFLAGS
043128,000448: 21,2471 65032 AD BIT2
043129,000449: 21,2472 55501 TS RCSFLAGS
043130,000450: 21,2473 00002 TC Q # END PASS1
043131,000451:
043132,000452: 21,2474 35026 NEEDLER2 CAF BIT6 # ENABLE IMU ERROR COUNTERS
043133,000453: 21,2475 00006 EXTEND
043134,000454: 21,2476 05012 WOR CHAN12
043135,000455: 21,2477 46211 CS SIX # RESET RCSFLAGS TO DISPLAY ATTITUDE
043136,000456: 21,2500 71501 MASK RCSFLAGS # ERRORS WAIT AT LEAST 4 MS FOR
043137,000457: 21,2501 55501 TS RCSFLAGS # RELAY CLOSURE
043138,000458: 21,2502 00002 TC Q
043139,000459:
043140,000460: 21,2503 35026 NEEDLES3 CAF BIT6 # CHECK TO SEE IF IMU ERROR COUNTER
043141,000461: 21,2504 00006 EXTEND # IS ENABLED
043142,000462: 21,2505 02012 RAND CHAN12
043143,000463: 21,2506 00006 EXTEND # IF NOT RECYCLE NEEDLES
043144,000464: 21,2507 12437 BZF NEEDLER +5
043145,000465:
043146,000466: 21,2510 35032 NEEDLES CAF TWO
043147,000467: 21,2511 55506 DACLOOP TS SPNDX
043148,000468: 21,2512 45017 CS QUARTER
043149,000469: 21,2513 00006 EXTEND
043150,000470: 21,2514 51506 INDEX SPNDX
043151,000471: 21,2515 71476 MP AK
043152,000472: 21,2516 54001 TS L
043153,000473: 21,2517 10000 CCS A
043154,000474: 21,2520 32554 CA DACLIMIT
043155,000475: 21,2521 12523 TCF +2
043156,000476: 21,2522 42554 CS DACLIMIT
043157,000477: 21,2523 60001 AD L
043158,000478: 21,2524 55502 TS T5TEMP # OVFLO CHK
043159,000479: 21,2525 12531 TCF +4
043160,000480: 21,2526 50000 INDEX A # ON OVERFLOW LIMIT OUTPUT TO +-384
043161,000481: 21,2527 32554 CAF DACLIMIT
043162,000482: 21,2530 54001 TS L
043163,000483: 21,2531 51506 INDEX SPNDX
043164,000484: 21,2532 41503 CS EDRIVEX # CURRENT VALUE OF DAC
043165,000485: 21,2533 60001 AD L
043166,000486: 21,2534 51506 INDEX SPNDX
043167,000487: 21,2535 26050 ADS CDUXCMD
043168,000488: 21,2536 51506 INDEX SPNDX
043169,000489: 21,2537 23503 LXCH EDRIVEX
043170,000490: 21,2540 11506 CCS SPNDX
043171,000491: 21,2541 12511 TCF DACLOOP
043172,000492: 21,2542 37707 CAF 13,14,15
043173,000493: 21,2543 00006 EXTEND
043174,000494: 21,2544 05014 WOR CHAN14 # SET DAC ACTIVITY BITS
043175,000495: 21,2545 00002 TC Q
043176,000496:
043177,000497: 21,2546 32552 REINIT CAF DELAY200 # ........TILT LOGIC
043178,000498: 21,2547 54030 TS TIME5 # REINITIALIZE DAP IN 200MS
043179,000499: 21,2550 55465 TS T5PHASE
043180,000500: 21,2551 15347 TCF RESUME
043181,000501: 21,2552 37754 DELAY200 DEC 16364 B-14 # 200MS
043182,000502:
043183,000503: 21,2553 77177 DEC -384 B-14
043184,000504:
043185,000505: 21,2554 37200 DACLIMIT DEC 16000 B-14
043186,000506: 21,2555 00600 DEC 384 B-14
043187,000507:
043188,000508: # INITIALIZATION PROGRAM FOR RCS-CSM AUTOPILOT
043189,000509:
043190,000510: # THE FOLLOWING QUANTITIES WILL BE ZEROED AND SHOULD APPEAR IN CONSECUTIVE LOCATIONS IN MEMORY AFTER WBODY
043191,000511:
043192,000512: # WBODY (+1) DFT TAU2
043193,000513: # WBODY1 (+1) DFT1 BIAS
043194,000514: # WBODY2 (+1) DFT2 BIAS1
043195,000515: # ADOT (+1) DRHO (+1) BIAS2
043196,000516: # ADOT1 (+1) DRHO1 (+1) ERRORX
043197,000517: # ADOT2 (+1) DRHO2 (+1) ERRORY
043198,000518: # MERRORX (+1) ATTSEC ERRORZ
043199,000519: # MERRORY (+1) TAU
043200,000520: # MERRORZ (+1) TAU1
043201,000521:
043202,000522: 21,2556 35033 FRESHDAP CAF ONE # RESET HOLDFLAG TO STOP AUTOMATIC
043203,000523: 21,2557 55332 TS HOLDFLAG # STEERING AND PREPARE TO PICK UP AN
043204,000524: # ATTITUDE HOLD REFERENCE
043205,000525:
043206,000526: 21,2560 04754 REDAP TC IBNKCALL # DECODE DAPDATR1, DAPDATR2 FOR DEADBANDS
043207,000527: 21,2561 40366 CADR S41.2 # RATES, QUADFAILS, QUAD MANAGEMENT
043208,000528:
043209,000529: 21,2562 04754 TC IBNKCALL # DECODE IXX, IAVG AND CONVERT
043210,000530: 21,2563 40517 CADR S40.14 # TO AUTOPILOT GAINS
043211,000531:
043212,000532: 21,2564 32635 CAF NO.T5VAR # NO. LOCATIONS TO BE ZEROED MINUS ONE
043213,000533: 21,2565 55506 ZEROT5 TS SPNDX # ZERO ALL NECESSARY ERASABLE REGISTERS
043214,000534: 21,2566 35035 CAF ZERO
043215,000535: 21,2567 51506 INDEX SPNDX
043216,000536: 21,2570 55525 TS WBODY
043217,000537: 21,2571 11506 CCS SPNDX
043218,000538: 21,2572 12565 TCF ZEROT5
043219,000539: 21,2573 02644 TCR ZEROJET
043220,000540:
043221,000541: 21,2574 45035 CS ZERO
043222,000542: 21,2575 55633 TS CHANTEMP # INITIALIZE MINIMUM IMPULSE CONTROL
043223,000543:
043224,000544: 21,2576 55632 TS CH31TEMP # INITIALIZE RHC POSITION MEMORY FOR
043225,000545: # MANUAL RATE MODES
043226,000546:
043227,000547: 21,2577 32636 CAF =.24
043228,000548: 21,2600 55654 TS SLOPE # INITIALIZE SWITCHING LOGIC SLOPE
043229,000549:
043230,000550: 21,2601 35031 CAF FOUR
043231,000551: 21,2602 55634 TS T5TIME # PHASE 0 RESETS FOR PHASE 2 INTERRUPT IN
043232,000552: # 60 MS. PHASE 2 RESETS FOR PHASE 1 RUPT
043233,000553: # IN (80MS - T5TIME(40MS)). THEREFORE
043234,000554: # PHASE 1 (RATEFILTER) BEGINS CYCLING 100
043235,000555: # MS FROM NOW AND EVERY 100MS THEREAFTER
043236,000556:
043237,000557: 21,2603 35040 CAF ELEVEN
043238,000558: 21,2604 55617 TS ATTKALMN # RESET TO PICK UP KALMAN FILTER GAINS
043239,000559: # TO INITIALIZE THE S/C ANGULAR RATES
043240,000560: 21,2605 30032 CA CDUX
043241,000561: 21,2606 55635 TS RHO
043242,000562: 21,2607 30033 CA CDUY
043243,000563: 21,2610 55636 TS RHO1
043244,000564: 21,2611 30034 CA CDUZ
043245,000565: 21,2612 55637 TS RHO2
043246,000566: 21,2613 35035 CAF ZERO # RESET AUTOPILOT TO BEGIN EXECUTING
043247,000567: 21,2614 55465 TS T5PHASE # PHASE2 OF PROGRAM
043248,000568:
043249,000569: 21,2615 41321 CS IMODES33 # CHECK IMU STATUS
043250,000570: 21,2616 75026 MASK BIT6 # IF BIT6 = 0 IMU IN FINE ALIGN
043251,000571: 21,2617 10000 CCS A # IF BIT6 = 1 IMU NOT READY
043252,000572: 21,2620 12624 TCF IMUAOK
043253,000573: 21,2621 55617 TS ATTKALMN # CANNOT USE IMU
043254,000574: 21,2622 32640 CAF RCSINITB # PROVIDE FREE CONTROL ONLY
043255,000575: 21,2623 12631 TCF RCSSWIT # DONT START UP RATE FILTER
043256,000576: # SIGNAL NO RATE FILTER
043257,000577:
043258,000578: 21,2624 37671 IMUAOK CAF PRIO34 # START MATRIX INITIALIZATION
043259,000579: 21,2625 05150 TC NOVAC # BYPASS IF IMU NOT IN FINE ALIGN
043260,000580: 21,2626 E6,1510 EBANK= KMPAC
043261,000581: 21,2626 03447 44066 2CADR AMBGUPDT
043262,000582:
043263,000583: 21,2630 32637 CAF RCSINIT # CLEAR BIT14 -ASSUME WE HAVE A GOOD IMU
043264,000584: 21,2631 55501 RCSSWIT TS RCSFLAGS # CLEAR BIT1 -INITIALIZE T6 PROGRAM
043265,000585: # SET BIT3 -INITIALIZE NEEDLES
043266,000586: # CLEAR BIT4 -RESET FOR FDAIDSP1
043267,000587: 21,2632 32641 CAF T5WAIT60 # NEXT T5RUPT 60 MS FROM NOW TO ALLOW IMU
043268,000588: # ERROR COUNTER TO ZERO.
043269,000589: # (MINIMUM DELAY = 15 MS)
043270,000590: 21,2633 54030 TS TIME5 # SINCE ATTKALMN IS +11, PROGRAM WILL THEN
043271,000591: 21,2634 05347 TC RESUME # PICK UP THE KALMAN FILTER GAINS. RATE
043272,000592: # FILTER WILL BEGIN OPERATING ZOOMS FROM
043273,000593: # NOW
043274,000594:
043275,000595: # CONSTANTS USED IN INITIALIZATION PROGRAM
043276,000596:
043277,000597: 21,2635 00044 NO.T5VAR DEC 36 B-14
043278,000598: 21,2636 07534 =.24 DEC .24 # = SLOPE OF 0.6/SEC
043279,000599: 21,2637 00004 RCSINIT OCT 00004
043280,000600: 21,2640 20004 RCSINITB OCT 20004
043281,000601: 21,2641 37772 T5WAIT60 DEC 16378 B-14 # = 6 CS
043282,000602: 21,2642 E6,1510 EBANK= KMPAC
043283,000603: 21,2642 03655 36066 T6ADDR 2CADR T6START
043284,000604:
043285,000605: 21,2644 35040 ZEROJET CAF ELEVEN # ZERO BLAST2, BLAST1, BLAST, YWORD2,
043286,000606: 21,2645 55506 TS SPNDX # YWORD1, PWORD2, PWORD1, RWORD2,
043287,000607: 21,2646 35035 CAF ZERO # AND RWORD1.
043288,000608:
043289,000609: 21,2647 51506 INDEX SPNDX
043290,000610: 21,2650 55451 TS RWORD1
043291,000611: 21,2651 11506 CCS SPNDX
043292,000612: 21,2652 12645 TCF ZEROJET +1
043293,000613:
043294,000614: 21,2653 35031 CAF FOUR
043295,000615: 21,2654 55462 TS BLAST1 +1
043296,000616: 21,2655 35040 CAF ELEVEN
043297,000617: 21,2656 55464 TS BLAST2 +1
043298,000618:
043299,000619: 21,2657 45033 CS BIT1
043300,000620: 21,2660 71501 MASK RCSFLAGS
043301,000621: 21,2661 55501 TS RCSFLAGS # RESET BIT1 OF RCSFLAGS TO 0
043302,000622:
043303,000623: 21,2662 00006 EXTEND
043304,000624: 21,2663 32643 DCA T6ADDR
043305,000625: 21,2664 53311 DXCH T6LOC
043306,000626: 21,2665 33062 CAF =+14MS # ENABLE T6RUPT TO SHUT OFF JETS IN 14 MS.
043307,000627: 21,2666 54031 TS TIME6
043308,000628: 21,2667 35015 CAF BIT15
043309,000629: 21,2670 00006 EXTEND
043310,000630: 21,2671 05013 WOR CHAN13
043311,000631:
043312,000632: 21,2672 00002 TC Q
043313,000633:
043314,000634: 21,2673 11617 T5PHASE2 CCS ATTKALMN # IF (+) INITIALIZE RATE ESTIMATE
043315,000635: 21,2674 13160 TCF KALUPDT
043316,000636:
043317,000637: 21,2675 12677 TCF +2 # ONLY IF ATTKALMN POSITIVE
043318,000638: 21,2676 12677 TCF +1
043319,000639: 21,2677 32170 CA DELTATT2 # RESET FOR PHASE3 IN 20 MS
043320,000640: 21,2700 56030 XCH TIME5 # (JET SELECTION LOGIC)
043321,000641: 21,2701 27634 ADS T5TIME # TO COMPENSATE FOR DELAYS IN T5RUPT
043322,000642:
043323,000643: 21,2702 31501 CA RCSFLAGS # IF A HIGH RATE AUTO MANEUVER IS IN
043324,000644: 21,2703 75015 MASK BIT15 # PROGRESS (BIT 15 OF RCSFLAGS SET), SET
043325,000645: 21,2704 00006 EXTEND # ATTKALMN TO -1
043326,000646: 21,2705 12707 BZF NOHIAUTO # OTHERWISE SET ATTKALMN TO 0.
043327,000647: 21,2706 45033 CS ONE
043328,000648: 21,2707 55617 NOHIAUTO TS ATTKALMN
043329,000649:
043330,000650: # MANUAL ROTATION COMMANDS
043331,000651:
043332,000652: 21,2710 43044 CS OCT01760 # RESET FORCED FIRING BITS (BITS 10 TO 5
043333,000653: 21,2711 71501 MASK RCSFLAGS # OF RCSFLAGS) TO ZERO
043334,000654: 21,2712 55501 TS RCSFLAGS
043335,000655:
043336,000656: 21,2713 00006 EXTEND
043337,000657: 21,2714 00031 READ CHAN31
043338,000658: 21,2715 54001 TS L
043339,000659: 21,2716 31632 CA CH31TEMP
043340,000660: 21,2717 00006 EXTEND
043341,000661: 21,2720 06001 RXOR LCHAN
043342,000662: 21,2721 73050 MASK MANROT # = OCT00077
043343,000663: 21,2722 00006 EXTEND
043344,000664: 21,2723 62736 BZMF NOCHANGE
043345,000665:
043346,000666: 21,2724 22000 LXCH A
043347,000667: 21,2725 55632 TS CH31TEMP # SAVE CONTENTS OF CHANNEL 31 IN CH31TEMP
043348,000668:
043349,000669: 21,2726 30001 CA L
043350,000670: 21,2727 00006 EXTEND
043351,000671: 21,2730 75027 MP BIT5 # PUT BITS 6-1 OF A IN BITS 10-5 OF L
043352,000672: 21,2731 30001 CA L
043353,000673: 21,2732 27501 ADS RCSFLAGS # SET FORCED FIRING BITS FOR AXES WITH
043354,000674: # WITH CHANGES IN COMMAND. BITS 10,9 FOR
043355,000675: # ROLL, BITS 8,7 FOR YAW, BITS 6,5 FOR
043356,000676: # PITCH
043357,000677:
043358,000678: 21,2733 41501 CS RCSFLAGS # SET RATE DAMPING FLAGS (BITS 13,12, AND
043359,000679: 21,2734 73051 MASK OCT16000 # 11 OF RCSFLAGS)
043360,000680: 21,2735 27501 ADS RCSFLAGS
043361,000681:
043362,000682: 21,2736 41632 NOCHANGE CS CH31TEMP
043363,000683: 21,2737 73050 MASK MANROT
043364,000684: 21,2740 00006 EXTEND
043365,000685: 21,2741 63262 BZMF AHFNOROT # IF NO MANUAL COMMANDS, GO TO AHFNOROT
043366,000686:
043367,000687: 21,2742 55332 TS HOLDFLAG # SET HOLDFLAG +
043368,000688:
043369,000689: 21,2743 03142 TC STICKCHK # WHEN THE RHC IS OUT OF DETENT, PMANNDX,
043370,000690: # YMANNDX, AND RMANNDX ARE ALL SET, BY
043371,000691: # MEANS OF STICKCHK, TO 0, 1, OR 2 FOR NO,
043372,000692: # +, OR - ROTATION RESPECTIVELY AS
043373,000693: # COMMANDED BY THE RHC.
043374,000694:
043375,000695: # HOWEVER, IT IS WELL TO NOTE THAT AFTER
043376,000696: # THE RHC IS RETURNED TO DETENT, THE
043377,000697: # PROGRAM BRANCHES TO AHFNOROT AND AVOIDS
043378,000698: # STICKCHK SO PMANNDX, YMANNDX, AND
043379,000699: # RMANNDX ARE NOT RESET TO ZERO BUT RATHER
043380,000700: # LEFT SET TO THEIR LAST OUT OF DETENT
043381,000701: # VALUES.
043382,000702:
043383,000703: 21,2744 40075 CS FLAGWRD1 # SET STIKFLAG TO INFORM STEERING
043384,000704: 21,2745 75016 MASK BIT14 # PROGRAMS (P20) THAT ASTRONAUT HAS
043385,000705: 21,2746 26075 ADS FLAGWRD1 # ASSUMED ROTATIONAL CONTROL OF SPACECRAFT
043386,000706:
043387,000707: 21,2747 35016 CAF BIT14
043388,000708: 21,2750 00006 EXTEND
043389,000709: 21,2751 02031 RAND CHAN31
043390,000710: 21,2752 00006 EXTEND
043391,000711: 21,2753 63063 BZMF FREEFUNC
043392,000712:
043393,000713: 21,2754 31501 CA RCSFLAGS # EXAMINE RCSFLAGS TO SEE IF RATE FILTER
043394,000714: 21,2755 75016 MASK BIT14 # HAS BEEN INITIALIZED
043395,000715: 21,2756 10000 CCS A # IF SO, PROCEED WITH MANUAL RATE COMMANDS
043396,000716: 21,2757 12546 TCF REINIT # .....TILT, RECYCLE TO INITIALIZE FILTER
043397,000717:
043398,000718: 21,2760 45036 CS FIVE # IF MANUAL MANEUVER IS AT HIGH RATE, SET
043399,000719: 21,2761 61130 AD RATEINDX # ATTKALMN TO -1.
043400,000720: 21,2762 00006 EXTEND # OTHERWISE, LEAVE ATTKALMN ALONE.
043401,000721: 21,2763 62766 BZMF +3
043402,000722: 21,2764 45033 CS ONE
043403,000723: 21,2765 55617 TS ATTKALMN
043404,000724:
043405,000725: 21,2766 35032 CAF TWO # AUTO-HOLD MANUAL ROTATION
043406,000726: 21,2767 55506 SETWBODY TS SPNDX
043407,000727: 21,2770 60000 DOUBLE
043408,000728: 21,2771 55507 TS DPNDX
043409,000729: 21,2772 51506 INDEX SPNDX # RMANNDX = 0 NO ROTATION
043410,000730: 21,2773 31656 CA RMANNDX # = 1 + ROTATION
043411,000731: 21,2774 00006 EXTEND # = 2 - ROTATION
043412,000732: 21,2775 13017 BZF NORATE # IF NO ROTATION COMMAND ON THIS AXIS,
043413,000733: # GO TO NORATE.
043414,000734:
043415,000735: 21,2776 61130 AD RATEINDX # RATEINDX = 0 0.05 DEG/SEC
043416,000736: 21,2777 54002 TS Q # = 2 0.2 DEG/SEC
043417,000737: 21,3000 50002 INDEX Q # = 4 0.5 DEG/SEC
043418,000738: 21,3001 33051 CA MANTABLE -1 # = 6 2.0 DEG/SEC
043419,000739: 21,3002 00006 EXTEND
043420,000740: 21,3003 75023 MP BIT9 # MULTIPLY MANTABLE BY 2 TO THE -6
043421,000741: 21,3004 51507 INDEX DPNDX # TO GET COMMANDED RATE.
043422,000742: 21,3005 53526 DXCH WBODY # SET WBODY TO COMMANDED RATE.
043423,000743:
043424,000744: 21,3006 31501 CA RCSFLAGS
043425,000745: 21,3007 73051 MASK OCT16000 # IS RATE DAMPING COMPLETED (BITS 13,12 AND
043426,000746: 21,3010 00006 EXTEND # 11 OF RCSFLAGS ALL ZERO.) IF SO, GO TO
043427,000747: 21,3011 13027 BZF MERUPDAT # MERUPDAT TO UPDATE CUMULATIVE ATTITUDE
043428,000748: # ERROR.
043429,000749:
043430,000750: 21,3012 35035 ZEROER CA ZERO # ZEROER ZEROS MERRORS
043431,000751: 21,3013 22007 ZL
043432,000752: 21,3014 51507 INDEX DPNDX
043433,000753: 21,3015 53542 DXCH MERRORX
043434,000754: 21,3016 13035 TCF SPNDXCHK
043435,000755:
043436,000756: 21,3017 22007 NORATE ZL
043437,000757: 21,3020 51507 INDEX DPNDX
043438,000758: 21,3021 53526 DXCH WBODY # ZERO WBODY FOR THIS AXIS
043439,000759: 21,3022 31501 CA RCSFLAGS
043440,000760: 21,3023 73051 MASK OCT16000
043441,000761: 21,3024 00006 EXTEND # IS RATE DAMPING COMPLETED
043442,000762: 21,3025 13035 BZF SPNDXCHK # YES, KEEP CURRENT MERRORX GO TO SPNDXCHK
043443,000763: 21,3026 13012 TCF ZEROER # NO, GO TO ZEROER
043444,000764:
043445,000765: 21,3027 50002 MERUPDAT INDEX Q # MERRORX=MERRORX+MEASURED CHANGE IN ANGLE
043446,000766: 21,3030 43051 CS MANTABLE -1 # -COMMANDED CHANGE IN ANGLE
043447,000767: 21,3031 00006 EXTEND # THE ADDITION OF MEASURED CHANGE IN ANGLE
043448,000768: 21,3032 75025 MP BIT7 # HAS ALREADY BEEN DONE IN THE RATE FILTER
043449,000769: 21,3033 51507 INDEX DPNDX # COMMANDED CHANGE IN ANGLE = WBODY TIMES
043450,000770: 21,3034 21542 DAS MERRORX # .1SEC = MANTABLE ENTRY TIMES 2 TO THE -8
043451,000771:
043452,000772: 21,3035 51507 SPNDXCHK INDEX DPNDX
043453,000773: 21,3036 31541 CA MERRORX
043454,000774: 21,3037 51506 INDEX SPNDX
043455,000775: 21,3040 55567 TS ERRORX # ERRORX = HIGH ORDER WORD OF MERRORX
043456,000776: 21,3041 11506 CCS SPNDX
043457,000777: 21,3042 12767 TCF SETWBODY
043458,000778: 21,3043 13453 TCF JETS
043459,000779:
043460,000780: 21,3044 01760 OCT01760 OCT 01760 # FORCED FIRING BITS MASK
043461,000781:
043462,000782: 21,3045 01400 OCT01400 OCT 01400 # ROLL FORCED FIRING MASK ORDER OF
043463,000783: 21,3046 00060 OCT00060 OCT 00060 # PITCH FORCED FIRING MASK DEFINITION
043464,000784: 21,3047 00300 OCT00300 OCT 00300 # YAW FORCED FIRING MASK MUST BE
043465,000785: # PRESERVED
043466,000786: # FOR INDEXING
043467,000787: 21,3050 00077 MANROT OCT 77
043468,000788: 21,3051 16000 OCT16000 OCT 16000 # RATE DAMPING FLAGS MASK
043469,000789: 21,3052 00165 MANTABLE DEC .0071111
043470,000790: 21,3053 77612 DEC -.0071111
043471,000791: 21,3054 00722 DEC .028444
043472,000792: 21,3055 77055 DEC -0.028444
043473,000793: 21,3056 02215 DEC .071111
043474,000794: 21,3057 75562 DEC -.071111
043475,000795: 21,3060 11064 DEC .284444
043476,000796: 21,3061 66713 DEC -.284444
043477,000797: 21,3062 00027 =+14MS DEC 23 B-14
043478,000798: 21,3063 51656 FREEFUNC INDEX RMANNDX # ACCELERATION
043479,000799: 21,3064 33075 CA FREETAU # COMMANDS
043480,000800: 21,3065 55561 TS TAU
043481,000801: 21,3066 51657 INDEX PMANNDX
043482,000802: 21,3067 33075 CA FREETAU # FREETAU 0 SEC
043483,000803: 21,3070 55562 TS TAU1 # +1 +0.10 SEC
043484,000804: 21,3071 51660 INDEX YMANNDX # +2 -0.10 SEC
043485,000805: 21,3072 33075 CA FREETAU # (+3) 0 SEC
043486,000806: 21,3073 55563 TS TAU2
043487,000807: 21,3074 13101 TCF T6PROGM
043488,000808:
043489,000809: 21,3075 00000 FREETAU DEC 0 B-14
043490,000810: 21,3076 00740 DEC 480 B-14
043491,000811: 21,3077 77037 DEC -480 B-14
043492,000812: 21,3100 00000 DEC 0 B-14
043493,000813:
043494,000814: 21,3101 35035 T6PROGM CAF ZERO # FOR MANUAL ROTATIONS
043495,000815: 21,3102 55567 TS ERRORX
043496,000816: 21,3103 55570 TS ERRORY
043497,000817: 21,3104 55571 TS ERRORZ
043498,000818: 21,3105 13771 TCF T6PROG
043499,000819:
043500,000820: 21,3106 06604 DEC .2112 # FILTER GAIN FOR TRANSLATION, LEM ON
043501,000821: 21,3107 32703 DEC .8400 # FILTER GAIN FOR TRANSLATION 2(ZETA)WN DT
043502,000822: 21,3110 06604 DEC .2112 # FILTER GAIN FOR 2 DEGREES/SEC MANEUVERS
043503,000823: 21,3111 02031 GAIN1 DEC .0640 # KALMAN FILTER GAINS FOR INITIALIZATION
043504,000824: 21,3112 12132 DEC .3180 # OF ATTITUDE RATES
043505,000825: 21,3113 13030 DEC .3452
043506,000826: 21,3114 14047 DEC .3774
043507,000827: 21,3115 15241 DEC .4161
043508,000828: 21,3116 16650 DEC .4634
043509,000829: 21,3117 20555 DEC .5223
043510,000830: 21,3120 23065 DEC .5970
043511,000831: 21,3121 26137 DEC .6933
043512,000832: 21,3122 32053 DEC .8151
043513,000833: 21,3123 35712 DEC .9342
043514,000834:
043515,000835: 21,3124 00435 DEC .0174 # FILTER GAIN FOR TRANSLATION, LEM ON
043516,000836: 21,3125 13412 DEC .3600 # FILTER GAIN FOR TRANSLATION (WN)(WN)DT
043517,000837: 21,3126 00435 DEC .0174 # FILTER GAIN FOR 2 DEGREES/SEC MANEUVERS
043518,000838: 21,3127 00032 GAIN2 DEC .0016 # SCALED 10
043519,000839: 21,3130 01350 DEC .0454
043520,000840: 21,3131 01575 DEC .0545
043521,000841: 21,3132 02103 DEC .0666
043522,000842: 21,3133 02523 DEC .0832
043523,000843: 21,3134 03327 DEC .1069
043524,000844: 21,3135 04432 DEC .1422
043525,000845: 21,3136 06264 DEC .1985
043526,000846: 21,3137 11351 DEC .2955
043527,000847: 21,3140 17324 DEC .4817
043528,000848: 21,3141 33622 DEC .8683
043529,000849: 21,3142 55502 STICKCHK TS T5TEMP
043530,000850: 21,3143 76214 MASK THREE # INDECES FOR MANUAL ROTATION
043531,000851: 21,3144 55657 TS PMANNDX
043532,000852: 21,3145 31502 CA T5TEMP
043533,000853: 21,3146 00006 EXTEND # MAN RATE 0 0 RATE (DP)
043534,000854: 21,3147 75017 MP QUARTER # +1 + RATE (DP)
043535,000855: 21,3150 55502 TS T5TEMP # +2 - RATE (DP)
043536,000856: 21,3151 76214 MASK THREE # (+3) 0 RATE (DP)
043537,000857: 21,3152 55660 TS YMANNDX
043538,000858: 21,3153 31502 CA T5TEMP
043539,000859: 21,3154 00006 EXTEND
043540,000860: 21,3155 75017 MP QUARTER
043541,000861: 21,3156 55656 TS RMANNDX
043542,000862: 21,3157 00002 TC Q
043543,000863: 21,3160 55617 KALUPDT TS ATTKALMN # INITIALIZATION OF ATTITUDE RATES USING
043544,000864: # KALMAN FILTER TAKES 1.1 SEC
043545,000865:
043546,000866: 21,3161 32167 CA DELTATT # =1SEC - 80MS
043547,000867: 21,3162 61634 AD T5TIME # + DELAYS
043548,000868: 21,3163 54030 TS TIME5
043549,000869: 21,3164 13167 TCF +3
043550,000870: 21,3165 32170 CAF DELTATT2 # SAFETY PLAY TO ASSURE
043551,000871: 21,3166 54030 TS TIME5 # A T5RUPT
043552,000872:
043553,000873: 21,3167 45035 KRESUME2 CS ZERO # RESET FOR PHASE1
043554,000874: 21,3170 55465 TS T5PHASE # RESUME INTERRUPTED PROGRAM
043555,000875: 21,3171 15347 TCF RESUME
043556,000876:
043557,000877: 21,3172 45030 FDAIDSP2 CS BIT4 # RESET FOR FDAIDSP1
043558,000878: 21,3173 71501 MASK RCSFLAGS
043559,000879: 21,3174 55501 TS RCSFLAGS
043560,000880:
043561,000881: 21,3175 40074 CS FLAGWRD0 # ON - DISPLAY ONE OF THE TOTAL ATTITUDE
043562,000882: 21,3176 75023 MASK BIT9 # ERRORS
043563,000883: 21,3177 00006 EXTEND
043564,000884: 21,3200 13207 BZF FDAITOTL
043565,000885: 21,3201 00006 EXTEND
043566,000886: 21,3202 41570 DCS ERRORX # OFF - DISPLAY AUTOPILOT FOLLOWING ERROR
043567,000887: 21,3203 53477 DXCH AK
043568,000888: 21,3204 41571 CS ERRORZ
043569,000889: 21,3205 55500 TS AK2
043570,000890: 21,3206 15347 TCF RESUME # END PHASE 1
043571,000891:
043572,000892: 21,3207 30105 FDAITOTL CA FLAGWRD9
043573,000893: 21,3210 75026 MASK BIT6
043574,000894: 21,3211 00006 EXTEND
043575,000895: 21,3212 13255 BZF WRTN17 # IS N22ORN17 (BIT6 OF FLAGWRD9) = 0
043576,000896: # IF SO, GO TO WRTN17
043577,000897: 21,3213 00006 WRTN22 EXTEND # OTHERWISE, CONTINUE ON TO WRTN22 AND
043578,000898: 21,3214 31157 DCA CTHETA # GET SET TO COMPUTE TOTAL ATTITUDE
043579,000899: 21,3215 53514 DXCH WTEMP # ERROR WRT N22 BY PICKING UP THE THREE
043580,000900: 21,3216 31155 CA CPHI # COMPONENTS OF N22
043581,000901:
043582,000902: 21,3217 00006 GETAKS EXTEND # COMPUTE TOTAL ATTITUDE ERROR FOR
043583,000903: 21,3220 20032 MSU CDUX # DISPLAY ON FDAI ERROR NEEDLES
043584,000904: 21,3221 55476 TS AK
043585,000905: 21,3222 31513 CA WTEMP
043586,000906: 21,3223 00006 EXTEND
043587,000907: 21,3224 20033 MSU CDUY
043588,000908: 21,3225 55502 TS T5TEMP
043589,000909: 21,3226 00006 EXTEND
043590,000910: 21,3227 71640 MP AMGB1
043591,000911: 21,3230 27476 ADS AK
043592,000912: 21,3231 31502 CA T5TEMP
043593,000913: 21,3232 00006 EXTEND
043594,000914: 21,3233 71641 MP AMGB4
043595,000915: 21,3234 55477 TS AK1
043596,000916: 21,3235 31502 CA T5TEMP
043597,000917: 21,3236 00006 EXTEND
043598,000918: 21,3237 71643 MP AMGB7
043599,000919: 21,3240 55500 TS AK2
043600,000920: 21,3241 31514 CA WTEMP +1
043601,000921: 21,3242 00006 EXTEND
043602,000922: 21,3243 20034 MSU CDUZ
043603,000923: 21,3244 55502 TS T5TEMP
043604,000924: 21,3245 00006 EXTEND
043605,000925: 21,3246 71642 MP AMGB5
043606,000926: 21,3247 27477 ADS AK1
043607,000927: 21,3250 31502 CA T5TEMP
043608,000928: 21,3251 00006 EXTEND
043609,000929: 21,3252 71644 MP AMGB8
043610,000930: 21,3253 27500 ADS AK2
043611,000931: 21,3254 15347 TCF RESUME # END PHASE1 OF RCS DAP
043612,000932:
043613,000933: 21,3255 00006 WRTN17 EXTEND # GET SET TO COMPUTE TOTAL ASTRONAUT
043614,000934: 21,3256 31335 DCA CPHIX +1 # ATTITUDE ERROR WRT N17 BY PICKING UP
043615,000935: 21,3257 53514 DXCH WTEMP # THE THREE COMPONENTS OF N17
043616,000936: 21,3260 31333 CA CPHIX
043617,000937: 21,3261 13217 TCF GETAKS
End of include-file RCS-CSM_DIGITAL_AUTOPILOT.agc. Parent file is MAIN.agc