xref: /reactos/drivers/input/i8042prt/README.txt (revision dc0433f0)
1Intel 8042 port driver
2
3This directory contains a driver for Intels 8042 and compatible controllers.
4It is based on the information in the DDK documentation on MSDN. It is intended
5to be compatible with keyboard and mouse drivers written for Windows. It is
6not based on the i8042prt example driver that's included with the DDK.
7
8The directory contains these files:
9
10createclose.c: open/close devices functionnality
11
12i8042prt.c: Main controller functionality, things shared by keyboards and mice
13
14keyboard.c: keyboard functionality: detection, interrupt handling
15
16misc.c: misc things, mostly related to Irp passing
17
18mouse.c: mouse functionality: detection, interrupt handling, packet parsing for
19         standard ps2 and microsoft mice
20
21pnp.c: Plug&Play functionnality
22
23ps2pp.c: logitech ps2++ mouse packat parsing (basic)
24
25readwrite.c: read/write to the i8042 controller
26
27registry.c: registry reading
28
29setup.c: add keyboard support during the 1st stage setup
30
31i8042prt.rc: obvious
32
33
34Some parts of the driver make little sense. This is because it implements
35an interface that has evolved over a long time, and because the ps/2
36'standard' is really awful.
37
38Things 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
47Things 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
53Things 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
66I 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
69Links:
70
71Here's a link describing most of the registry settings:
72
73http://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
75PS/2 protocol documentation:
76
77http://www.win.tue.nl/~aeb/linux/kbd/scancodes.html
78
79It also contains a link to a description of the ps2++ protocol, which has
80since disappeared. Archive.org still has it.
81