Sunday, May 4, 2025

Mission: Emulate a Soroban Computeriter

In the early 1960s a company called Soroban Engineering produced a product they called a Computeriter. This was an IBM electric typewriter, modified with an electro-mechanical encoder to allow a computer to sense what keys on the keyboard had been pressed, and solenoids to allow the computer to operate the keys to print text.

This photo is taken from a Soroban technical manual, available on the Bitsavers archive here. It shows the IBM typewriter and the coder and decoder modules Soroban added to create the Computeriter.

Although not as heavily built as the Teletype machines of the day, the Computeriter could print 26 upper case and 26 lower case letters, ten digits, plus 24 special glyphs. This is the device Control Data Corporation (CDC) chose as a base for their CDC 161 Typewriter Unit for the CDC 160 computer.

Unfortunately, the Computeriter in the System Source Computer Museum's CDC 161 is badly worn. A typewriter restoration expert brought in to consult advised that attempting to refurbish the most badly worn part, a drive roller, would cost over $1,000. Even then, he said his experience was there was only a 50% chance that the refurbished roller would function properly. So the museum management decided to replace the electro-mechanical Computeriter with a custom electronic device that would allow the use of a more modern terminal or laptop computer with the CDC 161 electronics.




The CDC 161 Typewriter Unit is a the size of a small desk. The back part of the "desk" contains a power supply, fans, and a rack of CDC logic modules. These modules interface the Soroban Computeriter to the CDC 160 I/O bus. The electrical connection between the Computeriter and the CDC 161 electronics is a standard DD-50 connector.

(Short rant: No, it's not a DB-50 connector; there is no such thing. The second letter in D-type connectors indicates the size of the connector shell. A DB-25 connector has a "B" size shell and 25 pins. The 9 pin connector most people call a "DB-9" uses an "E" size shell, so it's a DE-9 connector. This connector has a "D" size shell and 50 pins, so it's a "DD-50" connector.)

With the documentation for the CDC modules in hand, we learn the input signalling levels the CDC 161 electronics expect:

  • A logic "0" is represented by a voltage of -16V ±2.5V
  • A logic "1" is represented by a voltage of -0.5V ±0.25V
  • Undriven inputs are interpreted as logic "0"

The CDC 161 input modules pull their inputs toward -20V (logic "0") by internal resistors, and must be pulled externally toward ground to generate a logic "1" input. Most of the inputs to the CDC 161 should not need to switch more than 10mA. One of them, though, is both a logic input and drives a small (type 330) incandescent bulb. This was measured in situ to require pulling nearly 100mA to ground while still meeting the logic "1" voltage of -0.5V. Thanks, Seymour!

The CDC outputs that drive the Computeriter solenoids are rated to pull up to 1.25A to ground with a maximum off-state voltage of -28V. The solenoids have a DC resistance of about 28 ohms, and are connected to an unregulated -15V supply. Thus each solenoid requires sinking a bit more than 500 mA.

The character encoding used in the Computeriter was likely driven by the mechanics of the coder and decoder mechanisms. The result is a rather haphazard 6-bit code with no obvious structure, and no resemblance to any computer character set I'm familiar with.

Since the purpose of the emulator is to allow a more modern terminal or laptop computer to be used in place of the Computeriter, this would need to be translated bidirectionally. All but four of these characters are part of the US-ASCII 7-bit character set. The rest are part of the ISO-8895-1 Multinational character set and, of course, UTF-8.

Further, the Computeriter coder does not encode all of the keys on the keyboard. The tab, space, backspace, carriage return and case shift are all signaled on separate circuits from the other characters. The emulator might need to handle these characters separately as they are received from the modern equipment.

Lastly, the CDC 161 indicates the CDC 160 computer has requested input by illuminating a lamp on the small control console. Since this is external to the Computeriter, the emulator has no means to know when the computer is ready to accept input. This should not be an issue when a user is typing. However, if the emulator receives a character that requires a case shift, it must delay sending that character to the computer until after it has had a chance to accept the upper case or lower case shift character before sending the character the user has typed. This could present some unexpected complexity.

Did I mention this has to be ready for display at VCF West by the end of next month?

No comments:

Post a Comment