Source Code
041584,000001: # Copyright: Public domain.
041585,000002: # Filename: TVCSTROKETEST.agc
041586,000003: # Purpose: Part of the source code for Colossus, build 249.
041587,000004: # It is part of the source code for the Command Module's (CM)
041588,000005: # Apollo Guidance Computer (AGC), possibly for Apollo 8 and 9.
041589,000006: # Assembler: yaYUL
041590,000007: # Reference: Starts on p. 947 of 1701.pdf.
041591,000008: # Contact: Ron Burkey <info@sandroid.org>.
041592,000009: # Website: www.ibiblio.org/apollo/index.html
041593,000010: # Mod history: 08/23/04 RSB. Began transcribing.
041594,000011: # 05/14/05 RSB Corrected website reference above.
041595,000012:
041596,000013: # The contents of the "Colossus249" files, in general, are transcribed
041597,000014: # from a scanned document obtained from MIT's website,
041598,000015: # http://hrst.mit.edu/hrs/apollo/public/archive/1701.pdf. Notations on this
041599,000016: # document read, in part:
041600,000017:
041601,000018: # Assemble revision 249 of AGC program Colossus by NASA
041602,000019: # 2021111-041. October 28, 1968.
041603,000020:
041604,000021: # This AGC program shall also be referred to as
041605,000022: # Colossus 1A
041606,000023:
041607,000024: # Prepared by
041608,000025: # Massachussets Institute of Technology
041609,000026: # 75 Cambridge Parkway
041610,000027: # Cambridge, Massachusetts
041611,000028: # under NASA contract NAS 9-4065.
041612,000029:
041613,000030: # Refer directly to the online document mentioned above for further information.
041614,000031: # Please report any errors (relative to 1701.pdf) to info@sandroid.org.
041615,000032:
041616,000033: # In some cases, where the source code for Luminary 131 overlaps that of
041617,000034: # Colossus 249, this code is instead copied from the corresponding Luminary 131
041618,000035: # source file, and then is proofed to incorporate any changes.
041619,000036:
041620,000037: # Page 947
041621,000038: # NAME STROKE TEST PACKAGE (INCLUDING INITIALIZATION PACKAGE)
041622,000039: # ORIGINAL CODING BY OLSSON LOG SECTION....STROKE TEST PACKAGE
041623,000040: # MOD BY ENGEL DATE....21 MARCH, 1967
041624,000041:
041625,000042: # FUNCTIONAL DESCRIPTION....
041626,000043: # STROKE TEST PACKAGE GENERATES A WAVEFORM DESIGNED TO EXCITE BENDING
041627,000044: # STRKTSTI (STROKE TEST INITIALIZATION) IS CALLED AS A JOB BY VB68.
041628,000045: # IT INITIALIZES ALL ERASABLES REQD FOR A STROKE TEST, AND
041629,000046: # THEN TESTS FOR AN 80MS DAP. IF 80MS IT SETS STROKER = ESTROKER
041630,000047: # FOR AN IMMEDIATE STROKE TEST, OTEHRWISE IT MERELY ENABLES
041631,000048: # A STROKE TEST BY SETTING STROKER TO -0. THE STROKE TEST
041632,000049: # THEN AWAITS SWITCHOVER TO THE 80MS DAP WHEREUPON IT IS
041633,000050: # ENABLED AFTER AN ADDITIONAL 4 SECOND DELAY TO AVOID
041634,000051: # THE SWITCHOVER TRANSIENTS (SEE STRKCALL, STRKUP IN
041635,000052: # TVCEXECUTIVE)
041636,000053: # HACK (STROKE TEST) GENERATES THE WAVEFORM BY DUMPING PULSE BURSTS
041637,000054: # OF PROPER SIGN AND IN PROPER SEQUENCE DIRECTLY INTO
041638,000055: # TVCPITCH, WORKING IN CONJUNCITON WITH BOTH PITCH AND YAW
041639,000056: # TVC DAPS, WITH INTERMEDIAT WAITLIST CALLS. NOTE, HOWEVER
041640,000057: # THAT THE STROKE TEST IS PERFORMED ONLY IN THE PITCH AXIS.
041641,000058: # AN EXAMPLE WAVEFORM IS GIVEN BELOW, TO DEMONSTRATE STROKE-
041642,000059: # TEST PARAMETER SELECTION.
041643,000060: # RESTARTS CAUSE TEST TO BE TERMINATED. ANOTHER V68 REQD IF TEST
041644,000061: # IS TO BE RE-RUN.
041645,000062: # PULSE BURST SIZE IS PAD-LOADED (ESTROKER) SO THAT AMPLITUDE OF
041646,000063: # WAVEFORM CAN BE CHANGED. THERE ARE TEN PULSE BURSTS IN
041647,000064: # THE HALF-AMPLITUDE OF THE FIRST FREQUENCY SET IN THE
041648,000065: # STANDARD WAVEFORM. AMPLITUDE IS 10(ESTROKER)(1/42.15),
041649,000066: # NOMINALLY 50/42.15 = 1.185 DEG
041650,000067:
041651,000068: # CALLING SEQUENCE....
041652,000069: # EXTENDED VERB 68 SETS UP STRKTSTI JOB
041653,000070: # PITCH AND YAW TVCDAPS, FINDING STROKER NON-ZERO, DO A "TC HACK"
041654,000071: # AN INTERNALLY-GENERATED WAITLIST CALL ENTERS AT "HACKWLST"
041655,000072:
041656,000073: # NORMAL EXIT MODES....
041657,000074: # TC BUNKER ("Q" IF ENTRY FROM DAP, "TCTSKOVR" IF FROM WAITLIST) LIST
041658,000075:
041659,000076: # SUBROUTINES CALLED....
041660,000077: # WAITLIST
041661,000078:
041662,000079: # ALARM OR ABORT EXIT MODES....
041663,000080: # NONE
041664,000081:
041665,000082: # ERASABLE INITIALIZATION REQUIRED....
041666,000083: # ESTROKER (PAD-LOAD)
041667,000084: # STROKER, CADDY, REVS, CARD, N
041668,000085:
041669,000086: # OUTPUT....
041670,000087: # STRKTSTI....INITIALIZATION FOR STROKE TEST
041671,000088: # HACK, HACKWLST....PULSE BURSTS INTO TVCPITCH VIA "ADS"
041672,000089: # RESETS STROKER = +0 WHEN TEST COMPLETED
041673,000090:
041674,000091: # DEBRIS....
041675,000092: # N = CADDY = +0, CARD = -0, REVS = -1
041676,000093: # BUNKER
041677,000094: # Page 948
041678,000095:
041679,000096: # EXAMPLE STROKE TEST WAVE FORM, DEMONSTRATING PARAMETER SELECTION
041680,000097: # NOTE....THIS IS NOT THE OFFICIAL WAVEFORM....
041681,000098:
041682,000099: # ** **
041683,000100: # ** **
041684,000101: # ** ** EXAMPLE WAVEFORM (EACH * REPRESENTS
041685,000102: # * * * * (85.41 ARCSEC OF ACTUATOR CMD)
041686,000103: # * * * *
041687,000104: # * * * *
041688,000105: # * * * * ** ** ** ** **
041689,000106: # * * * * ** ** ** ** **
041690,000107: # * * * * ** ** ** ** **
041691,000108: # * * * * * * * * * * * * * * ** ** ** ** **
041692,000109: # * * * * * * * * * * * * * * ** ** ** ** **
041693,000110: # * * * * * * * * * * * * * * ** ** ** ** **
041694,000111: # ----------------------------------------------------------------------------------------------------
041695,000112: # * * * * * * * * * * * * * * ** ** ** ** **
041696,000113: # * * * * * * * * * * * * * * ** ** ** ** **
041697,000114: # * * * * * * * * * * * * * * ** ** ** ** **
041698,000115: # * * * * ** ** ** ** **
041699,000116: # * * * * ** ** ** ** **
041700,000117: # * * * * ** ** ** ** **
041701,000118: # * * * *
041702,000119: # * * * *
041703,000120: # * * * *
041704,000121: # ** **
041705,000122: # ** **
041706,000123: # ** **
041707,000124:
041708,000125: # FOR THIS (UNOFFICIAL, EXAMPLE) WAVEFORM, THE REQUIRED PARAMETERS ARE AS FOLLOWS....
041709,000126:
041710,000127: # FCARD = +3 (NUMBER OF SETS)
041711,000128: # ESTROKER = +3 (PULSE BURST SIZE, SC.AT 85.41 ARCSEC/BIT)
041712,000129:
041713,000130: # SET1:
041714,000131: # FREVS = +3 (NUMBER REVERSALS MINUS 1)
041715,000132: # FCADDY = +4 (NUMBER OF PULSE BURSTS IN 1/2 AMPLITUDE)
041716,000133: # SET2:
041717,000134: # FCARD1 = +9 (NUMBER REVERSALS MINUS 1)
041718,000135: # FCARD4 = +2 (NUMBER OF PULSE BURSTS IN 1/2 AMPLITUDE)
041719,000136: # SET3:
041720,000137: # FCARD2 = +9 (NUMBER REVERSALS MINUS 1)
041721,000138: # FCARD5 = +1 (NUMBER OF PULSE BURSTS IN 1/2 AMPLITUDE)
041722,000139: # SET4:
041723,000140: # FCARD3 = +0 (NUMBER OF REVERSALS MINUS 1)
041724,000141: # FCARD6 = +0 (NUMBER OF PULSE BURSTS IN 1/2 AMPLUTUDE)
041725,000142:
041726,000143: # Page 949
041727,000144: # STROKE TEST INITIALIZATION PACKAGE (AS A JOB, FROM VERB 68)
041728,000145:
041729,000146: 17,2213 BANK 17
041730,000147: 20,2000 SETLOC DAPS2
041731,000148: 20,2000 BANK
041732,000149:
041733,000150: 20,3446 COUNT* $$/STRK
041734,000151: 20,3446 E6,1665 EBANK= CADDY
041735,000152:
041736,000153: 20,3446 03465 STRKTSTI TCR TSTINIT # STROKE TEST INITIALIZATION PKG (CALLED
041737,000154: # AS A JOB BY VERB68)
041738,000155:
041739,000156: 20,3447 00004 TVCDTCHK INHINT # STROKE TEST PERMITTED ONLY WITH 80MS DAP
041740,000157: 20,3450 31635 CAE T5TVCDT # CHECK CURRENT TIMING
041741,000158: 20,3451 54001 TS L
041742,000159: 20,3452 37677 CAF OCT37774 # LOOK FOR 80MS (T5)
041743,000160: 20,3453 00006 EXTEND
041744,000161: 20,3454 06001 RXOR LCHAN # +0 IF 80MS
041745,000162: 20,3455 10000 CCS A
041746,000163: 20,3456 13462 TCF +4 # NOT 80MS
041747,000164:
041748,000165: 20,3457 31412 CAE ESTROKER # 80MS. OK, SET STROKER FOR TEST
041749,000166: 20,3460 55614 TS STROKER
041750,000167: 20,3461 13464 TCF +3
041751,000168:
041752,000169: 20,3462 44714 CS ZERO # ENABLE, BUT DO NOT ACTIVATE STROKE
041753,000170: 20,3463 55614 TS STROKER # TEST, AWAITING SWITCHOVER
041754,000171: # TO MOD0R (MOD80)
041755,000172: 20,3464 15112 TCF ENDOFJOB
041756,000173: 20,3465 43475 TSTINIT CS FCADDY # NORMAL ENTRY FROM STRKTSTI
041757,000174: 20,3466 55665 TS CADDY
041758,000175: 20,3467 55666 TS N # NOTE SGN CHNG FCADDY(+) TO CADDY(-)
041759,000176:
041760,000177: 20,3470 33476 CAF FREVS
041761,000178: 20,3471 55670 TS REVS
041762,000179:
041763,000180: 20,3472 43477 CS FCARD # NOTE SGN CHNG FCARD(+) TO CARD(-)
041764,000181: 20,3473 55671 TS CARD
041765,000182:
041766,000183: 20,3474 00002 TC Q # RETURN TO STRKTSTI+1 (OR CHKSTRK+2 OR +4)
041767,000184:
041768,000185: # Page 950
041769,000186: # THE OFFICIAL STROKE TEST WAVEFORM (3 JAN, 1967) CONSISTS OF FOUR STROKE SETS, AS FOLLOWS....
041770,000187:
041771,000188: # SET 1...10 BURSTS IN 1/2 AMP, 4 REVERSALS
041772,000189: # SET 2... 6 BURSTS IN 1/2 AMP, 6 REVERSALS
041773,000190: # SET 3... 5 BURSTS IN 1/2 AMP, 10 REVERSALS
041774,000191: # SET 4... 4 BURSTS IN 1/2 AMP, 14 REVERSALS
041775,000192:
041776,000193: # THE PULSE BURST SIZE (ESTROKER) IS PAD-LOADED (5 BITS AS OF 3 JAN, 1967)
041777,000194: # THE REMAINING WAVEFORM-GENERATING PARAMETERS ARE AS FOLLOWS....
041778,000195:
041779,000196: 20,3475 00012 FCADDY DEC 10 B-14 # NO. PULSE BURSTS IN 1/2 AMP, SET1..(+10)
041780,000197: 20,3476 00003 FREVS DEC 3 B-14 # NO. REVERSALS MINUS 1, SET1........( 3)
041781,000198: 20,3477 00004 FCARD DEC 4 B-14 # NO. STROKE SETS....................(+ 4)
041782,000199: 20,3500 00005 FCARD1 DEC 5 B-14 # NO. REVERSALS MINUS 1, SET2........( 5)
041783,000200: 20,3501 00011 FCARD2 DEC 9 B-14 # 3........( 9)
041784,000201: 20,3502 00015 FCARD3 DEC 13 B-14 # 4........( 13)
041785,000202: 20,3503 00006 FCARD4 DEC 6 B-14 # NO. PULSE BURSTS IN 1/2 AMP, SET2..(+ 6)
041786,000203: 20,3504 00005 FCARD5 DEC 5 B-14 # 3..(+ 5)
041787,000204: 20,3505 00004 FCARD6 DEC 4 B-14 # 4..(+ 4)
041788,000205:
041789,000206: 20,3506 4711 20MS = BIT2
041790,000207:
041791,000208: # STROKE TEST PACKAGE PROPER....
041792,000209:
041793,000210: 20,3506 E6,1667 EBANK= BUNKER
041794,000211:
041795,000212: 20,3506 00006 HACK EXTEND # ENTRY (IN T5 RUPT) FROM TVCDAPS
041796,000213: 20,3507 23667 QXCH BUNKER # SAVE Q FOR DAP RETURN
041797,000214:
041798,000215: 20,3510 34711 CAF 20MS # 2DAPSx2(PASSES/DAP)x2(CS/PASS)=8CS=TVCDT
041799,000216: 20,3511 05140 TC WAITLIST
041800,000217: 20,3512 E6,1667 EBANK= BUNKER
041801,000218: 20,3512 03515 40066 2CADR HACKWLST
041802,000219:
041803,000220: 20,3514 13517 TCF +3
041804,000221:
041805,000222: 20,3515 34367 HACKWLST CAF TCTSKOVR # ENTRY FROM WAITLIST
041806,000223: 20,3516 55667 TS BUNKER # BUNKER IS TC TASKOVER
041807,000224:
041808,000225: 20,3517 31614 CA STROKER # STROKE
041809,000226: 20,3520 26054 ADS TVCPITCH
041810,000227:
041811,000228: 20,3521 34700 CAF BIT11 # RELEASE THE ERROR COUNTERS
041812,000229: 20,3522 00006 EXTEND
041813,000230: 20,3523 05014 WOR CHAN14
041814,000231: 20,3524 25665 INCR CADDY # COUNT DOWN THE NO. BURSTS, THIS SLOPE
041815,000232: # Page 951
041816,000233: 20,3525 41665 CS CADDY
041817,000234: 20,3526 00006 EXTEND
041818,000235: 20,3527 63531 BZMF +2
041819,000236: 20,3530 01667 TC BUNKER # EXIT, WHILE ON A SLOPE
041820,000237: 20,3531 11670 CCS REVS
041821,000238: 20,3532 13552 TCF REVUP # POSITIVE REVS
041822,000239: 20,3533 13556 TCF REVUP +4 # FINAL REVERSAL, THE SET
041823,000240:
041824,000241: 20,3534 25671 INCR CARD # NEGATIVE REVS SET LAST PASS, READY FOR
041825,000242: 20,3535 41671 CS CARD # THE NEXT SET. CHECK IF NO MORE SETS
041826,000243: 20,3536 00006 EXTEND
041827,000244: 20,3537 13550 BZF STROKILL # ALL SETS COMPLETED
041828,000245:
041829,000246: 20,3540 51671 INDEX CARD
041830,000247: 20,3541 33503 CAF FCARD +4 # PICK UP NO. REVERSALS (-), NEXT SET
041831,000248: 20,3542 55670 TS REVS # REINITIALIZE
041832,000249: 20,3543 51671 INDEX CARD
041833,000250: 20,3544 43506 CS FCARD +7 # PICK UP NO. BURSTS IN 1/2AMP, NEXT SET
041834,000251: 20,3545 55666 TS N # REINITIALIZE
041835,000252: 20,3546 55665 TS CADDY
041836,000253: 20,3547 01667 TC BUNKER # EXIT, AT END OF SET
041837,000254: 20,3550 55614 STROKILL TS STROKER # RESET (TO +0) TO END TEST
041838,000255: 20,3551 01667 TC BUNKER # EXIT, STROKE TEST FINIS
041839,000256: 20,3552 55670 REVUP TS REVS # ALL REVERSALS EXCEPT LAST OF SET
041840,000257: 20,3553 31666 CA N
041841,000258: 20,3554 60000 DOUBLE # 2 x 1/2AMP
041842,000259: 20,3555 13561 TCF +4
041843,000260:
041844,000261: 20,3556 44712 +4 CS ONE # FINAL REVERSAL, THIS SET
041845,000262: 20,3557 55670 TS REVS # PREPARE TO BRANCH TO NEW BURST
041846,000263: 20,3560 31666 CA N # JUST RETURN TO ZERO, FINAL SLOPE OF SET
041847,000264: 20,3561 55665 TS CADDY # CADUP
041848,000265:
041849,000266: 20,3562 41614 CS STROKER # CHANGE SIGN OF SLOPE
041850,000267: 20,3563 55614 TS STROKER
041851,000268: 20,3564 01667 TC BUNKER # EXIT AT A REVERSAL (SLOPE CHANGE)
041852,000269:
End of include-file TVCSTROKETEST.agc. Parent file is MAIN.agc