Source Code
These source code files are a reconstruction of Sundance, the Apollo 9 LM (Lunar Module) AGC
(Apollo Guidance Computer) flight software, created from binary dumps of original core rope
program modules, as follows:
Since only binary dumps (rather than listings) of Sundance 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. |
050028,000002: ## Copyright: Public domain.
050029,000003: ## Filename: AGC_BLOCK_TWO_SELF-CHECK.agc
050030,000004: ## Purpose: A section of a reconstructed, mixed version of Sundance
050031,000005: ## It is part of the reconstructed source code for the Lunar
050032,000006: ## Module's (LM) Apollo Guidance Computer (AGC) for Apollo 9.
050033,000007: ## No original listings of this program are available;
050034,000008: ## instead, this file was created via disassembly of dumps
050035,000009: ## of various revisions of Sundance core rope modules.
050036,000010: ## Assembler: yaYUL
050037,000011: ## Contact: Ron Burkey <info@sandroid.org>.
050038,000012: ## Website: www.ibiblio.org/apollo/index.html
050039,000013: ## Mod history: 2020-06-17 MAS Created from Luminary 69.
050040,000014:
050041,000015: ## Sundance 306
050042,000016:
050043,000017: # PROGRAM DESCRIPTION DATE 20 DECEMBER 1967
050044,000018: # PROGRAM NAME - SELF-CHECK LOG SECTION AGC BLOCK TWO SELF-CHECK
050045,000019: # MOD NO - 1 ASSEMBLY SUBROUTINE UTILITYM REV 25
050046,000020: # MOD BY - GAUNTT
050047,000021:
050048,000022: # FUNCTIONAL DESCRIPTION
050049,000023: # PROGRAM HAS TWO MAIN PARTS. THE FIRST IS SELF-CHECK WHICH RUNS AS A ZERO PRIORITY JOB WITH NO CORE SET, AS
050050,000024: # PART OF THE BACK-UP IDLE LOOP. THE SECOND IS SHOW-BANKSUM WHICH RUNS AS A REGULAR EXECUTIVE JOB WITH ITS OWN
050051,000025: # STARTING VERB.
050052,000026: # THE PURPOSE OF SELF-CHECK IS TO CHECK OUT VARIOUS PARTS OF THE COMPUTER AS OUTLINED BELOW IN THE OPTIONS.
050053,000027: # THE PURPOSE OF SHOW-BANKSUM IS TO DISPLAY THE SUM OF EACH BANK, ONE AT A TIME.
050054,000028: # IN ALL THERE ARE 7 POSSIBLE OPTIONS IN THIS BLOCK II VERSION OF SELF-CHECK. MORE DETAIL DESCRIPTION MAY BE
050055,000029: # FOUND IN E-2065 BLOCK II AGC SELF-CHECK AND SHOW BANKSUM BY EDWIN D. SMALLY DECEMBER 1966, AND ADDENDA 2 AND 3.
050056,000030:
050057,000031: # THE DIFFERENT OPTIONS ARE CONTROLLED BY PUTTING DIFFERENT NUMBERS IN THE SMODE REGISTER (NOUN 27). BELOW IS
050058,000032: # A DESCRIPTION OF WHAT PARTS OF THE COMPUTER THAT ARE CHECKED BY THE OPTIONS, AND THE CORRESPONDING NUMBER, IN
050059,000033: # OCTAL, TO LOAD INTO SMODE.
050060,000034: # +-4 ERASABLE MEMORY
050061,000035: # +-5 FIXED MEMORY
050062,000036: # +-1,2,3,6,7,10 EVERYTHING IN OPTIONS 4 AND 5.
050063,000037: # -0 SAME AS +-10 UNTIL AN ERROR IS DETECTED.
050064,000038: # +0 NO CHECK, PUTS COMPUTER INTO THE BACKUP IDLE LOOP.
050065,000039:
050066,000040: # WARNINGS
050067,000041: # USE OF E MEMORY RESERVED FOR SELF-CHECK (EVEN IN IDLE LOOP) AS TEMP STORAGE BY OTHER PROGRAMS IS DANGEROUS.
050068,000042: # SMODE SET GREATER THAN OCT 10 PUTS COMPUTER INTO BACKUP IDLE LOOP.
050069,000043:
050070,000044: # CALLING SEQUENCE
050071,000045: # TO CALL SELF-CHECK KEY IN
050072,000046: # V 21 N 27 E OPTION NUMBER E
050073,000047: # TO CALL SHOW-BANKSUM KEY IN
050074,000048: # V 91 E DISPLAYS FIRST BANK
050075,000049: # V 33 E PROCEED, DISPLAYS NEXT BANK
050076,000050:
050077,000051: # EXIT MODES, NORMAL AND ALARM
050078,000052: # SELF-CHECK NORMALLY CONTINUES INDEFINITELY UNLESS THERE IS AN ERROR DETECTED. IF SO + OPTION NUMBERS PUT
050079,000053: # COMPUTER INTO BACKUP IDLE LOOP, - OPTION NUMBERS RESTART THE OPTION.
050080,000054: # THE -0 OPTION PROCEEDS FROM THE LINE FOLLOWING THE LINE WHERE THE ERROR WAS DETECTED.
050081,000055: # SHOW-BANKSUM PROCEEDS UNTIL A TERMINATE IS KEYED IN (V 34 E). THE COMPUTER IS PUT INTO THE BACKUP IDLE LOOP
050082,000056:
050083,000057: # OUTPUT
050084,000058: # SELF-CHECK UPON DETECTING AN ERROR LOADS THE SELF-CHECK ALARM CONSTANT (01102) INTO THE FAILREG SET AND
050085,000059: # TURNS ON THE ALARM LIGHT. THE OPERATOR MAY THEN DISPLAY THE THREE FAILREGS BY KEYING IN V 05 N 09 E. FOR FURTHER
050086,000060: # 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,
050087,000061: # IN R2 THE BBCON OF SELF-CHECK, AND IN R3 THE TOTAL NUMBER OF ERRORS DETECTED BY SELF-CHECK SINCE THE LAST MAN
050088,000062: # INITIATED FRESH START (SLAP1).
050089,000063:
050090,000064: # SHOW-BANKSUM STARTING WITH BANK 0 DISPLAYS IN R1 THE BANK SUM (A +-NUMBER EQUAL TO THE BANK NUMBER), IN R2
050091,000065: # THE BANK NUMBER, AND IN R3 THE BUGGER WORD.
050092,000066:
050093,000067: # ERASABLE INITIALIZATION REQUIRED
050094,000068: # ACCOMPLISHED BY FRESH START
050095,000069: # SMODE SET TO +0
050096,000070:
050097,000071: # DEBRIS
050098,000072: # ALL EXITS FROM THE CHECK OF ERASABLE (ERASCHK) RESTORE ORIGINAL CONTENTS TO REGISTERS UNDER CHECK.
050099,000073: # EXCEPTION IS A RESTART. RESTART THAT OCCURS DURING ERASCHK RESTORES ERASABLE, UNLESS THERE IS EVIDENCE TO DOUBT
050100,000074: # E MEMORY, IN WHICH CASE PROGRAM THEN DOES A FRESH START (DOFSTART).
050101,000075:
050102,000076: 25,3771 BANK 25
050103,000077: 43,2000 SETLOC SELFCHEC
050104,000078: 43,2000 BANK
050105,000079:
050106,000080: 43,3232 COUNT* $$/SELF
050107,000081: 43,3232 5026 SBIT1 EQUALS BIT1
050108,000082: 43,3232 5025 SBIT2 EQUALS BIT2
050109,000083: 43,3232 5024 SBIT3 EQUALS BIT3
050110,000084: 43,3232 5023 SBIT4 EQUALS BIT4
050111,000085: 43,3232 5022 SBIT5 EQUALS BIT5
050112,000086: 43,3232 5021 SBIT6 EQUALS BIT6
050113,000087: 43,3232 5020 SBIT7 EQUALS BIT7
050114,000088: 43,3232 5017 SBIT8 EQUALS BIT8
050115,000089: 43,3232 5016 SBIT9 EQUALS BIT9
050116,000090: 43,3232 5015 SBIT10 EQUALS BIT10
050117,000091: 43,3232 5014 SBIT11 EQUALS BIT11
050118,000092: 43,3232 5013 SBIT12 EQUALS BIT12
050119,000093: 43,3232 5012 SBIT13 EQUALS BIT13
050120,000094: 43,3232 5011 SBIT14 EQUALS BIT14
050121,000095: 43,3232 5010 SBIT15 EQUALS BIT15
050122,000096:
050123,000097: 43,3232 5030 S+ZERO EQUALS ZERO
050124,000098: 43,3232 5026 S+1 EQUALS BIT1
050125,000099: 43,3232 5025 S+2 EQUALS BIT2
050126,000100: 43,3232 6221 S+3 EQUALS THREE
050127,000101: 43,3232 5024 S+4 EQUALS FOUR
050128,000102: 43,3232 5031 S+5 EQUALS FIVE
050129,000103: 43,3232 6216 S+6 EQUALS SIX
050130,000104: 43,3232 5032 S+7 EQUALS SEVEN
050131,000105: 43,3232 4371 S8BITS EQUALS LOW8 # 00377
050132,000106: 43,3232 5041 CNTRCON = OCT50 # USED IN CNTRCHK
050133,000107: 43,3232 00061 ERASCON1 OCTAL 00061 # USED IN ERASCHK
050134,000108: 43,3233 01373 ERASCON2 OCTAL 01373 # USED IN ERASCHK
050135,000109: 43,3234 5057 ERASCON6 = OCT1400 # USED IN ERASCHK
050136,000110: 43,3234 01461 ERASCON3 OCTAL 01461 # USED IN ERASCHK
050137,000111: 43,3235 01773 ERASCON4 OCTAL 01773 # USED IN ERASCHK
050138,000112: 43,3236 5062 S10BITS EQUALS LOW10 # 01777, USED IN ERASCHK
050139,000113: 43,3236 5070 SBNK03 EQUALS PRIO6 # 06000, USED IN ROPECHK
050140,000114: 43,3236 4362 -MAXADRS = HI5 # FOR ROPECHK
050141,000115: 43,3236 00060 SIXTY OCTAL 00060
050142,000116: 43,3237 60017 SUPRCON OCTAL 60017 # USED IN ROPECHK
050143,000117: 43,3240 17777 S13BITS OCTAL 17777
050144,000118: 43,3241 25252 CONC+S1 OCTAL 25252 # USED IN CYCLSHFT
050145,000119: 43,3242 52400 CONC+S2 OCTAL 52400 # USED IN CYCLSHFT
050146,000120: 43,3243 76777 ERASCON5 OCTAL 76777
050147,000121: 43,3244 7716 S-7 = OCT77770
050148,000122: 43,3244 6066 S-4 EQUALS NEG4
050149,000123: 43,3244 7717 S-3 EQUALS NEG3
050150,000124: 43,3244 7720 S-2 EQUALS NEG2
050151,000125: 43,3244 7721 S-1 EQUALS NEGONE
050152,000126: 43,3244 5027 S-ZERO EQUALS NEG0
050153,000127:
050154,000128: 43,3244 E3,1400 EBANK= LST1
050155,000129: 43,3244 01371 ADRS1 ADRES SKEEP1
050156,000130: 43,3245 03336 SELFADRS ADRES SELFCHK # SELFCHK RETURN ADDRESS. SHOULD BE PUT
050157,000131: # IN SELFRET WHEN GOING FROM SELFCHK TO
050158,000132: # SHOWSUM AND PUT IN SKEEP1 WHEN GOING
050159,000133: # FROM SHOWSUM TO SELF-CHECK.
050160,000134:
050161,000135: 43,3246 31360 PRERRORS CA ERESTORE # IS IT NECESSARY TO RESTORE ERASABLE
050162,000136: 43,3247 00006 EXTEND
050163,000137: 43,3250 13257 BZF ERRORS # NO
050164,000138: 43,3251 00006 EXTEND
050165,000139: 43,3252 31376 DCA SKEEP5
050166,000140: 43,3253 51377 INDEX SKEEP7
050167,000141: 43,3254 52001 DXCH 0000 # RESTORE THE TWO ERASABLE REGISTERS
050168,000142: 43,3255 35030 CA S+ZERO
050169,000143: 43,3256 55360 TS ERESTORE
050170,000144: 43,3257 00004 ERRORS INHINT
050171,000145: 43,3260 30002 CA Q
050172,000146: 43,3261 55357 TS SFAIL # SAVE Q FOR FAILURE LOCATION
050173,000147: 43,3262 55363 TS ALMCADR # FOR DISPLAY WITH BBANK AND ERCOUNT
050174,000148: 43,3263 25365 INCR ERCOUNT # KEEP TRACK OF NUMBER OF MALFUNCTIONS.
050175,000149: 43,3264 05651 TCALARM2 TC ALARM2
050176,000150: 43,3265 01102 OCT 01102 # SELF-CHECK MALFUNCTION INDICATOR
050177,000151: 43,3266 11362 CCS SMODE
050178,000152: 43,3267 35030 SIDLOOP CA S+ZERO
050179,000153: 43,3270 55362 TS SMODE
050180,000154: 43,3271 03336 TC SELFCHK # GO TO IDLE LOOP
050181,000155: 43,3272 01357 TC SFAIL # CONTINUE WITH SELF-CHECK
050182,000156:
050183,000157: 43,3273 10000 -1CHK CCS A
050184,000158: 43,3274 13246 TCF PRERRORS
050185,000159: 43,3275 13246 TCF PRERRORS
050186,000160: 43,3276 10000 CCS A
050187,000161: 43,3277 13246 TCF PRERRORS
050188,000162: 43,3300 00002 TC Q
050189,000163:
050190,000164: 43,3301 00006 SMODECHK EXTEND
050191,000165: 43,3302 23371 QXCH SKEEP1
050192,000166: 43,3303 03332 TC CHECKNJ # CHECK FOR NEW JOB
050193,000167: 43,3304 11362 CCS SMODE
050194,000168: 43,3305 03312 TC SOPTIONS
050195,000169: 43,3306 03303 TC SMODECHK +2 # TO BACKUP IDLE LOOP
050196,000170: 43,3307 03312 TC SOPTIONS
050197,000171: 43,3310 25366 INCR SCOUNT
050198,000172: 43,3311 01371 TC SKEEP1 # CONTINUE WITH SELF-CHECK
050199,000173:
050200,000174: 43,3312 67716 SOPTIONS AD S-7
050201,000175: 43,3313 00006 EXTEND
050202,000176: 43,3314 63316 BZMF +2 # FOR OPTIONS BELOW NINE.
050203,000177: 43,3315 03267 BNKOPTN TC SIDLOOP # ILLEGAL OPTION. GO TO IDLE LOOP.
050204,000178: 43,3316 25366 INCR SCOUNT # FOR OPTIONS BELOW NINE.
050205,000179: 43,3317 65032 AD S+7
050206,000180:
050207,000181: 43,3320 50000 INDEX A
050208,000182: 43,3321 03322 TC SOPTION1
050209,000183: 43,3322 01371 SOPTION1 TC SKEEP1 # WAS TC+TCF
050210,000184: 43,3323 01371 SOPTION2 TC SKEEP1 # WAS IN:OUT1
050211,000185: 43,3324 01371 SOPTION3 TC SKEEP1 # WAS COUNTCHK
050212,000186: 43,3325 03337 SOPTION4 TC ERASCHK
050213,000187: 43,3326 03520 SOPTION5 TC ROPECHK
050214,000188: 43,3327 01371 SOPTION6 TC SKEEP1
050215,000189: 43,3330 01371 SOPTION7 TC SKEEP1
050216,000190: 43,3331 01371 SOPTON10 TC SKEEP1 # CONTINUE WITH SELF-CHECK
050217,000191:
050218,000192: 43,3332 00006 CHECKNJ EXTEND
050219,000193: 43,3333 23361 QXCH SELFRET # SAVE RETURN ADDRESS WHILE TESTING NEWJOB
050220,000194: 43,3334 04674 TC POSTJUMP # TO SEE IF ANY JOBS HAVE BECOME ACTIVE.
050221,000195: 43,3335 03025 CADR ADVAN
050222,000196:
050223,000197: 43,3336 03301 SELFCHK TC SMODECHK # ** CHARLEY, COME IN HERE
050224,000198:
050225,000199: # SKEEP7 HOLDS LOWEST OF TWO ADDRESSES BEING CHECKED.
050226,000200: # SKEEP6 HOLDS B(X+1).
050227,000201: # SKEEP5 HOLDS B(X).
050228,000202: # SKEEP4 HOLDS C(EBANK) DURING ERASLOOP AND CHECKNJ.
050229,000203: # SKEEP3 HOLDS LAST ADDRESS BEING CHECKED (HIGHEST ADDRESS).
050230,000204: # SKEEP2 CONTROLS CHECKING OF NON-SWITCHABLE ERASABLE MEMORY WITH BANK NUMBERS IN EB.
050231,000205: # ERASCHK TAKES APPROXMATELY 7 SECONDS
050232,000206:
050233,000207: 43,3337 35026 ERASCHK CA S+1
050234,000208: 43,3340 55372 TS SKEEP2
050235,000209: 43,3341 35030 0EBANK CA S+ZERO
050236,000210: 43,3342 54003 TS EBANK
050237,000211: 43,3343 33234 CA ERASCON3 # 01461
050238,000212: 43,3344 55377 TS SKEEP7 # STARTING ADDRESS
050239,000213: 43,3345 35062 CA S10BITS # 01777
050240,000214: 43,3346 55373 TS SKEEP3 # LAST ADDRESS CHECKED
050241,000215: 43,3347 03367 TC ERASLOOP
050242,000216:
050243,000217: 43,3350 35057 E134567B CA ERASCON6 # 01400
050244,000218: 43,3351 55377 TS SKEEP7 # STARTING ADDRESS
050245,000219: 43,3352 35062 CA S10BITS # 01777
050246,000220: 43,3353 55373 TS SKEEP3 # LAST ADDRESS CHECKED
050247,000221: 43,3354 03367 TC ERASLOOP
050248,000222:
050249,000223: 43,3355 35057 2EBANK CA ERASCON6 # 01400
050250,000224: 43,3356 55377 TS SKEEP7 # STARTING ADDRESS
050251,000225: 43,3357 33235 CA ERASCON4 # 01773
050252,000226: 43,3360 55373 TS SKEEP3 # LAST ADDRESS CHECKED
050253,000227: 43,3361 03367 TC ERASLOOP
050254,000228:
050255,000229: 43,3362 55372 NOEBANK TS SKEEP2 # +0
050256,000230: 43,3363 33232 CA ERASCON1 # 00061
050257,000231: 43,3364 55377 TS SKEEP7 # STARTING ADDRESS
050258,000232: 43,3365 33233 CA ERASCON2 # 01373
050259,000233: 43,3366 55373 TS SKEEP3 # LAST ADDRESS CHECKED
050260,000234:
050261,000235: 43,3367 00004 ERASLOOP INHINT
050262,000236: 43,3370 30003 CA EBANK # STORES C(EBANK)
050263,000237: 43,3371 55374 TS SKEEP4
050264,000238: 43,3372 00006 EXTEND
050265,000239: 43,3373 51377 NDX SKEEP7
050266,000240: 43,3374 30001 DCA 0000
050267,000241: 43,3375 53376 DXCH SKEEP5 # STORES C(X) AND C(X+1) IN SKEEP6 AND 5.
050268,000242: 43,3376 31377 CA SKEEP7
050269,000243: 43,3377 55360 TS ERESTORE # IF RESTART, RESTORE C(X) AND C(X+1)
050270,000244: 43,3400 54001 TS L
050271,000245: 43,3401 24001 INCR L
050272,000246: 43,3402 50000 NDX A
050273,000247: 43,3403 52001 DXCH 0000 # PUTS OWN ADDRESS IN X AND X +1
050274,000248: 43,3404 51377 NDX SKEEP7
050275,000249: 43,3405 40001 CS 0001 # CS X+1
050276,000250: 43,3406 51377 NDX SKEEP7
050277,000251: 43,3407 60000 AD 0000 # AD X
050278,000252: 43,3410 03273 TC -1CHK
050279,000253: 43,3411 31360 CA ERESTORE # HAS ERASABLE BEEN RESTORED
050280,000254: 43,3412 00006 EXTEND
050281,000255: 43,3413 13437 BZF ELOOPFIN # YES, EXIT ERASLOOP.
050282,000256: 43,3414 00006 EXTEND
050283,000257: 43,3415 51377 NDX SKEEP7
050284,000258: 43,3416 40001 DCS 0000 # COMPLEMENT OF ADDRESS OF X AND X+1
050285,000259: 43,3417 51377 NDX SKEEP7
050286,000260: 43,3420 52001 DXCH 0000 # PUT COMPLEMENT OF ADDRESS OF X AND X+1
050287,000261: 43,3421 51377 NDX SKEEP7
050288,000262: 43,3422 40000 CS 0000 # CS X
050289,000263: 43,3423 51377 NDX SKEEP7
050290,000264: 43,3424 60001 AD 0001 # AD X+1
050291,000265: 43,3425 03273 TC -1CHK
050292,000266: 43,3426 31360 CA ERESTORE # HAS ERASABLE BEEN RESTORED
050293,000267: 43,3427 00006 EXTEND
050294,000268: 43,3430 13437 BZF ELOOPFIN # YES, EXIT ERASLOOP.
050295,000269: 43,3431 00006 EXTEND
050296,000270: 43,3432 31376 DCA SKEEP5
050297,000271: 43,3433 51377 NDX SKEEP7
050298,000272: 43,3434 52001 DXCH 0000 # PUT B(X) AND B(X+1) BACK INTO X AND X+1
050299,000273: 43,3435 35030 CA S+ZERO
050300,000274: 43,3436 55360 TS ERESTORE # IF RESTART, DO NOT RESTORE C(X), C(X+1)
050301,000275: 43,3437 00003 ELOOPFIN RELINT
050302,000276: 43,3440 03332 TC CHECKNJ # CHECK FOR NEW JOB
050303,000277: 43,3441 31374 CA SKEEP4 # REPLACES B(EBANK)
050304,000278: 43,3442 54003 TS EBANK
050305,000279: 43,3443 25377 INCR SKEEP7
050306,000280: 43,3444 41377 CS SKEEP7
050307,000281: 43,3445 61373 AD SKEEP3
050308,000282: 43,3446 00006 EXTEND
050309,000283: 43,3447 13451 BZF +2
050310,000284: 43,3450 03367 TC ERASLOOP # GO TO NEXT ADDRESS IN SAME BANK
050311,000285: 43,3451 11372 CCS SKEEP2
050312,000286: 43,3452 03362 TC NOEBANK
050313,000287: 43,3453 25372 INCR SKEEP2 # PUT +1 IN SKEEP2.
050314,000288: 43,3454 30003 CA EBANK
050315,000289: 43,3455 65016 AD SBIT9
050316,000290: 43,3456 54003 TS EBANK
050317,000291: 43,3457 63243 AD ERASCON5 # 76777, CHECK FOR BANK E2
050318,000292: 43,3460 00006 EXTEND
050319,000293: 43,3461 13355 BZF 2EBANK
050320,000294: 43,3462 10003 CCS EBANK
050321,000295: 43,3463 03350 TC E134567B # GO TO EBANKS 1,3,4,5,6, AND 7
050322,000296: 43,3464 35057 CA ERASCON6 # END OF ERASCHK
050323,000297: 43,3465 54003 TS EBANK
050324,000298:
050325,000299: # CNTRCHK PERFORMS A CS OF ALL REGISTERS FROM OCT. 60 THROUGH OCT. 10.
050326,000300: # INCLUDED ARE ALL COUNTERS, T6-1, CYCLE AND SHIFT, AND ALL RUPT REGISTERS
050327,000301:
050328,000302: 43,3466 35041 CNTRCHK CA CNTRCON # 00050
050329,000303: 43,3467 55372 CNTRLOOP TS SKEEP2
050330,000304: 43,3470 65023 AD SBIT4 # +10 OCTAL
050331,000305: 43,3471 50000 INDEX A
050332,000306: 43,3472 40000 CS 0000
050333,000307: 43,3473 11372 CCS SKEEP2
050334,000308: 43,3474 03467 TC CNTRLOOP
050335,000309:
050336,000310: # CYCLSHFT CHECKS THE CYCLE AND SHIFT REGISTERS
050337,000311:
050338,000312: 43,3475 33241 CYCLSHFT CA CONC+S1 # 25252
050339,000313: 43,3476 54020 TS CYR # C(CYR) = 12525
050340,000314: 43,3477 54022 TS CYL # C(CYL) = 52524
050341,000315: 43,3500 54021 TS SR # C(SR) = 12525
050342,000316: 43,3501 54023 TS EDOP # C(EDOP) = 00125
050343,000317: 43,3502 60020 AD CYR # 37777 C(CYR) = 45252
050344,000318: 43,3503 60022 AD CYL # 00-12524 C(CYL) = 25251
050345,000319: 43,3504 60021 AD SR # 00-25251 C(SR) = 05252
050346,000320: 43,3505 60023 AD EDOP # 00-25376 C(EDOP) = +0
050347,000321: 43,3506 63242 AD CONC+S2 # C(CONC+S2) = 52400
050348,000322: 43,3507 03273 TC -1CHK
050349,000323: 43,3510 60020 AD CYR # 45252
050350,000324: 43,3511 60022 AD CYL # 72523
050351,000325: 43,3512 60021 AD SR # 77775
050352,000326: 43,3513 60023 AD EDOP # 77775
050353,000327: 43,3514 65026 AD S+1 # 77776
050354,000328: 43,3515 03273 TC -1CHK
050355,000329:
050356,000330: 43,3516 25367 INCR SCOUNT +1
050357,000331: 43,3517 03301 TC SMODECHK
050358,000332:
050359,000333: # SKEEP1 HOLDS SUM
050360,000334: # SKEEP2 HOLDS PRESENT CONTENTS OF ADDRESS IN ROPECHK AND SHOWSUM ROUTINES
050361,000335: # SKEEP2 HOLDS BANK NUMBER IN LOW ORDER BITS DURING SHOWSUM DISPLAY
050362,000336: # SKEEP3 HOLDS PRESENT ADDRESS (00000 TO 01777 IN COMMON FIXED BANKS)
050363,000337: # (04000 TO 07777 IN FXFX BANKS)
050364,000338: # SKEEP3 HOLDS BUGGER WORD DURING SHOWSUM DISPLAY
050365,000339: # SKEEP4 HOLDS BANK NUMBER AND SUPER BANK NUMBER
050366,000340: # SKEEP5 COUNTS 2 SUCCESSIVE TC SELF WORDS
050367,000341: # SKEEP6 CONTROLS ROPECHK OR SHOWSUM OPTION
050368,000342: # SKEEP7 CONTROLS WHEN ROUNTINE IS IN COMMON FIXED OR FIXED FIXED BANKS
050369,000343:
050370,000344: 43,3520 35027 ROPECHK CA S-ZERO # *
050371,000345: 43,3521 55376 TS SKEEP6 # * -0 FOR ROPECHK.
050372,000346: 43,3522 35030 STSHOSUM CA S+ZERO # * SHOULD BE ROPECHK
050373,000347:
050374,000348: 43,3523 55374 TS SKEEP4 # BANK NUMBER
050375,000349: 43,3524 35026 CA S+1
050376,000350: 43,3525 55377 COMMFX TS SKEEP7
050377,000351: 43,3526 35030 CA S+ZERO
050378,000352: 43,3527 55371 TS SKEEP1
050379,000353: 43,3530 55373 TS SKEEP3
050380,000354: 43,3531 35026 CA S+1
050381,000355: 43,3532 55375 TS SKEEP5 # COUNTS DOWN 2 TC SELF WORDS
050382,000356: 43,3533 31374 COMADRS CA SKEEP4
050383,000357: 43,3534 54001 TS L # TO SET SUPER BANK
050384,000358: 43,3535 74362 MASK HI5
050385,000359: 43,3536 61373 AD SKEEP3
050386,000360: 43,3537 04714 TC SUPDACAL # SUPER DATA CALL
050387,000361: 43,3540 03563 TC ADSUM
050388,000362: 43,3541 65014 AD SBIT11 # 02000
050389,000363: 43,3542 03574 TC ADRSCHK
050390,000364:
050391,000365: 43,3543 40000 FXFX CS A
050392,000366: 43,3544 55377 TS SKEEP7
050393,000367: 43,3545 00006 EXTEND
050394,000368: 43,3546 13551 BZF +3
050395,000369: 43,3547 35013 CA SBIT12 # 04000, STARTING ADDRESS OF BANK 02
050396,000370: 43,3550 03552 TC +2
050397,000371: 43,3551 35070 CA SBNK03 # 06000, STARTING ADDRESS OF BANK 03
050398,000372: 43,3552 55373 TS SKEEP3
050399,000373: 43,3553 35030 CA S+ZERO
050400,000374: 43,3554 55371 TS SKEEP1
050401,000375: 43,3555 35026 CA S+1
050402,000376: 43,3556 55375 TS SKEEP5 # COUNTS DOWN 2 TC SELF WORDS
050403,000377: 43,3557 51373 FXADRS INDEX SKEEP3
050404,000378: 43,3560 30000 CA 0000
050405,000379: 43,3561 03563 TC ADSUM
050406,000380: 43,3562 03574 TC ADRSCHK
050407,000381:
050408,000382: 43,3563 55372 ADSUM TS SKEEP2
050409,000383: 43,3564 61371 AD SKEEP1
050410,000384: 43,3565 55371 TS SKEEP1
050411,000385: 43,3566 35030 CAF S+ZERO
050412,000386: 43,3567 61371 AD SKEEP1
050413,000387: 43,3570 55371 TS SKEEP1
050414,000388: 43,3571 41372 CS SKEEP2
050415,000389: 43,3572 61373 AD SKEEP3
050416,000390: 43,3573 00002 TC Q
050417,000391:
050418,000392: 43,3574 22000 ADRSCHK LXCH A
050419,000393: 43,3575 31373 CA SKEEP3
050420,000394: 43,3576 75062 MASK LOW10 # RELATIVE ADDRESS
050421,000395: 43,3577 64362 AD -MAXADRS # SUBTRACT MAX RELATIVE ADDRESS = 1777.
050422,000396: 43,3600 00006 EXTEND
050423,000397: 43,3601 13670 BZF SOPTION # CHECKSUM FINISHED IF LAST ADDRESS.
050424,000398: 43,3602 11375 CCS SKEEP5 # IS CHECKSUM FINISHED
050425,000399: 43,3603 03606 TC +3 # NO
050426,000400: 43,3604 03606 TC +2 # NO
050427,000401: 43,3605 03670 TC SOPTION # GO TO ROPECHK SHOWSUM OPTION
050428,000402: 43,3606 10001 CCS L # -0 MEANS A TC SELF WORD.
050429,000403: 43,3607 03616 TC CONTINU
050430,000404: 43,3610 03616 TC CONTINU
050431,000405: 43,3611 03616 TC CONTINU
050432,000406: 43,3612 11375 CCS SKEEP5
050433,000407: 43,3613 03617 TC CONTINU +1
050434,000408: 43,3614 37721 CA S-1
050435,000409: 43,3615 03617 TC CONTINU +1 # AD IN THE BUGGER WORD
050436,000410: 43,3616 35026 CONTINU CA S+1 # MAKE SURE TWO CONSECUTIVE TC SELF WORDS
050437,000411: 43,3617 55375 TS SKEEP5
050438,000412: 43,3620 11376 CCS SKEEP6 # *
050439,000413: 43,3621 10067 CCS NEWJOB # * +1, SHOWSUM
050440,000414: 43,3622 05172 TC CHANG1 # *
050441,000415: 43,3623 03625 TC +2 # *
050442,000416: 43,3624 03332 TC CHECKNJ # -0 IN SKEEP6 FOR ROPECHK
050443,000417:
050444,000418: 43,3625 25373 ADRS+1 INCR SKEEP3
050445,000419: 43,3626 11377 CCS SKEEP7
050446,000420: 43,3627 03533 TC COMADRS
050447,000421: 43,3630 03533 TC COMADRS
050448,000422: 43,3631 03557 TC FXADRS
050449,000423: 43,3632 03557 TC FXADRS
050450,000424:
050451,000425: 43,3633 41374 NXTBNK CS SKEEP4
050452,000426: 43,3634 63723 AD LSTBNKCH # LAST BANK TO BE CHECKED
050453,000427: 43,3635 00006 EXTEND
050454,000428: 43,3636 13145 BZF ENDSUMS # END OF SUMMING OF BANKS.
050455,000429: 43,3637 31374 CA SKEEP4
050456,000430: 43,3640 65014 AD SBIT11
050457,000431: 43,3641 55374 TS SKEEP4 # 37 TO 40 INCRMTS SKEEP4 BY END RND CARRY
050458,000432: 43,3642 03646 TC CHKSUPR
050459,000433: 43,3643 35010 17TO20 CA SBIT15
050460,000434: 43,3644 27374 ADS SKEEP4 # SET FOR BANK 20
050461,000435: 43,3645 03662 TC GONXTBNK
050462,000436: 43,3646 74362 CHKSUPR MASK HI5
050463,000437: 43,3647 00006 EXTEND
050464,000438: 43,3650 13660 BZF NXTSUPR # INCREMENT SUPER BANK
050465,000439: 43,3651 63240 27TO30 AD S13BITS
050466,000440: 43,3652 00006 EXTEND
050467,000441: 43,3653 13655 BZF +2 # BANK SET FOR 30
050468,000442: 43,3654 03662 TC GONXTBNK
050469,000443: 43,3655 33236 CA SIXTY # FIRST SUPER BANK
050470,000444: 43,3656 27374 ADS SKEEP4
050471,000445: 43,3657 03662 TC GONXTBNK
050472,000446: 43,3660 63237 NXTSUPR AD SUPRCON # SET BNK 30 + INCR SUPR BNK AND CANCEL
050473,000447: 43,3661 27374 ADS SKEEP4 # ERC BIT OF THE 37 TO 40 ADVANCE.
050474,000448: 43,3662 11377 GONXTBNK CCS SKEEP7
050475,000449: 43,3663 03525 TC COMMFX
050476,000450: 43,3664 35026 CA S+1
050477,000451: 43,3665 03543 TC FXFX
050478,000452: 43,3666 35020 CA SBIT7 # HAS TO BE LARGER THAN NO OF FXSW BANKS.
050479,000453: 43,3667 03525 TC COMMFX
050480,000454:
050481,000455: 43,3670 31374 SOPTION CA SKEEP4
050482,000456: 43,3671 74362 MASK HI5 # = BANK BITS
050483,000457: 43,3672 04343 TC LEFT5
050484,000458: 43,3673 54001 TS L # BANK NUMBER BEFORE SUPER BANK
050485,000459: 43,3674 31374 CA SKEEP4
050486,000460: 43,3675 74371 MASK S8BITS # = SUPER BANK BITS
050487,000461: 43,3676 00006 EXTEND
050488,000462: 43,3677 13705 BZF SOPT # BEFORE SUPER BANK
050489,000463: 43,3700 54021 TS SR # SUPER BANK NECESSARY
050490,000464: 43,3701 30001 CA L
050491,000465: 43,3702 75032 MASK SEVEN
050492,000466: 43,3703 60021 AD SR
050493,000467: 43,3704 54001 TS L # BANK NUMBER WITH SUPER BANK
050494,000468: 43,3705 31376 SOPT CA SKEEP6 # *
050495,000469: 43,3706 00006 EXTEND # *
050496,000470: 43,3707 13711 BZF +2 # * ON -0 CONTINUE WITH ROPE CHECK.
050497,000471: 43,3710 03127 TC SDISPLAY # * ON +1 GO TO DISPLAY OF SUM.
050498,000472: 43,3711 11371 CCS SKEEP1 # FORCE SUM TO ABSOLUTE VALUE.
050499,000473: 43,3712 03714 TC +2
050500,000474: 43,3713 03715 TC +2
050501,000475: 43,3714 65026 AD S+1
050502,000476: 43,3715 55371 TS SKEEP1
050503,000477: 43,3716 40001 BNKCHK CS L # = - BANK NUMBER
050504,000478: 43,3717 61371 AD SKEEP1
050505,000479: 43,3720 67721 AD S-1
050506,000480: 43,3721 03273 TC -1CHK # CHECK SUM
050507,000481: 43,3722 03633 TC NXTBNK
050508,000482:
050509,000483: 43,3723 0067 EBANK= NEWJOB
050510,000484: 43,3723 66100 LSTBNKCH BBCON* # * CONSTANT, LAST BANK.
050511,000485:
End of include-file AGC_BLOCK_TWO_SELF-CHECK.agc. Parent file is MAIN.agc