I remember back in the day, since we had dozens of
CiTOH and DEC
terminals, looking over the available schematics for both and not
being able to figure out how the keyboard works. I think it was a
I'm not suprised you had trouble understanding it. Bits of it are not at
all obvious.
I'm working for my (paper) VT100 printset, I hope it's similar enough to
the one on bitsavers (or wherever) to be able to follow me.
Anyway, you're right that it uses 6402 or similar UARTs. What makes the
interfave complciated is that there are only 3 wires (+12V power,
ground, and a single signal line) and that there's no clock oscillator
circuit in the keyboard. In other words, one line carries the clock from
the terminal to the keybard and data both ways.
Start on the 'VT1100 Basic Video' sheet 6 (BV6). The keyboard
communciation UART is E55. The transmit and receive clocks (same signal
on both) comes from LBA4 H, which is, I think, just a convenient clock
frequency (It stands for Line Buffer Address bit 4 I think).
The circuitry round E28 seems to be a pulse width modulator, controled by
the trasnmit data pin (Serial Out) of the UART. It sends a pulse to the
keybard, the width of which depends on the current bit to send.
The (analogue-ish) circuitry round E40b separates the data bits from the
keuyboard from the signal produced by said modulator, and sends the
incoming data to the UART.
OK, now to the keyboard. 'VT100 Full Keyboard' sheet 1 (KB1)
Again we kave a circuit to separate the incoming and outgoing data here
E2b. The incoming stream provides the clock to the UART, it also goes
into E2a, which would seem to be a monostable cirucit, which thus
demodulates the PWM signal. The output of that goes to the serial input
on the UART. Data from the UART foes via E9f and E5d and then back to the
terminal
E12 is, of course, the UART. Received data (8 bits) controls the LEDs,
speaker, and starts the scan (of which more in a momnet)
E7 and E10 are the scan counter, clocked, essentially by the same clock
that clocks the UART (but it can be paused while the UART is transmitting
by E4) At the end of a scan, E3b is set, thus stopping the counter by
holding it reset until the scan is restarted by the received data bit
mentioned above. When the scan gets to the position of a pressed key, KB2
KEY DOWN L is asserted, thsi causes the UART to transmit the current
value of the scan counter, so the key 'code' is transmitted back to the
terminal.
OK, over the page to sheet 2 (KB2). There's a nice, conventional matrix
of swtiches. The rows are driven by E11 and E13, which are controlled by
the bottom 4 bits of the scan counter. The cloums are selected one at a
time by E14, controleld by the top 3 bits of the scan counter. Thus each
switch is seelcted in turn and its state fef to KB2 KEY DOWN L. As I said
above, if a key is pressed, the scna count is sent back to the terminal.
Hope that helps a bit
-tony