HID
USBキーボードとのやりとりについては"Device Class Definition for Human Interface Devices"に書いてある。
"HID Usage Table"を見ればキーのUsageIDがわかる。例えば,"a"なら04h。
- http://www.usb.org/developers/devclass_docs/HID1_11.pdf
- http://www.usb.org/developers/devclass_docs/Hut1_12.pdf
WikipediaによるとBoot Protocolのみ対応のキーボードが多いらしい。Boot ProtocolとはBIOSとやりとりするためのもので,これを守っていればOSが起動していなくてもキーボードが使える。逆に言えば,システムがブートする前にも使える必要のあるキーボードはBoot Protocolをサポートしていなければならない。
OSが立ち上がった後はBoot Protocolでやりとりする必要はかならずしもなく,Report Protocolに変更しても良い。Boot ProtocolはReport Protocolのサブセットなので,OSがReport Protocolをサポートしている限りはBoot Protocolでも問題ない。
Boot Protocolの入力Reportに入れられるキーコードはモディファイアキーを除いて6個。なので同時打鍵はこれに制限される。ちなみにモディファイアキーはCtrl,Alt,Shift,GUIの4つで,それぞれ左右にあるので全部で8つ。GUIとはWindowsならWindowsキー,MacならCommandキー。普通のキーはキーコードがそのまま送られるが,モディファイアキーはビットマップで送られるという違いがある。