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


Атрибуты символов (монохромный режим) - часть 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   <режим>: любые текстовые режимы"




Начало  Назад  Вперед