Chapter 5: COBOL Compiler Directives

This chapter presents information that is relevant if you were previously using Compiler directives with Workbench. It describes the way in which you use Mainframe Express to set Compiler directives, and differences in default Compiler directive settings between Workbench and Mainframe Express.

5.1 Setting Compiler Diretives

In Workbench you can configure the COBOL compiler through the use of compiler directives, which you usually set using the Compiler Options Selection Aid dialog box. Defaults are set via the files cobol.dir, wb*.dir, df*.dir, and mf*.dir, which contain directives which the compiler treats as the default settings. Workbench includes one wb*.dir/df*.dir/mf*.dir file for each dialect.

In Mainframe Express, neither of these methods is used. Instead, click Build Settings for ... on the Project menu, then click the COBOL tab. Here you select the dialect you want, and can customize it by further settings. The Build Settings field shows the directives that are set as a result. If you want to set directives that are not covered by options, you can type them in the Additional Directives field.

The COBOL tab itself has three or four tabs (depending on whether you have SQL Option installed) - General, Preproc, Listing and SQL. The button to the right of the COBOL Dialect field brings up a further dialog box, known as the Dialect dialog box, with more options.

The following table shows the most common directives that you might have been using when using Workbench and its add-ons to develop mainframe applications, and shows the equivalents in Mainframe Express.

Directive Dialog box option Notes
ADV Dialect dialog box. ADV check box.  
AMODE Dialect dialog box. For OS\VS, AMODE(24) is implied. For other dialects, Addressing mode dropdown list. For details see the chapter Migrating from COBOL Workbench
ANIM General tab. Create debug information check box. Also affects CSI.
APOST Dialect dialog box. Quote character dropdown list.  
CICSECM Preproc tab. EXEC CICS check box. Enabled when CICS Option installed.
CMPR2 Dialect dialog box. For OS\VS, not applicable. For other dialects, CMPR2 check box.  
CSI General tab. Create debug information check box. Also affects ANIM
DATA Dialect dialog box. For OS\VS, DATA(24) is implied. For others dialects, Data mode dropdown list.  
DATAMAP Listing tab. Include datamap check box.  
DB2 Preproc tab. EXEC SQL check box. Host Compatibility Option only
DB2(ACCESS) SQL tab. Create access plan check box. Host Compatibility Option only
DB2(BIND) SQL tab. Create bind file check box. Host Compatibility Option only
DB2(COLLECTION) SQL tab. Collection schema field. Host Compatibility Option only
DB2(DB=) Project Settings dialog box, SQL tab. Database name field. Host Compatibility Option only
DB2(FORMAT=) SQL tab. Date Format dropdown list. Host Compatibility Option only
DB2(QUALIFIER=) SQL tab. Implicit qualifier field. Host Compatibility Option only
DB2(SQLFLAG=) SQL tab. SQL Syntax dropdown list. Host Compatibility Option only
DEFAULTBYTE(00) Dialect dialog box. For OS/VS, DEFAULTBYTE(00) no configuration. For VS COBOL II, WSCLEAR check box. For other dialects, STORAGE(00) check box.  
DIALECT General tab. COBOL Dialect dropdown list. The DIALECT directive affects a large number of other directives - see reference for details.
DYNAM Dialect dialog box. DYNAM check box.  
EXECDLI Preproc tab. EXEC DLI check box. Enabled when IMS Option installed.
FLAGAS Dialect dialog box. Severity level for dialect discrepancy messages dropdown list.  
FLAGMIG Dialect dialog box. FLAGMIG check box.  
FORM Listing tab. Pages are nn lines high field.  
GNT() General tab. Create optimized code check box. Path set to first COBOL loadlib specified in Workgroup tab of Project View.
INT() Always set. Path set to first COBOL loadlib specified in Workgroup tab of Project View.
LIBRARIAN Preproc tab. Copybook syntax dropdown list. PANVALET
LINKCOUNT None. Not relevant to Mainframe Express There is no effective limit on number of linkage items.
LIST Listing tab. Generate listing file check box.  
LISTPATH Only used if Generate listing file check box selected. Workgroup settings, first listing folder specified.
LISTWIDTH Listing tab. Pages are nn characters wide field.  
OLDCOPY For OS/VS, Dialect dialog box,. LANGLVL(1) check box. For other dialects, not applicable.  
PANVALET Preproc tab. Copybook syntax dropdown list. LIBRARIAN
PREPROCESS Preproc tab. Use additional preprocess and directives check box.  
PREPROCESS($XDBDIR\XDB) Preproc tab. EXEC SQL check box. SQL for DB2 Option only.
QUOTE Dialect dialog box. Quote character dropdown list.  
RESEQ Listing tab. Include sequence numbers check box.  
SETTING Listing tab. Include compiler directives check box.  
SEQCHK Dialect dialog box. SEQ check box.  
SSRANGE Dialect dialog box. For OS/VS, SUBRNGCHK check box. For other dialects, SSRANGE check box.  
TRUNC Dialect dialog box. For OS\VS, TRUNC check box. For other dialects, Trunc setting dropdown list.  
WARNING General tab. Warning Level dropdown list.  
XREF Listing tab. Create cross reference listing check box.  
ZWB Dialect dialog box. ZWB check box.  

