Поскольку приложение должно идти в защищенном режиме процессора, а прерывание 1 Oh рассчитано на работу в реальной режиме, необходимо соответствующим образом модифицировать основные функции для работы с этим прерыванием там, где происходит передача адресов и заполнение структур информацией. Текст соответствующего модуля приводится ниже. Он осуществляет всю необходимую работу по получению линейного адреса видеопамяти, получению информационных структур, преобразованию указателей в этих структурах, используя стандарты УВЕ 2.0 и DPMI.

21 // File vesa.h
#ifndef __VESA___
#define _VESA_
// 256-color modes
#define VESA_640x400x256 0x100
#define VESA_640x480x256 0x101
#define VESA_800x600x256 0x103
#define VESAJ 024x768x256 0x105
#define VESAJ 280x1024x256 0x107
// 32K color modes
#define VESA_320x200x32K 0x10D
#define VESA_640x480x32K 0x110
#define VESA_800x600x32K 0x113
#define VESAJ 024x768x32K 0x116
#define VESAJ 280x1024x32K 0x119
// 64K color modes
#define VESA_320x200x64K 0x10E
#define VESA_640x480x64K 0x111
#define VESA_800x600x64K 0x114
#define VESAJ 024x768x64K 0x117
#define VESAJ 280x1024x64K 0x11A
// 16M color mode
#define VESA_320x200x16M 0x1 OF
#define VESA_640x480x16M 0x112 *
#define VESA_800x600x16M 0x115
#define VESA_1024x768x16M 0x118

#define VESA_1280x1024x16M 0x11 В

struct VESAInfo {
char vbeSign [4]; // VESA signature short version; // VESA BIOS version
char * OEM; // Original Equipment Manufactureer
long capabilities;
short * modeListPtr; // list of supported modes
short totalMemory; // total memory on board
// in 64Kb blocks short OEMSoftwareRev;// OEM software revision

4. Работа с основными графическими устройствам

char * OEMVendorName; char * OEMProductName; char * OEMProductRev; char reserved [222]; char OEMData [256];
};
struct VESAModelnfo {

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