![]() |
|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 14.01.2012
Сообщений: 39
|
![]()
Добрый день.
У меня трудности в реализации работы с клавой в своей, скажем так, ос) Теорию понимаю, в инете копал инфу. За основу взял статью: http://www.wasm.ru/article.php?article=ia32int С программными прерываниями все путем, вывод int 1 работает. Но прерывания клавиатуры почему-то не обрабатываются. Потестил путем вывода и выходит, что обработчик прерывания клавы вызывается при загрузке "ос", но дальше на нажатия клавишь не реагирует. Есть ли у кого-либо хорошие ресурсы по данной теме(или исходники для изучения), потому что сам я обработку нажатий клавиш так и не смог одолеть. Если лазил в исходниках, то просто тонул в чужой структуре драйвера ![]() P.S. Использую nasm и C. |
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
а вы PIC настраиваете?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 14.01.2012
Сообщений: 39
|
![]()
Я, следуя статье, сместил IRQ:
Код:
|
![]() |
![]() |
![]() |
#4 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
клава PS/2?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 14.01.2012
Сообщений: 39
|
![]()
Ну...На ноуте все делаю. Но я подумал, что должно работать, т.к. если много раз тыкать клву, борщ пишет "internal keyboard buffer full, ignoring scancode.<код клавиши>". Сейчас на компе попробую.
|
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]()
http://sasm.narod.ru/docs/pm/pm_main.htm
не ахти мне тот код, посмотрите по ссылке. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 14.01.2012
Сообщений: 39
|
![]()
В общем не робит с пс2. Спасибо за ссыль, уже смотрю. А не могли бы вы пояснить код из 6 части? :
http://sasm.narod.ru/docs/pm/pm_int/chap_6.htm В частности не пойму: Код:
|
![]() |
![]() |
![]() |
#8 | |
Старожил
Регистрация: 28.01.2009
Сообщений: 21,000
|
![]() Цитата:
Код:
![]() там все записи в IDT формируются именно этой процедурой. Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел. Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите. |
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 14.01.2012
Сообщений: 39
|
![]()
Ок, значит в bx надо передать адрес idt... Посмотрим что получится
![]() |
![]() |
![]() |
![]() |
#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 |