Source Code

These source-code files were from the printout at the MIT Museum, with many thanks to Deborah Douglas, the Museum's Curator of Science and Technology, for releasing it to us. The printout was digitally photographed by Paul Fjeld. A team of volunteers transcribed the source code manually from these images or, where appropriate, modified already-transcribed but similar source Colossus 249 (Apollo 9) source code to agree with the images from the printout. 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:

	GAP:  ASSEMBLE REVISION 055 OF AGC PROGRAM COMANCHE BY NASA 2021113-051
	10:28 APR.  1,1969
Note that the date is the date of the printout, not the date of the program revision.

059072,000002:                                                                                                  ## Copyright:   Public domain.
059073,000003:                                                                                                  ## Filename:    INFLIGHT_ALIGNMENT_ROUTINES.agc
059074,000004:                                                                                                  ## Purpose:     Part of the source code for Colossus 2A, AKA Comanche 055.
059075,000005:                                                                                                  ##              It is part of the source code for the Command Module's (CM)
059076,000006:                                                                                                  ##              Apollo Guidance Computer (AGC), for Apollo 11.
059077,000007:                                                                                                  ## Assembler:   yaYUL
059078,000008:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
059079,000009:                                                                                                  ## Website:     www.ibiblio.org/apollo.
059080,000010:                                                                                                  ## Pages:       1355-1364
059081,000011:                                                                                                  ## Mod history: 2009-05-14 RSB  Adapted from the Colossus249/ file of the
059082,000012:                                                                                                  ##                              same name, using Comanche055 page images.
059083,000013:                                                                                                  ##              2016-12-22 RSB  Proofed comment text using octopus/ProoferComments
059084,000014:                                                                                                  ##                              and corrected the errors found.
059085,000015:                                                                                                  ##
059086,000016:                                                                                                  ## This source code has been transcribed or otherwise adapted from digitized
059087,000017:                                                                                                  ## images of a hardcopy from the MIT Museum.  The digitization was performed
059088,000018:                                                                                                  ## by Paul Fjeld, and arranged for by Deborah Douglas of the Museum.  Many
059089,000019:                                                                                                  ## thanks to both.  The images (with suitable reduction in storage size and
059090,000020:                                                                                                  ## consequent reduction in image quality as well) are available online at
059091,000021:                                                                                                  ## www.ibiblio.org/apollo.  If for some reason you find that the images are
059092,000022:                                                                                                  ## illegible, contact me at info@sandroid.org about getting access to the 
059093,000023:                                                                                                  ## (much) higher-quality images which Paul actually created.
059094,000024:                                                                                                  ##
059095,000025:                                                                                                  ## Notations on the hardcopy document read, in part:
059096,000026:                                                                                                  ##
059097,000027:                                                                                                  ##      Assemble revision 055 of AGC program Comanche by NASA
059098,000028:                                                                                                  ##      2021113-051.  10:28 APR. 1, 1969  
059099,000029:                                                                                                  ##
059100,000030:                                                                                                  ##      This AGC program shall also be referred to as
059101,000031:                                                                                                  ##                      Colossus 2A
059102,000032: 

Page 1355

