Сейчас на форуме: tyns777 (+4 невидимых) |
eXeL@B —› Программирование —› Обработка прерывания клавиатуры |
Посл.ответ | Сообщение |
|
Создано: 08 сентября 2010 11:38 · Личное сообщение · #1 Написал вот такую простейшую резидентную прогу: Code:
Возникло 2 проблемы. По нажатию клавиши на клавиатуре например клавишу d, на экране появляется kdk.Во первых k печатается 2 раза, но я понял из-за чего это происходит, так как мой обработчик реагирует когда я нажимаю клавишу , и когда я ее отпускаю. С этим я думаю разберусь, нужно просто проверку сделать, но вот как сделать , что бы что бы не печаталась d я не понимаю, она печатается из-за того что мы передаем управление старому обработчику, но если его не передавать, то вообще не чего происходить не будет. Не могли бы вы подсказать, как сделать что бы не печаталась нажатая клавиша? |
|
Создано: 08 сентября 2010 12:29 · Личное сообщение · #2 www.google.com.ua/search?sourceid=chrome&ie=UTF-8&q=%D0%9F%D1%80%D0%BE%D1%86%D0%B5%D0%B4%D1%83%D1%80%D0%B0+%D0%BE%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B8+09h+%D0%BF%D1%80%D0%B5%D1%80%D1%8B%D0%B2%D0%B0%D0%BD%D0%B8%D1%8F+(%D0%BA%D0%BB%D0%B0%D0%B2%D0%B8%D0%B0%D1%82%D1%83%D1%80%D0%B0) ----- Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме.... |
|
Создано: 08 сентября 2010 13:20 · Личное сообщение · #3 |
|
Создано: 08 сентября 2010 13:28 · Личное сообщение · #4 sanek-lp ты какбы чего добиваешся? перехват прерывания он на то и перехват, что если ты не передашь обратно вызов ТЫ ЗАХВАТЫВАЕШЬ просто все введенные символ , другими словами до других прог ниче недоходит, КОМП на клаву больше не реагирует ----- Наша работа во тьме, Мы делаем, что умеем. Мы отдаем, что имеем, Наша работа во тьме.... |
|
Создано: 08 сентября 2010 13:35 · Личное сообщение · #5 |
|
Создано: 08 сентября 2010 13:38 · Поправил: OKOB · Личное сообщение · #6 sanek-lp пишет: и последующей передачи управления оригинальному обработчику а как ты хотел? Int 9 - это аппаратное прерывание (IRQ1 - KEYBOARD DATA READY) работающее с контроллером прерываний с кольцевым буфером клавиатуры и т.д. и т.п. давай не возвращай обработчику, но тогда сам сделай в своем все что необходимо для обработчика аппаратного прерывания shackmaster.narod.ru/tsr.htm ----- 127.0.0.1, sweet 127.0.0.1 |
|
Создано: 08 сентября 2010 19:26 · Личное сообщение · #7 |
|
Создано: 09 сентября 2010 04:35 · Личное сообщение · #8 sanek-lp пишет: как сделать что бы не печаталась нажатая клавиша 1) нужно на входе вашего обработчика подготовить стек (адрес возврата, флаги) для возврата из старого обработчика командой IRET снова в ваш обработчик (ну конечно же не на начало :s12. 2) отдать управление старому обработчику для работы с аппаратурой. 3) получив управление обратно извлечь из кольцевого буфера скан код нажатой клавиши (по отпусканию) и скоректировать указатель головы буфера (или поместить в буфер скан-код другой клавиши - например "к"). 4) не лениться 5ka.su/ref/informatika/2_object60411.html ----- 127.0.0.1, sweet 127.0.0.1 |
|
Создано: 09 сентября 2010 20:59 · Личное сообщение · #9 |
eXeL@B —› Программирование —› Обработка прерывания клавиатуры |
Эта тема закрыта. Ответы больше не принимаются. |