Эта тема является продолжением http://www.wasm.ru/forum/viewtopic.php?id=21416. Решил создать новую тему, потому, что нельзя изменить название (которое стало нерелевантным) у старой. Положим есть мой обработчи прерывания клавиатуры который вызывается через IDT. Грубо говоря, код обработчика следующий: Код (Text): cli in ah, 60h ; прочитать сканкод клавишы . . . . . . . . . out 64h, 0D2h ; вернуть код обратно в буфер out 60h, ah sti jmp real_driver У такого обработчика есть занятная проблема - он получает синтезированный скан код который он же сам и запихивает обратно в порт 60h и никак не получется отфильтровать его. Единственная рабочая идея была сделать массив всех сканкодов который содержит информацию о том какой сканкод был получен последним. Если последний код был "key down" то игнорируем "key down" код для этой клавиши, иначе, если последний код был "key up" то игнорируем "key up". К сожалению этот код не подходит когда удерживаемая клавиша непрерывна шлет "key down". Может есть какой-то более мене удобный способ справится с такой проблемой? Еще, можно ли сделать так чтоб мой обработчик прерывания не вызывался вновь до тех пор пока настоящий не завершит работу?