The Many Ways to Run QBasic in 2020

It has been a few months now since I started playing with Microsoft QBasic again. A surprising amount of that time was spent determining the best way to actually use it in these modern times. There are so many ways it can be used!

Over the past few years I have become more aware of the energy use (and cost) of my computers. This introspection has lead me to a happy place where I can get a whole desktop computing experience while only using 27 Watts of electricity (at the outlet, not including my desk lamp). That’s extremely impressive when you consider what I am getting for those 27W:

– 24″ 1080p desktop monitor.
– Full sized back-lit mechanical keyboard, a wireless mouse, and a USB SNES style gamepad.
– Desktop speakers.
– Quad core Intel CPU that performs about the same as a 95W desktop CPU from 2008.
– A full, no compromises, Linux or Windows environment.
– An uninterruptible power supply.

In practice it’s identical to using my desktop, yet it consumes 115 to 300 Watts less power! Heck, it’s even 55W more efficient than using my Pentium 233MMX based Deskpro with an SVGA LCD. That’s a whole lot of energy efficient computing and I love it!

Oh yeah… the computer is a laptop, so I can unplug it and go use it on the porch for 8 hours or more. I tell ya, it’s an impressive setup!

So that’s my personal bias when it comes to running QBasic in 2020. I am sure the ideal setup for feeling all nostalgic and junk would be to use a real 386 or 486 computer, but to each his own.

Anyway, the following is a fairly comprehensive rundown of the various ways one can use QBasic in 2020. If you’re interested, I have some benchmark data in my QBasic repo on GitHub.


DOSBox

Honestly, this is the best way to do it. There is only one downside, which I have read about yet not personally experienced: the floating point math of the emulator can sometimes cause integer math to fail in QBasic. 1 + 1 will always equal 2, but complex algorithms might produce incorrect results. That negative possibility aside, I feel DOSBox is the best option, because the setup of DOSBox is dead simple, as is its daily use, and the performance is also excellent.

Pros:
– Easy to setup and use in both Linux and Windows.
– Performs great on low-end/low-power x86 and ARM based computers.
– Can use real floppy drives.
– Can emulate 386SX 25MHz to Pentium 200MHz without getting weird.
– Able to feel very retro, depending on one’s hardware setup.
– Integrates well with Git and other host OS file management tools.
– You have the benefit of being able to quickly fire up a normal web browser, play background music, watch a video in another window, etc.

Cons:
– Gets a little weird when the cycles are set too high (screen flickering, input doesn’t always register, and other strangeness).
– Integer math might, maybe, sometimes, possibly produce incorrect results.
– Not particularly retro feeling, depending on one’s hardware setup.
– The DOSBox developers only support its use for games, so they really couldn’t give a shit if QBasic works properly. But it does! 🙂


DOSBox-X

This is basically a more complicated version of DOSBox that is focused on more accurately emulating certain CPU types. I saw absolutely no advantage to using this for QBasic over plain DOSBox. Also, I had to compile it from source, which is obviously more involved than installing normal DOSBox.


FreeDOS / MSDOS

There are three main ways to run a full version of DOS: on an old PC, on a modern PC, and in a virtual machine like VirtualBox (or DOSBox). For the purpose of using QBasic, FreeDOS provides an identical experience to using Microsoft DOS, except that FreeDOS is easier to find and install.

Modern Hardware Installation:
It’s fast as hell, but good luck getting sound and a whole lot of other things to work on your hardware. I really wanted to love this setup, but it was just a pain the ass to use (on my laptop, which would only boot from a USB connected SATA SSD). My laptop would beep using the PC speaker, which is all the sound the QBasic 1.1 IDE natively supports, but USB sticks wouldn’t work, wifi wouldn’t work, and there’s no Git for FreeDOS. Really, I’d have to use Linux to share/manage my QBasic files anyway, so why not save myself the multi-boot jamboree and just use DOSBox.

Retro Hardware Installation:
Also fast using FreeDOS, Windows 98 DOS, or DOS 6.22 on my Compaq Deskpro. Again, USB didn’t work in any of them, forcing me to boot to Windows 98 to transfer files between machines, because none of my other machines have floppy or zip drives. It’s perfectly fine to use FreeDOS on old hardware, so go ahead and use it if you don’t own a copy of Microsoft DOS. If you’re content to keep all of your QBasic stuff confined to a single machine, a real 486SX25 based desktop with a VGA monitor would be ideal for the QBasic 1.1 IDE. Kick it up to a Pentium OverDrive 83MHz or a Pentium 75MHz if you’re looking to compile graphically intense games made for Screen Mode 13 using QuickBasic 4.5 or QBX7.

VirtualBox Installation:
Yeah, don’t. It’s slower than running FreeDOS natively on the same hardware, sound and USB still won’t work, and the VirtualBox guest additions won’t work. Unless you’re using a VHD file as your fake hard drive (which the Windows volume manager can mount), managing your files is a pain in the ass. In fact, it’s still a PIA even when using a VHD, at least compared to using DOSBox on the same hardware/OS. Having tried this with both FreeDOS and MSDOS 6.22, I see absolutely no reason whatsoever to do this. None.

DOSBox Installation:

A full version of DOS is completely unnecessary for running QBasic in DOSBox. You can add a directory to your DOS path (I use C:\EXE) and copy your favorite DOS tools to it if you’d like, but really DOSBox and your host OS already have everything you’ll need to manage your files.

Pros:
– Works great on real retro hardware. It’s DOS and… it’s free!
– On real hardware, retro and modern, it’s faster than anything else.

