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