Debunking Debunking “Sweet, sweet music”
Apologies dear reader for this post being a few days late, but your correspondent was exhibiting at a retro gaming event in Blackpool (cue random crowd shot)…
…and spent a lot of the weekend discussing new games on classic computers and the merits of programming said computers with attendees of the event and other exhibitors. It won’t come as a surprise to anybody except perhaps the author that nobody your correspondent spoke to shared the author’s irrational hatred of the C64 or its BASIC and some people credited both with starting a lifelong passion with programming.
In my post “PROGRAMMING, USING, OR GAMING” I used a screen shot of a Commodore 64 music editor called GMC, because it looked primitive, with the default text and background colours, like some early C64 software. I had no idea it was released in 1990.
“Primitive” is of course relative and the author has never actually used the program in question so is instead offering an “opinion” of it based on a still screenshot. Since the most important thing about a music editor is how it sounds, that’s exceptionally ridiculous even by the author’s “standards”.
I’m trying to limit my blog to the period early 1984 to April 1985, when I owned a Commodore 64. This is because I think that Commodore, like other computer companies should have provided users with the means to program the C64 at the time it was released, or very soon afterwards, instead of relying on someone else to do it for them later on.
The author’s limiting of things to the window when he personally owned a C64 is, as noted previously, merely arrogance on his part. Commodore shipped the C64 with a dialect of BASIC that, although not up to the author’s standards, served the purpose well for tens of thousands of would-be programmers. They also provided documentation for it through the C64 manual and Programmer’s Reference Guide amongst others. Programming isn’t and has never been just about drawing a couple of lines across a bitmapped screen.
Atari provided Atari BASIC, supporting their hardware from the beginning.
Unless an Atari programmer wanted to use hardware sprites (a major feature for games programming) or have their own custom display list, in which case the BASIC offered no support for those facets of the hardware and, since Atari held back the documentation from users until years after the computers were launched, the locations to POKE were undocumented.
It’s also not possible to do things like bitwise operations from Atari BASIC so, despite it having a handy command for reading joystick input, there’s no support for checking the individual bits returned by that command to see which directions are being held.
He told me the filthy lie “It’s easy! You just use PEEK and POKE commands”. I had no idea this would be even more difficult than the geometry problems I used to be kept in for at lunchtime and after school, or even impossible.
Calling it “impossible” when there are myriad examples in the wild demonstrating otherwise is rather feeble and the salesman’s claim wasn’t really false; you do indeed use PEEK and POKE commands (in fact PEEK isn’t really necessary) and, as with everything in the programming world, once you get used to the basic idea behind it, that process could be described as easy. Having dedicated commands for things might be more easy to some degree but there’s still a learning curve to use them.
I think he deserved a prison sentence and to be POKEd with a sharp pointed stick, as well as me finding out where he lived, then having a PEEK at him naked in his bathroom, taking some pics and sticking printed copies up near his shop, with a caption saying something like “Have a PEEK and POKE at this shopkeeper. PEEK and POKE is easy!”
This doesn’t need any comment, but it does make taking the author seriously even harder than before.
I think that Silica Shop staff would have tried to persuade us to buy an Atari with 100 free programs, but as they sold and knew about various computers, when they heard I was determined to learn programming they’d probably have warned me not to buy a Commodore 64, and certainly wouldn’t have made the outrageous claim that PEEKing and POKEing is easy!
Note dear reader that this entire paragraph is pointless supposition. The author can assume nothing of the sort.
I also had a fantasy about travelling to Hong Kong, or somewhere else in the far east, buying an Apple ][ clone, complete with software, then bringing it back to Britain, which allegedly would even have saved money compared with just buying an Apple ][ from a dealer in London!
The dealer in London would presumably have been selling appropriately modified Apple IIs that worked out of the box in the UK so there’s bound to be a price difference. Going to Japan to import a clone machine is also a lottery because, along with compatibility issues that can be introduced by cloned hardware and the need to “tweak” any imported machine for UK power and television standards, at least some of those machines were shipped Apple’s Integer BASIC which lacks the commands that the author covets so dearly for drawing to bitmapped screens or handling sound.
There’s third party support in the form of the Mockingboard which takes the Apple II from single channel beeper territory to three or six channels of AY sound depending on model but, since this card has to be programmed with POKEs from either flavour of BASIC, the author would struggle with it even more than he did with the C64. The documentation is also somewhat lacking, here’s a quick extract your correspondent stumbled across recently whilst getting an Apple II music driver working…
To Write to a PSG register: Tell the PSG which Register you wish to access (i.e. Set the “current register” #) and Write the data. This is easiest to do with subroutines to handle the basic Functions.
Example Subroutines (for Output Channel 1):
Set Reg # 1000: A9 07 8D 00 C4 A9 04 8D 00 C4 60
Write Data 100B: A9 06 8D 00 C4 A9 04 8D 00 C4 60
…which the author won’t understand at all even if Apple II programmers back in the 1980s and your correspondent did.
I later typed in a listing on my Amstrad CPC664 which turned off the border, like the BBC Micro, but I don’t know if it also increased the vertical resolution to 256.
Without seeing the listing to actually check it’s impossible to say, but it is at least theoretically possible to overscan an Amstrad CPC to 256 pixels or indeed a little further depending on the display device. That does increase the screen memory overhead to the point where nearly a third of the Amstrad CPC664’s memory is in use for screen RAM of course.
Games consoles weren’t designed to be programmed by the general public, because they had no keyboards or devices such as cassette or disk drives available to store programs.
If they were designed for programming or not is irrelevant because your correspondent was responding to the author’s blanket statement that consoles “only play games, while the big difference between them and computers was that computers could actually be programmed”. Whilst it was more difficult to do and the skill level was far higher than a computer, consoles could indeed be programmed and people did.
I didn’t and still don’t know how to suppress the Spectrum’s scroll prompt, because I’ve never owned a Spectrum. I think I’ve probably missed out by never owning one, so I hope to learn more about it in a really good emulator soon.
It’s done with a reasonably well documented POKE command – POKE 23692,255 – which, unsurprisingly, sets the counter used to determine when the Scroll? prompt appears to 255.
I used to write pithy graffiti on toilet doors and walls, but now I’ve moved on to more creative writing like this with replies via email, instead of two word graffiti replies, so that proves things like this happen.
The point your correspondent was making is that whilst many people type in the classic 10 PRINT program it does not logically follow that they have even the slightest interest in programming. The author’s transitioning from delinquent wall scrawler to superstar blogger isn’t relevant because the point wasn’t that it doesn’t happen and centred on the fact that one doesn’t lead to the other.
 In his imagination of course and it’s worth noting that your correspondent talked about going from graffiti to journalism which isn’t the same thing anyway.