Source Code
044492,000001: # Copyright: Public domain.
044493,000002: # Filename: RCS-CSM_DIGITAL_AUTOPILOT.agc
044494,000003: # Purpose: Part of the source code for Colossus 2A, AKA Comanche 055.
044495,000004: # It is part of the source code for the Command Module's (CM)
044496,000005: # Apollo Guidance Computer (AGC), for Apollo 11.
044497,000006: # Assembler: yaYUL
044498,000007: # Contact: Ron Burkey <info@sandroid.org>.
044499,000008: # Website: www.ibiblio.org/apollo.
044500,000009: # Pages: 1002-1024
044501,000010: # Mod history: 2009-05-13 RSB Adapted from the Colossus249/ file of the
044502,000011: # same name, using Comanche055 page images.
044503,000012:
044504,000013: # This source code has been transcribed or otherwise adapted from digitized
044505,000014: # images of a hardcopy from the MIT Museum. The digitization was performed
044506,000015: # by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many
044507,000016: # thanks to both. The images (with suitable reduction in storage size and
044508,000017: # consequent reduction in image quality as well) are available online at
044509,000018: # www.ibiblio.org/apollo. If for some reason you find that the images are
044510,000019: # illegible, contact me at info@sandroid.org about getting access to the
044511,000020: # (much) higher-quality images which Paul actually created.
044512,000021:
044513,000022: # Notations on the hardcopy document read, in part:
044514,000023:
044515,000024: # Assemble revision 055 of AGC program Comanche by NASA
044516,000025: # 2021113-051. 10:28 APR. 1, 1969
044517,000026:
044518,000027: # This AGC program shall also be referred to as
044519,000028: # Colossus 2A
044520,000029:
044521,000030: # Page 1002
044522,000031: # T5 INTERRUPT PROGRAM FOR THE RCS-CSM AUTOPILOT
044523,000032:
044524,000033: # START OF T5 INTERRUPT PROGRAM
044525,000034:
044526,000035: 20,3612 BANK 20
044527,000036: 21,2000 SETLOC DAPS3
044528,000037: 21,2000 BANK
044529,000038:
044530,000039: 21,2105 COUNT 21/DAPRC
044531,000040:
044532,000041: 21,2105 E6,1510 EBANK= KMPAC
044533,000042: 21,2105 22016 REDORCS LXCH BANKRUPT # RESTART OF AUTOPILOT COMES HERE
044534,000043: 21,2106 31465 CA T5PHASE # ON A T5 RUPT
044535,000044: 21,2107 00006 EXTEND
044536,000045: 21,2110 62112 BZMF +2 # IF T5PHASE +0, -0, OR -, RESET TO -
044537,000046: 21,2111 12114 TCF +3 # IF T5PHASE +, LEAVE IT +. DO A FRESHDAP
044538,000047: 21,2112 45017 CS ONE
044539,000048: 21,2113 55465 TS T5PHASE
044540,000049: 21,2114 00006 EXTEND
044541,000050: 21,2115 32121 DCA RCSLOC
044542,000051: 21,2116 53313 DXCH T5LOC # HOOK UP T5RUPT TO AUTOPILOT
044543,000052: 21,2117 12123 TCF RCSATT +1
044544,000053: 21,2120 E6,1510 EBANK= KMPAC
044545,000054: 21,2120 02122 42066 RCSLOC 2CADR RCSATT
044546,000055:
044547,000056: 21,2122 22016 RCSATT LXCH BANKRUPT # SAVE BB
044548,000057: 21,2123 00006 EXTEND # SAVE Q
044549,000058: 21,2124 22012 QXCH QRUPT
044550,000059: 21,2125 35001 CAF BIT15 # BIT15 CHAN31 = 0 IF IMU POWER IS ON AND
044551,000060: 21,2126 00006 EXTEND # S/C CONT SW IS IN CMC (I.E., IF G/C AUTO
044552,000061: 21,2127 02031 RAND CHAN31 # PILOT IS FULLY ENABLED)
044553,000062: 21,2130 00006 EXTEND
044554,000063: 21,2131 12160 BZF SETT5 # IF G/C AUTOPILOT IS FULLY ENABLED,
044555,000064: # GO TO SETT5
044556,000065:
044557,000066: 21,2132 41501 CS RCSFLAGS # IF G/C AUTOPILOT IS NOT FULLY ENABLED,
044558,000067: 21,2133 75002 MASK BIT14
044559,000068: 21,2134 27501 ADS RCSFLAGS # SET NORATE FLAG,
044560,000069: 21,2135 34777 CAF POSMAX
044561,000070: 21,2136 55332 TS HOLDFLAG # SET HOLDFLAG +,
044562,000071: 21,2137 35021 CAF ZERO # ZERO ERRORX, ERRORY, AND ERRORZ,
044563,000072: 21,2140 55567 TS ERRORX
044564,000073: 21,2141 55570 TS ERRORY
044565,000074: 21,2142 55571 TS ERRORZ
044566,000075: 21,2143 35002 CAF BIT14
044567,000076: 21,2144 00006 EXTEND
044568,000077: 21,2145 02031 RAND CHAN31 # AND CHECK FREE FUNCTION (BIT14 CHAN31).
044569,000078: 21,2146 00006 EXTEND
044570,000079: # Page 1003
044571,000080: 21,2147 12160 BZF SETT5 # IF IN FREE MODE, GO TO SETT5.
044572,000081:
044573,000082: 21,2150 55465 TS T5PHASE # IF NOT IN FREE MODE,
044574,000083: 21,2151 37676 CAF OCT37766 # SCHEDULE REINITIALIZATION (FRESHDAP)
044575,000084: 21,2152 54030 TS TIME5 # IN 100 MS VIA T5RUPT
044576,000085:
044577,000086: 21,2153 02632 TCR ZEROJET # ZERO JET CHANNELS IN 14 MS VIA ZEROJET
044578,000087:
044579,000088: 21,2154 12350 TCF KMATRIX
044580,000089: 21,2155 37770 DELTATT OCT 37770 # 80MS (TIME5)
044581,000090: 21,2156 37776 DELTATT2 OCT 37776 # 20MS (TIME5)
044582,000091: 21,2157 37634 ONESEK DEC 16284 B-14 # 1 SEC(TIME5)
044583,000092: 21,2160 CHAN5 EQUALS 5
044584,000093: 21,2160 CHAN6 EQUALS 6
044585,000094: 21,2160 7671 PRIO34A = PRIO34
044586,000095:
044587,000096: # CHECK PHASE OF T5 PROGRAM
044588,000097:
044589,000098: # BECAUSE OF THE LENGTH OF THE T5 PROGRAM,IT HAS BEEN DIVIDED INTO
044590,000099: # THREE PARTS, T5PHASE1, T5PHASE2, AND THE JET SELECTION LOGIC,
044591,000100: # TO ALLOW FOR THE EXECUTION OF OTHER
044592,000101: # INTERRUPTS. T5PHASE IS ALSO USED IN THE INITIALIZATION OF THE AUTOPILOT
044593,000102: # VARIABLES AT TURN ON.
044594,000103:
044595,000104: # THE CODING OF T5PHASE IS...
044596,000105:
044597,000106: # + = INITIALIZE T5 RCS-CSM AUTOPILOT
044598,000107: # T5PHASE = +0 = PHASE2 OF THE T5 PROGRAM
044599,000108: # - = RESTART DAP
044600,000109: # -0 = PHASE1 OF THE T5 PROGRAM
044601,000110:
044602,000111: 21,2160 11465 SETT5 CCS T5PHASE
044603,000112: 21,2161 12544 TCF FRESHDAP # TURN ON AUTOPILOT
044604,000113: 21,2162 12661 TCF T5PHASE2 # BRANCH TO PHASE2 OF PROGRAM
044605,000114: 21,2163 12546 TCF REDAP # RESTART AUTOPILOT
044606,000115:
044607,000116: 21,2164 55465 TS T5PHASE # PHASE 1 RESET FOR PHASE 2
044608,000117: 21,2165 30030 CA TIME5
044609,000118: 21,2166 55634 TS T5TIME # USED IN COMPENSATING FOR DELAYS IN T5
044610,000119: 21,2167 32156 CAF DELTATT2 # RESET FOR T5RUPT IN 20MS FOR PHASE2
044611,000120: 21,2170 54030 TS TIME5 # OF PROGRAM
044612,000121:
044613,000122: # Page 1004
044614,000123: # IMU STATUS CHECK
044615,000124:
044616,000125: 21,2171 41321 CS IMODES33 # CHECK IMU STATUS
044617,000126: 21,2172 75012 MASK BIT6 # BIT6 = 0 IMU OK
044618,000127: 21,2173 10000 CCS A # BIT6 = 1 NO IMU
044619,000128: 21,2174 12210 TCF RATEFILT
044620,000129: 21,2175 41501 FREECHK CS RCSFLAGS # BIT14 INDICATES THAT RATES HAVE NOT BEEN
044621,000130: 21,2176 75002 MASK BIT14 # INITIALIZED
044622,000131: 21,2177 27501 ADS RCSFLAGS
044623,000132: 21,2200 35002 CAF BIT14 # NO ATTITUDE REFERENCE
044624,000133: 21,2201 55332 TS HOLDFLAG # STOP ANY AUTOMATIC STEERING AND PREPARE
044625,000134: # TO PICK UP CDU ANGLES UPON RESUMPTION OF
044626,000135: # ATTITUDE HOLD
044627,000136: 21,2202 00006 EXTEND
044628,000137: 21,2203 02031 RAND CHAN31 # CHECK FOR FREE MODE
044629,000138: 21,2204 00006 EXTEND
044630,000139: 21,2205 12417 BZF KRESUME1 # IN FREE MODE PROVIDE FREE CONTROL ONLY
044631,000140: 21,2206 12534 TCF REINIT # .....TILT...............................
044632,000141: 21,2207 00030 BITS4,5 OCT 30
044633,000142:
044634,000143: 21,2210 31501 RATEFILT CA RCSFLAGS # SEE IF RATEFILTER HAS BEEN INITIALIZED
044635,000144: 21,2211 75002 MASK BIT14
044636,000145: 21,2212 00006 EXTEND # IF SO, PROCEED WITH RATE DERIVATION
044637,000146: 21,2213 12215 BZF +2
044638,000147: 21,2214 12350 TCF KMATRIX # IF NOT, SKIP RATE DERIVATION
044639,000148:
044640,000149: # RATE FILTER TIMING = 7.72 MS
044641,000150:
044642,000151: # RATE FILTER EQUATIONS
044643,000152:
044644,000153:
044645,000154: # DRHO = DELRHO - (.1)ADOT + (1 = GAIN1)DRHO
044646,000155: # -1
044647,000156:
044648,000157: # ADOT = ADOT + GAIN2 DRHO + KMJ DFT
044649,000158: # -1
044650,000159: # _ * _ _
044651,000160: # WHERE DELRHO = AMGB (CDU - CDU )
044652,000161: # -1
044653,000162:
044654,000163: 21,2215 35016 CAF TWO
044655,000164: 21,2216 55506 DRHOLOOP TS SPNDX
044656,000165: 21,2217 60000 DOUBLE
044657,000166: 21,2220 55507 TS DPNDX
044658,000167: 21,2221 51507 INDEX DPNDX
044659,000168: 21,2222 41552 CS DRHO # DRHO SCALED 180 DEGS
044660,000169: 21,2223 00006 EXTEND
044661,000170: 21,2224 51617 INDEX ATTKALMN # PICK UP DESIRED FILTER GAIN
044662,000171: 21,2225 73077 MP GAIN1
044663,000172: 21,2226 51507 INDEX DPNDX
044664,000173: 21,2227 21553 DAS DRHO # (1 -.064) DRHO
044665,000174: 21,2230 00006 EXTEND
044666,000175: # Page 1005
044667,000176: 21,2231 51507 INDEX DPNDX
044668,000177: 21,2232 41534 DCS ADOT
044669,000178: 21,2233 53511 DXCH KMPAC # -(.1)ADOT
044670,000179: 21,2234 35003 CA QUARTER
044671,000180: 21,2235 02042 TC SMALLMP
044672,000181: 21,2236 53511 DXCH KMPAC
044673,000182: 21,2237 51507 INDEX DPNDX
044674,000183: 21,2240 21553 DAS DRHO
044675,000184: 21,2241 11506 CCS SPNDX
044676,000185: 21,2242 12216 TCF DRHOLOOP
044677,000186:
044678,000187: 21,2243 30032 CA CDUX # MEASURED BODY RATES--
044679,000188: 21,2244 57635 XCH RHO
044680,000189: 21,2245 00006 EXTEND
044681,000190: 21,2246 21635 MSU RHO # _ * _ _
044682,000191: 21,2247 40000 COM # DELRHO = AMGB (CDU - CDU )
044683,000192: # -1
044684,000193: 21,2250 22007 ZL
044685,000194: 21,2251 53516 DXCH DELTEMPX
044686,000195: 21,2252 30033 CA CDUY
044687,000196: 21,2253 57636 XCH RHO1
044688,000197: 21,2254 00006 EXTEND
044689,000198: 21,2255 21636 MSU RHO1
044690,000199: 21,2256 40000 COM
044691,000200: 21,2257 55502 TS T5TEMP # (CDUY - RHO1) SCALED 90 DEGS
044692,000201: 21,2260 00006 EXTEND
044693,000202: 21,2261 71640 MP AMGB1
044694,000203: 21,2262 21516 DAS DELTEMPX # DELTEMPX = (CDUX-RHO) + AMGB1(CDUY-RHO1)
044695,000204: # MUST BE DOUBLE PRECISION OR WILL LOSE
044696,000205: # PULSES
044697,000206: 21,2263 31641 CA AMGB4
044698,000207: 21,2264 00006 EXTEND
044699,000208: 21,2265 71502 MP T5TEMP
044700,000209: 21,2266 53520 DXCH DELTEMPY
044701,000210: 21,2267 31643 CA AMGB7
044702,000211: 21,2270 00006 EXTEND
044703,000212: 21,2271 71502 MP T5TEMP
044704,000213: 21,2272 53522 DXCH DELTEMPZ
044705,000214: 21,2273 30034 CA CDUZ
044706,000215: 21,2274 57637 XCH RHO2
044707,000216: 21,2275 00006 EXTEND
044708,000217: 21,2276 21637 MSU RHO2
044709,000218: 21,2277 40000 COM
044710,000219: 21,2300 55502 TS T5TEMP # (CDUZ - RHO2) SCALED 90 DEGS
044711,000220: 21,2301 00006 EXTEND
044712,000221: 21,2302 71642 MP AMGB5
044713,000222: 21,2303 21520 DAS DELTEMPY # DELTEMPY = AMGB4(CDUY-RHO1)
044714,000223: # + AMGB5(CDUZ-RHO2)
044715,000224: 21,2304 31644 CA AMGB8
044716,000225: 21,2305 00006 EXTEND
044717,000226:
044718,000227: # Page 1006
044719,000228: 21,2306 71502 MP T5TEMP
044720,000229: 21,2307 21522 DAS DELTEMPZ # DELTEMPZ = AMBG7(CDUY-RHO1)
044721,000230: # + AMGB8(CDUZ-RHO2)
044722,000231: 21,2310 35016 CAF TWO
044723,000232: 21,2311 55506 ADOTLOOP TS SPNDX
044724,000233: 21,2312 60000 DOUBLE
044725,000234: 21,2313 55507 TS DPNDX
044726,000235: 21,2314 00006 EXTEND
044727,000236: 21,2315 51507 INDEX DPNDX
044728,000237: 21,2316 31516 DCA DELTEMPX
044729,000238: 21,2317 51507 INDEX DPNDX
044730,000239: 21,2320 21553 DAS DRHO
044731,000240: 21,2321 00006 EXTEND
044732,000241: 21,2322 51507 INDEX DPNDX
044733,000242: 21,2323 31516 DCA DELTEMPX
044734,000243: 21,2324 51507 INDEX DPNDX
044735,000244: 21,2325 21542 DAS MERRORX
044736,000245: 21,2326 51507 INDEX DPNDX
044737,000246: 21,2327 31552 CA DRHO
044738,000247: 21,2330 60000 DOUBLE # N.B.
044739,000248: 21,2331 60000 DOUBLE # N.B.
044740,000249: 21,2332 00006 EXTEND
044741,000250: 21,2333 51617 INDEX ATTKALMN # PICK UP DESIRED FILTER GAINS
044742,000251: 21,2334 73115 MP GAIN2
044743,000252: 21,2335 51507 INDEX DPNDX # ADOT + (.16)(.1)DRHO
044744,000253: 21,2336 21534 DAS ADOT # -1
044745,000254: 21,2337 51506 INDEX SPNDX # S/C TORQUE TO INERTIA RATIO
044746,000255: 21,2340 31620 CA KMJ # SCALED (450)(1600)/(57.3)(16384)=1/1.3
044747,000256: 21,2341 00006 EXTEND
044748,000257: 21,2342 51506 INDEX SPNDX
044749,000258: 21,2343 71547 MP DFT
044750,000259: 21,2344 51507 INDEX DPNDX
044751,000260: 21,2345 21534 DAS ADOT # KMJ(DFT)
044752,000261: 21,2346 11506 CCS SPNDX
044753,000262: 21,2347 12311 TCF ADOTLOOP # END CALCULATION OF VEHICLE RATES
044754,000263: 21,2350 31560 KMATRIX CA ATTSEC
044755,000264: 21,2351 75026 MASK LOW4
044756,000265: 21,2352 10000 CCS A
044757,000266: 21,2353 12361 TCF TENTHSEK
044758,000267: 21,2354 37671 CAF PRIO34 # CALL FOR 1 SEC UPDATE OF TRANSFORMATION
044759,000268: 21,2355 05134 TC NOVAC # MATRIX FROM GIMBAL AXES TO BODY AXES
044760,000269: 21,2356 E6,1510 EBANK= KMPAC
044761,000270: 21,2356 03447 44066 2CADR AMBGUPDT
044762,000271:
044763,000272: 21,2360 34334 CAF NINE
044764,000273:
044765,000274: 21,2361 55560 TENTHSEK TS ATTSEC
044766,000275:
044767,000276: # Page 1007
044768,000277: # WHEN AUTOMATIC MANEUVERS ARE BEING PERFORMED, THE FOLLOWING ANGLE ADDITION MUST BE MADE TO PROVIDE A SMOOTH
044769,000278: # SEQUENCE OF ANGULAR COMMANDS TO THE AUTOPILOT--
044770,000279:
044771,000280: # CDUXD = CDUXD + DELCDUX (DOUBLE PRECISION)
044772,000281: # CDUYD = CDUYD + DELCDUY (DOUBLE PRECISION)
044773,000282: # CDUZD = CDUZD + DELCDUZ (DOUBLE PRECISION)
044774,000283:
044775,000284: # THE STEERING PROGRAMS:
044776,000285: # 1) ATTITUDE MANEUVER ROUTINE
044777,000286: # 2) LEM TRACKING
044778,000287:
044779,000288: # SHOULD GENERATE THE DESIRED ANGLES (CDUXD, CDUYD, CDUZD) AS WELL AS THE INCREMENTAL ANGLES (DELCDUX, DELCDUY,
044780,000289: # DELCDUZ) SO THAT THE GIMBAL ANGLE COMMANDS CAN BE INTERPOLATED BETWEEN UPDATES.
044781,000290:
044782,000291: # HOLDFLAG CODING:
044783,000292:
044784,000293: # + = GRAB PRESENT CDU ANGLES AND STORE IN THETADX, THETADY, THETADZ
044785,000294: # AND PERFORM ATTITUDE HOLD ABOUT THESE ANGLES
044786,000295: # ALSO IGNORE AUTOMATIC STEERING
044787,000296: # SET = + BY
044788,000297: # 1) INITIALIZATION PHASE OF AUTOPILOT
044789,000298: # 2) OCCURANCE OF RHC COMMANDS
044790,000299: # 3) FREE MODE
044791,000300: # 4) SWITCH OVER TO ATTITUDE HOLD FROM AUTO
044792,000301: # WHILE DOING AUTOMATIC STEERING (IN THIS CASE
044793,000302: # HOLDFLAG IS NOT ACTUALLY SET TO +, BUT THE LOGIC
044794,000303: # FUNCTIONS AS IF IT WERE.)
044795,000304: # 5) S/C CONTROL SWITCH IS SCS
044796,000305: # 6) IMU POWER OFF
044797,000306: # +0 = IN ATTITUDE HOLD ABOUT A PREVIOUSLY ESTABLISHED REFERENCE
044798,000307: # - = PERFORMING AUTOMATIC MANEUVER
044799,000308: # -0 = NOT USED AT PRESENT
044800,000309:
044801,000310: # NOTE THAT THIS FLAG MUST BE SET = - BY THE STEERING PROGRAM IF IT IS TO COMMAND THE AUTOPILOT.
044802,000311: # SINCE ASTRONAUT ACTION MAY CHANGE THE HOLDFLAG SETTING, IT SHOULD BE MONITORED BY THE STEERING PROGRAM TO
044803,000312: # DETERMINE IF THE AUTOMATIC SEQUENCE HAS BEEN INTERRUPTED AND IF SO, TAKE THE APPROPRIATE ACTION.
044804,000313:
044805,000314: 21,2362 41332 CS HOLDFLAG
044806,000315: 21,2363 00006 EXTEND
044807,000316: 21,2364 62411 BZMF DACNDLS # IF HOLDFLAG +0,-0,+, BYPASS AUTOMATIC
044808,000317: # COMMANDS.
044809,000318: 21,2365 35016 DCDUINCR CAF TWO
044810,000319: 21,2366 55506 DELOOP TS SPNDX
044811,000320: 21,2367 60000 DOUBLE
044812,000321: 21,2370 55507 TS DPNDX
044813,000322: 21,2371 00006 EXTEND
044814,000323: 21,2372 50000 INDEX A
044815,000324: 21,2373 31647 DCA CDUXD
044816,000325: # Page 1008
044817,000326: 21,2374 53511 DXCH KMPAC
044818,000327: 21,2375 00006 EXTEND
044819,000328: 21,2376 51507 INDEX DPNDX
044820,000329: 21,2377 31576 DCA DELCDUX
044821,000330: 21,2400 02054 TC DPADD
044822,000331: 21,2401 00006 EXTEND
044823,000332: 21,2402 31511 DCA KMPAC
044824,000333: 21,2403 51506 INDEX SPNDX
044825,000334: 21,2404 55572 TS THETADX
044826,000335: 21,2405 51507 INDEX DPNDX
044827,000336: 21,2406 53647 DXCH CDUXD
044828,000337: 21,2407 11506 CCS SPNDX
044829,000338: 21,2410 12366 TCF DELOOP
044830,000339:
044831,000340: # Page 1009
044832,000341: # RCS-CSM AUTOPILOT ATTITUDE ERROR DISPLAY
044833,000342:
044834,000343: # THREE TYPES OF ATTITUDE ERRORS MAY BE DISPLAYED ON THE FDAI:
044835,000344:
044836,000345: # MODE 1) AUTOPILOT FOLLOWING ERRORS SELECTED BY V61E
044837,000346: # GENERATED INTERNALLY BY THE AUTOPILOT
044838,000347:
044839,000348: # MODE 2) TOTAL ATTITUDE ERRORS SELECTED BY V62E
044840,000349: # WITH RESPECT TO THE CONTENTS OF N22
044841,000350:
044842,000351: # MODE 3) TOTAL ASTRONAUT ATTITUDE ERRORS SELECTED BY V63E
044843,000352: # WITH RESPECT TO THE CONTENTS OF N17
044844,000353:
044845,000354: # MODE 1 IS PROVIDED AS A MONITOR OF THE RCS DAP AND ITS ABILITY TO TRACK AUTOMATIC STEERING COMMANDS. IN THIS
044846,000355: # MODE THE ATTITUDE ERRORS WILL BE ZEROED WHEN THE CMC MODE SWITCH IS IN FREE.
044847,000356:
044848,000357: # MODE 2 IS PROVIDED TO ASSIST THE CREW IN MANUALLY MANEUVERING THE S/C TO THE ATTITUDE (GIMBAL ANGLES) SPECIFIED
044849,000358: # IN N22. THE ATTITUDE ERRORS WRT THESE ANGLES AND THE CURRENT CDU ANGLES ARE RESOLVED INTO S/C CONTROL AXES
044850,000359: # AS A FLY-TO INDICATOR.
044851,000360:
044852,000361: # MODE 3 IS PROVIDED TO ASSIST THE CREW IN MANUALLY MANEUVERING THE S/C TO THE ATTITUDE (GIMBAL ANGLES) SPECIFIED
044853,000362: # IN N17. THE ATTITUDE ERRORS WRT THESE ANGLES AND THE CURRENT CDU ANGLES ARE RESOLVED INTO S/C CONTROL AXES
044854,000363: # AS A FLY-TO INDICATOR.
044855,000364:
044856,000365: # V60 IS PROVIDED TO LOAD N17 WITH A SNAPSHOT OF THE CURRENT CDU ANGLES, THUS SYNCHRONIZING THE MODE 3 DISPLAY
044857,000366: # WITH THE CURRENT S/C ATTITUDE. THIS VERB MAY BE USED AT ANY TIME.
044858,000367:
044859,000368: # THESE DISPLAYS WILL BE AVAILABLE IN ANY MODE (AUTO, HOLD, FREE, G+N, OR SCS) ONCE THE RCS DAP HAS BEEN
044860,000369: # INITIATED VIA V46E. MODE 1, HOWEVER, WILL BE MEANINGFUL ONLY IN G+N AUTO OR HOLD. THE CREW MAY PRESET (VIA
044861,000370: # V25N17) AN ATTITUDE REFERENCE (DESIRED GIMBAL ANGLES) INTO N17 AT ANY TIME.
044862,000371:
044863,000372: 21,2411 41501 DACNDLS CS RCSFLAGS # ALTERNATE BETWEEN FDAIDSP1 AND FDAIDSP2
044864,000373: 21,2412 75014 MASK BIT4
044865,000374: 21,2413 00006 EXTEND
044866,000375: 21,2414 13160 BZF FDAIDSP2
044867,000376:
044868,000377: 21,2415 27501 FDAIDSP1 ADS RCSFLAGS
044869,000378: 21,2416 02420 TC NEEDLER
044870,000379: 21,2417 15333 KRESUME1 TCF RESUME # END PHASE 1
044871,000380:
044872,000381: # Page 1010
044873,000382: # FDAI ATTITUDE ERROR DISPLAY SUBROUTINE
044874,000383:
044875,000384: # PROGRAM DESCRIPTION: D. KEENE 5/24/67
044876,000385:
044877,000386: # THIS SUBROUTINE IS USED TO DISPLAY ATTITUDE ERRORS ON THE FDAI VIA THE DIGITAL TO ANALOG CONVERTERS (DACS)
044878,000387: # IN THE CDUS. CARE IS TAKEN TO METER OUT THE APPROPRIATE NUMBER OF PULSES TO THE IMU ERROR COUNTERS AND PREVENT
044879,000388: # OVERFLOW, TO CONTROL THE RELAY SEQUENCING, AND TO AVOID INTERFERENCE WITH THE COARSE ALIGN LOOP WHICH ALSO USES
044880,000389: # THE DACS.
044881,000390:
044882,000391: # CALLING SEQUENCE:
044883,000392:
044884,000393: # DURING THE INITIALIZATION SECTION OF THE USER'S PROGRAM, BIT3 OF RCSFLAGS SHOULD BE SET TO INITIATE THE
044885,000394: # TURN-ON SEQUENCE WITHIN THE NEEDLES PROGRAM:
044886,000395:
044887,000396: # CS RCSFLAGS # IN EBANK6
044888,000397: # MASK BIT3
044889,000398: # ADS RCSFLAGS
044890,000399:
044891,000400: # THEREAFTER, THE ATTITUDE ERRORS GENERATED BY THE USER SHOULD BE TRANFERRED TO THE FOLLOWING LOCATIONS IN EBANK6:
044892,000401:
044893,000402: # AK SCALED 180 DEGREES NOTE: THESE LOCATIONS ARE SUBJECT
044894,000403: # AK1 SCALED 180 DEGREES TO CHANGE
044895,000404: # AK2 SCALED 180 DEGREES
044896,000405:
044897,000406: # FULL SCALED DEFLECTION CORRESPONDS TO 16 7/8 DEGREES OF ATTITUDE ERROR
044898,000407: # (= 384 BITS IN IMU ERROR COUNTER)
044899,000408:
044900,000409: # A CALL TO NEEDLER WILL THEN UPDATE THE DISPLAY:
044901,000410:
044902,000411: # INHINT
044903,000412: # TC IBNKCALL # NOTE: EBANK SHOULD BE SET TO E6
044904,000413: # CADR NEEDLER
044905,000414: # RELINT
044906,000415:
044907,000416: # THIS PROCESS SHOULD BE REPEATED EACH TIME THE ERRORS ARE UPDATED. AT LEAST 3 PASSES THRU THE PRORAM ARE
044908,000417: # REQUIRED BEFORE ANYTHING IS ACTUALLY DISPLAYED ON THE ERROR METERS.
044909,000418: # NOTE: EACH CALL TO NEEDLER MUST BE SEPARATED BY AT LEAST 50MS TO ASSURE PROPER RELAY SEQUENCING.
044910,000419:
044911,000420: # ERASABLE USED:
044912,000421: # AK CDUXCMD
044913,000422: # AK1 CDUYCMD
044914,000423: # AK2 CDUZCMD
044915,000424: # EDRIVEX A,L,Q
044916,000425: # EDRIVEY T5TEMP
044917,000426: # EDRIVEZ SPNDX
044918,000427:
044919,000428: # SWITCHES; RCSFLAGS BITS 3,2
044920,000429:
044921,000430: # I/O CHANNELS: CHAN12 BIT 4 (COARSE ALIGN - READ ONLY)
044922,000431: # Page 1011
044923,000432: # CHAN12 BIT 6 (IMU ERROR COUNTER ENABLE)
044924,000433: # CHAN14 BIT 13,14,15 (DAC ACTIVITY)
044925,000434:
044926,000435: # SIGN CONVENTION: AK = THETAC - THETA
044927,000436: # WHERE THETAC = COMMAND ANGLE
044928,000437: # THETA = PRESENT ANGLE
044929,000438:
044930,000439: 21,2420 35014 NEEDLER CAF BIT4 # CHECK FOR COARSE ALIGN ENABLE
044931,000440: 21,2421 00006 EXTEND # IF IN COARSE ALIGN DO NOT USE IMU
044932,000441: 21,2422 02012 RAND CHAN12 # ERROR COUNTERS. DON'T USE NEEDLES
044933,000442: 21,2423 00006 EXTEND
044934,000443: 21,2424 12431 BZF NEEDLER1
044935,000444: 21,2425 41501 CS RCSFLAGS # SET BIT3 FOR INITIALIZATION PASS
044936,000445: 21,2426 75015 MASK BIT3
044937,000446: 21,2427 27501 ADS RCSFLAGS
044938,000447: 21,2430 00002 TC Q
044939,000448:
044940,000449: 21,2431 31501 NEEDLER1 CA RCSFLAGS
044941,000450: 21,2432 76211 MASK SIX
044942,000451: 21,2433 00006 EXTEND
044943,000452: 21,2434 12471 BZF NEEDLES3
044944,000453: 21,2435 75015 MASK BIT3
044945,000454: 21,2436 00006 EXTEND
044946,000455: 21,2437 12462 BZF NEEDLER2 # BIT3 = 0, BIT2 = 1
044947,000456:
044948,000457: 21,2440 45012 CS BIT6 # FIRST PASS BIT3 = 1
044949,000458: 21,2441 00006 EXTEND # DISABLE IMU ERROR COUNTER TO ZERO DACS
044950,000459: 21,2442 03012 WAND CHAN12 # MUST WAIT AT LEAST 60 MS. BEFORE
044951,000460: 21,2443 45021 NEEDLE11 CS ZERO # ENABLING COUNTERS.
044952,000461: 21,2444 55476 TS AK # ZERO THE INPUTS ON FIRST PASS
044953,000462: 21,2445 55477 TS AK1
044954,000463: 21,2446 55500 TS AK2
044955,000464: 21,2447 55503 TS EDRIVEX # ZERO THE DISPLAY REGISTERS
044956,000465: 21,2450 55504 TS EDRIVEY
044957,000466: 21,2451 55505 TS EDRIVEZ
044958,000467: 21,2452 54050 TS CDUXCMD # ZERO THE OUT COUNTERS
044959,000468: 21,2453 54051 TS CDUYCMD
044960,000469: 21,2454 54052 TS CDUZCMD
044961,000470: 21,2455 46211 CS SIX # RESET RCSFLAGS FOR PASS2
044962,000471: 21,2456 71501 MASK RCSFLAGS
044963,000472: 21,2457 65016 AD BIT2
044964,000473: 21,2460 55501 TS RCSFLAGS
044965,000474: 21,2461 00002 TC Q # END PASS1
044966,000475:
044967,000476: 21,2462 35012 NEEDLER2 CAF BIT6 # ENABLE IMU ERROR COUNTERS
044968,000477: 21,2463 00006 EXTEND
044969,000478: 21,2464 05012 WOR CHAN12
044970,000479: 21,2465 46211 CS SIX # RESET RCSFLAGS TO DISPLAY ATTITUDE
044971,000480: # Page 1012
044972,000481: 21,2466 71501 MASK RCSFLAGS # ERRORS WAIT AT LEAST 4 MS FOR
044973,000482: 21,2467 55501 TS RCSFLAGS # RELAY CLOSURE
044974,000483: 21,2470 00002 TC Q
044975,000484:
044976,000485: 21,2471 35012 NEEDLES3 CAF BIT6 # CHECK TO SEE IF IMU ERROR COUNTER
044977,000486: 21,2472 00006 EXTEND # IS ENABLED
044978,000487: 21,2473 02012 RAND CHAN12
044979,000488: 21,2474 00006 EXTEND # IF NOT RECYCLE NEEDLES
044980,000489: 21,2475 12425 BZF NEEDLER +5
044981,000490:
044982,000491: 21,2476 35016 NEEDLES CAF TWO
044983,000492: 21,2477 55506 DACLOOP TS SPNDX
044984,000493: 21,2500 45003 CS QUARTER
044985,000494: 21,2501 00006 EXTEND
044986,000495: 21,2502 51506 INDEX SPNDX
044987,000496: 21,2503 71476 MP AK
044988,000497: 21,2504 54001 TS L
044989,000498: 21,2505 10000 CCS A
044990,000499: 21,2506 32542 CA DACLIMIT
044991,000500: 21,2507 12511 TCF +2
044992,000501: 21,2510 42542 CS DACLIMIT
044993,000502: 21,2511 60001 AD L
044994,000503: 21,2512 55502 TS T5TEMP # OVFLO CHK
044995,000504: 21,2513 12517 TCF +4
044996,000505: 21,2514 50000 INDEX A # ON OVERFLOW LIMIT OUTPUT TO +-384
044997,000506: 21,2515 32542 CAF DACLIMIT
044998,000507: 21,2516 54001 TS L
044999,000508: 21,2517 51506 INDEX SPNDX
045000,000509: 21,2520 41503 CS EDRIVEX # CURRENT VALUE OF DAC
045001,000510: 21,2521 60001 AD L
045002,000511: 21,2522 51506 INDEX SPNDX
045003,000512: 21,2523 26050 ADS CDUXCMD
045004,000513: 21,2524 51506 INDEX SPNDX
045005,000514: 21,2525 23503 LXCH EDRIVEX
045006,000515: 21,2526 11506 CCS SPNDX
045007,000516: 21,2527 12477 TCF DACLOOP
045008,000517: 21,2530 37707 CAF 13,14,15
045009,000518: 21,2531 00006 EXTEND
045010,000519: 21,2532 05014 WOR CHAN14 # SET DAC ACTIVITY BITS
045011,000520: 21,2533 00002 TC Q
045012,000521:
045013,000522: 21,2534 32540 REINIT CAF DELAY200 # ........TILT LOGIC
045014,000523: 21,2535 54030 TS TIME5 # REINITIALIZE DAP IN 200MS
045015,000524: 21,2536 55465 TS T5PHASE
045016,000525: 21,2537 15333 TCF RESUME
045017,000526: 21,2540 37754 DELAY200 DEC 16364 B-14 # 200MS
045018,000527:
045019,000528: 21,2541 77177 DEC -384 B-14
045020,000529:
045021,000530: # Page 1013
045022,000531: 21,2542 37200 DACLIMIT DEC 16000 B-14
045023,000532: 21,2543 00600 DEC 384 B-14
045024,000533:
045025,000534: # Page 1014
045026,000535: # INITIALIZATION PROGRAM FOR RCS-CSM AUTOPILOT
045027,000536:
045028,000537: # THE FOLLOWING QUANTITIES WILL BE ZEROED AND SHOULD APPEAR IN CONSECUTIVE LOCATIONS IN MEMORY AFTER WBODY
045029,000538:
045030,000539: # WBODY (+1) DFT TAU2
045031,000540: # WBODY1 (+1) DFT1 BIAS
045032,000541: # WBODY2 (+1) DFT2 BIAS1
045033,000542: # ADOT (+1) DRHO (+1) BIAS2
045034,000543: # ADOT1 (+1) DRHO1 (+1) ERRORX
045035,000544: # ADOT2 (+1) DRHO2 (+1) ERRORY
045036,000545: # MERRORX (+1) ATTSEC ERRORZ
045037,000546: # MERRORY (+1) TAU
045038,000547: # MERRORZ (+1) TAU1
045039,000548:
045040,000549: 21,2544 35017 FRESHDAP CAF ONE # RESET HOLDFLAG TO STOP AUTOMATIC
045041,000550: 21,2545 55332 TS HOLDFLAG # STEERING AND PREPARE TO PICK UP AN
045042,000551: # ATTITUDE HOLD REFERENCE
045043,000552:
045044,000553: 21,2546 04740 REDAP TC IBNKCALL # DECODE DAPDATR1, DAPDATR2 FOR DEADBANDS
045045,000554: 21,2547 40347 CADR S41.2 # RATES, QUADFAILS, QUAD MANAGEMENT
045046,000555:
045047,000556: 21,2550 04740 TC IBNKCALL # DECODE IXX, IAVG, AND CONVERT
045048,000557: 21,2551 40500 CADR S40.14 # TO AUTOPILOT GAINS
045049,000558:
045050,000559: 21,2552 32623 CAF NO.T5VAR # NO. LOCATIONS TO BE ZEROED MINUS ONE
045051,000560: 21,2553 55506 ZEROT5 TS SPNDX # ZERO ALL NECESSARY ERASABLE REGISTERS
045052,000561: 21,2554 35021 CAF ZERO
045053,000562: 21,2555 51506 INDEX SPNDX
045054,000563: 21,2556 55525 TS WBODY
045055,000564: 21,2557 11506 CCS SPNDX
045056,000565: 21,2560 12553 TCF ZEROT5
045057,000566: 21,2561 02632 TCR ZEROJET
045058,000567:
045059,000568: 21,2562 45021 CS ZERO
045060,000569: 21,2563 55633 TS CHANTEMP # INITIALIZE MINIMUM IMPULSE CONTROL
045061,000570:
045062,000571: 21,2564 55632 TS CH31TEMP # INITIALIZE RHC POSITION MEMORY FOR
045063,000572: # MANUAL RATE MODES
045064,000573:
045065,000574: 21,2565 32624 CAF =.24
045066,000575: 21,2566 55654 TS SLOPE # INITIALIZE SWITCHING LOGIC SLOPE
045067,000576:
045068,000577: 21,2567 35015 CAF FOUR
045069,000578: 21,2570 55634 TS T5TIME # PHASE 0 RESETS FOR PHASE 2 INTERRUPT IN
045070,000579: # 60 MS. PHASE 2 RESETS FOR PHASE 1 RUPT
045071,000580: # IN (80MS - T5TIME(40MS)). THEREFORE
045072,000581: # PHASE 1 (RATEFILTER) BEGINS CYCLING 100
045073,000582: # MS FROM NOW AND EVERY 100MS THEREAFTER.
045074,000583:
045075,000584: 21,2571 35024 CAF ELEVEN
045076,000585: 21,2572 55617 TS ATTKALMN # RESET TO PICK UP KALMAN FILTER TAINS
045077,000586: # TO INITIALIZE THE S/C ANGULAR RATES
045078,000587: # Page 1015
045079,000588: 21,2573 30032 CA CDUX
045080,000589: 21,2574 55635 TS RHO
045081,000590: 21,2575 30033 CA CDUY
045082,000591: 21,2576 55636 TS RHO1
045083,000592: 21,2577 30034 CA CDUZ
045084,000593: 21,2600 55637 TS RHO2
045085,000594: 21,2601 35021 CAF ZERO # RESET AUTOPILOT TO BEGIN EXECUTING
045086,000595: 21,2602 55465 TS T5PHASE # PHASE2 OF PROGRAM
045087,000596:
045088,000597: 21,2603 41321 CS IMODES33 # CHECK IMU STATUS
045089,000598: 21,2604 75012 MASK BIT6 # IF BIT6 = 0 IMU IN FINE ALIGN
045090,000599: 21,2605 10000 CCS A # IF BIT6 = 1 IMU NOT READY
045091,000600: 21,2606 12612 TCF IMUAOK
045092,000601: 21,2607 55617 TS ATTKALMN # CANNOT USE IMU
045093,000602: 21,2610 32626 CAF RCSINITB # PROVIDE FREE CONTROL ONLY
045094,000603: 21,2611 12617 TCF RCSSWIT # DON'T START UP RATE FILTER
045095,000604: # SIGNAL NO RATE FILTER
045096,000605:
045097,000606: 21,2612 37671 IMUAOK CAF PRIO34 # START MATRIX INITIALIZATION
045098,000607: 21,2613 05134 TC NOVAC # BYPASS IF IMU NOT IN FINE ALIGN
045099,000608: 21,2614 E6,1510 EBANK= KMPAC
045100,000609: 21,2614 03447 44066 2CADR AMBGUPDT
045101,000610:
045102,000611: 21,2616 32625 CAF RCSINIT # CLEAR BIT14 --ASSUME WE HAVE A GOOD IMU
045103,000612: 21,2617 55501 RCSSWIT TS RCSFLAGS # CLEAR BIT1 --INITIALIZE T6 PROGRAM
045104,000613: # SET BIT3 --INITIALIZE NEEDLES
045105,000614: # CLEAR BIT4 --RESET FOR FDAIDSP1
045106,000615: 21,2620 32627 CAF T5WAIT60 # NEXT T5RUPT 60 MS FROM NOW TO ALLOW IMU
045107,000616: # ERROR COUNTER TO ZERO.
045108,000617: # (MINIMUM DELAY = 15 MS)
045109,000618: 21,2621 54030 TS TIME5 # SINCE ATTKALMN IS +11, PROGRAM WILL THEN
045110,000619: 21,2622 05333 TC RESUME # PICK UP THE KALMAN FILTER GAINS. RATE
045111,000620: # FILTER WILL BEGIN OPERATING ZOOMS FROM
045112,000621: # NOW
045113,000622:
045114,000623: # CONSTANTS USED IN INITIALIZATION PROGRAM
045115,000624:
045116,000625: 21,2623 00044 NO.T5VAR DEC 36 B-14
045117,000626: 21,2624 07534 =.24 DEC .24 # = SLOPE OF 0.6/SEC
045118,000627: 21,2625 00004 RCSINIT OCT 00004
045119,000628: 21,2626 20004 RCSINITB OCT 20004
045120,000629: 21,2627 37772 T5WAIT60 DEC 16378 B-14 # = 6 CS
045121,000630: 21,2630 E6,1510 EBANK= KMPAC
045122,000631: 21,2630 03617 36066 T6ADDR 2CADR T6START
045123,000632:
045124,000633: 21,2632 35024 ZEROJET CAF ELEVEN # ZERO BLAST2, BLAST1, BLAST, YWORD2,
045125,000634: 21,2633 55506 TS SPNDX # YWORD1, PWORD2, PWORD1, RWORD2,
045126,000635: 21,2634 35021 CAF ZERO # AND RWORD1
045127,000636:
045128,000637: # Page 1016
045129,000638: 21,2635 51506 INDEX SPNDX
045130,000639: 21,2636 55451 TS RWORD1
045131,000640: 21,2637 11506 CCS SPNDX
045132,000641: 21,2640 12633 TCF ZEROJET +1
045133,000642:
045134,000643: 21,2641 35015 CAF FOUR
045135,000644: 21,2642 55462 TS BLAST1 +1
045136,000645: 21,2643 35024 CAF ELEVEN
045137,000646: 21,2644 55464 TS BLAST2 +1
045138,000647:
045139,000648: 21,2645 45017 CS BIT1
045140,000649: 21,2646 71501 MASK RCSFLAGS
045141,000650: 21,2647 55501 TS RCSFLAGS # RESET BIT1 OF RCSFLAGS TO 0
045142,000651:
045143,000652: 21,2650 00006 EXTEND
045144,000653: 21,2651 32631 DCA T6ADDR
045145,000654: 21,2652 53311 DXCH T6LOC
045146,000655: 21,2653 33050 CAF =+14MS # ENABLE T6RUPT TO SHUT OFF JETS IN 14 MS.
045147,000656: 21,2654 54031 TS TIME6
045148,000657: 21,2655 35001 CAF BIT15
045149,000658: 21,2656 00006 EXTEND
045150,000659: 21,2657 05013 WOR CHAN13
045151,000660:
045152,000661: 21,2660 00002 TC Q
045153,000662:
045154,000663: 21,2661 11617 T5PHASE2 CCS ATTKALMN # IF (+) INITIALIZE RATE ESTIMATE
045155,000664: 21,2662 13146 TCF KALUPDT
045156,000665:
045157,000666: 21,2663 12665 TCF +2 # ONLY IF ATTKALMN POSITIVE
045158,000667: 21,2664 12665 TCF +1
045159,000668: 21,2665 32156 CA DELTATT2 # RESET FOR PHASE3 IN 20 MS
045160,000669: 21,2666 56030 XCH TIME5 # (JET SELECTION LOGIC)
045161,000670: 21,2667 27634 ADS T5TIME # TO COMPENSATE FOR DELAYS IN T5RUPT
045162,000671:
045163,000672: 21,2670 31501 CA RCSFLAGS # IF A HIGH RATE AUTO MANEUVER IS IN
045164,000673: 21,2671 75001 MASK BIT15 # PROGRESS (BIT 15 OF RCSFLAGS SET), SET
045165,000674: 21,2672 00006 EXTEND # ATTKALMN TO -1
045166,000675: 21,2673 12675 BZF NOHIAUTO # OTHERWISE SET ATTKALMN TO 0.
045167,000676: 21,2674 45017 CS ONE
045168,000677: 21,2675 55617 NOHIAUTO TS ATTKALMN
045169,000678:
045170,000679: # Page 1017
045171,000680: # MANUAL ROTATION COMMANDS
045172,000681:
045173,000682: 21,2676 43032 CS OCT01760 # RESET FORCED FIRING BITS (BITS 10 TO 5
045174,000683: 21,2677 71501 MASK RCSFLAGS # OF RCSFLAGS) TO ZERO
045175,000684: 21,2700 55501 TS RCSFLAGS
045176,000685:
045177,000686: 21,2701 00006 EXTEND
045178,000687: 21,2702 00031 READ CHAN31
045179,000688: 21,2703 54001 TS L
045180,000689: 21,2704 31632 CA CH31TEMP
045181,000690: 21,2705 00006 EXTEND
045182,000691: 21,2706 06001 RXOR LCHAN
045183,000692: 21,2707 73036 MASK MANROT # = OCT00077
045184,000693: 21,2710 00006 EXTEND
045185,000694: 21,2711 62724 BZMF NOCHANGE
045186,000695:
045187,000696: 21,2712 22000 LXCH A
045188,000697: 21,2713 55632 TS CH31TEMP # SAVE CONTENTS OF CHANNEL 31 IN CH31TEMP
045189,000698:
045190,000699: 21,2714 30001 CA L
045191,000700: 21,2715 00006 EXTEND
045192,000701: 21,2716 75013 MP BIT5 # PUT BITS 6-1 OF A IN BITS 10-5 OF L
045193,000702: 21,2717 30001 CA L
045194,000703: 21,2720 27501 ADS RCSFLAGS # SET FORCED FIRING BITS FOR AXES WITH
045195,000704: # CHANGES IN COMMAND. BITS 10,9 FOR
045196,000705: # ROLL, BITS 8,7 FOR YAW, BITS 6,5 FOR
045197,000706: # PITCH
045198,000707:
045199,000708: 21,2721 41501 CS RCSFLAGS # SET RATE DAMPING FLAGS (BITS 13,12, AND
045200,000709: 21,2722 73037 MASK OCT16000 # 11 OF RCSFLAGS)
045201,000710: 21,2723 27501 ADS RCSFLAGS
045202,000711:
045203,000712: 21,2724 41632 NOCHANGE CS CH31TEMP
045204,000713: 21,2725 73036 MASK MANROT
045205,000714: 21,2726 00006 EXTEND
045206,000715: 21,2727 63250 BZMF AHFNOROT # IF NO MANUAL COMMANDS, GO TO AHFNOROT
045207,000716:
045208,000717: 21,2730 55332 TS HOLDFLAG # SET HOLDFLAG +
045209,000718:
045210,000719: 21,2731 03130 TC STICKCHK # WHEN THE RHC IS OUT OF DETENT, PMANNDX,
045211,000720: # YMANNDX, AND RMANNDX ARE ALL SET, BY
045212,000721: # MEANS OF STICKCHK, TO 0, 1, OR 2 FOR NO,
045213,000722: # +, OR - ROTATION RESPECTIVELY AS
045214,000723: # COMMANDED BY THE RHC.
045215,000724:
045216,000725: # HOWEVER, IT IS WELL TO NOTE THAT AFTER
045217,000726: # THE RHC IS RETURNED TO DETENT, THE
045218,000727: # PROGRAM BRANCHES TO AHFNOROT AND AVOIDS
045219,000728: # STICKCHK SO PMANNDX, YMANNDX, AND
045220,000729: # RMANNDX ARE NOT RESET TO ZERO BUT RATHER
045221,000730: # LEFT SET TO THEIR LAST OUT OF DETENT
045222,000731: # Page 1018
045223,000732: # VALUES.
045224,000733:
045225,000734: 21,2732 40075 CS FLAGWRD1 # SET STIKFLAG TO INFORM STEERING
045226,000735: 21,2733 75002 MASK BIT14 # PROGRAMS (P20) THAT ASTRONAUT HAS
045227,000736: 21,2734 26075 ADS FLAGWRD1 # ASSUMED ROTATIONAL CONTROL OF SPACECRAFT
045228,000737:
045229,000738: 21,2735 35002 CAF BIT14
045230,000739: 21,2736 00006 EXTEND
045231,000740: 21,2737 02031 RAND CHAN31
045232,000741: 21,2740 00006 EXTEND
045233,000742: 21,2741 63051 BZMF FREEFUNC
045234,000743:
045235,000744: 21,2742 31501 CA RCSFLAGS # EXAMINE RCSFLAGS TO SEE IF RATE FILTER
045236,000745: 21,2743 75002 MASK BIT14 # HAS BEEN INITIALIZED
045237,000746: 21,2744 10000 CCS A # IF SO, PROCEED WITH MANUAL RATE COMMANDS
045238,000747: 21,2745 12534 TCF REINIT # .....TILT, RECYCLE TO INITIALIZE FILTER
045239,000748:
045240,000749: 21,2746 45022 CS FIVE # IF MANUAL MANEUVER IS AT HIGH RTE, SET
045241,000750: 21,2747 61130 AD RATEINDX # ATTKALMN TO -1.
045242,000751: 21,2750 00006 EXTEND # OTHERWISE, LEAVE ATTKALMN ALONE.
045243,000752: 21,2751 62754 BZMF +3
045244,000753: 21,2752 45017 CS ONE
045245,000754: 21,2753 55617 TS ATTKALMN
045246,000755:
045247,000756: 21,2754 35016 CAF TWO # AUTO-HOLD MANUAL ROTATION
045248,000757: 21,2755 55506 SETWBODY TS SPNDX
045249,000758: 21,2756 60000 DOUBLE
045250,000759: 21,2757 55507 TS DPNDX
045251,000760: 21,2760 51506 INDEX SPNDX # RMANNDX = 0 NO ROTATION
045252,000761: 21,2761 31656 CA RMANNDX # = 1 + ROTATION
045253,000762: 21,2762 00006 EXTEND # = 2 - ROTATION
045254,000763: 21,2763 13005 BZF NORATE # IF NO ROTATION COMMAND ON THIS AXIS,
045255,000764: # GO TO NORATE.
045256,000765:
045257,000766: 21,2764 61130 AD RATEINDX # RATEINDX = 0 0.05 DEG/SEC
045258,000767: 21,2765 54002 TS Q # = 2 0.2 DEG/SEC
045259,000768: 21,2766 50002 INDEX Q # = 4 0.5 DEG/SEC
045260,000769: 21,2767 33037 CA MANTABLE -1 # = 6 2.0 DEG/SEC
045261,000770: 21,2770 00006 EXTEND
045262,000771: 21,2771 75007 MP BIT9 # MULTIPLY MANTABLE BY 2 TO THE -6
045263,000772: 21,2772 51507 INDEX DPNDX # TO GET COMMANDED RATE.
045264,000773: 21,2773 53526 DXCH WBODY # SET WBODY TO COMMANDED RATE.
045265,000774:
045266,000775: 21,2774 31501 CA RCSFLAGS
045267,000776: 21,2775 73037 MASK OCT16000 # IS RATE DAMPING COMPLETED (BITS 13,12 AND
045268,000777: 21,2776 00006 EXTEND # 11 OF RCSFLAGS ALL ZERO.) IF SO, GO TO
045269,000778: 21,2777 13015 BZF MERUPDAT # MERUPDAT TO UPDATE CUMULATIVE ATTITUDE
045270,000779: # ERROR.
045271,000780:
045272,000781: # Page 1019
045273,000782: 21,3000 35021 ZEROER CA ZERO # ZEROER ZEROS MERRORS
045274,000783: 21,3001 22007 ZL
045275,000784: 21,3002 51507 INDEX DPNDX
045276,000785: 21,3003 53542 DXCH MERRORX
045277,000786: 21,3004 13023 TCF SPNDXCHK
045278,000787:
045279,000788: 21,3005 22007 NORATE ZL
045280,000789: 21,3006 51507 INDEX DPNDX
045281,000790: 21,3007 53526 DXCH WBODY # ZERO WBODY FOR THIS AXIS
045282,000791: 21,3010 31501 CA RCSFLAGS
045283,000792: 21,3011 73037 MASK OCT16000
045284,000793: 21,3012 00006 EXTEND # IS RATE DAMPING COMPLETED
045285,000794: 21,3013 13023 BZF SPNDXCHK # YES, KEEP CURRENT MERRORX GO TO SPNDXCHK
045286,000795: 21,3014 13000 TCF ZEROER # NO, GO TO ZEROER
045287,000796:
045288,000797: 21,3015 50002 MERUPDAT INDEX Q # MERRORX=MERRORX+MEASURED CHANGE IN ANGLE
045289,000798: 21,3016 43037 CS MANTABLE -1 # -COMMANDED CHANGE IN ANGLE
045290,000799: 21,3017 00006 EXTEND # THE ADDITION OF MEASURED CHANGE IN ANGLE
045291,000800: 21,3020 75011 MP BIT7 # HAS ALREADY BEEN DONE IN THE RATE FILTER
045292,000801: 21,3021 51507 INDEX DPNDX # COMMANDED CHANGE IN ANGLE = WBODY TIMES
045293,000802: 21,3022 21542 DAS MERRORX # .1SEC = MANTABLE ENTRY TIMES 2 TO THE -8
045294,000803:
045295,000804: 21,3023 51507 SPNDXCHK INDEX DPNDX
045296,000805: 21,3024 31541 CA MERRORX
045297,000806: 21,3025 51506 INDEX SPNDX
045298,000807: 21,3026 55567 TS ERRORX # ERRORX = HIGH ORDER WORD OF MERRORX
045299,000808: 21,3027 11506 CCS SPNDX
045300,000809: 21,3030 12755 TCF SETWBODY
045301,000810: 21,3031 13441 TCF JETS
045302,000811:
045303,000812: 21,3032 01760 OCT01760 OCT 01760 # FORCED FIRING BITS MASK
045304,000813:
045305,000814: 21,3033 01400 OCT01400 OCT 01400 # ROLL FORCED FIRING MASK ORDER OF
045306,000815: 21,3034 00060 OCT00060 OCT 00060 # PITCH FORCED FIRING MASK DEFINITION
045307,000816: 21,3035 00300 OCT00300 OCT 00300 # YAW FORCED FIRING MASK MUST BE
045308,000817: # PRESERVED
045309,000818: # FOR INDEXING
045310,000819: 21,3036 00077 MANROT OCT 77
045311,000820: 21,3037 16000 OCT16000 OCT 16000 # RATE DAMPING FLAGS MASK
045312,000821: 21,3040 00165 MANTABLE DEC .0071111
045313,000822: 21,3041 77612 DEC -.0071111
045314,000823: 21,3042 00722 DEC .028444
045315,000824: 21,3043 77055 DEC -0.028444
045316,000825: 21,3044 02215 DEC .071111
045317,000826: 21,3045 75562 DEC -.071111
045318,000827: 21,3046 11064 DEC .284444
045319,000828: 21,3047 66713 DEC -.284444
045320,000829: 21,3050 00027 =+14MS DEC 23 B-14
045321,000830: 21,3051 51656 FREEFUNC INDEX RMANNDX # ACCELERATION
045322,000831: # Page 1020
045323,000832: 21,3052 33063 CA FREETAU # COMMANDS
045324,000833: 21,3053 55561 TS TAU
045325,000834: 21,3054 51657 INDEX PMANNDX
045326,000835: 21,3055 33063 CA FREETAU # FREETAU 0 SEC
045327,000836: 21,3056 55562 TS TAU1 # +1 +0.10 SEC
045328,000837: 21,3057 51660 INDEX YMANNDX # +2 -0.10 SEC
045329,000838: 21,3060 33063 CA FREETAU # (+3) 0 SEC
045330,000839: 21,3061 55563 TS TAU2
045331,000840: 21,3062 13067 TCF T6PROGM
045332,000841:
045333,000842: 21,3063 00000 FREETAU DEC 0 B-14
045334,000843: 21,3064 00740 DEC 480 B-14
045335,000844: 21,3065 77037 DEC -480 B-14
045336,000845: 21,3066 00000 DEC 0 B-14
045337,000846:
045338,000847: 21,3067 35021 T6PROGM CAF ZERO # FOR MANUAL ROTATIONS
045339,000848: 21,3070 55567 TS ERRORX
045340,000849: 21,3071 55570 TS ERRORY
045341,000850: 21,3072 55571 TS ERRORZ
045342,000851: 21,3073 13757 TCF T6PROG
045343,000852:
045344,000853: # Page 1021
045345,000854: 21,3074 06604 DEC .2112 # FILTER GAIN FOR TRANSLATION, LEM ON
045346,000855: 21,3075 32703 DEC .8400 # FILTER GAIN FOR TRANSLATION 2(ZETA)WN DT
045347,000856: 21,3076 06604 DEC .2112 # FILTER GAIN FOR 4 DEGREE/SEC MANEUVERS
045348,000857: 21,3077 02031 GAIN1 DEC .0640 # KALMAN FILTER GAINS FOR INITIALIZATION
045349,000858: 21,3100 12132 DEC .3180 # OF ATTITUDE RATES
045350,000859: 21,3101 13030 DEC .3452
045351,000860: 21,3102 14047 DEC .3774
045352,000861: 21,3103 15241 DEC .4161
045353,000862: 21,3104 16650 DEC .4634
045354,000863: 21,3105 20555 DEC .5223
045355,000864: 21,3106 23065 DEC .5970
045356,000865: 21,3107 26137 DEC .6933
045357,000866: 21,3110 32053 DEC .8151
045358,000867: 21,3111 35712 DEC .9342
045359,000868:
045360,000869: 21,3112 00435 DEC .0174 # FILTER GAIN FOR TRANSLATION, LEM ON
045361,000870: 21,3113 13412 DEC .3600 # FILTER GAIN FOR TRANSLATION (WN)(WN)DT
045362,000871: 21,3114 00435 DEC .0174 # FILTER GAIN FOR 4 DEGREE/SEC MANEUVERS
045363,000872: 21,3115 00032 GAIN2 DEC .0016 # SCALED 10
045364,000873: 21,3116 01350 DEC .0454
045365,000874: 21,3117 01575 DEC .0545
045366,000875: 21,3120 02103 DEC .0666
045367,000876: 21,3121 02523 DEC .0832
045368,000877: 21,3122 03327 DEC .1069
045369,000878: 21,3123 04432 DEC .1422
045370,000879: 21,3124 06264 DEC .1985
045371,000880: 21,3125 11351 DEC .2955
045372,000881: 21,3126 17324 DEC .4817
045373,000882: 21,3127 33622 DEC .8683
045374,000883: 21,3130 55502 STICKCHK TS T5TEMP
045375,000884: 21,3131 76214 MASK THREE # INDICES FOR MANUAL ROTATION
045376,000885: 21,3132 55657 TS PMANNDX
045377,000886: 21,3133 31502 CA T5TEMP
045378,000887: 21,3134 00006 EXTEND # MAN RATE 0 0 RATE (DP)
045379,000888: 21,3135 75003 MP QUARTER # +1 + RATE (DP)
045380,000889: 21,3136 55502 TS T5TEMP # +2 - RATE (DP)
045381,000890: 21,3137 76214 MASK THREE # (+3) 0 RATE (DP)
045382,000891: 21,3140 55660 TS YMANNDX
045383,000892: 21,3141 31502 CA T5TEMP
045384,000893: 21,3142 00006 EXTEND
045385,000894: 21,3143 75003 MP QUARTER
045386,000895: 21,3144 55656 TS RMANNDX
045387,000896: 21,3145 00002 TC Q
045388,000897: 21,3146 55617 KALUPDT TS ATTKALMN # INITIALIZATION OF ATTITUDE RATES USING
045389,000898: # KALMAN FILTER TAKES 1.1 SEC
045390,000899:
045391,000900: 21,3147 32155 CA DELTATT # =1SEC - 80MS
045392,000901: 21,3150 61634 AD T5TIME # + DELAYS
045393,000902: # Page 1022
045394,000903: 21,3151 54030 TS TIME5
045395,000904: 21,3152 13155 TCF +3
045396,000905: 21,3153 32156 CAF DELTATT2 # SAFETY PLAY TO ASSURE
045397,000906: 21,3154 54030 TS TIME5 # A T5RUPT
045398,000907:
045399,000908: 21,3155 45021 KRESUME2 CS ZERO # RESET FOR PHASE1
045400,000909: 21,3156 55465 TS T5PHASE # RESUME INTERRUPTED PROGRAM
045401,000910: 21,3157 15333 TCF RESUME
045402,000911:
045403,000912: 21,3160 45014 FDAIDSP2 CS BIT4 # RESET FOR FDAIDSP1
045404,000913: 21,3161 71501 MASK RCSFLAGS
045405,000914: 21,3162 55501 TS RCSFLAGS
045406,000915:
045407,000916: 21,3163 40074 CS FLAGWRD0 # ON - DISPLAY ONE OF THE TOTAL ATTITUDE
045408,000917: 21,3164 75007 MASK BIT9 # ERRORS
045409,000918: 21,3165 00006 EXTEND
045410,000919: 21,3166 13175 BZF FDAITOTL
045411,000920: 21,3167 00006 EXTEND
045412,000921: 21,3170 41570 DCS ERRORX # OFF - DISPLAY AUTOPILOT FOLLOWING ERROR
045413,000922: 21,3171 53477 DXCH AK
045414,000923: 21,3172 41571 CS ERRORZ
045415,000924: 21,3173 55500 TS AK2
045416,000925: 21,3174 15333 TCF RESUME # END PHASE 1
045417,000926:
045418,000927: 21,3175 30105 FDAITOTL CA FLAGWRD9
045419,000928: 21,3176 75012 MASK BIT6
045420,000929: 21,3177 00006 EXTEND
045421,000930: 21,3200 13243 BZF WRTN17 # IS N22ORN17 (BIT6 OF FLAGWRD9) = 0
045422,000931: # IF SO, GO TO WRTN17
045423,000932: 21,3201 00006 WRTN22 EXTEND # OTHERWISE, CONTINUE ON TO WRTN22 AND
045424,000933: 21,3202 31157 DCA CTHETA # GET SET TO COMPUTE TOTAL ATTITUDE
045425,000934: 21,3203 53514 DXCH WTEMP # ERROR WRT N22 BY PICKING UP THE THREE
045426,000935: 21,3204 31155 CA CPHI # COMPONENTS OF N22
045427,000936:
045428,000937: 21,3205 00006 GETAKS EXTEND # COMPUTE TOTAL ATTITUDE ERROR FOR
045429,000938: 21,3206 20032 MSU CDUX # DISPLAY ON FDAI ERROR NEEDLES
045430,000939: 21,3207 55476 TS AK
045431,000940: 21,3210 31513 CA WTEMP
045432,000941: 21,3211 00006 EXTEND
045433,000942: 21,3212 20033 MSU CDUY
045434,000943: 21,3213 55502 TS T5TEMP
045435,000944: 21,3214 00006 EXTEND
045436,000945: 21,3215 71640 MP AMGB1
045437,000946: 21,3216 27476 ADS AK
045438,000947: 21,3217 31502 CA T5TEMP
045439,000948: 21,3220 00006 EXTEND
045440,000949: 21,3221 71641 MP AMGB4
045441,000950: # Page 1023
045442,000951: 21,3222 55477 TS AK1
045443,000952: 21,3223 31502 CA T5TEMP
045444,000953: 21,3224 00006 EXTEND
045445,000954: 21,3225 71643 MP AMGB7
045446,000955: 21,3226 55500 TS AK2
045447,000956: 21,3227 31514 CA WTEMP +1
045448,000957: 21,3230 00006 EXTEND
045449,000958: 21,3231 20034 MSU CDUZ
045450,000959: 21,3232 55502 TS T5TEMP
045451,000960: 21,3233 00006 EXTEND
045452,000961: 21,3234 71642 MP AMGB5
045453,000962: 21,3235 27477 ADS AK1
045454,000963: 21,3236 31502 CA T5TEMP
045455,000964: 21,3237 00006 EXTEND
045456,000965: 21,3240 71644 MP AMGB8
045457,000966: 21,3241 27500 ADS AK2
045458,000967: 21,3242 15333 TCF RESUME # END PHASE1 OF RCS DAP
045459,000968:
045460,000969: 21,3243 00006 WRTN17 EXTEND # GET SET TO COMPUTE TOTAL ASTRONAUT
045461,000970: 21,3244 31335 DCA CPHIX +1 # ATTITUDE ERROR WRT N17 BY PICKING UP
045462,000971: 21,3245 53514 DXCH WTEMP # THE THREE COMPONENTS OF N17
045463,000972: 21,3246 31333 CA CPHIX
045464,000973: 21,3247 13205 TCF GETAKS
045465,000974:
045466,000975: # Page 1024 (empty page)
045467,000976:
End of include-file RCS-CSM_DIGITAL_AUTOPILOT.agc. Parent file is MAIN.agc