Source Code

These source-code files were derived from scans of the Colossus 237 (Apollo 8 Command Module) program listing from the private collection of original AGC developer Fred Martin. Scanning was by Ron Burkey. Pre-existing Colossus 249 (Apollo 9 CM) source files were used as a template, and changes between Colossus 249 and Colossus 237 were manually transcribed by a team of volunteers. 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
Note that the date is the date of the printout, not the date of the program revision.

040900,000002:                                                                                                  ## Copyright:   Public domain.
040901,000003:                                                                                                  ## Filename:    TVCSTROKETEST.agc
040902,000004:                                                                                                  ## Purpose:     Part of the source code for Colossus build 237.
040903,000005:                                                                                                  ##              This is for the Command Module's (CM) Apollo Guidance
040904,000006:                                                                                                  ##              Computer (AGC), for Apollo 8.
040905,000007:                                                                                                  ## Assembler:   yaYUL
040906,000008:                                                                                                  ## Contact:     Jim Lawton <jim DOT lawton AT gmail DOT com>
040907,000009:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
040908,000010:                                                                                                  ## Page Scans:  www.ibiblio.org/apollo/ScansForConversion/Colossus237/
040909,000011:                                                                                                  ## Mod history: 2011-03-12 JL   Adapted from corresponding Colossus 249 file.
040910,000012:                                                                                                  ##              2017-01-01 RSB  Proofed comment text using octopus/ProoferComments,
040911,000013:                                                                                                  ##                              and fixed errors found.
040912,000014: 

Page 940

040914,000016:                                                                                                  #  NAME     STROKE TEST PACKAGE   (INCLUDING INITIALIZATION PACKAGE)
040915,000017:                                                                                                  #  ORIGINAL CODING BY OLSSON       LOG SECTION....STROKE TEST PACKAGE
040916,000018:                                                                                                  #  MOD BY ENGEL                    DATE....21 MARCH, 1967
040917,000019: 
040918,000020:                                                                                                  #  FUNCTIONAL DESCRIPTION....
040919,000021:                                                                                                  #       STROKE TEST PACKAGE GENERATES A WAVEFORM DESIGNED TO EXCITE BENDING
040920,000022:                                                                                                  #       STRKTSTI (STROKE TEST INITIALIZATION) IS CALLED AS A JOB BY VB68.
040921,000023:                                                                                                  #                IT INITIALIZES ALL ERASABLES REQD FOR A STROKE TEST, AND
040922,000024:                                                                                                  #                THEN TESTS FOR AN 80MS DAP. IF 80MS IT SETS STROKER = ESTROKER
040923,000025:                                                                                                  #                FOR AN IMMEDIATE STROKE TEST, OTHERWISE IT MERELY ENABLES
040924,000026:                                                                                                  #                A STROKE TEST BY SETTING STROKER TO -0. THE STROKE TEST
040925,000027:                                                                                                  #                THEN AWAITS SWITCHOVER TO THE 80MS DAP WHEREUPON IT IS
040926,000028:                                                                                                  #                ENABLED AFTER AN ADDITIONAL 4 SECOND DELAY TO AVOID
040927,000029:                                                                                                  #                THE SWITCHOVER TRANSIENTS (SEE STRKCALL, STRKUP IN
040928,000030:                                                                                                  #                TVCEXECUTIVE)
040929,000031:                                                                                                  #       HACK (STROKE TEST) GENERATES THE WAVEFORM BY DUMPING PULSE BURSTS
040930,000032:                                                                                                  #                OF PROPER SIGN AND IN PROPER SEQUENCE DIRECTLY INTO
040931,000033:                                                                                                  #                TVCPITCH, WORKING IN CONJUNCITON WITH BOTH PITCH AND YAW
040932,000034:                                                                                                  #                TVC DAPS, WITH INTERMEDIATE WAITLIST CALLS. NOTE, HOWEVER
040933,000035:                                                                                                  #                THAT THE STROKE TEST IS PERFORMED ONLY IN THE PITCH AXIS.
040934,000036:                                                                                                  #                AN EXAMPLE WAVEFORM IS GIVEN BELOW, TO DEMONSTRATE STROKE-
040935,000037:                                                                                                  #                TEST PARAMETER SELECTION
040936,000038:                                                                                                  #       RESTARTS CAUSE TEST TO BE TERMINATED. ANOTHER V68 REQD IF TEST
040937,000039:                                                                                                  #                IS TO BE RE-RUN.
040938,000040:                                                                                                  #       PULSE BURST SIZE IS PAD-LOADED (ESTROKER) SO THAT AMPLITUDE OF
040939,000041:                                                                                                  #                WAVEFORM CAN BE CHANGED.  THERE ARE TEN PULSE BURSTS IN
040940,000042:                                                                                                  #                THE HALF-AMPLITUDE OF THE FIRST FREQUENCY SET IN THE
040941,000043:                                                                                                  #                STANDARD WAVEFORM.  AMPLITUDE IS 10(ESTROKER)(1/42.15),
040942,000044:                                                                                                  #                NOMINALLY 50/42.15  =  1.185 DEG
040943,000045:                                                                                                  #  CALLING SEQUENCE....
040944,000046:                                                                                                  #       EXTENDED VERB 68 SETS UP STRKTSTI JOB
040945,000047:                                                                                                  #       PITCH AND YAW TVCDAPS, FINDING STROKER NON-ZERO, DO A  ..TC HACK..
040946,000048:                                                                                                  #       AN INTERNALLY-GENERATED WAITLIST CALL ENTERS AT  ..HACKWLST..
040947,000049:                                                                                                  #  NORMAL EXIT MODES....
040948,000050:                                                                                                  #       TC BUNKER  (..Q.. IF ENTRY FROM DAP, ..TCTSKOVR.. IF FROM WAITLIST)LIST
040949,000051:                                                                                                  #  SUBROUTINES CALLED....
040950,000052:                                                                                                  #       WAITLIST
040951,000053:                                                                                                  #  ALARM OR ABORT EXIT MODES....
040952,000054:                                                                                                  #       NONE
040953,000055:                                                                                                  #  ERASABLE INITIALIZATION REQUIRED....
040954,000056:                                                                                                  #       ESTROKER (PAD-LOAD)
040955,000057:                                                                                                  #       STROKER,  CADDY,  REVS,  CARD,  N
040956,000058:                                                                                                  #  OUTPUT....
040957,000059:                                                                                                  #       STRKTSTI...INITIALIZATION FOR STROKE TEST
040958,000060:                                                                                                  #       HACK, HACKWLST...PULSE BURSTS INTO TVCPITCH VIA..ADS..
040959,000061:                                                                                                  #                        RESETS STROKER = +0 WHEN TEST COMPLETED
040960,000062:                                                                                                  #  DEBRIS....
040961,000063:                                                                                                  #        N = CADDY = +0, CARD = -0, REVS = -1
040962,000064:                                                                                                  #        BUNKER
040963,000065: 

