これらは ``制御シーケンス'' とも呼ばれます。本章は不完全です (制御シー ケンスは沢山ありすぎてきっと永遠に完成しないでしょう)。この章はおそら く ``Text-Terminal-Programming-HOWTO'' と呼ばれるはずの文書の一部にな るか、それのリファレンスとなるはずです。
ANSI エスケープシーケンスの例をあげると、ESC [ 5B はカーソルを 5 行下 に移動する命令です。ESC はエスケープ文字を表します。シーケンスに含まれ る 5 はパラメータです。もしそれが 7 だったら 7 行下へ移動するでしょう。 ``x 行下へ移動 : ESC [ xB'' のエスケープは理解しやすいものです。でも ` `第 3 のデバイスの属性を要求する'' なんていう専門的なコマンドになると ちょっとわかり難い。この章ではエスケープシーケンスのコマンドで使用され る不可解な 専門用語について説明してみましょう。完全なリスト (ANSI 標準のエス ケープシーケンスコードを含む) は、``wish list" プロジェクトに委ねます。 オプションとパラメータのセットアップを使って端 末を設定するときなどのように、多くのエスケープシーケンスは同じことをするので 、ここではそのようなオプションは繰り返して説明しません。
各種端末の沢山の (でも全部ではない) エスケープシーケンスのリストについ ては、 Escape Seqs.; N. America か Escape Seqs.; Europeをご覧なさい。 これらは端末エミュレーションで使用されますが、通信用リアルタイム端末に 関しては常に当てはまるものではありません。 VT のリスト (保守されてませ ん) が Emulators FAQにあるので、そこで ``VT'' を検索してください。
DEC の制御コード (16 進数) の表です。VT2xx 以降の端末で動作します。CSI はほぼ共通です。
ACRONYM FULL_NAME HEX REPLACES
IND Index (down one line) 84 ESC D
NEL Next Line 85 ESC E
RI Reverse Index (one line up) 8D ESC M
SS2 Single Shift 2 8E ESC N
SS3 Single Shift 3 8F ESC O
DCS Device Control String 90 ESC P
CSI Control Sequence Introducer) 9B ESC [
ST String Terminator 9C ESC \
-->
短縮 説明 HEX 置換
IND Index (down one line) 84 ESC D
NEL 次行 85 ESC E
RI Reverse Index (one line up) 8D ESC M
SS2 Single Shift 2 8E ESC N
SS3 Single Shift 3 8F ESC O
DCS デバイス制御文字 90 ESC P
CSI 制御シーケンスの開始 9B ESC [
ST 終端文字 9C ESC \
これらのシーケンスは端末からの報告を要求するためにホストから送られる要 求として普通は使用されます。端末は現在の状態をホストに示すためにある値 を埋め込んだ報告データ (実際は別なエスケープシーケンス) をホストに送り 返します。あるケースでは、要求しなくてもホストへ送られることがあります。 端末の設定が終了したような場合です。デフォルトでは端末からの自発的な報 告は送られません。
カーソルはホストから次の文字を受信したら表示されます。ほとんどのカーソ ルの動きは説明不要でしょう。``インデックス カーソル'' とはカーソルをあ る行へ移動することです。カーソルの動きには、``4 文字文左へ移動'' のよ うに相対的な移動か、``3 行 4 列目に移動'' のように絶対的な移動がありま す。絶対的な移動は ``ダイレクト カーソル ポジショニング'' とか ``ダイ レクト カーソル アドレッシング'' と呼んでいます。
ホームポジションは 1 行 1 列 (インデックスは 1 から始まる) です。しかし 物理画面上でのホームポジションは決して明確ではありません。``カーソル原 点モード'' が ``相対位置モード'' なら、ホームポジションは画面の左端の スクロール領域の先頭 (画面の先頭である必要はない) になります。``絶対位 置モード'' が設定されていたら (上記 2 つのモードのどちらも設定されてな いのと同じ)、ホームポジションは画面の左上隅になります古い端末では、`` カーソル原点モード'' が設定されていると、相対位置という解釈になります。
ページの説明をご覧ください。ページを処理する幾つかの エスケープシーケンスがあります。テキストは、あるページから別なページへコピー され、カーソルをページからページへ移動します。ページは自動で切り替ったり、切 り替わらなかったりします。画面 (ページ 1) がいっぱいなったら、ホストからの データはページ 2 に移ります。カーソルは一度に 1 ページにのみあって、端 末に送られてくる文字が次のページに移るのです。2 ページ目が画面表示され ていなかったら、端末が受信した新しいテキストはメモリに書き込まれますが、 表示はされません (端末がそのページに切り替えるまでは)。