2015-12-25 5 views
1

В спецификации ECMA 119 (свободно доступных here), я пытаюсь понять, как извлечь содержимое System Use поля:Как поле «Использовать систему» ​​должно интерпретироваться в «Реестре каталогов»?

enter image description here

Как один должен вычислить длину System Use поля, т.е. как значение LEN_SU найдено в левом столбце?

ответ

1

Значение LEN_SU предоставляется неявно. Из BP1 вы знаете общее количество байтов в записи каталога (LEN_DR). LEN_SU затем указывается (неявно) как байты, оставшиеся в записи каталога после 33+LEN_FI+possible_padding(1), где вы получаете длину LEN_FI от BP33.

Следовательно

LEN_SU = LEN_DR - (33+LEN_FI+possible_padding(1)) 

Из спецификации .:

Набивка поле [ВР (34 + LEN_FI)]

Это поле должно присутствовать в каталога Record только если число в Длина файла Поле идентификатора представляет собой четное число.

System Используйте [BP (LEN_DR - LEN_SU + 1) в LEN_DR)

Это поле должно быть необязательными. Если оно присутствует, это поле зарезервировано для использования в системе. Его содержание не указывается в настоящем стандарте. Если необходимо, так что Запись каталога содержит четное количество байтов, байт (00) должен быть добавлен , чтобы прервать это поле.

+0

Благодарим за это разъяснение: D – Aybe

+0

@Ваше приветствуются. Happy byte-hacking :) – dfri

+0

Спасибо, на самом деле я работаю над новым движком для Wipeout @ http://www.wxx-rebirth.com/, и в настоящее время я смотрю на извлечение игровых данных: D – Aybe