Ассемблер и программирование для IBM PC



         

ГЛАВА 9. Экранные операции II: Расширенные возможности - часть 12


MOV AH,00 ;Функция ввода INT 16H ;Вызвать BIOS CMP AL,00 ;Функциональная клавиша? JZ exit ; да - выйти

Скэн-Коды

На рис. 9.2 приведены скэн-коды для некоторых функциональ ных клавишей. Клавиатура имеет по две клавиши для таких символов как *, + и -. Нажатие "звездочки", например, устанавливает код символа шест.2A в регистре AL и один из двух скэн-кодов в регистре AH в зависимости от того, какая из клавишей была нажата: шест.09 для звездочки над цифрой 8 или шест.29 для звездочки на клавише PrtSc. Ниже приведена логика проверки скэн-кода для звездочки:

CMP AL,2AH ;Звездочка? JNE EXIT1 ; нет - выйти CMP AH,09H ;Какой скэн-код? JE EXIT2

------------------------------------------------------------ Функциональные клавиши Скэн-коды Alt/A - Alt/Z 1E - 2C F1 - F10 3B - 44 Home 47 Стрелка вверх 48 PgUp 49 Стрелка влево 4B Стрелка вправо 4D End 4F Стрелка вниз 50 PgDn 51 Ins 52 Del 53 ------------------------------------------------------------ Рис. 9.2. Скэн-коды некоторых функциональных клавишей

Приведем пример программы для установки курсора в строку 0 и cтолбец 0 при нажатии клавиши Номе (скэн-код 47):

MOV AH,00 ;Выполнить ввод с клавиатуры INT 16H ; CMP AL,00 ;Функциональная клавиша? JNE EXIT1 ; нет -- выйти CMP AH,47H ;Скэн-код для клавиши Home?

Ассемблер для IBM PC. Глава 9 212

JNE EXIT2 ; нет -- выйти MOV AH,02 ; MOV BH,00 ;Установить курсор MOV DX,00 ; по координатам 0,0 INT 10H ;Вызвать BIOS

Функциональные клавиши F1 - F10 генерируют скэн-коды от шест.3B до шест.44. Следующий пример выполняет проверку на функциональную клавишу F10:

CMP AH,44H ;Клавиша F10? JE EXIT1 ; Да

По адресу EXIT1 программа может выполнить любое необходимое действие. Полный список скэн-кодов приводится в руководстве по языку BASIC. Техническое описание IBM PC содержит подробное описание всех скэн-кодов, а также описание использования клавишей Alt, Ctrl и Shift.

ОСНОВНЫЕ ПОЛОЖЕНИЯ НА ПАМЯТЬ ------------------------------------------------------------

ъ Монохромный дисплей использует 4К байт памяти, 2К байт на символы и 2К байт на атрибуты для каждого символа. ъ Цветной дисплей использует 16К байт памяти и может рабо тать в цветном или черно-белом (BW) режимах. Возможно использование, как текстового режима для отображения ASCII-символов, так и графического режима для любых изображений. ъ Байт-атрибут используется и для монохромных дисплеев и для цветных в текстовом режиме. Атрибут обеспечивает мигание, инвертирование и выделение яркостью. Для цветных дисплеев в текстовом режиме биты RGB позволяют выбирать цвета, но не имеют режима подчеркивания. ъ Команда BIOS INT 10H обеспечивает полную экранную обработку: установку режимов, установку положения курсора, прокрутку экрана, чтение с клавиатуры и вывод на экран. ъ Если ваша программа выводит вниз экрана, то не забывай те выполнять прокрутку прежде, чем курсор выйдет из последней строки. ъ При использовании атрибутов для мигания и инвертирова ния, не забывайте сбрасывать их в отключенное состояние. ъ Для функций по команде INT 10H, выплняющих чтение и вывод на экран, помните о перемещении курсора. ъ Команда BIOS INT 16H обеспечивает прием и распознавание функциональных клавишей. ъ Функциональные клавиши предполагают запрограммированный вызов некоторых действий.




Содержание  Назад  Вперед