NooDle
|
|
1 | |
Упрощенный драйвер клавиатуры.08.01.2009, 19:24. Показов 4928. Ответов 0
Метки нет Все метки)
(
Всем добрый вечер, у меня есть упрощённый вариант драйвера клавиатуры на ассемблере,который мы делали на лабах, к нему нужно дописать
1) При нажатии Shift, чтобы буквы печатались в верхнем регистре. 2) При нажатии на Caps Lock, было переключение с нижнего регистра на верхний и наоборот. 3) При нажатии Ctrl+Shift+x, можно было выйти из программы. Кто сможет помогите плз, а то всю голову себе переломал и ничего не выходит. Вот как выглядит сам драйвер: Код
IDEAL P386 MODEL MEDIUM STACK 400 DATASEG PressCounter DW ? OldKbdIntOffset DW ? OldKbdIntSegment DW ? CharInputFlag DB 0 ASCIICode DB 0 label RusNorm byte DB 0,0,'1','2','3','4','5','6' DB '7','8','9','0','-','=',0,0 DB 'й','ц','у','к','е','н','г' DB 'ш','щ','з','х','ъ',0,0 DB 'ф','ы','в','а','п','р','о' DB 'л','д','ж','э','Ё',0,'\' DB 'я','ч','с','м','и','т','ь' DB 'б','ю','.',0,'*',0,' ' ENDS CODESEG PROC KeyboardDriver mov AX, DGROUP mov DS,AX mov [PressCounter],0 call SetKeyboardInterrupt @@NextChar: cmp [CharInputFlag],0 je @@NextChar mov [CharInputFlag],0 mov DL,[ASCIICode] mov AH,2h int 21h inc [PressCounter] cmp [PressCounter],80 jb @@NextChar call RestoreOldKeyboardInterrupt mov AH,4Ch int 21h ENDP KeyboardDriver proc KeyboardInterrupt far pusha push DS mov AX,DGROUP mov DS,AX in AL,60h push AX mov AL,20h out 20h,AL pop AX sti cmp AL,39h ja @@End xor BX,BX mov BL,AL add BX, offset RusNorm mov AL,[BX] cmp AL,32 jb @@END mov [ASCIICode],AL mov [CharInputFlag],1 @@End: pop DS popa iret endp KeyboardInterrupt PROC SetKeyboardInterrupt NEAR pusha push ES mov AX,0 mov ES,AX mov AX,[ES:9*4] mov [OldKbdIntOffset],AX mov ax,[ES:9*4+2] mov [OldKbdIntSegment],AX cli mov AX,offset KeyboardInterrupt mov [ES:9*4],AX mov AX,CS mov [ES:9*4+2],AX sti pop ES popa ret ENDP SetKeyboardInterrupt PROC RestoreOldKeyboardInterrupt NEAR pusha push ES mov AX,0 mov ES,AX cli mov AX,[OldKbdIntOffset] mov [ES:9*4],AX mov AX,[OldKbdIntSegment] mov [ES:9*4+2],AX sti pop ES popa ret ENDP RestoreOldKeyboardInterrupt ENDS END |
08.01.2009, 19:24 | |
08.01.2009, 19:24 | |
Ответы с готовыми решениями:
0
Фильтрующий драйвер клавиатуры
Драйвер ММ-клавиатуры |
08.01.2009, 19:24 | |
Помогаю со студенческими работами здесь
1
Драйвер клавиатуры и мыши. Драйвер стандартной клавиатуры Драйвер клавиатуры на базе kbfiltr Драйвер для миди клавиатуры
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
![]() |
Опции темы | |
|
Новые блоги и статьи
![]() |
||||
Ключевые слова Python
hw_wired 15.02.2025
Ключевые слова в Python - это специальные зарезервированные слова, которые имеют особое значение и функции в языке. В настоящее время Python включает 35 ключевых слов и 4 мягких ключевых слова. Эти. . .
|
Отличия изменяемых и неизменяемых типов в Python
hw_wired 15.02.2025
В Python существует принципиальное различие между изменяемыми (mutable) и неизменяемыми (immutable) типами данных, которое оказывает существенное влияние на работу программ. Это различие часто. . .
|
Python: сравнение списков и кортежей
hw_wired 15.02.2025
В Python последовательности являются одними из самых важных и часто используемых типов данных. Они позволяют хранить упорядоченные наборы элементов, к которым можно обращаться по индексу. Среди всех. . .
|
Как скачивать файлы с URL с помощью Python
hw_wired 15.02.2025
Для скачивания файлов Python предлагает как встроенные средства, так и сторонние библиотеки. Встроенный модуль urllib из стандартной библиотеки обеспечивает базовую функциональность для работы с URL. . .
|
Использование SQLAlchemy в Python
hw_wired 15.02.2025
SQLAlchemy - мощная библиотека для работы с базами данных в Python, которая предоставляет полноценный набор средств для объектно-реляционного отображения (ORM) и обширные возможности для работы с. . .
|
Взаимодействие с REST API в Python
hw_wired 15.02.2025
В современном мире разработки программного обеспечения REST API стал неотъемлемой частью архитектуры веб-приложений. API (Application Programming Interface) - это набор правил и протоколов,. . .
|
Разделение строк в Python
hw_wired 15.02.2025
Python предлагает богатый набор возможностей для работы со строками, и среди них разделение строк занимает особое место. Этот процесс позволяет разбивать текст на отдельные компоненты, что критично. . .
|
Объединение строк в Python
hw_wired 15.02.2025
При работе с текстовыми данными в Python нередко возникает необходимость объединять несколько строк в одну. Это может потребоваться при форматировании вывода, обработке текстовых файлов или создании. . .
|
Лучшие игровые движки на Python
hw_wired 15.02.2025
В последнее время разработка игр стала одним из самых популярных направлений программирования, и Python не остался в стороне от этого тренда. Несмотря на то, что Python обычно не ассоциируется с. . .
|
Декоратор jit в Python
hw_wired 15.02.2025
Если вы достаточно долго изучаете программы и пакеты на Python для машинного обучения, то наверняка замечали, что паттерн "JIT-декоратор" довольно популярен. Этот подход позволяет превратить обычные. . .
|