0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

PC-9801でDPMI

Last updated at Posted at 2021-06-23

MS-DOSは16Bitで動作してますが、DPMI(DOS protected mode interface)という仕組みで32Bitのコードを実行することができました。

DPMI.png

PC-9801ではMS-DOS 5.0AからDPMIが入っていました。

ハードディスクは無いのでフロッピーでDPMIが起動できるようにファイルをコピーしてみました。

A>dir

 ドライブ A: のディスクのボリュームラベルはありません.
 ディレクトリは A:\

COMMAND  COM    48402  92-11-11    0:00
HIMEM    SYS    11024  92-11-11    0:00
EMM386   EXE    91742  92-11-11    0:00
CONFIG   BAK      241  21-06-21   19:33
EXTDSWAP SYS    30858  92-11-11    0:00
DPMI     EXE   405566  92-11-11    0:00
DPMI     INI      440  21-06-22    1:40
DPMI     SYS    10591  92-11-11    0:00
CONFIG   SYS      118  21-06-22    0:40
D86MGRH  386    45433  92-11-11    0:00
D86MGRN  386    45945  92-11-11    0:00
DDDH     386    80444  92-11-11    0:00
DDDN     386    80956  92-11-11    0:00
DMCPD    386     9588  92-11-11    0:00
DPDH     386     9322  92-11-11    0:00
DPDN     386     9300  92-11-11    0:00
DPFD     386     9275  92-11-11    0:00
       17 個のファイルがあります.
   243712 バイトが使用可能です.

かろうじてHD 1.2Mフロッピー一枚に納まります

CONFIG.SYSはこうなっています。

FILES=30
SHELL=\COMMAND.COM /P /MSG
DEVICE=HIMEM.SYS
DEVICE=EMM386.EXE /P=352 /UMB /T=EXTDSWAP.SYS
DOS=HIGH,UMB

これでDPMIを起動するとプロテクトモードになります。

JWasmにあったサンプルコードをopen watcom v2でアセンブリしてEXEを作り実機で確認しました。

コードを見ると16bitで実行が始まり途中で32bitに替えているようです。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?