日本-日本語

製品  >  ソフトウェア  >  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
日本語画面管理ライブラリ 利用者の手引き


目次 索引



第 5.2 節 の表は,日本語 SMG が特定の機能文字列を要求できるかどうかを示しています。ライン描画などの一部の機能は,ラインを描く日本語 SMG ルーチンを呼び出した場合などにだけ要求されます。通常のテキストを画面に書き込む操作だけしか実行しない場合には,次のフィールドだけを定義しておけば十分です。

基本的な機能

  • NAME

  • SET_CURSOR_ABS

SET_CURSOR_ABS を省略した場合には,日本語 SMG は漢字ターミナルをハード・コピー装置として取り扱います(ハード・コピー装置に対する日本語 SMG の使用は,本バージョンではサポートされません)。

次のオプション機能を指定した場合には,日本語 SMG 操作はより効率的になります。

  • ERASE_TO_END_DISPLAY

  • ERASE_TO_END_LINE

  • SET_SCROLLING_REGION

ERASE_TO_END_DISPLAY,ERASE_TO_END_LINE,SET_SCROLLING_REGION を指定しなかった場合には,日本語 SMG はこれらの機能を実行するために空白を挿入します。しかし,空白を挿入する操作は時間のかかる操作です。同様に,ハードウェアのスクロール機能を使用すれば,出力の速度を向上できます。スクロール機能を使用できない場合には,日本語 SMG は画面全体を描き直さなければなりません。

日本語 SMG は ASCII 文字集合を使用します。漢字ターミナルにライン描画文字セットが備えられている場合には,ライン描画文字 ( bottom_t_char, horizontal_bar など ) を定義しなければなりません。ライン描画文字が定義されていない場合には, SMG は境界を描くために通常の ASCII 文字を使用します。

また日本語 SMG は,ターミナル・ドライバを管理しているターミナル属性にも依存します。これらの属性は,DCL の SET TERMINAL コマンドを使用して変更できます。たとえば,SET TERMINAL/NOTAB と入力すると,日本語 SMG は漢字ターミナルにタブを送信しなくなります。

5.7 フォーリン・ターミナルに対する入力のサポート

フォーリン・ターミナル とは, OpenVMS が認識する標準的なターミナル以外の装置タイプの漢字ターミナル,あるいは ANSI_CRT 属性が設定されていない漢字ターミナルです。

ANSI ターミナルを使用する場合には,ファンクション・キーやキーパッド・キーなどの特殊なキーを入力すると,エスケープ・シーケンス ( ANSI 標準規格によって定義されているシーケンス ) が OpenVMS ターミナル・ドライバに送信されます。 OpenVMS ターミナル・ドライバはこの ANSI 標準規格を認識し,この標準規格に従って,エスケープ・シーケンスを解釈します。したがって,OpenVMS ターミナル・ドライバは,エスケープ・シーケンスの長さと,そのシーケンス内のどの位置でどの文字が認められるかを認識しています。

OpenVMS ターミナル・ドライバは,エスケープ・シーケンス内のプリント文字をエコー表示しません。これは,これらの文字がエスケープ・シーケンスの一部として特殊な意味を持つものとして解釈されるからです。ただし,TRM$M_TM_NOECHO 修飾子を指定しない限り,通常のキーはエコー表示されます。

OpenVMS ターミナル・ドライバはエスケープ・シーケンス,シーケンスの長さ,ファンクション・キーが押される前に入力された文字数を日本語 SMG ルーチンに戻します。日本語 SMG ルーチンは,シーケンスとその長さを TERMTABLE.EXE 内の特定の漢字ターミナルに対するキー定義のリストと比較することにより,どのキーが押されたかを判断します。このコードは SMG$K_TRM_xxx という形式でユーザに戻されます。ただし,xxx は特定のキーを指します。

フォーリン・ターミナルでファンクション・キーやキーパッド・キーなどの特殊なキーを押した場合には, ANSI 標準ではないシーケンスが OpenVMS ターミナル・ドライバに送信されます。このシーケンスが制御文字から始まる場合には, OpenVMS ターミナル・ドライバはこの文字を終了文字として解釈します ( 省略時の設定では,特に他の目的で終了文字マスクを使用しない限り,すべての制御文字は終了文字になります )。その後,ターミナル・ドライバは文字の読み込みを停止し,その文字,長さ1,およびファンクション・キーが押される前に入力された文字数を日本語 SMG ルーチンに戻します。

日本語 SMG ルーチンは,戻された文字を調べます。その文字が制御文字の場合には,日本語 SMG ルーチンは先読みバッファにシーケンスの次の文字が登録されていないかどうかを確認します。先読みバッファに文字が登録されている場合には,日本語 SMG ルーチンは先読みバッファから 1 文字を読み込み,それを前に読み込んだ制御シーケンスの後に追加し,この新しいシーケンスを TERMTABLE.EXE 内のこのターミナルに対するキー定義のリストと比較し,どのキーが押されたかを判断します。シーケンスが一致しない場合には,先読みバッファから次の文字が読み込まれます。一致するものが検出されるまで,または先読みバッファが空になるまで,この処理が継続的に実行されます。

ターミナル・ドライバはこのシーケンスに関して知識を持たないため,エコー表示を禁止する修飾子をユーザが指定しない限り,シーケンス内のプリント可能な文字はターミナル・ドライバによってエコー表示されます。日本語 SMG ルーチンにはどの文字がこのシーケンスを構成するのかがわからないため,シーケンスを構成する実際の文字を日本語 SMG ルーチンに戻すことができるようにするために,行編集機能が禁止されます。

特殊キーが制御文字から始まらないシーケンスを送信する漢字ターミナルは,入力の対象として日本語 SMG ルーチンでサポートされません。ファンクション・キー・シーケンスを開始する制御文字を除外するように終了文字マスクを変更する操作はサポートされません。さらに,入力を実行するフォーリン・ターミナルの性能は,同じ入力を実行する ANSI ターミナルの性能と一致しません。これは,日本語 SMG ルーチンが OpenVMS ターミナル・ドライバのかわりにシーケンスを解析しなければならないからです。

5.8 SET TERMINAL コマンドと SHOW TERMINAL コマンドのサポート

DCL の SET TERMINAL コマンドは, TERMTABLE 定義に従うように漢字ターミナルを設定します。 SET TERMINAL コマンドを使用すると, TERMTABLE データベースから次の 3 つのフィールドが検索され,漢字ターミナルに対して設定されます。

  1. ターミナル・タイプ−システムが割り当てる,特定の装置タイプに関連する符号付き整数

  2. 幅−物理画面のカラム数

  3. ページ・サイズ−画面の行数

さらに,対応する論理値機能がターミナル定義に設定されている場合には,次のフラグが設定されます。

  • ADVANCED_VIDEO

  • ANSI_CRT

  • BLOCK_MODE

  • DEC_CRT

  • EDIT

  • EIGHT_BIT

  • FORM

  • FULLDUP

  • LOWERCASE

  • REGIS

  • SCOPE

  • SIXEL_GRAPHICS

  • SOFT_CHARACTERS

  • TAB

これらのフィールドのいずれかが定義から脱落している場合には,その属性に対しては,以前の設定が保存されます。 SET TERMINAL コマンドは漢字ターミナルに対してその属性を設定しようとしません。予測できない設定が発生するのを防止するには,ここに示したすべての機能を定義に指定しなければなりません。
SET TERMINAL コマンドは,VT300 シリーズ,VT200 シリーズ,VT100,および VT52 などの認識される漢字ターミナルに対しては,常に同様に動作します。 SET TERMINAL が認識しない装置名を検出した場合には, TERMTABLE からその名前を持つ定義を検索します。ユーザ固有の定義は, SET TERMINAL が現在認識する名前以外の名前でなければなりません。現在認識される漢字ターミナルは次に示すとおりです。

LA12 LQP02 VT102
LA34 VT05 VT125
LA36 VT52 VT131
LA38 VT55 VT132
LA100 VT80 VT200-SERIES
LA120 VT100 VT300-SERIES
Unknown VT101 FT1 から FT8

SET TERMINAL が独自の内部テーブルから装置名を検索する場合には, TERMTABLE データベースを検索しません。

SET TERMINAL コマンドは装置名の最初の15文字だけを認識するため,ターミナル名は15文字に制限することが必要です。

SET TERMINAL/DEVICE_TYPE=name コマンドを使用した場合,指定された漢字ターミナルが OpenVMS オペレーティング・システムによって認識されないときは, TERMTABLE データベースからその漢字ターミナルが検索されます。

SET TERMINAL/DEVICE_TYPE=name コマンドはその後,次の表に示すように, TERMTABLE データベース内の機能の存在をもとに,いろいろなターミナル属性を設定します。

機能フィールド ターミナル属性
LOWERCASE LOWERCASE
PHYSICAL_TABS TABS
SCOPE SCOPE
EIGHT_BIT EIGHTBIT
PHYSICAL_FF FORM
FULLDUP FULLDUP
SIXEL_GRAPHICS SIXEL
SOFT_CHARACTERS SOFT
ANSI_CRT ANSI_CRT
REGIS REGIS
BLOCK_MODE BLOCK
ADVANCED_VIDEO AVO
EDIT_MODE EDIT
DEC_CRT DEC_CRT

TERMTABLE ターミナルに対しては, SET TERMINAL/DEVICE_TYPE= 形式のコマンドを使用しなければなりません。 SET TERMINAL/name は古い形式のコマンドであり,一部の装置名に対してだけしか機能せず, OpenVMS の前のバージョンとの互換性を維持する目的でのみ使用できます。


目次 索引

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