On PETSCII

We’ve brought up a couple of examples of Commodore PET software lately, which as I keep saying, is interesting because the PET has no way of doing bitmapped graphics, sprites, or even definable characters. Its characters are locked in ROM and cannot be changed. So, it includes a set of multi-purpose characters that was used throughout all the Commodore 8-bit line, even as late as the C64 and C128, which having definable graphics didn’t need these kinds of generic graphics characters, but they were still useful for people who didn’t want to create their own graphics.

The PETSCII characters, as used on the Commodore 64 (image, with some editing, from Wikipedia). The graphics set also includes reverse-video versions of each character.

Back on my Commodore coding days I became very familiar with these characters. I think they’re much more universally-applicable for graphic use than the IBM equivalent, the famous Code Page 437, although that’s mostly because PETSCII doesn’t bother defining supporting so many languages. Code Page 437 also uses a lot of its space for single and double-line versions of box-drawing characters, although on the other hand it doesn’t waste characters defining reverse-video versions of every glyph.

PETSCII has:

  • A space and reversed space, of course.
  • Line drawing characters for boxes of course: vertical and horizontal lines, corners, and three- and four-way intersections. There are also curved versions of the corners.
  • More line-drawing characters for borders.
  • Still more horizontal and vertical lines, at each pixel position within their box.
  • With the reverse-video versions, enough characters to effectively do a 80×50 pixel display, as if it had a super low-res mode.
  • Different thicknesses of horizontal and vertical lines too.
  • Diagonal lines, and a big ‘X’. Note that on the PET and Vic-20 these lines were all one pixel wide, but on later computers with both better resolution and color graphics they were made thicker, which means diagonal lines have “notches” between character cells.
  • Other miscellaneous symbols: playing card symbols, filled and hollow balls, and some checkerboards for shading. On the PET and Vic, the shading characters were finer, while on the other 8-bit computers they were made of 2×2 boxes.

There are resources that let you use PETSCII to create old-school computer art, like this PETSCII editor, Petmate and Playscii, and for a bunch of examples of what you can do with it you can browse through the Twitter account PETSCIIBots. And this blog post from 2016 both makes the case for PETSCII as a medium for art and provides some great examples of it.

Some robots from PETSCIIBots

PETSCII Bros

We love games made for unlikely hardware, and PETSCII Bros. fits that bill like a duck’s dentures. Like we explained in the post about that PET demo from a while ago, the PET didn’t have changeable graphics characters and no bitmap mode at all, and so it wasn’t what we’d consider a games machine. But it did come with a set of interesting graphics characters that, among other things, had a set of 16 characters that let programmers use the screen as a super-low-res 80×50 pixel display.

PETSCII Bros is a PET action game that uses those characters (long called “PETSCII” as a cheeky reference to ASCII) for an actual game, that plays similarly to Nintendo’s classic Mario Bros. arcade game. Of course you’ll need a PET, or an emulator (such as the one that comes with VICE) to play it. Or if you’re just passing interested, you could watch this video to see how it works:

PETSCII Bros. (for the Commodore PET, itch.io, $0)

SNK vs Capcom… on a Commodore 64?!

The title is no joke, a couple of crazy people RetroGL and JoneGG, are actually doing it, and while they’re close to a final release you can also download a current alpha for free, with manual, from links in the description on their Youtube demonstration video:

It’s a great example of playing to a system’s strengths (surprisingly large sprites and a legendary sound chip) while downplaying its limitations (only eight sprites, low multicolor resolution, 16 colors, a controller with only one button). It’s much better than the arcade porters of the system’s heyday would have accomplished. I mean, just look at it! On the Commodore 128, they even plan to implement stage scrolling!

I’m not sure how it works internally, but given that it’s being distributed as a CRT file and not a disk image, my guess is on physical hardware it’d rely on a physical cartridge for expanded, bank-switched ROM space. It’s a trick that’s being used more often, like how Champ Games uses it for their Atari 2600 ports of classic arcade games.

SNK vs CAPCOM for Commodore 64 Demonstration (Youtube, 4 minutes)

Pac-Pac

From 2016 comes Pac-Pac, a Pac-Man style arcade game for an unusual platform: the Commodore Plus/4!

The Commodore 64 was famously intended to be a family computer that could also play games. The Plus/4 was intended as more of a business machine, without hardware sprites or the 64’s capable sound chip. It still had 64K of RAM though, and some productivity software included built-into the system in ROM. It could also output more colors than the C64, was clocked at a higher speed, and had a simpler design with fewer chips.

Still though, the lack of hardware sprites was a big limiter for games, which remained a driving factor for microcomputer adoption. Having no sprites, in Pac-Pac, the player’s surrogate character and the ghosts are both drawn on-screen in software, which consumes a lot of processor time. The game still runs at a decent rate though, and is fairly fun to play.

It’s best not to play Pac-Pac like Pac-Man. Despite a superficial resemblance it’s much the different game. The ghosts don’t have different personalities, and don’t coast confidently through the maze, but jitter about uncertainly, and randomly. This makes them generally easier to avoid, but it also means they’re prone to camping in the vicinity of uneaten dots. You’ll find you’ll have to lure them away from the last dots in the maze to get to them safely. You’re more likely to lose a Pac from daring their presence a little too closely.

