============================== Zoom 5.3 ==============================
======================================================================
A  floppy disk tracking and archiving utility, written by Olaf `Olsen'
Barthel   of   MXM.    ©   Copyright   1990,1991   by   MXM,  Lh  data
compression/decompression  code  ©  Copyright  1990,1991  by Holger P.
Krekel & Olaf Barthel.  Shareware, all rights reserved.
   No  guarantee  of any kind is made that the program(s) described in
this  document  are  100% reliable.  You use this material on your own
risk.

======================= READ THIS OR MISS OUT ========================
======================================================================
On  startup  `Zoom'  will  examine  its  internal hunk structures:  if
anything is not in its correct place both programs will put up alerts.
To discover what was wrong enter `Zoom SELFTEST'.
   Enter  `CRC Zoom' to calculate the external checksum and compare it
with  the  sample  given  in  this document.  Any difference indicates
possible  virus  infection!   If  you  don't trust the sample checksum
listed in this document, send me a letter or electronic mail (adresses
listed below) and ask for the `factory checksum'.

   THIS AND THE FOLLOWING ZOOM! RELEASES MAY ONLY BE DISTRIBUTED IN
                 THE SELF-EXTRACTING ARCHIVE FORM!!!

============================== Contents ==============================
======================================================================
This  package consists of four files.  The CRC checksums were obtained
using  the  `CRC'  utility  (also included in this package).  Provided
that  all checksums match the following samples (and this document has
not been modified) no file is virus-infected.

                    Release Date: 11-Dec-91, 14:38

         Zoom           (CRC = $9FE50ECC, Size = 80108 Bytes)
         Zoom.info
         CRC            (CRC = $4F5177B9, Size =  4104 Bytes)

         Zoom.doc                        (Size = 30649 Bytes)

   The  `CRC'  utility  will  also  calculate  and print the so-called
`WRAP'  checksum.   For  all  programs in this distribution (including
`Zoom'  and  `CRC')  this  checksum  MUST  be  zero  (if  nonzero, the
approriate file has been modified).
   All  programs  in this distribution are PURE, I suggest setting the
`p' bit if not already done.

==== Why use `Zoom' instead of other disk compression utilities? =====
======================================================================
   - `Zoom' performs much faster and compresses better than any  other
     currently available disk archiving utility.

   - `Zoom'  recognizes  about  180  different  viruses   and   custom
     bootblocks.

   - `Zoom' has both an Intuition and a Shell interface.

   - `Zoom' can be customized for your own needs.

   - `Zoom' works with Kickstart 2.x!

   - `Zoom' will  also  work  on  Amiga  computers  equipped  with  an
     MC68020/30/40 microprocessor.  No need to buy an extra version!

========================= About this release =========================
======================================================================
I must admit that the previous `Zoom' releases would not work quite as
correctly   as   advertised.    Revisions   previous   to  v4.2  would
occasionally  produce  corrupt disks when decompressing archive files.
In  revision  4.2  the  byte run precompressor was removed, curing the
`corrupt'  disk  problem.   As  an  unpleasant side effect compression
performance and speed dropped.
   A  couple  of  weeks  ago I was encouraged to rewrite `Zoom' and to
replace  the  malfunctional  byte  run  precompressor with a different
precompressor.   In  the course of events `Zoom' and the corresponding
file  format  were greatly enhanced.  Among other features the program
now sports support for sector header labels and uses 32 bit checksums.
The  user  interface  was  rewritten  to support the Kickstart 2.x new
look.   The `ZoomCheck' program was removed from the distribution, its
functions have been integrated into `Zoom'.

   Due  to  changes  in  the output file format files created with the
current  `Zoom'  release  cannot be decompressed using previous `Zoom'
releases.   `Zoom'  v5.3 will still read and decompress old style disk
archive files without complaining.

============================== Purpose ===============================
======================================================================
Disk archiving utilities are becoming increasingly attractive.  Almost
all  other disk compression tools lack a friendly user interface, take
ages to finish their work or simply produce very long output files.
   `Zoom' uses highly-efficient data compression routines derived from
