Source Code

This is a reconstruction of the AGC program Luminary 99 Rev 0. It was the third release of the Lunar Module flight software targeted for use in Apollo 11, after Luminary 96 and 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.

040507,000002:                                                                                                  ## Copyright:   Public domain.
040508,000003:                                                                                                  ## Filename:    FINDCDUW_-_GUIDAP_INTERFACE.agc
040509,000004:                                                                                                  ## Purpose:     Part of the reconstructed source code for LMY99 Rev 0,
040510,000005:                                                                                                  ##              otherwise known as Luminary Rev 99, the third release
040511,000006:                                                                                                  ##              of the Apollo Guidance Computer (AGC) software for Apollo 11.
040512,000007:                                                                                                  ##              It differs from LMY99 Rev 1 (the flown version) only in the
040513,000008:                                                                                                  ##              placement of a single label. The corrections shown here have
040514,000009:                                                                                                  ##              been verified to have the same bank checksums as AGC developer
040515,000010:                                                                                                  ##              Allan Klumpp's copy of Luminary Rev 99, and so are believed
040516,000011:                                                                                                  ##              to be accurate. This file is intended to be a faithful 
040517,000012:                                                                                                  ##              recreation, except that the code format has been changed to 
040518,000013:                                                                                                  ##              conform to the requirements of the yaYUL assembler rather than 
040519,000014:                                                                                                  ##              the original YUL assembler.
040520,000015:                                                                                                  ##
040521,000016:                                                                                                  ## Assembler:   yaYUL
040522,000017:                                                                                                  ## Contact:     Hartmuth Gutsche <hgutsche@xplornet.com>.
040523,000018:                                                                                                  ## Website:     www.ibiblio.org/apollo.
040524,000019:                                                                                                  ## Pages:       908-925
040525,000020:                                                                                                  ## Mod history: 2009-05-28 HG   Transcribed from page images.
040526,000021:                                                                                                  ##              2016-12-17 RSB  Proofed text comments with octopus/ProoferComments
040527,000022:                                                                                                  ##                              and corrected the errors found.
040528,000023:                                                                                                  ##              2017-03-10 RSB  Comment-text fixes noted in proofing Luminary 116.
040529,000024:                                                                                                  ##              2017-03-15 RSB  Comment-text fixes identified in 5-way
040530,000025:                                                                                                  ##                              side-by-side diff of Luminary 69/99/116/131/210.
040531,000026:                                                                                                  ##              2017-08-01 MAS  Created from LMY99 Rev 1.
040532,000027: 
040533,000028:                                                                                                  ## This source code has been transcribed or otherwise adapted from
040534,000029:                                                                                                  ## digitized images of a hardcopy from the MIT Museum.  The digitization
040535,000030:                                                                                                  ## was performed by Paul Fjeld, and arranged for by Deborah Douglas of
040536,000031:                                                                                                  ## the Museum.  Many thanks to both.  The images (with suitable reduction
040537,000032:                                                                                                  ## in storage size and consequent reduction in image quality as well) are
040538,000033:                                                                                                  ## available online at www.ibiblio.org/apollo.  If for some reason you
040539,000034:                                                                                                  ## find that the images are illegible, contact me at info@sandroid.org
040540,000035:                                                                                                  ## about getting access to the (much) higher-quality images which Paul
040541,000036:                                                                                                  ## actually created.
040542,000037:                                                                                                  ##
040543,000038:                                                                                                  ## The code has been modified to match LMY99 Revision 0, otherwise
040544,000039:                                                                                                  ## known as Luminary Revision 99, the Apollo 11 software release preceeding
040545,000040:                                                                                                  ## the listing from which it was transcribed. It has been verified to
040546,000041:                                                                                                  ## contain the same bank checksums as AGC developer Allan Klumpp's listing
040547,000042:                                                                                                  ## of Luminary Revision 99 (for which we do not have scans).
040548,000043:                                                                                                  ##
040549,000044:                                                                                                  ## Notations on Allan Klumpp's listing read, in part:
040550,000045:                                                                                                  ##
040551,000046:                                                                                                  ##      ASSEMBLE REVISION 099 OF AGC PROGRAM LUMINARY BY NASA 2021112-51
040552,000047: 

Page 908

040554,000049:                                                                                                  #  PROGRAM NAME:  FINDCDUW
040555,000050:                                                                                                  #  MOD NUMBER:  1        68 07 15
040556,000051:                                                                                                  #  MOD AUTHOR:  KLUMPP
040557,000052: 
040558,000053:                                                                                                  #  OBJECTS OF MOD:       1.      TO SUPPLY COMMANDED GIMBAL ANGLES FOR NOUN 22.
040559,000054:                                                                                                  #                        2.      TO MAINTAIN CORRECT AND CURRENT THRUST
040560,000055:                                                                                                  #                                DIRECTION DATA IN ALL MODES.  THIS IS DONE BY
040561,000056:                                                                                                  #                                FETCHING FOR THE THRUST DIRECTION FILTER THE
040562,000057:                                                                                                  #                                CDUD'S IN PNGCS-AUTO, THE CDU'S IN ALL OTHER
040563,000058:                                                                                                  #                                MODES.
040564,000059:                                                                                                  #                        3.      TO SUBSTITUTE A STOPRATE FOR THE NORMAL
040565,000060:                                                                                                  #                                AUTOPILOT COMMANDS WHENEVER
040566,000061:                                                                                                  #                                1) NOT IN PNGCS-AUTO, OR
040567,000062:                                                                                                  #                                2) ENGINE IS OFF.
040568,000063: 
040569,000064:                                                                                                  #  FUNCTIONAL DESCRIPTION:
040570,000065: 
040571,000066:                                                                                                  #  FINDCDUW PROVIDES THE INTERFACES BETWEEN THE VARIOUS POWERED FLITE GUIDANCE PROGRAMS
040572,000067:                                                                                                  #  AND THE DIGITAL AUTOPILOT.  THE INPUTS TO FINDCDUW ARE THE THRUST COMMAND VECTOR
040573,000068:                                                                                                  #  AND THE WINDOW COMMAND VECTOR, AND THE OUTPUTS ARE THE GIMBAL ANGLE
040574,000069:                                                                                                  #  INCREMENTS, THE COMMANDED ATTITUDE ANGLE RATES, AND THE COMMANDED
040575,000070:                                                                                                  #  ATTITUDE LAG ANGLES (WHICH ACCOUNT FOR THE ANGLES BY WHICH THE BODY WILL
040576,000071:                                                                                                  #  LAG BEHIND A RAMP COMMAND IN ATTITUDE ANGLE DUE TO THE FINITE ANGULAR
040577,000072:                                                                                                  #  ACCELERATIONS AVAILABLE).
040578,000073: 
040579,000074:                                                                                                  #  FINDCDUW ALINES THE ESTIMATED THRUST VECTOR FROM THE THRUST DIRECTION
040580,000075:                                                                                                  #  FILTER WITH THE THRUST COMMAND VECTOR, AND, WHEN XOVINHIB SET,
040581,000076:                                                                                                  #  ALINES THE +Z HALF OF THE LM ZX PLANE WITH THE WINDOW COMMAND VECTOR.
040582,000077: 

Page 909

