FreeDOS on physical hardware

Last Updated on April 1, 2024 by Dave Farquhar

Vintage computing has gotten expensive. One way to enjoy the vintage computing experience on a budget is to install FreeDOS on aging physical hardware that isn’t quite old enough to be collectible, building what some people call a time machine. I had someone ask me on Mastodon to walk them through the process.

The goal was to walk someone through a project that would be affordable and not require someone to have a storage unit full of hardware already. If you’re ready to graduate from DOSBox or FreeDOS on VirtualBox and onto bare metal, this project is for you.

Note: This blog post is really intended to cover running FreeDOS on (relatively) modern hardware. If you want to go the other direction and run FreeDOS on XT and AT-class systems, take a look at SvarDOS, a project to provide an 8088-optimized build of FreeDOS on media suitable for older machines.

The problem of the $9 vintage PC

FreeDOS on physical hardware
Early 2010s office PCs that can’t run Windows 11 make reasonable DOS boxes today.

There have been a number of YouTube videos over the years talking about this kind of project, but one problem is every time someone posts a video bragging about building a retro PC time machine on modern-ish physical hardware that costs $9, demand for that hardware goes through the roof. The $9 time machine quickly becomes a $70 time machine.

The goal here is not to be terribly machine specific. You can probably get an office PC from the Windows Vista or Windows 7 era cheaply locally. Rather than tell you specific things and cause a gold rush, I’m going to give you some ideas of what to look for and how to get it working.

In my case, I had a Dell Optiplex 7010 that I wasn’t using anymore. It’s typical of a boring office PC that runs Windows 10 adequately but won’t support Windows 11. Office buildings were bursting with these systems in the early/mid 2010s.

I installed a 250 GB SATA hard drive and it took me about 15 minutes to install DOS.

In this machine’s favor, it has PS/2 ports and a real RS-232 port. USB support in DOS can be spotty, so ideally, you want a machine that has those legacy ports. Some BIOSes will emulate PS/2 with USB, but you can’t tell that from looking at the outside. But you can see PS/2 ports just from looking.

Don’t worry much about the CPU. DOS only uses one core, so a low end machine with a Celeron or Pentium CPU rather than an i3 or i5 is just fine. Don’t worry about chasing i5s or i7s. What about AMD? I like AMD, but DOS support for their hardware is spottier than Intel.

Sound and networking

This particular machine isn’t what I would call ideal, but its limitations are also fairly typical. It works, the caveat being it only has a single PCI slot. The on-board network card isn’t compatible with DOS, so the question became whether I install a sound card or a network card.

Sound has also traditionally been a problem but that situation is improving. SBEMU is a project to provide legacy SoundBlaster compatibility with AC97, Intel HDA, and recent-ish Sound Blaster PCI cards like a Sound Blaster Live or Audigy. Purists may say SBEMU is cheating, but in the 90s, it was super common for off-brand sound cards to provide drivers that emulated Sound Blasters in software, with varying results. I’ll argue that SBEMU is just extending a mid-90s practice to newer hardware.

A single PCI slot isn’t nearly as much of a limitation if your motherboard’s onboard sound works with SBEMU.

Those caveats aside, I found my Optiplex 7010 runs FreeDOS rather well, didn’t take long to build out, and it’s the type of PC you stand a reasonably chance of being able to acquire locally at a reasonably low price. If you don’t have a PCI network card, the Intel Ether Express Pro 100 that I used is readily available on eBay for around 15 dollars.

Is small form factor hardware OK for FreeDOS?

Small form factor PCs tend to be cheaper than minitowers. The caveat with a small form factor system is PCI. Small form factor hardware often eschews PCI slots to save space, so get a good look at the motherboard before committing to a purchase. The other caveat is that the slots will be shorter, so be prepared to acquire a small form factor PCI bracket for the network card, or 3D print one.

Creating FreeDOS media for physical hardware

I downloaded the current FreeDOS 1.3 distribution as a USB image. You can use the CD image if you like, but I didn’t want to assume that someone has a functioning optical drive in the target PC or has recordable CDs laying around. You can get a USB stick at the nearest retail store for $5 and it makes a convenient way to move media to the machine.

