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, 1966
Note 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.

017916,000002:                                                                                                  ## Copyright:   Public domain.
017917,000003:                                                                                                  ## Filename:    KEYRUPT_UPRUPT_FRESH_START.agc
017918,000004:                                                                                                  ## Purpose:     Part of the source code for Solarium build 55. This
017919,000005:                                                                                                  ##              is for the Command Module's (CM) Apollo Guidance
017920,000006:                                                                                                  ##              Computer (AGC), for Apollo 6.
017921,000007:                                                                                                  ## Assembler:   yaYUL --block1
017922,000008:                                                                                                  ## Contact:     Jim Lawton <jim DOT lawton AT gmail DOT com>
017923,000009:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
017924,000010:                                                                                                  ## Page Scans:  www.ibiblio.org/apollo/ScansForConversion/Solarium055/
017925,000011:                                                                                                  ## Mod history: 2009-09-15 JL   Created.
017926,000012:                                                                                                  ##              2016-08-17 RSB  Corrected a duplicated symbol TFAIL2 on p. 479.
017927,000013:                                                                                                  ##              2016-12-28 RSB  Proofed comment text using octopus/ProoferComments,
017928,000014:                                                                                                  ##                              and fixed errors found.
017929,000015: 

Page 477

017931,000017: 
017932,000018: 04,7363                                           BANK     4                                     
017933,000019: 04,7363           73220        KEYRUPT1           MASK     LOW5                                  #  C(IN0) IN A
017934,000020: 04,7364           50642                           TS       RUPTREG4                              
017935,000021: 04,7365           02736                           TC       LODSAMPT                              #  TIME IS SNATCHED IN RUPT FOR NOUN 65
017936,000022: 04,7366           32166                           CAF      PRIO33                                
017937,000023: 04,7367           02052                           TC       NOVAC                                 
017938,000024: 04,7370           14006                           CADR     CHARIN                                
017939,000025: 04,7371           30642        NOKEYBUF           XCH      RUPTREG4                              
017940,000026: 04,7372           20601                           INDEX    LOCCTR                                
017941,000027: 04,7373           50115                           TS       MPAC                                  #  LEAVE 5 BIT KEY CDE IN MPAC FOR CHARIN
017942,000028: 04,7374           02264                           TC       RESUME                                
017943,000029: 

Page 478

017945,000031: 
017946,000032: 04,7375           50030        UPRUPTB            TS       BANKRUPT                              
017947,000033: 04,7376           02677                           TC       READTIME   +1                         #  TIME IS SNATCHED IN RUPT FOR NOUN 65
017948,000034: 04,7377           35501                           CAF      ZERO                                  
017949,000035: 04,7400           30041                           XCH      UPLINK                                #  ZERO UPLINK
017950,000036: 04,7401           50600                           TS       KEYTEMP1                              
017951,000037: 04,7402           10717                           CCS      DSPTAB     +7                         #  TURN ON UPACT LIGHT
017952,000038: 04,7403           07405                           TC       +2                                    #  UPACT = BIT 11 OF DSPTAB +7
017953,000039: 04,7404           37510                           CAF      B12-1                                 #  SAFETY PLAY
017954,000040: 04,7405           64516                           AD       ONE                                   
017955,000041: 04,7406           50571                           TS       KEYTEMP2                              #  MAG OF DSPTAB +7 INTO KEYTEMP2
017956,000042: 04,7407           74504                           MASK     BIT11                                 
017957,000043: 04,7410           10000                           CCS      A                                     
017958,000044: 04,7411           07421                           TC       UPRPT1                                #  BIT 11 ALREADY ONE
017959,000045: 04,7412           30571                           XCH      KEYTEMP2                              #  BIT 11 = 0
017960,000046: 04,7413           64504                           AD       BIT11                                 
017961,000047: 04,7414           40000                           CS       A                                     #  STORE NEGATIVELY
017962,000048: 04,7415           30717                           XCH      DSPTAB     +7                         
017963,000049: 04,7416           10000                           CCS      A                                     
017964,000050: 04,7417           07511                           TC       INCNOUTU                              #  PREVIOUS CONTENTS WAS +
017965,000051: 04,7420           30000                           NOOP                                           #  SAFETY PLAY
017966,000052: 04,7421           33220        UPRPT1             CAF      LOW5                                  #  TEST FOR TRIPLE CHAR REDUNDANCY
017967,000053: 04,7422           70600                           MASK     KEYTEMP1                              #  LOW5 OF WORD
017968,000054: 04,7423           30600                           XCH      KEYTEMP1                              #  LOW5 INTO KEYTEMP1
017969,000055: 04,7424           30021                           XCH      SR                                    #  WHOLE WORD INTO SR
017970,000056: 04,7425           50571                           TS       KEYTEMP2                              #  ORIGINAL SR INTO KEYTEMP2
017971,000057: 04,7426           07472                           TC       SRGHT5                                
017972,000058: 04,7427           73220                           MASK     LOW5                                  #  MID 5
017973,000059: 04,7430           67507                           AD       HI10                                  
017974,000060: 04,7431           07501                           TC       UPTEST                                
017975,000061: 04,7432           07472                           TC       SRGHT5                                
017976,000062: 04,7433           73220                           MASK     LOW5                                  #  HIGH 5
017977,000063: 04,7434           40000                           COM                                            
017978,000064: 04,7435           07501                           TC       UPTEST                                
017979,000065: 04,7436           07466        UPOK               TC       RESTORSR                              #  CODE IS GOOD
017980,000066: 04,7437           47443                           CS       ELRCODE                               #  IF CODE = ERROR LIGHT RESET, PUT +0
017981,000067: 04,7440           60600                           AD       KEYTEMP1                              #  INTO UPLOCK (BIT2 OF STATE)
017982,000068: 04,7441           10000                           CCS      A                                     #  IF CODE NOT= ELR, PASS CODE ONLY IF
017983,000069: 04,7442           07451                           TC       TSTUPLOK                              #  UPLOCK=0 (BIT 2 OF STATE)
017984,000070: 04,7443           00022        ELRCODE            OCT      22                                    
017985,000071: 04,7444           07451                           TC       TSTUPLOK                              
017986,000072: 04,7445           44515                           CS       BIT2                                  #  0 INTO UPLOCK (BIT 2 OF STATE)
017987,000073: 04,7446           70645                           MASK     UPLOCK                                
017988,000074: 04,7447           50645                           TS       UPLOCK                                
017989,000075: 04,7450           07455                           TC       ACCEPTUP                              
017990,000076: 04,7451           34515        TSTUPLOK           CAF      BIT2                                  
017991,000077: 04,7452           70645                           MASK     UPLOCK                                
017992,000078: 04,7453           10000                           CCS      A                                     
017993,000079: 04,7454           02264                           TC       RESUME                                #  UPLOCK = 1 (BIT2 OF STATE)
017994,000080: 04,7455           30600        ACCEPTUP           XCH      KEYTEMP1                              #  UPLOCK = 0 (BIT2 OF STATE)
017995,000081: 04,7456           07364                           TC       KEYRUPT1   +1                         
017996,000082: 

