Note: You need a browser capable of displaying SVG images to see the keyboard layouts.
The IBM 6110344 is a 122-key model F keyboard, originally intended for use with the IBM 3270 PC. It is possible to connect it to a standard AT-class PC.
The keyboard has a 5-pin DIN plug that uses the 240-degree spacing. Its pinout is the same as the 1390876:
A normal AT keyboard uses the 180-degree spacing and this pinout:
Therefore the keyboard can be connected to an AT or PS/2 connector, either by making a simple adaptor, or by swapping the lead with one from a real IBM AT keyboard. Both use the same 3×2 Berg connector at the keyboard end.
The keyboard has eight DIP switches. According to the guide to operations, they should be ignored. If you do change them, they change bits in the keyboard ID (returned by command 0xF2). If all switches are left open (or disconnected) the ID returned is 0xBF 0xBF. Closing a switch sets the corresponding bit to 0.
Switches 1-6 correspond to bits 5-0 of the first ID byte. Switches 7-8 correspond to bits 5-4 of the second ID byte. The header on the controller PCB, to which the DIP switches are connected, has 12 pairs of pins and is silkscreened "KBDID A" (on the first 6 pairs) and "KBDID B" (on the second six). The other four pairs of pins correspond to bits 3-0 of the second ID byte; these would need to be set with jumpers.
There are no LEDs, and the keyboard rejects commands to set LEDs.
The controller PCB is identical to the one in the PC AT keyboard; both use an 8048 microcontroller to read keys and transmit them to the computer, and the key matrices are compatible. It is possible to create a hybrid controller image, which improves compatibility with AT-class PCs. This is now described in its own page.
The 6110344 uses the AT keyboard protocol and Scancode set 3. Since the 3270 PC predates the AT, this is probably the earliest use of this protocol and scancode set on a PC, and suggests that both originate in the world of 3270 terminals.
The keys on the 6110344 are laid out like this:
Markings in blue apply when the PC is behaving as a PC, rather than as a terminal.
When in use, the keyboard always uses Scancode set 3. It rejects requests to change the scancode set. The scancodes it returns are identical to the 1390876:
Notes:
On a true 3270 PC, the Set 3 scancodes from the keyboard are converted to Set 1 (XT) scancodes by the keyboard card. Unlike on an AT, where the mapping takes place within the controller, the conversion is done by the BIOS and can be changed. The default mapping gives these codes:
If the PC has a 'simple' keyboard controller card, the translation table is visible in memory at 0CAA60h. If it has a 'complicated' card, the default table is at 0CB640h, but it is not visible in memory except when keypresses are actually being handled. Either way, a custom table address can be set using INT 52h, with AH=1 and DX=segment of new table. The table has three bytes per 3270 scancode:
Flags are:
The default scancode mapping table in the ROM is listed below. It only returns scancodes for keys that are present on a real XT; the others just beep.
The keyboard accepts the following commands. Most of them behave as documented for the 102-key PS/2 keyboard, but there are a couple of exceptions:
The F0 command (set / get scancode set) and ED command (set LEDs) are not supported.
John Elliott 27 June 2011.