// программа изменения формы курсора

#include <stdio.h>
#include <graph.h>

void main()
{
	short old_cursor;
	char  top = 0,
			bottom = 0;
	int   error;


	// сохранение формы курсора

	old_cursor = _gettextcursor();
	_displaycursor( _GCURSORON );

	// если вводится отрицательное значение для любой границы,
	// то программа завершается

	for(;top >= 0 && bottom >= 0 ;) {
		_clearscreen( _GCLEARSCREEN );
		printf("Введите верхнюю границу курсора:");
		scanf("%d", &top);
		printf("Введите нижнюю границу курсора:");
		scanf("%d", &bottom);

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

		error = _settextcursor((top << 8) | bottom);
		_clearscreen( _GCLEARSCREEN );
		if( error == -1)
			puts("Ошибка.");
		else
			printf("Предыдущая форма курсора:"
					 "\n верхняя граница = %d,\n нижняя граница = %d.",
					 error >> 8, error & 0xFF);
		getch();
	}

	// восстанавливаем прежнюю форму курсора
	_settextcursor( old_cursor );
}

