# 日本語 OpenVMS

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

AA-PU8RF-TE

# 2004 年 2 月

本書は，日本語 OpenVMS 上で実行される，画面管理実行時ライブラリ・ルーチン ( SMG ルーチン ) についての解説書です。

改訂／更新情報: | 日本語 OpenVMS V7.3『日本語画面管理ライブラリ 利用者の手引き』の改訂版です。
ソフトウェア・バージョン: | 日本語 OpenVMS Alpha V7.3-2 日本語 OpenVMS VAX V7.3

日本ヒューレット・パッカード株式会社

© 2004 Hewlett-Packard Development Company, L.P.

本書の著作権は日本ヒューレット・パッカード株式会社が保有しており，本書中の解説および図，表は日本ヒューレット・パッカードの文書による許可なしに，その全体または一部を，いかなる場合にも再版あるいは複製することを禁じます。

また，本書に記載されている事項は，予告なく変更されることがありますので，あらかじめご承知おきください。万一，本書の記述に誤りがあった場合でも，日本ヒューレット・パッカードは一切その責任を負いかねます。

本書で解説するソフトウェア(対象ソフトウェア)は，所定のライセンス契約が締結された場合に限り，その使用あるいは複製が許可されます。

日本ヒューレット・パッカードは，日本ヒューレット・パッカードまたは日本ヒューレット・パッカードの指定する会社から納入された機器以外の機器で対象ソフトウェアを使用した場合，その性能あるいは信頼性について一切責任を負いかねます。

以下は，他社の商標です。

Adobe，Adobe Illustrator，POSTSCRIPT は米国 Adobe Systems 社の商標です。

BITSTREAM は米国 Bitstream 社の商標です。

Microsoft，MS および MS--DOS は米国 Microsoft 社の商標です。

Motif，OSF，OSF/1，OSF/Motif および Open Software Foundation は米国 Open Software Foundation 社の商標です。

その他のすべての商標および登録商標は，それぞれの所有者が保有しています。

次へ | 目次 | 索引

# まえがき

# 本書の目的

本書は，標準版 OpenVMS の画面管理ライブラリを日本語のために拡張した，日本語画面管理実行時ライブラリ・ルーチンについて説明します。これらのルーチンは，日本語 OpenVMS のもとで実行されます。本書では，日本語画面管理ルーチン ( 以下，日本語SMG ルーチンと呼ぶ ) の使い方を説明し，さらに参照情報を示します。

# 対象読者

本書は，実行時ライブラリ・ルーチンを使用するシステム・プログラマとアプリケーション・プログラマを対象にしています。

# 本書の構成

本書は２部で構成されています。

第１部は 7 つの章に分かれています。

第 1 章 | 日本語 SMG ルーチンを示し，おもなSMG$ の構成要素の概要を示します。
第 2 章 | 日本語 SMG が提供する出力操作について説明します。
第 3 章 | 仮想キーボードからの入力を実行するために使用する日本語 SMG ルーチンについて説明します。
第 4 章 | 日本語 SMG の高度な機能について説明します。
第 5 章 | フォーリン・ターミナルをサポートする方法について説明します。
第 6 章 | 新しいプログラムを開発するために日本語 SMG を使用する時の望ましい方法について説明します。
第 7 章 | VMS Calling Standardに準拠した言語から SMG$ ルーチンを呼び出す例を示します。

第２部は日本語SMG リファレンスです。

日本語SMG リファレンス | 実行時ライブラリの日本語SMG に含まれている各ルーチンの詳細な参照情報です。この情報は，『 OpenVMS Programming Interfaces: Calling a System Routine 』に説明されている形式を使用して示されています。ルーチンの説明はルーチン名のアルファベット順に並べられています。

# 関連資料

実行時ライブラリ・ルーチンは複数の参照マニュアルに説明されています。実行時ライブラリの概要と実行時ライブラリ・ルーチンのアクセス方法の説明は，『 OpenVMS Programming Interfaces: Calling a System Routine 』にまとめられています。他の RTL の機能の説明と，各機能に対応するルーチンおよびその使い方は，次のマニュアルに説明されています。

- 『IMLIB/OpenVMS ライブラリ リファレンス・マニュアル』

- 『日本語ライブラリ 利用者の手引き』

- 『OpenVMS I/O User's Reference Manual』

- 『OpenVMS RTL Screen Management (SMG$) Manual』

- 『OpenVMS RTL Library (LIB$) Manual』

- 『OpenVMS RTL General Purpose (OTS$) Manual』

- 『OpenVMS RTL Parallel Processing (PPL$) Manual』

