// чтение регистра положения курсора

#include <stdio.h>
#include <graph.h>
#include "sysp.h"
#include "sysgraph.h"


main() {

	int            crt_port;
	unsigned char  h_pos, l_pos;
	BIOS_VAR _far  *bios_var_ptr;

	// устанавливаем положение курсора

	_settextposition( 0, 0 );

	// получаем указатель на область переменных видеофункций 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 );
}
