Клавиатура IBM PC
Клавиатура IBM PC — клавиатура, предназначенная для IBM PC-совместимых компьютеров, работающая по IBM PC-совместимому протоколу обмена и имеющая характерный для IBM PC-совместимых компьютеров набор клавиш[1]. Благодаря популярности IBM PC-совместимых компьютеров стала стандартом де-факто для компьютерных клавиатур, пока не была вытеснена стандартом USB HID. К клавиатурам IBM PC относят две принципиально разные по протоколу обмена клавиатуры: 83-клавишную клавиатуру оригинального IBM PC, известную как XT-клавиатура , и клавиатуру IBM PC/AT или PS/2, которая в свою очередь изначально предлагалась в 84-клавишном варианте с цифровым блоком , но позже была заменена 101-клавишной клавиатурой[2]. В дальнейшем добавлялись новые клавиши, менялся способ подключения, но основной набор клавиш и скан-кодов оставался неизменным. Также именно PC-раскладка стала использоваться в большинстве USB HID-клавиатур.
Предыстория
Когда разрабатывался компьютер IBM PC, было решено не разрабатывать для него новую клавиатуру, а доработать клавиатуру IBM Model F от моноблока IBM System/23, известного также как IBM 5322 или Datamaster[3]. Ко времени начала разработки IBM PC он должен был поступить в продажу, но выпуск откладывался из-за задержек в разработке интерпретатора Бейсика[4]. В свою очередь раскладка клавиатуры взята от терминала IBM 5250 , но конструкция была переработана для облегчения и удешевления.
Разновидности
Клавиатура оригинального IBM PC и PC/XT
Выпущенный в 1981 году IBM PC комплектовался 83-клавишной клавиатурой IBM Model F . Физическая раскладка клавиатуры осталась такой же, как и на System/23, однако назначение многих клавиш было изменено. В буквенно-цифровой области разместились все символы ASCII. Расположение знаков препинания было взято от пишущих машин компании IBM, в целом все знаки ASCII расставлены в том же порядке, как и на терминале VT100 фирмы DEC. 10 клавиш левого кластера определены как функциональные. Цифровой блок использовался также для управления курсором, для переключения режима его работы была введена клавиша Num Lock[5]. Клавиша Ctrl располагалась в среднем ряду слева, как ранее в видеотерминалах, а ⇪ Caps Lock — справа от клавиши пробел[6]. Протокол обмена был односторонним, и режим ввода никак не отображался[5]. Некоторые производители (например, KeyTronic ) выпускали клавиатуры, снабжённые индикаторами режима, однако они не могли адекватно отображать режим ввода, если он в процессе работы менялся программно[2]. Схема клавиатуры тоже была изменена: в System/23 использовался параллельный интерфейс, а для PC был разработан последовательный интерфейс, благодаря чему клавиатура была отделена от системного блока и соединялась с ним витым кабелем[3] через разъём 5-DIN. Опросом матрицы и связью с компьютером занимался микроконтроллер intel 8048 или аналогичный.
Клавиатура вышедшего в 1983 году IBM PC/XT была полностью аналогична, за исключением отсутствия отдельного провода для подачи сигнала сброса контроллера клавиатуры — теперь сброс осуществлялся передачей специальной последовательности на шину данных/синхронизации.
Клавиатура IBM PCjr
Для вышедшего в ноябре 1983 года домашнего компьютера IBM PCjr была разработана собственная клавиатура, более компактная и дешёвая, чем клавиатуры профессиональных серий IBM PC. На ней было только 62 клавиши, функции недостающих клавиш были достпны через сочетание с клавишей Fn[7][8]. Кроме того, в этой клавиатуре была применена система подавления фантомных нажатий[9], а также возможность озвучивать нажатие клавиши через системный динамик[7]. С системным блоком клавиатура связывалась по инфракрасному каналу, наподобие телевизионного пульта — для этого в клавиатуру устанавливались четыре батарейки AA, однако в комплекте имелся кабель для подключения к компьютеру напрямую. У клавиатуры отсутствовал буфер нажатых клавиш, из-за чего прерывание обработки нажатий пришлось сделать немаскируемым[8]. Несмотря на меньшее количество клавиш и другой способ подключения, она генерировала те же самые скан-коды, что и обычная PC/XT-клавиатура[9].
Первая версия клавиатуры IBM PCjr вызвала множество нареканий: островные кнопки были слишком узкими и неудобными при слепой печати, механизм — тугим и ненадёжным, так как использовалась электропроводящая резина, а обозначения, нанесённые на корпус, а не на саму клавишу — плохо читаемыми, особенно когда клавиатура лежала на столе. Вскоре была выпущена версия клавиатуры более традиционного вида, с привычным профилем кнопок, хотя и с тем же самым механизмом, и IBM даже предлагала бесплатную замену старой клавиатуры на новую[10]. Предлагали специальные клавиатуры для PCjr и сторонние производители. Так как сам IBM PCjr провалился на рынке, раскладка клавиатуры PCjr не получила распространения.
84-клавишная AT-клавиатура
Для вышедшего в 1984 году IBM PC/AT была разработана новая версия клавиатуры, незначительно изменившаяся внешне[6] но с полностью переработанной схемой. Цифровой блок был выделен в отдельную группу. В клавиатуре использовался микроконтроллер Intel 8042 (впоследствии i8242). Протокол обмена стал двусторонним, чтобы отображать состояние режимов ввода (для чего на клавиатуре появились три светодиода), а также изменять некоторые настройки ввода; кроме того, контроллер клавиатуры на материнской плате взял на себя некоторые дополнительные функции, в том числе выход из защищённого режима процессора. Количество скан-кодов увеличилось, и при отпускании клавиши перед скан-кодом передавался префикс F0h. На клавиатуре появилась кнопка SysRq[2], которая, однако, так и не использовалась согласно изначальной задумке[11][12].
101/104-клавишная AT-клавиатура
В 1985 году была представлена «усовершенствованная клавиатура IBM», известная также как IBM Model M . С 1985 года этой клавиатурой комплектовался терминал IBM 3161, а с 1986 года — IBM PC[13][6]. В новой раскладке были учтены многие пожелания клиентов, в частности — длинный левый ⇧ Shift (только для американской раскладки). Общая компоновка, в частности курсорные клавиши в виде «перевёрнутой Т» аналогична применённой в клавиатуре LK201 терминалов VT220[14] фирмы DEC. Количество функциональных клавиш было увеличено до 12, они были перенесены в верхний ряд и разбиты на блоки по 4 клавиши. Новая клавиатура имела отдельный блок клавиш курсора и клавиши управления страничным выводом[15], но несмотря на это клавиша и светодиод Num Lock сохранились. Скан-коды новых клавиш соответствовали скан-кодам клавиш на цифровом блоке с аналогичным (при выключенном NumLock) назначением с добавлением префикса E0. Программы, опрашивавшие клавиатуру через BIOS получали при нажатии клавиш курсорной группы с коды, соответствующие клавишам цифрового блока с нажатым Shift, что позволяло полноценно использовать новые клавиши в старом ПО, однако это не касалось программ, опрашивавших клавиатуру напрямую[16]. Клавиша ⇪ Caps Lock была перенесена в средний ряд, как в механических печатных машинках, а клавиша Ctrl — в нижний и была продублирована, также как клавиша Alt[6]. SysRq как отдельная клавиша с клавиатуры была убрана, но её скан-код генерировался при нажатии сочетаний клавиш ⇧ Shift+Print Screen или Ctrl+Print Screen. Именно такая раскладка окончательно стала стандартом, поддерживаемым большинством производителей клавиатур[17].
Клавиатура PS/2
В 1987 году для компьютера IBM PS/2 стал использоваться разъём MiniDIN-6, который в контексте использования для клавиатур и мышей также вскоре стали называть PS/2. В дальнейшем этот разъём стал основным для PC-клавиатур, вытеснив 5-DIN. Протокол при этом не изменился, подключение PS/2-клавиатуры к компьютеру стандарта AT и наоборот доступно через пассивный переходник[18]. Однако по новой спецификации клавиатура должна была поддерживать, кроме стандартного, альтернативный набор скан-кодов set3[19][20][21]. Контроллер клавиатуры на материнской плате обзавёлся дополнительными командами для поддержки новых возможностей протокола, а также поддержкой мыши. Позже разъём клавиатуры стали окрашивать в сиреневый цвет, чтобы отличить его от разъёма мыши (зелёный).
Появление клавиш Windows и Menu
В 1994 году компания Microsoft выпустила клавиатуру Microsoft Natural keyboard, на которой имелись три дополнительные кнопки: две клавиши Windows, служащие для вызова меню «Пуск», и клавиша контекстного меню[22]. В дальнейшем, эти клавиши стали устанавливаться на большинство PC-совместимых клавиатур.
Региональные варианты
Основная 101(104)-клавишная раскладка получила неофициальное название ANSI. Кроме неё существовало ещё несколько региональных раскладок, отличающихся в основном клавишами буквенно-цифровой группы:
- 102/105 клавишная европейская модификация[23], известная также как ISO-раскладка, описанная в стандарте ISO/IEC 9995 . В этой раскладке клавиша Enter расположена на двух горизонтальных рядах (D13/С13), но её нижняя часть укорочена, чтобы разместить клавишу хеша (которая однако имеет код обратного слеша). Кроме того, в этой модификации имеется дополнительная клавиша обратного слеша рядом с левой клавишей ⇧ Shift. Данная раскладка происходит от изначальной раскладки клавиатуры IBM PC, только в ней слева от клавиши Enter располагалась клавиша ~`
- Бразильская раскладка[24] (или ABNT) — схожа с европейской, но имеется дополнительная клавиша рядом с правой клавишей ⇧ Shift, а также клавиша точки на цифровом блоке.
- Южнокорейская раскладка[25] (KS) с двумя дополнительными возле клавиши пробел для ввода символов ханча и хангыль.
- Японская раскладка[26] (JIS) — содержит 106 (109) клавиш: укороченный Backspace чтобы вместить символ иены, дополнительные клавиши слева от ↵ Enter и правой клавиши ⇧ Shift, а также три клавиши в ряду пробела: для переключения раскладки и ввода каны.
Кроме того, существуют версии с увеличенной клавишей Enter[27], известной также как Bigass-Enter, берущая начало от 84-клавишной клавиатуры IBM PC/AT. В этих раскладках клавиша обратного слеша располагается в верхнем ряду, в связи с чем клавиша Backspace укорочена — по сути это раскладка KS без дополнительных клавиш в ряду пробела.
Компактные и расширенные клавиатуры
С целью экономии места на рабочем столе или чтобы уместить клавиатуру на устройстве, например ноутбуке, на котором полноразмерная клавиатура не может поместиться, производители клавиатур могут располагать клавиши на клавиатуре в нестандартном порядке или удалять клавиши с клавиатуры[18]. Компактные программируемые клавиатуры популярны, например, среди геймеров и системных администраторов, так как такую клавиатуру легче носить с собой. В 1987 году сокращённую версию клавиатуры для PC представила сама компания IBM — это была клавиатура без цифрового блока (TKL), известная также как IBM Space Saving Keyboard. Эта клавиатура продавалась по той же цене, что и полноразмерная, и распространения ни сама SSK, ни такой формат в целом не получал вплоть до «механического ренессанса» 2010-х годов.
Наиболее популярные форматы компактных клавиатур[28]:
- 80% или TKL (от англ. tenkeyless — буквально «без десяти клавиш») — клавиатура стандартной раскладки без цифрового блока. Цифровой блок также может эмулироваться в пределах основной буквенно-цифровой клавиатуры при включении режима NumLock;
- 75% — распространённый на ноутбуках[29] формат, при котором клавиши Home, End, PgUp и PgDown могут либо располагаться в один столбец по правому краю клавиатуры, либо эмулироваться через клавишу Fn совместно с курсорными клавишами. Малоиспользуемые клавиши (Scroll Lock, Pause, Insert) как правило тоже эмулируются;
- 60% — формат, при котором клавиатуры состоят исключительно из буквенно-цифрового блока, клавиш-модификаторов, клавиш Esc, ↵ Enter и ← Backspace. Все остальные клавиши (F1-F12, стрелки и другие) эмулируются с помощью клавиши Fn.
Кроме того, производители ноутбуков, если позволяет место, часто стремятся сохранить цифровой блок, либо в сокращённом виде (клавиши +, - и ↵ Enter размещаются над цифровым блоком), либо с клавишами уменьшенного размера, сохраняя при этом блок курсорных клавиш. Существуют также и клавиатуры с расширенными функциями: кроме мультимедиа-клавиш они могут оснащаться клавишами для эмуляции стандартных сочетаний клавиш, программируемыми макро-клавишами, на которые можно назначить эмуляцию последовательностей нажатия, либо даже целую программу с циклами и условными переходами, а также дополнительными элементами управления: колёсами прокрутки, регулировки громкости, а также встроенными трекболами, тачпадами и экранами. В отличие от ADB, а также более позднего USB HID, подключение PC-клавиатуры и мыши в один разъём не предусмотрено, поэтому такие клавиатуры поставлялись с двумя раздельными разъёмами Mini-DIN для клавиатуры и мыши.
-
TKL-клавиатура «IBM Model M Space Saving Keyboard »
-
Клавиатура формата 75% со встроенным трекболом. Видны два разъёма Mini-DIN (PS/2) разного цвета
-
Клавиатура IBM Model M13 с трекпоинтом и двумя кнопками мыши
-
Клавиатура Microsoft Natural Pro с мультимедийными клавишами
Мультимедийные клавиши
С развитием технологий мультимедиа и бумом доткомов в конце 90-х производители клавиатур в качестве конкурентного преимущества начали добавлять на клавиатуры дополнительные клавиши, призванные облегчить работу с мультимедиа и вебом. В дальнейшем сложился перечень стандартных клавиш для работы с мультимедиа и браузером[30][31]:
- Клавиши управления веб-браузером: назад, вперёд, обновить, стоп, поиск, избранное, домашняя страница;
- Клавиши управления медиапроигрывателем: отключить звук, уменьшить громкость, увеличить громкость, следующий трек, предыдущий трек, остановка воспроизведения, воспроизвести/пауза;
- Клавиши избранных программ: почтовый клиент, медиаплейер и две кнопки дополнительных приложений.
Принцип работы
В микрокомпьютерах конца 1970-х — начала 1980-х годов, в частности «троице 77-го» (Apple II, Commodore PET, TRS-80) использовались два подхода: непосредственный опрос клавиатуры процессором (в Commodore PET и TRS-80) или клавиатура, формирующая готовые ASCII-коды вводимых символов (Apple II[32]). Первый был самым простым с точки зрения технической реализации, но создавал постоянную нагрузку на процессор[33] и требовал соединения клавиатуры многожильным шлейфом, отчего такие клавиатуры чаще всего совмещали с системным блоком. Второй требовал отдельного контроллера клавиатуры, и при этом жёстко привязывал клавиши к символам ASCII, не давал возможности получить состояние клавиш-модификаторов (⇧ Shift и Ctrl) отдельно от прочих нажатых клавиш и ограничивал возможность использования сочетаний клавиш.
В IBM PC был выбран другой подход: опросом клавиатуры занимался контроллер, расположенный в её корпусе, но он передавал компьютеру не символ ASCII, а скан-код, причём различный при нажатии и отпускании клавиши. При длительном удержании клавиши код нажатия передаётся повторно через определённый промежуток времени[18]. В компьютер скан-код передавался в виде последовательного кода, а на материнской плате устанавливался аналогичный контроллер, который при получении сигнала от клавиатуры генерировал прерывание INT 09h и передавал полученный скан-код в порт 60h[34]. Впоследствии его функции перешли в Super I/O или LPC-чип, либо в южный мост чипсета[35][36]. Для случаев, когда процессор не успевает обработать нажатия клавиш, предусмотрен буфер клавиатуры[1].
С точки зрения схемы контроллера, все клавиши клавиатуры равнозначны, включая клавиши-модификаторы и клавиши-переключатели; каждая имеет свой скан-код, причем дублирующиеся клавиши, например левый и правый ⇧ Shift — разный[37]. Преобразованием скан-кодов в коды символов и управлением вводом с клавиатуры занималась уже BIOS, операционная система или даже прикладное ПО[1]. Такой подход позволил в назначать на любую клавишу любое действие, которое требуется в программе, а также не привязываться к определённой локали[5].
В клавиатуре первых IBM PC и PC/XT протокол обмена был односторонним, режим ввода никак не отображался, а какие-либо схемы для отображения режима, встроенные в клавиатуру, не могли его адекватно отображать[5]. В IBM PC/AT протокол обмена компьютера с клавиатурой значительно изменился: он стал двусторонним, позволяя вывести три индикатора режима (Caps Lock, Num Lock и Scroll Lock), а также устанавливать период автоповтора и изменять набор скан-кодов. Доступ к этим функциям на PC-совместимых компьютерах также осуществлялся через порт 60h, который теперь работал и на запись[34]. Протоколы клавиатур PC/XT и PC/AT несовместимы, IBM PC/AT и последующие PC-совместимые компьютеры не распознавали клавиатуры от PC/XT. Некоторые производители выпускали клавиатуры на два стандарта, снабжённые переключателем[34].
Сравнение протоколов и разъёмов подключения
Тип | Разъём | Распайка | Протокол | Передача команд контроллеру | Набор скан-кодов |
---|---|---|---|---|---|
PC (Type 1) [38] | 5-pin DIN (DIN 41524) |
1 CLK 2 DATA |
2 стартовых бита, 8 бит данных, бит нажатия/отпускания клавиши, 1 стоповый бит Сброс контроллера — замыканием 3-го контакта на корпус |
Нет | Набор set1[19][20][21] (PC/XT) |
XT (Type 2) [39] | 1 CLK 2 DATA |
2 стартовых бита, 8 бит данных, бит нажатия/отпускания клавиши, 1 стоповый бит Сброс контроллера — специальной последовательностью на шины данных/синхронизации | |||
PCjr | ИК-порт, либо проприетарный разъём | 1 ключ 2 N/A |
2 стартовых бита, 8 бит данных, бит нажатия/отпускания клавиши, 1 стоповый бит Сброс контроллера — не предусмотрен | ||
AT | 5-pin DIN (DIN 41524) |
1 CLK 2 DATA |
1 стартовый бит, 8 бит данных, 1 бит чётности, 1 стоповый бит сброс — посылкой команды контроллеру |
Есть | Набор set2[19][20][21] (PC/AT) |
PS/2 | 6-pin Mini-DIN (DIN 45322) |
1 DATA 2 N/C |
набор set2 или set3[19][20][21] |
Назначение и особенности работы отдельных клавиш
Шаблон:Клавиатура компьютера Так как клавиатура при нажатии клавиш генерирует скан-коды, не привязанные напрямую к кодам вводимых символов, а преобразованием нажатой клавиши во вводимый символ занимается либо прерывание BIOS, либо драйвер клавиатуры, любая клавиша на клавиатуре может иметь любое назначение. Однако нанесённые на клавиши обозначения и стандартная работа с этими клавишами BIOS и операционной системы закрепили определённое их поведение.
- Esc — используется в основном как клавиша отмены, либо для очистки только что введённых данных, например командной строки DOS[40]. Как клавиша ввода специальных символов ко времени появления PC она уже не использовалось[1].
- Ctrl — хотя эта клавиша была взята из раскладки терминалов для ввода управляющих символов, в таком качестве она используется исключительно в командной строке DOS и эмуляторах терминала. В большинстве приложений она используется в составе сочетаний клавиш[41].
- Alt — взята из клавиатуры System/23 и тоже используется в основном в составе сочетаний клавиш[40]. Также она позволяет вводить отсутствующие на клавиатуре символы — не только из алфавита ASCII — путём ввода при нажатой Alt кода символа на цифровой клавиатуре[42][43]. В 102 (105)-клавишных клавиатурах правая клавиша Alt обозначается как Alt Gr и предназначена для ввода дополнительных символов: диакритики, знаков препинания и т.д[44]. Кроме того, в различных меню и диалоговых окнах отдельные буквы названий пунктов могут быть выделены цветом или подчёркиванием, если фокус ввода находится в этом меню, сочетание клавиши Alt с выделенной буквой равнозначно выбору этого пункта меню. В Windows по умолчанию это выделение не отображается, но появляется при однократном нажатии Alt.
- ⇪ Caps Lock как правило влияет только на регистр букв, но не на цифры и знаки препинания[45]. В оригинальном PC и PC/XT выбранный регистр никак не отображался[5], начиная с PC/AT для этой цели имеется световой индикатор[2].
- F1…F10 (…F12) не имеют предопределённого значения, однако некоторые функции закреплены за какими-то из них в большом количестве программ, например F1 чаще всего вызывает встроенную справку[46].
- ↵ Enter — совмещает в себе функцию перевода строки и подтверждения операции, хотя во многих продуктах IBM за эти функции отвечали разные клавиши.
- Num Lock — была введена для того, чтобы совместить цифровой и навигационный блок клавиатуры. За это решение компанию IBM многократно критиковали[5], пока не была выпущена клавиатура Model M, в которой появились выделенные навигационные клавиши[16], хотя клавиша Num Lock осталась для обеспечения совместимости. Кроме того, сочетанием клавиш Ctrl+Num Lock можно было приостановить работу текущей программы — позже эта функция была выведена на отдельную клавишу Pause.
- Scroll Lock — включает режим прокрутки навигационными клавишами, для которого на клавиатуре начиная с PC/AT существует индикатор. Этот режим оказался не очень удобным и эта клавиша вскоре вышла из употребления и может отсутствовать на некоторых клавиатурах.
- Pause — приостановка выполнения программы. Также как Scroll Lock, за пределами командной строки DOS не используется. В ранних версиях была сблокирована с клавишей Num Lock и вызывалось сочетанием с Ctrl[47].
- Break — не является самостоятельной клавишей. В ранних версиях эта функция была сблокирована с клавишей Scroll Lock, а начиная с Model M — с клавишей Pause. Вызывается сочетанием с клавишей Ctrl и прерывает работу текущей программы[47]. Используется практически исключительно в командной строке DOS, для чего приложение должно откликаться на специальное прерывание, но чаще приложения командной строки реагируют на управляющий символ «End of text» (Ctrl+C).
- Print Screen — изначально посылала текущий экран на принтер[47], с появлением Windows стала использоваться для создания скриншотов[42]. Изначально была сблокирована с клавишей * и вызывалась сочетанием ⇧ Shift+*[40].
- SysRq — появилась на 84-клавишной клавиатуре PC/AT[2], предполагалось, что она будет использоваться для переключения между программами в многозадачной ОС[48], но эта задумка так и не была реализована[11][12], позже она была убрана под клавишу Print Screen (вызывалась в сочетании с клавишей Shift).
- Insert — для переключения между режимами вставки и замены. Чаще всего используется режим вставки, когда вводимый символ добавляется в позиции курсора, в то время как в режиме замены символ, стоящий после курсора удаляется и заменяется на введённый с клавиатуры[49]. Режим замены используется достаточно редко, в основном для заполнения различных форм, кроме того само наличие этого режима а особенно отсутствие индикации его критикуется многими специалистами по пользовательскому интерфейсу[50]. Также данная клавиша в сочетании с клавишами Ctrl или ⇧ Shift может работать с буфером обмена.
- Delete используется для удаления объекта после курсора[51], а также выделенных объектов. Кроме того, сочетание клавиш Ctrl+Alt+Del изначально использовалась для быстрой перезагрузки компьютера без очистки памяти[3] — предполагалось, что оно будет использоваться только разработчиками ПО[52]. Это сочетание зашито в BIOS, однако так как большинство операционных систем самостоятельно обрабатывают нажатия клавиш, значение этого сочетания может быть различным.
PC-клавиатуры и USB HID
Начиная с конца 90-х, существующий стандарт начал вытесняться стандартом USB HID. Стандарт USB более универсален, позволяет подключать к одной машине несколько клавиатур и мышей, а также подключать и отключать клавиатуру без отключения питания компьютера. В 2000 году компании Intel и Microsoft выпустили спецификацию PC 2001, в которой объявили PS/2-клавиатуру и мышь устаревшими стандартами, предлагая производителям переходить на USB. Однако в течение последующих двух десятилетий эти стандарты продолжали использоваться, наряду с USB по нескольким причинам:
- В разъём USB можно подключить съёмный диск либо устройство беспроводной связи, что может быть недопустимо при работе с коммерческой или государственной тайной. Даже при отсутствии дополнительных разъёмов возможно подключение через разветвитель. В разъёмы PS/2 можно подключить только клавиатуру и мышь[53], все USB-разъёмы в этом случае можно отключить физически. Альтернативой может быть физическая фиксация штекера в гнезде USB, но при этом злоумышленник всё ещё имеет возможность разрезать кабель, подключившись в разрыв цепи.
- Стандарт USB HID допускает до 8 одновременно нажатых клавиш на одном устройстве. Это ограничение можно преодолеть, зарегистрировав клавиатуру, как несколько HID-устройств. Традиционная PC-клавиатура не имеет подобного ограничения, поэтому долгое время считалась более предпочтительной для некоторых компьютерных игр, таких как симуляторы[54].
- Протокол USB более сложен как в технической реализации, требуя наличия на устройстве тактового генератора, так и в написании драйвера, в то время как обработка нажатий традиционной PC-клавиатуры может быть реализовано с помощью нескольких ассемблерных команд. По последней причине долгое время USB-клавиатуры не поддерживались некоторыми программами BIOS setup. Также если клавиатура регистрирует в системе несколько HID-устройств, она может некорректно работать с некоторыми версиями BIOS.
- Подключение клавиатуры и мыши через PS/2 позволяет освободить USB-разъёмы без использования USB-хабов.
Многие клавиатуры, выпускаемые после появления стандарта USB HID, хотя и не все, поддерживают оба протокола. Такую клавиатуру с разъёмом USB можно подключить к компьютеру, имеющему разъём PS/2 или AT через пассивный переходник, (и наоборот, PS/2 клавиатуру — к USB). Для подключения клавиатур более старых моделей требуется активный переходник — существуют подобные переходники как промышленно изготавливаемые, так и любительские — например, Soarer's converter на основе популярного контроллера atmega 32u4, позволяющий не только подключать к USB любые PC-клавиатуры, в том числе PC/XT, но и произвольно менять назначение клавиш[55].
Критика
Первая 83-клавишная клавиатура получила высокую оценку в первом номере журнала PC Magazine, однако автор обзора удивлялся, «как такой признанный профессионал в изготовлении клавиатур, как IBM мог разместить левую клавишу ⇧ Shift в столь неудобном месте»[56]. Позже в том же журнале сообщалось, что от читателей было получено множество писем, где они изъявляли желание увидеть в новой модели индикацию режимов Caps Lock, Scroll Lock и NumLock. Критиковалась идея использовать одно и то же поле для курсорных клавиш и цифр, а также путаница, вызванная наличием клавиши Scroll Lock — незнакомые с данной клавиатурой пользователи могли предположить, что эта клавиша нужна для выключения режима Num Lock[5].
Джерри Пурнель в статье в журнале BYTE также критиковал размещение некоторых клавиш, заявляя, что их расположение «может вывести из себя, особенно учитывая, что та же корпорация IBM выпускала печатную машину Selectric с замечательной клавиатурой», и ругал прочих производителей PC-совместимых компьютеров за то, что они повторяют раскладку клавиш IBM, а не ощущение от нажатия, присущее только клавиатурам IBM[57]. Также он писал, что эта раскладка «едва не свела с ума» Джима Баена, издателя фантастических книг, и для того, чтобы нормально ей пользоваться, ему пришлось попросить знакомого программиста написать специальную утилиту, которая переназначала клавиши более удобным образом[58]. В то же время редакция самого журнала BYTE отнеслась к клавиатуре более благосклонно, посчитав эту клавиатуру «возможно, лучшей... среди всех микрокомпьютеров», а короткий левый ⇧ Shift — «мелочью по сравнению с ошибками, которые допускали другие производители компьютеров»[43].
Защищая выбранную раскладку, Дон Эстридж в 1983 году заявил, что «положение этих клавиш не так уж и плохо» и что «какое бы место ни было выбрано для этих клавиш, кому-то оно не понравится». «Если мы захотим их изменить, мы точно попадём впросак»[59].
Питер Нортон хорошо отзывался о выбранной схеме обмена данными между компьютером и клавиатурой, называя её «впечатляющей», «простой и элегатной»[1].
С появлением PC/AT, обозреватели PC Magazine заметили, что хотя в IBM и сгладили некоторые недочёты предыдущей модели, всё же новая клавиатура ещё не идеальна, отмечая уменьшившуюся в размерах и отнесённую слишком далеко клавишу ← Backspace а также неудачную компоновку курсорно-цифрового блока[60]. Питер Нортон назвал перемещённую в цифровой блок клавишу Esc «бессмысленным решением» и «неприятностью» для тех, кому предстоит пользоваться клавиатурами обоих типов[61].
Когда вышла Model M, один из обозревателей PC Magazine сетовал, что раскладка клавиатуры снова изменилась, но в то же время понимал, что она останется надолго. «У меня такое смутное чувство, будто IBM говорит мне: „Тебе стоит полюбить её, потому что это клавиатура будущего“»[16]. Главным плюсом новой клавиатуры он назвал отдельные клавиши для стрелок.
Пользователи VIM, emacs и некоторых приложений для UNIX-подобных систем критикуют компанию IBM за размещение клавиш Ctrl, ⇪ Caps Lock и Esc на тех местах, на которых они разместили их в клавиатуре Model M, т.к. левому мизинцу при работе с сочетаниями клавиш приходится чаще покидать домашний ряд, отчего создаётся излишняя нагрузка на слабый палец[62][63][15].
Примечания
- ↑ 1,0 1,1 1,2 1,3 1,4 Norton, 1984.
- ↑ 2,0 2,1 2,2 2,3 2,4 Гук, 2006, с. 642.
- ↑ 3,0 3,1 3,2 Bradley, 1990, с. 420.
- ↑ Bradley, 1990, с. 414.
- ↑ 5,0 5,1 5,2 5,3 5,4 5,5 5,6 Edlin, 1982.
- ↑ 6,0 6,1 6,2 6,3 Robertson, 2014.
- ↑ 7,0 7,1 IBM PCjr. Guide to Operations (англ.). — International Business Machines Corporation, 1983. — P. 3-1 − 4-10.
- ↑ 8,0 8,1 Norton, 1985, с. 140.
- ↑ 9,0 9,1 IBM PCjr Technical reference (англ.). — International Business Machines Corporation, 1983. — P. 2-101 − 2-106.
- ↑ Юрий Литвиненко. IBM PCjr - большой провал большой компании . Дата обращения: 18 июля 2020. Архивировано 18 июля 2020 года.
- ↑ 11,0 11,1 Una Persson. What’s the “Scroll Lock” key on my computer for? // The Straight Dope. — 2003. — 7 октября.
- ↑ 12,0 12,1 Киви Берд. Давим на клавиши, "Домашний Компьютер" №12 (14 декабря 2003). Архивировано 21 января 2014 года. Дата обращения 17 января 2014.
- ↑ IBM. IBM Enhanced Keyboard for the Personal Computer Announcement Letter. 1986-04-18 ([1] Архивная копия от 21 апреля 2021 на Wayback Machine).
- ↑ Jim Burrows. Inverse-T History (англ.). Дата обращения: 10 августа 2020. Архивировано 23 сентября 2015 года.
- ↑ 15,0 15,1 PC, 1986, p. 180.
- ↑ 16,0 16,1 16,2 PC, 1986, p. 182.
- ↑ W3C, 2.1.2.
- ↑ 18,0 18,1 18,2 Гук, 2006, с. 643.
- ↑ 19,0 19,1 19,2 19,3 Савченков, 2018.
- ↑ 20,0 20,1 20,2 20,3 Chapweske, 2001.
- ↑ 21,0 21,1 21,2 21,3 Savard, 2003.
- ↑ Fisher, Lawrence M.. Microsoft Is Bringing Out Its First Computer Keyboard, The New York Times (6 September 1994). Архивировано 2 декабря 2021 года. Дата обращения 10 декабря 2018.
- ↑ W3C, 2.1.4.
- ↑ W3C, 2.1.6.
- ↑ W3C, 2.1.5.
- ↑ W3C, 2.1.7.
- ↑ W3C, 2.1.3.
- ↑ The Different Keyboard Sizes Explained (англ.). Switch & Click. Дата обращения: 19 марта 2022. Архивировано 24 марта 2022 года.
- ↑ W3C, 2.1.9.
- ↑ W3C, 3.1.6.
- ↑ Scan code translate table (англ.). Microsoft. Дата обращения: 19 марта 2022. Архивировано 10 сентября 2021 года.
- ↑ Early Apple Keyboards (англ.). Дата обращения: 3 января 2022. Архивировано 3 января 2022 года.
- ↑ А. Бойко. Удачный «Поиск» // Наука и жизнь. — 1991. — № 2. — С. 84. — ISSN 0028-1263.
- ↑ 34,0 34,1 34,2 Фролов, 1997.
- ↑ IBM PC/AT 8042 Keyboard Controller Commands | OS/2 Museum (англ.). www.os2museum.com. Дата обращения: 1 августа 2019. Архивировано 1 августа 2019 года.
- ↑ Scott Mueller. Keyboard Controller Chips // Upgrading and Repairing PCs. — 2003. — С. 387. — 1575 с. — ISBN 9780789729743.
- ↑ Norton, 1985, с. 133.
- ↑ International Business Machines Corporation (1983): IBM Personal Computer XT Technical Reference Manual, pages D-12 to D-13.
- ↑ International Business Machines Corporation (1983): IBM Personal Computer XT Technical Reference Manual, pages D-14 to D-15.
- ↑ 40,0 40,1 40,2 Carnahan, 1987, p. 2.14.
- ↑ Carnahan, 1987, p. 2.13−2.14.
- ↑ 42,0 42,1 Фигурнов, 1999, с. 83.
- ↑ 43,0 43,1 Williams, Gregg. A Closer Look at the IBM Personal Computer, BYTE (January 1982), С. 36. Дата обращения 19 октября 2013.
- ↑ Фигурнов, 1999, с. 121.
- ↑ Norton, 1985, с. 131.
- ↑ Фигурнов, 1999, с. 80.
- ↑ 47,0 47,1 47,2 Norton, 1985, с. 132.
- ↑ Norton, 1985, с. 144.
- ↑ Carnahan, 1987, p. 2.15.
- ↑ Алан Купер. об интерфейсе. Основы проектирования = About Face. The Essentials of Interaction Design. — 3. — СПб.: Символ-Плюс, 2009. — С. 525−526. — 688 с. — 1500 экз. — ISBN 978 5 93286 132 5.
- ↑ Carnahan, 1987, p. 2.16.
- ↑ The History of CTRL + ALT + DELETE . Mental Floss. Дата обращения: 11 января 2016. Архивировано 10 сентября 2017 года.
- ↑ Massive, undetectable security flaw found in USB: It's time to get your PS/2 keyboard out of the cupboard . ExtremeTech. Дата обращения: 26 октября 2015. Архивировано 12 апреля 2022 года.
- ↑ Is PS/2 or USB Better for Keyboards and Mice?. Techquickie. Архивная копия от 13 сентября 2020 на Wayback Machine
- ↑ SOARER (англ.). Дата обращения: 20 июля 2020. Архивировано 20 июля 2020 года.
- ↑ IBM's New Personal Computer: Taking the Measure / Part One, PC Magazine (February–March 1982), С. 42. Архивировано 7 сентября 2019 года. Дата обращения 20 октября 2013.
- ↑ Pournelle, Jerry. NCC Reflections, BYTE (November 1984), С. 372. Дата обращения 23 октября 2013.
- ↑ Pournelle, Jerry. Zenith Z-100, Epson QX-10, Software Licensing, and the Software Piracy Problem (англ.) // BYTE. — 1983. — Июнь. — P. 438−439. — ISSN 0360-5280.
- ↑ Curran, Lawrence J., Shuford, Richard S.. IBM's Estridge, BYTE (November 1983), С. 88–97. Дата обращения 19 марта 2016.
- ↑ IBM Brings out the big guns (англ.) // PC Magazine. — 1984. — 13 November. — P. 119−122.
- ↑ Norton, 1985, с. 143.
- ↑ Xah Lee. History of Emacs & vi Keys (Keyboard Influence on Keybinding Design) (англ.). Дата обращения: 4 января 2019. Архивировано 9 ноября 2018 года.
- ↑ Xah Lee. How To Avoid The Emacs Pinky Problem (англ.). Дата обращения: 8 ноября 2009. Архивировано 26 мая 2010 года.
Литература
- А.В. Фролов, Г.В. Фролов,. Аппаратное обеспечение персонального компьютера. — 1997. — Т. 33. — (Библиотека системного программиста).
- Peter Norton. Chapter 6:Keyboard basics // The Peter Norton Programmer's guide to the IBM PC. — Microsoft press, 1985. — ISBN 0-914845-46-2.
- Нортон П. Глава 10: Блок клавиатуры // Программно-аппаратная организация компьютера IBM PC = Inside the IBM PC. Access to advanced features and programming. — Prentice-Hall Publishing Comp., 1984.
- The two faces of IBM's 8-MHz AT : [англ.] // PC Magazine. — 1986. — Т. 5, № 16 (30 September). — С. 179−184. — ISSN 0745-2500.
- Bradley, David J. The Creation of the IBM PC : [англ.] // BYTE. — 1990. — September. — P. 414-420.
- Edlin, Jim. The PC's Keys // PC Magazine. — 1982. — Ноябрь. — P. 175.
- Михаил Гук. Глава 11. Устройства ввода-вывода и их интерфейсы. 11.1. Клавиатура // Аппаратные средства IBM PC. — 3-е. — СПб.: Питер, 2006. — С. 642−652. — 1072 с. — 5000 экз. — ISBN 5-469-01182-8.
- В.А. Павлов. Система ввода-вывода ПК. Подсистемы клавиатуры и манипуляторов типа мышь и джойстик. — Саров: Кафедра вычислительной и информационной техники Саровского государственного физико-технического института, 2008.
- Фигурнов В.Э. IBM PC для пользователя. — М.: Инфра-М, 1999. — ISBN 5-86225-471-4.
- Brice Carnahan, James O. Wilkes. The IBM Personal Computers and the Michigan Terminal System (англ.). — College of Engineering the University of Michigan, 1987.
Ссылки
- UI Events KeyboardEvent code Values (англ.). W3C. Дата обращения: 18 июня 2020. Архивировано 19 июня 2020 года.
- Непосредственная работа с клавиатурой // RSDN Magazine. — 2005. — № 1.
- Дмитрий Савченков. Работа с клавиатурой AT и PS/2 (22 апреля 2018). Дата обращения: 18 июля 2020. Архивировано 22 сентября 2020 года.
- Adam Chapweske. The AT-PS/2 Keyboard Interface (англ.) (2001). Дата обращения: 19 марта 2022. Архивировано 28 июля 2021 года.
- John J. G. Savard. Scan Codes Demystified (англ.) (2003). Дата обращения: 18 июля 2020. Архивировано 17 июля 2020 года.
- Adi Robertson. King of click: the story of the greatest keyboard ever made (англ.). The Verge (2014-10-7). Дата обращения: 19 марта 2022. Архивировано 6 августа 2015 года.