この機能は 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 が適合するようにしてください。