6

Though I had several friends back in the day with a Commodore 64, I only recently acquired one after a friend gave me his old one before he moved house. As such, I'm diving in to learning about the machine that I mostly ignored 35 years ago and quickly remembering that the 1541 disk was s.....l.....o.....w.....!

I've been reading up on the disk performance issue. I knew people who had the Epyx FastLoad cartridge, but I've only really now discovered JiffyDOS. While both are interesting solutions, they both require hardware that I'd have to acquire (and in the case of JiffyDOS, replacement of ROM chips in the C64 and 1541). Getting the hardware is possible, but takes time that I don't have for the few moments a week I can possibly dedicate to my retro C64 experience.

So that being said:
Is there a possible type-in program that could work as a one-off to fast load a game?

I'm thinking along the lines of something that I could save to a disk, run it, then load/run the game I want to boot.

2
  • 1
    You do not mention it in the question, but have you considered something like the 1541 Ultimate-II cartridge, which not only emulates the 1541 (with disk images stored on USB media) and fastloader cartridges but can also load single-file .PRGs into the memory using fast DMA transfers? (Maybe you want your retro experience include a genuine 1541 and loading from an actual floppy. Just mentioning it in case you would like to have super fast load times but are not aware of this option.)
    – Jukka Aho
    Commented Oct 21 at 23:34
  • The device transfer is intentionally slowed down. A permanent fix requires changing the hardware 🙂 Commented Oct 22 at 14:16

3 Answers 3

1

Another option was TurboDisk from Compute! magazine (Issue 59). There isn't much to say, it was a simple but effective implementation that (if I remember correctly) relied on running a short loader on the 1541 and would bit-bang the data and clock lines to move the requested data; and it worked pretty well. The biggest problem you will run into is when loading games, they might try to occupy the same memory as the TurboDisk program - so compatibility is always iffy. Here is a link to the issue of Compute!.

4
  • If memory serves, that fast-loader managed to keep the screen visible, unlike most fast-loaders which blanked it.
    – supercat
    Commented Oct 21 at 14:36
  • @supercat, it's been a long time; but I disassembled TurboDisk to see how it worked and I seem to remember it having some code to blank the screen and to adjust the loop timing based off the raster. I think there was a performance benefit to turning off the display, but it's all a bit fuzzy without actually firing it up and trying it - but it stands out in my memory because I was totally baffled what the point was when I encountered that raster code.
    – Geo...
    Commented Oct 21 at 15:15
  • 1
    My guess woud be that the code might have been designed around the fact that the C64 has certain specific "badlines". A fast loader will have a certain amount of time between reading sectors to transmit data without affecting performance; if e.g. the C64 sends out an acknowledgment pulse to request each byte, and can determine before sending each pulse whether it would be able to complete it before the next byteline, and wait until the next badline has happened before requesting the byte if so, it may still be able to transfer each sector before the next one arrives.
    – supercat
    Commented Oct 21 at 15:20
  • Regardless of how this was coded, the spirit of the question was if there was a type-in program that could be found to give fastload capabilities to someone who didn't own the hardware that would enable it. I tried it out and though it isn't as fast as the Final Cart III feature that I use from my since-aquired 1541 Ultimate II+, it would have done the job for me when I originally asked the question. I wonder if there is a badge for answering/accepting an answer 5.5 years later? :-D
    – bjb
    Commented Oct 22 at 16:49
6

There were quite a number of software-only fast loaders for the C-64+1541:

  • Hypra Load
  • Speed Load
  • ...and many others (a quite comprehensive list can be found in the C64-Wiki)

Fast loaders are (typically quite short, as they need to be loaded "slow") pieces of code that can accelerate floppy loading times 5-10 times (some even faster). The overall acceleration is the result of the actual speed-up of the transfer, plus the extra time needed to slow-load the loader itself and the transfer of the drive-end of the software to the drive - So the speed-up is only significant for reasonably long programs. Fast loaders don't work with all programs and will very probably be de-activated by multipart loaders in games, so your mileage may vary.

A fast loader typically consists of two pieces of code, one running on the computer, the other executed on the separate CPU in the Commodore floppy drive. Thus, your software version must match the type of floppy drive - there are special loader versions for 1581 drives.

4

I would recommend SDOS 2016. It is more recent than what is linked from the C64-Wiki, and it includes documentation and source code. But you probably wouldn't want to type it in. It's pretty long...

The readme.txt offers a quick synopsis of the functionality.

SDOS is based on SJLOAD and VDOS. This is a common boot loader that checks the drive and chooses among three possibilities:

  1. if JiffyDOS protocol is supported, it starts as SJLOAD;
  2. if not, it tries to start as VDOS (which is possible on 1541 and 1571 drives in C64 mode);
  3. if none of them are present, it stays at Kernal load.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .