A recent exploration of Microsoft’s EXEPACK posed the question whether EXEPACK was the first executable compressor, at least in the world of PCs. It wasn’t.
That distinction almost certainly belongs to Realia SpaceMaker, which was probably released sometime in late 1982. Why “probably”? SpaceMaker is so old and so obscure that the oldest (and only) surviving version (1.06) is from 1985, in fact newer than the earliest known EXEPACK.
SpaceMaker was covered by the trade press, though not exactly extensively. Peter Norton mentioned it in his Hard Disk Housekeeping article in the January 8, 1985 issue of PC Magazine. That is the most solid piece of evidence that SpaceMaker is older than EXEPACK. SpaceMaker was written about in December 9, 1985 issue of Fidonews (The PC’s Space Program, by Gene Plantz). It was also mentioned in the January 1986 issue of Compute! magazine (page 119, Last Minute Gifts).
Note that the first known coverage is from 1985. So how do we know that SpaceMaker is from 1982? In the absence of surviving binaries, it’s difficult to prove. But SpaceMaker was advertised in the January 1983 issue of PC Magazine, which probably hit the newsstands in late 1982. And it was listed it as being developed in 1982-1983 (together with the Realia Termulator terminal emulator) in a legal document (page 20 in the PDF) which ought to be a reasonably trustworthy source of information.
If only we could ask the author to clarify the timeline. But alas, we cannot. The author of Realia SpaceMaker, Robert B.K. Dewar, died in 2015.
How Does SpaceMaker Work?
Let’s quote the first known SpaceMaker ad which explains how the utility works: Uninitialized (binary zero) areas are compressed, and the relocation entries are eliminated. When executed, the program expands and relocates itself, recreating the original program.
SpaceMaker is thus in principle very similar to EXEPACK, but at the same distinctly different. SpaceMaker compresses runs of repeated zero bytes—but only zero bytes; EXEPACK compresses any repeated bytes. SpaceMaker, unlike EXEPACK, also converts EXE files to COM files, dispensing with the EXE header and relocations. Especially for smaller programs, that helps by getting rid of the typically 512-byte header.
Does SpaceMaker Work?
SpaceMaker (1.06, the only version available for analysis), works… with caveats. There is no attempt to detect whether the compressed file is larger than the original. SpaceMaker also does not object to processing executables already compressed with SpaceMaker, making them slightly larger with each iteration.
Some executables no longer run after being compressed with SpaceMaker. It has not been investigated why, but the problem was reported in contemporary literature.
The effectiveness of SpaceMaker wildly varies depending on the executable being compressed. For typical small C executables, the savings are unspectacular, often under 5%. In some cases though, it could be 30% or more, but only if there are large statically initialized data areas (which modern tools often eliminate).
There’s one bug which SpaceMaker does not have, while versions of EXEPACK released prior to mid-1998 did. It’s discussed in an post by Robert Dewar titled “DOS 3.1 ASMB (Another Silly Microsoft Bug)”. The problem described in the post is that EXEPACK loses the initial AX value. If the program depends on it (most don’t, including programs using standard Microsoft run-time libraries), it will not function correctly after EXEPACKing.
The SpaceMaker/Norton Connection
An intriguing claim surfaced in the October 1991 issue of Russian-language КомпьютерПресс (ComputerPress) magazine, in an article on the LZEXE compressor. On page 62, the magazine says that the very first version of Norton Utilities consisted of COM files processed by SpaceMaker (“Самая первая версия Norton Utilities состояла из .СОМ-файлов, обработанных SpaceMaker.”)—given that Peter Norton wrote about SpaceMaker, that does not sound implausible.
So it should be dead easy to verify, right? Right? Wrong. The first version of Norton Utilities is nowhere to be found. If someone had the original Norton Utilities disk, and the executables were really processed with SpaceMaker, that would be a good proof SpaceMaker really was available at that time.
What is available is only an archive of Norton Utilities 3.0, still a collection of COM files, but not processed by SpaceMaker.
SpaceMaker is so old and obscure that the excellent UNP utility, which recognizes about 20 executable packers, does not know about SpaceMaker.
Programs processed with SpaceMaker 1.06 contain the string ‘MEMORY$’ near the beginning of the executable (within the first 32 bytes). It is not clear if that’s a characteristic of executables processed with older SpaceMaker versions as well.
Any provably ancient SpaceMaker’ed executables, anyone?