.lf 1 ./man/man5/srec_stewie.5
'\" t
.\" srecord - manipulate eprom load files
.\" Copyright (C) 2004, 2006-2009 Peter Miller
.\"
.\" This program is free software; you can redistribute it and/or modify
.\" it under the terms of the GNU General Public License as published by
.\" the Free Software Foundation; either version 3 of the License, or
.\" (at your option) any later version.
.\"
.\" This program is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public License
.\" along with this program. If not, see
.\" .
.\"
.ds n) srec_stewie
.TH \*(n) 5 SRecord "Reference Manual"
.SH NAME
srec_stewie \- Stewie's binary file format
.if require_index \{
.\}
.SH DESCRIPTION
If you have a URL for documentation of this format, please let me know.
.PP
Any resemblance to the Motorola S\[hy]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\[hy]Records record
type are available.
.SS 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.
.\" ------------------------------------------------------------------------
.br
.ne 1i
.SS The Header Record
Each file starts with a fixed four byte header record.
.TS
allbox,center,tab(;);
l l l l.
0x53;0x30;0x30;0x33
.TE
.\" ------------------------------------------------------------------------
.br
.ne 2i
.SS 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.
.TS
allbox,center,tab(;);
lf(CW) l l l l l.
0x53;Type;Record Length;Address;Data;Checksum
.TE
.TP 8n
Type
The type field is a one byte field that specifies whether
the record has
a two\[hy]byte address field (0x31),
a three\[hy]byte address field (0x32) or
a four\[hy]byte address field (0x33).
The address is big\[hy]endian.
.TP 8n
Record Length
The record length field is a one byte field that specifies the
number of bytes in the record following this byte.
.TP 8n
Address
This is a 2\[hy], 3\[hy] or 4\[hy]byte address that specifies where the data
in the record is to be loaded into memory.
.TP 8n
Data
The data field contains the executable code, memory\[hy]loadable data
or descriptive information to be transferred.
.TP 8n
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.
.\" ------------------------------------------------------------------------
.br
.ne 1i
.SS The Termination Record
Each file ends with a fixed two byte termination record.
.TS
allbox,center,tab(;);
l l.
0x53;0x38
.TE
.\" ------------------------------------------------------------------------
.SS Size Multiplier
In general, binary data will expand in sized by approximately 1.2 times
when represented with this format.
.\" ------------------------------------------------------------------------
.br
.ne 2i
.SH EXAMPLE
Here is an hex\[hy]dump example file.
It contains the data \[lq]Hello, World[rq] to be loaded at address 0.
.RS
.nf
.ft CW
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
.ft P
.fi
.RE
.\" ------------------------------------------------------------------------
.ds n) srec_cat
.lf 1 ./man/man1/z_copyright.so
.\"
.\" srecord - manipulate eprom load files
.\" Copyright (C) 1998, 2006-2009, 2014 Peter Miller
.\"
.\" This program is free software; you can redistribute it and/or modify
.\" it under the terms of the GNU General Public License as published by
.\" the Free Software Foundation; either version 3 of the License, or
.\" (at your option) any later version.
.\"
.\" This program is distributed in the hope that it will be useful,
.\" but WITHOUT ANY WARRANTY; without even the implied warranty of
.\" MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
.\" GNU General Public License for more details.
.\"
.\" You should have received a copy of the GNU General Public License
.\" along with this program. If not, see
.\" .
.\"
.br
.ne 1i
.SH COPYRIGHT
.lf 1 ./etc/version.so
.ds V) 1.64.D001
.ds v) 1.64
.ds Y) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011, 2012, 2013, 2014
.lf 23 ./man/man1/z_copyright.so
.I \*(n)
version \*(v)
.br
Copyright
.if n (C)
.if t \(co
\*(Y) Peter Miller
.br
.PP
The
.I \*(n)
program comes with ABSOLUTELY NO WARRANTY;
for details use the '\fI\*(n) \-VERSion License\fP' command.
This is free software
and you are welcome to redistribute it under certain conditions;
for details use the '\fI\*(n) \-VERSion License\fP' command.
.br
.ne 1i
.SH MAINTAINER
.TS
tab(;);
l r l.
Scott Finneran;E\[hy]Mail:;scottfinneran@yahoo.com.au
Peter Miller;E\[hy]Mail:;pmiller@opensource.org.au
.TE
.\" vim: set ts=8 sw=4 et :
.lf 115 ./man/man5/srec_stewie.5