Клавиатура IBM PC — клавиатура, предназначенная для IBM PC-совместимых компьютеров, работающая по IBM PC-совместимому протоколу обмена и имеющая характерный для IBM PC-совместимых компьютеров набор клавиш. Благодаря популярности IBM PC-совместимых компьютеров стала стандартом де-факто для компьютерных клавиатур, пока не была вытеснена стандартом USB HID. К клавиатурам IBM PC относят две принципиально разные по протоколу обмена клавиатуры: 83-клавишную клавиатуру оригинального IBM PC, известную как XT-клавиатура, и клавиатуру IBM PC/AT или PS/2, которая в свою очередь изначально предлагалась в 84-клавишном варианте с цифровым блоком, но позже была заменена 101-клавишной клавиатурой. В дальнейшем добавлялись новые клавиши, менялся способ подключения, но основной набор клавиш и скан-кодов оставался неизменным. Раскладка последней из них остаётся стандартом де-факто и после того, как интерфейс USB вытеснил PS/2.

Предыстория Когда разрабатывался компьютер IBM PC, было решено не разрабатывать для него новую клавиатуру, а доработать клавиатуру от настольного компьютера IBM System/23, известного также как IBM 5322 или Datamaster. Ко времени начала разработки IBM PC он должен был поступить в продажу, но выпуск откладывался из-за задержек в разработке интерпретатора Бейсика.

Разновидности

Клавиатура оригинального IBM PC и PC/XT

Выпущенный в 1981 году IBM PC комплектовался 83-клавишной клавиатурой . Физическая раскладка клавиатуры осталась такой же, как и на System/23, однако назначение многих клавиш было изменено. В буквенно-цифровой области разместились все символы ASCII. Расположение знаков препинания на цифровых клавишах было взято от пишущих машин компании IBM. 10 клавиш левого кластера определены как функциональные. Цифровой блок использовался также для управления курсором, для переключения режима его работы была введена клавиша Num Lock. Клавиша располагалась в среднем ряду слева, как ранее в видеотерминалах, а  — справа от клавиши . Протокол обмена был односторонним, и режим ввода никак не отображался. Схема клавиатуры тоже была изменена: в System/23 использовался параллельный интерфейс, а для PC был разработан последовательный интерфейс, благодаря чему клавиатура была отделена от системного блока и соединялась с ним витым кабелем через разъём 5-DIN. Опросом матрицы и связью с компьютером занимался микроконтроллер intel 8048 или аналогичный, а на материнской плате был установлен сдвиговый регистр, который восстанавливал скан-код из посылаемых клавиатурой импульсов и отправлял его на вход контроллера системного интерфейса i8255, который посылал скан-код на порт 60h и вызывал прерывание IRQ1. Когда IBM PC-совместимые компьютеры стали делать сторонние производители, они взяли на вооружение ту же раскладку и протокол. Некоторые производители (например, ) выпускали клавиатуры, снабжённые индикаторами режима, однако они не могли адекватно отображать режим ввода, если он в процессе работы менялся программно.

Клавиатура вышедшего в 1983 году IBM PC/XT была полностью аналогична, за исключением отсутствия отдельного провода для подачи сигнала сброса контроллера клавиатуры — теперь сброс осуществлялся обнулением линии KB-Clock.

Клавиатура IBM PCjr

Для вышедшего в ноябре 1983 года домашнего компьютера IBM PCjr была разработана собственная клавиатура, более компактная и дешёвая, чем клавиатуры профессиональных серий IBM PC. На ней было только 62 клавиши, функции недостающих клавиш были доступны через сочетание с клавишей . В этой клавиатуре пришлось применить систему подавления фантомных нажатий, а также возможность озвучивать нажатие клавиши через системный динамик. С системным блоком клавиатура связывалась по инфракрасному каналу, наподобие телевизионного пульта — для этого в клавиатуру устанавливались четыре батарейки AA, однако в комплекте имелся кабель для подключения к компьютеру напрямую. У клавиатуры отсутствовал буфер нажатых клавиш, из-за чего прерывание обработки нажатий пришлось сделать немаскируемым. Несмотря на меньшее количество клавиш и другой способ подключения, она генерировала те же самые скан-коды, что и обычная PC/XT-клавиатура.

Первая версия клавиатуры IBM PCjr вызвала множество нареканий: островные кнопки были слишком узкими и неудобными при слепой печати, механизм — тугим и ненадёжным, так как использовалась электропроводящая резина, а обозначения, нанесённые на корпус, а не на саму клавишу — плохо читаемыми, особенно когда клавиатура лежала на столе. Вскоре была выпущена версия клавиатуры более традиционного вида, с привычным профилем кнопок, хотя и с тем же самым механизмом, и IBM даже предлагала бесплатную замену старой клавиатуры на новую, что однако не спасло PCjr от провала.

84-клавишная AT-клавиатура

Для вышедшего в 1984 году IBM PC/AT была разработана новая версия клавиатуры, незначительно изменившаяся внешне, но с полностью переработанной схемой. Цифровой блок был выделен в отдельную группу. В клавиатуре использовался микроконтроллер Intel 8042 (впоследствии — i8242). Протокол обмена стал двусторонним, что позволило отображать состояние режимов ввода (для чего на клавиатуре появились три светодиода), а также изменять некоторые настройки ввода; кроме того, контроллер клавиатуры на материнской плате взял на себя некоторые дополнительные функции, в том числе выход из защищённого режима процессора. Количество скан-кодов увеличилось, и при отпускании клавиши перед скан-кодом передавался префикс F0h. На клавиатуре появилась кнопка , которая, однако, так и не использовалась согласно изначальной задумке.

