CBL_GET_SCR_LINE_DRAW

与えられた線画文字を正しく表示するために、実行時システム画面出力ルーチンにより要求された文字値を定義する値の表を戻す。

構文:
call "CBL_GET_SCR_LINE_DRAW" using     function-code
                                       line-draw-table
                             returning status-code
パラメタ:
呼び出しプロトタイプ使用時 ( 説明の読み方) PIC (32bitシステム)
function-code cblt-x1-compx pic x comp-x.
Contains one of the following:
0 Request for single-byte line drawing table
1 Request for double-byte line drawing table
2 Request for a single single-byte line drawing code
3 Request for a single double-byte line drawing code
line-draw-table Group predefined as containing: Group containing:
  With function-code = 0:
  cblte-gsld-draw-code   cblt-x1-compx   pic x comp-x.
  cblte-gsld-draw-char   cblte-gsld-draw-char occurs 256 times   pic x occurs 256 times.
  With function-code = 1:
  cblte-gsld-draw-code   cblt-x1-compx   pic x comp-x.
  cblte-gsld-dbcs-draw-char   cblte-gsld-dbcs-draw-char occurs 256 times   pic x(2) occurs 256 times.
  With function-code = 2:
  cblte-gsld-draw-code   cblt-x1-compx   pic x comp-x.
  cblte-gsld-draw-char   cblte-gsld-draw-char   pic x.
  With function-code = 3:
  cblte-gsld-draw-code   cblt-x1-compx   pic x comp-x.
  cblte-gsld-dbcs-draw-char   cblte-gsld-dbcs-draw-char   pic x(2).
status-code 説明の読み方 参照
入力パラメタ:
function-codeが2または3の場合:
cblte-gsld-draw-code

要求される文字の相対番地(形状記述)

出力パラメタ:
cblte-gsld-draw-code

以下のような表内で発生した任意の写像を確定するために実行時システムにより充てんされるバイト。

ビット7 - 3

予約済み(0に設定)

ビット2

拡張型の線はサポートされていない-写像されている

ビット1

二重厚の線はサポートされていない-写像されている

ビット0

単厚の線はサポートされていない-写像されている

ビット0~2については、線種は単厚、二重厚、拡張あるいはASCII文字のうち最初に使用可能となったものに写像される。

function-codeが0の場合:
cblte-gsld-draw-char 1バイト線画表。表内のバイトは次のように配列されている。

ビット6および7

北方向の線

ビット4および5

南方向の線

ビット2および3

西方向の線

ビット0および1

東方向の線

  • ビットペアが合体してインデックスとして表中で使用される。
  • Non-valid combinations will map to a space.
  • 組合せを有効にするには任意の2つのビットペアがそれぞれ最低1つのビットセットを有する必要がある。
  • 最低2つのビットペアを指定する。
function-codeが1の場合:
cblte-gsld-dbcs-draw-char 2バイト線画表。表中のバイトは以下のとおり:
ビット6および7 北方向の線
ビット4および5 南方向の線
ビット2および3 西方向の線
ビット0および1

東方向の線

function-codeが2の場合:
cblte-gsld-draw-char 要求された1つの1バイト線画コード
function-codeが3の場合:
cblte-gsld-dbcs-draw-char 要求された1つの2バイト線画コード
説明:

個々の線画文字(function-code = 2 or 3)を要求している場合、どの文字を必要としているのかを実行時システムに知らせるのに、cblte-gsld-draw-code パラメタが使用される。与えられた線画形状用のcblte-gsld-draw-code パラメタは、次のように計算できる。バイトを4ビットペアに分割することによって値は得られる。各ビットペアは、4方向の内のいずれかの方向に引く線の種類を定義する。

ビット 方向
7および6
5および4
3および2 西
1および0

各ビットペアは次の値のいずれかを取る。

00

与えられた方向には線がない。

01

単厚の線がある。

10

二重厚の線がある。

11

拡張型の線がある。

点線のような付加的な種類の線引きがあるシステムにおいてのみ、拡張線種は使用できる。システムに2線種以上ある場合、一度には1種類しか使用できない。

たとえば、側線が単厚で底線が二重厚の箱の左下を定義する画面ハンドラの線用文字コードを知りたい場合、次のような計算をする。

ビットペア:

北: 01 (単)
南: 00 (空白)
西: 00 (空白)
東: 10 (二重)

これは2進値01000010または10進値66を意味する。従って、この形状のための正しい文字を得るには、CBL_GET_SCR_LINE_DRAWを呼び出す前に66をcblte-gsld-draw-codeに転記することになる。

完全な線引き表を得るためにfunction-codeで0または1を使用すると、与えられた文字は上記のビットペアアルゴリズムを使用して表から見つけられる。このビットペアアルゴリズムは与えられた形状用の数値を生成する。しかし、省略時は、COBOL添字はゼロではなく1で始まります。従って、

     
  03 cblte-gsld-draw-char    pic x occurs 256 times.

完全な線画表を得るために上記のような構成体を使用すると、正しい文字を見つけるために、ビットペアアルゴリズムの結果に1を加える必要がある(そして、これにより、1バイトより大きな添字が必要になる)。

しかし、完全な線画表を得るために次のような構成体を使用できる。

function-codeが0の場合:

  03 filler  pic x.
  03 cblte-gsld-draw-char    pic x occurs 255 times.

function-codeが1の場合:

  03 filler  pic x(2).
  03 cblte-gsld-dbcs-draw-char  pic x(2) occurs 255 times.

NOBOUNDコンパイラ指令が設定されて、ビットペアアルゴリズムの結果に直接写像する添字0~255を使用できるようにしておく必要がある。

他参照:

関連項目