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. |
004669,000002: ## Copyright: Public domain.
004670,000003: ## Filename: RESTART_CONTROL.agc
004671,000004: ## Purpose: Part of the source code for Solarium build 55. This
004672,000005: ## is for the Command Module's (CM) Apollo Guidance
004673,000006: ## Computer (AGC), for Apollo 6.
004674,000007: ## Assembler: yaYUL --block1
004675,000008: ## Contact: Jim Lawton <jim DOT lawton AT gmail DOT com>
004676,000009: ## Website: www.ibiblio.org/apollo/index.html
004677,000010: ## Page Scans: www.ibiblio.org/apollo/ScansForConversion/Solarium055/
004678,000011: ## Mod history: 2009-09-21 JL Created.
004679,000012: ## 2016-08-22 RSB Typos.
004680,000013: ## 2016-12-28 RSB Proofed comment text using octopus/ProoferComments,
004681,000014: ## and fixed errors found.
004682,000015:
Page 120 |
004684,000017:
004685,000018: 2276 BANK 1
004686,000019:
004687,000020: # OF THE PHASE TABLE IN ALMOST CONTSTANT AGREEMENT. CALLING SEQUENCES ARE AS FOLLOWS:
004688,000021:
004689,000022: # TC PHASCHNG CHANGE GROUP G TO PHASE PPP (127 MAX).
004690,000023: # OCT PPP0G (CALL UNDER EXECUTIVE ONLY)
004691,000024:
004692,000025: # CAF -- CHANGE GROUP G TO THE PHASE ARRIVING IN
004693,000026: # TC NEWPHASE A (MAY BE CALLED ANYTIME).
004694,000027: # OCT 0000G
004695,000028:
004696,000029: # IN EACH CASE THE OLD PHASE IS RETURNED TO THE CALLER IN A. IF THE OLD PHASE WAS +0, CONTROL IS
004697,000030: # GIVEN TO A ROUTINE SPECIFIED IN A CADR TABLE. THIS ROUTINE MAY EXIT OR RETURN TO CALLER VIA SWRETURN.
004698,000031:
004699,000032: 2276 30001 PHASCHNG XCH Q
004700,000033: 2277 20017 INHINT
004701,000034: 2300 50642 TS RUPTREG4
004702,000035: 2301 20000 INDEX A
004703,000036: 2302 30000 CAF 0
004704,000037: 2303 50601 TS PHASDATA
004705,000038: 2304 73220 MASK LOW5 # (MAY WANT MORE GROUPS SOME DAY)
004706,000039: 2305 30601 XCH PHASDATA
004707,000040: 2306 25777 EXTEND
004708,000041: 2307 42311 MP -BIT9 # NOTE LP NOT SAVED.
004709,000042: 2310 02321 TC PHASCH2
004710,000043:
004711,000044: 2311 77377 -BIT9 OCT -400
004712,000045:
004713,000046: 2312 20017 NEWPHASE INHINT
004714,000047: 2313 30001 XCH Q
004715,000048: 2314 50642 TS RUPTREG4
004716,000049: 2315 20000 INDEX A
004717,000050: 2316 30000 CAF 0
004718,000051: 2317 50601 TS PHASDATA
004719,000052:
004720,000053: 2320 40001 CS Q
004721,000054: 2321 20601 PHASCH2 INDEX PHASDATA
004722,000055: 2322 50655 TS -PHASE1 -1 # PHASE1 IS FOR PROG NUM 1.
004723,000056: 2323 40000 COM
004724,000057: 2324 20601 INDEX PHASDATA
004725,000058: 2325 30647 XCH PHASE1 -1 # INTO PHASE1 FOR PROG 1.
004726,000059:
004727,000060: 2326 10000 CCS A
004728,000061: 2327 02332 TC +3
004729,000062:
004730,000063: 2330 02341 TC UPT # ON +0.
004731,000064:
004732,000065: 2331 45503 CS TWO # -1 IS INACTIVE STATE
004733,000066: 2332 64516 +3 AD ONE
004734,000067:
004735,000068: 2333 30642 PHASEXIT XCH RUPTREG4
Page 121 |
004737,000070: 2334 64516 AD ONE
004738,000071: 2335 50001 TS Q # WE MUST RELINT BEFORE RETURN.
004739,000072: 2336 30642 XCH RUPTREG4 # OLD PHASE BITS.
004740,000073: 2337 20016 RELINT
004741,000074: 2340 00001 TC Q
004742,000075:
004743,000076: 2341 20601 UPT INDEX PHASDATA
004744,000077: 2342 36651 CAF UPTCADR -1
004745,000078: 2343 05662 TC SWCALL
004746,000079:
004747,000080: 2344 35501 CAF ZERO # IF RETURN
004748,000081: 2345 02333 TC PHASEXIT
004749,000082:
Page 122 |
004751,000084:
004752,000085: # MAJOR MODE LIGHT MAINTENANCE ROUTINES.
004753,000086:
004754,000087: # ROUTINE TO CHECK EQUALITY BETWEEN THE MAJOR MODE DISPLAY AND THE ARGUMENT AT CALLER +1. RETURNS TO
004755,000088: # CALLER +2 IF NOT AND CALLER +3 IF SO.
004756,000089:
004757,000090: 2346 34516 CHECKMM CAF ONE
004758,000091: 2347 60001 AD Q
004759,000092: 2350 30001 XCH Q
004760,000093: 2351 20000 INDEX A
004761,000094: 2352 40000 CS 0
004762,000095: 2353 60612 AD MODREG
004763,000096: 2354 10000 CCS A
004764,000097: 2355 00001 TC Q
004765,000098: 2356 00017 FINEMASK OCT 17
004766,000099: 2357 00001 TC Q
004767,000100: 2360 20001 INDEX Q
004768,000101: 2361 00001 TC Q
004769,000102:
004770,000103: # TO UPDATE THE MAJOR MODE LIGHTS:
004771,000104:
004772,000105: 2362 20001 NEWMODE INDEX Q
004773,000106: 2363 30000 CAF 0
004774,000107: 2364 50612 TS MODREG
004775,000108: 2365 33314 CAF GRABUSY +1 # CADR OF BANK CONTAINING DSPMM.
004776,000109: 2366 30015 XCH BANKREG
004777,000110: 2367 50116 TS MPAC +1 # MPACS NOT USED BY DSPMM.
004778,000111: 2370 30001 XCH Q
004779,000112: 2371 50115 TS MPAC
004780,000113: 2372 06003 TC DSPMM
004781,000114:
004782,000115: 2373 30116 XCH MPAC +1
004783,000116: 2374 50015 TS BANKREG
004784,000117: 2375 20115 INDEX MPAC
004785,000118: 2376 00001 TC 1
004786,000119:
Page 123 |
004788,000121:
004789,000122: # PROGRAM PRGSTALL IS AN EXECUTIVE INTERLOCK ROUTINE. REQUESTING PROGS DO
004790,000123: # TC BANKCALL
004791,000124: # CADR PRGSTALL
004792,000125: # RETURN IS TO L+2 AFTER TWO PROGS HAVE CALLED.
004793,000126:
004794,000127:
004795,000128:
004796,000129: 04,6624 BANK 4
004797,000130: 04,6624 20017 PRGSTALL INHINT
004798,000131: 04,6625 40645 CS STATE
004799,000132: 04,6626 74516 MASK PRGBIT
004800,000133: 04,6627 50001 TS Q
004801,000134: 04,6630 44516 CS PRGBIT
004802,000135: 04,6631 70645 MASK STATE
004803,000136: 04,6632 60001 AD Q
004804,000137: 04,6633 50645 TS STATE
004805,000138: 04,6634 10001 CCS Q
004806,000139: 04,6635 06642 TC PRGSLEEP
004807,000140: 04,6636 36651 CAF LPRGRET
004808,000141: 04,6637 02060 TC JOBWAKE
004809,000142: 04,6640 20016 RELINT
004810,000143: 04,6641 05702 TC SWRETURN
004811,000144:
004812,000145: 04,6642 05706 PRGSLEEP TC MAKECADR
004813,000146: 04,6643 30062 XCH ADDRWD
004814,000147: 04,6644 50117 TS MPAC +2
004815,000148: 04,6645 36651 CAF LPRGRET
004816,000149: 04,6646 02127 TC JOBSLEEP
004817,000150:
004818,000151: 04,6647 30117 PRGRET XCH MPAC +2
004819,000152: 04,6650 05723 TC BANKJUMP
004820,000153:
004821,000154: 04,6651 10647 LPRGRET CADR PRGRET
004822,000155: 04,6652 4516 PRGBIT EQUALS BIT1
004823,000156:
004824,000157: 04,6652 10652 UPTCADR CADR 10652
004825,000158:
Page 124 |
004827,000160:
004828,000161: # PINBALL COMES TO MODROUT ON RECEIVING THE NEW MODE REQUESTED BY VERB 37. THE DESIRED MODE IN IS A
004829,000162: # ON ARRIVAL.
004830,000163:
004831,000164: 04,6653 20017 MODROUT INHINT
004832,000165: 04,6654 64341 AD NEG3 # FOR FLIGHT 501, ONLY MODES 01 AND 03 MAY
004833,000166: 04,6655 10000 CCS A # BE INITIATED BY VERB 37.
004834,000167: 04,6656 06703 TC V37BAD
004835,000168: 04,6657 03062 TC CCSHOLE
004836,000169: 04,6660 06670 TC 1CHECK # SEE IF 01 CALLED FOR.
004837,000170:
004838,000171: 04,6661 02346 TC CHECKMM # MODE 03 REQUESTED - DEMANDS MODE 02
004839,000172: 04,6662 00002 OCT 02 # PRESENTLY.
004840,000173: 04,6663 06703 TC V37BAD
004841,000174:
004842,000175: 04,6664 32150 CAF PRIO14 # START OPTICAL CHECK.
004843,000176: 04,6665 02046 TC FINDVAC
004844,000177: 04,6666 43262 CADR CHKOPT
004845,000178: 04,6667 02124 TC ENDOFJOB
004846,000179:
004847,000180: 04,6670 64335 1CHECK AD MINUS1 # SEE IF 01 REQUESTED.
004848,000181: 04,6671 10000 CCS A
004849,000182: 04,6672 06703 TC V37BAD
004850,000183: 04,6673 03062 TC CCSHOLE
004851,000184: 04,6674 06703 TC V37BAD
004852,000185:
004853,000186: 04,6675 10612 CCS MODREG # DEMAND IDLE MODE.
004854,000187: 04,6676 06703 TC V37BAD
004855,000188:
004856,000189: 04,6677 34501 CAF PRIO20
004857,000190: 04,6700 02046 TC FINDVAC
004858,000191: 04,6701 42000 CADR TOP1
004859,000192: 04,6702 02124 TC ENDOFJOB
004860,000193:
004861,000194: 04,6703 03233 V37BAD TC FALTON # ILLEGAL REQUEST.
004862,000195: 04,6704 02124 TC ENDOFJOB
004863,000196:
End of include-file RESTART_CONTROL.agc. Parent file is MAIN.agc