059104,000034: 22,3510                                           BANK     22                                    
059105,000035: 23,2000                                           SETLOC   INFLIGHT                              
059106,000036: 23,2000                                           BANK                                           
059107,000037: 
059108,000038: 23,3205  E5,1671                                  EBANK=   XSM                                   
059109,000039: 
059110,000040:                                                                                                  #  CALCGTA COMPUTES THE GYRO TORQUE ANGLES REQUIRED TO BRING THE STABLE MEMBER INTO THE DESIRED ORIENTATION.
059111,000041: 
059112,000042:                                                                                                  #  THE INPUT IS THE DESIRED STABLE MEMBER COORDINATES REFERRED TO PRESENT STABLE MEMBER COORDINATES.  THE THREE
059113,000043:                                                                                                  #  HALF-UNIT VECTORS ARE STORED AT XDC, YDC, AND ZDC.
059114,000044: 
059115,000045:                                                                                                  #  THE OUTPUTS ARE THE THREE GYRO TORQUING ANGLES TO BE APPLIED TO THE Y, Z, AND X GYROS AND ARE STORED DP AT IGC,
059116,000046:                                                                                                  #  MGC, AND OGC RESPECTIVELY.
059117,000047: 
059118,000048: 23,3205                                           COUNT    23/INFLT                              
059119,000049: 
059120,000050: 23,3205           71220        CALCGTA            ITA      DLOAD                                 #  PUSHDOWN 00-03, 16D-27D, 34D-37D
059121,000051: 23,3206           00051                                    S2                                    #  XDC = (XD1 XD2 XD3)
059122,000052: 23,3207           02714                                    XDC                                   #  YDC = (YD1 YD2 YD3)
059123,000053: 23,3210           65325                           PDDL     PDDL                                  #  ZDC = (ZD1 ZD2 ZD3)
059124,000054: 23,3211           15335                                    HI6ZEROS                              
059125,000055: 23,3212           02720                                    XDC        +4                         
059126,000056: 23,3213           55476                           DCOMP    VDEF                                  
059127,000057: 23,3214           77656                           UNIT                                           
059128,000058: 23,3215           14027                           STODL    ZPRIME                                #  ZP = UNIT(-XD3 0 XD1) = (ZP1 ZP2 ZP3)
059129,000059: 23,3216           00027                                    ZPRIME                                
059130,000060: 
059131,000061: 23,3217           77742                           SR1                                            
059132,000062: 23,3220           14023                           STODL    SINTH                                 #  SIN(IGC) = ZP1
059133,000063: 23,3221           00033                                    ZPRIME     +4                         
059134,000064: 23,3222           77742                           SR1                                            
059135,000065: 23,3223           34021                           STCALL   COSTH                                 #  COS(IGC) = ZP3
059136,000066: 23,3224           47256                                    ARCTRIG                               
059137,000067: 
059138,000068: 23,3225           16762                           STODL    IGC                                   #  Y GYRO TORQUING ANGLE   FRACTION OF REV.
059139,000069: 23,3226           02716                                    XDC        +2                         
059140,000070: 23,3227           77742                           SR1                                            
059141,000071: 23,3230           14023                           STODL    SINTH                                 #  SIN(MGC) = XD2
059142,000072: 23,3231           00027                                    ZPRIME                                
059143,000073: 
059144,000074: 23,3232           65205                           DMP      PDDL                                  
059145,000075: 23,3233           02720                                    XDC        +4                         #  PD00 = (ZP1)(XD3)
059146,000076: 23,3234           00033                                    ZPRIME     +4                         
059147,000077: 
059148,000078: 23,3235           45205                           DMP      DSU                                   
059149,000079: 23,3236           02714                                    XDC                                   #  MPAC = (ZP3)(XD1)
059150,000080: 23,3237           77626                           STADR                                          
059151,000081: 23,3240           43756                           STCALL   COSTH                                 #  COS(MGC) = MPAC - PD00
059152,000082: 23,3241           47256                                    ARCTRIG                               

Page 1356

059154,000084: 23,3242           26764                           STOVL    MGC                                   #  Z GYRO TORQUING ANGLE   FRACTION OF REV.
059155,000085: 23,3243           00027                                    ZPRIME                                
059156,000086: 23,3244           77641                           DOT                                            
059157,000087: 23,3245           02730                                    ZDC                                   
059158,000088: 23,3246           24021                           STOVL    COSTH                                 #  COS(OGC) = ZP . ZDC
059159,000089: 23,3247           00027                                    ZPRIME                                
059160,000090: 23,3250           77641                           DOT                                            
059161,000091: 23,3251           02722                                    YDC                                   
059162,000092: 23,3252           34023                           STCALL   SINTH                                 #  SIN(OGC) = ZP . YDC
059163,000093: 23,3253           47256                                    ARCTRIG                               
059164,000094: 
059165,000095: 23,3254           36760                           STCALL   OGC                                   #  X GYRO TORQUING ANGLE   FRACTION OF REV.
059166,000096: 23,3255           00051                                    S2                                    
059167,000097: 

