MS-DOS installation compression

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
(Format details)
Line 28: Line 28:
 
|0 || Uncompressed
 
|0 || Uncompressed
 
|-
 
|-
|1 || XOR
+
|1 || [[Exclusive Or|XOR]]
 
|-
 
|-
 
|2 || [[LZSS]]
 
|2 || [[LZSS]]
 
|-
 
|-
|3 || LZSS + Huffman
+
|3 || LZ + [[Huffman coding|Huffman]]
 
|-
 
|-
|4 || MS-ZIP
+
|4 || [[MSZIP]] (based on [[DEFLATE]])
 
|}
 
|}
  

Revision as of 20:46, 29 January 2020

File Format
Name MS-DOS installation compression
Ontology
Extension(s) .??_, .??$
PRONOM fmt/462, fmt/469

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.

There are reports of the Google Chrome installer needing the EXPAND.EXE program.

Contents

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:

Format details

There are two major formats, which can be referred to by their file signatures: "SZDD", and "KWAJ". SZDD is more common. There is also a QBasic variant of SZDD format.

SZDD

SZDD format uses a simple form of LZSS compression. 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 LZ + 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), or 53 5A 20 88 F0 27 33 D1 (QBasic SZDD variant).

Software

Links

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox