CRO0: Difference between revisions
No edit summary |
No edit summary |
||
| Line 32: | Line 32: | ||
| 0xAC | | 0xAC | ||
| 0x04 | | 0x04 | ||
| "Segment offset", symbols are loaded relative to this | | "Segment offset", symbols are loaded relative to this. Probably filled by dynamic linker, set to 0xFFFFFFFF in file. | ||
|- | |- | ||
| 0xB0 | | 0xB0 | ||
| Line 92: | Line 92: | ||
| 0xE8 | | 0xE8 | ||
| 0x04 | | 0x04 | ||
| Export | | Export Tree offset (fast lookups based on strlen) | ||
|- | |- | ||
| 0xEC | | 0xEC | ||
| 0x04 | | 0x04 | ||
| Export | | Export Tree num (size = num * 8) | ||
|- | |- | ||
| 0xF0 | | 0xF0 | ||
| Line 120: | Line 120: | ||
| 0x104 | | 0x104 | ||
| 0x04 | | 0x04 | ||
| Import Table 1 num (size = num * | | Import Table 1 num (size = num * 8) | ||
|- | |- | ||
| 0x108 | | 0x108 | ||
| Line 128: | Line 128: | ||
| 0x10C | | 0x10C | ||
| 0x04 | | 0x04 | ||
| Import Table 2 num (size = num * | | Import Table 2 num (size = num * 8) | ||
|- | |- | ||
| 0x110 | | 0x110 | ||
| Line 136: | Line 136: | ||
| 0x114 | | 0x114 | ||
| 0x04 | | 0x04 | ||
| Import Table 3 num (size = num * | | Import Table 3 num (size = num * 8) | ||
|- | |- | ||
| 0x118 | | 0x118 | ||
| Line 169: | Line 169: | ||
| 0x04 | | 0x04 | ||
| unk9 num | | unk9 num | ||
|} | |||
Segment offset (4 bytes) | |||
{| class="wikitable" border="1" | |||
! Bits | |||
! Description | |||
|- | |||
| 0-3 | |||
| Segment index for table | |||
|- | |||
| 4-31 | |||
| Offset into segment | |||
|} | |} | ||
| Line 188: | Line 201: | ||
| 0x4 | | 0x4 | ||
| Segment id (0, 1, 2..) | | Segment id (0, 1, 2..) | ||
|} | |||
Export Table entry (8 bytes) | |||
{| class="wikitable" border="1" | |||
! Offset | |||
! Size | |||
! Description | |||
|- | |||
| 0x0 | |||
| 0x4 | |||
| Name offset | |||
|- | |||
| 0x4 | |||
| 0x4 | |||
| "Segment offset" for export | |||
|} | |} | ||
| Line 240: | Line 268: | ||
If (X&1) == 1 then write "b 0" (infinite loop). | If (X&1) == 1 then write "b 0" (infinite loop). | ||
Else write as normal. | Else write as normal. | ||
CRO with extension .cro is used for "DLLs". CRS with extension .crs can be used for storing "DLL" symbols as well. The end of the file is aligned to a 0x1000-byte boundary with 0xCC bytes. | CRO with extension .cro is used for "DLLs". CRS with extension .crs can be used for storing "DLL" symbols as well. The end of the file is aligned to a 0x1000-byte boundary with 0xCC bytes. | ||