Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
SP_MET_2.DOC
Скачиваний:
13
Добавлен:
02.05.2019
Размер:
689.66 Кб
Скачать
      1. Работа с svga-режимами

В режиме VGA 320х200 с 256 цветами для отображения видеопамяти на основное адресное пространство используется 64000 = FA00h байт, располагаю­щихся с адреса A000h:0000h. Дальнейшее увеличение разрешения или числа цветов приводит к тому, что объем видеопамяти превышает мак­симальные границы сегмента в реальном режиме (65535 = FFFFh байт), а затем и размер участка адресного пространства, отводимого для видео­памяти (160 Кб, от A000h:0000h до B800h:FFFFh; с адреса C800h:0000h начинается область ROM BIOS). Для вывода изображения в этих условиях исполь­зуются два механизма — переключение банков видеопамяти для реаль­ного режима работы процессора и LFB (линейный кадровый буфер) для защищенного режима.

Во втором случае вся видеопамять отображается на непрерывный участок адресного пространства, начинающегося с некоторого 32-разрядного адреса. В результате весь образ видеопамяти, который может занимать несколько мегабайт, отображается в один непре­рывный массив. В защищенном режиме максимальный размер сегмента составляет 4 Гб, поэтому никаких сложностей с адресацией этого буфера не возникает. Буфер LFB можно использовать, только если видео­адаптер поддерживает спецификацию VBE 2.0.

В реальном режиме вывод на экран осуществляется по-прежнему ко­пированием данных в 64-килобайтный сегмент, обычно начинающийся с адреса A000h:0000h, но эта область памяти соответствует только части экрана. Чтобы вывести изображение в другую часть экрана, требуется вызвать функцию перемещения окна (или, что то же самое, переключе­ния банка видеопамяти), изменяющую область видеопамяти, которой со­ответствует сегмент А000h. Например, в режиме 640х480 с 256 цветами требуется 307200 байт для хранения всего видеоизображения. Заполне­ние сегмента A000h:0000h – A000h:FFFFh приводит к закраске прибли­зительно 1/5 экрана, перемещение окна А на позицию 1 (или переклю­чение на банк 1) и повторное заполнение этой же области приводит к закраске следующей 1/5 экрана, и т. д. Перемещение окна осуществляет­ся подфункцией 05 видеофункции 4Fh или передачей управления пря­мо на процедуру, адрес которой можно получить, вызвав подфункцию 01. Некоторые видеорежимы позволяют ис­пользовать сразу два таких 64-килобайтных окна, окно А и окно В, так что можно записать 128 Кб данных, не вызывая прерывания.

Несмотря на отсутствие общего формального стандарта на режимы Super VGA (SVGA), многие из них поддерживаются большинством производителей видеоадаптеров в соответствии со стандартами VESA BIOS Extension (VBE).

В зависимости от количества бит, используемых для хранения кода цвета, стандартные графические режимы SVGA могут быть 4-, 8-, 15-, 16-, 24- и 32-битными.

Каждый пиксель в 4-битных режимах описывается одним битом, поэтому для вывода цветного изображения требуется программирование видеоадаптера на уровне портов ввода-вывода. Код цвета хранится в 4-битовой ячейке, следовательно, возможны 16 различных цветов для каждого пикселя.

Каждый пиксель в 8-битных режимах описывается ровно одним байтом. Значение байта — номер цвета из палитры, значения цветов которой можно изменять, на­пример, вызывая подфункцию 09 видеофункции 4Fh.

Каждый пиксель в 15-битных режимах описывается ровно одним словом (16 бит), в кото­ром биты 0 - 4 содержат значение синей компоненты цвета, биты 5 - 9 — зеленой, а биты 10 - 14 — красной. Бит 15 не используется.

В 16-битных режимах каждый пиксель также описывается ров­но одним словом. Обычно биты 0 - 4 (5 бит) содержат значение синей компоненты, биты 5 - 10 (6 бит) — зеленой, а биты 11 - 15 (5 бит) — крас­ной. В нестандартных режимах число бит, отводимое для каждого цвета, может отличаться, так что при их использовании следует вызвать подфункцию 01 видеофункции 4Fh и получить информацию о видеорежиме.

В режимах с 24-битным и 32-битным цветом каждому пикселю на экране соответствуют три байта и одно двойное слово (4 байта). Если ви­деорежим использует модель памяти 6 (Direct Color), то младший 6aйт (байт 0) содержит значение синего цвета, байт 1 содержит значение зеленого, байт 2 — значение красного, а байт 3 — в 32-битных режимах резервный и используется либо для выравнивания, либо содержит зна­чение для альфа-канала. Некоторые видеорежимы могут использовать модель памяти 7 (YUV) — при этом байт 0 (младший) соответ­ствует насыщенности красного, байт 1 — насыщенности синего, a 6aйт 2 — яркости.

Таблица 4. Графические режимы SVGA

стандарт

4-битные (16 цветов)

8-битные (256 цветов)

номер

разре-шение

объем памяти

номер

разре-шение

объем памяти

VGA

012h

640480

64 Кб

013h

320200

64 Кб

VBE 1

102h

800600

256 Кб

100h

640400

256 Кб

104h

1024768

384 Кб

101h

640480

320 Кб

106h

12801024

512 Кб

103h

800600

512 Кб

105h

1024768

768 Кб

107h

12801024

1,3 Мб

VBE 2

120h

16001200

1,9 Мб

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]