Page 1357

059169,000099:                                                                                                  #  ARCTRIG COMPUTES AN ANGLE GIVEN THE SINE AND COSINE OF THIS ANGLE.
059170,000100: 
059171,000101:                                                                                                  #  THE INPUTS ARE SIN/4 AND COS/4 STORED DP AT SINTH AND COSTH.
059172,000102: 
059173,000103:                                                                                                  #  THE OUTPUT IS THE CALCULATED ANGLE BETWEEN +.5 AND -.5 REVOLUTIONS AND STORED AT THETA.  THE OUTPUT IS ALSO
059174,000104:                                                                                                  #  AVAILABLE AT MPAC.
059175,000105: 
059176,000106: 23,3256           51545        ARCTRIG            DLOAD    ABS                                   #  PUSHDOWN  16D-21D
059177,000107: 23,3257           00023                                    SINTH                                 
059178,000108: 23,3260           50025                           DSU      BMN                                   
059179,000109: 23,3261           07474                                    QTSN45                                #  ABS(SIN/4) - SIN(45)/4
059180,000110: 23,3262           47271                                    TRIG1                                 #  IF (-45,45) OR (135,-135)
059181,000111: 
059182,000112: 23,3263           72545                           DLOAD    SL1                                   #  (45,135) OR (-135,-45)
059183,000113: 23,3264           00021                                    COSTH                                 
059184,000114: 23,3265           75326                           ACOS     SIGN                                  
059185,000115: 23,3266           00023                                    SINTH                                 
059186,000116: 23,3267           00025                           STORE    THETA                                 #  X = ARCCOS(COS) WITH SIGN(SIN)
059187,000117: 23,3270           77616                           RVQ                                            
059188,000118: 
059189,000119: 23,3271           72545        TRIG1              DLOAD    SL1                                   #  (-45,45) OR (135,-135)
059190,000120: 23,3272           00023                                    SINTH                                 
059191,000121: 23,3273           77736                           ASIN                                           
059192,000122: 23,3274           14025                           STODL    THETA                                 #  X = ARCSIN(SIN) WITH SIGN(SIN)
059193,000123: 23,3275           00021                                    COSTH                                 
059194,000124: 23,3276           77640                           BMN                                            
059195,000125: 23,3277           47302                                    TRIG2                                 #  IF (135,-135)
059196,000126: 
059197,000127: 23,3300           43545                           DLOAD    RVQ                                   
059198,000128: 23,3301           00025                                    THETA                                 #  X = ARCSIN(SIN)   (-45,45)
059199,000129: 
059200,000130: 23,3302           75345        TRIG2              DLOAD    SIGN                                  #  (135,-135)
059201,000131: 23,3303           15333                                    HIDPHALF                              
059202,000132: 23,3304           00023                                    SINTH                                 
059203,000133: 23,3305           77625                           DSU                                            
059204,000134: 23,3306           00025                                    THETA                                 
059205,000135: 23,3307           00025                           STORE    THETA                                 #  X = .5 WITH SIGN(SIN) - ARCSIN(SIN)
059206,000136: 23,3310           77616                           RVQ                                            #        (+) - (+) OR (-) - (-)
059207,000137: 

Page 1358

059209,000139:                                                                                                  #  SMNB, NBSM, AND AXISROT, WHICH USED TO APPEAR HERE, HAVE BEEN
059210,000140:                                                                                                  #  COMBINED IN A ROUTINE CALLED AX*SR*T, WHICH APPEARS AMONG THE POWERED
059211,000141:                                                                                                  #  FLIGHT SUBROUTINES.
059212,000142: 

Page 1359

