Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Вопрос о прерывании 09h (IRQ1) 
:(
    Опции темы
KOMATOZZ
Дата 17.4.2006, 22:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 2.3.2006

Репутация: нет
Всего: нет



Допустим у меня есть программа... Она загружает обработчик прерывания системного таймера, сама уходит в резидент... Теперь мне необходимо выйти из  программы по нажатию комбинации клавиш - допустим alt+q... как это реализовать??

Фактически нужно написать обработчик прерывания  09h... причем все другие нажатые клавиши он должен пропускать, ведь программа же резидент... командная строка должна работать... подскажите как это сделать...

Может впендюрить сканирование клавиш в прерывание 1ch, однако не факт что клавиша (комбинация) будут нажиматься именно во время срабатывания прерывания 1ch (18 раз в секунду...) Есть ли у кого нить нормальный простой обработчик прерывания 09h??? 
PM MAIL   Вверх
Akina
Дата 18.4.2006, 12:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 1
Всего: 454



1) Перехват прерываний выполняется сплайсингом.
2) Перехватываются прерывания таймера и клавиатуры.
3) Обработчик прерывания таймера работает по заложенному алгоритму.
4) Обработчик прерывания клавиатуры по получении скан-кода горячей клавиши (q) проверяет модификатоы (alt) и при совпадении выставляет флаг для обработчика прерывания таймера.
5) Обработчик прерывания таймера при обнаружении выставленного флага восстанавливает оригинальный код старых обработчиков и высвобождает память. 


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
KOMATOZZ
Дата 18.4.2006, 19:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 9
Регистрация: 2.3.2006

Репутация: нет
Всего: нет



А можно какой нибудь простенький исходничек, чтобы разобраться? smile  Именно на обработчик прерывания клавиатуры.... smile  
PM MAIL   Вверх
SergeCpp
Дата 19.4.2006, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


 
**


Профиль
Группа: Участник
Сообщений: 955
Регистрация: 8.8.2005
Где: At Home

Репутация: 1
Всего: 124



Переключатель клавиатуры Русский — Английский для DOS и DOS-окна Windows

Написан мною на Ассемблере (исходники прилагаются)

Использован модифицированный модуль переключения из KeyRus

Компилируется FASM 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Asm для Windows/DOS"
MAKCim
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • Не забывайте пользоваться кнопкой КОД.
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к разделу форума. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, MAKCim.

 
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Asm для Windows/Dos | Следующая тема »


 




[ Время генерации скрипта: 0.0452 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.