媒体を光学的に読み取るものでライン状に並んだ光素子を有する光学読取部と、記憶部と、前記記憶部の記憶領域に形成されたリングバッファーと、前記光学読取部によりライン単位で読み取った読取データを前記リングバッファーに巡回的に書き込み、前記リングバッファーにおける所定の領域の前記読取データを読み出す制御部と、を備え、前記制御部は、前記読取データを前記リングバッファーに書き込む前記ラインの位置を示すライトポインター、及び、読み出す前記読取データが含まれる前記ラインの位置を示すリードポインターによって、前記読取データの書き込み、及び、読み出しの対象となる前記ラインを管理し、さらに、前記リングバッファーにおける消去または上書き可能な前記ラインの位置を示す破棄ポインターによって、前記ライトポインターが前記破棄ポインターの位置を超えないように、前記ライトポインターを制御すると共に、前記リードポインターの位置にかかわらず、読み出しが完了していない前記読取データを含む前記ラインの位置を超えないように、前記破棄ポインターを制御することを特徴とする光学読取装置。前記制御部は、前記所定の領域が複数の場合は、それぞれの領域毎に読み出されるような態様で、前記読取データの読み出しが可能であり、1のラインに、複数の前記所定の領域のそれぞれに属する前記読取データが包含されている場合は、各領域に属する前記読取データのそれぞれの読み出しが完了するまでは、前記リードポインターの位置にかかわらず、前記破棄ポインターが、当該1のラインの位置を超えないようにすることを特徴とする請求項1に記載の光学読取装置。前記制御部は、前記リングバッファーを複数の前記ラインごとに分割して形成されたブロック毎に、1のブロックに属する各前記ラインへの前記読取データの書き込みが完了した後、当該1のブロック内で前記リードポインターの位置を移動させつつ、当該ブロックに属する前記ラインの前記読取データを読み出し、1のブロックに、複数の所定の領域が属している場合、前記リードポインターの位置にかかわらず、当該1のブロックに属する前記ラインのうち、読み出しが完了していない前記読取データを含む前記ラインの位置を超えないように、前記破棄ポインターを制御することを特徴とする請求項2に記載の光学読取装置。媒体を光学的に読み取るものでライン状に並んだ光素子を有する光学読取部と、記憶部の記憶領域に形成されたリングバッファーと、を備える光学読取装置の制御方法であって、前記光学読取部が読み取った読取データを前記リングバッファーに書き込む前記ラインの位置を示すライトポインター、及び、読み出す前記読取データが含まれる前記ラインの位置を示すリードポインターによって、前記読取データの書き込み、及び、読み出しの対象となる前記ラインを管理した上で、前記光学読取部によりライン単位で読み取った前記読取データを前記リングバッファーにおいて巡回的に書き込み、前記リングバッファーにおける所定の領域の前記読取データを読み出し、さらに、前記リングバッファーにおける消去または上書き可能な前記ラインの位置を示す破棄ポインターによって、前記ライトポインターが前記破棄ポインターの位置を超えないように、前記ライトポインターを制御すると共に、前記リードポインターの位置にかかわらず、読み出しが完了していない前記読取データを含む前記ラインの位置を超えないように、前記破棄ポインターを制御することを特徴とする光学読取装置の制御方法。媒体を光学的に読み取るものでライン状に並んだ光素子を有する光学読取部と、前記記憶部の記憶領域に形成されたリングバッファーと、を備える光学読取装置を制御する制御部により実行されるプログラムであって、前記制御部を、前記光学読取部が読み取った読取データを前記リングバッファーに書き込む前記ラインの位置を示すライトポインター、及び、読み出す前記読取データが含まれる前記ラインの位置を示すリードポインターによって、前記読取データの書き込み、及び、読み出しの対象となる前記ラインを管理した上で、前記光学読取部によりライン単位で読み取った前記読取データを前記リングバッファーにおいて巡回的に書き込み、前記リングバッファーにおける所定の領域の前記読取データを読み出し、さらに、前記リングバッファーにおける消去または上書き可能な前記ラインの位置を示す破棄ポインターによって、前記ライトポインターが前記破棄ポインターの位置を超えないように、前記ライトポインターを制御すると共に、前記リードポインターの位置にかかわらず、読み出しが完了していない前記読取データを含む前記ラインの位置を超えないように、前記破棄ポインターを制御する手段として機能させることを特徴とするプログラム。しかしながら、上述した光学読取装置のように、読み取り結果をリングバッファーに書き込むものでは、未だ読み出しが終了していないデータが書き込まれている領域に対して、新たにデータが書き込まれることを防止する必要がある。本発明は、上述した事情に鑑みてなされたものであり、リングバッファーに読み取り結果を書き込む光学読取装置において、読み出しが終了していないデータが書き込まれている領域に対して、新たにデータが書き込まれることを効果的に防止することを目的とする。上記目的を達成するために、本発明は、光学読取装置であって、媒体を光学的に読み取るものでライン状に並んだ光素子を有する光学読取部と、記憶部と、前記記憶部の記憶領域に形成されたリングバッファーと、前記光学読取部によりライン単位で読み取った読取データを前記リングバッファーに巡回的に書き込み、前記リングバッファーにおける所定の領域の前記読取データを読み出す制御部と、を備え、前記制御部は、前記読取データを前記リングバッファーに書き込む前記ラインの位置を示すライトポインター、及び、読み出す前記読取データが含まれる前記ラインの位置を示すリードポインターによって、前記読取データの書き込み、及び、読み出しの対象となる前記ラインを管理し、さらに、前記リングバッファーにおける消去または上書き可能な前記ラインの位置を示す破棄ポインターによって、前記ライトポインターが前記破棄ポインターの位置を超えないように、前記ライトポインターを制御すると共に、前記リードポインターの位置にかかわらず、読み出しが完了していない前記読取データを含む前記ラインの位置を超えないように、前記破棄ポインターを制御することを特徴とする。この構成によれば、破棄ポインターは、リードポインターの位置にかかわらず、読み出しが完了していない読取データを含むラインの位置を超えないよう、その移動が制御されかつ、ライトポインターは、この破棄ポインターの位置を超えないようにその移動が制御されるため、読み出しが完了していない読取データを含むラインに対して読取データが上書きされることにより、新たにデータが書き込まれたり、また、当該ラインに含まれる読取データが消去されたりすることを効果的に防止できる。ここで、リングバッファーにおいて、有用な読取データのみを読み出すようにし、有用な読取データが含まれる所定の領域のみを取り扱うのが効率的である。この場合、同じラインに複数の有用な読取データが含まれる所定の領域が存在する場合、一つの領域を読み出した後一旦リードポインターが進んでいるので、ライトポインターを進めて書き込みを行ってしまうと、まだ読み出しが済んでいない所定の領域に書き込みがされてしまうおそれがある。ライトポインターとリードポインターのみの管理ではこのような問題がある。そこで、破棄ポインターにより、読み出しが済んでいない所定の領域を含むラインの位置を超えないように、該当するラインの全ての所定の領域の読み出しが終わっていて、消去または上書き可能なラインの位置を示すものとして管理する。ラインポインターが破棄ポインターの位置を超えなければ、まだ読み出しが済んでいない所定の領域に書き込みがされてしまうことがない。また、破棄ポインターの位置までライトポインターを進めてよいことがわかり、効率的な読み取り動作も可能となる。また、上記発明の光学読取装置であって、本発明は、前記制御部は、前記所定の領域が複数の場合は、それぞれの領域毎に読み出されるような態様で、前記読取データの読み出しが可能であり、1のラインに、複数の前記所定の領域のそれぞれに属する前記読取データが包含されている場合は、各領域に属する前記読取データのそれぞれの読み出しが完了するまでは、前記リードポインターの位置にかかわらず、前記破棄ポインターが、当該1のラインの位置を超えないようにすることを特徴とする。この構成によれば、リングバッファーにおける複数の領域に属する読取データを領域毎に読み出す場合において、1のラインに、複数の異なる領域のそれぞれに属する読取データが包含されている場合であっても、包含された全ての読取データの読み出しが完了する前に、当該1のラインに、新たに読取データが書き込まれることを効果的に防止できる。また、上記発明の光学読取装置であって、本発明は、前記制御部は、前記リングバッファーを複数の前記ラインごとに分割して形成されたブロック毎に、1のブロックに属する各前記ラインへの前記読取データの書き込みが完了した後、当該1のブロック内で前記リードポインターの位置を移動させつつ、当該ブロックに属する前記ラインの前記読取データを読み出し、1のブロックに、複数の所定の領域が属している場合、前記リードポインターの位置にかかわらず、当該1のブロックに属する前記ラインのうち、読み出しが完了していない前記読取データを含む前記ラインの位置を超えないように、前記破棄ポインターを制御することを特徴とする。この構成によれば、ブロック単位で読取データの読み出しを実行することによる読み出し処理の効率化を実現しつつ、ブロック内に、複数の所定領域がある場合であっても、読み出しが完了していない読取データを含むラインを超えないように破棄ポインターの移動が制御され、当該ラインに新たに読取データが書き込まれることを効果的に防止できる。また、上記目的を達成するために、本発明は、媒体を光学的に読み取るものでライン状に並んだ光素子を有する光学読取部と、記憶部の記憶領域に形成されたリングバッファーと、を備える光学読取装置の制御方法であって、前記光学読取部が読み取った読取データを前記リングバッファーに書き込む前記ラインの位置を示すライトポインター、及び、読み出す前記読取データが含まれる前記ラインの位置を示すリードポインターによって、前記読取データの書き込み、及び、読み出しの対象となる前記ラインを管理した上で、前記光学読取部によりライン単位で読み取った前記読取データを前記リングバッファーにおいて巡回的に書き込み、前記リングバッファーにおける所定の領域の前記読取データを読み出し、さらに、前記リングバッファーにおける消去または上書き可能な前記ラインの位置を示す破棄ポインターによって、前記ライトポインターが前記破棄ポインターの位置を超えないように、前記ライトポインターを制御すると共に、前記リードポインターの位置にかかわらず、読み出しが完了していない前記読取データを含む前記ラインの位置を超えないように、前記破棄ポインターを制御することを特徴とする。この制御方法によれば、破棄ポインターは、リードポインターの位置にかかわらず、読み出しが完了していない読取データを含むラインの位置を超えないよう、その移動が制御されかつ、ライトポインターは、この破棄ポインターの位置を超えないようにその移動が制御されるため、読み出しが完了していない読取データを含むラインに対して読取データが上書きされることにより、新たにデータが書き込まれたり、また、当該ラインに含まれる読取データが消去されたりすることを効果的に防止できる。また、上記目的を達成するために、本発明は、媒体を光学的に読み取るものでライン状に並んだ光素子を有する光学読取部と、前記記憶部の記憶領域に形成されたリングバッファーと、を備える光学読取装置を制御する制御部により実行されるプログラムであって、前記制御部を、前記光学読取部が読み取った読取データを前記リングバッファーに書き込む前記ラインの位置を示すライトポインター、及び、読み出す前記読取データが含まれる前記ラインの位置を示すリードポインターによって、前記読取データの書き込み、及び、読み出しの対象となる前記ラインを管理した上で、前記光学読取部によりライン単位で読み取った前記読取データを前記リングバッファーにおいて巡回的に書き込み、前記リングバッファーにおける所定の領域の前記読取データを読み出し、さらに、前記リングバッファーにおける消去または上書き可能な前記ラインの位置を示す破棄ポインターによって、前記ライトポインターが前記破棄ポインターの位置を超えないように、前記ライトポインターを制御すると共に、前記リードポインターの位置にかかわらず、読み出しが完了していない前記読取データを含む前記ラインの位置を超えないように、前記破棄ポインターを制御する手段として機能させることを特徴とする。このプログラムを実行すれば、破棄ポインターは、リードポインターの位置にかかわらず、読み出しが完了していない読取データを含むラインの位置を超えないよう、その移動が制御されかつ、ライトポインターは、この破棄ポインターの位置を超えないようにその移動が制御されるため、読み出しが完了していない読取データを含むラインに対して読取データが上書きされることにより、新たにデータが書き込まれたり、また、当該ラインに含まれる読取データが消去されたりすることを効果的に防止できる。本発明によれば、読み出しが終了していないデータが書き込まれている領域に対して、新たにデータが書き込まれることを効果的に防止できる。以下、図面を参照して本発明の実施形態について説明する。図1は、本実施形態に係るドットインパクトプリンター10光学読取装置の外観を示す正面斜視図である。図2は、プリンター本体11を示す外観斜視図である。図3は、図1のドットインパクトプリンター10を示す側断面図である。図1に示すドットインパクトプリンター10は、記録ヘッド18図3参照が備える複数の記録ワイヤーを、リボンカートリッジ図示略から繰り出したインクリボン図示略を介して記録媒体Sに押し付け、この記録媒体Sの記録面上にドットを形成することにより、文字を含む画像を記録する。ドットインパクトプリンター10は、光学読取装置110図3参照を備え、光学読取装置としても機能し、記録媒体Sの表面に表示された文字や記号、画像等を光学的に読み取ることができる。ドットインパクトプリンター10で使用可能な記録媒体S媒体としては、所定長さに切断されたカット媒体と、複数枚が連接された連続紙とが挙げられる。カット媒体としては、例えば単票紙や単票複写紙などの他、通帳や葉書、封筒などがあり、連続紙には連続複写紙やミシン目などで連接されたファンフォールド紙を含む。本実施形態では、記録媒体Sとして、金融機関等が発行する小切手または手形以下、総称して小切手というや、金融機関等が発行する通帳が使用される。小切手は、磁気インクによって、その表面の一部の領域MAに使用者の口座番号や当該小切手のシリアル番号等のMICRMagneticInkCharacterRecognition情報が印刷された単票紙である。通帳は、複数枚の記録用紙が綴じられた冊子形態となっており、この冊子を開いた内側の面が記録面となっている。通帳の裏表紙に相当する面の後部には、磁気ストライプが設けられている。ドットインパクトプリンター10は、図1に示すように、外装体としての上部カバー12、上部ケース13及び下部ケース14を備え、上部ケース13及び下部ケース14の前面には、記録媒体Sを挿入及び排出する手差口15が開口している。一方、上部ケース13及び下部ケース14の背面には記録媒体Sを排出する排出口20が開口している。ドットインパクトプリンター10により処理された記録媒体Sを手差口15から排出するか、或いは排出口20から排出するかは、後述するホストコンピューター200からドットインパクトプリンター10に対して送信されるコマンドにより設定できる。手差口15が開口した側、すなわち図3中の左側をフロント前側とし、排出口20が開口した側、すなわち図3中の右側をリア後側とする。ドットインパクトプリンター10は、図2に示すように、上記の外装体に覆われるプリンター本体11を有している。プリンター本体11は、下本体部11Aと、この下本体部11Aの後端部に軸11Cで支持される上本体部図示略とを備えている。上本体部は、上本体部の左側面に設置されている開閉レバー図示略の操作によって回転可能であり、上本体部を回転させるとプリンター本体11の内部が露出する。図2及び図3に示すように、プリンター本体11は、ベースフレーム16と、このベースフレーム16の両端に固定される一対の右サイドフレーム17A及び左サイドフレーム17Bとを備える。両サイドフレーム17A、17Bの外側には、上本体部の両サイドフレーム図示略があり、その間にキャリッジガイド軸31が架け渡されると共に、両サイドフレーム17A、17B間に平坦面形状の前方媒体案内24及び後方媒体案内25が固定して設けられる。これらの前方媒体案内24と後方媒体案内25との間に、平面形状のプラテン21が配置され、このプラテン21の上方には、プラテン21に対向するように記録ヘッド18が配置されている。記録ヘッド18は、キャリッジガイド軸31に摺動自在に挿通されるキャリッジ19に搭載されている。キャリッジ19は、当該キャリッジ19を駆動するキャリッジ駆動モーター56図4の正転又は逆転により、タイミングベルト図示略を介して駆動され、キャリッジガイド軸31に案内されて往復移動される。キャリッジ19は、図1中符号Cで示す方向、すなわち、キャリッジガイド軸31の軸方向及びプラテン21の長手方向と一致する主走査方向に、上本体部両サイドフレームの間で往復走査される。なお、キャリッジ19の主走査方向Cに直交する方向、すなわち図1中符号Dで示す方向を副走査方向とする。キャリッジ19に搭載される記録ヘッド18は、キャリッジ19と共に走行される間に、その先端面においてプラテン21に対向するワイヤー突出部図示略から記録ワイヤーを突出させてインクリボンに打ち当て、プラテン21と記録ヘッド18との間に搬送される記録媒体Sにインクリボンのインクを付着させて、記録媒体Sに文字を含む画像を記録する。インクリボンは、上記の本体フレーム又はキャリッジ19に装着されるリボンカートリッジ図示略内に折り畳まれて収納され、キャリッジ19の走査に伴って繰り出される。また、記録ヘッド18の後方側には、図3に示すように、プラテン21の上方に位置するように媒体幅センサー55が配設される。媒体幅センサー55は、キャリッジ19に搭載されてキャリッジ19とともにプラテン21上を走査され、記録媒体Sの側端の位置や記録媒体Sの幅を求めるために使用される。プラテン21は、図2、図3に示すように、キャリッジ19の走行方向に延在して平面形状に形成され、付勢ばね180により記録ヘッド18に向けて付勢され、かつ弾性支持されている。付勢ばね180は圧縮コイルばねであり、この付勢ばね180の付勢力により、記録ヘッド18の記録動作時における記録ワイヤーの突出力が支持される。また、プラテン21は、記録媒体Sの搬送中にこの記録媒体Sの厚さが変化した場合、又はプリンター本体11に厚さの異なる記録媒体Sが搬入された場合に、付勢ばね180の付勢力に抗して、記録ヘッド18の先端により押圧されて記録ヘッド18から離れる方向に移動する。これにより、記録媒体Sの厚さにかかわらず、記録ヘッド18の先端と記録媒体Sの記録面との間のギャップが一定に確保される。プリンター本体11は、図3に示すように、記録媒体Sを搬送する媒体搬送機構搬送部100と、この媒体搬送機構100で搬送される記録媒体Sの先端が突き当てられて当該記録媒体Sを整列させる整列機構28と、小切手に設けられたMICR情報の読み取りや、通帳に設けられた磁気ストライプに対して磁気情報の読み取り又は書き込みを行う磁気ヘッド34を備えた磁気データ読書部29と、この磁気データ読書部29の磁気ヘッド34がMICR情報の読み取りを含む磁気情報処理の実行時に、記録媒体Sの浮き上がりを抑制すべく、記録媒体Sを上から押える媒体押え部30と、を有している。媒体搬送機構100は、図2、図3に示すように、プラテン21、第1駆動ローラー22A、第1従動ローラー22B、第2駆動ローラー23A、第2従動ローラー23B、第3駆動ローラー124A、第3従動ローラー124B、前方媒体案内24、後方媒体案内25、媒体搬送モーター26及び駆動輪列部27を備えて構成されている。媒体搬送機構100は、前方媒体案内24及び後方媒体案内25上に、各ローラーを介して記録媒体Sを搬送する搬送路Pを構成し、前方媒体案内24及び後方媒体案内25の上面が搬送路Pの搬送面PAとなっている。本構成では、第1駆動ローラー22A、第1従動ローラー22Bは、プラテン21及び記録ヘッド18に対してプリンター本体11のフロント側に配置され、第2駆動ローラー23A、第2従動ローラー23B及び第3駆動ローラー124A、第3従動ローラー124Bは、プラテン21及び記録ヘッド18に対してプリンター本体11のリア側に順次配置されている。第1駆動ローラー22Aと第1従動ローラー22Bとは、上下方向に配置されて対をなし、第2駆動ローラー23Aと第2従動ローラー23Bとは、上下方向に配置されて対をなし、第3駆動ローラー124Aと第3従動ローラー124Bとは、上下方向に配置されて対をなす。第1駆動ローラー22A、第2駆動ローラー23A及び第3駆動ローラー124Aは、媒体搬送モーター26及び駆動輪列部27によって回転駆動される駆動ローラーであり、第1従動ローラー22B、第2従動ローラー23B及び第3従動ローラー124Bは、それぞれ第1駆動ローラー22A、第2駆動ローラー23A、及び、第3駆動ローラー124A側に所定の押圧力でばね42A、42B、42Cによりばね付勢されている従動ローラーである。これによって、第1駆動ローラー22Aと第1従動ローラー22Bとが互いに反対方向に回転駆動され、第2駆動ローラー23Aと第2従動ローラー23Bとが互いに反対方向に回転駆動され、第3駆動ローラー124Aと第3従動ローラー124Bとが互いに反対方向に回転駆動される。駆動輪列部27は、図2に示すように、右サイドフレーム17Aの外側に配置される。この駆動輪列部27は、正転又は逆転可能な媒体搬送モーター26の駆動軸に回転一体に固定されたモーターピニオン51を備える。このモーターピニオン51からの駆動力が、減速ギア52を介して第2駆動ローラー23Aの第2ローラー軸33に取り付けられた第2駆動ギア53Bへ伝達され、更に、この第2駆動ギア53Bから中間ギア54を介して第1駆動ローラー22Aの第1ローラー軸32に取り付けられた第1駆動ギア53Aに伝達される。また、第2駆動ローラー23Aの第2ローラー軸33の回転力が、例えば、駆動ベルト図示略によって第3駆動ローラー124Aの第3ローラー軸134に伝達される。これにより、図3に示す第1駆動ローラー22A、第2駆動ローラー23A、及び、第3駆動ローラー124Aが同一方向に回転して、記録媒体Sをプリンター本体11内に搬送可能とする。つまり、図3に示す第1駆動ローラー22A、第2駆動ローラー23A、及び、第3駆動ローラー124Aは、媒体搬送モーター26が正転している場合、副走査方向に沿って、図中符号Fで示すようにプリンター本体11内に記録媒体Sを搬送し、媒体搬送モーター26が逆転している場合、図中符号Rで示すように、プリンター本体11内から排出する方向に記録媒体Sを搬送する。整列機構28は、記録ヘッド18による記録媒体Sへの記録や、光学読取装置110による記録媒体Sの表面の読み取りを行う前に、この記録媒体Sを整列するものである。整列機構28は、第1駆動ローラー22A及び第1従動ローラー22Bと記録ヘッド18及びプラテン21との間に、主走査方向に並べて設けられ、搬送路P内に突出する複数の整列板38と、整列板38を駆動する整列モーター58図4とを備え、これら整列板38に記録媒体Sの先端部を突き当てることで記録媒体Sの向き整列させることができる。プリンター本体11は、図2に示すように、搬送路Pにおける整列板38の上流側近傍に、これら整列板38に突き当てられた記録媒体Sの有無を検知する複数の整列センサー39を備える。整列センサー39は、それぞれ搬送路Pを挟んで対向する発光部LED等と受光部フォトトランジスター等とを備える光透過型のセンサーであり、主走査方向に並べて配設されている。複数の整列センサー39のうち記録媒体Sの先端を検出したセンサーの数及び配置により、整列機構28による整列後の記録媒体Sの搬送方向に対する傾きが、許容範囲内あるか否かを判定できる。また、ドットインパクトプリンター10は、媒体搬送モーター26の駆動制御、キャリッジ19の走行制御、記録ヘッド18の記録ワイヤーによる記録動作の制御、光学読取装置110の読取動作の制御等、ドットインパクトプリンター10の全体を制御する制御部として、例えばプリンター本体11の後側の下方に、制御基板部図示略を備えている。プリンター本体11において、第1駆動ローラー22Aのフロント側には、搬送路Pへの記録媒体Sの挿入を検知する複数の媒体端センサー47が並設されている。これら媒体端センサー47は、搬送路Pに向けて光を発する発光部と、その反射光を検出する受光部とを備えた光反射型センサーであり、手差口15から挿入された記録媒体Sを検出する。なお、媒体端センサー47は搬送路Pを挟んで対向するように発光部と受光部とを配した光透過型センサーであっても良い。本構成では、すべての媒体端センサー47の受光部が、受光した状態から、いずれか1つの媒体端センサー47で受光が遮られた場合には、記録媒体Sが搬送路P内に挿入されたと判断される。また、プリンター本体11は、図3に示すように、記録媒体Sの表面に表示された文字、記号または画像等を読み取る光学読取装置110光学読取部を備える。この光学読取装置110は、記録媒体Sの上面側に印刷等で表示されている情報を読み取る第1スキャナー111読取部と、この第1スキャナー111に対向配置され、当該記録媒体Sの下面側に印刷等で表示されている情報を読み取る第2スキャナー112読取部とを備える。通常、記録媒体Sは、MICR情報が印刷されている面が下面になるよう、手差口15から挿入される。第1スキャナー111及び第2スキャナー112は、第2駆動ローラー23Aと第3駆動ローラー124Aとの間に配置され、搬送路Pを搬送中の記録媒体Sの情報を連続的に読み取る光学イメージセンサーである。第1スキャナー111及び第2スキャナー112は、例えば、CISContactImageSensor型の画像読取センサーであり、記録媒体Sに密着する平坦なカバーガラス140、150と、これらカバーガラス140、150を保持する本体ケース141、151とをそれぞれ備える。これら本体ケース141、151の内側には、LED等の光源から出力される光を記録媒体Sの読み取り領域に対して照射する照射部図示略と、主走査方向C方向に一列に配列された複数の受光センサー図示略と、この受光センサーからの信号を上記制御基板部に出力する出力部図示略とがそれぞれ収容されている。なお、第1スキャナー111及び第2スキャナー112はCISを備えたものに限らず、CCDChargeCoupledDeviceを備えたものであってもよい。第2スキャナー112は、図2に示すように、プラテン21と略平行にドットインパクトプリンター10の幅方向に延在して長手形状に構成される本体ケース151及びカバーガラス150を備え、この本体ケース151は、カバーガラス150の上面ガラス面が後方媒体案内25に形成された開口を通じて搬送路Pに露出するように配置されている。第1スキャナー111は、図3に示すように、カバーガラス140の下面ガラス面が、上記カバーガラス150の上面に対向するように第2スキャナー112の上方に設けられ、幅方向においても第2スキャナー112と略同一の長さの長手形状に形成されている。第1スキャナー111の上部には付勢部材113が設けられ、第1スキャナー111は、付勢部材113によって後方媒体案内25の記録媒体Sに対して近接するように付勢されている。また、付勢部材113は、第1スキャナー111を幅方向に渡って略均一な力で第2スキャナー112側に押し付けている。ここで、付勢部材113としては、コイルばねや板ばね、或いは、エラストマー製のクッション部材等を使用することができる。カバーガラス140、150のガラス面間には、所定の厚さの記録媒体が入り込み可能な間隔が設けられており、記録媒体Sを読み取る際には、搬送された記録媒体Sによって第1スキャナー111が上方に押し退けられ、付勢部材113が縮むことによりカバーガラス140、150間を記録媒体Sが通過可能となる。すなわち、光学読取装置110では、付勢部材113によって付勢された第1スキャナー111によって記録媒体Sを第2スキャナー112側に押し付けることで、記録媒体Sとカバーガラス140、150のガラス面とを確実に密着させて、読み取り品質を向上させている。第1スキャナー111及び第2スキャナー112の受光センサー図示略は、ドットインパクトプリンター10の主走査方向に一列に並べられ、主走査方向に延びるライン状に読み取りを行う。すなわち、光学読取部たる第1スキャナー111、及び、第2スキャナー112は、ライン状に並んだ光素子を有している。第1スキャナー111及び第2スキャナー112の受光センサーは、主走査方向における記録ヘッド18の印字可能範囲よりも広い範囲に配設されており、ドットインパクトプリンター10が印刷可能な全ての記録媒体よりも広い幅で読み取りを行える。すなわち、光学読取装置110は、ドットインパクトプリンター10で使用する全ての記録媒体Sの全面を読み取ることができる。第1スキャナー111と第2スキャナー112とは、図3に示すように搬送路Pを挟んで対向して配設されているが、第1スキャナー111が備えるライン状の受光センサーと、第2スキャナー112が備えるライン状の受光センサーとは、記録媒体Sの搬送方向において5mm程度オフセットされている。この構成により、互いの光源からの光が他方の受光センサーに与える影響を解消でき、より高い読取品質が得られる。第1スキャナー111及び第2スキャナー112は、それぞれ、R、G、Bの光源を備え、モノクロ2値、16階調、256階調及びフルカラーの読み取りが可能である。また、第1スキャナー111及び第2スキャナー112の読取解像度は、例えば、200dpiドット/インチ、300dpi、600dpiの3段階に設定可能である。記録媒体Sの搬送方向副走査方向における読取ライン数は、主走査方向における読取解像度に合わせて設定され、読み取り時の記録媒体Sの搬送速度は読取解像度と、受光センサーの検出値の処理速度等の仕様に合わせて調整される。図4は、ドットインパクトプリンター10の制御系の構成を示すブロック図である。この図4に示す各部は、制御基板図示略に実装されたハードウェアとソフトウェアとの協働により実現される。ドットインパクトプリンター10は、CPUや、その他の周辺回路を備え、制御プログラムに基づいてドットインパクトプリンター10の全体を制御する制御部40、制御部40によりEEPROM42から読み出された制御プログラムやデータ等を一時的に記憶するRAM41記憶部、制御部40により実行される制御プラグラムや処理されるデータ等を記憶したEEPROM42、ドットインパクトプリンター10を制御するホストコンピューター200との間で情報を送受信する際のデータ形式を変換するインターフェイスI/F43、各種センサー類に接続されたゲートアレイG/A45、各種モーターを駆動するモータードライバー46、及び、ヘッドを駆動するヘッドドライバー48を備え、これらの各部はバス49を介して接続されている。RAM41には、光学読取装置110が読み取った読取画像データが書き込まれる画像バッファー60が形成されている。詳細は後述するが、この画像バッファー60は、所定の手順に準拠して巡回的にデータが書き込まれるリングバッファーであり、制御部40は、当該画像バッファー60に書き込まれた読取画像データを読み出して、ホストコンピューター200へ出力する。ゲートアレイ45には、整列センサー39、媒体端センサー47、媒体幅センサー55、第1スキャナー111、及び、第2スキャナー112が接続されている。ゲートアレイ45は、整列センサー39、媒体端センサー47及び媒体幅センサー55から入力されるアナログ電圧を量子化してデジタルデータとし、制御部40に出力する。第1スキャナー111及び第2スキャナー112は、記録媒体Sの表面をCISにより光学的に読み取り、CISの検出電圧をCISの画素毎にゲートアレイ45に供給し、ゲートアレイ45は、第1スキャナー111及び第2スキャナー112から供給されたアナログ電圧を量子化してデジタルデータとして制御部40に出力する。制御部40は、後述する所定の手順に準拠して、取得したデジタルデータに基づいて、読取画像データを画像バッファー60に展開する。モータードライバー46は、媒体搬送モーター26、キャリッジ駆動モーター56、磁気ヘッド駆動モーター57、及び整列モーター58に接続され、これら各モーターに駆動電流や駆動パルスを供給して、これらのモーターを動作させる。なお、モータードライバー46には、整列板38図3を動作させる整列モーター58図4等が接続されていてもよい。媒体端センサー47は、記録ヘッド18及び磁気ヘッド34に接続され、記録ヘッド18に対して駆動電流を供給することによって記録ワイヤーを突出させる一方、磁気ヘッド34に対して読取/書込用の駆動電流を出力するとともに、磁気データの読取を行う場合には、磁気ヘッド34の検出電圧アナログ電圧を検出し、デジタルデータとして制御部40に出力する。制御部40は、EEPROM42に格納された制御プログラムに基づいて、ゲートアレイ45、モータードライバー46及びヘッドドライバー48を介して、各種センサーの検知状態を取得するとともに各モーターを駆動して記録媒体Sを搬送し、各ヘッドを駆動することにより、記録媒体Sへの記録を実行する。次いで、画像バッファー60に読取画像データが書き込まれ、書き込まれた読取画像データが順次読み出される際の動作について詳述する。図5は、所定の読取解像度例えば600dpiで、所定のサイズの単票紙たる記録媒体Sを読み取る場合にRAM41に形成される画像バッファー60の状態を模式的に示す図である。図5Aは、第1スキャナー111の読取結果に基づいて読取画像データが書き込まれる画像バッファー60である第1画像バッファー60aを示し、図5Bは、第2スキャナー112の読み取り結果に基づいて読取画像データが書き込まれる画像バッファー60である第2画像バッファー60bを示している。図5に示すように、本実施形態では、RAM41に、2つのバッファーが形成され、一方のバッファーである第1画像バッファー60aに、第1スキャナー111の読み取り結果に基づいて読取画像データが書き込まれ、また、他方のバッファーである第2画像バッファー60bに、第2スキャナー112の読み取り結果に基づいて読取画像データが書き込まれる構成となっている。以下の説明では、第1画像バッファー60aを利用して、画像バッファー60の構成、及び、画像バッファー60の利用の態様を説明するが、第2画像バッファー60bは、第1画像バッファー60aと同様の構成であり、かつ、利用の態様も同様である。第1画像バッファー60aは、読取画像データが展開されるバッファーである。読取画像データは、ビットマップ形式のデータであり、データ上で読取解像度に準じたピッチでドットマトリクス状に配置された各画素について、画素毎にRGB系の色成分を階調値例えば、RGB系の色成分のそれぞれを0-256段階で表した階調値や、モノクロに係る色成分を2値で表した値として保持する。以下、説明の便宜のため、画素毎に保持する情報のことを単に画素と表現することがあるものとする。図5Aの例では、第1画像バッファー60aは、所定方向矢印Y1に8400ドット、この所定方向に直交する方向であるライン方向矢印Y2に5100ドットの画素が展開可能な構成となっている。また、第1画像バッファー60aは、ライン方向に延びる複数8400本のラインラインL1~ラインL8400が所定方向に並んで配置されて形成されている。図5Aに示すように、所定方向とは、具体的には、ラインL1からラインL8400へ向かう方向である。第1画像バッファー60aの各ラインには、第1スキャナー111の読み取り結果に応じて、ラインごとに所定方向へ向かって順次ラインデータ読取データが書き込まれる。詳述すると、上述したように、第1スキャナー111は、主走査方向図1のC方向に一列に配列された複数の受光センサーを備えており、記録媒体Sの上面の読み取りの際には、記録媒体Sの搬送に伴って、一列の受光センサーによって、間欠的に、スキャン方向搬送方向の逆方向へ向かって、記録媒体Sの上面が読み取られる。その際、一列の受光センサーの読み取りごとに、一列の受光センサーの出力値に基づいて、主走査方向C方向に対応する方向に延びる5100ドットの画素画素ごとの色に係る情報からなるラインデータが、順次、生成される。第1画像バッファー60aにおいて、ライン方向矢印Y2は主走査方向C方向に対応する方向であり、かつ、所定方向矢印Y1はスキャン方向に対応する方向である。そして、上記のようにして生成されたラインデータは、ラインごとに所定方向へ向かって、順次、書き込まれる。より具体的には、一列の受光センサーの最初の読み取り結果に基づいて生成されたラインデータが、ラインL1に書き込まれ、次に一列の受光センサーの読み取り結果に基づいて生成されたラインデータが、ラインL2に書き込まれ、という具合に、順次、ラインデータがラインごとに所定方向へ向かって書き込まれる。ここで、第1画像バッファー60aは、リングバッファーであり、ラインデータの書き込みは、所定方向へ向かって巡回的に行われる。より具体的には、ラインL8400へラインデータの書き込みが行われた場合、次は、ラインL1へのラインデータの書き込みが行われる。この場合、ラインL1には、既にラインデータが書き込まれているが、新たなラインデータによって上書きされる。本実施形態では、制御部40は、ライトポインターPW、及び、リードポインターPRによって、ラインデータの書き込み、及び、読み出しの対象となるラインを管理する。詳述すると、ライトポインターPWは、ラインデータを書き込むラインを示すポインターである。ポインターとは、特定のラインを示す値を保持する情報であればよく、例えば、ポインターを管理するためのプログラム上に定義された変数であってもよく、また、RAM41の所定の領域に書き換え可能に記憶されたデータであってもよい。このことは、リードポインターPRや、後述する破棄ポインターPHについても同様である。制御部40は、生成されたラインデータを第1画像バッファー60aのラインに書き込む際、ライトポインターPWが示すラインにラインデータを書き込み、かつ、ラインデータの書き込みが終了した後は、ライトポインターPWが示すラインを、所定方向側へ1つ移動させる。以下の説明では、ポインターが示すラインを、所定方向側へ移動させることを、単に、ポインターを所定方向へ移動すると表現することがあるものとする。また、以下の説明において、ポインターの位置とは、ポインターが示すラインのことである。また、リードポインターPRは、ラインデータを読み出すラインを示すポインターである。制御部40は、第1画像バッファー60aに書き込まれたラインデータを読み出す際、リードポインターPRが示すラインに書き込まれているラインデータを読み出し、かつ、ラインデータの読み出しが終了した後は、リードポインターPRが示すラインを、所定方向側へ1つ移動させる。なお、制御部40は、読み出したラインデータを、後述する所定の手順に従って、インターフェイス43を介して、ホストコンピューター200に転送する。リードポインターPRは、基本的には、ライトポインターPWの移動に追従して、移動する。これにより、第1画像バッファー60aに書き込まれたラインデータが、書き込まれた順に読み出され、ホストコンピューター200に転送される。本実施形態では、ラインデータの読み出し、及び、転送は、ブロック単位で行われる。図6は、ブロックを説明するための図であり、ブロックごとに分割された第1画像バッファー60aの様子を模式的に示す図である。図6に示すように、本実施形態では、第1画像バッファー60aが複数のラインごとに分割されて、n個のブロックブロックB1~ブロックBnが形成されている。1つのブロックを構成するラインの数は、500個を超えない範囲で、ドットインパクトプリンター10とホストコンピューター200との間の通信速度等を考慮して、ラインデータの転送に適した値に規定される。本実施形態では、上記のようにして形成されているブロック単位で、ラインデータの転送が行われる。詳述すると、図6を参照し、第1スキャナー111によって記録媒体Sの上面の画像の読み取りが実行されると、ラインL1から所定方向へ向かってラインごとに、順次、ラインデータの書き込みが実行される。この場合において、ラインL1が属するブロックB1を構成するK1個のラインへのラインデータの書き込みが完了するまでは、ラインデータの読み取りは実行されず、従って、リードポインターPRは、ラインL1を示した状態が維持される。そして、ラインデータの書き込みが進行し、ブロックB1を構成するK1個の全てのラインへのラインデータの書き込みが完了すると、制御部40により、ブロックB1を構成するラインのそれぞれについて、ラインデータの読み出しが所定方向へ向かって順次実行される。そして、ブロックB1を構成する全てのラインのラインデータの読み出しが完了した後、制御部40は、読み出したラインデータの全てを所定のプロトコルに準拠して、ホストコンピューター200に転送する。なお、ブロックB1を構成する全てのラインのラインデータの読み出しが完了した時点では、リードポインターPRは、ブロックB2の先頭のラインを示している状態となる。制御部40は、ブロックB1を構成するラインのラインデータの転送が終了した後、ブロックB2についても同様にしてラインデータを転送する。すなわち、ブロックB2を構成する全てのラインへのラインデータの書き込みが完了するまで、ブロックB2を構成するラインに書き込まれたラインデータの読み出しを停止し、ブロックB2を構成する全てのラインへのラインデータの書き込みが完了した後に、ラインデータの読み出しを開始し、読み出したラインデータを包括的にホストコンピューター200に転送する。このようにして、制御部40は、ブロック単位で、ラインデータの転送を実行するが、これにより、既にラインデータが書き込まれており、かつ、転送を考慮してそのサイズライン数が規定されている一群の領域ブロックに対して、一括して読み出し、及び、転送に係る処理を実行でき、読み出し、及び、転送に係る処理が効率化する。また、本実施形態に係るドットインパクトプリンター10は、第1画像バッファー60aにおける所定の領域に属するラインデータのみの読み出し、転送を行うエリアスキャンを実行可能である。図7は、エリアスキャンを説明するため、第1画像バッファー60aを模式的に示す図である。図7では、第1画像バッファー60aが所定の座標系に展開されているものとし、第1画像バッファー60aを構成する画素=第1画像バッファー60aに展開される読取画像データを構成する画素のうち、図中最左の最上に配置された画素を原点として、当該画素に座標として0、0を付与すると共に、当該原点から図中右方向へ向かう方向をx軸方向と規定し、かつ、当該原点から図中下方向へ向かう方向をy軸方向と規定し、図中最右の最上に配置された画素に座標として5100、0を付与し、図中最左の最下に配置された画素に座標として0、8400を付与し、図中最右の最下に配置された画素に座標として5100、8400を付与している。第1画像バッファー60aを構成する全ての画素は、原点からの相対的な位置を示す座標によって一意に特定される。図7の例において、エリアスキャンでは、例えば、P11000、4000、P24000、4000、P31000、8000、及び、P44000、8000の4点によって定義される領域A1に含まれる属するラインデータのみの読み出し、及び、転送を実行可能である。この場合、記録媒体Sの画像のうち、領域A1に属する画像の画像データのみが、最終的に、ホストコンピューター200に転送されることとなる。なお、エリアスキャンの実行にあたっては、ホストコンピューター200が提供する所定のユーザーインターフェイスを利用して、ユーザーは、記録媒体Sの上面において画像の転送を行いたい矩形の領域を指定する。この指定に基づいて、ホストコンピューター200は、第1画像バッファー60aにおいて、指定された領域に対応する領域の4点の座標を算出し、算出した座標をドットインパクトプリンター10の制御部40に出力する。図7を用いて領域A1に対するエリアスキャン時の動作について詳述する。なお、図7に示すように、領域A1は、ブロックBi-1、ブロックBi、及び、ブロックBi1の3つのブロックに跨った領域である。エリアスキャンでは、ラインデータの書き込みは、エリアスキャンを行わない場合と同様にして、ラインごとに所定方向へ向かって、順次、実行される。そして、第1スキャナー111による記録媒体Sの上面に読み取りに伴って、ラインデータの所定方向への書き込みが進行し、ブロックBi-1の1つ手前のブロックであるブロックBi-2を構成する全てのラインへのラインデータの書き込みが完了したものとする。この場合、ライトポインターPWは、ブロックBi-1の先頭のラインであるラインLaを示した状態となる。一方、制御部40は、ブロックBi-2の書き込みが終了した時点では、読み出しを実行すべきラインデータが存在しないため、リードポインターPRを移動させず、リードポインターPRがラインL1を示した状態を維持する。ブロックBi-2へのラインデータの書き込みが完了した後、さらに所定方向へのラインデータの書き込みが進み、ブロックBi-1を構成する全てのラインデータへの書き込みが完了したとする。ブロックBi-1には、領域A1が延在しているが、上述したように、ラインデータの読み出し、及び、転送はブロック単位で行われるため、制御部40は、ブロックBi-1を構成する全てのラインデータへのラインデータの書き込みが完了するまでは、リードポインターPRの移動を行わず、リードポインターPRがラインL1を示した状態を維持する。ブロックBi-1を構成する全てのラインデータへの書き込みが完了した場合、制御部40は、リードポインターPRを、ラインLaに至るまで所定方向へ向かって移動させる。この移動に際し、ラインデータの読み取りは行われない。次いで、制御部40は、領域A1が属していないラインデータが書き込まれているライン、具体的には、ラインLaとラインLbとの間に介在するラインラインLaを含み、ラインLbを含まないについては、ラインデータの読み出しを行うことなく、リードポインターPRが示すラインを、所定方向へ向かって順次移動させた後、リードポインターPRが示すラインを、ラインLbとする。このラインLbは、領域A1に属するデータが含まれるラインデータであって、ブロックBi-1において最も所定方向と逆方向側に位置するラインデータが書き込まれているラインである。次いで、制御部40は、ラインLbに書き込まれたラインデータのうち、領域A1に属するデータ図7中斜線で表したエリアのデータの読み出しを実行する。次いで、制御部40は、リードポインターPRを所定方向へ1つ移動させ、当該リードポインターPRが示すラインに書き込まれたラインデータのうち、領域A1に属するデータの読み出しを実行する。このようにして、制御部40は、ブロックBi-1について、領域A1に属するデータをラインごとに所定方向へ向かって順次読み出していく。このようにして、ブロックBi-1において、リードポインターPRの所定方向への移動、及び、領域A1に属するデータの読み出しを順次実行し、リードポインターPRが示すラインが、ブロックBiの先頭のラインであるラインLcとなった時点で、制御部40は、読み出したデータ=ブロックBi-1において領域A1に属するデータをホストコンピューター200に転送する。制御部40は、ブロックBi、及び、ブロックBi1についても、ブロックBi-1と同様にして、ブロック単位での領域A1に属するデータの読み出し、及び、データの転送を実行する。これにより、領域A1に属する全てのデータがホストコンピューター200に転送されることとなる。このように、領域A1に属するデータついては、ブロック単位で、一括して、読み出し、転送が実行されるため、読み出し、及び、転送に係る処理の効率化を実現可能である。上述したように、第1画像バッファー60aは、リングバッファーであり、ライトポインターPW、及び、このライトポインターPWに追従するリードポインターPRは、第1画像バッファー60aの末端のライン図5Aの例ではラインL8400の次は、先頭のライン図5Aの例では、ラインL1へ移動する構成となっている。この場合、ライトポインターPWの所定方向への移動が進み、リードポインターPRを所定方向側へ超えてしまう、といった事態が発生する可能性がある。この場合、ラインデータの読み出しが行われていないラインに対して、新たにラインデータが書き込まれてしまうこととなるため、上記事態が発生することを防止する必要がある。このことを防止するため、本実施形態では、ライトポインターPW、及び、リードポインターPRのほか、破棄ポインターPHを備え、制御部40は、この破棄ポインターPHによって、ライトポインターPWがリードポインターPRを所定方向側に超えることが無いよう、ライトポインターPWの位置を管理している。図8は、破棄ポインターPHの基本的な動きを説明するため、第1画像バッファー60aを模式的に示す図である。図8では、ライトポインターPW、リードポインターPR、及び、破棄ポインターPHを模式的に示しており、各ポインターの図形の先端が指し示すラインが、各ポインターが示すラインである。以下の説明では、説明の明確化のため、上述したエリアスキャンではなく、第1画像バッファー60aに展開された読取画像データの全てが転送されることを前提とし、また、ブロックを考慮しないものとする。図8Aに示すように、破棄ポインターPHは、後述する例外を除き、基本的に、リードポインターPRを追従して動く。本実施形態では、破棄ポインターPHは、基本的に、リードポインターPRが示すラインから10ライン分、所定方向と逆方向以下、単に逆方向というに位置するラインを示す状態が維持されるように、リードポインターPRを追従する。さらに、ライトポインターPWは、破棄ポインターPHを所定方向側へ超えないように、その位置が制御される。これにより、ライトポインターPWが、リードポインターPRを超えることが防止され、読み出しが終わっていないラインデータが書き込まれたラインに、新たにラインデータが書き込まれることが防止される。図8を用いて具体的に説明すると、ライトポインターPW、リードポインターPR、及び、破棄ポインターPHの位置関係が、図8Aに示す状態であるものとする。なお、図8A中、ライトポインターPWとリードポインターPRとの間に介在するライン斜線で示したエリアに含まれるラインに書き込まれたラインデータは、書き込みが終了しているものの読み出しが行われていないラインデータである。そして、図8Aに示す状態から、ライトポインターPWの所定方向への移動が進行し、図8Bに示す状態へと、状態が遷移したいとする。この場合において、ライトポインターPWは、破棄ポインターPHを所定方向側へ向かって超えないよう、その位置が制御されるため、ライトポインターPWが、書き込みが終了しているものの読み出しが行われていないラインデータが書き込まれたラインが存在するエリア図8B中、斜線で示すエリアに至ることが確実に防止される。また、上述したエリアスキャンでは、第1画像バッファー60aにおいて異なる複数の領域に属するデータのみの読み出し、及び、転送を実行することが可能である。そして、異なる複数の領域のそれぞれについて、ライン方向において重なった部分が存在する場合がある。このような場合は、以下のようにして、異なる複数の領域に属するデータの読み出しが実行される。図9は、ライン方向に重なった部分が存在する領域のそれぞれに属するデータを読み出す際の処理を説明するため、第1画像バッファー60aを模式的に示す図である。図9の例では、領域A2、及び、領域A3についてエリアスキャンを行うものとする。すなわち、領域A2、及び、領域A3に属するデータのみの読み出し、及び、転送を実行するものとする。図9に示すように、領域A2、及び、領域A3は、範囲Q1においてそれぞれライン方向に重なった部分が存在している。このような場合、領域A2のうちブロックBiに属する領域である領域a2、及び、領域A3のうちブロックBiに属する領域である領域a3について、個別に、読み取りが実行される。なお、以下の説明において、制御部40は、ブロックBiにおける領域a2、及び、領域a3の状態範囲を、ブロックBiに関する情報や、ホストコンピューター200から入力された領域A2、及び、領域A3の各頂点の座標等に基づいて、事前に検出しており、この検出結果に基づいて、リードポインターPRの移動を管理する。ブロックBiを構成する全てのラインへのラインデータの書き込みが終了していることを前提として詳述すると、制御部40は、まず、領域a2に属するデータを、上述した方法により、ラインごとに所定方向へ向かって順次読み出していく。この場合、リードポインターPRは、矢印Y4に示すように移動し、最終的に、位置T1へ至ることとなる。領域a2に属するデータの読み出しが終了すると、制御部40は、読み出したデータをホストコンピューター200に転送する。このように、本実施形態では、同一のブロックに異なる複数の領域が存在している場合、領域毎に、データの読み取り、転送が行う構成となっており、これにより、異なる領域に属するデータは、領域毎にそれぞれ一括して、データの読み取り、転送が実行されることとなり、読み取り、及び、転送に係る処理の単純化、これに伴う処理効率の向上を実現している。領域a2に属するデータの読み出しが終了すると、制御部40は、リードポインターPRを、領域a3の先頭の位置T2へ移動する。次いで、制御部40は、領域a3に属するデータを、ラインごとに所定方向へ向かって順次読み出していく。この場合、リードポインターPRは、矢印Y5に示すように移動する。次いで、制御部40は、読み出した領域a3に属するデータをホストコンピューター200に出力する。以上のようにして制御部40は、領域a2に属するデータ、及び、領域a3に属するデータのそれぞれについて、個別に読み出し、ホストコンピューター200に転送する。ここで、上述した破棄ポインターPHを、いかなる場合であっても、リードポインターPRが示すラインから10ライン分、逆方向に位置するラインを示す状態が維持されるように、移動させた場合、図9の例のようにライン方向に重なった部分が存在する複数の領域についてエリアスキャンを実行する場合に、以下のような不具合が生じる可能性がある。すなわち、領域a2に属するデータの読み出しが完了し、リードポインターPRが位置T1に至った場合に、これに伴って、破棄ポインターPHが、それより10ライン分逆方向側の位置である位置T3に移動したとする。この場合、位置T2と、位置T3との間の範囲Q2に属するラインに関しては、読み出すべきデータであって、かつ、読み出しが終了していないデータ領域a3に属するデータが残存した状態である。従って、範囲Q2に属するラインについては、領域a3に属するデータの読み出しが終了するまでは、新たにラインデータを書き込むべきではない。しかしながら、破棄ポインターPHは、位置T3に位置しているため、当該破棄ポインターPHを所定方向側に超えないようにその移動が制御されるライトポインターPWが、破棄ポインターPHの位置に至り、これに伴って、範囲Q2に属するラインについて、読み出しが終了していない段階で新たなラインデータが書き込まれる、といった事態が発生する可能性がある。以上を踏まえ、制御部40は、上記のような場合、破棄ポインターPHの位置を以下のように制御する。すなわち、制御部40は、破棄ポインターPHを所定方向へ1ライン分移動させる際、まず、移動予定のラインに書き込まれたラインデータに、読み出すべきデータであって、かつ、読み出しが終了していないデータが含まれているか否かを判別する。そして、制御部40は、当該データが含まれていない場合は、破棄ポインターPHの1ライン分の移動を実行し、当該データが含まれている場合は、破棄ポインターPHの移動を停止する。そして、制御部40は、上記移動後のラインに書き込まれたラインデータのうち、読み出すべきデータであって、かつ、読み出しが終了していないデータの全ての読み出しが終了したか否かを監視し、当該データの全ての読み出しが終了し、かつ、破棄ポインターPHとリードポインターPRとの間の所定方向における距離が10ラインを超えた場合に、破棄ポインターPHの所定方向への1ライン分の移動を実行する。例えば、図9を参照し、破棄ポインターPHが、位置T2の1ライン分逆方向側の位置T4に位置しているものとする。さらに、領域a2に属するデータの読み出しは終了しているものの、領域a3に属するデータは一切読み出しが実行されていないものとする。このような状況下で、制御部40が、リードポインターPRの所定方向への移動に伴って、破棄ポインターPHを位置T4から位置T2へ移動させようとしている場合を想定する。この場合、制御部40は、破棄ポインターPHの位置T2への移動の前に、位置T2に対応するラインに書き込まれたラインデータに、読み出すべきデータであって、かつ、読み出しが終了していないデータが含まれているか否かを判別する。この判別は、データの読み出しの状況を示す情報を記憶しておき、当該情報に基づいて行ってもよく、また、ラインごとに、ラインデータに、読み出すべきデータであって、かつ、読み出しが終了していないデータが含まれているか否かをフラグによって管理し、当該フラグの状態に基づいて行うようにしてもよい。そして、位置T2に対応するラインに書き込まれたラインデータには、読み出すべきデータであって、かつ、読み出しが終了していないデータ領域a3に係るデータが含まれているため、制御部40は、破棄ポインターPHの位置T2への移動を停止する。次いで、制御部40は、位置T2に対応するラインに書き込まれたラインデータに含まれる領域a3に属するデータの読み出しが終了したか否かを監視し、換言すれば、位置T2に対応するラインに書き込まれたラインデータのうち、読み出すべきデータであって、かつ、読み出しが終了していないデータの全ての読み出しが終了したか否かを監視し、領域a3に属するデータの読み出しが終了した場合であって、かつ、破棄ポインターPHとリードポインターPRとの間の所定方向における距離が10ラインを超えている場合に、破棄ポインターPHを位置T4から位置T3へ移動させる。このように、本実施形態では、制御部40は、ある1のラインに書き込まれたラインデータに、読み出すべきデータであって、かつ、読み出しが終了していないデータが含まれている場合、制御部40は、リードポインターPRの位置にかかわらず、破棄ポインターPHが、当該1のラインを所定方向に超えて移動しないように、破棄ポインターPHの移動を制御する。これにより、読み出すべきデータであって、かつ、読み出しが終了していないデータが存在しているラインに対して、新たにラインデータが書き込まれることが好適に防止される。さらに、上記のように破棄ポインターPHの移動を制御すれば、ブロック内に異なる複数の領域が存在している場合において、これら領域がライン方向に重なっていない範囲例えば、図9の範囲Q3については、ラインデータに含まれる読み出すべきデータの読み出しの状況に応じて、適宜、破棄ポインターPHが所定方向へ移動することとなり、不必要に、破棄ポインターPHの所定方向への移動が制限され、これに伴って、新たなラインデータを書き込み可能な領域が不必要に狭められることが防止される。図9を用いて、具体的に説明すると、範囲Q3については、領域a2に係るデータの読み取りが終了すれば、この範囲Q3に属するラインに書き込まれたラインデータのうち読み出すべきデータの読み出しが終了したこととなるため、破棄ポインターPHを所定方向へ移動させてもよいが、上記のように破棄ポインターPHの移動を制御することにより、範囲Q3については、領域a2に係るデータの読み出しに応じて、適切にはきポインターPHが所定方向へ移動することとなる。また、上述したエリアスキャンでは、所定方向に離間して配置された領域に属するデータの読み出しを実行可能である。図10は、所定方向に離間して配置された領域に属するデータの読み出しを説明するため、第1画像バッファー60aを模式的に示す図である。まず、図10Aを用いて、本願発明が適用される前の従来の読み出しに係る処理について説明する。図10Aの例では、領域A4、及び、この領域A4と所定方向に離間して配置された領域A5について、エリアスキャンが実行される。図10Aに示すように、領域A4は、第1画像バッファー60aに形成された複数のブロックのうち、先頭のブロックであるブロックB1に属し、また、領域A5は、第1画像バッファー60aに形成された複数のブロックのうち、末尾のブロックであるブロックBnに属している。従来は、上記のように領域A4、及び、領域A5が規定されている場合において、第1スキャナー111の記録媒体Sの上面の読み取りに応じて、ブロックB1を構成する全てのラインへのラインデータの書き込みが完了すると、制御部40は、上述したように、領域A4に属するデータの読み出し、及び、転送を実行する。ブロックB1に含まれる領域A4に属するデータの読み出し、及び、転送が完了した時点では、リードポインターPRは、ブロックB2の先頭のラインに対応する位置である位置T6に位置した状態となる。ブロックB1を構成する全てのラインへのラインデータの書き込みが完了した後も、ラインデータの書き込みは継続して実行され、ブロックB2~ブロックBn-1を構成する全てのラインへのラインデータの書き込みが完了したとする。この場合、ブロックB2~ブロックBn-1には、読み出すべきデータが存在しないため、制御部40は、リードポインターPRについて、ブロックB1に含まれる領域A4に属するデータの読み出し、及び、転送が完了した時点の状態、すなわち、ブロックB2の先頭のラインに対応する位置T6に位置した状態を維持する。さらに、ラインデータの所定方向への書き込みが進行し、ブロックBnを構成する全てのラインへのラインデータの書き込みが完了したとする。ブロックBn、すなわち、領域A5を包含するブロックへのラインデータの書き込みの完了をトリガーとして、制御部40は、リードポインターPRの所定方向への移動を開始する。この場合、ブロックB2~ブロックBn-1を構成するラインについては、読み出しを実行すべきデータが存在しないため、実際にデータの読み出しを行うことなく、リードポインターPRの所定方向への移動を行う。そして、制御部40は、リードポインターPRを、ブロックBnの先頭のラインに至るまで移動させた後、ブロックBn内の領域A5に属するデータについて、データの読み出し、及び、転送を実行する。このような従来の手法で、所定方向に離間した異なる領域についてエリアスキャンした場合、以下のような不具合が発生する可能性があった。すなわち、上記の場合、ブロックBnへのラインデータの書き込みの完了をトリガーとして、位置T6に位置するリードポインターPRの所定方向への移動を開始する構成であるため、このリードポインターPRを追従する破棄ポインターPHと、ライトポインターPWとの所定方向における距離図10Aにおいて符号D1を付した矢印で示す距離が、近接した状態が現出し、これに起因して、破棄ポインターPHによってライトポインターPWの動きが制限され、新たに書き込むべきラインデータが生成されているにもかかわらず、生成されたラインデータを第1画像バッファー60aに書き込めないという事態が発生する可能性があった。これを踏まえ、本実施形態では、制御部40は、リードポインターPRの位置を以下のように制御する。すなわち、制御部40は、ライトポインターPWと、リードポインターPRとの間のライン数を常に監視する。そして、ライトポインターPWと、リードポインターPRとの間のライン数が、閾値として予め定められたライン数を上回った場合、このライトポインターPWとリードポインターPRとにはされた領域に、読み出しを実行すべきデータが存在するか否かを判別する。読み出しを実行すべきデータが存在しない場合、制御部40は、これらライトポインターPWとリードポインターPRとに挟まれた領域に属するラインについては、ラインデータの読み出しを行うことなく、リードポインターPRを所定方向へ移動させるダミーリード処理を実行する。図10Bを用いて具体的に説明すると、ブロックB1に属する領域A4の読み出し、及び、転送が完了し、リードポインターPRが位置T6に位置している状態において、制御部40は、ライトポインターPWと、リードポインターPRとの間のライン数を監視する。そして、図10Bに示すように、ライトポインターPWと、リードポインターPRとの間のライン数が、閾値として定められた1000を上回った場合、制御部40は、これらライトポインターPWと、リードポインターPRとの間の範囲Q4に読み出すべきデータが存在するか否かを判別する。そして、範囲Q4に読み出すべきデータが存在しない場合、制御部40は、これら範囲Q4に属するラインについては、リードポインターPRを所定方向へ向かって移動させる一方、ラインデータの読み出しを実行しないダミーリード処理を実行する。このように範囲Q4について、ダミーリード処理が実行されることにより、ブロックBnを構成する全てのラインへのラインデータの書き込みが完了する前に、リードポインターPRが、位置T7へ移動し、このリードポインターPRの移動に追従して、破棄ポインターPHが、所定方向へ向かって移動することとなる。なお、リードポインターPRの位置T7への移動後も、ライトポインターPWとリードポインターPRとの間のライン数が閾値を上回り、かつ、これらポインターに介在する範囲に読み出しを実行すべきデータが存在しない場合は、適宜、ダミーリード処理が実行され、リードポインターPR、及び、破棄ポインターPHの所定方向への移動が実行される。このように、本実施形態では、ライトポインターPWとリードポインターPRとの間のライン数が閾値を上回り、かつ、これらポインターに介在する範囲に読み出しを実行すべきデータが存在しない場合は、適宜、ダミーリード処理が実行され、リードポインターPR、及び、破棄ポインターPHの所定方向への移動が実行される。ここで破棄ポインターPHは、ライトポインターPWの移動を制限するためのストッパーとしての機能を有するポインターであるため、ダミーリード処理に伴う破棄ポインターPHの所定方向への移動により、第1画像バッファー60aにおいて、新たなラインデータを書き込み可能な領域が、従来と比べて拡張され、これにより生成したラインデータを第1画像バッファー60aに書き込めない事態が発生するリスクを低減できる。また、所定方向に離間した異なる領域についてエリアスキャンを行う場合であっても、ライトポインターPWと、破棄ポインターPHとの距離が近接する事態が発生しにくくなり、新たに書き込むべきラインデータが生成されているにもかかわらず、生成されたラインデータを第1画像バッファー60aに書き込めないという事態が発生することを極力防止することが可能である。なお、本実施形態では、ライトポインターPWと、リードポインターPRとの間のライン数の閾値として1000が設定されているが、この閾値は、以下の観点から設定されている。すなわち、上述したように、本実施形態では、1つのブロックを構成するラインの数は、500を超えないものとされる。そして、閾値は、ライン数が最大500ラインのブロック2つ分の値1000ラインとされる。これは、ライトポインターPWとリードポインターPRとが、ライン数が最大500ラインのブロック2つ分離間した場合、第1画像バッファー60a全域の所定方向のライン数8400ラインとの関係で、相対的に十分大きな距離、ライトポインターPWとリードポインターPRとが離間したと言えるからである。以上説明したように、本実施形態では、制御部40は、リードポインターPRの位置にかかわらず、読み出しが完了していないデータを含むラインデータが書き込まれているラインの位置を所定方向側に超えないように、破棄ポインターPHの移動を制御する。これによれば、破棄ポインターPHは、リードポインターPRの位置にかかわらず、読み出しが完了していないデータを含むラインデータが書き込まれているラインの位置を所定方向側に超えないよう、その移動が制御されており、ライトポインターPWは、この破棄ポインターPHを所定方向側へ超えないようにその移動が制御されるため、読み出しが完了していないデータを含むラインデータが書き込まれているラインに対して、新たにラインデータが書き込まれることを効果的に防止できる。また、本実施形態では、制御部40は、エリアスキャンにおいて、リングバッファーたる第1画像バッファー60aにおける複数の異なる領域に属するデータが領域毎に読み出されるような態様で、データの読み出しが可能である。そして、制御部40は、1のラインデータに、複数の異なる領域のそれぞれに属するデータが包含されている場合は、各領域に属するデータのそれぞれの読み出しが完了するまでは、リードポインターPRの位置にかかわらず、破棄ポインターPHが、当該1のラインデータが書き込まれているラインの位置を所定方向側に超えないようにする。これによれば、エリアスキャン時、リングバッファーたる第1画像バッファー60aにおける複数の異なる領域に属するデータを領域毎に読み出す場合において、1のラインデータに、複数の異なる領域のそれぞれに属するデータが包含されている場合であっても、包含された全てのデータの読み出しが完了する前に、当該1のラインデータが書き込まれているラインに、新たにラインデータが書き込まれることを効果的に防止できる。また、本実施形態では、制御部40は、リングバッファーたる第1画像バッファー60aを複数のラインごとに分割して形成されたブロック毎に、1のブロックに属する各ラインへのラインデータの書き込みが完了した後、当該1のブロック内で前記所定方向へリードポインターPRを移動させつつ、当該ブロックに属するラインのラインデータを所定方向へ向かって読み出し、1のブロックに、異なる領域が属している場合、リードポインターPRの位置にかかわらず、当該1のブロックに属するラインのうち、読み出しが完了していないデータを含むラインデータが書き込まれているラインの位置を所定方向側に超えないように、破棄ポインターPHの移動を制御する。これによれば、ブロック単位でラインデータの読み出しを実行することによる読み出し処理の効率化を実現しつつ、ブロック内に、読み出しが完了していないデータを含むラインデータが存在する場合は、当該ラインデータが書き込まれたラインを所定方向側に超えないように破棄ポインターPHの移動が制御され、当該ラインに新たにラインデータが書き込まれることを効果的に防止できる。また、本実施形態では、制御部40は、リングバッファーたる第1画像バッファー60aを複数のラインごとに分割して形成されたブロック毎に、1のブロックに属する各ラインへのラインデータの書き込みが完了した後、当該1のブロックにおける読み出しを行うべきラインを示す位置にリードポインターPRを移動し、当該1のブロック内で所定方向へリードポインターPRを移動させつつ、当該ブロックに属するラインのラインデータを所定方向へ向かって読み出し、ライトポインターPWと、リードポインターPRとの間に介在するラインであって、読み出しを必要としないラインデータが書き込まれているラインについては、当該ラインに書き込まれたラインデータを読み出すことなく、リードポインターPRを所定方向へ向かって移動させるダミーリード処理を実行する。これによれば、ライトポインターPWと、リードポインターPRとの間に介在するラインであって、読み出しを必要としないラインデータが書き込まれているラインについては、当該ラインに書き込まれたラインデータを読み出すことなく、リードポインターPRを所定方向へ向かって移動させるダミーリード処理が実行されるため、ブロックに属する全てのラインへのラインデータの書き込みが完了する前に、リードポインターPRが所定方向へ向かって移動することが可能となり、これにより、第1画像バッファー60aにおいて読み出しが完了し、新たにラインデータを書き込み可能な領域を多く確保することが可能となる。また、本実施形態では、制御部40は、ライトポインターPWと、リードポインターPRとが所定方向に閾値以上離間した場合であって、これらポインターの間に介在するラインのそれぞれに書き込まれているラインデータが、読み出しを必要としないデータである場合に、これらポインターの間に介在するラインについてダミーリード処理を実行する。これによれば、ライトポインターPWと、リードポインターPRとが所定方向に閾値以上離間し、かつ、これらポインターの間に介在するラインのそれぞれに書き込まれているラインデータが、読み出しを必要としないデータである場合に、これらポインターの間に介在するラインについてダミーリード処理を実行するため、必要な場合に適切にダミーリード処理が実行されることとなる。また、本実施形態では、制御部40は、第1画像バッファー60aにおける複数の異なる領域に属するラインデータが領域毎に読み出されるような態様で、ラインデータの読み出しが可能であり、第1画像バッファー60aにおける1の領域と、他の領域との間が所定方向に離間しており、当該1の領域が属する1のブロックと、当該他の領域が属する他のブロックとの間に、読み出しを必要としないラインデータが書き込まれたラインが介在している場合に、これらラインについてダミーリード処理を実行する。これによれば、1の領域が属する1のブロックと、他の領域が属する他のブロックとの間に存在するラインについて、読み出しを必要とするデータが存在しない場合は、ダミーリード処理が実行されることとなり、これにより、他の領域が属するブロックを構成する全てのラインへのラインデータの書き込みが完了する前に、リードポインターPRが所定方向へ向かって移動することが可能となり、これにより、第1画像バッファー60aにおいて読み出しが完了した領域、換言すれば、新たにラインデータを書き込み可能な領域を多く確保することが可能となる。また、本実施形態では、制御部40は、リードポインターPRに追従する破棄ポインターPHによって、当該破棄ポインターPHをライトポインターPWが所定方向側に超えないように、ライトポインターPWの移動を制御する。これによれば、ダミーリード処理によりリードポインターPRが所定方向へ移動するのに伴って、このリードポインターPRに追従する破棄ポインターPHも所定方向へ移動することとなり、これに応じて、新たにラインデータを書き込み可能な領域を多く確保することが可能となる。以上、本発明の一実施形態について説明したが、本発明は、これに限定されるものではない。上記実施形態では、ドットインパクトプリンター10に搭載された制御基板図示略に実装された制御部40が、各ポインターを管理する構成であったが、例えば、ドットインパクトプリンター10に外部接続された装置が、これらポインターを管理する構成であってもよい。すんわち、図4に示した各機能ブロックは、ハードウェアとソフトウェアとの協働により実現されるものであって、具体的なハードウェアの実装形態やソフトウェアの仕様等は任意であり、その他の細部構成についても任意に変更可能である。また、上記実施の形態では、記録媒体Sを水平に搬送するフラットベッド型の装置に本発明を適用した場合を例に挙げて説明したが、本発明はこれに限定されず、小切手などの帳票形態の記録媒体Sを立てた状態で搬送する搬送路を備えた装置に適用することも勿論可能である。また、上記実施形態では、光学読取装置110を備えたドットインパクトプリンター10を例に挙げて説明したが、本発明はこれに限定されるものではなく、例えば、インクジェット式のプリンターや、サーマルプリンター、レーザープリンター等に、光学読取装置110に相当する光学読取部を設けた構成としても良い。さらに、独立したプリンターとして使用される機器に限らず、他の機器ATMAutomatedTellerMachineやCDCashDispenser等に組み込まれた装置に、光学読取装置110に相当する光学読取部を設けたものであってもよい。さらに、紙等の記録媒体に文字や画像を記録する装置に一体として光学読取装置110を設けた構成に限らず、本発明は、例えば、独立したスキャナー装置や複写機を含む多様な機器に適用可能である。すなわち、媒体を光学的に読み取り可能な光学読取装置に広く本願発明を適用可能である。