059214,000144:                                                                                                  #  CALCGA COMPUTES THE CDU DRIVING ANGLES REQUIRED TO BRING THE STABLE MEMBER INTO THE DESIRED ORIENTATION.
059215,000145: 
059216,000146:                                                                                                  #  THE INPUTS ARE  1) THE NAVIGATION BASE COORDINATES REFERRED TO ANY COORDINATE SYSTEM.  THE THREE HALF-UNIT
059217,000147:                                                                                                  #  VECTORS ARE STORED AT XNB, YNB, AND ZNB.  2) THE DESIRED STABLE MEMBER COORDINATES REFERRED TO THE SAME
059218,000148:                                                                                                  #  COORDINATE SYSTEM ARE STORED AT XSM, YSM, AND ZSM.
059219,000149: 
059220,000150:                                                                                                  #  THE OUTPUTS ARE THE THREE CDU DRIVING ANGLES AND ARE STORED SP AT THETAD, THETAD +1, AND THETAD +2.
059221,000151: 
059222,000152: 23,3311           77601        CALCGA             SETPD                                          #  PUSHDOWN 00-05, 16D-21D, 34D-37D
059223,000153: 23,3312           00001                                    0                                     
059224,000154: 23,3313           47375                           VLOAD    VXV                                   
059225,000155: 23,3314           02714                                    XNB                                   #  XNB = OGA (OUTER GIMBAL AXIS)
059226,000156: 23,3315           02700                                    YSM                                   #  YSM = IGA (INNER GIMBAL AXIS)
059227,000157: 23,3316           41456                           UNIT     PUSH                                  #  PD0 = UNIT(OGA X IGA) = MGA
059228,000158: 
059229,000159: 23,3317           44041                           DOT      ITA                                   
059230,000160: 23,3320           02730                                    ZNB                                   
059231,000161: 23,3321           00051                                    S2                                    
059232,000162: 23,3322           24021                           STOVL    COSTH                                 #  COS(OG) = MGA . ZNB
059233,000163: 23,3323           00001                                    0                                     
059234,000164: 23,3324           77641                           DOT                                            
059235,000165: 23,3325           02722                                    YNB                                   
059236,000166: 23,3326           34023                           STCALL   SINTH                                 #  SIN(OG) = MGA . YNB
059237,000167: 23,3327           47256                                    ARCTRIG                               
059238,000168: 23,3330           26760                           STOVL    OGC                                   
059239,000169: 23,3331           00001                                    0                                     
059240,000170: 
059241,000171: 23,3332           50235                           VXV      DOT                                   #  PROVISION FOR MG ANGLE OF 90 DEGREES
059242,000172: 23,3333           02714                                    XNB                                   
059243,000173: 23,3334           02700                                    YSM                                   
059244,000174: 23,3335           77752                           SL1                                            
059245,000175: 23,3336           24021                           STOVL    COSTH                                 #  COS(MG) = IGA . (MGA X OGA)
059246,000176: 23,3337           02700                                    YSM                                   
059247,000177: 23,3340           77641                           DOT                                            
059248,000178: 23,3341           02714                                    XNB                                   
059249,000179: 23,3342           34023                           STCALL   SINTH                                 #  SIN(MG) = IGA . OGA
059250,000180: 23,3343           47256                                    ARCTRIG                               
059251,000181: 23,3344           02764                           STORE    MGC                                   
059252,000182: 
059253,000183: 23,3345           45246                           ABS      DSU                                   
059254,000184: 23,3346           07476                                    .166...                               
059255,000185: 23,3347           77644                           BPL                                            
059256,000186: 23,3350           47371                                    GIMLOCK1                              #  IF ANGLE GREATER THAN 60 DEGREES
059257,000187: 
059258,000188: 23,3351           50375        CALCGA1            VLOAD    DOT                                   
059259,000189: 23,3352           02706                                    ZSM                                   
059260,000190: 23,3353           00001                                    0                                     
059261,000191: 23,3354           24021                           STOVL    COSTH                                 #  COS(IG) = ZSM . MGA
059262,000192: 23,3355           02672                                    XSM                                   

Page 1360

