Source Code

This is the source-code for the Apollo 9 Command Module's Guidance Computer. These files were derived originally from the scan from MIT's Dibner Institute's now-discontinued website titled "History of Recent Science and Technology", which in turn was originally created by Gary Neff, though his high-quality scans were unfortunately reduced in legibility when presented online. The markings on the front of the printout imply that it was the original AGC developer Norm Brodeur's copy. A scan by Ron Burkey has superceded it, made from a more-legible copy from the collection of original AGC developer Fred Martin. The source code was transcribed from those images by Ron Burkey. Note that the page images presented online are of reduced quality, and that higher-quality images are available. Report any conversion errors or legibility problems in page images to info@sandroid.org. Notations on the program listing read, in part:

	ASSEMBLE REVISION 249 OF AGC PROGRAM COLOSSUS BY NASA 2021111-041
	20'35 OCT. 28,1968
Note that the date is the date of the printout, not the date of the program revision.

058262,000002:                                                                                                  ## Copyright:   Public domain.
058263,000003:                                                                                                  ## Filename:    POWERED_FLIGHT_SUBROUTINES.agc
058264,000004:                                                                                                  ## Purpose:     Part of the source code for Colossus, build 249.
058265,000005:                                                                                                  ##              It is part of the source code for the Command Module's (CM)
058266,000006:                                                                                                  ##              Apollo Guidance Computer (AGC), for Apollo 9.
058267,000007:                                                                                                  ## Assembler:   yaYUL
058268,000008:                                                                                                  ## Reference:   Starts on p. 1333
058269,000009:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
058270,000010:                                                                                                  ## Website:     www.ibiblio.org/apollo.
058271,000011:                                                                                                  ## Mod history: 08/29/04 RSB.   Began adapting from corresponding Luminary131 file.
058272,000012:                                                                                                  ##              2010-10-24 JL   Indentation fixes.
058273,000013:                                                                                                  ##              2017-01-06 RSB  Page numbers now agree with those on the
058274,000014:                                                                                                  ##                              original harcopy, as opposed to the PDF page
058275,000015:                                                                                                  ##                              numbers in 1701.pdf.
058276,000016:                                                                                                  ##              2017-01-18 RSB  Cross-diff'd comment text (not whitespace)
058277,000017:                                                                                                  ##                              vs the already-proofed corresponding Colossus
058278,000018:                                                                                                  ##                              237 and Comanche 55 source-code files
058279,000019:                                                                                                  ##                              and corrected errors found.
058280,000020:                                                                                                  ##              2017-02-08 RSB  Added a note about a curiously-misprinted line.
058281,000021:                                                                                                  ##              2021-05-30 ABS  SINSLOC -> SINESLOC
058282,000022:                                                                                                  ##
058283,000023:                                                                                                  ## The contents of the "Colossus249" files, in general, are transcribed 
058284,000024:                                                                                                  ## from a scanned copy of the program listing.  Notations on this
058285,000025:                                                                                                  ## document read, in part:
058286,000026:                                                                                                  ##
058287,000027:                                                                                                  ##      Assemble revision 249 of AGC program Colossus by NASA
058288,000028:                                                                                                  ##      2021111-041.  October 28, 1968.  
058289,000029:                                                                                                  ##
058290,000030:                                                                                                  ##      This AGC program shall also be referred to as
058291,000031:                                                                                                  ##                              Colossus 1A
058292,000032:                                                                                                  ##
058293,000033:                                                                                                  ##      Prepared by
058294,000034:                                                                                                  ##                      Massachusetts Institute of Technology
058295,000035:                                                                                                  ##                      75 Cambridge Parkway
058296,000036:                                                                                                  ##                      Cambridge, Massachusetts
058297,000037:                                                                                                  ##      under NASA contract NAS 9-4065.
058298,000038:                                                                                                  ##
058299,000039:                                                                                                  ## Refer directly to the online document mentioned above for further information.
058300,000040:                                                                                                  ## Please report any errors (relative to the scanned pages) to info@sandroid.org.
058301,000041:                                                                                                  ##
058302,000042:                                                                                                  ## In some cases, where the source code for Luminary 131 overlaps that of 
058303,000043:                                                                                                  ## Colossus 249, this code is instead copied from the corresponding Luminary 131
058304,000044:                                                                                                  ## source file, and then is proofed to incorporate any changes.
058305,000045: 

