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.

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

Page 477

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

Page 478

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

Page 479

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

Page 480

018046,000129: 
018047,000130:                                                                                                  #  THE RECEPTION OF A BAD CODE BY UPLINK LOCKS OUT FURTHER UPLINK ACTIVITY 
018048,000131:                                                                                                  #  BY PLACING A 1 INTO UPLOCK (BIT2 OF STATE). BIT9 (AND BIT11) OF TMKEYBUF
018049,000132:                                                                                                  #  IS SET TO 1 TO SEND AN INDICATION OF THIS SITUATION DOWN THE DOWNLINK.
018050,000133:                                                                                                  #  THE UPLINK INTERLOCK IS ALLOWED WHEN AN ERROR LIGHT RESET CODE IS SENT
018051,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