home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
World of A1200
/
World_Of_A1200.iso
/
programs
/
compress
/
filearchivers
/
compression
/
zap.doc
< prev
next >
Wrap
Text File
|
1995-02-27
|
12KB
|
334 lines
Hmmm.. now what can I do tonight?
I know! I'll go on the POWERGRID BBS and download the amazing
ZAP documents file!
ATDP 0670-540073
RINGING
CONNECT 9600
DOWNLOADED FROM THE POWERGRID BBS!
**********************************
**********************************
** **
** **
** ZZZZZZ AA PPPPPP **
** Z ZZ AAAA PP PP **
** ZZ AA AA PP PP **
** ZZ AAAAAA PPPPP **
** ZZ Z AA AA PP **
** ZZZZZZ AA AA PPPP **
** **
** **
**********************************
**********************************
Written by *GREMLIN* of MAYHEM!
===============================
Docs for V1.41 (31/1/90)
========================
About ZAP
=========
I got into serious modem usage when I got a 9600HST modem (It's not worth
it if you've got anything slower!!), and the first thing I noticed was that
EVERYONE used this 'Warp' program to crunch disks. I downloaded it and the
first question was *WHY??* It's RUBBISH! It's massively long, it's written
in C, and worst of all, it's SO -=S L O W=-!! 5 minutes to uncrunch a disk
is just ridiculous! And as for crunching disks.. you could have a long
holiday in Barbados while it crunches a blank disk!
C (or why Kernighan and Richie should be tied to a post and shot)
===================================================================
Well, I'm a professional programmer (I'm not telling you what I've written -
you never know who's listening!) and I've written my own compression routines
before for use on games. It must be said now, that I'm not a fan of the C
language, or at least, of the current implementations of it. It's fine for
writing utilities that don't need to be fast or compact, but for ANYTHING
else it is useless!
One of it's main selling points is that it is supposedly easy to use and
portable from one machine to another - what a joke! The company I work
for wrote the strategy part of a game on the IBM PC (in Lattice C) simply
so it could be easily ported to the ST and Amiga while the machine-specific
bits (i.e. graphics routines, animated stuff, etc) were rewritten from 8086
to 68000. ...It took less time to rewrite the machine code than it did to
get the C code to work - and that was using the SAME Lattice compiler on the
68000 machines! As for ease of use.. Can you learn C in two days?
Ok.. enough of C (thankfully!)
How to use ZAP
==============
1: Crunching a disk.
--------------------
So, you have a disk you want to crunch. Is it all in DOS format?
Most likely, it will be..
If you don't know, you can either try it, or you can save time and run it
through the CHECKDISK option on a copier like X-Copy. If any tracks
come up as not green then either the disk is in a non-dos format, or
you have an error on it.
If you suspect an error, use the DOSCOPY+ option to copy the disk
and correct the error. If it has lots of non-dos tracks,
you will probably have to find some other way of crunching it,
as the current version of Zap (V1.41) does not support non-dos disk
formats.
Right, now you have your source disk sorted out, here's how to
crunch it:
1) Do you want to crunch it to ramdisk? If not, see step 2.
There's usually no point; you will want to copy it to floppy/harddisk
afterwards anyway, but if you are really mad and have enough memory,
make sure that the ramdisk is installed up BEFORE you run Zap. The
RAM: device is only installed into your machine the first time you
try and use it after booting the machine, so to avoid problems, type
something like DIR RAM: . This will ensure the ram disk is all
set up and ok.
You could use the recoverable ram disk RAD: instead if you want to,
assuming it is configured to be big enough, but that is your problem,
and is a bit beyond the scope of this document to tell you how to set
it all up if you don't know.
2) If crunching to floppy, make sure you have 2 drives and a nice
formatted disk with enough space to hold the crunched file.
3) If crunching to hard disk, you have no problem!
4) Would you like some text to be displayed when someone
else comes to uncrunch the disk? You could advertise yourself to
the world! If so, use a text editor (any one will do) to make up
a file with your text in it. (you can include ANSI codes - if you know
what they are!!)
5) type
ZAP R (filename)
Where (filename) is the name of the device/file that you want the
crunched file to go to. E.g. DF1:Fred or DH0:Zapstuff/Megademo
or RAM:SillyName The filename will have ".ZAP" added on the
end of it, unless you put it on the name yourself.
6) You will then be asked what crunch depth you require. This simply
determines the amount of time the disk will take to crunch, and thereby
how short the resulting file will be. Basically, experiment. The time
taken will vary from about 40 seconds for a blank disk on the fastest
setting (i.e. '0') to an hour or more for a full disk on the slowest
setting ('9').
Note that numbers over about 4 or 5 will take correspondingly
longer to crunch but will yield progressively less gain, so it's only
worth using '9' if you are going to leave it overnight, having said
that try to use '1' or '2' instead of '0' if you can, as the difference is
always worth it.
7) After that you will be asked for the name of the text file you want
to incorporate in the crunched file, if any. If you have prepared a file
before (you were warned!!), enter the name now. If not, just press
return.
8) When prompted to put the disk in, bung it in DF0, and wait for a second
or two. If the disk grinds and a requestor comes up saying something
like 'Key 880 checksum error' or 'Error validating disk' then just click
on CANCEL until they go away! Then press return to start.
8) That's it! The disk will be read in and compressed (accompanied by much
screen-flashing) and any errors will be reported. If there are no problems
Zap will tell you after every block of 8 tracks how well they crunched.
Finally you will be told the total file length in kilobytes. You can now
do what you like with the crunched file (e.g. upload it onto a bulletin
board, save it on hard disk, whatever)
For those of you who wonder why there are not millions of options
to use (like WARP) e.g. 1,79,NOZERO, etc,etc the answer is that
ZAP handles them all automatically!
2: Uncrunching a disk.
----------------------
A file crunched with ZAP can be recognised by the ".ZAP" extension
it should have.
Type ZAP W (filename)
You don't have to put the ".ZAP" extension on the name if you don't
want to, but it will be assumed.
Put a disk (it doesn't have to be blank or even formatted) into DF0,
and click on CANCEL on any silly requestors that may appear. Then
press return. At this point if someone crunched the disk with a text
file on it, the text will be displayed. If not, the disk will be
uncrunched and written to DF0. The boot block will be displayed so
you can see if it has any obvious viruses on.
That's it!
3: Error messages
-----------------
You can get two sorts of error messages;
Dos messages (familiar, like 'disk full' or something short like
'File Error' which usually means the file was not found)
Trackdisk messages (unfamiliar, but quite obvious, like WRITEPROT
means the disk was writeprotected. If you get something you don't
know, like BADSECHDR then it means that there is an error on the
disk you are crunching. See earlier) You can (R)etry or (C)ancel
with these messages.
4: Miscellaneous problems
-------------------------
If it doesn't end in ".ZAP" and you are not sure, or there is some major
problem in unzapping the file, try:
TYPE name OPT H
which will display the file in hex and ascii for you. Right at the start
of the file should be "ZAP V?.?? (C) 19?? GREMLIN of MAYHEM" or some
such message. If this is not there, then the file wasn't ZAPped. If the
first part of the version number is greater then 1 (the release that this
docs file was written for) then it has been crunched with a later version
of Zap that uses a new and incompatible compression algorithm. Get the
latest version!
Anything else? Tell me via POWERGRID (see bottom of file)
Technical Stuff
===============
For the techy people amongst the massed throngs (?!) of you readers,
Zap uses a modified Runlength Encode as a preprocessor, followed by an
ultra-optimised Lempel-Zev algorithm. This Lempel-Zev technique is used
in virtually every cruncher around nowadays, and is the best algorithm
for general data compression - Those wishing to argue can go and eat
their own toenails! There is another algorigm, Huffman coding, which
is much faster, but is not usually so efficient, so I decided against
using it.
The main problem with Lempel-Zev is that it requires a vast amount of
data searching, and so tends to take a very long time to run. The total
time taken is determined by how far you search for each byte, and that
is why the user is usually asked for the search depth for the program
to use. If you are interested, the 0-9 numbers of Zap can be worked
out as byte depths by 128+(number*256) i.e. 0 will search 128($80)
bytes.
Most crunchers (for example the classic 'Bytekiller') are
written by people who tend to know less about writing really superfast
68000 code, and more about writing demos or business programs!
Anyway, Zap was written simply for speed and efficiency, and I like
to think I achieved it to some extent.
The other thing that makes Zap fast, is the fact that it is the only
cruncher to use Amiga multitasking properly. Instead of using the
reading a track, crunching it, and then writing it out, Zap uses
a double-buffer system where the next 8 cylinders are read at the same
time as the previous 8 are being crunched. Therefore there is never any
time wasted waiting for disk access to finish. This makes quite a
difference when crunching a disk, but really comes into its own when
uncrunching, when the disk is written to virtually non-stop. If you
have the source file in ramdisk, you can uncrunch a whole disk in about
45 seconds, as opposed to 4 minutes using WARP!
Zap uses the trackdisk command TD_FORMAT rather than TD_WRITE, so the
destination disk doesn't have to be formatted first. To date (V1.41) it
does not do verification on written tracks, although I'll put this on
a later version.
Stuff I'll try to put in the next release
=========================================
1) Selection of tracks to be crunched, so you can crunch part of a disk
if you like.
2) I'll put back in the bitmap option, but I tend to think it's more
trouble than it's worth to use.
3) Automatic handling of non-dos tracks (i.e. MFM mode) ..maybe
4) Verify option when writing.
5) Even better compression (I have had an idea that might well improve the
crunching by a considerable amount!!)
6) Even faster crunching (there's probably something I can optimise a
bit more!)
7) Bob-demo and Soundtracker music when crunching. (Joke!!)
8) Disk-validation disabling when source or target disks are inserted (minor!)
9) Crunching/Uncrunching to different drives (only floppies though!)
10) Flashing powerlight when crunching (so you can see if it's finished
when doing those all-nighters with the monitor turned off)
Any other suggestions or bug reports?
ring the
POWERGRID BBS (UK) on +44(0)670-540073
2400-14.4k (no-one below 2400!) 24hrs 300Meg on-line!
Mail to: GREMLIN
Now y'all be sure to Have A Nice Day!!! (they REALLY say that!)
...And Come Back Real Soon, Y'Hear?
Click!
NO CARRIER
OK
Gee! Wasn't that fun?