特定の線画文字を正しく表示するためにランタイム システムの画面出力ルーチンで必要となる文字値を定義する値のテーブルを返します。
call "CBL_GET_SCR_LINE_DRAW" using function-code
line-draw-table
returning status-code
0:1 バイト線画テーブルを要求します
1:2 バイト線画テーブルを要求します
2:単一の 1 バイト線画コードを要求します
3:単一の 2 バイト線画コードを要求します
01 cblt-get-scr-line-draw-buffer typedef.
03 cblte-gsld-draw-code cblt-x1-compx. *> pic x comp-x.
03 cblte-gsld-dbcs-draw-char cblt-x2-compx. *> various pic x(2) Occurs n times
03 cblte-gsld-draw-char
redefines cblte-gsld-dbcs-draw-char cblt-x1-compx. *> Occurs n times
| ビット 3 から 7 | 予約済み (ゼロに設定) |
| ビット 2 | 拡張タイプの線はサポート対象外 - マッピング済み |
| ビット 1 | 二重厚の線はサポート対象外 - マッピング済み |
| ビット 0 | 単厚の線はサポート対象外 - マッピング済み |
| ビット 6 および 7 | 北方向の線 |
| ビット 4 および 5 | 南方向の線 |
| ビット 2 および 3 | 西方向の線 |
| ビット 0 および 1 | 東方向の線 |
| ビット 6 および 7 | 北方向の線 |
| ビット 4 および 5 | 南方向の線 |
| ビット 2 および 3 | 西方向の線 |
| ビット 0 および 1 | 東方向の線 |
説明:
単一の線画文字 (function-code = 2 または 3) を要求する場合は、cblte-gsld-draw-code パラメーターを使用して、必要な文字をランタイム システムに通知します。特定の描画形状に対する cblte-gsld-draw-code パラメーターは、1 バイトを 4 つのビット ペアに分割することによって計算できます。各ビット ペアは、4 つの方向のいずれかに表示する線のタイプを定義します。
各ビット ペアには、次の値のいずれかを指定できます。
拡張タイプは、点線など、追加の線画タイプがあるシステムでのみ使用できます。システムに追加のタイプが複数ある場合は、一度に 1 タイプしか使用できません。
たとえば、側線が単厚で底線が二重厚のボックスの左下を定義する画面ハンドラーの線用文字コードを確認する場合は、次のような計算を行います。
ビット ペア:
この場合はバイナリ値 01000010、つまり 10 進値 66 になります。したがって、この形状に対する正しい文字を取得するためには、CBL_GET_SCR_LINE_DRAW を呼び出す前に、66 を cblte-gsld-draw-code に代入します。
function-code に 0 または 1 を指定して完全な線画テーブルを取得する場合は、上記のビット ペアのアルゴリズムを使用してテーブル内で目的の文字を見つけ、目的の形状に対する数値を得ることができます。ただし、デフォルトでは、COBOL の添え字は 0 ではなく 1 から始まります。この例を次に示します。
上記の構文を使用して完全な線画テーブルを取得する場合、正しい文字を見つけるためには、ビット ペアのアルゴリズムの結果に 1 を加える必要があります (そのため、1 バイトよりも大きな添え字が必要になります)。
ただし、次の構文を使用して、テーブルを取得することもできます。
function-code = 0 の場合:
function-code = 1 の場合:
ビット ペアのアルゴリズムの結果に直接マッピングされる 0 から 255 の添え字を使用できるように NOBOUND コンパイラ指令が設定されていることを確認する必要があります。