Source Code

043077,000001: # Copyright: Public domain. 043078,000002: # Filename: RCS-CSM_DIGITAL_AUTOPILOT.agc 043079,000003: # Purpose: Part of the source code for Colossus, build 249. 043080,000004: # It is part of the source code for the Command Module's (CM) 043081,000005: # Apollo Guidance Computer (AGC), possibly for Apollo 8 and 9. 043082,000006: # Assembler: yaYUL 043083,000007: # Reference: Starts on p. 977 of 1701.pdf. 043084,000008: # Contact: Ron Burkey <info@sandroid.org>. 043085,000009: # Website: www.ibiblio.org/apollo. 043086,000010: # Mod history: 08/25/04 RSB. Began transcribing. 043087,000011: # 2010-10-25 JL Fixed page number. 043088,000012: 043089,000013: # The contents of the "Colossus249" files, in general, are transcribed 043090,000014: # from a scanned document obtained from MIT's website, 043091,000015: # http://hrst.mit.edu/hrs/apollo/public/archive/1701.pdf. Notations on this 043092,000016: # document read, in part: 043093,000017: 043094,000018: # Assemble revision 249 of AGC program Colossus by NASA 043095,000019: # 2021111-041. October 28, 1968. 043096,000020: 043097,000021: # This AGC program shall also be referred to as 043098,000022: # Colossus 1A 043099,000023: 043100,000024: # Prepared by 043101,000025: # Massachusetts Institute of Technology 043102,000026: # 75 Cambridge Parkway 043103,000027: # Cambridge, Massachusetts 043104,000028: # under NASA contract NAS 9-4065. 043105,000029: 043106,000030: # Refer directly to the online document mentioned above for further information. 043107,000031: # Please report any errors (relative to 1701.pdf) to info@sandroid.org. 043108,000032: 043109,000033: # In some cases, where the source code for Luminary 131 overlaps that of 043110,000034: # Colossus 249, this code is instead copied from the corresponding Luminary 131 043111,000035: # source file, and then is proofed to incorporate any changes. 043112,000036: 043113,000037: # Page 977 043114,000038: # T5 INTERRUPT PROGRAM FOR THE RCS-CSM AUTOPILOT 043115,000039: 043116,000040: # START OF T5 INTERRUPT PROGRAM 043117,000041: 043118,000042: 20,3565 BANK 20 043119,000043: 21,2000 SETLOC DAPS3 043120,000044: 21,2000 BANK 043121,000045: 043122,000046: 21,2071 COUNT 21/DAPRC 043123,000047: 043124,000048: 21,2071 E6,1510 EBANK= KMPAC 043125,000049: 21,2071 22016 REDORCS LXCH BANKRUPT # RESTART OF AUTOPILOT COMES HERE 043126,000050: 21,2072 31465 CA T5PHASE # ON A T5 RUPT 043127,000051: 21,2073 00006 EXTEND 043128,000052: 21,2074 62076 BZMF +2 # IF T5PHASE +0, -0, OR -, RESET TO - 043129,000053: 21,2075 12100 TCF +3 # IF T5PHASE +, LEAVE IT +. DO A FRESHDAP 043130,000054: 21,2076 44712 CS ONE 043131,000055: 21,2077 55465 TS T5PHASE 043132,000056: 21,2100 00006 EXTEND 043133,000057: 21,2101 32105 DCA RCSLOC 043134,000058: 21,2102 53313 DXCH T5LOC # HOOK UP T5RUPT TO AUTOPILOT 043135,000059: 21,2103 12107 TCF RCSATT +1 043136,000060: 21,2104 E6,1510 EBANK= KMPAC 043137,000061: 21,2104 02106 42066 RCSLOC 2CADR RCSATT 043138,000062: 043139,000063: 21,2106 22016 RCSATT LXCH BANKRUPT # SAVE BB 043140,000064: 21,2107 00006 EXTEND # SAVE Q 043141,000065: 21,2110 22012 QXCH QRUPT 043142,000066: 21,2111 34674 CAF BIT15 # BIT15 CHAN31 = 0 IF IMU POWER IS ON AND 043143,000067: 21,2112 00006 EXTEND # S/C CONT SW IS IN CMC (I.E., IF G/C AUTO 043144,000068: 21,2113 02031 RAND CHAN31 # PILOT IS FULLY ENABLED) 043145,000069: 21,2114 00006 EXTEND 043146,000070: 21,2115 12144 BZF SETT5 # IF G/C AUTOPILOT IS FULLY ENABLED, 043147,000071: # GO TO SETT5 043148,000072: 043149,000073: 21,2116 41501 CS RCSFLAGS # IF G/C AUTOPILOT IS NOT FULLY ENABLE, 043150,000074: 21,2117 74675 MASK BIT14 043151,000075: 21,2120 27501 ADS RCSFLAGS # SET NORATE FLAG, 043152,000076: 21,2121 34672 CAF POSMAX 043153,000077: 21,2122 55332 TS HOLDFLAG # SET HOLDFLAG +, 043154,000078: 21,2123 34714 CAF ZERO # ZERO ERRORX, ERRORY, AND ERRORZ, 043155,000079: 21,2124 55567 TS ERRORX 043156,000080: 21,2125 55570 TS ERRORY 043157,000081: 21,2126 55571 TS ERRORZ 043158,000082: 21,2127 34675 CAF BIT14 043159,000083: 21,2130 00006 EXTEND 043160,000084: 21,2131 02031 RAND CHAN31 # AND CHECK FREE FUNCTION (BIT14 CHAN31). 043161,000085: 21,2132 00006 EXTEND 043162,000086: # Page 978 043163,000087: 21,2133 12144 BZF SETT5 # IF IN FREE MODE, GO TO SETT5. 043164,000088: 043165,000089: 21,2134 55465 TS T5PHASE # IF NOT IN FREE MODE, 043166,000090: 21,2135 37676 CAF OCT37766 # SCHEDULE REINITIALIZATION (FRESHDAP) 043167,000091: 21,2136 54030 TS TIME5 # IN 100 MS VIA T5RUPT 043168,000092: 043169,000093: 21,2137 02616 TCR ZEROJET # ZERO JET CHANNELS IN 14 MS VIA ZEROJET 043170,000094: 043171,000095: 21,2140 12334 TCF KMATRIX 043172,000096: 21,2141 37770 DELTATT OCT 37770 # 80MS (TIME5) 043173,000097: 21,2142 37776 DELTATT2 OCT 37776 # 20MS (TIME5) 043174,000098: 21,2143 37634 ONESEK DEC 16284 B-14 # 1 SEC(TIME5) 043175,000099: 21,2144 CHAN5 EQUALS 5 043176,000100: 21,2144 CHAN6 EQUALS 6 043177,000101: 21,2144 7671 PRIO34A = PRIO34 043178,000102: 043179,000103: # CHECK PHASE OF T5 PROGRAM 043180,000104: 043181,000105: # BECAUSE OF THE LENGTH OF THE T5 PROGRAM,IT HAS BEEN DIVIDED INTO 043182,000106: # THREE PARTS, T5PHASE1, T5PHASE2, AND THE JET SELECTION LOGIC, 043183,000107: # TO ALLOW FOR THE EXECUTION OF OTHER 043184,000108: # INTERRUPTS. T5PHASE IS ALSO USED IN THE INITIALIZATION OF THE AUTOPILOT 043185,000109: # VARIABLES AT TURN ON. 043186,000110: 043187,000111: # THE CODING OF T5PHASE IS... 043188,000112: 043189,000113: # + = INITIALIZE T5 RCS-CSM AUTOPILOT 043190,000114: # T5PHASE = +0 = PHASE2 OF THE T5 PROGRAM 043191,000115: # - = RESTART DAP 043192,000116: # -0 = PHASE1 OF THE T5 PROGRAM 043193,000117: 043194,000118: 21,2144 11465 SETT5 CCS T5PHASE 043195,000119: 21,2145 12530 TCF FRESHDAP # TURN ON AUTOPILOT 043196,000120: 21,2146 12645 TCF T5PHASE2 # BRANCH TO PHASE2 OF PROGRAM 043197,000121: 21,2147 12532 TCF REDAP # RESTART AUTOPILOT 043198,000122: 21,2150 55465 TS T5PHASE # PHASE 1 RESET FOR PHASE 2 043199,000123: 21,2151 30030 CA TIME5 043200,000124: 21,2152 55634 TS T5TIME # USED IN COMPENSATING FOR DELAYS IN T5 043201,000125: 21,2153 32142 CAF DELTATT2 # RESET FOR T5RUPT IN 20MS FOR PHASE2 043202,000126: 21,2154 54030 TS TIME5 # OF PROGRAM 043203,000127: 043204,000128: # Page 979 043205,000129: # IMU STATUS CHECK 043206,000130: 043207,000131: 21,2155 41321 CS IMODES33 # CHECK IMU STATUS 043208,000132: 21,2156 74705 MASK BIT6 # BIT6 = 0 IMU OK 043209,000133: 21,2157 10000 CCS A # BIT6 = 1 NO IMU 043210,000134: 21,2160 12174 TCF RATEFILT 043211,000135: 21,2161 41501 FREECHK CS RCSFLAGS # BIT14 INDICATES THAT RATES HAVE NOT BEEN 043212,000136: 21,2162 74675 MASK BIT14 # INITIALIZED 043213,000137: 21,2163 27501 ADS RCSFLAGS 043214,000138: 21,2164 34675 CAF BIT14 # NO ATTITUDE REFERENCE 043215,000139: 21,2165 55332 TS HOLDFLAG # STOP ANY AUTOMATIC STEERING AND PREPARE 043216,000140: # TO PICK UP CDU ANGLES UPON RESUMPTION OF 043217,000141: # ATTITUDE HOLD 043218,000142: 21,2166 00006 EXTEND 043219,000143: 21,2167 02031 RAND CHAN31 # CHECK FOR FREE MODE 043220,000144: 21,2170 00006 EXTEND 043221,000145: 21,2171 12403 BZF KRESUME1 # IN FREE MODE PROVIDE FREE CONTROL ONLY 043222,000146: 21,2172 12520 TCF REINIT # .....TILT............................... 043223,000147: 21,2173 00030 BITS4,5 OCT 30 043224,000148: 21,2174 31501 RATEFILT CA RCSFLAGS # SEE IF RATEFILTER HAS BEEN INITIALIZED 043225,000149: 21,2175 74675 MASK BIT14 043226,000150: 21,2176 00006 EXTEND # IF SO, PROCEED WITH RATE DERIVATION 043227,000151: 21,2177 12201 BZF +2 043228,000152: 21,2200 12334 TCF KMATRIX # IF NOT, SKIP RATE DERIVATION 043229,000153: 043230,000154: # RATE FILTER TIMING = 7.72 MS 043231,000155: 043232,000156: # RATE FILTER EQUATIONS 043233,000157: 043234,000158: 043235,000159: # DRHO = DELRHO - (.1)ADOT + (1 = GAIN1)DRHO 043236,000160: # -1 043237,000161: 043238,000162: # ADOT = ADOT + GAIN2 DRHO + KMJ DFT 043239,000163: # -1 043240,000164: # _ * _ _ 043241,000165: # WHERE DELRHO = AMGB (CDU - CDU ) 043242,000166: # -1 043243,000167: 043244,000168: 21,2201 34711 CAF TWO 043245,000169: 21,2202 55506 DRHOLOOP TS SPNDX 043246,000170: 21,2203 60000 DOUBLE 043247,000171: 21,2204 55507 TS DPNDX 043248,000172: 21,2205 51507 INDEX DPNDX 043249,000173: 21,2206 41552 CS DRHO # DRHO SCALED 180 DEGS 043250,000174: 21,2207 00006 EXTEND 043251,000175: 21,2210 51617 INDEX ATTKALMN # PICK UP DESIRED FILTER GAIN 043252,000176: 21,2211 73063 MP GAIN1 043253,000177: 21,2212 51507 INDEX DPNDX 043254,000178: 21,2213 21553 DAS DRHO # (1 -.064) DRHO 043255,000179: 21,2214 00006 EXTEND 043256,000180: # Page 980 043257,000181: 21,2215 51507 INDEX DPNDX 043258,000182: 21,2216 41534 DCS ADOT 043259,000183: 21,2217 53511 DXCH KMPAC # -(.1)ADOT 043260,000184: 21,2220 34676 CA QUARTER 043261,000185: 21,2221 02026 TC SMALLMP 043262,000186: 21,2222 53511 DXCH KMPAC 043263,000187: 21,2223 51507 INDEX DPNDX 043264,000188: 21,2224 21553 DAS DRHO 043265,000189: 21,2225 11506 CCS SPNDX 043266,000190: 21,2226 12202 TCF DRHOLOOP 043267,000191: 043268,000192: 21,2227 30032 CA CDUX # MEASURED BODY RATES-- 043269,000193: 21,2230 57635 XCH RHO 043270,000194: 21,2231 00006 EXTEND 043271,000195: 21,2232 21635 MSU RHO # _ * _ _ 043272,000196: 21,2233 40000 COM # DELRHO = AMGB (CDU - CDU ) 043273,000197: # -1 043274,000198: 21,2234 22007 ZL 043275,000199: 21,2235 53516 DXCH DELTEMPX 043276,000200: 21,2236 30033 CA CDUY 043277,000201: 21,2237 57636 XCH RHO1 043278,000202: 21,2240 00006 EXTEND 043279,000203: 21,2241 21636 MSU RHO1 043280,000204: 21,2242 40000 COM 043281,000205: 21,2243 55502 TS T5TEMP # (CDUY - RHO1) SCALED 90 DEGS 043282,000206: 21,2244 00006 EXTEND 043283,000207: 21,2245 71640 MP AMGB1 043284,000208: 21,2246 21516 DAS DELTEMPX # DELTEMPX = (CDUX-RHO) + AMGB1(CDUY-RHO1) 043285,000209: # MUST BE DOUBLE PRECISION OR WILL LOSE 043286,000210: # PULSES 043287,000211: 21,2247 31641 CA AMGB4 043288,000212: 21,2250 00006 EXTEND 043289,000213: 21,2251 71502 MP T5TEMP 043290,000214: 21,2252 53520 DXCH DELTEMPY 043291,000215: 21,2253 31643 CA AMGB7 043292,000216: 21,2254 00006 EXTEND 043293,000217: 21,2255 71502 MP T5TEMP 043294,000218: 21,2256 53522 DXCH DELTEMPZ 043295,000219: 21,2257 30034 CA CDUZ 043296,000220: 21,2260 57637 XCH RHO2 043297,000221: 21,2261 00006 EXTEND 043298,000222: 21,2262 21637 MSU RHO2 043299,000223: 21,2263 40000 COM 043300,000224: 21,2264 55502 TS T5TEMP # (CDUZ - RHO2) SCALED 90 DEGS 043301,000225: 21,2265 00006 EXTEND 043302,000226: 21,2266 71642 MP AMGB5 043303,000227: 21,2267 21520 DAS DELTEMPY # DELTEMPY = AMGB4(CDUY-RHO1) 043304,000228: # + AMGB5(CDUZ-RHO2) 043305,000229: 21,2270 31644 CA AMGB8 043306,000230: 21,2271 00006 EXTEND 043307,000231: 043308,000232: # Page 981 043309,000233: 21,2272 71502 MP T5TEMP 043310,000234: 21,2273 21522 DAS DELTEMPZ # DELTEMPZ = AMBG7(CDUY-RHO1) 043311,000235: # + AMGB8(CDUZ-RHO2) 043312,000236: 21,2274 34711 CAF TWO 043313,000237: 21,2275 55506 ADOTLOOP TS SPNDX 043314,000238: 21,2276 60000 DOUBLE 043315,000239: 21,2277 55507 TS DPNDX 043316,000240: 21,2300 00006 EXTEND 043317,000241: 21,2301 51507 INDEX DPNDX 043318,000242: 21,2302 31516 DCA DELTEMPX 043319,000243: 21,2303 51507 INDEX DPNDX 043320,000244: 21,2304 21553 DAS DRHO 043321,000245: 21,2305 00006 EXTEND 043322,000246: 21,2306 51507 INDEX DPNDX 043323,000247: 21,2307 31516 DCA DELTEMPX 043324,000248: 21,2310 51507 INDEX DPNDX 043325,000249: 21,2311 21542 DAS MERRORX 043326,000250: 21,2312 51507 INDEX DPNDX 043327,000251: 21,2313 31552 CA DRHO 043328,000252: 21,2314 60000 DOUBLE # N.B. 043329,000253: 21,2315 60000 DOUBLE # N.B. 043330,000254: 21,2316 00006 EXTEND 043331,000255: 21,2317 51617 INDEX ATTKALMN # PICK UP DESIRED FILTER GAINS 043332,000256: 21,2320 73101 MP GAIN2 043333,000257: 21,2321 51507 INDEX DPNDX # ADOT + (.16)(.1)DRHO 043334,000258: 21,2322 21534 DAS ADOT # -1 043335,000259: 21,2323 51506 INDEX SPNDX # S/C TORQUE TO INERTIA RATIO 043336,000260: 21,2324 31620 CA KMJ # SCALED (450)(1600)/(57.3)(16384)=1/1.3 043337,000261: 21,2325 00006 EXTEND 043338,000262: 21,2326 51506 INDEX SPNDX 043339,000263: 21,2327 71547 MP DFT 043340,000264: 21,2330 51507 INDEX DPNDX 043341,000265: 21,2331 21534 DAS ADOT # KMJ(DFT) 043342,000266: 21,2332 11506 CCS SPNDX 043343,000267: 21,2333 12275 TCF ADOTLOOP # END CALCULATION OF VEHICLE RATES 043344,000268: 21,2334 31560 KMATRIX CA ATTSEC 043345,000269: 21,2335 74721 MASK LOW4 043346,000270: 21,2336 10000 CCS A 043347,000271: 21,2337 12345 TCF TENTHSEK 043348,000272: 21,2340 37671 CAF PRIO34 # CALL FOR 1 SEC UPDATE OF TRANSFORMATION 043349,000273: 21,2341 05027 TC NOVAC # MATRIX FROM GIMBAL AXES TO BODY AXES 043350,000274: 21,2342 E6,1510 EBANK= KMPAC 043351,000275: 21,2342 03444 44066 2CADR AMBGUPDT 043352,000276: 043353,000277: 21,2344 34334 CAF NINE 043354,000278: 043355,000279: 21,2345 55560 TENTHSEK TS ATTSEC 043356,000280: 043357,000281: # Page 982 043358,000282: # WHEN AUTOMATIC MANEUVERS ARE BEING PERFORMED, THE FOLLOWING ANGLE ADDITION MUST BE MADE TO PROVIDE A SMOOTH 043359,000283: # SEQUENCE OF ANGULAR COMMANDS TO THE AUTOPILOT-- 043360,000284: 043361,000285: # CDUXD = CDUXD + DELCDUX (DOUBLE PRECISION) 043362,000286: # CDUYD = CDUYD + DELCDUY (DOUBLE PRECISION) 043363,000287: # CDUZD = CDUZD + DELCDUZ (DOUBLE PRECISION) 043364,000288: 043365,000289: # THE STEERING PROGRAMS: 043366,000290: # 1) ATTITUDE MANEUVER ROUTINE 043367,000291: # 2) LEM TRACKING 043368,000292: 043369,000293: # SHOULD GENERATE THE DESIRED ANGLES (CDUXD, CDUYD, CDUZD) AS WELL AS THE INCREMENTAL ANGLES (DELCDUX, DELCDUY, 043370,000294: # DELCDUZ) SO THAT THE GIMBAL ANGLE COMMANDS CAN BE INTERPOLATED BETWEEN UPDATES. 043371,000295: 043372,000296: # HOLDFLAG CODING: 043373,000297: 043374,000298: # + = GRAB PRESENT CDU ANGLES AND STORE IN THETADX, THETADY, THETADZ 043375,000299: # AND PERFORM ATTITUDE HOLD ABOUT THESE ANGLES 043376,000300: # ALSO IGNORE AUTOMATIC STEERING 043377,000301: # SET = + BY 043378,000302: # 1) INITIALIZATION PHASE OF AUTOPILOT 043379,000303: # 2) OCCURANCE OF RHC COMMANDS 043380,000304: # 3) FREE MODE 043381,000305: # 4) SWITCH OVER TO ATTITUDE HOLD FROM AUTO 043382,000306: # WHILE DOING AUTOMATIC STEERING (IN THIS CASE 043383,000307: # HOLDFLAG IS NOT ACTUALLY SET TO +, BUT THE LOGIC 043384,000308: # FUNCTIONS AS IF IT WERE.) 043385,000309: # 5) S/C CONTROL SWITCH IS SCS 043386,000310: # 6) IMU POWER OFF 043387,000311: 043388,000312: # +0 = IN ATTITUDE HOLD ABOUT A PREVIOUSLY ESTABLISHED REFERENCE 043389,000313: # 043390,000314: # - = PERFORMING AUTOMATIC MANEUVER 043391,000315: 043392,000316: # -0 = NOT USED AT PRESENT 043393,000317: 043394,000318: # NOTE THAT THIS FLAG MUST BE SET = - BY THE STEERING PROGRAM IF IT IS TO COMMAND THE AUTOPILOT. 043395,000319: # DETERMINE IF THE AUTOMATIC SEQUENCE HAS BEEN INTERRUPTED AND IF SO, TAKE THE APPROPRIATE ACTION. 043396,000320: 043397,000321: 21,2346 41332 CS HOLDFLAG 043398,000322: 21,2347 00006 EXTEND 043399,000323: 21,2350 62375 BZMF DACNDLS # IF HOLDFLAG +0,-0,+, BYPASS AUTOMATIC 043400,000324: # COMMANDS. 043401,000325: 21,2351 34711 DCDUINCR CAF TWO 043402,000326: 21,2352 55506 DELOOP TS SPNDX 043403,000327: 21,2353 60000 DOUBLE 043404,000328: 21,2354 55507 TS DPNDX 043405,000329: 21,2355 00006 EXTEND 043406,000330: 21,2356 50000 INDEX A 043407,000331: 21,2357 31647 DCA CDUXD 043408,000332: # Page 983 043409,000333: 21,2360 53511 DXCH KMPAC 043410,000334: 21,2361 00006 EXTEND 043411,000335: 21,2362 51507 INDEX DPNDX 043412,000336: 21,2363 31576 DCA DELCDUX 043413,000337: 21,2364 02040 TC DPADD 043414,000338: 21,2365 00006 EXTEND 043415,000339: 21,2366 31511 DCA KMPAC 043416,000340: 21,2367 51506 INDEX SPNDX 043417,000341: 21,2370 55572 TS THETADX 043418,000342: 21,2371 51507 INDEX DPNDX 043419,000343: 21,2372 53647 DXCH CDUXD 043420,000344: 21,2373 11506 CCS SPNDX 043421,000345: 21,2374 12352 TCF DELOOP 043422,000346: 043423,000347: # Page 984 043424,000348: # RCS-CSM AUTOPILOT ATTITUDE ERROR DISPLAY 043425,000349: 043426,000350: # THREE TYPES OF ATTITUDE ERRORS MAY BE DISPLAYED ON THE FDAI: 043427,000351: 043428,000352: # MODE 1) AUTOPILOT FOLLOWING ERRORS SELECTED BY V61E 043429,000353: # GENERATED INTERNALLY BY THE AUTOPILOT 043430,000354: 043431,000355: # MODE 2) TOTAL ATTITUDE ERRORS SELECTED BY V62E 043432,000356: # WITH RESPECT TO THE CONTENTS OF N22 043433,000357: 043434,000358: # MODE 3) TOTAL ASTRONAUT ATTITUDE ERRORS SELECTED BY V63E 043435,000359: # WITH RESPECT TO THE CONTENTS OF N17 043436,000360: 043437,000361: # MODE 1 IS PROVIDED AS A MONITOR OF THE RCS DAP AND ITS ABILITY TO TRACK AUTOMATIC STEERING COMMANDS. IN THIS 043438,000362: # MODE THE ATTITUDE ERRORS WILL BE ZEROED WHEN THE CMC MODE SWITCH IS IN FREE. 043439,000363: 043440,000364: # MODE 2 IS PROVIDED TO ASSIST THE CREW IN MANUALLY MANEUVERING THE S/C TO THE ATTITUDE (GIMBAL ANGLES) SPECIFIED 043441,000365: # IN N22. THE ATTITUDE ERRORS WRT THESE ANGLES AND THE CURRENT CDU ANGLES ARE RESOLVED INTO S/C CONTROL AXES 043442,000366: # AS A FLY-TO INDICATOR. 043443,000367: 043444,000368: # MODE 3 IS PROVIDED TO ASSIST THE CREW IN MANUALLY MANEUVERING THE S/C TO THE ATTITUDE (GIMBAL ANGLES) SPECIFIED 043445,000369: # IN N17. THE ATTITUDE ERRORS WRT THESE ANGLES AND THE CURRENT CDU ANGLES ARE RESOLVED INTO S/C CONTROL AXES 043446,000370: # AS A FLY-TO INDICATOR. 043447,000371: 043448,000372: # V60 IS PROVIDED TO LOAD N17 WITH A SNAPSHOT OF THE CURRENT CDU ANGLES, THUS SYNCHRONIZING THE MODE 3 DISPLAY 043449,000373: # WITH THE CURRENT S/C ATTITUDE. THIS VERB MAY BE USED AT ANY TIME. 043450,000374: 043451,000375: # THESE DISPLAYS WILL BE AVAILABLE IN ANY MODE (AUTO, HOLD, FREE, G+N, OR SCS) ONCE THE RCS DAP HAS BEEN 043452,000376: # INITIATED VIA V46E. MODE 1, HOWEVER, WILL BE MEANINGFUL ONLY IN G+N AUTO OR HOLD. THE CREW MAY PRESET (VIA 043453,000377: # V25N17) AN ATTITUDE REFERENCE (DESIRED GIMBAL ANGLES) INTO N17 AT ANY TIME. 043454,000378: 043455,000379: 21,2375 41501 DACNDLS CS RCSFLAGS # ALTERNATE BETWEEN FDAIDSP1 AND FDAIDSP2 043456,000380: 21,2376 74707 MASK BIT4 043457,000381: 21,2377 00006 EXTEND 043458,000382: 21,2400 13144 BZF FDAIDSP2 043459,000383: 043460,000384: 21,2401 27501 FDAIDSP1 ADS RCSFLAGS 043461,000385: 21,2402 02404 TC NEEDLER 043462,000386: 21,2403 15222 KRESUME1 TCF RESUME # END PHASE 1 043463,000387: 043464,000388: # Page 985 043465,000389: # FDAI ATTITUDE ERROR DISPLAY SUBROUTINE 043466,000390: 043467,000391: # PROGRAM DESCRIPTION: D. KEENE 5/24/67 043468,000392: 043469,000393: # THIS SUBROUTINE IS USED TO DISPLAY ATTITUDE ERRORS ON THE FDAI VIA THE DIGITAL TO ANALOG CONVERTERS (DACS) 043470,000394: # IN THE CDUS. CARE IS TAKEN TO METER OUT THE APPROPRIATE NUMBER OF PULSES TO THE IMU ERROR COUNTERS AND PREVENT 043471,000395: # OVERFLOW, TO CONTROL THE RELAY SEQUENCING, AND TO AVOID INTERFERENCE WITH THE COARSE ALIGN LOOP WHICH ALSO USES 043472,000396: # THE DACS. 043473,000397: 043474,000398: # CALLING SEQUENCE: 043475,000399: 043476,000400: # DURING THE INITIALIZATION SECTIONOF THE USER'S PROGRAM, BIT3 OF RCSFLAGS SHOULD BE SET TO INITIATE THE 043477,000401: # TURN-ON SEQUENCE WITHIN THE NEEDLES PROGRAM: 043478,000402: 043479,000403: # CS RCSFLAGS # IN EBANK6 043480,000404: # MASK BIT3 043481,000405: # ADS RCSFLAGS 043482,000406: 043483,000407: # THEREAFTER, THE ATTITUDE ERRORS GENERATED BY THE USER SHOULD BE TRANFERRED TO THE FOLLOWING LOCATIONS IN EBANK6: 043484,000408: 043485,000409: # AK SCALED 180 DEGREES NOTE: THESE LOCATIONS ARE SUBJECT 043486,000410: # AK1 SCALED 180 DEGREES TO CHANGE 043487,000411: # AK2 SCALED 180 DEGREES 043488,000412: 043489,000413: # FULL SCALED DEFLECTION CORRESPONDS TO 16 7/8 DEGREES OF ATTITUDE ERROR 043490,000414: # (= 384 BITS IN IMU ERROR COUNTER) 043491,000415: 043492,000416: # A CALL TO NEEDLER WILL THEN UPDATE THE DISPLAY: 043493,000417: 043494,000418: # INHINT 043495,000419: # TC IBNKCALL # NOTE: EBANK SHOULD BE SET TO E6 043496,000420: # CADR NEEDLER 043497,000421: # RELINT 043498,000422: 043499,000423: # THIS PROCESS SHOULD BE REPEATED EACH TIME THE ERRORS ARE UPDATED. AT LEAST 3 PASSES THRU THE PRORAM ARE 043500,000424: # REQUIRED BEFORE ANYTHING IS ACTUALLY DISPLAYED ON THE ERROR METERS. 043501,000425: # NOTE: EACH CALL TO NEEDLER MUST BE SEPARATED BY AT LEAST 50MS TO ASSURE PROPER RELAY SEQUENCING. 043502,000426: 043503,000427: # ERASABLE USED: 043504,000428: # AK CDUXCMD 043505,000429: # AK1 CDUYCMD 043506,000430: # AK2 CDUZCMD 043507,000431: # EDRIVEX A,L,Q 043508,000432: # EDRIVEY T5TEMP 043509,000433: # EDRIVEZ SPNDX 043510,000434: 043511,000435: # SWITCHES; RCSFLAGS BITS 3,2 043512,000436: 043513,000437: # I/O CHANNELS: CHAN12 BIT 4 (COARSE ALIGN - READ ONLY) 043514,000438: # Page 986 043515,000439: # CHAN12 BIT 6 (IMU ERROR COUNTER ENABLE) 043516,000440: # CHAN14 BIT 13,14,15 (DAC ACTIVITY) 043517,000441: 043518,000442: # SIGN CONVENTION: AK = THETAC - THETA 043519,000443: # WHERE THETAC = COMMAND ANGLE 043520,000444: # THETA = PRESENT ANGLE 043521,000445: 043522,000446: 21,2404 34707 NEEDLER CAF BIT4 # CHECK FOR COARSE ALIGN ENABLE 043523,000447: 21,2405 00006 EXTEND # IF IN COARSE ALIGN DO NOT USE IMU 043524,000448: 21,2406 02012 RAND CHAN12 # ERROR COUNTERS. DON'T USE NEEDLES 043525,000449: 21,2407 00006 EXTEND 043526,000450: 21,2410 12415 BZF NEEDLER1 043527,000451: 21,2411 41501 CS RCSFLAGS # SET BIT3 FOR INITIALIZATION PASS 043528,000452: 21,2412 74710 MASK BIT3 043529,000453: 21,2413 27501 ADS RCSFLAGS 043530,000454: 21,2414 00002 TC Q 043531,000455: 043532,000456: 21,2415 31501 NEEDLER1 CA RCSFLAGS 043533,000457: 21,2416 76211 MASK SIX 043534,000458: 21,2417 00006 EXTEND 043535,000459: 21,2420 12455 BZF NEEDLES3 043536,000460: 21,2421 74710 MASK BIT3 043537,000461: 21,2422 00006 EXTEND 043538,000462: 21,2423 12446 BZF NEEDLER2 # BIT3 = 0, BIT2 = 1 043539,000463: 043540,000464: 21,2424 44705 CS BIT6 # FIRST PASS BIT3 = 1 043541,000465: 21,2425 00006 EXTEND # DISABLE IMU ERROR COUNTER TO ZERO DACS 043542,000466: 21,2426 03012 WAND CHAN12 # MUST WAIT AT LEAST 50 MS. BEFORE 043543,000467: 21,2427 44714 NEEDLE11 CS ZERO # ENABLING COUNTERS. 043544,000468: 21,2430 55476 TS AK # ZERO THE INPUTS ON FIRST PASS 043545,000469: 21,2431 55477 TS AK1 043546,000470: 21,2432 55500 TS AK2 043547,000471: 21,2433 55503 TS EDRIVEX # ZERO THE DISPLAY REGISTERS 043548,000472: 21,2434 55504 TS EDRIVEY 043549,000473: 21,2435 55505 TS EDRIVEZ 043550,000474: 21,2436 54050 TS CDUXCMD # ZERO THE OUT COUNTERS 043551,000475: 21,2437 54051 TS CDUYCMD 043552,000476: 21,2440 54052 TS CDUZCMD 043553,000477: 21,2441 46211 CS SIX # RESET RCSFLAGS FOR PASS2 043554,000478: 21,2442 71501 MASK RCSFLAGS 043555,000479: 21,2443 64711 AD BIT2 043556,000480: 21,2444 55501 TS RCSFLAGS 043557,000481: 21,2445 00002 TC Q # END PASS1 043558,000482: 043559,000483: 21,2446 34705 NEEDLER2 CAF BIT6 # ENABLE IMU ERROR COUNTERS 043560,000484: 21,2447 00006 EXTEND 043561,000485: 21,2450 05012 WOR CHAN12 043562,000486: 21,2451 46211 CS SIX # RESET RCSFLAGS TO DISPLAY ATTITUDE 043563,000487: # Page 987 043564,000488: 21,2452 71501 MASK RCSFLAGS # ERRORS WAIT AT LEAST 4 MS FOR 043565,000489: 21,2453 55501 TS RCSFLAGS # RELAY CLOSURE 043566,000490: 21,2454 00002 TC Q 043567,000491: 21,2455 34705 NEEDLES3 CAF BIT6 # CHECK TO SEE IF IMU ERROR COUNTER 043568,000492: 21,2456 00006 EXTEND # IS ENABLED 043569,000493: 21,2457 02012 RAND CHAN12 043570,000494: 21,2460 00006 EXTEND # IF NOT RECYCLE NEEDLES 043571,000495: 21,2461 12411 BZF NEEDLER +5 043572,000496: 043573,000497: 21,2462 34711 NEEDLES CAF TWO 043574,000498: 21,2463 55506 DACLOOP TS SPNDX 043575,000499: 21,2464 44676 CS QUARTER 043576,000500: 21,2465 00006 EXTEND 043577,000501: 21,2466 51506 INDEX SPNDX 043578,000502: 21,2467 71476 MP AK 043579,000503: 21,2470 54001 TS L 043580,000504: 21,2471 10000 CCS A 043581,000505: 21,2472 32526 CA DACLIMIT 043582,000506: 21,2473 12475 TCF +2 043583,000507: 21,2474 42526 CS DACLIMIT 043584,000508: 21,2475 60001 AD L 043585,000509: 21,2476 55502 TS T5TEMP # OVFLO CHK 043586,000510: 21,2477 12503 TCF +4 043587,000511: 21,2500 50000 INDEX A # ON OVERFLOW LIMIT OUTPUT TO +-384 043588,000512: 21,2501 32526 CAF DACLIMIT 043589,000513: 21,2502 54001 TS L 043590,000514: 21,2503 51506 INDEX SPNDX 043591,000515: 21,2504 41503 CS EDRIVEX # CURRENT VALUE OF DAC 043592,000516: 21,2505 60001 AD L 043593,000517: 21,2506 51506 INDEX SPNDX 043594,000518: 21,2507 26050 ADS CDUXCMD 043595,000519: 21,2510 51506 INDEX SPNDX 043596,000520: 21,2511 23503 LXCH EDRIVEX 043597,000521: 21,2512 11506 CCS SPNDX 043598,000522: 21,2513 12463 TCF DACLOOP 043599,000523: 21,2514 37707 CAF 13,14,15 043600,000524: 21,2515 00006 EXTEND 043601,000525: 21,2516 05014 WOR CHAN14 # SET DAC ACTIVITY BITS 043602,000526: 21,2517 00002 TC Q 043603,000527: 043604,000528: 21,2520 32524 REINIT CAF DELAY200 # ........TILT LOGIC 043605,000529: 21,2521 54030 TS TIME5 # REINITIALIZE DAP IN 200MS 043606,000530: 21,2522 55465 TS T5PHASE 043607,000531: 21,2523 15222 TCF RESUME 043608,000532: 21,2524 37754 DELAY200 DEC 16364 B-14 # 200MS 043609,000533: 21,2525 77177 DEC -384 B-14 043610,000534: 043611,000535: # Page 988 043612,000536: 21,2526 37200 DACLIMIT DEC 16000 B-14 043613,000537: 21,2527 00600 DEC 384 B-14 043614,000538: 043615,000539: # Page 989 043616,000540: # INITIALIZATION PROGRAM FOR RCS-CSM AUTOPILOT 043617,000541: 043618,000542: # THE FOLLOWING QUANTITIES WILL BE ZEROED AND SHOULD APPEAR IN CONSECUTIVE LOCATIONS IN MEMORY AFTER WBODY 043619,000543: 043620,000544: # WBODY (+1) DFT TAU2 043621,000545: # WBODY1 (+1) DFT1 BIAS 043622,000546: # WBODY2 (+1) DFT2 BIAS1 043623,000547: # ADOT (+1) DRHO (+1) BIAS2 043624,000548: # ADOT1 (+1) DRHO1 (+1) ERRORX 043625,000549: # ADOT2 (+1) DRHO2 (+1) ERRORY 043626,000550: # MERRORX (+1) ATTSEC ERRORZ 043627,000551: # MERRORY (+1) TAU 043628,000552: # MERRORZ (+1) TAU1 043629,000553: 043630,000554: 21,2530 34712 FRESHDAP CAF ONE # RESET HOLDFLAG TO STOP AUTOMATIC 043631,000555: 21,2531 55332 TS HOLDFLAG # STEERING AND PREPARE TO PICK UP AN 043632,000556: # ATTITUDE HOLD REFERENCE 043633,000557: 043634,000558: 21,2532 04633 REDAP TC IBNKCALL # DECODE DAPDATR1, DAPDATR2 FOR DEADBANDS 043635,000559: 21,2533 40146 CADR S41.2 # RATES, QUADFAILS, QUAD MANAGEMENT 043636,000560: 043637,000561: 21,2534 04633 TC IBNKCALL # DECODE IXX, IAVG, AND CONVERT 043638,000562: 21,2535 40277 CADR S40.14 # TO AUTOPILOT GAINS 043639,000563: 043640,000564: 21,2536 32607 CAF NO.T5VAR # NO. LOCATIONS TO BE ZEROED MINUS ONE 043641,000565: 21,2537 55506 ZEROT5 TS SPNDX # ZERO ALL NECESSARY ERASABLE REGISTERS 043642,000566: 21,2540 34714 CAF ZERO 043643,000567: 21,2541 51506 INDEX SPNDX 043644,000568: 21,2542 55525 TS WBODY 043645,000569: 21,2543 11506 CCS SPNDX 043646,000570: 21,2544 12537 TCF ZEROT5 043647,000571: 21,2545 02616 TCR ZEROJET 043648,000572: 043649,000573: 21,2546 44714 CS ZERO 043650,000574: 21,2547 55633 TS CHANTEMP # INITIALIZE MINIMUM IMPULSE CONTROL 043651,000575: 043652,000576: 21,2550 55632 TS CH31TEMP # INITIALIZE RHC POSITION MEMORY FOR 043653,000577: # MANUAL RATE MODES 043654,000578: 043655,000579: 21,2551 32610 CAF =.24 043656,000580: 21,2552 55654 TS SLOPE # INITIALIZE SWITCHING LOGIC SLOPE 043657,000581: 043658,000582: 21,2553 34710 CAF FOUR 043659,000583: 21,2554 55634 TS T5TIME # PHASE 0 RESETS FOR PHASE 2 INTERRUPT IN 043660,000584: # 60 MS. PHASE 2 RESETS FOR PHASE 1 RUPT 043661,000585: # IN (80MS - T5TIME(40MS)). THEREFORE 043662,000586: # PHASE 1 (RATEFILTER) BEGINS CYCLING 100 043663,000587: # MS FROM NOW AND EVERY 100MS THEREAFTER. 043664,000588: 043665,000589: 21,2555 34717 CAF ELEVEN 043666,000590: 21,2556 55617 TS ATTKALMN # RESET TO PICK UP KALMAN FILTER TAINS 043667,000591: # TO INITIALIZE THE S/C ANGULAR RATES 043668,000592: # Page 990 043669,000593: 21,2557 30032 CA CDUX 043670,000594: 21,2560 55635 TS RHO 043671,000595: 21,2561 30033 CA CDUY 043672,000596: 21,2562 55636 TS RHO1 043673,000597: 21,2563 30034 CA CDUZ 043674,000598: 21,2564 55637 TS RHO2 043675,000599: 21,2565 34714 CAF ZERO # RESET AUTOPILOT TO BEGIN EXECUTING 043676,000600: 21,2566 55465 TS T5PHASE # PHASE2 OF PROGRAM 043677,000601: 043678,000602: 21,2567 41321 CS IMODES33 # CHECK IMU STATUS 043679,000603: 21,2570 74705 MASK BIT6 # IF BIT6 = 0 IMU IN FINE ALIGN 043680,000604: 21,2571 10000 CCS A # IF BIT6 = 1 IMU NOT READY 043681,000605: 21,2572 12576 TCF IMUAOK 043682,000606: 21,2573 55617 TS ATTKALMN # CANNOT USE IMU 043683,000607: 21,2574 32612 CAF RCSINITB # PROVIDE FREE CONTROL ONLY 043684,000608: 21,2575 12603 TCF RCSSWIT # DON'T START UP RATE FILTER 043685,000609: # SIGNAL NO RATE FILTER 043686,000610: 043687,000611: 21,2576 37671 IMUAOK CAF PRIO34 # START MATRIX INITIALIZATION 043688,000612: 21,2577 05027 TC NOVAC # BYPASS IF IMU NOT IN FINE ALIGN 043689,000613: 21,2600 E6,1510 EBANK= KMPAC 043690,000614: 21,2600 03444 44066 2CADR AMBGUPDT 043691,000615: 043692,000616: 21,2602 32611 CAF RCSINIT # CLEAR BIT14 --ASSUME WE HAVE A GOOD IMU 043693,000617: 21,2603 55501 RCSSWIT TS RCSFLAGS # CLEAR BIT1 --INITIALIZE T6 PROGRAM 043694,000618: # SET BIT3 --INITIALIZE NEEDLES 043695,000619: # CLEAR BIT4 --RESET FOR FDAIDSP1 043696,000620: 21,2604 32613 CAF T5WAIT60 # NEXT T5RUPT 60 MS FROM NOW TO ALLOW IMU 043697,000621: # ERROR COUNTER TO ZERO. 043698,000622: # (MINIMUM DELAY = 15 MS) 043699,000623: 21,2605 54030 TS TIME5 # SINCE ATTKALMN IS +11, PROGRAM WILL THEN 043700,000624: 21,2606 05222 TC RESUME # PICK UP THE KALMAN FILTER GAINS. RATE 043701,000625: # FILTER WILL BEGIN OPERATING ZOOMS FROM 043702,000626: # NOW 043703,000627: 043704,000628: # CONSTANTS USED IN INITIALIZATION PROGRAM 043705,000629: 043706,000630: 21,2607 00044 NO.T5VAR DEC 36 B-14 043707,000631: 21,2610 07534 =.24 DEC .24 # = SLOPE OF 0.6/SEC 043708,000632: 21,2611 00004 RCSINIT OCT 00004 043709,000633: 21,2612 20004 RCSINITB OCT 20004 043710,000634: 21,2613 37772 T5WAIT60 DEC 16378 B-14 # = 6 CS 043711,000635: 21,2614 E6,1510 EBANK= KMPAC 043712,000636: 21,2614 03644 36066 T6ADDR 2CADR T6START 043713,000637: 043714,000638: 21,2616 34717 ZEROJET CAF ELEVEN # ZERO BLAST2, BLAST1, BLAST, YWORD2, 043715,000639: 21,2617 55506 TS SPNDX # YWORD1, PWORD2, PWORD1, RWORD2, 043716,000640: 21,2620 34714 CAF ZERO # AND RWORD1 043717,000641: 043718,000642: # Page 991 043719,000643: 21,2621 51506 INDEX SPNDX 043720,000644: 21,2622 55451 TS RWORD1 043721,000645: 21,2623 11506 CCS SPNDX 043722,000646: 21,2624 12617 TCF ZEROJET +1 043723,000647: 043724,000648: 21,2625 34710 CAF FOUR 043725,000649: 21,2626 55462 TS BLAST1 +1 043726,000650: 21,2627 34717 CAF ELEVEN 043727,000651: 21,2630 55464 TS BLAST2 +1 043728,000652: 043729,000653: 21,2631 44712 CS BIT1 043730,000654: 21,2632 71501 MASK RCSFLAGS 043731,000655: 21,2633 55501 TS RCSFLAGS # RESET BIT1 OF RCSFLAGS TO 0 043732,000656: 043733,000657: 21,2634 00006 EXTEND 043734,000658: 21,2635 32615 DCA T6ADDR 043735,000659: 21,2636 53311 DXCH T6LOC 043736,000660: 21,2637 33034 CAF =+14MS # ENABLE T6RUPT TO SHUT OFF JETS IN 14 MS. 043737,000661: 21,2640 54031 TS TIME6 043738,000662: 21,2641 34674 CAF BIT15 043739,000663: 21,2642 00006 EXTEND 043740,000664: 21,2643 05013 WOR CHAN13 043741,000665: 043742,000666: 21,2644 00002 TC Q 043743,000667: 043744,000668: 21,2645 11617 T5PHASE2 CCS ATTKALMN # IF (+) INITIALIZE RATE ESTIMATE 043745,000669: 21,2646 13132 TCF KALUPDT 043746,000670: 21,2647 12651 TCF +2 # ONLY IF ATTKALMN POSITIVE 043747,000671: 21,2650 12651 TCF +1 043748,000672: 21,2651 32142 CA DELTATT2 # RESET FOR PHASE3 IN 20 MS 043749,000673: 21,2652 56030 XCH TIME5 # (JET SELECTION LOGIC) 043750,000674: 21,2653 27634 ADS T5TIME # TO COMPENSATE FOR DELAYS IN T5RUPT 043751,000675: 21,2654 31501 CA RCSFLAGS # IF A HIGH RATE AUTO MANEUVER IS IN 043752,000676: 21,2655 74674 MASK BIT15 # PROGRESS (BIT 15 OF RCSFLAGS SET), SET 043753,000677: 21,2656 00006 EXTEND # ATTKALMN TO -1 043754,000678: 21,2657 12661 BZF NOHIAUTO # OTHERWISE SET ATTKALMN TO 0. 043755,000679: 21,2660 44712 CS ONE 043756,000680: 21,2661 55617 NOHIAUTO TS ATTKALMN 043757,000681: 043758,000682: # Page 992 043759,000683: # MANUAL ROTATION COMMANDS 043760,000684: 043761,000685: 21,2662 43016 CS OCT01760 # RESET FORCED FIRING BITS (BITS 10 TO 5 043762,000686: 21,2663 71501 MASK RCSFLAGS # OF RCSFLAGS) TO ZERO 043763,000687: 21,2664 55501 TS RCSFLAGS 043764,000688: 043765,000689: 21,2665 00006 EXTEND 043766,000690: 21,2666 00031 READ CHAN31 043767,000691: 21,2667 54001 TS L 043768,000692: 21,2670 31632 CA CH31TEMP 043769,000693: 21,2671 00006 EXTEND 043770,000694: 21,2672 06001 RXOR LCHAN 043771,000695: 21,2673 73022 MASK MANROT # = OCT00077 043772,000696: 21,2674 00006 EXTEND 043773,000697: 21,2675 62710 BZMF NOCHANGE 043774,000698: 043775,000699: 21,2676 22000 LXCH A 043776,000700: 21,2677 55632 TS CH31TEMP # SAVE CONTENTS OF CHANNEL 31 IN CH31TEMP 043777,000701: 043778,000702: 21,2700 30001 CA L 043779,000703: 21,2701 00006 EXTEND 043780,000704: 21,2702 74706 MP BIT5 # PUT BITS 6-1 OF A IN BITS 10-5 OF L 043781,000705: 21,2703 30001 CA L 043782,000706: 21,2704 27501 ADS RCSFLAGS # SET FORCED FIRING BITS FOR AXES WITH 043783,000707: # CHANGES IN COMMAND. BITS 10,9 FOR 043784,000708: # ROLL, BITS 8,7 FOR YAW, BITS 6,5 FOR 043785,000709: # PITCH 043786,000710: 043787,000711: 21,2705 41501 CS RCSFLAGS # SET RATE DAMPING FLAGS (BITS 13,12, AND 043788,000712: 21,2706 73023 MASK OCT16000 # 11 OF RCSFLAGS) 043789,000713: 21,2707 27501 ADS RCSFLAGS 043790,000714: 043791,000715: 21,2710 41632 NOCHANGE CS CH31TEMP 043792,000716: 21,2711 73022 MASK MANROT 043793,000717: 21,2712 00006 EXTEND 043794,000718: 21,2713 63234 BZMF AHFNOROT # IF NO MANUAL COMMANDS, GO TO AHFNOROT 043795,000719: 043796,000720: 21,2714 55332 TS HOLDFLAG # SET HOLDFLAG + 043797,000721: 043798,000722: 21,2715 03114 TC STICKCHK # WHEN THE RHC IS OUT OF DETENT, PMANNDX, 043799,000723: # YMANNDX, AND RMANNDX ARE ALL SET, BY 043800,000724: # MEANS OF STICKCHK, TO 0, 1, OR 2 FOR NO, 043801,000725: # +, OR - ROTATION RESPECTIVELY AS 043802,000726: # COMMANDED BY THE RHC. 043803,000727: 043804,000728: # HOWEVER, IT IS WELL TO NOTE THAT AFTER 043805,000729: # THE RHC IS RETURNED TO DETENT, THE 043806,000730: # PROGRAM BRANCHES TO AHFNOROT AND AVOIDS 043807,000731: # STICKCHK SO PMANNDX, YMANNDX, AND 043808,000732: # RMANNDX ARE NOT RESET TO ZERO BUT RATHER 043809,000733: # LEFT SET TO THEIR LAST OUT OF DETENT 043810,000734: # Page 993 043811,000735: # VALUES. 043812,000736: 043813,000737: 21,2716 40075 CS FLAGWRD1 # SET STIKFLAG TO INFORM STEERING 043814,000738: 21,2717 74675 MASK BIT14 # PROGRAMS (P20) THAT ASTRONAUT HAS 043815,000739: 21,2720 26075 ADS FLAGWRD1 # ASSUMED ROTATIONAL CONTROL OF SPACECRAFT 043816,000740: 043817,000741: 21,2721 34675 CAF BIT14 043818,000742: 21,2722 00006 EXTEND 043819,000743: 21,2723 02031 RAND CHAN31 043820,000744: 21,2724 00006 EXTEND 043821,000745: 21,2725 63035 BZMF FREEFUNC 043822,000746: 043823,000747: 21,2726 31501 CA RCSFLAGS # EXAMINE RCSFLAGS TO SEE IF RATE FILTER 043824,000748: 21,2727 74675 MASK BIT14 # HAS BEEN INITIALIZED 043825,000749: 21,2730 10000 CCS A # IF SO, PROCEED WITH MANUAL RATE COMMANDS 043826,000750: 21,2731 12520 TCF REINIT # .....TILT, RECYCLE TO INITIALIZE FILTER 043827,000751: 043828,000752: 21,2732 44715 CS FIVE # IF MANUAL MANEUVER IS AT HIGH RTE, SET 043829,000753: 21,2733 61130 AD RATEINDX # ATTKALMN TO -1. 043830,000754: 21,2734 00006 EXTEND # OTHERWISE, LEAVE ATTKALMN ALONE. 043831,000755: 21,2735 62740 BZMF +3 043832,000756: 21,2736 44712 CS ONE 043833,000757: 21,2737 55617 TS ATTKALMN 043834,000758: 21,2740 34711 CAF TWO # AUTO-HOLD MANUAL ROTATION 043835,000759: 21,2741 55506 SETWBODY TS SPNDX 043836,000760: 21,2742 60000 DOUBLE 043837,000761: 21,2743 55507 TS DPNDX 043838,000762: 21,2744 51506 INDEX SPNDX # RMANNDX = 0 NO ROTATION 043839,000763: 21,2745 31656 CA RMANNDX # = 1 + ROTATION 043840,000764: 21,2746 00006 EXTEND # = 2 - ROTATION 043841,000765: 21,2747 12771 BZF NORATE # IF NO ROTATION COMMAND ON THIS AXIS, 043842,000766: # GO TO NORATE. 043843,000767: 043844,000768: 21,2750 61130 AD RATEINDX # RATEINDX = 0 0.05 DEG/SEC 043845,000769: 21,2751 54002 TS Q # = 2 0.2 DEG/SEC 043846,000770: 21,2752 50002 INDEX Q # = 4 0.5 DEG/SEC 043847,000771: 21,2753 33023 CA MANTABLE -1 # = 6 4.0 DEG/SEC 043848,000772: 21,2754 00006 EXTEND 043849,000773: 21,2755 74702 MP BIT9 # MULTIPLY MANTABLE BY 2 TO THE -6 043850,000774: 21,2756 51507 INDEX DPNDX # TO GET COMMANDED RATE. 043851,000775: 21,2757 53526 DXCH WBODY # SET WBODY TO COMMANDED RATE. 043852,000776: 043853,000777: 21,2760 31501 CA RCSFLAGS 043854,000778: 21,2761 73023 MASK OCT16000 # IS RATE DAMPING COMPLETED (BITS 13,12 AND 043855,000779: 21,2762 00006 EXTEND # 11 OF RCSFLAGS ALL ZERO.) IF SO, GO TO 043856,000780: 21,2763 13001 BZF MERUPDAT # MERUPDAT TO UPDATE CUMULATIVE ATTITUDE 043857,000781: # ERROR. 043858,000782: 043859,000783: # Page 994 043860,000784: 21,2764 34714 ZEROER CA ZERO # ZEROER ZEROS MERRORS 043861,000785: 21,2765 22007 ZL 043862,000786: 21,2766 51507 INDEX DPNDX 043863,000787: 21,2767 53542 DXCH MERRORX 043864,000788: 21,2770 13007 TCF SPNDXCHK 043865,000789: 043866,000790: 21,2771 22007 NORATE ZL 043867,000791: 21,2772 51507 INDEX DPNDX 043868,000792: 21,2773 53526 DXCH WBODY # ZERO WBODY FOR THIS AXIS 043869,000793: 21,2774 31501 CA RCSFLAGS 043870,000794: 21,2775 73023 MASK OCT16000 043871,000795: 21,2776 00006 EXTEND # IS RATE DAMPING COMPLETED 043872,000796: 21,2777 13007 BZF SPNDXCHK # YES, KEEP CURRENT MERRORX GO TO SPNDXCHK 043873,000797: 21,3000 12764 TCF ZEROER # NO, GO TO ZEROER 043874,000798: 043875,000799: 21,3001 50002 MERUPDAT INDEX Q # MERRORX=MERRORX+MEASURED CHANGE IN ANGLE 043876,000800: 21,3002 43023 CS MANTABLE -1 # -COMMANDED CHANGE IN ANGLE 043877,000801: 21,3003 00006 EXTEND # THE ADDITION OF MEASURED CHANGE IN ANGLE 043878,000802: 21,3004 74704 MP BIT7 # HAS ALREADY BEEN DONE IN THE RATE FILTER 043879,000803: 21,3005 51507 INDEX DPNDX # COMMANDED CHANGE IN ANGLE = WBODY TIMES 043880,000804: 21,3006 21542 DAS MERRORX # .1SEC = MANTABLE ENTRY TIMES 2 TO THE -8 043881,000805: 043882,000806: 21,3007 51507 SPNDXCHK INDEX DPNDX 043883,000807: 21,3010 31541 CA MERRORX 043884,000808: 21,3011 51506 INDEX SPNDX 043885,000809: 21,3012 55567 TS ERRORX # ERRORX = HIGH ORDER WORD OF MERRORX 043886,000810: 21,3013 11506 CCS SPNDX 043887,000811: 21,3014 12741 TCF SETWBODY 043888,000812: 21,3015 13425 TCF JETS 043889,000813: 21,3016 01760 OCT01760 OCT 01760 # FORCED FIRING BITS MASK 043890,000814: 043891,000815: 21,3017 01400 OCT01400 OCT 01400 # ROLL FORCED FIRING MASK ORDER OF 043892,000816: 21,3020 00060 OCT00060 OCT 00060 # PITCH FORCED FIRING MASK DEFINITION 043893,000817: 21,3021 00300 OCT00300 OCT 00300 # YAW FORCED FIRING MASK MUST BE 043894,000818: # PRESERVED 043895,000819: # FOR INDEXING 043896,000820: 21,3022 00077 MANROT OCT 77 043897,000821: 21,3023 16000 OCT16000 OCT 16000 # RATE DAMPING FLAGS MASK 043898,000822: 21,3024 00165 MANTABLE DEC .0071111 043899,000823: 21,3025 77612 DEC -.0071111 043900,000824: 21,3026 00722 DEC .028444 043901,000825: 21,3027 77055 DEC -0.028444 043902,000826: 21,3030 02215 DEC .071111 043903,000827: 21,3031 75562 DEC -.071111 043904,000828: 21,3032 22151 DEC .568889 043905,000829: 21,3033 55626 DEC -.568889 043906,000830: 21,3034 00027 =+14MS DEC 23 B-14 043907,000831: 043908,000832: 21,3035 51656 FREEFUNC INDEX RMANNDX # ACCELERATION 043909,000833: # Page 995 043910,000834: 21,3036 33047 CA FREETAU # COMMANDS 043911,000835: 21,3037 55561 TS TAU 043912,000836: 21,3040 51657 INDEX PMANNDX 043913,000837: 21,3041 33047 CA FREETAU # FREETAU 0 SEC 043914,000838: 21,3042 55562 TS TAU1 # +1 +0.10 SEC 043915,000839: 21,3043 51660 INDEX YMANNDX # +2 -0.10 SEC 043916,000840: 21,3044 33047 CA FREETAU # (+3) 0 SEC 043917,000841: 21,3045 55563 TS TAU2 043918,000842: 21,3046 13053 TCF T6PROGM 043919,000843: 043920,000844: 21,3047 00000 FREETAU DEC 0 B-14 043921,000845: 21,3050 00740 DEC 480 B-14 043922,000846: 21,3051 77037 DEC -480 B-14 043923,000847: 21,3052 00000 DEC 0 B-14 043924,000848: 043925,000849: 21,3053 34714 T6PROGM CAF ZERO # FOR MANUAL ROTATIONS 043926,000850: 21,3054 55567 TS ERRORX 043927,000851: 21,3055 55570 TS ERRORY 043928,000852: 21,3056 55571 TS ERRORZ 043929,000853: 21,3057 13743 TCF T6PROG 043930,000854: 043931,000855: # Page 996 043932,000856: 21,3060 06604 DEC .2112 # FILTER GAIN FOR TRANSLATION, LEM ON 043933,000857: 21,3061 32703 DEC .8400 # FILTER GAIN FOR TRANSLATION 2(ZETA)WN DT 043934,000858: 21,3062 06604 DEC .2112 # FILTER GAIN FOR 4 DEGREE/SEC MANEUVERS 043935,000859: 21,3063 02031 GAIN1 DEC .0640 # KALMAN FILTER GAINS FOR INITIALIZATION 043936,000860: 21,3064 12132 DEC .3180 # OF ATTITUDE RATES 043937,000861: 21,3065 13030 DEC .3452 043938,000862: 21,3066 14047 DEC .3774 043939,000863: 21,3067 15241 DEC .4161 043940,000864: 21,3070 16650 DEC .4634 043941,000865: 21,3071 20555 DEC .5223 043942,000866: 21,3072 23065 DEC .5970 043943,000867: 21,3073 26137 DEC .6933 043944,000868: 21,3074 32053 DEC .8151 043945,000869: 21,3075 35712 DEC .9342 043946,000870: 043947,000871: 21,3076 00435 DEC .0174 # FILTER GAIN FOR TRANSLATION, LEM ON 043948,000872: 21,3077 13412 DEC .3600 # FILTER GAIN FOR TRANSLATION (WN)(WN)DT 043949,000873: 21,3100 00435 DEC .0174 # FILTER GAIN FOR 4 DEGREE/SEC MANEUVERS 043950,000874: 21,3101 00032 GAIN2 DEC .0016 # SCALED 10 043951,000875: 21,3102 01350 DEC .0454 043952,000876: 21,3103 01575 DEC .0545 043953,000877: 21,3104 02103 DEC .0666 043954,000878: 21,3105 02523 DEC .0832 043955,000879: 21,3106 03327 DEC .1069 043956,000880: 21,3107 04432 DEC .1422 043957,000881: 21,3110 06264 DEC .1985 043958,000882: 21,3111 11351 DEC .2955 043959,000883: 21,3112 17324 DEC .4817 043960,000884: 21,3113 33622 DEC .8683 043961,000885: 043962,000886: 21,3114 55502 STICKCHK TS T5TEMP 043963,000887: 21,3115 76214 MASK THREE # INDICES FOR MANUAL ROTATION 043964,000888: 21,3116 55657 TS PMANNDX 043965,000889: 21,3117 31502 CA T5TEMP 043966,000890: 21,3120 00006 EXTEND # MAN RATE 0 0 RATE (DP) 043967,000891: 21,3121 74676 MP QUARTER # +1 + RATE (DP) 043968,000892: 21,3122 55502 TS T5TEMP # +2 - RATE (DP) 043969,000893: 21,3123 76214 MASK THREE # (+3) 0 RATE (DP) 043970,000894: 21,3124 55660 TS YMANNDX 043971,000895: 21,3125 31502 CA T5TEMP 043972,000896: 21,3126 00006 EXTEND 043973,000897: 21,3127 74676 MP QUARTER 043974,000898: 21,3130 55656 TS RMANNDX 043975,000899: 21,3131 00002 TC Q 043976,000900: 21,3132 55617 KALUPDT TS ATTKALMN # INITIALIZATION OF ATTITUDE RATES USING 043977,000901: # KALMAN FILTER TAKES 1.1 SEC 043978,000902: 043979,000903: 21,3133 32141 CA DELTATT # =1SEC - 80MS 043980,000904: 21,3134 61634 AD T5TIME # + DELAYS 043981,000905: # Page 997 043982,000906: 21,3135 54030 TS TIME5 043983,000907: 21,3136 13141 TCF +3 043984,000908: 21,3137 32142 CAF DELTATT2 # SAFETY PLAY TO ASSURE 043985,000909: 21,3140 54030 TS TIME5 # A T5RUPT 043986,000910: 21,3141 44714 KRESUME2 CS ZERO # RESET FOR PHASE1 043987,000911: 21,3142 55465 TS T5PHASE # RESUME INTERRUPTED PROGRAM 043988,000912: 21,3143 15222 TCF RESUME 043989,000913: 21,3144 44707 FDAIDSP2 CS BIT4 # RESET FOR FDAIDSP1 043990,000914: 21,3145 71501 MASK RCSFLAGS 043991,000915: 21,3146 55501 TS RCSFLAGS 043992,000916: 043993,000917: 21,3147 40074 CS FLAGWRD0 # ON - DISPLAY ONE OF THE TOTAL ATTITUDE 043994,000918: 21,3150 74702 MASK BIT9 # ERRORS 043995,000919: 21,3151 00006 EXTEND 043996,000920: 21,3152 13161 BZF FDAITOTL 043997,000921: 21,3153 00006 EXTEND 043998,000922: 21,3154 41570 DCS ERRORX # OFF - DISPLAY AUTOPILOT FOLLOWING ERROR 043999,000923: 21,3155 53477 DXCH AK 044000,000924: 21,3156 41571 CS ERRORZ 044001,000925: 21,3157 55500 TS AK2 044002,000926: 21,3160 15222 TCF RESUME # END PHASE 1 044003,000927: 21,3161 30105 FDAITOTL CA FLAGWRD9 044004,000928: 21,3162 74705 MASK BIT6 044005,000929: 21,3163 00006 EXTEND 044006,000930: 21,3164 13227 BZF WRTN17 # IS N22ORN17 (BIT6 OF FLAGWRD9) = 0 044007,000931: # IF SO, GO TO WRTN7 044008,000932: 21,3165 00006 WRTN22 EXTEND # OTHERWISE, CONTINUE ON TO WRTN22 AND 044009,000933: 21,3166 31157 DCA CTHETA # GET SET TO COMPUTE TOTAL ATTITUDE 044010,000934: 21,3167 53514 DXCH WTEMP # ERROR WRT N22 BY PICKING UP THE THREE 044011,000935: 21,3170 31155 CA CPHI # COMPONENTS OF N22 044012,000936: 044013,000937: 21,3171 00006 GETAKS EXTEND # COMPUTE TOTAL ATTITUDE ERROR FOR 044014,000938: 21,3172 20032 MSU CDUX # DISPLAY ON FDAI ERROR NEEDLES 044015,000939: 21,3173 55476 TS AK 044016,000940: 21,3174 31513 CA WTEMP 044017,000941: 21,3175 00006 EXTEND 044018,000942: 21,3176 20033 MSU CDUY 044019,000943: 21,3177 55502 TS T5TEMP 044020,000944: 21,3200 00006 EXTEND 044021,000945: 21,3201 71640 MP AMGB1 044022,000946: 21,3202 27476 ADS AK 044023,000947: 21,3203 31502 CA T5TEMP 044024,000948: 21,3204 00006 EXTEND 044025,000949: 21,3205 71641 MP AMGB4 044026,000950: # Page 998 044027,000951: 21,3206 55477 TS AK1 044028,000952: 21,3207 31502 CA T5TEMP 044029,000953: 21,3210 00006 EXTEND 044030,000954: 21,3211 71643 MP AMGB7 044031,000955: 21,3212 55500 TS AK2 044032,000956: 21,3213 31514 CA WTEMP +1 044033,000957: 21,3214 00006 EXTEND 044034,000958: 21,3215 20034 MSU CDUZ 044035,000959: 21,3216 55502 TS T5TEMP 044036,000960: 21,3217 00006 EXTEND 044037,000961: 21,3220 71642 MP AMGB5 044038,000962: 21,3221 27477 ADS AK1 044039,000963: 21,3222 31502 CA T5TEMP 044040,000964: 21,3223 00006 EXTEND 044041,000965: 21,3224 71644 MP AMGB8 044042,000966: 21,3225 27500 ADS AK2 044043,000967: 21,3226 15222 TCF RESUME # END PHASE1 OF RCS DAP 044044,000968: 044045,000969: 21,3227 00006 WRTN17 EXTEND # GET SET TO COMPUTE TOTAL ASTRONAUT 044046,000970: 21,3230 31335 DCA CPHIX +1 # ATTITUDE ERROR WRT N17 BY PICKING UP 044047,000971: 21,3231 53514 DXCH WTEMP # THE THREE COMPONENTS OF N17 044048,000972: 21,3232 31333 CA CPHIX 044049,000973: 21,3233 13171 TCF GETAKS 044050,000974: 044051,000975: # Page 999 044052,000976: # ... is blank. Yay! --- RSB 2004 044053,000977: End of include-file RCS-CSM_DIGITAL_AUTOPILOT.agc. Parent file is MAIN.agc