This chapter describes the Motorola srecord output module which can be selected with the -Fsrec option.

Legal
=====

This module is written in 2015 by Joseph Zatarski and is covered by the vasm copyright without modifications.

Additional options for this module
==================================

-crlf
     Enforce Carriage-Return and Line-Feed ("\r\n") line endings. Default is to use the host's line endings.

-exec[=<symbol>]
     Use the given symbol <symbol> as entry point of the program. This start address will be written into the trailer record, which is otherwise zero. When the symbol assignment is omitted, then the default symbol start will be used.

-s19
     Writes S1 data records and S9 trailers with 16-bit addresses.

-s28
     Writes S2 data records and S8 trailers with 24-bit addresses.

-s37
     Writes S3 data records and S7 trailers with 32-bit addresses. This is the default setting.

General
=======

This output module outputs the contents of all sections in Motorola srecord format, which is a simple ASCII output of hexadecimal digits. Each record starts with 'S' and a one-digit ID. It is followed by the data and terminated by a checksum and a newline character. Every section starts with a new header record.

Known Problems
==============

Some known problems of this module at the moment:

  - A new header is written for every new section. This may cause compatibility issues.

Error Messages
==============

This module has the following error messages:

  - 3007: undefined symbol <%s>

  - 3010: section <%s>: alignment padding (%lu) not a multiple of %lu at 0x%llx

  - 3012: address 0x%llx out of range for selected format