Debunking The semi secret stash of C64 information
Recently, on my quest to find out more about the crappy Commodore 64 with its messed up memory map and why it was so difficult or impossible for me to program, although some people somehow managed it, I’ve been able to get access to lots of information which I didn’t manage to get my hands on back in 1984-1985.
In other words, the author has been scrabbling around vainly for excuses as to why he personally failed where so many others succeeded with the C64 again; apparently he couldn’t learn because the information was hidden away in… well, books! These “semi secret” books and magazines weren’t published in the UK but there were some excellent home grown alternatives such as Raeto West’s Programming The Commodore 64 which is the book that many hobbyist programmers who “turned pro” tended to recommend when asked. We can only wonder why the author’s research at the time didn’t show up a freely available book that was even available from libraries?
If the author wants to see a platform where information really was suppressed, the Atari 8-bit didn’t have a proper reference manual for a couple of years after it launched because Atari wanted to keep ahead of third party developers by keeping the best toys in their own pram.
Brand loyalty may be the reason they stuck with Commodore computers no matter what crap Commodore unleashed onto unwitting consumers who had never owned a computer before.
Because it just couldn’t be down to them actually liking Commodore’s computers or anything like that… people always spend lots of money on products they don’t like because it’s by a brand they’re attached to. And yes, there’s sarcasm in that sentence, can you spot it dear reader?
Just to clarify, the VIC 20 was the first home computer to get to a million sales despite some of the competition having a year or two of sales under their belt before it was launched and the C64 outsold everything else to the point where it was included in the Guinness Book Of World Records. There’s no realistic way either of those milestones would have been reached without the machines actually being popular.
And all of those millions of people who got a C64 as their first computer must have had some kind of time travel-based brand loyalty so Commodore presumably hired a renegade Time Lord to help with marketing; your correspondent is thinking Drax since he’s the one least likely to kill the target audience in the process.
The book “Compute!’s 1st Book of Commodore 64” is written by various authors and starts off by trying to explain the totally fracked up C64 memory map which prevents users from accessing 64K unless they can turn off the BASIC and Kernal ROMs, as well as the I/O ports.
This “fracked up” arrangement is also true of other 8-bit computers as well – the original Spectrum is 48K because there’s a 16K ROM it can’t disable taking up the rest of the address space, the 64K Atari 8-bits have to disable ROMs for access to their full memory and your correspondent seems to remember the Amstrad CPC doing something similar as well.
The author is, however, demonstrating that the information to use all of the C64’s memory was out there and it’s merely his own lack of knowledge that led to the false claims he made previously. Your correspondent tried to correct him at the time but suspects that he won’t be receiving an apology from the author.
It also clearly explains that the often mentioned raster interrupts, which bad spellers may have thought were a way to stop a Reggae musician from playing, but I had no real idea what they were in 1984, are a way of changing the screen display part of the way down the screen to display more than one character set, or increase the number of sprites above 8. I think this is quite crude compared with Atari computers’ “display list”, allowing users to create their own customised display modes, though.
In order to properly use display lists it was necessary to POKE the commands in because the Atari’s BASIC didn’t have commands to support custom display lists. They’re not really the same thing either, raster interrupts are equivalent of a combination of display lists and display list interrupts but with a little more flexibility; for example, during character-based screens the DLI can only be triggered at the end of a character row but the C64 can call for a raster interrupt on any line the programmer sees fit so an interrupt can be triggered a few lines early (where the Atari has to wait from the end of the previous character row) when a large amount of register changes are required.
Chapter 2 is actually called “BASIC Programming” and starts off with an explanation of the obscure command WAIT, which it turns out can be used to scan the keyboard instead of the missing Microsoft BASIC command INKEY$, or GETKEY in Commodore BASIC V7 on the C128.
The C128’s GETKEY command isn’t an equivalent of INKEY$ because it stops program execution whilst waiting for a keypress; what the author is looking for is GET and that’s present in the C64’s BASIC as well.
We’ll lightly skip over a lot of what follows because it’s rather dull and either recounts what’s in the books themselves or demonstrates a further lack of comprehension on the author’s part.
The “Compute!” books contain a utility originally from “Compute!” magazine called MLX, which is a Machine Code loader that expects the user to input Machine Code in decimal numbers (because the crappy Commodore BASIC V2 can’t understand hexadecimal numbers)
The MLX program could quite easily have been written to use hexadecimal and some type in listings from magazines did so over the years, but the chances are that decimal was chosen because the listings were in print and that’s already an unreliable medium since it had to go through several processes which could (and frequently did) introduce subtle but fatal errors; adding hex numbers to the mix only makes things worse as the occasional letter B gets misread as an 8 or a zero ends up as a D on the page so the typed in program fails.
Of course, this information from “Compute!” should have been the basis of the Commodore 64 Programmer’s Reference Guide, or at least another book published by Commodore themselves, complete with their “chickenhead” logo, but it wasn’t.
Had Commodore done so the author would still be accusing them of being “evil” because they were stifling third party publishers.
 We can see evidence of a huge number of casual programmers through their software archived across the web; the output ranges from the budget games which were mostly developed by bedroom coders (as well as some full price titles) and the shareware or public domain releases that kept the various PD libraries busy for ages to the demo and cracking scenes which churned out cracked games, demos, utilities and even their own games at a ridiculous rate.