040584,000079:                                                                                                  #  SPECIFICATIONS:
040585,000080: 
040586,000081:                                                                                                  #  INITIALIZATION:       A SINGLE INTERPRETIVE CALL TO INITCDUW IS REQUIRED
040587,000082:                                                                                                  #                        BEFORE EACH GUIDED MANEUVER USING FINDCDUW.
040588,000083: 
040589,000084:                                                                                                  #  CALL:                 INTERPRETIVE CALL TO FINDCDUW WITH THE THRUST COMMAND
040590,000085:                                                                                                  #                        VECTOR IN MPAC.  INTERPRETIVE CALL TO FINDCDUW -2 WITH
040591,000086:                                                                                                  #                        THE THRUST COMMAND VECTOR IN UNFC/2 AND NOT IN MPAC.
040592,000087: 
040593,000088:                                                                                                  #  RETURNS:              NORMAL INTERPRETIVE IN ALL CASES
040594,000089:                                                                                                  #                        1.      NORMALLY ALL AUTOPILOT CMDS ARE ISSUED.
040595,000090:                                                                                                  #                        2.      IF NOT PNGCS AUTO, DO STOPRATE AND RETURN
040596,000091:                                                                                                  #                                WITHOUT ISSUING AUTOPILOT CMDS.
040597,000092:                                                                                                  #                        3.      IF ENGINE OFF, DO STOPRATE AND RETURN WITHOUT
040598,000093:                                                                                                  #                                ISSUING AUTOPILOT CMDS.
040599,000094: 
040600,000095:                                                                                                  #  ALARMS:               00401   IF INPUTS DETERMINE AN ATTITUDE IN GIMBAL LOCK.
040601,000096:                                                                                                  #                                FINDCDUW DRIVES CDUXD AND CDUYD TO THE RQD VALUES,
040602,000097:                                                                                                  #                                BUT DRIVES CDUZD ONLY TO THE GIMBAL LOCK CONE.
040603,000098: 
040604,000099:                                                                                                  #                        00402   IF UNFC/2 OR UNWC/2 PRODUCE OVERFLOW WHEN
040605,000100:                                                                                                  #                                UNITIZED USING NORMUNIT.  FINDCDUW ISSUES
040606,000101:                                                                                                  #                                STOPRATE AS ONLY INPUT TO AUTOPILOT.
040607,000102: 
040608,000103:                                                                                                  #  INPUTS:               UNFC/2          THRUST COMMAND VECTOR, NEED NOT BE SEMI-UNIT.
040609,000104:                                                                                                  #                        UNWC/2          WINDOW COMMAND VECTOR, NEED NOT BE SEMI-UNIT.
040610,000105:                                                                                                  #                        XOVINHIB        FLAG DENOTING X AXIS OVERRIDE INHIBITED.
040611,000106:                                                                                                  #                        CSMDOCKD        FLAG DENOTING CSM DOCKED.
040612,000107:                                                                                                  #                        STEERSW         FLAG DENOTING INSUFF THRUST FOR THRUST DIR FLTR.
040613,000108: 
040614,000109:                                                                                                  #  OUTPUTS:              DELCDUX,Y,Z
040615,000110:                                                                                                  #                        OMEGAPD,+1,+2
040616,000111:                                                                                                  #                        DELPEROR,+1,+2
040617,000112:                                                                                                  #                        CPHI,+1,+2 FOR NOUN22
040618,000113: 
040619,000114:                                                                                                  #  DEBRIS:               FINDCDUW DESTROYS SINCDUX,Y,Z AND COSCDUX,Y,Z BY
040620,000115:                                                                                                  #                        WRITING INTO THESE LOCATIONS THE SINES AND COSINES
040621,000116:                                                                                                  #                        OF THE CDUD'S IN PNGCS-AUTO, OF THE CDU'S OTHERWISE.
040622,000117: 

Page 910

040624,000119:                                                                                                  #  INITIALIZATION FOR FINDCDUW
040625,000120: 
040626,000121: 30,3104                                           BANK     30                                    
040627,000122: 30,2000                                           SETLOC   FCDUW                                 
040628,000123: 30,2000                                           BANK                                           
040629,000124: 
040630,000125: 30,3104  E6,1646                                  EBANK=   ECDUW                                 
040631,000126: 30,3104                                           COUNT*   $$/FCDUW                              
040632,000127: 
040633,000128: 30,3104           77775        INITCDUW           VLOAD                                          
040634,000129: 30,3105           06520                                    UNITX                                 
040635,000130: 30,3106           03270                           STORE    UNFV/2                                
040636,000131: 30,3107           03262                           STORE    UNWC/2                                
040637,000132: 30,3110           77616                           RVQ                                            
040638,000133: 
040639,000134:                                                                                                  #  FINDCDUW PRELIMINARIES
040640,000135: 
040641,000136: 30,3111           77775                           VLOAD                                          #  FINDCDUW -2:  ENTRY WHEN UNFC/2 PRE-STORD
040642,000137: 30,3112           03254                                    UNFC/2                                #  INPUT VECTORS NEED NOT BE SEMI-UNIT
040643,000138: 30,3113           40200        FINDCDUW           BOV      SETPD                                 #  FINDCDUW: ENTRY WHEN UNFC/2 IN MPAC
040644,000139: 30,3114           61113                                    FINDCDUW                              #  INTERPRETER NOW INITIALIZED
040645,000140: 30,3115           00023                                    22                                    #  LOCS 0 THRU 21 FOR DIRECTION COSINE MAT
040646,000141: 30,3116           77420                           STQ      EXIT                                  
040647,000142: 30,3117           03247                                    QCDUWUSR                              #  SAVE RETURN ADDRESS
040648,000143: 
040649,000144:                                                                                                  #  MORE HAUSKEEPING
040650,000145: 30,3120           33761                           CA       ECDUWL                                
040651,000146: 30,3121           56003                           XCH      EBANK                                 #  SET EBANK
040652,000147: 30,3122           55646                           TS       ECDUWUSR                              #  SAVE USER'S EBANK
040653,000148: 
040654,000149: 30,3123           30111                           CA       DAPBOOLS                              
040655,000150: 30,3124           74737                           MASK     CSMDOCKD                              #  CSMDOCKD MUST NOT BE BIT15
040656,000151: 30,3125           10000                           CCS      A                                     
040657,000152: 30,3126           34753                           CA       ONE                                   #  INDEX IF CSM DOCKED
040658,000153: 30,3127           55650                           TS       NDXCDUW                               
040659,000154: 
040660,000155: 30,3130           34743                           CA       XOVINHIB                              #  XOVINHIB MUST NOT BE BIT15
040661,000156: 30,3131           55652                           TS       FLPAUTNO                              #  SET TO POS-NON-ZERO FLAG PNGCS AUTO NOT
040662,000157: 
040663,000158: 30,3132           70111                           MASK     DAPBOOLS                              
040664,000159: 30,3133           55651                           TS       FLAGOODW                              #  FLAGOODW = ANY PNZ NUMBER IF XOV INHIBTD
040665,000160: 

Page 911

040667,000162:                                                                                                  #  FETCH BASIC DATA
040668,000163: 30,3134           00004                           INHINT                                         #  RELINT AT PAUTNO (TC INTPRET)
040669,000164: 
040670,000165: 30,3135           30032                           CA       CDUX                                  #  FETCH CDUX,CDUY,CDUZ IN ALL CASES, BUT
040671,000166: 30,3136           54772                           TS       CDUSPOTX                              #        REPLACE BELOW IF PNGCS AUTO
040672,000167: 30,3137           30033                           CA       CDUY                                  
040673,000168: 30,3140           54766                           TS       CDUSPOTY                              
040674,000169: 30,3141           30034                           CA       CDUZ                                  
040675,000170: 30,3142           54770                           TS       CDUSPOTZ                              
040676,000171: 
040677,000172: 30,3143           34742                           CA       BIT10                                 #  PNGCS CONTROL BIT
040678,000173: 30,3144           00006                           EXTEND                                         
040679,000174: 30,3145           02030                           RAND     CHAN30                                
040680,000175: 30,3146           10000                           CCS      A                                     
040681,000176: 30,3147           13164                           TCF      PAUTNO                                #  NOT PNGCS (BITS INVERTED)
040682,000177: 
040683,000178: 30,3150           34736                           CA       BIT14                                 #  AUTO MODE BIT
040684,000179: 30,3151           00006                           EXTEND                                         
040685,000180: 30,3152           02031                           RAND     CHAN31                                
040686,000181: 30,3153           10000                           CCS      A                                     
040687,000182: 30,3154           13164                           TCF      PAUTNO                                #  NOT AUTO (BITS INVERTED)
040688,000183: 
040689,000184: 30,3155           55652                           TS       FLPAUTNO                              #  RESET FLAG PNGCS AUTO NOT
040690,000185: 
040691,000186: 30,3156           31635                           CA       CDUXD                                 #  PNGCS AUTO:  FETCH CDUXD,CDUYD,CDUZD
040692,000187: 30,3157           54772                           TS       CDUSPOTX                              
040693,000188: 30,3160           31636                           CA       CDUYD                                 
040694,000189: 30,3161           54766                           TS       CDUSPOTY                              
040695,000190: 30,3162           31637                           CA       CDUZD                                 
040696,000191: 30,3163           54770                           TS       CDUSPOTZ                              
040697,000192: 

