Source Code
![]() |
This is the source-code for the Apollo 9 Command Module's Guidance Computer.
These files were derived originally from the scan from MIT's Dibner Institute's
now-discontinued website titled "History of Recent Science and Technology", which
in turn was originally created by Gary Neff, though his high-quality scans were
unfortunately reduced in legibility when presented online.
The markings on the front of the
printout imply that it was the original AGC developer Norm Brodeur's copy.
A scan by Ron Burkey has superceded it, made from a more-legible copy from the collection of original
AGC developer Fred Martin. The source code was transcribed from
those images by Ron Burkey. Note that the page images
presented online are of reduced quality, and that higher-quality images
are available. Report any conversion errors or legibility
problems in page images to info@sandroid.org.
Notations on the program listing read, in part:ASSEMBLE REVISION 249 OF AGC PROGRAM COLOSSUS BY NASA 2021111-041 20'35 OCT. 28,1968Note that the date is the date of the printout, not the date of the program revision. |
043558,000002: ## Copyright: Public domain.
043559,000003: ## Filename: RCS-CSM_DIGITAL_AUTOPILOT.agc
043560,000004: ## Purpose: Part of the source code for Colossus, build 249.
043561,000005: ## It is part of the source code for the Command Module's (CM)
043562,000006: ## Apollo Guidance Computer (AGC), for Apollo 9.
043563,000007: ## Assembler: yaYUL
043564,000008: ## Reference: Starts on p. 973.
043565,000009: ## Contact: Ron Burkey <info@sandroid.org>.
043566,000010: ## Website: www.ibiblio.org/apollo.
043567,000011: ## Mod history: 08/25/04 RSB. Began transcribing.
043568,000012: ## 2010-10-25 JL Fixed page number.
043569,000013: ## 2017-01-06 RSB Page numbers now agree with those on the
043570,000014: ## original harcopy, as opposed to the PDF page
043571,000015: ## numbers in 1701.pdf.
043572,000016: ## 2017-01-18 RSB Cross-diff'd comment text (not whitespace)
043573,000017: ## vs the already-proofed corresponding Colossus
043574,000018: ## 237 and Comanche 55 source-code files
043575,000019: ## and corrected errors found.
043576,000020: ##
043577,000021: ## The contents of the "Colossus249" files, in general, are transcribed
043578,000022: ## from a scanned copy of the program listing. Notations on this
043579,000023: ## document read, in part:
043580,000024: ##
043581,000025: ## Assemble revision 249 of AGC program Colossus by NASA
043582,000026: ## 2021111-041. October 28, 1968.
043583,000027: ##
043584,000028: ## This AGC program shall also be referred to as
043585,000029: ## Colossus 1A
043586,000030: ##
043587,000031: ## Prepared by
043588,000032: ## Massachusetts Institute of Technology
043589,000033: ## 75 Cambridge Parkway
043590,000034: ## Cambridge, Massachusetts
043591,000035: ## under NASA contract NAS 9-4065.
043592,000036: ##
043593,000037: ## Refer directly to the online document mentioned above for further information.
043594,000038: ## Please report any errors (relative to the scanned pages) to info@sandroid.org.
043595,000039: ##
043596,000040: ## In some cases, where the source code for Luminary 131 overlaps that of
043597,000041: ## Colossus 249, this code is instead copied from the corresponding Luminary 131
043598,000042: ## source file, and then is proofed to incorporate any changes.
043599,000043:
![]() |
Page 973 |
043601,000045: # T5 INTERRUPT PROGRAM FOR THE RCS-CSM AUTOPILOT
043602,000046:
043603,000047: # START OF T5 INTERRUPT PROGRAM
043604,000048:
043605,000049: 20,3565 BANK 20
043606,000050: 21,2000 SETLOC DAPS3
043607,000051: 21,2000 BANK
043608,000052:
043609,000053: 21,2071 COUNT 21/DAPRC
043610,000054:
043611,000055: 21,2071 E6,1510 EBANK= KMPAC
043612,000056: 21,2071 22016 REDORCS LXCH BANKRUPT # RESTART OF AUTOPILOT COMES HERE
043613,000057: 21,2072 31465 CA T5PHASE # ON A T5 RUPT.
043614,000058: 21,2073 00006 EXTEND
043615,000059: 21,2074 62076 BZMF +2 # IF T5PHASE +0, -0, OR -, RESET TO -
043616,000060: 21,2075 12100 TCF +3 # IF T5PHASE +, LEAVE IT +. DO A FRESHDAP
043617,000061: 21,2076 44712 CS ONE
043618,000062: 21,2077 55465 TS T5PHASE
043619,000063: 21,2100 00006 EXTEND
043620,000064: 21,2101 32105 DCA RCSLOC
043621,000065: 21,2102 53313 DXCH T5LOC # HOOK UP T5RUPT TO AUTOPILOT
043622,000066: 21,2103 12107 TCF RCSATT +1
043623,000067: 21,2104 E6,1510 EBANK= KMPAC
043624,000068: 21,2104 02106 42066 RCSLOC 2CADR RCSATT
043625,000069:
043626,000070: 21,2106 22016 RCSATT LXCH BANKRUPT # SAVE BB
043627,000071: 21,2107 00006 EXTEND # SAVE Q
043628,000072: 21,2110 22012 QXCH QRUPT
043629,000073: 21,2111 34674 CAF BIT15 # BIT15 CHAN31 = 0 IF IMU POWER IS ON AND
043630,000074: 21,2112 00006 EXTEND # S/C CONT SW IS IN CMC (I.E. IF G/C AUTO
043631,000075: 21,2113 02031 RAND CHAN31 # PILOT IS FULLY ENABLED)
043632,000076: 21,2114 00006 EXTEND
043633,000077: 21,2115 12144 BZF SETT5 # IF G/C AUTOPILOT IS FULLY ENABLED,
043634,000078: # GO TO SETT5
043635,000079:
043636,000080: 21,2116 41501 CS RCSFLAGS # IF G/C AUTOPILOT IS NOT FULLY ENABLED,
043637,000081: 21,2117 74675 MASK BIT14
043638,000082: 21,2120 27501 ADS RCSFLAGS # SET NORATE FLAG,
043639,000083: 21,2121 34672 CAF POSMAX
043640,000084: 21,2122 55332 TS HOLDFLAG # SET HOLDFLAG +,
043641,000085: 21,2123 34714 CAF ZERO # ZERO ERRORX, ERRORY, AND ERRORZ,
043642,000086: 21,2124 55567 TS ERRORX
043643,000087: 21,2125 55570 TS ERRORY
043644,000088: 21,2126 55571 TS ERRORZ
043645,000089: 21,2127 34675 CAF BIT14
043646,000090: 21,2130 00006 EXTEND
043647,000091: 21,2131 02031 RAND CHAN31 # AND CHECK FREE FUNCTION (BIT14 CHAN31).
043648,000092: 21,2132 00006 EXTEND
![]() |
Page 974 |
043650,000094: 21,2133 12144 BZF SETT5 # IF IN FREE MODE, GO TO SETT5.
043651,000095:
043652,000096: 21,2134 55465 TS T5PHASE # IF NOT IN FREE MODE,
043653,000097: 21,2135 37676 CAF OCT37766 # SCHEDULE REINITIALIZATION (FRESHDAP)
043654,000098: 21,2136 54030 TS TIME5 # IN 100 MS VIA T5RUPT
043655,000099:
043656,000100: 21,2137 02616 TCR ZEROJET # ZERO JET CHANNELS IN 14 MS VIA ZEROJET
043657,000101:
043658,000102: 21,2140 12334 TCF KMATRIX
043659,000103: 21,2141 37770 DELTATT OCT 37770 # 80MS (TIME5)
043660,000104: 21,2142 37776 DELTATT2 OCT 37776 # 20MS (TIME5)
043661,000105: 21,2143 37634 ONESEK DEC 16284 B-14 # 1 SEC(TIME5)
043662,000106: 21,2144 CHAN5 EQUALS 5
043663,000107: 21,2144 CHAN6 EQUALS 6
043664,000108: 21,2144 7671 PRIO34A = PRIO34
043665,000109:
043666,000110: # CHECK PHASE OF T5 PROGRAM
043667,000111:
043668,000112: # BECAUSE OF THE LENGTH OF THE T5 PROGRAM,IT HAS BEEN DIVIDED INTO
043669,000113: # THREE PARTS, T5PHASE1, T5PHASE2, AND THE JET SELECTION LOGIC,
043670,000114: # TO ALLOW FOR THE EXECUTION OF OTHER
043671,000115: # INTERRUPTS. T5PHASE IS ALSO USED IN THE INITIALIZATION OF THE AUTOPILOT
043672,000116: # VARIABLES AT TURN ON.
043673,000117:
043674,000118: # THE CODING OF T5PHASE IS...
043675,000119:
043676,000120: # + = INITIALIZE T5 RCS-CSM AUTOPILOT
043677,000121: # T5PHASE = +0 = PHASE2 OF THE T5 PROGRAM
043678,000122: # - = RESTART DAP
043679,000123: # -0 = PHASE1 OF THE T5 PROGRAM
043680,000124:
043681,000125: 21,2144 11465 SETT5 CCS T5PHASE
043682,000126: 21,2145 12530 TCF FRESHDAP # TURN ON AUTOPILOT
043683,000127: 21,2146 12645 TCF T5PHASE2 # BRANCH TO PHASE2 OF PROGRAM
043684,000128: 21,2147 12532 TCF REDAP # RESTART AUTOPILOT
043685,000129: 21,2150 55465 TS T5PHASE # PHASE 1 RESET FOR PHASE 2
043686,000130: 21,2151 30030 CA TIME5
043687,000131: 21,2152 55634 TS T5TIME # USED IN COMPENSATING FOR DELAYS IN T5
043688,000132: 21,2153 32142 CAF DELTATT2 # RESET FOR T5RUPT IN 20MS FOR PHASE2
043689,000133: 21,2154 54030 TS TIME5 # OF PROGRAM
043690,000134:
![]() |
Page 975 |
043692,000136: # IMU STATUS CHECK
043693,000137:
043694,000138: 21,2155 41321 CS IMODES33 # CHECK IMU STATUS
043695,000139: 21,2156 74705 MASK BIT6 # BIT6 = 0 IMU OK
043696,000140: 21,2157 10000 CCS A # BIT6 = 1 NO IMU
043697,000141: 21,2160 12174 TCF RATEFILT
043698,000142: 21,2161 41501 FREECHK CS RCSFLAGS # BIT14 INDICATES THAT RATES HAVE NOT BEEN
043699,000143: 21,2162 74675 MASK BIT14 # INITIALIZED
043700,000144: 21,2163 27501 ADS RCSFLAGS
043701,000145: 21,2164 34675 CAF BIT14 # NO ATTITUDE REFERENCE
043702,000146: 21,2165 55332 TS HOLDFLAG # STOP ANY AUTOMATIC STEERING AND PREPARE
043703,000147: # TO PICK UP CDU ANGLES UPON RESUMPTION OF
043704,000148: # ATTITUDE HOLD
043705,000149: 21,2166 00006 EXTEND
043706,000150: 21,2167 02031 RAND CHAN31 # CHECK FOR FREE MODE
043707,000151: 21,2170 00006 EXTEND
043708,000152: 21,2171 12403 BZF KRESUME1 # IN FREE MODE PROVIDE FREE CONTROL ONLY
043709,000153: 21,2172 12520 TCF REINIT # .....TILT...............................
043710,000154: 21,2173 00030 BITS4,5 OCT 30
043711,000155: 21,2174 31501 RATEFILT CA RCSFLAGS # SEE IF RATEFILTER HAS BEEN INITIALIZED
043712,000156: 21,2175 74675 MASK BIT14
043713,000157: 21,2176 00006 EXTEND # IF SO, PROCEED WITH RATE DERIVATION
043714,000158: 21,2177 12201 BZF +2
043715,000159: 21,2200 12334 TCF KMATRIX # IF NOT, SKIP RATE DERIVATION
043716,000160:
043717,000161: # RATE FILTER TIMING = 7.72 MS
043718,000162:
043719,000163: # RATE FILTER EQUATIONS
043720,000164:
043721,000165:
043722,000166: # DRHO = DELRHO - (.1)ADOT + (1 - GAIN1)DRHO
043723,000167: # -1
043724,000168:
043725,000169: # ADOT = ADOT + GAIN2 DRHO + KMJ DFT
043726,000170: # -1
043727,000171: # - * - -
043728,000172: # WHERE DELRHO = AMGB (CDU - CDU )
043729,000173: # -1
043730,000174:
043731,000175: 21,2201 34711 CAF TWO
043732,000176: 21,2202 55506 DRHOLOOP TS SPNDX
043733,000177: 21,2203 60000 DOUBLE
043734,000178: 21,2204 55507 TS DPNDX
043735,000179: 21,2205 51507 INDEX DPNDX
043736,000180: 21,2206 41552 CS DRHO # DRHO SCALED 180 DEGS
043737,000181: 21,2207 00006 EXTEND
043738,000182: 21,2210 51617 INDEX ATTKALMN # PICK UP DESIRED FILTER GAIN
043739,000183: 21,2211 73063 MP GAIN1
043740,000184: 21,2212 51507 INDEX DPNDX
043741,000185: 21,2213 21553 DAS DRHO # (1 -.064) DRHO
043742,000186: 21,2214 00006 EXTEND
![]() |
Page 976 |
043744,000188: 21,2215 51507 INDEX DPNDX
043745,000189: 21,2216 41534 DCS ADOT
043746,000190: 21,2217 53511 DXCH KMPAC # -(.1)ADOT
043747,000191: 21,2220 34676 CA QUARTER
043748,000192: 21,2221 02026 TC SMALLMP
043749,000193: 21,2222 53511 DXCH KMPAC
043750,000194: 21,2223 51507 INDEX DPNDX
043751,000195: 21,2224 21553 DAS DRHO
043752,000196: 21,2225 11506 CCS SPNDX
043753,000197: 21,2226 12202 TCF DRHOLOOP
043754,000198:
043755,000199: 21,2227 30032 CA CDUX # MEASURED BODY RATES--
043756,000200: 21,2230 57635 XCH RHO
043757,000201: 21,2231 00006 EXTEND
043758,000202: 21,2232 21635 MSU RHO # - * - -
043759,000203: 21,2233 40000 COM # DELRHO = AMGB (CDU - CDU )
043760,000204: # -1
043761,000205: 21,2234 22007 ZL
043762,000206: 21,2235 53516 DXCH DELTEMPX
043763,000207: 21,2236 30033 CA CDUY
043764,000208: 21,2237 57636 XCH RHO1
043765,000209: 21,2240 00006 EXTEND
043766,000210: 21,2241 21636 MSU RHO1
043767,000211: 21,2242 40000 COM
043768,000212: 21,2243 55502 TS T5TEMP # (CDUY - RHO1) SCALED 90 DEGS
043769,000213: 21,2244 00006 EXTEND
043770,000214: 21,2245 71640 MP AMGB1
043771,000215: 21,2246 21516 DAS DELTEMPX # DELTEMPX = (CDUX-RHO) + AMGB1(CDUY-RHO1)
043772,000216: # MUST BE DOUBLE PRECISION OR WILL LOSE
043773,000217: # PULSES
043774,000218: 21,2247 31641 CA AMGB4
043775,000219: 21,2250 00006 EXTEND
043776,000220: 21,2251 71502 MP T5TEMP
043777,000221: 21,2252 53520 DXCH DELTEMPY
043778,000222: 21,2253 31643 CA AMGB7
043779,000223: 21,2254 00006 EXTEND
043780,000224: 21,2255 71502 MP T5TEMP
043781,000225: 21,2256 53522 DXCH DELTEMPZ
043782,000226: 21,2257 30034 CA CDUZ
043783,000227: 21,2260 57637 XCH RHO2
043784,000228: 21,2261 00006 EXTEND
043785,000229: 21,2262 21637 MSU RHO2
043786,000230: 21,2263 40000 COM
043787,000231: 21,2264 55502 TS T5TEMP # (CDUZ - RHO2) SCALED 90 DEGS
043788,000232: 21,2265 00006 EXTEND
043789,000233: 21,2266 71642 MP AMGB5
043790,000234: 21,2267 21520 DAS DELTEMPY # DELTEMPY = AMGB4(CDUY-RHO1)
043791,000235: # + AMGB5(CDUZ-RHO2)
043792,000236: 21,2270 31644 CA AMGB8
043793,000237: 21,2271 00006 EXTEND
043794,000238:
![]() |
Page 977 |
043796,000240: 21,2272 71502 MP T5TEMP
043797,000241: 21,2273 21522 DAS DELTEMPZ # DELTEMPZ = AMGB7(CDUY-RHO1)
043798,000242: # + AMGB8(CDUZ-RHO2)
043799,000243: 21,2274 34711 CAF TWO
043800,000244: 21,2275 55506 ADOTLOOP TS SPNDX
043801,000245: 21,2276 60000 DOUBLE
043802,000246: 21,2277 55507 TS DPNDX
043803,000247: 21,2300 00006 EXTEND
043804,000248: 21,2301 51507 INDEX DPNDX
043805,000249: 21,2302 31516 DCA DELTEMPX
043806,000250: 21,2303 51507 INDEX DPNDX
043807,000251: 21,2304 21553 DAS DRHO
043808,000252: 21,2305 00006 EXTEND
043809,000253: 21,2306 51507 INDEX DPNDX
043810,000254: 21,2307 31516 DCA DELTEMPX
043811,000255: 21,2310 51507 INDEX DPNDX
043812,000256: 21,2311 21542 DAS MERRORX
043813,000257: 21,2312 51507 INDEX DPNDX
043814,000258: 21,2313 31552 CA DRHO
043815,000259: 21,2314 60000 DOUBLE # N.B.
043816,000260: 21,2315 60000 DOUBLE # N.B.
043817,000261: 21,2316 00006 EXTEND
043818,000262: 21,2317 51617 INDEX ATTKALMN # PICK UP DESIRED FILTER GAINS
043819,000263: 21,2320 73101 MP GAIN2
043820,000264: 21,2321 51507 INDEX DPNDX # ADOT + (.16)(.1)DRHO
043821,000265: 21,2322 21534 DAS ADOT # -1
043822,000266: 21,2323 51506 INDEX SPNDX # S/C TORQUE TO INERTIA RATIO
043823,000267: 21,2324 31620 CA KMJ # SCALED (450)(1600)/(57.3)(16384)=1/1.3
043824,000268: 21,2325 00006 EXTEND
043825,000269: 21,2326 51506 INDEX SPNDX
043826,000270: 21,2327 71547 MP DFT
043827,000271: 21,2330 51507 INDEX DPNDX
043828,000272: 21,2331 21534 DAS ADOT # KMJ(DFT)
043829,000273: 21,2332 11506 CCS SPNDX
043830,000274: 21,2333 12275 TCF ADOTLOOP # END CALCULATION OF VEHICLE RATES
043831,000275: 21,2334 31560 KMATRIX CA ATTSEC
043832,000276: 21,2335 74721 MASK LOW4
043833,000277: 21,2336 10000 CCS A
043834,000278: 21,2337 12345 TCF TENTHSEK
043835,000279: 21,2340 37671 CAF PRIO34 # CALL FOR 1 SEC UPDATE OF TRANSFORMATION
043836,000280: 21,2341 05027 TC NOVAC # MATRIX FROM GIMBAL AXES TO BODY AXES
043837,000281: 21,2342 E6,1510 EBANK= KMPAC
043838,000282: 21,2342 03444 44066 2CADR AMBGUPDT
043839,000283:
043840,000284: 21,2344 34334 CAF NINE
043841,000285:
043842,000286: 21,2345 55560 TENTHSEK TS ATTSEC
043843,000287:
![]() |
Page 978 |
043845,000289: # WHEN AUTOMATIC MANEUVERS ARE BEING PERFORMED, THE FOLLOWING ANGLE ADDITION MUST BE MADE TO PROVIDE A SMOOTH
043846,000290: # SEQUENCE OF ANGULAR COMMANDS TO THE AUTOPILOT--
043847,000291:
043848,000292: # CDUXD = CDUXD + DELCDUX (DOUBLE PRECISION)
043849,000293: # CDUYD = CDUYD + DELCDUY (DOUBLE PRECISION)
043850,000294: # CDUZD = CDUZD + DELCDUZ (DOUBLE PRECISION)
043851,000295:
043852,000296: # THE STEERING PROGRAMS-
043853,000297: # 1) ATTITUDE MANEUVER ROUTINE
043854,000298: # 2) LEM TRACKING
043855,000299:
043856,000300: # SHOULD GENERATE THE DESIRED ANGLES (CDUXD, CDUYD, CDUZD) AS WELL AS THE INCREMENTAL ANGLES (DELCDUX, DELCDUY,
043857,000301: # DELCDUZ) SO THAT THE GIMBAL ANGLE COMMANDS CAN BE INTERPOLATED BETWEEN UPDATES.
043858,000302:
043859,000303: # HOLDFLAG CODING-
043860,000304:
043861,000305: # + = GRAB PRESENT CDU ANGLES AND STORE IN THETADX, THETADY, THETADZ
043862,000306: # AND PERFORM ATTITUDE HOLD ABOUT THESE ANGLES
043863,000307: # ALSO IGNORE AUTOMATIC STEERING
043864,000308: # SET = + BY
043865,000309: # 1) INITIALIZATION PHASE OF AUTOPILOT
043866,000310: # 2) OCCURANCE OF RHC COMMANDS
043867,000311: # 3) FREE MODE
043868,000312: # 4) SWITCH OVER TO ATTITUDE HOLD FROM AUTO
043869,000313: # WHILE DOING AUTOMATIC STEERING (IN THIS CASE
043870,000314: # HOLDFLAG IS NOT ACTUALLY SET TO +, BUT THE LOGIC
043871,000315: # FUNCTIONS AS IF IT WERE.)
043872,000316: # 5) S/C CONTROL SWITCH IN SCS
043873,000317: # 6) IMU POWER OFF
043874,000318:
043875,000319: # +0 = IN ATTITUDE HOLD ABOUT A PREVIOUSLY ESTABLISHED REFERENCE
043876,000320: #
043877,000321: # - = PERFORMING AUTOMATIC MANEUVER
043878,000322:
043879,000323: # -0 = NOT USED AT PRESENT
043880,000324:
043881,000325: # NOTE THAT THIS FLAG MUST BE SET = - BY THE STEERING PROGRAM IF IT IS TO COMMAND THE AUTOPILOT.
043882,000326: # SINCE ASTRONAUT ACTION MAY CHANGE THE HOLDFLAG SETTING, IT SHOULD BE MONITORED BY THE STEERING PROGRAM TO
043883,000327: # DETERMINE IF THE AUTOMATIC SEQUENCE HAS BEEN INTERRUPTED AND IF SO, TAKE APPROPRIATE ACTION.
043884,000328:
043885,000329: 21,2346 41332 CS HOLDFLAG
043886,000330: 21,2347 00006 EXTEND
043887,000331: 21,2350 62375 BZMF DACNDLS # IF HOLDFLAG +0,-0,+, BYPASS AUTOMATIC
043888,000332: # COMMANDS
043889,000333: 21,2351 34711 DCDUINCR CAF TWO
043890,000334: 21,2352 55506 DELOOP TS SPNDX
043891,000335: 21,2353 60000 DOUBLE
043892,000336: 21,2354 55507 TS DPNDX
043893,000337: 21,2355 00006 EXTEND
043894,000338: 21,2356 50000 INDEX A
043895,000339: 21,2357 31647 DCA CDUXD
![]() |
Page 979 |
043897,000341: 21,2360 53511 DXCH KMPAC
043898,000342: 21,2361 00006 EXTEND
043899,000343: 21,2362 51507 INDEX DPNDX
043900,000344: 21,2363 31576 DCA DELCDUX
043901,000345: 21,2364 02040 TC DPADD
043902,000346: 21,2365 00006 EXTEND
043903,000347: 21,2366 31511 DCA KMPAC
043904,000348: 21,2367 51506 INDEX SPNDX
043905,000349: 21,2370 55572 TS THETADX
043906,000350: 21,2371 51507 INDEX DPNDX
043907,000351: 21,2372 53647 DXCH CDUXD
043908,000352: 21,2373 11506 CCS SPNDX
043909,000353: 21,2374 12352 TCF DELOOP
043910,000354:
![]() |
Page 980 |
043912,000356: # RCS-CSM AUTOPILOT ATTITUDE ERROR DISPLAY
043913,000357:
043914,000358: # THREE TYPES OF ATTITUDE ERRORS MAY BE DISPLAYED ON THE FDAI-
043915,000359:
043916,000360: # MODE 1) AUTOPILOT FOLLOWING ERRORS SELECTED BY V61E
043917,000361: # GENERATED INTERNALLY BY THE AUTOPILOT
043918,000362:
043919,000363: # MODE 2) TOTAL ATTITUDE ERRORS SELECTED BY V62E
043920,000364: # WITH RESPECT TO THE CONTENTS OF N22
043921,000365:
043922,000366: # MODE 3) TOTAL ASTRONAUT ATTITUDE ERRORS SELECTED BY V63E
043923,000367: # WITH RESPECT TO THE CONTENTS OF N17
043924,000368:
043925,000369: # MODE 1 IS PROVIDED AS A MONITOR OF THE RCS DAP AND ITS ABILITY TO TRACK AUTOMATIC STEERING COMMANDS. IN THIS
043926,000370: # MODE THE ATTITUDE ERRORS WILL BE ZEROED WHEN THE CMC MODE SWITCH IS IN FREE
043927,000371:
043928,000372: # MODE 2 IS PROVIDED TO ASSIST THE CREW IN MANUALLY MANEUVERING THE S/C TO THE ATTITUDE (GIMBAL ANGLES) SPECIFIED
043929,000373: # IN N22. THE ATTITUDE ERRORS WRT THESE ANGLES AND THE CURRENT CDU ANGLES ARE RESOLVED INTO S/C CONTROL AXES
043930,000374: # AS A FLY-TO INDICATOR.
043931,000375:
043932,000376: # MODE 3 IS PROVIDED TO ASSIST THE CREW IN MANUALLY MANEUVERING THE S/C TO THE ATTITUDE (GIMBAL ANGLES) SPECIFIED
043933,000377: # IN N17. THE ATTITUDE ERRORS WRT THESE ANGLES AND THE CURRENT CDU ANGLES ARE RESOLVED INTO S/C CONTROL AXES
043934,000378: # AS A FLY-TO INDICATOR.
043935,000379:
043936,000380: # V60 IS PROVIDED TO LOAD N17 WITH A SNAPSHOT OF THE CURRENT CDU ANGLES, THUS SYNCHRONIZING THE MODE 3 DISPLAY
043937,000381: # WITH THE CURRENT S/C ATTITUDE. THIS VERB MAY BE USED AT ANY TIME.
043938,000382:
043939,000383: # THESE DISPLAYS WILL BE AVAILIABLE IN ANY MODE (AUTO, HOLD, FREE, G+N, OR SCS) ONCE THE RCS DAP HAS BEEN
043940,000384: # INITIATED VIA V46E. MODE 1, HOWEVER, WILL BE MEANINGFUL ONLY IN G+N AUTO OR HOLD. THE CREW MAY PRESET (VIA
043941,000385: # V25N17) AN ATTITUDE REFERENCE (DESIRED GIMBAL ANGLES) INTO N17 AT ANY TIME.
043942,000386:
043943,000387: 21,2375 41501 DACNDLS CS RCSFLAGS # ALTERNATE BETWEEN FDAIDSP1 AND FDAIDSP2
043944,000388: 21,2376 74707 MASK BIT4
043945,000389: 21,2377 00006 EXTEND
043946,000390: 21,2400 13144 BZF FDAIDSP2
043947,000391:
043948,000392: 21,2401 27501 FDAIDSP1 ADS RCSFLAGS
043949,000393: 21,2402 02404 TC NEEDLER
043950,000394: 21,2403 15222 KRESUME1 TCF RESUME # END PHASE 1
043951,000395:
![]() |
Page 981 |
043953,000397: # FDAI ATTITUDE ERROR DISPLAY SUBROUTINE
043954,000398:
043955,000399: # PROGRAM DESCRIPTION: D. KEENE 5/24/67
043956,000400:
043957,000401: # THIS SUBROUTINE IS USED TO DISPLAY ATTITUDE ERRORS ON THE FDAI VIA THE DIGITAL TO ANALOG CONVERTERS (DACS)
043958,000402: # IN THE CDUS. CARE IS TAKEN TO METER OUT THE APPROPRIATE NUMBER OF PULSES TO THE IMU ERROR COUNTERS AND PREVENT
043959,000403: # OVERFLOW, TO CONTROL THE RELAY SEQUENCING, AND TO AVOID INTERFERENCE WITH THE COARSE ALIGN LOOP WHICH ALSO USES
043960,000404: # THE DACS.
043961,000405:
043962,000406: # CALLING SEQUENCE:
043963,000407:
043964,000408: # DURING THE INITIALIZATION SECTIONOF THE USER'S PROGRAM, BIT3 OF RCSFLAGS SHOULD BE SET TO INITIATE THE
043965,000409: # TURN-ON SEQUENCE WITHIN THE NEEDLES PROGRAM:
043966,000410:
043967,000411: # CS RCSFLAGS IN EBANK6
043968,000412: # MASK BIT3
043969,000413: # ADS RCSFLAGS
043970,000414:
043971,000415: # THEREAFTER, THE ATTITUDE ERRORS GENERATED BY THE USER SHOULD BE TRANSFERED TO THE FOLLOWING LOCATIONS IN EBANK6:
043972,000416:
043973,000417: # AK SCALED 180 DEGREES NOTE: THESE LOCATIONS ARE SUBJECT
043974,000418: # AK1 SCALED 180 DEGREES TO CHANGE
043975,000419: # AK2 SCALED 180 DEGREES
043976,000420:
043977,000421: # FULL SCALED DEFLECTION CORRESPONDS TO 16 7/8 DEGREES OF ATTITUDE ERROR
043978,000422: # (= 384 BITS IN IMU ERROR COUNTER)
043979,000423:
043980,000424: # A CALL TO NEEDLER WILL THEN UPDATE THE DISPLAY:
043981,000425:
043982,000426: # INHINT
043983,000427: # TC IBNKCALL NOTE: EBANK SHOULD BE SET TO E6
043984,000428: # CADR NEEDLER
043985,000429: # RELINT
043986,000430:
043987,000431: # THIS PROCESS SHOULD BE REPEATED EACH TIME THE ERRORS ARE UPDATED. AT LEAST 3 PASSES THRU THE PROGRAM ARE
043988,000432: # REQUIRED BEFORE ANYTHING IS ACTUALLY DISPLAYED ON THE ERROR METERS.
043989,000433: # NOTE: EACH CALL TO NEEDLER MUST BE SEPARATED BY AT LEAST 50MS TO ASSURE PROPER RELAY SEQUENCING.
043990,000434:
043991,000435: # ERASABLE USED:
043992,000436: # AK CDUXCMD
043993,000437: # AK1 CDUYCMD
043994,000438: # AK2 CDUZCMD
043995,000439: # EDRIVEX A,L,Q
043996,000440: # EDRIVEY T5TEMP
043997,000441: # EDRIVEZ SPNDX
043998,000442:
043999,000443: # SWITCHES: RCSFLAGS BITS 3,2
044000,000444:
044001,000445: # I/O CHANNELS: CHAN12 BIT 4 (COARSE ALIGN - READ ONLY)
![]() |
Page 982 |
044003,000447: # CHAN12 BIT 6 (IMU ERROR COUNTER ENABLE)
044004,000448: # CHAN14 BIT 13,14,15 (DAC ACTIVITY)
044005,000449:
044006,000450: # SIGN CONVENTION< AK = THETAC - THETA
044007,000451: # WHERE THETAC = COMMAND ANGLE
044008,000452: # THETA = PRESENT ANGLE
044009,000453:
044010,000454: 21,2404 34707 NEEDLER CAF BIT4 # CHECK FOR COARSE ALIGN ENABLE
044011,000455: 21,2405 00006 EXTEND # IF IN COARSE ALIGN DO NOT USE IMU
044012,000456: 21,2406 02012 RAND CHAN12 # ERROR COUNTERS. DONT USE NEEDLES
044013,000457: 21,2407 00006 EXTEND
044014,000458: 21,2410 12415 BZF NEEDLER1
044015,000459: 21,2411 41501 CS RCSFLAGS # SET BIT3 FOR INITIALIZATION PASS
044016,000460: 21,2412 74710 MASK BIT3
044017,000461: 21,2413 27501 ADS RCSFLAGS
044018,000462: 21,2414 00002 TC Q
044019,000463:
044020,000464: 21,2415 31501 NEEDLER1 CA RCSFLAGS
044021,000465: 21,2416 76211 MASK SIX
044022,000466: 21,2417 00006 EXTEND
044023,000467: 21,2420 12455 BZF NEEDLES3
044024,000468: 21,2421 74710 MASK BIT3
044025,000469: 21,2422 00006 EXTEND
044026,000470: 21,2423 12446 BZF NEEDLER2 # BIT3 = 0, BIT2 = 1
044027,000471:
044028,000472: 21,2424 44705 CS BIT6 # FIRST PASS BIT3 = 1
044029,000473: 21,2425 00006 EXTEND # DISABLE IMU ERROR COUNTER TO ZERO DACS
044030,000474: 21,2426 03012 WAND CHAN12 # MUST WAIT AT LEAST 60 MS BEFORE
044031,000475: 21,2427 44714 NEEDLE11 CS ZERO # ENABLING COUNTERS.
044032,000476: 21,2430 55476 TS AK # ZERO THE INPUTS ON FIRST PASS
044033,000477: 21,2431 55477 TS AK1
044034,000478: 21,2432 55500 TS AK2
044035,000479: 21,2433 55503 TS EDRIVEX # ZERO THE DISPLAY REGISTERS
044036,000480: 21,2434 55504 TS EDRIVEY
044037,000481: 21,2435 55505 TS EDRIVEZ
044038,000482: 21,2436 54050 TS CDUXCMD # ZERO THE OUT COUNTERS
044039,000483: 21,2437 54051 TS CDUYCMD
044040,000484: 21,2440 54052 TS CDUZCMD
044041,000485: 21,2441 46211 CS SIX # RESET RCSFLAGS FOR PASS2
044042,000486: 21,2442 71501 MASK RCSFLAGS
044043,000487: 21,2443 64711 AD BIT2
044044,000488: 21,2444 55501 TS RCSFLAGS
044045,000489: 21,2445 00002 TC Q # END PASS1
044046,000490:
044047,000491: 21,2446 34705 NEEDLER2 CAF BIT6 # ENABLE IMU ERROR COUNTERS
044048,000492: 21,2447 00006 EXTEND
044049,000493: 21,2450 05012 WOR CHAN12
044050,000494: 21,2451 46211 CS SIX # RESET RCSFLAGS TO DISPLAY ATTITUDE
![]() |
Page 983 |
044052,000496: 21,2452 71501 MASK RCSFLAGS # ERRORS WAIT AT LEAST 4 MS FOR
044053,000497: 21,2453 55501 TS RCSFLAGS # RELAY CLOSURE
044054,000498: 21,2454 00002 TC Q
044055,000499: 21,2455 34705 NEEDLES3 CAF BIT6 # CHECK TO SEE IF IMU ERROR COUNTER
044056,000500: 21,2456 00006 EXTEND # IS ENABLED
044057,000501: 21,2457 02012 RAND CHAN12
044058,000502: 21,2460 00006 EXTEND # IF NOT RECYCLE NEEDLES
044059,000503: 21,2461 12411 BZF NEEDLER +5
044060,000504:
044061,000505: 21,2462 34711 NEEDLES CAF TWO
044062,000506: 21,2463 55506 DACLOOP TS SPNDX
044063,000507: 21,2464 44676 CS QUARTER
044064,000508: 21,2465 00006 EXTEND
044065,000509: 21,2466 51506 INDEX SPNDX
044066,000510: 21,2467 71476 MP AK
044067,000511: 21,2470 54001 TS L
044068,000512: 21,2471 10000 CCS A
044069,000513: 21,2472 32526 CA DACLIMIT
044070,000514: 21,2473 12475 TCF +2
044071,000515: 21,2474 42526 CS DACLIMIT
044072,000516: 21,2475 60001 AD L
044073,000517: 21,2476 55502 TS T5TEMP # OVFLO CHK
044074,000518: 21,2477 12503 TCF +4
044075,000519: 21,2500 50000 INDEX A # ON OVERFLOW LIMIT OUTPUT TO +-384
044076,000520: 21,2501 32526 CAF DACLIMIT
044077,000521: 21,2502 54001 TS L
044078,000522: 21,2503 51506 INDEX SPNDX
044079,000523: 21,2504 41503 CS EDRIVEX # CURRENT VALUE OF DAC
044080,000524: 21,2505 60001 AD L
044081,000525: 21,2506 51506 INDEX SPNDX
044082,000526: 21,2507 26050 ADS CDUXCMD
044083,000527: 21,2510 51506 INDEX SPNDX
044084,000528: 21,2511 23503 LXCH EDRIVEX
044085,000529: 21,2512 11506 CCS SPNDX
044086,000530: 21,2513 12463 TCF DACLOOP
044087,000531: 21,2514 37707 CAF 13,14,15
044088,000532: 21,2515 00006 EXTEND
044089,000533: 21,2516 05014 WOR CHAN14 # SET DAC ACTIVITY BITS
044090,000534: 21,2517 00002 TC Q
044091,000535:
044092,000536: 21,2520 32524 REINIT CAF DELAY200 # ........TILT LOGIC
044093,000537: 21,2521 54030 TS TIME5 # REINITIALIZE DAP IN 200MS
044094,000538: 21,2522 55465 TS T5PHASE
044095,000539: 21,2523 15222 TCF RESUME
044096,000540: 21,2524 37754 DELAY200 DEC 16364 B-14 # 200MS
044097,000541: 21,2525 77177 DEC -384 B-14
044098,000542:
![]() |
Page 984 |
044100,000544: 21,2526 37200 DACLIMIT DEC 16000 B-14
044101,000545: 21,2527 00600 DEC 384 B-14
044102,000546:
![]() |
Page 985 |
044104,000548: # INITIALIZATION PROGRAM FOR RCS-CSM AUTOPILOT
044105,000549:
044106,000550: # THE FOLLOWING QUANTITIES WILL BE ZEROED AND SHOULD APPEAR IN CONSECUTIVE LOCATIONS IN MEMORY AFTER WBODY
044107,000551:
044108,000552: # WBODY (+1) DFT TAU2
044109,000553: # WBODY1 (+1) DFT1 BIAS
044110,000554: # WBODY2 (+1) DFT2 BIAS1
044111,000555: # ADOT (+1) DRHO (+1) BIAS2
044112,000556: # ADOT1 (+1) DRHO1 (+1) ERRORX
044113,000557: # ADOT2 (+1) DRHO2 (+1) ERRORY
044114,000558: # MERRORX (+1) ATTSEC ERRORZ
044115,000559: # MERRORY (+1) TAU
044116,000560: # MERRORZ (+1) TAU1
044117,000561:
044118,000562: 21,2530 34712 FRESHDAP CAF ONE # RESET HOLDFLAG TO STOP AUTOMATIC
044119,000563: 21,2531 55332 TS HOLDFLAG # STEERING AND PREPARE TO PICK UP AN
044120,000564: # ATTITUDE HOLD REFERENCE
044121,000565:
044122,000566: 21,2532 04633 REDAP TC IBNKCALL # DECODE DAPDATR1, DAPDATR2 FOR DEADBANDS
044123,000567: 21,2533 40146 CADR S41.2 # RATES, QUADFAILS, QUAD MANAGEMENT
044124,000568:
044125,000569: 21,2534 04633 TC IBNKCALL # DECODE IXX, IAVG AND CONVERT
044126,000570: 21,2535 40277 CADR S40.14 # TO AUTOPILOT GAINS
044127,000571:
044128,000572: 21,2536 32607 CAF NO.T5VAR # NO. LOCATIONS TO BE ZEROED MINUS ONE
044129,000573: 21,2537 55506 ZEROT5 TS SPNDX # ZERO ALL NECESSARY ERASABLE REGISTERS
044130,000574: 21,2540 34714 CAF ZERO
044131,000575: 21,2541 51506 INDEX SPNDX
044132,000576: 21,2542 55525 TS WBODY
044133,000577: 21,2543 11506 CCS SPNDX
044134,000578: 21,2544 12537 TCF ZEROT5
044135,000579: 21,2545 02616 TCR ZEROJET
044136,000580:
044137,000581: 21,2546 44714 CS ZERO
044138,000582: 21,2547 55633 TS CHANTEMP # INITIALIZE MINIMUM IMPULSE CONTROL
044139,000583:
044140,000584: 21,2550 55632 TS CH31TEMP # INITIALIZE RHC POSITION MEMORY FOR
044141,000585: # MANUAL RATE MODES
044142,000586:
044143,000587: 21,2551 32610 CAF =.24
044144,000588: 21,2552 55654 TS SLOPE # INITIALIZE SWITCHING LOGIC SLOPE
044145,000589:
044146,000590: 21,2553 34710 CAF FOUR
044147,000591: 21,2554 55634 TS T5TIME # PHASE 0 RESETS FOR PHASE 2 INTERRUPT IN
044148,000592: # 60 MS. PHASE 2 RESETS FOR PHASE 1 RUPT
044149,000593: # IN (80MS - T5TIME(40MS)). THEREFORE
044150,000594: # PHASE 1 (RATEFILTER) BEGINS CYCLING 100
044151,000595: # MS FROM NOW AND EVERY 100MS THEREAFTER
044152,000596:
044153,000597: 21,2555 34717 CAF ELEVEN
044154,000598: 21,2556 55617 TS ATTKALMN # RESET TO PICK UP KALMAN FILTER GAINS
044155,000599: # TO INITIALIZE THE S/C ANGULAR RATES
![]() |
Page 986 |
044157,000601: 21,2557 30032 CA CDUX
044158,000602: 21,2560 55635 TS RHO
044159,000603: 21,2561 30033 CA CDUY
044160,000604: 21,2562 55636 TS RHO1
044161,000605: 21,2563 30034 CA CDUZ
044162,000606: 21,2564 55637 TS RHO2
044163,000607: 21,2565 34714 CAF ZERO # RESET AUTOPILOT TO BEGIN EXECUTING
044164,000608: 21,2566 55465 TS T5PHASE # PHASE2 OF PROGRAM
044165,000609:
044166,000610: 21,2567 41321 CS IMODES33 # CHECK IMU STATUS
044167,000611: 21,2570 74705 MASK BIT6 # IF BIT6 = 0 IMU IN FINE ALIGN
044168,000612: 21,2571 10000 CCS A # IF BIT6 = 1 IMU NOT READY
044169,000613: 21,2572 12576 TCF IMUAOK
044170,000614: 21,2573 55617 TS ATTKALMN # CANNOT USE IMU
044171,000615: 21,2574 32612 CAF RCSINITB # PROVIDE FREE CONTROL ONLY
044172,000616: 21,2575 12603 TCF RCSSWIT # DONT START UP RATE FILTER
044173,000617: # SIGNAL NO RATE FILTER
044174,000618:
044175,000619: 21,2576 37671 IMUAOK CAF PRIO34 # START MATRIX INITIALIZATION
044176,000620: 21,2577 05027 TC NOVAC # BYPASS IF IMU NOT IN FINE ALIGN
044177,000621: 21,2600 E6,1510 EBANK= KMPAC
044178,000622: 21,2600 03444 44066 2CADR AMBGUPDT
044179,000623:
044180,000624: 21,2602 32611 CAF RCSINIT # CLEAR BIT14 -ASSUME WE HAVE A GOOD IMU
044181,000625: 21,2603 55501 RCSSWIT TS RCSFLAGS # CLEAR BIT1 -INITIALIZE T6 PROGRAM
044182,000626: # SET BIT3 -INITIALIZE NEEDLES
044183,000627: # CLEAR BIT4 -RESET FOR FDAIDSP1
044184,000628: 21,2604 32613 CAF T5WAIT60 # NEXT T5RUPT 60 MS FROM NOW TO ALLOW IMU
044185,000629: # ERROR COUNTER TO ZERO.
044186,000630: # (MINIMUM DELAY = 15 MS)
044187,000631: 21,2605 54030 TS TIME5 # SINCE ATTKALMN IS +11, PROGRAM WILL THEN
044188,000632: 21,2606 05222 TC RESUME # PICK UP THE KALMAN FILTER GAINS. RATE
044189,000633: # FILTER WILL BEGIN OPERATING ZOOMS FROM
044190,000634: # NOW
044191,000635:
044192,000636: # CONSTANTS USED IN INITIALIZATION PROGRAM
044193,000637:
044194,000638: 21,2607 00044 NO.T5VAR DEC 36 B-14
044195,000639: 21,2610 07534 =.24 DEC .24 # = SLOPE OF 0.6/SEC
044196,000640: 21,2611 00004 RCSINIT OCT 00004
044197,000641: 21,2612 20004 RCSINITB OCT 20004
044198,000642: 21,2613 37772 T5WAIT60 DEC 16378 B-14 # = 6 CS
044199,000643: 21,2614 E6,1510 EBANK= KMPAC
044200,000644: 21,2614 03644 36066 T6ADDR 2CADR T6START
044201,000645:
044202,000646: 21,2616 34717 ZEROJET CAF ELEVEN # ZERO BLAST2, BLAST1, BLAST, YWORD2,
044203,000647: 21,2617 55506 TS SPNDX # YWORD1, PWORD2, PWORD1, RWORD2,
044204,000648: 21,2620 34714 CAF ZERO # AND RWORD1.
044205,000649:
![]() |
Page 987 |
044207,000651: 21,2621 51506 INDEX SPNDX
044208,000652: 21,2622 55451 TS RWORD1
044209,000653: 21,2623 11506 CCS SPNDX
044210,000654: 21,2624 12617 TCF ZEROJET +1
044211,000655:
044212,000656: 21,2625 34710 CAF FOUR
044213,000657: 21,2626 55462 TS BLAST1 +1
044214,000658: 21,2627 34717 CAF ELEVEN
044215,000659: 21,2630 55464 TS BLAST2 +1
044216,000660:
044217,000661: 21,2631 44712 CS BIT1
044218,000662: 21,2632 71501 MASK RCSFLAGS
044219,000663: 21,2633 55501 TS RCSFLAGS # RESET BIT1 OF RCSFLAGS TO 0
044220,000664:
044221,000665: 21,2634 00006 EXTEND
044222,000666: 21,2635 32615 DCA T6ADDR
044223,000667: 21,2636 53311 DXCH T6LOC
044224,000668: 21,2637 33034 CAF =+14MS # ENABLE T6RUPT TO SHUT OFF JETS IN 14 MS.
044225,000669: 21,2640 54031 TS TIME6
044226,000670: 21,2641 34674 CAF BIT15
044227,000671: 21,2642 00006 EXTEND
044228,000672: 21,2643 05013 WOR CHAN13
044229,000673:
044230,000674: 21,2644 00002 TC Q
044231,000675:
044232,000676: 21,2645 11617 T5PHASE2 CCS ATTKALMN # IF (+) INITIALIZE RATE ESTIMATE
044233,000677: 21,2646 13132 TCF KALUPDT
044234,000678: 21,2647 12651 TCF +2 # ONLY IF ATTKALMN POSITIVE
044235,000679: 21,2650 12651 TCF +1
044236,000680: 21,2651 32142 CA DELTATT2 # RESET FOR PHASE3 IN 20 MS
044237,000681: 21,2652 56030 XCH TIME5 # (JET SELECTION LOGIC)
044238,000682: 21,2653 27634 ADS T5TIME # TO COMPENSATE FOR DELAYS IN T5RUPT
044239,000683: 21,2654 31501 CA RCSFLAGS # IF A HIGH RATE AUTO MANEUVER IS IN
044240,000684: 21,2655 74674 MASK BIT15 # PROGRESS (BIT 15 OF RCSFLAGS SET), SET
044241,000685: 21,2656 00006 EXTEND # ATTKALMN TO -1
044242,000686: 21,2657 12661 BZF NOHIAUTO # OTHERWISE SET ATTKALMN TO 0.
044243,000687: 21,2660 44712 CS ONE
044244,000688: 21,2661 55617 NOHIAUTO TS ATTKALMN
044245,000689:
![]() |
Page 988 |
044247,000691: # MANUAL ROTATION COMMANDS
044248,000692:
044249,000693: 21,2662 43016 CS OCT01760 # RESET FORCED FIRING BITS (BITS 10 TO 5
044250,000694: 21,2663 71501 MASK RCSFLAGS # OF RCSFLAGS) TO ZERO
044251,000695: 21,2664 55501 TS RCSFLAGS
044252,000696:
044253,000697: 21,2665 00006 EXTEND
044254,000698: 21,2666 00031 READ CHAN31
044255,000699: 21,2667 54001 TS L
044256,000700: 21,2670 31632 CA CH31TEMP
044257,000701: 21,2671 00006 EXTEND
044258,000702: 21,2672 06001 RXOR LCHAN
044259,000703: 21,2673 73022 MASK MANROT # = OCT00077
044260,000704: 21,2674 00006 EXTEND
044261,000705: 21,2675 62710 BZMF NOCHANGE
044262,000706:
044263,000707: 21,2676 22000 LXCH A
044264,000708: 21,2677 55632 TS CH31TEMP # SAVE CONTENTS OF CHANNEL 31 IN CH31TEMP
044265,000709:
044266,000710: 21,2700 30001 CA L
044267,000711: 21,2701 00006 EXTEND
044268,000712: 21,2702 74706 MP BIT5 # PUT BITS 6-1 OF A IN BITS 10-5 OF L
044269,000713: 21,2703 30001 CA L
044270,000714: 21,2704 27501 ADS RCSFLAGS # SET FORCED FIRING BITS FOR AXES WITH
044271,000715: # WITH CHANGES IN COMMAND. BITS 10,9 FOR
044272,000716: # ROLL, BITS 8,7 FOR YAW, BITS 6,5 FOR
044273,000717: # PITCH
044274,000718:
044275,000719: 21,2705 41501 CS RCSFLAGS # SET RATE DAMPING FLAGS (BITS 13,12, AND
044276,000720: 21,2706 73023 MASK OCT16000 # 11 OF RCSFLAGS)
044277,000721: 21,2707 27501 ADS RCSFLAGS
044278,000722:
044279,000723: 21,2710 41632 NOCHANGE CS CH31TEMP
044280,000724: 21,2711 73022 MASK MANROT
044281,000725: 21,2712 00006 EXTEND
044282,000726: 21,2713 63234 BZMF AHFNOROT # IF NO MANUAL COMMANDS, GO TO AHFNOROT
044283,000727:
044284,000728: 21,2714 55332 TS HOLDFLAG # SET HOLDFLAG +
044285,000729:
044286,000730: 21,2715 03114 TC STICKCHK # WHEN THE RHC IS OUT OF DETENT, PMANNDX,
044287,000731: # YMANNDX, AND RMANNDX ARE ALL SET, BY
044288,000732: # MEANS OF STICKCHK, TO 0, 1, OR 2 FOR NO,
044289,000733: # +, OR - ROTATION RESPECTIVELY AS
044290,000734: # COMMANDED BY THE RHC.
044291,000735:
044292,000736: # HOWEVER, IT IS WELL TO NOTE THAT AFTER
044293,000737: # THE RHC IS RETURNED TO DETENT, THE
044294,000738: # PROGRAM BRANCHES TO AHFNOROT AND AVOIDS
044295,000739: # STICKCHK SO PMANNDX, YMANNDX, AND
044296,000740: # RMANNDX ARE NOT RESET TO ZERO BUT RATHER
044297,000741: # LEFT SET TO THEIR LAST OUT OF DETENT
![]() |
Page 989 |
044299,000743: # VALUES.
044300,000744:
044301,000745: 21,2716 40075 CS FLAGWRD1 # SET STIKFLAG TO INFORM STEERING
044302,000746: 21,2717 74675 MASK BIT14 # PROGRAMS (P20) THAT ASTRONAUT HAS
044303,000747: 21,2720 26075 ADS FLAGWRD1 # ASSUMED ROTATIONAL CONTROL OF SPACECRAFT
044304,000748:
044305,000749: 21,2721 34675 CAF BIT14
044306,000750: 21,2722 00006 EXTEND
044307,000751: 21,2723 02031 RAND CHAN31
044308,000752: 21,2724 00006 EXTEND
044309,000753: 21,2725 63035 BZMF FREEFUNC
044310,000754:
044311,000755: 21,2726 31501 CA RCSFLAGS # EXAMINE RCSFLAGS TO SEE IF RATE FILTER
044312,000756: 21,2727 74675 MASK BIT14 # HAS BEEN INITIALIZED
044313,000757: 21,2730 10000 CCS A # IF SO, PROCEED WITH MANUAL RATE COMMANDS
044314,000758: 21,2731 12520 TCF REINIT # .....TILT, RECYCLE TO INITIALIZE FILTER
044315,000759:
044316,000760: 21,2732 44715 CS FIVE # IF MANUAL MANEUVER IS AT HIGH RATE, SET
044317,000761: 21,2733 61130 AD RATEINDX # ATTKALMN TO -1.
044318,000762: 21,2734 00006 EXTEND # OTHERWISE, LEAVE ATTKALMN ALONE.
044319,000763: 21,2735 62740 BZMF +3
044320,000764: 21,2736 44712 CS ONE
044321,000765: 21,2737 55617 TS ATTKALMN
044322,000766: 21,2740 34711 CAF TWO # AUTO-HOLD MANUAL ROTATION
044323,000767: 21,2741 55506 SETWBODY TS SPNDX
044324,000768: 21,2742 60000 DOUBLE
044325,000769: 21,2743 55507 TS DPNDX
044326,000770: 21,2744 51506 INDEX SPNDX # RMANNDX = 0 NO ROTATION
044327,000771: 21,2745 31656 CA RMANNDX # = 1 + ROTATION
044328,000772: 21,2746 00006 EXTEND # = 2 - ROTATION
044329,000773: 21,2747 12771 BZF NORATE # IF NO ROTATION COMMAND ON THIS AXIS,
044330,000774: # GO TO NORATE.
044331,000775:
044332,000776: 21,2750 61130 AD RATEINDX # RATEINDX = 0 0.05 DEG/SEC
044333,000777: 21,2751 54002 TS Q # = 2 0.2 DEG/SEC
044334,000778: 21,2752 50002 INDEX Q # = 4 0.5 DEG/SEC
044335,000779: 21,2753 33023 CA MANTABLE -1 # = 6 4.0 DEG/SEC
044336,000780: 21,2754 00006 EXTEND
044337,000781: 21,2755 74702 MP BIT9 # MULTIPLY MANTABLE BY 2 TO THE -6
044338,000782: 21,2756 51507 INDEX DPNDX # TO GET COMMANDED RATE.
044339,000783: 21,2757 53526 DXCH WBODY # SET WBODY TO COMMANDED RATE.
044340,000784:
044341,000785: 21,2760 31501 CA RCSFLAGS
044342,000786: 21,2761 73023 MASK OCT16000 # IS RATE DAMPING COMPLETED (BITS 13,12 AND
044343,000787: 21,2762 00006 EXTEND # 11 OF RCSFLAGS ALL ZERO.) IF SO, GO TO
044344,000788: 21,2763 13001 BZF MERUPDAT # MERUPDAT TO UPDATE CUMULATIVE ATTITUDE
044345,000789: # ERROR.
044346,000790:
![]() |
Page 990 |
044348,000792: 21,2764 34714 ZEROER CA ZERO # ZEROER ZEROS MERRORS
044349,000793: 21,2765 22007 ZL
044350,000794: 21,2766 51507 INDEX DPNDX
044351,000795: 21,2767 53542 DXCH MERRORX
044352,000796: 21,2770 13007 TCF SPNDXCHK
044353,000797:
044354,000798: 21,2771 22007 NORATE ZL
044355,000799: 21,2772 51507 INDEX DPNDX
044356,000800: 21,2773 53526 DXCH WBODY # ZERO WBODY FOR THIS AXIS
044357,000801: 21,2774 31501 CA RCSFLAGS
044358,000802: 21,2775 73023 MASK OCT16000
044359,000803: 21,2776 00006 EXTEND # IS RATE DAMPING COMPLETED
044360,000804: 21,2777 13007 BZF SPNDXCHK # YES, KEEP CURRENT MERRORX GO TO SPNDXCHK
044361,000805: 21,3000 12764 TCF ZEROER # NO, GO TO ZEROER
044362,000806:
044363,000807: 21,3001 50002 MERUPDAT INDEX Q # MERRORX=MERRORX+MEASURED CHANGE IN ANGLE
044364,000808: 21,3002 43023 CS MANTABLE -1 # -COMMANDED CHANGE IN ANGLE
044365,000809: 21,3003 00006 EXTEND # THE ADDITION OF MEASURED CHANGE IN ANGLE
044366,000810: 21,3004 74704 MP BIT7 # HAS ALREADY BEEN DONE IN THE RATE FILTER
044367,000811: 21,3005 51507 INDEX DPNDX # COMMANDED CHANGE IN ANGLE = WBODY TIMES
044368,000812: 21,3006 21542 DAS MERRORX # .1SEC = MANTABLE ENTRY TIMES 2 TO THE -8
044369,000813:
044370,000814: 21,3007 51507 SPNDXCHK INDEX DPNDX
044371,000815: 21,3010 31541 CA MERRORX
044372,000816: 21,3011 51506 INDEX SPNDX
044373,000817: 21,3012 55567 TS ERRORX # ERRORX = HIGH ORDER WORD OF MERRORX
044374,000818: 21,3013 11506 CCS SPNDX
044375,000819: 21,3014 12741 TCF SETWBODY
044376,000820: 21,3015 13425 TCF JETS
044377,000821: 21,3016 01760 OCT01760 OCT 01760 # FORCED FIRING BITS MASK
044378,000822:
044379,000823: 21,3017 01400 OCT01400 OCT 01400 # ROLL FORCED FIRING MASK ORDER OF
044380,000824: 21,3020 00060 OCT00060 OCT 00060 # PITCH FORCED FIRING MASK DEFINITION
044381,000825: 21,3021 00300 OCT00300 OCT 00300 # YAW FORCED FIRING MASK MUST BE
044382,000826: # PRESERVED
044383,000827: # FOR INDEXING
044384,000828: 21,3022 00077 MANROT OCT 77
044385,000829: 21,3023 16000 OCT16000 OCT 16000 # RATE DAMPING FLAGS MASK
044386,000830: 21,3024 00165 MANTABLE DEC .0071111
044387,000831: 21,3025 77612 DEC -.0071111
044388,000832: 21,3026 00722 DEC .028444
044389,000833: 21,3027 77055 DEC -0.028444
044390,000834: 21,3030 02215 DEC .071111
044391,000835: 21,3031 75562 DEC -.071111
044392,000836: 21,3032 22151 DEC .568889
044393,000837: 21,3033 55626 DEC -.568889
044394,000838: 21,3034 00027 =+14MS DEC 23 B-14
044395,000839:
044396,000840: 21,3035 51656 FREEFUNC INDEX RMANNDX # ACCELERATION
![]() |
Page 991 |
044398,000842: 21,3036 33047 CA FREETAU # COMMANDS
044399,000843: 21,3037 55561 TS TAU
044400,000844: 21,3040 51657 INDEX PMANNDX
044401,000845: 21,3041 33047 CA FREETAU # FREETAU 0 SEC
044402,000846: 21,3042 55562 TS TAU1 # +1 +0.10 SEC
044403,000847: 21,3043 51660 INDEX YMANNDX # +2 -0.10 SEC
044404,000848: 21,3044 33047 CA FREETAU # (+3) 0 SEC
044405,000849: 21,3045 55563 TS TAU2
044406,000850: 21,3046 13053 TCF T6PROGM
044407,000851:
044408,000852: 21,3047 00000 FREETAU DEC 0 B-14
044409,000853: 21,3050 00740 DEC 480 B-14
044410,000854: 21,3051 77037 DEC -480 B-14
044411,000855: 21,3052 00000 DEC 0 B-14
044412,000856:
044413,000857: 21,3053 34714 T6PROGM CAF ZERO # FOR MANUAL ROTATIONS
044414,000858: 21,3054 55567 TS ERRORX
044415,000859: 21,3055 55570 TS ERRORY
044416,000860: 21,3056 55571 TS ERRORZ
044417,000861: 21,3057 13743 TCF T6PROG
044418,000862:
![]() |
Page 992 |
044420,000864: 21,3060 06604 DEC .2112 # FILTER GAIN FOR TRANSLATION, LEM ON
044421,000865: 21,3061 32703 DEC .8400 # FILTER GAIN FOR TRANSLATION 2(ZETA)WN DT
044422,000866: 21,3062 06604 DEC .2112 # FILTER GAIN FOR 4 DEGREE/SEC MANEUVERS
044423,000867: 21,3063 02031 GAIN1 DEC .0640 # KALMAN FILTER GAINS FOR INITIALIZATION
044424,000868: 21,3064 12132 DEC .3180 # OF ATTITUDE RATES
044425,000869: 21,3065 13030 DEC .3452
044426,000870: 21,3066 14047 DEC .3774
044427,000871: 21,3067 15241 DEC .4161
044428,000872: 21,3070 16650 DEC .4634
044429,000873: 21,3071 20555 DEC .5223
044430,000874: 21,3072 23065 DEC .5970
044431,000875: 21,3073 26137 DEC .6933
044432,000876: 21,3074 32053 DEC .8151
044433,000877: 21,3075 35712 DEC .9342
044434,000878:
044435,000879: 21,3076 00435 DEC .0174 # FILTER GAIN FOR TRANSLATION, LEM ON
044436,000880: 21,3077 13412 DEC .3600 # FILTER GAIN FOR TRANSLATION (WN)(WN)DT
044437,000881: 21,3100 00435 DEC .0174 # FILTER GAIN FOR 4 DEGREE/SEC MANEUVERS
044438,000882: 21,3101 00032 GAIN2 DEC .0016 # SCALED 10
044439,000883: 21,3102 01350 DEC .0454
044440,000884: 21,3103 01575 DEC .0545
044441,000885: 21,3104 02103 DEC .0666
044442,000886: 21,3105 02523 DEC .0832
044443,000887: 21,3106 03327 DEC .1069
044444,000888: 21,3107 04432 DEC .1422
044445,000889: 21,3110 06264 DEC .1985
044446,000890: 21,3111 11351 DEC .2955
044447,000891: 21,3112 17324 DEC .4817
044448,000892: 21,3113 33622 DEC .8683
044449,000893:
044450,000894: 21,3114 55502 STICKCHK TS T5TEMP
044451,000895: 21,3115 76214 MASK THREE # INDECES FOR MANUAL ROTATION
044452,000896: 21,3116 55657 TS PMANNDX
044453,000897: 21,3117 31502 CA T5TEMP
044454,000898: 21,3120 00006 EXTEND # MAN RATE 0 0 RATE (DP)
044455,000899: 21,3121 74676 MP QUARTER # +1 + RATE (DP)
044456,000900: 21,3122 55502 TS T5TEMP # +2 - RATE (DP)
044457,000901: 21,3123 76214 MASK THREE # (+3) 0 RATE (DP)
044458,000902: 21,3124 55660 TS YMANNDX
044459,000903: 21,3125 31502 CA T5TEMP
044460,000904: 21,3126 00006 EXTEND
044461,000905: 21,3127 74676 MP QUARTER
044462,000906: 21,3130 55656 TS RMANNDX
044463,000907: 21,3131 00002 TC Q
044464,000908: 21,3132 55617 KALUPDT TS ATTKALMN # INITIALIZATION OF ATTITUDE RATES USING
044465,000909: # KALMAN FILTER TAKES 1.1 SEC
044466,000910:
044467,000911: 21,3133 32141 CA DELTATT # =1SEC - 80MS
044468,000912: 21,3134 61634 AD T5TIME # + DELAYS
![]() |
Page 993 |
044470,000914: 21,3135 54030 TS TIME5
044471,000915: 21,3136 13141 TCF +3
044472,000916: 21,3137 32142 CAF DELTATT2 # SAFETY PLAY TO ASSURE
044473,000917: 21,3140 54030 TS TIME5 # A T5RUPT
044474,000918: 21,3141 44714 KRESUME2 CS ZERO # RESET FOR PHASE1
044475,000919: 21,3142 55465 TS T5PHASE # RESUME INTERRUPTED PROGRAM
044476,000920: 21,3143 15222 TCF RESUME
044477,000921: 21,3144 44707 FDAIDSP2 CS BIT4 # RESET FOR FDAIDSP1
044478,000922: 21,3145 71501 MASK RCSFLAGS
044479,000923: 21,3146 55501 TS RCSFLAGS
044480,000924:
044481,000925: 21,3147 40074 CS FLAGWRD0 # ON - DISPLAY ONE OF THE TOTAL ATTITUDE
044482,000926: 21,3150 74702 MASK BIT9 # ERRORS
044483,000927: 21,3151 00006 EXTEND
044484,000928: 21,3152 13161 BZF FDAITOTL
044485,000929: 21,3153 00006 EXTEND
044486,000930: 21,3154 41570 DCS ERRORX # OFF - DISPLAY AUTOPILOT FOLLOWING ERROR
044487,000931: 21,3155 53477 DXCH AK
044488,000932: 21,3156 41571 CS ERRORZ
044489,000933: 21,3157 55500 TS AK2
044490,000934: 21,3160 15222 TCF RESUME # END PHASE 1
044491,000935: 21,3161 30105 FDAITOTL CA FLAGWRD9
044492,000936: 21,3162 74705 MASK BIT6
044493,000937: 21,3163 00006 EXTEND
044494,000938: 21,3164 13227 BZF WRTN17 # IS N22ORN17 (BIT6 OF FLAGWRD9) = 0
044495,000939: # IF SO, GO TO WRTN17
044496,000940: 21,3165 00006 WRTN22 EXTEND # OTHERWISE, CONTINUE ON TO WRTN22 AND
044497,000941: 21,3166 31157 DCA CTHETA # GET SET TO COMPUTE TOTAL ATTITUDE
044498,000942: 21,3167 53514 DXCH WTEMP # ERROR WRT N22 BY PICKING UP THE THREE
044499,000943: 21,3170 31155 CA CPHI # COMPONENTS OF N22
044500,000944:
044501,000945: 21,3171 00006 GETAKS EXTEND # COMPUTE TOTAL ATTITUDE ERROR FOR
044502,000946: 21,3172 20032 MSU CDUX # DISPLAY ON FDAI ERROR NEEDLES
044503,000947: 21,3173 55476 TS AK
044504,000948: 21,3174 31513 CA WTEMP
044505,000949: 21,3175 00006 EXTEND
044506,000950: 21,3176 20033 MSU CDUY
044507,000951: 21,3177 55502 TS T5TEMP
044508,000952: 21,3200 00006 EXTEND
044509,000953: 21,3201 71640 MP AMGB1
044510,000954: 21,3202 27476 ADS AK
044511,000955: 21,3203 31502 CA T5TEMP
044512,000956: 21,3204 00006 EXTEND
044513,000957: 21,3205 71641 MP AMGB4
![]() |
Page 994 |
044515,000959: 21,3206 55477 TS AK1
044516,000960: 21,3207 31502 CA T5TEMP
044517,000961: 21,3210 00006 EXTEND
044518,000962: 21,3211 71643 MP AMGB7
044519,000963: 21,3212 55500 TS AK2
044520,000964: 21,3213 31514 CA WTEMP +1
044521,000965: 21,3214 00006 EXTEND
044522,000966: 21,3215 20034 MSU CDUZ
044523,000967: 21,3216 55502 TS T5TEMP
044524,000968: 21,3217 00006 EXTEND
044525,000969: 21,3220 71642 MP AMGB5
044526,000970: 21,3221 27477 ADS AK1
044527,000971: 21,3222 31502 CA T5TEMP
044528,000972: 21,3223 00006 EXTEND
044529,000973: 21,3224 71644 MP AMGB8
044530,000974: 21,3225 27500 ADS AK2
044531,000975: 21,3226 15222 TCF RESUME # END PHASE1 OF RCS DAP
044532,000976:
044533,000977: 21,3227 00006 WRTN17 EXTEND # GET SET TO COMPUTE TOTAL ASTRONAUT
044534,000978: 21,3230 31335 DCA CPHIX +1 # ATTITUDE ERROR WRT N17 BY PICKING UP
044535,000979: 21,3231 53514 DXCH WTEMP # THE THREE COMPONENTS OF N17
044536,000980: 21,3232 31333 CA CPHIX
044537,000981: 21,3233 13171 TCF GETAKS
044538,000982:
![]() |
Page 995 Blank page. |
044541,000985:
End of include-file RCS-CSM_DIGITAL_AUTOPILOT.agc. Parent file is MAIN.agc