Source Code
![]() |
These source-code files derive from a printout of Luminary 210 (Apollo 15-17
Lunar Module guidance computer program), from the personal library of
original AGC developer Don Eyles, digitally photographed at archive.org,
financially sponsored by Jim Lawton, and transcribed to source code by a
team of volunteers. This colorized, syntax-highlighted form was created
by assembling that transcribed source code. Note that the full page images
are available on the
Virtual AGC project page at archive.org, while reduced-size images
are presented at the VirtualAGC project website. Report or fix any
transcription errors at
the Virtual AGC project code repository. Notations on the program listing read, in part: GAP: ASSEMBLE REVISION 210 OF AGC PROGRAM LUMINARY BY NASA 2021112-161 17:11 MAR. 19,1971Note that the date is the date of the printout, not the date of the program revision. |
055257,000002: ## Copyright: Public domain.
055258,000003: ## Filename: AGC_BLOCK_TWO_SELF-CHECK.agc
055259,000004: ## Purpose: A section of Luminary revision 210.
055260,000005: ## It is part of the source code for the Lunar Module's (LM)
055261,000006: ## Apollo Guidance Computer (AGC) for Apollo 15-17.
055262,000007: ## This file is intended to be a faithful transcription, except
055263,000008: ## that the code format has been changed to conform to the
055264,000009: ## requirements of the yaYUL assembler rather than the
055265,000010: ## original YUL assembler.
055266,000011: ## Reference: pp. 1281-1290
055267,000012: ## Assembler: yaYUL
055268,000013: ## Contact: Ron Burkey <info@sandroid.org>.
055269,000014: ## Website: www.ibiblio.org/apollo/index.html
055270,000015: ## Mod history: 2016-11-17 JL Created from Luminary131 version.
055271,000016: ## 2016-12-03 JS Compared to Luminary210 images. Updated where needed.
055272,000017:
![]() |
Page 1281 |
055274,000019: # PROGRAM DESCRIPTION DATE 20 DECEMBER 1967
055275,000020: # PROGRAM NAME - SELF-CHECK LOG SECTION AGC BLOCK TWO SELF-CHECK
055276,000021: # MOD NO - 1 ASSEMBLY SUBROUTINE UTILITYM REV 25
055277,000022: # MOD BY - GAUNTT
055278,000023:
055279,000024: # FUNCTIONAL DESCRIPTION
055280,000025: # PROGRAM HAS TWO MAIN PARTS. THE FIRST IS SELF-CHECK WHICH RUNS AS A ZERO PRIORITY JOB WITH NO CORE SET, AS
055281,000026: # PART OF THE BACK-UP IDLE LOOP. THE SECOND IS SHOW-BANKSUM WHICH RUNS AS A REGULAR EXECUTIVE JOB WITH ITS OWN
055282,000027: # STARTING VERB.
055283,000028:
055284,000029: # THE PURPOSE OF SELF-CHECK IS TO CHECK OUT VARIOUS PARTS OF THE COMPUTER AS OUTLINED BELOW IN THE OPTIONS.
055285,000030:
055286,000031: # THE PURPOSE OF SHOW-BANKSUM IS TO DISPLAY THE SUM OF EACH BANK, ONE AT A TIME.
055287,000032:
055288,000033: # IN ALL THERE ARE 7 POSSIBLE OPTIONS IN THIS BLOCK II VERSION OF SELF-CHECK. MORE DETAIL DESCRIPTION MAY BE
055289,000034: # FOUND IN E-2065 BLOCK II AGC SELF-CHECK AND SHOW BANKSUM BY EDWIN D. SMALLY DECEMBER 1966, AND ADDENDA 2 AND 3.
055290,000035:
055291,000036: # THE DIFFERENT OPTIONS ARE CONTROLLED BY PUTTING DIFFERENT NUMBERS IN THE SMODE REGISTER (NOUN 27). BELOW IS
055292,000037: # A DESCRIPTION OF WHAT PARTS OF THE COMPUTER THAT ARE CHECKED BY THE OPTIONS, AND THE CORRESPONDING NUMBER, IN
055293,000038: # OCTAL, TO LOAD INTO SMODE.
055294,000039: # +-4 ERASABLE MEMORY
055295,000040: # +-5 FIXED MEMORY
055296,000041: # +-1,2,3,6,7,10 EVERYTHING IN OPTIONS 4 AND 5.
055297,000042: # -0 SAME AS +-10 UNTIL AN ERROR IS DETECTED.
055298,000043: # +0 NO CHECK, PUTS COMPUTER INTO THE BACKUP IDLE LOOP.
055299,000044:
055300,000045: # WARNINGS
055301,000046: # USE OF E MEMORY RESERVED FOR SELF-CHECK (EVEN IN IDLE LOOP) AS TEMP STORAGE BY OTHER PROGRAMS IS DANGEROUS.
055302,000047: # SMODE SET GREATER THAN OCT 10 PUTS COMPUTER INTO BACKUP IDLE LOOP.
055303,000048:
055304,000049: # CALLING SEQUENCE
055305,000050: # TO CALL SELF-CHECK KEY IN
055306,000051: # V 21 N 27 E OPTION NUMBER E
055307,000052: # TO CALL SHOW-BANKSUM KEY IN
055308,000053: # V 91 E DISPLAYS FIRST BANK
055309,000054: # V 33 E PROCEED, DISPLAYS NEXT BANK
055310,000055:
055311,000056: # EXIT MODES, NORMAL AND ALARM
055312,000057: # SELF-CHECK NORMALLY CONTINUES INDEFINITELY UNLESS THERE IS AN ERROR DETECTED. IF SO + OPTION NUMBERS PUT
055313,000058: # COMPUTER INTO BACKUP IDLE LOOP, - OPTION NUMBERS RESTART THE OPTION.
055314,000059:
055315,000060: # THE -0 OPTION PROCEEDS FROM THE LINE FOLLOWING THE LINE WHERE THE ERROR WAS DETECTED.
055316,000061:
055317,000062: # SHOW-BANKSUM PROCEEDS UNTIL A TERMINATE IS KEYED IN (V 34 E). THE COMPUTER IS PUT INTO THE BACKUP IDLE LOOP
055318,000063:
055319,000064: # OUTPUT
055320,000065:
![]() |
Page 1282 |
055322,000067: # SELF-CHECK UPON DETECTING AN ERROR LOADS THE SELF-CHECK ALARM CONSTANT (01102) INTO THE FAILREG SET AND
055323,000068: # TURNS ON THE ALARM LIGHT. THE OPERATOR MAY THEN DISPLAY THE THREE FAILREGS BY KEYING IN V 05 N 09 E. FOR FURTHER
055324,000069: # 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,
055325,000070: # IN R2 THE BBCON OF SELF-CHECK, AND IN R3 THE TOTAL NUMBER OF ERRORS DETECTED BY SELF-CHECK SINCE THE LAST MAN
055326,000071: # INITIATED FRESH START (SLAP1).
055327,000072:
055328,000073: # SHOW-BANKSUM STARTING WITH BANK 0 DISPLAYS IN R1 THE BANK SUM (A +-NUMBER EQUAL TO THE BANK NUMBER), IN R2
055329,000074: # THE BANK NUMBER, AND IN R3 THE BUGGER WORD.
055330,000075:
055331,000076: # ERASABLE INITIALIZATION REQUIRED
055332,000077: # ACCOMPLISHED BY FRESH START
055333,000078: # SMODE SET TO +0
055334,000079:
055335,000080: # DEBRIS
055336,000081: # ALL EXITS FROM THE CHECK OF ERASABLE (ERASCHK) RESTORE ORIGINAL CONTENTS TO REGISTERS UNDER CHECK.
055337,000082: # EXCEPTION IS A RESTART. RESTART THAT OCCURS DURING ERASCHK RESTORES ERASABLE, UNLESS THERE IS EVIDENCE TO DOUBT
055338,000083: # E MEMORY, IN WHICH CASE PROGRAM THEN DOES A FRESH START (DOFSTART).
055339,000084:
055340,000085: 25,3771 BANK 25
055341,000086: 43,2000 SETLOC SELFCHEC
055342,000087: 43,2000 BANK
055343,000088:
055344,000089: 43,3235 COUNT* $$/SELF
055345,000090: 43,3235 4744 SBIT1 EQUALS BIT1
055346,000091: 43,3235 4743 SBIT2 EQUALS BIT2
055347,000092: 43,3235 4742 SBIT3 EQUALS BIT3
055348,000093: 43,3235 4741 SBIT4 EQUALS BIT4
055349,000094: 43,3235 4740 SBIT5 EQUALS BIT5
055350,000095: 43,3235 4737 SBIT6 EQUALS BIT6
055351,000096: 43,3235 4736 SBIT7 EQUALS BIT7
055352,000097: 43,3235 4735 SBIT8 EQUALS BIT8
055353,000098: 43,3235 4734 SBIT9 EQUALS BIT9
055354,000099: 43,3235 4733 SBIT10 EQUALS BIT10
055355,000100: 43,3235 4732 SBIT11 EQUALS BIT11
055356,000101: 43,3235 4731 SBIT12 EQUALS BIT12
055357,000102: 43,3235 4730 SBIT13 EQUALS BIT13
055358,000103: 43,3235 4727 SBIT14 EQUALS BIT14
055359,000104: 43,3235 4726 SBIT15 EQUALS BIT15
055360,000105:
055361,000106: 43,3235 4746 S+ZERO EQUALS ZERO
055362,000107: 43,3235 4744 S+1 EQUALS BIT1
055363,000108: 43,3235 4743 S+2 EQUALS BIT2
055364,000109: 43,3235 6266 S+3 EQUALS THREE
055365,000110: 43,3235 4742 S+4 EQUALS FOUR
055366,000111: 43,3235 4747 S+5 EQUALS FIVE
055367,000112: 43,3235 6263 S+6 EQUALS SIX
055368,000113:
![]() |
Page 1283 |
055370,000115: 43,3235 4750 S+7 EQUALS SEVEN
055371,000116: 43,3235 4350 S8BITS EQUALS LOW8 # 00377
055372,000117: 43,3235 4762 CNTRCON = OCT50 # USED IN CNTRCHK
055373,000118: 43,3235 00061 ERASCON1 OCTAL 00061 # USED IN ERASCHK
055374,000119: 43,3236 01373 ERASCON2 OCTAL 01373 # USED IN ERASCHK
055375,000120: 43,3237 5000 ERASCON6 = OCT1400 # USED IN ERASCHK
055376,000121: 43,3237 01461 ERASCON3 OCTAL 01461 # USED IN ERASCHK
055377,000122: 43,3240 01773 ERASCON4 OCTAL 01773 # USED IN ERASCHK
055378,000123: 43,3241 5003 S10BITS EQUALS LOW10 # 01777, USED IN ERASCHK
055379,000124: 43,3241 5011 SBNK03 EQUALS PRIO6 # 06000, USED IN ROPECHK
055380,000125: 43,3241 4341 -MAXADRS = HI5 # FOR ROPECHK
055381,000126: 43,3241 00060 SIXTY OCTAL 00060
055382,000127: 43,3242 60017 SUPRCON OCTAL 60017 # USED IN ROPECHK
055383,000128: 43,3243 17777 S13BITS OCTAL 17777
055384,000129: 43,3244 25252 CONC+S1 OCTAL 25252 # USED IN CYCLSHFT
055385,000130: 43,3245 52400 CONC+S2 OCTAL 52400 # USED IN CYCLSHFT
055386,000131: 43,3246 76777 ERASCON5 OCTAL 76777
055387,000132: 43,3247 5652 S-7 = OCT77770
055388,000133: 43,3247 6133 S-4 EQUALS NEG4
055389,000134: 43,3247 7766 S-3 EQUALS NEG3
055390,000135: 43,3247 7767 S-2 EQUALS NEG2
055391,000136: 43,3247 7770 S-1 EQUALS NEGONE
055392,000137: 43,3247 4745 S-ZERO EQUALS NEG0
055393,000138:
055394,000139: 43,3247 E3,1400 EBANK= LST1
055395,000140: 43,3247 01371 ADRS1 ADRES SKEEP1
055396,000141: 43,3250 03341 SELFADRS ADRES SELFCHK # SELFCHK RETURN ADDRESS. SHOULD BE PUT
055397,000142: # IN SELFRET WHEN GOING FROM SELFCHK TO
055398,000143: # SHOWSUM AND PUT IN SKEEP1 WHEN GOING
055399,000144: # FROM SHOWSUM TO SELF-CHECK.
055400,000145:
055401,000146: 43,3251 31360 PRERRORS CA ERESTORE # IS IT NECESSARY TO RESTORE ERASABLE
055402,000147: 43,3252 00006 EXTEND
055403,000148: 43,3253 13262 BZF ERRORS # NO
055404,000149: 43,3254 00006 EXTEND
055405,000150: 43,3255 31376 DCA SKEEP5
055406,000151: 43,3256 51377 INDEX SKEEP7
055407,000152: 43,3257 52001 DXCH 0000 # RESTORE THE TWO ERASABLE REGISTERS
055408,000153: 43,3260 34746 CA S+ZERO
055409,000154: 43,3261 55360 TS ERESTORE
055410,000155: 43,3262 00004 ERRORS INHINT
055411,000156: 43,3263 30002 CA Q
055412,000157: 43,3264 55357 TS SFAIL # SAVE Q FOR FAILURE LOCATION
055413,000158: 43,3265 55363 TS ALMCADR # FOR DISPLAY WITH BBANK AND ERCOUNT
055414,000159: 43,3266 25365 INCR ERCOUNT # KEEP TRACK OF NUMBER OF MALFUNCTIONS.
055415,000160: 43,3267 05573 TCALARM2 TC ALARM2
055416,000161: 43,3270 01102 OCT 01102 # SELF-CHECK MALFUNCTION INDICATOR
055417,000162: 43,3271 11362 CCS SMODE
055418,000163: 43,3272 34746 SIDLOOP CA S+ZERO
055419,000164: 43,3273 55362 TS SMODE
055420,000165:
![]() |
Page 1284 |
055422,000167: 43,3274 03341 TC SELFCHK # GO TO IDLE LOOP
055423,000168: 43,3275 01357 TC SFAIL # CONTINUE WITH SELF-CHECK
055424,000169:
055425,000170: 43,3276 10000 -1CHK CCS A
055426,000171: 43,3277 13251 TCF PRERRORS
055427,000172: 43,3300 13251 TCF PRERRORS
055428,000173: 43,3301 10000 CCS A
055429,000174: 43,3302 13251 TCF PRERRORS
055430,000175: 43,3303 00002 TC Q
055431,000176:
055432,000177: 43,3304 00006 SMODECHK EXTEND
055433,000178: 43,3305 23371 QXCH SKEEP1
055434,000179: 43,3306 03335 TC CHECKNJ # CHECK FOR NEW JOB
055435,000180: 43,3307 11362 CCS SMODE
055436,000181: 43,3310 03315 TC SOPTIONS
055437,000182: 43,3311 03306 TC SMODECHK +2 # TO BACKUP IDLE LOOP
055438,000183: 43,3312 03315 TC SOPTIONS
055439,000184: 43,3313 25366 INCR SCOUNT
055440,000185: 43,3314 01371 TC SKEEP1 # CONTINUE WITH SELF-CHECK
055441,000186:
055442,000187: 43,3315 65652 SOPTIONS AD S-7
055443,000188: 43,3316 00006 EXTEND
055444,000189: 43,3317 63321 BZMF +2 # FOR OPTIONS BELOW NINE.
055445,000190: 43,3320 03272 BNKOPTN TC SIDLOOP # ILLEGAL OPTION. GO TO IDLE LOOP.
055446,000191: 43,3321 25366 INCR SCOUNT # FOR OPTIONS BELOW NINE.
055447,000192: 43,3322 64750 AD S+7
055448,000193:
055449,000194: 43,3323 50000 INDEX A
055450,000195: 43,3324 03325 TC SOPTION1
055451,000196: 43,3325 01371 SOPTION1 TC SKEEP1 # WAS TC+TCF
055452,000197: 43,3326 01371 SOPTION2 TC SKEEP1 # WAS IN:OUT1
055453,000198: 43,3327 01371 SOPTION3 TC SKEEP1 # WAS COUNTCHK
055454,000199: 43,3330 03342 SOPTION4 TC ERASCHK
055455,000200: 43,3331 03523 SOPTION5 TC ROPECHK
055456,000201: 43,3332 01371 SOPTION6 TC SKEEP1
055457,000202: 43,3333 01371 SOPTION7 TC SKEEP1
055458,000203: 43,3334 01371 SOPTON10 TC SKEEP1 # CONTINUE WITH SELF-CHECK
055459,000204:
055460,000205: 43,3335 00006 CHECKNJ EXTEND
055461,000206: 43,3336 23361 QXCH SELFRET # SAVE RETURN ADDRESS WHILE TESTING NEWJOB
055462,000207: 43,3337 04626 TC POSTJUMP # TO SEE IF ANY JOBS HAVE BECOME ACTIVE.
055463,000208: 43,3340 03216 CADR ADVAN
055464,000209:
055465,000210: 43,3341 03304 SELFCHK TC SMODECHK # ** CHARLEY, COME IN HERE
055466,000211:
055467,000212: # SKEEP7 HOLDS LOWEST OF TWO ADDRESSES BEING CHECKED.
055468,000213: # SKEEP6 HOLDS B(X+1).
055469,000214: # SKEEP5 HOLDS B(X).
055470,000215: # SKEEP4 HOLDS C(EBANK) DURING ERASLOOP AND CHECKNJ.
055471,000216: # SKEEP3 HOLDS LAST ADDRESS BEING CHECKED (HIGHEST ADDRESS).
055472,000217:
![]() |
Page 1285 |
055474,000219: # SKEEP2 CONTROLS CHECKING OF NON-SWITCHABLE ERASABLE MEMORY WITH BANK NUMBERS IN EB.
055475,000220:
055476,000221: # ERASCHK TAKES APPROXMATELY 7 SECONDS
055477,000222:
055478,000223: 43,3342 34744 ERASCHK CA S+1
055479,000224: 43,3343 55372 TS SKEEP2
055480,000225: 43,3344 34746 0EBANK CA S+ZERO
055481,000226: 43,3345 54003 TS EBANK
055482,000227: 43,3346 33237 CA ERASCON3 # 01461
055483,000228: 43,3347 55377 TS SKEEP7 # STARTING ADDRESS
055484,000229: 43,3350 35003 CA S10BITS # 01777
055485,000230: 43,3351 55373 TS SKEEP3 # LAST ADDRESS CHECKED
055486,000231: 43,3352 03372 TC ERASLOOP
055487,000232:
055488,000233: 43,3353 35000 E134567B CA ERASCON6 # 01400
055489,000234: 43,3354 55377 TS SKEEP7 # STARTING ADDRESS
055490,000235: 43,3355 35003 CA S10BITS # 01777
055491,000236: 43,3356 55373 TS SKEEP3 # LAST ADDRESS CHECKED
055492,000237: 43,3357 03372 TC ERASLOOP
055493,000238:
055494,000239: 43,3360 35000 2EBANK CA ERASCON6 # 01400
055495,000240: 43,3361 55377 TS SKEEP7 # STARTING ADDRESS
055496,000241: 43,3362 33240 CA ERASCON4 # 01773
055497,000242: 43,3363 55373 TS SKEEP3 # LAST ADDRESS CHECKED
055498,000243: 43,3364 03372 TC ERASLOOP
055499,000244:
055500,000245: 43,3365 55372 NOEBANK TS SKEEP2 # +0
055501,000246: 43,3366 33235 CA ERASCON1 # 00061
055502,000247: 43,3367 55377 TS SKEEP7 # STARTING ADDRESS
055503,000248: 43,3370 33236 CA ERASCON2 # 01373
055504,000249: 43,3371 55373 TS SKEEP3 # LAST ADDRESS CHECKED
055505,000250:
055506,000251: 43,3372 00004 ERASLOOP INHINT
055507,000252: 43,3373 30003 CA EBANK # STORES C(EBANK)
055508,000253: 43,3374 55374 TS SKEEP4
055509,000254: 43,3375 00006 EXTEND
055510,000255: 43,3376 51377 NDX SKEEP7
055511,000256: 43,3377 30001 DCA 0000
055512,000257: 43,3400 53376 DXCH SKEEP5 # STORES C(X) AND C(X+1) IN SKEEP6 AND 5.
055513,000258: 43,3401 31377 CA SKEEP7
055514,000259: 43,3402 55360 TS ERESTORE # IF RESTART, RESTORE C(X) AND C(X+1)
055515,000260: 43,3403 54001 TS L
055516,000261: 43,3404 24001 INCR L
055517,000262: 43,3405 50000 NDX A
055518,000263: 43,3406 52001 DXCH 0000 # PUTS OWN ADDRESS IN X AND X +1
055519,000264: 43,3407 51377 NDX SKEEP7
055520,000265: 43,3410 40001 CS 0001 # CS X+1
055521,000266: 43,3411 51377 NDX SKEEP7
055522,000267: 43,3412 60000 AD 0000 # AD X
055523,000268: 43,3413 03276 TC -1CHK
055524,000269: 43,3414 31360 CA ERESTORE # HAS ERASABLE BEEN RESTORED
055525,000270: 43,3415 00006 EXTEND
055526,000271:
![]() |
Page 1286 |
055528,000273: 43,3416 13442 BZF ELOOPFIN # YES, EXIT ERASLOOP.
055529,000274: 43,3417 00006 EXTEND
055530,000275: 43,3420 51377 NDX SKEEP7
055531,000276: 43,3421 40001 DCS 0000 # COMPLEMENT OF ADDRESS OF X AND X+1
055532,000277: 43,3422 51377 NDX SKEEP7
055533,000278: 43,3423 52001 DXCH 0000 # PUT COMPLEMENT OF ADDRESS OF X AND X+1
055534,000279: 43,3424 51377 NDX SKEEP7
055535,000280: 43,3425 40000 CS 0000 # CS X
055536,000281: 43,3426 51377 NDX SKEEP7
055537,000282: 43,3427 60001 AD 0001 # AD X+1
055538,000283: 43,3430 03276 TC -1CHK
055539,000284: 43,3431 31360 CA ERESTORE # HAS ERASABLE BEEN RESTORED
055540,000285: 43,3432 00006 EXTEND
055541,000286: 43,3433 13442 BZF ELOOPFIN # YES, EXIT ERASLOOP.
055542,000287: 43,3434 00006 EXTEND
055543,000288: 43,3435 31376 DCA SKEEP5
055544,000289: 43,3436 51377 NDX SKEEP7
055545,000290: 43,3437 52001 DXCH 0000 # PUT B(X) AND B(X+1) BACK INTO X AND X+1
055546,000291: 43,3440 34746 CA S+ZERO
055547,000292: 43,3441 55360 TS ERESTORE # IF RESTART, DO NOT RESTORE C(X), C(X+1)
055548,000293: 43,3442 00003 ELOOPFIN RELINT
055549,000294: 43,3443 03335 TC CHECKNJ # CHECK FOR NEW JOB
055550,000295: 43,3444 31374 CA SKEEP4 # REPLACES B(EBANK)
055551,000296: 43,3445 54003 TS EBANK
055552,000297: 43,3446 25377 INCR SKEEP7
055553,000298: 43,3447 41377 CS SKEEP7
055554,000299: 43,3450 61373 AD SKEEP3
055555,000300: 43,3451 00006 EXTEND
055556,000301: 43,3452 13454 BZF +2
055557,000302: 43,3453 03372 TC ERASLOOP # GO TO NEXT ADDRESS IN SAME BANK
055558,000303: 43,3454 11372 CCS SKEEP2
055559,000304: 43,3455 03365 TC NOEBANK
055560,000305: 43,3456 25372 INCR SKEEP2 # PUT +1 IN SKEEP2.
055561,000306: 43,3457 30003 CA EBANK
055562,000307: 43,3460 64734 AD SBIT9
055563,000308: 43,3461 54003 TS EBANK
055564,000309: 43,3462 63246 AD ERASCON5 # 76777, CHECK FOR BANK E2
055565,000310: 43,3463 00006 EXTEND
055566,000311: 43,3464 13360 BZF 2EBANK
055567,000312: 43,3465 10003 CCS EBANK
055568,000313: 43,3466 03353 TC E134567B # GO TO EBANKS 1,3,4,5,6, AND 7
055569,000314: 43,3467 35000 CA ERASCON6 # END OF ERASCHK
055570,000315: 43,3470 54003 TS EBANK
055571,000316:
055572,000317: # CNTRCHK PERFORMS A CS OF ALL REGISTERS FROM OCT. 60 THROUGH OCT. 10.
055573,000318: # INCLUDED ARE ALL COUNTERS, T6-1, CYCLE AND SHIFT, AND ALL RUPT REGISTERS
055574,000319:
055575,000320: 43,3471 34762 CNTRCHK CA CNTRCON # 00050
055576,000321: 43,3472 55372 CNTRLOOP TS SKEEP2
055577,000322: 43,3473 64741 AD SBIT4 # +10 OCTAL
055578,000323: 43,3474 50000 INDEX A
055579,000324: 43,3475 40000 CS 0000
055580,000325:
![]() |
Page 1287 |
055582,000327: 43,3476 11372 CCS SKEEP2
055583,000328: 43,3477 03472 TC CNTRLOOP
055584,000329:
055585,000330: # CYCLSHFT CHECKS THE CYCLE AND SHIFT REGISTERS
055586,000331:
055587,000332: 43,3500 33244 CYCLSHFT CA CONC+S1 # 25252
055588,000333: 43,3501 54020 TS CYR # C(CYR) = 12525
055589,000334: 43,3502 54022 TS CYL # C(CYL) = 52524
055590,000335: 43,3503 54021 TS SR # C(SR) = 12525
055591,000336: 43,3504 54023 TS EDOP # C(EDOP) = 00125
055592,000337: 43,3505 60020 AD CYR # 37777 C(CYR) = 45252
055593,000338: 43,3506 60022 AD CYL # 00-12524 C(CYL) = 25251
055594,000339: 43,3507 60021 AD SR # 00-25251 C(SR) = 05252
055595,000340: 43,3510 60023 AD EDOP # 00-25376 C(EDOP) = +0
055596,000341: 43,3511 63245 AD CONC+S2 # C(CONC+S2) = 52400
055597,000342: 43,3512 03276 TC -1CHK
055598,000343: 43,3513 60020 AD CYR # 45252
055599,000344: 43,3514 60022 AD CYL # 72523
055600,000345: 43,3515 60021 AD SR # 77775
055601,000346: 43,3516 60023 AD EDOP # 77775
055602,000347: 43,3517 64744 AD S+1 # 77776
055603,000348: 43,3520 03276 TC -1CHK
055604,000349:
055605,000350: 43,3521 25367 INCR SCOUNT +1
055606,000351: 43,3522 03304 TC SMODECHK
055607,000352:
055608,000353: # SKEEP1 HOLDS SUM
055609,000354: # SKEEP2 HOLDS PRESENT CONTENTS OF ADDRESS IN ROPECHK AND SHOWSUM ROUTINES
055610,000355: # SKEEP2 HOLDS BANK NUMBER IN LOW ORDER BITS DURING SHOWSUM DISPLAY
055611,000356: # SKEEP3 HOLDS PRESENT ADDRESS (00000 TO 01777 IN COMMON FIXED BANKS)
055612,000357: # (04000 TO 07777 IN FXFX BANKS)
055613,000358: # SKEEP3 HOLDS BUGGER WORD DURING SHOWSUM DISPLAY
055614,000359: # SKEEP4 HOLDS BANK NUMBER AND SUPER BANK NUMBER
055615,000360: # SKEEP5 COUNTS 2 SUCCESSIVE TC SELF WORDS
055616,000361: # SKEEP6 CONTROLS ROPECHK OR SHOWSUM OPTION
055617,000362: # SKEEP7 CONTROLS WHEN ROUNTINE IS IN COMMON FIXED OR FIXED FIXED BANKS
055618,000363:
055619,000364: 43,3523 34745 ROPECHK CA S-ZERO # *
055620,000365: 43,3524 55376 TS SKEEP6 # * -0 FOR ROPECHK.
055621,000366: 43,3525 34746 STSHOSUM CA S+ZERO # * SHOULD BE ROPECHK
055622,000367:
055623,000368: 43,3526 55374 TS SKEEP4 # BANK NUMBER
055624,000369: 43,3527 34744 CA S+1
055625,000370: 43,3530 55377 COMMFX TS SKEEP7
055626,000371: 43,3531 34746 CA S+ZERO
055627,000372: 43,3532 55371 TS SKEEP1
055628,000373: 43,3533 55373 TS SKEEP3
055629,000374: 43,3534 34744 CA S+1
055630,000375: 43,3535 55375 TS SKEEP5 # COUNTS DOWN 2 TC SELF WORDS
055631,000376: 43,3536 31374 COMADRS CA SKEEP4
055632,000377: 43,3537 54001 TS L # TO SET SUPER BANK
055633,000378: 43,3540 74341 MASK HI5
055634,000379:
![]() |
Page 1288 |
055636,000381: 43,3541 61373 AD SKEEP3
055637,000382: 43,3542 04642 TC SUPDACAL # SUPER DATA CALL
055638,000383: 43,3543 03566 TC ADSUM
055639,000384: 43,3544 64732 AD SBIT11 # 02000
055640,000385: 43,3545 03577 TC ADRSCHK
055641,000386:
055642,000387: 43,3546 40000 FXFX CS A
055643,000388: 43,3547 55377 TS SKEEP7
055644,000389: 43,3550 00006 EXTEND
055645,000390: 43,3551 13554 BZF +3
055646,000391: 43,3552 34731 CA SBIT12 # 04000, STARTING ADDRESS OF BANK 02
055647,000392: 43,3553 03555 TC +2
055648,000393: 43,3554 35011 CA SBNK03 # 06000, STARTING ADDRESS OF BANK 03
055649,000394: 43,3555 55373 TS SKEEP3
055650,000395: 43,3556 34746 CA S+ZERO
055651,000396: 43,3557 55371 TS SKEEP1
055652,000397: 43,3560 34744 CA S+1
055653,000398: 43,3561 55375 TS SKEEP5 # COUNTS DOWN 2 TC SELF WORDS
055654,000399: 43,3562 51373 FXADRS INDEX SKEEP3
055655,000400: 43,3563 30000 CA 0000
055656,000401: 43,3564 03566 TC ADSUM
055657,000402: 43,3565 03577 TC ADRSCHK
055658,000403:
055659,000404: 43,3566 55372 ADSUM TS SKEEP2
055660,000405: 43,3567 61371 AD SKEEP1
055661,000406: 43,3570 55371 TS SKEEP1
055662,000407: 43,3571 34746 CAF S+ZERO
055663,000408: 43,3572 61371 AD SKEEP1
055664,000409: 43,3573 55371 TS SKEEP1
055665,000410: 43,3574 41372 CS SKEEP2
055666,000411: 43,3575 61373 AD SKEEP3
055667,000412: 43,3576 00002 TC Q
055668,000413:
055669,000414: 43,3577 22000 ADRSCHK LXCH A
055670,000415: 43,3600 31373 CA SKEEP3
055671,000416: 43,3601 75003 MASK LOW10 # RELATIVE ADDRESS
055672,000417: 43,3602 64341 AD -MAXADRS # SUBTRACT MAX RELATIVE ADDRESS = 1777.
055673,000418: 43,3603 00006 EXTEND
055674,000419: 43,3604 13673 BZF SOPTION # CHECKSUM FINISHED IF LAST ADDRESS.
055675,000420: 43,3605 11375 CCS SKEEP5 # IS CHECKSUM FINISHED
055676,000421: 43,3606 03611 TC +3 # NO
055677,000422: 43,3607 03611 TC +2 # NO
055678,000423: 43,3610 03673 TC SOPTION # GO TO ROPECHK SHOWSUM OPTION
055679,000424: 43,3611 10001 CCS L # -0 MEANS A TC SELF WORD.
055680,000425: 43,3612 03621 TC CONTINU
055681,000426: 43,3613 03621 TC CONTINU
055682,000427: 43,3614 03621 TC CONTINU
055683,000428: 43,3615 11375 CCS SKEEP5
055684,000429: 43,3616 03622 TC CONTINU +1
055685,000430: 43,3617 37770 CA S-1
055686,000431:
![]() |
Page 1289 |
055688,000433: 43,3620 03622 TC CONTINU +1 # AD IN THE BUGGER WORD
055689,000434: 43,3621 34744 CONTINU CA S+1 # MAKE SURE TWO CONSECUTIVE TC SELF WORDS
055690,000435: 43,3622 55375 TS SKEEP5
055691,000436: 43,3623 11376 CCS SKEEP6 # *
055692,000437: 43,3624 10067 CCS NEWJOB # * +1, SHOWSUM
055693,000438: 43,3625 05113 TC CHANG1 # *
055694,000439: 43,3626 03630 TC +2 # *
055695,000440: 43,3627 03335 TC CHECKNJ # -0 IN SKEEP6 FOR ROPECHK
055696,000441:
055697,000442: 43,3630 25373 ADRS+1 INCR SKEEP3
055698,000443: 43,3631 11377 CCS SKEEP7
055699,000444: 43,3632 03536 TC COMADRS
055700,000445: 43,3633 03536 TC COMADRS
055701,000446: 43,3634 03562 TC FXADRS
055702,000447: 43,3635 03562 TC FXADRS
055703,000448:
055704,000449: 43,3636 41374 NXTBNK CS SKEEP4
055705,000450: 43,3637 63726 AD LSTBNKCH # LAST BANK TO BE CHECKED
055706,000451: 43,3640 00006 EXTEND
055707,000452: 43,3641 13130 BZF ENDSUMS # END OF SUMMING OF BANKS.
055708,000453: 43,3642 31374 CA SKEEP4
055709,000454: 43,3643 64732 AD SBIT11
055710,000455: 43,3644 55374 TS SKEEP4 # 37 TO 40 INCRMTS SKEEP4 BY END RND CARRY
055711,000456: 43,3645 03651 TC CHKSUPR
055712,000457: 43,3646 34726 17TO20 CA SBIT15
055713,000458: 43,3647 27374 ADS SKEEP4 # SET FOR BANK 20
055714,000459: 43,3650 03665 TC GONXTBNK
055715,000460: 43,3651 74341 CHKSUPR MASK HI5
055716,000461: 43,3652 00006 EXTEND
055717,000462: 43,3653 13663 BZF NXTSUPR # INCREMENT SUPER BANK
055718,000463: 43,3654 63243 27TO30 AD S13BITS
055719,000464: 43,3655 00006 EXTEND
055720,000465: 43,3656 13660 BZF +2 # BANK SET FOR 30
055721,000466: 43,3657 03665 TC GONXTBNK
055722,000467: 43,3660 33241 CA SIXTY # FIRST SUPER BANK
055723,000468: 43,3661 27374 ADS SKEEP4
055724,000469: 43,3662 03665 TC GONXTBNK
055725,000470: 43,3663 63242 NXTSUPR AD SUPRCON # SET BNK 30 + INCR SUPR BNK AND CANCEL
055726,000471: 43,3664 27374 ADS SKEEP4 # ERC BIT OF THE 37 TO 40 ADVANCE.
055727,000472: 43,3665 11377 GONXTBNK CCS SKEEP7
055728,000473: 43,3666 03530 TC COMMFX
055729,000474: 43,3667 34744 CA S+1
055730,000475: 43,3670 03546 TC FXFX
055731,000476: 43,3671 34736 CA SBIT7 # HAS TO BE LARGER THAN NO OF FXSW BANKS.
055732,000477: 43,3672 03530 TC COMMFX
055733,000478:
055734,000479: 43,3673 31374 SOPTION CA SKEEP4
055735,000480: 43,3674 74341 MASK HI5 # = BANK BITS
055736,000481: 43,3675 04322 TC LEFT5
055737,000482: 43,3676 54001 TS L # BANK NUMBER BEFORE SUPER BANK
055738,000483:
![]() |
Page 1290 |
055740,000485: 43,3677 31374 CA SKEEP4
055741,000486: 43,3700 74350 MASK S8BITS # = SUPER BANK BITS
055742,000487: 43,3701 00006 EXTEND
055743,000488: 43,3702 13710 BZF SOPT # BEFORE SUPER BANK
055744,000489: 43,3703 54021 TS SR # SUPER BANK NECESSARY
055745,000490: 43,3704 30001 CA L
055746,000491: 43,3705 74750 MASK SEVEN
055747,000492: 43,3706 60021 AD SR
055748,000493: 43,3707 54001 TS L # BANK NUMBER WITH SUPER BANK
055749,000494: 43,3710 31376 SOPT CA SKEEP6 # *
055750,000495: 43,3711 00006 EXTEND # *
055751,000496: 43,3712 13714 BZF +2 # * ON -0 CONTINUE WITH ROPE CHECK.
055752,000497: 43,3713 03112 TC SDISPLAY # * ON +1 GO TO DISPLAY OF SUM.
055753,000498: 43,3714 11371 CCS SKEEP1 # FORCE SUM TO ABSOLUTE VALUE.
055754,000499: 43,3715 03717 TC +2
055755,000500: 43,3716 03720 TC +2
055756,000501: 43,3717 64744 AD S+1
055757,000502: 43,3720 55371 TS SKEEP1
055758,000503: 43,3721 40001 BNKCHK CS L # = - BANK NUMBER
055759,000504: 43,3722 61371 AD SKEEP1
055760,000505: 43,3723 67770 AD S-1
055761,000506: 43,3724 03276 TC -1CHK # CHECK SUM
055762,000507: 43,3725 03636 TC NXTBNK
055763,000508:
055764,000509: 43,3726 0067 EBANK= NEWJOB
055765,000510: 43,3726 66100 LSTBNKCH BBCON* # * CONSTANT, LAST BANK.
End of include-file AGC_BLOCK_TWO_SELF-CHECK.agc. Parent file is MAIN.agc