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

俺メモ

FMR用アダプタ、PS/2用アダプタにおけるEEPROMのアドレスマップ

※スキャンコード=キーボードが返す生のコード
※キーコード=アダプタがUSBホストに返す、USB規格で定義されたコード
※通常キー=スキャンコードが 0x01-0x7Cの範囲のキー
※拡張キー=スキャンコードが 0x80-0x9Fの範囲のキー

mode 1 のEEPROMアドレスマップ

fmr_mode1

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キーとするキーのスキャンコードを設定する。0x00 か 0xFF に設定するとFnキー無効
0xFE リモートWakeUpに使うキーを指定する。
特定キーのScancodeを書いた場合はそのキーでSleep解除。
0xFF を書いた場合は任意のキーでSleep解除。
0x00 を書いた場合はキーボードによるSleep解除は無効。
0xFF アダプタ設定1

このモードではFnキー機能は使用出来ない

mode 2 のEEPROMアドレスマップ

fmr_mode2

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アドレスマップ

fmr_mode3a

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アドレスマップ

fmr_mode3b

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

拡張キーも含めてキー配置のカスタマイズが可能。またFnキー機能とユーザ定義マクロ機能を同時に利用可能。ただしFnキーは24個までしか設定できない。

mode 3a と 3b の違いはFnキー定義とマクロ定義のどちらに重きをおくか (どちらにより多くのEEPROM領域を割り振るか) だけの差

 

コメントを残す

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