Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/suglasp/c_archiver_by_okumura

Haruhiko Okumura original public C code for his archiver tools
https://github.com/suglasp/c_archiver_by_okumura

algorithm archiver c-language dos

Last synced: about 1 month ago
JSON representation

Haruhiko Okumura original public C code for his archiver tools

Awesome Lists containing this project

README

        

### ar (Archiver) is a compressed archive utility developed by Prof. [Haruhiko Okumura](https://en.wikipedia.org/wiki/Haruhiko_Okumura)

This repository, is created to preserve the precursor to the today known [LZSS](https://en.wikipedia.org/wiki/Lempel%E2%80%93Ziv%E2%80%93Storer%E2%80%93Szymanski) and [LHA](https://en.wikipedia.org/wiki/LHA_(file_format)) compression algorithm standards.\
The source code found here is public created cody by Haruhiko Okumura between the end of the 1980's and beginnen of the 1990's.

In order to compile, you need [Dosbox](https://www.dosbox.com/) or [Dosbox Staged](https://www.dosbox-staging.org/),\
and also the compiler Borland Turbo C (v2.01 or 3.0).

'ar' has nothing in common with the Unix ar tool.

## Description
ar was essentially a preview of the influential family of compression methods used by LHA version 2.x: the "lh5" method and related methods.\
There seem to have been two main versions of ar.\
Neither has a clear version number, but based on the distribution filenames, and other information from Okumura,\
we may call them ar001 (or "ar v0.01"), and ar002 (or "ar v0.02").

## Archive format
ar001 uses its own file format, not known to be compatible with anything else.\
ar002 uses LHA file format.

## Format details
ar's compression is based on LZ77 with static Huffman coding.\
ar001 by default uses a 4K history buffer, like LHA's "lh4" method.\
ar002 by default uses an 8K history buffer, like "-lh5-".\
It's unclear whether the ar compression methods are 100% compatible with the standard LHA methods, but they're at least very close.

The CRC-16 algorithm used by ar001 is different from the one used by ar002 and LHA.\
It seems to be equivalent to the one called "CRC-16/IBM-SDLC" by [CRC RevEng](https://reveng.sourceforge.io/crc-catalogue/16.htm).

## Archive extensions
Neither version of ar has a default or recommended filename extension.\
A version of ar002 by T. Melconian uses the .ar extension.

## Identification
ar001 files have no signature. Robust identification would probably have to involve verifying the header CRC.\
For ar002, refer to LHA documentation.