Source Code

These source-code files derive from a printout of Luminary 116 (the Apollo 12 Lunar Module guidance computer program), from the personal library of original AGC developer Don Eyles, digitally photographed at archive.org, financially sponsored by Ron Burkey, and transcribed to source code by a team of volunteers. This colorized, syntax-highlighted form was created by assembling that transcribed source code. Note that the full page images are available on the Virtual AGC project page at archive.org, while reduced-size images are presented at the VirtualAGC project website. Report or fix any transcription errors at the Virtual AGC project code repository.

Notations on the program listing read, in part:

	GAP:  ASSEMBLE REVISION 116 OF AGC PROGRAM LUMINARY BY NASA 2021112-071
	19:09 AUG. 11,1969
Note that the date is the date of the printout, not the date of the program revision.

039018,000002:                                                                                                  ## Copyright:   Public domain.
039019,000003:                                                                                                  ## Filename:    FINDCDUW_-_GUIDAP_INTERFACE.agc
039020,000004:                                                                                                  ## Purpose:     A section of Luminary revision 116.
039021,000005:                                                                                                  ##              It is part of the source code for the Lunar Module's (LM) 
039022,000006:                                                                                                  ##              Apollo Guidance Computer (AGC) for Apollo 12.
039023,000007:                                                                                                  ##              This file is intended to be a faithful transcription, except
039024,000008:                                                                                                  ##              that the code format has been changed to conform to the
039025,000009:                                                                                                  ##              requirements of the yaYUL assembler rather than the
039026,000010:                                                                                                  ##              original YUL assembler.
039027,000011:                                                                                                  ## Reference:   pp. 901-918
039028,000012:                                                                                                  ## Assembler:   yaYUL
039029,000013:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
039030,000014:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
039031,000015:                                                                                                  ## Mod history: 2017-01-22 MAS  Created from Luminary 99.
039032,000016:                                                                                                  ##              2017-03-10 RSB  Transcribed, and then proofed comment-text using
039033,000017:                                                                                                  ##                              3-way diff vs Luminary 99 and Luminary 131.
039034,000018:                                                                                                  ##                              (Admittedly, the former is more for detecting errors
039035,000019:                                                                                                  ##                              in Luminary 99 than the other way around.)
039036,000020:                                                                                                  ##                              The label 1406P00 was replaced with 1406POO.
039037,000021:                                                                                                  ##              2017-03-15 RSB  Comment-text fixes identified in 5-way
039038,000022:                                                                                                  ##                              side-by-side diff of Luminary 69/99/116/131/210.
039039,000023: 

Page 901

039041,000025:                                                                                                  #  PROGRAM NAME:  FINDCDUW
039042,000026:                                                                                                  #  MOD NUMBER:  1        68 07 15
039043,000027:                                                                                                  #  MOD AUTHOR:  KLUMPP
039044,000028: 
039045,000029:                                                                                                  #  OBJECTS OF MOD:       1.      TO SUPPLY COMMANDED GIMBAL ANGLES FOR NOUN 22.
039046,000030:                                                                                                  #                        2.      TO MAINTAIN CORRECT AND CURRENT THRUST
039047,000031:                                                                                                  #                                DIRECTION DATA IN ALL MODES.  THIS IS DONE BY
039048,000032:                                                                                                  #                                FETCHING FOR THE THRUST DIRECTION FILTER THE
039049,000033:                                                                                                  #                                CDUD'S IN PNGCS-AUTO, THE CDU'S IN ALL OTHER
039050,000034:                                                                                                  #                                MODES.
039051,000035:                                                                                                  #                        3.      TO SUBSTITUTE A STOPRATE FOR THE NORMAL
039052,000036:                                                                                                  #                                AUTOPILOT COMMANDS WHENEVER
039053,000037:                                                                                                  #                                1) NOT IN PNGCS-AUTO, OR
039054,000038:                                                                                                  #                                2) ENGINE IS OFF.
039055,000039: 
039056,000040:                                                                                                  #  FUNCTIONAL DESCRIPTION:
039057,000041: 
039058,000042:                                                                                                  #  FINDCDUW PROVIDES THE INTERFACES BETWEEN THE VARIOUS POWERED FLITE GUIDANCE PROGRAMS
039059,000043:                                                                                                  #  AND THE DIGITAL AUTOPILOT.  THE INPUTS TO FINDCDUW ARE THE THRUST COMMAND VECTOR
039060,000044:                                                                                                  #  AND THE WINDOW COMMAND VECTOR, AND THE OUTPUTS ARE THE GIMBAL ANGLE
039061,000045:                                                                                                  #  INCREMENTS, THE COMMANDED ATTITUDE ANGLE RATES, AND THE COMMANDED
039062,000046:                                                                                                  #  ATTITUDE LAG ANGLES (WHICH ACCOUNT FOR THE ANGLES BY WHICH THE BODY WILL
039063,000047:                                                                                                  #  LAG BEHIND A RAMP COMMAND IN ATTITUDE ANGLE DUE TO THE FINITE ANGULAR
039064,000048:                                                                                                  #  ACCELERATIONS AVAILABLE).
039065,000049: 
039066,000050:                                                                                                  #  FINDCDUW ALINES THE ESTIMATED THRUST VECTOR FROM THE THRUST DIRECTION
039067,000051:                                                                                                  #  FILTER WITH THE THRUST COMMAND VECTOR, AND, WHEN XOVINHIB SET,
039068,000052:                                                                                                  #  ALINES THE +Z HALF OF THE LM ZX PLANE WITH THE WINDOW COMMAND VECTOR.
039069,000053: 

Page 902

039071,000055:                                                                                                  #  SPECIFICATIONS:
039072,000056: 
039073,000057:                                                                                                  #  INITIALIZATION:       A SINGLE INTERPRETIVE CALL TO INITCDUW IS REQUIRED
039074,000058:                                                                                                  #                        BEFORE EACH GUIDED MANEUVER USING FINDCDUW.
039075,000059: 
039076,000060:                                                                                                  #  CALL:                 INTERPRETIVE CALL TO FINDCDUW WITH THE THRUST COMMAND
039077,000061:                                                                                                  #                        VECTOR IN MPAC.  INTERPRETIVE CALL TO FINDCDUW -2 WITH
039078,000062:                                                                                                  #                        THE THRUST COMMAND VECTOR IN UNFC/2 AND NOT IN MPAC.
039079,000063: 
039080,000064:                                                                                                  #  RETURNS:              NORMAL INTERPRETIVE IN ALL CASES
039081,000065:                                                                                                  #                        1.      NORMALLY ALL AUTOPILOT CMDS ARE ISSUED.
039082,000066:                                                                                                  #                        2.      IF NOT PNGCS AUTO, DO STOPRATE AND RETURN
039083,000067:                                                                                                  #                                WITHOUT ISSUING AUTOPILOT CMDS.
039084,000068:                                                                                                  #                        3.      IF ENGINE OFF, DO STOPRATE AND RETURN WITHOUT
039085,000069:                                                                                                  #                                ISSUING AUTOPILOT CMDS.
039086,000070: 
039087,000071:                                                                                                  #  ALARMS:               00401   IF INPUTS DETERMINE AN ATTITUDE IN GIMBAL LOCK.
039088,000072:                                                                                                  #                                FINDCDUW DRIVES CDUXD AND CDUYD TO THE RQD VALUES,
039089,000073:                                                                                                  #                                BUT DRIVES CDUZD ONLY TO THE GIMBAL LOCK CONE.
039090,000074: 
039091,000075:                                                                                                  #                        00402   IF UNFC/2 OR UNWC/2 PRODUCE OVERFLOW WHEN
039092,000076:                                                                                                  #                                UNITIZED USING NORMUNIT.  FINDCDUW ISSUES
039093,000077:                                                                                                  #                                STOPRATE AS ONLY INPUT TO AUTOPILOT.
039094,000078: 
039095,000079:                                                                                                  #  INPUTS:               UNFC/2          THRUST COMMAND VECTOR, NEED NOT BE SEMI-UNIT.
039096,000080:                                                                                                  #                        UNWC/2          WINDOW COMMAND VECTOR, NEED NOT BE SEMI-UNIT.
039097,000081:                                                                                                  #                        XOVINHIB        FLAG DENOTING X AXIS OVERRIDE INHIBITED.
039098,000082:                                                                                                  #                        CSMDOCKD        FLAG DENOTING CSM DOCKED.
039099,000083:                                                                                                  #                        STEERSW         FLAG DENOTING INSUFF THRUST FOR THRUST DIR FLTR.
039100,000084: 
039101,000085:                                                                                                  #  OUTPUTS:              DELCDUX,Y,Z
039102,000086:                                                                                                  #                        OMEGAPD,+1,+2
039103,000087:                                                                                                  #                        DELPEROR,+1,+2
039104,000088:                                                                                                  #                        CPHI,+1,+2 FOR NOUN22
039105,000089: 
039106,000090:                                                                                                  #  DEBRIS:               FINDCDUW DESTROYS SINCDUX,Y,Z AND COSCDUX,Y,Z BY
039107,000091:                                                                                                  #                        WRITING INTO THESE LOCATIONS THE SINES AND COSINES
039108,000092:                                                                                                  #                        OF THE CDUD'S IN PNGCS-AUTO, OF THE CDU'S OTHERWISE.
039109,000093: 

