Microsoft open sources GWBASIC

Liam Proven lproven at
Sat May 23 13:55:40 CDT 2020

On Fri, 22 May 2020 at 21:56, Fred Cisin via cctalk
<cctalk at> wrote:
> Microsoft did a BASIC for the Commodore PET.  I wasn't aware that they did
> the C64.

It is pretty much the *same* BASIC in the PET, VIC-20 and C64. It got
trivial adjustments for the hardware, but bear in mind: the PET had no
graphics, no colour, and only a beep; the VIC-20 had (poor) graphics
and sound, and the C64 had quite decent graphics and sound.

So the BASIC was poor for the VIC-20 and positively lousy on the C64.
There were no commands to set colours, draw or load or save graphics,
play music, assemble sound effects, nothing.

I.e. in effect the same BASIC interpreter got worse and worse with
each successive generation of machines, ending up positively terrible
on the C64. You had to use PEEKs and POKEs to use any of the machine's

AIUI, CBM didn't want to pay MS for a newer, improved BASIC
interpreter. It thought, with some justice, that the main uses of the
VIC-20 and C-64 were games machines, using 3rd party games written in
assembly language for speed, and so the BASIC was a reasonable saving:
a corner it could afford to cut.

The C64 also had a very expensive floppy disk drive (with its own
onboard 6502 derivative, ROM & RAM) but a _serial_ interface to the
computer, so it was both dog-slow and very pricey.

This opened up opportunities for competition, at least outside the US
home market. It led to machines like (to pick 2 extremes):
• the Sinclair ZX Spectrum, which was cheaper & had a crappy keyboard,
no joystick ports, etc., but whose BASIC included graphics and sound
• the Acorn BBC Micro, which was expensive (like the C64 at launch),
but included a superb basic (named procedures with local variables,
allowing recursion; if/then/else, while...wend, repeat/until etc., and
inline assembly code), multiple interfaces (printer, floppy drive,
analogue joysticks, 1nd CPU, programmable parallel expansion bus,

All because CBM cheaped out and used a late-1970s MS BASIC in an
early-1980s machine with for the time quite high-end graphics and

The C64 sold some *17 million units*, so a lot of '80s kids knew
nothing else and thought the crappy BASIC was normal. Although it was
one of the worst BASICs of its day, it's even been reimplemented as
FOSS now.

It is also largely responsible, all on its own, for a lot of the bad
reputation that BASIC has to this day, which in turn was in part
responsible for the industry's move away from minis programmed in
BASIC (DEC, Alpha Micro, etc.) and towards *nix programmed in C, and
*nix rivals such as OS/2 and Windows, also programmed in C.

Which is what has now landed us with an industry centred around huge,
unmaintainable, insecure OSes composed of tens of millions of lines of
unsafe C (& C derivatives), daily and weekly mandatory updates in the
order of hundreds of megabytes, and a thriving industry centred around
keeping obsolete versions of these vast monolithic OSes (which nobody
fully understands any more) maintained and patched for 5, 10, even 15
or so years after release.

Which is the business I work in.


It sounds ridiculous but I seriously propose that much of this is
because *the* #1 home computer vendor in the Western world kept using
a cheap and nasty BASIC for nearly a decade after its sell-by date.

CBM had no real idea what it was doing. It sold lots of PETs, then
lots more VIC-20s, then literally millions of C64s, without ever
improving the onboard software to match the hardware.

So what did it do next? A very expensive portable version, for all the
businesspeople who needed a luggable home gaming computer.

Then it tried to sell incompatible successor machines, which failed --
the Commodore 16 and Plus 4.

Better BASIC, bundled ROM business apps -- why?! -- but *not* superior
replacements for its best-selling line. Both flopped horribly.

CBM apparently still had no real clue _why_ the C64 was a massive hit,
or who was buying it, or why.

Later it offered the C128, which had multiple operating modes,
including a much better BASIC and an 80-column display, but also an
entire incompatible 2nd processor -- a Z80 so it could run CP/M. This
being the successor model to the early-'80s home  computer used by
millions of children to play video games. They really did not want,
need or care about _CP/M_ of all things.

This sold a decent 5 million units, showing how desperate C64 owners
were for a compatible successor.

(Commodore people often call this the last new 8-bit home computer --
e.g. its lead designer Bil Herd, here:
-- which of course it wasn't.

The Apple ][GS was in some ways more radical -- its 16-bit enhanced
6502, the 64C816, was more use than the C128's 2 incompatible 8-bit
chips, for a start -- and came out the following year. Arguably a
16-bit machine, though.

But then there was the UK SAM Coupé, a much-enhanced ZX Spectrum clone
with a Z80, released 4 years later in 1989. Amstrad's PcW 16, again a
Z80 machine with an SSD and a GUI OS, came out in 1995.

There was _nearly_ another, incompatible of course, successor model
later still, the C65:

*That* would have been a worthy successor, but by then, CBM had bought
the Amiga and wasn't interested any more.

Liam Proven – Profile:
Email: lproven at – gMail/gTalk/gHangouts: lproven at
Twitter/Facebook/LinkedIn/Flickr: lproven – Skype: liamproven
UK: +44 7939-087884 – ČR (+ WhatsApp/Telegram/Signal): +420 702 829 053

More information about the cctech mailing list