
                        File Split by Joe Forster/STA

  This program was designed for splitting big files across  floppy  disks  and
for re-building the chunks into the original file. Its main advantage over ARJ
is speed. However, it will not add CRC checksums to the chunks.



  1. Usage

  The parameter syntax is the following:

  FS <command> <chunkfile> [<bigfile>] [<chunksize>] [-|/<options>]

  <command>:
  - A: split a big file into smaller chunks
  - X: build the chunks back to the original file

  <chunkfile>:
  Type the path and the base name of the chunk file here. You may also add the
extension (000-999); in this case splitting or  building  will  start  at  the
specified chunk. If the extension is not given it is assumed to  be  000  (0th
chunk). You can use wildcards, as well.

  <bigfile>:
  Type the path, the name  and  the  extension  of  the  big  file  here  when
splitting files. You don't have to fill in this parameter during building;  if
you do, you can use wildcards. However, you can't use wildcards when splitting
a file since you can't split multiple files - only one at a time.

  <chunksize>:
  You can optionally give this parameter when splitting files. If  you  don't,
all free space on the destination disk will be filled. Values allowed are  the
following:
  - A or AUTO: fill all free space (just as if you hadn't typed anything here)
  - xxxx     : create xxxx byte long chunk files
  - xxxxK    : create xxxx kilobyte long chunk files
  - xxxxM    : create xxxx megabyte long chunk files
  - 1.2[M]   : create chunk files that fill up a 1.2M disk
  - 1.44[M]  : create chunk files that fill up a 1.44M disk

  <options>:
  You can begin the options with a '/' or a '-'. You may type many options  in
a single parameter (e.g.  '-EV')  or  you  may  enter  them  separately  (e.g.
'-E -V'). Supported options are the following:
  - A   : [during building] if the big file already exists it must be appended
  - D   : files already processed should be deleted (after a confirmation)
  - E   : beep if any error occurs
  - Lxxx: [during splitting] decrease the length of the first chunk by xxx
  - N   : [during building] ask the number of the last chunk
  - Nxx : [during building] the number of the last chunk is xx
  - Sxxx: [during splitting] split the big file from byte #xxx
  - V   : beep between chunks
  - X   : [during building] ask the extension of the big file
  - Y   : process all chunks in one go (without stopping between them)

  Options 'L', 'N' and 'S' must be at the end  of  a  parameter  if  they  are
followed by a number. Enter the number (hexadecimal numbers  starting  with  a
'$' are also allowed) right after the option, with no separator between them.



  2. Hints

  Chunk files do not contain unnecessary information so that, after  appending
them in the order specified by their extension, you will get the original file
back - you don't need this program for that. The extension and the size of the
big file is stored in the 0th chunk (with the  extension  000).  In  case  you
entered nothing or 000 as an extension for the chunk files  during  splitting,
this file will automatically be created and the size of the first  chunk  file
will be 512 (or what you've specified with the 'L' option) bytes less than the
specified chunk size so that these two files  can  be  copied  onto  the  same
floppy disk. Similarly, enter nothing or 000 as  an  extension  to  start  the
building process with this file.
  However, if the 0th chunk is not present you must specify the number of  the
last chunk with the 'N' option or stop the building process manually when  the
last chunk has been successfully processed.

  During both splitting and building, press 'C' at  the  "Process chunk ... ?"
prompt to enter DOS shell. E.g. you can prepare the next chunk file this  way.
Similarly, you can press 'P' to change the path of the chunk files (you cannot
change their name) - you can split files to floppy disks in different drives.
  You can stop the splitting or building process by  pressing  Escape  at  any
time. Compared to pressing Ctrl-Break, this way the last chunk will be deleted
or removed from the end of the big file.

  As a simple convenience, you can always  press  Enter  instead  of  'Y'  and
Escape instead of 'N' at the prompts.

  This program does not handle physical disk errors. Don't  use  it  with  old
floppy disks that may contain unallocated  bad  sectors.  The  author  is  not
liable for any damage or data loss caused by this program.



  3. Error messages and questions

  - Invalid command
    The command is unknown.
  - Invalid parameter: -XXX
    One of the switches specified in the parameter is invalid.
  - Parameters missing
    You did not give all necessary parameters.
  - Invalid chunk size
    The chunk size is not a number or it is too high.
  - Invalid chunk number
    The chunk number is not a number.
  - Enter number of last chunk  :
    You can enter the number of the last chunk here (see option 'N').  If  you
    don't leave it blank, the building process will stop after  the  chunk  of
    the specified number.
  - Enter extension of big file :
    You can give the extension of the big file here  (see  option  'X').  When
    left blank, the big file is created without an extension in its name.
  - Process chunk xxx (Yes/No/All yes) ?
    The previous chunk has been processed successfully. Press 'Y'  to  process
    the next one; press 'A' to process all chunks without intervention;  press
    'N' to exit the program. You can press 'C' to enter DOS shell and  'P'  to
    change the path of the chunk files (see HINTS).
  - Disk full...
    The destination disk is full.
  - Drive not ready...
    There is no disk in the destination drive or you forgot to close its door.
  - Insufficient free space - xxxxxx bytes. Try again (Yes/No/use All space) ?
    The free space on the destination drive is not enough for a chunk  of  the
    specified size. Press 'Y' to retry; press 'A' to fill up  all  free  space
    (with a smaller chunk, of course).
  - FILENAME.EXT cannot be created...
    The file could not be created for some reason.
  - FILENAME.EXT not found...
    The specified file does not exist.
  - FILENAME.EXT already exists. Overwrite (Yes/No/Append) ?
    The big file already exists. Press 'Y'  to  overwrite  it;  press  'A'  to
    append the chunks to the end of the big file.
  - FILENAME.EXT already exists. Overwrite (Yes/No) ?
    The chunk file already exists. Press 'Y' to overwrite it.
  - Delete FILENAME.EXT (Yes/No) ?
    The big file has been processed successfully. Press 'Y' to delete it.
  - Delete FILENAME.EXT (Yes/No/Always/nEver) ?
    The chunk file has been processed successfully. Press 'Y'  to  delete  it;
    press 'A' to delete all chunks without confirmation; press  'E'  to  leave
    all chunks unharmed.
  - FILENAME.EXT cannot be appended...
    The file could not appended for some reason.



  4. Copyright and legal issues

  The source of this program is public domain and provided here "as  is"  -  I
don't feel like commenting it but if you have problems then feel free  to  ask
me. If you derive your own program from the source or put a part of the source
into your own program, please, give me a credit and send a copy to me.



  5. The author

  If you're interested in some similarly useful utilities you can  contact  me
at sta@c64.org or visit my homepage at http://sta.c64.org.

  Joe Forster/STA
  19th September, 2000