059264,000194: 23,3356           45441                           DOT      STADR                                 
059265,000195: 23,3357           43754                           STCALL   SINTH                                 #  SIN(IG) = XSM . MGA
059266,000196: 23,3360           47256                                    ARCTRIG                               
059267,000197: 
059268,000198: 23,3361           26762                           STOVL    IGC                                   
059269,000199: 23,3362           02760                                    OGC                                   
059270,000200: 23,3363           43034                           RTB      BONCLR                                
059271,000201: 23,3364           45552                                    V1STO2S                               
059272,000202: 23,3365           00200                                    CPHIFLAG                              
059273,000203: 23,3366           00051                                    S2                                    
059274,000204: 23,3367           35156                           STCALL   THETAD                                
059275,000205: 23,3370           00051                                    S2                                    
059276,000206: 
059277,000207: 23,3371           77776        GIMLOCK1           EXIT                                           
059278,000208: 23,3372           05650                           TC       ALARM                                 
059279,000209: 23,3373           00401                           OCT      00401                                 
059280,000210: 23,3374           05546                           TC       UPFLAG                                #  GIMBAL LOCK HAS OCCURED
059281,000211: 23,3375           00056                           ADRES    GLOKFAIL                              
059282,000212: 
059283,000213: 23,3376           06006                           TC       INTPRET                               
059284,000214: 23,3377           77650                           GOTO                                           
059285,000215: 23,3400           47351                                    CALCGA1                               
059286,000216: 

Page 1361

059288,000218:                                                                                                  #  AXISGEN COMPUTES THE COORDINATES OF ONE COORDINATE SYSTEM REFERRED TO ANOTHER COORDINATE SYSTEM.
059289,000219: 
059290,000220:                                                                                                  #  THE INPUTS ARE  1) THE STAR1 VECTOR REFERRED TO COORDINATE SYSTEM A STORED AT STARAD.  2) THE STAR2 VECTOR
059291,000221:                                                                                                  #  REFERRED TO COORDINATE SYSTEM A STORED AT STARAD +6.  3) THE STAR1 VECTOR REFERRED TO COORDINATE SYSTEM B STORED
059292,000222:                                                                                                  #  AT LOCATION 6 OF THE VAC AREA.  4) THE STAR2 VECTOR REFERRED TO COORDINATE SYSTEM B STORED AT LOCATION 12D OF
059293,000223:                                                                                                  #  THE VAC AREA.
059294,000224: 
059295,000225:                                                                                                  #  THE OUTPUT DEFINES COORDINATE SYSTEM A REFERRED TO COORDINATE SYSTEM B.  THE THREE HALF-UNIT VECTORS ARE STORED
059296,000226:                                                                                                  #  AT LOCATIONS XDC, XDC +6, XDC +12D, AND STARAD, STARAD +6, STARAD +12D.
059297,000227: 
059298,000228: 23,3401           66370        AXISGEN            AXT,1    SSP                                   #  PUSHDOWN 00-30D, 34D-37D
059299,000229: 23,3402           02743                                    STARAD     +6                         
059300,000230: 23,3403           00051                                    S1                                    
059301,000231: 23,3404           02727                                    STARAD     -6                         
059302,000232: 
059303,000233: 23,3405           77601                           SETPD                                          
059304,000234: 23,3406           00001                                    0                                     
059305,000235: 23,3407           46773        AXISGEN1           VLOAD*   VXV*                                  #  06D   UA = S1
059306,000236: 23,3410           02752                                    STARAD     +12D,1                     #        STARAD +00D     UB = S1
059307,000237: 23,3411           02760                                    STARAD     +18D,1                     
059308,000238: 23,3412           77656                           UNIT                                           #  12D   VA = UNIT(S1 X S2)
059309,000239: 23,3413           06760                           STORE    STARAD     +18D,1                     #        STARAD +06D     VB = UNIT(S1 X S2)
059310,000240: 23,3414           77773                           VLOAD*                                         
059311,000241: 23,3415           02752                                    STARAD     +12D,1                     
059312,000242: 
059313,000243: 23,3416           76433                           VXV*     VSL1                                  
059314,000244: 23,3417           02760                                    STARAD     +18D,1                     #  18D   WA = UA X VA
059315,000245: 23,3420           06766                           STORE    STARAD     +24D,1                     #        STARAD +12D     WB = UB X VB
059316,000246: 
059317,000247: 23,3421           77700                           TIX,1                                          
059318,000248: 23,3422           47407                                    AXISGEN1                              
059319,000249: 
059320,000250: 23,3423           66160                           AXC,1    SXA,1                                 
059321,000251: 23,3424           00006                                    6                                     
059322,000252: 23,3425           00036                                    30D                                   
059323,000253: 
059324,000254: 23,3426           66370                           AXT,1    SSP                                   
059325,000255: 23,3427           00022                                    18D                                   
059326,000256: 23,3430           00051                                    S1                                    
059327,000257: 23,3431           00006                                    6                                     
059328,000258: 
059329,000259: 23,3432           66374                           AXT,2    SSP                                   
059330,000260: 23,3433           00006                                    6                                     
059331,000261: 23,3434           00052                                    S2                                    
059332,000262: 23,3435           00002                                    2                                     
059333,000263: 
059334,000264: 23,3436           76720        AXISGEN2           XCHX,1   VLOAD*                                
059335,000265: 23,3437           00036                                    30D                                   #  X1=-6 X2=+6   X1=-6 X2=+4     X1=-6 X2=+2
059336,000266: 23,3440           00001                                    0,1                                   
059337,000267: 

