Specifications

Call idle_loop
Transmit Resend
Command
n
y
y
y
n
n
n
n
n
n
y
y
Transmit contents of
Transmit Buffer
Byte
Received?
Scan
Interval
Expired?
Scanning
Enabled?
Call ps2_scan_keys
Reset Scan Interval
Put Next Scan
Code in Transmit
Scan Code
Buffer
Empty?
Transmit
Buffer
Empty?
Main Loop
Idle Loop
Host Inhibiting
transmission?
Need to Send
A resend
command?
Need to
resend last
transmitted
byte?
Transmit
Buffer
Empty?
Retransmit last
transmitted byte
Return
y
n
y
n
n
y
y
Call ps2_get_byte
Process Host
Command
Figure 22. PS/2 Main Loop Figure 23. PS/2 Idle Loop