home *** CD-ROM | disk | FTP | other *** search
- ┌──────────────────────────────────────────────────────────────┐
- │ NOTICE! NOTICE! NOTICE! NOTICE! │
- │ │
- │ IF YOU HAVE A COPY OF VERSION 2.20 OF LZESHELL, PLEASE │
- │ DISCARD IT IMMEDIATELY. UNFORTUNATELY, THAT VERSION HAS │
- │ A DEFECT THAT CAUSES .COM FILES TO BE DESTROYED WHEN YOU │
- │ RUN THE PROGRAM TO COMPRESS THEM. THE PROBLEM HAS BEEN │
- │ CORRECTED WITH THIS VERSION (3.00). I APOLOGIZE FOR THE │
- │ ERROR. │
- │ Pete Petrakis │
- └──────────────────────────────────────────────────────────────┘
-
- LZESHELL.EXE
- Version 3.00
-
- May 5, 1990
-
- ┌───────────────────────────────────────────────────────────────────┐
- │ An English language shell program for automating the use of │
- │ Fabrice Bellard's EXE file compression utilities: LZEXE for │
- │ compressing EXE files; UPACKEXE for unpacking EXE files that │
- │ have been packed with Microsoft's EXEPACK utility; and COMTOEXE │
- │ for converting COM files to EXE files so they can be compressed. │
- └───────────────────────────────────────────────────────────────────┘
-
- (This version of LZESHELL is very similar to version 2.10: it
- integrates three of Bellard's file compression utilities and
- can also run Kuo's UNLZEXE to decompress files that have been
- compressed with LZEXE. The major new feature that has been
- added is checking the attributes of the file to be processed.
- If the file is read-only, its attributes are automatically
- changed so the compression can proceed.)
-
-
- AUTHOR: Pete Petrakis, CIS 76555,1175
-
-
- DESCRIPTION
-
- This program is designed to work only with version 0.91 of LZEXE, a utility
- that can compress EXE files substantially while leaving them executable. The
- compressions LZEXE achieves are usually in the range of 30 to 40 percent,
- although they are often higher than that. Programs compressed with LZEXE
- decompress themselves when they are run. The decompression time is negligible.
- LZEXE was written by Fabrice Bellard, of Grabels, France and is still under
- development. Versions already released remain free, but Mr. Bellard has
- transferred his rights to the program to a commercial software company.
-
- Version 0.91 of LZEXE overcomes version 0.90's problem of excessive load
- memory size for compressed files. The compressed files now take about the same
- amount of memory to load as they did before compression. For this reason my
- previous shell program LZEFIX, which ran Microsoft's EXEMOD header utility
-
- -1- to reduce the excessive load sizes created by version 0.90, should not be used
- with version 0.91. It isn't needed. In fact it could cause problems
- (including having to reboot your system) if you try to use it with this newer
- version of LZEXE. Accordingly, LZESHELL makes no adjustment to the headers of
- compressed EXE files.
-
- Unlike the previous version of LZEXE, version 0.91 prompts, in French, for
- user input, depending on what it finds out about the file you have asked it
- to compress. LZESHELL translates the prompts into English (the translation
- is not literal) and feeds your responses to LZEXE.
-
- That's not all it does, however. LZESHELL version 3.00 automates the use
- of three of Bellard's utilities: LZEXE v0.91, UPACKEXE v1.00; and
- COMTOEXE v1.01. In addition, it can also run Kuo's UNLZEXE to decompress
- files that have been compressed with either version 0.90 or 0.91 of LZEXE.
-
- UPACKEXE unpacks EXE files that have been compressed with Microsoft's
- EXEPACK utility so LZEXE can do an even better compression job on them.
- COMTOEXE converts .COM files to .EXE files so they can be compressed with
- LZEXE. The previous versions of LZESHELL (1.00 and 1.01) were designed to run
- LZEXE and UPACKEXE, but not COMTOEXE; that program had to be run separately.
- Version 3.00 runs all three automatically.
-
- Version 0.91 of LZEXE can detect files that have been EXEPACKed. When it
- does, it tells you so and asks whether it should continue the compression or
- quit so you can run UPACKEXE first. In that situation, you would normally end
- up running two programs manually. When you use LZESHELL, however, you don't
- have to quit if you want to use UPACKEXE. LZESHELL translates the prompt into
- English, and if your response is that you want to unpack the file before
- compressing it, it immediately runs UPACKEXE. Then it runs LZEXE again
- to complete the compression. In other words, you don't go back to DOS until
- both programs have been run.
-
- If you run LZEXE alone and tell it to compress a COM file (using the
- command: LZEXE filename.COM), it won't do it. Instead it will quit, with
- advice to convert the file to an EXE first with COMTOEXE. Again this
- means running two programs manually. If you use LZESHELL, however, the
- conversion of the COM file to an EXE file by COMTOEXE proceeds automatically,
- followed automatically by compression of the EXE version by LZEXE.
-
- A point to remember about COMTOEXE is that it doesn't take your word that
- the file is a COM file, because EXE files sometimes mistakenly get named
- COM (such files will still run). Instead, COMTOEXE checks the file header
- to see what kind of executable file it really is. If it sees the mark of an
- EXE file there, it prints a warning and stops. When you are running it
- through LZESHELL, however, the warning causes the falsely named *.COM file to
- be renamed *.EXE, and the compression with LZEXE then proceeds automatically.
-
- In summary, the purpose of LZESHELL is to take control of all of these fine
- utilities. You only need to run one program, LZESHELL, and it runs the others
- as needed.
-
-
- -2- Both UPACKEXE and LZEXE save source files as backups, changing their names
- to *.OLD. This can create a problem when you run UPACKEXE then run LZEXE.
- The *.OLD backup file saved by UPACKEXE will be replaced by the *.OLD file
- saved by LZEXE -- you end up losing the EXEPACKed *.OLD file. LZESHELL
- eliminates this problem by immediately renaming the *.OLD file produced by
- UPACKEXE to *.OPK. This leaves you with two backup files -- one for the
- original EXEPACKed file (*.OPK) and one for the unpacked file (*.OLD). The
- third file will be your LZEXE-compressed EXE file. If the compressed file
- works, you can remove both backup files from your disk. Otherwise, you can
- erase the compressed EXE file and rename one of the backups to *.EXE (probably
- the EXEPACKed one, *.OPK, since it's the original and it's smaller).
-
- LZESHELL also generates English prompts for another situation that LZEXE
- v.0.91 detects, namely the use of overlays by the EXE file. Here you are
- given the choice of aborting the compression or continuing it (taking the
- chance that the compressed file won't work). UPACKEXE v1.00 detects "internal"
- overlays (I'm not sure what those are), but in that situation it only issues
- a warning and requires no user choices. LZESHELL translates the warning into
- English.
-
- LZESHELL adjusts the timestamp on derivative files so they are the same as
- in the original file. In contrast, LZEXE, UPACKEXE, and COMTOEXE, when run by
- themselves, always give the new file the current date, which some people feel
- is a shortcoming since it obliterates a useful identifier.
-
- Another feature of LZESHELL is ability to run a new program from Japan
- called UNLZEXE, which decompresses files that have been compressed by LZEXE
- (v0.90 or v0.91). Ability to run that program was included for just one
- reason: setting the timestamp of the newly decompressed file to what it was
- in its compressed form. If you run UNLZEXE by itself, the new file will
- always get the current date and time. If you run it through LZESHELL,
- however, it gets the same date and time as the source file.
-
- Finally, a new feature has been added to correct a deficiency of previous
- versions of LZESHELL, which could not handle read-only executable files.
- Version 3.00 routinely checks the attributes of the file it's processing,
- and if it finds it is a read-only file it automatically changes it to
- read-write and proceeds from there. Conversion back to read-only at the end
- of the process is purposely left out, because you will need to erase the
- compressed file if it doesn't work.
-
-
- RUNNING THE PROGRAM
-
- LZESHELL, LZEXE (v.0.91), UPACKEXE (v1.00), and COMTOEXE (v.1.01), UNLZEXE
- (v. 0.20 or 0.30), or their directories, should be on your system's path (use
- the DOS PATH command to do this, preferably in an AUTOEXEC.BAT file). This
- will allow you to move freely from directory to directory to compress or
- decompress files. You should always go to the directory of the file you want
- to process so your source and derivative files can stay together and receive
- the same timestamp as the original.
-
-
- -3-Compressing EXE files:
-
- To compress an EXE file, type the following at the DOS prompt:
-
- LZESHELL [EXE file to be compressed]
-
- Use of the .EXE extension is optional. If you don't use an extension, LZESHELL
- will assume it's an EXE file.
-
-
- Compressing COM files:
-
- To compress a COM file, type the following at the DOS prompt:
-
- LZESHELL [filename.COM]
-
- Notice that you have to use the .COM extension on the command line if the
- file you want to compress is that type. That extension acts as a flag that
- tells LZESHELL that the first thing it must do is run COMTOEXE to convert
- the file to an EXE file before compressing it with LZEXE. If you don't
- use the COM extension, you will get a "file not found" error (unless you
- happen to have an EXE file with the same first name).
-
- As noted, an EXE file that has been erroneously named *.COM will not be
- processed by COMTOEXE alone. However, the message that COMTOEXE prints in
- that situation signals LZESHELL to rename the file to *.EXE, then run LZEXE to
- compress it.
-
-
- Decompressing EXE files:
-
- To decompress an EXE file that has been compressed with LZEXE, type the
- following at the DOS prompt:
-
- LZESHELL [compressedExefile] /u
-
- The /u switch tells LZESHELL to run Kuo's UNLZEXE. Initally the decompressed
- file is named $TmpFil$.EXE and the original compressed file retains its name.
- However, LZESHELL renames these files just before quitting. The original
- compressed file gets the extension .OLZ while $TmpFil$.EXE ends up with the
- name of the original compressed file. Both files are given the same date
- and time.
-
-
- DISPLAYS
-
- Translated warnings and prompts will appear in a box on your screen. At
- the end of the processing a "scorecard" will appear showing you the file
- size before and after compression or decompression; the size change in bytes;
- and, in the case of compression, the percent reduction.
-
-
-
- -4-DISTRIBUTION
-
- LZESHELL may be freely distributed provided it's not modified and no money
- is charged for it. Please be sure this document accompanies it. Since
- LZESHELL is useless without the programs it is designed to work with I urge you
- to distribute them, too. But I ask you not to bundle the programs of separate
- authors into a single upload file, however convenient that may seem to you,
- and even if they complement each other. For one thing, it's inconsistent with
- good BBS management, creating a cataloguing nightmare for sysops. Furthermore,
- the BBS may already have one or more of the programs in your upload bundle, so
- disk space gets wasted. Most important, the loss of programs' separate file
- identities can make it extremely difficult, if not impossible, for their
- authors to get earlier and perhaps flawed versions replaced with better ones.
-
-
- DISCLAIMER
-
- Pete Petrakis accepts no responsibility or liability for any mishap
- resulting from the use of LZESHELL. To protect yourself against loss of
- valuable files you are advised to keep backups in a safe place or check the
- performance of processed files thoroughly before discarding their backups.
-
-
- NOTE: The author of LZEXE recently transferred all rights to the program to
- a French software company, which plans to release a commercial version. This
- has no effect on the free versions that Mr. Bellard has already released, but
- it does mean that version 0.91 is the last free version of this fine program
- that we will see. Any future revisions of LZESHELL will therefore consist
- of improvements to enhance its operation with version 0.91 of LZEXE and its
- associated utilities. These will initially be posted on the IBMSYS forum
- of Compuserve.
-
- Pete Petrakis
- 1236 River Bay Road
- Annapolis, Maryland 21401
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- -5-