Page 1333

058307,000047: 14,3405                                           BANK     14                                    #  SAME FBANK AS THE FINDCDUD SUB-PROGRAM
058308,000048: 23,2000                                           SETLOC   POWFLITE                              
058309,000049: 23,2000                                           BANK                                           
058310,000050: 
058311,000051: 23,3432     0142                                  EBANK=   DEXDEX                                
058312,000052: 23,3432                                           COUNT*   $$/POWFL                              
058313,000053: 
058314,000054:                                                                                                  #  CDUTRIG, CDUTRIG1, CDUTRIG2, AND CD*TR*GS ALL COMPUTE THE SINES AND
058315,000055:                                                                                                  #  COSINES OF THREE 2'S COMPLEMENT ANGLES AND PLACE THE RESULT, DOUBLE
058316,000056:                                                                                                  #  PRECISION, IN THE SAME ORDER AS THE INPUTS, AT SINCDU AND COSCDU.  AN
058317,000057:                                                                                                  #  ADDITIONAL OUTPUT IS THE 1'S COMPLEMENT ANGLES AT CDUSPOT.  THESE
058318,000058:                                                                                                  #  ROUTINES GO OUT OF THEIR WAY TO LEAVE THE MPAC AREA AS THEY FIND IT,
058319,000059:                                                                                                  #  EXCEPT FOR THE GENERALLY UNIMPORTANT MPAC +2.  THEY DIFFER ONLY IN
058320,000060:                                                                                                  #  WHERE THEY GET THE ANGLES, AND IN METHOD OF CALLING.
058321,000061: 
058322,000062:                                                                                                  #  CDUTRIG (AND CDUTRIG1, WHICH CAN BE CALLED IN BASIC) COMPUTE THE
058323,000063:                                                                                                  #  SINES AND COSINES FROM THE CURRENT CONTENTS OF THE CDU REGISTERS.
058324,000064:                                                                                                  #  THE CONTENTS OF CDUTEMP, ETC., ARE NOT TOUCHED SO THAT THEY MAY
058325,000065:                                                                                                  #  CONTINUE TO FORM A CONSISTENT SET WITH THE LATEST PIPA READINGS.
058326,000066: 
058327,000067:                                                                                                  #  CDUTRIG1 IS LIKE CDUTRIG EXCEPT THAT IT CAN BE CALLED IN BASIC.
058328,000068: 
058329,000069:                                                                                                  #  CD*TR*GS FINDS CDU VALUES IN CDUSPOT RATHER THAN IN CDUTEMP.  THIS
058330,000070:                                                                                                  #  ALLOWS USERS TO MAKE TRANSFORMATIONS USING ARBITRARY ANGLES, OR REAL
058331,000071:                                                                                                  #  ANGLES IN AN ORDER OTHER THAN X Y Z.  A CALL TO THIS ROUTINE IS
058332,000072:                                                                                                  #  NECESSARY IN PREPARATION FOR A CALL TO AX*SR*T IN EITHER OF ITS TWO
058333,000073:                                                                                                  #  MODES (SMNB OR NBSM).  SINCE AX*SR*T EXPECTS TO FIND THE SINES AND
058334,000074:                                                                                                  #  COSINES IN THE ORDER Y Z X THE ANGLES MUST HAVE BEEN PLACED IN CDUSPOT
058335,000075:                                                                                                  #  IN THIS ORDER.  CD*TR*GS NEED NOT BE REPEATED WHEN AX*SR*T IS CALLED
058336,000076:                                                                                                  #  MORE THAN ONCE, PROVIDED THE ANGLES HAVE NOT CHANGED.  NOTE THAT SINCE
058337,000077:                                                                                                  #  IT CLOBBERS BUF2 (IN THE SINE AND COSINE ROUTINES) CD*TR*GS CANNOT BE
058338,000078:                                                                                                  #  CALLED USING BANKCALL.  SORRY.
058339,000079: 
058340,000080:                                                                                                  #  CD*TR*G IS LIKE CD*TR*GS EXCEPT THAT IT CAN BE CALLED IN
058341,000081:                                                                                                  #  INTERPRETIVE.
058342,000082: 
058343,000083: 23,3432           77776        CDUTRIG            EXIT                                           
058344,000084: 23,3433           03442                           TC       CDUTRIGS                              
058345,000085: 23,3434           06006                           TC       INTPRET                               
058346,000086: 23,3435           77616                           RVQ                                            
058347,000087: 
058348,000088: 23,3436           77776        CD*TR*G            EXIT                                           
058349,000089: 23,3437           03450                           TC       CD*TR*GS                              
058350,000090: 23,3440           06006                           TC       INTPRET                               
058351,000091: 23,3441           77616                           RVQ                                            
058352,000092: 
058353,000093: 23,3442           30032        CDUTRIGS           CA       CDUX                                  
058354,000094: 23,3443           54772                           TS       CDUSPOT    +4                         
058355,000095: 23,3444           30033                           CA       CDUY                                  
058356,000096: 23,3445           54766                           TS       CDUSPOT                               

