A couple years ago Microsoft release the source for MS-DOS versions 1.25 and  2. FreeDOS, a projected start in 1994, is on the second Release Candidate for version 1.3, 4 years since the release of version 1.2.

I wanted to do some work in some old productivity applications


Back in the day I had a 2 computer IPX/SPX coax (I believe 10base2) network, but FreeDOS has a TCP/IP stack as long as you can find a proper driver for your network card, and even Arachne, a graphical web browser.

I have an old Atom D2500 Dual Mini ITX based computer I use to run pfSense on so decided to setup FreeDos on it. Getting FreeDos installed was super straight forward but I wasn't able to find a packet driver for the onboard network cards, so eventually decided to install Linux and let it handle the actual hardware and run DOS virtually.

First my plan was to install Ubuntu 20.04 Server and install SDDM and Openbox to run FreeDos in qemu which the networking package in FreeDOS includes a network driver for. I also wanted to automatically log in and start the qemu FreeDOS VM in full screen mode.

Load Fullscreen FreeDOS qemu VM at boot

Install Programs

sudo apt-get install alsa pulseaudio qemu-system-x86 gtk openbox xinit sddm

Setup qemu

qemu-system-i386 -m 32M -drive file=dos.img,media=disk,format=raw

qemu-system-i386 -m 32M -drive file=dos.img,media=disk,format=raw -net nic,model=pcnet -net user -drive file=FD12CD.iso,media=cdrom -boot order=d

Openbox Autostart

Edit ~/.config/openbox/autostart

# Programs that will run after Openbox has started


Auto Login to SDDM

Edit /etc/sddm.conf


Launch script

#! /bin/bash

qemu-system-i386 -m 32M -k en-us -rtc base=localtime -soundhw sb16,adlib -device cirrus-vga -full-screen -drive file=dos.img,media=disk,format=raw -net nic,model=pcnet -net user

For some reason the installer ran really slow, but then FreeDOS ran fine, unfortunately Alley Cat did not.

Next I looked into DosEMU, which is a DOS emulator. I ran into an issue trying to compile it myself related to cross compiling from amd64 to x86 and linking to the correct library. So I took a shortcut and installed Ubuntu 18.04 which has DosEMU in the repository.

Installing and starting it was simple enough but getting the network going was a little involved and most the documentation I could find used the deprecated ifconfig instead of ip tools.

Looking into it more it seems that for the productivity tools I really needed some emulated hardware for sound cards, etc which it looks like DosBox really is the best solution since I wasn't going to run on the direct hardware anyways.

Getting DosBox installed is simple since it's in the repository and you can configure the start up environment with the DoxBox.conf file which is really straight forward.

In the future it would be cool to replace the larger ITX box with something smaller like a Raspberry Pi 4, which also has a built in wireless nic.