// изменение размеров курсора

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

main() {

	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("Введите верхнюю границу курсора:");
	scanf("%d", &top);
	printf("Введите нижнюю границу курсора:");
	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);

	getch();
}
