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

RCC 10-Dec-87

Squeeze is a utility for compressing executable ARM images.  Given
an executable ADFS image file, it tries to compress it to produce
a smaller executable file (typically 55% of the original size) which
will decompress itself on startup whenever it is run.

The syntax is:

  squeeze [flags] <file-to-squeeze> [<squeezed-file>]

If the destination filename is omitted it is assumed to be the same
as the source filename, and the old file will be overwritten if the
squeeze succeeds.

The flags recognised are:

  -f, -Force       keep trying even if it doesn't look very squeezable
  -h, -Help        output a brief description
  -v, -Verbose     output various messages as squeezing progresses

If the image cannot be squeezed significantly (to < 90% of original size),
it will be copied to the destination unchanged.  Thus it is rarely
harmful to try to squeeze something.

Further Details
===============

The unsqueezing process will scribble on roughly the first 16K above
the end of the decoded image, so squeezed programs will lose any
warm-start capability they might have unless they take this into account.

Unsqueezed AIF (Acorn Image Format) images are recognised by squeeze
version 0.21 and later, and the first 32 words (i.e. the AIF header)
are left unsqueezed.

The load address of the squeezed file will be the same as that of the
unsqueezed file.  The Arthur absolute filetype is recognised.

Squeezed files are padded such that the length in hex ends with an F.
This makes squeezed things easy to identify in a directory listing.
