Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ mscreen(M) — OpenDesktop 3.0.0

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

enable(C)

multiscreen(M)


 mscreen(M)                      19 June 1992                      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 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 de-
         vices 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 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 is 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) charac-
    ters).

    \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     Ctrlx, where x can be:
            @ABCDEFGHIJKLMNOPQRSTUVWXYZ[]^_
            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 sup-
    port the other functions of mscreen.  They are the ``help'' key (prints a
    list of all of the keys that are currently available and their func-
    tions), 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:

    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) I/O port to another computer.  See the provided
    /etc/mscreentermmap for an example.  To use it, you must take the example
    and configure it for your needs.

    mscreen driver

    The mscreen driver is already installed in the UNIX kernel with eight
    pseudo terminals available for use.  You must enable a pseudo terminal
    before you can 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 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 user-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 characters in the device name is not significant.

 See also

    enable(C), multiscreen(M)

    ``Administering serial terminals'' in the System Administrator's Guide

 Value added

    mscreen is an extension of AT&T System V provided by The Santa Cruz
    Operation, Inc.


Typewritten Software • bear@typewritten.org • Edmonds, WA 98026