いしじまだい / ソフトウェア / BSD UNIXをHP 200LXのプリンタサーバに

UNIX母艦化計画 その2
BSD Prn v0.0 -- UNIXを HP 100/200LXのプリントサーバに

Copyright (C) 1996 by Dai ISHIJIMA


|☆ はじめに| |☆ 動作環境| |☆ アーカイブファイルに含まれるファイル| |☆ コンパイル・インストール方法| |☆ DOSでのコンパイル方法| |☆ 使用方法| |☆ バグ| |☆ おことわり| |☆ 参考文献| |☆ 関連ページ: PS, ESC/Pプリンタの設定|

☆ はじめに

HP 100/200LX (以下LX) には、プリンタを接続するためのパラレルポートは 用意されていませんが、シリアルポートにプリンタを接続することが可能にな っています。シリアルポートを備えたプリンタ、あるいはシリアル→パラレル 変換器経由でプリンタを接続すれば、Fn + 0 (Prt Sc) キーで画面ハードコピ ーをとったり、若干の制限はありますが、MENU→File→PrintでPIMのデータを 印刷することができます。

このプログラムは、ESC/P互換プリンタ、あるいは PostScriptプリンタがつ ながっているFreeBSDマシンを、LXのプリンタにするプログラムです。 このプ ログラムを使うことによって、 LXからは、FreeBSDマシンとプリンタがあたか も「シリアルポートを装備したESC/Pプリンタ」に見えます。 別の表現をすれ ば、「FreeBSDマシンを (高価な?) シリパラ変換器として使う :-)」というこ とになるでしょうか。 もっとも、FreeBSDはちゃんとしたマルチタスクのオペ レーティングシステムですから、このプログラムを動かしたからといって、他 の作業ができなるなるなんてことはありませんのでご安心を。

このプログラムは、シリアルポートを通してLXから印刷データを受け取り、 ESC/Pプリンタへはそのまま、PostScriptプリンタへはESC/P→PostScript変換 を行ってから、プリンタにデータを転送します。

☆ 動作環境

このプログラムは以下の3つのサブプログラムから構成されています。 この中でcapsはFreeBSDでのみ動きます。 LXでは動きません。esc2psとesc2bm はFreeBSDだけでなく、LXなどのDOS環境でも動きます。

動作テストは以下の機種で行いました。

なお、esc2ps, esc2bmのMS-DOS版は、HP 200LXおよび EPSON PC-386GS2でテ ストを行いました。実行形式はアーカイブに含まれていませんので、MS-DOSで これらのプログラムを利用する場合は 「☆ DOSでのコンパイル方法」を参考に してコンパイルしてください。 コンパイラは、Turbo C++ 1.0 2nd Editionと LSI C-86 Ver 3.30c 試食版に対応しています。

☆ アーカイブファイルに含まれるファイル

アーカイブファイル bsdprn00.lzhには、 が含まれています。サフィックス ".lzh" からわかるように、このアーカイブ ファイルはLHa (のUNIX版、lha(1)) で作成されています。 アーカイブ内の日 本語コードはシフトJIS、改行コードは CR + LF になっていますので、UNIXで 解凍する場合は、't' あるいは 'et' modifierをつけてください。
    操作例
        FreeBSDで利用している日本語コードが SJISの場合
        % lha xt bsdprn00.lzh

        FreeBSDで利用している日本語コードが EUCの場合
        % lha xet bsdprn00.lzh
DOSで解凍する場合は、普通に解凍してください。また、DOSで解凍したファイ ルをUNIXに転送する場合は、日本語コードや改行コードに注意してください。

アーカイブ中の最後の3つのファイル、printcap, lpf-escp, lpf-throughは 付録です。 FreeBSDでまだプリンタのセットアップが終っていない場合は、こ れらのファイルのコメント文を参考にして、プリンタを使えるようにしてくだ さい。

☆ コンパイル・インストール方法

まず、適当なディレクトリでアーカイブファイル bsdprn00.lzh を解凍しま す。つぎに、使用環境にあわせて makefileを編集し、make(1)でコンパイルし てください。ここではアーカイブファイルが /tmp にあり、/tmp/bsdprn でコ ンパイルする例を示します。
    操作例
        % cd /tmp
        % mkdir bsdprn
        % cd bsdprn
        % lha xet /tmp/bsdprn00.lzh
        % vi makefile
        % make
コンパイルできたら、make install でバイナリをインストールしてください。 また、jgroff(1) などの日本語が通る roffが使えるなら、make install.man でマニュアルもインストールしてください。
    操作例
        % su
        # make install
        # make install.man
        # exit
        % rehash

☆ DOSでのコンパイル方法

FreeBSDでのコンパイルと同様に、適当な作業ディレクトリでアーカイブを 解凍してください。ここでは、C:\TMPにアーカイブファイルがあり、C:\WORK で作業する例を示します。

まず、lhaでアーカイブを解凍してください。

    操作例
        C:\>cd \work
        C:\WORK>lha x \tmp\bsdprn00.lzh
