fixed difference in signedness warning
[reactos.git] / reactos / drivers / input / i8042prt / README.txt
1 Intel 8042 port driver
2
3 This directory contains a driver for Intels 8042 and compatible controllers.
4 It is based on the information in the DDK documentation on MSDN. It is intended
5 to be compatible with keyboard and mouse drivers written for Windows. It is
6 not based on the i8042prt example driver that's included with the DDK.
7
8 The directory contains these files:
9
10 i8042prt.c: Main controller functionality, things shared by keyboards and mice
11
12 keyboard.c: keyboard functionality: detection, interrupt handling
13
14 mouse.c: mouse functionality: detection, interrupt handling, packet parsing for
15 standard ps2 and microsoft mice
16
17 ps2pp.c: logitech ps2++ mouse packat parsing (basic)
18
19 registry.c: registry reading
20
21 makefile, i8042prt.rc: obvious
22
23
24 Some parts of the driver make little sense. This is because it implements
25 an interface that has evolved over a long time, and because the ps/2
26 'standard' is really awful.
27
28 Things to add:
29
30 - Better AT (before ps2) keyboard handling
31 - SiS keyboard controller detection
32 - Mouse identification
33 - General robustness: reset mouse if things go wrong
34 - Handling all registry settings
35 - ACPI
36 - Make it work more like a WDM driver
37
38 Things not to add:
39
40 - Other mouse protocols, touchpad handling etc. : Write a filter driver instead
41 - Keyboard lights handling: Should be in win32k
42 - Keyboard scancode translation: Should be in win32k
43
44 Things requiring work elsewhere:
45
46 - Debugger interface (TAB + key):
47 Currently this interface wants translated keycodes, which are not
48 implemented by this driver. As it just uses a giant switch with
49 hardcoded cases, this should not be hard to fix.
50
51 - Class drivers:
52 I wrote a keyboard class driver, which does keycode translations. It
53 should not do this, win32k should get untranslated keycodes and do
54 the translation itself.
55
56 I changed the mouse class driver (mouclass) to work like Microsofts mouclass.
57 Unfortunately this means that the original psaux driver doesn't work
58 anymore (the same holds for the other mice drivers, probably).
59
60 The keyboard class driver passes on ioctls from win32k, so it can change
61 keyboard settings. As far as I could see, the mouse class driver does not
62 do this yet.
63
64 The class drivers should be able to handle reads for more than one packet
65 at a time (kbdclass should, mouclass does not). Win32k should send such
66 requests.
67
68
69 I put a lot of work in making it work like Microsofts driver does, so third party drivers can work. Please keep it that way.
70
71
72 Links:
73
74 Here's a link describing most of the registry settings:
75
76 http://www.microsoft.com/resources/documentation/Windows/2000/server/reskit/en-us/Default.asp?url=/resources/documentation/Windows/2000/server/reskit/en-us/regentry/31493.asp
77
78 PS/2 protocol documentation:
79
80 http://www.win.tue.nl/~aeb/linux/kbd/scancodes.html
81
82 It also contains a link to a description of the ps2++ protocol, which has
83 since disappeared. Archive.org still has it.