Dynamic Screen Utility (dscreen) Tips


Contents

About this document
Description of the utility
Syntax
Using dscreen
Dynamic screen assignment
dsinfo dscreen information file

About this document

This document describes the use of the Dynamic Screen Utility (the dscreen command) in AIX Versions 4.x.x. This utility works with all 128-port and ISA/PCI 8-port adapters. It is
mainly intended for use with terminals that have two or more pages of screen memory; for example, the IBM 3151 display with the Expansion Cartridge. It describes the utility and its options and includes the sections on dynamic screen assignment and the dsinfo information file.

NOTE: The dscreen utility will only support all 128-port adapters and the ISA/PCI 8-port adapters. The error message dscreen: not supported on this terminal connection will display if it is used on a terminal that is not attached to one of these adapters.


Description of the utility

The dynamic screen utility, or dscreen command, is a utility that allows a single physical terminal to be connected to several virtual terminal sessions (screens) at one time.

It is mainly intended for use with terminals that have two or more pages of screen memory, for example, the IBM 3151 display with the Cartridge for Expansion (IBM part number 64f9314). With such terminals, switching between virtual screens also switches between physical terminal screen pages, allowing each virtual screen's image to be saved and restored. On terminals without multiple pages of screen memory, dscreen can still be used to switch among virtual screen sessions, although the appearance of the screen will not be maintained.

NOTE: For full support of dscreen, the terminal must be able to switch internal screen pages on command and must remember the cursor position for each page. While dscreen will work on both smart and dumb terminals, screen images are not saved during screen changes on dumb terminals.


Syntax

The syntax for the dscreen command is:

	dscreen  [-i  infofile] [-t termtype]

Options

-i infofile

Configuration information is read from the first of the following locations that is specified:

In this document, dsinfo will refer to any of the above and /usr/lbin/tty/dsinfo will specifically refer to that file.

The default dsinfo file terminal type assumes a single page of screen memory; therefore, if a terminal supports additional pages of screen memory, the dsinfo file must be customized to use the appropriate sequence for page memory control. Consult the appropriate terminal reference guide for the specific control sequence.

If a different set of keys needs to be used, for example, if the default keys conflict with a software application, you can modify the /usr/lbin/tty/dsinfo file or specify an alternate file with -i infofile or DSINFO.

-t termtype

The termtype field is used to select which entry in dsinfo is used to describe the terminal. The optional -t termtype parameter will override the TERM environment variable. Terminal type entries in the dsinfo file will resemble the following IBM 3151 values:

# The Cartridge for Expansion (pn: 64F9314) needed for this entry 
ibm3151|3151|IBM 3151, 
     dsks=\E!a 
|Shift-F1|,                # Selects first  screen 
     dsks=\E!b 
|Shift-F2|,                # Selects second screen 
     dsks=\E!c 
|Shift-F3|,                # Selects third  screen 
     dsks=\E!d 
|Shift-F4|,                # Selects fourth screen 
     dskc=\E!e 
|Shift-F5|,                # Creates a new screen 
     dske=\E!f 
|Shift-F6|\E pA\EH\EJ,     # Go to screen 1 and end 
     dskl=\E!g 
|Shift-F7|,                # Lists function keys (help) 
     dskp=\E!h 
|Shift-F8|,                # Go to previous screen 
     dskq=\E!i 
|Shift-F9|\E pA\EH\EJ,     # Go to screen 1 and quit 
     dsp=\E pA|\EH\EJ,                     # Terminal sequence for screen 1 
     dsp=\E pB|\EH\EJ,                     # Terminal sequence for screen 2 
     dsp=\E pC|\EH\EJ,                     # Terminal sequence for screen 3 
     dsp=\E pD|\EH\EJ,                     # Terminal sequence for screen 4 
     dst=10,                               # Allow 1 second timeout buffer 
Figure: dsinfo Example - IBM 3151

Using dscreen

When dscreen is run, it starts a virtual screen. Some of the keys on the terminal keyboard will not be passed through to the virtual screen; instead, dscreen will intercept these keys and perform certain actions when they are pressed. The actions include:

Select       select a specified screen
Block        block all input and output
New           start a new screen
End            end dscreen (exit code 0)
Quit          quit dscreen (exit code 1)
Previous   switch to a previous screen
List            list the dscreen keys and what they do

Which keys perform the preceding functions depends on the terminal and the terminal description in the dsinfo file.

