Source Code

These source-code files are part of a reconstructed copy of Sunrise 69, the final 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, 1003133-20, and 1003733-071. 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.

010805,000002:                                                                                                  ## Copyright:   Public domain.
010806,000003:                                                                                                  ## Filename:    KEYRUPT_UPRUPT_FRESH_START.agc
010807,000004:                                                                                                  ## Purpose:     A section of Sunrise 69.
010808,000005:                                                                                                  ##              It is part of the reconstructed source code for the final
010809,000006:                                                                                                  ##              release of the Block I Command Module system test software. No
010810,000007:                                                                                                  ##              original listings of this program are available; instead, this
010811,000008:                                                                                                  ##              file was created via disassembly of dumps of Sunrise core rope
010812,000009:                                                                                                  ##              memory modules and comparison with the later Block I program
010813,000010:                                                                                                  ##              Solarium 55.
010814,000011:                                                                                                  ## Assembler:   yaYUL --block1
010815,000012:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
010816,000013:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
010817,000014:                                                                                                  ## Mod history: 2023-06-19 MAS  Created from Sunrise 45.
010818,000015: 
010819,000016: 
010820,000017: 04,7265                                           BANK     4                                     
010821,000018: 04,7265           72765        KEYRUPT1           MASK     LOW5                                  #  C(IN0) IN A
010822,000019: 04,7266           64504                           AD       BIT11                                 
010823,000020: 04,7267           50702                           TS       TMKEYBUF                              
010824,000021: 04,7270           32774                           CAF      PRIO30                                
010825,000022: 04,7271           02043                           TC       NOVAC                                 
010826,000023: 04,7272           50010                           CADR     CHARIN                                
010827,000024: 04,7273           32765                           CAF      LOW5                                  
010828,000025: 04,7274           70702                           MASK     TMKEYBUF                              
010829,000026: 04,7275           20574                           INDEX    LOCCTR                                
010830,000027: 04,7276           50114                           TS       MPAC                                  #  LEAVE 5 BIT KEY CDE IN MPAC FOR CHARIN
010831,000028: 04,7277           02211                           TC       RESUME                                
010832,000029: 
010833,000030: 
010834,000031: 04,7300           35500        UPRUPTB            CAF      ZERO                                  
010835,000032: 04,7301           30041                           XCH      UPLINK                                #  ZERO UPLINK
010836,000033: 04,7302           50573                           TS       KEYTEMP1                              
010837,000034: 04,7303           10737                           CCS      DSPTAB     +7                         #  TURN ON UPACT LIGHT
010838,000035: 04,7304           07306                           TC       +2                                    #  UPACT = BIT 11 OF DSPTAB +7
010839,000036: 04,7305           37370                           CAF      B12-1                                 #  SAFETY PLAY
010840,000037: 04,7306           64516                           AD       ONE                                   
010841,000038: 04,7307           50564                           TS       KEYTEMP2                              #  MAG OF DSPTAB +7 INTO KEYTEMP2
010842,000039: 04,7310           74504                           MASK     BIT11                                 
010843,000040: 04,7311           10000                           CCS      A                                     
010844,000041: 04,7312           07322                           TC       UPRPT1                                #  BIT 11 ALREADY ONE
010845,000042: 04,7313           30564                           XCH      KEYTEMP2                              #  BIT 11 = 0
010846,000043: 04,7314           64504                           AD       BIT11                                 
010847,000044: 04,7315           40000                           CS       A                                     #  STORE NEGATIVELY
010848,000045: 04,7316           30737                           XCH      DSPTAB     +7                         
010849,000046: 04,7317           10000                           CCS      A                                     
010850,000047: 04,7320           07371                           TC       INCNOUTU                              #  PREVIOUS CONTENTS WAS +
010851,000048: 04,7321           30000                           NOOP                                           #  SAFETY PLAY
010852,000049: 04,7322           32765        UPRPT1             CAF      LOW5                                  #  TEST FOR TRIPLE CHAR REDUNDANCY
010853,000050: 04,7323           70573                           MASK     KEYTEMP1                              #  LOW5 OF WORD
010854,000051: 04,7324           30573                           XCH      KEYTEMP1                              #  LOW5 INTO KEYTEMP1
010855,000052: 04,7325           30021                           XCH      SR                                    #  WHOLE WORD INTO SR
010856,000053: 04,7326           50564                           TS       KEYTEMP2                              #  ORIGINAL SR INTO KEYTEMP2
010857,000054: 04,7327           07352                           TC       SRGHT5                                
010858,000055: 04,7330           72765                           MASK     LOW5                                  #  MID 5
010859,000056: 04,7331           67367                           AD       HI10                                  
010860,000057: 04,7332           07361                           TC       UPTEST                                
010861,000058: 04,7333           07352                           TC       SRGHT5                                
010862,000059: 04,7334           72765                           MASK     LOW5                                  #  HIGH 5
010863,000060: 04,7335           40000                           COM                                            
010864,000061: 04,7336           07361                           TC       UPTEST                                
010865,000062: 04,7337           07346        UPOK               TC       RESTORSR                              #  CODE IS GOOD
010866,000063: 04,7340           30573                           XCH      KEYTEMP1                              
010867,000064: 04,7341           64511                           AD       BIT6                                  
010868,000065: 04,7342           07266                           TC       KEYRUPT1   +1                         
010869,000066: 
010870,000067: 04,7343           07346        TMFAIL2            TC       RESTORSR                              #  CODE IS BAD
010871,000068: 04,7344           02361                           TC       TMFAIL                                
010872,000069: 04,7345           02211                           TC       RESUME                                
010873,000070: 
010874,000071: 04,7346           30564        RESTORSR           XCH      KEYTEMP2                              
010875,000072: 04,7347           60000                           DOUBLE                                         
010876,000073: 04,7350           50021                           TS       SR                                    
010877,000074: 04,7351           00001                           TC       Q                                     
010878,000075: 
010879,000076: 04,7352           40021        SRGHT5             CS       SR                                    
010880,000077: 04,7353           40021                           CS       SR                                    
010881,000078: 04,7354           40021                           CS       SR                                    
010882,000079: 04,7355           40021                           CS       SR                                    
010883,000080: 04,7356           40021                           CS       SR                                    
010884,000081: 04,7357           40000                           CS       A                                     
010885,000082: 04,7360           00001                           TC       Q                                     #  DELIVERS WORD UNCOMPLEMENTED
010886,000083: 
010887,000084: 04,7361           60573        UPTEST             AD       KEYTEMP1                              
010888,000085: 04,7362           10000                           CCS      A                                     
010889,000086: 04,7363           07343                           TC       TMFAIL2                               
010890,000087: 04,7365                                           LOC      +1                                    
010891,000088: 04,7365           07343                           TC       TMFAIL2                               
010892,000089: 04,7366           00001                           TC       Q                                     
010893,000090: 
010894,000091: 04,7367           77740        HI10               OCT      77740                                 
010895,000092: 04,7370     2066               UPBANK             EQUALS   EXECBANK                              #  IN SAME BANK AS EXEC.
010896,000093: 
010897,000094: 04,7370           03777        B12-1              OCT      3777                                  
010898,000095: 
010899,000096: 04,7371           30727        INCNOUTU           XCH      NOUT                                  
010900,000097: 04,7372           64516                           AD       ONE                                   
010901,000098: 04,7373           50727                           TS       NOUT                                  
010902,000099: 04,7374           20001                           INDEX    Q                                     
010903,000100: 04,7375           00001        UPLAST             TC       1                                     
010904,000101: 
010905,000102:                                                                                                  #  UPACT IS TURNED OFF BY VBRELDSP, ALSO BY ERROR LIGHT RESET.
010906,000103: 
010907,000104: 
010908,000105:                                                                                                  #  THE RECEPTION OF A BAD CODE BY UPLINK LOCKS OUT FURTHER UPLINK ACTIVITY 
010909,000106:                                                                                                  #  BY PLACING A 1 INTO UPLOCK (BIT2 OF STATE). BIT9 (AND BIT11) OF TMKEYBUF
010910,000107:                                                                                                  #  IS SET TO 1 TO SEND AN INDICATION OF THIS SITUATION DOWN THE DOWNLINK.
010911,000108:                                                                                                  #  THE UPLINK INTERLOCK IS ALLOWED WHEN AN ERROR LIGHT RESET CODE IS SENT
010912,000109:                                                                                                  #  UP THE UPLINK, OR WHEN A FRESH START IS PERFORMED.
010913,000110: 
010914,000111: 
010915,000112:    3200                                           SETLOC   3200                                  
010916,000113: 
010917,000114:    3200           32066        UPRUPT             CAF      UPBANK                                
010918,000115:    3201           30015                           XCH      BANKREG                               
010919,000116:    3202           50575                           TS       BANKRUPT                              
010920,000117:    3203           07300                           TC       UPRUPTB                               

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