- 『OpenVMS RTL String Manupulation (STR$) Manual』

- 『VMS RTL Mathematics (MTH$) Manual』

- 『VMS RTL DECtalk (DTK$) Manual』

OpenVMS プロシージャ呼び出し/条件処理標準規則は『OpenVMS Programming Interfaces: Calling a System Routine』および『OpenVMS Calling Standard』に説明されており，実行時ライブラリ・ルーチンを使用する人にとって役立つ情報がまとめられています。

どの言語を使用するアプリケーション・プログラマも，モジュール方式のプログラミング標準規則と他のカイドラインについて，『OpenVMS ユーザーズ・マニュアル』を参照してください。

高級言語プログラマは，各言語の参照マニュアルに示されている実行時ライブラリ・ルーチンの呼び出しに関する補足情報を参照してください。補足情報はまた， VMS Calling Standard に準拠した言語に添付されている言語のユーザ・ガイドにも示されています。

かな漢字変換キーの設定については『ユーザ・キー定義 利用者の手引き』を参照してください。

# 表記法

本書では以下の表記法を使用します。

表記法 | 意味
--- | ---
Ctrl/ x | Ctrl/ x という表記は， Ctrl キーを押しながら別のキーまたはポインティング・デバイス・ボタンを押すことを示します。
PF1 x | PF1 x という表記は，PF1 に定義されたキーを押してから，別のキーまたはポインティング・デバイス・ボタンを押すことを示します。
`[Return]` | 例の中で，キー名が四角で囲まれている場合には，キーボード上でそのキーを押すことを示します。テキストの中では，キー名は四角で囲まれていません。 HTML 形式のドキュメントでは，キー名は四角ではなく，括弧で囲まれています。
... | 例の中の水平方向の反復記号は，次のいずれかを示します。 文中のオプションの引数が省略されている。 前出の 1 つまたは複数の項目を繰り返すことができる。 パラメータや値などの情報をさらに入力できる。
. . . | 垂直方向の反復記号は，コードの例やコマンド形式の中の項目が省略されていることを示します。このように項目が省略されるのは，その項目が説明している内容にとって重要ではないからです。
( ) | コマンドの形式の説明において，括弧は，複数のオプションを選択した場合に，選択したオプションを括弧で囲まなければならないことを示しています。
[ ] | コマンドの形式の説明において，大括弧で囲まれた要素は任意のオプションです。オプションをすべて選択しても，いずれか1つを選択しても，あるいは1つも選択しなくても構いません。ただし，OpenVMS ファイル指定のディレクトリ名の構文や，割り当て文の部分文字列指定の構文の中では，大括弧に囲まれた要素は省略できません。
[|] | コマンド形式の説明では，括弧内の要素を分けている垂直棒線はオプションを 1 つまたは複数選択するか，または何も選択しないことを意味します。
{ } | コマンドの形式の説明において，中括弧で囲まれた要素は必須オプションです。いずれか1のオプションを指定しなければなりません。
太字 | 太字のテキストは，新しい用語，引数，属性，条件を示しています。
italic text | イタリック体のテキストは，重要な情報を示します。また，システム・メッセージ (たとえば内部エラー number)，コマンド・ライン(たとえば /PRODUCER= name)，コマンド・パラメータ(たとえば device-name) などの変数を示す場合にも使用されます。
UPPERCASE TEXT | 英大文字のテキストは，コマンド，ルーチン名，ファイル名，ファイル保護コード名，システム特権の短縮形を示します。
`Monospace type` | モノスペース・タイプの文字は，コード例および会話型の画面表示を示します。 C プログラミング言語では，テキスト中のモノスペース・タイプの文字は，キーワード，別々にコンパイルされた外部関数およびファイルの名前，構文の要約，または例に示される変数または識別子への参照などを示します。
-- | コマンド形式の記述の最後，コマンド・ライン，コード・ラインにおいて，ハイフンは，要求に対する引数がその後の行に続くことを示します。
数字 | 特に明記しない限り，本文中の数字はすべて10 進数です。 10 進数以外 (2 進数，8 進数，16 進数) は，その旨を明記してあります。

実行時ライブラリ・ルーチンの説明で使用される他の表記法については，『 OpenVMS Programming Interfaces: Calling a System Routine 』を参照してください。

# サポートされるハードウェア

日本語 SMG では次の漢字ターミナルをサポートします。

- VT80 (限定サポート)

- VT280シリーズ

- VT382F

表 1 は，各漢字ターミナルがサポートする文字集合を表しています。