Page 1334

058358,000098: 23,3446           30034                           CA       CDUZ                                  
058359,000099: 23,3447           54770                           TS       CDUSPOT    +2                         
058360,000100: 
058361,000101: 23,3450           00006        CD*TR*GS           EXTEND                                         
058362,000102: 23,3451           22142                           QXCH     TEM2                                  
058363,000103: 23,3452           34710                           CAF      FOUR                                  
058364,000104: 23,3453           76211        TR*GL**P           MASK     SIX                                   #  MAKE IT EVEN AND SMALLER
058365,000105: 23,3454           54143                           TS       TEM3                                  
058366,000106: 23,3455           50143                           INDEX    TEM3                                  
058367,000107: 23,3456           30766                           CA       CDUSPOT                               
058368,000108: 23,3457           52155                           DXCH     MPAC                                  #  STORING 2'S COMP ANGLE, LOADING MPAC
058369,000109: 23,3460           52127                           DXCH     VBUF       +4                         #  STORING MPAC FOR LATER RESTORATION
058370,000110: 23,3461           04652                           TC       USPRCADR                              
058371,000111: 23,3462           45510                           CADR     CDULOGIC                              
058372,000112: 23,3463           00006                           EXTEND                                         
058373,000113: 23,3464           30155                           DCA      MPAC                                  
058374,000114: 23,3465           50143                           INDEX    TEM3                                  
058375,000115: 23,3466           52767                           DXCH     CDUSPOT                               #  STORING 1'S COMPLEMENT ANGLE
058376,000116: 23,3467           04652                           TC       USPRCADR                              
058377,000117: 23,3470           01516                           CADR     COSINE                                
058378,000118: 23,3471           52155                           DXCH     MPAC                                  
058379,000119: 23,3472           50143                           INDEX    TEM3                                  
058380,000120: 23,3473           52745                           DXCH     COSCDU                                #  STORING COSINE
058381,000121: 23,3474           00006                           EXTEND                                         
058382,000122: 23,3475           50143                           INDEX    TEM3                                  
058383,000123: 23,3476           30767                           DCA      CDUSPOT                               #  LOADING 1'S COMPLEMENT ANGLE
058384,000124: 23,3477           04652                           TC       USPRCADR                              
058385,000125: 23,3500           01530                           CADR     SINE       +1                         #  SINE +1 EXPECTS ARGUMENT IN A AND L
058386,000126: 23,3501           52127                           DXCH     VBUF       +4                         #  BRINGING UP PRIOR MPAC TO BE RESTORED
058387,000127: 23,3502           52155                           DXCH     MPAC                                  
058388,000128: 23,3503           50143                           INDEX    TEM3                                  
058389,000129: 23,3504           52737                           DXCH     SINCDU                                
058390,000130: 23,3505           10143                           CCS      TEM3                                  
058391,000131: 23,3506           13453                           TCF      TR*GL**P                              
058392,000132: 23,3507           00142                           TC       TEM2                                  

Page 1335

