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
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 of my knowledge. LHarc is comparable to its contemporaries PKZIP … 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
Ambiguity of some infinite math expressions
I've come to realize that I don't actually know precisely how to interpret some infinite math expressions with an ellipsis ("…"), like $latex \sqrt{1 + \sqrt{1 + \sqrt{1 + \dots} } }$ First, to flatten out the syntax, I'll define $latex R$ to be the square root function: $latex R(x) = \sqrt{x}$. Now evaluate the … Continue reading Ambiguity of some infinite math expressions
Notes on PKLITE format, Part 3
For an introduction, and a list of the other posts in this series, see Part 1. Code image compression format Prerequisites: This section assumes you already understand how to decode (non-adaptive) Huffman-coded (or "prefix-coded") data, and how to decompress LZ77-compressed data.Please at least read the notes near the end of Part 2 of this series, … Continue reading Notes on PKLITE format, Part 3
Notes on PKLITE format, Part 2
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 format. Structure of PKLITE-compressed files Here's a bird's eye view of how PKLITE transforms a DOS EXE file when it compresses it: … Continue reading Notes on PKLITE format, Part 2
Notes on PKLITE format, Part 1
I've been writing (as a feature of Deark) a decompressor for DOS EXE files compressed with PKLITE. Before I forget it all, I decided to write down some of the things I've learned about PKLITE. This is the first post in a series. Other posts: Part 2Part 3 (compressed data formats)Part 4 (COM format)Part 5 … Continue reading Notes on PKLITE format, Part 1