#include #include "raton.h" static int Ax, Bx, Cx, Dx; static char puesto; /* Funci¢n privada que se comunica con el driver del raton */ static void SRVraton(int servicio) { /* Funcion de llamada a los servicios del raton */ union REGS registros; registros.x.ax = servicio; registros.x.bx = Bx; registros.x.cx = Cx; registros.x.dx = Dx; int86(0x33, ®istros, ®istros); Ax = registros.x.ax; Bx = registros.x.bx; Cx = registros.x.cx; Dx = registros.x.dx; } /* inicializa el raton */ int InicioRaton(void) { SRVraton(0); if (!Ax) return -2; puesto = 0; return Bx; } /* muestra el puntero del raton */ void MuestraRaton(void) { if (!puesto) { SRVraton (1); puesto = 1; } } /* oculta el puntero del raton */ void OcultaRaton(void) { if (puesto) { SRVraton (2); puesto = 0; } } /* devuelve la posici¢n del raton (Horizontal)*/ int PosXRaton(void) { SRVraton (3); return Cx; } /* devuelve la posici¢n del raton (Vertical)*/ int PosYRaton(void) { SRVraton (3); return Dx; } int PulsadoRatonBIzd(void) { /* Pulsaci¢n del bot¢n izquierdo */ /* Devuelve 0 si no esta pulsado 1 si est  pulsado */ SRVraton(3); return ( Bx & 1); } void SituaRaton(int x, int y) { /* Pone el puntero del raton en la posici¢n indicada */ Cx = x; Dx = y; SRVraton (4); } void EstadoRaton (int *x, int *y , int *b) { /* Devuelve la posici¢n del raton y su pulsaci¢n */ SRVraton (3); *x=Cx; *y=Dx; *b=(Bx&1); }