058394,000134:                                                                                                  #  ****************************************************************************************************************
058395,000135:                                                                                                  #  QUICTRIG, INTENDED FOR GUIDANCE CYCLE USE WHERE TIME IS CRITICAL, IS A MUCH FASTER VERSION OF CD*TR*GS.
058396,000136:                                                                                                  #  QUICTRIG COMPUTES AND STORES THE SINES AND COSINES OF THE 2'S COMPLEMENT ANGLES AT CDUSPOT, CDUSPOT +2,
058397,000137:                                                                                                  #  AND CDUSPOT +4.  UNLIKE CD*TR*GS, QUICTRIG DOES NOT LEAVE THE 1'S COMPLEMENT VERSIONS OF THE ANGLES IN
058398,000138:                                                                                                  #  CDUSPOT.  QUICTRIG'S EXECUTION TIME IS 4.1 MS; THIS IS 10 TIMES AS FAST AS CD*TR*GS. QUICTRIG MAY BE
058399,000139: 
058400,000140:                                                                                                  #  CALLED FROM INTERPRETIVE AS AN RTB OP-CODE, OR FROM BASIC VIA BANKCALL OR IBNKCALL.
058401,000141: 
058402,000142: 23,3510           00004        QUICTRIG           INHINT                                         #  INHINT SINCE DAP USES THE SAME TEMPS
058403,000143: 23,3511           00006                           EXTEND                                         
058404,000144: 23,3512           22061                           QXCH     ITEMP1                                
058405,000145: 23,3513           34710                           CAF      FOUR                                  
058406,000146: 23,3514           76211                 +4        MASK     SIX                                   
058407,000147: 23,3515           54062                           TS       ITEMP2                                
058408,000148: 23,3516           50062                           INDEX    ITEMP2                                
058409,000149: 23,3517           30766                           CA       CDUSPOT                               
058410,000150: 23,3520           04770                           TC       SPSIN                                 
058411,000151: 23,3521           00006                           EXTEND                                         
058412,000152: 23,3522           74675                           MP       BIT14                                 #  SCALE DOWN TO MATCH INTERPRETER OUTPUTS
058413,000153: 23,3523           50062                           INDEX    ITEMP2                                
058414,000154: 23,3524           52737                           DXCH     SINCDU                                
058415,000155: 23,3525           50062                           INDEX    ITEMP2                                
058416,000156: 23,3526           30766                           CA       CDUSPOT                               
058417,000157: 23,3527           04767                           TC       SPCOS                                 
058418,000158: 23,3530           00006                           EXTEND                                         
058419,000159: 23,3531           74675                           MP       BIT14                                 
058420,000160: 23,3532           50062                           INDEX    ITEMP2                                
058421,000161: 23,3533           52745                           DXCH     COSCDU                                
058422,000162: 23,3534           10062                           CCS      ITEMP2                                
058423,000163: 23,3535           13514                           TCF      QUICTRIG   +4                         
058424,000164: 23,3536           30061                           CA       ITEMP1                                
058425,000165: 23,3537           00003                           RELINT                                         
058426,000166: 23,3540           00000                           TC       A                                     
058427,000167: 

Page 1336

058429,000169:                                                                                                  # ****************************************************************************************************************
058430,000170:                                                                                                  #  THESE INTERFACE ROUTINES MAKE IT POSSIBLE TO CALL AX*SR*T, ETC., IN
058431,000171:                                                                                                  #  INTERPRETIVE.  LATER, WHERE POSSIBLE, THEY WILL BE ELIMINATED.
058432,000172: 
058433,000173:                                                                                                  #  NBSM WILL BE THE FIRST TO GO.  IT SHOULD NOT BE USED.
058434,000174: 
058435,000175: 23,3541           77620        NBSM               STQ                                            
058436,000176: 23,3542           00047                                    X2                                    
058437,000177: 23,3543           76740                           LXC,1    VLOAD*                                
058438,000178: 23,3544           00050                                    S1                                    #  BASE ADDRESS OF THE CDU ANGLES IS IN S1
058439,000179: 23,3545           00001                                    0,1                                   
058440,000180: 23,3546           24767                           STOVL    CDUSPOT                               
058441,000181: 23,3547           00041                                    32D                                   #  VECTOR TO BE TRANSFORMED IS IN 32D
058442,000182: 23,3550           77624                           CALL                                           
058443,000183: 23,3551           47572                                    TRG*NBSM                              
058444,000184: 23,3552           34041                           STCALL   32D                                   #  SINCE THERE'S NO STGOTO
058445,000185: 23,3553           00047                                    X2                                    
058446,000186: 
058447,000187:                                                                                                  #  THESE INTERFACE ROUTINES ARE PERMANENT.  ALL RESTORE USER'S EBANK
058448,000188:                                                                                                  #  SETTING. ALL ARE STRICT INTERPRETIVE SUBROUTINES, CALLED USING "CALL",
058449,000189:                                                                                                  #  RETURNING VIA QPRET.  ALL EXPECT AND RETURN THE VECTOR TO BE TRANSFOR-
058450,000190:                                                                                                  #  MED INTERPRETER-STYLE IN MPAC

