The main directive that sets the majority of RM/COBOL behavior is DIALECT(RM).
Setting the DIALECT(RM) directive automatically sets additional Compiler directives, such as RM, NOTRUNC, OLDINDEX, NOOPTIONAL-FILE, RETRYLOCK, ALIGN"2" and SEQUENTIAL"LINE". See the topic RM Dialect Settings for full details of the directives set.
The system will also behave as if you had specified the following syntax:
sign trailing separate
for signed numeric data items, and:
lock mode is automatic
Previously, compatibility was achieved by compiling with the RM Compiler directive. The newer DIALECT(RM) directive sets and extends the compatibility given by RM, and should be used for all new migrations from RM/COBOL, unless you normally set the ANSI switch when you submit your RM/COBOL source programs to the RM/COBOL system. If you do, set the RM"ANSI" directive when you compile your programs.
We also recommend that you set the NOMF directive when you submit your RM/COBOL source programs to this COBOL system. This ensures that only those words which are treated as reserved words under the ANSI '74 COBOL standard are regarded as reserved words by this COBOL system.
Setting the NORM directive disables the syntax enabled when the RM directive was set, and automatically resets the additional Compiler directives to NOSPZERO, TRUNC"ANSI", NOOLDINDEX, OPTIONAL-FILE, NORETRYLOCK, ALIGN"8" and SEQUENTIAL"RECORD". Additionally, the system behaves as if you had specified the syntax:
sign trailing included
for signed numeric data items, and:
lock mode is exclusive
for each file in the program which has no explicit locking syntax declared.
The final states of the additional directives set when you use the NORM directive are not necessarily the same as their initial default states.