# 日本語 OpenVMS
日本語画面管理ライブラリ
利用者の手引き

前へ | 次へ | 目次 | 索引

仮想ディスプレイの右側境界を越えたテキストは，flags 引数に制御されます。 flags 引数で自動改行を指定した場合は，line-advance 引数で指定した行数だけスクロールされ，あふれた文字を次の行に挿入するための空間が作成されます。flags 引数で自動改行を指定していない場合は，あふれた文字は切り捨てられます。

SMG$PUT_LINE_HIGHWIDEルーチンを呼び出した後で，仮想カーソルの位置は出力の対象となる，次の行の 1 カラム目に設定されます。出力の対象となる次の行は，line-advance 引数によって決定されます。 line-advance 引数のシステム設定値は2になっていますので，引き続きSMG$PUT_LINE_HIGHWIDEルーチンを呼び出しても，上書きされることはありません。

DEC漢字または Super DEC 漢字文字集合を使用する際に，全角文字の右半分から書き込み操作が始まる場合は，その文字の左半分は未定義文字になります。また，行の一部が切り捨てられる際に，全角文字の右半分から切り捨てられる場合は，その文字の左半分は未定義文字になります。

## 戻される状態値

> SS$_NORMAL | 正常終了。
> LIB$_INVSTRDES | 文字列ディスクリプタが誤っています。
> SMG$_INVARG | 引数が誤っています。
> SMG$_WILUSERMS | ペーストボードがビデオ・ターミナルではありません。
> SMG$_WRONUMARG | 引数の数が誤っています。

# SMG$PUT_LINE_MULTI

> The Write Line with Multiple Renditions to Display ルーチンは，複数の属性を含む行を仮想ディスプレイに書き込みます。カーソル移動がともなう場合もあります。

## 形式

> SMG$PUT_LINE_MULTI display-id ,text ,rendition-string [,rendition-complement] [,line-advance] [,flags] [,direction] [,character-set]

## 戻り値

> ###

> OpenVMS 用法 | cond_value
> データ型 | longword (unsigned)
> アクセス | write only
> 受け渡し方 | by value

## 引数

> ### display-id

> OpenVMS 用法 | identifier
> データ型 | longword (unsigned)
> アクセス | read only
> 受け渡し方 | by reference

> 行が書き込まれる仮想ディスプレイの識別子。 display-id 引数は，仮想ディスプレイの識別子を格納した符号なしロングワードのアドレスです。

> ### text

> OpenVMS 用法 | char_string
> データ型 | character string
> アクセス | read only
> 受け渡し方 | by descriptor

> 仮想ディスプレイに書き込まれる文字。 text 引数は，文字列を示すディスクリプタのアドレスです。

> ### rendition-string

> OpenVMS 用法 | char_string
> データ型 | character string
> アクセス | read only
> 受け渡し方 | by descriptor

> ビデオ属性を制御するビット・マスク文字列(省略可能)。 rendition-string 引数は，ビット・マスク文字列を示すディスクリプタのアドレスです。仮想ディスプレイ上のテキスト文字列のカラムに対応する属性を指定することができます。この rendition-string 引数で指定できる属性は以下のとおりです。

> 全角文字の左半分と右半分に違う属性が指定された場合は，全角文字の左半分に指定された属性がその全角文字に適用されます。

> SMG$M_BLINK | 点滅文字を指示します。
> SMG$M_BOLD | 通常より明るい輝度の文字を指定します。
> SMG$M_REVERSE | 反転表示文字を指示します。つまり，仮想ディスプレイの現在の属性の反対の状態で文字を表示しています。
> SMG$M_UNDERLINE | 下線付き文字を指示します。
> SMG$M_INVISIBLE | 表示されない文字を指定します。つまり，文字は仮想ディスプレイ内に存在しますが，ペーストボードには表示されていません。

> ### rendition-complement

> OpenVMS 用法 | char_string
> データ型 | character string
> アクセス | read only
> 受け渡し方 | by descriptor

> ビデオ属性を制御するビット・マスク文字列(省略可能)。 rendition-complement 引数は省略可能であり，ロングワード・ビット・マスクのアドレスです。ビット・マスク内に属性が設定されている場合には，仮想ディスプレイ内の対応するカラム属性が補足されます。全角文字の左半分と右半分に違う補足属性が指定された場合は，全角文字の1バイト目に指定された補足属性がその全角文字に適用されます。

> 同じビットが rendition-set 引数と rendition-complement 引数の両方に指定されている場合には，最初に rendition-set 引数が評価され，その後， rendition-complement 引数が評価されます。これらの 2 つの引数を組み合わせて使用すれば，1 回のプロシージャ呼び出しで仮想ディスプレイの各属性を制御できます。各属性で次の変換が可能です。

> 設定 | 補足 | 動作
> --- | --- | ---
> 0 | 0 | 属性を省略時の状態に設定する。
> 1 | 0 | 属性をオンに設定する。
> 0 | 1 | 属性を省略時の逆の状態に設定する。
> 1 | 1 | 属性をオフに設定する。

> ### line-advance

