|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
24.03.2012, 09:10 | #1 |
Пользователь
Регистрация: 14.01.2012
Сообщений: 39
|
IRQ1, обработка прерываний клавиатуры.
Добрый день.
У меня трудности в реализации работы с клавой в своей, скажем так, ос) Теорию понимаю, в инете копал инфу. За основу взял статью: http://www.wasm.ru/article.php?article=ia32int С программными прерываниями все путем, вывод int 1 работает. Но прерывания клавиатуры почему-то не обрабатываются. Потестил путем вывода и выходит, что обработчик прерывания клавы вызывается при загрузке "ос", но дальше на нажатия клавишь не реагирует. Есть ли у кого-либо хорошие ресурсы по данной теме(или исходники для изучения), потому что сам я обработку нажатий клавиш так и не смог одолеть. Если лазил в исходниках, то просто тонул в чужой структуре драйвера P.S. Использую nasm и C. |
24.03.2012, 09:30 | #2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
а вы PIC настраиваете?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
24.03.2012, 09:39 | #3 |
Пользователь
Регистрация: 14.01.2012
Сообщений: 39
|
Я, следуя статье, сместил IRQ:
Код:
|
24.03.2012, 10:46 | #4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
клава PS/2?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
24.03.2012, 10:54 | #5 |
Пользователь
Регистрация: 14.01.2012
Сообщений: 39
|
Ну...На ноуте все делаю. Но я подумал, что должно работать, т.к. если много раз тыкать клву, борщ пишет "internal keyboard buffer full, ignoring scancode.<код клавиши>". Сейчас на компе попробую.
|
24.03.2012, 11:05 | #6 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
http://sasm.narod.ru/docs/pm/pm_main.htm
не ахти мне тот код, посмотрите по ссылке. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
24.03.2012, 11:17 | #7 |
Пользователь
Регистрация: 14.01.2012
Сообщений: 39
|
В общем не робит с пс2. Спасибо за ссыль, уже смотрю. А не могли бы вы пояснить код из 6 части? :
http://sasm.narod.ru/docs/pm/pm_int/chap_6.htm В частности не пойму: Код:
|
24.03.2012, 11:37 | #8 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
Цитата:
Код:
там все записи в IDT формируются именно этой процедурой. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
24.03.2012, 11:39 | #9 |
Пользователь
Регистрация: 14.01.2012
Сообщений: 39
|
Ок, значит в bx надо передать адрес idt... Посмотрим что получится Скоро отпишусь о результатах
|
24.03.2012, 11:46 | #10 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
одно но, не в bx, а в ds:bx(ну это на всякий)
просто не стоит забывать про сегментные регистры. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Обработка прерываний клавиатуры в резидентной программе | Vilgelm | Помощь студентам | 3 | 30.06.2011 12:09 |
Обработка прерываний клавиатуры. Borland Pascal. | Kingdom_Reborn | Помощь студентам | 0 | 19.02.2011 18:02 |
Дизассемблировать Обработчик прерываний Bios для клавиатуры | Subaru | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 3 | 28.11.2010 19:22 |
Обработка прерываний | Syn-McJ | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 4 | 27.09.2010 07:15 |
Перехват прерываний от клавиатуры и работа с видеопамятью | sunlightik | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 2 | 26.02.2010 00:32 |