Commodores Basic Compiler

Remember when home computers were a new thing? If you're about my age (sub 40... just) you might remember the efforts Commodore made in order to try and boost the Commodore 64 platform by making a compromise.

It created a BASIC compiler. The idea being that you could program within the simplistic BASIC language (no pun intended) and your efforts would be SUPER BOOSTED into 'machine code' by the compiler. Opening a whole new world of exciting posibilities that would otherwise only be available to people with enough time and interest to hand crank assembler (sad people, usually with no girlfriends).

Anyway, I remember it fondly for two basic reasons.
  1. It was unbelievably slow. Any program greater than about 8kb (yes, KILOBYTES) would take over an hour to compile and the results would be;
  2. It was terrible! The code hardly ran any faster than the bog standard BASIC intepreter. OK, so some functions did operate faster. But lets not try and encourage any nostalgia about it.

What was interesting was how the compiler basically operated by including a dirty bit library of functions (OK, probable 4-8kb or so) and then use that.

But the most interesting thing about the BASIC compiler was that fact that it appeared to be itself a BASIC application, compiled by itself. That's the sort of recursive action that could well have created a black hole back then.

I do remember, just before moving on from the (crusty) trusty Commodore 64 that there were in fact a number of funky compiler/languages available for it. Some obvious, Assemblers galore. But how about;

  • White Lightening* which was a version of Forth developed by Oasis Software, with lots of additional functions for graphics, sound etc.
  • C - A little C compiler that actually produced really decent executables
  • Pascal - Not Borland's Turbo.. but I do seem to remember a little version (nothing too exciting)
  • ADA - Yes, even the Commodore 64 managed to get a port of NATO's favourite language.

In the end, the machine was too old to join the later public domain, then open source community on the web. Even the Commodore Amiga arrived a little too early for that. But that's another story entirely.

*White Lightening formed part of a development suite of three variants developed by Oasis Software.
  • Basic lightening was an enhanced version of Commodore basic with lots of extensions of graphics, sound and even structure. Applications needed to be packaged (I want to avoid saying compiled here) into a file that could run on other machines.
  • White Lightening was a version of the compiled language "Forth". It included the very same libraries as Basic Lightening and provided a very unique environment for development purposes. Forth was decent enough at providing all those features missing from BASIC, but it's Reverse Polish Notation put a lot of people off and in the end White Lightening didn't turn out to be such a resiliant platform for development purposes. White Lightening included Basic Lightening in it's package.
  • Machine Lightening was the premier package and included the premier assembler development studio, along with White Lightening and Basic Lightening. In Machine Lightening you had the ability to create macro code and link to the Libraries provious mentioned. It proved to be the most useful of the three and did get some work at Ocean software.
In the end Ocean Software bought it from Oasis (or bought Oasis) and it because Laser xxx. Laser Basic, Laser Basic Compiler and Laser Genius. The Laser equivalent to Forth was dropped, never to be seen again Sad