MS-DOS installation compression

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
(+)
m (Format details)
(13 intermediate revisions by 2 users not shown)
Line 2: Line 2:
 
|formattype=electronic
 
|formattype=electronic
 
|subcat=Compression
 
|subcat=Compression
|extensions={{ext|??_}}
+
|extensions={{ext|??_}}, {{ext|??$}}
|pronom={{PRONOM|fmt/462}}<br>{{PRONOM|fmt/469}}
+
|pronom={{PRONOM|fmt/462}}, {{PRONOM|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 dollar sign).
+
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 [http://festiva-yourchoice.blogspot.com/2010/01/expandexe-preventing-google-chrome-from.html needing the EXPAND.EXE program].
 
There are reports of the Google Chrome installer [http://festiva-yourchoice.blogspot.com/2010/01/expandexe-preventing-google-chrome-from.html needing the EXPAND.EXE program].
 +
 +
== 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]] (<code>_INST32I.EX_</code>)
 +
* [[FTCOMP]]
 +
* [[SQUEEZE (AJP Systems)]]
 +
 +
== 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[https://www.betaarchive.com/forum/viewtopic.php?t=26161] 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.
 +
 +
{| class="wikitable"
 +
!Compression code !! Description
 +
|-
 +
|0 || Uncompressed
 +
|-
 +
|1 || [[Exclusive Or|XOR]]
 +
|-
 +
|2 || [[LZSS]]
 +
|-
 +
|3 || [[LZ77 with Huffman coding|LZ77 + Huffman]]
 +
|-
 +
|4 || [[MSZIP]] (based on [[DEFLATE]])
 +
|}
  
 
== Identification ==
 
== Identification ==
File begin with bytes <code>53 5A 44 44 88 F0 27 33</code> ("SZDD" variant), or <code>4B 57 41 4A 88 F0 27 D1</code> ("KWAJ" variant).
+
File begin with bytes {{magic|53 5A 44 44 88 F0 27 33}} ("SZDD" variant), or {{magic|4B 57 41 4A 88 F0 27 D1}} ("KWAJ" variant), or {{magic|53 5A 20 88 F0 27 33 D1}} (QBasic SZDD variant).
  
 
== Software ==
 
== Software ==
 +
* [http://www.cabextract.org.uk/libmspack/ libmspack] → msexpand
 
* EXPAND.EXE - utility included with many versions of MS Windows and MS-DOS
 
* EXPAND.EXE - utility included with many versions of MS Windows and MS-DOS
 
* [ftp://ftp.microsoft.com/softlib/mslfiles/CP0982.EXE Setup Toolkit for Visual C++]
 
* [ftp://ftp.microsoft.com/softlib/mslfiles/CP0982.EXE Setup Toolkit for Visual C++]
* [http://www.7-zip.org/ 7-Zip]
+
* [[7-Zip]]
* [ftp://ftp.penguin.cz/pub/users/mhi/mscompress/ mscompress] - msexpand
+
* [ftp://ftp.penguin.cz/pub/users/mhi/mscompress/ mscompress] msexpand
* [http://www.cabextract.org.uk/libmspack/ libmspack]
+
* [https://www.winehq.org/ Wine]
 +
* {{Deark}}
 +
 
 +
== Sample files ==
 +
* https://telparia.com/fileFormatSamples/archive/msCompress/REGISTER.TX_
  
 
== Links ==
 
== Links ==
Line 23: Line 57:
 
* [http://www.cabextract.org.uk/libmspack/doc/szdd_kwaj_format.html SZDD and KWAJ formats description]
 
* [http://www.cabextract.org.uk/libmspack/doc/szdd_kwaj_format.html SZDD and KWAJ formats description]
  
 +
[[Category:File formats with too many extensions]]
 
[[Category:Microsoft]]
 
[[Category:Microsoft]]
 +
[[Category:MS-DOS]]
 +
[[Category:Windows]]

Revision as of 14:06, 20 September 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 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), or 53 5A 20 88 F0 27 33 D1 (QBasic SZDD variant).

Software

Sample files

Links

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox