Полезное:
Как сделать разговор полезным и приятным
Как сделать объемную звезду своими руками
Как сделать то, что делать не хочется?
Как сделать погремушку
Как сделать так чтобы женщины сами знакомились с вами
Как сделать идею коммерческой
Как сделать хорошую растяжку ног?
Как сделать наш разум здоровым?
Как сделать, чтобы люди обманывали меньше
Вопрос 4. Как сделать так, чтобы вас уважали и ценили?
Как сделать лучше себе и другим людям
Как сделать свидание интересным?
Категории:
АрхитектураАстрономияБиологияГеографияГеологияИнформатикаИскусствоИсторияКулинарияКультураМаркетингМатематикаМедицинаМенеджментОхрана трудаПравоПроизводствоПсихологияРелигияСоциологияСпортТехникаФизикаФилософияХимияЭкологияЭкономикаЭлектроника
|
Программные средства для работы с клавиатурой
Возможно использование следующих средств среднего уровня дня управления клавиатурным вводом информации: - функция 3Fh прерывания DOS INT 21h для работы с клавиатурой как с файлом, - группа функций прерывания DOS INT 21h для посимвольного ввода с клавиатуры, - три (для IBM PC/XT) или пять (для IBM PC/AT) функций клавиатурного драйвера BIOS для покодового ввода с помощью прерывания INT 16h. - средства загружаемого драйвера ANSI.SYS поставляемого MS DOS. Средства высокого уровня получают доступ к данным средствам через библиотеку стандартных функций и процедур, стандартных типов, переменных и констант, входящих в состав соответствующей системы программирования на языке высокого уровня. Посредством стандартных типов, переменных и констант пользователь получает доступ к регистрам и ячейкам памяти ПЭВМ, а посредством процедур и функций - к соответствующим функциям прерываний INT 21h и INT 16h. Группа из 7 функций DOS, использующая прерывание INT 21h обеспечивает разнообразные возможности посимвольного ввода с клавиатуры в различных режимах. При вызове функции в регистр AH должен быть записан номер вызываемой функции. 1) Функция 01h Ожидает нажатия клавиши или комбинации клавиш и вводит в регистр AL содержимое байта ASCII кода из головной части кольцевого буфера клавиатуры с эхо-отображением на экране терминала. 2) Функции 06h, 07h, 08h Осуществляют операции, аналогичные функции 01h, но отличаются наличием или отсутствием эха на экране терминала и реакцией на ввод Ctrl-Break. Функция 06h требует перед вызовом занесения в регистр DL кода OFFh. Ввод данных с клавиатуры без эхо-отображения на экране терминала позволяет управлять работой прикладной программы с использованием пароля. Некоторые программы перед своим завершением должны обязательно выполнить некоторые действия, например, сохранить файлы на диске, поэтому их аварийное завершение по Ctrl-Break может привести к неверному функционированию программы при повторном запуске. Вследствие этого для управления вводом в таких программах необходимо использовать функции 07h или 08h вместо 01h или 06h. 3) Функция 0Ah. Вводит в буфер пользователя по адресу DS:DX строку символов, набираемую на клавиатуре до нажатия клавиши Enter. Перед вызовом функции в первый байт буфера должна быть занесена максимальная длина строки плюс 1. Во второй байт буфера после ввода всей строки, начиная с третьего байта буфера, функция заносит текущую длину введенной строки без учета последнего кода в буфере - кода клавиши Enter (0Dh). 4) Функция 0Bh. Проверяет кольцевой буфер клавиатуры. Если буфер не пуст, то в регистр AL засылается код 0FFh, иначе - код 00h. Данная функция используется для управления с помощью клавиатуры выполнением циклических программ, когда цикл продолжается до тех пор, пока оператор не нажал какую-либо клавишу, код которой анализируется и осуществляется выход из цикла для выполнения действий, определенных по этой клавише. 5) Функция 0Ch. В отличие от предыдущих данная функция сначала очищает кольцевой буфер клавиатуры, а затем выполняет функцию, код которой содержится в регистре AL (01h, 06h, 07h, 08h или 0Ah). Функция используется обычно после вывода на экран терминала приглашения на ввод данных с клавиатуры, когда нужно обеспечить игнорирование случайно нажатых клавиш до вывода данного приглашения. Date: 2015-09-18; view: 408; Нарушение авторских прав |