Software Spotlight: Microsoft BASIC

edited December 2015 in Software Spotlights
Cleaned up and re-organized the Microsoft Basic (pre-VB) entries a bit and made some additions. The early versions of Microsoft Basic are very difficult to sort because there were so many variations and platforms.

Doesn't really feel very organized. But I could still move some things around if needed.

First of all, Microsoft did not invent the BASIC language. They just made many implementations of it.

BASIC, or Beginner's All-purpose Symbolic Instruction Code is a high-level language designed for use by less technical people. Or more specifically, those who are to lazy to learn FORTRAN :P

Microsoft BASIC was first developed for the Altair, and was Microsoft's premier product.

Microsoft implemented ROM BASIC for many early computers, including the Apple II's "AppleSoft" BASIC, and the IBM Personal Computer.

But what we care more about around here are the disk-based versions.

Microsoft's implementation for CP/M-80 on 8080/Z80 CPUs is generally called "BASIC-80". It is also sometimes referred to as "MBASIC", the file name most CP/M systems gave it.

Microsoft's first implementation for 8088/8086 CPUs is referred to as BASIC-86. The first versions were ROM based and developed in conjunction with Seattle Computer Products x86 hardware. A ROM based BASIC-86 (named IBM Cassette Basic) was also included with the IBM PC.

The first few versions of IBM PC-DOS include "Disk Basic", that depend on the IBM PC's BASIC ROM. On the IBM and compatible platforms, disk based BASIC-86 was available in two flavors. "Disk BASIC" (BASIC.COM) or "Advanced BASIC" (BASICA.COM). Advanced BASIC used more memory, and included graphics commands.

Other 86-DOS/MS-DOS OEMs bundled BASIC-86 version 5.x (yes, they were already up to 5.x here), which did not require BASIC in ROM, and was mostly a direct port of BASIC-80.

At the same time, Microsoft also made available a seperate BASIC-80 and BASIC-86 compiler. IBM licensed versions of this compiler as "IBM Personal Computer BASIC Compiler".

BASIC-86 was eventually replaced by GW-BASIC, a somewhat different product with the features of Advanced Basic. And a completely different version numbering.

The compiler product was reworked to include an editor and released as QuickBASIC. The exact relationship between the two seems a little unclear to me.

A lobotomized interpreter-only version of QuickBASIC was released as QBASIC and bundled with DOS 5 and later.

QuickBASIC was then replaced with "Microsoft BASIC Professional Development System 7.x", which appears to be a continuation of the original BASIC Compiler.

Finally, all of that was replaced with Visual Basic, and then Visual Basic.nut.

Meanwhile over in Macintosh land, Microsoft released three versions of their BASIC interpreter (number 1.0-3.0), later a BASIC compiler (1.0), and then merged the interpreter and compiler under the QuickBASIC name (with the version restarted at 1.00).

Did I mention this was confusing?

The way I have it organized for now, I have placed the vanilla branded Microsoft BASIC products under "Microsoft Basic".

Microsoft Basic:
This includes Basic-80 (MBASIC), Basic-86 (pre-GWBasic), Basic for Mac, Basic Compiler 86/88, Basic Compiler for Mac, and PDS 7.x

IBM Personal Computer BASIC Compiler: ... c-compiler
Just the IBM OEM of the BASIC compiler.

Only includes GW-BASIC.

Microsoft QuickBASIC:
Only QuickBASIC, and QuickBASIC for Mac

Microsoft QBasic
We already had this product page, although it does not really need one since QBasic was never released as a standalone product.

Visual Basic
Just Visual Basic, no changes.

It seems a little odd separating out BASIC for Mac and QuickBASIC for the Mac since they are so similar. They really could have called QuickBASIC 1.00 for the Mac "Microsoft Basic for Mac 4.0".

I don't think GW-BASIC would have fit under regular BASIC due to the different version numbers.

Here are a few other timelines an resources: (humorous and not entirely accurate) ... lease.html ... rsions.htm (some really early basic-80 versions stuffed on one disk).


  • I did an update on the thing floating around on the IBMPCC website, about converting IBM BASIC and BASICA to run under clone pcs.

    The file was included in OS/2, but did not work on my machines, so I modified the program and made it run under even the most recent versions. A full set back as far as 1.1 has been recreated. I would like to get hold of the 1,0 bios and build a proper version of 1.0 to run under modern DOS versions.

    There's a version of it on Vetusware, (mine), and the OS/2 version updated, has been uploaded to the DOS section in hobbes.
  • Didn't at one point with the Atari 400/800, Microsoft tried porting BASIC but couldn't get it to fit on a cartridge.
  • dosbox wrote:
    Didn't at one point with the Atari 400/800, Microsoft tried porting BASIC but couldn't get it to fit on a cartridge.

    They certainly fit it into TRS-80's from 1980 onward.

    Oh the good old days of hacking games!

    10 for a = 1 to 32767
    20 print peek(a);
    30 next a


Leave a Comment

BoldItalicStrikethroughOrdered listUnordered list
Align leftAlign centerAlign rightToggle HTML viewToggle full pageToggle lights
Drop image/file