The electrical structure of the IPC32/19 front panel keys is a matrix keyboard. The keyboard controller for the front panel keys is the BB1 Base Board keyboard scanner. The keyboard scanner on the BB1 Base Board converts any keystroke of a IPC32/19 front panel key into usable codes (scan codes) for application programs.
Any IPC32/19 front panel key offers one fix default scan code (ScanCode). This ScanCode sends the BB1 Base Board keyboard scanner over a serial link to an motherboard keyboard controller on the IPC32/19 PC/104 CPU if a key is pressed. If the motherboard keyboard controller the ScanCode byte has been received, an IRQ1 is generated that invokes the BIOS interrupt 9 handler (INT 9 HANDLER, BIOS keyboard handler). The BIOS reads the ScanCode and translates the ScanCode into a KeyCode.
The next table shows the ScanCodes and KeyCodes for the IPC32/19 front panel keyboard with 34 keys. The table offers 3 columns with ScanCode and KeyCodes. The STANDARD column contains the ScanCodes and KeyCodes for the main function (black print) of any key. The with SHIFT key column contains the ScanCodes and KeyCodes, if a key is pressed together with the blue Shift key. The with ALPHA key column in the table contains the ScanCodes and KeyCodes, if a key is pressed together with the red Alpha key. The ScanCodes and KeyCodes in columns with SHIFT key and with ALPHA key are only valid, if the IPC32/19 keyboard driver 3219SHFT.COM is used.
| Key | STANDARD | with SHIFT key | with ALPHA key |
|---|---|---|---|
| ... | ScanCode / KeyCode | ScanCode / KeyCode | ScanCode / KeyCode |
| 0x3b / 0x00 | 0x40 / 0x00 | 0x1e / 0x41 | |
| 0x3d / 0x00 | 0x42 / 0x00 | 0x2e / 0x43 | |
| 0x3f / 0x00 | 0x44 / 0x00 | 0x12 / 0x45 | |
| 0x33 / 0x2c | 0x33 / 0x3b | 0x22 / 0x47 | |
| ---- / ---- | ---- / ---- | ---- / ---- | |
| ---- / ---- | ---- / ---- | ---- / ---- | |
| 0x3c / 0x00 | 0x41 / 0x00 | 0x30 / 0x42 | |
| 0x3e / 0x00 | 0x43 / 0x00 | 0x20 / 0x44 | |
| 0x34 / 0x2e | 0x34 / 0x3a | 0x23 / 0x48 | |
| ---- / ---- | ---- / ---- | ---- / ---- | |
| 0x38 / ---- | ---- / ---- | ---- / ---- | |
| 0x47 / 0x00 | 0x4f / 0x00 | 0x17 / 0x49 | |
| 0x4b / 0x00 | 0x56 / 0x3c | 0x26 / 0x4c | |
| 0x08 / 0x37 | 0x08 / 0x2f | 0x18 / 0x4f | |
| 0x05 / 0x34 | 0x05 / 0x24 | 0x13 / 0x52 | |
| 0x02 / 0x31 | 0x02 / 0x21 | 0x16 / 0x55 | |
| 0x53 / 0x00 | 0x39 / 0x20 | 0x2d / 0x58 | |
| 0x48 / 0x00 | 0x49 / 0x00 | 0x24 / 0x4a | |
| 0x50 / 0x00 | 0x51 / 0x00 | 0x32 / 0x4d | |
| 0x09 / 0x38 | 0x09 / 0x28 | 0x19 / 0x50 | |
| 0x06 / 0x35 | 0x06 / 0x25 | 0x1f / 0x53 | |
| 0x03 / 0x32 | 0x03 / 0x22 | 0x2f / 0x56 | |
| 0x0b / 0x30 | 0x0b / 0x3d | 0x15 / 0x59 | |
| 0x01 / 0x1b | 0x0c / 0x5c | 0x25 / 0x4b | |
| 0x4d / 0x00 | 0x56 / 0x3e | 0x31 / 0x4e | |
| 0x0a / 0x39 | 0x0a / 0x29 | 0x10 / 0x51 | |
| 0x07 / 0x36 | 0x07 / 0x26 | 0x14 / 0x54 | |
| 0x04 / 0x33 | 0x35 / 0x2d | 0x11 / 0x57 | |
| 0x1c / 0x0d | 0x1c / 0x0d | 0x2c / 0x5a |
More information: Download or view the document "The IPC32/19 Keyboard Scanner". Ipc32kbs.PDF (71.159 bytes). This document contains more details over the IPC32/19 keyboard scanner and a architecture overview.