Заголовок состоит из записи (tppuheader), содержащей несколько частей информации для перекомпиляции. Это показано в таблице А.1. Заголовок всегда записывается в формате little-endian.
Таблица А.1. Заголовок PPU.
Смещение
|
Размер (в байтах)
|
Описание
|
00h
|
3
|
Надпись «PPU» в коде ASCII
|
03h
|
3
|
Версия формата PPU-файла (например, «021» в ASCII)
|
06h
|
2
|
Версия компилятора, используемого для компиляции этого модуля (старшая, младшая)
|
08h
|
2
|
Код модуля целевого процессора
|
0Ah
|
2
|
Код модуля целевой операционной системы
|
0Ch
|
4
|
Флаги для PPU-файла
|
10h
|
4
|
Размер PPU-файла (без заголовка)
|
14h
|
4
|
CRC-32 для всего PPU-файла
|
18h
|
4
|
CRC-32 для части PPU-файла (в основном, общедоступных данных)
|
1Ch
|
8
|
Зарезервировано
|
Заголовок уже прочитан командой ppufile.openfile. Вы можете получить доступ ко всем полям, используя ppufile.header, которая содержит текущую запись заголовка.
Таблица А.2. Значения PPU CPU Field.
Значение
|
Описание
|
0
|
Неизвестный
|
1
|
Intel 80x86 или совместимый
|
2
|
Motorola 680x0 или совместимый
|
3
|
Alpha AXP или совместимый
|
4
|
PowerPC или совместимый
|
Некоторые возможные флаги в заголовке описаны в таблице А.3. Не все флаги описаны. Для получения дополнительной информации читайте исходный код ppu.pas.
Таблица А.3. Значения PPU Header Flag.
Имя бита символьного флага
|
Описание
|
uf_init
|
Модуль имеет раздел инициализации (стиль Delphi или TP)
|
uf_finalize
|
Модуль имеет раздел завершения
|
uf_big_endian
|
Все данные записаны частями в формате big-endian
|
uf_has_browser
|
Модуль содержит информацию символьного обозревателя
|
uf_smart_linked
|
Код модуля создан с использованием «умной» компоновки
|
uf_static_linked
|
Код скомпонован статически
|
uf_has_resources
|
Модуль имеет раздел ресурсов
|
|