Source Code
These source-code files were obtained by digitally photographing
a Solarium 55 (Apollo 6) program listing from the American Computer Museum in
Bozeman, Montana. Photography was by Ron Burkey, with assistance from
museum curator George Keremedjiev and Montana
State University curator Kim Scott. The listing originally belonged to Eldon C. Hall,
who donated it to the museum. Volunteers then manually typed in the
source code or else modified similar pre-existing Colossus 249
(Apollo 9) source files to incorporate changes, although this transcription was
principally done by Jim Lawton and corrected by Ron Burkey.
Notations on the program listing read, in part:YUL SYSTEM FOR AGC4: REVISION 0 OF PROGRAM SOLRUM55 BY NASA 1021108-021 DEC. 4, 1966Note that the date is the date of the printout, not the date of the program revision. Due to statements by Jay Sampson, the original contractor from AC Electronics who created Solarium 54 (Apollo 4) from the earlier Corona (AS-202 mission) program, it is believed that Solarium 54 and Solarium 55 (Apollo 6) are actually identical programs. The change in numbering, from 54 to 55, is believed to be for some administrative purpose. Thus, it is believed that the source-code represented here is equally appropriate for both Apollo 4 and Apollo 6 missions. |
029963,000002: ## Copyright: Public domain.
029964,000003: ## Filename: VERIFICATION_ASSISTANCE_PROGRAMS.agc
029965,000004: ## Purpose: Part of the source code for Solarium build 55. This
029966,000005: ## is for the Command Module's (CM) Apollo Guidance
029967,000006: ## Computer (AGC), for Apollo 6.
029968,000007: ## Assembler: yaYUL --block1
029969,000008: ## Contact: Jim Lawton <jim DOT lawton AT gmail DOT com>
029970,000009: ## Website: www.ibiblio.org/apollo/index.html
029971,000010: ## Page Scans: www.ibiblio.org/apollo/ScansForConversion/Solarium055/
029972,000011: ## Mod history: 2009-09-21 JL Created.
029973,000012: ## 2016-08-20 RSB Typo.
029974,000013: ## 2016-12-28 RSB Proofed comment text using octopus/ProoferComments,
029975,000014: ## and fixed errors found.
029976,000015:
Page 754 |
029978,000017:
029979,000018: # WAITLIST EXERCISE PROGRAM. TIMES ARE GIVEN IN THE FORM NN + NN/32 + YY, WHERE THE NS REFER TO TIME
029980,000019: # SINCE THE BEGINNING OF THE TEST, AND YS ADDITIONAL MCT.
029981,000020:
029982,000021: 13,7205 BANK 13
029983,000022: 13,7205 30006 WLTEST XCH IN2
029984,000023: 13,7206 10006 CCS IN2 # GET IN PHASE WITH T3 INCREMENTS.
029985,000024: 13,7207 07211 TC +2
029986,000025: 13,7210 07206 TC -2
029987,000026:
029988,000027: 13,7211 10006 CCS IN2
029989,000028: 13,7212 07211 TC -1
029990,000029: 13,7213 50042 TS OUTCR1 # TO INITIALIZE.
029991,000030:
029992,000031: # THE FIRST TASK IS ENTERED INTO SLOT 1 WITH A T3 INCREMENT BETWEEN THE TWO T3 REFERENCES. CALL AT
029993,000032: # 10 +00/32 -25. SPECIFY WAIT TO 30/32.
029994,000033:
029995,000034: 13,7214 07310 TC OUTCR1WT
029996,000035: 13,7215 00035 DEC 29 B-14
029997,000036:
029998,000037: 13,7216 07310 TC OUTCR1WT # GO WAIT FOR THIS AND SPECIFY RESET TO
029999,000038: 13,7217 00052 DEC 42 B-14 # 20 +8/32.
030000,000039:
030001,000040: # AT 30/32 +16, WAIT 12 MCT BEFORE ENTERING TASK 1.
030002,000041:
030003,000042: 13,7220 35501 CAF ZERO # TUNING CONSTANT.
030004,000043: 13,7221 10000 CCS A
030005,000044: 13,7222 07221 TC -1
030006,000045: 13,7223 34516 CAF ONE # TASK ENTRY WITH T3 INC BETWEEN TWO T3
030007,000046: 13,7224 02173 TC WAITLIST # REFERENCES.
030008,000047: 13,7225 42240 CADR NOPLWAIT +2 # TASK IN HIGH SWITCHED BANK.
030009,000048:
030010,000049: 13,7226 07310 TC OUTCR1WT # WAIT FOR 20 +8/32. CALL FOR RESET TO
030011,000050: 13,7227 00027 DEC 23 B-14 # 20 +31/32.
030012,000051:
030013,000052: 13,7230 34516 CAF ONE # AT 20 +8/32 + 16, ENTER TASK 2 DUE AT
030014,000053: 13,7231 02173 TC WAITLIST # 30.
030015,000054: 13,7232 27332 CADR QTSK2
030016,000055:
Page 755 |
030018,000057:
030019,000058: # WAIT FOR 20 +31/32 +16 AND AT THAT TIME WAIT FOR T3 TO OVERFLOW BEFORE ENTERING TASK 3. REQUIRES RESET
030020,000059: # TO 30 +10/32.
030021,000060:
030022,000061: 13,7233 07310 TC OUTCR1WT
030023,000062: 13,7234 00013 DEC 11 B-14
030024,000063: 13,7235 10037 CCS TIME3
030025,000064: 13,7236 07235 TC -1
030026,000065: 13,7237 34516 CAF ONE # ENTER TASK 3 AFTER T3 OVF.
030027,000066: 13,7240 02173 TC WAITLIST
030028,000067: 13,7241 27333 CADR QTSK3
030029,000068:
030030,000069: 13,7242 07310 TC OUTCR1WT # TASK 3 IS DUE AT 40. WAIT FOR 30 +10/32
030031,000070: 13,7243 00065 DEC 53 B-14 # CALLING FOR RESET TO 40 +31/32.
030032,000071:
030033,000072: # AT 30 +10/32 +16, ENTER TASKS 4 AND 5 DUE SAME RUPT AT 50. THEY WILL BE INHIBITED FOR 6 MS SO THAT T3
030034,000073: # WILL TICK WHILE IT IS BEING RESET IN THE DISPATCH OF 5.
030035,000074:
030036,000075: 13,7244 35503 CAF TWO # ENTERED INTO SLOTS 2 AND 3.
030037,000076: 13,7245 02173 TC WAITLIST
030038,000077: 13,7246 27334 CADR QTSK4
030039,000078: 13,7247 35503 CAF TWO
030040,000079: 13,7250 02173 TC WAITLIST
030041,000080: 13,7251 03225 CADR TCTSKOVR # TASK IN FIXED-FIXED.
030042,000081:
030043,000082: 13,7252 07310 TC OUTCR1WT # WAIT FOR 40 +31/32 +16, CALLING FOR
030044,000083: 13,7253 00023 DEC 19 B-14 # RESET TO 50 +18/32.
030045,000084:
030046,000085: 13,7254 07311 TC OUTCR1WT +1 # AT 40 +31/32 +16, INHIBIT UNTIL
030047,000086: 13,7255 00030 DEC 24 B-14 # 50 +18/32 +16 AND RESET TO 60 +10/32.
030048,000087:
030049,000088: 13,7256 07310 TC OUTCR1WT # AT 50 +18/32 +16, WAIT UNTIL 60 10/32,
030050,000089: 13,7257 00025 DEC 21 B-14 # RESETTING TO 60 +31/32.
030051,000090:
Page 756 |
030053,000092:
030054,000093: # AT 60 +10/32 +16, ENTER TASKS 6 AND 7 DUE AT 70 AND 8 DUE AT 80. T3 WILL INCREMENT DURING TASK 7
030055,000094: # DISPATCH, MAKING TASK 8 DUE THAT INTERRUPT.
030056,000095:
030057,000096: 13,7260 34516 CAF ONE
030058,000097: 13,7261 02173 TC WAITLIST # ENTER TWO TASKS DUE SAME T3 RUPT AND
030059,000098: 13,7262 27340 CADR QTSK6 # ANOTHER DUE THE FOLLOWING RUPT.
030060,000099: 13,7263 34516 CAF ONE
030061,000100: 13,7264 02173 TC WAITLIST
030062,000101: 13,7265 27342 CADR QTSK7
030063,000102: 13,7266 35503 CAF TWO # A T3 INC WILL OCCUR WHILE TASK 7 IS
030064,000103: 13,7267 02173 TC WAITLIST # SETTING T3 FOR THIS TASK AND CAUSE IT TO
030065,000104: 13,7270 27343 CADR QTSK8 # BE THE THIRD TASK DUE THAT RUPT.
030066,000105:
030067,000106: 13,7271 07310 TC OUTCR1WT # WAIT UNTIL 60 +31/32 +16, INHINTING
030068,000107: 13,7272 00023 DEC 19 B-14 # 70 +18/32 +16.
030069,000108: 13,7273 07311 TC OUTCR1WT +1
030070,000109: 13,7274 00001 DEC 1 B-14
030071,000110:
030072,000111: 13,7275 34477 CAF FIVE # SYSTEMMATICALLY ENTER TASKS IN ALL 6
030073,000112: 13,7276 50115 TS MPAC # SLOTS.
030074,000113:
030075,000114: 13,7277 20016 QTSKLOOP RELINT
030076,000115: 13,7300 20017 INHINT
030077,000116: 13,7301 40115 CS MPAC
030078,000117: 13,7302 65362 AD SEVEN
030079,000118: 13,7303 02173 TC WAITLIST
030080,000119: 13,7304 27344 CADR QTSK10
030081,000120: 13,7305 10115 CCS MPAC
030082,000121: 13,7306 07276 TC QTSKLOOP -1
030083,000122:
030084,000123: 13,7307 07307 QENDTEST TC -0
030085,000124:
Page 757 |
030087,000126:
030088,000127: # THE FOLLOWING SUBROUTINE USES OUTCR1 AS A FINE TIMER DURING THE WAITLIST TEST.
030089,000128:
030090,000129: 13,7310 20016 OUTCR1WT RELINT
030091,000130: 13,7311 30001 XCH Q
030092,000131: 13,7312 50115 TS MPAC
030093,000132: 13,7313 20000 INDEX A
030094,000133: 13,7314 40000 CS 0 # NUMBER OF THIRTY-SECONDS OF 10MS TO WAIT
030095,000134: 13,7315 64522 AD HALF
030096,000135: 13,7316 64522 AD HALF
030097,000136: 13,7317 50116 TS MPAC +1 # NEW OUTCR SETTING.
030098,000137:
030099,000138: 13,7320 10042 CCS OUTCR1
030100,000139: 13,7321 07320 TC -1
030101,000140:
030102,000141: 13,7322 30116 OUTCR1W2 XCH MPAC +1
030103,000142: 13,7323 50042 TS OUTCR1
030104,000143: 13,7324 37331 CAF 1WTCODE
030105,000144: 13,7325 50012 TS OUT2
030106,000145: 13,7326 20017 INHINT
030107,000146: 13,7327 20115 INDEX MPAC
030108,000147: 13,7330 00001 TC 1
030109,000148:
030110,000149: 13,7331 26000 1WTCODE OCT 26000
030111,000150:
Page 758 |
030113,000152:
030114,000153: # TASKS FOR WAITLIST TESTER.
030115,000154:
030116,000155: 13,7332 02256 QTSK2 TC TASKOVER
030117,000156: 13,7333 02256 QTSK3 TC TASKOVER
030118,000157: 13,7334 37345 QTSK4 CAF QTSK4DEL # WAIT SO THAT T3 WILL TICK DURING DISPTCH
030119,000158: 13,7335 10000 CCS A
030120,000159: 13,7336 07335 TC -1
030121,000160: 13,7337 02256 TC TASKOVER
030122,000161:
030123,000162: 13,7340 37346 QTSK6 CAF QTSK6DEL
030124,000163: 13,7341 07335 TC QTSK4 +1
030125,000164:
030126,000165: 13,7342 02256 QTSK7 TC TASKOVER
030127,000166: 13,7343 02256 QTSK8 TC TASKOVER
030128,000167: 13,7344 02256 QTSK10 TC TASKOVER
030129,000168:
030130,000169: 13,7345 00115 QTSK4DEL DEC 77 B-14 # TUNING CONSTANTS.
030131,000170: 13,7346 00116 QTSK6DEL DEC 78 B-14
End of include-file VERIFICATION_ASSISTANCE_PROGRAMS.agc. Parent file is MAIN.agc