[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