[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: mgl2 update (Re: pwctl[12] on docomoba2)



 >   |  > scanncode から 文字のコードを 変換する map はどこにあるのでしょう?

<中略>

 > 解説ありがとうございます。
 > 分かったような気がします。
 > 
 > RAW モードのコードは、おおむね一緒だけれども
 > 厳密には統一されていないわけですね。

そんなことはありません。RAW モードのコードはキーボードの
scancode なので、PS/2 で決められており、逸脱したものは
滅多にないと思います。最近はキーが増えてきているので
PS/2 にないキーの scancode はバラバラかも知れませんが、
少なくとも、del や BS については PS/2 な限りは統一されている
はずです。何か特殊な事情で、苦労してドライバ内で変換する場合が
ないとは言い切れませんが、NetBSD ではなにも変換してません。

VR の vrkiu.c は厳密にこれをエミュレートするれば良いはずで、
もし動作が異なるならば、今回のように修正すべきです。
(PS/2 に一意にマップできないキーの扱いは別ですが)

 > ( wskbd_rawinput が、wskbd_input と同じ パラメータなら必然的に一緒に
 > なるのに... なんて思ってしまいました。)

wskbd_rawinput のパラメータは scancode、wskbd_input のパラメータは
keycode なのですが、scancode と keycode の対応は PS/2 で決められている
キーに関しては1対1対応です。ですから、2 つのパラメータは意味的には
同じです。NetBSD での対応については、
sys/dev/pckbc/pckbd.c: pckbd_decode() と
sys/arch/hpcmips/dev/pckbd_encode.h を見て下さい。単純な変換です。
(対応のし方は OS、ドライバ毎に異なります。また、PS/2 に存在しない新
  しいキーが出す未知の scancode に関しては同一の keycode に変換される
  可能性があります。)

Takemura