Source Code
These source-code files are part of a reconstructed copy of Artemis 071, the
first release of the Apollo 15 through 17 Command Module (CM) Apollo Guidance
Computer (AGC) software.
The reconstruction began with source code of Artemis 072 previously transcribed from a digitized copy of that program. The code was then updated by undoing changes between the two versions. The reconstruction was verified by matching memory-bank checksums to those listed in drawing 2021154-. Note that page numbers in the reconstructed code match those on the Artemis 072 printout, although the changed code would likely have changed page numbers for a real Artemis 071 listing. Comments from 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. |
043930,000002: ## Copyright: Public domain.
043931,000003: ## Filename: RCS-CSM_DIGITAL_AUTOPILOT.agc
043932,000004: ## Purpose: A section of Artemis revision 071.
043933,000005: ## It is part of the reconstructed source code for the first
043934,000006: ## release of the flight software for the Command Module's
043935,000007: ## (CM) Apollo Guidance Computer (AGC) for Apollo 15 through
043936,000008: ## 17. The code has been recreated from a copy of Artemis 072.
043937,000009: ## It has been adapted such that the resulting bugger words
043938,000010: ## exactly match those specified for Artemis 071 in NASA
043939,000011: ## drawing 2021154-, which gives relatively high confidence
043940,000012: ## that the reconstruction is correct.
043941,000013: ## Reference: 1000
043942,000014: ## Assembler: yaYUL
043943,000015: ## Contact: Ron Burkey <info@sandroid.org>.
043944,000016: ## Website: www.ibiblio.org/apollo/index.html
043945,000017: ## Mod history: 2019-08-14 MAS Created from Artemis 072.
043946,000018:
Page 1000 |
043948,000020:
043949,000021: # T5 INTERRUPT PROGRAM FOR THE RCS-CSM AUTOPILOT
043950,000022: # START OF T5 INTERRUPT PROGRAM
043951,000023:
043952,000024: 21,2000 SETLOC DAPS3
043953,000025: 21,2000 BANK
043954,000026:
043955,000027: 21,2123 COUNT* $$/DAPRC
043956,000028: 21,2123 E6,1510 EBANK= KMPAC
043957,000029: 21,2123 22016 REDORCS LXCH BANKRUPT # RESTART OF AUTOPILOT COMES HERE
043958,000030: 21,2124 31464 CA T5PHASE # ON A T5 RUPT.
043959,000031: 21,2125 00006 EXTEND
043960,000032: 21,2126 62130 BZMF +2 # IF T5PHASE +0, -0, OR -, RESET TO -
043961,000033: 21,2127 12132 TCF +3 # IF T5PHASE +, LEAVE IT +. DO A FRESHDAP
043962,000034: 21,2130 44770 CS ONE
043963,000035: 21,2131 55464 TS T5PHASE
043964,000036: 21,2132 00006 EXTEND
043965,000037: 21,2133 32137 DCA RCSLOC
043966,000038: 21,2134 52113 DXCH T5LOC # HOOK UP T5RUPT TO AUTOPILOT
043967,000039: 21,2135 12141 TCF RCSATT +1
043968,000040: 21,2136 E6,1510 EBANK= KMPAC
043969,000041: 21,2136 02140 42066 RCSLOC 2CADR RCSATT
043970,000042:
043971,000043:
043972,000044: 21,2140 22016 RCSATT LXCH BANKRUPT # SAVE BB
043973,000045: 21,2141 00006 +1 EXTEND # SAVE Q
043974,000046: 21,2142 22012 QXCH QRUPT
043975,000047: 21,2143 34752 CAF BIT15 # BIT15 CHAN31 = 0 IF IMU POWER IS ON AND
043976,000048: 21,2144 05654 TC C31BTCHK # S/C CONT SW IS IN CMC (I.E. IF G/C DAP
043977,000049: 21,2145 12170 TCF SETT5 # IS FULLY ENABLED). IF SO8
043978,000050: # GO TO SETT5
043979,000051:
043980,000052: 21,2146 41501 CS RCSFLAGS # IF G/C AUTOPILOT IS NOT FULLY ENABLED,
043981,000053: 21,2147 74753 MASK BIT14
043982,000054: 21,2150 27501 ADS RCSFLAGS # SET NORATE FLAG,
043983,000055: 21,2151 34750 CAF POSMAX
043984,000056: 21,2152 55340 TS HOLDFLAG # SET HOLDFLAG +,
043985,000057: 21,2153 34772 CAF ZERO # ZERO ERRORX, ERRORY, AND ERRORZ,
043986,000058: 21,2154 55567 TS ERRORX
043987,000059: 21,2155 55570 TS ERRORY
043988,000060: 21,2156 55571 TS ERRORZ
043989,000061: 21,2157 34753 CAF BIT14
043990,000062: 21,2160 05654 TC C31BTCHK # AND CHECK FREE FUNCTION (BIT14 CHAN31)
043991,000063: 21,2161 12170 TCF SETT5
043992,000064: 21,2162 55464 TS T5PHASE # IF NOT IN FREE MODE,
043993,000065: 21,2163 37661 CAF OCT37766 # SCHEDULE REINITIALIZATION (FRESHDAP)
043994,000066: 21,2164 54030 TS TIME5 # IN 100 MS VIA T5RUPT
043995,000067:
043996,000068: 21,2165 02642 TCR ZEROJET # ZERO JET CHANNELS IN 14 MS VIA ZEROJET
Page 1001 |
043998,000070: 21,2166 12355 TCF KMATRIX
043999,000071: 21,2167 37770 DELTATT OCT 37770 # 80MS (TIME5)
044000,000072: 21,2170 7663 DELTATT2 = OCT37776 # 20 MS (TIME5)
044001,000073:
044002,000074: # CHECK PHASE OF T5 PROGRAM
044003,000075:
044004,000076: # BECAUSE OF THE LENGTH OF THE T5 PROGRAM, IT HAS BEEN DIVIDED INTO
044005,000077: # THREE PARTS, T5PHASE1, T5PHASE2, AND THE JET SELECTION LOGIC,
044006,000078: # TO ALLOW FOR THE EXECUTION OF OTHER
044007,000079: # INTERRUPTS. T5PHASE IS ALSO USED IN THE INITIALIZATION OF THE AUTOPILOT
044008,000080: # VARIABLES AT TURN ON.
044009,000081: # THE CODING OF T5PHASE IS...
044010,000082:
044011,000083: # + = INITIALIZE T5 RCS-CSM AUTOPILOT
044012,000084: # T5PHASE = +0 = PHASE2 OF THE T5 PROGRAM
044013,000085: # - = RESTART DAP
044014,000086: # -0 = PHASE1 OF THE T5 PROGRAM
044015,000087:
044016,000088: 21,2170 11464 SETT5 CCS T5PHASE
044017,000089: 21,2171 12551 TCF FRESHDAP # TURN ON AUTOPILOT
044018,000090: 21,2172 12674 TCF T5PHASE2 # BRANCH TO PHASE2 OF PROGRAM
044019,000091: 21,2173 12553 TCF REDAP # RESTART AUTOPILOT
044020,000092:
044021,000093: 21,2174 55464 TS T5PHASE # PHASE 1 RESET FOR PHASE 2
044022,000094: 21,2175 30030 CA TIME5
044023,000095: 21,2176 55634 TS T5TIME # USED IN COMPENSATING FOR DELAYS IN T5
044024,000096: 21,2177 37663 CAF DELTATT2 # RESET FOR T5RUPT IN 20MS FOR PHASE2
044025,000097: 21,2200 54030 TS TIME5 # OF PROGRAM
044026,000098:
Page 1002 |
044028,000100:
044029,000101: # IMU STATUS CHECK
044030,000102:
044031,000103: 21,2201 41334 CS IMODES33 # CHECK IMU STATUS
044032,000104: 21,2202 74763 MASK NOIMUDAP # BIT6 = 0 IMU OK
044033,000105: 21,2203 10000 CCS A # BIT6 = 1 NO IMU
044034,000106: 21,2204 12215 TCF RATEFILT
044035,000107: 21,2205 41501 FREECHK CS RCSFLAGS # BIT14 INDICATES THAT RATES HAVE NOT BEEN
044036,000108: 21,2206 74753 MASK BIT14 # INITIALIZED
044037,000109: 21,2207 27501 ADS RCSFLAGS
044038,000110: 21,2210 34753 CAF BIT14 # NO ATTITUDE REFERENCE
044039,000111: 21,2211 55340 TS HOLDFLAG # STOP ANY AUTOMATIC STEERING AND PREPARE
044040,000112: # TO PICK UP CDU ANGLES UPON RESUMPTION OF
044041,000113: # ATTITUDE HOLD
044042,000114: 21,2212 05654 TC C31BTCHK # CHECK FOR FREE MODE
044043,000115: 21,2213 12424 TCF KRESUME1 # IN FREE, PROVIDE FREE CONTROL ONLY
044044,000116: 21,2214 12541 TCF REINIT # .....TILT...............................
044045,000117: 21,2215 5001 BITS4,5 = BITS4&5
044046,000118:
044047,000119: 21,2215 31501 RATEFILT CA RCSFLAGS # SEE IF RATEFILTER HAS BEEN INITIALIZED
044048,000120: 21,2216 74753 MASK BIT14
044049,000121: 21,2217 00006 EXTEND # IF SO, PROCEED WITH RATE DERIVATION
044050,000122: 21,2220 12222 BZF +2
044051,000123: 21,2221 12355 TCF KMATRIX # IF NOT, SKIP RATE DERIVATION
044052,000124:
044053,000125: # RATE FILTER TIMING = 7.72 MS
044054,000126:
044055,000127: # RATE FILTER EQUATIONS
044056,000128: # DRHO = DELRHO - (.1)ADOT + (1 - GAIN1)DRHO
044057,000129: # -1
044058,000130: # ADOT = ADOT + GAIN2 DRHO + KMJ DFT
044059,000131: # -1
044060,000132: # - * - -
044061,000133: # WHERE DELRHO = AMGB (CDU - CDU )
044062,000134: # -1
044063,000135:
044064,000136: 21,2222 34767 +2 CAF TWO
044065,000137: 21,2223 55506 DRHOLOOP TS SPNDX
044066,000138: 21,2224 60000 DOUBLE
044067,000139: 21,2225 55507 TS DPNDX
044068,000140: 21,2226 51507 INDEX DPNDX
044069,000141: 21,2227 41552 CS DRHO # DRHO SCALED 180 DEGS
044070,000142: 21,2230 00006 EXTEND
044071,000143: 21,2231 51617 INDEX ATTKALMN # PICK UP DESIRED FILTER GAIN
044072,000144: 21,2232 73121 MP GAIN1
044073,000145: 21,2233 51507 INDEX DPNDX
044074,000146: 21,2234 21553 DAS DRHO # (1 -.064) DRHO
044075,000147: 21,2235 00006 EXTEND
044076,000148: 21,2236 51507 INDEX DPNDX
044077,000149: 21,2237 41534 DCS ADOT
Page 1003 |
044079,000151: 21,2240 53511 DXCH KMPAC # -(.1)ADOT
044080,000152: 21,2241 34754 CA QUARTER
044081,000153: 21,2242 02060 TC SMALLMP
044082,000154: 21,2243 53511 DXCH KMPAC
044083,000155: 21,2244 51507 INDEX DPNDX
044084,000156: 21,2245 21553 DAS DRHO
044085,000157: 21,2246 11506 CCS SPNDX
044086,000158: 21,2247 12223 TCF DRHOLOOP
044087,000159:
044088,000160: 21,2250 30032 CA CDUX # MEASURED BODY RATES--
044089,000161: 21,2251 57635 XCH RHO
044090,000162: 21,2252 00006 EXTEND
044091,000163: 21,2253 21635 MSU RHO # - * - -
044092,000164: 21,2254 40000 COM # DELRHO = AMGB (CDU - CDU )
044093,000165: # -1
044094,000166: 21,2255 22007 ZL
044095,000167: 21,2256 53516 DXCH DELTEMPX
044096,000168: 21,2257 30033 CA CDUY
044097,000169: 21,2260 57636 XCH RHO1
044098,000170: 21,2261 00006 EXTEND
044099,000171: 21,2262 21636 MSU RHO1
044100,000172: 21,2263 40000 COM
044101,000173: 21,2264 55502 TS T5TEMP # (CDUY - RHO1) SCALED 90 DEGS
044102,000174: 21,2265 00006 EXTEND
044103,000175: 21,2266 71640 MP AMGB1
044104,000176: 21,2267 21516 DAS DELTEMPX # DELTEMPX = (CDUX-RHO) + AMGB1(CDUY-RHO1)
044105,000177: # MUST BE DOUBLE PRECISION OR WILL LOSE
044106,000178: # PULSES
044107,000179: 21,2270 31641 CA AMGB4
044108,000180: 21,2271 00006 EXTEND
044109,000181: 21,2272 71502 MP T5TEMP
044110,000182: 21,2273 53520 DXCH DELTEMPY
044111,000183: 21,2274 31643 CA AMGB7
044112,000184: 21,2275 00006 EXTEND
044113,000185: 21,2276 71502 MP T5TEMP
044114,000186: 21,2277 53522 DXCH DELTEMPZ
044115,000187: 21,2300 30034 CA CDUZ
044116,000188: 21,2301 57637 XCH RHO2
044117,000189: 21,2302 00006 EXTEND
044118,000190: 21,2303 21637 MSU RHO2
044119,000191: 21,2304 40000 COM
044120,000192: 21,2305 55502 TS T5TEMP # (CDUZ - RHO2) SCALED 90 DEGS
044121,000193: 21,2306 00006 EXTEND
044122,000194: 21,2307 71642 MP AMGB5
044123,000195: 21,2310 21520 DAS DELTEMPY # DELTEMPY = AMGB4(CDUY-RHO1)
044124,000196: # + AMGB5(CDUZ-RHO2)
044125,000197: 21,2311 31644 CA AMGB8
044126,000198: 21,2312 00006 EXTEND
044127,000199: 21,2313 71502 MP T5TEMP
044128,000200: 21,2314 21522 DAS DELTEMPZ # DELTEMPZ = AMGB7(CDUY-RHO1)
Page 1004 |
044130,000202: # + AMGB8(CDUZ-RHO2)
044131,000203: 21,2315 34767 CAF TWO
044132,000204: 21,2316 55506 ADOTLOOP TS SPNDX
044133,000205: 21,2317 60000 DOUBLE
044134,000206: 21,2320 55507 TS DPNDX
044135,000207: 21,2321 00006 EXTEND
044136,000208: 21,2322 51507 INDEX DPNDX
044137,000209: 21,2323 31516 DCA DELTEMPX
044138,000210: 21,2324 51507 INDEX DPNDX
044139,000211: 21,2325 21553 DAS DRHO
044140,000212: 21,2326 00006 EXTEND
044141,000213: 21,2327 51507 INDEX DPNDX
044142,000214: 21,2330 31516 DCA DELTEMPX
044143,000215: 21,2331 51507 INDEX DPNDX
044144,000216: 21,2332 21542 DAS MERRORX
044145,000217: 21,2333 51507 INDEX DPNDX
044146,000218: 21,2334 31552 CA DRHO
044147,000219: 21,2335 60000 DOUBLE # N.B.
044148,000220: 21,2336 60000 DOUBLE # N.B.
044149,000221: 21,2337 00006 EXTEND
044150,000222: 21,2340 51617 INDEX ATTKALMN # PICK UP DESIRED FILTER GAINS
044151,000223: 21,2341 73137 MP GAIN2
044152,000224: 21,2342 51507 INDEX DPNDX # ADOT + (.16)(.1)DRHO
044153,000225: 21,2343 21534 DAS ADOT # -1
044154,000226: 21,2344 51506 INDEX SPNDX # S/C TORQUE TO INERTIA RATIO
044155,000227: 21,2345 31620 CA KMJ # SCALED (450)(1600)/(57.3)(16384)=1/1.3
044156,000228: 21,2346 00006 EXTEND
044157,000229: 21,2347 51506 INDEX SPNDX
044158,000230: 21,2350 71547 MP DFT
044159,000231: 21,2351 51507 INDEX DPNDX
044160,000232: 21,2352 21534 DAS ADOT # KMJ(DFT)
044161,000233: 21,2353 11506 CCS SPNDX
044162,000234: 21,2354 12316 TCF ADOTLOOP # END CALCULATION OF VEHICLE RATES
044163,000235: 21,2355 31560 KMATRIX CA ATTSEC
044164,000236: 21,2356 74777 MASK LOW4
044165,000237: 21,2357 10000 CCS A
044166,000238: 21,2360 12366 TCF TENTHSEK
044167,000239: 21,2361 37656 CAF PRIO34 # CALL FOR 1 SEC UPDATE OF TRANSFORMATION
044168,000240: 21,2362 05121 TC NOVAC # MATRIX FROM GIMBAL AXES TO BODY AXES
044169,000241: 21,2363 E6,1510 EBANK= KMPAC
044170,000242: 21,2363 03560 44066 2CADR AMBGUPDT
044171,000243:
044172,000244: 21,2365 34322 CAF NINE
044173,000245:
044174,000246: 21,2366 55560 TENTHSEK TS ATTSEC
044175,000247:
Page 1005 |
044177,000249: # WHEN AUTOMATIC MANEUVERS ARE BEING PERFORMED, THE FOLLOWING ANGLE ADDITION MUST BE MADE TO PROVIDE A SMOOTH
044178,000250: # SEQUENCE OF ANGULAR COMMANDS TO THE AUTOPILOT--
044179,000251:
044180,000252: # CDUXD = CDUXD + DELCDUX (DOUBLE PRECISION)
044181,000253: # CDUYD = CDUYD + DELCDUY (DOUBLE PRECISION)
044182,000254: # CDUZD = CDUZD + DELCDUZ (DOUBLE PRECISION)
044183,000255:
044184,000256: # THE STEERING PROGRAMS-
044185,000257: # 1) ATTITUDE MANEUVER ROUTINE
044186,000258: # 2) LEM TRACKING
044187,000259:
044188,000260: # SHOULD GENERATE THE DESIRED ANGLES (CDUXD, CDUYD, CDUZD) AS WELL AS THE INCREMENTAL ANGLES (DELCDUX, DELCDUY,
044189,000261: # DELCDUZ) SO THAT THE GIMBAL ANGLE COMMANDS CAN BE INTERPOLATED BETWEEN UPDATES.
044190,000262:
044191,000263: # HOLDFLAG CODING-
044192,000264:
044193,000265: # + = GRAB PRESENT CDU ANGLES AND STORE IN THETADX, THETADY, THETADZ
044194,000266: # AND PERFORM ATTITUDE HOLD ABOUT THESE ANGLES
044195,000267: # ALSO IGNORE AUTOMATIC STEERING
044196,000268: # SET = + BY
044197,000269: # 1) INITIALIZATION PHASE OF AUTOPILOT
044198,000270: # 2) OCCURANCE OF RHC COMMANDS
044199,000271: # 3) FREE MODE
044200,000272: # 4) SWITCH OVER TO ATTITUDE HOLD FROM AUTO
044201,000273: # WHILE DOING AUTOMATIC STEERING (IN THIS CASE
044202,000274: # HOLDFLAG IS NOT ACTUALLY SET TO +, BUT THE LOGIC
044203,000275: # FUNCTIONS AS IF IT WERE.)
044204,000276: # 5) S/C CONTROL SWITCH IN SCS
044205,000277: # 6) IMU POWER OFF
044206,000278: # +0 = IN ATTITUDE HOLD ABOUT A PREVIOUSLY ESTABLISHED REFERENCE
044207,000279: # - = PERFORMING AUTOMATIC MANEUVER
044208,000280: # -0 = NOT USED AT PRESENT
044209,000281:
044210,000282: # NOTE THAT THIS FLAG MUST BE SET = - BY THE STEERING PROGRAM IF IT IS TO COMMAND THE AUTOPILOT.
044211,000283: # SINCE ASTRONAUT ACTION MAY CHANGE THE HOLDFLAG SETTING, IT SHOULD BE MONITORED BY THE STEERING PROGRAM TO
044212,000284: # DETERMINE IF THE AUTOMATIC SEQUENCE HAS BEEN INTERRUPTED AND IF SO, TAKE APPROPRIATE ACTION.
044213,000285:
044214,000286:
044215,000287: 21,2367 41340 CS HOLDFLAG
044216,000288: 21,2370 00006 EXTEND
044217,000289: 21,2371 62416 BZMF DACNDLS # IF HOLDFLAG +0,-0,+, BYPASS AUTOMATIC
044218,000290: # COMMANDS
044219,000291: 21,2372 34767 DCDUINCR CAF TWO
044220,000292: 21,2373 55506 DELOOP TS SPNDX
044221,000293: 21,2374 60000 DOUBLE
044222,000294: 21,2375 55507 TS DPNDX
044223,000295: 21,2376 00006 EXTEND
044224,000296: 21,2377 50000 INDEX A
044225,000297: 21,2400 31647 DCA CDUXD
Page 1006 |
044227,000299: 21,2401 53511 DXCH KMPAC
044228,000300: 21,2402 00006 EXTEND
044229,000301: 21,2403 51507 INDEX DPNDX
044230,000302: 21,2404 31576 DCA DELCDUX
044231,000303: 21,2405 02072 TC DPADD
044232,000304: 21,2406 00006 EXTEND
044233,000305: 21,2407 31511 DCA KMPAC
044234,000306: 21,2410 51506 INDEX SPNDX
044235,000307: 21,2411 55572 TS THETADX
044236,000308: 21,2412 51507 INDEX DPNDX
044237,000309: 21,2413 53647 DXCH CDUXD
044238,000310: 21,2414 11506 CCS SPNDX
044239,000311: 21,2415 12373 TCF DELOOP
044240,000312:
Page 1007 |
044242,000314:
044243,000315: # RCS-CSM AUTOPILOT ATTITUDE ERROR DISPLAY
044244,000316:
044245,000317: # THREE TYPES OF ATTITUDE ERRORS MAY BE DISPLAYED ON THE FDAI-
044246,000318:
044247,000319: # MODE 1) AUTOPILOT FOLLOWING ERRORS SELECTED BY V61E
044248,000320: # GENERATED INTERNALLY BY THE AUTOPILOT
044249,000321:
044250,000322: # MODE 2) TOTAL ATTITUDE ERRORS SELECTED BY V62E
044251,000323: # WITH RESPECT TO THE CONTENTS OF N22
044252,000324:
044253,000325: # MODE 3) TOTAL ASTRONAUT ATTITUDE ERRORS SELECTED BY V63E
044254,000326: # WITH RESPECT TO THE CONTENTS OF N17
044255,000327:
044256,000328: # MODE 1 IS PROVIDED AS A MONITOR OF THE RCS DAP AND ITS ABILITY TO TRACK AUTOMATIC STEERING COMMANDS. IN THIS
044257,000329: # MODE THE ATTITUDE ERRORS WILL BE ZEROED WHEN THE CMC MODE SWITCH IS IN FREE
044258,000330:
044259,000331: # MODE 2 IS PROVIDED TO ASSIST THE CREW IN MANUALLY MANEUVERING THE S/C TO THE ATTITUDE (GIMBAL ANGLES) SPECIFIED
044260,000332: # IN N22. THE ATTITUDE ERRORS WRT THESE ANGLES AND THE CURRENT CDU ANGLES ARE RESOLVED INTO S/C CONTROL AXES
044261,000333: # AS A FLY-TO INDICATOR.
044262,000334:
044263,000335: # MODE 3 IS PROVIDED TO ASSIST THE CREW IN MANUALLY MANEUVERING THE S/C TO THE ATTITUDE (GIMBAL ANGLES) SPECIFIED
044264,000336: # IN N17. THE ATTITUDE ERRORS WRT THESE ANGLES AND THE CURRENT CDU ANGLES ARE RESOLVED INTO S/C CONTROL AXES
044265,000337: # AS A FLY-TO INDICATOR.
044266,000338:
044267,000339: # V60 IS PROVIDED TO LOAD N17 WITH A SNAPSHOT OF THE CURRENT CDU ANGLES, THUS SYNCHRONIZING THE MODE 3 DISPLAY
044268,000340: # WITH THE CURRENT S/C ATTITUDE. THIS VERB MAY BE USED AT ANY TIME.
044269,000341:
044270,000342: # THESE DISPLAYS WILL BE AVAILIABLE IN ANY MODE (AUTO, HOLD, FREE, G+N, OR SCS) ONCE THE RCS DAP HAS BEEN
044271,000343: # INITIATED VIA V46E. MODE 1, HOWEVER, WILL BE MEANINGFUL ONLY IN G+N AUTO OR HOLD. THE CREW MAY PRESET (VIA
044272,000344: # V25N17) AN ATTITUDE REFERENCE (DESIRED GIMBAL ANGLES) INTO N17 AT ANY TIME.
044273,000345:
044274,000346: 21,2416 41501 DACNDLS CS RCSFLAGS # ALTERNATE BETWEEN FDAIDSP1 AND FDAIDSP2
044275,000347: 21,2417 74765 MASK BIT4
044276,000348: 21,2420 00006 EXTEND
044277,000349: 21,2421 13202 BZF FDAIDSP2
044278,000350:
044279,000351: 21,2422 27501 FDAIDSP1 ADS RCSFLAGS
044280,000352: 21,2423 02425 TC NEEDLER
044281,000353: 21,2424 15323 KRESUME1 TCF RESUME # END PHASE 1
044282,000354:
Page 1008 |
044284,000356:
044285,000357: # FDAI ATTITUDE ERROR DISPLAY SUBROUTINE
044286,000358:
044287,000359: # PROGRAM DESCRIPTION: D. KEENE 5/24/67
044288,000360:
044289,000361: # THIS SUBROUTINE IS USED TO DISPLAY ATTITUDE ERRORS ON THE FDAI VIA THE DIGITAL TO ANALOG CONVERTERS (DACS)
044290,000362: # IN THE CDUS. CARE IS TAKEN TO METER OUT THE APPROPRIATE NUMBER OF PULSES TO THE IMU ERROR COUNTERS AND PREVENT
044291,000363: # OVERFLOW, TO CONTROL THE RELAY SEQUENCING, AND TO AVOID INTERFERENCE WITH THE COARSE ALIGN LOOP WHICH ALSO USES
044292,000364: # THE DACS.
044293,000365:
044294,000366:
044295,000367: # CALLING SEQUENCE:
044296,000368:
044297,000369: # DURING THE INITIALIZATION SECTION OF THE USER'S PROGRAM, BIT3 OF RCSFLAGS SHOULD BE SET TO INITIATE THE
044298,000370: # TURN-ON SEQUENCE WITHIN THE NEEDLES PROGRAM:
044299,000371:
044300,000372: # CS RCSFLAGS IN EBANK6
044301,000373: # MASK BIT3
044302,000374: # ADS RCSFLAGS
044303,000375:
044304,000376: # THEREAFTER, THE ATTITUDE ERRORS GENERATED BY THE USER SHOULD BE TRANSFERED TO THE FOLLOWING LOCATIONS IN EBANK6:
044305,000377:
044306,000378: # AK SCALED 180 DEGREES NOTE: THESE LOCATIONS ARE SUBJECT
044307,000379: # AK1 SCALED 180 DEGREES TO CHANGE
044308,000380: # AK2 SCALED 180 DEGREES
044309,000381:
044310,000382: # FULL SCALED DEFLECTION CORRESPONDS TO 16 7/8 DEGREES OF ATTITUDE ERROR
044311,000383: # (= 384 BITS IN IMU ERROR COUNTER)
044312,000384:
044313,000385: # A CALL TO NEEDLER WILL THEN UPDATE THE DISPLAY:
044314,000386:
044315,000387: # INHINT
044316,000388: # TC IBNKCALL NOTE: EBANK SHOULD BE SET TO E6
044317,000389: # CADR NEEDLER
044318,000390: # RELINT
044319,000391:
044320,000392: # THIS PROCESS SHOULD BE REPEATED EACH TIME THE ERRORS ARE UPDATED. AT LEAST 3 PASSES THRU THE PROGRAM ARE
044321,000393: # REQUIRED BEFORE ANYTHING IS ACTUALLY DISPLAYED ON THE ERROR METERS.
044322,000394: # NOTE: EACH CALL TO NEEDLER MUST BE SEPARATED BY AT LEAST 50MS TO ASSURE PROPER RELAY SEQUENCING.
044323,000395:
044324,000396: # ERASABLE USED:
044325,000397: # AK CDUXCMD
044326,000398: # AK1 CDUYCMD
044327,000399: # AK2 CDUZCMD
044328,000400: # EDRIVEX A,L,Q
044329,000401: # EDRIVEY T5TEMP
044330,000402: # EDRIVEZ SPNDX
044331,000403:
044332,000404: # SWITCHES: RCSFLAGS BITS 3,2
044333,000405:
044334,000406: # I/O CHANNELS: CHAN12 BIT 4 (COARSE ALIGN - READ ONLY)
Page 1009 |
044336,000408: # CHAN12 BIT 6 (IMU ERROR COUNTER ENABLE)
044337,000409: # CHAN14 BIT 13,14,15 (DAC ACTIVITY)
044338,000410:
044339,000411: # SIGN CONVENTION< AK = THETAC - THETA
044340,000412: # WHERE THETAC = COMMAND ANGLE
044341,000413: # THETA = PRESENT ANGLE
044342,000414:
044343,000415: 21,2425 34765 NEEDLER CAF BIT4 # CHECK FOR COARSE ALIGN ENABLE
044344,000416: 21,2426 00006 EXTEND # IF IN COARSE ALIGN DO NOT USE IMU
044345,000417: 21,2427 02012 RAND CHAN12 # ERROR COUNTERS. DONT USE NEEDLES
044346,000418: 21,2430 00006 EXTEND
044347,000419: 21,2431 12436 BZF NEEDLER1
044348,000420: 21,2432 41501 RCSINT CS RCSFLAGS # SET BIT3 FOR INITIALIZATION PASS
044349,000421: 21,2433 74766 MASK BIT3
044350,000422: 21,2434 27501 ADS RCSFLAGS
044351,000423: 21,2435 00002 TC Q
044352,000424:
044353,000425: 21,2436 31501 NEEDLER1 CA RCSFLAGS
044354,000426: 21,2437 76211 MASK SIX
044355,000427: 21,2440 00006 EXTEND
044356,000428: 21,2441 12476 BZF NEEDLES3
044357,000429: 21,2442 74766 MASK BIT3
044358,000430: 21,2443 00006 EXTEND
044359,000431: 21,2444 12467 BZF NEEDLER2 # BIT3 = 0, BIT2 = 1
044360,000432:
044361,000433: 21,2445 44763 CS BIT6 # FIRST PASS BIT3 = 1
044362,000434: 21,2446 00006 EXTEND # DISABLE IMU ERROR COUNTER TO ZERO DACS
044363,000435: 21,2447 03012 WAND CHAN12 # MUST WAIT AT LEAST 60 MS BEFORE
044364,000436: 21,2450 44772 NEEDLE11 CS ZERO # ENABLING COUNTERS.
044365,000437: 21,2451 55476 TS AK # ZERO THE INPUTS ON FIRST PASS
044366,000438: 21,2452 55477 TS AK1
044367,000439: 21,2453 55500 TS AK2
044368,000440: 21,2454 55503 TS EDRIVEX # ZERO THE DISPLAY REGISTERS
044369,000441: 21,2455 55504 TS EDRIVEY
044370,000442: 21,2456 55505 TS EDRIVEZ
044371,000443: 21,2457 54050 TS CDUXCMD # ZERO THE OUT COUNTERS
044372,000444: 21,2460 54051 TS CDUYCMD
044373,000445: 21,2461 54052 TS CDUZCMD
044374,000446: 21,2462 46211 CS SIX # RESET RCSFLAGS FOR PASS2
044375,000447: 21,2463 71501 MASK RCSFLAGS
044376,000448: 21,2464 64767 AD BIT2
044377,000449: 21,2465 55501 TS RCSFLAGS
044378,000450: 21,2466 00002 TC Q # END PASS1
044379,000451:
044380,000452: 21,2467 34763 NEEDLER2 CAF BIT6 # ENABLE IMU ERROR COUNTERS
044381,000453: 21,2470 00006 EXTEND
044382,000454: 21,2471 05012 WOR CHAN12
044383,000455: 21,2472 46211 CS SIX # RESET RCSFLAGS TO DISPLAY ATTITUDE
Page 1010 |
044385,000457: 21,2473 71501 MASK RCSFLAGS # ERRORS WAIT AT LEAST 4 MS FOR
044386,000458: 21,2474 55501 TS RCSFLAGS # RELAY CLOSURE
044387,000459: 21,2475 00002 TC Q
044388,000460:
044389,000461:
044390,000462: 21,2476 34763 NEEDLES3 CAF BIT6 # CHECK TO SEE IF IMU ERROR COUNTER
044391,000463: 21,2477 00006 EXTEND # IS ENABLED
044392,000464: 21,2500 02012 RAND CHAN12
044393,000465: 21,2501 00006 EXTEND # IF NOT RECYCLE NEEDLES
044394,000466: 21,2502 12432 BZF RCSINT
044395,000467: 21,2503 34767 NEEDLES CAF TWO
044396,000468: 21,2504 55506 DACLOOP TS SPNDX
044397,000469: 21,2505 44754 CS QUARTER
044398,000470: 21,2506 00006 EXTEND
044399,000471: 21,2507 51506 INDEX SPNDX
044400,000472: 21,2510 71476 MP AK
044401,000473: 21,2511 54001 TS L
044402,000474: 21,2512 10000 CCS A
044403,000475: 21,2513 32547 CA DACLIMIT
044404,000476: 21,2514 12516 TCF +2
044405,000477: 21,2515 42547 CS DACLIMIT
044406,000478: 21,2516 60001 AD L
044407,000479: 21,2517 55502 TS T5TEMP # OVFLO CHK
044408,000480: 21,2520 12524 TCF OVSPOT
044409,000481: 21,2521 50000 INDEX A # ON OVERFLOW LIMIT OUTPUT TO +-384
044410,000482: 21,2522 32547 CAF DACLIMIT
044411,000483: 21,2523 54001 TS L
044412,000484: 21,2524 51506 OVSPOT INDEX SPNDX
044413,000485: 21,2525 41503 CS EDRIVEX # CURRENT VALUE OF DAC
044414,000486: 21,2526 60001 AD L
044415,000487: 21,2527 51506 INDEX SPNDX
044416,000488: 21,2530 26050 ADS CDUXCMD
044417,000489: 21,2531 51506 INDEX SPNDX
044418,000490: 21,2532 23503 LXCH EDRIVEX
044419,000491: 21,2533 11506 CCS SPNDX
044420,000492: 21,2534 12504 TCF DACLOOP
044421,000493: 21,2535 37673 CAF 13,14,15
044422,000494: 21,2536 00006 EXTEND
044423,000495: 21,2537 05014 DRIVEDAC WOR CHAN14 # SET DAC ACTIVITY BITS
044424,000496: 21,2540 00002 TC Q
044425,000497:
044426,000498: 21,2541 32545 REINIT CAF DELAY200 # ........TILT LOGIC
044427,000499: 21,2542 54030 TS TIME5 # REINITIALIZE DAP IN 200MS
044428,000500: 21,2543 55464 TS T5PHASE
044429,000501: 21,2544 15323 TCF RESUME
044430,000502: 21,2545 37754 DELAY200 DEC 16364 B-14 # 200MS
044431,000503:
044432,000504:
044433,000505: 21,2546 77177 DEC -384 B-14
044434,000506: 21,2547 37200 DACLIMIT DEC 16000 B-14
Page 1011 |
044436,000508: 21,2550 00600 DEC 384 B-14
044437,000509:
Page 1012 |
044439,000511:
044440,000512: # INITIALIZATION PROGRAM FOR RCS-CSM AUTOPILOT
044441,000513:
044442,000514: # THE FOLLOWING QUANTITIES WILL BE ZEROED AND SHOULD APPEAR IN CONSECUTIVE LOCATIONS IN MEMORY AFTER WBODY
044443,000515:
044444,000516: # WBODY (+1) DFT TAU2
044445,000517: # WBODY1 (+1) DFT1 BIAS
044446,000518: # WBODY2 (+1) DFT2 BIAS1
044447,000519: # ADOT (+1) DRHO (+1) BIAS2
044448,000520: # ADOT1 (+1) DRHO1 (+1) ERRORX
044449,000521: # ADOT2 (+1) DRHO2 (+1) ERRORY
044450,000522: # MERRORX (+1) ATTSEC ERRORZ
044451,000523: # MERRORY (+1) TAU
044452,000524: # MERRORZ (+1) TAU1
044453,000525:
044454,000526: 21,2551 34770 FRESHDAP CAF ONE # RESET HOLDFLAG TO STOP AUTOMATIC
044455,000527: 21,2552 55340 TS HOLDFLAG # STEERING AND PREPARE TO PICK UP AN
044456,000528: # ATTITUDE HOLD REFERENCE
044457,000529:
044458,000530: 21,2553 04714 REDAP TC IBNKCALL # DECODE DAPDATR1, DAPDATR2 FOR DEADBANDS
044459,000531: 21,2554 40463 CADR S41.2 # RATES, QUADFAILS, QUAD MANAGEMENT
044460,000532:
044461,000533: 21,2555 04714 TC IBNKCALL # DECODE IXX, IAVG AND CONVERT
044462,000534: 21,2556 40614 CADR S40.14 # TO AUTOPILOT GAINS
044463,000535:
044464,000536: 21,2557 32633 CAF NO.T5VAR # NO. LOCATIONS TO BE ZEROED MINUS 2
044465,000537: # NO.T5VAR MUST BE ODD *************
044466,000538: 21,2560 10000 ZEROT5 CCS A
044467,000539: 21,2561 55506 TS SPNDX
044468,000540: 21,2562 34772 CAF ZERO
044469,000541: 21,2563 54001 TS L
044470,000542: 21,2564 51506 INDEX SPNDX
044471,000543: 21,2565 53527 DXCH WBODY +1
044472,000544: 21,2566 11506 CCS SPNDX
044473,000545: 21,2567 12560 TCF ZEROT5
044474,000546: 21,2570 55525 TS WBODY # ZERO LAST (FIRST) ONE
044475,000547:
044476,000548: 21,2571 02642 TC ZEROJET
044477,000549: 21,2572 44772 CS ZERO
044478,000550: 21,2573 55633 TS CHANTEMP # INITIALIZE MINIMUM IMPULSE CONTROL
044479,000551:
044480,000552: 21,2574 55632 TS CH31TEMP # INITIALIZE RHC POSITION MEMORY FOR
044481,000553: # MANUAL RATE MODES
044482,000554:
044483,000555: 21,2575 32634 CAF =.24
044484,000556: 21,2576 55654 TS SLOPE # INITIALIZE SWITCHING LOGIC SLOPE
044485,000557:
044486,000558: 21,2577 34766 CAF FOUR
044487,000559: 21,2600 55634 TS T5TIME # PHASE 0 RESETS FOR PHASE 2 INTERRUPT IN
044488,000560: # 60 MS. PHASE 2 RESETS FOR PHASE 1 RUPT
044489,000561: # IN (80MS - T5TIME(40MS)). THEREFORE
044490,000562: # PHASE 1 (RATEFILTER) BEGINS CYCLING 100
044491,000563: # MS FROM NOW AND EVERY 100MS THEREAFTER
Page 1013 |
044493,000565: 21,2601 34775 CAF ELEVEN
044494,000566: 21,2602 55617 TS ATTKALMN # RESET TO PICK UP KALMAN FILTER GAINS
044495,000567: # TO INITIALIZE THE S/C ANGULAR RATES
044496,000568: 21,2603 30032 CA CDUX
044497,000569: 21,2604 55635 TS RHO
044498,000570: 21,2605 30033 CA CDUY
044499,000571: 21,2606 55636 TS RHO1
044500,000572: 21,2607 30034 CA CDUZ
044501,000573: 21,2610 55637 TS RHO2
044502,000574: 21,2611 34772 CAF ZERO # RESET AUTOPILOT TO BEGIN EXECUTING
044503,000575: 21,2612 55464 TS T5PHASE # PHASE2 OF PROGRAM
044504,000576:
044505,000577: 21,2613 41334 CS IMODES33 # CHECK IMU STATUS
044506,000578: 21,2614 74763 MASK NOIMUDAP # IF BIT6 =0 IMU IN FINE ALIGN
044507,000579: 21,2615 10000 CCS A # IF BIT6 = 1 IMU NOT READY
044508,000580: 21,2616 12622 TCF IMUAOK
044509,000581: 21,2617 55617 TS ATTKALMN # CANNOT USE IMU
044510,000582: 21,2620 32635 CAF RCSINITB # PROVIDE FREE CONTROL ONLY
044511,000583: 21,2621 12627 TCF RCSSWIT # DONT START UP RATE FILTER
044512,000584: # SIGNAL NO RATE FILTER
044513,000585:
044514,000586: 21,2622 37656 IMUAOK CAF PRIO34 # START MATRIX INITIALIZATION
044515,000587: 21,2623 05121 TC NOVAC # BYPASS IF IMU NOT IN FINE ALIGN
044516,000588: 21,2624 E6,1510 EBANK= KMPAC
044517,000589: 21,2624 03560 44066 2CADR AMBGUPDT
044518,000590:
044519,000591: 21,2626 34766 CAF RCSINIT # CLEAR BIT14 -ASSUME WE HAVE A GOOD IMU
044520,000592: 21,2627 55501 RCSSWIT TS RCSFLAGS # CLEAR BIT1 -INITIALIZE T6 PROGRAM
044521,000593: # SET BIT3 -INITIALIZE NEEDLES
044522,000594: # CLEAR BIT4 -RESET FOR FDAIDSP1
044523,000595: 21,2630 32636 CAF T5WAIT60 # NEXT T5RUPT 60 MS FROM NOW TO ALLOW IMU
044524,000596: # ERROR COUNTER TO ZERO.
044525,000597: # (MINIMUM DELAY = 15 MS)
044526,000598: 21,2631 54030 TS TIME5 # SINCE ATTKALMN IS +11, PROGRAM WILL THEN
044527,000599: 21,2632 05323 TC RESUME # PICK UP THE KALMAN FILTER GAINS. RATE
044528,000600: # FILTER WILL BEGIN OPERATING ZOOMS FROM
044529,000601: # NOW
044530,000602:
044531,000603: # CONSTANTS USED IN INITIALIZATION PROGRAM
044532,000604:
044533,000605:
044534,000606: 21,2633 00043 NO.T5VAR DEC 35 B-14 # NO. OF LOCATIONS TO BE ZEROED
044535,000607: # MINUS 2...MUST BE ODD
044536,000608:
044537,000609: # FOR AN EVEN NUMBER OF VARIABLES TO BE ZEROED....
044538,000610: # * SET NO.T5VAR EQUAL TO NUMBER OF VARIABLES MINUS 1
044539,000611: # * DO DXCH WBODY INSTEAD OF WBODY + 1
044540,000612: # * DELETE TS WBODY
044541,000613:
044542,000614: 21,2634 07534 =.24 DEC .24 # = SLOPE OF 0.6/SEC
044543,000615: 21,2635 4766 RCSINIT = BIT3
044544,000616: 21,2635 20004 RCSINITB OCT 20004
044545,000617:
Page 1014 |
044547,000619:
044548,000620: 21,2636 37772 T5WAIT60 DEC 16378 B-14 # = 6 CS
044549,000621: 21,2637 E6,1510 EBANK= KMPAC
044550,000622: 21,2637 03606 36066 T6ADDR 2CADR T6START
044551,000623:
044552,000624:
044553,000625: 21,2641 62524 -75DEGS DEC -.41666 # -75 DEGS IN REVS * 2
044554,000626: 21,2642 34775 ZEROJET CAF ELEVEN # ZERO BLAST2, BLAST1, BLAST, YWORD2,
044555,000627: 21,2643 55506 +1 TS SPNDX # YWORD1,PWORD2,PWORD1,RWORD2,
044556,000628: 21,2644 34772 CAF ZERO # AND RWORD1.
044557,000629: 21,2645 51506 INDEX SPNDX
044558,000630: 21,2646 55450 TS RWORD1
044559,000631: 21,2647 11506 CCS SPNDX
044560,000632: 21,2650 12643 TCF ZEROJET +1
044561,000633:
044562,000634: 21,2651 34766 CAF FOUR
044563,000635: 21,2652 55461 TS BLAST1 +1
044564,000636: 21,2653 34775 CAF ELEVEN
044565,000637: 21,2654 55463 TS BLAST2 +1
044566,000638:
044567,000639: 21,2655 44770 CS BIT1
044568,000640: 21,2656 71501 MASK RCSFLAGS
044569,000641: 21,2657 55501 TS RCSFLAGS # RESET BIT1 OF RCSFLAGS TO 0
044570,000642:
044571,000643: 21,2660 00006 EXTEND
044572,000644: 21,2661 32640 DCA T6ADDR
044573,000645: 21,2662 52111 DXCH T6LOC
044574,000646: 21,2663 33075 CAF =+14MS # ENABLE T6RUPT TO SHUT OFF JETS IN 14 MS.
044575,000647: 21,2664 54031 TS TIME6
044576,000648: 21,2665 00006 EXTEND
044577,000649: 21,2666 22070 QXCH RUPTREG1
044578,000650: 21,2667 04542 TC C13STALL
044579,000651: 21,2670 34752 CAF BIT15
044580,000652: 21,2671 00006 EXTEND
044581,000653: 21,2672 05013 WOR CHAN13
044582,000654:
044583,000655: 21,2673 00070 TC RUPTREG1
044584,000656:
044585,000657: 21,2674 11617 T5PHASE2 CCS ATTKALMN # IF (+) INITIALIZE RATE ESTIMATE
044586,000658: 21,2675 13170 TCF KALUPDT
044587,000659:
044588,000660:
044589,000661: 21,2676 12700 TCF +2 # ONLY IF ATTKALMN POSITIVE
044590,000662: 21,2677 12700 TCF +1
044591,000663: 21,2700 37663 CA DELTATT2 # RESET FOR PHASE3 IN 20 MS
044592,000664: 21,2701 56030 XCH TIME5 # (JET SELECTION LOGIC )
044593,000665: 21,2702 27634 ADS T5TIME # TO COMPENSATE FOR DELAYS IN T5RUPT
044594,000666:
044595,000667:
044596,000668: 21,2703 10034 CCS CDUZ
Page 1015 |
044598,000670: 21,2704 12710 TCF GIMBY # +(
044599,000671: 21,2705 12717 TCF OKGIMB # +0
044600,000672: 21,2706 12710 TCF GIMBY # -N
044601,000673: 21,2707 12717 TCF OKGIMB # -0
044602,000674: 21,2710 62641 GIMBY AD -75DEGS
044603,000675: 21,2711 00006 EXTEND
044604,000676: 21,2712 62717 BZMF OKGIMB
044605,000677:
044606,000678: 21,2713 05547 TC UPFLAG # ATTITUDE HOLD WHEN MIDDLE GIMBAL ANGLE
044607,000679: 21,2714 00020 ADRES STIKFLAG # GREATER THAN 75 DEGREES
044608,000680: 21,2715 34772 CAF ZERO
044609,000681: 21,2716 55340 TS HOLDFLAG
044610,000682:
044611,000683: 21,2717 31501 OKGIMB CA RCSFLAGS # IF A HIGH RATE AUTO MANEUVER IS IN
044612,000684: 21,2720 74752 MASK BIT15 # PROGRESS (BIT 15 OF RCSFLAGS SET), SET
044613,000685: 21,2721 00006 EXTEND # ATTKALMN TO -1
044614,000686: 21,2722 12724 BZF NOHIAUTO # OTHERWISE SET ATTKALMN TO 0.
044615,000687: 21,2723 44770 CS ONE
044616,000688: 21,2724 55617 NOHIAUTO TS ATTKALMN
044617,000689:
Page 1016 |
044619,000691:
044620,000692: # MANUAL ROTATION COMMANDS
044621,000693:
044622,000694: 21,2725 43057 CS OCT01760 # RESET FORCED FIRING BITS (BITS 10 TO 5
044623,000695: 21,2726 71501 MASK RCSFLAGS # OF RCSFLAGS) TO ZERO
044624,000696: 21,2727 55501 TS RCSFLAGS
044625,000697:
044626,000698: 21,2730 00006 EXTEND
044627,000699: 21,2731 00031 READ CHAN31
044628,000700: 21,2732 54001 TS L
044629,000701: 21,2733 31632 CA CH31TEMP
044630,000702: 21,2734 00006 EXTEND
044631,000703: 21,2735 06001 RXOR LCHAN
044632,000704: 21,2736 73063 MASK MANROT # = OCT00077
044633,000705: 21,2737 00006 EXTEND
044634,000706: 21,2740 62753 BZMF NOCHANGE
044635,000707:
044636,000708: 21,2741 22000 LXCH A
044637,000709: 21,2742 55632 TS CH31TEMP # SAVE CONTENTS OF CHANNEL 31 IN CH31TEMP
044638,000710:
044639,000711: 21,2743 30001 CA L
044640,000712: 21,2744 00006 EXTEND
044641,000713: 21,2745 74764 MP BIT5 # PUT BITS 6-1 OF A IN BITS 10-5 OF L
044642,000714: 21,2746 30001 CA L
044643,000715: 21,2747 27501 ADS RCSFLAGS # SET FORCED FIRING BITS FOR AXES WITH
044644,000716: # WITH CHANGES IN COMMAND. BITS 10,9 FOR
044645,000717: # ROLL, BITS 8,7 FOR YAW, BITS 6,5 FOR
044646,000718: # PITCH
044647,000719:
044648,000720: 21,2750 41501 CS RCSFLAGS # SET RATE DAMPING FLAGS (BITS 13,12,AND
044649,000721: 21,2751 73064 MASK OCT16000 # 11 OF RCSFLAGS)
044650,000722: 21,2752 27501 ADS RCSFLAGS
044651,000723:
044652,000724: 21,2753 41632 NOCHANGE CS CH31TEMP
044653,000725: 21,2754 73063 MASK MANROT
044654,000726: 21,2755 00006 EXTEND
044655,000727: 21,2756 63272 BZMF AHFNOROT # IF NO MANUAL COMMANDS, GO TO AHFNOROT
044656,000728:
044657,000729: 21,2757 55340 TS HOLDFLAG # SET HOLDFLAG +
044658,000730:
044659,000731: 21,2760 03152 TC STICKCHK # WHEN THE RHC IS OUT OF DETENT, PMANNDX,
044660,000732: # YMANNDX, AND RMANNDX ARE ALL SET, BY
044661,000733: # MEANS OF STICKCHK, TO 0, 1, OR 2 FOR NO,
044662,000734: # +, OR - ROTATION RESPECTIVELY AS
044663,000735: # COMMANDED BY THE RHC.
044664,000736:
044665,000737: # HOWEVER, IT IS WELL TO NOTE THAT AFTER
044666,000738: # THE RHC IS RETURNED TO DETENT, THE
044667,000739: # PROGRAM BRANCHES TO AHFNOROT AND AVOIDS
044668,000740: # STICKCHK SO PMANNDX, YMANNDX, AND
044669,000741: # RMANNDX ARE NOT RESET TO ZERO BUT RATHER
044670,000742: # LEFT SET TO THEIR LAST OUT OF DETENT
Page 1017 |
044672,000744: # VALUES.
044673,000745:
044674,000746: 21,2761 40075 CS FLAGWRD1 # SET STIKFLAG TO INFORM STEERING
044675,000747: 21,2762 74753 MASK STIKBIT # PROGRAMS (P20) THAT ASTRONAUT HAS
044676,000748: 21,2763 26075 ADS FLAGWRD1 # ASSUMED ROTATIONAL CONTROL OF SPACECRAFT
044677,000749:
044678,000750: 21,2764 34753 CAF BIT14
044679,000751: 21,2765 05654 TC C31BTCHK
044680,000752: 21,2766 13076 TCF FREEFUNC
044681,000753: 21,2767 31501 CA RCSFLAGS # EXAMINE RCSFLAGS TO SEE IF RATE FILTER
044682,000754: 21,2770 74753 MASK BIT14 # HAS BEEN INITIALIZED
044683,000755: 21,2771 10000 CCS A # IF SO, PROCEED WITH MANUAL RATE COMMANDS
044684,000756: 21,2772 12541 TCF REINIT # .....TILT, RECYCLE TO INITIALIZE FILTER
044685,000757:
044686,000758: 21,2773 44773 CS FIVE # IF MANUAL MANEUVER IS AT HIGH RATE, SET
044687,000759: 21,2774 60774 AD RATEINDX # ATTKALMN TO -1.
044688,000760: 21,2775 00006 EXTEND # OTHERWISE, LEAVE ATTKALMN ALONE.
044689,000761: 21,2776 63001 BZMF +3
044690,000762: 21,2777 44770 CS ONE
044691,000763: 21,3000 55617 TS ATTKALMN
044692,000764:
044693,000765:
044694,000766: 21,3001 34767 CAF TWO # AUTO-HOLD MANUAL ROTATION
044695,000767: 21,3002 55506 SETWBODY TS SPNDX
044696,000768: 21,3003 60000 DOUBLE
044697,000769: 21,3004 55507 TS DPNDX
044698,000770: 21,3005 51506 INDEX SPNDX # RMANNDX = 0 NO ROTATION
044699,000771: 21,3006 31656 CA RMANNDX # = 1 + ROTATION
044700,000772: 21,3007 00006 EXTEND # = 2 - ROTATION
044701,000773: 21,3010 13032 BZF NORATE # IF NO ROTATION COMMAND ON THIS AXIS,
044702,000774: # GO TO NORATE.
044703,000775:
044704,000776: 21,3011 60774 AD RATEINDX # RATEINDX = 0 0.05 DEG/SEC
044705,000777: 21,3012 54002 TS Q # = 2 0.2 DEG/SEC
044706,000778: 21,3013 50002 INDEX Q # = 4 0.5 DEG/SEC
044707,000779: 21,3014 33064 CA MANTABLE -1 # = 6 2.0 DEG/SEC
044708,000780: 21,3015 00006 EXTEND
044709,000781: 21,3016 74760 MP BIT9 # MULTIPLY MANTABLE BY 2 TO THE -6
044710,000782: 21,3017 51507 INDEX DPNDX # TO GET COMMANDED RATE.
044711,000783: 21,3020 53526 DXCH WBODY # SET WBODY TO COMMANDED RATE.
044712,000784:
044713,000785: 21,3021 31501 CA RCSFLAGS
044714,000786: 21,3022 73064 MASK OCT16000 # IS RATE DAMPING COMPLETED (BITS 13,12 AND
044715,000787: 21,3023 00006 EXTEND # 11 OF RCSFLAGS ALL ZERO.) IF SO, GO TO
044716,000788: 21,3024 13042 BZF MERUPDAT # MERUPDAT TO UPDATE CUMULATIVE ATTITUDE
044717,000789: # ERROR.
044718,000790:
044719,000791: 21,3025 34772 ZEROER CA ZERO # ZEROER ZEROS MERRORS
044720,000792: 21,3026 22007 ZL
044721,000793: 21,3027 51507 INDEX DPNDX
Page 1018 |
044723,000795: 21,3030 53542 DXCH MERRORX
044724,000796: 21,3031 13050 TCF SPNDXCHK
044725,000797:
044726,000798: 21,3032 22007 NORATE ZL
044727,000799: 21,3033 51507 INDEX DPNDX
044728,000800: 21,3034 53526 DXCH WBODY # ZERO WBODY FOR THIS AXIS
044729,000801: 21,3035 31501 CA RCSFLAGS
044730,000802: 21,3036 73064 MASK OCT16000
044731,000803: 21,3037 00006 EXTEND # IS RATE DAMPING COMPLETED
044732,000804: 21,3040 13050 BZF SPNDXCHK # YES, KEEP CURRENT MERRORX GO TO SPNDXCHK
044733,000805: 21,3041 13025 TCF ZEROER # NO, GO TO ZEROER
044734,000806:
044735,000807: 21,3042 50002 MERUPDAT INDEX Q # MERRORX=MERRORX+MEASURED CHANGE IN ANGLE
044736,000808: 21,3043 43064 CS MANTABLE -1 # -COMMANDED CHANGE IN ANGLE
044737,000809: 21,3044 00006 EXTEND # THE ADDITION OF MEASURED CHANGE IN ANGLE
044738,000810: 21,3045 74762 MP BIT7 # HAS ALREADY BEEN DONE IN THE RATE FILTER
044739,000811: 21,3046 51507 INDEX DPNDX # COMMANDED CHANGE IN ANGLE = WBODY TIMES
044740,000812: 21,3047 21542 DAS MERRORX # .1SEC = MANTABLE ENTRY TIMES 2 TO THE -8
044741,000813:
044742,000814: 21,3050 51507 SPNDXCHK INDEX DPNDX
044743,000815: 21,3051 31541 CA MERRORX
044744,000816: 21,3052 51506 INDEX SPNDX
044745,000817: 21,3053 55567 TS ERRORX # ERRORX = HIGH ORDER WORD OF MERRORX
044746,000818: 21,3054 11506 CCS SPNDX
044747,000819: 21,3055 13002 TCF SETWBODY
044748,000820: 21,3056 13452 TCF JETS
044749,000821:
044750,000822:
044751,000823: 21,3057 01760 OCT01760 OCT 01760 # FORCED FIRING BITS MASK
044752,000824:
044753,000825: 21,3060 01400 OCT01400 OCT 01400 # ROLL FORCED FIRING MASK ORDER OF
044754,000826: 21,3061 00060 OCT00060 OCT 00060 # PITCH FORCED FIRING MASK DEFINITION
044755,000827: 21,3062 00300 OCT00300 OCT 00300 # YAW FORCED FIRING MASK MUST BE
044756,000828: # PRESERVED
044757,000829: # FOR INDEXING
044758,000830: 21,3063 00077 MANROT OCT 77
044759,000831: 21,3064 16000 OCT16000 OCT 16000 # RATE DAMPING FLAGS MASK
044760,000832: 21,3065 00165 MANTABLE DEC .0071111
044761,000833: 21,3066 77612 DEC -.0071111
044762,000834: 21,3067 00722 DEC .028444
044763,000835: 21,3070 77055 DEC -0.028444
044764,000836: 21,3071 02215 DEC .071111
044765,000837: 21,3072 75562 DEC -.071111
044766,000838: 21,3073 11064 DEC .284444
044767,000839: 21,3074 66713 DEC -.284444
044768,000840: 21,3075 00027 =+14MS DEC 23 B-14
044769,000841: 21,3076 31501 FREEFUNC CA RCSFLAGS
044770,000842: 21,3077 00006 EXTEND
044771,000843: 21,3100 74756 MP BIT11 # SHIFT RIGHT 4 BITS
044772,000844: 21,3101 55502 TS T5TEMP
Page 1019 |
044774,000846: 21,3102 41632 CS CH31TEMP
044775,000847: 21,3103 71502 MASK T5TEMP # A= COMPLEMENT OF NEW CH 31 COMMANDS
044776,000848: 21,3104 13320 TCF RHCMINP
044777,000849: 21,3105 34772 T6PROGM CAF ZERO # FOR MANUAL ROTATIONS
044778,000850: 21,3106 55567 TS ERRORX
044779,000851: 21,3107 55570 TS ERRORY
044780,000852: 21,3110 55571 TS ERRORZ
044781,000853: 21,3111 13763 TCF T6PROG
044782,000854:
Page 1020 |
044784,000856:
044785,000857: 21,3112 00000 FREETAU DEC 0 B-14
044786,000858: 21,3113 00740 DEC 480 B-14
044787,000859: 21,3114 77037 DEC -480 B-14
044788,000860: 21,3115 00000 DEC 0 B-14
044789,000861:
044790,000862:
044791,000863: 21,3116 06604 DEC .2112 # FILTER GAIN FOR TRANSLATION, LEM ON
044792,000864: 21,3117 32703 DEC .8400 # FILTER GAIN FOR TRANSLATION 2(ZETA)WN DT
044793,000865: 21,3120 06604 DEC .2112 # FILTER GAIN FOR 2 DEGREES/SEC MANEUVERS
044794,000866: 21,3121 02031 GAIN1 DEC .0640 # KALMAN FILTER GAINS FOR INITIALIZATION
044795,000867: 21,3122 12132 DEC .3180 # OF ATTITUDE RATES
044796,000868: 21,3123 13030 DEC .3452
044797,000869: 21,3124 14047 DEC .3774
044798,000870: 21,3125 15241 DEC .4161
044799,000871: 21,3126 16650 DEC .4634
044800,000872: 21,3127 20555 DEC .5223
044801,000873: 21,3130 23065 DEC .5970
044802,000874: 21,3131 26137 DEC .6933
044803,000875: 21,3132 32053 DEC .8151
044804,000876: 21,3133 35712 DEC .9342
044805,000877:
044806,000878: 21,3134 00435 DEC .0174 # FILTER GAIN FOR TRANSLATION, LEM ON
044807,000879: 21,3135 13412 DEC .3600 # FILTER GAIN FOR TRANSLATION (WN)(WN)DT
044808,000880: 21,3136 00435 DEC .0174 # FILTER GAIN FOR 2 DEGREES/SEC MANEUVERS
044809,000881: 21,3137 00032 GAIN2 DEC .0016 # SCALED 10
044810,000882: 21,3140 01350 DEC .0454
044811,000883: 21,3141 01575 DEC .0545
044812,000884: 21,3142 02103 DEC .0666
044813,000885: 21,3143 02523 DEC .0832
044814,000886: 21,3144 03327 DEC .1069
044815,000887: 21,3145 04432 DEC .1422
044816,000888: 21,3146 06264 DEC .1985
044817,000889: 21,3147 11351 DEC .2955
044818,000890: 21,3150 17324 DEC .4817
044819,000891: 21,3151 33622 DEC .8683
044820,000892: 21,3152 55502 STICKCHK TS T5TEMP
044821,000893: 21,3153 76214 MASK THREE # INDECES FOR MANUAL ROTATION
044822,000894: 21,3154 55657 TS PMANNDX
044823,000895: 21,3155 31502 CA T5TEMP
044824,000896: 21,3156 00006 EXTEND # MAN RATE 0 0 RATE (DP)
044825,000897: 21,3157 74754 MP QUARTER # +1 +RATE (DP)
044826,000898: 21,3160 55502 TS T5TEMP # +2 -RATE (DP)
044827,000899: 21,3161 76214 MASK THREE # (+3) 0 RATE (DP)
044828,000900: 21,3162 55660 TS YMANNDX
044829,000901: 21,3163 31502 CA T5TEMP
044830,000902: 21,3164 00006 EXTEND
044831,000903: 21,3165 74754 MP QUARTER
044832,000904: 21,3166 55656 TS RMANNDX
044833,000905: 21,3167 00002 TC Q
Page 1021 |
044835,000907:
044836,000908: 21,3170 55617 KALUPDT TS ATTKALMN # INITIALIZATION OF ATTITUDE RATES USING
044837,000909: # KALMAN FILTER TAKES 1.1 SEC
044838,000910:
044839,000911: 21,3171 32167 CA DELTATT # =1SEC - 80MS
044840,000912: 21,3172 61634 AD T5TIME # + DELAYS
044841,000913: 21,3173 54030 TS TIME5
044842,000914: 21,3174 13177 TCF +3
044843,000915: 21,3175 37663 CAF DELTATT2 # SAFETY PLAY TO ASSURE
044844,000916: 21,3176 54030 TS TIME5 # A T5RUPT
044845,000917:
044846,000918:
044847,000919: 21,3177 44772 KRESUME2 CS ZERO # RESET FOR PHASE1
044848,000920: 21,3200 55464 TS T5PHASE # RESUME INTERRUPTED PROGRAM
044849,000921: 21,3201 15323 TCF RESUME
044850,000922:
044851,000923:
044852,000924: 21,3202 44765 FDAIDSP2 CS BIT4 # RESET FOR FDAIDSP1
044853,000925: 21,3203 71501 MASK RCSFLAGS
044854,000926: 21,3204 55501 TS RCSFLAGS
044855,000927:
044856,000928: 21,3205 40074 CS FLAGWRD0 # ON - DISPLAY ONE OF THE TOTAL ATTITUDE
044857,000929: 21,3206 74760 MASK NEEDLBIT # ERRORS
044858,000930: 21,3207 00006 EXTEND
044859,000931: 21,3210 13217 BZF FDAITOTL
044860,000932: 21,3211 00006 EXTEND
044861,000933: 21,3212 41570 DCS ERRORX # OFF - DISPLAY AUTOPILOT FOLLOWING ERROR
044862,000934: 21,3213 53477 DXCH AK
044863,000935: 21,3214 41571 CS ERRORZ
044864,000936: 21,3215 55500 TS AK2
044865,000937: 21,3216 15323 TCF RESUME # END PHASE 1
044866,000938:
044867,000939:
044868,000940: 21,3217 30105 FDAITOTL CA FLAGWRD9
044869,000941: 21,3220 74763 MASK N2217BIT
044870,000942: 21,3221 00006 EXTEND
044871,000943: 21,3222 13265 BZF WRTN17 # IS N22ORN17 (BIT6 OF FLAGWRD9) = 0
044872,000944: # IF SO, GO TO WRTN17
044873,000945: 21,3223 00006 WRTN22 EXTEND # OTHERWISE, CONTINUE ON TO WRTN22 AND
044874,000946: 21,3224 31311 DCA CTHETA # GET SET TO COMPUTE TOTAL ATTITUDE
044875,000947: 21,3225 53514 DXCH WTEMP # ERROR WRT N22 BY PICKING UP THE THREE
044876,000948: 21,3226 31307 CA CPHI # COMPONENTS OF N22
044877,000949:
044878,000950: 21,3227 00006 GETAKS EXTEND # COMPUTE TOTAL ATTITUDE ERROR FOR
044879,000951: 21,3230 20032 MSU CDUX # DISPLAY ON FDAI ERROR NEEDLES
044880,000952: 21,3231 55476 TS AK
044881,000953: 21,3232 31513 CA WTEMP
044882,000954: 21,3233 00006 EXTEND
044883,000955: 21,3234 20033 MSU CDUY
044884,000956: 21,3235 55502 TS T5TEMP
044885,000957: 21,3236 00006 EXTEND
Page 1022 |
044887,000959: 21,3237 71640 MP AMGB1
044888,000960: 21,3240 27476 ADS AK
044889,000961: 21,3241 31502 CA T5TEMP
044890,000962: 21,3242 00006 EXTEND
044891,000963: 21,3243 71641 MP AMGB4
044892,000964: 21,3244 55477 TS AK1
044893,000965: 21,3245 31502 CA T5TEMP
044894,000966: 21,3246 00006 EXTEND
044895,000967: 21,3247 71643 MP AMGB7
044896,000968: 21,3250 55500 TS AK2
044897,000969: 21,3251 31514 CA WTEMP +1
044898,000970: 21,3252 00006 EXTEND
044899,000971: 21,3253 20034 MSU CDUZ
044900,000972: 21,3254 55502 TS T5TEMP
044901,000973: 21,3255 00006 EXTEND
044902,000974: 21,3256 71642 MP AMGB5
044903,000975: 21,3257 27477 ADS AK1
044904,000976: 21,3260 31502 CA T5TEMP
044905,000977: 21,3261 00006 EXTEND
044906,000978: 21,3262 71644 MP AMGB8
044907,000979: 21,3263 27500 ADS AK2
044908,000980: 21,3264 15323 TCF RESUME # END PHASE1 OF RCS DAP
044909,000981:
044910,000982: 21,3265 00006 WRTN17 EXTEND # GET SET TO COMPUTE TOTAL ASTRONAUT
044911,000983: 21,3266 31015 DCA CPHIX +1 # ATTITUDE ERROR WRT N17 BY PICKING UP
044912,000984: 21,3267 53514 DXCH WTEMP # THE THREE COMPONENTS OF N17
044913,000985: 21,3270 31013 CA CPHIX
044914,000986: 21,3271 13227 TCF GETAKS
044915,000987:
Page 1023 Empty page. |
044918,000990:
End of include-file RCS-CSM_DIGITAL_AUTOPILOT.agc. Parent file is MAIN.agc