In his recent post on the blog “C64 Crap Debunk” called “Release Notes – Clone Invasion” which you can read on , TMR has done again exactly what I wanted him to by offering even more revelations about how some people were able to program the C64, although it had a totally crappy BASIC and not very detailed documentation from Commodore.

Of course, the C64 is a crap computer, if only due to the fact that it was made without any attempt to include a version of BASIC which supported its hardware, meaning those all important colour graphics, and the 3 channel synthesiser chip. I think this is why most people bought it, otherwise they could have got a Commodore PET, or some other computer instead. Before it came out, Commodore had already written a better BASIC built in to the VIC-20 Super Expander, which could have been adapted and built into the Commodore 64 before it went on sale about 7 months after the CES. This later appeared as an optional extra called the “Super Expander 64”. This was the foundation of the BASIC which became BASIC 3.5 on the Commodore 16 and Commodore Plus/4.

It has become a personal challenge for me to crack the C64, revealing its secrets. In spite of this, I also think that governments and consumer associations should have stepped in to stick a warning label on it such as “This computer comes without any built in commands for colour, graphics, or sound, although almost all other computers have them. For more information consult the dealer, phone the following number, or write to the following address…”

Actually, almost all the official Commodore documentation was written in the extremely crappy Commodore BASIC V2, leading people like me to believe that’s how they should program it. Examples were even given about how the VIC-II and SID chips’ registers could be programmed in Commodore BASIC V2, using sequences such as POKE (location),PEEK(same location) AND/OR number, but no real explanation about what was happening or how it worked was offered. I wondered to myself what was the point of a POKE to a location of a PEEK from the same location, because I didn’t realise that the PEEK was from RAM, but the POKE was to a custom graphics or sound chip, so not the same location at all. I had no real idea reading this crap what the effect of AND or OR would have on this either. Later on, I read about the AND, OR, EOR, and XOR logic truth tables in some amazing magazines about Z80 Machine Code for the Amstrad CPC and MSX computers.

Of course, TMR has recently criticised Atari again for holding back a few details about their original Atari 400 and Atari 800 models, which were released in 1979, for two years. I think this was before many people had computers, so they weren’t affected. These details were about how to use the Player Missile Graphics, called sprites on other computers. Atari did supply the excellent Atari BASIC with these computers, which had commands for their colour, graphics, and sound, the most important aspects of computers for a lot of people. There was the option of buying an Atari 400 without the BASIC cartridge, but this could be bought separately later on and Atari BASIC was the standard BASIC for these computers, featured in most books and articles about them. It includes commands such as GRAPHICS [N] to set the display mode, SETCOLOR [N],[N],[N] to select any of the 128 or 256 colours, COLOR [N] to choose a colour from your palette, DRAWTO(N,N) to draw lines, and PLOT(N,N) to plot a point. It also has the commands STICK(N) and STRIG(N) to read the joysticks and fire buttons. This meant that Atari 400 and 800 owners had plenty of things to keep them happy during the maximum of two years that the first buyers had to wait while Atari kept the information about how to use the Player Missile Graphics to themselves. Meanwhile, Commodore VIC-20 owners were having to read about a lot of PEEK and POKE commands, while the Commodore 64 hadn’t even been released at that time.

TMR has recently confessed to first of all reading a book about 6502 Assembly Language, but which wasn’t specific to the Commodore 64. This must have made things more difficult, not including information such as where the screen RAM is located, or any details of a routine to print out a character. This information was included in the book “Machine Language for the Commodore 64 and other Commodore Computers” by Jim Butterfield. It was also included in Commodore’s own “Commodore 64 Programmers’ Reference Guide”, which contained hardly any information about Machine Code/Assembly Language. When I owned a C64, I only heard of Jim Butterfield briefly as the author of an article on garbage collection in Commodore BASIC V2. Obviously, Commodore, as well as all magazines about the C64 should have been screaming his name as their saviour who told people how to start programming the C64, although the official Commodore books failed miserably at this.

TMR has refused to supply a flowchart for “Clone Invasion”, but has supplied all the source code. This runs to 861 lines or perhaps only 687 “SLOC”, meaning minus the blank lines and comment lines! From that, we can safely say that this isn’t an example of how someone could get started writing demos on the C64. It would require a lot of study and creating some much simpler programs before getting on to this. You can always consult TMR’s nine part series “The Hex Files”, but this ends on a cliff hanger, although he said there were more articles which he seems to have lost. I think these would be available through a request to The British Library, which seems to have an archive of all magazines and newspapers published in Britain.

To sum up, I was practically in tears over trying to remember lots of five digit memory locations to PEEK and POKE with numbers from 0 to 255, as well as very annoyed to find out that this wasn’t necessary on any other computers except the Commodore VIC-20. No one told me I should ignore what the official Commodore books said, more or less forget about BASIC and get into Machine Code which would have given me the advantages of not only more easy to remember hexadecimal numbers, but reusing previously typed equates files giving these locations actual names.

That’s all for now. Some more debunks, as well as the continuation of the series “Oh That Would Be VERY Difficult!”, about the building blocks of writing a game in MSX BASIC, will appear here in the very near future.

This blog has no means of funding, I’m actually quite skint or broke, and my life is in danger from eviction by a property speculator, probably taking place in January 2016. If you’d like to make a donation, please send me an email on , then I’ll tell you how to do that.

Posted October 9, 2015 by C64hater in Uncategorized


