Discussion:
Fastload: how's it work
(too old to reply)
Ldnayman
2004-07-28 14:28:47 UTC
Permalink
How did the Epyx fastload cartridge work, and were there any documented
problems caused by its use? I used one for years and years without problems and
it was like a godsend!
Peter van Merkerk
2004-07-28 19:26:01 UTC
Permalink
Post by Ldnayman
How did the Epyx fastload cartridge work, and were there any documented
problems caused by its use? I used one for years and years without problems and
it was like a godsend!
I am no expert. But I believe most fast loaders changed the
communication protocol between the C64 and the drive. I remember reading
an article about the evolution of the serial bus protocol. Unfortunately
I don't have an URL. Strangely enough the drive mechanics was not the
limiting factor with the 1541 drive. The original intent was to make the
serial bus much faster, similar to the parallel IEEE connection used on
the PET's. However on the VIC-20 a bug in the VIA chip prevented the
serial bus to be used as originally intended, so the engineers had to
resort to slower data transport method. On the C64 bad-lines made things
even worse. The tight release schedule for the C64 prevented the
engineers from fixing the serial bus properly.

I fully agree that those fastloader cartridges were an essential thing
to have. I probably would have ditched my Commodore long ago if it
weren't for the fastloaders.

It seems that Epyx fastload cartridge was quite popular in the States.
Was the Epyx cartridge only a fastloader or did it do more? I have never
seen one over here. Back in the day most people I knew who had a C64 had
either the Power cartridge or the Final cartridge. Those cartridges were
much more than just fastloaders, they also had a freezer, a screen dump
facility, a machine language monitor and extended basic. I couldn't
imagine what it would be like to use a C64 without one of those.
--
Peter van Merkerk
peter.van.merkerk(at)dse.nl
Ldnayman
2004-07-28 19:35:55 UTC
Permalink
I think it did some other stuff, but I just used it for loading. It DID feature
abbreviated commands...I don't exactly remember but instead of
Load "zaxxon",8,1
you could just type

%zaxxon or something. Shorter commands.
Post by Peter van Merkerk
It seems that Epyx fastload cartridge was quite popular in the States.
Was the Epyx cartridge only a fastloader or did it do more? I have never
Jim MacKenzie
2004-07-28 21:48:12 UTC
Permalink
Post by Ldnayman
I think it did some other stuff, but I just used it for loading. It DID feature
abbreviated commands...
It had a built-in ML monitor, too, although it was very cryptic and I never
found it to be useful.

FastLoad was a pretty good cartridge. There were a few programs that didn't
like it, and it didn't speed up writes or random, sequential or relative
file reads. It also made horrible noises if the disk was slightly bad or
the drive was out of alignment. However, if I hadn't discovered how good
JiffyDOS was, I'd probably still be using FastLoad.

Jim
Kelly
2004-07-30 02:13:59 UTC
Permalink
Post by Ldnayman
Post by Ldnayman
I think it did some other stuff, but I just used it for loading. It DID
feature
Post by Ldnayman
abbreviated commands...
It had a built-in ML monitor, too, although it was very cryptic and I never
found it to be useful.
FastLoad was a pretty good cartridge. There were a few programs that didn't
like it, and it didn't speed up writes or random, sequential or relative
file reads. It also made horrible noises if the disk was slightly bad or
the drive was out of alignment. However, if I hadn't discovered how good
JiffyDOS was, I'd probably still be using FastLoad.
Jim
Fastload also had another feature, very sparsely documented.
I forget the exact syntax, but you could jsr to a subroutine
in the cartridge, and load a block off the disk. I forget
if it was something like lda #track, ldy #sector, but I used
that feature in developing Sub Battle Simulator. It made converting
to Vorpal easy. Vorpal was something like lda #track, ldy #sector,
ldx #number-of-blocks. hmm, I forget where the load address was stored...

oh well...


Kelly
Cameron Kaiser
2004-07-31 00:32:13 UTC
Permalink
This post might be inappropriate. Click to display it.
Leif Bloomquist
2004-07-28 20:17:28 UTC
Permalink
Post by Peter van Merkerk
It seems that Epyx fastload cartridge was quite popular in the States.
Was the Epyx cartridge only a fastloader or did it do more? I have never
It has a simple DOS wedge so you could type $ or /filename, etc. I
actually still use mine sometimes, as the wedge works pretty well with
64HDD. But there's no way to change drive numbers, so you have to resort
to POKE186,xx. It also has simple single-drive file and disk copiers
built-in. Another nice feature was holding C= and RUN-STOP to very quickly
do LOAD"*",8,1

