TL;DR: Today I’ve released a C64 tool: CBM Disk Transfer Benchmark.
Please don’t make any more YouTube videos measuring load times with smartphone stopwatch apps. Thanks!
Read below for my ruminations.
The 1541 disk drive that my family got along with a Commodore 64 and 1702A monitor was slow. Really slow. The slow speed of the 1541 disk drive is legendary. I won’t go into the whole backstory from Commodore, but what it meant in my house was that most of the games we had on disk took a very long time to load.
You guys who only had datasettes are probably thinking I shouldn’t be complaining. Heh.
A couple of years after getting the C64, my father came home one day with an Epyx Fastload cartridge. Suddenly, those games that took a minute to load would now be ready to run in about 20 seconds! Light speed! Amazing! I loved it.
But as I got older and read every issue of Compute!’s Gazette magazine, I saw advertising for other speedloaders boasting even faster load times, plus interesting things like sprite editors, character set savers, and even whole memory save/restore functions. I became fascinated with these cartridges and wanted every one. This advertisement in particular always got my imagination going:
Check that out! It’s a spaceship flying into a Commodore 64! AWESOME! I WANT IT!
Of course, my Dad wasn’t made of money, so the Epyx Fastload had to do. At least it had a useful DOS wedge! In fact, the Epyx Fastload is probably the best-selling speedloader, at least in the USA. It has such a nostalgic quality to it that you can still buy new ones.
So, backing up for a minute: how slow was the 1541? A 177 block file, which is 44,702 to 44,956 bytes, takes about one minute and 51 seconds to load up. That’s slow. That’s just 400 bytes a second. This document you are reading is a little more than 10 kilobytes of text (not including images, etc). It would take the 1541 about 30 seconds to load it, assuming it was saved as a PRG.
The C64 is certainly capable of much faster data throughput, as is the 1541 drive (a computer in its own right).
After you pop in an Epyx Fastload, that same 177 block file takes about 21 seconds to load, with its improved transfer protocols. That’s a increase of a factor of five. Back in the day, at least for me, that was very nice. Naturally, people wondered why the 1541 by itself was so excruciatingly slow, when all it took was a modification in code to make it five times faster. I’d recommend reading Commodore: A Company on the Edge for the complete drama behind it, but suffice it to say, the engineers never intended for the drive to be so slow.
And as it turns out, the Epyx Fastload, beloved by Americans like me for so long, was probably one of the worst speed loaders ever sold.
That Action Replay cartridge in that advertisement up there? It will load that 177 block file in about 8 seconds. It’s a 13-fold increase in speed over the stock 1541 speeds, and that is still without any hardware modifications.
Speaking of hardware modifications.
The most famous of these would have to be JiffyDOS. It requires replacing the KERNAL ROM in a Commodore 64 and also the drive itself. That’s barely a hardware modification, but still, it requires changing chips out of your computer and depending on which revision you had, would require de-soldering the old chip. But if you did the work, you benefitted with a 9x load speed. Now, that is not as good as some of the better fast load cartridges, but, JiffyDOS is extremely compatible; rarely does it get in the way of other loaders or copy protection. Also, the CMD DOS Wedge that you get with it is a reason in its own right to have it.
But then there is DolphinDOS. If you were willing to really get into changing your hardware, you could have load speeds increased 23-fold and save speeds 15x. Just don’t expect it to work with everything.
These days, we have lots of C64 storage options that nobody in the 1980s ever dreamed of. The 1541 Ultimate (and the Ultimate 64) can give you cycle-perfect emulation of a 1541 disk drive and USB disk image storage, along with a selection of cartridge ROMs, so you can finally put that space ship into your Commodore 64 and let it fly.
Or, you could opt for the SD2IEC from various sources (TFW8B and Retro Innovations are where I got mine). These use SD cards for storage, and when paired with an Epyx Fastload or JiffyDOS KERNAL, achieve load speeds 18x and 23x (respectively) over the original 1541. So, that 177 block file now loads in under 5 seconds!
All of this has always interested me, so I got it in my head to make a tool to time these transfers as precisely as the C64 hardware allows. Hence, today I release the CBM Disk Transfer Benchmark.
Of course, in the grand scheme of things, squeezing a few more dozen bytes-per-second out of a load time on a Commodore 64 is not going to be the most important thing. Even though I have an Ultimate 64 and can set it up for DolphinDOS (here’s a tutorial from The Highlander showing what to do), I don’t use it. I found it clashed with other things I regularly do on my C64, whereas JiffyDOS plays along nicely. So, on my Ultimate 64, I have an SD2IEC drive plugged in as well, for fast loads and saves in Turbo Macro Pro while coding.
I also physically mounted an SD2IEC in one of my Commodore 64 cases.
After writing this up, I discovered that I am not the first person to write a disk benchmarking tool for the C64. My initial search on CSDB didn’t turn up anything, but that’s because I was looking for the wrong keywords. If you want to see what else is out there, here’s 64’er Speed Test V2. I haven’t tried it, but it looks like my program displays results a little differently.
[Update: I’m keeping an up-to-date table of speed measurements I’ve made here.]