Basic Will Never Die: Microsoft Open Sources GW-BASIC

Microsoft has open sourced GW-BASIC, a programming language developed some 38 years ago.

GW-BASIC and variants such as QBasic, QuickBasic and others provided the onramp to computer programming for many industry veterans.

(That includes this reporter, who vaguely remembers inserting two 5-1/4 in. floppy disks into a CP/M Kaypro machine, one for the OS and one for the data. I eventually found out (although maybe it was later, on a Compaq DeskPro 286) a DEBUG command would spew out a bunch of strange characters along with occasional snippets of text, and that you could substitute that text as long as it was the same length, so you could turn "Abort, Retry, Fail?" into "Abort, Crash, Fail?" if you wanted in order to customize your error message just for fun. From there I was off and running.)

Last week, Microsoft, even though it has decided not to evolve the latest variant -- Visual Basic -- as a language, threw a bone to Basic diehards.

"Since re-open-sourcing MS-DOS 1.25 & 2.0 on GitHub last year, we've received numerous requests to also open-source Microsoft BASIC," said Rich Turner, Sr. Program Manager, Windows Console & Command-Line, in a blog post.

"Well, here we are!"

As might be expected from the rabid Basic crowd, the post was replete with commentary, 52 as of this writing. The latest comment came just yesterday, on Memorial Day: "I learned to code 32 years ago in GW-BASIC . This certainly takes me back."

The code being open sourced comes from Feb. 10, 1983, and it's all in assembly, so be prepared to deal with stuff like this:

A GW-BASIC Code Snippet
[Click on image for larger view.] A GW-BASIC Code Snippet (source: Microsoft).

The project's "Microsoft GW-BASIC Interpreter Source Code" GitHub site states the code:

  1. Is being released for historical reference/interest purposes, and reflects the state of the GW-BASIC interpreter source code as it was in 1983
  2. Will not be modified - please do not submit PR's or request changes
  3. Contains no build scripts, makefiles, or tools required to generate executable binaries, nor does it contain any pre-built binaries / executables

For a trip down memory lane, check out the post, which includes fond recollections from Turner and many commentators.

About the Author

David Ramel is an editor and writer for Converge360.

comments powered by Disqus


  • Data Prep for Machine Learning: Normalization

    Dr. James McCaffrey of Microsoft Research uses a full code sample and screenshots to show how to programmatically normalize numeric data for use in a machine learning system such as a deep neural network classifier or clustering algorithm.

  • Microsoft Intros Azure Well-Architected Framework Best Practices

    Taking a page from the Amazon Web Services (AWS) book on cloud computing platforms, Microsoft has introduced its own Azure Well-Architected Framework, providing a set of architecture best practices to help users build and deliver great solutions and improve the quality of cloud workloads.

  • Creating a Progressive Web App with Blazor WebAssembly

    Not surprisingly, it's dead easy to create an app in Blazor that runs outside of the browser window and (potentially) in an offline mode. Before you get carried away, though, there are some key design decisions to make.

  • GitLab Takes Over VS Code Extension, Plans Improvements

    DevOps specialist GitLab has officially taken over the control of a GitLab extension for Microsoft's open source, cross-platform Visual Studio Code editor.

  • VS Code Python Tool Now Does Native Notebooks

    The Python Extension for VS Code Insiders team is previewing the newest implementation of notebooks, used frequently in data science with offerings such as Jupyter Notebooks.

.NET Insight

Sign up for our newsletter.

Terms and Privacy Policy consent

I agree to this site's Privacy Policy.

Upcoming Events