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

// Описания функций
void	main(void);
void	WriteReg(unsigned reg, unsigned char data);
unsigned char	ReadReg(unsigned reg);

// Главная функция
void main(void) {

	char           top = 0, bottom = 0;
	unsigned       crt_address;
	BIOS_VAR _far  *bios_var_ptr;

	// Получаем указатель на область переменных видеофункций BIOS
	bios_var_ptr = (BIOS_VAR _far *) FP_MAKE(0x0000, 0x0410);

	// Определяем адрес порта индексного регистра контроллера ЭЛТ
	crt_address = bios_var_ptr->crt_address;

	// Считываем значения регистров начальной и конечной линии курсора

	// Выбираем регистр начальной линии курсора
	WriteReg(crt_address++, 0x0A);

	// Считываем значение регистра
	top = (unsigned char) ReadReg(crt_address--);

	// Выбираем регистр конечной линии курсора
	WriteReg(crt_address++, 0x0B);

	// Считываем значение регистра
	bottom = (unsigned char) ReadReg(crt_address);

	// Отображаем на экране значение регистров
	printf("\nРегистр начальной линии курсора содержит: %d\n"
			 "\nРегистр конечной линии курсора содержит: %d\n",
			top, bottom);

	getch();
}
