Datasheet
When a keyboard or mouse is connected to the Genesys 2, a “self-test passed” command (0xAA) is sent to the host.
After this, commands may be issued to the device. Since both the keyboard and the mouse use the same PS/2 port, one
can tell the type of device connected using the device ID. This ID can be read by issuing a Read ID command (0xF2).
Also, a mouse sends its ID (0x00) right after the “self-test passed” command, which distinguishes it from a keyboard.
11.2. Keyboard
PS/2 uses open-collector drivers so the keyboard or an attached host can drive the two-wire bus (if the host will not send
data to the keyboard, then the host can use input-only ports).
PS/2-style keyboards use scan codes to communicate key press data. Each key is assigned a code that is sent whenever
the key is pressed. If the key is held down, the scan code will be sent repeatedly about once every 100ms. When a key is
released, an F0 key-up code is sent, followed by the scan code of the released key. If a key can be shifted to produce a
new character (like a capital letter), then a shift character is sent in addition to the scan code, and the host must determine
which ASCII character to use. Some keys, called extended keys, send an E0 ahead of the scan code (and they may send
more than one scan code). When an extended key is released, an E0 F0 key-up code is sent, followed by the scan code.
Scan codes for most keys are shown in Figure 12.
A host device can also send data to the keyboard. Table 8 shows a list of some common commands a host might send.
Command Action
ED Set Num Lock, Caps Lock, and Scroll Lock LEDs. Keyboard returns FA after receiving ED, then host
sends a byte to set LED status: bit 0 sets Scroll Lock, bit 1 sets Num Lock, and bit 2 sets Caps lock. Bits
3 to 7 are ignored.
EE Echo (test). Keyboard returns EE after receiving EE
F3 Set scan code repeat rate. Keyboard returns F3 on receiving FA, then host sends second byte to set the
repeat rate.
FE Resend. FE directs keyboard to re-send most recent scan code.
FF Reset. Resets the keyboard.
Table 8. Keyboard commands.
The keyboard can send data to the host only when both the data and clock lines are high (or idle). Because the host is the
bus master, the keyboard must check to see whether the host is sending data before driving the bus. To facilitate this, the










