Source Code
These source-code files are part of a reconstructed copy of Comanche 67, the
Apollo Guidance Computer (AGC) Command Module (CM) software for Apollo 12.
They have been adapted from sources files for Comanche 55, and updated via disassembly of binary dumps of original core rope memory modules, part numbers 2003972-1081, 2003972-1091, 2003972-1111, 2003972-1121, 2003972-1131, and 2003972-1141. Since only binary dumps (rather than listings) of Comanche 67 are available as source material, all comments and labels are approximate. They have been taken from other AGC programs where possible, or, in some places, written from scratch to match what we believe would have been in the original listing. |
057730,000002: ## Copyright: Public domain.
057731,000003: ## Filename: AGC_BLOCK_TWO_SELF-CHECK.agc
057732,000004: ## Purpose: A section of Comanche revision 067.
057733,000005: ## It is part of the reconstructed source code for the flight
057734,000006: ## software for the Command Module's (CM) Apollo Guidance Computer
057735,000007: ## (AGC) for Apollo 12. No original listings of this program are
057736,000008: ## available; instead, this file was created via dissassembly of
057737,000009: ## dumps of Comanche 067 core rope modules and comparison with
057738,000010: ## other AGC programs.
057739,000011: ## Assembler: yaYUL
057740,000012: ## Contact: Ron Burkey <info@sandroid.org>.
057741,000013: ## Website: www.ibiblio.org/apollo/index.html
057742,000014: ## Mod history: 2023-08-16 MAS Created from Comanche 055.
057743,000015:
057744,000016: # PROGRAM DESCRIPTION DATE 20 DECEMBER 1967
057745,000017: # PROGRAM NAME - SELF-CHECK LOG SECTION AGC BLOCK TWO SELF-CHECK
057746,000018: # MOD NO - 1 ASSEMBLY SUBROUTINE UTILITYM REV 25
057747,000019: # MOD BY - GAUNTT
057748,000020:
057749,000021: # FUNCTIONAL DESCRIPTION
057750,000022: # PROGRAM HAS TWO MAIN PARTS. THE FIRST IS SELF-CHECK WHICH RUNS AS A ZERO PRIORITY JOB WITH NO CORE SET, AS
057751,000023: # PART OF THE BACK-UP IDLE LOOP. THE SECOND IS SHOW-BANKSUM WHICH RUNS AS A REGULAR EXECUTIVE JOB WITH ITS OWN
057752,000024: # STARTING VERB.
057753,000025:
057754,000026: # THE PURPOSE OF SELF-CHECK IS TO CHECK OUT VARIOUS PARTS OF THE COMPUTER AS OUTLINED BELOW IN THE OPTIONS.
057755,000027:
057756,000028: # THE PURPOSE OF SHOW-BANKSUM IS TO DISPLAY THE SUM OF EACH BANK, ONE AT A TIME.
057757,000029:
057758,000030: # IN ALL THERE ARE 7 POSSIBLE OPTIONS IN THIS BLOCK II VERSION OF SELF-CHECK. MORE DETAIL DESCRIPTION MAY BE
057759,000031: # FOUND IN E-2065 BLOCK II AGC SELF-CHECK AND SHOW BANKSUM BY EDWIN D. SMALLY DECEMBER 1966, AND ADDENDA 2 AND 3.
057760,000032:
057761,000033: # THE DIFFERENT OPTIONS ARE CONTROLLED BY PUTTING DIFFERENT NUMBERS IN THE SMODE REGISTER (NOUN 27). BELOW IS
057762,000034: # A DESCRIPTION OF WHAT PARTS OF THE COMPUTER THAT ARE CHECKED BY THE OPTIONS, AND THE CORRESPONDING NUMBER, IN
057763,000035: # OCTAL, TO LOAD INTO SMODE.
057764,000036: # +-4 ERASABLE MEMORY
057765,000037: # +-5 FIXED MEMORY
057766,000038: # +-1,2,3,6,7,10 EVERYTHING IN OPTIONS 4 AND 5.
057767,000039: # -0 SAME AS +-10 UNTIL AN ERROR IS DETECTED.
057768,000040: # +0 NO CHECK, PUTS COMPUTER INTO THE BACKUP IDLE LOOP.
057769,000041:
057770,000042: # WARNINGS
057771,000043: # USE OF E MEMORY RESERVED FOR SELF-CHECK (EVEN IN IDLE LOOP) AS TEMP STORAGE BY OTHER PROGRAMS IS DANGEROUS.
057772,000044: # SMODE SET GREATER THAN OCT 10 PUTS COMPUTER INTO BACKUP IDLE LOOP.
057773,000045:
057774,000046: # CALLING SEQUENCE
057775,000047: # TO CALL SELF-CHECK KEY IN
057776,000048: # V 21 N 27 E OPTION NUMBER E
057777,000049: # TO CALL SHOW-BANKSUM KEY IN
057778,000050: # V 91 E DISPLAYS FIRST BANK
057779,000051: # V 33 E PROCEED, DISPLAYS NEXT BANK
057780,000052:
057781,000053: # EXIT MODES, NORMAL AND ALARM
057782,000054: # SELF-CHECK NORMALLY CONTINUES INDEFINITELY UNLESS THERE IS AN ERROR DETECTED. IF SO + OPTION NUMBERS PUT
057783,000055: # COMPUTER INTO BACKUP IDLE LOOP, - OPTION NUMBERS RESTART THE OPTION.
057784,000056:
057785,000057: # THE -0 OPTION PROCEEDS FROM THE LINE FOLLOWING THE LINE WHERE THE ERROR WAS DETECTED.
057786,000058:
057787,000059: # SHOW-BANKSUM PROCEEDS UNTIL A TERMINATE IS KEYED IN (V 34 E). THE COMPUTER IS PUT INTO THE BACKUP IDLE LOOP
057788,000060:
057789,000061: # OUTPUT
057790,000062: # SELF-CHECK UPON DETECTING AN ERROR LOADS THE SELF-CHECK ALARM CONSTANT (01102) INTO THE FAILREG SET AND
057791,000063: # TURNS ON THE ALARM LIGHT. THE OPERATOR MAY THEN DISPLAY THE THREE FAILREGS BY KEYING IN V 05 N 09 E. FOR FURTHER
057792,000064: # 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,
057793,000065: # IN R2 THE BBCON OF SELF-CHECK, AND IN R3 THE TOTAL NUMBER OF ERRORS DETECTED BY SELF-CHECK SINCE THE LAST MAN
057794,000066: # INITIATED FRESH START (SLAP1).
057795,000067:
057796,000068: # SHOW-BANKSUM STARTING WITH BANK 0 DISPLAYS IN R1 THE BANK SUM (A +-NUMBER EQUAL TO THE BANK NUMBER), IN R2
057797,000069: # THE BANK NUMBER, AND IN R3 THE BUGGER WORD.
057798,000070:
057799,000071: # ERASABLE INITIALIZATION REQUIRED
057800,000072: # ACCOMPLISHED BY FRESH START
057801,000073: # SMODE SET TO +0
057802,000074:
057803,000075: # DEBRIS
057804,000076: # ALL EXITS FROM THE CHECK OF ERASABLE (ERASCHK) RESTORE ORIGINAL CONTENTS TO REGISTERS UNDER CHECK.
057805,000077: # EXCEPTION IS A RESTART. RESTART THAT OCCURS DURING ERASCHK RESTORES ERASABLE, UNLESS THERE IS EVIDENCE TO DOUBT
057806,000078: # E MEMORY, IN WHICH CASE PROGRAM THEN DOES A FRESH START (DOFSTART).
057807,000079:
057808,000080: 25,3774 BANK 25
057809,000081: 43,2000 SETLOC SELFCHEC
057810,000082: 43,2000 BANK
057811,000083:
057812,000084: 43,3244 COUNT 43/SELF
057813,000085:
057814,000086: 43,3244 5033 SBIT1 EQUALS BIT1
057815,000087: 43,3244 5032 SBIT2 EQUALS BIT2
057816,000088: 43,3244 5031 SBIT3 EQUALS BIT3
057817,000089: 43,3244 5030 SBIT4 EQUALS BIT4
057818,000090: 43,3244 5027 SBIT5 EQUALS BIT5
057819,000091: 43,3244 5026 SBIT6 EQUALS BIT6
057820,000092: 43,3244 5025 SBIT7 EQUALS BIT7
057821,000093: 43,3244 5024 SBIT8 EQUALS BIT8
057822,000094: 43,3244 5023 SBIT9 EQUALS BIT9
057823,000095: 43,3244 5022 SBIT10 EQUALS BIT10
057824,000096: 43,3244 5021 SBIT11 EQUALS BIT11
057825,000097: 43,3244 5020 SBIT12 EQUALS BIT12
057826,000098: 43,3244 5017 SBIT13 EQUALS BIT13
057827,000099: 43,3244 5016 SBIT14 EQUALS BIT14
057828,000100: 43,3244 5015 SBIT15 EQUALS BIT15
057829,000101:
057830,000102: 43,3244 5035 S+ZERO EQUALS ZERO
057831,000103: 43,3244 5033 S+1 EQUALS BIT1
057832,000104: 43,3244 5032 S+2 EQUALS BIT2
057833,000105: 43,3244 6214 S+3 EQUALS THREE
057834,000106: 43,3244 5031 S+4 EQUALS FOUR
057835,000107: 43,3244 5036 S+5 EQUALS FIVE
057836,000108: 43,3244 6211 S+6 EQUALS SIX
057837,000109: 43,3244 5037 S+7 EQUALS SEVEN
057838,000110: 43,3244 4373 S8BITS EQUALS LOW8 # 00377
057839,000111: 43,3244 5047 CNTRCON = OCT50 # USED IN CNTRCHK
057840,000112: 43,3244 00061 ERASCON1 OCTAL 00061 # USED IN ERASCHK
057841,000113: 43,3245 01373 ERASCON2 OCTAL 01373 # USED IN ERASCHK
057842,000114: 43,3246 5065 ERASCON6 = OCT1400 # USED IN ERASCHK
057843,000115: 43,3246 01461 ERASCON3 OCTAL 01461 # USED IN ERASCHK
057844,000116: 43,3247 01773 ERASCON4 OCTAL 01773 # USED IN ERASCHK
057845,000117: 43,3250 5070 S10BITS EQUALS LOW10 # 01777, USED IN ERASCHK
057846,000118: 43,3250 5076 SBNK03 EQUALS PRIO6 # 06000, USED IN ROPECHK
057847,000119: 43,3250 4364 -MAXADRS = HI5 # FOR ROPECHK
057848,000120: 43,3250 00060 SIXTY OCTAL 00060
057849,000121: 43,3251 60017 SUPRCON OCTAL 60017 # USED IN ROPECHK
057850,000122: 43,3252 17777 S13BITS OCTAL 17777
057851,000123: 43,3253 25252 CONC+S1 OCTAL 25252 # USED IN CYCLSHFT
057852,000124: 43,3254 52400 CONC+S2 OCTAL 52400 # USED IN CYCLSHFT
057853,000125: 43,3255 76777 ERASCON5 OCTAL 76777
057854,000126: 43,3256 5735 S-7 = OCT77770
057855,000127: 43,3256 6061 S-4 EQUALS NEG4
057856,000128: 43,3256 7714 S-3 EQUALS NEG3
057857,000129: 43,3256 7715 S-2 EQUALS NEG2
057858,000130: 43,3256 7716 S-1 EQUALS NEGONE
057859,000131: 43,3256 5034 S-ZERO EQUALS NEG0
057860,000132:
057861,000133: 43,3256 E3,1400 EBANK= LST1
057862,000134: 43,3256 01371 ADRS1 ADRES SKEEP1
057863,000135: 43,3257 03350 SELFADRS ADRES SELFCHK # SELFCHK RETURN ADDRESS. SHOULD BE PUT
057864,000136: # IN SELFRET WHEN GOING FROM SELFCHK TO
057865,000137: # SHOWSUM AND PUT IN SKEEP1 WHEN GOING
057866,000138: # FROM SHOWSUM TO SELF-CHECK.
057867,000139:
057868,000140: 43,3260 31360 PRERRORS CA ERESTORE # IS IT NECESSARY TO RESTORE ERASABLE
057869,000141: 43,3261 00006 EXTEND
057870,000142: 43,3262 13271 BZF ERRORS # NO
057871,000143: 43,3263 00006 EXTEND
057872,000144: 43,3264 31376 DCA SKEEP5
057873,000145: 43,3265 51377 INDEX SKEEP7
057874,000146: 43,3266 52001 DXCH 0000 # RESTORE THE TWO ERASABLE REGISTERS
057875,000147: 43,3267 35035 CA S+ZERO
057876,000148: 43,3270 55360 TS ERESTORE
057877,000149: 43,3271 00004 ERRORS INHINT
057878,000150: 43,3272 30002 CA Q
057879,000151: 43,3273 55357 TS SFAIL # SAVE Q FOR FAILURE LOCATION
057880,000152: 43,3274 55363 TS ALMCADR # FOR DISPLAY WITH BBANK AND ERCOUNT
057881,000153: 43,3275 25365 INCR ERCOUNT # KEEP TRACK OF NUMBER OF MALFUNCTIONS.
057882,000154: 43,3276 05666 TCALARM2 TC ALARM2
057883,000155: 43,3277 01102 OCT 01102 # SELF-CHECK MALFUNCTION INDICATOR
057884,000156: 43,3300 11362 CCS SMODE
057885,000157: 43,3301 35035 SIDLOOP CA S+ZERO
057886,000158: 43,3302 55362 TS SMODE
057887,000159: 43,3303 03350 TC SELFCHK # GO TO IDLE LOOP
057888,000160: 43,3304 01357 TC SFAIL # CONTINUE WITH SELF-CHECK
057889,000161:
057890,000162: 43,3305 10000 -1CHK CCS A
057891,000163: 43,3306 13260 TCF PRERRORS
057892,000164: 43,3307 13260 TCF PRERRORS
057893,000165: 43,3310 10000 CCS A
057894,000166: 43,3311 13260 TCF PRERRORS
057895,000167: 43,3312 00002 TC Q
057896,000168:
057897,000169: 43,3313 00006 SMODECHK EXTEND
057898,000170: 43,3314 23371 QXCH SKEEP1
057899,000171: 43,3315 03344 TC CHECKNJ # CHECK FOR NEW JOB
057900,000172: 43,3316 11362 CCS SMODE
057901,000173: 43,3317 03324 TC SOPTIONS
057902,000174: 43,3320 03315 TC SMODECHK +2 # TO BACKUP IDLE LOOP
057903,000175: 43,3321 03324 TC SOPTIONS
057904,000176: 43,3322 25366 INCR SCOUNT
057905,000177: 43,3323 01371 TC SKEEP1 # CONTINUE WITH SELF-CHECK
057906,000178:
057907,000179: 43,3324 65735 SOPTIONS AD S-7
057908,000180: 43,3325 00006 EXTEND
057909,000181: 43,3326 63330 BZMF +2 # FOR OPTIONS BELOW NINE.
057910,000182: 43,3327 03301 BNKOPTN TC SIDLOOP # ILLEGAL OPTION. GO TO IDLE LOOP.
057911,000183: 43,3330 25366 INCR SCOUNT # FOR OPTIONS BELOW NINE.
057912,000184: 43,3331 65037 AD S+7
057913,000185:
057914,000186: 43,3332 50000 INDEX A
057915,000187: 43,3333 03334 TC SOPTION1
057916,000188: 43,3334 01371 SOPTION1 TC SKEEP1 # WAS TC+TCF
057917,000189: 43,3335 01371 SOPTION2 TC SKEEP1 # WAS IN:OUT1
057918,000190: 43,3336 01371 SOPTION3 TC SKEEP1 # WAS COUNTCHK
057919,000191: 43,3337 03351 SOPTION4 TC ERASCHK
057920,000192: 43,3340 03532 SOPTION5 TC ROPECHK
057921,000193: 43,3341 01371 SOPTION6 TC SKEEP1
057922,000194: 43,3342 01371 SOPTION7 TC SKEEP1
057923,000195: 43,3343 01371 SOPTON10 TC SKEEP1 # CONTINUE WITH SELF-CHECK
057924,000196:
057925,000197: 43,3344 00006 CHECKNJ EXTEND
057926,000198: 43,3345 23361 QXCH SELFRET # SAVE RETURN ADDRESS WHILE TESTING NEWJOB
057927,000199: 43,3346 04715 TC POSTJUMP # TO SEE IF ANY JOBS HAVE BECOME ACTIVE.
057928,000200: 43,3347 03231 CADR ADVAN
057929,000201:
057930,000202: 43,3350 03313 SELFCHK TC SMODECHK # ** CHARLEY, COME IN HERE
057931,000203:
057932,000204: # SKEEP7 HOLDS LOWEST OF TWO ADDRESSES BEING CHECKED.
057933,000205: # SKEEP6 HOLDS B(X+1).
057934,000206: # SKEEP5 HOLDS B(X).
057935,000207: # SKEEP4 HOLDS C(EBANK) DURING ERASLOOP AND CHECKNJ.
057936,000208: # SKEEP3 HOLDS LAST ADDRESS BEING CHECKED (HIGHEST ADDRESS).
057937,000209: # SKEEP2 CONTROLS CHECKING OF NON-SWITCHABLE ERASABLE MEMORY WITH BANK NUMBERS IN EB.
057938,000210:
057939,000211: # ERASCHK TAKES APPROXMATELY 7 SECONDS
057940,000212:
057941,000213: 43,3351 35033 ERASCHK CA S+1
057942,000214: 43,3352 55372 TS SKEEP2
057943,000215: 43,3353 35035 0EBANK CA S+ZERO
057944,000216: 43,3354 54003 TS EBANK
057945,000217: 43,3355 33246 CA ERASCON3 # 01461
057946,000218: 43,3356 55377 TS SKEEP7 # STARTING ADDRESS
057947,000219: 43,3357 35070 CA S10BITS # 01777
057948,000220: 43,3360 55373 TS SKEEP3 # LAST ADDRESS CHECKED
057949,000221: 43,3361 03401 TC ERASLOOP
057950,000222:
057951,000223: 43,3362 35065 E134567B CA ERASCON6 # 01400
057952,000224: 43,3363 55377 TS SKEEP7 # STARTING ADDRESS
057953,000225: 43,3364 35070 CA S10BITS # 01777
057954,000226: 43,3365 55373 TS SKEEP3 # LAST ADDRESS CHECKED
057955,000227: 43,3366 03401 TC ERASLOOP
057956,000228:
057957,000229: 43,3367 35065 2EBANK CA ERASCON6 # 01400
057958,000230: 43,3370 55377 TS SKEEP7 # STARTING ADDRESS
057959,000231: 43,3371 33247 CA ERASCON4 # 01773
057960,000232: 43,3372 55373 TS SKEEP3 # LAST ADDRESS CHECKED
057961,000233: 43,3373 03401 TC ERASLOOP
057962,000234:
057963,000235: 43,3374 55372 NOEBANK TS SKEEP2 # +0
057964,000236: 43,3375 33244 CA ERASCON1 # 00061
057965,000237: 43,3376 55377 TS SKEEP7 # STARTING ADDRESS
057966,000238: 43,3377 33245 CA ERASCON2 # 01373
057967,000239: 43,3400 55373 TS SKEEP3 # LAST ADDRESS CHECKED
057968,000240:
057969,000241: 43,3401 00004 ERASLOOP INHINT
057970,000242: 43,3402 30003 CA EBANK # STORES C(EBANK)
057971,000243: 43,3403 55374 TS SKEEP4
057972,000244: 43,3404 00006 EXTEND
057973,000245: 43,3405 51377 NDX SKEEP7
057974,000246: 43,3406 30001 DCA 0000
057975,000247: 43,3407 53376 DXCH SKEEP5 # STORES C(X) AND C(X+1) IN SKEEP6 AND 5.
057976,000248: 43,3410 31377 CA SKEEP7
057977,000249: 43,3411 55360 TS ERESTORE # IF RESTART, RESTORE C(X) AND C(X+1)
057978,000250: 43,3412 54001 TS L
057979,000251: 43,3413 24001 INCR L
057980,000252: 43,3414 50000 NDX A
057981,000253: 43,3415 52001 DXCH 0000 # PUTS OWN ADDRESS IN X AND X +1
057982,000254: 43,3416 51377 NDX SKEEP7
057983,000255: 43,3417 40001 CS 0001 # CS X+1
057984,000256: 43,3420 51377 NDX SKEEP7
057985,000257: 43,3421 60000 AD 0000 # AD X
057986,000258: 43,3422 03305 TC -1CHK
057987,000259: 43,3423 31360 CA ERESTORE # HAS ERASABLE BEEN RESTORED
057988,000260: 43,3424 00006 EXTEND
057989,000261: 43,3425 13451 BZF ELOOPFIN # YES, EXIT ERASLOOP.
057990,000262: 43,3426 00006 EXTEND
057991,000263: 43,3427 51377 NDX SKEEP7
057992,000264: 43,3430 40001 DCS 0000 # COMPLEMENT OF ADDRESS OF X AND X+1
057993,000265: 43,3431 51377 NDX SKEEP7
057994,000266: 43,3432 52001 DXCH 0000 # PUT COMPLEMENT OF ADDRESS OF X AND X+1
057995,000267: 43,3433 51377 NDX SKEEP7
057996,000268: 43,3434 40000 CS 0000 # CS X
057997,000269: 43,3435 51377 NDX SKEEP7
057998,000270: 43,3436 60001 AD 0001 # AD X+1
057999,000271: 43,3437 03305 TC -1CHK
058000,000272: 43,3440 31360 CA ERESTORE # HAS ERASABLE BEEN RESTORED
058001,000273: 43,3441 00006 EXTEND
058002,000274: 43,3442 13451 BZF ELOOPFIN # YES, EXIT ERASLOOP.
058003,000275: 43,3443 00006 EXTEND
058004,000276: 43,3444 31376 DCA SKEEP5
058005,000277: 43,3445 51377 NDX SKEEP7
058006,000278: 43,3446 52001 DXCH 0000 # PUT B(X) AND B(X+1) BACK INTO X AND X+1
058007,000279: 43,3447 35035 CA S+ZERO
058008,000280: 43,3450 55360 TS ERESTORE # IF RESTART, DO NOT RESTORE C(X), C(X+1)
058009,000281: 43,3451 00003 ELOOPFIN RELINT
058010,000282: 43,3452 03344 TC CHECKNJ # CHECK FOR NEW JOB
058011,000283: 43,3453 31374 CA SKEEP4 # REPLACES B(EBANK)
058012,000284: 43,3454 54003 TS EBANK
058013,000285: 43,3455 25377 INCR SKEEP7
058014,000286: 43,3456 41377 CS SKEEP7
058015,000287: 43,3457 61373 AD SKEEP3
058016,000288: 43,3460 00006 EXTEND
058017,000289: 43,3461 13463 BZF +2
058018,000290: 43,3462 03401 TC ERASLOOP # GO TO NEXT ADDRESS IN SAME BANK
058019,000291: 43,3463 11372 CCS SKEEP2
058020,000292: 43,3464 03374 TC NOEBANK
058021,000293: 43,3465 25372 INCR SKEEP2 # PUT +1 IN SKEEP2.
058022,000294: 43,3466 30003 CA EBANK
058023,000295: 43,3467 65023 AD SBIT9
058024,000296: 43,3470 54003 TS EBANK
058025,000297: 43,3471 63255 AD ERASCON5 # 76777, CHECK FOR BANK E2
058026,000298: 43,3472 00006 EXTEND
058027,000299: 43,3473 13367 BZF 2EBANK
058028,000300: 43,3474 10003 CCS EBANK
058029,000301: 43,3475 03362 TC E134567B # GO TO EBANKS 1,3,4,5,6, AND 7
058030,000302: 43,3476 35065 CA ERASCON6 # END OF ERASCHK
058031,000303: 43,3477 54003 TS EBANK
058032,000304:
058033,000305: # CNTRCHK PERFORMS A CS OF ALL REGISTERS FROM OCT. 60 THROUGH OCT. 10.
058034,000306: # INCLUDED ARE ALL COUNTERS, T6-1, CYCLE AND SHIFT, AND ALL RUPT REGISTERS
058035,000307:
058036,000308: 43,3500 35047 CNTRCHK CA CNTRCON # 00050
058037,000309: 43,3501 55372 CNTRLOOP TS SKEEP2
058038,000310: 43,3502 65030 AD SBIT4 # +10 OCTAL
058039,000311: 43,3503 50000 INDEX A
058040,000312: 43,3504 40000 CS 0000
058041,000313: 43,3505 11372 CCS SKEEP2
058042,000314: 43,3506 03501 TC CNTRLOOP
058043,000315:
058044,000316: # CYCLSHFT CHECKS THE CYCLE AND SHIFT REGISTERS
058045,000317:
058046,000318: 43,3507 33253 CYCLSHFT CA CONC+S1 # 25252
058047,000319: 43,3510 54020 TS CYR # C(CYR) = 12525
058048,000320: 43,3511 54022 TS CYL # C(CYL) = 52524
058049,000321: 43,3512 54021 TS SR # C(SR) = 12525
058050,000322: 43,3513 54023 TS EDOP # C(EDOP) = 00125
058051,000323: 43,3514 60020 AD CYR # 37777 C(CYR) = 45252
058052,000324: 43,3515 60022 AD CYL # 00-12524 C(CYL) = 25251
058053,000325: 43,3516 60021 AD SR # 00-25251 C(SR) = 05252
058054,000326: 43,3517 60023 AD EDOP # 00-25376 C(EDOP) = +0
058055,000327: 43,3520 63254 AD CONC+S2 # C(CONC+S2) = 52400
058056,000328: 43,3521 03305 TC -1CHK
058057,000329: 43,3522 60020 AD CYR # 45252
058058,000330: 43,3523 60022 AD CYL # 72523
058059,000331: 43,3524 60021 AD SR # 77775
058060,000332: 43,3525 60023 AD EDOP # 77775
058061,000333: 43,3526 65033 AD S+1 # 77776
058062,000334: 43,3527 03305 TC -1CHK
058063,000335:
058064,000336: 43,3530 25367 INCR SCOUNT +1
058065,000337: 43,3531 03313 TC SMODECHK
058066,000338:
058067,000339: # SKEEP1 HOLDS SUM
058068,000340: # SKEEP2 HOLDS PRESENT CONTENTS OF ADDRESS IN ROPECHK AND SHOWSUM ROUTINES
058069,000341: # SKEEP2 HOLDS BANK NUMBER IN LOW ORDER BITS DURING SHOWSUM DISPLAY
058070,000342: # SKEEP3 HOLDS PRESENT ADDRESS (00000 TO 01777 IN COMMON FIXED BANKS)
058071,000343: # (04000 TO 07777 IN FXFX BANKS)
058072,000344: # SKEEP3 HOLDS BUGGER WORD DURING SHOWSUM DISPLAY
058073,000345: # SKEEP4 HOLDS BANK NUMBER AND SUPER BANK NUMBER
058074,000346: # SKEEP5 COUNTS 2 SUCCESSIVE TC SELF WORDS
058075,000347: # SKEEP6 CONTROLS ROPECHK OR SHOWSUM OPTION
058076,000348: # SKEEP7 CONTROLS WHEN ROUNTINE IS IN COMMON FIXED OR FIXED FIXED BANKS
058077,000349:
058078,000350: 43,3532 35034 ROPECHK CA S-ZERO # *
058079,000351: 43,3533 55376 TS SKEEP6 # * -0 FOR ROPECHK.
058080,000352: 43,3534 35035 STSHOSUM CA S+ZERO # * SHOULD BE ROPECHK
058081,000353:
058082,000354: 43,3535 55374 TS SKEEP4 # BANK NUMBER
058083,000355: 43,3536 35033 CA S+1
058084,000356: 43,3537 55377 COMMFX TS SKEEP7
058085,000357: 43,3540 35035 CA S+ZERO
058086,000358: 43,3541 55371 TS SKEEP1
058087,000359: 43,3542 55373 TS SKEEP3
058088,000360: 43,3543 35033 CA S+1
058089,000361: 43,3544 55375 TS SKEEP5 # COUNTS DOWN 2 TC SELF WORDS
058090,000362: 43,3545 31374 COMADRS CA SKEEP4
058091,000363: 43,3546 54001 TS L # TO SET SUPER BANK
058092,000364: 43,3547 74364 MASK HI5
058093,000365: 43,3550 61373 AD SKEEP3
058094,000366: 43,3551 04731 TC SUPDACAL # SUPER DATA CALL
058095,000367: 43,3552 03575 TC ADSUM
058096,000368: 43,3553 65021 AD SBIT11 # 02000
058097,000369: 43,3554 03606 TC ADRSCHK
058098,000370:
058099,000371: 43,3555 40000 FXFX CS A
058100,000372: 43,3556 55377 TS SKEEP7
058101,000373: 43,3557 00006 EXTEND
058102,000374: 43,3560 13563 BZF +3
058103,000375: 43,3561 35020 CA SBIT12 # 04000, STARTING ADDRESS OF BANK 02
058104,000376: 43,3562 03564 TC +2
058105,000377: 43,3563 35076 CA SBNK03 # 06000, STARTING ADDRESS OF BANK 03
058106,000378: 43,3564 55373 TS SKEEP3
058107,000379: 43,3565 35035 CA S+ZERO
058108,000380: 43,3566 55371 TS SKEEP1
058109,000381: 43,3567 35033 CA S+1
058110,000382: 43,3570 55375 TS SKEEP5 # COUNTS DOWN 2 TC SELF WORDS
058111,000383: 43,3571 51373 FXADRS INDEX SKEEP3
058112,000384: 43,3572 30000 CA 0000
058113,000385: 43,3573 03575 TC ADSUM
058114,000386: 43,3574 03606 TC ADRSCHK
058115,000387:
058116,000388: 43,3575 55372 ADSUM TS SKEEP2
058117,000389: 43,3576 61371 AD SKEEP1
058118,000390: 43,3577 55371 TS SKEEP1
058119,000391: 43,3600 35035 CAF S+ZERO
058120,000392: 43,3601 61371 AD SKEEP1
058121,000393: 43,3602 55371 TS SKEEP1
058122,000394: 43,3603 41372 CS SKEEP2
058123,000395: 43,3604 61373 AD SKEEP3
058124,000396: 43,3605 00002 TC Q
058125,000397:
058126,000398: 43,3606 22000 ADRSCHK LXCH A
058127,000399: 43,3607 31373 CA SKEEP3
058128,000400: 43,3610 75070 MASK LOW10 # RELATIVE ADDRESS
058129,000401: 43,3611 64364 AD -MAXADRS # SUBTRACT MAX RELATIVE ADDRESS = 1777.
058130,000402: 43,3612 00006 EXTEND
058131,000403: 43,3613 13702 BZF SOPTION # CHECKSUM FINISHED IF LAST ADDRESS.
058132,000404: 43,3614 11375 CCS SKEEP5 # IS CHECKSUM FINISHED
058133,000405: 43,3615 03620 TC +3 # NO
058134,000406: 43,3616 03620 TC +2 # NO
058135,000407: 43,3617 03702 TC SOPTION # GO TO ROPECHK SHOWSUM OPTION
058136,000408: 43,3620 10001 CCS L # -0 MEANS A TC SELF WORD.
058137,000409: 43,3621 03630 TC CONTINU
058138,000410: 43,3622 03630 TC CONTINU
058139,000411: 43,3623 03630 TC CONTINU
058140,000412: 43,3624 11375 CCS SKEEP5
058141,000413: 43,3625 03631 TC CONTINU +1
058142,000414: 43,3626 37716 CA S-1
058143,000415: 43,3627 03631 TC CONTINU +1 # AD IN THE BUGGER WORD
058144,000416: 43,3630 35033 CONTINU CA S+1 # MAKE SURE TWO CONSECUTIVE TC SELF WORDS
058145,000417: 43,3631 55375 TS SKEEP5
058146,000418: 43,3632 11376 CCS SKEEP6 # *
058147,000419: 43,3633 10067 CCS NEWJOB # * +1, SHOWSUM
058148,000420: 43,3634 05200 TC CHANG1 # *
058149,000421: 43,3635 03637 TC +2 # *
058150,000422: 43,3636 03344 TC CHECKNJ # -0 IN SKEEP6 FOR ROPECHK
058151,000423:
058152,000424: 43,3637 25373 ADRS+1 INCR SKEEP3
058153,000425: 43,3640 11377 CCS SKEEP7
058154,000426: 43,3641 03545 TC COMADRS
058155,000427: 43,3642 03545 TC COMADRS
058156,000428: 43,3643 03571 TC FXADRS
058157,000429: 43,3644 03571 TC FXADRS
058158,000430:
058159,000431: 43,3645 41374 NXTBNK CS SKEEP4
058160,000432: 43,3646 63735 AD LSTBNKCH # LAST BANK TO BE CHECKED
058161,000433: 43,3647 00006 EXTEND
058162,000434: 43,3650 13010 BZF ENDSUMS # END OF SUMMING OF BANKS.
058163,000435: 43,3651 31374 CA SKEEP4
058164,000436: 43,3652 65021 AD SBIT11
058165,000437: 43,3653 55374 TS SKEEP4 # 37 TO 40 INCRMTS SKEEP4 BY END RND CARRY
058166,000438: 43,3654 03660 TC CHKSUPR
058167,000439: 43,3655 35015 17TO20 CA SBIT15
058168,000440: 43,3656 27374 ADS SKEEP4 # SET FOR BANK 20
058169,000441: 43,3657 03674 TC GONXTBNK
058170,000442: 43,3660 74364 CHKSUPR MASK HI5
058171,000443: 43,3661 00006 EXTEND
058172,000444: 43,3662 13672 BZF NXTSUPR # INCREMENT SUPER BANK
058173,000445: 43,3663 63252 27TO30 AD S13BITS
058174,000446: 43,3664 00006 EXTEND
058175,000447: 43,3665 13667 BZF +2 # BANK SET FOR 30
058176,000448: 43,3666 03674 TC GONXTBNK
058177,000449: 43,3667 33250 CA SIXTY # FIRST SUPER BANK
058178,000450: 43,3670 27374 ADS SKEEP4
058179,000451: 43,3671 03674 TC GONXTBNK
058180,000452: 43,3672 63251 NXTSUPR AD SUPRCON # SET BNK 30 + INCR SUPR BNK AND CANCEL
058181,000453: 43,3673 27374 ADS SKEEP4 # ERC BIT OF THE 37 TO 40 ADVANCE.
058182,000454: 43,3674 11377 GONXTBNK CCS SKEEP7
058183,000455: 43,3675 03537 TC COMMFX
058184,000456: 43,3676 35033 CA S+1
058185,000457: 43,3677 03555 TC FXFX
058186,000458: 43,3700 35025 CA SBIT7 # HAS TO BE LARGER THAN NO OF FXSW BANKS.
058187,000459: 43,3701 03537 TC COMMFX
058188,000460:
058189,000461: 43,3702 31374 SOPTION CA SKEEP4
058190,000462: 43,3703 74364 MASK HI5 # = BANK BITS
058191,000463: 43,3704 04345 TC LEFT5
058192,000464: 43,3705 54001 TS L # BANK NUMBER BEFORE SUPER BANK
058193,000465: 43,3706 31374 CA SKEEP4
058194,000466: 43,3707 74373 MASK S8BITS # = SUPER BANK BITS
058195,000467: 43,3710 00006 EXTEND
058196,000468: 43,3711 13717 BZF SOPT # BEFORE SUPER BANK
058197,000469: 43,3712 54021 TS SR # SUPER BANK NECESSARY
058198,000470: 43,3713 30001 CA L
058199,000471: 43,3714 75037 MASK SEVEN
058200,000472: 43,3715 60021 AD SR
058201,000473: 43,3716 54001 TS L # BANK NUMBER WITH SUPER BANK
058202,000474: 43,3717 31376 SOPT CA SKEEP6 # *
058203,000475: 43,3720 00006 EXTEND # *
058204,000476: 43,3721 13723 BZF +2 # * ON -0 CONTINUE WITH ROPE CHECK.
058205,000477: 43,3722 02772 TC SDISPLAY # * ON +1 GO TO DISPLAY OF SUM.
058206,000478: 43,3723 11371 CCS SKEEP1 # FORCE SUM TO ABSOLUTE VALUE.
058207,000479: 43,3724 03726 TC +2
058208,000480: 43,3725 03727 TC +2
058209,000481: 43,3726 65033 AD S+1
058210,000482: 43,3727 55371 TS SKEEP1
058211,000483: 43,3730 40001 BNKCHK CS L # = - BANK NUMBER
058212,000484: 43,3731 61371 AD SKEEP1
058213,000485: 43,3732 67716 AD S-1
058214,000486: 43,3733 03305 TC -1CHK # CHECK SUM
058215,000487: 43,3734 03645 TC NXTBNK
058216,000488:
058217,000489: 43,3735 0067 EBANK= NEWJOB
058218,000490: 43,3735 66100 LSTBNKCH BBCON* # * CONSTANT, LAST BANK.
058219,000491: 43,3736 30,2000 SBANK= LOWSUPER
058220,000492:
058221,000493:
End of include-file AGC_BLOCK_TWO_SELF-CHECK.agc. Parent file is MAIN.agc