A-2  Appendix A:  PS/2 Keyboard Wedge 
PS/2 Keyboard Emulation 
The wedge uses the existing PS/2 keyboard interface to send data to the host terminal. The 
standard PS/2 keyboard - host terminal interaction is bidirectional, meaning that the host 
terminal can send commands and data to the PS/2 keyboard and the PS/2 keyboard can send 
data to the host terminal. In order to work correctly with the host terminal, the wedge needs to 
respond to host terminal commands. The state of the PS/2 Keyboard Emulation enable bit 
determines the way that the wedge responds to host terminal commands. 
PS/2 Keyboard Emulation Disabled 
When PS/2 Keyboard Emulation is disabled the wedge will respond only to the RESEND 
command from the host terminal. The RESEND command is sent from the host terminal in the 
event that a wedge data character with bad parity was received by the host terminal. The wedge 
responds to a RESEND command by resending the prior data character. The wedge will only 
respond to the RESEND command when in Wedge-In state. If a command other than 
RESEND is received by the wedge when PS/2 Keyboard Emulation is disabled, the wedge will 
transition to Wedge-Out state and wait for the PS/2 keyboard interface to be idle. Once in 
Wedge-In state again the wedge will resume transmission of any unsent data. 
PS/2 Keyboard Emulation Enabled 
When PS/2 Keyboard Emulation is enabled, the wedge must respond in a way that makes it 
look substantially like a PS/2 keyboard to the attached host terminal. The wedge will respond 
to the following commands: 
Host Terminal Command 
PS/2 Keyboard and 
Scanner Wedge 
Response Detail 
RESET (0xFF)  ACK (0xFA)  As a result of RESET a PS/2 keyboard would respond 
with 0xAA meaning self-test-completion, or 0xFC 
meaning self-test-failure.  
RESEND(0xFE) Resend Last 
Byte 
 
0xFD-0xF4  ACK (0xFA)  Various commands that have no specific meaning  to the 
wedge. 
SET TYPEMATIC RATE (0xF3)  ACK (0xFA), 
ACK (0xFA) 
The host terminal follows the first ACK byte with one 
byte of data that defines the typematic rate.  The data byte 
must be ACKed. 
READ ID (0xF2)  ACK (0xFA) 
then two byte 
device ID 
A PS/2 keyboard would respond to the command by 
sending a two byte ID 0xAB, 0x83. 
SET SCAN CODE SET (0xF0)  ACK (0xFA), 
ACK (0xFA) 
The host terminal follows the first ACK byte with one 
byte that defines the scan code set.  The data byte must be 
ACKed. 
ECHO (0xEE)  ECHO (0xEE)  The PS/2 keyboard would respond with 0xEE.  For 
diagnostics. 
SET/RESET LED (0xED)  ACK (0xFA), 
ACK (0xFA) 
The host terminal follows the first ACK with one byte of 
data defining the state of Num Lock, Caps Lock, and 
Scroll Lock LEDs.  The data byte must be ACKed.