
The Micro Focus compiler options are listed here alphabetically, you may browse them, click on the link to go directly to the error code or you may use the search feature of your browser to search for the information.
Makes the Compiler put information about line numbers and symbols into the .obj file for use by a run-time debugger such as Microsoft CodeView.
Parameters:
integer Indicates the type of debugger support to enable.
Properties:
Default: NOEANIM
Phase: Both
Environment: DOS, Windows and OS/2
$SET: No
Dependencies:
If OMF"GNT", EANIM sets OMF"OBJ" at end.
If OPT"0", EANIM sets OPT"1" at end.
EANIM sets ANIM immediately.
Remarks: (integer) can be one of two values:
Specifying EANIM is the same as specifying EANIM"2".
For CodeView 3.00 and 3.1x, you can use either EANIM or EANIM"1". For CodeView 4.xx you must use EANIM"1", and you must use the linker that came with your copy of CodeView.
This directive affects only .obj files.
If you subsequently link the program using the options /CO, the debugging information is copied into the .exe file.
EANIM causes FILLER data items to be placed in the dictionary, as is required by CodeView 3.50.
Enables support for Early User Syntax.
Properties:
Default: NOEARLY-RELEASE
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies:
If NOEARLY-RELEASE and MF are set, MF defaults to MF"10".
If EARLY-RELEASE and MF are set, MF defaults to MF"11".
Remarks: You must specify this directive if you want to use any of the early-release directives.
Makes the Compiler display error lines and error messages on the screen.
Properties:
Default: ECHO
Phase: Syntax check
Environment: All
$SET: Any
Dependencies: Set to NOECHO immediately by ECHOALL.
Remarks: For each error, the source line is displayed together with an error number and (unless BRIEF is set) an explanatory message.
See also:
BRIEF Compiler directive
Makes the Compiler send error messages to a file in a format compatible with a specified editor.
Parameters:
editor-id Must be MF, MF2 or MS.
Properties:
Default: NOEDITOR
Phase: Both
Environment: All (syntax check), 16-bit (generate)
$SET: No
Dependencies:
EDITOR"MS" sets NOENSUITE immediately.
EDITOR"MF" sets ENSUITE"1" immediately.
Remarks:
The possible values of
MF Micro Focus Editor
MF2 Micro Focus Animator V2
MS Microsoft Programmer's Workbench
You are recommended to use the NOECHO and NOQUERY directives in addition to the EDITOR directive.
See also:
ECHO Compiler directive
FLAGSINEDIT Compiler directive
QUERY Compiler directive
Specifies that the listing is to contain no source lines except those that have errors or flags.
Properties:
Default: NOERRLIST
Phase: Syntax check
Environment: All
$SET: No
Makes the Compiler ask, each time it gives an error message, whether you want to stop compiling.
Properties:
Default: NOERRQ
Phase: Syntax check
Environment: All
$SET: Any
Makes the Compiler store the program data in uncompressed form.
Properties:
Default: NOEXPANDDATA
Phase: Generate
Environment: 16-bit
$SET: Initial
Remarks: This directive only affects .obj files.
Normally the COBOL system stores the program data in compressed form and expands it when the program is loaded. Specifying EXPANDDATA when compiling to an .obj file causes the data to be stored in its expanded form.
This saves a small amount of time at initial program entry, and on DOS it gives a smaller .exe file because information to guide the expansion can be omitted; DOS always allocates the space for the expanded form in any case. On OS/2 it gives a slightly bigger .exe file.
When data is stored in this way, it is only initialized once, when the program is physically loaded. Hence the IS INITIAL phrase in the PROGRAM-ID paragraph does not work. Also, a program which is canceled and called again is only reinitialized if it is a separate module, such that this cancel/call cycle causes a physical reload from disk. The directive is ignored when compiling to a .gnt file.
Specifies that index-names defined in a table in an EXTERNAL record are to be treated as EXTERNAL.
This directive is provided for compatibility with earlier releases of this COBOL system. It should not be used with new programs, and existing programs should be recoded to make the use of this directive unnecessary. It will be removed in a future release.
Properties:
Default: NOEXTINDEX
Phase: Syntax check
Environment: All
$SET: Initial
Remarks: With EXTINDEX, behavior is as in earlier versions of this Compiler. With NOEXTINDEX, such items are not regarded as EXTERNAL, thus conforming to the ANSI'85 standard.
Tells the Compiler that the parameters in the USING clauses of the Procedure Division statement and each ENTRY statement conform to certain restrictions. This enables it to produce faster code.
Properties:
Default: NOFASTLINK
Phase: Generate
Environment: 16-bit
$SET: Initial
Dependencies:
If OMF"GNT", FASTLINK sets OMF"OBJ" at end.
If ASSUME is set, set to NOFASTLINK at end by REGPARM"IN".
Remarks: This directive only affects .obj files.
The restrictions are:
This directive is reserved for internal use by the system. Because it might appear in the list of settings, it is included for completeness. It is not intended for users' applications, and its setting should not be changed.
Properties:
Default: FASTSORT
Phase: Syntax check
Environment: All
$SET: Initial
Makes the Compiler define special-registers giving access to File Control Descriptions (FCD) and Key Definition Blocks.
Properties:
Default: NOFCDREG
Phase: Syntax check
Environment: All
$SET: Initial
Remarks: This directive is not available in the Micro Focus COBOL system for DOS, Windows and OS/2 without Toolset or Workbench, or similar add-on products from Micro Focus. Do not change its setting unless you have an appropriate system.
FCDREG causes a special register, FH--FCD, to be created for each File Definition (FD) in the program. This register points to the File Control Description (FCD) for the file. Thus the program can read or amend information in the FCD.
For each indexed file, an additional special register, FH--KEYDEF, is created. This register points to the Key Definitions Block for the file.
The layout of the FCD and the Key Definitions Block is given in the documentation for the appropriate add-on product.
Specifies that the record buffer for a file should be cleared after every write operation. The buffer is cleared to the value specified by the DEFAULTBYTE directive.
Properties:
Default: NOFDCLEAR
Phase: Syntax check
Environment: All
$SET: Any
Remarks: The FDCLEAR directive is effective while the SELECT clauses are being processed. Use $SET statements before and after each SELECT clause to apply this feature to selected files. Alternatively, use it once before processing any SELECT statements to apply it to all files in a program.
The FDCLEAR directive is ignored for files subject to a SAME RECORD AREA clause in the I-O-CONTROL paragraph.
Example: In the following code, FDCLEAR is applied only to file-2:
Causes the default locking to become AUTOMATIC rather than EXCLUSIVE for files in a multi-user environment, and automatically locks records on a WRITE or REWRITE statement when the program is locking multiple records.
This directive is not related in any way to Fileshare Version 2, available from Micro Focus in the Toolset, Toolbox and Workbench products. You must not use this directive when using Fileshare V2.
Properties:
Default: NOFILESHARE
Phase: Syntax check
Environment: All
$SET: Initial
Remarks: This directive is included for compatibility with earlier file-sharing products. When writing new programs you should use the locking syntax rather than this directive.
FILESHARE is equivalent to WRITELOCK and AUTOLOCK together. NOFILESHARE is equivalent to NOAUTOLOCK and NOWRITELOCK together.
Specifies the file format to use when creating files.
Parameters:
integer Must be between 0 and 6.
Properties:
Default: FILETYPE"0"
Phase: Syntax check
Environment: All
$SET: Any
Dependencies: FILETYPE"(integer)" sets IDXFORMAT"(integer)" immediately.
Remarks: The possible values of (integer) are:
Types 5 and 6 are available only in DOS, Windows and OS/2 environments.
This directive only works on files processed by the Callable File Handler. Use the CALLFH directive if you are processing files other than indexed files.
To produce print files in the style of an IBM mainframe using FILETYPE"11",
you must also use WRITE AFTER ADVANCING syntax, the CALLFH Compiler directive
(so your program uses the Callable File Handler), and a SELECT statement in
the form:
See also:
CALLFH Compiler directive
Tells the Compiler how many times to perform its final pass which shortens jump instructions.
Parameters:
integer Must be between 1 and 99.
Properties:
Default: FIXING"99"
Phase: Generate
Environment: 16-bit
$SET: Any
Remarks: The Compiler tries to convert 80x86 jump instructions into their shorter form if possible; this gives smaller object code. Shortening some jump instructions might result in other jumps becoming eligible to be shortened and so further fixing passes might result in further size reduction.
The Compiler does this very quickly, so there should be no need to change this directive. It is maintained only for compatibility with earlier versions of the Compiler.
Makes the Compiler produce language-level certification flags when it finds syntax that is not part of a specified dialect of COBOL.
Parameters:
dialect A literal identifying the dialect.
Properties:
Default: NOFLAG
Phase: Syntax check
Environment: All
$SET: Any
Remarks:
The possible values of
You cannot use DG, RM or MS as a dialect.
When creating a program that is to be fully ANSI'85 conforming, use:
ANS85 FLAG"ANS85"
and correct anything that causes a flagging message to be produced.
For VSC2, the flagging given depends on the version of VS COBOL II selected by the VSC2 directive. For SAA, the flagging given depends on the level of SAA selected by the SAA directive.
Makes the Compiler output flagging messages as error messages, warning messages or informational messages.
Parameters:
severity A literal showing the severity to assign to flag messages.
Properties:
Default: NOFLAGAS
Phase: Syntax check
Environment: All
$SET: Any
Remarks:
The possible values of
When used in conjunction with the FLAG directive, FLAGCD flags any directive settings that would cause incompatibility with the specified dialect of COBOL.
Parameters:
severity A literal showing the severity to assign to flag messages
arising from conflicting directives.
Properties:
Default: NOFLAGCD
Phase: Syntax check
Environment: All
$SET: Any
Remarks:
The possible values of
If FLAGCD is specified with no parameters, the messages are assigned the severity given by the FLAGAS directive, if specified; if FLAGAS is not specified, they are produced as flagging messages.
Causes the Compiler to flag any syntax that behaves differently at run time depending on the setting of CMPR2.
Properties:
Default: NOFLAGMIG
Phase: Syntax check
Environment: All
$SET: Any
Remarks: Such syntax receives W-level messages, with the additional text "MIGR" appearing in the message line to indicate that the warning results from specifying the FLAGMIG directive.
See also:
CMPR2 Compiler directive
Makes the Compiler ask, each time it gives a flagging message, whether you want to stop compiling.
Properties:
Default: NOFLAGQ
Phase: Syntax check
Environment: All
$SET: Any
Specifies whether flagging messages are to be included in an error file.
Properties:
Default: FLAGSINEDIT
Phase: Both
Environment: All
$SET: No
Remarks: This directive has no effect if NOEDITOR is specified. If EDITOR and FLAGSINEDIT are specified, the error file produced contains all flagging messages produced by the Compiler.
See also:
EDITOR Compiler directive
Makes the Compiler produce language-level certification flags when it finds syntax that is not part of a specified level of the ANSI'85 Standard.
Parameters:
string List of language levels
Properties:
Default: NOFLAGSTD
Phase: Syntax check
Environment: All
$SET: Initial
Remarks:
They can appear in any order but must be separated by at least one space. The following combination of flags can be specified:
FLAG and FLAGSTD provide similar functionality and thus only one can be used.
The ANS85 directive must be on.
Makes the Compiler produce flags indicating potential problem areas on the chip architecture in use.
Properties:
Default: NOFLAG-CHIP
Phase: Syntax check
Environment: All
$SET: Any
Remarks: Causes the Compiler to generate special flagging errors for potential problem areas for the chip architecture given by the CHIP directive. It has no effect if NOCHIP is set. See the chapter Writing Programs in your COBOL User Guide for more details.
Folds the identifier/literal associated with CALL, CANCEL, ENTRY, and CHAIN statements and the program name in the PROGRAM-ID paragraph to upper or lower case.
Parameters:
case UPPER or LOWER
Properties:
Default: NOFOLD-CALL-NAME
Phase: Syntax check
Environment: All
$SET: Initial
Remarks: The Compiler also accepts the directive name without hyphens; that is FOLDCALLNAME.
In a CALL
The FOLD-CALL-NAME directive can help in the transfer of COBOL code from an environment with file names which are not case specific to one which is. For example, from OS/2 to UNIX.
It also makes checker conform with the ANSI'85 standard interprogram communications module, in which the case of a program name in a CALL statement does not matter.
With NOFOLD-CALL-NAME, by normal COBOL convention the program name is folded to upper case unless enclosed in quotes. This also applies to the root program of a nested program. All the subprogram names are folded to upper case even when in quotes. (Enclosing program name in quotes is a Micro Focus extension. See the section The PROGRAM-ID Paragraph in your Language Reference.)
The program name is also accessible as an entry point in a fully linked executable.
Specifies the number of lines on each page of the listing.
Parameters:
integer Must be greater than 3.
Properties:
Default: FORM"60"
Phase: Both
Environment: All (syntax check), 16-bit (generate)
$SET: Any
Dependencies:
Set to NOFORM at end by NOLIST or MASM.
Set to FORM"60" immediately by LIST.
Remarks: With FORM"(integer)", a form-feed character is always produced at the head of the listing file. With NOFORM, no form-feed characters or page headings are produced anywhere in the listing.
Determines whether one floating-point receiving item can affect the results of other, nonfloating-point receiving items.
Parameters:
dialect Must be VSC2 or OSVS.
Properties:
Default: NOFP-ROUNDING
Phase: Syntax check
Environment: All
$SET: Any
Remarks: In OS/VS COBOL and VS COBOL II, if any of the sending data items of an arithmetic statement are floating point, all receiving fields are rounded, regardless of the presence or absence of the ROUNDED phrase and regardless of whether or not the receiving fields are floating point.
In VS COBOL II, if any receiving data item is defined as floating point, rounding takes place for all receiving data items regardless of the presence or absence of the ROUNDED phrase, of whether or not the receiving field is floating point, and of whether or not there are any sending items which are floating point.
With NOFP-ROUNDING, no rounding takes place for fixed point targets in calculations involving floating point operands unless the ROUNDED phrase is explicitly used in the source.
Example:
If two data items are defined as follows:
If, using the same two data items, the following statement is executed:
compute numeric-field = +7.6E0
specifying FP-ROUNDING"VSC2" or FP-ROUNDING"OSVS" results in numeric-field
containing 8 (rounded), whereas specifying NOFP-ROUNDING results in
numeric-field containing 7 (truncated).