LhArc  (adaptive  Huffman  squeezing)  which  have been converted into
MC680x0  code  (we  call  it `Lh').  Data compression/decompression is
always  much  faster  than displayed by programs such as Warp, LhWarp,
LhArc and older versions of LZ (that is, before Jon Forbes tweaked the
compression algorithm).
   To  reduce  the chance of compressing a virus-infected disk, `Zoom'
will  examine  the  bootblock  and  display it if it is of nonstandard
type.   The  following  180  different  bootblock  viruses  and custom
bootblocks are recognized:

            16BitCrew                      Saddam Hussein
           2001 Virus                            SCA
        AEK (MicroMaster)                     ScarFace
           AIDS Virus                         Sendarian
          AlienNewBeat                        SuperBoy
           AmigaFreak                     Supply Team anti
             Ass 1.0                         Switch Off
       Australian Parasite                     Target
        Bamiga Sector One                      TelStar
         BlackFlash 2.0                      Termigator
          Blizzard 1.0                        TimeBomb
             BlowJob                     Tomates GenTechnic
           Butonic 1.1                      Traveller 1.0
          ByteVoyager 1                       Turk 1.3
          ByteVoyager 2                       UltraFox
          ByteBandit 1                         Vermin
          ByteBandit 2                    VirusHunter anti
          ByteBandit 3                     VirusSlayer 1.0
       ByteWarrior (DASA)                     VKill 1.0
      ByteWarrior FastLoad                     WarHawk
         CCCP Link+Boot                  ACID Terminator 1.0
          ClaasAbraham                  ACID Terminator v3.0
              CList                      Alcatraz Megademo 3
        Coders Nightmare                 Antitrax 2010 Demo
           DiskDoktors               Atomic Soft Virus Detector
               DAG                             Avirex
           Destructor                   Betrayal Proboot v1.0
        Digital Emotions                    BootBug v0.1
          DiskGuard 1.0                 BootBlock Generation
     Disk Herpes (Phantasm)                   Bootgirl
             FAST 1                         BootIntro 1.2
             FAST 2                       BootIntro NextGen
            F.I.C.A.                         BootOut 5.5
             Forpib                           Boot-Tune
             Gadaffi                Budbrain & New Dimensions 35
             MAD II                         CCS Boot v2.0
            Graffiti                        CCS Boot v3.0
             Gremlin                           DevWare
             GXTeam                     Dietmar Noll ClearMem
            HCS 4220                          DOC 1989
              Hilly                      Dragons Megademo I
          Ice Breakers                         Dugger
            Incognito                   International Soccer
            Inger IQ                  Invisible Brain Boot-Copy
              JITR                         License to kill
            Joshua 1                  Mad Monks Super Bob-Intro
            Joshua 2                    Memory Controler 1.2
     Julie (Virus Predator)             Memory Allocator v1.3
              Kauki                          No FastMem
             Kefrens                   Nomad Utility Boot v1.0
          Lamer Ext. 1                    Northstar Checker
          Lamer Ext. 2                  Outlaw Checker v1.42
          Lamer Ext. 3                        PAL Boot
          Lamer Ext. 4                      Paradroid 90
          Lamer Ext. 5                  Phenomena Enigma demo
          Lamer Ext. 6                  Phenomena megademo 1
          LameStyle UK                     Pinball Wizard
               LSD                       Powerslaves Demo 1
             M&U 5.5                       PvL Virus Sound
             M&U 6.1                     Quartex drives off
           MegaMaster                    Razor 1911 Observe
              Mexx                       RSI Megademo Disk 1
          MicroSystems                   RSI Megademo Disk 2
          Morbid Angel                    Scoopex Bootintro
           NorthStar 1                 Scoopex Mental Hangover
          NorthStar 2/3                 Scoopex PALBoot v2.0
         NorthStar anti             Seek & Destroy Bootcheck v1.0
            Obelisk 1             Seek & Destroy Drive Control v1.0
         Obelisk Format                  Sinister Syndicate
              Opapa                 Slipstream Utility Boot v4.0
     Paradox 1 (Logic Bomb)         Slipstream Utility Boot v6.1
            Paradox 2                        Squash 4.3
            Paratax I                          SysNot
           Paratax II                     TAL Bootleg v2.1
        Pentagon Circle 1               The Sect Mega Concert
        Pentagon Circle 2                  TLC Demosample
        Pentagon Circle 3               UDC NoVirus Boot v1.0
       PowerBomb (BB 2.0)               UDC Utility Boot v1.0
          PvL 3.0 anti                  Ultimate Boot Writer
          PvL 4.0 anti                 Venom Bootloader v1.00a
          PvL 5.0 anti                   Virus Destructor 1
          PvL 5.1 anti                   Virus Destructor 2
          PvL 5.3 anti              Viruskiller Professional v2.0
          PvL 5.4 anti                   Vision Megademo IV
          PvL 6.1 anti                 Vortex 42 Megaboot v1.3
          PvL 6.4 anti                   XCopy Professional
          PvL 6.5 anti                  ZeroVirus AutoAddRAM
              Rene                     ZeroVirus BigScreenTest
             Revenge                      ZeroVirus Message
        Revenge BootLoad                ZeroVirus NoFastMem

   `Zoom'  will put up an alert if it finds one of these bootblocks on
a  disk to be compressed and will ask you whether you wish to have the
suspicious  bootblock  data replaced in the compressed disk archive or
not.   If  you  choose  to  replace  it,  `Zoom'  will  use a standard
Kickstart  2.x  bootblock  in  place of the original data.  While this
bootblock  is  different from the Kickstart 1.3 bootblock, it is still
compatible with older Kickstart revisions.

============================ Installation ============================
======================================================================
Copy `arp.library' to your LIBS:  directory, `Zoom' requires it.  ENV:
(default AmigaDOS environment storage directory) should be assigned to
somewhere, but needn't.

======================== `Zoom' Shell usage ==========================
======================================================================
The following command line template is displayed if you type `Zoom ?':

 From,To,Check/K,T=Text/K,S=Start/K,E=End/K,C=Crypt/K,D=ClearData/S,
   B=ClearBlocks/S,V=Verify/S,L=SecLabels/S,Q=Quiet/S,N=NoPrompt/S,
                              Selftest/S

From .......... Name  of  the file to be read and written back to disk
                or the name of the filing device to read the data from
                to be compressed:

                Examples: `Zoom from df0: to ram:doodle'
                          `Zoom from ram:doodle to df0:'

                   If possible, `Zoom' will try to determine if source
                and  destination overlap.  You will be notified if you
                are  about  to  decompress  a  file  residing  on  the
                destination  disk  or  to  create a file on the source
                disk to be compressed.

To ............ Name  of  the device to store the decompressed data on
                or  the  name  of the file to send the compressed data
                to.

Check ......... A  file created by `Zoom'  will be read and tested. If
                a  checksum  is  not  in  its  correct  place an error
                message  will be displayed.  Unless the `Quiet' switch
                is  used  a text file attached to the `Zoom' data file
                in question will be displayed as well.

                Example: `Zoom check ram:doodle'

Text .......... `Zoom' can attach a text file to an archive file which
                will be displayed while/before data decompression.  It
                will  be  read  and  compressed before the actual disk
                compression takes place.

Start ......... The  track  number  to  start  compressing  at.   This
                argument  is optional and does not need to be entered.
                By default the starting track is zero (= 0).

                Example: `Zoom df0: to ram:dodo start 17 end 22'

End ........... The  number  of the last track to compress.  Note that
                you  cannot  ask  for  a  starting  track and omit the
                ending   track   (and  the  other  way  round).   Both
                arguments must be used.

Crypt ......... Files  created  by  `Zoom'  may  be  encrypted  with a
                special  password.   The  same  password (Note:  it is
                case  sensitive)  will  be  required to decompress the
                output file.

                Example: `Zoom df0: to ram:doodle crypt Secret'

Cleardata ..... This  switch  may  reduce  the size of the output file
                produced  by  compression.   Under  the  `old'  filing
                system a data block contains the number of bytes which
                are  actually  occupied by data.  The rest of the data
                block usually contains random data.  If this switch is
                active  the  unused  portion of the data block will be
                set  to  zero.  Note:  due to the different data block
                format  this  switch  has  no effect if used on a disk
                formatted by the fast filing system.

Clearblocks ... Not  all  blocks of a disk may be actually occupied by
                data.   `Zoom' uses the disk Bitmap to determine which
                blocks to read and to compress.  By default the Bitmap
                is  ignored.  This  switch  will cause `Zoom'  to skip
                unused  blocks.   Note:  this feature will be disabled
                if  the  disk to be compressed is not a valid AmigaDOS
                disk with a properly initialized root/boot block and a
                valid  Bitmap  flag.  Also important:  this switch has
                no  effect  if  a  set  of  tracks is to be compressed
                instead of the default 0..79.

Verify ........ Each  write  access  to  disk will be verified if this
                switch  is  active.  The actual data verification will
                be  handled  by the blitter, so it won't slow down the
                decompression process too much.

SecLabels ..... `Zoom'   will   automatically  compress  sector  label
                information along with each track it reads if the disk
                to  be  compressed  is  not a standard AmigaDOS format
                disk  or  the  `Clear  Unused  Blocks' switch has been
                disabled.
                   In  order  to  restore the sector label information
                during  compression,  the  destination  disk has to be
                formatted.  `Zoom' will format the disk for you if the
                `Format Sector Labels' switch is active.  To save much
                time,  you  could  turn this switch off and format the
                disk to write to before submitting it to `Zoom'.

Quiet ......... If  this  switch is in effect, `Zoom' will not display
                text    files    attached   to   data   files   during
                decompression.

NoPrompt ...... By  default  `Zoom' will prompt the user to insert the
                source/destination     disk    to    be    used    for
                compression/decompression.   If  the `NoPrompt' switch
                is  in  effect,  `Zoom'  will not wait for the user to
                press     return,    compression/decompression    will
                immediately.

Selftest ...... This  shell  option was added to help you to verify if
                your  `Zoom'  program  has  been  infected by a virus.
                `Zoom'   will examine  its internal hunk structure and
                complain  if  a  hunk  is  not in its standard size or
                place.   These  are conditions which can, but need not
                indicate  link  virus infection.  While this technique
                does  not  entirely  prevent  the  creation  of trojan
                horse-versions of `Zoom' or that an extremely `clever'
                virus infects `Zoom',it will probably catch all `dumb'
                link  viruses  which  put their virus code in front of
                the first hunk or behind the last hunk of a program.

====================== `Zoom' Workbench usage ========================
======================================================================
If  called  from  Workbench  (or  from  Shell without any arguments) a
window  will  pop  up under the mouse pointer containing the following
gadgets:

Select File ........... Select   the   name   of   the   file   to  be
                        compressed/decompressed.   It will be put into
                        the string gadget to the right of this button.

Select Drive .......... Select the the drive to read/write the data to
                        be   compressed/decompressed   from/to.   This
                        button  will  cycle through all filing systems
                        which   match   the  typical  size  and  track
                        definitions  of  the  builtin 3.5" disk drive.
                        The name of the filing system will be put into
                        the string gadget to the right of this button.

Enter Password ........ Will  put up a requester in which the password
                        to  be used for data compression/decompression
                        can be entered.
                           The  program  will  refer  to this password
                        when  decompressing  encrypted  files and will
                        prompt for a new password if the password does
                        not match the encryption key.
                           If enabled (e.g.  the `Encrypt Output File'
                        switch  is  active)  the program will use this
                        password for output file encryption.

