![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
![]()
Приветствую. Я написал прогу, и в она ставит новый обработчик 009h. Дело в том что я так же сохраняю старый обработчик по 050h. В конце концов, срабатывает мой обработчик в котором
Код:
Подскажите ? Спасибо. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
Выкладываю полностью программку, которую писал в 1998 году..
Там всё прозрачно, да и комментарии есть... Удачи. |
![]() |
![]() |
![]() |
#3 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
![]()
Спасибо но, пока к сожалению все так же.. Я как понял из вашего кода, что там обращаемся к адресу биос чтобы заменить клавишу. Но у меня никаких изменений не произошло.
Код:
|
![]() |
![]() |
![]() |
#4 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
я далеко не специалист. ну, раз уж "подписался" отвечать, то попытаюсь хоть чем-то помочь...
Цитата:
прежде всего я не вижу вызова старого обработчика! и существует всего два подхода - 1) нужные клавиши обслуживаем сами - (читаем из порта 60/пишем и т.д. - читайте ниже), либо вызываем старый обработчик и меняем то, что он обработал (например, положенные им в буфер клавиатуры символы... например, в приложенном моём примере EXMP_09.rar (1.1 Кбайт) вместо английской a у Вас будет "нажиматься" s в буфере подменяются и скан код и ASCII-код... Дальше. думаю, что Вам может быть полезна программка Никиты Корзуна, которая показывает состояние клавиатуры/очереди и т.д. - KNKBDI - KN.rar (4.7 Кбайт) и ОБЯЗАТЕЛЬНО почитайте по ссылкам: Робер Журден_ Справочник программиста на персональном компьютере фирмы IBM (читать 3.1.9 Перепрограммирование прерывания клавиатуры.) Деревянко_ СПО ПЭВМ - 7. Клавиатура http://hellknights.void.ru/articles/...ected_mode.htm (Теперь рассмотрим обработчик прерывания IRQ1 от клавиатуры....) ну, и на закуску - ещё маленький пример древней программки по перекодированию/сохранению/воспроизведению нажимаемых клавиш - (c) Могилевец: MOGILEVE.rar (15.6 Кбайт) p.s. А для чего это Вам всё надо?... может быть, Ваша задача решается совсем по другому?... |
|
![]() |
![]() |
![]() |
#5 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
![]()
Это мой курсовой. Вызов старого обработчика происходит по прирыванию int 50h
![]() Вот обработчик Код:
Последний раз редактировалось BOBAH13; 08.03.2009 в 08:51. |
![]() |
![]() |
![]() |
#6 |
Новичок
Джуниор
Регистрация: 09.03.2009
Сообщений: 1
|
![]()
Нужна подробная информация по портам 20h(21h) и 0A1h(0A0h)
|
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 12.09.2008
Сообщений: 239
|
![]()
не знаю нащёт int 50h....... я обычно тупо jmp делал....... так вот при jmp перед вызовом нужно pushf....... т.е. на момент вызова прерывания в вершине флаги должны находиться..... также нужно проверять не вышел ли хвост за "границу".....
Код:
Надо бы избавиться от привычки ставить многоточие.....
Последний раз редактировалось Min; 09.03.2009 в 09:16. |
![]() |
![]() |
![]() |
#8 | |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
![]() Цитата:
|
|
![]() |
![]() |
![]() |
#9 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
BOBAH13, прежде всего скажите, EXMP_09.rar у вас работает или нет?
во-вторых, я согласен с Min. Единственное, мне кажется, что помещать символ в очередь нужно БЕЗ вызова старого прерывания. Или, если Вы хотите менять результат обработки, надо после вызова: Код:
|
![]() |
![]() |
![]() |
#10 |
Android Developer
Старожил Подтвердите свой е-майл
Регистрация: 19.02.2007
Сообщений: 3,708
|
![]()
Да все работает, но к моему глубокому удивлению, следующий код (проверка символа) не работает. Можете подсказать что не так?
Код:
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Прерывания | Kn793 | Общие вопросы Delphi | 3 | 10.01.2009 18:43 |
Прерывания DOS | odi_noki | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 26 | 14.11.2008 13:51 |
прерывания | sergei64_89 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 3 | 22.04.2008 13:37 |