Справочник программиста на персональном компьютере фирмы IBM. Клавиатура - Сводка кодов клавиш и применений
ОГЛАВЛЕНИЕ
Раздел 3. Сводка кодов клавиш и применений.
Различные коды клавиш и коды символов могут приводить к недо-
разумениям. В нижеприведенных таблицах все они перечислены. Обра-
тите внимание на следующие аномалии:
- клавиша Ins является единственной, которая при нажатии, как
выдает код символа в буфер клавиатуры, так и меняет статус ре-
гистра клавиш-переключателей.
- имеется 4 кода ASCII, которые могут быть получены двумя
способами. ASCII 8 - нажатием клавиши BackSpace и Ctrl-H, ASCII 9
- клавиши Tab и Ctrl-I, ASCII 13 - клавиши Enter и Ctrl-M, а
ASCII 27 - клавиши Esc и Ctrl-[.
- символы, соответствующие 32 управляющим кодам ASCII не выво-
дятся на экран, при использовании функций ввода с клавиатуры,
обеспечивающих автоматическое эхо. Они могут быть выведены либо с
помощью функции 10H прерывания 10H, либо прямым выводом в память
дисплея (оба способа обсуждаются в [4.3.1]).
- комбинации клавиши Ctrl с буквами алфавита генерируют одно-
байтные коды ASCII. Все остальные комбинации Ctrl генерируют
двухбайтные (расширенные) коды.
- клавиша <5> дополнительной клавиатуры не действует, если
установлен режим управления курсором клавишей NumLock.
- комбинации Shift-PrtSc и Ctrl-Alt (а также SysReq для AT)
это единственные случаи, когда комбинация клавиш приводит к не-
медленному вызову некоторой процедуры. Из них только первая пе-
репрограммируема. Прерывание обработки Ctrl-Break (также переп-
рограммируемое) вызывается только тогда, когда статус Ctrl-Break
будет обнаружен процедурой MS DOS.
- любой код ASCII, кроме 0, может быть введен путем нажатия
клавиши Alt, набора кода ASCII на дополнительной клавиатуре и,
затем, отпускания клавиши Alt. Поскольку код 0 исключен, то рас-
ширенные коды не могут быть введены таким способом.
Отметим, что Вы практически ничего не можете сделать, чтобы прео-
долеть ограничения, накладываемые на недопустимые комбинации
клавиш. Например, Вы не можете определить комбинацию Ctrl + Cur-
sorUp, принимая код CursorUp, а затем проверяя регистр статуса
перключателей для определения того, была ли нажата клавиша Ctrl.
Если Ctrl была нажата, то клавиша CursorUp вообще не выдает ника-
кого кода.