Success With FreeDOS On A Modern Platform

Last summer we took a look at FreeDOS as part of the Daily Drivers series, and found a faster and more complete successor to the DOS of old. The sojourn into the 16-bit OS wasn’t perfect though, as we couldn’t find drivers for the 2010-era network card on our newly DOS-ified netbook. Here’s [Inkbox] following the same path, and bringing with it a fix for that networking issue.

The video below is an affectionate look at the OS alongside coding a TRON clone in assembler, and it shows a capable environment within the limitations of the 16-bit mode. The modern laptop here can’t emulate a BIOS as it’s UEFI only, and after trying a UEFI-to-BIOS emulator with limited success, he hits on a different approach. With just enough Linux to support QEMU, he has a lightweight and extremely fast x86 BIOS platform with the advantage of legacy emulation of network cards and the like.

The point of Daily Drivers is wherever possible to use real hardware and not an emulator, as it’s trying to be the machine you’d use day to day. But we can see in a world where a BIOS is no longer a thing it becomes ever more necessary to improvise, and this approach is better than just firing up an emulator from a full-fat Linux desktop. If you fancy giving it a try, it seems less pain than the route we took.

You can read our look at FreeDOS 1.4 here.


FreeDOS logo: Bas Snabilie for the FreeDOS Project, CC BY 2.5.

