日本-日本語

製品  >  ソフトウェア  >  OpenVMS  >  マニュアル

OpenVMS マニュアル


≫ 

OpenVMS V8.3
ライブラリ

タイトルページ
目次
まえがき
第 1 部:概論
第 1 章:日本語SMG (SMG$)の概要
第 2 章:日本語 SMG の出力操作
第 3 章:日本語 SMG 入力操作
第 4 章:日本語 SMG の高度な機能
第 5 章:フォーリン・ターミナルのサポート
第 6 章:日本語 SMG を使用したプログラム開発
第 7 章:日本語 SMG ルーチンの呼び出しの例
第 2 部:リファレンス・セクション
第 8 章:日本語 SMG リファレンス
索引
PDF
OpenVMS ホーム
日本語 OpenVMS | HPE 日本

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


目次 索引

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

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

仮想ディスプレイ上にテキスト行を書き込むための日本語 SMG ルーチンとしては,他に SMG$PUT_LINEルーチンと SMG$PUT_LINE_HIGHWIDEルーチンがあります。

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




戻される状態値

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


#1

C+ 
C This FORTRAN example program demonstrates the use of 
C SMG$PUT_LINE_WIDE. 
C 
C Include the SMG definitions. In particular, we want SMG$M_BORDER and 
C SMG$M_UNDERLINE. 
C- 
 
        INCLUDE '($SMGDEF)' 
        INTEGER SMG$CREATE_VIRTUAL_DISPLAY, SMG$CREATE_PASTEBOARD 
        INTEGER SMG$PASTE_VIRTUAL_DISPLAY,  SMG$PUT_LINE_WIDE 
        INTEGER DISPLAY1, PASTE1, ROWS, COLUMNS, STATUS 
        CHARACTER*34 TEXT(3) 
 
C+ 
C Create a virtual display with a border by calling 
C SMG$CREATE_VIRTUAL_DISPLAY. 
C- 
 
        ROWS = 7 
        COLUMNS = 70 
 
        STATUS = SMG$CREATE_VIRTUAL_DISPLAY 
     1          (ROWS, COLUMNS, DISPLAY1, SMG$M_BORDER) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
 
C+ 
C Call SMG$CREATE_PASTEBOARD to create the pasteboard. 
C- 
 
        STATUS = SMG$CREATE_PASTEBOARD (PASTE1) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
 
C+ 
C Use SMG$PUT_LINE to put data in the virtual display. 
C- 
 
        TEXT(1) = 'This virtual display has 7' 
        TEXT(2) = 'rows and 70 columns.' 
        TEXT(3) = 'Text entered by SMG$PUT_LINE_WIDE.' 
 
C+ 
C After the first line of text is printed, advance two lines. 
C- 
 
        STATUS = SMG$PUT_LINE_WIDE ( DISPLAY1, TEXT(1), 2 ) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
 
C+ 
C Underline the next line of text. Notice that 34 characters are being 
C underlined. Advance 1 line of text after displaying the line. 
C- 
 
        STATUS = SMG$PUT_LINE_WIDE ( DISPLAY1, TEXT(2), 1, 
     1          SMG$M_UNDERLINE ) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
 
C+ 
C Display the third line of text. 
C- 
 
        STATUS = SMG$PUT_LINE_WIDE ( DISPLAY1, TEXT(3) ) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
 
C+ 
C Paste the virtual display using SMG$PASTE_VIRTUAL_DISPLAY. 
C- 
 
        STATUS = SMG$PASTE_VIRTUAL_DISPLAY ( DISPLAY1, PASTE1, 4, 5 ) 
        IF (.NOT. STATUS) CALL LIB$SIGNAL(%VAL(STATUS)) 
 
        END 
 

このFORTRANプログラムによって生成される出力は, 図 8-32 に示すとおりです。

図 8-32 SMG$PUT_LINE_WIDEを呼び出すFORTRANプログラムによって生成される出力





Output Line of Text to Hardware Status Line ルーチンは,1行のテキストをハードウェア・ステータス行に出力します。

