Более подробную информацию о настройке параметров клавиатуры в DOS можно найти в главе 17 11-го издания книги, представленного на прилагаемом компакт-диске.
Номера клавиш и скан-коды
При нажатии клавиши встроенный в клавиатуру процессор (8048 или 6805) определяет координаты замкнутого переключателя в матрице. После этого он передает на системную плату последовательный пакет данных, содержащий скан-код нажатой клавиши.
Это называется кодом активизации (make code). Когда клавиша возвращается в первоначальное состояние, отправляется код останова (break code), указывающий системной плате на то, что клавиша отпущена. Код останова аналогичен коду активизации плюс 80h. Например, если код активизации для клавиши <А> составляет lEh, код останова будет 9 Eh. С помощью этих кодов система определяет конкретную нажатую клавишу или комбинацию нескольких одновременно нажатых клавиш.
В компьютере AT контроллер клавиатуры 8042 преобразует текущий скан-код в один из предусмотренных в системе скан-кодов и направляет его в главный процессор компьютера. Иногда нужно знать эти скан-коды, особенно при поиске неисправностей в клавиатуре или необходимости непосредственно прочитать скан-код в программе, которую вы пишете.
Когда клавиша "залипает" или выходит из строя, диагностическая программа, например процедура самоконтроля POST, обычно сообщает ее скан-код. Это означает, что вам придется идентифицировать конкретную клавишу по ее скан-коду В дополнении на прилагаемом компакт-диске приведены скан-коды всех клавиш 101- и 104-клавишной клавиатур. Зная скан-код неисправной клавиши, с помощью этих таблиц можно определить, какая клавиша вышла из строя или нуждается в чистке.
Замечание
Для 101-клавишной (расширенной) клавиатуры используются три различных набора скан-кодов, причем по умолчанию устанавливается набор 1. В некоторых компьютерах, включая PS/2, при выполнении процедуры POST используется один из двух других наборов скан-кодов. Например, в компьютере IBM P75 в процессе выполнения POST используется набор 2, а во время обычной работы — набор 1. И хотя подобное случается редко, это необходимо знать, если возникнут трудности при интерпретации скан-кода.
IBM назначает каждой клавише уникальный номер, чтобы отличать ее от остальных. Эти номера нужно знать для идентификации клавиш на иностранных клавиатурах, где на них могут быть нанесены другие символы. В расширенных клавиатурах и в большинстве других моделей исключена одна клавиша (№ 29), но установлены две другие (№ 42 и 45); в результате общее их количество возросло до 102.
Замечание
На компакт-диске, прилагаемом к этому изданию, в разделе Technical Reference, находится полный список номеров клавиш и скан-кодов 101/102-клавишной (расширенной) клавиатуры и 104-клавишной клавиатуры Windows, включая скан-коды HID (Human Interface Device) и "горячих" клавиш, используемых в последних версиях клавиатур USB.
Приведенные номера клавиш и соответствующие им скан-коды могут быть использованы для решения проблем, связанных с поломкой или "залипанием" клавиш. Диагностическая программа выводит скан-код поврежденной клавиши, позволяющий однозначно ее идентифицировать.