1aeb9aa29d3b4a9256942600ccff8d3557fc81cd
[reactos.git] / reactos / subsystems / mvdm / ntvdm / bios / bios32 / moubios32.h
1 /*
2 * COPYRIGHT: GPL - See COPYING in the top level directory
3 * PROJECT: ReactOS Virtual DOS Machine
4 * FILE: moubios32.h
5 * PURPOSE: VDM Mouse 32-bit BIOS
6 * PROGRAMMERS: Aleksandar Andrejevic <theflash AT sdf DOT lonestar DOT org>
7 */
8
9 #ifndef _MOUBIOS32_H_
10 #define _MOUBIOS32_H_
11
12 /* DEFINES ********************************************************************/
13
14 #if 0 // This code is for the MOUSE.COM driver
15
16 enum
17 {
18 MOUSE_BUTTON_LEFT,
19 MOUSE_BUTTON_RIGHT,
20 MOUSE_BUTTON_MIDDLE,
21 NUM_MOUSE_BUTTONS
22 };
23
24 typedef struct _MOUSE_USER_HANDLER
25 {
26 /*
27 * CallMask format: see table: http://www.ctyme.com/intr/rb-5968.htm#Table3171
28 * Alternatively, see table: http://www.ctyme.com/intr/rb-5981.htm#Table3174
29 */
30 USHORT CallMask;
31 ULONG Callback; // Far pointer to the callback
32 } MOUSE_USER_HANDLER, *PMOUSE_USER_HANDLER;
33
34 typedef struct _MOUSE_DRIVER_STATE
35 {
36 SHORT ShowCount;
37 COORD Position;
38 WORD Character;
39 WORD ButtonState;
40 WORD PressCount[NUM_MOUSE_BUTTONS];
41 COORD LastPress[NUM_MOUSE_BUTTONS];
42 WORD ReleaseCount[NUM_MOUSE_BUTTONS];
43 COORD LastRelease[NUM_MOUSE_BUTTONS];
44 SHORT HorizCount;
45 SHORT VertCount;
46 WORD MickeysPerCellHoriz;
47 WORD MickeysPerCellVert;
48
49 /*
50 * User Subroutine Handlers called on mouse events
51 */
52 MOUSE_USER_HANDLER Handler0; // Handler compatible MS MOUSE v1.0+
53 MOUSE_USER_HANDLER Handlers[3]; // Handlers compatible MS MOUSE v6.0+
54
55 struct
56 {
57 WORD ScreenMask;
58 WORD CursorMask;
59 } TextCursor;
60
61 struct
62 {
63 COORD HotSpot;
64 WORD ScreenMask[16];
65 WORD CursorMask[16];
66 } GraphicsCursor;
67 } MOUSE_DRIVER_STATE, *PMOUSE_DRIVER_STATE;
68
69 #endif
70
71 /* FUNCTIONS ******************************************************************/
72
73 VOID BiosMousePs2Interface(LPWORD Stack);
74
75 BOOLEAN MouseBios32Initialize(VOID);
76 VOID MouseBios32Cleanup(VOID);
77
78 #endif /* _MOUBIOS32_H_ */
79
80 /* EOF */