Routine ID: Z308 | |
---|---|
Author(s): E. Perotto | Library: KERNLIB, IBM VM/CMS only |
Submitter: | Submitted: 22.02.1988 |
Language: IBM Assembler | Revised: |
OBSOLETE
Please note that this routine has been obsoleted in CNL 219. Users are
advised not to use it any longer and to replace it in older programs.
No maintenance for it will take place and it will eventually disappear.
Suggested replacement: None
These routines write a character string anywhere on a full screen 3270 terminal, or any VT100 compatible terminal attached to a 7171 or Series/1. The screen may also be formatted into fields preceded by attributes, to intensify (highlight), protect, or hide the field (like in the password entry screen of CP). The extended attributes (colors on the 3278) are not supported, in this case the four default colors discriminate protected/unprotected and normal/highlighted fields.
Structure:
FUNCTION subprograms
User Entry Names: IOSWRT, IOSRD, IOSDIM
Usage:
The variable IRC and the functions IOSWRT, IOSRD and IOSFLD are of type INTEGER.
IRC = IOSWRT() IRC = IOSWRT('CLEAR')Clears the screen of the 3270 terminal at the time of next write to screen, no actual I/O takes place immediately. The reason for this is that CP leaves control of the terminal upon an ERASE/WRITE command (executed CCW) by the user program, so that the screen should be cleared and written to with the same command.
IRC = IOSWRT(LINE,LENGTH,LINENO,NCOL) IRC = IOSWRT(LINE,LENGTH,LINENO,NCOL,IATTR) IRC = IOSWRT(LINE,LENGTH,LINENO,NCOL,IATTR,0) IRC = IOSWRT(LINE,LENGTH,LINENO,NCOL,IATTR,IBUF)Puts a line of text in a buffer for subsequent writing to screen, in this way a panel can be built in (conditional) steps. (The call is sensitive to the number of parameters passed.)
Maximum limit is the end of the buffer.
A string can occupy the whole screen, wrapping from the end to the
beginning of the screen. The last 8 positions at the bottom right
corner are not visible, being overwritten by CP with
'CERNVM '.
A field is started empty if the attribute is present. An empty
(unprotected) field may be used for input.
The cursor is positioned on the screen as indicated by the following parameters.
(HIDE) The field will not be displayed,
like the password input field in the CP LOGON screen;
( HIGHLIGHT) The field will be intensified and
selector pen detectable;
( SELPEN) The field will be selector pen
detectable only;
( Reserved) Should be set to zero;
( MDT) Modified Data Tag, when set the field will be included in
the next READ MODIFIED command executed. This bit
is set when something is put in the field by the keyboard, but can be
set under program control to include default responses which will be
displayed on the screen, and read back even if the content has not been
modified by the keyboard.
The attribute is the logical OR of all the values.
If IBUF (or the first element of the array) is zero, an internal array is used (around 3000 bytes, the rest of the 4K memory page). If this parameter is missing altogether, an immediate write to screen is performed, useful to fill up the voids of the already displayed mask with variable information, defaults in input fields, or old inputs which may be modified later; in this case the internal buffer is used, destroying its contents; so the internal buffer must be used before an immediate write is performed.
IRC = IOSWRT(IBUF) IRC = IOSWRT(0) IRC = IOSWRT('WRITE')This sequence writes the assembled mask to screen, from the user-supplied buffer in the first case, from the internal buffer in the latter two cases. The buffer remains intact and can be used repeatedly. If , the screen content is lost, so it can be rewritten. Successive masks may be overlapped on the screen until it is cleared.
IRC = IOSRD(ECB)Sets the Attention Interrupt trap, which tells the program when the ENTER key or any PF-key has been hit, without the need to wait.
IRC = IOSRD(BUFF,LENGTH,LINENO,NCOL)Starts a synchronous full-screen read and collects all the data from the modified fields in BUFF, or in an internal buffer.
CALL IOSFLD(LINE,LENGTH,LINENO,NCOL)Gives the modified fields taken by the last IOSRD call, one by one with their individual lengths and positions on the screen.