Source Code
054587,000001: # Copyright: Public domain.
054588,000002: # Filename: AGC_BLOCK_TWO_SELF_CHECK.agc
054589,000003: # Purpose: Part of the source code for Luminary 1A build 099.
054590,000004: # It is part of the source code for the Lunar Module's (LM)
054591,000005: # Apollo Guidance Computer (AGC), for Apollo 11.
054592,000006: # Assembler: yaYUL
054593,000007: # Contact: Onno Hommes <ohommes@cmu.edu>.
054594,000008: # Website: www.ibiblio.org/apollo.
054595,000009: # Pages: 1284-1293
054596,000010: # Mod history: 2009-05-27 OH Transcribed from page images.
054597,000011:
054598,000012: # This source code has been transcribed or otherwise adapted from
054599,000013: # digitized images of a hardcopy from the MIT Museum. The digitization
054600,000014: # was performed by Paul Fjeld, and arranged for by Deborah Douglas of
054601,000015: # the Museum. Many thanks to both. The images (with suitable reduction
054602,000016: # in storage size and consequent reduction in image quality as well) are
054603,000017: # available online at www.ibiblio.org/apollo. If for some reason you
054604,000018: # find that the images are illegible, contact me at info@sandroid.org
054605,000019: # about getting access to the (much) higher-quality images which Paul
054606,000020: # actually created.
054607,000021:
054608,000022: # Notations on the hardcopy document read, in part:
054609,000023:
054610,000024: # Assemble revision 001 of AGC program LMY99 by NASA 2021112-61
054611,000025: # 16:27 JULY 14, 1969
054612,000026:
054613,000027: # Page 1284
054614,000028: # PROGRAM DESCRIPTION DATE: 20 DECEMBER 1967
054615,000029: # PROGRAM NAME -- SELF-CHECK LOG SECTION: AGC BLOCK TWO SELF-CHECK
054616,000030: # MOD NO -- 1 ASSEMBLY SUBROUTINE UTILITYM REV 25
054617,000031: # MOD BY -- GAUNTT
054618,000032:
054619,000033: # FUNCTIONAL DESCRIPTION
054620,000034: # PROGRAM HAS TWO MAIN PARTS. THE FIRST IS SELF-CHECK WHICH RUNS AS A ZERO PRIORITY JOB WITH NO CORE SET, AS
054621,000035: # PART OF THE BACK-UP IDLE LOOP. THE SECOND IS SHOW-BANKSUM WHICH RUNS AS A REGULAR EXECUTIVE JOB WITH ITS OWN
054622,000036: # STARTING VERB.
054623,000037:
054624,000038: # THE PURPOSE OF SELF-CHECK IS TO CHECK OUT VARIOUS PARTS OF THE COMPUTER AS OUTLINED BELOW IN THE OPTIONS.
054625,000039:
054626,000040: # THE PURPOSE OF SHOW-BANKSUM IS TO DISPLAY THE SUM OF EACH BANK, ONE AT A TIME.
054627,000041:
054628,000042: # IN ALL THERE ARE 7 POSSIBLE OPTIONS IN THIS BLOCK II VERSION OF SELF-CHECK. MORE DETAIL DESCRIPTION MAY BE
054629,000043: # FOUND IN E-2065 BLOCK II AGC SELF-CHECK AND SHOW BANKSUM BY EDWIN D. SMALLY DECEMBER 1966, AND ADDENDA 2 AND 3.
054630,000044:
054631,000045: # THE DIFFERENT OPTIONS ARE CONTROLLED BY PUTTING DIFFERENT NUMBERS IN THE SMODE REGISTER (NOUN 27). BELOW IS
054632,000046: # A DESCRIPTION OF WHAT PARTS OF THE COMPUTER THAT ARE CHECKED BY THE OPTIONS, AND THE CORRESPONDING NUMBER, IN
054633,000047: # OCTAL, TO LOAD INTO SMODE.
054634,000048: # +-4 ERASABLE MEMORY
054635,000049: # +-5 FIXED MEMORY
054636,000050: # +-1,2,3,6,7,10 EVERYTHING IN OPTIONS 4 AND 5.
054637,000051: # -0 SAME AS +-10 UNTIL AN ERROR IS DETECTED.
054638,000052: # +0 NO CHECK, PUTS COMPUTER INTO THE BACKUP IDLE LOOP.
054639,000053:
054640,000054: # WARNINGS
054641,000055: # USE OF E MEMORY RESERVED FOR SELF-CHECK (EVEN IN IDLE LOOP) AS TEMP STORAGE BY OTHER PROGRAMS IS DANGEROUS.
054642,000056: # SMODE SET GREATER THAN OCT 10 PUTS COMPUTER INTO BACKUP IDLE LOOP.
054643,000057:
054644,000058: # CALLING SEQUENCE
054645,000059: # TO CALL SELF-CHECK KEY IN
054646,000060: # V 21 N 27 E OPTION NUMBER E
054647,000061: # TO CALL SHOW-BANKSUM KEY IN
054648,000062: # V 91 E DISPLAYS FIRST BANK
054649,000063: # V 33 E PROCEED, DISPLAYS NEXT BANK
054650,000064:
054651,000065: # EXIT MODES, NORMAL AND ALARM
054652,000066: # SELF-CHECK NORMALLY CONTINUES INDEFINITELY UNLESS THERE IS AN ERROR DETECTED. IF SO + OPTION NUMBERS PUT
054653,000067: # COMPUTER INTO BACKUP IDLE LOOP, - OPTIONS NUMBERS RESTART THE OPTION.
054654,000068:
054655,000069: # THE -0 OPTION PROCEEDS FROM THE LINE FOLLOWING THE LINE WHERE THE ERROR WAS DETECTED.
054656,000070:
054657,000071: # SHOW-BANKSUM PROCEEDS UNTIL A TERMINATE IS KEYED IN (V 34 E). THE COMPUTER IS PUT INTO THE BACKUP IDLE LOOP.
054658,000072:
054659,000073: # OUTPUT
054660,000074: # Page 1285
054661,000075: # SELF-CHECK UPON DETECTING AN ERROR LOADS THE SELF-CHECK ALARM CONSTANT (01102) INTO THE FAILREG SET AND
054662,000076: # TURNS ON THE ALARM LIGHT. THE OPERATOR MAY THEN DISPLAY THE THREE FAILREGS BY KEYING IN V 05 N 09 E. FOR FURTHER
054663,000077: # 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,
054664,000078: # IN R2 THE BBCON OF SELF-CHECK, AND IN R3 THE TOTAL NUMBER OF ERRORS DETECTED BY SELF-CHECK SINCE THE LAST MAN
054665,000079: # INITIATED FRESH START (SLAP1).
054666,000080:
054667,000081: # SHOW-BANKSUM STARTING WTIH BANK 0 DISPLAYS IN R1 THE BANK SUM (A +-NUMBER EQUAL TO THE BANK NUMBER), IN R2
054668,000082: # THE BANK NUMBER, AND IN R3 THE BUGGER WORD.
054669,000083:
054670,000084: # ERASABLE INITIALIZATION REQUIRED
054671,000085: # ACCOMPLISHED BY FRESH START
054672,000086: # SMODE SET TO +0
054673,000087:
054674,000088: # DEBRIS
054675,000089: # ALL EXITS FROM THE CHECK OF ERASABLE (ERASCHK) RESTORE ORIGINAL CONTENTS TO REGISTERS UNDER CHECK.
054676,000090: # EXCEPTION IS A RESTART. RESTART THAT OCCURS DURING ERASCHK RESTORES ERASABLE, UNLESS THERE IS EVIDENCE TO DOUBT
054677,000091: # E MEMORY, IN WHICH CASE PROGRAM THEN DOES A FRESH START (DOFSTART).
054678,000092:
054679,000093: 25,3770 BANK 25
054680,000094: 43,2000 SETLOC SELFCHEC
054681,000095: 43,2000 BANK
054682,000096:
054683,000097: 43,3232 COUNT* $$/SELF
054684,000098: 43,3232 4753 SBIT1 EQUALS BIT1
054685,000099: 43,3232 4752 SBIT2 EQUALS BIT2
054686,000100: 43,3232 4751 SBIT3 EQUALS BIT3
054687,000101: 43,3232 4750 SBIT4 EQUALS BIT4
054688,000102: 43,3232 4747 SBIT5 EQUALS BIT5
054689,000103: 43,3232 4746 SBIT6 EQUALS BIT6
054690,000104: 43,3232 4745 SBIT7 EQUALS BIT7
054691,000105: 43,3232 4744 SBIT8 EQUALS BIT8
054692,000106: 43,3232 4743 SBIT9 EQUALS BIT9
054693,000107: 43,3232 4742 SBIT10 EQUALS BIT10
054694,000108: 43,3232 4741 SBIT11 EQUALS BIT11
054695,000109: 43,3232 4740 SBIT12 EQUALS BIT12
054696,000110: 43,3232 4737 SBIT13 EQUALS BIT13
054697,000111: 43,3232 4736 SBIT14 EQUALS BIT14
054698,000112: 43,3232 4735 SBIT15 EQUALS BIT15
054699,000113:
054700,000114: 43,3232 4755 S+ZERO EQUALS ZERO
054701,000115: 43,3232 4753 S+1 EQUALS BIT1
054702,000116: 43,3232 4752 S+2 EQUALS BIT2
054703,000117: 43,3232 6245 S+3 EQUALS THREE
054704,000118: 43,3232 4751 S+4 EQUALS FOUR
054705,000119: 43,3232 4756 S+5 EQUALS FIVE
054706,000120: 43,3232 6242 S+6 EQUALS SIX
054707,000121: # Page 1286
054708,000122: 43,3232 4757 S+7 EQUALS SEVEN
054709,000123: 43,3232 4357 S8BITS EQUALS LOW8 # 00377
054710,000124: 43,3232 4771 CNTRCON = OCT50 # USED IN CNTRCHK
054711,000125: 43,3232 00061 ERASCON1 OCTAL 00061 # USED IN ERASCHK
054712,000126: 43,3233 01373 ERASCON2 OCTAL 01373 # USED IN ERASCHK
054713,000127: 43,3234 5007 ERASCON6 = OCT1400 # USED IN ERASCHK
054714,000128: 43,3234 01461 ERASCON3 OCTAL 01461 # USED IN ERASCHK
054715,000129: 43,3235 01773 ERASCON4 OCTAL 01773 # USED IN ERASCHK
054716,000130: 43,3236 5012 S10BITS EQUALS LOW10 # 01777, USED IN ERASCHK
054717,000131: 43,3236 5020 SBNK03 EQUALS PRIO6 # 06000, USED IN ROPECHK
054718,000132: 43,3236 4350 -MAXADRS = HI5 # FOR ROPECHK
054719,000133: 43,3236 00060 SIXTY OCTAL 00060
054720,000134: 43,3237 60017 SUPRCON OCTAL 60017 # USED IN ROPECHK
054721,000135: 43,3240 17777 S13BITS OCTAL 17777
054722,000136: 43,3241 25252 CONC+S1 OCTAL 25252 # USED IN CYCLSHFT
054723,000137: 43,3242 52400 CONC+S2 OCTAL 52400 # USED IN CYCLSHFT
054724,000138: 43,3243 76777 ERASCON5 OCTAL 76777
054725,000139: 43,3244 5660 S-7 = OCT77770
054726,000140: 43,3244 6112 S-4 EQUALS NEG4
054727,000141: 43,3244 7745 S-3 EQUALS NEG3
054728,000142: 43,3244 7746 S-2 EQUALS NEG2
054729,000143: 43,3244 7747 S-1 EQUALS NEGONE
054730,000144: 43,3244 4754 S-ZERO EQUALS NEG0
054731,000145:
054732,000146: 43,3244 E3,1400 EBANK= LST1
054733,000147: 43,3244 01371 ADRS1 ADRES SKEEP1
054734,000148: 43,3245 03336 SELFADRS ADRES SELFCHK # SELFCHK RETURN ADDRESS. SHOULD BE PUT
054735,000149: # IN SELFRET WHEN GOING FROM SELFCHK TO
054736,000150: # SHOWSUM AND PUT IN SKEEP1 WHEN GOING
054737,000151: # FROM SHOWSUM TO SELF-CHECK.
054738,000152:
054739,000153: 43,3246 31360 PRERRORS CA ERESTORE # IS IT NECESSARY TO RESTORE ERASABLE
054740,000154: 43,3247 00006 EXTEND
054741,000155: 43,3250 13257 BZF ERRORS # NO
054742,000156: 43,3251 00006 EXTEND
054743,000157: 43,3252 31376 DCA SKEEP5
054744,000158: 43,3253 51377 INDEX SKEEP7
054745,000159: 43,3254 52001 DXCH 0000 # RESTORE THE TWO ERASABLE REGISTERS
054746,000160: 43,3255 34755 CA S+ZERO
054747,000161: 43,3256 55360 TS ERESTORE
054748,000162: 43,3257 00004 ERRORS INHINT
054749,000163: 43,3260 30002 CA Q
054750,000164: 43,3261 55357 TS SFAIL # SAVE Q FOR FAILURE LOCATION
054751,000165: 43,3262 55363 TS ALMCADR # FOR DISPLAY WITH BBANK AND ERCOUNT
054752,000166: 43,3263 25365 INCR ERCOUNT # KEEP TRACK OF NUMBER OF MALFUNCTIONS.
054753,000167: 43,3264 05571 TCALARM2 TC ALARM2
054754,000168: 43,3265 01102 OCT 01102 # SELF-CHECK MALFUNCTION INDICATOR
054755,000169: 43,3266 11362 CCS SMODE
054756,000170: 43,3267 34755 SIDLOOP CA S+ZERO
054757,000171: 43,3270 55362 TS SMODE
054758,000172: # Page 1287
054759,000173: 43,3271 03336 TC SELFCHK # GO TO IDLE LOOP
054760,000174: 43,3272 01357 TC SFAIL # CONTINUE WITH SELF-CHECK
054761,000175:
054762,000176: 43,3273 10000 -1CHK CCS A
054763,000177: 43,3274 13246 TCF PRERRORS
054764,000178: 43,3275 13246 TCF PRERRORS
054765,000179: 43,3276 10000 CCS A
054766,000180: 43,3277 13246 TCF PRERRORS
054767,000181: 43,3300 00002 TC Q
054768,000182:
054769,000183: 43,3301 00006 SMODECHK EXTEND
054770,000184: 43,3302 23371 QXCH SKEEP1
054771,000185: 43,3303 03332 TC CHECKNJ # CHECK FOR NEW JOB
054772,000186: 43,3304 11362 CCS SMODE
054773,000187: 43,3305 03312 TC SOPTIONS
054774,000188: 43,3306 03303 TC SMODECHK +2 # TO BACKUP IDLE LOOP
054775,000189: 43,3307 03312 TC SOPTIONS
054776,000190: 43,3310 25366 INCR SCOUNT
054777,000191: 43,3311 01371 TC SKEEP1 # CONTINUE WITH SELF-CHECK
054778,000192:
054779,000193: 43,3312 65660 SOPTIONS AD S-7
054780,000194: 43,3313 00006 EXTEND
054781,000195: 43,3314 63316 BZMF +2 # FOR OPTIONS BELOW NINE.
054782,000196: 43,3315 03267 BNKOPTN TC SIDLOOP # ILLEGAL OPTION. GO TO IDLE LOOP.
054783,000197: 43,3316 25366 INCR SCOUNT # FOR OPTIONS BELOW NINE.
054784,000198: 43,3317 64757 AD S+7
054785,000199:
054786,000200: 43,3320 50000 INDEX A
054787,000201: 43,3321 03322 TC SOPTION1
054788,000202: 43,3322 01371 SOPTION1 TC SKEEP1 # WAS TC+TCF
054789,000203: 43,3323 01371 SOPTION2 TC SKEEP1 # WAS IN:OUT1
054790,000204: 43,3324 01371 SOPTION3 TC SKEEP1
054791,000205: 43,3325 03337 SOPTION4 TC ERASCHK
054792,000206: 43,3326 03520 SOPTION5 TC ROPECHK
054793,000207: 43,3327 01371 SOPTION6 TC SKEEP1
054794,000208: 43,3330 01371 SOPTION7 TC SKEEP1
054795,000209: 43,3331 01371 SOPTON10 TC SKEEP1 # CONTINUE WITH SELF-CHECK
054796,000210:
054797,000211: 43,3332 00006 CHECKNJ EXTEND
054798,000212: 43,3333 23361 QXCH SELFRET # SAVE RETURN ADDRESS WHILE TESTING NEWJOB
054799,000213: 43,3334 04635 TC POSTJUMP # TO SEE IF ANY JOBS HAVE BECOME ACTIVE.
054800,000214: 43,3335 03214 CADR ADVAN
054801,000215:
054802,000216: 43,3336 03301 SELFCHK TC SMODECHK # ** CHARLEY, COME IN HERE
054803,000217:
054804,000218: # SKEEP7 HOLDS LOWEST OF TWO ADDRESSES BEING CHECKED.
054805,000219: # SKEEP6 HOLDS B(X+1).
054806,000220: # SKEEP5 HOLDS B(X).
054807,000221: # SKEEP4 HOLDS C(EBANK) DURING ERASLOOP AND CHECKNJ
054808,000222: # SKEEP3 HOLDS LAST ADDRESS BEING CHECKED (HIGHEST ADDRESS).
054809,000223: # Page 1288
054810,000224: # SKEEP2 CONTROLS CHECKING OF NON-SWITCHABLE ERASABLE MEMORY WITH BANK NUMBERS IN EB.
054811,000225:
054812,000226: # ERASCHK TAKES APPROXIMATELY 7 SECONDS.
054813,000227:
054814,000228: 43,3337 34753 ERASCHK CA S+1
054815,000229: 43,3340 55372 TS SKEEP2
054816,000230: 43,3341 34755 0EBANK CA S+ZERO
054817,000231: 43,3342 54003 TS EBANK
054818,000232: 43,3343 33234 CA ERASCON3 # 01461
054819,000233: 43,3344 55377 TS SKEEP7 # STARTING ADDRESS
054820,000234: 43,3345 35012 CA S10BITS # 01777
054821,000235: 43,3346 55373 TS SKEEP3 # LAST ADDRESS CHECKED
054822,000236: 43,3347 03367 TC ERASLOOP
054823,000237:
054824,000238: 43,3350 35007 E134567B CA ERASCON6 # 01400
054825,000239: 43,3351 55377 TS SKEEP7 # STARTING ADDRESS
054826,000240: 43,3352 35012 CA S10BITS # 01777
054827,000241: 43,3353 55373 TS SKEEP3 # LAST ADDRESS CHECKED
054828,000242: 43,3354 03367 TC ERASLOOP
054829,000243:
054830,000244: 43,3355 35007 2EBANK CA ERASCON6 # 01400
054831,000245: 43,3356 55377 TS SKEEP7 # STARTING ADDRESS
054832,000246: 43,3357 33235 CA ERASCON4 # 01773
054833,000247: 43,3360 55373 TS SKEEP3 # LAST ADDRESS CHECKED
054834,000248: 43,3361 03367 TC ERASLOOP
054835,000249:
054836,000250: 43,3362 55372 NOEBANK TS SKEEP2 # +0
054837,000251: 43,3363 33232 CA ERASCON1 # 00061
054838,000252: 43,3364 55377 TS SKEEP7 # STARTING ADDRESS
054839,000253: 43,3365 33233 CA ERASCON2 # 01373
054840,000254: 43,3366 55373 TS SKEEP3 # LAST ADDRESS CHECKED
054841,000255:
054842,000256: 43,3367 00004 ERASLOOP INHINT
054843,000257: 43,3370 30003 CA EBANK # STORES C(EBANK)
054844,000258: 43,3371 55374 TS SKEEP4
054845,000259: 43,3372 00006 EXTEND
054846,000260: 43,3373 51377 NDX SKEEP7
054847,000261: 43,3374 30001 DCA 0000
054848,000262: 43,3375 53376 DXCH SKEEP5 # STORES C(X) AND C(X+1) IN SKEEP6 AND 5.
054849,000263: 43,3376 31377 CA SKEEP7
054850,000264: 43,3377 55360 TS ERESTORE # IF RESTART, RESTORE C(X) AND C(X+1)
054851,000265: 43,3400 54001 TS L
054852,000266: 43,3401 24001 INCR L
054853,000267: 43,3402 50000 NDX A
054854,000268: 43,3403 52001 DXCH 0000 # PUTS OWN ADDRESS IN X AND X +1
054855,000269: 43,3404 51377 NDX SKEEP7
054856,000270: 43,3405 40001 CS 0001 # CS X+1
054857,000271: 43,3406 51377 NDX SKEEP7
054858,000272: 43,3407 60000 AD 0000 # AD X
054859,000273: 43,3410 03273 TC -1CHK
054860,000274: 43,3411 31360 CA ERESTORE # HAS ERASABLE BEEN RESTORED
054861,000275: 43,3412 00006 EXTEND
054862,000276: # Page 1289
054863,000277: 43,3413 13437 BZF ELOOPFIN # YES, EXIT ERASLOOP.
054864,000278: 43,3414 00006 EXTEND
054865,000279: 43,3415 51377 NDX SKEEP7
054866,000280: 43,3416 40001 DCS 0000 # COMPLEMENT OF ADDRESS OF X AND X+1
054867,000281: 43,3417 51377 NDX SKEEP7
054868,000282: 43,3420 52001 DXCH 0000 # PUT COMPLEMENT OF ADDRESS OF X AND X+1
054869,000283: 43,3421 51377 NDX SKEEP7
054870,000284: 43,3422 40000 CS 0000 # CS X
054871,000285: 43,3423 51377 NDX SKEEP7
054872,000286: 43,3424 60001 AD 0001 # AD X+1
054873,000287: 43,3425 03273 TC -1CHK
054874,000288: 43,3426 31360 CA ERESTORE # HAS ERASABLE BEEN RESTORED
054875,000289: 43,3427 00006 EXTEND
054876,000290: 43,3430 13437 BZF ELOOPFIN # YES, EXIT ERASLOOP.
054877,000291: 43,3431 00006 EXTEND
054878,000292: 43,3432 31376 DCA SKEEP5
054879,000293: 43,3433 51377 NDX SKEEP7
054880,000294: 43,3434 52001 DXCH 0000 # PUT B(X) AND B(X+1) BACK INTO X AND X+1
054881,000295: 43,3435 34755 CA S+ZERO
054882,000296: 43,3436 55360 TS ERESTORE # IF RESTART, DO NOT RESTORE C(X), C(X+1)
054883,000297: 43,3437 00003 ELOOPFIN RELINT
054884,000298: 43,3440 03332 TC CHECKNJ # CHECK FOR NEW JOB
054885,000299: 43,3441 31374 CA SKEEP4 # REPLACES B(EBANK)
054886,000300: 43,3442 54003 TS EBANK
054887,000301: 43,3443 25377 INCR SKEEP7
054888,000302: 43,3444 41377 CS SKEEP7
054889,000303: 43,3445 61373 AD SKEEP3
054890,000304: 43,3446 00006 EXTEND
054891,000305: 43,3447 13451 BZF +2
054892,000306: 43,3450 03367 TC ERASLOOP # GO TO NEXT ADDRESS IN SAME BANK
054893,000307: 43,3451 11372 CCS SKEEP2
054894,000308: 43,3452 03362 TC NOEBANK
054895,000309: 43,3453 25372 INCR SKEEP2 # PUT +1 IN SKEEP2.
054896,000310: 43,3454 30003 CA EBANK
054897,000311: 43,3455 64743 AD SBIT9
054898,000312: 43,3456 54003 TS EBANK
054899,000313: 43,3457 63243 AD ERASCON5 # 76777, CHECK FOR BANK E2
054900,000314: 43,3460 00006 EXTEND
054901,000315: 43,3461 13355 BZF 2EBANK
054902,000316: 43,3462 10003 CCS EBANK
054903,000317: 43,3463 03350 TC E134567B # GO TO EBANKS 1,3,4,5,6, AND 7
054904,000318: 43,3464 35007 CA ERASCON6 # END OF ERASCHK
054905,000319: 43,3465 54003 TS EBANK
054906,000320:
054907,000321: # CNTRCHK PERFORMS A CS OF ALL REGISTERS FROM OCT. 60 THROUGH OCT. 10.
054908,000322: # INCLUDED ARE ALL COUNTERS, T6-1, CYCLE AND SHIFT, AND ALL RUPT REGISTERS
054909,000323:
054910,000324: 43,3466 34771 CNTRCHK CA CNTRCON # 00050
054911,000325: 43,3467 55372 CNTRLOOP TS SKEEP2
054912,000326: 43,3470 64750 AD SBIT4 # +10 OCTAL
054913,000327: 43,3471 50000 INDEX A
054914,000328: 43,3472 40000 CS 0000
054915,000329: # Page 1290
054916,000330: 43,3473 11372 CCS SKEEP2
054917,000331: 43,3474 03467 TC CNTRLOOP
054918,000332:
054919,000333: # CYCLSHFT CHECKS THE CYCLE AND SHIFT REGISTERS
054920,000334:
054921,000335: 43,3475 33241 CYCLSHFT CA CONC+S1 # 25252
054922,000336: 43,3476 54020 TS CYR # C(CYR) = 12525
054923,000337: 43,3477 54022 TS CYL # C(CYL) = 52524
054924,000338: 43,3500 54021 TS SR # C(SR) = 12525
054925,000339: 43,3501 54023 TS EDOP # C(EDOP) = 00125
054926,000340: 43,3502 60020 AD CYR # 37777 C(CYR) = 45252
054927,000341: 43,3503 60022 AD CYL # 00-12524 C(CYL) = 25251
054928,000342: 43,3504 60021 AD SR # 00-25251 C(SR) = 05252
054929,000343: 43,3505 60023 AD EDOP # 00-25376 C(EDOP) = +0
054930,000344: 43,3506 63242 AD CONC+S2 # C(CONC+S2) = 52400
054931,000345: 43,3507 03273 TC -1CHK
054932,000346: 43,3510 60020 AD CYR # 45252
054933,000347: 43,3511 60022 AD CYL # 72523
054934,000348: 43,3512 60021 AD SR # 77775
054935,000349: 43,3513 60023 AD EDOP # 77775
054936,000350: 43,3514 64753 AD S+1 # 77776
054937,000351: 43,3515 03273 TC -1CHK
054938,000352:
054939,000353: 43,3516 25367 INCR SCOUNT +1
054940,000354: 43,3517 03301 TC SMODECHK
054941,000355:
054942,000356: # SKEEP1 HOLDS SUM
054943,000357: # SKEEP2 HOLDS PRESENT CONTENTS OF ADDRESS IN ROPECHK AND SHOWSUM ROUTINES
054944,000358: # SKEEP2 HOLDS BANK NUMBER IN LOW ORDER BITS DURING SHOWSUM DISPLAY
054945,000359: # SKEEP3 HOLDS PRESENT ADDRESS (00000 TO 01777 IN COMMON FIXED BANKS)
054946,000360: # (04000 TO 07777 IN FXFX BANKS)
054947,000361: # SKEEP3 HOLDS BUGGER WORD DURING SHOWSUM DISPLAY
054948,000362: # SKEEP4 HOLDS BANK NUMBER AND SUPER BANK NUMBER
054949,000363: # SKEEP5 COUNTS 2 SUCCESSIVE TC SELF WORDS
054950,000364: # SKEEP6 CONTROLS ROPECHK OR SHOWSUM OPTION
054951,000365: # SKEEP7 CONTROLS WHEN ROUTINE IS IN COMMON FIXED OR FIXED FIXED BANKS
054952,000366:
054953,000367: 43,3520 34754 ROPECHK CA S-ZERO # *
054954,000368: 43,3521 55376 TS SKEEP6 # * -0 FOR ROPECHK
054955,000369: 43,3522 34755 STSHOSUM CA S+ZERO # * SHOULD BE ROPECHK
054956,000370:
054957,000371: 43,3523 55374 TS SKEEP4 # BANK NUMBER
054958,000372: 43,3524 34753 CA S+1
054959,000373: 43,3525 55377 COMMFX TS SKEEP7
054960,000374: 43,3526 34755 CA S+ZERO
054961,000375: 43,3527 55371 TS SKEEP1
054962,000376: 43,3530 55373 TS SKEEP3
054963,000377: 43,3531 34753 CA S+1
054964,000378: 43,3532 55375 TS SKEEP5 # COUNTS DOWN 2 TC SELF WORDS
054965,000379: 43,3533 31374 COMADRS CA SKEEP4
054966,000380: 43,3534 54001 TS L # TO SET SUPER BANK
054967,000381: 43,3535 74350 MASK HI5
054968,000382: # Page 1291
054969,000383: 43,3536 61373 AD SKEEP3
054970,000384: 43,3537 04651 TC SUPDACAL # SUPER DATA CALL
054971,000385: 43,3540 03563 TC ADSUM
054972,000386: 43,3541 64741 AD SBIT11 # 02000
054973,000387: 43,3542 03574 TC ADRSCHK
054974,000388:
054975,000389: 43,3543 40000 FXFX CS A
054976,000390: 43,3544 55377 TS SKEEP7
054977,000391: 43,3545 00006 EXTEND
054978,000392: 43,3546 13551 BZF +3
054979,000393: 43,3547 34740 CA SBIT12 # 04000, STARTING ADDRESS OF BANK 02
054980,000394: 43,3550 03552 TC +2
054981,000395: 43,3551 35020 CA SBNK03 # 06000, STARTING ADDRESS OF BANK 03
054982,000396: 43,3552 55373 TS SKEEP3
054983,000397: 43,3553 34755 CA S+ZERO
054984,000398: 43,3554 55371 TS SKEEP1
054985,000399: 43,3555 34753 CA S+1
054986,000400: 43,3556 55375 TS SKEEP5 # COUNTS DOWN 2 TC SELF WORDS
054987,000401: 43,3557 51373 FXADRS INDEX SKEEP3
054988,000402: 43,3560 30000 CA 0000
054989,000403: 43,3561 03563 TC ADSUM
054990,000404: 43,3562 03574 TC ADRSCHK
054991,000405:
054992,000406: 43,3563 55372 ADSUM TS SKEEP2
054993,000407: 43,3564 61371 AD SKEEP1
054994,000408: 43,3565 55371 TS SKEEP1
054995,000409: 43,3566 34755 CAF S+ZERO
054996,000410: 43,3567 61371 AD SKEEP1
054997,000411: 43,3570 55371 TS SKEEP1
054998,000412: 43,3571 41372 CS SKEEP2
054999,000413: 43,3572 61373 AD SKEEP3
055000,000414: 43,3573 00002 TC Q
055001,000415:
055002,000416: 43,3574 22000 ADRSCHK LXCH A
055003,000417: 43,3575 31373 CA SKEEP3
055004,000418: 43,3576 75012 MASK LOW10 # RELATIVE ADDRESS
055005,000419: 43,3577 64350 AD -MAXADRS # SUBTRACT MAX RELATIVE ADDRESS = 1777.
055006,000420: 43,3600 00006 EXTEND
055007,000421: 43,3601 13670 BZF SOPTION # CHECKSUM FINISHED IF LAST ADDRESS.
055008,000422: 43,3602 11375 CCS SKEEP5 # IS CHECKSUM FINISHED
055009,000423: 43,3603 03606 TC +3 # NO
055010,000424: 43,3604 03606 TC +2 # NO
055011,000425: 43,3605 03670 TC SOPTION # GO TO ROPECHK SHOWSUM OPTION
055012,000426: 43,3606 10001 CCS L # -0 MEANS A TC SELF WORD.
055013,000427: 43,3607 03616 TC CONTINU
055014,000428: 43,3610 03616 TC CONTINU
055015,000429: 43,3611 03616 TC CONTINU
055016,000430: 43,3612 11375 CCS SKEEP5
055017,000431: 43,3613 03617 TC CONTINU +1
055018,000432: 43,3614 37747 CA S-1
055019,000433: # Page 1292
055020,000434: 43,3615 03617 TC CONTINU +1 # AD IN THE BUGGER WORD
055021,000435: 43,3616 34753 CONTINU CA S+1 # MAKE SURE TWO CONSECUTIVE TC SELF WORDS
055022,000436: 43,3617 55375 TS SKEEP5
055023,000437: 43,3620 11376 CCS SKEEP6 # *
055024,000438: 43,3621 10067 CCS NEWJOB # * +1, SHOWSUM
055025,000439: 43,3622 05122 TC CHANG1 # *
055026,000440: 43,3623 03625 TC +2 # *
055027,000441: 43,3624 03332 TC CHECKNJ # -0 IN SKEEP6 FOR ROPECHK
055028,000442:
055029,000443: 43,3625 25373 ADRS+1 INCR SKEEP3
055030,000444: 43,3626 11377 CCS SKEEP7
055031,000445: 43,3627 03533 TC COMADRS
055032,000446: 43,3630 03533 TC COMADRS
055033,000447: 43,3631 03557 TC FXADRS
055034,000448: 43,3632 03557 TC FXADRS
055035,000449:
055036,000450: 43,3633 41374 NXTBNK CS SKEEP4
055037,000451: 43,3634 63723 AD LSTBNKCH # LAST BANK TO BE CHECKED
055038,000452: 43,3635 00006 EXTEND
055039,000453: 43,3636 13131 BZF ENDSUMS # END OF SUMMING OF BANKS.
055040,000454: 43,3637 31374 CA SKEEP4
055041,000455: 43,3640 64741 AD SBIT11
055042,000456: 43,3641 55374 TS SKEEP4 # 37 TO 40 INCRMTS SKEEP4 BY END RND CARRY
055043,000457: 43,3642 03646 TC CHKSUPR
055044,000458: 43,3643 34735 17TO20 CA SBIT15
055045,000459: 43,3644 27374 ADS SKEEP4 # SET FOR BANK 20
055046,000460: 43,3645 03662 TC GONXTBNK
055047,000461: 43,3646 74350 CHKSUPR MASK HI5
055048,000462: 43,3647 00006 EXTEND
055049,000463: 43,3650 13660 BZF NXTSUPR # INCREMENT SUPER BANK
055050,000464: 43,3651 63240 27TO30 AD S13BITS
055051,000465: 43,3652 00006 EXTEND
055052,000466: 43,3653 13655 BZF +2 # BANK SET FOR 30
055053,000467: 43,3654 03662 TC GONXTBNK
055054,000468: 43,3655 33236 CA SIXTY # FIRST SUPER BANK
055055,000469: 43,3656 27374 ADS SKEEP4
055056,000470: 43,3657 03662 TC GONXTBNK
055057,000471: 43,3660 63237 NXTSUPR AD SUPRCON # SET BNK 30 + INCR SUPR BNK AND CANCEL
055058,000472: 43,3661 27374 ADS SKEEP4 # ERC BIT OF TEH 37 TO 40 ADVANCE.
055059,000473: 43,3662 11377 GONXTBNK CCS SKEEP7
055060,000474: 43,3663 03525 TC COMMFX
055061,000475: 43,3664 34753 CA S+1
055062,000476: 43,3665 03543 TC FXFX
055063,000477: 43,3666 34745 CA SBIT7 # HAS TO BE LARGER THAN NO OF FXSW BANKS.
055064,000478: 43,3667 03525 TC COMMFX
055065,000479:
055066,000480: 43,3670 31374 SOPTION CA SKEEP4
055067,000481: 43,3671 74350 MASK HI5 # = BANK BITS
055068,000482: 43,3672 04331 TC LEFT5
055069,000483: 43,3673 54001 TS L # BANK NUMBER BEFORE SUPER BANK
055070,000484: # Page 1293
055071,000485: 43,3674 31374 CA SKEEP4
055072,000486: 43,3675 74357 MASK S8BITS # = SUPER BANK BITS
055073,000487: 43,3676 00006 EXTEND
055074,000488: 43,3677 13705 BZF SOPT # BEFORE SUPER BANK
055075,000489: 43,3700 54021 TS SR # SUPER BANK NECESSARY
055076,000490: 43,3701 30001 CA L
055077,000491: 43,3702 74757 MASK SEVEN
055078,000492: 43,3703 60021 AD SR
055079,000493: 43,3704 54001 TS L # BANK NUMBER WITH SUPER BANK
055080,000494: 43,3705 31376 SOPT CA SKEEP6 # *
055081,000495: 43,3706 00006 EXTEND # *
055082,000496: 43,3707 13711 BZF +2 # * ON -0 CONTINUE WITH ROPE CHECK.
055083,000497: 43,3710 03113 TC SDISPLAY # * ON +1 GO TO DISPLAY OF SUM.
055084,000498: 43,3711 11371 CCS SKEEP1 # FORCE SUM TO ABSOLUTE VALUE.
055085,000499: 43,3712 03714 TC +2
055086,000500: 43,3713 03715 TC +2
055087,000501: 43,3714 64753 AD S+1
055088,000502: 43,3715 55371 TS SKEEP1
055089,000503: 43,3716 40001 BNKCHK CS L # = - BANK NUMBER
055090,000504: 43,3717 61371 AD SKEEP1
055091,000505: 43,3720 67747 AD S-1
055092,000506: 43,3721 03273 TC -1CHK # CHECK SUM
055093,000507: 43,3722 03633 TC NXTBNK
055094,000508:
055095,000509: 43,3723 0067 EBANK= NEWJOB
055096,000510: 43,3723 66100 LSTBNKCH BBCON* # * CONSTANT, LAST BANK.
055097,000511:
End of include-file AGC_BLOCK_TWO_SELF_CHECK.agc. Parent file is MAIN.agc