Compaq COBOL
Reference Manual
6.8.10 DISPLAY
Function
The DISPLAY statement transfers low-volume data from the program to the
default system output device or to the object of a mnemonic-name. The
WITH CONVERSION phrase in Format 1 contains a Compaq extension to the
DISPLAY statement. The Compaq extensions to Formats 2 and 3 are
COBOL language additions that facilitate video forms design and
data handling.
Format 4 sets a program variable to the current command line argument
number (to read with a Format 7 ACCEPT), Format 5 sets the name of an
environment variable or system logical, and Format 6 sets the value of
an environment variable or system logical.
src-item
is a literal or the identifier of a data item. The literal can be any
figurative constant.
arg-position
is a literal or identifier that specifies the desired argument position
(on the run command line). It must be an unsigned integer.
argument-number
is a mnemonic name associated with ARGUMENT-NUMBER in the SPECIAL-NAMES
paragraph in the Environment Division, representing the current
argument position.
environment-name
is a mnemonic name associated with ENVIRONMENT-NAME in the
SPECIAL-NAMES paragraph in the Environment Division, representing the
name of an environment variable or system logical.
environment-value
is a mnemonic name associated with ENVIRONMENT-VALUE in the
SPECIAL-NAMES paragraph in the Environment Division, representing the
contents of the variable associated with the ENVIRONMENT-NAME.
envlog-name
references an alphanumeric data item, or is a nonnumeric literal.
envlog-value
references an alphanumeric data item, or is a nonnumeric literal.
output-dest
is a mnemonic-name defined in the SPECIAL-NAMES paragraph of the
Environment Division.
line-num
is a numeric literal that specifies a line position on the terminal
screen. line-num must be a positive integer. It cannot be zero.
line-id
is the identifier of a data item that provides a line position on the
terminal screen. It must be a positive integer; it cannot be zero.
plus-num
is a numeric literal that increments the current value for line or
column position, or that increments the value of line-id or
column-id. plus-num can be zero or a positive integer.
column-num
is a numeric literal that specifies a column position on the terminal
screen. column-num must be a positive integer. It cannot be
zero.
column-id
is the identifier of a data item that provides a column position on the
terminal screen. It must be a positive integer; it cannot be zero.
screen-name
is the name of a screen item defined in the SCREEN SECTION of the
program.
stment
is an imperative statement executed if an exception condition exists;
for Format 6, this means the name of the environment variable or
logical has not been set by DISPLAY, or not enough space can be
allocated to store the environment variable or logical.
stment2
is an imperative statement executed if the exception condition does not
exist.
Syntax Rules
All Formats
- In a DISPLAY statement, the number of src-item entries
cannot exceed 254.
- Each DISPLAY phrase can be specified only once for any
src-item.
Formats 1 and 2
- The WITH NO ADVANCING phrase can be specified only once per
DISPLAY statement. It must be specified last (or just preceding
END-DISPLAY, if used) if multiple src-item entries or options
are specified in the statement.
Format 1
- The UPON phrase can be specified only once per DISPLAY statement.
General Rules
Formats 1 and 2
- The UPON and WITH NO ADVANCING phrases apply to all instances of
src-item.
- All phrases other than UPON and WITH NO ADVANCING apply to the
immediately preceding src-item only.
- If there is a WITH NO ADVANCING phrase, the DISPLAY statement does
not transfer any device positioning information after the last
src-item value.
CONVERSION Phrase (Formats 1 and 2)
- The CONVERSION phrase allows you to display data in a field and
achieve data conversion, sign, and decimal point placement. How the
CONVERSION phrase affects data handling depends on the category of
src-item. (Numeric data can be described by any USAGE clause.)
-
Numeric items do not require the CONVERSION phrase to be displayed
correctly with conversion if you specify /DISPLAY_FORMATTED (on OpenVMS
Alpha) or
-display_formatted
(on Tru64 UNIX) when you compile. (For more information on the
qualifier, refer to the Compaq COBOL User Manual.)
- The CONVERSION phrase or the /DISPLAY_FORMATTED (OpenVMS Alpha)
qualifier displays nonnumeric items and numeric edited items without
change.
- The CONVERSION phrase or the /DISPLAY_FORMATTED (OpenVMS Alpha)
qualifier displays non-floating-point numeric items according to the
following rules:
- The size of the displayed field is determined from the PICTURE
character string.
- Leading zeroes are displayed only when they immediately precede a
decimal point.
- If the sign is negative, a minus sign (-) is displayed. If the sign
is positive, a space character is displayed. If the item is unsigned,
no sign position is displayed.
- Items with DISPLAY usage (for example, PIC 99, or PIC S99V99) are
displayed after including a space, when needed, for a decimal point or
sign or both.
If you specify the SIGN TRAILING SEPARATE clause for
the data item, the sign is displayed as a trailing sign. Otherwise, the
sign is displayed as a leading sign.
- Items other than DISPLAY (for example, PIC 99 COMP, or PIC S9V999
COMP SYNC) are displayed after conversion to DISPLAY usage SIGN LEADING.
-
Nonprinting numeric values are not human-readable on the terminal
display unless the CONVERSION phrase or the /DISPLAY_FORMATTED
qualifier (on OpenVMS Alpha) or
-display_formatted
(on Tru64 UNIX) is specified.
- On OpenVMS, the CONVERSION phrase or /DISPLAY_FORMATTED (OpenVMS
Alpha), or
-display_formatted
(on Tru64 UNIX), displays floating-point items as follows:
- The floating-point data item is converted from internal floating
point to E-notation representation. (E-notation consists of a mantissa
and, optionally, an exponent.)
The E-notation is described as
follows:
Size of mantissa
|
COMP-1 has 7 digits (F-floating, S-floating) plus decimal point and sign
COMP-2 has 15 digits (G-floating, T-floating) or 16 digits
(D-floating) plus decimal point and sign
|
Sign of mantissa
|
Sign shown only for negative, space if positive
|
Form of mantissa
|
d.dddddd for COMP-1
d.dddddddddddddd for COMP-2 (G-floating, T-floating)
d.ddddddddddddddd for COMP-2 (D-floating)
"." replaced by "," if DECIMAL POINT IS COMMA
|
Size of exponent
|
2 decimal digits for COMP-1 (F-floating, S-floating)
2 decimal digits for COMP-2 (D-floating)
3 decimal digits for COMP-2 (G-floating, T-floating)
|
Range of exponent
|
-38 to +38 (base 10) for COMP-1 (F-floating, S-floating)
-38 to +38 (base 10) for COMP-2 (D-floating)
-308 to +308 (base 10) for COMP-2 (G-floating, T-floating)
|
Form of exponent
|
E begins exponent sign shown for negative and positive; all digits
shown (for example, E+01)
|
- The size of the displayed field is 13 characters for COMP-1, and 22
characters for COMP-2. <>
- The CONVERSION phrase or the /DISPLAY_FORMATTED qualifier (on
OpenVMS Alpha) or
-display_formatted
(on Tru64 UNIX) displays floating-point items as follows:
- The floating-point data item is converted from internal floating
point to E-notation representation. (E-notation consists of a mantissa
and, optionally, an exponent.)
- The size of the displayed field is 13 characters for COMP-1 and 22
characters for COMP-2.
- On Tru64 UNIX systems, the E-notation is described as follows:
Size of mantissa
|
COMP-1 has 7 digits (plus decimal point and sign).
COMP-2 has 16 digits (plus decimal point and sign).
|
Sign of mantissa
|
Sign shown only for negative; space if positive.
|
Form of mantissa
|
d.dddddd for COMP-1.
d.ddddddddddddddd for COMP-2.
"." replaced by "," if DECIMAL POINT IS COMMA.
|
Size of exponent
|
3 decimal digits for COMP-1 and COMP-2.
|
Range of exponent
|
-308 to +308 (base 10) for COMP-1 and COMP-2.
|
Form of exponent
|
E begins exponent sign shown for negative and positive; both digits
shown (for example, E+01). <>
|
On OpenVMS Alpha systems, compiled with the appropriate option on
the /FLOAT qualifier, the E-notation is described as follows:
Size of mantissa
|
COMP-1 has 7 digits (F-floating, S-floating) plus decimal point and
sign.
COMP-2 has 15 digits (G-floating, T-floating) or 16 digits
(D-floating) plus decimal point and sign.
|
Sign of mantissa
|
Sign shown only for negative; space if positive.
|
Form of mantissa
|
d.dddddd for COMP-1 (F-floating, S-floating)
d.dddddddddddddd for COMP-2 (G-floating, T-floating.)
d.ddddddddddddddd for COMP-2 (D-floating).
"." replaced by "," if DECIMAL POINT IS COMMA.
|
Size of exponent
|
2 decimal digits for COMP-1 (F-floating, S-floating).
2 decimal digits for COMP-2 (D-floating).
3 decimal digits for COMP-2 (G-floating, T-floating).
|
Range of exponent
|
-38 to +38 (base 10) for COMP-1 (F-floating, S-floating).
-38 to +38 (base 10) for COMP-2 (D-floating).
-308 to +308 (base 10) for COMP-2 (G-floating, T-floating).
|
Form of exponent
|
E begins exponent sign shown for negative and positive; all digits
shown (for example, E+01). <>
|
Format 1
- The DISPLAY statement transfers data from each src-item
(in its order of appearance in the statement) to output-dest.
- No editing or conversion occurs during DISPLAY execution unless
there is an applicable WITH CONVERSION phrase.
- If src-item is a figurative constant, only one occurrence
is displayed.
- When there is more than one src-item, sending item size is
the sum of the src-item sizes.
- If there is no UPON phrase, the DISPLAY statement transfers data to
the default system output device.
- If there is no WITH NO ADVANCING phrase, the DISPLAY statement
transfers device positioning information. It resets the
output-dest position to the leftmost position on the next line.
- If DECIMAL POINT IS COMMA is specified, comma replacement occurs
upon display.
Format 2
- The presence of either the LINE NUMBER phrase or the COLUMN NUMBER
phrase implies NO ADVANCING; that is, no line feed or carriage return
is generated automatically following data output. The cursor remains on
the character position immediately following the position of the last
character displayed. This is the default starting position for the next
data item you input from or display upon the terminal.
- If you specify neither the LINE NUMBER phrase, the COLUMN NUMBER
phrase, nor the WITH NO ADVANCING phrase, data is output according to
Format 1 positioning rules for the DISPLAY statement. That is, a line
feed and carriage return are generated automatically following data
display.
LINE NUMBER Phrase (Format 2)
- The LINE NUMBER phrase positions the cursor on a specific line of
the video screen prior to displaying.
- If the LINE NUMBER phrase does not appear but the COLUMN NUMBER
phrase does, then data is displayed to the current specified column
position.
- If line-num or the value of line-id is greater
than the bottommost line position of the current screen, program
results are undefined.
- If you use line-id without its PLUS option, the line
position is the value of line-id.
- If you use line-id with its PLUS option, the line position
is the sum of plus-num and the value of line-id.
- If you use the PLUS option without line-id, the line
position is the sum of plus-num and the value of the current
line position.
- If you use the PLUS option, but you do not specify
plus-num, then PLUS 1 is implied.
- Data output results are undefined if your program generates a value
for line-id that is one of the following:
- Zero
- Negative
- Greater than the bottommost line position of the current screen
COLUMN NUMBER Phrase (Format 2)
- The COLUMN NUMBER phrase positions the cursor on a specific column
of the video screen.
- If the COLUMN NUMBER phrase does not appear but the LINE NUMBER
phrase does, then data is displayed to column 1 of the specified line
position.
- If you use column-id without its PLUS option, the column
position is the value of column-id.
- If you use column-id with its PLUS option, the column
position is the sum of plus-num and the value of
column-id.
- If you use the PLUS option without column-id, the column
position is the sum of plus-num and the value of the current
column position.
- If you use the PLUS option, but do not specify plus-num,
PLUS 1 is implied.
- Data output results are undefined if the program generates a value
for column position that is one of the following:
- Zero
- Negative
- Greater than the last column position on the screen
LINE NUMBER and COLUMN NUMBER Phrases (Format 3)
- The LINE NUMBER and COLUMN NUMBER phrases together give the
starting screen coordinates.
- The position of each screen item within the referenced
screen-name is offset from the LINE and COLUMN positions.
- If either LINE or COLUMN is not specified, the default value is 1.
ERASE Phrase (Format 2)
- The ERASE phrase erases all, or part, of a line (or screen) before
displaying data. You must specify SCREEN or LINE.
- If you use its TO END option, the ERASE phrase erases the line (or
screen) from the implied, or stated, cursor position to the end of the
line (or screen).
- If you do not use its TO END option, the ERASE phrase erases the
entire line (or screen).
BELL Phrase (Format 2)
- The BELL phrase rings the terminal bell before displaying data.
UNDERLINED Phrase (Format 2)
- The UNDERLINED phrase displays characters on the screen with the
underscore on character attribute.
BOLD Phrase (Format 2)
- The BOLD phrase displays characters on the screen with the bold
on character attribute. The BOLD attribute is only detectable when
any of the following conditions are true:
- Nonspace characters are displayed.
- The underlined or reversed attributes are specified.
- The terminal screen is set to light background.
BLINKING Phrase (Format 2)
- The BLINKING phrase displays characters on the screen with the
blink on character attribute. The BLINKING attribute is only
detectable when any of the following conditions are true:
- Nonspace characters are displayed.
- The underlined or reversed attributes are specified.
- The terminal screen is set to light background.
REVERSED Phrase (Format 2)
- The REVERSED phrase displays characters on the screen with the
reverse video on character attribute.
Formats 4, 5, and 6
- When a Format 4 DISPLAY statement is specified, the value stored in
arg-position is moved to argument-number. This
updates the current argument position indicator for the command line
(see ARGUMENT-NUMBER in the SPECIAL-NAMES paragraph in Chapter 4).
This points to the selected argument to be read by a Format 7 ACCEPT
statement.
- arg-position must be in the range 0 to 99 and can refer to
arguments, switches, and flags that appear on the run command line of
the COBOL program. When the current argument position indicator
is zero, it refers to the zeroth command line argument, in other words
the command that invoked the COBOL program.
- When a Format 5 DISPLAY statement is specified, the value stored in
envlog-name is moved to environment-name (see
ENVIRONMENT-NAME in the SPECIAL-NAMES paragraph in Chapter 4). The
updated value of environment-name becomes the environment
variable or logical to be accessed by subsequent Format 6 DISPLAY and
Format 8 ACCEPT statements.
- environment-value, when used with a Format 6 DISPLAY,
receives the value stored in envlog-value. The environment
variable or logical is the one named by a Format 5 DISPLAY statement
(see ENVIRONMENT-VALUE in the SPECIAL-NAMES paragraph in Chapter 4).
- stment is executed if the name of the environment variable
or logical has not been set by a Format 5 DISPLAY, or if the
environment variable or logical does not exist.
- stment2 is executed if the exception condition does not
exist.
Technical Notes
Format 1
- On OpenVMS, the DISPLAY statement transfers data through the I/O
system (RMS), using the Variable with Fixed-Length Control (VFC)
format. <>
- A DISPLAY statement without the UPON phrase transfers data to the
default output device (the terminal). To transfer data to a file on
Tru64 UNIX systems, the environment variable COBOL_OUTPUT can be
used to specify a text file containing output data. To transfer data to
a file on OpenVMS systems the logical COB$OUTPUT or SYS$OUTPUT
can be used to specify a text file containing output data.
Alternatively, output device redirection (>) can be used on
Tru64 UNIX systems to name an output file.
- A DISPLAY statement that includes the UPON phrase transfers data
to the file-device-name associated with the SPECIAL-NAMES
paragraph description of output-dest.
- Because the object of a logical name (on OpenVMS systems) is
not necessarily a device, no open mode is implied. As a result,
output-dest can be associated with any device-name in
the SPECIAL-NAMES paragraph. For example, output-dest can
refer to PAPER-TAPE-READER as well as PAPER-TAPE-PUNCH.
Format 2
- Format 2 is a Compaq extension to the standard COBOL use
of the DISPLAY statement.
- The Compaq extensions to the ACCEPT and DISPLAY statements support
data input and display only on the VT100 and later terminal types,
including emulators of these terminal types.
- The UNDERLINED, BOLD, BLINKING, and REVERSED character attributes
are not available on VT100 terminals without the advanced video option.
- You should display data only on fields that are within screen
boundaries. That is, the terminal operator should see all the
characters displayed. If data is displayed on fields that position the
cursor outside screen boundaries, it does not result in an error
condition. However, your program might not produce the results you
expect.
Values for screen boundaries depend on the terminal type
and the column mode in which it is operating. Refer to the appropriate
terminal user's guide for more information on screen boundaries.
- Line positioning can be a one- or two-step process. The first (or
only) step is absolute positioning, which is using the value of
line-num or line-id to determine the line position.
The second step is relative positioning, which is adding the value of
plus-num to line-id to determine the line position.
The following sample statements would produce undefined results
because they use absolute line positioning to reach a line beyond the
bottom of the screen (assume ITEMB has a value of 25):
DISPLAY SRC-EXAMPLE AT LINE NUMBER 25.
DISPLAY SRC-EXAMPLE AT LINE NUMBER ITEMB.
DISPLAY SRC-EXAMPLE AT LINE NUMBER ITEMB PLUS 0.
|
The last DISPLAY statement illustrates that use of the PLUS option
does not necessarily mean that relative positioning will always occur.
When you specify line-id, absolute line positioning always
occurs before a PLUS option can execute. In this case, line-id
(ITEMB) is specified, and it has a value of 25. Therefore, the line
position is outside the screen boundary before the PLUS option
executes, and program results are undefined.
- When there is more than one src-item, each specific
src-item is displayed, after application of any phrases
specific to that src-item, in order of occurrence in the
DISPLAY statement.
Formats 2 and 3
- On OpenVMS, control sequences from SMGTERMS.TXT are used to
accomplish cursor positioning, screen erasure, and video attributes.
Refer to the Support for Non-Compaq Terminals chapter of the OpenVMS
RTL Screen Management (SMG$) Manual if you wish to customize
SMGTERMS.TXT. <>
All Formats
- Compaq COBOL parses the contents of the data being displayed to
determine how they affect the terminal and the cursor position. The
parsing of control sequences is performed according to the DEC STD
138-0 Registry of Control Functions for Character Imaging Devices.
Compaq COBOL does not modify the control sequences in any way; if an
invalid control sequence is found, Compaq COBOL does not attempt to
correct the sequence.
Therefore when you display an escape or
control sequence, the entire sequence must be displayed in one
operation:
- If you use DISPLAY Format 1, the complete sequence must be
contained in one or more src-items within one DISPLAY
statement.
- If you use DISPLAY Format 2, the complete sequence must be
contained in one src-item.
- If you use DISPLAY Format 3, the complete sequence must be
contained within one elementary screen item.
-
A DISPLAY statement used in an ACCEPT [NOT] ON EXCEPTION statement must
be terminated (with, for example END-DISPLAY) on Alpha systems. If you
are concerned with the different VAX behavior, refer to the appendix on
compatibility in the Compaq COBOL User Manual.
Additional References
Examples
In the example results, the character "s" represents a space.
The examples assume a maximum screen size of 24 lines. They also assume
the following Environment and Data Division entries:
SPECIAL-NAMES.
LINE-PRINTER IS ERR-REPORTER.
01 ITEMA PIC X(6) VALUE "ITEMS ".
01 ITEMB PIC X(8) VALUE "VALID".
01 ITEMC PIC X(5) VALUE "TODAY".
01 ITEMD PIC 99 VALUE 2.
01 ITEME PIC X(10) VALUE "MONDAY".
|
RESULT:
1. DISPLAY ITEMC. TODAY
|
2. DISPLAY ITEMD UPON ERR-REPORTER. 02
|
3. DISPLAY ITEMD ITEMA "ARE" ITEMB. 02ITEMSsAREVALIDsss
|
4. DISPLAY ITEMD SPACE ITEMA "AREs" ITEMB. 02sITEMSsAREsVALIDsss
|
5. DISPLAY ITEMC "sISs" NO ADVANCING.
DISPLAY ITEME.
DISPLAY ITEME.
TODAYsISsMONDAYssss
MONDAYssss
|
The following program uses Compaq DISPLAY extensions (Format 2).
IDENTIFICATION DIVISION.
PROGRAM-ID. EXAMPLES.
ENVIRONMENT DIVISION.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 ITEMF COMP-1.
01 ITEMG COMP-2 .
01 ITEMH PIC S9(9) COMP VALUE IS 123456789.
01 ITEMI PIC S9(9) COMP-3.
PROCEDURE DIVISION.
01.
MOVE 101.000000000 TO ITEMF.
MOVE .109999999 TO ITEMG.
MOVE 123456789 TO ITEMI.
DISPLAY
ITEMF WITH CONVERSION LINE PLUS
ITEMG WITH CONVERSION LINE PLUS
ITEMH WITH CONVERSION LINE PLUS
ITEMI WITH CONVERSION LINE PLUS
.
.
.
|
The Compaq COBOL User Manual contains additional examples using Compaq extensions
to the DISPLAY statement. Refer to the chapters that describe screen
handling, command line variables, environment variables and logicals.