In every other Colossus (and Luminary) version preceding or following this one, the line corresponding to the line above reads:
   MED INTERPRETER-STYLE IN MPAC; COMPONENTS AT MPAC, MPAC +3, AND MPAC +5.
I assume that the truncated line is thus a printer error. — RSB 2017.

058457,000197: 
058458,000198:                                                                                                  #  TRG*SMNB AND TRG*NBSM BOTH EXPECT TO SEE THE 2'S COMPLEMENT ANGLES
058459,000199:                                                                                                  #  AT CDUSPOT (ORDER Y Z X, AT CDUSPOT, CDUSPOT +2, AND CDUSPOT +4; ODD
058460,000200:                                                                                                  #  LOCATIONS NEED NOT BE ZEROED).  TRG*NBSM DOES THE NB TO SM TRANSFOR-
058461,000201:                                                                                                  #  MATION; TRG*SMNB, VICE VERSA.
058462,000202: 
058463,000203:                                                                                                  #  CDU*NBSM DOES ITS TRANSFORMATION USING THE PRESENT CONTENTS OF
058464,000204:                                                                                                  #  THE CDU COUNTERS.  OTHERWISE IT IS LIKE TRG*NBSM.
058465,000205: 
058466,000206:                                                                                                  #  CDU*SMNB IS THE COMPLEMENT OF CDU*NBSM.
058467,000207: 
058468,000208: 23,3554           77776        CDU*SMNB           EXIT                                           
058469,000209: 23,3555           03442                           TC       CDUTRIGS                              
058470,000210: 23,3556           13561                           TCF      C*MM*N1                               
058471,000211: 
058472,000212: 23,3557           77776        TRG*SMNB           EXIT                                           
058473,000213: 23,3560           03450                           TC       CD*TR*GS                              
058474,000214: 23,3561           07501        C*MM*N1            TC       MPACVBUF                              #  AX*SR*T EXPECTS VECTOR IN VBUF
058475,000215: 23,3562           46214                           CS       THREE                                 #  SIGNAL FOR SM TO NB TRANSFORMATION
058476,000216: 23,3563           03603        C*MM*N2            TC       AX*SR*T                               
058477,000217: 23,3564           06006                           TC       INTPRET                               
058478,000218: 23,3565           43575                           VLOAD    RVQ                                   
058479,000219: 23,3566           00123                                    VBUF                                  
058480,000220: 
058481,000221: 23,3567           77776        CDU*NBSM           EXIT                                           
058482,000222: 23,3570           03442                           TC       CDUTRIGS                              
058483,000223: 

Page 1337

