俺メモ
FMR用アダプタ、PS/2用アダプタにおけるEEPROMのアドレスマップ
※スキャンコード=キーボードが返す生のコード
※キーコード=アダプタがUSBホストに返す、USB規格で定義されたコード
※通常キー=スキャンコードが 0x01-0x7Cの範囲のキー
※拡張キー=スキャンコードが 0x80-0x9Fの範囲のキー
0x00 | ここに 0xA5 を書くとユーザ定義のキーマップが有効になる |
0x01-0x7C | 通常キー (※Scancodeが0x01-0x7Cの範囲) についてのユーザ定義キーマップ。 EEPROMのアドレスがキーのスキャンコードに対応する |
0x7D | アダプタ設定2 |
0x7E | 予約 |
0x7F | 富士通拡張コマンド (※usb2ps2のみ) |
0x80-0x9F | 拡張キー (※Scancodeが0x80-0x9Fの範囲) についてのユーザ定義キーマップ。 スキャンコード = EEPROM アドレス としてキーコードを書き込む |
0xA0-0xF7 | ユーザ定義マクロの記録領域。 8step (8byte) あるいは 16step (16byte) 単位で設定する 全領域を8stepのマクロ定義で使った場合は11個のマクロを定義可能。 |
0xFD | Fnキーとするキーのスキャンコードを設定する。 このモードではFnキーは使用出来ないので設定は無視される。 |
0xFE | リモートWakeUpに使うキーを指定する。 特定キーのScancodeを書いた場合はそのキーでSleep解除。 0xFF を書いた場合は任意のキーでSleep解除。 0x00 を書いた場合はキーボードによるSleep解除は無効。 |
0xFF | アダプタ設定1 |
※ このモードではFnキー機能は使用出来ない
mode 2 のEEPROMアドレスマップ0x00 | ここに 0xA5 を書くとユーザ定義のキーマップが有効になる |
0x01-0x7C | 通常キー (※Scancodeが0x01-0x7Cの範囲 ) についてのユーザ定義キーマップ。 EEPROMのアドレスがキーのスキャンコードに対応する |
0x7D | アダプタ設定2 |
0x7E | 予約 |
0x7F | 富士通拡張コマンド (※usb2ps2のみ) |
0x80 | 予約 |
0x81-0xFC | 通常キー (※Scancodeが0x01-0x7Cの範囲) についての、Fn面のユーザ定義キーマップ。 Scancode + 0x80 がEEPROMアドレスに対応する。 Fnキーの機能を使用しない場合は全領域がユーザ定義マクロの記録に利用可能。 |
0xFD | Fnキーとするキーのスキャンコードを設定する。0x00 か 0xFF に設定するとFnキー無効 |
0xFE | リモートWakeUpに使うキーを指定する。 特定キーのScancodeを書いた場合はそのキーでSleep解除。 0xFF を書いた場合は任意のキーでSleep解除。 0x00 を書いた場合はキーボードによるSleep解除は無効。 |
0xFF | アダプタ設定1 |
※このモードでは拡張キーについてキー配置のカスタマイズは出来ない。また、Fnキーの機能とユーザ定義マクロ機能は排他利用となる
mode 3a のEEPROMアドレスマップ0x00 | ここに 0xA5 を書くとユーザ定義のキーマップが有効になる |
0x01-0x7C | 通常キー (※Scancodeが0x01-0x7Cの範囲) についてのユーザ定義キーマップ。 EEPROMのアドレスがキーのスキャンコードに対応する |
0x7D | アダプタ設定2 |
0x7E | 予約 |
0x7F | 富士通拡張コマンド (※usb2ps2のみ) |
0x80-0x9F | 拡張キー (※Scancodeが0x80-0x9Fの範囲) についてのユーザ定義キーマップ。 スキャンコード = EEPROM アドレス としてキーコードを書き込む |
0xA0-0xBF | Fnレイヤーのユーザ定義キーマップ。 必ず “<スキャンコード>, <発行したいキーコード>” の2バイトペアで記述する。 よってFnキーは16キーまで設定可能 |
0xC0-0xF7 | ユーザ定義マクロの記録領域。 8step (8byte) あるいは 16step (16byte) 単位で設定する 全領域を8stepのマクロ定義で使った場合は7個のマクロを定義可能。 |
0xFD | Fnキーとするキーのスキャンコードを設定する。0x00 か 0xFF に設定するとFnキー無効 |
0xFE | リモートWakeUpに使うキーを指定する。 特定キーのScancodeを書いた場合はそのキーでSleep解除。 0xFF を書いた場合は任意のキーでSleep解除。 0x00 を書いた場合はキーボードによるSleep解除は無効。 |
0xFF | アダプタ設定1 |
※ 拡張キーも含めてキー配置のカスタマイズが可能。またFnキー機能とユーザ定義マクロ機能を同時に利用可能。ただしFnキーは16個までしか設定できない。
mode 3b のEEPROMアドレスマップ0xA0-0xCF | Fnレイヤーのユーザ定義キーマップ。 必ず “<スキャンコード>, <発行したいキーコード>” の2バイトペアで記述する。 よってFnキーは24キーまで設定可能 |
0xD0-0xF7 | ユーザ定義マクロの記録領域。 8step (8byte) あるいは 16step (16byte) 単位で設定する 全領域を8stepのマクロ定義で使った場合は5個のマクロを定義可能。 |
※ 拡張キーも含めてキー配置のカスタマイズが可能。またFnキー機能とユーザ定義マクロ機能を同時に利用可能。ただしFnキーは24個までしか設定できない。
mode 3a と 3b の違いはFnキー定義とマクロ定義のどちらに重きをおくか (どちらにより多くのEEPROM領域を割り振るか) だけの差