I used Win32 Disk Imager to write the image to the USB stick. You can use that if you like, or use your favorite USB media creation tool. UNetbootin would also work and it has the advantage of working from Linux or Mac OS if that’s what you use for a daily driver. You can probably use plain old dd from a Linux or Mac machine too, if you’re comfortable with command lines and finding the device name of your USB drive.

Preparing the physical hardware for FreeDOS

Every machine will be a little bit different, but a general guideline to use is to go into the setup utility, look through all of the available options, disable anything related to secure boot, and enable anything that says legacy.

Plug the USB stick into an available USB port, and boot off USB. The way to do that also varies. On Dell computers, mashing the F12 key during boot up brings up a menu. HP computers are similar.

FreeDOS installation is very intuitive. The only part I expect to be confusing is partitioning the drive. The tool for creating partitions is called FDISK. That stands for fixed disk, by the way, which was an early name for a hard drive. The first question it will ask is whether you want to use large disk support. Large disk support is otherwise known as FAT32. That allows partitions larger than 2 GB, but at the expense of some compatibility. I chose no.

Depending on what is already on the machine, you will need to delete some partitions to make space. The drive may have DOS partitions, extended DOS partitions, and non-DOS partitions, or any combinations of them. Delete those partitions, then create a primary DOS partition, then set it active. Perhaps confusingly, the hard drive that it brings up will be called D. That’s okay, FreeDOS will figure it out.

After you exit the tool, it will want to reboot. Choose yes. Follow the process to boot off USB again, and the installer will offer to format the hard drive. Let it format the drive, and then let the installer take over. Answer its questions, and in about 5 minutes if all goes well, the machine will boot to a DOS prompt.

USB support

This specific machine’s USB isn’t compatible with FreeDOS, but I did find that if I plug my USB stick with FreeDOS on it into the machine when I power it up, and then boot off the hard drive, the BIOS passes the USB media along to DOS and FreeDOS will see the USB stick as drive D. This provides a convenient way to get files onto the machine, as I can simply copy files to the FreeDOS installation USB, then plug it into the FreeDOS machine, boot, and copy files off drive D.

Configuring networking

FreeDOS doesn’t install every network driver by default. The FDIMPLES package manager contains drivers for a large number of compatible cards. Intel 1000 MB and 100 megabit drivers are packaged separately. There is another large collection from Crynwr that you can install.

I used an Intel 100 megabit PCI card, mostly because it has good DOS compatibility, and it’s something you’ll be able to find readily. The Realtek 8139 is another card that is very easy to find and easy to configure, but they cost about the same, and if I’m going to pay $15 either way, I’d rather have the Intel.

I have not had good luck with 3Com 905 PCI cards in DOS. They are fantastic in Windows, but I cannot get them working reliably in DOS.

I’ve also had success with DEC Tulip-based cards in FreeDOS, so if you happen to have one of those, it can work.

After you install the card, you need to run the packet driver, then you can run the DHCP client, then you can run various TCP/IP utilities almost like it’s Linux. FTP is very useful for getting software to and from the machine.

I have a stash of PCI network cards somewhere, so as I dig them out, I’ll figure out how to get them working in FreeDOS and relate my experience with it.

A fun, affordable project

It’s possible you may have reasonable candidate hardware laying around, since we are talking modern-ish but obsolete hardware here. Even if you need to buy a PC and a suitable network card, it’s likely you can find something locally for much less than $100. The computer recycler nearest me charges about $40 for old corporate desktops that don’t run Windows 10 very well. They sell random PCI Ethernet cards for $10 to $15, and if they have a 4×3 monitor, they’ll sell that for around $20. If they don’t, 4×3 monitors still turn up occasionally at thrift stores, usually for less than $20.

Craigslist isn’t as good as it used to be for finding cheap obsolete computer hardware, but with some patience it’s still possible.

You can make it about the journey as much as about the destination. Pull something together on a shoestring, then improve it as opportunities present themselves.

If you found this post informative or helpful, please share it!