Как вы можете видеть, отображаемый
union REGS r;
char x,y;
read_cursor_xy(&x,&y); /* получение текущей позиции курсора
*/
while (*s)
if (*s == '\n') /* обработка символа новой строки */
printf("\n");
s++;
x = 0; y++; /* переход на следующую строку */
continue;
r.h.ah = 9; /* функция отображения символа и его атрибутов */
r.h.al = *s++; /* отображаемый символ */
r.h.bl = color; /* атрибуты цвета */
r.h.bh = 0; /*видеостраница 0 */
r.x.cx = 1; /* отобразить за единицу времени ( такт ) */
int86(0x10,&r,&r);
x++;
goto_xy(x,y); /* перемещение курсора */
Как вы можете видеть, отображаемый символ запоминается в регистре AL, атрибуты цвета символа - в регистре BL, номер видеостраницы - в регистре BH, а количество интервалов времени (тактов процессора), за которое будет отображен символ - в регистре CX. Заметим, что функция также обрабатывает специальный символ новой строки ('\n'). Вы можете также, по желанию, организовать обработку символов табуляции ('\t'), двойных кавычек (") и других специальных символов.
Использование функции color_puts() предполагает наличие ряда макроопределений в начале вызывающей функцию программы. Перечень макроопределений представлен ниже
#define BLUE 1
#define GREEN 2
#define RED 4
#define INTENSE 8
#define BLUE_BACK 16
#define GREEN_BACK 32
#define RED_BACK 64
#define BLINK 128
Используя эти макросы, вы можете по своему усмотрению выдать
на экран строку текста на фоне установленного вами цвета, а также
саму строку в определенном вами цвете. Вы можете также управлять
режимом отображения строки (повышенная яркость или мерцание).
Комбинируя цвета, режимы мерцания или повышенной яркости для одного или совокупности символов, вы можете добиться любого желаемого вами эффекта. Например, представленная ниже строка программы приведет к отображению строки "А это - текст" в режиме повышенной яркости в голубом (циановом) цвете:
color_puts("А это - текст",GREEN | RED | INTENSE );
Содержание Назад Вперед
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий