home *** CD-ROM | disk | FTP | other *** search
-
-
-
-
- PolyXarc Configuration File Explanation
- Public Domain by Jeffrey J. Nonken
- 31 March, 1991
-
- In this document I pick apart the configuration file that I
- distribute with PolyXarc, and explain some details about
- different archivers. I figured this would enhance my explanations
- in POLYXARC.DOC, which aren't as clear as I'd like them to be.
-
- Note that while I tried to be reasonably accurate, the version
- numbers and some other niggling details should not be considered
- completely reliable. Relax; this isn't a history test, it's just
- an overview of how PolyXarc interacts with various archivers.
-
- ARC
- ===
-
- ARC files use different compression methods, depending on what
- program you're using and what it decides is the best method to
- use. These compression methods are represented in the .ARC files
- with what I call "levels", and what SEA calls "header types".
- Levels up to 9 are:
-
- Level Common name Compression method
- ---- ----------- ------------------
- 1 stored No compression (short header)
- 2 Stored No compression (standard header)
- 3 Packed Repeated Character Compression
- 4 Squeezed RCC followed by Huffman
- 5 crunched 12 bit Lempel-Ziv
- 6 crunched RCC followed by 12 bit Lempel-Ziv
- 7 crunched RCC followed by 12 bit Lempel-Ziv, alternate
- hash function
- 8 Crunched RCC followed by variable 12 bit Lempel-Ziv
- with dynamic reset
- 9 Squashed variable 13 bit Lempel-Ziv with dynamic
- or Deviant reset
-
- PKware and Nogate Consulting call level 9 "Squashed"; SEA calls
- level 9 "Deviant". However, it is the same format. Level 10 is
- used differently by two different programs: PAK, which calls it
- "Crushed", and ARC+PLUS (also known as ARC 7.0). These two
- programs use different compression algorithms, and therefore
- archives with files compressed at level 10 are not compatible
- between the two. Level 11 is as of this writing only used by PAK
- 2.51 and is called "Distilled".
-
-
-
-
-
-
-
-
-
-
-
- 1
-
-
-
- Who Can Decompress What
- | 1 2 3 4 5 6 7 8 9 10 11
- ----------+------------------------------------------------------
- ARC 4.5 | x x x x x x x
- ARC 5.0 | x x x x x x x x
- ARC 6.0 | x x x x x x x x x
- ARC 7.0 | x x x x x x x x x 1
- PKUNPAK | x x x x x x x x x
- PAK 1.0 | x x x x x x x x x 2
- PAK 2.5 | x x x x x x x x x 2 x
- x = can decompress
- 1 = ARC+PLUS version of level 10
- 2 = PAK version of level 10
-
- ARCE is equivalent to ARC 5.0. XARC is equivalent to ARC 7.0
- (ARC+PLUS). PKUNPAK is the same thing as PKXARC 3.60.
-
- As if that weren't confusing enough: as of ARC version 6.0, SEA
- came out with an extended format. Header types 1-19 are reserved
- for compression methods (what I call compression levels); header
- types 20 and up are reserved for extended information. This may
- include extended name and path information; extended date
- information; icon bit maps; and so on. This is called a "version
- 6" format ARC file, presumably because it was introduced with ARC
- version 6. So far only ARC versions 6 and 7 can dearchive a
- version 6 file.
-
- So we have to deal with both ARC levels and ARC versions.
- Fortunately for our sanity, only ARC+PLUS can create an ARC+PLUS-
- type level 10 header, and it can only do it in a version 6 ARC
- file, which according to Thom Henderson will always contain
- version 6 headers (type 20 and up). This means we can tell the
- difference between PAK level 10 and ARC+PLUS level 10 compression
- by checking the file for version 6 headers: if it's got version 6
- headers and level 10 compression, it's ARC+PLUS; if it's only got
- version 5 headers and level 10 compression, it's PAK. This is
- exactly how PolyXarc tells the difference.
-
- In fact, when PolyXarc goes through the ARC file, it looks for
- both version and highest level. If it finds the archive is a
- version 6 file, it simply ignores all the version 5 dearchivers
- when it looks for the proper one to use.
-
- The following paragraphs describe the ARC description lines in
- POLYXARC.CFG. The examples I give assume you are attempting to
- decompress a file called TEST.ARC. Since the filenames are
- usually optional, I will put "[*.*]" where the filenames go.
-
- ARC level overwrite extract command_template
- ---- ----- --------- ------- ----------------
- ARC 8 w "" arc e%2 %3 %4
-
- This defines an ARC 5.x template. ARC 5 will extract up to level
- 8. Normal syntax is "arc e TEST.ARC [*.*]"; overwrite mode will
- use "arc ew TEST.ARC [*.*]".
-
-
- 2
-
-
-
-
- ARC level overwrite extract command_template
- ---- ----- --------- ------- ----------------
- ARC 8 /r "" arce %3 %4 %2
-
- This defines a template for ARCE, which is a fast ARC extractor
- written in assembly. It is the equivalent of ARC version 5.
- Normal syntax is "arce TEST.ARC [*.*]"; overwrite mode will use
- "arce TEST.ARC [*.*] /r".
-
- ARC level overwrite extract command_template
- ---- ----- --------- ------- ----------------
- ARC 9 /r "" pkxarc %2 %3 %4
-
- This template is for PKXARC, which can extract up to level 9
- compression. Normal syntax is "pkxarc TEST.ARC [*.*]"; overwrite mode
- will use "pkxarc /r TEST.ARC [*.*]".
-
- ARC level overwrite extract command_template
- ---- ----- --------- ------- ----------------
- ARC 9 /r "" pkunpak %2 %3 %4
-
- This template is for PKUNPAK, which can extract up to level 9
- compression. PKUNPAK is version 3.61 of PKXARC; there are no real
- differences between them. Normal syntax is "pkunpak TEST.ARC
- [*.*]"; overwrite mode will use "pkunpak /r TEST.ARC [*.*]".
-
- ARC level overwrite extract command_template
- ---- ----- --------- ------- ----------------
- ARC 11 /WA "" pak /e %2 %3 %4
-
- This template is for PAK, which can extract up to level 11.
- However, PAK will not extract level 10 files if the archive was
- made by ARC+PLUS, but only if it was made by PAK. Normal syntax
- is "PAK /e TEST.ARC [*.*]"; overwrite mode will use "PAK /e /WA
- TEST.ARC [*.*]".
-
-
- ARC level overwrite extract command_template
- ---- ----- --------- ------- ----------------
- ARC 11 /WA /WO pak /e %1%2 %3 %4
-
- This is an alternate syntax for PAK 2.51. If you use this line,
- if PAK encounters a file already on disk that it is trying to
- extract from the archive, if the archive file is newer, PAK will
- replace the older file. Normally without the /WO parameter PAK
- will stop and ask whether you want to overwrite. In this case
- syntax for extraction will be "pak /e /WO TEST.ARC [*.*]", and
- for overwrite will be "pak /e /WA TEST.ARC [*.*]".
-
-
-
-
-
-
-
-
- 3
-
-
-
- ARC level overwrite extract command_template
- ---- ----- --------- ------- ----------------
- ARC6 9 w "" arc e%2 %3 %4
-
- This defines an ARC 6.0 template. ARC 6 will extract up to level
- 9. In addition, it can extract from version 6 ARC files up to
- level 9. Normal syntax is "arc e TEST.ARC [*.*]"; overwrite mode
- will use "arc ew TEST.ARC [*.*]".
-
-
- ARC level overwrite extract command_template
- ---- ----- --------- ------- ----------------
- ARC6 10 /o ! xarc %2 %3 %4
-
- This defines a template for XARC. XARC is a free-distribution
- unarchiver for ARC 7.0, also called ARC+PLUS. XARC will extract
- up to level 9, and will also extract version 6 ARC files up to
- level 10. Note that XARC will not extract PAK level 10 files, but
- only ARC+PLUS level 10 files. Normal syntax is "xarc TEST.ARC
- [*.*]"; overwrite mode will use "xarc /o TEST.ARC [*.*]".
-
- ARC level overwrite extract command_template
- ---- ----- --------- ------- ----------------
- ARC6 10 o ! arc e%2 %3 %4
-
- This defines a template for ARC 7.0 (ARC+PLUS). ARC+PLUS will
- extract up to level 9, and will also extract version 6 ARC files
- up to level 10. Note that ARC+PLUS will not extract PAK level 10
- files, but only ARC+PLUS level 10 files. Normal syntax is "arc e
- TEST.ARC [*.*]"; overwrite mode will use "arc eo TEST.ARC [*.*]".
-
- OTHER ARCHIVERS
- ===============
-
- There is a plethora of formats other than ARC. Every year or so
- sees a new archiver, usually with a new format, and each time it
- seems that improvements have been made on the speed or amount of
- compression or both. And each format is incompatible with all the
- others.
-
- The strength of PolyXarc is in the fact that you can program it
- to recognize new formats simply by adding a line in the
- configuration file. Most archivers leave a "signature"; some
- constant set of values or characters imbedded in the archive file
- for distinguishing one type of archive from another. PolyXarc can
- be configured to read that signature and determine which
- dearchiver to use to access the files in the archive.
-
- Thus come the Signature lines in the configuration file. Each one
- shows not only the command template, but also the signature and
- where to find it.
-
- For these examples I will use TEST.ext, where ext is the
- archiver's native extension.
-
-
-
- 4
-
-
-
- DWC
- ---
-
- First we'll tackle DWC. DWC stands for David W. Cooper, the
- author of the program. Originally DWC source was available, but
- Mr. Cooper sold his program to a commercial interest; versions
- written since then have not had source available. In fact, I have
- only seen one version at all since then. DWC also requires that
- all its archives have ".DWC" as an extension. It also is unusual
- because it has its signature at the end of the file, rather than
- at or near the beginning of the file as most archivers do. That
- can cause problems for recognition after an XMODEM-type download,
- because the end of a file transferred via XMODEM is padded with
- extra characters, and the signature is no longer at a fixed
- location from the end of the file. Since DWC isn't particularly
- fast and doesn't make particularly small archives, all this makes
- it of rather limited use.
-
- You'll notice that the signature, "DWC", is shown to be at -3.
- That means that PolyXarc should count backwards from the end of
- the file by three characters. That count actually starts from
- just past the end of the file; the last character in the file
- would be at -1. So "DWC" is actually the last three characters of
- the file.
-
- SIGNATURE offset signature overwrite extract command_template
- --------- ------ --------- --------- ------- ----------------
- SIGNATURE -3 DWC w "" dwc e%2 %3 %4
-
- Normal syntax is "dwc e TEST.ARC [*.*]"; overwrite mode will use
- "dwc ew TEST.ARC [*.*]".
-
- LHARC
- -----
-
- LHARC, written by a Japanese gentleman named Haruyasu Yoshizaki,
- came out around 1990. It stopped at version 1.13 for a while, but
- in 1991 Yoshi came out with version 2.05. LHARC creates some of
- the smallest archives of all, but unfortunatly is very, very
- slow. However, verion 2.0x is a great improvement over 1.1x; it
- not only has a new, smaller compression algorithm, but is much
- faster (though still slow), and can even create backwards-
- compatible files that are slightly smaller than the original
- program made. It is now called LHA.
-
- LHARC's signature is actually the compression method flag for the
- first file. Fortunatly that flag is always in the same place.
- Flags seen so far are "-lh0-" through "-lh5-", so we just look
- for the first three characters, "-lh"; as long as Yoshi doesn't
- change the way the archiver works, that should be able to handle
- LHARC files forever.
-
-
-
-
-
-
- 5
-
-
-
- SIGNATURE offset signature overwrite extract command_template
- --------- ------ --------- --------- ------- ----------------
- SIGNATURE 2 -lh /mc "" lharc e %2 %3 %4
- SIGNATURE 2 -lh /mc "" lha e %2 %3 %4
-
- Normal syntax is "lharc e TEST.LZH [*.*]" or "lha e TEST.LZH
- [*.*]". Overwrite syntax is "lharc e /mc TEST.LZH [*.*]" or "lha
- e /mc TEST.LZH [*.*]"
-
- XARCMAC
- -------
-
- There is an ARC-like program available for the MacIntosh
- computer. An extractor is available for the IBM family, called
- "XARCMAC". The run-time help claims the files are ARC compatible,
- but none of the ARC programs I have will extract files from it.
- Fortunatly it has a unique signature; instead of storing a hex 1A
- as the first byte of the file, which ARC does, this format has a
- 1B. XARCMAC -- at least, the version given to me -- will only
- extract and list files, and has no overwrite mode. It is really
- only useful for extracting files created on a MacIntosh by the
- one particular program.
-
- SIGNATURE offset signature overwrite extract command_template
- --------- ------ --------- --------- ------- ----------------
- SIGNATURE 0 <1B> "" "" xarcmac e %3 %4
-
- Notice that this signature has angle-brackets <> around the
- signature. That means it gets treated as a hex value, rather than
- text. The only syntax PolyXarc will create with this is "xarcmac
- e TEST.MAC [*.*]".
-
- ZOO
- ---
-
- Though relatively slow and cumbersome, Rahul Dhesi's program ZOO
- has been ported onto a number of platforms and is quite popular
- in some circles.
-
- This one is awfully straightforward; the signature is "ZOO" and
- is at the very beginning of the file.
-
- SIGNATURE offset signature overwrite extract command_template
- --------- ------ --------- --------- ------- ----------------
- SIGNATURE 0 ZOO o "" zoo x%2 %3 %4
-
- Normal syntax is "zoo x TEST.ZOO [*.*]"; overwrite mode is "zoo
- xo TEST.ZOO [*.*]". Note that the overwrite command is the letter
- O, not the number 0.
-
- There is an extract-only program available on most platforms,
- called "BOOZ". I do not presently have a copy of it, but I'm sure
- the syntax would be quite simple to add to PolyXarc.
-
-
-
-
- 6
-
-
-
- ARJ
- ---
-
- This is a new archiver; version 1.00 was released early in 1991.
- It creates very small archives quickly. The author also claims to
- be working on a program called ARJX that is supposed to make even
- smaller files even more quickly. As it stands, ARJ is one of the
- best archivers for speed and size.
-
- SIGNATURE offset signature overwrite extract command_template
- --------- ------ --------- --------- ------- ----------------
- SIGNATURE 0 <60EA> -y "" arj e %2 %3 %4
-
- Normal syntax is "arj e TEST.ARJ [*.*]"; overwrite syntax is "arj
- e -y TEST.ARJ [*.*]".
-
- ZIP
- ---
-
- PKZIP is the latest offering from Phil Katz. PKZIP is generally
- recognized as creating the smallest archives, and being the
- fastest archiver for the compression ratio, though some of the
- other new programs and new versions of old programs have been
- giving it a run for its money. LHARC also sometimes makes smaller
- files, though nobody has been able to positively demonstrate a
- clear edge of one over the other.
-
- PAK 2.51 now also includes ZIP capability. This allows a lot of
- versatility in one program. However, PKZIP is still faster and
- still usually produces smaller archives.
-
- SIGNATURE offset signature overwrite extract command_template
- --------- ------ --------- --------- ------- ----------------
- SIGNATURE 0 PK -o "" pkunzip %2 %3 %4
- SIGNATURE 0 PK /WA "" pak e /z %2 %3 %4
- SIGNATURE 0 PK /WA /WO pak e /z %1%2 %3 %4
-
- See the ARC section for notes on PAK's overwrite modes. Normal
- syntax is: "pkunzip TEST.ZIP [*.*]" or "pak e /z TEST.ZIP [*.*]"
- or "pak e /z /WO TEST.ZIP [*.*]". Overwrite syntax is "pkunzip -o
- TEST.ZIP [*.*]" or "pak e /z /WA TEST.ZIP [*.*]". Note that the
- /z is not necessary; once PAK determines the file type, it will
- correctly treat it as a .ZIP file.
-
- - - -
-
- Well, that concludes our little lecture. If you have any
- questions about the options I've chosen, or the syntaxes for the
- different archivers, I recommend you look at the documentation
- that came with the archiver. If you're still confused, try using
- the examples in POLYXARC.CFG. Make sure the archiver is in your
- execution path someplace.
-
-
-
-
-
- 7
-
-
-
- If you have an archiver I haven't covered here, please let me
- know. Especially, if it isn't a commercial product, send me a
- copy of the archiver; I'm always interested in adding new ones,
- and it's easiest to support and test if I have a copy available
- to run.
-
- Jeffrey J. Nonken
- 1706 Cherrie Circle
- Blue Bell, Pa. 19422-3412
- BBS: (215)279-9799 HST/v.32
- Fidonet: 1:273/715
- Internet: Jeffrey.Nonken@f715.n273.z1.fidonet.org
-
- Note: the above Snailmail address and phone number may change in
- the next few months. Please use my Fidonet or Internet address,
- or check the latest Nodelist for the current information.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 8
-