/**
*.Name         ms_querm
*.Title        Определение показания счетчика перемещений
*
*.Descr        Эта функция определяет относительное перемещение
*              мыши с момента последнего вызова функции.
*
*              Определенное состояние записывается в структуру
*              MOUSE_STATE, описанную в файле sysp.h:
*
*                 typedef struct _MOUSE_STATE_ {
*                       unsigned bottoms;
*                       unsigned x;
*                       unsigned y;
*                 } MOUSE_STATE;
*
*              Адрес структуры передается функции в качестве параметра.
*
*              Перемещение определяется в миках - 1/200 долях дюйма.
*
*.Proto        MOUSE_STATE *ms_querm(MOUSE_STATE *mstate);
*
*.Params       MOUSE_STATE *mstate - указатель на структуру,
*                                    описывающую состояние мыши.
*
*.Return       Функция возвращает значение своего параметра.
*
*.Sample       ms_samp7.c
**/

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

union REGS reg;

MOUSE_STATE *ms_querm(MOUSE_STATE *state) {

	reg.x.ax = 0xB;
	int86(0x33,&reg,&reg);

	state->bottoms = 0;
	state->x       = reg.x.cx;
	state->y       = reg.x.dx;

	return(state);
}