Page 941

040965,000067:                                                                                                  #  EXAMPLE STROKE TEST WAVE FORM, DEMONSTRATING PARAMETER SELECTION
040966,000068: 
040967,000069: 
040968,000070:                                                                                                  #  NOTE....THIS IS NOT THE OFFICIAL WAVEFORM....
040969,000071: 
040970,000072: 
040971,000073:                                                                                                  #             **              **
040972,000074:                                                                                                  #             **              **
040973,000075:                                                                                                  #             **              **           EXAMPLE WAVEFORM (EACH * REPRESENTS
040974,000076:                                                                                                  #            *  *            *  *               85.41 ARCSEC OF ACTUATOR CMND)
040975,000077:                                                                                                  #            *  *            *  *
040976,000078:                                                                                                  #            *  *            *  *
040977,000079:                                                                                                  #           *    *          *    *          **      **      **      **      **
040978,000080:                                                                                                  #           *    *          *    *          **      **      **      **      **
040979,000081:                                                                                                  #           *    *          *    *          **      **      **      **      **
040980,000082:                                                                                                  #          *      *        *      *        *  *    *  *    *  *    *  *    *  *    **  **  **  **  **
040981,000083:                                                                                                  #          *      *        *      *        *  *    *  *    *  *    *  *    *  *    **  **  **  **  **
040982,000084:                                                                                                  #          *      *        *      *        *  *    *  *    *  *    *  *    *  *    **  **  **  **  **
040983,000085:                                                                                                  #      -----------------------------------------------------------------------------------------------------
040984,000086:                                                                                                  #                  *      *        *      *    *  *    *  *    *  *    *  *    *  *  **  **  **  **  **
040985,000087:                                                                                                  #                  *      *        *      *    *  *    *  *    *  *    *  *    *  *  **  **  **  **  **
040986,000088:                                                                                                  #                  *      *        *      *    *  *    *  *    *  *    *  *    *  *  **  **  **  **  **
040987,000089:                                                                                                  #                   *    *          *    *      **      **      **      **      **
040988,000090:                                                                                                  #                   *    *          *    *      **      **      **      **      **
040989,000091:                                                                                                  #                   *    *          *    *      **      **      **      **      **
040990,000092:                                                                                                  #                    *  *            *  *
040991,000093:                                                                                                  #                    *  *            *  *
040992,000094:                                                                                                  #                    *  *            *  *
040993,000095:                                                                                                  #                     **              **
040994,000096:                                                                                                  #                     **              **
040995,000097:                                                                                                  #                     **              **
040996,000098: 
040997,000099: 
040998,000100:                                                                                                  #  FOR THIS (UNOFFICIAL, EXAMPLE) WAVEFORM, THE REQUIRED PARAMETERS ARE AS FOLLOWS....
040999,000101: 
041000,000102:                                                                                                  #       FCARD    = +3    (NUMBER OF SETS)
041001,000103:                                                                                                  #       ESTROKER = +3    (PULSE BURST SIZE, SC.AT 85.41 ARCSEC/BIT)
041002,000104: 
041003,000105:                                                                                                  #       SET1..
041004,000106:                                                                                                  #           FREVS  = +3  (NUMBER REVERSALS MINUS 1)
041005,000107:                                                                                                  #           FCADDY = +4  (NUMBER OF PULSE BURSTS IN 1/2 AMPLITUDE)
041006,000108:                                                                                                  #       SET2..
041007,000109:                                                                                                  #           FCARD1 = +9  (NUMBER REVERSALS MINUS 1)
041008,000110:                                                                                                  #           FCARD4 = +2  (NUMBER OF PULSE BURSTS IN 1/2 AMPLITUDE)
041009,000111:                                                                                                  #       SET3..
041010,000112:                                                                                                  #           FCARD2 = +9  (NUMBER REVERSALS MINUS 1)
041011,000113:                                                                                                  #           FCARD5 = +1  (NUMBER OF PULSE BURSTS IN 1/2 AMPLITUDE)
041012,000114:                                                                                                  #       SET4..
041013,000115:                                                                                                  #           FCARD3 = +0  (NUMBER REVERSALS MINUS 1)
041014,000116:                                                                                                  #           FCARD6 = +0  (NUMBER OF PULSE BURSTS IN 1/2 AMPLITUDE)
041015,000117: 

