ANSI.SYS(アンシ・シス)は、ANSIエスケープシーケンスによるコンソールの拡張機能を提供するMS-DOSのデバイスドライバである。「コードおよび文字セットに関するANSI X3L2技術委員会(「X3委員会」)」によって提案されたテキスト端末制御規格(のサブセット)に基づいた制御機能を提供することからその名がある。(なお、PC-9801環境では標準(MS-DOS内蔵)のドライバが対応していたことから一般的ではなかった)
ANSI.SYSを使うには、CONFIG.SYS(Windows NT系のWindowsではCONFIG.NT)に次のような行を追加する:
device=(drive:)(path)ANSI.SYS
ここで、(drive:)および(path)は、ANSI.SYSの存在する場所(ディレクトリ)のドライブレターとパスである。
ANSI.SYSが一度読み込まれると、画面上のカーソルや文字の色を変更するコード・シーケンスを有効にしたり、あるいはソフトウェア・プログラムでカーソルを上下の行に移動させたり、テキストを点滅させたり、といったテキストグラフィックス機能が使えるようになる。テキストを16の異なる色(前景色)で、8つの背景色と共に表示することもできる。さらに、インストールされたビデオカードに依存するが、標準の80x25テキストモードから多くの異なるグラフィックモード(例えば320x200、640x200、40桁のテキストモード)にビデオモードを変更することができる。
ANSI.SYSの興味深い機能の一つは、複雑なコマンドのためのショートカットやマクロとして動作するよう、キーボード上の任意のキーの再定義ができることである。
しかし、再定義機能は(ANSI.SYSに限らず、この種の高機能な端末制御機能一般に言えることであるが)便利な反面、悪質なシーケンスを仕込んだ、俗に「ANSI爆弾」と呼ばれる、一種のマルウェアとも言えるテキストファイルに悪用される危険もある機能である。多くのMS-DOS用アンチウイルスソフトウェアは、例えば、ファンクションキーF3がDEL *.*やFORMAT C:に書き換えられたり、(NOを意味する)NキーがYに書き換えられたり、というような危険な改変がされていないことを確認する。
ANSI.SYSはBIOSコールで実装されていたため、動作が非常に遅いこともあった。後継のソフトウェアには、BIOSを回避し、直接ビデオメモリにマッピングしてコンソールの機能を自分自身で提供しているものもあった(「MS-DOS用」だが、いわゆる「MS-DOS汎用」でなく「IBM PC専用」なプログラムがフルスクリーン表示を行った方法と同じである)。概してこれらの後継ソフトウェアはキーの再配置機能を削除し、「ANSI爆弾」による脅威を除去している。
以下のMicrosoftのシステムに添付されている。
その他、IBM PC DOSやDR-DOSなど、マイクロソフト以外から提供されているMS-DOSと同等な環境にもある。
ANSI.SYSは、カーソルと色の管理機能を使用するいくつかのソフトウェアを実行するために必要だった。また、command.comプロンプトの中で複雑なカラー・コードを実現するために使われることもあった。これらよりはるかに目立ったANSI.SYSの使用法は電子掲示板で見られた。 ANSIエスケープシーケンスは電子掲示板でアスキーアートより精巧なテキストグラフィックスを送ったり、多くのオンラインゲームで使用された方法でカーソルを制御したりといった用途に使われた。
ANSI.SYSに特有のエスケープシーケンスを次にいくつか挙げる。
エスケープシーケンス | 機能 |
---|---|
CSI = n h | スクリーンモードのセット |
CSI = n l | スクリーンモードのリセット |
CSI code ; param [ ; param ] p | キーの再定義 |
モード | 説明 | モード | 説明 |
---|---|---|---|
0 | 40 × 25 モノクロ | 1 | 40 × 25 カラー |
2 | 80 × 25 モノクロ | 3 | 80 × 25 カラー |
4 | 320 × 200 カラー | 5 | 320 × 200 モノクロ |
6 | 640 × 200 モノクロ | 14 | 640 x 200 カラー(16色グラフィックス) |
13 | 320 x 200 カラー(グラフィックス) | 19 | 320 x 200 カラー(256色グラフィックス) |
15 | 640 x 350 モノクロ(2色グラフィックス) | 16 | 640 x 350 カラー(16色グラフィックス) |
17 | 640 x 480 モノクロ(2色グラフィックス) | 18 | 640 x 480 カラー(16色グラフィックス) |
7 | 行末でワードラップする |