 BER encoding. The encod- ing result will be two overhead octets and one content octet per character. A character is encoded in 7 bits, and a binary zero is placed in bit 8 in the content octet. If you can do without the overhead octets, you may define the string as $IA5String SIZE (...), which refers AML encoding. There will be fewer overhead octets, but the content octets will look the same as for IA5String. Now assume that you are dissatisfied with an unused bit. You may be able to use that bit to identify the style of the character (e.g. plain or bold). In this case you must define private types for both the character string and the style parameter, e.g. as #MyIA5String::=$SEQ OF $SEQ{Style, #IA5String} Style::=$BITSTR SIZE (1) plain Style::='0'B bold Style::='1'B The types $SEQ and $SEQ OF are not encoded, and a size-constrained $BITSTR is encoded in the minimum number of bits. However, you must define encoding of IA5 characters and allocation of the bits of the parameters Style and #IA5String in encoding algorithms. This can be done, e.g. by referring to a peace of code. In this case, the algorithms are simple. The algorithm for #IA5String says: "Place the seven bits of the character, according to the IA5 alphabet, in a $BITSTR SIZE (7)". The algorithm for #MyIA5String says: "Place the bits of a character in bit 1 through 7 in an octet, and the Style value for the character in bit 8 of the same octet". Using private types is, of course, also more complicated from an implementa- tion point of view, see Fig. 5.51. The algorithms have to be programmed, compiled and linked into the message-handling model. Normally, one can expect that the ENC is a standard unit that, in case of AML, handles abstract syntaxes that use 5.8 Summary ASN.1 and AML types. That means the encoding of a private type must be per- formed by the FOH, and the result presented in the abstract syntax that is used by the ENC as an octetstring (OCTETSTRING or $OCTSTR). Typed operation specification with private types references Message specific