русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Прерывание int 16h


Дата добавления: 2014-11-27; просмотров: 8983; Нарушение авторских прав


Функция 00h (10h). Чтение символа клавиатуры с ожиданием.

Читает из кольцевого буфера ввода символ и скан-код. После считывания они удаляются из буфера и возвращаются в регистре AX. Если буфер пуст, ожидает ввода. Каждой клавише на клавиатуре соответствует так называемый скан-код, соответствующий только этой клавише. Этот код посылается клавиатурой при каждом нажатии и отпускании клавиши и обрабатывается в BIOS обработчиком прерывания Int 09h. Функция 00h даёт возможность получить код нажатия, не перехватывая этот обработчик. Если нажатой клавише соответствует ASCII-символ, то:

AL – ASCII-код символа, AH – скан-код клавиши.

Если нажатой клавише соответствует расширенный ASCII-код, то:

AL – 00h, AH – расширенный ASCII-код.

Вызов: AH = 00h (83/84-key).

Возврат: AL = ASCII-код символа, изображённый на клавише/00h,

AH = скан-код/расширенный ASCII-код клавиши.

Функция 10h (AH = 10h) – усовершенствованный вариант функции 00h для расширенной клавиатуры (101/102-key). Позволяет получить расширенные ASCII-коды для клавиш F11, F12, а также для ряда других комбинаций. В качества признака управляющих клавиш или их комбинаций, помимо значения 00h, используются 0Ah, 0Dh и E0h.

Функция 01h (11h). Поверка буфера клавиатуры на наличие в нём символа.

Определяет, имеются ли в кольцевом буфере ожидающие ввода символы; возвращает флаг ожидания и сам символ при его наличии. Однако символ и его скан-код не извлекаются из буфера и могут быть снова получены при повторном вызове функции 00h Int 16h. Данная функция относится к числу асинхронных: определив состояние буфера ввода, она возвращает управление программе.

Вызов: AH = 01h (83/84-key), 11h(101/102-key).

Возврат: ZF = 1, если буфер пуст и ZF = 0, если в буфере имеется ожидающий считывания символ. В этом случае:

AL = ASCII-код символа/00h, AH = скан-код клавиши/расширенный ASCII-код.



Функция 11h (AH = 11h) – усовершенствованный вариант функции 01h для расширенной клавиатуры (101/102-key). Позволяет получить расширенные ASCII-коды для клавиш F11, F12, а также для ряда других комбинаций. В качестве признака управляющих клавиш или их комбинаций, помимо значения 00h, используются 0Ah, 0Dh и E0h.

Функция 02h (12h). Получение флагов клавиатуры.

Возвращает байт флагов клавиатуры, описывающих состояние управляющих клавиш, записанное в байте (слове) области данных BIOS по адресу 0000h:0417h.

Вызов: AH = 02h

Возврат: AL=1-ый байт флагов клавиатуры.

Биты байта имеют следующие значения:

– 0 : 1 – правая Shift нажата

– 1 : 1 – левая Shift нажата

– 2 : 1 – Ctrl (любая) нажата

– 3 : 1 – Alt (любая) нажата

– 4 : 1 – режим Scroll Lock

– 5 : 1 – режим Num Lock

– 6 : 1 – режим Caps Lock

– 7 : 1 – режим Insert активен

Функция 12h (AH = 12h) – усовершенствованный вариант функции 02h для расширенной клавиатуры (101/102-key). Выводит такое же значение байта, как и функция 02h, по адресу 0000h:0417h, и, дополнительно, второй байт статуса клавиатуры (адрес 0000h:0418h) со следующими значениями:

0: 1 – левая Ctrl нажата 4: 1 – нажата Scroll Lock

1: 1 – левая Alt нажата 5: 1 – нажата Num Lock

2: 1 – правая Ctrl нажата 6: 1 – нажата Caps Lock

3: 1 – правая Alt нажата 7: 1 – нажата SysReg



<== предыдущая лекция | следующая лекция ==>
Рекомендации по использованию видеосервиса BIOS | Задержка программных операций


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.26 сек.