# IBM PC keyboard

The keyboard for IBM PC-compatible computers is standardized. However, during the more than 30 years of PC architecture being frequently updated, many keyboard layout variations have been developed.
A well-known class of IBM PC keyboards is the Model M. Introduced in 1984 and manufactured by IBM, Lexmark, Maxi-Switch and Unicomp, the vast majority of Model M keyboards feature a buckling spring key design and many have fully swappable keycaps.

## Keyboard layouts

The PC keyboard changed over the years, often at the launch of new IBM PC versions.
| Name | Keys | Description | Image |
| Model F (PC/XT) | 083 | Original left-hand side function key (F key) columns, F1 through F10; electronically incompatible with PC/AT keyboard types | Introduced with original IBM PC August 1981. |
| Model F (PC/AT) | 084 | Additional SysRq (system request) key; numerical block clearly separated from main keyboard; added indicator LEDs for Caps/Scroll/Num lock | Introduced August 1984. |
| Model M (Enhanced) | | Additional navigation and control keys; dedicated cursor control block with inverted T for arrow keys to left of numeric pad. 12 F keys in separate row along top, grouped F1–4, F5–8, and F9–12. Early models of Enhanced keyboard (notably those manufactured by Northgate Ltd.) maintained the layout with function keys on the left side, arranged in two columns of six pairs. This layout was more efficient for touch typists but was superseded in the marketplace by that with F-keys along the top. PS/2 released April 1987. There are different versions of the Enhanced keyboard layout: | Additional navigation and control keys; dedicated cursor control block with inverted T for arrow keys to left of numeric pad. 12 F keys in separate row along top, grouped F1–4, F5–8, and F9–12. Early models of Enhanced keyboard (notably those manufactured by Northgate Ltd.) maintained the layout with function keys on the left side, arranged in two columns of six pairs. This layout was more efficient for touch typists but was superseded in the marketplace by that with F-keys along the top. PS/2 released April 1987. There are different versions of the Enhanced keyboard layout: |
| Model M (Enhanced) | 101 | standard US layout double-width Return key (spanning C12 and C13) with a 1.5-width key at D13 double-width Backspace key (spanning E13 and E14) | Introduced April 1986. |
| Model M (Enhanced) | 102 | European layouts different shaped Return key (spanning 1.5-width D13 and C13) with the U.S. D13 at C12 and single width double-width Backspace key (spanning E13 and E14) additional 1 key to the right of the Left Shift key (B00) | Introduced April 1986. |
| Model M (Enhanced) | 103 | Korean layout different shaped Return key (spanning 1.5-width D13 and C13) with the U.S. D13 at C12 and single width double-width Backspace key (spanning E13 and E14) additional 2 keys: one to the left (A03) and one to the right (A07) of the space bar; both language input keys | |
| Model M (Enhanced) | 104 | Brazilian ABNT NBR 10346 variant 2 (alphanumeric portion) and 10347 (numeric portion). different shaped Return key (spanning 1.5-width D13 and C13) with the U.S. D13 at C12 and single width double-width Backspace key (spanning E13 and E14) additional 3 keys: one to the right of the Left Shift key (B00), one to the left of the Right Shift key (B11), and one on the numeric keypad above Enter (C54) | |
| Model M (Enhanced) | 106 | Japanese JIS layout different shaped Return key (spanning 1.5-width D13 and C13) with the U.S. D13 at C12 and single width single-width Backspace key (at E14) additional 5 keys: one to the left (A03) of the space bar, two to the right (A06 and A07) of the space bar, one to the left of the Right Shift key (B11), and one to the left of the Backspace key (E13); three of which are language input keys the key at E00 is another language input key but exists on the 101-key U.S. layout | |
| Windows | | Additional Windows key (×2) and Menu key added (one Windows key to the right of the left control key, the other and the Menu key to the left of the right control key). Introduced in the Microsoft Natural keyboard for use with the Windows 95 operating system. Most modern PCs, whether supplied with Microsoft Windows or not, are now delivered with this layout. Like the Enhanced layout, there are regional variants of the Windows keyboard layout: | Additional Windows key (×2) and Menu key added (one Windows key to the right of the left control key, the other and the Menu key to the left of the right control key). Introduced in the Microsoft Natural keyboard for use with the Windows 95 operating system. Most modern PCs, whether supplied with Microsoft Windows or not, are now delivered with this layout. Like the Enhanced layout, there are regional variants of the Windows keyboard layout: |
| Windows | 104 | standard US layout (as above) | |
| Windows | 105 | European layouts (as above) | |
| Windows | 106 | Korean layout (as above) | |
| Windows | 107 | Brazilian ABNT NBR 10346 variant 2 (alphanumeric portion) and 10347 (numeric), as above | |
| Windows | 109 | Japanese layout (as above) | |
Common additions to the standard layouts include additional power management keys, volume controls, media player controls (e.g. "Play/Pause", "Previous track", "Next track") and miscellaneous user-configurable shortcuts for email client, World Wide Web browser, etc.
The IBM PC layout, particularly the Model M, has been extremely influential, and today most keyboards use some variant of it. This has caused problems for applications developed with alternative layouts, which require keys that are in awkward positions on the Model M layout – often requiring the pinkie to operate – and thus require remapping for comfortable use. One notable example is the escape key, used by the vi editor: on the ADM-3A terminal this was located where the Tab key is on the IBM PC, but on the IBM PC the Escape key is in the corner; this is typically solved by remapping Caps Lock to Escape. Another example is the Emacs editor, which makes extensive use of modifier keys, and uses the Control key more than the meta key (IBM PC instead has the Alt key) – these date to the Knight keyboard, which had the Control key on the inside of the Meta key, opposite to the Model M, where it is on the outside of the Alt key; and to the space-cadet keyboard, where the four bucky bit keys (Control, Meta, Super, Hyper) are in a row, allowing easy chording to press several, unlike on the Model M layout. This results in the "Emacs pinky" problem.

