VOGONS


DOS on a modern PC

Topic actions

First post, by Grzyb

User metadata
Rank Oldbie
Rank
Oldbie

I'm thinking about building a modern PC especially for DOS...
So, what do I need?

FreeDOS still seems problematic... so, the recommended version would be MS-DOS 7.10 from Windows 98SE, right?
What's the maximum usable disk size?
Is there any additional software necessary, like some HIMEM/EMM386 replacements?
Any success running DOS on UEFI-only machines?
What devices can I expect to work? I assume no problems with most graphics cards, but no way for sound, right? What about LAN?

Share your success stories!

Nie tylko, jak widzicie, w tym trudność, że nie zdołacie wejść na moją górę, lecz i w tym, że ja do was cały zejść nie mogę, gdyż schodząc, gubię po drodze to, co miałem donieść.

Reply 1 of 12, by RetroGamer4Ever

User metadata
Rank Oldbie
Rank
Oldbie

Lots of people use FreeDOS for gaming and other tasks, without any issues. The latest version works wonderfully with many games. MS-DOS 6.22 is the DOS version that people should be using for "authentic" DOS systems and compatibility.

Reply 2 of 12, by kitten.may.cry

User metadata
Rank Member
Rank
Member
RetroGamer4Ever wrote on 2022-06-07, 12:28:

Lots of people use FreeDOS for gaming and other tasks, without any issues. The latest version works wonderfully with many games. MS-DOS 6.22 is the DOS version that people should be using for "authentic" DOS systems and compatibility.

True, FreeDOS isn't compatible with some things, like sound drivers, etc.

Reply 3 of 12, by Grzyb

User metadata
Rank Oldbie
Rank
Oldbie

MS-DOS 6.22 is limited to 8 GB of disk space, divided into 2 GB partitions.
I want more, therefore MS-DOS 7.10 - seems more compatible than FreeDOS...

Nie tylko, jak widzicie, w tym trudność, że nie zdołacie wejść na moją górę, lecz i w tym, że ja do was cały zejść nie mogę, gdyż schodząc, gubię po drodze to, co miałem donieść.

Reply 4 of 12, by Azarien

User metadata
Rank Oldbie
Rank
Oldbie

With Windows 98 / DOS 7.1 you can have as much as 137 GB on a single FAT32 partition.

Though you may experience some slowdowns with such sizes when it occasionally decides to recalculate the amount of free space - be sure to have smartdrv.exe loaded.

Reply 5 of 12, by zyzzle

User metadata
Rank Member
Rank
Member

The problem with running baremetal DOS on a new system is that, even if the system has a non-UEFI "legacy" mode for a real MBR / BIOS bootmode, the video is likely to be so crippled as to not even run most DOS games. Systems newer than 8th gen core i3/i5/i7 with onboard video (intel UHD?) have been castrated; there are no low-resolutions availabe (no 320x200, 320x240, 640x350) and likely not even any 8-bit video modes in the Video BIOS. So, any legacy game which uses 320x200 will crash when it tries to switch to this mode which 90% of legacy DOS games used. It's such an artificial limitation, due totally to crippled and missing video BIOS code. Some VESA modes are also missing and / or incomplete.

The further problem on "new" systems exists that MTRRs can't be set, so even if your game runs in DOS it will suffer from very slow video reads and writes. With RayeR's MTRRLFBE utility, one can enable write-caching MTRRs for LFB and also VGA modes in Intel 5th core i3/i5/i7 systems and earlier, in my testing and experience. All "new" systems from 6th gen on up have the MTRRs as unable to be set.....

This is my (very frustrating) experience with getting DOS running baremetal on "modern" systems. If someone has figured out a way to enable low-resolution VGA graphics and / or enable MTRRs to be set on systems greater than 6th gen Intel core CPUs, please, please share the knowledge and exact specifications of your system and video combination which makes this possible.

Reply 6 of 12, by TrashPanda

User metadata
Rank l33t
Rank
l33t
zyzzle wrote on 2022-06-09, 12:25:

The problem with running baremetal DOS on a new system is that, even if the system has a non-UEFI "legacy" mode for a real MBR / BIOS bootmode, the video is likely to be so crippled as to not even run most DOS games. Systems newer than 8th gen core i3/i5/i7 with onboard video (intel UHD?) have been castrated; there are no low-resolutions availabe (no 320x200, 320x240, 640x350) and likely not even any 8-bit video modes in the Video BIOS. So, any legacy game which uses 320x200 will crash when it tries to switch to this mode which 90% of legacy DOS games used. It's such an artificial limitation, due totally to crippled and missing video BIOS code. Some VESA modes are also missing and / or incomplete.

The further problem on "new" systems exists that MTRRs can't be set, so even if your game runs in DOS it will suffer from very slow video reads and writes. With RayeR's MTRRLFBE utility, one can enable write-caching MTRRs for LFB and also VGA modes in Intel 5th core i3/i5/i7 systems and earlier, in my testing and experience. All "new" systems from 6th gen on up have the MTRRs as unable to be set.....

