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

UptoLike

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

var RetCode: word;
begin
if Bank = NumBank then
SetVESABank := TRUE
else begin
asm
mov ax, $4f05
mov bx, Window
mov dx, Bank
int $10
mov RetCode, ax
end;
if RetCode = $004f then begin
SetVESABank := TRUE;
NumBank := Bank;
end
else SetVESABank := FALSE;
end;
end;
Функция 4F06h
Данная функция устанавливает длину логических строк растра. Эта функция позволяет прикладной
программе устанавливать размер видеобуфера более широким, чем высвечиваемая область. Функция
07h позволяет затем указывать в таком буфере начало высвечиваемой области.
Функция 4F07h
Эта функция выбирает пиксель логической страницы, который высвечивается в левом верхнем углу
экрана. Эта функция может использоваться для скроллинга логического экрана, размеры которого пре-
вышают размер высвечиваемого экрана. Эта функция может также использоваться для быстрого пере-
ключения между двумя высвечиваемыми экранами для создания эффекта анимации с помощью двух
буферов.
Функция 4F08h
Эта функция опрашивает и устанавливает режим функционирования DAC-палитры. Ширина палит-
ры DAC сбрасывается в стандартное для VGA 6-битное значение при вызове стандартной или VESA
(AX = 4F02h) функции установки режима.
СХЕМА ПРОГРАММИРОВАНИЯ ВИДЕОКАРТЫ SUPER VGA В РЕЖИМЕ VESA 1.2
1) Сначала программа должна разместить буфер длиной в 256 байтов. Этот буфер будет использо-
ваться VESA BIOS для возврата информации о видеосреде.
2) Программа должна затем вызвать функцию 00h из VESA BIOS (Возврат информации о Super
VGA). Если регистр AX не равен 004Fh при возврате из этой функции, то программа должна опреде-
лить, что VESA BIOS Extension отсутствует и не поддерживать такую ситуацию.
Если регистр AX не содержит кода ошибки, вызов функции был успешен. VESA BIOS Extension за-
полняет буфер разнообразной информацией. Программа может проверить правильность VESA-блока,
идентифицируя символы "VESA" в начале блока. Программа может также проверить поле VESAVersion
для того, чтобы определить обладает ли VESA BIOS Extension достаточными функциональными воз-
можностями. Программа может использовать OEMStringPtr для определения информации, специфич-
ной для конкретной видеоплаты.
Наконец, программа может получить список поддерживаемых Super VGA режимов, используя
VideoModePtr. Это поле содержит указатель на список видеорежимов, поддерживаемых видеосредой.
3) Программа должна затем создать новый буфер и вызвать из VESA BIOS функцию 01h (Возврат
информации о режиме Super VGA), чтобы получить информацию о поддерживаемых видеорежимах.