## Reception

Although PC Magazine praised most aspects of the 1981 IBM PC keyboard's hardware design, it questioned "how IBM, that ultimate pro of keyboard manufacture, could put the left-hand shift key at the awkward reach they did". The magazine reported in 1982 that it received more letters to its "Wish List" column asking for the ability to determine the status of the three lock keys than on any other topic. Byte columnist Jerry Pournelle described the keyboard as "infuriatingly excellent". He praised its feel but complained that the Shift and other keys' locations were "enough to make a saint weep", and denounced the trend of PC compatible computers to emulate the layout but not the feel. He reported that the layout "nearly drove" science-fiction editor Jim Baen "crazy", and that "many of [Baen's] authors refused to work with that keyboard" so could not submit manuscripts in a compatible format. The magazine's official review was more sanguine. It praised the keyboard as "bar none, the best ... on any microcomputer" and described the unusual Shift key locations as "minor [problems] compared to some of the gigantic mistakes made on almost every other microcomputer keyboard".
"I wasn't thrilled with the placement of [the left Shift and Return] keys, either", IBM's Don Estridge stated in 1983. He defended the layout, however, stating that "every place you pick to put them is not a good place for somebody ... there's no consensus", and claimed that "if we were to change it now we would be in hot water".

## Standard key meanings

The PC keyboard with its various keys has a long history of evolution reaching back to teletypewriters. In addition to the 'old' standard keys, the PC keyboard has accumulated several special keys over the years. Some of the additions have been inspired by the opportunity or requirement for improving user productivity with general office application software, while other slightly more general keyboard additions have become the factory standards after being introduced by certain operating system or GUI software vendors such as Microsoft.

### From mechanical typewriters

