Sunday, June 9, 2024

Signs that this won't be a quick restoration but the difficulty level is not yet obvious

FINDING BURNED OUT LAMPS IN THE DISPLAY PANEL

The Lamp Test switch should light all 156 of the bulbs in the display panel, allowing identification of burned out lamps that need replacement. Each lamp is controlled by an SCR which has, in addition to its trigger (gate) electrode, a control pin with an internal resistor to the gate so that all lights can be triggered at once. 

Each row of bulbs has the hot 7.25V AC line delivered to one lead and the SCR rectifying the neutral AC and and feeding it to the other bulb lead on any half cycle while the gate is at logic high. There is an 6.2K inline resistor from the logic signal to the SCR gate, which in combination with the control pin 6.8K resistor divides the +3V logic high level but produces roughly 1.5V, easily enough to fire the SCR. 

In normal operation, the control pin is hooked to ground, producing that voltage divider mentioned in the paragraph above. However, when Lamp Test is activated, the control pin is fed +3V thus every SCR is certain to be triggered, either at +3V if the logic signal is also high, or at around 1.5V if the logic signal is low since the divider now works in the reverse direction. 

I observed a few bulbs out in the IAR and SAR register, but quite a few dark in the SBR. Some like the Op Code, part of the interrupt levels, and a couple of clock states were dark but most worked. There are eight lamps on the panel labeled CE, which could be driven by temporary cards inserted into the machine for debugging; these are therefore a good source of replacement bulbs for the many lights that are actually useful. 

I replaced the bulbs in the IAR and SAR positions I noted as dark, but tested the bulbs I removed. Only a couple were actually burned out. This is the first issue to be researched and fixed. Since the control pins are wired together on a bus as is the hot and neutral AC, all the bulbs should be energized. If they don't light but the bulb is actually good, there are only two possibilities:

  • The contacts are oxidized and can be cleaned to restore continuity
  • The SCR is dead and needs replacement

A replacement SCR that matches the IBM part including the internal 6.8K resistor is unobtainium. One would have to scavenge parts from other machines including S/360 types which use the same lighting circuitry. Eight of them from the CE positions of the panel are a good start on replacements. One might cobble together a small board with a surface mount SCR and resistor that could somehow be mounted in place of the IBM component, but that would be a time consuming fix. 

I then discovered the reason that the SBR (Storage Buffer Register) was so filled with nonworking positions. It had been manhandled sometime in the past, breaking off the leads of the bulbs and in many cases leaving the glass bulb stuck in the honeycomb when the PCB for that row of lights was pulled back. 

I hope that the abuse session that caused the SBR problems didn't also short out any SCRs. As long as power was not applied when this was done, the SCRs wouldn't be damaged but it is very easy to kill the SCR if not careful when it is energized. 

OBSERVATIONS THAT POINT TO DEEPER ISSUES

I tried the Storage Display function, which cycles through memory repeatedly thus immediately verifying that parity errors are not occurring. It worked fine. A good sign that at least the memory appears to be working. The parity scheme was chosen so that if the memory is not returning anything, it fails parity and causes a stop; this is why Storage Display is a good sign that memory is working pretty well. 

The next function I tried was the Storage Load function. When the switch is held up and Prog Start is pushed, it should cycle through memory like Storage Display but replace the contents of memory locations with the value set on the console entry switches on the front of the console printer. As I flipped the switches, I saw the parity bits for the left and right half of the word toggle on and off, thus the value was indeed getting somewhat deeply into the machine. 

Unfortunately, without the SBR lamps working, one can't see the values being selected nor see what is returned on a display operation. I then pushed the Prog Start button but the machine did not loop through all addresses as the Storage Display had; it seemed to do just one cycle and then stopped. This is incorrect behavior. 

When I hold the Reset button down (and during the first few seconds after power up while the machine does a power on reset), the SAR is left at a random address but should be cleared to all zeroes. The ACC (accumulator) is zeroed out except for the low order bit, 15, which is turned on during reset and then goes to zero when the Reset is released. This is also not correct behavior.

When I do Single Step execution, I do see the machine step through the T clock stages T0 to T7 and the IAR increment automatically by one. That is good behavior. However, the machine is not illuminating an instruction cycle stage, it remains blank. It should light I1 initially, and then depending on the instruction it could advance through I2, IX, IA, E1, E2 and E3 stages. Having none lit is not correct. 

Since I can't see the Op Code lights nor most of the SBR, I really can't evaluate what the machine is executing and whether it is doing the correct thing. I will prioritize getting a working SBR display as that will be key to debugging the machine further. 

No comments:

Post a Comment