Old BASIC programs on modern Windows: GW-BASIC, BASICA and QuickBASIC
Some of the oldest software still doing real work in UK businesses was written in BASIC. Pricing calculators, stock and job records, engineering and measurement tools, membership lists: small programs written in GW-BASIC, BASICA or QuickBASIC in the 1980s and early 1990s, often by someone in the business who has long since retired.
They tend to survive precisely because they’re small and do one job well. And they tend to cause panic when the last PC that can run them finally gives up.
Why they stop working
GW-BASIC, BASICA and QuickBASIC programs are DOS programs, and 64-bit Windows can’t run DOS programs. Since Windows 11 only comes in 64-bit, a new PC means the program won’t start.
The program itself is almost always fine. It needs somewhere to run, or a route onto something modern.
Keeping it running
GW-BASIC and BASICA programs can run under PC-BASIC, a free, open-source interpreter designed to be compatible with GW-BASIC, which runs on current Windows without needing DOS at all.
Compiled QuickBASIC programs (the ones that arrive as an .EXE) need a DOS emulator. vDos is usually the best choice for business use, because it handles shared files and printing to modern Windows printers far better than game-focused emulators.
Recompiling it
If you have the source code, QuickBASIC and QBasic programs can often be recompiled with QB64, an open-source compiler that is largely compatible with QuickBASIC and produces native Windows programs. That removes the need for an emulator, and gives you code that can be maintained and extended.
GW-BASIC code with line numbers can usually come across too, with some tidying.
The data files are the tricky part
Unlike FoxPro or dBase, BASIC programs rarely used a standard database. They wrote their own files, in whatever layout the original author chose. That creates some traps.
Custom record layouts. Random-access files are laid out field by field by the program itself, so the program’s source code, or careful detective work, is needed to read them.
Old number formats. Programs from this era often stored numbers in Microsoft’s own binary format rather than the standard format modern software expects. Read them naively and every price, quantity and measurement comes out as nonsense.
Tokenised source files. GW-BASIC often saved programs in a compressed binary form rather than plain text, so the source may look unreadable until it’s converted.
None of these are hard for someone who has worked with them, but they catch out anyone trying to import the files into Excel directly.
Replacing it
Because these programs are usually small and focused, they’re often ideal candidates for replacement: a simple web application, a well-built spreadsheet tool, or a module in a platform such as Odoo. The old program is the specification. Every calculation it performs can be checked against the new one before you switch over.
Where to start
If you’re not sure what you have, a Health Check will find out: what the program does, whether the source exists, what the data files contain, and the cheapest safe route forward.
Related guides
- Replacing old business software without losing what works
The warning signs, the choices, and how to replace an old system without disrupting the business.
- Choosing a legacy software migration company in the UK
The kinds of company that do this work, what each is good for, and the questions to ask before you sign.
- Fixing "Cannot locate the Microsoft Visual FoxPro support library"
What the error means, how to find the right runtime, and how to register it properly on 64-bit Windows.