Page 912

040699,000194:                                                                                                  #  FETCH INPUTS
040700,000195: 30,3164           06037        PAUTNO             TC       INTPRET                               #  ENTERING THRUST CMD STILL IN MPAC
040701,000196: 30,3165           77634                           RTB                                            
040702,000197: 30,3166           21726                                    NORMUNIT                              
040703,000198: 30,3167           24001                           STOVL    UNX/2                                 #  SEMI-UNIT THRUST CMD AS INITIAL UNX/2
040704,000199: 30,3170           03262                                    UNWC/2                                
040705,000200: 30,3171           47034                           RTB      RTB                                   
040706,000201: 30,3172           21726                                    NORMUNIT                              
040707,000202: 30,3173           47615                                    QUICTRIG                              #  ALWAYS RQD TO OBTAIN TRIGS OF CDUD'S
040708,000203: 30,3174           24015                           STOVL    UNZ/2                                 #  SEMI-UNIT WINDOW CMD AS INITIAL UNZ/2
040709,000204: 30,3175           00325                                    DELV                                  
040710,000205: 30,3176           53404                           BOVB     UNIT                                  
040711,000206: 30,3177           61750                                    NOATTCNT                              #  AT LEAST ONE ENTERING CMD VCT ZERO
040712,000207: 30,3200           45000                           BOV      CALL                                  
040713,000208: 30,3201           61215                                    AFTRFLTR                              #  IF UNIT DELV OVERFLOWS, SKIP FILTER
040714,000209: 30,3202           47671                                    *SMNB*                                #  YIELDS UNIT(DELV) IN VEH COORDS FOR FLTR
040715,000210: 
040716,000211:                                                                                                  #  THRUST DIRECTION FILTER
040717,000212: 
040718,000213: 30,3203           77776                           EXIT                                           
040719,000214: 
040720,000215: 30,3204           31671                           CA       UNFVY/2                               #  FOR RESTARTS, UNFV/2 ALWAYS INTACT, MPAC
040721,000216: 30,3205           22157                           LXCH     MPAC       +3                         #        RENEWED AFTER RETURN FROM CALLER,
040722,000217: 30,3206           03503                           TC       FLTRSUB                               #        TWO FILTER UPDATES MAY BE DONE.
040723,000218: 30,3207           55671                           TS       UNFVY/2                               #  UNFV/2 NEED NOT BE EXACTLY SEMI-UNIT.
040724,000219: 
040725,000220: 30,3210           31673                           CA       UNFVZ/2                               
040726,000221: 30,3211           22161                           LXCH     MPAC       +5                         
040727,000222: 30,3212           03503                           TC       FLTRSUB                               
040728,000223: 30,3213           55673                           TS       UNFVZ/2                               
040729,000224: 
040730,000225: 30,3214           06037                           TC       INTPRET                               #  COMPLETES FILTER
040731,000226: 

Page 913

040733,000228:                                                                                                  #  FIND A SUITABLE WINDOW POINTING VECTOR
040734,000229: 
040735,000230: 30,3215           46135        AFTRFLTR           SLOAD    BHIZ                                  #  IF XOV NOT INHIBITED, GO FETCH ZNB
040736,000231: 30,3216           03252                                    FLAGOODW                              
040737,000232: 30,3217           61223                                    FETCHZNB                              
040738,000233: 30,3220           45175                           VLOAD    CALL                                  
040739,000234: 30,3221           00015                                    UNZ/2                                 
040740,000235: 30,3222           61523                                    UNWCTEST                              
040741,000236: 
040742,000237: 30,3223           77775        FETCHZNB           VLOAD                                          
040743,000238: 30,3224           02162                                    ZNBPIP                                
040744,000239: 30,3225           34015                           STCALL   UNZ/2                                 
040745,000240: 30,3226           61523                                    UNWCTEST                              
040746,000241: 
040747,000242: 30,3227           57575                           VLOAD    VCOMP                                 #  Z AND -X CAN'T BOTH PARALLEL UNFC/2
040748,000243: 30,3230           02146                                    XNBPIP                                
040749,000244: 30,3231           00015                           STORE    UNZ/2                                 
040750,000245: 
040751,000246:                                                                                                  #  COMPUTE THE REQUIRED DIRECTION COSINE MATRIX
040752,000247: 
040753,000248: 30,3232           47375        DCMCL              VLOAD    VXV                                   
040754,000249: 30,3233           00015                                    UNZ/2                                 
040755,000250: 30,3234           00001                                    UNX/2                                 
040756,000251: 30,3235           41456                           UNIT     PUSH                                  #  UNY/2 FIRST ITERATION
040757,000252: 30,3236           76435                           VXV      VSL1                                  
040758,000253: 30,3237           00001                                    UNX/2                                 
040759,000254: 30,3240           00015                           STORE    UNZ/2                                 #  -UNZ/2 FIRST ITERATION
040760,000255: 30,3241           63361                           VXSC     PDVL                                  #  EXCHANGE -UNFVZ/2 UNZ/2 FOR UNY/2
040761,000256: 30,3242           03274                                    UNFVZ/2                               #  MUST BE SMALL
040762,000257: 30,3243           51361                           VXSC     BVSU                                  #  YIELDS -UNFVY/2 UNY/2-UNFVZ/2 UNZ/2
040763,000258: 30,3244           03272                                    UNFVY/2                               #  MUST BE SMALL
040764,000259: 30,3245           53372                           VSL1     VAD                                   
040765,000260: 30,3246           00001                                    UNX/2                                 
040766,000261: 30,3247           77656                           UNIT                                           #  TOTALLY ELIMINATES THRUST POINTING ERROR
040767,000262: 30,3250           00001                           STORE    UNX/2                                 #  UNX/2
040768,000263: 30,3251           76435                           VXV      VSL1                                  
040769,000264: 30,3252           00015                                    UNZ/2                                 #  -UNZ/2 WAS STORED HERE REMEMBER
040770,000265: 30,3253           00007                           STORE    UNY/2                                 #  UNY/2
040771,000266: 30,3254           47276                           VCOMP    VXV                                   
040772,000267: 30,3255           00001                                    UNX/2                                 
040773,000268: 30,3256           77772                           VSL1                                           
040774,000269: 30,3257           00015                           STORE    UNZ/2                                 #  UNZ/2
040775,000270: 

Page 914

