自分用メモ
※1 Row=0x0Eの7bit目は常に0が返る
Row=0x0C以降はPC-8801 mkII のキーボードには無い、追加されたキー。便宜上「拡張キー」と呼ぶことにするが、拡張キーを打鍵した場合はmkII/SRとの互換性維持のため従来キー(mkII/SRに存在するキー)のキーコードも同時に出力される(2行表記のキーの下段)
例えばF9を打鍵した場合は「F9(Make), SHIFT(Make), F4(Make)」が出力される
F9押下→F4押下と打鍵した場合は「F9(Make), SHIFT(Make), F4(Make), F4(Make)」と、F4のMakeが連続で発生する
拡張キーを離した場合はやや複雑となる。単独Breakの場合は簡単で、例えばF9以外のキーが押されていない状態でF9を開放した場合は「F9(Break), F4(Break), SHIFT(Break)」が出力される。
F4を押したままF9を開放した場合はF4のBreakコードは出力されない。よって「F9(Break), SHIFT(Break)」のみが出力される。
SHIFT左かSHIFT右を押したままF9を開放した場合は「F9(Break), F4(Break), SHIFT(Make)」と、最後にSHIFTのMakeコードが出力される。普通に考えたらSHIFTについてはMakeもBreakも出力しなくて良いようにも思われるが。なおこの「良く分からないMakeの出力」はBSとDEL、ENTERとテンキーENTER でも同様に発生する。逆に、SHIFT左とSHIFT右の場合はSHIFTのMakeは発生しない。
INSを押下した場合はINSのMakeに続けて「SHIFT, INSDEL」のMakeも出力されるが、これは個別に出るのではなくまとめて出力される。同一Rowのキーは最大7キーまでMake/Breakを一度に表現できるので、SHIFTとINSDELのMakeは
Row = 0x08、Col = 0b10110111
となる(Col の bitが 0のキーが押下中のキー。4bit目の0はINSDELの押下を示し、7bit目の0はSHIFTの押下を示している)
上記の動作は Type Aキーボードで確認。Type B以降のキーボードでも同じ挙動を示すのかは不明。