"8042" PS/2 Controller: Difference between revisions

m
Did some minor rewriting
[unchecked revision][unchecked revision]
(Update information in step 6 of initialization)
m (Did some minor rewriting)
Line 1:
== Overview ==
 
The PS/2 Controller (often called a "Keyboard“Keyboard controller"controller”) is located on the mainboard. In the early days the controller was a single chip (8042). As of today it is part of the [[Advanced Integrated Peripheral]].
 
The name is misleading because the controller does more than controlling communication with PS/2 devices.
Line 12:
== History ==
 
The original uni-directional, single channel IBM PC and PC-XT keyboard interface was controlled by a multi -purpose PPI (Intel 8048, Programmable peripheral interface; also used to control other functions, like sound and parity error).
The XT controller is 100% obsolete and won't be discussed further in this page.
 
Line 27:
 
 
With the introduction of the PS/2 series, the main change to the keyboard controller subsystem was its expansion to control both a keyboard and a mouse. Previously PC and compatible mice were connected to different physical interfaces, including [[Serial Ports]]. The AT keyboard controller and its "clones"“clones” were not capable of interfacing the new PS/2 mouse. Eventually (around the late 80486 and early Pentium time frame) PS/2 style mice became popular, and "PC“PC-compatible"compatible” controllers have supported dual channels from then on (nominally one keyboard and one mouse).
 
For the keyboard functions proper, the PS2 and AT controllers are very similar. The adjunction of a second channel (for the mouse) has forced however to redefine a few status and control bits.
Line 50:
== Buffer Naming Perspective ==
 
The PS/2 controller has two (one byte) buffers for data - one buffer for data received from devices that is waiting to be read by your OS, and one for data written by your OS that is waiting to be sent to a PS/2 device. Most datasheets for PS/2 controllers are written from the perspective of the PS/2 device and not from the perspective of software running on the host. Because of this, the names given to these buffers are the opposite of what you expect: the output buffer contains a device's output data (data waiting to be read by software), and the input buffer contains a device's input (data that was sent by software).
 
 
Anonymous user