28

Windows 1.x, 2.x and 3.x required a DOS to be loaded before running them. Later Windows 9.x and ME had similar (?) way of working, but DOS was included with them, 32-bit multitasking and other stuff added.

I would like to ask about MS-DOS window in Windows 95/98/Me. Correct me if I am wrong, but it was not calling a MS-DOS behind the scene, but rather provided some emulation of MS-DOS. That's the reason why running DOS application in Windows 95/98/Me was much slower than running them directly in DOS mode (exiting GUI and running in DOS, before Windows will start loading)? Moreover many applications even was unable to run at all in that window.

So was it something like more recent DOSBox project, but with of course worse isolation, allowing direct calls to the hardware that makes it faster, but unstable? And it couldn't be in other way, because of the speed of PCs of that era.

4
  • 4
    This article might be of interest: What was the role of MS-DOS in Windows 95?. Based on my understanding of that article it appears that the MS-DOS shipped with Windows 95 was fully functional except that it acted as a compatibility layer once Windows was running and some interrupts calls from DOS programs were intercepted by Windows, with limitations that could cause problems for DOS programs that did non-standard things. Commented Mar 26 at 19:26
  • 5
    Running a DOS application under Windows 95 wasn't necessarily slower than running it directly under DOS - in some cases it was even much faster. (I assume this is because Win95 had much more efficient I/O and caching, so any disk-heavy applications would get the benefit of this.)
    – psmears
    Commented Mar 27 at 15:07
  • 2
    wasn't necessarily slower - citation needed, contrary to 99% of my experience. Restart in MS-DOS mode? Yes, please. Nothing runs well when a shell is taking 75% of the resources. - It was like using an emulator, in that if your hardware didn't come from NASA then it isn't going to run good. - Emulate a PS2 with anything less than an i7, at 4k, and you get somewhere between 3~12 fps. That's what it was like, so... yeah.
    – Mazura
    Commented Mar 29 at 1:41
  • The MS-DOS windows in Windows 95 were similar to those in Windows 386 Enhanced mode, although in Windows 95 there was support for piping between MS-DOS and 32-bit console programs.
    – Neil
    Commented Mar 29 at 8:47

3 Answers 3

43

No, running MS-DOS window in Win95 was nothing like DosBox.

DosBox is an emulator, but Windows 95 ran DOS in a 16-bit process as virtual machine.

DosBox is basically a C program that emulates all the hardware and software you need to run DOS programs, including command interpreter, services that DOS kernel provides, services that BIOS provides, and emulated hardware like CPU, video cards, sound cards etc. Which means you can run DosBox on any platform like an ARM laptop running Linux, as long as it can find a way to play sounds, draw to screen and read keyboard/mouse inputs under that platform.

Under Windows, running DOS in a window or full-screen, it just runs among other programs as a 16-bit process in VM86 mode, so the CPU runs most unprivileged instructions natively. DOS services such as file system goes out of the VM86 task through to Windows kernel and FS drivers, handling file IO. Part of the hardware is virtualized via IO traps, but for example a DOS program requesting DMA to a sound card might in reality get translated through Windows drivers to do it safely among other DMA transfers. Same way privileged instructions such as cli/sti to manage interrupts needs to be trapped.

So yes, switching between 32-bit protected mode and VM86 mode all the time to handle something the 16-bit DOS program wants to do in the 32-bit kernel or drivers is slow. Also the DOS window never gets full access to all the resources so any other drivers and programs still run in parallel with the DOS window. In that era you generally only had one slow CPU so there was no multiple CPU cores to run many processes/threads/tasks in parallel.

4
  • Thanks for answer, it looks much more complex (and as I understand hardware related - en.wikipedia.org/wiki/Virtual_8086_mode) then I thought. I truly cannot understand why it was still faster system (DOS + Windows) than Windows NT that had more straightforward architecture without this 16 - bit DOS.
    – matandked
    Commented Mar 26 at 21:59
  • 4
    IIRC cli/sei were not trapped in Win9x, since the DOS Box run with IOPL set to 3, and you could hang the computer by running DEBUG. COM, assembling CLI JMP 0100 and running that. OTOH, Linux Dosemu run with IOPL set to 0, and was not vulnerable to this.
    – ninjalj
    Commented Mar 27 at 1:32
  • 5
    @matandked Part of why it was faster than NT is that it was simpler. NT provided a lot of extra functionality beyond what 9x did, and while some of it did improve performance, a lot of it did not and was thus just extra complexity from a performance perspective. If the hardware is identical and you’re dealing with a single processor, then in a majority of cases the simpler code will win most performance benchmarks. Commented Mar 27 at 11:09
  • 4
    @Justme "you generally only had one slow CPU" - after switching from an Atari ST with a Motorola 68000 running at 8MHz, a Win95 PC sporting an Intel 486DX2 running at 66MHz was anything but slow. :) Commented Mar 28 at 11:04
7

Not in Windows 9x.

However, in the Windows NT family, including 2000 and XP, and everything after there was a Virtual Dos Machine that even came with some limited soundcard emulation.

It could even be extended with a piece of third party software called VDMsound.

This was nowhere near as good for games as DOSBox, but it worked for enough titles to use.

7
  • I remember that DOS support in those system (2000, XP) were not great as you mentioned. Wonder how good was DOS emulation (think it was before DOSBox) in Linux at the same time... but it is topic for another discussion :-)
    – matandked
    Commented Mar 26 at 22:04
  • @matandked I could get Master of Orion, Master of Magic, and X-Com running and that was about all I cared about. I think all may have run fast. Some of this was about the time when DosBox started being practical and I converted soon after, and bought the Utopia soundfont to get well-balanced GM.
    – davolfman
    Commented Mar 26 at 22:33
  • 2
    @matandked: in Linux there was Dosemu, which was also not fully emulation, but virtualization via VM86 mode. It included sound card and video card emulation, among many other things.
    – ninjalj
    Commented Mar 27 at 1:37
  • 1
    For quite few years NTVDM was far superior for many games. Especially for Win2000 early adopters who got NTVDM two years before DosBox was even a thing :D And I am fairly sure I had to wait quite a few years before I got CPU fast enough to make DosBox performance competetive with NTVDM even for titles as light as Master of Orion.
    – PTwr
    Commented Mar 27 at 22:18
  • The virtual DOS machine was present in all 32-bit versions of Windows NT from Windows NT 3.1 to Windows 10. It was also used to run 16-bit Windows applications on those OSes.
    – Neil
    Commented Mar 29 at 8:43
1

Basically running a "DOS Box" in Windows/95 (or even in Windows/386) did not start "MS-DOS", but a "command prompt" (command.com), and as MS-Windows can run programs in windows only, a "console" (80x25 characters) was started as a surrounding for the command prompt. That might look like starting MS-DOS, but actually it was not.

Any program run inside would execute system calls (like INT 21); in real MDS-DOS those were intercepted by MS-DOS, and in Windows some might be intercepted by Windows, while others would go back into MS-DOS.

As described in https://retrocomputing.stackexchange.com/a/29739/25459 virtual x86 mode was used to launch a "DOS-Box", and the advantages were:

  • You could run multiple DOS-Boxes as they were kind of virtual machines
  • Crashing a DOS-Box would not have a negative effect on the underlying Windows (in most cases)
10
  • 2
    This might be confusing the issue somewhat – the OP is referring to the specific third-party emulation software DosBox (dosbox.com), not using it as a generic term to refer to running DOS in a window via the built-in mechanism provided by Microsoft. Commented Mar 27 at 22:48
  • The title is "Was MS-DOS window in Windows 95 an emulator like current DOSBox?", but Microsoft never called it MS-DOS window.
    – U. Windl
    Commented Mar 28 at 10:59
  • 2
    "but Microsoft never called it MS-DOS window" I think you wrote your answer without knowing what DOSBox is. From the other answers and comments here, it appears that other people found the question clear, as I did. It's fair enough if you didn't know and good of @MichaelMacAskill to help clarify it for you but it does make this, as written, not an answer to the question. Can you write a new answer in light of the new info you have? Or maybe delete it if it's unrescuable to avoid yourself more possible downvotes. Thanks.
    – TonyM
    Commented Mar 28 at 13:35
  • 1
    @U.Windl As I understand you expect me to change "MS-DOS window" text in question to something else (what should I provide?) but as other mentioned, using "DOS-Box" in your response is much confusing. When I refered to DosBox I referred to en.wikipedia.org/wiki/DOSBox
    – matandked
    Commented Apr 3 at 9:44
  • I must admit that it's too long ago for me to remember exactly what the exact phrases were, specifically as was using a German Windows...
    – U. Windl
    Commented Apr 3 at 10:20

You must log in to answer this question.

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