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, 1968Note that the date is the date of the printout, not the date of the program revision. |
040914,000002: ## Copyright: Public domain.
040915,000003: ## Filename: TVCSTROKETEST.agc
040916,000004: ## Purpose: Part of the source code for Colossus build 237.
040917,000005: ## This is for the Command Module's (CM) Apollo Guidance
040918,000006: ## Computer (AGC), for Apollo 8.
040919,000007: ## Assembler: yaYUL
040920,000008: ## Contact: Jim Lawton <jim DOT lawton AT gmail DOT com>
040921,000009: ## Website: www.ibiblio.org/apollo/index.html
040922,000010: ## Page Scans: www.ibiblio.org/apollo/ScansForConversion/Colossus237/
040923,000011: ## Mod history: 2011-03-12 JL Adapted from corresponding Colossus 249 file.
040924,000012: ## 2017-01-01 RSB Proofed comment text using octopus/ProoferComments,
040925,000013: ## and fixed errors found.
040926,000014:
![]() |
Page 940 |
040928,000016: # NAME STROKE TEST PACKAGE (INCLUDING INITIALIZATION PACKAGE)
040929,000017: # ORIGINAL CODING BY OLSSON LOG SECTION....STROKE TEST PACKAGE
040930,000018: # MOD BY ENGEL DATE....21 MARCH, 1967
040931,000019:
040932,000020: # FUNCTIONAL DESCRIPTION....
040933,000021: # STROKE TEST PACKAGE GENERATES A WAVEFORM DESIGNED TO EXCITE BENDING
040934,000022: # STRKTSTI (STROKE TEST INITIALIZATION) IS CALLED AS A JOB BY VB68.
040935,000023: # IT INITIALIZES ALL ERASABLES REQD FOR A STROKE TEST, AND
040936,000024: # THEN TESTS FOR AN 80MS DAP. IF 80MS IT SETS STROKER = ESTROKER
040937,000025: # FOR AN IMMEDIATE STROKE TEST, OTHERWISE IT MERELY ENABLES
040938,000026: # A STROKE TEST BY SETTING STROKER TO -0. THE STROKE TEST
040939,000027: # THEN AWAITS SWITCHOVER TO THE 80MS DAP WHEREUPON IT IS
040940,000028: # ENABLED AFTER AN ADDITIONAL 4 SECOND DELAY TO AVOID
040941,000029: # THE SWITCHOVER TRANSIENTS (SEE STRKCALL, STRKUP IN
040942,000030: # TVCEXECUTIVE)
040943,000031: # HACK (STROKE TEST) GENERATES THE WAVEFORM BY DUMPING PULSE BURSTS
040944,000032: # OF PROPER SIGN AND IN PROPER SEQUENCE DIRECTLY INTO
040945,000033: # TVCPITCH, WORKING IN CONJUNCITON WITH BOTH PITCH AND YAW
040946,000034: # TVC DAPS, WITH INTERMEDIATE WAITLIST CALLS. NOTE, HOWEVER
040947,000035: # THAT THE STROKE TEST IS PERFORMED ONLY IN THE PITCH AXIS.
040948,000036: # AN EXAMPLE WAVEFORM IS GIVEN BELOW, TO DEMONSTRATE STROKE-
040949,000037: # TEST PARAMETER SELECTION
040950,000038: # RESTARTS CAUSE TEST TO BE TERMINATED. ANOTHER V68 REQD IF TEST
040951,000039: # IS TO BE RE-RUN.
040952,000040: # PULSE BURST SIZE IS PAD-LOADED (ESTROKER) SO THAT AMPLITUDE OF
040953,000041: # WAVEFORM CAN BE CHANGED. THERE ARE TEN PULSE BURSTS IN
040954,000042: # THE HALF-AMPLITUDE OF THE FIRST FREQUENCY SET IN THE
040955,000043: # STANDARD WAVEFORM. AMPLITUDE IS 10(ESTROKER)(1/42.15),
040956,000044: # NOMINALLY 50/42.15 = 1.185 DEG
040957,000045: # CALLING SEQUENCE....
040958,000046: # EXTENDED VERB 68 SETS UP STRKTSTI JOB
040959,000047: # PITCH AND YAW TVCDAPS, FINDING STROKER NON-ZERO, DO A ..TC HACK..
040960,000048: # AN INTERNALLY-GENERATED WAITLIST CALL ENTERS AT ..HACKWLST..
040961,000049: # NORMAL EXIT MODES....
040962,000050: # TC BUNKER (..Q.. IF ENTRY FROM DAP, ..TCTSKOVR.. IF FROM WAITLIST)LIST
040963,000051: # SUBROUTINES CALLED....
040964,000052: # WAITLIST
040965,000053: # ALARM OR ABORT EXIT MODES....
040966,000054: # NONE
040967,000055: # ERASABLE INITIALIZATION REQUIRED....
040968,000056: # ESTROKER (PAD-LOAD)
040969,000057: # STROKER, CADDY, REVS, CARD, N
040970,000058: # OUTPUT....
040971,000059: # STRKTSTI...INITIALIZATION FOR STROKE TEST
040972,000060: # HACK, HACKWLST...PULSE BURSTS INTO TVCPITCH VIA..ADS..
040973,000061: # RESETS STROKER = +0 WHEN TEST COMPLETED
040974,000062: # DEBRIS....
040975,000063: # N = CADDY = +0, CARD = -0, REVS = -1
040976,000064: # BUNKER
040977,000065:
![]() |
Page 941 |
040979,000067: # EXAMPLE STROKE TEST WAVE FORM, DEMONSTRATING PARAMETER SELECTION
040980,000068:
040981,000069:
040982,000070: # NOTE....THIS IS NOT THE OFFICIAL WAVEFORM....
040983,000071:
040984,000072:
040985,000073: # ** **
040986,000074: # ** **
040987,000075: # ** ** EXAMPLE WAVEFORM (EACH * REPRESENTS
040988,000076: # * * * * 85.41 ARCSEC OF ACTUATOR CMND)
040989,000077: # * * * *
040990,000078: # * * * *
040991,000079: # * * * * ** ** ** ** **
040992,000080: # * * * * ** ** ** ** **
040993,000081: # * * * * ** ** ** ** **
040994,000082: # * * * * * * * * * * * * * * ** ** ** ** **
040995,000083: # * * * * * * * * * * * * * * ** ** ** ** **
040996,000084: # * * * * * * * * * * * * * * ** ** ** ** **
040997,000085: # -----------------------------------------------------------------------------------------------------
040998,000086: # * * * * * * * * * * * * * * ** ** ** ** **
040999,000087: # * * * * * * * * * * * * * * ** ** ** ** **
041000,000088: # * * * * * * * * * * * * * * ** ** ** ** **
041001,000089: # * * * * ** ** ** ** **
041002,000090: # * * * * ** ** ** ** **
041003,000091: # * * * * ** ** ** ** **
041004,000092: # * * * *
041005,000093: # * * * *
041006,000094: # * * * *
041007,000095: # ** **
041008,000096: # ** **
041009,000097: # ** **
041010,000098:
041011,000099:
041012,000100: # FOR THIS (UNOFFICIAL, EXAMPLE) WAVEFORM, THE REQUIRED PARAMETERS ARE AS FOLLOWS....
041013,000101:
041014,000102: # FCARD = +3 (NUMBER OF SETS)
041015,000103: # ESTROKER = +3 (PULSE BURST SIZE, SC.AT 85.41 ARCSEC/BIT)
041016,000104:
041017,000105: # SET1..
041018,000106: # FREVS = +3 (NUMBER REVERSALS MINUS 1)
041019,000107: # FCADDY = +4 (NUMBER OF PULSE BURSTS IN 1/2 AMPLITUDE)
041020,000108: # SET2..
041021,000109: # FCARD1 = +9 (NUMBER REVERSALS MINUS 1)
041022,000110: # FCARD4 = +2 (NUMBER OF PULSE BURSTS IN 1/2 AMPLITUDE)
041023,000111: # SET3..
041024,000112: # FCARD2 = +9 (NUMBER REVERSALS MINUS 1)
041025,000113: # FCARD5 = +1 (NUMBER OF PULSE BURSTS IN 1/2 AMPLITUDE)
041026,000114: # SET4..
041027,000115: # FCARD3 = +0 (NUMBER REVERSALS MINUS 1)
041028,000116: # FCARD6 = +0 (NUMBER OF PULSE BURSTS IN 1/2 AMPLITUDE)
041029,000117:
![]() |
Page 942 |
041031,000119: # STROKE TEST INITIALIZATION PACKAGE (AS A JOB, FROM VERB 68)
041032,000120:
041033,000121: 17,2215 BANK 17
041034,000122: 20,2000 SETLOC DAPS2
041035,000123: 20,2000 BANK
041036,000124:
041037,000125: 20,3431 COUNT* $$/STRK
041038,000126: 20,3431 E6,1665 EBANK= CADDY
041039,000127:
041040,000128: 20,3431 03450 STRKTSTI TCR TSTINIT # STROKE TEST INITIALIZATION PKG (CALLED
041041,000129: # AS A JOB BY VERB68)
041042,000130:
041043,000131: 20,3432 00004 TVCDTCHK INHINT # STROKE TEST PERMITTED ONLY WITH 80MS DAP
041044,000132: 20,3433 31635 CAE T5TVCDT # CHECK CURRENT TIMING
041045,000133: 20,3434 54001 TS L
041046,000134: 20,3435 37677 CAF OCT37774 # LOOK FOR 80MS (T5)
041047,000135: 20,3436 00006 EXTEND
041048,000136: 20,3437 06001 RXOR LCHAN # +0 IF 80MS
041049,000137: 20,3440 10000 CCS A
041050,000138: 20,3441 13445 TCF +4 # NOT 80MS
041051,000139:
041052,000140: 20,3442 31412 CAE ESTROKER # 80MS. OK, SET STROKER FOR TEST
041053,000141: 20,3443 55614 TS STROKER
041054,000142: 20,3444 13447 TCF +3
041055,000143:
041056,000144: 20,3445 44714 CS ZERO # ENABLE, BUT DO NOT ACTIVATE STROKE
041057,000145: 20,3446 55614 TS STROKER # TEST, AWAITING SWITCHOVER
041058,000146: # TO MOD0R (MOD80)
041059,000147: 20,3447 15112 TCF ENDOFJOB
041060,000148:
041061,000149:
041062,000150: 20,3450 43460 TSTINIT CS FCADDY # NORMAL ENTRY FROM STRKTSTI
041063,000151: 20,3451 55665 TS CADDY
041064,000152: 20,3452 55666 TS N # NOTE SGN CHNG FCADDY(+) TO CADDY(-)
041065,000153:
041066,000154: 20,3453 33461 CAF FREVS
041067,000155: 20,3454 55670 TS REVS
041068,000156:
041069,000157: 20,3455 43462 CS FCARD # NOTE SGN CHNG FCARD(+) TO CARD(-)
041070,000158: 20,3456 55671 TS CARD
041071,000159:
041072,000160: 20,3457 00002 TC Q # RETURN TO STRKTSTI+1 (OR CHKSTRK+2OR+4)
041073,000161:
![]() |
Page 943 |
041075,000163: # THE OFFICIAL STROKE TEST WAVEFORM (3 JAN, 1967) CONSISTS OF FOUR STROKE SETS, AS FOLLOWS....
041076,000164:
041077,000165: # SET 1...10 BURSTS IN 1/2 AMP, 4 REVERSALS
041078,000166: # SET 2... 6 BURSTS IN 1/2 AMP, 6 REVERSALS
041079,000167: # SET 3... 5 BURSTS IN 1/2 AMP, 10 REVERSALS
041080,000168: # SET 4... 4 BURSTS IN 1/2 AMP, 14 REVERSALS
041081,000169: # THE PULSE BURST SIZE (ESTROKER) IS PAD-LOADED (5 BITS AS OF 3JAN,1967)
041082,000170: # THE REMAINING WAVEFORM-GENERATING PARAMETERS ARE AS FOLLOWS....
041083,000171:
041084,000172: 20,3460 00012 FCADDY DEC 10 B-14 # NO. PULSE BURSTS IN 1/2 AMP, SET1..(+10)
041085,000173: 20,3461 00003 FREVS DEC 3 B-14 # NO. REVERSALS MINUS 1, SET1........( 3)
041086,000174:
041087,000175: 20,3462 00004 FCARD DEC 4 B-14 # NO. STROKE SETS....................(+ 4)
041088,000176:
041089,000177: 20,3463 00005 FCARD1 DEC 5 B-14 # NO. REVERSALS MINUS 1, SET2........( 5)
041090,000178:
041091,000179: 20,3464 00011 FCARD2 DEC 9 B-14 # 3........( 9)
041092,000180: 20,3465 00015 FCARD3 DEC 13 B-14 # 4........( 13)
041093,000181:
041094,000182: 20,3466 00006 FCARD4 DEC 6 B-14 # NO. PULSE BURSTS IN 1/2 AMP, SET2..(+ 6)
041095,000183: 20,3467 00005 FCARD5 DEC 5 B-14 # SET3..(+ 5)
041096,000184: 20,3470 00004 FCARD6 DEC 4 B-14 # SET4..(+ 4)
041097,000185:
041098,000186: 20,3471 4711 20MS = BIT2
041099,000187:
041100,000188:
041101,000189: # STROKE TEST PACKAGE PROPER....
041102,000190:
041103,000191: 20,3471 E6,1667 EBANK= BUNKER
041104,000192:
041105,000193: 20,3471 00006 HACK EXTEND # ENTRY (IN T5 RUPT) FROM TVCDAPS
041106,000194: 20,3472 23667 QXCH BUNKER # SAVE Q FOR DAP RETURN
041107,000195:
041108,000196: 20,3473 34711 CAF 20MS # 2DAPSX2(PASSES/DAP)X2(CS/PASS)=8CS=TVCDT
041109,000197: 20,3474 05140 TC WAITLIST
041110,000198: 20,3475 E6,1667 EBANK= BUNKER
041111,000199: 20,3475 03500 40066 2CADR HACKWLST
041112,000200: 20,3477 13502 TCF +3
041113,000201:
041114,000202: 20,3500 34367 HACKWLST CAF TCTSKOVR # ENTRY FROM WAITLIST
041115,000203: 20,3501 55667 TS BUNKER # BUNKER IS TC TASKOVER
041116,000204:
041117,000205: 20,3502 31614 CA STROKER # STROKE
041118,000206: 20,3503 26054 ADS TVCPITCH
041119,000207:
041120,000208: 20,3504 34700 CAF BIT11 # RELEASE THE ERROR COUNTERS
041121,000209: 20,3505 00006 EXTEND
041122,000210: 20,3506 05014 WOR CHAN14
041123,000211: 20,3507 25665 INCR CADDY # COUNT DOWN THE NO. BURSTS, THIS SLOPE
![]() |
Page 944 |
041125,000213: 20,3510 41665 CS CADDY
041126,000214: 20,3511 00006 EXTEND
041127,000215: 20,3512 63514 BZMF +2
041128,000216: 20,3513 01667 TC BUNKER # EXIT, WHILE ON A SLOPE
041129,000217:
041130,000218:
041131,000219: 20,3514 11670 CCS REVS
041132,000220: 20,3515 13535 TCF REVUP # POSITIVE REVS
041133,000221: 20,3516 13541 TCF REVUP +4 # FINAL REVERSAL, THIS SET
041134,000222:
041135,000223: 20,3517 25671 INCR CARD # NEGATIVE REVS SET LAST PASS, READY FOR
041136,000224: 20,3520 41671 CS CARD # THE NEXT SET. CHECK IF NO MORE SETS
041137,000225: 20,3521 00006 EXTEND
041138,000226: 20,3522 13533 BZF STROKILL # ALL SETS COMPLETED
041139,000227:
041140,000228: 20,3523 51671 INDEX CARD
041141,000229: 20,3524 33466 CAF FCARD +4 # PICK UP NO. REVERSALS (-), NEXT SET
041142,000230: 20,3525 55670 TS REVS # REINITIALIZE
041143,000231: 20,3526 51671 INDEX CARD
041144,000232: 20,3527 43471 CS FCARD +7 # PICK UP NO. BURSTS IN 1/2AMP, NEXT SET
041145,000233: 20,3530 55666 TS N # REINITIALIZE
041146,000234: 20,3531 55665 TS CADDY
041147,000235: 20,3532 01667 TC BUNKER # EXIT, AT END OF SET
041148,000236:
041149,000237:
041150,000238: 20,3533 55614 STROKILL TS STROKER # RESET (TO +0) TO END TEST
041151,000239: 20,3534 01667 TC BUNKER # EXIT, STROKE TEST FINIS
041152,000240:
041153,000241:
041154,000242: 20,3535 55670 REVUP TS REVS # ALL REVERSALS EXCEPT LAST OF SET
041155,000243: 20,3536 31666 CA N
041156,000244: 20,3537 60000 DOUBLE # 2 X 1/2AMP
041157,000245: 20,3540 13544 TCF +4
041158,000246:
041159,000247: 20,3541 44712 +4 CS ONE # FINAL REVERSAL, THIS SET
041160,000248: 20,3542 55670 TS REVS # PREPARE TO BRANCH TO NEW BURST
041161,000249: 20,3543 31666 CA N # JUST RETURN TO ZERO, FINAL SLOPE OF SET
041162,000250: 20,3544 55665 TS CADDY # CADUP
041163,000251:
041164,000252: 20,3545 41614 CS STROKER # CHANGE SIGN OF SLOPE
041165,000253: 20,3546 55614 TS STROKER
041166,000254: 20,3547 01667 TC BUNKER # EXIT AT A REVERSAL (SLOPE CHANGE)
End of include-file TVCSTROKETEST.agc. Parent file is MAIN.agc