040777,000272:                                                                                                  #  COMPUTE THE REQUIRED GIMBAL ANGLES
040778,000273: 
040779,000274: 30,3260           77624                           CALL                                           
040780,000275: 30,3261           61533                                    NB2CDUSP                              #  YIELDS THE RQD GIMBAL ANGLES, 2'S, PI
040781,000276: 30,3262           77776                           EXIT                                           
040782,000277: 
040783,000278:                                                                                                  #  LIMIT THE MIDDLE GIMBAL ANGLE & COMPUTE THE UNLIMITED GIMBAL ANGLE CHGS
040784,000279: 
040785,000280: 30,3263           30156                           CA       MPAC       +2                         #  LIMIT THE MGA
040786,000281: 30,3264           54001                           TS       L                                     #  CAN'T LXCH:  NEED UNLIMITED MGA FOR ALARM
040787,000282: 30,3265           33773                           CA       CDUZDLIM                              
040788,000283: 30,3266           03727                           TC       LIMITSUB                              #  YIELDS LIMITED MGA.  1 BIT ERROR POSSIBLE
040789,000284: 30,3267           56156                           XCH      MPAC       +2                         #        BECAUSE USING 2'S COMP.  WHO CARES?
040790,000285: 30,3270           00006                           EXTEND                                         
040791,000286: 30,3271           20156                           MSU      MPAC       +2                         #  THIS BETTER YIELD ZERO
040792,000287: 30,3272           00006                           EXTEND                                         
040793,000288: 30,3273           13275                           BZF      +2                                    
040794,000289: 30,3274           13756                           TCF      ALARMMGA                              
040795,000290: 
040796,000291: 30,3275           00004        MGARET             INHINT                                         #  RELINT AT TC INTPRET AFTER TCQCDUW
040797,000292: 
040798,000293: 30,3276           22007                           ZL                                             
040799,000294: 30,3277           34752                           CA       TWO                                   
040800,000295: 30,3300           54142        DELGMBLP           TS       TEM2                                  
040801,000296: 
040802,000297: 30,3301           30001                           CA       L                                     #  TO PREVENT FALSE STARTS ABOUT X, ZERO
040803,000298: 30,3302           00006                           EXTEND                                         #        FLAGOODW IF DELGMBZ OR Y TOO BIG.
040804,000299: 30,3303           70000                           SQUARE                                         
040805,000300: 30,3304           64350                           AD       HI5                                   #  WITHIN 1 BIT OF -(45 DEG SQUARED)
040806,000301: 30,3305           00006                           EXTEND                                         
040807,000302: 30,3306           63311                           BZMF     +3                                    
040808,000303: 30,3307           34755                           CA       ZERO                                  
040809,000304: 30,3310           55651                           TS       FLAGOODW                              
040810,000305: 
040811,000306: 30,3311           50142                           INDEX    TEM2                                  
040812,000307: 30,3312           30154                           CA       MPAC                                  
040813,000308: 30,3313           50142                           INDEX    TEM2                                  
040814,000309: 30,3314           54321                           TS       CPHI                                  #  OUTPUTS TO NOUN22
040815,000310: 30,3315           00006                           EXTEND                                         
040816,000311: 30,3316           50142                           INDEX    TEM2                                  
040817,000312: 30,3317           21635                           MSU      CDUXD                                 #  NO MATTER THAT THESE SLIGHTLY DIFFERENT
040818,000313: 30,3320           40000                           COM                                            #  FROM WHEN WE INITIALLY FETCHED THEM
040819,000314: 30,3321           50142                           INDEX    TEM2                                  
040820,000315: 30,3322           55675                           TS       -DELGMB                               #  -UNLIMITED GIMBAL ANGLE CHGS, 1'S, PI
040821,000316: 30,3323           54001                           TS       L                                     #  FOR PRECEDING TEST ON NEXT LOOP PASS
040822,000317: 30,3324           10142                           CCS      TEM2                                  
040823,000318: 30,3325           13300                           TCF      DELGMBLP                              
040824,000319: 

Page 915

040826,000321:                                                                                                  #  BRANCHES TO NOATTCNT
040827,000322: 30,3326           11652                           CCS      FLPAUTNO                              
040828,000323: 30,3327           13752                           TCF      NOATTCNT   +2                         #  NOT PNGCS AUTO
040829,000324: 
040830,000325: 30,3330           30101                           CA       FLAGWRD5                              
040831,000326: 30,3331           74745                           MASK     ENGONBIT                              
040832,000327: 30,3332           00006                           EXTEND                                         
040833,000328: 30,3333           13752                           BZF      NOATTCNT   +2                         #  ENGINE NOT ON
040834,000329: 

Page 916

040836,000331:                                                                                                  #  LIMIT THE ATTITUDE ANGLE CHANGES
040837,000332: 
040838,000333:                                                                                                  #  THIS SECTION LIMITS THE ATTITUDE ANGLE CHANGES ABOUT A SET OF ORTHOGONAL VEHICLE AXES X,YPRIME,ZPRIME.
040839,000334:                                                                                                  #  THESE AXES COINCIDE WITH THE COMMANDED VEHICLE AXES IF AND ONLY IF CDUXD IS ZERO.  THE PRIME SYSTEM IS
040840,000335:                                                                                                  #  THE COMMANDED VEHICLE SYSTEM ROTATED ABOUT THE X AXIS TO BRING THE Z AXIS INTO ALINEMENT WITH THE MIDDLE GIMBAL
040841,000336:                                                                                                  #  AXIS.  ATTITUDE ANGLE CHANGES IN THE PRIME SYSTEM ARE RELATED TO SMALL GIMBAL ANGLE CHANGES BY:
040842,000337: 
040843,000338:                                                                                                  #        *   -DELATTX    *   * 1     SIN(CDUZD)     0 * * -DELGMBX *
040844,000339:                                                                                                  #        *               *   *                        * *          *
040845,000340:                                                                                                  #        * -DELATTYPRIME * = * 0     COS(CDUZD)     0 * * -DELGMBY *
040846,000341:                                                                                                  #        *               *   *                        * *          *
040847,000342:                                                                                                  #        * -DELATTZPRIME *   * 0         0          1 * * -DELGMBZ *
040848,000343: 
040849,000344: 30,3334           23677                           LXCH     -DELGMB    +2                         #  SAME AS -DELATTZPRIME UNLIMITED
040850,000345: 30,3335           51650                           INDEX    NDXCDUW                               
040851,000346: 30,3336           33767                           CA       DAZMAX                                
040852,000347: 30,3337           03727                           TC       LIMITSUB                              
040853,000348: 30,3340           55677                           TS       -DELGMB    +2                         #  -DELGMBZ
040854,000349: 
040855,000350: 30,3341           31676                           CA       -DELGMB    +1                         
040856,000351: 30,3342           00006                           EXTEND                                         
040857,000352: 30,3343           70746                           MP       COSCDUZ                               #  YIELDS -DELATTYPRIME/2 UNLIMITED
040858,000353: 30,3344           54001                           TS       L                                     
040859,000354: 30,3345           51650                           INDEX    NDXCDUW                               
040860,000355: 30,3346           33771                           CA       DAY/2MAX                              
040861,000356: 30,3347           03727                           TC       LIMITSUB                              
040862,000357: 30,3350           00006                           EXTEND                                         
040863,000358: 30,3351           10746                           DV       COSCDUZ                               
040864,000359: 30,3352           57676                           XCH      -DELGMB    +1                         #  -DELGMBY, FETCHING UNLIMITED VALUE
040865,000360: 
040866,000361: 30,3353           00006                           EXTEND                                         
040867,000362: 30,3354           70740                           MP       SINCDUZ                               
040868,000363: 30,3355           20001                           DDOUBL                                         
040869,000364: 30,3356           40000                           COM                                            
040870,000365: 30,3357           00006                           EXTEND                                         #  YIELDS +DELATTX UNLIMITD, MAG < 180 DEG,
040871,000366: 30,3360           21675                           MSU      -DELGMB                               #        BASED ON UNLIMITED DELGMBY.
040872,000367: 30,3361           54001                           TS       L                                     #        ONE BIT ERROR IF OPERANDS IN MSU
040873,000368: 30,3362           51650                           INDEX    NDXCDUW                               #        OF MIXED SIGNS.  WHO CARES?
040874,000369: 30,3363           33767                           CA       DAXMAX                                
040875,000370: 30,3364           03727                           TC       LIMITSUB                              
040876,000371: 30,3365           55675                           TS       -DELGMB                               #  SAVE LIMITED +DELATTX
040877,000372: 30,3366           11651                           CCS      FLAGOODW                              
040878,000373: 30,3367           41675                           CS       -DELGMB                               #  FETCH IT BACK CHGING SIGN IF WINDOW GOOD
040879,000374: 30,3370           55675                           TS       -DELGMB                               #  OTHERWISE USE ZERO FOR -DELATTX
040880,000375: 30,3371           41676                           CS       -DELGMB    +1                         
040881,000376: 30,3372           00006                           EXTEND                                         
040882,000377: 30,3373           70740                           MP       SINCDUZ                               
040883,000378: 30,3374           20001                           DDOUBL                                         #  YIELDS -CNTRIB TO -DELATTX FROM -DELGMBY
040884,000379: 30,3375           27675                           ADS      -DELGMB                               #  -DELGMBX.  NO OVERFLOW SINCE LIMITED TO
040885,000380:                                                                                                  #  20DEG(1+SIN(70DEG)/COS(70DEG)) < 180DEG
040886,000381: 

