Source Code

These source-code files were obtained by digitally photographing the Colossus 237 program listing from the private collection of original AGC developer Fred Martin, and then modifying pre-existing Colossus 249 (Apollo 9) source files to incorporate changes. Note that the page images presented online are of reduced quality, and that additional 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 237 OF AGC PROGRAM COLOSSUS 
	BY NASA 2021111-031  1:17 AUG. 24, 1968

055879,000002:                                                                                                 #  Copyright:    Public domain.
055880,000003:                                                                                                 #  Filename:      INFLIGHT_ALIGNMENT_ROUTINES.agc
055881,000004:                                                                                                 #  Purpose:      Part of the source code for Colossus build 237.
055882,000005:                                                                                                 #                This is for the Command Module's (CM) Apollo Guidance
055883,000006:                                                                                                 #                Computer (AGC), we believe for Apollo 8.
055884,000007:                                                                                                 #  Assembler:    yaYUL
055885,000008:                                                                                                 #  Contact:      Jim Lawton <jim DOT lawton AT gmail DOT com>
055886,000009:                                                                                                 #  Website:      www.ibiblio.org/apollo/index.html
055887,000010:                                                                                                 #  Page scans:   www.ibiblio.org/apollo/ScansForConversion/Colossus237/
055888,000011:                                                                                                 #  Mod history:  2011-04-17 JL    Adapted from corresponding Colossus 249 file.
055889,000012: 
055890,000013:                                                                                                 # # Page 1319
055891,000014: 22,3505                                          BANK     22                                    
055892,000015: 23,2000                                          SETLOC   INFLIGHT                              
055893,000016: 23,2000                                          BANK                                           
055894,000017: 
055895,000018: 23,3140  0002671                                 EBANK=   XSM                                   
055896,000019: 
055897,000020: 
055898,000021:                                                                                                 #  CALCGTA COMPUTES THE GYRO TORQUE ANGLES REQUIRED TO BRING THE STABLE MEMBER INTO THE DESIRED ORIENTATION.
055899,000022: 
055900,000023:                                                                                                 #  THE INPUT IS THE DESIRED STABLE MEMBER COORDINATES REFERRED TO PRESENT STABLE MEMBER COORDINATES. THE THREE
055901,000024:                                                                                                 #  HALF-UNIT VECTORS ARE STORED AT XDC, YDC, AND ZDC.
055902,000025: 
055903,000026:                                                                                                 #  THE OUTPUTS ARE THE THREE GYRO TORQUE ANGLES TO BE APPLIED TO THE Y, Z, AND X GYROS AND ARE STORED DP AT IGC,
055904,000027:                                                                                                 #  MGC, AND OGC RESPECTIVELY.
055905,000028: 
055906,000029: 23,3140                                          COUNT    23/INFLT                              
055907,000030: 
055908,000031: 23,3140           71220        CALCGTA           ITA      DLOAD                                 #  PUSHDOWN  00-03,16D-27D,34D-37D
055909,000032: 23,3141           00051                                   S2                                    #  XDC = (XD1 XD2 XD3)
055910,000033: 23,3142           02714                                   XDC                                   #  YDC = (YD1 YD2 YD3)
055911,000034: 23,3143           65325                          PDDL     PDDL                                  #  ZDC = (ZD1 ZD2 ZD3)
055912,000035: 23,3144           15332                                   HI6ZEROS                              
055913,000036: 23,3145           02720                                   XDC        +4                         
055914,000037: 23,3146           55476                          DCOMP    VDEF                                  
055915,000038: 23,3147           77656                          UNIT                                           
055916,000039: 23,3150           14027                          STODL    ZPRIME                                #  ZP = UNIT(-XD3 0 XD1) = (ZP1 ZP2 ZP3)
055917,000040: 23,3151           00027                                   ZPRIME                                
055918,000041: 
055919,000042: 23,3152           77742                          SR1                                            
055920,000043: 23,3153           14023                          STODL    SINTH                                 #  SIN(IGC) = ZP1
055921,000044: 23,3154           00033                                   ZPRIME     +4                         
055922,000045: 23,3155           77742                          SR1                                            
055923,000046: 23,3156           34021                          STCALL   COSTH                                 #  COS(IGC) = ZP3
055924,000047: 23,3157           47211                                   ARCTRIG                               
055925,000048: 
055926,000049: 23,3160           16762                          STODL    IGC                                   #  Y GYRO TORQUING ANGLE   FRACTION OF REV.
055927,000050: 23,3161           02716                                   XDC        +2                         
055928,000051: 23,3162           77742                          SR1                                            
055929,000052: 23,3163           14023                          STODL    SINTH                                 #  SIN(MGC) = XD2
055930,000053: 23,3164           00027                                   ZPRIME                                
055931,000054: 
055932,000055: 23,3165           65205                          DMP      PDDL                                  
055933,000056: 23,3166           02720                                   XDC        +4                         #  PD00 = (ZP1)(XD3)
055934,000057: 23,3167           00033                                   ZPRIME     +4                         
055935,000058: 
055936,000059: 23,3170           45205                          DMP      DSU                                   
055937,000060: 23,3171           02714                                   XDC                                   #  MPAC = (ZP3)(XD1)
055938,000061: 23,3172           77626                          STADR                                          
055939,000062: 23,3173           43756                          STCALL   COSTH                                 #  COS(MGC) = MPAC - PD00
055940,000063: 23,3174           47211                                   ARCTRIG                               
055941,000064:                                                                                                 # # Page 1320
055942,000065: 23,3175           26764                          STOVL    MGC                                   #  Z GYRO TORQUING ANGLE   FRACTION OF REV.
055943,000066: 23,3176           00027                                   ZPRIME                                
055944,000067: 23,3177           77641                          DOT                                            
055945,000068: 23,3200           02730                                   ZDC                                   
055946,000069: 23,3201           24021                          STOVL    COSTH                                 #  COS(OGC) = ZP . ZDC
055947,000070: 23,3202           00027                                   ZPRIME                                
055948,000071: 23,3203           77641                          DOT                                            
055949,000072: 23,3204           02722                                   YDC                                   
055950,000073: 23,3205           34023                          STCALL   SINTH                                 #  SIN(OGC) = ZP . YDC
055951,000074: 23,3206           47211                                   ARCTRIG                               
055952,000075: 
055953,000076: 23,3207           36760                          STCALL   OGC                                   #  X GYRO TORQUING ANGLE   FRACTION OF REV.
055954,000077: 23,3210           00051                                   S2                                    
055955,000078: 
055956,000079:                                                                                                 # # Page 1321
055957,000080:                                                                                                 #  ARCTRIG COMPUTES AN ANGLE GIVEN THE SINE AND COSINE OF THIS ANGLE.
055958,000081: 
055959,000082:                                                                                                 #  THE INPUTS ARE SIN/4 AND COS/4 STORED DP AT SINTH AND COSTH.
055960,000083: 
055961,000084:                                                                                                 #  THE OUTPUT IS THE CALCULATED ANGLE BETWEEN +.5 AND -.5 REVOLUTIONS AND STORED AT THETA. THE OUTPUT IS ALSO
055962,000085:                                                                                                 #  AVAILABLE AT MPAC.
055963,000086: 
055964,000087: 
055965,000088: 23,3211           51545        ARCTRIG           DLOAD    ABS                                   #  PUSHDOWN  16D-21D
055966,000089: 23,3212           00023                                   SINTH                                 
055967,000090: 23,3213           50025                          DSU      BMN                                   
055968,000091: 23,3214           07427                                   QTSN45                                #  ABS(SIN/4) - SIN(45)/4
055969,000092: 23,3215           47224                                   TRIG1                                 #  IF (-45,45) OR (135,-135)
055970,000093: 
055971,000094: 
055972,000095: 23,3216           72545                          DLOAD    SL1                                   #  (45,135) OR (-135,-45)
055973,000096: 23,3217           00021                                   COSTH                                 
055974,000097: 23,3220           75326                          ACOS     SIGN                                  
055975,000098: 23,3221           00023                                   SINTH                                 
055976,000099: 23,3222           00025                          STORE    THETA                                 #  X = ARCCOS(COS) WITH SIGN(SIN)
055977,000100: 23,3223           77616                          RVQ                                            
055978,000101: 
055979,000102: 
055980,000103: 23,3224           72545        TRIG1             DLOAD    SL1                                   #  (-45,45) OR (135,-135)
055981,000104: 23,3225           00023                                   SINTH                                 
055982,000105: 23,3226           77736                          ASIN                                           
055983,000106: 23,3227           14025                          STODL    THETA                                 #  X = ARCSIN(SIN) WITH SIGN(SIN)
055984,000107: 23,3230           00021                                   COSTH                                 
055985,000108: 23,3231           77640                          BMN                                            
055986,000109: 23,3232           47235                                   TRIG2                                 #  IF (135,-135)
055987,000110: 
055988,000111: 23,3233           43545                          DLOAD    RVQ                                   
055989,000112: 23,3234           00025                                   THETA                                 #  X = ARCSIN(SIN)    (-45,45)
055990,000113: 
055991,000114: 
055992,000115: 23,3235           75345        TRIG2             DLOAD    SIGN                                  #  (135,-135)
055993,000116: 23,3236           15330                                   HIDPHALF                              
055994,000117: 23,3237           00023                                   SINTH                                 
055995,000118: 23,3240           77625                          DSU                                            
055996,000119: 23,3241           00025                                   THETA                                 
055997,000120: 23,3242           00025                          STORE    THETA                                 #  X = .5 WITH SIGN(SIN) - ARCSIN(SIN)
055998,000121: 23,3243           77616                          RVQ                                            #                   (+) - (+) OR (-) - (-)
055999,000122: 
056000,000123:                                                                                                 # # Page 1322
056001,000124:                                                                                                 #      SMNB, NBSM, AND AXISROT, WHICH USED TO APPEAR HERE, HAVE BEEN
056002,000125:                                                                                                 #  COMBINED IN A ROUTINE CALLED AX*SR*T, WHICH APPEARS AMONG THE POWERED
056003,000126:                                                                                                 #  FLIGHT SUBROUTINES.
056004,000127: 
056005,000128:                                                                                                 # # Page 1323
056006,000129:                                                                                                 #  CALCGA COMPUTES THE CDU DRIVING ANGLES REQUIRED TO BRING THE STABLE MEMBER INTO THE DESIRED ORIENTATION.
056007,000130: 
056008,000131:                                                                                                 #  THE INPUTS ARE  1) THE NAVIGATION BASE COORDINATES REFERRED TO ANY COORDINATE SYSTEM. THE THREE HALF-UNIT
056009,000132:                                                                                                 #  VECTORS ARE STORED AT XNB,YNB, AND ZNB.  2) THE DESIRED STABLE MEMBER COORDINATES REFERRED TO THE SAME
056010,000133:                                                                                                 #  COORDINATE SYSTEM ARE STORED AT XSM, YSM, AND ZSM.
056011,000134: 
056012,000135:                                                                                                 #  THE OUTPUTS ARE THE THREE CDU DRIVING ANGLES AND ARE STORED SP AT THETAD, THETAD +1, AND THETAD +2.
056013,000136: 
056014,000137: 23,3244           77601        CALCGA            SETPD                                          #  PUSHDOWN  00-05, 16D-21D, 34D-37D
056015,000138: 23,3245           00001                                   0                                     
056016,000139: 23,3246           47375                          VLOAD    VXV                                   
056017,000140: 23,3247           02714                                   XNB                                   #  XNB = OGA (OUTER GIMBAL AXIS)
056018,000141: 23,3250           02700                                   YSM                                   #  YSM = IGA (INNER GIMBAL AXIS)
056019,000142: 23,3251           41456                          UNIT     PUSH                                  #  PD0 = UNIT(OGA X IGA) = MGA
056020,000143: 
056021,000144: 23,3252           44041                          DOT      ITA                                   
056022,000145: 23,3253           02730                                   ZNB                                   
056023,000146: 23,3254           00051                                   S2                                    
056024,000147: 23,3255           24021                          STOVL    COSTH                                 #  COS(OG) = MGA . ZNB
056025,000148: 23,3256           00001                                   0                                     
056026,000149: 23,3257           77641                          DOT                                            
056027,000150: 23,3260           02722                                   YNB                                   
056028,000151: 23,3261           34023                          STCALL   SINTH                                 #  SIN(OG) = MGA . YNB
056029,000152: 23,3262           47211                                   ARCTRIG                               
056030,000153: 23,3263           26760                          STOVL    OGC                                   
056031,000154: 23,3264           00001                                   0                                     
056032,000155: 
056033,000156: 23,3265           50235                          VXV      DOT                                   #  PROVISION FOR MG ANGLE OF 90 DEGREES
056034,000157: 23,3266           02714                                   XNB                                   
056035,000158: 23,3267           02700                                   YSM                                   
056036,000159: 23,3270           77752                          SL1                                            
056037,000160: 23,3271           24021                          STOVL    COSTH                                 #  COS(MG) = IGA . (MGA X OGA)
056038,000161: 23,3272           02700                                   YSM                                   
056039,000162: 23,3273           77641                          DOT                                            
056040,000163: 23,3274           02714                                   XNB                                   
056041,000164: 23,3275           34023                          STCALL   SINTH                                 #  SIN(MG) = IGA . OGA
056042,000165: 23,3276           47211                                   ARCTRIG                               
056043,000166: 23,3277           02764                          STORE    MGC                                   
056044,000167: 
056045,000168: 23,3300           45246                          ABS      DSU                                   
056046,000169: 23,3301           07431                                   .166...                               
056047,000170: 23,3302           77644                          BPL                                            
056048,000171: 23,3303           47324                                   GIMLOCK1                              #  IF ANGLE GREATER THAN 60 DEGREES
056049,000172: 
056050,000173: 23,3304           50375        CALCGA1           VLOAD    DOT                                   
056051,000174: 23,3305           02706                                   ZSM                                   
056052,000175: 23,3306           00001                                   0                                     
056053,000176: 23,3307           24021                          STOVL    COSTH                                 #  COS(IG) = ZSM . MGA
056054,000177: 23,3310           02672                                   XSM                                   
056055,000178:                                                                                                 # # Page 1324
056056,000179: 23,3311           45441                          DOT      STADR                                 
056057,000180: 23,3312           43754                          STCALL   SINTH                                 #  SIN(IG) = XSM . MGA
056058,000181: 23,3313           47211                                   ARCTRIG                               
056059,000182: 
056060,000183: 23,3314           26762                          STOVL    IGC                                   
056061,000184: 23,3315           02760                                   OGC                                   
056062,000185: 23,3316           43034                          RTB      BONCLR                                
056063,000186: 23,3317           45547                                   V1STO2S                               
056064,000187: 23,3320           00200                                   CPHIFLAG                              
056065,000188: 23,3321           00051                                   S2                                    
056066,000189: 23,3322           35156                          STCALL   THETAD                                
056067,000190: 23,3323           00051                                   S2                                    
056068,000191: 
056069,000192: 23,3324           77776        GIMLOCK1          EXIT                                           
056070,000193: 23,3325           05537                          TC       ALARM                                 
056071,000194: 23,3326           00401                          OCT      00401                                 
056072,000195: 23,3327           05435                          TC       UPFLAG                                #  GIMBAL LOCK HAS OCCURED
056073,000196: 23,3330           00056                          ADRES    GLOKFAIL                              
056074,000197: 
056075,000198: 23,3331           06006                          TC       INTPRET                               
056076,000199: 23,3332           77650                          GOTO                                           
056077,000200: 23,3333           47304                                   CALCGA1                               
056078,000201: 
056079,000202:                                                                                                 # # Page 1325
056080,000203:                                                                                                 #  AXISGEN COMPUTES THE COORDINATES OF ONE COORDINATE SYSTEM REFERRED TO ANOTHER COORDINATE SYSTEM.
056081,000204: 
056082,000205:                                                                                                 #  THE INPUTS ARE  1) THE STAR1 VECTOR REFERRED TO COORDINATE SYSTEM A STORED AT STARAD.  2) THE STAR2 VECTOR
056083,000206:                                                                                                 #  REFERRED TO COORDINATE SYSTEM A STORED AT STARAD +6.  3) THE STAR1 VECTOR REFERRED TO COORDINATE SYSTEM B STORED
056084,000207:                                                                                                 #  AT LOCATION 6 OF THE VAC AREA.  4) THE STAR2 VECTOR REFERRED TO COORDINATE SYSTEM B STORED AT LOCATION 12D OF
056085,000208:                                                                                                 #  THE VAC AREA.
056086,000209: 
056087,000210:                                                                                                 #  THE OUTPUT DEFINES COORDINATE SYSTEM A REFERRED TO COORDINATE SYSTEM B. THE THREE HALF-UNIT VECTORS ARE STORED
056088,000211:                                                                                                 #  AT LOCATIONS XDC, XDC +6, XDC +12D, AND STARAD, STARAD +6, STARAD +12D.
056089,000212: 
056090,000213: 
056091,000214: 23,3334           66370        AXISGEN           AXT,1    SSP                                   #  PUSHDOWN  00-30D,34D-37D
056092,000215: 23,3335           02743                                   STARAD     +6                         
056093,000216: 23,3336           00051                                   S1                                    
056094,000217: 23,3337           02727                                   STARAD     -6                         
056095,000218: 
056096,000219: 23,3340           77601                          SETPD                                          
056097,000220: 23,3341           00001                                   0                                     
056098,000221: 23,3342           46773        AXISGEN1          VLOAD*   VXV*                                  #  06D   UA = S1
056099,000222: 23,3343           02752                                   STARAD     +12D,1                     #         STARAD +00D   UB = S1
056100,000223: 23,3344           02760                                   STARAD     +18D,1                     
056101,000224: 23,3345           77656                          UNIT                                           #  12D   VA = UNIT(S1 X S2)
056102,000225: 23,3346           06760                          STORE    STARAD     +18D,1                     #         STARAD +06D   VB = UNIT(S1 X S2)
056103,000226: 23,3347           77773                          VLOAD*                                         
056104,000227: 23,3350           02752                                   STARAD     +12D,1                     
056105,000228: 
056106,000229: 23,3351           76433                          VXV*     VSL1                                  
056107,000230: 23,3352           02760                                   STARAD     +18D,1                     #  18D   WA = UA X VA
056108,000231: 23,3353           06766                          STORE    STARAD     +24D,1                     #         STARAD +12D   WB = UB X VB
056109,000232: 
056110,000233: 23,3354           77700                          TIX,1                                          
056111,000234: 23,3355           47342                                   AXISGEN1                              
056112,000235: 
056113,000236: 23,3356           66160                          AXC,1    SXA,1                                 
056114,000237: 23,3357           00006                                   6                                     
056115,000238: 23,3360           00036                                   30D                                   
056116,000239: 
056117,000240: 23,3361           66370                          AXT,1    SSP                                   
056118,000241: 23,3362           00022                                   18D                                   
056119,000242: 23,3363           00051                                   S1                                    
056120,000243: 23,3364           00006                                   6                                     
056121,000244: 
056122,000245: 23,3365           66374                          AXT,2    SSP                                   
056123,000246: 23,3366           00006                                   6                                     
056124,000247: 23,3367           00052                                   S2                                    
056125,000248: 23,3370           00002                                   2                                     
056126,000249: 
056127,000250: 23,3371           76720        AXISGEN2          XCHX,1   VLOAD*                                
056128,000251: 23,3372           00036                                   30D                                   #  X1=-6 X2=+6   X1=-6 X2=+4   X1=-6 X2=+2
056129,000252: 23,3373           00001                                   0,1                                   
056130,000253:                                                                                                 # # Page 1326
056131,000254: 23,3374           62757                          VXSC*    PDVL*                                 #  J=(UA)(UB1)   J=(UA)(UB2)   J=(UA)(UB3)
056132,000255: 23,3375           75033                                   STARAD     +6,2                       
056133,000256: 23,3376           00007                                   6,1                                   
056134,000257: 23,3377           77757                          VXSC*                                          
056135,000258: 23,3400           75025                                   STARAD     +12D,2                     
056136,000259: 23,3401           30031                          STOVL*   24D                                   #  K=(VA)(VB1)   J=(VA)(VB2)   J=(VA)(VB3)
056137,000260: 23,3402           00015                                   12D,1                                 
056138,000261: 
056139,000262: 23,3403           53357                          VXSC*    VAD                                   
056140,000263: 23,3404           75017                                   STARAD     +18D,2                     #  L=(WA)(WB1)   J=(WA)(WB2)   J=(WA)(WB3)
056141,000264: 23,3405           76455                          VAD      VSL1                                  
056142,000265: 23,3406           00031                                   24D                                   
056143,000266: 23,3407           53520                          XCHX,1   UNIT                                  
056144,000267: 23,3410           00036                                   30D                                   
056145,000268: 23,3411           06736                          STORE    XDC        +18D,1                     #  XDC = L+J+K   YDC = L+J+K   ZDC = L+J+K
056146,000269: 
056147,000270: 23,3412           77700                          TIX,1                                          
056148,000271: 23,3413           47414                                   AXISGEN3                              
056149,000272: 
056150,000273: 23,3414           77704        AXISGEN3          TIX,2                                          
056151,000274: 23,3415           47371                                   AXISGEN2                              
056152,000275: 
056153,000276: 23,3416           77775                          VLOAD                                          
056154,000277: 23,3417           02714                                   XDC                                   
056155,000278: 23,3420           26736                          STOVL    STARAD                                
056156,000279: 23,3421           02722                                   YDC                                   
056157,000280: 23,3422           26744                          STOVL    STARAD     +6                         
056158,000281: 23,3423           02730                                   ZDC                                   
056159,000282: 23,3424           02752                          STORE    STARAD     +12D                       
056160,000283: 
056161,000284: 23,3425           77616                          RVQ                                            
056162,000285: 
056163,000286:                                                                                                 # # Page 1327
056164,000287: 23,3426           05520 26075  QTSN45            2DEC     .1768                                 
056165,000288: 23,3430           05252 25253  .166...           2DEC     .1666666667                            
056166,000289: 
056167,000290:                                                                                                 # # Page 1328

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