Source Code
These source-code files are part of a reconstructed copy of Comanche 67, the
Apollo Guidance Computer (AGC) Command Module (CM) software for Apollo 12.
They have been adapted from sources files for Comanche 55, and updated via disassembly of binary dumps of original core rope memory modules, part numbers 2003972-1081, 2003972-1091, 2003972-1111, 2003972-1121, 2003972-1131, and 2003972-1141. Since only binary dumps (rather than listings) of Comanche 67 are available as source material, all comments and labels are approximate. They have been taken from other AGC programs where possible, or, in some places, written from scratch to match what we believe would have been in the original listing. |
041778,000002: ## Copyright: Public domain.
041779,000003: ## Filename: TVCSTROKETEST.agc
041780,000004: ## Purpose: A section of Comanche revision 067.
041781,000005: ## It is part of the reconstructed source code for the flight
041782,000006: ## software for the Command Module's (CM) Apollo Guidance Computer
041783,000007: ## (AGC) for Apollo 12. No original listings of this program are
041784,000008: ## available; instead, this file was created via dissassembly of
041785,000009: ## dumps of Comanche 067 core rope modules and comparison with
041786,000010: ## other AGC programs.
041787,000011: ## Assembler: yaYUL
041788,000012: ## Contact: Ron Burkey <info@sandroid.org>.
041789,000013: ## Website: www.ibiblio.org/apollo/index.html
041790,000014: ## Mod history: 2023-08-16 MAS Created from Comanche 055.
041791,000015:
041792,000016: # NAME STROKE TEST PACKAGE (INCLUDING INITIALIZATION PACKAGE)
041793,000017: # LOG SECTION...TVCSTROKETEST SUBROUTINE...DAPCSM
041794,000018: # MODIFIED BY SCHLUNDT 21 OCTOBER 1968
041795,000019:
041796,000020: # FUNCTIONAL DESCRIPTION....
041797,000021: # STROKE TEST PACKAGE GENERATES A WAVEFORM DESIGNED TO EXCITE BENDING
041798,000022: # STRKTSTI (STROKE TEST INITIALIZATION) IS CALLED AS A JOB BY VB68.
041799,000023: # IT INITIALIZES ALL ERASABLES REQD FOR A STROKE TEST, AND
041800,000024: # THEN TESTS FOR CSM/LM (BIT 13 OF DAPDATR1). IF CSM/LM,
041801,000025: # IN EITHER HIGH OR LOW-BANDWIDTH MODE, THE TEST IS STARTED
041802,000026: # IMMEDIATELY. IF NOT CSM/LM, PROGRAM EXITS WITH NO ACTION.
041803,000027: # HACK (STROKE TEST) GENERATES THE WAVEFORM BY DUMPING PULSE BURSTS
041804,000028: # OF PROPER SIGN AND IN PROPER SEQUENCE DIRECTLY INTO
041805,000029: # TVCPITCH, WORKING IN CONJUNCITON WITH BOTH PITCH AND YAW
041806,000030: # TVC DAPS, WITH INTERMEDIATE WAITLIST CALLS. NOTE, HOWEVER
041807,000031: # THAT THE STROKE TEST IS PERFORMED ONLY IN THE PITCH AXIS.
041808,000032: # AN EXAMPLE WAVEFORM IS GIVEN BELOW, TO DEMONSTRATE STROKE-
041809,000033: # TEST PARAMETER SELECTION
041810,000034: # RESTARTS CAUSE TEST TO BE TERMINATED. ANOTHER V68 REQD IF TEST
041811,000035: # IS TO BE RE-RUN.
041812,000036: # PULSE BURST SIZE IS PAD-LOADED (ESTROKER) SO THAT AMPLITUDE OF
041813,000037: # WAVEFORM CAN BE CHANGED. THERE ARE TEN PULSE BURSTS IN
041814,000038: # THE HALF-AMPLITUDE OF THE FIRST FREQUENCY SET IN THE
041815,000039: # STANDARD WAVEFORM. AMPLITUDE IS 10(ESTROKER)(1/42.15),
041816,000040: # NOMINALLY 50/42.15 = 1.185 DEG
041817,000041:
041818,000042: # CALLING SEQUENCE....
041819,000043: # EXTENDED VERB 68 SETS UP STRKTSTI JOB
041820,000044: # PITCH AND YAW TVCDAPS, FINDING STROKER NON-ZERO, DO A ..TC HACK..
041821,000045: # AN INTERNALLY-GENERATED WAITLIST CALL ENTERS AT ..HACKWLST..
041822,000046:
041823,000047: # NORMAL EXIT MODES....
041824,000048: # TC BUNKER (..Q.. IF ENTRY FROM DAP, ..TCTSKOVR.. IF FROM WAITLIST) LIST
041825,000049:
041826,000050: # SUBROUTINES CALLED....
041827,000051: # WAITLIST
041828,000052:
041829,000053: # ALARM OR ABORT EXIT MODES....
041830,000054: # NONE
041831,000055:
041832,000056: # ERASABLE INITIALIZATION REQUIRED....
041833,000057: # ESTROKER (PAD-LOAD)
041834,000058: # STROKER, CADDY, REVS, CARD, N
041835,000059:
041836,000060: # OUTPUT....
041837,000061: # STRKTSTI...INITIALIZATION FOR STROKE TEST
041838,000062: # HACK, HACKWLST...PULSE BURSTS INTO TVCPITCH VIA ..ADS..
041839,000063: # RESETS STROKER = +0 WHEN TEST COMPLETED
041840,000064:
041841,000065: # DEBRIS....
041842,000066: # N = CADDY = +0, CARD = -0, REVS = -1
041843,000067: # BUNKER
041844,000068:
041845,000069: # EXAMPLE STROKE TEST WAVE FORM, DEMONSTRATING PARAMETER SELECTION
041846,000070:
041847,000071: # NOTE....THIS IS NOT THE OFFICIAL WAVEFORM....
041848,000072:
041849,000073: # ** **
041850,000074: # ** **
041851,000075: # ** ** EXAMPLE WAVEFORM (EACH * REPRESENTS
041852,000076: # * * * * 85.41 ARCSEC OF ACTUATOR CMND)
041853,000077: # * * * *
041854,000078: # * * * *
041855,000079: # * * * * ** ** ** ** **
041856,000080: # * * * * ** ** ** ** **
041857,000081: # * * * * ** ** ** ** **
041858,000082: # * * * * * * * * * * * * * * ** ** ** ** **
041859,000083: # * * * * * * * * * * * * * * ** ** ** ** **
041860,000084: # * * * * * * * * * * * * * * ** ** ** ** **
041861,000085: # -----------------------------------------------------------------------------------------------------
041862,000086: # * * * * * * * * * * * * * * ** ** ** ** **
041863,000087: # * * * * * * * * * * * * * * ** ** ** ** **
041864,000088: # * * * * * * * * * * * * * * ** ** ** ** **
041865,000089: # * * * * ** ** ** ** **
041866,000090: # * * * * ** ** ** ** **
041867,000091: # * * * * ** ** ** ** **
041868,000092: # * * * *
041869,000093: # * * * *
041870,000094: # * * * *
041871,000095: # ** **
041872,000096: # ** **
041873,000097: # ** **
041874,000098:
041875,000099: # FOR THIS (UNOFFICIAL, EXAMPLE) WAVEFORM, THE REQUIRED PARAMETERS ARE AS FOLLOWS....
041876,000100:
041877,000101: # FCARD = +3 (NUMBER OF SETS)
041878,000102: # ESTROKER = +3 (PULSE BURST SIZE, SC.AT 85.41 ARCSEC/BIT)
041879,000103:
041880,000104: # SET1..
041881,000105: # FREVS = +3 (NUMBER REVERSALS MINUS 1)
041882,000106: # FCADDY = +4 (NUMBER OF PULSE BURSTS IN 1/2 AMPLITUDE)
041883,000107: # SET2..
041884,000108: # FCARD1 = +9 (NUMBER REVERSALS MINUS 1)
041885,000109: # FCARD4 = +2 (NUMBER OF PULSE BURSTS IN 1/2 AMPLITUDE)
041886,000110: # SET3..
041887,000111: # FCARD2 = +9 (NUMBER REVERSALS MINUS 1)
041888,000112: # FCARD5 = +1 (NUMBER OF PULSE BURSTS IN 1/2 AMPLITUDE)
041889,000113: # SET4..
041890,000114: # FCARD3 = +0 (NUMBER REVERSALS MINUS 1)
041891,000115: # FCARD6 = +0 (NUMBER OF PULSE BURSTS IN 1/2 AMPLITUDE)
041892,000116:
041893,000117: # STROKE TEST INITIALIZATION PACKAGE (AS A JOB, FROM VERB 68)
041894,000118:
041895,000119: 17,2610 BANK 17
041896,000120: 20,2000 SETLOC DAPS2
041897,000121: 20,2000 BANK
041898,000122:
041899,000123: 20,3540 COUNT* $$/STRK
041900,000124: 20,3540 E6,1657 EBANK= CADDY
041901,000125:
041902,000126: 20,3540 03551 STRKTSTI TCR TSTINIT # STROKE TEST INITIALIZATION PKG (CALLED
041903,000127: # AS A JOB BY VERB68)
041904,000128:
041905,000129: 20,3541 00004 STRKCHK INHINT
041906,000130:
041907,000131: 20,3542 31466 CAE DAPDATR1 # CHECK FOR CSM/LM CONFIGURATION
041908,000132: 20,3543 75016 MASK BIT14
041909,000133: 20,3544 00006 EXTEND
041910,000134: 20,3545 13550 BZF +3
041911,000135:
041912,000136: 20,3546 31413 CAE ESTROKER # BEGIN ON NEXT DAP PASS (PITCH OR YAW)
041913,000137: 20,3547 55574 TS STROKER # (STROKING DONE IN PITCH ONLY, HOWEVER)
041914,000138:
041915,000139: 20,3550 15233 TCF ENDOFJOB
041916,000140:
041917,000141: 20,3551 43561 TSTINIT CS FCADDY # NORMAL ENTRY FROM STRKTSTI
041918,000142: 20,3552 55657 TS CADDY
041919,000143: 20,3553 55660 TS N # NOTE SGN CHNG FCADDY(+) TO CADDY(-)
041920,000144:
041921,000145: 20,3554 33562 CAF FREVS
041922,000146: 20,3555 55662 TS REVS
041923,000147:
041924,000148: 20,3556 43563 CS FCARD # NOTE SGN CHNG FCARD(+) TO CARD(-)
041925,000149: 20,3557 55663 TS CARD
041926,000150:
041927,000151: 20,3560 00002 TC Q # RETURN TO STRKTSTI+1 (OR CHKSTRK+2 OR +4)
041928,000152:
041929,000153: # THE OFFICIAL STROKE TEST WAVEFORM (3 JAN, 1967) CONSISTS OF FOUR STROKE SETS, AS FOLLOWS....
041930,000154:
041931,000155: # SET 1...10 BURSTS IN 1/2 AMP, 4 REVERSALS
041932,000156: # SET 2... 6 BURSTS IN 1/2 AMP, 6 REVERSALS
041933,000157: # SET 3... 5 BURSTS IN 1/2 AMP, 10 REVERSALS
041934,000158: # SET 4... 4 BURSTS IN 1/2 AMP, 14 REVERSALS
041935,000159:
041936,000160: # THE PULSE BURST SIZE (ESTROKER) IS PAD-LOADED (5 BITS AS OF 3 JAN, 1967)
041937,000161: # THE REMAINING WAVEFORM-GENERATING PARAMETERS ARE AS FOLLOWS....
041938,000162:
041939,000163: 20,3561 00012 FCADDY DEC 10 B-14 # NO. PULSE BURSTS IN 1/2 AMP, SET1..(+10)
041940,000164: 20,3562 00003 FREVS DEC 3 B-14 # NO. REVERSALS MINUS 1, SET1........( 3)
041941,000165:
041942,000166: 20,3563 00004 FCARD DEC 4 B-14 # NO. STROKE SETS....................(+ 4)
041943,000167:
041944,000168: 20,3564 00005 FCARD1 DEC 5 B-14 # NO. REVERSALS MINUS 1, SET2........( 5)
041945,000169:
041946,000170: 20,3565 00011 FCARD2 DEC 9 B-14 # 3........( 9)
041947,000171: 20,3566 00015 FCARD3 DEC 13 B-14 # 4........( 13)
041948,000172:
041949,000173: 20,3567 00006 FCARD4 DEC 6 B-14 # NO. PULSE BURSTS IN 1/2 AMP, SET2..(+ 6)
041950,000174: 20,3570 00005 FCARD5 DEC 5 B-14 # SET3..(+ 5)
041951,000175: 20,3571 00004 FCARD6 DEC 4 B-14 # SET4..(+ 4)
041952,000176:
041953,000177: 20,3572 5032 20MS = BIT2
041954,000178:
041955,000179: # STROKE TEST PACKAGE PROPER....
041956,000180:
041957,000181: 20,3572 E6,1661 EBANK= BUNKER
041958,000182:
041959,000183: 20,3572 00006 HACK EXTEND # ENTRY (IN T5 RUPT) FROM TVCDAPS
041960,000184: 20,3573 23661 QXCH BUNKER # SAVE Q FOR DAP RETURN
041961,000185:
041962,000186: 20,3574 35032 CAF 20MS # 2DAPSX2(PASSES/DAP)X2(CS/PASS)=8CS=TVCDT
041963,000187: 20,3575 05261 TC WAITLIST
041964,000188: 20,3576 E6,1661 EBANK= BUNKER
041965,000189: 20,3576 03601 40066 2CADR HACKWLST
041966,000190:
041967,000191: 20,3600 13603 TCF +3
041968,000192:
041969,000193: 20,3601 34367 HACKWLST CAF TCTSKOVR # ENTRY FROM WAITLIST
041970,000194: 20,3602 55661 TS BUNKER # BUNKER IS TC TASKOVER
041971,000195:
041972,000196: 20,3603 31574 CA STROKER # STROKE
041973,000197: 20,3604 26054 ADS TVCPITCH
041974,000198:
041975,000199: 20,3605 35021 CAF BIT11 # RELEASE THE ERROR COUNTERS
041976,000200: 20,3606 00006 EXTEND
041977,000201: 20,3607 05014 WOR CHAN14
041978,000202: 20,3610 25657 INCR CADDY # COUNT DOWN THE NO. BURSTS, THIS SLOPE
041979,000203: 20,3611 41657 CS CADDY
041980,000204: 20,3612 00006 EXTEND
041981,000205: 20,3613 63615 BZMF +2
041982,000206: 20,3614 01661 TC BUNKER # EXIT, WHILE ON A SLOPE
041983,000207:
041984,000208: 20,3615 11662 CCS REVS
041985,000209: 20,3616 13636 TCF REVUP # POSITIVE REVS
041986,000210: 20,3617 13642 TCF REVUP +4 # FINAL REVERSAL, THIS SET
041987,000211:
041988,000212: 20,3620 25663 INCR CARD # NEGATIVE REVS SET LAST PASS, READY FOR
041989,000213: 20,3621 41663 CS CARD # THE NEXT SET. CHECK IF NO MORE SETS
041990,000214: 20,3622 00006 EXTEND
041991,000215: 20,3623 13634 BZF STROKILL # ALL SETS COMPLETED
041992,000216:
041993,000217: 20,3624 51663 INDEX CARD
041994,000218: 20,3625 33567 CAF FCARD +4 # PICK UP NO. REVERSALS (-), NEXT SET
041995,000219: 20,3626 55662 TS REVS # REINITIALIZE
041996,000220: 20,3627 51663 INDEX CARD
041997,000221: 20,3630 43572 CS FCARD +7 # PICK UP NO. BURSTS IN 1/2AMP, NEXT SET
041998,000222: 20,3631 55660 TS N # REINITIALIZE
041999,000223: 20,3632 55657 TS CADDY
042000,000224: 20,3633 01661 TC BUNKER # EXIT, AT END OF SET
042001,000225:
042002,000226: 20,3634 55574 STROKILL TS STROKER # RESET (TO +0) TO END TEST
042003,000227: 20,3635 01661 TC BUNKER # EXIT, STROKE TEST FINIS
042004,000228:
042005,000229: 20,3636 55662 REVUP TS REVS # ALL REVERSALS EXCEPT LAST OF SET
042006,000230: 20,3637 31660 CA N
042007,000231: 20,3640 60000 DOUBLE # 2 X 1/2AMP
042008,000232: 20,3641 13645 TCF +4
042009,000233:
042010,000234: 20,3642 45033 +4 CS ONE # FINAL REVERSAL, THIS SET
042011,000235: 20,3643 55662 TS REVS # PREPARE TO BRANCH TO NEW BURST
042012,000236: 20,3644 31660 CA N # JUST RETURN TO ZERO, FINAL SLOPE OF SET
042013,000237: 20,3645 55657 TS CADDY # CADUP
042014,000238:
042015,000239: 20,3646 41574 CS STROKER # CHANGE SIGN OF SLOPE
042016,000240: 20,3647 55574 TS STROKER
042017,000241: 20,3650 01661 TC BUNKER # EXIT AT A REVERSAL (SLOPE CHANGE)
042018,000242:
End of include-file TVCSTROKETEST.agc. Parent file is MAIN.agc