MS-DOS installation compression
A pair of compression formats by Microsoft that appear on MS-DOS and early Windows (3.x) installation disks; the formats have no generally agreed-upon name. Compressed files may be generated by the COMPRESS.EXE program (appearing in Microsoft's Setup Toolkit for Visual C++), and uncompressed with the EXPAND.EXE program distributed with Windows and MS-DOS. Compressed files have the last character of the file extension replaced with an underscore, or sometimes a dollar sign.
Contents[hide] |
See also
This is not the only compressed file format for which the last character of the file extension might be replaced with an underscore. Others include:
- InstallShield installer archive (
_INST32I.EX_
) - FTCOMP
- SQUEEZE (AJP Systems)
- CAZIP
Format details
There are two major formats, which can be referred to by their file signatures: "SZDD", and "KWAJ". SZDD is more common. Another variant, sometimes known as "SZ", or the "QBasic variant", is covered in a separate article: Microsoft SZ installation compression.
SZDD
SZDD's compression format similar to Okumura's LZSS. There is a byte at offset 8 that specifies the exact type of compression. Most sources say that the only known value for this byte is "A" (0x41), but some report[1] that there is also a type "B", used by Windows 3.1 builds 026 and 034e.
KWAJ
KWAJ format is somewhat more sophisticated than SZDD. There is a 16-bit field at offset 8 that specifies the compression or encoding method.
Compression code | Description |
---|---|
0 | Uncompressed |
1 | XOR |
2 | LZSS |
3 | LZ77 + Huffman |
4 | MSZIP (based on DEFLATE) |
Identification
File begin with bytes 53 5A 44 44 88 F0 27 33
("SZDD" variant), or 4B 57 41 4A 88 F0 27 D1
("KWAJ" variant).
Software
- libmspack → msexpand
- EXPAND.EXE - utility included with many versions of MS Windows and MS-DOS
- Setup Toolkit for Visual C++
- 7-Zip
- mscompress → msexpand
- Wine
- Deark