形式

SMG$PUT_STATUS_LINE pasteboard-id ,text [,character-set]




戻り値



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





引数



pasteboard-id

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


ハードウェア・ステータス行をもつペーストボードを指定します。 pasteboard-id 引数は,ペーストボード識別子を格納した符号なしロングワードのアドレスです。

text


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


ハードウェア・ステータス行に書き込まれる文字。text 引数はテキストを指すディスクリプタのアドレスです。

character-set

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


文字集合指定子。 character-set 引数は省略可能で,テキストをハードウェア・ステータス行に書き込むときに使用する文字集合を指定する,符号なしロングワードのアドレスです。

文字集合 (コードセット)
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_STATUS_LINEルーチンは,1行のテキストをターミナルのハードウェア・ステータス行に出力します。一部のターミナルでは,スクリーンの一番下(25行目)にハードウェア・ステータス行があります。このステータス行が"ホストから書き込み可能"として設定されている場合には,このルーチンを使用して1行のテキストをステータス行に出力できます(ハードウェア・ステータス行を使用できない場合には,エラーとして SMG$_OPNOTSUPが戻されます)。テキストは反転表示されます。



戻される状態値

SS$_NORMAL 正常終了。
LIB$_INVARG 引数に誤りがあります。
SMG$_INVPAS_ID pasteboard-id 引数に誤りがあります。
SMG$_OPNOTSUP ハードウェア・ステータス行を使用できません。
SMG$_WRONUMARG 引数の数が誤っています。




Read Composed Lineルーチンは,通常のキー・ストロークと同値文字列で構成される 1 行の入力を読み込みます。

形式

SMG$READ_COMPOSED_LINE keyboard-id [,key-table-id] ,resultant-string [,prompt-string] [,resultant-length] [,display-id] [,flags] [,initial-string] [,timeout] [,rendition-set] [,rendition-complement] [,word-terminator-code] [,character-set]




戻り値



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





引数



keyboard-id

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


入力を読み込む対象となる仮想キーボードを指定します。keyboard-id 引数は,キーボード識別子を格納した符号なしロングワードのアドレスです。

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

key-table-id

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


キー・ストロークを変更するために使用されるキー・テーブルを指定します。 key-table-id 引数は,キー・テーブル識別子を格納した符号なしのロングワードのアドレスです。

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

resultant-string

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


SMG$READ_COMPOSED_LINEルーチンが最終的に作成した行を書き込む文字列。 resultant-string 引数は,生成される行が書き込まれる文字列を示すディスクリプタのアドレスです。

prompt-string

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


読み込み操作に対するプロンプトとして使用される文字列。 prompt-string 引数は,プロンプト文字列を示すディスクリプタのアドレスです。

resultant-length

OpenVMS 用法 word_unsigned
データ型 word (unsigned)
アクセス write only
受け渡し方 by reference


読み込んだバイト数と,resultant-string 引数の最大長のどちらか小さい方の値が書き込まれます。resultant-length 引数は, SMG$READ_COMPOSED_LINE ルーチンが読み込んだバイト数が書き込まれる符号なしワードのアドレスです。

display-id

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


ディスプレイ識別子。display-id 引数はディスプレイ識別子を格納した符号なしロングワードのアドレスです。画面管理機能の出力ルーチンを使用しない場合のみこの引数は省略可能です。

画面管理機能の入力ルーチンと出力ルーチンを使用する場合には,この引数は,入力が行われる仮想ディスプレイを指定します。指定される仮想ディスプレイは, keyboard-id 引数によって指定されるペーストボードと同じペーストボードにペーストされていなければならず,他のディスプレイによって隠されていない状態でなければなりません。仮想ディスプレイの隠された領域から入力を受け付けることはできません。

