structure
I.4 Format Flags section
4099
The default layout of memory, under the Packed Objects access method, consists of a 4100
leading DSFID, immediately followed by an ID List Packed Object (at the next byte 4101
boundary), then optionally additional ID List Packed Objects (each beginning at the next 4102
byte boundary), and terminated by a zero-valued octet at the next byte boundary 4103
(indicating that no additional Packed Objects are encoded). This section defines the valid 4104
Format Flags patterns that may appear at the expected start of a Packed Object to 4105
override the default layout if desired (for example, by changing the Packed Object’s 4106
format, or by inserting padding patterns to align the next Packed Object on a word or 4107
block boundary). The set of defined patterns are shown in Table I 4-1. 4108
Table I 4-1: Format Flags 4109
Bit Pattern Description Additional Info See Section 0000 0000 Termination Pattern No more packed objects follow I.4.1
LLLLLL xx First octet of an IDLPO For any LLLLLL > 3 I.5 0000 Format Flags starting
pattern
(if the full EBV-6 is non-zero) I.4.2
0000 10NA IDLPO with:
N = 1: non-default Info A = 1: Addendum Present If N = 1: allows multiple ID tables If A = 1: Addendum ptr(s) at end of Object Info section
I.4.3
0000 01xx Inter-PO pattern A Directory Pointer, or padding I.4.4 0000 0100 Signifies a padding octet No padding length indicator
follows
I.4.4
0000 0101 Signifies run-length padding
An EBV-8 padding length follows
I.4.4
Bit Pattern Description Additional Info See Section 0000 0111 Directory pointer Followed by EBV-8 pattern I.4.4
0000 11xx ID Map Packed Object I.4.2
0000 0001 0000 0010 0000 0011
[Invalid] Invalid pattern
I.4.1 Data Terminating Flag Pattern
4110
A pattern of eight or more ‘0’ bits at the expected start of a Packed Object denotes that no 4111
more Packed Objects are present in the remainder of memory. 4112
NOTE: Six successive ‘0’ bits at the expect start of a Packed Object would (if interpreted 4113
as a Packed Object) indicate an ID List Packed Object of length zero. 4114
I.4.2 Format Flag section starting bit patterns
4115
A non-zero EBV-6 with a leading pattern of “0000” is used as a Format Flags section 4116
Indication Pattern. The additional bits following an initial ‘0000’ format Flag Indicating 4117
Pattern are defined as follows: 4118
• A following two-bit pattern of ‘10’ (creating an initial pattern of ‘000010’) indicates 4119
an IDLPO with at least one non-default optional feature (see I.4.3) 4120
• A following two-bit pattern of ‘11’ indicates an IDMPO, which is a Packed Object 4121
using an ID Map format instead of ID List-format The ID Map section (see I.9) 4122
immediately follows this two-bit pattern. 4123
• A following two-bit pattern of ‘01’ signifies an External pattern (Padding pattern or 4124
Pointer) prior to the start of the next Packed Object (see I.4.4) 4125
A leading EBV-6 Object Length of less than four is invalid as a Packed Objects length. 4126
NOTE: the shortest possible Packed Object is an IDLPO, for a data system using 4127
four bits per ID Value, encoding a single ID Value. This Packed Object has a 4128
total of 14 fixed bits. Therefore, a two-octet Packed Object would only contain 4129
two data bits, and is invalid. A three-octet Packed Object would be able to 4130
encode a single data item up to three digits long. In order to preserve “3” as an 4131
invalid length in this scenario, the Packed Objects encoder shall encode a leading 4132
Format Flags section (with all options set to zero, if desired) in order to increase 4133
the object length to four. 4134
4135
I.4.3 IDLPO Format Flags
4136
The appearance of ‘000010’ at the expected start of a Packed Object is followed by two 4137
additional bits, to form a complete IDLPO Format Flags section of “000010NA”, where: 4138
• If the first additional bit ‘N’ is ‘1’, then a non-default format is employed for the 4139
IDLPO Object Info section. Whereas the default IDLPO format allows for only a 4140
single ID List (utilizing the registration’s default Base ID Table), the optional non- 4141
default IDLPO Object Info format supports a sequence of one or more ID Lists, and 4142
each such list begins with identifying information as to which registered table it 4143
represents (see I.5.1). 4144
• If the second additional bit ‘A’ is ‘1’, then an Addendum subsection is present at the 4145
end of the Object Info section (see I.5.6). 4146
I.4.4 Patterns for use between Packed Objects
4147
The appearance of ‘000001’ at the expected start of a Packed Object is used to indicate 4148
either padding or a directory pointer, as follows: 4149
• A following two-bit pattern of ‘11’ indicates that a Directory Packed Object Pointer 4150
follows the pattern. The pointer is one or more octets in length, in EBV-8 format. 4151
This pointer may be Null (a value of zero), but if non-zero, indicates the number of 4152
octets from the start of the pointer to the start of a Directory Packed Object (which if 4153
editable, shall be the first in its “chain”). For example, if the Format Flags byte for a 4154
Directory Pointer is encoded at byte offset 1, the Pointer itself occupies bytes 4155
beginning at offset 2, and the Directory starts at byte offset 9, then the Dir Ptr encodes 4156
the value “7” in EBV-8 format. A Directory Packed Object Pointer may appear 4157
before the first Packed Object in memory, or at any other position where a Packed 4158
Object may begin, but may only appear once in a given data carrier memory, and (if 4159
non-null) must be at a lower address than the Directory it points to. The first octet 4160
after this pointer may be padding (as defined immediately below), a new set of 4161
Format Flag patterns, or the start of an ID List Packed Object. 4162
• A following two-bit pattern of ‘00’ indicates that the full eight-bit pattern of 4163
‘00000100’ serves as a padding byte, so that the next Packed Object may begin on a 4164
desired word or block boundary. This pattern may repeat as necessary to achieve the 4165
desired alignment. 4166
• A following two-bit pattern of ‘01’ as a run-length padding indicator, and shall be 4167
immediately followed by an EBV-8 indicating the number of octets from the start of 4168
the EBV-8 itself to the start of the next Packed Object (for example, if the next 4169
Packed Object follows immediately, the EBV-8 has a value of one). This mechanism 4170
eliminates the need to write many words of memory in order to pad out a large 4171
memory block. 4172
• A following two-bit pattern of ‘10’ is Reserved. 4173