プログラム記述ファイル中の用紙制御情報の変更

PRTCTL (プリンター制御) キーワードによって、用紙制御情報を変更し、プログ ラム内でプログラム記述 PRINTER ファイル用の現在行の値をアクセスすること ができます。 PRINTER ファイル用のファイル仕様書でキーワード PRTCTL(データ構造名) を指定します。

ユーザーのソースで、OPM 定義のデータ構造と ILE データ構造の 2 つのタイプの PRTCTL データ構造を指定することができます。デフォルトとして 表 1 に示される、ILE データ構造レイアウトを使います。OPM 定義のデータ構造レイアウトを使用するためには、PRTCTL(データ構造 名 :*COMPAT) を指定します。 OPM PRTCTL データ構造レイアウトは 表 2 に 示されています。

ILE PRTCTL データ構造は、定義仕様書で定義しなければなりません。 最小 15 バイトが必要であり、少なくとも次の順序で指定された次の 5 つのサ ブフィールドが入っていなければなりません。

表 1. ILE PRTCTL データ構造のレイアウト
サブフィールドの内容
1 ~ 3 印刷前スペースの値が入っている 3 桁の文字フィールド。 (有効な値はブランクまたは 0 ~ 255)
4 ~ 6 印刷後スペースの値が入っている 3 桁の文字フィールド。 (有効な値はブランクまたは 0 ~ 255)
7 ~ 9 印刷前スキップの値が入っている 3 桁の文字フィールド。 (有効な値はブランクまたは 0 ~ 255)
10 ~ 12 印刷後スキップの値が入っている 3 桁の文字フィールド。 (有効な値はブランクまたは 0 ~ 255)
13 ~ 15 現在の行カウント値が入っている小数部分のない 3 桁の数値フィールド

OPM PRTCTL データ構造は、定義仕様書で定義し、少なくとも次の 5 つのサブフ ィールドを以下の順序で入れなければなりません。

表 2. OPM PRTCTL データ構造のレイアウト
サブフィールドの内容
1 印刷前スペースの値が入っている 1 桁の文字フィールド。 (有効な値はブランクまたは 0 ~ 3)
2 印刷後スペースの値が入っている 1 桁の文字フィールド。 (有効な値はブランクまたは 0 ~ 3)
3 ~ 4 印刷前スキップの値が入っている 2 桁の文字フィールド。 (有効な値はブランク、1 ~ 99、100 ~ 109 を表す A0 ~ A9、または 110 ~ 112 を表す B0 ~ B2)
5 ~ 6 印刷後スキップの値が入っている 2 桁の文字フィールド。 (有効な値はブランク、1 ~ 99、100 ~ 109 を表す A0 ~ A9、または 110 ~ 112 を表す B0 ~ B2)
7 ~ 9 現在の行カウント値が入っている小数部分のない 3 桁の数値フィールド。

ILE PRTCTL データ構造の最初の 4 つのサブフィールドに入っている値は出 力仕様書の 40 ~ 51 桁目 (スペースとスキップの指定) に許される値と同じです。 出力仕様書のスペース項目およびスキップ項目 (40 ~ 51 桁目) がブランクで サブフィールド 1 ~ 4 もブランクの場合は、デフォルトで印刷後 1 行送りにな ります。 PRTCTL キーワードが指定された場合には、40 から 51 桁目にブランクがある出 力レコードについてだけ使用されます。 PRINTER ファイルのスペースおよびスキップ値 (サブフィールド 1 ~ 4) は、 プログラムの実行時に PRTCTL データ構造のこれらのサブフィールドの値を変 更することにより制御することができます。

サブフィールド 5 には現在行カウント値が入っています。 コンパイラーは最初の出力行が印刷された後までサブ フィールド 5 を初期設定しません。 その後で、コンパイラーはファイルへの各出力操作の後でサブ フィールド 5 を変更します。