表 1 漢字ターミナル
文字集合 | VT80 | VT280シリーズ | VT382F
--- | --- | --- | ---
ASCII文字集合 | ○ | ○ | ○
DEC 特殊文字集合 | ○ | ○ | ○
DEC 補助文字集合 |  | ○ | ○
ローマ字文字集合 | ○ | ○ | ○
JIS カタカナ文字集合 | ○ | ○ | ○
DEC 漢字文字集合 | ○ | ○ | ○
ISO Latin-1 補助文字集合 |  |  | ○

# 用語

- 仮想ディスプレイ (Virtual Display)
  プログラムが日本語SMGルーチンを呼び出してデータを書き込む四角い領域です。

- カラム数(Number of Columns)
  カラム数は，SMG$PUT_CHARS ルーチンがターミナル画面に書き込む ASCII 文字単位によってカウントされます。

- 行数 (Number of Lines)
  行数は，SMG$PUT_CHARS ルーチンがターミナル画面に書き込む ASCII 文字単位によってカウントされます。

- ターミナル画面 (Terminal Screen)
  このバージョンでは，ビデオ・ターミナルの表示可能な部分を示します。

- 物理画面 (Physical Screen)
  日本語SMGのこのバージョンでは，ターミナル画面とほぼ同義です。

- 未定義文字 (Undefine Character)
  値が未定義で，文字集合が認識されない文字ですが，他の属性は ASCII 文字と同じです。

# 第 1 部
概論

第１部では，日本語画面管理ライブラリについて説明します。ライブラリ・ルーチンの詳細については，第２部「日本語 SMG リファレンス」をご覧ください。

第１部は次の 7 つの章で構成されています。

- 第 1 章, 日本語SMG (SMG$)の概要

- 第 2 章, 日本語 SMG の出力操作

- 第 3 章, 日本語 SMG 入力操作

- 第 4 章, 日本語 SMG の高度な機能

- 第 5 章, フォーリン・ターミナルのサポート

- 第 6 章, 日本語 SMG を使用したプログラム開発

- 第 7 章, 日本語 SMG ルーチンの呼び出しの例

# 第 1 章
日本語SMG (SMG$)の概要

この章では，漢字ターミナルから独立した機能を実行する，実行時ライブラリ・ルーチンについて説明します。日本語 SMG のもっとも重要な要素は，入出力を実際に実行する物理装置とユーザ・プログラムが完全に分離されるということです。ユーザ・プログラムは物理画面に直接書き込みを実行するのではなく， 仮想ディスプレイ に書き込みます。同様に，ユーザ・プログラムは物理キーボードから直接入力を実行するのではなく， 仮想キーボード から入力を実行します ( 仮想ディスプレイと仮想キーボードは論理的なものであり，その使い方についてはこの後の節で詳しく説明します )。このように，仮想操作を物理操作から分離することにより，入出力をターミナルから独立させることが可能になります。

この後に示す日本語 SMG ルーチンは，ビデオ画面上で複雑なイメージを設計し，構成し，管理するのに役立ちます。これらのルーチンは，通常は，VT100 クラスの漢字ターミナルで実行される操作タイプに対応しており，また，日本語 SMG がハードウェアで実現されていない漢字ターミナルで，その機能をソフトウェアでエミュレーションできるようにもします。各ルーチンはその機能に従って次の 3 つに分類されています。

- 弊社製品以外の漢字ターミナルをサポートするルーチン

- 日本語 SMG 入力ルーチン

- 日本語 SMG 出力ルーチン

表 1-1 は，弊社製品以外の漢字ターミナルをサポートするルーチンです。これらのルーチンについては， 第 5 章 を参照してください。

表 1-1 弊社以外の漢字ターミナルをサポートするルーチン
弊社以外の漢字ターミナルをサポートするルーチン
SMG$DEL_TERM_TABLE
SMG$GET_NUMERIC_DATA
SMG$GET_TERM_DATA
SMG$INIT_TERM_TABLE
SMG$INIT_TERM_TABLE_BY_TYPE

表 1-2 は，日本語 SMG 出力ルーチンを示しています。これらのルーチンについては， 第 2 章 を参照してください。

