Change Log(SRecord) Change Log(SRecord) RELEASE NOTES This file details the various features and bug fixes of the various releases. Version 1.42 (2008-Jun-01) * The MOS Technology format was not reading and writing end records correctly, this has been fixed. The name of the company has been corrected. * Some examples of how to insert constant or scripted data into your EPROM load files have been added to the srec_examples(1) man page. Version 1.41 (2008-May-12) * False negative being reported by tests on Cygwin have been fixed. * There are six new filters (-be-exclusive-length, -le-exclusive- length, -be-exclusive-maximum, -le-exclusive-maximum, -be-exclusive- minimum and -le-exclusive-minimum) which are very similar to their non- exclusive equivalents, except that they do not include the adress range covered by their output in their output. * A bug has been fixed in the C word-array output. It was getting offsets and lengths wrong in some cases. * A bug has been fixed in the generated C array header file, it no longer omits the section descriptor arrays. * A problem with building RPM packages with the names of the executables in the .spec file has been fixed, and the BuildRequires has been updated. Version 1.40 (2008-Mar-13) * An RPM build problem has been fixed. * The dependency on the Boost library is now documented in the BUILDING file. * Some build problems with g++ 4.3 have been fixed * A bug has been fixed in the calculation of ranges on the command line, it no longer goes into an infinite loop for "--fill 0xFF -over { foo.hex -exclude -within foo.hex }" construct, which should have been calculating an empty fill set, but was instead calculating a 4GB fill set. * The CRC32 filters now take an -xmodem option, to use an xmodem-like (all bit zero) initial state, rather than the default CCITT (all bits on) initial state. Version 1.39 (2008-Feb-04) * A bug has been fixed in the use of parentheses to group filters and override the default precedences. Version 1.38 (2008-Jan-14) * The CRC16 filters now support a -Broken option, to perform a common- but-broken CRC16 calculation, in addition to the CCITT and XMODEM calculations. * A link has been added to the CRC16 man page section to the www.joegeluso.com/software/articles/ccitt.htm web page, to explain the difficulties in seeding CRC16 calculations. * A buglet has been fixed in the srec-motorola(5) man page, it now includes S6 in the list of things that can appear in the type field. * The ability to negate expressions is now mentioned in the srec_examples(1) man page. Version 1.37 (2007-Oct-29) * It is now possible to have negative expressions on the command line, to facilitate "--offset - -minimum foo" usages. * The srec_cat(1) command now has a simple hexadecimal dump output format. * The use of uudecode(1) in the tests has been removed, so sharutils is no longer a build dependency. Version 1.36 (2007-Aug-07) * A bug has been fixed in the CRC-16 CCITT calculation; the algorithm was correct but the start value was incorrect, leading to incorrect results. * The CRC16 filters have a new --no-augment option, to omit the 16 zero bits augmenting the message. This is not CCITT standard conforming, but some implementations do this. * A problem has been fixed in the generated Makefile.in file found in the tarball. * The license has been changed to GNU GPL version 3. Version 1.35 (2007-Jun-23) * A major build problem with the generated makefile has been fixed. Version 1.34 (2007-Jun-22) * The C and ASM output formats have been improved in the word mode. * Several build problems have been fixed. Version 1.33 (2007-May-18) * More examples have been added to the documentation. * It is now possible to perform set intersection and set difference on address ranges on the command line. * There is a new category of data source: generators. You can generate constant data, random data and repeating data. * The assembler and C-Array outputs now support additional options to facilitate MSP430 systems. They can also optionally write shorts rather than bytes. * You can now round address ranges on the command line to be whole multiples of a number of bytes. Version 1.32 (2007-Apr-24) * The TI-TXT format output has been improved; it is less spec conforming but more reality conforming. It now allows odd alignment without padding. It also ends with a q instead of a Q. * The warning for odd input addresses has been dropped. The spec didn't like them, but the MSP430 handles them without a hiccup. Version 1.31 (2007-Apr-03) * The Verilog format now suppresses comments when you specify the --data-only option. * The Texas Instruments ti-txt (MSP430) format is now understood for reading and writing. Version 1.30 (2007-Mar-21) * The ascii-hex output format has been improved. * The ti-tagged-16-bit format is now understood for reading and writing. * The Intel format no longer warns about missing optional records. * A bug in the ti-tagged format has been fixed, it now understands the '0' tag. Version 1.29 (2007-Mar-13) * A serious bug has been fixed in the generated Makefile. Version 1.28 (2007-Mar-08) * It is now possible to read and write files in the Freescale MC68EZ328 Dragonball bootstrap b-record format Version 1.27 (2006-Dec-21) * [SourceForge Feature Request 1597637] There is a new warning issued when input data records are not in strictly ascending address order. There is a new command line option to silence the warning. * [SourceForge Feature Request 1592348] The command line processing of all srecord commands now understands @file command line options, filled with additional space separated strings witch will be treated as of they were command line options. This gets around absurdly short command line length limits in some operating systems. Version 1.26 (2006-May-26) * It is now possible to place parentheses on the command line in more places to clarify your intent. * This change prepares SRecord for the next public release. Version 1.25 (2006-May-18) * The assembler output has been enhanced to produce ORG directives, if necessary, to change the data address. * The srec_cat(1) command now only writes a start address into the output if there was a start address present in the input. Version 1.24 (2006-Mar-08) * Additional information has been added to the lseek error when they try to seek to addresses >= 2**31 * The CRC 16 filters have been enhanced to accept an argument to specify whether CCITT or XMODEM calculations are to be performed. Version 1.23 (2005-Sep-23) * A segfault has been fixed on x86_64 when running the regression test suite. * A compile problem with the lib/srec/output/file/c.cc file has been fixed. Version 1.22 (2005-Aug-12) * The -byte-swap filter now has an optional width argument, to specify the address width to swap. The default is two bytes. * The motorola file format now accepts an additional 'width' command line argument, so you can have 16-bit and 32-bit address multiples. * A bug has been fixed in the VMEM output format. It was failing to correctly set the next address in some cases. This fixes SourceForge bug 1119786. * The -C-Array output format now uses the const keyword by default, you can turn it off with the -no-const option. The -C-Array output format can now generate an additional include file if you use the -INClude option. This answers SourceForge feature request 942132. * A fix for the "undefined symbols" problem when using g++ 3.x on Cygwin and MacOsX has been added to the ./configure script. * There is a new -ignore-checksum command line option. The -ignore- checksums option may be used to disable checksum validation of input files, for those formats which have checksums at all. Note that the checksum values are still read in and parsed (so it is still an error if they are missing) but their values are not checked. Version 1.21 (2005-Feb-07) * More Doxygen comments have been added to the class header files. * There is a new srec_cat --crlf option, which may be used for force CRLF output on operating systems which don't use that style of line termination. * A number of problems with GCC, particularly with the early 3.x series. * There is a new "Stewie" format, an undocumented format loosely based on the Motorola S-Record format, apparently used in mobile phones. More information would be most welcome. * A number of build problems have been fixed. Version 1.20 (2004-Feb-08) * The AOMF format now accepts (and ignores) more record types. Version 1.19 (2004-Jan-03) * It is now possible to set the start address in the output using the srec_cat -Start_Address command line option. * The Intel Absolute Object Module Format (AOMF) is now supported for reading and writing. * There is a new srec_cat -Random_Fill filter, like the srec_cat -Fill filter except that it uses random values. Version 1.18 (2004-Jan-01) * The VMEM format is now able to output data for 64 and 128 bits wide memories. * A bug in the SRecord reference manuals has been fixed; the CRCxx had a copy-and-paste glitch and always said big-endian where little endian was intended half the time. Version 1.17 (2003-Oct-12) * There is now support for Intel Extended Segment addressing output, via the --address-length=2 option. * There is now support for output of Verilog VMEM format. See srec_vmem(5) for more information. * There is now support for reading and writing the INHX16 format, used in various PIC programmers. It looks just like the Intel Hex format, except that the bytes counts and the addresses refer to words (hi,lo) rather than bytes. See srec_intel16(5) for more information. Version 1.16 (2003-Jul-28) * Some updates have been made to cope with GCC 3.2 Version 1.15 (2003-Jun-16) * The ASCII-Hex implementation is now slightly more complete. I still haven't found a definitive description. * The Fairchild Fairbug format has been added for reading and writing. See srec_fairchild(5) for more information. * The Spectrum format has been added for reading and writing. See srec_spectrum(5) for more information. * The Formatted Binary format has been added for reading and writing. See srec_formatted_binary(5) for more information. * The RCA Cosmac Elf format has been added for reading and writing. See srec_cosmac(5) for more information. * The Needham EMP programmer format has been added for reading and writing. See srec_needham(5) for more information. Version 1.14 (2003-Mar-11) * Numerous fixes have been made to header handling. It is now possible to specify an empty header with the -header command line option. * Some more GCC 3.2 build problems have been fixed. Version 1.13 (2003-Feb-05) * Bugs have been fixed in the Texas Instruments Tagged and VHDL formats, which produced inconsistent output. * A couple of build problems have been fixed. * There are two new output formats for ASM and BASIC. Version 1.12 (2002-Dec-06) * It is now possible to put -minimum input.spec (also -maximum and -length) almost anywhere on the command line that you can put a number. It allows, for example, the -offset value to be calculated from the maximum of the previous file. The values calculated by -Minimum, -Maximum and -Length may also be rounded to arbitrary boundaries, using -Round_Down, -Round_Nearest and -Round_Up. * The malformed Motorola S5 records output by the Green Hills tool chain are now understood. Version 1.11 (2002-Oct-21) * The Ohio Scientific OS65V audio tape format has been added for reading and writing. See srec_os65v(5) for more information. * Some build problems have been fixed. Version 1.10 (2002-Jun-14) * The Intel format now emits the redundant extended linear address record at the start of the file; some loaders couldn't cope without it. * The Binary format now copes with writing to pipes. * The Motorola format now understands the S6 (24-bit data record count) records for reading and writing. * The DEC Binary format now works correctly on Windows machines. * The LSI Logic Fast Load format is now understood for both reading and writing. See srec_fastload(5) for more information. Version 1.9 (2001-Nov-27) * The DEC Binary (XXDP) format is now understood for both reading and writing. See srec_dec_binary(5) for more information. * The Elektor Monitor (EMON52) format is now understood for both reading and writing. See srec_emon52(5) for more information. * The Signetics format is now understood for both reading and writing. See srec_signetics(5) for more information. * The Four Packed Code (FPC) format is now understood for both reading and writing. See srec_fpc(5) for more information. * Wherever possible, header data is now passed through by srec_cat(1). There is also a new srec_cat -header option, so that you can set the header comment from the command line. * The Atmel Generic format for Atmel AVR programmers is now understood for both reading and writing. See srec_atmel_generic(5) for more information. * The handling of termination records has been improved. It caused problems for a number of filters, including the -fill filter. * A bug has been fixed in the checksum calculations for the Tektronix format. * There is a new SPASM format for PIC programmers. See srec_spasm(5) for more information. Version 1.8 (2001-Apr-20) * There is a new ``unfill'' filter, which may be used to perform the reverse effect of the ``fill'' filter. * There is a new bit-wise NOT filter, which may be used to invert the data. * A couple of bugs have been fixed in the CRC filters. Version 1.7 (2001-Mar-19) * The documentation is now in PDF format. This was in order to make it more accessible to a wider range of people. * There is a new srec_cat --address-length option, so that you can set the length of the address fields in the output file. For example, if you always want S3 data records in a Motorola hex file, use --address- length=4. This helps when talking to brain-dead EPROM programmers which do not fully implement the format specification. * There is a new --multiple option to the commands, which permits an input file to contain multiple (contradictory) values for some memory locations. The last value in the file will be used. * A problem has been fixed which stopped SRecord from building under Cygwin. * A bug has been fixed in the C array output. It used to generate invalid output when the input had holes in the data. Version 1.6 (2000-Dec-03) * A bug has been fixed in the C array output. (Holes in the input caused an invalid C file to be produced.) * There is are new CRC input filters, both 16-bit and 32-bit, both big and little endian. See srec_cat(1) for more information. * There is a new VHDL output format. * There are new checksum filters: in addition to the existing one's complement (bit not) checksum filter, there are now negative and positive checksum filters. See srec_cat(1) for more information. * The checksum filters are now able to sum over 16-bit and 32-bit values, in addition to the existing byte sums. * The srec_cmp program now has a --verbose option, which gives more information about how the two inputs differ. See srec_cmp(1) for more information. Version 1.5 (2000-Mar-06) * There is now a command line option to guess the input file format; all of the tools understand this option. * The ``MOS Technologies'' file format is now understood for reading and writing. See srec_mos_tech(5) for more information. * The ``Tektronix Extended'' file format is now understood for reading and writing. See srec_tektronix_extended(5) for more information. * The ``Texas Instruments Tagged'' file format is now understood for reading and writing. (Also known as the TI-Tagged or SDSMAC format.) See srec_ti_tagged(5) for more information. * The ``ascii-hex'' file format is now understood for reading and writing. (Also known as the ascii-space-hex format.) See srec_ascii_hex(5) for more information. * There is a new byte swap input filter, allowing pairs of odd and even input bytes to be swapped. See srec_cat(1) for more information. * The ``wilson'' file format is now understood for reading and writing. This mystery format was added for a mysterious type of EPROM writer. See srec_wilson(5) for more information. * The srec_cat program now has a -data-only option, which suppresses all output except for the data records. This helps when talking to brain-dead EPROM programmers which barf at anything but data. See srec_cat(1) for more information. * There is a new -Line-Length option for the srec_cat program, allowing you to specify the maximum width of output lines. See srec_cat(1) for more information. Version 1.4 (2000-Jan-13) * SRecord can now cope with CRLF sequences in Unix files. This was unfortunately common where the file was generated on a PC, but SRecord was being used on Unix. Version 1.3 (1999-May-12) * A bug has been fixed which would cause the crop and exclude filters to dump core sometimes. * A bug has been fixed where binary files were handled incorrectly on Windows NT (actually, any system in which text files aren't the same as binary files). * There are three new data filters. The --OR filter, which may be used to bit-wise OR a value to each data byte; the --AND filter, which may be used to bit-wise AND a value to each data byte; and the --eXclusive- OR filter, which may be used to bit-wise XOR a value to each data byte. See srec_cat(1) for more information. Version 1.2 (1998-Nov-04) * This release includes file format man pages. The web page also includes a PostScript reference manual, containing all of the man pages. * The Intel hex format now has full 32-bit support. See srec_intel(5) for more information. * The Tektronix hex format is now supported (only the 16-bit version, Extended Tektronix hex is not yet supported). See srec_tektronix(5) for more information. * There is a new split filter, useful for wide data buses and memory striping, and a complementary unsplit filter to reverse it. See srec_cat(1) for more information. Version 1.1 (1998-Mar-22) First public release. Change Log SRecord Change Log(SRecord)