Source Code
These source-code files are part of a reconstructed copy of Sunrise 45, the
penultimate release of the Block I Command Module (CM) Apollo Guidance Computer
(AGC) system test software.
They have been created via disassembly of binary dumps of original core rope memory modules, part numbers 1003133-18, 1003133-19, and 1003133-20. Corresponding portions of code have been copied from Solarium 55 where applicable. Extensive use was also made of the AGC Information Series documents, which were specifically written about the Sunrise software. Since only binary dumps (rather than listings) of Sunrise 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. |
003538,000002: ## Copyright: Public domain.
003539,000003: ## Filename: MASTER_CONTROL.agc
003540,000004: ## Purpose: A section of Sunrise 45.
003541,000005: ## It is part of the reconstructed source code for the penultimate
003542,000006: ## release of the Block I Command Module system test software. No
003543,000007: ## original listings of this program are available; instead, this
003544,000008: ## file was created via disassembly of dumps of Sunrise core rope
003545,000009: ## memory modules and comparison with the later Block I program
003546,000010: ## Solarium 55.
003547,000011: ## Assembler: yaYUL --block1
003548,000012: ## Contact: Ron Burkey <info@sandroid.org>.
003549,000013: ## Website: www.ibiblio.org/apollo/index.html
003550,000014: ## Mod history: 2022-12-09 MAS Initial reconstructed source.
003551,000015:
003552,000016: ## This log section is not present in any currently-known surviving program listings, so
003553,000017: ## it has been written from scratch to match the module disassembly. Label names were
003554,000018: ## taken from AGC Information Series Issue 16: Progress Control and Fresh Start, and
003555,000019: ## should be mostly correct. The name of the section itself could have originally been
003556,000020: ## PROGRESS CONTROL; the original sources are evenly split between calling it PROGRESS
003557,000021: ## CONTROL and MASTER CONTROL, and it is unclear which was actually in the listing.
003558,000022:
003559,000023: 2217 BANK 1
003560,000024:
003561,000025: 2217 30001 GETPHASE XCH Q
003562,000026: 2220 50034 TS OVCTR
003563,000027: 2221 02256 TC PHASCOM2
003564,000028: 2222 50571 TS EXECTEM5
003565,000029:
003566,000030: 2223 06502 TC REPHASE2
003567,000031:
003568,000032: 2224 06701 TC ONSKIP
003569,000033: 2225 02230 TC +3
003570,000034: 2226 10565 CCS PHASE
003571,000035: 2227 34516 CAF ONE
003572,000036: 2230 60571 AD EXECTEM5
003573,000037: 2231 50015 TS BANKREG
003574,000038: 2232 74605 MASK LOW10
003575,000039: 2233 50001 TS Q
003576,000040:
003577,000041: 2234 30565 XCH PHASE
003578,000042: 2235 20016 RELINT
003579,000043:
003580,000044: 2236 20001 INDEX Q
003581,000045: 2237 06000 TC 6000
003582,000046:
003583,000047: 04,6502 BANK 4
003584,000048:
003585,000049: 04,6502 30001 REPHASE2 XCH Q
003586,000050: 04,6503 50573 TS ITEMP2
003587,000051:
003588,000052: 04,6504 32765 PHASESUB CAF LOW5
003589,000053: 04,6505 70574 MASK PHASDATA
003590,000054: 04,6506 50566 TS PROG
003591,000055:
003592,000056: 04,6507 25777 EXTEND
003593,000057: 04,6510 46625 MP OCT12540
003594,000058: 04,6511 50572 TS PHASEWD
003595,000059: 04,6512 60000 DOUBLE
003596,000060: 04,6513 60572 AD PHASEWD
003597,000061: 04,6514 40000 COM
003598,000062: 04,6515 60566 AD PROG
003599,000063: 04,6516 50567 TS PHASEDIG
003600,000064:
003601,000065: 04,6517 20000 INDEX A
003602,000066: 04,6520 36540 CAF PHASMASK
003603,000067: 04,6521 20572 INDEX PHASEWD
003604,000068: 04,6522 70655 MASK PHASETAB
003605,000069: 04,6523 50565 TS PHASE
003606,000070:
003607,000071: 04,6524 20567 INDEX PHASEDIG
003608,000072: 04,6525 06526 TC +1
003609,000073: 04,6526 00573 TC ITEMP2
003610,000074: 04,6527 06532 TC +3
003611,000075: 04,6530 34512 CAF BIT5
003612,000076: 04,6531 06533 TC +2
003613,000077: 04,6532 34505 CAF BIT10
003614,000078: 04,6533 25777 EXTEND
003615,000079: 04,6534 40565 MP PHASE
003616,000080: 04,6535 72765 MASK LOW5
003617,000081: 04,6536 50565 TS PHASE
003618,000082:
003619,000083: 04,6537 00573 TC ITEMP2
003620,000084:
003621,000085: 04,6540 00037 PHASMASK OCT 00037
003622,000086: 04,6541 01740 OCT 01740
003623,000087: 04,6542 76000 OCT 76000
003624,000088:
003625,000089: 2240 BANK 1
003626,000090:
003627,000091: 2240 30001 PHASCHNG XCH Q
003628,000092: 2241 02251 TC PHASECOM
003629,000093: 2242 06543 TC PHASCH3
003630,000094:
003631,000095: 04,6543 BANK 4
003632,000096:
003633,000097: 04,6543 10565 PHASCH3 CCS PHASE
003634,000098: 04,6544 06713 TC INCET4
003635,000099:
003636,000100: 04,6545 34506 PHASCH4 CAF BIT9
003637,000101: 04,6546 25777 EXTEND
003638,000102: 04,6547 40574 MP PHASDATA
003639,000103:
003640,000104: 04,6550 06651 TC SETPHASE
003641,000105:
003642,000106: 04,6551 40565 CS PHASE
003643,000107: 04,6552 40000 COM
003644,000108: 04,6553 50114 TS MPAC
003645,000109:
003646,000110: 04,6554 06701 TC ONSKIP
003647,000111: 04,6555 06557 TC +2
003648,000112: 04,6556 02275 TC PHASREL
003649,000113:
003650,000114: 04,6557 07064 TC DEMANDON
003651,000115: 04,6560 20566 INDEX PROG
003652,000116: 04,6561 36717 CAF PROGCADR
003653,000117: 04,6562 02524 TC SWCALL
003654,000118:
003655,000119: 04,6563 20016 STARTRET RELINT
003656,000120: 04,6564 02516 TC BANKCALL
003657,000121: 04,6565 42001 CADR DSPMM
003658,000122: 04,6566 02276 TC PHASEOUT
003659,000123:
003660,000124: 2243 BANK 1
003661,000125:
003662,000126: 2243 30001 PHASWAIT XCH Q
003663,000127: 2244 02251 TC PHASECOM
003664,000128: 2245 06567 TC PHASWT3
003665,000129:
003666,000130: 04,6567 BANK 4
003667,000131:
003668,000132: 04,6567 06701 PHASWT3 TC ONSKIP
003669,000133: 04,6570 02272 TC PHASOUT2
003670,000134:
003671,000135: 04,6571 35500 CAF ZERO
003672,000136: 04,6572 06651 TC SETPHASE
003673,000137:
003674,000138: 04,6573 34516 CAF ONE
003675,000139: 04,6574 50034 PHASWT5 TS OVCTR
003676,000140: 04,6575 20000 INDEX A
003677,000141: 04,6576 10673 CCS PWTCADR
003678,000142: 04,6577 06601 TC +2
003679,000143: 04,6600 06605 TC PHASWT4
003680,000144:
003681,000145: 04,6601 10034 CCS OVCTR
003682,000146: 04,6602 06574 TC PHASWT5
003683,000147:
003684,000148: 04,6603 02652 TC ABORT
003685,000149: 04,6604 01205 OCT 01205
003686,000150:
003687,000151: 04,6605 30566 PHASWT4 XCH PROG
003688,000152: 04,6606 20034 INDEX OVCTR
003689,000153: 04,6607 50671 TS PWTPROG
003690,000154:
003691,000155: 04,6610 30115 XCH MPAC +1
003692,000156: 04,6611 20034 INDEX OVCTR
003693,000157: 04,6612 50673 TS PWTCADR
003694,000158: 04,6613 02120 TC JOBSLEEP
003695,000159:
003696,000160: 2246 BANK 1
003697,000161:
003698,000162: 2246 30001 MAJEXIT XCH Q
003699,000163: 2247 02251 TC PHASECOM
003700,000164: 2250 06614 TC MAJEX3
003701,000165:
003702,000166: 04,6614 BANK 4
003703,000167:
003704,000168: 04,6614 32765 MAJEX3 CAF LOW5
003705,000169: 04,6615 06651 TC SETPHASE
003706,000170:
003707,000171: 04,6616 34516 CAF ONE
003708,000172: 04,6617 50034 MAJEX4 TS OVCTR
003709,000173: 04,6620 40566 CS PROG
003710,000174: 04,6621 20034 INDEX OVCTR
003711,000175: 04,6622 60671 AD PWTPROG
003712,000176:
003713,000177: 04,6623 10000 CCS A
003714,000178: 04,6624 06636 TC MAJEX5
003715,000179: 04,6625 12540 OCT12540 OCT 12540
003716,000180: 04,6626 06636 TC MAJEX5
003717,000181:
003718,000182: 04,6627 20034 INDEX OVCTR
003719,000183: 04,6630 30673 XCH PWTCADR
003720,000184: 04,6631 02051 TC JOBWAKE
003721,000185:
003722,000186: 04,6632 32765 CAF LOW5
003723,000187: 04,6633 20034 INDEX OVCTR
003724,000188: 04,6634 50671 TS PWTPROG
003725,000189:
003726,000190: 04,6635 06640 TC DEMOFF
003727,000191:
003728,000192: 04,6636 10034 MAJEX5 CCS OVCTR
003729,000193: 04,6637 06617 TC MAJEX4
003730,000194:
003731,000195: 04,6640 40566 DEMOFF CS PROG
003732,000196: 04,6641 20000 INDEX A
003733,000197: 04,6642 44516 CS BIT1
003734,000198: 04,6643 70622 MASK MODREG
003735,000199: 04,6644 50622 TS MODREG
003736,000200:
003737,000201: 04,6645 20016 RELINT
003738,000202: 04,6646 02516 TC BANKCALL
003739,000203: 04,6647 42001 CADR DSPMM
003740,000204:
003741,000205: 04,6650 02115 DOEJ TC ENDOFJOB
003742,000206:
003743,000207: 04,6651 50034 SETPHASE TS OVCTR
003744,000208: 04,6652 20567 INDEX PHASEDIG
003745,000209: 04,6653 36710 CAF PHASESHL
003746,000210:
003747,000211: 04,6654 25777 EXTEND
003748,000212: 04,6655 40034 MP OVCTR
003749,000213: 04,6656 50034 TS OVCTR
003750,000214:
003751,000215: 04,6657 20567 INDEX PHASEDIG
003752,000216: 04,6660 46540 CS PHASMASK
003753,000217: 04,6661 20572 INDEX PHASEWD
003754,000218: 04,6662 70655 MASK PHASETAB
003755,000219: 04,6663 60003 AD LP
003756,000220: 04,6664 20034 INDEX OVCTR
003757,000221: 04,6665 66704 AD B15FIX
003758,000222: 04,6666 20572 INDEX PHASEWD
003759,000223: 04,6667 50655 TS PHASETAB
003760,000224: 04,6670 20572 INDEX PHASEWD
003761,000225: 04,6671 50661 TS BACKPHAS
003762,000226: 04,6672 40000 COM
003763,000227: 04,6673 20572 INDEX PHASEWD
003764,000228: 04,6674 50665 TS PHASEBAR
003765,000229:
003766,000230: 04,6675 34516 CAF ONE
003767,000231: 04,6676 25777 EXTEND
003768,000232: 04,6677 40570 MP PHASELP
003769,000233:
003770,000234: 04,6700 00001 TC Q
003771,000235:
003772,000236: 04,6701 42765 ONSKIP CS LOW5
003773,000237: 04,6702 60565 AD PHASE
003774,000238: 04,6703 10000 CCS A
003775,000239: 04,6704 00000 B15FIX OCT 00000
003776,000240: 04,6705 40000 OCT 40000
003777,000241: 04,6706 20001 INDEX Q
003778,000242: 04,6707 00001 TC Q
003779,000243:
003780,000244: 04,6710 00001 PHASESHL OCT 00001
003781,000245: 04,6711 00040 OCT 00040
003782,000246: 04,6712 02000 OCT 02000
003783,000247:
003784,000248: 04,6713 34516 INCET4 CAF ONE
003785,000249: 04,6714 60115 AD MPAC +1
003786,000250: 04,6715 50115 TS MPAC +1
003787,000251: 04,6716 00001 TC Q
003788,000252:
003789,000253: 04,6717 46656 PROGCADR CADR STARTPL
003790,000254: 04,6720 44241 CADR STARTFF
003791,000255: 04,6721 10721 CADR 10721
003792,000256: 04,6722 10722 CADR 10722
003793,000257: 04,6723 10723 CADR 10723
003794,000258:
003795,000259: 04,6724 50021 MODROUT TS SR
003796,000260: 04,6725 25777 EXTEND
003797,000261: 04,6726 44510 MP BIT7
003798,000262: 04,6727 40021 CS SR
003799,000263: 04,6730 40021 CS SR
003800,000264: 04,6731 36742 CAF OCT700
003801,000265: 04,6732 70003 MASK LP
003802,000266: 04,6733 60021 AD SR
003803,000267: 04,6734 20017 INHINT
003804,000268: 04,6735 50574 TS PHASDATA
003805,000269:
003806,000270: 04,6736 36743 CAF TCEND-1
003807,000271: 04,6737 50115 TS MPAC +1
003808,000272: 04,6740 06502 TC REPHASE2
003809,000273: 04,6741 06545 TC PHASCH4
003810,000274:
003811,000275: 04,6742 00700 OCT700 OCT 700
003812,000276: 04,6743 10650 TCEND-1 CADR DOEJ
003813,000277:
003814,000278: 2251 BANK 1
003815,000279:
003816,000280: 2251 50034 PHASECOM TS OVCTR
003817,000281: 2252 30001 XCH Q
003818,000282: 2253 02256 TC PHASCOM2
003819,000283: 2254 50115 TS MPAC +1
003820,000284: 2255 06504 TC PHASESUB
003821,000285:
003822,000286: 2256 20017 PHASCOM2 INHINT
003823,000287: 2257 50573 TS ITEMP2
003824,000288:
003825,000289: 2260 20034 INDEX OVCTR
003826,000290: 2261 30000 CAF 00000
003827,000291: 2262 50574 TS PHASDATA
003828,000292:
003829,000293: 2263 30003 XCH LP
003830,000294: 2264 50570 TS PHASELP
003831,000295:
003832,000296: 2265 32066 CAF PHASBANK
003833,000297: 2266 30015 XCH BANKREG
003834,000298: 2267 60034 AD OVCTR
003835,000299: 2270 62300 AD 72K
003836,000300:
003837,000301: 2271 00001 TC Q
003838,000302:
003839,000303: 2272 2066 PHASBANK EQUALS EXECBANK
003840,000304:
003841,000305: 2272 34516 PHASOUT2 CAF ONE
003842,000306: 2273 25777 EXTEND
003843,000307: 2274 40570 MP PHASELP
003844,000308: 2275 20016 PHASREL RELINT
003845,000309: 2276 30115 PHASEOUT XCH MPAC +1
003846,000310: 2277 02566 TC BANKJUMP
003847,000311:
003848,000312: 2300 72000 72K OCT 72000
End of include-file MASTER_CONTROL.agc. Parent file is MAIN.agc