home *** CD-ROM | disk | FTP | other *** search
/ The First Hungarian Family / The_First_Hungarian_Family_CD-ROM.bin / internet / coddecod / abe / abe.man < prev    next >
Text File  |  1989-07-18  |  13KB  |  283 lines

  1. ABE(1)                  Reference Manual                  ABE(1)
  2.  
  3.  
  4. NAME
  5.      abe - Ascii-Binary Encoder
  6.  
  7. SYNOPSIS
  8.      abe [ options ] [filename ...]
  9.  
  10. DESCRIPTION
  11.      The abe program program encodes binary files into a bullet-
  12.      proof form consisting only of printable ASCII characters.
  13.      This new form can be sent through communications channels
  14.      which might get upset at non-printable characters, such as
  15.      USENET news, mail and various text file downloading pro-
  16.      grams.  ABE files should be able to pass through a lot of
  17.      mechanisms and Operating Systems that will kill lesser
  18.      files.
  19.  
  20.      Abe is a replacement for the uuencode(1) program.   The
  21.      encodings produced by abe are usually smaller, more compres-
  22.      sible, more readable and far more bullet-proof than those
  23.      produced by uuencode.
  24.  
  25.      All lines in an ABE encoding have a three character line
  26.      number as well as a checksum.  That means that ABE lines may
  27.      be broken apart, scrambled in a random order, and even have
  28.      garbage lines inserted into them without damage.  The
  29.      sort(1) program (or any other text file sort utility) can
  30.      always restore an ABE file to its proper state.
  31.  
  32.      ABE files can be split into "blocks" when the transport
  33.      mechanism being used is unable to transfer files longer than
  34.      a given length.  These blocks contain checksums, length
  35.      information and `seek address' information for independent
  36.      verification.  With the full dabe ABE decoder, it is possi-
  37.      ble to still decode a file with missing blocks.  Empty
  38.      regions will simply be left undefined in the resulting file.
  39.      If redundant decoding information is added to the blocks,
  40.      they can be presented to the decoder in any order, without
  41.      sorting, and blocks may even be duplicated.  All this was
  42.      designed with the typical problems of USENET binary distri-
  43.      bution in mind.
  44.  
  45.      Two decoders exist.  One is the `tiny' decoder, tinydabe.c.
  46.      This is a 100 line, public domain, portable C program which
  47.      can be included with ABE files.  Thus any person with a C
  48.      compiler can decode an ABE file, even if they have never
  49.      heard of ABE files before.  It is limited to single file
  50.      encodings of less than 2 megabytes in size.
  51.  
  52.      The full ABE decoder, dabe, more advanced decoding, with
  53.      more error checking, is possible.  It is suggested that the
  54.      tiny decoder only be used by first time users of the format,
  55.      and those who plan more work should endeavour to use the
  56.      complete decoder.
  57.  
  58. OPTIONS
  59.      (Note that while option names are displayed here in full,
  60.      only the first letter is actually required.  For +/-
  61.      options, using + turns the option on, and using - turns the
  62.      option off.)
  63.  
  64.      blocksize=num
  65.           Request that files be split into blocks with an approx-
  66.           imate size of num. Note that files will actually be a
  67.           little bit larger than the requested size, so choose a
  68.           number lower than your hard maximum.  Blocks will be
  69.           put into the single output file unless an output file
  70.           prefix name is provided (p=name).
  71.  
  72.      prefix=str
  73.           Normally, abe writes encodings to the standard output.
  74.           This option turns on file blocking, and arranges for
  75.           each block to go into a different file.  All file names
  76.           will start with the prefix str and will have a 2-digit
  77.           hexadecimal number at the end.  The default block size
  78.           is 40,000 characters, but that may be set with the
  79.           (b=num) option.
  80.  
  81.      prefix=|command
  82.           On UNIX systems, if the prefix string begins with an
  83.           or-bar (|), the blocks will actually be piped through a
  84.           shell process using popen(3).  The shell command string
  85.           passed to popen will be that generated by sprintf(3)
  86.           with the prefix string (excluding the or-bar) given as
  87.           the format string, and the file number given as an
  88.           integer argument.  For example, on Unix:
  89.               abe b=25000 file "p=|mail -s 'Part%d' fbaggins"
  90.           would mail all the blocks, with titles, to user fbag-
  91.           gins.  Note that you must quote the whole option, or
  92.           the or-bar will be taken as a pipe character by the
  93.           Unix shell.
  94.  
  95.      universalname=name
  96.           ABE encodings include both the real name of the encoded
  97.           file and a special universal name that is limited to 12
  98.           characters and should contain no directory characters
  99.           like slash.  The universal name is used when decoding
  100.           on an operating system different from the encoder's
  101.           system.  Universal names are also used when multiple
  102.           files are placed in the same encoding.  If you don't
  103.           provide a universal name, one will be formed from the
  104.           real file name.  You can only provide your own univer-
  105.           sal name when encoding a single file.  If no filename
  106.           is given, a universal name of "stdin" is used.
  107.      decoder=pathname
  108.           Insert the source to the tiny ABE decoder "tinydabe.c"
  109.           from the file in pathname.
  110.  
  111.      sample=size
  112.           abe and do either a single pass or double pass over its
  113.           input, except when the input is the standard input, in
  114.           which case only a single pass is possible.  abe likes
  115.           to do two passes so that it can get frequency tables
  116.           for the bytes in the input file.  The more accurate the
  117.           frequency tables, the smaller the encoding.  If two
  118.           passes are not possible, or you request one-pass opera-
  119.           tion with this option, abe reads in a buffer of size
  120.           size and builds the frequency table from that.  The
  121.           default (for stdin) is 10,000 bytes.  You can set it as
  122.           high as the limit for dynamic memory allocation on your
  123.           system.
  124.  
  125.      linenumber=num
  126.           Normally ABE encodings start at line one.  If you wish
  127.           to concatenate two encodings, you can start your second
  128.           encoding at a higher line number with this option.  You
  129.           give the number in decimal, although it will be output
  130.           in ABE's special format of 3 printable characters.
  131.           Encodings that don't start at line 1 will be rejected
  132.           by the tiny dabe decoder.
  133.  
  134.      +redundant
  135.           In a blocked encoding, this option asks that redundant
  136.           information be added to each block, so that the file
  137.           may be decoded without sorting by the advanced ABE
  138.           decoder, even if blocks are missing, duplicated or in
  139.           the wrong order.
  140.  
  141.      +decoder
  142.           Request that the source for the tiny ABE decoder be
  143.           inserted into your ABE encoding.  The source is to be
  144.           taken from the standard location defined by your system
  145.           administrator.
  146.  
  147.      +ebcdic
  148.           Use the ABE2 encoding, which is designed to pass
  149.           through EBCDIC machines without trouble.  The ABE2
  150.           encoding does not make use of the following characters:
  151.           "![\]^`{|}~" -- they have all been reported to some-
  152.           times not survive multiple ASCII<-->EBCDIC transla-
  153.           tions.  It maps to 4 sets of 64 characters, and pro-
  154.           duces encodings that are slightly larger.
  155.  
  156.      +uuencode
  157.           Use the UUENCODE encoding scheme.  These scheme is
  158.           totally unlike ABE schemes, but is quite popular and
  159.           sometimes a bit smaller on compressed binary files.
  160.           UUENCODE lines are formed from the 64 characters from
  161.           space to underbar, with a simple mapping that maps 4
  162.           printable characters to 3 binary bytes.  Files produced
  163.           with +uuencode can often be decoded by uudecode(1)
  164.           decoders after the application of sort and a simple
  165.           sed(1) script to remove the first four bytes of each
  166.           line.  If you use the -number option, the sed script is
  167.           not even necessary   The UUENCODE format is more prone
  168.           to errors and usually is more bulky than either ABE
  169.           format.
  170.  
  171.      -numbers
  172.           Remove line numbers and line checksums from most of the
  173.           encoding.  The first few lines of every block will
  174.           still have line numbers, but the bulk of the encoding
  175.           will not.  This saves 4 bytes per line, reducing the
  176.           size of encodings by about 6%.   Such encodings can't
  177.           be decoded by tinydabe decoders, nor can they be
  178.           sorted.  While they are more prone to potential errors,
  179.           most such errors occur between blocks, so removing the
  180.           line numbers is usually safe.  When used with +uuen-
  181.           code, this option allows encodings that can be decoded
  182.           both with dabe(1) and uudecode(1).
  183.  
  184. OPERATION
  185.      Abe can take input in 3 ways.  The first is the standard
  186.      input, which allows abe to be used at the end of a pipe.  If
  187.      the standard input is used, abe works in one-pass mode, and
  188.      only reads the first part of the file to figure out charac-
  189.      ter mappings.
  190.  
  191.      Abe may also be given a single filename, in which case that
  192.      file will be encoded.  An alternate output name can be pro-
  193.      vided with the "universalname=" option.
  194.  
  195.      Abe can also be given multiple files.  The output will be
  196.      roughly equivalent to the concatenation of single-file ABE
  197.      encodings, except the line numbers will continue properly in
  198.      sequence.  This produces a sort of multi-file archive,
  199.      although abe is not intended to be used as an archiver.   In
  200.      fact, it is better to use abe on the output of general non-
  201.      compressing archivers like tar(1) or cpio(1).  It can also
  202.      be used on compressed archiver output, but generally it's
  203.      better to let the transport mechanism (usually USENET links)
  204.      worry about doing the compressing.
  205.  
  206. ENCODING FORMAT
  207.      In the standard ABE1 encoding, 256 bytes are broken up into
  208.      3 sets, with 86, 86 and 84 bytes, respectively.  The most
  209.      common 86 bytes in the file go into set 0, and so on.  86 of
  210.      the printable ASCII characters are used to encode the
  211.      members of each set.  Special printable escape characters
  212.      switch from set to set.
  213.  
  214.      In an ABE encoding, printable characters always map to them-
  215.      selves, if possible.  This means that printable character
  216.      strings found in binary files are still readable in an ABE
  217.      encoding.  You can often look at a raw ABE file and see what
  218.      it is, which is quite useful.  In addition, the byte 0 maps
  219.      to the ASCII digit "0," and several other similar useful
  220.      mappings are made.
  221.  
  222.      ABE files also have header information that defines informa-
  223.      tion about the encoded files, block headings, sizes and
  224.      checksums.  For full details on the encoding format, see the
  225.      special file on that in the ABE kit.
  226.  
  227.      The ABE2 encoding splits the 256 bytes into 4 sets of 64
  228.      bytes each.  It avoids certain dangerous characters.  Other-
  229.      wise it is similar to ABE1.  ABE2 encodings are only
  230.      slightly larger, and slightly less readable than ABE1 encod-
  231.      ings
  232.  
  233. COMPRESSION
  234.      ABE files usually always use the same string of printable
  235.      characters to represent a given string of printable bytes.
  236.      (This is not true for uuencodings.)  This is good for LZW
  237.      compressors.
  238.  
  239.      ABE encodings are very good on text files.  In general,
  240.      except for the overhead of headers, checksums and line
  241.      numbers, text files encode to the same size in an ABE file.
  242.      Sadly, ABE does its worst job on compressed files.  This
  243.      "worst job" is usually about the same as the job done by
  244.      uuencode, plus the overhead of headers, checksums and line
  245.      numbers.  In general, files posted to USENET should not be
  246.      pre-compressed, as compression should be left to the tran-
  247.      sportation mechanisms.  (Most USENET links batch and
  248.      compress what they transmit.)
  249.  
  250. BLOCKING
  251.      The ABE blocking system is ideal for sending binaries over
  252.      USENET and other limited channels.  Normally, ABE output is
  253.      a continuous stream sent to the standard output.
  254.  
  255. AUTHOR
  256.      The ABE system was written by Brad Templeton, who is
  257.      brad@looking.UUCP.  (Mail regarding abe should go to
  258.      abe@looking.UUCP.) The tiny ABE decoder is released to the
  259.      public domain.  All other files are Copyright 1989 by Brad
  260.      Templeton.  A licence for unlimited non-commercial use of
  261.      these encoders is granted.  See the source code in the ABE
  262.      kit for full details on the licence.
  263.  
  264.      No fee is requested or required for the use of these pro-
  265.      grams.  If you feel the need to show appreciation, You might
  266.      order copies of the REC.HUMOR.FUNNY Computer Network Humour
  267.      Annual(s) (a USENET jokebook) for 9.95 USD+S/H.  Mail to
  268.      jokebook@looking.UUCP or call 519/884-7473.  There is no
  269.      requirement to buy the jokebook in order to use these pro-
  270.      grams.
  271.  
  272. FILES
  273.      tinydabe.c
  274.  
  275. SEE ALSO
  276.      dabe(1), uuencode(1), ABE file format (abeformat)
  277.  
  278. VERSION
  279.      Version 1.0
  280.  
  281.  
  282.                        Manual formatted 1989/07/18
  283.