101/104-клавишная AT-клавиатура

В 1985 году была представлена «усовершенствованная клавиатура IBM», известная также как . С 1985 года этой клавиатурой комплектовался терминал IBM 3161, а с 1986 года — IBM PC. В новой раскладке были учтены многие пожелания клиентов, в частности — длинный левый (только для американской раскладки). Позже были добавлены выступы на клавишах , , а также на клавише на цифровом блоке. Общая компоновка, в частности, курсорные клавиши в виде «перевёрнутой Т», была выбрана с оглядкой на клавиатуру терминалов VT220 фирмы DEC. Количество функциональных клавиш было увеличено до 12, они были перенесены в верхний ряд и разбиты на блоки по 4 клавиши. Новая клавиатура имела отдельный блок клавиш курсора и клавиши управления страничным выводом, но, несмотря на это, клавиша и светодиод сохранились. Скан-коды новых клавиш соответствовали скан-кодам клавиш на цифровом блоке с аналогичным (при выключенном NumLock) назначением с добавлением префикса E0. Программы, опрашивавшие клавиатуру через BIOS, получали при нажатии клавиш курсорной группы коды, соответствующие клавишам цифрового блока с нажатым Shift, что позволяло полноценно использовать новые клавиши в старом ПО, однако это не касалось программ, опрашивавших клавиатуру напрямую. Клавиша была перенесена в средний ряд, как в механических печатных машинках, а клавиша  — в нижний и была продублирована, так же, как и клавиша . как отдельная клавиша с клавиатуры была убрана, но её скан-код генерировался при нажатии сочетаний клавиш или . Именно такая раскладка окончательно стала стандартом, поддерживаемым большинством производителей клавиатур.

Клавиатура PS/2

В 1987 году для компьютера IBM PS/2 стал использоваться разъём MiniDIN-6, который в контексте использования для клавиатур и мышей также вскоре стали называть PS/2. В дальнейшем этот разъём стал основным для PC-клавиатур, вытеснив 5-DIN. Протокол при этом не изменился, подключение PS/2-клавиатуры к компьютеру стандарта AT и наоборот доступно через пассивный переходник. По новой спецификации клавиатура должна была поддерживать, кроме стандартного, альтернативный набор скан-кодов set3, однако этот набор так и не получил распространения: в частности, была попытка использовать этот набор в ранних версиях Windows NT, но из-за неполной поддержки этого набора производителями клавиатур от этой идеи пришлось отказаться. Контроллер клавиатуры на материнской плате обзавёлся дополнительными командами для поддержки новых возможностей протокола, а также поддержкой мыши. Позже разъём клавиатуры стали окрашивать в сиреневый цвет, чтобы отличить его от разъёма мыши (зелёный).

Появление клавиш Windows и Menu В 1994 году компания Microsoft выпустила клавиатуру Microsoft Natural keyboard, на которой имелись три дополнительные кнопки: две клавиши Windows, служащие для вызова меню «Пуск», и клавиша контекстного меню. В дальнейшем наличие этих клавиш стала требовать спецификация PC99.

Региональные варианты

Основная 101(104)-клавишная раскладка получила неофициальное название ANSI. Кроме неё существовало ещё несколько региональных раскладок, различающихся в основном клавишами буквенно-цифровой группы: 102/105-клавишная европейская модификация, известная также как ISO-раскладка, описанная в стандарте . В этой раскладке клавиша Enter расположена на двух горизонтальных рядах (D13/С13), но её нижняя часть укорочена, чтобы разместить клавишу хеша (которая, однако, имеет код обратного слеша). Кроме того, в этой модификации имеется дополнительная клавиша обратного слеша рядом с левой клавишей . Данная раскладка происходит от изначальной раскладки клавиатуры IBM PC, только в ней слева от клавиши Enter располагалась клавиша Бразильская раскладка (или ABNT) — схожа с европейской, но имеется дополнительная клавиша рядом с правой клавишей , а также клавиша точки на цифровом блоке. Регламентирована стандартами ABNT NBR 10346 variant 2 (алфавитно-цифровой блок) и 10347 (цифровая клавиатура). Южнокорейская раскладка (KS) с двумя дополнительными возле клавиши для ввода символов ханча и хангыль. Японская раскладка (неофициально называемая JIS) — содержит 106 (109) клавиш: укороченный Backspace, чтобы вместить символ иены, дополнительные клавиши слева от и правой клавиши , а также три клавиши в ряду пробела: для переключения раскладки и ввода каны. Клавиатура для японской версии PC впервые появилась на компьютере (японском варианте PS/2). В дальнейшем именно эта раскладка была рекомендована для японского языка консорциумом .

Кроме того, существуют версии с увеличенной клавишей Enter, известной также как Bigass-Enter, берущая начало от 84-клавишной клавиатуры IBM PC/AT. В этих раскладках клавиша обратного слеша располагается в верхнем ряду, в связи с чем клавиша Backspace укорочена.

Компактные и расширенные клавиатуры С целью экономии места на рабочем столе или чтобы уместить клавиатуру на устройстве, например ноутбуке, на котором полноразмерная клавиатура не может поместиться, производители клавиатур могут располагать клавиши на клавиатуре в нестандартном порядке или удалять клавиши с клавиатуры. Компактные программируемые клавиатуры популярны, например, среди геймеров и системных администраторов, так как такую клавиатуру легче носить с собой. В 1987 году сокращённую версию клавиатуры для PC представила сама компания IBM — это была клавиатура без цифрового блока (TKL), известная также как IBM Space Saving Keyboard. Изначально широкого распространения ни сама SSK, ни такой формат в целом не получали вплоть до «механического ренессанса» 2010-х годов.