Unlike Pac-Man there are no energizers, so there’s no way to attack the monsters yourself. On later boards the ghosts slowly get more aggressive, and they move faster. There’s also a timer to force you to go after dots. Eating randomly-appearing fruit replenishes the timer by a bit. There are also Question Mark items that appear in the maze, that can produce good or bad effects. They’re usually good though. The only ways to earn extra lives are by earning 5,000 hard-won points or, occasionally, from a Question Mark.

To play it you’ll probably need an emulator, such as the one from WinVICE. RetroArch can play it with its xplus4 core, which comes from the VICE project.

I am informed that the author of Pac-Pac, Skoro, passed away earlier this year. He made a plethora of work for the Plus/4, as shown by his page on Commodore Plus/4 World, from 2019 to all the way back in 1988. 31 years is a good long while, and I hope that the fruits of his labor will be enjoyed for decades to come.

Pac-Pac, from Commodore Plus/4 World

A 1982 Issue of Compute Introduces the Commodore 64

Overseeing the early days of computing was Compute! Magazine, properly stylized with an exclamation point. They got their start as The PET Gazette, changing over to Compute as their focus spread into more types of home microcomputers. Compute stuck around as a multi-platform for some time, but ultimately spun off a couple of manufacturer-dedicated magazines. One of these was Compute’s Gazette, whose name harkened back to those PET-exclusive days. It focused on Commodore machines, and would then outlive Compute itself by some years.

The early years of Compute magazine are joyous. They’re filled with esoteric data, geeking out over low-level coding matters, and lots and lots of type-in programs. But it is depressing to me, reading over the early issues, knowing how numbered are its days. This whole genre of computer magazine, that encouraged users to type in programs, that offered coding tips, sometimes even offered add-on disks of software, is now only a memory. We are all poorer for it.

The writing on the wall for this style of magazine could perhaps be seen as early as September 1982, when Compute published an article about a great new upcoming product from Commodore, the Commodore 64. Not because of the style of the article or anything specific about the computer. Just that, by being so greatly popular, the C64 greatly expanded the magazine’s audience, which would inevitably steer it towards becoming more “mainstream,” which ultimately would be the death knell for a publication like this.

Still, it’s fun to look back on. Here is that article in image form, or you could find it on the Internet Archive, where the archives of Compute live on, for a time.

An extra, from that issue, is an ad for one of Microsoft’s first peripherals, a memory card for the Apple II:

Demo: Back to the PET

The Commodore 64 was not Commodore’s first home computer. It wasn’t even the VIC-20. Their first machines were the line of the PET, or “Personal Electronic Transactor,” as labored an acronym as any.

The PET was a decent machine, with integrated monochome monitor and a heavy metal case. Although it had no color, no sprites, only a basic speaker for sound and no synth, it had a number of things in common with the later C64, particularly the 6502 processor that lay at the core of half of the personal computers sold at the time.

There was something else, something fairly major, that the PET lacked: customizable graphics. No hi-res mode, and no programmable character sets. The graphics were encoded on a ROM that wasn’t even mapped to the CPU’s address space. The letter ‘A’ would forever look like a letter ‘A’. It couldn’t be changed to anything else, even a slightly different ‘A’. This greatly limited what PETs could display, and basically doomed it as a gaming computer.

Commodore tried to compensate for this feature by including “PETSCII,” a set of custom characters included in the upper 128 characters of its ROM intended for makeshift graphics. PETSCII would survive throughout the rest of the Commodore 8-bit line, even featuring on machines that had programmable graphics: the VIC-20, C64 and C128 all had it included too. (The Twitter account PETSCIIBOTS (now inactive) shows off its many graphical characters in making robots.)

On the later machines PETSCII graphic characters were a fun nicety. On the PET, they were all you had, all you would ever have. This is exactly the kind of limitation that demo authors love circumventing where they can, and taking advantage of when they can’t. Hence: Back To The PET, a demo, complete somehow with chiptunes, that runs on Commodore’s ancient machine:

Every character cell of every frame of this video is one of the PET’s 256 ROM-based characters. It had no hardware scrolling, so effects are all faked or done 8 characters at a time. Yet it’s still pretty slick! The PET had quite a better selection of graphics characters than even IBM’s code page 437, including lines of single pixel differences in thickness and horizontal and vertical position. Image what the ASCII artists of the 90s could have done with this selection! Luxurious!

RetroGamerNation Covers New VIC-20 Games For 2022

The Commodore VIC-20, Commodore’s first attempt at a budget color home computer, often gets lets out of the spotlight in favor of its more capable successor, the Commodore 64. Back at release it had significantly limited RAM even for the time, only 5K, and it also had only eight colors for general use, simple sound, and no hardware sprites. Even so, it did all right in the market, but was quickly overshadowed by Commodore’s more powerful followup.

But all of these factors mean that making substantial games for it is both a more interesting challenge, and a lot more impressive when it’s done well. Youtube channel RetroGamerNation did a roundup video of interesting VIC games made in 2022. Remember, when watching these videos, the VIC had no sprites. I personally like the look of Flood. Most of these games require significant RAM expansion to run (on the VIC-20, “significant” means at least 16 kilobytes), but many people who try them out will be running them on an emulator anyway, and one of the games actually runs on an unexpanded VIC.

RetroGamerNation: Commodore VIC-20 Games Roundup For 2022 (Youtube)

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:

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.