Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/WebStart.php on line 97

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/WebStart.php on line 100

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/WebStart.php on line 103

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/Defines.php on line 187

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/WebStart.php on line 115

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/WebStart.php on line 134

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/LocalSettings.php on line 137

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/LocalSettings.php on line 139

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/LocalSettings.php on line 144

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/LocalSettings.php on line 145

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/LocalSettings.php on line 153

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/WebStart.php on line 150

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/WebStart.php on line 157

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/Setup.php on line 381

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/Setup.php on line 382

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/Setup.php on line 383

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/Setup.php on line 384

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/languages/Language.php on line 20

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: include_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/Skin.php on line 153

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/skins/Vector.deps.php on line 11

Warning: require_once(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/Skin.php on line 155

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007

Warning: Cannot modify header information - headers already sent by (output started at /usr/local/www/mediawiki/includes/WebStart.php:97) in /usr/local/www/mediawiki/includes/WebResponse.php on line 38

Warning: Cannot modify header information - headers already sent by (output started at /usr/local/www/mediawiki/includes/WebStart.php:97) in /usr/local/www/mediawiki/includes/WebResponse.php on line 38
HA - Just Solve the File Format Problem

HA

From Just Solve the File Format Problem
(Difference between revisions)
Jump to: navigation, search

Warning: require(): Unable to allocate memory for pool. in /usr/local/www/mediawiki/includes/AutoLoader.php on line 1007
(Created page with "{{FormatInfo |subcat=Archiving |extensions={{ext|ha}} |released=1993 }} ''HA'' is an archiver originally developed for the (PC/MS) DOS platform, and later ported to Unix/Linu...")
 
m (Change telparia.com samples link to template)
 
(7 intermediate revisions by 4 users not shown)
Line 5: Line 5:
 
}}
 
}}
  
''HA'' is an archiver originally developed for the (PC/MS) DOS platform, and later ported to Unix/Linux. It uses a compression method called HSC which is reportedly protected by patent, but since the pages mentioning this status are from as far back as 1995, the patent is likely to be expired by now.
+
'''HA''' is an archiver originally developed by Harri Hirvola for the (PC/MS) DOS platform, and later ported to Unix/Linux. It uses a compression method called HSC which is reportedly protected by patent, but since the pages mentioning this status are from as far back as 1995, the patent is likely to be expired by now.
  
 
== Format info ==
 
== Format info ==
 
+
All multi-byte numeric quantities are [[Endianness|little-endian]].
All multi-byte numeric quantites are [[Endianness|little-endian]].
+
  
 
The file header starts with "HA" (as ASCII characters).
 
The file header starts with "HA" (as ASCII characters).
Line 21: Line 20:
 
Then 4 bytes comprise the compressed length, and 4 bytes comprise the uncompressed (original) length.
 
Then 4 bytes comprise the compressed length, and 4 bytes comprise the uncompressed (original) length.
  
4 bytes contain a [[CRC]] 32 redundancy check.
+
4 bytes contain a [[CRC-32]] redundancy check.
  
4 bytes contain the file timestamp.
+
4 bytes contain the file date and time (unix timestamp).
  
 
Next is the file pathname, null-terminated, then the filename, also null-terminated.
 
Next is the file pathname, null-terminated, then the filename, also null-terminated.
  
 
One byte after that gives the length of the machine-specific information, followed by the bytes comprising this information, with the first byte specifying the information type.
 
One byte after that gives the length of the machine-specific information, followed by the bytes comprising this information, with the first byte specifying the information type.
 +
 +
== Specifications ==
 +
* [https://ftp.openbsd.org/pub/OpenBSD/distfiles/ha0999.tgz ha0999.tgz] → format - Covers the file structure
 +
* [https://www.fileformat.info/mirror/corion/index.htm#HA Info from FileFormat.Info and Corion.net]
 +
 +
== Software ==
 +
* {{CdTextfiles|swextrav4/swextrav4-3/arch/ha098.zip|HA 0.98}} (1993-01) - DOS binary
 +
* [https://www.sac.sk/download/pack/ha0999.zip HA 0.999 beta] (1995-01) - DOS binary  source code (in a HA file)
 +
* [https://ftp.openbsd.org/pub/OpenBSD/distfiles/ha0999.tgz ha0999.tgz] - Unix port
 +
* [https://ibiblio.org/pub/linux/utils/compress/ha0999p-linux.tar.gz ha0999p-linux.tar.gz] - An early Linux port
 +
* [[Konvertor]]
 +
* [{{SACFTPURL|pack|lgha11g.zip}} LGHA] - Optimized HA software for DOS. See also [[ARHANGEL]], for a related but incompatible format by the LGHA author.
 +
 +
== Sample files ==
 +
* {{DexvertSamples|archive/ha}}
  
 
== Links ==
 
== Links ==
* [http://www.filewatcher.com/d/FreeBSD/9.1-release/i386/ha-0.999b_1.tbz.28472.html Info and download]
+
<!-- * [http://www.filewatcher.com/d/FreeBSD/9.1-release/i386/ha-0.999b_1.tbz.28472.html Info and download] -->
* [http://terasaur.org/item/show/harri-hirvolas-ha-archiver-sources/4342 Another source for download]
+
<!-- * [http://terasaur.org/item/show/harri-hirvolas-ha-archiver-sources/4342 Another source for download] -->
 
* [http://manned.org/ha Man page]
 
* [http://manned.org/ha Man page]

Latest revision as of 02:55, 28 December 2023

File Format
Name HA
Ontology
Extension(s) .ha
Released 1993

HA is an archiver originally developed by Harri Hirvola for the (PC/MS) DOS platform, and later ported to Unix/Linux. It uses a compression method called HSC which is reportedly protected by patent, but since the pages mentioning this status are from as far back as 1995, the patent is likely to be expired by now.

Contents

[edit] Format info

All multi-byte numeric quantities are little-endian.

The file header starts with "HA" (as ASCII characters).

The next two bytes give the number of files in the archive.

What follows is the header then contents of each file.

Each file header starts with a single byte indicating version (in the upper 4 bits) and compression type (in the lower 4 bits): 0=CPY, 1=ASC, 2=HSC, E=DIR, F=Special

Then 4 bytes comprise the compressed length, and 4 bytes comprise the uncompressed (original) length.

4 bytes contain a CRC-32 redundancy check.

4 bytes contain the file date and time (unix timestamp).

Next is the file pathname, null-terminated, then the filename, also null-terminated.

One byte after that gives the length of the machine-specific information, followed by the bytes comprising this information, with the first byte specifying the information type.

[edit] Specifications

[edit] Software

[edit] Sample files

[edit] Links

Personal tools
Namespaces

Variants
Actions
Navigation
Toolbox

Warning: Cannot modify header information - headers already sent by (output started at /usr/local/www/mediawiki/includes/WebStart.php:97) in /usr/local/www/mediawiki/includes/WebResponse.php on line 38

Warning: Cannot modify header information - headers already sent by (output started at /usr/local/www/mediawiki/includes/WebStart.php:97) in /usr/local/www/mediawiki/includes/WebResponse.php on line 38

Warning: Cannot modify header information - headers already sent by (output started at /usr/local/www/mediawiki/includes/WebStart.php:97) in /usr/local/www/mediawiki/includes/WebResponse.php on line 38