One more thought for tonight before I call it an evening. How am I going to build the interface?
Lucky for me, DEC already built the interface 36 years ago and documented it thoroughly. In fact, here it is, straight from the schematics (enhanced for readability).
I’ve highlighted the bits I’m interested in stealing with a dashed green line. This is the electrical interface I described previously, the one that compares the output clock signal and data to the input from the keyboard and converts it into a TTL-level input for the UART.
Of course, in the real VT100 the clock is generated by video refresh circuitry (LBA3 and LBA4) and wire-AND’ed together with the data to generate the PWM signal. I won’t have that luxury. I’ll be using a Teensy 2.0 AVR development board, and while it does have a UART, it’s not exactly TR1865 compatible! So I’m going to resort to bit banging. At 16 MHz, I’m hoping I can squeeze enough out of the Teensy to handle keyboard input, keyboard status update, and USB output. If not… well, I guess I can move up to the Teensy 3.0, which is a 48 MHz ARM Cortex monster. But that seems like absurd overkill to me! Let’s hope we don’t have to go there.