Source Code

These source-code files are part of a reconstructed copy of Skylark 048, the Block II Command Module (CM) Apollo Guidance Computer (AGC) software for the Skylab-2, Skylab-3, Skylab-4, and Apollo-Soyuz Test Project missions.

They have been created via disassembly of binary dumps of the original core rope memory modules actually flown on Skylab-2, part numbers 2010802-541, 2010802-551, 2010802-561, 2010802-571, 2010802-581, and 2010802-591. Access to these modules was provided by the New Mexico Museum of Space History, who we are much indebted to.

The source code for the Apollo 15, 16, and 17 software, Artemis 072, was used as a starting point. Heavy use was made of TRW 4900.5-244, Programmed Guidance Equations for Skylark Command Module Earth Orbital Program, dated 14 February 1972. This document contains pseudocode of essentially all of Skylark, using original program labels which have been copied for this source reconstruction.

Since only binary dumps (rather than listings) of Skylark are available as source material, all comments and labels are approximate. They have been taken from the Programmed Guidance Equations or other AGC programs where possible, or, in some places, written from scratch to match what we believe would have been in the original listing.

055742,000002:                                                                                                  ## Copyright:   Public domain.
055743,000003:                                                                                                  ## Filename:    AGC_BLOCK_TWO_SELF-CHECK.agc
055744,000004:                                                                                                  ## Purpose:     A section of Skylark revision 048.
055745,000005:                                                                                                  ##              It is part of the source code for the Apollo Guidance Computer (AGC)
055746,000006:                                                                                                  ##              for Skylab-2, Skylab-3, Skylab-4, and ASTP. No original listings of
055747,000007:                                                                                                  ##              this software are available; instead, this file was created via
055748,000008:                                                                                                  ##              disassembly of dumps of the core rope modules actually flown on
055749,000009:                                                                                                  ##              Skylab-2. Access to these modules was provided by the New Mexico
055750,000010:                                                                                                  ##              Museum of Space History.
055751,000011:                                                                                                  ## Assembler:   yaYUL
055752,000012:                                                                                                  ## Contact:     Ron Burkey <info@sandroid.org>.
055753,000013:                                                                                                  ## Website:     www.ibiblio.org/apollo/index.html
055754,000014:                                                                                                  ## Mod history: 2023-09-04 MAS  Created from Artemis 072.
055755,000015: 
055756,000016: 
055757,000017:                                                                                                  #  PROGRAM DESCRIPTION                           DATE  20 DECEMBER 1967
055758,000018:                                                                                                  #  PROGRAM NAME -  SELF-CHECK                    LOG SECTION AGC BLOCK TWO SELF-CHECK
055759,000019:                                                                                                  #  MOD NO - 1                                    ASSEMBLY SUBROUTINE UTILITYM REV 25
055760,000020:                                                                                                  #  MOD BY - GAUNTT
055761,000021: 
055762,000022:                                                                                                  #  FUNCTIONAL DESCRIPTION
055763,000023: 
055764,000024:                                                                                                  #  PROGRAM HAS TWO MAIN PARTS. THE FIRST IS SELF-CHECK WHICH RUNS AS A ZERO PRIORITY JOB WITH NO CORE SET, AS
055765,000025:                                                                                                  #  PART OF THE BACK-UP IDLE LOOP. THE SECOND IS SHOW-BANKSUM WHICH RUNS AS A REGULAR EXECUTIVE JOB WITH ITS OWN
055766,000026:                                                                                                  #  STARTING VERB.
055767,000027:                                                                                                  #  THE PURPOSE OF SELF-CHECK IS TO CHECK OUT VARIOUS PARTS OF THE COMPUTER AS OUTLINED BELOW IN THE OPTIONS.
055768,000028:                                                                                                  #  THE PURPOSE OF SHOW-BANKSUM IS TO DISPLAY THE SUM OF EACH BANK, ONE AT A TIME.
055769,000029:                                                                                                  #  IN ALL THERE ARE  7 POSSIBLE OPTIONS IN THIS BLOCK II VERSION OF SELF-CHECK. MORE DETAIL DESCRIPTION MAY BE
055770,000030:                                                                                                  #  FOUND IN E-2065 BLOCK II AGC SELF-CHECK AND SHOW BANKSUM BY EDWIN D. SMALLY DECEMBER 1966, AND ADDENDA 2 AND 3.
055771,000031:                                                                                                  #  THE DIFFERENT OPTIONS ARE CONTROLLED BY PUTTING DIFFERENT NUMBERS IN THE SMODE REGISTER (NOUN 27). BELOW IS
055772,000032:                                                                                                  #  A DESCRIPTION OF WHAT PARTS OF THE COMPUTER THAT ARE CHECKED BY THE OPTIONS, AND THE CORRESPONDING NUMBER, IN
055773,000033:                                                                                                  #  OCTAL, TO LOAD INTO SMODE.
055774,000034:                                                                                                  #        +-4             ERASABLE MEMORY
055775,000035:                                                                                                  #        +-5             FIXED MEMORY
055776,000036:                                                                                                  #        +-1,2,3,6,7,10  EVERYTHING IN OPTIONS 4 AND 5.
055777,000037:                                                                                                  #        -0              SAME AS +-10 UNTIL AN ERROR IS DETECTED.
055778,000038:                                                                                                  #        +0              NO CHECK, PUTS COMPUTER INTO THE BACKUP IDLE LOOP.
055779,000039: 
055780,000040:                                                                                                  #  WARNINGS
055781,000041: 
055782,000042:                                                                                                  #        USE OF E MEMORY RESERVED FOR SELF-CHECK (EVEN IN IDLE LOOP) AS TEMP STORAGE BY OTHER PROGRAMS IS DANGEROUS.
055783,000043:                                                                                                  #        SMODE SET GREATER THAN OCT 10 PUTS COMPUTER INTO BACKUP IDLE LOOP.
055784,000044: 
055785,000045:                                                                                                  #  CALLING SEQUENCE
055786,000046: 
055787,000047:                                                                                                  #        TO CALL SELF-CHECK KEY IN
055788,000048:                                                                                                  #                V 21 N 27 E     OPTION NUMBER E
055789,000049:                                                                                                  #        TO CALL SHOW-BANKSUM KEY IN
055790,000050:                                                                                                  #                V 91 E          DISPLAYS FIRST BANK
055791,000051:                                                                                                  #                V 33 E          PROCEED, DISPLAYS NEXT BANK
055792,000052: 
055793,000053: 
055794,000054:                                                                                                  #  EXIT MODES, NORMAL AND ALARM
055795,000055: 
055796,000056:                                                                                                  #  SELF-CHECK NORMALLY CONTINUES INDEFINITELY UNLESS THERE IS AN ERROR DETECTED. IF SO + OPTION NUMBERS PUT
055797,000057:                                                                                                  #  COMPUTER INTO BACKUP IDLE LOOP, - OPTION NUMBERS RESTART THE OPTION.
055798,000058:                                                                                                  #  THE -0 OPTION PROCEEDS FROM THE LINE FOLLOWING THE LINE WHERE THE ERROR WAS DETECTED.
055799,000059:                                                                                                  #  SHOW-BANKSUM PROCEEDS UNTIL A TERMINATE IS KEYED IN (V 34 E). THE COMPUTER IS PUT INTO THE BACKUP IDLE LOOP
055800,000060: 
055801,000061: 
055802,000062:                                                                                                  #  OUTPUT
055803,000063:                                                                                                  #  SELF-CHECK UPON DETECTING AN ERROR LOADS THE SELF-CHECK ALARM CONSTANT (01102) INTO THE FAILREG SET AND
055804,000064:                                                                                                  #  TURNS ON THE ALARM LIGHT. THE OPERATOR MAY THEN DISPLAY THE THREE FAILREGS BY KEYING IN V 05 N 09 E. FOR FURTHER
055805,000065:                                                                                                  #  INFORMATION HE MAY KEY IN V 05 N 08 E, THE DSKY DISPLAY IN R1 WILL BE ADDRESS+1 OF WHERE THE ERROR WAS DETECTED,
055806,000066:                                                                                                  #  IN R2 THE BBCON OF SELF-CHECK, AND IN R3 THE TOTAL NUMBER OF ERRORS DETECTED BY SELF-CHECK SINCE THE LAST MAN
055807,000067:                                                                                                  #  INITIATED FRESH START (SLAP1).
055808,000068:                                                                                                  #  SHOW-BANKSUM STARTING WITH BANK 0 DISPLAYS IN R1 THE BANK SUM (A +-NUMBER EQUAL TO THE BANK NUMBER), IN R2
055809,000069:                                                                                                  #  THE BANK NUMBER, AND IN R3 THE BUGGER WORD.
055810,000070: 
055811,000071: 
055812,000072:                                                                                                  #  ERASABLE INITIALIZATION REQUIRED
055813,000073: 
055814,000074:                                                                                                  #        ACCOMPLISHED BY FRESH START
055815,000075:                                                                                                  #                SMODE SET TO +0
055816,000076: 
055817,000077:                                                                                                  #  DEBRIS
055818,000078: 
055819,000079:                                                                                                  #        ALL EXITS FROM THE CHECK OF ERASABLE (ERASCHK) RESTORE ORIGINAL CONTENTS TO REGISTERS UNDER CHECK.
055820,000080:                                                                                                  #        EXCEPTION IS A RESTART. RESTART THAT OCCURS DURING ERASCHK RESTORES ERASABLE, UNLESS THERE IS EVIDENCE TO DOUBT
055821,000081:                                                                                                  #        E MEMORY, IN WHICH CASE PROGRAM THEN DOES A FRESH START (DOFSTART).
055822,000082: 
055823,000083: 43,2000                                           SETLOC   SELFCHEC                              
055824,000084: 43,2000                                           BANK                                           
055825,000085: 
055826,000086: 43,3231                                           COUNT*   $$/SELF                               
055827,000087: 43,3231     5001               SBIT1              EQUALS   BIT1                                  
055828,000088: 43,3231     5000               SBIT2              EQUALS   BIT2                                  
055829,000089: 43,3231     4777               SBIT3              EQUALS   BIT3                                  
055830,000090: 43,3231     4776               SBIT4              EQUALS   BIT4                                  
055831,000091: 43,3231     4775               SBIT5              EQUALS   BIT5                                  
055832,000092: 43,3231     4774               SBIT6              EQUALS   BIT6                                  
055833,000093: 43,3231     4773               SBIT7              EQUALS   BIT7                                  
055834,000094: 43,3231     4772               SBIT8              EQUALS   BIT8                                  
055835,000095: 43,3231     4771               SBIT9              EQUALS   BIT9                                  
055836,000096: 43,3231     4770               SBIT10             EQUALS   BIT10                                 
055837,000097: 43,3231     4767               SBIT11             EQUALS   BIT11                                 
055838,000098: 43,3231     4766               SBIT12             EQUALS   BIT12                                 
055839,000099: 43,3231     4765               SBIT13             EQUALS   BIT13                                 
055840,000100: 43,3231     4764               SBIT14             EQUALS   BIT14                                 
055841,000101: 43,3231     4763               SBIT15             EQUALS   BIT15                                 
055842,000102: 
055843,000103: 43,3231     5003               S+ZERO             EQUALS   ZERO                                  
055844,000104: 43,3231     5001               S+1                EQUALS   BIT1                                  
055845,000105: 43,3231     5000               S+2                EQUALS   BIT2                                  
055846,000106: 43,3231     6214               S+3                EQUALS   THREE                                 
055847,000107: 43,3231     4777               S+4                EQUALS   FOUR                                  
055848,000108: 43,3231     5004               S+5                EQUALS   FIVE                                  
055849,000109: 43,3231     6211               S+6                EQUALS   SIX                                   
055850,000110: 43,3231     5005               S+7                EQUALS   SEVEN                                 
055851,000111: 43,3231     4350               S8BITS             EQUALS   LOW8                                  #  00377
055852,000112: 43,3231     5016               CNTRCON            =        OCT50                                 #  USED IN CNTRCHK
055853,000113: 43,3231           00061        ERASCON1           OCTAL    00061                                 #  USED IN ERASCHK
055854,000114: 43,3232           01373        ERASCON2           OCTAL    01373                                 #  USED IN ERASCHK
055855,000115: 43,3233     5037               ERASCON6           =        OCT1400                               #  USED IN ERASCHK
055856,000116: 43,3233     5043               ERASCON3           EQUALS   V06N49                                #  USED IN ERASCHK
055857,000117: 43,3233           01773        ERASCON4           OCTAL    01773                                 #  USED IN ERASCHK
055858,000118: 43,3234     5053               S10BITS            EQUALS   LOW10                                 #  01777, USED IN ERASCHK
055859,000119: 43,3234     5062               SBNK03             EQUALS   PRIO6                                 #  06000, USED IN ROPECHK
055860,000120: 43,3234     4344               -MAXADRS           =        HI5                                   #  FOR ROPECHK
055861,000121: 43,3234     5022               SIXTY              EQUALS   SUPER011                              
055862,000122: 43,3234           60017        SUPRCON            OCTAL    60017                                 #  USED IN ROPECHK
055863,000123: 43,3235           17777        S13BITS            OCTAL    17777                                 
055864,000124: 43,3236           25252        CONC+S1            OCTAL    25252                                 #  USED IN CYCLSHFT
055865,000125: 43,3237           52400        CONC+S2            OCTAL    52400                                 #  USED IN CYCLSHFT
055866,000126: 43,3240           76777        ERASCON5           OCTAL    76777                                 
055867,000127: 43,3241     5711               S-7                =        OCT77770                              
055868,000128: 43,3241     6061               S-4                EQUALS   NEG4                                  
055869,000129: 43,3241     7700               S-3                EQUALS   NEG3                                  
055870,000130: 43,3241     7701               S-2                EQUALS   NEG2                                  
055871,000131: 43,3241     7702               S-1                EQUALS   NEGONE                                
055872,000132: 43,3241     5002               S-ZERO             EQUALS   NEG0                                  
055873,000133: 
055874,000134: 43,3241  E3,1400                                  EBANK=   LST1                                  
055875,000135: 43,3241           01371        ADRS1              ADRES    SKEEP1                                
055876,000136: 43,3242           03333        SELFADRS           ADRES    SELFCHK                               #  SELFCHK RETURN ADDRESS. SHOULD BE PUT
055877,000137:                                                                                                  #  IN SELFRET WHEN GOING FROM SELFCHK TO
055878,000138:                                                                                                  #  SHOWSUM AND PUT IN SKEEP1 WHEN GOING
055879,000139:                                                                                                  #  FROM SHOWSUM TO SELF-CHECK.
055880,000140: 
055881,000141: 43,3243           31360        PRERRORS           CA       ERESTORE                              #  IS IT NECESSARY TO RESTORE ERASABLE
055882,000142: 43,3244           00006                           EXTEND                                         
055883,000143: 43,3245           13254                           BZF      ERRORS                                #  NO
055884,000144: 43,3246           00006                           EXTEND                                         
055885,000145: 43,3247           31376                           DCA      SKEEP5                                
055886,000146: 43,3250           51377                           INDEX    SKEEP7                                
055887,000147: 43,3251           52001                           DXCH     0000                                  #  RESTORE THE TWO ERASABLE REGISTERS
055888,000148: 43,3252           35003                           CA       S+ZERO                                
055889,000149: 43,3253           55360                           TS       ERESTORE                              
055890,000150: 43,3254           00004        ERRORS             INHINT                                         
055891,000151: 43,3255           30002                           CA       Q                                     
055892,000152: 43,3256           55357                           TS       SFAIL                                 #  SAVE Q FOR FAILURE LOCATION
055893,000153: 43,3257           55363                           TS       ALMCADR                               #  FOR DISPLAY WITH BBANK AND ERCOUNT
055894,000154: 43,3260           25365                           INCR     ERCOUNT                               #  KEEP TRACK OF NUMBER OF MALFUNCTIONS.
055895,000155: 43,3261           05646        TCALARM2           TC       ALARM2                                
055896,000156: 43,3262           01102                           OCT      01102                                 #  SELF-CHECK MALFUNCTION INDICATOR
055897,000157: 43,3263           11362                           CCS      SMODE                                 
055898,000158: 43,3264           35003        SIDLOOP            CA       S+ZERO                                
055899,000159: 43,3265           55362                           TS       SMODE                                 
055900,000160: 43,3266           03333                           TC       SELFCHK                               #  GO TO IDLE LOOP
055901,000161: 43,3267           01357                           TC       SFAIL                                 #  CONTINUE WITH SELF-CHECK
055902,000162: 
055903,000163: 43,3270           10000        -1CHK              CCS      A                                     
055904,000164: 43,3271           13243                           TCF      PRERRORS                              
055905,000165: 43,3272           13243                           TCF      PRERRORS                              
055906,000166: 43,3273           10000                           CCS      A                                     
055907,000167: 43,3274           13243                           TCF      PRERRORS                              
055908,000168: 43,3275           00002                           TC       Q                                     
055909,000169: 
055910,000170: 43,3276           00006        SMODECHK           EXTEND                                         
055911,000171: 43,3277           23371                           QXCH     SKEEP1                                
055912,000172: 43,3300           03327                           TC       CHECKNJ                               #  CHECK FOR NEW JOB
055913,000173: 43,3301           11362                           CCS      SMODE                                 
055914,000174: 43,3302           03307                           TC       SOPTIONS                              
055915,000175: 43,3303           03300                           TC       SMODECHK   +2                         #  TO BACKUP IDLE LOOP
055916,000176: 43,3304           03307                           TC       SOPTIONS                              
055917,000177: 43,3305           25366                           INCR     SCOUNT                                
055918,000178: 43,3306           01371                           TC       SKEEP1                                #  CONTINUE WITH SELF-CHECK
055919,000179: 
055920,000180: 43,3307           65711        SOPTIONS           AD       S-7                                   
055921,000181: 43,3310           00006                           EXTEND                                         
055922,000182: 43,3311           63313                           BZMF     +2                                    #  FOR OPTIONS BELOW NINE.
055923,000183: 43,3312           03264        BNKOPTN            TC       SIDLOOP                               #  ILLEGAL OPTION.  GO TO IDLE LOOP.
055924,000184: 43,3313           25366                           INCR     SCOUNT                                #  FOR OPTIONS BELOW NINE.
055925,000185: 43,3314           65005                           AD       S+7                                   
055926,000186: 
055927,000187: 43,3315           50000                           INDEX    A                                     
055928,000188: 43,3316           03317                           TC       SOPTION1                              
055929,000189: 43,3317           01371        SOPTION1           TC       SKEEP1                                #  WAS TC+TCF
055930,000190: 43,3320           01371        SOPTION2           TC       SKEEP1                                #  WAS IN:OUT1
055931,000191: 43,3321           01371        SOPTION3           TC       SKEEP1                                #  WAS COUNTCHK
055932,000192: 43,3322           03334        SOPTION4           TC       ERASCHK                               
055933,000193: 43,3323           03515        SOPTION5           TC       ROPECHK                               
055934,000194: 43,3324           01371        SOPTION6           TC       SKEEP1                                
055935,000195: 43,3325           01371        SOPTION7           TC       SKEEP1                                
055936,000196: 43,3326           01371        SOPTON10           TC       SKEEP1                                #  CONTINUE WITH SELF-CHECK
055937,000197: 
055938,000198: 43,3327           00006        CHECKNJ            EXTEND                                         
055939,000199: 43,3330           23361                           QXCH     SELFRET                               #  SAVE RETURN ADDRESS WHILE TESTING NEWJOB
055940,000200: 43,3331           04666                           TC       POSTJUMP                              #  TO SEE IF ANY JOBS HAVE BECOME ACTIVE.
055941,000201: 43,3332           03205                           CADR     ADVAN                                 
055942,000202: 
055943,000203: 43,3333           03276        SELFCHK            TC       SMODECHK                              #  ** CHARLEY, COME IN HERE
055944,000204: 
055945,000205:                                                                                                  #  SKEEP7 HOLDS LOWEST OF TWO ADDRESSES BEING CHECKED.
055946,000206:                                                                                                  #  SKEEP6 HOLDS B(X+1).
055947,000207:                                                                                                  #  SKEEP5 HOLDS B(X).
055948,000208:                                                                                                  #  SKEEP4 HOLDS C(EBANK) DURING ERASLOOP AND CHECKNJ.
055949,000209:                                                                                                  #  SKEEP3 HOLDS LAST ADDRESS BEING CHECKED (HIGHEST ADDRESS).
055950,000210:                                                                                                  #  SKEEP2 CONTROLS CHECKING OF NON-SWITCHABLE ERASABLE MEMORY WITH BANK NUMBERS IN EB.
055951,000211:                                                                                                  #  ERASCHK TAKES APPROXMATELY 7 SECONDS
055952,000212: 
055953,000213: 43,3334           35001        ERASCHK            CA       S+1                                   
055954,000214: 43,3335           55372                           TS       SKEEP2                                
055955,000215: 43,3336           35003        0EBANK             CA       S+ZERO                                
055956,000216: 43,3337           54003                           TS       EBANK                                 
055957,000217: 43,3340           35043                           CA       ERASCON3                              #  01461
055958,000218: 43,3341           55377                           TS       SKEEP7                                #  STARTING ADDRESS
055959,000219: 43,3342           35053                           CA       S10BITS                               #  01777
055960,000220: 43,3343           55373                           TS       SKEEP3                                #  LAST ADDRESS CHECKED
055961,000221: 43,3344           03364                           TC       ERASLOOP                              
055962,000222: 
055963,000223: 43,3345           35037        E134567B           CA       ERASCON6                              #  01400
055964,000224: 43,3346           55377                           TS       SKEEP7                                #  STARTING ADDRESS
055965,000225: 43,3347           35053                           CA       S10BITS                               #  01777
055966,000226: 43,3350           55373                           TS       SKEEP3                                #  LAST ADDRESS CHECKED
055967,000227: 43,3351           03364                           TC       ERASLOOP                              
055968,000228: 
055969,000229: 43,3352           35037        2EBANK             CA       ERASCON6                              #  01400
055970,000230: 43,3353           55377                           TS       SKEEP7                                #  STARTING ADDRESS
055971,000231: 43,3354           33233                           CA       ERASCON4                              #  01773
055972,000232: 43,3355           55373                           TS       SKEEP3                                #  LAST ADDRESS CHECKED
055973,000233: 43,3356           03364                           TC       ERASLOOP                              
055974,000234: 
055975,000235: 43,3357           55372        NOEBANK            TS       SKEEP2                                #  +0
055976,000236: 43,3360           33231                           CA       ERASCON1                              #  00061
055977,000237: 43,3361           55377                           TS       SKEEP7                                #  STARTING ADDRESS
055978,000238: 43,3362           33232                           CA       ERASCON2                              #  01373
055979,000239: 43,3363           55373                           TS       SKEEP3                                #  LAST ADDRESS CHECKED
055980,000240: 
055981,000241: 43,3364           00004        ERASLOOP           INHINT                                         
055982,000242: 43,3365           30003                           CA       EBANK                                 #  STORES C(EBANK)
055983,000243: 43,3366           55374                           TS       SKEEP4                                
055984,000244: 43,3367           00006                           EXTEND                                         
055985,000245: 43,3370           51377                           NDX      SKEEP7                                
055986,000246: 43,3371           30001                           DCA      0000                                  
055987,000247: 43,3372           53376                           DXCH     SKEEP5                                #  STORES C(X) AND C(X+1) IN SKEEP6 AND 5.
055988,000248: 43,3373           31377                           CA       SKEEP7                                
055989,000249: 43,3374           55360                           TS       ERESTORE                              #  IF RESTART, RESTORE C(X) AND C(X+1)
055990,000250: 43,3375           54001                           TS       L                                     
055991,000251: 43,3376           24001                           INCR     L                                     
055992,000252: 43,3377           50000                           NDX      A                                     
055993,000253: 43,3400           52001                           DXCH     0000                                  #  PUTS OWN ADDRESS IN X AND X +1
055994,000254: 43,3401           51377                           NDX      SKEEP7                                
055995,000255: 43,3402           40001                           CS       0001                                  #  CS X+1
055996,000256: 43,3403           51377                           NDX      SKEEP7                                
055997,000257: 43,3404           60000                           AD       0000                                  #  AD X
055998,000258: 43,3405           03270                           TC       -1CHK                                 
055999,000259: 43,3406           31360                           CA       ERESTORE                              #  HAS ERASABLE BEEN RESTORED
056000,000260: 43,3407           00006                           EXTEND                                         
056001,000261: 43,3410           13434                           BZF      ELOOPFIN                              #  YES, EXIT ERASLOOP.
056002,000262: 43,3411           00006                           EXTEND                                         
056003,000263: 43,3412           51377                           NDX      SKEEP7                                
056004,000264: 43,3413           40001                           DCS      0000                                  #  COMPLEMENT OF ADDRESS OF X AND X+1
056005,000265: 43,3414           51377                           NDX      SKEEP7                                
056006,000266: 43,3415           52001                           DXCH     0000                                  #  PUT COMPLEMENT OF ADDRESS OF X AND X+1
056007,000267: 43,3416           51377                           NDX      SKEEP7                                
056008,000268: 43,3417           40000                           CS       0000                                  #  CS X
056009,000269: 43,3420           51377                           NDX      SKEEP7                                
056010,000270: 43,3421           60001                           AD       0001                                  #  AD X+1
056011,000271: 43,3422           03270                           TC       -1CHK                                 
056012,000272: 43,3423           31360                           CA       ERESTORE                              #  HAS ERASABLE BEEN RESTORED
056013,000273: 43,3424           00006                           EXTEND                                         
056014,000274: 43,3425           13434                           BZF      ELOOPFIN                              #  YES, EXIT ERASLOOP.
056015,000275: 43,3426           00006                           EXTEND                                         
056016,000276: 43,3427           31376                           DCA      SKEEP5                                
056017,000277: 43,3430           51377                           NDX      SKEEP7                                
056018,000278: 43,3431           52001                           DXCH     0000                                  #  PUT B(X) AND B(X+1) BACK INTO X AND X+1
056019,000279: 43,3432           35003                           CA       S+ZERO                                
056020,000280: 43,3433           55360                           TS       ERESTORE                              #  IF RESTART, DO NOT RESTORE C(X), C(X+1)
056021,000281: 43,3434           00003        ELOOPFIN           RELINT                                         
056022,000282: 43,3435           03327                           TC       CHECKNJ                               #  CHECK FOR NEW JOB
056023,000283: 43,3436           31374                           CA       SKEEP4                                #  REPLACES B(EBANK)
056024,000284: 43,3437           54003                           TS       EBANK                                 
056025,000285: 43,3440           25377                           INCR     SKEEP7                                
056026,000286: 43,3441           41377                           CS       SKEEP7                                
056027,000287: 43,3442           61373                           AD       SKEEP3                                
056028,000288: 43,3443           00006                           EXTEND                                         
056029,000289: 43,3444           13446                           BZF      +2                                    
056030,000290: 43,3445           03364                           TC       ERASLOOP                              #  GO TO NEXT ADDRESS IN SAME BANK
056031,000291: 43,3446           11372                           CCS      SKEEP2                                
056032,000292: 43,3447           03357                           TC       NOEBANK                               
056033,000293: 43,3450           25372                           INCR     SKEEP2                                #  PUT +1 IN SKEEP2.
056034,000294: 43,3451           30003                           CA       EBANK                                 
056035,000295: 43,3452           64771                           AD       SBIT9                                 
056036,000296: 43,3453           54003                           TS       EBANK                                 
056037,000297: 43,3454           63240                           AD       ERASCON5                              #  76777, CHECK FOR BANK E2
056038,000298: 43,3455           00006                           EXTEND                                         
056039,000299: 43,3456           13352                           BZF      2EBANK                                
056040,000300: 43,3457           10003                           CCS      EBANK                                 
056041,000301: 43,3460           03345                           TC       E134567B                              #  GO TO EBANKS 1,3,4,5,6, AND 7
056042,000302: 43,3461           35037                           CA       ERASCON6                              #  END OF ERASCHK
056043,000303: 43,3462           54003                           TS       EBANK                                 
056044,000304: 
056045,000305:                                                                                                  #  CNTRCHK PERFORMS A CS OF ALL REGISTERS FROM OCT. 60 THROUGH OCT. 10.
056046,000306:                                                                                                  #  INCLUDED ARE ALL COUNTERS, T6-1, CYCLE AND SHIFT, AND ALL RUPT REGISTERS
056047,000307: 
056048,000308: 43,3463           35016        CNTRCHK            CA       CNTRCON                               #  00050
056049,000309: 43,3464           55372        CNTRLOOP           TS       SKEEP2                                
056050,000310: 43,3465           64776                           AD       SBIT4                                 #  +10 OCTAL
056051,000311: 43,3466           50000                           INDEX    A                                     
056052,000312: 43,3467           40000                           CS       0000                                  
056053,000313: 43,3470           11372                           CCS      SKEEP2                                
056054,000314: 43,3471           03464                           TC       CNTRLOOP                              
056055,000315: 
056056,000316:                                                                                                  #  CYCLSHFT CHECKS THE CYCLE AND SHIFT REGISTERS
056057,000317: 
056058,000318: 43,3472           33236        CYCLSHFT           CA       CONC+S1                               #  25252
056059,000319: 43,3473           54020                           TS       CYR                                   #  C(CYR) = 12525
056060,000320: 43,3474           54022                           TS       CYL                                   #  C(CYL) = 52524
056061,000321: 43,3475           54021                           TS       SR                                    #  C(SR) = 12525
056062,000322: 43,3476           54023                           TS       EDOP                                  #  C(EDOP) = 00125
056063,000323: 43,3477           60020                           AD       CYR                                   #  37777         C(CYR) = 45252
056064,000324: 43,3500           60022                           AD       CYL                                   #  00-12524      C(CYL) = 25251
056065,000325: 43,3501           60021                           AD       SR                                    #  00-25251      C(SR) = 05252
056066,000326: 43,3502           60023                           AD       EDOP                                  #  00-25376      C(EDOP) = +0
056067,000327: 43,3503           63237                           AD       CONC+S2                               #  C(CONC+S2) = 52400
056068,000328: 43,3504           03270                           TC       -1CHK                                 
056069,000329: 43,3505           60020                           AD       CYR                                   #  45252
056070,000330: 43,3506           60022                           AD       CYL                                   #  72523
056071,000331: 43,3507           60021                           AD       SR                                    #  77775
056072,000332: 43,3510           60023                           AD       EDOP                                  #  77775
056073,000333: 43,3511           65001                           AD       S+1                                   #  77776
056074,000334: 43,3512           03270                           TC       -1CHK                                 
056075,000335: 
056076,000336: 43,3513           25367                           INCR     SCOUNT     +1                         
056077,000337: 43,3514           03276                           TC       SMODECHK                              
056078,000338: 
056079,000339:                                                                                                  #  SKEEP1 HOLDS SUM
056080,000340:                                                                                                  #  SKEEP2 HOLDS PRESENT CONTENTS OF ADDRESS IN ROPECHK AND SHOWSUM ROUTINES
056081,000341:                                                                                                  #  SKEEP2 HOLDS BANK NUMBER IN LOW ORDER BITS DURING SHOWSUM DISPLAY
056082,000342:                                                                                                  #  SKEEP3 HOLDS PRESENT ADDRESS (00000 TO 01777 IN COMMON FIXED BANKS)
056083,000343:                                                                                                  #                               (04000 TO 07777 IN FXFX BANKS)
056084,000344:                                                                                                  #  SKEEP3 HOLDS BUGGER WORD DURING SHOWSUM DISPLAY
056085,000345:                                                                                                  #  SKEEP4 HOLDS BANK NUMBER AND SUPER BANK NUMBER
056086,000346:                                                                                                  #  SKEEP5 COUNTS 2 SUCCESSIVE TC SELF WORDS
056087,000347:                                                                                                  #  SKEEP6 CONTROLS ROPECHK OR SHOWSUM OPTION
056088,000348:                                                                                                  #  SKEEP7 CONTROLS WHEN ROUNTINE IS IN COMMON FIXED OR FIXED FIXED BANKS
056089,000349: 
056090,000350: 43,3515           35002        ROPECHK            CA       S-ZERO                                #  *
056091,000351: 43,3516           55376                           TS       SKEEP6                                #  * -0 FOR ROPECHK.
056092,000352: 43,3517           35003        STSHOSUM           CA       S+ZERO                                #  * SHOULD BE ROPECHK
056093,000353: 
056094,000354: 43,3520           55374                           TS       SKEEP4                                #  BANK NUMBER
056095,000355: 43,3521           35001                           CA       S+1                                   
056096,000356: 43,3522           55377        COMMFX             TS       SKEEP7                                
056097,000357: 43,3523           35003                           CA       S+ZERO                                
056098,000358: 43,3524           55371                           TS       SKEEP1                                
056099,000359: 43,3525           55373                           TS       SKEEP3                                
056100,000360: 43,3526           35001                           CA       S+1                                   
056101,000361: 43,3527           55375                           TS       SKEEP5                                #  COUNTS DOWN 2 TC SELF WORDS
056102,000362: 43,3530           31374        COMADRS            CA       SKEEP4                                
056103,000363: 43,3531           54001                           TS       L                                     #  TO SET SUPER BANK
056104,000364: 43,3532           74344                           MASK     HI5                                   
056105,000365: 43,3533           61373                           AD       SKEEP3                                
056106,000366: 43,3534           04702                           TC       SUPDACAL                              #  SUPER DATA CALL
056107,000367: 43,3535           03560                           TC       ADSUM                                 
056108,000368: 43,3536           64767                           AD       SBIT11                                #  02000
056109,000369: 43,3537           03571                           TC       ADRSCHK                               
056110,000370: 
056111,000371: 43,3540           40000        FXFX               CS       A                                     
056112,000372: 43,3541           55377                           TS       SKEEP7                                
056113,000373: 43,3542           00006                           EXTEND                                         
056114,000374: 43,3543           13546                           BZF      +3                                    
056115,000375: 43,3544           34766                           CA       SBIT12                                #  04000, STARTING ADDRESS OF BANK 02
056116,000376: 43,3545           03547                           TC       +2                                    
056117,000377: 43,3546           35062                           CA       SBNK03                                #  06000, STARTING ADDRESS OF BANK 03
056118,000378: 43,3547           55373                           TS       SKEEP3                                
056119,000379: 43,3550           35003                           CA       S+ZERO                                
056120,000380: 43,3551           55371                           TS       SKEEP1                                
056121,000381: 43,3552           35001                           CA       S+1                                   
056122,000382: 43,3553           55375                           TS       SKEEP5                                #  COUNTS DOWN 2 TC SELF WORDS
056123,000383: 43,3554           51373        FXADRS             INDEX    SKEEP3                                
056124,000384: 43,3555           30000                           CA       0000                                  
056125,000385: 43,3556           03560                           TC       ADSUM                                 
056126,000386: 43,3557           03571                           TC       ADRSCHK                               
056127,000387: 
056128,000388: 43,3560           55372        ADSUM              TS       SKEEP2                                
056129,000389: 43,3561           61371                           AD       SKEEP1                                
056130,000390: 43,3562           55371                           TS       SKEEP1                                
056131,000391: 43,3563           35003                           CAF      S+ZERO                                
056132,000392: 43,3564           61371                           AD       SKEEP1                                
056133,000393: 43,3565           55371                           TS       SKEEP1                                
056134,000394: 43,3566           41372                           CS       SKEEP2                                
056135,000395: 43,3567           61373                           AD       SKEEP3                                
056136,000396: 43,3570           00002                           TC       Q                                     
056137,000397: 
056138,000398: 43,3571           22000        ADRSCHK            LXCH     A                                     
056139,000399: 43,3572           31373                           CA       SKEEP3                                
056140,000400: 43,3573           75053                           MASK     LOW10                                 #  RELATIVE ADDRESS
056141,000401: 43,3574           64344                           AD       -MAXADRS                              #  SUBTRACT MAX RELATIVE ADDRESS = 1777.
056142,000402: 43,3575           00006                           EXTEND                                         
056143,000403: 43,3576           13665                           BZF      SOPTION                               #  CHECKSUM FINISHED IF LAST ADDRESS.
056144,000404: 43,3577           11375                           CCS      SKEEP5                                #  IS CHECKSUM FINISHED
056145,000405: 43,3600           03603                           TC       +3                                    #  NO
056146,000406: 43,3601           03603                           TC       +2                                    #  NO
056147,000407: 43,3602           03665                           TC       SOPTION                               #  GO TO ROPECHK SHOWSUM OPTION
056148,000408: 43,3603           10001                           CCS      L                                     #  -0 MEANS A TC SELF WORD.
056149,000409: 43,3604           03613                           TC       CONTINU                               
056150,000410: 43,3605           03613                           TC       CONTINU                               
056151,000411: 43,3606           03613                           TC       CONTINU                               
056152,000412: 43,3607           11375                           CCS      SKEEP5                                
056153,000413: 43,3610           03614                           TC       CONTINU    +1                         
056154,000414: 43,3611           37702                           CA       S-1                                   
056155,000415: 43,3612           03614                           TC       CONTINU    +1                         #  AD IN THE BUGGER WORD
056156,000416: 43,3613           35001        CONTINU            CA       S+1                                   #  MAKE SURE TWO CONSECUTIVE TC SELF WORDS
056157,000417: 43,3614           55375                           TS       SKEEP5                                
056158,000418: 43,3615           11376                           CCS      SKEEP6                                #  *
056159,000419: 43,3616           10067                           CCS      NEWJOB                                #  * +1, SHOWSUM
056160,000420: 43,3617           05165                           TC       CHANG1                                #  *
056161,000421: 43,3620           03622                           TC       +2                                    #  *
056162,000422: 43,3621           03327                           TC       CHECKNJ                               #  -0 IN SKEEP6 FOR ROPECHK
056163,000423: 
056164,000424: 43,3622           25373        ADRS+1             INCR     SKEEP3                                
056165,000425: 43,3623           11377                           CCS      SKEEP7                                
056166,000426: 43,3624           03530                           TC       COMADRS                               
056167,000427: 43,3625           03530                           TC       COMADRS                               
056168,000428: 43,3626           03554                           TC       FXADRS                                
056169,000429: 43,3627           03554                           TC       FXADRS                                
056170,000430: 
056171,000431: 43,3630           41374        NXTBNK             CS       SKEEP4                                
056172,000432: 43,3631           63720                           AD       LSTBNKCH                              #  LAST BANK TO BE CHECKED
056173,000433: 43,3632           00006                           EXTEND                                         
056174,000434: 43,3633           13032                           BZF      ENDSUMS                               #  END OF SUMMING OF BANKS.
056175,000435: 43,3634           31374                           CA       SKEEP4                                
056176,000436: 43,3635           64767                           AD       SBIT11                                
056177,000437: 43,3636           55374                           TS       SKEEP4                                #  37 TO 40 INCRMTS SKEEP4 BY END RND CARRY
056178,000438: 43,3637           03643                           TC       CHKSUPR                               
056179,000439: 43,3640           34763        17TO20             CA       SBIT15                                
056180,000440: 43,3641           27374                           ADS      SKEEP4                                #  SET FOR BANK 20
056181,000441: 43,3642           03657                           TC       GONXTBNK                              
056182,000442: 43,3643           74344        CHKSUPR            MASK     HI5                                   
056183,000443: 43,3644           00006                           EXTEND                                         
056184,000444: 43,3645           13655                           BZF      NXTSUPR                               #  INCREMENT SUPER BANK
056185,000445: 43,3646           63235        27TO30             AD       S13BITS                               
056186,000446: 43,3647           00006                           EXTEND                                         
056187,000447: 43,3650           13652                           BZF      +2                                    #  BANK SET FOR 30
056188,000448: 43,3651           03657                           TC       GONXTBNK                              
056189,000449: 43,3652           35022                           CA       SIXTY                                 #  FIRST SUPER BANK
056190,000450: 43,3653           27374                           ADS      SKEEP4                                
056191,000451: 43,3654           03657                           TC       GONXTBNK                              
056192,000452: 43,3655           63234        NXTSUPR            AD       SUPRCON                               #  SET BNK 30 + INCR SUPR BNK AND CANCEL
056193,000453: 43,3656           27374                           ADS      SKEEP4                                #  ERC BIT OF THE 37 TO 40 ADVANCE.
056194,000454: 43,3657           11377        GONXTBNK           CCS      SKEEP7                                
056195,000455: 43,3660           03522                           TC       COMMFX                                
056196,000456: 43,3661           35001                           CA       S+1                                   
056197,000457: 43,3662           03540                           TC       FXFX                                  
056198,000458: 43,3663           34773                           CA       SBIT7                                 #  HAS TO BE LARGER THAN NO OF FXSW BANKS.
056199,000459: 43,3664           03522                           TC       COMMFX                                
056200,000460: 
056201,000461: 43,3665           31374        SOPTION            CA       SKEEP4                                
056202,000462: 43,3666           74344                           MASK     HI5                                   #  = BANK BITS
056203,000463: 43,3667           04333                           TC       LEFT5                                 
056204,000464: 43,3670           54001                           TS       L                                     #  BANK NUMBER BEFORE SUPER BANK
056205,000465: 43,3671           31374                           CA       SKEEP4                                
056206,000466: 43,3672           74350                           MASK     S8BITS                                #  = SUPER BANK BITS
056207,000467: 43,3673           00006                           EXTEND                                         
056208,000468: 43,3674           13702                           BZF      SOPT                                  #  BEFORE SUPER BANK
056209,000469: 43,3675           54021                           TS       SR                                    #  SUPER BANK NECESSARY
056210,000470: 43,3676           30001                           CA       L                                     
056211,000471: 43,3677           75005                           MASK     SEVEN                                 
056212,000472: 43,3700           60021                           AD       SR                                    
056213,000473: 43,3701           54001                           TS       L                                     #  BANK NUMBER WITH SUPER BANK
056214,000474: 43,3702           31376        SOPT               CA       SKEEP6                                #  *
056215,000475: 43,3703           00006                           EXTEND                                         #  *
056216,000476: 43,3704           13706                           BZF      +2                                    #  * ON -0 CONTINUE WITH ROPE CHECK.
056217,000477: 43,3705           03014                           TC       SDISPLAY                              #  * ON +1 GO TO DISPLAY OF SUM.
056218,000478: 43,3706           11371                           CCS      SKEEP1                                #  FORCE SUM TO ABSOLUTE VALUE.
056219,000479: 43,3707           03711                           TC       +2                                    
056220,000480: 43,3710           03712                           TC       +2                                    
056221,000481: 43,3711           65001                           AD       S+1                                   
056222,000482: 43,3712           55371                           TS       SKEEP1                                
056223,000483: 43,3713           40001        BNKCHK             CS       L                                     #  = - BANK NUMBER
056224,000484: 43,3714           61371                           AD       SKEEP1                                
056225,000485: 43,3715           67702                           AD       S-1                                   
056226,000486: 43,3716           03270                           TC       -1CHK                                 #  CHECK SUM
056227,000487: 43,3717           03630                           TC       NXTBNK                                
056228,000488: 
056229,000489: 43,3720     0067                                  EBANK=   NEWJOB                                
056230,000490: 43,3720           66100        LSTBNKCH           BBCON*                                         #  * CONSTANT, LAST BANK.
056231,000491: 
056232,000492: 43,3721  30,2000                                  SBANK=   LOWSUPER                              

End of include-file AGC_BLOCK_TWO_SELF-CHECK.agc.  Parent file is MAIN.agc