VOGONS


First post, by valnar

User metadata
Rank Oldbie
Rank
Oldbie

In addition to DOSBox, I keep a running collection of DOS 6.22 + Windows 3.1 images for MS Virtual PC 2007 and VMware 6.x. Since these are known, unchanging machines, I am posting my DOS boot files below for everyone to use or critique. (I've also played with QEMU, Parallels and VirtualBox, but none of them are as compatible or stable as VPC & VMware Workstation.)

While both Microsoft and VMware emulate the 440BX chipset, they are not fully compatible with real machines. This is most evident in alternate memory managers and disk caching programs. Quarterdeck's QEMM386 and Qualitas 386Max flat out don't work. They will crash the VM. I've had good luck with UMBPCI, which is a great way to create UMB's without forcing the processor into protected mode like EMM386. Nevertheless, I use both in my boot files since in some cases I want to use expanded memory.

I use a combination of native Microsoft files (like himem.sys) and freeware alternatives that have been proven to be reliable and consume less memory. As for disk caching programs, just use Smartdrv - period. All the others have various problems that I stopped documenting awhile ago. I also use the latest versions when possible. ie. HIMEM.SYS, EMM386.EXE and SMARTDRV.EXE are all from Win98SE. (Windows ME does not exist to me)

I used to be pretty good at configuring boot files back in the day, but AXCEL216 is even better, so to give credit where its due, I got a lot of info from here: http://www.mdgx.com/umb.htm
Note that I couldn't take verbatim what he wrote since both VM's have their own peculiarities. These are tried and tested configs. If it looks like I left out some things AXCEL216 recommends or arranged them in a different order, it was done on purpose.

I also took some of the VPC specific info from here: http://blogs.msdn.com/virtual_pc_guy/archive/ … /21/246136.aspx

My VPC image uses DOS 6.22 and Windows 3.1. Since VPC comes with their fshare program, I can use that to transfer files between the VM and host. With VMware Workstation, I use WFWG 3.11 and do it through Windows file sharing. I don't care that I "only" use Windows 3.1 with VPC since I don't surf the Internet with either VM. That would just be an exercise in torture.

Edit: The VMware Workstation image is a 5.x compatible image, not 6.x

Below are the config.sys and autoexec.bat files I use for each VM, and a MEM /C/P output.

Last edited by valnar on 2008-08-30, 18:26. Edited 5 times in total.

Reply 1 of 11, by valnar

User metadata
Rank Oldbie
Rank
Oldbie

Virtual PC config.sys

DEVICE=C:\VMADD\VMADD386.SYS

[COMMON]
DOS=HIGH,UMB
FILES=50
BUFFERS=12,6
LASTDRIVE=M
STACKS=9,256
FCBS=1,0

[MENU]
MENUCOLOR=7,0
MENUDEFAULT=UMBPCI,5
MENUITEM=UMBPCI,HIMEM.SYS + UMBPCI.SYS
MENUITEM=EMM386,HIMEM.SYS + EMM386.EXE

[UMBPCI]
DEVICE=C:\UTIL\HIMEM.SYS /NUMHANDLES=64 /TESTMEM:OFF
DEVICE=C:\UTIL\UMBPCI.SYS
DEVICE=C:\UTIL\LOWDMA.SYS
DEVICEHIGH=C:\UTIL\NANSI.SYS /K /X
DEVICEHIGH=C:\UTIL\QCDROM.SYS /D:IDECD1 /L /X /SM
INCLUDE=END
SET CONFIG=UMBPCI

[EMM386]
DEVICE=C:\UTIL\HIMEM.SYS /NUMHANDLES=64 /TESTMEM:OFF
DEVICE=C:\UTIL\EMM386.EXE RAM I=B100-B7FF I=C600-C7FF I=CC00-CFFF I=E600-EFFF FRAME=D000 A=32 D=128 NOTR
DEVICEHIGH=/L:2 C:\UTIL\NANSI.SYS /K /X
DEVICEHIGH=/L:2 C:\UTIL\QCDROM.SYS /D:IDECD1 /X /SM
INCLUDE=END
SET CONFIG=EMM386

[END]
DEVICE=C:\UTIL\DOSMAX.EXE N+ P- R-
SHELL=C:\DOS\COMMAND.COM /E:640 /P

Virtual PC autoexec.bat

@ECHO OFF
PATH=C:\UTIL;C:\DOS;C:\WINDOWS;C:\PKZIP;
PROMPT $P$G
SET DOSVMADD13=INSTALLED
SET TEMP=C:\TEMP
SET TMP=C:\TEMP
SET WINDIR=C:\WINDOWS
SET BLASTER=A220 I5 D1 H5 P330 T6
GOTO %CONFIG%

:EMM386
C:\UTIL\EMM386.EXE AUTO
GOTO END

:UMBPCI
GOTO END

:END
C:\UTIL\ENVIMAX.COM
C:\UTIL\SHCDX33C.COM /D:IDECD1 /L:E /~+
C:\UTIL\SMARTDRV.EXE 4096 4096 /B:8192
LH C:\DOS\DOSKEY
LH C:\VMADD\IDLE.COM
LH C:\VMADD\MOUSE.COM
rem C:\VMADD\FSHARE.EXE

UMBPCI memory

Modules using memory below 1 MB:

Name Total = Conventional + Upper Memory
-------- ---------------- ---------------- ----------------
MSDOS 9,517 (9K) 9,517 (9K) 0 (0K)
HIMEM 1,120 (1K) 1,120 (1K) 0 (0K)
UMBPCI 176 (0K) 176 (0K) 0 (0K)
LOWDMA 688 (1K) 688 (1K) 0 (0K)
DOSMAX 416 (0K) 416 (0K) 0 (0K)
COMMAND 3,376 (3K) 2,720 (3K) 656 (1K)
NANSI 3,344 (3K) 0 (0K) 3,344 (3K)
QCDROM 2,080 (2K) 0 (0K) 2,080 (2K)
FILES 2,688 (3K) 0 (0K) 2,688 (3K)
FCBS 96 (0K) 0 (0K) 96 (0K)
WKBUFFER 3,600 (4K) 0 (0K) 3,600 (4K)
LASTDRIV 1,168 (1K) 0 (0K) 1,168 (1K)
STACKS 3,024 (3K) 0 (0K) 3,024 (3K)
INSTALL 160 (0K) 0 (0K) 160 (0K)
SHCDX33C 6,336 (6K) 0 (0K) 6,336 (6K)
SMARTDRV 24,000 (23K) 0 (0K) 24,000 (23K)
IDLE 624 (1K) 0 (0K) 624 (1K)
DOSKEY 4,144 (4K) 0 (0K) 4,144 (4K)
MOUSE 8,976 (9K) 0 (0K) 8,976 (9K)
Free 644,192 (629K) 639,520 (625K) 4,672 (5K)

Memory Summary:

Type of Memory Total = Used + Free
---------------- ---------- ---------- ----------
Conventional 654,336 14,816 639,520
Upper 65,568 60,896 4,672
Reserved 0 0 0
Extended (XMS) 32,440,288 4,325,344 28,114,944
---------------- ---------- ---------- ----------
Total memory 33,160,192 4,401,056 28,759,136

Total under 1 MB 719,904 75,712 644,192

Largest executable program size 639,504 (625K)
Largest free upper memory block 4,624 (5K)
MS-DOS is resident in the high memory area.

EMM386 memory

Modules using memory below 1 MB:

Name Total = Conventional + Upper Memory
-------- ---------------- ---------------- ----------------
MSDOS 9,517 (9K) 9,517 (9K) 0 (0K)
HIMEM 1,120 (1K) 1,120 (1K) 0 (0K)
EMM386 5,488 (5K) 5,488 (5K) 0 (0K)
COMMAND 3,376 (3K) 2,720 (3K) 656 (1K)
DOSMAX 240 (0K) 0 (0K) 240 (0K)
FILES 2,688 (3K) 0 (0K) 2,688 (3K)
FCBS 96 (0K) 0 (0K) 96 (0K)
WKBUFFER 3,600 (4K) 0 (0K) 3,600 (4K)
LASTDRIV 1,168 (1K) 0 (0K) 1,168 (1K)
STACKS 3,024 (3K) 0 (0K) 3,024 (3K)
INSTALL 160 (0K) 0 (0K) 160 (0K)
SHCDX33C 6,336 (6K) 0 (0K) 6,336 (6K)
IDLE 624 (1K) 0 (0K) 624 (1K)
MOUSE 8,976 (9K) 0 (0K) 8,976 (9K)
NANSI 3,376 (3K) 0 (0K) 3,376 (3K)
QCDROM 2,064 (2K) 0 (0K) 2,064 (2K)
SMARTDRV 24,000 (23K) 0 (0K) 24,000 (23K)
DOSKEY 4,144 (4K) 0 (0K) 4,144 (4K)
Free 663,680 (648K) 636,304 (621K) 27,376 (27K)

Memory Summary:

Type of Memory Total = Used + Free
---------------- ---------- ---------- ----------
Conventional 655,360 19,056 636,304
Upper 88,528 61,152 27,376
Reserved 393,216 393,216 0
Extended (XMS)* 32,417,328 5,072,432 27,344,896
---------------- ---------- ---------- ----------
Total memory 33,554,432 5,545,856 28,008,576

Total under 1 MB 743,888 80,208 663,680

Total Expanded (EMS) 32,833,536 (32,064K
Free Expanded (EMS)* 27,590,656 (26,944K

* EMM386 is using XMS memory to simulate EMS memory as needed.
Free EMS memory may change as free XMS memory changes.

Largest executable program size 636,288 (621K)
Largest free upper memory block 12,800 (13K)
MS-DOS is resident in the high memory area.

Reply 2 of 11, by valnar

User metadata
Rank Oldbie
Rank
Oldbie

VMware config.sys

[COMMON]
DOS=HIGH,UMB
FILES=50
BUFFERS=12,6
LASTDRIVE=M
STACKS=9,256
FCBS=1,0

[MENU]
MENUCOLOR=7,0
MENUDEFAULT=UMBPCI,5
MENUITEM=UMBPCI,HIMEM.SYS + UMBPCI.SYS
MENUITEM=EMM386,HIMEM.SYS + EMM386.EXE

[UMBPCI]
DEVICE=C:\UTIL\UMBPCI.SYS /I=C800-DFFF
DEVICE=C:\UTIL\HIRAM.EXE
DEVICEHIGH=C:\UTIL\HIMEM.SYS /NUMHANDLES=64 /TESTMEM:OFF
DEVICE=C:\UTIL\LOWDMA.SYS
DEVICEHIGH=C:\UTIL\NANSI.SYS /K /X
DEVICEHIGH=C:\UTIL\QCDROM.SYS /D:IDECD1 /L /X /SM
DEVICEHIGH=C:\WINDOWS\IFSHLP.SYS
INCLUDE=END
SET CONFIG=UMBPCI

[EMM386]
DEVICE=C:\UTIL\HIMEM.SYS /NUMHANDLES=64 /TESTMEM:OFF
DEVICE=C:\UTIL\EMM386.EXE RAM /I=B000-B7FF A=32 D=128 NOTR
DEVICEHIGH=/L:2 C:\UTIL\NANSI.SYS /K /X
DEVICEHIGH=/L:2 C:\UTIL\QCDROM.SYS /D:IDECD1 /X /SM
DEVICEHIGH=/L:3 C:\WINDOWS\IFSHLP.SYS
INCLUDE=END
SET CONFIG=EMM386

[END]
DEVICE=C:\UTIL\DOSMAX.EXE N+ P- R-
SHELL=C:\UTIL\SHELLMAX.COM /N+ /P- /R- /S+ C:\DOS\COMMAND.COM /E:640 /P

VMware autoexec.bat

@ECHO OFF
C:\WINDOWS\net start
SET WINDIR=C:\WINDOWS
SET SOUND=C:\SB16
SET BLASTER=A220 I5 D1 H7 P330 T6
SET MIDI=SYNTH:1 MAP:E
C:\SB16\DIAGNOSE /S
C:\SB16\MIXERSET /P /Q
PATH=C:\UTIL;C:\WINDOWS;C:\DOS;C:\PKZIP
PROMPT $P$G
SET TEMP=C:\TEMP
SET TMP=C:\TEMP
GOTO %CONFIG%

:EMM386
C:\UTIL\EMM386.EXE AUTO
LH /L:3 C:\DOS\DOSKEY.COM
LH /L:2 C:\UTIL\MOUSE.COM
GOTO END

:UMBPCI
LH C:\DOS\DOSKEY.COM
LH C:\UTIL\MOUSE.COM
GOTO END

:END
C:\UTIL\ENVIMAX.COM
C:\UTIL\SHCDX33C.COM /D:IDECD1 /L:E /~+
C:\UTIL\SMARTDRV.EXE 4096 4096 /B:8192
LH C:\UTIL\IDLE.COM

UMBPCI memory

Modules using memory below 1 MB:

Name Total = Conventional + Upper Memory
-------- ---------------- ---------------- ----------------
MSDOS 9,645 (9K) 9,645 (9K) 0 (0K)
LOWDMA 688 (1K) 688 (1K) 0 (0K)
DOSMAX 384 (0K) 384 (0K) 0 (0K)
COMMAND 272 (0K) 272 (0K) 0 (0K)
HIMEM 1,120 (1K) 0 (0K) 1,120 (1K)
NANSI 3,344 (3K) 0 (0K) 3,344 (3K)
QCDROM 2,032 (2K) 0 (0K) 2,032 (2K)
IFSHLP 3,952 (4K) 0 (0K) 3,952 (4K)
FILES 2,688 (3K) 0 (0K) 2,688 (3K)
FCBS 96 (0K) 0 (0K) 96 (0K)
WKBUFFER 3,600 (4K) 0 (0K) 3,600 (4K)
LASTDRIV 1,168 (1K) 0 (0K) 1,168 (1K)
STACKS 3,024 (3K) 0 (0K) 3,024 (3K)
INSTALL 160 (0K) 0 (0K) 160 (0K)
COMMAND 3,312 (3K) 0 (0K) 3,312 (3K)
MOUSE 8,992 (9K) 0 (0K) 8,992 (9K)
DOSKEY 4,144 (4K) 0 (0K) 4,144 (4K)
SHCDX33C 6,336 (6K) 0 (0K) 6,336 (6K)
SMARTDRV 24,000 (23K) 0 (0K) 24,000 (23K)
IDLE 640 (1K) 0 (0K) 640 (1K)
Free 671,840 (656K) 642,096 (627K) 29,744 (29K)

Memory Summary:

Type of Memory Total = Used + Free
---------------- ---------- ---------- ----------
Conventional 653,312 11,216 642,096
Upper 98,352 68,608 29,744
Reserved 0 0 0
Extended (XMS) 31,293,392 4,292,560 27,000,832
---------------- ---------- ---------- ----------
Total memory 32,045,056 4,372,384 27,672,672

Total under 1 MB 751,664 79,824 671,840

Largest executable program size 642,080 (627K)
Largest free upper memory block 29,696 (29K)
MS-DOS is resident in the high memory area.

EMM386 memory

Modules using memory below 1 MB:

Name Total = Conventional + Upper Memory
-------- ---------------- ---------------- ----------------
MSDOS 9,645 (9K) 9,645 (9K) 0 (0K)
HIMEM 1,120 (1K) 1,120 (1K) 0 (0K)
EMM386 4,464 (4K) 4,464 (4K) 0 (0K)
COMMAND 3,312 (3K) 2,656 (3K) 656 (1K)
SMARTDRV 24,016 (23K) 15,808 (15K) 8,208 (8K)
DOSMAX 240 (0K) 0 (0K) 240 (0K)
FILES 2,688 (3K) 0 (0K) 2,688 (3K)
FCBS 96 (0K) 0 (0K) 96 (0K)
WKBUFFER 3,600 (4K) 0 (0K) 3,600 (4K)
LASTDRIV 1,168 (1K) 0 (0K) 1,168 (1K)
STACKS 3,024 (3K) 0 (0K) 3,024 (3K)
INSTALL 160 (0K) 0 (0K) 160 (0K)
SHCDX33C 6,336 (6K) 0 (0K) 6,336 (6K)
IDLE 640 (1K) 0 (0K) 640 (1K)
NANSI 3,376 (3K) 0 (0K) 3,376 (3K)
QCDROM 2,064 (2K) 0 (0K) 2,064 (2K)
MOUSE 8,992 (9K) 0 (0K) 8,992 (9K)
IFSHLP 3,904 (4K) 0 (0K) 3,904 (4K)
DOSKEY 4,144 (4K) 0 (0K) 4,144 (4K)
Free 625,920 (611K) 619,392 (605K) 6,528 (6K)

Memory Summary:

Type of Memory Total = Used + Free
---------------- ---------- ---------- ----------
Conventional 653,312 33,920 619,392
Upper 55,824 49,296 6,528
Reserved 0 0 0
Extended (XMS)* 32,384,496 5,072,368 27,312,128
---------------- ---------- ---------- ----------
Total memory 33,093,632 5,155,584 27,938,048

Total under 1 MB 709,136 83,216 625,920

Total Expanded (EMS) 32,768,000 (32,000K
Free Expanded (EMS)* 27,541,504 (26,896K

* EMM386 is using XMS memory to simulate EMS memory as needed.
Free EMS memory may change as free XMS memory changes.

Largest executable program size 619,232 (605K)
Largest free upper memory block 3,600 (4K)
MS-DOS is resident in the high memory area.

Reply 3 of 11, by GL1zdA

User metadata
Rank Oldbie
Rank
Oldbie

It would be nice, if you would make your config.sys and autoexec.bat more 'verbose' - add comments to settings. I, and probably many other people, who don't know a lot about DOS configuration files, would benefit a lot from these, since we wouldn't have to look up the meaning of all settings. I learn usually faster using examples and borrowing from them and modifying them than using a reference manual and building everything from scratch.

getquake.gif | InfoWorld/PC Magazine Indices

Reply 4 of 11, by valnar

User metadata
Rank Oldbie
Rank
Oldbie

All those programs come with instructions detailing the command parameters. It would be too much to write them all here. If you search out DOSMAX, HIRAM, UMBPCI.SYS, SCHDX33.EXE, etc, you'll get the instructions with them.

I will note that mouse driver I use is Microsoft version 1.01. It takes little memory. VPC supports the Sound Blaster 16 as a non-PnP card. VMware requires the use of Creative's mixerset, etc.

While I didn't state it above, all my choices were selected to optimize conventional memory, in addition to make the VM's stable. In a tie I chose stability over an extra 1-2K memory.

Virtual PC is very stable. My VMware image is stable in DOS, but sometimes has problems exiting out of WFWG 3.11. I believe when I used plain Windows 3.1 in VMware it was much better, but I like the WFWG option. In either case, I really don't use Windows 3.1x in VMware since there is no native video driver. It's just there to be there.

Obviously both VMware and VPC excel in Windows 98 or better, but that's not as much fun. 😁 If I had the choice of one or the other *for DOS and Windows 3.x*, I would choose Virtual PC. It's currently the best emulator outside of DOSBox for that environment. It has been since the Connectix days. The S3 video and SB audio emulation help.

Reply 5 of 11, by swaaye

User metadata
Rank l33t++
Rank
l33t++

I am disappointed that the Crusader games won't work in Virtual PC. I think that VirtualPC might have a speed advantage over DOSBOX because it does less emulation and more virtualization. Since I've been playing with an EeePC and the 900 MHz Celeron M is rather iffy for the SVGA DOS games within DOSBOX, I wanted to give VPC a try.

The Crusader games are very picky. I have only been able to get them to run in DOSBOX or on a real DOS machine. No NTVDM, Win9x, or VirtualPC w/ DOS 6.22. The game is based on an Ultima Underworld engine and it does some things with its memory management that are rather ugly apparently and easy to break.

Reply 6 of 11, by wd

User metadata
Rank DOSBox Author
Rank
DOSBox Author
because it does less emulation and more virtualization

That's not always a speed advantage. Especially when it comes to games that
use self-page modifying code. Try duke3d under qemu or vpc for example.

vmware does a much better job for those games, and in my experience it
runs some of the trickier games, too.

Reply 7 of 11, by DosFreak

User metadata
Rank l33t++
Rank
l33t++

IIRC, Crusader worked in Connectix VPC v5.1 and v5.2 and possibly Microsoft VPC 2004....but I think I remember Crusader stopped working when VPC 2004 came out.

Re: Virtual PC 5 oddity
Re: Problems with sound in Crusader using Virtual PC 5.2
Re: DOSbox and Virtual PC 2004

V5.1 and V5.2 should still work fine in XP but your still better off with DOSBox if you like sound quality in your games.

How To Ask Questions The Smart Way
Make your games work offline

Reply 8 of 11, by valnar

User metadata
Rank Oldbie
Rank
Oldbie

I loaded up Qemu Manager 7.0 which comes with QEMU 0.11.1 and tried a DOS 6.22/Win3.1 installation that I had not used in awhile. It seems a lot better now, although Windows is still not as stable as VPC or Vmware. But as an added bonus, I can install 386MAX 7.02 and it doesn't crash the VM!! This is quite an improvement since last time.

It allows for a lot of free UMB compared to other emulators. With UMBPCI I can get 628K conventional memory free and my new 386Max installation gives me an even 625K. Very nice.

Reply 10 of 11, by Jorpho

User metadata
Rank l33t++
Rank
l33t++
Davros wrote:

@ swayyee there is an open source engine for some game (cant remmeber its name) but it also runs crusader

Yes, that would be Pentagram. It's not finished yet, though, and at this rate may never be.
http://pentagram.sourceforge.net/

Reply 11 of 11, by Dominus

User metadata
Rank DOSBox Moderator
Rank
DOSBox Moderator

It does not run Crusader, it's supposed to be, but doesn't yet and you are right who knows if it ever will...

Windows 3.1x guide for DOSBox
60 seconds guide to DOSBox
DOSBox SVN snapshot for macOS (10.4-11.x ppc/intel 32/64bit) notarized for gatekeeper