Справочник программиста на персональном компьютере фирмы 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 вообще не выдает ника-
кого кода.