Page 942

041017,000119:                                                                                                  #  STROKE TEST INITIALIZATION PACKAGE  (AS A JOB, FROM VERB 68)
041018,000120: 
041019,000121: 17,2215                                           BANK     17                                    
041020,000122: 20,2000                                           SETLOC   DAPS2                                 
041021,000123: 20,2000                                           BANK                                           
041022,000124: 
041023,000125: 20,3431                                           COUNT*   $$/STRK                               
041024,000126: 20,3431  E6,1665                                  EBANK=   CADDY                                 
041025,000127: 
041026,000128: 20,3431           03450        STRKTSTI           TCR      TSTINIT                               #  STROKE TEST INITIALIZATION PKG  (CALLED
041027,000129:                                                                                                  #                                               AS A JOB BY VERB68)
041028,000130: 
041029,000131: 20,3432           00004        TVCDTCHK           INHINT                                         #  STROKE TEST PERMITTED ONLY WITH 80MS DAP
041030,000132: 20,3433           31635                           CAE      T5TVCDT                               #       CHECK CURRENT TIMING
041031,000133: 20,3434           54001                           TS       L                                     
041032,000134: 20,3435           37677                           CAF      OCT37774                              #       LOOK FOR 80MS (T5)
041033,000135: 20,3436           00006                           EXTEND                                         
041034,000136: 20,3437           06001                           RXOR     LCHAN                                 #  +0 IF 80MS
041035,000137: 20,3440           10000                           CCS      A                                     
041036,000138: 20,3441           13445                           TCF      +4                                    #       NOT 80MS
041037,000139: 
041038,000140: 20,3442           31412                           CAE      ESTROKER                              #       80MS. OK, SET STROKER FOR TEST
041039,000141: 20,3443           55614                           TS       STROKER                               
041040,000142: 20,3444           13447                           TCF      +3                                    
041041,000143: 
041042,000144: 20,3445           44714                           CS       ZERO                                  #       ENABLE, BUT DO NOT ACTIVATE STROKE
041043,000145: 20,3446           55614                           TS       STROKER                               #            TEST, AWAITING SWITCHOVER
041044,000146:                                                                                                  #                                                    TO MOD0R (MOD80)
041045,000147: 20,3447           15112                           TCF      ENDOFJOB                              
041046,000148: 
041047,000149: 
041048,000150: 20,3450           43460        TSTINIT            CS       FCADDY                                #  NORMAL ENTRY FROM STRKTSTI
041049,000151: 20,3451           55665                           TS       CADDY                                 
041050,000152: 20,3452           55666                           TS       N                                     #       NOTE SGN CHNG FCADDY(+) TO CADDY(-)
041051,000153: 
041052,000154: 20,3453           33461                           CAF      FREVS                                 
041053,000155: 20,3454           55670                           TS       REVS                                  
041054,000156: 
041055,000157: 20,3455           43462                           CS       FCARD                                 #       NOTE SGN CHNG FCARD(+) TO CARD(-)
041056,000158: 20,3456           55671                           TS       CARD                                  
041057,000159: 
041058,000160: 20,3457           00002                           TC       Q                                     #  RETURN TO STRKTSTI+1  (OR CHKSTRK+2OR+4)
041059,000161: 