15 thoughts on “Success With FreeDOS On A Modern Platform

  1. i used to run freedos mostly using it as a media player through mpxplay and running some old dos games sometimes. i wanted to try my hand at dos programming, but not sure any of my machines have a legacy bios option. think id be better off getting one of those chinese dos tops. but the possibility of a multicore software renderer in dos still haunts me.

    1. There is pretty neat project that returns the days of lore, “classical” DOS 6, CP/M, etc etc. TTGO’s VGA32 board running FabGL. Works with the old PS/2 keyboard/mouse and delivers, you guessed it, VGA. All virtual though, not sure how BIOS is handled, since it is running on older ESP32 chip, but it is quite easy to set up and run.

      1. I love DOS! 🩶 Thanks a lot for the tip! 😃
        The classic DOSes I use for testing are MS-DOS 6.2x and PC-DOS 3.30, btw.
        PC-DOS 3.30 is great for 80s era software/hardware, while MS-DOS 6.2x “just works”.
        FreeDOS is great for high-end experience, since it supports LBA/FAT32 and has modern drivers/utilities, I think.
        It’s a fine alternative to using MS-DOS 7.1 (Windows 98 DOS).
        Whenever I’m looking for “trouble”, I try to get DOS Plus 1.2 working on exotic or wonky hardware.
        It’s the DOS that shipped with Amstrad PC1512 and uses CP/M-86 as a basis. It can run CP/M-86 applications, too.

  2. I know practically nothing about the workings of UEFI. And I don’t currently run DOS despite having old machines kicking around.

    But, I am still curious for no discernable reason…

    Is the translation of DOS BIOS calls to UEFI something that could be written into FreeDOS? Or would there have to be umpteen dozen machine/manufacturer specific flavors? Or is that just crazy talk?

    1. Hi! There’s CSMWrap, for example.
      Running DOS without BIOS is possible, as many “DOS compatibles” from the have proven.
      Such as Sanyo MBC 555 and the other early PCs.
      Most DOS applications do use System BIOS or VGA/VESA VBE BIOS, though.
      So DOS needs to trap/virtualize calls to them. Via an TSR that runs by help of EMM386 or QEMM, for example.
      Programs like SoftMPU or SBemu utilize them to emulate hardware that way.
      AracaOS, an OS/2 successor, can run DOS applications in a DOSVDM on an UEFI system.
      It thus provides some sort of BIOS emulation to make them happy.

    1. Seriously, though, NICs are always a bit tricky.
      In the old days, many network cards had NE2000 compatibility.
      It was comparable to the Sound Blaster compatibility of the sound card world.
      For DOS, a simple packet driver is most important.
      With it, many network programs can talk to the network card.

      http://www.georgpotthast.de/sioux/packet.htm
      https://packetdriversdos.net/

      The Dells I had, such as Optiplex 360, had an on-board NIC that was non-standard.
      Couldn’t get it to work on MacOS X or DOS. But a Linux live distro detected it fine.
      I recommend getting a PCI or PCIe network card here.
      There are many cheap ones made up until early 2010s that are low-profile (small PCB) and have DOS, OS/2, NT and Unix drivers.
      Novell Netware drivers, too, often.

      PCI network cards from the 90s do support NE2000 in most cases.
      They maybe be used in PCIe slots via an PCI-PCIe adapter card, if needed.

      If that’s not working, then it’s possible to use external network “cards” hat connect via parallel port. Every serious office PC should have one.
      These old network devices do often have DOS drivers, among other things.
      If they lack an RJ45 connector, an external transmitter with RJ45 ports maybe can connected via AUI connector (if available).
      If merely BNC is available, then an old router/switch/bridge with both an BNC an RJ45 connrctor can be used as a media converter.
      Just don’t forget to use two T-pieces and two terminators (one grounded/with metal chain), even if it’s just one coaxial cable.

      About CD-ROM support.. Many SATA ports can be addressed as IDE/ATAPI still (check BIOS settings for legacy/compatibility mode).
      Otherwise, just install an IDE/RAID controller for PCI bus.
      Most DOS drivers are fine with CD-ROM, DVD and Blu Ray drives.
      Software wise, they all appear as normal CD-ROM drives.
      Though there are also real DVD-ROM drivers for DOS, which can read DVDs.
      http://win31.de/edrivers.htm

  3. I recently loaded FreeDos into a KVM (on KUbuntu) and it runs fine, however so does dosbox and dosbox-x . All three seem to run Turbo Pascal, Turbo C and other retro applications great. Develop code for DOS still today. It has been fun to reminiscence about the time when computing was ‘really really’ fun and our mind(s) were churning out ideas as we had ‘access’ at home and work to ‘real’ computers… ‘Sneaker Net’ your code back into the office after a night of hacking out a prototype (and this using for a real product) of an idea you have… No security to worry about really. Just write it, test, and deploy. We were having fun and getting paid for it to boot.

    Now, not so much fun work wise, but still can hack away at home on robotics, home automation, etc. with small SBCs and micro-controllers. A month or so ago it was fun to get a temp/humidity sensor, read/reread its datasheet, wire it up to a Pico 2, and then implement a code module to use it. Still can get down to coding the ‘bits and bytes’ ! So coding can still be fun and rewarding… just different from those first years.

    1. Sounds fun! 😎
      About “sneaker net”.. I remember using null-modem connections before having real network cards.
      The simple 3-wire version with faked RTS/CTS and DTR/DSR handshaking was popular.
      There were many Public Domain and Shareware drivers/utilities on DOS platform that used an null-modem connection.
      FileMaven 3, for example. Novell DOS 7 had included an utility, too.
      MS-DOS 6 included a LapLink style application, also.
      Norton Commander 5 had a built-in file transfer utility, too.
      PC-Tools 7 had communications software, too, with remote feature.
      Speaking of LapLink, the more advanced users had used a parallel cable
      that was multiple times faster than serial.
      Such a cable often was casualky called LapLink cable, if memory serves.

  4. QEMU/KVM is wonderfully capable and with some helpful hints from virtuallyfun you can get networking for almost no effort. Video is about the only letdown I’ve had by going that route. I’ve built a multi-node BBS on top of QEMU/KVM with Netware & DOS running in QEMU with 260 VMs running side by side with plenty of resources to spare. I have not tried the various GPU emulation plugins for QEMU yet, generally I go for 86box / PCem when looking for that. I’ve had OK results running half a dozen instances of DOOM in dosbox on top of Windows MultiPoint Server, though it tended to suffer with anything more than about 4 instances on a 4th gen i5.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.