Page 903

039111,000095:                                                                                                  #  INITIALIZATION FOR FINDCDUW
039112,000096: 
039113,000097: 30,3071                                           BANK     30                                    
039114,000098: 30,2000                                           SETLOC   FCDUW                                 
039115,000099: 30,2000                                           BANK                                           
039116,000100: 
039117,000101: 30,3071  E6,1646                                  EBANK=   ECDUW                                 
039118,000102: 30,3071                                           COUNT*   $$/FCDUW                              
039119,000103: 
039120,000104: 30,3071           77775        INITCDUW           VLOAD                                          
039121,000105: 30,3072           06522                                    UNITX                                 
039122,000106: 30,3073           03270                           STORE    UNFV/2                                
039123,000107: 30,3074           03262                           STORE    UNWC/2                                
039124,000108: 30,3075           77616                           RVQ                                            
039125,000109: 
039126,000110:                                                                                                  #  FINDCDUW PRELIMINARIES
039127,000111: 
039128,000112: 30,3076           77775                           VLOAD                                          #  FINDCDUW -2:  ENTRY WHEN UNFC/2 PRE-STORD
039129,000113: 30,3077           03254                                    UNFC/2                                #  INPUT VECTORS NEED NOT BE SEMI-UNIT
039130,000114: 30,3100           40200        FINDCDUW           BOV      SETPD                                 #  FINDCDUW: ENTRY WHEN UNFC/2 IN MPAC
039131,000115: 30,3101           61100                                    FINDCDUW                              #  INTERPRETER NOW INITIALIZED
039132,000116: 30,3102           00023                                    22                                    #  LOCS 0 THRU 21 FOR DIRECTION COSINE MAT
039133,000117: 30,3103           77420                           STQ      EXIT                                  
039134,000118: 30,3104           03247                                    QCDUWUSR                              #  SAVE RETURN ADDRESS
039135,000119: 
039136,000120:                                                                                                  #  MORE HAUSKEEPING
039137,000121: 30,3105           33746                           CA       ECDUWL                                
039138,000122: 30,3106           56003                           XCH      EBANK                                 #  SET EBANK
039139,000123: 30,3107           55646                           TS       ECDUWUSR                              #  SAVE USER'S EBANK
039140,000124: 
039141,000125: 30,3110           30111                           CA       DAPBOOLS                              
039142,000126: 30,3111           74737                           MASK     CSMDOCKD                              #  CSMDOCKD MUST NOT BE BIT15
039143,000127: 30,3112           10000                           CCS      A                                     
039144,000128: 30,3113           34753                           CA       ONE                                   #  INDEX IF CSM DOCKED
039145,000129: 30,3114           55650                           TS       NDXCDUW                               
039146,000130: 
039147,000131: 30,3115           34743                           CA       XOVINHIB                              #  XOVINHIB MUST NOT BE BIT15
039148,000132: 30,3116           55652                           TS       FLPAUTNO                              #  SET TO POS-NON-ZERO FLAG PNGCS AUTO NOT
039149,000133: 
039150,000134: 30,3117           70111                           MASK     DAPBOOLS                              
039151,000135: 30,3120           55651                           TS       FLAGOODW                              #  FLAGOODW = ANY PNZ NUMBER IF XOV INHIBTD
039152,000136: 

Page 904

039154,000138:                                                                                                  #  FETCH BASIC DATA
039155,000139: 30,3121           00004                           INHINT                                         #  RELINT AT PAUTNO (TC INTPRET)
039156,000140: 
039157,000141: 30,3122           30032                           CA       CDUX                                  #  FETCH CDUX,CDUY,CDUZ IN ALL CASES, BUT
039158,000142: 30,3123           54771                           TS       CDUSPOTX                              #        REPLACE BELOW IF PNGCS AUTO
039159,000143: 30,3124           30033                           CA       CDUY                                  
039160,000144: 30,3125           54765                           TS       CDUSPOTY                              
039161,000145: 30,3126           30034                           CA       CDUZ                                  
039162,000146: 30,3127           54767                           TS       CDUSPOTZ                              
039163,000147: 
039164,000148: 30,3130           34742                           CA       BIT10                                 #  PNGCS CONTROL BIT
039165,000149: 30,3131           00006                           EXTEND                                         
039166,000150: 30,3132           02030                           RAND     CHAN30                                
039167,000151: 30,3133           10000                           CCS      A                                     
039168,000152: 30,3134           13151                           TCF      PAUTNO                                #  NOT PNGCS (BITS INVERTED)
039169,000153: 
039170,000154: 30,3135           34736                           CA       BIT14                                 #  AUTO MODE BIT
039171,000155: 30,3136           00006                           EXTEND                                         
039172,000156: 30,3137           02031                           RAND     CHAN31                                
039173,000157: 30,3140           10000                           CCS      A                                     
039174,000158: 30,3141           13151                           TCF      PAUTNO                                #  NOT AUTO (BITS INVERTED)
039175,000159: 
039176,000160: 30,3142           55652                           TS       FLPAUTNO                              #  RESET FLAG PNGCS AUTO NOT
039177,000161: 
039178,000162: 30,3143           31635                           CA       CDUXD                                 #  PNGCS AUTO:  FETCH CDUXD,CDUYD,CDUZD
039179,000163: 30,3144           54771                           TS       CDUSPOTX                              
039180,000164: 30,3145           31636                           CA       CDUYD                                 
039181,000165: 30,3146           54765                           TS       CDUSPOTY                              
039182,000166: 30,3147           31637                           CA       CDUZD                                 
039183,000167: 30,3150           54767                           TS       CDUSPOTZ                              
039184,000168: 

Page 905

