Published last November, ’10 PRINT CHR$(205.5+RND(1)); : GOTO 10′ (yes, that is the entire official title) is an interesting traipse through all things related to running this one line program on a Commodore 64. Watch what it does when you RUN it —
The book’s website has a free PDF version for download. I didn’t exactly read the whole thing, but at least perused each page. Being someone who grew up on Commodore machines when they were still on the market, this book might be much more interesting to non-advanced users or younger generations curious about 8bit cpmuting. There’s a lot of interesting history, variations, and notes on randomness. But at times, it seems to read rather theoretical instead of definitive.
Chapter 55 discusses creating a port of this program to the Atari 2600 (or VCS) and I would have loved to see more assembly language on the subject. Perhaps reading it in a purely technical matter would be much more useful (and briefer) for me. I am probably not the ideal audience here. I’m not concerned with generality when it comes to 8bit computers. I want raw, applicable codes.
page 27 – Mentioned as a ‘quirk’, several character graphics repeated in the character ROM is actually an efficient design. By default, most Commodore computers are in ‘unshifted mode’ meaning there are no lower case characters available which makes room for more graphical characters. When ‘shifted mode’ is enabled the computer references the 2nd half of the character ROM. Then on page 185, they mention that POKE 53272,23 switches the C64 to lower case text mode. It’s not a ‘quirk’. This thing is published by MIT? Are these 10 authors computer scientists? …and I won’t even get into the difference between PRINT CHR$() and directly writing to screen RAM with a POKE.
page 195 – Microsoft accepted the $25k deal for their BASIC instead of $3/unit royalty thinking that Commodore would hire them to update when they developed new computers. Jack Tramiel, founder of Commodore, saved some pennies by never doing so, keeping the BASIC ROM down to 8kb. The C64 could have had a whole new gambit of BASIC functions covering access to the SID and VIC-II chips responsible for sound and video respectively. Both of those chips are much more powerful and difficult to program with BASIC POKE statements than their predecessor, the VIC chip, which handled both. CBM BASIC’s updates were done internally at Commodore, correcting memory pointers so it would work on the architectures over a few generations of machines. (source; it also claims BASIC was sold for $10k)
I liked all the pictures! :D