Debunking TMR gives the game away!
I’m long overdue with the continuation of my series of articles “Oh That Would Be VERY difficult!”, because first of all I have to copy then delete some corrupted files off my phone and compact digital camera before taking some accompanying pics of the actual BASIC program. This will be posted soon. Meanwhile, here’s a surprise post about a shocking original post by TMR.
For somebody blogging about programming the author does seem to struggle generally with technology… and goodness alone knows how much more shocked he’ll be on noticing the other project with source in the C64CD Github account!
I don’t think TMR realised that by posting this, he was giving the game away, letting us into his “tricks of the trade” which he previously refused to give away any information about. Perhaps someone spiked his drink or hypnotised him into doing it. I can assure you it wasn’t me, but congratulations to whoever was responsible. I have saved the source code onto two of my PCs, in case TMR takes it down after it dawns on him exactly what he’s done.
Your correspondent has been releasing source code for nearly twenty years now including a course in 6510 assembly language (which he’s been told by several people was their starting point with the C64) and the code for a relatively simple but complete scrolling shoot ‘em up so yes, he’s perfectly aware what he’s doing and the only difference this time is the adoptation of Github as a delivery mechanism because it seemed like “a fun toy”. There has previously been a refusal to post source code to this blog because, as stated ad nauseum even if the author still fails so spectacularly to comprehend it, the primary topic here was debunking the author’s mistakes rather than directly talking about programming; it doesn’t take source code to point those out.
Some binary data, making up the music, as well as enlarged 20 column text (easily available from BASIC on better designed computers such as the BBC Micro, Amstrad CPC, and Acorn Electron) is read in from separate files, so this doesn’t give the reader any real idea how this data was created.
The graphics were created with ProMotion on Windows – the source image is stored in the repository’s “workfiles” directory as a BMP file – and converted to the C64 with your correspondent’s own utility. As for the music, it was composed by a friend of your correspondent around seventeen years ago who worked directly into the assembly language listing for his own music routine whilst doing so.
And although the larger characters may be “easily available from BASIC on better designed computers”, that 25 frames a second, full screen smooth scrolling isn’t; reproducing the entire demo in that video at the same refresh speed requires assembly language and either the undocumented features of the Acorn or Amstrad CRTC or a fast software-based alternative (which at first glance based on your correspondent’s previous experience, seems unfeasible at least in the case of the Acorn machines) and both of those solutions are nowhere near as trivial to program as your correspondent’s code.
As to if having at best around twice the processing power of the C64 (depending on which machine we’re referring to) but well over double the video memory as well makes a computer “better designed”, your correspondent will leave that to you to ponder dear reader.
Of course, nothing like this program appears anywhere in the accompanying Commodore 64 Microcomputer User Manual, or the Commodore 64 Programmer’s Reference Guide (which only scratches the surface of Assembly Language), so I have no idea how or where TMR found out how to do this, but I think it may have been something to do with playing around with the more simple Commodore VIC-20, which also had the crappy Commodore BASIC V2, for some time before getting a Commodore 64.
How did your correspondent learn how to program the C64? By spending time and putting effort into learning and then practising C64 programming of course. As noted previously dear reader there’s no magical solution to that process that somehow wasn’t available to the author as well and, despite his ridiculous and baseless claim above, learning to program on the VIC 20 really doesn’t make a difference either because the only concepts that can be carried over are the ones which can be learnt directly on the C64 anyway.