Xerox 820-II Keyboards

MMcM

01 Jan 2022, 02:19

When a keyboard has a 25-pin D-sub connector, it generally has some kind of parallel output. Occasionally, this is the raw switch matrix connections. Or it can have four inputs to a row selector and outputs for the column states in the row so selected. These cases are easy to recognize by what active components are (or are not) on the PCB. In particular, whether there is a microcontroller.

When there is a microcontroller, usually some kind of MCS-48 for '80s boards, lots of pins is likely to be strobed parallel output, perhaps with some switches exposing their state directly. But there is no way to tell whether the byte output this way is just an ASCII character or a scan code. That is determined by the program running in the microcontroller and the circuit will otherwise be the same.

In fact, the Xerox 820-II is a case of the same hardware protocol being used for both.

This is the X928 keyboard with Maxi-Switch switches.
Xerox-X928-case.jpg
Xerox-X928-case.jpg (563.21 KiB) Viewed 10456 times
There are more pictures on Bitsavers.

This was the only keyboard for the 820. For the 820-II, it was named the ASCII keyboard.

It is just regular parallel ASCII, with 7 data bits, although 8 lines are present on the connector. The command keys send the obvious ASCII control character, except the arrow keys which are up 01, down 02, right 03, left 04. The CTRL key also selects the third ASCII character (|, \, ~, `) on the keys with three legends.

As usual, USB conversion means emulating a serial port.
Xerox-820-converter.jpg
Xerox-820-converter.jpg (816.19 KiB) Viewed 10456 times
This is the G25 keyboard for the 820-II, with Cortron (ITW) switches.
Xerox-G25-case.jpg
Xerox-G25-case.jpg (566.23 KiB) Viewed 10456 times
Again, there are more pictures on Bitsavers.

It is also known as the Low Profile Keyboard (LPK).

The connection to the 820 is identical, as is the basic hardware / firmware in the 820 itself for reading the strobed parallel output. Likewise, it can use the same converter hardware. But this time, it is key state updates, called position-encoded by the Technical Reference. These come as two parallel bytes: a prefix giving make vs. break and the active state of the shifts, followed by a scan code byte. It also supports passing through movement from an optical mouse, though I don't have access to one.

This works pretty well as a real USB keyboard using QMK. It gives key press and release transitions for every key, supports n-key rollover, distinguishes left- and right- shift and control. Only the LOCK key is a little inflexible: it maintains state locally and sends down and up alternately, as though it were physically locking.

Post Reply

Return to “Workshop”