.lf 1 ./man/man5/srec_ascii_hex.5
'\" t
.\" srecord - manipulate eprom load files
.\" Copyright (C) 2000, 2001, 2003, 2006-2009, 2011 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_ascii_hex
.TH \*(n) 5 SRecord "Reference Manual"
.SH NAME
srec_ascii_hex \- Ascii\[hy]Hex file format
.if require_index \{
.XX "srec_ascii_hex(5)" "Ascii\[hy]Hex file format"
.\}
.SH DESCRIPTION
This format is also known as the \fIAscii\[hy]Space\[hy]Hex\fP or
\fIAscii\[hy]Hex\[hy]Space\fP format.
If you know who invented this format, please let me know. If you have
a better or more complete description, I'd like to know that, too.
.PP
The file starts with a start\[hy]of\[hy]text (STX or Control\[hy]B)
character (0x02).
Everything before the STX is ignored.
.LP
Each data byte is represented as 2 hexadecimal characters, followed by
an "execution character". The default execution character is a space,
although many programs which write this format omit the space
character immediately preceding end\[hy]of\[hy]line.
.LP
The address for data bytes is set by using a sequence of
\f[CW]$A\fP\f[CI]nnnn\fP\f[CW],\fP characters, where \fInnnn\fP is the
4\[hy]character ascii representation of the address. The comma is required.
There is no need for an address record unless there are gaps. Implicitly,
the file starts a address 0 if no address is set before the first
data byte.
.PP
The file ends with an end\[hy]of\[hy]text (ETX or Control\[hy]C)
character (0x03).
Everything following the ETX is ignored.
.PP
It is also possible to specify a running 16\[hy]bit checksum using a sequence
of \f[CW]$S\fP\f[CI]nnnn\fP\f[CW],\fP characters, although this usually
appears \fIafter\fP the ETX character and is thus often ignored.
.SS Variant Forms
In addition to a space character, the execution character can also be
percent (%) called "ascii\[hy]hex\[hy]percent" format, apostrophe (') or comma
(,) called "ascii\[hy]hex\[hy]comma" format. The file must use the same
execution character throughout.
.PP
If the execution character is a comma, the address and checksum commands
are terminated by a dot (.) rather than a comma (,).
.SS Size Multiplier
In general, binary data will expand in sized by approximately 3.0 times
when represented with this format.
.\" ------------------------------------------------------------------------
.br
.ne 2i
.SH EXAMPLE
Here is an example ascii\[hy]hex file.
It contains the data \[lq]Hello, World[rq] to be loaded at address 0x1000.
.RS
.nf
.ft CW
^B $A1000,
48 65 6C 6C 6F 2C 20 57 6F 72 6C 64 0A ^C
.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 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.58.D001
.ds v) 1.58
.ds Y) 1998, 1999, 2000, 2001, 2002, 2003, 2004, 2005, 2006, 2007, 2008, 2009, 2010, 2011
.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 AUTHOR
.TS
tab(;);
l r l.
Peter Miller;E\[hy]Mail:;pmiller@opensource.org.au
/\e/\e*;WWW:;http://miller.emu.id.au/pmiller/
.TE
.lf 83 ./man/man5/srec_ascii_hex.5