Famicom Family BASIC

I love BASIC! I don’t make a secret of it. It was the product, even before DOS, that launched Microsoft. It was invented to be the language to bring programming to the masses, and, for a short time, it fulfilled that function. (These days, if you want to learn coding, I suggest Python. Not only is it a lot more capable and modern, but you can actually get a job writing it.)

Used to be if you had a new computer you wanted families to buy, you had to have a version of BASIC to ship with it. The Apple II had two, one written by Steve Wozniak himself. Right off the top of my head, computer systems with BASIC, go! Altair, Apple II, Commodore Pet, Vic-20, 64, 128, Plus-4, 16, Atari 8-bit, TRS-80, MS-DOS, Windows (Visual BASIC carried the torch for many years), and, most improbably, the Atari VCS/2600, in its BASIC Programming cartridge, an effectively useless cart for its stated purpose that’s nonetheless an excellent hack. The machine has 128 bytes of RAM, but it can still run BASIC, by jove.

The Famicom has a version of BASIC too, coming in at the end of the language’s heyday. Over on the Peertube instance diode.zone, user RE:Enthused did a two-part introduction to it that may be of interested to people who still think in terms of FOR/NEXT loops.

Let’s look at Family Basic on the Famicom, Part 1 (8 minutes) and Part 2 (17 minutes).

Commodore Basic 2.0 for Other Systems

Say what you will about Commodore BASIC 2.0, the built-in programming language and makeshift shell for the Commodore 64, written by Microsoft employees and descending from code written by Bill Gates himself, it’s certainly, um, basic. Nearly everything that takes advantage of that machine’s graphics or sound features involves POKEing values into memory at various locations, requiring a programmer to memorize a long list of important numbers.

Because it doesn’t interface with the system’s unique features to any great extent, it’s a very generic version of BASIC. But this means it can be ported to other systems without tremendous effort. Fancy-pants commands don’t have to be converted to another architecture’s norms, because there aren’t any! And lots of systems used the instruction set and general capabilities of the MOS 6502, upon which the Commodore 64 is based, so now we have versions of its BASIC that work on the Nintendo Entertainment System and the Atari 800. They’re both based off of Project 64, an annotated disassembly of the C64’s BASIC and Kernal ROM code.

The NES port should be able to run on actual hardware, but you’ll need the Family Keyboard that was made to work with the Famicom’s own official BASIC to use it, which was only released in Japan.

By the way, the reason that I write BASIC in all-caps is, it’s an acronym! It stands for Beginners’ All-purpose Symbolic Instruction Code.