039186,000170:                                                                                                  #  FETCH INPUTS
039187,000171: 30,3151           06042        PAUTNO             TC       INTPRET                               #  ENTERING THRUST CMD STILL IN MPAC
039188,000172: 30,3152           77634                           RTB                                            
039189,000173: 30,3153           21727                                    NORMUNIT                              
039190,000174: 30,3154           24001                           STOVL    UNX/2                                 #  SEMI-UNIT THRUST CMD AS INITIAL UNX/2
039191,000175: 30,3155           03262                                    UNWC/2                                
039192,000176: 30,3156           47034                           RTB      RTB                                   
039193,000177: 30,3157           21727                                    NORMUNIT                              
039194,000178: 30,3160           47617                                    QUICTRIG                              #  ALWAYS RQD TO OBTAIN TRIGS OF CDUD'S
039195,000179: 30,3161           24015                           STOVL    UNZ/2                                 #  SEMI-UNIT WINDOW CMD AS INITIAL UNZ/2
039196,000180: 30,3162           00325                                    DELV                                  
039197,000181: 30,3163           53404                           BOVB     UNIT                                  
039198,000182: 30,3164           61735                                    NOATTCNT                              #  AT LEAST ONE ENTERING CMD VCT ZERO

A horizontal line is hand-drawn here in the printout, but from the vertical positioning, it's unclear whether it is underlining the NOATTCNT above or if it is crossing out the CALL below.

039202,000186: 30,3165           45000                           BOV      CALL                                  
039203,000187: 30,3166           61202                                    AFTRFLTR                              #  IF UNIT DELV OVERFLOWS, SKIP FILTER
039204,000188: 30,3167           47673                                    *SMNB*                                #  YIELDS UNIT(DELV) IN VEH COORDS FOR FLTR
039205,000189: 
039206,000190:                                                                                                  #  THRUST DIRECTION FILTER
039207,000191: 
039208,000192: 30,3170           77776                           EXIT                                           
039209,000193: 
039210,000194: 30,3171           31671                           CA       UNFVY/2                               #  FOR RESTARTS, UNFV/2 ALWAYS INTACT, MPAC
039211,000195: 30,3172           22157                           LXCH     MPAC       +3                         #        RENEWED AFTER RETURN FROM CALLER,
039212,000196: 30,3173           03470                           TC       FLTRSUB                               #        TWO FILTER UPDATES MAY BE DONE.
039213,000197: 30,3174           55671                           TS       UNFVY/2                               #  UNFV/2 NEED NOT BE EXACTLY SEMI-UNIT.
039214,000198: 
039215,000199: 30,3175           31673                           CA       UNFVZ/2                               
039216,000200: 30,3176           22161                           LXCH     MPAC       +5                         
039217,000201: 30,3177           03470                           TC       FLTRSUB                               
039218,000202: 30,3200           55673                           TS       UNFVZ/2                               
039219,000203: 
039220,000204: 30,3201           06042                           TC       INTPRET                               #  COMPLETES FILTER
039221,000205: 

Page 906

039223,000207:                                                                                                  #  FIND A SUITABLE WINDOW POINTING VECTOR
039224,000208: 
039225,000209: 30,3202           46135        AFTRFLTR           SLOAD    BHIZ                                  #  IF XOV NOT INHIBITED, GO FETCH ZNB
039226,000210: 30,3203           03252                                    FLAGOODW                              
039227,000211: 30,3204           61210                                    FETCHZNB                              
039228,000212: 30,3205           45175                           VLOAD    CALL                                  
039229,000213: 30,3206           00015                                    UNZ/2                                 
039230,000214: 30,3207           61510                                    UNWCTEST                              
039231,000215: 
039232,000216: 30,3210           77775        FETCHZNB           VLOAD                                          
039233,000217: 30,3211           02162                                    ZNBPIP                                
039234,000218: 30,3212           34015                           STCALL   UNZ/2                                 
039235,000219: 30,3213           61510                                    UNWCTEST                              
039236,000220: 
039237,000221: 30,3214           57575                           VLOAD    VCOMP                                 #  Z AND -X CAN'T BOTH PARALLEL UNFC/2
039238,000222: 30,3215           02146                                    XNBPIP                                
039239,000223: 30,3216           00015                           STORE    UNZ/2                                 
039240,000224: 
039241,000225:                                                                                                  #  COMPUTE THE REQUIRED DIRECTION COSINE MATRIX
039242,000226: 
039243,000227: 30,3217           47375        DCMCL              VLOAD    VXV                                   
039244,000228: 30,3220           00015                                    UNZ/2                                 
039245,000229: 30,3221           00001                                    UNX/2                                 
039246,000230: 30,3222           41456                           UNIT     PUSH                                  #  UNY/2 FIRST ITERATION
039247,000231: 30,3223           76435                           VXV      VSL1                                  
039248,000232: 30,3224           00001                                    UNX/2                                 
039249,000233: 30,3225           00015                           STORE    UNZ/2                                 #  -UNZ/2 FIRST ITERATION
039250,000234: 30,3226           63361                           VXSC     PDVL                                  #  EXCHANGE -UNFVZ/2 UNZ/2 FOR UNY/2
039251,000235: 30,3227           03274                                    UNFVZ/2                               #  MUST BE SMALL
039252,000236: 30,3230           51361                           VXSC     BVSU                                  #  YIELDS -UNFVY/2 UNY/2-UNFVZ/2 UNZ/2
039253,000237: 30,3231           03272                                    UNFVY/2                               #  MUST BE SMALL
039254,000238: 30,3232           53372                           VSL1     VAD                                   
039255,000239: 30,3233           00001                                    UNX/2                                 
039256,000240: 30,3234           77656                           UNIT                                           #  TOTALLY ELIMINATES THRUST POINTING ERROR
039257,000241: 30,3235           00001                           STORE    UNX/2                                 #  UNX/2
039258,000242: 30,3236           76435                           VXV      VSL1                                  
039259,000243: 30,3237           00015                                    UNZ/2                                 #  -UNZ/2 WAS STORED HERE REMEMBER
039260,000244: 30,3240           00007                           STORE    UNY/2                                 #  UNY/2
039261,000245: 30,3241           47276                           VCOMP    VXV                                   
039262,000246: 30,3242           00001                                    UNX/2                                 
039263,000247: 30,3243           77772                           VSL1                                           
039264,000248: 30,3244           00015                           STORE    UNZ/2                                 #  UNZ/2
039265,000249: 

Page 907

