|
RetroLinker
Linker for several 8-bit, 16-bit and 32-bit formats
|
Represents a loadable segment in the binary. More...
#include <8bitexe.h>
Public Types | |
| enum | segment_type : uint16_t { SIGNATURE_LOW = 0xFFFA , SDX_FIXED = 0xFFFA , SDX_SYMREQ = 0xFFFB , SDX_SYMDEF = 0xFFFC , SDX_FIXUPS = 0xFFFD , SDX_RAMALLOC = 0xFFFE , SDX_POSIND = 0xFFFE , ATARI_SEGMENT = 0xFFFF } |
| Types of segments, represented by their signature values. More... | |
| enum | control_byte_type : uint8_t { CB_CONVRAM = 0x00 , CB_SYSEXTAREA = 0x02 , CB_PROGEXTAREA = 0x04 , CB_PAGEALIGNED = 0x40 , CB_RAMALLOC = 0x80 } |
Public Member Functions | |
| Segment (bool header_type_optional=true) | |
| Segment (uint16_t header_type) | |
| offset_t | GetSize () const |
| Retrieves the number of bytes in the segment body. | |
| void | ReadFile (Linker::Reader &rd) |
| Reads a segment from a file into this object. | |
| void | WriteFile (Linker::Writer &wr) const |
| Writes the segment into a file. | |
| void | ReadRelocations (Linker::Reader &rd) |
| Read relocations. | |
| void | WriteRelocations (Linker::Writer &wr) const |
| Writes relocations. | |
Public Attributes | |
| segment_type | header_type = ATARI_SEGMENT |
| Header type, Atari DOS uses only 0xFFFF, signature only obligatory for the first segment. | |
| bool | header_type_optional = false |
| Set if placing header type is optional, also set when signature is absent in file when reading. | |
| uint16_t | address = 0 |
| Address at which segment must be loaded. | |
| uint8_t | block_number = 0 |
| Only used for SDX_RAMALLOC/SDX_POSIND, SDX_SYMREQ. | |
| control_byte_type | control_byte = control_byte_type(0) |
| Only used for SDX_RAMALLOC/SDX_POSIND. | |
| uint16_t | size = 0 |
| Only used for SDX_RAMALLOC/SDX_POSIND. | |
| char | symbol_name [8] = { } |
| Only used for SDX_SYMREQ, SDX_SYMDEF. | |
| std::shared_ptr< Linker::Image > | image |
| The binary data in the segment. | |
| std::set< uint16_t > | relocations |
| Relocations, only used for SDX_SYMREQ and SDX_FIXUPS. | |
Represents a loadable segment in the binary.
| enum Binary::AtariFormat::Segment::control_byte_type : uint8_t |
| enum Binary::AtariFormat::Segment::segment_type : uint16_t |
Types of segments, represented by their signature values.