In the ANSI MAP specification there are unsigned types as included
below. How should I map these in ASN.1?
The intention is to reclaim the high bit to use as value. Given
presence of these types in this document I'm sure there is an
accepted way of doing this however I coukldn't turn up anything.
An example from TIA/EIA-41-D:
QulificationInformationCode ::= [17] IMPLICIT Unsigned Enumerated
The length is one octet and the values are given as:
Bits H G F E D C B A Value Meaning
0 0 0 0 0 0 0 0 0 Not used.
0 0 0 0 0 0 0 1 1 No information.
0 0 0 0 0 0 1 0 2 Validation only.
0 0 0 0 0 0 1 1 3 Validation and profile.
0 0 0 0 0 1 0 0 4 Profile only.
0 0 0 0 0 1 0 1 5 -+ Reserved. Treat the same as
... through | value 3, Validation and
1 1 0 1 1 1 1 1 223 -+ profile.
1 1 1 0 0 0 0 0 224 -+ Reserved for TIA/EIA-41 protocol
... through | extensions. If unknown, treat
1 1 1 1 1 1 1 1 255 -+ the same as value 3, Validation
and profile.
-Vance
6.5.3.14. Unsigned Enumerated
An Unsigned Enumerated value that is limited in range to
non-negative values including zero. For the purposes of
this Standard, the sign bit is considered part of the
unsigned enumerated value. This type cannot be expressed
as an ASN.1 ENUMERATED type, because an ENUMERATED type is
encoded as an INTEGER which always uses the sign bit.
An Unsigned Enumerated value may be extended in future
releases.
The length of a fixed length Unsigned Enumerated value may
not be extended in future releases.
6.5.3.15. Unsigned Integer
An integer that is limited in range to non-negative values
including zero. For the purposes of this Standard, the sign
bit is considered part of the Unsigned Integer value. This
type cannot be expressed as an ASN.1 INTEGER type, because
an INTEGER always uses the sign bit.