BochsでDOS+Win3.1

DOS+Win3.1の環境を動態保存したい。これまで何種類かの仮想PCソフトで試してきたが、なかなか満足のいく環境ができなかった。現時点ではBochsが自分の目的としては最適に近いことが分かった。

以下 bochsで作った IBM PC DOS J6.3/V (6.3C) + IBM WINDOWS 3.1J (3.1F) の環境。

bochs.bxrc抜粋
Win3.1付属のSVGAドライバで良ければvgaはcirrusの代わりにvbeを指定してもよい。VESA BIOS互換でないと表示が崩れるソフト(System Commander)がある。この時はvgaromimage、pciもあわせて変更する。display_libraryのtraphotkeysはwindowsで必須。cirrusを指定する場合はインボックスのSVGAドライバでは正しく動かないのでIBMのCirrus用ドライバを使う(「IBM PC300GL Cirrus Logic 5446 ビデオ・デバイス・ドライバー Ver.1.13n (Windows 3.1)」で公開されていたが、今は見当たらない)。PCDOS 2000J + Win3.1でも同一。

display_library: win32, options="traphotkeys"
memory: host=32, guest=32
romimage: file=".\BIOS-bochs-latest", address=0x00000000, options=none
vgaromimage: file=".\VGABIOS-lgpl-latest-cirrus"
pci: enabled=1, chipset=i440fx, slot1=cirrus
vga: extension=cirrus, update_freq=30, realtime=0
floppya: type=1_44, 1_44=".\boot.img", status=ejected, write_protected=0
floppyb: type=1_2
ata0: enabled=true, ioaddr1=0x1f0, ioaddr2=0x3f0, irq=14
ata0-master: type=disk, path=".\c.img", mode=flat, cylinders=0, heads=16, spt=63, sect_size=512, model="Generic 1234", biosdetect=auto, translation=auto
ata1: enabled=true, ioaddr1=0x170, ioaddr2=0x370, irq=15
ata1-master: type=cdrom, path=".\dos.iso", status=inserted, model="Generic 1234", biosdetect=auto
pci: enabled=1, chipset=i440fx, slot1=cirrus
vga: extension=cirrus, update_freq=30, realtime=0
cpu: count=1, ips=100000000, model=pentium_mmx, reset_on_triple_fault=1, cpuid_limit_winnt=0, ignore_bad_msrs=1, mwait_is_nop=0
print_timestamps: enabled=0
port_e9_hack: enabled=0
private_colormap: enabled=0
clock: sync=slowdown, time0=local, rtc_sync=0
keyboard: type=mf, serial_delay=250, paste_delay=100000, keymap=".\sdl-pc-jp106.map", user_shortcut="ctrl-alt-del"
mouse: type=imps2, enabled=false, toggle=ctrl+alt
sound: waveoutdrv=win, waveout=none, waveindrv=win, wavein=none, midioutdrv=win, midiout=none
parport1: enabled=true, file=none
com1: enabled=true, mode=null
sb16: enabled=true, midimode=1, wavemode=1, loglevel=0, dmatimer=600000
ne2k: enabled=true, ioaddr=0x300, irq=3, mac=b0:c4:20:00:00:01, ethmod=win32, ethdev="\Device\NPF_{5BF635BB-D9EA-4E00-9E70-545C09E9A61D}", script=none, bootrom=none
usb_uhci: enabled=1, port1=none, options1=none, port2=none, options2=none

CONFIG.SYS
EMM386.EXEはPC DOS J6.3/VならPTF 6.3Cを適用したものを使う。$FONT.SYSはEMM386の後でUMB読み込みでも良い(DOS6.3の初期設定はINT15H方式)。ODDドライバはWin98などに付属のOAKCDROM.SYSが必要で、IBMIDECD.SYS、TEAC_CDI.SYSだとメディア交換の検出ができなかったりCtrl-Cでフラッシュが必要とか実用が難しい。

