Saturday, September 20, 2014

Time with the card reader, running one card diagnostics and adjusting its operation

1442 CARD READER/PUNCH RESTORATION

I received my grease gun accessory kit with a plethora of adapters and fittings, however not a one is useful to get grease into one grease nipple on the card reader which is placed to allow virtually no clearance around it for the grease gun fitting.

My reader will very reliably pull the cards into the pre-read station and go ready. It seems to read them well - I have booted five of the one-card diagnostics and they appear to read into memory properly. I stepped through memory after loading the cards and it all looked good - words 0000 to 0050 matched the card columns as read in boot mode.

When in program load mode (boot mode), the card reader will create a 16 bit word from the 12 rows of each card column: Rows 12, 11, 0, 1 and 2 become bits 0-4, bits 5-7 of the word are forced to zero, row 3 is copied to both bits 8 and 9, and the remaining rows 4-9 become bits 10-15. As each column has been read, it is placed into the next word of memory, beginning at 0000, until the end of the card is reached. At that time, the processor begins executing the instruction at 0000.

What is not working is the cornering station, specifically the injection of a card to the rollers for the stacker station. I have polished and shined the metal plate and the plastic top lid fanatically, but there is still too much drag for the card to slide into the rollers. Peter Vaughan at TNMoC found the cornering station to be the most challenging part of the card reader, which itself was the most challenging portion of the 1130 to restore. I concur.

KEYPUNCH NEW INTERFACE CONSTRUCTION

After installing my reader cable, I duplicated and punched some cards which validated that my changes had no impact on correct operation of the keypunch in standalone mode. The connectors I bought were not the correct size, keeping me from moving forward with the punch cable installation.

SYSTEM TESTS VIA ONE CARD DIAGNOSTICS

My testing resulted in a few error stops, but those would work properly if I reset and reran the same code in memory or reloaded the card. However I also experienced the machine failing with parity checks at a few locations. This seemed to be related to a problem as the reader loaded memory during the program load.
A page from the documentation for the one card diagnostics
For example, test card 3 loads and appears to be fine, except that one of the words that should be 0x4820 (a conditional skip instruction) is displayed at 0x5820 with a parity error due to the extra bit being on. If I manually alter that word back to its intended value, the test program completes satisfactorily. Each time I loaded the card, it got the error in the same place.

I then used the keypunch to DUP the card, thinking that some teeny variation was causing the problem, It might have been, because the duplicated card failed at a different location, not the original one. Curious. Each write from the reader into core memory should have had parity correctly set by the 1131 circuitry, regardless of what comes in from the reader.

Test  cards 1, 2, 4 and 5 loaded and ran well most of the time. Any time I experienced an anomalous result, I would rerun the code sitting in memory, going to single instruction or even single step to check its operation. The code always worked properly in those stepped modes.

Five of the one card diagnostic programs
As an example of a problem that did not occur in stepped mode, one of the programs will run through 1K of memory storing a specific value in each word, then check that the proper value was there. The card boots and stops at the address 0x1000, as it should. The instructions are to hit RESET and then PROGRAM START buttons.

When I hit the two in sequence, it stopped with an error asserting that a word did not have the proper value stored. When I single stepped, it looked good so after checking a few passes, I put it into RUN mode and let it complete - with no errors.

It is possible that the RESET function is not totally reliable, or that some part of it is so slow that it isn't in the proper state when instructions are fetched at normal speed. Speculative and I haven't really done a lot of troubleshooting to figure out what is happening, so probably not close to the real situation at all.

Once I have the card reader's cornering station working well, I can read more than one card at a time. That will allow me to load a diagnostic monitor and some substantial diagnostics to really shake down the system.

No comments:

Post a Comment