ANSI.SYSとは
ANSI.SYSは、
MS-DOSオペレーティングシステムにおいて、ANSIエスケープシーケンスを用いた
コンソール制御を可能にする
デバイスドライバです。ANSIエスケープシーケンスとは、テキスト
端末の制御規格であるANSI X3.64をベースにした制御コードのことで、これを用いることで画面表示の様々な操作が可能になります。特にPC-9801環境では標準搭載のドライバで対応していたため、ANSI.SYSは一般的ではありませんでした。
ANSI.SYSの導入
ANSI.SYSを使用するには、
CONFIG.SYSファイル(Windows NT系ではCONFIG.NT)に以下の行を追加する必要があります。
device=(drive:)(path)ANSI.SYS
ここで、`(drive:)`と`(path)`は、ANSI.SYSファイルが格納されているドライブと
ディレクトリのパスを表します。
ANSI.SYSの機能
ANSI.SYSが正常に読み込まれると、以下の様な様々な機能が利用可能になります。
カーソル制御: カーソルの移動、位置指定などが可能です。
文字色変更: 前景色16色、背景色8色を組み合わせたカラー表示が可能です。
テキスト装飾: テキストの点滅などの効果を付与できます。
グラフィックモード変更: ビデオカードによっては、テキストモードからグラフィックモードへの変更が可能です。
キーボードリマップ: キーボードの任意のキーに、複雑なコマンドのショートカットやマクロを割り当てることができます。
これらの機能により、ソフトウェアはテキストベースながらも多彩な表現を行うことが可能になります。
キーボードリマップとセキュリティ
キーボードリマップ機能は非常に便利である一方、悪意のあるANSIエスケープシーケンスを埋め込んだファイル(「ANSI爆弾」)による悪用の危険性がありました。例えば、ファンクションキーF3に`DEL .
`を、`N`キーに`Y`を割り当てるなど、ユーザーの意図しない操作を実行させることが可能でした。そのため、多くのMS-DOS用アンチウイルスソフトは、これらの危険な改変を検知する機能を持っていました。
ANSI.SYSの限界と後継
ANSI.SYSはBIOSコールを使用して実装されていたため、動作が遅いという欠点がありました。このため、ビデオメモリに直接書き込むことで高速なコンソール制御を実現するソフトウェアも登場しました。これらのソフトウェアは、キーボードリマップ機能を削除することで、ANSI爆弾の脅威を取り除きました。
ANSI.SYSが添付されていたOS
ANSI.SYSは、以下のMicrosoft製OSに標準で添付されていました。
MS-DOS
Windows 95
Windows 98
Windows NT
Windows 2000
Windows XP
Windows Server 2003 (x86版)
Windows Vista
また、IBM PC DOSやDR-DOSなど、マイクロソフト以外のMS-DOS互換環境にも搭載されていました。
その他の利用例
ANSI.SYSは、以下のような用途で利用されていました。
カーソルや文字色を制御するソフトウェアの実行
`command.com`プロンプトでの複雑なカラーコードの実現
電子掲示板での高度なテキストグラフィックス表現
オンラインゲームでのカーソル制御
ANSI.SYSの特色
ANSI.SYSに特有のエスケープシーケンスには、以下のようなものがあります。
カーソルの移動: `ESC[nA`, `ESC[nB`, `ESC[nC`, `ESC[nD`
画面クリア: `ESC[2J`
文字色設定: `ESC[nm` (nに色番号を指定)
これらのエスケープシーケンスを組み合わせることで、様々なテキスト表現が可能になりました。
まとめ
ANSI.SYSは、
MS-DOS時代において、テキスト表示を豊かにする上で重要な役割を果たした
デバイスドライバでした。
カーソル制御や文字色変更、キーボードリマップなどの機能は、当時のソフトウェア開発やユーザーエクスペリエンスに大きな影響を与えました。しかし、キーボードリマップ機能が悪用されるリスクもあり、後継のソフトウェアはより安全性を重視した設計となりました。ANSI.SYSの技術は、今日のテキストベースのインターフェースにもその影響が見られます。
外部リンク
ANSI.SYSを使ってDOSプロンプトを変更する(インディアナ大学)(英語)
ANSICON Windows (Vista, 7) におけるANSI.SYSの代替ソフト。32ビット、64ビットともにサポート。(英語)
ANSI.SYS利用ガイド(英語)
Ansilove/PHP ANSi/BiN/ADF/iDF/TUNDRA/XBiNファイルをPNG画像に変換するツールのセット(英語)
*
ANSIキーボードコード(MicroVGA)(英語)