BUFFERS=20
FILES=30
STACKS=9,256
DOS=HIGH,UMB
COUNTRY=081,932,C:\DOS\COUNTRY.SYS
SHELL=C:\DOS\COMMAND.COM /P /E:512
DEVICE=C:\DOS\$FONT.SYS
DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE RAM
DEVICEHIGH=C:\DOS\SETVER.EXE
DEVICEHIGH=C:\DOS\$DISP.SYS
DEVICEHIGH=C:\DOS\$IAS.SYS
DEVICEHIGH=C:\DOS\ANSI.SYS /X
DEVICEHIGH=C:\DOS\POWER.EXE
DEVICEHIGH=C:\UTY\OAKCDROM.SYS /D:CDROM1
INSTALL=C:\DOS\IBMMKKV.EXE /M=S /Z=4 /C /L /J=90 /S=C:\DOS\MULTDICT.PRO /U=C:\$USRDICT.DCT

AUTOEXEC.BAT
キーボードドライバは日本語106キー対応のBochsが必要。そうでなければ101キーの設定にする。

@ECHO OFF
PROMPT $P$G
PATH C:\WINDOWS;C:\DOS;C:\UTY
SET COMSPEC=C:\DOS\COMMAND.COM
SET TEMP=C:\TEMP
SET TMP=C:\TEMP
LH C:\DOS\MSCDEX.EXE /D:CDROM1
LH C:\DOS\SMARTDRV.EXE
LH C:\DOS\KEYB.COM JP,932,C:\DOS\KEYBOARD.SYS
LH C:\DOS\DOSKEY.COM /INSERT
LH C:\DOS\MOUSE.COM
SET IBMAV=C:\DOS
rem CALL C:\DOS\IBMAVDR.BAT C:\DOS\

CONFIG.PS2

BUFFERS=20
FILES=30
DOS=HIGH,UMB
COUNTRY=001,437,C:\DOS\COUNTRY.SYS
SHELL=C:\DOS\COMMAND.COM /P /E:512 /H
DEVICE=C:\DOS\HIMEM.SYS
DEVICE=C:\DOS\EMM386.EXE RAM
DEVICEHIGH=C:\DOS\SETVER.EXE
DEVICEHIGH=C:\DOS\ANSI.SYS /X
DEVICEHIGH=C:\DOS\POWER.EXE
DEVICEHIGH=C:\DOS\DISPLAY.SYS CON=(EGA,437,2)
DEVICEHIGH=C:\UTY\OAKCDROM.SYS /D:CDROM1

AUTOEXEC.PS2
ISOフォントを使う設定。

@ECHO OFF
PROMPT $P$G
PATH C:\DOS;C:\DOS\PS2;C:\UTY
SET COMSPEC=C:\DOS\COMMAND.COM
SET TEMP=C:\TEMP
SET TMP=C:\TEMP
MODE CON CP PREP=((437 850) C:\DOS\ISO.CPI)
MODE CON CP SEL=437
LH C:\DOS\NLSFUNC.EXE C:\DOS\COUNTRY.SYS
LH C:\DOS\KEYB.COM JP,437,C:\DOS\KEYBOARD.SYS
LH C:\DOS\MSCDEX.EXE /D:CDROM1 /L:G
LH C:\DOS\SMARTDRV.EXE
LH C:\DOS\DOSKEY.COM /INSERT
LH C:\DOS\MOUSE.COM
SET IBMAV=C:\DOS\PS2
rem CALL C:\DOS\PS2\IBMAVDR.BAT C:\DOS\PS2\

この環境でDOS/V Extension 2.0はVGAとSuperVGAドライバだけ動く。Cirrus、ET4000などのドライバは動かない。

BochsでDOS+Win3.1」への1件のフィードバック

  1. ピンバック: Windows 3.1のセットアップファイル差異にハマる。 – の回想録

コメントを残す

以下に詳細を記入するか、アイコンをクリックしてログインしてください。

WordPress.com ロゴ

WordPress.com アカウントを使ってコメントしています。 ログアウト /  変更 )

Google フォト

Google アカウントを使ってコメントしています。 ログアウト /  変更 )

Twitter 画像

Twitter アカウントを使ってコメントしています。 ログアウト /  変更 )

Facebook の写真

Facebook アカウントを使ってコメントしています。 ログアウト /  変更 )

%s と連携中