dpmi_mpl.lzh ( Filesize: 15,180 )
これらは、 DPMI の機能を使い MS-DOS の COM形式プログラムを(そのまま)プ
ロテクトモードで実行させます。もちろん、全ての COM形式プログラムが保護モー
ドで実行可能なわけではありませんが、セグメント外アクセスを一度も行わない様
なものであれば結構実行可能です。(.EXE形式は実行できません、そのチェックも
行いませんので御用心)
また、 DPMIxMPL は少々面倒な保護モードへの切り替えを代行してくれますから
プログラムの先頭から(DPMI配下での)保護モードプログラムを書くことが出来ま
す。すなわち最初は MS-DOS の .COM と同様の形態からスタートし、プログラム中
で DPMI のルールに従いメモリセグメントを取得すれば、広大なプロテクトメモリ
の空間を自由にアクセスしたり、そこに実行を移すことが可能になります。
つまり、TASM等の 386命令をサポートしているアセンブラさえあれば、 MS-DOS
の .COM 形式の形をかることにより、特別なツール(DOS エクステンダーや専用リ
ンカ等)がなくても手軽に保護モードプログラミングの気分(!!)を味わうこと
が可能です。(もちろん本格的なものを書のはこれだけでは難しいですが・・・)
なお、 DPMIxMPL により、ユーザープログラムの先頭に制御が移った時の状態は、
.COM 形式のプログラムが起動直後に DPMI の機能をコールして保護モードに入っ
た場合とほぼ同等の環境となっています。すなわち、 CS と DS にはセグメントベ
ースが同じで共に 64k-1 bytes のセグメントリミットをもつセグメントのセレク
タ(値は違う)がロードされ、DS=SS で、デフォルトのアドレス属性が 16 ビット
の保護モード(特権レベルは利用している DPMI ホストに依存)で実行が開始され
ます。(割込処理は DPMI のデフォルトの設定のまま。)
ただし DPMI 配下では通常 ES には PSP セグメントのセレクタがセットされま
すが、DPMIxMPLではリアルモードの .COM との互換性を保つために、 ES の値は捨
てられ、 DS と同じセレクタがセットされます。
( .COM 形式では実際上問題が生じることはないと思います。)
ソフト名: | DPMIxMPL |
---|---|
動作OS: | MS-DOS |
機種: | 汎用 |
種類: | フリーソフト |
作者: | 村上 茂教 |