039267,000251:                                                                                                  #  COMPUTE THE REQUIRED GIMBAL ANGLES
039268,000252: 
039269,000253: 30,3245           77624                           CALL                                           
039270,000254: 30,3246           61520                                    NB2CDUSP                              #  YIELDS THE RQD GIMBAL ANGLES, 2'S, PI
039271,000255: 30,3247           77776                           EXIT                                           
039272,000256: 
039273,000257:                                                                                                  #  LIMIT THE MIDDLE GIMBAL ANGLE & COMPUTE THE UNLIMITED GIMBAL ANGLE CHGS
039274,000258: 
039275,000259: 30,3250           30156                           CA       MPAC       +2                         #  LIMIT THE MGA
039276,000260: 30,3251           54001                           TS       L                                     #  CAN'T LXCH:  NEED UNLIMITED MGA FOR ALARM
039277,000261: 30,3252           33760                           CA       CDUZDLIM                              
039278,000262: 30,3253           03714                           TC       LIMITSUB                              #  YIELDS LIMITED MGA.  1 BIT ERROR POSSIBLE
039279,000263: 30,3254           56156                           XCH      MPAC       +2                         #        BECAUSE USING 2'S COMP.  WHO CARES?
039280,000264: 30,3255           00006                           EXTEND                                         
039281,000265: 30,3256           20156                           MSU      MPAC       +2                         #  THIS BETTER YIELD ZERO
039282,000266: 30,3257           00006                           EXTEND                                         
039283,000267: 30,3260           13262                           BZF      +2                                    
039284,000268: 30,3261           13743                           TCF      ALARMMGA                              
039285,000269: 
039286,000270: 30,3262           00004        MGARET             INHINT                                         #  RELINT AT TC INTPRET AFTER TCQCDUW
039287,000271: 
039288,000272: 30,3263           22007                           ZL                                             
039289,000273: 30,3264           34752                           CA       TWO                                   
039290,000274: 30,3265           54142        DELGMBLP           TS       TEM2                                  
039291,000275: 
039292,000276: 30,3266           30001                           CA       L                                     #  TO PREVENT FALSE STARTS ABOUT X, ZERO
039293,000277: 30,3267           00006                           EXTEND                                         #        FLAGOODW IF DELGMBZ OR Y TOO BIG.
039294,000278: 30,3270           70000                           SQUARE                                         
039295,000279: 30,3271           64350                           AD       HI5                                   #  WITHIN 1 BIT OF -(45 DEG SQUARED)
039296,000280: 30,3272           00006                           EXTEND                                         
039297,000281: 30,3273           63276                           BZMF     +3                                    
039298,000282: 30,3274           34755                           CA       ZERO                                  
039299,000283: 30,3275           55651                           TS       FLAGOODW                              
039300,000284: 
039301,000285: 30,3276           50142                           INDEX    TEM2                                  
039302,000286: 30,3277           30154                           CA       MPAC                                  
039303,000287: 30,3300           50142                           INDEX    TEM2                                  
039304,000288: 30,3301           54321                           TS       CPHI                                  #  OUTPUTS TO NOUN22
039305,000289: 30,3302           00006                           EXTEND                                         
039306,000290: 30,3303           50142                           INDEX    TEM2                                  
039307,000291: 30,3304           21635                           MSU      CDUXD                                 #  NO MATTER THAT THESE SLIGHTLY DIFFERENT
039308,000292: 30,3305           40000                           COM                                            #  FROM WHEN WE INITIALLY FETCHED THEM
039309,000293: 30,3306           50142                           INDEX    TEM2                                  
039310,000294: 30,3307           55675                           TS       -DELGMB                               #  -UNLIMITED GIMBAL ANGLE CHGS, 1'S, PI
039311,000295: 30,3310           54001                           TS       L                                     #  FOR PRECEDING TEST ON NEXT LOOP PASS
039312,000296: 30,3311           10142                           CCS      TEM2                                  
039313,000297: 30,3312           13265                           TCF      DELGMBLP                              
039314,000298: 

Page 908

039316,000300:                                                                                                  #  BRANCHES TO NOATTCNT
039317,000301: 30,3313           11652                           CCS      FLPAUTNO                              
039318,000302: 30,3314           13737                           TCF      NOATTCNT   +2                         #  NOT PNGCS AUTO
039319,000303: 
039320,000304: 30,3315           30101                           CA       FLAGWRD5                              
039321,000305: 30,3316           74745                           MASK     ENGONBIT                              
039322,000306: 30,3317           00006                           EXTEND                                         
039323,000307: 30,3320           13737                           BZF      NOATTCNT   +2                         #  ENGINE NOT ON
039324,000308: 

Page 909

039326,000310:                                                                                                  #  LIMIT THE ATTITUDE ANGLE CHANGES
039327,000311: 
039328,000312:                                                                                                  #  THIS SECTION LIMITS THE ATTITUDE ANGLE CHANGES ABOUT A SET OF ORTHOGONAL VEHICLE AXES X,YPRIME,ZPRIME.
039329,000313:                                                                                                  #  THESE AXES COINCIDE WITH THE COMMANDED VEHICLE AXES IF AND ONLY IF CDUXD IS ZERO.  THE PRIME SYSTEM IS
039330,000314:                                                                                                  #  THE COMMANDED VEHICLE SYSTEM ROTATED ABOUT THE X AXIS TO BRING THE Z AXIS INTO ALINEMENT WITH THE MIDDLE GIMBAL
039331,000315:                                                                                                  #  AXIS.  ATTITUDE ANGLE CHANGES IN THE PRIME SYSTEM ARE RELATED TO SMALL GIMBAL ANGLE CHANGES BY:
039332,000316: 
039333,000317:                                                                                                  #        *   -DELATTX    *   * 1     SIN(CDUZD)     0 * * -DELGMBX *
039334,000318:                                                                                                  #        *               *   *                        * *          *
039335,000319:                                                                                                  #        * -DELATTYPRIME * = * 0     COS(CDUZD)     0 * * -DELGMBY *
039336,000320:                                                                                                  #        *               *   *                        * *          *
039337,000321:                                                                                                  #        * -DELATTZPRIME *   * 0         0          1 * * -DELGMBZ *
039338,000322: 
039339,000323: 30,3321           23677                           LXCH     -DELGMB    +2                         #  SAME AS -DELATTZPRIME UNLIMITED
039340,000324: 30,3322           51650                           INDEX    NDXCDUW                               
039341,000325: 30,3323           33754                           CA       DAZMAX                                
039342,000326: 30,3324           03714                           TC       LIMITSUB                              
039343,000327: 30,3325           55677                           TS       -DELGMB    +2                         #  -DELGMBZ
039344,000328: 
039345,000329: 30,3326           31676                           CA       -DELGMB    +1                         
039346,000330: 30,3327           00006                           EXTEND                                         
039347,000331: 30,3330           70745                           MP       COSCDUZ                               #  YIELDS -DELATTYPRIME/2 UNLIMITED
039348,000332: 30,3331           54001                           TS       L                                     
039349,000333: 30,3332           51650                           INDEX    NDXCDUW                               
039350,000334: 30,3333           33756                           CA       DAY/2MAX                              
039351,000335: 30,3334           03714                           TC       LIMITSUB                              
039352,000336: 30,3335           00006                           EXTEND                                         
039353,000337: 30,3336           10745                           DV       COSCDUZ                               
039354,000338: 30,3337           57676                           XCH      -DELGMB    +1                         #  -DELGMBY, FETCHING UNLIMITED VALUE
039355,000339: 
039356,000340: 30,3340           00006                           EXTEND                                         
039357,000341: 30,3341           70737                           MP       SINCDUZ                               
039358,000342: 30,3342           20001                           DDOUBL                                         
039359,000343: 30,3343           40000                           COM                                            
039360,000344: 30,3344           00006                           EXTEND                                         #  YIELDS +DELATTX UNLIMITD, MAG < 180 DEG,
039361,000345: 30,3345           21675                           MSU      -DELGMB                               #        BASED ON UNLIMITED DELGMBY.
039362,000346: 30,3346           54001                           TS       L                                     #        ONE BIT ERROR IF OPERANDS IN MSU
039363,000347: 30,3347           51650                           INDEX    NDXCDUW                               #        OF MIXED SIGNS.  WHO CARES?
039364,000348: 30,3350           33754                           CA       DAXMAX                                
039365,000349: 30,3351           03714                           TC       LIMITSUB                              
039366,000350: 30,3352           55675                           TS       -DELGMB                               #  SAVE LIMITED +DELATTX
039367,000351: 30,3353           11651                           CCS      FLAGOODW                              
039368,000352: 30,3354           41675                           CS       -DELGMB                               #  FETCH IT BACK CHGING SIGN IF WINDOW GOOD
039369,000353: 30,3355           55675                           TS       -DELGMB                               #  OTHERWISE USE ZERO FOR -DELATTX
039370,000354: 30,3356           41676                           CS       -DELGMB    +1                         
039371,000355: 30,3357           00006                           EXTEND                                         
039372,000356: 30,3360           70737                           MP       SINCDUZ                               
039373,000357: 30,3361           20001                           DDOUBL                                         #  YIELDS -CNTRIB TO -DELATTX FROM -DELGMBY
039374,000358: 30,3362           27675                           ADS      -DELGMB                               #  -DELGMBX.  NO OVERFLOW SINCE LIMITED TO
039375,000359:                                                                                                  #  20DEG(1+SIN(70DEG)/COS(70DEG)) < 180DEG
039376,000360: 

