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