16

I'd like to setup a Windows 98 SE system that boots into the included MS-DOS 7.1 command line, and which can also run Windows 3.11. I've seen various disjointed posts online that suggest this is possible without using multiple boot partitions, and that all 3 OS's will support a large FAT32 partition and Long Filenames (LFN).

If this is indeed supported, what would be the rough order of steps to get it working?

Additionally, I want to use a boot menu to choose the environment, including dumping me into "vanilla" MS-DOS with the memory manager of my choice.

NOTE: I'm doing this because I want the convenience of a single large drive/partition that can run most of the software from the 1990s for DOS, Win3, and Win9x. And I'm hoping DOS 7.1 is also backwards compatible enough to run some 1980s software too.

8
  • 3
    Perhaps you should ask the Can Windows 3.11 be modified to understand Microsoft's long filenames on FAT volumes, and if so how? question first. (-:
    – JdeBP
    Dec 3, 2019 at 21:56
  • 1
    I think this will not end well. Why do you want to do it? Dec 5, 2019 at 0:26
  • 3
    @ThorbjørnRavnAndersen: Why does he need a reason?
    – Vikki
    Dec 5, 2019 at 0:53
  • 2
    @Sean it's not about needing a reason it's about XY-Problem. Sometimes there are better ways to accomplish something that become obvious only if we know how the question came to be. Dec 5, 2019 at 4:15
  • 1
    @Thorbjørn I suspect Brian is using a real system here, not VMs ;-). Dec 5, 2019 at 22:34

4 Answers 4

25

The first part isn’t too difficult: install Windows 98 as usual, then edit MSDOS.SYS to change its BootGUI setting to 0. This will disable the automatic GUI startup, and the computer will boot to a COMMAND.COM prompt.

You can install Windows 3.11 in a different directory than Windows 98. Before you can, you’ll need to patch IO.SYS using Ralf Buschmann’s Win3xStart program (in osr2fix.exe). Once that’s done, Windows 3’s SETUP will work; choose “user defined setup” so that you can specify what directory to use, and make sure you don’t let the installation program make any changes to CONFIG.SYS and AUTOEXEC.BAT. After installation, you should also patch WIN386.EXE (see the previous link) to avoid issues after exiting Windows.

Windows 3.11 doesn’t support FAT32 directly, so some of its features won’t be enabled (32-bit file access in Windows for Workgroups 3.11 for example), and it can produce confusing results with large partitions. Some third-party installers will refuse to install on disks where the available space is “too large”. Windows 3 also doesn’t support long file names; you can however use DOSLFN and Calmira LFN to get some level of support for long file names. 32-bit disk access will only work if you use Windows 3’s version of IFSHLP.SYS. Windows 98 also no longer supports SHARE.EXE, but its DOS kernel is apparently incompatible with Windows 3’s VSHARE.386, so programs which need the corresponding features will fail to run.

The CONFIG.SYS menu system is still available under Windows 98, so you can use that to build your boot menu.

In situations where you don’t need FAT32, Windows 98 also supports dual-booting with MS-DOS 6 in the same partition, as long as you install the latter first, and choose the option to back up your previous operating system during the Windows 98 installation. See this guide for details.

Note that the vast majority of Windows 3 programs will work fine under Windows 98, so you might find it simpler to use that instead, as explained in Ross’ answer.

Thanks to Ross Ridge for the pointer to this Vogons thread on the subject!

0
33

I'm going to post a frame challenge answer and say that if your goal is to run MS-DOS and Windows software from the early 90s and before then you don't want to do what you propose. Instead you're better off just installing Windows 98 SE and booting (or rebooting) into MS-DOS mode for the few applications that need it. In particular trying to force Windows (for Workgroups) 3.11 to work under MS-DOS 7.1 requires various hacks and will likely result in something that's less compatible with applications.