5.2 Differences in Directives' Default Settings

This section describes the changes that have been made to the default settings of directives between Workbench and Mainframe Express. The directives are split into two categories: those that control behavior relating to mainframe compatibility, and those that do not.

For further information on any of the Mainframe Express directives listed in the following sections, see Mainframe Express' online help. From the Contents tab, double-click Reference, Development Environment, Compiler Directives, Compiler Directives - Alphabetical Listing for a complete list.

5.2.1 Mainframe-related Directives

This section describes the differences between Workbench and Mainframe Express with regard to the default settings for mainframe-related directives. For each directive whose default is different in Workbench and Mainframe Express, the following table lists both values.

Directive Workbench Default Mainframe Express Default Notes
AMODE NOAMODE AMODE"24" for the OS/VS dialect. AMODE"31" for other mainframe dialects.  
DIALECT   DIALECT"VSC24" The Mainframe Express development environment automatically sets the DIALECT directive to reflect the selected dialect for a program.
ERRLIST ERRLIST"EMBED" ERRLIST"VERBOSE" The default for this Compiler directive has been changed to provide behavior more compatible with mainframe behavior.
HOST-NUMCOMPARE HOST-NUMCOMPARE"1" HOST-NUMCOMPARE"2" Although the default settings for HOST-NUMCOMPARE are different in Workbench and Mainframe Express, the result is the same in each case.
HOST-NUMMOVE HOST-NUMMOVE"1" HOST-NUMMOVE"2" Although the default settings for HOST-NUMMOVE are different in Workbench and Mainframe Express, the result is the same in each case.
HOSTFD NOHOSTFD HOSTFD  
INTDATE   INTDATE"ANSI" This directive is new for Mainframe Express.
RDW NORDW RDW  
RECMODE RECMODE"VSC2" RECMODE"VSC24"  
REMAINDER NOREMAINDER REMAINDER"2"  
TRUNCCALLNAME NOTRUNCCALLNAME TRUNCCALLNAME"8" The default for this Compiler directive has been changed to provide behavior more compatible with mainframe behavior.

5.2.2 Non Mainframe-related Directives

This section describes the differences between Workbench and Mainframe Express with regard to the default settings for non mainframe-related directives. For each directive whose default is different in Workbench and Mainframe Express, the following table lists both values.

