* Sync up to trunk HEAD (r62285). Branch guys deserve the significant speedups too ;)
[reactos.git] / 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 createclose.c: open/close devices functionnality
11
12 i8042prt.c: Main controller functionality, things shared by keyboards and mice
13
14 keyboard.c: keyboard functionality: detection, interrupt handling
15
16 misc.c: misc things, mostly related to Irp passing
17
18 mouse.c: mouse functionality: detection, interrupt handling, packet parsing for
19 standard ps2 and microsoft mice
20
21 pnp.c: Plug&Play functionnality
22
23 ps2pp.c: logitech ps2++ mouse packat parsing (basic)
24
25 readwrite.c: read/write to the i8042 controller
26
27 registry.c: registry reading
28
29 setup.c: add keyboard support during the 1st stage setup
30
31 i8042prt.rc: obvious
32
33
34 Some parts of the driver make little sense. This is because it implements
35 an interface that has evolved over a long time, and because the ps/2
36 'standard' is really awful.
37
38 Things to add:
39
40 - Better AT (before ps2) keyboard handling
41 - SiS keyboard controller detection
42 - Mouse identification
43 - General robustness: reset mouse if things go wrong
44 - Handling all registry settings
45 - ACPI
46
47 Things not to add:
48
49 - Other mouse protocols, touchpad handling etc. : Write a filter driver instead
50 - Keyboard lights handling: Should be in win32k
51 - Keyboard scancode translation: Should be in win32k
52
53 Things requiring work elsewhere:
54
55 - Debugger interface (TAB + key):
56 Currently this interface wants translated keycodes, which are not
57 implemented by this driver. As it just uses a giant switch with
58 hardcoded cases, this should not be hard to fix.
59
60 - Class drivers:
61 The class drivers should be able to handle reads for more than one packet
62 at a time (kbdclass should, mouclass does not). Win32k should send such
63 requests.
64
65
66 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.
67
68
69 Links:
70
71 Here's a link describing most of the registry settings:
72
73 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
74
75 PS/2 protocol documentation:
76
77 http://www.win.tue.nl/~aeb/linux/kbd/scancodes.html
78
79 It also contains a link to a description of the ps2++ protocol, which has
80 since disappeared. Archive.org still has it.