Descriptions of Directives (cont.) [ Micro Focus COBOL System Reference, Volume 2 ] MPE/iX 5.0 Documentation
Micro Focus COBOL System Reference, Volume 2
Descriptions of Directives (cont.)
STICKY-LINKAGE
Makes parameters to the program remain linked during subsequent calls of
the program.
Syntax:.
Parameters:.
integer Either 1 or 2
Default:.
NOSTICKY-LINKAGE
Phase:.
Syntax check
Environment:.
DOS, Windows and OS/2
$SET:.
Initial
Remarks:.
A program can be called via different entry-points that expect different
parameters. When a Linkage Section record is used as a parameter in a
called program it is linked to the corresponding data item in the calling
program. This directive causes such links to remain during subsequent
calls of the called program, so that the record can be accessed during
subsequent calls even if they are via entry-points that do not use it as
a parameter.
The value of integer has the following effect:
1 The called program fills in any parameters not specified in the
ENTRY...USING phrase.
2 The called program fills in any parameter not actually passed by
the caller.
Example:.
In the calling program:
CALL "ENTRY-1" USING HOURLY-RATE EMPLOYEE
CALL "ENTRY-2" *> STICKY-LINKAGE"1" or "2"
CALL "ENTRY-1" USING HOURLY-RATE *> STICKY-LINKAGE"2" only
In the called program:
ENTRY "ENTRY-1" USING HOURLY-RATE.
DISPLAY HOURLY-RATE
DISPLAY EMPLOYEE
EXIT PROGRAM.
ENTRY "ENTRY-2".
DISPLAY HOURLY-RATE EXIT PROGRAM.
Specifying STICKY-LINKAGE"1", both the DISPLAY HOURLY-RATE statements
work correctly for the first two CALL statements, but DISPLAY EMPLOYEE
causes run-time error 203 (CALL parameter not supplied (fatal)).
Specifying STICKY-LINKAGE"2", the caller must be a COBOL program which,
if generated, was generated with PARAMCOUNTCHECK. Then, the DISPLAY
EMPLOYEE statement works correctly for the first and third calls, as well
as the DISPLAY HOURLY-RATE statement in all three cases.
With NOSTICKY-LINKAGE specified, the second and third calls cause
run-time error 203 (CALL parameter not supplied (fatal)).
See also:.
PARAMCOUNTCHECK
STICKY-PERFORM
Specifies the behavior of PERFORM statements when a program is reentered.
Syntax:.
Parameters:.
None
Default:.
NOSTICKY-PERFORM
Phase:.
Syntax check
Environment:.
All
$SET:.
Initial
Remarks:.
This directive only has an effect 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, 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 remain. 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 remains.
A STOP RUN or CANCEL statement clears the buckets regardless of the
setting of this directive.
See also:.
PERFORM-TYPE
STRUCT
Makes the Compiler produce extra information so that you can use the
structure feature of Animator.
Syntax:.
Parameters:.
None
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 add-on products supplied by Micro
Focus. Do not change its setting unless you have an appropriate add-on
product.
SUPFF
Suppresses form-feed characters on the compilation listing if it is sent
to the screen.
Syntax:.
Parameters:.
None
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.
Syntax:.
Parameters:.
integer The number to be used.
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".
SYSIN
Causes ACCEPT, DISPLAY and EXHIBIT statements to be mapped onto files
SYSIN and SYSOUT. Also causes the output from TRACE to be sent to the
SYSOUT file.
Syntax:.
Parameters:.
None
Default:.
NOSYSIN
Phase:.
Syntax check
Environment:.
All
$SET:.
Initial
Remarks:.
When SYSIN 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 external name SYSIN.
Similarly, all EXHIBIT statements and all format 1 DISPLAY statements
which either have no UPON option or specify UPON SYSOUT are transformed
into WRITE statements, writing to a file with external name SYSOUT.
These files behave as though they were defined as ORGANIZATION LINE
SEQUENTIAL. The text is always in ASCII regardless of the setting of the
CHARSET directive.
The maximum record size for SYSIN is 80 characters, and for SYSOUT 132
characters. Their names 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.
See also:.
ACCEPT statement, DISPLAY statement, EXHIBIT statement, TRACE directive
TABLESEGCROSS
Makes the Compiler assume that a table defined as not crossing a segment
boundary might cross a segment boundary.
Syntax:.
Parameters:.
None
Default:.
NOTABLESEGCROSS
Phase:.
Generate
Environment:.
16-bit
$SET:.
Initial
Dependencies:.
TABLESEGCROSS sets NOBOUNDOPT at end. Set to NOTABLESEGCROSS at end by
BOUND or CHECK.
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
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.
Syntax:.
Parameters:.
processor-id Identifies the processor
Default:.
TARGET"86"
Phase:.
Generate
Environment:.
16-bit
$SET:.
Initial
Remarks:.
The possible values of processor-id are:
86 The code must execute on all 8086, 8088, 80186, 80286, and
80386 processors.
286 The code can include instructions available only on the
80186, 80188, 80286, and 80386 processors.
386-16 The code can include instructions available only in 16-bit
mode on the 80386 processor.
386-32 As for 386-16 except, under certain circumstances, the code
might include some instructions which use 32-bit registers.
Note that 80386 includes Intel 80486 processors.
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.
Syntax:.
Parameters:.
None
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.
Syntax:.
Parameters:.
None
Default:.
TIME
Phase:.
Syntax check
Environment:.
All
$SET:.
No
Remarks:.
This directive has no effect if NODATE is specified.
See also:.
DATE
TRACE
Turns on READY TRACE and RESET TRACE.
Syntax:.
Parameters:.
None
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.
TRICKLE
Stops the Compiler producing optimizations which assume that the program
follows the rules of ANSI Standard COBOL for PERFORM statements.
Syntax:.
Parameters:.
None
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
TRICKLECHECK
Returns a run-time error message if trickling occurs in a program that
you want to generate with NOTRICKLE.
Syntax:.
Parameters:.
None
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 attempts to trickle, a
run-time error 199 (Operating System corrupted) is returned. Information
about the program name, segment number and offset within 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:.
TRICKLE, ASMLIST, SOURCEASM, PARAS
TRUNC
Specifies whether data being stored into a USAGE COMP item is to be
truncated to the size given by the item's PICTURE clause or to the
maximum size the item can hold.
Syntax:.
Parameters:.
method See
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 method are:
TRUNC Truncate in decimal to the number of digits given by
the PICTURE clause, on all stores into COMP items.
NOTRUNC Truncate in binary to the capacity of the allocated
storage, on all stores into COMP items.
TRUNC"ANSI" Truncate in decimal to the number of digits given by
the PICTURE clause, on non-arithmetic stores into
COMP items. On arithmetic statements that cause the
size error condition and that have no ON SIZE ERROR
phrase, the result is undefined.
TRUNCCOPY
Specifies whether to truncate the names of COPY-files.
Syntax:.
Parameters:.
integer The number of characters to truncate the name of the
COPY-file to. The maximum value that can be
specified is 255.
Default:.
NOTRUNCCOPY
Phase:.
Syntax check
Environment:.
All
$SET:.
Initial
USE
Makes the Compiler read directives from a file.
Syntax:.
Parameters:.
file-name A full file specification.
Default:.
Not set
Phase:.
Syntax check
Environment:.
All
$SET:.
Any
Remarks:.
USE is synonymous with DIRECTIVES. All rules that apply to DIRECTIVES
also apply to USE.
See also:.
DIRECTIVES
VERBOSE
Sends messages from the Compiler to the screen.
Syntax:.
Parameters:.
None
Default:.
VERBOSE (on DOS, Windows and OS/2) NOVERBOSE (on UNIX)
Phase:.
Syntax check
Environment:.
All
$SET:.
No
Remarks:.
When VERBOSE is specified, messages concerning accepted directives and
the size of code and data areas are displayed on the screen.
Dependencies:.
VERBOSE sets CONFIRM immediately
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 product.
Syntax:.
Parameters:.
integer The level of IBM VS COBOL II to be compatible with.
Default:.
NOVSC2
Phase:.
Syntax check
Environment:.
All
$SET:.
Initial
Dependencies:.
If integer &> 1, VSC2"integer" sets DBSPACE and DBCS"2" immediately.
VSC2 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 (AT END, ON SIZE ERROR, etc).
* The word ALSO in an EVALUATE statement can 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.x (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 ERROR) are not allowed.
* When used with FLAG"VSC2" it provides similar functionality
to VS COBOL II release 2.
3. VS COBOL II release 3.x (when compiled with its NOCMPR2 directive)
a. For complete compatibility in this instance, the directive
REMOVE"FUNCTION" also should be specified. However, for
mainframe compatibility, you are recommended not to use
FUNCTION as a user-defined word.
b. When used with FLAG"VSC2" it provides similar functionality
to VS COBOL II release 3.
4. Synonymous with VSC"3".
When VSC2 is specified without integer, VSC2"3" 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
WARNINGS
Specifies the lowest severity level of errors to report.
Syntax:.
Parameters:.
integer 1, 2, or 3.
Default:.
WARNING"1"
Phase:.
Syntax check
Environment:.
All
$SET:.
Any
Remarks:.
The possible values of integer are:
1 only those of level U, S, or E.
2 only those of level U, S, E, or W.
3 all levels, that is, levels U, S, E, W, and I.
With NOWARNING only those of level U or S are reported.
MPE/iX 5.0 Documentation