Hare Basic for the Commodore 64

Our friend Robin at 8-Bit Show And Tell lets us know of this cool and free Commodore 64 BASIC 2.0 extension, of a sort, called Hare Basic. It’s a successor to an earlier version called Bunny Basic. Here’s the video, 48 minutes long. My comments on it follow below, which you can read either after having watched the video, or before, depending on of you have most of an hour to spare right now.

Here are the downloads, which are hosted on the creator’s Dropbox, so availability may fluctuate.

Commodore BASIC is, in many ways, the worst of all worlds. It’s a slow interpreted language, a variant of infamous Microsoft BASIC, and it has almost no machine-specific features, but it comes with the machine, and it’s burned into ROM. You can swap it out for extra RAM if you have a replacement OS or are running something in pure machine code.

I could go on for a long time about the problems with Commodore BASIC 2.0, a language I’m quite familiar with having spent much of my teens programming in it. Sometimes it feels like it was designed especially to run slowly. One example: it supports floating point math, which ordinarily would be a good thing, right? Use integer math for performance, and just use floats when you need decimals, right? But no: internally, Commodore BASIC converts integer variables into floats when doing any math with them, and converts them back to store as integers when it’s done. Wilberforce Trafalgar Franklin?! Why?! It does these unnecessary extra steps to do all arithmetic as floating point even when it doesn’t need do, and doesn’t offer a way to do performant integer math at all! Need I remind you that Microsoft BASIC is based upon software written by Bill Gates himself? I suspect that I don’t!

Hare Basic is a highly optimized subset of Commodore BASIC that can be switched on and off as needed. It has to be coded in a special way which might throw beginners for a loop: Hare Basic can’t abide whitespace, for example, only allows for variables of one letter in length, has no support for modifying strings, and contrary to Commodore BASIC can only do integer math. There’s lots of other differences too, and if you want to play around with it it’s essential that you study the manual.

But once you get used to it, it runs blazingly fast, sometimes as much as 10 times faster! And the best part is you don’t have to use it for everything. You can start out with a standard Commodore BASIC program, then enter into Hare Basic mode with a USR function call. You could write your whole program in Hare if you’re up for it, or just loops, or other places where performance is necessary.

Of course, this is ultimately an enhancement for a programming language that runs on a home computer made in 1984. It’s not what one might consider of universal interest. But it might be of interest to the kinds of people who read this site. It’s interesting to me, at least. Maybe I should dust off VICE and see what I can do with it? I haven’t coded on a ’64 in nearly three decades, maybe I should get back into that….

Video: 8-Bit Show and Tell Examines the Bally Home Computer System

Video is about 32 minutes long

The Bally Professional Arcade, a.k.a. the Bally Computer System, then the Astrovision, eventually settling on the Astrocade, was in its hardware a cut-down version of their early arcade hardware. While not a big seller, mostly an also-run alongside the Atari VCS, Intellivision, ColecoVision, or even the Odyssey2, it could, like several of those systems, run a version of BASIC with an add-on cartridge. (The VCS had its Basic Programming cartrige, the Intellivision had the Entertainment Computer System, and the ColecoVision had ADAM.)

The Astrocade (to settle upon one name for it) had some interesting advantages. It uses the same graphics chip as Gorf, Wizard of Wor, and Robby Roto, but due to having less memory to work with doesn’t support as good a resolution as the arcade units. If the chip is used in multi-color graphics mode, it would use all but 16 bytes of memory! The Atari VCS, by contrast, only had 128 bytes of RAM, but didn’t have a bitmapped display taking up so much of it. These were the kinds of tradeoffs console designers had to make at the time. While it didn’t have hardware sprites, it did have “blitter” circuitry for rapidly moving data around in memory.

8-Bit Show and Tell’s video also describes the culture around the machine, which saw production for a surprisingly long time, and had several independent programmers selling their own games for its BASIC cartridge. They even supported a newsletter, the Arcadian, that shared coding tips.

Everything about this system was odd, from the pistol-grip controllers, to the built-in software on ROM, to the calculator-style keypad set into the unit itself, to the almost-but-not-quite Atari-style joystick ports. But I don’t want to steal 8BSaT’s thunder, watch the video if you’re interested in learning more!

A Real Computer? Exploring the Bally Computer System aka Astrocade

Video: Easter Eggs in Classic C64 Cartridges

The always terrific 8-Bit Show And Tell shows us some secret codes for old cartridge-based C64 games that reveal they were developed by Andy Finkel. These are recent finds! I had the C64 port of Lazarian growing up, and much later I was surprised to find out I prefer it to the arcade version, the C64 version feels more polished and has better music!

Along the way we’re also taught about the super-obscure Commodore product the Max Machine, which is like a severely stripped-down C64 with a bad keyboard, no ports for storage devices, and only 2K of RAM, but including the C64’s iconic VIC-II and SID chips. It was designed solely to run cartridge software. The Max is mentioned on the C64 Programmer’s Reference Guide, where I saw it long ago and had to wonder what the heck that was about. Turns out the Commodore 64 has a compatibility mode that lets it run Max Machine carts!

The Max Machine only saw release in Japan, where it was very obscure. Just think, if Commodore had put a full 64K into that, maybe it could have supplanted the MSX? Well maybe not, but it’s interesting to think about!