Fast Loaders
Beating the bottleneck
Fast loaders accelerated tape and disk loading on 8-bit computers, reducing frustrating wait times through optimised data transfer routines.
Standard loading routines on 8-bit computers were painfully slow. The C64’s 1541 disk drive loads about 400 bytes a second through the KERNAL, despite the drive’s internal electronics being capable of vastly more. The reason was a chip bug, not a policy: Commodore meant the VIC-20 and 1540 to use the 6522 VIA’s hardware serial port, found it faulty, and fell back to a protocol driven entirely in software — “the dead slow software-driven Commodore serial protocol”, in Pasi Ojala’s words — which the C64 then inherited. Tape loaders were slower still. Fast loaders replaced ROM routines with optimised code that transferred data many times faster, often with brief on-screen entertainment (border flickers, progress meters) to make the wait bearable.
Stock loading speeds
| Platform | Stock speed | Notes |
|---|---|---|
| C64 disk (1541) | ~400 bytes/s | 202 blocks in 128 s by CMD’s stock figure; bit-banged bus protocol padded for the VIC-II’s DMA |
| C64 tape (datasette) | ~50 bytes/s | Pulse-encoded audio with safety margin |
| ZX Spectrum tape | ~187 bytes/s (1500 baud) | Better than C64 tape, no disk in stock 48K/128K |
| BBC Micro tape | ~120 bytes/s (1200 baud) | “High-speed” mode supported 300 baud (~30 bytes/s) — backwards from “fast” |
| Amstrad CPC tape | ~180 bytes/s (1000 baud) | Variable rate; “speed-write” sections faster |
A 16 KB game on a stock C64 datasette: roughly 5 minutes to load. Same game with a turbo loader: 30-60 seconds.
C64 disk fast loaders
Why is the 1541 so slow? The bus has only DATA, CLK and ATN, and the KERNAL drives them one bit at a time in software, holding each bit for 60 µs because “the 64’s video chip may interrupt the processor for 42 microseconds at a time”. Fast loaders win speed back by:
- Custom drive code — uploading a small machine-language routine into the 1541’s own RAM that participates in a new protocol.
- Two bits per transfer — using CLK and DATA both as data lines.
- Taking the timing away from the VIC-II — turning the screen off, or letting the C64 clock each bit pair over ATN so an interrupted C64 loses nothing.
- Whole sectors at a time, decoded and streamed in one loop.
- Parallel cables (hardware mod) — bypassing the serial bus entirely.
| Solution | Type | Claim | Source |
|---|---|---|---|
| Stock KERNAL | None | 202 blocks in 128 s (about 400 B/s) | CMD’s stock figure, 1988 |
| Epyx FAST LOAD | Cartridge | “five times faster than normal”; measured by a rival at 144 s to 41 s on Pitstop II | Advertisements, 1985 |
| The Final Cartridge (H & P) | Cartridge | “6 times faster disk loading, 8 times faster saving” | Advertisement, December 1985 |
| Action Replay (Datel) | Cartridge | Warp 25: “200 BLOCKS IN 6 SECONDS” on its own disk format; snapshot freezer alongside | Advertisement, July 1988 |
| JiffyDOS (CMD) | KERNAL and drive ROMs | 202 blocks in 8 s, saved in 30 s | Advertisement, November 1988 |
| Burst mode (1571/1581) | Built into the drive | “ten-fold”; about 3.5× over KERNAL sequential access on a C128; usable from a C64 with two extra wires | C=Hacking 3 and 19 |
| Dolphin DOS, Professional DOS | ROMs plus parallel cable | The “complicated, expensive hardware systems” the rest measured themselves against | Commodore Disk User, 1988 |
See Disk Fastloaders for the technical detail of how these protocols work.
Tape fast loaders
Tape fastloaders use a different trick: store the data more densely on the tape. The stock C64 cassette format uses long pulses that any drive (even an azimuth-misaligned one) can read; turbo loaders shrink those pulses, demanding a well-aligned drive but moving 4-10× more data per second.
| Loader | Platform | Notable use |
|---|---|---|
| Novaload | C64 | Novagen’s loader — “that hugely popular fast-loader”, as Zzap!64 put it in 1985 — and the name that turns up most often in the “Fast loader:” line of Commodore Computing International’s reviews |
| Burner, Pavloda, Flashload, Ultraload, Wildload | C64 | The other named loaders in CCI’s review boxes of 1984–85 and in the Nostalgia group’s tape-transfer sources; each is a distinct format with its own drive routine |
| Speedlock | ZX Spectrum | Most common Spectrum turbo + copy protection combo |
| CyberLoad (Microprose Soccer, etc.) | C64 | Custom per-publisher loader |
| Alkatraz | ZX Spectrum | Heavy copy-protection turbo loader |
| Bleepload | ZX Spectrum | Firebird’s loader, a fixture of Your Sinclair’s hacking columns |
Most commercial tape loaders combined turbo loading with copy protection — the bespoke encoding made it harder to clone the tape on a standard cassette deck.
Loading screens
While the data trickled in, fastloader cartridges and bundled software typically displayed:
- Coloured border flicker — each border-colour change marked one block successfully decoded, giving visual feedback. The Spectrum’s loading-stripe pattern is iconic.
- Loading screens — a static image (often the title screen) loaded first, then displayed during the rest of the load. Renegade, The Last Ninja, and most Ocean releases popularised this.
- Mini-games — Mastertronic’s Invade-a-Load on the C64 let you play Space Invaders to Rob Hubbard’s One Man and His Droid music during the load; Zzap!64‘s reviewer of 3-D Pinball in 1991 “enjoyed playing the Invade-a-load more than the game itself”. Players’ Painter and Novagen’s Mix-e-Load (mix a Hubbard tune while Delta loads) belong to the same family.
Modern relevance
The fastloader story informs:
- Streaming asset loaders in modern engines — overlap I/O with computation, the same trick.
- Background pre-loading in web/mobile apps — pre-fetch while the user reads.
- Embedded firmware updates — over-the-air protocols still negotiate timing, just at higher data rates.