Micro Focus Compiler Options C

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
  • MS - 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

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

    • 1 - Compatibility with previous versions of Nihongo Micro Focus products
    • 2 - Enhanced PIC N support. This setting enables the DBSPACE directive.
    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:

    • 1 - Suppress repetitions of duplicate keys.
    • 2 - Suppress leading characters that are the same as in the previous key.
    • 4 - Suppress trailing spaces.

    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:

    • 0 - Programs can read locked records, but not access them in other ways. This is the standard method with this system.
    • 1 - Programs cannot access locked records at all. This is as in languages other than COBOL.

    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:

    • rsv-word-1 - A reserved word.
    • rsv-word-2 - The reserved word whose meaning is to be changed.

    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:

    • ENTRY statements only in the outermost program
    • CALL (literal), but not CALL (identifier), statements
    • PROGRAM-ID entries in the outermost program, but not in nested programs.

    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:
    • The first eight characters must be unique among program-names. The name is truncated to the first eight characters.
    • The first character must be alphabetic. If it is numeric it is changed as follows: 0 becomes J 1 - 9 become A - I
    • Hyphen (-) is not allowed. If one appears it is changed to zero (0).


    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:

    • 1 - Professional COBOL V1.0, V1.1, and V1.2 Level II COBOL V2.5 and V2.6 Level II COBOL/ET V1.1
    • 2 - VS COBOL Workbench V1.2 VS COBOL V1.2
    • 3 - VS COBOL Workbench V1.3 VS COBOL Workbench V2.0 Professional COBOL V2.0 VS COBOL V1.5
    • 4 - COBOL/2 V1.1 Professional COBOL/2 COBOL/2 Workbench V2.2 Microsoft COBOL V3.0
    • 5 - COBOL/2 V1.2 COBOL/2 Workbench V2.3
    • 6 - COBOL/2 V2.4 COBOL/2 Workbench V2.4 Microsoft COBOL V4.0
    • 7 - COBOL/2 V2.5 COBOL/2 Workbench V2.5 Microsoft COBOL V4.5
    • 8 - COBOL V3.0 COBOL Workbench V3.0 Microsoft COBOL V5.0
    • 9 - COBOL V3.1 COBOL Workbench V3.1
    • 10 - COBOL V3.1 with Early Release syntax enabled COBOL Workbench V3.1 with Early Release syntax enabled COBOL V3.2 COBOL Workbench V3.2
    • 11 - COBOL V3.2 with Early Release syntax enabled COBOL Workbench V3.2 with Early Release syntax enabled

    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:
    • SMALL - small data, small code
    • COMPACT - large data, small code
    • MEDIUM - small data, large code
    • LARGE - large data, large code
    • HUGE - large data, large code, data items might cross segment boundaries
    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:

    • 1 - Microsoft COBOL Version 1.
    • 2 - Microsoft COBOL Version 2.

    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:

    • 1 - Compatibility with previous versions of Nihongo Micro Focus products
    • 2 - Enhanced PIC N support. This setting enables the DBSPACE directive.

    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