JP2687408B2 - プリンタ制御装置 - Google Patents
プリンタ制御装置Info
- Publication number
- JP2687408B2 JP2687408B2 JP63087569A JP8756988A JP2687408B2 JP 2687408 B2 JP2687408 B2 JP 2687408B2 JP 63087569 A JP63087569 A JP 63087569A JP 8756988 A JP8756988 A JP 8756988A JP 2687408 B2 JP2687408 B2 JP 2687408B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- memory
- code
- conversion program
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Lifetime
Links
Landscapes
- Record Information Processing For Printing (AREA)
Description
【発明の詳細な説明】 〔産業上の利用分野〕 本発明は汎用プリンタの制御装置に関するものであ
る。
る。
コンピュータシステムにおける出力装置たるプリンタ
と、これを印字させるべきデータを送出するデータ処理
装置とは両者間で上記データ及び制御データの授受が行
われるが、そのためにはプリンタ,データ処理装置のプ
ロトコル(コマンド体系)が同一である必要がある。特
定のデータ処理装置に対応して設計されるプリンタにお
いてはデータ処理装置のプロトコルと同一のプロトコル
仕様を定めればよい。
と、これを印字させるべきデータを送出するデータ処理
装置とは両者間で上記データ及び制御データの授受が行
われるが、そのためにはプリンタ,データ処理装置のプ
ロトコル(コマンド体系)が同一である必要がある。特
定のデータ処理装置に対応して設計されるプリンタにお
いてはデータ処理装置のプロトコルと同一のプロトコル
仕様を定めればよい。
これに対しプロトコルが異なる複数種のデータ処理装
置に接続されて使用されるべき汎用プリンタにおいては
プリンタ固有のプロトコルの仕様としておく一方、これ
に適合しないプロトコルのデータ処理装置との接続のた
めにプロトコル変換装置を備えている。
置に接続されて使用されるべき汎用プリンタにおいては
プリンタ固有のプロトコルの仕様としておく一方、これ
に適合しないプロトコルのデータ処理装置との接続のた
めにプロトコル変換装置を備えている。
プロトコル変換装置としては、データ処理装置から出
力される制御情報を、その要求する機能に相当するプリ
ンタ側の制御情報に変換するプロトコル変換プログラム
(エミュレーションソフトウェア)をプリンタ側の制御
用プロセッサで作動させ、データ処理装置から出力され
る制御情報をプリンタのもつ制御情報に変換するものが
一般的であった。
力される制御情報を、その要求する機能に相当するプリ
ンタ側の制御情報に変換するプロトコル変換プログラム
(エミュレーションソフトウェア)をプリンタ側の制御
用プロセッサで作動させ、データ処理装置から出力され
る制御情報をプリンタのもつ制御情報に変換するものが
一般的であった。
この場合、プリンタ側では変換された制御情報から更
にプリンタの動作を制御する内部パラメータに解読変換
するプロセスが行われる。
にプリンタの動作を制御する内部パラメータに解読変換
するプロセスが行われる。
而して複数種のエミュレーションソフトウェアを備え
たものにおいては、一旦いずれかのエミュレーションソ
フトウェアを起動すると、ハードウェアでこれをリセッ
トすることによってのみ他のエミュレーションソフトウ
ェアへの切換が可能な構成となっていた。
たものにおいては、一旦いずれかのエミュレーションソ
フトウェアを起動すると、ハードウェアでこれをリセッ
トすることによってのみ他のエミュレーションソフトウ
ェアへの切換が可能な構成となっていた。
従って特定のデータ処理装置に接続した状態で継続的
に使用する場合には何らの不都合はないが、プリンタを
異プロトコル仕様の複数のデータ処理装置と接続し随時
データ処理装置を切換えて使用する等の用途には適用で
きないという不都合があった。
に使用する場合には何らの不都合はないが、プリンタを
異プロトコル仕様の複数のデータ処理装置と接続し随時
データ処理装置を切換えて使用する等の用途には適用で
きないという不都合があった。
本発明は斯かる問題点を解決するためになされたもの
であり、データ処理装置側からの制御信号で実行すべき
エミュレーションソフトウェアの切換を可能とする構成
として上述の用途に供し得るようにしたプリンタ制御装
置を提供することを目的とする。
であり、データ処理装置側からの制御信号で実行すべき
エミュレーションソフトウェアの切換を可能とする構成
として上述の用途に供し得るようにしたプリンタ制御装
置を提供することを目的とする。
第1の発明に係るプリンタ制御装置は、外部のデータ
処理装置から与えられるコマンド体系の異なる複数種類
のデータを解析し、解析したデータを印字部に与えるこ
とによってプリント動作を制御するプリンタ制御装置に
おいて、コマンド体系の異なる複数のデータをプリント
するために、各コマンド体系毎に用意された複数のデー
タ変換プログラムを格納する第1メモリと、データ処理
装置から送られてくるデータを格納する第2メモリと、
該第2メモリに格納されたデータからコマンド体系を判
別し、判別結果に応じて前記第1メモリに格納されたデ
ータ変換プログラムのいずれかを選択することにより、
データ変換プログラムの切り替えを行うプログラム切り
替え手段と、選択されたデータ変換プログラムによって
データを解析するデータ解析手段と、連続してコマンド
体系の異なるデータを受信した場合、初めに第2メモリ
に格納されたデータの解析中にはデータ変換プログラム
の切り替えを禁止し、第2メモリに格納されたデータの
解析後、続いて第2メモリに格納されたデータのコマン
ド体系に応じたデータ変換プログラムの切り替えを行う
プログラム切り替え制御手段とを行うことを特徴とす
る。
処理装置から与えられるコマンド体系の異なる複数種類
のデータを解析し、解析したデータを印字部に与えるこ
とによってプリント動作を制御するプリンタ制御装置に
おいて、コマンド体系の異なる複数のデータをプリント
するために、各コマンド体系毎に用意された複数のデー
タ変換プログラムを格納する第1メモリと、データ処理
装置から送られてくるデータを格納する第2メモリと、
該第2メモリに格納されたデータからコマンド体系を判
別し、判別結果に応じて前記第1メモリに格納されたデ
ータ変換プログラムのいずれかを選択することにより、
データ変換プログラムの切り替えを行うプログラム切り
替え手段と、選択されたデータ変換プログラムによって
データを解析するデータ解析手段と、連続してコマンド
体系の異なるデータを受信した場合、初めに第2メモリ
に格納されたデータの解析中にはデータ変換プログラム
の切り替えを禁止し、第2メモリに格納されたデータの
解析後、続いて第2メモリに格納されたデータのコマン
ド体系に応じたデータ変換プログラムの切り替えを行う
プログラム切り替え制御手段とを行うことを特徴とす
る。
また、第2の発明にあっては、前記第1メモリは、固
有のデータ変換プログラムを格納してある第1エリア
と、前記固有のデータ変換プログラムとは別の任意のデ
ータ変換プログラムを格納するための第2エリアとを有
し、前記データ処理装置より送信されるデータ変換プロ
グラムを前記第2エリアに格納することを特徴とする。
有のデータ変換プログラムを格納してある第1エリア
と、前記固有のデータ変換プログラムとは別の任意のデ
ータ変換プログラムを格納するための第2エリアとを有
し、前記データ処理装置より送信されるデータ変換プロ
グラムを前記第2エリアに格納することを特徴とする。
なおこのプリンタ制御装置は、印写部と一体的に組立
てられている構成、つまりプリンタ内蔵としていてもよ
く、またプリンタとは別体としてもよい。
てられている構成、つまりプリンタ内蔵としていてもよ
く、またプリンタとは別体としてもよい。
データ処理装置の所定信号を発すると前記メモリの任
意のプログラムが起動する。またエミュレーションソフ
トウェアは外部からこれを与えて前記メモリに書込ませ
ることができる。
意のプログラムが起動する。またエミュレーションソフ
トウェアは外部からこれを与えて前記メモリに書込ませ
ることができる。
更にデータ処理装置側からの信号により随時エミュレ
ーションソフトウェアと印写部に固有のプログラムとを
切換えて実行し得る。
ーションソフトウェアと印写部に固有のプログラムとを
切換えて実行し得る。
以下本発明をその実施例を示す図面に基づいて説明す
る。
る。
まず、本発明に係るプリンタの概略構成について説明
する。第1図は本発明のプリンタ10の構成を示すブロッ
ク図である。汎用のデータ処理装置1からのデータは、
データ処理装置1のスループットを改善するために、フ
ァイルバッファ2に格納された後、プリンタ10に出力さ
れる。プリンタ10は、ビットマップ方式のデータ処理装
置BMU3、即ち本発明のプリンタ制御装置と、電子写真プ
ロセスレーザ等を備えるプリントエンジン4と、外部給
紙ユニット5、ソータ6等の付属装置よりなる。
する。第1図は本発明のプリンタ10の構成を示すブロッ
ク図である。汎用のデータ処理装置1からのデータは、
データ処理装置1のスループットを改善するために、フ
ァイルバッファ2に格納された後、プリンタ10に出力さ
れる。プリンタ10は、ビットマップ方式のデータ処理装
置BMU3、即ち本発明のプリンタ制御装置と、電子写真プ
ロセスレーザ等を備えるプリントエンジン4と、外部給
紙ユニット5、ソータ6等の付属装置よりなる。
第2図は、プリンタシステムの外観を示すものであ
る。
る。
プリントエンジン4の筐体内には電子写真プロセス及
びBMU3を内蔵しており、アクセサリとして外部給紙ユニ
ット5と、ソータ6が接続可能である。また、プリント
エンジン4には、システムの状態を示す表示部及び簡単
な操作を行なうためのキーが並べられた表示パネル44が
装着されている。
びBMU3を内蔵しており、アクセサリとして外部給紙ユニ
ット5と、ソータ6が接続可能である。また、プリント
エンジン4には、システムの状態を示す表示部及び簡単
な操作を行なうためのキーが並べられた表示パネル44が
装着されている。
第3図は、表示パネル44の詳細を示すものである。90
1〜903が入力キーであり、910〜918が表示素子である。
キー901は、プリント動作を一時中断させるためのポー
ズキー、902はテストプリントを起動するためのテスト
キーであり、テストキー902は903のシフトキーと同時に
押すことによってプリントを中断するキャンセルキーと
なる。
1〜903が入力キーであり、910〜918が表示素子である。
キー901は、プリント動作を一時中断させるためのポー
ズキー、902はテストプリントを起動するためのテスト
キーであり、テストキー902は903のシフトキーと同時に
押すことによってプリントを中断するキャンセルキーと
なる。
第4図は、プリンタ10の制御系の概略ブロック図であ
る。ビットマップ方式データ処理装置3は、ビットマッ
プ用のメモリBM−RAM32、このBM−RAM32に描画を行なう
ビットマップ書込部31(第9図参照)、フォント部33及
びこれらの制御を行なうビットマップ制御部30よりな
る。プリントエンジン4との接続は、制御データ(枚
数、アクセサリーなど)用のバスB3とイメージデータ用
のバスB4により行う。
る。ビットマップ方式データ処理装置3は、ビットマッ
プ用のメモリBM−RAM32、このBM−RAM32に描画を行なう
ビットマップ書込部31(第9図参照)、フォント部33及
びこれらの制御を行なうビットマップ制御部30よりな
る。プリントエンジン4との接続は、制御データ(枚
数、アクセサリーなど)用のバスB3とイメージデータ用
のバスB4により行う。
プリントエンジン4は前述の印写部に相当し、3つの
コントローラを中心に構成される。まず、インターフェ
ース制御部(IFC)40はビットマップ制御部30からの制
御データの処理及び表示パネル制御を行い、また内部バ
スB5を通じてプリントエンジン4全体のタイミングの制
御を行なう。
コントローラを中心に構成される。まず、インターフェ
ース制御部(IFC)40はビットマップ制御部30からの制
御データの処理及び表示パネル制御を行い、また内部バ
スB5を通じてプリントエンジン4全体のタイミングの制
御を行なう。
電子写真制御部41は、内部バスB5を通じてインターフ
ェース制御部40から送られるデータに応じて、電子写真
プロセス部45の制御を行なう。
ェース制御部40から送られるデータに応じて、電子写真
プロセス部45の制御を行なう。
プリントヘッド制御部42は、内部バスB4を通じてビッ
トマップ書込部31から送られてくる情報に従って、プリ
ントヘッド部43の半導体レーザの発光及びポリゴン・モ
ータの回転を制御する。また、外部給紙ユニット5及び
ソータ6も、内部バスB5を通じてインターフェース制御
部40から制御される。
トマップ書込部31から送られてくる情報に従って、プリ
ントヘッド部43の半導体レーザの発光及びポリゴン・モ
ータの回転を制御する。また、外部給紙ユニット5及び
ソータ6も、内部バスB5を通じてインターフェース制御
部40から制御される。
第5図は本発明によるビットマップ制御部30の構成を
示すものである。全体の構成としては、データ入出力用
のインターフェース(301,309,310,311)と、制御部の
中心となるCPU303とそのシステムROM,RAM(305,307)、
CPU303に定期的に割り込みをかけるタイマー302、そし
てデータ蓄積用のバッファメモリ(304,306,308)から
成る。
示すものである。全体の構成としては、データ入出力用
のインターフェース(301,309,310,311)と、制御部の
中心となるCPU303とそのシステムROM,RAM(305,307)、
CPU303に定期的に割り込みをかけるタイマー302、そし
てデータ蓄積用のバッファメモリ(304,306,308)から
成る。
次に各部の動作を説明する。まずバスB2を通してデー
タ処理装置インターフェース301より取り込まれたデー
タはR−バッファ304に蓄積される。システムROM305内
には、第6図に示すようにホスト、つまりデータ処理装
置から送られてきたデータの仮編集を行ない、データを
パケットとしてパケットバッファ308に書き込むホスト
プロセス65と、パケットを解析してビットマップ書込部
インターフェース310よりビットマップ書込部31へ、ま
たはフォントインターフェース309を通じてフォント部
へ、さらにプリントエンジンインターフェース311を通
してインターフェース制御部40へデータを送るパケット
プロセス64という独立したプログラムが格納されてい
る。そして、同じくシステムROM305に書き込まれている
スケジューラ62がタイマー302からのタイマー割り込み6
1によって各プロセスを状態に応じて切り替えている。
タ処理装置インターフェース301より取り込まれたデー
タはR−バッファ304に蓄積される。システムROM305内
には、第6図に示すようにホスト、つまりデータ処理装
置から送られてきたデータの仮編集を行ない、データを
パケットとしてパケットバッファ308に書き込むホスト
プロセス65と、パケットを解析してビットマップ書込部
インターフェース310よりビットマップ書込部31へ、ま
たはフォントインターフェース309を通じてフォント部
へ、さらにプリントエンジンインターフェース311を通
してインターフェース制御部40へデータを送るパケット
プロセス64という独立したプログラムが格納されてい
る。そして、同じくシステムROM305に書き込まれている
スケジューラ62がタイマー302からのタイマー割り込み6
1によって各プロセスを状態に応じて切り替えている。
システムRAM307内には第7図(a)に示すようなカレ
ント・プロセス・ステータス(CPS)ブロックという領
域があり、各プロセスの切り替え時にCPU303のレジスタ
内容がCPS内に記憶されるので、各プロセスは独立して
動作を行うことができる。CPSブロックはパケットプロ
セス64,ホストプロセス65,ユーザプロセス66(後述)夫
々のための退避エリアと、これらプロセスに共用の退避
エリアとがある。
ント・プロセス・ステータス(CPS)ブロックという領
域があり、各プロセスの切り替え時にCPU303のレジスタ
内容がCPS内に記憶されるので、各プロセスは独立して
動作を行うことができる。CPSブロックはパケットプロ
セス64,ホストプロセス65,ユーザプロセス66(後述)夫
々のための退避エリアと、これらプロセスに共用の退避
エリアとがある。
また、システムROM305にはプリンタ起動時のため初期
化のスタートプロセス63が格納されており、ホストプロ
セス65より直接スタートさせる。
化のスタートプロセス63が格納されており、ホストプロ
セス65より直接スタートさせる。
システムRAM307のメモリ構成を第7図(b)図に示
す。システムRAM307のダウンロードセグメントには、ユ
ーザプロセス66のための領域66′が設けられている。デ
ータ処理装置インターフェース301を通してデータ処理
装置1から送られてくるか、またはフォントインターフ
ェース309を通してフォントカートリッジから読込んだ
別のプロセス(ユーザプロセス66)をシステムRAM307の
この領域66′にロードする。そうするとスケジューラ62
によって他のプロセスと同様に時分割処理を行なうこと
ができる。このユーザプロセス66は、本プリンタ固有の
プロトコル(ホストプロトコル)と異なるプロトコルで
送られてきたデータをホストプロトコルに変換するプロ
グラムである。この場合のデータの流れは第8図に示す
ように例えばデータ処理装置1からインターフェース30
1を介してシステムRAM307内のR−バッファ304に書込
み、このR−バッファ304内に蓄積されている受信デー
タ(ホストプロトコル以外のプロトコルのデータ)をユ
ーザプロセス66で取り出し、ホストプロトコルのデータ
に変換してシステムRAM307内のUR−バッファ306に蓄積
する。データの仮編集を行なうホストプロセス65は、ユ
ーザプロセス66の起動時にはUR−バッファ306を取出し
てホストプロトコルのデータとしてこれを取扱えばよ
く、またユーザプロセスの非起動時、つまりホストプロ
トコルのデータである場合は単にR−バッファ304内の
データを取り出すだけでよく、他に変更の必要がない。
す。システムRAM307のダウンロードセグメントには、ユ
ーザプロセス66のための領域66′が設けられている。デ
ータ処理装置インターフェース301を通してデータ処理
装置1から送られてくるか、またはフォントインターフ
ェース309を通してフォントカートリッジから読込んだ
別のプロセス(ユーザプロセス66)をシステムRAM307の
この領域66′にロードする。そうするとスケジューラ62
によって他のプロセスと同様に時分割処理を行なうこと
ができる。このユーザプロセス66は、本プリンタ固有の
プロトコル(ホストプロトコル)と異なるプロトコルで
送られてきたデータをホストプロトコルに変換するプロ
グラムである。この場合のデータの流れは第8図に示す
ように例えばデータ処理装置1からインターフェース30
1を介してシステムRAM307内のR−バッファ304に書込
み、このR−バッファ304内に蓄積されている受信デー
タ(ホストプロトコル以外のプロトコルのデータ)をユ
ーザプロセス66で取り出し、ホストプロトコルのデータ
に変換してシステムRAM307内のUR−バッファ306に蓄積
する。データの仮編集を行なうホストプロセス65は、ユ
ーザプロセス66の起動時にはUR−バッファ306を取出し
てホストプロトコルのデータとしてこれを取扱えばよ
く、またユーザプロセスの非起動時、つまりホストプロ
トコルのデータである場合は単にR−バッファ304内の
データを取り出すだけでよく、他に変更の必要がない。
このユーザプロセス66は第7図(c)のようにこのプ
リンタ制御装置、つまりデータ処理装置3で対応し得る
プロトコル別に複数個システムROM305内に保持してお
き、データ処理装置1から与えられるユーザプロセス指
定コードによって指定のユーザプロセスをシステムRAM3
07内のダウンロード領域(ユーザプロセス領域)66′に
ロードさせるようにしてもよい。
リンタ制御装置、つまりデータ処理装置3で対応し得る
プロトコル別に複数個システムROM305内に保持してお
き、データ処理装置1から与えられるユーザプロセス指
定コードによって指定のユーザプロセスをシステムRAM3
07内のダウンロード領域(ユーザプロセス領域)66′に
ロードさせるようにしてもよい。
以上要約するとホストプロトコルはホストプロセス65
中に用意されており、このプロトコルで送信されてきた
データはシステムRAM307のR−バッファ304に蓄積し、
これを仮編集してシステムRAM307のパケットバッファ30
8に書込むのである。
中に用意されており、このプロトコルで送信されてきた
データはシステムRAM307のR−バッファ304に蓄積し、
これを仮編集してシステムRAM307のパケットバッファ30
8に書込むのである。
一方、ホストプロトコル以外のプロトコルで送られて
きたデータのホストプロトコルでのデータへの変換プロ
グラム、つまりユーザプロセス66(1種類でも複数でも
よい)はシステムRAM307のダウンロード領域66′に書込
まれるが、これはデータ処理装置1から与えることとし
ても、またフォントカートリッジ等外付けメモリから与
えることとしてもよく、更にシステムRAM305に予め複数
用意しておき、これを選択的に与えるようにしてもよ
い。そしてこの場合は一旦R−バッファ304に書込まれ
たデータをこのユーザプロセス66でホストプロトコルの
データに変換してUR−バッファ306に格納した上で、パ
ケットバッファ308に書込むのである。第28図はデータ
処理装置1側から本発明のプリンタ制御装置へ送出する
データの1例を示す。
きたデータのホストプロトコルでのデータへの変換プロ
グラム、つまりユーザプロセス66(1種類でも複数でも
よい)はシステムRAM307のダウンロード領域66′に書込
まれるが、これはデータ処理装置1から与えることとし
ても、またフォントカートリッジ等外付けメモリから与
えることとしてもよく、更にシステムRAM305に予め複数
用意しておき、これを選択的に与えるようにしてもよ
い。そしてこの場合は一旦R−バッファ304に書込まれ
たデータをこのユーザプロセス66でホストプロトコルの
データに変換してUR−バッファ306に格納した上で、パ
ケットバッファ308に書込むのである。第28図はデータ
処理装置1側から本発明のプリンタ制御装置へ送出する
データの1例を示す。
この例ではユーザプロセス「1」を指定するコード
(例えばESC ESC U1)及びユーザプロセス「1」に適合
する形態のターゲットデータを送出し、次に上記ユーザ
プロセス「1」とは異なるユーザプロセス「2」を指定
するコード(例えばESC ESC U2)及びこのユーザプロセ
ス「2」に適合する形態のターゲットデータを送出し、
次にホストプロセスを指定するコード(例えばESC ESC
U0)及びこれに適合するデータ(ネイティブデータ)を
送出する。
(例えばESC ESC U1)及びユーザプロセス「1」に適合
する形態のターゲットデータを送出し、次に上記ユーザ
プロセス「1」とは異なるユーザプロセス「2」を指定
するコード(例えばESC ESC U2)及びこのユーザプロセ
ス「2」に適合する形態のターゲットデータを送出し、
次にホストプロセスを指定するコード(例えばESC ESC
U0)及びこれに適合するデータ(ネイティブデータ)を
送出する。
これを受けたプリンタは各データを自動的に連続印写
することになる。
することになる。
また、プリンタ動作を制御する他のプロセスを変更す
る必要がないので、ユーザプロセス66はデータの変換の
みを行なう簡単なものになり、開発も容易である。
る必要がないので、ユーザプロセス66はデータの変換の
みを行なう簡単なものになり、開発も容易である。
第9図は、ビットマップ書込部31の詳細ブロック図を
示す。ビットマップ書込部の機能は大別して、BM−RAM3
2への描画機能と、プリントの際にBM−RAM32のデータを
プリントエンジン4へ出力する機能とに分かれる。
示す。ビットマップ書込部の機能は大別して、BM−RAM3
2への描画機能と、プリントの際にBM−RAM32のデータを
プリントエンジン4へ出力する機能とに分かれる。
BM−RAM32への描画機能は、さらに2つに分けられ、
グラフィクイメージ書込部316により行われる線,円の
描画と、フォントイメージ書込部311により行われるフ
ォント描画とからなる。両書込部316,311ともビットマ
ップ制御部インターフェース317を通じてビットマップ
制御部30から送られてくる中間コードで動作するロジッ
ク部であるが、グラフィックイメージ書込部316のほと
んどの処理は、中間コード内のパラメータを解析してBM
−RAM32に描画するのに対して、フォントイメージ書込
部311のほとんどの処理は、中間コード内のデータに従
ってフォント部インターフェース314を通じてフォント
部33から読み込んだフォントイメージをBM−RAM32に描
画する。
グラフィクイメージ書込部316により行われる線,円の
描画と、フォントイメージ書込部311により行われるフ
ォント描画とからなる。両書込部316,311ともビットマ
ップ制御部インターフェース317を通じてビットマップ
制御部30から送られてくる中間コードで動作するロジッ
ク部であるが、グラフィックイメージ書込部316のほと
んどの処理は、中間コード内のパラメータを解析してBM
−RAM32に描画するのに対して、フォントイメージ書込
部311のほとんどの処理は、中間コード内のデータに従
ってフォント部インターフェース314を通じてフォント
部33から読み込んだフォントイメージをBM−RAM32に描
画する。
一方、プリントの際のデータ出力の機能は、プリント
ヘッド制御部インターフェース315により行われる。す
なわち、ビットマップ制御部からインターフェース317
を介して送られてくるプリント開始コードを受け取る
と、プリントエンジン4のプリントヘッド制御部42から
バスB4を通じて送られてくる同期信号に従って、BM−RA
M32のデータをプリントヘッド制御部に出力する。
ヘッド制御部インターフェース315により行われる。す
なわち、ビットマップ制御部からインターフェース317
を介して送られてくるプリント開始コードを受け取る
と、プリントエンジン4のプリントヘッド制御部42から
バスB4を通じて送られてくる同期信号に従って、BM−RA
M32のデータをプリントヘッド制御部に出力する。
次にイメージエリアの考え方について説明する。第10
図に例を示す。第10図において、全エリア(A1)で示さ
れる部分が、ペーパのサイズに相当する。周縁のマージ
ン・エリア(A2)は、実際にペーパにプリントを行なう
際の余白部分であり、印字データの描画が行われるの
は、その内側のイメージ・エリア(A3)の部分である。
印字の開始は、イメージ・エリアの左上から行われ、文
字は印字方向A10に従って順次印字される。途中、改行
コードが入力された場合、改行方向A11に、改行幅A12だ
け次の印字位置が移動する。また、復行コードが入力さ
れると、イメージ・エリア左端、復行位置A13に次の印
字位置が移動する。なお、マージン・エリアA2は、デー
タ処理装置1からの指定によりページ単位に変更が可能
である。
図に例を示す。第10図において、全エリア(A1)で示さ
れる部分が、ペーパのサイズに相当する。周縁のマージ
ン・エリア(A2)は、実際にペーパにプリントを行なう
際の余白部分であり、印字データの描画が行われるの
は、その内側のイメージ・エリア(A3)の部分である。
印字の開始は、イメージ・エリアの左上から行われ、文
字は印字方向A10に従って順次印字される。途中、改行
コードが入力された場合、改行方向A11に、改行幅A12だ
け次の印字位置が移動する。また、復行コードが入力さ
れると、イメージ・エリア左端、復行位置A13に次の印
字位置が移動する。なお、マージン・エリアA2は、デー
タ処理装置1からの指定によりページ単位に変更が可能
である。
次に、フローチャートを参照しながら本システムの動
作説明を行なう。本システムのプログラムは次の3つに
分かれている。
作説明を行なう。本システムのプログラムは次の3つに
分かれている。
ホストプロセス 受信バッファ内のデータを解析し、描
画部及びプリントエンジン部を制御するためのパケット
データを発生する。
画部及びプリントエンジン部を制御するためのパケット
データを発生する。
パケットプロセス ホストプロセスによって発生したパ
ケットデータにより実際にBM−RAMの描画、及びエンジ
ンの制御を行なう。
ケットデータにより実際にBM−RAMの描画、及びエンジ
ンの制御を行なう。
ユーザプロセス 形態の異なるプロトコルの入力に対し
て、ホストプロセスが解析可能なプロトコルへ変換しホ
ストプロセスに渡す。フォントカートリッジ、システム
ROM305又はデータ処理装置1からのダウンロードによっ
て供給される。プロトコル変換が必要なければ実行しな
い。
て、ホストプロセスが解析可能なプロトコルへ変換しホ
ストプロセスに渡す。フォントカートリッジ、システム
ROM305又はデータ処理装置1からのダウンロードによっ
て供給される。プロトコル変換が必要なければ実行しな
い。
これらのプロセスは独立したプログラムとなってお
り、優先順位のある時分割処理によって並行して動作し
ている。優先順位はパケットプロセス、ホストプロセ
ス、ユーザプロセスの順位である。この他にタイマー割
り込みによりこれらのプロセスの管理を行なうスケジュ
ーラ、スタート時に起動されるスタートプロセスがあ
る。
り、優先順位のある時分割処理によって並行して動作し
ている。優先順位はパケットプロセス、ホストプロセ
ス、ユーザプロセスの順位である。この他にタイマー割
り込みによりこれらのプロセスの管理を行なうスケジュ
ーラ、スタート時に起動されるスタートプロセスがあ
る。
次に各プロセスについて説明する。
第11図はスタートプロセスを示すフローチャートであ
る。このプロセスはスタート時に1回だけ起動される。
まず電源が投入されると(ステップ#1)、内部の初期
化を行ない(ステップ#2)、R−バッファ、UR−バッ
ファ、パケットバッファ(FIFO)のクリアを行なう(ス
テップ#3,#4,#5)。次に、この後ホストプロセスを
起動するため準備動作として、リクエストベクタのホス
トプロセスを示すビットをセットし(ステップ#6)、
カレントベクタの出力プロセスを示すビットをセットし
(ステップ#7)、CRTPRSにユーザプロセスを示す番号
を入れる(ステップ#8)。リクエストベクタとは、タ
イマー割り込みによってスケジューラが起動されたと
き、実行が中断されたプロセスがスケジューラに対して
実行の放棄と他プロセスの起動要求を伝達するためのも
のであり、各プロセスに対応するビットをセットまたは
リセットするようになっている。またカレントベクタは
実行中のプロセスに対応するビットをセットするように
なっていて、スケジューラが起動されたときは実行が中
断されたプロセスのビットがセットされている。さら
に、CRTPRSはカレントベクタの示すプロセスの番号が入
っていて、プロセスの番号は優先順位が高い程大きくな
る。このリクエストベクタ、カレントベクタ、CRTPRSを
用いてスケジューラは次のプロセスの実行先を決定する
(次の「スケジューラ」の項で詳細を述べる)。
る。このプロセスはスタート時に1回だけ起動される。
まず電源が投入されると(ステップ#1)、内部の初期
化を行ない(ステップ#2)、R−バッファ、UR−バッ
ファ、パケットバッファ(FIFO)のクリアを行なう(ス
テップ#3,#4,#5)。次に、この後ホストプロセスを
起動するため準備動作として、リクエストベクタのホス
トプロセスを示すビットをセットし(ステップ#6)、
カレントベクタの出力プロセスを示すビットをセットし
(ステップ#7)、CRTPRSにユーザプロセスを示す番号
を入れる(ステップ#8)。リクエストベクタとは、タ
イマー割り込みによってスケジューラが起動されたと
き、実行が中断されたプロセスがスケジューラに対して
実行の放棄と他プロセスの起動要求を伝達するためのも
のであり、各プロセスに対応するビットをセットまたは
リセットするようになっている。またカレントベクタは
実行中のプロセスに対応するビットをセットするように
なっていて、スケジューラが起動されたときは実行が中
断されたプロセスのビットがセットされている。さら
に、CRTPRSはカレントベクタの示すプロセスの番号が入
っていて、プロセスの番号は優先順位が高い程大きくな
る。このリクエストベクタ、カレントベクタ、CRTPRSを
用いてスケジューラは次のプロセスの実行先を決定する
(次の「スケジューラ」の項で詳細を述べる)。
この後に、CPSブロックの初期化を行なう(ステップ
#9)。具体的には、各CPSでCPUの実行アドレスポイン
タのデータを格納するエリアに、各プロセスプログラム
のスタートアドレス値を入れ、スタックポインタを格納
するエリアに所定のアドレス値を入れる。また必要に応
じて他のポインタの初期値も入れる。
#9)。具体的には、各CPSでCPUの実行アドレスポイン
タのデータを格納するエリアに、各プロセスプログラム
のスタートアドレス値を入れ、スタックポインタを格納
するエリアに所定のアドレス値を入れる。また必要に応
じて他のポインタの初期値も入れる。
これらの初期設定を終えると割り込みを許可し(ステ
ップ#10)、タイマー割り込み待ち(ステップ#11)の
ループに入る。
ップ#10)、タイマー割り込み待ち(ステップ#11)の
ループに入る。
第12図はタイマー割り込みによって起動されるスケジ
ューラを示すフローチャートである。まずタイマーによ
る割り込みが入ると(ステップ#30)、CPUの各レジス
タの値をCPSブロック内の退避エリアへ退避する(ステ
ップ#31)。次にリクエストベクタにセットされている
ビットの内で、最優先のプロセス番号をREQPRSに入れる
(ステップ#32)。ここでCRTPRSには割り込み処理を行
なう直前のプロセス番号が入っているので、これとREQP
RSを比較することによって、より優先順位の高いプロセ
スの起動リクエストがあるかどうかを判断する(ステッ
プ#33)。上記プロセスの起動リクエストがない(ステ
ップ#33でNO)場合、処理中であったプロセス(CRTPRS
が示している)がリクエストベクタのビットをリセット
して先の実行を放棄しているかどうかをチェックし(ス
テップ#42)、放棄していない(ステップ#42でYES)
の場合CPSブロックの退避エリアの各レジスタのデータ
をCPUにセットして(ステップ#39)復帰する。この場
合タイマー割り込みによって中断したプロセスがそのま
ま実行される。もし放棄している(ステップ#42でNO)
場合はCRTPRSの示すプロセスよりも下位であり、かつ最
上位のプロセス番号をREQPRSに入れて(ステップ#4
1)、上記プロセスの起動要求があった(ステップ#33
でYES)場合と同様の処理を行なう。ここではCRTPRSの
示す実行を中断するプロセスのCPSに退避エリアの値を
転送し(ステップ#35)、REQPRSの示すプロセスのCPS
の値を退避エリアに転送する(ステップ#36)。さら
に、CRTPRSにREQPRSの値を入れ(ステップ#37)、REQP
RSの示すプロセスのカレントベクタのビットだけをセッ
トし、他はリセットする(ステップ#38)。これらの処
理によって退避エリアにはREQPRSの示すプロセスのレジ
スタの値が入っているので、復帰先はREQPRSの示すプロ
セスとなる。
ューラを示すフローチャートである。まずタイマーによ
る割り込みが入ると(ステップ#30)、CPUの各レジス
タの値をCPSブロック内の退避エリアへ退避する(ステ
ップ#31)。次にリクエストベクタにセットされている
ビットの内で、最優先のプロセス番号をREQPRSに入れる
(ステップ#32)。ここでCRTPRSには割り込み処理を行
なう直前のプロセス番号が入っているので、これとREQP
RSを比較することによって、より優先順位の高いプロセ
スの起動リクエストがあるかどうかを判断する(ステッ
プ#33)。上記プロセスの起動リクエストがない(ステ
ップ#33でNO)場合、処理中であったプロセス(CRTPRS
が示している)がリクエストベクタのビットをリセット
して先の実行を放棄しているかどうかをチェックし(ス
テップ#42)、放棄していない(ステップ#42でYES)
の場合CPSブロックの退避エリアの各レジスタのデータ
をCPUにセットして(ステップ#39)復帰する。この場
合タイマー割り込みによって中断したプロセスがそのま
ま実行される。もし放棄している(ステップ#42でNO)
場合はCRTPRSの示すプロセスよりも下位であり、かつ最
上位のプロセス番号をREQPRSに入れて(ステップ#4
1)、上記プロセスの起動要求があった(ステップ#33
でYES)場合と同様の処理を行なう。ここではCRTPRSの
示す実行を中断するプロセスのCPSに退避エリアの値を
転送し(ステップ#35)、REQPRSの示すプロセスのCPS
の値を退避エリアに転送する(ステップ#36)。さら
に、CRTPRSにREQPRSの値を入れ(ステップ#37)、REQP
RSの示すプロセスのカレントベクタのビットだけをセッ
トし、他はリセットする(ステップ#38)。これらの処
理によって退避エリアにはREQPRSの示すプロセスのレジ
スタの値が入っているので、復帰先はREQPRSの示すプロ
セスとなる。
第13図はホストプロセスの動きを示すフローチャート
である。ホストプロセスの最初の起動は、前述のように
スタートプロセスがリクエストベクタを用いてスケジュ
ーラにホストプロセスの起動を要求し、タイマー割り込
みによって起動されたスケジューラがホストプロセスに
切り替わることによって行われる。このとき、制御部の
CPU(303)のプログラムカウンタにホストプロセスの先
頭アドレスが設定される。
である。ホストプロセスの最初の起動は、前述のように
スタートプロセスがリクエストベクタを用いてスケジュ
ーラにホストプロセスの起動を要求し、タイマー割り込
みによって起動されたスケジューラがホストプロセスに
切り替わることによって行われる。このとき、制御部の
CPU(303)のプログラムカウンタにホストプロセスの先
頭アドレスが設定される。
処理の流れを説明すると、まずホストプロセスに用い
ているフラグの初期化を行なう(ステップ#51)。具体
的には、ユーザプロセスの実行の有無を示すUSERFフラ
グを0にセットし、受信データ処理ルーチンで仮イメー
ジ編集中であることを示すLPWRITEを0にセットする。
ているフラグの初期化を行なう(ステップ#51)。具体
的には、ユーザプロセスの実行の有無を示すUSERFフラ
グを0にセットし、受信データ処理ルーチンで仮イメー
ジ編集中であることを示すLPWRITEを0にセットする。
さらにホストプロセスが実行処理不可能な状態である
ことを示すHOSTENDフラグを0にセットし、ユーザプロ
セスとの共通フラグでありユーザプロセスの切り替え処
理中であることを示すUSERWAITも0にセットしておく。
そして、中間コード作成の準備としてフォント部33より
フォント属性を読み込む(ステップ#52)。このときフ
ォントカートリッジ内にディップスイッチ(DIPSW)に
よってあらかじめ指定されたユーザプロセスが有るかど
うかをチェックし(ステップ#53,#54)、有りの場合
はシステムRAM307の所定の領域に指定されたユーザプロ
セスをロードし(ステップ#55)、ロード終了(ステッ
プ#56)を待ってユーザプロセスの実行を示すUSERFフ
ラグを1にセットし(ステップ#57)、リクエストベク
タのユーザプロセスのビットをセットする(ステップ#
58)。これは、最下位のプロセスは常にリクエストベク
タのビットをセットしておき、自分自身の実行を放棄す
ることの無いようにするためである。その後、指定ユー
ザプロセスをエミュレーションベクタにセットする(ス
テップ#59)。これらの初期化動作(ステップ#51〜ス
テップ#59)を行った後、主ループ(ステップ#60〜ス
テップ#66)に入る。またディップスイッチDIPSWでユ
ーザプロセス指定のない(ステップ#53でNO)場合、RO
M内にディップスイッチDIPSWで指定されたユーザプロセ
スがない(ステップ#54でNO)の場合、ステップ#60に
潜入する。
ことを示すHOSTENDフラグを0にセットし、ユーザプロ
セスとの共通フラグでありユーザプロセスの切り替え処
理中であることを示すUSERWAITも0にセットしておく。
そして、中間コード作成の準備としてフォント部33より
フォント属性を読み込む(ステップ#52)。このときフ
ォントカートリッジ内にディップスイッチ(DIPSW)に
よってあらかじめ指定されたユーザプロセスが有るかど
うかをチェックし(ステップ#53,#54)、有りの場合
はシステムRAM307の所定の領域に指定されたユーザプロ
セスをロードし(ステップ#55)、ロード終了(ステッ
プ#56)を待ってユーザプロセスの実行を示すUSERFフ
ラグを1にセットし(ステップ#57)、リクエストベク
タのユーザプロセスのビットをセットする(ステップ#
58)。これは、最下位のプロセスは常にリクエストベク
タのビットをセットしておき、自分自身の実行を放棄す
ることの無いようにするためである。その後、指定ユー
ザプロセスをエミュレーションベクタにセットする(ス
テップ#59)。これらの初期化動作(ステップ#51〜ス
テップ#59)を行った後、主ループ(ステップ#60〜ス
テップ#66)に入る。またディップスイッチDIPSWでユ
ーザプロセス指定のない(ステップ#53でNO)場合、RO
M内にディップスイッチDIPSWで指定されたユーザプロセ
スがない(ステップ#54でNO)の場合、ステップ#60に
潜入する。
主ループではFIFOの空エリアがなくなるか、USERF=
1(ステップ#61でYES)のときUR−バッファ、USERF=
0(ステップ#61でNO)のときは、R−バッファが空に
なる(ステップ#63でNO)とき以外は受信データ処理
(ステップ#64)を行なう。また、データ処理を行わな
い(ステップ#60、ステップ#62、ステップ#63でNO)
ときはJOBOUT処理1を実行する(ステップ#69)。ここ
でUR−バッファが空で(ステップ#62でNO)ユーザプロ
セスの切り替え処理中であれば(ステップ#67でYES)
プロセス切り替え処理が終わったことを示すHOSTENDフ
ラグをセットし(ステップ#68)その後JOBOUT処理1を
実行する。JOBOUT処理1の内容は第14図に示すが、これ
はホストプロセスがスケジューラに対して上位プロセス
(実施例ではパケットプロセス)への切り替えを要求す
るために、リクエストベクタを更新する処理である。具
体的には、リクエストベクタのパケットプロセスビット
をセットし(ステップ#72)、ユーザプロセスが起動さ
れていて(ステップ#73でYES)HOSTEND、USERWAITフラ
グがセットされていない(ステップ#77でNO、ステップ
#80でYES)のときにはリクエストベクタのホストプロ
セスのビットをリセットし自らの実行を放棄する。また
ユーザプロセスが無い(ステップ#73でNO)場合は、ホ
ストプロセスが最下位プロセスとなるのでリクエストベ
クタのホストプロセスのビットはセットしたままにして
おく。
1(ステップ#61でYES)のときUR−バッファ、USERF=
0(ステップ#61でNO)のときは、R−バッファが空に
なる(ステップ#63でNO)とき以外は受信データ処理
(ステップ#64)を行なう。また、データ処理を行わな
い(ステップ#60、ステップ#62、ステップ#63でNO)
ときはJOBOUT処理1を実行する(ステップ#69)。ここ
でUR−バッファが空で(ステップ#62でNO)ユーザプロ
セスの切り替え処理中であれば(ステップ#67でYES)
プロセス切り替え処理が終わったことを示すHOSTENDフ
ラグをセットし(ステップ#68)その後JOBOUT処理1を
実行する。JOBOUT処理1の内容は第14図に示すが、これ
はホストプロセスがスケジューラに対して上位プロセス
(実施例ではパケットプロセス)への切り替えを要求す
るために、リクエストベクタを更新する処理である。具
体的には、リクエストベクタのパケットプロセスビット
をセットし(ステップ#72)、ユーザプロセスが起動さ
れていて(ステップ#73でYES)HOSTEND、USERWAITフラ
グがセットされていない(ステップ#77でNO、ステップ
#80でYES)のときにはリクエストベクタのホストプロ
セスのビットをリセットし自らの実行を放棄する。また
ユーザプロセスが無い(ステップ#73でNO)場合は、ホ
ストプロセスが最下位プロセスとなるのでリクエストベ
クタのホストプロセスのビットはセットしたままにして
おく。
ユーザプロセスの切替えに伴う処理においてはホスト
プロセスが引続き処理可能、つまりUR−バッファ306に
データが残っている(ステップ#73でYES)場合は受信
データ処理を続行する。この時、FIFOに空きがない場合
(#60でNO)は、“JOBOUT処理1"が実行されるが、ユー
ザプロセスの切換中である場合(#80でNO)にはリクエ
ストベクタのホストプロセスビットのセット処理を実行
しないため、次にパケットプロセスで“JOBOUT処理2"が
実行されてパケットプロセスのビットがリセットされ
(ステップ#231。第21図)ても、リクエストベクタ
は、ホストプロセスがセットされたままであるので、ホ
ストプロセスに復帰する。
プロセスが引続き処理可能、つまりUR−バッファ306に
データが残っている(ステップ#73でYES)場合は受信
データ処理を続行する。この時、FIFOに空きがない場合
(#60でNO)は、“JOBOUT処理1"が実行されるが、ユー
ザプロセスの切換中である場合(#80でNO)にはリクエ
ストベクタのホストプロセスビットのセット処理を実行
しないため、次にパケットプロセスで“JOBOUT処理2"が
実行されてパケットプロセスのビットがリセットされ
(ステップ#231。第21図)ても、リクエストベクタ
は、ホストプロセスがセットされたままであるので、ホ
ストプロセスに復帰する。
またUR−バッファ306のデータが空である場合はステ
ップ#68でHOSTENDフラグが立っているのでステップ#7
7でYESとなり、USERWAITフラグ及びHOSTENDフラグを0
にセットする(ステップ#78及び#79)。この処理によ
ってステップ#80ではYESとなり、リクエストベクタの
ホストプロセスのビットがリセットされる(ステップ#
74)。このようにしてユーザプロセス切替え処理が完了
し、次のユーザプロセスへ移ることができる。なお、こ
れらの処理中はタイマー割り込みを禁止し(ステップ#
71,#75)誤動作を防ぐようにしている。
ップ#68でHOSTENDフラグが立っているのでステップ#7
7でYESとなり、USERWAITフラグ及びHOSTENDフラグを0
にセットする(ステップ#78及び#79)。この処理によ
ってステップ#80ではYESとなり、リクエストベクタの
ホストプロセスのビットがリセットされる(ステップ#
74)。このようにしてユーザプロセス切替え処理が完了
し、次のユーザプロセスへ移ることができる。なお、こ
れらの処理中はタイマー割り込みを禁止し(ステップ#
71,#75)誤動作を防ぐようにしている。
これらの流れから明らかなように、ユーザプロセス切
り替え時でない(USERWAIT=0)場合特定の条件(FIFO
の空エリアがない、R−バッファ又はUR−バッファが空
き等の条件。他に受信データ処理のサブルーチン(ステ
ップ#64)でも設定している)によってJOBOUT処理1が
実行されリクエストフラグが更新されるまでは、タイマ
ー割り込みによってスケジューラが起動されても再びホ
ストプロセスに戻ってくるので受信データ処理を繰り返
して行なうことになる。
り替え時でない(USERWAIT=0)場合特定の条件(FIFO
の空エリアがない、R−バッファ又はUR−バッファが空
き等の条件。他に受信データ処理のサブルーチン(ステ
ップ#64)でも設定している)によってJOBOUT処理1が
実行されリクエストフラグが更新されるまでは、タイマ
ー割り込みによってスケジューラが起動されても再びホ
ストプロセスに戻ってくるので受信データ処理を繰り返
して行なうことになる。
またユーザプロセス切り替え時にはUR−バッファ306
が空となりHOSTENDフラグがセットされるまでリクエス
トベクタのホストプロセスのビットはリセットされない
のでホストプロセス65及びパケットプロセス64だけが起
動され、残りのデータを処理してしまうまで待つように
なっている。その後切り替え処理が終了すればリクエス
トベクタのホストプロセスビットをリセットするので、
一度パケットプロセス64に移った後何もせず切り替えら
れたユーザプロセス66が起動されるようになる。
が空となりHOSTENDフラグがセットされるまでリクエス
トベクタのホストプロセスのビットはリセットされない
のでホストプロセス65及びパケットプロセス64だけが起
動され、残りのデータを処理してしまうまで待つように
なっている。その後切り替え処理が終了すればリクエス
トベクタのホストプロセスビットをリセットするので、
一度パケットプロセス64に移った後何もせず切り替えら
れたユーザプロセス66が起動されるようになる。
これらの処理が終了すると、表示パネル44上のテスト
キー902が押されているかどうかをチェックし(ステッ
プ#65)、押されているときはテストプリント処理(ス
テップ#66)を行なう。押されていない場合は、主ルー
プのスタートに戻る(ステップ#60)。
キー902が押されているかどうかをチェックし(ステッ
プ#65)、押されているときはテストプリント処理(ス
テップ#66)を行なう。押されていない場合は、主ルー
プのスタートに戻る(ステップ#60)。
テストプリントは使用中のフォント、プリントエンジ
ン4の画像状態のチェックをする場合に用いる機能であ
り表示パネル44上のテストキー902で起動される。表示
パネル44の制御はインターフェース制御部40によって行
われており、ビットマップ制御部30へテストプリント要
求を発する。実際の起動はステップ#65において、この
要求を検出することで行われる。
ン4の画像状態のチェックをする場合に用いる機能であ
り表示パネル44上のテストキー902で起動される。表示
パネル44の制御はインターフェース制御部40によって行
われており、ビットマップ制御部30へテストプリント要
求を発する。実際の起動はステップ#65において、この
要求を検出することで行われる。
第27図はテストプリント処理(第13図のステップ#6
6)の内容を詳細に示すフローチャートであり、このフ
ローチャートに示すようにテストプリントが実行される
のはBM−RAM32、パケットバッファ308に描画、仮編集が
行われていない(ステップ#81及び#82においてYES)
場合である。このような条件が成立してテストプリント
が可能である場合、まず実行中のモードを退避する(ス
テップ#83)。
6)の内容を詳細に示すフローチャートであり、このフ
ローチャートに示すようにテストプリントが実行される
のはBM−RAM32、パケットバッファ308に描画、仮編集が
行われていない(ステップ#81及び#82においてYES)
場合である。このような条件が成立してテストプリント
が可能である場合、まず実行中のモードを退避する(ス
テップ#83)。
次にテストプリントのモードを設定する(ステップ#
84)。この設定項目はコピー枚数、ソータ6の使用ビン
等である。
84)。この設定項目はコピー枚数、ソータ6の使用ビン
等である。
次にテストパターン(使用可能なフォントパターン、
その時点での設定モードを含む)をパケットバッファ30
8に出力する(ステップ#85)。テストパターンにはユ
ーザプロセス用のメッセージ印字エリアが設けてあり、
ユーザプロセスが起動されているとき(ステップ#86で
USERF=1)は、予めデータ処理装置1からプロトコル
によって指定されたデータ及び印字パターンを起動中の
ユーザプロセスのテストパターンユーザプロセスワーク
エリアよりデータを書込む(ステップ#87)。
その時点での設定モードを含む)をパケットバッファ30
8に出力する(ステップ#85)。テストパターンにはユ
ーザプロセス用のメッセージ印字エリアが設けてあり、
ユーザプロセスが起動されているとき(ステップ#86で
USERF=1)は、予めデータ処理装置1からプロトコル
によって指定されたデータ及び印字パターンを起動中の
ユーザプロセスのテストパターンユーザプロセスワーク
エリアよりデータを書込む(ステップ#87)。
次に通常のモードでページイジェクト(PAGE EJECT)
ファンクションをパケットバッファ308に出力し(ステ
ップ#88)元のモードに復帰させる(ステップ#89)。
ファンクションをパケットバッファ308に出力し(ステ
ップ#88)元のモードに復帰させる(ステップ#89)。
受信データの処理フローを第15図(a)、第15図
(b)に示す。
(b)に示す。
まず、受信データの処理を行なうために受信バッファ
よりデータを取り出す必要がある。受信データは第18図
に示すようにデータの受信割り込みによってデータ処理
インターフェース301より取り込まれ、R−バッファ304
に蓄積される。
よりデータを取り出す必要がある。受信データは第18図
に示すようにデータの受信割り込みによってデータ処理
インターフェース301より取り込まれ、R−バッファ304
に蓄積される。
ここでユーザプロセス66が有る場合はR−バッファ30
4のデータのプロトコル変換を行った後UR−バッファ306
に蓄積するので、USERFが1のとき(ステップ#101でYE
S)はUR−バッファ306より、0のとき(ステップ#101
でNO)はR−バッファ304よりデータを取り込む(ステ
ップ#102、ステップ#107)。
4のデータのプロトコル変換を行った後UR−バッファ306
に蓄積するので、USERFが1のとき(ステップ#101でYE
S)はUR−バッファ306より、0のとき(ステップ#101
でNO)はR−バッファ304よりデータを取り込む(ステ
ップ#102、ステップ#107)。
ここで受信データは次の5つに分類される。
・IFC関連コード(プリント・エンジン関連コード)
(ステップ#103〜ステップ#105) ・JOB制御コード(JOBSTART,PAGE EJECT)(ステップ#
108〜ステップ#112) ・書式制御コード(ステップ#113〜ステップ#114) ・印字データ(文字コード,グラフィックコード)(ス
テップ#130,ステップ#140) ・ユーザプロセス制御コード 印字データの場合(ステップ#130でYES)は、LPWRIT
Eフラグを1として(ステップ#131)対応するフォーマ
ットの中間コードに変換してFIFOに出力する。文字コー
ドの場合は、フォント・イメージ書込部311へのフォー
マットと同じでフォント・パターンのアドレス(ステッ
プ#135)、イメージ・エリア上の印字位置に対応するB
M−RAMへの書込みアドレス(ステップ#136)および書
込みモード(ステップ#137)よりなる。グラフィック
コードの場合は、グラフィックイメージ書込部316への
コマンドと同一のフォーマットで出力される(ステップ
#141)。このとき、文字コードの場合は、次の文字印
字位置を更新しておく(ステップ#128)。
(ステップ#103〜ステップ#105) ・JOB制御コード(JOBSTART,PAGE EJECT)(ステップ#
108〜ステップ#112) ・書式制御コード(ステップ#113〜ステップ#114) ・印字データ(文字コード,グラフィックコード)(ス
テップ#130,ステップ#140) ・ユーザプロセス制御コード 印字データの場合(ステップ#130でYES)は、LPWRIT
Eフラグを1として(ステップ#131)対応するフォーマ
ットの中間コードに変換してFIFOに出力する。文字コー
ドの場合は、フォント・イメージ書込部311へのフォー
マットと同じでフォント・パターンのアドレス(ステッ
プ#135)、イメージ・エリア上の印字位置に対応するB
M−RAMへの書込みアドレス(ステップ#136)および書
込みモード(ステップ#137)よりなる。グラフィック
コードの場合は、グラフィックイメージ書込部316への
コマンドと同一のフォーマットで出力される(ステップ
#141)。このとき、文字コードの場合は、次の文字印
字位置を更新しておく(ステップ#128)。
IFC関連コード(ステップ#103)は、インターフェー
ス制御部40に出力するものであるが、印字データとの同
期をとるため、印字データとは形式の異なるファンクシ
ョンタイプの中間コードとしてFIFOへ出力しておく(ス
テップ#104)。そして“JOBOUT処理1"を実行する(ス
テップ#105)。JOB制御コードには、ページの区切りに
用いるPAGE EJECTコード(ステップ#110)と、ページ
群の区切りに用いるJOBSTART(ステップ#108でYES)の
2つがある。どちらもIFC関連コードと同様に、FIFOに
出力する(ステップ#109,ステップ#152)。PAGE EJEC
Tコードの場合PAGE EJECT処理(ステップ#111)の後、
“JOBOUT処理1"を実行し(ステップ#112)、復帰す
る。書式制御コード(ステップ#113、ステップ#114)
は、印字の書式を制御する。同一イメージのコピー枚数
を指定するコードであれば(ステップ#115でYES)、印
字データとの同期をとるためFIFOに対応するファンクシ
ョンを出力する(ステップ#116)。
ス制御部40に出力するものであるが、印字データとの同
期をとるため、印字データとは形式の異なるファンクシ
ョンタイプの中間コードとしてFIFOへ出力しておく(ス
テップ#104)。そして“JOBOUT処理1"を実行する(ス
テップ#105)。JOB制御コードには、ページの区切りに
用いるPAGE EJECTコード(ステップ#110)と、ページ
群の区切りに用いるJOBSTART(ステップ#108でYES)の
2つがある。どちらもIFC関連コードと同様に、FIFOに
出力する(ステップ#109,ステップ#152)。PAGE EJEC
Tコードの場合PAGE EJECT処理(ステップ#111)の後、
“JOBOUT処理1"を実行し(ステップ#112)、復帰す
る。書式制御コード(ステップ#113、ステップ#114)
は、印字の書式を制御する。同一イメージのコピー枚数
を指定するコードであれば(ステップ#115でYES)、印
字データとの同期をとるためFIFOに対応するファンクシ
ョンを出力する(ステップ#116)。
第17図は書式制御コードの処理シーケンスを示したも
のである。復行コードの場合(ステップ#161でYES)は
次の印字位置を左端へ移動し(ステップ#162)、改行
コードの場合は次の印字位置を一行下へ移動する(ステ
ップ#165)。またランダム指定のとき(ステップ#166
でYES)はオフセット値を加算した後、次の印字位置を
更新する(ステップ#167)。
のである。復行コードの場合(ステップ#161でYES)は
次の印字位置を左端へ移動し(ステップ#162)、改行
コードの場合は次の印字位置を一行下へ移動する(ステ
ップ#165)。またランダム指定のとき(ステップ#166
でYES)はオフセット値を加算した後、次の印字位置を
更新する(ステップ#167)。
第16図はPAGE EJECT処理のフローを示したものであ
る。このPAGE EJECT処理は、FIFO上へ中間コードとして
仮編集するときの仮想的な処理であり、中間データ処理
(第22図(b))で実際にペーパの排出を行なうものと
は異なる。PAGE EJECT処理はまずパケットバッファ308
へPAGE EJECTを示す中間コードを出力する(ステップ#
152)。ここで、実際の排紙動作はパケットプロセスが
この中間コードを受け取った時に行われる。その後、次
のページの編集に備えて次の印字位置を先頭に戻す(ス
テップ#153)。これらの一連の動作は仮イメージ編集
を示すLPWRITEフラグによって判別され(ステップ#15
1、ステップ#154)、空ページ出力を防ぐ。
る。このPAGE EJECT処理は、FIFO上へ中間コードとして
仮編集するときの仮想的な処理であり、中間データ処理
(第22図(b))で実際にペーパの排出を行なうものと
は異なる。PAGE EJECT処理はまずパケットバッファ308
へPAGE EJECTを示す中間コードを出力する(ステップ#
152)。ここで、実際の排紙動作はパケットプロセスが
この中間コードを受け取った時に行われる。その後、次
のページの編集に備えて次の印字位置を先頭に戻す(ス
テップ#153)。これらの一連の動作は仮イメージ編集
を示すLPWRITEフラグによって判別され(ステップ#15
1、ステップ#154)、空ページ出力を防ぐ。
ユーザプロセスの切り替えはユーザプロセス指定コー
ドによって行なう。このコードは透過性を有するコー
ド、つまりどのようなプロトコル体系のコードとも区別
できるようなコード(例えばESCAPE CODE=27を2回連
続するようなもの)である必要がある。またこのコード
のパラメータによってホストプロセス及び複数のユーザ
プロセスを切り替え、その値はEMUNOWにセットされる
(ステップ#118)。またその時起動されているユーザ
プロセスはエミュレーションベクタに割り当てられた値
としてセットされている。
ドによって行なう。このコードは透過性を有するコー
ド、つまりどのようなプロトコル体系のコードとも区別
できるようなコード(例えばESCAPE CODE=27を2回連
続するようなもの)である必要がある。またこのコード
のパラメータによってホストプロセス及び複数のユーザ
プロセスを切り替え、その値はEMUNOWにセットされる
(ステップ#118)。またその時起動されているユーザ
プロセスはエミュレーションベクタに割り当てられた値
としてセットされている。
ユーザプロセス指定コードの場合は(ステップ#117
でYES)、パラメータの指定ユーザプロセス番号をシス
テムRAM307上のEMUNOWにセットした後(ステップ#11
8)ユーザプロセスが起動されているか否かをチェック
し(ステップ#119)、USERFフラグが0のとき(ステッ
プ#119でYES)、またはUSERFが1のときでEMUNOWとエ
ミュレーションベクタとが違う(ステップ#120でYES)
場合には、EMUNOWで示されるユーザプロセスをロードし
(ステップ#121)、ロード終了を待った後(ステップ
#122)、USERFを1にセットする(ステップ#123)。
でYES)、パラメータの指定ユーザプロセス番号をシス
テムRAM307上のEMUNOWにセットした後(ステップ#11
8)ユーザプロセスが起動されているか否かをチェック
し(ステップ#119)、USERFフラグが0のとき(ステッ
プ#119でYES)、またはUSERFが1のときでEMUNOWとエ
ミュレーションベクタとが違う(ステップ#120でYES)
場合には、EMUNOWで示されるユーザプロセスをロードし
(ステップ#121)、ロード終了を待った後(ステップ
#122)、USERFを1にセットする(ステップ#123)。
これらの処理が終了した後またはステップ#119,#12
0でNOの場合は、ユーザプロセスの初期化を行なうが、
具体的には第7図(a)に示すカレントプロセスステー
タスブロックのユーザプロセス用退避エリアを初期化し
(ステップ#124)、最後にリクエストベクタのユーザ
プロセスのビットをセットする(ステップ#126)。ユ
ーザプロセス解除コードの場合は、USERFフラグを0と
して(ステップ#128)、この後、リクエストベクタの
ユーザプロセスのビットをリセットする(ステップ#12
9)。
0でNOの場合は、ユーザプロセスの初期化を行なうが、
具体的には第7図(a)に示すカレントプロセスステー
タスブロックのユーザプロセス用退避エリアを初期化し
(ステップ#124)、最後にリクエストベクタのユーザ
プロセスのビットをセットする(ステップ#126)。ユ
ーザプロセス解除コードの場合は、USERFフラグを0と
して(ステップ#128)、この後、リクエストベクタの
ユーザプロセスのビットをリセットする(ステップ#12
9)。
テストプリントのユーザプロセス印字エリアに書き込
む情報の指定はユーザプロセステストプリントデータ指
定コマンドで行なう。このコマンドでパラメータの値に
よって印字する情報を設定できるようになっている。こ
のコマンドが受け付けられたとき(ステップ#139でYE
S)は、そのパラメータを解析し(ステップ#140)、パ
ラメータで指定されたエンジンステータスデータを入力
(ステップ#141)した後、テストプリントのユーザプ
ロセス印字エリアに書き込む情報の仮編集を行ったデー
タをシステムRAM307上のEMUNOWの示すユーザプロセスの
テストパターンユーザプロセスエリア(第29図参照)に
書き込む(ステップ#142)。
む情報の指定はユーザプロセステストプリントデータ指
定コマンドで行なう。このコマンドでパラメータの値に
よって印字する情報を設定できるようになっている。こ
のコマンドが受け付けられたとき(ステップ#139でYE
S)は、そのパラメータを解析し(ステップ#140)、パ
ラメータで指定されたエンジンステータスデータを入力
(ステップ#141)した後、テストプリントのユーザプ
ロセス印字エリアに書き込む情報の仮編集を行ったデー
タをシステムRAM307上のEMUNOWの示すユーザプロセスの
テストパターンユーザプロセスエリア(第29図参照)に
書き込む(ステップ#142)。
第19図はパケットプロセスの処理を示すフローチャー
トである。
トである。
まず電源が投入されると(ステップ#200)、BM−RAM
のイメージエリアをクリアし(ステップ#202)、制御
フラグを初期化する(ステップ#203)。具体的には、
プリント状態を示すJOBACTをクリアし、BM−RAMへの描
画状態を示すBMWRITEをクリアし、同一枚数のコピー枚
数を示すCOPYを1にセットし、同一枚数のコピー枚数を
計算するCCOUNTを1にセットする。
のイメージエリアをクリアし(ステップ#202)、制御
フラグを初期化する(ステップ#203)。具体的には、
プリント状態を示すJOBACTをクリアし、BM−RAMへの描
画状態を示すBMWRITEをクリアし、同一枚数のコピー枚
数を示すCOPYを1にセットし、同一枚数のコピー枚数を
計算するCCOUNTを1にセットする。
この後、主ループに入るが、主ループの行なう処理
は、 ・中間コードの解析とBM−RAMへの描画(ステップ#212
〜ステップ#215)と、 ・プリント・シーケンス制御(ステップ#205〜ステッ
プ#211)とがある。データの流れは次のようになる。
まず、排紙条件フラグであるJOBACTが1のときは、プリ
ント・シーケンス(ステップ#208、ステップ#211)に
入る。また、JOBACTが1でないときはFIFOから中間コー
ドが有ることをチェックして(ステップ#213)中間コ
ード処理が行われる。
は、 ・中間コードの解析とBM−RAMへの描画(ステップ#212
〜ステップ#215)と、 ・プリント・シーケンス制御(ステップ#205〜ステッ
プ#211)とがある。データの流れは次のようになる。
まず、排紙条件フラグであるJOBACTが1のときは、プリ
ント・シーケンス(ステップ#208、ステップ#211)に
入る。また、JOBACTが1でないときはFIFOから中間コー
ドが有ることをチェックして(ステップ#213)中間コ
ード処理が行われる。
ここでプリントシーケンスに入るとき(ステップ#20
5)とFIFO内のパケットデータが無くなったとき(ステ
ップ#215)は、下位のプロセスに実行を移すために第2
1図のJOBOUT処理2を実行する(ステップ#230)。処理
内容パケットプロセスのビットをリセット(ステップ#
231)することである。このとき最下位のプロセスにリ
クエストフラグが立っているので、最上位であるパケッ
トプロセスがリクエストフラグを落とすことによりスケ
ジューラは最下位プロセスに実行を移す。このようにパ
ケットプロセスは優先順位が最上位となるのでプログラ
ムが待ちの状態となるが(ステップ#205の場合)、実
行不能になる(ステップ#215の場合)ときのみ下位プ
ロセスへ処理を移す。
5)とFIFO内のパケットデータが無くなったとき(ステ
ップ#215)は、下位のプロセスに実行を移すために第2
1図のJOBOUT処理2を実行する(ステップ#230)。処理
内容パケットプロセスのビットをリセット(ステップ#
231)することである。このとき最下位のプロセスにリ
クエストフラグが立っているので、最上位であるパケッ
トプロセスがリクエストフラグを落とすことによりスケ
ジューラは最下位プロセスに実行を移す。このようにパ
ケットプロセスは優先順位が最上位となるのでプログラ
ムが待ちの状態となるが(ステップ#205の場合)、実
行不能になる(ステップ#215の場合)ときのみ下位プ
ロセスへ処理を移す。
次に、FIFOに蓄えられた中間コードの処理フローを、
第22図(a),(b)に示す。
第22図(a),(b)に示す。
ここでは、主に中間コードに応じたBM−RAMへの描画
と、プリント・エンジン部へのコマンド出力などのシー
ケンス制御を行なう。
と、プリント・エンジン部へのコマンド出力などのシー
ケンス制御を行なう。
まず、印字データの場合(ステップ#303でYES)は、
中間コードをフォント・イメージ書込部へ(ステップ#
304)、グラフィックの場合(ステップ#310でN)はグ
ラフィック・イメージ書込部へ出力(ステップ#311)
する。
中間コードをフォント・イメージ書込部へ(ステップ#
304)、グラフィックの場合(ステップ#310でN)はグ
ラフィック・イメージ書込部へ出力(ステップ#311)
する。
もし初めてのデータを書込む場合(BM−WRITEフラグ
=0)(ステップ#305でYES)、BM−WRITEフラグを1
とし(ステップ#306)、プリントエンジン4に対して
給紙等の準備を先行させるためのペーパの先出しコマン
ドPFCMDをインターフェース制御部40に出力する(ステ
ップ#308)。これによりビットマップ方式データ処理
装置3のプリント準備が終了すれば、感光体へのレーザ
露光が直ちに可能となり、給紙時間に相当してスループ
ットが向上する。
=0)(ステップ#305でYES)、BM−WRITEフラグを1
とし(ステップ#306)、プリントエンジン4に対して
給紙等の準備を先行させるためのペーパの先出しコマン
ドPFCMDをインターフェース制御部40に出力する(ステ
ップ#308)。これによりビットマップ方式データ処理
装置3のプリント準備が終了すれば、感光体へのレーザ
露光が直ちに可能となり、給紙時間に相当してスループ
ットが向上する。
IFC関連コードや及びJOBSTARTコードは、IFCへ出力さ
れる(ステップ#312〜ステップ#313)。
れる(ステップ#312〜ステップ#313)。
コピー枚数設定の場合(ステップ#319)は、コピー
枚数COPY更新する(ステップ#320)。FIFO305からビッ
トマップ書込部31への出力は、中間コードデータがある
限り順次行われるが、PAGE EJECTコードを検出すると
(ステップ#315でYES)、1ページ分の信号変換が終了
したのでプリント動作に入る。まず、コピー枚数COPYを
カウントするためのCCOUNTフラグに設定されているコピ
ー枚数をセットし、プリント起動処理に入る(ステップ
#317)(第23図)。プリント起動処理では、プリント
処理に入ったことを示すJOBACTフラグをセットし(ステ
ップ#401)プリントヘッド制御部インターフェースを
プリント可能状態にし(ステップ#402)、インターフ
ェース制御部40にプリントコマンドPRNCMDを出力する
(ステップ#403)。
枚数COPY更新する(ステップ#320)。FIFO305からビッ
トマップ書込部31への出力は、中間コードデータがある
限り順次行われるが、PAGE EJECTコードを検出すると
(ステップ#315でYES)、1ページ分の信号変換が終了
したのでプリント動作に入る。まず、コピー枚数COPYを
カウントするためのCCOUNTフラグに設定されているコピ
ー枚数をセットし、プリント起動処理に入る(ステップ
#317)(第23図)。プリント起動処理では、プリント
処理に入ったことを示すJOBACTフラグをセットし(ステ
ップ#401)プリントヘッド制御部インターフェースを
プリント可能状態にし(ステップ#402)、インターフ
ェース制御部40にプリントコマンドPRNCMDを出力する
(ステップ#403)。
これにより、プリントヘッド制御部インターフェース
315では、プリントヘッド制御部42の制御回路から送ら
れてくるパルスに同期してBM−RAMのデータをバスB4を
通じて出力する。
315では、プリントヘッド制御部42の制御回路から送ら
れてくるパルスに同期してBM−RAMのデータをバスB4を
通じて出力する。
プリントが終了すると、まだJOBACTフラグがセットさ
れているため第19図のステップ#204からステップ#205
へ進み、ステップ#206でインターフェース制御部40か
らの露光終了コマンドEXPENDの割り込み待ちとなる。EX
PEND受信の割り込み処理は第24図に示すように、EPEND
フラグをセットしリクエストベクタのパケットプロセス
のビットをリセットする。EXPENDを検出するとEPENDフ
ラグが1となりループを抜けて同一イメージのコピー制
御を行なう(ステップ#208〜ステップ#211)。まず、
コピー枚数カウンタCCOUNTを減算し(ステップ#20
8)、所定枚数のコピーが終了したかチェックする(ス
テップ#209)。終了の場合はプリントEND処理に入る
(第20図)。ここでは、次のイメージの描画のためBM−
RAMをクリアし、ステップ#241、プリント状態解除のた
めJOBACTフラグをリセットし(ステップ#242)、BM−R
AMへの描画状態を示すBMWRITEのクリアを行なう(ステ
ップ#243)。コピー未終了の場合は再び、同一イメー
ジでプリントを開始する(ステップ#211)。
れているため第19図のステップ#204からステップ#205
へ進み、ステップ#206でインターフェース制御部40か
らの露光終了コマンドEXPENDの割り込み待ちとなる。EX
PEND受信の割り込み処理は第24図に示すように、EPEND
フラグをセットしリクエストベクタのパケットプロセス
のビットをリセットする。EXPENDを検出するとEPENDフ
ラグが1となりループを抜けて同一イメージのコピー制
御を行なう(ステップ#208〜ステップ#211)。まず、
コピー枚数カウンタCCOUNTを減算し(ステップ#20
8)、所定枚数のコピーが終了したかチェックする(ス
テップ#209)。終了の場合はプリントEND処理に入る
(第20図)。ここでは、次のイメージの描画のためBM−
RAMをクリアし、ステップ#241、プリント状態解除のた
めJOBACTフラグをリセットし(ステップ#242)、BM−R
AMへの描画状態を示すBMWRITEのクリアを行なう(ステ
ップ#243)。コピー未終了の場合は再び、同一イメー
ジでプリントを開始する(ステップ#211)。
第25図はユーザプロセスの処理例を示すものである。
ユーザプロセス自体は対応するプロトコルによっていく
つかのプログラムが存在するが、基本的な形態はこのよ
うになっている。特に、(ステップ#501〜#503,#50
7,#510)のステップは各ユーザプロセスで共通化して
おかないと他プロセスとの対応が取れなくなる。
ユーザプロセス自体は対応するプロトコルによっていく
つかのプログラムが存在するが、基本的な形態はこのよ
うになっている。特に、(ステップ#501〜#503,#50
7,#510)のステップは各ユーザプロセスで共通化して
おかないと他プロセスとの対応が取れなくなる。
まず、R−バッファにデータが有ることをチェックし
(ステップ#501)、その後にUR−バッファの空きをチ
ェックする(ステップ#502)。UR−バッファの空きが
ないときは(ステップ#502でNO)、ホストプロセスの
起動要求をリクエストベクタによって行ない(ステップ
#510)、UR−バッファに空きを作るようにする。
(ステップ#501)、その後にUR−バッファの空きをチ
ェックする(ステップ#502)。UR−バッファの空きが
ないときは(ステップ#502でNO)、ホストプロセスの
起動要求をリクエストベクタによって行ない(ステップ
#510)、UR−バッファに空きを作るようにする。
UR−バッファの空きがあるときは(ステップ#502でY
ES)、R−バッファよりデータを取り込み(ステップ#
503)、プロトコル変換処理(ステップ#504〜#506,#
508,#509)を行なう。
ES)、R−バッファよりデータを取り込み(ステップ#
503)、プロトコル変換処理(ステップ#504〜#506,#
508,#509)を行なう。
ユーザプロセス指定コードの場合(ステップ#511でY
ES)は、描画中のデータがある場合排紙させるためにペ
ージイジェクトコードを送り(ステップ#512)、ユー
ザプロセス指定コードをそのままUR−バッファ306へ送
る(ステップ#513)。この後、上位プロセスのリクエ
ストベクタのビットをセットし(ステップ#513)、エ
ミレーションベクタをユーザプロセス指定コードのパラ
メータで指定されたプロセスの値にセットする(ステッ
プ#515)。さらに前のユーザプロセスの残りデータを
処理するためにUSERWAITをセットする(ステップ#51
6)。そしてスケジューラの割り込み待ちとなる(ステ
ップ#517)。
ES)は、描画中のデータがある場合排紙させるためにペ
ージイジェクトコードを送り(ステップ#512)、ユー
ザプロセス指定コードをそのままUR−バッファ306へ送
る(ステップ#513)。この後、上位プロセスのリクエ
ストベクタのビットをセットし(ステップ#513)、エ
ミレーションベクタをユーザプロセス指定コードのパラ
メータで指定されたプロセスの値にセットする(ステッ
プ#515)。さらに前のユーザプロセスの残りデータを
処理するためにUSERWAITをセットする(ステップ#51
6)。そしてスケジューラの割り込み待ちとなる(ステ
ップ#517)。
USERWAITはホストプロセス61と共通フラグとなってい
てこのフラグがセットされるとホストプロセス65がUR−
バッファ306内のデータを処理してしまうまで指定のユ
ーザプロセスが実行されず誤動作を防ぐ。
てこのフラグがセットされるとホストプロセス65がUR−
バッファ306内のデータを処理してしまうまで指定のユ
ーザプロセスが実行されず誤動作を防ぐ。
これらのプロセスの切り替えタイミングの例を示した
のが第26図である。このように、定期的なタイマー割り
込みによってスケジューラが起動されるが、プロセスが
切り替わるのは各プロセスの実行放棄条件が満たされた
ときである。
のが第26図である。このように、定期的なタイマー割り
込みによってスケジューラが起動されるが、プロセスが
切り替わるのは各プロセスの実行放棄条件が満たされた
ときである。
以上の如き第1,第2の発明に係るプリンタ制御装置に
おいては、コマンド体系の異なる複数のデータをプリン
トするため、各コマンド体系毎に用意された複数のデー
タ変換プログラムを第1メモリに格納し、またデータ処
理装置から送られてくるデータを第2メモリに格納する
こととし、第2メモリの格納データからコマンド体系を
判別し、この判別結果から第1メモリの格納データ変換
プログラムを選択し、プログラム切り替え手段でデータ
変換プログラムの切り替えを行い、切り替えたデータ変
換プログラムによてデータを解析し、プログラム切り替
え制御手段によって、連続してコマンド体系の異なるデ
ータを受信した場合、第2メモリの格納データの解析終
了後に、コマンド体系に応じたデータ変換プログラムの
切り替えを行うから、プリンタ側でのハードウエア操作
を行うことなくデータ処理装置側よりリモートでプロト
コル(コマンド体系)を切り替えることが可能となり、
操作性が向上する。
おいては、コマンド体系の異なる複数のデータをプリン
トするため、各コマンド体系毎に用意された複数のデー
タ変換プログラムを第1メモリに格納し、またデータ処
理装置から送られてくるデータを第2メモリに格納する
こととし、第2メモリの格納データからコマンド体系を
判別し、この判別結果から第1メモリの格納データ変換
プログラムを選択し、プログラム切り替え手段でデータ
変換プログラムの切り替えを行い、切り替えたデータ変
換プログラムによてデータを解析し、プログラム切り替
え制御手段によって、連続してコマンド体系の異なるデ
ータを受信した場合、第2メモリの格納データの解析終
了後に、コマンド体系に応じたデータ変換プログラムの
切り替えを行うから、プリンタ側でのハードウエア操作
を行うことなくデータ処理装置側よりリモートでプロト
コル(コマンド体系)を切り替えることが可能となり、
操作性が向上する。
さらに、解析プログラムを外部のデータ処理装置より
ダウンロード可能としたことによって、種々のプロトコ
ルに対応が可能となる。
ダウンロード可能としたことによって、種々のプロトコ
ルに対応が可能となる。
第1図は本発明のプリンタの構成図、第2図はプリンタ
の外観を示す斜視図、第3図は表示パネルの詳細を示す
正面図、第4図はプリンタの制御回路要部のブロック
図、第5図は本発明のビットマップ制御部の構成を示す
ブロック図、第6図は本発明装置のソフトウェアの構成
を示す概念図、第7図はシステムRAMの構成を示す概念
図、第8図は受信データの流れを示すブロック図、第9
図はビットマップ書込部の詳細ブロック図、第10図はイ
メージエリアの説明図、第11図はスタートプロセスを示
すフローチャート、第12図はタイマー割り込みによって
起動されるスケジューラを示すフローチャート、第13図
はホストプロセスの動きを示すフローチャート、第14図
はJOBOUT処理1の内容を示すフローチャート、第15図は
受信データの処理手順を示すフローチャート、第16図は
PAGE EJECT装置の手順を示すフローチャート、第17図は
書式制御コードの処理手順を示すフローチャート、第18
図は受信データの割り込み処理を示すフローチャート、
第19図はパケットプロセスの処理を示すフローチャー
ト、第20図はプリントEND処理を示すフローチャート、
第21図はJOBOUT処理2を示すフローチャート、第22図は
中間コード処理を示すフローチャート、第23図はプリン
ト起動処理を示すフローチャート、第24図はEXPEND受信
割り込み処理を示すフローチャート、第25図はユーザプ
ロセスを示すフローチャート、第26図はプロセスの切り
替えタイミングの例を示すタイムチャート、第27図はテ
ストプリントの処理手順を示すフローチャート、第28図
はデータ処理装置からの送信データの1例を示すフォー
マット図である。 61……タイマー割り込み、62……スケジューラ 63……スタートプロセス、64……パケットプロセス 65……ホストプロセス、66……ユーザプロセス
の外観を示す斜視図、第3図は表示パネルの詳細を示す
正面図、第4図はプリンタの制御回路要部のブロック
図、第5図は本発明のビットマップ制御部の構成を示す
ブロック図、第6図は本発明装置のソフトウェアの構成
を示す概念図、第7図はシステムRAMの構成を示す概念
図、第8図は受信データの流れを示すブロック図、第9
図はビットマップ書込部の詳細ブロック図、第10図はイ
メージエリアの説明図、第11図はスタートプロセスを示
すフローチャート、第12図はタイマー割り込みによって
起動されるスケジューラを示すフローチャート、第13図
はホストプロセスの動きを示すフローチャート、第14図
はJOBOUT処理1の内容を示すフローチャート、第15図は
受信データの処理手順を示すフローチャート、第16図は
PAGE EJECT装置の手順を示すフローチャート、第17図は
書式制御コードの処理手順を示すフローチャート、第18
図は受信データの割り込み処理を示すフローチャート、
第19図はパケットプロセスの処理を示すフローチャー
ト、第20図はプリントEND処理を示すフローチャート、
第21図はJOBOUT処理2を示すフローチャート、第22図は
中間コード処理を示すフローチャート、第23図はプリン
ト起動処理を示すフローチャート、第24図はEXPEND受信
割り込み処理を示すフローチャート、第25図はユーザプ
ロセスを示すフローチャート、第26図はプロセスの切り
替えタイミングの例を示すタイムチャート、第27図はテ
ストプリントの処理手順を示すフローチャート、第28図
はデータ処理装置からの送信データの1例を示すフォー
マット図である。 61……タイマー割り込み、62……スケジューラ 63……スタートプロセス、64……パケットプロセス 65……ホストプロセス、66……ユーザプロセス
───────────────────────────────────────────────────── フロントページの続き (56)参考文献 特開 昭60−214035(JP,A) 特開 昭62−237520(JP,A) 特開 昭63−216125(JP,A) 特開 昭61−3238(JP,A) 特開 昭59−57337(JP,A) 特開 昭63−47174(JP,A)
Claims (2)
- 【請求項1】外部のデータ処理装置から与えられるコマ
ンド体系の異なる複数種類のデータを解析し、解析した
データを印字部に与えることによってプリント動作を制
御するプリンタ制御装置において、 コマンド体系の異なる複数のデータをプリントするため
に、各コマンド体系毎に用意された複数のデータ変換プ
ログラムを格納する第1メモリと、 データ処理装置から送られてくるデータを格納する第2
メモリと、 該第2メモリに格納されたデータからコマンド体系を判
別し、判別結果に応じて前記第1メモリに格納されたデ
ータ変換プログラムのいずれかを選択することにより、
データ変換プログラムの切り替えを行うプログラム切り
替え手段と、 選択されたデータ変換プログラムによってデータを解析
するデータ解析手段と、 連続してコマンド体系の異なるデータを受信した場合、
初めに第2メモリに格納されたデータの解析中にはデー
タ変換プログラムの切り替えを禁止し、第2メモリに格
納されたデータの解析後、続いて第2メモリに格納され
たデータのコマンド体系に応じたデータ変換プログラム
の切り替えを行うプログラム切り替え制御手段とを行う
ことを特徴とするプリンタ制御装置。 - 【請求項2】前記第1メモリは、固有のデータ変換プロ
グラムを格納してある第1エリアと、前記固有のデータ
変換プログラムとは別の任意のデータ変換プログラムを
格納するための第2エリアとを有し、前記データ処理装
置より送信されるデータ変換プログラムを前記第2エリ
アに格納することを特徴とする特許請求の範囲1に記載
のプリンタ制御装置。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63087569A JP2687408B2 (ja) | 1988-04-08 | 1988-04-08 | プリンタ制御装置 |
US07/335,503 US5036476A (en) | 1988-04-08 | 1989-04-10 | Printer control system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP63087569A JP2687408B2 (ja) | 1988-04-08 | 1988-04-08 | プリンタ制御装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH01258968A JPH01258968A (ja) | 1989-10-16 |
JP2687408B2 true JP2687408B2 (ja) | 1997-12-08 |
Family
ID=13918631
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP63087569A Expired - Lifetime JP2687408B2 (ja) | 1988-04-08 | 1988-04-08 | プリンタ制御装置 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2687408B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH04113865A (ja) * | 1990-09-05 | 1992-04-15 | Canon Inc | 印刷装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPS60214035A (ja) * | 1984-04-09 | 1985-10-26 | Shinko Electric Co Ltd | プリンタ・インタフエイス装置 |
JPS62237520A (ja) * | 1986-04-08 | 1987-10-17 | Nec Corp | プリンタ制御装置 |
JPS63216125A (ja) * | 1987-03-04 | 1988-09-08 | Fuji Xerox Co Ltd | 装置タイプのエミユレ−ト可能なプリンタ装置 |
-
1988
- 1988-04-08 JP JP63087569A patent/JP2687408B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH01258968A (ja) | 1989-10-16 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JPH02150378A (ja) | プリンタ制御装置 | |
JPH01174453A (ja) | プリンタ制御装置 | |
JP4029391B2 (ja) | プリンタ | |
JP2687408B2 (ja) | プリンタ制御装置 | |
JP2737983B2 (ja) | 印写装置及び印写装置の状態を表示する表示装置 | |
US4975858A (en) | Controller for a printer for printing data received from an external data processor | |
JP3010559B2 (ja) | 印刷システムならびに印刷制御方法および装置 | |
JP3126367B2 (ja) | プリンタ制御装置 | |
JPH05177885A (ja) | 印字装置の制御装置 | |
JP4058982B2 (ja) | プリンタ | |
JP3166156B2 (ja) | プリンタ制御装置 | |
JPH0221324A (ja) | プリンタ制御装置 | |
JPS63231957A (ja) | プリンタ制御装置 | |
JP2745514B2 (ja) | プリンタ制御装置 | |
JP2737983C (ja) | ||
JP3048575B2 (ja) | プリンタ制御装置 | |
JP2982007B2 (ja) | 表示装置 | |
JPH044172A (ja) | プリンタ制御装置 | |
JP3217485B2 (ja) | 印字装置 | |
JP2803322B2 (ja) | プリンタ制御装置 | |
JPS63250728A (ja) | プリンタ制御装置 | |
JPH0465262A (ja) | ページプリンタ | |
JP2715433B2 (ja) | プリンタ | |
JPH10114127A (ja) | プリンタ | |
JPS63251246A (ja) | デ−タ記憶装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080822 Year of fee payment: 11 |
|
EXPY | Cancellation because of completion of term | ||
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080822 Year of fee payment: 11 |