Page 943

041061,000163:                                                                                                  #  THE OFFICIAL STROKE TEST WAVEFORM (3 JAN, 1967) CONSISTS OF FOUR STROKE SETS, AS FOLLOWS....
041062,000164: 
041063,000165:                                                                                                  #       SET 1...10 BURSTS IN 1/2 AMP,   4 REVERSALS
041064,000166:                                                                                                  #       SET 2... 6 BURSTS IN 1/2 AMP,   6 REVERSALS
041065,000167:                                                                                                  #       SET 3... 5 BURSTS IN 1/2 AMP,  10 REVERSALS
041066,000168:                                                                                                  #       SET 4... 4 BURSTS IN 1/2 AMP,  14 REVERSALS
041067,000169:                                                                                                  #  THE PULSE BURST SIZE (ESTROKER) IS PAD-LOADED (5 BITS AS OF 3JAN,1967)
041068,000170:                                                                                                  #  THE REMAINING WAVEFORM-GENERATING PARAMETERS ARE AS FOLLOWS....
041069,000171: 
041070,000172: 20,3460           00012        FCADDY             DEC      10         B-14                       #  NO. PULSE BURSTS IN 1/2 AMP, SET1..(+10)
041071,000173: 20,3461           00003        FREVS              DEC      3          B-14                       #  NO. REVERSALS MINUS 1, SET1........(  3)
041072,000174: 
041073,000175: 20,3462           00004        FCARD              DEC      4          B-14                       #  NO. STROKE SETS....................(+ 4)
041074,000176: 
041075,000177: 20,3463           00005        FCARD1             DEC      5          B-14                       #  NO. REVERSALS MINUS 1, SET2........(  5)
041076,000178: 
041077,000179: 20,3464           00011        FCARD2             DEC      9          B-14                       #                            3........(  9)
041078,000180: 20,3465           00015        FCARD3             DEC      13         B-14                       #                            4........( 13)
041079,000181: 
041080,000182: 20,3466           00006        FCARD4             DEC      6          B-14                       #  NO. PULSE BURSTS IN 1/2 AMP, SET2..(+ 6)
041081,000183: 20,3467           00005        FCARD5             DEC      5          B-14                       #                               SET3..(+ 5)
041082,000184: 20,3470           00004        FCARD6             DEC      4          B-14                       #                               SET4..(+ 4)
041083,000185: 
041084,000186: 20,3471     4711               20MS               =        BIT2                                  
041085,000187: 
041086,000188: 
041087,000189:                                                                                                  #  STROKE TEST PACKAGE PROPER....
041088,000190: 
041089,000191: 20,3471  E6,1667                                  EBANK=   BUNKER                                
041090,000192: 
041091,000193: 20,3471           00006        HACK               EXTEND                                         #  ENTRY (IN T5 RUPT) FROM TVCDAPS
041092,000194: 20,3472           23667                           QXCH     BUNKER                                #  SAVE Q FOR DAP RETURN
041093,000195: 
041094,000196: 20,3473           34711                           CAF      20MS                                  #  2DAPSX2(PASSES/DAP)X2(CS/PASS)=8CS=TVCDT
041095,000197: 20,3474           05140                           TC       WAITLIST                              
041096,000198: 20,3475  E6,1667                                  EBANK=   BUNKER                                
041097,000199: 20,3475           03500 40066                     2CADR    HACKWLST                              
041098,000200: 20,3477           13502                           TCF      +3                                    
041099,000201: 
041100,000202: 20,3500           34367        HACKWLST           CAF      TCTSKOVR                              #  ENTRY FROM WAITLIST
041101,000203: 20,3501           55667                           TS       BUNKER                                #  BUNKER IS TC TASKOVER
041102,000204: 
041103,000205: 20,3502           31614                           CA       STROKER                               #  STROKE
041104,000206: 20,3503           26054                           ADS      TVCPITCH                              
041105,000207: 
041106,000208: 20,3504           34700                           CAF      BIT11                                 #  RELEASE THE ERROR COUNTERS
041107,000209: 20,3505           00006                           EXTEND                                         
041108,000210: 20,3506           05014                           WOR      CHAN14                                
041109,000211: 20,3507           25665                           INCR     CADDY                                 #  COUNT DOWN THE NO. BURSTS, THIS SLOPE