Page 910

039378,000362:                                                                                                  #  COMPUTE COMMANDED ATTITUDE RATES
039379,000363: 
039380,000364:                                                                                                  #        * OMEGAPD *   * -2         -4 SINCDUZ              +0    * * -DELGMBX *
039381,000365:                                                                                                  #        *         *   *                                          * *          *
039382,000366:                                                                                                  #        * OMEGAQD * = * +0     -8 COSCDUZ COSCDUX     -4 SINCDUX * * -DELGMBY *
039383,000367:                                                                                                  #        *         *   *                                          * *          *
039384,000368:                                                                                                  #        * OMEGARD *   * +0     +8 COSCDUZ SINCDUX     -4 COSCDUX * * -DELGMBZ *
039385,000369: 
039386,000370:                                                                                                  #  ATTITUDE ANGLE RATES IN UNITS OF PI/4 RAD/SEC = K TRIG FCNS IN UNITS OF 2 X GIMBAL ANGLE RATES IN UNITS OF
039387,000371:                                                                                                  #  PI/2 RAD/SEC.  THE CONSTANTS ARE BASED ON DELGMB BEING THE GIMBAL ANGLE CHANGES IN UNITS OF PI RADIANS,
039388,000372:                                                                                                  #  AND 2 SECONDS BEING THE COMPUTATION PERIOD (THE PERIOD BETWEEN SUCCESSIVE PASSES THRU FINDCDUW).
039389,000373: 
039390,000374: 30,3363           41675                           CS       -DELGMB                               
039391,000375: 30,3364           55643                           TS       OMEGAPD                               
039392,000376: 30,3365           41676                           CS       -DELGMB    +1                         
039393,000377: 30,3366           00006                           EXTEND                                         
039394,000378: 30,3367           70737                           MP       SINCDUZ                               
039395,000379: 30,3370           20001                           DDOUBL                                         
039396,000380: 30,3371           27643                           ADS      OMEGAPD                               
039397,000381: 30,3372           27643                           ADS      OMEGAPD                               
039398,000382: 
039399,000383: 30,3373           41676                           CS       -DELGMB    +1                         
039400,000384: 30,3374           00006                           EXTEND                                         
039401,000385: 30,3375           70747                           MP       COSCDUX                               
039402,000386: 30,3376           20001                           DDOUBL                                         
039403,000387: 30,3377           00006                           EXTEND                                         
039404,000388: 30,3400           70745                           MP       COSCDUZ                               
039405,000389: 30,3401           55644                           TS       OMEGAQD                               
039406,000390: 30,3402           41677                           CS       -DELGMB    +2                         
039407,000391: 30,3403           00006                           EXTEND                                         
039408,000392: 30,3404           70741                           MP       SINCDUX                               
039409,000393: 30,3405           27644                           ADS      OMEGAQD                               
039410,000394: 30,3406           27644                           ADS      OMEGAQD                               
039411,000395: 30,3407           27644                           ADS      OMEGAQD                               
039412,000396: 
039413,000397: 30,3410           31676                           CA       -DELGMB    +1                         
039414,000398: 30,3411           00006                           EXTEND                                         
039415,000399: 30,3412           70741                           MP       SINCDUX                               
039416,000400: 30,3413           20001                           DDOUBL                                         
039417,000401: 30,3414           00006                           EXTEND                                         
039418,000402: 30,3415           70745                           MP       COSCDUZ                               
039419,000403: 30,3416           55645                           TS       OMEGARD                               
039420,000404: 30,3417           41677                           CS       -DELGMB    +2                         
039421,000405: 30,3420           00006                           EXTEND                                         
039422,000406: 30,3421           70747                           MP       COSCDUX                               
039423,000407: 30,3422           27645                           ADS      OMEGARD                               
039424,000408: 30,3423           27645                           ADS      OMEGARD                               
039425,000409: 30,3424           27645                           ADS      OMEGARD                               
039426,000410: 

Page 911

039428,000412:                                                                                                  #  FINAL TRANSFER
039429,000413: 
039430,000414: 30,3425           34752                           CA       TWO                                   
039431,000415: 30,3426           54142        CDUWXFR            TS       TEM2                                  
039432,000416: 30,3427           50142                           INDEX    TEM2                                  
039433,000417: 30,3430           31675                           CA       -DELGMB                               
039434,000418: 30,3431           00006                           EXTEND                                         
039435,000419: 30,3432           73761                           MP       DT/DELT                               #  RATIO OF DAP INTERVAL TO CDUW INTERVAL
039436,000420: 30,3433           03730                           TC       ONESTO2S                              
039437,000421: 30,3434           50142                           INDEX    TEM2                                  
039438,000422: 30,3435           55640                           TS       DELCDUX                               #  ANGLE INTERFACE
039439,000423: 
039440,000424: 30,3436           50142                           INDEX    TEM2                                  
039441,000425: 30,3437           11643                           CCS      OMEGAPD                               
039442,000426: 30,3440           64753                           AD       ONE                                   
039443,000427: 30,3441           13443                           TCF      +2                                    
039444,000428: 30,3442           64753                           AD       ONE                                   
039445,000429: 30,3443           00006                           EXTEND                                         #  WE NOW HAVE ABS(OMEGAPD,QD,RD)
039446,000430: 30,3444           50142                           INDEX    TEM2                                  
039447,000431: 30,3445           71643                           MP       OMEGAPD                               
039448,000432: 30,3446           00006                           EXTEND                                         
039449,000433: 30,3447           74741                           MP       BIT11                                 #  1/16
039450,000434: 30,3450           00006                           EXTEND                                         
039451,000435: 30,3451           50142                           INDEX    TEM2                                  #                    2
039452,000436: 30,3452           11530                           DV       1JACC                                 #  UNITS PI/4 RAD/SEC
039453,000437: 30,3453           54001                           TS       L                                     
039454,000438: 30,3454           33756                           CA       DELERLIM                              
039455,000439: 30,3455           03714                           TC       LIMITSUB                              
039456,000440: 30,3456           50142                           INDEX    TEM2                                  
039457,000441: 30,3457           55274                           TS       DELPEROR                              #  LAG ANGLE = OMEGA ABS(OMEGA)/2 ACCEL
039458,000442: 30,3460           10142                           CCS      TEM2                                  
039459,000443: 30,3461           13426                           TCF      CDUWXFR                               
039460,000444: 
039461,000445:                                                                                                  #  HAUSKEEPING AND RETURN
039462,000446: 
039463,000447: 30,3462           31646        TCQCDUW            CA       ECDUWUSR                              
039464,000448: 30,3463           54003                           TS       EBANK                                 #  RETURN USER'S EBANK
039465,000449: 
039466,000450: 30,3464           06042                           TC       INTPRET                               
039467,000451: 30,3465           52001                           SETPD    GOTO                                  
039468,000452: 30,3466           00001                                    0                                     
039469,000453: 30,3467           03247                                    QCDUWUSR                              #  NORMAL AND ABNORMAL RETURN TO USER
039470,000454: 

Page 912

