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




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


 

high = inp(adr_CRT+1);

 

outp(adr_CRT,0xd);

 

low = inp(adr_CRT+1);

 

offs = ((high << 8) + low) >> 4;

 

// Добавляем к базовому адресу видеопамяти смещение,

 

// взятое из регистров начального адреса

 

vbase += offs;

 

return(vbase);

}

//======================================================

// Функция возвращает количество символов в строке

//======================================================

int GetColumn(void) {

 

// Считываем содержимое переменной BIOS, расположенной по

 

// адресу 0000:044Ah. В ней записано количество символов

 

// в строке для текущего режима

 

return(*(int _far *)(FP_MAKE(0x40,0x4a)));

}

//======================================================

// Функция устанавливает режим работы видеоадаптера, заданный

// параметром vmode

//======================================================

void SetVideoMode( unsigned char vmode ) {

 

union  REGS    inregs, outregs;

 

// Устанавливаем режим vmode

 

inregs.h.ah = 0x0;

 

inregs.h.al = vmode;

 

int86( 0x10, &inregs, &outregs );

}

//======================================================

// Функция управляет назначением атрибутов символов.

//  mode = 0 атрибут управляет интенсивностью цвета символов

//  mode = 1 атрибут управляет миганием символов

//======================================================

void SetBlinkIntensity( unsigned char mode ) {

 

union  REGS    inregs, outregs;

 

inregs.h.ah = 0x10;

 

inregs.h.al = 0x3;

 

inregs.h.bl = mode;

 

int86( 0x10, &inregs, &outregs );

}

//======================================================

// Функция выводит на экран краткую справку о программе

//======================================================

void Hello(void) {

 

printf(   "\nCopyright (C)Frolov G.V.,1995. E-mail:"

                                               

"frolov@glas.apc.org\n"

                               

"\nФормат вызова: TEXTATTR <режим> <интенсивность>"

                               

"\n   <режим>: любые текстовые режимы"




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