> OpenVMS 用法 | longword_signed
> データ型 | longword (signed)
> アクセス | read only
> 受け渡し方 | by reference

> 行書き込み後のスクロール行数。 line-advance 引数は，進める行数を格納した符号付きロングワードのアドレスです。

> ### flags

> OpenVMS 用法 | mask_longword
> データ型 | longword (unsigned)
> アクセス | read only
> 受け渡し方 | by reference

> テキストが1行に格納できない場合に，実行する動作を指定するビット・マスク(省略可能)。flags 引数は，フラグを格納した符号なしロングワードのアドレスです。この引数に対して指定できる値は次のとおりです。

> 0 | 自動改行しないことを指定します (省略時の設定値)。
> SMG$M_WRAP_CHAR | 行の最後の文字で自動改行します。
> SMG$M_WRAP_WORD | 行の最後の空白で自動改行します。

> ### direction

> OpenVMS 用法 | longword_unsigned
> データ型 | longword (unsigned)
> アクセス | read only
> 受け渡し方 | by reference

> スクロールの方向を指定するビット・マスク(省略可能)。 direction 引数は，方向コードを格納したロングワードのアドレスです。

> 指定できる値は SMG$M_UP，SMG$M_DOWN です。省略時の設定は SMG$M_UP です。

> ### character-set

> OpenVMS 用法 | longword_unsigned
> データ型 | longword (unsigned)
> アクセス | read only
> 受け渡し方 | by reference

> 出力されるテキストの文字集合。 character-set 引数は，文字集合コードを格納した符号なしロングワードのアドレスです。この引数を省略した場合は，SMG$CREATE_VIRTUAL_DISPLAY ルーチンまたは SMG$CHANGE_VIRTUAL_DISPLAY ルーチンで設定された値が使用されます。

> 値 | 文字集合 (コードセット)
> --- | ---
> SMG$C_ASCII | ASCII文字集合
> SMG$C_SPEC_GRAPHICS | DEC特殊文字集合
> SMG$C_SUPPLEMENTAL | 補助文字集合 1
> SMG$C_KANJI | DEC漢字文字集合
> SMG$C_JIS_KANA | JISカタカナ文字集合
> SMG$C_SDK | Super DEC 漢字コードセット

1DEC 補助文字集合または Latin-1 文字集合のいずれか。

## 説明

> SMG$PUT_LINE_MULTIルーチンによって，複数の属性を含む行を，仮想ディスプレイに書き込むことができます。カーソル移動がともなう場合もあります。 SMG$PUT_LINE_MULTIルーチンは，現在の仮想カーソルの位置からその行の行末まで書き込みます。テキストが1行より短い場合は，空白が埋め込まれます。

> テキストが右側境界を超えている場合には，flags 引数の値によって制御されます。

> flags 引数で自動改行を指定した場合は，line-advance 引数で指定した行数だけスクロールされ，あふれた文字を次の行に挿入するための空間が作成されます。次の行はスクロールの方向( direction 引数)によって決定されます。 flags 引数で自動改行を指定していない場合は，あふれた文字は切り捨てられます。

> SMG$PUT_LINE_MULTIルーチンを呼び出した後，仮想カーソルの位置は出力の対象となる次の行の 1 カラム目に設定されます。出力の対象となる次の行は， line-advance 引数と direction 引数によって決定されます。SMG$PUT_LINE_MULTI ルーチンを続けて呼び出しても，前の出力の上に新しい出力が重ならないように，line-advance 引数のシステム設定値は 1 になっています。

> DEC漢字または Super DEC 漢字文字集合を使用する際に，全角文字の右半分から書き込み操作が始まる場合は，その文字の左半分は未定義文字になります。また，行の一部が切り捨てられる際に，全角文字の右半分から切り捨てられる場合は，その文字の左半分は未定義文字になります。

## 戻される状態値

> SS$_NORMAL | 正常終了。
> LIB$_INVSTRDES | 文字列ディスクリプタが誤っています。
> SMG$_INVARG | line-advance 引数に負の値が指定されました。
> SMG$_INVDIS_ID | display-id 引数が誤っています。
> SMG$_WILUSERMS | ペースト・ボードがビデオ・ターミナルではありません。
> SMG$_WRONUMARG | 引数の数が誤っています。

# SMG$PUT_LINE_WIDE

> Write Double-Width Line ルーチンは，倍角のテキスト行を仮想ディスプレイに書き込みます。

## 形式

> SMG$PUT_LINE_WIDE display-id ,text [,line-advance] [,rendition-set] [,rendition-complement] [,flags] [,character-set]

## 戻り値

> ###

> OpenVMS 用法 | cond_value
> データ型 | longword (unsigned)
> アクセス | write only
> 受け渡し方 | by value

## 引数

> ### display-id

> OpenVMS 用法 | identifier
> データ型 | longword (unsigned)
> アクセス | read only
> 受け渡し方 | by reference

> 行が書き込まれる仮想ディスプレイの識別子。 display-id 引数はディスプレイ識別子を格納した符号なしロングワードのアドレスです。

