Программирование видеосистем. Васильев С.А. - 22 стр.

UptoLike

Составители: 

Используя VideoModePtr, полученный на шаге 2, программа должна вызывать эту функцию до тех пор,
пока не будет найден подходящий видеорежим. Если надлежащий видеорежим не найден, программа не
поддерживает такую ситуацию.
Функция возврата информации о режиме Super VGA заполняет буфер, снабжая тем самым про-
грамму информацией, описывающей возможности видеорежима. Блок данных содержит всю необходи-
мую информацию, позволяющую программе эффективно использовать возможности этого режима.
Программа должна проверить поле ModeAttributes. Чтобы проверить, что режим действительно
поддерживается, программа должна проверить бит D0. Если он равен 0, то режим не поддерживается
аппаратурой.
4) После выбора программой видеорежима следующий шаг состоит в его инициализации. Однако,
программа может пожелать сначала сохранить текущий видеорежим. Когда программа закончится, этот
режим будет восстановлен. Для получения текущего видеорежима должна использоваться функция 03h
(Чтение режима Super VGA).
5) Для инициализации видеорежима программа должна использовать функцию 02h VESA BIOS
(Установка режима Super VGA).
6) Перед окончанием программа должна восстановить первоначальный видеорежим. Этот режим,
полученный на шаге 4, может быть либо стандартным VGA-режимом, либо специфичным для конкрет-
ной платы, либо поддерживаемым VESA-режимом. Он должен быть инициализирован с помощью
функции 02h VESA BIOS (Установка режима Super VGA). На этом программа завершает свою работу.
Пример рисования точки в текущем видеорежиме (256 цветов)
procedure Pixel(X, Y: Word; Color: Byte);
var
Nb: Word;
Sm: Word;
Adr: Longint;
begin
{получим абсолютное смещение относительно начала видеопамяти}
{BytePerScanLine – длина строки растра в байтах}
Adr := X + Y * BytePerScanLine;
{получим номер банка видеопамяти}
{WindowAGranularity – размер окна}
Nb := Adr div WindowAGranularity;
{получим смещение относительно начала окна}
Sm := Adr mod WindowAGranularity;
{установим требуемый банк}
asm
mov ax,4F05h
mov bx,0
mov dx,Nb
end;
{выведем точку}
MemB[$A000:Sm] := Color;
end;
Содержание отчета
1 Дать описание алгоритма программирования видеокарт в режиме VESA 1.2.
2 Отобразить текст процедур для записи и чтения значения пиксель в стандарте VESA 1.2.
3 Дать свое заключение о качестве построенных изображений.
СПИСОК РЕКОМЕНДУЕМОЙ ЛИТЕРАТУРЫ
1 Шикин Е.В., Боресков А.В. Компьютерная графика. Полигональные модели. М.: Диалог МИФИ,
2000. 461с.