Cons:
– Installation is more involved than DOSBox.
– Too fast on any real hardware newer than a Pentium 75.
– Too slow in VirtualBox.
– It’s an obtuse way do use QBasic on modern hardware if you plan on sharing your programs in the modern world, unless you’re well versed in and enjoy using networked programs in FreeDOS.


PCem

As the name implies, PCem is a personal computer hardware emulator. It strives to put a real old computer inside a handy window on your modern computer. Not in a fancy way with skeuomorphic graphical representations of devices, just a normal Windows or Linux window with drop down menus. On one hand it’s retro-cool when booting a real old BIOS, while on the other hand it’s as bland as using VirtualBox.

Pros:
– Objectively, for the purpose of running QBasic, there aren’t any.
– Can match the speed of real retro hardware.
– QBasic works fine with a simple MSDOS 6.22 boot disk image, assuming you can figure out how to get QBasic onto said disk image.

Cons:
– Setup requires advanced knowledge of both old PC hardware and current ways to find, install, and use unlicensed BIOS ROMs, disk images, etc.
– Requires a beefy computer to emulate anything faster than a 486DX66.
– Uses way more host CPU cycles than anything else; it’s seriously wasteful for the end result. To match my real Pentium 233MMX system at 85W, my desktop had to use 187W. That don’t make sense!
– File management is a huge pain in the ass, having to manipulate floppy or CD disk images with obscure software in Windows and complex commands in Linux. I humbly refer to this file management system as, “convoluted as fuck”.


That covers the over-all ways one can use QBasic in 2020, the most flexible and sensible being DOSBox. Now I’ll list some pros and cons of using DOSBox in the three main hardware setup you’re likely to consider.

Desktop PC Pros:
– Greatest variety of hardware, including essentially any dual core CPU based system.
– Compatible with old PCI sound and video cards. Some Intel Pentium Dual-Core (Core2) socket 775 and AMD Athlon 64 X2 socket 939 motherboards even had ISA slots.
– Most likely to create the nostalgia of using a late 1980s, early 1990s PC. You can, for instance, easily cram an ATX motherboard into a modified AT case and use it with 5.25″ floppy disks if you’d like.
– Endless ways one can configure various versions Windows or Linux to their liking.
– Paired with a 4:3 ratio, 15″ – 17″ CRT monitor and a decent keyboard, the full screen experience looks and feels identical to the old days.
– Used 4:3 SVGA LCDs are often next to free. While they clearly do not have the same presence on the desk as a CRT, some LCDs are fairly retro looking themselves.
– With x86 desktops your limits are really just time, money, and imagination.

Desktop PC Cons:
– You’ll likely need a system from 2005-2010 if you’d like to use a floppy drive.
– A poor use of electricity.
– Battery backup / uninterruptible power supplies are large, somewhat expensive, and the batteries wear out after only a couple of years.
– Obviously not portable.

Laptop PC Pros:
– Obviously portable!
– Even a first generation Chromebook, ARM or x86 based, that has been converted to a full Linux machine can run DOSBox well enough for QBasic. My fully personalized Devuan 3 setup on my Lenovo 100e “Winbook” only uses 11GB of hard drive space. A basic Linux desktop can use as little as 4GB of space and require only 1GB RAM.
– There’s plenty of variety; You can pick a laptop specifically to use for QBasic, in which case a 4:3 screen would be ideal, or you can pick a laptop that’s suits all your other needs and just happens to also run QBasic in DOSBox.

Laptop PC Cons:
– Lower resolution 4:3 screens and SVGA outputs aren’t very common anymore, yet they are ideal for using QBasic in full screen.
– Wires, wires everywhere! Desktop and tower PCs neatly tuck their wires out of one’s way, where as laptops tend to have ports and wires sticking out all over the place when using them as a desktop replacement. I suppose a Thunderbolt dock would help here…
– Not very retro feeling, outside of using an older Lenovo/IBM Thinkpad if your version of retro swings that way.

Single Board Computer Pros:

– Energy efficient and available in ARM and x86 versions.
– GPIO pins are cool!
– Small enough to fit into any case or form factor one desires. Want to pretend you’re using QBasic on a Commodore 64? Buy a C64 with a working keyboard and a Keyrah device to convert that keyboard to USB and have at’r champ! Same goes for almost any other retro computer chassis.
– Easily repurposed for other projects.

Single Board Computer Cons:
– People say they’re cheap, but they’re not. At least here in Canada anyway. $48 for a 2GB Pi 4B, $15 for the power supply, another $25 for the SD card and cables, and then you have to factor in the cost of a keyboard, mouse, and monitor. When one adds it all up, it costs almost as much as Chromebook or “Winbook” class laptop, devices which of course come with a whole host of their own benefits. As a desktop computer, none of the SBCs make any financial sense.
– More complicated than, “Open laptop, install DOSBox, run DOSBox, win!”.


Well that about wraps it up. I hope this information has been helpful to anyone who’s feeling the itch to putter with QBasic again. I should mention that while I have been referring to using the Microsoft QBasic 1.1 IDE in this article, you will be happy to know that QuickBasic 4.5, QBX7, and GWBasic also work well in DOSBox. Personally I am emulating the 386SX era of computers, so I run DOSBox at only 5000 cyles, but it’s more than happy to kick it up to Pentium 200MHz performance levels if you need the extra umph.

As far as downloading and installing QBasic, the best resource I have found is qbasic.net. They host images of all the software. DOSBox is available from the DOSBox website or the package manager of your Linux distribution.