039472,000456:                                                                                                  #  THRUST VECTOR FILTER SUBROUTINE
039473,000457: 
039474,000458: 30,3470           00006        FLTRSUB            EXTEND                                         
039475,000459: 30,3471           22142                           QXCH     TEM2                                  
039476,000460: 30,3472           54143                           TS       TEM3                                  #  SAVE ORIGINAL OFFSET
039477,000461: 30,3473           40000                           COM                                            #  ONE MCT, NO WDS, CAN BE SAVED IF NEG OF
039478,000462: 30,3474           60001                           AD       L                                     #        ORIG OFFSET ARRIVES IN A, BUT IT'S
039479,000463: 30,3475           00006                           EXTEND                                         #        NOT WORTH THE INCREASED OBSCURITY.
039480,000464: 30,3476           51650                           INDEX    NDXCDUW                               
039481,000465: 30,3477           73747                           MP       GAINFLTR                              
039482,000466: 30,3500           54001                           TS       L                                     #  INCR TO OFFSET, UNLIMITED
039483,000467: 30,3501           33751                           CA       DUNFVLIM                              #  SAME LIMIT FOR Y AND Z
039484,000468: 30,3502           03714                           TC       LIMITSUB                              #  YIELDS INCR TO OFFSET, LIMITED
039485,000469: 30,3503           60143                           AD       TEM3                                  #  ORIGINAL OFFSET
039486,000470: 30,3504           54001                           TS       L                                     #  TOTAL OFFSET, UNLIMITED
039487,000471: 30,3505           33752                           CA       UNFVLIM                               #  SAME LIMIT FOR Y AND Z
039488,000472: 30,3506           03714                           TC       LIMITSUB                              #  YIELDS TOTAL OFFSET, LIMITED
039489,000473: 30,3507           00142                           TC       TEM2                                  
039490,000474: 
039491,000475:                                                                                                  #  SUBR TO TEST THE ANGLE BETWEEN THE PROPOSED WINDOW AND THRUST CMD VCTS
039492,000476: 
039493,000477: 30,3510           63441        UNWCTEST           DOT      DSQ                                   
039494,000478: 30,3511           00001                                    UNX/2                                 
039495,000479: 30,3512           50025                           DSU      BMN                                   
039496,000480: 30,3513           21754                                    DOTSWFMX                              
039497,000481: 30,3514           61217                                    DCMCL                                 
039498,000482: 30,3515           43531                           SSP      RVQ                                   #  RVQ FOR ALT CHOICE IF DOT MAGN TOO LARGE
039499,000483: 30,3516           03252                                    FLAGOODW                              #        ZEROING WINDOW GOOD FLAG
039500,000484: 30,3517           00000                                    0                                     
039501,000485: 

Page 913

039503,000487:                                                                                                  #  NB2CDUSP RETURNS THE 2'S COMPLEMENT, PI, SP CDU ANGLES X,Y,Z IN MPAC,+1,+2 GIVEN THE MATRIX WHOSE ROW VECTORS
039504,000488:                                                                                                  #  ARE THE SEMI-UNIT NAV BASE VECTORS X,Y,Z EXPRESSED IN STABLE MEMBER COORDINATES, LOCATED AT 0 IN THE PUSH LIST.
039505,000489:                                                                                                  #  NB2CDUSP USES ARCTRGSP WHICH HAS A MAXIMUM ERROR OF +-4 BITS.
039506,000490: 
039507,000491: 30,3520           63545        NB2CDUSP           DLOAD    DSQ                                   
039508,000492: 30,3521           00003                                    2                                     
039509,000493: 30,3522           51021                           BDSU     BPL                                   
039510,000494: 30,3523           06514                                    DP1/4TH                               
039511,000495: 30,3524           61527                                    +3                                    
039512,000496: 30,3525           77745                           DLOAD                                          
039513,000497: 30,3526           06524                                    ZEROVECS                              #  IN CASE SIN WAS SLIGHTLY > 1/2
039514,000498: 30,3527           77566                           SQRT     EXIT                                  #  YIELDS COS(CDUZ) IN UNITS OF 2
039515,000499: 
039516,000500: 30,3530           00006                           EXTEND                                         
039517,000501: 30,3531           30155                           DCA      MPAC                                  
039518,000502: 30,3532           20001                           DDOUBL                                         
039519,000503: 30,3533           54145                           TS       TEM5                                  
039520,000504: 30,3534           13537                           TCF      +3                                    
039521,000505: 30,3535           34733                           CA       POSMAX                                #  OVERFLOW.  FETCH POSMAX, MPAC ALWAYS POS
039522,000506: 30,3536           54145                           TS       TEM5                                  #  COS(CDUZ) IN TEM5, UNITS 1
039523,000507: 
039524,000508: 30,3537           50120                           INDEX    FIXLOC                                
039525,000509: 30,3540           30002                           CA       2                                     
039526,000510: 30,3541           22154                           LXCH     MPAC                                  
039527,000511: 30,3542           03607                           TC       ARCTRGSP                              
039528,000512: 30,3543           54156                           TS       MPAC       +2                         #  CDUZ
039529,000513: 
039530,000514: 30,3544           34755                           CA       ZERO                                  
039531,000515: 30,3545           03565                           TC       DVBYCOSM                              
039532,000516: 30,3546           34751                           CA       FOUR                                  
039533,000517: 30,3547           03565                           TC       DVBYCOSM                              
039534,000518: 30,3550           40141                           CS       TEM1                                  
039535,000519: 30,3551           03607                           TC       ARCTRGSP                              
039536,000520: 30,3552           54155                           TS       MPAC       +1                         #  CDUY
039537,000521: 
039538,000522: 30,3553           34750                           CA       BIT4                                  
039539,000523: 30,3554           03565                           TC       DVBYCOSM                              
039540,000524: 30,3555           33564                           CA       16OCT                                 
039541,000525: 30,3556           03565                           TC       DVBYCOSM                              
039542,000526: 30,3557           40141                           CS       TEM1                                  
039543,000527: 30,3560           03607                           TC       ARCTRGSP                              
039544,000528: 30,3561           54154                           TS       MPAC                                  #  CDUX
039545,000529: 
039546,000530: 30,3562           06042                           TC       INTPRET                               
039547,000531: 30,3563           77616                           RVQ                                            
039548,000532: 
039549,000533: 30,3564           00016        16OCT              OCT      16                                    
039550,000534: 

Page 914

039552,000536:                                                                                                  #  THE ELEMENTS OF THE NAV BASE MATRIX WHICH WE MUST DIVIDE BY COS(MGA)
039553,000537:                                                                                                  #  ALREADY CONTAIN COS(MGA)/2 AS A FACTOR. THEREFORE THE QUOTIENT SHOULD
039554,000538:                                                                                                  #  ORDINARILY NEVER EXCEED 1/2 IN MAGNITUDE.  BUT IF THE MGA IS NEAR PI/2
039555,000539:                                                                                                  #  THEN COS(MGA) IS NEAR ZERO, AND THERE MAY BE SOME CHAFF IN THE OTHER
039556,000540:                                                                                                  #  ELEMENTS OF THE MATRIX WHICH WOULD PRODUCE CHAOS UNDER DIVISION.
039557,000541:                                                                                                  #  BEFORE DIVIDING WE MAKE SURE COS(MGA) IS AT LEAST ONE BIT LARGER
039558,000542:                                                                                                  #  THAN THE MAGNITUDE OF THE HIGH ORDER PART OF THE OPERAND.
039559,000543: 
039560,000544:                                                                                                  #  IF ONE OR MORE DIVIDES CANNOT BE PERFORMED, THIS MEANS THAT THE
039561,000545:                                                                                                  #  REQUIRED MGA IS VERY NEARLY +-PI/2 AND THEREFORE THE OTHER GIMBAL
039562,000546:                                                                                                  #  ANGLES ARE INDETERMINATE.  THE INNER AND OUTER GIMBAL ANGLES RETURNED
039563,000547:                                                                                                  #  IN THIS CASE WILL BE RANDOM MULTIPLES OF PI/2.
039564,000548: 
039565,000549: 30,3565           60120        DVBYCOSM           AD       FIXLOC                                
039566,000550: 30,3566           54116                           TS       ADDRWD                                #  ADRES OF OPERAND
039567,000551: 
039568,000552: 30,3567           50116                           INDEX    ADDRWD                                #  FETCH NEG ABS OF OPERAND, AD TEM5, AND
039569,000553: 30,3570           30000                           CA       0                                     #        SKIP DIVIDE IF RESULT NEG OR ZERO
039570,000554: 30,3571           00006                           EXTEND                                         
039571,000555: 30,3572           63574                           BZMF     +2                                    
039572,000556: 30,3573           40000                           COM                                            
039573,000557: 30,3574           60145                           AD       TEM5                                  #  C(A) ZERO OR NEG, C(TEM5) ZERO OR POS
039574,000558: 30,3575           00006                           EXTEND                                         
039575,000559: 30,3576           63604                           BZMF     TSL&TCQ                               #  DIFFERENCE ALWAYS SMALL IF BRANCH
039576,000560: 
039577,000561: 30,3577           00006                           EXTEND                                         #  TEM5 EXCEEDS ABS HIGH ORDER PART OF
039578,000562: 30,3600           50116                           INDEX    ADDRWD                                #        OPERAND BY AT LEAST ONE BIT.
039579,000563: 30,3601           30001                           DCA      0                                     #        THEREFORE IT EXCEEDS THE DP OPERAND
039580,000564: 30,3602           00006                           EXTEND                                         #        AND DIVISION WILL ALWAYS SUCCEED.
039581,000565: 30,3603           10145                           DV       TEM5                                  
039582,000566: 30,3604           54001        TSL&TCQ            TS       L                                     
039583,000567: 30,3605           22141                           LXCH     TEM1                                  
039584,000568: 30,3606           00002                           TC       Q                                     
039585,000569: 

Page 915

039587,000571:                                                                                                  #  ARCTRGSP RETURNS THE 2'S COMPLEMENT, PI, SP ANGLE IN THE A REGISTER GIVEN ITS SINE IN A AND ITS COSINE IN L IN
039588,000572:                                                                                                  #  UNITS OF 2.  THE RESULT IS AN UNAMBIGUOUS ANGLE ANYWHERE IN THE CIRCLE, WITH A MAXIMUM ERROR OF +-4 BITS.
039589,000573:                                                                                                  #  THE ERROR IS PRODUCED BY THE SUBROUTINE SPARCSIN WHICH IS USED ONLY IN THE REGION +-45 DEGREES.
039590,000574: 
039591,000575: 30,3607           00006        ARCTRGSP           EXTEND                                         
039592,000576: 30,3610           13652                           BZF      SINZERO                               #  TO AVOID DIVIDING BY ZERO
039593,000577: 
039594,000578: 30,3611           00006                           EXTEND                                         
039595,000579: 30,3612           22144                           QXCH     TEM4                                  
039596,000580: 30,3613           54142                           TS       TEM2                                  
039597,000581: 30,3614           30001                           CA       L                                     
039598,000582: 30,3615           54143                           TS       TEM3                                  
039599,000583: 30,3616           34755                           CA       ZERO                                  
039600,000584: 30,3617           00006                           EXTEND                                         
039601,000585: 30,3620           10142                           DV       TEM2                                  
039602,000586: 30,3621           00006                           EXTEND                                         
039603,000587: 30,3622           13641                           BZF      USECOS                                
039604,000588: 
039605,000589: 30,3623           10143                           CCS      TEM3                                  #  SIN IS SMALLER OR EQUAL
039606,000590: 30,3624           34755                           CA       ZERO                                  
039607,000591: 30,3625           13631                           TCF      +4                                    
039608,000592: 30,3626           40142                           CS       TEM2                                  #  IF COS NEG, REVERSE SIGN OF SIN,
039609,000593: 30,3627           54142                           TS       TEM2                                  #        ANGLE = PI-ARCSIN(SIN)
039610,000594: 30,3630           34735                           CA       NEGMAX                                #  PICK UP PI, 2'S COMPLEMENT
039611,000595: 30,3631           54143                           TS       TEM3                                  #  WE NO LONGER NEED COS
039612,000596: 30,3632           30142                           CA       TEM2                                  
039613,000597: 30,3633           03657                           TC       SPARCSIN   -1                         
039614,000598: 30,3634           03730                           TC       ONESTO2S                              
039615,000599: 30,3635           00006                           EXTEND                                         
039616,000600: 30,3636           20143                           MSU      TEM3                                  
039617,000601: 30,3637           03730        1TO2&TCQ           TC       ONESTO2S                              
039618,000602: 30,3640           00144                           TC       TEM4                                  
039619,000603: 
039620,000604: 30,3641           40143        USECOS             CS       TEM3                                  #  COS IS SMALLER
039621,000605: 30,3642           03657                           TC       SPARCSIN   -1                         #  ANGLE = SIGN(SIN)(PI/2-ARCSIN(COS))
039622,000606: 30,3643           64736                           AD       HALF                                  
039623,000607: 30,3644           54143                           TS       TEM3                                  #  WE NO LONGER NEED COS
039624,000608: 30,3645           10142                           CCS      TEM2                                  
039625,000609: 30,3646           30143                           CA       TEM3                                  
039626,000610: 30,3647           13637                           TCF      1TO2&TCQ                              
039627,000611: 30,3650           40143                           CS       TEM3                                  
039628,000612: 30,3651           13637                           TCF      1TO2&TCQ                              
039629,000613: 
039630,000614: 30,3652           10001        SINZERO            CCS      L                                     
039631,000615: 30,3653           34755                           CA       ZERO                                  
039632,000616: 30,3654           00002                           TC       Q                                     
039633,000617: 30,3655           34735                           CA       NEGMAX                                #  PI, 2'S COMP
039634,000618: 30,3656           00002                           TC       Q                                     
039635,000619: 

Page 916

