ARJ is a compressed archiver utility and format, with features similar to ZIP. It seems at first to have five compression methods, with ID numbers 0 through 4. Method 0 is for no compression, so it's easily dealt with. Methods 1 through 3 are really all the same. They record how hard the compressor tried … Continue reading ARJ compression method 4
Survey of RAR comment formats
This post is about RAR, a file compression and archiving file format in the same category as ZIP. It's known for its association with the WinRAR software, but there are also command-line and text-mode versions of the software that are just named RAR. RAR supports two kinds of comments: A main "archive comment", for the … Continue reading Survey of RAR comment formats
Which comes first in DOS timestamps, the date or the time?
There are a lot of old DOS-centric file formats, especially file archiving and compression formats, which store timestamps of files. Most of them use the standard MS-DOS timestamp format for such things. This format is usually interpreted as two 16-bit integers: one for the date, and one for the time of day. I'm not sure, … Continue reading Which comes first in DOS timestamps, the date or the time?
How to vote in a late-stage two-party system
No voting system is perfect, but one of the worst systems that is even remotely compatible with democracy is the one known as first-past-the-post. In the simplest form of this system, each voter gets one vote per contest. A contest may have more than two candidates. The candidate with the most votes wins, even if … Continue reading How to vote in a late-stage two-party system
Notes on some old self-extracting ZIP archives
The old PKZIP compression software for DOS includes a utility named "ZIP2EXE", which turns a plain ZIP file into a self-extracting executable file in DOS EXE format. Depending on the version of PKZIP/ZIP2EXE, and the options used, there are several different ways in which this EXE file is constructed. I wanted to learn about these … Continue reading Notes on some old self-extracting ZIP archives
Notes on PKLITE format, Part 6
This post will explain the important differences between compressed EXE files made by the v1.00beta version of PKLITE, and those made by release versions. It is a continuation of Part 5 -- please read that first. For an introduction to PKLITE, and a list of the other posts in this series, see Part 1. History … Continue reading Notes on PKLITE format, Part 6
Notes on PKLITE format, Part 5
In this post, I'll suggest some more algorithms and strategies that could be used as part of a PKLITE-compressed EXE decompression utility. For an introduction to PKLITE, and a list of the other posts in this series, see Part 1. This post uses some of the EXE jargon defined in my post on DOS EXE … Continue reading Notes on PKLITE format, Part 5
What is LZSS compression?
I'm not asking how to implement LZSS. I'm asking how to distinguish things-that-are-LZSS from things-that-are-not-LZSS. It's generally understood that LZSS is a kind of data compression. It's supposedly a derivative of LZ77. But you may struggle to find out anything definitive or verifiable about LZSS. The name LZSS is more than likely derived from Lempel–Ziv–Storer–Szymanski, … Continue reading What is LZSS compression?
Survey of LHarc and LHA versions and names
[See this post for some updates to the information here.] The LHarc family of software (including LHA, etc.) is an old compression and archiving utility, originally for DOS computers. I've found the LHarc version history to be confusing in a number of ways. In this post, I'll try to explain what's what, to the best … Continue reading Survey of LHarc and LHA versions and names
Notes on PKLITE format, Part 4
I've decided to postpone writing more about the messy details of PKLITE EXE files, and instead discuss PKLITE COM format. This post is part of a series. For a list of other posts, see Part 1. You may know that the DOS operating system supports two binary executable file formats: EXE and COM. The PKLITE … Continue reading Notes on PKLITE format, Part 4