Thursday, January 18, 2018

More work on 1401 system read-print issue at Computer History Museum

REPAIRING READ-PRINT ISSUE WITH IBM 1401 DE SYSTEM AT CHM

The focus on Wednesday was on the timing of various cam based switches that form the logic inside the 1402 card reader/punch. We looked in particular at everything involved in clutching the mechanism to turn the rollers and other gear that moves a card forward one station.

Several cam based switches, called circuit breakers (CBs) by IBM, are involved in this process, particularly RC5, RC6, RC7 and RL10. RC numbered CBs are those that run continuously with the main motor, even when the mechanism is not moving a card through the machine. RL numbered CBs will operate only with the mechanism that performs the card feed.

These CBs in turn control several relays, such as the clutch check relay 10, and lead to the activation of the reader stop relay 4. The wiring diagram is somewhere between obscure and impenetrable, as I have mentioned before, but we gradually mastered the portions involved in this problem we are debugging.

The 1402 originally operated by feeding cards in one rotation of the mechanism, always taking 360 degrees of rotation or about 18ms at the rated speed of the reader mechanism. This meant that when a processor request came in to read another card, one could wait between 0 and 18ms before it commenced, depending on where the spinning mechanisms were in their 360 degree rotation.

To increase effective speed, IBM created an early feed feature, dividing each rotation into three equal 120 degree segments. Now, when a CPU request arrives, the wait to honor it varies from 0 to 6ms, only until the next 120 degree segment comes around.

Now, most of the CBs have three lobes, to provide the same logic for each of the three 120 degree segments. The first one we adjusted, RC6, is the primary CB that determines when a CPU request will activate the clutch. One of its three lobes is designed to close the switch (make) at 272 degrees and open (break) at 342 degrees, with a tight tolerance that requires it occur between -2 and 0 degrees of the target value.

The CBs are adjusted two ways. First, the cam itself can be rotated around the axle that turns it, to changes its timing earlier or later in a rotation. Second, the contacts can be raised or lowered from the center of rotation, causing the duration of the activated switch to lengthen or shorten. Adjustment requires that both be controlled to get the make and break timings correct.

Advancing or retarding the cam around its axle is done by loosening two setscrews that hold it to the axle. These require Bristol wrenches, similar to Allen wrenches but having four lobes rather than the hexagonal shape of Allen. We loosened the setscrews but the cam would not move relative to its peers at RC5 and RC7.

We hooked an ohmmeter across the contacts to do the timing, hand rotating the overall mechanism with the timing wheel which is marked with 360 degree lines. First, however, the cam had to revolve on the axle to move its start and stop timing.

It appears that the cam was partly adhered to its peers by corrosion, so that some mechanical force was needed to free it up. The access to the cams is quite restricted, otherwise we could have simply used pliers of some sort to turn it. Finally, I could apply sharp impacts sufficient to break the corrosion but not the mechanisms.

The second adjustment, duration of the switch, is controlled by a screw, a setscrew and a jam hexnut. The jam nut holds the setscrew in its position, while the setscrews is a stop for how high the switch contacts can move. Finally, the screw itself locked the contacts down or allowed them to slide up and down.

I finally got the height of the contacts correct for exactly 70 degrees of make time, then rotated the cam to cause the make to happen right at 270 degrees. It ended precisely on time at 340 degrees, so we were done with this adjustment. The ohmmeter showed the make and break as we slowly rotated the timing wheel.

However, when we turned on the dynamic timer with the reader operating under power, it showed that circuit energizing at 275 degrees but ending on time at 340,. Looking at the schematic and then scoping the circuit, we found that CB RL10 is misadjusted. It is in series with RC6 and since it doesn't make until 275, that delays the activation.

The RL CBs are mounted in a much more inconvenient location in the machine, requiring the removal of part of the top cover near the card hopper before we could reach and adjust them. We didn't have enough time left in the day to do this before the public demonstration started, thus we left it to the next session.

The reason that RC6 and RL10 are in series is that permission to fire the clutch depends on two things. The position of the motor assembly must be in the right 70 degree portion of its 120 degree segment, but also the feed mechanism must not already be in motion from a prior clutching.

Thus, RL10 sits activated when the feed mechanism is idle, allowing RC6 to determine when to start a card read. However, once the feed mechanism is moving, RL10 blocks clutching until the feed is advanced enough. That is, reading a card takes the entire 360 degree rotation to move it forward and past the 12 rows of holes, even though we can start this process at any one of the three 120 degree segments.

Therefore, RL10 imposes the 360 degree cycle restriction after which RC6 determines the next 120 degree segment to permit clutch activation. In addition to this complexity, CBs RC5 and RC7 control the timing of the clutch checking that ensures a clutched feed mechanism actually moved.

When RC6 lets the CPU request activate the clutch, it first energizes clutch check relay 10 then with a slight time delay activates the clutch itself.  RC7 is a set of lobes which control when the error check takes place. This CB makes and breaks opposite to RC6, activating during the span when RC6 is open. These two cannot overlap activation and there is a required gap between the two sufficient to let the clutch engage and begin moving the feed mechanism.

RC5 is another trilobe cam, with the same timing as RC6, but used to activate other relays that ultimately lead to the checking that triggers our reader stop condition. We need to get the timing of RC5, RC7 and RL10 corrected before we can be sure that our reader is working according to its design. 

No comments:

Post a Comment