(57)【特許請求の範囲】
【請求項１】
複数のエミュレーションプログラムを有する印刷装置であって、
前記各エミュレーションプログラムの特徴的なコマンドを含む複数のコマンドを前記各エミュレーションプログラムと対応してテーブルとして登録する登録手段と、
入力された印刷データと、前記登録手段により登録された特徴的なコマンドとを照合し、前記印刷データに含まれるコマンドと、前記登録手段が登録した特徴的なコマンドとにおいて少なくとも１組が一致すれば、前記登録手段が登録した前記特徴的なコマンドと対応するエミュレーションプログラムに適合すると判定する第１判定手段と、
前記第１判定手段により適合するエミュレーションプログラムが判定されなかった場合に、前記印刷データに含まれるコマンドと最も多く一致した前記テーブルに含まれるコマンドに対応するエミュレーションプログラムを適合するエミュレーションプログラムであると判定する第２判定手段と、
前記第１判定手段又は第２判定手段により判定されたエミュレーションプログラムを実行して印刷出力する印刷制御手段とを備え、
前記テーブルは、入力されたデータに同一の意味を持つコマンドが複数存在した時に、該入力されたデータに係るコマンドを所定の同一の意味を持つコマンドに置き換えるためのコマンド置き換えテーブルを含むことを特徴とすることを特徴とする印刷装置。
【請求項２】
前記印刷制御手段は、前記第２判定手段における処理において、前記印刷データが含むコマンドと、テーブル内のコマンドと一致した数が各エミュレーションプログラムにおいて同じ場合又は一つも一致しなかった場合は、予め決められているエミュレーションプログラムを選択して実行することを特徴とする請求項１に記載の印刷装置。
【請求項３】
複数のエミュレーションプログラムを有する印刷制御方法であって、前記各エミュレーションプログラムの特徴的なコマンドを含む複数のコマンドを前記各エミュレーションプログラムと対応してテーブルとして登録する登録工程と、
入力された印刷データと、前記登録手段により登録された特徴的なコマンドとを照合し、前記印刷データに含まれるコマンドと、前記登録工程で登録された特徴的なコマンドにおいて少なくとも１組が一致すれば、前記登録工程で登録された前記特徴的なコマンドと対応するエミュレーションプログラムに適合すると判定する第１判定工程と、
前記第１判定工程により適合するエミュレーションプログラムが判定されなかった場合に、前記印刷データに含まれるコマンドと最も多く一致した前記テーブルに含まれるコマンドに対応するエミュレーションプログラムを適合するエミュレーションプログラムであると判定する第２判定工程と、
前記第１判定工程又は第２判定工程により判定されたエミュレーションプログラムを実行して印刷出力する印刷制御工程とを備え、
前記テーブルは、入力されたデータに同一の意味を持つコマンドが複数存在した時に、該入力されたデータに係るコマンドを所定の同一の意味を持つコマンドに置き換えるためのコマンド置き換えテーブルを含むことを特徴とする印刷制御方法。
【請求項４】
前記印刷制御工程では、前記第２判定工程において、前記印刷データが含むコマンドと、テーブル内のコマンドと一致した数が各エミュレーションプログラムにおいて同じ場合又は一つも一致しなかった場合は、予め決められているエミュレーションプログラムを選択して実行することを特徴とする請求項３に記載の印刷制御方法。
【請求項５】
入力された印刷データを解析して印刷を行う複数のエミュレーションプログラムを備えた印刷装置であって、
複数の異なるコマンドを置き換える置き換え手段と、
コマンドテーブルを用いて特定のコマンドをふくむ複数の所定のコマンドによって前記入力された印刷データ内の特定のコマンドを含む複数の異なるコマンドを置き換える置き換え手段と、
コマンドテーブル内のコマンドを用いて前記置き換え手段によって置き換えられた所定の異なるコマンドを比較する比較手段と、
前記比較手段の比較結果によって、前記コマンドテーブル内の前記コマンドに対応するエミュレーションプログラム複数のエミュレーションプログラムから一つのプログラムを実行する実行手段とを備え、
前記テーブルは、入力されたデータに同一の意味を持つコマンドが複数存在した時に、該入力されたデータに係るコマンドを所定の同一の意味を持つコマンドに置き換えるためのコマンド置き換えテーブルを含むことを特徴とする印刷装置。
【請求項６】
入力された印刷データを解析して印刷を行う複数のエミュレーションプログラムを備えた印刷制御方法であって、
複数の異なるコマンドを置き換える置き換え工程と、
コマンドテーブルを用いて特定のコマンドをふくむ複数の所定のコマンドによって前記入力された印刷データ内の特定のコマンドを含む複数の異なるコマンドを置き換える置き換え工程と、
コマンドテーブル内のコマンドを用いて前記置き換え工程によって置き換えられた所定の異なるコマンドを比較する比較工程と、
前記比較工程の比較結果によって、前記コマンドテーブル内の前記コマンドに対応するエミュレーションプログラム複数のエミュレーションプログラムから一つのプログラムを実行する実行工程とを備え、
前記テーブルは、同一の意味を持つコマンドが複数存在した時に、入力されたデータに係るコマンドを同一の意味を持つコマンドに置き換えるためのコマンド置き換えテーブルを含むことを特徴とする印刷制御方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明は、複数のエミュレーションプログラムを有し、入力されるデータに適合したエミュレーションプログラムを用いて出力を行う印刷装置及びその制御方法に関する。
【０００２】
【従来の技術】
従来、複数のエミュレーションプログラムを有する印刷装置においては、エミュレーションプログラムを切り替える方法として次のような方法がある。
【０００３】
１．印刷データに先だってエミュレーション識別コマンドを入力し、それにしたがって、エミュレーションプログラムを切り替える。
【０００４】
２．受信した印刷データの内の所定量のデータを、各エミュレーションプログラムのコマンドコードと比較してその使用頻度等を計算し、その値に応じてエミュレーションプログラムを切り替える。
【０００５】
【発明が解決しようとする課題】
しかしながら、上記従来例の第１の方法では、あらかじめどのエミュレーションプログラムを用いるかあらかじめ知らなければならないし、第２の方法ではエミュレーションプログラムの判別に多大の時間がかかってしまう。
【０００６】
また、第２の方法では、受信データに含まれる各エミュレーションプログラムが解釈するコマンドを解析するが、解析に用いるコマンドを登録したコマンド解析テーブルを、印刷装置を制御する制御プログラム内に格納してしまうと、あらかじめサポートが決まっているエミュレーションプログラムのみの自動エミュレーション切替機能になってしまい、新たにサポートされるエミュレーションプログラムには対応できない、という欠点があった。
【０００７】
また、エミュレーションによっては、同一な意味を持つコマンドが複数存在することがあり、それらを個々にコマンドテーブルに登録したり、個々に検索することは、エミュレーションプログラムの判別に多大な時間がかかってしまうという欠点があった。
【０００８】
本発明は上記従来例に鑑みてなされたもので、エミュレーションプログラムを入力された印刷データから短時間で判別することができ、さらに、新たなエミュレーションプログラムの追加や、既存のエミュレーションプログラムへのコマンドの追加などに対応できる印刷装置及びその制御方法を提供することを目的とする。
【０００９】
【課題を解決するための手段】
複数のエミュレーションプログラムを有する印刷装置であって、前記各エミュレーションプログラムの特徴的なコマンドを含む複数のコマンドを前記各エミュレーションプログラムと対応してテーブルとして登録する登録手段と、入力された印刷データと、前記登録手段により登録された特徴的なコマンドとを照合し、前記印刷データに含まれるコマンドと、前記登録手段が登録した特徴的なコマンドとにおいて少なくとも１組が一致すれば、前記登録手段が登録した前記特徴的なコマンドと対応するエミュレーションプログラムに適合すると判定する第１判定手段と、前記第１判定手段により適合するエミュレーションプログラムが判定されなかった場合に、前記印刷データに含まれるコマンドと最も多く一致した前記テーブルに含まれるコマンドに対応するエミュレーションプログラムを適合するエミュレーションプログラムであると判定する第２判定手段と、前記第１判定手段又は第２判定手段により判定されたエミュレーションプログラムを実行して印刷出力する印刷制御手段とを備え、前記テーブルは、同一の意味を持つコマンドが複数存在した時に、該コマンドを同一の意味を持つコマンドに置き換えるためのコマンド置き換えテーブルを含むものであることを特徴とする印刷装置、該印刷装置を制御する方法が開示される。
【００１０】
さらに、入力された印刷データを解析して印刷を行う複数のエミュレーションプログラムを備えた印刷装置であって、複数の異なるコマンドを置き換える置き換え手段と、コマンドテーブルを用いて特定のコマンドをふくむ複数の所定のコマンドによって前記入力された印刷データ内の特定のコマンドを含む複数の異なるコマンドを置き換える置き換え手段と、コマンドテーブル内のコマンドを用いて前記置き換え手段によって置き換えられた所定の異なるコマンドを比較する比較手段と、前記比較手段の比較結果によって、前記コマンドテーブル内の前記コマンドに対応するエミュレーションプログラム複数のエミュレーションプログラムから一つのプログラムを実行する実行手段とを備え、前記テーブルは、同一の意味を持つコマンドが複数存在した時に、該コマンドを同一の意味を持つコマンドに置き換えるためのコマンド置き換えテーブルを含むことを特徴とすることを特徴とする印刷装置、及び該印刷装置を制御する方法が開示される。
【００１１】
【作用】
上記構成により、印刷データを、エミュレーションプログラムと対応した特徴情報と照合し、エミュレーションプログラムを判定する。
【００１２】
【実施例】
（第１実施例）
以下、本発明の実施例である印刷装置を、図面を参照して詳細に説明する。
【００１３】
図１は実施例の印刷装置の構成を説明するブロック図である。図において、印刷装置本体１は、データ供給源となるホストコンピュータ２より印刷データを受信する。ＣＰＵ３は印刷装置本体１内のすべてを制御する。入力インターフェース４は、ホストコンピュータ２より送られてくる印刷データを入力する。プログラムＲＯＭ５は、後述する図３、図５のフローチャートに示す制御プログラムが格納されている。フォントＲＯＭ６は、入力した印刷データ中の文字コードに対応するスケーラブルフォント（文字をドット信号ではなく、ストローク情報で表して記憶した文字）を格納したＲＯＭである。内蔵ＲＡＭ７はＣＰＵ３のメモリ媒体となり、入力インタフェース４を介して入力した印刷データ（文字コードや制御コードからなる例えばページ記述言語）を一時的に格納する受信バッファやＣＰＵ３によって生成されたビットイメージデータを格納するビットマップメモリやワークエリアに割り当てられる。このワークエリアには複数のエミュレーションプログラムやテーブルが格納される。出力部８は印刷を行うプリンタエンジンである。
【００１４】
＜コマンド解析テーブルの構造＞
図２は各エミュレーションプログラム毎に用意するコマンド解析テーブルの構造であり、当該テーブルはＲＡＭ７のワークエリアに格納されている。
【００１５】
（ａ）はその構成を説明する図であり、「テーブル識別フラグ」はこのコマンド解析テーブル９が有効であるか否かを識別するフラグ、「テーブルサイズ」はコマンド解析テーブルの先頭からのコマンド解析テーブルサイズ、「テーブル情報」はそれに続くコマンドテーブル内のコマンドが制御コード型か文字列コード型か等のコマンド情報を備えるフラグ、「優先コマンドテーブルへの相対ポインタ」は優先コマンドテーブル１３までのテーブル識別フラグからの相対ポインタ、「コマンドテーブルへの相対ポインタ」はコマンドテーブル１０までのテーブル識別フラグからの相対ポインタ、「優先コマンドテーブル」はそのコマンドが印刷データ中に１つでも存在したらそのコマンドを含むエミュレーションプログラムに決定してしまうような優先コマンドを登録したコマンドテーブル、「コマンドテーブル」１０はそのエミュレーションプログラム独自のコマンドを登録しているテーブルを示す。
【００１６】
また、相対ポインタで場所を示しているので、優先コマンドテーブルとコマンドテーブルとは、コマンド解析テーブル本体と連続していなくてもよい。
【００１７】
図２（ｂ）はコマンドテーブル１０及び優先コマンドテーブル１３の構成を説明する図である。「コマンド形式」は登録されたコマンドの先頭コードが何バイトで構成されているかとか、制御コードで構成されているとか、文字列のみのコマンドであるかなどといった情報を示すフラグで、次の「コマンド形式」フィールドの前までが１つのコマンドのエントリとなる。「先頭コード」はそのエミュレーションプログラム独自のコマンドの先頭部分を登録する。「サイズ」はそのコマンドがテーブルにおいて占める大きさで、「コマンド形式」フィールドから次の「コマンド形式」フィールドまでのサイズである。「終端子の数」はそのコマンドの先頭コードに続く終端子の数、「終端子」はそのコマンドの先頭コードに続くコード列を示す。
【００１８】
＜エミュレーションプログラムの切替処理＞
図３はエミュレーションプログラムを読み込むために必要なエミュレーション情報部１１の構成図である。図３はコマンド解析テーブルを設けた時のエミュレーション情報部の構成を示す。「エミュレーション識別フラグ」はエミュレーション読み込み時に有効なエミュレーションプログラムかを識別するフラグ、「エミュレーションサイズ」はベースアドレスからエミュレーションプログラムの終了アドレスまでのサイズ、「コマンド解析テーブルへの相対ポインタ」はベースアドレスからコマンド解析テーブルまでの相対アドレスを示す。このエミュレーション情報部１１の情報にしたがって、コマンド解析テーブル９を参照し、エミュレーションプログラムを決定してそれにしたがってプログラム本体１２をＣＰＵ３が実行する。
【００１９】
このようにコマンド解析テーブルを各エミュレーションプログラムごとにもたせ、エミュレーションを実現するためのエミュレーションプログラムと共にエミュレーション情報及びコマンド解析情報を印刷装置１内のＲＡＭ７のワークエリアに供給することにより、新たにサポートされるエミュレーションプログラムに対しても自動エミュレーション切り換えを行うことが可能となる。
【００２０】
図４は自動エミュレーション切替の処理手順を説明するフローチャートである。以下、このフローチャートに従って説明していく。なお、このフローチャートに示す制御プログラムはプログラムＲＯＭ５に格納されＣＰＵ３により実行される。
【００２１】
先ずステップＳ１でＲＡＭ７内の受信バッファに印刷データがあるか否かをチェックする。受信データがない間は印刷データ待ち状態となる。受信バッファに印刷データがたまったなら、ステップＳ２でＲＡＭ７内の受信バッファより一定量の印刷データを獲得する。
【００２２】
次にステップＳ３でコマンドの解析処理を行って、受信した印刷データに適合するエミュレーションプログラムを判別する。コマンド解析処理の説明は図４のフローチャートで行う。例えば受信したページ記述言語Ａに適合するエミュレーションプログラムＡを判別する。
【００２３】
次にステップＳ４で判別結果を参照し、判別できていればステップＳ５でエミュレーションプログラムの動作モードを獲得し、ステップＳ６でそのエミュレーションプログラムを実行して印刷処理を行う。
【００２４】
判別ができなかった場合は、ステップＳ７で予め決められているエミュレーションプログラムを実行して印刷処理を行う。
【００２５】
印刷処理が終了した後に、ステップＳ８でコマンド解析処理準備状態へ移行した後、ＲＡＭ７内の受信バッファへの印刷データ待ち状態になり、ステップＳ１から繰り返し処理される。
【００２６】
図５は図４のステップＳ３のコマンド解析処理手順を具体的に説明するフローチャートである。以下、このフローチャートに従って説明していく。なお、このフローチャートに示す制御プログラムはプログラムＲＯＭ５に格納され、ＣＰＵ３により実行される。
【００２７】
まずステップＳ９で印刷装置１において現在動作可能であるエミュレーションプログラムのコマンド解析テーブルをＲＡＭ７内のワークエリアから１つ取得する。次にステップＳ１０で一定量受信バッファから獲得した受信データ（ステップＳ２で獲得）とコマンド解析テーブルの優先コマンドテーブル１３内のコマンドとを比較する。ステップＳ１１で、優先コマンドテーブル１３に一致するコマンドが受信データ中に存在するか否かを判定し、１つでも存在すれば、その時点で比較処理を終了し、ステップＳ１２でその一致したテーブルのエミュレーションプログラムのＩＤをエミュレーション識別フラグから取得して、判別できたものとしてリターンする。
【００２８】
もし、優先コマンドテーブル１３に１つも一致するコマンドが存在しなければ、ステップＳ１３で他のエミュレーションプログラムのコマンド解析テーブルがあるか否かを判断し、あればステップＳ１４でそのコマンド解析テーブルを獲得して、再び獲得した受信データと優先コマンドテーブル１３内のコマンドとを前述した様に比較する。他のコマンド解析テーブルがなかった場合は、ステップＳ１５で今度はコマンドテーブル１０内のコマンドとの比較を行う。
【００２９】
次にステップＳ１６でいくつかのコマンドと一致したかを取得し、ステップＳ１７で他のエミュレーションプログラムのコマンド解析テーブルがあるか否かを判断する。他のコマンド解析テーブルが存在している場合は、ステップＳ１８で次のコマンド解析テーブルを獲得して再び獲得したデータとコマンドテーブル１０内のコマンドとを前述した様に比較する。もし、他のコマンド解析テーブルが存在しなかった場合は、比較したコマンドテーブル１０の中で一番多くのコマンドと一致したテーブルのエミュレーションプログラムのＩＤをステップＳ１９で獲得し、リターンする。
【００３０】
この場合、一致したコマンドの数が同じ場合や１つも一致しなかった場合は、予め決められたエミュレーションプログラムのＩＤを返すことになる。
【００３１】
このようにして、各エミュレーションプログラムごとに、エミュレーションプログラムを判定するためのコマンド解析テーブルをエミュレーションを実現するためのエミュレーションプログラムと対応付けておくことで、例えば新たにエミュレーションプログラムを追加する場合に、エミュレーションプログラムとともにコマンド解析テーブルを印刷装置のＲＡＭ７に追加することで、制御プログラムを変更せずに、印刷データからエミュレーションプログラムを自動的に判別させることができる。
【００３２】
また、各エミュレーションプログラムについて、固有のコマンドコードを優先コマンドとして優先コマンドテーブル１３に登録しておくことでエミュレーションプログラムの判定を迅速に行うことができる。
【００３３】
また、優先コマンドテーブル１３やコマンドテーブル１０は拡張可能な構成となっているため、あるエミュレーションプログラムに特徴的なコマンドコードが追加された場合には、そのコマンドをテーブルに追加登録することができ、よりエミュレーションの判定を迅速にし、また、判定が成功する率を向上させることができる。なお、前述した各エミュレーションプログラムや各テーブルをフラッシュメモリに格納しても良い。
【００３４】
なお、印刷装置１の出力部８には、いろいろな印刷機構を採用することができるが、その例としてレーザービーム方式の機構とインクジェット方式の機構とを説明する。
【００３５】
＜ＬＢＰの構成＞
図６は、レーザビームプリンタ（以下、ＬＢＰと略す）の内部構造を示す断面図で、このＬＢＰは、文字コードや制御コードからなる例えばページ記述言語を入力して解析し記録紙に印刷することができる。
【００３６】
図において、７４０はＬＢＰ本体であり、供給されるページ記述言語等を基に、記録媒体である記録紙上に像を形成する。７００は操作のためのスイッチ及びＬＥＤ表示器などが配されている操作パネル、７０１はＬＢＰ７４０全体の制御及びページ記述言語等を解析するプリンタ制御ユニットである。このプリンタ制御ユニット７０１は主にパターン情報をビデオ信号に変換してレーザドライバ７０２に出力する。
【００３７】
レーザドライバ７０２は半導体レーザ７０３を駆動するための回路であり、入力されたビデオ信号に応じて半導体レーザ７０３から発射されるレーザ光７０４をオン・オフ切替えする。レーザ光７０４は回転多面鏡７０５で左右方向に振られて静電ドラム７０６上を走査する。これにより、静電ドラム７０６上には文字パターンの静電潜像が形成される。この潜像は静電ドラム７０６周囲の現像ユニット７０７により現像された後、記録紙に転写される。この記録紙にはカットシートを用い、カットシート記録紙はＬＢＰ７４０に装着した用紙カセット７０８に収納され、給紙ローラ７０９及び搬送ローラ７１０と７１１とにより装置内に取り込まれて、静電ドラム７０６に供給される。
【００３８】
＜インクジェットの構成＞
図７は、インクジェット記録装置ＩＪＲＡの概観図である。同図において、駆動モータ５０１３の正逆回転に連動して駆動力伝達ギア５０１１、５００９を介して回転するリードスクリュー５００５の螺旋溝５００４に対して係合するキャリッジＨＣはピン（不図示）を有し、矢印ａ，ｂ方向に往復移動される。このキャリッジＨＣには、インクジェットカートリッジＩＪＣが搭載されている。５００２は紙押え板であり、キャリッジの移動方向に亙って紙をプラテン５０００に対して押圧する。５００７，５００８はフォトカプラで、キャリッジのレバー５００６のこの域での存在を確認して、モータ５０１３の回転方向切り換え等を行うためのホームポジション検知手段である。５０１６は記録ヘッドの前面をキャップするキャップ部材５０２２を支持する部材で、５０１５はこのキャップ内を吸引する吸引手段で、キャップ内開口５０２３を介して記録ヘッドの吸引回復を行う。５０１７はクリーニングブレードで、５０１９はこのブレードを前後方向に移動可能にする部材であり、本体支持板５０１８にこれらが支持されている。ブレードは、この形態でなく周知のクリーニングブレードが本例に適用できることは言うまでもない。又、５０２１は、吸引回復の吸引を開始するためのレバーで、キャリッジと係合するカム５０２０の移動に伴って移動し、駆動モータからの駆動力がクラッチ切り換え等の公知の伝達手段で移動制御される。
【００３９】
これらのキャッピング、クリーニング、吸引回復は、キャリッジがホームポジション側の領域に来た時にリードスクリュー５００５の作用によってそれらの対応位置で所望の処理が行えるように構成されているが、周知のタイミングで所望の作動を行うようにすれば、本例にはいずれも適用できる。
【００４０】
（第２実施例）
第１の実施例では優先コマンドテーブル１３を使用しているが、優先コマンドテーブルテーブル１３を備えていなくともエミュレーションプログラムの判定を行うことはできる。図８は、第２実施例のコマンド解析テーブルの構成を示す図である。
【００４１】
図において、「テーブル識別フラグ」はこのコマンド解析テーブル９が有効であるか否かを識別するフラグ、「テーブルサイズ」はコマンド解析テーブルの先頭からのコマンド解析テーブルサイズ、「テーブル情報」はそれに続くコマンドテーブル内のコマンドが制御コード型か文字列コード型か等のコマンド情報を備えるフラグ、「コマンドテーブルへの相対ポインタ」はコマンドテーブル１０までのテーブル識別フラグからの相対ポインタ、「コマンドテーブル」１０はそのエミュレーション独自のコマンドを登録しているテーブルを示す。
【００４２】
相対ポインタで場所を示しているので、コマンドテーブルとは、コマンド解析テーブル本体と連続していなくてもよい。
【００４３】
図８のテーブルを用いて印刷を行う処理は図４に示した通りであるが、コマンド解析処理が若干異なる。図９は第２実施例におけるステップＳ３のコマンド解析処理手順を説明するフローチャートである。以下、このフローチャートに従って説明していく。なお、このフローチャートに示す制御プログラムはプログラムＲＯＭ５に格納されており、ＣＰＵ３により実行される。
【００４４】
まずステップＳ９１で印刷装置１において現在動作可能であるエミュレーションプログラムのコマンド解析テーブルをＲＡＭ７のワークエリアから１つ取得する。次にステップＳ９２において、一定量受信バッファから獲得した印刷データ（ステップＳ２で獲得）とコマンド解析テーブルのコマンドテーブル１０内のコマンドとを比較する。
【００４５】
つぎに、ステップＳ９３で、コマンドテーブル１０に一致するコマンドが存在するか否かを判定し、１つでも存在すれば、その時点で比較処理を終了し、ステップＳ９４でその一致したテーブルのエミュレーションプログラムのＩＤをエミュレーション識別フラグから取得して、判別できたものとしてリターンする。
【００４６】
もし、コマンドテーブル１０に１つも一致するコマンドが存在しなければ、ステップＳ９５で他のエミュレーションプログラムのコマンド解析テーブルがあるか否かを判断し、あればステップＳ９６でそのコマンド解析テーブルをＲＡＭ７のワークエリアから獲得して、再び獲得したデータとコマンドテーブル１０内のコマンドとを比較する。他のコマンド解析テーブルがなかった場合は、判別不能としてリターンする。
【００４７】
このように処理することで、判定結果をすばやく得ることができる。
【００４８】
また、コマンドテーブルも、制御プログラムも第１実施例に比べて小さくできるため、メモリ容量の小さな印刷装置にたいしても適用できる。
【００４９】
さらに、支援する複数のエミュレーションプログラムが互いに特徴的なコマンドコードを含む場合には、それをコマンドテーブル１０に登録することで処理が速いのみならず判定の率を向上させることができる。
【００５０】
（第３実施例）
第１実施例におけるコマンド解析テーブルは図２に示し、第２実施例におけるコマンド解析テーブルは図８に示したが、第３実施例のコマンド解析テーブルを図１０に示す。
【００５１】
＜コマンド解析テーブルの構造＞
図１０は第３実施例における各エミュレーションプログラム毎に用意するコマンド解析テーブルの構造であり、当該テーブルはＲＡＭ７のワークエリアに格納されている。
【００５２】
（ａ）はその構成を説明する図であり、「テーブル識別フラグ」はこのコマンド解析テーブル９が有効であるかを識別するフラグ、「テーブルサイズ」はコマンド解析テーブルの先頭からのコマンド解析テーブルサイズ、「テーブル情報」はそれに続くコマンドテーブル内のコマンドが制御コード型か文字列コード型かなどのコマンド情報を備えるフラグ、「優先コマンドテーブルへの相対ポインタ」は優先コマンドテーブル１３までのテーブル識別フラグからの相対ポインタ、「コマンドテーブルへの相対ポインタ」はコマンドテーブル１０までのテーブル識別フラグからの相対ポインタ、「コマンド置き換えテーブルへの相対ポインタ」はコマンド置き換えテーブル１４までのテーブル識別フラグからの相対ポインタ、「優先コマンドテーブル」はそのコマンドが印刷データ中に１つでも存在したらそのコマンドを含むエミュレーションプログラムに決定してしまうような優先コマンドを登録したコマンドテーブル、「コマンドテーブル」はそのエミュレーションプログラム独自のコマンドを登録しているテーブル、「コマンド置き換えテーブル」は同一な意味を持つ複数のコマンドを有していた場合に、同一な意味を持つコマンドに置き換えるためのテーブルを示す。
【００５３】
また、相対ポインタで場所を示しているので、優先コマンドテーブルとコマンドテーブルとコマンド置き換えテーブルとは、コマンド解析テーブル本体と連続していなくてもよい。
【００５４】
図１０（ｂ）はコマンドテーブル１０及び優先コマンドテーブル１３の構成を説明する図である。「コマンド形式」は登録されたコマンドの先頭コードが何バイトで構成されているかとか、制御コードで構成されているとか、文字列のみのコマンドであるかとかを示すフラグで、次の「コマンド形式」フィールドの前までが１つのコマンドのエントリとなる。「先頭コード」はそのエミュレーション独自のコマンドの先頭部分を登録する。「サイズ」はそのコマンドがテーブルにおいて占める大きさで、「コマンド形式」フィールドから次の「コマンド形式」フィールドまでのサイズである。「終端子の数」はそのコマンドの先頭コードに続く終端子の数、「終端子」はそのコマンドの先頭コードに続くコード列を示す。
【００５５】
図１０（ｃ）はコマンド置き換えテーブル１４の構成を説明する図である。「サイズ」は１つ置き換えの組のサイズである。「置き換え前のコマンド数」は置き換えたいコマンドの数、「置き換え前のコマンド列」は置き換えたいコマンド列が記述される。「置き換え後のコマンド数」は置き換わった後のコマンドの数であり、「置き換え後のコマンド列」は置き換わった後のコマンド列が記述される。
【００５６】
図１１は、第３実施例におけるコマンド解析処理手順を説明するフローチャートである。以下、このフローチャートに従って説明していく。なお、このフローチャートに示す制御プログラムはプログラムＲＯＭ５に格納され、ＣＰＵ３により実行される。
【００５７】
まずステップＳ３０で印刷装置１において現在動作可能であるエミュレーションプログラムのコマンド解析テーブルをＲＡＭ７のワークエリアから１つ取得する。
【００５８】
この時ステップＳ３１でコマンド解析テーブル中にコマンド置き換えテーブル１４が存在するか否かを判別する。コマンド置き換えが必要ない場合は、コマンド置き換えテーブル１４への相対ポイントにはＮＵＬＬが記述されている。
【００５９】
もし、コマンド置き換えテーブル１４が存在していた場合、ステップＳ３２で置き換えテーブル１４に従って、データの置き換えを行う。存在しない場合は、置き換え処理を行わない。
【００６０】
次にステップＳ３３で一定量獲得した受信データとコマンド解析テーブルの優先コマンドテーブル１３内のコマンドと比較する。ステップＳ３４で優先コマンドテーブル１３に一致するコマンドが存在するか否かを判定し、一つでも一致するコマンドが存在すれば、その時点で比較処理を終了し、ステップＳ３５でその一致したテーブルのエミュレーションプログラムのＩＤを取得して判別ＯＫとしてリターンする。
【００６１】
もし、優先コマンドテーブル１３に一つも一致するコマンドが存在しなければ、ステップＳ３６で他のエミュレーションプログラムのコマンド解析テーブルがあるか否かを判断し、あればステップＳ３７でコマンド解析テーブルを獲得し、再び獲得したデータと優先コマンドテーブル１３内のコマンドとを比較する。他のコマンド解析テーブルがなかった場合は、ステップＳ３８で今度はコマンドテーブル１０内のコマンドとの比較を行う。
【００６２】
次にステップＳ３９でいくつのコマンドと一致したかを取得し、ステップＳ４０で他のエミュレーションプログラムのコマンド解析テーブルがあるかを判断する。他のコマンド解析テーブルが存在している場合は、ステップＳ４１で次のコマンド解析テーブルを獲得し、ステップＳ４２でコマンド置き換えテーブル１４が存在するか否かを判断し、もし存在すればステップＳ４３でデータを置き換える。コマンド置き換えテーブル１４が存在しなければ、そのまま再び獲得したデータとコマンドテーブル１０内のコマンドとを比較する。
【００６３】
他のコマンド解析テーブルが存在しなかった場合は、比較コマンドテーブル１０の中で一番多くコマンドと一致したテーブルのエミュレーションプログラムのＩＤをステップＳ４４で獲得し、リターンする。
【００６４】
この時一致したコマンドの数が同じ場合や一つも一致しなかった場合は予め決められているエミュレーションプログラムのＩＤを返すことになる。
【００６５】
以上説明したように、各エミュレーションプログラムに対して、同一の意味を持つ複数のコマンドが存在した時に、コマンド置き換えテーブル１４を付加し、コマンド検索前にコマンド置き換え処理を施すことにより、検索処理速度が向上する。
【００６６】
尚、本発明は、複数の機器から構成されるシステムに適用しても１つの機器から成る装置に適用しても良い。また、本発明は、システム或は装置にプログラムを供給することによって達成される場合にも適用できることはいうまでもない。
また、各エミュレーションプログラムについて、固有のコマンドコードを優先コマンドとして優先コマンドテーブル１３に登録しておくことで、エミュレーションプログラムの判定を迅速に行うことができる。
また、優先コマンドテーブル１３やコマンドテーブル１０は拡張可能な構成となっているため、あるエミュレーションプログラムに特徴的なコマンドコードが追加された場合には、そのコマンドをテーブルに追加登録することができ、よりエミュレーションプログラムの判定を迅速にし、また、判定が成功する率を向上させることができる。
また、コマンドテーブルも、制御プログラムも第１実施例に比べて小さくできるため、メモリ容量の小さな印刷装置にたいしても適用できるという効果を奏する。
【００６７】
【発明の効果】
コマンド置き換えテーブルを用いて、コマンド置き換え処理を施すことにより、検索処理速度が向上し、エミュレーションプログラムを入力された印刷データから短時間で判別することができ、さらに、新たなエミュレーションプログラムの追加や、既存のエミュレーションプログラムへのコマンドの追加などに容易に対応できる。
【図面の簡単な説明】
【図１】本発明の一実施例を示す印刷装置の全体構成図である。
【図２】コマンド解析テーブルの構成図である。
【図３】各エミュレーションにコマンド解析テーブルを持たせた時のエミュレーション情報部の構成図である。
【図４】自動エミュレーション切り替え処理手順を説明するフローチャートである。
【図５】コマンド解析処理手順を説明するフローチャートである。
【図６】レーザービームプリンタの構造を示す図である。
【図７】インクジェットプリンタの構造を示す図である。
【図８】第２実施例のコマンド解析テーブルの構成図である。
【図９】第２実施例のコマンド解析処理手順を説明するフローチャートである。
【図１０】第３実施例のコマンド解析テーブルの構成図である。
【図１１】第３実施例のコマンド解析処理手順を説明するフローチャートである。
【符号の説明】
１  印刷装置本体
２  ホストコンピュータ
３  ＣＰＵ
４  入力インターフェイス
５  プログラムＲＯＭ
６  フォントＲＯＭ
７  内蔵ＲＡＭ
８  出力部
【図１】
0003581432.tif 000002
【図２】
0003581432.tif 000003
【図３】
0003581432.tif 000004
【図４】
0003581432.tif 000005
【図５】
0003581432.tif 000006
【図６】
0003581432.tif 000007
【図７】
0003581432.tif 000008
【図８】
0003581432.tif 000009
【図９】
0003581432.tif 000010
【図１０】
0003581432.tif 000011
【図１１】
0003581432.tif 000012