#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;

	printf("\n Введите верхнюю границу курсора:");
	scanf("%d", &top);
	printf("\n Введите нижнюю границу курсора:");
	scanf("%d", &bottom);

	// ==== Изменение формы курсора ====

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

	// Записываем в регистр значение переменной top
	WriteReg(crt_address--, (unsigned char) top);

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

	// Записываем в регистр значение переменной bottom
	WriteReg(crt_address, (unsigned char)bottom);

	printf("\n Для завершения программы нажмите любую клавишу");

	getch();
}
