home *** CD-ROM | disk | FTP | other *** search
-
-
- LL XX XX
- LL XX XX
- LL XXX
- LL XX XX
- LLLLLL XX XX
-
- Version 1.00
-
- 2nd April, 1993
-
-
- Written by Jonathan Forbes
-
- Copyright © 1993, Xenomiga Technology
-
-
-
- 1 - Distribution
-
- This version of LX is freely distributable for non-commercial use, including
- distribution on the Fred Fish disks; i.e. there is no "shareware" (or other)
- fee for non-commercial use.
-
- Permission is hereby granted to include the unmodified Version 1.00 LX
- executable by itself (i.e. without this documentation) with any PUBLIC DOMAIN
- or SHAREWARE package, provided that a brief credit note is included in the
- program's documentation.
-
- Enquiries for licensing LX or its algorithms for COMMERCIAL use should be
- sent to:
-
- Xenomiga Technology
- 1132 Bay Street
- Toronto, Ontario
- M5S 2Z4
- Canada
-
-
- 2 - Introduction
-
- LX is a fast dearchiver/decompressor for the Commodore Amiga. It is
- compatible with LZ, Lhunarc, Lharc, LharcA, and LhA (all for the Amiga), and
- Lharc and LHA for MS-DOS.
-
- LX is the third generation of LZH utility released by Xenomiga Technology,
- following Lhunarc and LZ.
-
- LX is also an extremely small program (~ 16K) which makes it ideal for floppy
- disk users to keep on a terminal disk.
-
- Since LX reads and writes data asynchronously, the speed of the source and
- destination devices (if they are different devices), be they floppy drives,
- hard drives, or CD-ROM's, does not cripple LX as is common with the other
- Amiga archivers.
-
- This makes LX ideal for use in floppy-to-hard drive installation programs.
- In fact, this is one of the purposes for which it was written.
-
-
- 3 - Performance
-
- 3.1 LX speed
-
- LX is, at the time of release, the fastest LZH/LHA dearchiver available for
- the Amiga. It goes without saying that the decompression routines were
- written entirely in highly optimised assembly language.
-
- LX was written with caching microprocessors in mind, and will perform better
- the larger the size of your CPU's cache. LX's decompression code should run
- almost entirely within the cache of the 68040.
-
-
- 3.2 LX/020
-
- LX/020 is a version of LX which has been optimised for the Motorola 68020 and
- later processors in the 680x0 generation.
-
- It has been most optimised for the 68030, since LX was developed on an
- Amiga 3000, although it will run on a 68020. It will not run on a 68000 or
- 68010 machine, however.
-
- The speed increase is reasonably small (approximately 7% on an A3000), but if
- you have a 68020 or better, it makes sense to rename LX020 to LX and use that.
-
-
- 4 - System requirements
-
- LX requires AmigaDOS 2.0 or later to run.
-
- LX/020 requires, in addition to the above, at least a Motorola 68020 CPU.
-
- LX will run on an Amiga with 512 KB of RAM or more.
-
- LX does NOT require arp.library.
-
-
- 5 - Compatibility
-
- LX is intended to be compatible with all other LZH/LHA utilities, and supports
- many of the Amiga-specific extensions to the standard LZH format.
-
- LX can process archive headers of level 0 or 1, but does not process archive
- headers of level 2, since the presence of such headers is essentially
- non-existent on the Amiga, and would only incur additional overhead into
- the program.
-
- Note that LZ 1.92 and earlier can only process archive headers of level 0.
-
-
- 6 - Commands
-
- LX supports the basic extraction command set:
-
- 'e' or 'x' - Extract file(s) from archive
-
- This command is used to extract files from an archive.
-
- If all files are extracted successfully, LX will
-
- EXAMPLES
-
- LX x splat.lzh
-
- Extracts all files from the archive 'splat.lzh' to the current
- directory.
-
-
- LX x splat.lzh ram:
-
- Extracts all files from the archive 'splat.lzh' to ram:
-
-
- LX x splat.lzh ram: boing*
-
- Extracts all files starting with 'boing' to ram:
-
-
- LX x dh1:#?
-
- Extracts all archives ending in '.lzh' or '.lha' on dh1: to the
- current directory.
-
-
- 't' - Test file(s) in archive
-
- This command is similar to extract (above), except that no files are
- created. This command is used to check the integrity of all files in the
- archive.
-
-
- EXAMPLES
-
- LX t splat.lzh
-
- Tests all files in the archive 'splat.lzh'.
-
-
- LX t splat.lzh boing*
-
- Tests all files starting with 'boing' in the archive 'splat.lzh'.
-
-
- 'l' or 'v' - List or view the contents of an archive
-
- This command lists the contents of an archive.
-
- EXAMPLES
-
- LX v splat.lzh
-
- Views all files in the archive 'splat.lzh'
-
-
- LX l splat.lzh
-
- Lists all files in the archive 'splat.lzh'
-
-
- The L command provides output similar to the following:
-
- Original Packed Ratio Date Time Type CRC Name
- -------- ------- ----- --------- -------- ----- ---- ------------
- 1535835 409839 73.3% 21-Feb-93 22:09:10 -lh5- 9A2E RADDiskImage
- -------- ------- ----- --------- --------
- 1535835 409839 73.3% 20-Mar-93 12:57:26 1 file(s)
-
-
- The V command provides output similar to the following:
-
- Original Packed Ratio Date Time Name
- -------- ------- ----- --------- -------- ------------
- 1535835 409839 73.3% 21-Feb-93 22:09:10 RADDiskImage
- -------- ------- ----- --------- --------
- 1535835 409839 73.3% 20-Mar-93 12:57:26 1 file(s)
-
-
- 7 - Options
-
- LX supports similar options to the other LZH utilities:
-
- -a Preserve attributes
- [SET by default]
-
- Causes LX to restore Amiga file protection flags, if a level 1 archive
- header is detected.
-
- The attributes restored are:
-
- r: read
- w: write
- e: execute
- d: delete
- a: archive
- p: pure
- s: script
- h: hidden
-
- If this option is disabled (by using -a0 on the command line), the
- file protection flags are set to '----rwed' when files are extracted.
-
- Note: Archive headers of level 1 identify the operating system on which
- the files were compressed.
-
- On such archives, LX will use '----rwed' if the archive was not
- compressed using Amiga file attributes.
-
- LX will also use '----rwed' if the archive header is level 0.
-
-
- -A Set archive attributes
- [NOT SET by default]
-
- This option causes all files extracted from archives to have the following
- file attributes: '---arw-d'.
-
- If the -a option is also active, then any archives with a level 1 header
- and the Amiga archive identifier, will be restored to the attributes
- specified by the archive. All other files will have their attributes set
- to '---arw-d' as mentioned above.
-
- Thus, in order to ensure that ALL extracted files have the '---arw-d'
- attributes, one must use both the -a0 and the -A option.
-
- One may disable the archive bit ('a') by using the -C option (see below).
-
- For example, in order to ensure that ALL extracted files have the
- '----rw-d' attributes, one must use the -a0 -A -C options.
-
-
- -c Confirm files
- [NOT SET by default]
-
- This option causes LX to prompt you before each file is extracted.
-
- You will be asked the following:
-
- 'SomeFileName': extract? (Yes,No,All,Quit):
-
- Pressing 'Y' will cause the file in question to be extracted.
- 'N' will cause the file in question NOT be extracted
- (LX will skip to the next file in the archive)
- 'A' will cause ALL files from then onwards to be extracted
- (essentially turning off the -c option from then on)
- 'Q' will cause LX to quit immediately
- (without extracting any more files from the archive)
-
- The prompt is hotkeyed; i.e. one does not need to press the
- [<return>] key.
-
-
- -C Clear archive bit
- [NOT SET by default]
-
- By default LX sets the archive bit ('a') on all extracted files
- (for example: '---arw-d') if the archive header is level 0 or does not
- does not carry the Amiga archive identifier.
-
- Specifying this option causes the 'a' bit to be cleared for extracted
- files; for example: '----rw-d'.
-
-
- -E Touch extracted files
- [NOT SET by default]
-
- When this option is specified, all files extracted from archives will have
- their modification date set to the present (as opposed to the date stored
- with the file in the archive).
-
-
- -f Ignore filenotes
- [NOT SET by default]
-
- When this option is specified, LX will not restore filenotes for extracted
- files.
-
-
- -F Fast progress display
- [NOT SET by default]
-
- This option causes LX to use a single line for all files extracted from
- an archive, thus removing the need to scroll the display.
-
- Since, on a fast Amiga, it can take longer to scroll the display than to
- extract some files (especially many small files), the use of this option
- can improve decompression performance.
-
- This option also causes LX to skip the blank line it normally inserts
- between the archive file name and the first file extracted, for a more
- compacted output.
-
- LX does use separate lines (separated by blanks) to display the names of
- the archives as they are processed, however.
-
-
- -l Lower case filenames
- [NOT SET by default]
-
- This option causes the filenames of all extracted files to be converted
- to lower case.
-
- This option and -u are mutually exclusive.
-
-
- -m Disable interactivity
- [NOT SET by default]
-
- This option supresses any prompting by LX.
-
- This option also causes existing files to be automatically overwritten if
- they already exist.
-
- This option is automatically enabled if standard input is not available
- to LX.
-
-
- -p Pause after loading
- [NOT SET by default]
-
- This option causes LX to wait for the user to press any key before
- performing any commands.
-
- Thus could be useful for users using floppy disks. LX is small enough
- to fit into RAM quite easily, however.
-
-
- -P Set task priority
- [NOT SET by default]
-
- This option causes LX to set its task priority to the provided value.
- For example: -p-1 causes LX to run at task priority -1.
-
- This can be useful when decompressing data in the background.
-
-
- -q Quiet mode
- [NOT SET by default]
-
- This option suppresses all output from LX.
-
- It also disables interactivity (like -m), and causes files to be
- overwritten automatically if they already exist.
-
-
- -u Upper case filenames
- [NOT SET by default]
-
- This option causes the filenames of all extracted files to be converted
- to upper case.
-
- This option and -l are mutually exclusive.
-
-
- -Qs Do not activate * wildcard
- [NOT SET by default]
-
- By default, LX sets the AmigaDOS 2.0 WILDSTAR flag, which enables the
- asterisk (*) to be used in pattern matching. LX does not restore this
- flag to its original state upon exit.
-
- The -Qs option causes LX not to set the WILDSTAR flag; this means that
- unless you have set the WILDSTAR flag yourself, LX will not recognise
- the asterisk (*) as a wildcard character.
-
-
- 8 - The history behind LX
-
- The original Lharc (MS-DOS) was written by Haruyasu Yoshizaki, and uses a
- compression scheme named "-lh1-".
-
- In 1989, I took the public domain source code, "lzhuf.c", and rewrote sections
- of it in assembly language to produce Lhunarc, the fastest Amiga LZH unarchiver
- at that time. This was my first attempt at using 68000 assembly language; in
- fact, part of the purpose of Lhunarc was for me to teach myself 68000 assembly
- language.
-
- In early 1990 I rewrote Lhunarc from scratch in a much more optimised form,
- having learned an almost unimaginable number of assembly language tricks and
- optimisations since Lhunarc. I also added the compression algorithms to the
- program, so that it would be a more complete archiving package. The first
- version of this program, named LZ 0.80, was released in May 1990, and was much
- faster than Lhunarc or any other compatible utility.
-
- In late 1990 I obtained the source code to the -lh5- compression routines
- (AR002.ZIP) and used the new algorithms to create a hybrid -lh1-/-lh5-
- algorithm compatible with the -lh1- compression scheme.
-
- Essentially, AR's lazy match evaluation and match finding algorithms were used.
- This increased compression by a few percent, and sped up compression by a
- factor of almost 3. This version of LZ was released as version 1.0 in
- February 1991, and allowed LZ to retain its lead in the compression field.
-
- I added the -lh5- compression scheme to LZ soon after, in version 1.80.
-
- By mid 1991, LZ 1.92 was released; the latest version of LZ to date. At that
- point in time, I switched all of my efforts to my commercial Bulletin Board
- Software package; Xenolink.
-
- At the end of 1991, LZ was finally surpassed by another program; LhA, by
- Stefan Boberg. Like LZ, LhA supported both -lh1- and -lh5-, but sported many
- more features as well as faster compression and decompression. It also used
- the -lh1-/-lh5- hybrid compression scheme pioneered by LZ.
-
- In December 1991, I resdesigned and rewrote the decompression algorithms of LZ
- from scratch, with the intention of releasing a significantly faster
- decompression-only program named LX. However, Xenolink was taking up so much
- of my software development time, that LX was put on the back-burner at this
- point.
-
- In January, 1993, I took off a couple of weeks off from Xenolink development
- to complete the remaining portions of LX, and this is the program you are
- looking at now, more or less; I just never got around to writing this document
- until now (April!).
-
-
- 9 - Registered owners of LZ
-
- A big thank-you to all registered users of LZ. Had it not been for the
- extremely positive response to LZ, I would not have started writing LX in the
- first place.
-
- In fact, I am looking into the possibility of writing a much more compressive
- archiving program; more compressive than ARJ 2.39b or PKZip 2.04.
-
- However, that'll have to wait, since all of my efforts will continue to be
- concentrated in Xenolink for the next long while.
-