Page 944

041111,000213: 20,3510           41665                           CS       CADDY                                 
041112,000214: 20,3511           00006                           EXTEND                                         
041113,000215: 20,3512           63514                           BZMF     +2                                    
041114,000216: 20,3513           01667                           TC       BUNKER                                #  EXIT, WHILE ON A SLOPE
041115,000217: 
041116,000218: 
041117,000219: 20,3514           11670                           CCS      REVS                                  
041118,000220: 20,3515           13535                           TCF      REVUP                                 #  POSITIVE REVS
041119,000221: 20,3516           13541                           TCF      REVUP      +4                         #  FINAL REVERSAL, THIS SET
041120,000222: 
041121,000223: 20,3517           25671                           INCR     CARD                                  #  NEGATIVE REVS SET LAST PASS, READY FOR
041122,000224: 20,3520           41671                           CS       CARD                                  #       THE NEXT SET. CHECK IF NO MORE SETS
041123,000225: 20,3521           00006                           EXTEND                                         
041124,000226: 20,3522           13533                           BZF      STROKILL                              #  ALL SETS COMPLETED
041125,000227: 
041126,000228: 20,3523           51671                           INDEX    CARD                                  
041127,000229: 20,3524           33466                           CAF      FCARD      +4                         #  PICK UP NO. REVERSALS (-), NEXT SET
041128,000230: 20,3525           55670                           TS       REVS                                  #  REINITIALIZE
041129,000231: 20,3526           51671                           INDEX    CARD                                  
041130,000232: 20,3527           43471                           CS       FCARD      +7                         #  PICK UP NO. BURSTS IN 1/2AMP, NEXT SET
041131,000233: 20,3530           55666                           TS       N                                     #  REINITIALIZE
041132,000234: 20,3531           55665                           TS       CADDY                                 
041133,000235: 20,3532           01667                           TC       BUNKER                                #  EXIT, AT END OF SET
041134,000236: 
041135,000237: 
041136,000238: 20,3533           55614        STROKILL           TS       STROKER                               #  RESET (TO +0) TO END TEST
041137,000239: 20,3534           01667                           TC       BUNKER                                #  EXIT, STROKE TEST FINIS
041138,000240: 
041139,000241: 
041140,000242: 20,3535           55670        REVUP              TS       REVS                                  #  ALL REVERSALS EXCEPT LAST OF SET
041141,000243: 20,3536           31666                           CA       N                                     
041142,000244: 20,3537           60000                           DOUBLE                                         #  2 X 1/2AMP
041143,000245: 20,3540           13544                           TCF      +4                                    
041144,000246: 
041145,000247: 20,3541           44712                 +4        CS       ONE                                   #  FINAL REVERSAL, THIS SET
041146,000248: 20,3542           55670                           TS       REVS                                  #  PREPARE TO BRANCH TO NEW BURST
041147,000249: 20,3543           31666                           CA       N                                     #  JUST RETURN TO ZERO, FINAL SLOPE OF SET
041148,000250: 20,3544           55665                           TS       CADDY                                 #  CADUP
041149,000251: 
041150,000252: 20,3545           41614                           CS       STROKER                               #  CHANGE SIGN OF SLOPE
041151,000253: 20,3546           55614                           TS       STROKER                               
041152,000254: 20,3547           01667                           TC       BUNKER                                #  EXIT AT A REVERSAL (SLOPE CHANGE)

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