
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.
Changes the addresses of 01-level items in the Working-Storage Section so that they do not cross 64K segment boundaries.
Properties:
Default: NO01SHUFFLE
Phase: Syntax check
Environment: DOS, Windows and OS/2
$SET: Initial
Dependencies: Set to NO01SHUFFLE at end by NESTCALL.
Remarks: If a data item would cross as segment boundary, specifying 01SHUFFLE causes the in 01-level item to be moved in memory so that it starts at a segment boundary. The gap left is filled by any following 01-level items that fit. This results in 01-level items not being contiguous in memory when the program is loaded.
Use of this directive can cause an increase in the size of the data segment of a program. This directive is not valid for nested programs.
See also:
REF Compiler directive
SHOWSHUFFLE Compiler directive
Makes the Compiler produce segment-breaking information more often than at each paragraph, for programs containing paragraphs that produce more than 64K of code.
Properties:
Default: NO64KPARA
Phase: Generate
Environment: 16-bit
$SET: Initial
Dependencies:
Must set SEGSIZE" Remarks: Use of this directive lengthens the compilation process
slightly but does not affect the code produced. This directive is mandatory for programs which contain paragraphs that
produce more than 64K of code. See also: Makes the Compiler produce segment-breaking information at each paragraph
instead of each section, for programs containing sections that produce more
than 64K of code. Properties: Dependencies:
Must set SEGSIZE"(integer") so (integer) is nonzero. Remarks: Use of this directive lengthens the compilation process
slightly but does not affect the code produced. This directive is mandatory for programs which contain sections that
produce more than 64K of code. See also: Specifies whether the data areas associated with Screen Section data are
updated from their corresponding Working-Storage Section items before an
ACCEPT statement. Properties: Dependencies:
Set to ACCEPTREFRESH immediately by MS, IBM-MS or PC1. Remarks: With ACCEPTREFRESH specified, before an ACCEPT statement
that references a Screen Section data item, all data areas associated with
Screen Section items subsidiary to the item being accepted are modified as
follows:
64KSECT Compiler directive
SEGSIZE Compiler directive
Default: NO64KSECT
Phase: Generate
Environment: 16-bit
$SET: Initial
64KPARA Compiler directive
SEGSIZE Compiler directive
Default: NOACCEPTREFRESH
Phase: Syntax check
Environment: All
$SET: Initial
With NOACCEPTREFRESH specified, the Screen Section data area is left as it was following the last ACCEPT or DISPLAY.
Adds one or more specific reserved words to the reserved word list so that they are recognized as reserved words in the user program. The specified reserved words are added, whatever dialect directives are in force.
Parameters:
rsv-word A reserved word in some dialect of COBOL, but not necessarily
in a dialect specified for this compilation
Properties:
Default: No additional reserved words are created.
Phase: Syntax check
Environment: All
$SET: Initial
Remarks: The specified reserved words are added, whatever dialect directives are in force.
This directive does not appear in the list created with the SETTING directive.
See also:
SETTING Compiler directive
Defines a user-defined reserved word to be synonymous with an existing reserved word.
On DOS, Windows and OS/2:
Parameters:
rsv-word Existing reserved word.
user-word Any COBOL word not the same as an existing reserved word.
Properties:
Default: No reserved word synonyms are created.
Phase: Syntax check
Environment: All
$SET: Initial
Remarks: The equals sign must be surrounded by spaces.
This directive does not appear in the list created with the SETTING directive.
Causes a control character to be inserted at the start of each line in a print file. This is for compatibility with mainframe operation.
Properties:
Default: NOADV
Phase: Syntax check
Environment: All
$SET: Any
Remarks: Use the directive FILETYPE"10" in preference to this one.
See also:
FILETYPE Compiler directive
Prevents the Compiler from performing certain optimizations that are unsafe when a program uses aliasing.
Properties:
Default: NOALIAS
Phase: Generate
Environment: 16-bit
$SET: Initial
Remarks: Using the SET ADDRESS OF statement you can access the same data in two different ways; that is, in the Working-Storage Section and as an item in the Linkage Section. This technique is known as "aliasing". Any program that uses aliasing must be compiled with ALIAS specified.
Specifies the memory boundaries on which data items of 01-level or 77-level are aligned.
Parameters:
integer The distance from the start of one 01-level to the start
of the next is a multiple of this. Can take any value from
1 to 255.
Properties:
Default: ALIGN"8"
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies:
Set to ALIGN"8" immediately by IBMCOMP or NORM.
Set to ALIGN"2" immediately by RM or RM"ANSI".
Remarks: Data items of 01-level are aligned on byte boundaries that are multiples of the value given.
This can help produce more efficient execution results but does mean more memory might be used.
Setting (integer) to a number that is not a multiple of four could impair the efficiency of the generated code.
Sets the number from which the Compiler counts positions in the collating sequence when compiling the ALPHABET clause.
Parameters:
integer The number to be used.
Properties:
Default: ALPHASTART"1"
Phase: Syntax check
Environment: All
$SET: Initial
Remarks: For ANSI conformance use ALPHASTART"1".
Example:
With ALPHASTART"1", the COBOL statement:
ALPHABET MYALPHA IS 66, 67
declares an alphabet consisting of "A" and "B" since, counting from 1, these
are the 66th and 67th characters in the ASCII collating sequence. With
ALPHASTART"0", MYALPHA consists of "B" and "C".
Allows ALTER statements in your program.
Properties:
Default: ALTER
Phase: Both
Environment: All
$SET: Initial
Dependencies: If ASSUME is set, set to NOALTER at end by NOTRICKLE during the generate phase.
Remarks: If you know there are no ALTER statements in your program, specifying NOALTER enables the Compiler to produce slightly more efficient code.
Makes the Compiler produce extra information so that you can use the Analyzer feature of Advanced Animator.
Properties:
Default: NOANALYZE
Phase: Syntax check
Environment: All
$SET: No
Dependencies: ANALYZE sets ANIM immediately.
Remarks: This directive is reserved for use with products containing the Analyzer facility, such as Workbench and Toolbox. Do not change its setting unless you have an appropriate system.
Makes the Compiler produce extra information so that you can use Animator.
Properties:
Default: NOANIM
Phase: Syntax check
Environment: All
$SET: No
Dependencies:
compact
Set to ANIM immediately by WB.
Set to ANIM at end by ANALYZE, BROWSE, CSI, GANIM or STRUCT.
Set to NOANIM at end by NOINT or RNIM.
Remarks: An intermediate code file is created in the format required to enable the program to be animated. On DOS, Windows and OS/2 with Toolset or Workbench, and on UNIX, the intermediate code is held in a file with the extension .int (unless the OPT"0" directive is specified). This can be animated directly.
On DOS, Windows and OS/2 without Toolset or Workbench, or if you specify the OPT"0" directive, the intermediate code is held in a file with the extension .obj. This file has to be linked before it can be animated. This is done automatically, unless OPT"0" is specified. It is linked with coblib.lib and either cobapi.lib or os2.lib depending on the operating system you are compiling on. If you specify your own libraries with a LINKLIB directive, they are used instead.
On OS/2, a .dll file is created using the .def file with root-name the same as the source-file-name. In this case, the DEFFILE directive is enabled causing the Compiler to create a suitable .def file. If you need to use your own .def file, you must specify NODEFFILE.
In all cases, a file with extension .idy, is also created. This contains the additional information needed to animate the program.
The location of the .idy file is controlled by the COBIDY directive.
See also:
COBIDY Compiler directive
DEFFILE Compiler directive
LINKLIB Compiler directive
OPT Compiler directive
Specifies that words reserved in the ANSI'85 COBOL Standard are to be treated as reserved words, and changes the behavior of certain features to be compatible with that Standard.
Parameters:
SYNTAX Makes the directive affect syntax only and not behavior.
Properties:
Default: ANS85
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies: Set to ANS85 at end by VSC2 or SAA.
Remarks: This directive causes the following behavior changes:
Makes the Compiler interpret the figurative constant QUOTE as the single-quote character (').
Properties:
Default: QUOTE
Phase: Syntax check
Environment: All
$SET: Any
Remarks: The opposite of this directive is the directive QUOTE which causes the double-quote character to be used.
Causes the Compiler to treat any token which starts in area A in the Procedure Division as a paragraph or section label, regardless of the preceding tokens.
Properties:
Default: NOAREACHECK
Phase: Syntax check
Environment: All
$SET: Any
Remarks: If AREACHECK is not specified, only tokens which follow a period are treated as possible labels. This directive provides closer compatibility with mainframe error handling, where omitting a period before the label produces a less serious message. It is recommended that such erroneous source code is corrected.
Specifies how arithmetic expressions are to be evaluated.
Parameters:
arith-type The behavior to adopt.
Properties:
Default: ARITHMETIC"MF"
Phase: Syntax check
Environment: All
$SET: No
Remarks: The possible values of (arith-type) are:
With ARITHMETIC"MF" specified, expressions are calculated as accurately as possible because no truncation takes place.
Causes the Compiler to insert disassembled generated code into the Generator report (.grp) file.
Properties:
Default: NOASM
Phase: Generate
Environment: 16-bit
$SET: Initial
Dependencies:
NOASM sets NOMASM at end.
Set to ASM immediately by ASMLIST.
Remarks: You can produce a .grp file which contains Generator messages without assembler code by specifying ASMLIST() and NOASM (in that order).
Makes the Compiler produce an assembly listing.
Parameters:
destination A full file specification or a device-name.
Properties:
Default: NOASMLIST
Phase: Generate
Environment: 16-bit
$SET: Initial
Dependencies:
ASMLIST sets ASM immediately.
NOASMLIST sets NOREF at end.
Remarks: If you specify an existing file it is overwritten. When NOASMLIST is specified, no assembly listing is produced. If you specify ASMLIST with no file-name, the assembly listing is sent to the screen.
ASMLIST() causes the assembly listing to be put in the file
If you use ASMLIST together with SOURCEASM and you follow ASMLIST by the word NOASM, you get an assembly listing showing source code but not assembly code. This is useful because of the "BADCODE" comments you get on the source lines.
See also:
MASM Compiler directive
PARAS Compiler directive
SOURCEASM Compiler directive for details of "BADCODE".
Specifies how to assign a file-name when neither EXTERNAL nor DYNAMIC appear in the SELECT statement.
Parameters:
assign-type EXTERNAL or DYNAMIC. Defines the method.
Properties:
Default: ASSIGN"DYNAMIC"
Phase: Syntax check
Environment: All
$SET: Any
Remarks: For more details, see the section Fixed File Assignment in the chapter File Handling in your COBOL System Reference.
Under DOS, Windows and OS/2 (16-bit), for any indexed files or for all files if the program is compiled using the CALLFH directive, file-name mapping overrides any syntax definition or use of the ASSIGN directive.
Specifies how to assign the output from an ASSIGN TO PRINTER clause when the clause does not specify a file-name.
Parameters:
file-name The file to be associated with the ASSIGN TO PRINTER
clause.
Properties:
Default: NOASSIGN-PRINTER
Phase: Syntax check
Environment: All
$SET: Any
Remarks: This directive has no effect if you specify a file-name as part of the ASSIGN TO PRINTER clause.
On DOS, Windows and OS/2, NOASSIGN-PRINTER causes the output to be sent to the device LST:. On UNIX it causes the output to be placed in a file called LPT1.
ASSIGN-PRINTER"
ASSIGN-PRINTER() results in the same behavior as including the following
COBOL statement:
By default, the file-name does not include an extension, but you can specify an extension by using the PRINT-EXT directive.
See also:
PRINT-EXT Compiler directive
Controls the interaction between certain Generator directives.
Properties:
Default: ASSUME
Phase: Generate
Environment: 16-bit
$SET: Initial
Dependencies: If ASSUME then the following dependencies apply:
Makes the default locking AUTOMATIC rather than EXCLUSIVE for files opened I-O or EXTEND in a multi-user environment.
Properties:
Default: NOAUTOLOCK
Phase: Syntax check
Environment: All
$SET: Initial
Remarks: This directive does not appear in the SETTING list if its state is the same as WRITELOCK. In this case, the state of the two directives is indicated by the FILESHARE directive.
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.
Allows arithmetic with COMP-3 items with illegal sign nibbles (such as those produced by a redefinition of the item) to produce the desired result.
Properties:
Default: NOBADSIGNS
Phase: Generate
Environment: 16-bit
$SET: Initial
Remarks: Specifying BADSIGNS causes COMP-3 arithmetic to be performed by a nonoptimized route, thus reducing the efficiency of your programs. For smaller, faster code you should not specify BADSIGNS.
Makes the bell sound at points such as when compilation stops, either because of an error or because it has finished.
Properties:
Default: NOBELL
Phase: Both
Environment: All (syntax check), 16-bit (generate)
$SET: Initial
Specifies that the subscript or index value is to be checked to ensure it is within the limits defined by the OCCURS clause.
Properties:
Default: BOUND
Phase: Both
Environment: All
$SET: Initial
Dependencies: BOUND sets NOTABLESEGCROSS and NOBOUNDOPT at end.
Remarks: For multi-dimensional tables, only the composite subscript is checked. If any of the individual subscripts or indices is beyond its limit, but the reference remains within the table, no error is produced.
Optimizes the code generated for USAGE DISPLAY subscripts.
Properties:
Default: BOUNDOPT
Phase: Generate
Environment: 16-bit
$SET: Initial (on DOS, Windows and OS/2)
No (on UNIX)
Dependencies: Set to NOBOUNDOPT at end by BOUND or TABLESEGCROSS.
Remarks: If BOUNDOPT is used, any digits in a USAGE DISPLAY subscript above the size of the table are ignored.
Can only be used when NOBOUND is specified, and only affects generated code created with OPT"1" or above. NOBOUNDOPT must be specified if a program references beyond the end of a table.
Example: For example, for a table with 50 entries, a PIC 9(3) subscript is treated as PIC 9(2), with the most significant digit ignored.
Makes the Compiler produce only error numbers and no message texts.
Properties:
Default: NOBRIEF
Phase: Syntax check
Environment: All
$SET: Any
Makes the Compiler create an .sbr file for use with the Microsoft Source Browser supplied with the Microsoft utilities. Requires the Microsoft components to be present at compile time.
Properties:
Default: NOBROWSE
Phase: Syntax check
Environment: DOS, Windows and OS/2
$SET: Any
Dependencies: BROWSE sets ANIM immediately.
Determines whether the BLANK WHEN ZERO clause is allowed in the Data Division for those fields defined with the "*" PICTURE symbol.
Properties:
Default: NOBWZSTAR
Phase: Syntax check
Environment: All
$SET: Any
Remarks: The BWZSTAR directive is Early User Syntax support. You must set the EARLY-RELEASE directive to enable this feature. This directive might change or be removed in a later revision of this system.
If BWZSTAR is specified, the BLANK WHEN ZERO clause is allowed with fields defined using the "*" PICTURE symbol, and BLANK WHEN ZERO is effective when the field is the target of an editing operation and the result is zero. If NOBWZSTAR is specified, a BLANK WHEN ZERO clause associated with a PIC * field is rejected.
See also:
EARLY-RELEASE Compiler directive
Controls the granule size for moves between overlapping data items.
Properties:
Default: NOBYTE-MODE-MOVE
Phase: Syntax check
Environment: All
$SET: Initial
Remarks: The Compiler also accepts the name without hyphens; that is BYTEMODEMOVE.
This directive is provided for compatibility with IBM mainframe compilers in the handling of forward overlapping moves - that is, where the start of the target data item overlaps the end of the source data item.
If BYTE-MODE-MOVE is specified, data is moved one byte at a time from the source to the target.
If NOBYTE-MODE-MOVE is specified, the data is moved in granules of two, four or more bytes at a time (depending on environment) from the source to the target. Consequently, if the overlap is less than the size of the granule, each granule moved overwrites part of the next granule to be moved.