Source Code

These source-code files were obtained by digitally photographing the Colossus 237 program listing from the private collection of original AGC developer Fred Martin, and then modifying pre-existing Colossus 249 (Apollo 9) source files to incorporate changes. 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, 1968

039591,000002:                                                                                                 #  Copyright:    Public domain.
039592,000003:                                                                                                 #  Filename:      TVCRESTARTS.agc
039593,000004:                                                                                                 #  Purpose:      Part of the source code for Colossus build 237.
039594,000005:                                                                                                 #                This is for the Command Module's (CM) Apollo Guidance
039595,000006:                                                                                                 #                Computer (AGC), we believe for Apollo 8.
039596,000007:                                                                                                 #  Assembler:    yaYUL
039597,000008:                                                                                                 #  Contact:      Jim Lawton <jim DOT lawton AT gmail DOT com>
039598,000009:                                                                                                 #  Website:      www.ibiblio.org/apollo/index.html
039599,000010:                                                                                                 #  Page scans:   www.ibiblio.org/apollo/ScansForConversion/Colossus237/
039600,000011:                                                                                                 #  Mod history:  2011-03-06 JL    Adapted from corresponding Colossus 249 file.
039601,000012: 
039602,000013:                                                                                                 # # Page 913
039603,000014:                                                                                                 #  NAME....TVCRESTART PACKAGE,  CONSISTING OF REDOTVC, ENABL1, 2, CMDSOUT, PHSCHK2, ETC.
039604,000015:                                                                                                 #  LOG SECTION....TVCRESTART PACKAGE    SUBROUTINE....DAPCSM
039605,000016:                                                                                                 #  MOD BY ENGEL                         DATE....19 OCT, 1967
039606,000017: 
039607,000018:                                                                                                 #  FUNCTIONAL DESCRIPTION....
039608,000019: 
039609,000020:                                                                                                 #      *RESTART-PROOFS THE TVC DAPS, INCLUDING PITCHDAP, YAWDAP,
039610,000021:                                                                                                 #       TVCEXECUTIVE, ROLL DAP, TVCINIT4, TVCDAPON, AND STROKE TEST
039611,000022:                                                                                                 #      *TVC RESTARTS DESERVE SPECIAL CONSIDERATION IN SEVERAL AREAS.
039612,000023:                                                                                                 #       RESTART DOWN-TIME IS IMPORTANT BECAUSE OF THE TRANSIENTS INTRODUCED
039613,000024:                                                                                                 #       BY THE THRUST VECTOR RETURN TO THE ACTUATOR MECHANICAL NULLS
039614,000025:                                                                                                 #       FOLLOWING TVC- AND OPTICS-ERROR-COUNTER-DISENABLES (CHANNEL 12).
039615,000026:                                                                                                 #       TVC    USES A MIXTURE OF WAITLIST, T5, T6, AND JOB CALLS. THERE IS
039616,000027:                                                                                                 #       FILTER MEMORY (UP TO 7TH ORDER) TO BE PROTECTED IF WILD TRANSIENTS
039617,000028:                                                                                                 #       ARE TO BE AVOIDED. SEVERAL COUNTERS ARE INVOLVED FOR TIMING TVC
039618,000029:                                                                                                 #       EVENTS SUCH AS SWITCHOVER AND STROKE TEST STARTUPS AND RE-STARTUPS.
039619,000030:                                                                                                 #       THE TVC GAINS ARE DECREMENTED. THE GIMBAL TRIM ESTIMATORS AND THE
039620,000031:                                                                                                 #       BODY AXIS ATTITUDE ERROR INTEGRATORS INVOLVE DIGITAL SUMMATION.
039621,000032:                                                                                                 #       DIGITAL DIFFERENTIATORS ARE INVOLVED IN THE BODY AXIS RATE ESTIMA-
039622,000033:                                                                                                 #       TIONS AND IN THE OUTPUTTING OF ACTUATOR COMMANDS. THERE IS AN
039623,000034:                                                                                                 #       OFFSET-TRACKER-FILTER TO PROTECT. ETC., ETC.
039624,000035:                                                                                                 #      *THOSE QUANTITIES WHICH MUST BE PROTECTED ARE STORED IN TEMPORARY
039625,000036:                                                                                                 #       REGISTERS AS THEY ARE COMPUTED, FOR UPDATING THE REAL REGISTERS
039626,000037:                                                                                                 #       DURING COPYCYCLES.
039627,000038:                                                                                                 #      *THE SEVERAL COPYCYCLES ARE EACH PROTECTED BY PHASE POINTS AT THEIR
039628,000039:                                                                                                 #       BEGINNING AND AT THEIR TERMINATION. THE PHASE POINTS ARE SIMPLY
039629,000040:                                                                                                 #       ..INCR.. INSTRUCTIONS,   EITHER ..INCR TVCEXPHS.. FOR COPYCYCLES
039630,000041:                                                                                                 #       IN THE TVCEXECUTIVE, OR ..INCR TVCPHASE.. FOR THE PITCH AND YAW
039631,000042:                                                                                                 #       COPYCYCLES. INDEXING ON EACH OF THESE POINTERS THEN PERMITS A
039632,000043:                                                                                                 #       RETURN TO THE APPROPRIATE RESTART POINTS.
039633,000044:                                                                                                 #      *IF A RESTART OCCURS DURING EITHER COPYCYCLE, THAT COPYCYCLE IS
039634,000045:                                                                                                 #       COMPLETED. THEN THE NORMAL TVCINIT4....DAPINIT....PITCHDAP STARTUP
039635,000046:                                                                                                 #       SEQUENCE IS CALLED UPON TO GET THINGS GOING AGAIN.
039636,000047:                                                                                                 #      *TVC-ENABLE AND OPTICS-ERROR-COUNTER ENABLE MUST BE SET ASAP
039637,000048:                                                                                                 #       (ALLOWING FOR PROCEDURAL DELAYS). THEN THE ENGINES ARE COMMANDED
039638,000049:                                                                                                 #       TO THE P,YACTOFF TRIM VALUES. THE DAPS ARE THEN READY TO GO ON THE
039639,000050:                                                                                                 #       AIR, WITH THE REGULAR STARTUP SEQUENCE, EITHER AT MRCLEAN FOR A
039640,000051:                                                                                                 #       COMPLETE INITIALIZATION OR AT TVCINIT4 FOR A PARTIAL INITIALIZATION
039641,000052:                                                                                                 #      *FOR RESTARTS PRIOR TO THE SETTING OF THE T5 BITS IN IGNOVER THE
039642,000053:                                                                                                 #       PRE40.6 SECTION OF S40.6 TAKES CARE OF RE-ESTABLISHING TRIMS.
039643,000054:                                                                                                 #      *IF A RESTART OCCURS DURING THE TVCEXEC....TVCEXFIN SEQUENCE THE
039644,000055:                                                                                                 #       COMPUTATIONS WILL BE COMPLETED, STARTING AT THE APPROPRIATE RESTART
039645,000056:                                                                                                 #       POINT, AFTER THE DAPS ARE READY TO GO ON THE AIR.
039646,000057:                                                                                                 #      *IF A RESTART OCCURS PRIOR TO TVCINIT4 (TVCPHAS = -1) E.G. DURING
039647,000058:                                                                                                 #       THE EARLY DAP INITIALIZATION PHASE, THE DAP STARTUP SEQUENCE IS
039648,000059:                                                                                                 #       ENTERED AT MRCLEAN FOR A FULL INITIALIZATION.
039649,000060:                                                                                                 #      *RESTARTS ARE NOT CRITICAL TO THE ROLL DAP PERFORMANCES HENCE THE
039650,000061:                                                                                                 #       ROLL DAP IS MERELY RESTARTED.
039651,000062:                                                                                                 #      *RESTARTS DURING A STROKE TEST (STROKER IS NON-ZERO) WILL CAUSE THE
039652,000063:                                                                                                 #       STROKE TEST TO BE TERMINATED. A NEW V68 ENTRY WILL BE REQUIRED
039653,000064:                                                                                                 # # Page 914
039654,000065:                                                                                                 #       TO GET IT GOING AGAIN (NO AUTOMATIC RESTART).
039655,000066:                                                                                                 #      *REDOTVC IS REACHED FOLLOWING ANY RESTART WHICH FINDS THE T5 BITS
039656,000067:                                                                                                 #       (BITS 15,14 OF FLAGWRD6) SET FOR TVC. IGNOVER PREPARES TVCPHASE =-1
039657,000068:                                                                                                 #       AND TVC EXPHS = 0 JUST BEFORE SETTING THESE BITS, JUST BEFORE
039658,000069:                                                                                                 #       MAKING THE T5 CALL TO TVCDAPON.  T.V.N.G. TAKES OVER THE T5 CLOCK
039659,000070:                                                                                                 #       TO CALL RCSUP/RCSDAPON WHICH RESETS THE T5 BITS(FOR RCS) ON A
039660,000071:                                                                                                 #       NORMAL SHUTDOWN.
039661,000072: 
039662,000073:                                                                                                 #  CALLING SEQUENCE....T5, IN PARTICULAR BY ELRSKIP OF FRESH START/RESTART
039663,000074: 
039664,000075:                                                                                                 #  NORMAL EXIT MODES....RESUME, NOQRSM, POSTJUMP (TO TVCINIT4 OR MRCLEAN)
039665,000076: 
039666,000077:                                                                                                 #  ALARM OR ABORT EXIT MODES....NONE
039667,000078: 
039668,000079:                                                                                                 #  SUBROUTINES CALLED....
039669,000080: 
039670,000081:                                                                                                 #      *PCOPY+1, YCOPY+1 (PITCH AND YAW COPYCYCLES)
039671,000082:                                                                                                 #      *ENABLE1,2, CMDSOUT (RE-ESTABLISH ACTUATOR TRIMS)
039672,000083:                                                                                                 #      *MRCLEAN OR TVCINIT4 (TVCDAP INITIALIZATIONS)
039673,000084:                                                                                                 #      *EXRSTRT AND TVCEXECUTIVE PHASE POINTS 1 THRU 9
039674,000085:                                                                                                 #      *WAITLIST, IBNKCALL, POSTJUMP, ISWCALL
039675,000086: 
039676,000087:                                                                                                 #  OTHER INTERFACES....IGNOVER AND RCSDAPON (T5 BITS), ELRSKIP (CALLS IT)
039677,000088: 
039678,000089:                                                                                                 #  ERASABLE ININTIALIZATION REQUIRED....
039679,000090: 
039680,000091:                                                                                                 #      *T5 BITS, TVCPHASE, TVCEXPHS
039681,000092:                                                                                                 #      *TVC DAP VARIABLES
039682,000093:                                                                                                 #      *OPERATIONS PERFORMED BY REDOTVC ARE BASED ON THE ASSUMPTION THAT
039683,000094:                                                                                                 #       THE TVC DAPS ARE RUNNING NORMALLY
039684,000095: 
039685,000096:                                                                                                 #  OUTPUT....
039686,000097: 
039687,000098:                                                                                                 #      *PITCH AND YAW TVC DAP COPYCYCLES COMPLETED IF INTERUPTED
039688,000099:                                                                                                 #      *TVCEXECUTIVE COMPLETED IF INTERUPTED
039689,000100:                                                                                                 #      *STROKE TEST TERMINATED IF INTERRUPTED
039690,000101:                                                                                                 #      *ACTUATOR TRIMS RE-ESTABLISHED (ACTUATORS BACK ON THE AIR)
039691,000102:                                                                                                 #      *TVC DAP INITIALIZATION AS REQUIRED
039692,000103:                                                                                                 #      *ALL TVC DAP OPERATIONS ON THE AIR
039693,000104: 
039694,000105:                                                                                                 #  DEBRIS....TVC TEMPORARIES IN EBANK6
039695,000106: 
039696,000107: 
039697,000108: 16,3165                                          BANK     16                                    
039698,000109: 16,2000                                          SETLOC   DAPROLL                               
039699,000110: 16,2000                                          BANK                                           
039700,000111: 16,3165  E6,1654                                 EBANK=   TVCPHASE                              
039701,000112: 
039702,000113: 16,3165                                          COUNT*   $$/RSRT                               
039703,000114: 16,3165           22016        REDOTVC           LXCH     BANKRUPT                              #  TVC RESTART PACKAGE
039704,000115:                                                                                                 # # Page 915
039705,000116: 16,3166           00006                          EXTEND                                         
039706,000117: 16,3167           22012                          QXCH     QRUPT                                 #  (  ..TCR..  IN  ..FINCOPY..  )
039707,000118: 
039708,000119: 16,3170           11661        EXECPHS           CCS      TVCEXPHS                              #  CHECK TVCEXECUTIVE PHASE
039709,000120: 16,3171           13173                          TCF      +2                                    #       MUST RESTART TVCEXECUTIVE
039710,000121: 16,3172           13177                          TCF      TVCDAPHS                              #       NO NEED TO RESTART TVCEXECUTIVE
039711,000122: 
039712,000123: 16,3173           34334                          CAF      NINE                                  #  9CS DELAY TO FORCE EXRSTRT TO OCCUR
039713,000124: 16,3174           05140                          TC       WAITLIST                              #       BEFORE PITCHDAP, AFTER CMDSOUT
039714,000125: 16,3175  E6,1661                                 EBANK=   TVCEXPHS                              
039715,000126: 16,3175           03270 34066                    2CADR    EXRSTRT                               
039716,000127: 
039717,000128: 
039718,000129: 16,3177           47700        TVCDAPHS          CS       OCT37776                              #  CHECK BITS 15 AND 1 OF TVCPHASE TO SEE
039719,000130: 16,3200           71654                          MASK     TVCPHASE                              #       DAP RESTART LOCATION  (-1,1,2,3)
039720,000131: 16,3201           10000                          CCS      A                                     
039721,000132: 16,3202           13255                          TCF      FINCOPY                               #       FINISH THE COPYCYCLE FIRST
039722,000133: 16,3203           13205                          TCF      ENABL1                                #       JUST PREPARE THE OUTCOUNTERS AND GO
039723,000134: 16,3204           13261                          TCF      TRIM/CMD                              #       (RE-)DO P,YCMD INITIALIZATION FIRST
039724,000135: 
039725,000136: 
039726,000137: 16,3205           34703        ENABL1            CAF      BIT8                                  #  TVC ENABLE, FOLLOWED BY 40 MS (MIN) WAIT
039727,000138: 16,3206           00006                          EXTEND                                         #       (ENABL1 ENTRIES..+0,- CCS, FINCOPY)
039728,000139: 16,3207           05012                          WOR      CHAN12                                
039729,000140: 16,3210           33274                          CAF      TVCADDR                               #  WAIT,  CALLING ENABL2  (BBCON THERE)
039730,000141: 16,3211           55312                          TS       T5LOC                                 
039731,000142: 16,3212           33300                          CAF      TVCADDR    +4                         #       60MS  (TVCEXADR)
039732,000143: 16,3213           54030                          TS       TIME5                                 
039733,000144: 
039734,000145: 16,3214           15222                          TCF      RESUME                                
039735,000146: 
039736,000147: 
039737,000148: 16,3215           22016        ENABL2            LXCH     BANKRUPT                              #  CONTINUE PREPARATION OF OUTCOUNTERS
039738,000149: 
039739,000150: 16,3216           34711                          CAF      BIT2                                  #  OPTICS ERROR CNTR ENABLE, 4MS MIN WAIT
039740,000151: 16,3217           00006                          EXTEND                                         
039741,000152: 16,3220           05012                          WOR      CHAN12                                
039742,000153: 16,3221           33276                          CAF      TVCADDR    +2                         #  WAIT, CALLING CMDSOUT (BBCON THERE)
039743,000154: 16,3222           55312                          TS       T5LOC                                 
039744,000155: 16,3223           37700                          CAF      OCT37776                              #       20MS
039745,000156: 16,3224           54030                          TS       TIME5                                 
039746,000157: 
039747,000158: 16,3225           15224                          TCF      NOQRSM                                
039748,000159: 
039749,000160: 
039750,000161: 16,3226           22016        CMDSOUT           LXCH     BANKRUPT                              #  CONTNUE PREPARATION OF OUTCOUNTERS
039751,000162: 16,3227           00006                          EXTEND                                         
039752,000163: 16,3230           22012                          QXCH     QRUPT                                 
039753,000164: 
039754,000165:                                                                                                 # # Page 916
039755,000166: 16,3231           44714                          CS       ZERO                                  #  MOST RECENT ACTUATOR COMMANDS
039756,000167: 16,3232           61631                          AD       PCMD                                  #       (AVOID +0)
039757,000168: 16,3233           54054                          TS       TVCPITCH                              
039758,000169: 16,3234           44714                          CS       ZERO                                  
039759,000170: 16,3235           61632                          AD       YCMD                                  
039760,000171: 16,3236           54053                          TS       TVCYAW                                
039761,000172: 
039762,000173: 16,3237           34755                          CAF      PRIO6                                 #  RELEASE THE COUNTERS (BITS 11,12)
039763,000174: 16,3240           00006                          EXTEND                                         
039764,000175: 16,3241           05014                          WOR      CHAN14                                
039765,000176: 
039766,000177: 16,3242           41654        PHSCHK2           CS       TVCPHASE                              #  CHECK TVCPHASE AGAIN
039767,000178: 16,3243           00006                          EXTEND                                         
039768,000179: 16,3244           63247                          BZMF     +3                                    
039769,000180: 16,3245           04574                          TC       POSTJUMP                              #       IF NEGATIVE, RESTART AT MRCLEAN
039770,000181: 16,3246           36035                          CADR     MRCLEAN                               #            FOR FULL INITIALIZATION
039771,000182: 
039772,000183: 16,3247           11614        CHKSTRK           CCS      STROKER                               #  CHECK FOR STROKE TEST IN PROGRESS
039773,000184: 16,3250           13265                          TCF      TSTINITJ                              #  YES, KILL IT
039774,000185: 16,3251           13253                          TCF      +2                                    #  NO, PROCEED
039775,000186: 16,3252           13265                          TCF      TSTINITJ                              #  YES, KILL IT
039776,000187: 
039777,000188: 16,3253           04574                 +4       TC       POSTJUMP                              #       IF POSTIVE OR ZERO, RESTART AT
039778,000189: 16,3254           36162                          CADR     TVCINIT4                              #            TVCINIT4 (ZEROS TVCPHASE, AND
039779,000190:                                                                                                 #                                                     CALLS TVC DAPS)
039780,000191: 
039781,000192: 
039782,000193: 16,3255           51654        FINCOPY           INDEX    TVCPHASE                              #  PICK UP THE APPROPRIATE COPYCYCLE
039783,000194: 16,3256           33274                          CAF      TVCCADR                               
039784,000195: 16,3257           04637                          TCR      ISWCALL                               #  RE-ENTER THE COPYCYCLE, RETURN AT END
039785,000196: 16,3260           13205                          TCF      ENABL1                                #  NOW PREPARE THE OUTCOUNTERS
039786,000197: 
039787,000198: 
039788,000199: 16,3261           00006        TRIM/CMD          EXTEND                                         #  TVCDAPON INITIALIZATION NOT COMPLETED,
039789,000200: 16,3262           31426                          DCA      PACTOFF                               #       EG.  P,YCMD MAY NOT BE SET.  SET...
039790,000201: 16,3263           53632                          DXCH     PCMD                                  
039791,000202: 16,3264           13205                          TCF      ENABL1                                #  NOW PREPARE THE OUTCOUNTERS
039792,000203: 
039793,000204: 
039794,000205: 16,3265           34714        TSTINITJ          CAF      ZERO                                  #  DISABLE STROKE TEST (-0 SHOWS PRIOR V68)
039795,000206: 16,3266           55614                          TS       STROKER                               #  (+0 MEANS NEW V68 REQUIRED FOR STARTUP)
039796,000207: 
039797,000208: 
039798,000209: 16,3267           13253                          TCF      CHKSTRK    +4                         
039799,000210: 
039800,000211: 16,3270           51661        EXRSTRT           INDEX    TVCEXPHS                              #  TVCEXECUTIVE RESTARTS....GO TO
039801,000212: 16,3271           33300                          CAF      TVCEXADR                              #       APPROPRIATE RESTART POINT
039802,000213: 16,3272           50000                          INDEX    A                                     
039803,000214: 16,3273           10000                          TCF      0                                     
039804,000215: 
039805,000216:                                                                                                 # # Page 917
039806,000217:                                                                                                 #  TVC RESTART TABLES.... ORDER IS REQUIRED.   HI-ORDER WORDS ONLY, OF 2CADRS, SINCE BBCON IS ALREADY THERE.
039807,000218: 
039808,000219: 16,3274  16,3274               TVCADDR           =        TVCCADR                               #  TABLE OF CADRS, UNUSED LOCS FOR GENADRS
039809,000220: 16,3274           03215        TVCCADR           GENADR   ENABL2                                #  (FOR T5 CALL, UNUSED TABLE LOC)
039810,000221: 16,3275           40545                 +1       CADR     PCOPY      +1                         #  PITCH COPYCYCLE
039811,000222: 16,3276           03226                 +2       GENADR   CMDSOUT                               #  (FOR T5 CALL, UNUSED TABLE LOC)
039812,000223: 16,3277           41023                 +3       CADR     YCOPY      +1                         #  YAW COPYCYCLE
039813,000224: 16,3300           37772        TVCEXADR          OCT      37772                                 #  (UNUSED TABLE LOC, FILL WITH 60MS, T5)
039814,000225: 16,3301           02742                 +1       GENADR   EXECCOPY   +1                         #  TVCEXECUTIVE RESTART POINTS (ORDERED)
039815,000226: 16,3302           02750                 +2       GENADR   SWT/COR                               
039816,000227: 16,3303           03030                 +3       GENADR   SWTCOPY    +1                         
039817,000228: 16,3304           03050                 +4       GENADR   TEMPSET                               
039818,000229: 16,3305           03053                 +5       GENADR   CORSETUP                              
039819,000230: 16,3306           03111                 +6       GENADR   CORCOPY    +1                         
039820,000231: 16,3307           03122                 +7       GENADR   CNTRCOPY                              
039821,000232: 16,3310           03125                 +8D      GENADR   STRKUP                                
039822,000233: 16,3311           03140                 +9D      GENADR   STRKTCPY   +1                         

End of include-file TVCRESTARTS.agc.  Parent file is MAIN.agc