Directive Workbench Default Mainframe Express Default Notes
01SHUFFLE NO01SHUFFLE   This directive is not applicable to Mainframe Express.
ANALYZE NOANALYZE   This directive is not applicable to Mainframe Express.
ANSI2000   NOANSI2000 This directive is new for Mainframe Express.
BROWSE NOBROWSE   This directive is not applicable to Mainframe Express.
BWZSTAR NOBWZSTAR BWZSTAR For Workbench, this Compiler directive was only available as part of the Early User Syntax.
CALL-RECOVERY NOCALL-RECOVERY NOCALLRECOVERY Although the default has changed to be NOCALLRECOVERY (with no hyphen), the Compiler would accept either of these two spellings, and the behavior would be identical.
CHIP NOCHIP   This directive is not applicable to Mainframe Express.
COBCPY COBCPY($COBCPY)   This directive is not applicable to Mainframe Express.
COBIDY NOCOBIDY COBIDY"$COBIDY" The setting of the COBIDY environment variable is maintained by the Mainframe Express development environment.
COPYEXT COPYEXT"CPY,CBL" COPYEXT"CPY"  
DATA   DATA"31" This directive is new for Mainframe Express.
DATA-CONTEXT   NODATA-CONTEXT This directive is new for Mainframe Express.
EANIM EANIM"0"   This directive is not applicable to Mainframe Express.
ENSUITE ENSUITE"2" ENSUITE"3" This Compiler directive is reserved for internal use only. You should not use it in any of your applications.
ERRQ NOERRQ ERRQ When compiling from the Mainframe Express development environment, the default is NOERRQ.
EXTINDEX NOEXTINDEX   This directive is not applicable to Mainframe Express.
FLAG-CHIP NOFLAG-CHIP   This directive is not applicable to Mainframe Express.
FLAGEUC   NOFLAGEUC This directive is new for Mainframe Express.
FLASH FLASH"ZOOM"   This directive is not applicable to Mainframe Express.
GNTANLZ NOGNTANLZ   This directive is not applicable to Mainframe Express.
IMPLICITSCOPE   IMPLICITSCOPE This directive is new for Mainframe Express.
INCLUDE-FILLER NOINCLUDE-FILLER   This directive is not applicable to Mainframe Express.
INDD INDD"SYSIN 80 L A" INDD"SYSIN 80 R E" The default for this Compiler directive has been changed to provide behavior more compatible with mainframe behavior.
ISO2000   NOISO2000 This directive is new for Mainframe Express.
IXNLSKEY   NOIXNLSKEY This directive is new for Mainframe Express.
IXNUMKEY   NOIXNUMKEY This directive is new for Mainframe Express.
LINKCOUNT LINKCOUNT"64"   This directive is not applicable to Mainframe Express.
MF-OO NOMF-OO   Micro Focus COBOL's object orientation extensions are enabled automatically if you specify that you want to debug non-mainframe applications.
MOVELENCHECK   NOMOVELENCHECK This directive is new for Mainframe Express.
OLDSTRSUB NOOLDSTRSUB   This directive is not applicable to Mainframe Express.
OOCTRL OOCTRL"-B-C-E-G-N-P+Q+R-S+V-W-8" OOCTRL"-C-E-G-P+Q+R-S-W"  
OUTDD OUTDD"SYSOUT 132 L A" OUTDD"SYSOUT 121 R E" The default for this Compiler directive has been changed to provide behavior more compatible with mainframe behavior.
QUERY NOQUERY QUERY When compiling from the Mainframe Express development environment, the default is NOQUERY.
RDEFPTR NORDEFPTR NORDEFPTR For Workbench, this Compiler directive was only available as part of the Early User Syntax.
REENTRANT   NOREENTRANT This directive is new for Mainframe Express.
REF NOREF   This directive is not applicable to Mainframe Express.
RWHARDPAGE NORWHARDPAGE NORWHARDPAGE For Workbench, this Compiler directive was only available as part of the Early User Syntax.
SHOWSHUFFLE NOSHOWSHUFFLE   This directive is not applicable to Mainframe Express.
SQL NOSQL   This directive is not applicable to Mainframe Express.
STRUCT NOSTRUCT   This directive is not applicable to Mainframe Express.
SYSIN NOSYSIN   This directive is not applicable to Mainframe Express.
WARNING WARNING"3" WARNING"1" When compiling from the Mainframe Express command prompt, the default is WARNING"3".
WB3 NOWB3 WB3 This Compiler directive is reserved for internal use only. You should not use it in any of your applications.
XNIM NOXNIM   This directive is not applicable to Mainframe Express.


Copyright © 2001 Micro Focus International Limited. All rights reserved.
This document and the proprietary marks and names used herein are protected by international law.