It also has an extremely simple machine language monitor, which I used to
teach myself machine language programming with years ago (!).

You can download an image here to use in VICE:

http://www.vanderpoel.demon.nl/commodore/

Regards
Leif
--
Call Negative Format BBS - Hosted on a real C64!
Telnet to c64bbs.no-ip.com or 209.151.141.59 Port 23
http://home.ica.net/~leifb/bbs/
Larry Anderson
2004-07-28 23:59:42 UTC
Permalink
Earlier FastLoads took up too many blocks of the Buffer RAM on the 1541 and
would mess up Relative Files if you were working with them (discovered that
first hand). I believe later versions had the problem fixed (don't know
how to tell the difference.)

There are some articles in Transactor about such invisible or freezer
cartridges, goes into the basics, but it's not really my point of interest.

Also the 1581 test demo disk includes a 1581 fastloader, and the book Inside
Commodore DOS goes into speeding up drive communication IIRC.

Larry
Post by Ldnayman
How did the Epyx fastload cartridge work, and were there any documented
problems caused by its use? I used one for years and years without
problems and it was like a godsend!
--
01000011 01001100 01000001 01010011 01010011 01001001 01000011
Larry Anderson - Sysop of Silicon Realms BBS (209) 754-1363 300-14.4k
Set your 8-bit rigs to sail for http://www.portcommodore.com/
01010001 01010101 01000001 01001100 01001001 01010100 01011001
Mika Leinonen
2004-07-29 09:13:43 UTC
Permalink
Post by Ldnayman
How did the Epyx fastload cartridge work, and were there any documented
problems caused by its use? I used one for years and years without problems and
it was like a godsend!
My Fastload overwrote one byte in the $c000-$cfff area when (a selfbuilt)
reset button was pressed. That could destroy some routines placed there.
Disk block reader routine(?) sometimes returned 256 bytes of $00
instead of actually reading the disk block. I saw this happen with
the block editor, and also the disk copier made corrupted copies
because of this. (The copier loaded fast but saved at normal slow speed).
Joe Forster/STA
2004-07-29 14:26:56 UTC
Permalink
Hi guys,

The Star Commander was my third-year diploma work at the university. :-)
Here's a translated extract from the originally Hungarian documentation:

---
The Commander's high speed transfer system is based on "Star Turbo", a
fast loader written for the Commodore 64, which I engineered in about
two years, after having studied several already existing fast loaders.

A fast loader can bypass several bottlenecks so that data is transferred
from the disk to the computer memory or vice versa as fast as possible.

1. Speed up head movement: the disk controller moves the head towards
the desired track only by a halftrack per interrupt. Setting the startup
value of the disk controller interrupt timer to a lower value makes the
execution of the interrupt occur more often, thus the head arrives at
the desired track within a shorter period of time.

2. Custom sector read/write routine: [...] because of its general purpose,
the disk controller system executes several redundant checks. On the
other hand, the fast loader knows exactly what it wants to do, therefore,
it can read and write sectors more purposefully, starting with skipping
the verification after having written a sector. Furthermore, while it
reads or writes the same track, it does not leave the interrupt. Doing
so would cause a waste of time until the routine is executed again in
the next interrupt. [Note: Actual sector read and write is done inside
the disk controller interrupt. The original 1541 DOS also does so.]

3. Speeding up data transfer: the most important part of the fast loader;
with proper programming, a 6-8 times higher speed can be achieved. The
high speed transfer is based on the two facts that 1) significantly less
synchronization than the original is still sufficient for reliable data
transfer and 2) with proper synchronization, instead of a bit via the
DATA line, two bits can be transferred at a time via the DATA and CLK
lines.