複数の仮想ディスプレイが存在する場合には,各仮想ディスプレイに対して仮想カーソルの位置が割り当てられています。同時に,物理カーソルの現在の位置に対応する物理カーソル位置が1つだけあります。display-id 引数を指定した場合には,読み込み操作は,指定された仮想ディスプレイ内の現在の仮想カーソルの位置から開始されます。ディスプレイ識別子を省略した場合には,読み込み操作は現在の物理カーソルの位置から開始されます。prompt-string 引数の長さと入力されるキーの合計は,ディスプレイ内に表示されるカラム数に制限されます。

注意

この仮想ディスプレイはカラム 1 にペーストしなければならず,その右側に他の仮想ディスプレイを配置することはできません。この制限事項が必要なのは,この条件が満足されない場合,[Ctrl/R] または [Ctrl/U] の発生によって,右側にペーストされた出力も含めて行全体が消去されるからです。



flags

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


使用可能なキーを指定するビット・マスク(省略可能)。 flags 引数は,フラグを格納した符号なしロングワードのアドレスです。 flags 引数に対して指定できる値は次のとおりです。

0 行編集は許可されるが,ファンクション・キー ( [ F6][F14])は使用できない。
SMG$M_FUNC_KEYS ファンクション・キー ( [F6][F14])は使用できるが,行編集は禁止される。
SMG$M_NOKEEP 再呼び出しバッファに入力された行は保存されない。
SMG$M_NORECALL この入出力に対してのみ,行の再呼び出しは禁止される。

OpenVMS ターミナル・ドライバは一部の漢字ターミナルで行編集のために [F6][F14] ファンクション・キーを使用するため,ファンクション・キーと,行編集を同時に許可することはできません。

これらのフラグが正しく機能するためには,端末に対して端末属性 /LINE_EDITING を設定しなければなりません。 /LINE_EDITING は省略時の設定です。

かな漢字変換キーの定義は,SMG$DEFINE_KEY ルーチンや SMG$ADD_KEY_DEF ルーチンによるキー定義に優先されます。character-set 引数が SMG$C_KANJI または SMG$C_SDK の場合には,flags 引数に SMG$M_FUNC_KEYS を指定しても行編集は禁止されません。

initial-string

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


初期文字列(省略可能)。initial-string 引数は,フィールドの初期文字列を格納した省略可能な文字列を示すディスクリプタのアドレスです。文字列はキーボードから入力されたかのように,ディスプレイの入力領域に書き込まれます。文字列は通常の方法で編集できます (function-keys-flag 引数が設定されていない場合)。

timeout

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


時間切れの値(省略可能)。timeout 引数は,時間切れの値を格納した符号付きロングワードのアドレスです。timeout 引数を指定した場合には,時間切れの前に入力されたすべての文字はバッファに書き込まれます。 timeout 引数を省略した場合には,終了文字が入力されるまで文字はバッファに書き込まれます。

rendition-set

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


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

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

rendition-set 引数を使用する場合は,display-id 引数を指定しなければなりません。

rendition-complement

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


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

rendition-complement 引数を使用する場合は,display-id 引数を指定しなければなりません。

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 属性を無効にする。



word-terminator-code

OpenVMS 用法 word_unsigned
データ型 word (unsigned)
アクセス write only
受け渡し方 by reference


キー終了文字コード。word-terminator-code 引数は,どの文字またはどのキーが読み込み操作を終了したかを示すコードが書き込まれる,符号なしワードのアドレスです。キー終了文字コードは SMG$K_TRM_keyname という形式です。キー名については 第 3 章表 3-1 を参照してください。

character-set

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


入力されるテキストの文字集合。 character-set 引数は,文字集合コードを格納した符号なしロングワードのアドレスです。この引数を省略した場合は,SMG$CREATE_VIRTUAL_DISPLAY ルーチンまたは SMG$CHANGE_VIRTUAL_DISPLAY ルーチンで設定された値が使用されます。この引数を省略し,かつ仮想ディスプレイが指定されていない場合には, SMG$DEFAULT_CHARACTER_SET 論理名で示される文字集合が使用されます。

文字集合 (コードセット)
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文字集合のいずれか。


目次 索引

印刷用画面へ
プライバシー 本サイト利用時の合意事項