058485,000225: 
058486,000226: 23,3571           13574                           TCF      C*MM*N3                               
058487,000227: 
058488,000228: 23,3572           77776        TRG*NBSM           EXIT                                           
058489,000229: 23,3573           03450                           TC       CD*TR*GS                              
058490,000230: 23,3574           07501        C*MM*N3            TC       MPACVBUF                              #  FOR AX*SR*T
058491,000231: 23,3575           36214                           CA       THREE                                 #  SIGNAL FOR NB TO SM TRANSFORMATION
058492,000232: 23,3576           13563                           TCF      C*MM*N2                               
058493,000233: 
058494,000234:                                                                                                  #  *NBSM* AND *SMNB* EXPECT TO SEE THE SINES AND COSINES (AT SINCDU
058495,000235:                                                                                                  #  AND COSCDU) RATHER THAN THE ANGLES THEMSELVES.  OTHERWISE THEY ARE
058496,000236:                                                                                                  #  LIKE TRG*NBSM AND TRG*SMNB.
058497,000237: 
058498,000238:                                                                                                  #  NOTE THAT JUST AS CD*TR*GS NEED BE CALLED ONLY ONCE FOR EACH SERIES
058499,000239:                                                                                                  #  OF TRANSFORMATIONS USING THE SAME ANGLES, SO TOO ONLY ONE OF TRG*NBSM
058500,000240:                                                                                                  #  AND TRG*SMNB NEED BE CALLED FOR EACH SERIES.  FOR SUBSEQUENT TRANSFOR-
058501,000241:                                                                                                  #  MATIONS USE *NBSM* AND *SMNB*.
058502,000242: 
058503,000243: 23,3577           77776        *SMNB*             EXIT                                           
058504,000244: 23,3600           13561                           TCF      C*MM*N1                               
058505,000245: 
058506,000246: 23,3601           77776        *NBSM*             EXIT                                           
058507,000247: 23,3602           13574                           TCF      C*MM*N3                               
058508,000248: 
058509,000249:                                                                                                  #  AX*SR*T COMBINES THE OLD SMNB AND NBSM.  FOR THE NB TO SM
058510,000250:                                                                                                  #  TRANSFORMATION, ENTER WITH +3 IN A.  FOR SM TO NB, ENTER WITH -3.
058511,000251:                                                                                                  #  THE VECTOR TO BE TRANSFORMED ARRIVES, AND IS RETURNED, IN VBUF.
058512,000252:                                                                                                  #  AX*SR*T EXPECTS TO FIND THE SINES AND COSINES OF THE ANGLES OF ROTATION
058513,000253:                                                                                                  #  AT SINCDU AND COSCDU, IN THE ORDER Y Z X.  A CALL TO CD*TR*GS, WITH
058514,000254:                                                                                                  #  THE 2'S COMPLEMENT ANGLES (ORDER Y Z X) AT CDUSPOT, WILL TAKE CARE OF
058515,000255:                                                                                                  #  THIS.  HERE IS A SAMPLE CALLING SEQUENCE:-
058516,000256:                                                                                                  #                TC      CDUTRIGS
058517,000257:                                                                                                  #                CS      THREE           ("CA THREE" FOR NBSM)
058518,000258:                                                                                                  #                TC      AX*SR*T
058519,000259:                                                                                                  #  THE CALL TO CD*TR*GS NEED NOT BE REPEATED, WHEN AX*SR*T IS CALLED MORE
058520,000260:                                                                                                  #  THAN ONCE, UNLESS THE ANGLES HAVE CHANGED.
058521,000261: 
058522,000262:                                                                                                  #  AX*SR*T IS GUARANTEED SAFE ONLY FOR VECTORS OF MAGNITUDE LESS THAN
058523,000263:                                                                                                  #  UNITY.  A LOOK AT THE CASE IN WHICH A VECTOR OF GREATER MAGNITUDE
058524,000264:                                                                                                  #  HAPPENS TO LIE ALONG AN AXIS OF THE SYSTEM TO WHICH IT IS TO BE TRANS-
058525,000265:                                                                                                  #  FORMED CONVINCES ONE THAT THIS IS A RESTRICTION WHICH MUST BE ACCEPTED.
058526,000266: 
058527,000267: 23,3603           54142        AX*SR*T            TS       DEXDEX                                #  WHERE IT BECOMES THE INDEX OF INDEXES
058528,000268: 23,3604           00006                           EXTEND                                         
058529,000269: 23,3605           22145                           QXCH     RTNSAVER                              
058530,000270: 
058531,000271: 23,3606           10142        R*TL**P            CCS      DEXDEX                                #                +3 --> 0        -3 --> 2
058532,000272: 23,3607           40142                           CS       DEXDEX                                #  THUS:         +2 --> 1        -2 --> 1
058533,000273: 23,3610           66214                           AD       THREE                                 #                +1 --> 2        -1 --> 0

