Отображение курсора на экране.
Рисунок 8.6 Отображение курсора на экране.
Программа, приведенная ниже считывает значения из регистров позиции курсора (на момент запуска программы) и отображает их на экране дисплея:
// чтение регистра положения курсора
#include <stdio.h> #include <graph.h> #include "sysp.h" #include "sysgraph.h"
void main(void) {
int crt_port; unsigned char h_pos, l_pos; BIOS_VAR _far *bios_var_ptr;
// получаем указатель на область переменных видеофункций BIOS
bios_var_ptr = (BIOS_VAR _far *) FP_MAKE(0x0000, 0x0410);
// определяем адрес порта индексного регистра контроллера ЭЛТ
crt_port = bios_var_ptr -> crt_address;
// выбираем старший байт регистра положения курсора
WriteReg(crt_port, 0x0E);
// считываем значение старшего байта регистра положения курсора
h_pos = ReadReg(crt_port + 1);
// выбираем младший байт регистра положения курсора
WriteReg(crt_port, 0x0F);
// считываем значение младшего байта регистра положения курсора
l_pos = ReadReg(crt_port + 1);
printf("\nТекущий адрес курсора %X:%X\n", (unsigned char) h_pos, (unsigned char) l_pos ); }
Содержание раздела