Source Code

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