The web site dedicated to the support of the Motorola S-Record format file.
This site is independently maintained and does not have any affiliation with Motorola Inc.
All trademarks of Motorola Inc. are acknowledged.
For any queries please e-mail firstname.lastname@example.org.
Unfortunately I haven't had enough time to make many serious alterations to this site.
31 Oct 2019 - V1.51 released.
27 Feb 2019 - V1.50 released.
7 Jul 2015 - V1.46 released.
12 Aug 2014 - V1.43 released.
1 Jul 2013 - V1.42 released.
22 Aug 2012 - V1.41 released.
6 Aug 2012 - V1.40 released.
10 Dec 2010 - V1.30 released.
20 Mar 2009 - V1.21 released.
31 Oct 2004 - V1.20 released.
18 Jun 2003 - Link to Peter Miller's SRecord changed to SourceForge.
9 Apr 2002 - V1.11 released and link added to Peter Miller's SRecord site.
28 Nov 2001 - s-record.com has been moved to a new ISP hosting service. It no longer re-directs.
7 Sep 2001 - Due to problems with the transfer to a new ISP the download link became invalid.
This has now been fixed.
I am still planning to add a section detailing the format of the S-Record file.
This is currently under construction.
SREC2BIN and BIN2SREC
In 2000 I found myself in need of a DOS program (to run from a batch file)
to convert a Motorola S-Record file into a binary image. I had a couple of
programs which claimed to be able to do this however they both had a 64 KB
binary file size limitation. This was presumably because of the memory
segment arrangements imposed by DOS real mode. I therefore decided to
write a program in my spare time to overcome this limitation.
While I was at it I also wrote a program to convert the other
way. A few of my colleagues liked my programs and suggested that I post
them on my web site, which I did. I have received several e-mails from
around the world as a result, with a few suggestions for new features,
most of which have been included in the latest version.
Versions from V1.20 compile under Linux as well as the free GNU based
A number of requests for creation of multiple ROM files have led to the addition
of the BINSPLIT utility. This can split a binary file into two or four interleaved
byte files that can be used to create ROMs for 16-bit or 32-bit wide applications.
BINSPLIT is now included in the distribution zip file.
Download srec_151_src.zip which contains
source code, or srec_151_win.zip which
contains the compiled Win32 command line EXEs that have been tested on
Windows XP, 7, 8.1 and 10.
The source code has also been built and
tested on Linux (Ubuntu) however linux binaries are not included in the zip file.
Older versions are still available here.
This software is provided under the terms of the
GNU General Public Licence.
Thanks to all the people who have contributed suggestions and ideas.
- No 64 KB limit on file size.
- The minimum size of the generated binary file can be specified.
New features for SREC2BIN V1.10:
- No 64 KB limit on file size.
- An offset for the generated addresses in the S-Record file can be specified.
- Specify the number of bytes to use for the address in the S-Record.
- Specify the line length of the S-Records in the file.
- Headers and footers can be suppressed to allow multiple S-Record files to be concatenated.
New features for BIN2SREC V1.10:
- Ignore S0 records with miscellaneous information which previously caused errors.
- Ignore lines which don't contain data records - these also caused "not an S-Record" errors.
- Add an option to change the default FF filler byte.
- An address offset can be specified.
By default, an S-Record file with one data byte at address FFFFh will
create a 64 KB binary file since the start address off the binary file
will be 0. By specifying an offset of FFFFh a 1 byte binary file can be
created; an offset of FFF0h would create a 16 byte binary file.
New features for V1.11:
- Allow the user to select part of the binary file - i.e. specify a start and end address.
New features for V1.20:
- Tidied up and changed to use the Borland C++ V5.0 compiler so that the source code can be distributed.
- The GNU General Public Licence has also been added.
New features for V1.30:
- Now compiles using mingw32-gcc from the MinGW tools.
New features for V1.40:
- Added BINSPLIT utility to create files for 2 or 4 byte-wide ROMs.
New features for V1.41:
- Fixed error in BIN2SREC when the offset causes the generated end address to be greater then or equal to 0xFFFFFFFF.
New features for V1.42:
- Fixed spelling errors in some messages.
New features for V1.43:
- srec2bin now returns 1 if the output file fails to be opened.
New features for V1.46:
- bin2srec now uses the S6 count record in the footer when more than 65535 S1/S2/S3 records are generated.
New features for V1.50:
- Fix SREC2BIN binary file creation when last address is 0xFFFFFFFF.
New features for V1.51:
- Increase buffer to cope with data fields larger than 32 bytes
- Speed improvement when creating output binary file
- Unsigned integers print using %u format specifier to prevent wrapping
Other ideas which may be forthcoming in future versions:
- Drag and drop Windows versions - the command line versions would continue to be supported.
If you would like to make any suggestions or if you want to be kept informed of new releases, please e-mail
- The Wikipedia entry about the SREC file format:
- The MinGW GNU tools used for compiling the S-Record utilities were downloaded from
- Peter Miller has written an excellent utility called
SRecord for Linux.
This also has source code available and can be compiled for Windows systems using the
Cygwin API. This utility has support for more file types
than SREC2BIN and BIN2SREC but is obviously not as small or straghtforward to use. :-)
Page validated by http://validator.w3.org
Copyright © 2000-2019 Ant Goffart