Page 917

040888,000383:                                                                                                  #  COMPUTE COMMANDED ATTITUDE RATES
040889,000384: 
040890,000385:                                                                                                  #        * OMEGAPD *   * -2         -4 SINCDUZ              +0    * * -DELGMBX *
040891,000386:                                                                                                  #        *         *   *                                          * *          *
040892,000387:                                                                                                  #        * OMEGAQD * = * +0     -8 COSCDUZ COSCDUX     -4 SINCDUX * * -DELGMBY *
040893,000388:                                                                                                  #        *         *   *                                          * *          *
040894,000389:                                                                                                  #        * OMEGARD *   * +0     +8 COSCDUZ SINCDUX     -4 COSCDUX * * -DELGMBZ *
040895,000390: 
040896,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
040897,000392:                                                                                                  #  PI/2 RAD/SEC.  THE CONSTANTS ARE BASED ON DELGMB BEING THE GIMBAL ANGLE CHANGES IN UNITS OF PI RADIANS,
040898,000393:                                                                                                  #  AND 2 SECONDS BEING THE COMPUTATION PERIOD (THE PERIOD BETWEEN SUCCESSIVE PASSES THRU FINDCDUW).
040899,000394: 
040900,000395: 30,3376           41675                           CS       -DELGMB                               
040901,000396: 30,3377           55643                           TS       OMEGAPD                               
040902,000397: 30,3400           41676                           CS       -DELGMB    +1                         
040903,000398: 30,3401           00006                           EXTEND                                         
040904,000399: 30,3402           70740                           MP       SINCDUZ                               
040905,000400: 30,3403           20001                           DDOUBL                                         
040906,000401: 30,3404           27643                           ADS      OMEGAPD                               
040907,000402: 30,3405           27643                           ADS      OMEGAPD                               
040908,000403: 
040909,000404: 30,3406           41676                           CS       -DELGMB    +1                         
040910,000405: 30,3407           00006                           EXTEND                                         
040911,000406: 30,3410           70750                           MP       COSCDUX                               
040912,000407: 30,3411           20001                           DDOUBL                                         
040913,000408: 30,3412           00006                           EXTEND                                         
040914,000409: 30,3413           70746                           MP       COSCDUZ                               
040915,000410: 30,3414           55644                           TS       OMEGAQD                               
040916,000411: 30,3415           41677                           CS       -DELGMB    +2                         
040917,000412: 30,3416           00006                           EXTEND                                         
040918,000413: 30,3417           70742                           MP       SINCDUX                               
040919,000414: 30,3420           27644                           ADS      OMEGAQD                               
040920,000415: 30,3421           27644                           ADS      OMEGAQD                               
040921,000416: 30,3422           27644                           ADS      OMEGAQD                               
040922,000417: 
040923,000418: 30,3423           31676                           CA       -DELGMB    +1                         
040924,000419: 30,3424           00006                           EXTEND                                         
040925,000420: 30,3425           70742                           MP       SINCDUX                               
040926,000421: 30,3426           20001                           DDOUBL                                         
040927,000422: 30,3427           00006                           EXTEND                                         
040928,000423: 30,3430           70746                           MP       COSCDUZ                               
040929,000424: 30,3431           55645                           TS       OMEGARD                               
040930,000425: 30,3432           41677                           CS       -DELGMB    +2                         
040931,000426: 30,3433           00006                           EXTEND                                         
040932,000427: 30,3434           70750                           MP       COSCDUX                               
040933,000428: 30,3435           27645                           ADS      OMEGARD                               
040934,000429: 30,3436           27645                           ADS      OMEGARD                               
040935,000430: 30,3437           27645                           ADS      OMEGARD                               
040936,000431: 

Page 918

040938,000433:                                                                                                  #  FINAL TRANSFER
040939,000434: 
040940,000435: 30,3440           34752                           CA       TWO                                   
040941,000436: 30,3441           54142        CDUWXFR            TS       TEM2                                  
040942,000437: 30,3442           50142                           INDEX    TEM2                                  
040943,000438: 30,3443           31675                           CA       -DELGMB                               
040944,000439: 30,3444           00006                           EXTEND                                         
040945,000440: 30,3445           73774                           MP       DT/DELT                               #  RATIO OF DAP INTERVAL TO CDUW INTERVAL
040946,000441: 30,3446           03743                           TC       ONESTO2S                              
040947,000442: 30,3447           50142                           INDEX    TEM2                                  
040948,000443: 30,3450           55640                           TS       DELCDUX                               #  ANGLE INTERFACE
040949,000444: 
040950,000445: 30,3451           50142                           INDEX    TEM2                                  
040951,000446: 30,3452           11643                           CCS      OMEGAPD                               
040952,000447: 30,3453           64753                           AD       ONE                                   
040953,000448: 30,3454           13456                           TCF      +2                                    
040954,000449: 30,3455           64753                           AD       ONE                                   
040955,000450: 30,3456           00006                           EXTEND                                         #  WE NOW HAVE ABS(OMEGAPD,QD,RD)
040956,000451: 30,3457           50142                           INDEX    TEM2                                  
040957,000452: 30,3460           71643                           MP       OMEGAPD                               
040958,000453: 30,3461           00006                           EXTEND                                         
040959,000454: 30,3462           74741                           MP       BIT11                                 #  1/16
040960,000455: 30,3463           00006                           EXTEND                                         
040961,000456: 30,3464           50142                           INDEX    TEM2                                  #                   2
040962,000457: 30,3465           11530                           DV       1JACC                                 #  UNITS PI/4 RAD/SEC
040963,000458: 30,3466           54001                           TS       L                                     
040964,000459: 30,3467           33771                           CA       DELERLIM                              
040965,000460: 30,3470           03727                           TC       LIMITSUB                              
040966,000461: 30,3471           50142                           INDEX    TEM2                                  
040967,000462: 30,3472           55277                           TS       DELPEROR                              #  LAG ANGLE = OMEGA ABS(OMEGA)/2 ACCEL
040968,000463: 30,3473           10142                           CCS      TEM2                                  
040969,000464: 30,3474           13441                           TCF      CDUWXFR                               
040970,000465: 
040971,000466:                                                                                                  #  HAUSKEEPING AND RETURN
040972,000467: 
040973,000468: 30,3475           31646        TCQCDUW            CA       ECDUWUSR                              
040974,000469: 30,3476           54003                           TS       EBANK                                 #  RETURN USER'S EBANK
040975,000470: 
040976,000471: 30,3477           06037                           TC       INTPRET                               
040977,000472: 30,3500           52001                           SETPD    GOTO                                  
040978,000473: 30,3501           00001                                    0                                     
040979,000474: 30,3502           03247                                    QCDUWUSR                              #  NORMAL AND ABNORMAL RETURN TO USER
040980,000475: 

