DWC
(→Identification) |
(Deleted a link (moved to ARC)) |
||
Line 89: | Line 89: | ||
** {{CdTextfiles|nightowl/nopv06/028A/DWC_A501.ZIP|Ver. A5.01}} (1988-05-31) | ** {{CdTextfiles|nightowl/nopv06/028A/DWC_A501.ZIP|Ver. A5.01}} (1988-05-31) | ||
** [https://www.sac.sk/download/pack/dwc-a510.exe Ver. A5.10] (1990-03-07) | ** [https://www.sac.sk/download/pack/dwc-a510.exe Ver. A5.10] (1990-03-07) | ||
− | |||
− | |||
− |
Revision as of 13:24, 19 October 2023
DWC is a compressed archive utility and file format that was patterned after ARC, but is not compatible with that format. It was designed to be faster and more compact than ARC, but have similar functionality. Its compression scheme is based on LZW.
It includes a utility to make self-extracting archives.
Contents |
Discussion
DWC was created by Dean W. Cooper in 1986 as a higher performance alternative to the ARC (both ARC & PKARC) and Zoo file archiving tools. The file COMPARE.DOC (in e.g. version A5.01) reports both compression and time improvements over DWC's competitors.
Source code for some versions prior to A5.01 was apparently made public, but we have not located any copies.
The documentation says that in 1988 the compressor/decompressor source code rights were sold to a company called DS Technologies.
File structure
DWC archive format overview This documentation contains educated guesswork derived from observing the behavior of DWC (mainly v5.10). It extends and corrects some earlier descriptions of the format. - Byte order is little-endian. - CRC algorithm is CRC-16/ARC. - Sizes and offsets are in bytes, unless otherwise noted. Archive Trailer segment Let EOF = the DWC file size. Offset Size Label Description ------ ---- ----- ----------- EOF-27 2 tsize Size of trailer (usually 27, larger OK) EOF-25 1 fhsize Size of each member file header (usually 34, larger OK, slightly smaller maybe OK) EOF-24 13 Name of header file ("h" command), NUL- terminated EOF-11 4 Archive timestamp (Unix time) EOF-7 4 nmembers Number of member files EOF-3 3 "DWC" signature Member File Headers segment Sequence of nmembers headers, each fhsize bytes, starts at EOF-tsize-(fhsize×nmembers). Member File Header Offset Size Label Description ------ ---- ----- ----------- +0 13 Base filename, NUL terminated +13 4 Original size +17 4 Timestamp (Unix time) +21 4 csize Compressed size +25 4 fdpos Offset (from start of file) of File Data segment +29 1 Low 4 bits: Compression method (1=Crunched, 2=not compressed). 0x40 bit: Set if file is encrypted. +30 1 cmtsize Size of comment field +31 1 pathsize Size of path field +32 2 CRC of *compressed* (and potentially encrypted) data File Data One segment per member file. Starts at fdpos. Offset Size Description ------ ---- ----------- +0 csize Compressed data +csize pathsize Path, NUL-terminated +csize+pathsize cmtsize File comment, NUL-terminated
Identification
Files end with ASCII "DWC
". There is no header or signature at the beginning of the file.
The known versions of DWC always seem to produce files having bytes 1b 00 22
beginning 27 bytes from the end of the file. However, the software does not require this, and old versions still need to be evaluated.
Specifications
- Archive format info, including DWC
- DWC format info, from Corion.net and FileFormat.Info
Software
- DWC (DOS binaries)
- Ver. A4.95 (1988-03-15)
- Ver. A5.01 (1988-05-31)
- Ver. A5.10 (1990-03-07)