![]() |
|
![]() |
|
Answers Database
SPROMS: File Formats: Description of PROM/EEPROM file formats (Intel MCS, Motorola EXOR, Tektronix HEX)
Record #476
Product Family: Hardware The Tektronix Hexadecimal format for a data file consists of a
9-character prefix (start char, address, bytecount, and checksum
of the prefix) followed by data bytes and ended by a 2-char
checksum of the data characters. The end-of-file record consists
only of control characters used to signal the end of transmission
and a byte count and sum-check for verification.
End-Of-File record ---------------------------------- \ / | AAAA | 00 | CC \ ----------------------------------- start transfer byte checksum char address count (2 chars)(4 chars) = 00 The prefix checksum is the eight-bit sum of the four-bit hexadecimal value of the six digits that make up the address and byte count. The data checksum is the eight-bit sum, modulo 256, of the four-bit hexadecimal values of the digits that make up the data bytes. ************************************************************************* Tektronix maximum address: 65536 (x10000) Motorola EXORmacs maximum address: 16777216 (x1000000) Intel MCS-86 Hexadecimal maximum address: 1048576 (x100000) Solution 2: * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * MOTOROLA EXORmacs File Format Code 87 Motorola data file may begin with a sign-on record, but for this
application it will be ignored. Data records have an 8 or 9
character prefix and a two character checksum suffix.
Data record (if address field has 6 chars) --------------------------------------------------- \ S2 | BC | AAAAAA | HHHHHHHH..HH | CC \ ---------------------------------------------------- start byte hex HH = checksum char count address 1 data byte (2 chars)(2 chars) (6 chars) (up to 32 chars) End-of-file record ------------------------------------- *NOTE: Start chars \ S* | 03 | 0000 | CC \ must be S9 if previous -------------------------------------- record began with S1. start byte hex checksum May be S9 or S8 if char count address (2 chars) previous record began (always 03) (always 0000) with S2. Byte Count is the number of data bytes in the record plus 3(if four hex char address) or plus 4(if 6 hex char address) for checksum and address. Checksum is one's complement of binary summation of preceding bytes in the record (including byte count, address, and data bytes) in hexadecimal notation. Solution 3: PROM File Formats ----------------- INTEL MCS-86 HEXADECIMAL OBJECT File Format Code 88 The Intel 16-bit Hexadecimal Object record format has a 9-character
(4 field) prefix that defines the start of the record, byte count,
load address, and record type, as well as a 2-character checksum
suffix. The four record types are:
00 = data record
01 = end record(signals end of file)
02 = extended address record(provides the offset to
determine the absolute destination address)
03 = start record(ignored during input and not sent
during output by Data I/O translator firmware)
End of File record(type 01) ---------------------------------------- \ : | 00 | 0000 | 01 | FF \ ---------------------------------------- start BC address record checksum char = 00 = 0000 type = FF Extended address record(type 02) ----------------------------------------------------- \ : | 02 | 0000 | 02 | HHHH | CC \ ----------------------------------------------------- start BC address record 2 bytes checksum char = 02 = 0000 type (offset) (2 chars)(4 chars) Start Address record(type 03) not used by Data I/O firmware. The Checksum is the two's complement of the binary summation of the preceding bytes in the record(including the bytecount, address, and any data bytes) in hexadecimal notation. The extended address record(type 02) defines bits 4 to 19 of the 20 bit segment base address. This address will be added to subsequent data record addresses to provide the absolute address. This record can appear randomly in the file, but for this application it will be the initial record. NOTE: Always specify the address offset when using this format, even when the offset is zero. The Data I/O firmware will force the record size to 16(decimal) if the record size is specified greater than 16. End of Record #476 - Last Modified: 07/29/99 18:00 |
| For the latest news, design tips, and patch information on the Xilinx design environment, check out the Technical Tips! |