|
2 / 2 / 1
Регистрация: 20.10.2015
Сообщений: 244
|
||||||
Отображение кодов нажимания / отпускания клавиши21.05.2016, 12:07. Показов 3138. Ответов 7
Метки нет (Все метки)
Задание:
Реализовать процедуру обработки прерывания от клавиатуры, что заменяет стандартный обработчик. Процедура должна реализовать отображение кодов нажимания / отпускания клавиши. Нашел код который выводит скан код нажатой клавиши, как его модифицировать что бы выводило так же код отпускания клавиши? Код:
Актуально
0
|
||||||
| 21.05.2016, 12:07 | |
|
Ответы с готовыми решениями:
7
Подписаться на событие нажатия и отпускания нужной мне клавиши Змейка, продолжение движения в заданном направлении после отпускания клавиши |
|
183 / 121 / 26
Регистрация: 18.05.2015
Сообщений: 509
|
|
| 21.05.2016, 20:02 | |
Сообщение было отмечено Max00766 как решение
Решение
AH сервис
--- ---------------------------------------------------------------------------- 00H читать (ожидать) следующую нажатую клавишу выход: AL = ASCII символ (если AL=0, AH содержит расширенный код ASCII ) AH = сканкод или расширенный код ASCII --- ---------------------------------------------------------------------------- 01H проверить готовность символа (и показать его, если так) выход: ZF = 1 если символ не готов. ZF = 0 если символ готов. AX = как для подфункции 00H (но символ здесь не удаляется из очереди). --- ---------------------------------------------------------------------------- 02H читать состояние shift-клавиш. определить, какие shift-клавиши нажаты в данный момент, находится ли клавиатура в состоянии NumLock, и т.п. выход: AL = статус клавиатуры -- см. флаги клавиатуры
1
|
|
|
539 / 399 / 99
Регистрация: 18.08.2012
Сообщений: 1,024
|
|
| 22.05.2016, 06:35 | |
|
Так можно получить скан-коды "простых" клавиш. Кстати, для них <код отпускания> = <код нажатия> + 80h.
А как определить коды, например, для [PgDn] по четыре кода: нажатие - E0 2A E0 51; отпускание - E0 D1 E0 AA [Pause] вырабатывает сразу и только при нажатии E1 1D 45 E1 9D C5
1
|
|
|
Эксперт Hardware
|
||
| 22.05.2016, 07:25 | ||
Сообщение было отмечено Max00766 как решение
РешениеВикипедия: https://ru.m.wikipedia.org/wiki/Скан-код
1
|
||
|
539 / 399 / 99
Регистрация: 18.08.2012
Сообщений: 1,024
|
||
| 22.05.2016, 08:31 | ||
|
2. А что, для клавиатуры AT приведенный выше код позволит определить всю группу скан-кодов для всех клавиш? 3. Вот это "<код отпускания> = <код нажатия> + 80h" я дал лишь для того, чтобы ТС не заморачивался, а вы так легко приняли все за "чистую монету".
1
|
||
|
Эксперт Hardware
|
||||
| 22.05.2016, 10:10 | ||||
Сообщение было отмечено Max00766 как решение
Решение
1
|
||||
|
Модератор
|
|
| 22.05.2016, 12:35 | |
|
Вы о разных уровнях работы с клавиатурой говорите.
При опросе клавиатуры через порт 60h возвращается несколько байт (не помню точно сколько), которые совсем не равны SCAN-кодам (ко всему прочему, и эти коды различны для одних и тех же клавиш в разных режимах работы контроллера клавиатуры - м/с в корпусе клавиатуры). Скан- и ascii- коды (строго по 2 байта) это уже уровень BIOS. ОС DOS уже слегка "химичит" с функциональными клавишами - выдавая при опросе 0 и scan-код функциональной клавиши. И выдавая ascii-код для алфавитно-цифровых. Достаточно подробно я об этом читал в книге В.Кулаков "Программирование на аппаратном уровне". В ней приводились и примеры работы с портом.
2
|
|
|
Эксперт Hardware
|
||
| 22.05.2016, 13:09 | ||
|
2
|
||
| 22.05.2016, 13:09 | |
|
Помогаю со студенческими работами здесь
8
Отображение bb кодов DLE 9.8 Устройство для нажимания кнопки Отображение кода функциональной клавиши Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
|
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
На примере нетипового документа разработанного в конфигурации КА2.
В качестве источника данных указан регистр накопления, в который записываются данные о. . .
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
|
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога
Финальные проекты на Си и на C++:
finish-text-sdl3-c. zip
finish-text-sdl3-cpp. zip
|