Page 1338

058535,000275: 23,3611           00006                           EXTEND                                         
058536,000276: 23,3612           50000                           INDEX    A                                     
058537,000277: 23,3613           33672                           DCA      INDEXI                                
058538,000278: 23,3614           52144                           DXCH     DEXI                                  
058539,000279: 
058540,000280: 23,3615           34712                           CA       ONE                                   
058541,000281: 23,3616           54130                           TS       BUF                                   
058542,000282: 23,3617           00006                           EXTEND                                         
058543,000283: 23,3620           50143                           INDEX    DEX1                                  
058544,000284: 23,3621           40123                           DCS      VBUF                                  
058545,000285: 23,3622           13624                           TCF      LOOP1                                 #  REALLY BE A SUBTRACT, AND VICE VERSA
058546,000286: 
058547,000287: 23,3623           52131        LOOP2              DXCH     BUF                                   #  LOADING VECTOR COMPONENT, STORING INDEX
058548,000288: 
058549,000289: 23,3624           52155        LOOP1              DXCH     MPAC                                  
058550,000290: 23,3625           33670                           CA       SINESLOC                              
058551,000291: 23,3626           60143                           AD       DEX1                                  
058552,000292: 23,3627           54116                           TS       ADDRWD                                
058553,000293: 
058554,000294: 23,3630           07056                           TC       DMPSUB                                #  MULTIPLY BY SIN(CDUANGLE)
058555,000295: 23,3631           10142                           CCS      DEXDEX                                
058556,000296: 23,3632           52155                           DXCH     MPAC                                  #  NBSM CASE
058557,000297: 23,3633           13636                           TCF      +3                                    
058558,000298: 23,3634           00006                           EXTEND                                         #  SMNB CASE
058559,000299: 23,3635           40155                           DCS      MPAC                                  
058560,000300: 23,3636           52134                           DXCH     TERM1TMP                              
058561,000301: 
058562,000302: 23,3637           36211                           CA       SIX                                   #  SINCDU AND COSCDU (EACH 6 WORDS) MUST
058563,000303: 23,3640           26116                           ADS      ADDRWD                                #        BE CONSECUTIVE AND IN THAT ORDER
058564,000304: 
058565,000305: 23,3641           00006                           EXTEND                                         
058566,000306: 23,3642           50130                           INDEX    BUF                                   
058567,000307: 23,3643           50143                           INDEX    DEX1                                  
058568,000308: 23,3644           30123                           DCA      VBUF                                  
058569,000309: 23,3645           52155                           DXCH     MPAC                                  
058570,000310: 23,3646           07056                           TC       DMPSUB                                #  MULTIPLY BY COS(CDUANGLE)
058571,000311: 23,3647           52155                           DXCH     MPAC                                  
058572,000312: 23,3650           20134                           DAS      TERM1TMP                              
058573,000313: 23,3651           52134                           DXCH     TERM1TMP                              
058574,000314: 23,3652           20001                           DDOUBL                                         
058575,000315: 23,3653           50130                           INDEX    BUF                                   
058576,000316: 23,3654           50143                           INDEX    DEX1                                  
058577,000317: 23,3655           52123                           DXCH     VBUF                                  
058578,000318: 23,3656           52131                           DXCH     BUF                                   #  LOADING INDEX, STORING VECTOR COMPONENT
058579,000319: 23,3657           10000                           CCS      A                                     #  'CAUSE THAT'S WHERE THE INDEX NOW IS
058580,000320: 23,3660           13623                           TCF      LOOP2                                 
058581,000321: 
058582,000322: 23,3661           00006                           EXTEND                                         
058583,000323: 23,3662           26142                           DIM      DEXDEX                                #  DECREMENT MAGNITUDE PRESERVING SIGN
058584,000324: 

Page 1339

