MS-DOSは16Bitで動作してますが、DPMI(DOS protected mode interface)という仕組みで32Bitのコードを実行することができました。
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に替えているようです。