【事件の表示】
　特許第２６８７４０８号「プリンタ制御装置」の請求項１ないし２に係る特許に対する特許異議の申立てについて、次のとおり決定する。
【結論】
　訂正を認める。
　特許第２６８７４０８号の請求項１ないし２に係る特許を維持する。
【理由】
Ｉ．手続の経緯
　本件特許第２６８７４０８号発明は、昭和６３年４月８日に特許出願され、平成９年８月２２日にその特許の設定の登録がなされ、その後、飯島洋より特許異議の申立がなされ、取消理由通知がなされ、その指定期間内である平成１１年７月１９日に訂正請求がなされたものである。
ＩＩ．訂正の適否についての判断
（１）訂正の内容
　特許権者が求めている訂正の内容は、誤記の訂正を目的として、請求項１の、「プログラム切り換え制御手段とを行うことを特徴とするプリンタ制御装置」を「プログラム切り換え制御手段とを
備える
（２）訂正の目的の適否、新規事項の有無及び拡張・変更の存否
　上記訂正事項は、誤記の訂正を目的とするものであって、新規事項の追加に該当せず、また、実質上特許請求の範囲を拡張又は変更するものでもない。
（３）独立特許要件
　訂正後の本件発明は、ＩＩＩ．で示すように、特許出願の際独立して特許を受けることができるものである。
（４）むすび
　以上のとおりであるから、上記訂正請求は、特許法第１２０条の４第２項及び同条第３項で準用する第１２６条第２乃至４項の規定に適合するので、当該訂正を認める。
ＩＩＩ．特許異議申立について
１．本件発明
　ＩＩ．に示したように、平成１１年７月１９日付けの訂正請求を認めるので、本件請求項１に係る発明（以下「本件発明１」という。）及び本件請求項２に係る発明（以下「本件発明２」という。）は、その特許請求の範囲の請求項１及び請求項２に記載された事項により特定される次のとおりのものである。
「【請求項１】　外部のデータ処理装置から与えられるコマンド体系の異なる複数種類のデータを解析し、解析したデータを印字部に与えることによってプリント動作を制御するプリンタ制御装置において、
コマンド体系の異なる複数のデータをプリントするために、各コマンド体系毎に用意された複数のデータ変換プログラムを格納する第１メモリと、データ処理装置から送られてくるデータを格納する第２メモリと、
該第２メモリに格納されたデータからコマンド体系を判別し、判別結果に応じて前記第１メモリに格納されたデータ変換プログラムのいずれかを選択することにより、データ変換プログラムの切り替えを行うプログラム切り替え手段と、
選択されたデータ変換プログラムによってデータを解析するデータ解析手段と、
連続してコマンド体系の異なるデータを受信した場合、初めに第２メモリに格納されたデータの解析中にはデータ変換プログラムの切り替えを禁止し、第２メモリに格納されたデータの解析後、続いて第２メモリに格納されたデータのコマンド体系に応じたデータ変換プログラムの切り替えを行うプログラム切り替え制御手段とを備えることを特徴とするプリンタ制御装置。
　【請求項２】　前記第１メモリは、固有のデータ変換プログラムを格納してある第１エリアと、前記固有のデータ変換プログラムとは別の任意のデータ変換プログラムを格納するための第２エリアとを有し、前記データ処理装置より送信されるデータ変換プログラムを前記第２エリアに格納することを特徴とする特許請求の範囲１に記載のプリンタ制御装置。
２．申立の理由の概要
　特許異議申立人飯島洋は、証拠方法として、甲第１号証（特開昭６３−２９３９３号公報）、甲第２号証（特開昭６２−３８９３０号公報）及び甲第３号証（特開昭６０−２５４２８７号公報）を提出し、
▲１▼本件発明１は、甲第１号証及び甲第２号証に記載された発明に基づいて当業者が容易に発明をすることができたものであり、また、本件発明２は甲第１号証、甲第２号証及び甲第３号証に記載された発明に基づいて当業者が容易に発明をすることができたものであるから、いずれも、特許法第２９条第２項の規定により特許を受けることができないものであり、本件発明１及び本件発明２に係る特許は、いずれも、取り消されるべきであること、
▲２▼本件特許明細書は記載が不備であり、本件発明１に係る特許は特許法第３６条第４項及び第５項に規定する要件を満たさないものであり、本件発明１に係る特許は取り消されるべきであること、を主張している。
３．判断
（１）第２９条第２項違反について
（ａ）異議申立人が提出した甲各号証の記載事項
　甲第１号証には、「第１図において、１はレーザープリンタであり、レーザープリンタ１はホストコンピュータ等のホストマシン２（第２図参照）の端末として記録紙に印字する。レーザープリンタ１は、第２図に示すように、コントローラ３を内蔵しており、コントローラー３はホストマシン２から送られてきた文字コードを文字ドットパターンに変換してシリアルビデオ信号としてプリンタエンジン４に出力する。」（公報第２頁右上欄４〜１２行）、「コントローラ３は、ホストインタフェース１０を介してホストマシン２から文字コード、制御コード、制御コマンドおよび画像データなどを受信したり、ホストマシン２ヘプリンタステータスを送信する。また、コード３にはコネクタ１５、１６に着脱可能に２個のメモリカートリッジ１７、１８が接続され、コネクタ１５、１６はバスバッファ１３に並列に接続されている。・・・メモリカートリッジ１７、１８は、後述するように、文字フォントのパターンデータや図形セグメントデータを記憶したり、あるいはホストマシン２からのフォームデータや図形データを保持して使用したり、さらには、レーザープリンタやドットプリンタとして駆動するためのプログラムを記憶する。・・・ＣＰＵ５はレーザープリンタ１の動作をプログラムＲＯＭ９に記憶されたプログラムに従って実行し、バッファメモリ６はホストインタフェース１０を介してホストマシン２より送信されてきたデータあるいはこのデータが文字コードであるときには、印字位置の情報やフォントの種類の情報を付加されたデータを１ページ単位で格納する。」（公報第２頁左下欄４行〜右下欄１４行）、「メモリカートリッジ１７やメモリカートリッジ１８のＲＯＭ３３、３４、３５、３６に記憶させるデータは文字フォントのパターンデータに限るものではなく、図形セグメントデータや画像データであってもよく、さらに、レーザープリンタ１をディジープリンタやドットプリンタとして動作させる一定のプログラム等であってもよい。・・・これらの数種類のデータのうち、、いずれのデータを使用するかは、ホストマシン２からのコマンドによりＣＰＵ５がメモリカートリッジ１７、１８をサーチして選択する」（公報第５頁左下欄８行〜右下欄５行）、「データが文字データで送られてくるときには、データに印字位置情報や文字フォントの種類の情報が付加されてバッファメモリ６に蓄積され」（公報第６頁左上欄１４〜１７行）と記載されており、これらの記載を含む明細書及び図面の記載より、刊行物１には以下の発明が記載されているものと認める。
「ホストマシン２から送られてきた文字コードを文字ドットパターンに変換してシリアルビデオ信号としてプリンタエンジンに出力するコントローラ３と、文字フォントのパターンデータ等を記憶するメモリカートリッジ１７、１８と、１ページ分のデータが蓄積されるバッファメモリ６と、メモリカートリッジ１７、１８に記憶される文字フォントのパターンデータ等の数種類のデータのうち、いずれのデータを使用するかを、ホストマシーン２からのコマンドによりＣＰＵ５がメモリカートリッジ１７、１８をサーチして選択する手段と、レーザープリンタ１の動作をプログラムＲＯＭ９に記憶されたプログラムに従って実行するＣＰＵ５とを備え、バッファメモリ６はホストインタフェース１０を介してホストマシン２より送信されてきたデータあるいはこのデータが文字コードであるときには、印字位置の情報やフォントの種類の情報を付加されたデータを１ページ単位で格納するものであるプリンタ制御装置。」
　また、甲第２号証には、「従来のこのような印字制御装置では、１つのジョブを実行中に他のジョブが発生すると、その新たなジョブは待ち合わせ、実行中のジョブが完了してから受け付けられるように構成されていた。」（公報第２頁左上欄１１〜１５行）と記載されており、甲第３号証には、「プリンタ２は、プリンタコントローラ２１を有し、このプリンタコントローラ２１は印字制御用プログラムを格納するための未記憶メモリ２１１を内蔵している。プリンタ５はプリンタコントローラ５１を有し、このプリンタコントローラ５１は印字制御用プログラム記憶済のメモリ５１１を内蔵している・・・印字制御用プログラムのダウンロード要求があった場合はステップ４０７に進み、ここでＣＰＵ１１はフロッピーディスク４から印字制御用プログラムを読出し、これをプリンタ５のプリンタコントローラ５１が内蔵するメモリ５１１にダウンロードする。」（公報第２頁右上欄１２行〜右下欄１２行）と記載されている。
（ｂ）対比・判断
　甲第１号証に記載された発明と本件発明１及び本件発明２とを比較すると、甲第１号証に記載された発明は、コマンド体系の異なる複数種類のデータを解析するものとは認められず、本件発明１及び本件発明２を特定する事項である、「コマンド体系の異なる複数種類のデータを解析」すること、「コマンド体系の異なる複数のデータをプリントするために、各コマンド体型毎に用意された複数のデータ変換プログラムを格納する第１メモリ」、「第２メモリに格納されたデータからコマンド体系を判別」すること、「連続してコマンド体系の異なるデータを受信した場合、初めに第２メモリに格納されたデータの解析中にはデータ変換プログラムの切り替えを禁止し、第２メモリに格納されたデータの解析後、続いて第２メモリに格納されたデータのコマンド体系に応じたデータ変換プログラムの切り替えを行うプログラム切り替え制御手段」を備えていない点で相違する。
　さらに、上記相違点については、甲第２号証及び甲第３号証にも記載されておらず、示唆する記載もない。
　そして、当該事項を備えることにより、本件発明１及び本件発明２は、「プリンタ側でのハードウェア操作を行うことなくデータ処理装置側よりリモートでプロトコル（コマンド体系）を切り替えることが可能となり、操作性が向上する。さらに、解析プログラムを外部のデータ処理装置よりダウンロード可能としたことによって、種々のプロトコルに対応が可能となる。」という明細書記載の格別の効果を奏するものであるから、本件発明１及び本件発明２は刊行物１〜３に記載された発明から容易に発明することができたものとはいえない。
（２）第３６条違反について
　特許異議申立人は、請求項１に記載の第２メモリが、発明の詳細な説明の記載から、Ｒ−バッファ３０４と特定されるとともにＵＲバッファ３０６と特定され、両者が同じメモリではないと考えられることから、第２メモリが特定できず、第２メモリの構成が不明瞭である旨主張し、さらに、請求項１では、Ｒ−バッファに格納されたデータ及びＵＲバッファに格納されたデータの両方を「データ」と記載しており記載が不明瞭である旨主張している。
　しかしながら、本件特許公報第３頁第５欄４２〜４３行の「データ蓄積用のバッファメモリ（３０４，３０６，３０８）から成る」という記載等から、Ｒ−バッファ及びＵＲバッファが一つのメモリを構成するものであるのは明らかであること、請求項１に記載されたそれぞれの「データ」の内容を特定することに格別の困難性は認められないことから、特許異議申立人の主張するような記載不備は認められない。
４．むすび
　以上のとおりであるから、特許異議申立ての理由及び証拠によっては、本件発明１及び本件発明２の特許を取り消すことはできない。
　また、他に本件発明１及び本件発明２の特許を取り消すべき理由を発見しない。
　よって、結論のとおり決定する
【異議決定日】
平成１１年８月３１日（１９９９．８．３１）
【首席審判官】【特許庁審判官】
小澤　和英
【特許庁審判官】
信田　昌男
【特許庁審判官】
嶋野　邦彦
（１９０）【発行国】
日本国特許庁（ＪＰ）
（１２）【種別】
特許訂正明細書（Ｈ）
（５１）【国際特許分類第6版】
Ｂ４１Ｊ　　５／３０
（５１）【国際特許分類第6版】
Ｇ０６Ｆ　　３／１２
【ＦＩ】
Ｂ４１Ｊ　　５／３０　　　　　　Ｚ
Ｇ０６Ｆ　　３／１２　　　　　　Ｚ
（１１）【特許番号】
特許第２６８７４０８号（Ｐ２６８７４０８）
【異議申立番号】
平成１０年異議第７２８７３号
【異議申立日】
平成１０年６月８日（１９９８．６．８）
【異議決定確定日】
平成１１年９月１３日（１９９９．９．１３）
（７０）【訂正請求人】
【氏名又は名称】
ミノルタ株式会社
【住所又は居所】
大阪府大阪市中央区安土町２丁目３番１３号　大阪国際ビル
【代理人】
【弁理士】
【氏名又は名称】
青山　葆
【代理人】
【弁理士】
【氏名又は名称】
河宮　治
【代理人】
【弁理士】
【氏名又は名称】
石野　正弘
【訂正の要旨】
　特許権者が求めている訂正の内容は、誤記の訂正を目的として、請求項１の、「プログラム切り換え制御手段とを行うことを特徴とするプリンタ制御装置」を「プログラム切り換え制御手段とを
備える
（５４）【発明の名称】
プリンタ制御装置
（５７）【特許請求の範囲】
　　【請求項１】　外部のデータ処理装置から与えられるコマンド体系の異なる複数種類のデータを解析し、解析したデータを印字部に与えることによってプリント動作を制御するプリンタ制御装置において、
コマンド体系の異なる複数のデータをプリントするために、各コマンド体系毎に用意された複数のデータ変換プログラムを格納する第１メモリと、データ処理装置から送られてくるデータを格納する第２メモリと、該第２メモリに格納されたデータからコマンド体系を判別し、判別結果に応じて前記第１メモリに格納されたデータ変換プログラムのいずれかを選択することにより、データ変換プログラムの切り替えを行うプログラム切り替え手段と、選択されたデータ変換プログラムによってデータを解析するデータ解析手段と、連続してコマンド体系の異なるデータを受信した場合、初めに第２メモリに格納されたデータの解析中にはデータ変換プログラムの切り替えを禁止し、第２メモリに格納されたデータの解析後、続いて第２メモリに格納されたデータのコマンド体系に応じたデータ変換プログラムの切り替えを行うプログラム切り替え制御手段とを
備える
　　【請求項２】　前記第１メモリは、固有のデータ変換プログラムを格納してある第１エリアと、前記固有のデータ変換プログラムとは別の任意のデータ変換プログラムを格納するための第２エリアとを有し、前記データ処理装置より送信されるデータ変換プログラムを前記第２エリアに格納することを特徴とする特許請求の範囲１に記載のプリンタ制御装置。
【発明の詳細な説明】
〔産業上の利用分野〕
　本発明は汎用プリンタの制御装置に関するものである。
〔従来技術〕
　コンピュータシステムにおける出力装置たるプリンタと、これを印字させるべきデータを送出するデータ処理装置とは両者間で上記データ及び制御データの授受が行われるが、そのためにはプリンタ，データ処理装置のプロトコル（コマンド体系）が同一である必要がある。特定のデータ処理装置に対応して設計されるプリンタにおいてはデータ処理装置のプロトコルと同一のプロトコル仕様を定めればよい。
　これに対しプロトコルが異なる複数種のデータ処理装置に接続されて使用されるべき汎用プリンタにおいてはプリンタ固有のプロトコルの仕様としておく一方、これに適合しないプロトコルのデータ処理装置との接続のためにプロトコル変換装置を備えている。
　プロトコル変換装置としては、データ処理装置から出力される制御情報を、その要求する機能に相当するプリンタ側の制御情報に変換するプロトコル変換プログラム（エミュレーションソフトウェア）をプリンタ側の制御用プロセッサで作動させ、データ処理装置から出力される制御情報をプリンタのもつ制御情報に変換するものが一般的であった。
　この場合、プリンタ側では変換された制御情報から更にプリンタの動作を制御する内部パラメータに解読変換するプロセスが行われる。
　而して複数種稀のエミュレーションソフトウェアを備えたものにおいては、一旦いずれかのエミュレーションソフトウェアを起動すると、ハードウェアでこれをリセットすることによってのみ他のエミュレーションソフトウェアへの切換が可能な構成となっていた。
〔発明が解決しようとする問題点〕
　従って特定のデータ処理装置に接続した状態で継続的に使用する場合には何らの不都合はないが、プリンタを異プロトコル仕様の複数のデータ処理装置と接続し随時データ処理装置を切換えて使用する等の用途には適用できないという不都合があった。
　本発明は斯かる問題点を解決するためになされたものであり、データ処理装置側からの制御信号で実行すべきエミュレーションソフトウェアの切換を可能とする構成として上述の用途に供し得るようにしたプリンタ制御装置を提供することを目的とする。
〔問題点を解決するための手段〕
　第１の発明に係るプリンタ制御装置は、外部のデータ処理装置から与えられるコマンド体系の異なる複数種類のデータを解析し、解析したデータを印字部に与えることによってプリント動作を制御するプリンタ制御装置において、コマンド体系の異なる複数のデータをプリントするために、各コマンド体系毎に用意された複数のデータ変換プログラムを格納する第１メモリと、データ処理装置から送られてくるデータを格納する第２メモリと、該第２メモリに格納されたデータからコマンド体系を判別し、判別結果に応じて前記第１メモリに格納されたデータ変換プログラムのいずれかを選択することにより、データ変換プログラムの切り替えを行うプログラム切り替え手段と、選択されたデータ変換プログラムによってデータを解析するデータ解析手段と、連続してコマンド体系の異なるデータを受信した場合、初めに第２メモリに格納されたデータの解析中にはデータ変換プログラムの切り替えを禁止し、第２メモリに格納されたデータの解析後、続いて第２メモリに格納されたデータのコマンド体系に応じたデータ変換プログラムの切り替えを行うプログラム切り替え制御手段とを
備える
　また、第２の発明にあっては、前記第１メモリは、固有のデータ変換プログラムを格納してある第１エリアと、前記固有のデータ変換プログラムとは別の任意のデータ変換プログラムを格納するための第２エリアとを有し、前記データ処理装置より送信されるデータ変換プログラムを前記第２エリアに格納することを特徴とする。
　なおこのプリンタ制御装置は、印写部と一体的に組立てられている構成、つまりプリンタ内蔵としていてもよく、またプリンタとは別体としてもよい。
〔作用〕
　データ処理装置の所定信号を発すると前記メモリの任意のプログラムが起動する。またエミュレーションソフトウェアは外部からこれを与えて前記メモリに書込ませることができる。
　更にデータ処理装置側からの信号により随時エミュレーションソフトウェアと印写部に固有のプログラムとを切換えて実行し得る。
〔実施例〕
　以下本発明をその実施例を示す図面に基づいて説明する。
〔概略の構成〕
　まず、本発明に係るプリンタの概略構成について説明する。第１図は本発明のプリンタ１０の構成を示すブロック図である。汎用のデータ処理装置１からのデータは、データ処理装置１のスループットを改善するために、ファイルバッファ２に格納された後、プリンタ１０に出力される。プリンタ１０は、ビットマップ方式のデータ処理装置ＢＭＵ３、即ち本発明のプリンタ制御装置と、電子写真プロセスレーザ等を備えるプリントエンジン４と、外部給紙ユニット５、ソータ６等の付属装よりなる。
　第２図は、プリンタシステムの外観を示すものである。
　プリントエンジン４の筐体内には電子写真プロセス及びＢＭＵ３を内蔵しており、アクセサリとして外部給紙ユニット５と、ソータ６が接続可能である。また、プリントエンジン４には、システムの状態を示す表示部及び簡単な操作を行なうためのキーが並べられた表示パネル４４が装着されている。
　第３図は、表示パネル４４の詳細を示すものである。９０１〜９０３が入力キーであり、９１０〜９１８が表示素子である。キー９０１は、プリント動作を一時中断させるためのポーズキー、９０２はテストプリントを起動するためのテストキーであり、テストキー９０２は９０３のシフトキーと同時に押すことによってプリントを中断するキャンセルキーとなる。
　第４図は、プリンタ１０の制御系の概略ブロック図である。ビットマップ方式データ処理装置３は、ビットマップ用のメモリＢＭ−ＲＡＭ３２、このＢＭ−ＲＡＭ３２に描画を行なうビットマップ書込部３１（第９図参照）、フォント部３３及びこれらの制御を行なうビットマップ制御部３０よりなる。プリントエンジン４との接続は、制御データ（枚数、アクセサリーなど）用のバスＢ３とイメージデータ用のバスＢ４により行う。
　プリントエンジン４は前述の印写部に相当し、３つのコントローラを中心に構成される。まず、インターフェース制御部（ＩＦＣ）４０はビットマップ制御部３０からの制御データの処理及び表示パネル制御を行い、また内部バスＢ５を通じてプリントエンジン４全体のタイミングの制御を行なう。
　電子写真制御部４１は、内部バスＢ５を通じてインターフェース制御部４０から送られるデータに応じて、電子写真プロセス部４５の制御を行なう。
　プリントヘッド制御部４２は、内部バスＢ４を通じてビットマップ書込部３１から送られてくる情報に従って、プリントヘッド部４３の半導体レーザの発光及びポリゴン・モータの回転を制御する。また、外部給紙ユニット５及びソータ６も、内部バスＢ５を通じてインターフェース制御部４０から制御される。
〔制御部の構成〕
　第５図は本発明によるビットマップ制御部３０の構成を示すものである。全体の構成としては、データ入出力用のインターフェース（３０１，３０９，３１０，３１１）と、制御部の中心となるＣＰＵ３０３とそのシステムＲＯＭ，ＲＡＭ（３０５，３０７）、ＣＰＵ３０３に定期的に割り込みをかけるタイマー３０２、そしてデータ蓄積用のバッファメモリ（３０４，３０６，３０８）から成る。
　次に各部の動作を説明する。まずバスＢ２を通してデータ処理装置インターフェース３０１より取り込まれたデータはＲ−バッファ３０４に蓄積される。システムＲＯＭ３０５内には、第６図に示すようにホスト、つまりデータ処理装置から送られてきたデータの仮編集を行ない、データをパケットとしてパケットバッファ３０８に書き込むホストプロセス６５と、パケットを解析してビットマップ書込部インターフェース３１０よりビットマップ書込部３１へ、またはフォントインターフェース３０９を通じてフォント部へ、さらにプリントエンジンインターフェース３１１を通してインターフェース制御部４０ヘデータを送るパケットプロセス６４という独立したプログラムが格納されている。そして、同じくシステムＲＯＭ３０５に書き込まれているスケジューラ６２がタイマー３０２からのタイマー割り込み６１によって各プロセスを状態に応じて切り替えている。
　システムＲＡＭ３０７内には第７図（ａ）に示すようなカレント・プロセス・ステータス（ＣＰＳ）ブロックという領域があり、各プロセスの切り替え時にＣＰＵ３０３のレジスタ内容がＣＰＳ内に記憶されるので、各プロセスは独立して動作を行うことができる。ＣＰＳブロックはパケットプロセス６４，ホストプロセス６５，ユーザプロセス６６（後述）夫々のための退避エリアと、これらプロセスに共用の退避エリアとがある。
　また、システムＲＯＭ３０５にはプリンタ起動時のため初期化のスタートプロセス６３が格納されており、ホストプロセス６５より直接スタートさせる。
　システムＲＡＭ３０７のメモリ構成を第７図（ｂ）図に示す。システムＲＡＭ３０７のダウンロードセグメントには、ユーザプロセス６６のための領域６６′が設けられている。データ処理装置インターフェース３０１を通してデータ処理装置１から送られてくるか、またはフォントインターフェース３０９を通してフォントカートリッジから読込んだ別のプロセス（ユーザプロセス６６）をシステムＲＡＭ３０７のこの領域６６′にロードする。そうするとスケジューラ６２によって他のプロセスと同様に時分割処理を行なうことができる。このユーザプロセス６６は、本プリンタ固有のプロトコル（ホストプロトコル）と異なるプロトコルで送られてきたデータをホストプロトコルに変換するプログラムである。この場合のデータの流れは第８図に示すように例えばデータ処理装置１からインターフェース３０１を介してシステムＲＡＭ３０７内のＲ−バッファ３０４に書込み、このＲ−バッファ３０４内に蓄積されている受信データ（ホストプロトコル以外のプロトコルのデータ）をユーザプロセス６６で取り出し、ホストプロトコルのデータに変換してシステムＲＡＭ３０７内のＵＲ−バッファ３０６に蓄積する。データの仮編集を行なうホストプロセス６５は、ユーザプロセス６６の起動時にＵＲ−バッファ３０６を取出してホストプロトコルのデータとしてこれを取扱えばよく、またユーザプロセスの非起動時、つまりホストプロトコルのデータである場合は単にＲ−バッファ３０４内のデータを取り出すだけでよく、他に変更の必要がない。
　このユーザプロセス６６は第７図（ｃ）のようにこのプリンタ制御装置、つまりデータ処理装置３で対応し得るプロトコル別に複数個システムＲＯＭ３０５内に保持しておき、データ処理装置１から与えられるユーザプロセス指定コードによって指定のユーザプロセスをシステムＲＡＭ３０７内のダウンロード領域（ユーザプロセス領域）６６′にロードさせるようにしてもよい。
　以上要約するとホストプロトコルはホストプロセス６５中に用意されており、このプロトコルで送信されてきたデータはシステムＲＡＭ３０７のＲ−バッファ３０４に蓄積し、これを仮編集してシステムＲＡＭ３０７のパケットバッファ３０８に書込むのである。
　一方、ホストプロトコル以外のプロトコルで送られてきたデータのホストプロトロルでのデータへの変換プログラム、つまりユーザプロセス６６（１種類でも複数でもよい）はシステムＲＡＭ３０７のダウンロード領域６６′に書込まれるが、これはデータ処理装置１から与えることとしても、またフォントカートリッジ等外付けメモリから与えることとしてもよく、更にシステムＲＡＭ３０５に予め複数用意しておき、これを選択的に与えるようにしてもよい。そしてこの場合は一旦Ｒ−バッファ３０４に書込まれたデータをこのユーザプロセス６６でホストプロトコルのデータに変換してＵＲ−バッファ３０６に格納した上で、パケットバッファ３０８に書込むのである。第２８図はデータ処理装置１側から本発明のプリンタ制御装置へ送出するデータの１例を示す。
　この例ではユーザプロセス「１」を指定するコード（例えばＥＳＣ　ＥＳＣ　Ｕ１）及びユーザプロセス「１」に適合する形態のターゲットデータを送出し、次に上記ユーザプロセス「１」とは異なるユーザプロセス「２」を指定するコード（例えばＥＳＣ　ＥＳＣ　Ｕ２）及びこのユーザプロセス「２」に適合する形態のターゲットデータを送出し、次にホストプロセスを指定するコード（例えばＥＳＣ　ＥＳＣ　Ｕ０）及びこれに適合するデータ（ネイティブデータ）を送出する。
　これを受け足プリンタは各データを自動的に連続印写することになる。
　また、プリンタ動作を制御する他のプロセスを変更する必要がないので、ユーザプロセス６６はデータの変換のみを行なう簡単なものになり、開発も容易である。
　第９図は、ビットマップ書込部３１の詳細ブロック図を示す。ビットマップ書込部の機能は大別して、ＢＭ−ＲＡＭ３２への描画機能と、プリントの際にＢＭ−ＲＡＭ３２のデータをプリントエンジン４へ出力する機能とに分かれる。
　ＢＭ−ＲＡＭ３２への描画機能は、さらに２つに分けられ、グラフィクイメージ書込部３１６により行われる線，円の描画と、フォントイメージ書込部３１１により行われるフォント描画とからなる。両書込部３１６，３１１ともビットマップ制御部インターフェース３１７を通じてビットマップ制御部３０から送られてくる中間コードで動作するロジック部であるが、グラフィックイメージ書込部３１６のほとんどの処理は、中間コード内のパラメータを解析してＢＭ−ＲＡＭ３２に描画するのに対して、フォントイメージ書込部３１１のほとんどの処理は、中間コード内のデータに従ってフォント部インターフェース３１４を通じてフォント部３３から読み込んだフォントイメージをＢＭ−ＲＡＭ３２に描画する。
　一方、プリントの際のデータ出力の機能は、プリントヘッド制御部インターフェース３１５により行われる。すなわち、ビットマップ制御部からインターフェース３１７を介して送られてくるプリント開始コードを受け取ると、プリントエンジン４のプリントヘッド制御部４２からバスＢ４を通じて送られてくる同期信号に従って、ＢＭ−ＲＡＭ３２のデータをプリントヘッド制御部に出力する。
　次にイメージエリアの考え方について説明する。第１０図に例を示す。第１０図において、全エリア（Ａ１）で示される部分が、ペーパのサイズに相当する。周縁のマージン・エリア（Ａ２）は、実際にペーパにプリントを行なう際の余白部分であり、印字データの描画が行われるのは、その内側のイメージ・エリア（Ａ３）の部分である。印字の開始は、イメージ・エリアの左上から行われ、文字は印字方向Ａ１０に従って順次印字される。途中、改行コードが入力された場合、改行方向Ａ１１に、改行幅Ａ１２だけ次の印字位置が移動する。また、復行コードが入力されると、イメージ・エリア左端、復行位置Ａ１３に次の印字位置が移動する。なお、マージン・エリアＡ２は、データ処理装置１からの指定によりページ単位に変更が可能である。
　次に、フローチャートを参照しながら本システムの動作説明を行なう。本システムのプログラムは次の３つに分かれている。
ホストプロセス　受信バッファ内のデータを解析し、描画部及びプリントエンジン部を制御するためのパケットデータを発生する。
パケットプロセス　ホストプロセスによって発生したパケットデータにより実際にＢＭ−ＲＡＭの描画、及びエンジンの制御を行なう。
ユーザプロセス　形態の異なるプロトコルの入力に対して、ホストプロセスが解析可能なプロトコルへ変換しホストプロセスに渡す。フォントカートリッジ、システムＲＯＭ３０５又はデータ処理装置１からのダウンロードによって供給される。プロトコル変換が必要なければ実行しない。
　これらのプロセスは独立したプログラムとなっており、優先順位のある時分割処理によって並行して動作している。優先順位はパケットプロセス、ホストプロセス、ユーザプロセスの順位である。この他にタイマー割り込みによりこれらのプロセスの管理を行なうスケジューラ、スタート時に起動されるスタートプロセスがある。
　次に各プロセスについて説明する。
〔スタートプロセス〕
　第１１図はスタートプロセスを示すフローチャートである。このプロセスはスタート時に１回だけ起動される。まず電源が投入されると（ステップ＃１）、内部の初期化を行ない（ステップ＃２）、Ｒ−バッファ、ＵＲ−バッファ、パケットバッファ（ＦＩＦＯ）のクリアを行なう（ステップ＃３，＃４，＃５）。次に、この後ホストプロセスを起動するため準備動作として、リクエストベクタのホストプロセスを示すビットをセットし（ステップ＃６）、カレントベクタの出力プロセスを示すビットをセットし（ステップ＃７）、ＣＲＴＰＲＳにユーザプロセスを示す番号を入れる（ステップ＃８）。リクエストベクタとは、タイマー割り込みによってスケジューラが起動されたとき、実行が中断されたプロセスがスケジューラに対して実行の放棄と他プロセスの起動要求を伝達するためのものであり、各プロセスに対応するビットをセットまたはリセットするようになっている。またカレントベクタは実行中のプロセスに対応するビットをセットするようになっていて、スケジューラが起動されたときは実行が中断されたプロセスのビットがセットされている。さらに、ＣＲＴＰＲＳはカレントベクタの示すプロセスの番号が入っていて、プロセスの番号は優先順位が高い程大きくなる。このリクエストベクタ、カレントベクタ、ＣＲＴＰＲＳを用いてスケジューラは次のプロセスの実行先を決定する（次の「スケジューラ」の項で詳細を述べる）。
　この後に、ＣＰＳブロックの初期化を行なう（ステップ＃９）。具体的には、各ＣＰＳでＣＰＵの実行アドレスポインタのデータを格納するエリアに、各プロセスプログラムのスタートアドレス値を入れ、スタックポインタを格納するエリアに所定のアドレス値を入れる。また必要に応じて他のポインタの初期値も入れる。
　これらの初期設定を終えると割り込みを許可し（ステップ＃１０）、タイマー割り込み待ち（ステップ＃１１）のループに入る。
〔スケジューラ〕
　第１２図はタイマー割り込みによって起動されるスケジューラを示すフローチャートである。まずタイマーによる割り込みが入ると（ステップ＃３０）、ＣＰＵの各レジスタの値をＣＰＳブロック内の退避エリアへ退避する（ステップ＃３１）。次にリクエストベクタにセットされているビットの内で、最優先のプロセス番号をＲＥＱＰＲＳに入れる（ステップ＃３２）。ここでＣＲＴＰＲＳには割り込み処理を行なう直前のプロセス番号が入っているので、これとＲＥＱＰＲＳを比較することによって、より優先順位の高いプロセスの起動リクエストがあるかどうかを判断する（ステップ＃３３）。上記プロセスの起動リクエストがない（ステップ＃３３でＮＯ）場合、処理中であったプロセス（ＣＲＴＰＲＳが示している）がリクエストベクタのビットをリセットして先の実行を放棄しているかどうかをチェックし（ステップ＃４２）、放棄していない（ステップ＃４２でＹＥＳ）の場合ＣＰＳブロックの退避エリアの各レジスタのデータをＣＰＵにセットして（ステップ＃３９）復帰する。この場合タイマー割り込みによって中断したプロセスがそのまま実行される。もし放棄している（ステップ＃４２でＮＯ）場合はＣＲＴＰＲＳの示すプロセスよりも下位であり、かつ最上位のプロセス番号をＲＥＱＰＲＳに入れて（ステップ＃４１）、上記プロセスの起動要求があった（ステップ＃３３でＹＥＳ）場合と同様の処理を行なう。ここではＣＲＴＰＲＳの示す実行を中断するプロセスのＣＰＳに退避エリアの値を転送し（ステップ＃３５）、ＲＥＱＰＲＳの示すプロセスのＣＰＳの値を退避エリアに転送する（ステップ＃３６）。さらに、ＣＲＴＰＲＳにＲＥＱＰＲＳの値を入れ（ステップ＃３７）、ＲＥＱＰＲＳの示すプロセスのカレントベクタのビットだけをセットし、他はリセットする（ステップ＃３８）。これらの処理によって退避エリアにはＲＥＱＰＲＳの示すプロセスのレジスタの値が入っているので、復帰先はＲＥＱＰＲＳの示すプロセスとなる。
〔ホストプロセス〕
　第１３図はホストプロセスの動きを示すフローチャートである。ホストプロセスの最初の起動は、前述のようにスタートプロセスがリクエストベクタを用いてスケジューラにホストプロセスの起動を要求し、タイマー割り込みによって起動されたスケジューラがホストプロセスに切り替わることによって行われる。このとき、制御部のＣＰＵ（３０３）のプログラムカウンタにホストプロセスの先頭アドレスが設定される。
　処理の流れを説明すると、まずホストプロセスに用いているフラグの初期化を行なう（ステップ＃５１）。具体的には、ユーザプロセスの実行の有無を示すＵＳＥＲＦフラグを０にセットし、受信データ処理ルーチンで仮イメージ編集中であることを示すＬＰＷＲＩＴＥを０にセットする。
　さらにホストプロセスが実行処理不可能な状態であることを示すＨＯＳＴＥＮＤフラグを０にセットし、ユーザプロセスとの共通フラグでありユーザプロセスの切り替え処理中であることを示すＵＳＥＲＷＡＩＴも０にセットしておく。そして、中間コード作成の準備としてフォント部３３よりフォント属性を読み込む（ステップ＃５２）。このときフォントカートリッジ内にディップスイッチ（ＤＩＰＳＷ）によってあらかじめ指定されたユーザプロセスが有るかどうかをチェックし（ステップ＃５３，＃５４）、有りの場合はシステムＲＡＭ３０７の所定の領域に指定されたユーザプロセスをロードし（ステップ＃５５）、ロード終了（ステップ＃５６）を待ってユーザプロセスの実行を示すＵＳＥＲＦフラグを１にセットし（ステップ＃５７、リクエストベクタのユーザプロセスのビットをセットする（ステップ＃５８）。これは、最下位のプロセスは常にリクエストベクタのビットをセットしておき、自分自身の実行を放棄することの無いようにするためである。その後、指定ユーザプロセスをエミュレーションベクタにセットする（ステップ＃５９）。これらの初期化動作（ステップ＃５１〜ステップ＃５９）を行った後、主ループ（ステップ＃６０〜ステップ＃６６）に入る。またディップスイッチＤＩＰＳＷでユーザプロセス指定のない（ステップ＃５３でＮＯ）場合、ＲＯＭ内にディップスイッチＤＩＰＳＷで指定されたユーザプロセスがない（ステップ＃５４でＮＯ）の場合、ステップ＃６０に潜入する。
　主ループではＦＩＦＯの空エリアがなくなるか、ＵＳＥＲＦ＝１（ステップ＃６１でＹＥＳ）のときＵＲ−バッファ、ＵＳＥＲＦ＝０（ステップ＃６１でＮＯ）のときは、Ｒ−バッファが空になる（ステップ＃６３でＮＯ）とき以外は受信データ処理（ステップ＃６４）を行なう。また、データ処理を行わない（ステップ＃６０、ステップ＃６２、ステップ＃６３でＮＯ）ときはＪＯＢＯＵＴ処理１を実行する（ステップ＃６９）。ここでＵＲ−パッファが空で（ステップ＃６２でＮＯ）ユーザプロセスの切り替え処理中であれば（ステップ＃６７でＹＥＳ）プロセス切り替え処理が終わったことを示すＨＯＳＴＥＮＤフラグをセットし（ステップ＃６８）その後ＪＯＢＯＵＴ処理１を実行する。ＪＯＢＯＵＴ処理１の内容は第１４図に示すが、これはホストプロセスがスケジューラに対して上位プロセス（実施例ではパケットプロセス）への切り替えを要求するために、リクエストベクタを更新する処理である。具体的には、リクエストベクタのパケットプロセスビットをセットし（ステップ＃７２）、ユーザプロセスが起動されていて（ステップ＃７３でＹＥＳ）ＨＯＳＴＥＮＤ、ＵＳＥＲＷＡＩＴフラグがセットされていない（ステップ＃７７でＮＯ、ステップ＃８０でＹＥＳ）のときにはリクエストベクタのホストプロセスのビットをリセットし自らの実行を放棄する。またユーザプロセスが無い（ステップ＃７３でＮＯ）場合は、ホストプロセスが最下位プロセスとなるのでリクエストベクタのホストプロセスのビットはセットしたままにしておく。
　ユーザプロセスの切替えに伴う処理においてはホストプロセスが引き続き処理可能、つまりＵＲ−バッファ３０６にデータが残っている（ステップ＃７３でＹＥＳ）場合は受信データ処理を続行する。この時、ＦＩＦＯに空きがない場合（＃６０でＮＯ）は、“ＪＯＢＯＵＴ処理１″が実行されるが、ユーザプロセスの切換中である場合（＃８０でＮＯ）にはリクエストベクタのホストプロセスビットのセット処理を実行しないため、次にパケットプロセスで“ＪＯＢＯＵＴ処理２″実行されてパケットプロセスのビットがリセットされ（ステップ＃２３１。第２１図）でも、リクエストベクタは、ホストプロセスがセットされたままであるので、ホストプロセスに復帰する。
　またＵＲ−バッファ３０６のデータが空である場合はステップ＃６８でＨＯＳＴＥＮＤフラグが立っているのでステップ＃７７でＹＥＳとなり、ＵＳＥＲＷＡＩＴフラグ及びＨＯＳＴＥＮＤフラグを０にセットする（ステップ＃７８及び＃７９）。この処理によってステップ＃８０ではＹＥＳとなり、リクエストベクタのホストプロセスのビットがリセットされる（ステップ＃７４）。このようにしてユーザプロセス切替え処理が完了し、次のユーザプロセスへ移ることができる。なお、これらの処理中はタイマー割り込みを禁止し（ステップ＃７１，＃７５）誤動作を防ぐようにしている。
　これらの流れから明らかなように、ユーザプロセス切り替え時でない（ＵＳＥＲＷＡＩＴ＝０）場合特定の条件（ＦＩＦＯの空エリアがない、Ｒ−バッファ又はＵＲ−バッファが空き等の条件。他に受信データ処理のサブルーチン（ステップ＃６４）でも設定している）によってＪＯＢＯＵＴ処理１が実行されリクエストフラグが更新されるまでは、タイマー割り込みによってスケジューラが起動されても再びホストプロセスに戻ってくるので受信データ処理を繰り返して行なうことになる。
　またユーザプロセス切り替え時にはＵＲ−バッファ３０６が空となりＨＯＳＴＥＮＤフラグがセットされるまでリクエストベクタのホストプロセスのビットはリセットされないのでホストプロセス６５及びパケットプロセス６４だけが起動され、残りのデータを処理してしまうまで待つようになっている。その後切り替え処理が終了すればリクエストベクタのホストプロセスビットをリセットするので、一度パケットプロセス６４に移った後何もせず切り替えられたユーザプロセス６６が起動されるようになる。
　これらの処理が終了すると、表示パネル４４上のテストキー９０２が押されているかどうかをチェックし（ステップ＃６５）、押されているときはテストプリント処理（ステップ＃６６）を行なう。押されていない場合は、主ループのスタートに戻る（ステップ＃６０）。
〔テストプリント〕
　テストプリントは使用中のフォント、プリントエンジン４の画像状態のチェックをする場合に用いる機能であり表示パネル４４上のテストキー９０２で起動される。表示パネル４４の制御はインターフェース制御部４０によって行われており、ビットマップ制御部３０ヘテストプリント要求を発する。際の起動はステップ＃６５において、この要求を検出することで行われる。
　第２７図はテストプリント処理（第１３図のステップ＃６６）の内容を詳細に示すフローチャートであり、このフローチャートに示すようにテストプリントが実行されるのはＢＭ−ＲＡＭ３２、パケットバッファ３０８に描画、仮編集が行われていない（ステップ＃８１及び＃８２においてＹＥＳ）場合である。このような条件が成立してテストプリントが可能である場合、まず実行中のモードを退避する（ステップ＃８３）。
　次にテストプリントのモードを設定する（ステップ＃８４）。この設定項目はコピー枚数、ソータ６の使用ビン等である。
　次にテストパターン（使用可能なフォントパターン、その時点での設定モードを含む）をパケットバッファ３０８に出力する（ステップ＃８５）。テストパターンにはユーザプロセス用のメッセージ印字エリアが設けてあり、ユーザプロセスが起動されているとき（ステップ＃８６でＵＳＥＲＦ＝１）は、予めデータ処理装置１からプロトコルによって指定されたデータ及び印字パターンを起動中のユーザプロセスのテストパターンユーザプロセスワークエリアよりデータを書込む（ステップ＃８７）。
　次に通常のモードでページイジェクト（ＰＡＧＥ　ＥＪＥＣＴ）ファンクションをパケットバッファ３０８に出力し（ステップ＃８８）元のモードに復帰させる（ステップ＃８９）。
〔受信データ処理〕
　受信データの処理フローを第１５図（ａ）、第１５図（ｂ）に示す。
　まず、受信データの処理を行なうために受信バッファよりデータを取り出す必要がある。受信データは第１８図に示すようにデータの受信割り込みによってデータ処理インターフェース３０１より取り込まれ、Ｒ−バッファ３０４に蓄積される。
　ここでユーザプロセス６６が有る場合はＲ−バッファ３０４のデータのプロトコル変換を行った後ＵＲ−バッファ３０６に蓄積するので、ＵＳＥＲＦが１のとき（ステップ＃１０１でＹＥＳ）はＵＲ−バッファ３０６より、０のとき（ステップ＃１０１でＮＯ）はＲ−バッファ３０４よりデータを取り込む（ステップ＃１０２、ステップ＃１０７）。
　ここで受信データは次の５つに分類される。
・ＩＦＣ関連コード（プリント・エンジン関連コード）（ステップ＃１０３〜ステップ＃１０５）
・ＪＯＢ制御コード（ＪＯＢＳＴＡＲＴ，ＰＡＧＥ　ＥＪＥＣＴ）（ステップ＃１０８〜ステップ＃１１２）
・書式制御コード（ステップ＃１１３〜ステップ＃１１４）
・印字データ（文字コード，グラフィックコード）（ステップ＃１３０，ステップ＃１４０）
・ユーザプロセス制御コード
　印字データの場合（ステップ＃１３０でＹＥＳ）は、ＬＰＷＲＩＴＥフラグを１として（ステップ＃１３１）対応するフォーマットの中間コードに変換してＦＩＦＯに出力する。文字コードの場合は、フォント・イメージ書込部３１１へのフォーマットと同じでフォント・パターンのアドレス（ステップ＃１３５）、イメージ・エリア上の印字位置に対応するＢＭ−ＲＡＭへの書込みアドレス（ステップ＃１３６）および書込みモード（ステップ＃１３７）よりなる。グラフィックコードの場合は、グラフィックイメージ書込部３１６へのコマンドと同一のフォーマットで出力される（ステップ＃１４１）。このとき、文字コードの場合は、次の文字印字位置を更新しておく（ステップ＃１２８）。
　ＩＦＣ関連コード（ステップ＃１０３）は、インターフェース制御部４０に出力するものであるが、印字データとの同期をとるため、印字データとは形式の異なるファンクションタイプの中間コードとしてＦＩＦＯへ出力しておく（ステップ＃１０４）。そして“ＪＯＢＯＵＴ処理１”を実行する（ステップ＃１０５）。ＪＯＢ制御コードには、ページの区切りに用いるＰＡＧＥ　ＥＪＥＣＴコード（ステップ＃１１０）と、ページ群の区切りに用いるＪＯＢＳＴＡＲＴ（ステップ＃１０８でＹＥＳ）の２つがある。どちらもＩＦＣ関連コードと同様に、ＦＩＦＯに出力する（ステップ＃１０９，ステップ＃１５２）。ＰＡＧＥ　ＥＪＥＣＴコードの場合ＰＡＧＥ　ＥＪＥＣＴ処理（ステップ＃１１１）の後、“ＪＯＢＯＵＴ処理１″を実行し（ステップ＃１１２）、復帰する。書式制御コード（ステップ＃１１３、ステップ＃１１４）は、印字の書式を制御する。同一イメージのコピー枚数を指定するコードであれば（ステップ＃１１５でＹＥＳ）、印字データとの同期をとるためＦＩＦＯに対応するファンクションを出力する（ステップ＃１１６）。
〔書式制御とＰＡＧＥ　ＥＪＥＣＴ処理〕
　第１７図は書式制御コードの処理シーケンスを示したものである。復行コードの場合（ステップ＃１６１でＹＥＳ）は次の印字位置を左端へ移動し（ステップ＃１６２）、改行コードの場合は次の印字位置を一行下へ移動する（ステップ＃１６５）。またランダム指定のとき（ステップ＃１６６でＹＥＳ）はオフセット値を加算した後、次の印字位置を更新する（ステップ＃１６７）。
　第１６図はＰＡＧＥ　ＥＪＥＣＴ処理のフローを示したものである。このＰＡＧＥ　ＥＪＥＣＴ処理は、ＦＩＦＯ上へ中間コードとして仮編集するときの仮想的な処理であり、中間データ処理（第２２図（ｂ））で実際にペーパの排出を行なうものとは異なる。ＰＡＧＥ　ＥＪＥＣＴ処理はまずパケットバッファ３０８へＰＡＧＥ　ＥＪＥＣＴを示す中間コードを出力する（ステップ＃１５２）。ここで、実際の排紙動作はパケットプロセスがこの中間コードを受け取った時に行われる。その後、次のページの編集に備えて次の印字位置を先頭に戻す（ステップ＃１５３）。これらの一連の動作は仮イメージ編集を示すＬＰＷＲＩＴＥフラグによって判別され（ステップ＃１５１、ステップ＃１５４）、空ページ出力を防ぐ。
　ユーザプロセスの切り替えはユーザプロセス指定コードによって行なう。このコードは透過性を有するコード、つまりどのようなプロトコル体系のコードとも区別できるようなコード（例えばＥＳＣＡＰＥ　ＣＯＤＥ＝２７を２回連続するようなもの）である必要がある。またこのコードのパラメータによってホストプロセス及び複数のユーザプロセスを切り替え、その値はＥＭＵＮＯＷにセットされる（ステップ＃１１８）。またその時起動されているユーザプロセスはエミュレーションベクタに割り当てられた値としてセットされている。
　ユーザプロセス指定コードの場合は（ステップ＃１１７でＹＥＳ）、パラメータの指定ユーザプロセス番号をシステムＲＡＭ３０７上のＥＭＵＮＯＷにセットした後（ステップ＃１１８）ユーザプロセスが起動されているか否かをチェックし（ステップ＃１１９）、ＵＳＥＲＦフラグが０のとき（ステップ＃１１９でＹＥＳ）、またはＵＳＥＲＦが１のときでＥＭＵＮＯＷとエミュレーションベクタとが違う（ステップ＃１２０でＹＥＳ）場合には、ＥＭＵＮＯＷで示されるユーザプロセスをロードし（ステップ＃１２１）、ロード終了を待った後（ステップ＃１２２）、ＵＳＥＲＦを１にセットする（ステップ＃１２３）。
　これらの処理が終了した後またはステップ＃１１９，＃１２０でＮＯの場合は、ユーザプロセスの初期化を行なうが、具体的には第７図（ａ）に示すカレントプロセスステータスブロックのユーザプロセス用退避エリアを初期化し（ステップ＃１２４）、最後にリクエストベクタのユーザプロセスのビットをセットする（ステップ＃１２６）。ユーザプロセス解除コードの場合は、ＵＳＥＲＦフラグを０として（ステップ＃１２８）、この後、リクエストベクタのユーザプロセスのビットをリセットする（ステップ＃１２９）。
　テストプリントのユーザプロセス印字エリアに書き込む情報の指定はユーザプロセステストプリントデータ指定コマンドで行なう。このコマンドでパラメータの値によって印字する情報を設定できるようになっている。このコマンドが受け付けられたとき（ステップ＃１３９でＹＥＳ）は、そのパラメータを解析し（ステップ＃１４０）、パラメータで指定されたエンジンステータスデータを入力（ステップ＃１４１）した後、テストプリントのユーザプロセス印字エリアに書き込む情報の仮編集を行ったデータをシステムＲＡＭ３０７上のＥＭＵＮＯＷの示すユーザプロセスのテストパターンユーザプロセスエリア（第２９図参照）に書き込む（ステップ＃１４２）。
〔パケットプロセス〕
　第１９図はパケットプロセスの処理を示すフローチャートである。
　まず電源が投入されると（ステップ＃２００）、ＢＭ−ＲＡＭのイメージエリアをクリアし（ステップ＃２０２）、制御フラグを初期化する（ステップ＃２０３）。具体的には、プリント状態を示すＪＯＢＡＣＴをクリアし、ＢＭ−ＲＡＭへの描画状態を示すＢＭＷＲＩＴＥをクリアし、同一枚数のコピー枚数を示すＣＯＰＹを１にセットし、同一枚数のコピー枚数を計算するＣＣＯＵＮＴを１にセットする。
　この後、主ループに入るが、主ループの行なう処理は、
・中間コードの解析とＢＭ−ＲＡＭへの描画（ステップ＃２１２〜ステップ＃２１５）と、
・プリント・シーケンス制御（ステップ＃２０５〜ステップ＃２１１）とがある。データの流れは次のようになる。まず、排紙条件フラグであるＪＯＢＡＣＴが１のときは、プリント・シーケンス（ステップ＃２０８、ステップ＃２１１）に入る。また、ＪＯＢＡＣＴが１でないときはＦＩＦＯから中間コードが有ることをチェックして（ステップ＃２１３）中間コード処理が行われる。
　ここでプリントシーケンスに入るとき（ステップ＃２０５）とＦＩＦＯ内のパケットデータが無くなったとき（ステップ＃２１５）は、下位のプロセスに実行を移すために第２１図のＪＯＢＯＵＴ処理２を実行する（ステップ＃２３０）。処理内容パケットプロセスのビットをリセット（ステップ＃２３１）することである。このとき最下位のプロセスにリクエストフラグが立っているので、最上位であるパケットプロセスがリクエストフラグを落とすことによりスケジューラは最下位プロセスに実行を移す。このようにパケットプロセスは優先順位が最上位となるのでプログラムが待ちの状態となるが（ステップ＃２０５の場合）、実行不能になる（ステップ＃２１５の場合）ときのみ下位プロセスへ処理を移す。
〔中間コード処理とプリント・シーケンス制御〕
　次に、ＦＩＦＯに蓄えられた中間コードの処理フローを、第２２図（ａ），（ｂ）に示す。
　ここでは、主に中間コードに応じたＢＭ−ＲＡＭへの描画と、プリント・エンジン部へのコマンド出力などのシーケンス制御を行なう。
　まず、印字データの場合（ステップ＃３０３でＹＥＳ）は、中間コードをフォント・イメージ書込部へ（ステップ＃３０４）、グラフィックの場合（ステップ＃３１０でＮ）はグラフィック・イメージ書込部へ出力（ステップ＃３１１）する。
　もし初めてのデータを書込む場合（ＢＭ−ＷＲＩＴＥフラグ＝０）（ステップ＃３０５でＹＥＳ）、ＢＭ−ＷＲＩＴＥフラグを１とし（ステップ＃３０６）、プリントエンジン４に対して給紙等の準備を先行させるためのペーパの先出しコマンドＰＦＣＭＤをインターフェース制御部４０に出力する（ステップ＃３０８）。これによりビットマップ方式データ処理装置３のプリント準備が終了すれば、感光体へのレーザ露光が直ちに可能となり、給紙時間に相当してスループットが向上する。
　ＩＦＣ関連コードや及びＪＯＢＳＴＡＲＴコードは、ＩＦＣへ出力される（ステップ＃３１２〜ステップ＃３１３）。
　コピー枚数設定の場合（ステップ＃３１９）は、コピー枚数ＣＯＰＹ更新する（ステップ＃３２０）。ＦＩＦＯ３０５からビットマップ書込部３１への出力は、中間コードデータがある限り順次行われるが、ＰＡＧＥ　ＥＪＥＣＴコードを検出すると（ステップ＃３１５でＹＥＳ）、１ページ分の信号変換が終了したのでプリント動作に入る。まず、コピー枚数ＣＯＰＹをカウントするためのＣＣＯＵＮＴフラグに設定されているコピー枚数をセットし、プリント起動処理に入る（ステップ＃３１７）（第２３図）。プリント起動処理では、プリント処理に入ったことを示すＪＯＢＡＣＴフラグをセットし（ステップ＃４０１）プリントヘッド制御部インターフェースをプリント可能状態にし（ステップ＃４０２）、インターフェース制御部４０にプリントコマンドＰＲＮＣＭＤを出力する（ステップ＃４０３）。
　これにより、プリントヘッド制御部インターフェース３１５では、プリントヘッド制御部４２の制御回路から送られてくるパルスに同期してＢＭ−ＲＡＭのデータをバスＢ４を通じて出力する。
　プリントが終了すると、まだＪＯＢＡＣＴフラグがセットされているため第１９図のステップ＃２０４からステップ＃２０５へ進み、ステップ＃２０６でインターフェース制御部４０からの露光終了コマンドＥＸＰＥＮＤの割り込み待ちとなる。ＥＸＰＥＮＤ受信の割り込み処理は第２４図に示すように、ＥＰＥＮＤフラグをセットしリクエストベクタのパケットプロセスのビットをリセットする。ＥＸＰＥＮＤを検出するとＥＰＥＮＤフラグが１となりループを抜けて同一イメージのコピー制御を行なう（ステップ＃２０８〜ステップ＃２１１）。まず、コピー枚数カウンタＣＣＯＵＮＴを減算し（ステップ＃２０８）、所定枚数のコピーが終了したかチェックする（ステップ＃２０９）。終了の場合はプリントＥＮＤ処理に入る（第２０図）。ここでは、次のイメージの描画のためＢＭ−ＲＡＭをクリアし、ステップ＃２４１、プリント状態解除のためＪＯＢＡＣＴフラグをリセットし（ステップ＃２４２）、ＢＭ−ＲＡＭへの描画状態を示すＢＭＷＲＩＴＥのクリアを行なう（ステップ＃２４３）。コピー未終了の場合は再び、同一イメージでプリントを開始する（ステップ＃２１１）。
〔ユーザプロセス〕
　第２５図はユーザプロセスの処理例を示すものである。ユーザプロセス自体は対応するプロトコルによっていくつかのプログラムが存在するが、基本的な形態はこのようになっている。特に、（ステップ＃５０１〜＃５０３，＃５０７，＃５１０）のステップは各ユーザプロセスで共通化しておかないと他プロセスとの対応が取れなくなる。
　まず、Ｒ−バッファにデータが有ることをチェックし（ステップ＃５０１）、その後にＵＲ−バッファの空きをチェックする（ステップ＃５０２）。ＵＲ−バッファの空きがないときは（ステップ＃５０２でＮＯ）、ホストプロセスの起動要求をリクエストベクタによって行ない（ステップ＃５１０）、ＵＲ−バッファに空きを作るようにする。
　ＵＲ−バッファの空きがあるときは（ステップ＃５０２でＹＥＳ）、Ｒ−バッファよりデータを取り込み（ステップ＃５０３）、プロトコル変換処理（ステップ＃５０４〜＃５０６，＃５０８，＃５０９）を行なう。
　ユーザプロセス指定コードの場合（ステップ＃５１１でＹＥＳ）は、描画中のデータがある場合排紙させるためにページイジェクトコードを送り（ステップ＃５１２）、ユーザプロセス指定コードをそのままＵＲ−バッファ３０６へ送る（ステップ＃５１３）。この後、上位プロセスのリクエストベクタのビットをセットし（ステップ＃５１３）、エミレーションベクタをユーザプロセス指定コードのパラメータで指定されたプロセスの値にセットする（ステップ＃５１５）。さらに前のユーザプロセスの残りデータを処理するためにＵＳＥＲＷＡＩＴをセットする（ステップ＃５１６）。そしてスケジューラの割り込み待ちとなる（ステップ＃５１７）。
　ＵＳＥＲＷＡＩＴはホストプロセス６１と共通フラグとなっていてこのフラグがセットされるとホストプロセス６５がＵＲ−バッファ３０６内のデータを処理してしまうまで指定のユーザプロセスが実行されず誤動作を防ぐ。
　これらのプロセスの切り替えタイミングの例を示したのが第２６図である。このように、定期的なタイマー割り込みによってスケジューラが起動されるが、プロセスが切り替わるのは各プロセスの実行放棄条件が満たされたときである。
〔効果〕
　以上の如き第１，第２の発明に係るプリンタ制御装置においては、コマンド体系の異なる複数のデータをプリントするため、各コマンド体系毎に用意された複数のデータ変換プログラムを第１メモリに格納し、またデータ処理装置から送られてくるデータを第２メモリに格納することとし、第２メモリの格納データからコマンド体系を判別し、この判別結果から第１メモリの格納データ変換プログラムを選択し、プログラム切り替え手段でデータ変換プログラムの切り替えを行い、切り替えたデータ変換プログラムによてデータを解析し、プログラム切り替え制御手段によって、連続してコマンド体系の異なるデータを受信した場合、第２メモリの格納データの解析終了後に、コマンド体系に応じたデータ変換プログラムの切り替えを行うから、プリンタ側でのハードウエア操作を行うことなくデータ処理装置側よりリモートでプロトコル（コマンド体系）を切り替えることが可能となり、操作性が向上する。
　さらに、解析プログラムを外部のデータ処理装置よりダウンロード可能としたことによって、種々のプロトコルに対応が可能となる。
【図面の簡単な説明】
第１図は本発明のプリンタの構成図、第２図はプリンタの外観を示す斜視図、第３図は表示パネルの詳細を示す正面図、第４図はプリンタの制御回路要部のブロック図、第５図は本発明のビットマップ制御部の構成を示すブロック図、第６図は本発明装置のソフトウェアの構成を示す概念図、第７図はシステムＲＡＭの構成を示す概念図、第８図は受信データの流れを示すブロック図、第９図はビットマップ書込部の詳細ブロック図、第１０図はイメージエリアの説明図、第１１図はスタートプロセスを示すフローチャート、第１２図はタイマー割り込みによって起動されるスケジューラを示すフローチャート、第１３図はホストプロセスの動きを示すフローチャート、第１４図はＪＯＢＯＵＴ処理１の内容を示すフローチャート、第１５図は受信データの処理手順を示すフローチャート、第１６図はＰＡＧＥ　ＥＪＥＣＴ装置の手順を示すフローチャート、第１７図は書式制御コードの処理手順を示すフローチャート、第１８図は受信データの割り込み処理を示すフローチャート、第１９図はパケットプロセスの処理を示すフローチャート、第２０図はプリントＥＮＤ処理を示すフローチャート、第２１図はＪＯＢＯＵＴ処理２を示すフローチャート、第２２図は中間コード処理を示すフローチャート、第２３図はプリント起動処理を示すフローチャート、第２４図はＥＸＰＥＮＤ受信割り込み処理を示すフローチャート、第２５図はユーザプロセスを示すフローチャート、第２６図はプロセスの切り替えタイミングの例を示すタイムチャート、第２７図はテストプリントの処理手順を示すフローチャート、第２８図はデータ処理装置からの送信データの１例を示すフォーマット図である。
６１……タイマー割り込み、６２……スケジューラ
６３……スタートプロセス、６４……パケットプロセス
６５……ホストプロセス、６６……ユーザプロセス