MS-DOS Debug команда, какая клавиша нажата - PullRequest
0 голосов
/ 16 октября 2018

Здравствуйте. Я пытаюсь создать команду / код в MS-DOS Debug, чтобы увидеть, какую клавишу я нажимаю на клавиатуре.У меня есть код, который работает только для одного нажатия клавиши, но он не работает, когда я нажимаю разные клавиши.

Я хочу, чтобы он работал с 2 или более разными клавишами с отдельными сообщениями вывода в зависимости от того, какая клавиша была нажата, т.е. шестнадцатеричная54 Вы нажали Shift-F1

Mov ah, 0
Int 16
Mov bh, ah
Mov bl, al
Cmp ah, 3b
Jne again
Mov ah, 9
Mov dx, [msg address]
Int 21
Int 20
Db ‘You pressed F1 key$’

1 Ответ

0 голосов
/ 28 февраля 2019

Если это не критично, вы можете постоянно читать входные данные с порта 0x60h и смотреть, что он дает.Значение ниже 128 - нажатие клавиши, когда выше 127 - нажатие клавиши.Тогда вы не используете прерывание.

Попробуйте сначала получить вход с порта 0x60h на языке более высокого уровня, я советую QBASIC.Тогда вы сможете быстро написать решение в asm.

Не забудьте сделать возможность выхода из вашей программы, например, клавишей Esc, нажатие которой дает значение 1, или вам нужно будет перезагрузитьсистема вернуть контроль над системой.

...