* ⇧ Shift selects the upper character, or upper case of letters. The Shift key in typewriters was attached to a lever that moved the character types so that the uppercase characters could be printed on the paper. Unlike mechanical typewriters, PC keyboards do not capitalize all letters properly when both shift keys are engaged simultaneously.
* ⇪ Caps Lock selects upper case, or if shift is pressed, lower case of letters. In mechanical typewriters, it worked like the Shift key, but also used a lock to keep the Shift key depressed. The lock was released by pressing the Shift key.
* Enter wraps to the next line or activates the default or selected option. ASCII keyboards were labeled CR or Return. Typewriters used a lever that would return the cylinder with the paper to the start of the line.
* Tab ↹ produces an ASCII tab character, moving to the next tab stop.

### From Teletype keyboards

* Ctrl shifts the value of letters and numbers from the ASCII graphics range, down into the ASCII control characters. For example, CTRL-S is XOFF (stops many programs as they print to screen) CTRL-Q is XON (resume printing stopped by CTRL-S).
* Esc produces an ASCII escape character. It may be used to exit menus or modes.
* ~ is the tilde, an accent backspaced and printed over other letters for non-English languages. Nowadays the key does not produce a backspaceable character in US/UK keyboard layouts, and is used for 'not' or 'circa'.
* ` is a backtick or grave accent, also formerly backspaced over letters to write non-English languages; on some systems it is used as an opening quote. The single quote ' is normally used for an acute accent.
* ^ is a circumflex, another accent for non-English languages. Also used to indicate exponentiation where superscript is not available.
* * is an asterisk, used to indicate a note, or multiplication.
* _ is an underscore, which can be backspaced and overprinted to add emphasis, or in certain Programming Languages in place of a Space to form a compound word where the use of Space would yield several separate words.
* | is a vertical bar, originally used as a typographic separator for optical character recognition. Many character sets break it in the middle so it cannot be confused with the numeral "1" or the letter "l" (in most EBCDIC codepages, vertical bar and divided vertical bar are separate characters). This character is often known as a "pipe" (after its use in Unix shells) or a "fencepost".

### Invented for computers with video displays

* Function keys are the F-numbered keys. Their use varies by program; F1 is often Help.
* Cursor keys (↑, →, ↓, ←) move the cursor on the screen. When shifted, they select items.
* Home moves the cursor to the start of text, usually the left side of the screen.
* End moves the cursor to the end of the current line.
* PgUp and PgDn move through the document by pages.
* Del (Delete) deletes the character after the cursor, or the selected items.
* Ins (Insert) originally toggled between text insertion and overwrite modes. Importantly, it is involved along with Ctrl and Shift keys in keyboard shortcuts for copy (Ctrl+Insert) and paste (⇧ Shift+Insert) according to the IBM CUA user interface guidelines; the IBM CUA shortcuts are still widely supported by most current PC operating systems, and many PC users who learned those shortcuts between the late 1980s and the early 1990s may still find them more natural, convenient, or ergonomic than their "modern" Ctrl+X/C/V counterparts, given the close proximity of the Ctrl, Shift and Insert keys to the cursor movement keys. This particular role of the Insert key is often overlooked by modern-times documentation, if not hardware design, which tend to attribute to "Insert" only its more obvious, but much less frequently used and somewhat obsolete, original function.
* Print Screen originally printed a text image of the screen. (On modern computers, Ctrl+Print Screen usually takes a screenshot.) With the Alt key, it switched to SysRq, a different keycode.
* Num Lock toggles the state of the numeric keypad. When off, the keypad acts as arrow and navigational keys. When on, it is a 10-key number pad similar to a standard calculator. Preferences vary so much that a favorite default for this key can often be configured in the BIOS. The key continues to exist on keyboards with separate arrow keys to accommodate those who still prefer the toggleable keypad.
* Scroll Lock is little-used. IBM documentation described it as "inactive", and the key's purpose was a mystery even to keyboard manufacturers. In modern software, typing text usually causes previous text to scroll off the top of the screen or window. Some old programs could disable this and restart at the top of the window when scroll lock was pressed. The advantage is that the entire screenful of text does not shift, making it easier to read. Scroll Lock was also used to lock the cursor on its line and scroll the work area under it. In spreadsheets such as Microsoft Excel, it locks the cell pointer on the current cell, allowing the user to use the arrow keys to move the view window without moving the cell pointer. On some consoles (such as the Linux console), it prevents scrolling of messages until another key combination is pressed. Many hardware KVM switches use Scroll Lock to switch between the devices they control.
* Pause pauses output or processing. In combination with Ctrl, it produces a keycode for Break. Ctrl+Break traditionally stopped programs in DOS. Ctrl+Break is also used to halt execution of the debugger in some programming environments such as Microsoft Visual Studio. In combination with the Windows key, it opens the System Properties window in Microsoft Windows environments.
* Alt shifts the letters and numbers into the range above hex 0x80 where the international characters and special characters exist in the PC's standard character set. Alt plus a number typed on the numeric keypad produces special characters; see Windows Alt keycodes.
* ⊞ Win (sometimes known outside Windows as Super) is a quick way to open the Start menu in Microsoft Windows's standard Explorer shell, and can usually be configured to open the main menu in other operating systems. In Microsoft Windows, the Windows key can also be used in combination with other keys to perform desktop-related actions (e.g. ⊞ Win+M to minimize all open windows, then again to restore them). When connected to a Macintosh computer, the Windows key behaves like the ⌘ Command key.
* ≣ Menu brings up the active application's context menu, in a similar way to right-clicking.
* Copilot opens Microsoft Copilot in Windows. It superseded the menu key on January 4, 2024. The key actually enters ⊞ Win+⇧ Shift+F23.
* AltGr is often used in combination with other keys to print special characters like the backslash on non-English keyboards. It can often be emulated by Ctrl+Alt.
* Fn may be present on compact keyboards such as those built into laptop computers. When depressed in combination with other keys, it either enables the user to access key functions that do not have dedicated keys on the compact keyboard (such as the numeric keypad simulation block), or it controls hardware functions such as switching between the built-in screen and an external display, changing screen brightness, or changing speaker volume. These secondary meanings are usually indicated with text or symbols of a different color printed on the key, with the 'Fn' key text having that same color.
* Turbo is present on some keyboards. It is usually on the right side of the right Shift key. When depressed in combination with a function key it sets the key repeat rate.

## Connection

| System | Connector | Pinout | Transmission Protocol | Command Strings |
| PC (Type 1) | 5-pin DIN (DIN 41524) | 1 CLK 2 DATA 3 -RESET 4 GND 5 +5V | 2 start bits, 8 data bits, make/break bit (keydown/keyup), 1 stop bit keyboard reset via pin 3 to ground | Not supported |
| XT (Type 2) | 5-pin DIN (DIN 41524) | 1 CLK 2 DATA 3 N/C 4 GND 5 +5V | 2 start bits, 8 data bits, make/break bit (keydown/keyup), 1 stop bit keyboard reset via sequence on DATA and CLK lines | Not supported |
| AT | 5-pin DIN (DIN 41524) | 1 CLK 2 DATA 3 N/C 4 GND 5 +5V | 1 start bit, 8 data, 1 parity (odd), 1 stop bit keyboard reset via command string | Supported |
| PS/2 "PS/2 port" | 6-pin Mini-DIN (DIN 45322) | 1 DATA 2 N/C (or MOUSE DATA) 3 GND 4 +5V 5 CLK 6 N/C (or MOUSE CLK) | 1 start bit, 8 data, 1 parity (odd), 1 stop bit keyboard reset via command string | Supported |
| Later PC compatibles | 4-pin USB Type A connector | 1 +5V 2 Data − 3 Data + 4 Ground | sync field plus 8-bit bytes as packets (HANDSHAKE, TOKEN, DATA, Special packets), least-significant bit first. | Supported |