The IBM 1501105 Keyboard
Note: You need a browser capable of displaying SVG images to see the keyboard layouts.
The IBM 1501105 is the 83-key keyboard for the 5150 PC / 5160 XT. 1501105 is the UK model; the US layout is part number 1501100.
The PC/XT technical reference describes two variants of the keyboard, "Type 1" and "Type 2". To the host PC, they operate in the same way, but the internal layout of the circuit is quite different, and their microcontrollers would have to contain different code. The examples that I have studied both appear to be "Type 2".
The keyboard uses a 5-pin DIN connector. The pinout is the same as the more common AT keyboard connector, but since a different protocol is used it isn't (usually) possible to connect an XT keyboard to an AT or later PC and have it work.
The lead is not detachable unless you open the case and disconnect it from the PCB. The connector at that end is a 7×2 Berg connector; of the 14 pins, only five or (usually) four are used. The "Type 1" keyboard connects the 'Reset' pin, but "Type 2" keyboards usually leave it disconnected, as discussed here.
The microcontroller is usually an Intel 8048, though one keyboard I have examined had an 8748 (the EPROM version). This was the same keyboard that had a cable with the 'reset' pin connected.
The 1501105 uses the XT keyboard protocol, and returns the "Set 1" XT scancodes.
The keys are laid out like this:
The scancodes returned by the keyboard are:
The keyboard has an internal key-numbering system that follows the key matrix. The keyboard microcontroller translates the internal keycodes to scancodes using a table in its ROM.
Though the keyboard has 83 keys, the controller ROM uses a 12×8 matrix, so would, in theory, support up to 96 keys. The internal scancode numbering is not contiguous; the gaps tend to fall at the edges of the board, or where there is a double-sized key. However, unlike later Model F keyboards, the keyboard matrix exactly matches the layout of physical keys. There are no unused sets of contacts under double-sized keys.
The translation table also has one oddity. All unused keycodes, bar one, are mapped to the scancode 00h (Error). The exception is the keycode 5E, which maps to scancode 76h (Clear). My guess is that this was done to make the controller ROM checksum come out right.
John Elliott 22 June 2013.