Ensures that run-time error 163 (illegal characters in numeric fields) does not occur when certain MOVE statements are executed on numeric display data items or numeric operands.


    +-/-+  +-NO-+




Phase: Syntax check
$SET: Any


This directive improves compatibility with IBM mainframe compilers, resulting in a run-time error 163 ("Illegal character in numeric field") in cases where a S0C7 would have occurred on the mainframe.

Setting HOST-NUMMOVE improves compatibility with IBM mainframe compilers for a subset of MOVE statements involving numeric/alphanumeric data types and numeric/numeric data types.

It is not possible to guarantee 100% compatibility with the IBM mainframe behavior, but setting HOST-NUMMOVE does provide emulation for the most common cases.

HOST-NUMMOVE is only supported for SIGN settings of ASCII, MF, EBCDIC, and IBM.

For managed COBOL, SIGN"EBCDIC", along with one of HOST-NUMMOVE, HOST-NUMCOMPARE or SIGN-FIXUP is an invalid combination of directives, and is rejected during compilation. For native COBOL, the combination is permitted.

Use HOST-NUMMOVE with CHARSET(EBCDIC) for maximum compatibility with IBM mainframe behavior. If CHARSET(ASCII) is used, then some compatibility may be lost due to character encoding differences.

This directive can adversely affect the performance of generated code.