}
main ()
if (IfindCirrus ()) {
printf ("\nCirrus card not found"); exit (1 );
}
setCirrusMode ( 0x5F ); // 640x480x256
for (int i = 0; i < 640; f++ )
for(intj = 0;j<480;j++)
writePixel (i, j, ((i/20)+1 )*(j/20+1));
getch();
}

Тем самым можно построить библиотеку, обеспечивающую работу с основными SVGA-картами. Сильная привязанность подобной библиотеки к конкретному набору карт - ее главный недостаток.

Ассоциацией стандартов в области видеоэлектроники - VESA (Video Electronic Standarts Association) была сделана попытка стандартизации работы с различными SVGA-платами путем добавления в BIOS-платы некоторого стандартного набора функций, обеспечивающего получение необходимой информации о карте, установку заданного режима и банка памяти. При этом также вводится стандартный набор расширенных режимов. Номер режима является 16-битовым числом, где биты 9-15 зарезервированы и должны быть равны нулю, бит 8 для VESA-режимов равен единице, а для родных режимов карты - нулю.

Приведем таблицу основных VESA-режимов.

Номер Разрешение Бит на пиксел Количество цветов

lOOh 640x400 8_J256_
101 h 640x480 8_J256__
102h 800x600 4___16_
103h 800x600 __8__256_
104h 1024x768 4__16 _
105h 1024x768 8_256___
106h 1280x1024 4__16_
107h 1280x1024 8_ 256 _
lODh [320x200 | 15 |32K

Компьютерная графика. Полигональные модели

lOEh 320x200

64 К

lOFh 320x200 16M
11 Oh 640x480

32 К

lllh 640x480

64 К

112h 640x480 16M
113h 800x600

32 К

114h 800x600

64 К

115h 800x600

16М

116h 1024x768

32 К

117h 1024x768

64 К

118h 1024x768 16 M
119h 1280x1024

32 К

11 Ah 1280x1024

64 К

HBh 1280x1024

16М

Ниже приводятся файлы, содержащие необходимые структуры и функци работы с VESA-совместимыми адаптерами.

У // File Vesa.H

#ifndef VESA
#define __VESA_
// 256-color modes
#define VESA 640x400x256 0x100
#define VESA 640x480x256 0x101
#define VESA 800x600x256 0x103
#define VESA 1024x768x256 0x105
#define VESA J 280x1024x256 0x107
// 32K color modes
#define VESA 320x200x32K 0x10D
#define VESA 640x480x32K 0x110
#define VESA 800x600x32K 0x113
#define VESA 1024x768x32K 0x116
#define

VESA_1280x1024Х32К

0x119
// 64K color modes
#define VESA 320x200x64K 0x10E
#define VESA 640x480x64K 0x111
#define VESA 800x600x64K 0x114
#define VESA 1024x768x64K 0x117
#define VESA_1280x1024x64K 0x11 A
// 16M color mode
#define VESA 320x200x16M 0x1 OF
#define VESA 640x480x16M . 0x112
#define VESA 800x600x16M 0x115
#define VESA 1024x768x16M 0x118
#define VESA 1280x1024x16M 0x11B
struct VESAInfo
{

⇐ Предыдущая| |Следующая ⇒