2 * COPYRIGHT: GPL - See COPYING in the top level directory
3 * PROJECT: ReactOS Virtual DOS Machine
5 * PURPOSE: VDM 32-bit compatible PS/2 MOUSE.COM driver
6 * PROGRAMMERS: Aleksandar Andrejevic <theflash AT sdf DOT lonestar DOT org>
12 /* DEFINES ********************************************************************/
15 // We are ReactOS PS/2 Mouse Driver Version 6.26, compatible MS-MOUSE 6.26
17 #define MOUSE_VERSION MAKEWORD(0x26, 0x06)
19 #define DOS_MOUSE_INTERRUPT 0x33
20 #define MOUSE_IRQ_INT 0x74
21 #define MOUSE_MAX_HORIZ 640
22 #define MOUSE_MAX_VERT 200
32 typedef struct _MOUSE_USER_HANDLER
35 * CallMask format: see table: http://www.ctyme.com/intr/rb-5968.htm#Table3171
36 * Alternatively, see table: http://www.ctyme.com/intr/rb-5981.htm#Table3174
39 ULONG Callback
; // Far pointer to the callback
40 } MOUSE_USER_HANDLER
, *PMOUSE_USER_HANDLER
;
42 typedef struct _MOUSE_DRIVER_STATE
48 WORD PressCount
[NUM_MOUSE_BUTTONS
];
49 COORD LastPress
[NUM_MOUSE_BUTTONS
];
50 WORD ReleaseCount
[NUM_MOUSE_BUTTONS
];
51 COORD LastRelease
[NUM_MOUSE_BUTTONS
];
54 WORD MinX
, MaxX
, MinY
, MaxY
;
57 * User Subroutine Handlers called on mouse events
59 MOUSE_USER_HANDLER Handler0
; // Handler compatible MS MOUSE v1.0+
60 MOUSE_USER_HANDLER Handlers
[3]; // Handlers compatible MS MOUSE v6.0+
74 } MOUSE_DRIVER_STATE
, *PMOUSE_DRIVER_STATE
;
76 /* FUNCTIONS ******************************************************************/
78 BOOLEAN
DosMouseInitialize(VOID
);
79 VOID
DosMouseCleanup(VOID
);