Select Text File ...... Select  the  text  file to be prepended to all
                        output  files,  note:   in  order  to use this
                        feature,  the  `Include Text File' switch must
                        be active.

Start Compression ..... Click  this  button to start data compression,
                        click it again to stop the process.

Start Decompression ... Click  this button to start data decompression
                        click it again to stop the process.

Start File Check ...... Will  read  and  examine  the  current  `Zoom'
                        output  file  to  detect  file  defects.

Start File View ....... will  read  the current `Zoom' output file and
                        display the text file attached to it (if any).

From Track To Track ... The  starting  and  ending tracks to compress,
                        note  that  this  feature  has  to be selected
                        explicitely.

Clear Unused Data ..... Unused  data  in  standard  file system blocks
                        will  be  set  to  zero  if  this  feature  is
                        enabled.

Clear Unused Blocks ... Unused  blocks  will be skipped if this switch
                        is  in effect.  Note:  cannot  be  mixed  with
                        `from track to track'.

Verify Write .......... Enables  write  verification  while data files
                        are  decompressed.   This switch has no effect
                        during data compression.

Include Text File ..... If enabled, `Zoom' will prepend a text file to
                        be  specified  with  the  `Select  Text  File'
                        button to each output file it produces.

Encrypt Output File ... To  have  the  output  files  `Zoom'  produces
                        encrypted  with a password turn this switch on
                        and  enter  an  access  key  using  the `Enter
                        Password' button.

