Source Code
![]() |
These source-code files were derived from scans of the
Colossus 237 (Apollo 8 Command Module) program listing from the private collection of original
AGC developer Fred Martin. Scanning was by Ron Burkey. Pre-existing Colossus 249
(Apollo 9 CM) source files were used as a template, and changes between Colossus 249
and Colossus 237 were manually transcribed by a team of volunteers. 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, 1968Note that the date is the date of the printout, not the date of the program revision. |
038997,000002: ## Copyright: Public domain.
038998,000003: ## Filename: TVCINITIALIZE.agc
038999,000004: ## Purpose: Part of the source code for Colossus build 237.
039000,000005: ## This is for the Command Module's (CM) Apollo Guidance
039001,000006: ## Computer (AGC), for Apollo 8.
039002,000007: ## Assembler: yaYUL
039003,000008: ## Contact: Jim Lawton <jim DOT lawton AT gmail DOT com>
039004,000009: ## Website: www.ibiblio.org/apollo/index.html
039005,000010: ## Page Scans: www.ibiblio.org/apollo/ScansForConversion/Colossus237/
039006,000011: ## Mod history: 2011-03-06 JL Adapted from corresponding Colossus 249 file.
039007,000012: ## 2011-04-17 JL Removed temporary line.
039008,000013: ## 2017-01-01 RSB Proofed comment text using octopus/ProoferComments,
039009,000014: ## and fixed errors found.
039010,000015:
![]() |
Page 896 |
039012,000017: # NAME TVCDAPON (TVC DAP INITIALIZATION AND STARTUP CALL)
039013,000018: # MOD NO 3 DATE 8 JUNE,1967
039014,000019: # MOD BY ENGEL LOG SECTION P40-P47
039015,000020:
039016,000021: # FUNCTIONAL DESCRIPTION
039017,000022: # PERFORMS TVCDAP INITIALIZATION (GAINS, TIMING PARAMETERS, FILTER VARIABLES, ETC.)
039018,000023: # COMPUTES STEERING (S40.8) GAIN KPRIMEDT, AND ZEROES PASTDELV,+1 VARIABLE
039019,000024: # MAKES INITIALIZATION CALL TO ..NEEDLER.. FOR TVC DAP NEEDLES-SETUP
039020,000025: # PERFORMS INITIALIZATION FOR ROLL DAP
039021,000026: # CALLS TVCEXECUTIVE AT TVCEXEC, VIA WAITLIST
039022,000027: # CALLS TVCDAP CDU-RATE INITIALIZATION PKG AT DAPINIT VIA T5
039023,000028: # MRCLEAN AND TVCINIT4 ARE POSSIBLE TVC-RESTART ENTRIES
039024,000029: # CALLING SEQUENCE - T5LOC=2CADR(TVCDAPON,EBANK=BZERO), T5=.6SECT5
039025,000030: # IN PARTICULAR, CALLED BY ..IGNOVER..
039026,000031: # NORMAL EXIT MODE
039027,000032: # TCF RESUME
039028,000033: # SUBROUTINES CALLED
039029,000034: # NEEDLER, MASSPROP
039030,000035: # ALARM OR ABORT EXIT MODES
039031,000036: # NONE
039032,000037: # ERASABLE INITIALIZATION REQUIRED
039033,000038: # CSMMASS, LEMMASS, DAPDATR1 (FOR MASSPROP SUBROUTINE)
039034,000039: # TVC PAD LOADS (SEE LEVEL III DAP AND/OR P40 TESTS)
039035,000040: # PACTOFF, YACTOFF, CDUX
039036,000041: # TVCPHASE, T5BITS OF FLAGWRD6, FOR RESTART PROTECTION (SEE IGNOVER)
039037,000042: # OUTPUT
039038,000043: # ALL TVC AND ROLL DAP ERASABLES, FLAGWRD6 (BITS 13,14), T5, WAITLIST
039039,000044: # DEBRIS
039040,000045: # NONE
039041,000046:
039042,000047: 31,3766 COUNT* $$/INIT
039043,000048: 17,2032 BANK 17
039044,000049: 17,2000 SETLOC DAPS7
039045,000050: 17,2000 BANK
039046,000051:
039047,000052: 17,2032 E6,1742 EBANK= BZERO
039048,000053:
039049,000054: 17,2032 22016 TVCDAPON LXCH BANKRUPT # T5 RUPT ARRIVAL (CALL BY DOTVCON - P40)
039050,000055: 17,2033 00006 EXTEND # SAVE Q REQUIRED IN RESTARTS (MRCLEAN AND
039051,000056: 17,2034 22012 QXCH QRUPT # TVCINIT4 ARE ENTRIES)
039052,000057: 17,2035 32207 MRCLEAN CAF NZERO # NUMBER TO ZERO, LESS ONE (MUST BE ODD)
039053,000058: # TVC RESTARTS ENTER HERE (NEW BANK)
039054,000059: 17,2036 10000 +1 CCS A
039055,000060: 17,2037 55447 TS CNTR
039056,000061: 17,2040 34714 CAF ZERO
039057,000062: 17,2041 54001 TS L
039058,000063: 17,2042 51447 INDEX CNTR
039059,000064: 17,2043 53530 DXCH OMEGAYC # FIRST (LAST) TWO LOCATIONS
039060,000065: 17,2044 11447 CCS CNTR
039061,000066: 17,2045 12036 TCF MRCLEAN +1
![]() |
Page 897 |
039063,000068: 17,2046 00006 EXTEND # SET UP ANOTHER T5 RUPT TO CONTINUE
039064,000069: 17,2047 32214 DCA INITLOC2 # INITIALIZATION AT TVCINIT1
039065,000070: 17,2050 53313 DXCH T5LOC # THE PHSCHK2 ENTRY (REDOTVC) AT TVCDAPON
039066,000071: 17,2051 34672 CAF POSMAX # +3 IS IN ANOTHER BANK. MUST RESET
039067,000072: 17,2052 54030 TS TIME5 # BBCON TOO (FULL 2CADR), FOR THAT
039068,000073: 17,2053 15222 ENDMRC TCF RESUME # ENTRY.
039069,000074:
039070,000075: 17,2054 22016 TVCINIT1 LXCH BANKRUPT
039071,000076: 17,2055 00006 EXTEND
039072,000077: 17,2056 22012 QXCH QRUPT
039073,000078:
039074,000079: 17,2057 04633 TC IBNKCALL # UPDATE IXX, IAVG/TLX FOR DAP GAINS (R03
039075,000080: 17,2060 13176 CADR MASSPROP # OR NOUNS 46 AND 47 MUST BE CORRECT)
039076,000081:
039077,000082: 17,2061 32030 CAF MDOTLO # SPS FLOW RATE, SC.AT B+3 KG/CS
039078,000083: 17,2062 00006 EXTEND
039079,000084: 17,2063 72210 MP ONETHOU
039080,000085: 17,2064 55647 TS TENMDOT # 10-SEC MASS LOSS B+16 KG
039081,000086: 17,2065 40000 COM
039082,000087: 17,2066 61474 AD CSMMASS
039083,000088: 17,2067 55662 TS MASSTMP # DECREMENT FOR FIRST 10 SEC OF BURN
039084,000089:
039085,000090: 17,2070 31466 CAE DAPDATR1 # CHECK LEM-ON/OFF
039086,000091: 17,2071 74675 MASK BIT14
039087,000092: 17,2072 10000 CCS A
039088,000093: 17,2073 34712 CAF BIT1 # LEM-ON (BIT1)
039089,000094: 17,2074 55447 TS CNTR # LEM-OFF (ZERO)
039090,000095:
039091,000096: 17,2075 51447 INDEX CNTR # PICK UP LM-OFF,-ON KTLX/I
039092,000097: 17,2076 31416 CAE EKTLX/I
039093,000098: 17,2077 55646 TS KTLX/I
039094,000099:
039095,000100: 17,2100 04633 TC IBNKCALL # COMPUTE 1/CONACC, VARK
039096,000101: 17,2101 35145 CADR S40.15
039097,000102:
039098,000103: 17,2102 31420 TVCINIT2 CAE ETVCDT/2 # LEM-ON VALUE (PAD-LOAD, CS / 2)
039099,000104: 17,2103 54001 TS L
039100,000105: 17,2104 34711 CAF BIT2 # LEM-OFF VALUE (4CS / 2)
039101,000106: 17,2105 51447 INDEX CNTR
039102,000107: 17,2106 30000 CAE A
039103,000108: 17,2107 55644 TS KPRIMEDT # (TEMP STORE)
039104,000109:
039105,000110: 17,2110 40000 COM # PREPARE T5TVCDT
039106,000111: 17,2111 64672 AD POSMAX
039107,000112: 17,2112 64712 AD BIT1
039108,000113: 17,2113 55635 TS T5TVCDT
039109,000114:
039110,000115: 17,2114 44674 CS BIT15 # RESET SWTOVER FLAG
039111,000116: 17,2115 70105 MASK FLAGWRD9
039112,000117: 17,2116 54105 TS FLAGWRD9
![]() |
Page 898 |
039114,000119: 17,2117 51447 INDEX CNTR # PICK UP LEM-OFF,-ON KPRIME
039115,000120: 17,2120 31413 CAE EKPRIME
039116,000121: 17,2121 00006 EXTEND
039117,000122: 17,2122 71644 MP KPRIMEDT # (TVCDT/2, SC.AT B+14CS)
039118,000123: 17,2123 22000 LXCH A # SC.AT PI/8 (DIMENSIONLESS)
039119,000124: 17,2124 53645 DXCH KPRIMEDT
039120,000125:
039121,000126: 17,2125 51447 INDEX CNTR # PICK UP LEM-OFF,-ON REPFRAC
039122,000127: 17,2126 31423 CAE EREPFRAC
039123,000128: 17,2127 55652 TS REPFRAC
039124,000129:
039125,000130: 17,2130 37716 CAF NEGONE # PREVENT STROKE TEST UNTIL CALLED
039126,000131: 17,2131 55664 TS STRKTIME
039127,000132:
039128,000133: 17,2132 34374 CAF NINETEEN # SET VCNTR FOR VARIABLE-GAIN UPDATES IN
039129,000134: 17,2133 55653 TS VCNTR # 10 SECONDS (TVCEXEC 1/2 SEC RATE)
039130,000135: 17,2134 55444 TS V97VCNTR # FOR ENGFAIL (R41) LOGIC
039131,000136:
039132,000137: 17,2135 31421 CAE ETSWITCH # PREPARE SWITCHOVER COUNTER
039133,000138: 17,2136 54001 TS L
039134,000139: 17,2137 60000 DOUBLE # (COUNTER DECREMENTS EVERY 1/2 SEC)
039135,000140: 17,2140 22000 LXCH A # LEM-OFF IN A, LEM-ON IN L
039136,000141: 17,2141 51447 INDEX CNTR
039137,000142: 17,2142 30000 CAE A
039138,000143: 17,2143 67716 AD NEGONE
039139,000144: 17,2144 55447 TS CNTR # CNTR = 2(SWITCHOVER TIME, SEC) -1
039140,000145:
039141,000146:
039142,000147: 17,2145 31425 TVCINIT3 CAE PACTOFF # TRIM VALUES TO TRIM-TRACKERS, OUTPUT
039143,000148: 17,2146 55625 TS PDELOFF # TRACKERS, OFFSET-UPDATES, AND
039144,000149: 17,2147 55631 TS PCMD # OFFSET-TRACKER FILTERS
039145,000150: 17,2150 55621 TS DELPBAR # NOTE, LO-ORDER DELOFF,DELBAR ZEROED
039146,000151:
039147,000152: 17,2151 31426 CAE YACTOFF
039148,000153: 17,2152 55627 TS YDELOFF
039149,000154: 17,2153 55632 TS YCMD
039150,000155: 17,2154 55623 TS DELYBAR
039151,000156:
039152,000157: 17,2155 41501 NEEDLEIN CS RCSFLAGS # SET BIT 3 FOR INITIALIZATION PASS AND GO
039153,000158: 17,2156 74710 MASK BIT3 # TO NEEDLER. WILL CLEAR FOR TVC DAP
039154,000159: 17,2157 27501 ADS RCSFLAGS # (RETURNS AFTER CADR)
039155,000160: 17,2160 04633 TC IBNKCALL
039156,000161: 17,2161 42404 CADR NEEDLER
039157,000162:
039158,000163: 17,2162 34714 TVCINIT4 CAF ZERO # SET TVCPHASE TO INDICATE TVCDAPON-THRU-
039159,000164: 17,2163 55654 TS TVCPHASE # NEEDLEIN INITIALIZATION FINISHED.
039160,000165: # (POSSIBLE TVC-RESTART ENTRY)
039161,000166:
039162,000167: 17,2164 30032 CAE CDUX # PREPARE ROLL DAP LADDERS
039163,000168: 17,2165 55672 TS OGANOW
![]() |
Page 899 |
039165,000170: # ROLL DAPS RE-START UPON A RESTART, BUT
039166,000171: # RETAIN ORIGINAL OGAD (IGNOVER CDUX)
039167,000172:
039168,000173: 17,2166 34676 CAF BIT13 # IF ENGINE IS ALREADY OFF, ENGINOFF HAS
039169,000174: 17,2167 00006 EXTEND # ALREADY ESTABLISHED THE POST-BURN
039170,000175: 17,2170 02011 RAND DSALMOUT # CSMMASS (MASSBACK DOES IT). DONT
039171,000176: 17,2171 00006 EXTEND # TOUCH CSMMASS. IF ENGINE IS ON,
039172,000177: 17,2172 12175 BZF +3 # THEN ITS OK TO DO THE COPYCYCLE
039173,000178: # EVEN BURNS LESS THAN 0.4 SEC ARE AOK
039174,000179:
039175,000180: 17,2173 31662 CAE MASSTMP # COPYCYCLE
039176,000181: 17,2174 55474 TS CSMMASS
039177,000182:
039178,000183: 17,2175 34731 +3 CAF .5SEC # CALL TVCEXECUTIVE (ROLLDAP CALL, ETC)
039179,000184: 17,2176 05140 TC WAITLIST
039180,000185: 17,2177 E6,1742 EBANK= BZERO
039181,000186: 17,2177 02660 34066 2CADR TVCEXEC
039182,000187:
039183,000188:
039184,000189: 17,2201 00006 EXTEND # CALL FOR DAPINIT
039185,000190: 17,2202 32212 DCA DAPINIT5
039186,000191: 17,2203 53313 DXCH T5LOC
039187,000192: 17,2204 31635 CAE T5TVCDT # (ALLOW TIME FOR RESTART COMPUTATIONS)
039188,000193: 17,2205 54030 TS TIME5
039189,000194:
039190,000195: 17,2206 15222 ENDTVCIN TCF RESUME
039191,000196:
039192,000197:
039193,000198: 17,2207 00101 NZERO DEC 65 B-14 # MUST BE ODD FOR MRCLEAN
039194,000199:
039195,000200: 17,2210 4374 NINETEEN = VD1
039196,000201:
039197,000202: 17,2210 03720 ONETHOU DEC 1000 B-13 # KG/CS B3 TO KG/10SEC B16 CONVERSION
039198,000203:
039199,000204: 17,2211 E6,1742 EBANK= BZERO
039200,000205: 17,2211 03075 40066 DAPINIT5 2CADR DAPINIT
039201,000206:
039202,000207:
039203,000208: 17,2213 E6,1742 EBANK= BZERO
039204,000209: 17,2213 02054 36066 INITLOC2 2CADR TVCINIT1
End of include-file TVCINITIALIZE.agc. Parent file is MAIN.agc