次に、makeでコンパイルしてください。
    操作例 (Turbo-C++の場合)
        C:\WORK>make -fmakefile.tcc

    操作例 (LSI-C86試食版の場合)
        C:\WORK>make -f makefile.lsi
コンパイルが終ったら、copyコマンドなどでパスの通ったディレクトリに実行 形式をコピーしてください。

☆ 使用方法

まず、LX側の準備を行います。 プログラムマネージャからSetupを起動し、 Printer {F3} を押してプリンタ設定画面を呼び出します。ここで、Baud Rate を9600にしてください。Interfaceは COM1: (F1015Aなどで接続) か Infrared (赤外線ポート) のどちらかをFreeBSDとの接続形態にあわせて選んでください。 Printerの項目は、本プログラムがESC/Pを想定しているので EPSON FX-80とし てください。これらの設定が終れば、最後にOK{F10}を押してください。

つぎに、FreeBSDマシンの空いている (getty(8) などが占有していない) シ リアルポートにLXをつなぎます。有線の場合はF1015Aなどのクロスケーブル接 続してください。 赤外線ポートを用いるときは、FreeBSDマシンとLXを適切に 配置してください。

接続あるいは配置できたら、そのシリアルポートを引数にして、capsを起動 してください。

    操作例
        % caps /dev/ttyd0 > /tmp/hardcopy.lx
そのあと、LX側でPIMから印刷操作をしてください。ハードコピーなら Fn + 0 を押します。すると、LXは印刷状態になり、20秒くらい画面右上の時計表示が ストップします。LXの時計が動き出して5秒くらいたつと capsは終了し、LXか ら送られてきた印刷データがESC/Pファイルとして /tmp/hardcopy.lxに保存さ れます。

印刷データの取り込みが終了したら、そのデータをプリンタに送ります。ps という名前でPostScriptプリンタが接続されている場合は、

        % esc2ps < /tmp/hardcopy.lx | lpr -Pps
のようにしてください。 また、lpという名前のESC/Pプリンタに出力する場合 は、
        % lpr -Plp /tmp/hardcopy.lx
のようにしてください。プリンタの設定によっては、これ以外のオプションが 必要になるかもしれません。付録としてアーカイブに収録したprintcapとプ リンタ用フィルタを使ってESC/Pプリンタの設定をした場合は、
        % lpr -v /tmp/hardcopy.lx
とします。

もちろん、印刷データの取り込みと印刷をパイプラインを使ってひとまとめ にすることも可能です。その場合は、

        % caps | esc2ps | lpr -Pps
        % caps | lpr -v
のようにFreeBSD側で操作してから、LXで印刷を開始してください。 LXからの印刷データをビットマップファイルに変換するには、esc2bmを使い ます。PIMの画面を他のアプリケーションに貼り付けたい場合に便利です。
        % esc2bm -x /tmp/hardcopy.lx > lx-hardcopy.xbm
とすれば、X-Windowのビットマップファイルに、
        % esc2bm -p /tmp/hardcopy.lx > lx-hardcopy.pbm
とすれば、Portable Bitmap (pbmraw) 形式に変換することができます。

☆ バグ

このパッケージに含まれるプログラムには、以下の制限事項があります。 他にもあるかもしれません (^^;。

☆ おことわり

このプログラムは (狭義の) フリーソフトウェアです。パブリックドメイン ソフトウェア (PDS)、シェアウェアではありません。このプログラムの著作権 は、作者である いしじま☆だいが所有しています。

このプログラムの運用によって生じた結果については一切責任を負いかねま すのでご了承ください。

このプログラムの全部、または一部をそのまま利用して商用目的のプログラ ムを作成することはご遠慮ください。

フリーソフトウェアの作成や個人的な範囲での利用が目的の場合は、このプ ログラムの全部、または一部をそのまま利用してもかまいません。他機種への 移植や他のオペレーティングシステムへの移植およびフリーソフトウェアとし ての公開は大歓迎です。その場合、作者への連絡は不要です。 (でも、報告し てくれたり、ドキュメントに一筆書いてくれたり、さらには、そのソフトのソ ースを公開してもらえると非常にうれしいです。)

このプログラムを再配布する場合は、アーカイブファイル bsdprn00.lzh に 含まれるすべてのファイルを変更せずにそのまま配布してください。再配布す る場合は電子メイルなどでご連絡いただけるとありがたいです。

☆ 参考文献

  1. Evi Nemeth, Garth Snyder, Scott Seebas 共著, 井上 尚司 監訳: UNIXシステム管理入門 (ソフトバンク, 1992), pp.131-142.
  2. The FreeBSD FAQ Team, FAQ@FreeBSD.ORG: "FreeBSD Frequently Asked Questions for FreeBSD 2.X", (2.1Rの /usr/share/doc/FAQ/{freebsd-faq.ascii,*.html}).
    www.jp.freebsd.orgのFAQページへ
  3. The FreeBSD Documentation Project: "FreeBSD Handbook", (2.1Rの /usr/share/doc/handboo/{handbook.ascii,*.html}).
    www.jp.freebsd.orgの日本語版ハンドブックへ
  4. いしじま☆だい: UNIXをFilerサーバに v0.3, NIFTY-Serve FHPPC LIB(8) #601.