   _           ___                    _
  / \  ___ ___/ __| ___ _  _ ___  ___| |_
 / = \| _ \ _ \__ \/ _ | || / _ |(_-<| ' \
/_/ \_|  _/  _/___/\_  |\_,_\_,_|/__/|_||_| 1.30, 26 November 2002
      |_| |_|        |_|

Written by Darren Salt
LZW code based on Michael Rozdoba's Squash-compatible code
Squeeze and UnSqueeze  Acorn Computers Ltd
Squeeze patch written by Nick Clark


How to use
==========

  AppSquash will squash application image files, modules, and BASIC programs,
  producing files that, when run, will unsquash themselves and then run as if
  they hadn't been squashed. It can also handle modules squeezed using
  modsqz.


  All you need to do is to drag the file(s) you want to compress to the
  AppSquash icon, and for each file in turn, a save box will appear. You may
  overwrite the original (but be careful).

  The available options are:

           Squash  Squeeze
  Absolute    y       y
  Module              y
  BASIC       y       y

  The 'Force' option forces the application (if Squeeze is selected) or
  module to be squeezed anyway, even if the resulting file would be larger.

  Once you have decided where to save the file (in the normal way - it's just
  a standard save box), AppSquash will compress the file, and, if successful,
  will save it for you. If it fails for any reason, you will be told why and
  no file will be created. Note that if the file is not compressible, an
  exact copy will be made.

  AppSquash will also unsquash and unsqueeze files. Just follow the same
  procedure; the file will be saved according to its original filetype.
  However, squeezed modules (ie. those created by squeeze, rather than modsqz
  or AppSquash) will be recognised, as will BASIC programs squeezed using
  AppSquash.

  The datestamp is always preserved when using the LZW method; Squeeze, for
  some reason, doesn't preserve it - AppSquash will ensure that the original
  datestamp is written to the squeezed (or unsqueezed) file.

  If a file is recognised as squeezed but unpatched, you have the option of
  unsqueezing it or patching it; select the required option and save as
  usual.

  WARNING: files squashed by older (<1.26) versions of AppSquash may be
  rejected or be incorrectly unsquashed. Unfortunately, I can't find an older
  version to fix this...


The iconbar menu
----------------

* Patch sqz

  This option determines whether the 'data abort' patch is applied to
  squeezed programs. If applied, then when the program is run and there isn't
  enough memory for it to unsqueeze itself, it'll complain "Not enough
  memory" instead of causing a data abort.

  This patch will work whether the program was squeezed using squeeze v4 or
  v5, and is not applied if squeeze 5.03 or later is used.

* Use xpand

  This option controls whether the xpand utility is used to unsqueeze
  programs. If disabled or xpand is not present, then the older method of
  using unsqueeze will be used.

  xpand may not recognise programs, which were squeezed using older versions
  of AppSquash, as squeezed. For this reason, this option defaults to 'off'.


Support programs
================

* squeeze

  Squeeze must be in either !AppSquash or somewhere on Run$Path; your library
  directory is a good place to put it. It forms part of the Acorn C v5
  toolkit, and is also supplied in Patch (in $.Utilities).

* unsqueeze

  UnSqueeze must be installed in AppSquash. It is supplied in Patch (in
  $.Utilities).

* modsqz, unmodsqz, xpand

  These are optional extras. If present, they must be somewhere on Run$Path;
  your library directory is a good place to put them. They form part of the
  Acorn C v5 toolkit.


SqzPatch
========

* sqzpatch <source> [-o <destination>]

  A small stand-alone command-line utility for patching squeezed files. It
  does not replace AppSquash's own patching code, since that is desktop only
  :-) (BASIC with appended data - be careful!)

  You may move it to your library directory if you wish.

  Note that if the file is already patched or does not need to be patched (as
  is the case with the 32bit-compliant squeeze), it will *not* be copied.


Contact
=======

ds@youmustbejoking.demon.co.uk
