Provided by: srecord_1.58-1_amd64 bug

NAME

       srec_stewie - Stewie's binary file format

DESCRIPTION

       If you have a URL for documentation of this format, please let me know.

       Any  resemblance  to  the  Motorola  S‐Record is superficial, and extends only to the data
       records.  The header records and termination records are completely  different.   None  of
       the other Motorola S‐Records record type are available.

   The Records
       All  records  start  with  an  ASCII  capital  S character, value 0x53, followed by a type
       specifier byte.  All records consist of binary bytes.

   The Header Record
       Each file starts with a fixed four byte header record.

                                      ┌─────┬──────┬──────┬──────┐
                                      │0x53 │ 0x30 │ 0x30 │ 0x33 │
                                      └─────┴──────┴──────┴──────┘
   The Data Records
       Each data record 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.

                       ┌─────┬──────┬───────────────┬─────────┬──────┬──────────┐
                       │0x53 │ Type │ Record Length │ Address │ Data │ Checksum │
                       └─────┴──────┴───────────────┴─────────┴──────┴──────────┘
       Type    The  type  field  is a one byte field that specifies whether the record has a two‐
               byte address field (0x31), a  three‐byte  address  field  (0x32)  or  a  four‐byte
               address field (0x33).  The address is big‐endian.

       Record Length
               The  record length field is a one byte field that specifies the number of bytes in
               the record following this byte.

       Address This is a 2‐, 3‐ or 4‐byte address that specifies where the data in the 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 a one byte field that represents the least significant byte of the
               one's  complement  of the sum of the values represented by the bytes making up the
               record's length, address, and data fields.

   The Termination Record
       Each file ends with a fixed two byte termination record.

                                             ┌─────┬──────┐
                                             │0x53 │ 0x38 │
                                             └─────┴──────┘
   Size Multiplier
       In general, binary data will expand in sized by approximately 1.2 times  when  represented
       with this format.

EXAMPLE

       Here  is an hex‐dump example file.  It contains the data “Hello, World[rq] to be loaded at
       address 0.
              0000: 53 30 30 33 53 31 10 00 00 48 65 6C 6C 6F 2C 20  S003S1...Hello,
              0010: 57 6F 72 6C 64 0A 9D 53 38                       World..S8

COPYRIGHT

       srec_cat version 1.58
       Copyright (C) 1998, 1999, 2000, 2001, 2002, 2003, 2004,  2005,  2006,  2007,  2008,  2009,
       2010, 2011 Peter Miller

       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:   pmiller@opensource.org.au
       /\/\*             WWW:   http://miller.emu.id.au/pmiller/