Source Code
These source-code files are part of a reconstructed copy of Comanche 44, the
initial release (though not the final mission release) of the Apollo 10
Command Module (CM) Apollo Guidance Computer (AGC) software. Subsequent releases
were Comanche 45 and Comanche 45/2 (the flown release on Apollo 10). The reconstruction
is believed to be exactly accurate, but in the absence of an actual Apollo-era
listing of Comanche 44, some explanation of the reconstruction process is needed
to insure confidence in that accuracy.
The starting point was the source code of Comanche 51 (separately previously reconstructed from an Apollo-era listing of Comanche 55, flown on Apollo 11). Comanche 51 source code was then modified by undoing changes known to have been made between revisions 44 and 51. The now-reconstructed Comanche 44 source code was verified by assembling it and checking that the assembled code had the expected known-correct memory-bank checksums. Note that page numbers in the reconstructed code match those on the Comanche 55 printout, although the source code would likely have different page numbers in a contemporary Comanche 44 listing. Annotations that were not present in the contemporary source code have been added to the reconstructed code to justify each change relative to Comanche 51. Here's a guide to the Apollo documentation referenced in those annotations:
Comments expected to have been present in the original source code are prefixed with a single '#' symbol, whereas comments added later are prefixed by "##" or "###". Report any errors noted by creating an issue report at the Virtual AGC Project's GitHub repository. |
044214,000002: ## Copyright: Public domain.
044215,000003: ## Filename: RCS-CSM_DIGITAL_AUTOPILOT.agc
044216,000004: ## Purpose: A section of Comanche revision 044.
044217,000005: ## It is part of the reconstructed source code for the
044218,000006: ## original release of the flight software for the Command
044219,000007: ## Module's (CM) Apollo Guidance Computer (AGC) for Apollo 10.
044220,000008: ## The code has been recreated from a copy of Comanche 055. It
044221,000009: ## has been adapted such that the resulting bugger words
044222,000010: ## exactly match those specified for Comanche 44 in NASA drawing
044223,000011: ## 2021153D, which gives relatively high confidence that the
044224,000012: ## reconstruction is correct.
044225,000013: ## Assembler: yaYUL
044226,000014: ## Contact: Ron Burkey <info@sandroid.org>.
044227,000015: ## Website: www.ibiblio.org/apollo/index.html
044228,000016: ## Mod history: 2020-12-03 MAS Created from Comanche 51.
044229,000017: ## 2020-12-04 MAS Changed max rate from 2 deg/s to 4 deg/s.
044230,000018: ## 2020-12-12 RSB Added justifying annotations for Mike's
044231,000019: ## reconstruction steps.
044232,000020:
Page 1002 |
044234,000022: # T5 INTERRUPT PROGRAM FOR THE RCS-CSM AUTOPILOT
044235,000023:
044236,000024: # START OF T5 INTERRUPT PROGRAM
044237,000025:
044238,000026: 20,3612 BANK 20
044239,000027: 21,2000 SETLOC DAPS3
044240,000028: 21,2000 BANK
044241,000029:
044242,000030: 21,2105 COUNT 21/DAPRC
044243,000031:
044244,000032: 21,2105 E6,1510 EBANK= KMPAC
044245,000033: 21,2105 22016 REDORCS LXCH BANKRUPT # RESTART OF AUTOPILOT COMES HERE
044246,000034: 21,2106 31465 CA T5PHASE # ON A T5 RUPT.
044247,000035: 21,2107 00006 EXTEND
044248,000036: 21,2110 62112 BZMF +2 # IF T5PHASE +0, -0, OR -, RESET TO -
044249,000037: 21,2111 12114 TCF +3 # IF T5PHASE +, LEAVE IT +. DO A FRESHDAP
044250,000038: 21,2112 45017 CS ONE
044251,000039: 21,2113 55465 TS T5PHASE
044252,000040: 21,2114 00006 EXTEND
044253,000041: 21,2115 32121 DCA RCSLOC
044254,000042: 21,2116 53313 DXCH T5LOC # HOOK UP T5RUPT TO AUTOPILOT
044255,000043: 21,2117 12123 TCF RCSATT +1
044256,000044: 21,2120 E6,1510 EBANK= KMPAC
044257,000045: 21,2120 02122 42066 RCSLOC 2CADR RCSATT
044258,000046:
044259,000047: 21,2122 22016 RCSATT LXCH BANKRUPT # SAVE BB
044260,000048: 21,2123 00006 EXTEND # SAVE Q
044261,000049: 21,2124 22012 QXCH QRUPT
044262,000050: 21,2125 35001 CAF BIT15 # BIT15 CHAN31 = 0 IF IMU POWER IS ON AND
044263,000051: 21,2126 00006 EXTEND # S/C CONT SW IS IN CMC (I.E. IF G/C AUTO
044264,000052: 21,2127 02031 RAND CHAN31 # PILOT IS FULLY ENABLED)
044265,000053: 21,2130 00006 EXTEND
044266,000054: 21,2131 12160 BZF SETT5 # IF G/C AUTOPILOT IS FULLY ENABLED,
044267,000055: # GO TO SETT5
044268,000056:
044269,000057: 21,2132 41501 CS RCSFLAGS # IF G/C AUTOPILOT IS NOT FULLY ENABLED,
044270,000058: 21,2133 75002 MASK BIT14
044271,000059: 21,2134 27501 ADS RCSFLAGS # SET NORATE FLAG,
044272,000060: 21,2135 34777 CAF POSMAX
044273,000061: 21,2136 55332 TS HOLDFLAG # SET HOLDFLAG +,
044274,000062: 21,2137 35021 CAF ZERO # ZERO ERRORX, ERRORY, AND ERRORZ,
044275,000063: 21,2140 55567 TS ERRORX
044276,000064: 21,2141 55570 TS ERRORY
044277,000065: 21,2142 55571 TS ERRORZ
044278,000066: 21,2143 35002 CAF BIT14
044279,000067: 21,2144 00006 EXTEND
044280,000068: 21,2145 02031 RAND CHAN31 # AND CHECK FREE FUNCTION (BIT14 CHAN31).
044281,000069: 21,2146 00006 EXTEND
Page 1003 |
044283,000071: 21,2147 12160 BZF SETT5 # IF IN FREE MODE, GO TO SETT5.
044284,000072:
044285,000073: 21,2150 55465 TS T5PHASE # IF NOT IN FREE MODE,
044286,000074: 21,2151 37676 CAF OCT37766 # SCHEDULE REINITIALIZATION (FRESHDAP)
044287,000075: 21,2152 54030 TS TIME5 # IN 100 MS VIA T5RUPT
044288,000076:
044289,000077: 21,2153 02632 TCR ZEROJET # ZERO JET CHANNELS IN 14 MS VIA ZEROJET
044290,000078:
044291,000079: 21,2154 12350 TCF KMATRIX
044292,000080: 21,2155 37770 DELTATT OCT 37770 # 80MS (TIME5)
044293,000081: 21,2156 37776 DELTATT2 OCT 37776 # 20MS (TIME5)
044294,000082: 21,2157 37634 ONESEK DEC 16284 B-14 # 1 SEC(TIME5)
044295,000083: 21,2160 CHAN5 EQUALS 5
044296,000084: 21,2160 CHAN6 EQUALS 6
044297,000085: 21,2160 7671 PRIO34A = PRIO34
044298,000086:
044299,000087: # CHECK PHASE OF T5 PROGRAM
044300,000088:
044301,000089: # BECAUSE OF THE LENGTH OF THE T5 PROGRAM,IT HAS BEEN DIVIDED INTO
044302,000090: # THREE PARTS, T5PHASE1, T5PHASE2, AND THE JET SELECTION LOGIC,
044303,000091: # TO ALLOW FOR THE EXECUTION OF OTHER
044304,000092: # INTERRUPTS. T5PHASE IS ALSO USED IN THE INITIALIZATION OF THE AUTOPILOT
044305,000093: # VARIABLES AT TURN ON.
044306,000094:
044307,000095: # THE CODING OF T5PHASE IS...
044308,000096:
044309,000097: # + = INITIALIZE T5 RCS-CSM AUTOPILOT
044310,000098: # T5PHASE = +0 = PHASE2 OF THE T5 PROGRAM
044311,000099: # - = RESTART DAP
044312,000100: # -0 = PHASE1 OF THE T5 PROGRAM
044313,000101:
044314,000102: 21,2160 11465 SETT5 CCS T5PHASE
044315,000103: 21,2161 12544 TCF FRESHDAP # TURN ON AUTOPILOT
044316,000104: 21,2162 12661 TCF T5PHASE2 # BRANCH TO PHASE2 OF PROGRAM
044317,000105: 21,2163 12546 TCF REDAP # RESTART AUTOPILOT
044318,000106:
044319,000107: 21,2164 55465 TS T5PHASE # PHASE 1 RESET FOR PHASE 2
044320,000108: 21,2165 30030 CA TIME5
044321,000109: 21,2166 55634 TS T5TIME # USED IN COMPENSATING FOR DELAYS IN T5
044322,000110: 21,2167 32156 CAF DELTATT2 # RESET FOR T5RUPT IN 20MS FOR PHASE2
044323,000111: 21,2170 54030 TS TIME5 # OF PROGRAM
044324,000112:
Page 1004 |
044326,000114: # IMU STATUS CHECK
044327,000115:
044328,000116: 21,2171 41321 CS IMODES33 # CHECK IMU STATUS
044329,000117: 21,2172 75012 MASK BIT6 # BIT6 = 0 IMU OK
044330,000118: 21,2173 10000 CCS A # BIT6 = 1 NO IMU
044331,000119: 21,2174 12210 TCF RATEFILT
044332,000120: 21,2175 41501 FREECHK CS RCSFLAGS # BIT14 INDICATES THAT RATES HAVE NOT BEEN
044333,000121: 21,2176 75002 MASK BIT14 # INITIALIZED
044334,000122: 21,2177 27501 ADS RCSFLAGS
044335,000123: 21,2200 35002 CAF BIT14 # NO ATTITUDE REFERENCE
044336,000124: 21,2201 55332 TS HOLDFLAG # STOP ANY AUTOMATIC STEERING AND PREPARE
044337,000125: # TO PICK UP CDU ANGLES UPON RESUMPTION OF
044338,000126: # ATTITUDE HOLD
044339,000127: 21,2202 00006 EXTEND
044340,000128: 21,2203 02031 RAND CHAN31 # CHECK FOR FREE MODE
044341,000129: 21,2204 00006 EXTEND
044342,000130: 21,2205 12417 BZF KRESUME1 # IN FREE MODE PROVIDE FREE CONTROL ONLY
044343,000131: 21,2206 12534 TCF REINIT # .....TILT...............................
044344,000132: 21,2207 00030 BITS4,5 OCT 30
044345,000133:
044346,000134: 21,2210 31501 RATEFILT CA RCSFLAGS # SEE IF RATEFILTER HAS BEEN INITIALIZED
044347,000135: 21,2211 75002 MASK BIT14
044348,000136: 21,2212 00006 EXTEND # IF SO, PROCEED WITH RATE DERIVATION
044349,000137: 21,2213 12215 BZF +2
044350,000138: 21,2214 12350 TCF KMATRIX # IF NOT, SKIP RATE DERIVATION
044351,000139:
044352,000140: # RATE FILTER TIMING = 7.72 MS
044353,000141:
044354,000142: # RATE FILTER EQUATIONS
044355,000143:
044356,000144:
044357,000145: # DRHO = DELRHO - (.1)ADOT + (1 - GAIN1)DRHO
044358,000146: # -1
044359,000147:
044360,000148: # ADOT = ADOT + GAIN2 DRHO + KMJ DFT
044361,000149: # -1
044362,000150: # - * - -
044363,000151: # WHERE DELRHO = AMGB (CDU - CDU )
044364,000152: # -1
044365,000153:
044366,000154: 21,2215 35016 CAF TWO
044367,000155: 21,2216 55506 DRHOLOOP TS SPNDX
044368,000156: 21,2217 60000 DOUBLE
044369,000157: 21,2220 55507 TS DPNDX
044370,000158: 21,2221 51507 INDEX DPNDX
044371,000159: 21,2222 41552 CS DRHO # DRHO SCALED 180 DEGS
044372,000160: 21,2223 00006 EXTEND
044373,000161: 21,2224 51617 INDEX ATTKALMN # PICK UP DESIRED FILTER GAIN
044374,000162: 21,2225 73077 MP GAIN1
044375,000163: 21,2226 51507 INDEX DPNDX
044376,000164: 21,2227 21553 DAS DRHO # (1 -.064) DRHO
044377,000165: 21,2230 00006 EXTEND
Page 1005 |
044379,000167: 21,2231 51507 INDEX DPNDX
044380,000168: 21,2232 41534 DCS ADOT
044381,000169: 21,2233 53511 DXCH KMPAC # -(.1)ADOT
044382,000170: 21,2234 35003 CA QUARTER
044383,000171: 21,2235 02042 TC SMALLMP
044384,000172: 21,2236 53511 DXCH KMPAC
044385,000173: 21,2237 51507 INDEX DPNDX
044386,000174: 21,2240 21553 DAS DRHO
044387,000175: 21,2241 11506 CCS SPNDX
044388,000176: 21,2242 12216 TCF DRHOLOOP
044389,000177:
044390,000178: 21,2243 30032 CA CDUX # MEASURED BODY RATES--
044391,000179: 21,2244 57635 XCH RHO
044392,000180: 21,2245 00006 EXTEND
044393,000181: 21,2246 21635 MSU RHO # - * - -
044394,000182: 21,2247 40000 COM # DELRHO = AMGB (CDU - CDU )
044395,000183: # -1
044396,000184: 21,2250 22007 ZL
044397,000185: 21,2251 53516 DXCH DELTEMPX
044398,000186: 21,2252 30033 CA CDUY
044399,000187: 21,2253 57636 XCH RHO1
044400,000188: 21,2254 00006 EXTEND
044401,000189: 21,2255 21636 MSU RHO1
044402,000190: 21,2256 40000 COM
044403,000191: 21,2257 55502 TS T5TEMP # (CDUY - RHO1) SCALED 90 DEGS
044404,000192: 21,2260 00006 EXTEND
044405,000193: 21,2261 71640 MP AMGB1
044406,000194: 21,2262 21516 DAS DELTEMPX # DELTEMPX = (CDUX-RHO) + AMGB1(CDUY-RHO1)
044407,000195: # MUST BE DOUBLE PRECISION OR WILL LOSE
044408,000196: # PULSES
044409,000197: 21,2263 31641 CA AMGB4
044410,000198: 21,2264 00006 EXTEND
044411,000199: 21,2265 71502 MP T5TEMP
044412,000200: 21,2266 53520 DXCH DELTEMPY
044413,000201: 21,2267 31643 CA AMGB7
044414,000202: 21,2270 00006 EXTEND
044415,000203: 21,2271 71502 MP T5TEMP
044416,000204: 21,2272 53522 DXCH DELTEMPZ
044417,000205: 21,2273 30034 CA CDUZ
044418,000206: 21,2274 57637 XCH RHO2
044419,000207: 21,2275 00006 EXTEND
044420,000208: 21,2276 21637 MSU RHO2
044421,000209: 21,2277 40000 COM
044422,000210: 21,2300 55502 TS T5TEMP # (CDUZ - RHO2) SCALED 90 DEGS
044423,000211: 21,2301 00006 EXTEND
044424,000212: 21,2302 71642 MP AMGB5
044425,000213: 21,2303 21520 DAS DELTEMPY # DELTEMPY = AMGB4(CDUY-RHO1)
044426,000214: # + AMGB5(CDUZ-RHO2)
044427,000215: 21,2304 31644 CA AMGB8
044428,000216: 21,2305 00006 EXTEND
044429,000217:
Page 1006 |
044431,000219: 21,2306 71502 MP T5TEMP
044432,000220: 21,2307 21522 DAS DELTEMPZ # DELTEMPZ = AMGB7(CDUY-RHO1)
044433,000221: # + AMGB8(CDUZ-RHO2)
044434,000222: 21,2310 35016 CAF TWO
044435,000223: 21,2311 55506 ADOTLOOP TS SPNDX
044436,000224: 21,2312 60000 DOUBLE
044437,000225: 21,2313 55507 TS DPNDX
044438,000226: 21,2314 00006 EXTEND
044439,000227: 21,2315 51507 INDEX DPNDX
044440,000228: 21,2316 31516 DCA DELTEMPX
044441,000229: 21,2317 51507 INDEX DPNDX
044442,000230: 21,2320 21553 DAS DRHO
044443,000231: 21,2321 00006 EXTEND
044444,000232: 21,2322 51507 INDEX DPNDX
044445,000233: 21,2323 31516 DCA DELTEMPX
044446,000234: 21,2324 51507 INDEX DPNDX
044447,000235: 21,2325 21542 DAS MERRORX
044448,000236: 21,2326 51507 INDEX DPNDX
044449,000237: 21,2327 31552 CA DRHO
044450,000238: 21,2330 60000 DOUBLE # N.B.
044451,000239: 21,2331 60000 DOUBLE # N.B.
044452,000240: 21,2332 00006 EXTEND
044453,000241: 21,2333 51617 INDEX ATTKALMN # PICK UP DESIRED FILTER GAINS
044454,000242: 21,2334 73115 MP GAIN2
044455,000243: 21,2335 51507 INDEX DPNDX # ADOT + (.16)(.1)DRHO
044456,000244: 21,2336 21534 DAS ADOT # -1
044457,000245: 21,2337 51506 INDEX SPNDX # S/C TORQUE TO INERTIA RATIO
044458,000246: 21,2340 31620 CA KMJ # SCALED (450)(1600)/(57.3)(16384)=1/1.3
044459,000247: 21,2341 00006 EXTEND
044460,000248: 21,2342 51506 INDEX SPNDX
044461,000249: 21,2343 71547 MP DFT
044462,000250: 21,2344 51507 INDEX DPNDX
044463,000251: 21,2345 21534 DAS ADOT # KMJ(DFT)
044464,000252: 21,2346 11506 CCS SPNDX
044465,000253: 21,2347 12311 TCF ADOTLOOP # END CALCULATION OF VEHICLE RATES
044466,000254: 21,2350 31560 KMATRIX CA ATTSEC
044467,000255: 21,2351 75026 MASK LOW4
044468,000256: 21,2352 10000 CCS A
044469,000257: 21,2353 12361 TCF TENTHSEK
044470,000258: 21,2354 37671 CAF PRIO34 # CALL FOR 1 SEC UPDATE OF TRANSFORMATION
044471,000259: 21,2355 05134 TC NOVAC # MATRIX FROM GIMBAL AXES TO BODY AXES
044472,000260: 21,2356 E6,1510 EBANK= KMPAC
044473,000261: 21,2356 03447 44066 2CADR AMBGUPDT
044474,000262:
044475,000263: 21,2360 34334 CAF NINE
044476,000264:
044477,000265: 21,2361 55560 TENTHSEK TS ATTSEC
044478,000266:
Page 1007 |
044480,000268: # WHEN AUTOMATIC MANEUVERS ARE BEING PERFORMED, THE FOLLOWING ANGLE ADDITION MUST BE MADE TO PROVIDE A SMOOTH
044481,000269: # SEQUENCE OF ANGULAR COMMANDS TO THE AUTOPILOT--
044482,000270:
044483,000271: # CDUXD = CDUXD + DELCDUX (DOUBLE PRECISION)
044484,000272: # CDUYD = CDUYD + DELCDUY (DOUBLE PRECISION)
044485,000273: # CDUZD = CDUZD + DELCDUZ (DOUBLE PRECISION)
044486,000274:
044487,000275: # THE STEERING PROGRAMS-
044488,000276: # 1) ATTITUDE MANEUVER ROUTINE
044489,000277: # 2) LEM TRACKING
044490,000278:
044491,000279: # SHOULD GENERATE THE DESIRED ANGLES (CDUXD, CDUYD, CDUZD) AS WELL AS THE INCREMENTAL ANGLES (DELCDUX, DELCDUY,
044492,000280: # DELCDUZ) SO THAT THE GIMBAL ANGLE COMMANDS CAN BE INTERPOLATED BETWEEN UPDATES.
044493,000281:
044494,000282: # HOLDFLAG CODING-
044495,000283:
044496,000284: # + = GRAB PRESENT CDU ANGLES AND STORE IN THETADX, THETADY, THETADZ
044497,000285: # AND PERFORM ATTITUDE HOLD ABOUT THESE ANGLES
044498,000286: # ALSO IGNORE AUTOMATIC STEERING
044499,000287: # SET = + BY
044500,000288: # 1) INITIALIZATION PHASE OF AUTOPILOT
044501,000289: # 2) OCCURANCE OF RHC COMMANDS
044502,000290: # 3) FREE MODE
044503,000291: # 4) SWITCH OVER TO ATTITUDE HOLD FROM AUTO
044504,000292: # WHILE DOING AUTOMATIC STEERING (IN THIS CASE
044505,000293: # HOLDFLAG IS NOT ACTUALLY SET TO +, BUT THE LOGIC
044506,000294: # FUNCTIONS AS IF IT WERE.)
044507,000295: # 5) S/C CONTROL SWITCH IN SCS
044508,000296: # 6) IMU POWER OFF
044509,000297: # +0 = IN ATTITUDE HOLD ABOUT A PREVIOUSLY ESTABLISHED REFERENCE
044510,000298: # - = PERFORMING AUTOMATIC MANEUVER
044511,000299: # -0 = NOT USED AT PRESENT
044512,000300:
044513,000301: # NOTE THAT THIS FLAG MUST BE SET = - BY THE STEERING PROGRAM IF IT IS TO COMMAND THE AUTOPILOT.
044514,000302: # SINCE ASTRONAUT ACTION MAY CHANGE THE HOLDFLAG SETTING, IT SHOULD BE MONITORED BY THE STEERING PROGRAM TO
044515,000303: # DETERMINE IF THE AUTOMATIC SEQUENCE HAS BEEN INTERRUPTED AND IF SO, TAKE APPROPRIATE ACTION.
044516,000304:
044517,000305: 21,2362 41332 CS HOLDFLAG
044518,000306: 21,2363 00006 EXTEND
044519,000307: 21,2364 62411 BZMF DACNDLS # IF HOLDFLAG +0,-0,+, BYPASS AUTOMATIC
044520,000308: # COMMANDS
044521,000309: 21,2365 35016 DCDUINCR CAF TWO
044522,000310: 21,2366 55506 DELOOP TS SPNDX
044523,000311: 21,2367 60000 DOUBLE
044524,000312: 21,2370 55507 TS DPNDX
044525,000313: 21,2371 00006 EXTEND
044526,000314: 21,2372 50000 INDEX A
044527,000315: 21,2373 31647 DCA CDUXD
Page 1008 |
044529,000317: 21,2374 53511 DXCH KMPAC
044530,000318: 21,2375 00006 EXTEND
044531,000319: 21,2376 51507 INDEX DPNDX
044532,000320: 21,2377 31576 DCA DELCDUX
044533,000321: 21,2400 02054 TC DPADD
044534,000322: 21,2401 00006 EXTEND
044535,000323: 21,2402 31511 DCA KMPAC
044536,000324: 21,2403 51506 INDEX SPNDX
044537,000325: 21,2404 55572 TS THETADX
044538,000326: 21,2405 51507 INDEX DPNDX
044539,000327: 21,2406 53647 DXCH CDUXD
044540,000328: 21,2407 11506 CCS SPNDX
044541,000329: 21,2410 12366 TCF DELOOP
044542,000330:
Page 1009 |
044544,000332: # RCS-CSM AUTOPILOT ATTITUDE ERROR DISPLAY
044545,000333:
044546,000334: # THREE TYPES OF ATTITUDE ERRORS MAY BE DISPLAYED ON THE FDAI-
044547,000335:
044548,000336: # MODE 1) AUTOPILOT FOLLOWING ERRORS SELECTED BY V61E
044549,000337: # GENERATED INTERNALLY BY THE AUTOPILOT
044550,000338:
044551,000339: # MODE 2) TOTAL ATTITUDE ERRORS SELECTED BY V62E
044552,000340: # WITH RESPECT TO THE CONTENTS OF N22
044553,000341:
044554,000342: # MODE 3) TOTAL ASTRONAUT ATTITUDE ERRORS SELECTED BY V63E
044555,000343: # WITH RESPECT TO THE CONTENTS OF N17
044556,000344:
044557,000345: # MODE 1 IS PROVIDED AS A MONITOR OF THE RCS DAP AND ITS ABILITY TO TRACK AUTOMATIC STEERING COMMANDS. IN THIS
044558,000346: # MODE THE ATTITUDE ERRORS WILL BE ZEROED WHEN THE CMC MODE SWITCH IS IN FREE
044559,000347:
044560,000348: # MODE 2 IS PROVIDED TO ASSIST THE CREW IN MANUALLY MANEUVERING THE S/C TO THE ATTITUDE (GIMBAL ANGLES) SPECIFIED
044561,000349: # IN N22. THE ATTITUDE ERRORS WRT THESE ANGLES AND THE CURRENT CDU ANGLES ARE RESOLVED INTO S/C CONTROL AXES
044562,000350: # AS A FLY-TO INDICATOR.
044563,000351:
044564,000352: # MODE 3 IS PROVIDED TO ASSIST THE CREW IN MANUALLY MANEUVERING THE S/C TO THE ATTITUDE (GIMBAL ANGLES) SPECIFIED
044565,000353: # IN N17. THE ATTITUDE ERRORS WRT THESE ANGLES AND THE CURRENT CDU ANGLES ARE RESOLVED INTO S/C CONTROL AXES
044566,000354: # AS A FLY-TO INDICATOR.
044567,000355:
044568,000356: # V60 IS PROVIDED TO LOAD N17 WITH A SNAPSHOT OF THE CURRENT CDU ANGLES, THUS SYNCHRONIZING THE MODE 3 DISPLAY
044569,000357: # WITH THE CURRENT S/C ATTITUDE. THIS VERB MAY BE USED AT ANY TIME.
044570,000358:
044571,000359: # THESE DISPLAYS WILL BE AVAILIABLE IN ANY MODE (AUTO, HOLD, FREE, G+N, OR SCS) ONCE THE RCS DAP HAS BEEN
044572,000360: # INITIATED VIA V46E. MODE 1, HOWEVER, WILL BE MEANINGFUL ONLY IN G+N AUTO OR HOLD. THE CREW MAY PRESET (VIA
044573,000361: # V25N17) AN ATTITUDE REFERENCE (DESIRED GIMBAL ANGLES) INTO N17 AT ANY TIME.
044574,000362:
044575,000363: 21,2411 41501 DACNDLS CS RCSFLAGS # ALTERNATE BETWEEN FDAIDSP1 AND FDAIDSP2
044576,000364: 21,2412 75014 MASK BIT4
044577,000365: 21,2413 00006 EXTEND
044578,000366: 21,2414 13160 BZF FDAIDSP2
044579,000367:
044580,000368: 21,2415 27501 FDAIDSP1 ADS RCSFLAGS
044581,000369: 21,2416 02420 TC NEEDLER
044582,000370: 21,2417 15333 KRESUME1 TCF RESUME # END PHASE 1
044583,000371:
Page 1010 |
044585,000373: # FDAI ATTITUDE ERROR DISPLAY SUBROUTINE
044586,000374:
044587,000375: # PROGRAM DESCRIPTION: D. KEENE 5/24/67
044588,000376:
044589,000377: # THIS SUBROUTINE IS USED TO DISPLAY ATTITUDE ERRORS ON THE FDAI VIA THE DIGITAL TO ANALOG CONVERTERS (DACS)
044590,000378: # IN THE CDUS. CARE IS TAKEN TO METER OUT THE APPROPRIATE NUMBER OF PULSES TO THE IMU ERROR COUNTERS AND PREVENT
044591,000379: # OVERFLOW, TO CONTROL THE RELAY SEQUENCING, AND TO AVOID INTERFERENCE WITH THE COARSE ALIGN LOOP WHICH ALSO USES
044592,000380: # THE DACS.
044593,000381:
044594,000382: # CALLING SEQUENCE:
044595,000383:
044596,000384: # DURING THE INITIALIZATION SECTION OF THE USER'S PROGRAM, BIT3 OF RCSFLAGS SHOULD BE SET TO INITIATE THE
044597,000385: # TURN-ON SEQUENCE WITHIN THE NEEDLES PROGRAM:
044598,000386:
044599,000387: # CS RCSFLAGS IN EBANK6
044600,000388: # MASK BIT3
044601,000389: # ADS RCSFLAGS
044602,000390:
044603,000391: # THEREAFTER, THE ATTITUDE ERRORS GENERATED BY THE USER SHOULD BE TRANSFERED TO THE FOLLOWING LOCATIONS IN EBANK6:
044604,000392:
044605,000393: # AK SCALED 180 DEGREES NOTE: THESE LOCATIONS ARE SUBJECT
044606,000394: # AK1 SCALED 180 DEGREES TO CHANGE
044607,000395: # AK2 SCALED 180 DEGREES
044608,000396:
044609,000397: # FULL SCALED DEFLECTION CORRESPONDS TO 16 7/8 DEGREES OF ATTITUDE ERROR
044610,000398: # (= 384 BITS IN IMU ERROR COUNTER)
044611,000399:
044612,000400: # A CALL TO NEEDLER WILL THEN UPDATE THE DISPLAY:
044613,000401:
044614,000402: # INHINT
044615,000403: # TC IBNKCALL NOTE: EBANK SHOULD BE SET TO E6
044616,000404: # CADR NEEDLER
044617,000405: # RELINT
044618,000406:
044619,000407: # THIS PROCESS SHOULD BE REPEATED EACH TIME THE ERRORS ARE UPDATED. AT LEAST 3 PASSES THRU THE PROGRAM ARE
044620,000408: # REQUIRED BEFORE ANYTHING IS ACTUALLY DISPLAYED ON THE ERROR METERS.
044621,000409: # NOTE: EACH CALL TO NEEDLER MUST BE SEPARATED BY AT LEAST 50MS TO ASSURE PROPER RELAY SEQUENCING.
044622,000410:
044623,000411: # ERASABLE USED:
044624,000412: # AK CDUXCMD
044625,000413: # AK1 CDUYCMD
044626,000414: # AK2 CDUZCMD
044627,000415: # EDRIVEX A,L,Q
044628,000416: # EDRIVEY T5TEMP
044629,000417: # EDRIVEZ SPNDX
044630,000418:
044631,000419: # SWITCHES: RCSFLAGS BITS 3,2
044632,000420:
044633,000421: # I/O CHANNELS: CHAN12 BIT 4 (COARSE ALIGN - READ ONLY)
Page 1011 |
044635,000423: # CHAN12 BIT 6 (IMU ERROR COUNTER ENABLE)
044636,000424: # CHAN14 BIT 13,14,15 (DAC ACTIVITY)
044637,000425:
044638,000426: # SIGN CONVENTION< AK = THETAC - THETA
044639,000427: # WHERE THETAC = COMMAND ANGLE
044640,000428: # THETA = PRESENT ANGLE
044641,000429:
044642,000430: 21,2420 35014 NEEDLER CAF BIT4 # CHECK FOR COARSE ALIGN ENABLE
044643,000431: 21,2421 00006 EXTEND # IF IN COARSE ALIGN DO NOT USE IMU
044644,000432: 21,2422 02012 RAND CHAN12 # ERROR COUNTERS. DONT USE NEEDLES
044645,000433: 21,2423 00006 EXTEND
044646,000434: 21,2424 12431 BZF NEEDLER1
044647,000435: 21,2425 41501 CS RCSFLAGS # SET BIT3 FOR INITIALIZATION PASS
044648,000436: 21,2426 75015 MASK BIT3
044649,000437: 21,2427 27501 ADS RCSFLAGS
044650,000438: 21,2430 00002 TC Q
044651,000439:
044652,000440: 21,2431 31501 NEEDLER1 CA RCSFLAGS
044653,000441: 21,2432 76211 MASK SIX
044654,000442: 21,2433 00006 EXTEND
044655,000443: 21,2434 12471 BZF NEEDLES3
044656,000444: 21,2435 75015 MASK BIT3
044657,000445: 21,2436 00006 EXTEND
044658,000446: 21,2437 12462 BZF NEEDLER2 # BIT3 = 0, BIT2 = 1
044659,000447:
044660,000448: 21,2440 45012 CS BIT6 # FIRST PASS BIT3 = 1
044661,000449: 21,2441 00006 EXTEND # DISABLE IMU ERROR COUNTER TO ZERO DACS
044662,000450: 21,2442 03012 WAND CHAN12 # MUST WAIT AT LEAST 60 MS BEFORE
044663,000451: 21,2443 45021 NEEDLE11 CS ZERO # ENABLING COUNTERS.
044664,000452: 21,2444 55476 TS AK # ZERO THE INPUTS ON FIRST PASS
044665,000453: 21,2445 55477 TS AK1
044666,000454: 21,2446 55500 TS AK2
044667,000455: 21,2447 55503 TS EDRIVEX # ZERO THE DISPLAY REGISTERS
044668,000456: 21,2450 55504 TS EDRIVEY
044669,000457: 21,2451 55505 TS EDRIVEZ
044670,000458: 21,2452 54050 TS CDUXCMD # ZERO THE OUT COUNTERS
044671,000459: 21,2453 54051 TS CDUYCMD
044672,000460: 21,2454 54052 TS CDUZCMD
044673,000461: 21,2455 46211 CS SIX # RESET RCSFLAGS FOR PASS2
044674,000462: 21,2456 71501 MASK RCSFLAGS
044675,000463: 21,2457 65016 AD BIT2
044676,000464: 21,2460 55501 TS RCSFLAGS
044677,000465: 21,2461 00002 TC Q # END PASS1
044678,000466:
044679,000467: 21,2462 35012 NEEDLER2 CAF BIT6 # ENABLE IMU ERROR COUNTERS
044680,000468: 21,2463 00006 EXTEND
044681,000469: 21,2464 05012 WOR CHAN12
044682,000470: 21,2465 46211 CS SIX # RESET RCSFLAGS TO DISPLAY ATTITUDE
Page 1012 |
044684,000472: 21,2466 71501 MASK RCSFLAGS # ERRORS WAIT AT LEAST 4 MS FOR
044685,000473: 21,2467 55501 TS RCSFLAGS # RELAY CLOSURE
044686,000474: 21,2470 00002 TC Q
044687,000475:
044688,000476: 21,2471 35012 NEEDLES3 CAF BIT6 # CHECK TO SEE IF IMU ERROR COUNTER
044689,000477: 21,2472 00006 EXTEND # IS ENABLED
044690,000478: 21,2473 02012 RAND CHAN12
044691,000479: 21,2474 00006 EXTEND # IF NOT RECYCLE NEEDLES
044692,000480: 21,2475 12425 BZF NEEDLER +5
044693,000481:
044694,000482: 21,2476 35016 NEEDLES CAF TWO
044695,000483: 21,2477 55506 DACLOOP TS SPNDX
044696,000484: 21,2500 45003 CS QUARTER
044697,000485: 21,2501 00006 EXTEND
044698,000486: 21,2502 51506 INDEX SPNDX
044699,000487: 21,2503 71476 MP AK
044700,000488: 21,2504 54001 TS L
044701,000489: 21,2505 10000 CCS A
044702,000490: 21,2506 32542 CA DACLIMIT
044703,000491: 21,2507 12511 TCF +2
044704,000492: 21,2510 42542 CS DACLIMIT
044705,000493: 21,2511 60001 AD L
044706,000494: 21,2512 55502 TS T5TEMP # OVFLO CHK
044707,000495: 21,2513 12517 TCF +4
044708,000496: 21,2514 50000 INDEX A # ON OVERFLOW LIMIT OUTPUT TO +-384
044709,000497: 21,2515 32542 CAF DACLIMIT
044710,000498: 21,2516 54001 TS L
044711,000499: 21,2517 51506 INDEX SPNDX
044712,000500: 21,2520 41503 CS EDRIVEX # CURRENT VALUE OF DAC
044713,000501: 21,2521 60001 AD L
044714,000502: 21,2522 51506 INDEX SPNDX
044715,000503: 21,2523 26050 ADS CDUXCMD
044716,000504: 21,2524 51506 INDEX SPNDX
044717,000505: 21,2525 23503 LXCH EDRIVEX
044718,000506: 21,2526 11506 CCS SPNDX
044719,000507: 21,2527 12477 TCF DACLOOP
044720,000508: 21,2530 37707 CAF 13,14,15
044721,000509: 21,2531 00006 EXTEND
044722,000510: 21,2532 05014 WOR CHAN14 # SET DAC ACTIVITY BITS
044723,000511: 21,2533 00002 TC Q
044724,000512:
044725,000513: 21,2534 32540 REINIT CAF DELAY200 # ........TILT LOGIC
044726,000514: 21,2535 54030 TS TIME5 # REINITIALIZE DAP IN 200MS
044727,000515: 21,2536 55465 TS T5PHASE
044728,000516: 21,2537 15333 TCF RESUME
044729,000517: 21,2540 37754 DELAY200 DEC 16364 B-14 # 200MS
044730,000518:
044731,000519: 21,2541 77177 DEC -384 B-14
044732,000520:
Page 1013 |
044734,000522: 21,2542 37200 DACLIMIT DEC 16000 B-14
044735,000523: 21,2543 00600 DEC 384 B-14
044736,000524:
Page 1014 |
044738,000526: # INITIALIZATION PROGRAM FOR RCS-CSM AUTOPILOT
044739,000527:
044740,000528: # THE FOLLOWING QUANTITIES WILL BE ZEROED AND SHOULD APPEAR IN CONSECUTIVE LOCATIONS IN MEMORY AFTER WBODY
044741,000529:
044742,000530: # WBODY (+1) DFT TAU2
044743,000531: # WBODY1 (+1) DFT1 BIAS
044744,000532: # WBODY2 (+1) DFT2 BIAS1
044745,000533: # ADOT (+1) DRHO (+1) BIAS2
044746,000534: # ADOT1 (+1) DRHO1 (+1) ERRORX
044747,000535: # ADOT2 (+1) DRHO2 (+1) ERRORY
044748,000536: # MERRORX (+1) ATTSEC ERRORZ
044749,000537: # MERRORY (+1) TAU
044750,000538: # MERRORZ (+1) TAU1
044751,000539:
044752,000540: 21,2544 35017 FRESHDAP CAF ONE # RESET HOLDFLAG TO STOP AUTOMATIC
044753,000541: 21,2545 55332 TS HOLDFLAG # STEERING AND PREPARE TO PICK UP AN
044754,000542: # ATTITUDE HOLD REFERENCE
044755,000543:
044756,000544: 21,2546 04740 REDAP TC IBNKCALL # DECODE DAPDATR1, DAPDATR2 FOR DEADBANDS
044757,000545: 21,2547 40347 CADR S41.2 # RATES, QUADFAILS, QUAD MANAGEMENT
044758,000546:
044759,000547: 21,2550 04740 TC IBNKCALL # DECODE IXX, IAVG AND CONVERT
044760,000548: 21,2551 40500 CADR S40.14 # TO AUTOPILOT GAINS
044761,000549:
044762,000550: 21,2552 32623 CAF NO.T5VAR # NO. LOCATIONS TO BE ZEROED MINUS ONE
044763,000551: 21,2553 55506 ZEROT5 TS SPNDX # ZERO ALL NECESSARY ERASABLE REGISTERS
044764,000552: 21,2554 35021 CAF ZERO
044765,000553: 21,2555 51506 INDEX SPNDX
044766,000554: 21,2556 55525 TS WBODY
044767,000555: 21,2557 11506 CCS SPNDX
044768,000556: 21,2560 12553 TCF ZEROT5
044769,000557: 21,2561 02632 TCR ZEROJET
044770,000558:
044771,000559: 21,2562 45021 CS ZERO
044772,000560: 21,2563 55633 TS CHANTEMP # INITIALIZE MINIMUM IMPULSE CONTROL
044773,000561:
044774,000562: 21,2564 55632 TS CH31TEMP # INITIALIZE RHC POSITION MEMORY FOR
044775,000563: # MANUAL RATE MODES
044776,000564:
044777,000565: 21,2565 32624 CAF =.24
044778,000566: 21,2566 55654 TS SLOPE # INITIALIZE SWITCHING LOGIC SLOPE
044779,000567:
044780,000568: 21,2567 35015 CAF FOUR
044781,000569: 21,2570 55634 TS T5TIME # PHASE 0 RESETS FOR PHASE 2 INTERRUPT IN
044782,000570: # 60 MS. PHASE 2 RESETS FOR PHASE 1 RUPT
044783,000571: # IN (80MS - T5TIME(40MS)). THEREFORE
044784,000572: # PHASE 1 (RATEFILTER) BEGINS CYCLING 100
044785,000573: # MS FROM NOW AND EVERY 100MS THEREAFTER
044786,000574:
044787,000575: 21,2571 35024 CAF ELEVEN
044788,000576: 21,2572 55617 TS ATTKALMN # RESET TO PICK UP KALMAN FILTER GAINS
044789,000577: # TO INITIALIZE THE S/C ANGULAR RATES
Page 1015 |
044791,000579: 21,2573 30032 CA CDUX
044792,000580: 21,2574 55635 TS RHO
044793,000581: 21,2575 30033 CA CDUY
044794,000582: 21,2576 55636 TS RHO1
044795,000583: 21,2577 30034 CA CDUZ
044796,000584: 21,2600 55637 TS RHO2
044797,000585: 21,2601 35021 CAF ZERO # RESET AUTOPILOT TO BEGIN EXECUTING
044798,000586: 21,2602 55465 TS T5PHASE # PHASE2 OF PROGRAM
044799,000587:
044800,000588: 21,2603 41321 CS IMODES33 # CHECK IMU STATUS
044801,000589: 21,2604 75012 MASK BIT6 # IF BIT6 = 0 IMU IN FINE ALIGN
044802,000590: 21,2605 10000 CCS A # IF BIT6 = 1 IMU NOT READY
044803,000591: 21,2606 12612 TCF IMUAOK
044804,000592: 21,2607 55617 TS ATTKALMN # CANNOT USE IMU
044805,000593: 21,2610 32626 CAF RCSINITB # PROVIDE FREE CONTROL ONLY
044806,000594: 21,2611 12617 TCF RCSSWIT # DONT START UP RATE FILTER
044807,000595: # SIGNAL NO RATE FILTER
044808,000596:
044809,000597: 21,2612 37671 IMUAOK CAF PRIO34 # START MATRIX INITIALIZATION
044810,000598: 21,2613 05134 TC NOVAC # BYPASS IF IMU NOT IN FINE ALIGN
044811,000599: 21,2614 E6,1510 EBANK= KMPAC
044812,000600: 21,2614 03447 44066 2CADR AMBGUPDT
044813,000601:
044814,000602: 21,2616 32625 CAF RCSINIT # CLEAR BIT14 -ASSUME WE HAVE A GOOD IMU
044815,000603: 21,2617 55501 RCSSWIT TS RCSFLAGS # CLEAR BIT1 -INITIALIZE T6 PROGRAM
044816,000604: # SET BIT3 -INITIALIZE NEEDLES
044817,000605: # CLEAR BIT4 -RESET FOR FDAIDSP1
044818,000606: 21,2620 32627 CAF T5WAIT60 # NEXT T5RUPT 60 MS FROM NOW TO ALLOW IMU
044819,000607: # ERROR COUNTER TO ZERO.
044820,000608: # (MINIMUM DELAY = 15 MS)
044821,000609: 21,2621 54030 TS TIME5 # SINCE ATTKALMN IS +11, PROGRAM WILL THEN
044822,000610: 21,2622 05333 TC RESUME # PICK UP THE KALMAN FILTER GAINS. RATE
044823,000611: # FILTER WILL BEGIN OPERATING ZOOMS FROM
044824,000612: # NOW
044825,000613:
044826,000614: # CONSTANTS USED IN INITIALIZATION PROGRAM
044827,000615:
044828,000616: 21,2623 00044 NO.T5VAR DEC 36 B-14
044829,000617: 21,2624 07534 =.24 DEC .24 # = SLOPE OF 0.6/SEC
044830,000618: 21,2625 00004 RCSINIT OCT 00004
044831,000619: 21,2626 20004 RCSINITB OCT 20004
044832,000620: 21,2627 37772 T5WAIT60 DEC 16378 B-14 # = 6 CS
044833,000621: 21,2630 E6,1510 EBANK= KMPAC
044834,000622: 21,2630 03617 36066 T6ADDR 2CADR T6START
044835,000623:
044836,000624: 21,2632 35024 ZEROJET CAF ELEVEN # ZERO BLAST2, BLAST1, BLAST, YWORD2,
044837,000625: 21,2633 55506 TS SPNDX # YWORD1, PWORD2, PWORD1, RWORD2,
044838,000626: 21,2634 35021 CAF ZERO # AND RWORD1.
044839,000627:
Page 1016 |
044841,000629: 21,2635 51506 INDEX SPNDX
044842,000630: 21,2636 55451 TS RWORD1
044843,000631: 21,2637 11506 CCS SPNDX
044844,000632: 21,2640 12633 TCF ZEROJET +1
044845,000633:
044846,000634: 21,2641 35015 CAF FOUR
044847,000635: 21,2642 55462 TS BLAST1 +1
044848,000636: 21,2643 35024 CAF ELEVEN
044849,000637: 21,2644 55464 TS BLAST2 +1
044850,000638:
044851,000639: 21,2645 45017 CS BIT1
044852,000640: 21,2646 71501 MASK RCSFLAGS
044853,000641: 21,2647 55501 TS RCSFLAGS # RESET BIT1 OF RCSFLAGS TO 0
044854,000642:
044855,000643: 21,2650 00006 EXTEND
044856,000644: 21,2651 32631 DCA T6ADDR
044857,000645: 21,2652 53311 DXCH T6LOC
044858,000646: 21,2653 33050 CAF =+14MS # ENABLE T6RUPT TO SHUT OFF JETS IN 14 MS.
044859,000647: 21,2654 54031 TS TIME6
044860,000648: 21,2655 35001 CAF BIT15
044861,000649: 21,2656 00006 EXTEND
044862,000650: 21,2657 05013 WOR CHAN13
044863,000651:
044864,000652: 21,2660 00002 TC Q
044865,000653:
044866,000654: 21,2661 11617 T5PHASE2 CCS ATTKALMN # IF (+) INITIALIZE RATE ESTIMATE
044867,000655: 21,2662 13146 TCF KALUPDT
044868,000656:
044869,000657: 21,2663 12665 TCF +2 # ONLY IF ATTKALMN POSITIVE
044870,000658: 21,2664 12665 TCF +1
044871,000659: 21,2665 32156 CA DELTATT2 # RESET FOR PHASE3 IN 20 MS
044872,000660: 21,2666 56030 XCH TIME5 # (JET SELECTION LOGIC)
044873,000661: 21,2667 27634 ADS T5TIME # TO COMPENSATE FOR DELAYS IN T5RUPT
044874,000662:
044875,000663: 21,2670 31501 CA RCSFLAGS # IF A HIGH RATE AUTO MANEUVER IS IN
044876,000664: 21,2671 75001 MASK BIT15 # PROGRESS (BIT 15 OF RCSFLAGS SET), SET
044877,000665: 21,2672 00006 EXTEND # ATTKALMN TO -1
044878,000666: 21,2673 12675 BZF NOHIAUTO # OTHERWISE SET ATTKALMN TO 0.
044879,000667: 21,2674 45017 CS ONE
044880,000668: 21,2675 55617 NOHIAUTO TS ATTKALMN
044881,000669:
Page 1017 |
044883,000671: # MANUAL ROTATION COMMANDS
044884,000672:
044885,000673: 21,2676 43032 CS OCT01760 # RESET FORCED FIRING BITS (BITS 10 TO 5
044886,000674: 21,2677 71501 MASK RCSFLAGS # OF RCSFLAGS) TO ZERO
044887,000675: 21,2700 55501 TS RCSFLAGS
044888,000676:
044889,000677: 21,2701 00006 EXTEND
044890,000678: 21,2702 00031 READ CHAN31
044891,000679: 21,2703 54001 TS L
044892,000680: 21,2704 31632 CA CH31TEMP
044893,000681: 21,2705 00006 EXTEND
044894,000682: 21,2706 06001 RXOR LCHAN
044895,000683: 21,2707 73036 MASK MANROT # = OCT00077
044896,000684: 21,2710 00006 EXTEND
044897,000685: 21,2711 62724 BZMF NOCHANGE
044898,000686:
044899,000687: 21,2712 22000 LXCH A
044900,000688: 21,2713 55632 TS CH31TEMP # SAVE CONTENTS OF CHANNEL 31 IN CH31TEMP
044901,000689:
044902,000690: 21,2714 30001 CA L
044903,000691: 21,2715 00006 EXTEND
044904,000692: 21,2716 75013 MP BIT5 # PUT BITS 6-1 OF A IN BITS 10-5 OF L
044905,000693: 21,2717 30001 CA L
044906,000694: 21,2720 27501 ADS RCSFLAGS # SET FORCED FIRING BITS FOR AXES WITH
044907,000695: # WITH CHANGES IN COMMAND. BITS 10,9 FOR
044908,000696: # ROLL, BITS 8,7 FOR YAW, BITS 6,5 FOR
044909,000697: # PITCH
044910,000698:
044911,000699: 21,2721 41501 CS RCSFLAGS # SET RATE DAMPING FLAGS (BITS 13,12, AND
044912,000700: 21,2722 73037 MASK OCT16000 # 11 OF RCSFLAGS)
044913,000701: 21,2723 27501 ADS RCSFLAGS
044914,000702:
044915,000703: 21,2724 41632 NOCHANGE CS CH31TEMP
044916,000704: 21,2725 73036 MASK MANROT
044917,000705: 21,2726 00006 EXTEND
044918,000706: 21,2727 63250 BZMF AHFNOROT # IF NO MANUAL COMMANDS, GO TO AHFNOROT
044919,000707:
044920,000708: 21,2730 55332 TS HOLDFLAG # SET HOLDFLAG +
044921,000709:
044922,000710: 21,2731 03130 TC STICKCHK # WHEN THE RHC IS OUT OF DETENT, PMANNDX,
044923,000711: # YMANNDX, AND RMANNDX ARE ALL SET, BY
044924,000712: # MEANS OF STICKCHK, TO 0, 1, OR 2 FOR NO,
044925,000713: # +, OR - ROTATION RESPECTIVELY AS
044926,000714: # COMMANDED BY THE RHC.
044927,000715:
044928,000716: # HOWEVER, IT IS WELL TO NOTE THAT AFTER
044929,000717: # THE RHC IS RETURNED TO DETENT, THE
044930,000718: # PROGRAM BRANCHES TO AHFNOROT AND AVOIDS
044931,000719: # STICKCHK SO PMANNDX, YMANNDX, AND
044932,000720: # RMANNDX ARE NOT RESET TO ZERO BUT RATHER
044933,000721: # LEFT SET TO THEIR LAST OUT OF DETENT
Page 1018 |
044935,000723: # VALUES.
044936,000724:
044937,000725: 21,2732 40075 CS FLAGWRD1 # SET STIKFLAG TO INFORM STEERING
044938,000726: 21,2733 75002 MASK BIT14 # PROGRAMS (P20) THAT ASTRONAUT HAS
044939,000727: 21,2734 26075 ADS FLAGWRD1 # ASSUMED ROTATIONAL CONTROL OF SPACECRAFT
044940,000728:
044941,000729: 21,2735 35002 CAF BIT14
044942,000730: 21,2736 00006 EXTEND
044943,000731: 21,2737 02031 RAND CHAN31
044944,000732: 21,2740 00006 EXTEND
044945,000733: 21,2741 63051 BZMF FREEFUNC
044946,000734:
044947,000735: 21,2742 31501 CA RCSFLAGS # EXAMINE RCSFLAGS TO SEE IF RATE FILTER
044948,000736: 21,2743 75002 MASK BIT14 # HAS BEEN INITIALIZED
044949,000737: 21,2744 10000 CCS A # IF SO, PROCEED WITH MANUAL RATE COMMANDS
044950,000738: 21,2745 12534 TCF REINIT # .....TILT, RECYCLE TO INITIALIZE FILTER
044951,000739:
044952,000740: 21,2746 45022 CS FIVE # IF MANUAL MANEUVER IS AT HIGH RATE, SET
044953,000741: 21,2747 61130 AD RATEINDX # ATTKALMN TO -1.
044954,000742: 21,2750 00006 EXTEND # OTHERWISE, LEAVE ATTKALMN ALONE.
044955,000743: 21,2751 62754 BZMF +3
044956,000744: 21,2752 45017 CS ONE
044957,000745: 21,2753 55617 TS ATTKALMN
044958,000746:
044959,000747: 21,2754 35016 CAF TWO # AUTO-HOLD MANUAL ROTATION
044960,000748: 21,2755 55506 SETWBODY TS SPNDX
044961,000749: 21,2756 60000 DOUBLE
044962,000750: 21,2757 55507 TS DPNDX
044963,000751: 21,2760 51506 INDEX SPNDX # RMANNDX = 0 NO ROTATION
044964,000752: 21,2761 31656 CA RMANNDX # = 1 + ROTATION
044965,000753: 21,2762 00006 EXTEND # = 2 - ROTATION
044966,000754: 21,2763 13005 BZF NORATE # IF NO ROTATION COMMAND ON THIS AXIS,
044967,000755: # GO TO NORATE.
044968,000756:
044969,000757: 21,2764 61130 AD RATEINDX # RATEINDX = 0 0.05 DEG/SEC
044970,000758: 21,2765 54002 TS Q # = 2 0.2 DEG/SEC
044971,000759: 21,2766 50002 INDEX Q # = 4 0.5 DEG/SEC
Reconstruction: Rates 6 and 7 have reverted to their Colossus 249 (Apollo 9) values of 4 deg/sec, as opposed to their Comanche 51 values of 2 deg/sec. See Programmed Guidance Equations for Colossus 2, p. DPRC-28. |
044976,000764: 21,2767 33037 CA MANTABLE -1 # = 6 4.0 DEG/SEC
044977,000765: 21,2770 00006 EXTEND
044978,000766: 21,2771 75007 MP BIT9 # MULTIPLY MANTABLE BY 2 TO THE -6
044979,000767: 21,2772 51507 INDEX DPNDX # TO GET COMMANDED RATE.
044980,000768: 21,2773 53526 DXCH WBODY # SET WBODY TO COMMANDED RATE.
044981,000769:
044982,000770: 21,2774 31501 CA RCSFLAGS
044983,000771: 21,2775 73037 MASK OCT16000 # IS RATE DAMPING COMPLETED (BITS 13,12 AND
044984,000772: 21,2776 00006 EXTEND # 11 OF RCSFLAGS ALL ZERO.) IF SO, GO TO
044985,000773: 21,2777 13015 BZF MERUPDAT # MERUPDAT TO UPDATE CUMULATIVE ATTITUDE
044986,000774: # ERROR.
044987,000775:
Page 1019 |
044989,000777: 21,3000 35021 ZEROER CA ZERO # ZEROER ZEROS MERRORS
044990,000778: 21,3001 22007 ZL
044991,000779: 21,3002 51507 INDEX DPNDX
044992,000780: 21,3003 53542 DXCH MERRORX
044993,000781: 21,3004 13023 TCF SPNDXCHK
044994,000782:
044995,000783: 21,3005 22007 NORATE ZL
044996,000784: 21,3006 51507 INDEX DPNDX
044997,000785: 21,3007 53526 DXCH WBODY # ZERO WBODY FOR THIS AXIS
044998,000786: 21,3010 31501 CA RCSFLAGS
044999,000787: 21,3011 73037 MASK OCT16000
045000,000788: 21,3012 00006 EXTEND # IS RATE DAMPING COMPLETED
045001,000789: 21,3013 13023 BZF SPNDXCHK # YES, KEEP CURRENT MERRORX GO TO SPNDXCHK
045002,000790: 21,3014 13000 TCF ZEROER # NO, GO TO ZEROER
045003,000791:
045004,000792: 21,3015 50002 MERUPDAT INDEX Q # MERRORX=MERRORX+MEASURED CHANGE IN ANGLE
045005,000793: 21,3016 43037 CS MANTABLE -1 # -COMMANDED CHANGE IN ANGLE
045006,000794: 21,3017 00006 EXTEND # THE ADDITION OF MEASURED CHANGE IN ANGLE
045007,000795: 21,3020 75011 MP BIT7 # HAS ALREADY BEEN DONE IN THE RATE FILTER
045008,000796: 21,3021 51507 INDEX DPNDX # COMMANDED CHANGE IN ANGLE = WBODY TIMES
045009,000797: 21,3022 21542 DAS MERRORX # .1SEC = MANTABLE ENTRY TIMES 2 TO THE -8
045010,000798:
045011,000799: 21,3023 51507 SPNDXCHK INDEX DPNDX
045012,000800: 21,3024 31541 CA MERRORX
045013,000801: 21,3025 51506 INDEX SPNDX
045014,000802: 21,3026 55567 TS ERRORX # ERRORX = HIGH ORDER WORD OF MERRORX
045015,000803: 21,3027 11506 CCS SPNDX
045016,000804: 21,3030 12755 TCF SETWBODY
045017,000805: 21,3031 13441 TCF JETS
045018,000806:
045019,000807: 21,3032 01760 OCT01760 OCT 01760 # FORCED FIRING BITS MASK
045020,000808:
045021,000809: 21,3033 01400 OCT01400 OCT 01400 # ROLL FORCED FIRING MASK ORDER OF
045022,000810: 21,3034 00060 OCT00060 OCT 00060 # PITCH FORCED FIRING MASK DEFINITION
045023,000811: 21,3035 00300 OCT00300 OCT 00300 # YAW FORCED FIRING MASK MUST BE
045024,000812: # PRESERVED
045025,000813: # FOR INDEXING
045026,000814: 21,3036 00077 MANROT OCT 77
045027,000815: 21,3037 16000 OCT16000 OCT 16000 # RATE DAMPING FLAGS MASK
045028,000816: 21,3040 00165 MANTABLE DEC .0071111
045029,000817: 21,3041 77612 DEC -.0071111
045030,000818: 21,3042 00722 DEC .028444
045031,000819: 21,3043 77055 DEC -0.028444
045032,000820: 21,3044 02215 DEC .071111
045033,000821: 21,3045 75562 DEC -.071111
Reconstruction: Rates 6 and 7 have reverted to their Colossus 249 (Apollo 9) values of 4 deg/sec, as opposed to their Comanche 51 values of 2 deg/sec. See Programmed Guidance Equations for Colossus 2, p. DPRC-28. |
045038,000826: 21,3046 22151 DEC .568889
045039,000827: 21,3047 55626 DEC -.568889
045040,000828: 21,3050 00027 =+14MS DEC 23 B-14
045041,000829: 21,3051 51656 FREEFUNC INDEX RMANNDX # ACCELERATION
Page 1020 |
045043,000831: 21,3052 33063 CA FREETAU # COMMANDS
045044,000832: 21,3053 55561 TS TAU
045045,000833: 21,3054 51657 INDEX PMANNDX
045046,000834: 21,3055 33063 CA FREETAU # FREETAU 0 SEC
045047,000835: 21,3056 55562 TS TAU1 # +1 +0.10 SEC
045048,000836: 21,3057 51660 INDEX YMANNDX # +2 -0.10 SEC
045049,000837: 21,3060 33063 CA FREETAU # (+3) 0 SEC
045050,000838: 21,3061 55563 TS TAU2
045051,000839: 21,3062 13067 TCF T6PROGM
045052,000840:
045053,000841: 21,3063 00000 FREETAU DEC 0 B-14
045054,000842: 21,3064 00740 DEC 480 B-14
045055,000843: 21,3065 77037 DEC -480 B-14
045056,000844: 21,3066 00000 DEC 0 B-14
045057,000845:
045058,000846: 21,3067 35021 T6PROGM CAF ZERO # FOR MANUAL ROTATIONS
045059,000847: 21,3070 55567 TS ERRORX
045060,000848: 21,3071 55570 TS ERRORY
045061,000849: 21,3072 55571 TS ERRORZ
045062,000850: 21,3073 13757 TCF T6PROG
045063,000851:
Page 1021 |
045065,000853: 21,3074 06604 DEC .2112 # FILTER GAIN FOR TRANSLATION, LEM ON
045066,000854: 21,3075 32703 DEC .8400 # FILTER GAIN FOR TRANSLATION 2(ZETA)WN DT
Reconstruction: Rates 6 and 7 have reverted to their Colossus 249 (Apollo 9) values of 4 deg/sec, as opposed to their Comanche 51 values of 2 deg/sec, and the associated filter gains needed to revert as well. See the Programmed Guidance Equations for Colossus 2, p. DPRC-27. Note that these gain values are depicted without change bars, so perhaps they were changed between Comanche 44 and 45/2 even though the rates were changed between 45/2 and 55. |
045074,000862: 21,3076 06604 DEC .2112 # FILTER GAIN FOR 4 DEGREE/SEC MANEUVERS
045075,000863: 21,3077 02031 GAIN1 DEC .0640 # KALMAN FILTER GAINS FOR INITIALIZATION
045076,000864: 21,3100 12132 DEC .3180 # OF ATTITUDE RATES
045077,000865: 21,3101 13030 DEC .3452
045078,000866: 21,3102 14047 DEC .3774
045079,000867: 21,3103 15241 DEC .4161
045080,000868: 21,3104 16650 DEC .4634
045081,000869: 21,3105 20555 DEC .5223
045082,000870: 21,3106 23065 DEC .5970
045083,000871: 21,3107 26137 DEC .6933
045084,000872: 21,3110 32053 DEC .8151
045085,000873: 21,3111 35712 DEC .9342
045086,000874:
045087,000875: 21,3112 00435 DEC .0174 # FILTER GAIN FOR TRANSLATION, LEM ON
045088,000876: 21,3113 13412 DEC .3600 # FILTER GAIN FOR TRANSLATION (WN)(WN)DT
Reconstruction: Rates 6 and 7 have reverted to their Colossus 249 (Apollo 9) values of 4 deg/sec, as opposed to their Comanche 51 values of 2 deg/sec, and the associated filter gains needed to revert as well. See the Programmed Guidance Equations for Colossus 2, p. DPRC-27. Note that these gain values are depicted without change bars, so perhaps they were changed between Comanche 44 and 45/2 even though the rates were changed between 45/2 and 55. |
045096,000884: 21,3114 00435 DEC .0174 # FILTER GAIN FOR 4 DEGREE/SEC MANEUVERS
045097,000885: 21,3115 00032 GAIN2 DEC .0016 # SCALED 10
045098,000886: 21,3116 01350 DEC .0454
045099,000887: 21,3117 01575 DEC .0545
045100,000888: 21,3120 02103 DEC .0666
045101,000889: 21,3121 02523 DEC .0832
045102,000890: 21,3122 03327 DEC .1069
045103,000891: 21,3123 04432 DEC .1422
045104,000892: 21,3124 06264 DEC .1985
045105,000893: 21,3125 11351 DEC .2955
045106,000894: 21,3126 17324 DEC .4817
045107,000895: 21,3127 33622 DEC .8683
045108,000896: 21,3130 55502 STICKCHK TS T5TEMP
045109,000897: 21,3131 76214 MASK THREE # INDECES FOR MANUAL ROTATION
045110,000898: 21,3132 55657 TS PMANNDX
045111,000899: 21,3133 31502 CA T5TEMP
045112,000900: 21,3134 00006 EXTEND # MAN RATE 0 0 RATE (DP)
045113,000901: 21,3135 75003 MP QUARTER # +1 + RATE (DP)
045114,000902: 21,3136 55502 TS T5TEMP # +2 - RATE (DP)
045115,000903: 21,3137 76214 MASK THREE # (+3) 0 RATE (DP)
045116,000904: 21,3140 55660 TS YMANNDX
045117,000905: 21,3141 31502 CA T5TEMP
045118,000906: 21,3142 00006 EXTEND
045119,000907: 21,3143 75003 MP QUARTER
045120,000908: 21,3144 55656 TS RMANNDX
045121,000909: 21,3145 00002 TC Q
045122,000910: 21,3146 55617 KALUPDT TS ATTKALMN # INITIALIZATION OF ATTITUDE RATES USING
045123,000911: # KALMAN FILTER TAKES 1.1 SEC
045124,000912:
045125,000913: 21,3147 32155 CA DELTATT # =1SEC - 80MS
045126,000914: 21,3150 61634 AD T5TIME # + DELAYS
Page 1022 |
045128,000916: 21,3151 54030 TS TIME5
045129,000917: 21,3152 13155 TCF +3
045130,000918: 21,3153 32156 CAF DELTATT2 # SAFETY PLAY TO ASSURE
045131,000919: 21,3154 54030 TS TIME5 # A T5RUPT
045132,000920:
045133,000921: 21,3155 45021 KRESUME2 CS ZERO # RESET FOR PHASE1
045134,000922: 21,3156 55465 TS T5PHASE # RESUME INTERRUPTED PROGRAM
045135,000923: 21,3157 15333 TCF RESUME
045136,000924:
045137,000925: 21,3160 45014 FDAIDSP2 CS BIT4 # RESET FOR FDAIDSP1
045138,000926: 21,3161 71501 MASK RCSFLAGS
045139,000927: 21,3162 55501 TS RCSFLAGS
045140,000928:
045141,000929: 21,3163 40074 CS FLAGWRD0 # ON - DISPLAY ONE OF THE TOTAL ATTITUDE
045142,000930: 21,3164 75007 MASK BIT9 # ERRORS
045143,000931: 21,3165 00006 EXTEND
045144,000932: 21,3166 13175 BZF FDAITOTL
045145,000933: 21,3167 00006 EXTEND
045146,000934: 21,3170 41570 DCS ERRORX # OFF - DISPLAY AUTOPILOT FOLLOWING ERROR
045147,000935: 21,3171 53477 DXCH AK
045148,000936: 21,3172 41571 CS ERRORZ
045149,000937: 21,3173 55500 TS AK2
045150,000938: 21,3174 15333 TCF RESUME # END PHASE 1
045151,000939:
045152,000940: 21,3175 30105 FDAITOTL CA FLAGWRD9
045153,000941: 21,3176 75012 MASK BIT6
045154,000942: 21,3177 00006 EXTEND
045155,000943: 21,3200 13243 BZF WRTN17 # IS N22ORN17 (BIT6 OF FLAGWRD9) = 0
045156,000944: # IF SO, GO TO WRTN17
045157,000945: 21,3201 00006 WRTN22 EXTEND # OTHERWISE, CONTINUE ON TO WRTN22 AND
045158,000946: 21,3202 31157 DCA CTHETA # GET SET TO COMPUTE TOTAL ATTITUDE
045159,000947: 21,3203 53514 DXCH WTEMP # ERROR WRT N22 BY PICKING UP THE THREE
045160,000948: 21,3204 31155 CA CPHI # COMPONENTS OF N22
045161,000949:
045162,000950: 21,3205 00006 GETAKS EXTEND # COMPUTE TOTAL ATTITUDE ERROR FOR
045163,000951: 21,3206 20032 MSU CDUX # DISPLAY ON FDAI ERROR NEEDLES
045164,000952: 21,3207 55476 TS AK
045165,000953: 21,3210 31513 CA WTEMP
045166,000954: 21,3211 00006 EXTEND
045167,000955: 21,3212 20033 MSU CDUY
045168,000956: 21,3213 55502 TS T5TEMP
045169,000957: 21,3214 00006 EXTEND
045170,000958: 21,3215 71640 MP AMGB1
045171,000959: 21,3216 27476 ADS AK
045172,000960: 21,3217 31502 CA T5TEMP
045173,000961: 21,3220 00006 EXTEND
045174,000962: 21,3221 71641 MP AMGB4
Page 1023 |
045176,000964: 21,3222 55477 TS AK1
045177,000965: 21,3223 31502 CA T5TEMP
045178,000966: 21,3224 00006 EXTEND
045179,000967: 21,3225 71643 MP AMGB7
045180,000968: 21,3226 55500 TS AK2
045181,000969: 21,3227 31514 CA WTEMP +1
045182,000970: 21,3230 00006 EXTEND
045183,000971: 21,3231 20034 MSU CDUZ
045184,000972: 21,3232 55502 TS T5TEMP
045185,000973: 21,3233 00006 EXTEND
045186,000974: 21,3234 71642 MP AMGB5
045187,000975: 21,3235 27477 ADS AK1
045188,000976: 21,3236 31502 CA T5TEMP
045189,000977: 21,3237 00006 EXTEND
045190,000978: 21,3240 71644 MP AMGB8
045191,000979: 21,3241 27500 ADS AK2
045192,000980: 21,3242 15333 TCF RESUME # END PHASE1 OF RCS DAP
045193,000981:
045194,000982: 21,3243 00006 WRTN17 EXTEND # GET SET TO COMPUTE TOTAL ASTRONAUT
045195,000983: 21,3244 31335 DCA CPHIX +1 # ATTITUDE ERROR WRT N17 BY PICKING UP
045196,000984: 21,3245 53514 DXCH WTEMP # THE THREE COMPONENTS OF N17
045197,000985: 21,3246 31333 CA CPHIX
045198,000986: 21,3247 13205 TCF GETAKS
045199,000987:
Page 1024 This page is empty. |
045202,000990:
045203,000991:
End of include-file RCS-CSM_DIGITAL_AUTOPILOT.agc. Parent file is MAIN.agc