Format Sector Labels .. `Zoom'   will  automatically  compress  sector
                        label  information  along  with  each track it
                        reads  if  the  disk to be compressed is not a
                        standard  AmigaDOS  format  disk or the `Clear
                        Unused Blocks' switch has been disabled.
                           In   order  to  restore  the  sector  label
                        information     during     compression,    the
                        destination  disk has to be formatted.  `Zoom'
                        will  format  the  disk for you if the `Format
                        Sector Labels' switch is active.  To save much
                        time,  you  could  turn  this  switch  off and
                        format  the disk to write to before submitting
                        it to `Zoom'.

   The  display  on the right hand side of the `Zoom'  window contains
the following elements:

Free Disk Space ....... The space left on the destination drive.

Available Memory ...... System memory currently available.

File Size ............. The size of the compressed data file.

Track Size ............ Size   of   the  last  compressed/decompressed
                        track(s).   Usually  two  values  will  appear
                        here:   the  first one denotes the size of the
                        buffer after pre-compression, the second value
                        indicates the final size after Lh-compression.

Compression Ratio ..... This  display denotes the amount of data saved
                        during  compression.  Note:  this value refers
                        to the entire output file.

Current Track ......... Current track counter.

Elapsed Time .......... Time   elapsed   during  data  compression  or
                        decompression.