Page 1362

059339,000269: 23,3441           62757                           VXSC*    PDVL*                                 #  J=(UA)(UB1)   J=(UA)(UB2)     J=(UA)(UB3)
059340,000270: 23,3442           75033                                    STARAD     +6,2                       
059341,000271: 23,3443           00007                                    6,1                                   
059342,000272: 23,3444           77757                           VXSC*                                          
059343,000273: 23,3445           75025                                    STARAD     +12D,2                     
059344,000274: 23,3446           30031                           STOVL*   24D                                   #  K=(VA)(VB1)   J=(VA)(VB2)     J=(VA)(VB3)
059345,000275: 23,3447           00015                                    12D,1                                 
059346,000276: 
059347,000277: 23,3450           53357                           VXSC*    VAD                                   
059348,000278: 23,3451           75017                                    STARAD     +18D,2                     #  L=(WA)(WB1)   J=(WA)(WB2)     J=(WA)(WB3)
059349,000279: 23,3452           76455                           VAD      VSL1                                  
059350,000280: 23,3453           00031                                    24D                                   
059351,000281: 23,3454           53520                           XCHX,1   UNIT                                  
059352,000282: 23,3455           00036                                    30D                                   
059353,000283: 23,3456           06736                           STORE    XDC        +18D,1                     #  XDC = L+J+K   YDC = L+J+K     ZDC = L+J+K
059354,000284: 
059355,000285: 23,3457           77700                           TIX,1                                          
059356,000286: 23,3460           47461                                    AXISGEN3                              
059357,000287: 
059358,000288: 23,3461           77704        AXISGEN3           TIX,2                                          
059359,000289: 23,3462           47436                                    AXISGEN2                              
059360,000290: 
059361,000291: 23,3463           77775                           VLOAD                                          
059362,000292: 23,3464           02714                                    XDC                                   
059363,000293: 23,3465           26736                           STOVL    STARAD                                
059364,000294: 23,3466           02722                                    YDC                                   
059365,000295: 23,3467           26744                           STOVL    STARAD     +6                         
059366,000296: 23,3470           02730                                    ZDC                                   
059367,000297: 23,3471           02752                           STORE    STARAD     +12D                       
059368,000298: 
059369,000299: 23,3472           77616                           RVQ                                            
059370,000300: 

Page 1363

059372,000302: 23,3473           05520 26075  QTSN45             2DEC     .1768                                 
059373,000303: 23,3475           05252 25253  .166...            2DEC     .1666666667                            
059374,000304: 

Page 1364 This page is empty.

059377,000307: 
059378,000308: 
059379,000309: 

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