Vision BASIC for the Commodore 64

The Commodore 64 was, for its time, quite a wonder, an inexpensive home computer with 64K of RAM and excellent for its time graphics and sound capabilities. Sadly, it came with one of the more limited versions of Microsoft BASIC out there.

Microsoft BASIC had its strengths, but many of them were not a good match for its hardware. The C64 had no commands to take advantage of any of its terrific features. To do nearly anything on the machine besides PRINTing and manipulating data, you had to refer to a small number of cryptic-yet-essential commands: POKE for putting values into arbitrary memory addresses, PEEK for reading values out of them, READ and DATA to read in lists of numbers representing machine language routines, and SYS to activate them.

And getting the values to do those things required obtaining and poring over manuals and the venerable C64 Programmer’s Reference Guide. Even then, Microsoft BASIC was notably slow, especially when doing work with numbers, due to its dogged insistence of converting all values, including integers, into floating point before doing any math on them. So while BASIC supported integers, which required less memory to store, actually slowed the machine down due to the need to convert to and from floating point whenever an operation needed to be performed on them. This doesn’t even begin to get into the many inefficiencies of being an interpreted language.

Vision BASIC, an upcoming commercial compiled language for the Commodore 64, looks to remedy many of these faults. The above video is a nearly 40-minute explainer and demonstration of the system. It requires the purchase of a memory expansion unit in order to be used on a physical machine, but it can produce executable code that can be run on a stock C64 as it came out of the box.

It’s not free, and at $59 for the basic package it may seem a little high for a system for developing software on a 40-year-old computer, but that price includes the software on floppy disk and a USB drive. It’s certainly capable, and runs much faster than many other compiled languages on the system. It’s definitely something to look into for people looking to make games on the system without digging deep into assembly, and if you have a desire to do that it has a built-in assembler for producing in-line machine code too! It is an intriguing new option for Commodore development.

Commodore 64 Ads Retrospective

This is not a real ad, it’s a reimagining, but it’s pitch-perfect.

Bryan Lunduke has a collection of old ads for what is still the best-selling model of personal computer of all time, the Commodore 64. No doubt it retains that title today on the basis of a number of technicalities, like PCs are atomized among many different makes that still all run the same OS, and people not considering an iPhone to be a computer somehow.

I’d like to draw your attention in particular to the ad for GEOS on that page, the early C64 windowed operating system that breathed new life into the system. In the end it was probably doomed due to a number of factors: Apple’s head start and much better marketing, the fact GEOS had to be booted from disk while Mac OS was partly ROM-resident, and a bit of clunkiness. But you can do rather a lot with GEOS all by itself, and it comes with a capable word processor in GeoWrite. GEOS, and its weird legacy, probably deserves a post of its own eventually.

The image above is for a fake ad, but it’s based off of an iconic, and slightly disturbing, television ad from Austrailia, Keeping Up With The Commodore:

40th Anniversary of the ZX Spectrum

“What do you want from us? We’re evil! EVIL!”

Lee Reilly on The GitHub Blog offers a long post about the ZX Spectrum on the occasion of the 40th anniversary of its release. Wait, 40th anniversary? (does some math) That puts it in early 1982, the year of Donkey Kong!

To give to some incentive to click through, some of the projects linked are:

  • A Spectrum emulator written in Rust, and another one in JavaScript
  • A port of Spectrum game The Great Escape to C and current platforms
  • Tools for working with archives of Spectrum cassette tape images, including to convert one to mp3 to facilitate transferring to a tape for play on a physical ZX Spectrum
  • A Visual Studio Code extension for working with Z80 code
  • And small program to convert image files to the peculiar limitations of the Spectrum’s graphics hardware, to give your portraits some of that loading screen flair.

That last one I tested out a bit, here’s some results. I discovered it’s best if you resize the images to around the Speccy’s 256×192 resolution before processing.

Richard Speed of The Register also wrote a nice rundown on the ZX Spectrum’s history.