Source Code

060210,000001: # Copyright: Public domain. 060211,000002: # Filename: AGC_BLOCK_TWO_SELF-CHECK.agc 060212,000003: # Purpose: Part of the source code for Colossus 2A, AKA Comanche 055. 060213,000004: # It is part of the source code for the Command Module's (CM) 060214,000005: # Apollo Guidance Computer (AGC), for Apollo 11. 060215,000006: # Assembler: yaYUL 060216,000007: # Contact: Ron Burkey <info@sandroid.org>. 060217,000008: # Website: www.ibiblio.org/apollo. 060218,000009: # Pages: 1394-1403 060219,000010: # Mod history: 2009-05-10 SN (Sergio Navarro). Started adapting 060220,000011: # from the Colossus249/ file of the same 060221,000012: # name, using Comanche055 page images. 060222,000013: 060223,000014: # This source code has been transcribed or otherwise adapted from digitized 060224,000015: # images of a hardcopy from the MIT Museum. The digitization was performed 060225,000016: # by Paul Fjeld, and arranged for by Deborah Douglas of the Museum. Many 060226,000017: # thanks to both. The images (with suitable reduction in storage size and 060227,000018: # consequent reduction in image quality as well) are available online at 060228,000019: # www.ibiblio.org/apollo. If for some reason you find that the images are 060229,000020: # illegible, contact me at info@sandroid.org about getting access to the 060230,000021: # (much) higher-quality images which Paul actually created. 060231,000022: 060232,000023: # Notations on the hardcopy document read, in part: 060233,000024: 060234,000025: # Assemble revision 055 of AGC program Comanche by NASA 060235,000026: # 2021113-051. 10:28 APR. 1, 1969 060236,000027: 060237,000028: # This AGC program shall also be referred to as 060238,000029: # Colossus 2A 060239,000030: 060240,000031: # Page 1394 060241,000032: # PROGRAM DESCRIPTION DATE: 20 DECEMBER 1967 060242,000033: # PROGRAM NAME -- SELF-CHECK LOG SECTION: AGC BLOCK TWO SELF-CHECK 060243,000034: # MOD NO -- 1 ASSEMBLY SUBROUTINE UTILITYM REV 25 060244,000035: # MOD BY -- GAUNTT 060245,000036: 060246,000037: # FUNCTIONAL DESCRIPTION 060247,000038: # PROGRAM HAS TWO MAIN PARTS. THE FIRST IS SELF-CHECK WHICH RUNS AS A ZERO PRIORITY JOB WITH NO CORE SET, AS 060248,000039: # PART OF THE BACK-UP IDLE LOOP. THE SECOND IS SHOW-BANKSUM WHICH RUNS AS A REGULAR EXECUTIVE JOB WITH ITS OWN 060249,000040: # STARTING VERB. 060250,000041: 060251,000042: # THE PURPOSE OF SELF-CHECK IS TO CHECK OUT VARIOUS PARTS OF THE COMPUTER AS OUTLINED BELOW IN THE OPTIONS. 060252,000043: 060253,000044: # THE PURPOSE OF SHOW-BANKSUM IS TO DISPLAY THE SUM OF EACH BANK, ONE AT A TIME. 060254,000045: 060255,000046: # IN ALL THERE ARE 7 POSSIBLE OPTIONS IN THIS BLOCK II VERSION OF SELF-CHECK. MORE DETAIL DESCRIPTION MAY BE 060256,000047: # FOUND IN E-2065 BLOCK II AGC SELF-CHECK AND SHOW BANKSUM BY EDWIN D. SMALLY DECEMBER 1966, AND ADDENDA 2 AND 3. 060257,000048: 060258,000049: # THE DIFFERENT OPTIONS ARE CONTROLLED BY PUTTING DIFFERENT NUMBERS IN THE SMODE REGISTER (NOUN 27). BELOW IS 060259,000050: # A DESCRIPTION OF WHAT PARTS OF THE COMPUTER THAT ARE CHECKED BY THE OPTIONS, AND THE CORRESPONDING NUMBER, IN 060260,000051: # OCTAL, TO LOAD INTO SMODE. 060261,000052: # +-4 ERASABLE MEMORY 060262,000053: # +-5 FIXED MEMORY 060263,000054: # +-1,2,3,6,7,10 EVERYTHING IN OPTIONS 4 AND 5. 060264,000055: # -0 SAME AS +-10 UNTIL AN ERROR IS DETECTED. 060265,000056: # +0 NO CHECK, PUTS COMPUTER INTO THE BACKUP IDLE LOOP. 060266,000057: 060267,000058: # WARNINGS 060268,000059: # USE OF E MEMORY RESERVED FOR SELF-CHECK (EVEN IN IDLE LOOP) AS TEMP STORAGE BY OTHER PROGRAMS IS DANGEROUS. 060269,000060: # SMODE SET GREATER THAN OCT 10 PUTS COMPUTER INTO BACKUP IDLE LOOP. 060270,000061: 060271,000062: # CALLING SEQUENCE 060272,000063: # TO CALL SELF-CHECK KEY IN 060273,000064: # V 21 N 27 E OPTION NUMBER E 060274,000065: # TO CALL SHOW-BANKSUM KEY IN 060275,000066: # V 91 E DISPLAYS FIRST BANK 060276,000067: # V 33 E PROCEED, DISPLAYS NEXT BANK 060277,000068: 060278,000069: # EXIT MODES, NORMAL AND ALARM 060279,000070: # SELF-CHECK NORMALLY CONTINUES INDEFINITELY UNLESS THERE IS AN ERROR DETECTED. IF SO + OPTION NUMBERS PUT 060280,000071: # COMPUTER INTO BACKUP IDLE LOOP, - OPTION NUMBERS RESTART THE OPTION. 060281,000072: 060282,000073: # THE -0 OPTION PROCEEDS FROM THE LINE FOLLOWING THE LINE WHERE THE ERROR WAS DETECTED. 060283,000074: 060284,000075: # SHOW-BANKSUM PROCEEDS UNTIL A TERMINATE IS KEYED IN (V 34 E). THE COMPUTER IS PUT INTO THE BACKUP IDLE LOOP. 060285,000076: 060286,000077: # OUTPUT 060287,000078: # Page 1395 060288,000079: # SELF-CHECK UPON DETECTING AN ERROR LOADS THE SELF-CHECK ALARM CONSTANT (01102) INTO THE FAILREG SET AND 060289,000080: # TURNS ON THE ALARM LIGHT. THE OPERATOR MAY THEN DISPLAY THE THREE FAILREGS BY KEYING IN V 05 N 09 E. FOR FURTHER 060290,000081: # 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, 060291,000082: # IN R2 THE BBCON OF SELF-CHECK, AND IN R3 THE TOTAL NUMBER OF ERRORS DETECTED BY SELF-CHECK SINCE THE LAST MAN 060292,000083: # INITIATED FRESH START (SLAP1). 060293,000084: 060294,000085: # SHOW-BANKSUM STARTING WTIH BANK 0 DISPLAYS IN R1 THE BANK SUM (A +-NUMBER EQUAL TO THE BANK NUMBER), IN R2 060295,000086: # THE BANK NUMBER, AND IN R3 THE BUGGER WORD. 060296,000087: 060297,000088: # ERASABLE INITIALIZATION REQUIRED 060298,000089: # ACCOMPLISHED BY FRESH START 060299,000090: # SMODE SET TO +0 060300,000091: 060301,000092: # DEBRIS 060302,000093: # ALL EXITS FROM THE CHECK OF ERASABLE (ERASCHK) RESTORE ORIGINAL CONTENTS TO REGISTERS UNDER CHECK. 060303,000094: # EXCEPTION IS A RESTART. RESTART THAT OCCURS DURING ERASCHK RESTORES ERASABLE, UNLESS THERE IS EVIDENCE TO DOUBT 060304,000095: # E MEMORY, IN WHICH CASE PROGRAM THEN DOES A FRESH START (DOFSTART). 060305,000096: 060306,000097: 25,3774 BANK 25 060307,000098: 43,2000 SETLOC SELFCHEC 060308,000099: 43,2000 BANK 060309,000100: 060310,000101: 43,3234 COUNT 43/SELF 060311,000102: 060312,000103: 43,3234 5017 SBIT1 EQUALS BIT1 060313,000104: 43,3234 5016 SBIT2 EQUALS BIT2 060314,000105: 43,3234 5015 SBIT3 EQUALS BIT3 060315,000106: 43,3234 5014 SBIT4 EQUALS BIT4 060316,000107: 43,3234 5013 SBIT5 EQUALS BIT5 060317,000108: 43,3234 5012 SBIT6 EQUALS BIT6 060318,000109: 43,3234 5011 SBIT7 EQUALS BIT7 060319,000110: 43,3234 5010 SBIT8 EQUALS BIT8 060320,000111: 43,3234 5007 SBIT9 EQUALS BIT9 060321,000112: 43,3234 5006 SBIT10 EQUALS BIT10 060322,000113: 43,3234 5005 SBIT11 EQUALS BIT11 060323,000114: 43,3234 5004 SBIT12 EQUALS BIT12 060324,000115: 43,3234 5003 SBIT13 EQUALS BIT13 060325,000116: 43,3234 5002 SBIT14 EQUALS BIT14 060326,000117: 43,3234 5001 SBIT15 EQUALS BIT15 060327,000118: 060328,000119: 43,3234 5021 S+ZERO EQUALS ZERO 060329,000120: 43,3234 5017 S+1 EQUALS BIT1 060330,000121: 43,3234 5016 S+2 EQUALS BIT2 060331,000122: 43,3234 6214 S+3 EQUALS THREE 060332,000123: 43,3234 5015 S+4 EQUALS FOUR 060333,000124: 43,3234 5022 S+5 EQUALS FIVE 060334,000125: # Page 1396 060335,000126: 43,3234 6211 S+6 EQUALS SIX 060336,000127: 43,3234 5023 S+7 EQUALS SEVEN 060337,000128: 43,3234 4373 S8BITS EQUALS LOW8 # 00377 060338,000129: 43,3234 5033 CNTRCON = OCT50 # USED IN CNTRCHK 060339,000130: 43,3234 00061 ERASCON1 OCTAL 00061 # USED IN ERASCHK 060340,000131: 43,3235 01373 ERASCON2 OCTAL 01373 # USED IN ERASCHK 060341,000132: 43,3236 5051 ERASCON6 = OCT1400 # USED IN ERASCHK 060342,000133: 43,3236 01461 ERASCON3 OCTAL 01461 # USED IN ERASCHK 060343,000134: 43,3237 01773 ERASCON4 OCTAL 01773 # USED IN ERASCHK 060344,000135: 43,3240 5054 S10BITS EQUALS LOW10 # 01777, USED IN ERASCHK 060345,000136: 43,3240 5062 SBNK03 EQUALS PRIO6 # 06000, USED IN ROPECHK 060346,000137: 43,3240 4364 -MAXADRS = HI5 # FOR ROPECHK 060347,000138: 43,3240 00060 SIXTY OCTAL 00060 060348,000139: 43,3241 60017 SUPRCON OCTAL 60017 # USED IN ROPECHK 060349,000140: 43,3242 17777 S13BITS OCTAL 17777 060350,000141: 43,3243 25252 CONC+S1 OCTAL 25252 # USED IN CYCLSHFT 060351,000142: 43,3244 52400 CONC+S2 OCTAL 52400 # USED IN CYCLSHFT 060352,000143: 43,3245 76777 ERASCON5 OCTAL 76777 060353,000144: 43,3246 5731 S-7 = OCT77770 060354,000145: 43,3246 6061 S-4 EQUALS NEG4 060355,000146: 43,3246 7714 S-3 EQUALS NEG3 060356,000147: 43,3246 7715 S-2 EQUALS NEG2 060357,000148: 43,3246 7716 S-1 EQUALS NEGONE 060358,000149: 43,3246 5020 S-ZERO EQUALS NEG0 060359,000150: 060360,000151: 43,3246 E3,1400 EBANK= LST1 060361,000152: 43,3246 01371 ADRS1 ADRES SKEEP1 060362,000153: 43,3247 03340 SELFADRS ADRES SELFCHK # SELFCHK RETURN ADDRESS. SHOULD BE PUT 060363,000154: # IN SELFRET WHEN GOING FROM SELFCHK TO 060364,000155: # SHOWSUM AND PUT IN SKEEP1 WHEN GOING 060365,000156: # FROM SHOWSUM TO SELF-CHECK. 060366,000157: 060367,000158: 43,3250 31360 PRERRORS CA ERESTORE # IS IT NECESSARY TO RESTORE ERASABLE 060368,000159: 43,3251 00006 EXTEND 060369,000160: 43,3252 13261 BZF ERRORS # NO 060370,000161: 43,3253 00006 EXTEND 060371,000162: 43,3254 31376 DCA SKEEP5 060372,000163: 43,3255 51377 INDEX SKEEP7 060373,000164: 43,3256 52001 DXCH 0000 # RESTORE THE TWO ERASABLE REGISTERS 060374,000165: 43,3257 35021 CA S+ZERO 060375,000166: 43,3260 55360 TS ERESTORE 060376,000167: 43,3261 00004 ERRORS INHINT 060377,000168: 43,3262 30002 CA Q 060378,000169: 43,3263 55357 TS SFAIL # SAVE Q FOR FAILURE LOCATION 060379,000170: 43,3264 55363 TS ALMCADR # FOR DISPLAY WITH BBANK AND ERCOUNT 060380,000171: 43,3265 25365 INCR ERCOUNT # KEEP TRACK OF NUMBER OF MALFUNCTIONS. 060381,000172: 43,3266 05652 TCALARM2 TC ALARM2 060382,000173: 43,3267 01102 OCT 01102 # SELF-CHECK MALFUNCTION INDICATOR 060383,000174: 43,3270 11362 CCS SMODE 060384,000175: 43,3271 35021 SIDLOOP CA S+ZERO 060385,000176: # Page 1397 060386,000177: 43,3272 55362 TS SMODE 060387,000178: 43,3273 03340 TC SELFCHK # GO TO IDLE LOOP 060388,000179: 43,3274 01357 TC SFAIL # CONTINUE WITH SELF-CHECK 060389,000180: 060390,000181: 43,3275 10000 -1CHK CCS A 060391,000182: 43,3276 13250 TCF PRERRORS 060392,000183: 43,3277 13250 TCF PRERRORS 060393,000184: 43,3300 10000 CCS A 060394,000185: 43,3301 13250 TCF PRERRORS 060395,000186: 43,3302 00002 TC Q 060396,000187: 060397,000188: 43,3303 00006 SMODECHK EXTEND 060398,000189: 43,3304 23371 QXCH SKEEP1 060399,000190: 43,3305 03334 TC CHECKNJ # CHECK FOR NEW JOB 060400,000191: 43,3306 11362 CCS SMODE 060401,000192: 43,3307 03314 TC SOPTIONS 060402,000193: 43,3310 03305 TC SMODECHK +2 # TO BACKUP IDLE LOOP 060403,000194: 43,3311 03314 TC SOPTIONS 060404,000195: 43,3312 25366 INCR SCOUNT 060405,000196: 43,3313 01371 TC SKEEP1 # CONTINUE WITH SELF-CHECK 060406,000197: 060407,000198: 43,3314 65731 SOPTIONS AD S-7 060408,000199: 43,3315 00006 EXTEND 060409,000200: 43,3316 63320 BZMF +2 # FOR OPTIONS BELOW NINE. 060410,000201: 43,3317 03271 BNKOPTN TC SIDLOOP # ILLEGAL OPTION. GO TO IDLE LOOP. 060411,000202: 43,3320 25366 INCR SCOUNT # FOR OPTIONS BELOW NINE. 060412,000203: 43,3321 65023 AD S+7 060413,000204: 060414,000205: 43,3322 50000 INDEX A 060415,000206: 43,3323 03324 TC SOPTION1 060416,000207: 43,3324 01371 SOPTION1 TC SKEEP1 # WAS TC+TCF 060417,000208: 43,3325 01371 SOPTION2 TC SKEEP1 # WAS IN:OUT1 060418,000209: 43,3326 01371 SOPTION3 TC SKEEP1 # WAS COUNTCHK 060419,000210: 43,3327 03341 SOPTION4 TC ERASCHK 060420,000211: 43,3330 03522 SOPTION5 TC ROPECHK 060421,000212: 43,3331 01371 SOPTION6 TC SKEEP1 060422,000213: 43,3332 01371 SOPTION7 TC SKEEP1 060423,000214: 43,3333 01371 SOPTON10 TC SKEEP1 # CONTINUE WITH SELF-CHECK 060424,000215: 060425,000216: 43,3334 00006 CHECKNJ EXTEND 060426,000217: 43,3335 23361 QXCH SELFRET # SAVE RETURN ADDRESS WHILE TESTING NEWJOB 060427,000218: 43,3336 04701 TC POSTJUMP # TO SEE IF ANY JOBS HAVE BECOME ACTIVE. 060428,000219: 43,3337 03231 CADR ADVAN 060429,000220: 060430,000221: 43,3340 03303 SELFCHK TC SMODECHK # ** CHARLEY, COME IN HERE 060431,000222: 060432,000223: # SKEEP7 HOLDS LOWEST OF TWO ADDRESSES BEING CHECKED. 060433,000224: # SKEEP6 HOLDS B(X+1). 060434,000225: # SKEEP5 HOLDS B(X). 060435,000226: # SKEEP4 HOLDS C(EBANK) DURING ERASLOOP AND CHECKNJ 060436,000227: # Page 1398 060437,000228: # SKEEP3 HOLDS LAST ADDRESS BEING CHECKED (HIGHEST ADDRESS). 060438,000229: # SKEEP2 CONTROLS CHECKING OF NON-SWITCHABLE ERASABLE MEMORY WITH BANK NUMBERS IN EB. 060439,000230: 060440,000231: # ERASCHK TAKES APPROXIMATELY 7 SECONDS. 060441,000232: 060442,000233: 43,3341 35017 ERASCHK CA S+1 060443,000234: 43,3342 55372 TS SKEEP2 060444,000235: 43,3343 35021 0EBANK CA S+ZERO 060445,000236: 43,3344 54003 TS EBANK 060446,000237: 43,3345 33236 CA ERASCON3 # 01461 060447,000238: 43,3346 55377 TS SKEEP7 # STARTING ADDRESS 060448,000239: 43,3347 35054 CA S10BITS # 01777 060449,000240: 43,3350 55373 TS SKEEP3 # LAST ADDRESS CHECKED 060450,000241: 43,3351 03371 TC ERASLOOP 060451,000242: 060452,000243: 43,3352 35051 E134567B CA ERASCON6 # 01400 060453,000244: 43,3353 55377 TS SKEEP7 # STARTING ADDRESS 060454,000245: 43,3354 35054 CA S10BITS # 01777 060455,000246: 43,3355 55373 TS SKEEP3 # LAST ADDRESS CHECKED 060456,000247: 43,3356 03371 TC ERASLOOP 060457,000248: 060458,000249: 43,3357 35051 2EBANK CA ERASCON6 # 01400 060459,000250: 43,3360 55377 TS SKEEP7 # STARTING ADDRESS 060460,000251: 43,3361 33237 CA ERASCON4 # 01773 060461,000252: 43,3362 55373 TS SKEEP3 # LAST ADDRESS CHECKED 060462,000253: 43,3363 03371 TC ERASLOOP 060463,000254: 060464,000255: 43,3364 55372 NOEBANK TS SKEEP2 # +0 060465,000256: 43,3365 33234 CA ERASCON1 # 00061 060466,000257: 43,3366 55377 TS SKEEP7 # STARTING ADDRESS 060467,000258: 43,3367 33235 CA ERASCON2 # 01373 060468,000259: 43,3370 55373 TS SKEEP3 # LAST ADDRESS CHECKED 060469,000260: 060470,000261: 43,3371 00004 ERASLOOP INHINT 060471,000262: 43,3372 30003 CA EBANK # STORES C(EBANK) 060472,000263: 43,3373 55374 TS SKEEP4 060473,000264: 43,3374 00006 EXTEND 060474,000265: 43,3375 51377 NDX SKEEP7 060475,000266: 43,3376 30001 DCA 0000 060476,000267: 43,3377 53376 DXCH SKEEP5 # STORES C(X) AND C(X+1) IN SKEEP6 AND 5. 060477,000268: 43,3400 31377 CA SKEEP7 060478,000269: 43,3401 55360 TS ERESTORE # IF RESTART, RESTORE C(X) AND C(X+1) 060479,000270: 43,3402 54001 TS L 060480,000271: 43,3403 24001 INCR L 060481,000272: 43,3404 50000 NDX A 060482,000273: 43,3405 52001 DXCH 0000 # PUTS OWN ADDRESS IN X AND X +1 060483,000274: 43,3406 51377 NDX SKEEP7 060484,000275: 43,3407 40001 CS 0001 # CS X+1 060485,000276: 43,3410 51377 NDX SKEEP7 060486,000277: 43,3411 60000 AD 0000 # AD X 060487,000278: 43,3412 03275 TC -1CHK 060488,000279: 43,3413 31360 CA ERESTORE # HAS ERASABLE BEEN RESTORED 060489,000280: # Page 1399 060490,000281: 43,3414 00006 EXTEND 060491,000282: 43,3415 13441 BZF ELOOPFIN # YES, EXIT ERASLOOP. 060492,000283: 43,3416 00006 EXTEND 060493,000284: 43,3417 51377 NDX SKEEP7 060494,000285: 43,3420 40001 DCS 0000 # COMPLEMENT OF ADDRESS OF X AND X+1 060495,000286: 43,3421 51377 NDX SKEEP7 060496,000287: 43,3422 52001 DXCH 0000 # PUT COMPLEMENT OF ADDRESS OF X AND X+1 060497,000288: 43,3423 51377 NDX SKEEP7 060498,000289: 43,3424 40000 CS 0000 # CS X 060499,000290: 43,3425 51377 NDX SKEEP7 060500,000291: 43,3426 60001 AD 0001 # AD X+1 060501,000292: 43,3427 03275 TC -1CHK 060502,000293: 43,3430 31360 CA ERESTORE # HAS ERASABLE BEEN RESTORED 060503,000294: 43,3431 00006 EXTEND 060504,000295: 43,3432 13441 BZF ELOOPFIN # YES, EXIT ERASLOOP. 060505,000296: 43,3433 00006 EXTEND 060506,000297: 43,3434 31376 DCA SKEEP5 060507,000298: 43,3435 51377 NDX SKEEP7 060508,000299: 43,3436 52001 DXCH 0000 # PUT B(X) AND B(X+1) BACK INTO X AND X+1 060509,000300: 43,3437 35021 CA S+ZERO 060510,000301: 43,3440 55360 TS ERESTORE # IF RESTART, DO NOT RESTORE C(X), C(X+1) 060511,000302: 43,3441 00003 ELOOPFIN RELINT 060512,000303: 43,3442 03334 TC CHECKNJ # CHECK FOR NEW JOB 060513,000304: 43,3443 31374 CA SKEEP4 # REPLACES B(EBANK) 060514,000305: 43,3444 54003 TS EBANK 060515,000306: 43,3445 25377 INCR SKEEP7 060516,000307: 43,3446 41377 CS SKEEP7 060517,000308: 43,3447 61373 AD SKEEP3 060518,000309: 43,3450 00006 EXTEND 060519,000310: 43,3451 13453 BZF +2 060520,000311: 43,3452 03371 TC ERASLOOP # GO TO NEXT ADDRESS IN SAME BANK 060521,000312: 43,3453 11372 CCS SKEEP2 060522,000313: 43,3454 03364 TC NOEBANK 060523,000314: 43,3455 25372 INCR SKEEP2 # PUT +1 IN SKEEP2. 060524,000315: 43,3456 30003 CA EBANK 060525,000316: 43,3457 65007 AD SBIT9 060526,000317: 43,3460 54003 TS EBANK 060527,000318: 43,3461 63245 AD ERASCON5 # 76777, CHECK FOR BANK E2 060528,000319: 43,3462 00006 EXTEND 060529,000320: 43,3463 13357 BZF 2EBANK 060530,000321: 43,3464 10003 CCS EBANK 060531,000322: 43,3465 03352 TC E134567B # GO TO EBANKS 1,3,4,5,6, AND 7 060532,000323: 43,3466 35051 CA ERASCON6 # END OF ERASCHK 060533,000324: 43,3467 54003 TS EBANK 060534,000325: 060535,000326: # CNTRCHK PERFORMS A CS OF ALL REGISTERS FROM OCT. 60 THROUGH OCT. 10. 060536,000327: # INCLUDED ARE ALL COUNTERS, T6-1, CYCLE AND SHIFT, AND ALL RUPT REGISTERS 060537,000328: 060538,000329: 43,3470 35033 CNTRCHK CA CNTRCON # 00050 060539,000330: 43,3471 55372 CNTRLOOP TS SKEEP2 060540,000331: 43,3472 65014 AD SBIT4 # +10 OCTAL 060541,000332: 43,3473 50000 INDEX A 060542,000333: # Page 1400 060543,000334: 43,3474 40000 CS 0000 060544,000335: 43,3475 11372 CCS SKEEP2 060545,000336: 43,3476 03471 TC CNTRLOOP 060546,000337: 060547,000338: # CYCLSHFT CHECKS THE CYCLE AND SHIFT REGISTERS 060548,000339: 060549,000340: 43,3477 33243 CYCLSHFT CA CONC+S1 # 25252 060550,000341: 43,3500 54020 TS CYR # C(CYR) = 12525 060551,000342: 43,3501 54022 TS CYL # C(CYL) = 52524 060552,000343: 43,3502 54021 TS SR # C(SR) = 12525 060553,000344: 43,3503 54023 TS EDOP # C(EDOP) = 00125 060554,000345: 43,3504 60020 AD CYR # 37777 C(CYR) = 45252 060555,000346: 43,3505 60022 AD CYL # 00-12524 C(CYL) = 25251 060556,000347: 43,3506 60021 AD SR # 00-25251 C(SR) = 05252 060557,000348: 43,3507 60023 AD EDOP # 00-25376 C(EDOP) = +0 060558,000349: 43,3510 63244 AD CONC+S2 # C(CONC+S2) = 52400 060559,000350: 43,3511 03275 TC -1CHK 060560,000351: 43,3512 60020 AD CYR # 45252 060561,000352: 43,3513 60022 AD CYL # 72523 060562,000353: 43,3514 60021 AD SR # 77775 060563,000354: 43,3515 60023 AD EDOP # 77775 060564,000355: 43,3516 65017 AD S+1 # 77776 060565,000356: 43,3517 03275 TC -1CHK 060566,000357: 060567,000358: 43,3520 25367 INCR SCOUNT +1 060568,000359: 43,3521 03303 TC SMODECHK 060569,000360: 060570,000361: # SKEEP1 HOLDS SUM 060571,000362: # SKEEP2 HOLDS PRESENT CONTENTS OF ADDRESS IN ROPECHK AND SHOWSUM ROUTINES 060572,000363: # SKEEP2 HOLDS BANK NUMBER IN LOW ORDER BITS DURING SHOWSUM DISPLAY 060573,000364: # SKEEP3 HOLDS PRESENT ADDRESS (00000 TO 01777 IN COMMON FIXED BANKS) 060574,000365: # (04000 TO 07777 IN FXFX BANKS) 060575,000366: # SKEEP3 HOLDS BUGGER WORD DURING SHOWSUM DISPLAY 060576,000367: # SKEEP4 HOLDS BANK NUMBER AND SUPER BANK NUMBER 060577,000368: # SKEEP5 COUNTS 2 SUCCESSIVE TC SELF WORDS 060578,000369: # SKEEP6 CONTROLS ROPECHK OR SHOWSUM OPTION 060579,000370: # SKEEP7 CONTROLS WHEN ROUTINE IS IN COMMON FIXED OR FIXED FIXED BANKS 060580,000371: 060581,000372: 43,3522 35020 ROPECHK CA S-ZERO # * 060582,000373: 43,3523 55376 TS SKEEP6 # * -0 FOR ROPECHK 060583,000374: 43,3524 35021 STSHOSUM CA S+ZERO # * SHOULD BE ROPECHK 060584,000375: 060585,000376: 43,3525 55374 TS SKEEP4 # BANK NUMBER 060586,000377: 43,3526 35017 CA S+1 060587,000378: 43,3527 55377 COMMFX TS SKEEP7 060588,000379: 43,3530 35021 CA S+ZERO 060589,000380: 43,3531 55371 TS SKEEP1 060590,000381: 43,3532 55373 TS SKEEP3 060591,000382: 43,3533 35017 CA S+1 060592,000383: 43,3534 55375 TS SKEEP5 # COUNTS DOWN 2 TC SELF WORDS 060593,000384: 43,3535 31374 COMADRS CA SKEEP4 060594,000385: 43,3536 54001 TS L # TO SET SUPER BANK 060595,000386: # Page 1401 060596,000387: 43,3537 74364 MASK HI5 060597,000388: 43,3540 61373 AD SKEEP3 060598,000389: 43,3541 04715 TC SUPDACAL # SUPER DATA CALL 060599,000390: 43,3542 03565 TC ADSUM 060600,000391: 43,3543 65005 AD SBIT11 # 02000 060601,000392: 43,3544 03576 TC ADRSCHK 060602,000393: 060603,000394: 43,3545 40000 FXFX CS A 060604,000395: 43,3546 55377 TS SKEEP7 060605,000396: 43,3547 00006 EXTEND 060606,000397: 43,3550 13553 BZF +3 060607,000398: 43,3551 35004 CA SBIT12 # 04000, STARTING ADDRESS OF BANK 02 060608,000399: 43,3552 03554 TC +2 060609,000400: 43,3553 35062 CA SBNK03 # 06000, STARTING ADDRESS OF BANK 03 060610,000401: 43,3554 55373 TS SKEEP3 060611,000402: 43,3555 35021 CA S+ZERO 060612,000403: 43,3556 55371 TS SKEEP1 060613,000404: 43,3557 35017 CA S+1 060614,000405: 43,3560 55375 TS SKEEP5 # COUNTS DOWN 2 TC SELF WORDS 060615,000406: 43,3561 51373 FXADRS INDEX SKEEP3 060616,000407: 43,3562 30000 CA 0000 060617,000408: 43,3563 03565 TC ADSUM 060618,000409: 43,3564 03576 TC ADRSCHK 060619,000410: 060620,000411: 43,3565 55372 ADSUM TS SKEEP2 060621,000412: 43,3566 61371 AD SKEEP1 060622,000413: 43,3567 55371 TS SKEEP1 060623,000414: 43,3570 35021 CAF S+ZERO 060624,000415: 43,3571 61371 AD SKEEP1 060625,000416: 43,3572 55371 TS SKEEP1 060626,000417: 43,3573 41372 CS SKEEP2 060627,000418: 43,3574 61373 AD SKEEP3 060628,000419: 43,3575 00002 TC Q 060629,000420: 060630,000421: 43,3576 22000 ADRSCHK LXCH A 060631,000422: 43,3577 31373 CA SKEEP3 060632,000423: 43,3600 75054 MASK LOW10 # RELATIVE ADDRESS 060633,000424: 43,3601 64364 AD -MAXADRS # SUBTRACT MAX RELATIVE ADDRESS = 1777. 060634,000425: 43,3602 00006 EXTEND 060635,000426: 43,3603 13672 BZF SOPTION # CHECKSUM FINISHED IF LAST ADDRESS. 060636,000427: 43,3604 11375 CCS SKEEP5 # IS CHECKSUM FINISHED 060637,000428: 43,3605 03610 TC +3 # NO 060638,000429: 43,3606 03610 TC +2 # NO 060639,000430: 43,3607 03672 TC SOPTION # GO TO ROPECHK SHOWSUM OPTION 060640,000431: 43,3610 10001 CCS L # -0 MEANS A TC SELF WORD. 060641,000432: 43,3611 03620 TC CONTINU 060642,000433: 43,3612 03620 TC CONTINU 060643,000434: 43,3613 03620 TC CONTINU 060644,000435: 43,3614 11375 CCS SKEEP5 060645,000436: 43,3615 03621 TC CONTINU +1 060646,000437: # Page 1402 060647,000438: 43,3616 37716 CA S-1 060648,000439: 43,3617 03621 TC CONTINU +1 # AD IN THE BUGGER WORD 060649,000440: 43,3620 35017 CONTINU CA S+1 # MAKE SURE TWO CONSECUTIVE TC SELF WORDS 060650,000441: 43,3621 55375 TS SKEEP5 060651,000442: 43,3622 11376 CCS SKEEP6 # * 060652,000443: 43,3623 10067 CCS NEWJOB # * +1, SHOWSUM 060653,000444: 43,3624 05164 TC CHANG1 # * 060654,000445: 43,3625 03627 TC +2 # * 060655,000446: 43,3626 03334 TC CHECKNJ # -0 IN SKEEP6 FOR ROPECHK 060656,000447: 060657,000448: 43,3627 25373 ADRS+1 INCR SKEEP3 060658,000449: 43,3630 11377 CCS SKEEP7 060659,000450: 43,3631 03535 TC COMADRS 060660,000451: 43,3632 03535 TC COMADRS 060661,000452: 43,3633 03561 TC FXADRS 060662,000453: 43,3634 03561 TC FXADRS 060663,000454: 060664,000455: 43,3635 41374 NXTBNK CS SKEEP4 060665,000456: 43,3636 63725 AD LSTBNKCH # LAST BANK TO BE CHECKED 060666,000457: 43,3637 00006 EXTEND 060667,000458: 43,3640 13011 BZF ENDSUMS # END OF SUMMING OF BANKS. 060668,000459: 43,3641 31374 CA SKEEP4 060669,000460: 43,3642 65005 AD SBIT11 060670,000461: 43,3643 55374 TS SKEEP4 # 37 TO 40 INCRMTS SKEEP4 BY END RND CARRY 060671,000462: 43,3644 03650 TC CHKSUPR 060672,000463: 43,3645 35001 17TO20 CA SBIT15 060673,000464: 43,3646 27374 ADS SKEEP4 # SET FOR BANK 20 060674,000465: 43,3647 03664 TC GONXTBNK 060675,000466: 43,3650 74364 CHKSUPR MASK HI5 060676,000467: 43,3651 00006 EXTEND 060677,000468: 43,3652 13662 BZF NXTSUPR # INCREMENT SUPER BANK 060678,000469: 43,3653 63242 27TO30 AD S13BITS 060679,000470: 43,3654 00006 EXTEND 060680,000471: 43,3655 13657 BZF +2 # BANK SET FOR 30 060681,000472: 43,3656 03664 TC GONXTBNK 060682,000473: 43,3657 33240 CA SIXTY # FIRST SUPER BANK 060683,000474: 43,3660 27374 ADS SKEEP4 060684,000475: 43,3661 03664 TC GONXTBNK 060685,000476: 43,3662 63241 NXTSUPR AD SUPRCON # SET BNK 30 + INCR SUPR BNK AND CANCEL 060686,000477: 43,3663 27374 ADS SKEEP4 # ERC BIT OF THE 37 TO 40 ADVANCE. 060687,000478: 43,3664 11377 GONXTBNK CCS SKEEP7 060688,000479: 43,3665 03527 TC COMMFX 060689,000480: 43,3666 35017 CA S+1 060690,000481: 43,3667 03545 TC FXFX 060691,000482: 43,3670 35011 CA SBIT7 # HAS TO BE LARGER THAN NO OF FXSW BANKS. 060692,000483: 43,3671 03527 TC COMMFX 060693,000484: 060694,000485: 43,3672 31374 SOPTION CA SKEEP4 060695,000486: 43,3673 74364 MASK HI5 # = BANK BITS 060696,000487: 43,3674 04345 TC LEFT5 060697,000488: # Page 1403 060698,000489: 43,3675 54001 TS L # BANK NUMBER BEFORE SUPER BANK 060699,000490: 43,3676 31374 CA SKEEP4 060700,000491: 43,3677 74373 MASK S8BITS # = SUPER BANK BITS 060701,000492: 43,3700 00006 EXTEND 060702,000493: 43,3701 13707 BZF SOPT # BEFORE SUPER BANK 060703,000494: 43,3702 54021 TS SR # SUPER BANK NECESSARY 060704,000495: 43,3703 30001 CA L 060705,000496: 43,3704 75023 MASK SEVEN 060706,000497: 43,3705 60021 AD SR 060707,000498: 43,3706 54001 TS L # BANK NUMBER WITH SUPER BANK 060708,000499: 43,3707 31376 SOPT CA SKEEP6 # * 060709,000500: 43,3710 00006 EXTEND # * 060710,000501: 43,3711 13713 BZF +2 # * ON -0 CONTINUE WITH ROPE CHECK. 060711,000502: 43,3712 02773 TC SDISPLAY # * ON +1 GO TO DISPLAY OF SUM. 060712,000503: 43,3713 11371 CCS SKEEP1 # FORCE SUM TO ABSOLUTE VALUE. 060713,000504: 43,3714 03716 TC +2 060714,000505: 43,3715 03717 TC +2 060715,000506: 43,3716 65017 AD S+1 060716,000507: 43,3717 55371 TS SKEEP1 060717,000508: 43,3720 40001 BNKCHK CS L # = - BANK NUMBER 060718,000509: 43,3721 61371 AD SKEEP1 060719,000510: 43,3722 67716 AD S-1 060720,000511: 43,3723 03275 TC -1CHK # CHECK SUM 060721,000512: 43,3724 03635 TC NXTBNK 060722,000513: 060723,000514: 43,3725 0067 EBANK= NEWJOB 060724,000515: 43,3725 66100 LSTBNKCH BBCON* # * CONSTANT, LAST BANK. 060725,000516: 43,3726 30,2000 SBANK= LOWSUPER 060726,000517: 060727,000518: End of include-file AGC_BLOCK_TWO_SELF-CHECK.agc. Parent file is MAIN.agc