MSCREEN(M) XENIX System V MSCREEN(M)
Name
mscreen - Serial multiscreens utility.
Syntax
mscreen [ -s ] [ -n number ] [ -t ]
Description
mscreen allows a serial terminal to have multiple login
screens similar to the multiscreen(M) console.
Note: For full mscreen support the terminal must have the
ability to switch internal screen pages on command and it
must retain a separate cursor position for each screen page.
The options are used as follows:
-s Silent mode. This flag suppresses the startup
messages, and on ``dumb'' terminals it suppresses
the screen switch messages
-n Selects the number of serial multiscreens desired
up to the maximum defined for the terminal type.
-t Disables the transparent tty checking. mscreen
normally exits silently if the terminal device
name starts with the characters ``ttyp''. Device
names beginning with ``ttyp'' are used as slave
devices for mscreen. The correct names for the
master tty devices begin with ``ptyp''.
mscreen can be used on both ``smart'' and ``dumb''
terminals. Although it is optimized to take advantage of
smart terminals with screen memory, mscreen also works on
dumb terminals, although the screen images are not saved
during screen changes. mscreen also supports terminals with
two (or more) serial ports that are connected to different
computers.
mscreen is designed to be invoked from the .profile or
.login files. Use mscreen in place of the SHELL variable so
that serial multiscreens can be automatic at login time.
The ``stop'' and ``quit'' keys allow you to logout from all
screens with a single keystroke.
Configuration
mscreen determines the terminal type of the terminal it is
invoked from by examining the environment variable TERM.
mscreen looks in /etc/mscreencap or in the filename
contained in the environment variable MSCREENCAP to get the
capabilities for the terminal type.
The pseudo terminals assigned to the user are automatically
Page 1 (printed 2/7/91)
MSCREEN(M) XENIX System V MSCREEN(M)
determined at startup by mscreen. Manual assignment of ttys
can be accomplished by creating a file in the user's home
directory called .mscreenrc.
mscreencap format
mscreencap contains an entry for each terminal type
supported. An entry may have several names if the support
for several terminal types are the same. Within an entry
are the key mappings for each potential pseudo terminal.
Each pseudo terminal has a help key string, an input string
(the sequence generated by the key that selects this
screen), and an optional output string (the sequence to send
to the terminal that will cause a page switch). The input
and output strings are in a termcap like format: (the
backslash and caret are special lead in (escape) characters)
\nnn an octal number, one to three digits are allowed
\n newline
\r carriage return
\t tab
\b backspace
\f form feed
\E escape (hex 1b octal 33).
\ enter backslash as a data character
\^ enter caret as a data character
\^X ctrl-X where X can be:
@ABCDEFGHIJKLMNOPQESTUVWXYZ[]^_ effectively the
caret can generate hex 01 through hex 1f.
If a terminal type has no output strings then it is assumed
to be a dumb terminal that does not have multiple internal
memory pages.
There are five special entries that allow the user to define
keys to support the other functions of mscreen. They are
the help key (which prints a list of all of the keys that
are currently available and their functions), the who key
(prints the name of the current screen), the stop key
(terminates mscreen and returns a good (zero) shell return
code), and quit key (terminates mscreen and returns a bad
(non-zero) shell return code and the dummy entry that is
used for terminals with multiple ports.
The format is:
#this is a comment and may only appear between entries
entryname|alias1|alias1...|aliasn:
:specialname,helpname,inputstring,pageselectstring:
:specialname,helpname,inputstring,pageselectstring:
entryname|alias1|alias1...|aliasn:
:specialname,helpname,inputstring,pageselectstring:
:specialname,helpname,inputstring,pageselectstring:
Page 2 (printed 2/7/91)
MSCREEN(M) XENIX System V MSCREEN(M)
The specialname is empty for real screen entries. See the
provided /etc/mscreencap for examples.
.mscreenrc format
.mscreenrc contains a list of ttynames if the user wants to
allocate a fixed set of ttys for use:
ttyp0
ttyp1
ttypn
Shell return codes and auto login/logout
mscreen exits with a bad (non-zero) return code if there is
an error or when the ``quit'' key is pressed. The ``stop''
key causes mscreen to exit with a good (zero) return code.
This allows users to place mscreen in the .login or .profile
files. The .login or .profile files should set up an
automatic logout if the mscreen return code is good (zero).
The following is a csh sample invocation of mscreen for a
.login file:
mscreen-n 4
if ($status == 0) logout
The single key logout feature of mscreen works as if a
normal logout was entered on each pseudo-terminal. A hangup
signal is sent to all of the processes on all the pseudo
terminals.
Multiple Port Option
mscreen provides a dummy entry type. It allows mscreen to be
placed in an inactive state while the user uses his terminal
to converse through another (physical) io port to another
computer. see the provided /etc/mscreencap for an example.
To be used, you must take the example and configure it for
your needs.
mscreen Driver
The mscreen driver is already installed in the
kernel with eight pseudo terminals available for use. You
must enable a pseudo terminals to use it. See the link-kit
instructions for relinking the kernel to have more available
pseudo terminals.
Notes
mscreen has a VTIM timeout of 1/5 second for input strings.
mscreen has a limit of twenty multiscreens per user.
You should not switch screen pages in mscreen when output is
occurring because if an escape sequence is cut in half it
Page 3 (printed 2/7/91)
MSCREEN(M) XENIX System V MSCREEN(M)
may leave the terminal in an indeterminate state and distort
the screen image.
Terminals that save the cursor location for each screen
often do not save states such as insert mode, inverse video,
and others. For example, you should not change screens if
you are in insert mode in vi, and you should not change
screens during an inverse video output sequence.
For inactive screens (screens other than the current one)
mscreen saves the last 2048 characters of data (2K). Data
older than this is lost. This limit occasionally results in
errors for programs that require a memory of more data than
this. The application-defined screen redraw key restores
the screen to normal appearance.
mscreen depends on the pseudo terminal device names starting
with ttyp for the slave devices and ptyp for the master
devices. The number of trailing character in the device
name is not significant.
See Also
multiscreen(M), enable(C)
Page 4 (printed 2/7/91)