Provided by: srecord_1.23-1_i386 bug

NAME

       srec_motorola - Motorola S-Record hexadecimal file format

DESCRIPTION

       This format is also known as the Exorciser, Exormacs or Exormax format.

       Motorola’s S-record format allows  binary  files  to  be  uploaded  and
       downloaded between two computer systems.  This type of format is widely
       used when transferring programs and  data  between  a  computer  system
       (such as a PC, Macintosh, or workstation) and an emulator or evaluation
       board for Motorola microcontrollers and microprocessors.

   The Lines
       Most S-Record file contain only S-Record lines (see the next  section),
       which  always  start with a capital S character.  Some systems generate
       various ‘‘extensions’’ which usually manifest as lines which start with
       something  else.   These ‘‘extension’’ lines may or may not break other
       systems made by other vendors.  Caveat emptor.

   The Fields
       The S-record format consists of 5 fields. These  are  the  type  field,
       length  field,  address field, data field, and the checksum.  The lines
       always start with a capital S character.

               +--+------+---------------+---------+------+----------+
               |S | Type | Record Length | Address | Data | Checksum |
               +--+------+---------------+---------+------+----------+
       Type    The type field is a 1 character field  that  specifies  whether
               the record is an S0, S1, S2, S3, S5, S7, S8 or S9 field.

       Record Length
               The  record  length  field is a 2 character (1 byte) field that
               specifies the number of character pairs (bytes) in the  record,
               excluding the type and record length fields.

       Address This  is  a  2-,  3- or 4-byte address that specifies where the
               data in the S-record is to be loaded into memory.

       Data    The data field contains the  executable  code,  memory-loadable
               data or descriptive information to be transferred.

       Checksum
               The  checksum  is  an  8-bit  field  that  represents the least
               significant byte of the one’s complement  of  the  sum  of  the
               values  represented  by  the  pairs of characters making up the
               record’s length, address, and data fields.

   Record Types
       S0      This type of record is the header record for each block  of  S-
               records.    The   data   field   may  contain  any  descriptive
               information identifying the following block of S-records.   (It
               is  commonly  ‘‘HDR’’  on  many systems.)  The address field is
               normally zero.

       S1      A record containing data and the 2-byte address  at  which  the
               data is to reside.

       S2      A  record  containing  data and the 3-byte address at which the
               data is to reside.

       S3      A record containing data and the 4-byte address  at  which  the
               data is to reside.

       S5      A  record  containing  the  number  of  S1,  S2  and S3 records
               transmitted in a particular block.  The count  appears  in  the
               two-byte address field.  There is no data field.

       S6      A  record  containing  the  number  of  S1,  S2  and S3 records
               transmitted in a particular block.  The count  appears  in  the
               three-byte address field.  There is no data field.

       S7      A  termination  record  for a block of S3 records.  The address
               field may contain the 4-byte  address  of  the  instruction  to
               which control is passed.  There is no data field.

       S8      A  termination  record  for a block of S2 records.  The address
               field  may  optionally  contain  the  3-byte  address  of   the
               instruction  to  which  control  is  passed.   There is no data
               field.

       S9      A termination record for a block of S1  records.   The  address
               field   may  optionally  contain  the  2-byte  address  of  the
               instruction to which control is passed.  If not specified,  the
               first  entry  point  specification  encountered  in  the object
               module input will be used.  There is no data field.

   Size Multiplier
       In general, binary data will expand in sized by approximately 2.4 times
       when represented with this format.

EXAMPLE

       Here  is  an  example  S-Record  file.   It  contains the data ‘‘Hello,
       World’’ to be loaded at address 0.
              S00600004844521B
              S110000048656C6C6F2C20576F726C640A9D
              S5030001FB
              S9030000FC

COPYRIGHT

       srec_cat version 1.23
       Copyright (C) 1998, 1999, 2000, 2001,  2002,  2003,  2004,  2005  Peter
       Miller;
       All rights reserved.

       The srec_cat program comes with ABSOLUTELY NO WARRANTY; for details use
       the ’srec_cat -VERSion License’ command.  This is free software and you
       are  welcome  to  redistribute it under certain conditions; for details
       use the ’srec_cat -VERSion License’ command.

AUTHOR

       Peter Miller   E-Mail:   millerp@canb.auug.org.au
       /\/\*             WWW:   http://www.canb.auug.org.au/~millerp/