NOTES:

  1. Do not switch screens when the current screen is being written to; an escape sequence may be truncated and may leave the terminal in an unknown state.
  2. Some terminal displays may save the cursor position for individual screens but may not save other states such as insert mode, inverse video, and so on. If this is the case, users should avoid these modes while switching screens.

Select

When a new virtual screen is created, it is assigned a Select key. Pressing the Select key causes the following actions:

Once all of the Select keys defined in the dsinfo file have virtual screens assigned to them, no more screens may be created. Individual screen sessions end when the original shell process exits. This frees the associated Select key for use with another virtual screen. The dscreen utility is ended when there are no more active screens.

Block

Block keys are used to stop output in a fashion similar to Ctrl-S when using IXON flow control. The purpose of these keys is to allow for transparently setting up terminal sessions on two computers using a terminal that has two serial ports.

New

When the New screen key is pressed, dscreen creates a new logical screen and assigns it to one of the Select keys. Each new screen requires:

If any of these are not available, the new screen operation will fail and print a message indicating the reason for the failure.

End and Quit

When the End key is pressed, dscreen will do the following:

When the Quit key is pressed, dscreen will perform the same actions but will exit with status of 1.

Previous

When the Previous key is pressed, dscreen will switch the terminal to the screen that was last displayed.

List

When the List key is pressed, dscreen will display a list of keys and their actions on the terminal display. Only those keys recognized by dscreen will be shown. When a new screen is created using dscreen, the message Press <KEY> for help is displayed on the terminal where KEY is the name of the List key. The message is only displayed if there is a List key defined.


Dynamic screen assignment

The terminal description entry in the dsinfo file will have the same number of screen selection keys as the terminal has physical screen pages. If more screen selection keys are defined than the number of physical screen pages, dscreen will dynamically assign physical screen pages to virtual screens.

When a virtual screen is selected that does not have an associated page of screen memory, dscreen assigns the least recently used physical screen to the virtual screen. Depending on the specifications maintained in the dsinfo description file, an indication that the physical screen is connected to a different virtual screen may be noticeable. For example, the screen may be cleared.


dsinfo dscreen information file

Description

dsinfo is a database of terminal descriptions used by the dscreen multiple screen utility. The file contains the following information:

Entry format for dsinfo

Entries in the dsinfo file consist of comma-separated fields. The first field is a list of alternate names for the terminal. Each name is separated by a pipe (|) character. The remaining fields are string types and value strings, in the format string_type=value_string, describing the capabilities of the terminal to the dscreen utility. Within these strings, the following escape codes are recognized:

   \E,\e     escape character 
   ,\l       newline (or linefeed) character
             carriage return 
             tab character 
            backspace character
            formfeed character 
   \s        space character 
   nn        character with octal value nnn 
   ^x        control-x for any appropriate x value 

Any other character preceded by a backslash will yield the character itself.

String types and associated value strings

The string types used in the dsinfo file are as follows:

dskx
A string type that starts with dsk describes a key. The type must be four letters long, and the fourth letter indicates what action is taken when the key is received. The key types are:
   TYPE       ACTION 
___________________________________________ 
   dsks       Switch Screens 
   dskb       Block Input and Output 
   dske       End dscreen 
   dskq       Quit dscreen (exit status=1) 
   dskc       Create New Screen 
   dskp       Switch to Previous Screen 
   dskl       List Keys and Actions 

Any other key type, for example, a string type dskx where x is not s, b, e, q, c, p, or l) will cause no internal dscreen action but will show up in the key listing and will be recognized and acted upon. A type of dskn (n for No Operation) should be used when no internal dscreen action is desired.

The value string to the right of the equal sign (=) for each key is divided into three substrings, which are separated by pipe (|) characters.

NOTE: Use \| to include the | character in one of the substrings.

  • The first substring is the sequence of characters that the terminal sends to dscreen when the key is pressed.
  • The second substring is a label for the key that is printed when a list of keys is displayed.
  • The third substring is a sequence of characters that dscreen sends to the terminal when this key is pressed before performing the action this key requests.
dsp
A string type of dsp describes a physical screen in the terminal. One dsp string should be present for each physical screen in the terminal.

The value string for each physical screen has two substrings, which are separated by a pipe (|) character.

For example:

   dsp=\E pA|\EH\EJ,   # Sequence for screen 1 of a 
                       #   3151 Terminal 
  • The first substring is the sequence of characters to send to the terminal to display and output to the physical page on the terminal.
  • The second substring is sent to the terminal when the page is used for something new. This second substring is often set to the clear screen sequence. It is sent under the following two conditions:
    1. when a new virtual terminal session is being created
    2. when there are more virtual terminals than there are physical screens; if a virtual terminal is selected which requires dscreen to reuse one of the physical screens, it will send this sequence to the screen to indicate that the screen contents do not match the output of the virtual terminal connected

      NOTE: Running with more virtual terminals than physical screens can be confusing and is not recommended; it can be avoided by defining no more screen selection keys (dsks=) than physical screens (dsp=) in the dsinfo entry.