表 1-2 日本語 SMG 出力ルーチン
出力ルーチン
SMG$BEGIN_PASTEBOARD_UPDATE
SMG$CHANGE_PBD_CHARACTERISTICS
SMG$CHANGE_RENDITION
SMG$CHANGE_VIEWPORT
SMG$CHANGE_VIRTUAL_DISPLAY
SMG$CHECK_FOR_OCCLUSION
SMG$CONTROL_MODE
SMG$COPY_VIRTUAL_DISPLAY
SMG$CREATE_MENU
SMG$CREATE_PASTEBOARD
SMG$CREATE_SUBPROCESS
SMG$CREATE_VIEWPORT
SMG$CREATE_VIRTUAL_DISPLAY
SMG$CURSOR_COLUMN
SMG$CURSOR_ROW
SMG$DELETE_CHARS
SMG$DELETE_LINE
SMG$DELETE_MENU
SMG$DELETE_PASTEBOARD
SMG$DELETE_SUBPROCESS
SMG$DELETE_VIEWPORT
SMG$DELETE_VIRTUAL_DISPLAY
SMG$DISABLE_BROADCAST_TRAPPING
SMG$DISABLE_UNSOLICITED_INPUT
SMG$DRAW_CHAR
SMG$DRAW_LINE
SMG$DRAW_RECTANGLE
SMG$ENABLE_UNSOLICITED_INPUT
SMG$END_PASTEBOARD_UPDATE
SMG$ERASE_CHARS
SMG$ERASE_COLUMN
SMG$ERASE_DISPLAY
SMG$ERASE_LINE
SMG$ERASE_PASTEBOARD
SMG$EXECUTE_COMMAND
SMG$FIND_CURSOR_DISPLAY
SMG$FLUSH_BUFFER
SMG$GET_BROADCAST_MESSAGE
SMG$GET_DISPLAY_ATTR
SMG$GET_PASTEBOARD_ATTRIBUTES
SMG$GET_PASTING_INFO
SMG$GET_VIEWPORT_CHAR
SMG$HOME_CURSOR
SMG$INSERT_CHARS
SMG$INSERT_LINE
SMG$LABEL_BORDER
SMG$LIST_PASTING_ORDER
SMG$LOAD_VIRTUAL_DISPLAY
SMG$MOVE_TEXT
SMG$MOVE_VIRTUAL_DISPLAY
SMG$PASTE_VIRTUAL_DISPLAY
SMG$POP_VIRTUAL_DISPLAY
SMG$PUT_CHARS
SMG$PUT_CHARS_HIGHWIDE
SMG$PUT_CHARS_MULTI
SMG$PUT_CHARS_WIDE
SMG$PUT_HELP_TEXT
SMG$PUT_LINE
SMG$PUT_LINE_HIGHWIDE
SMG$PUT_LINE_MULTI
SMG$PUT_LINE_WIDE
SMG$PUT_STATUS_LINE
SMG$READ_FROM_DISPLAY
SMG$REMOVE_LINE
SMG$REPAINT_SCREEN
SMG$REPASTE_VIRTUAL_DISPLAY
SMG$RESTORE_PHYSICAL_SCREEN
SMG$RETURN_CURSOR_POS
SMG$RING_BELL
SMG$SAVE_PHYSICAL_SCREEN
SMG$SAVE_VIRTUAL_DISPLAY
SMG$SCROLL_DISPLAY_AREA
SMG$SCROLL_VIEWPORT
SMG$SELECT_FROM_MENU
SMG$SET_BROADCAST_TRAPPING
SMG$SET_CURSOR_ABS
SMG$SET_CURSOR_MODE
SMG$SET_CURSOR_REL
SMG$SET_DISPLAY_SCROLL_REGION
SMG$SET_OUT_OF_BAND_ASTS
SMG$SET_PHYSICAL_CURSOR
SMG$SET_TERM_CHARACTERISTICS
SMG$UNPASTE_VIRTUAL_DISPLAY

表 1-3 は, 日本語 SMG 入力ルーチンをまとめています。これらのルーチンについては， 第 3 章 を参照してください。

表 1-3 日本語 SMG 入力ルーチン
入力ルーチン
SMG$ADD_KEY_DEF
SMG$CANCEL_INPUT
SMG$CREATE_KEY_TABLE
SMG$CREATE_VIRTUAL_KEYBOARD
SMG$DEFINE_KEY
SMG$DELETE_KEY_DEF
SMG$DELETE_VIRTUAL_KEYBOARD
SMG$GET_KEY_DEF
SMG$GET_KEYBOARD_ATTRIBUTES
SMG$KEYCODE_TO_NAME
SMG$LIST_KEY_DEFS
SMG$LOAD_KEY_DEFS
SMG$NAME_TO_KEYCODE
SMG$READ_COMPOSED_LINE
SMG$READ_KEYSTROKE
SMG$READ_STRING
SMG$READ_VERIFY
SMG$REPLACE_INPUT_LINE
SMG$RETURN_INPUT_LINE
SMG$SET_DEFAULT_STATE
SMG$SET_KEYPAD_MODE

次へ | 目次 | 索引