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

062250,000002:                                                                                                 #  Copyright:    Public domain.
062251,000003:                                                                                                 #  Filename:      RTB_OP_CODES.agc
062252,000004:                                                                                                 #  Purpose:      Part of the source code for Colossus build 237.
062253,000005:                                                                                                 #                This is for the Command Module's (CM) Apollo Guidance
062254,000006:                                                                                                 #                Computer (AGC), we believe for Apollo 8.
062255,000007:                                                                                                 #  Assembler:    yaYUL
062256,000008:                                                                                                 #  Contact:      Jim Lawton <jim DOT lawton AT gmail DOT com>
062257,000009:                                                                                                 #  Website:      www.ibiblio.org/apollo/index.html
062258,000010:                                                                                                 #  Page scans:   www.ibiblio.org/apollo/ScansForConversion/Colossus237/
062259,000011:                                                                                                 #  Mod history:  2011-04-17 JL    Adapted from corresponding Colossus 249 file.
062260,000012: 
062261,000013:                                                                                                 # # Page 1472
062262,000014: 22,3505                                          BANK     22                                    
062263,000015: 22,2000                                          SETLOC   RTBCODES                              
062264,000016: 22,2000                                          BANK                                           
062265,000017: 
062266,000018: 22,3505  0002713                                 EBANK=   XNB                                   
062267,000019: 22,3505                                          COUNT*   $$/RTB                                
062268,000020: 
062269,000021:                                                                                                 #           LOAD TIME2, TIME1 INTO MPAC:
062270,000022: 
062271,000023: 22,3505           00006        LOADTIME          EXTEND                                         
062272,000024: 22,3506           30025                          DCA      TIME2                                 
062273,000025: 22,3507           16024                          TCF      SLOAD2                                
062274,000026: 
062275,000027:                                                                                                 #           CONVERT THE SINGLE PRECISION 2'S COMPLEMENT NUMBER ARRIVING IN MPAC (SCALED IN HALF-REVOLUTIONS) TO A
062276,000028:                                                                                                 #  DP 1'S COMPLEMENT NUMBER SCALED IN REVOLUTIONS.
062277,000029: 
062278,000030: 22,3510           10154        CDULOGIC          CCS      MPAC                                  
062279,000031: 22,3511           34714                          CAF      ZERO                                  
062280,000032: 22,3512           13515                          TCF      +3                                    
062281,000033: 22,3513           13514                          NOOP                                           
062282,000034: 22,3514           44675                          CS       HALF                                  
062283,000035: 
062284,000036: 22,3515           54155                          TS       MPAC       +1                         
062285,000037: 22,3516           34714                          CAF      ZERO                                  
062286,000038: 22,3517           56154                          XCH      MPAC                                  
062287,000039: 22,3520           00006                          EXTEND                                         
062288,000040: 22,3521           74675                          MP       HALF                                  
062289,000041: 22,3522           20155                          DAS      MPAC                                  
062290,000042: 22,3523           16030                          TCF      DANZIG                                #  MODE IS ALREADY AT DOUBLE-PRECISION
062291,000043: 
062292,000044:                                                                                                 #           READ THE PIPS INTO MPAC WITHOUT CHANGING THEM:
062293,000045: 
062294,000046: 22,3524           00004        READPIPS          INHINT                                         
062295,000047: 22,3525           30037                          CA       PIPAX                                 
062296,000048: 22,3526           54154                          TS       MPAC                                  
062297,000049: 22,3527           30040                          CA       PIPAY                                 
062298,000050: 22,3530           54157                          TS       MPAC       +3                         
062299,000051: 22,3531           30041                          CA       PIPAZ                                 
062300,000052: 22,3532           00003                          RELINT                                         
062301,000053: 22,3533           54161                          TS       MPAC       +5                         
062302,000054: 
062303,000055: 22,3534           34714                          CAF      ZERO                                  
062304,000056: 22,3535           54155                          TS       MPAC       +1                         
062305,000057: 22,3536           54160                          TS       MPAC       +4                         
062306,000058: 22,3537           54162                          TS       MPAC       +6                         
062307,000059: 
062308,000060: 22,3540           16470        VECMODE           TCF      VMODE                                 
062309,000061:                                                                                                 #           FORCE TP SIGN AGREEMENT IN MPAC:
062310,000062: 
062311,000063: 22,3541           07226        SGNAGREE          TC       TPAGREE                               
062312,000064:                                                                                                 # # Page 1473
062313,000065: 22,3542           16030                          TCF      DANZIG                                
062314,000066: 
062315,000067:                                                                                                 #           CONVERT THE DP 1'S COMPLEMENT ANGLE SCALED IN REVOLUTIONS TO A SINGLE PRECISION 2'S COMPLEMENT ANGLE
062316,000068:                                                                                                 #  SCALED IN HALF-REVOLUTIONS.
062317,000069: 
062318,000070: 22,3543           03573        1STO2S            TC       1TO2SUB                               
062319,000071: 22,3544           34714                          CAF      ZERO                                  
062320,000072: 22,3545           54155                          TS       MPAC       +1                         
062321,000073: 22,3546           16027                          TCF      NEWMODE                               
062322,000074: 
062323,000075:                                                                                                 #           DO 1STO2S ON A VECTOR OF ANGLES:
062324,000076: 
062325,000077: 22,3547           03573        V1STO2S           TC       1TO2SUB                               #  ANSWER ARRIVES IN A AND MPAC.
062326,000078: 
062327,000079: 22,3550           52162                          DXCH     MPAC       +5                         
062328,000080: 22,3551           52155                          DXCH     MPAC                                  
062329,000081: 22,3552           03573                          TC       1TO2SUB                               
062330,000082: 22,3553           54156                          TS       MPAC       +2                         
062331,000083: 
062332,000084: 22,3554           52160                          DXCH     MPAC       +3                         
062333,000085: 22,3555           52155                          DXCH     MPAC                                  
062334,000086: 22,3556           03573                          TC       1TO2SUB                               
062335,000087: 22,3557           54155                          TS       MPAC       +1                         
062336,000088: 
062337,000089: 22,3560           30161                          CA       MPAC       +5                         
062338,000090: 22,3561           54154                          TS       MPAC                                  
062339,000091: 
062340,000092: 22,3562           34712        TPMODE            CAF      ONE                                   #  MODE IS TP.
062341,000093: 22,3563           16027                          TCF      NEWMODE                               
062342,000094: 
062343,000095:                                                                                                 #           V1STO2S FOR 2 COMPONENT VECTOR. USED BY RR.
062344,000096: 
062345,000097: 22,3564           03573        2V1STO2S          TC       1TO2SUB                               
062346,000098: 22,3565           52160                          DXCH     MPAC       +3                         
062347,000099: 22,3566           52155                          DXCH     MPAC                                  
062348,000100: 22,3567           03573                          TC       1TO2SUB                               
062349,000101: 22,3570           54001                          TS       L                                     
062350,000102: 22,3571           30157                          CA       MPAC       +3                         
062351,000103: 22,3572           16024                          TCF      SLOAD2                                
062352,000104: 
062353,000105:                                                                                                 #           SUBROUTINE TO DO DOUBLING AND 1'S TO 2'S CONVERSION:
062354,000106: 
062355,000107: 22,3573           52155        1TO2SUB           DXCH     MPAC                                  #  FINAL MPAC +1 UNSPECIFIED.
062356,000108: 22,3574           20001                          DDOUBL                                         
062357,000109: 22,3575           10000                          CCS      A                                     
062358,000110: 22,3576           64712                          AD       ONE                                   
062359,000111: 22,3577           13601                          TCF      +2                                    
062360,000112: 22,3600           40000                          COM                                            #  THIS WAS REVERSE OF MSU.
062361,000113: 
062362,000114: 22,3601           54154                          TS       MPAC                                  #  AND SKIP ON OVERFLOW.
062363,000115:                                                                                                 # # Page 1474
062364,000116: 22,3602           00002                          TC       Q                                     
062365,000117: 
062366,000118: 22,3603           50000                          INDEX    A                                     #  OVERFLOW UNCORRECT AND IN MSU.
062367,000119: 22,3604           34673                          CAF      LIMITS                                
062368,000120: 22,3605           26154                          ADS      MPAC                                  
062369,000121: 22,3606           00002                          TC       Q                                     
062370,000122: 
062371,000123:                                                                                                 # # Page 1475
062372,000124:                                                                                                 #           SUBROUTINE TO INCREMENT CDUS
062373,000125: 22,3607           33622        INCRCDUS          CAF      LOCTHETA                              
062374,000126: 22,3610           54130                          TS       BUF                                   #  PLACE ADRES(THETA) IN BUF.
062375,000127: 22,3611           30154                          CAE      MPAC                                  #  INCREMENT IN 1S COMPL.
062376,000128: 22,3612           03623                          TC       CDUINC                                
062377,000129: 
062378,000130: 22,3613           24130                          INCR     BUF                                   
062379,000131: 22,3614           30157                          CAE      MPAC       +3                         
062380,000132: 22,3615           03623                          TC       CDUINC                                
062381,000133: 
062382,000134: 22,3616           24130                          INCR     BUF                                   
062383,000135: 22,3617           30161                          CAE      MPAC       +5                         
062384,000136: 22,3620           03623                          TC       CDUINC                                
062385,000137: 
062386,000138: 22,3621           13540                          TCF      VECMODE                               
062387,000139: 
062388,000140: 22,3622           01155        LOCTHETA          ADRES    THETAD                                
062389,000141: 
062390,000142:                                                                                                 #           THE FOLLOWING ROUTINE INCREMENTS IN 2S COMPLEMENT THE REGISTER WHOSE ADDRESS IS IN BUF BY THE 1S COMPL.
062391,000143:                                                                                                 #  QUANTITY FOUND IN TEM2. THIS MAY BE USED TO INCREMENT DESIRED IMU AND OPTICS CDU ANGLES OR ANY OTHER 2S COMPL.
062392,000144:                                                                                                 #  (+0 UNEQUAL TO -0) QUANTITY. MAY BE CALLED BY BANKCALL/SWCALL.
062393,000145: 
062394,000146: 22,3623           54142        CDUINC            TS       TEM2                                  #  1S COMPL.QUANT. ARRIVES IN ACC. STORE IT
062395,000147: 22,3624           50130                          INDEX    BUF                                   
062396,000148: 22,3625           10000                          CCS      0                                     #  CHANGE 2S COMPLE. ANGLE(IN BUF) INTO 1S
062397,000149: 22,3626           64712                          AD       ONE                                   
062398,000150: 22,3627           13633                          TCF      +4                                    
062399,000151: 22,3630           64712                          AD       ONE                                   
062400,000152: 22,3631           64712                          AD       ONE                                   #  OVEFLOW HERE IF 2S COMPL. IS 180 DEG.
062401,000153: 22,3632           40000                          COM                                            
062402,000154: 
062403,000155: 22,3633           60142                          AD       TEM2                                  #  SULT MOVES FROM 2ND TO 3D QUAD.(OR BACK)
062404,000156: 22,3634           10000                          CCS      A                                     #  BACK TO 2S COMPL.
062405,000157: 22,3635           64712                          AD       ONE                                   
062406,000158: 22,3636           13640                          TCF      +2                                    
062407,000159: 22,3637           40000                          COM                                            
062408,000160: 22,3640           54142                          TS       TEM2                                  #  STORE 14BIT QUANTITY WITH PRESENT SIGN
062409,000161: 22,3641           13645                          TCF      +4                                    
062410,000162: 22,3642           50000                          INDEX    A                                     #   SIGN.
062411,000163: 22,3643           34673                          CAF      LIMITS                                #  FIX IT,BY ADDING IN 37777 OR 40000
062412,000164: 22,3644           60142                          AD       TEM2                                  
062413,000165: 
062414,000166: 22,3645           50130                          INDEX    BUF                                   
062415,000167: 22,3646           54000                          TS       0                                     #  STORE NEW ANGLE IN 2S COMPLEMENT.
062416,000168: 22,3647           00002                          TC       Q                                     
062417,000169: 
062418,000170:                                                                                                 # # Page 1476
062419,000171:                                                                                                 #           RTB TO TORQUE GYROS, EXCEPT FOR THE CALL TO IMUSTALL. ECADR OF COMMANDS ARRIVES IN X1.
062420,000172: 
062421,000173: 22,3650           50120        PULSEIMU          INDEX    FIXLOC                                #  ADDRESS OF GYRO COMMANDS SHOULD BE IN X1
062422,000174: 22,3651           30046                          CA       X1                                    
062423,000175: 22,3652           04555                          TC       BANKCALL                              
062424,000176: 22,3653           17125                          CADR     IMUPULSE                              
062425,000177: 22,3654           16030                          TCF      DANZIG                                
062426,000178: 
062427,000179:                                                                                                 # # Page 1477
062428,000180:                                                                                                 #  EACH ROUTINE TAKES A 3X3 MATRIX STORED IN DOUBLE PRECISION IN A FIXED AREA OF ERASABLE MEMORY AND REPLACES IT
062429,000181:                                                                                                 #  WITH THE TRANSPOSE MATRIX. TRANSP1 USES LOCATIONS XNB+0,+1 THROUGH XNB+16D, 17D AND TRANSP2 USES LOCATIONS
062430,000182:                                                                                                 #  XNB1+0,+1 THROUGH XNB1+16D, 17D. EACH MATRIX IS STORED BY ROWS.
062431,000183: 
062432,000184: 22,3655           02713        XNBEB             ECADR    XNB                                   
062433,000185: 22,3656           02554        XNB1EB            ECADR    XNB1                                  
062434,000186: 
062435,000187: 22,3657  0002713                                 EBANK=   XNB                                   
062436,000188: 
062437,000189: 22,3657           33655        TRANSP1           CAF      XNBEB                                 
062438,000190: 22,3660           54003                          TS       EBANK                                 
062439,000191: 22,3661           53716                          DXCH     XNB        +2                         
062440,000192: 22,3662           53722                          DXCH     XNB        +6                         
062441,000193: 22,3663           53716                          DXCH     XNB        +2                         
062442,000194: 
062443,000195: 22,3664           53720                          DXCH     XNB        +4                         
062444,000196: 22,3665           53730                          DXCH     XNB        +12D                       
062445,000197: 22,3666           53720                          DXCH     XNB        +4                         
062446,000198: 
062447,000199: 22,3667           53726                          DXCH     XNB        +10D                       
062448,000200: 22,3670           53732                          DXCH     XNB        +14D                       
062449,000201: 22,3671           53726                          DXCH     XNB        +10D                       
062450,000202: 22,3672           16030                          TCF      DANZIG                                
062451,000203: 
062452,000204: 
062453,000205: 22,3673  0002554                                 EBANK=   XNB1                                  
062454,000206: 
062455,000207: 22,3673           33656        TRANSP2           CAF      XNB1EB                                
062456,000208: 22,3674           54003                          TS       EBANK                                 
062457,000209: 22,3675           53557                          DXCH     XNB1       +2                         
062458,000210: 22,3676           53563                          DXCH     XNB1       +6                         
062459,000211: 22,3677           53557                          DXCH     XNB1       +2                         
062460,000212: 
062461,000213: 22,3700           53561                          DXCH     XNB1       +4                         
062462,000214: 22,3701           53571                          DXCH     XNB1       +12D                       
062463,000215: 22,3702           53561                          DXCH     XNB1       +4                         
062464,000216: 
062465,000217: 22,3703           53567                          DXCH     XNB1       +10D                       
062466,000218: 22,3704           53573                          DXCH     XNB1       +14D                       
062467,000219: 22,3705           53567                          DXCH     XNB1       +10D                       
062468,000220: 22,3706           16030                          TCF      DANZIG                                
062469,000221: 
062470,000222:                                                                                                 # # Page 1478
062471,000223:                                                                                                 #           THE SUBROUTINE  SIGNMPAC  SETS C(MPAC, MPAC +1) TO SIGN(MPAC).
062472,000224:                                                                                                 #  FOR THIS, ONLY THE CONTENTS OF MPAC ARE EXAMINED.    ALSO +0 YIELDS POSMAX AND -0 YIELDS NEGMAX.
062473,000225: 
062474,000226:                                                                                                 #  ENTRY MAY BE BY EITHER OF THE FOLLOWING:
062475,000227: 
062476,000228:                                                                                                 #  1.       LIMIT THE SIZE OF MPAC ON INTERPRETIVE OVERFLOW:
062477,000229:                                                                                                 #  ENTRY:          BOVB
062478,000230:                                                                                                 #                         SIGNMPAC
062479,000231: 
062480,000232:                                                                                                 #  2.       GENERATE IN MPAC THE SIGNUM FUNCTION OF MPAC:
062481,000233:                                                                                                 #  ENTRY:          RTB
062482,000234:                                                                                                 #                         SIGNMPAC
062483,000235: 
062484,000236:                                                                                                 #  IN EITHER CASE, RETURN IS TO  THE NEXT INTERPRETIVE INSTRUCTION IN THE CALLING SEQUENCE.
062485,000237: 
062486,000238: 22,3707           00006        SIGNMPAC          EXTEND                                         
062487,000239: 22,3710           34672                          DCA      DPOSMAX                               
062488,000240: 22,3711           52155                          DXCH     MPAC                                  
062489,000241: 22,3712           10000                          CCS      A                                     
062490,000242: 22,3713           34714        DPMODE            CAF      ZERO                                  #  SETS MPAC +2 TO ZERO IN THE PROCESS
062491,000243: 22,3714           16026                          TCF      SLOAD2     +2                         
062492,000244: 22,3715           13716                          TCF      +1                                    
062493,000245: 22,3716           00006                          EXTEND                                         
062494,000246: 22,3717           44672                          DCS      DPOSMAX                               
062495,000247: 22,3720           16024                          TCF      SLOAD2                                
062496,000248: 
062497,000249:                                                                                                 #      RTB OP CODE NORMUNIT IS LIKE INTERPRETIVE INSTRUCTION UNIT, EXCEPT THAT IT CAN BE DEPENDED ON NOT TO BLOW
062498,000250:                                                                                                 #  UP WHEN THE VECTOR BEING UNITIZED IS VERY SAMLL -- IT WILL BLOW UP WHEN ALL COMPONENTS ARE ZERO.   IF NORMUNIT
062499,000251:                                                                                                 #  IS USED AND THE UPPER ORDER HALVES OF ALL COMPONENTS ARE ZERO, THE MAGNITUDE RETURNED IN 36D WILL BE TOO LARGE
062500,000252:                                                                                                 #  BY A FACTOR OF 2(13) AND THE SQUARED MAGNITUDE RETURNED AT 34D WILL BE TOO BIG BY A FACTOR OF 2(26).
062501,000253: 
062502,000254: 22,3721           34712        NORMUNX1          CAF      ONE                                   
062503,000255: 22,3722           13724                          TCF      NORMUNIT   +1                         
062504,000256: 22,3723           34714        NORMUNIT          CAF      ZERO                                  
062505,000257: 22,3724           60120                          AD       FIXLOC                                
062506,000258: 22,3725           54156                          TS       MPAC       +2                         
062507,000259: 22,3726           04555                          TC       BANKCALL                              #  GET SIGN AGREEMENT IN ALL COMPONENTS
062508,000260: 22,3727           01010                          CADR     VECAGREE                              
062509,000261: 22,3730           10154                          CCS      MPAC                                  
062510,000262: 22,3731           13765                          TCF      NOSHIFT                               
062511,000263: 22,3732           13734                          TCF      +2                                    
062512,000264: 22,3733           13765                          TCF      NOSHIFT                               
062513,000265: 22,3734           10157                          CCS      MPAC       +3                         
062514,000266: 22,3735           13765                          TCF      NOSHIFT                               
062515,000267: 22,3736           13740                          TCF      +2                                    
062516,000268: 22,3737           13765                          TCF      NOSHIFT                               
062517,000269: 22,3740           10161                          CCS      MPAC       +5                         
062518,000270: 22,3741           13765                          TCF      NOSHIFT                               
062519,000271: 22,3742           13744                          TCF      +2                                    
062520,000272: 22,3743           13765                          TCF      NOSHIFT                               
062521,000273:                                                                                                 # # Page 1479
062522,000274: 22,3744           30155                          CA       MPAC       +1                         #  SHIFT ALL COMPONENTS LEFT 13
062523,000275: 22,3745           00006                          EXTEND                                         
062524,000276: 22,3746           74675                          MP       BIT14                                 
062525,000277: 22,3747           20155                          DAS      MPAC                                  #  DAS GAINS A LITTLE ACCURACY
062526,000278: 22,3750           30160                          CA       MPAC       +4                         
062527,000279: 22,3751           00006                          EXTEND                                         
062528,000280: 22,3752           74675                          MP       BIT14                                 
062529,000281: 22,3753           20160                          DAS      MPAC       +3                         
062530,000282: 22,3754           30162                          CA       MPAC       +6                         
062531,000283: 22,3755           00006                          EXTEND                                         
062532,000284: 22,3756           74675                          MP       BIT14                                 
062533,000285: 22,3757           20162                          DAS      MPAC       +5                         
062534,000286: 22,3760           34720                          CAF      THIRTEEN                              
062535,000287: 22,3761           50156                          INDEX    MPAC       +2                         
062536,000288: 22,3762           54045                          TS       37D                                   
062537,000289: 22,3763           04574        OFFTUNIT          TC       POSTJUMP                              
062538,000290: 22,3764           01024                          CADR     UNIT       +1                         #  SKIP THE "TC VECAGREE" DONE AT UNIT
062539,000291: 
062540,000292: 
062541,000293: 22,3765           34714        NOSHIFT           CAF      ZERO                                  
062542,000294: 22,3766           13761                          TCF      OFFTUNIT   -2                         
062543,000295: 
062544,000296: 
062545,000297:                                                                                                 #   RTB  VECSGNAG   ...FORCES SIGN AGREEMENT OF VECTOR IN MPAC.
062546,000298: 
062547,000299: 22,3767           04555        VECSGNAG          TC       BANKCALL                              
062548,000300: 22,3770           01010                          CADR     VECAGREE                              
062549,000301: 22,3771           06030                          TC       DANZIG                                

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