■ ■ ■ Ghostscript 2.6.1 DJ's GPP 化パッケージ ■ ■ version 1.3 ■ ■ ■ ■ Copyright (C) 1993,1994 淺山和典 ■ ■ TPM03937@pcvan.or.jp ■ ■ GHF01532@niftyserve.or.jp ■ ■ ■ ======================================================================== ● 1. パッケージ内容 ======================================================================== このパッケージには以下のファイル、ディレクトリが含まれています。これら の中には、機種・OS に依存せずに使えるファイルも含まれています (後述)。 COPYING ・GNU General Public License (GNU GPL) djgpp.sj ・このファイル djgpp.mak ・Makefile djgpp.dif ・Ghostscript 2.6.1オリジナルのコードに対する差分 gp_djgpp.c ・DJ's GPP環境依存のコード djgpp.h ・同上 gp_djgpp.h ・同上 gp_pc98.c ・NEC PC-9801/PC-H98依存のコード gp_pcat.c ・IBM PC/AT互換機依存のコード gs_djgpp.tr ・リンカ用のレスポンスファイル gp_djgpp.ps ・DJ's GPP環境の初期化PSファイル gp_site.ps ・DJ's GPP環境の環境設定ファイル gssetdjg.bat ・Makefile から呼び出すバッチファイル gdevgppr.h ・プリンタドライバをDJ's GPP対応するためのヘッダ zkfpc98.c ・NEC PC-9801/PC-H98 漢字ROMフォントドライバのソース zkfvflib.c ・VFlibを使用するフォントドライバ zkfvflib.mak ・同上 kfvflib.sj ・VFlib使用のフォントドライバのドキュメント drivers/ ・各種デバイスドライバがあるディレクトリ |---gdev10v/ ・日本語化パッケージ付属の Canon BJ10V ドライバへの | 差分 |---gdev98hf/ ・デジタルアーツ社 Hyper-Frame+ 用フルカラー・ディス | プレイドライバ |---gdevcdj/ ・オリジナルパッケージに付属の HP DeskJetシリーズ用 | のドライバを DeskJet 505J に対応させるための差分 |---gdevdjgp/ ・IBM PC / AT互換機 のディスプレイドライバ |---gdevdmpr/ ・汎用プリンタドライバ |---gdevlips/ ・日本語化パッケージ付属の LIPS プリンタドライバへの | 差分 |---gdevmag/ ・鮪フォーマットの画像データを出力するためのドライバ |---gdevp201/ ・日本語化パッケージ付属の NEC PC-PR 201 ドライバを | PC-PR 150 / PC-PR 1000 / PC-PR 1000/4 に対応させる | ための差分 +---gdevpc98/ ・NEC PC-9801 / H98 のディスプレイドライバ kanji/ ・DJ's GPP版固有の漢字初期化ファイルがあるディレクトリ ======================================================================== ● 2. はじめに ======================================================================== このパッケージは Ghostscript version 2.6.1 を DJ's GPP でコンパイルし、 NEC PC-9801/PC-H98、IBM PC/AT 互換機で利用できるようにするためのパッケー ジです。 作成されるバイナリは全機種共通です。機種は自動判別されます (ユーザが直 接機種を指定することも可能です)。 また片山紀生さんによる日本語化パッケージ 1.0 と併用することを前提とし ていますが、Makefile を書き換えれば日本語化されていないものもコンパイル 可能です。 ======================================================================== ● 3. 機種・OS依存性に関して ======================================================================== このパッケージに含まれているもののうち、以下のものを除いて機種や OS に 関係なくそのまま使用することが出来ます。 ・ gp_djgpp.c gp_pc98.c gp_pcat.c gp_djgpp.h djgpp.h これはプラットフォーム依存のコード (ここでは DJ's GPP+GO32 用) を 定義したファイルです。Ghostscript のオリジナルパッケージには各環境用 のものが用意されていますので、GO32 環境以外のかたはそちらを利用して ください。 ・ djgpp.mak djgpp.dif DJ's GPP でコンパイルするための差分と makefile です。 ・ gp_djgpp.ps gp_site.ps このパッケージを使って DJ's GPP でコンパイルした実行形式のための初 期化ファイルです。 ・ gdevdjgp/ gdevpc98/ gdev98hf/ ディスプレイドライバ各種。機種依存です。 ======================================================================== ● 4. コンパイルの方法 ======================================================================== 次の手順でコンパイルしてください。 (1) オリジナルのソースのアーカイブを展開する。以下の作業は、この作業によ って作られる./gs261 というディレクトリに移って行います。 (2) バグフィクス差分を当てます。 (3) このパッケージに含まれているファイル及び日本語化パッケージのファイル をこのディレクトリにコピーします。 (4) パッチ djgpp.dif、及び日本語化差分をあてます (順序は問わない)。 djgpp.dif は genconf.c および ps2epsi.ps に対する差分です。 日本語化を行わない場合には djgpp.dif だけを適用してください。 patch < gs261j.dif patch < djgpp.dif ※パッチがうまく当たらない場合。 Ghostscript オリジナルのファイル (バグ修正差分を含む)、日本語 化パッチ (gs261j.diff)、DJ's GPP 対応パッチ (djgpp.dif)、は全 て UN*X 形式の改行コード (Line Feed のみ) です。MS-DOS 版の patch.exe では、そのポーティングによってはうまくパッチが当たら ないことがあるかもしれません。 このような場合は、総てのファイルの改行コードを MS-DOS 形式 (Carriage Return + Line Feed) に変更してから patch.exe を使う か、あるいは UN*X 上でパッチを当てるところまでの作業を行ってそ れから MS-DOS 上にファイルを持ってきて以下の作業を行なってくだ さい。 (5) 日本語化パッケージ、またはこのパッケージに付属しているデバイスドライ バを組み込む場合には、それをカレントディレクトリにコピーする (これら のデバイスドライバはディレクトリ drivers にあります)。 日本語化パッケージに付属のプリンタドライバのなかにはさらに差分を当て る必要があるものがあります。またオリジナルのパッケージに付属のプリン タドライバを組み込むためには前処理が必要です。 詳しくはこのドキュメントの「プリンタドライバの組込み」をご覧ください。 なおこのパッケージに付属のプリンタドライバ・ディスプレイドライバは前 処理なしでそのまま組み込めます。 (6) djgpp.mak を編集する。 DJ's gpp 環境の Makefile は djgpp.mak というファイルです。この中の以 下のマクロを書き換えます。 (A) DJGPP_PLATFORMS= ... プリンタ出力ルーチンなどの機種依存コードをどの機種用のものを組み 込むかを指定します。主にプリンタ出力関係のコードです。ディスプレ イ出力に関してはこれとは別に DEVICE_DEVS で指定します。NEC PC-9801、IBM PC/AT 互換機用のプリンタ出力ルーチンが用意されてい ます。 pc98_、pcat_ から選びます。両方を指定することも可能です。このパ ッケージに含まれている djgpp.mak では両方を組み込むようにしてあ ります。 この指定を空にしておくと機種依存コードを組み込まず全てのプリンタ コードは標準プリンタ出力 ("PRN") 経由で出力されるようになります。 (B) FEATURE_DEVS= ... 漢字フォントドライバを追加したい場合にはここに書き加えます。 このパッケージに含まれる djgpp.mak では、書体倶楽部フォント、JG フォント、NEC PC-9801 ROM フォント、を利用する漢字フォントドライ バを組み込むようになっています。 VFlib ver 2.13 以降と併用することにより漢字 TrueType フォントを 利用できるようになります。詳しくは kfvflib.sj をご覧ください。 また、日本語化を行わない場合には、kanji.dev 以降行末までを削除し てください。 (C) DEVICE_DEVS= ... DEVICE_DEVS1= : : DEVICE_DEVS9= プレビューア、プリンタドライバなどの出力ドライバをここに空白文字 で区切ってならべます。 DEVICE_DEVS、DEVICE_DEVS1〜DEVICE_DEVS9 の 10 個のマクロに分けて あるのは MS-DOS のコマンドライン長の制限のためです。たくさんのデ バイスドライバを組み込む場合には、一つのマクロの定義が長くなりす ぎないように 10 個に適当に振り分けてください。 このパッケージに含まれている djgpp.mak では何も組み込まないよう になっています。 通常はディスプレイドライバは組み込む必要があります。 機種 デバイス名 ソースコードがあるディレクトリ PC-9801/PC-H98 pc98.dev drivers/gdevpc98/ IBM PC/AT djgpp.dev drivers/gdevdjgp/ 日本語化パッケージ、及びこのパッケージに付属のデバイスドライバを 組み込む場合には、それぞれのソースプログラムを他の Ghostscript のソースプログラムのあるディレクトリにコピーし、さらにそれぞれの ドライバに付属の Makefile の内容を djgpp.mak に追加、または !include " ファイル名 " として取り込んでください。 DJ's GPP の 1.12 以降を使う場合には、djgpp.mak 内のマクロ AOUT2EXE の定義を 'coff2exe' に書き換えてください。デフォルトでは 'aout2exe' になっています。 (7) djgpp.mak を Makefile として make を実行する。 make -f djgpp.mak djgpp.mak は Borland make 用です。その他の make を使う場合には、こ のパッケージに付属の tarcat.pl を使って 「!include " ファイル名 "」 の部分をその中味で置き換えて、それを Makefile として使ってください。 perl スクリプトです。以下のようにして使います。このスクリプトでは !include は入れ子になっていても処理できます。 jperl tarcat.pl djgpp.mak > merged.mak make 用のバッチファイル (gsaddmod.bat など) はオリジナルのパッケー ジに含まれる Turbo C++/Borland C++ 用のものをそのまま用います。この パッケージではさらにオリジナルのパッケージのものに加えて gssetdjg.bat というバッチファイルが追加されています。カレントディレ クトリ (gs261) にこれらのバッチファイルがあることを確認してください。 このパッケージに含まれていないデバイスドライバを PC-9801 や PC/AT 互換機に対応させるための方法は本ドキュメントの最後に記してあります。 ======================================================================== ● 5. 使用法 ======================================================================== ここでは、DJ's GPP 版特有のことについてのみ述べます。Ghostscript 一般 の設定作業、使用法についてはオリジナルのドキュメントをご覧ください。 ----------- ★ 5.1 設定 ----------- (1) このパッケージの kanji ディレクトリにある PostScript ファイルを日本 語化パッケージの kanji ディレクトリ下のファイルと同じディレクトリに コピーする。 (2) このパッケージに含まれる gp_djgpp.ps と gp_site.ps を Ghostscript の ライブラリを置くディレクトリ (gs_init.ps などを置くディレクトリ) に コピーする。 (3) 必要であれば gp_site.ps の機種指定部分などを編集する。 本バージョンでは機種 (98/PC/ その他) は自動判別します。したがって、 運がよければ特に設定を行なう必要はなく、そのまま使えます。 が、場合によっては判定を誤るかもしれません。その場合には、 gp_site.ps を以下のように編集して「明示的に」機種を指定してください。 具体的には、付属の gp_site.ps には可能な設定がコメント ('%' 以降改 行まで) 化されていますので、それらのうちひとつを Uncomment してくだ さい。 % /Name (PC-AT) % ... % /Name (PC-9801) % ... % /Name (OTHER) % ... の行頭の '%' のうちひとつを取り除きます。 なお、自動判別を行なった場合には、自動的にその機種に /Name が設定 されます。 以下はオプショナルな設定なので通常は必要ありません。デフォルトの設 定でうまくいかない場合やデフォルトの設定で不満なときにこれらの設定を 行なってください。 (4) プリンタ出力の方法の指定 (/PrintTarget) (5) プリンタ出力バッファのサイズの指定 (/PrintBufferSize) (6) プリンタ出力の速さの指定 (/PrintWait) (7) デフォルトのデバイスドライバの指定 (/DefaultDevice) /Name の設定を行うと、 ・ プリンタ出力の方法 (/PrintTarget など) ・ デフォルトのデバイスドライバ (/DefaultDevice) が、各機種にあったものに自動的に設定されます。 ここで、各設定の意味は以下のようになっています。 ・ /PrintTarget プリンタ出力を、プリンタポート、プリンタ BIOS、標準プリンタ出力、 のうちのどれを用いて行うかを設定します。 (PORT),(PORT1),(PORT2),(PORT3),(BIOS),(STDPRN) のどれかの値をとり ます。(PORT) と (PORT1) は等価です。 デフォルトは PC-9801、IBM PC/AT 互換機では (BIOS)、それ以外では (STDPRN) です。 ・ /PrintBufferSize プリンタ出力用のバッファのバイト数です。プリンタに送られるデータは 一旦このバッファに貯えられ、バッファがいっぱいになったときにまとめて プリンタに送信されます。64 以上 32767 以下の整数です。デフォルトでは 1024(bytes) です。 ・ /PrintWait プリンタ出力時の「待ち」です。この設定値が大きいほどゆっくりと出力 されます。「待ち」は /PrintBufferSize ぶんのデータを出力するごとに入 り、待ち時間は設定値の二乗にほぼ比例します。 LAN 環境やプリンタスプーラでプリンタ BIOS をフックしている場合にプ リンタコードをとりこぼしてしまうようなときにはこの値を大きく設定する か、この値をある程度の大きさに設定しておいて /PrintBufferSize の値を 小さくします。 /PrintBufferSize の値が小さいほど頻繁に「待ち」が発生することにな り、/PrintWait の値が大きいほど一回あたりの「待ち」が長くなることに なります。 設定できる値は 0 以上 2048 以下の整数です。デフォルトでは 0(待ちな し) です。 ・ /DefaultDevice Ghostscript を -sDEVICE= オプションを指定せずに、かつ環境 変数 GS_DEVICE を設定せずに立ち上げた場合に使用するデバイスドライバ です。通常は機種にあったディスプレイドライバを指定しておきます。 コマンドラインで gs -h と Ghostscript を立ち上げたときに、 Available devices: という部分に出力されるもの中から選びます。 /Name 毎の各デフォルト値は、 +---------+-----------------------------------------+ |/Name |/PrintTarget /DefaultDevice | +---------+-----------------------------------------+ |(PC-AT) |ポート1番 (djgpp) -sDEVICE=djgpp | |(PC-9801)|ポート (pc98) -sDEVICE=pc98 | |(OTHER) |標準プリンタ出力 nulldevice -dNODISPLAY | +---------+-----------------------------------------+ で、/Name がいずれの場合も /PrintWait は 0、/PrintBufferSize は 1024 で す。 これらはユーザが gp_site.ps 中で /PrintTarget、/DefaultDevice などを明 示的に指定することによって変更することが出来ます。 指定の方法は、 /DefaultDevice (pc98) のように、 /指定項目 値 とします。gp_site.ps に設定例をコメントとして記述してありますので参考に してください。 ※ '%' 以降、行末まではコメントです。 /Name に (OTHER) を指定したときには、機種依存の動作を全く行いません。 NEC PC-9801 や IBM PC/AT 互換機以外の機種で利用する場合にはこれを指定し てください。プリンタ出力は標準プリンタ出力を使い、デフォルトのデバイスは nulldevice (グラフィック画面への出力を一切行わないデバイス。コマンドライ ンで -dNODISPLAY を指定した場合と等価) になります。 ======================================================================== ● 6. プリンタドライバの組込み ======================================================================== ----------------------------------------- ★ 6.1 本パッケージ付属のプリンタドライバ ----------------------------------------- 各プリンタドライバのドキュメントにしたがって組み込んでください。 ----------------------------------------------- ★ 6.2 日本語化パッケージ付属のプリンタドライバ ----------------------------------------------- drivers ディレクトリの下の各サブディレクトリに拡張子.dif のファイルが ある場合には、それは gs 2.6.1 日本語化パッケージに付属のプリンタドライバ に対する差分です。この差分をあてることにより日本語化パッケージに付属のプ リンタドライバが使えるようになります。 日本語化差分に付属のプリンタドライバははじめから NEC PC-9801 に対応し ている場合もありますが、NEC PC-H98 や IBM PC/AT 互換機に対応させるために はこのパッケージに付属の差分をあててください。PC-9801 で使用する場合にも、 BIOS 出力などの機能を使うには差分をあてる必要があります。 また、日本語化パッケージに付属のプリンタドライバの中でこのパッケージに 特に対応差分が含まれていないものは次の説明にしたがって作業することによっ て PC-9801 や PC/AT で利用できるようになります。 ------------------------------- ★ 6.3 その他のプリンタドライバ ------------------------------- 今バージョンではプリンタ出力のためのルーチンを全て gp_djgpp.c で用意し ています。このためデバイスドライバのソース内で読み込むヘッダファイルを一 つ追加するだけでこれまで PC-9801 などに対応していなかったプリンタドライ バも利用することが出来るようになります。 この方法で対応できるプリンタドライバは、コードの出力を putc(),fputc(),fputs(),fwrite(),fprintf(),vfprintf(),fflush() のストリー ム出力関数を使って行なっているものです。write() などの低水準出力関数を使 うものは対応できません。 また、プリンタのオープンに gp_printer_open()、クローズに gp_printer_close() を使っていなければなりません。gdevprn.c で定義されて いる関数を利用しているドライバ (gdevprn.h を取り込んでいるドライバ) であ れば間違いなくこの条件を満たしています。 以下の手順で (再) コンパイルしてください。 (1) このパッケージに付属の gdevgppr.h をドライバのソースファイルでインク ルードする。 #include "gdevgppr.h" (2) (再) コンパイルする。 ======================================================================== ● 7. 前バージョンからの変更点 ======================================================================== DJ's GPP 対応パッケージの前バージョン (1.2) から以下の点が変更されてい ます。 ・ 不具合の修正 ‐ ユーティリティ ps2epsi が正常に動作しなかった不具合を修正。 ‐ VFlib 漢字ドライバで、カレントディレクトリに vfontcap があると正 常に動作しなかった不具合を修正。 ‐ dmprt ドライバで一部のプリンタで正常に動作しなかった不具合を修正。 ・ 出力方法に関する機能拡張・変更 ‐ IBM PC/AT 互換機のプリンタ BIOS 経由の出力に対応。 ‐ プリンタ出力のデフォルトを BIOS に変更。 ‐ プリンタ出力の速度を調節できるように変更。 ‐ プリンタ出力バッファのサイズを調節できるように変更。 ・ デバイスドライバの機能拡張 ‐ dmprt ドライバを dviprt 2.42 以降のプリンタ定義ファイルに対応。 ・ デバイスドライバの追加 ‐ HP DeskJet 505J ‐ Hyper-Frame+ ‐ 鮪 フォーマットデータ ・ その他 ‐ 機種を自動判別するようにした。 ‐ PC-9801, IBM PC/AT 互換機 に対応していないプリンタドライバの組み 込みかたを変更 (djdriver.pl と gp_print.h を削除。gdevgppr.h を 追加。) ‐ 初期化ファイル gp_djgpp.ps から、ユーザが編集する部分を別ファイ ル gp_site.ps に分離。書式も若干変更。 ======================================================================== ● 8. 謝辞 ======================================================================== GO32 版のパッケージを作成するにあたり、大変多くの方にお世話になりました。 ・ 東京大学の片山紀生さんには、たくさんのご助言やβテスト版からの日本語 化パッケージの提供をしていただきました。 ・ PC-VAN SSCIENCE のとがしさんには、IBM PC/AT 互換機での動作確認、テス トバイナリの作成など大変お世話になりました。 ・ PC-VAN SSCIENCE の OkI さんには、NEC H98 対応、動作確認等大変お世話 になりました。 ・ PC-VAN SSCIENCE の SOLITON さんは、IBM PC/AT 互換機用のディスプレイ ドライバを公開してくださいました。また、ドライバの修正にあたって多く のご助言をいただきました。 ・ Nifty Serve FLABO の KEN さんには IBM PC/AT 互換機用のディスプレイド ライバの不具合修正にあたって、貴重なご助言をいただきました。 ・ hero.h さんには、IBM PC/AT 互換機用のプリンタ出力コードを作成してい ただきました。 ・ VFlib のアウトライン取得関数の実装のおかげで漢字 TrueType フォントを サポートすることができました。VFlib の作者である広島大学の角川裕次さ ん、VFlib の漢字 TrueType 対応を行ってくださった PC-VAN SSCIENCE の 松田一郎さんを始めとする VFlib 開発にかかわっていらっしゃる方々に感 謝します。 ・ 最後になりますが、Louis IX さんを始めとする PC-VAN SSCIENCE のみなさ んには幾度にも渡る動作テスト・報告、を行っていただきました。ありがと うございました。 ======================================================================== ● 9. 再配布・保証 ======================================================================== DJ's GPP 対応部分に関しては GNU General Public License (GPL) に従いま す。GNU GPL については COPYING というファイルに記されています。 各種デバイスドライバ、フォントドライバについてはそれぞれのドキュメント、 ソースファイルに記してある条件に従います。 =========================== End of Document ============================