|
В этом состоянии распознаются и обслуживаются все
прерывания. Если прерывание поступит от клавиатуры (при
нажатии обычной клавиши), то состояние захвата завершается,
код нажатой клавиши отбрасывается и управление возвращается
той программе, которая выполнялась до установления состояния
захвата. |
avast home |
|
|
Если прерывание имело другую природу (номер,
прерывание от дисков), то оно обслуживается, но состояние
захвата сохраняется пока не будет нажата клавиша.
Комбинация клавиш Ctrl-NumLock - это один из четырех
особых случаев, отслеживаемых процедурой системы BIOS. Когда
процедура обслуживания клавиатуры обрабатывает коды,
принимаемые от клавиатуры, она постоянно проверяет появление
одной из четырех особых комбинаций, которые обслуживаются
специальным образом. |
win архиваторы |
|
|
Фактически, эти четыре комбинации рассматриваются как
команды, по которым должно начинаться выполнение определенных
служебных процедур. Эти четыре комбинации: Ctrl-NumLock,
PrtSc, Ctrl-Alt-Del и Ctrl-Break. |
программа резервного копирования |
|
|
win rar, антивирусные программы, архиватор winrar, nod32, norton antivirus, .
win zip
|
Состояние клавиатуры хранится
в первых тринадцати битах указанных выше двух байт по адресу
1047. Ниже приведена таблица значений этих битов, изменения
которых можно проследить с помощью программы 10.1:
_____________________________________________________________
Байт Бит Смысл Значение, когда бит равен 1
_____________________________________________________________
1 1 Insert состояние активное
1 2 Caps-Lock состояние активное
1 3 Num-Lock состояние активное
1 4 Scroll-Lock состояние активное
1 5 Alt клавиша нажата
1 6 Ctrl клавиша нажата
1 7 смещение слева клавиша нажата
1 8 смещение справа клавиша нажата
2 1 Insert клавиша нажата
2 2 Caps-Lock клавиша нажата
2 3 Num-Lock клавиша нажата
2 4 Scroll-Lock клавиша нажата
2 5 Состояние захвата активное состояние
2 6 (не используется) (после Ctrl-Num-Lock)
2 7 (не используется)
2 8 (не используется)
____________________________________________________________
В этой таблице нашел отражение ряд интересных моментов.
Во-первых, можно отметить параллельность использования первых
четырех битов обоих байтов для клавиш-переключателей. В
первом байте отражается текущее состояние клавиши, а во
втором байте указывается нажатие соответствуюших клавиш*
Во-вторых. обратив внимание на биты, соответствующие нажатию
обычных клавиш смещения, расположенные в правой и в левой
частях клавиатуры, распознаются по отдельности. Для такого
разделения трудно придумать разумное применение, но тем не
менее оно имеет место.
Кроме того, система BIOS следит за состоянием вставки,
управляемым переключателем. Эта функция обычно игнорируется
программами, которые используют клавишу Iusert, например,
текстовыми прогцессорами. Обычно. все программы, использующие
эту клавишу, сами следят за режимом вставки. Практического
значени[ это не имеет, но нам показалось любопытным отметить
и такой факт.
И, наконец, обратите внимание на бит состояния захвата,
который устанавливается, когда процедура обслуживания
клавиатуры системы BIOS обнаруживает комбинацию клавиши
Ctrl-NumLock. Эта комбинация используется системой BIOS для
управления состоянием захвата, которое программам обнаружить
трудно, поскольку в этом состоянии программы не выполняются.
В состоянии захвата система BIOS выполняет короткий цикл,
ожидая нажатия клавиши, которое выводит систему из этого
состояния.
|
|
|