Image

It’s GW-BASIC, Jim, But Not As We Know It

Back in the old days the IBM-PC, like most of its contemporary computers, shipped with BASIC in ROM. Even after it stopped living in ROM, IBM-Compatibles shipped with GW-BASIC, and now we have a project that asks: what if they still did? Thoreau BASIC is GW-BASIC, but updated for the 21st century.

It’s meant to be code-compatible with all old GW-BASIC code — which means, yes, line numbers and GOTOs abound — but it can boot from a modern x86 PC’s UEFI or run under Windows and take full advantage of modern hardware with 64-bit memory and multithreading support. Graphics are 24-bit at any resolution your monitor can handle, and there are a number of handy built-in commands to handle file management, graphics — including sprites — mouse and keyboard input, 32-channel sound, and more. It is also not strictly an interpreted language. Programs can be compiled to run under Windows or bare-metal on UEFI x86 machines.

It’s not open source, but the project is “pay what you want” over on Itch.io, where you can also see a number of examples.

We’ve seen other attempts to revive BASIC over the years, like MoonBASIC or BASIC-256, but we have to admit it’s never going to be the dominant force it once was, regardless of how nostalgic we might get. That’s probably for the best, but it’s still nice to know you can boot to BASIC if you really, really want to. Do you think it would work with our preprocessor?

Image

Microsoft Releases The Source Code You Wanted Almost 30 Years Ago

In the late 1970s and early 1980s, if you had a personal computer there was a fair chance it either booted into some version of Microsoft Basic or you could load and run Basic. There were other versions, of course, especially for very small computers, but the gold standard for home computer Basic was Microsoft’s version, known then as GW-Basic. Now you can get the once-coveted Microsoft Basic source code for the 8086/8088 directly from Microsoft in the state you would have found it in 1983. They put up a read only GW-BASIC repository, presumably to stop a flood of feature requests for GPU acceleration.

You might wonder why they would do this? It is certainly educational, especially if you are interested in assembly language. For historical reasons, you might want to get a copy you could modify, too, for your latest retrocomputer project.

There are a few tidbits of interest. Some of the source is marked that it was translated. Apparently, Microsoft had a master implementation for some processor — real or imagined — and could translate from that code to 8088, Z-80, 6502, or any other processor they wanted to target.

From what we understand, GW-Basic was identical to IBM’s BASICA, but didn’t require certain IBM PC ROMs to operate. Of course, BASICA, itself, came from MBASIC, Microsoft’s CP/M language that originated with Altair Basic. A long lineage that influenced personal computers for many years. On a side note, there’s debate on what the GW stands for. Gee-Whiz is a popular vote, but it could stand for ‘Gates, William’, Greg Whitten (an early Microsoft employee), or Gates-Whitten. The source code doesn’t appear to answer that question.

We did enjoy the 1975 copyright message, though:

ORIGINALLY WRITTEN ON THE PDP-10 FROM
FEBRUARY 9 TO APRIL 9 1975

BILL GATES WROTE A LOT OF STUFF.
PAUL ALLEN WROTE A LOT OF OTHER STUFF AND FAST CODE.
MONTE DAVIDOFF WROTE THE MATH PACKAGE (F4I.MAC).

It wasn’t long ago that Microsoft released some old versions of MSDOS. If you have the urge to write some Basic, you might pass on GW-Basic and try QB64, instead.

GW-Basic Disk and Manual photo by [Palatinatian] CC-SA-4.0.