A couple of years ago I generated a table of keyboard
error codes for a Thinkpad 600X. I've recently found out that there is
another set of scancodes for the T23, and presumably, the rest of the T2x systems. So, I sat down with a T23
and came up with the tables you see here. Again, the first table is a listing of the codes in numerical order and
the second table is arranged like the keys on the T2x keyboard. Keyboard layout is the standard 85-key US format
and the T23 that was used had a very old BIOS of 1.09, but I would not expect any newer BIOS version to generate
different error codes.
An important note: There are several keys, which if stuck at power-on, results in the system not proceeding past the IBM "splash screen". In other words, it will look like a classic "does not boot" scenario. No error codes or audible beeps are issued. Up until now, I did not realize that this could happen. I assumed that any T2x stuck key would generate an error code of some kind. Therefore, when faced with a T23 system which does not progress any further than the splash screen, the keyboard should be suspect, in addition to the other hardware which can result in a failure to boot (hard drive, MiniPCI card, Ultrabay device, etc.).
Also, these error codes have been found to be the same for an R32 system. Don't know at the moment if all other R3/R4/R5 systems will be the same. Only reported difference is that for the "NB" keys, the R32 did continue booting.
Code | 01 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0A | 0B | 0C | 0D | 0E | 0F |
Key | Esc | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 (zero) | - | = | Backspace | Tab |
Code | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1A | 1B | 1C | 1D | 1E | 1F |
Key | q | w | e | r | t | y | u | i | o | p | [ | ] | Enter | L Ctrl | a | s |
Code | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 2A | 2B | 2C | 2D | 2E | 2F |
Key | d | f | g | h | j | k | l (el) | ; | ' | ` | L Shift | \ | z | x | c | v |
Code | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 38 | 39 | 3A | 3C | 3D | 3E | 3F |
Key | b | n | m | , | . | / | R Shift | L Alt | Space | CapsLock | F2 | F3 | F4 | F5 |
Code | 40 | 41 | 42 | 43 | 44 | 46 |
Key | F6 | F7 | F8 | F9 | F10 | ScrLk |
Here's a different table arranged in the physical layout of the T23 keyboard:
Key | Esc | PrtSc | ScrLk | Pause | Insert | Home | PgUp |
Code | 01 | NB* | 46 | NC% | NB* | NB* | NB* |
Key | F1 | F2 | F3 | F4 | F5 | F6 | F7 | F8 | F9 | F10 | F11 | F12 | Delete | End | PgDn |
Code | NC+ | 3C | 3D | 3E | 3F | 40 | 41 | 42 | 43 | 44 | NC# | NC$ | NB* | NB* | NB* |
Key | ` | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 0 | - | = | Backspace |
Code | 29 | 02 | 03 | 04 | 05 | 06 | 07 | 08 | 09 | 0A | 0B | 0C | 0D | 0E |
Key | Tab | q | w | e | r | t | y | u | i | o | p | [ | ] | \ |
Code | 0F | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 1A | 1B | 2B |
Key | CapsLock | a | s | d | f | g | h | j | k | l | ; | ' | Enter |
Code | 3A | 1E | 1F | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 1C |
Key | L Shift | z | x | c | v | b | n | m | , | . | / | R Shift |
Code | 2A | 2C | 2D | 2E | 2F | 30 | 31 | 32 | 33 | 34 | 35 | 36 |
Key | Fn | L Ctrl | L Alt | Space | R Alt | R Ctrl | Up Arrow | Left Arrow | Down Arrow | Right Arrow |
Code | NC% | 1D | 38 | 39 | NB* | NB* | NB* | NB* | NB* | NB* |
* NB (No Boot) - this stuck key causes a No Boot condition; system does not progress past the splash screen
+ NC (No Code; F1) - will not cause error code; allows access to BIOS
# NC (No Code; F11) - may not cause error code; possible access to recovery partition
$ NC (No Code; F12) - will not cause error code; allows access to boot device menu
% NC (No Code; Pause, Fn) - does not cause any error code to be generated