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.
Causes all format 1 ACCEPT, DISPLAY and EXHIBIT statements to be routed through the specified handler. The output generated by TRACE is also routed through the specified handler.
Parameters:
handler-name Root-name of a program to be called to act as the handler.
Properties:
Default: NOCALLADIS
Phase: Syntax check
Environment: All
$SET: Initial
Remarks: The CALLADIS 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 product.
If
See also:
EARLY-RELEASE Compiler directive
Makes the Compiler generate direct calls for all file I/O operations, using the Callable File Handler interface.
Parameters:
handler-name Root-name of a program to be called to act as the file
handler.
Properties:
Default: NOCALLFH (on DOS, Windows and OS/2)
CALLFH"EXTFH" (on UNIX)
Phase: Syntax check
Environment: All
$SET: Initial
Remarks: (handler-name) can be one of the following:
If NOCALLFH is specified, file I/O is handled by the run-time system. When CALLFH is specified, all file I/O statements are converted to calls to the file handler specified by the directive.
If
This directive is also used to direct all file handling calls through converter modules, such as XFH2BTR, to make use of non-COBOL file handlers.
Toolset and Toolbox provide information that enables you to create your own file handler. Use this directive to make your programs call your file handler instead of the standard file handler.
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.
Causes all Message Control System operations to be routed through the specified handler.
Parameters:
mcs-name Root-name of a program to be called to process message
control system (mcs) operations.
Properties:
Default: NOCALLMCS
Phase: Syntax check
Environment: All
$SET: Initial
Remarks: If
Defines the program to be called to handle all SORT and MERGE operations.
Parameters:
sort-name Root-name of a program to be called to process sorts and
merges.
Properties:
Default: CALLSORT"_SORT" (on DOS, Windows and OS/2)
NOCALLSORT (on UNIX)
Phase: Syntax check
Environment: All
$SET: Initial
Makes the Compiler close an .lbr file used as a library in a COPY statement once that copy operation is complete.
Properties:
Default: CANCELLBR
Phase: Syntax check
Environment: All
$SET: Any
Remarks: This directive is not available in the Micro Focus COBOL system for DOS, Windows and OS/2 without Toolset, Workbench or similar add-on products from Micro Focus. Do not change its setting unless you have an appropriate system.
NOCANCELLBR causes such .lbr files to be left open until the end of the compilation. Subsequent COPY statements that do not specify a library search for the copyfile in all open .lbr libraries (last one opened is searched first) before the current directory.
This directive is only relevant if COPYLBR is on.
[NO]CANCELLBR can be used on any $SET. Only .lbr libraries referenced in COPY statements after the $SET are affected. Any left open from previous COPY statements are only closed if specified again on a COPY statement following a CANCELLBR directive.
Prevents external symbols (such as Program-ID and names of called programs) being converted to upper case.
Properties:
Default: NOCASE
Phase: Generate
Environment: 16-bit
$SET: Any
Remarks: This is useful if you are calling a program written in C, where names are case dependent.
Changes the severity of errors/messages. Messages can also be supressed or returned to their original severity.
Parameters:
Properties:
Default: NOCHANGE-MESSAGE
Phase: Syntax check
Environment: All
$SET: Any
Dependencies: CHANGE-MESSAGE overrides the general settings of directives such as FLAGAS.
Remarks: CHANGE-MESSAGE can take as many parameter pairs as required. If CHANGE-MESSAGE is specified multiple times the effects are cumulative.
CHANGE-MESSAGE replaces the HIDE-MESSAGE Compiler directive. However, if you use HIDE-MESSAGE in conjunction with CHANGE-MESSAGE the effects are also cumulative.
Serious errors cannot have their severity reduced unless they were changed to serious (from a lower severity) by another CHANGEMESSAGE directive or the FLAGAS or FLAGCD directives.
Examples:
CHANGE-MESSAGE(ALL R)
CHANGEMESSAGE(10 S 135 E 100 N)
See also:
FLAGAS Compiler directive
FLAGCD Compiler directive
HIDE-MESSAGE Compiler directive
Defines the character set of the environment.
Parameters:
char-set ASCII or EBCDIC.
Properties:
Default: CHARSET"ASCII"
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies:
Remarks: To use this directive you must have the full Micro Focus COBOL Workbench system.
Do not change its setting if your application is to be linked with the static-linked run-time system, lcobol.
All literals and collating sequences are handled in the character set specified.
For current limitations see your Workbench documentation.
Controls the behavior of your program if it tries to divide by zero in a statement that has no ON SIZE ERROR phrase.
Parameters:
dialect Must be ANSI, OSVS, VSC2, or COBOL370.
Properties:
Default: CHECKDIV"ANSI"
Phase: Both (16-bit), Syntax check (32-bit)
Environment: All
$SET: Initial
Remarks: With CHECKDIV or CHECKDIV"ANSI" specified, the program continues with an undefined result if it tries to divide by zero. With NOCHECKDIV set, the behavior is undefined. Setting NOCHECKDIV results in optimal code for divides.
Specifying CHECKDIV"OSVS", CHECKDIV"VSC2", or CHECKDIV"COBOL370" has the same effect; trying to divide by zero produces run-time error 48 (Attempt to divide by zero (fatal)). This error can be disabled using the -O RTS switch.
This directive has no effect on arithmetic statements that use the ON SIZE ERROR phrase.
See also:
O RTS switch
Checks whether numeric fields contain valid data before performing operations on them.
Properties:
Default: NOCHECKNUM
Phase: Generate
Environment: 16-bit
$SET: Initial
Remarks: Specifying this directive causes extra code to be generated to ensure that numeric fields contain valid data before any operations are performed on them. With CHECKNUM set, run-time error message 163 (Illegal character in numeric field (fatal)) is displayed if any numeric field is found to contain nonnumeric data. This error can be disabled using the -F RTS switch.
Specifying CHECKNUM causes extra code to be produced, reducing the efficiency of your programs. For smaller, faster code you should not specify CHECKNUM.
See also:
F RTS switch
Adds code to all calls to check the stack and report if an incorrect number of parameters has been passed.
Properties:
Default: NOCHECKSTACK
Phase: Generate
Environment: 16-bit
$SET: Initial
Remarks: Extra code is add for all calls, including calls to the system library routines (CBL_).
If an incorrect number of parameters has been used, the code tries to detect the resulting stack corruption and give a Run-time System error 168 at run-time.
The extra instructions slightly reduce run-time performance, so the directive should only be used when debugging.
Tells the Compiler that a specific microprocessor architecture is in use.
Parameters:
integer Must be 16.
Properties:
Default: CHIP"16"
Phase: Syntax check
Environment: All
$SET: Initial
Remarks: The information produced is only relevant for 16-bit environments.
In the case of the Intel 80x86 family, the use of CHIP"16" indicates that the maximum segment addressability is given by 16 bits, and anything over this size is split over an addressing boundary. Knowing this, the Compiler can alter certain code structures to avoid potential crossing boundaries conditions (for example, the internal print buffer used with Report Writer syntax).
When used with the directive FLAG-CHIP, this directive causes the Compiler to indicate chip specific boundary conditions. These might indicate potential problems or performance losses on the particular chip.
Enables the use of CICS by updating BLL cells.
Properties:
Default: NOCICS
Phase: Syntax check
Environment: All
$SET: No
Remarks: This directive is reserved for use with add-on CICS products supplied by Micro Focus. Do not change its setting unless you have an appropriate add-on product. This is not for use with CICS OS/2.
With CICS, if CICS-CPY is also set, the Compiler inserts:
The Linkage Section item following the DFHCOMMAREA record is assumed to contain the BLL cells, each named and with the description PIC S9(8) COMP. The BLL cells are matched with the corresponding Linkage Section records according to CICS rules.
If the Compiler inserts the DFHCOMMAREA record, it is not visible during animation or in printer listings. However, the record can be queried during animation. If you intend to animate a program that uses BLL cells, set this directive on.
Inserts the statement COPY "CICS.CPY" provided the CICS directive is specified.
Properties:
Default: CICS-CPY
Phase: Syntax check
Environment: All
$SET: No
Remarks: This directive is reserved for use with add-on CICS products supplied by Micro Focus. Do not change its setting unless you have an appropriate add-on product. This is not for use with CICS OS/2.
See also:
CICS Compiler directive
Optimizes the handling of CICS BLL cells.
Properties:
Default: NOCICSOPTIMIZE
Phase: Syntax check
Environment: All
$SET: No
Remarks: This directive is reserved for use with add-on CICS products supplied by Micro Focus. Do not change its setting unless you have an appropriate add-on product. This is not for use with CICS OS/2.
With NOCICSOPTIMIZE, the Compiler inserts instructions whenever a BLL-cell is updated to ensure that the addressability of Linkage Section items corresponds to the current values in the BLL cells. With CICSOPTIMIZE, the Compiler does not insert these instructions. You must use the SERVICE RELOAD instruction to ensure that the addressability is updated.
For compatibility with the mainframe compiler option of the same name which returns behavior of the COBOL 370, VS COBOL II version 3 and VS COBOL II version 4 compilers to that of the VS COBOL II version 2 compiler.
Properties:
Default: NOCMPR2
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies: Requires VSC2"3", VSC2"4" or COBOL370 flagging to be selected.
Remarks: A conflicting directives message is issued (with FLAGCD only) if one of the required flagging levels is not selected.
Setting this directive is not quite the same as setting VSC2"2". It emulates the mainframe behavior quite closely, and also causes different run-time behavior in some cases. If you use this directive on the mainframe with one of the specified compilers, use this directive instead of VSC2"2".
The FLAGMIG directive flags the items that give different run-time behavior.
See also:
FLAGMIG Compiler directive
Causes the Callable File Handler ExtFH to use the user-supplied module specified in the COBFSTATCONV environment variable to convert the file status codes if an I/O error is encountered on a file.
Properties:
Default: NOCOBFSTATCONV
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, Workbench or similar add-on products from Micro Focus. Do not change its setting unless you have an appropriate system.
Specifies the path where the Animator information file (.idy file) and COBOL Source Information file (.csi) are to be written.
Parameters:
path-name Path specification.
Properties:
Default: NOCOBIDY
Phase: Syntax check
Environment: All
$SET: No
Remarks: If you do not specify
The .csi files are only produced if the CSI directive is used. This should only be used if you have Toolbox or Workbench.
See also:
CSI Compiler directive
Specifies that words reserved in IBM COBOL/370 are to be treated as reserved words, and allows features selectively for compatibility with a given level of that product.
Parameters:
integer Must be 1. The level of IBM COBOL/370 to be compatible
with.
Properties:
Default: NOCOBOL370
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies: COBOL370 sets DBSPACE and DBCS"3" immediately.
Remarks: Specifying COBOL370 without a parameter is the same as specifying COBOL370"1". This specifies compatibility with Version 1 Release 1 of IBM COBOL/370.
Specifies whether the checker should process the directives in a cobol.dir file or ignore it.
Properties:
Default: COBOLDIR
Phase: Syntax check
Environment: All
$SET: No
Makes the Compiler produce very compact and efficient code for some statements involving COMP data items, by treating COMP items as COMP-X.
Properties:
Default: NOCOMP
Phase: Syntax check
Environment: All
$SET: Initial
Remarks: This COMP code produced by the Compiler behaves in a way that is not the ANSI standard in cases of numeric overflow. You should use this directive only if you know that your program does not lead to numeric overflow, or if you want to use the defined (but nonstandard) behavior on overflow.
Specifies whether the sign is to be dropped when a value is stored in an unsigned COMP-5 data item.
Parameters:
integer Must be 1 or 2.
Properties:
Default: COMP-5"2"
Phase: Syntax check
Environment: All
$SET: Initial
Remarks: The possible values of (integer) are:
Specifies whether COMP-6 data is to be held in binary or packed decimal format.
Parameters:
integer Must be 1 or 2.
Properties:
Default: COMP-6"2"
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies: RM or ADDRSV"COMP-6" must be set.
Remarks: The possible values of (integer) are:
Even if you specify the COMP-6 directive, the reserved word COMP-6 is recognized only if it belongs to the chosen dialect or the directive ADDRSV"COMP-6" is specified.
Example: With COMP-6"2" specified:
PIC 99 COMP-6 VALUE 87 is stored in one byte as x"87"
PIC S99 COMP-6 VALUE 87 is stored in two bytes as x"087C"
Allows your program to contain syntax introduced in the Communications Module of the ANS85 COBOL Standard.
Properties:
Default: NOCOMS85
Phase: Syntax check
Environment: All
$SET: Initial
Makes the Compiler echo all subsequent directives to the screen.
Properties:
Default: NOCONFIRM
Phase: Both
Environment: All (syntax check), 16-bit (generate)
$SET: No
Dependencies: Set to CONFIRM immediately by VERBOSE.
Declares a constant for use in the program.
Parameters:
Properties:
Default: Not set
Phase: Syntax check
Environment: All
$SET: Any
Remarks: The effect is as if the constant
To declare several figurative constants using this feature, use the CONSTANT directive repeatedly.
Specifies whether POINTER data items can be redefined as PIC 9(9) COMP data items.
Properties:
Default: NOCONVERTPTR
Phase: Syntax check
Environment: All
$SET: Initial
Remarks: IBM VS COBOL II and COBOL/370 let you use the REDEFINES clause on a POINTER data item, to redefine it as a PIC 9(9) COMP data item. You can then perform arithmetic operations on this item, giving the program the ability to shift the address referred to by a pointer up or down.
If CONVERTPTR is specified, pointers are held in a form that is reversed with respect to native byte ordering. They are converted to the native form immediately before any SET ADDRESS OF linkage-item TO pointer statement, and immediately after any SET pointer TO ADDRESS OF ... statement.
The CONVERTPTR directive has no effect on PROCEDURE-POINTER data items.
On 16-bit systems, unexpected behavior might occur if the arithmetic carried out causes the pointer to cross the boundary of a data segment.
Causes COMP and COMP-X items specified in CALL ... RETURNING and EXIT PROGRAM ... RETURNING phrases to be converted to COMP-5.
Properties:
Default: NOCONVERTRET
Phase: Syntax check
Environment: All
$SET: Initial
Converts double-byte space characters in COBOL source files to single-byte spaces on input.
Properties:
Default: CONVSPACE
Phase: Syntax check
Environment: All
$SET: Initial
Specifies the file-name extension of the copyfile that the Compiler is to look for if a file-name in a COPY statement is specified without an extension.
Parameters:
extension A file-name extension.
Properties:
Default: COPYEXT"cbl,cpy" (on DOS, Windows and OS/2)
COPYEXT",cbl,cpy" (on UNIX)
Phase: Syntax check
Environment: All
$SET: Initial
Remarks: Up to four extensions can be specified, each extension being up to 10 characters long. An extension of null is used to represent an extension of spaces.
If you have many COPY statements that do not specify an extension, using COPYEXT can improve the compilation speed of your program. For example, if all of your copyfiles have the extension .cpy, specifying COPYEXT"CPY,CBL" would avoid unnecessary file access attempts.
The behavior of this directive is affected by the setting of the OSEXT
directive. The extension specified by the OSEXT directive overrides the first
extension specified by the COPYEXT directive. For example:
COPYEXT"cpy,cbl,txt" OSEXT"src"
would have the same effect as:
COPYEXT"src,cbl,txt"
See also:
OSEXT Compiler directive
Makes the Compiler treat the library specified in a COPY statement as an .lbr file.
Properties:
Default: NOCOPYLBR
Phase: Syntax check
Environment: All
$SET: No
Remarks: This directive is not available in the Micro Focus COBOL system for DOS, Windows and OS/2 without Toolset, Workbench or similar add-on products from Micro Focus. Do not change its setting unless you have an appropriate system.
With NOCOPYLBR, the Compiler assumes that the library is a path-name.
Makes the Compiler list the contents of files named in COPY statements.
Parameters:
integer Must be 0 or between 50 and 99.
Properties:
Default: COPYLIST
Phase: Syntax check
Environment: All
$SET: Any
Remarks: (integer) is the number of a COBOL segment. It must be 0 or in the range 50 through 99. If it is not specified, the contents of all copyfiles are listed. If it is specified, the contents of all copyfiles in the first three divisions (that is, the Identification, Environment and Data Divisions), the root, and the given segment are listed. An integer of 0 refers to the first three divisions and all root segments.
NOCOPYLIST prevents the listing of the contents of any copyfiles. If a
segment-number is specified with NOCOPYLIST, only copyfiles in that segment
are listed. For example:
COPYLIST"53" List all copyfiles in the first three divisions, the root
segment, and segment 53.
NOCOPYLIST"53" List only copyfiles that are in segment 53.
Whatever the state of this directive, the name of any copyfile open when a page heading is output is given in that heading.
Makes the Compiler produce extra information so that you can use CSI.
Properties:
Default: NOCSI
Phase: Syntax check
Environment: All
$SET: No
Dependencies: CSI sets ANIM at end.
Remarks: This directive is reserved for use with products containing CSI, such as Workbench and Toolbox. Do not change its setting unless you have an appropriate add-on product.
The CSI file has extension .csi. Its location is controlled by the COBIDY directive.
See also:
COBIDY Compiler directive
Specifies the currency sign to be recognized in the PICTURE clause.
Parameters:
integer ASCII code of the character, in decimal.
Properties:
Default: CURRENCY-SIGN"36" (that is, "$")
Phase: Syntax check
Environment: All
$SET: Initial
Remarks: You cannot specify a valid PICTURE clause symbol. See your Language Reference for a list of these.
Specifies the format of the date stored in the CURRENT-DATE special register.
Parameters:
date-format Either DDMMYY or MMDDYY.
Properties:
Default: CURRENT-DATE"MMDDYY"
Phase: Syntax check
Environment: All
$SET: Any
Remarks: The DDMMYY parameter causes CURRENT-DATE to be stored in European format. The parameter can be specified in either upper case or lower case.
Specifies the type of data compression to be done on sequential and indexed files.
Parameters:
Properties:
Default: NODATACOMPRESS
Phase: Syntax check
Environment: All
$SET: AnyRemarks: The only value that can be specified for data compression supported by this system is 1. Values in the range 128 through 255 indicate user-defined compression routines.
You need to specify data compression only when creating the file. Subsequently, the data compression is detected when the file is opened.
To get data compression on an individual file, use $SET statements in your source so that this directive is in effect only for the part of the source containing the file's SELECT statement.
Data compression is supported only by the Callable File Handler, ExtFH. All indexed files are processed by ExtFH. However, if you want to use data compression with sequential files, every program referencing those files must be compiled with the directive CALLFH"EXTFH".
See also:
CALLFH Compiler directive
- DATALIT
Makes the Compiler put literals in the DATA segment of the program rather than the CODE segment.
Properties:
Default: DATALIT
Phase: Generate
Environment: 16-bit
$SET: Initial
Dependencies: Set to NODATALIT at end by OPT"0".
Remarks: For segmented programs, specifying NODATALIT gives the advantage of being able to have literals in the CODE segment so that they can then be swapped out with the code that references them. There is generally no advantage in specifying NODATALIT for a nonsegmented program. However, if you are running generated code (.gnt files) under DOS, specifying NODATALIT lets you discard any unreferenced code segment.
Puts the date in the DATE-COMPILED paragraph and at the top of each page of the listing.
Parameters:
string An alphanumeric literal.
Properties:
Default: DATE
Phase: Syntax check
Environment: All
$SET: No
Remarks: The date and time, available from operating system, are automatically inserted when you specify DATE. You can, however, enter the date yourself as the parameter. With NODATE, the paragraph is left unaltered.
With DATE, the system date or the string you enter appears at the top of each page of the listing. With NODATE, spaces are used instead.
Makes the Compiler check that any Double-Byte Character Set (DBCS) literals only contain valid 16-bit DBCS characters.
Properties:
Default: NODBCHECK
Phase: Syntax check
Environment: All
$SET: Initial
Remarks: If you specify DBCHECK in environments that support validation of DBCS data, any literal that does not contain only valid 16-bit DBCS characters results in syntax error 1048 (DBCS literal includes invalid data).
Makes the Compiler accept characters of the Double Byte Character Set (DBCS) for use in ideographic languages such as Japanese, Chinese and Korean.
Parameters:
integer Must be 1, 2 or 3. Indicates which compatibility required.
Properties:
Default: NODBCS
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies:
Set to DBCS"2" immediately by SAA, VSC2"2", VSC2"3" or MF"7".
Set to DBCS"3" immediately by COBOL370 or MF"(integer)" where (integer) >
7.
Remarks: The possible values of (integer) are:
Defines the two characters used as the shift-out and shift-in delimiters in DBCS literals.
Parameters:
Properties:
Default: NODBCSSOSI
Phase: Syntax check
Environment: All
$SET: Any
Remarks: When shift-out and shift-in characters are specified by this directive, every DBCS literal must have the shift-out character immediately after the opening quotation mark and the shift-in character immediately before the closing quotation mark.
They act as additional delimiters to the literal, and are not part of its value. With NODBCSSOSI, no shift-out and shift-in characters are needed or recognized.
Makes the Compiler interpret the figurative constant SPACE, when used as a DBCS figurative constant, as the double-byte space character supplied by the system.
Properties:
Default: NODBSPACE
Phase: Syntax check
Environment: All
$SET: Any
Dependencies:
Set to DBSPACE immediately by COBOL370, NCHAR"2", SAA, VSC2"2" or VSC2"3".
Set to DBSPACE immediately by MF"(integer)" where (integer) > 7
Remarks: With DBSPACE, the Compiler uses the system supplied double-byte space character. NODBSPACE provides compatibility with previous versions of this Compiler, where the double-byte space character was two ASCII space characters (x"2020").
Specifies the behavior of de-editing moves from numeric-edited items to other numeric-edited items or to numeric items.
Parameters:
integer Must be 1 or 2. Indicates which compatibility required.
Properties:
Default: DE-EDIT"2"
Phase: Syntax check
Environment: All
$SET: Any
Remarks: The possible values of (integer) are:
Example:
With DE-EDIT"1", B contains 30456. With DE-EDIT"2", B contains 00034; the 0 after the 3 is dropped because it corresponds to the insertion character 0 in the picture-string of A, and the .56 is dropped because B has no decimal places.
Initializes each otherwise undefined byte of the Data Division to the character given.
Parameters:
integer ASCII code of the character, in decimal.
Properties:
Default: DEFAULTBYTE"32"
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies:
Set to DEFAULTBYTE"32" immediately by CHARSET"ASCII".
Set to DEFAULTBYTE"0" immediately by CHARSET"EBCDIC", MS, IBM-MS or PC1.
Specifies the default calling convention.
Parameters:
integer Default CALL convention
Properties:
Default: NODEFAULTCALLS
Phase: Syntax check
Environment: All
$SET: Any
Remarks: DEFAULTCALLS without the optional parameter specifies that the calling convention specified in the PROCEDURE DIVISION USING statement is to be used as the default calling convention.
DEFAULTCALLS"(integer)" specifies that the calling convention indicated by "(integer)" is to be used as the default calling convention.
NODEFAULTCALLS is equivalent to DEFAULTCALLS"0".
Individual CALL statements can override these defaults (see your Language Reference). See your COBOL User Guide for a list of available calling conventions.
Makes the Compiler produce a module definition file (.def file), for use by the linker when creating an .exe file or a .dll file from the .obj created by this compilation.
Parameters:
file-name A full file specification.
Properties:
Default: NODEFFILE
Phase: Generate
Environment: 16-bit on Windows and OS/2
$SET: Any
Dependencies: If OMF"GNT", DEFFILE sets OMF"OBJ" at end.
Remarks: This directive only affects .obj files.
The name of this file is included on the command line to the linker.
If (file-name) is omitted, the name of the file created is (obj-name).def, where (obj-name) is the name of the object file without an extension. (file-name) can be specified as *.(ext) to set the extension but use (obj-name) as the base-name.
The module definition file created is used when linking to create an .exe file or .dll file for Windows or OS/2. The exact contents of the file is determined by the settings of the DLL and DEFFILETYPE directives. The DLL directive indicates if the module definition file is to be used to create an .exe or a .dll file; the DEFFILETYPE directive indicates if it is for Windows or OS/2.
Example:
DEFFILE"*.dfa" DEFFILETYPE"OS2" DLL
creates a file called (obj-name).dfa containing the lines:
See also:
DEFFILETYPE Compiler directive
DLL Compiler directive
Specifies the type of module definition file (.def file) to be produced when the DEFFILE directive is specified.
Parameters:
type Must be OS2 or WIN.
Properties:
Default: DEFFILETYPE"OS2"
Phase: Generate
Environment: 16-bit on Windows and OS/2
$SET: Initial
Remarks: Produces a .def file suitable for linking to create an .exe
file or a .dll file for use on the environment specified by The DLL directive indicates if the module definition file is to be used to
create an .exe or a .dll file. This directive affects only .obj files. See also: Makes READ statements detect when a record is locked by another
program. Properties: Remarks: The Compiler also accepts the name without hyphens; that is
DETECTLOCK With DETECT-LOCK, if a READ statement reads a record locked by another
program, it returns an I/O status of 9/068. With NODETECT-LOCK, it returns
0/000. In both cases it reads the record successfully. When DETECT-LOCK is specified, individual READ statements might be made to
ignore locks by using the READ ... IGNORE LOCK syntax. See your Language
Reference for details of this syntax. Changes the behavior of certain features to be compatible with Data General
Interactive COBOL rev 1.30. Properties: Remarks: See your Language Reference for details of syntax support
for Data General Interactive COBOL rev 1.30. Makes the Compiler read directives from a file. Parameters: Properties: Remarks: A directives file is a text file containing directives.
Directives are separated by a space or the end of line. A directive cannot be
broken across two lines. Comments can be included in the file by placing an ampersand (in column 1
of the comment line, followed by a space. Omitting the space results in the
comment being treated as a directive, and the syntax check on that file
fails. The directives are read from the file until the end of file is reached or
another DIRECTIVES directive is encountered. The maximum length of a line is
128 characters. You can specify more than one directives file in a program by specifying
several DIRECTIVES" The directives file is searched for in the current and COBOL system
directories. If no extension is specified, a file extension of .dir is added
before the search is made. If no file is found, the search is repeated with no
extension. See also:
OS2 OS/2
WIN Windows
DEFFILE Compiler directive
DLL Compiler directive
Default: DETECTLOCK
Phase: Syntax check
Environment: All
$SET: Initial
Default: NODG
Phase: Syntax check
Environment: All
$SET: Initial
file-name A full file specification.
Default: None
Phase: Both
Environment: All (syntax check), 16-bit (generate)
$SET: Any
USE Compiler directive
Properties:
Default: NODIRECTIVES-IN-COMMENTS
Phase: Syntax Check
Environment: All
$SET: Any
Remarks: This directive enables sources to contain directives used when compiling with the Micro Focus compiler, but ignored (as comment lines) by any other compiler, such as a mainframe compiler.
$SET can appear anywhere on a line, provided it is the first thing on the line. However, if this directive is set, the $SET statement is processed even if the line is a comment line (asterisk in column 7).
Makes the Compiler produce a module definition file suitable for creating a .dll file instead of an .exe file when you specify the DEFFILE directive.
Properties:
Default: DLL
Phase: Generate
Environment: OS/2
$SET: Initial
Remarks: This directive only affects .obj files.
Example:
DEFFILE DEFFILETYPE"WIN" NODLL
causes the Compiler to produce a module definition file of name
See also:
DEFFILE Compiler directive
DEFFILETYPE Compiler directive
Specifies that words reserved in IBM DOS/VS COBOL are to be treated as reserved words.
Properties:
Default: NODOSVS
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies: Set to NODOSVS immediately by OSVS.
See also:
OSVS Compiler directive
Specifies that CANCEL statements are not to be ignored.
Properties:
Default: DYNAM
Phase: Syntax check
Environment: All
$SET: Initial
Remarks: With NODYNAM, CANCEL statements in the program are ignored.
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).
Makes the Compiler produce extra information so that you can use Xilerator, available in Toolset and Workbench.
Properties:
Default: NOGANIM
Phase: Both
Environment: DOS, Windows and OS/2
$SET: No
Dependencies:
GANIM sets ANIM and NORNIM at end.
If OPT"0", GANIM sets OPT"1" at end.
Remarks: Xilerator is a Micro Focus tool used for debugging programs at the .exe or .gnt level.
The Compiler produces an extra file with the extension .idy which contains information required by Xilerator. This is the same file that is used by Animator, but GANIM causes extra information to be added to the file which Xilerator needs. The .idy file created by this process can also be used to animate the program with Animator.
Specifies the name of the object code file.
Parameters:
file-name A full file specification.
Properties:
Default: GNT"(source-name).gnt" (with OMF"GNT") GNT"(source-name).obj"
(with OMF"OBJ")
Phase: Generate
Environment: 16-bit
$SET: Any
Dependencies: OBJ and GNT are synonymous. Setting NOGNT also sets NOOBJ.
Remarks: With NOGNT, no object code file is produced.
Setting this directive does not imply OMF"GNT". To ensure that your .gnt file contains .gnt format object code you must make sure that OMF"GNT" is also specified.
This directive is reserved for use with Workbench. Do not change its setting unless you have Workbench.
Parameters:
count-type The type of count needed
Properties:
Default: NOGNTANLZ
Phase: Syntax check
Environment: All
$SET: Initial
Remarks:
Possible values of
Parameters:
integer The number of the syntax check error message to hide.
Properties:
Default: NOHIDE-MESSAGE
Phase: Syntax check
Environment: All
$SET: Any
Remarks: The Compiler also accepts the directive name without hyphens; that is HIDEMESSAGE.
HIDE-MESSAGE"(integer)" adds (integer) to a list of syntax check error message numbers. To hide several error message numbers using this feature, you must use the HIDE-MESSAGE directive repeatedly. When the program is being syntax checked, any message with severity E, W, I, or flag with its number in the list is not shown in any listing. It is not included in the error summary at the end of the compilation. Messages with severity S can be hidden only if they were made severity S by the CHANGEMESSAGE, FLAGAS or FLAGCD directives. Normally, they are always shown, even if their number appears in this list. NOHIDE-MESSAGE clears the list of numbers so no messages are hidden. NOHIDE-MESSAGE"(integer)" removes only the specified message number from the list.See also:
CHANGE-MESSAGE Compiler directive
FLAGAS Compiler directive
FLAGCD Compiler directive
Properties:
Default: NOHOST-NUMCOMPARE
Phase: Syntax check
Environment: All
$SET: Any
Remarks: If the ZWB directive is also specified, HOST-NUMCOMPARE only affects comparisons involving unsigned numeric data items. If NOZWB is specified, HOST-NUMCOMPARE affects comparisons involving both signed and unsigned data items.
If HOST-NUMCOMPARE is specified, affected comparisons are treated as if the numeric data item were redefined as an alphanumeric item of the same length, and the comparison made against this redefinition. If NOHOST-NUMCOMPARE is specified, the numeric field is first moved to an elementary alphanumeric data item of the same size, and the content of this alphanumeric item is then compared to the literal. The HOST-NUMCOMPARE directive only affects comparisons where the numeric data item contains nonnumeric data at the time of the comparison.See also:
ZWB Compiler directive
Properties:
Default: NOHOST-NUMMOVE
Phase: Syntax check
Environment: All
$SET: Any
Remarks: The HOST-NUMMOVE directive is Early User Syntax support. You must use the EARLY-RELEASE directive to enable this feature. This directive might change or be removed in a later revision of this system.
This directive is provided to improve compatibility with IBM mainframe Compilers. However, although this directive causes the error to be suppressed, the result of moving the invalid data is not the same as on the mainframe.See also:
EARLY-RELEASE Compiler directive
RTS error 163
Properties:
Default: NOIBM-MS
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies: IBM-MS sets DEFAULTBYTE"0" and ACCEPTREFRESH immediately.
Remarks: This directive is synonymous with the PC1 and MS"1" directives.
Properties:
Default: NOIBMCOMP
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies: IBMCOMP sets ALIGN"8" immediately.
Remarks: In word-storage mode every data item of USAGE COMP or COMP-5 occupies either two bytes or a multiple of four bytes. If you specify IBMCOMP and you use the SYNCHRONIZED clause on any items defined as USAGE COMP or COMP-5 in your program, do not specify ALIGN"1".
If you are calling any Micro Focus systems routines directly, use IBMCOMP with great care. It might cause the parameters you specify to these routines to be incorrectly aligned and sized, causing the routines to give incorrect results. This includes parameters for the CBL_ library routines, calls to Adis or direct calls to the Callable File Handler, Extfh.Parameters:
integer Must be between 0 and 6.
Properties:
Default: IDXFORMAT"0"
Phase: Syntax check
Environment: All
$SET: Any
Dependencies: Set to IDXFORMAT"(integer)" immediately by FILETYPE"(integer)".
Remarks: The possible values of (integer) are:
Existing files in any of the given formats are processed correctly without the need for this directive. This directive controls the format used when creating new files.
Specifying 3 always causes the format used by this system to be created; if you specify 0, and you are using your program with a file handler from a different system, the default for that system is created. Specifying 4 might make the files larger than their IDXFORMAT"3" equivalents. Micro Focus Level II format files are compatible with Micro Focus products such as Level II COBOL, Professional COBOL V1.2, and VS COBOL Workbench versions up to and including V1.3. (See the chapter Files in your COBOL System Reference for further information.) You must not use the ANS85 directive to enable ANSI'85 behavior when using IDXFORMAT"2". However, you can use ANS85"SYNTAX" to enable ANSI'85 syntax.Properties:
Default: NOINCLUDE-FILLER
Phase: Syntax check
Environment: All
$SET: Any
Remarks: INCLUDE-FILLER makes FILLER data items visible to tools in Toolset, Toolbox and Workbench.
Including these data items increases the size of the .idy file.Parameters:
Properties:
Default: NOINDD
Phase: Syntax check
Environment: DOS, Windows and OS/2
$SET: Initial
Dependencies:
INDD sets NOSYSIN immediately
Set to NOINDD immediately by SYSIN
Remarks: When INDD is specified, all format 1 ACCEPT statements which either have no FROM option or specify FROM SYSIN (or the mnemonic name associated with SYSIN) are transformed into READ statements, reading from a file with the specified external file-name.
The file-name can be mapped onto physical file-names in the same way as other files with external file-names; that is, by using environment variables or the External File Mapper, MFExtmap. The default settings for this directive are the same as those that would be used for this type of ACCEPT statement when the SYSIN directive is used.See also:
ACCEPT statement
OUTDD directive
SYSIN directive
Parameters:
integer Must be between 0 and 4.
Properties:
Default: INFORETURN"0"
Phase: Syntax check
Environment: All
$SET: Any
Remarks: When the Compiler terminates it returns a value that can be tested by an operating system command to determine the success or otherwise of the compilation. The values for termination are described in your COBOL System Reference. This directive enables you to set the value to be returned if the Compiler only outputs informational messages.
Parameters:
Properties:
Default: NOINITCALL
Phase: Syntax check
Environment: All
$SET: Initial
Remarks:
The possible values of
Parameters:
Properties:
Default: INT"(source-name).int"
Phase: Syntax check
Environment: All
$SET: No
Dependencies: NOINT sets NOANIM and NOSTRUCT immediately.
Remarks: This directive is not available in the Micro Focus COBOL system for DOS, Windows and OS/2 without Toolset, Workbench or a similar add-on product from Micro Focus. Do not change its setting unless you have an appropriate system.
When no .obj file is required from the Compiler, or when the ANIM directive is used, an intermediate code file is produced. This directive specifies the name for that file. Specifying NOINT prevents the intermediate code file being produced. If you specify an existing file, it is overwritten. If (file-name) is not specified, the Compiler uses the source file-name (source-name) with the extension .int attached. If you specify (path-name) but no (file-name), the Compiler uses the path-name, with the file-name (source-name).int attached. INT() causes intermediate code to be put in the standard file (source-name).int. With this format you must use parentheses not quotation marks. So, INT"" does not give this result. Use the INT directive with caution. Incorrect use can abort the compilation process.Parameters:
integer The level of portability. Can be 1 or 2.
Properties:
Default: INTLEVEL"2"
Phase: Syntax check
Environment: All
$SET: No
Remarks: This directive is not available in the Micro Focus COBOL system for DOS, Windows and OS/2 without Toolset, Workbench or similar add-on products from Micro Focus. Do not change its setting unless you have an appropriate system. Full details of intermediate code portability are included with the relevant systems.
NOINTLEVEL causes intermediate code to be created that is suitable for execution only in this environment. INTLEVEL"(integer)" creates intermediate code that can be executed by some versions of Micro Focus products in other environments. For portability between environments, the value of (integer) used for compilation must be supported by the Micro Focus COBOL system on each environment on which you want to execute the intermediate code. INTLEVEL"(integer)" can limit the syntax that can be used in your program.Properties:
Default: IOCONV
Phase: Syntax check
Environment: All
$SET: Any
Remarks: NOIOCONV causes a straight group move for READ ... INTO and WRITE ... FROM operations. This is for backward compatibility. IOCONV causes conversion elementary record descriptions when required. This is normal ANSI behavior, and the default.
Parameters:
integer Must be 1 or 2. The level of support required.
Properties:
Default: NOJAPANESE
Phase: Syntax check
Environment: All
$SET: Initial
Remarks: The possible values of (integer) are:
See also:
DBCS Compiler directive
DBSPACE Compiler directive
NCHAR Compiler directive
Properties:
Default: KEEP-INT
Phase: Syntax check
Environment: All
$SET: Any
Remarks: The Compiler also accepts the directive name without hyphens; that is KEEPINT.
This directive is not available in the Micro Focus COBOL system for DOS, Windows and OS/2 without Toolset, Workbench or similar add-on products from Micro Focus. Do not change its setting unless you have an appropriate system. In the case of segmented programs, should any segment have an unsuccessful compilation with NOKEEP-INT selected then intermediate code is not produced for any of the segments.Parameters:
integer Must be between 0 and 7.
Properties:
Default: NOKEYCOMPRESS
Phase: Syntax check
Environment: All
$SET: Any
Remarks: (integer) can contain any combination of the following values:
Properties:
Default: NOLIBRARIAN
Phase: Syntax check
Environment: All
$SET: Any
Remarks: The -INC statement specifies a file for inclusion in the source program. The string -INC must be written as a contiguous sequence of upper case characters starting in column 1, followed by one or more spaces, and then, on the same line, by the name of a file containing COBOL source. This file is included in the program at the point where the -INC statement appears.
Properties:
Default: NOLINKCHECK
Phase: Generate
Environment: 16-bit
$SET: Initial
Remarks: The PARAMCOUNTCHECK directive must also be specified if you intend to use the LINKCHECK directive.
If reference is made to a Linkage Section item that does not exist, a run-time error 203 (CALL parameter not supplied) is generated.See also:
PARAMCOUNTCHECK Compiler directive
Parameters:
integer The number allowed.
Properties:
Default: LINKCOUNT"64"
Phase: Syntax check
Environment: All
$SET: Initial
Remarks: The LINKCOUNT directive is only required if your program contains file or data records (in the Data Division) that are marked as EXTERNAL. If you have none of these, you can allocate as many Linkage Section records as you like.
If you do have external items in your Data Division, when it encounters the first such item, the compiler has to create a fixed length area to contain the references to all external areas and Linkage Section items. In this case, you use the LINKCOUNT directive to specify how many references this area needs to hold. It must be enough for all the external data items and Linkage Section items in your program. (integer) must not be less than the total number of Linkage Section data items, external data items, and external files. It represents a count of every separately-addressable data item in these structures.Parameters:
library-names The names of one or more link libraries.
Properties:
Default: LINKLIB"COBLIB+COBAPI"
Phase: Generate
Environment: 16-bit
$SET: Initial
Remarks: Specifying a library-name of NUL is the same as NOLINKLIB. The choice of library can be subsequently overridden by a directive to the linker.
Library names must be separated by a plus sign (+). If (library name) has no extension, .lib is assumed.Parameters:
destination A full file specification or a device-name.
Properties:
Default: NOLIST
Phase: Both
Environment: All (syntax check), 16-bit (generate)
$SET: Any (for LIST and NOLIST)
None (for LIST"
Dependencies:
NOLIST sets NOFORM, NOREF, NOSETTING, NOSOURCEASM and NOXREF at end.
LIST sets FORM"60" immediately.
Set to LIST by ASM immediately.
Set to NOLIST by RNIM at end.
Remarks: If you specify an existing file, it is overwritten.
When NOLIST is specified, no source listing is produced. If you specify LIST with no (destination), the source listing is sent to the screen. If you specify either (destination) or (), you cannot use this directive in a $SET statement. (destination) can be the name of any suitable device. On DOS, Windows and OS/2, use CON: for the screen. On UNIX, the device selected must not be under the control of a system spooler. NOLIST and LIST with no parameter can be used in $SET statements in a program to list selected parts of the program. The destination of the listing cannot be changed in this way. LIST() causes the source listing to be put in the file (source-name).lst, where (source-name) is the root of the name of the program being compiled. When used with the 16-bit Generator this creates the file (source-name).grp. Example: If you want to list the source to a file for every compilation you do, place the LIST() directive in the cobol.dir file. This overrides the default NOLIST. Alternatively, if you already have a LIST directive in your cobol.dir, making every listing go to the screen, you can override it by using LIST() on the command line.Parameters:
list-path - Path to which the list file is written, or an environment
variable specifying the path to which the list file is
written.
Properties:
Default: NOLISTPATH
Phase: Syntax check
Environment: All
$SET: Initial
Parameters:
width Width in characters. It must be between 72 and 132.
Properties:
Default: LISTWIDTH"80"
Phase: Syntax check
Environment: All
$SET: Any
Dependencies: If REF is set, and (width) is less than 90, sets LISTWIDTH"90" immediately. If (width) is less than 90, sets NOREF at end.
Remarks: LISTWIDTH"132" causes additional information to be displayed for each line listed. This includes the first eight characters of the current copyfile name (spaces for the main file) together with the number of the line relative to the start of that file.
See also:
REF Compiler directive
Parameters:
integer Must be 1 or 2.
Properties:
Default: NOLITLINK
Phase: Generate
Environment: 16-bit, and 32-bit on Windows NT and OS/2
$SET: Initial
Dependencies:
If OMF"GNT", LITLINK sets OMF"OBJ" at end.
Set to LITLINK at end by MODEL"SMALL", MODEL"COMPACT" or OBJLITE.
If ASSUME is set, set to LITLINK at end by REGPARM"OUT".
Remarks: This directive only affects .obj files.
With NOLITLINK on 16-bit and LITLINK"2" on 32-bit, if the name in a CALL (literal) statement starts with a single underscore - "_(name)" - a litlinked call to entry-name _(name) is generated. If it starts with a double underscore - "__(name)", a litlinked call to entry-name (name) is generated. (That is the entry names are declared as public symbols.) With LITLINK on all environments or LITLINK"1" on 32-bit, all CALL (literal) statements generate litlinked calls, regardless of the inclusion of underscores at the start of the literal. With NOLITLINK on 32-bit, no CALL (literal) statements generate litlinked calls, regardless of the inclusion of underscores at the start of the literal. LITLINK"2" is only intended to provide backward compatibility with code written for the 16-bit COBOL system. You should use call-convention 8 for new programs.Parameters:
integer A number up to 4. The number of bytes to pass.
Properties:
Default: LITVAL-SIZE"4"
Phase: Syntax check
Environment: All
$SET: Any
Properties:
Default: NOLNKALIGN
Phase: Generate
Environment: 32-bit
$SET: No
Remarks: Using LNKALIGN can reduce the time needed to access a linkage item at run time. However, take care when using it. You must use the correct ALIGN directive setting when compiling your program. No checks are made to ensure that the items are aligned.
The results of using this directive are machine-dependent, and you should not use it if you are in any doubt as to its effect. Unpredictable results might occur if you pass linkage items that are not aligned.See also:
ALIGN Compiler directive
Parameters:
integer Must be in the range 0 to 65536
Properties:
Default: LOCALCOUNT"0"
Phase: Syntax check
Environment: All
$SET: Initial
Parameters:
integer 0 or 1. The type of locking.
Properties:
Default: LOCKTYPE"0"
Phase: Syntax check
Environment: All
$SET: Initial
Remarks: The possible values of (integer) are:
See also:
CALLFH Compiler directive
Properties:
Default: NOLOGICOPT
Phase: Generate
Environment: 32-bit
$SET: No
Remarks: Specifying LOGICOPT optimizes COBOL logical calls, such as CBL_AND, so that they do not affect RETURN-CODE.
Parameters:
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.Properties:
Default: NOMAPNAME
Phase: Syntax check
Environment: All
$SET: Initial
Remarks: Specifying MAPNAME affects program-names and entry-points defined in the compilation and those referenced by the program as follows:
Properties:
Default: NOMASM
Phase: Generate
Environment: 16-bit
$SET: Initial
Dependencies:
MASM sets NOFORM at end.
Set to NOMASM by NOASM or OMF"GNT".
Remarks: This directive only affects .obj files.
You could use this directive to investigate the performance of small sections of code, as it enables you to edit the generated output. You should only use this directive on programs with one code segment, or the code produced does not work correctly. You must set the ASMLIST directive to specify the destination of the MASM-compatible listing. You can still use SOURCEASM to enable you to include source lines as comments. An .obj file is still generated, although it might differ slightly from the .obj file produced by MASM.Parameters:
Properties:
Default: NOMAX-ERROR
Phase: Syntax check
Environment: All
$SET: Any
Remarks: The Compiler also accepts the directive name without hyphens; that is MAXERROR.
If the maximum number of messages of at least the specified severity is reached then the compile stops. The messages are only counted if produced and after any modification to the severity of the message. Example: Specifying the directive:See also:
CHANGEMESSAGE Compiler directive
FLAG Compiler directive
FLAGAS Compiler directive
FLAGSTD Compiler directive
HIDEMESSAGE Compiler directive
WARNING Compiler directive
Properties:
Default: MFCOMMENT
Phase: Syntax check
Environment: All
$SET: Any
Dependencies: Set to NOMFCOMMENT at end by SOURCEFORMAT"FREE".
Remarks: With MFCOMMENT, lines with an asterisk in column 1 are ignored by the Compiler and do not appear in the source listing (though they do appear in Animator). With NOMFCOMMENT, the asterisk forms part of the sequence number and has no special significance.
Parameters:
integer The level of Micro Focus COBOL to be compatible with.
Properties:
Default: MF"10"
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies:
MF"7" sets DBCS"2" immediately.
If (integer) > 7, sets DBCS"3" and DBSPACE immediately.
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: The possible values of (integer) are:
See also:
EARLY-RELEASE Compiler directive
OLDBLANKLINE Compiler directive
OLDNEXTSENTENCE Compiler directive
Parameters:
oo-level Level of OO implementation. Current level is 1.
Properties:
Default: MFOO
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies: MFOO sets MF immediately
Properties:
Default: NOMFSCCS
Phase: Syntax check
Environment: All
$SET: Initial
Remarks: This directive is only available in Workbench and Toolbox. Do not change its setting unless you have the appropriate system.
If you are using the Micro Focus COBOL Workbench SCCS interface, specifying MFSCCS causes the Compiler to search the SCCS if it cannot find a file.Parameters:
type SMALL, COMPACT, MEDIUM, LARGE, or HUGE.
Properties:
Default: MODEL"HUGE" (for programs with more than 64K of data)
MODEL"LARGE" (for programs with less than 64K of data)
Phase: Generate
Environment: 16-bit
$SET: Initial
Dependencies: MODEL"SMALL" and MODEL"COMPACT" set LITLINK at end.
Remarks: This directive only affects .obj files.
The possible values of (type) are:If you specify a model of SMALL, MEDIUM or COMPACT, the LITLINK directive is set automatically, requiring you to resolve all external references to the linker.
Local-Storage Section is only supported for LARGE and HUGE models.
Dynamic calling is supported only in LARGE or HUGE model, as by its nature dynamic calling gives large code and large data.
Programs with a Data Division less than 64K are treated as MODEL"LARGE".
When linking a program compiled with MODEL"SMALL" or MODEL"MEDIUM" for use on OS/2, you must use the linker option /DOSSEG.
Parameters:
version Must be 1 or 2. The version.
Properties:
Default: NOMS
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies: MS sets DEFAULTBYTE"0" and ACCEPTREFRESH immediately.
Remarks:
The possible values of
See also:
MF Compiler directive
Parameters:
coll-seq Either "ASCII" or "EBCDIC".
Properties:
Default: NATIVE"ASCII"
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies:
Set to NATIVE"ASCII" immediately by CHARSET"ASCII".
Set to NATIVE"EBCDIC" at end by CHARSET"EBCDIC".
Remarks: For more details, see the rules for PROGRAM COLLATING SEQUENCE in your Language Reference.
The keys in an indexed file are always ordered by the ASCII collating sequence.Parameters:
integer Must be 1 or 2. The level of support required.
Properties:
Default: NONCHAR
Phase: Syntax check
Environment: All
$SET: Initial
Remarks: The possible values of (integer) are:
See also:
DBCS Compiler directive
DBSPACE Compiler directive
JAPANESE Compiler directive
Properties:
Default: NONESTCALL
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies: NESTCALL sets NO01SHUFFLE at end.
Properties:
Default: NONESTLOCALSTORAGE
Phase: Syntax check
Environment: All
$SET: Initial
Remarks: The NESTLOCALSTORAGE 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.
See also:
EARLY-RELEASE Compiler directive
Properties:
Default: NONLS
Phase: Syntax check
Environment: All
$SET: No
Remarks: NLS enables your program to adapt itself automatically at run time to the character set, currency symbol and editing symbols appropriate to your user's country.
See also:
National Language Support routines
Parameters:
file-name A full file specification.
Properties:
Default: OBJ"
Phase: Generate
Environment: 16-bit, 32-bit OS/2
$SET: Any
Dependencies: OBJ and GNT are synonymous. Setting NOOBJ also sets NOGNT.
Remarks: With NOOBJ, no object code file is produced. If this directive is not specified, the name of the object code file is the same as the source file with an extension of .obj.
Setting this directive does not imply OMF"OBJ". To ensure that your .obj file contains .obj format object code you must make sure that OMF"OBJ" is also specified. In the 16-bit generator the OBJ directive also changes the name of the main entry point of a program unless your program contains a PROGRAM-ID phrase. So, if you want to change the name of your .obj file, but retain the same entry point name, use the PROGRAM-ID phrase. Example: Compiling the program tictac.cbl with no OBJ directive produces an object module called tictac.obj with main entry point tictac. Compiling with the directive OBJ"tictac2.obj" produces an object module called tictac2.obj with main entry point tictac2. In the 32-bit generator for OS/2, this directive does not change the entry-point name. If you are developing applications for both 16-bit and 32-bit targets, and require to use the OBJ directive, use the PROGRAM-ID phrase to ensure portability.Properties:
Default: NOOBJLITE
Phase: Generate
Environment: 16-bit
$SET: Initial
Dependencies:
Set to NOOBJLITE at end by OPT"0" or OMF"GNT".
OBJLITE sets LITLINK at end.
Remarks: This directive affects only .obj files.
Calling a program that was generated using OBJLITE is much faster than calling a normal program. The following are limitations for programs generated using OBJLITE:Properties:
Default: NOODOOSVS
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies: ODOOSVS sets ODOSLIDE at end.
Remarks: When ODOOSVS is specified, the length of variable-length groups and the address of items following variable-length tables is evaluated at the time when the OCCURS DEPENDING ON item is modified, rather than at the time when the variable-length group or sliding data item is referenced.
Properties:
Default: NOODOSLIDE
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies: Set to ODOSLIDE at end by ODOOSVS.
Remarks: This affects data items that appear after a variable-length table in the same record; that is, after an item with an OCCURS DEPENDING clause, but not subordinate to it.
With ODOSLIDE, these items always immediately follow the table, whatever its current size; this means their addresses change as the table's size changes. With NOODOSLIDE, these items have fixed addresses, and begin after the end of the space allocated for the table at its maximum length.Properties:
Default: NOOLDBLANKLINE
Phase: Syntax check
Environment: All
$SET: Any
Remarks: When OLDBLANKLINE is specified, the BLANK LINE clause behaves exactly the same as ERASE EOL; that is all characters to the right of the cursor are deleted.
With NOOLDBLANKLINE specified, the BLANK LINE clause causes the whole line to be deleted.Properties:
Default: NOOLDCOPY
Phase: Syntax check
Environment: All
$SET: Any
Properties:
Default: NOOLDFILEIO
Phase: Syntax check
Environment: All
$SET: Initial
Properties:
Default: NOOLDINDEX
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies:
Set to NOOLDINDEX immediately by NORM.
Set to OLDINDEX immediately by RM and RM"ANSI".
Remarks: This directive is for compatibility with earlier products.
Properties:
Default: NOOLDNEXTSENTENCE
Phase: Syntax check
Environment: All
$SET: Any
Remarks: When OLDNEXTSENTENCE is specified, the NEXT SENTENCE statement behaves like a CONTINUE statement.
For more details on CONTINUE and NEXT SENTENCE, see your Language Reference.See also:
CONTINUE statement
Properties:
Default: NOOLDREADINTO
Phase: Syntax check
Environment: All
$SET: Any
Remarks: When OLDREADINTO is specified, the IMPLICIT move from the file's record area to the data item specified in the INTO phrase is executed even when the READ is not successful. If NOOLDREADINTO is specified, the MOVE only happens if the READ is successful.
Properties:
Default: NOOLDSTRMIX
Phase: Syntax check
Environment: All
$SET: Any
Remarks: This directive is provided for forward compatibility only.
We recommend that you do not use it as it can lead to unexpected results and the corruption of double-byte data.Properties:
Default: NOOLDSTRSUB
Phase: Syntax check
Environment: All
$SET: Any
Remarks: When OLDSTRSUB is specified, subscripts are evaluated after implicit move operations with STRING, UNSTRING or INSPECT statements.
Since the resultant run-time behavior is not ANSI'85 compliant, this directive should be used only to maintain compatibility with versions of Micro Focus COBOL/2 and LEVEL II COBOL.Parameters:
code Either OBJ or GNT.
Properties:
Default: OMF"OBJ"
Phase: Generate
Environment: 16-bit
$SET: No
Dependencies:
Set to OMF"OBJ" at end by DEFFILE, EANIM, FASTLINK or LITLINK.
OMF"GNT" sets NOOBJLITE and NOMASM at end.
If OPT"0", OMF"GNT" sets OPT"1" at end.
Remarks: The possible values of < code > are:
Parameters:
integer 0, 1, or 2.
Properties:
Default: OPT"2"
Phase: Generate
Environment: 16-bit
$SET: Any
Dependencies:
If OPT"0", set to OPT"1" at end by EANIM, GANIM or OMF"GNT".
OPT"0" sets NOOBJLITE and NODATALIT at end.
Remarks: The possible values of (integer) are:
Properties:
Default: OPTIONAL-FILE
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies:
Set to OPTIONAL-FILE immediately by NORM.
Set to NOOPTIONAL-FILE immediately by RM or RM"ANSI".
Remarks: Under ANSI'85 Standard COBOL, a file is treated as optional only if it has the OPTIONAL phrase in its SELECT statement. For compatibility with the ANSI'85 Standard you must specify the NOOPTIONAL-FILE directive.
Properties:
Default: OPTSIZE
Phase: Generate
Environment: 16-bit
$SET: Initial
Remarks: The directives OPTSPEED and OPTSIZE are alternates. Hence, if you don't want OPTSIZE specify OPTSPEED.
Properties:
Default: OPTSIZE
Phase: Generate
Environment: 16-bit
$SET: Initial
Remarks: The directives OPTSPEED and OPTSIZE are alternates. Hence, if you don't want OPTSPEED specify OPTSIZE.
Other directives such as TRUNC also affect the speed of the program.Parameters:
ext The extension.
Properties:
Default: OSEXT"cbl" (on DOS, Windows and OS/2)
OSEXT"" (on UNIX)
Phase: Syntax check
Environment: All
$SET: Any
Remarks: The extension is added if the source file-name used in the command or prompt does not have an extension or a trailing period. This happens only if the directive is specified in cobol.dir.
It is also used if you specify a source file-name with no extension or trailing period in a COPY statement. The Compiler searches first for the file with the name given by adding the extension specified in this directive. If none is found, it adds the extension(s) specified by the COPYEXT directive and looks again. If that is not found it searches for the file with no extension. Specifying a null extension (OSEXT"") indicates that the file-name has no extension.See also:
COPYEXT Compiler directive
Properties:
Default: NOOSVS
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies: OSVS sets NODOSVS immediately.
See also:
DOSVS Compiler directive
Parameters:
Properties:
Default: NOOUTDD
Phase: Syntax check
Environment: DOS, Windows and OS/2
$SET: Initial
Dependencies:
OUTDD sets NOSYSIN immediately
Set to NOOUTDD immediately by SYSIN
Remarks: When OUTDD is specified, all format 1 DISPLAY statements which either have no UPON option or specify UPON SYSOUT, and all EXHIBIT statements and the output from TRACE are transformed into WRITE statements, writing to a file with the specified external file-name.
The file-name can be mapped onto physical file-names in the same way as other files with external file-names; that is, by using environment variables or the External File Mapper, MFExtmap. The default settings for this directive are the same as those that would be used for this type of DISPLAY and EXHIBIT statement and TRACE output, when the SYSIN directive is used.See also:
DISPLAY statement
EXHIBIT statement
INDD directive
SYSIN directive
TRACE directive
Parameters:
Properties:
Default: No change of reserved words takes place.
Phase: Syntax check
Environment: All
$SET: Initial
Remarks: This directive equates an existing reserved word to the specified user-defined word, so that, in the program, (user-word) is treated as a reserved word, and (rsv-word) can be used as a user-defined word.
The equals signs must be surrounded by spaces. If the parameters are repeated they must be separated by spaces. This directive does not appear in the list created with the SETTING directive.Properties:
Default: NOPANVALET
Phase: Syntax check
Environment: All
$SET: Any
Remarks: The ++INCLUDE statement specifies a file for inclusion in the source program. The string ++INCLUDE must be written as a contiguous sequence of upper-case characters starting in area-A or area-B, followed by one or more spaces, and then, on the same line, by the name of a file containing COBOL source. This file is included in the program at the point where the ++INCLUDE statement appears.
If you specify PANVALET and LIBRARIAN together, a warning message is given advising that the compiled program might not be mainframe-compatible.Properties:
Default: NOPARAMCOUNTCHECK (with OMF"OBJ")
PARAMCOUNTCHECK (with OMF"GNT")
Phase: Generate
Environment: 16-bit
$SET: Initial
Remarks: You must use this directive if any of the following apply:
See also:
LINKCHECK Compiler directive
STICKY-LINKAGE Compiler directive
Properties:
Default: NOPARAS
Phase: Generate
Environment: 16-bit
$SET: Initial
Remarks: Specifying PARAS causes the generated code addresses of all paragraphs and sections to be produced. This list is placed in the listing file specified by the ASMLIST directive. The assembler listing that is normally in this file is suppressed if PARAS is specified.
The ANIM directive must also be specified for the PARAS directive to work.See also:
ASMLIST Compiler directive
ANIM Compiler directive
Properties:
Default: NOPC1
Phase: Syntax check
Environment: All
Dependencies: PC1 sets DEFAULTBYTE"0" and ACCEPTREFRESH immediately.
Remarks: This directive is synonymous with the IBM-MS and MS"1" directives.
Parameters:
dialect MF, OSVS, or RM.
Properties:
Default: PERFORM-TYPE"MF"
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies: PERFORM-TYPE"OSVS" sets TRICKLE at end.
Remarks:
The possible values of
See also:
STICKY-PERFORM Compiler directive
Properties:
Default: NOPREPLIST
Phase: Syntax check
Environment: All
$SET: No
Remarks: This directive is provided as a debugging aid to preprocessor writers.
This directive only affects what the listing file, if produced, contains. It does not determine if a listing file is produced, or the name of the file.Parameters:
Properties:
Default: NOPREPROCESS
Phase: Syntax check
Environment: All
$SET: On very first source line only
No (with NOPREPROCESS)
Remarks: This directive informs the Compiler that an integrated preprocessor is to be used.
For more information on using this directive, see the chapter Integrated Preprocessor Interface in your COBOL System Reference.Parameters:
destination A full file specification, or a device-name.
Properties:
Default: NOPRINT
Phase: Syntax check
Environment: All
$SET: Any
Remarks: PRINT is synonymous with LIST. All rules that apply to LIST also apply to PRINT.
See also:
LIST Compiler directive
Parameters:
extension The extension to be added.
Properties:
Default: No extension is added
Phase: Syntax check
Environment: All
$SET: Any
Remarks: This directive is ignored unless ASSIGN-PRINTER() is specified with no file-name.
See also:
ASSIGN-PRINTER Compiler directive
Properties:
Default: NOPROFILE
Phase: Syntax check
Environment: All
$SET: No
Properties:
Default: NOPROGID-COMMENT
Phase: Syntax check
Environment: All
$SET: Initial
Remarks: This directive is provided for compatibility with earlier versions of this system.
Properties:
Default: NOPROTMODE
Phase: Generate
Environment: 16-bit (If DOS, only under XM)
$SET: Initial
Remarks: The statements optimized are SET ADDRESS OF, SET ... UP and SET ... DOWN.
Code created with PROTMODE can only be run under DOS with XM, OS/2, or Windows. If you try to run it under DOS without XM, a run-time error occurs.See also:
SET statement
Properties:
Default: NOPROTECT-LINKAGE
Phase: Syntax check
Environment: All
$SET: Initial
Remarks: The ANSI COBOL standard states in the general rules for each parameter passed by the CALL statement that "The description of the data item in the called program must describe the same number of character positions as described by the description if the corresponding data item in the calling program.". This restriction must be observed when using this COBOL system unless the program is compiled with the PROTECT-LINKAGE directive.
The restriction is lifted when the PROTECT-LINKAGE directive is set. The called program only uses mismatched parameters as sending items in a statement and does not use them as receiving items. Any character positions in a parameter for which there is no correspondence in the called and calling programs is a mismatched character. The contents of any mismatched character is undefined for a parameter used as a sending item in a called program. Using this directive affects the performance of your application. Example:Properties:
Default: PUBLICENTRY
Phase: Generate
Environment: 16-bit
$SET: Initial
Remarks: NOPUBLICENTRY specifies that entry-points in .obj files are not to be declared as public. This is useful if you want to link two or more .obj files which have common entry-point names.
This directive affects only .obj files.Properties:
Default: QUAL
Phase: Syntax check
Environment: All
$SET: Any
Remarks: If you have no qualified data-names or procedure-names in your source code, you can specify NOQUAL. This improves compilation speed.
See also:
QUALPROC Compiler directive
Properties:
Default: QUALPROC
Phase: Syntax check
Environment: All
$SET: Any
Remarks: If you have no qualified procedure-names in your source code, you can specify NOQUALPROC. This improves compilation speed. If you have qualified data-names but no qualified procedure-names, you should specify QUAL and NOQUALPROC.
See also:
QUAL Compiler directive
Properties:
Default: QUERY (DOS, Windows and OS/2)
NOQUERY (UNIX)
Phase: Syntax check
Environment: All
$SET: Any
Remarks: With QUERY, if the Compiler cannot find a copyfile it asks you whether to terminate the compilation, try the search again, produce an error message and continue, or try again with an alternative path specified by you.
With NOQUERY, the Compiler simply produces an error message and continues.Properties:
Default: QUOTE
Phase: Syntax check
Environment: All
$SET: Any
Remarks: The opposite of this directive is the directive APOST which causes the single-quote character to be used.
Properties:
Default: NORAWLIST
Phase: Syntax check
Environment: All
$SET: Any
Remarks: Specifying this directive does not affect whether a listing is produced or the name of the listing file.
See also:
LIST Compiler directive
Properties:
Default: NORDEFPTR
Phase: Syntax check
Environment: All
$SET: Any
Remarks: The RDEFPTR 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.
IBM VS COBOL II and COBOL/370 let you use the REDEFINES clause on a POINTER data item to redefine it as a PIC 9(9) COMP data item. You can then perform arithmetic operations on this item, giving the program the ability to shift the address referred to by a pointer up or down. If RDEFPTR is specified, COMP redefinitions of POINTER data items are held in machine-specific format; that is, they are treated as COMP-5 data items. This means that arithmetic carried out on the redefinition should have the expected effect on the pointer, though, on 16-bit systems, unexpected behavior might occur if the arithmetic causes the pointer to cross the boundary of a data segment.See also:
EARLY-RELEASE Compiler directive
Properties:
Default: NORDW
Phase: Syntax check
Environment: All
$SET: Any
Remarks: If you specify the RDW directive, a four-byte record-length field is allocated immediately before the record area for the file. After a READ, the length (in binary) of the record just read is put in the first two bytes of this record area. The length returned includes the record-length field itself, so is four bytes longer than the actual record length.
You can access this field by defining the record area as a table, and using negative or zero subscripting. The RDW directive is intended only for mainframe compatibility; for new programs you should use the RECORD IS VARYING DEPENDING ON phrase of the FD statement. Example:See also:
FD statement
Properties:
Default: REALOVL
Phase: Generate
Environment: 16-bit
$SET: Initial
Remarks: This directive affects only .obj files.
This directive affects only programs that use COBOL segmentation. It affects only the generated .lnk file. REALOVL makes the overlays real by putting them in brackets in the file. NOREALOVL makes overlays pseudo. If you are compiling a segmented program for use on OS/2, you should specify NOREALOVL.Parameters:
format F, V, or OSVS.
Properties:
Default: RECMODE"F"
Phase: Syntax check
Environment: All
$SET: Initial
Remarks:
The possible values of
This setting is compatible with OS/VS COBOL and DOS/VS COBOL. When
compiled with their CMPR2 directive, both VS COBOL II COBOL/370 are also
compatible with RECMODE"OSVS". For compatibility with VS COBOL II and
COBOL/370 when compiled with NOCMPR2, you must specify RECMODE"F".
Properties:
Default: NOREF
Phase: Both
Environment: All (syntax check), 16-bit (generate)
$SET: Any
Dependencies:
REF sets LISTWIDTH"90" immediately unless LISTWIDTH already has a value
greater than 90.
Set to NOREF at end by NOASMLIST, NOLIST or LISTWIDTH with a value less than
90.
Remarks: The address is four digits long and appears on the right-hand side.
Using both source and object code listings together, you can identify the code generated for each line of source code. This directive can also be useful in determining the locations reported in run-time error messages. If the 01SHUFFLE directive is set, the addresses shown in the listing for data items are likely to be different to those in the compiled code.See also:
01SHUFFLE Compiler directive
LISTWIDTH Compiler directive
Properties:
Default: NOREFNO
Phase: Syntax check
Environment: All
$SET: No
Parameters:
when-used IN or OUT.
Properties:
Default: NOREGPARM
Phase: Generate
Environment: 16-bit
$SET: Initial
Dependencies:
If ASSUME is set, REGPARM"IN" sets NOFASTLINK at end.
If ASSUME is set, REGPARM"OUT" sets LITLINK at end.
Remarks: This directive affects only .obj files.
(when-used) shows when the alternative mechanism is to be used. Its possible values are:Parameters:
rsv-word A reserved word.
Properties:
Default: No reserved words are removed.
Phase: Syntax check
Environment: All
$SET: Initial
Remarks: This directive does not appear in the list created with the SETTING directive.
Parameters:
integer The maximum length, in characters.
Properties:
Default: REPORT-LINE"256"
Phase: Syntax check
Environment: All
$SET: Initial
Properties:
Default: RESEQ
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies:
Set to RESEQ immediately by XREF.
Set to NORESEQ immediately by SEQCHK.
Set to NORESEQ at end by SOURCEFORMAT"FREE".
Remarks: These are COBOL line sequence numbers, starting at 1 and increasing in increments of 1.
Parameters:
ANSI See Remarks.
Properties:
Default: NORM
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies:
RM sets SEQUENTIAL"LINE", NOTRUNC, OLDINDEX, NOOPTIONAL-FILE, RETRYLOCK and
ALIGN"2" immediately.
RM"ANSI" sets SEQUENTIAL"RECORD", NOTRUNC, OLDINDEX, NOOPTIONAL-FILE,
RETRYLOCK and ALIGN"2" immediately.
NORM sets SEQUENTIAL"RECORD", TRUNC"ANSI", NOOLDINDEX, OPTIONAL-FILE,
NORETRYLOCK and ALIGN"8" immediately.
Remarks: With the ANSI parameter these features behave as they do when a program is compiled in that system with the ANSI switch set. See your Language Reference.
Properties:
Default: NORNIM
Phase: Syntax check
Environment: All
$SET: No
Dependencies:
RNIM sets NOLIST, NOANIM and NOXREF immediately.
Set to NORNIM at end by GANIM.
Remarks: The effect is as if you had invoked Animator in the normal way.
You must have already compiled the program using the ANIM directive to prepare it for animation. You can use Animator directives with RNIM. With RNIM, no object file is produced by default.See also:
Animator Directives
Parameters:
integer 2 or 4.
Properties:
Default: RTNCODE-SIZE"2"
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies: Set to RTNCODE-SIZE"4" immediately by XOPEN.
Remarks: The possible values of (integer) are:
Parameters:
level An integer specifying the level of SAA support
required.
Properties:
Default: NOSAA
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies:
SAA sets DBSPACE and DBCS"2" immediately.
SAA sets ANS85 at end.
Remarks:
The possible values of
Properties:
Default: SEG
Phase: Syntax check
Environment: All
$SET: Initial
Remarks: With NOSEG, the Compiler treats all section numbers in the code as if they were zero. This means that the Compiler ignores segmentation and creates one program with no overlays.
Parameters:
integers One or more integers giving the ordinal positions of
Linkage Section items.
Properties:
Default: NOSEGCROSS (less than 64K of data)
SEGCROSS (64K or more of data)
Phase: Generate
Environment: 16-bit
$SET: Initial
Remarks: (integers) must be separated by commas, and must be enclosed in quotes. They cannot be enclosed in parentheses.
If a program has less than 64K of its own data, the Compiler assumes that any parameters passed into the program do not cross segment boundaries. If this is not the case, SEGCROSS"(integer)" must be specified for all Linkage Section items that might cross a segment boundary. If a program has 64K or more of its own data, the Compiler assumes that Linkage Section items do cross segment boundaries. You can specify NOSEGCROSS"(integer)" for any Linkage Section item that does not cross a segment boundary. This results in more efficient code. With NOSEGCROSS, the code generated follows the rules given under the SMALLDD directive. With SEGCROSS"(integer-1), (integer-2),...", the setting of SMALLDD is ignored. Example: Look at the following Linkage Section:See also:
SMALLDD Compiler directive
Parameters:
integer The maximum size.
Properties:
Default: SEGSIZE"0"
Phase: Generate
Environment: 16-bit
$SET: Initial
Remarks: If (integer) is zero, no automatic segmentation is done. This reduces compilation time and creates more efficient code.
Example: SEGSIZE"65536" causes automatic segmentation if the code is bigger than 65536 bytes.See also:
64KPARA Compiler directive
64KSECT Compiler directive
Properties:
Default: NOSEQCHK
Phase: Syntax check
Environment: All
$SET: Any
Dependencies:
SEQCHK sets NORESEQ immediately.
Set to NOSEQCHK at end by SOURCEFORMAT"FREE".
Parameters:
type ADVANCING, ANSI, LINE, or RECORD.
Properties:
Default: SEQUENTIAL"RECORD"
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies:
Set to SEQUENTIAL"RECORD" immediately by NORM or RM"ANSI".
Set to SEQUENTIAL"LINE" immediately by RM.
Remarks:
The possible values of
Parameters:
format The layout of the listing. Only affects the listing given
during the syntax check phase.
Properties:
Default: NOSETTING
Phase: Both
Environment: All (syntax check), 16-bit (generate)
$SET: Any
Dependencies: Set to NOSETTING by NOLIST at end.
Remarks:
When used in the check phase,
See also:
LIST Compiler directive
Properties:
Default: NOSHOW-DIR
Phase: Syntax check
Environment: All
$SET: Any
Remarks: A directives file means cobol.dir or a file that appears in a DIRECTIVES or USE directive. For the contents of cobol.dir to appear in the source listing, SHOW-DIR must be specified at the start of cobol.dir, as this file is processed before any other directive.
You can use SHOW-DIR and NOSHOW-DIR selectively so that only parts of the directives file are output to the listing.Properties:
Default: NOSHOWSHUFFLE
Phase: Syntax check
Environment: All
$SET: Any
Remarks: SHOWSHUFFLE only produces information if the 01SHUFFLE directive is specified. Otherwise it has no effect.
See also:
01SHUFFLE Compiler directive
REF Compiler directive
Parameters:
convention Either ASCII or EBCDIC.
Properties:
Default: SIGN"ASCII"
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies:
Set to SIGN"ASCII" immediately by CHARSET"ASCII".
Set to SIGN"EBCDIC" at end by CHARSET"EBCDIC".
Properties:
Default: NOSIGNCOMPARE
Phase: Generate
Environment: 16-bit
$SET: Any
Remarks: When the SIGNCOMPARE directive is set in a program using the EBCDIC character set, the way that some numeric comparisons are performed is changed. For example, an unsigned data item that contained 1234 would be equal to a signed data item that contained +1234.
Setting SIGNCOMPARE causes these comparisons to be much less efficient than usual. The behavior of intermediate code with NOSIGNCOMPARE specified is the same as the behavior of generated code with SIGNCOMPARE specified. That is to say, if you use the default setting of this directive, the behavior in intermediate code and generated code is different. Comparisons with COMP-3 items with illegal sign nibbles (such as those produced by redefining the item) are also allowed by this directive.Properties:
Default: SMALLDD
Phase: Generate
Environment: 16-bit
$SET: Initial
Remarks: SMALLDD improves efficiency by enabling the Compiler to generate boundary-crossing code only for records longer than 64K. With NOSMALLDD, boundary-crossing code is generated for all Linkage Section records. If your Data Division is longer than 64K, SMALLDD is ignored and NOSMALLDD is assumed.
You should use SEGCROSS instead of SMALLDD, as this allows an individual setting for each Linkage Section item rather than having one setting for all of them. You can find out which data items in the calling program cross segment boundaries by using the CHIP and FLAG-CHIP directives when compiling it. This makes the Compiler report on data items that cross a segment boundary. You can then rearrange their definitions so they do not do so. This can be performed automatically by specifying the 01SHUFFLE directive.See also:
01SHUFFLE Compiler directive
CHIP Compiler directive
FLAG-CHIP Compiler directive
SEGCROSS Compiler directive
Parameters:
ext A file-name extension.
Properties:
Default: SOURCE-EXT"cbl"
Phase: Generate
Environment: 16-bit
$SET: Initial
Remarks: This directive affects only .obj files.
Properties:
Default: NOSOURCEASM
Phase: Generate
Environment: 16-bit
$SET: No
Dependencies:
Set to NOSOURCEASM by NOLIST at end.
SOURCEASM sets ANIM at end.
Remarks: Arithmetic and MOVES of numeric items can produce very fast code provided you use only simple syntax; for example, if you have only one receiving field. If you use a complicated form of one of these statements, "BADCODE" appears by it on the listing to show you that here is a place where you could speed up your program.
Parameters:
format-type FIXED or FREE. The format of COBOL source.
Properties:
Default: SOURCEFORMAT"FIXED"
Phase: Syntax check
Environment: All
$SET: Any
Dependencies: SOURCEFORMAT"FREE" sets NOMFCOMMENT, NORESEQ and NOSEQCHK at end.
Remarks: See the Language Reference for details on free and fixed format code.
Properties:
Default: NOSPZERO
Phase: Both
Environment: All
$SET: Any
Remarks: With NOSPZERO, space characters in numeric data items give unpredictable results.
Parameters:
dbman The type of database engine to use.
Properties:
Default: NOSQL
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies: If it is the first SQL-prefixed directive encountered, SQL sets SQLINIT"S" SQLPRE"ALL".
Remarks: The possible values of (dbman) are IBM or MSSQL. Use IBM if you are using one of the following database engines:
Parameters:
access-plan The root of a file-name, or a null string.
Properties:
Default: SQLACCESS""
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies: If it is the first SQL-prefixed directive encountered, SQLACCESS sets SQL"IBM" SQLINIT"S" SQLPRE"ALL".
Remarks: The name of the access plan is not a file-name and so must not have an extension.
If you specify SQLACCESS"", the access plan is given the same name as the compiled program, without path or extension. With IBM database engines, the name of the access plan is always folded to upper case. This is required by DDCS/2 and is transparent in all other cases. If no access plan is to be created, use NOSQLACCESS.Parameters:
bindfile-name A full file specification or a null string.
Properties:
Default: NOSQLBIND
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies: If it is the first SQL-prefixed directive encountered, SQLBIND sets SQL"IBM" SQLINIT"S" SQLPRE"ALL".
Remarks: If you specify SQLBIND"", the bind file is given the same name as the compiled program, except that the file extension becomes .bnd.
With IBM database engines on OS/2 and Windows, the bind file name is always folded to upper case. This is required by DDCS/2 and is transparent in all other cases. If no bind file is to be created, use NOSQLBIND.Parameters:
block-mode The blocking mode to be used.
Properties:
Default: SQLBLOCK"UNAMBIG"
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies: If it is the first SQL-prefixed directive encountered, SQLBLOCK sets SQL"IBM" SQLINIT"S" SQLPRE"ALL".
Remarks:
The possible values of
Parameters:
level The level number.
Properties:
Default: SQLCOMMIT"2"
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies:
If it is the first SQL-prefixed directive encountered, SQLCOMMIT sets SQL"IBM"
SQLINIT"S" SQLPRE"ALL".
SQLINIT or SQLPROT must also be specified.
Remarks: To preserve the integrity of a database on an abnormal program termination, code can be generated to roll back changes when the database manager shuts down. Code can also be generated at strategic points in your program to commit changes made to the database up to that point. The level number in the SQLCOMMIT directive specifies where these statements should be generated, as follows:
Properties:
Default: NOSQLCTRACE
Phase: Syntax check
Environment: All
$SET: Any
Dependencies: If it is the first SQL-prefixed directive encountered, SQLCTRACE sets SQL"IBM" SQLINIT"S" SQLPRE"ALL".
Remarks: This directive only affects what the listing file, if produced, contains. It does not determine if a listing file is produced, or the name of the file.
Parameters:
database-name An alphanumeric string obeying the rules for a Database
Manager or SQL Server database name. With SQL Server, this
parameter can contain both the server id and the database
name separated by a period.
Properties:
Default: NOSQLDB
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies: If it is the first SQL-prefixed directive encountered, SQLDB sets SQL"IBM" SQLINIT"S" SQLPRE"ALL".
Remarks: If NOSQLDB and NOSQLACCESS are used, the application should be bound to a particular database before execution. In this case, you should make the Compiler create a bind file by using the SQLBIND directive. The bind file can then be used as a SQL script to create a Microsoft SQL Server stored procedure.
You must specify SQLDB when using the OS/2 Extended Edition database manager, DB2/2 or DB2/6000. With IBM database engines on OS/2 and Windows, the database name is always folded to upper case. This is required by DDCS/2 and is transparent in all other cases.Properties:
Default: NOSQLDB2
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies: If it is the first SQL-prefixed directive encountered, SQLDB2 sets SQL"IBM" SQLINIT"S" SQLPRE"ALL".
Remarks: With NOSQLDB2, any data item that is defined outside a Declare Section and is used in an SQL statement is assumed to be an SQLDA. This is as in Database Manager and DB2/2 on OS/2 and DB2/6000 on AIX.
With SQLDB2 set, data items are inspected to see if they are host variables or an SQLDA. This provides compatibility with DB2 on IBM mainframes. This directive must also be set if the program contains group host variables, as these are declared outside the Declare Section. This directive does not affect other DB2 extensions provided by the Compiler.Parameters:
parameter This parameter has no effect on the behavior of this
directive. It is included for compatibility purposes.
Properties:
Default: NOSQLECSPP
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies: If it is the first SQL-prefixed directive encountered, SQLECSPP sets SQL"IBM" SQLINIT"S" SQLPRE"ALL".
Parameters:
date-format Identifies the format to use.
Properties:
Default: SQLFORMAT"LOC"
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies: If it is the first SQL-prefixed directive encountered, SQLFORMAT sets SQL"IBM" SQLINIT"S" SQLPRE"ALL".
Remarks: The possible values of (date-format) are:
Parameters:
mode Specifies whether the database is to be used in shared or
exclusive mode.
Properties:
Default: SQLINIT"S"
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies: If it is the first SQL-prefixed directive encountered, SQLINIT sets SQL"IBM" SQLPRE"ALL".
Remarks:
The possible values of
Parameters:
isol-level The isolation level to use.
Properties:
Default: SQLISOLATION"CS"
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies: If it is the first SQL-prefixed directive encountered, SQLISOLATION sets SQL"IBM" SQLINIT"S" SQLPRE"ALL".
Remarks:
The possible values of
Parameters:
integer The ASCII value, in decimal, of the character to use.
Properties:
Default: SQLNOT"170"
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies: If it is the first SQL-prefixed directive encountered, SQLNOT sets SQL"IBM" SQLINIT"S" SQLPRE"ALL".
Remarks: You can specify any value from 0 through 255 for (integer). This directive is provided for use on systems that do not use 170 to represent the not (ª) character.
Parameters:
usid.passwd An alphanumeric string obeying the rules for a userid and
password, separated by a period. The separator and period
can be omitted.
Properties:
Default: NOSQLPASS
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies: If it is the first SQL-prefixed directive encountered, SQLPASS sets SQL"IBM" SQLINIT"S" SQLPRE"ALL".
Remarks: If the database has no password, use NOSQLPASS. This directive should only be specified if you are using Microsoft SQL Server, or in conjunction with the SQLRP directive.
Parameters:
set-level Specifies which set of modules to preload
Properties:
Default: SQLPRE"ALL"
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies: If it is the first SQL-prefixed directive encountered, SQLPRE sets SQL"IBM" SQLINIT"S".
Remarks:
The possible values of
Properties:
Default: NOSQLPROT
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies: If it is the first SQL-prefixed directive encountered, SQLPROT sets SQL"IBM" SQLINIT"S" SQLPRE"ALL".
Remarks: Using SQLPROT results in the program registering a process so that the database is always closed down properly when a STOP RUN is encountered. This is the same as provided by SQLINIT, so SQLPROT is only needed when NOSQLINIT is specified. Hence, NOSQLINIT SQLPROT should be specified for SQL programs that need to protect the database on STOP RUN but do not want to initialize.
Parameters:
standard-level The standard level to be used.
Properties:
Default: SQLSTDLVL"NONE"
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies: If it is the first SQL-prefixed directive encountered, SQLSTDLVL sets SQL"IBM" SQLINIT"S" SQLPRE"ALL".
Remarks: This directive affects only IBM ES/2 Database Manager, DB2/2 and DB2/6000.
Possible values for (standard-level) are:Properties:
Default: NOSTDERR (on DOS, Windows and OS/2)
STDERR (on UNIX)
Phase: Syntax check
Environment: All
$SET: Any
Parameters:
integer Either 1 or 2
Properties:
Default: NOSTICKY-LINKAGE
Phase: Syntax check
Environment: All
$SET: Initial
Remarks: The purpose of the COBOL Linkage Section is to provide a linkage between a level 01 or level 77 data item declared in the Linkage Section (a linkage item) and some dynamically specified data item so that they appear to share the same storage area. The linkage is established by one of three means: a CALL statement referencing a program-name, a CALL statement referencing an entry-name or a SET statement. The first mechanism is the standard one specified by ANSI. The other two are COBOL language extensions that are supported by this COBOL system.
In ANSI COBOL, the Linkage Section enables a called program to access the parameters passed to it by a CALL statement. The number of parameters in the USING phrase of the CALL statement must equal the number of parameters in the USING phrase of the PROCEDURE DIVISION header. Any level 01 or level 77 data item in the Linkage Section that does not appear in the USING phrase of the PROCEDURE DIVISION header must not be referenced. The ENTRY statement is a COBOL language extension that provides an alternative entry point into a program. The ENTRY statement takes a USING phrase in the same way as the PROCEDURE DIVISION header, and, in a similar fashion, linkage items must not be referenced if they do not appear in the USING phrase associated with the entry-name by which the program was invoked. The SET statement enables a POINTER value that identifies a storage location to be used to link a linkage item. Such a linkage item can then be referenced in order to reference the data held at that storage location. The following details explain in conceptual terms when linkage items are linked and unlinked. No particular implementation method is implied by this. This COBOL system checks at run time when a linkage item is referenced, to ensure it is linked to a data item. It gives a run-time error if it is not linked to any storage location. To facilitate this check, on each invocation immediately before executing the first statement in the program, all linkage items are first unlinked and then linkage items that have corresponding parameters passed by the calling program are linked. This means that a linkage item in a called program that is linked to a data item by the SET statement does not remain linked on subsequent invocations of the program; the SET statement needs to be executed in each invocation. Many other COBOL implementations are less rigorous in enforcing the ANSI rules and the STICKY-LINKAGE directive takes a parameter to specify two alternative and less rigorous regimes. STICKY-LINKAGE"1" specifies that only the linkage items that appear in the USING phrase of the called program are unlinked; other linkage items retain any previous linkage. If the program was called using the program-name this is the USING phrase of the PROCEDURE DIVISION header. Otherwise, this is the USING phrase associated with the entry-point by which the program was invoked. Under this regime, if the calling program provides insufficient parameters and a reference is made to a linkage item that appears in the USING phrase but has no corresponding parameter in the USING phrase of the CALL statement, a run-time error is still given. STICKY-LINKAGE"2" specifies that, except when the program is in its initial state at startup or after it is referenced in a CANCEL statement, no linkage items are unlinked when the program is called. All linkage items retain any linkage established during previous invocations unless the calling program provides a parameter or a SET statement is used to change the linkage. Example: If the following program is compiled without the STICKY-LINKAGE directive and run, a run-time error 203, CALL parameter not supplied, is given after the second CALL statement passes control to "ent" and the DISPLAY statement references two linkage items that do not appear in the USING phrase of ENTRY "ent". If the program is then compiled with STICKY-LINKAGE"1" and run, execution progresses until it fails again after the third CALL statement passes control to "sub" and the DISPLAY statement references a linkage item that does appear in the USING phrase of the PROCEDURE DIVISION header but has no corresponding parameter passed by the CALL statement. If the program is compiled with STICKY-LINKAGE(2) and run, the program successfully executes to completion.See also:
PARAMCOUNTCHECK Compiler directive
Properties:
Default: NOSTICKY-PERFORM
Phase: Syntax check
Environment: All
$SET: Initial
Remarks: This directive has an effect only if your program was compiled with either PERFORM-TYPE"OSVS" or PERFORM-TYPE"RM" specified.
If you specified PERFORM-TYPE"OSVS" or PERFORM-TYPE"RM" when compiling, PERFORM statements are implemented by having a storage area, or bucket, associated with each place in the program that can be the end of a PERFORM statement's range. When a PERFORM statement is executed the return address is stored in the bucket, and at the end of the PERFORM statement's range the bucket is read to determine where control should return to and then cleared. By default, an EXIT PROGRAM statement clears these buckets, so that if the program is reentered, none of the return addresses of the previously executed PERFORM statements remains. Specifying STICKY-PERFORM stops the buckets from being cleared by an EXIT PROGRAM statement. This means that on reentry, the return addresses of all previously executed PERFORM statements remain. A STOP RUN or CANCEL statement clears the buckets regardless of the setting of this directive.See also:
PERFORM-TYPE Compiler directive
Properties:
Default: NOSTRUCT
Phase: Syntax check
Environment: All
$SET: No
Dependencies:
STRUCT sets ANIM at end.
Set to NOSTRUCT at end by NOINT.
Remarks: This directive is reserved for use with Structure Animator, supplied in Workbench, Toolbox and other similar systems. Do not change its setting unless you have an appropriate system.
Properties:
Default: SUPFF
Phase: Syntax check
Environment: All
$SET: Any
Parameters:
integer The number to be used.
Properties:
Default: SYMBSTART"1"
Phase: Syntax check
Environment: All
$SET: Initial
Remarks: For ANSI conformance use SYMBSTART"1"; for compatibility with previous products use SYMBSTART"0".
Example: With SYMBSTART"1", the COBOL statement:Properties:
Default: NOTABLESEGCROSS
Phase: Generate
Environment: 16-bit
$SET: Initial
Dependencies: TABLESEGCROSS sets NOBOUNDOPT at end.
Remarks: TABLESEGCROSS must be specified in a program that defines a table as being smaller than 64K, but references beyond the end of the table, across a 64K segment boundary. This technique is commonly used in OSVS COBOL programs where the maximum size of a 01-level item is 32K.
Specifying TABLESEGCROSS makes the code produced for your program much less efficient. For smaller and faster code you should not specify TABLESEGCROSS.See also:
BOUNDOPT Compiler directive
Parameters:
processor-id Identifies the processor type
Properties:
Default: TARGET"86" with the 16-bit Generator
TARGET"386" with the 32-bit Windows NT and OS/2 Generator
Phase: Generate
Environment: 16-bit, 32-bit OS/2 and Windows NT
$SET: Initial
Remarks: In the 16-bit generator, the possible values of (processor-id) are:
In the 32-bit Windows NT and OS/2 Generator, the possible values of (processor-id) are:
Properties:
Default: TERMPAGE
Phase: Syntax check
Environment: All
$SET: Initial
Remarks: Specifying TERMPAGE causes the last page of a report to be padded with blank lines until it is a full page in length.
This directive affects any report file for which the PAGE phrase is specified in its Report Description (RD) entry.Properties:
Default: TIME
Phase: Syntax check
Environment: All
$SET: No
Remarks: This directive has no effect if NODATE is specified.
See also:
DATE Compiler directive
Properties:
Default: NOTRACE
Phase: Syntax check
Environment: All
$SET: Initial
Remarks: When TRACE is set, the READY TRACE statement turns on the trace facility at run time. With this facility on, the name of each paragraph or section heading is displayed as it is executed. RESET TRACE turns this facility off. With NOTRACE, the READY TRACE and RESET TRACE statements have no effect.
See also:
SYSIN Compiler directive
Properties:
Default: TRICKLE
Phase: Generate
Environment: 16-bit
$SET: Initial
Dependencies:
Set to TRICKLE at end by PERFORM-TYPE"OSVS".
If ASSUME is set, NOTRICKLE sets NOALTER at end.
Remarks: NOTRICKLE tells the Compiler that nowhere in the program could control "trickle" from one PERFORM-range into another. Such a program has structured flow of control: it contains no paragraph or section that is entered both by being PERFORMed and by control falling into it from the preceding code, and none that is at the end of the range of one PERFORM and in the middle of the range of another PERFORM.
With NOTRICKLE, the Compiler can generate more efficient code for PERFORM statements.See also:
TRICKLECHECK Compiler directive
Properties:
Default: NOTRICKLECHECK
Phase: Generate
Environment: 16-bit
$SET: Initial
Remarks: If your program is unstructured and you specified NOTRICKLE, undefined behavior results. If you suspect that a problem is being caused by trickling, you can locate any instance of trickling by specifying TRICKLECHECK.
When a program generated with TRICKLECHECK tries to trickle, a run-time error 199 (Operating System corrupted) is returned. Information about the program name, segment number and offset in the segment is displayed. This can be related to a source code location by referring to an assembler listing, produced by specifying ASMLIST or SOURCEASM, or a listing of the offset of each paragraph, produced by specifying PARAS.See also:
ASMLIST Compiler directive
PARAS Compiler directive
SOURCEASM Compiler directive
TRICKLE Compiler directive
Parameters:
method See Remarks
Properties:
Default: TRUNC"ANSI"
Phase: Syntax check
Environment: All
$SET: Initial
Dependencies:
Set to TRUNC"ANSI" immediately by NORM.
Set to NOTRUNC immediately by RM or RM"ANSI".
Remarks: The possible values of this directive are: