Source Code

These source-code files are part of a reconstructed copy of Sundial E, the final release of the Block II 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 2003053-121, 2003053-151, and 2003972-211, belonging to the MIT Museum.

Since only binary dumps (rather than listings) of Sundial 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.

008239,000002:                                                                                                  ## Copyright:   Public domain.
008240,000003:                                                                                                  ## Filename:    KEYRUPT,_UPRUPT.agc
008241,000004:                                                                                                  ## Purpose:     A section of Sundial E.
008242,000005:                                                                                                  ##              It is part of the reconstructed source code for the final
008243,000006:                                                                                                  ##              release of the Block II Command Module system test software. No
008244,000007:                                                                                                  ##              original listings of this program are available; instead, this
008245,000008:                                                                                                  ##              file was created via disassembly of dumps of Sundial core rope
008246,000009:                                                                                                  ##              modules and comparison with other AGC programs.
008247,000010:                                                                                                  ## Assembler:   yaYUL
008248,000011:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
008249,000012:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
008250,000013:                                                                                                  ## Mod history: 2023-06-22 MAS  Created from Aurora 12.
008251,000014:                                                                                                  ##              2023-06-30 MAS  Updated for Sundial E.
008252,000015: 
008253,000016: 01,2773                                           SETLOC   ENDWAITS                              
008254,000017: 
008255,000018: 01,2773           54016        KEYRUPT1           TS       BANKRUPT                              
008256,000019: 01,2774           56002                           XCH      Q                                     
008257,000020: 01,2775           54012                           TS       QRUPT                                 
008258,000021: 01,2776           05510                           TC       LODSAMPT                              #  TIME IS SNATCHED IN RUPT FOR NOUN 65.
008259,000022: 01,2777           35455                           CAF      LOW5                                  
008260,000023: 01,3000           00006                           EXTEND                                         
008261,000024: 01,3001           02015                           RAND     MNKEYIN                               
008262,000025: 01,3002           54077        KEYCOM             TS       RUPTREG4                              
008263,000026: 01,3003           35464                           CAF      CHRPRIO                               
008264,000027: 01,3004           04276                           TC       NOVAC                                 
008265,000028: 01,3005     0264                                  EBANK=   DSPCOUNT                              
008266,000029: 01,3005           02002 10000                     2CADR    CHARIN                                
008267,000030: 01,3007           30077                           CA       RUPTREG4                              
008268,000031: 01,3010           50071                           INDEX    LOCCTR                                
008269,000032: 01,3011           54140                           TS       MPAC                                  #  LEAVE 5 BIT KEY CDE IN MPAC FOR CHARIN
008270,000033: 01,3012           04511                           TC       RESUME                                
008271,000034: 
008272,000035:                                                                                                  #  UPRUPT PROGRAM
008273,000036: 
008274,000037: 01,3013           54016        UPRUPT             TS       BANKRUPT                              
008275,000038: 01,3014           56002                           XCH      Q                                     
008276,000039: 01,3015           54012                           TS       QRUPT                                 
008277,000040: 01,3016           05510                           TC       LODSAMPT                              #  TIME IS SNATCHED IN RUPT FOR NOUN 65.
008278,000041: 01,3017           37657                           CAF      ZERO                                  
008279,000042: 01,3020           56045                           XCH      INLINK                                
008280,000043: 01,3021           54077                           TS       KEYTEMP1                              
008281,000044: 01,3022           37650                           CAF      BIT3                                  #  TURN ON UPACT LIGHT
008282,000045: 01,3023           00006                           EXTEND                                         #  (BIT 3 OF CHANNEL 11)
008283,000046: 01,3024           05011                           WOR      DSALMOUT                              
008284,000047: 01,3025           35455        UPRUPT1            CAF      LOW5                                  #  TEST FOR TRIPLE CHAR REDUNDANCY
008285,000048: 01,3026           70077                           MASK     KEYTEMP1                              #  LOW5 OF WORD
008286,000049: 01,3027           56077                           XCH      KEYTEMP1                              #  LOW5 INTO KEYTEMP1
008287,000050: 01,3030           56021                           XCH      SR                                    #  WHOLE WORD INTO SR
008288,000051: 01,3031           55071                           TS       KEYTEMP2                              #  ORIGINAL SR INTO KEYTEMP2
008289,000052: 01,3032           03076                           TC       SRGHT5                                
008290,000053: 01,3033           75455                           MASK     LOW5                                  #  MID 5
008291,000054: 01,3034           63110                           AD       HI10                                  
008292,000055: 01,3035           03105                           TC       UPTEST                                
008293,000056: 01,3036           03076                           TC       SRGHT5                                
008294,000057: 01,3037           75455                           MASK     LOW5                                  #  HIGH 5
008295,000058: 01,3040           40000                           COM                                            
008296,000059: 01,3041           03105                           TC       UPTEST                                
008297,000060: 01,3042           03072        UPOK               TC       RESTORSR                              #  CODE IS GOOD
008298,000061: 01,3043           43047                           CS       ELRCODE                               #  IF CODE = ERROR LIGHT RESET, PUT +0
008299,000062: 01,3044           60077                           AD       KEYTEMP1                              #  INTO BIT1 OF UPLOCK.
008300,000063: 01,3045           10000                           CCS      A                                     #  IF CODE NOT= ELR, PASS CODE ONLY IF
008301,000064: 01,3046           03055                           TC       TSTUPLOK                              #  BIT1 OF UPLOCK = 0.
008302,000065: 01,3047           00022        ELRCODE            OCT      22                                    
008303,000066: 01,3050           03055                           TC       TSTUPLOK                              
008304,000067: 01,3051           47652                           CS       BIT1                                  #  PUT 0 INTO BIT1 OF UPLOCK
008305,000068: 01,3052           70342                           MASK     UPLOCK                                
008306,000069: 01,3053           54342                           TS       UPLOCK                                
008307,000070: 01,3054           03061                           TC       ACCEPTUP                              
008308,000071: 01,3055           37652        TSTUPLOK           CAF      BIT1                                  
008309,000072: 01,3056           70342                           MASK     UPLOCK                                
008310,000073: 01,3057           10000                           CCS      A                                     
008311,000074: 01,3060           04511                           TC       RESUME                                #  BIT1 OF UPLOCK = 1.
008312,000075: 01,3061           56077        ACCEPTUP           XCH      KEYTEMP1                              #  BIT1 OF UPLOCK = 0.
008313,000076: 01,3062           03002                           TC       KEYCOM                                
008314,000077: 
008315,000078: 01,3063           03072        TMFAIL2            TC       RESTORSR                              #  CODE IS BAD
008316,000079: 01,3064           47652                           CS       BIT1                                  #  LOCK OUT FURTHER UPLINK ACTIVITY (BY
008317,000080: 01,3065           70342                           MASK     UPLOCK                                #  PUTTING 1 INTO BIT1 OF UPLOCK) UNTIL ELR
008318,000081: 01,3066           67652                           AD       BIT1                                  #  IS SENT UP UPLINK.
008319,000082: 01,3067           54342                           TS       UPLOCK                                
008320,000083: 01,3070           04511        TMFAIL1            TC       TMALM                                 
008321,000084: 01,3071           04511                           TC       RESUME                                
008322,000085: 01,3072           57071        RESTORSR           XCH      KEYTEMP2                              
008323,000086: 01,3073           60000                           DOUBLE                                         
008324,000087: 01,3074           54021                           TS       SR                                    
008325,000088: 01,3075           00002                           TC       Q                                     
008326,000089: 
008327,000090: 01,3076     4511               TMALM              =        RESUME                                #  FOR NOW
008328,000091: 
008329,000092: 01,3076           40021        SRGHT5             CS       SR                                    
008330,000093: 01,3077           40021                           CS       SR                                    
008331,000094: 01,3100           40021                           CS       SR                                    
008332,000095: 01,3101           40021                           CS       SR                                    
008333,000096: 01,3102           40021                           CS       SR                                    
008334,000097: 01,3103           40000                           CS       A                                     
008335,000098: 01,3104           00002                           TC       Q                                     #  DELIVERS WORD UNCOMPLEMENTED
008336,000099: 
008337,000100: 01,3105           60077        UPTEST             AD       KEYTEMP1                              
008338,000101: 01,3106           10000                           CCS      A                                     
008339,000102: 01,3107           03063                           TC       TMFAIL2                               
008340,000103: 01,3110           77740        HI10               OCT      77740                                 
008341,000104: 01,3111           03063                           TC       TMFAIL2                               
008342,000105: 01,3112           00002                           TC       Q                                     
008343,000106: 
008344,000107:                                                                                                  #  UPACT IS TURNED OFF BY VBRELDSP, ALSO BY ERROR LIGHT RESET.
008345,000108:                                                                                                  #  THE RECEPTION OF A BAD CODE BY UPLINK LOCKS OUT FURTHER UPLINK ACTIVITY
008346,000109:                                                                                                  #  BY PLACING A 1 INTO BIT1 OF UPLOCK. BIT9 (ALONG WITH BIT11) OF TMKEYBUF
008347,000110:                                                                                                  #  IS SET TO 1 TO SEND AN INDICATION OF THIS SITUATION DOWN THE DOWNLINK.
008348,000111:                                                                                                  #  THE UPLINK INTERLOCK IS ALLOWED WHEN AN ERROR LIGHT RESET CODE IS SENT
008349,000112:                                                                                                  #  UP THE UPLINK, OR WHEN A FRESH START IS PERFORMED.
008350,000113: 
008351,000114: 01,3113                        ENDKRURS           EQUALS                                         

End of include-file KEYRUPT,_UPRUPT.agc.  Parent file is MAIN.agc