Программирование видеоадаптеров



Кпсэнг a frls 1⪴⪲ 75 смотрите на www.cabletrade.ru. | Аниматор в детский сад смотрите на www.disneyka-prazdik.ru. |

Атрибуты символов (монохромный режим) - часть 5


                               

"\n   <интенсивность>: 0 - интенсивность цвета, "

                               

"1 - мигание символа" );

}

Исходный текст включаемого файла SYSP.H, который используется в примере TEXTATTR.C, а также в других примерах книги, представлен в листинге 3.2. Файл SYSP.H содержит определение макрокоманды FP_MAKE, служащей для получения дальнего указателя из сегмента и смещения.

Листинг 3.2. Файл SYSP.H

// Макрокоманда FP_MAKE составляет дальний указатель

// из сегмента и смещения

#define FP_MAKE(seg,off) ((void far *)                                          \

 

((((unsigned long) (unsigned)(seg)) << 16L) |            \

 

((unsigned long) (unsigned) (off))))

Включаемый файл SYSGRAPH.H содержит определения нескольких типов структур, используемых в примерах нашей книги. Исходный текст файла SYSGRAPH.H представлен в листинге 3.3.

Листинг 3.2. Файл SYSGRAPH.H

#pragma pack(1)

// Структура для определения символа и его атрибута

typedef struct _VIDEOBUF_ {

 

unsigned char chr;

 

unsigned char attr;

} VIDEOBUF;

// Структура для доступа к переменным видеофункций BIOS

typedef struct _BIOS_VAR_ {

 

unsigned char  bEquipFlags;

 

unsigned char  bReserv1[0x38];

 

unsigned char  bVideoMode;

 

unsigned       wColumns;

 

unsigned       wPageLength;

 

unsigned       wVidStart;

 

unsigned       w8CursorPos[8];

 

unsigned       wCursorShape;

 

unsigned char  bActivePage;

 

unsigned       wAddrCRT;

 

unsigned char  bRegMode;

 

unsigned char  bRegPalette;

 

unsigned char  bReserv2[0x1D];

 

unsigned char  bRows;

 

unsigned       wCharHigh;

 

unsigned char  bInfo;

 

unsigned char  bInfoTwo;

 

unsigned char  bReserv3[0x1F];

 

void far       dwSavePtr;

} BIOS_VAR;

// Структура для заполнения таблицы цветов (таблицы ЦАП)

typedef struct _RGB_ {

 

unsigned char red;

 

unsigned char green;

 

unsigned char blue;

} RGB;

#pragma pack()




Содержание  Назад  Вперед