I'm trying to evaluate Micro Focus Enterprise Developer, and I'm stuck.
In the native Micro Focus dialect or ENTCOBOL, when CHARSET"EBCDIC" is used code such as:
77 variable-w pic x(12) value '000008123456'.
77 valid-chars-c pic x(10) value '0123456789'.
inspect variable-w converting valid-chars-c to high-values.
converts the variable to all x'DF', not x'FF'.
It recognizes high-values as x'FF' in other contexts, such as VALUE HIGH-VALUES or comparing the variable-w to HIGH-VALUES, so it doesn't seem to be that it is defining HIGH-VALUES as x'DF'.
It is really weird:
- Converting a variable to the HIGH-VALUES figurative constant fails
- Converting the variable to ALL X'FF' also results in x'DF'.
- Converting to spaces or low-values works
- Converting a literal (e.g. '000008123456' works
- Converting the variable to another variable (such as high-values-c pic x(12) value high-values) works
- INSPECT ... REPLACING ALL '0' BY HIGH-VALUES (or BY X'FF') converts the zeros to x'FF' as expected
- CHARSET"ASCII" works
It is like the only failure is when the charset is EBCDIC, and the inspect is converting an identifier to a high-values literal or figurative constant
Any ideas what is going on?
I can't work around this. There are too many programs with this coding pattern.