Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Низкоуровневое программирование > Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 12.03.2009, 09:02   #11
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Код:
	mov ax,word ptr es:[bx] ; Я думал что это буфер символа
	cmp ax,CheckKey ; Как ни странно, всегда не равно :)
учить матчасть! я же приводил кучу статей...
в очереди (буфере клавиатуры) находится ДВА байта - scancode (это код нажатия на клавиатуре - ESC = 01, F1 = 02 и т.д.) и ASCII код, который зависит от регистра и сочетаний клавиш.

ну не поленитесь же, запустите программку KNKBDI (KN.rar из поста #4) - понажимайте клавиши и посмотрите, что при этом заносится в буфер (очередь) клавиатуры!!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.03.2009, 09:29   #12
BOBAH13
Android Developer
Старожил Подтвердите свой е-майл
 
Аватар для BOBAH13
 
Регистрация: 19.02.2007
Сообщений: 3,708
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Код:
	mov ax,word ptr es:[bx] ; Я думал что это буфер символа
	cmp ax,CheckKey ; Как ни странно, всегда не равно :)
учить матчасть! я же приводил кучу статей...
в очереди (буфере клавиатуры) находится ДВА байта - scancode (это код нажатия на клавиатуре - ESC = 01, F1 = 02 и т.д.) и ASCII код, который зависит от регистра и сочетаний клавиш.

ну не поленитесь же, запустите программку KNKBDI (KN.rar из поста #4) - понажимайте клавиши и посмотрите, что при этом заносится в буфер (очередь) клавиатуры!!
Посмотрел на эту программку, все стало ясно и сразу сделал. Спасибо за вашу помощь
BOBAH13 вне форума Ответить с цитированием
Старый 23.12.2009, 01:02   #13
GeneralSan
 
Регистрация: 23.12.2009
Сообщений: 4
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
я далеко не специалист. ну, раз уж "подписался" отвечать, то попытаюсь хоть чем-то помочь...



нет. всё далеко не так просто... ;-(

прежде всего я не вижу вызова старого обработчика!
и существует всего два подхода - 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. А для чего это Вам всё надо?... может быть, Ваша задача решается совсем по другому?...
так в Могилевице есть нужная мне программа (по крайней мерер по описанию...)которая заменяет при нажатии А на B но она почемуто не работает...
GeneralSan вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Прерывания 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