Diskfill v2.0b5 (Dated 02-06-96 14:00)
Written by Csaba Halasz 

This program is FREEWARE. You may use it at your own risk. 

The file df.exe should be 18446 bytes long.

Purpose: This utility fills your disks by finding the best combination of the 
specified source files.

Important: Diskfill always uses the ROOT DIRECTORY of the destination drive.

System requirements: 386+ CPU 

Command line syntax:

{c|h|?} {source} {destination_drive:} {//} {-dhlmroqsw} {-wipe} {-@|l:filename}

Commands: 
	c   - copy files (default if any parameters present)
	h,? - brief help (default if no parameters present)

source - source files. Standard DOS wildcards may be used. Only the path
	   of the first one is used.

destination_drive: - Guess... Don't forget the colon, though.

Switches (currently CASE SENSITIVE!):

	d - delete copied files
	h - copy hidden files as well
	l - never create log file 
	m - mark copied files as hidden
	o - overwrite existing files
	r - restart mode. Don't wipe the first disk. (-w and -wipe)
	s - skip existing files
	q - quiet mode. Don't display filename, only size and number.
	w - wipe destination. The *FILES* in the *ROOT* directory of the
	    destination disks will be erased.
     wipe - wipe destination. All files and directories on the destination
            disks will be erased. 
       @: - use list file. 
       l: - path for log file.

You may use / instead of - except in // and switches may be followed by a 
+ or - . Everything except the command character can appear anywhere on the
command line. Usually only the last one will be acknowledged.

Single-letter switches may be grouped together, ie. -d-h-q is valid and 
equivalent to -d- -h- -q

The purpose of // is to tell DF to ignore everything upto that point, 
except for the command character. (For details see the part on the 
configuration file.)

Details
-------
	
To specify source files an optional list file can be used. The list file is
a simple text file, with one filename per line. Using this feature Diskfill
can be used as a postprocessor to other programs. For example you may use
one of the famous commanders (e.g. the Volkov Commander) to select the files
you want to extract to disks and then invoke Diskfill from a menu.

About the source path. The path of the first source file will be used for
all the others. Beware that any list files are processed after the command
line, regardless of the position of the @: directive.

Diskfill loads the boot sector and the fat of the destination disks to
gather information. Diskfill does *not* format the destination (unlike other
utilities), nor does it check for any physical errors. It trusts the fat as
far as marking bad sectors go. 

When an error occurs or the process is interrupted by the user Diskfill
cleans up the disk, meaning it writes the fat and the root directory back.
(NOT the original, the system areas will be updated with respect to the 
changes made upto the point of interrupt or error) 
This could take a while so be patient. If the -l switch isn't specified a log
file is created, in the directory pointed to by the l: parameter. If no log
file path is provided on the command line then Diskfill tries to read the
environment variable TEMP. If unsuccessful the directory from which Diskfill
was started will be used. After the cause of the error has been eliminated
Diskfill can be restarted and will continue where it aborted, provided you
specify a command line like:

	-@:logfile -r destination-drive:

You have to reenter any further switches you wish to use, as Diskfill won't
remember any of them.  (ie -q -m etc.) Don't specify source files on the 
command line (unless you know what you are doing) because the path will
override the path stored in the log file.

In some cases you might wish to use -r, although you aren't restarting
Diskfill. If you have a disk containing valuable data (for example the last
disk of a previous Diskfill) but want to wipe all further disks your command
line could look like this:

	c:\graphics\pictures\*.jpg *.gif a: -wipe -r 

Diskfill uses Dos interrupts to write to the destination, so it should work 
with any disk format that Dos recognizes. (Including those that Dos recognizes 
through TSRs like FDREAD.)

*IMPORTANT* The system areas are updated AFTER the files are copied. If they
get out of sync with the data areas an appropriate disk utility should be used
to correct the situation. Upon errors or interruption DF tries to write the 
system areas so that they correspond to the true contents of the disk. 



Configuration file
------------------

There may be a configuration file named df.cfg in the same directory as the
df.exe. Currently two options can be specified: a default command line and
the custom switches. The default command line is used when no parameters are
specified on the command line. The custom switches are *ALWAYS* (except for the
default command line) inserted into the command line *AFTER* the command 
character. You may use // to get rid of the custom switches.
Complicated, isn't it? Well, here is an example:
Assume that the contents of df.cfg are:

default=*.* a:
switches= -d -q

	Command line        	Equivalent command line (without df.cfg)
	
	<empty>		    	*.* a:
	c *.jpg b:		c -dq *.jpg b:
	*.exe -q- a:		-d *.exe a:
	// *.exe a:		*.exe a:


Please report any bugs or comments via

	E-MAIL: qgehali@gold.uni-miskolc.hu

	SNAIL:
		Halasz Csaba
		2475 Kapolnasnyek
		Fo u. 49/5
		Hungary