return to main page
This is Ed Thelen, (Web) Recorder for the 1401 Restoration Project.
In 1963, after fixing GE-225s (and competing with IBM equipment) "in the field", I transferred to GE Computer Division headquarters in Phoenix to write diagnostic software (I was now paid to do my hobby ;-)) And hanging around and making myself useful, I got into timesharing (Dartmouth variety) and system software :-))
- Bill Selmier got the German "IBM" card decks available on other media (CD ROM)
- I posted them.
- Van Snyder "reverse engineered" several and recognized that they were IBM 1401 tests.
- Van also spotted documents and software at this Paul Pierce's web page.
- Diagnostics Catalog, with links to items
- Unfortunately, a large part of the computer has to be working well inorder to run the test software.
- Ron Williams and the 1401 processor team has not gotten "our" 1401 up to this state yet (July 2005).
We currently have: (Notes by Bob Feretich July 21, 2005 )
Diagnostics Catalog .
Diagnostic Chaining Routine Flow Chart
The Chaining Routine has three functions: 1. It causes the first test program card to be read. 2. It is called [sic] by the test program to read its Detail Cards. 3. It causes the Title Card of the next test to be read.
When the Chaining Routine is reading cards, an "A" in column 80 indicates that it has read the Title Card of the next test. The lack of an "A" in column 80, causes a branch to location 421, which is defined as a standard test loop entry point. (Test 0003, because it was testing the sense switches rather then using them to control test execution, did not use the standard test loop structure. Since test 0003 does not use detail cards, it should never branch to its location 421 (the middle of an instruction).
Diagnostic General Flow Chart
Sense Switch definitions: B on Loops a portion of the test for scoping purposes. C on Causes correct operation to print out. D on Loops entire program (uses entry point 421). E on Causes program to Halt on error. F&G use varies with specific test.
The following was from Bob Feretich July 21, 2005 - some quoted above -
The notebook immediately solved several mysteries. Deck Structure: Each test deck may include... A. Title Card B. Set WM Card C. Packed Cards (the standard Chaining Routine) D. Packed Cards (the test program) E. Clear WM Card F. Trailer Card G. Detail Cards (optional data input to the test program) The "Title Card" (the first card in the deck) has two functions. 1. When the deck is run separately, it sets WMs, reads the next card and branches to 001. 2. When the tests are run consecutively (chained), the "A" in column 80 will be recognized by the "chaining routine" of the previous test and cause the test to finish and cleanly transfer control to the new test. (Basically, it acts as an end-of-file indicator for SYSIN.) This works when read via the card reader and from tape. The Chaining Routine has three functions: 1. It causes the first test program card to be read. 2. It is called [sic] by the test program to read its Detail Cards. 3. It causes the Title Card of the next test to be read. When the Chaining Routine is reading cards, an "A" in column 80 indicates that it has read the Title Card of the next test. The lack of an "A" in column 80, causes a branch to location 421, which is defined as a standard test loop entry point. (Test 0003, because it was testing the sense switches rather then using them to control test execution, did not use the standard test loop structure. Since test 0003 does not use detail cards, it should never branch to its location 421 (the middle of an instruction). Sense Switch definitions: B on Loops a portion of the test for scoping purposes. C on Causes correct operation to print out. D on Loops entire program (uses entry point 421). E on Causes program to Halt on error. F&G use varies with specific test. Special Core Memory Locations: 1252 (S52) = if set to a "1", causes test to print test title. Beyond this the use seems inconsistent. For some tests, the lack of a "1" suppresses all line printer output. Instead, "Halt" instructions are used. 1288 (S88) The entry point of the "Tape Chaining Routine" that causes the next record to be read. It seems that tests are not supposed to read their own data records. They call the Chaining Routine, which reads the next record from either Cards or Tape, whichever is appropriate. This keeps the test programs "load source independent". Using Tape: Instructions are provided on how to write these tests to tape and how to run them from tape. Regards, Bob Feretich
The following was a response from Bob Feretich to Van Snyder about Paul Pierce's web page - mentioned above -
I downloaded Paul Pierce's 75dpi manual. Comparing the Introduction section: Paul's version Our version PN 451398 PN 451398 ECN 110378B ECN 117628, hand upgraded to TA1976 Dated None Dated 6/29/63, upgraded to 10/17/63 Our manual (notebook) contains an ECN history. ECN number 110378 was issued 2/2/61. By the ECN, it seems as if our manual is a later version. It may also correlate better with the test decks that we have. We can refer to Paul's version for the pages that we are missing. The notebook that we found describes more tests than Paul's. Ours describes several tape oriented tests and other feature tests (XSS-Space suppression, Branch on xxx error tests). But, we are missing some descriptions that Paul's manual has and Paul's is more readable that ours. For example, Our manual does not contain descriptions of tests 0000 through 0003, and the pages in our manual yellowed causing much background noise on the pages. Used together, the pair of manuals should be more than sufficient in helping us effectively use the diagnostics. Our manual also has instructions on how to create a diagnostic tape from the card decks and use it. Regards, Bob Feretich
1401 DIAGNOSTIC FUNCTION TESTS
Note: All "notebook" links below this point are to .pdf files which are 200 K bytes to 2 megabytes
The unusually large size is due to the very high noise content of the images :-(( "deck 1/line" links to decks containing one instruction per line, with comments "deck comprsd" links to decks that contain multiple instructions per line, no comments "X" indicates ASCII translation probably present - not too well checked "?" indicates not sure what - deck label is odd "xxxx" indicates illegal BCD punches in deck - bad ASCII translation not visually usable, source deck (".crd" in directory) likely OK
The note book had a
- Correction List - Section on Decks on Tape
and this Packing Sheet / Table of Contents
Paul McJones has kindly scanned in and made .pdf copies of the notebook tests after TRUE ADD. This was into three files totaling over 200 megabytes. - If you want me to place one or more of the tests onto the web site, please advise. The noise level of the notebook is so great that OCR is painful, easier to retype?
PART NUMBER BLOCK NUMBER MFI TEST TITLE note
451397 . . TABLE OF CONTENTS . . . . . . Test Descriptions Y . . 451398 . . GENERAL INFORMATION Y . . 451402 0050B DA TEST CHARACTER AND BRANCH Y Y Y 451403 0060B BA TEST FOR ZONE OR WM AND BRANCH Y Y Y 451404 0100B BA COMPARE AND BRANCH UNEQUAL Y Y Y 451405 0110B BA LOAD MOVE COMPARE Y Y Y 451407 0210B BA LOAD MOVE DIGIT ZONE Y Y Y 451409 0230B BA MOVE AND ZERO SUPPRESS Y Y Y 451410 0300B BA TRUE ADD Y Y Y 451411 0310B BA COMPLEMENT AND RECOMPLEMENT ADD . Y Y 451413 0330B BA RESET ADD AND SUBTRACT Y Y Y 451415 0350B BA ZONE ADD Y Y Y 451416 0360B BA BRANCH OVERFLOW Y Y Y 451417 0370D BA EDIT AND EXPANDED EDIT Y Y Y 451634 1000B BA READ PUNCH PRINT SPEED Y Y Y 451418 1010C BA PRINT WORD MARKS Y Y Y 451419 1020B BA RIPPLE PRINT Y Y Y 451476 1022B NU NUMERICAL RIPPLE PRINT Y . . 451966 1025A NU Multi Tape Lister A Y . . 451966 1026A NU Multi Tape Lister B Y . . 451420 1030B BA RIPPLE PUNCH Y Y Y 451421 1040B BA RIPPLE READ Y Y Y 451422 1050B BA PRINT PUNCH Y Y Y 451423 1060B BA PRINT READ Y Y Y 451424 1070B BA READ PUNCH Y . Y 451425 1080B BA PRINT READ PUNCH Y . Y 451426 2000C BA FORMS SPACING Y ? Y 451926 2005A BA SINGLE LINE SKIP Y . Y 451427 2010B BA FORMS SKIPPING Y . Y 451428 2020C BA CHANNEL 9 AND 12 LATCHES Y ? ? 451932 2030B XSS SPACE SUPPRESSION Y . . 451429 3000C CH MOVE AND BINARY DECODE . . . 451430 3010C CH MOVE AND BINARY CODE . . . 451431 3020C CH PUNCH COLUMN BINARY . . . 451432 3030C CH READ COLUMN BINARY . . . 451433 3040F CH BIT TEST Y . . 451434 3100D IN INDEXING AND STORE STARS Y ? Y PART NUMBER BLOCK NUMBER MFI TEST TITLE note
451436 3110D IN MOVE RECORD Y . Y 451438 3130D IN I-STAR TRANSFER Y . Y 451439 3200D MD MULTIPLY Y . . 451440 3210B MD DIVIDE Y . . 451442 3300B HL BRANCH HIGH Y . Y 451443 3310B HL BRANCH LOW Y . Y 451444 3320B HL BRANCH EQUAL Y . Y 451935 3330B HL Hi-Lo-Equal FIELD COMPARE Y . Y 451445 3500C FP READ+PUNCH RELEASE Y ? Y 451563 3502B FP + RP PUNCH FEED READ RELEASE Y . Y 451929 3504A BA PUNCH CHECK PLANE TEST Y ? Y 451446 3600E RP PUNCH FEED READ Y ? Y 451479 3700B 8M,12M.16M MODIFY ADDRESS Y . Y 451482 3800A FCF 5I-COLUMN READ Y . . 451450 5000C MT CARD TO TAPE Y . Y 451451 5010C MT TAPE TO PUNCH/PRINTER Y . . 451452 5020C MT TAPE TO TAPE Y . Y 451453 5030C MT BACKSPACE SKIP Y . Y 451454 5040D MT MOVE TAPE Y . Y 451455 5050D MT LOAD TAPE Y . Y 451451 5070D MT MOVE BINARY TAPE . . . 451527 5080C MT VERTICAL REDUNDANCY CHECK Y . Y 451458 5300E MT WRITE TEST TAPE ROUTINE Y . Y 451459 5310E MT READ TEST TAPE ROUTINE Y . Y 451460 5320E MT COPY TEST TAPE ROUTINE Y . Y 451461 5330C CW COMPRESSED TAPE READ AND EXPAND Y . . 451217 5500D MT I R G MEASUREMENT FOR 729 Y . Y 451639 5530B MT 7330 I R G MEASUREMENT Y . . - C8001 MT 1407 Console Unit Test Y . . 451447 9000C BA SELECT STACKER . ? Y 451515 9010D BA BRANCH ON PRINTER ERROR . . Y 451518 9020D BA BRANCH ON PROCESS ERROR . . Y 451521 9030B BA BRANCH ON READER ERROR . . xxxx 451524 90400 BA BRANCH ON PUNCH ERROR . . xxxx 451448 9100F BA STORAGE WORST PATTERN . . . 451449 9999B BA BRANCH LAST CARD . . Y 451865 IT0IB MT WRITE TEST TAPE . . . 451866 IT02C MT READ TEST TAPE . . . 451867 IT03A MT COPY TEST TAPE . . . 451868 1T05C MT I R G MEASUREMENT . . . 451869 1T06A MT TAPE ERROR . . . 451870 IT07A MT TAPE RELIABILITY . . . 451970 9200A BA STORAGE LISTING ROUTINES . . . 451966 1025A STL MULTI TAPE LISTER A . . . 451972 1026A STL MULTI TAPE LISTER B . . .
return to main page
BLOCK NUMBER *MFI TEST TITLE 5000C MT CARD TO TAPE 5010C MT TAPE TO PUNCH/PRINTER. 5020C MT TAPE TO TAPE. 5030C MT BACKSPACE. SKIP, 5040D MT MOVE TAPE 5050D MT LOAD TAPE 5070D MT MOVE BINARY TAPE 5080C MT VERTICAL REDUNDANCY CHECK 5300E MT WRITE TEST TAPE ROUTINE 5310E MT READ TEST TAPE ROUTINE 5320E MT COPY TEST TAPE ROUTINE. 5330C CW COMPRESSED TAPE READ AND EXPAND 5500D MT I R G MEASUREMENT FOR 729 5530B MT 7330 I R G MEASUREMENT IT01B MT WRITE TEST-TAPE IT02C MT READ TEST TAPE IT03A MT COPY TEST TAPE IT05C MT I R G MEASUREMENT IT06A MT TAPE ERROR IT07A MT TAPE RELIABILITY