7.4.1 Использование структурированных блоков расширения
Структурированные блоки расширения используются в качестве дополнения к основному блоку для того, чтобы обеспечить кодирование полного набора элементов данных, специфицированных в ИСО 28560-1.
Допускается иметь два или более структурированных блоков расширения одинакового типа (т.е. с одинаковым идентификатором блоков, block ID).
7.4.2 Формат структурированных блоков расширения
Структурированные блоки расширения используют кадровую структуру (frame structure) из 4 байтов для указания длины, типа и контрольной суммы (checksum). Общая структура блоков расширения:
<length><data block ID><XOR checksum>(<data field><end block>)*
Поля данных должны появляться в порядке, установленном для конкретного структурированного блока расширения. Поле данных может быть пустым. В этом случае оно должно заполняться 00.
Допускается ограничивать размер структурированного блока расширения до любых размеров, при этом поля данных, выходящих за эти пределы, могут быть сокращены или опущены. В этом случае недостающие данные считаются байтами со значением 00.
Допускается также специфицировать больший размер, чем требуется для поля данных. В этом случае избыточная часть структурированного блока расширения заполняется значениями 00.
7.4.3 Длина
Длина означает количество байтов в блоке расширения. Эта величина должна быть более четырех, должна учитывать все байты в блоке расширения, включая сам байт, обозначающий длину. Длина кодируется как 8-битовое целое число без знака.
7.4.4 Идентификатор (ID) блока данных
Идентификатор (ID) блока данных однозначно характеризует блок расширения.
Идентификатор (ID) блока данных кодируется как 16-битовое целое число без знака с наименьшим значащим байтом, хранящимся по младшему адресу памяти.
Значения:
1: блок расширения комплектования;
2: блок расширения комплектования;
3: вспомогательный блок библиотеки;
4: блок наименования;
5: блок МБА;
6-100: другие структурированные блоки расширения (для будущего использования).
7.4.5 Контрольная сумма
7.4.5.1 Общее
Контрольная сумма - это величина по значениям байтов в блоке расширения и используемая для проверки кодирования.
7.4.5.2 Вычисление контрольной суммы
Устанавливается поле контрольной суммы равным значению 00, затем выполняется операция "исключающее ИЛИ" (XOR) для всех байтов, включая байты длины, идентификатора (ID) и контрольной суммы.
Сохраните вычисленное значение в поле контрольной суммы.
7.4.5.3 Проверка контрольной суммы