ANSIエスケープシーケンスは、ビデオテキスト端末端末エミュレータ上でカーソル位置、色、フォントのスタイル、その他のオプションを制御するためのインバンド記号英語版の規格です。 バイトの特定のシーケンス(ほとんどはASCIIエスケープ文字括弧で始まる)は、テキストに埋め込まれています。端末はこれらのシーケンスを、文字通り表示するテキストではなく、コマンドとして解釈します。

ANSI X3.64 (ISO/IEC 6429)
システムモニター「htop」の出力。これはncursesアプリケーションであり、Template:Ctrlやその他のANSI/ISO制御シーケンスを使用しています。
規格
区分 ISO/IEC 2022ベースの制御コード英語版および制御シーケンスセット
関連エンコーディング

その他の制御機能規格
テンプレートを表示

ANSIシーケンスは、ベンダー固有のシーケンスを置き換えるために1970年代に導入され、1980年代初頭までにコンピュータ機器市場で広く普及しました。21世紀にはハードウェアテキスト端末はますます稀になっていますが、ターミナルエミュレータとコマンドコンソールの大部分がANSI規格の少なくとも一部を解釈するため、ANSI規格の関連性は依然として残っています。

歴史

編集

ほとんど全てのビデオ端末メーカーは、画面上の任意の位置にカーソルを置くなどの操作を実行するために、ベンダ固有のエスケープシーケンスを追加しました。一例としてVT52英語版端末があり、これはESC文字、Y文字、そしてx,y位置に32を加えた数値に等しい数値を表す2文字(ASCIIスペース文字から始まり、制御文字を避けるため)を送信することで、画面上のx,y位置にカーソルを置くことができました。Hazeltine 1500英語版も同様の機能を持ち、~DC1、そしてコンマで区切られたXとYの位置を使用して呼び出されました。2つの端末はこの点で同一の機能を持っていましたが、それらを呼び出すためには異なる制御シーケンスを使用する必要がありました。

端末ごとにこれらのシーケンスが異なっていたため、プログラムがどの端末でも同じAPIを使用して動作できるように、termcap(「terminal capabilities」、端末機能)のような手の込んだライブラリやtput英語版のようなユーティリティを作成する必要がありました。加えて、これらの端末の多くは、(行や列などの)数値を文字のバイナリ値として送信する必要がありました。一部のプログラミング言語や、内部的にASCIIを内部で使用していなかったシステムでは、数値を正しい文字に変換することは往々にして困難でした。

ANSI規格は、すべての端末が使用するコマンドセットを作成し、すべての数値情報をASCII番号として送信することを要求することで、これらの問題に対処しようとしました。このシリーズの最初の規格はECMA-48であり、1976年に採用されました[1]。これは一連の文字コード規格の継続であり、最初の規格は1965年のECMA-6であり、ISO 646の起源となった7ビット規格です。「ANSIエスケープシーケンス」という名前は、ANSIがANSI X3.64を採用した1979年に由来します。ANSI X3L2委員会は、ECMA委員会TC 1と協力して、ほぼ同一の規格を作成しました。これらの2つの規格は、国際規格であるISO 6429に統合されました[1]。1994年、ANSIは国際規格を支持して規格を撤回しました。

 
DEC VT100 ビデオ表示端末

これらのシーケンスをサポートする最初の一般的なビデオ端末は、1978年に導入されたDigital VT100であった[2]。このモデルは市場で非常に成功し、さまざまなVT100クローンを生み出した。その中でも最も初期で人気があったのは、1979年のZenith Z-19英語版であり、はるかに手頃な価格であった[3]。その他には、Qume英語版 QVT-108、Televideo英語版 TVI-970、Wyse英語版 WY-99GT、および他の多くのブランドでさまざまな互換性を持つオプションの「VT100」または「VT103」または「ANSI」モードが含まれていた。これらの普及は徐々に、より多くのソフトウェア(特に電子掲示板やその他のオンラインサービス英語版)がエスケープシーケンスが機能することを前提とするようになり、ほとんどすべての新しい端末とエミュレータプログラムがそれらをサポートするようになった。

Select Graphic Rendition parameters

編集
  1. ^ a b Standard ECMA-48: Control Functions for Character-Imaging I/O Devices” (1979年8月). 2025年1月30日閲覧。
  2. ^ Digital's Video Terminals”. VT100.net (2006年). 2011年8月17日閲覧。
  3. ^ Heathkit Company (1979年). “Heathkit Catalog 1979”. Heathkit Company. 2012年1月13日時点のオリジナルよりアーカイブ。2011年11月4日閲覧。