Why Can’t 64-Bit Operating Systems Run 16-Bit Apps?

Once computers started using the modern 64-bit architecture, users soon realized that running those old 16-bit applications wasn’t going to work. Why can’t 64-bit machines run 16-bit apps?

The answer to that question can be confusing, depending who you ask. For one thing, it isn’t actually impossible to run 16-bit apps. It’s just difficult. Secondly, the reason for this difficulty lies in both the CPU architecture and the operating system.

Confused yet? Don’t worry, you aren’t alone. But by the time you get to the end of this article, you won’t be confused anymore.

The History of CPU Architecture

I know, the last thing you want to read is a history lesson, right? Don’t worry, this is a short one. It’s also critical to understanding why 64-bit systems can’t run 16-bit apps natively.

If you lived through the 80s and the 90s, then you probably remember those old 16-bit dinosaurs that everyone at the time believed was bleeding-edge technology.

why 64-bit can't run 16-bit applications

At the time, it was. Those old machines ran the Intel 8086 processor in 1978. The processor was able to access an address space of 1Mb using 16-bit addressing. With earlier machines running off 64 Kb of memory, this was a tremendous advancement and marked the beginning of a new age in personal computing.

In this mode (called Real mode), a portion was reserved for RAM, and the rest was utilized by the BIOS and computer hardware like the graphics card.

A little later came a further advancement in CPU architecture with the 80286 processor, capable of addressing 16Mb using 16-bit addressing. With the 286 architecture came “Protected mode,” with features that not only allowed for the addressing of more memory, but also multitasking. Running older 16-bit applications in “real mode” wasn’t always easy, but it was possible.

The End of 16-Bit, Sort Of…

In 1985, Intel introduced it’s next generation processor: the Intel 386. This was Intel’s first CPU that could address memory using 32-bits at a time, and could access a whopping 4 Gb of addressible memory. At the time, this seemed to computer users like a major breakthrough. PC gaming was about to enter its heyday.

why 64-bit can't run 16-bit applications

Along with the advent of 32-bit architecture came an extended version of Protected mode that not only allowed for the ability to access more memory, but it included a set of features where software could flag to the system whether it was 16-bit or 32-bit code. This was made possible by what’s known as Virtual 86 mode, which was essentially a built-in virtualized 8086 system.

As you can see, from one evolution of CPU architecture to the next, both the hardware (CPU programming) and the software (operating systems and applications), maintained backwards compatibility for all of those users who still had very old software that they wanted to run. For individual computer users, this was useful, but for many corporations and small businesses, it was critical for legacy systems.

64-Bit Architecture Ruined Everything

The limit of 4GB of addressable memory remained a crutch for 32-bit systems for many years. However, with the invention of 64-bit processors came another breakthrough. These systems included a new mode (known as Long mode) capable of addressing up to 16 million terabytes of memory. It’ll probably be a long time before this becomes a limiting factor for computer applications.

However, with this tremendous advancement came a significant tradeoff. When users attempted to run 16-bit applications that required the long-supported “real mode” or “virtual 8086 mode,” they discovered an error message that read, “Program.exe is not a valid Win32 application.”

why 64-bit can't run 16-bit applications

It was frustrating, but it wasn’t the end of the world. Users could use emulators


Make Your Old Games and Software Run in Windows 10




Make Your Old Games and Software Run in Windows 10

Most Windows applications will work on Windows 10. However, applications designed for Windows XP and before, may cease to function. Before you give up hope, try our tips getting that old application up and running.
Read More

or install virtual machines


VirtualBox vs. VMware Player: The Best Virtual Machine for Windows




VirtualBox vs. VMware Player: The Best Virtual Machine for Windows

Are you struggling to decide which virtual machine software to use? VirtualBox and VMware Workstation Player are both free. But which one is best for you? Let us help you find out!
Read More

running 32-bit architecture and operating systems capable of supporting legacy 16-bit applications.

So while it’s “impossible” for 64-bit systems to run 16-bit MS-DOS applications, it isn’t impossible for users to do it using a workaround. But why did this happen?

64-Bit Architecture Removes the NTVDM

In every generation of 32-bit processor through the years, there was a lot of effort put into the operating system for the system to handle older 16-bit DOS applications. It was accomplished using what’s known as the NTVDM, or NT Virtual DOS Machine.

This 32-bit application ran in the Windows operating system and simulated a 486 architecture capable of handling 16-bit addressing using virtual 8086. Unfortunately, “long-mode” addressing couldn’t accomodate this safely. Instead, it would have required emulating a full 8086 processor simply to support running DOS applications.

why 64-bit can't run 16-bit applications

Microsoft clearly made a decision to ditch this effort in order to support the prompt release of its first 64-bit operating system. On its support page, Microsoft clearly states that “16-bit MS-DOS and Microsoft Windows 3.x utilities will not start.”

No apologies. It’s simply not supported.

With the plethora of virtualization products on the market capable of accomplishing this anyway, Microsoft clearly didn’t feel that it was in its best interest to reinvent the wheel.

How to Run 16-Bit Applications on 64-Bit Systems

Just because running 16-bit DOS applications isn’t supported natively on 64-bit Windows systems, that doesn’t mean it’s impossible. You just need to install some extra tools to set things up.

If you enjoy classic DOS games


7 Sites To Find The Best Classic DOS Games




7 Sites To Find The Best Classic DOS Games


Read More

or use any other retro applications from the good old days of computing, there are options. Here are four ways you can run them on your new Windows machine.

1. Play Retro Games With DOSBox

One of the easiest ways to run old DOS apps on your PC is to use an emulator. One of the most popular of those is DOSBox.

Christian detailed how to install and configure DOSBox to run old retro games


How to Play Retro Games on Any Platform With DOSBox




How to Play Retro Games on Any Platform With DOSBox

Want to play retro PC games on your computer, phone, or game console? Here’s everything you need to know to get started with DOSBox, including the best games to emulate!
Read More

on your Windows machine.

why 64-bit can't run 16-bit applications

The great thing about this is that most of these games are so old that they’re considered abandonware


7 Sites To Find The Best Classic DOS Games




7 Sites To Find The Best Classic DOS Games


Read More

, so you can legally download and play them for free.

2. Run Apps Inside VirtualBox

Since operating systems like Windows XP and Windows 7 could run 16-bit applications natively, you can run the same applications on your 64-bit system by building a virtual machine with one of those operating systems on it.

One of the most well-known and easy to set up applications for this is VirtualBox. We have a complete guide on how to set up and use VirtualBox


How to Use VirtualBox: User’s Guide




How to Use VirtualBox: User’s Guide

With VirtualBox you can easily install and test multiple operating systems. We’ll show you how to set up Windows 10 and Ubuntu Linux as a virtual machine.
Read More

, so you can get started using this approach right now.

why 64-bit can't run 16-bit applications

Just make sure to choose the right operating system to install. Stick with Windows 7 or earlier, and you can download and install old DOS apps on your virtual system in no time.

3. Use Linux

Say what you will about Linux, one thing that most Linux distros have right is support for 16-bit applications. Distros with the PAE kernal, you aren’t limited to the 4GB of 32-bit systems, so running a proper Linux distro as a dual-boot on your system is another option.

why 64-bit can't run 16-bit applications

Two options to do this: a dual-boot solution or a virtual machine


What’s the Best Way to Run Multiple Operating Systems on Your PC?




What’s the Best Way to Run Multiple Operating Systems on Your PC?

Undecided between Windows and Linux? It’s possible to run multiple OSes on a single machine either by dual booting or using a virtual machine. Let’s find out which one is best for you.
Read More

. Or you could just dump Windows entirely, and go with Linux


6 Things That Ubuntu Does Better Than Windows




6 Things That Ubuntu Does Better Than Windows

Some think that Ubuntu is for nerds – but the truth is that Ubuntu is just as easy to use as Windows. In fact, there are several things Ubuntu does better than Windows 10.
Read More

. Whatever works for you.

4. Use Emulators

DOSBox isn’t the only emulator available for the purpose of running old DOS apps. There are lots of great emulators out there that work just as well. This is especially true if you’re a gamer.

Christian has covered how to emulate a Commodore Amiga, a Raspberry Pi, an Android, and even classic SNES on any PC.

why 64-bit can't run 16-bit applications

This is just the tip of the iceburg. If you search online you’ll find a whole library of different emulators out there that’ll let you run just about any retro app you can imagine. Microsoft might have given up on old 16-bit applications from back in the day, but you still have options.

Don’t Give Up on 16-Bit

There is no reason whatsoever that you should think it’s impossible to run 16-bit applications on a 64-bit machine. It may be impossible natively, but as you can see there are lots of solutions to accomplish the task.



via MakeUseOf.com
Why Can’t 64-Bit Operating Systems Run 16-Bit Apps?