Page 479

017998,000084: 
017999,000085: 04,7457           07466        TMFAIL2            TC       RESTORSR                              #  CODE IS BAD
018000,000086: 04,7460           44515                           CS       BIT2                                  #  LOCK OUT FURTHER UPLINK ACTIVITY (BY
018001,000087: 04,7461           70645                           MASK     UPLOCK                                #  PUTTING 1 INTO UPLOCK, BIT 2 OF STATE)
018002,000088: 04,7462           64515                           AD       BIT2                                  #  UNTIL ERROR LIGHT RESET IS SENT UP
018003,000089: 04,7463           50645                           TS       UPLOCK                                #  UPLINK.
018004,000090: 04,7464           02571        TMFAIL1            TC       TMALM                                 
018005,000091: 04,7465           02264                           TC       RESUME                                
018006,000092: 
018007,000093: 04,7466           30571        RESTORSR           XCH      KEYTEMP2                              
018008,000094: 04,7467           60000                           DOUBLE                                         
018009,000095: 04,7470           50021                           TS       SR                                    
018010,000096: 04,7471           00001                           TC       Q                                     
018011,000097: 
018012,000098: 04,7472     2571               TMALM              EQUALS   TMFAIL                                #  TM FAIL LIGHT ON (IN DOWNRUPT).
018013,000099: 
018014,000100: 04,7472           40021        SRGHT5             CS       SR                                    
018015,000101: 04,7473           40021                           CS       SR                                    
018016,000102: 04,7474           40021                           CS       SR                                    
018017,000103: 04,7475           40021                           CS       SR                                    
018018,000104: 04,7476           40021                           CS       SR                                    
018019,000105: 04,7477           40000                           CS       A                                     
018020,000106: 04,7500           00001                           TC       Q                                     #  DELIVERS WORD UNCOMPLEMENTED
018021,000107: 
018022,000108: 04,7501           60600        UPTEST             AD       KEYTEMP1                              
018023,000109: 04,7502           10000                           CCS      A                                     
018024,000110: 04,7503           07457                           TC       TMFAIL2                               
018025,000111: 04,7504           03062                           TC       CCSHOLE                               
018026,000112: 04,7505           07457                           TC       TMFAIL2                               
018027,000113: 04,7506           00001                           TC       Q                                     
018028,000114: 
018029,000115: 04,7507           77740        HI10               OCT      77740                                 
018030,000116: 04,7510     2075               UPBANK             EQUALS   EXECBANK                              #  IN SAME BANK AS EXEC.
018031,000117: 
018032,000118: 04,7510           03777        B12-1              OCT      3777                                  
018033,000119: 
018034,000120: 04,7511           30707        INCNOUTU           XCH      NOUT                                  
018035,000121: 04,7512           64516                           AD       ONE                                   
018036,000122: 04,7513           50707                           TS       NOUT                                  
018037,000123: 04,7514           20001                           INDEX    Q                                     
018038,000124: 04,7515           00001        UPLAST             TC       1                                     
018039,000125: 
018040,000126:                                                                                                  #  UPACT IS TURNED OFF BY VBRELDSP, ALSO BY ERROR LIGHT RESET.
018041,000127: 

Page 480

018043,000129: 
018044,000130:                                                                                                  #  THE RECEPTION OF A BAD CODE BY UPLINK LOCKS OUT FURTHER UPLINK ACTIVITY 
018045,000131:                                                                                                  #  BY PLACING A 1 INTO UPLOCK (BIT2 OF STATE). BIT9 (AND BIT11) OF TMKEYBUF
018046,000132:                                                                                                  #  IS SET TO 1 TO SEND AN INDICATION OF THIS SITUATION DOWN THE DOWNLINK.
018047,000133:                                                                                                  #  THE UPLINK INTERLOCK IS ALLOWED WHEN AN ERROR LIGHT RESET CODE IS SENT
018048,000134:                                                                                                  #  UP THE UPLINK, OR WHEN A FRESH START IS PERFORMED.

End of include-file KEYRUPT_UPRUPT_FRESH_START.agc.  Parent file is MAIN.agc