home *** CD-ROM | disk | FTP | other *** search
/ ProfitPress Mega CDROM2 …eeware (MSDOS)(1992)(Eng) / ProfitPress-MegaCDROM2.B6I / UTILITY / FILE / COMPFILE.ZIP / COMPFILE.TXT
Encoding:
Text File  |  1991-01-12  |  30.7 KB  |  528 lines

  1.  
  2.             =======================================================
  3.             COMPRESSING YOUR EXECUTABLES --- SOMETHING FOR NOTHING?
  4.             =======================================================
  5.                                 by Dickford Cohn
  6.  
  7.  
  8. Ah yes, the current "rage" in PC-land:  EXECUTABLE FILE COMPRESSION!  Does
  9. it work?  Yes!  Very well!  Is it "something for nothing?"  Well, you be the
  10. judge --- in my experience, it is VERY useful.  This article is intended to
  11. "corral", in one place, most of the "bits and pieces" of what is known about
  12. these programs and to offer performance comparisons and operating tips gleaned
  13. from those who have used them.  This article centers upon the THREE most common
  14. methods available to us --- those that I've used and tested.
  15.  
  16. --WHAT IS EXECUTABLE FILE COMPRESSION?
  17. It is simply a method by which an EXECUTABLE file (.COM or .EXE) is made small-
  18. er on disk (outwardly similar to PKZIP).  If you have a lot of executables, you
  19. can save substantially on disk space.  When a file is "compressed" a small addi-
  20. tion is made to the code that UNCOMPRESSES the executable to "full size" when it
  21. is loaded into RAM.  It's that simple (yeah, the programming is a LOT more
  22. involved than that!)
  23.  
  24. --IS EXECUTABLE FILE COMPRESSION SOMETHING I CAN USE?
  25. It depends on how you use your system and what you have on it.  For example, if
  26. your PC emulates your office PC in that you have 50-60 executables and you pri-
  27. marily have spreadsheet/word processing programs on your hard disk, an execut-
  28. able file compressor would probably not be worth the expense of a download.
  29. On the other hand, if your system has LOTS of executables, executable file com-
  30. pression is quite effective in re-capturing valuable disk space.  In my own case
  31. I have almost 950 executables that, at normal size, take up almost 25Meg of disk
  32. space.  I have compressed over 500 of these executables, re-capturing almost
  33. 9Meg of disk space --- representing about 15% of my TOTAL OCCUPIED DISK SPACE!
  34. TWO IMPORTANT NOTES:  (1) Executable file compression is NOT a replacement for
  35. other disk management techniques (i.e. good housekeeping):  It IS an effective
  36. tool to add to your arsenal.  (2) Executable file compression is NOT A GOOD IDEA
  37. in the office setting --- unless YOU are SOLELY responsible for your PC:  In
  38. the hands of the uninitiated, these programs can be dangerous.
  39.  
  40. --IS EXECUTABLE FILE COMPRESSION DANGEROUS?
  41. ANY program that can OVERWRITE an existing file is dangerous!  You MUST have a
  42. BASIC UNDERSTANDING of what you are doing and employ the standard safeguards
  43. that ANYONE would employ (i.e. backups) when dealing with programs that have
  44. this capability.  With that in mind, it must be said that ALL the programs des-
  45. cribed here in detail are thoughtfully designed and have certain safeguards
  46. built in.  However, there is NO EXCUSE for NOT READING THE DOCUMENTATION --- it
  47. is BRIEF and CONCISE.
  48.  
  49.                      =====================================
  50.                      ADVANTAGES OF COMPRESSING EXECUTABLES
  51.                      =====================================
  52.  
  53. There are TWO distinct advantages to compressing executable files:
  54.  
  55.   1. You can achieve a substantial savings in disk space by using these util-
  56.      ities: Typically, you can re-capture 35-40% of the disk space now occupied
  57.      by your executables.  You have to determine if the OVERALL space gained is
  58.      worth the effort.
  59.  
  60.   2. A less-heralded but equally significant benefit of executable compression
  61.      is that compression (a form of encryption) offers some protection against
  62.      viruses that overwrite program code.  Since the "file header" is relocated,
  63.      the virus can't find it (to attach itself); hence the virus cannot over-
  64.      write code.  However, the executable is still "externally infected" --- it
  65.      CAN load the little critter into RAM, ready to "pounce" on some uncompress-
  66.      ed executable.  At least, your executable is not TRASHED.
  67.  
  68.                             ======================
  69.                             GENERAL TIPS FOR USAGE
  70.                             ======================
  71.  
  72.  
  73.   1. DO NOT COMPRESS DOS's COMMAND.COM, or ANY CRITICAL DOS FILES --- if you
  74.      don't know which DOS files are CRITICAL, don't compress ANY OF THEM. (Watch
  75.      for my upcoming article, HARD DISK MANAGEMENT TIPS, which will include a
  76.      section on DOS files you can "dump" or replace with "modern" equivalents:
  77.      Saves about 300k on your disk!)
  78.  
  79.   2. If you choose to compress executables at all, pick ONE method and stick
  80.      with THAT ONE.  The confusion caused by "mixing 'em up" is not worth it.
  81.  
  82.   3. When compressing executables for the first time, or experimenting, create
  83.      a separate directory and COPY your "target" executable to it (this
  84.      precludes damage caused by "typos" at the command line and such --- if you
  85.      screw up, all you have to do is RE-COPY the file and try again.)  When you
  86.      are satisfied with the result, RENAME the ORIGINAL executable, and copy
  87.      the COMPRESSED executable to its original directory.  Now, TEST the "new"
  88.      executable --- call up your program and see if ALL of its functions work.
  89.      I mention this because SOME programs will compress just fine (i.e. with NO
  90.      WARNINGS from the compression program) and yet they MAY NOT work properly,
  91.      if AT ALL.
  92.  
  93.   4. Some programs have a companion "configuration" program that WILL NOT WORK
  94.      on a compressed executable.  Just UNCOMPRESS the executable, re-configure
  95.      (via the config program) what you want and then RE-COMPRESS the executable.
  96.  
  97.  
  98.                                 =================
  99.                                 WHAT'S OUT THERE?
  100.                                 =================
  101.  
  102. At this writing, I am aware of EIGHT executable file compression programs:
  103.  
  104.    - AXE         ...A program from Systems Enhancement Associates.  This is
  105.                     a commercial software package ($65) that, outwardly at
  106.                     least, offers no significant advantages over other methods
  107.                     (see COMPARISON) and is NOT reviewed here.
  108.  
  109.    - EXEPACK     ...A MicroSoft product, NOT generally available but packaged
  110.                     with certain software (MASM 5.1).  Although, apparently the
  111.                     FIRST such program of this type (1986 copyright), it is NOT
  112.                     in the same league as those reviewed here, although you are
  113.                     LIKELY to encounter this method with some executables.
  114.  
  115.    - DIET        ...A program by the author of LEXEM (functions like PKZIP and
  116.                     apparently in wide usage in Japan).  DIET is reviewed here.
  117.  
  118.    - LEXEM       ...Not currently distributed in the U.S.  (Likewise, you are
  119.                     NOT likely to encounter files compressed with this method)
  120.  
  121.    - LZEXE       ...By Fabrice Bellard; the first generally available program of
  122.                     this type --- reviewed here.
  123.  
  124.    - PKLITE      ...Shareware from PKWARE ($46) --- reviewed here.
  125.  
  126.    - SHRINK      ...An experimental method, not in the same class as those re-
  127.                     viewed but interesting to those who may want to delve into
  128.                     the "mysteries" of compression.
  129.  
  130.    - TINYPROG    ...Shareware from Tranzoa Associates.  Only slightly more eff-
  131.                     ective than EXEPACK: No UNCOMPRESS available.  Not reviewed.
  132.  
  133.  
  134.                               ====================
  135.                               PROGRAM DESCRIPTIONS
  136.                               ====================
  137.  
  138.  
  139.  +------------+ The "newest" of the three tested, by Teddy Matsumoto, the author
  140.  | DIET10.EXE | of LEXEM an "archive" program used in Japan.  This program app-
  141.  +------------+ ears well written -BUT- by the authors own subtle admonition, it
  142.                 is experimental.  It SEEMED to work slightly better than the
  143.                 other two -BUT- and this is a big BUT:  IT DOES NOT CHECK FOR
  144.                 EXECUTABLES THAT USE OVERLAYS --- IT JUST COMPRESSES THEM!
  145.                 YOU WILL NOT BE ABLE TO RESTORE THE EXECUTABLE WITH THE '-R'
  146.                 SWITCH, EITHER --- THE FILE IS DESTROYED!  (That's WHY you
  147.                 maintain back-ups).  The program DOES ALLOW you to make back-ups
  148.                 however, so you should be safe.  When I attempted to compress
  149.                 a 1 Meg+ executable (that I knew used overlays), the error that
  150.                 came up was "insufficient memory" (more about this later).
  151.                 DIET also compresses using wildcards and WILL COMPRESS virtually
  152.                 any file EXCEPT one that is already compressed by another
  153.                 program.
  154.         PRICE:  The current version on EXEC-PC (DIET10.ZIP) is              **FREE**
  155.  
  156.  +------------+ Developed by Fabrice Bellard (current version is 0.91, backward
  157.  |  LZEXE.EXE | compatible with version 0.90).  This program was the FIRST
  158.  +------------+ generally available executable file compressor --- and is the
  159.                 most widely used (see SUPPORT PROGRAMS).  It also is programmed
  160.                 with some forethought:  For example, it can recognize the
  161.                 MicroSoft EXEPACK compression method in executables; it can
  162.                 UN-compress EXEPACK'd files and RE-compress them with it's own
  163.                 method (the savings is significant).  It's error prompts work
  164.                 as advertised -BUT- they're too polite!  For example, if you
  165.                 decide to go ahead and compress an executable that uses over-
  166.                 lays, you'll NEVER restore it with the un-compressor UNLZEXE.EXE
  167.                 However, since LZEXE DOES NOT OVERWRITE your ORIGINAL FILE, you
  168.                 are safe!  LZEXE copies your original file to an ".OLD" exten-
  169.                 sion:  You simple erase the "bad .EXE" and RENAME the ".OLD"
  170.                 file to an ".EXE" extension.  The original program's prompts are
  171.                 in French (there is a program in English --- ENGLZEXE.ZIP):  I
  172.                 would recommend LZESHELL to sensibly use LZEXE.  LZEXE also com-
  173.                 presses .COM files, but it first converts them to .EXE files and
  174.                 THEN compresses them.  This measurably slows down the process
  175.                 AND you CANNOT restore "converted" .EXE to .COM files (the .OLD
  176.                 file is STILL created, though).  This program comes with LZEXE
  177.                 (the compressor), UPACKEXE.EXE (unpacks EXEPACK'd files) and
  178.                 COMTOEXE.EXE (converts .COM files to .EXE).  You MUST also have
  179.                 UNLZEXE.EXE, by Kou Kurizono, to UN-compress LZEXE'd files!
  180.         PRICE:  The current version on EXEC-PC (LZEXE91.ZIP) original French
  181.                 version -OR- (ENGLZEXE.ZIP) English version, are        **FREE**
  182.  
  183.  +------------+ Developed by PKWARE (the purveyors of PKZIP, et al) this program
  184.  | PKLITE.EXE | is a textbook example of "completely developed" software.
  185.  +------------+ Unlike the other two examples, there are no "cliffs" to fall
  186.                 over; no unforgiving "surprises".  Performance was slightly less
  187.                 than the other two overall --- the difference is nominal.  The
  188.                 elements I liked best are: This is a COMPREHENSIVE package, fea-
  189.                 turing a logical selection of command line options; it IS
  190.                 INTUITIVE; -AND- unlike the other two, it could COMPLETELY RE-
  191.                 CONSTRUCT an executable with overlays that it had COMPRESSED!
  192.                 This program compresses (and UN-compresses) .COM and .EXE only.
  193.                 PKLITE WILL NOT COMPRESS Windows Executables (A SAFETY FACTOR).
  194.         PRICE:  The current version on EXEC-PC (PKLTE103.EXE) costs      **$46**
  195.  
  196.  
  197.  
  198.  
  199.  
  200.                                 ===================
  201.                                 SUPPORTING PROGRAMS
  202.                                 ===================
  203.  
  204.      The following is a PARTIAL listing of programs that provide support for the
  205.      compression programs above (files on EXEC-PC):
  206.  
  207.       ∙  LZESHL21.ZIP - Excellent English Language shell for LZEXE 0.91 ---
  208.                         enables and TRANSLATES ALL functions of LZEXE from
  209.                         within.   By Pete Petrakis                     **FREE**
  210.  
  211.       ∙  DRX100.ZIP   - User-configurable shell, provides directory/subdirectory
  212.                         display of COMPRESSED/UNCOMPRESSED executables (AXE,DIET
  213.                         PKLITE, EXEPACK, LZEXE and TINYPROG). Allows you to sel-
  214.                         ect COMPRESS/UNCOMPRESS method:  Offers "point-n-shoot"
  215.                         file selection.  By Raymond T. Kaya             **FREE**
  216.  
  217.       ∙  CHK4.ZIP     - Re-directable compressed file reporter, with many report
  218.                         options.  Now "sees" ALL compressed executables on the
  219.                         entire drive, by subdirectory.  By John Land    **FREE**
  220.  
  221.       ∙  UNLZEXE5.ZIP - REQUIRED FOR LZEXE. UN-compresses both versions of LZEXE
  222.                         (Vers .090/.091).  By "Kou" Kurizono            **FREE**
  223.      Note that there are OTHER programs available, but these are the ones I've
  224.      used, so I can attest to their reliability:   They're all EXCELLENT!
  225.  
  226.                               =======================
  227.                               PERFORMANCE COMPARISONS
  228.                               =======================
  229.  
  230.      The test data shown in the table(s) below are relative, and by no means,
  231.      exhaustive:  Timing was performed with a Turbo C++ shell that converts
  232.      standard "timer ticks" to fractions of a second.  I must stress that
  233.      since you're likely to use these programs only once on a given executable,
  234.      execution TIME is NOT A SIGNIFICANT FACTOR.  Programs were also tested to
  235.      see if the various safeguards outlined in the DOCS actually worked:  I'm
  236.      happy to report that they performed flawlessly in ALL cases.
  237.  
  238.      File/Original Size
  239.    -----------------------   ....Compressed with....     ...UNcompressed with..
  240.      QWIK.EXE/8873 Bytes     DIET    LZEXE    PKLITE     DIET   UNLZEXE  PKLITE
  241.    -----------------------
  242.           COMPRESSED SIZE    4937     5070      5164      --       --      --
  243.  
  244.            TIME (seconds)     1.8      1.3       1.9      1.9      2.8     1.9
  245.  
  246.           SIZE REDUCTION:     44%      43%       42%
  247.    ============================================================================
  248.    -----------------------   ....Compressed with....     ...UNcompressed with..
  249.      FW.EXE/26510 Bytes      DIET    LZEXE    PKLITE     DIET   UNLZEXE  PKLITE
  250.    -----------------------
  251.           COMPRESSED SIZE    20236   21131     20970      --       --      --
  252.  
  253.            TIME (seconds)     1.9      2.6       2.8      2.2      3.8     2.8
  254.  
  255.           SIZE REDUCTION:     24%      20%       21%
  256.    ============================================================================
  257.  -------------------------   ....Compressed with....     ...UNcompressed with..
  258.    CSHOW1.EXE/89904 Bytes    DIET    LZEXE    PKLITE     DIET   UNLZEXE  PKLITE
  259.  -------------------------
  260.           COMPRESSED SIZE    53584   52211     55572      --       --      --
  261.  
  262.            TIME (seconds)     3.0      8.6       9.3      3.1      5.3     4.5
  263.  
  264.           SIZE REDUCTION:     40%      42%       38%
  265.  
  266. PERFORMANCE COMPARISONS (Continued)
  267.  
  268.  -------------------------   ....Compressed with....     ...UNcompressed with..
  269.    TURBO.EXE/156321 Bytes    DIET    LZEXE    PKLITE     DIET   UNLZEXE  PKLITE
  270.  -------------------------
  271.           COMPRESSED SIZE   107350   110398   107765      --       --      --
  272.  
  273.            TIME (seconds)     4.5     16.8      22.9      4.1      6.1     6.2
  274.  
  275.           SIZE REDUCTION:     31%      29%       31%
  276.  ==============================================================================
  277.  SUMMARY:
  278.  
  279.   Average Time:(Secs/Kbyte) .0398    .1041     .1310
  280.  
  281.   Average Size Reduction:     34%      33%       32%
  282.                           ==============================
  283.  
  284.   As you can see by this modest "test", ALL of these units performed about the
  285.   same --- differences are negligible.  Overall, DIET was nominally "quicker"
  286.   AND compressed more "tightly" (for you performance enthusiasts).  It WAS
  287.   INTERESTING to NOTE that the effectiveness of the compression is apparently
  288.   related to the development method (programming language) of the executable.
  289.   Note, for example, the DIFFERENCE in the SIZE REDUCTION between QWIK.EXE and
  290.   FW.EXE. I KNOW that FW.EXE is programmed entirely in ASSEMBLER, while QWIK.EXE
  291.   is programmed in Turbo C++:  I DON'T KNOW enough about the technical aspects
  292.   of compression to comment intelligently on why this happens.  One other item
  293.   was noted:  Compressed executables do SEEM to take a slight bit longer to
  294.   do their thing --- anywhere from a fraction of a second to three seconds:
  295.   This on a 16Mhz PS/2 --- the differential is GREATER on slower machines:
  296.   (When tested on an IBM "Turbo" XT (8Mhz) --- execution time is proportionately
  297.   slower).  During the tests, PKLITE was used with the "create backup file"
  298.   switch ON (strangely, it seemed to work faster that way).  DIET was used
  299.   BOTH ways (create backup/just overwrite) with no apparent difference in time.
  300.  
  301.                             ======================
  302.                             COMPARISON OF FEATURES
  303.                             ======================
  304.  
  305.                                         DIET          LZEXE          PKLITE
  306.                                         ------        ------         ------
  307.  √-Tests for/Warns of Executables
  308.      that use OVERLAYS                  NO(1)         Yes(1)         Yes(1)
  309.  √-Indicates File Already Compressed    NO(2)         Yes(2)         Yes(2)
  310.  √-Identifies Compression Method        NO(2)         Yes(2)         Yes(2)
  311.  √-Safeguards Against Compressing
  312.      WINDOWS Executables                NO             NO            Yes
  313.  √-Restores Compressed Executables
  314.      that use OVERLAYS                  NO             NO            Yes
  315.  √-Automatic Back-Up of Original        NO             Yes           NO
  316.  √-Back-Up Option (Switch)              Yes            NO            Yes
  317.  √-Compresses Files OTHER than
  318.      Executables                        Yes(3)         NO            NO
  319.  √-Compresses .COM and .EXE             Yes            Yes(4)        Yes
  320.  √-Compresses ANY SIZE File             NO(5)          Yes           Yes
  321.  √-UN-compresses Files it
  322.      Compresses                         Yes            NO(6)         Yes
  323.  √-Support                            Limited        Limited         FULL
  324.  √-Documentation                      Good(7)        Good(7)         Excellent
  325.  
  326.  
  327. NOTES.........................................................................
  328.  (1) Both PKLITE and LZEXE warn of files using overlays: DIET just OVERWRITES
  329.      the TARGET file --- you MUST SPECIFY the "create backup" ('-O') option
  330.      on the command line.  This is a potentially fatal flaw with DIET 1.0!
  331.  
  332.  
  333. NOTES (Continued).............................................................
  334.  (1a)K. Okubo (on CIS) insists that DIET DOES NOT COMPRESS executables that use
  335.      overlays --- that has NOT been my experience.
  336.  (2) DIET and PKLITE simply state "file cannot be compressed" --- LZEXE can
  337.      detect files compressed with EXEPACK, un-compress them and re-compress
  338.      them with its own method: A valuable option with some commercial software.
  339.      PKLITE now has a little utility that WILL identify its own compression
  340.      method --- NONE of these utilities can identify compression methods OTHER
  341.      than their own.  (The shell DIRX takes up the slack here).
  342.  (3) DIET can compress ANY file, executable or otherwise.  HOWEVER, there is no
  343.      visual indicator (e.g. a .DIE extension) to tell you that they ARE com-
  344.      pressed (they are NOT usable in their compressed state --- they must be
  345.      "manually" uncompressed, first).  I'm hard pressed to come up with a use
  346.      for this option:  I suppose you COULD compress entire subdirectories that
  347.      were seldom used, but this could get to be tricky; particularly if you
  348.      moved the files to another directory or to diskette.  PKZIP is much more
  349.      useful in this regard than DIET -and- more intuitive.
  350.  (4) LZEXE first must convert .COM files to .EXE files, slowing down the process
  351.      of compression (I would "guesstimate" that it would be roughly double the
  352.      time shown in the "time trials" but remember that .COM files are limited to
  353.      64k in size, so again, time is NOT significant).  Also, you must remember
  354.      that you cannot convert COMTOEXE'd .EXE files back to .COM!
  355.  (5) DIET apparently differs from the other two in that it seems to bring the
  356.      ENTIRE target file into RAM --- if the file size exceeds available memory,
  357.      DIET produces an "insufficient memory" message and does not execute.  Note
  358.      that PKWARE's file WHATSNEW.103 offers another potential explanation.
  359.  (6) In order to UN-compress LZEXE'd files, you MUST use UNLZEXE.EXE (see
  360.      SUPPORTING PROGRAMS), which is NOT bundled with LZEXE.EXE
  361.  (7) Documentation runs the gamut:  The DOCS for DIET are GOOD but I don't
  362.      feel they adequately warn of the pitfall of compressing files with
  363.      overlays:  In fact, the DOCS are ebullient and enthusiastic (I would be,
  364.      too, if I had written the program).  LZEXE's original DOCS are in French,
  365.      so they are of limited value, at best.  There IS an ENGLISH version on
  366.      EXEC-PC that you may want to download.  PKLITE's documentation is the
  367.      usual THOROUGH job, filled not only with specifics about PKLITE, but also
  368.      file compression in general and even compares PKLITE to LZEXE.  It is
  369.      understandably biased:  More significantly, it is VERY informative.
  370.  
  371.  SUPPORT - Support for DIET consists of a CompuServe ID (in the documentation)
  372.            to which you can address correspondence (E-Mail).  To the best of my
  373.            knowledge, you can't contact the author of LZEXE at all.  PKWARE
  374.            provides FULL SUPPORT for all its REGISTERED software and operates
  375.            its own BBS.  There are a considerable number of FREE/SHAREWARE
  376.            packages that offer additional support for ALL these programs.
  377.  
  378.                              ========================
  379.                              A WORD ABOUT OVERLAYS...
  380.                              ========================
  381.  
  382.   Well, you've seen the mention of "...executables that use overlays" throughout
  383.   this text --- THAT IS INTENTIONAL:  Quite a bit of today's commercial software
  384.   have executable files which use overlays.  OK...what are OVERLAYS?  Overlays
  385.   are SECTIONS of a program's function code, which are "read" into the
  386.   executable "shell" as needed by the program.  Confused?  Let's use an
  387.   analogy:  Think of your executable as the HANDLE of a SOCKET WRENCH set and
  388.   OVERLAYS as being the actual SOCKETS:  You simply "switch" the sockets (over-
  389.   lays) in and out as needed to perform the various functions you need.  While
  390.   all of the functions you might want to perform are at your fingertips, you
  391.   can only perform ONE AT A TIME (i.e. you can use only ONE socket at a time).
  392.   This is done primarily so that you have enough room in RAM to create/edit a
  393.   file -AND- load your executable.  Additionally, some programs are so large
  394.   that not ALL of the program could be loaded into the RAM normally available on
  395.   your system (e.g. Certain spreadsheet programs use overlays extensively ---
  396.   actually the spreadsheet you're working on IS AN OVERLAY ITSELF.)  When a file
  397.  
  398. A WORD ABOUT OVERLAYS (Continued)
  399.  
  400.   compressor comes along, its "algorithms" determine that the file space in the
  401.   "shell" is mostly EMPTY space and proceed to re-write the file header to
  402.   the "correct" file size:  A FATAL nicety!  Now, there is NO ROOM LEFT for
  403.   the "overlay" --- i.e. the spindle for the socket is GONE!  (Yeah, I know
  404.   this isn't a PERFECT analogy, but you get the drift.)  FORTUNATELY, with two
  405.   of the three programs mentioned (LZEXE and PKLITE) you are adequately WARNED
  406.   that the executable uses overlays BEFORE you can proceed.
  407.  
  408.                          =============================
  409.                          WHAT ELSE TO WATCH OUT FOR...
  410.                          =============================
  411.  
  412.   Some executables (sometimes called "runtime modules") have the ability to
  413.   actually change their size while in memory --- they write additional code to
  414.   THEMSELVES in order to accomplish certain tasks or to configure themselves
  415.   according to options supplied by you.  NONE OF THE ABOVE-MENTIONED PROGRAMS
  416.   warns you of such executables (I have no idea how they could be programmed to
  417.   do this --- that is WHY you EXPERIMENT in a TEST directory):  The file will
  418.   simply be "hashed"!  This does not occur in all cases, but it DOES occur with
  419.   TWO specific files I'll bet many of you have:  (1) BRUN41.EXE by MicroSoft,
  420.   bundled with all versions of CompuServe's CSHOW, and (2) GRASPRT.EXE, a
  421.   "GRASP" (.GL) file "animator" from Paul Mace.  There are OTHERS, such as
  422.   MicroSoft's CV.EXE (CodeView --- part of MASM 5.1):  WINDOWS "executables"
  423.   should NEVER be compressed --- this includes Versions 3.0, WIN286 and WIN386.
  424.  
  425.   Also, you've noticed mention of EXEPACK.  This is a program copyrighted by
  426.   MicroSoft in 1985-86 (probably the FIRST executable file compressor).  This
  427.   program is used on certain executables in some commercial software and the
  428.   EXEPACK.EXE program itself is bundled with some software (MASM 5.1).  The
  429.   purpose of EXEPACK is not clear:  The explanation on Page 322 of "MicroSoft
  430.   CodeView and Utilities Guide" is curt and misleading:  EXEPACK will NOT
  431.   compress executables using overlays.  Anyway, this is NOT a free-standing
  432.   program and is NOT nearly as effective as those mentioned here.  Only
  433.   LZEXE can identify files compressed with EXEPACK and, at your option, re-
  434.   compress them.  DIET and PKLITE do not compress EXEPACK'd executables.
  435.   However, you CAN use UPACKEXE.EXE (w/LZEXE) to un-compress them first, and
  436.   then re-compress them with DIET/PKLITE --- with apologies to M. Bellard.
  437.  
  438.                               ==================
  439.                               HOW TO USE THEM...
  440.                               ==================
  441.  
  442.   Obviously, you MUST have the desired utility in your ROOT directory or on
  443.   your PATH.  The following command line syntax is SUGGESTED if you're new
  444.   to this or experimenting:
  445.  
  446.    ----------------
  447.     TO COMPRESS...
  448.    ----------------
  449.  
  450.   DIET   -  C:\>diet -o[output filename] [input filename]
  451.                 (compresses a COPY of INPUT filename to OUTPUT filename ---
  452.                 original is not altered.) [NO space between "-o" and filename]
  453.                 NOTE that position of INPUT/OUTPUT filename is REVERSED
  454.  
  455.   LZEXE  -  (using LZESHELL interface)
  456.             C:\>lzeshell [filename]
  457.                 (backup copy of original executable is AUTOMATIC, w/.OLD exten-
  458.                 sion. Not necessary to specify ext if .EXE/MUST specify if .COM)
  459.  
  460.   PKLITE -  C:\>pklite -b -n [filename]
  461.                 (create BACKUP file w/.BAK extension [-b] and NEVER compress an
  462.                 executable that uses overlays [-n])
  463.  
  464.    ------------------
  465.     TO UNCOMPRESS...
  466.    ------------------
  467.  
  468.   DIET   -  C:\>diet -r [filename]
  469.                 (Restore file compressed with DIET --- DIET's DOCS call this
  470.                 command "Retrieve")
  471.  
  472.   LZEXE  -  C:\>unlzexe [filename]
  473.                 (Uncompress file compressed with LZEXE - using UNLZEXE and
  474.                 create BACKUP of compressed file w/.OLZ extension)
  475.  
  476.   PKLITE -  C:\>pklite -x [filename]
  477.                 (eXtract file compressed with PKLITE)
  478.  
  479.   NOTES: 1. These commands are recommended for use in experimenting with these
  480.             programs --- you are by no means limited to them.  There are others
  481.             included in each program, so read the documentation for proper use.
  482.          2. Remember to DELETE the BACKUP files when you're satisfied with the
  483.             results --- the idea, after all is to MAKE ROOM not USE MORE OF IT.
  484.          3. Note that PKLITE creates BACKUP files with the .BAK extension ---
  485.             you should keep track of these files because it is the SAME ext-
  486.             ension DOS (and some utilities) use --- it could get confusing.
  487.  
  488.                            ========================
  489.                            OK...WHICH ONE DO I USE?
  490.                            ========================
  491.  
  492.  Choosing the RIGHT compression method is a matter of personal preference:
  493.  They are ALL GOOD!  PKLITE seems to offer the most due to a variety of factors:
  494.  Excellent, intuitive and SAFE design; the promise of ongoing development; total
  495.  support (for registered users); variety of features, etc.  PKWARE is the outfit
  496.  that has made "ZIP" a household word:  They take their products seriously and
  497.  they DO KNOW something about "compression".  This DOES NOT mean to imply that
  498.  either Mr. Bellard or Mr. Matsumoto takes his product any LESS SERIOUSLY ---
  499.  the quality of BOTH products proves otherwise.  Why pay 46 bucks for a
  500.  product when you can get it for FREE?  Well, SUPPORT is a two-way street:
  501.  Whether we want to believe it or not, SOMEBODY paid for the development of all
  502.  this great software.  Mr. Bellard and Mr. Matsumoto BOTH paid with their time
  503.  and talent:  Considerable, in BOTH cases.  PKWARE also PAID with their time
  504.  and talent, with the slight prospect of recouping these costs through license
  505.  fees.  Nobody works for NOTHING!  I think PKWARE also lent some credence to
  506.  this heretofore obscure "niche" in PC utilities with their entry into the
  507.  "fray" --- something to consider, eh?
  508.  
  509.                                   ==========
  510.                                   CONCLUSION
  511.                                   ==========
  512.  
  513.   To answer our original question:  Yes, we get something for remarkably little
  514.   effort.  I was immediately struck by the fact that ALL of the programs are
  515.   well-crafted, possessing common sense and foresight:  They can be very useful
  516.   tools for the average PC user. The companion utilities described in SUPPORTING
  517.   PROGRAMS also deserve quite a hand for their quality and development skill.
  518.   They make life a lot easier for those of us prone to using executable compres-
  519.   sion.  Very thoughtfully programmed stuff that, I'm sure, took considerable
  520.   effort, time and skill.  The mere fact that ALL of this excellent programming
  521.   is available to us, belies the oft-noted selfishness claimed to be "today's
  522.   credo".  IT AIN'T SO!  These folks deserve our respect and thanks!
  523.  
  524.   In conclusion, it could be stated that "compressing" your executables is an
  525.   idea whose time has come.  You will definitely save disk space and might
  526.   even defer the three to five hundred dollar outlay for ANOTHER disk drive.
  527.   It's worth considering when you have available the utilities discussed here.
  528.