Friday, April 29, 2022

Reverse engineering the SLT card prior to debugging, finalizing setup of test rig

SLT CARD 5806213 CAN BE TESTED AS BLACK BOX

The card that does not seem to be working properly is a 06213 card, for which there is no existing schematic or other documentation. While many cards in an 1130 have such drawings, not this one unfortunately. 

The suspect card

The functionality of the card is pretty clear cut - it produces the main clock phases A and B as well as advance pulses to move the system ring counters, called the T-clock and X-clock, around their eight position ring. One storage access cycle is one trip around the ring from T0 to T7 (or X0 to X7). 

It has a number of inputs that control its production of the pulses and therefore will cause the processor to run, single step or halt. Some are obvious - system reset lines, the Reset operator button, the mode control rotary switch and the Program Start operator button. 

Others look at the state of the processor to determine when to stop advancing the ring counters. If doing a Single Step, we emit one advance pulse per press of the Program Start button. If doing a Single Memory Cycle step, we start running at T0 and stop when we advance to T7. If doing a Single Instruction, we keep running until the signal arises that the processor is ready to start over with a fetch of the next instruction. 

The machine may be sitting in a wait state, but if an interrupt request arrives and we are in normal Run mode, it needs to start the CPU to process the interrupt. If one of the peripherals is cycle stealing, which is IBM's term for what is now called Direct Memory Access (DMA), then the advance pulse is going to move the X-clock not the T-clock, but only after completing a memory cycle (getting to state T7). 

The CPU Stop Latch is triggered by going into a wait state, by the Immediate Stop operator button and by errors such as a Parity Error on a memory read. This should also stop the processor from running so it too is an input to this card. 

A few instructions take more than the eight clock steps of a normal memory cycle, thus the machine needs to issue repeated T7 cycles while those longer processes are underway until it is time to finish the memory cycle or instruction. These include shift operations, arithmetic operations and certain kinds of branches. Those state signals are inputs to the card in order to cause it to provide all the cycles they need. 

Finally there are two special situations that this card has to recognize and work with - load/store modes and program load operation. 

If the machine rotary mode switch is set to Load or Display, pushing Program Start will either display the contents of the current word of core on the panel or write the value from the Console Entry Switches into core. Thus in this mode, we want to process a single memory access cycle of eight clock steps. 

In addition, the Program Load function will cause a card reader or paper tape reader to bootstrap the machine by reading a certain amount of data into memory and then execute it, all triggered by a push of the Program Load operator button. The controller electronics for the peripheral device will read the media and transfer the data into ascending core locations beginning at zero. The machine has to take memory access cycles for each word going into memory; this is triggered by a special input for Program Load coming from the peripheral controller. 

By setting up the various conditions to logic true or false (pullup to +3V or pulldown to 0), then feeding an oscillator signal into the card, we should see it make the appropriate outputs. The clock phases A and B, the clock advance pulses plus the Run state and an internal state Delay are all things I can look at. 

I should be able to stop the machine, then set a rotary mode control state and toggle the signals from the Program Start button. That should emit advance pulses, turn on Run and only stop when the appropriate conditions are set as inputs. For all modes except Single Step, we need to raise T7 to stop a memory cycle or instruction. 

As you can see, there are quite a few permutations of input conditions to check, but at least the most basic of functions can be validated fairly simply.

NEED TO UNDERSTAND THE CIRCUITRY TO DEBUG FAILURES AND FIX

If the card passes all its tests and we are pointing elsewhere in the machine for the source of the mystery oscillation of the Delay signal, we don't need the circuitry in this card. More likely, however, it is a problem in this card that must be diagnosed and repaired. Two 6213 cards, each failing in unique ways, suggests a couple of things to me. 

First, it suggests that these two cards are broken in their own ways and I will have to repair at least one to continue with the restoration. Second, it raises the concern that some catastrophic voltage excursion took place which damaged many cards. If that is the case it will be much harder to restore this system. 

I noticed that the rear of one of these cards has black magic marker on various solder pads - this may indicate that this was known to be bad and was being debugged by someone else. I hope it wasn't a 'junk' card meant for disposal that someone stuck in the machine when it was sold to the museum. 

Rear of 6213 card with black marker on some pads

REVERSE ENGINEERING THE CARD SUFFICIENTLY TO DEBUG

I don't have the card schematics and layout, but I do have two bookends that can help me reverse engineer the circuit so that I can figure out where it is going bad. 

The first bookend is the ALD (Automated Logic Diagram) of the 1130 which shows all the logic gates and their interconnections. There are flipflops (FF), And-Or-Invert (AOI) gates, And gates, Not gates, edge triggered inverters, single shots, switch debouncers and dot-OR 'gates' on the diagram for the card.

The second bookend is the physical card with its part numbers on the SLT cans and other components. These indicate which are AOI, FF or other functions for which there ARE circuit diagrams. Since I know the SLT can pin numbers for inputs and outputs, plus the card pin numbers for signals, I can beep out which cans are implementing each gate from the ALD.

The card has four pins that do not show up on the ALD, but they may have some connection to an internal state that would aid in debugging or checkout at the manufacturing plant even though not used inside the 1130 itself. If I can beep out those and relate them to the circuitry, it might let me observe some internal state more easily.

However, every single connection and pin from SLT cans or other components are accessible by touching the solder pad on the rear of the card. Thus, I can narrow down to the component(s) that are failing by varying my inputs and observing the the oscilloscope. 

If I do find bad components, I have the potential to repair the card. Other cards with different overall functions may have the same SLT can that is broken. If I can remove that from a donor card and substitute it for the defective can on this card, I could get it working. Since FFs, AOI and other cans are very common elements, this should be simple to do. 

The backstop, much harder, is to make a tiny PCB the size of the SLT can, using surface mount transistors, diodes, resistors etc as a replacement that can be put on the card in place of the failed can. There would be a time lag of two to three weeks for each can to be fabricated AND it wouldn't be original components in the machine. 

CLEANING UP THE TEST BOX AND GETTING NECESSARY CABLING

The SLT tester box I have had a modification made, introducing switches to break connections between the sockets for certain pins and the pins themselves in the card connector. The ones that were switched aren't the normal SLT power pins, so I really don't now why these mods were made.

I reversed them, so that now the sockets are all connected directly to the associated SLT connector pin. The sockets take a standard 4mm banana plug, of which I was in short supply. I have a suitable number on the way allowing me to cable up on Monday and do the testing. The banana plugs also fit into my bench power supplies, allowing a very convenient method of supplying power.

Wires with a banana plug will route various signals to a breadboard where I can implement pullup and pulldown resistors, add switches for signals I want to vary to put the card through its paces. 

No comments:

Post a Comment