home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Gold Fish 1
/
GoldFishApril1994_CD2.img
/
d4xx
/
d459
/
zoom
/
zoom.doc
< prev
next >
Wrap
Text File
|
1991-02-17
|
30KB
|
592 lines
========================= Zoom/ZoomCheck 4.1 =========================
======================================================================
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.
============== A word on trojan horses and link viruses ==============
======================================================================
I didn't want to create a 4.0 version yet, but circumstances have
forced me to bump the current release to this version number. You
might have heard the story of `Zoom!' being a new link virus in
disguise. As far as authorized copies of the previous releases are
concerned this is and was NOT the case!
When I heard that `Zoom!' was accused of being a kind of `Trojan
Horse' I checked all support files and checksums and did NOT find any
evidence! So this either was supposed to be a joke or a
misunderstanding. I was quite surprised to hear that especially
`Zoom!' was infected since it is the first program to include CRC
program checksums and an anti-link-virus selftest.
======================= READ THIS OR MISS OUT ========================
======================================================================
On startup both `Zoom' and `ZoomCheck' will examine their 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'
or `ZoomCheck SELFTEST'.
If possible both programs will read their executables from disk and
calculate a checksum (Note: `Zoom!' will try to read the file `Zoom'
from the current directory, `ZoomCheck' will try to read `ZoomCheck').
If this `WRAP' checksum is nonzero the approriate file has been
modified (which can but need not indicate virus infection)!
Enter `CRC Zoom' and `CRC ZoomCheck' to calculate the external
checksums and compare them with the samples given in this document.
Any differences indicate possible virus infection! If you don't trust
the sample checksums listed in this document, send me a letter or
electronic mail (adresses listed below) and ask for the `factory
checksums'.
THIS AND THE FOLLOWING ZOOM! RELEASES MAY ONLY BE DISTRIBUTED IN
THE SELF-EXTRACTING ARCHIVE FORM!!!
========= What if my copy of `Zoom' appears to be infected? ==========
======================================================================
Do not hesitate to send me a letter or electronic mail containing the
following information:
1) Where did you get the copy from?
2) Which files have been infected/modified?
3) What do you guess: have the files been modified by a virus
(which virus)?
As a programmer I am about to lose my reputation - and I will not
hesitate to report the luckless fool who infected the `Zoom!' release
in question and spread it.
============================== Contents ==============================
======================================================================
This package consists of six 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: 09-Jan-91, 14:50
Zoom (CRC = $2E79D5C3, Size = 55200 Bytes)
Zoom.info
ZoomCheck (CRC = $2538C75C, Size = 18164 Bytes)
ZoomCheck.info
CRC (CRC = $4F5177B9, Size = 4104 Bytes)
Zoom.doc (Size = 30073 Bytes)
The new `CRC' utility will also calculate and print the so-called
`WRAP' checksum. For all programs in this distribution (including
`Zoom', `ZoomCheck' 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 66 different viruses.
- 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 microprocessor. No need to buy an extra version!
============================== 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! is the successor to CompDisk and owes much to the original
tool's design. Nevertheless, Zoom! performs faster, produces `safer'
and much smaller output files.
Zoom! uses highly-efficient data encoding 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 LZ.
To reduce the chance of encoding a virus-infected disk, Zoom! will
examine the bootblock and display it if it is of nonstandard type.
The following 66 different bootblock viruses are recognized:
16 Bit Crew AEK (MicroMaster) AIDS
Alien New Beat Amigafreak Australian Parasite
BamigaS1 Black Flash Butonics
Byte Bandit (1 & 2) Byte Warrior (1 & 2) CCCP (1 & 2)
ClaasAbraham (MCA) CList Virus Coder
DAG Destructor DiskDoctor (1 - 3)
Digital Emotion Diskguard V1.0 F.A.S.T.
F.I.C.A. Forpib Gadaffi
Graffiti Gremlins GX Team
ICE Incognito JITR
Joshua (1 & 2) Julie (Tick Virus) Kauki
LAMER (1 - 3) LSD Megamaster
Microsytems Morbid Angel Obelisk
OPAPA Phantastograph Rene
REVENGE REV. Boot Loader SCA (1 & 2)
Scarface Selfwriter Sendarian
Sinister Syndicate Supply Team Switch OFF
Target Termigator The INCOGNITO
TIMEBOMB TURK U.K. Lamerstyle
Ultrafox Warhawk
Ralf Thanner, author of the `Berserker' virus killer, donated the
bootblock scanner and rewrote the 16-bit CRC routines, thanks a lot!
============================ Installation ============================
======================================================================
Copy `arp.library' to your LIBS: directory, both Zoom! and ZoomCheck
require 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,Q=Quiet/S,Selftest/S
From .......... Name of the file to be read and written back to disk
(`decode') or the name of the filing device to read
the data from to be encoded.
Examples: `Zoom from df0: to ram:doodle'
`Zoom from ram:doodle to df0:'
To ............ Name of the device to store the decoded data on or the
name of the file to send the encoded data to.
Check ......... This is a tiny implementation of a file integrity
testing tool (such as `ZoomCheck'). 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.
Example: `Zoom check ram:doodle'
Text .......... Zoom! can attach a text file to an archive file which
will be displayed while/before data decoding. It will
be read and encoded before the actual disk encoding
takes place.
Start ......... The track number to start encoding 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 encode. 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 decode the output
file.
Example: `Zoom df0: to ram:doodle crypt Secret'
Cleardata ..... This switch may reduce the size of the output file
produced by encoding. 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 encode. 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 encoded 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 encoded 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
decoding process too much.
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
encoded/decoded. It will be put into the
string gadget to the left of this button.
Select drive .......... Select the the drive to write/read the data to
be decoded/encoded to/from. This button will
cycle through all filing systems which are
exactly 80 tracks in size. The name of the
filing system will be put into the string
gadget to the left of this button.
Start data Encoding ... Click this button to start data encoding,
click it again to stop the process.
Start data Decoding ... Click this button to start data decoding,
click it again to stop the process.
From track to track ... The starting and ending tracks to encode, 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 decoded. This switch has no effect
during data encoding.
The display on the right hand side of the Zoom! window contains
the following elements:
Disk .................. The space left on the destination drive.
Mem ................... System memory currently available.
Size .................. Size of the last encoded/decoded 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.
File .................. The size of the encoded data file.
Time .................. Time elapsed during data encoding/decoding.
Track ................. Current track counter (read / to go).
Status ................ The action currently executed.
If an output file does not fit on the destination disk, encoding
wil be terminated. The starting and ending tracks will be adjusted
accordingly to allow the user to continue to encode the disk where the
first encoding run stopped.
The `name' of the file to be decoded may be a wildcard expression.
Zoom! will try to locate and decode all files which match the pattern
(note: only the Intuition interface supports this feature).
Multiple selection is supported as well: to decode a row of Zoom!
output files, hold down the shift-key, click the icons of files you
wish to decode, then double-click the Zoom! icon. Note: Zoom! will
use the default options to decode 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,S=Start/K,E=End/K,D=ClearData/S,B=ClearBlocks/S,
V=Verify/S,N=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 encoding with.
End ........... The last track to encode.
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.
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.
============================= ZoomCheck ==============================
======================================================================
Zoom! comes with an auxilary program: ZoomCheck. ZoomCheck will
examine the entire structure of file created by Zoom! and report if
the checksums are in the correct places.
Notes and texts are also displayed while checking (add `QUIET' to
the command line to suppress this feature).
Notes are added to a Zoom! file with the `NOTE' option (such as
`ZoomCheck File.zom NOTE Hello!') or with the `NOTEFROM' option (such
as `ZoomCheck File.zom NOTEFROM ENV:MyTag'). Time and date will be
saved with the note (the note itself will be encrypted).
Zoom and ZoomCheck use 16-bit CRC routines which catch about 99% of
possible random changes (I didn't see the need to use 32-bit CRCs to
catch another half percent!).
===================== ZoomCheck Workbench usage ======================
======================================================================
A standard file requester will be opened to let you select the file
you want to be checked. A different requester will tell you if the
file structure was entirely correct.
While the file is examined, notes and the text attached to it will
be displayed.
Multiple selection is supported as well: hold down the shift key,
click the icons of the files you want to check, then double-click the
ZoomCheck-icon.
======================= ZoomCheck Shell usage ========================
======================================================================
The following command line template is diplayed if you type
`ZoomCheck ?':
File,N=Note/K,F=NoteFrom/K,Quiet/S,Selftest/S
File .......... The name of the file to be tested. The text and the
notes attached to the file will be displayed unless
the `quiet' option is used.
Note .......... A note to attach to the archive file. Notes are
saved with their creation date and are encrypted.
Example: `ZoomCheck Foo Note Bar'
NoteFrom ...... Similar to the `Note' keyword this argument will make
ZoomCheck attach a note to a given file. The only
Difference is that the note will be read from a file
(CAREFUL: the note cannot be longer than 79
characters, longer strings will be truncated!).
Example: `ZoomCheck Foo NoteFrom ENV:Bar'
Quiet ......... By default text and notes associated with an archive
file are displayed before the file is actually
checked. This feature can be disabled with the
`quiet' switch.
Selftest ...... This command has the same effect as in the Zoom!
main program.
========================== Technical notes ===========================
======================================================================
Zoom! needs a tiny little bit of memory to perform its jobs:
Data Encoding ......... 240 KByte
Data Decoding ......... 240 KByte
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 encoding/decoding 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 encode trying to achieve the best results with the
maximum effort.
======================== 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! (encoding a disk) against DMS 1.02, LhWarp
1.4 and Warp 1.2a with the following results:
Workbench1.3D:
Tool | Output file | Time
-------+--------------+--------------
Warp | 508226 bytes | 11:49 minutes
LhWarp | 399187 bytes | 16:39 minutes
DMS | 389270 bytes | 11:00 minutes
Zoom! | 371432 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' (Jon Forbes has a license for
that ;-), but I am sure that it will show a `few' tools home!
=========================== Known problems ===========================
======================================================================
Some features supported by CompDisk/DecompDisk are not included in
Zoom! and ZoomCheck yet and probably never will (which depends on
your support). Currently known bugs and problems are:
- Sector labels are not saved yet. Very few applications apparently
use them (FFS is rumored to do so, but I couldn't find any evidence
yet). Supporting SecLabels would require two write accesses for a
single track (yet another bug in the pre-2.x trackdisk.device?!?).
============================== Credits ===============================
======================================================================
Credits go to Arp Programmers for Arp 1.3, to Ralf Thanner, who
contributed the assembly language CRC routines and the custom
bootblock check, to Erik Løvendahl Sørensen for the large number of
viruses he sent to Ralf and to K. Wiesel who contributed the
pre-compression code.
================ Author's request and Share-Ware fee =================
======================================================================
Zoom! and ZoomCheck are 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 (DM currently preferred)
to:
Olaf Barthel, MXM
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-Net: O.BARTHEL@A-Link-H
Fido: Olaf Barthel @ 2:240/1 (New adress!)
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!
============ Revision history (most recent change first) =============
======================================================================
V4.1 There was a small bug in the disk bitmap reader which could
corrupt single blocks. This has been fixed (hope so!)
V4.0 Added the wrap checksums, the startup link virus check, made
some changes to requesters and user interface (nothing
spectacular, though). Recompiled and linked using new
amiga.lib. Also created a new CRC tool. This is a POST-
DISASTER release.
V3.10 Changed the minimum sequence length LhEncode uses to 2 bytes
which will cause Zoom! to emit even smaller output files.
Thanks to Holger's brilliant LhDecode routine the file format
is still compatible with the previous releases. If encoding
was cancelled a previously allocated text buffer was not
released (this has been fixed).
V3.9 The previous release had problems if ENV: was not assigned
(sorry to all those who nearly got mad at this - don't blame
me, blame Manx!).
The disk drives to support this feature will eject the disk
after encoding/decoding (such as the Applied Engineering HD
disk drive).
A text file to be encoded along with a disk is read before
the actual disk encoding takes place.
If started from Workbench Zoom saves icon images with the
files it creates.
If a disk is accidentally removed while encoding/decoding
Zoom! will no longer refuse to continue work after the disk
has been reinserted.
The older release would clear the contents of the
`ZOOMOPTS' variable after running Zoom! from Shell.
Zoom! and ZoomCheck have been recompiled with our (Oliver
Paesler's and my) new SAS/C compiler (sorry Manx, I really
could't take it any more!). Some real voodoo magic was
involved in creating a truly reentrant Arp wrapper package for
the darn startup code, but, alas I am not a perfect SAS/C
priest yet: starting the Zoom! Intuition interface from
Shell will cause the program to modify its own data hunk (I
have checked any location but couldn't discover where it
actually happens). This nuisance does not occur if Zoom! is
started from Shell using the Shell interface only. Both Zoom!
and ZoomCheck support multiple icon selection.
ZoomCheck will read notes from a file. I reworked the
compression code a bit.
The documentation was rearranged and partly rewritten (the
original file was as close to a long-run-midnight-near-
delirium-hack as it could possibly be).
I forgot to describe the format of the `ZOOMOPTS'
environment variable. The power LED will no longer flicker
during encoding/decoding (another `benefit' of the
Manx<->SAS/C conversion).
My old UUCP/SubNet addresses have ceased to exist, I will
try to supply an alternative gateway path if anybody needs it
(use Fido or standard snail instead).
V3.7 This is a kludge solution: I use rstart.o to create the
resident part of Zoom! and ZoomCheck: both programs will
only be reentrant if used in conjunction with the Arp shell.
This release includes a data precompressor which provides a
welcome speedup for large rows of equal bytes. The data
format is no longer compatible with previous Zoom! releases.
V2.6 Both Zoom and ZoomCheck have become reentrant (don't say that
you didn't think it was possible with Aztec `C' 5.0!).
V2.3 Added new Shell options, fixed a couple of bugs and added an
option to protect files by passwords. The settings displayed
in the Intuition interface are saved in environment variables
(both Manx standard and AmigaDOS 1.3 environment variables are
supported). Restarting Zoom will cause it to restore the
previously saved settings. Note that only the Intuition
interface will read these defaults, the Shell interface always
uses the default settings. The disk drive motor is turned off
while data is encoded/decoded/written (TrackSalve used to do
this job under Kick1.3, but wouldn't do under Kick2.x!).
V2.2 Added a couple of new options to Zoom!, such as a small
ZoomCheck. Texts and notes are displayed after/while
decompression and also appear in the Shell window. The
ZoomNote functions have moved into ZoomCheck.
V2.1 Added back the dreaded command line interface. Also added
wildcard support for decompression (intuition interface only).
There's a new support file: ZoomNote.
V2.0 Better FFS support, Zoom! has become faster and more
efficient. This release is incompatible with previous Zoom!
releases.
V1.1 New user interface! Thanks to Holger, Ralf & Michael a few
bugs were traced (and fixed?). Added write verification and a
few more gimmicks. The docs were partly rewritten, as was the
program.
V1.0 First semi-public release.
*
Do only its possibilities make it an Amiga?
WHERE IS THE MAGIC ???