Source Code
![]() |
These source-code files derive from a printout of Luminary 116 (the Apollo 12
Lunar Module guidance computer program), from the personal library of
original AGC developer Don Eyles, digitally photographed at archive.org,
financially sponsored by Ron Burkey, and transcribed to source code by a
team of volunteers. This colorized, syntax-highlighted form was created
by assembling that transcribed source code. Note that the full page images
are available on the
Virtual AGC project page at archive.org, while reduced-size images
are presented at the VirtualAGC project website. Report or fix any
transcription errors at
the Virtual AGC project code repository. Notations on the program listing read, in part: GAP: ASSEMBLE REVISION 116 OF AGC PROGRAM LUMINARY BY NASA 2021112-071 19:09 AUG. 11,1969Note that the date is the date of the printout, not the date of the program revision. |
039018,000002: ## Copyright: Public domain.
039019,000003: ## Filename: FINDCDUW_-_GUIDAP_INTERFACE.agc
039020,000004: ## Purpose: A section of Luminary revision 116.
039021,000005: ## It is part of the source code for the Lunar Module's (LM)
039022,000006: ## Apollo Guidance Computer (AGC) for Apollo 12.
039023,000007: ## This file is intended to be a faithful transcription, except
039024,000008: ## that the code format has been changed to conform to the
039025,000009: ## requirements of the yaYUL assembler rather than the
039026,000010: ## original YUL assembler.
039027,000011: ## Reference: pp. 901-918
039028,000012: ## Assembler: yaYUL
039029,000013: ## Contact: Ron Burkey <info@sandroid.org>.
039030,000014: ## Website: www.ibiblio.org/apollo/index.html
039031,000015: ## Mod history: 2017-01-22 MAS Created from Luminary 99.
039032,000016: ## 2017-03-10 RSB Transcribed, and then proofed comment-text using
039033,000017: ## 3-way diff vs Luminary 99 and Luminary 131.
039034,000018: ## (Admittedly, the former is more for detecting errors
039035,000019: ## in Luminary 99 than the other way around.)
039036,000020: ## The label 1406P00 was replaced with 1406POO.
039037,000021: ## 2017-03-15 RSB Comment-text fixes identified in 5-way
039038,000022: ## side-by-side diff of Luminary 69/99/116/131/210.
039039,000023:
![]() |
Page 901 |
039041,000025: # PROGRAM NAME: FINDCDUW
039042,000026: # MOD NUMBER: 1 68 07 15
039043,000027: # MOD AUTHOR: KLUMPP
039044,000028:
039045,000029: # OBJECTS OF MOD: 1. TO SUPPLY COMMANDED GIMBAL ANGLES FOR NOUN 22.
039046,000030: # 2. TO MAINTAIN CORRECT AND CURRENT THRUST
039047,000031: # DIRECTION DATA IN ALL MODES. THIS IS DONE BY
039048,000032: # FETCHING FOR THE THRUST DIRECTION FILTER THE
039049,000033: # CDUD'S IN PNGCS-AUTO, THE CDU'S IN ALL OTHER
039050,000034: # MODES.
039051,000035: # 3. TO SUBSTITUTE A STOPRATE FOR THE NORMAL
039052,000036: # AUTOPILOT COMMANDS WHENEVER
039053,000037: # 1) NOT IN PNGCS-AUTO, OR
039054,000038: # 2) ENGINE IS OFF.
039055,000039:
039056,000040: # FUNCTIONAL DESCRIPTION:
039057,000041:
039058,000042: # FINDCDUW PROVIDES THE INTERFACES BETWEEN THE VARIOUS POWERED FLITE GUIDANCE PROGRAMS
039059,000043: # AND THE DIGITAL AUTOPILOT. THE INPUTS TO FINDCDUW ARE THE THRUST COMMAND VECTOR
039060,000044: # AND THE WINDOW COMMAND VECTOR, AND THE OUTPUTS ARE THE GIMBAL ANGLE
039061,000045: # INCREMENTS, THE COMMANDED ATTITUDE ANGLE RATES, AND THE COMMANDED
039062,000046: # ATTITUDE LAG ANGLES (WHICH ACCOUNT FOR THE ANGLES BY WHICH THE BODY WILL
039063,000047: # LAG BEHIND A RAMP COMMAND IN ATTITUDE ANGLE DUE TO THE FINITE ANGULAR
039064,000048: # ACCELERATIONS AVAILABLE).
039065,000049:
039066,000050: # FINDCDUW ALINES THE ESTIMATED THRUST VECTOR FROM THE THRUST DIRECTION
039067,000051: # FILTER WITH THE THRUST COMMAND VECTOR, AND, WHEN XOVINHIB SET,
039068,000052: # ALINES THE +Z HALF OF THE LM ZX PLANE WITH THE WINDOW COMMAND VECTOR.
039069,000053:
![]() |
Page 902 |
039071,000055: # SPECIFICATIONS:
039072,000056:
039073,000057: # INITIALIZATION: A SINGLE INTERPRETIVE CALL TO INITCDUW IS REQUIRED
039074,000058: # BEFORE EACH GUIDED MANEUVER USING FINDCDUW.
039075,000059:
039076,000060: # CALL: INTERPRETIVE CALL TO FINDCDUW WITH THE THRUST COMMAND
039077,000061: # VECTOR IN MPAC. INTERPRETIVE CALL TO FINDCDUW -2 WITH
039078,000062: # THE THRUST COMMAND VECTOR IN UNFC/2 AND NOT IN MPAC.
039079,000063:
039080,000064: # RETURNS: NORMAL INTERPRETIVE IN ALL CASES
039081,000065: # 1. NORMALLY ALL AUTOPILOT CMDS ARE ISSUED.
039082,000066: # 2. IF NOT PNGCS AUTO, DO STOPRATE AND RETURN
039083,000067: # WITHOUT ISSUING AUTOPILOT CMDS.
039084,000068: # 3. IF ENGINE OFF, DO STOPRATE AND RETURN WITHOUT
039085,000069: # ISSUING AUTOPILOT CMDS.
039086,000070:
039087,000071: # ALARMS: 00401 IF INPUTS DETERMINE AN ATTITUDE IN GIMBAL LOCK.
039088,000072: # FINDCDUW DRIVES CDUXD AND CDUYD TO THE RQD VALUES,
039089,000073: # BUT DRIVES CDUZD ONLY TO THE GIMBAL LOCK CONE.
039090,000074:
039091,000075: # 00402 IF UNFC/2 OR UNWC/2 PRODUCE OVERFLOW WHEN
039092,000076: # UNITIZED USING NORMUNIT. FINDCDUW ISSUES
039093,000077: # STOPRATE AS ONLY INPUT TO AUTOPILOT.
039094,000078:
039095,000079: # INPUTS: UNFC/2 THRUST COMMAND VECTOR, NEED NOT BE SEMI-UNIT.
039096,000080: # UNWC/2 WINDOW COMMAND VECTOR, NEED NOT BE SEMI-UNIT.
039097,000081: # XOVINHIB FLAG DENOTING X AXIS OVERRIDE INHIBITED.
039098,000082: # CSMDOCKD FLAG DENOTING CSM DOCKED.
039099,000083: # STEERSW FLAG DENOTING INSUFF THRUST FOR THRUST DIR FLTR.
039100,000084:
039101,000085: # OUTPUTS: DELCDUX,Y,Z
039102,000086: # OMEGAPD,+1,+2
039103,000087: # DELPEROR,+1,+2
039104,000088: # CPHI,+1,+2 FOR NOUN22
039105,000089:
039106,000090: # DEBRIS: FINDCDUW DESTROYS SINCDUX,Y,Z AND COSCDUX,Y,Z BY
039107,000091: # WRITING INTO THESE LOCATIONS THE SINES AND COSINES
039108,000092: # OF THE CDUD'S IN PNGCS-AUTO, OF THE CDU'S OTHERWISE.
039109,000093:
![]() |
Page 903 |
039111,000095: # INITIALIZATION FOR FINDCDUW
039112,000096:
039113,000097: 30,3071 BANK 30
039114,000098: 30,2000 SETLOC FCDUW
039115,000099: 30,2000 BANK
039116,000100:
039117,000101: 30,3071 E6,1646 EBANK= ECDUW
039118,000102: 30,3071 COUNT* $$/FCDUW
039119,000103:
039120,000104: 30,3071 77775 INITCDUW VLOAD
039121,000105: 30,3072 06522 UNITX
039122,000106: 30,3073 03270 STORE UNFV/2
039123,000107: 30,3074 03262 STORE UNWC/2
039124,000108: 30,3075 77616 RVQ
039125,000109:
039126,000110: # FINDCDUW PRELIMINARIES
039127,000111:
039128,000112: 30,3076 77775 VLOAD # FINDCDUW -2: ENTRY WHEN UNFC/2 PRE-STORD
039129,000113: 30,3077 03254 UNFC/2 # INPUT VECTORS NEED NOT BE SEMI-UNIT
039130,000114: 30,3100 40200 FINDCDUW BOV SETPD # FINDCDUW: ENTRY WHEN UNFC/2 IN MPAC
039131,000115: 30,3101 61100 FINDCDUW # INTERPRETER NOW INITIALIZED
039132,000116: 30,3102 00023 22 # LOCS 0 THRU 21 FOR DIRECTION COSINE MAT
039133,000117: 30,3103 77420 STQ EXIT
039134,000118: 30,3104 03247 QCDUWUSR # SAVE RETURN ADDRESS
039135,000119:
039136,000120: # MORE HAUSKEEPING
039137,000121: 30,3105 33746 CA ECDUWL
039138,000122: 30,3106 56003 XCH EBANK # SET EBANK
039139,000123: 30,3107 55646 TS ECDUWUSR # SAVE USER'S EBANK
039140,000124:
039141,000125: 30,3110 30111 CA DAPBOOLS
039142,000126: 30,3111 74737 MASK CSMDOCKD # CSMDOCKD MUST NOT BE BIT15
039143,000127: 30,3112 10000 CCS A
039144,000128: 30,3113 34753 CA ONE # INDEX IF CSM DOCKED
039145,000129: 30,3114 55650 TS NDXCDUW
039146,000130:
039147,000131: 30,3115 34743 CA XOVINHIB # XOVINHIB MUST NOT BE BIT15
039148,000132: 30,3116 55652 TS FLPAUTNO # SET TO POS-NON-ZERO FLAG PNGCS AUTO NOT
039149,000133:
039150,000134: 30,3117 70111 MASK DAPBOOLS
039151,000135: 30,3120 55651 TS FLAGOODW # FLAGOODW = ANY PNZ NUMBER IF XOV INHIBTD
039152,000136:
![]() |
Page 904 |
039154,000138: # FETCH BASIC DATA
039155,000139: 30,3121 00004 INHINT # RELINT AT PAUTNO (TC INTPRET)
039156,000140:
039157,000141: 30,3122 30032 CA CDUX # FETCH CDUX,CDUY,CDUZ IN ALL CASES, BUT
039158,000142: 30,3123 54771 TS CDUSPOTX # REPLACE BELOW IF PNGCS AUTO
039159,000143: 30,3124 30033 CA CDUY
039160,000144: 30,3125 54765 TS CDUSPOTY
039161,000145: 30,3126 30034 CA CDUZ
039162,000146: 30,3127 54767 TS CDUSPOTZ
039163,000147:
039164,000148: 30,3130 34742 CA BIT10 # PNGCS CONTROL BIT
039165,000149: 30,3131 00006 EXTEND
039166,000150: 30,3132 02030 RAND CHAN30
039167,000151: 30,3133 10000 CCS A
039168,000152: 30,3134 13151 TCF PAUTNO # NOT PNGCS (BITS INVERTED)
039169,000153:
039170,000154: 30,3135 34736 CA BIT14 # AUTO MODE BIT
039171,000155: 30,3136 00006 EXTEND
039172,000156: 30,3137 02031 RAND CHAN31
039173,000157: 30,3140 10000 CCS A
039174,000158: 30,3141 13151 TCF PAUTNO # NOT AUTO (BITS INVERTED)
039175,000159:
039176,000160: 30,3142 55652 TS FLPAUTNO # RESET FLAG PNGCS AUTO NOT
039177,000161:
039178,000162: 30,3143 31635 CA CDUXD # PNGCS AUTO: FETCH CDUXD,CDUYD,CDUZD
039179,000163: 30,3144 54771 TS CDUSPOTX
039180,000164: 30,3145 31636 CA CDUYD
039181,000165: 30,3146 54765 TS CDUSPOTY
039182,000166: 30,3147 31637 CA CDUZD
039183,000167: 30,3150 54767 TS CDUSPOTZ
039184,000168:
![]() |
Page 905 |
039186,000170: # FETCH INPUTS
039187,000171: 30,3151 06042 PAUTNO TC INTPRET # ENTERING THRUST CMD STILL IN MPAC
039188,000172: 30,3152 77634 RTB
039189,000173: 30,3153 21727 NORMUNIT
039190,000174: 30,3154 24001 STOVL UNX/2 # SEMI-UNIT THRUST CMD AS INITIAL UNX/2
039191,000175: 30,3155 03262 UNWC/2
039192,000176: 30,3156 47034 RTB RTB
039193,000177: 30,3157 21727 NORMUNIT
039194,000178: 30,3160 47617 QUICTRIG # ALWAYS RQD TO OBTAIN TRIGS OF CDUD'S
039195,000179: 30,3161 24015 STOVL UNZ/2 # SEMI-UNIT WINDOW CMD AS INITIAL UNZ/2
039196,000180: 30,3162 00325 DELV
039197,000181: 30,3163 53404 BOVB UNIT
039198,000182: 30,3164 61735 NOATTCNT # AT LEAST ONE ENTERING CMD VCT ZERO
![]() |
A horizontal line is hand-drawn here in the printout, but from the vertical positioning, it's unclear whether it is underlining the NOATTCNT above or if it is crossing out the CALL below. |
039202,000186: 30,3165 45000 BOV CALL
039203,000187: 30,3166 61202 AFTRFLTR # IF UNIT DELV OVERFLOWS, SKIP FILTER
039204,000188: 30,3167 47673 *SMNB* # YIELDS UNIT(DELV) IN VEH COORDS FOR FLTR
039205,000189:
039206,000190: # THRUST DIRECTION FILTER
039207,000191:
039208,000192: 30,3170 77776 EXIT
039209,000193:
039210,000194: 30,3171 31671 CA UNFVY/2 # FOR RESTARTS, UNFV/2 ALWAYS INTACT, MPAC
039211,000195: 30,3172 22157 LXCH MPAC +3 # RENEWED AFTER RETURN FROM CALLER,
039212,000196: 30,3173 03470 TC FLTRSUB # TWO FILTER UPDATES MAY BE DONE.
039213,000197: 30,3174 55671 TS UNFVY/2 # UNFV/2 NEED NOT BE EXACTLY SEMI-UNIT.
039214,000198:
039215,000199: 30,3175 31673 CA UNFVZ/2
039216,000200: 30,3176 22161 LXCH MPAC +5
039217,000201: 30,3177 03470 TC FLTRSUB
039218,000202: 30,3200 55673 TS UNFVZ/2
039219,000203:
039220,000204: 30,3201 06042 TC INTPRET # COMPLETES FILTER
039221,000205:
![]() |
Page 906 |
039223,000207: # FIND A SUITABLE WINDOW POINTING VECTOR
039224,000208:
039225,000209: 30,3202 46135 AFTRFLTR SLOAD BHIZ # IF XOV NOT INHIBITED, GO FETCH ZNB
039226,000210: 30,3203 03252 FLAGOODW
039227,000211: 30,3204 61210 FETCHZNB
039228,000212: 30,3205 45175 VLOAD CALL
039229,000213: 30,3206 00015 UNZ/2
039230,000214: 30,3207 61510 UNWCTEST
039231,000215:
039232,000216: 30,3210 77775 FETCHZNB VLOAD
039233,000217: 30,3211 02162 ZNBPIP
039234,000218: 30,3212 34015 STCALL UNZ/2
039235,000219: 30,3213 61510 UNWCTEST
039236,000220:
039237,000221: 30,3214 57575 VLOAD VCOMP # Z AND -X CAN'T BOTH PARALLEL UNFC/2
039238,000222: 30,3215 02146 XNBPIP
039239,000223: 30,3216 00015 STORE UNZ/2
039240,000224:
039241,000225: # COMPUTE THE REQUIRED DIRECTION COSINE MATRIX
039242,000226:
039243,000227: 30,3217 47375 DCMCL VLOAD VXV
039244,000228: 30,3220 00015 UNZ/2
039245,000229: 30,3221 00001 UNX/2
039246,000230: 30,3222 41456 UNIT PUSH # UNY/2 FIRST ITERATION
039247,000231: 30,3223 76435 VXV VSL1
039248,000232: 30,3224 00001 UNX/2
039249,000233: 30,3225 00015 STORE UNZ/2 # -UNZ/2 FIRST ITERATION
039250,000234: 30,3226 63361 VXSC PDVL # EXCHANGE -UNFVZ/2 UNZ/2 FOR UNY/2
039251,000235: 30,3227 03274 UNFVZ/2 # MUST BE SMALL
039252,000236: 30,3230 51361 VXSC BVSU # YIELDS -UNFVY/2 UNY/2-UNFVZ/2 UNZ/2
039253,000237: 30,3231 03272 UNFVY/2 # MUST BE SMALL
039254,000238: 30,3232 53372 VSL1 VAD
039255,000239: 30,3233 00001 UNX/2
039256,000240: 30,3234 77656 UNIT # TOTALLY ELIMINATES THRUST POINTING ERROR
039257,000241: 30,3235 00001 STORE UNX/2 # UNX/2
039258,000242: 30,3236 76435 VXV VSL1
039259,000243: 30,3237 00015 UNZ/2 # -UNZ/2 WAS STORED HERE REMEMBER
039260,000244: 30,3240 00007 STORE UNY/2 # UNY/2
039261,000245: 30,3241 47276 VCOMP VXV
039262,000246: 30,3242 00001 UNX/2
039263,000247: 30,3243 77772 VSL1
039264,000248: 30,3244 00015 STORE UNZ/2 # UNZ/2
039265,000249:
![]() |
Page 907 |
039267,000251: # COMPUTE THE REQUIRED GIMBAL ANGLES
039268,000252:
039269,000253: 30,3245 77624 CALL
039270,000254: 30,3246 61520 NB2CDUSP # YIELDS THE RQD GIMBAL ANGLES, 2'S, PI
039271,000255: 30,3247 77776 EXIT
039272,000256:
039273,000257: # LIMIT THE MIDDLE GIMBAL ANGLE & COMPUTE THE UNLIMITED GIMBAL ANGLE CHGS
039274,000258:
039275,000259: 30,3250 30156 CA MPAC +2 # LIMIT THE MGA
039276,000260: 30,3251 54001 TS L # CAN'T LXCH: NEED UNLIMITED MGA FOR ALARM
039277,000261: 30,3252 33760 CA CDUZDLIM
039278,000262: 30,3253 03714 TC LIMITSUB # YIELDS LIMITED MGA. 1 BIT ERROR POSSIBLE
039279,000263: 30,3254 56156 XCH MPAC +2 # BECAUSE USING 2'S COMP. WHO CARES?
039280,000264: 30,3255 00006 EXTEND
039281,000265: 30,3256 20156 MSU MPAC +2 # THIS BETTER YIELD ZERO
039282,000266: 30,3257 00006 EXTEND
039283,000267: 30,3260 13262 BZF +2
039284,000268: 30,3261 13743 TCF ALARMMGA
039285,000269:
039286,000270: 30,3262 00004 MGARET INHINT # RELINT AT TC INTPRET AFTER TCQCDUW
039287,000271:
039288,000272: 30,3263 22007 ZL
039289,000273: 30,3264 34752 CA TWO
039290,000274: 30,3265 54142 DELGMBLP TS TEM2
039291,000275:
039292,000276: 30,3266 30001 CA L # TO PREVENT FALSE STARTS ABOUT X, ZERO
039293,000277: 30,3267 00006 EXTEND # FLAGOODW IF DELGMBZ OR Y TOO BIG.
039294,000278: 30,3270 70000 SQUARE
039295,000279: 30,3271 64350 AD HI5 # WITHIN 1 BIT OF -(45 DEG SQUARED)
039296,000280: 30,3272 00006 EXTEND
039297,000281: 30,3273 63276 BZMF +3
039298,000282: 30,3274 34755 CA ZERO
039299,000283: 30,3275 55651 TS FLAGOODW
039300,000284:
039301,000285: 30,3276 50142 INDEX TEM2
039302,000286: 30,3277 30154 CA MPAC
039303,000287: 30,3300 50142 INDEX TEM2
039304,000288: 30,3301 54321 TS CPHI # OUTPUTS TO NOUN22
039305,000289: 30,3302 00006 EXTEND
039306,000290: 30,3303 50142 INDEX TEM2
039307,000291: 30,3304 21635 MSU CDUXD # NO MATTER THAT THESE SLIGHTLY DIFFERENT
039308,000292: 30,3305 40000 COM # FROM WHEN WE INITIALLY FETCHED THEM
039309,000293: 30,3306 50142 INDEX TEM2
039310,000294: 30,3307 55675 TS -DELGMB # -UNLIMITED GIMBAL ANGLE CHGS, 1'S, PI
039311,000295: 30,3310 54001 TS L # FOR PRECEDING TEST ON NEXT LOOP PASS
039312,000296: 30,3311 10142 CCS TEM2
039313,000297: 30,3312 13265 TCF DELGMBLP
039314,000298:
![]() |
Page 908 |
039316,000300: # BRANCHES TO NOATTCNT
039317,000301: 30,3313 11652 CCS FLPAUTNO
039318,000302: 30,3314 13737 TCF NOATTCNT +2 # NOT PNGCS AUTO
039319,000303:
039320,000304: 30,3315 30101 CA FLAGWRD5
039321,000305: 30,3316 74745 MASK ENGONBIT
039322,000306: 30,3317 00006 EXTEND
039323,000307: 30,3320 13737 BZF NOATTCNT +2 # ENGINE NOT ON
039324,000308:
![]() |
Page 909 |
039326,000310: # LIMIT THE ATTITUDE ANGLE CHANGES
039327,000311:
039328,000312: # THIS SECTION LIMITS THE ATTITUDE ANGLE CHANGES ABOUT A SET OF ORTHOGONAL VEHICLE AXES X,YPRIME,ZPRIME.
039329,000313: # THESE AXES COINCIDE WITH THE COMMANDED VEHICLE AXES IF AND ONLY IF CDUXD IS ZERO. THE PRIME SYSTEM IS
039330,000314: # THE COMMANDED VEHICLE SYSTEM ROTATED ABOUT THE X AXIS TO BRING THE Z AXIS INTO ALINEMENT WITH THE MIDDLE GIMBAL
039331,000315: # AXIS. ATTITUDE ANGLE CHANGES IN THE PRIME SYSTEM ARE RELATED TO SMALL GIMBAL ANGLE CHANGES BY:
039332,000316:
039333,000317: # * -DELATTX * * 1 SIN(CDUZD) 0 * * -DELGMBX *
039334,000318: # * * * * * *
039335,000319: # * -DELATTYPRIME * = * 0 COS(CDUZD) 0 * * -DELGMBY *
039336,000320: # * * * * * *
039337,000321: # * -DELATTZPRIME * * 0 0 1 * * -DELGMBZ *
039338,000322:
039339,000323: 30,3321 23677 LXCH -DELGMB +2 # SAME AS -DELATTZPRIME UNLIMITED
039340,000324: 30,3322 51650 INDEX NDXCDUW
039341,000325: 30,3323 33754 CA DAZMAX
039342,000326: 30,3324 03714 TC LIMITSUB
039343,000327: 30,3325 55677 TS -DELGMB +2 # -DELGMBZ
039344,000328:
039345,000329: 30,3326 31676 CA -DELGMB +1
039346,000330: 30,3327 00006 EXTEND
039347,000331: 30,3330 70745 MP COSCDUZ # YIELDS -DELATTYPRIME/2 UNLIMITED
039348,000332: 30,3331 54001 TS L
039349,000333: 30,3332 51650 INDEX NDXCDUW
039350,000334: 30,3333 33756 CA DAY/2MAX
039351,000335: 30,3334 03714 TC LIMITSUB
039352,000336: 30,3335 00006 EXTEND
039353,000337: 30,3336 10745 DV COSCDUZ
039354,000338: 30,3337 57676 XCH -DELGMB +1 # -DELGMBY, FETCHING UNLIMITED VALUE
039355,000339:
039356,000340: 30,3340 00006 EXTEND
039357,000341: 30,3341 70737 MP SINCDUZ
039358,000342: 30,3342 20001 DDOUBL
039359,000343: 30,3343 40000 COM
039360,000344: 30,3344 00006 EXTEND # YIELDS +DELATTX UNLIMITD, MAG < 180 DEG,
039361,000345: 30,3345 21675 MSU -DELGMB # BASED ON UNLIMITED DELGMBY.
039362,000346: 30,3346 54001 TS L # ONE BIT ERROR IF OPERANDS IN MSU
039363,000347: 30,3347 51650 INDEX NDXCDUW # OF MIXED SIGNS. WHO CARES?
039364,000348: 30,3350 33754 CA DAXMAX
039365,000349: 30,3351 03714 TC LIMITSUB
039366,000350: 30,3352 55675 TS -DELGMB # SAVE LIMITED +DELATTX
039367,000351: 30,3353 11651 CCS FLAGOODW
039368,000352: 30,3354 41675 CS -DELGMB # FETCH IT BACK CHGING SIGN IF WINDOW GOOD
039369,000353: 30,3355 55675 TS -DELGMB # OTHERWISE USE ZERO FOR -DELATTX
039370,000354: 30,3356 41676 CS -DELGMB +1
039371,000355: 30,3357 00006 EXTEND
039372,000356: 30,3360 70737 MP SINCDUZ
039373,000357: 30,3361 20001 DDOUBL # YIELDS -CNTRIB TO -DELATTX FROM -DELGMBY
039374,000358: 30,3362 27675 ADS -DELGMB # -DELGMBX. NO OVERFLOW SINCE LIMITED TO
039375,000359: # 20DEG(1+SIN(70DEG)/COS(70DEG)) < 180DEG
039376,000360:
![]() |
Page 910 |
039378,000362: # COMPUTE COMMANDED ATTITUDE RATES
039379,000363:
039380,000364: # * OMEGAPD * * -2 -4 SINCDUZ +0 * * -DELGMBX *
039381,000365: # * * * * * *
039382,000366: # * OMEGAQD * = * +0 -8 COSCDUZ COSCDUX -4 SINCDUX * * -DELGMBY *
039383,000367: # * * * * * *
039384,000368: # * OMEGARD * * +0 +8 COSCDUZ SINCDUX -4 COSCDUX * * -DELGMBZ *
039385,000369:
039386,000370: # ATTITUDE ANGLE RATES IN UNITS OF PI/4 RAD/SEC = K TRIG FCNS IN UNITS OF 2 X GIMBAL ANGLE RATES IN UNITS OF
039387,000371: # PI/2 RAD/SEC. THE CONSTANTS ARE BASED ON DELGMB BEING THE GIMBAL ANGLE CHANGES IN UNITS OF PI RADIANS,
039388,000372: # AND 2 SECONDS BEING THE COMPUTATION PERIOD (THE PERIOD BETWEEN SUCCESSIVE PASSES THRU FINDCDUW).
039389,000373:
039390,000374: 30,3363 41675 CS -DELGMB
039391,000375: 30,3364 55643 TS OMEGAPD
039392,000376: 30,3365 41676 CS -DELGMB +1
039393,000377: 30,3366 00006 EXTEND
039394,000378: 30,3367 70737 MP SINCDUZ
039395,000379: 30,3370 20001 DDOUBL
039396,000380: 30,3371 27643 ADS OMEGAPD
039397,000381: 30,3372 27643 ADS OMEGAPD
039398,000382:
039399,000383: 30,3373 41676 CS -DELGMB +1
039400,000384: 30,3374 00006 EXTEND
039401,000385: 30,3375 70747 MP COSCDUX
039402,000386: 30,3376 20001 DDOUBL
039403,000387: 30,3377 00006 EXTEND
039404,000388: 30,3400 70745 MP COSCDUZ
039405,000389: 30,3401 55644 TS OMEGAQD
039406,000390: 30,3402 41677 CS -DELGMB +2
039407,000391: 30,3403 00006 EXTEND
039408,000392: 30,3404 70741 MP SINCDUX
039409,000393: 30,3405 27644 ADS OMEGAQD
039410,000394: 30,3406 27644 ADS OMEGAQD
039411,000395: 30,3407 27644 ADS OMEGAQD
039412,000396:
039413,000397: 30,3410 31676 CA -DELGMB +1
039414,000398: 30,3411 00006 EXTEND
039415,000399: 30,3412 70741 MP SINCDUX
039416,000400: 30,3413 20001 DDOUBL
039417,000401: 30,3414 00006 EXTEND
039418,000402: 30,3415 70745 MP COSCDUZ
039419,000403: 30,3416 55645 TS OMEGARD
039420,000404: 30,3417 41677 CS -DELGMB +2
039421,000405: 30,3420 00006 EXTEND
039422,000406: 30,3421 70747 MP COSCDUX
039423,000407: 30,3422 27645 ADS OMEGARD
039424,000408: 30,3423 27645 ADS OMEGARD
039425,000409: 30,3424 27645 ADS OMEGARD
039426,000410:
![]() |
Page 911 |
039428,000412: # FINAL TRANSFER
039429,000413:
039430,000414: 30,3425 34752 CA TWO
039431,000415: 30,3426 54142 CDUWXFR TS TEM2
039432,000416: 30,3427 50142 INDEX TEM2
039433,000417: 30,3430 31675 CA -DELGMB
039434,000418: 30,3431 00006 EXTEND
039435,000419: 30,3432 73761 MP DT/DELT # RATIO OF DAP INTERVAL TO CDUW INTERVAL
039436,000420: 30,3433 03730 TC ONESTO2S
039437,000421: 30,3434 50142 INDEX TEM2
039438,000422: 30,3435 55640 TS DELCDUX # ANGLE INTERFACE
039439,000423:
039440,000424: 30,3436 50142 INDEX TEM2
039441,000425: 30,3437 11643 CCS OMEGAPD
039442,000426: 30,3440 64753 AD ONE
039443,000427: 30,3441 13443 TCF +2
039444,000428: 30,3442 64753 AD ONE
039445,000429: 30,3443 00006 EXTEND # WE NOW HAVE ABS(OMEGAPD,QD,RD)
039446,000430: 30,3444 50142 INDEX TEM2
039447,000431: 30,3445 71643 MP OMEGAPD
039448,000432: 30,3446 00006 EXTEND
039449,000433: 30,3447 74741 MP BIT11 # 1/16
039450,000434: 30,3450 00006 EXTEND
039451,000435: 30,3451 50142 INDEX TEM2 # 2
039452,000436: 30,3452 11530 DV 1JACC # UNITS PI/4 RAD/SEC
039453,000437: 30,3453 54001 TS L
039454,000438: 30,3454 33756 CA DELERLIM
039455,000439: 30,3455 03714 TC LIMITSUB
039456,000440: 30,3456 50142 INDEX TEM2
039457,000441: 30,3457 55274 TS DELPEROR # LAG ANGLE = OMEGA ABS(OMEGA)/2 ACCEL
039458,000442: 30,3460 10142 CCS TEM2
039459,000443: 30,3461 13426 TCF CDUWXFR
039460,000444:
039461,000445: # HAUSKEEPING AND RETURN
039462,000446:
039463,000447: 30,3462 31646 TCQCDUW CA ECDUWUSR
039464,000448: 30,3463 54003 TS EBANK # RETURN USER'S EBANK
039465,000449:
039466,000450: 30,3464 06042 TC INTPRET
039467,000451: 30,3465 52001 SETPD GOTO
039468,000452: 30,3466 00001 0
039469,000453: 30,3467 03247 QCDUWUSR # NORMAL AND ABNORMAL RETURN TO USER
039470,000454:
![]() |
Page 912 |
039472,000456: # THRUST VECTOR FILTER SUBROUTINE
039473,000457:
039474,000458: 30,3470 00006 FLTRSUB EXTEND
039475,000459: 30,3471 22142 QXCH TEM2
039476,000460: 30,3472 54143 TS TEM3 # SAVE ORIGINAL OFFSET
039477,000461: 30,3473 40000 COM # ONE MCT, NO WDS, CAN BE SAVED IF NEG OF
039478,000462: 30,3474 60001 AD L # ORIG OFFSET ARRIVES IN A, BUT IT'S
039479,000463: 30,3475 00006 EXTEND # NOT WORTH THE INCREASED OBSCURITY.
039480,000464: 30,3476 51650 INDEX NDXCDUW
039481,000465: 30,3477 73747 MP GAINFLTR
039482,000466: 30,3500 54001 TS L # INCR TO OFFSET, UNLIMITED
039483,000467: 30,3501 33751 CA DUNFVLIM # SAME LIMIT FOR Y AND Z
039484,000468: 30,3502 03714 TC LIMITSUB # YIELDS INCR TO OFFSET, LIMITED
039485,000469: 30,3503 60143 AD TEM3 # ORIGINAL OFFSET
039486,000470: 30,3504 54001 TS L # TOTAL OFFSET, UNLIMITED
039487,000471: 30,3505 33752 CA UNFVLIM # SAME LIMIT FOR Y AND Z
039488,000472: 30,3506 03714 TC LIMITSUB # YIELDS TOTAL OFFSET, LIMITED
039489,000473: 30,3507 00142 TC TEM2
039490,000474:
039491,000475: # SUBR TO TEST THE ANGLE BETWEEN THE PROPOSED WINDOW AND THRUST CMD VCTS
039492,000476:
039493,000477: 30,3510 63441 UNWCTEST DOT DSQ
039494,000478: 30,3511 00001 UNX/2
039495,000479: 30,3512 50025 DSU BMN
039496,000480: 30,3513 21754 DOTSWFMX
039497,000481: 30,3514 61217 DCMCL
039498,000482: 30,3515 43531 SSP RVQ # RVQ FOR ALT CHOICE IF DOT MAGN TOO LARGE
039499,000483: 30,3516 03252 FLAGOODW # ZEROING WINDOW GOOD FLAG
039500,000484: 30,3517 00000 0
039501,000485:
![]() |
Page 913 |
039503,000487: # NB2CDUSP RETURNS THE 2'S COMPLEMENT, PI, SP CDU ANGLES X,Y,Z IN MPAC,+1,+2 GIVEN THE MATRIX WHOSE ROW VECTORS
039504,000488: # ARE THE SEMI-UNIT NAV BASE VECTORS X,Y,Z EXPRESSED IN STABLE MEMBER COORDINATES, LOCATED AT 0 IN THE PUSH LIST.
039505,000489: # NB2CDUSP USES ARCTRGSP WHICH HAS A MAXIMUM ERROR OF +-4 BITS.
039506,000490:
039507,000491: 30,3520 63545 NB2CDUSP DLOAD DSQ
039508,000492: 30,3521 00003 2
039509,000493: 30,3522 51021 BDSU BPL
039510,000494: 30,3523 06514 DP1/4TH
039511,000495: 30,3524 61527 +3
039512,000496: 30,3525 77745 DLOAD
039513,000497: 30,3526 06524 ZEROVECS # IN CASE SIN WAS SLIGHTLY > 1/2
039514,000498: 30,3527 77566 SQRT EXIT # YIELDS COS(CDUZ) IN UNITS OF 2
039515,000499:
039516,000500: 30,3530 00006 EXTEND
039517,000501: 30,3531 30155 DCA MPAC
039518,000502: 30,3532 20001 DDOUBL
039519,000503: 30,3533 54145 TS TEM5
039520,000504: 30,3534 13537 TCF +3
039521,000505: 30,3535 34733 CA POSMAX # OVERFLOW. FETCH POSMAX, MPAC ALWAYS POS
039522,000506: 30,3536 54145 TS TEM5 # COS(CDUZ) IN TEM5, UNITS 1
039523,000507:
039524,000508: 30,3537 50120 INDEX FIXLOC
039525,000509: 30,3540 30002 CA 2
039526,000510: 30,3541 22154 LXCH MPAC
039527,000511: 30,3542 03607 TC ARCTRGSP
039528,000512: 30,3543 54156 TS MPAC +2 # CDUZ
039529,000513:
039530,000514: 30,3544 34755 CA ZERO
039531,000515: 30,3545 03565 TC DVBYCOSM
039532,000516: 30,3546 34751 CA FOUR
039533,000517: 30,3547 03565 TC DVBYCOSM
039534,000518: 30,3550 40141 CS TEM1
039535,000519: 30,3551 03607 TC ARCTRGSP
039536,000520: 30,3552 54155 TS MPAC +1 # CDUY
039537,000521:
039538,000522: 30,3553 34750 CA BIT4
039539,000523: 30,3554 03565 TC DVBYCOSM
039540,000524: 30,3555 33564 CA 16OCT
039541,000525: 30,3556 03565 TC DVBYCOSM
039542,000526: 30,3557 40141 CS TEM1
039543,000527: 30,3560 03607 TC ARCTRGSP
039544,000528: 30,3561 54154 TS MPAC # CDUX
039545,000529:
039546,000530: 30,3562 06042 TC INTPRET
039547,000531: 30,3563 77616 RVQ
039548,000532:
039549,000533: 30,3564 00016 16OCT OCT 16
039550,000534:
![]() |
Page 914 |
039552,000536: # THE ELEMENTS OF THE NAV BASE MATRIX WHICH WE MUST DIVIDE BY COS(MGA)
039553,000537: # ALREADY CONTAIN COS(MGA)/2 AS A FACTOR. THEREFORE THE QUOTIENT SHOULD
039554,000538: # ORDINARILY NEVER EXCEED 1/2 IN MAGNITUDE. BUT IF THE MGA IS NEAR PI/2
039555,000539: # THEN COS(MGA) IS NEAR ZERO, AND THERE MAY BE SOME CHAFF IN THE OTHER
039556,000540: # ELEMENTS OF THE MATRIX WHICH WOULD PRODUCE CHAOS UNDER DIVISION.
039557,000541: # BEFORE DIVIDING WE MAKE SURE COS(MGA) IS AT LEAST ONE BIT LARGER
039558,000542: # THAN THE MAGNITUDE OF THE HIGH ORDER PART OF THE OPERAND.
039559,000543:
039560,000544: # IF ONE OR MORE DIVIDES CANNOT BE PERFORMED, THIS MEANS THAT THE
039561,000545: # REQUIRED MGA IS VERY NEARLY +-PI/2 AND THEREFORE THE OTHER GIMBAL
039562,000546: # ANGLES ARE INDETERMINATE. THE INNER AND OUTER GIMBAL ANGLES RETURNED
039563,000547: # IN THIS CASE WILL BE RANDOM MULTIPLES OF PI/2.
039564,000548:
039565,000549: 30,3565 60120 DVBYCOSM AD FIXLOC
039566,000550: 30,3566 54116 TS ADDRWD # ADRES OF OPERAND
039567,000551:
039568,000552: 30,3567 50116 INDEX ADDRWD # FETCH NEG ABS OF OPERAND, AD TEM5, AND
039569,000553: 30,3570 30000 CA 0 # SKIP DIVIDE IF RESULT NEG OR ZERO
039570,000554: 30,3571 00006 EXTEND
039571,000555: 30,3572 63574 BZMF +2
039572,000556: 30,3573 40000 COM
039573,000557: 30,3574 60145 AD TEM5 # C(A) ZERO OR NEG, C(TEM5) ZERO OR POS
039574,000558: 30,3575 00006 EXTEND
039575,000559: 30,3576 63604 BZMF TSL&TCQ # DIFFERENCE ALWAYS SMALL IF BRANCH
039576,000560:
039577,000561: 30,3577 00006 EXTEND # TEM5 EXCEEDS ABS HIGH ORDER PART OF
039578,000562: 30,3600 50116 INDEX ADDRWD # OPERAND BY AT LEAST ONE BIT.
039579,000563: 30,3601 30001 DCA 0 # THEREFORE IT EXCEEDS THE DP OPERAND
039580,000564: 30,3602 00006 EXTEND # AND DIVISION WILL ALWAYS SUCCEED.
039581,000565: 30,3603 10145 DV TEM5
039582,000566: 30,3604 54001 TSL&TCQ TS L
039583,000567: 30,3605 22141 LXCH TEM1
039584,000568: 30,3606 00002 TC Q
039585,000569:
![]() |
Page 915 |
039587,000571: # ARCTRGSP RETURNS THE 2'S COMPLEMENT, PI, SP ANGLE IN THE A REGISTER GIVEN ITS SINE IN A AND ITS COSINE IN L IN
039588,000572: # UNITS OF 2. THE RESULT IS AN UNAMBIGUOUS ANGLE ANYWHERE IN THE CIRCLE, WITH A MAXIMUM ERROR OF +-4 BITS.
039589,000573: # THE ERROR IS PRODUCED BY THE SUBROUTINE SPARCSIN WHICH IS USED ONLY IN THE REGION +-45 DEGREES.
039590,000574:
039591,000575: 30,3607 00006 ARCTRGSP EXTEND
039592,000576: 30,3610 13652 BZF SINZERO # TO AVOID DIVIDING BY ZERO
039593,000577:
039594,000578: 30,3611 00006 EXTEND
039595,000579: 30,3612 22144 QXCH TEM4
039596,000580: 30,3613 54142 TS TEM2
039597,000581: 30,3614 30001 CA L
039598,000582: 30,3615 54143 TS TEM3
039599,000583: 30,3616 34755 CA ZERO
039600,000584: 30,3617 00006 EXTEND
039601,000585: 30,3620 10142 DV TEM2
039602,000586: 30,3621 00006 EXTEND
039603,000587: 30,3622 13641 BZF USECOS
039604,000588:
039605,000589: 30,3623 10143 CCS TEM3 # SIN IS SMALLER OR EQUAL
039606,000590: 30,3624 34755 CA ZERO
039607,000591: 30,3625 13631 TCF +4
039608,000592: 30,3626 40142 CS TEM2 # IF COS NEG, REVERSE SIGN OF SIN,
039609,000593: 30,3627 54142 TS TEM2 # ANGLE = PI-ARCSIN(SIN)
039610,000594: 30,3630 34735 CA NEGMAX # PICK UP PI, 2'S COMPLEMENT
039611,000595: 30,3631 54143 TS TEM3 # WE NO LONGER NEED COS
039612,000596: 30,3632 30142 CA TEM2
039613,000597: 30,3633 03657 TC SPARCSIN -1
039614,000598: 30,3634 03730 TC ONESTO2S
039615,000599: 30,3635 00006 EXTEND
039616,000600: 30,3636 20143 MSU TEM3
039617,000601: 30,3637 03730 1TO2&TCQ TC ONESTO2S
039618,000602: 30,3640 00144 TC TEM4
039619,000603:
039620,000604: 30,3641 40143 USECOS CS TEM3 # COS IS SMALLER
039621,000605: 30,3642 03657 TC SPARCSIN -1 # ANGLE = SIGN(SIN)(PI/2-ARCSIN(COS))
039622,000606: 30,3643 64736 AD HALF
039623,000607: 30,3644 54143 TS TEM3 # WE NO LONGER NEED COS
039624,000608: 30,3645 10142 CCS TEM2
039625,000609: 30,3646 30143 CA TEM3
039626,000610: 30,3647 13637 TCF 1TO2&TCQ
039627,000611: 30,3650 40143 CS TEM3
039628,000612: 30,3651 13637 TCF 1TO2&TCQ
039629,000613:
039630,000614: 30,3652 10001 SINZERO CCS L
039631,000615: 30,3653 34755 CA ZERO
039632,000616: 30,3654 00002 TC Q
039633,000617: 30,3655 34735 CA NEGMAX # PI, 2'S COMP
039634,000618: 30,3656 00002 TC Q
039635,000619:
![]() |
Page 916 |
039637,000621: # SPARCSIN TAKES AN ARGUMENT SCALED UNITY IN A AND RETURNS AN ANGLE SCALED
039638,000622: # 180 DEGREES IN A. IT HAS BEEN UNIT TESTED IN THE REGION +-.94 (+-70
039639,000623: # DEGREES) AND THE MAXIMUM ERROR IS +-5 BITS WITH AN AVERAGE TIME OF
039640,000624: # 450 MICROSECONDS. SPARCSIN -1 TAKES THE ARGUMENT SCALED TWO. (BOB CRISP)
039641,000625:
039642,000626: 30,3657 60000 DOUBLE
039643,000627: 30,3660 54021 SPARCSIN TS SR
039644,000628: 30,3661 13665 TCF +4
039645,000629: 30,3662 50000 INDEX A
039646,000630: 30,3663 44734 CS LIMITS
039647,000631: 30,3664 54021 TS SR
039648,000632: 30,3665 00006 EXTEND
039649,000633: 30,3666 70000 MP A
039650,000634: 30,3667 54141 TS TEM1
039651,000635: 30,3670 00006 EXTEND
039652,000636: 30,3671 73713 MP DPL9
039653,000637: 30,3672 63712 AD DPL7
039654,000638: 30,3673 00006 EXTEND
039655,000639: 30,3674 70141 MP TEM1
039656,000640: 30,3675 63711 AD DPL5
039657,000641: 30,3676 00006 EXTEND
039658,000642: 30,3677 70141 MP TEM1
039659,000643: 30,3700 63710 AD DPL3
039660,000644: 30,3701 00006 EXTEND
039661,000645: 30,3702 70141 MP TEM1
039662,000646: 30,3703 63707 AD DPL1
039663,000647: 30,3704 00006 EXTEND
039664,000648: 30,3705 70021 MP SR
039665,000649: 30,3706 00002 TC Q
039666,000650: 30,3707 24406 DPL1 DEC 10502 B-14
039667,000651: 30,3710 00660 DPL3 DEC 432 B-14
039668,000652: 30,3711 16204 DPL5 DEC 7300 B-14
039669,000653: 30,3712 50744 DPL7 DEC -11803 B-14
039670,000654: 30,3713 20315 DPL9 DEC 8397 B-14
039671,000655:
![]() |
Page 917 |
039673,000657: # LIMITSUB LIMITS THE MAGNITUDE OF THE POSITIVE OR NEGATIVE VARIABLE
039674,000658: # ARRIVING IN L TO THE POSITIVE LIMIT ARRIVING IN A.
039675,000659: # THE SIGNED LIMITED VARIABLE IS RETURNED IN A.
039676,000660:
039677,000661: # VERSION COURTESY HUGH BLAIR-SMITH
039678,000662:
039679,000663: 30,3714 54141 LIMITSUB TS TEM1
039680,000664: 30,3715 34755 CA ZERO
039681,000665: 30,3716 00006 EXTEND
039682,000666: 30,3717 10141 DV TEM1
039683,000667: 30,3720 10000 CCS A
039684,000668: 30,3721 22141 LXCH TEM1
039685,000669: 30,3722 13724 TCF +2
039686,000670: 30,3723 13726 TCF +3
039687,000671: 30,3724 30001 CA L
039688,000672: 30,3725 00002 TC Q
039689,000673: 30,3726 40141 CS TEM1
039690,000674: 30,3727 00002 TC Q
039691,000675:
039692,000676: # SUBROUTINE TO CONVERT 1'S COMP SP TO 2'S COMP
039693,000677:
039694,000678: 30,3730 10000 ONESTO2S CCS A
039695,000679: 30,3731 64753 AD ONE
039696,000680: 30,3732 00002 TC Q
039697,000681: 30,3733 40000 CS A
039698,000682: 30,3734 00002 TC Q
039699,000683:
039700,000684: # NO ATTITUDE CONTROL
039701,000685:
039702,000686: 30,3735 05567 NOATTCNT TC ALARM
039703,000687: 30,3736 00402 OCT 00402 # NO ATTITUDE CONTROL
039704,000688:
039705,000689: 30,3737 00004 +2 INHINT # COME HERE FOR NOATTCNT WITHOUT ALARM
039706,000690: 30,3740 04674 TC IBNKCALL # RELINT AT TC INTPRET AFTER TCQCDUW
039707,000691: 30,3741 40166 FCADR STOPRATE
039708,000692: 30,3742 13462 TCF TCQCDUW # RETURN TO USER SKIPPING AUTOPILOT CMDS
039709,000693:
039710,000694: # MIDDLE GIMBAL ANGLE ALARM
039711,000695:
039712,000696: 30,3743 05567 ALARMMGA TC ALARM
039713,000697: 30,3744 00401 OCT 00401
039714,000698: 30,3745 13262 TCF MGARET
039715,000699:
![]() |
Page 918 |
039717,000701: # ************************************************************************
039718,000702: # CONSTANTS
039719,000703: # ************************************************************************
039720,000704:
039721,000705: # ADDRESS CONSTANTS
039722,000706:
039723,000707: 30,3746 03246 ECDUWL ECADR ECDUW
039724,000708:
039725,000709: # THRUST DIRECTION FILTER CONSTANTS
039726,000710:
039727,000711: 30,3747 06315 GAINFLTR DEC .2 # GAIN FILTER SANS CSM
039728,000712: 30,3750 03146 DEC .1 # GAIN FILTER WITH CSM
039729,000713:
039730,000714: 30,3751 00071 DUNFVLIM DEC .007 B-1 # 7 MR MAX CHG IN F DIR IN VEH IN 2 SECS.
039731,000715: # THIS DOES NOT ALLOW FOR S/C ROT RATE.
039732,000716:
039733,000717: 30,3752 02041 UNFVLIM DEC .129 B-1 # 129 MR MAX THRUST OFFSET. 105 MR TRAVEL
039734,000718: # +10MR DEFL+5MR MECH MOUNT+9MR ABLATION.
039735,000719:
039736,000720: # CONSTANTS RELATED TO GIMBAL ANGLE COMPUTATIONS
039737,000721:
039738,000722: 30,3753 01673 DOTSWFMX DEC .93302 B-4 # LIM COLNRTY OF UNWC/2 & UNFC/2 TO 85 DEG
039739,000723: # LOWER PART COMES FROM NEXT CONSTANT
039740,000724:
039741,000725: 30,3754 03434 DAXMAX DEC .11111111111 # DELATTX LIM TO 20 DEG IN 2 SECS, 1'S, PI
039742,000726: 30,3755 00266 DEC .0111111111 # 2 DEG WHEN CSM DOCKED
039743,000727:
039744,000728: 30,3756 01616 DAY/2MAX DEC .05555555555 # LIKEWISE FOR DELATTY
039745,000729: 30,3757 00133 DEC .0055555555
039746,000730:
039747,000731: 30,3760 30,3754 DAZMAX = DAXMAX # LIKEWISE FOR DELATTZ
039748,000732:
039749,000733: 30,3760 14344 CDUZDLIM DEC .3888888888 # 70 DEG LIMIT FOR MGA, 1'S, PI
039750,000734:
039751,000735: # CONSTANTS FOR DATA TRANSFER
039752,000736:
039753,000737: 30,3761 01463 DT/DELT DEC .05 # .1 SEC/2 SEC WHICH IS THE AUTOPILOT
039754,000738: # CONTROL SAMPLE PERIOD/COMPUTATION PERIOD
039755,000739:
039756,000740: 30,3762 30,3756 DELERLIM = DAY/2MAX # 10 DEG LIMIT FOR LAG ANGLES, 1'S, PI
039757,000741:
End of include-file FINDCDUW_-_GUIDAP_INTERFACE.agc. Parent file is MAIN.agc