JiffyDOS benchmarks

If you have ever used a Commodore 64, you know that the load-times are horrible. Anything that can speed up load-times is highly appreciated. One way to deal with this is by using various fast-loader cartridges, such as "The Final Cartridge". Two other fast-loader cartridges that I have good experience with is Epyx Fastload and "Turbo 2000" (made by a Danish company called BMP Data). All of these cartridges plug into the cartridge expansion port of the C64 and replace some of the C64's kernal, with the main benefit of speeding up the loading from disk up to 5-8 times.

For people who want to get nostalgic and explore the amazing world of C64 programming and hardware a cartridge with a ML (machine language) monitor is also essential. This is included in a lot of the old cartridges, but a very nice version is the CyberpunX Retro Replay. I have one of these, and the number of features and possibilities for expansion are endless. Unfortunately it seems that the part of the C64 scene that created this cartridge (arround the turn of the century) have finally died (or at least there has been no new versions of the firmware for several years).

Another option that has existed for a very long time is the different ROM replacements, of which the most popular is probably CMD's JiffyDOS. These work by replacing the kernal ROM in the C64 and the 1541 (or other) floppy drive, replacing the disk access routines as well as the serial communication (the IEC bus). This makes it possible to achieve up to 15 times faster loading of data and programs.

With a kernal replacement there is no need for a cartridge to load the fast-loading routines at startup. Instead the disk acces routines of the C64 kernal is replaced. By using this approach, a much more compatible system is obtained, and the fast-loading will apply to all disk-related activity, even larger games that contain their own loader.

There are, however, a few programs that have problems using the drive, for which the kernal replacement must be disabled, but this is far less common with a kernal replacement than with a fast-loader cartridge. Secondly JiffyDOS has a little disadvantage if you also use a tape-drive (datasette): The tape loading routines have been removed from the kernel to make room for the enhanced disk-routines. This means that JiffyDOS must be disabled to use tape deck, but in most cases I guess you would not need this if you have a floppy drive.

JiffyDOS screenshot

I got an interest in JiffyDOS when I discovered that one of my C64s and a 1541 that I bought on eBay had JiffyDOS installed. The JiffyDOS kernel replacement for the C64 is a version 6.01, which seems to be the latest (made by CMD in 1989). The version of the ROM in the 1541-drive is 5.0, and I don't know if this is the latest version, but it seems to work fine. I made an image of the original JiffyDOS ROMs and burned them into new EPROMS, along with a normal kernal and a patched one, I made (this is all described on my C64 ROM page). The version of the JiffyDOS C64 kernal replacement is easy to determine, since it is printed on the welcome screen of a JiffyDOS-enabled C64 (see the screenshot on the right). For the version of the JiffyDOS ROM installed in the floppy-drive, you can read out the status register of the drive. This is done with the @-command in JiffyDOS. As mentioned, my drive has version 5.0 of the ROM.

After repairing the C64 and the 1541 floppy drive (they were both defective when I bought them on eBay), I verified that the JiffyDOS was working, and then I started to wonder if the JiffyDOS ROM replacements would gracefully degrade if used with a counterpart that was not JiffyDOS enabled. I verified that all combinations worked (luckily I had installed switches in both the C64 and the 1541, so this was quite easy. Since all combinations worked, I got curious and wanted to to find out how much of a speed improvement JiffyDOS would give, and also if the combinations with only JiffyDOS installed on either the C64 or the 1541 would show any speed improvement at all.

To test this, I decided to find some application that I could measure the loading time of. The application chosen was the game Last Ninja 2, since it has its own loader, which would help test the fact that JiffyDOS is able to handle this. The time measured is from the LOAD-command is entered to the game starts, so it includes any processing done by the CPU (decompression), which wil off course not run faster with the JiffyDOS. Delays for typing RUN and continuing after the loader screen may vary a bit, since these steps were done manually, but the delays should be short enough that it will not greatly change the results. In all possible ways this test is highly un-scientific, since the timing was done with a stop-watch, but yet I thing it proves without a doubt that a C64 and 1541 runs quite a lot faster with JiffyDOS. The measured times are listed in the table below.

A different test was made, measuring the time to do a directory listing (of my Last Ninja 2 disk). The results are shown below as well.

Configurationloading LN2directory list
Plain system2:360:36
Only C64 JiffyDOS2:360:36
Only 1541 JiffyDOS2:100:28
JiffyDOS on c64 and 15411:070:07

As the results clearly show, the use of a kernal ROM replacement such as JiffyDOS can significantly improve the performance of a C64 systems disk access. Notice how the directory listing time improved from 36 seconds to only 7 with JiffyDOS. Loading the game "only" took us from 2:36 to 1:07, most likely due to the fact that a lot of the time is spent decompressing (e.g. CPU time), and not on the loading and transferring. Still, a JiffyDOS enabled system was more than twice as fast as a stock C64 and 1541 for this application.

Also note the interesting fact that installing JiffyDOS only on the C64 side does not give any improvements on loading (althoug it still enables you to use the JiffyDOS shortcut commands). But having a JiffyDOS ROM in the 1541 (and a normal kernal in the C64) will actually give a slight improvement over the stock system. This makes sense, since optimizations to the disk reading routines are for the largest part in the firmware of the floppy drive. One important thing that this test has shown is that JiffyDOS is able to gracefully degrade in cases where only one part of the system (e.g either the C64 or the floppy drive) runs JiffyDOS. In this case, however, the speed benefits are minimal, but at least it works.

Last updated: 2006.05.13