Commodore, it’s not just BASIC

programminglang_thumbMy first contact with an IBM PC (clone) and structured programming was back in the 80s, when we got computer classes in high school.
We got introduced to the world of MS DOS by means of a horrendous application that printed a question on screen and you then had 10-15 seconds to type in the appropriate answer, which was an MS DOS entry.  I remember the backspace key was a killer, as it wiped the entire answer and you had to start over… with the clock ticking!  No, MS DOS was not to my liking as I was used to the Commodore entries to load and save my programs.
The PC horror did not end there as the first “real” computer language we got was Turbo Pascal.  Gone were the GOTO and GOSUB commands I was so used to from my Commodore 64’s BASIC…
At home, stubborn as I was, I would just write the Pascal assignments from school in BASIC and feel a sense of pride that all this nifty structured programming could be done on good old BASIC as well.  Nah, take that!

Of course, preparing for exams meant that I did have to learn and write programs in Turbo Pascal but the lack of a PC at home made this quite challenging.  How would I be able to test my programs?  How would I be able to experiment with all the different commands Pascal offered if I could only write them on paper?
To my surprise, I learned via my uncle (who was into the whole Commodore scene) that the breadbox supported not just BASIC, but a wide range of computer languages, ranging from the exotic Assembler to the higher programming languages like Fortran, C and even Pascal!
Not long after that, I loaded a version called Pascal 64 and I was finally on my way to writing my Pascal programs at home.
A snapshot shown below of the 64’er magazine of August 1986 illustrates what a broad variety of languages were available already back then for the best selling home computer!

programminglang_1

Now that was 1986, and the list has only gotten longer ever since.  An interesting overview is given on this site (compiled by Dan Fandrich), where the counter for C64 programming languages is at 168!  OK, the list also features the so-called BASIC extenders like Simon’s BASIC but it clearly shows that the C64, and by extension the 65xx chipset, was a viable platform for many programming languages, with the most recent, VolksForth, being released in 2005.
In a way, it underpins the versatility of the 6502 CPU (which still sees use today in medical appliances, controllers, etc.) that software manufacturers have devoted time, money and effort in porting popular programming languages to the platform that first saw light at the end of the 70s in the PET computers.

Whilst collecting information for this article, an interesting question sprang to mind.  If all these computer languages, which you would expect on more powerful platforms (like Windows, UNIX, …) show up on the C64, would it also be feasible to have Commodore BASIC on say, a Windows platform?  Turns out, Michael Steil (yes, the same guy who did the reverse engineering of the 6502 CPU), has done just that.  He’s ported the original C64 BASIC as a scripting language for the Windows and UNIX platform.  Just imagine using your old BASIC (instead of say Perl), to interact with your OS or as the author put it:
Commodore BASIC” (cbmbasic) is a 100% compatible version of Commodore’s version of Microsoft BASIC 6502 as found on the Commodore 64.  You can use it in interactive mode or pass a BASIC file as a command line parameter.  This source does not emulate 6502 code; all code is completely native. On a 1 GHz CPU you get about 1000x speed compared to a 1 MHz 6502.

So not only was the Commodore 64 capable of running more powerful and modern programming languages, its antiquated BASIC can vice versa run perfectly on a modern server near you.  I’m sure someone, somewhere has already found some good use for this on their machines.
The Commodore 64 is still very much alive!

Share This Post

DeliciousDiggGoogleStumbleuponRedditTechnoratiYahooBloggerMyspaceRSS

Leave a Reply

Your email address will not be published. Required fields are marked *