DOSエクステンダ
MS-DOSでアクセス可能なメモリ空間(コンベンショナルメモリ)は、最大でも640KB(PC/AT互換機およびPC-9800シリーズ等)から768KB (PC-H98等)であった。8086はアドレス空間が1Mバイトしか無かったため、最大で16Mバイトまで使用できる80286をインテルは発表するが、16Mバイトまでメモリが使用できる16ビットプロテクトモードをサポートしたのは、当初はOS/2等のマルチタスクOSだけであった。しかしながら80286や上位互換の80386は、マルチタスクOSを快適に使用するには速度不足であったし、当時のPCは複数のアプリケーションソフトウェアを同時に実行するには実装しているメモリが不足していた。そのため多くのユーザーはMS-DOSを利用しつづけたのである。
やがてMS-DOS上でメモリ容量が不足してくると、様々な方法でMS-DOSで利用可能なメモリ容量を拡張する試みがなされた。それらの内、80286で導入されたプロテクトモードを使用してアドレス空間の大きさそのものを拡張することにより、MS-DOS上でアプリケーションで利用可能なメモリ容量を拡張するソフトウェアがDOSエクステンダである。
386ASM/386LINK (PharLap Software社) - FM TOWNS用以外は、386|DOS-Extender SDK (日本国内では 386TOOLBOXという商品名で販売)にバンドルされていた
386|VMM (PharLap Software社) - 386|DOS-Extender 又は TNT|DOS-Extender (Ver.6以降) のオプションツールで、これらのDOSエクステンダと共に使用することにより、MS-DOS 上で 32ビット仮想記憶環境を構築する仮想記憶マネージャ
HIGH-C386、HIGH C/C++ (MetaWare社) FM TOWNSの標準Cコンパイラであり、富士通から様々なライブラリが提供されていた。
WATCOM C (WATCOM社)
NDP-Fortran386、NDP-C/C++、NDP-PASCAL (MicroWay社)
Lahey Fortran (Lahey社)
WIN32 SDK Cコンパイラ (Microsoft社) - WIN32 SDKに付属の32ビットCコンパイラ (MS-C Ver.
この時データサイズが大きくて、一度に通信バッファに読込みきれない場合には、CPUを再びリアルモードに切替えて、残りのデータを通信バッファに読み出すように再度MS-DOSにファンクションコールを発行して、ファイルデータの残りの部分の読み出しを行う。そしてデータサイズが極めて大きい場合には、このリアルモードとプロテクトモードの交互切替えの繰返しによるファイル上のデータのプロテクトメモリへの読込を行う。
このように、アプリケーションの実行中に何度もプロテクトモードとリアルモードの切替えが行われることもDOSエクステンダの特徴の一つである。
DOSエクステンダ起動時のプロテクトモードアプリケーションのプロテクトメモリへの読み出しも、上記と同様のシーケンスを経て行われる。 アプリケーションをプロテクトメモリに全て読み込み終えると、DOSエクステンダはCPUをプロテクトモードに切替え、アプリケーションを実行する。
アプリケーションが終了すると、確保したプロテクトメモリを全て開放しCPUをリアルモードへ切替えて、DOSエクステンダはMS-DOSアプリケーションとして終了する。
CPUをリアルモードからプロテクトモードに切替えることはCPU単体で行えるが、DOSエクステンダというものは基本的に機種依存するソフトウェアである。一つの実行ファイルで複数の機種に対応したDOSエクステンダも存在するが、それは対応する機種分だけ機種依存コードを内部に持っているだけのことである。
以下にDOSエクステンダの機種依存部分について記す。