dst
A string with a type of dst adjusts dscreen's input timeout. The value of the string is a decimal number. The timeout value is in tenths of seconds and has a maximum value of 255 (default=1 [or .1 seconds]).

When dscreen recognizes a prefix of an input key sequence but does not have all the characters of the sequence, it will wait for more characters to be sent until it is recognizable. If the timeout occurs before more characters are received, the characters are sent on to the virtual screen and dscreen will not consider these characters as part of an input key sequence.

It may be necessary to raise this value if one or more of the keys dscreen is to trigger on is actually a number of keystrokes; that is, assigning Ctrl-Z 1, Ctrl-Z 2, Ctrl-Z 3, and so on for screen selection, Ctrl-Z N for new screen and so on.

Example 1

The following example dsinfo entry is for a Wyse 60 with three screen sessions:

wy60|wyse60|wyse model 60, 
        dsks=^A` 
|Shift-F1|, 
        dsks=^Aa 
|Shift-F2|, 
        dsks=^Ab 
|Shift-F3|, 
        dskc=\200|Ctrl-F1|, 
        dske=\201|Ctrl-F2|\Ew0\E+, 
        dskl=\202|Ctrl-F3|, 
        dsp=\Ew0|\E+, 
        dsp=\Ew1|\E+, 
        dsp=\Ew2|\E+, 

In the preceding example:

Each time a physical screen is used for a new screen, the sequence Esc + will be sent to the terminal, which will clear the screen.

Example 2

The following example is for a Wyse 60 with three screen sessions but one of the screens is on a second computer communicating through the second serial port on the terminal:

   wy60-1|wyse60-1|wyse model 60 - first serial port 
             dsks=^A`^M|Shift-F1|, 
             dsks=^Aa^M|Shift-F2|, 
             dskb=^Ab^M|Shift-F3|\Ed#^Ab 
   ^T\Ee9, 
             dskc=\200|Ctrl-F1|, 
             dske=\201|Ctrl-F2|\Ed#\201^T\Ew0\E+, 
             dskl=\202|Ctrl-F3|, 
             dsp=\Ew0|\E+,dsp=\Ew1|\E+, 
   wy60-2|wyse60-2|wyse model 60 - second serial port 
             dsks=^A`^M|Shift-F1|\Ed#^A` 
  ^T\Ee8, 
             dsks=^Aa^M|Shift-F2|\Ed#^Aa 
  ^T\Ee8, 
             dsks=^Ab^M|Shift-F3|, 
             dskc=\200|Ctrl-F1|, 
             dske=\201|Ctrl-F2|\Ed#\201^T\Ew0\E+, 
             dskl=\202|Ctrl-F3|, 
             dsp=\Ew2|\E+, 

dscreen must be run on both computers, with terminal type wy60-1 on the first computer and terminal type wy60-2 on the second computer (using the -t option for dscreen).

In the wy60-1 entry, the first two key entries are unchanged from the original wy60 entry. The third key, however, has type dskb , which means block both input and output. When this key is pressed, the following sequence is sent to the terminal:

     <Esc> d #  <Ctrl-A>  b  <CR>  <Ctrl-T>  <Esc> e 9 
After this, output is blocked and dscreen continues scanning input for key sequences but discards all other input.

The sequence Esc d # puts the terminal in Transparent Print Mode, which echoes all characters up to a Ctrl-T out through the other serial port.

The characters Ctrl-A b <CR> are sent out the other serial port, informing the dscreen process on the other computer that it should activate the window associated with the Shift-F3 key.

The Ctrl-T exits the Transparent Print Mode. Esc e 9 tells the terminal to switch to the other AUX serial port for data communications.

At this point, the other computer takes over and sends an Esc w 2 to switch to the third physical screen and then resumes normal communication.

The wy60-2 entry follows the same general pattern for keys Shift-F1 and Shift-F2:

The end key Ctrl-F2 works the same for both computers; it sends the end key sequence to the other computer through the transparent print mechanism, switches the terminal to window 0, clears the screen, and then exits.




[ Doc Ref: 90605201114636     Publish Date: May. 05, 2000     4FAX Ref: 1399 ]