ANSI.SYS は、 DOSファミリのオペレーティング システムのデバイス ドライバであり、 ANSI エスケープ シーケンスを通じて追加のコンソール機能を提供します。ANSI X3L2 コードおよび文字セット技術委員会 (「X3 委員会」) によって提案されたテキスト端末制御標準のサブセットに部分的に基づいています。
デフォルトではインストールされておらず、非常に遅いことで有名だったため、それを利用するソフトウェアはほとんどなく、代わりにIBM PCハードウェアを直接操作する必要がありました。これを変更するために、 ANSI.COM [1] 、NANSI.SYS [2]、ANSIPLUS.EXE [3]など、適度な速度で動作するサードパーティの代替品がいくつか作成されました。[サードパーティのソースが必要]
使用法
DOS でANSI.SYS を使用するには、 CONFIG.SYS (またはWindows NTベースのバージョンのWindowsではCONFIG.NT ) ファイルに次の行を追加します。
- デバイス=ドライブ: \パス\ANSI.SYSオプション
ここで、drive:とpath は、ファイルANSI.SYSがあるディレクトリへのドライブ文字とパスです。optionsは、動作を制御するためのオプションのスイッチです。ANSI.SYSは、 DEVICEHIGH / HIDEVICEを介して上位メモリにロードすることもできます。
- /Kは標準のキーボードBIOS機能ではなく拡張キーボードBIOS機能(INT 16h )を使用します[4]これによりF11キーとF12キーが機能するようになりました。
- /L行数を強制する
- /Rスクリーンリーダーをサポートするために行スクロールを調整します[4]
- /Sまたは/SCREENSIZE画面サイズを設定する
- /Xは標準コードに依存しない拡張キーコードの再定義をサポートする[4]
機能性
このドライバを使用すると、標準出力に書き込むプログラムは、エスケープ シーケンスを記述して、VGA 互換テキスト モードで使用できる 16 のテキスト前景色と 8 の背景色を使用したり、テキストを点滅させたり、画面上のカーソルの位置を変更したり、画面を空白にしたりできます。また、ビデオ モードを標準の 80×25テキスト モードからさまざまなグラフィック モード (たとえば、テキストをピクセルとして描画する 320×200 グラフィック モード。ただし、ANSI.SYS では個々のピクセルのオン/オフを切り替えることはできません) に変更することもできます。
標準のANSI.SYSは、エスケープシーケンスをBIOS呼び出しにマッピングするため、非常に低速です(画面に文字を表示してカーソルを右に移動するには2回の呼び出しが必要になるように設計されていました)。いくつかの企業は、フルスクリーンユーザーインターフェイスを持つほとんどのDOSプログラムと同様に、 ビデオメモリと直接インターフェイスするNANSI.SYS [2]などのサードパーティの代替品を製造しました。
COMMAND.COMはこのドライバが使用されているかどうかを確認し、BIOS呼び出しの代わりにエスケープシーケンスを使用するようにCLSコマンドを変更しました。 [5]
キーボードの再マッピング
ANSI.SYSの興味深い (誤った) 機能は、複雑な命令のショートカットやマクロを実行するためにキーボードの任意のキーを再マップできることです。特殊なエスケープ シーケンスを使用すると、文字コード マッピングを持つ任意のキーストロークを定義して、任意のキーストロークのシーケンスをシミュレートできます。 [6]これは、悪質なキーボード再マップを組み込んだテキスト ファイルから単純なトロイの木馬を作成するために使用されました。これは「ANSI 爆弾」として知られています。ユーザーをこれから保護するために、いくつかの製品がリリースされました。
- ANSI.SYSの代替品の多くは、キーの再マッピング機能を無効にするコマンドラインスイッチをサポートしています。たとえば、Datalight ROM-DOS [7]の/S(Secure)オプションやFreeDOSのNANSI.SYS [2]などです。ANSIPLUSなどの他のANSIドライバも、キーの再定義を無効にするように設定できます。[3]
- いくつかの代替品は意図的にキーボードの再マッピング機能をサポートしないように設計されました。[8] [9]
- PKWAREは、終了して常駐するプログラムPKSFANSI(PK Safe ANSI)を開発しました。これは、キーボード再マッピングエスケープコードが標準出力に書き込まれるときにそれをフィルタリングします。 [10]これにより、ユーザーはテキストファイルからいくつかの有用な再マッピングをロードし、PKSFANSIを実行して、悪意のある可能性のある再マッピングをさらに防ぐことができるという利点があります。
発生
ANSI.SYSは、デバイスドライバをサポートするオペレーティングシステムの最初のバージョンであるMS-DOS 2.0で登場しました。 [11]これは、その後のすべてのバージョンのMS-DOSでサポートされました。また、 IBM PC DOSやDR-DOSなど、多くの非Microsoft DOSシステムにも存在します。[12]
ANSI.SYSは、カーソルや色の制御機能を使用するソフトウェアを実行するために必要でした。[12]また、 COMMAND.COMプロンプトで複雑なカラーコードを有効にするためにも使用できました。これらの用途は、BBSでのANSI.SYSの使用によって影を潜めました。ANSIエスケープシーケンスは、BBSがASCIIアートよりも複雑なテキストグラフィックを送信できるようにしたり、多くのオンラインゲームや同様の機能で使用される方法でカーソルを制御したりするために使用されました。
Windowsのほとんどのバージョンでは、 ANSIエスケープコードを有用な形でサポートしていませんでした(一部のバージョンではMSDOSエミュレーションで使用できました)。Windows 10では、同様のエスケープシーケンスのサポートがWin32コンソール(テキストターミナルウィンドウ)に組み込まれましたが、フラグを設定することでWindows API関数を使用してアクティブ化する必要があります。[13]SetConsoleModeENABLE_VIRTUAL_TERMINAL_PROCESSING
特徴
CSI(Control Sequence Introducer)は、一般的な2バイトのエスケープリードインシーケンス「ESC [」(つまり、0x1B 0x5B)のプレースホルダーです。[12] ANSI規格では、代替の1バイトCSIコード0x9Bも定義されていますが、ANSI.SYSではサポートされていません(このコードは代わりにCP437からセント記号⟨¢⟩を取得しました)。
標準DOS ANSI.SYSドライバは、ANSIエスケープシーケンスの以下のサブセットのみをサポートしています。[12]
ANSI.SYSの実装に固有のエスケープ シーケンスもいくつかあります。これらは、他のオペレーティング システムの ANSI コンソールでは通常サポートされていません。
一部の DOS 実装では、7 を超えるビデオ モードは文書化されていません。マルチユーザー DOSでは、 PCTERM と組み合わせて使用できる唯一の有効な引数は 7 です。
参照
注記
- ^ ab 引数 0、1、2 は、日本語版のMS-DOSおよびPC DOS ANSI.SYSでのみサポートされ、区別されます。欧米版のANSI.SYSでは、これらはサポートされず、区別もされません。ただし、これらはMultiuser DOSでもサポートされます。
- ^ abcd リードイン プレフィックス '>' は、特別な日本語表示モードにアクセスするために、日本語版のMS-DOS、PC DOS、およびDR-DOS ANSI.SYSでのみサポートされています。
- ^ この非標準エスケープ シーケンスは、MS-DOSおよびPC DOS ANSI.SYSでのみサポートされています。ANSI.SYS /Xスタートアップ オプションと同様に、実行時に拡張キーボード サポートを有効または無効にするために使用できます。
- ^ ab 行を挿入および削除するためのこれらの非標準エスケープ シーケンスは、日本語版のMS-DOSおよびPC DOSでのみサポートされています。また、欧米版のMultiuser DOSでもサポートされていますが、DR-DOS ではサポートされていません。
- ^ ab 韓国語と英語のキーボード入力モードを切り替えるこれらの非標準エスケープ シーケンスは、韓国語版のMS-DOS、PC DOS、およびDR-DOS ANSI.SYSでのみサポートされています。
- ^ ab CON:デバイスへの出力を無効にしたり再度有効にしたりするためのこれらの非標準エスケープ シーケンスは、DR-DOS 7.02以降のANSI.SYSでのみサポートされています。これらは、たとえばDR-WebSpyderブート フロッピーと組み合わせて、ブート中にコンソール出力をミュートするために使用されます。
- ^ 値 7 は、行末での折り返しを有効にする ( SMを使用) か無効にする ( RMを使用) ために使用されます。このオプションを有効にすると、余分な文字が次の行に折り返されますが、折り返しが無効になっている場合は、これらの文字は失われます。
- ^ abビデオ モード 114 および 115 は 、DR DOS 6.0、Novell DOS 7以降に含まれるANSI.SYSの日本語DOS/V版でのみサポートされます。
参考文献
- ^ Mefford, Michael (1989-02-07). 「ANSI.com: ここからダウンロード」. PC Magazine . 2011-08-10閲覧。
- ^ abc Kegel, Daniel; Almy, Tom; Auer, Eric (1999-02-28). 「NANSI – 拡張 MS-DOS コンソール ドライバー」 4.0. Dan Kegel's Web Hostel。2018-05-19 時点のオリジナルよりアーカイブ。2011-08-10取得。
- ^ ab Sweger, Kristofer (2007) [2000]. 「ANSIPLUS の設定」。2018 年 10 月 4 日時点のオリジナルよりアーカイブ。2018年 10 月 4 日閲覧。
- ^ abc 「ANSI.SYS の使用ガイド」。2007 年 6 月 23 日時点のオリジナルよりアーカイブ。2017 年 9 月 11 日閲覧。
- ^ ポール、マティアス R. (1997-07-30) [1994-05-01]. NWDOS-TIP — Novell DOS 7 に関するヒントとコツ、詳細、バグ、回避策を含む Blick です。リリース 157 (ドイツ語) (第 3 版)。 2017-09-10 のオリジナルからアーカイブ。2014 年 8 月 6 日に取得。
{{cite book}}:|work=無視 (ヘルプ) (注: NWDOSTIP.TXT は Novell DOS 7 および OpenDOS 7.01 に関する包括的な作業であり、多くの文書化されていない機能と内部の説明が含まれています。これは、2001 年まで維持され、当時多くのサイトで配布されていた、著者のさらに大規模なMPDOSTIP.ZIPコレクションの一部です。提供されているリンクは、HTML に変換されたNWDOSTIP.TXTファイルの古いバージョンを指しています。) [1] - ^ 「ANSI キーボード コード - ANSI.SYS キーと拡張キー コード」。µVGA - VGA マイクロコントローラ インターフェイス。SECONS Ltd. 2012 年。2017 年 9 月 11 日のオリジナルからアーカイブ。2017年 9 月 11 日取得。
- ^ Datalight, Inc. ; GPvNO (2005 年 4 月) [1999]. 「Datalight ROM-DOS ユーザーズ ガイド」(PDF) . Datalight, Inc. 3010-0200-0716 . 2018 年 9 月 16 日閲覧。
- ^ 「PTS-DOS 2000 Pro ユーザーマニュアル」(PDF)。ブッギンゲン、ドイツ: Paragon Technology GmbH 。1999年。 2018年5月12日時点のオリジナルよりアーカイブ(PDF) 。2018年5月12日閲覧。
- ^ ギュンター、イェンス;エルンスト、トビアス (2004-04-25) [1996]。エルゼッサー、ヴォルフガング (編)。 「Inoffizielle deutschsprachige PTS-DOS-FAQ (PTS/FAQD)」 [ドイツ語の非公式 PTS-DOS FAQ] (ドイツ語) 。2018年10月2日に取得。
- ^ Massingill, Michael D. Pearson, Dave (編). 「PK SAFE ANSI (PKSFANSI.COM)」。2017年9月11日時点のオリジナルよりアーカイブ。2017年9月11日閲覧。
- ^ フィールド、ティム (1983 年 11 月)。「PC DOS 2.0 用インストール可能デバイス ドライバー - IBM PC の内部」。BYTE。8 ( 11 ): 188–196。2016年 3 月 19 日閲覧。
- ^ abcd 「第9章: システムの構成」。Caldera , Inc. 1998年。2017年9月10日時点のオリジナルよりアーカイブ。2017年9月10日閲覧。(注: DR-DOS 7 ユーザー ドキュメント、ANSI.SYSエスケープ シーケンスの説明 (不完全))
- ^ 「コンソール仮想端末シーケンス」。Windowsコンソール。2022 年 9 月 20 日。
外部リンク
- 「DOS でプロンプトや画面の色を変更するにはどうすればいいですか?」インディアナ大学。2010 年 10 月 25 日。2017 年 9 月 11 日にオリジナルからアーカイブ。2017年 9 月 11 日に取得。
- Cambus, Frederic (2017-04-19). 「ANSi/BiN/ADF/iDF/TUNDRA/XBiN ファイルを PNG 画像に変換するためのツール セット」。2017 年 9 月 11 日にオリジナルからアーカイブ。2017 年9 月 11 日に取得。