4. Reading sectors without interleave: during the time of decoding the
sector and transferring it to the computer, the disk continues to
revolve. When the transfer ends, not the physically next sector arrives
under the head but cca. the eighth-tenth next sector. If a file was
stored continuously on the disk (the next sector of the file was the
sector with a sector number higher by one) then there would be a waste
of time because of having to wait for the next sector of the file to
arrive under the head. On PC floppy disks, this is solved by the
physical sectors being laid out in a non-continuous order: the first
physical sector is followed by e.g. the fourth, then the seventh; this
is a hard interleave. VC1541 disks, however, use a soft interleave, where
the subsequent logical sectors of the file do not follow each other on
subsequent physical sectors of the disk; e.g. the first logical sector
of the file is on the zeroth physical sector of the disk, the second on
the tenth, the third on the twentieth.

If the fast loader speeds up the data transfer, it is possible, that
the transfer ends then the fifth sector, following the sector having
been transferred, arrives under the head and there's again a waste of
time until the next logical sector [the eighth-tenth physical sector
following] arrives. To circumvent this, there are two methods: either
the fast loader transfers data from the complete track, sends it to the
computer and lets the computer collect the sectors belonging to the
file; or the fast loader itself identifies which sectors on the current
track belong to the file. The latter is accomplished by reading in the
first two bytes of each sector (the link bytes for the sector chaining),
transferring only the sectors belonging to the file, independently of
their logical order, rather by the the order they arrive under the head,
and letting the computer put them back in order. The first method is to
be used when presumably files are not very fragmented on the disk; the
second method is generally useful, as it is not a problem if only one
sector per track belongs to the file: reading into sectors [to get the
link bytes] costs only a single revolution of the disk. Both methods
assume the existence of a track-sized buffer in the computer.

5. Custom GCR-encoding and -decoding program: there are solutions that
are faster than the one embedded into the DOS. Some fast loaders solve
this task themselves, however, this results in a significantly larger
loader.

6. Custom disk format: only for prepared [not all-purpose blank] disks,
e.g. games that already include a fast loader. The reason for the speed
increase is that data is not encoded with the GCR algorithm, when
written onto the disk, but some other method whose decoding costs a
significantly less amount of time. Of course, such disks can be copied
only be special disk copiers, ones that don't attempt to GCR-decode data
read from the source disk, rather copy data unchanged to the destination
disk.

Some Commodore 64 extension cards include fast loaders that speed up
loading to 25 times the original speed, using all of the methods above.
This is very significant as, at such a speed, the complete 64 kbytes of
memory in the Commodore 64 can be filled with data within 8 seconds. Of
course, this requires very special programs that rely on microsecond
timing; this is, unfortunately, impossible when connecting the drive to
a PC.
---

Latter parts talk about Star Turbo and The Star Commander so they're not
as general as that above. Bye,

Joe
--
KOVÁCS Balázs alias Joe Forster/STA ***@c64.org; http://sta.c64.org
Orsolya u. 5. IV/12., 1204 Budapest, Hungary; +36-1-285-3881, 6-10PM CET
(SpamAssassin protection! No HTML E-mails! No uncompressed attachments!)
Jerry Kurtz
2004-07-29 22:18:40 UTC
Permalink
Post by Ldnayman
How did the Epyx fastload cartridge work, and were there any documented
problems caused by its use? I used one for years and years without problems and
it was like a godsend!
I used to swear by Epyx Fastload -- until quite recently. I now use
Cinemaware's Warp Speed cartridge.

It seems to be more compatible with heavily protected games (such as
RapidLok protection).

It supports quite a bit of the keyboard shortcuts that Fast Load uses.

It also has a #drivenum that easily switches the drive it works on.

There are also some additional built in features -- but, unless I'm
overlooking it, I didn't see a disable feature.

Jerry
R.Cade
2004-07-31 01:28:18 UTC
Permalink
Warp-speed works with other drives, such as the 1581, which is a big
advantage. Well, was it Warp or Mach 5, I forget!

I didn't like that it changed the color scheme and text, though.
Fastload was more transparent.
Post by Jerry Kurtz
Post by Ldnayman
How did the Epyx fastload cartridge work, and were there any documented
problems caused by its use? I used one for years and years without problems and
it was like a godsend!
I used to swear by Epyx Fastload -- until quite recently. I now use
Cinemaware's Warp Speed cartridge.
It seems to be more compatible with heavily protected games (such as
RapidLok protection).
It supports quite a bit of the keyboard shortcuts that Fast Load uses.
It also has a #drivenum that easily switches the drive it works on.
There are also some additional built in features -- but, unless I'm
overlooking it, I didn't see a disable feature.
Jerry
Loading...