Subscribe to comments with RSS.

  1. Well, even i, when getting a c64, undestood quite quickly that if you wanted to create a game or any usable program, you had to learn machine code. There’s nothing strange about that.
    Even if the basic would have been better and have had commands to draw a line, it would still need to be translated to machine code before executed so it would still be too slow to be usable for games and demos and probably applications also.
    A Swedish commodore 64/128 magazine had a assembler course starting in -86. I wish i would have followed it 🙂
    Thanks for an entertaining blog, i enjoyed you and TMR’s correspondence 🙂

  2. I think you need to read some more of my posts on this blog. You say that “when getting a C64” you knew that you had to learn Machine Code and that you knew about an Assembler course in 1986. Both these statements indicate that you had some warning about the totally crappy built in Commodore BASIC V2 and that you bought it or were still using it in 1986, which was about a year to 18 months after I sold my Commodore 64. My point is that people shouldn’t have started by trying to learn Machine Code/Assembler, but should have learnt to create graphics and sound in another language first. On other computers this language was BASIC. What made you decide to buy a C64? What was the name of the Swedish magazine with the Assembler course? I hope you’ll continue to read my blog.

  3. Well no, i did not know about the “crappy” basic before i bought it, i think i bought it in -85 or something like that… the reason was because some of my friends had it and i thought it was awesome!
    MY point is that even if the basic had simple graphics and sound commands you would still not be able to use them in any advanced program/demo/game since basic itself is too slow.
    I think the basic was good and simple enough to begin writing simple text programs, but if you wanted usable graphics and sound, you had to use assembler.
    There were books about this and courses in magazines so if i wanted to learn it i could. And before you mention “But you had to buy books and magazines!”, yes, but i don’t think anyone has written an advanced program with only the user manual on any computer…
    The magazine was “Datormagazin C64/128” and later on it started to feature the Amiga also…
    I will probably continue reading your blog because you write about the C64, good or bad writings, i don’t care 🙂 I always get a warm fuzzy feeling when i think back on it, and you’re not gonna change that! 🙂

  4. So, as you didn’t know about the crappy BASIC before you bought it, this means you’re another victim of Jack Tramiel’s C64 con! Not only that, but this was in 1985, or perhaps even later, when according to TMR of the blog the Commodore 64 was well known for having a poor BASIC. As for BASIC being too slow, my point is that BASIC on other computers enabled their owners to program graphics and sound. A lot of BASIC games listings appeared in various magazines and books. This enabled owners of non Commodore computers to get started programming with graphics and sound and understand the concepts of how to do this. Later on, these programmers could have started to add short Machine Code routines to their programs or even used a compiler to convert their programs into Machine Code, although the results wouldn’t have been as fast as if the programs had originally been written in Machine Code. This wasn’t possible on the C64, because it had no BASIC commands for colour, graphics, or sound. It required a long list of PEEK and POKE commands to do simple things, such as display a graphics screen, plot points, define and move sprites, etc. If the C64 had come with Commodore BASIC 3.5 as on the Commodore Plus/4 and Commodore 16, then I wouldn’t have sold it, because I could have done things like in and would have had lots of fun converting BASIC programs from other computers, as well as composing music to use in my own programs. Apart from the “Commodore 64 Microcomputer User Manual”, I bought “An Introduction To BASIC” (Parts 1 and 2), as well as the “Commodore 64 Programmers’ Reference Guide”, so I think all the information I required should have been in those four books. Of course, there wasn’t enough information in those books, so I started buying one book after another, each time hoping that this would be the book that solved all my problems with the C64, but of course none of those books solved my problems. I now know that it was just pure luck if any C64 owner found and bought a book that solved all their C64 problems, and that these books may not even have been available in 1984, the year when I bought as well as gave up on trying to program the C64. Please go and read the latest post in this blog , which is part of the series “Oh That Would Be Very Difficult!” to read and learn how people were able to program other computers apart from the C64.

  5. Funny, i don’t feel like a victim? I feel fortunate to have owned a c64.
    I sorta get your point, having a better basic would have made it easier for ppl starting out in programming… so instead of being a huge success, being the most sold home computer in the world and having the largest software and user base, if the Basic would have been better it would have been an even larger success.
    Well, Commodore did a lot of mistakes, made even more with the Amiga, but i don’t feel any urge to create a webpage and bash the Amiga.

  6. You said “having a better BASIC would have made it easier for people starting out in programming”. Actually, it would have made it POSSIBLE instead of IMPOSSIBLE for most C64 owners to program the graphics and sound features of the C64. There would have been no need for lots of “extended BASIC” languages, perhaps just one or two, like the Sinclair Spectrum, lots of books telling people how to draw graphics in Commodore BASIC V2 or Machine Code. The success of the C64 was as a games machine not as a programmable computer. Even so, I think that most 8 bit “home computers” sold weren’t by Commodore and users of computers that didn’t sell many units were happy and fanatical about their computers. As for the Amiga, I’m not going to bash it. I used Amiga computers for about 10 years 4 months before buying my first PC and in recent years I’ve started using Amigas again. I have already bashed Commodore’s marketing of the Amiga which I pointed out was responsible for killing the Amiga. The whole basis of the Amiga was a “super Atari” computer designed by ex Atari engineers because Atari wouldn’t pay for its development. They planned to sell the Amiga to Atari, but in the meantime it was making such a loss that Warner Brothers sold it to Jack Tramiel who obviously didn’t like the concept of the Amiga. After some negotiations, Amiga Inc sold their computer to Commodore and were also employed by them. Unfortunately, the people still at Commodore had learnt most of what they knew from Jack Tramiel, so they didn’t know what to do with the Amiga. At least they had the common decency to supply the Amiga with AmigaBASIC by Microsoft, descended from GW-BASIC, and Microsoft Extended BASIC, though. You can read more about the Amiga on and .

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

%d bloggers like this: