AIN
m (Removed comma) |
Dexvertbot (Talk | contribs) 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= | + | |released=≤1993 |
}} | }} | ||
− | '''AIN''' is a | + | '''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 == | ||
− | * [ | + | * AIN |
− | * [ | + | ** AIN 2.1[1993-07-14]: [https://archive.org/details/ppcdcol-MBI Ultimate collection 95] → UTIL_/AIN.EXE |
− | + | ** 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 | |
− | ** | + | ** {{CdTextfiles|psl/pslv2nv08/DOS/UD/AIN22.ZIP|AIN 2.2[1993-12-10, English]}} |
− | * [https:// | + | ** {{CdTextfiles|pier05/002/ain22.zip|AIN 2.2[1994-07-01, English]}} |
− | ** [ | + | ** AIN 2.23: [https://archive.org/details/cd-ascq DP TOOL CLUB CD ASCQ] → CD_ASCQ_28_030496.iso → DOS/TOOLS/AIN223.ZIP |
− | * [http:// | + | ** [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}} | ||
− | + | [[Category:Executable compression]] | |
− | + |
Latest revision as of 04:19, 28 December 2023
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
- AIN
- AIN 2.1[1993-07-14]: Ultimate collection 95 → UTIL_/AIN.EXE
- AIN 2.2[1993-10-13, Russian]: FTP mirror - fidonet.org.ua - 2015-02-12 → fidonet.org.ua/pub/arcers/ain.arj
- AIN 2.2[1993-12-10, English]
- AIN 2.2[1994-07-01, English]
- AIN 2.23: DP TOOL CLUB CD ASCQ → CD_ASCQ_28_030496.iso → DOS/TOOLS/AIN223.ZIP
- AIN 2.32
- Various versions at old-dos.ru - Includes v2.22, and a v2.1 demo.
- AINEXT - Official extract-only utility, sometimes distributed separately.