次のページ 前のページ 目次へ

20. 付録 B: エスケープシーケンスのコマンド用語

これらは ``制御シーケンス'' とも呼ばれます。本章は不完全です (制御シー ケンスは沢山ありすぎてきっと永遠に完成しないでしょう)。この章はおそら く ``Text-Terminal-Programming-HOWTO'' と呼ばれるはずの文書の一部にな るか、それのリファレンスとなるはずです。

ANSI エスケープシーケンスの例をあげると、ESC [ 5B はカーソルを 5 行下 に移動する命令です。ESC はエスケープ文字を表します。シーケンスに含まれ る 5 はパラメータです。もしそれが 7 だったら 7 行下へ移動するでしょう。 ``x 行下へ移動 : ESC [ xB'' のエスケープは理解しやすいものです。でも ` `第 3 のデバイスの属性を要求する'' なんていう専門的なコマンドになると ちょっとわかり難い。この章ではエスケープシーケンスのコマンドで使用され る不可解な 専門用語について説明してみましょう。完全なリスト (ANSI 標準のエス ケープシーケンスコードを含む) は、``wish list'' プロジェクトに委ねます。 オプションとパラメータのセットアップを使って端 末を設定するときなどのように、多くのエスケープシーケンスは同じことをするので 、ここではそのようなオプションは繰り返して説明しません。

20.1 エスケープシーケンスリスト

各種端末の沢山の (でも全部ではない) エスケープシーケンスのリストについ ては、 Escape Seqs.; N. AmericaEscape Seqs.; Europeをご覧なさい。 これらは端末エミュレーションで使用されますが、通信用リアルタイム端末に 関しては常に当てはまるものではありません。 VT のリスト (保守されてませ ん) が Emulators FAQにあるので、そこで ``VT'' を検索してください。

20.2 8 ビット制御コード

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 \

20.3 プリンタ Esc

  • 自動印刷 オン / オフ : オンなら、ホストからのデータは端末のプリンタポ ートへも送られます (端末のスクリーンにも表示されます)。
  • プリンタ制御 オン / オフ : オンなら、ホストからのデータはプリンタにだ け送られます (端末の画面にはなにも表示されません)。

20.4 報告

これらのシーケンスは端末からの報告を要求するためにホストから送られる要 求として普通は使用されます。端末は現在の状態をホストに示すためにある値 を埋め込んだ報告データ (実際は別なエスケープシーケンス) をホストに送り 返します。あるケースでは、要求しなくてもホストへ送られることがあります。 端末の設定が終了したような場合です。デフォルトでは端末からの自発的な報 告は送られません。

  • 状態要求 (動作状態の報告): VT100 の場合は ``正常です'' か ``異常です'' のどちらかとなります。
  • デバイス属性要求 : ``デバイス'' とは普通はプリンタのことです。プリンタ は接続されていますか ? 準備できてますか ?
  • 第 3 デバイス属性 (VT) 要求 : 応答として設定中であることを報告します。 第 3 デバイスとは 3 番目に接続している機器のことです (プリンタか補助ポ ートの機器 ??)。1 番目のデバイスとはホストコンピュータで、2 番目のデバ イスは端末のことです。
  • 端末パラメータの要求 : パリティ、通信速度、データ長などの設定値。これ はあまり意味のないことのように思える。なぜなら、ホストがこれらの値を知 らなければ端末と通信できないし、返事も返せないからです。

20.5 カーソルの移動

カーソルはホストから次の文字を受信したら表示されます。ほとんどのカーソ ルの動きは説明不要でしょう。``インデックス カーソル'' とはカーソルをあ る行へ移動することです。カーソルの動きには、``4 文字文左へ移動'' のよ うに相対的な移動か、``3 行 4 列目に移動'' のように絶対的な移動がありま す。絶対的な移動は ``ダイレクト カーソル ポジショニング'' とか ``ダイ レクト カーソル アドレッシング'' と呼んでいます。

ホームポジションは 1 行 1 列 (インデックスは 1 から始まる) です。しかし 物理画面上でのホームポジションは決して明確ではありません。``カーソル原 点モード'' が ``相対位置モード'' なら、ホームポジションは画面の左端の スクロール領域の先頭 (画面の先頭である必要はない) になります。``絶対位 置モード'' が設定されていたら (上記 2 つのモードのどちらも設定されてな いのと同じ)、ホームポジションは画面の左上隅になります古い端末では、`` カーソル原点モード'' が設定されていると、相対位置という解釈になります。

20.6 ページ (定義)

ページの説明をご覧ください。ページを処理する幾つかの エスケープシーケンスがあります。テキストは、あるページから別なページへコピー され、カーソルをページからページへ移動します。ページは自動で切り替ったり、切 り替わらなかったりします。画面 (ページ 1) がいっぱいなったら、ホストからの データはページ 2 に移ります。カーソルは一度に 1 ページにのみあって、端 末に送られてくる文字が次のページに移るのです。2 ページ目が画面表示され ていなかったら、端末が受信した新しいテキストはメモリに書き込まれますが、 表示はされません (端末がそのページに切り替えるまでは)。


次のページ 前のページ 目次へ

[