DEV Community

Chronic Engineering
Chronic Engineering

Posted on

Running DOS and OS/2 on Windows with AQEMU, and getting files in by "floppy"

Every so often someone asks me how to get MS-DOS, FreeDOS or OS/2 Warp running on a modern Windows PC without hand-writing a QEMU command line. I maintain AQEMU, a Qt front-end for QEMU on Windows (x64 and ARM64) and Linux, so this is the short version of how I do it, with the settings the app actually uses.

Why these guests run on TCG, on purpose

DOS and OS/2 expect a 1990s PC, and they're happier on plain emulation than on a hardware accelerator. So when you pick MS-DOS, PC DOS, DR-DOS, OS/2, eComStation or ArcaOS in the wizard, AQEMU switches on Force TCG (QEMU's software emulator) for you. FreeDOS uses qemu-system-i386, which is TCG only anyway. That also means the same profile behaves the same way on an x64 machine and on a Windows on Arm laptop.

Making the VM

  1. Click Add New VM (or press Ctrl+N).
  2. Under Guest Operating System, open the Microsoft (DOS) or IBM (OS/2) branch and pick the OS.
  3. On Confirm QEMU system, check the computer and machine type. They're pre-filled and you can still change them.
  4. Click through Accelerator, Name/CPU, Disk, Devices and Network, then Finish.
  5. On the VM's Media tab, point the CD/DVD drive at your installer image and start it.

You bring your own installer media and any licence the OS needs; AQEMU doesn't ship operating systems.

The starting points the wizard uses

These come straight from the profiles in the repo (resources/wizard_trees.json):

OS Emulator Machine CPU RAM Disk NIC
MS-DOS / PC DOS / DR-DOS qemu-system-i386 pc-i440fx 486 32 MB 2 GB ne2k_pci
FreeDOS qemu-system-i386 pc-i440fx max 64 MB 2 GB ne2k_pci
OS/2 qemu-system-i386 pc-i440fx pentium3 512 MB 4 GB rtl8139
eComStation / ArcaOS qemu-system-i386 pc-i440fx pentium3 512 MB 8 GB rtl8139

A few tips the wizard shows that saved me time:

  • FreeDOS handles FAT32, long file names and CD-ROMs better than MS-DOS, so it's a nice first guest.
  • MS-DOS needs a 32-bit (i386) machine. A 64-bit guest can't run DOS.
  • OS/2 Warp is fussy: Cirrus video, ACPI off, IDE rather than VirtIO, rtl8139 networking, ES1370 sound, 512 MB and one CPU. If you hit LVM Error 9 during install, it's usually VirtIO or ACPI.
  • eComStation and ArcaOS want the same IDE-not-VirtIO, ACPI-off treatment.

Windows 1.x to 3.x, 95 and 98 have their own profiles too, covered in the Windows guests guide.

Getting files into a DOS guest

This was the bit I always found painful with retro guests: no guest additions, no shared folders, no network stack you want to fight with. In AQEMU the easiest route needs nothing installed in the guest:

  1. Start the VM.
  2. Copy the files on your host (Ctrl+C) and click Paste files on the session toolbar, or just drag them onto the guest window.
  3. Confirm the list, then in the guest look at floppy drive A: (small copies, if the VM has a floppy) or a USB drive named AQEMU.

Each paste makes a fresh floppy or USB disk, and bigger copies (up to 512 MB) become the USB drive. For a DOS game or a driver disk, that's usually all you need.

Where to get it

AQEMU is GPL-2.0 and the source is on GitHub, with the full DOS and OS/2 guide in the docs. The Windows build is on the Microsoft Store with a 7-day free trial, then a one-time purchase (the Store shows the current price). It bundles QEMU 11 and has 195 guest profiles across 29 architectures, if DOS isn't old enough for you.

If a retro guest misbehaves, open an issue on GitHub and tell me which OS and what you saw. I'm one person, but I read every one.

Top comments (0)