Chapter 5 Input/Output Interfaces
Table
Table
| Table |
| CPU Commands To The 8042 |
Value | Command Description |
20h | Put current command byte in port 60h. |
60h | Load new command byte. |
A4h | Test password installed. Tests whether or not a password is installed in the 8042: |
| If FAh is returned, password is installed. |
| If F1h is returned, no password is installed. |
A5h | Load password. This |
1.Write A5h to port 64h.
2.Write each character of the password in
3.Write 00h to port 60h.
A6h | Enable security. This command places the 8042 in password lock mode following the A5h command. | |
| The correct password must then be entered before further communication with the 8042 is allowed. | |
A7h | Disable pointing device. This command sets bit <5> of the 8042 command byte, pulling the clock line | |
| of the pointing device interface low. | |
A8h | Enable pointing device. This command clears bit <5> of the 8042 command byte, activating the clock | |
| line of the pointing device interface. | |
A9h | Test the clock and data lines of the pointing device interface and place test results in the output | |
| buffer. | |
| 00h | = No error detected |
| 01h | = Clock line stuck low |
| 02h | = Clock line stuck high |
| 03h | = Data line stuck low |
| 04h | = Data line stuck high |
AAh | Initialization. This command causes the 8042 to inhibit the keyboard and pointing device and places | |
| 55h into the output buffer. | |
ABh | Test the clock and data lines of the keyboard interface and place test results in the output buffer. | |
| 00h | = No error detected |
| 01h | = Clock line stuck low |
| 02h | = Clock line stuck high |
| 03h | = Data line stuck low |
| 04h | = Data line stuck high |
ADh | Disable keyboard command (sets bit <4> of the 8042 command byte). | |
AEh | Enable keyboard command (clears bit <4> of the 8042 command byte). | |
C0h | Read input port of the 8042. This command directs the 8042 to transfer the contents of the input port | |
| to the output buffer so that they can be read at port 60h. | |
C2h | Poll Input Port High. This command directs the 8042 to place bits <7..4> of the input port into the | |
| upper half of the status byte on a continous basis until another command is received. | |
C3h | Poll Input Port Low. This command directs the 8042 to place bits <3..0> of the input port into the | |
| lower half of the status byte on a continous basis until another command is received. | |
D0h | Read output port. This command directs the 8042 to transfer the contents of the output port to the | |
| output buffer so that they can be read at port 60h. | |
D1h | Write output port. This command directs the 8042 to place the next byte written to port 60h into the | |
| output port (only bit <1> can be changed). | |
D2h | Echo keyboard data. Directs the 8042 to send back to the CPU the next byte written to port 60h as if | |
| it originated from the keyboard. No | |
| generated if enabled. | |
D3h | Echo pointing device data. Directs the 8042 to send back to the CPU the next byte written to port | |
| 60h as if it originated from the pointing device. An interrupt (IRQ12) is generated if enabled. | |
D4h | Write to pointing device. Directs the 8042 to send the next byte written to 60h to the pointing device. | |
E0h | Read test inputs. Directs the 8042 to transfer the test bits 1 and 0 into bits <1,0> of the output buffer. | |
F0h- | Pulse output port. Controls the pulsing of bits <3..0> of the output port (0 = pulse, 1 = don’t pulse). | |
FFh | Note that pulsing bit <0> will reset the system. |
Second Edition – April 2003