Status ................ The action currently executed.

   If an output file does not fit on the destination disk, compression
wil  be  terminated.   The starting and ending tracks will be adjusted
accordingly  to  allow the user to continue to compress the disk where
the first compression run stopped.
   The  `name'  of  the  file  to  be  decompressed  may be a wildcard
expression.  `Zoom'  will try to locate and decompress all files which
match  the  pattern (note:  only the Intuition interface supports this
feature).
   Multiple  selection  is  supported as well:  to decompress a row of
`Zoom' output files, hold down the shift-key, click the icons of files
you  wish  to decompress,  then  double-click the `Zoom'  icon.  Note:
`Zoom'   will use  the  default  options  to decompress the files, the
online  options  can  only  be  changed  after  all  files  have  been
processed!

================ The `ZOOMOPTS' environment variable =================
======================================================================
The current settings displayed in the Intuition interface are saved in
a  default  environment  variable  which  is read again when `Zoom' is
called  again.  This variable is set both in Manx/ARP and in Workbench
1.3 format.  The following template is supported:

  File/K,Drive/K,Start/K,End/K,TextFile/K,ClearData/S,ClearBlocks/S,
        Verify/S,IncludeText/S,Encrypt/S,SecLabels/S,NoIcons/S

File .......... The  default  string  to  appear  in  the  `File name'
                gadget.

Drive ......... The string to appear in the `Drive' gadget.

Start ......... The first track to start data compression with.

End ........... The last track to compress.

TextFile ...... The name of the text  file  to  be  attached  to  each
                output file produced.

ClearData ..... Whether unused block data is to be zeroed or not.

ClearBlocks ... Whether unused blocks are to be skipped or not.

Verify ........ Whether write verification is enabled or not.

IncludeText ... Set this flag if you want `Zoom' to include text files
                with each output file it produces.

Encrypt ....... Set this flag if  you  want  `Zoom'  to  encrypt  each
                output file it produces.

SecLabels ..... Set this flag if you want  `Zoom'  to  format  a  disk
                before decompressing  a  file  which  contains  sector
                label information to it.

