AIN

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search
m (Removed comma)
m (Sample files)
 
(7 intermediate revisions by 3 users not shown)
Line 3: Line 3:
 
|subcat=Archiving
 
|subcat=Archiving
 
|extensions={{ext|ain}}
 
|extensions={{ext|ain}}
|released=1990s
+
|released=≤1993
 
}}
 
}}
'''AIN''' is a 1990s [[DOS]] compression/archival format, apparently produced by a shareware program of the same name. Not much information is available on it, beyond what has already been stated (which is to be found on several copying-from-each other "format information" sites<ref>https://wikiext.com/ain-ain-compressed-file-archive</ref><ref>https://pc.net/extensions/file/ain</ref><ref>https://www.azfiles.net/extension/ain.html</ref><ref>https://fileinfo.com/extension/ain</ref>). The webpage of a format identification program<ref>https://web.archive.org/web/19981203161119/http://ameba.lpt.fi/%7Eeerheino/shs/shaid.htm</ref> links its name to the list of software produced by a since-defunct company called "MicroFox"<ref>https://web.archive.org/web/19990203234357/http://ourworld.compuserve.com/homepages/microfox/programs.htm</ref>; however, the only compression utility listed there, called "PUT" (the decompressor being called "GET"), writes to files with the extension .put in an extant copy<ref>https://archive.org/details/msdos_festival_PUT345</ref>, and is listed separately on the identification software webpage.
+
'''AIN''' is a compressed archive format, produced by a DOS shareware program of the same name. It was developed by InfoService Ltd., later Transas Marine Ltd.
 +
 
 +
== Format details ==
 +
The v2.2 documentation says "AIN version 2.2 archive format is incompatible with that of AIN version 2.0." But, no versions before 2.1 have been found.
 +
 
 +
None of the compression methods used in AIN seem to be publicly known.
 +
 
 +
An AIN file consists of an archive header, then a segment for the file data, then an index at the end of the file. The index is evidently compressed.
 +
 
 +
=== Archive header ===
 +
''[Incomplete information, based on reverse engineering. Written for the fileformats.archiveteam.org wiki.]''
 +
 
 +
The first 24 bytes of the file are the archive header. Byte order is little-endian.
 +
 
 +
{| class="wikitable"
 +
! Offset !! Size !! Description
 +
|-
 +
|0  || 1 || Unknown, observed to be 0x21.
 +
|-
 +
|1  || 1 || /u setting (high 4 bits), /m setting (low 4 bits)
 +
|-
 +
|2  || 1 || Unknown, observed to be 0.
 +
|-
 +
|3  || 1 || Flags: 0x80=garbled, 0x40=more fragments follow
 +
|-
 +
|4  || 2 || Data related to garbled archives. 0 if not garbled.
 +
|-
 +
|6  || 2 || Volume number (0=first)
 +
|-
 +
|8  || 2 || Number of member files
 +
|-
 +
|10 || 4 || Archive timestamp
 +
|-
 +
|14 || 4 || Location of index
 +
|-
 +
|18 || 2 || Index checksum: low 16 bits of {sum of bytes from {location of index} through EOF}.
 +
|-
 +
|20 || 2 || Unknown, observed to be 0.
 +
|-
 +
|22 || 2 || Header checksum: {sum the first 22 bytes} xor 0x5555.
 +
|}
 +
 
 +
== AINEXE ==
 +
AIN also includes an [[executable compression]] utility named '''AINEXE'''. It compresses [[MS-DOS EXE|DOS EXE]] files.
 +
 
 +
== Self-extracting archives ==
 +
Some versions support self-extracting archives, in [[MS-DOS EXE|DOS EXE]] format.
 +
 
 +
Version 2.23: The distribution includes an AINSFX.EXE file, which seems to be undocumented, but can be prepended to an AIN archive to create a self-extracting archive.
 +
 
 +
Version 2.32: The included AINEXT.EXE extraction utility doubles as the self-extractor module. You can prepend it to an AIN archive to create a self-extracting archive. Or you can use AIN's <code>-e</code> option to create a self-extracting archive instead of an .AIN archive (this requires that AINEXT.EXE be present). Note that AINEXT.EXE may report its version number to be 2.31.
 +
 
 +
== Identification ==
 +
Robust identification of AIN format is nontrivial. The software itself uses the header checksum and index checksum.
 +
 
 +
An AIN file with default settings starts with (hex bytes) {{magic|21}}, has {{magic|00 00 00 00 00 00}} at offset 2, and {{magic|00 00}} at offset 20.
 +
 
 +
Some of the bits at the end of the file might also help to identify AIN, but they are not byte-aligned.
 +
 
 +
AINEXE-compressed EXE files most likely have ASCII "{{magic|AIN}}" at offset 32.
  
 
== Software ==
 
== Software ==
* [http://www.manmrk.net/tutorials/compress/downloads/pci-a174.zip Ainviewer]
+
* AIN
* [http://www.manmrk.net/tutorials/compress/downloads/pci-f215.zip FID]
+
** AIN 2.1[1993-07-14]: [https://archive.org/details/ppcdcol-MBI Ultimate collection 95] → UTIL_/AIN.EXE
* [http://www.manmrk.net/tutorials/compress/downloads/mup122.zip Multiple Unpacker]
+
** AIN 2.2[1993-10-13, Russian]: [https://archive.org/details/2015-02-12.fidonet.org.ua FTP mirror - fidonet.org.ua - 2015-02-12] → fidonet.org.ua/pub/arcers/ain.arj
** [https://web.archive.org/web/19970723101643/http://www.diku.dk/students/misak/english/ Author's homepage] (does not seem to contain any relevant information, at least in English)
+
** {{CdTextfiles|psl/pslv2nv08/DOS/UD/AIN22.ZIP|AIN 2.2&#x5b;1993-12-10, English&#x5d;}}
* [https://web.archive.org/web/19981203161119/http://ameba.lpt.fi/%7Eeerheino/shs/shaid.htm SH Archive Identifier]
+
** {{CdTextfiles|pier05/002/ain22.zip|AIN 2.2&#x5b;1994-07-01, English&#x5d;}}
** [http://www.manmrk.net/tutorials/compress/downloads/shaid260.zip Version 2.60]
+
** AIN 2.23: [https://archive.org/details/cd-ascq DP TOOL CLUB CD ASCQ] → CD_ASCQ_28_030496.iso → DOS/TOOLS/AIN223.ZIP
* [http://www.objectrescue.com/products/recover-file-types.html Various ObjectRescue products] <!-- How I found this format, while investigating XIF names -->
+
** [https://www.sac.sk/download/pack/ain232.exe AIN 2.32]
 +
** [http://old-dos.ru/index.php?page=files&mode=files&do=show&id=698 Various versions at old-dos.ru] - Includes v2.22, and a v2.1 demo.
 +
 
 +
* AINEXT - Official extract-only utility, sometimes distributed separately.
 +
** [http://old-dos.ru/index.php?page=files&mode=files&do=show&id=3433 Various versions at old-dos.ru]
 +
 
 +
== Sample files ==
 +
* {{DexvertSamples|archive/ain}}
  
== References ==
+
[[Category:Executable compression]]
<references />
+

Latest revision as of 04:19, 28 December 2023

File Format
Name AIN
Ontology
Extension(s) .ain
Released ≤1993

AIN is a compressed archive format, produced by a DOS shareware program of the same name. It was developed by InfoService Ltd., later Transas Marine Ltd.

Contents

[edit] Format details

The v2.2 documentation says "AIN version 2.2 archive format is incompatible with that of AIN version 2.0." But, no versions before 2.1 have been found.

None of the compression methods used in AIN seem to be publicly known.

An AIN file consists of an archive header, then a segment for the file data, then an index at the end of the file. The index is evidently compressed.

[edit] Archive header

[Incomplete information, based on reverse engineering. Written for the fileformats.archiveteam.org wiki.]

The first 24 bytes of the file are the archive header. Byte order is little-endian.

Offset Size Description
0 1 Unknown, observed to be 0x21.
1 1 /u setting (high 4 bits), /m setting (low 4 bits)
2 1 Unknown, observed to be 0.
3 1 Flags: 0x80=garbled, 0x40=more fragments follow
4 2 Data related to garbled archives. 0 if not garbled.
6 2 Volume number (0=first)
8 2 Number of member files
10 4 Archive timestamp
14 4 Location of index
18 2 Index checksum: low 16 bits of {sum of bytes from {location of index} through EOF}.
20 2 Unknown, observed to be 0.
22 2 Header checksum: {sum the first 22 bytes} xor 0x5555.

[edit] AINEXE

AIN also includes an executable compression utility named AINEXE. It compresses DOS EXE files.

[edit] Self-extracting archives

Some versions support self-extracting archives, in DOS EXE format.

Version 2.23: The distribution includes an AINSFX.EXE file, which seems to be undocumented, but can be prepended to an AIN archive to create a self-extracting archive.

Version 2.32: The included AINEXT.EXE extraction utility doubles as the self-extractor module. You can prepend it to an AIN archive to create a self-extracting archive. Or you can use AIN's -e option to create a self-extracting archive instead of an .AIN archive (this requires that AINEXT.EXE be present). Note that AINEXT.EXE may report its version number to be 2.31.

[edit] Identification

Robust identification of AIN format is nontrivial. The software itself uses the header checksum and index checksum.

An AIN file with default settings starts with (hex bytes) 21, has 00 00 00 00 00 00 at offset 2, and 00 00 at offset 20.

Some of the bits at the end of the file might also help to identify AIN, but they are not byte-aligned.

AINEXE-compressed EXE files most likely have ASCII "AIN" at offset 32.

[edit] Software

[edit] Sample files

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox