拡張端末モード

この機能は COBOL でのみ使用できます。この機能を使用すると、ご使用の端末で拡張モードがサポートされている場合に、このモードが使用できます。拡張モードがサポートされているのは、132 列モードが選択できる vt100 形式の端末などです。画面出力の通常の方法は、ANSI DISPLAY、Adis DISPLAY、および cobprintf() 呼び出しも含めて、すべて使用できます。カーソルのアドレス指定は現在の端末のモードと矛盾しないようにする必要があります。たとえば、Adis を使ってカーソルを 100 列目に置くように指定しても、80 列モードではこれは不可能です。この場合、通常モードから拡張モードへの自動切り換えもできません。拡張モードは、次に示すように明示的に設定する必要があります。

この機能を使用するには、作成したプログラムの作業場所節に、次のレコードが必要です。

01 mode-number pic x comp-x.

また、実行時に次の方法で呼び出す必要があります。

call "cobtermmode" using mode-number

mode-number には次のいずれかの値を指定できます。

意味
0 標準端末モード。標準の端末の terminfo ファイルが使用されます。
1 拡張端末モード。標準の端末名の最後に -w が追加された名前の terminfo ファイルが使用されます。

呼び出しが正常に終了すると、RETURN-CODE の値がゼロに設定されます。呼び出しに失敗すると、ゼロ以外の値に設定されます。たとえば、要求した terminfo ファイルが見つからない場合はゼロ以外の値になります。terminfo の検索方法については、「移植性のある Terminfo データベースとシステムの Terminfo データベースの検索」を参照してください。

呼び出しが正常に行われると、画面処理システムは初期化され (まだ初期化されていない場合)、次のように動作します。

画面処理システムが初期化されると、ANSI DISPLAY 文なども含むすべての DISPLAY 文で、新しい画面処理システムが使用されます。

呼び出しに失敗すると、RETURN-CODE には 0 以外の値が設定され、画面は変更されません。RETURN-CODE は次のように設定されます。

意味
0 操作が正常に完了した。
1 terminfo ファイルが見つからない (またはアクセスできない/破損している) かメモリが不足している。
2 terminfo ファイル内に 1 つ以上の必要なエントリが存在しない。
3 必要なコードが使用環境でサポートされていない。

cobtermmode 呼び出しを使用する場合は、次のことに注意してください。

端末の状態を切り換えるには、次の 6 つの terminfo の機能を使用します。

フル ネーム 省略名
init_1string is1
init_2string is2
init_3string is3
reset_1string rs1
reset_2string rs2
reset_3string rs3

これらに関する詳細は、『AT&T UNIX System V Interface Definition (SVID)』で説明されています。使用方法は次のようになっています。

アプリケーションを実行する際には、端末のモードと、TERM の端末名で指定された terminfo が適合するようにしてください。