NoIcons ....... Set this flag if you don't want `Zoom' to create icons
                for each output file.

                    A sample `ZOOMOPTS' value is:
        `FILE RAM:Blank.zom DRIVE DF0: CLEARDATA CLEARBLOCKS'

   `Zoom'  will  prefer  to set/examine the the `ZOOMOPTS' environment
variable  in the AmigaDOS 1.3 standard. If this is not possible `Zoom'
will set/examine the Manx/ARP standard environment variable instead.

========================== Technical notes ===========================
======================================================================
`Zoom'  needs approximateley 240K bytes of memory to perform its jobs.
Make  sure  that  enough  space is available, or `Zoom' will complain.
Note  that  disabling  write verification will save about 10 KBytes of
chip memory.
   The Lh data compression/decompression routines are related to LhArc
and PKZip.  Unlike common data compression/decompression routines such
as  employed  by PowerPacker or Imploder, the performance of Lh cannot
be downgraded by adjusting the data sequence search depth.  This means
that  Lh  will always compress trying to achieve the best results with
the maximum effort.
   The  byte-run compression/decompression code will fit entirely into
the  instruction  caches  of the MC68020/68030/68040 processors, which
means  that  both  compression  and  decompression time will go almost
unnoticed.

======================= How fast `Zoom' works ========================
======================================================================
I  suppose  you  are shocked by the amount of memory required for data
compression / decompression.  Well, as it turns out I traded speed for
memory.  I tested `Zoom' (compressing a disk) against DMS 1.02, LhWarp
1.4 and Warp 1.2a with the following results:

                            Workbench1.3D:

                Tool   | Output file  | Time
                -------+--------------+--------------
                Warp   | 496990 bytes | 11:49 minutes
                LhWarp | 399889 bytes | 16:39 minutes
                DMS    | 480952 bytes | 11:00 minutes
                Zoom   | 383230 bytes |  6:15 minutes

   There you are:  `Zoom' really IS faster and more efficient than any
currently  available  disk  compression  /  decompression  program.  I
wouldn't call `Zoom' `lightning fast', but I am sure that it will show
a `few' tools home!

============================== Credits ===============================
======================================================================
Credits go to Ralf Thanner who kept nagging until I finally started to
rewrite  `Zoom', who also collected a list of most useful features you
can  now  find  implemented  in `Zoom' and who also organized the code
contributions  without  which  `Zoom'  would  lack  a  great  part  of
functionality,  to  Henning  Leise  who  contributed the excellent new
precompression  code, K.  Wiesel whose old byte-run decompression code
still  lurks  in  the  pre-5.x  `Zoom' file decompression routines, to
Georg  Hörmann  who donated his fine bootblock virus recognition code,
to Erik Løvendahl Sørensen for maintaining the Amiga virus library, to
Martin  Berndt,  who discovered the last errors before `Zoom' went for
release,  to  Arp  programmers  for  the Arp 1.3 package without which
`Zoom'  would  have been much more difficult to implement and last but
not least to all the beta testers.

================ Author's request and Share-Ware fee =================
======================================================================
`Zoom'   is  released  as Share-Ware. If you like the programs and use
them  frequently,  please dig into your pocket and send a contribution
of at least DM 50,- or 35$ US to:

                             Olaf Barthel
                          Brabeckstrasse 35
                          D-3000 Hannover 71

                     Federal Republic of Germany

   This program was made available for you convenience, so if you like
and  use it, don't just think `well, what the h*ck, some guy will send
some  money - I'll better keep my bucks, who says that Olsen will even
answer  my  letter?'.   Without  your  support  there may be no future
revisions of `Zoom'
   A  registered  user will receive the next two major program updates
free of charge.
   If  an  error  shows  up,  do not hesitate to contact me as soon as
possible.  My `real world' adress is given above, the following are my
EMail addresses:

                   Z-Netz: O.BARTHEL@A-Link-H
                   Usenet: o.barthel@a-link-h.zer.sub.org
                           cbmvax.commodore.com!cbmehq!sourcery!olsen

   The  entire  `Zoom'  package  may be noncommercially redistributed,
provided  that the package is always distributed in its complete form.
A  small  copy  fee for media costs is okay but any kind of commercial
distribution is strictly forbidden!
   Comments  and suggestions how to improve this program are generally
appreciated!
