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 Info offset | + | | Export Tree offset (fast lookups based on strlen) |
| |- | | |- |
| | 0xEC | | | 0xEC |
| | 0x04 | | | 0x04 |
− | | Export Info num (size = num * 8) | + | | Export Tree num (size = num * 8) |
| |- | | |- |
| | 0xF0 | | | 0xF0 |
Line 120: |
Line 120: |
| | 0x104 | | | 0x104 |
| | 0x04 | | | 0x04 |
− | | Import Table 1 num (size = num * 4) | + | | Import Table 1 num (size = num * 8) |
| |- | | |- |
| | 0x108 | | | 0x108 |
Line 128: |
Line 128: |
| | 0x10C | | | 0x10C |
| | 0x04 | | | 0x04 |
− | | Import Table 2 num (size = num * 4) | + | | Import Table 2 num (size = num * 8) |
| |- | | |- |
| | 0x110 | | | 0x110 |
Line 136: |
Line 136: |
| | 0x114 | | | 0x114 |
| | 0x04 | | | 0x04 |
− | | Import Table 3 num (size = num * 4) | + | | 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. |
− |
| |
− | Segment offset (4 bytes)
| |
− |
| |
− | {| class="wikitable" border="1"
| |
− | ! Bits
| |
− | ! Description
| |
− | |-
| |
− | | 0-3
| |
− | | Segment index for table
| |
− | |-
| |
− | | 4-31
| |
− | | Offset into segment
| |
− | |}
| |
| | | |
| 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. |