💾 Archived View for gemini.quux.org › 9 › Archives › mirrors › x2ftp.oulu.fi › pub › msdos › program… captured on 2024-08-18 at 22:59:54.

View Raw

More Information

-=-=-=-=-=-=-

Macintosh 7 & 8 bit File Transfer Format - Protocol Independent

Here is a description of the Hqx7 (7 bit format as implemented in BinHex
4.0) and Hqx8 (8 bit format) formats for Macintosh Application and File
transfers. The main features of the formats are:
1) Error checking even using ASCII download (Hqx7 & Hqx8)
2) Compression of repetitive characters     (Hqx7 & Hqx8)
3) 7 bit encoding for ASCII download        (Hqx7)

HQX Format Description (This is not intended to be a programmer's reference).

The format is processed at three different levels:

1) 8 bit encoding of the file:

     Byte:      Length of FileName (1->63)
     Bytes:     FileName ("Length" bytes)
     Byte:      Version
     Long:      Type
     Long:      Creator
     Word:      Flags (And $F800)
     Long:      Length of Data Fork
     Long:      Length of Resource Fork
     Word:      CRC
     Bytes:     Data Fork ("Data Length" bytes)
     Word:      CRC
     Bytes:     Resource Fork ("Rsrc Length" bytes)
     Word:      CRC

2) Compression of repetitive characters.

     ($90 is the marker, encoding is made for 3->255 characters)
     
     00 11 22 33 44 55 66 77      ->      00 11 22 33 44 55 66 77
     11 22 22 22 22 22 22 33      ->      11 22 90 06 33
     11 22 90 33 44               ->      11 22 90 00 33 44

3) 7 bit encoding (Hqx7 only).

   The whole file is considered as a stream of bits. This stream will
   be divided in blocks of 6 bits and then converted to one of 64
   characters contained in a table. The characters in this table have
   been chosen for maximum noise protection.
   The format will start with a ":" (first character on a line) and
   end with a ":". There will be a maximum of 64 characters on a line.
   It can be preceeded by comments for novice users.

   Table:
   !"#$%&'()*+,-012345689@ABCDEFGHIJKLMNPQRSTUVXYZ[`abcdefhijklmpqr

   Comment:
   (This file must be converted with BinHex 4.0)

                                       Yves Lempereur [YVES]