This is my (very frustrating) experience with getting DOS running baremetal on "modern" systems. If someone has figured out a way to enable low-resolution VGA graphics and / or enable MTRRs to be set on systems greater than 6th gen Intel core CPUs, please, please share the knowledge and exact specifications of your system and video combination which makes this possible.

You will find its due to Intel removing a lot of the old legacy interrupt handling and doing house keeping on older legacy stuff that simply is not used anymore or required for backwards compatibility, AMD followed suit. Tech moves forward and legacy stuff eventually gets removed or truncated to the bare minimum, its why retro computing has a purpose outside of just a hobby.

There is really no reason to even run bare metal DOS on new systems when VM is available along with perfectly functioning older systems that can provide a far better DOS experience than new systems will ever be able to.

Reply 7 of 12, by Riikcakirds

User metadata
Rank Member
Rank
Member
Grzyb wrote on 2022-06-07, 10:45:
I'm thinking about building a modern PC especially for DOS... So, what do I need? […]
Show full quote

I'm thinking about building a modern PC especially for DOS...
So, what do I need?

FreeDOS still seems problematic... so, the recommended version would be MS-DOS 7.10 from Windows 98SE, right?
What's the maximum usable disk size?
Is there any additional software necessary, like some HIMEM/EMM386 replacements?
Any success running DOS on UEFI-only machines?
What devices can I expect to work? I assume no problems with most graphics cards, but no way for sound, right? What about LAN?

Share your success stories!

It is doable, I have done it on a Z270 motherboard (that had 1 pci slot). For sound I used a pci Ymf724 and around 90% of games worked find using dsdma tsr.
I still find FreeDos is not a good choice for running games in dos on any hardware. Random crashed etc in specific games. I'm sure they will get there eventually to match ms-dos. Also I have still not seen 1 game that works in 6.22 but not in dos7.1
In general you don't need to replace himem or emm386 from dos7.1, they are the most compatible memory manager with games, it's the memory managers the developers used when creating/testing their games.

Unlike 6.22, dos7.1 supports Int 13h Extensions and if using it on a bios that includes 48bit lba (around 2003 onwards) dos 7.1 will support up to 2TB on a single fat32 partition.
I tried this when I had some spare time in work. Partitioned a 2TB ssd with a single 2TB partition using diskpart, then used oformat.exe from Winme to format it as fat32 and copied 1TB of random data on it with a hash. Booted to dos7.1 and copied that data again in dos to fill up the remaining 1TB. Checked the files with hashes, no corruption

Reply 8 of 12, by zyzzle

User metadata
Rank Member
Rank
Member
TrashPanda wrote on 2022-06-09, 12:38:

There is really no reason to even run bare metal DOS on new systems when VM is available along with perfectly functioning older systems that can provide a far better DOS experience than new systems will ever be able to.

Although true, there is one very good reason still to run bare metal on modern systems: speed. Some DOS applications (archivers, disk utilities, ramdrives, even modernish games like Quake 2) benefit greatly from the great speed which modern CPUs provide. 7zip archiver, for example, and Mplayer video player DOS ports exist, which would be very slow in a VM and / or a non-baremetal DOS system. Yes, Windows and Linux versions exist. But, sometimes one wants to run in DOS for the sheer pleasure, and also the 16-bit DOS applications which aren't ported to Windows or Linux.

For most legacy games, you are correct, these can be run with acceptable speed in a VM environment. Once you get to SVGA and up resolutions, you need a very fast modern PC to run what will happily run on a P3-level legacy machine from 20 years ago, however. There are still *some* retro DOS machines which can still be put together cheaply, but that time, even for mundane CPUs like core2Duo will rapidly come to an in in this age of inflation, greedy, and people "collecting" just for the sake of collecting, not using the old hardware. Supplies will continue to be diminished by such people, leaving the VM / emulation solution as the only real viable one.

That's why it's still important for modern systems to be able to run legacy DOS, even in bare-metal mode. What does "housecleaning" of legacy 8-bit low-resolution VGA modes accomplish? A few cents saved in the Video ROM BIOS? There's no good reason to cripple, just to cripple unless it *drasticly* reduces cost, increases performance, or totally saddles the system down. Keeping legacy VGA modes doesn't do this at all.

Reply 9 of 12, by TrashPanda

User metadata
Rank l33t
Rank
l33t

Speed ...

Sorry but that simply doesnt wash, what more speed could you possibly get out of DOS on a modern Ryzen processor that you couldn't get from a 4ghz P4 or Core2quad ? or heck a 4790k Haswell, I picked up a dirt cheap Q6600 for all of 20 bucks for an entire working box ..so I dont believe for one second that basic Core2 era stuff is expensive, its not.

Modern systems wont run DOS programs any faster and quite possibly will run them slower or not at all due to the missing legacy int functions and house keeping both Intel and AMD have done along with the missing Vesa functions. At some point they have to move on to make room for newer and more advanced functions that require a bigger transistor budget. All this old legacy shit on the CPU needed to be cleaned up, modern UEFI systems do not even use it and Intel didn't want to continue supporting it as it was quite a headache needing to support ancient interrupts in modern CPUs.

