-
Notifications
You must be signed in to change notification settings - Fork 44
Variable Fields
Variable fields come in lot of varieties, typical ones like
- LLVAR - where there are 2 bytes for the length indicator
- LLLVAR - Where there are 3 bytes for the length indicator
In case of LLLVAR, where the length indicator encoding is BCD, the general interpretation is to have 3 effective digits with a 0 prepended so that it sits on a two byte boundary. For example, consider a LLVAR field with BCD encoding for length indiciator having a data portion of 150 bytes. The BCD length indicator in this case will be 0150. Regardless, in IsoSim spec definition, the lenght_indicator_size defined for the field is always in bytes, i.e In this case 2 (not 3 or 4).
When data_encoding is BINARY and length_indicator_multiplier is 2, the field is treated as a special BCD type field with an padding of trailing F or leading 0. So if either of those padding nibbles (half-bytes) are present, they are not accounted for in the final tally of digits
Given a field wit value of 765467654567655F : The effective digits are only 15 (F is a padding) and so the computed length indicator in this case will be 0015 (if len encoding is BCD), 3135 (if len encoding is ascii), F1F5 (if len encoding is ebcdic) 000F (if len encoding is BINARY)
- name: "PAN_BCD_Special"
id: 29
type: Variable
length_indicator_size: 2
length_indicator_multiplier: 2
length_indicator_encoding: BCD
data_encoding: BINARY
position: 14
Note that the data_encoding above is set to BINARY although the field is effectively BCD. This is deliberate to allow for the 'F' character padding which is outside of the BCD character set.
The length_indicator_multiplier of 2 is a hint to the parser/assembler to set the value of the LL part to number of digits (half-bytes) and not bytes
(The above functionality is being developed as part of April final release - 0.7.1)
- Introduction
- Building
- Up and Running
- Specs
- Servers
- Using the UI
- Test Case Management
- Miscellenous