"\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()