> この引数はSMG$CREATE_VIRTUAL_DISPLAYルーチンによって与えられます。

> ### text

> OpenVMS 用法 | char_string
> データ型 | character string
> アクセス | read only
> 受け渡し方 | by descriptor

> 仮想ディスプレイへ書き込まれる文字。 text 引数は，文字列を示すディスクリプタのアドレスです。

> ### line-advance

> VMS 用法: | longword_signed
> データ型: | longword (signed)
> アクセス: | read only
> 受け渡し方: | by reference

> 行書き込み後のスクロール行数。 line-advance 引数は，進める行数を格納した符号付きロングワードのアドレスです。この引数は省略可能です。

> ### rendition-set

> OpenVMS 用法 | mask_longword
> データ型 | longword (unsigned)
> アクセス | read only
> 受け渡し方 | by reference

> 属性指定子。 rendition-set 引数は省略可能で，ロングワード・ビット・マスクのアドレスです。この引数で指定された属性が仮想ディスプレイ上に設定されます。この引数に対して指定できる値は次のとおりです。

> SMG$M_BLINK | 点滅する文字を表示します。
> SMG$M_BOLD | 通常の輝度より高い輝度で文字を表示します。
> SMG$M_INVISIBLE | 表示されない文字を指定します。つまり，仮想ディスプレイに存在していても，ペーストボードに表示されない文字を指定します。
> SMG$M_REVERSE | 文字を反転表示します。つまり，仮想表示の現在のシステム設定値の属性とは逆の状態で表示します。
> SMG$M_UNDERLINE | 下線を付けた文字を表示します。
> SMG$M_USER1 から SMG$M_USER8 | ユーザ定義属性を表示します。

> ### rendition-complement

> OpenVMS 用法 | mask_longword
> データ型 | longword (unsigned)
> アクセス | read only
> 受け渡し方 | by reference

> 属性補足指定子。 rendition-complement 引数は省略可能で，ロングワード・ビット・マスクのアドレスです。この引数で指定する補足的な属性が仮想ディスプレイ上に設定されます。rendition-set 引数で指定できる引数はすべて， rendition-complement 引数で補足指定することができます。

> rendition-set 引数と rendition-complement 引数は省略可能で，これらの引数を使用して仮想ディスプレイの各属性を制御することができます。 rendition-set 引数は仮想ディスプレイの特定の属性を設定するのに対し，rendition-complement 引数はこれらの属性を補足します。 rendition-set 引数と rendition-complement 引数の両方に同じビットを指定した場合は，最初に rendition-set 引数が評価され，その後，rendition-complement 引数が評価されます。これら 2 つの引数を組み合わせて使用することにより，ユーザは 1 回のプロシージャ呼び出しで仮想ディスプレイの各属性を制御できます。各属性で次の変換が可能です。

> 設定 | 補足 | 動作
> --- | --- | ---
> 0 | 0 | 属性を省略時の状態に設定する。
> 1 | 0 | 属性を有効にする。
> 0 | 1 | 属性を省略時の逆の状態に設定する。
> 1 | 1 | 属性を無効にする。

> ### flags

> OpenVMS 用法 | mask_longword
> データ型 | longword (unsigned)
> アクセス | read only
> 受け渡し方 | by reference

> テキストが，1行に格納できない場合に実行する動作を指定するビット・マスク(省略可能)。flags 引数は，フラグを格納した符号なしロングワードのアドレスです。この引数に対して指定できる値は次のとおりです。

> 0 | 自動改行しないことを指定します (省略時の設定値)。
> SMG$M_WRAP_CHAR | 行の最後の文字で自動改行します。
> SMG$M_WRAP_WORD | 行の最後の空白で自動改行します。

> ### character-set

> OpenVMS 用法 | longword_unsigned
> データ型 | longword (unsigned)
> アクセス | read only
> 受け渡し方 | by reference

> 出力されるテキストの文字集合。 character-set 引数は，文字集合コードを格納した符号なしロングワードのアドレスです。この引数を省略した場合は，SMG$CREATE_VIRTUAL_DISPLAY ルーチンまたは SMG$CHANGE_VIRTUAL_DISPLAY ルーチンで設定された値が使用されます。

> 値 | 文字集合 (コードセット)
> --- | ---
> SMG$C_ASCII | ASCII文字集合
> SMG$C_SPEC_GRAPHICS | DEC特殊文字集合
> SMG$C_SUPPLEMENTAL | 補助文字集合 1
> SMG$C_KANJI | DEC漢字文字集合
> SMG$C_JIS_KANA | JISカタカナ文字集合
> SMG$C_SDK | Super DEC 漢字コードセット

1DEC 補助文字集合または Latin-1 文字集合のいずれか。

## 説明

> SMG$PUT_LINE_WIDEルーチンは，倍角のテキストを仮想ディスプレイに書き込みます。 SMG$PUT_LINE_WIDEルーチンは，現在の仮想カーソルの位置からテキストを書き始めます。テキストが1行より短い場合は，空白が埋め込まれます。

> 前へ | 次へ | 目次 | 索引