EEPROMアドレスマップ (その1)

俺メモ

FMRおよびPS/2 “以外” のアダプタのEEPROMアドレスマップ

※スキャンコード=キーボードが返す生のコード
※キーコード=アダプタがUSBホスト(PC)に返す、USB規格で定義されたコード

mode 0 のEEPROMアドレスマップ

0x00 ここに 0xA5 を書くとユーザ定義のキーマップが有効になる
0x01-0x7C 通常レイヤーのユーザ定義キーマップ。
スキャンコードがEEPROMのアドレスに対応する
0x7D アダプタ設定2
0x7E 予約
0x7F 予約
0x80 予約
0x81-0xFC Fnレイヤーのユーザ定義キーマップ。
スキャンコード + 0x80 がEEPROMのアドレスに対応する。
Fnキーの機能を使わない場合は全領域がユーザ定義マクロの記録領域となる。
0xFD Fnキーとするキーのスキャンコードを設定する。0x00 か 0xFF に設定するとFnキー無効
0xFE リモートWakeUpに使うキーを指定する。
特定キーのScancodeを書いた場合はそのキーでSleep解除。
0xFF を書いた場合は任意のキーでSleep解除。
0x00 を書いた場合はキーボードによるSleep解除は無効。
0xFF アダプタ設定1

※ もっともシンプルなモード。Fnキーを大量に定義したい場合はこのモードで。

mode 1a のEEPROMアドレスマップ

0x00 ここに 0xA5 を書くとユーザ定義のキーマップが有効になる
0x01-0x7C 通常レイヤーのユーザ定義キーマップ。
スキャンコードがEEPROMのアドレスに対応する
0x7D アダプタ設定2
0x7E 予約
0x7F 予約
0x80 予約
0x80-0x9F Fnレイヤーのユーザ定義キーマップ。
必ず  “<スキャンコード>, <発行したいキーコード>”  の2バイトペアで記述する。
よってFnキーは16キーまで設定可能
0xA0-0xF7 ユーザ定義マクロの記録領域。
8step (8byte) あるいは 16step (16byte) 単位で設定する
全領域を8stepのマクロ定義で使った場合は11個のマクロを定義可能。
0xFD Fnキーとするキーのスキャンコードを設定する。0x00 か 0xFF に設定するとFnキー無効
0xFE リモートWakeUpに使うキーを指定する。
特定キーのScancodeを書いた場合はそのキーでSleep解除。
0xFF を書いた場合は任意のキーでSleep解除。
0x00 を書いた場合はキーボードによるSleep解除は無効。
0xFF アダプタ設定1

※ Fnキー機能とユーザ定義マクロ機能を同時に利用可能。ただしFnキーは16個までしか設定できない。

mode 1b のEEPROMアドレスマップ

0x80-0xAF Fnレイヤーのユーザ定義キーマップ。
必ず  “<スキャンコード>, <発行したいキーコード>”  の2バイトペアで記述する。
よってFnキーは24キーまで設定可能
0xB0-0xF7 ユーザ定義マクロの記録領域。
8step (8byte) あるいは 16step (16byte) 単位で設定する
全領域を8stepのマクロ定義で使った場合は9個のマクロを定義可能。

※ Fnキー機能とユーザ定義マクロ機能を同時に利用可能。ただしFnキーは24個までしか設定できない。mode1aとの違いはマクロ定義領域を削って、代わりにFnレイヤー定義の領域を広げたのみです。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です