(57)【特許請求の範囲】
【請求項１】
キーボード上に設けられたキーであり、他のキーと組み合わされることにより所定のキー機能を実行する特殊キーに、複数のキー機能を割り当て、割り当てた前記複数のキー機能を切り替える方法であって、
前記特殊キーを押したことを検出するステップと、
前記検出結果に基づいて、前記特殊キーを単独で押したときに出力する、前記特殊キーに本来割り当てられているメイク・スキャン・コードを出力する要求を宣明するステップと、
前記特殊キーを離す時に前記要求が宣明されたままであるときには、前記特殊キーを単独で押したときに出力する、前記特殊キーに本来割り当てられているメイク・スキャン・コードを出力するステップと
を含む、特殊キーに割り当てた複数のキー機能を切り替える方法。
【請求項２】
キーボード上に設けられたキーであり、他のキーと組み合わされることにより所定のキー機能を実行する特殊キーに、複数のキー機能を割り当て、割り当てた前記複数のキー機能を切り替える方法であって、
前記特殊キーを押したことを検出するステップと、
前記検出結果に基づいて、前記特殊キーを単独で押したときに出力する、前記特殊キーに本来割り当てられているメイク・スキャン・コードを出力する要求を宣明するレジスタをセットするステップと、
前記特殊キーを離す時に前記レジスタがセットされているときには、前記特殊キーを単独で押したときに出力する、前記特殊キーに本来割り当てられているメイク・スキャン・コードを出力するステップと
を含む、特殊キーに割り当てた複数のキー機能を切り替える方法。
【請求項３】
キーボード上に設けられたキーであり、他のキーと組み合わされることにより所定のキー機能を実行する特殊キーに、複数のキー機能を割り当て、割り当てた前記複数のキー機能を切り替える方法であって、
前記特殊キーを押したことを検出するステップと、
前記検出結果に基づいて、前記特殊キーに本来割り当てられているメイク・スキャン・コードを出力する要求を明示するレジスタをセットするステップと、
前記特殊キーを押した後、
ホットキーとして定義されているキーを押した時には、ホットキー機能を実行し、
ホットキーとして定義されていないキーを押した時には、
前記レジスタがセットされているときには、前記特殊キーを単独で押したときに出力する、前記特殊キーに本来割り当てられているメイク・スキャン・コードを出力した後、前記ホットキーとして定義されていないキーのメイク・スキャン・コードを出力し、
前記レジスタがセットされていないときには、前記ホットキーとして定義されていないキーのメイク・スキャン・コードを出力するステップと
を含む、特殊キーに割り当てた複数のキー機能を切り替える方法。
【請求項４】
キーボード上に設けられたキーであり、他のキーと組み合わされることにより所定のキー機能を実行する特殊キーに、複数のキー機能を割り当て、割り当てた前記複数のキー機能を切り替える方法であって、
前記特殊キーを押したことを検出するステップと、
前記検出結果に基づいて、タイマーをスタートさせるステップと、
前記検出結果に基づいて、前記特殊キーを単独で押したときに出力する、前記特殊キーに本来割り当てられているメイク・スキャン・コードを出力する要求を宣明するレジスタをセットするステップと、
前記タイマーがタイム・アウトを出力した時に、前記レジスタがセットされているときには、前記特殊キーを単独で押したときに出力する、前記特殊キーに本来割り当てられているメイク・スキャン・コードを出力するステップと
を含む、特殊キーに割り当てた複数のキー機能を切り替える方法。
【請求項５】
キーボード上に設けられたキーであり、他のキーと組み合わされることにより所定のキー機能を実行する特殊キーに、複数のキー機能を割り当て、割り当てた前記複数のキー機能を切り替えるプログラムを記録したコンピュータ読み込み可能な記録媒体であって、
前記特殊キーを押したことを検出するステップと、
前記検出結果に基づいて、前記特殊キーを単独で押したときに出力する、前記特殊キーに本来割り当てられているメイク・スキャン・コードを出力する要求を宣明すると、
前記特殊キーを離す時に前記要求が宣明されたままであるときには、前記特殊キーを単独で押したときに出力する、前記特殊キーに本来割り当てられているメイク・スキャン・コードを出力するステップと
を含む、特殊キーに割り当てた複数のキー機能を切り替えるプログラムを記録したコンピュータ読み込み可能な記録媒体。
【請求項６】
キーボード上に設けられたキーであり、他のキーと組み合わされることにより所定のキー機能を実行する特殊キーに、複数のキー機能を割り当て、割り当てた前記複数のキー機能を切り替えるプログラムを記録したコンピュータ読み込み可能な記録媒体であって、
前記特殊キーを押したことを検出するステップと、
前記検出結果に基づいて、前記特殊キーを単独で押したときに出力する、前記特殊キーに本来割り当てられているメイク・スキャン・コードを出力する要求を宣明するレジスタをセットするステップと、
前記特殊キーを離す時に前記レジスタがセットされているときには、前記特殊キーを単独で押したときに出力する、前記特殊キーに本来割り当てられているメイク・スキャン・コードを出力するステップと
を含む、特殊キーに割り当てた複数のキー機能を切り替えるプログラムを記録したコンピュータ読み込み可能な記録媒体。
【請求項７】
キーボード上に設けられたキーであり、他のキーと組み合わされることにより所定のキー機能を実行する特殊キーに、複数のキー機能を割り当て、割り当てた前記複数のキー機能を切り替えるプログラムを記録したコンピュータ読み込み可能な記録媒体であって、
前記特殊キーを押したことを検出するステップと、
前記検出結果に基づいて、前記特殊キーに本来割り当てられているメイク・スキャン・コードを出力する要求を明示するレジスタをセットするステップと、
前記特殊キーを押した後、
ホットキーとして定義されているキーを押した時には、ホットキー機能を実行し、
ホットキーとして定義されていないキーを押した時には、
前記レジスタがセットされているときには、前記特殊キーを単独で押したときに出力する、前記特殊キーに本来割り当てられているメイク・スキャン・コードを出力した後、前記ホットキーとして定義されていないキーのメイク・スキャン・コードを出力し、
前記レジスタがセットされていないときには、前記ホットキーとして定義されていないキーのメイク・スキャン・コードを出力するステップと
を含む、特殊キーに割り当てた複数のキー機能を切り替えるプログラムを記録したコンピュータ読み込み可能な記録媒体。
【請求項８】
キーボード上に設けられたキーであり、他のキーと組み合わされることにより所定のキー機能を実行する特殊キーに、複数のキー機能を割り当て、割り当てた前記複数のキー機能を切り替えるプログラムを記録したコンピュータ読み込み可能な記録媒体であって、
前記特殊キーを押したことを検出するステップと、
前記検出結果に基づいて、タイマーをスタートさせるステップと、
前記検出結果に基づいて、前記特殊キーを単独で押したときに出力する、前記特殊キーに本来割り当てられているメイク・スキャン・コードを出力する要求を宣明するレジスタをセットするステップと、
前記タイマーがタイム・アウトを出力した時に、前記レジスタがセットされているときには、前記特殊キーを単独で押したときに出力する、前記特殊キーに本来割り当てられているメイク・スキャン・コードを出力するステップと
を含む、特殊キーに割り当てた複数のキー機能を切り替えるプログラムを記録したコンピュータ読み込み可能な記録媒体。
【請求項９】
バスによって相互接続されたＣＰＵ、ＲＯＭ、およびＲＡＭを備えたキーボード・コントローラであって、
前記ＲＯＭが、請求項５から８のうちの１項に記載の記録媒体を内包しているキーボード・コントローラ。
【請求項１０】
バスによって相互接続されたＣＰＵ、ＲＯＭ、外部記憶装置、およびキーボード・コントローラを備えたコンピュータであって、
前記キーボード・コントローラが、請求項９に記載のキーボード・コントローラである
コンピュータ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、特殊キーに割り当てた複数のキー機能を切り替える方法に関する。
【０００２】
【従来の技術】
パーソナル・コンピュータ（ＰＣ）用オペレーティング・システム（ＯＳ）であるＷｉｎｄｏｗｓ（商標）９５／９８は、“Ａｐｐｌｉｃａｔｉｏｎ”キーおよび“Ｗｉｎｄｏｗｓ”キーという特殊キー（以下、「ＯＳ依存特殊キー」と呼ぶ）をサポートしている。例えば、“Ｗｉｎｄｏｗｓ”キーと同時に“Ｆ１”キーを押すと、選択されているオブジェクトのポップアップ・メニューを表示する機能を実現する。しかしながら、“Ａｐｐｌｉｃａｔｉｏｎ”キーおよび“Ｗｉｎｄｏｗｓ”キーが実装されるキーボードは、米Ｍｉｃｒｏｓｏｆｔ社(Microsoft Corporation) のライセンスを受けたキーボード（以下、「ＰＣ９５／９８キーボード」と呼ぶ）だけである。したがって、非ＰＣ９５／９８キーボードを備えたパーソナル・コンピュータ（ＰＣ）にＷｉｎｄｏｗｓ（商標）９５／９８をインストールしても、ＯＳ依存特殊キーが存在しないから、ＯＳ依存特殊キーが提供するサービスを享受することができない。つまり、Ｗｉｎｄｏｗｓ（商標）９５／９８マシンでありながら、Ｗｉｎｄｏｗｓ（商標）９５／９８が提供するサービスを全ては受けることができない。
【０００３】
非ＰＣ９５／９８キーボードを備えたパーソナル・コンピュータ（ＰＣ）は、上記の事態を改善するために、特別な対策を講じる必要がある。非ＰＣ９５／９８キーボードを備えたＰＣの一例として、米ＩＢＭ社（International Business Machines Corporation)および日本アイ・ビー・エム株式会社のノートブック型パーソナル・コンピュータ（ＰＣ）であるＴｈｉｎｋＰａｄ（商標）を取り上げる。ＴｈｉｎｋＰａｄ（商標）は、“Ｆｎ”キーという独自のキーを備えている。この“Ｆｎ”キーを押しながら、所定のキーを押すとＴｈｉｎｋＰａｄ（商標）特有の機能を実行する。例えば、“Ｆｎ”キー＋“Ｆ４”キーは、サスペンドを実行する。「＋」は２つのキーが同時に押されている状態を実現させることを意味する。“Ａ”キー＋“Ｂ”キーは、“Ａ”キーを押したままの状態で“Ｂ”キーを押すことを意味する。単に“Ａ”＋“Ｂ”とも表記される。サスペンドとは、コンピュータを一時停止させて待機状態にすることである。また、“Ｆｎ”キー＋“Ｆ７”キーは、ディスプレイの切り替えを実行する。ディスプレイの切り替えとは、表示画面を現在のものから他のものへ変更することである。
【０００４】
“Ｆｎ”キー＋“Ｆ４”キーや“Ｆｎ”キー＋“Ｆ７”キーは、通常、ホットキー（hotkey) と呼ばれている。ホットキーの一般的な定義は存在しない。ここでは、ホットキーを次のように定義する。いま、“Ｆｎ”キーと同時に押すことにより独自の機能を実行するキーを“ｓｏｍｅ”キーと呼ぶ。“ｓｏｍｅ”キーには、キーボード上に配置された、“Ｆｎ”キー以外の全てのキーを割り当てることができる。“Ｆｎ”キー＋“ｓｏｍｅ”キーをホットキーと言う。“Ｆｎ”キー＋“ｓｏｍｅ”キーというホットキーは、物理的に単独で存在するキーではない。しかし、“Ｆｎ”キー＋“ｓｏｍｅ”キーは、論理的には単独で存在するキーである。したがって、“Ｆｎ”キー＋“ｓｏｍｅ”キーという状態が実現すると、予め定めておいた所定の機能が実行される。言い換えると、“Ｆｎ”キーを押している間だけ“ｓｏｍｅ”キーがホットキーになる、と言うことができる。
【０００５】
一般に、キーボード上のキーを押したとき、および離したときに１個以上のデータが出力される。このデータは、スキャン・コードと呼ばれている。キーが出力するこれらのデータは、Ｓｈｉｆｔキー、Ｃｔｒｌキー、Ａｌｔキーなどの特殊キーの状態によって変化する。また、ＮｕｍＬｏｃｋキーの状態によっても変化する。すなわち、キーボード上に物理的に配置された個々のキーが一意的に固定された固有のスキャン・コードを持っている訳ではない。例えば、ＮｕｍＬｏｃｋキーをＯＦＦにすると（このとき、キーボード上の“ＮｕｍＬｏｃｋ”表示の近傍に設けられたＬＥＤ（light emitting diode; 発光ダイオード）が消灯する）、テンキー上の数字キーは、数字入力キーではなくカーソル移動キーになる。
スキャン・コードは、システムが論理的なキーを識別するために使用する。“Ｆｎ”キーは、他のキーと異なり、“Ｆｎ”キーとしての固有のスキャン・コードを出力しない。
以下の記述において、「メイク・スキャン・コード」「ブレイク・スキャン・コード」と言う用語が登場する。メイク・スキャン・コードとは、キーを押したときに出力されるコードである。ブレイク・スキャン・コードとは、キーを離したときに出力されるコードである。紛らわしいが、メイク・スキャン・コードおよびブレイク・スキャン・コードと、スキャン・コードとは、別の概念の用語である。すなわち、メイク・スキャン・コードおよびブレイク・スキャン・コードは、キーを押した、あるいは離したという物理的な動作を表すコードである。これに対して、スキャン・コードは、システムが論理的なキーを識別するために使用するコードである。したがって、スキャン・コードを出力しない“Ｆｎ”キーも、メイク・スキャン・コードおよびブレイク・スキャン・コードを出力する。
【０００６】
【発明が解決しようとする課題】
非ＰＣ９５／９８キーボードを備えたパーソナル・コンピュータ（ＰＣ）であるＴｈｉｎｋＰａｄ（商標）にＷｉｎｄｏｗｓ（商標）９５／９８をインストールして、ＯＳ依存特殊キーが提供するサービスを享受するために、“Ｆｎ”キーにＯＳ依存特殊キーを割り当てることができる。具体的には、次のように設定する。
（１）“Ｆｎ”キーを押したときに、ＯＳ依存特殊キーのメイク・スキャン・コードを出力させる。
（２）“Ｆｎ”キーを離したときに、ＯＳ依存特殊キーのブレイク・スキャン・コードを出力させる。
（３）“Ｆｎ”キーを押したままの状態で、“ｓｏｍｅ”キーを押したときには、ホットキーとして動作させる。
【０００７】
例えば、“Ｆｎ”キーを押したときに“Ｗｉｎｄｏｗｓ”キーのメイク・スキャン・コードを出力するように設定する。すると、“Ｆｎ”キーと同時に“Ｆ１”キーを押すことにより、ＰＣ９５／９８キーボード上で“Ｗｉｎｄｏｗｓ”＋“Ｆ１”を実現した場合と同様に、選択されているオブジェクトのポップアップ・メニューを表示する機能が実行される。
【０００８】
上述した、“Ｆｎ”キーを用いてＯＳ依存特殊キーの機能を享受する方法では、ユーザが意図しない現象が生じる、という不都合がある。すなわち、上記（３）のように“Ｆｎ”キーをホットキーとして使用する場合、“ｓｏｍｅ”キーを押した後に、“Ｆｎ”キーを離すと、上記（２）に示したＯＳ依存特殊キーのブレイク・スキャン・コードが出力される。その結果、ＯＳ依存特殊キーのブレイクに起因する機能が実現するので、ユーザが意図しない現象が生じる。例えば、“Ｆｎ”キーに“Ａｐｐｌｉｃａｔｉｏｎ”キーを割り当てた場合には、“Ｓｈｉｆｔ”＋“Ｆ１０”というショートカット・キーになる（その機能は、選択されている項目のショートカット・キー・メニューを表示する、である）。ショートカット・キーとは、表示画面上のメニューから選択して実行されるコマンドをキーボード上のキーに割り当てたものである。また、“Ｆｎ”キーに“Ｗｉｎｄｏｗｓ”キーを割り当てた場合には、“Ｅｓｃ”＋“Ｃｔｒｌ”というショートカット・キーになる（その機能は、［スタート］メニューを表示する、である）。
本発明は、上記の課題を解決するためになされたものである。
【０００９】
本発明の目的は、ユーザが意図しない現象が発生するのを防ぐことのきる、特殊キーに割り当てた複数のキー機能を切り替える方法を提供することである。
【００１０】
【課題を解決するための手段】
キーボード上に設けられたキーの中には、単独では機能せず、他のキーと組み合わされることにより所定のキー機能を実行する特殊キーがある。本発明は、この特殊キーに複数のキー機能を割り当て場合において、前記複数のキー機能を切り替える方法に係る。
ます、前記特殊キーを押したことを検出する。次いで、前記検出結果に基づいて、前記特殊キーを単独で押したときに出力する、前記特殊キーに本来割り当てられているメイク・スキャン・コードを出力する要求を宣明する。その後、前記特殊キーを離す時に前記要求が宣明されたままであるときには、前記特殊キーを単独で押したときに出力する、前記特殊キーに本来割り当てられているメイク・スキャン・コードを出力する。
【００１１】
したがって、本発明では、従来技術のように、前記特殊キーを離す時に、前記特殊キーがその機能を引き受けたキーの、メイク・スキャン・コードおよびブレイク・スキャン・コードが出力されることがない。その結果、ユーザが意図しない現象が発生するのを防ぐことのきる、特殊キーに割り当てた複数のキー機能を切り替える方法が実現する。
【００１２】
【発明の実施の形態】
以下、本発明の実施の一形態を説明する。
図１は、この実施形態によるキーボード・コントローラを示す図である。キーボード・コントローラ１２は、キー・スキャン実行部１３、キー・イベント検出部１４、キー・イベント解析部１５、コード生成部１６、タイマー１７、Ｆｎキー・メイク・スキャン・コード要求レジスタ１８、およびスキャン・コード・テーブル１９を主要構成部品とする。
【００１３】
キーボード・コントローラ１２は、キーボード１１を制御する。
キーボード１１上の所定の位置に配置された各キーには、シリアル・ナンバー(serial number：通し番号) が付けられている。各キーの下部には、電気スイッチが設けられている。これらの電気スイッチは、マトリクス（行列）を構成するように配線されている。キー・スキャン実行部１３は、このマトリクスを電気的にスキャン（走査）している。この電気的スキャンは、キー・スキャンと呼ばれている。あるキーを押す（すなわちメイク(make)する）と、キー・スキャン実行部１３は、キー・イベントを取得する。キー・イベントは、キーのシリアル・ナンバーとキー動作とから成る。上記の場合のキー・イベントは、押したキーのシリアル・ナンバーとメイク動作とから成る。キーを離す（すなわちブレイク(break) する）時にも、キー・スキャン実行部１３は、キー・イベントを取得する。この場合のキー・イベントは、離したキーのシリアル・ナンバーとブレイク動作とから成る。キー・スキャン実行部１３が取得したキー・イベントは、キー・イベント検出部１４に通知される。
【００１４】
この実施形態では、ノートブック型ＰＣであるＴｈｉｎｋＰａｄ（商標）を例に採る。キーボード１１は、非ＰＣ９５／９８キーボードであり、“Ｆｎ”キーを備えている。
【００１５】
キー・イベント検出部１４は、キー・スキャン実行部１３から通知されたキー・イベントに基づいて、タイマー１７をセットしたり、Ｆｎキー・メイク・スキャン・コード要求レジスタ１８をセットしたりする。そして、上記キー・イベントをキー・イベント解析部１５に送る。
【００１６】
キー・イベント解析部１５は、キー・イベント検出部１４から送られて来た上記キー・イベントを解析する。このキー・イベント解析は、キー・イベント検出部１４がセットしたタイマー１７およびＦｎキー・メイク・スキャン・コード要求レジスタ１８をルックアサイドしながら（横目で見ながら）行なう。キー・イベント解析結果は、コード生成部１６に送られる。
【００１７】
コード生成部１６は、キー・イベント解析部１５から送られて来たキー・イベント解析結果に基づいてスキャン・コードを生成して、スキャン・コード出力２０を出力する。このスキャン・コード出力２０は、システムに送られる。そのシステムの主要コンポーネントは、ＢＩＯＳ(basic input/output system) 、およびデバイス・ドライバを含むオペレーティング・システム（ＯＳ）である。上記スキャン・コード生成過程において、コード生成部１６は、スキャン・コード・テーブル１９を検索する。
【００１８】
タイマー１７には、所定の秒数をプリセット（予め設定）しておく。このプリセット値は、０秒から無限大秒までの値を採り得る。タイマー１７は、キー・イベント検出部１４によってスタートされると、上記プリセット値からカウント・ダウンを始める。そして、現在のカウント値を明示する。カウント値が“０”になるとタイム・アウト（時間切れ）を出力する。したがって、プリセット値が０秒の場合は、カウント値も“０”であるから、あるキーを押すのと同時にタイム・アウトが発生する。また、プリセット値が無限大秒の場合には、カウント・ダウンしてもカウント値は減らないから、タイム・アウトは永久に発生しない。通常、プリセット値は、数秒間に設定する。
【００１９】
この実施形態では、“Ｆｎ”キーに、“Ｆｎ”キー固有のキー機能に加えて“Ａｐｐｌｉｃａｔｉｏｎ”キーや“Ｗｉｎｄｏｗｓ”キーなどのＯＳ依存特殊キーのキー機能を割り当てる。具体的には、“Ｆｎ”キーが次の動作をするように設定する。
（１）“Ｆｎ”キーを押したときに、ＯＳ依存特殊キーのメイク・スキャン・コードを出力する。
（２）“Ｆｎ”キーを離したときに、ＯＳ依存特殊キーのブレイク・スキャン・コードを出力する。
（３）“Ｆｎ”キーを押したままの状態で、“ｓｏｍｅ”キーを押したときには、ホットキーとして動作す。
【００２０】
例えば、“Ｆｎ”キーに“Ｗｉｎｄｏｗｓ”キーのキー機能を割り当てる。すると、“Ｆｎ”キーと同時に“Ｆ１”キーを押すと、ＰＣ９５／９８キーボード上で“Ｗｉｎｄｏｗｓ”＋“Ｆ１”を実現した場合と同様に、選択されているオブジェクトのポップアップ・メニューを表示する機能が実行される。
【００２１】
以上のように設定した“Ｆｎ”キーを単に押して離した場合、離した時に、そのＯＳ依存特殊キーに割り当てられているメイク・スキャン・コードとブレイク・スキャン・コードとが連続して出力される。Ｆｎキー・メイク・スキャン・コード要求レジスタ１８は、上記したメイク・スキャン・コードを出力するのを制御するために用いる。つまり、Ｆｎキー・メイク・スキャン・コード要求レジスタ１８は、“Ｆｎ”キーを離した時に、上記ＯＳ依存特殊キーに割り当てられているメイク・スキャン・コードではなく、“Ｆｎ”キーを単独で押したときに出力する、“Ｆｎ”キーに本来割り当てられているメイク・スキャン・コード（以下、「Ｆｎキーのメイク・スキャン・コード」と呼ぶ）を出力する必要があることを宣明するために用いる。
【００２２】
スキャン・コード・テーブル１９は、キー・イベントとスキャン・コードとの対応関係を記述したテーブルである。キー・イベントは、キーのシリアル・ナンバーと動作の態様（メイクあるいはブレイク）とから成る。スキャン・コードとは、キーボード上のキーを押したとき、および離したときに出力される１個以上のデータである。スキャン・コードは、Ｓｈｉｆｔキー、Ｃｔｒｌキー、Ａｌｔキーなどの特殊キーの状態によって変化する。キーボード１１上に物理的に配置されている全てのキーが固有のスキャン・コードを持っている訳ではない。例えば、“Ｆｎ”キーはスキャン・コードを持っていない。スキャン・コードは、システムが扱う論理的なキーを識別するために使用される。
【００２３】
次に、図２から図５を用いて、図１に示すキーボード・コントローラ１２の動作を説明する。
【００２４】
図２は、キー・イベント検出部１４の動作例を示すフローチャートである。図２を参照しながら、“Ｆｎ”キーを押した場合におけるキー・イベント検出部１４の動作を説明する。キー・イベント検出部１４は、“Ｆｎ”キーを押した、というキー・イベントを検出する（ステップＳ２１）と、タイマー１７をスタートさせる（ステップＳ２２）。次いで、Ｆｎキー・メイク・スキャン・コード要求レジスタ１８をセットする（ステップＳ２３）。その結果、タイマー１７は、プリセット値をカウント・ダウンし始める。Ｆｎキー・メイク・スキャン・コード要求レジスタ１８は、Ｆｎキーのメイク・スキャン・コードを出力する必要があることを明示するためにフラグを立てる。
【００２５】
以上、キー・イベント検出部１４の動作を説明した。続いて、キー・イベント解析部１５およびコード生成部１６の動作例を説明する。
【００２６】
タイマー１７がタイム・アウトを出力した場合におけるキー・イベント解析部１５およびコード生成部１６の動作を図３に示すフローチャートを参照しながら説明する。キー・イベント検出部１４は、タイマー１７をルックアサイドした結果、タイム・アウトを知る（ステップＳ２５）と、Ｆｎキー・メイク・スキャン・コード要求レジスタ１８がセットされているか否かを調べる（ステップＳ２６）。Ｎｏならば処理を終了する。ＹｅｓならばステップＳ２７に進む。ステップＳ２７では、キー・イベント解析部１５は、コード生成部１６にＦｎキーのメイク・スキャン・コードを出力するように要求する。この要求を受けたコード生成部１６は、スキャン・コード・テーブル１９を検索してＦｎキーのメイク・スキャン・コードを生成し、スキャン・コード出力２０として出力する。
【００２７】
次に、タイム・アウトが発生する前に、あるキーを押した場合におけるキー・イベント解析部１５およびコード生成部１６の動作を図４に示すフローチャートを参照しながら説明する。キー・イベント解析部１５は、あるキーを押す、というキー・イベントを受けると（ステップＳ３１）、“Ｆｎ”キーが押された状態にあるか否かを調べる（ステップＳ３２）。ＮｏならばステップＳ３７に進み、そこで、あるキーを単独で押した場合の処理を行なう。ＹｅｓならばステップＳ３３に進む。ステップＳ３３では、“Ｆｎ”キーが押された状態にあることが確認されたので、タイマー１７をストップさせる（ステップＳ３３）。これによりタイム・アウトの発生が無くなる。その後、ステップＳ３４に進む。
【００２８】
ステップＳ３４では、上記ステップＳ３１で押したキーがホットキーであるか否かを調べる。Ｙｅｓならば、“Ｆｎ”キーはホットキーとしてのキー機能を実行することが確定したことになる。この場合、ステップＳ３８に進み、そこで、Ｆｎキー・メイク・スキャン・コード要求レジスタ１８をリセットした後、処理を終了する。上述したように、スキャン・コードは出力しないから、ステップＳ３７はスキップする。
【００２９】
ステップＳ３４の判定がＮｏならば、“Ｆｎ”キーはホットキーとして機能しないことが確定する。この場合、ステップＳ３５に進み、そこで、Ｆｎキーのメイク・スキャン・コードが既に出力されたか否かを調べる。ＹｅｓならばステップＳ３７に進む。ＮｏならばステップＳ３６に進む。Ｆｎキーのメイク・スキャン・コードが出力されると内部的なフラグがセットされる。このフラグがセットされていれば、ステップＳ３５の判定結果はＹｅｓである。例えば、“Ｆｎ”キーを押したままの状態で、一度ホットキー以外のキーを押し、そのまま“Ｆｎ”キーを離すことなく、ホットキー以外のキーを押したときに、上記フラグがセットされる。したがって、この場合には、ステップＳ３５の判定結果はＹｅｓとなる。
【００３０】
ステップＳ３６では、キー・イベント解析部１５は、コード生成部１６にＦｎキーのメイク・スキャン・コードを出力するように要求する。この要求を受けたコード生成部１６は、スキャン・コード・テーブル１９を検索してＦｎキーのメイク・スキャン・コードを生成し、スキャン・コード出力２０として出力する。
【００３１】
ステップＳ３７では、キー・イベント解析部１５は、コード生成部１６に、ステップＳ３１で押したキーのスキャン・コードを出力するように要求する。この要求を受けたコード生成部１６は、スキャン・コード・テーブル１９を検索して当該キーに割り当てられたスキャン・コードを生成し、スキャン・コード出力２０として出力する。
【００３２】
次に、タイム・アウトが発生する前に、“Ｆｎ”キーを離した場合におけるキー・イベント解析部１５およびコード生成部１６の動作を図５に示すフローチャートを参照しながら説明する。キー・イベント解析部１５は、“Ｆｎ”キーを離す、というキー・イベントを受けると（ステップＳ４１）、Ｆｎキーのメイク・スキャン・コードが既に出力されたか否かを調べる（ステップＳ４２）。上述したように、Ｆｎキーのメイク・スキャン・コードが出力されると内部的なフラグがセットされる。“Ｆｎ”キーを押したままの状態で、タイム・アウトした場合、およびホットキー以外のあるキーを押した場合に、Ｆｎキーのメイク・スキャン・コードが出力される。したがって、これらの場合には、上記フラグがセットされるので、ステップＳ４２の判定結果はＹｅｓになる。ステップＳ４２の判定結果がＹｅｓならばステップＳ４５に進む。ステップＳ４５では、キー・イベント解析部１５は、コード生成部１６にＦｎキーのブレイク・スキャン・コードを出力するように要求する。この要求を受けたコード生成部１６は、スキャン・コード・テーブル１９を検索してＦｎキーのブレイク・スキャン・コードを生成し、スキャン・コード出力２０として出力する。その後、ステップＳ４６に進む。
【００３３】
ステップＳ４６では、Ｆｎキー・メイク・スキャン・コード要求レジスタ１８をリセットする。その後、ステップＳ４７に進み、そこで、タイマー１７をストップさせる。
【００３４】
上記ステップＳ４２の判定結果がＮｏならば（Ｆｎキーのメイク・スキャン・コードが未だ出力されていなければ）、ステップＳ４３に進む。ステップＳ４３では、Ｆｎキー・メイク・スキャン・コード要求レジスタ１８がセットされているか否かを調べる。Ｎｏならば処理を終了する。ＹｅｓならばステップＳ４４に進む。ステップＳ４４では、キー・イベント解析部１５は、コード生成部１６にＦｎキーのメイク・スキャン・コードを出力するように要求する。この要求を受けたコード生成部１６は、スキャン・コード・テーブル１９を検索してＦｎキーのメイク・スキャン・コードを生成し、スキャン・コード出力２０として出力する。
【００３５】
その後、ステップＳ４５に進み、そこで、上述したように、キー・イベント解析部１５は、コード生成部１６にＦｎキーのブレイク・スキャン・コードを出力するように要求する。この要求を受けたコード生成部１６は、スキャン・コード・テーブル１９を検索してＦｎキーのブレイク・スキャン・コードを生成し、スキャン・コード出力２０として出力する。その後、ステップＳ４６に進み、そこで、Ｆｎキー・メイク・スキャン・コード要求レジスタ１８をリセットする。その後、ステップＳ４７へ進み、そこで、タイマー１７をストップさせる。
【００３６】
以上において説明した、キー・イベント解析部１５およびコード生成部１６の動作から、“Ｆｎ”キーは、次のように振る舞うことが分かる。
（１）“Ｆｎ”キーを押している間に、“Ｆｎ”キー以外のキー（“ｓｏｍｅ”キー）を押した場合、“ｓｏｍｅ”キーがホットキーのときには、“Ｆｎ”キーはホットキーとして機能する。したがって、スキャン・コードは出力しない。“Ｆｎ”キー＋“ｓｏｍｅ”キーとして、例えばサスペンドの機能を実行する。“ｓｏｍｅ”キーがホットキーでないときには、“Ｆｎ”キーはＯＳ依存特殊キーとして振る舞う。すなわち、“Ｆｎ”キー＋“ｓｏｍｅ”キーは、例えば“Ｗｉｎｄｏｗｓ”キー＋“ｓｏｍｅ”キーとしての機能を実行する。
（２）“Ｆｎ”キーをタイマー１７がタイム・アウトを出力するまで押しつづけた場合、“Ｆｎ”キーはＯＳ依存特殊キーとして振る舞う。したがって、“Ｆｎ”キーは、そのＯＳ依存特殊キーに割り当てられたメイク・スキャン・コードを出力する。
（３）“Ｆｎ”キーを押した後、上記（１）および（２）を満たさない状態で、離した場合、“Ｆｎ”キーはＯＳ依存特殊キーとして振る舞う。したがって、“Ｆｎ”キーを離した時に、そのＯＳ依存特殊キーに割り当てられたメイク・スキャン・コードおよびブレイク・スキャン・コードをこの順番に出力する。
【００３７】
従来の技術では、ＯＳ依存特殊キーの機能を割り当てられた“Ｆｎ”キーを押した後、ホットキー機能およびＯＳ依存特殊キー機能のいずれも実行しない状態で、離した時に、そのＯＳ依存特殊キーのブレイク・スキャン・コードが出力される結果、不都合が生じていた。すなわち、“Ａｐｐｌｉｃａｔｉｏｎ”キーや“Ｗｉｎｄｏｗｓ”キーなどのＯＳ依存特殊キーは、押した時には何も起こらない。しかし、離した時にユーザが意図しない不都合が生じる。例えば、“Ａｐｐｌｉｃａｔｉｏｎ”キーは、離したときに“Ｓｈｉｆｔ”＋“Ｆ１０”というショートカット・キーとして機能する。したがって、上記の状態において、ＯＳ依存特殊キーの機能を割り当てられた“Ｆｎ”キーを離すと、離した時にユーザが意図しないショートカット・キーとして機能する結果、“Ｆｎ”キー固有の機能を実行することができなくなる。
【００３８】
この実施形態では、ＯＳ依存特殊キーの機能を割り当てられた“Ｆｎ”キーを離す時には、Ｆｎキーのメイク・スキャン・コードを必ず出力する。つまり、“Ｆｎ”キーを離す時には、“Ｆｎ”キーは、その機能を割り当てられたＯＳ依存特殊キーとしてではなく、本来の“Ｆｎ”キーとして振る舞う。したがって、“Ｆｎ”キーにＯＳ依存特殊キーの機能を割り当てることに起因する不都合は生じない。
【００３９】
以上のように、この実施形態によれば、ユーザが意図していない現象を生じさせることなく、“Ｆｎ”キーに“Ａｐｐｌｉｃａｔｉｏｎ”キーや“Ｗｉｎｄｏｗｓ”キーなどのＯＳ依存特殊キーの機能を割り当てることが可能になる。
【００４０】
上述した実施形態による、特殊キーに割り当てた複数のキー機能を切り替える方法は、種々のプログラミング言語を用いてプログラム（以下、「キー機能を切り替えプログラム」と呼ぶ）にすることができる。
【００４１】
このキー機能を切り替えプログラムは、コンピュータ読み込み可能な記録媒体に記録される。記録媒体には、ＲＯＭ(read only memory)、ＥＥＰＲＯＭ(Electricaly Erasable Programmable Read Only Memory)、およびフラッシュＥＥＰＲＯＭ (flash ＥＥＰＲＯＭ) などの、コンピュータ・システムに実装される記憶装置、フロッピー・ディスク（ＦＤ）、ＣＤ−ＲＯＭ（コンパクト・ディスクを用いた読み取り専用メモリ）、およびＭＯ（光磁気）ディスクなどの可搬記録媒体、あるいはネットワークに接続されたサーバ・コンピュータなどに設けられた外部記憶装置などを用いることができる。
【００４２】
続いて、このキー機能を切り替えプログラムを記録した記録媒体を実装したキーボード・コントローラの例を、図６を参照しながら説明する。キーボード・コントローラ５２は、内部バスによって相互接続された、ＣＰＵ（central processing unit)５３、ＲＯＭ（read only memory）、ＲＡＭ（radom access memory)、タイマー５７、およびインターフェイス（Ｉ／Ｆ）回路５８を備えている。
【００４３】
キーボード・コントローラ５２は、キーボード５１を制御する。
ＣＰＵ５３は、キーボード・コントローラ５２を構成する各部を制御する。
ＲＯＭ５４は、ＣＰＵ５３が実行するプログラムを、キーボード制御プログラム５５として格納している。キー機能を切り替えプログラムは、このキーボード制御プログラム５５に含まれる。
ＲＡＭ５６には、ＣＰＵ５３が実行するプログラムやデータがロードされる。タイマー５７は、セットされると、予め設定されているプリセット値をカウント・ダウンする。カウント値が“０”になると、タイム・アウトを出力する。
インターフェイス回路５８は、Ｉ／Ｏポート５９とを介して接続された、キーボード・コントローラ５２とコンピュータ本体６０との間でやり取りされるデータを整合させる。
【００４４】
図６は、キーボード・コントローラ５２を、ＣＰＵ５３を始めとする複数個の部品によって構成する例を示している。これに限らず、設計方針によってはキーボード・コントローラ５２全体を１個の集積回路装置にすることもできる。さらに、ノートブック型ＰＣであるＴｈｉｎｋＰａｄ（商標）のように、キーボード／マウス・コントローラ、バッテリー・コントローラなど複数の機能を持った１チップ・マイクロコントローラを搭載したコンピュータでは、キーボード・コントローラ５２をその１チップ・マイクロコントローラに統合させることもできる。この場合、その１チップ・マイクロコントローラには、（株）日立製作所のＨ８を用いることができる。
【００４５】
続いて、この実施形態による、特殊キーに割り当てた複数のキー機能を切り替える方法を適用するコンピュータの例を、図７を用いて説明する。
【００４６】
コンピュータ６１は、ＣＰＵ６２、グラフィックス表示機構６３、ブリッジ回路Ａ６４、メイン・メモリ６５、ローカル・バス６６、ハードディスク駆動装置コントローラＨＤＣ６７、ハードディスク駆動装置ＨＤＤ６８、ブリッジ回路Ｂ６９、システム・バス７０、ＲＯＭ(read only memory)７１、フロッピー・ディスク駆動装置コントローラＦＤＣ７２、フロッピー・ディスク駆動装置ＦＤＤ７３、キーボード・マウス・コントローラ（ＫＢＤ／ＡＵＸコントローラ; Keyboad/Auxiliary Controller）７４、キーボード・コントローラ７５、キーボード７６、Ｉ／Ｏ（入出力）コントローラ７６、ネットワーク７７を主要部品として構成されている。
【００４７】
ローカル・バス６６は、ハードディスク駆動装置ＨＤＤ６７など高速で動作する周辺装置を接続するバスである。例えば、ＰＣＩバスを用いる。ＰＣＩ(perioheral component intercinnect) バスは、ＰＣＩスペシャル・インタレスト・グループ( ＰＣＩ Special Interest Group;米インテル社を中心として米ＩＢＭ社や米コンパック・コンピュータ社など百数十社が参加した標準化団体）が策定したローカル・バス・アーキテクチャである。
【００４８】
システム・バス７０は、フロッピー・ディスク駆動装置ＦＤＤ７３やキーボード７６など低速で動作する周辺装置を接続するバスである。例えば、ＩＳＡバスを用いる。ＩＳＡ(Industry Standard Architecture)バス、米ＩＢＭ社のパーソナルコンピュータＰＣ／ＡＴで採用された拡張バスを基本にして、国際的な標準規格とされた拡張バスである。
【００４９】
ＣＰＵ６２やメイン・メモリ６５とローカル・バス６７とは、ブリッジ回路Ａ６４によって架橋されている。ブリッジ回路Ａ６４は、例えばメモリ／ＰＣＩ制御チップ・セットを用いて構成する。
【００５０】
グラフィックス表示機構６３は、ＣＲＴ(cathode ray tube)  やＬＣＤ(liquid crystal display)などの表示装置への出力を制御する。グラフィックス表示機構６３とブリッジ回路Ａ６４との間は、例えばＡＧＰバスによって接続する。ＡＧＰ(accelerated graphics port) バスは、ＰＣＩバスを改良して、グラフィックス・カードなど画像表示に関連した回路を接続するための専用バスとしたものである。
【００５１】
ローカル・バス６７とシステム・バス７１との間は、ブリッジ回路Ｂ７０によって架橋されている。ブリッジ回路Ｂ７０は、例えばＰＣＩ−ＩＳＡブリッジ・チップによって構成する。
【００５２】
ハードディスク駆動装置ＨＤＤ６８は、オペレーティング・システム（ＯＳ）を始め種々のプログラムを格納している。なお、ＯＳなどのシステム・プログラムやアプリケーション・プログラムは、ＲＯＭ７１など他の記憶装置が格納する形態も採り得る。
キーボード・コントローラ７５６およびキーボード７６は、通常、キーボード装置として一体に形成されている。そして、一体に形成されたキーボード装置は、キーボード・マウス・コントローラ（ＫＢＤ／ＡＵＸコントローラ）７４を介してシステム・バス７０に接続されている。
【００５３】
以下、図７に示すコンピュータ６１の動作を説明する。
この実施形態によるキー機能を切り替えプログラムは、コンピュータ読み込み可能な記録媒体に記録される。記録媒体としては、ＲＯＭ(read only memory)、ＥＥＰＲＯＭ(electricaly erasable programmable read only memory)、およびフラッシュＥＥＰＲＯＭ(flashＥＥＰＲＯＭ) などの、コンピュータ・システムに実装される記憶装置、フロッピー・ディスク（ＦＤ）、ＣＤ−ＲＯＭ（コンパクト・ディスクを用いた読み取り専用メモリ）、およびＭＯ（光磁気）ディスクなどの可搬記録媒体、あるいはネットワークに接続されたサーバ・コンピュータなどに設けられたファイル装置などを用いることができる。
【００５４】
記録媒体に記録されたキー機能を切り替えプログラムは、次のようにしてコンピュータ６１内に取り込む。
【００５５】
上記取り込み方法は、記録媒体がコンピュータ６１に実装される記憶装置である場合には、２通りの方法に分かれる。記録媒体がＲＯＭのように読み出し専用の記憶装置の場合、半導体製造プロセスにおいてキー機能を切り替えプログラムＲＯＭ中に焼き込む。その後、そのＲＯＭをコンピュータ６１に実装する（例えば、図７に示すキーボード・コントローラ７４中のＲＯＭ（図示せず）にキーボード制御プログラムの形で実装する）。
【００５６】
記録媒体がＥＥＰＲＯＭ(electricaly erasable programmable ROM) やフラッシュＥＥＰＲＯＭ(flash EEPROM)などのように電気的に書き込み可能であり、かつ読み出し専用である記憶装置（以下、「ＰＲＯＭ」と呼ぶ）の場合には、次のようにする。ＰＲＯＭ中に既に格納されているキーボード制御プログラムを上書きすることにより、この実施の形態によるキー機能を切り替えプログラムをそのＰＲＯＭ書き込む。
【００５７】
記録媒体がネットワーク上のファイル装置である場合には、ネットワーク７７を介してそのファイル装置に記録されている、この実施の形態によるキー機能を切り替えプログラムをダウン・ロードする。そして、読み込んだ当該キー機能を切り替えプログラムを一旦ＨＤＤ６８に格納する。その後、ＨＤＤ６８に格納して置いた上記キー機能を切り替えプログラムをＰＲＯＭに書き込む。書き込み方法は、上述した方法と同様に、キーボード制御プログラムを上書きすることによって行なう。
【００５８】
【発明の効果】
本発明によれば、キーボード上に配置された特殊キーに割り当てた複数のキー機能を切り替える方法において、ユーザが意図しない現象が発生するのを防ぐことができる。
【図面の簡単な説明】
【図１】本発明の実施形態によるキーボード・コントローラを示す図である。
【図２】キー・イベント検出部の動作例を示すフローチャートである。
【図３】タイマーがタイム・アウトを出力した場合におけるキー・イベント解析部およびコード生成部の動作を示すフローチャートである。
【図４】タイム・アウトが発生する前に、あるキーを押した場合におけるキー・イベント解析部およびコード生成部の動作を示すフローチャートである。
【図５】タイム・アウトが発生する前に、“Ｆｎ”キーを離した場合におけるキー・イベント解析部およびコード生成部の動作を示すフローチャートである。
【図６】本発明の実施形態によるキー機能を切り替えプログラムを記録した記録媒体を実装したキーボード・コントローラの例を示す図である。
【図７】この実施形態による、特殊キーに割り当てた複数のキー機能を切り替える方法を適用するコンピュータの例を示す図である。
【符号の説明】
１１  キーボード
１２  キーボード・コントローラ
１３  キー・スキャン実行部
１４  キー・イベント検出部
１５  キー・イベント解析部
１６  コード生成部
１７  タイマー
１８  Ｆｎキー・メイク・スキャン・コード要求レジスタ
１９  スキャン・コード・テーブル
２０  スキャン・コード出力
【図１】
0004074406.tif 000002
【図２】
0004074406.tif 000003
【図３】
0004074406.tif 000004
【図４】
0004074406.tif 000005
【図５】
0004074406.tif 000006
【図６】
0004074406.tif 000007
【図７】
0004074406.tif 000008