Page 919

040982,000477:                                                                                                  #  THRUST VECTOR FILTER SUBROUTINE
040983,000478: 
040984,000479: 30,3503           00006        FLTRSUB            EXTEND                                         
040985,000480: 30,3504           22142                           QXCH     TEM2                                  
040986,000481: 30,3505           54143                           TS       TEM3                                  #  SAVE ORIGINAL OFFSET
040987,000482: 30,3506           40000                           COM                                            #  ONE MCT, NO WDS, CAN BE SAVED IF NEG OF
040988,000483: 30,3507           60001                           AD       L                                     #        ORIG OFFSET ARRIVES IN A, BUT IT'S
040989,000484: 30,3510           00006                           EXTEND                                         #        NOT WORTH THE INCREASED OBSCURITY.
040990,000485: 30,3511           51650                           INDEX    NDXCDUW                               
040991,000486: 30,3512           73762                           MP       GAINFLTR                              
040992,000487: 30,3513           54001                           TS       L                                     #  INCR TO OFFSET, UNLIMITED
040993,000488: 30,3514           33764                           CA       DUNFVLIM                              #  SAME LIMIT FOR Y AND Z
040994,000489: 30,3515           03727                           TC       LIMITSUB                              #  YIELDS INCR TO OFFSET, LIMITED
040995,000490: 30,3516           60143                           AD       TEM3                                  #  ORIGINAL OFFSET
040996,000491: 30,3517           54001                           TS       L                                     #  TOTAL OFFSET, UNLIMITED
040997,000492: 30,3520           33765                           CA       UNFVLIM                               #  SAME LIMIT FOR Y AND Z
040998,000493: 30,3521           03727                           TC       LIMITSUB                              #  YIELDS TOTAL OFFSET, LIMITED
040999,000494: 30,3522           00142                           TC       TEM2                                  
041000,000495: 
041001,000496:                                                                                                  #  SUBR TO TEST THE ANGLE BETWEEN THE PROPOSED WINDOW AND THRUST CMD VCTS
041002,000497: 
041003,000498: 30,3523           63441        UNWCTEST           DOT      DSQ                                   
041004,000499: 30,3524           00001                                    UNX/2                                 
041005,000500: 30,3525           50025                           DSU      BMN                                   
041006,000501: 30,3526           21767                                    DOTSWFMX                              
041007,000502: 30,3527           61232                                    DCMCL                                 
041008,000503: 30,3530           43531                           SSP      RVQ                                   #  RVQ FOR ALT CHOICE IF DOT MAGN TOO LARGE
041009,000504: 30,3531           03252                                    FLAGOODW                              #        ZEROING WINDOW GOOD FLAG
041010,000505: 30,3532           00000                                    0                                     
041011,000506: 

Page 920

041013,000508:                                                                                                  #  NB2CDUSP RETURNS THE 2'S COMPLEMENT, PI, SP CDU ANGLES X,Y,Z IN MPAC,+1,+2 GIVEN THE MATRIX WHOSE ROW VECTORS
041014,000509:                                                                                                  #  ARE THE SEMI-UNIT NAV BASE VECTORS X,Y,Z EXPRESSED IN STABLE MEMBER COORDINATES, LOCATED AT 0 IN THE PUSH LIST.
041015,000510:                                                                                                  #  NB2CDUSP USES ARCTRGSP WHICH HAS A MAXIMUM ERROR OF +-4 BITS.
041016,000511: 
041017,000512: 30,3533           63545        NB2CDUSP           DLOAD    DSQ                                   
041018,000513: 30,3534           00003                                    2                                     
041019,000514: 30,3535           51021                           BDSU     BPL                                   
041020,000515: 30,3536           06512                                    DP1/4TH                               
041021,000516: 30,3537           61542                                    +3                                    
041022,000517: 30,3540           77745                           DLOAD                                          
041023,000518: 30,3541           06522                                    ZEROVECS                              #  IN CASE SIN WAS SLIGHTLY > 1/2
041024,000519: 30,3542           77566                           SQRT     EXIT                                  #  YIELDS COS(CDUZ) IN UNITS OF 2
041025,000520: 
041026,000521: 30,3543           00006                           EXTEND                                         
041027,000522: 30,3544           30155                           DCA      MPAC                                  
041028,000523: 30,3545           20001                           DDOUBL                                         
041029,000524: 30,3546           54145                           TS       TEM5                                  
041030,000525: 30,3547           13552                           TCF      +3                                    
041031,000526: 30,3550           34733                           CA       POSMAX                                #  OVERFLOW.  FETCH POSMAX, MPAC ALWAYS POS
041032,000527: 30,3551           54145                           TS       TEM5                                  #  COS(CDUZ) IN TEM5, UNITS 1
041033,000528: 
041034,000529: 30,3552           50120                           INDEX    FIXLOC                                
041035,000530: 30,3553           30002                           CA       2                                     
041036,000531: 30,3554           22154                           LXCH     MPAC                                  
041037,000532: 30,3555           03622                           TC       ARCTRGSP                              
041038,000533: 30,3556           54156                           TS       MPAC       +2                         #  CDUZ
041039,000534: 
041040,000535: 30,3557           34755                           CA       ZERO                                  
041041,000536: 30,3560           03600                           TC       DVBYCOSM                              
041042,000537: 30,3561           34751                           CA       FOUR                                  
041043,000538: 30,3562           03600                           TC       DVBYCOSM                              
041044,000539: 30,3563           40141                           CS       TEM1                                  
041045,000540: 30,3564           03622                           TC       ARCTRGSP                              
041046,000541: 30,3565           54155                           TS       MPAC       +1                         #  CDUY
041047,000542: 
041048,000543: 30,3566           34750                           CA       BIT4                                  
041049,000544: 30,3567           03600                           TC       DVBYCOSM                              
041050,000545: 30,3570           33577                           CA       16OCT                                 
041051,000546: 30,3571           03600                           TC       DVBYCOSM                              
041052,000547: 30,3572           40141                           CS       TEM1                                  
041053,000548: 30,3573           03622                           TC       ARCTRGSP                              
041054,000549: 30,3574           54154                           TS       MPAC                                  #  CDUX
041055,000550: 
041056,000551: 30,3575           06037                           TC       INTPRET                               
041057,000552: 30,3576           77616                           RVQ                                            
041058,000553: 
041059,000554: 30,3577           00016        16OCT              OCT      16                                    
041060,000555: 

Page 921

