The header consists of a record (tppuheader) containing several pieces of information for
recompilation. This is shown in table (A.1). The header is always stored in little-endian
format.
|
|
| o set | size (bytes) | description |
|
|
| 00h | 3 | Magic : 'PPU' in ASCII |
03h | 3 | PPU File format version (e.g : '021' in ASCII) |
06h | 2 | Compiler version used to compile this module (major,minor) |
08h | 2 | Code module target processor |
0Ah | 2 | Code module target operating system |
0Ch | 4 | Flags for PPU le |
10h | 4 | Size of PPU le (without header) |
14h | 4 | CRC-32 of the entire PPU le |
18h | 4 | CRC-32 of partial data of PPU le (public data mostly) |
1Ch | 8 | Reserved |
|
|
| |
|
The header is already read by the ppufile.openfile command. You can access all elds using
ppufile.header which holds the current header record.
Table A.2: | PPU CPU Field values |
|
| value | description |
|
| 0 | unknown |
1 | Intel 80x86 or compatible |
2 | Motorola 680x0 or compatible |
3 | Alpha AXP or compatible |
4 | PowerPC or compatible |
|
| |
|
Some of the possible ags in the header, are described in table (A.3). Not all the ags are
described, for more information, read the source code of ppu.pas.
Table A.3: | PPU Header Flag values |
|
| Symbolic bit ag name | Description |
|
| uf_init | Module has an initialization (either Delphi or TP style) section. |
uf_ nalize | Module has a nalization section. |
uf_big_endian | All the data stored in the chunks is in big-endian format. |
uf_has_browser | Unit contains symbol browser information. |
uf_smart_linked | The code module has been smartlinked. |
uf_static_linked | The code is statically linked. |
uf_has_resources | Unit has resource section. |
|
| |
|