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