Это правила из книги 3 главы 5.4, как вы правильно указали. «c» - это объяснение моих результатов. В моем случае мне пришлось обрезать правые байты ( байт 2 и 3 ), потому что мой объект данных (9F33) не имеет числового формата.
a. If the tag of any data object identified in the DOL is unknown to the terminal or represents a constructed data object, the terminal shall provide a data element with the length specified and a value of all hexadecimal zeroes.
b. If a data object is in the list and is meaningful to the terminal but represents optional static data that is absent from the terminal, the portion of the command field representing the data object shall be filled with hexadecimal zeroes.
c. If the length specified in the DOL entry is less than the length of the actual data object, the leftmost bytes of the data element shall be truncated if the data object has numeric (n 1) format, or the rightmost bytes of the data shall be truncated for any other format.
d. If the length specified in the DOL entry is greater than the length of the actual data, the actual data shall be padded:
? with leading hexadecimal zeroes if the data has numeric format
? with trailing hexadecimal 'FF's if the data has compressed numeric (cn 1) format
? with trailing hexadecimal zeroes for any other format (an, ans or b including bit combination data 1)
e. If a data object is in the list and is meaningful to the terminal but represents data that is not applicable to the current transaction, the portion of the command field representing the data object shall be filled with hexadecimal zeroes.