Как словить одиночное нажатие Shift'а в 9-м прерывании?
Нужно по Shift`у менять значение переменной. Старое прерывание 09h скорее всего не записывает скан код в буфер, что делать?
Цитата:
Originally posted by foras
Нужно по Shift`у менять значение переменной. Старое прерывание 09h скорее всего не записывает скан код в буфер, что делать?
Нужно по Shift`у менять значение переменной. Старое прерывание 09h скорее всего не записывает скан код в буфер, что делать?
А ты проверяй биты 0 и 1 для правого шифта и левого соответственно в ячейке памяти 0040:0017. Единичное состояние означает нажатую клавишу. Полностью карта значений байта выглядит так:
0040:0017
бит 7 - Insert (режим включен, когда 1);
бит 6 - CapsLock (режим включен, когда 1);
бит 5 - NumLock (режим включен, когда 1);
бит 4 - ScrollLock (режим включен, когда 1);
бит 3 - Alt нажатие;
бит 2 - Ctrl нажатие;
бит 1 - Left Shift нажатие;
бит 0 - Right Shift нажатие;
0040:0018
бит 7 - Insert нажатие;
бит 6 - CapsLock нажатие;
бит 5 - NumLock нажатие;
бит 4 - ScrollLock нажатие;
бит 3 - Ctrl+NumLock включен.