041062,000557:                                                                                                  #  THE ELEMENTS OF THE NAV BASE MATRIX WHICH WE MUST DIVIDE BY COS(MGA)
041063,000558:                                                                                                  #  ALREADY CONTAIN COS(MGA)/2 AS A FACTOR. THEREFORE THE QUOTIENT SHOULD
041064,000559:                                                                                                  #  ORDINARILY NEVER EXCEED 1/2 IN MAGNITUDE.  BUT IF THE MGA IS NEAR PI/2
041065,000560:                                                                                                  #  THEN COS(MGA) IS NEAR ZERO, AND THERE MAY BE SOME CHAFF IN THE OTHER
041066,000561:                                                                                                  #  ELEMENTS OF THE MATRIX WHICH WOULD PRODUCE CHAOS UNDER DIVISION.
041067,000562:                                                                                                  #  BEFORE DIVIDING WE MAKE SURE COS(MGA) IS AT LEAST ONE BIT LARGER
041068,000563:                                                                                                  #  THAN THE MAGNITUDE OF THE HIGH ORDER PART OF THE OPERAND.
041069,000564: 
041070,000565:                                                                                                  #  IF ONE OR MORE DIVIDES CANNOT BE PERFORMED, THIS MEANS THAT THE
041071,000566:                                                                                                  #  REQUIRED MGA IS VERY NEARLY +-PI/2 AND THEREFORE THE OTHER GIMBAL
041072,000567:                                                                                                  #  ANGLES ARE INDETERMINATE.  THE INNER AND OUTER GIMBAL ANGLES RETURNED
041073,000568:                                                                                                  #  IN THIS CASE WILL BE RANDOM MULTIPLES OF PI/2.
041074,000569: 
041075,000570: 30,3600           60120        DVBYCOSM           AD       FIXLOC                                
041076,000571: 30,3601           54116                           TS       ADDRWD                                #  ADRES OF OPERAND
041077,000572: 
041078,000573: 30,3602           50116                           INDEX    ADDRWD                                #  FETCH NEG ABS OF OPERAND, AD TEM5, AND
041079,000574: 30,3603           30000                           CA       0                                     #        SKIP DIVIDE IF RESULT NEG OR ZERO
041080,000575: 30,3604           00006                           EXTEND                                         
041081,000576: 30,3605           63607                           BZMF     +2                                    
041082,000577: 30,3606           40000                           COM                                            
041083,000578: 30,3607           60145                           AD       TEM5                                  #  C(A) ZERO OR NEG, C(TEM5) ZERO OR POS
041084,000579: 30,3610           00006                           EXTEND                                         
041085,000580: 30,3611           63617                           BZMF     TSL&TCQ                               #  DIFFERENCE ALWAYS SMALL IF BRANCH
041086,000581: 
041087,000582: 30,3612           00006                           EXTEND                                         #  TEM5 EXCEEDS ABS HIGH ORDER PART OF
041088,000583: 30,3613           50116                           INDEX    ADDRWD                                #        OPERAND BY AT LEAST ONE BIT.
041089,000584: 30,3614           30001                           DCA      0                                     #        THEREFORE IT EXCEEDS THE DP OPERAND
041090,000585: 30,3615           00006                           EXTEND                                         #        AND DIVISION WILL ALWAYS SUCCEED.
041091,000586: 30,3616           10145                           DV       TEM5                                  
041092,000587: 30,3617           54001        TSL&TCQ            TS       L                                     
041093,000588: 30,3620           22141                           LXCH     TEM1                                  
041094,000589: 30,3621           00002                           TC       Q                                     
041095,000590: 

Page 922

041097,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
041098,000593:                                                                                                  #  UNITS OF 2.  THE RESULT IS AN UNAMBIGUOUS ANGLE ANYWHERE IN THE CIRCLE, WITH A MAXIMUM ERROR OF +-4 BITS.
041099,000594:                                                                                                  #  THE ERROR IS PRODUCED BY THE SUBROUTINE SPARCSIN WHICH IS USED ONLY IN THE REGION +-45 DEGREES.
041100,000595: 
041101,000596: 30,3622           00006        ARCTRGSP           EXTEND                                         
041102,000597: 30,3623           13665                           BZF      SINZERO                               #  TO AVOID DIVIDING BY ZERO
041103,000598: 
041104,000599: 30,3624           00006                           EXTEND                                         
041105,000600: 30,3625           22144                           QXCH     TEM4                                  
041106,000601: 30,3626           54142                           TS       TEM2                                  
041107,000602: 30,3627           30001                           CA       L                                     
041108,000603: 30,3630           54143                           TS       TEM3                                  
041109,000604: 30,3631           34755                           CA       ZERO                                  
041110,000605: 30,3632           00006                           EXTEND                                         
041111,000606: 30,3633           10142                           DV       TEM2                                  
041112,000607: 30,3634           00006                           EXTEND                                         
041113,000608: 30,3635           13654                           BZF      USECOS                                
041114,000609: 
041115,000610: 30,3636           10143                           CCS      TEM3                                  #  SIN IS SMALLER OR EQUAL
041116,000611: 30,3637           34755                           CA       ZERO                                  
041117,000612: 30,3640           13644                           TCF      +4                                    
041118,000613: 30,3641           40142                           CS       TEM2                                  #  IF COS NEG, REVERSE SIGN OF SIN,
041119,000614: 30,3642           54142                           TS       TEM2                                  #        ANGLE = PI-ARCSIN(SIN)
041120,000615: 30,3643           34735                           CA       NEGMAX                                #  PICK UP PI, 2'S COMPLEMENT
041121,000616: 30,3644           54143                           TS       TEM3                                  #  WE NO LONGER NEED COS
041122,000617: 30,3645           30142                           CA       TEM2                                  
041123,000618: 30,3646           03672                           TC       SPARCSIN   -1                         
041124,000619: 30,3647           03743                           TC       ONESTO2S                              
041125,000620: 30,3650           00006                           EXTEND                                         
041126,000621: 30,3651           20143                           MSU      TEM3                                  
041127,000622: 30,3652           03743        1TO2&TCQ           TC       ONESTO2S                              
041128,000623: 30,3653           00144                           TC       TEM4                                  
041129,000624: 
041130,000625: 30,3654           40143        USECOS             CS       TEM3                                  #  COS IS SMALLER
041131,000626: 30,3655           03672                           TC       SPARCSIN   -1                         #  ANGLE = SIGN(SIN)(PI/2-ARCSIN(COS))
041132,000627: 30,3656           64736                           AD       HALF                                  
041133,000628: 30,3657           54143                           TS       TEM3                                  #  WE NO LONGER NEED COS
041134,000629: 30,3660           10142                           CCS      TEM2                                  
041135,000630: 30,3661           30143                           CA       TEM3                                  
041136,000631: 30,3662           13652                           TCF      1TO2&TCQ                              
041137,000632: 30,3663           40143                           CS       TEM3                                  
041138,000633: 30,3664           13652                           TCF      1TO2&TCQ                              
041139,000634: 
041140,000635: 30,3665           10001        SINZERO            CCS      L                                     
041141,000636: 30,3666           34755                           CA       ZERO                                  
041142,000637: 30,3667           00002                           TC       Q                                     
041143,000638: 30,3670           34735                           CA       NEGMAX                                #  PI, 2'S COMP
041144,000639: 30,3671           00002                           TC       Q                                     
041145,000640: 

Page 923

