Page 1 of 1

Do floppy disks become fragmented on Commodore drives?

Posted: Mon Aug 03, 2009 9:04 am
by rwv01
If so, can they be defragmented?

[edit]Ok, according to the 1541 manual, this would require the CBM DOS "Validate" command. (ah, yes!) It says not to use with random files though.[/edit]

I'm trying to reduce loading times for my disks.
Eventially I'll invest in some new hardware which does this, but for now I'd like to try optimizing my disks. I'm using a software fast loader and have removed unnecessary files.

Is there a way to see the order in wich all files on a disk are being loaded?

If so, I could put them in the same order on the disk and perhaps reduce loading time a litte more. I re-ordered some files on a disk containing Novaterm 9.6 (which shows part of the loading sequence) and it apparently shaved off 7 seconds. I've got the loading time down from 3.42 minutes to 1.88 minutes. Still have to see if I broke anything.

Any other tricks? Is there a way to auto-load and run programs?

Posted: Mon Aug 03, 2009 10:53 am
by Diddl
No, "validate" does no defragmentation, only free/allocate sectors.


Fragmentation is normally no problem for a 1541. But it would be possible:

+ many, many very small files

+ delete some of it, on or two per track

+ save a large file, it will be fragmented

Posted: Mon Aug 03, 2009 12:23 pm
by rwv01
Diddl wrote:No, "validate" does no defragmentation, only free/allocate sectors.
I must have miss-interpreted the manual then. Thanks.
In any case, It didn't have the effect I was looking for.

Are there any other methods for reducing loading time?

Posted: Mon Aug 03, 2009 12:46 pm
by Diddl
rwv01 wrote:Are there any other methods for reducing loading time?
Jiffy-DOS, Easyload ...

Posted: Mon Aug 03, 2009 12:49 pm
by Mike
1. The DOS scans the directory for the file name you specified. This search will take longer, the farther down the file is on the list.

2. The directory is (roughly) located in the middle of disc space. When a file is stored, DOS searches for the next available sector "near" to the directory, and then stores the file only either stepping down, or up tracks. When the lowest, or topmost tracks are filled, DOS moves the head over to the other half of the disc.

Unless you made a scratch-and-save fest on a disc, this means that files further up the directory list are located near the directory track, and thus have a smaller time for the first access after the file entry has been found.

...

If you are sure there is no direct access data on the disc you can proceed as follows:

* Take a program to organise directories, and move the files to the top that should load the fastest.

* Use a file copy program to copy over the files to an empty disk, in the order they appear in the source directory.
Diddl wrote:Jiffy-DOS, Easyload ...
And Hypra-System. :mrgreen:

Greetings,

Michael

Posted: Mon Aug 03, 2009 5:53 pm
by Lozza
technically and sensibly fab though all this is - does he just want to know how to get stuff to load *much* faster ?

so aside from jiffy and the like - can you put a diskfastload thing on to the boot of each disk with simple a b c d menu and have a single file prog load well quick ?

is that the question ?

Posted: Mon Aug 03, 2009 7:05 pm
by rwv01
It's a little technical, but hey it's computers! :)

It answers my question about the how the file order and speed of loading.
Thanks!
I am using a software fast loader as well.

Now, how do you know which files should load first?
Is there a way to monitor what is being loaded if the file name doesn't appear on screen?

Posted: Tue Aug 04, 2009 12:05 am
by Mike
rwv01 wrote:Now, how do you know which files should load first?

Is there a way to monitor what is being loaded if the file name doesn't appear on screen?
Yes. 8)

One puts a wedge into the LOAD vector at ($0330). That wedge ideally resides, and stores the file name in an area not written to by the supervised program. As you most probably use a +8K or better expansion, an additional +3K expansion could provide that space between $0400, and $0FFF.

But then we have a programming question. ;)

Posted: Tue Aug 04, 2009 3:24 am
by nbla000
Lozza wrote:so aside from jiffy and the like - can you put a diskfastload thing on to the boot of each disk with simple a b c d menu and have a single file prog load well quick ?
EasyLoad+ (File version)

Put it as first file of the disk, load, Run, select the block where you want to put it and hit F3 for a directory.

It Requires any memory expansion 3K/ 8K / 16k or any other, better if the Vic is full expanded, to load a program for unexpanded vic you just need to set the proper vic configuration "on the fly" example:

If you have a 16k expansion select block 4 then to load a program for unexpanded Vic hit CTRL+F1 to unexpand the vic "on the fly" then hit "F3" for the Directory, if you want to load a program for Vic+8K, hit CTRL+F5 to set "on the fly" Vic+8K and load the program.

The best choice is a Vic Full expanded or Mega-Cart of course.

And thanks to new Diddl routines, i'm writing a Mega-Cart patch to add JiffyDos support to the EasyLoad version included on Mega-Cart so you may also quickly load from any drive with JiffyDos roms, uIEC/SD2IEC included.

Posted: Tue Aug 04, 2009 9:29 am
by rwv01
Cool! When I have more time, I'll look further into your suggestions.
Thanks. I've got the memory requirements covered.

Are there equivalent methods for the C64?

Posted: Thu Aug 06, 2009 4:36 am
by ruud
Defragmentation can be done in a very simple way by copying the disk file by file to a newly formatted disk. Can be done by using Commodore's own Uni-copy (don't know the exact name) program found on various demo disks.
Using a speed loader will speed up the process of course.