LIF (Knowledge Dynamics)

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
(Created page with "{{FormatInfo |formattype=electronic |subcat=Archiving |extensions={{ext|lif}} |released=≤1989 }} '''.LIF''' is an installer-archive format, apparently associated with ''INST...")
 
Line 9: Line 9:
 
This article covers the LIF format that begins with a string of ASCII-encoded hex digits. Note that the presumed successor format, [[RED (Knowledge Dynamics)|RED]], also sometimes uses the .LIF filename extension.
 
This article covers the LIF format that begins with a string of ASCII-encoded hex digits. Note that the presumed successor format, [[RED (Knowledge Dynamics)|RED]], also sometimes uses the .LIF filename extension.
  
== File structure ==
+
== Format details ==
 +
=== File structure ===
 
A LIF file consists of a sequence of member file segments. Each member consists of a 54-byte header, then the file data, which is usually compressed.
 
A LIF file consists of a sequence of member file segments. Each member consists of a 54-byte header, then the file data, which is usually compressed.
  
 
The header starts with 34 bytes of ASCII-encoded hex digits. A filename follows. The bytes at offset 8 through 15 encode the compressed data size, which is needed to locate the next member.
 
The header starts with 34 bytes of ASCII-encoded hex digits. A filename follows. The bytes at offset 8 through 15 encode the compressed data size, which is needed to locate the next member.
 +
 +
=== Header structure ===
 +
The 54-byte member header seems to have the following structure:
 +
 +
{| class="wikitable"
 +
! Offset !! Size (in file) !! Size (decoded) !! Description
 +
|-
 +
|0 || 8 || 4 || [[MS-DOS date/time|DOS date, time]]
 +
|-
 +
|8 || 8 || 4 || Compressed size
 +
|-
 +
|16 || 8 || 4 || Original size
 +
|-
 +
|24 || 4 || 2 || 16-bit checksum or CRC (unidentified)
 +
|-
 +
|28 || 4 || 2 || 16-bit checksum or CRC (unidentified)
 +
|-
 +
|32 || 2 || 1 || Compression method(?). Values "01", "02", and "03" have been observed, with "01" meaning uncompressed.
 +
|-
 +
|34 ||colspan="2"| 20 || Filename, NUL-padded. This 20-byte field might use as little as 12 bytes for the filename, with the remaining bytes having an undetermined purpose.
 +
|}
 +
 +
=== Compression methods ===
 +
At least one of the compression methods appears to be a form of [[LZW]]. (TODO: Check if it could be the one described at [https://moddingwiki.shikadi.net/wiki/CC_Format], via [https://moddingwiki.shikadi.net/wiki/Knowledge_Dynamics_LZW_COMPRESSOR].)
  
 
== Sample files ==
 
== Sample files ==

Revision as of 15:31, 27 March 2023

File Format
Name LIF (Knowledge Dynamics)
Ontology
Extension(s) .lif
Released ≤1989

.LIF is an installer-archive format, apparently associated with INSTALL for DOS, by Knowledge Dynamics Corporation. See RED (Knowledge Dynamics) for more information about INSTALL.

This article covers the LIF format that begins with a string of ASCII-encoded hex digits. Note that the presumed successor format, RED, also sometimes uses the .LIF filename extension.

Contents

Format details

File structure

A LIF file consists of a sequence of member file segments. Each member consists of a 54-byte header, then the file data, which is usually compressed.

The header starts with 34 bytes of ASCII-encoded hex digits. A filename follows. The bytes at offset 8 through 15 encode the compressed data size, which is needed to locate the next member.

Header structure

The 54-byte member header seems to have the following structure:

Offset Size (in file) Size (decoded) Description
0 8 4 DOS date, time
8 8 4 Compressed size
16 8 4 Original size
24 4 2 16-bit checksum or CRC (unidentified)
28 4 2 16-bit checksum or CRC (unidentified)
32 2 1 Compression method(?). Values "01", "02", and "03" have been observed, with "01" meaning uncompressed.
34 20 Filename, NUL-padded. This 20-byte field might use as little as 12 bytes for the filename, with the remaining bytes having an undetermined purpose.

Compression methods

At least one of the compression methods appears to be a form of LZW. (TODO: Check if it could be the one described at [1], via [2].)

Sample files

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox