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