 | Configuring Your Keyboard |
|
IBM PC Character Set |  |
Your COBOL system
provides some support for ACUCOBOL windowing syntax that enables you to
draw lines and boxes on the terminal screen, and create virtual terminal
windows on a physical terminal. All ACCEPT and DISPLAY statements then act
within the current window (except for ACCEPT format 1, 2, or 3 statements,
DISPLAY format 1 statements, and DISPLAY WINDOW/LINE/BOX statements). The
syntax also enables underlying displays to be kept and restored.
Your COBOL system includes the following syntax to support windowing:
-
BEFORE TIME
phrase in ACCEPT statement
Format 5 of the ACCEPT statement has the BEFORE TIME phrase, which
enables you to specify a timeout period. If the user does not enter data during
this period, the statement is teminated automatically.
- DISPLAY WINDOW
DISPLAY WINDOW creates a terminal window (a rectangular region of
the screen) and makes it the current window. This is like a virtual terminal,
in which screen positions used by subsequent ACCEPT/DISPLAY statements are
relative to the top left corner of the window.
- DISPLAY LINE
DISPLAY LINE enables you to draw lines on the terminal (real or
virtual). The best mode available on the terminal is used automatically. Used
with the DISPLAY BOX statement, the DISPLAY LINE statement enables you to draw
forms on the terminal.
- DISPLAY BOX
DISPLAY BOX enables you to draw boxes on the terminal. The best mode
available on the terminal is used automatically. Used with the DISPLAY LINE
statement, the DISPLAY BOX statement enables you to draw forms on the terminal.
- CLOSE WINDOW
CLOSE WINDOW removes a window. If you specify the window as being a
POP-UP window, the underlying display can be restored.
In order to use the windowing syntax, you must use the
PREPROCESS"window1" Compiler directive. See your
User's Guide for full
details on specifying Compiler directives.
You can specify this directive in one of two ways.
The PREPROCESS "window1" directive must be the last Compiler
directive apart from NOERRQ, AUTOCLOSE or COLOR. If an error is encountered,
the Compiler asks if you wish to continue, and waits for your response. In
order to disable this function, you must specify the NOERRQ directive after
PREPROCESS"window1".
The following sections give details of the windowing syntax enabled by
the PREPROCESS"window1" directive.
Format 5 of the ACCEPT statement as described in your
Language Reference
includes the phrase
BEFORE TIME time-out
General Rules
- The BEFORE TIME phrase allows you to automatically terminate an
ACCEPT statement after a certain amount of time has passed. The timeout value
specifies the time to wait in hundredths of a second. For example, "BEFORE
TIME 500" specifies a timer value of 5 seconds.
- The user must enter data to the ACCEPT statement before the timer
elapses. As soon as the user starts entering data, the timer is canceled and
the user may take as much time as desired to complete the entry. If the user
does not enter any data before the timer elapses, then the ACCEPT statement
terminates.
The CLOSE WINDOW statement closes the current video terminal window.
Format
CLOSE WINDOW window-save-area
Syntax Rules
window-save-area must be an elementary data item described with a PIC X(10)
clause. It must have been the object of a POP-UP AREA phrase in a DISPLAY
WINDOW statement.
General Rules
- The CLOSE WINDOW statement is used to remove popup windows created by
the POP-UP AREA option of the DISPLAY WINDOW statement.
window-save-area must have been the object of a POP-UP phrase of a DISPLAY
WINDOW statement that has been executed in this run-unit. Furthermore, since
that execution, it must not have been the object of a CLOSE WINDOW statement,
nor can it have been modified by any other statement. Violation of these rules
causes undefined results.
- The CLOSE WINDOW statement restores the contents of the terminal
screen that was in the active window when the corresponding DISPLAY WINDOW
statement executed. In other words, the window that was created by that DISPLAY
WINDOW statement is removed from the screen and replaced by the contents of the
screen which were under that popup window.
- The window that was active when the corresponding DISPLAY WINDOW
statement executed becomes the active window, thereby becoming the top window
and overlaying any other windows that might be present.
The current window is selected by closing windows identified by their
respective window-save-area data items, as in the following example:
If five popup windows are created, a, b, c, d
and e in that order:
- If
d is closed, c becomes current.
- If
b is then closed, a becomes current.
- If
e is subsequently closed, c becomes current again.
This section explains COBOL windowing, which provides three additional
formats of the DISPLAY verb for creating windows and drawing lines and boxes.
Other formats are described in your Language Reference.
Format 1
Format 2
Format 3
Syntax Rules
line-num is a numeric literal or data item that specifies the line
position on the terminal screen. It must be a non-negative integer.
col-num is a numeric literal or data item that specifies the column
position on the terminal screen. It must be a non-negative integer.
-
The LINE
and COLUMN phrases must specify a line or column on the physical screen.
length is a numeric literal or data item that specifies the
window-width, line-width or box-width in character positions. It must be a
non-negative integer.
height is a numeric literal or data item that specifies the number
of lines in the window, line or box. It must be a non-negative integer.
title is a non-numeric literal or alphanumeric data item.
save-area is an elementary data item described by a PIC X(10)
clause.
-
COLUMN and COL
are equivalent.
- REVERSE and REVERSED and REVERSE-VIDEO are equivalent.
- The COLOR phrase is
supported only when the
preprocessor directive COLOR is used. This adds support for existing non-Micro
Focus syntax.
- Exactly one of the SIZE or LINES phrases must be specified for a
Format 2 DISPLAY statement.
identifier-1, identifier-2, integer-1 and integer-2 must take a value in the range
0 through 7 as follows:
| 0 |
black |
| 1 |
blue |
| 2 |
green |
| 3 |
cyan |
| 4 |
red |
| 5 |
magenta |
| 6 |
brown or yellow |
| 7 |
white |
identifier-3 and integer-3 must take a value which is obtained by adding
together the appropriate values from the following:
Color |
Foreground |
Background |
| Black |
1 |
32 |
| Blue |
2 |
64 |
| Green |
3 |
96 |
| Cyan |
4 |
128 |
| Red |
5 |
160 |
| Magenta |
6 |
192 |
| Brown |
7 |
224 |
| White |
8 |
25 |
Note: The foreground color values for use with the
COLOR phrase are
different from the standard Micro Focus color values for FOREGROUND-COLOR,
BACKGROUND-COLOR and so on.
|
In addition you can specify the following video attributes with the
following values:
| Reverse video |
1024 |
| Low intensity |
2048 |
| High intensity |
4096 |
| Underline |
8192 |
| Blink |
16384 |
- If a COLOR phrase is present at the same time as
FOREGROUND-COLOR and/or BACKGROUND-COLOR, then the colors defined in the COLOR
phrase are ignored, but
any non-color attributes are actioned (where appropriate).
Format
1 (DISPLAY WINDOW)
- The DISPLAY WINDOW statement creates and makes current a terminal
window. The terminal window is a rectangular region of your screen. Any ACCEPT
or DISPLAY statements (apart from another DISPLAY WINDOW/LINE/BOX or a Format
1, 2 or 3 ACCEPT or Format 1 DISPLAY as described in your
Language Reference) affect
only the current window. Furthermore, line and column numbers for all ACCEPT
and DISPLAY statements (apart from another DISPLAY WINDOW/LINE/BOX or a Format
1, 2 or 3 ACCEPT or Format 1 DISPLAY as described in your
Language Reference) are
computed from the upper left hand corner of the current window. That is, the
current window defines a virtual terminal screen which occupies some area of
your physical screen.
- The initial window is set to the entire screen.
- The only way to change the current window is with another DISPLAY
WINDOW statement or with the CLOSE WINDOW statement.
- The LINE NUMBER phrase sets the top line of the window. Line number
one refers to the top line of the screen. Line numbers are relative to the
screen, and not to the current window.
- If the LINE NUMBER phrase is not specified, is specified as zero, or
is off the physical screen, the top line of the screen is used.
- The COLUMN NUMBER phrase sets the left-most column of the window.
Column number one refers to the left side of the screen. Column numbers are
relative to the screen, and not to the current window.
- If the COLUMN NUMBER phrase is not specified, is specified as zero,
or is off the physical screen, column number one is used.
- The SIZE phrase sets the number of columns the window contains. If
this causes the window to extend past the right edge of the screen, the
window's width extends off the screen.
- If the SIZE phrase is not specified or is specified as zero, the
window extends to the right edge of the screen.
- The LINES phrase sets the number of rows the window contains. If this
causes the window to extend past the bottom of the screen, the window extends
off the screen.
- If the LINES phrase is not specified or is specified as zero, the
window extends to the bottom edge of the screen.
- When the ERASE phrase is specified, the window is cleared immediately
after it is created. Otherwise the window's contents are not changed. Clearing
a window sets it to spaces.
- The BOXED phrase causes a box to be drawn around the new window. The
box is drawn outside the window. Any portions of the box that lie off the
screen are not drawn.
- The terminal's line drawing set is used to draw the box. If the
terminal does not have a line drawing set, equivalent ASCII characters are
used. If the POP-UP phrase is also specified, the box overlays any other boxes
on the screen. If this phrase is not specified, the box drawn is attached to
any other boxes it intersects. When a boxed non-popup window intersects a boxed
popup window, if the popup window is created first, when it is closed the
points where the two window boxes intersected is not redrawn. That is,
intersection characters remain even though there is no longer an intersection.
- The ERASE phrase is implied by the BOXED phrase.
- The REVERSED phrase exchanges the window's foreground and background
colors. This affects every ACCEPT and DISPLAY statement in the new window.
- The REVERSED phrase implies the ERASE phrase. This usually causes the
entire window to be set to reverse video spaces when it is initially created.
-
The SHADOW
phrase causes the window to appear to float over the screen giving a
three-dimensional effect.
-
If the color
value for either foreground or background is set to 0 in the COLOR field, then
the corresponding color of the default system attribute is used.
- The TITLE phrase causes the title to be printed in the window's
border. This has its effect only if the BOXED phrase is also specified.
- Titles can be placed in one of six positions in the border region:
top left, top center, top right, bottom left, bottom center and bottom right.
If TOP or BOTTOM is not specified, TOP is used. If LEFT, CENTERED or RIGHT is
not specified, CENTERED is used.
-
The NO SCROLL
phrase is treated as documentary only; the Windows preprocessor displays a
message confirming this.
-
The NO WRAP
phrase is treated as documentary only; the Windows preprocessor displays a
message confirming this.
- The POP-UP AREA phrase causes your COBOL system to save system
information prior to creating the new window. This information can be used by
the CLOSE WINDOW statement to subsequently remove the new window and restore
the underlying windows. This gives a popup window.
- The
save-area data item is filled in with system information. This data
item must not be subsequently modified in any way or results are undefined. It
can be referenced in a CLOSE WINDOW statement to restore an earlier window to
the screen and re-establish that window as the current window.
Format
2 (DISPLAY LINE)
- The DISPLAY LINE statement enables you to draw vertical and
horizontal lines in a machine- and terminal-independent manner. The lines are
drawn using the best mode available on the display device. Used together with
the DISPLAY BOX statement, this provides the ability to draw forms on your
screen. The DISPLAY LINE statement does not affect the positioning of full
screen ACCEPT and DISPLAY statements.
- Lines are drawn so that when they intersect other lines on the
screen, the appropriate intersection character is used. This is done so that
when the end of a line intersects another line, the appropriate corner or
three-way intersection is used.
- If the SIZE phrase is specified, the line drawn is horizontal. The
value of
length gives the size of the line in screen columns. If the LINES
phrase is used instead, the line drawn is a vertical line and height describes
the number of screen rows to use.
- Lines never wrap around or cause scrolling. If the LINES or SIZE
phrase would cause the line to leave the current window, the line is truncated
at the edge of the window. If LINES or SIZE is zero, no line is drawn.
- The value of
line-num gives the starting row of the line. The value of
col-num gives the starting column. Lines are always drawn to the right or
downward as appropriate. line-num and col-num must specify a position that is
contained in the current window.
- If the LINE NUMBER or COLUMN NUMBER phrases specify a point outside
the physical screen, that is,
line-num = 0 or 24 (or your screen's maximum), or
col-num = 0 or > 80, no line is drawn.
- The TITLE phrase has effect only when drawing horizontal lines. When
specified,
title-string is printed in part of the line.
- The title can be printed near the right side, near the left side or
in the center of the line depending on the RIGHT, LEFT or CENTERED phrase
specified. If none is specified, CENTERED is used.
- The REVERSE phrase exchanges the foreground and background color of
the line.
Format 3
(DISPLAY BOX)
- The DISPLAY BOX statement enables you to draw a box in a machine- and
terminal-independent manner. The boxes are drawn using the best mode available
on the display device. If the lines used in drawing a box intersect other lines
already present on the screen, the appropriate intersection characters are
used. The DISPLAY BOX statement does not affect the positioning of full screen
ACCEPT and DISPLAY statements.
- The location of the box is specified by providing the location of the
upper-left corner. The size of the box is specified by providing a height and a
width.
- If the LINE NUMBER or COLUMN NUMBER phrases specify a point outside
the physical screen no box is drawn.
- The SIZE phrase specifies the width of the box. The LINES phrase
specifies its height. If the SIZE phrase is not specified, or zero, or such
that the box would extend beyond the physical screen or the edge of the window,
the box extends to the right edge of the current window. If the LINES phrase is
not specified, or zero, or such that the box would extend beyond the physical
screen, the box extends to the bottom of the current window.
- The REVERSE phrase operates in the same manner as it does for a
DISPLAY WINDOW statement.
- The TITLE phrase operates in the same manner as it does for the
DISPLAY WINDOW statement.
- This feature is not guaranteed to be intermediate code compatible, so
you might need to recompile your source code between product releases.
- When
using the ACCEPT or DISPLAY statements with this new windowing syntax, you must
include the AT LINE NUMBER syntax (see your Language Reference) or items do not appear in
the windows.
- You
should not use cobprintf() with these DISPLAY statements.
- You
should not use COPY REPLACING or REPLACE statements.
- The
following reserved words have been introduced by the windowing syntax, so you
should avoid specifying them as user-defined words:
BOX
BOXED
CENTERED
COLOR (if COLOR directive
used)
POP-UP
SCROLL
SHADOW
WINDOW
WRAP
- You should use only the ACCEPT and DISPLAY statements documented in
your Language Reference
with this windowing syntax.
- When
using windowing syntax, the ANS85 Compiler directive is implied. You must not
unset this directive either explicitly or implicitly.
- Alphanumeric literals must not be continued over the end of any line
which includes a windowing statement.
- Some syntax errors, for example, spelling PROCEDURE DIVISION
incorrectly, are flagged, but might result in spurious error messages for
following source lines.
- Windowing syntax errors are serious errors, but are flagged in the
form:
xnnn-P*******
- The -P cob flag should not be
used with windowing syntax . You should instead use "-C list".
- Column 73 must
not be used within source programs which use windowing syntax, as this column
is always treated as being set to a space character.
- The Compiler asks if you wish to continue after any error occurs. You
can disable this function by using the NOERRQ directive. You should not,
however, use the NOERRQ directive when compiling from within the Development
Environment.
If no error occurred, or if an error occurred but you replied
"no" to the question "do you wish to continue", the
Compiler returns a zero error return-code.
- Each of the following statements must appear on a line by itself:
DISPLAY WINDOW
DISPLAY BOX
DISPLAY LINE
CLOSE WINDOW
EXIT PROGRAM
- The windowing subsystem is initialized automatically upon
encountering the first windowing statement.
- If an
application switches between using windowing syntax and other types of
Accept/Display syntax, it must close down the windowing system completely
before starting to use other types of Accept/Display syntax; otherwise the
ACCEPT and DISPLAY statements may not have the desired effects.
You can create a subroutine to explicitly close the windowing system
by compiling the following subprogram:
$set preprocess "window1" autoclose
procedure division
para-1.
exit program.
You then call this subprogram before switching to another type of
Accept/Display syntax. The AUTOCLOSE preprocessor directive causes the EXIT
PROGRAM statement to close down the windowing system before exiting the
subprogram. The windowing subsystem is reinitialized upon encountering another
windowing statement. Each time the windowing subsystem initializes, the
background screen and contents are redisplayed.
- When a window is active, or has been active in the run-unit, use of
the DISPLAY SPACES UPON CRT statement clears the window to spaces but leaves
attributes unchanged.
The following errors might be encountered during preprocessing.
Unexpected numeric literal:
Unexpected alphanumeric literal:
Unsupported keyword or noiseword:
Unrecognized clause to DISPLAY WINDOW:
Unrecognized clause to DISPLAY LINE:
Unrecognized clause to DISPLAY BOX:
Unrecognized clause to ACCEPT FROM SCREEN:
This keyword has already been used:
This keyword conflicts with another:
This reserved word is used incorrectly:
Wrongly formed or ordered clause with keyword:
Error during preprocessing - no further details
Unknown COPY file specified
WINDOW1 preprocessor cannot handle free format
SCROLL/WRAP clause processed as comment
The edit/compile/animate loop returns to an incorrect line within your
source program after returning an error.
When the first windowing statement in your program is encountered the
screen is redisplayed. This is expected behavior and does not affect your
program in any way.
Two windowing and box drawing syntax sample programs, mfwnote.cbl
and mfwcalc.cbl, are included in this COBOL system. These can be found
using Infomgr. You can call both of these programs from an application program,
and you can also run them from the command line. The mfwnote.cbl program
implements a simple notepad which you can call from an application in order to
make notes, read or write notes to a file, or invoke the mfwcalc.cbl
program, which in turn implements a simple on-screen calculator and pastes the
results into the current note.
In order to run the demonstration
programs, transfer them to a working directory, and then compile them.
Enter:
cob -u mfwnote.cbl mfwcalc.cbl
When you have compiled the demonstration programs, you can run the
notepad demonstration. First ensure the run-time environment is set correctly:
the TERM environment variable must be set to reference the correct terminfo
entry for your terminal, and the stty settings must be able to handle 8-bit
characters if necessary. The demonstration uses line drawing characters if
supported, as well as normal video attributes and function keys. If special
line drawing characters are not available, suitable ASCII characters are used
instead to provide an approximate rendition of boxes and lines. Then, enter:
cobrun mfwnote
A window appears on your screen, into which you can enter notes using
the data keys, Enter and the cursor keys (<left-arrow>,
<right-arrow>, <up-arrow>,
<down-arrow>). To view the menu, press F1. From this you
can use the cursor keys or the letters to select an option from Escape,
Load, Save or Calculator. If you choose Calculator, a window representing a
calculator appears.
You can run the calculator demonstration without the notepad
demonstration by entering:
cobrun mfwcalc
Note that the calculator shows zero prior to your entering each number.
Enter the following:
256 * 4 - 8 =
The result of (256 x 4) - 8 = 1016 is displayed. Press Escape,
and the calculator window disappears and 1016 is entered into the note.
If you press Escape again, the note also disappears.
Copyright © 2002 Micro Focus International Limited. All rights reserved.
This document and the proprietary marks and names
used herein are protected by international law.
 | Configuring Your Keyboard |
|
IBM PC Character Set |  |