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?
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
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
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
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?
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
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
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
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
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