The much-beloved brown bread bin turned 38 this year. That’s a respectable age for any home computer, but it also means that many young whippersnappers will have a tough time getting to grips with it. This post explains the bare basics you’ll need to navigate around an emulated C64 and its disk drive. I’m primarily writing this for users of the MiSTer FPGA project, but I can also heartily recommend the Vice emulator for some good old free retro fun.
The original hardware consists of a single keyboard which will look fat by today’s standards, but that’s because it contains the entire computer. Older models were bulky and brown, newer ones were slightly sleeker and came in a creamy shade of white. Functionally there’s no difference that any newcomer should fuss about.
The internet wasn’t a thing for Commodore users at the C64’s heyday, nor was any kind of online connectivity for that matter. Modems were technically available and usable, but expensive and difficult to operate. Distribution of software took place on two main types of physical media:
- Cassette tape
- 5.25" floppy disks
When emulating any of these media, you’ll be dealing with so-called image files. These are bit-for-bit digital reproductions of the entire original storage medium. Don’t worry, disks back then were tiny compared to today’s massive hard drives. You can easily store tens of thousands of them on an average Micro SD card and have room to spare.
What you’re looking for, are T64 files for tapes and D64 for disks. Now I’m not going to tell you where to download any commercial game images because technically that’s illegal if you don’t own the original software. I assume you know how to use an internet search engine though.
I’m not one to condone actual piracy, but in the case of retro games from the 80’s there is little damage to be done anymore. Most of the games are no longer commercially available at all and haven’t been for decades. I leave the moral and legal choices up to you. Just be advised that the legal copyright on any video game for the Commodore 64 has not expired yet and will not do so for many decades to come in most jurisdictions.
You should note that the Commodore 64 is far from a dead platform. New games are still being produced as you read this.
The operating system
Many if not all of the 8-bit Commodore computers came with a version of Commodore BASIC as their preloaded operating system. When you switch the Commodore 64 on, you’ll be greeted nearly instantaneously by an all too familiar screen. Even if you never used a C64 before, the power-on screen has become almost synonymous to ‘retro computing’. Just ignore all of the mubmo jumbo for now, but note the word ‘READY’ followed by a blinking light-blue cursor.
Yes, these were the eighties and we’re dealing with a command line interface here. I’ll let you in on an easy to use GUI environment (of sorts) later in this article. However, having a GUI on the C64 is not standard so let me first explain how to navigate a completely vanilla C64.
Loading software from tape
It helps very much to realize that in the olden days, people used actual audio tapes in a small tape deck to load and save software. The tape deck (Commodore 1350 Datasette) had the usual buttons: play, record, fast forward and fast rewind. Along with the buttons it had the indispensible tape position counter. This was a simple set of three mechanical wheels that would slowly count up from 000 all the way to 999 as the tape was rolling past the read/write heads.
The buttons on the 1350 were mechanical and the computer had no way to know whether there was a tape in the drive at all, what tape was loaded if any was present, or whether it was properly rewound. In short: the user was responsible for all of the hand-holding before software could be loaded. The original workflow with tapes comes down to:
- Rewind the tape down to the beginning.
- Set the mechanical counter to 000
- Wind forwared to the position required (if known at all).
Assuming your software is located at the start of the tape, just wind down to the beginning and ignore the other steps. And fortunately for us, T64 image files are always wound down to 000 by default. All we have to do, is initiate the loading process from within the BASIC environment. Type the following command on your keyboard:
The command is in all-caps but don’t worry, your computer will be set up in the all-caps mode by default. Press enter and wait for instructions. The computer will come back to you with:
PRESS PLAY ON TAPE
Initiate the tape loading by pressing the virtual play button on your emulator of choice. Now prepare for something of a shock. The screen will go entirely blank as the tape starts rolling and the computer reads data from it, looking for the distinctive mark that tells it a program is found.
The computer will at this point tell you:
FOUND PROGRAMNAME LOADING
The name of the program can be anything. After this, the computer will load the actual program. This will blank the screen again and the process will take ages: up to 30 minutes (the maximum length of a tape supported by the Datasette)! So do not be alarmed at a very long period of absolutely zero feedback from your system. This is absolutely normal.
After a long wait, the computer will hand you back control. Now type:
..and press enter to actually start your software. For the sake of sanity I’m skipping the scenario where your tape holds more than one program, and actually saving your own data to a tape. It’s the 21st century and madness lies down this road.
This is why disk became popular
This cumbersome process is why floppy disks became popular. They are noticeably faster, although that’s a matter up for debate when it comes to the Commodore 64, and also permit random access. That means the computer can simply request a table of contents from any loaded disk and you can then pick which program you want to load. No hand-holding required, just a bit of patience.
Commodore 64 computers only used external disk drives, with the most popular type being attached by serial cable to the main keyboard. This popular drive, the 1541, featured a single slot into which a 5.25" disk would fit. The drive would read only a single side of the disk, so you had to manually flip it over to use the other side. You’ll notice quite a few A- and B-sides in collections containing larger games or applications. When you mount a D64 file on your emulator, you are essentially sticking a disk into your 1541 drive which will then see a single side of a floppy disk.
By convention, the first (and often only) disk drive was given internal device number 8. You could add multiple drives by chaining them together, with their device numbers increasing up to 15 as you add drives. In emulators it’s not unusual to also see the option to emulate a second drive, which will be device 9. For now, just remember 8.
Without any further ado, let’s load the table of contents from your disk:
A real drive would spring to life and whirr for a bit as the table of contents is transferred to the computer. The command loads a special placeholder called $, which refers to the disk’s table of contents. The 8 indicates the device number of the disk drive you are reading from. Have a look at the contents by issuing:
This will show you a list of the files stored on the disk. Commodore 64 does not support the concept of folders, so there will simply be a flat list of files. Assuming the program you want is called “GAME”, you can load it from disk:
You’ll notice the device number again. The suffix ,1 denotes a technicality dealing with the memory address where the program will be stored as it comes in from the disk. You can usually do without it, but just add it in there for the sake of compatibility and forget all about it until you actually start programming your C64.
Loading the programs will still take a very long time by today’s standards, but hang in there. Once the computer gives you back control by a ‘READY’-statement followed by a blinking cursor, run the software:
So how about that GUI?
Back in 1987 a Dutch company called RISCA created The Final Cartridge III (FC3). Cartridges were plug-in circuit boards that you would stick into the back of your keyboard semi-permanently to expand the capabilities of your machine. A cool trick of the FC3 was the fact that it not only accelerates loading from disk (totally worth it for that feature alone!) but it also came with a simple GUI environment that starts up by default on any C64 with the FC3 plugged in.
The FC3 is easily available through the internet as a .crt file. You attach the cartridge by loading it into your emulator and restarting the Commodore 64 environment. The boot screen will look different and present you with a slightly Mac-like graphical environment. You use a joystick controller to navigate this interface and press the fire button to click. While Commodore did produce a mouse for the C64, it was quite uncommon to see it in the wild.
In the ‘Utilities’ menu you’ll find an item for Disk, click it and you’ll see a rudimentary GUI from which to perform disk actions.
The ‘DIR 1’ button will load an additional window with the contents of the disk. You’ll see in the screenshot of the example that the only file on there is ‘COMMANDO’, which is 172 blocks in size.
To run it, we click the name of the file which will then highlight. Choose the ‘RUN’ button in the ‘Disk Operations’ window and finally we hit the big fat ‘DO’ button.
Once you hit the ‘DO’ button, you’ll be warned that you’ll be leaving the desktop environment. We’re still dealing with an 8-bit home computer from the eighties, so this is about as much GUI as you’ll get. Multitasking is out of the question so the GUI will move out of the way in favor of the program you just chose to run.
This concludes the primer on what you really need to know about the C64 hardware and its operating environment in order to use existing software from an emulator. Of course you’re dealing with a fully fledged computer which can do a whole lot more, but we’ll leave that for later. For now, enjoy playing the games of yesteryear! Here are a few suggestions of titles to try and find:
- The Great Giana Sisters
- Impossible Mission (1 and 2)
- Turbo Outrun
- Mayhem in Monsterland
- Rainbow Islands
- Bubble Bobble
- ..and many, many more!