Source Code
![]() |
This is a reconstruction of the AGC program Luminary 99 Rev 0. It was the
second release of the Lunar Module flight software targeted for use in Apollo 11, after Luminary 97.
A bug (which had been around since at least Apollo 10, Luminary 69) was
discovered in Rev 0 shortly before the Apollo 11 flight, resulting in a last minute
revision into Rev 1,
which is what actually flew rather than
the Rev 0 presented here. A hardcopy of Rev 0 is known to
exist — it belonged to AGC developer Allan Klumpp for many years — but
unfortunately the Virtual AGC Project has not had access to that hardcopy. Thus
the code you see here had been reconstructed (we believe accurately) rather than
transcribed. The first step of the reconstruction of the Rev 0 source code was
the transcription of the Rev 1 source code from a hardcopy in the MIT Museum collection.
The process of reverting the active portion of the source code (i.e., other than
program comments) from Rev 1 to Rev 0 was very minor, consisting
only of moving the position of the STARTSB1 label in
FRESH START AND RESTART. Allan had previously given
us the checksums of the memory banks of Rev 0, and we have verified the program presented here has checksums
identical to all banks of Allan's listing of Rev 0. The notations on Allan's Rev 0 program listing read,
in part:GAP: ASSEMBLE REVISION 099 OF AGC PROGRAM LUMINARY BY NASA 2021112-051 A single program comment is known to differ between Rev 0 and Rev 1, but these are harder to reconstruct and verify than changes to the active portion of the code. Thus it is possible that there are additional differences between the program comments in Rev 0 and Rev 1 that are unknown to us, and therefore are not reflected in the code presented here. |
040495,000002: ## Copyright: Public domain.
040496,000003: ## Filename: FINDCDUW_-_GUIDAP_INTERFACE.agc
040497,000004: ## Purpose: Part of the reconstructed source code for LMY99 Rev 0,
040498,000005: ## otherwise known as Luminary Rev 99, the second release
040499,000006: ## of the Apollo Guidance Computer (AGC) software for Apollo 11.
040500,000007: ## It differs from LMY99 Rev 1 (the flown version) only in the
040501,000008: ## placement of a single label. The corrections shown here have
040502,000009: ## been verified to have the same bank checksums as AGC developer
040503,000010: ## Allan Klumpp's copy of Luminary Rev 99, and so are believed
040504,000011: ## to be accurate. This file is intended to be a faithful
040505,000012: ## recreation, except that the code format has been changed to
040506,000013: ## conform to the requirements of the yaYUL assembler rather than
040507,000014: ## the original YUL assembler.
040508,000015: ##
040509,000016: ## Assembler: yaYUL
040510,000017: ## Contact: Hartmuth Gutsche <hgutsche@xplornet.com>.
040511,000018: ## Website: www.ibiblio.org/apollo.
040512,000019: ## Pages: 908-925
040513,000020: ## Mod history: 2009-05-28 HG Transcribed from page images.
040514,000021: ## 2016-12-17 RSB Proofed text comments with octopus/ProoferComments
040515,000022: ## and corrected the errors found.
040516,000023: ## 2017-03-10 RSB Comment-text fixes noted in proofing Luminary 116.
040517,000024: ## 2017-03-15 RSB Comment-text fixes identified in 5-way
040518,000025: ## side-by-side diff of Luminary 69/99/116/131/210.
040519,000026: ## 2017-08-01 MAS Created from LMY99 Rev 1.
040520,000027:
040521,000028: ## This source code has been transcribed or otherwise adapted from
040522,000029: ## digitized images of a hardcopy from the MIT Museum. The digitization
040523,000030: ## was performed by Paul Fjeld, and arranged for by Deborah Douglas of
040524,000031: ## the Museum. Many thanks to both. The images (with suitable reduction
040525,000032: ## in storage size and consequent reduction in image quality as well) are
040526,000033: ## available online at www.ibiblio.org/apollo. If for some reason you
040527,000034: ## find that the images are illegible, contact me at info@sandroid.org
040528,000035: ## about getting access to the (much) higher-quality images which Paul
040529,000036: ## actually created.
040530,000037: ##
040531,000038: ## The code has been modified to match LMY99 Revision 0, otherwise
040532,000039: ## known as Luminary Revision 99, the Apollo 11 software release preceeding
040533,000040: ## the listing from which it was transcribed. It has been verified to
040534,000041: ## contain the same bank checksums as AGC developer Allan Klumpp's listing
040535,000042: ## of Luminary Revision 99 (for which we do not have scans).
040536,000043: ##
040537,000044: ## Notations on Allan Klumpp's listing read, in part:
040538,000045: ##
040539,000046: ## ASSEMBLE REVISION 099 OF AGC PROGRAM LUMINARY BY NASA 2021112-51
040540,000047:
![]() |
Page 908 |
040542,000049: # PROGRAM NAME: FINDCDUW
040543,000050: # MOD NUMBER: 1 68 07 15
040544,000051: # MOD AUTHOR: KLUMPP
040545,000052:
040546,000053: # OBJECTS OF MOD: 1. TO SUPPLY COMMANDED GIMBAL ANGLES FOR NOUN 22.
040547,000054: # 2. TO MAINTAIN CORRECT AND CURRENT THRUST
040548,000055: # DIRECTION DATA IN ALL MODES. THIS IS DONE BY
040549,000056: # FETCHING FOR THE THRUST DIRECTION FILTER THE
040550,000057: # CDUD'S IN PNGCS-AUTO, THE CDU'S IN ALL OTHER
040551,000058: # MODES.
040552,000059: # 3. TO SUBSTITUTE A STOPRATE FOR THE NORMAL
040553,000060: # AUTOPILOT COMMANDS WHENEVER
040554,000061: # 1) NOT IN PNGCS-AUTO, OR
040555,000062: # 2) ENGINE IS OFF.
040556,000063:
040557,000064: # FUNCTIONAL DESCRIPTION:
040558,000065:
040559,000066: # FINDCDUW PROVIDES THE INTERFACES BETWEEN THE VARIOUS POWERED FLITE GUIDANCE PROGRAMS
040560,000067: # AND THE DIGITAL AUTOPILOT. THE INPUTS TO FINDCDUW ARE THE THRUST COMMAND VECTOR
040561,000068: # AND THE WINDOW COMMAND VECTOR, AND THE OUTPUTS ARE THE GIMBAL ANGLE
040562,000069: # INCREMENTS, THE COMMANDED ATTITUDE ANGLE RATES, AND THE COMMANDED
040563,000070: # ATTITUDE LAG ANGLES (WHICH ACCOUNT FOR THE ANGLES BY WHICH THE BODY WILL
040564,000071: # LAG BEHIND A RAMP COMMAND IN ATTITUDE ANGLE DUE TO THE FINITE ANGULAR
040565,000072: # ACCELERATIONS AVAILABLE).
040566,000073:
040567,000074: # FINDCDUW ALINES THE ESTIMATED THRUST VECTOR FROM THE THRUST DIRECTION
040568,000075: # FILTER WITH THE THRUST COMMAND VECTOR, AND, WHEN XOVINHIB SET,
040569,000076: # ALINES THE +Z HALF OF THE LM ZX PLANE WITH THE WINDOW COMMAND VECTOR.
040570,000077:
![]() |
Page 909 |
040572,000079: # SPECIFICATIONS:
040573,000080:
040574,000081: # INITIALIZATION: A SINGLE INTERPRETIVE CALL TO INITCDUW IS REQUIRED
040575,000082: # BEFORE EACH GUIDED MANEUVER USING FINDCDUW.
040576,000083:
040577,000084: # CALL: INTERPRETIVE CALL TO FINDCDUW WITH THE THRUST COMMAND
040578,000085: # VECTOR IN MPAC. INTERPRETIVE CALL TO FINDCDUW -2 WITH
040579,000086: # THE THRUST COMMAND VECTOR IN UNFC/2 AND NOT IN MPAC.
040580,000087:
040581,000088: # RETURNS: NORMAL INTERPRETIVE IN ALL CASES
040582,000089: # 1. NORMALLY ALL AUTOPILOT CMDS ARE ISSUED.
040583,000090: # 2. IF NOT PNGCS AUTO, DO STOPRATE AND RETURN
040584,000091: # WITHOUT ISSUING AUTOPILOT CMDS.
040585,000092: # 3. IF ENGINE OFF, DO STOPRATE AND RETURN WITHOUT
040586,000093: # ISSUING AUTOPILOT CMDS.
040587,000094:
040588,000095: # ALARMS: 00401 IF INPUTS DETERMINE AN ATTITUDE IN GIMBAL LOCK.
040589,000096: # FINDCDUW DRIVES CDUXD AND CDUYD TO THE RQD VALUES,
040590,000097: # BUT DRIVES CDUZD ONLY TO THE GIMBAL LOCK CONE.
040591,000098:
040592,000099: # 00402 IF UNFC/2 OR UNWC/2 PRODUCE OVERFLOW WHEN
040593,000100: # UNITIZED USING NORMUNIT. FINDCDUW ISSUES
040594,000101: # STOPRATE AS ONLY INPUT TO AUTOPILOT.
040595,000102:
040596,000103: # INPUTS: UNFC/2 THRUST COMMAND VECTOR, NEED NOT BE SEMI-UNIT.
040597,000104: # UNWC/2 WINDOW COMMAND VECTOR, NEED NOT BE SEMI-UNIT.
040598,000105: # XOVINHIB FLAG DENOTING X AXIS OVERRIDE INHIBITED.
040599,000106: # CSMDOCKD FLAG DENOTING CSM DOCKED.
040600,000107: # STEERSW FLAG DENOTING INSUFF THRUST FOR THRUST DIR FLTR.
040601,000108:
040602,000109: # OUTPUTS: DELCDUX,Y,Z
040603,000110: # OMEGAPD,+1,+2
040604,000111: # DELPEROR,+1,+2
040605,000112: # CPHI,+1,+2 FOR NOUN22
040606,000113:
040607,000114: # DEBRIS: FINDCDUW DESTROYS SINCDUX,Y,Z AND COSCDUX,Y,Z BY
040608,000115: # WRITING INTO THESE LOCATIONS THE SINES AND COSINES
040609,000116: # OF THE CDUD'S IN PNGCS-AUTO, OF THE CDU'S OTHERWISE.
040610,000117:
![]() |
Page 910 |
040612,000119: # INITIALIZATION FOR FINDCDUW
040613,000120:
040614,000121: 30,3104 BANK 30
040615,000122: 30,2000 SETLOC FCDUW
040616,000123: 30,2000 BANK
040617,000124:
040618,000125: 30,3104 E6,1646 EBANK= ECDUW
040619,000126: 30,3104 COUNT* $$/FCDUW
040620,000127:
040621,000128: 30,3104 77775 INITCDUW VLOAD
040622,000129: 30,3105 06520 UNITX
040623,000130: 30,3106 03270 STORE UNFV/2
040624,000131: 30,3107 03262 STORE UNWC/2
040625,000132: 30,3110 77616 RVQ
040626,000133:
040627,000134: # FINDCDUW PRELIMINARIES
040628,000135:
040629,000136: 30,3111 77775 VLOAD # FINDCDUW -2: ENTRY WHEN UNFC/2 PRE-STORD
040630,000137: 30,3112 03254 UNFC/2 # INPUT VECTORS NEED NOT BE SEMI-UNIT
040631,000138: 30,3113 40200 FINDCDUW BOV SETPD # FINDCDUW: ENTRY WHEN UNFC/2 IN MPAC
040632,000139: 30,3114 61113 FINDCDUW # INTERPRETER NOW INITIALIZED
040633,000140: 30,3115 00023 22 # LOCS 0 THRU 21 FOR DIRECTION COSINE MAT
040634,000141: 30,3116 77420 STQ EXIT
040635,000142: 30,3117 03247 QCDUWUSR # SAVE RETURN ADDRESS
040636,000143:
040637,000144: # MORE HAUSKEEPING
040638,000145: 30,3120 33761 CA ECDUWL
040639,000146: 30,3121 56003 XCH EBANK # SET EBANK
040640,000147: 30,3122 55646 TS ECDUWUSR # SAVE USER'S EBANK
040641,000148:
040642,000149: 30,3123 30111 CA DAPBOOLS
040643,000150: 30,3124 74737 MASK CSMDOCKD # CSMDOCKD MUST NOT BE BIT15
040644,000151: 30,3125 10000 CCS A
040645,000152: 30,3126 34753 CA ONE # INDEX IF CSM DOCKED
040646,000153: 30,3127 55650 TS NDXCDUW
040647,000154:
040648,000155: 30,3130 34743 CA XOVINHIB # XOVINHIB MUST NOT BE BIT15
040649,000156: 30,3131 55652 TS FLPAUTNO # SET TO POS-NON-ZERO FLAG PNGCS AUTO NOT
040650,000157:
040651,000158: 30,3132 70111 MASK DAPBOOLS
040652,000159: 30,3133 55651 TS FLAGOODW # FLAGOODW = ANY PNZ NUMBER IF XOV INHIBTD
040653,000160:
![]() |
Page 911 |
040655,000162: # FETCH BASIC DATA
040656,000163: 30,3134 00004 INHINT # RELINT AT PAUTNO (TC INTPRET)
040657,000164:
040658,000165: 30,3135 30032 CA CDUX # FETCH CDUX,CDUY,CDUZ IN ALL CASES, BUT
040659,000166: 30,3136 54772 TS CDUSPOTX # REPLACE BELOW IF PNGCS AUTO
040660,000167: 30,3137 30033 CA CDUY
040661,000168: 30,3140 54766 TS CDUSPOTY
040662,000169: 30,3141 30034 CA CDUZ
040663,000170: 30,3142 54770 TS CDUSPOTZ
040664,000171:
040665,000172: 30,3143 34742 CA BIT10 # PNGCS CONTROL BIT
040666,000173: 30,3144 00006 EXTEND
040667,000174: 30,3145 02030 RAND CHAN30
040668,000175: 30,3146 10000 CCS A
040669,000176: 30,3147 13164 TCF PAUTNO # NOT PNGCS (BITS INVERTED)
040670,000177:
040671,000178: 30,3150 34736 CA BIT14 # AUTO MODE BIT
040672,000179: 30,3151 00006 EXTEND
040673,000180: 30,3152 02031 RAND CHAN31
040674,000181: 30,3153 10000 CCS A
040675,000182: 30,3154 13164 TCF PAUTNO # NOT AUTO (BITS INVERTED)
040676,000183:
040677,000184: 30,3155 55652 TS FLPAUTNO # RESET FLAG PNGCS AUTO NOT
040678,000185:
040679,000186: 30,3156 31635 CA CDUXD # PNGCS AUTO: FETCH CDUXD,CDUYD,CDUZD
040680,000187: 30,3157 54772 TS CDUSPOTX
040681,000188: 30,3160 31636 CA CDUYD
040682,000189: 30,3161 54766 TS CDUSPOTY
040683,000190: 30,3162 31637 CA CDUZD
040684,000191: 30,3163 54770 TS CDUSPOTZ
040685,000192:
![]() |
Page 912 |
040687,000194: # FETCH INPUTS
040688,000195: 30,3164 06037 PAUTNO TC INTPRET # ENTERING THRUST CMD STILL IN MPAC
040689,000196: 30,3165 77634 RTB
040690,000197: 30,3166 21726 NORMUNIT
040691,000198: 30,3167 24001 STOVL UNX/2 # SEMI-UNIT THRUST CMD AS INITIAL UNX/2
040692,000199: 30,3170 03262 UNWC/2
040693,000200: 30,3171 47034 RTB RTB
040694,000201: 30,3172 21726 NORMUNIT
040695,000202: 30,3173 47615 QUICTRIG # ALWAYS RQD TO OBTAIN TRIGS OF CDUD'S
040696,000203: 30,3174 24015 STOVL UNZ/2 # SEMI-UNIT WINDOW CMD AS INITIAL UNZ/2
040697,000204: 30,3175 00325 DELV
040698,000205: 30,3176 53404 BOVB UNIT
040699,000206: 30,3177 61750 NOATTCNT # AT LEAST ONE ENTERING CMD VCT ZERO
040700,000207: 30,3200 45000 BOV CALL
040701,000208: 30,3201 61215 AFTRFLTR # IF UNIT DELV OVERFLOWS, SKIP FILTER
040702,000209: 30,3202 47671 *SMNB* # YIELDS UNIT(DELV) IN VEH COORDS FOR FLTR
040703,000210:
040704,000211: # THRUST DIRECTION FILTER
040705,000212:
040706,000213: 30,3203 77776 EXIT
040707,000214:
040708,000215: 30,3204 31671 CA UNFVY/2 # FOR RESTARTS, UNFV/2 ALWAYS INTACT, MPAC
040709,000216: 30,3205 22157 LXCH MPAC +3 # RENEWED AFTER RETURN FROM CALLER,
040710,000217: 30,3206 03503 TC FLTRSUB # TWO FILTER UPDATES MAY BE DONE.
040711,000218: 30,3207 55671 TS UNFVY/2 # UNFV/2 NEED NOT BE EXACTLY SEMI-UNIT.
040712,000219:
040713,000220: 30,3210 31673 CA UNFVZ/2
040714,000221: 30,3211 22161 LXCH MPAC +5
040715,000222: 30,3212 03503 TC FLTRSUB
040716,000223: 30,3213 55673 TS UNFVZ/2
040717,000224:
040718,000225: 30,3214 06037 TC INTPRET # COMPLETES FILTER
040719,000226:
![]() |
Page 913 |
040721,000228: # FIND A SUITABLE WINDOW POINTING VECTOR
040722,000229:
040723,000230: 30,3215 46135 AFTRFLTR SLOAD BHIZ # IF XOV NOT INHIBITED, GO FETCH ZNB
040724,000231: 30,3216 03252 FLAGOODW
040725,000232: 30,3217 61223 FETCHZNB
040726,000233: 30,3220 45175 VLOAD CALL
040727,000234: 30,3221 00015 UNZ/2
040728,000235: 30,3222 61523 UNWCTEST
040729,000236:
040730,000237: 30,3223 77775 FETCHZNB VLOAD
040731,000238: 30,3224 02162 ZNBPIP
040732,000239: 30,3225 34015 STCALL UNZ/2
040733,000240: 30,3226 61523 UNWCTEST
040734,000241:
040735,000242: 30,3227 57575 VLOAD VCOMP # Z AND -X CAN'T BOTH PARALLEL UNFC/2
040736,000243: 30,3230 02146 XNBPIP
040737,000244: 30,3231 00015 STORE UNZ/2
040738,000245:
040739,000246: # COMPUTE THE REQUIRED DIRECTION COSINE MATRIX
040740,000247:
040741,000248: 30,3232 47375 DCMCL VLOAD VXV
040742,000249: 30,3233 00015 UNZ/2
040743,000250: 30,3234 00001 UNX/2
040744,000251: 30,3235 41456 UNIT PUSH # UNY/2 FIRST ITERATION
040745,000252: 30,3236 76435 VXV VSL1
040746,000253: 30,3237 00001 UNX/2
040747,000254: 30,3240 00015 STORE UNZ/2 # -UNZ/2 FIRST ITERATION
040748,000255: 30,3241 63361 VXSC PDVL # EXCHANGE -UNFVZ/2 UNZ/2 FOR UNY/2
040749,000256: 30,3242 03274 UNFVZ/2 # MUST BE SMALL
040750,000257: 30,3243 51361 VXSC BVSU # YIELDS -UNFVY/2 UNY/2-UNFVZ/2 UNZ/2
040751,000258: 30,3244 03272 UNFVY/2 # MUST BE SMALL
040752,000259: 30,3245 53372 VSL1 VAD
040753,000260: 30,3246 00001 UNX/2
040754,000261: 30,3247 77656 UNIT # TOTALLY ELIMINATES THRUST POINTING ERROR
040755,000262: 30,3250 00001 STORE UNX/2 # UNX/2
040756,000263: 30,3251 76435 VXV VSL1
040757,000264: 30,3252 00015 UNZ/2 # -UNZ/2 WAS STORED HERE REMEMBER
040758,000265: 30,3253 00007 STORE UNY/2 # UNY/2
040759,000266: 30,3254 47276 VCOMP VXV
040760,000267: 30,3255 00001 UNX/2
040761,000268: 30,3256 77772 VSL1
040762,000269: 30,3257 00015 STORE UNZ/2 # UNZ/2
040763,000270:
![]() |
Page 914 |
040765,000272: # COMPUTE THE REQUIRED GIMBAL ANGLES
040766,000273:
040767,000274: 30,3260 77624 CALL
040768,000275: 30,3261 61533 NB2CDUSP # YIELDS THE RQD GIMBAL ANGLES, 2'S, PI
040769,000276: 30,3262 77776 EXIT
040770,000277:
040771,000278: # LIMIT THE MIDDLE GIMBAL ANGLE & COMPUTE THE UNLIMITED GIMBAL ANGLE CHGS
040772,000279:
040773,000280: 30,3263 30156 CA MPAC +2 # LIMIT THE MGA
040774,000281: 30,3264 54001 TS L # CAN'T LXCH: NEED UNLIMITED MGA FOR ALARM
040775,000282: 30,3265 33773 CA CDUZDLIM
040776,000283: 30,3266 03727 TC LIMITSUB # YIELDS LIMITED MGA. 1 BIT ERROR POSSIBLE
040777,000284: 30,3267 56156 XCH MPAC +2 # BECAUSE USING 2'S COMP. WHO CARES?
040778,000285: 30,3270 00006 EXTEND
040779,000286: 30,3271 20156 MSU MPAC +2 # THIS BETTER YIELD ZERO
040780,000287: 30,3272 00006 EXTEND
040781,000288: 30,3273 13275 BZF +2
040782,000289: 30,3274 13756 TCF ALARMMGA
040783,000290:
040784,000291: 30,3275 00004 MGARET INHINT # RELINT AT TC INTPRET AFTER TCQCDUW
040785,000292:
040786,000293: 30,3276 22007 ZL
040787,000294: 30,3277 34752 CA TWO
040788,000295: 30,3300 54142 DELGMBLP TS TEM2
040789,000296:
040790,000297: 30,3301 30001 CA L # TO PREVENT FALSE STARTS ABOUT X, ZERO
040791,000298: 30,3302 00006 EXTEND # FLAGOODW IF DELGMBZ OR Y TOO BIG.
040792,000299: 30,3303 70000 SQUARE
040793,000300: 30,3304 64350 AD HI5 # WITHIN 1 BIT OF -(45 DEG SQUARED)
040794,000301: 30,3305 00006 EXTEND
040795,000302: 30,3306 63311 BZMF +3
040796,000303: 30,3307 34755 CA ZERO
040797,000304: 30,3310 55651 TS FLAGOODW
040798,000305:
040799,000306: 30,3311 50142 INDEX TEM2
040800,000307: 30,3312 30154 CA MPAC
040801,000308: 30,3313 50142 INDEX TEM2
040802,000309: 30,3314 54321 TS CPHI # OUTPUTS TO NOUN22
040803,000310: 30,3315 00006 EXTEND
040804,000311: 30,3316 50142 INDEX TEM2
040805,000312: 30,3317 21635 MSU CDUXD # NO MATTER THAT THESE SLIGHTLY DIFFERENT
040806,000313: 30,3320 40000 COM # FROM WHEN WE INITIALLY FETCHED THEM
040807,000314: 30,3321 50142 INDEX TEM2
040808,000315: 30,3322 55675 TS -DELGMB # -UNLIMITED GIMBAL ANGLE CHGS, 1'S, PI
040809,000316: 30,3323 54001 TS L # FOR PRECEDING TEST ON NEXT LOOP PASS
040810,000317: 30,3324 10142 CCS TEM2
040811,000318: 30,3325 13300 TCF DELGMBLP
040812,000319:
![]() |
Page 915 |
040814,000321: # BRANCHES TO NOATTCNT
040815,000322: 30,3326 11652 CCS FLPAUTNO
040816,000323: 30,3327 13752 TCF NOATTCNT +2 # NOT PNGCS AUTO
040817,000324:
040818,000325: 30,3330 30101 CA FLAGWRD5
040819,000326: 30,3331 74745 MASK ENGONBIT
040820,000327: 30,3332 00006 EXTEND
040821,000328: 30,3333 13752 BZF NOATTCNT +2 # ENGINE NOT ON
040822,000329:
![]() |
Page 916 |
040824,000331: # LIMIT THE ATTITUDE ANGLE CHANGES
040825,000332:
040826,000333: # THIS SECTION LIMITS THE ATTITUDE ANGLE CHANGES ABOUT A SET OF ORTHOGONAL VEHICLE AXES X,YPRIME,ZPRIME.
040827,000334: # THESE AXES COINCIDE WITH THE COMMANDED VEHICLE AXES IF AND ONLY IF CDUXD IS ZERO. THE PRIME SYSTEM IS
040828,000335: # THE COMMANDED VEHICLE SYSTEM ROTATED ABOUT THE X AXIS TO BRING THE Z AXIS INTO ALINEMENT WITH THE MIDDLE GIMBAL
040829,000336: # AXIS. ATTITUDE ANGLE CHANGES IN THE PRIME SYSTEM ARE RELATED TO SMALL GIMBAL ANGLE CHANGES BY:
040830,000337:
040831,000338: # * -DELATTX * * 1 SIN(CDUZD) 0 * * -DELGMBX *
040832,000339: # * * * * * *
040833,000340: # * -DELATTYPRIME * = * 0 COS(CDUZD) 0 * * -DELGMBY *
040834,000341: # * * * * * *
040835,000342: # * -DELATTZPRIME * * 0 0 1 * * -DELGMBZ *
040836,000343:
040837,000344: 30,3334 23677 LXCH -DELGMB +2 # SAME AS -DELATTZPRIME UNLIMITED
040838,000345: 30,3335 51650 INDEX NDXCDUW
040839,000346: 30,3336 33767 CA DAZMAX
040840,000347: 30,3337 03727 TC LIMITSUB
040841,000348: 30,3340 55677 TS -DELGMB +2 # -DELGMBZ
040842,000349:
040843,000350: 30,3341 31676 CA -DELGMB +1
040844,000351: 30,3342 00006 EXTEND
040845,000352: 30,3343 70746 MP COSCDUZ # YIELDS -DELATTYPRIME/2 UNLIMITED
040846,000353: 30,3344 54001 TS L
040847,000354: 30,3345 51650 INDEX NDXCDUW
040848,000355: 30,3346 33771 CA DAY/2MAX
040849,000356: 30,3347 03727 TC LIMITSUB
040850,000357: 30,3350 00006 EXTEND
040851,000358: 30,3351 10746 DV COSCDUZ
040852,000359: 30,3352 57676 XCH -DELGMB +1 # -DELGMBY, FETCHING UNLIMITED VALUE
040853,000360:
040854,000361: 30,3353 00006 EXTEND
040855,000362: 30,3354 70740 MP SINCDUZ
040856,000363: 30,3355 20001 DDOUBL
040857,000364: 30,3356 40000 COM
040858,000365: 30,3357 00006 EXTEND # YIELDS +DELATTX UNLIMITD, MAG < 180 DEG,
040859,000366: 30,3360 21675 MSU -DELGMB # BASED ON UNLIMITED DELGMBY.
040860,000367: 30,3361 54001 TS L # ONE BIT ERROR IF OPERANDS IN MSU
040861,000368: 30,3362 51650 INDEX NDXCDUW # OF MIXED SIGNS. WHO CARES?
040862,000369: 30,3363 33767 CA DAXMAX
040863,000370: 30,3364 03727 TC LIMITSUB
040864,000371: 30,3365 55675 TS -DELGMB # SAVE LIMITED +DELATTX
040865,000372: 30,3366 11651 CCS FLAGOODW
040866,000373: 30,3367 41675 CS -DELGMB # FETCH IT BACK CHGING SIGN IF WINDOW GOOD
040867,000374: 30,3370 55675 TS -DELGMB # OTHERWISE USE ZERO FOR -DELATTX
040868,000375: 30,3371 41676 CS -DELGMB +1
040869,000376: 30,3372 00006 EXTEND
040870,000377: 30,3373 70740 MP SINCDUZ
040871,000378: 30,3374 20001 DDOUBL # YIELDS -CNTRIB TO -DELATTX FROM -DELGMBY
040872,000379: 30,3375 27675 ADS -DELGMB # -DELGMBX. NO OVERFLOW SINCE LIMITED TO
040873,000380: # 20DEG(1+SIN(70DEG)/COS(70DEG)) < 180DEG
040874,000381:
![]() |
Page 917 |
040876,000383: # COMPUTE COMMANDED ATTITUDE RATES
040877,000384:
040878,000385: # * OMEGAPD * * -2 -4 SINCDUZ +0 * * -DELGMBX *
040879,000386: # * * * * * *
040880,000387: # * OMEGAQD * = * +0 -8 COSCDUZ COSCDUX -4 SINCDUX * * -DELGMBY *
040881,000388: # * * * * * *
040882,000389: # * OMEGARD * * +0 +8 COSCDUZ SINCDUX -4 COSCDUX * * -DELGMBZ *
040883,000390:
040884,000391: # ATTITUDE ANGLE RATES IN UNITS OF PI/4 RAD/SEC = K TRIG FCNS IN UNITS OF 2 X GIMBAL ANGLE RATES IN UNITS OF
040885,000392: # PI/2 RAD/SEC. THE CONSTANTS ARE BASED ON DELGMB BEING THE GIMBAL ANGLE CHANGES IN UNITS OF PI RADIANS,
040886,000393: # AND 2 SECONDS BEING THE COMPUTATION PERIOD (THE PERIOD BETWEEN SUCCESSIVE PASSES THRU FINDCDUW).
040887,000394:
040888,000395: 30,3376 41675 CS -DELGMB
040889,000396: 30,3377 55643 TS OMEGAPD
040890,000397: 30,3400 41676 CS -DELGMB +1
040891,000398: 30,3401 00006 EXTEND
040892,000399: 30,3402 70740 MP SINCDUZ
040893,000400: 30,3403 20001 DDOUBL
040894,000401: 30,3404 27643 ADS OMEGAPD
040895,000402: 30,3405 27643 ADS OMEGAPD
040896,000403:
040897,000404: 30,3406 41676 CS -DELGMB +1
040898,000405: 30,3407 00006 EXTEND
040899,000406: 30,3410 70750 MP COSCDUX
040900,000407: 30,3411 20001 DDOUBL
040901,000408: 30,3412 00006 EXTEND
040902,000409: 30,3413 70746 MP COSCDUZ
040903,000410: 30,3414 55644 TS OMEGAQD
040904,000411: 30,3415 41677 CS -DELGMB +2
040905,000412: 30,3416 00006 EXTEND
040906,000413: 30,3417 70742 MP SINCDUX
040907,000414: 30,3420 27644 ADS OMEGAQD
040908,000415: 30,3421 27644 ADS OMEGAQD
040909,000416: 30,3422 27644 ADS OMEGAQD
040910,000417:
040911,000418: 30,3423 31676 CA -DELGMB +1
040912,000419: 30,3424 00006 EXTEND
040913,000420: 30,3425 70742 MP SINCDUX
040914,000421: 30,3426 20001 DDOUBL
040915,000422: 30,3427 00006 EXTEND
040916,000423: 30,3430 70746 MP COSCDUZ
040917,000424: 30,3431 55645 TS OMEGARD
040918,000425: 30,3432 41677 CS -DELGMB +2
040919,000426: 30,3433 00006 EXTEND
040920,000427: 30,3434 70750 MP COSCDUX
040921,000428: 30,3435 27645 ADS OMEGARD
040922,000429: 30,3436 27645 ADS OMEGARD
040923,000430: 30,3437 27645 ADS OMEGARD
040924,000431:
![]() |
Page 918 |
040926,000433: # FINAL TRANSFER
040927,000434:
040928,000435: 30,3440 34752 CA TWO
040929,000436: 30,3441 54142 CDUWXFR TS TEM2
040930,000437: 30,3442 50142 INDEX TEM2
040931,000438: 30,3443 31675 CA -DELGMB
040932,000439: 30,3444 00006 EXTEND
040933,000440: 30,3445 73774 MP DT/DELT # RATIO OF DAP INTERVAL TO CDUW INTERVAL
040934,000441: 30,3446 03743 TC ONESTO2S
040935,000442: 30,3447 50142 INDEX TEM2
040936,000443: 30,3450 55640 TS DELCDUX # ANGLE INTERFACE
040937,000444:
040938,000445: 30,3451 50142 INDEX TEM2
040939,000446: 30,3452 11643 CCS OMEGAPD
040940,000447: 30,3453 64753 AD ONE
040941,000448: 30,3454 13456 TCF +2
040942,000449: 30,3455 64753 AD ONE
040943,000450: 30,3456 00006 EXTEND # WE NOW HAVE ABS(OMEGAPD,QD,RD)
040944,000451: 30,3457 50142 INDEX TEM2
040945,000452: 30,3460 71643 MP OMEGAPD
040946,000453: 30,3461 00006 EXTEND
040947,000454: 30,3462 74741 MP BIT11 # 1/16
040948,000455: 30,3463 00006 EXTEND
040949,000456: 30,3464 50142 INDEX TEM2 # 2
040950,000457: 30,3465 11530 DV 1JACC # UNITS PI/4 RAD/SEC
040951,000458: 30,3466 54001 TS L
040952,000459: 30,3467 33771 CA DELERLIM
040953,000460: 30,3470 03727 TC LIMITSUB
040954,000461: 30,3471 50142 INDEX TEM2
040955,000462: 30,3472 55277 TS DELPEROR # LAG ANGLE = OMEGA ABS(OMEGA)/2 ACCEL
040956,000463: 30,3473 10142 CCS TEM2
040957,000464: 30,3474 13441 TCF CDUWXFR
040958,000465:
040959,000466: # HAUSKEEPING AND RETURN
040960,000467:
040961,000468: 30,3475 31646 TCQCDUW CA ECDUWUSR
040962,000469: 30,3476 54003 TS EBANK # RETURN USER'S EBANK
040963,000470:
040964,000471: 30,3477 06037 TC INTPRET
040965,000472: 30,3500 52001 SETPD GOTO
040966,000473: 30,3501 00001 0
040967,000474: 30,3502 03247 QCDUWUSR # NORMAL AND ABNORMAL RETURN TO USER
040968,000475:
![]() |
Page 919 |
040970,000477: # THRUST VECTOR FILTER SUBROUTINE
040971,000478:
040972,000479: 30,3503 00006 FLTRSUB EXTEND
040973,000480: 30,3504 22142 QXCH TEM2
040974,000481: 30,3505 54143 TS TEM3 # SAVE ORIGINAL OFFSET
040975,000482: 30,3506 40000 COM # ONE MCT, NO WDS, CAN BE SAVED IF NEG OF
040976,000483: 30,3507 60001 AD L # ORIG OFFSET ARRIVES IN A, BUT IT'S
040977,000484: 30,3510 00006 EXTEND # NOT WORTH THE INCREASED OBSCURITY.
040978,000485: 30,3511 51650 INDEX NDXCDUW
040979,000486: 30,3512 73762 MP GAINFLTR
040980,000487: 30,3513 54001 TS L # INCR TO OFFSET, UNLIMITED
040981,000488: 30,3514 33764 CA DUNFVLIM # SAME LIMIT FOR Y AND Z
040982,000489: 30,3515 03727 TC LIMITSUB # YIELDS INCR TO OFFSET, LIMITED
040983,000490: 30,3516 60143 AD TEM3 # ORIGINAL OFFSET
040984,000491: 30,3517 54001 TS L # TOTAL OFFSET, UNLIMITED
040985,000492: 30,3520 33765 CA UNFVLIM # SAME LIMIT FOR Y AND Z
040986,000493: 30,3521 03727 TC LIMITSUB # YIELDS TOTAL OFFSET, LIMITED
040987,000494: 30,3522 00142 TC TEM2
040988,000495:
040989,000496: # SUBR TO TEST THE ANGLE BETWEEN THE PROPOSED WINDOW AND THRUST CMD VCTS
040990,000497:
040991,000498: 30,3523 63441 UNWCTEST DOT DSQ
040992,000499: 30,3524 00001 UNX/2
040993,000500: 30,3525 50025 DSU BMN
040994,000501: 30,3526 21767 DOTSWFMX
040995,000502: 30,3527 61232 DCMCL
040996,000503: 30,3530 43531 SSP RVQ # RVQ FOR ALT CHOICE IF DOT MAGN TOO LARGE
040997,000504: 30,3531 03252 FLAGOODW # ZEROING WINDOW GOOD FLAG
040998,000505: 30,3532 00000 0
040999,000506:
![]() |
Page 920 |
041001,000508: # NB2CDUSP RETURNS THE 2'S COMPLEMENT, PI, SP CDU ANGLES X,Y,Z IN MPAC,+1,+2 GIVEN THE MATRIX WHOSE ROW VECTORS
041002,000509: # ARE THE SEMI-UNIT NAV BASE VECTORS X,Y,Z EXPRESSED IN STABLE MEMBER COORDINATES, LOCATED AT 0 IN THE PUSH LIST.
041003,000510: # NB2CDUSP USES ARCTRGSP WHICH HAS A MAXIMUM ERROR OF +-4 BITS.
041004,000511:
041005,000512: 30,3533 63545 NB2CDUSP DLOAD DSQ
041006,000513: 30,3534 00003 2
041007,000514: 30,3535 51021 BDSU BPL
041008,000515: 30,3536 06512 DP1/4TH
041009,000516: 30,3537 61542 +3
041010,000517: 30,3540 77745 DLOAD
041011,000518: 30,3541 06522 ZEROVECS # IN CASE SIN WAS SLIGHTLY > 1/2
041012,000519: 30,3542 77566 SQRT EXIT # YIELDS COS(CDUZ) IN UNITS OF 2
041013,000520:
041014,000521: 30,3543 00006 EXTEND
041015,000522: 30,3544 30155 DCA MPAC
041016,000523: 30,3545 20001 DDOUBL
041017,000524: 30,3546 54145 TS TEM5
041018,000525: 30,3547 13552 TCF +3
041019,000526: 30,3550 34733 CA POSMAX # OVERFLOW. FETCH POSMAX, MPAC ALWAYS POS
041020,000527: 30,3551 54145 TS TEM5 # COS(CDUZ) IN TEM5, UNITS 1
041021,000528:
041022,000529: 30,3552 50120 INDEX FIXLOC
041023,000530: 30,3553 30002 CA 2
041024,000531: 30,3554 22154 LXCH MPAC
041025,000532: 30,3555 03622 TC ARCTRGSP
041026,000533: 30,3556 54156 TS MPAC +2 # CDUZ
041027,000534:
041028,000535: 30,3557 34755 CA ZERO
041029,000536: 30,3560 03600 TC DVBYCOSM
041030,000537: 30,3561 34751 CA FOUR
041031,000538: 30,3562 03600 TC DVBYCOSM
041032,000539: 30,3563 40141 CS TEM1
041033,000540: 30,3564 03622 TC ARCTRGSP
041034,000541: 30,3565 54155 TS MPAC +1 # CDUY
041035,000542:
041036,000543: 30,3566 34750 CA BIT4
041037,000544: 30,3567 03600 TC DVBYCOSM
041038,000545: 30,3570 33577 CA 16OCT
041039,000546: 30,3571 03600 TC DVBYCOSM
041040,000547: 30,3572 40141 CS TEM1
041041,000548: 30,3573 03622 TC ARCTRGSP
041042,000549: 30,3574 54154 TS MPAC # CDUX
041043,000550:
041044,000551: 30,3575 06037 TC INTPRET
041045,000552: 30,3576 77616 RVQ
041046,000553:
041047,000554: 30,3577 00016 16OCT OCT 16
041048,000555:
![]() |
Page 921 |
041050,000557: # THE ELEMENTS OF THE NAV BASE MATRIX WHICH WE MUST DIVIDE BY COS(MGA)
041051,000558: # ALREADY CONTAIN COS(MGA)/2 AS A FACTOR. THEREFORE THE QUOTIENT SHOULD
041052,000559: # ORDINARILY NEVER EXCEED 1/2 IN MAGNITUDE. BUT IF THE MGA IS NEAR PI/2
041053,000560: # THEN COS(MGA) IS NEAR ZERO, AND THERE MAY BE SOME CHAFF IN THE OTHER
041054,000561: # ELEMENTS OF THE MATRIX WHICH WOULD PRODUCE CHAOS UNDER DIVISION.
041055,000562: # BEFORE DIVIDING WE MAKE SURE COS(MGA) IS AT LEAST ONE BIT LARGER
041056,000563: # THAN THE MAGNITUDE OF THE HIGH ORDER PART OF THE OPERAND.
041057,000564:
041058,000565: # IF ONE OR MORE DIVIDES CANNOT BE PERFORMED, THIS MEANS THAT THE
041059,000566: # REQUIRED MGA IS VERY NEARLY +-PI/2 AND THEREFORE THE OTHER GIMBAL
041060,000567: # ANGLES ARE INDETERMINATE. THE INNER AND OUTER GIMBAL ANGLES RETURNED
041061,000568: # IN THIS CASE WILL BE RANDOM MULTIPLES OF PI/2.
041062,000569:
041063,000570: 30,3600 60120 DVBYCOSM AD FIXLOC
041064,000571: 30,3601 54116 TS ADDRWD # ADRES OF OPERAND
041065,000572:
041066,000573: 30,3602 50116 INDEX ADDRWD # FETCH NEG ABS OF OPERAND, AD TEM5, AND
041067,000574: 30,3603 30000 CA 0 # SKIP DIVIDE IF RESULT NEG OR ZERO
041068,000575: 30,3604 00006 EXTEND
041069,000576: 30,3605 63607 BZMF +2
041070,000577: 30,3606 40000 COM
041071,000578: 30,3607 60145 AD TEM5 # C(A) ZERO OR NEG, C(TEM5) ZERO OR POS
041072,000579: 30,3610 00006 EXTEND
041073,000580: 30,3611 63617 BZMF TSL&TCQ # DIFFERENCE ALWAYS SMALL IF BRANCH
041074,000581:
041075,000582: 30,3612 00006 EXTEND # TEM5 EXCEEDS ABS HIGH ORDER PART OF
041076,000583: 30,3613 50116 INDEX ADDRWD # OPERAND BY AT LEAST ONE BIT.
041077,000584: 30,3614 30001 DCA 0 # THEREFORE IT EXCEEDS THE DP OPERAND
041078,000585: 30,3615 00006 EXTEND # AND DIVISION WILL ALWAYS SUCCEED.
041079,000586: 30,3616 10145 DV TEM5
041080,000587: 30,3617 54001 TSL&TCQ TS L
041081,000588: 30,3620 22141 LXCH TEM1
041082,000589: 30,3621 00002 TC Q
041083,000590:
![]() |
Page 922 |
041085,000592: # ARCTRGSP RETURNS THE 2'S COMPLEMENT, PI, SP ANGLE IN THE A REGISTER GIVEN ITS SINE IN A AND ITS COSINE IN L IN
041086,000593: # UNITS OF 2. THE RESULT IS AN UNAMBIGUOUS ANGLE ANYWHERE IN THE CIRCLE, WITH A MAXIMUM ERROR OF +-4 BITS.
041087,000594: # THE ERROR IS PRODUCED BY THE SUBROUTINE SPARCSIN WHICH IS USED ONLY IN THE REGION +-45 DEGREES.
041088,000595:
041089,000596: 30,3622 00006 ARCTRGSP EXTEND
041090,000597: 30,3623 13665 BZF SINZERO # TO AVOID DIVIDING BY ZERO
041091,000598:
041092,000599: 30,3624 00006 EXTEND
041093,000600: 30,3625 22144 QXCH TEM4
041094,000601: 30,3626 54142 TS TEM2
041095,000602: 30,3627 30001 CA L
041096,000603: 30,3630 54143 TS TEM3
041097,000604: 30,3631 34755 CA ZERO
041098,000605: 30,3632 00006 EXTEND
041099,000606: 30,3633 10142 DV TEM2
041100,000607: 30,3634 00006 EXTEND
041101,000608: 30,3635 13654 BZF USECOS
041102,000609:
041103,000610: 30,3636 10143 CCS TEM3 # SIN IS SMALLER OR EQUAL
041104,000611: 30,3637 34755 CA ZERO
041105,000612: 30,3640 13644 TCF +4
041106,000613: 30,3641 40142 CS TEM2 # IF COS NEG, REVERSE SIGN OF SIN,
041107,000614: 30,3642 54142 TS TEM2 # ANGLE = PI-ARCSIN(SIN)
041108,000615: 30,3643 34735 CA NEGMAX # PICK UP PI, 2'S COMPLEMENT
041109,000616: 30,3644 54143 TS TEM3 # WE NO LONGER NEED COS
041110,000617: 30,3645 30142 CA TEM2
041111,000618: 30,3646 03672 TC SPARCSIN -1
041112,000619: 30,3647 03743 TC ONESTO2S
041113,000620: 30,3650 00006 EXTEND
041114,000621: 30,3651 20143 MSU TEM3
041115,000622: 30,3652 03743 1TO2&TCQ TC ONESTO2S
041116,000623: 30,3653 00144 TC TEM4
041117,000624:
041118,000625: 30,3654 40143 USECOS CS TEM3 # COS IS SMALLER
041119,000626: 30,3655 03672 TC SPARCSIN -1 # ANGLE = SIGN(SIN)(PI/2-ARCSIN(COS))
041120,000627: 30,3656 64736 AD HALF
041121,000628: 30,3657 54143 TS TEM3 # WE NO LONGER NEED COS
041122,000629: 30,3660 10142 CCS TEM2
041123,000630: 30,3661 30143 CA TEM3
041124,000631: 30,3662 13652 TCF 1TO2&TCQ
041125,000632: 30,3663 40143 CS TEM3
041126,000633: 30,3664 13652 TCF 1TO2&TCQ
041127,000634:
041128,000635: 30,3665 10001 SINZERO CCS L
041129,000636: 30,3666 34755 CA ZERO
041130,000637: 30,3667 00002 TC Q
041131,000638: 30,3670 34735 CA NEGMAX # PI, 2'S COMP
041132,000639: 30,3671 00002 TC Q
041133,000640:
![]() |
Page 923 |
041135,000642: # SPARCSIN TAKES AN ARGUMENT SCALED UNITY IN A AND RETURNS AN ANGLE SCALED
041136,000643: # 180 DEGREES IN A. IT HAS BEEN UNIT TESTED IN THE REGION +-.94 (+-70
041137,000644: # DEGREES) AND THE MAXIMUM ERROR IS +-5 BITS WITH AN AVERAGE TIME OF
041138,000645: # 450 MICROSECONDS. SPARCSIN -1 TAKES THE ARGUMENT SCALED TWO. (BOB CRISP)
041139,000646:
041140,000647: 30,3672 60000 DOUBLE
041141,000648: 30,3673 54021 SPARCSIN TS SR
041142,000649: 30,3674 13700 TCF +4
041143,000650: 30,3675 50000 INDEX A
041144,000651: 30,3676 44734 CS LIMITS
041145,000652: 30,3677 54021 TS SR
041146,000653: 30,3700 00006 EXTEND
041147,000654: 30,3701 70000 MP A
041148,000655: 30,3702 54141 TS TEM1
041149,000656: 30,3703 00006 EXTEND
041150,000657: 30,3704 73726 MP DPL9
041151,000658: 30,3705 63725 AD DPL7
041152,000659: 30,3706 00006 EXTEND
041153,000660: 30,3707 70141 MP TEM1
041154,000661: 30,3710 63724 AD DPL5
041155,000662: 30,3711 00006 EXTEND
041156,000663: 30,3712 70141 MP TEM1
041157,000664: 30,3713 63723 AD DPL3
041158,000665: 30,3714 00006 EXTEND
041159,000666: 30,3715 70141 MP TEM1
041160,000667: 30,3716 63722 AD DPL1
041161,000668: 30,3717 00006 EXTEND
041162,000669: 30,3720 70021 MP SR
041163,000670: 30,3721 00002 TC Q
041164,000671: 30,3722 24406 DPL1 DEC 10502 B-14
041165,000672: 30,3723 00660 DPL3 DEC 432 B-14
041166,000673: 30,3724 16204 DPL5 DEC 7300 B-14
041167,000674: 30,3725 50744 DPL7 DEC -11803 B-14
041168,000675: 30,3726 20315 DPL9 DEC 8397 B-14
041169,000676:
![]() |
Page 924 |
041171,000678: # LIMITSUB LIMITS THE MAGNITUDE OF THE POSITIVE OR NEGATIVE VARIABLE
041172,000679: # ARRIVING IN L TO THE POSITIVE LIMIT ARRIVING IN A.
041173,000680: # THE SIGNED LIMITED VARIABLE IS RETURNED IN A.
041174,000681:
041175,000682: # VERSION COURTESY HUGH BLAIR-SMITH
041176,000683:
041177,000684: 30,3727 54141 LIMITSUB TS TEM1
041178,000685: 30,3730 34755 CA ZERO
041179,000686: 30,3731 00006 EXTEND
041180,000687: 30,3732 10141 DV TEM1
041181,000688: 30,3733 10000 CCS A
041182,000689: 30,3734 22141 LXCH TEM1
041183,000690: 30,3735 13737 TCF +2
041184,000691: 30,3736 13741 TCF +3
041185,000692: 30,3737 30001 CA L
041186,000693: 30,3740 00002 TC Q
041187,000694: 30,3741 40141 CS TEM1
041188,000695: 30,3742 00002 TC Q
041189,000696:
041190,000697: # SUBROUTINE TO CONVERT 1'S COMP SP TO 2'S COMP
041191,000698:
041192,000699: 30,3743 10000 ONESTO2S CCS A
041193,000700: 30,3744 64753 AD ONE
041194,000701: 30,3745 00002 TC Q
041195,000702: 30,3746 40000 CS A
041196,000703: 30,3747 00002 TC Q
041197,000704:
041198,000705: # NO ATTITUDE CONTROL
041199,000706:
041200,000707: 30,3750 05567 NOATTCNT TC ALARM
041201,000708: 30,3751 00402 OCT 00402 # NO ATTITUDE CONTROL
041202,000709:
041203,000710: 30,3752 00004 +2 INHINT # COME HERE FOR NOATTCNT WITHOUT ALARM
041204,000711: 30,3753 04674 TC IBNKCALL # RELINT AT TC INTPRET AFTER TCQCDUW
041205,000712: 30,3754 40165 FCADR STOPRATE
041206,000713: 30,3755 13475 TCF TCQCDUW # RETURN TO USER SKIPPING AUTOPILOT CMDS
041207,000714:
041208,000715: # MIDDLE GIMBAL ANGLE ALARM
041209,000716:
041210,000717: 30,3756 05567 ALARMMGA TC ALARM
041211,000718: 30,3757 00401 OCT 00401
041212,000719: 30,3760 13275 TCF MGARET
041213,000720:
![]() |
Page 925 |
041215,000722: # ************************************************************************
041216,000723: # CONSTANTS
041217,000724: # ************************************************************************
041218,000725:
041219,000726: # ADDRESS CONSTANTS
041220,000727:
041221,000728: 30,3761 03246 ECDUWL ECADR ECDUW
041222,000729:
041223,000730: # THRUST DIRECTION FILTER CONSTANTS
041224,000731:
041225,000732: 30,3762 06315 GAINFLTR DEC .2 # GAIN FILTER SANS CSM
041226,000733: 30,3763 03146 DEC .1 # GAIN FILTER WITH CSM
041227,000734:
041228,000735: 30,3764 00071 DUNFVLIM DEC .007 B-1 # 7 MR MAX CHG IN F DIR IN VEH IN 2 SECS.
041229,000736: # THIS DOES NOT ALLOW FOR S/C ROT RATE.
041230,000737:
041231,000738: 30,3765 02041 UNFVLIM DEC .129 B-1 # 129 MR MAX THRUST OFFSET. 105 MR TRAVEL
041232,000739: # +10MR DEFL+5MR MECH MOUNT+9MR ABLATION.
041233,000740:
041234,000741: # CONSTANTS RELATED TO GIMBAL ANGLE COMPUTATIONS
041235,000742:
041236,000743: 30,3766 01673 DOTSWFMX DEC .93302 B-4 # LIM COLNRTY OF UNWC/2 & UNFC/2 TO 85 DEG
041237,000744: # LOWER PART COMES FROM NEXT CONSTANT
041238,000745:
041239,000746: 30,3767 03434 DAXMAX DEC .11111111111 # DELATTX LIM TO 20 DEG IN 2 SECS, 1'S, PI
041240,000747: 30,3770 00266 DEC .0111111111 # 2 DEG WHEN CSM DOCKED
041241,000748:
041242,000749: 30,3771 01616 DAY/2MAX DEC .05555555555 # LIKEWISE FOR DELATTY
041243,000750: 30,3772 00133 DEC .0055555555
041244,000751:
041245,000752: 30,3773 30,3767 DAZMAX = DAXMAX # LIKEWISE FOR DELATTZ
041246,000753:
041247,000754: 30,3773 14344 CDUZDLIM DEC .3888888888 # 70 DEG LIMIT FOR MGA, 1'S, PI
041248,000755:
041249,000756: # CONSTANTS FOR DATA TRANSFER
041250,000757:
041251,000758: 30,3774 01463 DT/DELT DEC .05 # .1 SEC/2 SEC WHICH IS THE AUTOPILOT
041252,000759: # CONTROL SAMPLE PERIOD/COMPUTATION PERIOD
041253,000760:
041254,000761: 30,3775 30,3771 DELERLIM = DAY/2MAX # 10 DEG LIMIT FOR LAG ANGLES, 1'S, PI
041255,000762:
End of include-file FINDCDUW_-_GUIDAP_INTERFACE.agc. Parent file is MAIN.agc