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