TOOGAM's Archiver Archives

General purpose data archivers/compressors

If the remote links aren't working, files may be able to be found on the Archiver directory on this site.

Windows users beware: Some programs offer "Shell Integration" (or sometimes named after the most popular shell, "Explorer Integration") which lets archive files be treated as folders. The "Microsoft Compressed Folders" software offers no features except for this. This may sound good, but there is one impact that may be often overlooked but should be considered. Any process that acts recurisvely through folders will treat all archives as folders. This means that file searching functions may take longer. If a program such as Microsoft Anti-Virus is run on the machine, which places information (such as CHKLIST.MS files) in sub-directories, the archive file may be altered, rendering it less likely to pass a file integrity check (such as checks using hash algorithms). These issues may not be dire for all users, but it is simply good to know about how these things may happen if one wishes to keep prestine copies of their software.

[#sevenzip]: 7-zip
7-Zip is great. Not only is it free, but it handles formats other than *.7z, including Zip files. Additionally, it can often make zip files that are smaller than other unzippers but which uncompress the data just fine.
[#7zipwarn]: 7-Zip Warning

7-Zip's official web site has often listed bug fixes as improvements when new versions have been released. There have been some known cases where files did not seem to compress right on the first attempt, although that wouldn't have been noticed by simply looking at any message that 7-Zip reports. Only thorough testing verified that the compressed file didn't lead to the same data being uncompressed later, although repeating the attempt would tend to work as expected.

Therefore, when data is really important, it may be wise to check the results carefully to make sure there aren't any data corruption bugs. (This recommendation really should apply for any of the archivers on this page.)

Graphical Version
For 32-bit Windows
7-zip site has a beta version available. It also points to a stable version, although that may be over a whole year old and therefore it may probably be less desirable, and even really stable, then the beta version. (This was noticed after version 4.42, released May 14, 2006, when a new non-beta version wasn't released until December 6, 2007's version 4.57.) The local directory should have some filename starting with 7z and then the digits of a version number, containing a beta. (e.g. 7z448.exe would stand for version 4.48.) Also, there is the Extras (renamed on this local site as 7z###ext.tb2)
Command Line release
Called p7zip, the executable is called p7a.
DOS Version
Review: Running the DOS executables under Win98SE, and either 4.33 beta or 4.42 beta (or quite possibly both), TOOGAM obtained some "Out of memory" type of error compressing MS IE 6.0 SP1. (The same error did not occur with 7-Zip 4.55 for DOS.) The DOS executable (each one, both the basic 7za.exe and also the 7zCon.sfx self-extracting module) is over 400KB. (Therefore, despite 7-Zip's superior compression over Zip, one may want to use Info-Zip 5.12 with its 12KB-ish UnZipSfx.Exe.)
OpenBSD Version
I first found p7zip (which was version 4.45) in the official list of packages in OpenBSD 4.1 -current. (It was not included in OpenBSD 4.1 -release. Version 4.47 was released into -current before OpenBSD 4.2 came out.))
7-Zip logo
logo (local)
7-Zip documentation

Because documentation in the Windows help format was not very clear (with the -m options not including the continual references to needing -m), and the DOS and OpenBSD ports seemed to have sparse documentation, a TOOGAM-created file was made (which was also made to simply help keep track of things while learning some 7-Zip options). This file may not be complete, but it is available here in case it is of any help to the general public. 7-Zip Help

To create very small zip files that are compatible with other Unzip programs, if using an executable called 7za, use:
7za -tzip -mx=9 -mpass=15 -mfb=258 files

Also, be sure to read the 7-Zip warning.

jZip has been linked to from 7-Zip's site. The main site has download links that point to page for jZip. Note that this isn't a streamlined version of 7-Zip: It is in fact over twice the size of the 7-Zip GUI installer.
Recommended by an old review site has handling more types of archives, including multi-part zip files (which 7-Zip could not handle at the time).
[#zipnunz]: Zippers/Unzippers

The most significant advantage to zip files comes from the fact that there are a lot of Zip files already created. This is a result of the Zip file format being free to work with, and the Info-Zip team provided portable source code for their free tools. Also, unlike the combination of tar with gzip or bzip2, one tool could nicely handle an archive storing multiple compressed files.

There are two formats that have been very widely supported for decades: The one handled by PKZIP 1.1 (and is mostly compatible with PKZIP 1.0, and early versions of Info-Zip UnZip program), and the Zip 2.0 file format (supported well by PKZip 2.04g, and a bit buggier by earlier PKZIP 2.0x versions, and supported well by later versions of Info-Zip's UnZip program, and commonly by other software). Most software handles zip files that use the better-compressing Zip 2.0 format. The encryption commonly used by these formats is easily broken.

There are some newer formats largely similar to Zip 2.0, but they weren't supported nearly as heavily for a long time. They do allow for larger files to be compressed, though, so, over time, more software has added support for such features.

[#q329048]: "Microsoft Compressed Folders" (only for operating systems that are at least 32-bit)
A lot of people may have used this, without fully realizing what software they are using. Built into the "Plus! Pack" of Win95 and Win98(SE) releases, and built into newer releases of the Windows operating systems, this integrates with the shell and zip files can be treated as folders. Dialog boxes recognizing the names of file extentions may refer to Zip files as "Microsoft Compressed Folders". The following downloads help users use the safest versions of these tools.
  • Q329048 downloads
    • zipfldr.reg, a file to use with RegEdit to assist Microsoft's software in successfully installing. Simply use this before running either of the following links.

      Note that Firefox likes to display this as a text file. Use "Save Link As" or, when viewing the file, "Save Page As". When the file is run, RegEdit should be invoked and then that software will prompt if it is okay to import the contents of the *.reg file.

    • Win98(SE) version of Microsoft Compressed Folders (local, renamed). Microsoft calls this the version for "Windows 98 with Plus! 98"
    • WinME version (file has been renamed) for "Windows Millenium Edition"
    For more information, Q329048/MS02-054 info page has some details about this file. Valid command line parameters for the installation are:
    Quiet mode
    Extracts files to temporary directory specified after the colon
    "Extract files only to the folder when it is used also with /t."
    "Override the installation command that is defined by the author."
    If the security update seemed to install okay but then doesn't work after rebooting, try running "%windir%\System\RegSvr32.Exe %windir%\System\ZIPFLDR.DLL" (on one command line, without the quotation marks). The result should be the screen showing a "RegSvr32" dialog box saying, roughly (with %windir% expanded) "(i) DllRegisterServer in %windir%\System\ZIPFLDR.DLL succeeded.\n[OK]" At this point, I believe the zip support is working (even before the OK button is pressed).
  • For Windows XP, the bug-fixed version is included as part of XP SP1. (This upgrades Zipfldr.dll from 6.0.2600.101 to 6.0.2800.1126.)

The basic installation, if zipfldr.reg is used, is as follows:

  • Use zipfldr.reg
  • Install the security update
  • Reboot the system, as directed by the security update.
  • From a command line, run: %windir%\System\RegSvr32.Exe %windir%\System\ZIPFLDR.DLL
  • A "RegSvr32" dialog box should show, saying, roughly (with %windir% expanded) "(i) DllRegisterServer in %windir%\System\ZIPFLDR.DLL succeeded.\n[OK]" At this point, the zip support is probably working (even before the OK button is pressed).

Peter Mortensen's Zipper batch file which uses VBScript (posted at This copies the file (to be compressed) to a temporary folder (and does not seem to clean up that could-be-temporary copy). The file to be compressed is hard coded but that could be easily changed (having the first line set to %1). Reviewing the entire article, it also seems that the WSleep may be an unsafe way to try to handle a race condition. (It may work for a small text file. At least checking for file growth would be safer.)

7-Zip, mentioned in its own section towards the top of this page (since it handles a different format using the *.7z extention), can make Zip files that are smaller than what Info-Zip makes, but the perfectly valid Zip files can be unzipped just fine with software like Info-Zip. When making files for distribution, one may be a little bit nicer for distributors and end users by making the Zip files with 7za a -tzip -mx=9 -mfb=258 -mpass=15 file1 file2 etc. (Then if using a self-extracting archive, check out executables by Info-Zip as they are smaller than 7-Zip's.)

Info-ZIP's tools have come with source code, which has led to their code being used in other products. It is freeware, and portable. As the files are used from the command line, having this tool exist won't lead to Microsoft Antivirus placing CHKLIST.MS in each zip file the way it will if Microsoft Compressed Folders are used (since MSAV puts CHKLIST.MS in every directory).

Note about the DOS executable files: The DOS versions are logically named zip.exe and unzip.exe. In older versions (including 5.12), unzip.exe was 16-bit and the 32-bit versions were called unzip386.exe. In version 5.31 at least, the 32-bit version was called unzip32.exe. With zip 2.1x, the 16-bit version was called zip.exe and the 32-bit version was called zip386.exe. With Zip version 2.2 for DOS, the 32-bit version was renamed to zip32.exe. With zip 2.3x, the 32-bit version was called zip.exe, and so zip.exe was no longer the 32-bit version: Instead there were two 16-bit versions called zip.exe and zip-sm.exe.

Some "32-bit DOS" files may need DPMI, which might be provided by a 32-bit operating system, or simply but having CWSDPMI (Charles W Sandmann DPMI) in the path. Therefore, unzipping a file in Win32 by running a DOS unzipper, and then copying that unzipper to a floppy disk but not including CWSDPMI may later result in another computer using DOS reporting that DPMI is needed.

This UnZip packages contain the full-featured UnZip.Exe. They also include UnZipSFX.Exe, which can be prepended to a zip file to create a self-extracting file. (For DOS-like command lines this is done with COPY/B UNZIPSFX.EXE+ZIPFILE.ZIP OUTPUT.EXE and other operating systems could use: cat unzipsfx>outfile ; cat>>outfile ; chmod ugo+x outfile
DOS, 32-bit Windows, and OS/2 releases
Version 5.12
Version 5.12 is one that I've hung onto because it has a smaller UnZipSfx.Exe file than newer versions. (The DOS port has an UnZipSfx.exe that is exactly 3KB smaller than 5.20.)
Version 5.52
Info-Zip UnZip 5.52 for DOS and Info-Zip UnZip 5.52 for Win32
Unknown version
I believe around the time of OS/2 versions 2.1 and/or Warp 3.0 that there was an Info-Zip unzipper (and probably there was a zipper too) that was a "family mode" EXE file.
Other operating systems
Info-Zip's UnZip main page calls UnZip "The Third Most Portable Program in the World! *" In addition to the Ready-to-Run Binaries (of Info-Zip UnZip), Info-Zip has released Source Code. Released source code includes:

Zip 2.32 executables for DOS, Zip 2.32 executables for Win32. For other operating systems, there are Ready-to-Run Binary Executable files available (distributed in zip format), and there is Info-Zip's source code area. If 2.32 is still the latest version, then the Source code for Info-Zip's Zip program, version 2.32 (local) is likely still downloadable. For source code for a graphical tool, see the section for Info-Zip's graphical tools.

Encrypting versions of Zip have been called zcrypt, and used to be distributed different than how the non-encrypting versions due to U.S. export laws. The encryption of Info-Zip, as well as early versions of PKZip, was known as easy to bypass (by easily generating the correct password for an existing zip file). The main Info-Zip page for Zip (sources section) has said: "Note that version 1.0 of the encryption/decryption code is available only from the Netherlands site and works only with Zip 1.1. Version 2.9 works with Zip 2.3 and will be incorporated into the main Zip 3.0 source archive, as is already the case with UnZip 5.51 and later." From README.CR (included with Zip 2.32 for DOS) which discusses "As of version 2.9, this encryption source code is copyrighted by Info-ZIP; see the enclosed LICENSE file for details. Older versions remain in the public domain." (quotation dehyphenating the word "public".)

One may wish to check out the Known Info-Zip bugs page as there has been at least one bug (up to and including Zip version 2.3, but not 2.31 or newer) where zip would "silently corrupt" uncompressed files.

For the DOS release, version 2.3 included "32-bit rather than 16-bit executables of the auxilary tools", as documented in the README.DOS file. (I'm not sure if this was also true with version 2.2x, or when the first version doing this was.) If 16-bit tools are needed, I recommend checking out an older version.

The README.DOS text file bundled with zip and unzip (renamed locally) include some information about DOS programming compilers for the C language; it is a completely different file than the readme.dos file found in the directories of Info-Zip programs for MS-DOS. (That useful file is available locally as Info about Info-Zip MS-DOS executabls, and zipped locally as readme.dos text file (zipped) and readme.dos text file (gzipped), and contains information about the program's limits.)

Info-Zip's "free 1.10 compatible MS-DOS zipper" Zip

Info-Zip's graphical tools
For those who prefer a grpahical interface, there is this software that I haven't heard much of people using (despite Info-Zip's command line tools, and other GUI zip programs, being used a fair amount). Win16 release includes: WiZ 4.01 for Windows (which works with 16-bit Windows such as Windows 3.x). Note that version 4.01 has a bug that can cause it to crash with very long filenames inside archives (as per the Info-Zip bugs page.) There is also the Win32 release of WiZ (for Win95/98/ME/NT/2K/XP) which is version 5.03 (primary site, local), and the Alpha AXP executable, meant to be run on "Windows NT for Alpha" which has a latest release of 4.01. WiZ 5.03 source code
Pocket UnZip

Pocket UnZip 1.12 GUI app for NT/9x x86. WinCE directory ReadMe says "Note that Pocket UnZip 1.0 is Steve P. Miller's graphical CE port of UnZip 5.3" There is online documentation for Version 1.0 of Pocket UnZip for Windows CE. The included HTML file says "Thank you for using Version 1.1 of Pocket UnZip for Windows CE." However, (when checked July 4, 2007) there doesn't seem to actually be a Version 1.1 of Pocket UnZip for Windows CE, as the Windows CE directory has version 1.0. The bundled README file mentions "UnZip, version 5.52", however the included HTML file says "Pocket UnZip uses version 5.5 of Info-ZIP's core decompression code."

The Info-Zip site's source code directories do not include special files for the Pocket UnZip packages. There is a README.CE file included in the Win9x package that includes instructions for making the build using "Visual C++ for Windows CE version 1.0", a "development kit uses the the standard Microsoft Visual C++ version 5.0 or 6.0" [sic] files.

Info-ZIP logos
Big logo of Info-Zip name (Local, renamed) Small copy of logo of Info-Zip name (local, renamed), Zip icon (local, renamed)
Samuel H. Smith's site inks to unzip source code (which was licensed "to Nico Mak for use in early versions of his famous WinZip utility.quot;).

AdvanceMAME provides AdvanceCOMP, which is the name of a project that contains multiple executable files including advzip.exe

Sample command line to use Advzip:

advzip -ap4i 1000 what-to-compress


This software may not be open source, but may produce smaller zip files than other options like 7-Zip (which is superior at creating small zip files than many other archivers).


Summary: This software has been known to freqently work, by modifying ZIP files created by other software.

Forum post stated, “ expired on 04/26/2014 and is pending renewal or deletion.” The home page had been Ben Jos Walbeehm's software download site at had expired. For information about this data compression program, rather than water skiing, see: Ben Jos Walbeehm's software download site, archived by the Wayback Machine @ was available. Based on that, a file was downloaded: DelfOpt Win32 command line, version 2.07, original 7-zip archived, zipped. The page refers to another site which has gone down, but cool little rom manipulation and management engine: download page, archived by the Wayback Machine @ provided some files.

According to Ben Jos: “DeflOpt tries to reduce the size of GZIP (extensions .gz and .tgz), PNG, and ZIP files. Regardless of which programs/settings were used to create them, DeflOpt will be able to reduce these files by at least a few bytes more than 95% of the time.”

Ken's post on DeflOpt (archived by the Wayback Machine @ discusses that software's approach: optimizing Huffman tables by trying things like disabling the BTYPE 16, 17, and/or 18 strategies described by RFC 1951. He also says “DeflOpt is not doing any pattern re-compression - that's why it is so fast.” Ben Jos Walbeehm's post on DeflOpt's method refers to Ken's just-mentioned post but goes into further detail of the logic used.

Forum post archived, mentioning DeflOpt hyperlinked to Ben Jos's statement of a Linux version available, for i386 (forum post, archived).

Forum post, archived by the Wayback machine @ notes, “ I don't mind if others distribute DeflOpt, as long as they credit me as the author.” (The post was signed by Ben Jos. It seems from this post that “Ben Jos” is meant to be a single multi-word name, rather than a combination of a first name and a middle name.)

Ken Silverman's “KZIP”

Available are KZIP for Win32 command line, KZip license (which prohibits redistribution and re-use of KZIP). The site hosting the Linux releases seemed to be down (simply showing a single page with a logo on it) when last checked while this page was being maintained.

Ken's forum post describes KZip's approach of performing multiple passes to optimize both pattern compression and the Huffman table. Ben Jos Walbeehm, on his download page, says “kzip has been updated several times and can beat all other zippers (in terms of smallest resulting size) more than 90% of the time.”


Another forum post discusses trying to use the compression of multiple programs to achieve optimal results.

Defluff forum post, Defluff 0.1.0 post
PKWare's PKZip

This software was popular shareware, and supported a compression method known as "shrink" which wasn't extensively used (as the inflate/deflate method usually provided better compression). Since many versions of Info-Zip's tools do not include support for the "shrink" compression method in the pre-built binaries, PKWare's software is sometimes the most convenient way to handle such files.

PKZIP 2.50 for DOS
Support for long filenames
PKZIP 2.04g
PKZIP 2.04g (which was the latest DOS version for years), Garbo
PKZip 2.x for Windows
PKZip 2.6? for Windows (16-bit executable)
PKZip 2.60.03 for Windows (16-bit), PKZip 2.60.03 for Windows (16-bit), pk263w16.exe">PKZip 2.60.03 for Windows (16-bit executable), PKZip 2.62 ? for Windows (16-bit executable), PKZip 2.62 ? for Win (16-bit executable),
PKZip 2.7 for Win95/98/NT ("Sponsored" (adware) Shareware release)

PKZip for Win95/98/NT Version 2.70 (found from Winsock-L FTP Listings), 2.7

version info Channelx page says pk270wsp.exe is: "Last release preceding early tragic death of the author." (Details about that are available for reading on local page about Phil Katz.) Filegate's PKWare: PKZip for Win32 page describes version 4.0 (likely quoting PKWare), saying that it "is a major upgrade from our previous PKZIP 2.70 for Windows application."

PKZip 2.50 for Win9x
PKZip 2.50 for Win9x. from Garbo
PKZip 1.1
This would be the last widely-released version that only made files in the "Zip 1" format, before PKZip versions 2 and later were released (and therefore could make files with the newer Zip format). (Version 1.93 wasn't as widely distributed.) PKZ110.EXE seems to be a file between 149,000 and 150,000 bytes. However, a Google search for it by name reviews several different filesizes. The official file may have originally been called PKZIP110.EXE. There is a pkz110eu.exe (described in an E-Mail to juggle says "pkz110eu.exe is an 'export' version without encryption." (Encryption with a certain strength was not exportable from the United States of America, including those in Europe, for years.)
PKZip for OS/2
PKZip 1.02 for OS/2, PKZip 2.50 for OS/2 (PKZip 2.50 for OS/2, from alternate high-profile URL)
Other versions:
CIAC note lists some versions of 1.10, 1.93, 2.04c, 2.04e, and 2.04g, saying that PKWare had at one point said those are the only official releases. (This makes it seem like 2.04d was never released publicly, nor any 2.0 versions before 2.04c.) (This list does not seem accurate, though, since 1.10 is said to be better at unzipping than the previous version which wouldn't extract all files made witk PKZIP 1.1 / Info-Zip 1.0. Why would such a bug be written about if it was never released?) An old "Archive Tools" site links to some versions. I likely am not going to be able to verify the authenticity of all of these files (to make sure they haven't been modified), but here are some links I found: 1.01, 1.04 with menus, 2.04c. Also, PKZip 2.04e.

  • Newer versions PKZIP for DOS page says "Should not be used on 64-bit operating systems".
  • ZIP Reader will decrypt SecureZIP files.
  • PKZip 2.04g
  • PKZip 1.1
  • Legacy of Phil Katz

Several other pieces of software support zip files. One is PowerArchiver, which is now shareware but version 6.11 was freeware (and is available from "Last Freeware version" site and also at A+ Freeware, and also local, renamed version of 6.x last freeware PowerArchiver. That is also WinZip, which isn't recommended due to alternatives. I downloaded WinZip 6.1 years ago and clicked on Help, About, Acknowledgements, and read: "WinZip incorporates compression code by the Info-ZIP group, which is used with their permission." Basically, WinZip took the code from Info-Zip, added a couple of features (such as shelling out and running Arj), and wants $29 registration fee for it's interface. A lot of people seem to prefer WinRar if non-free software is desired due to support for shell integration and a GUI. 7-Zip offers the same thing for free. WiZ supports a GUI, and it is also free. Microsoft Compressed Folders isn't mean to be completely free (it isn't sold individually, but is part of paid software), but many people may have easy access to it (even already having it installed) and it supports shell integration.

Info-Zip has a page that their main Info-Zip page calls Zip "Imposters" which mentions some programs with the name Zip in their name. Also unrelated are the file formats called 7-Zip, bzip2, and gzip: They have nothing to do with Zip files other than their similar purpose of providing compression (and in 7-Zip's case, archiving). (gzip does use zlib, like Info-Zip, so there may be some similarities, but gzip does not handle zip files.) The programs are similarly named (7-Zip's GUI is called 7-Zip, although its command line program is called p7zip and uses a filename of p7a), and are designed to handle the file format with the same name as the program. (7-Zip's GUI anyway also supports file formats other than 7-Zip, including Zip.)

Some file managers support Zip files natively. For Series 60 mobile phones like the Nokia 6600, there is the S60Zip v1.02 free ZIP file manager for Symbian Series 60 v2 (direct download of S60Zip (local) which is freeware, unlike the $9.95 ZipMan 2.5.

DOS executables
DJGPP V2 FTP directory contains bzip2 1.04 library for DJGPP V2 , bzip2 1.04 DOS executable binaries, bzip2 1.04 documentation, source code for bzip2 1.04 for DOS, all of which are available in the local bzip2 directory. Doug Kaufman's Web Site hosts bzip2 0.9.5b (dated Aug 10, 1999). (local, renamed).
Bzip2 for Windows
Software by LTR Data
LTR Data's Small command line utilities provides an executable, and a description on available source code. A zipped zip is at LTR Data bzip2. Some info on source code is at LTR Data source code
Offering by GNUWin32

This site mentioned the offering by the site longer than the release at, and the info continues to be provided here.

Bzip2 for Windows

Complete package, except sources is a download link for bzip2-1.0.4.exe (local, renamed copy of 1.04. Source code is a download link for bzip2-1.0.4-src.exe (local, renamed copy of 1.04 source code). There are other downloads available too, for Binary executable files, Documentation, Source code (zipped), and Developer files.

Bzip2 for Windows requires "Win32, i.e. MS-Windows 95 / 98 / ME / NT / 2000 / XP / 2003 / Vista with msvcrt.dll and msvcp60.dll." (This description was found shortly after the release of Windows Vista.)

Requires msvcrt.dll (bundled when MS IE 4.0 or higher is installed) and msvcp60.dll. These DLL files are available from Microsoft by downloading the Vcredist.exe which installs latest run-time components for Visual C++ applications (Revision 6.4). The executable file may not currently be available on this site, as it is 1.7MB large and probably should be stored somewhere on the site outside the archivers section.

No info currently available.
BWT algorithm
Wikipedia page on BWT has simple psuedo-code of the technique used.
Format notes

gzip has the interesting honor of being supported by many web browsers. The support of web browsers for gzip is interesting because it is fairly wide-spread, although probably not known by a very large number of people who do know what gzip is. Web browsers will often support downloading and extracting a gzip file and then presenting the end user with the ungzipped file. (This can make it a bit difficult with some software to download the gzip file without accidental uncompression.) Some web servers will send gzipped content, at least for uncompressed text files like standard HTML files, and many end users do not even realize that the HTML content they view was distributed in this compressed format. gzip is mentioned in RFC 2616: HTTP 1.1, which itself references RFC 1952.

A list of some major browsers and versions supporting gzip is available on mod_gzip's page about which browsers handle gzip.

gzip has been used alongside tar similar to how bzip2 can be used, but gzip pre-dates bzip2. It is preferred by the OpenBSD group over bzip2 due to having higher speed.

7-Zip support for gzip

7-Zip, mentioned in its own section towards the top of this page (since it handles a different format using the *.7z extention), can make gzip files that are smaller than what Info-Zip's gzip makes, but the perfectly valid gzip files can be uncompressed just fine with software like the gzip package distributed by Info-Zip. When making files for distribution, one may be a little bit nicer for distributors and end users by making the Zip files with 7za a -tgzip -mx=9 file1 file2 etc. (Then if using a self-extracting archive, check out executables by Info-Zip as they are smaller than 7-Zip's.)

Info-Zip support for gzip

A version of gzip has been distributed by Info-Zip, the group more famous for making command line zipping and unzipping tools. The gzip files are distributed in the same locations as the unzipping tools, so one can check out the Info-Zip Unzip Ready-to-Run Binaries section to find links for gzip executables. GZip 1.2.4 source code (local, renamed) is in the same locations where Info-Zip source code gets distributed. DOS version of gzip and Win 95/NT version of gzip (local copy, renamed from gzip124xn.exe) exist. Also, some tar software supports gzip (either by running an external program, or sometimes just having support built in). An example is UNTGZ for DOS, Windows, and OS/2.

GZIP 1.3.12 for DOS announcement indicates LFNs may be supported better by the gz*.zip package from the DJGPP FTP site (including the DJGPP beta site).


Apache 2.0 License (distributed as part of the Zopfli project) Wikipedia's page for Zopfli states, “The advent of Zopfli displaced Ken Silverman's KZIP as the most size-efficient DEFLATE implementation and 7-Zip's deflater as the most size-efficient freely licensed one.” Also, “Silverman's KZIP-based PNG encoder PNGOUT used to be the single most size-efficient PNG encoder available. It was displaced by Zopfli-based PNG encoders and optimization tools.”

Zopfli issue #3 says “Zopfli is supposed to produce the smallest Deflate stream”, but that does not appear to be the case: DeflOpt has been known to improve a ZIP file made by Zopfli, and “_CK_ SAYS...” blog: zopfli gzip compressor . binary for Windows, comment notes that “in my 25mb test 7zip was actually about 10k smaller, tho kzip was smaller still.”

To make a gzip file:
zopfli -v --i1000 filename

Zopfli issue 29 discusses support for formats other than gzip.

The name tar is meant as an abbreviation for "Tape ARchive" (as capitalized by ExTAR's documentation), and by default most tar programs will need to not only be given the name of the file to work with, but will need to have a -f parameter come right before the filename so that it understands that is the name of the file. It also uses commands that differ from what several pieces of newer software use: It uses -c (create) instead of a (add, creating as needed), -t (for table of contents) instead of -l (list of files), and -x (extract). (-x isn't entirely uncommon, but some other software uses -d for de-archiving, usually documented as -d for decompressing.)
MS-DOS programs
There are a few programs to choose from. They are listed here in order of file size (of the archive containing the program).
  • ExTAR 1.0 extracts tar files, and tries to name files in ways compatible with MS-DOS as it does so. From February 1990, comes with Pascal source. It is smaller than the others. It cannot be sold.
  • untar114 has a smaller archive than, but its executable is larger. ( has a larger archive since it includes source code.)
  • Detar 1.1 has basically the same goal as Extar. It is a bit larger than Extar, but is still smaller than other alternatives. It is in public domain, comes with C source code, and is dated January 23, 1988.
  • tar program, citing sources at usenet/comp.sources.unix/volume12/pdtar (another mirror) (Z files are zipped locally) is small, and some quick and unthorough tests made it seem like it does make a tar file okay. It does not support the use of DOS wildcards.
  • tar4dos supports creating a file with the DOS wildcard of *.* and does not come with source code.
  • LTAR comes with C source code
  • PAX 2.0, mean to stand for "Portable Archive Interchange", supporting tar and cpio.
  • pdtar is in public domain and comes with C source code. It was designed with the intention of running faster than some other tar program by using "as little bcopy-ing as possible".
  • untgz095 has a DOS executable (UNTGZ.EXE), a slightly smaller and a faster version that requires a 386 machine (UNTGZ386.EXE), a 32-bit Windows 95/NT executable (UNTGZ32.EXE), an OS/2 executable (UNTGZOS2.EXE), and source code. Supports tar, tgz, gz, and Zip-compressed-tar. The UNTGZ home page mentioned in the documentation ( ) seems to no longer be valid.
  • "Portable tar v3.20g DOS/UNIX backup/compressor w/ hardware support" claims to work the same under DOS as the Unix port. It is not allowed to be used for commercial purposes, and comes with a fairly large *.ZIP file containing C source code. (The bundled *.ZIP file stores its files at 0% compression.) This has internal support (so it does not need external executables to provide the support) for zip, gzip, and standard Unix Compress algoritms.
It is likely some version exists, perhaps as a Cygwin port. UNTGZ exists.
Other releases

The OpenBSD tar man page says "A tar command first appeared in Version 7 AT&T UNIX." It has been included in several operating systems.

There are different approaches to how one can use tar in combination with a compression program. One way is to avoid using tar's options at all, if using an operating system that fully supports Unix-style piping. One can have tar just use standard input/output (using the not-always-heavily-documented feature of specifying a hyphen for a filename) and using something like: "bzip2 -cd foo.tar.bz2 | tar xf -". (Perhaps more proper would be "bzcat -s file.tar.bz2 | tar xvf -") The manual for GNU tar documents how it supports --use-compress-program=command to be able to run the command of one's choice. (A different man page for tar documents a similar feature of "--use-compress-program PROG" to run a program (called "PROG" in this example), citing the program must support a -d option (which would be to specify decompression).

In addition, tar often supports running specific programs that the tar program is designed to be able to look for an execute. These programs include:

A program that makes files in the .Z extention, it may be referenced with the parameter of -Z, and perhaps also parameters of --compress and --uncompress.
A program that makes files in the .gz extention, it may be referenced with -z, and perhaps also --gzip and also --gunzip and/or --ungzip. A DOS command pdtar referenced -z as being synonymous with -Z (like --compress), though, so it is likely that older tar software pre-dating whatever popularity gzip managed to acquire may not support having gzip as what gets run with -z. Note that the file extention of a gzip'ed tar file, which would be .tar.gz on some systems, is abbreviated to .tgz on other systems.
This may be supported by --bzip2. In the case of OpenBSD's tar documentation, it isn't supported at all. The GNU tar manual specifies also supporting -j. A UNIX man page for tar says "WARNING: some previous versions of tar used option -I to filter through bzip2. When writing scripts, use --bzip2 instead of -j" (for more comptaibility). A search of Google had at one point an entry for a web page on about tar saying "Some versions of tar use the -y switch to invoke bzip2 rather than -j". (That text isn't found anymore on the page, and I'm not sure that Google still links to the page in the search and/or contains that quoted material anymore. I do not know what versions of tar the statement referred to.)
UnRAR for Windows (local copy of version 3.70) supports long filenames. For a long time used to be significantly more up to date than UnRAR for DOS, as it handled version 3.x RAR files and the DOS only Rar 2.x files. However, since then there has become UnRAR 3.76 for DOS32 (local) and Portable UnRAR 3.76 source code (called urar376s.tgz locally) officially available.
[#arj]: Arj Software's programs, and programs compatible with its files
Arj Software's Arj software had compression ratios comparable to the Zip 2.0 file format, although Arj allowed for split multi-files. Its prominence waned, likely due to the zip file format's easier licensing (around the time Arj's prominence waned), and WinRar's ability to create split archives in a way that users of GUI programs were easier able to use.
Open-source Arj

"This version has been created with an intent to preserve maximum compatibility and retain the feature set of the original ARJ archiver as provided by ARJ Software, Inc." However, one feature lacking in the OpenSource version is that the registered version does not allow even "the registered users able to create ARJ-SECURITY envelopes using this Open-Source version." (This may not be a significant limit, since such keys likely shouldn't be widely trusted anyhow d"ue to ubiquitous circulation of counterfeit registration keys for the older (pre-2.70) versions of ARJ".

From the collection of FreeDOS files: Arj 2.78 for DOS (executable files from FreeDOS release) and Arj for DOS (source code). Files, including other versions, are available from Open-Source ARJ's SourceForge page.

Arj Software official Arj release
The latest releases of Arj (for DOS) and Arj32 (for Win32) can be obtained from the Arj Software download page.
The source code of this was released before the release of Open-Source ARJ. UnARJ 2.65 (from Primary Site), UNARJ 2.65 (from Secondary Site), UnARJ 2.65 (from local site)
A newer archive format made by Arj Software. 1.02 (From primary site), 1.02 (from secondary site) (local). (I believe this might make files with a default extention which is a single letter: J)
Other Arj Software files (from the official site) for Arj/JAR
ARJCRYPT 2.1 contains ARJCRYPT.COM, Arj32 C.DLL 3.0, JAR_C.COM, JAR_C.DLL. Each file is described on the Arj Software Download page as being updated Sept 30, 1999. Local copies of each are available in the TOOGAM's directory of ARJ/JAR-related software.
WinArj by LA Soft
Shareware, including "WinArj 25"/WinArj25 for Windows 3.xx/95, WinArj95/98 for Win95/98, and WinArj32 for Win98/NT.
Note that any version of a program where the filename is LH.EXE cannot be run, in some versions of DOS, by simply running LH. This is because DOS versions have an internal command called LH (standing for "load high") which was made after some LZH program(s) had an executable called LH.* (LH.EXE and/or LH.Com). This is why one of the programs was renamed to LHa.
arce, arc
UUEncode, Binhex
The Unix compress command
Makes *.Z files. COMP410E.ARC recommended by pdtar.
Macintosh formats
Stuffit is a program, .SIT is an archive type? (Commonly used on Macs) unsit30, Stuff
UltraCompressor II revision 3 PRO is quite slow to compress, but extremely, excessively fast to uncompress. It's also fairly tight (smaller than Zip). There's a 30 day trial period. After that, non-commercial use is continued to be allowed. It also includes UCExe (a DOS executable compressor). Every version of UltraCompressor 2 and UltraCompressor 2 Pro which I have seen has always had the downloadable archive called uc2pro.exe.
Zoo 2.10, GNUish MSDOS favors Rahul Dhesi's barebone Zoo extractor (version 2.0) called Booz, or the full Zoo (version 2.1). booz20.

PAQ offers high compression, however it is designed more around the academic goal of improving maximum compression rather than to be used on a wide-scale basis by end users. There are new versions being released on the page regularly, and the newer versions are not necessarily backwards compatible with the older versions and are not necessarily always better than the older versions. DOS versions are not typically made. Also, it can use significant amounts of memory (1.5GB). I've seen it complain about out of memory using maximum compression, and when using less-than-maximum compression it's used 435,061,768 bytes of memory on a file < 123KB (with the Windows version of PAQ8L on its .cpp file). The large amount of memory (relative to other compressors like Info-Zip) required for compression is also required for decompression. These factors are leading to the program being more interesting from an acedemic perspective than a production environment where ease-of-use is desired. PAQ8L's readme.txt says that Malcolm Taylor's WinRK 3.0.3 (pwcm mode) uses a "similar (but rewritten) context mixing algorithm"

bzip2's main page has for a long time referred to "the best available techniques (the PPM family of statistical compressors)" (and the page cites that bzip2 typically gets within 10-15% of that). The "Prediction by Partial Matching" compression algorithm page on Wikipedia says "Trying to improve PPM algorithms led to the PAQ series of data compression algorithms." PAQ uses a related technology called context mixing (as per Wikipedia's PAQ page). PAQ does achieve some of the very best compression ratios, often being #1 or #2 in maximum compression on various tests. (When it is #2, the closed-source WinRK is often #1.)

For another PPM, STAT

  • WinAce 1.50 Freeware (Adware) Edition download page, download (local directory) installs "webHancer Customer Companion" and supposedly works on Win98, NT, and 2K, and not 95/ME. It supports ACE files and some other file formats including Zip, RAR (I'm not sure just which version of the RAR format is supports), Arj, CAB, and more.

    Note that VirusTotal's review of WinAce indicates a widespread minority (12 out of 46 scanners) of anti-malware scanners have dissatisfaction with the included WebHancer. Even Google's Webmaster Tools have flagged a site as containing malware because of this WebHancer. Although WinAce was quite forthcoming that this was Adware, this did not seem to be tolerated by organizations that have flagged WebHancer as a product of evil. For now, this site has compensated by zipping the installer (realizing that this means another unzipping solution will be needed for this software which is zipped). Hopefully that will bypass some of the automated testing that might indicate this site distributes known malware. If that doesn't work, perhaps someday some sort of password protection may be needed. This version isn't necessarily the most recommended for modern day usage, but still seems worthwhile for historically being a potential useful option.

  • Powerzip 2000 Lite is said to support this. (CITS page links to Powerzip 2000 Lite adware, which was renamed and then archived inside an archived local copy.) (The file was primarily archived because Google Webmaster Tools had identified it as “harmful code on” this site, and a “Sample of URL” ... “with malware”. Decompression supported by PowerArchiver 6.10. ACE is supported by TUGZip ( renamed locally)
[#cabfiles]: .CAB (Cabinet files)
  • CAB file support is built into Win ME/2K/XP.
  • For Win95/98, one can use the CabView software by Microsoft, or the EXTRACT.EXE file from the collection of files used to install the operating system. Win98SE comes with EXTRACT 1.00.603.0 (08/14/97). Downloadable versions of this and the corresponding MAKECAB.EXE can be found from files distributed by Microsoft.
  • contains 16-bit EXTRACT.EXE 1.00.0601 (03/18/97) and is the topic of Q182489. Win95 Power Toys (link found from here)

    The IExpress Download Kit (IDK 99) file download: Idk99.exe is a valid Zip file containing Microsoft Cabinet Maker version 1.00.0601.2 (06/12/97).

  • Q310618 links to Microsoft Cabinet Software Development Kit, a 474,008 byte file containing Makecab.exe and Extract.exe (for Win95 and NT), Redist.txt, and more. The file is a WinZip self extractor. I also found some links from to the following files which I haven't checked out:
  • FreeDOS comes with CABExtract 1.1 and for creating Microsoft-compatible CABinet files, the FreeDOS pacakge collection includes LCAB version 1.0b11.
  • For some more freeware, page for Using .CAB Files links to the Cabmaker download page for the freeware (local).
  • CabPack seems to be a GUI program. Its home page says "CabPack runs with Windows 95, 98, and NT 4." GUI program says it doesn't support creationg SFX archives, and says "For this task you should use Microsoft.s IEXPRESS" which comes from the Microsoft Internet Explorer 4 Administration Kit (, although that doesn't allow creation of disk-spanned self-extractors. It also cites Cabinet Software Development Kit from Microsoft, and German sites site/page 1 and site/page 2. and CabPack 1.4a Upgrade
  • CabWoman V1.00 (comes with source) Site, file, overview

A web page of CooL Mind says the MSN Messenger Wink animation is a file in *.CAB format, containing an XML file, called a *.MCO file.

In addition to Microsoft's CAB file, there is the CAB file format used by InstallShield. Some info is on a page about Compressing and Archive Utilities.

It would seem that there are multiple forms of compression that a CAB file may support. One type is MSZip. Another type is LZX:21. (The latter is used with .)


CCM found via MaximumCompression.Com Compression Programs site with lots of download links to lots of compressors (only 4 of which were hosted on that site). (Note that the site has also hosted which has become an Error 404, so it does seem the site doesn't keep distributing hold versions.) Local CCM directory also contains, where the U simply refers to an unofficial archive being made. (I personally created the archive with some extracted version I found on a hard drive.) It is smaller than version 1.21.

"CLI does NOT check much, so please be nice. ;)" Sounds like it might not be thoroughly tested to always decomrpess right. CCM v1.17a Mar 10 2007 says "CCM needs 98 MiB of free RAM in order to run." ccm.exe is 24,576 bytes. Not sure what the requirements are (I'm guessing it's a Windows app since it doesn't mention anything about EMS/XMS DOS memory and it requires > 64MB.) "free for non-commercial use", it has no released source that I know of. The author states (here) that compression could be improved simply by increasing memory requirements. The forum posts also have linked to: Squeeze Chart 2007

The newest version I've seen is however there is also a homep age at which is linked to from Wikipedia says it is made by M Software, but a later version is on Does very well in MaximumCompression.Com's tests (frequently #1?). PAQ8L's readme.txt refers to it as using a similar algorithm. "WinRK is a commercial file archiver program for Microsoft Windows." A 30-day trial is available. Mentioned here for its performance, although not one I've frequently recommended due to it being unportable and furthermore unfree.

Better Archiver with Recursive Functionality (BARF) page on Mahoney's site (which hosts PAQ) has a web page that discusses the "pigeonhole principle" in somewhat technical, however nicely brief language. (An "encoding" would be what is often called a "compressed file".) It has a disclaimer on the web page. (Since the web page references "very long" filenames, so it looks like BARF's "trick" is that it stores data in the filenames. If you rename the file, then there'd be a problem.)

Other compressors aren't so nice. I know I've seen a compressor that stores data in sections on the hard drive marked as deleted data. (This means the data did sit on the hard drive and the file could usually be decompressed immediately, but it shouldn't be truested because the hidden, "compressed" data was not protected like normal data. The compressed data could be legitimately overwritten by any other software that followed normal rules of software writing, including an operating system's swap routines. Also any normal software that copied all files stored in properly identified areas on the hard drive wouldn't copy data from areas marked as deleted.)

There are likely to be more archive foramts as well, which may be more obscure. For some more downloads, see DOS for PC archivers. I've seen some programs (CCM and TC) post updates on forum.

Executable Compressors

Before leaping into executable compression, it is good to know there are different formats of executables. Some do not work when compressed, including some that use DOS4GW.EXE. Do not compress and delete the larger file without testing the compressed results (if the larger file is not easily replacable). Some *.EXE compressors, like early PKLite and LZExe, may compress Windows executables (even a simple Windows 3.1 executable) and create invalid files.

UPX: The Ultimate Packer for eXecutables

UPX is a program that supports compression of multiple types of executable programs, including executables for multiple types of operating systems. It is freeware with GPL licensing, with an additional license granting permission to use an UPX unmodified on non-GPL executables (including commercially-released executables). UPX has been updated later than LZExe or PKLite, and version 3 supports --lzma (to use LZMA, the compression of 7-Zip). The compresors require 32-bit integers (as per the UCL library's portability section), but the code's "decompressors should work on any system around" For DOS executables, UPX.DOC says "Compressed programs only work on a 286+", but there is a --8086 option to make executables work on earlier systems. Other options that may help compression exist, such as --all-methods.

Works on a wide variety of executables summariezed here: DOS (16-bit and 32-bit), Windows executables (including DLL (Dynamic Link Library) files and .scr (screen saver) files), Linux (AOUT, ELF, script), Atari TOS/MiNT. (In the UPX.DOC file in the notes by WIN32/PE, it seems --strip-relocs=0 may be needed to have a resulting file work with Windows 3.x. If that doesn't work, the shareware PKLite may work.) "UPX is written in portable endian-neutral C++"

The download section should point to the latest releases, and the Old versions seciton should point to the older ones. If UPX hasn't had a new version since these links were updated, then they may work: 32-bit DOS version 3.01, 3.01 source code (renamed locally to upx301s.tb2), uses UCL library (UCL 1.03 full source code) (local: renamed to ucl-103.tgz.) Version 3.0 note: Although the --lzma isn't mentioned in UPX.DOC, it is in NEWS and README.1ST and it compresses tighter. It would seem that UPX does not use this method by default, therefore it seems that the documentation is now false where UPX.DOC says near the --all-methods that "usually the default method gives the best results anyway." (So using --all-methods is seeming likely to compress better: It was noticable with 4DOS 7.56.)

Other URLs exist for the home page:


LZExe is a freeware DOS program that compresses DOS *.EXE executable files. (The compression engine is written in 8086 assembler.)

LZEXE 0.91e, described by the author as "version 0.91 with contribution from various people". The file Includes UNLZEXE5.ZIP, and documentation from a translator mentioning a bug fix. There is also UNLZEXE8. Note that it seems LZEXE is lossy: At least UNLZEXE does not always create files that are identical (byte for byte) to the original.

Fabrice's site says 0.91e is the last version released by him. There is an LZEXE 1.00a ( on some Internet sites. It comes with some unrelated tools, and has removal instructions on anti-virus sites very prominent on a Google search for it. (new version of with archive modified by SAC) describes LZEXE making executables requiring more memory, and how to use Microsoft EXEMOD to fix. A program: LZEFix has been made to call EXEMOD to automate the fix. I may not have tested these things, checked the program for validity/safety, etc. (version 2.1) Q11044 about EXEMOD Q31308 makes it seem EXEMOD comes with VB for MS-DOS, QuickBasic 4.0, 4.0b, "4.5 for MS-DOS", MS BASIC 6.0, 6.0b, BASIC Professional Development System 7.0, 7.1. Q62217 says "This manual also unnecessarily documents the EXEMOD utility (on pages 307-311), which is an older version of EXEHDR. EXEMOD is not shipped with Basic PDS 7.0 or 7.1 because EXEHDR contains all of EXEMOD's functionality." LNK4094 says: "Use EXEHDR on MS-DOS executables. EXEHDR is included with Visual C++ 1.5."

AntiLZ.Zip: ANTI-UNLZEXE - LZEXE packed files protector

LZExe's home page cites LZSS implemented in free sources distributed by Okumura as the inspiration for LZEXE's compression engine. For LZEXE, the home page says source code is "Currently unavailable, but" [that] "may change if people ask" for "it." Local copies of files may be found in this site's LZEXE directory.


PKLite Shareware 2.01 is icensed for private use. Corporate and Governmental site use has a license only for "as many sites / computers as contracted for". WHATSNEW.201 says that since version 1.50, version 2.01 added the ability to compress Windows 16-bit (.EXE and .DLL) program files. (Also some problems were corrected.)

The shareware version made files that could be uncompressed with PKLite: The commercial (registered) release made files that PKlite couldn't uncompress. (They might still be uncompressable.

EXEPACK from Microsoft
Mentioned on Q78384 mensions LINK.EXE's /EXEPACK option. Report on a PCDOS page cites Quarterdeck tech note (now a 404) and concludes that "a program that has been packed with Microsoft's EXEPACK utility won't run if extended memory is enabled and the program has has a starting address in the lowest 64K of memory. A program that is supposed to uncompress the binary is unlzexe." (UnLZEXE is bundled with LZExe 0.91e, although there is a newer UnLZEXE than that version.) WineHQ file says "Old versions of Microsoft's EXEPACK require atleast one segment (64k) below it to be able to unpack the program into memory. If you have a lot of free memory, let's say above 600k, then programs can be partially loaded in the first segment. This causes EXEPACK to generate this error. Use the link bellow for decompressing sr.exe and removing the problem" The link refers to (with modified zip header) (which I renamed locally as, another file is (with SAC modified header) Cardware/Shareware uncompressor of many formats.

Diet v.1.45F, a DOS program, is an executable compressor that also comes with a TSR (a Terminate-Stay-Resident program that uses DOS memory) that allows data files to be compressed and used, although its documentation does say that not all data files are supported. (So, rather than trust the results, the documentation says "You'll have to experiment.") DIET145F.DOC says "DIET is a Freeware Program." Diet has received positive remarks in exe compression review, which reviewed an older version of Diet compared with an older version of PKLite and the last official version of LZExe.

Searching for a version of Diet before Simtel stamped their involvement into the archive comments, I found the following: Google search results, Teddy Matsumoto DIET page, a link, a link, download redirector page went to download redirector URL which redirected to Diet 1.45f (Japanese archive) which had the same executable, but different documentation (probably in Japanese) as the English Zip archive.


Simtel EXE Compress directory. The shareware archiver UltraCompressor II revision 3 PRO. LxLite v.1.3 for OS/2 Executables and source code,

page with links to some Freeware tools that cannot be distributed with other tools.

Media file compressors

In addition to lossy compression, there can be multiple lossless ways to store *.PNG files, and also *.GIF files. Windows 3.1's Win.Com consisted of *.RLE files which were largely bitmap format, but used 4-bit RLE format.

For further details on manipulating graphics, see the graphics manipulating programs. Many of them handle various types of image compression.

For details on compressing sound files (lossfully, such as *.MP3 or *.OGG, or lossless methods that retian full quality), and/or for information about video (both lossless and lossy), see the Multimedia Codecs section (on a separate page).

Compression Libraries

Basic Compression Library

Basic Oompression Library (a URL which rediects to another home for BCL) is fairly easy to implement. The library is designed for easy implementation and studiability, rather than other common goals like maximizing compression, memory requirements, and/or speed of execution. BFC.C (Basic File Compressor C code) contains code for the BCL1 file format. directory for Basic Compression Library. BFC.C (Binary File Container C code) contains code for the BCL1 container format, which is a very simple format.

As there are a number of simple implementations of compression formats, superior compression can often be obtained by compressing first with RLE, and then using Lempel-Ziv (L7ZZ) compression, and lastly the Huffman compression. (Often compressing compressed data doesn't work as well, but that is largely since other compressors will try optimizing techniques without needing an end user to run multiple programs.)

As of version 1.20, what used to be called Huffman coding was renamed to be Shannon-Fano coding, because it was really Shannon-Fano code that was misnamed and was being called Huffman, but wasn't Huffman. Unfortunately, the BCL1 format wasn't modified to be flagged differently (such as having a BCL2 format), and files marked as Huffman are now handled by the new Huffman coding (rather than using the Shannon-Fano code, and using a new flag marker to specify using the new Huffman code). This means that BCL1 files flagged as using Huffman are not compatible between BCL versions.

Download page, directory for Basic Compression Library with a file renamed from

This site has a page of links to other compression sites.

UPX uses it. "UCL's decompressors should work on any system around - they could even get ported to 8-bit processors such as the Z-80 or 6502." "The compressors currently require at least 32-bit integers. While porting them to more restricted environments (such as 16-bit DOS) should be possible without too much effort this is not considered important at this time."
If one isn't just seeking instant implementation and understandability, and is insetad seeking performance of high compression, the LZMA SDK used by 7-zip may be desirable. LZMA page, LZMA 4.43 (tar, bzipped) (local, renamed)
Some well known examples are Zlib, which uses compression similar to that found in Zip files, and bzip2 lib.

Compressed Hard Drive Volumes

DIET is a TSR that can handle some data files (but not others). See that on this page in the Executable Compressors section. DR-DOS versions have been known to come with Stacker. Some versions of this product (some of which were known as DR-OpenDOS / OpenDOS) have been freely downloadable. MS-DOS 6.x comes with DoubleSpace/DriveSpace. Microsoft has released some DoubleSpace files for download, although they are not *.EXE files that can be simply, easily executed from a DOS command line. Linux has some read-only file systems available:

Disk images

Floppy disk images can be used for installation disks and to be used as bootable images for when a CD boots. CD images have become common, most notably in the *.ISO format. Other disk images exist, such as the QCow format. Software exists to handle these things.

Floppy disk images
Disk image manipulating
Disk image creation
GtBtIm06.Zip as obtained from Author Osamu Imaizumi's English home page (found from another site where webmaster says author was webmaster's friend.)
Shareware, supports some sort of internal compression
Image writing
[#optdscim]: Images commonly used for optical disks (like [#cdimg]: CD images)

See also CD file systems for software that mounts such images.

Lossless compression

Some software called “Error Code Modeler” (abbreviated “ECM” can often losslessly cut down on the size of typical data CDs by using a special purpose, lossless algorithm that can remove some standard data that is able to be recalculated and which is commonly found in typical data CDs. The completely lossless process of ECM works by removing specific data from CD images when this data can be successfully re-created using calculations in this small special-purpose software. The specific data that ECM attempts to calculate, and then removes when it finds the data is re-calculatable, is the “Sync” data, the “Error Detection Code” (abbreviated “EDC”) data, and the “Error Correction Code” (abbreviated “ECC”) data (the latter of which is mentioned the most and which appears larger in drawings which are said to not be to scale). Other data in the image, including Sync/EDC/ECC data which may be non-standard and which ECM cannot just simply re-create, is not removed, so the entire ECM process is lossless.

Although the general purpose data compressor may show a lower compression ratio on a file created by having ECM remove data first, the lower compression ratio is the is because the general purpose compressor is not able to store the compressed version of the Sync/EDC/ECC data (which may typically be fairly compressable). Although creating a compressed version of the the Sync/EDC/ECC data may help to raise the compression ratio that the general purpose data compressor would report, the method that often gets smaller results is having a lot or all of that Sync/EDC/ECC data be entirely removed by ECM instead of storing a compressed version of that data. Test results on ECM's website shows that using ECM before RAR, a general purpose data compressor, saved over 15% (about 70+MB) compared to just using RAR alone. (These test results were on some images of CDs used for video game consoles.)

ECM: the ECM v1.0 (GPL'ed source code and binary for Windows) and ECM GUI port for Mac OS X are available are available from Neill Corlett's ECM home page and from this site's ECM local dir. A package has also been accepted into the “Janty Jackalope” version 9.04 of Ubuntu (according to page about ECM's inclusion).

Creating CD images

Creating CD images is often supported by CD writing software, and so a separate program for this task may be unnecessary. In some environments (such as Linux), the most common way to make CD images is with a separate program.

A common program is mkisofs. A similar program is mkhybrid, which adds HFS support to mkisofs. OpenBSD man page for mkhybrid documents this. Especially the OpenBSD man page for mkhybrid (Availability section) for download info.

Manipulating CD images

Significant changing of CD images is just not commonly done with ISO 9660. Instead, if a file needs to be added, new *.ISO images are created. If a disc is going to be written to multiple times, this is generally handled by using packet writing with the UDF file system.

A notable exception would be some tools made to alter a *.ISO image to affect how the resulting CD will cause the system to act when a system boots from the CD. (See El Torito for possible further information.)

Communications Compression

Details on software related to data communications may be found by Network Software. However, since this page has so many solutions for data compression, here's a quick tidbit related to a protocol that was widely seen supported by dial-up modems.

v.42.bis note has answers for anyone who has "ve ever wondered why noone other than modem manufacturers ever use V.42bis for anything". The document also says that compact's source code and Info-Zip 1.1's "shrink" method are said by that file to be reportedly similar to V.42bis. Manual review of compact's file says "The algorithm resembles the "V.42bis" compression engine, but was developed independently." Link Access Procedure for Modems (LAPM) is a part of V.42. Another piece of software, whick looks like it isn't free, is V42-BRICKS.