039637,000621:                                                                                                  #  SPARCSIN TAKES AN ARGUMENT SCALED UNITY IN A AND RETURNS AN ANGLE SCALED
039638,000622:                                                                                                  #  180 DEGREES IN A.  IT HAS BEEN UNIT TESTED IN THE REGION +-.94 (+-70
039639,000623:                                                                                                  #  DEGREES) AND THE MAXIMUM ERROR IS +-5 BITS WITH AN AVERAGE TIME OF
039640,000624:                                                                                                  #  450 MICROSECONDS.  SPARCSIN -1 TAKES THE ARGUMENT SCALED TWO.  (BOB CRISP)
039641,000625: 
039642,000626: 30,3657           60000                           DOUBLE                                         
039643,000627: 30,3660           54021        SPARCSIN           TS       SR                                    
039644,000628: 30,3661           13665                           TCF      +4                                    
039645,000629: 30,3662           50000                           INDEX    A                                     
039646,000630: 30,3663           44734                           CS       LIMITS                                
039647,000631: 30,3664           54021                           TS       SR                                    
039648,000632: 30,3665           00006                           EXTEND                                         
039649,000633: 30,3666           70000                           MP       A                                     
039650,000634: 30,3667           54141                           TS       TEM1                                  
039651,000635: 30,3670           00006                           EXTEND                                         
039652,000636: 30,3671           73713                           MP       DPL9                                  
039653,000637: 30,3672           63712                           AD       DPL7                                  
039654,000638: 30,3673           00006                           EXTEND                                         
039655,000639: 30,3674           70141                           MP       TEM1                                  
039656,000640: 30,3675           63711                           AD       DPL5                                  
039657,000641: 30,3676           00006                           EXTEND                                         
039658,000642: 30,3677           70141                           MP       TEM1                                  
039659,000643: 30,3700           63710                           AD       DPL3                                  
039660,000644: 30,3701           00006                           EXTEND                                         
039661,000645: 30,3702           70141                           MP       TEM1                                  
039662,000646: 30,3703           63707                           AD       DPL1                                  
039663,000647: 30,3704           00006                           EXTEND                                         
039664,000648: 30,3705           70021                           MP       SR                                    
039665,000649: 30,3706           00002                           TC       Q                                     
039666,000650: 30,3707           24406        DPL1               DEC      10502      B-14                       
039667,000651: 30,3710           00660        DPL3               DEC      432        B-14                       
039668,000652: 30,3711           16204        DPL5               DEC      7300       B-14                       
039669,000653: 30,3712           50744        DPL7               DEC      -11803     B-14                       
039670,000654: 30,3713           20315        DPL9               DEC      8397       B-14                       
039671,000655: 

Page 917

039673,000657:                                                                                                  #  LIMITSUB LIMITS THE MAGNITUDE OF THE POSITIVE OR NEGATIVE VARIABLE
039674,000658:                                                                                                  #  ARRIVING IN L TO THE POSITIVE LIMIT ARRIVING IN A.
039675,000659:                                                                                                  #  THE SIGNED LIMITED VARIABLE IS RETURNED IN A.
039676,000660: 
039677,000661:                                                                                                  #  VERSION COURTESY HUGH BLAIR-SMITH
039678,000662: 
039679,000663: 30,3714           54141        LIMITSUB           TS       TEM1                                  
039680,000664: 30,3715           34755                           CA       ZERO                                  
039681,000665: 30,3716           00006                           EXTEND                                         
039682,000666: 30,3717           10141                           DV       TEM1                                  
039683,000667: 30,3720           10000                           CCS      A                                     
039684,000668: 30,3721           22141                           LXCH     TEM1                                  
039685,000669: 30,3722           13724                           TCF      +2                                    
039686,000670: 30,3723           13726                           TCF      +3                                    
039687,000671: 30,3724           30001                           CA       L                                     
039688,000672: 30,3725           00002                           TC       Q                                     
039689,000673: 30,3726           40141                           CS       TEM1                                  
039690,000674: 30,3727           00002                           TC       Q                                     
039691,000675: 
039692,000676:                                                                                                  #  SUBROUTINE TO CONVERT 1'S COMP SP TO 2'S COMP
039693,000677: 
039694,000678: 30,3730           10000        ONESTO2S           CCS      A                                     
039695,000679: 30,3731           64753                           AD       ONE                                   
039696,000680: 30,3732           00002                           TC       Q                                     
039697,000681: 30,3733           40000                           CS       A                                     
039698,000682: 30,3734           00002                           TC       Q                                     
039699,000683: 
039700,000684:                                                                                                  #  NO ATTITUDE CONTROL
039701,000685: 
039702,000686: 30,3735           05567        NOATTCNT           TC       ALARM                                 
039703,000687: 30,3736           00402                           OCT      00402                                 #  NO ATTITUDE CONTROL
039704,000688: 
039705,000689: 30,3737           00004                 +2        INHINT                                         #  COME HERE FOR NOATTCNT WITHOUT ALARM
039706,000690: 30,3740           04674                           TC       IBNKCALL                              #  RELINT AT TC INTPRET AFTER TCQCDUW
039707,000691: 30,3741           40166                           FCADR    STOPRATE                              
039708,000692: 30,3742           13462                           TCF      TCQCDUW                               #  RETURN TO USER SKIPPING AUTOPILOT CMDS
039709,000693: 
039710,000694:                                                                                                  #  MIDDLE GIMBAL ANGLE ALARM
039711,000695: 
039712,000696: 30,3743           05567        ALARMMGA           TC       ALARM                                 
039713,000697: 30,3744           00401                           OCT      00401                                 
039714,000698: 30,3745           13262                           TCF      MGARET                                
039715,000699: 

Page 918

039717,000701:                                                                                                  # ************************************************************************
039718,000702:                                                                                                  #  CONSTANTS
039719,000703:                                                                                                  # ************************************************************************
039720,000704: 
039721,000705:                                                                                                  #  ADDRESS CONSTANTS
039722,000706: 
039723,000707: 30,3746           03246        ECDUWL             ECADR    ECDUW                                 
039724,000708: 
039725,000709:                                                                                                  #  THRUST DIRECTION FILTER CONSTANTS
039726,000710: 
039727,000711: 30,3747           06315        GAINFLTR           DEC      .2                                    #  GAIN FILTER SANS CSM
039728,000712: 30,3750           03146                           DEC      .1                                    #  GAIN FILTER WITH CSM
039729,000713: 
039730,000714: 30,3751           00071        DUNFVLIM           DEC      .007       B-1                        #  7 MR MAX CHG IN F DIR IN VEH IN 2 SECS.
039731,000715:                                                                                                  #  THIS DOES NOT ALLOW FOR S/C ROT RATE.
039732,000716: 
039733,000717: 30,3752           02041        UNFVLIM            DEC      .129       B-1                        #  129 MR MAX THRUST OFFSET.  105 MR TRAVEL
039734,000718:                                                                                                  #  +10MR DEFL+5MR MECH MOUNT+9MR ABLATION.
039735,000719: 
039736,000720:                                                                                                  #  CONSTANTS RELATED TO GIMBAL ANGLE COMPUTATIONS
039737,000721: 
039738,000722: 30,3753           01673        DOTSWFMX           DEC      .93302     B-4                        #  LIM COLNRTY OF UNWC/2 & UNFC/2 TO 85 DEG
039739,000723:                                                                                                  #  LOWER PART COMES FROM NEXT CONSTANT
039740,000724: 
039741,000725: 30,3754           03434        DAXMAX             DEC      .11111111111                            #  DELATTX LIM TO 20 DEG IN 2 SECS, 1'S, PI
039742,000726: 30,3755           00266                           DEC      .0111111111                            #  2 DEG WHEN CSM DOCKED
039743,000727: 
039744,000728: 30,3756           01616        DAY/2MAX           DEC      .05555555555                            #  LIKEWISE FOR DELATTY
039745,000729: 30,3757           00133                           DEC      .0055555555                            
039746,000730: 
039747,000731: 30,3760  30,3754               DAZMAX             =        DAXMAX                                #  LIKEWISE FOR DELATTZ
039748,000732: 
039749,000733: 30,3760           14344        CDUZDLIM           DEC      .3888888888                            #  70 DEG LIMIT FOR MGA, 1'S, PI
039750,000734: 
039751,000735:                                                                                                  #  CONSTANTS FOR DATA TRANSFER
039752,000736: 
039753,000737: 30,3761           01463        DT/DELT            DEC      .05                                   #  .1 SEC/2 SEC WHICH IS THE AUTOPILOT
039754,000738:                                                                                                  #  CONTROL SAMPLE PERIOD/COMPUTATION PERIOD
039755,000739: 
039756,000740: 30,3762  30,3756               DELERLIM           =        DAY/2MAX                              #  10 DEG LIMIT FOR LAG ANGLES, 1'S, PI
039757,000741: 

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