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

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

union REGS reg;

MOUSE_STATE *ms_query(MOUSE_STATE *state) {

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

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

	return(state);
}
