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.