Сброс клавиатуры |
Ответить | Страница 12> |
Автор | |
Участник Присоединился: 27 Апрель 2005 Категория: Ukraine Online Status: Offline Публикации: 81 |
Опубликовано: 08 Декабрь 2005 10:28 |
Помогите разрешить следующую проблему: имеется оборудование процессорный модуль Octagon 6030, работаем под DOS 6.22, к нему подключен контроллер клавиатуры, одноко сама клавиатура нестандартная, то есть у нее коды клавиш другие. Необходимо, чтобы программа могла отличать, какая клавиатура в данный момент подключена: обычная или нестандартная. Для этого мы закоротили на нестандартной клавиатуре контакты, соответствующие клавише CapsLock. При старте программа опрашивает статус клавиатуры и распознает, какая клавиатура подключена. Однако при «мягком» перезапуске, например по watchdog, статус клавиатуры не инициализируется. Подскажите как быть? С уважением, AlexZ. |
|
Новичок Присоединился: 31 Май 2005 Категория: Russian Federation Online Status: Offline Публикации: 16 |
|
Может быть опрос клавиатуры посадить на прерывание таймера?
|
|
Дмитрий
|
|
Участник Присоединился: 27 Апрель 2005 Категория: Ukraine Online Status: Offline Публикации: 81 |
|
Вы не совсем поняли проблему: инициализацию клавиатуры при запуске производит BIOS, и он же увидев, что нажата клавиша CapsLock, взводит соответствующие флаги. Но после "мягкого" перезапуска он этого не делает. Вопрос в том, как это сделать самому в программе. С уважением AlexZ
|
|
AlexZ
|
|
Новичок Присоединился: 31 Май 2005 Категория: Russian Federation Online Status: Offline Публикации: 16 |
|
Да нет, именно так я и понял. Я предлагаю написать вам резидентную программу с перехватом прерывания таймера. Запишите ее в autoexec и она будет загружаться в память при каждом перезапуске и проверять клавиатуру каждые 55мс
|
|
Дмитрий
|
|
Участник Присоединился: 27 Апрель 2005 Категория: Ukraine Online Status: Offline Публикации: 81 |
|
Вопрос не в том, когда проверять клавиатуру - моя программа запускается из autoexec.bat и даже чаще, чем 55 мс, опрашивает клавиатуру. Вопрос в том, как узнать, нажата ли клавиша CapsLock, если знаете, привидите короткий пример на ASM С уважением, AlexZ
|
|
AlexZ
|
|
Новичок Присоединился: 31 Май 2005 Категория: Russian Federation Online Status: Offline Публикации: 16 |
|
Понял. К сожалению давненько не писал программы для ДОС, если начну вспоминать - чего-нибудь навру. Могу глянуть книги или раскопать старые тексты. Придется подождать. Или загляните непосредственно в БИОС, он-то ведь делает то, что вам нужно?
|
|
Дмитрий
|
|
Новичок Присоединился: 31 Май 2005 Категория: Russian Federation Online Status: Offline Публикации: 16 |
|
Если все же не ошибаюсь, вам нужны вызовы Int 08h, это биосовский обработчик клавиатуры.
|
|
Дмитрий
|
|
Новичок Присоединился: 31 Май 2005 Категория: Russian Federation Online Status: Offline Публикации: 16 |
|
О! Вот и наврал! Int 09h
|
|
Дмитрий
|
|
Участник Присоединился: 27 Апрель 2005 Категория: Ukraine Online Status: Offline Публикации: 81 |
|
Я конечно извиняюсь, но с такими познаниями DOS лучше поберегите свои знания для начинающих. С уважением, AlexZ
|
|
AlexZ
|
|
Профили участников
Послать частное письмо
Поиск публикаций участников
Посетить домашнюю страницу участника
Добавить в список приятелей
Действительный член Присоединился: 14 Май 2003 Online Status: Offline Публикации: 770 |
|
Контроллер клавиатуры генерирует прерывания только по нажатию и отпусканию клавиши. Видимо, поскольку состояние CapsLock не менялось во время сброса, то он и не замечает, что она нажата. Может быть, следует сбросить контроллер клавиатуры? The keyboard of the AT (and its Intel 8042 microcomputer interface) is The keyboard controller generates interrupt level 1 (IRQ 1) on each press Port 60H is for writing data and is maintained for compatibility with Port 64H is for writing commands and data and for reading keyboard status. mov al,cmd_code For a two-part command such as setting the typeamatic rate, it's wise to delay a little while between OUTs: mov al,cmd_code Cmd Description 0f3H Set typeamatic rate and delay. First send 0f3H, then send data byte: The keyboard is initially set to begin repeating after 1/2-second and 0f2H-0efH (NOP) The bit positions 0-3 correspond to bits 4-6 of the keyboard flags |
|
Инженер-системотехник
+7 (916) 477 3925 |
|
Ответить | Страница 12> |
Переход на форум | Права доступа на форуме Вы не можете публиковать новые темы в этом форуме Вы не можете отвечать на сообщения в этом форуме Вы не можете удалять Ваши сообщения на этом форуме Вы не можете редактировать Ваши сообщения на этом форуме Вы не можете создавать голосования на этом форуме Вы не можете выражать своё мнение в голосованиях на этом форуме |