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

union REGS reg;

char form[64] = {

// Массив маски по "И"

	255,255, 255,255, 255,255, 255,255, 255,255, 255,255, 255,255, 255,255,
	255,255, 255,255, 255,255, 255,255, 255,255, 255,255, 255,255, 255,255,

// Массив маски по "Исключающее ИЛИ"

	127,254, 127,254, 127,254, 127,254, 127,254, 127,254, 127,254, 0,0,
	0,0, 127,254, 127,254, 127,254, 127,254, 127,254, 127,254, 127,254,
	};


void main() {

	int botm, i;
	MOUSE_STATE state;
	unsigned old_videomode, new_videomode;
	char buf[20], *bufptr;


// Определяем текущий видеорежим

	reg.x.ax = 0x0f00;
	int86(0x10, &reg, &reg);
	old_videomode = reg.h.al;

// Устанавливаем новый видеорежим:

// Устанавливаем максимально допустимую длину строки

	buf[0] = 10;
	printf("\nВведите десятичный номер видеорежима: ");
	bufptr = cgets(buf);

// Преобразуем введенное число к формату int

	new_videomode = atoi(bufptr);

	reg.h.ah = 0;
	reg.h.al = new_videomode;
	int86(0x10, &reg, &reg);

// Инициализируем мышь

	if(!ms_init(&botm)) {
		printf("\nМышь не установлена");
		exit(-1);
	}

// Задаем новую форму для курсора мыши

	ms_gform(0,0, &form[0]);

// Включаем курсор

	ms_on();

	getch();

	ms_off();

	reg.h.ah = 0;
	reg.h.al = old_videomode;
	int86(0x10, &reg, &reg);

}