I imagine it was the same for nVidia and AMD with UEFI GPU bios space, why have VESA when its not used at all? for a few edge cases by people trying to live the past on a modern CPU doesnt make a good reason.

Im not a big supporter of DOSBox but I think this is one case where its the exact thing you are looking for or you could use one of it forks if you are looking for wider hardware support.

Reply 10 of 12, by wbahnassi

User metadata
Rank Oldbie
Rank
Oldbie

NV cards stopped supporting legacy display modes a long time ago. But AFAIK AMD still does to this day. When did they stop doing this? I have an RX 6800XT laying around that I can test for fun.

The main thing that will never work is sound, unless the mobo has a PCI slot, which I think could still be found in some i7 boards? YMF724 would be the go-to card for that setup. It has true OPL and a wide game compatibility list with its DSDMA tool.

Another thing that will most probably not work is mouse under DOS, unless the mobo also has a PS2 port. And I bet modern BIOSes don't bother with PS2 mouse emulation via USB.

Booting to DOS should be possible with a regular USB stick, then it's fun from there. My HP Z400 doesn't fall in the class of builds discussed here, but it's cool when you just turn it on with a DOS USB stick in it and you see Starting MS-DOS... along with drivers loading for CD and sound and mouse 🙂 Once done, remove the USB stick and restart.. back to Win11!

Reply 11 of 12, by TrashPanda

User metadata
Rank l33t
Rank
l33t

Pretty sure for AMD its when they moved to full UEFI on their GPUs so Radeon VII on wards will have at best basic DOS mode support and possibly some of the more common VGA modes but nVidia doesnt have any real DOS support, USB mice have not supported PS2 legacy for quite a while now so unless your MB has a PS2 port you wont have mouse support unless your BIOS supports USB in legacy mode. The other issue is if the DOS program wants to use interrupts that are no longer usable on modern CPUs, so YMMV with what works fully and what just hard locks the machine. (Pretty sure modern USB keyboards will have issues under DOS unless again the BIOS support USB legacy)

Also 100% sure 16bit DOS apps will also have crazy issues under modern CPUs ranging from weird issues while running them through to the program simply not running at all, modern CPUs do not like 16bit applications at all and even 32bit ones can have compatibility issues with 64bit CPUs, more likely to be Intel than AMD here as AMD didn't quite go as hard with deprecating legacy CPU stuff as Intel did.

Intel went on the war path the last few generations in clearing legacy stuff as they didn't want to support it going forwards, you should be able to see evidence of this in running legacy stuff on Alder Lake CPUs where you wont have a fun time with it. (IIRC AL doesnt even support normal PCI anymore so yeah that will be a big hurdle to get around)

When we are talking about modern here its the last few generations of CPUs where this removal of legacy functions by both AMD and Intel will be seen to the fullest effect so late Skylake and Ryzen+ onwards, I wouldn't really consider Haswell/Piledriver to be modern here and so just for clarity I want to point this out.

Reply 12 of 12, by zyzzle

User metadata
Rank Member
Rank
Member

The moral of the story is: Don't settle for getting less for more if buying a new system, and expecting any dos or legacy support at all. Broadwell seems to be the last "good" modern CPU which is usable in DOS, bare metal. The Intel (IHD) onboard sound and the Intel VGA BIOS all work well, and exceedingly fast. Modern DOS programs like Mplayer and Mpxplay recognize the IHD sound, which yields exceptional sound in DOS. Linear Framebuffer can enable write-combining caching of VESA 32-bit modes. Also, VGA writecombining can be enabled, for super-fast VGA graphics. Several games also work with DOS audio (PCI "modern" drivers, such as IHD, HDA, and AC97 drivers). At least 7 or 8 games added this support by user patches and / or custom compiles.

My point about speed above is true; a "modern" i7 Broadwell, Kaby lake, or Coffee lake chip supports several times the memory bandwidth that a P4 supports. In fringe cases like archivers, this yields much more speed. There are now FAT32 ramdrives available which will use 32 GB and beyond for a RAMDRIVE. NTFS drivers exist. SSD drive will work in DOS, and can be made bootable via MBR as long as the partition is kept to 2TB or under. R. Loew's drivers enable to use beyond the 28-bit 137GB limit. Every "modern" laptop up to Coffee Lake has provided at least trackpad usability through CuteMouse DOS drive, in PS/2 compatibility mode. Obviously no "real" serial ports exist anymore on modern systems.

However, for general use, I agree, buy a $5 E8500 Core2Duo chip, or similar (overclock to 3.8 to 4.2 Ghz), a cheap Radeon 9250 card, a cheap ESS PCI AudioPCI soundcard, if you can find it. And this will suffice for 99% of the speed and DOS compatibility you need. However, it's still a bit of work getting this cheap DOS system set up, when a relatively modern laptop you have sitting around will probably run DOS reasonably well from a simple USB stick for "free" (no additional system or expense involved!) on bare metal, at very, very fast speed. Just be sure to keep it to Coffee Lake / Haswell (7th / 8th gen intel core i3 / i5 / i7), preferably to Broadwell (5th gen) or lower. That way, you can still have a usable Windows 10 system as well as run DOS bare metal if you want.