Мы уже рассказывали о возможности изменения временных характеристик клавиатуры. Если BIOS, установленная в вашей машине, изготовлена после 15 декабря 1985 года, вы можете воспользоваться функцией 03h для ускорения (или замедления) работы клавиатуры:
Регистры на входе: |
AH = 03h; AL = 05h; BL = Период автоповтора (количество повторов за одну секунду) BH = Задержка включения режима автоповтора |
Регистры на выходе: |
Не используются |
Период автоповтора задается следующим образом:
Содержимое регистра BL |
Период автоповтора |
0 |
30,0 |
1 |
26,7 |
2 |
24,0 |
4 |
20,0 |
8 |
15,0 |
0Ah |
10,0 |
0Dh |
9,2 |
10h |
7,5 |
14h |
5,0 |
1Fh |
2,0 |
Для задержки включения режима автоповтора вы можете указывать следующие значения:
Содержимое регистра BH |
Задержка включения режима автоповтора, mc |
0 |
250 |
1 |
500 |
2 |
750 |
3 |
1000 |
В качестве примера приведем два фрагмента программы. Первый фрагмент увеличивает быстродействие клавиатуры до его верхнего предела, второй восстанавливает исходные значения временных характеристик.
union REGS rg;
. . .
rg.h.al = 5;
rg.h.ah = 3;
// Устанавливаем максимальное быстродействие клавиатуры
rg.h.bl = 0;
rg.h.bh = 0;
int86(0x16, &rg, &rg);
. . .
// Восстанавливаем исходное быстродействие клавиатуры
rg.h.bl = 0xa;
rg.h.bh = 1;
int86(0x16, &rg, &rg);