I’ve wanted a hard-copy terminal for a while – both to play with and to use for explaining why serial works the way it does, but they tend to be expensive. Most of the common hard-copy terminals also aren’t really convenient objects to own: loud desk-sized machines (Teletype 33 family, most DECWriters), additionally clockwork nightmares (IBM 2741, earlier Teletype devices), which speak ridiculous protocols (…ditto).
This only leaves a handful of reasonable options, the most common of which are portables like TI Silent 700s and DEC LA12s, or one of the dasiywheel-printer based terminals (which are often non-period-correct things like a WheelWriter with a modern serial interface card in it).
So, of course, I’ve been idly keeping an eye out for a deal on one on the auction sites, and mid-October last year I got lucky: I scored a TI Silent 700 Mod. 745 for $34.00+S&H (about $47 all in) from a Shopgoodwill auction, and got it working.
I suspect no one else was bidding on it because it had visibly been tampered with, and had a few hot pixels in the sample print, but it’s solidly in the “Good enough” category for my amusement, particularly since it’s the first one I’ve seen go for under $100. It was also rather dirty, but nothing a little scrubbing couldn’t take care of.
TI’s Silent700 machines are a bit different than most other hard copy terminals: they were “silent” because they were built around a 5×7 dot matrix thermal print head that prints to rolls of standard thermal fax paper. For those of us old enough to remember impact printers – like the consumer dot-matrix offerings, daisy wheels, or TeleType cylindrical heads – and their incessant screaming, the silent moniker makes a lot of sense. It is distinctly not “Letter Quality” print, but is quite legible.
From the initial checkout:
Good:
+ With the switch in “Half-Duplex” so it behaves like a typewriter, all the keys produce the appropriate character.
+ After a bit of cleaning and lubrication, the carriage and platen move smoothly.
+ No major missing or broken parts.
Bad:
– The three top pixels in the 2nd column (YD7, YD6, and YD5 by column XD2 using the repair manual nomenclature) are stuck on.
– There was never an acoustic coupler on this unit, the plug in the blocked hole appears factory.
– This is the “limited ASCII” model: it only does capital letters (and a full compliment of symbols).
Odd:
? Someone added a 3.5mm TR jack where the acoustic couplers would have been. It’s clearly aftermarket based on the “Sony” logo on the connector and hobbyist-looking soldering.
? The screw heads in this thing are T8+Flat. I see a lot of weird screws, but that’s a new one.
While exploring I found copies of the User Manual (PDF;re-hosted here) and Maintenance Manual (PDF; re-hosted here) from DecadeCounter‘s page on the Silent 700, and additional copies/versions at bitsavers. The maintenance manual especially is delightful, it goes into considerable detail on both the theory of operation, and the exact circuits and timing diagrams and such used to implement it.
The mechanism is an extremely tiny 8080 computer cleverly using 12 of its 16 bits of address bus to drive the 5×7 print head through some transistors.
It has 64 words of external RAM from a single 4036 SRAM, and a single 4732 ROM for the program. Beyond a TMS5504 I/O device, almost everything on the main board is standard parts; 74 series logic, RC4558P Op-Amps, and an assortment of transistors and passives.
This particular unit has an AMD 8080 and a Motorola 68A10 RAM, while most of the other parts are the TI’s you’d expect in a TI product, a detail which I found rather amusing.
I did a couple quick experiments trying to talk to it via the 3.5mm jack masquerading as an acoustic coupler while I was waiting for connectors. I tried minimodem out of a headphone jack, but never appeared to get the levels right and never even get a carrier detect.
I’m a little afraid something was blown out by improper levels, either by the person who added the jack or by my experiments, but I haven’t gone in and probed my way though the Op-Amps. Also, these things expect a parity bit and minimodem doesn’t seem to support that, so it didn’t seem like a fruitful avenue of exploration.
Serial Adapter
So, I switched to working it through the serial port, which is the sensible strategy to start with. The connector on the back of the unit is a female DA-15 (not a DE-15 that gets incorrectly called DB15 like VGA takes) connector. It has, essentially, two normal EIA-232 (RS232) serial ports exposed on the connector, one to interface an external device with the keyboard and printer, and the other to allow an external devices to use the (missing) acoustic coupler modem. The pinout is clearly documented in the service manual, excerpted here.
Now, there are several significant things to notice in the table and notes. It looks (and, actually, is) pretty straightforward: the connector has two RS-232 signal sets on it, one for using the keyboard and printer, and the other to let an external device use the (absent on this unit) built-in acoustic coupler modem. It does use EIA-232 voltage levels: +3 to +15V for a 0, and -3 to -15 for a 1, so don’t plug this into a TTL-level adapter without a level shifter. My unit appears to drive its outputs at approximately +/-8v.
To interface, I built an absurd (but made of common and affordable parts) adapter chain. Starting from the modern computer, a USB-Serial adapter (I think I found one of my probably-counterfeit FT232 boards before one of the PL2302 or CP2102 or whatnot ones; all interchangeable for this application) with a MAX232R level shifter with a DB9 connector. I then used a DB9 to screw terminal adapter and a DA-15 to screw terminal adapter to build a nice hackable unit for the back of the 745. I wired the USB-Serial and level shifter straight through, and did my null-modem crossover on the screw terminals.
Getting tx from the keyboard is easy, it swings +/- 8V which isn’t super odd for 232-style serial, and you can pretty much throw an adapter on it, set your terminal emulator of choice to 300/7/*/1, and get characters. It’s safer to put a proper level shifter, but at one point in my flailing I hooked it up without and got output on the computer anyway, without damaging my FT232R adapter. I wouldn’t suggest doing that long-term.
Getting it to receive and print characters is a little trickier, and that “5. Held to EIA ON by external equipment required for data reception” note is the key.
Recall that EIA-232 serial is funky bipolar voltage and inverted on the TX/RX pins but not the others, -3 to -15 ish is a 1, +3 to +15 ish is a 0. Once my brain caught up, I tapped the RX pin for the other serial link, which is pulled to -8V at idle, to “pull DCD to EIA Enable” like the table says.
That means there are only 4 wires required to use the Silent 700 as a serial terminal: TX->RX(12), RX->TX(13), GND->GND(1), and a loop between pins 8 and 11 of the DA-15 connector to enable reception. (I connected power through in the photo, it isn’t actually required).
I spent a while playing with some of the extra RS232 signals, but it turns out they generally don’t do anything useful on the 745, it isn’t sophisticated enough for hardware flow control or the like.
You of course need to configure the serial port appropriately, and the settings are probably not what you’re used to. It expects 300 Baud, 7 data bits, and any parity because it needs the position for timing, but doesn’t check it.
A suitable picocom incantation looks like:picocom -b300 -f n -d 7 -y e -p 1 --omap crcrlf /dev/ttyUSB0
for 300 baud, no flow control, 7 data bits, even parity, and an output map so that enter sends cr and lf, because your modern keyboard doesn’t have separate keys for that.
Demos
So, working, albeit with stuck pixels. The manual indicates the print head is considered a service part, but known-good ones go for more than I paid for the whole unit when they do turn up.
I was watching the lines while I tried to figure out what was going on, and one of the reasons I wanted this thing was for explaining serial, so here’s some captures with explanations. The captures are from a Digilent Electronics Explorer because it was on my desk for course development work while I was poking at this thing, and I’m still too cheap to buy a real O-Scope for home.
Shown here, the 745 is sending a ‘K’ to the host computer.
ASCII ‘K’ = 0x48 = 100 0100 = [0]1000100(0)[1]
RS-232 transmits LSB-first, the parenthesized bit is parity – which was set to even, so since there were 2 1s already in the packet it’s a 0 – and the bracketed bits are start and stop, a mark/1 for start and a space/0 for stop. <-3V = 1, >3V = 0.
Likewise an ASCII ‘U’ = 0x55 = 1010101= [0]1010101(0)[1] sent from the host computer to the 745.
And an ASCII ‘A’ = 0x41 = 1000001 – [0]1000001(0)[1]
Other Thoughts
I could probably rig this up with getty to be a console or terminal on a modern *nix box, the ti745 entry is there in the terminfo DB on my modern Linux machines. The caps-only situation would make that extremely awkward, so I think it’ll be more fun to just use it selectively by redirection.
The manual implies it is “possible” to reconfigure these to one of the other character sets; it appears to involve both ROMs a new keyboard assembly that generates the right scan codes. If it were only ROMs I’d be hunting for someone with a full-ASCII model to dump their ROMs and attempt the upgrade this one, but the service manual seems to imply the full-ASCII (or APL, or Katakana) keyboards are mechanically different beyond the key-caps, so I’m no going to mess with it unless I get unreasonably lucky and get easy access to a full-ASCII one to compare scan codes and/or dump ROMs from.
I ended up writing a crude little wordle-like game and using it as a teaching tool with my embedded systems students when we were talking about serial protocols and text encoding, and made a little /r/retrobattlestations post about that.
External Resources
The Decadecounter post on the Silent 700 has the original manuals.
Bitsavers, of course, has some other versions.
The lyx.org Text-Terminal-HOWTO document is by far the clearest and most detailed explanation of the signaling details of standard EIA-232 serial I’ve ever come across.
TLDP is always good for crusty stuff, and sure enough their Serial reference is a nice quickref for RS-232.
Cameron Coward got a Mod.745 working in 2018 and made a little retro-Siri thing out of it, but also made some extremely marginal and misleading choices about the serial interface. I think they were exploiting the fact that the port on the Mod.700 is extremely forgiving of EIA levels, so the intended <-3v = 1, >3v =0 behavior will (marginally) tolerate inverted TTL levels. I saw that work when I hooked something up wrong, but I wouldn’t suggest it.
CuriousMarc has a fairly recent video about a later sibling, the Silent 700 Mod. 703.