[next] [prev] [prev-tail] [tail] [up]

### A.3 The Header

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.

Table A.1: PPU Header

offset | 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 file
10h | 4 | Size of PPU file (without header)
14h | 4 | CRC-32 of the entire PPU file
18h | 4 | CRC-32 of partial data of PPU file (public data mostly)
1Ch | 8 | Reserved

The header is already read by the ppufile.openfile command. You can access all fields 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 flags in the header are described in table (A.3). Not all the flags are described, for more information, read the source code of ppu.pas.

Table A.3: PPU Header Flag values

Symbolic bit flag name | Description

uf_init | Module has an initialization (either Delphi or TP style) section.
uf_finalize | Module has a finalization 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.

[next] [prev] [prev-tail] [front] [up]