Microsoft has always taken backwards compatibility very seriously (even today, the 32-bit version of Windows 10 will run many old 16-bit Windows applications), and Windows 98 wasn't an exception. It's predecessor, Windows 95 wasn't the revolutionary new operating system that it superficially appears to be. It was just an evolution of Windows 3.11, with a lot of new features but also with a lot of the same code. The most likely reason for an old Windows applications not to work is because of new hardware. Things like drives being bigger than the software assumed possible, or the CPU being 10 or 100 times faster. Problems that your proposed setup wouldn't fix.

For old 16-bit Windows software written for Windows 3.11 or earlier, you're just better off running them under Windows 98. No patches, no extra drivers are necessary. They won't automagically get full long filename support, as they'll still be using the old 8.3 interfaces, but they'll work just fine. If you do manage to find something that doesn't work, you'll probably need to install MS-DOS 6.22 and Windows 3.11 on a separate FAT16 partition in order to fix the problem anyways.

MS-DOS software compatibility wasn't quite as good, because Windows, including Windows 3.11, runs in protected mode and that necessarily limited what MS-DOS applications could do, and MS-DOS applications could do anything. In practice, almost all MS-DOS applications worked within these constraints, but a few MS-DOS applications require that they be run in plain MS-DOS. For those you can either change the BootGUI option in MSDOS.SYS, or select the "Restart in MS-DOS mode" from the shutdown menu. You can even set up shortcuts so do they automatically do this and launch the application.

I used Windows 98 as my primary computer for a long time after it became obsolete just because of its excellent backwards compatibility, especially for games. It's very likely all you need.

2
  • 8
    I agree this is the more sensible approach! Other advantages include that it’s easier to get decent drivers for less ancient peripherals under Windows 98 than DOS (e.g. PCI sound cards, network cards etc.), and that Windows 98’s networking support is better than Windows 3’s so it’s easier to move files around. Dec 4, 2019 at 8:55
  • 1
    From a users point of view the new Desktop in Windows 95 was so much better that for most purposes it was a new operating system. The porting of the new desktop to NT warranted a full version bump from 3.51 to 4. Win98 SE was the pinnacle of this. Dec 5, 2019 at 0:28
0

I just built a VM on Oracle VM VirtualBox. It runs MS-DOS 7.1 with Windows 3.10 (the single-user version). And it just runs like a charm. At first, I installed 6.22, but ran into issues addressing over 64 MB of RAM (I know, it's overkill for that build), so I updated to 7.1. All I had to do was to rebuild my config.sys and autoexec.bat after updating, but it wasn't a big of a deal. And the reason was, since Win 3.x is really REALLY stable, I wanted to test out how much RAM it would take for it to become unstable (Win95 becomes simply really unstable above 256 MB, and just won't run at all at 512 MB+) But with a few tweaks in system.ini (adding PageOverCommit=0 line in the [386Enh] section), I've been able to make it start with 1 GB in 386 Enhanced mode, and it's much more stable even at that point than Windows 95 ever was. But from my experience, it just won't start at all above 1 GB (Insufficient memory or address space to initialize Windows in 386 Enhanced mode.)

But does Win3x work with MS-DOS 7.1 ? Absolutely.

-2

This is actually quite possible, but getting Windows to run in enhanced mode is something tricky. I've been planning to experiment with PC-DOS 7.1, but the interesting thing is will windows 98 support dualboot on a fat32 partition, and can pc-dos 7.1 run windows.

From people who run pcdos71, i'm told that build 1.19 is the go, with the 1.32 utilities, overlaid on a regular pcdos stuff.

MS-DOS and Windows 3.1 need patches to run 3.1.

EDIT: Windows 98SE does not do multiboot in fat32. So you have to go to the idea of running Windows 3.1 in standard mode in Dos98SE.

You should point winbootdir and windir in MSDOS.SYS to '.', and create autoexec.bat for this. The DOS dirvers in Win98 work with Win31, except that IFSHLP.SYS. Load the win98 version, and don't run 3.1 in 32bfa. (32-bit file access).

If you don't patch USER.EXE in 3,1, you should change to the root directory, or have batch files that change to the directory before running, eg

 cd win31
 win
 cd ..

or

cd win98
win
cd..

You can run both versions in the same session.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .