[Q] 現在、106キーボードでWindows 95を使用していますが、「\」のキーの右上に印刷されている文字など、入力できない文字があります。なぜ、入力できない文字が、キー上には刻印されているのでしょうか?

(反保)

[A]

 まずこの疑問を反対に考えてみましょう。つまり「なぜキートップの刻印どおりの文字をWindows 98/95では入力できないのか?」ということです。その答えは「Windows 98/95の106キーボード用キーボードドライバソフトウェアがそういう仕様になっている」としか言いようがありません。具体的には「打鍵しても入力できないキャラクタがあるという仕様はキーボードというハードウェアの問題ではなく、動作環境(Windows 98/95)の側のソフトウェアによるものだ」ということです。

 PCではキーボードからPC本体に出力されるデータ(キースキャンコード)はキー入力が画面上に反映されないキーについても、ソフトウェア上で識別できるようになっています。キー入力を無視しているのはキーボードドライバなのです。これはキーボードをそのままにして、キーボードドライバだけを入れ換えるとよく分かります。101キーボード用のドライバを入れると106キーボードでも101キーボードと同じキー配列で文字入力されます(カナなど、対応するものがないキーは何も出力されません)。つまり、PCのキーボードは刻印されている文字とは無関係にソフトウェアでキー配置を決定できる構造になっていて、さまざまな動作環境に対応できるようになっている0のです。

 さて、ご質問の106キーボードのキー配列ですが、そのキーの刻印は、旧JISと呼ばれるJIS規格に従って、カナ文字入力も可能なキー配列を基本にしています(図1:キートップ)。

図1:キートップ 一つのキーに刻印されている文字はそれぞれのモードによって通常は入力することが可能だ

図2:キー配列 IBM 5576-A01キーボードの刻印を引き継いだため、現在では入力することができないものが残ってしまっている。○で囲んだキーが入力不可能な刻印だ

 しかし、標準的な106キーボードのキートップの刻印の中で、丸印が付いているものは、Windows 98/95/NTでは入力できません(図2:キー配列)。このように、実際のキーボードの動作では質問にあるように、[£]、[¢]、[¬]、[『]、[』]、[々]といった文字はカナモードで[shift]キーと一緒に押しても入力されません。また[0/〜/わ/を]のキーで[Shift]+[0/〜/わ/を]と押しても[〜](チルダ)は出力されません。さらに、少し考えればカナモードで出力されるキャラクタはカタカナなのに、キートップにはひらがなが刻印されているのも少し違和感があることに気付くでしょう。

 では、なぜこのようなキートップを持つ106キーボードが標準的な存在になったのでしょうか。それには、DOS/Vの成り立ちが深く関係しています。

 106キーボードは、OADG(Open Architecture Development Group)という団体がDOS/Vの開発元である日本IBMの5576-A01というキーボードの刻印をそのまま採用したものなのです。つまり、106キーボードはもともとIBMのキーボードだったので、刻印に旧JIS配列にもとづいた、英数字、かな文字、記号文字のほかにIBMの大型機用のコードであるEBCDICコードにもとづいたものと、日本語表示固有の文字が残ってしまったのです。

 しかし、前述のとおり文字コードとドライバの関係から、WindowsではJISの7/8ビットコード中に存在しない文字を直接キー入力することはできません。現在のDOSやWindowsでは、2バイトコードの入力は、日本語IMEになっているときにキー入力された文字を変換して確定することになっています。PS/55のような昔の日本語対応PCでは、キーボードBIOSがキーボードの全角/半角のモードを区別して、全角モードでは2バイトコードを認識することが可能でした。一方で、このようなBI OSを持たないAT互換機では、BIOSルーチンでの全角/半角の区別はムリですし、日本語IMEを使う環境ではキーボードドライバレベルで全角/半角の区別をする必要もありません。

 そこで、もう一度Windowsからは入力できないキーの刻印を見てください。実は、入力できなかった[£]、[¢]などは、JISの2バイトコードには存在しますが、1バイトコードには存在しない文字なのです。また、EBCDICコードでは、[〜](チルダ)と[ ̄](オーバーライン)は個別の文字コードが与えられていますが、JISコードでは、同じ文字コードなのです。JISコードでは[ ̄]がオフィシャルなものとされ、誤用されない範囲で表記を[〜]にしてもよいとしています。このため、[を]の左側にある[〜]はJISコードに存在しないため入力されず、[々]の左側にある[ ̄]で[〜]が入力されてしまうのです。

 日本IBMが自社製PC向けに、独自のキーボードを設計するのは当然ですし、Windowsの動作環境の統一性という点からも、2バイトコードでしかも特殊な記号をキーボードからの直接入力で拾わないという仕様はやむを得ないところです。「現状の106キーボードのように入力できない文字の刻印があり気持ちが悪い」ということであってもあきらめるしかありません。OADGが標準的なキーボードを決める段階で、キーボードドライバ仕様に忠実なキートップを採用し、「DOS/Vを普及させる標準化団体としての存在意義というものを示してほしかった」といったところですが、今となっては後の祭りです(106キーボードが標準とされる以前に、IBMのPC DOS/Vは存在していたのですから……)。事実、NECやコンパックコンピュータなど、OADGに参加していないメーカーのPCでは、自主的な判断で不要な刻印を入れないスマートなキーボードを採用していますから、ほかのメーカーもぜひこの姿勢を見習ってほしいものです。

右上がOADGのガイドラインに沿って製造された106キーボード、左はNECのキーボードだ。NECキーボードには入力不能なキャラクタの刻印はない。
左上は英語(101)キーボードだ

 

 

(Ta 152H-1)
[MENU]