この章の目次にもどる
前頁:第11章 ブザー(beep)にもどる
次頁:第13章 プリンタイメージドライバにすすむ

第12章 プリンタ(パラレルポート/USB)

12.1 対象デバイス

12.2 固有機能

ドライバ起動パラメータ

システム起動時に以下のコマンドで起動される。

kerext  prdrv  [!優先度]    (優先度省略時は 120)

12.3 属性データ

以下の属性データをサポートする。

R 読み込みのみ可
W 書き込みのみ可
RW読み込み / 書き込み可
/* プリンタ・データ番号 */
typedef enum {
    DN_PRINIT   = -101,
    DN_PRSTAT   = -102,
    DN_PROUTTMO = -103
} PrntDataNo;
DN_PPINIT :
初期化 (W)
data:   W   init;
0 以外の書き込みにより、プリンタへの初期化信号を使用 して、ハード的に初期化する。
DN_PRSTAT :
プリンタ状態 (R)
data:   W   stat;
プリンタポートの現在の状態の取り出し。
正常:ER_OK
異常:エラーコード(EC_IO +)
ED_PR_POWER 非接続、電源オフ
ED_PR_OFFLINE オフライン
ED_PR_PAPER 用紙切れ
ED_PR_BUSY ビジー状態 ( 過度状態 )
DN_PROUTTMO :
出力タイムアウト (RW)
data:   UW  tmout;
プリンタポートの出力タイムアウト(msec)の取り出し/設定。
プリンタが正常状態 ( ビジー状態 ) で、タイムアウトの時間 1 バイトも出力できなかった時にビジーエラーとなる。
オフライン、用紙切れなどの出力できない状態になった場合は、 タイムアウトの設定に無関係に出力できない状態になった時点でエラーリターンする。

12.4 固有データ

データ番号:0 に固定 W
データ数: 書き込みのバイト数
書き込まれたバイト列をそのままプリンタに出力する。
オフライン、用紙切れなどの出力できない状態になった場合は、 以下のいずれかのエラーコードでエラーターンするが、 そこまでに実際に書き込んだバイト数を正しく戻すので、プリンタ状態が正常になった時点で、 残りのデータを再度書き込むことができる。
EC_IO + ED_PR_POWER 非接続、電源オフ
EC_IO + ED_PR_OFFLINEオフライン
EC_IO + ED_PR_PAPER 用紙切れ
EC_IO + ED_PR_BUSY ビジー状態(タイムアウト)

12.5 基本操作

OPEN特に何もしない。
CLOSE, CLOSEALL特に何もしない。
ABORT処理を無条件に中断して、プリンタを初期化する。
READ / WRITE(上記参照)
SUSPEND処理を中断して終了する。再開はできない。
RESUME特に何もしない。

12.6 事象通知

なし

12.7 エラーコード

デバイスドライバ共通仕様を参照のこと。

EC_IO の詳細エラーコード

#define ED_PR_ABORT     0x00        /* アボート要求         */
#define ED_PR_POWER     0x01        /* 非接続、電源 OFF     */
#define ED_PR_OFFLINE   0x02        /* オフライン           */
#define ED_PR_PAPER     0x03        /* 用紙切れ         */
#define ED_PR_BUSY      0x04        /* ビジー状態(タイムアウト) */

12.8 インプリメント依存事項 ( PC/AT 版 )

12.8.1 ハードウェア情報

パラレルポートの I/O アドレス、および割り込み番号のハードウェア情報は、 ドライバ起動時に、ハードウェアリソースマネージャを使用して取り出す。

12.8.2 標準パラレルプロトコル

基本的に以下の動作タイミングにしたがっている( T は 1 usec で処理)。

タイミングチャート
図 17 : タイミングチャート

この章の目次にもどる
前頁:第11章 ブザー(beep)にもどる
次頁:第13章 プリンタイメージドライバにすすむ