041147,000642:                                                                                                  #  SPARCSIN TAKES AN ARGUMENT SCALED UNITY IN A AND RETURNS AN ANGLE SCALED
041148,000643:                                                                                                  #  180 DEGREES IN A.  IT HAS BEEN UNIT TESTED IN THE REGION +-.94 (+-70
041149,000644:                                                                                                  #  DEGREES) AND THE MAXIMUM ERROR IS +-5 BITS WITH AN AVERAGE TIME OF
041150,000645:                                                                                                  #  450 MICROSECONDS.  SPARCSIN -1 TAKES THE ARGUMENT SCALED TWO.  (BOB CRISP)
041151,000646: 
041152,000647: 30,3672           60000                           DOUBLE                                         
041153,000648: 30,3673           54021        SPARCSIN           TS       SR                                    
041154,000649: 30,3674           13700                           TCF      +4                                    
041155,000650: 30,3675           50000                           INDEX    A                                     
041156,000651: 30,3676           44734                           CS       LIMITS                                
041157,000652: 30,3677           54021                           TS       SR                                    
041158,000653: 30,3700           00006                           EXTEND                                         
041159,000654: 30,3701           70000                           MP       A                                     
041160,000655: 30,3702           54141                           TS       TEM1                                  
041161,000656: 30,3703           00006                           EXTEND                                         
041162,000657: 30,3704           73726                           MP       DPL9                                  
041163,000658: 30,3705           63725                           AD       DPL7                                  
041164,000659: 30,3706           00006                           EXTEND                                         
041165,000660: 30,3707           70141                           MP       TEM1                                  
041166,000661: 30,3710           63724                           AD       DPL5                                  
041167,000662: 30,3711           00006                           EXTEND                                         
041168,000663: 30,3712           70141                           MP       TEM1                                  
041169,000664: 30,3713           63723                           AD       DPL3                                  
041170,000665: 30,3714           00006                           EXTEND                                         
041171,000666: 30,3715           70141                           MP       TEM1                                  
041172,000667: 30,3716           63722                           AD       DPL1                                  
041173,000668: 30,3717           00006                           EXTEND                                         
041174,000669: 30,3720           70021                           MP       SR                                    
041175,000670: 30,3721           00002                           TC       Q                                     
041176,000671: 30,3722           24406        DPL1               DEC      10502      B-14                       
041177,000672: 30,3723           00660        DPL3               DEC      432        B-14                       
041178,000673: 30,3724           16204        DPL5               DEC      7300       B-14                       
041179,000674: 30,3725           50744        DPL7               DEC      -11803     B-14                       
041180,000675: 30,3726           20315        DPL9               DEC      8397       B-14                       
041181,000676: 

Page 924

041183,000678:                                                                                                  #  LIMITSUB LIMITS THE MAGNITUDE OF THE POSITIVE OR NEGATIVE VARIABLE
041184,000679:                                                                                                  #  ARRIVING IN L TO THE POSITIVE LIMIT ARRIVING IN A.
041185,000680:                                                                                                  #  THE SIGNED LIMITED VARIABLE IS RETURNED IN A.
041186,000681: 
041187,000682:                                                                                                  #  VERSION COURTESY HUGH BLAIR-SMITH
041188,000683: 
041189,000684: 30,3727           54141        LIMITSUB           TS       TEM1                                  
041190,000685: 30,3730           34755                           CA       ZERO                                  
041191,000686: 30,3731           00006                           EXTEND                                         
041192,000687: 30,3732           10141                           DV       TEM1                                  
041193,000688: 30,3733           10000                           CCS      A                                     
041194,000689: 30,3734           22141                           LXCH     TEM1                                  
041195,000690: 30,3735           13737                           TCF      +2                                    
041196,000691: 30,3736           13741                           TCF      +3                                    
041197,000692: 30,3737           30001                           CA       L                                     
041198,000693: 30,3740           00002                           TC       Q                                     
041199,000694: 30,3741           40141                           CS       TEM1                                  
041200,000695: 30,3742           00002                           TC       Q                                     
041201,000696: 
041202,000697:                                                                                                  #  SUBROUTINE TO CONVERT 1'S COMP SP TO 2'S COMP
041203,000698: 
041204,000699: 30,3743           10000        ONESTO2S           CCS      A                                     
041205,000700: 30,3744           64753                           AD       ONE                                   
041206,000701: 30,3745           00002                           TC       Q                                     
041207,000702: 30,3746           40000                           CS       A                                     
041208,000703: 30,3747           00002                           TC       Q                                     
041209,000704: 
041210,000705:                                                                                                  #  NO ATTITUDE CONTROL
041211,000706: 
041212,000707: 30,3750           05567        NOATTCNT           TC       ALARM                                 
041213,000708: 30,3751           00402                           OCT      00402                                 #  NO ATTITUDE CONTROL
041214,000709: 
041215,000710: 30,3752           00004                 +2        INHINT                                         #  COME HERE FOR NOATTCNT WITHOUT ALARM
041216,000711: 30,3753           04674                           TC       IBNKCALL                              #  RELINT AT TC INTPRET AFTER TCQCDUW
041217,000712: 30,3754           40165                           FCADR    STOPRATE                              
041218,000713: 30,3755           13475                           TCF      TCQCDUW                               #  RETURN TO USER SKIPPING AUTOPILOT CMDS
041219,000714: 
041220,000715:                                                                                                  #  MIDDLE GIMBAL ANGLE ALARM
041221,000716: 
041222,000717: 30,3756           05567        ALARMMGA           TC       ALARM                                 
041223,000718: 30,3757           00401                           OCT      00401                                 
041224,000719: 30,3760           13275                           TCF      MGARET                                
041225,000720: 

Page 925

041227,000722:                                                                                                  # ************************************************************************
041228,000723:                                                                                                  #  CONSTANTS
041229,000724:                                                                                                  # ************************************************************************
041230,000725: 
041231,000726:                                                                                                  #  ADDRESS CONSTANTS
041232,000727: 
041233,000728: 30,3761           03246        ECDUWL             ECADR    ECDUW                                 
041234,000729: 
041235,000730:                                                                                                  #  THRUST DIRECTION FILTER CONSTANTS
041236,000731: 
041237,000732: 30,3762           06315        GAINFLTR           DEC      .2                                    #  GAIN FILTER SANS CSM
041238,000733: 30,3763           03146                           DEC      .1                                    #  GAIN FILTER WITH CSM
041239,000734: 
041240,000735: 30,3764           00071        DUNFVLIM           DEC      .007       B-1                        #  7 MR MAX CHG IN F DIR IN VEH IN 2 SECS.
041241,000736:                                                                                                  #  THIS DOES NOT ALLOW FOR S/C ROT RATE.
041242,000737: 
041243,000738: 30,3765           02041        UNFVLIM            DEC      .129       B-1                        #  129 MR MAX THRUST OFFSET.  105 MR TRAVEL
041244,000739:                                                                                                  #  +10MR DEFL+5MR MECH MOUNT+9MR ABLATION.
041245,000740: 
041246,000741:                                                                                                  #  CONSTANTS RELATED TO GIMBAL ANGLE COMPUTATIONS
041247,000742: 
041248,000743: 30,3766           01673        DOTSWFMX           DEC      .93302     B-4                        #  LIM COLNRTY OF UNWC/2 & UNFC/2 TO 85 DEG
041249,000744:                                                                                                  #  LOWER PART COMES FROM NEXT CONSTANT
041250,000745: 
041251,000746: 30,3767           03434        DAXMAX             DEC      .11111111111                            #  DELATTX LIM TO 20 DEG IN 2 SECS, 1'S, PI
041252,000747: 30,3770           00266                           DEC      .0111111111                            #  2 DEG WHEN CSM DOCKED
041253,000748: 
041254,000749: 30,3771           01616        DAY/2MAX           DEC      .05555555555                            #  LIKEWISE FOR DELATTY
041255,000750: 30,3772           00133                           DEC      .0055555555                            
041256,000751: 
041257,000752: 30,3773  30,3767               DAZMAX             =        DAXMAX                                #  LIKEWISE FOR DELATTZ
041258,000753: 
041259,000754: 30,3773           14344        CDUZDLIM           DEC      .3888888888                            #  70 DEG LIMIT FOR MGA, 1'S, PI
041260,000755: 
041261,000756:                                                                                                  #  CONSTANTS FOR DATA TRANSFER
041262,000757: 
041263,000758: 30,3774           01463        DT/DELT            DEC      .05                                   #  .1 SEC/2 SEC WHICH IS THE AUTOPILOT
041264,000759:                                                                                                  #  CONTROL SAMPLE PERIOD/COMPUTATION PERIOD
041265,000760: 
041266,000761: 30,3775  30,3771               DELERLIM           =        DAY/2MAX                              #  10 DEG LIMIT FOR LAG ANGLES, 1'S, PI
041267,000762: 

End of include-file FINDCDUW_-_GUIDAP_INTERFACE.agc.  Parent file is MAIN.agc