Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Абель.docx
Скачиваний:
13
Добавлен:
26.11.2018
Размер:
569.84 Кб
Скачать

Глава 9 Экранные операции II: Расширенные возможности

__________________________________________________________________________

Ц е л ь: Показать более развитые возможности управления экраном,

включая прокрутку, инвертирование, мигание, а также использование

скэн-кодов для ввода с клавиатуры.

ВВЕДЕНИЕ

________________________________________________________________

В гл.8 были показаны основные возможности системы для управления

выводом на экран и ввода с клавиатуры. В данной главе приводятся более

развитые возможности, обеспечивающие прокрутку данных на экране и

установку байта-атрибута для подчеркивания, мигания, выделения яркости.

Материал первого раздела этой главы (по прерыванию BIOS 10) подходит, как

для монохромных, так и для цветных дисплеев. Другие расширенные

возможности включают использование cкэн-кодов для определения нажатой

клавиши или комбинации клавишей на клавиатуре.

Монохромный дисплей

---------------------

Для работы монохромного дисплея имеется память объемом 4К,

начинающаяся по адресу шест. B0000 (дисплейный буфер). Эта память

обеспечивает:

- 2К для символов на экране(25 строк х 80 столбцов);

- 2К для байтов-атрибутов, обеспечивающих инвертирование,

мигание, выделение яркостью и подчеркивание.

Цветной/графический дисплей

-----------------------------

Для работы стандартного цветного графического дисплея имеется 16

Кбайт памяти (дисплейный буфер), начинающийся по адресу шест.B8000. Такой

дисплей может являться текстовым (для нормального ASCII-кода) или

графическим и работать как в цветном, так и в черно-белом (BW) режиме.

Дисплейный буфер обеспечивает экpанные страницы, пронумерованные от 0 до 3

для экрана на 80 cтолбцов и от 0 до 7 для экрана на 40 столбцов. Номер

страницы по умолчанию - 0. В следующей главе будет подробно рассмотрено

управление цветом и графикой.

БАЙТ АТРИБУТОВ

________________________________________________________________

Байт атрибутов, как для монохромного, так и для графического дисплея

в текстовом (не графическом) режиме определяет характеристики каждого

отображаемого символа. Байт-атрибут имеет следующие 8 бит:

Фон Текст

Атрибут: BL R G B I R G B

Номер битов: 7 6 5 4 3 2 1 0

Буквы RGB представляют битовые позиции, управляющие красным (red),

зеленым (green) и синим (blue) лучем в цветном мониторе. Бит 7 (BL)

устанавливает мигание, а бит 3 (I) - уровень яркости. На монохромных

мониторах текст высвечивается зеленым или оранжевым на темном фоне, хотя в

данной главе такое изображение называется черно-белым (BW).

Для модификации атрибутов можно комбинировать биты следующим oбразом:

Эффект выделения Фон Текст

RGB RGB

Неотображаемый (черный по черному) 000 000

Подчеркивание (не для цвета) 000 001

Нормальный (белый по черному) 000 111

Инвертированный (черный по белому) 111 000

Цветные мониторы не обеспечивают подчеркивания; вместо этого

установка бит подчеркивания выбирает синий цвет для текста и получается

отображение синим по черному. Ниже приведены некоторые атрибуты,

основанные на комбинации битов фона, текста, мигания и выделения яркостью:

Двоичный Шест. Эффект выделения

код код

0000 0000 00 Неотображаемый (для паролей)

0000 0111 07 Белый по черному (нормальный)

1000 0111 87 Белый по черному (мигание)

0000 1111 0F Белый по черному (яркий)

0111 0000 70 Черный по белому (инвертированый)

1111 0000 F0 Черный по белому (инверт. мигающий)

Эти атрибуты подходят для текстового режима, как для монохромных, так

и для цветных дисплеев. В следующей главе будет показано, как выбирать

конкретные цвета. Для генерации атрибута можно использовать команду INT

10H. При этом регистр BL должен содержать значение байта-атрибута, а

регистр AH один из следующих кодов: 06 (прокрутка вверх), 07 (прокрутка

вниз), 08 (ввод атрибута или символа), 09 (вывод атрибута или символа).

Если программа установила некотоpый атрибут, то он остается таким, пока

программа его не изменит. Если установить значение байта атрибута равным

шест.00, то символ вообще не будет отображен.

ПРЕРЫВАНИЕ BIOS INT 10H

________________________________________________________________

Прерывание INT 10H обеспечивает управление всем экраном. В регистре

AH устанавливается код, определяющий функцию прерывания. Команда cохраняет

содержимое регистров BX, CX, DX, SI и BP. Ниже описывается все возможные

функции.

AH=00: Установка режима. Данная функция позволяет переключать цветной

монитор в текстовый или графический режим. Установка pежима для

выполняемой в текущий момент программы осуществляется c помощью INT 10H.

При установке происходит очистка экрана. Содержимое регистра AL может быть

следующим:

00 40 х 25 черно-белый текстовый режим

01 40 х 25 стандартный i6-цветовой текстовый режим

02 80 х 25 черно-белый текстовый режим

03 80 х 25 стандартный 16-цветовой текстовый режим

04 320 х 200 стандартный 4-цветовой графический режим

05 320 х 200 черно-белый графический режим

06 640 х 200 черно-белый графический режим

07 80 х 25 черно-белый стандартный монохромный

08 - 0A форматы для модели PCjr

0D 320 х 200 16-цветовой графический режим (EGA)

0E 640 х 200 16-цветовой графический режим (EGA)

0F 640 х 350 черно-белый графический режим (EGA)

10 640 х 350 64-цветовой графический режим (EGA)

EGA (Enhanced Graphics Adapter) - обозначает усовершенствованный

графический адаптер. Следующий пример показывает установку стандартного

16-цветового текстового режима:

MOV AH,00 ;Функция установки режима

MOV AL,03 ;Стандартный цветной текст 80 х 25

INT 10H ;Вызвать BIOS

Для определения типа адаптера, установленного в системе, служит

прерывание BIOS INT 11H. Данная команда возвращает в регистре AX значение,

в котором биты 5 и 4 указывают на видеорежим:

01 40 х 25 черно-белый режим в цветном адаптере

10 80 х 25 черно-белый режим в цветном адаптере

11 80 х 25 черно-белый режим в черно-белом адаптере

Программа, работающая с неизвестным типом монитора, может провеpить

тип по регистру AX после INT 11H и затем установить необходимый режим.

AH=01: Установка размера курсора. Курсор не является символом из

набора ASCII-кодов. Компьютер имеет собственное аппаратное обеспечение для

управления видом курсора. Для этого имеется специальная обработка по INT

прерыванию. Обычно символ курсоpа похож на символ подчеркивания. Используя