VT82C686B
Port 64 - Keyboard / Mouse Command.......................... WO
This port is used to send commands to the keyboard / mouse
controller.
The command codes recognized by the
VT82C686B are listed n the table below.
Note: The VT82C686B Keyboard Controller is compatible
with the VIA VT82C42 Industry-Standard Keyboard
Controller except that due to its integrated nature, many of the
input and output port pins are not available externally for use
as general purpose I/O pins (even though P13-P16 are set on
power-up as strapping options). In other words, many of the
commands below are provided and “work”, but otherwise
perform no useful function (e.g., commands that set P12-P17
high or low). Also note that setting P10-11, P22-23, P26-27,
and T0-1 high or low directly serves no useful purpose, since
these bits are used to implement the keyboard and mouse ports
and are directly controlled by keyboard controller logic.
Table 4. Keyboard Controller Command Codes
Code
20h
Keyboard Command Code Description
Read Control Byte (next byte is Control Byte)
Code
C0h
Keyboard Command Code Description
Read input port (read P10-17 input data to
21-3Fh Read SRAM Data (next byte is Data Byte)
60h Write Control Byte (next byte is Control Byte)
61-7Fh Write SRAM Data (next byte is Data Byte)
the output buffer)
C1h
Poll input port low (read input data on P11-13
repeatably & put in bits 5-7 of status
Poll input port high (same except P15-17)
C2h
C8h
9xh
A1h
A4h
Write low nibble (bits 0-3) to P10-P13
Output Keyboard Controller Version #
Test if Password is installed
Unblock P22-23 (use before D1 to change
active mode)
Reblock P22-23 (protection mechanism for D1)
(always returns F1h to indicate not installed)
Disable Mouse Interface
Enable Mouse Interface
Mouse Interface Test (puts test results in port 60h)
(value: 0=OK, 1=clk stuck low, 2=clk stuck high,
3=data stuck lo, 4=data stuck hi, FF=general error)
KBC self test (returns 55h if OK, FCh if not)
Keyboard Interface Test (see A9h Mouse Test)
Disable Keyboard Interface
C9h
A7h
A8h
A9h
CAh
Read mode (output KBC mode info to port 60
output buffer (bit-0=0 if ISA, 1 if PS/2)
D0h
D1h
D2h
D3h
Read Output Port (copy P10-17 output port values
to port 60)
Write Output Port (data byte following is written to
keyboard output port as if it came from keyboard)
Write Keyboard Output Buffer & clear status bit-5
(write following byte to keyboard)
Write Mouse Output Buffer & set status bit-5 (write
following byte to mouse; put value in mouse input
buffer so it appears to have come from the mouse)
Write Mouse (write following byte to mouse)
AAh
ABh
ADh
AEh
AFh
Enable Keyboard Interface
Return Version #
B0h
B1h
B2h
B3h
B4h
B5h
B6h
B7h
B8h
B9h
BAh
BBh
BCh
BDh
BEh
BFh
Set P10 low
Set P11 low
Set P12 low
Set P13 low
Set P22 low
Set P23 low
Set P14 low
Set P15 low
Set P10 high
Set P11 high
Set P12 high
Set P13 high
Set P22 high
Set P23 high
Set P14 high
Set P15 high
D4h
E0h
Exh
Fxh
Read test inputs (T0-1 read to bits 0-1 of resp byte)
Set P23-P21 per command bits 3-1
Pulse P23-P20 low for 6usec per command bits 3-0
All other codes not listed are undefined.
Revision 1.71 June 9, 2000
-41-
Register Descriptions - Legacy I/O Ports