| Name | Size in bytes |
| Magic number | 4 |
| Program flags | 4 |
| Number of Program Bytes | 4 |
| Version Information | 2 |
Note that there is no alignment since the size of the data record's program bytes not necessarily is a multiple of four.
| Name | Value |
| Invalid record | 0 |
| Data record | 1 |
| Entry record | 2 |
| End record | 3 |
The following table shows the order and size of the data record's fields.
| Name | Size |
| Record tag | 1 |
| Segment type | 1 |
| Record flags | 2 |
| Record start address | 4 |
| Number of program bytes | 4 |
| Program bytes | Number of program bytes |
The following table shows the order and size of the entry record's fields.
| Name | Size |
| Record tag | 1 |
| Entry address | 4 |
| Segment type | 1 |
The following table shows the order and size of the end record's fields.
| Name | Size |
| Record tag | 1 |
| Checksum | 4 |
| Segment type | Value |
| INVALID | 0 |
| CODE | 1 |
| DATA | 2 |
| XDATA | 3 |
| IDATA | 4 |
| BIT | 5 |