(57)【要約】  メークコードとブレークコードとを対で出力するキーボード（１０５）とメークコードとブレークコードとを第１間隔（Ｔ）で対を成して出力する入力装置（１０６）とが接続されるインタフェース（１０４）と、メークコードが入力されると、第１間隔よりも長い第２間隔を計時するタイマ（１１）と、メークコードが入力されてからタイマ（１１）による第２間隔が計時されると、メークコードをキーボード（１０５）からの入力と判断する判断部（１３）と、を備えるように構成することにより、キーボードからの入力と入力装置からの入力とを切り分ける。
2014020696.tif 000002
【特許請求の範囲】
【請求項１】
１つのキーの押下げ時点で発生されるメークコードと、該キーの解放時点で発生され、該メークコードと一定の関係を有するブレークコードとを対で出力するキーボードと、前記メークコードと前記ブレークコードとを第１間隔で対を成して出力する入力装置とが接続されるインタフェースと、
メークコードが入力されると、前記第１間隔よりも長い第２間隔を計時するタイマと、
前記メークコードが入力されてから前記タイマによる前記第２間隔が計時されると、前記メークコードを前記キーボードからの入力と判断する判断部と、
をそなえることを特徴とする情報処理装置。
【請求項２】
前記判断部が、
前記メークコードが入力されてから前記タイマによる前記第２間隔が計時されるまでに、当該メークコードと対を成すブレークコードを受信すると、前記メークコード及びブレークコードを前記入力装置からの入力と判断する、
ことを特徴とする請求項１記載の情報処理装置。
【請求項３】
１つのキーの押下げ時点で発生されるメークコードと、該キーの解放時点で発生され、該メークコードと一定の関係を有するブレークコードとを対で出力するキーボードと、前記メークコードと前記ブレークコードとを第１間隔で対を成して出力する入力装置とが接続されるインタフェースと、
入力されたメークコードを少なくとも２つ格納する格納部と、
ブレークコードが入力されると、前記格納部において、２つ前までに受信した前記メークコードにおいて、入力された当該ブレークコードと対を成すメークコードが存在するかを確認する確認部と、
前記確認部により、前記２つ前までに受信したメークコードにおいて、前記入力されたブレークコードと対を成すメークコードが存在することを確認されると、当該メークコード及びブレークコードを前記入力装置からの入力と判断する判断部と、
をそなえることを特徴とする情報処理装置。
【請求項４】
前記判断部が、前記確認部により、前記２つ前までに受信したメークコードにおいて、前記入力されたブレークコードと対を成すメークコードが存在しないことを確認されると、当該メークコード及びブレークコードを前記キーボードからの入力と判断する判断部と、
をそなえることを特徴とする、請求項３記載の情報処理装置。
【請求項５】
１つのキーの押下げ時点で発生されるメークコードと、該キーの解放時点で発生され、該メークコードと一定の関係を有するブレークコードとを対で出力するキーボードと、前記メークコードと前記ブレークコードとを第１間隔で対を成して出力する入力装置とが接続されるインタフェースをそなえる情報処理装置における入力処理方法であって、
メークコードが入力されると、前記第１間隔よりも長い第２間隔の計時を開始するステップと、
前記メークコードが入力されてから前記第２間隔が計時されると、前記メークコードを前記キーボードからの入力と判断するステップと、
をそなえることを特徴とする入力処理方法。
【請求項６】
前記メークコードが入力されてから前記第２間隔が計時されるまでに、当該メークコードと対を成すブレークコードを受信すると、前記メークコード及びブレークコードを前記入力装置からの入力と判断する、
ことを特徴とする請求項５記載の入力処理方法。
【請求項７】
１つのキーの押下げ時点で発生されるメークコードと、該キーの解放時点で発生され、該メークコードと一定の関係を有するブレークコードとを対で出力するキーボードと、前記メークコードと前記ブレークコードとを第１間隔で対を成して出力する入力装置とが接続されるインタフェースをそなえる情報処理装置における入力処理方法であって、
入力されたメークコードを格納部に格納するステップと、
ブレークコードが入力されると、前記格納部において、２つ前までに受信した前記メークコードにおいて、入力された当該ブレークコードと対を成すメークコードが存在するかを確認するステップと、
前記２つ前までに受信したメークコードにおいて、前記入力されたブレークコードと対を成すメークコードが存在することを確認されると、当該メークコード及びブレークコードを前記入力装置からの入力と判断するステップと、
をそなえることを特徴とする入力処理方法。
【請求項８】
前記２つ前までに受信したメークコードにおいて、前記入力されたブレークコードと対を成すメークコードが存在しないことを確認されると、当該メークコード及びブレークコードを前記キーボードからの入力と判断するステップと、
をそなえることを特徴とする請求項７記載の入力処理方法。
【請求項９】
１つのキーの押下げ時点で発生されるメークコードと、該キーの解放時点で発生され、該メークコードと一定の関係を有するブレークコードとを対で出力するキーボードと、前記メークコードと前記ブレークコードとを第１間隔で対を成して出力する入力装置とが接続されるインタフェースをそなえるコンピュータに、
メークコードが入力されると、前記第１間隔よりも長い第２間隔の計時を開始し、
前記メークコードが入力されてから前記第２間隔が計時されると、前記メークコードを前記キーボードからの入力と判断する、
処理を実行させることを特徴とする入力処理プログラム。
【請求項１０】
前記メークコードが入力されてから前記第２間隔が計時されるまでに、当該メークコードと対を成すブレークコードを受信すると、前記メークコード及びブレークコードを前記入力装置からの入力と判断する、
処理を前記コンピュータに実行させることを特徴とする請求項９記載の入力処理プログラム。
【請求項１１】
１つのキーの押下げ時点で発生されるメークコードと、該キーの解放時点で発生され、該メークコードと一定の関係を有するブレークコードとを対で出力するキーボードと、前記メークコードと前記ブレークコードとを第１間隔で対を成して出力する入力装置とが接続されるインタフェースをそなえるコンピュータに、
入力されたメークコードを格納部に格納し、
ブレークコードが入力されると、前記格納部において、２つ前までに受信した前記メークコードにおいて、入力された当該ブレークコードと対を成すメークコードが存在するかを確認し、
前記２つ前までに受信したメークコードにおいて、前記入力されたブレークコードと対を成すメークコードが存在することを確認されると、当該メークコード及びブレークコードを前記入力装置からの入力と判断する、
処理を実行させる入力処理プログラム。
【請求項１２】
前記２つ前までに受信したメークコードにおいて、前記入力されたブレークコードと対を成すメークコードが存在しないことを確認されると、当該メークコード及びブレークコードを前記キーボードからの入力と判断する、
処理を前記コンピュータに実行させることを特徴とする請求項１１記載の入力処理プログラム。
【請求項１３】
１つのキーの押下げ時点で発生されるメークコードと、該キーの解放時点で発生され、該メークコードと一定の関係を有するブレークコードとを対で出力するキーボードと、前記メークコードと前記ブレークコードとを第１間隔で対を成して出力する入力装置とが接続されるインタフェースをそなえるコンピュータに、
メークコードが入力されると、前記第１間隔よりも長い第２間隔の計時を開始し、
前記メークコードが入力されてから前記第２間隔が計時されると、前記メークコードを前記キーボードからの入力と判断する、
処理を実行させる入力処理プログラムを記録したコンピュータ読取可能な記録媒体。
【請求項１４】
前記メークコードが入力されてから前記第２間隔が計時されるまでに、当該メークコードと対を成すブレークコードを受信すると、前記メークコード及びブレークコードを前記入力装置からの入力と判断する、
処理を前記コンピュータに実行させることを特徴とする請求項１３記載の入力処理プログラムを記録したコンピュータ読取可能な記録媒体。
【請求項１５】
１つのキーの押下げ時点で発生されるメークコードと、該キーの解放時点で発生され、該メークコードと一定の関係を有するブレークコードとを対で出力するキーボードと、前記メークコードと前記ブレークコードとを第１間隔で対を成して出力する入力装置とが接続されるインタフェースをそなえるコンピュータに、
入力されたメークコードを格納部に格納し、
ブレークコードが入力されると、前記格納部において、２つ前までに受信した前記メークコードにおいて、入力された当該ブレークコードと対を成すメークコードが存在するかを確認し、
前記２つ前までに受信したメークコードにおいて、前記入力されたブレークコードと対を成すメークコードが存在することを確認されると、当該メークコード及びブレークコードを前記入力装置からの入力と判断する、
処理を実行させる入力処理プログラムを記録したコンピュータ読取可能な記録媒体。
【請求項１６】
前記２つ前までに受信したメークコードにおいて、前記入力されたブレークコードと対を成すメークコードが存在しないことを確認されると、当該メークコード及びブレークコードを前記キーボードからの入力と判断する、
処理を前記コンピュータに実行させることを特徴とする請求項１５記載の入力処理プログラムを記録したコンピュータ読取可能な記録媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、入力処理方法、入力処理プログラム及び入力処理プログラムを記録したコンピュータ読取可能な記録媒体に関する。
【背景技術】
【０００２】
一般に、Personal Computer（ＰＣ）にはキーボードが備えられている。キーボードのインタフェースとしては、従来においてはPS/2が用いられてきたが、近年ではUniversal Serial Bus（ＵＳＢ）に置き換わりつつある。
ＵＳＢのインタフェースは、従来のＰＣに備えられていたRS-232Cのシリアルポートやプリンタを接続するパラレルポートに替わるものとして、それらのインタフェースで接続される機器を同じ物理インタフェースで接続することを目指して設けられた。近年のＰＣの本体には、それら複数の機器を接続するために複数のＵＳＢコネクタが備えられている。【０００３】
ＵＳＢのインタフェースを利用するに際して、Basic Input Output System（BIOS）やデバイスドライバによってエミュレートすることにより、上位ソフトウェアに対して、ＵＳＢポートをPS/2やRS-232C、パラレルポート等に見える様にする手法が知られている。この手法はOperating System（OS）の標準の機能として備えられているため、インタフェースがＵＳＢになっても、それに接続された機器のソフトウェアをそのまま使用出来、新たに作り変える必要は無い。【０００４】
ところで、ＵＳＢの入力機器として、バーコードリーダや、最近でそれに替わりつつあるＱＲコード（登録商標）リーダ等が知られている。以下、これらの入力機器を総称して擬似キーボードという場合がある。
これらの入力機器は、従来はPS/2のインタフェースを用いて接続され、ＰＣのキーボードに代わる入力を行なっていたが、近年では、ＵＳＢのインタフェースに置き換えられつつある。【０００５】
そしてPS/2のインタフェースについても、ＵＳＢのインタフェースに接続された機器をあたかもPS/2インタフェースに接続されたキーボードに見せかける、レガシィキーボードエミュレーションと呼ぶエミュレーション手法が知られている。
しかしながら、従来のＰＣにおいては、PS/2のキーボードインタフェースが物理的に一つしか無かった。従って、キーボードと擬似キーボードとは、例えば、切換スイッチなどで切り換える方法によって接続する方法がとられ、キーボードと擬似キーボードとを同時に使うことは意識されていなかった。
【特許文献１】特開２０００−１０７１５号公報
【特許文献２】特開２０００−５６９０７号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、インタフェースがＵＳＢに統一され、ＰＣに、複数のＵＳＢを介してキーボードと擬似キーボードとを同時に接続可能となると、これらのキーボード及び擬似キーボードを同時に使いたいと言う要求が必然的に生じる。例えば、工場におけるＰＣを用いた試験工程において、擬似キーボードを用いた入力とキーボードを用いた入力との両方を行ないたいという要求がある。すなわち、キーボードからの入力と擬似キーボードからの入力とを切り分ける必要が生じている。【０００７】
従来のＰＣにおいて、キーボードからの入力と擬似キーボードからの入力とを切り分ける方法としては、例えば、単純には擬似キーボード機器の出力データ（コード）を特別なものとし、それをキーボードデータと振り分ける方法がある。しかしながら、この方法では、擬似キーボードから入力されるコード体系が従来から用いていたキーボードのコードとは異なるものとなる。これにより、キーボードのコード体系をそのまま使っていた従来のアプリケーションをそのまま使うことが出来なくなる。なお、この問題を解決するためには、新たなプログラムを作って入力データをアプリケーションに中継する方法（パイプ）が考えられる。しかしながら、一般のSystem Engineer（ＳＥ）等、システム構築関係者に新たなプログラムを配布運用させることは容易では無い。又、このプログラムを擬似キーボードの製造業者が提供するとして、かかるプログラムの作成及び配布は、ソフトウェアをあまり得意としないそれら業者にあっては大きな負担となる。【０００８】
本発明は、このような課題に鑑み創案されたもので、擬似キーボードからの入力をキーボードからの入力と区別して処理できるようにすることを目的とする。
なお、前記目的に限らず、後述する発明を実施するための最良の形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本発明の他の目的の1つとして位置付けることができる。
【課題を解決するための手段】
【０００９】
このため、この情報処理装置は、１つのキーの押下げ時点で発生されるメークコードと、該キーの解放時点で発生され、該メークコードと一定の関係を有するブレークコードとを対で出力するキーボードと、前記メークコードと前記ブレークコードとを第１間隔で対を成して出力する入力装置とが接続されるインタフェースと、メークコードが入力されると、前記第１間隔よりも長い第２間隔を計時するタイマと、前記メークコードが入力されてから前記タイマによる前記第２間隔が計時されると、前記メークコードを前記キーボードからの入力と判断する判断部と、をそなえる。【００１０】
また、この情報処理装置は、１つのキーの押下げ時点で発生されるメークコードと、該キーの解放時点で発生され、該メークコードと一定の関係を有するブレークコードとを対で出力するキーボードと、前記メークコードと前記ブレークコードとを第１間隔で対を成して出力する入力装置とが接続されるインタフェースと、入力されたメークコードを少なくとも２つ格納する格納部と、ブレークコードが入力されると、前記格納部において、２つ前までに受信した前記メークコードにおいて、入力された当該ブレークコードと対を成すメークコードが存在するかを確認する確認部と、前記確認部により、前記２つ前までに受信したメークコードにおいて、前記入力されたブレークコードと対を成すメークコードが存在することを確認されると、当該メークコード及びブレークコードを前記入力装置からの入力と判断する判断部と、をそなえる。【００１１】
さらに、この入力処理方法は、１つのキーの押下げ時点で発生されるメークコードと、該キーの解放時点で発生され、該メークコードと一定の関係を有するブレークコードとを対で出力するキーボードと、前記メークコードと前記ブレークコードとを第１間隔で対を成して出力する入力装置とが接続されるインタフェースをそなえる情報処理装置における入力処理方法であって、メークコードが入力されると、前記第１間隔よりも長い第２間隔の計時を開始するステップと、前記メークコードが入力されてから前記第２間隔が計時されると、前記メークコードを前記キーボードからの入力と判断するステップと、をそなえる。【００１２】
また、この入力処理方法は、１つのキーの押下げ時点で発生されるメークコードと、該キーの解放時点で発生され、該メークコードと一定の関係を有するブレークコードとを対で出力するキーボードと、前記メークコードと前記ブレークコードとを第１間隔で対を成して出力する入力装置とが接続されるインタフェースをそなえる情報処理装置における入力処理方法であって、入力されたメークコードを格納部に格納するステップと、ブレークコードが入力されると、前記格納部において、２つ前までに受信した前記メークコードにおいて、入力された当該ブレークコードと対を成すメークコードが存在するかを確認するステップと、前記２つ前までに受信したメークコードにおいて、前記入力されたブレークコードと対を成すメークコードが存在することを確認されると、当該メークコード及びブレークコードを前記入力装置からの入力と判断するステップと、をそなえる。【００１３】
さらに、この入力処理プログラムは、１つのキーの押下げ時点で発生されるメークコードと、該キーの解放時点で発生され、該メークコードと一定の関係を有するブレークコードとを対で出力するキーボードと、前記メークコードと前記ブレークコードとを第１間隔で対を成して出力する入力装置とが接続されるインタフェースをそなえるコンピュータに、メークコードが入力されると、前記第１間隔よりも長い第２間隔の計時を開始し、前記メークコードが入力されてから前記第２間隔が計時されると、前記メークコードを前記キーボードからの入力と判断する、処理を実行させる。【００１４】
また、この入力処理プログラムは、１つのキーの押下げ時点で発生されるメークコードと、該キーの解放時点で発生され、該メークコードと一定の関係を有するブレークコードとを対で出力するキーボードと、前記メークコードと前記ブレークコードとを第１間隔で対を成して出力する入力装置とが接続されるインタフェースをそなえるコンピュータに、入力されたメークコードを格納部に格納し、ブレークコードが入力されると、前記格納部において、２つ前までに受信した前記メークコードにおいて、入力された当該ブレークコードと対を成すメークコードが存在するかを確認し、前記２つ前までに受信したメークコードにおいて、前記入力されたブレークコードと対を成すメークコードが存在することを確認されると、当該メークコード及びブレークコードを前記入力装置からの入力と判断する、処理を実行させる。【００１５】
さらに、このコンピュータ読取可能な記録媒体は、上述した入力処理プログラムを記録したものである。
【発明の効果】
【００１６】
一実施形態によれば、キーボードから入力されるキーコードと入力装置から入力されるキーコードとを切り分けることができる。
【図面の簡単な説明】
【００１７】
【図１】実施形態の一例としての情報処理装置の構成を示す図である。
【図２】実施形態の一例としての情報処理装置の外観を示す図である。
【図３】実施形態の一例としての情報処理装置におけるスキャナが入力するキーコードを例示する図である。
【図４】実施形態の一例としての情報処理装置におけるＴＭＰバッファ及びＫＢバッファの構成を示す図である。
【図５】実施形態の一例としての情報処理装置におけるキーコードが入力された場合の処理を説明するフローチャートである。
【図６】実施形態の一例としての情報処理装置におけるキーコードが入力された場合の処理を例示する図である。
【図７】実施形態の一例としての情報処理装置においてレガシィキーボードエミュレーションを実現する例を説明するフローチャートである。
【図８】実施形態の一例としての情報処理装置においてレガシィキーボードエミュレーションを実現する例を説明するフローチャートである。
【図９】実施形態の一例としての情報処理装置においてレガシィキーボードエミュレーションを実現する例を説明するフローチャートである。
【図１０】実施形態の一例としての情報処理装置の構成の変形例を示す図である。
【図１１】図１０に示す情報処理装置によって実現されるＵＳＢインタフェースのスキャンタイミングを示す図である。
【図１２】キーボードからの入力を通知するデータのフォーマットを示す図である。
【発明を実施するための最良の形態】
【００１８】
（Ａ）実施形態
以下、図面を参照して本情報処理装置、入力処理方法、入力処理プログラム及び入力処理プログラムを記録したコンピュータ読取可能な記録媒体に係る実施の形態を説明する。ただし、以下に示す実施形態はあくまでも例示に過ぎず、実施形態で明示しない種々の変形例や技術の適用を排除する意図はない。すなわち、本実施形態を、その趣旨を逸脱しない範囲で種々変形して実施することができる。又、各図は、図中に示す構成要素のみを備えるという趣旨ではなく、他の機能等を含むことができる。【００１９】
図１は実施形態の一例としての情報処理装置１の構成を示す図、図２はその外観を示す図である。情報処理装置１はコンピュータである。
情報処理装置１は、図２に示すように、２以上のＵＳＢインタフェース２０を備え、これらのＵＳＢインタフェース２０にキーボード１０５及びスキャナ１０６が接続されている。そして、オペレータがこれらのキーボード１０５及びスキャナ１０６を介して、種々の入力操作を行なう。【００２０】
情報処理装置１は、図１に示すように、Central Processing Unit（ＣＰＵ）１０，Random Access Memory（ＲＡＭ）１０２，Read Only Memory（ＲＯＭ）１０３，Platform Controller Hub（ＰＣＨ）１０４，キーボード（ＫＢ）１０５，スキャナ（入力装置）１０６，キーボードコントローラ（ＫＢＣ）１０７及びディスプレイ（ＤＩＳＰ）１０８を備える。又、本情報処理装置１は、図示しないポインティングデバイス等も備える。【００２１】
ＲＯＭ１０３は、ＣＰＵ１０が実行するOperating System（ＯＳ）やプログラム，種々のデータ等を格納する記憶装置である。ＲＡＭ（格納部）１０２は、種々のデータやプログラムを格納する記憶領域であって、ＣＰＵ１０がプログラムを実行する際に、データやプログラムを格納・展開して用いる。又、このＲＡＭ１０２は、後述するキーボード１０５やスキャナ１０６から入力されるメークコード（makeデータ）やブレークコード（breakデータ）を格納する、ＴＭＰバッファ１５及びＫＢバッファ１０３として機能する。【００２２】
ＰＣＨ１０４は、ＣＰＵ１０と周辺機器とのインタフェースを担うものであり、一般にチップセットとして構成される。
ＰＣＨ１０４には複数のＵＳＢインタフェース２０が備えられ、キーボード１０５，スキャナ１０６及びキーボードコントローラ（ＫＢＣ）１０７が接続される。更に、ＰＣＨ１０４は、Peripheral Component Interconnect（PCI） Express、シリアルAT Attachment（ATA）、インタフェース機能等を備える。【００２３】
キーボード１０５及び図示しないポインティングデバイスは利用者が各種入力操作を行なう入力装置である。
ここで、キーボード１０５は、キャラクタ（文字）に対応する複数のキーをそなえ、オペレータによるキーの押下操作に伴いキーコードを出力する。キーコードには、１つのキーの押下げ時点で発生されるメークコードと、このキーの解放時点で発生され、メークコードと一定の関係を有するブレークコードとが対で定義されている。なお、これらのメークコード及びブレークコードを含むキーコードは、既知の種々の手法で実現することができ、その詳細な説明は省略する。【００２４】
スキャナ１０６は、画像等の読み取り対象を走査して入力データを生成する入力装置であり、例えば、バーコードリーダやＱＲコードリーダである。本情報処理装置１においては、スキャナ１０６は、バーコードやＱＲコードを読み取り、メークコード及びブレークコードを対として含むキーコードを生成し、ＰＣＨ１０４を介して入力する。このスキャナ１０６によって生成されるメークコード及びブレークコードは、キーボード１０５によって生成されるメークコード及びブレークコードと同じフォーマットを備える。すなわち、スキャナ１０６は、キーコードを情報処理装置１に入力する擬似キーボードとして機能する。【００２５】
図３は実施形態の一例としての情報処理装置におけるスキャナ１０６が入力するキーコードを例示する図である。この図３においては、スキャナ１０６から文字列“ＦＩＴＰ”のキー入力に相当するキーコードを入力した例を示している。図中、メークコードを単にそのメークコードが示すテキスト“Ｆ”，“Ｉ”，“Ｔ”，“Ｐ”で表し、ブレークコードを、そのテキスト上に“○”印を付して表している。【００２６】
スキャナ１０６は、同一のキーに対応する一対のメークコード及びブレークコードを、第１間隔Ｔ（例えば、Ｔ≦10ms）で連続して出力する。例えば、スキャナ１０６は、文字“Ｆ”を入力する場合には、“Ｆ”のメークコードを入力してから第１間隔Ｔ後に“Ｆ”のブレークコードを入力する。
キーボードコントローラ１０７は、キーボード１０５やスキャナ１０６とＣＰＵ１０との間のデータのやり取りを制御する制御装置であり、例えば、Intel 8042である。キーボードコントローラ１０７は、ＣＰＵ１０との通信を行なうための図示しないデータレジスタ及びステータスレジスタを備える。これらのレジスタはI/O port(0x60,0x64)にマップされていて、ＣＰＵ１０はこれらのアドレスにリード／ライトを行なうことにより、キーボードコントローラ１０７とのやり取りを行なう。又、キーボード１０５からの入力はランダムなタイミングで行なわれる。そこで、キーボードコントローラ１０７は、キーボード１０５からキーコードを受信すると、図示しない割込みコントローラを介してＣＰＵ１０に対して割込み（IRQ 1）を発生させる。【００２７】
すなわち、図１に例示する情報処理装置１においては、キーボードコントローラ１０７を用いたレガシィキーボードエミュレーションを実現している。
レガシィキーボードエミュレーションとは、ＵＳＢのマウスやキーボードを、AT互換機のPCの伝統的な入力機器であるPS/2キーボードやマウスに見せかけるための技術である。このレガシィキーボードエミュレーションによれば、ソフトウェアからはPS/2キーボードやマウスのインタフェース回路（レジスタ）からキー入力や座標入力の要求があった様に見せかけることができる。これにより、それらのレジスタをアクセスしている従来ソフトウェアがそのまま動作することを可能としている。【００２８】
図１に示したキーボードコントローラ１０７を備えた情報処理装置１においては、キーボードコントローラ１０７が有するエコーバックの機能によってレガシィキーボードエミュレーションが実現される。エコーバック機能は、キーボードコントローラ１０７にキーコードデータをセットすると、キーボードコントローラ１０７が、あたかもキー入力があったかの様に、割り込みを発生し、ＯＳに対してキー入力を通知し、又、キーコードデータの引き取りを促すものである。【００２９】
キーボードコントローラ１０７は、例えば、データレジスタ（60h）とステータスレジスタ（64h）との２つを備える。キー入力を検出すると、キーボードコントローラ１０７は、そのデータレジスタにキーコードをセットし、ステータスレジスタのOut put Buffer Full （ＯＢＦ）のビットを“１”として、ＣＰＵ１０に割り込みをかける。ＯＳはキーボードコントローラ１０７からの割り込みに応答して、データレジスタにセットされたデータをリードして引取る。キーボードコントローラ１０７はＣＰＵ１０のデータの引取りを検出すると、ＯＢＦをリセットし、これにより一連のキー入力動作が終了する。【００３０】
また、キーボードコントローラ１０７は、前述したエコーバックの機能を備える。エコーバックの機能は、データレジスタに、エコーコマンド（FEh）をライトし、続いてエコーを行なうキーコードをライトする。これによりキーボードコントローラ１０７はＯＢＦを“１”にセットし、ＣＰＵ１０に割り込み（IRQ1:INT9）を発生する。又、データレジスタにセットされたデータを、キー入力を受けたのと同様のシーケンスによってＯＳに通知し、それによってＯＳはセットされたデータの引き取りを行なうことが出来る。【００３１】
これにより、レガシィキーボードエミュレーションが可能になる。すなわち、Basic Input Output System（ＢＩＯＳ）やＯＳは、ＵＳＢポートに接続された機器の識別情報に基づき、キーボード機器であることを識別すると、それからの入力データをキーボードコントローラ１０７にセットし、その引き取りをPS/2の従来キーボードと同様に行なうことができる。【００３２】
キーボード１０５やスキャナ１０６から入力されたメークコードやブレークコードは、ＲＡＭ１０２のＴＭＰバッファ１５に格納される。
図４は実施形態の一例としての情報処理装置１におけるＴＭＰバッファ１５及びＫＢバッファ１６の構成を示す図である。
ＴＭＰバッファ１５は、キーボード１０５やスキャナ１０６から入力されたメークコード及びブレークコードを格納するバッファであり、図４に示すように、メークコードを格納する領域１５１と、ブレークコードを格納する領域１５２とを備える。【００３３】
メークコードを格納する領域１５１には、２つのメークコードがFirst In, First Out（ＦＩＦＯ）で格納される。すなわち、ＴＭＰバッファ１５には、最後に入力されたメークコード（１つ前のメークコード）と、その１つ前に入力されたメークコード（２つ前のメークコード）とが格納される。すなわち、このＴＭＰバッファ１５が、入力されたメークコードを少なくとも２つ格納する格納部として機能する。又、ブレークコードを格納する領域１５２には、１つのブレークコードがＦＩＦＯで格納される。【００３４】
ＫＢバッファ１６は、ＣＰＵ１０に通知するメークコード及びブレークコードを格納するバッファであり、図４に示すように、メークコードを格納するメークバッファ１６１と、ブレークコードを格納するブレークバッファ１６１とを備える。
メークバッファ１６１には、ＴＭＰバッファ１５の領域１５１に格納された１つ前のメークコードもしくは２つ前のメークコードのいずれかが格納される。又、ブレークバッファ１６２には、ＴＭＰバッファ１５の領域１５２に格納されたブレークコードが格納される。【００３５】
ＫＢバッファ１６へのメークコードやブレークコードの格納は、後述する判断部１３によって行なわれる。
ディスプレイ１０８は、各種情報やメッセージを表示する出力装置である。なお、図２に示す例においては、ディスプレイ１０８が本情報処理装置１の装置本体と一体に形成されたディスプレイ一体モデルの例を示している。ただし、情報処理装置１のハードウェア構成は、これに限定されるものではなく種々変形して実施することができる。例えば、情報処理装置１がノートＰＣであってもよく、又、装置本体とディスプレイ１０８とを別体として構成してもよい。【００３６】
ＣＰＵ１０は、種々の制御や演算を行なう処理装置であり、ＲＯＭ１０３等に格納されたＯＳやプログラムを実行することにより、種々の機能を実現する。具体的には、ＣＰＵ１０は、デバイスドライバプログラム（入力処理プログラム）を実行することにより、図１に示すように、タイマ１１，確認部１２及び判断部１３としての機能を備えるキーコード処理部１０１として機能する。【００３７】
なお、このキーコード処理部１０１としての機能を実現するためのプログラム（デバイスドライバ）は、例えばフレキシブルディスク，ＣＤ（ＣＤ−ＲＯＭ，ＣＤ−Ｒ，ＣＤ−ＲＷ等），ＤＶＤ（ＤＶＤ−ＲＯＭ，ＤＶＤ−ＲＡＭ，ＤＶＤ−Ｒ，ＤＶＤ＋Ｒ，ＤＶＤ−ＲＷ，ＤＶＤ＋ＲＷ，ＨＤ  ＤＶＤ等），ブルーレイディスク，磁気ディスク，光ディスク，光磁気ディスク等の、コンピュータ読取可能な記録媒体に記録された形態で提供される。そして、コンピュータはその記録媒体からプログラムを読み取って、図示しない内部記憶装置または外部記憶装置に転送し格納して用いる。又、そのプログラムを、例えば磁気ディスク，光ディスク，光磁気ディスク等の記憶装置（記録媒体）に記録しておき、その記憶装置から通信経路を介してコンピュータに提供してもよい。【００３８】
キーコード処理部１０１としての機能を実現する際には、内部記憶装置（本実施形態ではＲＡＭ１０２やＲＯＭ１０３）に格納されたプログラムがコンピュータのマイクロプロセッサ（本実施形態ではＣＰＵ１０）によって実行される。このとき、記録媒体に記録されたプログラムをコンピュータが読み取って実行するようにしてもよい。
なお、本実施形態において、コンピュータとは、ハードウェアとオペレーティングシステムとを含む概念であり、オペレーティングシステムの制御の下で動作するハードウェアを意味している。又、オペレーティングシステムが不要でアプリケーションプログラム単独でハードウェアを動作させるような場合には、そのハードウェア自体がコンピュータに相当する。ハードウェアは、少なくとも、ＣＰＵ等のマイクロプロセッサと、記録媒体に記録されたコンピュータプログラムを読み取るための手段とをそなえており、本実施形態においては、情報処理装置１がコンピュータとしての機能を有している。【００３９】
キーコード処理部１０１は、キーコードが入力されると、この入力されたキーコードについての処理を行なう。すなわち、対を成すメークコード及びブレークコードに対応するキーについて、例えば、キーボード１０５におけるキー配列の設定や修飾キー・ロックキーなどの状態を参照して、該当する文字のキー入力として処理を行なう。
本情報処理装置１においては、キーコードの入力はキーボードコントローラ１０７からのキー割込みによりＣＰＵ１０（キーコード処理部１０１）に通知される。【００４０】
また、キーコード処理部１０１は、タイマ１１，確認部１２及び判断部１３としての機能を備える。
タイマ１１は、キーボード１０５もしくはスキャナ１０６からメークコードが入力されると、第２間隔ｔの計時を開始する。第２間隔ｔは、前述したスキャナ１０６からのキーコードにおけるメークコードとブレークコードとの間隔である第１間隔Ｔよりも長い。又、第２間隔ｔは、キーボード１０５におけるキーマトリクスのスキャン周期（例えば２０ms）よりも短い。望ましくは、第２間隔ｔは、第１間隔Ｔの２つ分よりも短い。すなわち、Ｔ＜ｔ＜２Ｔであることが望ましい。【００４１】
タイマ１１は、第２間隔ｔが経過すると、割込み（タイマ割込み）信号を出力してＣＰＵ１０（判断部１３）に通知する。
また、タイマ１１は、第２間隔ｔの計時途中に新たなキーコードのメークコードが入力されるとリトリガされ、第２間隔ｔの計時を最初からやり直す。
確認部１２は、キーボード１０５もしくはスキャナ１０６からブレークコードが入力されると、ＴＭＰバッファ１５の領域１５１に格納されている２つのメークコードのうち、入力されたブレークコードのキーに対応するメークコードが存在するかを確認する。【００４２】
すなわち、確認部１２は、ブレークコードが入力されると、２つ前までに受信したメークコードにおいて、入力されたブレークコードと対を成すメークコードが存在するかを確認する。
判断部１３は、入力されたブレークコードと対を成すメークコードが２つ前までに受信したメークコード内に存在することを確認部１２が確認すると、これらのメークコード及びブレークコードをスキャナ１０６からの入力と判断する。【００４３】
また、判断部１３は、メークコードが入力されてからタイマ１１による第２間隔ｔが計時されるまでに、そのメークコードと対を成す、すなわち同一のキーにかかるブレークコードを受信すると、これらのメークコード及びブレークコードをスキャナ１０６からの入力と判断する。
判断部１３は、スキャナ１０６からの入力と判断したこれらのメークコード及びブレークコードをメークコード、ブレークコードの順に通知する。その後、判断部１３は、ＴＭＰバッファ１５に残ったメークコード、ないしは、ブレークコードについて、メークコードをメークバッファ１６１に、又、ブレークコードをブレークバッファ１６２に、それぞれ格納する。【００４４】
また、判断部１３は、タイマ１１から割り込み信号が入力されると、ＴＭＰバッファ１５の領域１５１において最後に格納されたメークコード（１つ前のメークコード）を、キーボード１０５から入力されたものであると判断する。すなわち、判断部１３は、メークコードが入力されてからタイマ１１による第２間隔ｔが計時されると、ＴＭＰバッファ１５に残されたコードをキーボード１０５からの入力と判断し、それらのコードをＫＢバッファ１６に格納する。【００４５】
本情報処理装置１においては、スキャナ１０６から入力されたキーコードを、キーボード１０５から入力されたキーコードよりも優先して処理する。すなわち、判断部１３は、キーボード１０５から入力されたと判断したメークコード及びブレークコードをＫＢバッファ１６に格納する。そして、スキャナ１０６から入力されたキーコードの処理が完了し、スキャナ１０６からのキーコード入力がない状態において、これらのキーボード１０５から入力されたキーコードを処理する。【００４６】
なお、これに限定されるものではなく、種々変形して実施することができる。例えば、スキャナ１０６が接続された状態やスキャナ１０６からのキーコード入力が行なわれている状態では、キーボード１０５から入力されたキーコードを破棄してもよい。
上述の如く構成された実施形態の一例としての情報処理装置１におけるキーコードが入力された場合の処理を、図６を参照しながら、図５に示すフローチャート（ステップＡ１〜Ａ１０）に従って説明する。図６は本情報処理装置１におけるキーコードが入力された場合の処理を例示する図である。この図６に示す例においては、スキャナ１０６から文字列“ＦＩＴＰ”のキー入力に相当するキーコードが、順次、入力され、又、その途中でキーボード１０５から“Ａ”のキー入力が行なわれた例を示す。なお、この図６に示す例において、“ｘ”は、任意のキー入力を意味する。【００４７】
キーボードコントローラ１０７からキー割込みが行なわれると、ステップＡ１において、キーコード処理部１０１は、入力されたキーコードがメークコード（make）であるか否かを判断する。
入力されたキーコードがメークコードである場合には（ステップＡ１のＹＥＳルート参照）、ステップＡ２において、そのメークコードをＴＭＰバッファ１５に格納する。図６に示す例においては、“Ｆ”，“Ａ”，“Ｉ”，“Ｔ”，“Ｐ”の各メークコードが入力されたタイミングで、これらのメークコードが保存されている。【００４８】
ステップＡ３において、タイマ１１は第２間隔ｔの計時を開始し、その後、処理を終了する。図６に示す例において、“Ｆ”，“Ａ”，“Ｉ”，“Ｔ”，“Ｐ”，“ｘ”の各メークコードが入力されると、それぞれタイマ１１は第２間隔ｔの計時を開始している。又、タイマ１１による計時途中に次のメークコードが入力されると、タイマ１１はリセットされ、第２間隔ｔの計時を最初から行なう。【００４９】
なお、これらのステップＡ２，Ａ３の順序はこれに限定されるものではなく、先にステップＡ３を行なってからステップＡ２を行なってもよく、又、これらの処理を同時に行なってもよい。
入力されたキーコードがメークコードでない場合（ステップＡ１のＮＯルート参照）、すなわち、入力されたキーコードがブレークコードである場合には、ステップＡ４において、確認部１２が、ＴＭＰバッファ１５に、そのブレークコードに対応するメークコードが格納されているかを確認する。【００５０】
入力されたブレークコードが、ＴＭＰバッファ１５の領域１５１に格納された２つ前までに入力されたメークコードと同じキーに対応する場合には（ステップＡ４のＹＥＳルート参照）、判断部１３は、これらのメークコード及びブレークコードをスキャナ１０６からの入力と判断する。
ステップＡ５において、判断部１３は、ＴＭＰバッファ１５に格納されているブレークコードと一致するメークコード以外のコードをＫＢバッファ１６に移動する。【００５１】
そして、ステップＡ６において、キーコード処理部１０１は、ＴＭＰバッファ１５に残されているメークコードをＣＰＵ１０に通知する。
ステップＡ７において、キーコード処理部１０１は、ＣＰＵ１０に通知したメークコードをＴＭＰバッファからリタイアさせる。
ステップＡ８において、キーコード処理部１０１は、入力されたブレークコード（ステップＡ１においてブレークコードと判断されたブレークコード：break）をＣＰＵ１０に通知する。【００５２】
これらの処理により、図６において、“Ｆ”，“Ａ”，“Ｉ”，“Ｔ”，“Ｐ”の各ブレークコードが入力されると、“Ｆ”，“Ａ”，“Ｉ”，“Ｔ”，“Ｐ”の各メークコード及びブレークコードが、ＣＰＵ１０に通知される。なお図６の“（廃棄）”の表現は、オプション動作としてキーボードからのキーコードを保存せず、スキャナのコードと区別して廃棄する場合の例を示す。【００５３】
一方、入力されたブレークコードが、ＴＭＰバッファ１５の領域１５１に格納された２つ前までに入力されたメークコードのいずれにも対応しない場合には（ステップＡ４のＮＯルート参照）、ステップＡ９において、そのブレークコードをＴＭＰバッファ１５のブレークバッファ１５２に保存する。図６に示す例においては、“Ａ”のブレークコードが入力されると、この“Ａ”のブレークコードがＴＭＰバッファ１５のブレークバッファ１５２に格納されている。その後、処理を終了する。【００５４】
また、タイマ１１が、ステップＡ３において開始した第２間隔ｔの計時を完了すると、タイマ割込みが生成され、ステップＡ１０において、ＫＢバッファ１６のメークバッファ１６１及びブレークバッファ１６２のキーコードが、ＣＰＵ１０に通知される。図６に示す例においては、“ｘ”のメークコードが入力された後に、第２間隔ｔの計時が完了してタイマ割込みが行なわれ、ＫＢバッファ１６に格納された“ｘ”のメークコードが通知されている。【００５５】
このように、実施形態の一例としての情報処理装置１によれば、入力装置としてスキャナ１０６とキーボード１０５とを備え、これらを併用する場合において、これらの入力を切り分けることができる。
すなわち、確認部１２が、入力されたブレークコードと対を成すメークコードが、２つ前までに受信したメークコード内に存在することを確認すると、判断部１３が、これらのメークコード及びブレークコードをスキャナ１０６からの入力と判断する。【００５６】
また、メークコードが入力されてからタイマ１１による第２間隔ｔが計時されるまでに、そのメークコードと対を成す、すなわち同一のキーにかかるブレークコードを受信すると、判断部１３が、これらのメークコード及びブレークコードをスキャナ１０６からの入力と判断する。
さらに、タイマ１１から割り込み信号が入力されると、判断部１３は、ＴＭＰバッファ１５に残されたコードを、キーボード１０５から入力されたものであると判断する。すなわち、判断部１３は、メークコードが入力されてからタイマ１１による第２間隔ｔが計時されると、その受信したメークコードをキーボード１０５からの入力と判断する。【００５７】
これらにより、例えば、スキャナ１０６からキーコードを入力している途中にキーボード１０５からキー入力が行なわれても、スキャナ１０６から入力されるキーコードの処理を確実に行なうことができ、信頼性を向上させることができる。又、キーボード１０５とスキャナ１０６とを共用することができ利便性が高い。
また、この際、スキャナ１０６とキーボード１０５とで共通のキーコードを使用することができ、利便性が高い。例えば、キーボード１０５のコード体系をそのまま使っていた従来のアプリケーションをそのまま使うことが出来、入力データをアプリケーションに中継する（パイプ）ための新たなプログラム等を作成する必要がない。これにより、経済的であるという効果も奏することができる。【００５８】
さらに、タイマ１１が検知する第２間隔ｔが、スキャナ１０６から出力される対を成すメークコードとブレークコードとのとの間隔である第１間隔Ｔよりも長い。これにより、タイマ１１がメークコードが入力されてから第２間隔ｔの経過を検知した場合に、そのメークコードがキーボード１０５からの入力であると判断することができる。
さて、前述の如く、本情報処理装置１においては、キーボードコントローラ１０７を用いたレガシィキーボードエミュレーションを実現している。【００５９】
一般に、レガシィキーボードエミュレーションとしては二つの実現方法が知られている。第１の実現方法としては、図１に示したような、キーボードコントローラ１０７を用いる手法である。キーボードコントローラ１０７は、ＡＴ互換機で伝統的に使われて来たi8042(UPI)チップと互換の回路を備え、この回路を使ってＵＳＢキーボやマウスから得られたデータを中継入力する方法である。【００６０】
第２の実現方法としては、キーボードコントローラのハードウェアは備えず、チップセットの持つレガシィキーボードエミュレーションアシストのハードウェアを使って行なう方法である。
ところで、近年のＰＣには、当初のＩＢＭ社PC/ATとのハードウェア互換を保った機器構成を有するものと、レガシィフリーと呼ぶ、PS/2キーボードやマウス、COMポート、パラレルポートなどのインタフェースを備えないものとがある。【００６１】
レガシィフリーのＰＣではこれらのインタフェース（レガシィインタフェース）の代替として、種々の機器に共通のＵＳＢインタフェースが用いられる。そして、このＵＳＢインタフェースにレガシィのインタフェースを使った従来の機器と同等の機能を有する機器を接続することで、従来通りの機能が提供される。
この場合においても、それら機器を使ったアプリケーションソフトウェアの書き換えは通常は不要である。これはアプリケーションソフトウェアとハードウェアとの間で両者のやりとりを介在するデバイスドライバがＵＳＢインタフェースをレガシィのインタフェースに見せかけるエミュレーションを行なうからである。【００６２】
しかしながら、キーボードやマウス等、一般にブートデバイスと呼ばれるデバイスは、ＯＳの立ち上げ作業の段階で元々必要とされる。従って、これらのデバイスに関しては、ＯＳの配下のデバイスドライバによるエミュレートはそもそも期待出来ず、インタフェース回路のレベルでの互換が求められる。
レガシィキーボードエミュレーションとは、このインタフェース回路レベルでの互換を維持するためのエミュレーションを指し、キーボードコントローラやチップセットのレガシィエミュレーションのハードウェアとＢＩＯＳのソフトウェアによって実現される。【００６３】
キーボードコントローラの回路は独立したキーボードマイコンとしてＰＣに実装される場合と、Super IO （ＳＩＯ）やメガセルと呼ばれる、COMやパラレルのレガシィなインフェースとにまとめたチップとして実装される場合がある。
一般にモバイルＰＣでは、電池駆動を行ない、それの充電制御や電源、表示入力制御にＰＣ毎にユニークな制御が必要とされる。そのため、制御の要として柔軟な対応の可能な何らかのマイコンが必要とされている。ＡＴ互換機のキーボードコントローラは元々、内部にＣＰＵを備えたある種のマイコンである8042のファームウェアによって実現されている。そのため、モバイルＰＣではキーボードコントローラ本来のコードに追加する形でＰＣ毎のユニークな制御のためのコードを盛り込んで制御を実現出来る。【００６４】
このためモバイルＰＣではキーボードマイコンとして独立して実装する場合が多い。又、キーボードコントローラのインタフェース回路を、キーボードやマウスからのデータ入力以外の、何らかの制御の目的に使用することは、Windows（登録商標）システムのベースである、Advanced Power and Configuration Interface （ACPI）仕様の実装でも想定されている。ACPIでは、それの仕様によって実現される、例えば明るさセンサなど、諸機能のハードウェア制御機能を実装したキーボードコントローラのことをEmbedded Controller （EC）と呼ぶ。【００６５】
キーボードコントローラとレガシィエミュレーションアシストのハードウェアとのどちらを使うにしても、それによってソフトウェアからは従来のキーボード/マウスのインタフェース回路として見えることは変わらない。すなわち、キーボードコントローラとレガシィエミュレーションアシストのハードウェアとのどちらを用いてもよく、どちらを用いるかで本発明の効果に影響を与えるものでは無い。【００６６】
次に、実施形態の一例としての情報処理装置１において、ＤＯＳのデバイスドライバ（ドライバ）でレガシィキーボードエミュレーションを実現する例を、図７〜図９に示すフローチャートに従って説明する。なお、図７はＯＳからコールされた処理を説明するフローチャート（ステップＢ１〜Ｂ４）、図８はIRQ1の割込み発生時の処理を説明するフローチャート（ステップＢ５）、図９はIRQ0の割込み発生時の処理を説明するフローチャート（ステップＢ６〜Ｂ１０）である。【００６７】
ＤＯＳのドライバのＯＳからコールされるエントリポイントには、ステラテジィルーチン、割り込みルーチンの２つがある。ステラテジィルーチンとは、ＯＳがデータのリードやライト、コントロールなどに際してドライバをコールしたときに渡されるリクエストパケットのアドレスをドライバに渡すためのものである。ドライバはこのルーチンがコールされると、ＣＰＵ１０のレジスタ（ES、BX）にセットされたアドレスを自身に保存する（ステップＢ１）。【００６８】
ドライバの割り込みルーチンとはハードウェア割り込みのことでは無く、ドライバに対するリクエストを処理するためのルーチンのことで、ＯＳは、リードやライト，コントロール等のリクエストは、全てこのルーチンをコールする。
ＯＳからの最初にデバイスに対して行なわれるリクエストは、INITと呼ばれる、デバイスやドライバの初期化を要求するためのリクエストである。なお、リクエストがINITであることはリクエストがコールされたときのリクエストパケットに示されている。【００６９】
本情報処理装置１においては、キー入力処理とタイマ処理との２つの処理を行なうものであり、図７〜図９においては、キー入力に使われるIRQ1（INT9）と、タイマ割り込みのIRQ0（INT8）とを使う例を示している。
一方、割込みルーチンがコールされると、ドライバはINITのリクエストであるか否かを確認する（ステップＢ２）。INITのリクエストである場合には（ステップＢ２のＹＥＳルート参照）、ドライバは、タイマ１１の処理変更を行なうため、ベクタテーブルのINT8のアドレスを控え、同様に自身のタイマ処理プログラムに書き換える（ステップＢ３）。【００７０】
また、ドライバはINITのリクエストによって、キー入力の処理変更を行なうため、割り込みベクタテーブルのINT9のアドレスを控え、それに替えて自身のキー入力処理のプログラムのアドレスに書き込む（ステップＢ４）。これらの割り込み処理プログラムを書き換え、自身のプログラムが処理される様にすることをフックと言い、フックはドライバの階層構造を実現する基本的なＯＳの仕組みとして知られている。なお、これらのステップＢ３，Ｂ４の処理順序はこれに限定されるものではなく、ステップＢ４の後にステップＢ３を行なったり、又、これらのステップＢ３とステップＢ４とを同時に行なってもよく、種々変形して実施することができる。【００７１】
INT9の控えられたアドレスは、IRQ1のキー入力処理や、IRQ0のタイマ処理で、キー入力の判定の結果によって、ＯＳにメーク、ブレークのコードを渡すときのコール先として使われる。またこのデータを渡すときは、キーボードコントローラ１０７のエコーバックの機能を使用する。ドライバは、これらのステップＢ３，Ｂ４を行なった後、処理を終了しＯＳに戻る。【００７２】
また、ドライバはデバイスとしてＯＳとデータをやり取りする必要は無い。このため、INIT以外にリクエストの処理は必要無い。すなわち、INITのリクエストではない場合には（ステップＢ２のＮＯルート参照）、これ以外のリクエストに関しては何もせずＯＳに戻る。
ドライバがロードされ、INITが実行されると、それ以降は、図８に示すように、IRQ1のキー入力の割り込みが起こるたび、ステップＢ５において、フックした本発明のキー入力の処理のプログラムが実行される。すなわち、図５に示した処理が行なわれる。キー入力処理でメークコードが入力されることにより、タイマ１１が起動されるときには、フラグａを“１”とした後、処理ルーチンから戻る（iret）。【００７３】
一方、フックした本発明の割り込み処理ルーチンは、図９に示すように、IRQ0(10ms)のインターバルタイマのたびに実行される。
ステップＢ６において、フラグａを確認する。このフラグａが“１”であれば（ステップＢ６のＹＥＳルート参照）、タイマ１１の起動状態を認識する。次に、ステップＢ７において、フラグｂを確認する。フラグＢが“０”であれば（ステップＢ７のＮＯルート参照）、ステップＢ８において、フラグｂを“１”にトグルし（ステップＢ８）、処理を終了する（ネスト）。【００７４】
一方、フラグＢが“１”である場合には（ステップＢ７のＹＥＳルート参照）、ステップＢ９において、図５に示した、タイマ割込み時の処理（ステップＡ１０参照）を実行する。このタイマ割込み時の処理を終えると、ステップＢ１０において、フラグａ，フラグｂをクリアして、処理を終了する（ネスト）。
なお、前述の如く、本実施携帯においては、擬似キーボードのメ(イ)―クコード／ブレークコードのペアの文字入力の間隔を10ms以内であることを想定している。そして、フラグbの１の期間はタイマ割り込みの１回のインターバルである10msの間隔を示す。【００７５】
（Ｂ）変形例
上述した実施形態においては、キー入力をレシィキーボードエミュレーションで行なう例について示したが、これに限定されるものではなく、種々変形して実施することができる。例えば、キー入力をＵＳＢ本来の形で行なってもよい。
図１０は実施形態の一例としての情報処理装置１の構成の変形例を示す図である。この図１０に示す例においては、ＵＳＢキーボード１０５ａと、このＵＳＢキーボード１０５ａを模して入力を行なう擬似キーボードであるＵＳＢスキャナ１０６ａとを備える情報処理装置１の構成を示す。【００７６】
すなわち、図１０に示す例においては、レガシィキーボードエミュレーションを使わずに、ＵＳＢインタフェースのままで本発明を実施する。なお、ＵＳＢのままのインタフェースによって機器を活用するのに好適なＯＳとしてWindowsを想定している。
図１０に示す情報処理装置１は、ＣＰＵ１０，ＲＡＭ１０２，ＰＣＨ１０４ａ，キーボード１０５ａ及びスキャナ（入力装置）１０６ａを備える。又、本情報処理装置１は、図示しないＲＯＭやディスプレイ，ポインティングデバイス等も備える。【００７７】
なお、図中、既述の符号と同一の符号は同様の部分を示しているので、その説明は省略する。
ＰＣＨ１０４ａは、ＣＰＵ１０と周辺機器とのインタフェースを担う。ＰＣＨ１０４ａは、Enhanced Host Controller Interface（ＥＨＣＩ）１０４１及びRate Matching Hub（ＲＭＨ）１０４２を備える。ＥＨＣＩ１０４１及びＲＭＨ１０４２は、ＰＣＨ１０４ａのチップセット内部のＵＳＢインタフェース制御のための回路である。ＥＨＣＩ１０４１は、内部システムバスに接続され、図示しないバスマスタＤＭＡによってＲＡＭ１０２上のフレームリストからＵＳＢのスキャンスケジュールを周期的に読み出す。ＥＨＣＩ１０４１は、ＵＳＢインタフェースに接続されたデバイスにコマンドを発行し、デバイスとＲＡＭ１０２上のバッファのデータを読み書きする、ＵＳＢのハイスピードと呼ぶ転送モードを実現する。【００７８】
ＲＭＨ１０４２は、ＥＨＣＩ１０４１のハイスピードの１ポートを複数ポートに拡張するハブである。図１０に示す例では、ＲＭＨ１０４２は、４ポートに拡張している。
ＲＭＨ１０４２は、そのポートに接続されたＵＳＢデバイスの、ロウスピード（1.5Mbps），フルスピード（12Mbps）及びハイスピード（480Mbps）の全てのモードに対応する。ＲＭＨ１０４２は、そのインタフェースを全てＥＨＣＩ１０４１のサポートするハイスピードに変換して、つまりＥＨＣＩ１０４１のサポートする転送レートにレートマッチングしてやりとりし、ＵＳＢデバイスとのパケットの仲介を行なう。【００７９】
キーボード１０５ａやスキャナ１０６ａのクラスのＵＳＢデバイスは、ＵＳＢの仕様上のロウスピードのデバイスに位置付けられている。以下、ロウスピードのモードを前提として説明を行なう。
なお、図１０に示す例では、便宜上、キーボード１０５ａ側だけにスケジュール情報の流れとデータの流れを示しているが、スキャナ１０６ａ側にも同様の流れがある。【００８０】
図１１は図１０に示す情報処理装置１によって実現されるＵＳＢインタフェースのスキャンタイミングを示す図である。
ロウスピードのデバイスに対しては、ＲＭＨ１０４２は１msの周期のフレームマーカー信号を発行し続けて、バスのアイソクロナス転送の周期を通知する。キーボード１０５ａやスキャナ１０６ａ等のマンマシン系入力機器は、割り込み入力的性格を有する。そのため、ＵＳＢの仕組みでは、入力があるかどうかを常にポーリング（スキャン）してデータの入力を待ち、データがあればそれを引き取る、ある種のアイソクロナス転送のモードによって入力を行なう必要がある。又、そのポーリングの周期はデバイスからの情報によってソフトウェアに予め認識される。【００８１】
図１１においては、キーボード１０５ａ及びスキャナ１０６ａのどちらのデバイスも、１msのフレームマーカー３つ分の、３msのポーリング周期を指定している例を示す。又、このポーリングとは、デバイスがキーボード１０５ａとスキャナ１０６ａとのどちらも入力デバイスであるため、ＩＮのトークンパケット発行の意味になる。
ＲＡＭ１０２上のフレームリストには、ＩＮのパケットを３ms間隔で発行することや、データが入力された場合のバッファのアドレスが示される。ＥＨＣＩ１０４１は、フレームマーカーの周期でこれを読み出し、パケットを発行する。又、データが得られるとそれを指定のバッファに格納する。【００８２】
キーボード１０５ａやスキャナ１０６ａのデバイスとＲＭＨ１０４２のＵＳＢホストとのやりとりは、キーボード１０５ａやスキャナ１０６ａからの入力が無ければＩＮのパケットに対してNACKが返され、入力があるとDATAのパケットが返される。
図１１においては、キーボード１０５ａのキーマトリクスのスキャンは２０msの周期で行なわれている例を示す。又、キーボード１０５ａからの入力を通知するフォーマットはキーボードクラス仕様で決められている。【００８３】
図１２はキーボード１０５ａからの入力を通知するデータのフォーマットを示す図である。
ＵＳＢインタフェース上での キーボード１０５ａのデータは、キー押下が発生すると、そのスキャンコードをキーが押されている間中返し続ける。すなわち、メーク、ブレークの変換時点でのみメークコードもしくはブレークコードを通知するPS/2キーボードのスタイルとは異なる。【００８４】
図１２に示すように、ShiftキーやControlキーのような、文字キーとの同時押下で使われる修飾キー（モディファイアキー）のデータとしてフラグ形式で通知されるキーを除くと、ＵＳＢのインタフェースでは６キー分までのキーのスキャンコードの通知を行なうことができる。この入力方法は、スキャナ１０６ａが疑似キーボードとしての体裁をとっているため、スキャナ１０６ａに於いても同様である。【００８５】
キー情報がＲＡＭ１０２に取り込まれると、ＯＳのデバイスドライバによって、PS/2のキーボードと同様に、メーク（（Keyup）KeyDownイベント）、ブレーク（(Keydown)KeyUpイベント）時点に限定してアプリケーションソフトウェアにイベント通知され、それに利用される。
キーボード１０５ａやスキャナ１０６ａからのキー情報の入力はＵＳＢのポーリングのスキャンによって取り込まれる点を除けば、PS/2キーボードのキーボードコントローラを介した文字コード入力と根本的に変わらないし、このことがレガシィキーボード実現の条件になっている。【００８６】
従って、図１０に示した情報処理装置１においても、図１に示した情報処理装置１と同様の方法で、キーボード１０５ａからのキーコードとスキャナ１０６ａからのキーコードとのふるい分けを、アプリケーションソフトウェアとＵＳＢデバイスドライバの間で行なうことができ、又、これにより同様の効果を奏することができることは言うまでもない。
なお、上述した実施形態に関わらず、本発明の趣旨を逸脱しない範囲で種々変形して実施することができる。【００８７】
例えば、上述した実施形態及び変形例においては、入力装置としてスキャナ１０６，１０６ａを備えているが、これに限定されるものではなく、例えば、磁気カード等の情報を読み取る磁気スキャナ（磁気カードスキャナ）等、種々変形して実施することができる。
なお、本発明の各実施形態が開示されていれば、本発明を当業者によって実施・製造することが可能である。
【符号の説明】
【００８８】
１    情報処理装置，ＰＣ
１０    ＣＰＵ
１１    タイマ
１２    確認部
１３    判断部
１５    ＴＭＰバッファ
１６    ＫＢバッファ
１０１    キーコード処理部
１０２    ＲＡＭ
１０３    ＲＯＭ
１０４，１０４ａ    ＰＣＨ
１０５，１０５ａ    キーボード
１０６，１０６ａ    スキャナ
１０７    キーボードコントローラ
１０８    ディスプレイ
１５１，１５２    領域
１６１    メークバッファ
１６２    ブレークバッファ
１０４１    ＥＨＣＩ
１０４２    ＲＭＨ
【図１】
2014020696.tif 000003
【図２】
2014020696.tif 000004
【図３】
2014020696.tif 000005
【図４】
2014020696.tif 000006
【図５】
2014020696.tif 000007
【図６】
2014020696.tif 000008
【図７】
2014020696.tif 000009
【図８】
2014020696.tif 000010
【図９】
2014020696.tif 000011
【図１０】
2014020696.tif 000012
【図１１】
2014020696.tif 000013
【図１２】
2014020696.tif 000014
【手続補正書】
【提出日】平成26年9月25日(2014.9.25)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
１つのキーの押下げ時点で発生されるメークコードと、該キーの解放時点で発生され、該メークコードと一定の関係を有するブレークコードとを対で出力するキーボードと、前記メークコードと前記ブレークコードとを第１間隔で対を成して出力する入力装置とが接続されるインタフェースと、
メークコードが入力されると、前記第１間隔よりも長い第２間隔を計時するタイマと、
前記メークコードが入力されてから前記タイマによる前記第２間隔が計時されると、前記メークコードを前記キーボードからの入力と判断する判断部と、
をそなえることを特徴とする情報処理装置。
【請求項２】
前記判断部が、
前記メークコードが入力されてから前記タイマによる前記第２間隔が計時されるまでに、当該メークコードと対を成すブレークコードを受信すると、前記メークコード及びブレークコードを前記入力装置からの入力と判断する、
ことを特徴とする請求項１記載の情報処理装置。
【請求項３】
１つのキーの押下げ時点で発生されるメークコードと、該キーの解放時点で発生され、該メークコードと一定の関係を有するブレークコードとを対で出力するキーボードと、前記メークコードと前記ブレークコードとを第１間隔で対を成して出力する入力装置とが接続されるインタフェースと、
入力されたメークコードを少なくとも２つ格納する格納部と、
ブレークコードが入力されると、前記格納部において、２つ前までに受信した前記メークコードにおいて、入力された当該ブレークコードと対を成すメークコードが存在するかを確認する確認部と、
前記確認部により、前記２つ前までに受信したメークコードにおいて、前記入力されたブレークコードと対を成すメークコードが存在することを確認されると、当該メークコード及びブレークコードを前記入力装置からの入力と判断する判断部と、
をそなえることを特徴とする情報処理装置。
【請求項４】
前記判断部が、前記確認部により、前記２つ前までに受信したメークコードにおいて、前記入力されたブレークコードと対を成すメークコードが存在しないことを確認されると、当該メークコード及びブレークコードを前記キーボードからの入力と判断する判断部と、
をそなえることを特徴とする、請求項３記載の情報処理装置。
【請求項５】
１つのキーの押下げ時点で発生されるメークコードと、該キーの解放時点で発生され、該メークコードと一定の関係を有するブレークコードとを対で出力するキーボードと、前記メークコードと前記ブレークコードとを第１間隔で対を成して出力する入力装置とが接続されるインタフェースをそなえる情報処理装置における入力処理方法であって、
メークコードが入力されると、前記第１間隔よりも長い第２間隔の計時を開始するステップと、
前記メークコードが入力されてから前記第２間隔が計時されると、前記メークコードを前記キーボードからの入力と判断するステップと、
をそなえることを特徴とする入力処理方法。
【請求項６】
前記メークコードが入力されてから前記第２間隔が計時されるまでに、当該メークコードと対を成すブレークコードを受信すると、前記メークコード及びブレークコードを前記入力装置からの入力と判断する、
ことを特徴とする請求項５記載の入力処理方法。
【請求項７】
１つのキーの押下げ時点で発生されるメークコードと、該キーの解放時点で発生され、該メークコードと一定の関係を有するブレークコードとを対で出力するキーボードと、前記メークコードと前記ブレークコードとを第１間隔で対を成して出力する入力装置とが接続されるインタフェースをそなえる情報処理装置における入力処理方法であって、
入力されたメークコードを格納部に格納するステップと、
ブレークコードが入力されると、前記格納部において、２つ前までに受信した前記メークコードにおいて、入力された当該ブレークコードと対を成すメークコードが存在するかを確認するステップと、
前記２つ前までに受信したメークコードにおいて、前記入力されたブレークコードと対を成すメークコードが存在することを確認されると、当該メークコード及びブレークコードを前記入力装置からの入力と判断するステップと、
をそなえることを特徴とする入力処理方法。
【請求項８】
前記２つ前までに受信したメークコードにおいて、前記入力されたブレークコードと対を成すメークコードが存在しないことを確認されると、当該メークコード及びブレークコードを前記キーボードからの入力と判断するステップと、
をそなえることを特徴とする請求項７記載の入力処理方法。
【請求項９】
１つのキーの押下げ時点で発生されるメークコードと、該キーの解放時点で発生され、該メークコードと一定の関係を有するブレークコードとを対で出力するキーボードと、前記メークコードと前記ブレークコードとを第１間隔で対を成して出力する入力装置とが接続されるインタフェースをそなえるコンピュータに、
メークコードが入力されると、前記第１間隔よりも長い第２間隔の計時を開始し、
前記メークコードが入力されてから前記第２間隔が計時されると、前記メークコードを前記キーボードからの入力と判断する、
処理を実行させることを特徴とする入力処理プログラム。
【請求項１０】
前記メークコードが入力されてから前記第２間隔が計時されるまでに、当該メークコードと対を成すブレークコードを受信すると、前記メークコード及びブレークコードを前記入力装置からの入力と判断する、
処理を前記コンピュータに実行させることを特徴とする請求項９記載の入力処理プログラム。
【請求項１１】
１つのキーの押下げ時点で発生されるメークコードと、該キーの解放時点で発生され、該メークコードと一定の関係を有するブレークコードとを対で出力するキーボードと、前記メークコードと前記ブレークコードとを第１間隔で対を成して出力する入力装置とが接続されるインタフェースをそなえるコンピュータに、
入力されたメークコードを格納部に格納し、
ブレークコードが入力されると、前記格納部において、２つ前までに受信した前記メークコードにおいて、入力された当該ブレークコードと対を成すメークコードが存在するかを確認し、
前記２つ前までに受信したメークコードにおいて、前記入力されたブレークコードと対を成すメークコードが存在することを確認されると、当該メークコード及びブレークコードを前記入力装置からの入力と判断する、
処理を実行させる入力処理プログラム。
【請求項１２】
前記２つ前までに受信したメークコードにおいて、前記入力されたブレークコードと対を成すメークコードが存在しないことを確認されると、当該メークコード及びブレークコードを前記キーボードからの入力と判断する、
処理を前記コンピュータに実行させることを特徴とする請求項１１記載の入力処理プログラム。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】００１５
【補正方法】変更
【補正の内容】
【００１５】
さらに、本発明に関連するコンピュータ読取可能な記録媒体は、上述した入力処理プログラムを記録したものである。
【手続補正３】
【補正対象書類名】明細書
【補正対象項目名】００８７
【補正方法】変更
【補正の内容】
【００８７】
例えば、上述した実施形態及び変形例においては、入力装置としてスキャナ１０６，１０６ａを備えているが、これに限定されるものではなく、例えば、磁気カード等の情報を読み取る磁気スキャナ（磁気カードスキャナ）等、種々変形して実施することができる。
なお、本発明の各実施形態が開示されていれば、本発明を当業者によって実施・製造することが可能である。
（付記１）
１つのキーの押下げ時点で発生されるメークコードと、該キーの解放時点で発生され、該メークコードと一定の関係を有するブレークコードとを対で出力するキーボードと、前記メークコードと前記ブレークコードとを第１間隔で対を成して出力する入力装置とが接続されるインタフェースと、
メークコードが入力されると、前記第１間隔よりも長い第２間隔を計時するタイマと、
前記メークコードが入力されてから前記タイマによる前記第２間隔が計時されると、前記メークコードを前記キーボードからの入力と判断する判断部と、
をそなえることを特徴とする情報処理装置。
（付記２）
前記判断部が、
前記メークコードが入力されてから前記タイマによる前記第２間隔が計時されるまでに、当該メークコードと対を成すブレークコードを受信すると、前記メークコード及びブレークコードを前記入力装置からの入力と判断する、
ことを特徴とする付記１記載の情報処理装置。
（付記３）
１つのキーの押下げ時点で発生されるメークコードと、該キーの解放時点で発生され、該メークコードと一定の関係を有するブレークコードとを対で出力するキーボードと、前記メークコードと前記ブレークコードとを第１間隔で対を成して出力する入力装置とが接続されるインタフェースと、
入力されたメークコードを少なくとも２つ格納する格納部と、
ブレークコードが入力されると、前記格納部において、２つ前までに受信した前記メークコードにおいて、入力された当該ブレークコードと対を成すメークコードが存在するかを確認する確認部と、
前記確認部により、前記２つ前までに受信したメークコードにおいて、前記入力されたブレークコードと対を成すメークコードが存在することを確認されると、当該メークコード及びブレークコードを前記入力装置からの入力と判断する判断部と、
をそなえることを特徴とする情報処理装置。
（付記４）
前記判断部が、前記確認部により、前記２つ前までに受信したメークコードにおいて、前記入力されたブレークコードと対を成すメークコードが存在しないことを確認されると、当該メークコード及びブレークコードを前記キーボードからの入力と判断する判断部と、
をそなえることを特徴とする、付記３記載の情報処理装置。
（付記５）
１つのキーの押下げ時点で発生されるメークコードと、該キーの解放時点で発生され、該メークコードと一定の関係を有するブレークコードとを対で出力するキーボードと、前記メークコードと前記ブレークコードとを第１間隔で対を成して出力する入力装置とが接続されるインタフェースをそなえる情報処理装置における入力処理方法であって、
メークコードが入力されると、前記第１間隔よりも長い第２間隔の計時を開始するステップと、
前記メークコードが入力されてから前記第２間隔が計時されると、前記メークコードを前記キーボードからの入力と判断するステップと、
をそなえることを特徴とする入力処理方法。
（付記６）
前記メークコードが入力されてから前記第２間隔が計時されるまでに、当該メークコードと対を成すブレークコードを受信すると、前記メークコード及びブレークコードを前記入力装置からの入力と判断する、
ことを特徴とする付記５記載の入力処理方法。
（付記７）
１つのキーの押下げ時点で発生されるメークコードと、該キーの解放時点で発生され、該メークコードと一定の関係を有するブレークコードとを対で出力するキーボードと、前記メークコードと前記ブレークコードとを第１間隔で対を成して出力する入力装置とが接続されるインタフェースをそなえる情報処理装置における入力処理方法であって、
入力されたメークコードを格納部に格納するステップと、
ブレークコードが入力されると、前記格納部において、２つ前までに受信した前記メークコードにおいて、入力された当該ブレークコードと対を成すメークコードが存在するかを確認するステップと、
前記２つ前までに受信したメークコードにおいて、前記入力されたブレークコードと対を成すメークコードが存在することを確認されると、当該メークコード及びブレークコードを前記入力装置からの入力と判断するステップと、
をそなえることを特徴とする入力処理方法。
（付記８）
前記２つ前までに受信したメークコードにおいて、前記入力されたブレークコードと対を成すメークコードが存在しないことを確認されると、当該メークコード及びブレークコードを前記キーボードからの入力と判断するステップと、
をそなえることを特徴とする付記７記載の入力処理方法。
（付記９）
１つのキーの押下げ時点で発生されるメークコードと、該キーの解放時点で発生され、該メークコードと一定の関係を有するブレークコードとを対で出力するキーボードと、前記メークコードと前記ブレークコードとを第１間隔で対を成して出力する入力装置とが接続されるインタフェースをそなえるコンピュータに、
メークコードが入力されると、前記第１間隔よりも長い第２間隔の計時を開始し、
前記メークコードが入力されてから前記第２間隔が計時されると、前記メークコードを前記キーボードからの入力と判断する、
処理を実行させることを特徴とする入力処理プログラム。
（付記１０）
前記メークコードが入力されてから前記第２間隔が計時されるまでに、当該メークコードと対を成すブレークコードを受信すると、前記メークコード及びブレークコードを前記入力装置からの入力と判断する、
処理を前記コンピュータに実行させることを特徴とする付記９記載の入力処理プログラム。
（付記１１）
１つのキーの押下げ時点で発生されるメークコードと、該キーの解放時点で発生され、該メークコードと一定の関係を有するブレークコードとを対で出力するキーボードと、前記メークコードと前記ブレークコードとを第１間隔で対を成して出力する入力装置とが接続されるインタフェースをそなえるコンピュータに、
入力されたメークコードを格納部に格納し、
ブレークコードが入力されると、前記格納部において、２つ前までに受信した前記メークコードにおいて、入力された当該ブレークコードと対を成すメークコードが存在するかを確認し、
前記２つ前までに受信したメークコードにおいて、前記入力されたブレークコードと対を成すメークコードが存在することを確認されると、当該メークコード及びブレークコードを前記入力装置からの入力と判断する、
処理を実行させる入力処理プログラム。
（付記１２）
前記２つ前までに受信したメークコードにおいて、前記入力されたブレークコードと対を成すメークコードが存在しないことを確認されると、当該メークコード及びブレークコードを前記キーボードからの入力と判断する、
処理を前記コンピュータに実行させることを特徴とする付記１１記載の入力処理プログラム。
（付記１３）
１つのキーの押下げ時点で発生されるメークコードと、該キーの解放時点で発生され、該メークコードと一定の関係を有するブレークコードとを対で出力するキーボードと、前記メークコードと前記ブレークコードとを第１間隔で対を成して出力する入力装置とが接続されるインタフェースをそなえるコンピュータに、
メークコードが入力されると、前記第１間隔よりも長い第２間隔の計時を開始し、
前記メークコードが入力されてから前記第２間隔が計時されると、前記メークコードを前記キーボードからの入力と判断する、
処理を実行させる入力処理プログラムを記録したコンピュータ読取可能な記録媒体。
（付記１４）
前記メークコードが入力されてから前記第２間隔が計時されるまでに、当該メークコードと対を成すブレークコードを受信すると、前記メークコード及びブレークコードを前記入力装置からの入力と判断する、
処理を前記コンピュータに実行させることを特徴とする付記１３記載の入力処理プログラムを記録したコンピュータ読取可能な記録媒体。
（付記１５）
１つのキーの押下げ時点で発生されるメークコードと、該キーの解放時点で発生され、該メークコードと一定の関係を有するブレークコードとを対で出力するキーボードと、前記メークコードと前記ブレークコードとを第１間隔で対を成して出力する入力装置とが接続されるインタフェースをそなえるコンピュータに、
入力されたメークコードを格納部に格納し、
ブレークコードが入力されると、前記格納部において、２つ前までに受信した前記メークコードにおいて、入力された当該ブレークコードと対を成すメークコードが存在するかを確認し、
前記２つ前までに受信したメークコードにおいて、前記入力されたブレークコードと対を成すメークコードが存在することを確認されると、当該メークコード及びブレークコードを前記入力装置からの入力と判断する、
処理を実行させる入力処理プログラムを記録したコンピュータ読取可能な記録媒体。
（付記１６）
前記２つ前までに受信したメークコードにおいて、前記入力されたブレークコードと対を成すメークコードが存在しないことを確認されると、当該メークコード及びブレークコードを前記キーボードからの入力と判断する、
処理を前記コンピュータに実行させることを特徴とする付記１５記載の入力処理プログラムを記録したコンピュータ読取可能な記録媒体。
【国際調査報告】
2014020696.tif 000015
2014020696.tif 000016