<bieling@terra.es> wrote in message
1163357482.358273.285660@b28g2000cwb.googlegroups.com">news:1163357482.358273.285660@b28g2000cwb.googlegroups.com...
Alex Freed wrote:
-cut-
Is that, more or less, the way it is ?
I didn't check the details, but generaly sounds right.
If that was correct, then:
You could use the "borrowed" memory for caching the clusters' relevant
data as it is found by the above process. I mean, start with an empty
(filled with zeroes) table, and go filling it up as the need for a
search (by the above, long process) arises. I mean, always check the
table first, then if you find a 0 in the table you need to do the
search, but starting from the last position filled in the table.
There's no need to build a (big) complete translation table: it will
also speed things up quite a lot if you just keep the relevant data of
certain offsets within the file : for example, at offsets 0, 1/4, 2/4,
3/4 of the file size, so that you can start the search from the closer
known offset, instead of from the begginning of the file. This way more
than one table may easily fit in just one "borrowed" SDBlock.
I guess this is possible, but requires much more software than I want to
write myself. Maybe you want to do it?
Also keep in mind that when a ProDOS image is put on a blank SD card,
it will NOT be fragmented at all. And no matter how often you re-write
the files inside the ProDOS image, the image itself stays fixed on the card.