Source Code

058819,000001: # Copyright: Public domain. 058820,000002: # Filename: AGC_BLOCK_TWO_SELF-CHECK.agc 058821,000003: # Purpose: Part of the source code for Colossus, build 249. 058822,000004: # It is part of the source code for the Command Module's (CM) 058823,000005: # Apollo Guidance Computer (AGC), possibly for Apollo 8 and 9. 058824,000006: # Assembler: yaYUL 058825,000007: # Reference: Starts on p. 1384 of 1701.pdf. 058826,000008: # Contact: Ron Burkey <info@sandroid.org>. 058827,000009: # Website: www.ibiblio.org/apollo. 058828,000010: # Mod history: 08/30/04 RSB. Adapted from corresponding Luminary13 file. 058829,000011: 058830,000012: # The contents of the "Colossus249" files, in general, are transcribed 058831,000013: # from a scanned document obtained from MIT's website, 058832,000014: # http://hrst.mit.edu/hrs/apollo/public/archive/1701.pdf. Notations on this 058833,000015: # document read, in part: 058834,000016: 058835,000017: # Assemble revision 249 of AGC program Colossus by NASA 058836,000018: # 2021111-041. October 28, 1968. 058837,000019: 058838,000020: # This AGC program shall also be referred to as 058839,000021: # Colossus 1A 058840,000022: 058841,000023: # Prepared by 058842,000024: # Massachussets Institute of Technology 058843,000025: # 75 Cambridge Parkway 058844,000026: # Cambridge, Massachusetts 058845,000027: # under NASA contract NAS 9-4065. 058846,000028: 058847,000029: # Refer directly to the online document mentioned above for further information. 058848,000030: # Please report any errors (relative to 1701.pdf) to info@sandroid.org. 058849,000031: 058850,000032: # In some cases, where the source code for Luminary 131 overlaps that of 058851,000033: # Colossus 249, this code is instead copied from the corresponding Luminary 131 058852,000034: # source file, and then is proofed to incorporate any changes. 058853,000035: 058854,000036: # Page 1384 058855,000037: # PROGRAM DESCRIPTION DATE: 20 DECEMBER 1967 058856,000038: # PROGRAM NAME -- SELF-CHECK LOG SECTION: AGC BLOCK TWO SELF-CHECK 058857,000039: # MOD NO -- 1 ASSEMBLY SUBROUTINE UTILITYM REV 25 058858,000040: # MOD BY -- GAUNTT 058859,000041: 058860,000042: # FUNCTIONAL DESCRIPTION 058861,000043: # PROGRAM HAS TWO MAIN PARTS. THE FIRST IS SELF-CHECK WHICH RUNS AS A ZERO PRIORITY JOB WITH NO CORE SET, AS 058862,000044: # PART OF THE BACK-UP IDLE LOOP. THE SECOND IS SHOW-BANKSUM WHICH RUNS AS A REGULAR EXECUTIVE JOB WITH ITS OWN 058863,000045: # STARTING VERB. 058864,000046: 058865,000047: # THE PURPOSE OF SELF-CHECK IS TO CHECK OUT VARIOUS PARTS OF THE COMPUTER AS OUTLINED BELOW IN THE OPTIONS. 058866,000048: 058867,000049: # THE PURPOSE OF SHOW-BANKSUM IS TO DISPLAY THE SUM OF EACH BANK, ONE AT A TIME. 058868,000050: 058869,000051: # IN ALL THERE ARE 7 POSSIBLE OPTIONS IN THIS BLOCK II VERSION OF SELF-CHECK. MORE DETAIL DESCRIPTION MAY BE 058870,000052: # FOUND IN E-2065 BLOCK II AGC SELF-CHECK AND SHOW BANKSUM BY EDWIN D. SMALLY DECEMBER 1966, AND ADDENDA 2 AND 3. 058871,000053: 058872,000054: # THE DIFFERENT OPTIONS ARE CONTROLLED BY PUTTING DIFFERENT NUMBERS IN THE SMODE REGISTER (NOUN 27). BELOW IS 058873,000055: # A DESCRIPTION OF WHAT PARTS OF THE COMPUTER THAT ARE CHECKED BY THE OPTIONS, AND THE CORRESPONDING NUMBER, IN 058874,000056: # OCTAL, TO LOAD INTO SMODE. 058875,000057: # +-4 ERASABLE MEMORY 058876,000058: # +-5 FIXED MEMORY 058877,000059: # +-1,2,3,6,7,10 EVERYTHING IN OPTIONS 4 AND 5. 058878,000060: # -0 SAME AS +-10 UNTIL AN ERROR IS DETECTED. 058879,000061: # +0 NO CHECK, PUTS COMPUTER INTO THE BACKUP IDLE LOOP. 058880,000062: 058881,000063: # WARNINGS 058882,000064: # USE OF E MEMORY RESERVED FOR SELF-CHECK (EVEN IN IDLE LOOP) AS TEMP STORAGE BY OTHER PROGRAMS IS DANGEROUS. 058883,000065: # SMODE SET GREATER THAN OCT 10 PUTS COMPUTER INTO BACKUP IDLE LOOP. 058884,000066: 058885,000067: # CALLING SEQUENCE 058886,000068: # TO CALL SELF-CHECK KEY IN 058887,000069: # V 21 N 27 E OPTION NUMBER E 058888,000070: # TO CALL SHOW-BANKSUM KEY IN 058889,000071: # V 91 E DISPLAYS FIRST BANK 058890,000072: # V 33 E PROCEED, DISPLAYS NEXT BANK 058891,000073: 058892,000074: # EXIT MODES, NORMAL AND ALARM 058893,000075: # SELF-CHECK NORMALLY CONTINUES INDEFINITELY UNLESS THERE IS AN ERROR DETECTED. IF SO + OPTION NUMBERS PUT 058894,000076: # COMPUTER INTO BACKUP IDLE LOOP, - OPTIONS NUMBERS RESTART THE OPTION. 058895,000077: 058896,000078: # THE -0 OPTION PROCEEDS FROM THE LINE FOLLOWING THE LINE WHERE THE ERROR WAS DETECTED. 058897,000079: 058898,000080: # SHOW-BANKSUM PROCEEDS UNTIL A TERMINATE IS KEYED IN (V 34 E). THE COMPUTER IS PUT INTO THE BACKUP IDLE LOOP. 058899,000081: 058900,000082: # OUTPUT 058901,000083: # Page 1385 058902,000084: # SELF-CHECK UPON DETECTING AN ERROR LOADS THE SELF-CHECK ALARM CONSTANT (01102) INTO THE FAILREG SET AND 058903,000085: # TURNS ON THE ALARM LIGHT. THE OPERATOR MAY THEN DISPLAY THE THREE FAILREGS BY KEYING IN V 05 N 09 E. FOR FURTHER 058904,000086: # 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, 058905,000087: # IN R2 THE BBCON OF SELF-CHECK, AND IN R3 THE TOTAL NUMBER OF ERRORS DETECTED BY SELF-CHECK SINCE THE LAST MAN 058906,000088: # INITIATED FRESH START (SLAP1). 058907,000089: 058908,000090: # SHOW-BANKSUM STARTING WTIH BANK 0 DISPLAYS IN R1 THE BANK SUM (A +-NUMBER EQUAL TO THE BANK NUMBER), IN R2 058909,000091: # THE BANK NUMBER, AND IN R3 THE BUGGER WORD. 058910,000092: 058911,000093: # ERASABLE INITIALIZATION REQUIRED 058912,000094: # ACCOMPLISHED BY FRESH START 058913,000095: # SMODE SET TO +0 058914,000096: 058915,000097: # DEBRIS 058916,000098: # ALL EXITS FROM THE CHECK OF ERASABLE (ERASCHK) RESTORE ORIGINAL CONTENTS TO REGISTERS UNDER CHECK. 058917,000099: # EXCEPTION IS A RESTART. RESTART THAT OCCURS DURING ERASCHK RESTORES ERASABLE, UNLESS THERE IS EVIDENCE TO DOUBT 058918,000100: # E MEMORY, IN WHICH CASE PROGRAM THEN DOES A FRESH START (DOFSTART). 058919,000101: 058920,000102: 25,3766 BANK 25 058921,000103: 43,2000 SETLOC SELFCHEC 058922,000104: 43,2000 BANK 058923,000105: 058924,000106: 43,3230 COUNT 43/SELF 058925,000107: 058926,000108: 43,3230 4712 SBIT1 EQUALS BIT1 058927,000109: 43,3230 4711 SBIT2 EQUALS BIT2 058928,000110: 43,3230 4710 SBIT3 EQUALS BIT3 058929,000111: 43,3230 4707 SBIT4 EQUALS BIT4 058930,000112: 43,3230 4706 SBIT5 EQUALS BIT5 058931,000113: 43,3230 4705 SBIT6 EQUALS BIT6 058932,000114: 43,3230 4704 SBIT7 EQUALS BIT7 058933,000115: 43,3230 4703 SBIT8 EQUALS BIT8 058934,000116: 43,3230 4702 SBIT9 EQUALS BIT9 058935,000117: 43,3230 4701 SBIT10 EQUALS BIT10 058936,000118: 43,3230 4700 SBIT11 EQUALS BIT11 058937,000119: 43,3230 4677 SBIT12 EQUALS BIT12 058938,000120: 43,3230 4676 SBIT13 EQUALS BIT13 058939,000121: 43,3230 4675 SBIT14 EQUALS BIT14 058940,000122: 43,3230 4674 SBIT15 EQUALS BIT15 058941,000123: 058942,000124: 43,3230 4714 S+ZERO EQUALS ZERO 058943,000125: 43,3230 4712 S+1 EQUALS BIT1 058944,000126: 43,3230 4711 S+2 EQUALS BIT2 058945,000127: 43,3230 6214 S+3 EQUALS THREE 058946,000128: 43,3230 4710 S+4 EQUALS FOUR 058947,000129: 43,3230 4715 S+5 EQUALS FIVE 058948,000130: # Page 1386 058949,000131: 43,3230 6211 S+6 EQUALS SIX 058950,000132: 43,3230 4716 S+7 EQUALS SEVEN 058951,000133: 43,3230 4373 S8BITS EQUALS LOW8 # 00377 058952,000134: 43,3230 4726 CNTRCON = OCT50 # USED IN CNTRCHK 058953,000135: 43,3230 00061 ERASCON1 OCTAL 00061 # USED IN ERASCHK 058954,000136: 43,3231 01373 ERASCON2 OCTAL 01373 # USED IN ERASCHK 058955,000137: 43,3232 4744 ERASCON6 = OCT1400 # USED IN ERASCHK 058956,000138: 43,3232 01461 ERASCON3 OCTAL 01461 # USED IN ERASCHK 058957,000139: 43,3233 01773 ERASCON4 OCTAL 01773 # USED IN ERASCHK 058958,000140: 43,3234 4747 S10BITS EQUALS LOW10 # 01777, USED IN ERASCHK 058959,000141: 43,3234 4755 SBNK03 EQUALS PRIO6 # 06000, USED IN ROPECHK 058960,000142: 43,3234 4364 -MAXADRS = HI5 # FOR ROPECHK 058961,000143: 43,3234 00060 SIXTY OCTAL 00060 058962,000144: 43,3235 60017 SUPRCON OCTAL 60017 # USED IN ROPECHK 058963,000145: 43,3236 17777 S13BITS OCTAL 17777 058964,000146: 43,3237 25252 CONC+S1 OCTAL 25252 # USED IN CYCLSHFT 058965,000147: 43,3240 52400 CONC+S2 OCTAL 52400 # USED IN CYCLSHFT 058966,000148: 43,3241 76777 ERASCON5 OCTAL 76777 058967,000149: 43,3242 5630 S-7 = OCT77770 058968,000150: 43,3242 6061 S-4 EQUALS NEG4 058969,000151: 43,3242 7714 S-3 EQUALS NEG3 058970,000152: 43,3242 7715 S-2 EQUALS NEG2 058971,000153: 43,3242 7716 S-1 EQUALS NEGONE 058972,000154: 43,3242 4713 S-ZERO EQUALS NEG0 058973,000155: 058974,000156: 43,3242 E3,1400 EBANK= LST1 058975,000157: 43,3242 01371 ADRS1 ADRES SKEEP1 058976,000158: 43,3243 03334 SELFADRS ADRES SELFCHK # SELFCHK RETURN ADDRESS. SHOULD BE PUT 058977,000159: # IN SELFRET WHEN GOING FROM SELFCHK TO 058978,000160: # SHOWSUM AND PUT IN SKEEP1 WHEN GOING 058979,000161: # FROM SHOWSUM TO SELF-CHECK. 058980,000162: 058981,000163: 43,3244 31360 PRERRORS CA ERESTORE # IS IT NECESSARY TO RESTORE ERASABLE 058982,000164: 43,3245 00006 EXTEND 058983,000165: 43,3246 13255 BZF ERRORS # NO 058984,000166: 43,3247 00006 EXTEND 058985,000167: 43,3250 31376 DCA SKEEP5 058986,000168: 43,3251 51377 INDEX SKEEP7 058987,000169: 43,3252 52001 DXCH 0000 # RESTORE THE TWO ERASABLE REGISTERS 058988,000170: 43,3253 34714 CA S+ZERO 058989,000171: 43,3254 55360 TS ERESTORE 058990,000172: 43,3255 00004 ERRORS INHINT 058991,000173: 43,3256 30002 CA Q 058992,000174: 43,3257 55357 TS SFAIL # SAVE Q FOR FAILURE LOCATION 058993,000175: 43,3260 55363 TS ALMCADR # FOR DISPLAY WITH BBANK AND ERCOUNT 058994,000176: 43,3261 25365 INCR ERCOUNT # KEEP TRACK OF NUMBER OF MALFUNCTIONS. 058995,000177: 43,3262 05541 TCALARM2 TC ALARM2 058996,000178: 43,3263 01102 OCT 01102 # SELF-CHECK MALFUNCTION INDICATOR 058997,000179: 43,3264 11362 CCS SMODE 058998,000180: 43,3265 34714 SIDLOOP CA S+ZERO 058999,000181: # Page 1387 059000,000182: 43,3266 55362 TS SMODE 059001,000183: 43,3267 03334 TC SELFCHK # GO TO IDLE LOOP 059002,000184: 43,3270 01357 TC SFAIL # CONTINUE WITH SELF-CHECK 059003,000185: 059004,000186: 43,3271 10000 -1CHK CCS A 059005,000187: 43,3272 13244 TCF PRERRORS 059006,000188: 43,3273 13244 TCF PRERRORS 059007,000189: 43,3274 10000 CCS A 059008,000190: 43,3275 13244 TCF PRERRORS 059009,000191: 43,3276 00002 TC Q 059010,000192: 059011,000193: 43,3277 00006 SMODECHK EXTEND 059012,000194: 43,3300 23371 QXCH SKEEP1 059013,000195: 43,3301 03330 TC CHECKNJ # CHECK FOR NEW JOB 059014,000196: 43,3302 11362 CCS SMODE 059015,000197: 43,3303 03310 TC SOPTIONS 059016,000198: 43,3304 03301 TC SMODECHK +2 # TO BACKUP IDLE LOOP 059017,000199: 43,3305 03310 TC SOPTIONS 059018,000200: 43,3306 25366 INCR SCOUNT 059019,000201: 43,3307 01371 TC SKEEP1 # CONTINUE WITH SELF-CHECK 059020,000202: 059021,000203: 43,3310 65630 SOPTIONS AD S-7 059022,000204: 43,3311 00006 EXTEND 059023,000205: 43,3312 63314 BZMF +2 # FOR OPTIONS BELOW NINE. 059024,000206: 43,3313 03265 BNKOPTN TC SIDLOOP # ILLEGAL OPTION. GO TO IDLE LOOP. 059025,000207: 43,3314 25366 INCR SCOUNT # FOR OPTIONS BELOW NINE. 059026,000208: 43,3315 64716 AD S+7 059027,000209: 059028,000210: 43,3316 50000 INDEX A 059029,000211: 43,3317 03320 TC SOPTION1 059030,000212: 43,3320 01371 SOPTION1 TC SKEEP1 # WAS TC+TCF 059031,000213: 43,3321 01371 SOPTION2 TC SKEEP1 # WAS IN:OUT1 059032,000214: 43,3322 01371 SOPTION3 TC SKEEP1 059033,000215: 43,3323 03335 SOPTION4 TC ERASCHK 059034,000216: 43,3324 03516 SOPTION5 TC ROPECHK 059035,000217: 43,3325 01371 SOPTION6 TC SKEEP1 059036,000218: 43,3326 01371 SOPTION7 TC SKEEP1 059037,000219: 43,3327 01371 SOPTON10 TC SKEEP1 # CONTINUE WITH SELF-CHECK 059038,000220: 059039,000221: 43,3330 00006 CHECKNJ EXTEND 059040,000222: 43,3331 23361 QXCH SELFRET # SAVE RETURN ADDRESS WHILE TESTING NEWJOB 059041,000223: 43,3332 04574 TC POSTJUMP # TO SEE IF ANY JOBS HAVE BECOME ACTIVE. 059042,000224: 43,3333 03231 CADR ADVAN 059043,000225: 059044,000226: 43,3334 03277 SELFCHK TC SMODECHK # ** CHARLEY, COME IN HERE 059045,000227: 059046,000228: # SKEEP7 HOLDS LOWEST OF TWO ADDRESSES BEING CHECKED. 059047,000229: # SKEEP6 HOLDS B(X+1). 059048,000230: # SKEEP5 HOLDS B(X). 059049,000231: # SKEEP4 HOLDS C(EBANK) DURING ERASLOOP AND CHECKNJ 059050,000232: # Page 1388 059051,000233: # SKEEP3 HOLDS LAST ADDRESS BEING CHECKED (HIGHEST ADDRESS). 059052,000234: # SKEEP2 CONTROLS CHECKING OF NON-SWITCHABLE ERASABLE MEMORY WITH BANK NUMBERS IN EB. 059053,000235: 059054,000236: # ERASCHK TAKES APPROXIMATELY 7 SECONDS. 059055,000237: 059056,000238: 43,3335 34712 ERASCHK CA S+1 059057,000239: 43,3336 55372 TS SKEEP2 059058,000240: 43,3337 34714 0EBANK CA S+ZERO 059059,000241: 43,3340 54003 TS EBANK 059060,000242: 43,3341 33232 CA ERASCON3 # 01461 059061,000243: 43,3342 55377 TS SKEEP7 # STARTING ADDRESS 059062,000244: 43,3343 34747 CA S10BITS # 01777 059063,000245: 43,3344 55373 TS SKEEP3 # LAST ADDRESS CHECKED 059064,000246: 43,3345 03365 TC ERASLOOP 059065,000247: 059066,000248: 43,3346 34744 E134567B CA ERASCON6 # 01400 059067,000249: 43,3347 55377 TS SKEEP7 # STARTING ADDRESS 059068,000250: 43,3350 34747 CA S10BITS # 01777 059069,000251: 43,3351 55373 TS SKEEP3 # LAST ADDRESS CHECKED 059070,000252: 43,3352 03365 TC ERASLOOP 059071,000253: 059072,000254: 43,3353 34744 2EBANK CA ERASCON6 # 01400 059073,000255: 43,3354 55377 TS SKEEP7 # STARTING ADDRESS 059074,000256: 43,3355 33233 CA ERASCON4 # 01773 059075,000257: 43,3356 55373 TS SKEEP3 # LAST ADDRESS CHECKED 059076,000258: 43,3357 03365 TC ERASLOOP 059077,000259: 059078,000260: 43,3360 55372 NOEBANK TS SKEEP2 # +0 059079,000261: 43,3361 33230 CA ERASCON1 # 00061 059080,000262: 43,3362 55377 TS SKEEP7 # STARTING ADDRESS 059081,000263: 43,3363 33231 CA ERASCON2 # 01373 059082,000264: 43,3364 55373 TS SKEEP3 # LAST ADDRESS CHECKED 059083,000265: 059084,000266: 43,3365 00004 ERASLOOP INHINT 059085,000267: 43,3366 30003 CA EBANK # STORES C(EBANK) 059086,000268: 43,3367 55374 TS SKEEP4 059087,000269: 43,3370 00006 EXTEND 059088,000270: 43,3371 51377 NDX SKEEP7 059089,000271: 43,3372 30001 DCA 0000 059090,000272: 43,3373 53376 DXCH SKEEP5 # STORES C(X) AND C(X+1) IN SKEEP6 AND 5. 059091,000273: 43,3374 31377 CA SKEEP7 059092,000274: 43,3375 55360 TS ERESTORE # IF RESTART, RESTORE C(X) AND C(X+1) 059093,000275: 43,3376 54001 TS L 059094,000276: 43,3377 24001 INCR L 059095,000277: 43,3400 50000 NDX A 059096,000278: 43,3401 52001 DXCH 0000 # PUTS OWN ADDRESS IN X AND X +1 059097,000279: 43,3402 51377 NDX SKEEP7 059098,000280: 43,3403 40001 CS 0001 # CS X+1 059099,000281: 43,3404 51377 NDX SKEEP7 059100,000282: 43,3405 60000 AD 0000 # AD X 059101,000283: 43,3406 03271 TC -1CHK 059102,000284: 43,3407 31360 CA ERESTORE # HAS ERASABLE BEEN RESTORED 059103,000285: # Page 1389 059104,000286: 43,3410 00006 EXTEND 059105,000287: 43,3411 13435 BZF ELOOPFIN # YES, EXIT ERASLOOP. 059106,000288: 43,3412 00006 EXTEND 059107,000289: 43,3413 51377 NDX SKEEP7 059108,000290: 43,3414 40001 DCS 0000 # COMPLEMENT OF ADDRESS OF X AND X+1 059109,000291: 43,3415 51377 NDX SKEEP7 059110,000292: 43,3416 52001 DXCH 0000 # PUT COMPLEMENT OF ADDRESS OF X AND X+1 059111,000293: 43,3417 51377 NDX SKEEP7 059112,000294: 43,3420 40000 CS 0000 # CS X 059113,000295: 43,3421 51377 NDX SKEEP7 059114,000296: 43,3422 60001 AD 0001 # AD X+1 059115,000297: 43,3423 03271 TC -1CHK 059116,000298: 43,3424 31360 CA ERESTORE # HAS ERASABLE BEEN RESTORED 059117,000299: 43,3425 00006 EXTEND 059118,000300: 43,3426 13435 BZF ELOOPFIN # YES, EXIT ERASLOOP. 059119,000301: 43,3427 00006 EXTEND 059120,000302: 43,3430 31376 DCA SKEEP5 059121,000303: 43,3431 51377 NDX SKEEP7 059122,000304: 43,3432 52001 DXCH 0000 # PUT B(X) AND B(X+1) BACK INTO X AND X+1 059123,000305: 43,3433 34714 CA S+ZERO 059124,000306: 43,3434 55360 TS ERESTORE # IF RESTART, DO NOT RESTORE C(X), C(X+1) 059125,000307: 43,3435 00003 ELOOPFIN RELINT 059126,000308: 43,3436 03330 TC CHECKNJ # CHECK FOR NEW JOB 059127,000309: 43,3437 31374 CA SKEEP4 # REPLACES B(EBANK) 059128,000310: 43,3440 54003 TS EBANK 059129,000311: 43,3441 25377 INCR SKEEP7 059130,000312: 43,3442 41377 CS SKEEP7 059131,000313: 43,3443 61373 AD SKEEP3 059132,000314: 43,3444 00006 EXTEND 059133,000315: 43,3445 13447 BZF +2 059134,000316: 43,3446 03365 TC ERASLOOP # GO TO NEXT ADDRESS IN SAME BANK 059135,000317: 43,3447 11372 CCS SKEEP2 059136,000318: 43,3450 03360 TC NOEBANK 059137,000319: 43,3451 25372 INCR SKEEP2 # PUT +1 IN SKEEP2. 059138,000320: 43,3452 30003 CA EBANK 059139,000321: 43,3453 64702 AD SBIT9 059140,000322: 43,3454 54003 TS EBANK 059141,000323: 43,3455 63241 AD ERASCON5 # 76777, CHECK FOR BANK E2 059142,000324: 43,3456 00006 EXTEND 059143,000325: 43,3457 13353 BZF 2EBANK 059144,000326: 43,3460 10003 CCS EBANK 059145,000327: 43,3461 03346 TC E134567B # GO TO EBANKS 1,3,4,5,6, AND 7 059146,000328: 43,3462 34744 CA ERASCON6 # END OF ERASCHK 059147,000329: 43,3463 54003 TS EBANK 059148,000330: 059149,000331: # CNTRCHK PERFORMS A CS OF ALL REGISTERS FROM OCT. 60 THROUGH OCT. 10. 059150,000332: # INCLUDED ARE ALL COUNTERS, T6-1, CYCLE AND SHIFT, AND ALL RUPT REGISTERS 059151,000333: 059152,000334: 43,3464 34726 CNTRCHK CA CNTRCON # 00050 059153,000335: 43,3465 55372 CNTRLOOP TS SKEEP2 059154,000336: 43,3466 64707 AD SBIT4 # +10 OCTAL 059155,000337: 43,3467 50000 INDEX A 059156,000338: # Page 1390 059157,000339: 43,3470 40000 CS 0000 059158,000340: 43,3471 11372 CCS SKEEP2 059159,000341: 43,3472 03465 TC CNTRLOOP 059160,000342: 059161,000343: # CYCLSHFT CHECKS THE CYCLE AND SHIFT REGISTERS 059162,000344: 059163,000345: 43,3473 33237 CYCLSHFT CA CONC+S1 # 25252 059164,000346: 43,3474 54020 TS CYR # C(CYR) = 12525 059165,000347: 43,3475 54022 TS CYL # C(CYL) = 52524 059166,000348: 43,3476 54021 TS SR # C(SR) = 12525 059167,000349: 43,3477 54023 TS EDOP # C(EDOP) = 00125 059168,000350: 43,3500 60020 AD CYR # 37777 C(CYR) = 45252 059169,000351: 43,3501 60022 AD CYL # 00-12524 C(CYL) = 25251 059170,000352: 43,3502 60021 AD SR # 00-25251 C(SR) = 05252 059171,000353: 43,3503 60023 AD EDOP # 00-25376 C(EDOP) = +0 059172,000354: 43,3504 63240 AD CONC+S2 # C(CONC+S2) = 52400 059173,000355: 43,3505 03271 TC -1CHK 059174,000356: 43,3506 60020 AD CYR # 45252 059175,000357: 43,3507 60022 AD CYL # 72523 059176,000358: 43,3510 60021 AD SR # 77775 059177,000359: 43,3511 60023 AD EDOP # 77775 059178,000360: 43,3512 64712 AD S+1 # 77776 059179,000361: 43,3513 03271 TC -1CHK 059180,000362: 059181,000363: 43,3514 25367 INCR SCOUNT +1 059182,000364: 43,3515 03277 TC SMODECHK 059183,000365: 059184,000366: # SKEEP1 HOLDS SUM 059185,000367: # SKEEP2 HOLDS PRESENT CONTENTS OF ADDRESS IN ROPECHK AND SHOWSUM ROUTINES 059186,000368: # SKEEP2 HOLDS BANK NUMBER IN LOW ORDER BITS DURING SHOWSUM DISPLAY 059187,000369: # SKEEP3 HOLDS PRESENT ADDRESS (00000 TO 01777 IN COMMON FIXED BANKS) 059188,000370: # (04000 TO 07777 IN FXFX BANKS) 059189,000371: # SKEEP3 HOLDS BUGGER WORD DURING SHOWSUM DISPLAY 059190,000372: # SKEEP4 HOLDS BANK NUMBER AND SUPER BANK NUMBER 059191,000373: # SKEEP5 COUNTS 2 SUCCESSIVE TC SELF WORDS 059192,000374: # SKEEP6 CONTROLS ROPECHK OR SHOWSUM OPTION 059193,000375: # SKEEP7 CONTROLS WHEN ROUTINE IS IN COMMON FIXED OR FIXED FIXED BANKS 059194,000376: 059195,000377: 43,3516 34713 ROPECHK CA S-ZERO # * 059196,000378: 43,3517 55376 TS SKEEP6 # * -0 FOR ROPECHK 059197,000379: 43,3520 34714 STSHOSUM CA S+ZERO # * SHOULD BE ROPECHK 059198,000380: 059199,000381: 43,3521 55374 TS SKEEP4 # BANK NUMBER 059200,000382: 43,3522 34712 CA S+1 059201,000383: 43,3523 55377 COMMFX TS SKEEP7 059202,000384: 43,3524 34714 CA S+ZERO 059203,000385: 43,3525 55371 TS SKEEP1 059204,000386: 43,3526 55373 TS SKEEP3 059205,000387: 43,3527 34712 CA S+1 059206,000388: 43,3530 55375 TS SKEEP5 # COUNTS DOWN 2 TC SELF WORDS 059207,000389: 43,3531 31374 COMADRS CA SKEEP4 059208,000390: 43,3532 54001 TS L # TO SET SUPER BANK 059209,000391: # Page 1391 059210,000392: 43,3533 74364 MASK HI5 059211,000393: 43,3534 61373 AD SKEEP3 059212,000394: 43,3535 04610 TC SUPDACAL # SUPER DATA CALL 059213,000395: 43,3536 03561 TC ADSUM 059214,000396: 43,3537 64700 AD SBIT11 # 02000 059215,000397: 43,3540 03572 TC ADRSCHK 059216,000398: 059217,000399: 43,3541 40000 FXFX CS A 059218,000400: 43,3542 55377 TS SKEEP7 059219,000401: 43,3543 00006 EXTEND 059220,000402: 43,3544 13547 BZF +3 059221,000403: 43,3545 34677 CA SBIT12 # 04000, STARTING ADDRESS OF BANK 02 059222,000404: 43,3546 03550 TC +2 059223,000405: 43,3547 34755 CA SBNK03 # 06000, STARTING ADDRESS OF BANK 03 059224,000406: 43,3550 55373 TS SKEEP3 059225,000407: 43,3551 34714 CA S+ZERO 059226,000408: 43,3552 55371 TS SKEEP1 059227,000409: 43,3553 34712 CA S+1 059228,000410: 43,3554 55375 TS SKEEP5 # COUNTS DOWN 2 TC SELF WORDS 059229,000411: 43,3555 51373 FXADRS INDEX SKEEP3 059230,000412: 43,3556 30000 CA 0000 059231,000413: 43,3557 03561 TC ADSUM 059232,000414: 43,3560 03572 TC ADRSCHK 059233,000415: 059234,000416: 43,3561 55372 ADSUM TS SKEEP2 059235,000417: 43,3562 61371 AD SKEEP1 059236,000418: 43,3563 55371 TS SKEEP1 059237,000419: 43,3564 34714 CAF S+ZERO 059238,000420: 43,3565 61371 AD SKEEP1 059239,000421: 43,3566 55371 TS SKEEP1 059240,000422: 43,3567 41372 CS SKEEP2 059241,000423: 43,3570 61373 AD SKEEP3 059242,000424: 43,3571 00002 TC Q 059243,000425: 059244,000426: 43,3572 22000 ADRSCHK LXCH A 059245,000427: 43,3573 31373 CA SKEEP3 059246,000428: 43,3574 74747 MASK LOW10 # RELATIVE ADDRESS 059247,000429: 43,3575 64364 AD -MAXADRS # SUBTRACT MAX RELATIVE ADDRESS = 1777. 059248,000430: 43,3576 00006 EXTEND 059249,000431: 43,3577 13666 BZF SOPTION # CHECKSUM FINISHED IF LAST ADDRESS. 059250,000432: 43,3600 11375 CCS SKEEP5 # IS CHECKSUM FINISHED 059251,000433: 43,3601 03604 TC +3 # NO 059252,000434: 43,3602 03604 TC +2 # NO 059253,000435: 43,3603 03666 TC SOPTION # GO TO ROPECHK SHOWSUM OPTION 059254,000436: 43,3604 10001 CCS L # -0 MEANS A TC SELF WORD. 059255,000437: 43,3605 03614 TC CONTINU 059256,000438: 43,3606 03614 TC CONTINU 059257,000439: 43,3607 03614 TC CONTINU 059258,000440: 43,3610 11375 CCS SKEEP5 059259,000441: 43,3611 03615 TC CONTINU +1 059260,000442: # Page 1392 059261,000443: 43,3612 37716 CA S-1 059262,000444: 43,3613 03615 TC CONTINU +1 # AD IN THE BUGGER WORD 059263,000445: 43,3614 34712 CONTINU CA S+1 # MAKE SURE TWO CONSECUTIVE TC SELF WORDS 059264,000446: 43,3615 55375 TS SKEEP5 059265,000447: 43,3616 11376 CCS SKEEP6 # * 059266,000448: 43,3617 10067 CCS NEWJOB # * +1, SHOWSUM 059267,000449: 43,3620 05057 TC CHANG1 # * 059268,000450: 43,3621 03623 TC +2 # * 059269,000451: 43,3622 03330 TC CHECKNJ # -0 IN SKEEP6 FOR ROPECHK 059270,000452: 059271,000453: 43,3623 25373 ADRS+1 INCR SKEEP3 059272,000454: 43,3624 11377 CCS SKEEP7 059273,000455: 43,3625 03531 TC COMADRS 059274,000456: 43,3626 03531 TC COMADRS 059275,000457: 43,3627 03555 TC FXADRS 059276,000458: 43,3630 03555 TC FXADRS 059277,000459: 059278,000460: 43,3631 41374 NXTBNK CS SKEEP4 059279,000461: 43,3632 63721 AD LSTBNKCH # LAST BANK TO BE CHECKED 059280,000462: 43,3633 00006 EXTEND 059281,000463: 43,3634 13000 BZF ENDSUMS # END OF SUMMING OF BANKS. 059282,000464: 43,3635 31374 CA SKEEP4 059283,000465: 43,3636 64700 AD SBIT11 059284,000466: 43,3637 55374 TS SKEEP4 # 37 TO 40 INCRMTS SKEEP4 BY END RND CARRY 059285,000467: 43,3640 03644 TC CHKSUPR 059286,000468: 43,3641 34674 17TO20 CA SBIT15 059287,000469: 43,3642 27374 ADS SKEEP4 # SET FOR BANK 20 059288,000470: 43,3643 03660 TC GONXTBNK 059289,000471: 43,3644 74364 CHKSUPR MASK HI5 059290,000472: 43,3645 00006 EXTEND 059291,000473: 43,3646 13656 BZF NXTSUPR # INCREMENT SUPER BANK 059292,000474: 43,3647 63236 27TO30 AD S13BITS 059293,000475: 43,3650 00006 EXTEND 059294,000476: 43,3651 13653 BZF +2 # BANK SET FOR 30 059295,000477: 43,3652 03660 TC GONXTBNK 059296,000478: 43,3653 33234 CA SIXTY # FIRST SUPER BANK 059297,000479: 43,3654 27374 ADS SKEEP4 059298,000480: 43,3655 03660 TC GONXTBNK 059299,000481: 43,3656 63235 NXTSUPR AD SUPRCON # SET BNK 30 + INCR SUPR BNK AND CANCEL 059300,000482: 43,3657 27374 ADS SKEEP4 # ERC BIT OF TEH 37 TO 40 ADVANCE. 059301,000483: 43,3660 11377 GONXTBNK CCS SKEEP7 059302,000484: 43,3661 03523 TC COMMFX 059303,000485: 43,3662 34712 CA S+1 059304,000486: 43,3663 03541 TC FXFX 059305,000487: 43,3664 34704 CA SBIT7 # HAS TO BE LARGER THAN NO OF FXSW BANKS. 059306,000488: 43,3665 03523 TC COMMFX 059307,000489: 059308,000490: 43,3666 31374 SOPTION CA SKEEP4 059309,000491: 43,3667 74364 MASK HI5 # = BANK BITS 059310,000492: 43,3670 04345 TC LEFT5 059311,000493: # Page 1393 059312,000494: 43,3671 54001 TS L # BANK NUMBER BEFORE SUPER BANK 059313,000495: 43,3672 31374 CA SKEEP4 059314,000496: 43,3673 74373 MASK S8BITS # = SUPER BANK BITS 059315,000497: 43,3674 00006 EXTEND 059316,000498: 43,3675 13703 BZF SOPT # BEFORE SUPER BANK 059317,000499: 43,3676 54021 TS SR # SUPER BANK NECESSARY 059318,000500: 43,3677 30001 CA L 059319,000501: 43,3700 74716 MASK SEVEN 059320,000502: 43,3701 60021 AD SR 059321,000503: 43,3702 54001 TS L # BANK NUMBER WITH SUPER BANK 059322,000504: 43,3703 31376 SOPT CA SKEEP6 # * 059323,000505: 43,3704 00006 EXTEND # * 059324,000506: 43,3705 13707 BZF +2 # * ON -0 CONTINUE WITH ROPE CHECK. 059325,000507: 43,3706 02762 TC SDISPLAY # * ON +1 GO TO DISPLAY OF SUM. 059326,000508: 43,3707 11371 CCS SKEEP1 # FORCE SUM TO ABSOLUTE VALUE. 059327,000509: 43,3710 03712 TC +2 059328,000510: 43,3711 03713 TC +2 059329,000511: 43,3712 64712 AD S+1 059330,000512: 43,3713 55371 TS SKEEP1 059331,000513: 43,3714 40001 BNKCHK CS L # = - BANK NUMBER 059332,000514: 43,3715 61371 AD SKEEP1 059333,000515: 43,3716 67716 AD S-1 059334,000516: 43,3717 03271 TC -1CHK # CHECK SUM 059335,000517: 43,3720 03631 TC NXTBNK 059336,000518: 059337,000519: 43,3721 0067 EBANK= NEWJOB 059338,000520: 43,3721 66100 LSTBNKCH BBCON* # * CONSTANT, LAST BANK. 059339,000521: 059340,000522: 059341,000523: End of include-file AGC_BLOCK_TWO_SELF-CHECK.agc. Parent file is MAIN.agc