058586,000326: 23,3663           10142        TSTPOINT           CCS      DEXDEX                                #  ONLY THE BRANCHING FUNCTION IS USED
058587,000327: 23,3664           13606                           TCF      R*TL**P                               
058588,000328: 23,3665           00145                           TC       RTNSAVER                              
058589,000329: 23,3666           13606                           TCF      R*TL**P                               
058590,000330: 23,3667           00145                           TC       RTNSAVER                              
058591,000331: 
058592,000332: 23,3670           00736        SINESLOC           ADRES    SINCDU                                #  FOR USE IN SETTING ADDRWD
058593,000333: 
058594,000334: 23,3671           00004        INDEXI             DEC      4          B-14                       #  **********   DON'T   **********
058595,000335: 23,3672           00002                           DEC      2          B-14                       #  **********   TOUCH   **********
058596,000336: 23,3673           00000                           DEC      0          B-14                       #  **********   THESE   **********
058597,000337: 23,3674           00004                           DEC      4          B-14                       #  ********** CONSTANTS **********
058598,000338: 
058599,000339:                                                                                                  #  ****************************************************************************************************************

Page 1340

058601,000341:                                                                                                  #  THIS SUBROUTINE COMPUTES INCREMENTAL CHANGES IN CDU(GIMBAL) ANGLES FROM INCREMENTAL CHANGES ABOUT SM AXES.  IT
058602,000342:                                                                                                  #  REQUIRES SM INCREMENTS AS A DP VECTOR SCALED AT ONE REVOLUTION(DTHETASM,+2,+4).  SIN,COS(CDUY,Z,X) ARE IN
058603,000343:                                                                                                  #  SINCDU,+2,+4 AND COSCDU,+2,+4 RESPECTIVELY, SCALED TO ONE HALF.  CDU INCREENTS ARE PLACED IN DCDU,+2,+4 SCALED TO
058604,000344:                                                                                                  #  ONE REVOLUTION.
058605,000345: 
058606,000346:                                                                                                  #        *  COS(IGA)SEC(MGA)             0               -SIN(IGA)SEC(MGA) *
058607,000347:                                                                                                  #        *                                                                 *
058608,000348:                                                                                                  #        * -COS(IGA)TAN(MGA)             1                SIN(IGA)TAN(MGA) *
058609,000349:                                                                                                  #        *                                                                 *
058610,000350:                                                                                                  #        *      SIN(IGA)                 0                    COS(IGA)     *
058611,000351: 
058612,000352: 14,3405                                           BANK     14                                    
058613,000353: 23,2000                                           SETLOC   POWFLIT1                              
058614,000354: 23,2000                                           BANK                                           
058615,000355: 
058616,000356: 23,3675           41345        SMCDURES           DLOAD    DMP                                   
058617,000357: 23,3676           03212                                    DTHETASM                              
058618,000358: 23,3677           00745                                    COSCDUY                               
058619,000359: 
058620,000360: 23,3700           41325                           PDDL     DMP                                   
058621,000361: 23,3701           03216                                    DTHETASM   +4                         
058622,000362: 23,3702           00737                                    SINCDUY                               
058623,000363: 
058624,000364: 23,3703           77621                           BDSU                                           
058625,000365: 23,3704           77671                           DDV                                            
058626,000366: 23,3705           00747                                    COSCDUZ                               
058627,000367: 23,3706           03204                           STORE    DCDU                                  
058628,000368: 
058629,000369: 23,3707           72405                           DMP      SL1                                   #  SCALE
058630,000370: 23,3710           00741                                    SINCDUZ                               
058631,000371: 23,3711           77621                           BDSU                                           
058632,000372: 
058633,000373: 23,3712           03214                                    DTHETASM   +2                         
058634,000374: 23,3713           17206                           STODL    DCDU       +2                         
058635,000375: 23,3714           03212                                    DTHETASM                              
058636,000376: 
058637,000377: 23,3715           65205                           DMP      PDDL                                  
058638,000378: 23,3716           00737                                    SINCDUY                               
058639,000379: 23,3717           03216                                    DTHETASM   +4                         
058640,000380: 
058641,000381: 23,3720           43205                           DMP      DAD                                   
058642,000382: 23,3721           00745                                    COSCDUY                               
058643,000383: 23,3722           77752                           SL1                                            
058644,000384: 23,3723           03210                           STORE    DCDU       +4                         
058645,000385: 23,3724           77616                           RVQ                                            
058646,000386: 

End of include-file POWERED_FLIGHT_SUBROUTINES.agc.  Parent file is MAIN.agc