Micro Focus Compiler Options

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.

  • 01SHUFFLE - No segment boundary crossing
  • 64KPARA - Segment breaking
  • 64KSECT - Segment breaking
  • ACCEPTREFRESH - Update associated data on ACCEPT
  • ADDRSV - Add reserved word
  • ADDSYN - Add synonym
  • ADV - Adds control characters to print files
  • ALIAS - Subscripts
  • ALIGN - Data alignment
  • ALPHASTART - Numbering in ALPHABET
  • ALTER - Allow ALTER
  • ANALYZE - * For Analyze
  • ANIM - For Animator
  • ANS85 - ANSI'85
  • APOST - QUOTE = '
  • AREACHECK - AREA A tokens, treat as section/paragraph
  • ARITHMETIC - Arithmetic expressions
  • ASM - Produce object code listing
  • ASMLIST - File for assembly listing
  • ASSIGN - EXTERNAL or DYNAMI C
  • ASSIGN-PRINTER - Printer output
  • ASSUME - Modify behavior of some directives
  • AUTOLOCK - Default locking
  • BADSIGNS - Allow illegal sign nibbles
  • BELL - Bleep when stop
  • BOUND - Bound-check
  • BOUNDOPT - Optimize tables
  • BRIEF - No message texts
  • BROWSE - Create .SBR file
  • BWZSTAR - BLANK WHEN ZERO and PIC *
  • BYTE-MODE-MOVE - Control overlapping moves
  • CALLADIS - * External ACCEPT/DISPLAY handler
  • CALLFH - * External file handler
  • CALLMAP - Reserved for internal use
  • CALLMCS - Reserved for internal use
  • CALLSORT - External file handler
  • CANCELLBR - * Close COPY .LBR file
  • CASE - Case of program-name
  • CHANGE-MESSAGE - Change message severity
  • CHARSET - * ASCII or EBCDIC
  • CHECKDIV - Allow divide by zero
  • CHECKNUM - Check numeric fields
  • CHECKSTACK - Check for stack corruption
  • CHIP - Chip architecture
  • CICS - * Allow CICS
  • CICS-CPY - * Insert COPY "CICS-CPY"
  • CICSOPT - * Optimize BLL cells
  • CMPR2 - Mainframe compatible
  • COBFSTATCONV - * Convert EXTFH file status codes
  • COBIDY - Path for Animator file
  • COBOL370 - IBM COBOL 370
  • COBOLDIR - Use or ignore cobol.dir
  • COMP - Computational subset
  • COMP-5 - COMP-5 behavior
  • COMP-6 - COMP-6 behavior
  • COMS85 - ANSI'85 Comms
  • CONFIRM - Display directives
  • CONSTANT - Define constant
  • CONVERTPTR - Allow redefiniton of pointers
  • CONVERTRET - RETURNING item type
  • CONVSPACE - Convert db spaces in source code to sb
  • COPYEXT - Copyfile extensions
  • COPYLBR - * COPY-library = .LBR file
  • COPYLIST - List COPY files
  • CSI - * Create .CSI information file
  • CURRENCY-SIGN - PIC currency sign
  • CURRENT-DATE - DDMMYY or YY MMDD
  • DATACOMPRESS - Data compression
  • DATALIT - Literals in data seg.
  • DATE - Date for listings
  • DBCHECK - Check Double-Byte Chars.
  • DBCS - Double-Byte Chars.
  • DBCSSOSI - Shift-in, -out
  • DBSPACE - DBCS space
  • DE-EDIT - Num-edited behavior
  • DEFAULTBYTE - Initialize W-Storage
  • DEFAULTCALLS - CALL convention
  • DEFFILE - Produce .DEF file
  • DEFFILETYPE - Specify target for .DEF file
  • DETECT-LOCK - Detect record locks
  • DG - Data General
  • DIRECTIVES - File of directives
  • DIRECTIVES-IN-COMMENTS - Enable directives in comment lines
  • DLL - DLL or EXE
  • DOSVS - IBM DOS/VS COBOL
  • DYNAM - Ignore CANCEL
  • EANIM - For CodeView
  • EARLY-RELEASE - Enable Early User Syntax support
  • ECHO - Display errors
  • ECHOALL - Display full listing
  • EDITOR - Create error file for Editor
  • ENSUITE - * Internal use
  • ERRLIST - Print messages only
  • ERRQ - Pause on error
  • EXPANDDATA - Program compression
  • EXTINDEX - Reserved for internal use. Indexes EXTERNAL
  • FASTLINK - Restrict parameters
  • FASTSORT - Internal use
  • FCDREG - Registers for files
  • FDCLEAR - Clear record buffer after write
  • FILECASE - Internal use
  • FILESHARE - Default locking
  • FILETYPE - Data file format
  • FIXING - Optimizing jumps
  • FLAG - Flag outside the dialect
  • FLAGAS - Show flags as errors etc.
  • FLAGCD - Conflicting directives
  • FLAGMIG - Flag OSVS and VSC2 differences
  • FLAGQ - Pause on flag
  • FLAGINEDIT - Include flags in error file
  • FLAGSTD - Flag ANSI'85 level
  • FLAG-CHIP - Flag chip problems
  • FOLDCALLNAME - Fold call name
  • FOLDCOPYNAME - Fold COPY file names
  • FORM - Page length
  • FP-ROUNDING - Floating point items
  • GANIM - * For Xilerator
  • GNT - * File for object code
  • GNTANLZ - Use with add-on products
  • HIDE-MESSAGE - Set message to hide
  • HOST-NUMCOMPARE - Numeric comparisons
  • HOST-NUMMOVE - Disable RTS error 163 for MOVEs
  • IBM-MS - IBM / Microsoft V1.0
  • IBMCOMP - Word-storage mode
  • IDXFORMAT - Indexed file structure
  • INCLUDE-FILLER - Store FILLER information in .IDY
  • INDD - Transform ACCEPTs to READs
  • INFORETURN - Info msg return value
  • INITCALL - Execute a module
  • INT - * File for int code
  • INTLEVEL - * Portability level
  • IOCONV - READ-INTO/WRITE-FROM behavior
  • JAPANESE - Enable Double-Byte Language Extensions
  • KEEP-INT - Keep .int files
  • KEYCOMPRESS - Key compression
  • LIBRARIAN - Allow -INC
  • LINKCHECK - Check LS items
  • LINKCOUNT - Number of linked items
  • LINKLIB - Link-libraries
  • LIST - File for source listing
  • LISTPATH - Specify the path for list file
  • LISTWIDTH - Page width
  • LITLINK - Literals public
  • LITVAL-SIZE - BY VALUE size
  • LNKALIGN - Assume linkage items are aligned
  • LOCALCOUNT - Internal use
  • LOCKTYPE - Read locked records
  • LOGICOPT - Optimize CBL_ logical calls
  • MAKESYN - Make synonymous
  • MAPNAME - IBM prog-names
  • MASM - For Microsoft MASM
  • MAX-ERROR - Limit number of Compiler errors
  • MFCOMMENT - Alternate-format comments
  • MF - Level of MF
  • MF00 - Object Orientation syntax
  • MFSCCS - Look for source files in a SCCS system
  • MODEL - Model type
  • - Microsoft COBOL V1 or V2
  • NATIVE - Collating sequence
  • NCHAR - Enable Double-Byte Language Extensions
  • NESTCALL - Allow nested progs
  • NETLOCALSTORAGE - Internal use
  • NLS - Enable National Language Support
  • OBJ - File for object code
  • OBJLITE - Assembler-like code
  • ODOOSVS - Evaluate ODO like OS/VS COBOL does
  • ODOSLIDE - Variable length table
  • OLDBLANKLINE - Change behavior of BLANK LINE
  • OLDCOPY - ANSI'68 COPY
  • OLDFILEIO - Reserved
  • OLDINDEX - Indexes = subscripts
  • OLDNEXTSENTENCE - Change behavior of NEXT SENTENCE
  • OLDREADINTO - Change behavior of READ ... INTO statements
  • OLDSTRMIX - Allow PIC X and PIC N in statements
  • OLDSTRSUB - Change evaluation of subscripts
  • OMF - OBJ or GNT
  • OPT - Optimization level
  • OPTIONAL-FILE - All files optional
  • OPTSIZE - Optimize for size
  • OPTSPEED - Optimize for speed
  • OSEXT - Source file-name ext
  • OSVS - IBM OS/VS COBOL
  • OUTDD - Transform DISPLAYs to WRITEs
  • OVERRIDE - Change
  • PANVALET - Allow ++INCLUDE
  • PARAMCOUNTCHECK - Omit parameters
  • PARAS - Create list of paragraphs and sections
  • PC1 - IBM / Microsoft V1.0
  • PERFORMOPT - Optimize PERFORM of empty paragraph
  • PERFORM-TYPE - Returns from PERFORM
  • PREPLIST - Show original and preprocessed source
  • PREPROCESS - * Source from preprocessor
  • PRINT - File for source listing
  • PRINT-EXT - Specify print-file extension
  • PROFILE - Generate code for Profiler
  • PROGID-COMMENT - Comment in PROG-ID
  • PROTMODE - Produce protect mode only code
  • PROTECT-LINKAGE - Protects linkage items
  • PUBLICENTRY - Declare .OBJ entry points as public
  • QUAL - Allow qualification
  • QUALPROC - Allow qualification
  • QUERY - Pause if copyfile missing
  • QUOTE - QUOTE = "
  • RAWLIST - list with no variable information
  • RDEFPTR - COMP redefinitions of POINTER
  • RDW - Read length of variable-length record
  • REALOVL - Overlaying from disk
  • RECMODE - Fixed or var length
  • REF - Addresses in listings
  • REFNO - Compiler version-number in listings
  • REGPARM - Parameter passing
  • REMOVE - De-reserve
  • REPORT-LINE - Length of report writer lines
  • RESEQ - Generate line numbers
  • RETRYLOCK - Re-try locked record
  • REWRITE-LS - REWRITE on LINE SEQUENTIAL files
  • RM - Ryan-McFarland
  • RNIM - Animate, don't compile
  • RTNCODE-SIZE - RETURN-CODE size
  • SAA - Systems Application Architecture
  • SEG - Segmentation
  • SEGCROSS - Params on segments
  • SEGSIZE - Automatic segmentation
  • SEQCHK - Check line numbers
  • SEQUENTIAL - Variants of SEQUENTIAL organization
  • SETTING - Print directives
  • SHOW-DIR - Print directives files
  • SHOWSHUFFLE - Show 01SHUFFLE results
  • SIGN - Included signs
  • SIGNCOMPARE - EBCDIC numeric comparisons
  • SMALLDD - Params in segments
  • SOURCE-EXT - Source ext for CodeView
  • SOURCEASM - Source in assembly listing
  • SOURCEFORMAT - Allow free format code
  • SPZERO - Space = zero in nums
  • SQL - Allow EXEC SQL
  • SQLACCESS - Name of access plan
  • SQLBIND - Name of bind file
  • SQLBLOCK - Record blocking
  • SQLCOMMIT - Placement of generated commits
  • SQLCTRACE - List calls to precompiler services
  • SQLDB - Name of database
  • SQLDB2 - Mainframe compatibility
  • SQLECSPP - * Host compatibility
  • SQLFORMAT - Define date format
  • SQLINIT - Initialize &log on
  • SQLISOLATION - Isolation level
  • SQLNOT - Specify NOT character (ª)
  • SQLPASS - Give password
  • SQLPRE - Animate SQL programs
  • SQLPROT - Protect database
  • SQLRP - Compile on client workstation
  • SQLSTDLVL - Standards level of database manager
  • STDERR - Write messages to STDERR
  • STICKY-LINKAGE - Keep params linked
  • STICKY-PERFORM - Behavior of PERFORM
  • STRUCT - * For Structure Animator
  • SUPFF - No page-headings
  • SYMBSTART - Numbering in SYMBOLIC
  • SYSIN - Map I-O to SYSIN and SYSOUT
  • TABLESEGCROSS - Check for crossing of seg boundaries
  • TARGET - Chip-specific instrs.
  • TERMPAGE - Pad final page of report
  • TIME - Put time on listings
  • TRACE - Turn on READY TRACE
  • TRICKLE - Restrict PERFORM
  • TRICKLECHECK - Flag trickling
  • TRUNC - Truncation of binary
  • TRUNCCOPY - Truncate copyfile names
  • USE - File of directives
  • VERBOSE - Display Compiler messages
  • VSC2 - IBM VS COBOL II
  • WARNING - Level of message to output
  • WB - * Interface to other products
  • WB2 - * Internal use
  • WB3 - * Internal use
  • WRITELOCK - Default locking
  • WRITETHROUGH - * Unbuffered writes
  • XNIM - Compile and animate
  • XOPEN - X/Open
  • XREF - Produce cross-ref listing
  • ZEROLENGTHFALSE - Zero-length tests
  • ZEROSEQ - Zeros in line numbers
  • ZWB - Numeric comparisons

  • 01SHUFFLE

    Changes the addresses of 01-level items in the Working-Storage Section so that they do not cross 64K segment boundaries.

    > >-|---|-|----|--01SHUFFLE----------------- > < |-/-| |-NO-|

    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


    64KPARA

    Makes the Compiler produce segment-breaking information more often than at each paragraph, for programs containing paragraphs that produce more than 64K of code.

    > >-|---|-|----|--64KPARA------------------- > < |-/-| |-NO-|

    Properties:
    Default: NO64KPARA
    Phase: Generate
    Environment: 16-bit
    $SET: Initial

    Dependencies: Must set SEGSIZE" 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 paragraphs that produce more than 64K of code.

    See also:
    64KSECT Compiler directive
    SEGSIZE Compiler directive


    64KSECT

    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.

    > >-|---|-|----|--64KSECT------------------- > < |-/-| |-NO-|

    Properties:
    Default: NO64KSECT
    Phase: Generate
    Environment: 16-bit
    $SET: Initial

    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:
    64KPARA Compiler directive
    SEGSIZE Compiler directive


    ACCEPTREFRESH

    Specifies whether the data areas associated with Screen Section data are updated from their corresponding Working-Storage Section items before an ACCEPT statement.

    > >-|---|-|----|--ACCEPTREFRESH------------- > < |-/-| |-NO-|

    Properties:
    Default: NOACCEPTREFRESH
    Phase: Syntax check
    Environment: All
    $SET: Initial

    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:

    With NOACCEPTREFRESH specified, the Screen Section data area is left as it was following the last ACCEPT or DISPLAY.


    ADDRSV

    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.

    |----------| . | > >--|---|--ADDRSV--"rsv-word"-------------- > < |-/-|

    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


    ADDSYN

    Defines a user-defined reserved word to be synonymous with an existing reserved word.

    On DOS, Windows and OS/2:

    > >-|---|--ADDSYN--"rsv-word" = "user-word"- > < |-/-| On UNIX:
    > >-|---|--ADDSYN-"(rsv-word) == (user-word)"- > < |-/-|

    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.


    ADV

    Causes a control character to be inserted at the start of each line in a print file. This is for compatibility with mainframe operation.

    > >-|---|-|----|--ADV----------------------- > < |-/-| |-NO-|

    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


    ALIAS

    Prevents the Compiler from performing certain optimizations that are unsafe when a program uses aliasing.

    > >-|---|-|----|--ALIAS--------------------- > < |-/-| |-NO-|

    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.


    ALIGN

    Specifies the memory boundaries on which data items of 01-level or 77-level are aligned.

    > >-|---|--ALIGN--"integer"----------------- > < |-/-|

    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.


    ALPHASTART

    Sets the number from which the Compiler counts positions in the collating sequence when compiling the ALPHABET clause.

    > >-|---|--ALPHASTART--"integer"------------ > < |-/-|

    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".


    ALTER

    Allows ALTER statements in your program.

    > >-|---|-|----|--ALTER--------------------- > < |-/-| |-NO-|

    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.


    ANALYZE

    Makes the Compiler produce extra information so that you can use the Analyzer feature of Advanced Animator.

    > >-|---|-|----|--ANALYZE------------------- > < |-/-| |-NO-|

    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.


    ANIM

    Makes the Compiler produce extra information so that you can use Animator.

    > >-|---|-|----|--ANIM---------------------- > < |-/-| |-NO-|

    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


    ANS85

    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.

    > >-|---|-|-------ANS85--"SYNTAX"--|-------- > < |-/-| ||----|-ANS85------------| |-NO-|

    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:


    APOST

    Makes the Compiler interpret the figurative constant QUOTE as the single-quote character (').

    > >-------APOST----------------------------- > <

    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.


    AREACHECK

    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.

    > >-|---|-|----|--AREACHECK----------------- > < |-/-| |-NO-|

    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.


    ARITHMETIC

    Specifies how arithmetic expressions are to be evaluated.

    > >-|---|--ARITHMETIC--"arith-type"--------- > < |-/-|

    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.


    ASM

    Causes the Compiler to insert disassembled generated code into the Generator report (.grp) file.

    > >-|---|-|----|--ASM----------------------- > < |-/-| |-NO-|

    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).


    ASMLIST

    Makes the Compiler produce an assembly listing.

    > >-|---|-|-------ASMLIST-|-"destination"||- > < |-/-| | |-()-----------|| ||----|-ASMLIST-----------------| |-NO-|

    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 .grp where is the root of the name of the program being compiled.

    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".


    ASSIGN

    Specifies how to assign a file-name when neither EXTERNAL nor DYNAMIC appear in the SELECT statement.

    > >-|---|--ASSIGN--"assign-type"------------ > < |-/-|

    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.


    ASSIGN-PRINTER

    Specifies how to assign the output from an ASSIGN TO PRINTER clause when the clause does not specify a file-name.

    > >-|---|-|-----ASSIGN-PRINTER|"file-name"-||- > < |-/-| | |()----------|| |-NO--ASSIGN-PRINTER--------------|

    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"" causes the output to be directed to the file-name specified. The file-name can be fully specified, including a path-name, base-name, and extension.

    ASSIGN-PRINTER() results in the same behavior as including the following COBOL statement:

    select file-name-1 assign to printer file-name-1
    That is, the file-name used in your COBOL program is also used as the file-name for your output. If the internal file-name is too long for your operating system to handle, it is truncated to the maximum length the operating system allows.

    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


    ASSUME

    Controls the interaction between certain Generator directives.

    > >-|---|-|----|--ASSUME-------------------- > < |-/-| |-NO-|

    Properties:
    Default: ASSUME
    Phase: Generate
    Environment: 16-bit
    $SET: Initial

    Dependencies: If ASSUME then the following dependencies apply:


    AUTOLOCK

    Makes the default locking AUTOMATIC rather than EXCLUSIVE for files opened I-O or EXTEND in a multi-user environment.

    > >-|---|-|----|--AUTOLOCK------------------ > < |-/-| |-NO-|

    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.


    BADSIGNS

    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.

    > >-|---|-|----|--BADSIGNS------------------ > < |-/-| |-NO-|

    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.


    BELL

    Makes the bell sound at points such as when compilation stops, either because of an error or because it has finished.

    > >-|---|-|----|--BELL---------------------- > < |-/-| |-NO-|

    Properties:
    Default: NOBELL
    Phase: Both
    Environment: All (syntax check), 16-bit (generate)
    $SET: Initial


    BOUND

    Specifies that the subscript or index value is to be checked to ensure it is within the limits defined by the OCCURS clause.

    > >-|---|-|----|--BOUND--------------------- > < |-/-| |-NO-|

    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.


    BOUNDOPT

    Optimizes the code generated for USAGE DISPLAY subscripts.

    > >-|---|-|----|--BOUNDOPT------------------ > < |-/-| |-NO-|

    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.


    BRIEF

    Makes the Compiler produce only error numbers and no message texts.

    > >-|---|-|----|--BRIEF--------------------- > < |-/-| |-NO-|

    Properties:
    Default: NOBRIEF
    Phase: Syntax check
    Environment: All
    $SET: Any


    BROWSE

    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.

    > >-|---|-|----|--BROWSE-------------------- > < |-/-| |-NO-|

    Properties:
    Default: NOBROWSE
    Phase: Syntax check
    Environment: DOS, Windows and OS/2
    $SET: Any

    Dependencies: BROWSE sets ANIM immediately.


    BWZSTAR

    Determines whether the BLANK WHEN ZERO clause is allowed in the Data Division for those fields defined with the "*" PICTURE symbol.

    > >-|---|-|----|--BWZSTAR------------------- > < |-/-| |-NO-|

    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


    BYTE-MODE-MOVE

    Controls the granule size for moves between overlapping data items.

    > >-|---|-|----|--BYTE-MODE-MOVE------------ > < |-/-| |-NO-|

    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.


    CALLADIS

    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.

    > >-|---|-|-------CALLADIS--"handler-name"-| > < |-/-| ||----|-CALLADIS-----------------| |-NO-|

    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 is not specified, EXTADIS is assumed.

    See also:
    EARLY-RELEASE Compiler directive


    CALLFH

    Makes the Compiler generate direct calls for all file I/O operations, using the Callable File Handler interface.

    > >-|---|-|-------CALLFH--"handler-name"-|-- > < |-/-| ||----|-CALLFH-----------------| |-NO-|

    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 is not specified, EXTFH is assumed.

    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.


    CALLMCS

    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.

    > >-|---|-|-------CALLMCS--"mcs-name"-|----- > < |-/-| ||----|-CALLMCS-------------| |-NO-|

    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 is not specified, EXTMCS is assumed.


    CALLSORT

    Defines the program to be called to handle all SORT and MERGE operations.

    > >-|---|-|-------CALLSORT--"sort-name"-|--- > < |-/-| ||----|-CALLSORT--------------| |-NO-|

    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


    CANCELLBR

    Makes the Compiler close an .lbr file used as a library in a COPY statement once that copy operation is complete.

    > >-|---|-|----|--CANCELLBR----------------- > < |-/-| |-NO-|

    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.


    CASE

    Prevents external symbols (such as Program-ID and names of called programs) being converted to upper case.

    > >-|---|-|----|--CASE---------------------- > < |-/-| |-NO-|

    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.


    CHANGE-MESSAGE

    Changes the severity of errors/messages. Messages can also be supressed or returned to their original severity.

    |--------------| . | > >-|---|-|-----CHANGE-MESSAGE--"error--svrty"-|- > < |-/-| |-NO--CHANGE-MESSAGE-----------------|

    Parameters:

    error Number of message to be changed or "ALL" meaning all messages. svrty New severity : S Serious E Error W Warning I Informational N Do not produce this message R Reset to normal severity

    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


    CHARSET

    Defines the character set of the environment.

    > >-|---|--CHARSET--"char-set"-------------- > < |-/-|

    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.


    CHECKDIV

    Controls the behavior of your program if it tries to divide by zero in a statement that has no ON SIZE ERROR phrase.

    > >-|---|-|-------CHECKDIV--"dialect"-|----- > < |-/-| ||----|-CHECKDIV------------| |-NO-|

    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


    CHECKNUM

    Checks whether numeric fields contain valid data before performing operations on them.

    > >-|---|-|----|--CHECKNUM------------------ > < |-/-| |-NO-|

    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


    CHECKSTACK

    Adds code to all calls to check the stack and report if an incorrect number of parameters has been passed.

    > >-|---|-|----|--CHECKSTACK---------------- > < |-/-| |-NO-|

    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.


    CHIP

    Tells the Compiler that a specific microprocessor architecture is in use.

    > >-|---|-|-----CHIP--"integer"-|----------- > < |-/-| |-NO--CHIP------------|

    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.


    CICS

    Enables the use of CICS by updating BLL cells.

    > >-|---|-|----|--CICS---------------------- > < |-/-| |-NO-|

    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:

    COPY "CICS.CPY"
    at the beginning of your Linkage Section. If your program has no Linkage Section, the Compiler inserts one as follows:
    LINKAGE SECTION. COPY "CICS.CPY". 01 DFHCOMMAREA PIC X(). where the parameters are:
    CICS.CPY Contains a definition of the CICS EXEC INTERFACE BLOCK and DLI INTERFACE BLOCK compatible with Version 1, Release 6 (or earlier) of CICS. n Takes one of the following values: 1 There is no DFHCOMMAREA >1 There is a DFHCOMMAREA.

    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.


    CICS-CPY

    Inserts the statement COPY "CICS.CPY" provided the CICS directive is specified.

    > >-|---|-|----|--CICS-CPY------------------ > < |-/-| |-NO-|

    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


    CICSOPTIMIZE

    Optimizes the handling of CICS BLL cells.

    > >-|---|-|----|-|-CICSOPT------|----------- > < |-/-| |-NO-| |-CICSOPTIMISE-| |-CICSOPTIMIZE-|

    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.


    CMPR2

    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.

    > >-|---|-|----|--CMPR2--------------------- > < |-/-| |-NO-|

    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


    COBFSTATCONV

    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.

    > >-|---|-|----|--COBFSTATCONV-------------- > < |-/-| |-NO-|

    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.


    COBIDY

    Specifies the path where the Animator information file (.idy file) and COBOL Source Information file (.csi) are to be written.

    > >-|---|-|-------COBIDY--"path-name"-|----- > < |-/-| ||----|-COBIDY--------------| |-NO-|

    Parameters:
    path-name Path specification.

    Properties:
    Default: NOCOBIDY
    Phase: Syntax check
    Environment: All
    $SET: No

    Remarks: If you do not specify , the path-name in the COBIDY environment variable is used; if the environment variable contains multiple path-names the first of them is used. With NOCOBIDY, the .idy and .csi files are written to the same path as the object program.

    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


    COBOL370

    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.

    > >-|---|-|-------COBOL370--"integer"-|----- > < |-/-| ||----|-COBOL370------------| |-NO-|

    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.


    COBOLDIR

    Specifies whether the checker should process the directives in a cobol.dir file or ignore it.

    > >-|---|-|----|--COBOLDIR------------------ > < |-/-| |-NO-|

    Properties:
    Default: COBOLDIR
    Phase: Syntax check
    Environment: All
    $SET: No


    COMP

    Makes the Compiler produce very compact and efficient code for some statements involving COMP data items, by treating COMP items as COMP-X.

    > >-|---|-|----|--COMP---------------------- > < |-/-| |-NO-|

    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.


    COMP-5

    Specifies whether the sign is to be dropped when a value is stored in an unsigned COMP-5 data item.

    > >-|---|--COMP-5--"integer"---------------- > < |-/-|

    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:


    COMP-6

    Specifies whether COMP-6 data is to be held in binary or packed decimal format.

    > >-|---|--COMP-6--"integer"---------------- > < |-/-|

    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"


    COMS85

    Allows your program to contain syntax introduced in the Communications Module of the ANS85 COBOL Standard.

    > >-|---|-|----|--COMS85-------------------- > < |-/-| |-NO-|

    Properties:
    Default: NOCOMS85
    Phase: Syntax check
    Environment: All
    $SET: Initial


    CONFIRM

    Makes the Compiler echo all subsequent directives to the screen.

    > >-|---|-|----|--CONFIRM------------------- > < |-/-| |-NO-|

    Properties:
    Default: NOCONFIRM
    Phase: Both
    Environment: All (syntax check), 16-bit (generate)
    $SET: No

    Dependencies: Set to CONFIRM immediately by VERBOSE.


    CONSTANT

    Declares a constant for use in the program.

    > >-|---|-CONSTANT-const-name-|-(numeric-lit)--|- > < |-/-| |-"alphanum-lit"-|

    Parameters:

    Properties:
    Default: Not set
    Phase: Syntax check
    Environment: All
    $SET: Any

    Remarks: The effect is as if the constant had been defined in the program in a 78-level. Its value is that given in the parentheses or quotation marks. If parentheses are used, the constant is of category numeric; if quotation marks are used it is of category alphanumeric.

    To declare several figurative constants using this feature, use the CONSTANT directive repeatedly.


    CONVERTPTR

    Specifies whether POINTER data items can be redefined as PIC 9(9) COMP data items.

    > >-|---|-|----|--CONVERTPTR---------------- > < |-/-| |-NO-|

    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.


    CONVERTRET

    Causes COMP and COMP-X items specified in CALL ... RETURNING and EXIT PROGRAM ... RETURNING phrases to be converted to COMP-5.

    > >-|---|-|----|--CONVERTRET---------------- > < |-/-| |-NO-|

    Properties:
    Default: NOCONVERTRET
    Phase: Syntax check
    Environment: All
    $SET: Initial


    CONVSPACE

    Converts double-byte space characters in COBOL source files to single-byte spaces on input.

    > >-|---|-|----|--CONVSPACE----------------- > < |-/-| |-NO-|

    Properties:
    Default: CONVSPACE
    Phase: Syntax check
    Environment: All
    $SET: Initial


    COPYEXT

    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.

    |-------------| . | > >-|---|--COPYEXT-"extension-|-------------|-"-- > < |-/-| |-,-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


    COPYLBR

    Makes the Compiler treat the library specified in a COPY statement as an .lbr file.

    > >-|---|-|----|--COPYLBR------------------- > < |-/-| |-NO-|

    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.


    COPYLIST

    Makes the Compiler list the contents of files named in COPY statements.

    > >-|---|-|----|--COPYLIST-|-----------|---- > < |-/-| |-NO-| |-"integer"-|

    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.


    CSI

    Makes the Compiler produce extra information so that you can use CSI.

    > >-|---|-|----|--CSI----------------------- > < |-/-| |-NO-|

    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


    CURRENCY-SIGN

    Specifies the currency sign to be recognized in the PICTURE clause.

    > >-|---|--CURRENCY-SIGN--"integer"--------- > < |-/-|

    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.


    CURRENT-DATE

    Specifies the format of the date stored in the CURRENT-DATE special register.

    > >-|---|--CURRENT-DATE--"date-format"------ > < |-/-|

    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.


    DATACOMPRESS

    Specifies the type of data compression to be done on sequential and indexed files.

    > >-|---|-|-----DATACOMPRESS--"integer"-|--- > < |-/-| |-NO--DATACOMPRESS------------|

    Parameters:

    Properties:
    Default: NODATACOMPRESS
    Phase: Syntax check
    Environment: All
    $SET: Any

    Remarks: 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.

    > >-|---|-|----|--DATALIT------------------- > < |-/-| |-NO-|

    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.


    DATE

    Puts the date in the DATE-COMPILED paragraph and at the top of each page of the listing.

    > >-|---|-|-------DATE--"string"-|---------- > < |-/-| ||----|-DATE-----------| |-NO-|

    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.


    DBCHECK

    Makes the Compiler check that any Double-Byte Character Set (DBCS) literals only contain valid 16-bit DBCS characters.

    > >-|---|-|----|--DBCHECK------------------- > < |-/-| |-NO-|

    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).


    DBCS

    Makes the Compiler accept characters of the Double Byte Character Set (DBCS) for use in ideographic languages such as Japanese, Chinese and Korean.

    > >-|---|-|-------DBCS--"integer"-|--------- > < |-/-| ||----|-DBCS------------| |-NO-|

    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:

    1. Behavior as in earlier versions of this Compiler.
    2. Provides full System Application Architecture (SAA) DBCS support. This directive sets DBSPACE.
    3. Includes DBCS support as in IBM COBOL/370. This includes the use of PIC N, PIC G, and DBCS literals specified with "delimiter N".


    DBCSSOSI

    Defines the two characters used as the shift-out and shift-in delimiters in DBCS literals.

    > >-|---|-|----DBCSSOSI-"integer-1"-"integer-2"-| > < |-/-| |-NO-DBCSSOSI-------------------------|

    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.


    DBSPACE

    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.

    > >-|---|-|----|--DBSPACE------------------- > < |-/-| |-NO-|

    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").


    DE-EDIT

    Specifies the behavior of de-editing moves from numeric-edited items to other numeric-edited items or to numeric items.

    > >-|---|--DE-EDIT--"integer"--------------- > < |-/-|

    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:

    1. Behavior as in earlier versions of this Compiler. Ignores the PICTURE clause of the sending field.
    2. De-edits according to the PICTURE clause of the sending field. This provides ANSI'85 conformance.

    Example:

    01 A pic 909V99 value "30456". 01 B pic 9(5). ... move A to B

    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.


    DEFAULTBYTE

    Initializes each otherwise undefined byte of the Data Division to the character given.

    > >-|---|--DEFAULTBYTE--"integer"----------- > < |-/-|

    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.


    DEFAULTCALLS

    Specifies the default calling convention.

    > >-|---|-|-------DEFAULTCALLS--"integer"-|- > < |-/-| ||----|-DEFAULTCALLS------------| |-NO-|

    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.


    DEFFILE

    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.

    > >-|---|-|-------DEFFILE--"file-name"-|---- > < |-/-| ||----|-DEFFILE--------------| |-NO-|

    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:

    LIBRARY INITINSTANCE PROTMODE DATA NONSHARED EXPORTS (source-name) @1

    See also:
    DEFFILETYPE Compiler directive
    DLL Compiler directive


    DEFFILETYPE

    Specifies the type of module definition file (.def file) to be produced when the DEFFILE directive is specified.

    > >-|---|--DEFFILETYPE--"type"-------------- > < |-/-|

    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 :
    OS2 OS/2
    WIN Windows

    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:
    DEFFILE Compiler directive
    DLL Compiler directive


    DETECT-LOCK

    Makes READ statements detect when a record is locked by another program.

    > >-|---|-|----|--DETECT-LOCK--------------- > < |-/-| |-NO-|

    Properties:
    Default: DETECTLOCK
    Phase: Syntax check
    Environment: All
    $SET: Initial

    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.


    DG

    Changes the behavior of certain features to be compatible with Data General Interactive COBOL rev 1.30.

    > >-|---|-|----|--DG------------------------ > < |-/-| |-NO-|

    Properties:
    Default: NODG
    Phase: Syntax check
    Environment: All
    $SET: Initial

    Remarks: See your Language Reference for details of syntax support for Data General Interactive COBOL rev 1.30.


    DIRECTIVES or DIR

    Makes the Compiler read directives from a file.

    > >-|---|-|-DIRECTIVES-|-"file-name"-------- > < |-/-| |-DIR--------|

    Parameters:
    file-name A full file specification.

    Properties:
    Default: None
    Phase: Both
    Environment: All (syntax check), 16-bit (generate)
    $SET: Any

    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"". If you specify the DIRECTIVES directive in a directives file, the Compiler switches to the new directives file, reads all the directives in it, returns to the original directives file, and continues to read the directives specified after the DIRECTIVES directive. You can nest directives files to any depth.

    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:
    USE Compiler directive


    DIRECTIVES-IN-COMMENTS
    Makes the Compiler process $SET statements held in comment lines.

    > >-|---|-|----|--DIRECTIVES-IN-COMMENTS---- > < |-/-| |-NO-|

    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).


    DLL

    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.

    > >-|---|-|----|--DLL----------------------- > < |-/-| |-NO-|

    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 .def suitable for creating an .exe file for Windows.

    See also:
    DEFFILE Compiler directive
    DEFFILETYPE Compiler directive


    DOSVS

    Specifies that words reserved in IBM DOS/VS COBOL are to be treated as reserved words.

    > >-|---|-|----|--DOSVS--------------------- > < |-/-| |-NO-|

    Properties:
    Default: NODOSVS
    Phase: Syntax check
    Environment: All
    $SET: Initial

    Dependencies: Set to NODOSVS immediately by OSVS.

    See also:
    OSVS Compiler directive


    DYNAM

    Specifies that CANCEL statements are not to be ignored.

    > >-|---|-|----|--DYNAM--------------------- > < |-/-| |-NO-|

    Properties:
    Default: DYNAM
    Phase: Syntax check
    Environment: All
    $SET: Initial

    Remarks: With NODYNAM, CANCEL statements in the program are ignored.


    EANIM

    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.

    > >-|---|-|-------EANIM--"integer"----|----- > < |-/-| ||----|-EANIM---------------| |-NO-|

    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:

    1. Enables support for versions of Microsoft Codeview other than V3.50, and other .exe level debuggers. COBOL data types cannot be examined directly, but the CodeView command DB can be used to give a memory dump of a COBOL variable.
    2. Enables support for Microsoft CodeView V3.50, such that you can examine and modify most COBOL data types in the debugger.

    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.


    EARLY-RELEASE

    Enables support for Early User Syntax.

    > >-|---|-|----|--EARLY-RELEASE------------- > < |-/-| |-NO-|

    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.


    ECHO

    Makes the Compiler display error lines and error messages on the screen.

    > >-|---|-|----|--ECHO---------------------- > < |-/-| |-NO-|

    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


    EDITOR

    Makes the Compiler send error messages to a file in a format compatible with a specified editor.

    > >-|---|-|-----EDITOR--"editor-id"-|------- > < |-/-| |-NO--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 are:
    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


    ERRLIST

    Specifies that the listing is to contain no source lines except those that have errors or flags.

    > >-|---|-|----|--ERRLIST------------------- > < |-/-| |-NO-|

    Properties:
    Default: NOERRLIST
    Phase: Syntax check
    Environment: All
    $SET: No


    ERRQ

    Makes the Compiler ask, each time it gives an error message, whether you want to stop compiling.

    > >-|---|-|----|--ERRQ---------------------- > < |-/-| |-NO-|

    Properties:
    Default: NOERRQ
    Phase: Syntax check
    Environment: All
    $SET: Any


    EXPANDDATA

    Makes the Compiler store the program data in uncompressed form.

    > >-|---|-|----|--EXPANDDATA---------------- > < |-/-| |-NO-|

    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.


    EXTINDEX

    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.

    > >-|---|-|----|--EXTINDEX------------------ > < |-/-| |-NO-|

    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.


    FASTLINK

    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.

    > >-|---|-|----|--FASTLINK------------------ > < |-/-| |-NO-|

    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:


    FASTSORT

    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.

    > >-|---|-|----|--FASTSORT------------------ > < |-/-| |-NO-|

    Properties:
    Default: FASTSORT
    Phase: Syntax check
    Environment: All
    $SET: Initial


    FCDREG

    Makes the Compiler define special-registers giving access to File Control Descriptions (FCD) and Key Definition Blocks.

    > >-|---|-|----|--FCDREG-------------------- > < |-/-| |-NO-|

    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.


    FDCLEAR

    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.

    > >-|---|-|----|--FDCLEAR------------------- > < |-/-| |-NO-|

    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:

    file-control. select file-1 ... $set fdclear select file-2 ... $set nofdclear select file-3 ...


    FILESHARE

    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.

    > >-|---|-|----|--FILESHARE----------------- > < |-/-| |-NO-|

    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.


    FILETYPE

    Specifies the file format to use when creating files.

    > >-|---|--FILETYPE--"integer"-------------- > < |-/-|

    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:

    select printfile assign "print" organization is sequential.
    (Print files in the style of an IBM mainframe have print control character in the first column.)

    See also:
    CALLFH Compiler directive


    FIXING

    Tells the Compiler how many times to perform its final pass which shortens jump instructions.

    > >-|---|--FIXING--"integer"---------------- > < |-/-|

    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.


    FLAG

    Makes the Compiler produce language-level certification flags when it finds syntax that is not part of a specified dialect of COBOL.

    > >-|---|-|-----FLAG--"dialect"-|----------- > < |-/-| |-NO--FLAG------------|

    Parameters:
    dialect A literal identifying the dialect.

    Properties:
    Default: NOFLAG
    Phase: Syntax check
    Environment: All
    $SET: Any

    Remarks: The possible values of are:

    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.


    FLAGAS

    Makes the Compiler output flagging messages as error messages, warning messages or informational messages.

    > >-|---|-|-----FLAGAS--"severity"-|-------- > < |-/-| |-NO--FLAGAS-------------|

    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 are:


    FLAGCD

    When used in conjunction with the FLAG directive, FLAGCD flags any directive settings that would cause incompatibility with the specified dialect of COBOL.

    > >-|---|-|--------FLAGCD--"severity"-|----- > < |-/-| ||----|--FLAGCD-------------| |-NO-|

    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 are:

    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.


    FLAGMIG

    Causes the Compiler to flag any syntax that behaves differently at run time depending on the setting of CMPR2.

    > >-|---|-|----|--FLAGMIG------------------- > < |-/-| |-NO-|

    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


    FLAGQ

    Makes the Compiler ask, each time it gives a flagging message, whether you want to stop compiling.

    > >-|---|-|----|--FLAGQ--------------------- > < |-/-| |-NO-|

    Properties:
    Default: NOFLAGQ
    Phase: Syntax check
    Environment: All
    $SET: Any


    FLAGINEDIT

    Specifies whether flagging messages are to be included in an error file.

    > >-|---|-|----|--FLAGSINEDIT--------------- > < |-/-| |-NO-|

    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


    FLAGSTD

    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.

    > >-|---|-|-----FLAGSTD--"string"-|--------- > < |-/-| |-NO--FLAGSTD-----------|

    Parameters:
    string List of language levels

    Properties:
    Default: NOFLAGSTD
    Phase: Syntax check
    Environment: All
    $SET: Initial

    Remarks: contains a list of parameters, each defining a language level or optional module of the ANSI Standard. A feature is not flagged if it is in one of the specified levels or below, or in one of the specified optional modules. A feature is flagged if it is an extension, in a higher level of the Standard, or in an optional module not specified. In addition, it is possible to flag elements identified as OBSOLETE by the ANSI Standard.

    can consist of any of the following parameters:

    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.


    FLAG-CHIP

    Makes the Compiler produce flags indicating potential problem areas on the chip architecture in use.

    > >-|---|-|----|--FLAG-CHIP----------------- > < |-/-| |-NO-|

    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.


    FOLD-CALL-NAME

    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.

    > >-|---|-|-----FOLD-CALL-NAME--"case"-|---- > < |-/-| |-NO--FOLD-CALL-NAME---------|

    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 statement, the name called is given the case specified by this directive, but the actual contents of are not changed.

    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.


    FORM

    Specifies the number of lines on each page of the listing.

    > >-|---|-|-----FORM--"integer"-|----------- > < |-/-| |-NO--FORM------------|

    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.


    FP-ROUNDING

    Determines whether one floating-point receiving item can affect the results of other, nonfloating-point receiving items.

    > >-|---|-|-----FP-ROUNDING--"dialect"---|-- > < |-/-| |-NO--FP-ROUNDING--------------|

    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:

    05 numeric-field pic 999. 05 floating-field comp-1. and the following statement is executed: compute numeric-field floating-field = 7.7 + 1 specifying FP-ROUNDING"VSC2" results in numeric-field containing 9 (rounded), whereas specifying NOFP-ROUNDING or FP-ROUNDING"OSVS" would result in numeric-field containing 8 (truncated).

    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).


    GANIM

    Makes the Compiler produce extra information so that you can use Xilerator, available in Toolset and Workbench.

    > >-|---|-|----|--GANIM--------------------- > < |-/-| |-NO-|

    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.


    GNT

    Specifies the name of the object code file.

    > >-|---|-|-----GNT--"file-name"-|---------- > < |-/-| |-NO--GNT--------------|

    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.


    GNTANLZ

    This directive is reserved for use with Workbench. Do not change its setting unless you have Workbench.

    > >-|---|-|-----GNTANLZ--"count-type"-|----- > < |-/-| |-NO--GNTANLZ---------------|

    Parameters:
    count-type The type of count needed

    Properties:
    Default: NOGNTANLZ
    Phase: Syntax check
    Environment: All
    $SET: Initial

    Remarks: Possible values of are:


    HIDE-MESSAGE
    This directive has been replaced by the directive CHANGEMESSAGE. It remains for compatibility only, and will be removed in a future release.

    Registers the number of a syntax check error message to "hide" so that if the error is encountered it is ignored.

    > >-|---|-|-----HIDE-MESSAGE--"integer"-----|---- > < |-/-| | | |-NO--HIDE-MESSAGE--|-----------|-| |-"integer"-|

    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


    HOST-NUMCOMPARE
    Controls the operation of comparisons between integer numeric data items of USAGE DISPLAY and alphanumeric literals or figurative constants.

    > >-|---|-|-----HOST-NUMCOMPARE--------|---- > < |-/-| |-NO--HOST-NUMCOMPARE--------|

    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


    HOST-NUMMOVE
    Causes the Compiler to switch off checking for illegal characters in numeric fields (run-time error 163) during the execution of certain MOVE statements.

    > >-|---|-|----|--HOST-NUMMOVE-------------- > < |-/-| |-NO-|

    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


    IBM-MS
    Specifies that words reserved in IBM COBOL 1.00 are to be regarded as reserved words, and changes the behavior of certain features to be compatible with that system.

    > >-|---|-|----|--IBM-MS-------------------- > < |-/-| |-NO-|

    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.


    IBMCOMP
    Turns on word-storage mode.

    > >-|---|-|----|--IBMCOMP------------------- > < |-/-| |-NO-|

    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.


    IDXFORMAT
    Specifies the format to use when creating indexed files.

    > >-|---|--IDXFORMAT--"integer"------------- > < |-/-|

    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.


    INCLUDE-FILLER
    Causes information regarding FILLER data items to be stored in the .idy file.

    > >-|---|-|----|--INCLUDE-FILLER------------ > < |-/-| |-NO-|

    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.


    INDD
    Causes ACCEPT statements to be read from a specified file.

    > >-|---|-|-------INDD--"fname rsize rtype ctype"-| > < |-/-| |-------INDD--"fname rsize rtype"-------| |-------INDD--"fname rsize"-------------| |-------INDD--"fname"-------------------| ||----|-INDD----------------------------| |-NO-|

    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


    INFORETURN
    Specifies the return-code value returned by the Compiler when it produces only informational messages.

    > >-|---|--INFORETURN--"integer"------------ > < |-/-|

    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.


    INITCALL
    Specifies modules to be called immediately before the first statement of the program is executed.

    > >-|---||-----INITCALL--"module"-|------------|| > < |-/-|| |-"priority"-|| |-NO--INITCALL-------------------------|

    Parameters:

    Properties:
    Default: NOINITCALL
    Phase: Syntax check
    Environment: All
    $SET: Initial

    Remarks: The possible values of are:

    Specifying INITCALL causes the Compiler to insert a call to the named module. At run time, the module specified is called before any procedural code is executed. You cannot pass parameters to the called module.

    To call several modules using this feature, you must use the INITCALL directive repeatedly. NOINITCALL clears the list of modules to be called.

    Calls specified with a high priority are placed before all calls with a low priority, as well as other calls made by the Compiler. Low priority calls are placed after other calls made by the Compiler. Calls with the same priority are executed in the order they are specified.


    INT
    Specifies the name of the intermediate code file.

    > >-|---|-|-----INT-|-"path-name\file-name"-|-|-- > < |-/-| | |-"path-name/file-name"-| | | |-"path-name\"----------| | | |-"path-name/"----------| | | |-"file-name"-----------| | | |-()--------------------| | |-NO--INT---------------------------|

    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.


    INTLEVEL
    When intermediate code is being created by the Compiler, this directive controls the level of portability of the code created to different versions of Micro Focus COBOL systems in other environments.

    > >-|---|-|-----INTLEVEL--"integer"-|------- > < |-/-| |-NO--INTLEVEL------------|

    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.


    IOCONV
    Selects between a straight group move and conversion of elementary record descriptions (ANSI behavior) when processing READ ... INTO and WRITE ... FROM statements.

    > >-|---|-|----|--IOCONV-------------------- > < |-/-| |-NO-|

    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.


    JAPANESE
    Enables the use of Micro Focus Japanese Language Extension (PIC N, Japanese data-names and Japanese procedure-names).

    > >-|---|-|-------JAPANESE--"integer"-|----- > < |-/-| ||----|-JAPANESE------------| |-NO-|

    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:

    Specifying JAPANESE with no parameter is the same as specifying JAPANESE"2".

    This directive is provided for compatibility purposes only. It has been replaced by the NCHAR directive. JAPANESE and NCHAR are synonymous. The JAPANESE and DBCS directives are mutually exclusive.

    See also:
    DBCS Compiler directive
    DBSPACE Compiler directive
    NCHAR Compiler directive


    KEEP-INT
    Specifies whether the compiler should produce intermediate code for an unsuccessful compilation; that is a compilation that produces serious or unrecoverable errors.

    > >-|---|-|----|--KEEP-INT------------------ > < |-/-| |-NO-|

    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.


    KEYCOMPRESS
    Specifies the type of key compression to be done on indexed files.

    > >-|---|-|-----KEYCOMPRESS--"integer"-|---- > < |-/-| |-NO--KEYCOMPRESS------------|

    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:

    You can specify any combination of these numbers by adding these values together.

    KEYCOMPRESS"0" is equivalent to NOKEYCOMPRESS.

    You need specify key compression only when creating the file. Subsequently, the key compression is detected when the file is opened.

    To get key 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 relevant KEY clause in the file's SELECT statement.


    LIBRARIAN
    Allows -INC statements in your program.

    > >-|---|-|----|--LIBRARIAN----------------- > < |-/-| |-NO-|

    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.


    LINKCHECK
    Specifies that each time a Linkage Section item is referenced a check is to be made that it exists.

    > >-|---|-|----|--LINKCHECK----------------- > < |-/-| |-NO-|

    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


    LINKCOUNT
    Specifies the maximum number of Linkage Section items, external data items, and external files (as defined for interprogram communication) allowed.

    > >-|---|-|----|--LINKCOUNT--"integer"------ > < |-/-| |-NO-|

    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.


    LINKLIB
    Specifies the link library or libraries where the linker is to look for the run-Time support routines.

    > >-|---|-|-----LINKLIB--"library-names"-|-- > < |-/-| |-NO--LINKLIB------------------|

    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.


    LIST
    Specifies the destination of the source listing file.

    > >-|---|-|-------LIST-|-"destination"-||--- > < |-/-| | |-()------------|| ||----|-LIST------------------| |-NO-|

    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"" and 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.


    LISTPATH
    Specifies a path on which the list file is to be written. The name of the list file is (source-name).lst.

    > >-|---|-|----|--LISTPATH--"list-path"----- > < |-/-| |-NO-|

    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


    LISTWIDTH
    Sets the width of the listing.

    > >-|---|--|-LISTWIDTH-|-"width"------------ > < |-/-| |-LW--------|

    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


    LITLINK
    Makes the Compiler declare the literals in CALL literal statements as public symbols, so they are resolved at link time rather than run time.

    On 16-bit Compiler: > >-|---|-|----|-LITLINK-------------------- > < |-/-| |-NO-| On 32-bit Compiler: > >-|---|-|-----LITLINK--"integer"-|-------- > < |-/-| |-NO--LITLINK------------|

    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.


    LITVAL-SIZE
    Specifies the number of bytes to pass if the SIZE clause is omitted when passing numeric literals BY VALUE.

    > >-|---|--LITVAL-SIZE--"integer"----------- > < |-/-|

    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


    LNKALIGN
    Indicates that any linkage records specified in a USING statement are 01 or 77-level items, aligned according to the ALIGN directive.

    > >-|---|-|----|--LNKALIGN------------------ > < |-/-| |-NO-|

    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


    LOCALCOUNT
    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.

    > >-|---|--LOCALCOUNT--"integer"------------ > < |-/-|

    Parameters:
    integer Must be in the range 0 to 65536

    Properties:
    Default: LOCALCOUNT"0"
    Phase: Syntax check
    Environment: All
    $SET: Initial


    LOCKTYPE
    Specifies the type of record locking.

    > >-|---|--LOCKTYPE--"integer"-------------- > < |-/-|

    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:

    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.

    This directive only has an effect if the CALLFH directive is used.

    See also:
    CALLFH Compiler directive


    LOGICOPT
    Optimizes calls to the CBL_ logical routines so that they do not affect RETURN-CODE.

    > >-|---|-|----|--LOGICOPT------------------ > < |-/-| |-NO-|

    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.


    MAKESYN
    Makes one reserved word synonymous with another.

    On DOS, Windows and OS/2: > >-|---|-MAKESYN-"rsv-word-1" = "rsv-word-2"- > < |-/-| On UNIX: > >-|---|-MAKESYN-"(rsv-word-1) == (rsv-word-2)"- > < |-/-|

    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.


    MAPNAME
    Makes the Compiler alter program-names and entry-points to make them compatible with OS/VS COBOL, DOS/VS COBOL, VS COBOL II and COBOL/370.

    > >-|---|-|----|--MAPNAME------------------- > < |-/-| |-NO-|

    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:

    When a name is found to be incompatible a warning message is given and a modified name is used in the object program. The rules enforced and the modifications made are:


    MASM
    Makes the Compiler produce a listing file that can be submitted to Microsoft MASM to produce an .obj file.

    > >-|---|-|----|--MASM---------------------- > < |-/-| |-NO-|

    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.


    MAX-ERROR
    Causes the Compiler to abort when the specified number of errors have been produced.

    > >-|---|-|-----MAX-ERROR--"err-cnt-|-------|-"-|- > < |-/-| | |-svrty-| | |-NO--MAX-ERROR-----------------------|

    Parameters:

    err-cnt The maximum number of errors svrty The minimum level of severity to be counted. Only messages of the severity specified and greater are counted. One of: F Flag I Informational W Warning E Error S Severity If omitted, assumes F.

    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: MAX-ERROR"100 E" causes the compilation to terminate when 101 messages of severity E or S have been produced.

    See also:
    CHANGEMESSAGE Compiler directive
    FLAG Compiler directive
    FLAGAS Compiler directive
    FLAGSTD Compiler directive
    HIDEMESSAGE Compiler directive
    WARNING Compiler directive


    MFCOMMENT
    Treats lines with an asterisk (*) in column 1 the same as comment lines but does not show them in the source listing.

    > >-|---|-|----|--MFCOMMENT----------------- > < |-/-| |-NO-|

    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.


    MF or MFLEVEL
    Facilitates forward compatibility with Micro Focus COBOL systems by selectively enabling Micro Focus-specific reserved words and changing the behavior of certain features to be compatible with particular versions.

    > >-|---|-|-------|-MF------|-"integer"-|--- > < |-/-| | |-MFLEVEL-| | ||----|-|-MF------|-----------| |-NO-| |-MFLEVEL-|

    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:

    Behavior of the BLANK LINE phrase in previous versions of this system can be implemented using the OLDBLANKLINE directive. Behavior of the NEXT SENTENCE phrase in previous versions of this system can be implemented using the OLDNEXTSENTENCE directive.

    MF"11" contains all reserved words in MF"10" together with those that are part of the early-release syntax. Specifying MF without a parameter sets MF"11" if the EARLY-RELEASE directive has already been set. Otherwise, it sets MF"10". It is not possible to set MF"11" unless EARLY-RELEASE has already been set.

    See also:
    EARLY-RELEASE Compiler directive
    OLDBLANKLINE Compiler directive
    OLDNEXTSENTENCE Compiler directive


    MFOO
    Enables the object orientation (OO) facilities in the Compiler.

    > >-|---|-|-----MFOO-"oo-level"-|----------- > < |-/-| |-NO--MFOO------------|

    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


    MFSCCS
    Specifies whether to look for files in a Source Code Control System (SCCS).

    > >-|---|-|----|--MFSCCS-------------------- > < |-/-| |-NO-|

    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.


    MODEL
    Specifies the memory model.

    > >-|---|--MODEL--"type"-------------------- > < |-/-|

    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: where small means up to 64K and large means greater than 64K.

    You need to depart from the default MODEL setting only for certain cases of interlanguage working where the other language uses a model other than large. See the manuals of your other languages for information relating to the correct settings to use. This directive should not be changed when you link with the shared run-time system, COBLIB.

    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.


    MS
    Facilitates forward compatibility with Microsoft COBOL systems by selectively enabling Microsoft-specific reserved words and changing the behavior of certain features to be compatible with particular versions.

    > >-|---|-|-------MS--"version"-|----------- > < |-/-| ||----|-MS------------| |-NO-|

    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 are:

    Specifying MS with no parameters is the same as specifying MS"2". MS"1" is identical to IBM-MS and PC1.

    This directive is for compatibility with Microsoft COBOL before version 3.0. For compatibility with V3.0 and later, use:

    NOMS MF"(integer)"

    The value of (integer) to use is shown in the description of the MF directive.

    See also:
    MF Compiler directive


    NATIVE
    Specifies the default collating sequence for comparisons.

    > >-|---|--NATIVE--"coll-seq"--------------- > < |-/-|

    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.


    NCHAR
    Enables the use of Micro Focus Double-Byte Language Extension (PIC N, Japanese data-names and Japanese procedure-names).

    > >-|---|-|-------NCHAR--"integer"-|-------- > < |-/-| ||----|-NCHAR------------| |-NO-|

    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:

    Specifying NCHAR with no parameter is the same as specifying NCHAR"2".

    This directive is synonymous with, and should be used in preference to, the JAPANESE directive.

    The NCHAR and DBCS directives are mutually exclusive.

    When a PIC X is moved to a PIC N, with NCHAR"2", a space (x"20") is expanded to one double-byte space, and so x"2020" is expanded to two double-byte spaces. With NCHAR"1", x"2020" is expanded to one double-byte space.

    See also:
    DBCS Compiler directive
    DBSPACE Compiler directive
    JAPANESE Compiler directive


    NESTCALL
    Allows nested programs to appear in your program.

    > >-|---|-|----|--NESTCALL------------------ > < |-/-| |-NO-|

    Properties:
    Default: NONESTCALL
    Phase: Syntax check
    Environment: All
    $SET: Initial

    Dependencies: NESTCALL sets NO01SHUFFLE at end.


    NESTLOCALSTORAGE
    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.

    Allows Local Storage Section in nested programs.

    > >-|---|-|----|--NESTLOCALSTORAGE---------- > < |-/-| |-NO-|

    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


    NLS
    Enables the National Language Support facility.

    > >-|---|-|----|--NLS----------------------- > < |-/-| |-NO-|

    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


    OBJ
    Specifies the name of the object code file.

    > >-|---|-|-----OBJ--"file-name"|----------- > < |-/-| |-NO--OBJ-------------|

    Parameters:
    file-name A full file specification.

    Properties:
    Default: OBJ".obj" (with OMF"OBJ") OBJ".gnt" (with OMF"GNT")
    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.


    OBJLITE
    Produces a version of your program that functions very much like an assembler subroutine.

    > >-|---|-|----|--OBJLITE------------------- > < |-/-| |-NO-|

    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:


    ODOOSVS
    Makes the evaluation of OCCURS DEPENDING ON items more compatible with the OS/VS COBOL compiler.

    > >-|---|-|----|--ODOOSVS------------------- > < |-/-| |-NO-|

    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.


    ODOSLIDE
    Moves data items that follow a variable-length table in the same record as the table's length changes.

    > >-|---|-|----|--ODOSLIDE------------------ > < |-/-| |-NO-|

    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.


    OLDBLANKLLINE
    Changes the behavior of the BLANK LINE clause in the Screen Section.

    > >-|---|-|----|--OLDBLANKLINE-------------- > < |-/-| |-NO-|

    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.


    OLDCOPY
    Makes COPY statements follow the ANSI'68 Standard.

    > >-|---|-|----|--OLDCOPY------------------- > < |-/-| |-NO-|

    Properties:
    Default: NOOLDCOPY
    Phase: Syntax check
    Environment: All
    $SET: Any


    OLDFILEIO
    This directive is reserved for internal use by the system. Because it might appear in the list of settings, it is included here for completeness. It is not intended for users' applications, and its setting should not be changed.

    > >-|---|-|----|--OLDFILEIO----------------- > < |-/-| |-NO-|

    Properties:
    Default: NOOLDFILEIO
    Phase: Syntax check
    Environment: All
    $SET: Initial


    OLDINDEX
    Causes indexes to be compiled as subscripts.

    > >-|---|-|----|--OLDINDEX------------------ > < |-/-| |-NO-|

    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.


    OLDNEXTSENTENCE
    Changes the behavior of the NEXT SENTENCE statement.

    > >-|---|-|----|--OLDNEXTSENTENCE----------- > < |-/-| |-NO-|

    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


    OLDREADINTO
    Changes the behavior of the READ ... INTO statement.

    > >-|---|-|----|--OLDREADINTO--------------- > < |-/-| |-NO-|

    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.


    OLDSTRMIX
    Allows PIC X and PIC N fields to be specified in the same STRING, UNSTRING or INSPECT statement.

    > >-|---|-|----|--OLDSTRMIX----------------- > < |-/-| |-NO-|

    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.


    OLDSTRSUB
    Changes the point at which subscripts are evaluated during STRING, UNSTRING and INSPECT statements.

    > >-|---|-|----|--OLDSTRSUB----------------- > < |-/-| |-NO-|

    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.


    OMF
    Specifies which format of object code to produce.

    > >-|---|--OMF--"code"---------------------- > < |-/-|

    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:

    Generated (.gnt) code is the Micro Focus standard format for native code. It 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. It is relocatable, dynamically linked and managed by an advanced version of the shared run-time system. It is not suitable for input to the Linker.


    OPT
    Specifies the level of optimization of the code produced in the .obj file.

    > >-|---|--OPT--"integer"------------------- > < |-/-|

    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:


    OPTIONAL-FILE
    Makes the Compiler treat all files opened for I-O or EXTEND as optional.

    > >-|---|-|----|--OPTIONAL-FILE------------- > < |-/-| |-NO-|

    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.


    OPTSIZE
    Makes the Compiler treat the size of the object program as a higher priority than its speed, within the constraints imposed by other directives.

    > >-|---|--OPTSIZE-------------------------- > < |-/-|

    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.


    OPTSPEED
    Makes the Compiler treat the speed of the object program as a higher priority than its size, within the constraints imposed by other directives.

    > >-|---|--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.


    OSEXT
    Tells the Compiler what extension to expect by default on the names of source files.

    > >-|---|--OSEXT--"ext"--------------------- > < |-/-|

    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


    OSVS
    Specifies that words reserved in IBM OS/VS COBOL are to be treated as reserved words.

    > >-|---|-|----|--OSVS---------------------- > < |-/-| |-NO-|

    Properties:
    Default: NOOSVS
    Phase: Syntax check
    Environment: All
    $SET: Initial

    Dependencies: OSVS sets NODOSVS immediately.

    See also:
    DOSVS Compiler directive


    OUTDD
    Causes DISPLAY and EXHIBIT statements to be written to a specified output file. Also causes the output from TRACE to be sent to the specified output file.

    > >-|---|-|-------OUTDD--"fname rsize rtype ctype"-| > < |-/-| |-------OUTDD--"fname rsize rtype"-------| |-------OUTDD--"fname rsize"-------------| |-------OUTDD--"fname"-------------------| ||----|-OUTDD----------------------------| |-NO-|

    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


    OVERRIDE
    Replaces a reserved word by a new one.

    On DOS, Windows and OS/2: |------------------------| . | > >-|---|-OVERRIDE--"rsv-word" = "user-word"-- > < |-/-| On UNIX: |---------------------------| . | > >-|---|-OVERRIDE--"(rsv-word) == (user-word)"-- > < |-/-|

    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.


    PANVALET
    Allows ++INCLUDE statements in your program.

    > >-|---|-|----|--PANVALET------------------ > < |-/-| |-NO-|

    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.


    PARAMCOUNTCHECK
    Enables the program to be called with fewer parameters than are specified in the relevant entry-point's USING clause.

    > >-|---|-|----|--PARAMCOUNTCHECK----------- > < |-/-| |-NO-|

    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:

    Otherwise the program can be compiled with NOPARAMCOUNTCHECK for efficiency. A program to be called from a language other than COBOL must be compiled with NOPARAMCOUNTCHECK.

    Unless you specify the LINKCHECK directive, trying to reference a Linkage Section item that does not exist might result in a system hang on DOS, or a protection violation on OS/2.

    See also:
    LINKCHECK Compiler directive
    STICKY-LINKAGE Compiler directive


    PARAS
    Creates a list of paragraphs and sections in a program.

    > >-|---|-|----|--PARAS--------------------- > < |-/-| |-NO-|

    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


    PC1
    Specifies that words reserved in IBM COBOL 1.00 are to be regarded as reserved words, and changes the behavior of certain features to be compatible with that system.

    > >-|---|-|----|--PC1----------------------- > < |-/-| |-NO-|

    Properties:
    Default: NOPC1
    Phase: Syntax check
    Environment: All

    $SET: Initial

    Dependencies: PC1 sets DEFAULTBYTE"0" and ACCEPTREFRESH immediately.

    Remarks: This directive is synonymous with the IBM-MS and MS"1" directives.


    PERFORM-TYPE
    Specifies the behavior of return jumps from nested PERFORM statements.

    > >-|---|--PERFORM-TYPE--"dialect"---------- > < |-/-|

    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 are:

    See also:
    STICKY-PERFORM Compiler directive


    PREPLIST
    Causes the list file produced during a compilation to show both the original and modified source created by the preprocessor as well as to show all data passed to the Compiler by a preprocessor.

    > >-|---|-|----|--PREPLIST------------------ > < |-/-| |-NO-|

    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.


    PREPROCESSP
    Makes the Compiler take the source program from a preprocessor instead of a source file.

    > >-|---|-|----|-PREPROCESS-|-"name"|------||------|| > < |-/-| | |-P----------| |-dirs-||-ENDP-|| |-NO-|-PREPROCESS-|-----------------------| |-P----------|

    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.


    PRINT
    Specifies the destination of the source listing file.

    > >-|---|-|-------PRINT-|-"destination"-||-- > < |-/-| | |-()------------|| ||----|-PRINT------------------| |-NO-|

    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


    PRINT-EXT
    Specifies the extension to be added to the file-name associated with the ASSIGN TO PRINTER clause.

    > >-|---|--PRINT-EXT--"extension"----------- > < |-/-|

    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


    PROFILE
    Includes code in your program to produce detailed performance statistics each time you run the program.

    > >-|---|-|----|--PROFILE------------------- > < |-/-| |-NO-|

    Properties:
    Default: NOPROFILE
    Phase: Syntax check
    Environment: All
    $SET: No


    PROGID-COMMENT
    Allows comments following the Program-ID in the PROGRAM-ID paragraph.

    > >-|---|-|----|--PROGID-COMMENT------------ > < |-/-| |-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.


    PROTMODE
    Causes the Compiler to optimize certain statements in such a way that the resulting object code can only be run in protect mode environments.

    > >-|---|-|----|--PROTMODE------------------ > < |-/-| |-NO-|

    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


    PROTECT-LINKAGE
    Extends the standard COBOL semantics so that the lengths of parameters can differ between the calling and the called program.

    Normally, the result of ignoring the constraints would give undefined results, possibly including severe errors such as protection violations or memory access faults.

    > >-|---|-|----|--PROTECT-LINKAGE----------- > < |-/-| |-NO-|

    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: Calling program: ... 03 x1 pic x. 03 x2 pic x(100). procedure division. ... call subprog using x1 ... Subprogram: working-storage section. 01 y1 pic x(1000). linkage section. 01 z1 pic x(1000). procedure division using z1. move z1 to y1 * This operation works, and transfers the contents of x1. It * also transfers any data following x1 in the calling program, * up to 1000 bytes or the end of allocated memory, whichever * occurs first. If less than 1000 bytes is transferred, the * remainder of y1 is space filled. move y1 to z1. * This operation is not protected and fails, either by * corrupting data beyond x1 in the calling program, or * trying to write beyond allocated memory, which might * result in a protection violation.
    PUBLICENTRY
    Specifies whether entry-points in .obj files are to be declared as public.

    > >-|---|-|----|--PUBLICENTRY--------------- > < |-/-| |-NO-|

    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.


    QUAL
    Allows qualified data-names and procedure-names in your program.

    > >-|---|-|----|--QUAL---------------------- > < |-/-| |-NO-|

    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


    QUALPROC
    Allows qualified procedure-names in your program.

    > >-|---|-|----|--QUALPROC------------------ > < |-/-| |-NO-|

    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


    QUERY
    Makes the Compiler ask, each time it is unable to find a copyfile, what it should do.

    > >-|---|-|----|--QUERY--------------------- > < |-/-| |-NO-|

    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.


    QUOTE
    Makes the Compiler interpret the figurative constant QUOTE as the double-quote character (").

    > >-|---|--QUOTE---------------------------- > < |-/-|

    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.


    RAWLIST
    Prevents changeable information, such as page headers, date, time, Compiler release level, from being included in any listing file produced.

    > >-|---|-|----|--RAWLIST------------------- > < |-/-| |-NO-|

    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


    RDEFPTR
    Causes COMP redefinitions of POINTER data items to be stored in machine-specific format; that is, treated as COMP-5 data items.

    > >-|---|-|----|--RDEFPTR------------------- > < |-/-| |-NO-|

    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


    RDW
    Enables you to find out the length of a record that has just been read from a variable-length sequential file.

    > >-|---|-|----|--RDW----------------------- > < |-/-| |-NO-|

    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: fd file-1. 01 rec-1 pic x(100). 01 rec-2. 03 rdw-table pic x(4) occurs 25. Working-storage section. 01 rdw-area. 03 rec-length pic 9(4) comp. 03 filler pic 9(4) comp. procedure division. ... read file-1 move rdw-table (0) to rdw-area ...

    See also:
    FD statement


    REALOVL
    Causes overlays to be regarded as real rather than pseudo so that overlaying is done from disk.

    > >-|---|-|----|--REALOVL------------------- > < |-/-| |-NO-|

    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.


    RECMODE
    Specifies the default format of files.

    > >-|---|--RECMODE--"format"---------------- > < |-/-|

    Parameters:
    format F, V, or OSVS.

    Properties:
    Default: RECMODE"F"
    Phase: Syntax check
    Environment: All
    $SET: Initial

    Remarks: The possible values of are:

    For an individual file this directive is overridden if the FD contains either a RECORD IS VARYING phrase (which specifies variable format) or a RECORDING MODE clause.


    REF
    Makes the Compiler include in the source listing the intermediate code address of each data item or Procedure Division statement.

    On DOS, Windows and OS/2, it includes in the object code listing, the address of each Procedure Division statement.

    > >-|---|-|----|--REF----------------------- > < |-/-| |-NO-|

    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


    REFNO
    Makes the Compiler display its internal reference number at the start of a compilation as well as at the bottom of every listing.

    > >-|---|-|----|--REFNO--------------------- > < |-/-| |-NO-|

    Properties:
    Default: NOREFNO
    Phase: Syntax check
    Environment: All
    $SET: No


    REGPARM
    Makes the object program use an alternative parameter-passing mechanism, used in some other COBOL compilers.

    > >-|---|-|-------REGPARM--"when-used"-|---- > < |-/-| ||----|-REGPARM--------------| |-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:

    REGPARM with neither parameter causes this mechanism to be used in both cases.

    With this alternative mechanism, the first parameter is passed in ES:DI, the second in DS:SI, and subsequent parameters on the stack, such that the third item in the USING clause is popped off the stack last, and the last item popped first.

    The BP register is saved over calls, emulating the call functions of other COBOL compilers

    If this directive is used with FASTLINK, no USING clause should have more than three parameters. If REGPARM"OUT" is used, LITLINK is assumed; do not try to turn it off with NOLITLINK.

    REGPARM cannot be used with BY VALUE parameters.


    REMOVE
    Removes words from the reserved word list, so that they can be used as user-defined words.

    |----------| . | > >-|---|--REMOVE--"rsv-word"--------------- > < |-/-|

    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.


    REPORT-LINE
    Specifies the maximum length of a report writer line.

    > >-|---|-|-----REPORT-LINE--"integer"-|---- > < |-/-| |-NO--REPORT-LINE------------|

    Parameters:
    integer The maximum length, in characters.

    Properties:
    Default: REPORT-LINE"256"
    Phase: Syntax check
    Environment: All
    $SET: Initial


    RESEQ
    Makes the Compiler produce line numbers.

    > >-|---|-|----|--RESEQ--------------------- > < |-/-| |-NO-|

    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.


    RM
    Specifies that words reserved in Ryan-McFarland COBOL V2.0 are to be regarded as reserved words, and changes the behavior of certain features to be compatible with that system.

    > >-|---|-|-------RM--"ANSI"-|-------------- > < |-/-| ||----|-RM---------| |-NO-|

    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.


    RNIM
    Causes Animator to be invoked instead of the Compiler.

    > >-|---|-|----|--RNIM---------------------- > < |-/-| |-NO-|

    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


    RTNCODE-SIZE
    Specifies the size of the RETURN-CODE special register and its alignment in memory.

    > >-|---|--RTNCODE-SIZE--"integer"---------- > < |-/-|

    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:

    If a program with a four-byte RETURN-CODE calls a program with a two-byte RETURN-CODE, on return the value from the called program is in the lower two bytes of the four-byte RETURN-CODE. The content of the upper two bytes is undefined.

    If a program with a two-byte RETURN-CODE calls a program with a four-byte RETURN-CODE, on return the lower two bytes of the value from the called program are in the two-byte RETURN-CODE. The content of the upper two bytes is lost.


    SAA
    Specifies that words reserved under the Systems Application Architecture (SAA) definition of COBOL are to be treated as reserved words.

    > >-|---|-|-------SAA--"level"-|------------ > < |-/-| ||----|-SAA----------| |-NO-|

    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 are:

    Specifying SAA with no parameters is the same as specifying SAA"2".


    SEG
    Turns on COBOL segmentation.

    > >-|---|-|----|--SEG----------------------- > < |-/-| |-NO-|

    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.


    SEGCROSS
    Tells the Compiler which Linkage Section records cross segment boundaries.

    > >-|---|-|----|-SEGCROSS-|------------|---- > < |-/-| |-NO-| |-"integers"-|

    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: linkage section. 01 a pic x(10). 01 b pic 9(8). 01 c. 03 c1 pic x(10). 03 c2 pic x(20). 01 d pic 9(4). 01 e pic 9(8) comp-x. If you know that b and c never cross a segment boundary, you can specify SEGCROSS"1,4,5" to indicate that boundary crossing code is only to be produced for a, d and e.

    See also:
    SMALLDD Compiler directive


    SEGSIZE
    Specifies the maximum code segment size, beyond which the Compiler automatically segments the code.

    > >-|---|--SEGSIZE--"integer"--------------- > < |-/-|

    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


    SEQCHK
    Makes the Compiler check the sequence numbers in columns 1 through 6 and identify source lines that are out of sequence.

    > >-|---|-|----|--SEQCHK-------------------- > < |-/-| |-NO-|

    Properties:
    Default: NOSEQCHK
    Phase: Syntax check
    Environment: All
    $SET: Any

    Dependencies: SEQCHK sets NORESEQ immediately.
    Set to NOSEQCHK at end by SOURCEFORMAT"FREE".


    SEQUENTIAL
    Specifies the default file type for files defined (implicitly or explicitly) as ORGANIZATION SEQUENTIAL.

    > >-|---|--SEQUENTIAL--"type"--------------- > < |-/-|

    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 are:


    SETTING
    Makes the Compiler include in the source listing a list of the settings of directives.

    > >-|---|-|-------|-SETTING--|-|----------|-|- > < |-/-| | |-SETTINGS-| |-"format"-| | ||----|-|-SETTING--|--------------| |-NO-| |-SETTINGS-|

    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, can be one of:

    If (format) is not specified, LINE is assumed.

    A few directives provided only for compatibility with other COBOL systems (for example, COMMIT) are not shown. Also not shown are directives that control code generation, make specific changes to the reserved word list, or are synonymous with other directives.

    If the directive is specified other than on a $SET statement, the directives list is produced before processing the program source. If the directive is specified on a $SET statement, the list is produced once all the directives on that statement have been processed. In each case, the list contains the state of each directive at that point.

    When used with the generate phase, the .grp file contains only those directives that are relevant to that phase.

    See also:
    LIST Compiler directive


    SHOW-DIR
    Makes the Compiler show the contents of directives files in the source listing.

    > >-|---|-|----|--SHOW-DIR------------------ > < |-/-| |-NO-|

    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.


    SHOWSHUFFLE
    Displays the results of the 01-level data items moved by the 01SHUFFLE directive.

    > >-|---|-|----|--SHOWSHUFFLE--------------- > < |-/-| |-NO-|

    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


    SIGN
    Specifies whether, for numeric DISPLAY items with included signs, the signs are to be interpreted according to the ASCII or EBCDIC convention.

    > >-|---|--SIGN--"convention"--------------- > < |-/-|

    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".


    SIGNCOMPARE
    Affects the way some numeric comparisons are performed in a program using the EBCDIC character set.

    > >-|---|-|----|--SIGNCOMPARE--------------- > < |-/-| |-NO-|

    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.


    SMALLDD
    Tells the Compiler that no Linkage Section record less than 64K long crosses a segment boundary.

    > >-|---|-|----|--SMALLDD------------------- > < |-/-| |-NO-|

    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


    SOURCE-EXT
    Specifies the file-name extension of the source file that a run-time debugger is to look for. This information is included in the .obj file.

    > >-|---|--SOURCE-EXT--"ext"---------------- > < |-/-|

    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.


    SOURCEASM
    Makes the Compiler include source code statements in the assembler listing.

    > >-|---|-|----|--SOURCEASM----------------- > < |-/-| |-NO-|

    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.


    SOURCEFORMAT
    Selects free or fixed format for COBOL source.

    > >-|---|--SOURCEFORMAT--"format-type"------ > < |-/-|

    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.


    SPZERO
    Causes space characters in numeric data items of USAGE DISPLAY to be treated as zeros.

    > >-|---|-|----|--SPZERO-------------------- > < |-/-| |-NO-|

    Properties:
    Default: NOSPZERO
    Phase: Both
    Environment: All
    $SET: Any

    Remarks: With NOSPZERO, space characters in numeric data items give unpredictable results.


    SQL
    Allows EXEC SQL statements in your program, and specifies the database engine that is being used at both compilation and run time.

    > >-|---|-|----SQL-|---------|-|------------ > < |-/-| | |-"dbman"-| | |-NO-SQL-------------|

    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:

    Use MSSQL if you are using: Microsoft SQL Server V4.2 or later with Microsoft embedded SQL for COBOL developers kit V4.21 or later.

    If no parameter is supplied, IBM is assumed.

    The default values of the group of SQL directives are dependent upon the value of the SQL directive as follows:

    Warning: The SQL directive is set implicitly when any other SQL directive is either set to a specific value or to NO. For example, although the default value of SQL is NOSQL, specifying NOSQLINIT implicitly sets SQL. You must set NOSQL explicitly if you want to ensure that all other SQL directives are ignored.

    To process EXEC SQL statements for access to a database engine, you must specify at least one SQL directive. If you want to have EXEC SQL statements processed as standard EXEC syntax (see your Language Reference for details), you must explicitly specify the directive NOSQL.


    SQLACCESS
    Specifies the name of the access plan to be created by precompiler services and stored in the database.

    > >-|---|-|----SQLACCESS-|-"access-plan"-||- > < |-/-| | |-""------------|| |-NO-SQLACCESS------------------|

    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.


    SQLBIND
    Specifies the name of the bind file to be created by precompiler services.

    > >-|---|-|----SQLBIND-|-"bindfile-name"-||- > < |-/-| | |-""--------------|| |-NO-SQLBIND--------------------|

    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.


    SQLBLOCK
    Specifies the record blocking mode to be used on plan creation.

    > >-|---|--SQLBLOCK--"block-mode"----------- > < |-/-|

    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 are:

    This directive affects only IBM Database Manager, DB2/2 and DB2/6000.


    SQLCOMMIT
    Specifies the granularity of implicitly generated COMMIT statements.

    > >-|---|--SQLCOMMIT--"level"---------------- > < |-/-|

    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:

    This directive affects only IBM Database Manager, DB2/2 and DB2/6000, and requires SQLINIT or SQLPROT to be set also.


    SQLCTRACE
    Causes listing output to contain diagnostics showing calls to precompiler services.

    > >-|---|-|----|--SQLCTRACE----------------- > < |-/-| |-NO-|

    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.


    SQLDB
    Specifies the name of the database that the program accesses.

    > >-|---|-|-----SQLDB--"database-name"-|---- > < |-/-| |-NO--SQLDB------------------|

    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.


    SQLDB2
    Specifies that data items defined outside the scope of a Declare Section are allowed as host variables. This is for compatibility with IBM Mainframes.

    > >-|---|-|----|--SQLDB2-------------------- > < |-/-| |-NO-|

    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.


    SQLECSPP
    This directive is reserved for use with the add-on products "Micro Focus HOST Compatibility Option for IBM Database Manager" and "Micro Focus DB2 Option". Do not change its setting unless using these add-on products.

    > >-|---|-|--------SQLECSPP--"parameter"-|-- > < |-/-| ||----|--SQLECSPP--------------| |-NO-|

    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".


    SQLFORMAT
    Determines the date and time format when date/time fields are assigned to string representations in host variables.

    > >-|---|--SQLFORMAT--"date-format"--------- > < |-/-|

    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:

    When DEF or LOC is specified, these are the formats used: -------------------------------------------------------------- Country LOC date LOC time DEF date DEF time -------------------------------------------------------------- 001 USA mm-dd-yyyy hh:mm:ss mm/dd/yyyy hh:mm xM 002 Canada/Fr dd-mm-yyyy hh.mm.ss yyyy-mm-dd hh.mm.ss 044 UK dd/mm/yyyy hh:mm:ss dd/mm/yyyy hh:mm:ss 033 France dd/mm/yyyy hh:mm:ss dd.mm.yyyy hh.mm.ss 049 Germany dd/mm/yyyy hh.mm.ss yyyy-mm-dd hh.mm.ss 034 Spain dd/mm/yyyy hh:mm:ss dd/mm/yyyy hh:mm:ss 039 Italy dd/mm/yyyy hh:mm:ss dd/mm/yyyy hh:mm:ss 046 Sweden dd/mm/yyyy hh.mm.ss yyyy-mm-dd hh.mm.ss 045 Denmark dd-mm-yyyy hh.mm.ss yyyy-mm-dd hh.mm.ss 047 Norway dd/mm/yyyy hh.mm.ss dd.mm.yyyy hh.mm.ss 031 Netherlands dd-mm-yyyy hh:mm:ss yyyy-mm-dd hh.mm.ss 032 Belgium dd/mm/yyyy hh:mm:ss dd/mm/yyyy hh:mm:ss -------------------------------------------------------------- See the IBM OS/2 Database Manager SQL Reference or equivalent for more details.

    This directive affects only IBM Database Manager, DB2/2 and DB2/6000.


    SQLINIT
    Makes the program initialize SQL and log on to the database.

    > >-|---|-|-------SQLINIT--"mode"-|--------- > < |-/-| ||----|-SQLINIT---------| |-NO-|

    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 are:

    SQLINIT also causes the program to register a process so that the database is always properly closed down when a STOP RUN occurs. Without this you can leave the database in a corrupt condition when the program terminates before completion; for example, if you terminate an animation session before completing the program. This protection can be applied without initializing by using the SQLPROT directive.

    NOSQLINIT should be specified for SQL programs that are called by other SQL programs. It can also be specified for the first SQL program in a run-unit, but the program must contain one of the following before executing any other EXEC SQL statement:


    SQLISOLATION
    Specifies the isolation level to use.

    > >-|---|--SQLISOLATION--"isol-level"------- > < |-/-|

    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 are:

    This directive affects only IBM Database Manager, DB2/2 and DB2/6000.


    SQLNOT
    Specifies the value to use for the NOT character (ª).

    > >-|---|--SQLNOT--"integer"---------------- > < |-/-|

    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.


    SQLPASS
    Specifies the password of the database.

    > >-|---|-|-----SQLPASS--"usid.passwd"-|---- > < |-/-| |-NO--SQLPASS----------------|

    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.


    SQLPRE
    Allows SQL programs to be animated or run by preloading the database API modules.

    > >-|---|-|-----SQLPRE-|-------------|-|---- > < |-/-| | |-"set-level"-| | |-NO--SQLPRE-----------------|

    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 are:

    Specifying this directive causes a call to be generated to a module which preloads the API modules required when running an SQL program. This ensures that any SQL calls generated by embedded SQL commands or coded in the program can be resolved when running or animating. If no user coded calls to SQL are made, SQLPRE"REQ" can be used, which causes the startup code to be executed more quickly.

    Applications that are to be linked to create a .dll or .exe file might not need this directive to be specified. See the chapter SQL Database Interface in your COBOL User Guide for more information.


    SQLPROT
    Makes the program call SQLPROT to provide protection for the database on STOP RUN.

    > >-|---|-|----|--SQLPROT------------------- > < |-/-| |-NO-|

    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.


    SQLRP

    SQLSTDLVL
    Specifies the standards level of the database manager.

    > >-|---|--SQLSTDLVL--"standard-level"------ > < |-/-|

    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:


    STDERR
    Causes error messages to be echoed to STDERR rather than to the console (STDOUT).

    > >-|---|-|----|--STDERR-------------------- > < |-/-| |-NO-|

    Properties:
    Default: NOSTDERR (on DOS, Windows and OS/2) STDERR (on UNIX)
    Phase: Syntax check
    Environment: All
    $SET: Any


    STICKY-LINKAGE
    Makes parameters to the program remain linked during subsequent calls of the program.

    > >-|---|-|------STICKY-LINKAGE--"integer"-|- > < |-/-| |-NO---STICKY-LINKAGE------------|

    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. program-id. main. working-storage section. 01 param pic x value "a". procedure division. call "sub" using param call "ent" call "sub" stop run. end program main. program-id. sub. linkage section. 01 link-1 pic x. 01 link-2 pic x. procedure division using link-1. set address of link-2 to address of link-1 display link-1 link-2 exit program. entry "ent" display link-1 link-2 exit program. If STICKY-LINKAGE"2" is used for a called program, it can be called only by a COBOL program. If the called program is to be generated to object code in 16-bit environments, the PARAMCOUNTCHECK generator directive must be specified.

    See also:
    PARAMCOUNTCHECK Compiler directive


    STICKY-PERFORM
    Specifies the behavior of PERFORM statements when a program is reentered.

    > >-|---|-|----|--STICKY-PERFORM------------ > < |-/-| |-NO-|

    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


    STRUCT
    Makes the Compiler produce extra information so that you can use the structure feature of Animator.

    > >-|---|-|----|--STRUCT-------------------- > < |-/-| |-NO-|

    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.


    SUPFF
    Suppresses form-feed characters on the compilation listing if it is sent to the screen.

    > >-|---|-|----|--SUPFF--------------------- > < |-/-| |-NO-|

    Properties:
    Default: SUPFF
    Phase: Syntax check
    Environment: All
    $SET: Any


    SYMBSTART
    Sets the number from which the Compiler counts positions in the collating sequence when compiling the SYMBOLIC CHARACTERS clause.

    > >-|---|--SYMBSTART--"integer"------------- > < |-/-|

    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: SYMBOLIC CHARACTERS BEE IS 67 declares a symbolic character BEE representing "B" since, counting from 1, "B" is the 67th character in the ASCII collating sequence. With SYMBSTART"0", BEE represents "C".


    TABLESEGCROSS
    Makes the Compiler assume that a table defined as not crossing a segment boundary might actually cross a segment boundary.

    > >-|---|-|----|--TABLESEGCROSS------------- > < |-/-| |-NO-|

    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


    TARGET
    Tells the Compiler whether it can generate certain instructions available only on certain microprocessors. Use of these instructions increases the speed and slightly reduces the size of the code.

    > >-|---|--TARGET--"processor-id"----------- > < |-/-|

    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 above, 80386 includes Intel 80486 and Pentium processors.

    In the 32-bit Windows NT and OS/2 Generator, the possible values of (processor-id) are:


    TERMPAGE
    Determines whether the last page of a report file is to be padded with blank lines until it is a full page in length.

    > >-|---|-|----|--TERMPAGE------------------ > < |-/-| |-NO-|

    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.


    TIME
    Puts the time at the top of each page of the listing.

    > >-|---|-|----|--TIME---------------------- > < |-/-| |-NO-|

    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


    TRACE
    Enables READY TRACE and RESET TRACE statements.

    > >-|---|-|----|--TRACE--------------------- > < |-/-| |-NO-|

    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


    TRICKLE
    Tells the Compiler that the program contains legal but unstructured perform ranges, and that certain optimizations cannot, therefore, be made.

    > >-|---|-|----|--TRICKLE------------------- > < |-/-| |-NO-|

    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


    TRICKLECHECK
    Returns a run-time error message if trickling occurs in a program that you want to generate with NOTRICKLE.

    > >-|---|-|----|--TRICKLECHECK-------------- > < |-/-| |-NO-|

    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


    TRUNC
    Specifies whether data being stored into a USAGE COMP, USAGE BINARY or USAGE COMP-4 item is to be truncated to the size given by the item's PICTURE clause or to the maximum size the item can hold.

    > >-|---|-|-------TRUNC--"method"-|--------- > < |-/-| ||----|-TRUNC-----------| |-NO-|

    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:


    TRUNCCOPY
    Specifies whether to truncate the names of copyfiles and ++INCLUDE files.

    > >-|---|-|----TRUNCCOPY--"integer"-|------- > < |-/-| |-NO-TRUNCCOPY------------|

    Parameters:
    integer The number of characters to truncate the name of the copyfile to. Value between 8 and 255 inclusive.

    Properties:
    Default: NOTRUNCCOPY
    Phase: Syntax check
    Environment: All
    $SET: Initial


    USE
    USE is used in two ways.

    COBOL verb

    Compiler directive


    VERBBOSE
    Sends messages from the Compiler to the screen.

    > >-|---|-|----|--VERBOSE------------------- > < |-/-| |-NO-|

    Properties:
    Default: VERBOSE (on DOS, Windows and OS/2) NOVERBOSE (on UNIX)
    Phase: Syntax check
    Environment: All
    $SET: No

    Dependencies: VERBOSE sets CONFIRM immediately.

    Remarks: When VERBOSE is specified, messages concerning accepted directives and the size of code and data areas are displayed on the screen.


    VSC2
    Specifies that words reserved in IBM VS COBOL II are to be treated as reserved words, and enables selected features for compatibility with a given level of that system.

    > >-|---|-|-------VSC2--"integer"-|--------- > < |-/-| ||----|-VSC2------------| |-NO-|

    Parameters:
    integer The level of IBM VS COBOL II to be compatible with.

    Properties:
    Default: NOVSC2
    Phase: Syntax check
    Environment: All
    $SET: Initial

    Dependencies: If (integer) > 1, VSC2"(integer)" sets DBSPACE and DBCS"2" immediately. VSC2"3" sets ANS85 at end.

    Remarks: The possible values of (integer) are:

  • 1 VS COBOL II release 1.0 (Replaces the directives OLDVSC2 VSC2.)
  • No explicit scope delimiter is allowed in a statement without a conditional phrase (for example, AT END or ON SIZE ERROR).
  • The word ALSO in an EVALUATE statement must be omitted.
  • The CLASS and SYMBOLIC CHARACTERS clauses are not allowed.
  • Conditional phrases with NOT (for example NOT AT END, NOT ON SIZE ERROR) are not allowed.
  • 2 VS COBOL II release 2.0
    VS COBOL II release 3. (when compiled with its CMPR2 directive)
    VS COBOL II release 4. (when compiled with its CMPR2 directive)
    COBOL/370 V1R1 (when compiled with its CMPR2 directive)
  • The CLASS and SYMBOLIC CHARACTERS clauses are not allowed.
  • Conditional phrases with NOT (for example, NOT AT END, NOT ON SIZE
  • When used with FLAG"VSC2" it provides similar functionality to VS COBOL II release 2.
  • 3 VS COBOL II release 3. (when compiled with its NOCMPR2 directive)
  • For complete compatibility in this instance, the directive REMOVE"FUNCTION" also should be specified. However, for upward compatibility, we recommend that you do not use FUNCTION as a user-defined word.
  • When used with FLAG"VSC2" it provides similar functionality to VS COBOL II release 3.
  • 4 Synonymous with VSC2"3".
  • When VSC2 is specified without integer, VSC2"4" is assumed.

    ANSI'85 status codes are used when VSC2"3" is selected.

    Do not use the NOANS85 directive after VSC2"3"; it turns off some of the ANSI'85 behavior turned on by VSC2"3".


    WARNING
    Specifies the lowest severity level of errors to report.

    > >-|---|-|----|-WARNING--|-"integer"-|----- > < |-/-| | |-WARNINGS-| | |-NO-|-WARNING--|-----------| |-WARNINGS-|

    Parameters:
    integer 1, 2, or 3.

    Properties:
    Default: WARNING"1"
    Phase: Syntax check
    Environment: All
    $SET: Any

    Remarks: The possible values of (integer) are:

    With NOWARNING only those of level U or S are reported.

    See also:
    FLAGAS Compiler directive
    FLAGCD Compiler directive


    WB
    This directive is used with Micro Focus integrated products to make the Compiler compatible with the integration. 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.

    > >-|---|-|----|--WB------------------------ > < |-/-| |-NO-|

    Properties:
    Default: NOWB
    Phase: Syntax check
    Environment: All
    $SET: No

    Dependencies: WB sets ANIM immediately.


    WB2
    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.

    > >-|---|-|----|--WB2----------------------- > < |-/-| |-NO-|

    Properties:
    Default: NOWB2
    Phase: Syntax check
    Environment: All
    $SET: No


    WB3
    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.

    > >-|---|-|----|--WB3----------------------- > < |-/-| |-NO-|

    Properties:
    Default: NOWB3
    Phase: Syntax check
    Environment: All
    $SET: No


    WRITELOCK or WRITE-LOCK
    Makes the WRITE and REWRITE statements acquire a record lock when the program is locking multiple records in a shared data file in a multi-user environment.

    > >-|---|-|----|-|-WRITELOCK--|------------- > < |-/-| |-NO-| |-WRITE-LOCK-|

    Properties:
    Default: NOWRITELOCK
    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 relevant locking syntax rather than this directive.


    WRITETHROUGH or WRITETHRU
    Specifies that disk writes are not to be buffered.

    > >-|---|-|----|-|-WRITETHROUGH-|----------- > < |-/-| |-NO-| |-WRITETHRU----|

    Properties:
    Default: NOWRITETHROUGH
    Phase: Syntax check
    Environment: All
    $SET: Initial

    Dependencies: Requires CALLFH to be set.

    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.

    When WRITETHRU is specified, the system does not buffer disk writes.

    Using WRITETHRU helps improve the integrity of data files by ensuring that every write operation goes to the disk file straight away, reducing the possibility of losing data if your computer crashes. However, it also bypasses all cacheing and blocking methods, resulting in poorer performance.

    See also:
    CALLFH Compiler directive


    XNIM
    Makes the Compiler compile your program for animation as if ANIM had been specified, and then invoke Animator.

    > >-|---|-|----|--XNIM---------------------- > < |-/-| |-NO-|

    Properties:
    Default: NOXNIM
    Phase: Syntax check
    Environment: All
    $SET: No

    Remarks: You can use Animator directives with XNIM.

    With XNIM, no object file is produced by default.

    When it finishes, Animator does not save the files required for a subsequent animation.

    If the source file contains more than one nonnested program, it is the last program in the source file that is animated.


    XOPEN
    Specifies that words reserved under the X/Open definition of COBOL are to be treated as reserved words.

    > >-|---|-|-------XOPEN--"level"-|---------- > < |-/-| ||----|-XOPEN----------| |-NO-|

    Parameters:
    level Must be 3 or 4. The level of X/Open definition COBOL to be compatible with.

    Properties:
    Default: NOXOPEN
    Phase: Syntax check
    Environment: All
    $SET: Initial

    Dependencies: XOPEN sets RTNCODE-SIZE"4" immediately.

    Remarks: The possible values of are:

    Specifying XOPEN with no parameter is the same as specifying XOPEN"4". XPG-4 specifies options for several environments. If available, the options available are as follows:

    See also:
    DBCS Compiler directive
    NLS Compiler directive
    RTNCODE-SIZE Compiler directive


    XREF
    Makes the Compiler produce a cross-reference listing.

    > >-|---|-|----|--XREF---------------------- > < |-/-| |-NO-|

    Properties:
    Default: NOXREF
    Phase: Syntax check
    Environment: All
    $SET: Initial

    Dependencies: XREF sets RESEQ immediately.
    Set to NOXREF at end by NOLIST and RNIM.
    On UNIX, to produce the message "*End of cross reference listing" in the cross reference listing you must also specify the verbose compiler option, -v.

    Remarks: This directive has no effect if the LIST directive is not specified.

    To produce the cross-reference listing the Compiler needs extra work space on the disk. The space needed depends on the number of data items and procedure names and the number of times they are referenced.

    When the XREF directive is specified, extra information is added to the end of the .lst file produced: Example: The following is an extract from a .lst file for a simple program: 1 working-storage section. 2 01 a pic 9(2). 3 4 procedure division. 5 main section. 6 move 1 to a 7 if a = 1 display "HELLO" end-if 8 stop run. ... * A Numeric DISPLAY * 2# 6* 7? (X 3) * * 1 data-names * * MAIN Section * 5# (X 1) * * * 1 procedure-names * End of cross reference listing The cross-referencing information shows that there is one data item, A, of type numeric display, which is defined on line 2, updated on line 6, and tested on line 7. The (X 3) at the end of the line refers to the number of times the data item appears in the cross-reference listing. The procedure name Main also appears in the listing, as a Section which is referenced only once.

    See also:
    RESEQ Compiler directive


    ZEROLENGTHFALSE
    Changes the way that class tests involving zero-length items are carried out.

    > >-|---|-|----|--ZEROLENGTHFALSE----------- > < |-/-| |-NO-|

    Properties:
    Default: NOZEROLENGTHFALSE
    Phase: Syntax check
    Environment: All
    $SET: Any

    Remarks: When ZEROLENGTHFALSE is set, all comparisons between zero-length group items, and between zero-length items and figurative constants, return false; when it is not set, they all return true.

    For conformance to ANSI and SAA you must set ZEROLENGTHFALSE.


    ZEROSEQ
    Causes leading zeros to appear in the sequence numbers in columns 1 thru 6.

    > >-|---|-|----|--ZEROSEQ------------------- > < |-/-| |-NO-|

    Properties:
    Default: NOZEROSEQ
    Phase: Syntax check
    Environment: All
    $SET: Any

    Remarks: NOZEROSEQ suppresses these leading zeros.


    ZWB
    Affects the operation of comparisons between integer numeric data items of USAGE DISPLAY and alphanumeric literals or figurative constants.

    > >-|---|-|----|--ZWB----------------------- > < |-/-| |-NO-|

    Properties:
    Default: NOZWB
    Phase: Syntax check
    Environment: All
    $SET: Any

    Remarks: The ZWB directive affects the range of comparisons that HOST-NUMCOMPARE applies to. With ZWB on, only unsigned comparisons are affected. Otherwise, all comparisons are affected.

    See also:
    HOST-NUMCOMPARE Compiler directive



    If you experience a problem with this page, please send a message to JTate@JaTomes.Com including a description of the problem.

    Last modified: Thursday Aug-06-1998.