マクロ定義

PDF のこのセクションには、ユーザー定義のマクロが入っています。マクロは、1 つの制御コードまたは一連の制御コードを表す単一のニーモニックです。ニーモニックは、PC プリンターの制御シーケンスの定義を単純化し、PDF の中の 情報を読みやすくします。

以下の表は、マクロ定義ステートメントの構造を示しています。1 つのマクロ定義は次の 4 つの部分から構成されています。

1 2 3 4
name EQU PC プリンター制御コード コメント

例:

   FFF    EQU   0C               /* Form Feed */

最初の部分は、ユーザー定義のニーモニック、つまりマクロ名です。この名前は、正確に 3 文字の長さでなければならず、数字で始めてはなりません。17.1 のピッチを表すのに P17 など、 分かりやすい略号を定義しておくと役立ちます。

2 番目の部分である EQU は等価 (equate) を意味し、EQU とコーディング しなければなりません。

3 番目の部分は、PC プリンター固有の 16 進制御コードです。各 PC プリンターの製造者ごとに、同じプリンター機能に対して異なる制御コードを 定義することができます。例えば、IBM® 4019 レーザー・プリンターは、IBM パーソナル・プリンター・データ・ストリーム (PPDS) によって定義された制御コードを使用します。Hewlett-Packard のプリンターは、 Hewlett-Packard プリンター制御言語 (PCL) によって 定義された制御コードを使用します。これらの制御コードは通常、プリンターに付いている説明書に定義されています。

プリンター・マニュアルによっては、ESC W 1 などの ASCII シンボル・ストリングとして制御シーケンスが記述されています。このほかに、1B 57 01 などの 16 進数を使用しているものも、27 28 1 のような 10 進数値を使用しているものもあります。プリンター定義テーブルのコンパイラーは、これらのどの形式でも受け入れます。

マクロ定義セクションの制御コードは、次のいずれかにします。

制御コード・セクションをブランクのままにするか削除した場合、 文字つまり制御コードは、ヌル・ストリングとして解釈されます。同じファイル内で文字や制御コードが 2 回以上定義されると、 最後に定義したものが使用されます。

4 番目の部分は、コメント・セクションです。/* という記号はコメントの開始を示し、*/ という記号はコメントの終了を示します。コメントは、プリンター定義ファイル内の任意の場所にコーディングすることができ、 プリンター定義テーブルのコンパイラーによって無視されます。

以下は、 IBM 4019 レーザー・プリンター固有のマクロ定義ステートメントの例です。

LFF EQU 0A                       /* Line Feed                  */
VTB EQU 0B                       /* Vertical Tab                */
FFF EQU 0C                       /* Form Feed                   */
CRR EQU 0D                       /* Carriage Return             */
P05 EQU 1B 57 01                 /* 5 Pitch-Characters/inch     */
P10 EQU 12                       /* 10 Pitch-Characters/inch    */
CDW EQU 1B 57 00                 /* Cancel Double Wide contin.  */
P17 EQU 12 0F                    /* 17.1 Pitch-Character/inch   */
LL8 EQU 1B 41 09 1B 32           /* Set line length 8 lines/inch*/
P12 EQU 1B 3A                    /* 12 Pitch-characters/inch    */
RES EQU 1B 5B 4B 07 00 05 31 01 A4 00 00 90
                                 /* The above macro resets the  */
                                 /* printer using the factory   */
                                 /* defaults.  See the IBM Laser*/
                                 /* Printer Technical Reference */
                                 /* manual.                     */

マクロのコーディング方法を示す例として、以下の例を参考にしてください。ホスト印刷ジョブを横倍角で印刷させるためには、どの制御コードを使用すれば、 使用している PC プリンターが横倍角印刷になるかを知っていなければなりません。IBM 4019 レーザー・プリンターでは、横倍角印刷にする制御コードは X'1B5701' です。したがって、以下のようにコーディングされます。

BDW EQU 1B 57 01

ただし、BDW は、横倍角開始 (Begin Double Wide) を表します。

これだけでは、3270 ホスト印刷は、この制御コードをプリンターに送りません。このニーモニックは、START_JOB のような制御コード・ステートメント (ファイルの 制御コードの項に説明があります) の中に組み込む必要があります。

注: HCLZ and I Emulator for Windows に同梱されている IBM 4019 レーザー・プリンターのプリンター定義ファイルには、P05 マクロとして定義されたこの制御コードが既に入っています。サンプル IBM 4019 レーザー・プリンター・マクロ定義ステートメント (IBM4019.PDF ファイルの内容) の 9 行目を参照してください。