Консультация № 141791
20.08.2008, 02:40
0.00 руб.
0 1 0
В программе для ДОС на ассемблере есть обработчик INT 09h, который отслеживает нажатие некоторых клавиш цифровой клавиатуры.

На машинах с какими типами клавиатур нажатие клавиш будет корректно распознаваться?
А если программа будет запущена в ДОС сессии ОС Windows?
Что можно добавить в программу для проверки/настройки клавиатуры?

Приложение:
const_scancode_NUM_0 = 52h
const_scancode_NUM_1 = 4Fh
const_scancode_NUM_2 = 50h
const_scancode_NUM_4 = 4Bh
const_scancode_NUM_5 = 4Ch
const_scancode_NUM_6 = 4Dh
const_scancode_NUM_8 = 48h

...
in al,60h

cmp al,const_scancode_NUM_0
jne chk_2
jmp NUM_0_was_pressed

chk_2:
cmp al,const_scancode_NUM_1
jne chk_3
jmp NUM_1_was_pressed

chk_3:
cmp al,const_scancode_NUM_2
jne chk_4
jmp NUM_2_was_pressed

chk_4:
cmp al,const_scancode_NUM_4
jne chk_5
jmp NUM_4_was_pressed

chk_5:
cmp al,const_scancode_NUM_5
jne chk_6
jmp NUM_5_was_pressed

chk_6:
cmp al,const_scancode_NUM_6
jne chk_7
jmp NUM_6_was_pressed

chk_7:
cmp al,const_scancode_NUM_8
jne @@exit
jmp NUM_8_was_pressed

...

@@exit:

in al,61h
mov ah,al
or al,80h
out 61h,al
xchg ah,al
out 61h,al

mov al,20h ;EOI
out 20h,al

pop dx
pop ax

iret

Обсуждение

давно
Старший Модератор
31795
6196
26.08.2008, 14:53
общий
Чистый DOS - только PS2.
Сеанс DOS под Windows - любой тип.
Посмотрите книгу В.Кулакова - программирование на аппаратном уровне
Удачи!
Об авторе:
Мне безразлично, что Вы думаете о обо мне, но я рад за Вас - Вы начали думать.

Форма ответа