.lf 1 ./man/man5/srec_trs80.5 '\" t .\" srecord - manipulate eprom load files .\" Copyright (C) 2012 Peter Miller .\" .\" Code contribution by Eric Smith .\" Copyright assigned to Peter Miller 15-Mar-2012. .\" .\" 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_trs80 .TH \*(n) 5 SRecord "Reference Manual" .SH NAME srec_trs80 \- Radio Shack TRS\[hy]80 object file format specification .if require_index \{ .\} .SH DESCRIPTION This document describes the binary object file format for the Z80\[hy]based Radio Shack TRS\[hy]80 microcomputers, such as the Model I, II, III, 4, 4D, and 4P. The binary format is generated by the disk\[hy]based Assembler/Editor, and used for TRS\[hy]DOS program files. .PP The object file is blocked into records, each of which contains the record type, length, and payload data. For Data and End of File records, the payload starts with two bytes of address in little\[hy]endian format. There are four main types of records that are defined. The record types are: .TP 2n \(bu Data Record .TP 2n \(bu End of File Record with Execution Transfer .TP 2n \(bu End of File Record without Execution Transfer .TP 2n \(bu Comment .TP 2n \(bu Start Linear Address Record (32\[hy]bit format only) .SS General Record Format .TS allbox,tab(;); le le le le. T{ Record .br Type T};T{ Record .br Length T};T{ Load .br Address T};T{ Data T} .TE .TP 8n Record Type. .RS Each record begins with a single byte Record Type field which specifies the record type of this record. The Record Type field is used to interpret the remaining information within the record. This field is one byte, represented as two hexadecimal characters. The encoding for all the current record types are: .TP 3n 1 Data Record .TP 3n 2 End of File Record with Execution Transfer .TP 3n 3 End of File Record without Execution Transfer .TP 3n 5 Comment Record .RE .TP 8n Record Length Each record has a single byte Record Length field which specifies the number of bytes of information or data which follows the Record Length field of the record. The maximum value of the Record Length field is hexadecimal \[lq]FF\[rq] or 255. In the case of Data Records only, Record Length byte values of zero to two are considered to be lengths of 256 to 258, respectively. .TP 8n Address Data and End records have a two\[hy]byte Address field in little\[hy]endian byte order. For Data records, this is the starting address at which to load the remaining payload of the record. In End records, this is the address for the start of execution of the file, or zero if not applicable. .TP 8n Data Each record has a variable length Data field, it consists of zero or more bytes. The interpretation of this field depends on the Record Type field. .\" ------------------------------------------------------------------------ .br .ne 2i .SH REFERENCE This information comes from the "Program Files" section of .I "TRSDOS\[hy]II Reference Manual," Tandy Corporation, 1982. .\" ------------------------------------------------------------------------ .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 125 ./man/man5/srec_trs80.5 .\" vim: set ts=8 sw=4 et :