    Network Working Group                                          J. Postel
    Request for Comments: 769                                            ISI
                                                           26 September 1980

                       Rapicom 450 Facsimile File Format
                       ---------------------------------

    Introduction:

    Several  organizations  in the ARPA Internet  community have RAPICOM 450
    facsimile   machines   interfaced   to  computers.   This  allows  these
    organizations  to enter a facsimile  representation  of a  page  into  a
    computer  file, and to produce a page from stored facsimile data.  These
    organizations  can exchange  stored facsimile data via file transfer and
    other protocols.   The purpose  of this note is to document  the  format
    used for  these  files  so  that  other  organizations  with  compatible
    facsimile devices can join in this information exchange procedure.

    The Rapicom 450:

    The Rapicom  450 has a built in encoding/decoding  scheme.   It produces
    data blocks  of 585 bits.   There are "set up" blocks and "data" blocks.
    The machine sends/receives several copies of the set up block, but since
    they are identical only one set up block is stored in the file.

    Records:

    Each 585 bit block  is placed  in a record  of 8-bit  bytes.  The record
    format is a length byte, a command byte and the data bytes.  Each record
    is an integral  number  of bytes.   The length value includes the length
    byte and the command  byte.   The command describes the data in the data
    field.

       0        1        2        3                              length
       +--------+--------+--------+--------+---//---+--------+--------+
       | length | command|   data                                     |
       +--------+--------+--------+--------+---//---+--------+--------+

                          Rapicom 450 Facsimile Record

    Commands:

    56 - SET-UP

      The command code 56 (70 octal) indicates the following data field is a
      set up block.

    Postel                                                          [page 1]

                                                           26 September 1980
    Rapicom 450 Facsimile File Format                                RFC 769

    57 - DATA

      The command code 57 (71 octal) indicates the following data field is a
      data block.

    58 - END

      The command  code 58 (72 octal) indicates that this is the last record
      in the file.   In this case the length may be 2, indicating that there
      is no data in this record.

    Conventions:

    In the files exchanged  to date,  each record  contains one block.  This
    means the data field is 74 bytes long  (585/8=73.125),  and  the  length
    field  has the value  76 (114 octal),  except  the last record which may
    carry no data and have a length of 2.

    The first  record  of a file is always  a SET UP record,  the  following
    records are DATA records, until the last record which is an END record.

    Details:

    The 585 bit data  block  is encoded by the Rapicom 450 and so can not be
    used a bit map unless the encoding/decoding procedure is known and used.

    The first 24 bits of the block is always a synchronization mark with the
    value 271 141 344 in octal or 101110010110000111100100 in binary.

    The low order  two bits of the  next  byte  contain  a  sequence  number
    (modulo 4).  The sequence number bits cycle in the order 11, 01, 10, 00,
    starting with the first DATA record (not the SET UP record).

    The line below represents  a DATA record,  where L represents  a  length
    bit,  C represents a command bit, M represents the synchronization mark,
    S represents  a  sequence  bit,  F  represents  a  fill  bit,  the  dash
    represents 68 other data octets, and an D represents a data bit.

    LLLLLLLLCCCCCCCCMMMMMMMMMMMMMMMMMMMMMMMMDDDDDDSSDDDDDDDD-DFFFFFFF

    In the line below  the normal values have been filled in for the length,
    the command, the synchronization mark and fill bits.

    0100110000111001101110010110000111100100DDDDDDSSDDDDDDDD-D0000000

    [page 2]                                                          Postel