Multics Technical Bulletin                                MTB 636

To:        MTB Distribution

From:      N.S.Davids

Date:      11/09/83

Subject:   Executive Service, User Interface

Comments may be made:

     Via forum (method of choice):
                    >udd>m>nsd>mtgs>eou

     Via electronic mail:
                    Davids.Multics

     Via telephone:
                    862-6643
                    HVN:  356-6643

_________________________________________________________________

Multics  Project  internal  working  documentation.   Not  to  be
reproduced outside the Multics Project.


MTB 636                                Multics Technical Bulletin

                            CONTENTS

          1.0  INTRODUCTION. . . . . . . . . . . . . .3

          2.0  XSERVICE USER INTERFACE OVERVIEW. . . .4

          3.0  SCREEN DISPLAYS . . . . . . . . . . . .4

          4.0  USER INPUT. . . . . . . . . . . . . . .6

          5.0  USER SCREENS . . . . . . . . . . . . .11

          6.0  HELP . . . . . . . . . . . . . . . . .32

          7.0  MACROS . . . . . . . . . . . . . . . .37

          8.0  USER COMPLAINTS. . . . . . . . . . . .39

          9.0  MULTICS MODE . . . . . . . . . . . . .40

          10.0 XSERVICE PROTOTYPE . . . . . . . . . .41

          11.0 WHAT NEXT. . . . . . . . . . . . . . .41

          12.0 REFERENCES . . . . . . . . . . . . . .42


Multics Technical Bulletin                                MTB 636

1.0 INTRODUCTION

1.1 Function
    The  purpose of  the Executive Service  (Xservice) package is
    two-fold.  First, it provides the casual user with a friendly
    environment which interfaces with selected Multics subsystems
    and  commands.  Second,  it provides  the casual  user with a
    tool for integrating other commands and sequences of commands
    into that friendly environment.

    The Xservice  system is designed  for use with  video display
    terminals operating at at least 1200 baud.

    This MTB covers  the user interface.  MTB 637  will cover the
    high  level design  of the Xservice  system and  MTB 638 will
    cover the  tool used to  integrate commands and  sequences of
    commands   into  the   Executive  Service   system.   An  MTB
    describing a program level interface into the Xservice system
    is planned after MTB 638 is published.

1.2 Definitions

1.2.1 Casual User
    The casual  user, which Xservice  will be targeted  for, is a
    user  with little  or no training  on how to  use the Multics
    system.  He knows just enough about  the system to do his job
    and has neither  the time nor the inclination  to learn more.
    As he gains experience he may wish the system to perform more
    sophisticated functions,  but he will demand  that the system
    do  this  without  requiring  that  his  level  of  "computer
    sophistication" increase as well [1].

1.2.2 Friendly Interface
    A friendly interface is  one that appears consistent, simple,
    and  predictable.    Consistency  means  that   there  is  an
    analogous relationship among the  actions required to perform
    what the users view as logically related functions.  The more
    consistent a system  is, the fewer sets of  actions the users
    must remember to  do their job.  A simple  system is one that
    provides  the high  level functions and  operations the users
    require  to do  their job.  This  means that the  user is not
    forced to build needed functions by building up a sequence of
    lower level functions which  are provided.  Users see systems
    as  predictable  when they  know  what to  expect  from their
    actions,  especially  when trying  new things.   In addition,
    error messages  should not contain  jargon or imply  that the
    user  is at  fault but  should explain  the error  and how to
    correct it.  [2]


MTB 636                                Multics Technical Bulletin

2.0 XSERVICE USER INTERFACE OVERVIEW

    The  user sees  Xservice as a  hierarchy of  menus or prompts
    which, when navigated to an  end point, performs some desired
    action.  Xservice  displays the menus or  prompts to the user
    in  a  sequence of  user  screens which  require the  user to
    select  a menu  option or  enter a  text string.   The user's
    response initiates  a sequence of actions  and the display of
    another or  the same user screen.   The actions performed may
    be invisible to the user  (Xservice bookkeeping or action set
    up) or the actual action itself.  When an action is completed
    an acknowledge message is issued.

    The user also has a set  of control sequences he may enter in
    response  to a  prompt or  instead of  a menu  option.  These
    control sequences  allow the user to  request common services
    (help) or to  control his place in the  user screen hierarchy
    (go  to the  previous screen).   A list  of control sequences
    which  are  permissible  for   the  current  user  screen  is
    displayed on the bottom of the user's terminal screen.

    Xservice does not require that the user be in video mode when
    it  is invoked.   If the user  is not in  video mode Xservice
    will place him in it and  use the entire screen.  If the user
    is in  video mode Xservice  will use only  the user's current
    user_io window.  That window must be at least 15 lines long.

3.0 SCREEN DISPLAYS

3.1 Goals
    There  are  two  goals  which must  be  met  for  each screen
    displayed to  the user.  First,  all the information  that is
    currently  pertinent  to the  user must  be displayed  in the
    appropriate  windows.   Second,   no  extraneous  information
    should be displayed.

3.2 Overview
    Xservice divides the user's  user_io window into five smaller
    windows:  a window for interactive messages, a status window,
    a main window,  a window for Xservice messages,  and a window
    for the  display of control  sequences.  The windows  are not
    visually divided  (see examples in section  5).  The user has
    the option  of removing the interactive  messages window from
    the screen.  The extra lines are added to the main window.

3.3 Interactive Message Window
    The interactive  message window will appear  as the top three
    lines  of  the user's  original user_io  window.  Interactive


Multics Technical Bulletin                                MTB 636

    messages will have the form:
              sender:  message
    Messages  may  be of  any  length, the  window  has more_mode
    turned off.  The messages are  held in the user's mailbox for
    subsequent redisplay  via any of the  mail system interfaces.
    This  window is  optional, it may  be removed  by selecting a
    menu  option  in the  Personalize  Xservice user  screen (see
    section 5.5).   If the interactive  message window is  not on
    the  screen and  the user has  not set up  some other message
    window  then interactive  messages will  be displayed  in the
    main window.  They will also  be cleared from the window when
    Xservice writes to the main window.

3.4 Status Window
    The status window is a  two line window below the interactive
    message window (or at the  top of the original user_io window
    if there  is no interactive  message window).  It  is used to
    show  the current  status of  the system  and to  display any
    special  instructions  to the  user.  The  first line  of the
    status window indicates the name  of the current user screen.
    The second line  is used for any special  instructions or for
    the display of  the current page number and  the total number
    of pages if the user screen is a display text screen.

3.5 Main Window
    The main window is used to  display and select from menus, to
    enter  text  in  response  to instructions  displayed  in the
    status window (entering the name  of a file for instance) and
    to display  text to the  user.  The window  is always cleared
    before anything  is displayed so  that only 1  form of output
    (menu, prompt response, or text) appears in the window.  Text
    (help messages, detailed error messages, etc) is displayed as
    pages.  The user may page forward or backward though the text
    or return  to the user  screen displayed before  the text via
    control sequences.  The length of  the main window will vary,
    depending on the existence  of the interactive message window
    and the size of the original user_io window.

    Asynchronous output generated from memos or other alarms that
    would  normally  be written  to  the user_io  window  will be
    written  to the  main window.   As with  interactive messages
    that  are  written to  the  main window  this output  will be
    cleared as soon as Xservice writes something to the window.

3.6 Xservice Message Window
    The Xservice  message window is  a two line  window following
    the  main  window.   It  is  used  to  display  primary error
    messages,  acknowledgement  messages,  and  instructions  for
    getting  help  after  the  HELP  control  sequence  has  been
    entered.  It is also used by the user to enter suggestions.


MTB 636                                Multics Technical Bulletin

    A  primary  error  message  is  the  first  message  that  is
    displayed to the user in the  event of an error.  A secondary
    error message,  which explains the  error in more  detail, is
    displayed in the main window  when the user indicates that he
    wants the extra detail (see section 6.2.1).

    An acknowledgement message indicates that the action the user
    requested has  been done.  They are  issued at the successful
    completion of an action.

    User suggestions  are comments that  the user wishes  to make
    about  the  system, either  Xservice  or an  application (see
    section 8.0).

    Help instructions  are displayed in  this window so  that the
    information   in  the   status  window   (user  screen  name,
    instructions for making a selection) are not lost.

3.7 Control Window
    The  control  window is  a  three line  window  following the
    Xservice message  window.  All enabled  control sequences are
    listed.  Refer to  section 4.4 below for a  discussion of the
    actual control sequences.  The control window may not be wide
    enough to display all the sequences at one time.  The control
    sequences  NEXT CONTROL  and PREV  CONTROL allow  the user to
    scroll the control  window to the right and  left to view all
    the  enabled control  sequences.  The  NEXT and  PREV control
    sequences will be  enabled only if the control  window is not
    wide enough to display all the control sequences at once.

4.0 USER INPUT

4.1 Overview
    Xservice has  two modes of  user input (limited  response and
    input  text),  in  each mode  there  are two  types  of input
    (control sequence and choice).

    The  user  is in  limited  response mode  whenever a  menu is
    displayed  in the  main window.   He may  switch from limited
    response  to  input  text  mode by  entering  the  INPUT TEXT
    control sequence.  Selection of a  menu choice while in input
    text mode is accomplished by entering any unique substring of
    the menu  choice description for the  choice desired.  In the
    event that the user has  forgotten the textual description he
    may have  the menu displayed  and revert to  limited response
    mode by entering the DISPLAY MENU control sequence.


Multics Technical Bulletin                                MTB 636

    The  last  mode  set  for  each  user  screen  is permanently
    recorded and used when the user reenters that screen.

4.2 Limited Response Mode
    In limited  response mode, there  is a menu  displayed in the
    Xservice main window.  The user may enter either a menu index
    which indicates a choice on a menu or a control sequence.

    The control sequence will be entered with either the function
    keys or the  escape sequences depending on the  form the user
    has set.  If  the user enters a control  sequence that is not
    currently enabled (it does not  appear in the control window)
    an error message will be  issued.  If the control sequence is
    enabled, the indicated action is performed immediately.

4.3 Input Text Mode
    In  input text  mode, the  second line  of the  status window
    indicates what  kinds of input are  expected and the Xservice
    main  window  is cleared  for  the user's  input.   All video
    system line editor  requests are active so that  the user can
    edit the input line before  sending it to Xservice.  The user
    is automatically  placed in escape sequence  mode for control
    sequence input (see section 4.4).

    Input text mode is entered  whenever the user must enter some
    text in  response to a  question or instruction  displayed in
    the status window,  i.e.  "Enter the name of  an archive file
    to be created".

    Input  text mode  may also  be entered  from limited response
    mode when responding to a  menu.  The advantage of doing this
    is  speed since  the menu is  not displayed.   Selection of a
    menu choice while in input text  mode is done by entering any
    unique  substring of  the menu  option string  for the choice
    desired.  Embedded white space in the menu choice description
    is significant but the input does not have to be quoted.  The
    comparison is case insensitive so that the user does not have
    to remember the description's use of capital letters.  If the
    substring is not unique,  the primary error message indicates
    that  the  substring  was  not unique.   The  secondary error
    message lists the choices that the substring matches.

    Responses  to  subsequent  user  screens  may  be  entered by
    separating  each  response  with  the  ";"  character.   This
    "type-ahead"  suppresses the  display of  the subsequent user
    screens.   If an  error occurs all  unprocessed responses are
    purged and  the user is  left at the step  the error occurred
    in.   This   imposes  a  limitation  that   the  menu  choice
    descriptions do not contain (and text responses to prompts do
    not require) the ";" character.


MTB 636                                Multics Technical Bulletin

4.4 Control Sequences
    There are two forms of control sequences.  The "function key"
    form and the "escape sequence form".

    The  function  key  form  uses  a  terminal's  function keys,
    specifically the  "home" key, the  "?"  key, the  "<" and ">"
    keys  and the  function keys.  The  keys for  the HELP, QUIT,
    NEXT and  PREV CONTROL control sequences  will always be "?",
    "home", ">",  and "<".  The other  control sequences will use
    whatever   function   keys  are   available.    Function  key
    availability  will  depend  on  what  control  sequences  are
    enabled.  This  means that sometimes the  PREV SCREEN control
    sequence may  be invoked by  function key 2  and sometimes by
    function key 1.

    The escape sequence form uses a sequence of 3 characters, the
    first  2 of  which are the  escape key (ESC)  and "x" (either
    upper or lower case).  The third character will depend on the
    function being performed (like the  "x" this character may be
    upper  or lower  case).  This  sequence is  constant for each
    control sequence.

    In order  to give the  user the full advantages  of the video
    editor, the escape sequence form  is always used whenever the
    user is in input text mode.   This will require that the ESCx
    sequence be  reserved from use within  the video command line
    editor.  Since the  user has to use the  escape sequence form
    whenever  he is  in input text  mode, the default  will be to
    always use the escape sequence form.

    If the  user's terminal has  enough function keys  and a home
    key, he  may, for limited response  user screens, switch from
    the escape  sequence form to  the function key  form and back
    again via  the Personalize Xservice user  screen (see section
    5.5).


Multics Technical Bulletin                                MTB 636

        Table 1 - CONTROL SEQUENCES meanings and key strokes

    Label             Meaning                            Escape
                                                        Sequence

    HELP            Allows the user to display help on    ESCx?
                    control sequences, menu choices
                    and prompts. See section 6.1

    QUIT            Causes the user to exit the           ESCxq
                    Xservice subsystem.

    NEXT CONTROL    Shifts the control window to the      ESCx>
                    right to display other enabled
                    control sequences.

    PREV CONTROL    Shifts the control window to the      ESCx<
                    left to display other enabled
                    control sequences.

    DISPLAY MENU    Changes the user's screen from input  ESCxd
                    text mode for selecting a menu
                    choice to the limited response mode.
                    See section 4.2.

    TOP SCREEN      Returns the user's screen to the      ESCxt
                    Xservice top screen.

    EXPLAIN ERROR   Displays a detailed error message     ESCxe
                    for the error that just occurred.
                    See section 6.2

    PREV SCREEN     Returns the user's screen to the      ESCxp
                    previous screen.

    NEXT SCREEN     Changes the user's screen to the      ESCxn
                    next screen.

    FORWARD PAGE    Moves the user screen forward one     ESCxf
                    text page.

    BACKWARD PAGE   Moves the user screen backward one    ESCxb
                    text page.

    GOTO PAGE       Displays an input text user screen    ESCxg
                    querying the user for the page number
                    of the text page to be displayed next.

    INPUT TEXT      Changes the user's screen from        ESCxi
                    limited response mode to input text
                    mode. see section 4.3


MTB 636                                Multics Technical Bulletin

    OPEN MACRO      Begins the macro definition process   ESCxo
                    See section 7.2

    USER INPUT      Used when in macro definition mode    ESCxu
                    to indicate that the next user input
                    is not part of the macro definition
                    so that the user screen is presented
                    to the user when the macro is
                    executing. See section 7.2.

    CLOSE MACRO     Used when in macro definition mode    ESCxc
                    to complete the macro definition.
                    See section 7.2.

    LIST MACRO      Allows the user to display the user   ESCxl
                    screens that the macro will invoke
                    and the responses that it will issue.
                    See section 7.3.

    KILL MACRO      Allows the user to delete a macro.    ESCxk
                    See section 7.4.

    MULTICS         Places the user in Multics mode.      ESCxm
                    See section 9.0

    SUGGESTION      Places the user in suggestion mode    ESCxs
                    See section 8.0.

    REDISPLAY SCREEN
                   Redisplays all windows on the screen   ESCxr


Multics Technical Bulletin                                MTB 636

5.0 USER SCREENS

5.1 Overview
    There  are  three forms  of  user screens:   multiple choice,
    input text, and display text.

    In a multiple choice user  screen, the user response consists
    of  the selection  of 1 out  of a limited  number of choices.
    The  user screen  may be in  limited response  mode, in which
    case  a menu  appears in  the main  window, or  in input text
    mode,  in  which case  the  selection is  made by  entering a
    substring of the menu choice description.

    The  input text  user screen  is used  to query  the user and
    obtain a text response.

    The display text  user screen is used to  display text to the
    user.  Since,  in general, the  text will be  longer than the
    main window,  it is broken  up into pages.  The  user will be
    able to  move forward or  backward among the  displayed pages
    via  the control  sequences FORWARD PAGE,  BACKWARD PAGE, and
    GOTO  PAGE.  Page  length is dynamic  and will  depend on the
    current size of the main window.

    The following are  the user screens for the  top level of the
    Xservice environment.  The interactive  message window is not
    shown.  The main window is shown at 8 lines long.  The cursor
    position  at the  time that the  user is expected  to enter a
    response is shown by the "_" character.  For limited response
    user  screens,  the  cursor  is always  positioned  over menu
    option index 1.  For display text user screens, the cursor is
    always positioned after the last character on the page.


MTB 636                                Multics Technical Bulletin

5.2 Top User Screen
    This  is the  screen that is  normally presented  to the user
    when Xservice is first  invoked.  There are three exceptions.
    The first time  a user invokes Xservice he  will be placed in
    the Getting Started user screen  (see section 5.3).  The user
    may  also indicate  via the Personalize  Xservice user screen
    (see section 5.5) that the  first user screen to be displayed
    should be the Functions  user screen (section 5.6).  Finally,
    if the  user supplies the  name of a function  on the command
    line that  invokes Xservice, the first  user screen presented
    to him  will be the  first user screen for  that function (if
    the function  cannot be found the  functions user screen will
    be displayed and an error message will appear in the Xservice
    message window).  Note that all higher level user screens are
    available to  the user via the  PREV SCREEN control sequence,
    even if these screens are  skipped over for the first display
    screen.

    Selection  of any  choice from  the Xservice  top user screen
    will  cause  the  indicated  lower level  user  screen  to be
    displayed.


Multics Technical Bulletin                                MTB 636

5.2.1 Limited Response Mode

-------------------------------------------------------------------------------
| XSERVICE TOP                                                                |
|                                                                             |
|                               XSERVICE TOP SCREEN                           |
|                                                                             |
| (1) Edit Function Menu                   (3) Getting Started with Xservice  |
| (2) Personalize Xservice                 (4) Execute Function               |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|         | ESCx? | ESCxq | ESCxr     | ESCxi | ESCxm   | ESCxs      |        |
|         | HELP  | QUIT  | REDISPLAY | INPUT | MULTICS | SUGGESTION |        |
|         |       |       | SCREEN    | TEXT  | MODE    |            |        |
-------------------------------------------------------------------------------

5.2.2 Input Text Mode

-------------------------------------------------------------------------------
| XSERVICE TOP                                                                |
|    Waiting for you to enter your choice                                     |
| _                                                                           |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|        | ESCx? | ESCxq | ESCxr     | ESCxd    | ESCxm   | ESCxs      |      |
|        | HELP  | QUIT  | REDISPLAY | DISPLAY  | MULTICS | SUGGESTION |      |
|        |       |       | SCREEN    | MENU     | MODE    |            |      |
-------------------------------------------------------------------------------


MTB 636                                Multics Technical Bulletin

5.3 Getting Started User Screen
    The getting  started user screen is  a general help facility.
    It lists  all the general aspects  of the Xservice interface.
    When the user selects a choice  the help text is displayed in
    the main window.

5.3.1 Limited Response Mode

-------------------------------------------------------------------------------
| GETTING STARTED WITH XSERVICE                                               |
|                                                                             |
|                          GETTING STARTED WITH XSERVICE                      |
|                                                                             |
| (1) Getting to know your terminal          (7) Getting around the menus     |
| (2) Xservice Screen Windows                (8) How to correct typos         |
| (3) Xservice Control Sequences             (9) Personalizing Xservice       |
| (4) Xservice Macro Commands                (A) Input text mode              |
| (5) How to get help                        (B) Limited Response mode        |
| (6) How to get out of Xservice             (C) Goto XSERVICE TOP SCREEN     |
|                                                                             |
|                                                                             |
|    | ESCx? | ESCxq | ESCxr     | ESCxp  | ESCxi | ESCxm   | ESCxs      |    |
|    | HELP  | QUIT  | REDISPLAY | PREV   | INPUT | MULTICS | SUGGESTION |    |
|    |       |       | SCREEN    | SCREEN | TEXT  | MODE    |            |    |
-------------------------------------------------------------------------------

5.3.2 Input Text Mode

-------------------------------------------------------------------------------
| GETTING STARTED WITH XSERVICE                                               |
|    Waiting for you to enter your choice                                     |
| _                                                                           |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|   | ESCx? | ESCxq | ESCxr     | ESCxp  | ESCxd    | ESCxm   | ESCxs      |  |
|   | HELP  | QUIT  | REDISPLAY | PREV   | DISPLAY  | MULTICS | SUGGESTION |  |
|   |       |       | SCREEN    | SCREEN | MENU     | MODE    |            |  |
-------------------------------------------------------------------------------


Multics Technical Bulletin                                MTB 636

5.3.3 Example Getting Started Text User Screen
    When paging forward though text the last line of the previous
    page is displayed as the first line of the next page.

-------------------------------------------------------------------------------
| GETTING STARTED WITH XSERVICE: Xservice Screen Windows                      |
|                                                             Page 1 out of 3 |
| In  Xservice,  the  terminal  screen is divided into five parts or windows. |
| The  top  window  contains  three  lines  for  interactive  messages  to be |
| displayed.   The  next  window contains 2 lines and is used to display your |
| status  and  any instructions.  The third window is the largest and is used |
| to  display  menus  or text messages (like this one).  The fourth window is |
| used  by  Xservice  to  print error and acknowledgement messages.  The last |
| window contains the key sequences for control.  Different control sequences |
| are  valid  at  different times, the control window will display only those_|
|                                                                             |
|                                                                             |
|  | ESCxq | ESCxr     | ESCxt  | ESCxp    | ESCxf   | ESCxg | ESCxs      |   |
|  | QUIT  | REDISPLAY | TOP    | PREV     | FORWARD | GOTO  | SUGGESTION |   |
|  |       | SCREEN    | SCREEN | SCREEN   | PAGE    | PAGE  |            |   |
-------------------------------------------------------------------------------

-------------------------------------------------------------------------------
| GETTING STARTED WITH XSERVICE: Xservice Screen Windows                      |
|                                                             Page 2 out of 3 |
| are  valid  at  different times, the control window will display only those |
| sequences which are valid for the next input.                               |
|                                                                             |
| The  personalization  menu will allow you to remove the message window from |
| the  screen.  If you do this than interactive messages will be displayed in |
| the  menu/text window.  The message text will be overwritten whenever a new |
| menu  is  displayed  or  xservice outputs text.  It is recommended that you |
| remove  the  message  window  only if you have set up some other window for_|
|                                                                             |
|                                                                             |
|  | ESCxq | ESCxr     | ESCxt  | ESCxp    | ESCxb    | ESCxf   | ESCx>   |   |
|  | QUIT  | REDISPLAY | TOP    | PREV     | BACKWARD | FORWARD | NEXT    |   |
|  |       | SCREEN    | SCREEN | SCREEN   | PAGE     | PAGE    | CONTROL |   |
-------------------------------------------------------------------------------


MTB 636                                Multics Technical Bulletin

-------------------------------------------------------------------------------
| GETTING STARTED WITH XSERVICE: Xservice Screen Windows                      |
|                                                             Page 3 out of 3 |
| remove  the  message  window  only if you have set up some other window for |
| displaying  messages.   The  personalization  menu  will  also allow you to |
| remove the control window from the screen._                                 |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|  | ESCxq | ESCxr     | ESCxt  | ESCxp    | ESCxb    | ESCxg | ESCxs      |  |
|  | QUIT  | REDISPLAY | TOP    | PREV     | BACKWARD | GOTO  | SUGGESTION |  |
|  |       | SCREEN    | SCREEN | SCREEN   | PAGE     | PAGE  |            |  |
-------------------------------------------------------------------------------


Multics Technical Bulletin                                MTB 636

5.4 Edit Function User Screen
    The  edit  function user  screen  is a  multiple  choice user
    screen  that  allows the  user  to add  and/or  delete and/or
    undelete  functions  from  his  Xservice  environment  and to
    change  the order  that the functions  will appear  in in the
    functions menu.  The data  structures which define a function
    are built with the Xservice extender subsystem.

    Selecting the Add function choice  will display an input text
    user  screen  prompting  for  the  name  of  the  application
    function to be added.  If  the named function cannot be found
    using  the user's  standard search  rules, a  new user screen
    prompting   for   the  full   pathname  will   be  displayed.
    Alternatively,  the  user  may  enter  the  full  pathname in
    response  to  the  first user  screen.   If the  name  of the
    application   function   conflicts  with   the  name   of  an
    application  function  already  on  the menu,  a  user screen
    prompting for an  alias name will be displayed.   If the name
    conflicts  with the  name of a  deleted application function,
    the  deleted function  is permanently  replaced with  the new
    function.   After  the  function  is added,  the  user screen
    reverts to the edit function user screen.

    Selecting  the Delete  function choice will  cause a multiple
    choice  user  screen  containing  all  the  functions  to  be
    displayed.  Deletion merely  removes the application function
    from the menu, but all information  about it is saved and may
    be  restored to  the menu via  the undelete  option.  After a
    function  is  selected,  the  user is  returned  to  the edit
    function user screen.

    Selecting  the  Undelete  function   choice  will  display  a
    multiple  choice  user  screen  containing  all  the  deleted
    functions.  Selection  of a function  will restore it  to the
    functions  menu.  After  a function  is selected  the user is
    returned to the edit function user screen.

    Selecting the  Reorder functions choice will  cause the order
    of the  functions and macros displayed  in the FUNCTIONS menu
    to be  based on the  current usage counts with  the most used
    functions and macros listed first.  Functions and macros with
    the same count will be listed alphabetically.


MTB 636                                Multics Technical Bulletin

5.4.1 Limited Response Mode

-------------------------------------------------------------------------------
| EDIT FUNCTIONS                                                              |
|                                                                             |
|                                EDIT FUNCTIONS                               |
|                                                                             |
| (1) Add function                                      (3) Undelete function |
| (2) Delete function                                   (4) Reorder functions |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|    | ESCx? | ESCxq | ESCxr     | ESCxp  | ESCxi | ESCxm   | ESCxs      |    |
|    | HELP  | QUIT  | REDISPLAY | PREV   | INPUT | MULTICS | SUGGESTION |    |
|    |       |       | SCREEN    | SCREEN | TEXT  | MODE    |            |    |
-------------------------------------------------------------------------------

5.4.2 Input Text Mode

-------------------------------------------------------------------------------
| EDIT FUNCTIONS                                                              |
|   Waiting for you to enter your choice                                      |
| _                                                                           |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|   | ESCx? | ESCxq | ESCxr     | ESCxp  | ESCxd   | ESCxm   | ESCxs      |   |
|   | HELP  | QUIT  | REDISPLAY | PREV   | DISPLAY | MULTICS | SUGGESTION |   |
|   |       |       | SCREEN    | SCREEN | MENU    | MODE    |            |   |
-------------------------------------------------------------------------------


Multics Technical Bulletin                                               MTB 636

5.4.3 Prompting for Function Name

-------------------------------------------------------------------------------
| EDIT FUNCTIONS: Adding function to functions menu                           |
|   Waiting for you to enter the name of the function to be added             |
| _                                                                           |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|   | ESCx? | ESCxq | ESCxr     | ESCxt  | ESCxp  | ESCxm   | ESCxs      |    |
|   | HELP  | QUIT  | REDISPLAY | TOP    | PREV   | MULTICS | SUGGESTION |    |
|   |       |       | SCREEN    | SCREEN | SCREEN | MODE    |            |    |
-------------------------------------------------------------------------------

5.4.4 Prompting for Full Pathname User Screen
    The EXPLAIN ERROR control sequence  can be issued to obtain a
    more detailed explanation of how  the search for the function
    name is done and why a full pathname is required (see section
    6.2.1).   The help  message will  explain what  a pathname is
    (see section 6.1.1).

-------------------------------------------------------------------------------
| EDIT FUNCTIONS: Adding function to functions menu                           |
|    Waiting for you to enter the full pathname of the function to be added   |
| _                                                                           |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
| Attention:                                                                  |
|   The function named "foobar" not be found.                                 |
|| ESCx? | ESCxq | ESCxr     | ESCxt  | ESCxp  | ESCxe   | ESCxm   | ESCx>   ||
|| HELP  | QUIT  | REDISPLAY | TOP    | PREV   | EXPLAIN | MULTICS | NEXT    ||
||       |       | SCREEN    | SCREEN | SCREEN | ERROR   | MODE    | CONTROL ||
-------------------------------------------------------------------------------


MTB 636                                               Multics Technical Bulletin

5.4.5 Prompting for an Alias Function Name User Screen
    The EXPLAIN ERROR  control sequence can be issued  for a more
    detailed explanation  of the name conflict  and what an alias
    is.  The help message will also explain the conflict and what
    an alias is.

-------------------------------------------------------------------------------
| EDIT FUNCTIONS: Adding function to functions menu                           |
|   Waiting for you to enter an alias for the foobar function                 |
| _                                                                           |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
| Attention:                                                                  |
|    The function named "foobar" is already in use.                           |
|| ESCx? | ESCxq | ESCxr     | ESCxt  | ESCxp  | ESCxe   | ESCxm   | ESCx>   ||
|| HELP  | QUIT  | REDISPLAY | TOP    | PREV   | EXPLAIN | MULTICS | NEXT    ||
||       |       | SCREEN    | SCREEN | SCREEN | ERROR   | MODE    | CONTROL ||
-------------------------------------------------------------------------------


Multics Technical Bulletin                                               MTB 636

5.4.6 Delete Functions Limited Response Mode User Screen
    If the number  of functions exceeds that which  may be placed
    on a  single user screen, extra  user screens linked together
    via the NEXT SCREEN and PREV SCREEN control sequences will be
    generated.  The  number of user  screens is indicated  in the
    title of the menu.  In  this particular example, since only 1
    user screen  is needed, the  NEXT SCREEN control  sequence is
    not enabled.

-------------------------------------------------------------------------------
| EDIT FUNCTIONS: deleting a function from the functions menu                 |
|                                                                             |
|                       FUNCTIONS TO BE DELETED menu 1 out of 1               |
|                                                                             |
| (1) foo                                           (3) zapo                  |
| (2) bar                                           (4) fob                   |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
| | ESCx? | ESCxq | ESCxr     | ESCxt  | ESCxp  | ESCxi | ESCxm   | ESCx>   | |
| | HELP  | QUIT  | REDISPLAY | TOP    | PREV   | INPUT | MULTICS | NEXT    | |
| |       |       | SCREEN    | SCREEN | SCREEN | TEXT  | MODE    | CONTROL | |
-------------------------------------------------------------------------------


MTB 636                                Multics Technical Bulletin

5.4.7 Delete Functions Input Text Mode User Screen
    In input text  mode, choices for all linked  user screens are
    available.  It  is not required  to know which  user screen a
    particular choice is on.  The NEXT SCREEN control sequence is
    not enabled.

-------------------------------------------------------------------------------
| EDIT FUNCTIONS: Deleting a function from the functions menu                 |
|   Waiting for you to enter the name of the function                         |
| _                                                                           |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|| ESCx? | ESCxq | ESCxr     | ESCxt  | ESCxp  | ESCxd   | ESCxm   | ESCx>   ||
|| HELP  | QUIT  | REDISPLAY | TOP    | PREV   | DISPLAY | MULTICS | NEXT    ||
||       |       | SCREEN    | SCREEN | SCREEN | MENU    | MODE    | CONTROL ||
-------------------------------------------------------------------------------


Multics Technical Bulletin                                MTB 636

5.4.8 Undelete Functions Limited Response Mode User Screen
    If the number of deleted  functions exceeds that which may be
    placed  on a  single user  screen, extra  user screens linked
    together  via  the  NEXT   SCREEN  and  PREV  SCREEN  control
    sequences will  be generated.  The number  of user screens is
    indicated  in  the title  of  the menu.   In  this particular
    example, since only 1 user  screen is needed, the NEXT SCREEN
    control sequence is not enabled.

-------------------------------------------------------------------------------
| EDIT FUNCTIONS: Undeleting a function                                       |
|                                                                             |
|                       FUNCTIONS TO BE DELETED menu 1 out of 1               |
|                                                                             |
| (1) Z1                                                       (3) Z3         |
| (2) Z2                                                       (4) Z4         |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
| | ESCx? | ESCxq | ESCxr     | ESCxt  | ESCxp  | ESCxi | ESCxm   | ESCx>   | |
| | HELP  | QUIT  | REDISPLAY | TOP    | PREV   | INPUT | MULTICS | NEXT    | |
| |       |       | SCREEN    | SCREEN | SCREEN | TEXT  | MODE    | CONTROL | |
-------------------------------------------------------------------------------


MTB 636                                Multics Technical Bulletin

5.4.9 Undelete Functions Input Text Mode User Screen
    In input text  mode, choices for all linked  user screens are
    available.  It  is not required  to know which  user screen a
    particular choice is on.  The NEXT SCREEN control sequence is
    not enabled.

-------------------------------------------------------------------------------
| EDIT FUNCTIONS: Undeleting a function                                       |
|   Waiting for you to enter the name of the function                         |
| _                                                                           |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|| ESCx? | ESCxq | ESCxr     | ESCxt  | ESCxp  | ESCxd   | ESCxm   | ESCx>   ||
|| HELP  | QUIT  | REDISPLAY | TOP    | PREV   | DISPLAY | MULTICS | NEXT    ||
||       |       | SCREEN    | SCREEN | SCREEN | MENU    | MODE    | CONTROL ||
-------------------------------------------------------------------------------


Multics Technical Bulletin                                MTB 636

5.5 Personalize Xservice User Screen
    The  personalize Xservice  user screen  is a  multiple choice
    user  screen  which allows  the  user to  set  various static
    aspects of  his Xservice environment.  The  choices depend on
    the current  settings.  The following example  shows the menu
    as it  would look to  a person the  first time he  enters the
    Xservice subsystem.

    If the FUNCTIONS user screen is  set to be shown as the first
    user screen then choice one below will be "Display TOP SCREEN
    first".   If  the interactive  message window  is not  on the
    screen  then  choice  two  will be  "Add  interactive message
    window".   If  the  user's  terminal  does  not  have  enough
    function keys or  a home key then choice 3  below will not be
    listed and the  indexes of the other choices  will be reduced
    by  1.   Choices 4  through  7 will  display input  text user
    screens prompting for various information.  Any editor, which
    takes as its  first and only required argument  the path to a
    segment and in  which you can use the  video line editor, may
    be used.  In addition, all standard Multics editors (qx, ted,
    emacs) may be used.

5.5.1 Limited Response Mode

-------------------------------------------------------------------------------
| PERSONALIZE XSERVICE                                                        |
|                                                                             |
|                              PERSONALIZE XSERVICE                           |
|                                                                             |
| (1) Display FUNCTIONS user screen first   (5) Set printout header           |
| (2) Remove interactive message window     (6) Set printout destination      |
| (3) Use special keys for control          (7) Set printout station          |
| (4) Set text editor                       (8) Edit function search rules    |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|    | ESCx? | ESCxq | ESCxr     | ESCxp  | ESCxi | ESCxm   | ESCxs      |    |
|    | HELP  | QUIT  | REDISPLAY | PREV   | INPUT | MULTICS | SUGGESTION |    |
|    |       |       | SCREEN    | SCREEN | TEXT  | MODE    |            |    |
-------------------------------------------------------------------------------


MTB 636                                Multics Technical Bulletin

5.5.2 Input Text Mode

-------------------------------------------------------------------------------
| PERSONALIZE XSERVICE                                                        |
|   Waiting for you to enter your choice                                      |
| _                                                                           |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|   | ESCx? | ESCxq | ESCxr     | ESCxp  | ESCxd   | ESCxm   | ESCxs      |   |
|   | HELP  | QUIT  | REDISPLAY | PREV   | DISPLAY | MULTICS | SUGGESTION |   |
|   |       |       | SCREEN    | SCREEN | MENU    | MODE    |            |   |
-------------------------------------------------------------------------------

5.5.3 Prompting for Editor User Screen
    If the user  does not wish to change  the current editor then
    he may  issue the PREV  SCREEN control sequence  to return to
    the PERSONALIZE XSERVICE user screen  or TOP SCREEN to return
    the XSERVICE TOP SCREEN without changing the current value of
    the editor.

-------------------------------------------------------------------------------
| PERSONALIZE XSERVICE: Set text editor (currently ted)                       |
|   Waiting for you to enter the name of editor you wish to use               |
| _                                                                           |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|   | ESCx? | ESCxq | ESCxr     | ESCxt  | ESCxp  | ESCxm   | ESCxs      |    |
|   | HELP  | QUIT  | REDISPLAY | TOP    | PREV   | MULTICS | SUGGESTION |    |
|   |       |       | SCREEN    | SCREEN | SCREEN | MODE    |            |    |
-------------------------------------------------------------------------------


Multics Technical Bulletin                                               MTB 636

5.5.4 Prompting for Printout Header User Screen
    If  the user  does not  wish to  change the  current printout
    header then he may issue  the PREV SCREEN control sequence to
    return to the PERSONALIZE XSERVICE  user screen or TOP SCREEN
    to  return  the  XSERVICE  TOP  SCREEN  without  changing the
    current value of the printout header.

-------------------------------------------------------------------------------
| PERSONALIZE XSERVICE: Set printout header (currently Davids)                |
|   Waiting for you to enter the header you wish on your printouts            |
| _                                                                           |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|   | ESCx? | ESCxq | ESCxr     | ESCxt  | ESCxp  | ESCxm   | ESCxs      |    |
|   | HELP  | QUIT  | REDISPLAY | TOP    | PREV   | MULTICS | SUGGESTION |    |
|   |       |       | SCREEN    | SCREEN | SCREEN | MODE    |            |    |
-------------------------------------------------------------------------------

5.5.5 Prompting for Printout Destination User Screen
    If  the user  does not  wish to  change the  current printout
    destination  then  he  may  issue  the  PREV  SCREEN  control
    sequence to return to the PERSONALIZE XSERVICE user screen or
    TOP SCREEN to return the XSERVICE TOP SCREEN without changing
    the current value of the printout destination.

-------------------------------------------------------------------------------
| PERSONALIZE XSERVICE: Set printout destination (currently DVP-Z30)          |
|   Waiting for you to enter the destination you wish on your printouts       |
| _                                                                           |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|   | ESCx? | ESCxq | ESCxr     | ESCxt  | ESCxp  | ESCxm   | ESCxs      |    |
|   | HELP  | QUIT  | REDISPLAY | TOP    | PREV   | MULTICS | SUGGESTION |    |
|   |       |       | SCREEN    | SCREEN | SCREEN | MODE    |            |    |
-------------------------------------------------------------------------------


MTB 636                                               Multics Technical Bulletin

5.5.6 Prompting for Printout Station User Screen
    If  the user  does not  wish to  change the  current printout
    station then he may issue the PREV SCREEN control sequence to
    return to the PERSONALIZE XSERVICE  user screen or TOP SCREEN
    to  return  the  XSERVICE  TOP  SCREEN  without  changing the
    current value of the printout station.

-------------------------------------------------------------------------------
| PERSONALIZE XSERVICE: Set printout station (currently pmdc_10c)             |
|   Waiting for you to enter the station your printouts will be sent to       |
| _                                                                           |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|   | ESCx? | ESCxq | ESCxr     | ESCxt  | ESCxp  | ESCxm   | ESCxs      |    |
|   | HELP  | QUIT  | REDISPLAY | TOP    | PREV   | MULTICS | SUGGESTION |    |
|   |       |       | SCREEN    | SCREEN | SCREEN | MODE    |            |    |
-------------------------------------------------------------------------------


Multics Technical Bulletin                                MTB 636

5.6 Functions Menu User Screen
    The functions  user screen lists  all the functions  that the
    user  can  execute.   The  list is  formed  by  selecting all
    Xservice applications found via the xservice_functions search
    paths  and  then  removing  those  functions  that  have been
    deleted.  If  two search paths yield  functions with the same
    name only the  first one found is used.   The first directory
    in the search  path list is the directory  used to keep track
    of the applications the user has added.  This allows the user
    to  replace  system functions  if he  wants to.   By default,
    there  will be  only 1  other path  in the xservice_functions
    search  paths.   That path  will be  the location  for system
    supplied functions.   It will require a  change to the system
    segment that defines default search  paths.  The user will be
    able  to  manipulate the  search path  list via  the standard
    system search path commands.

    The  first  time  (in  any  process)  that  a  user  sees the
    Functions   user   screen   the  functions   are   listed  in
    alphabetical order.  After the first time, the functions keep
    their  relative  placement with  new functions  (either added
    directly  by  the  user  or  added  to  a  directory  in  the
    xservice_functions  search_paths) following  those previously
    listed (again  the new functions are  in alphabetical order).
    A usage count  of each function is keep and  the user has the
    option  of  reordering the  functions by  count via  the EDIT
    FUNCTIONS  user  screen.  Macros  will  also be  reordered by
    usage count.

    The  following example  lists only 4  functions.  In practice
    there is no  limit to the number of  possible functions.  Two
    macros (choices 1 & 2) are also listed.


MTB 636                                Multics Technical Bulletin

5.6.1 Limited Response Mode
    If the number of functions plus macros exceeds that which may
    be placed on a single  user screen, extra user screens linked
    together  via  the  NEXT   SCREEN  and  PREV  SCREEN  control
    sequences will  be generated.  The number  of user screens is
    indicated  in  the title  of  the menu.   In  this particular
    example, since only 1 user  screen is needed, the NEXT SCREEN
    control sequence is not enabled.

-------------------------------------------------------------------------------
| FUNCTIONS                                                                   |
|                                                                             |
|                         FUNCTIONS MENU menu 1 out of 1                      |
|                                                                             |
| (1) fast_mail                                           (4) stat            |
| (2) fast_forum                                          (5) mail            |
| (3) archive                                             (6) forum           |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|  | ESCx? | ESCxq | ESCxr     | ESCxp  | ESCxi | ESCxo | ESCxl | ESCx>   |   |
|  | HELP  | QUIT  | REDISPLAY | PREV   | INPUT | OPEN  | LIST  | NEXT    |   |
|  |       |       | SCREEN    | SCREEN | TEXT  | MACRO | MACRO | CONTROL |   |
-------------------------------------------------------------------------------


Multics Technical Bulletin                                MTB 636

5.6.2 Input Text Mode
    In input text  mode, choices for all linked  user screens are
    available.  It  is not required  to know which  user screen a
    particular choice  is on.  Text NEXT  SCREEN control sequence
    is not enabled.

-------------------------------------------------------------------------------
| FUNCTIONS                                                                   |
|   Waiting for you to enter the name of the function to be executed          |
| _                                                                           |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
| | ESCx? | ESCxq | ESCxr     | ESCxp  | ESCxd   | ESCxo | ESCxl | ESCx>   |  |
| | HELP  | QUIT  | REDISPLAY | PREV   | DISPLAY | OPEN  | LIST  | NEXT    |  |
| |       |       | SCREEN    | SCREEN | MENU    | MACRO | MACRO | CONTROL |  |
-------------------------------------------------------------------------------


MTB 636                                Multics Technical Bulletin

6.0 HELP

6.1 Menu Choice, Prompt, and Control Sequence Help
    This form of help is initiated  when the user enters the HELP
    control  sequence.   The  current  contents of  the  main and
    control  windows  remains  unchanged,  the  Xservice  message
    window is updated to  contain instructions for selecting what
    help is  wanted.  The user  enters a response  in exactly the
    same way  as he would if  he were not in  help mode.  He will
    get  help about  a control  sequence if  he enters  a control
    sequence.  For an input text user screen, he will get help on
    how  to respond  to the prompt  if he  enters any non-control
    sequence.   For a  multiple choice  user screen,  he will get
    help for a choice if he selects that choice.  Once a response
    is entered a display text user  screen is used to display the
    actual help text.

6.1.1 Example  Input  Text  User  Screen after  the  HELP control
    sequence has been entered

-------------------------------------------------------------------------------
| EDIT FUNCTIONS: Adding function to functions menu                           |
|   Waiting for you to enter the full pathname of the function to be added    |
| _                                                                           |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
| HELP mode: Enter SPACE RETURN for help about the information requested      |
|            for help about a control sequence enter that control sequence.   |
|   | ESCx? | ESCxq | ESCxr     | ESCxt  | ESCxp  | ESCxm   | ESCxs      |    |
|   | HELP  | QUIT  | REDISPLAY | TOP    | PREV   | MULTICS | SUGGESTION |    |
|   |       |       | SCREEN    | SCREEN | SCREEN | MODE    |            |    |
-------------------------------------------------------------------------------


Multics Technical Bulletin                                MTB 636

6.1.2 Example User Screen Showing the help text
    Since The text is only 1  page long the control sequences for
    FORWARD PAGE and GOTO PAGE are not enabled.

-------------------------------------------------------------------------------
| HELP: full pathname                                                         |
|                                                             Page 1 out of 1 |
| A  full  pathname  is a string that represents a file's position within the |
| Multics directory system. It is made up by concatenating  the  file's  name |
| with all the superior directories leading back to the root directory. As an |
| example:                                                                    |
|         >udd>dir1>dir2>dir3>file_name                                       |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|       | ESCxq | ESCxr     | ESCxt  | ESCxp  | ESCxm   | ESCxs      |        |
|       | QUIT  | REDISPLAY | TOP    | PREV   | MULTICS | SUGGESTION |        |
|       |       | SCREEN    | SCREEN | SCREEN | MODE    |            |        |
-------------------------------------------------------------------------------

6.1.3 Example Multiple Choice User  Screen after the HELP control
    sequence has been entered

-------------------------------------------------------------------------------
| FUNCTIONS                                                                   |
|    Waiting for you to enter the name of a function to be executed           |
| _                                                                           |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
|                                                                             |
| HELP mode: Select a choice for help about that choice or for help about a   |
|            control sequence enter that control sequence.                    |
|   | ESCx? | ESCxq | ESCxr     | ESCxp  | ESCxd   | ESCxm   | ESCxs      |   |
|   | HELP  | QUIT  | REDISPLAY | PREV   | DISPLAY | MULTICS | SUGGESTION |   |
|   |       |       | SCREEN    | SCREEN | MENU    | MODE    |            |   |
-------------------------------------------------------------------------------


MTB 636                                Multics Technical Bulletin

6.2 Error Help
    Xservice  provides for  a hierarchy  of error  messages.  The
    original error  message is displayed in  the Xservice message
    window and  contains the minimum  amount of detail  about the
    error.  By  entering the EXPLAIN ERROR  control sequence, the
    user can get  a more detailed explanation of  the error.  The
    detailed explanation is shown in  a display text user screen.
    The text of  the detailed error message is  organized so that
    the  highest level  of explanation  (the level  requiring the
    least  understanding  of  the  underlying  operating  system)
    appears first  with explanations requiring  more knowledge on
    the following pages.  The amount of detail and its level will
    depend on the type of error.   Once an error occurs, the user
    has the option of requesting more  detail or going on to some
    other  task  (in which  case the  option for  requesting more
    detail is disabled).   The user is deemed to  have gone on to
    some other task if he responds with any keystrokes except the
    EXPLAIN  ERROR,  NEXT  CONTROL,  PREV  CONTROL,  or REDISPLAY
    control sequences.  The user may leave EXPLAIN ERROR mode via
    the PREV SCREEN control sequence with the option of returning
    to EXPLAIN ERROR mode as long as he does not start some other
    task.   If the  user leaves  EXPLAIN ERROR  mode via  the TOP
    SCREEN control  sequence, the option of  returning to EXPLAIN
    ERROR mode is no longer open.

6.2.1 Example Explain Error User Screen Level 1

-------------------------------------------------------------------------------
| EXPLAIN ERROR                                                               |
|                                                             Page 1 out of 4 |
| The function you wish to add to your functions list could not be found      |
| your current search rules:                                                  |
|                   initiated_segments                                        |
|                   referencing_dir                                           |
|                   working_dir                                               |
|                   >system_library_standard                                  |
|                   >system_library_unbundled                                 |
|                   >system_library_1_                                        |
| Attention:                                                                  |
|   The function named "foobar" could not be found.                           |
|   | ESCxq | ESCxr     | ESCxt  | ESCxp  | ESCxf   | ESCxg | ESCxs      |    |
|   | QUIT  | REDISPLAY | TOP    | PREV   | FORWARD | GOTO  | SUGGESTION |    |
|   |       |           | SCREEN | SCREEN | PAGE    | PAGE  |            |    |
-------------------------------------------------------------------------------


Multics Technical Bulletin                                               MTB 636

-------------------------------------------------------------------------------
| EXPLAIN ERROR                                                               |
|                                                             Page 2 out of 4 |
|                   >system_library_1                                         |
|                   >system_library_tools                                     |
|                   >system_library_auth_maint                                |
|                   >system_library_network                                   |
|                                                                             |
|                                                                             |
|                                                                             |
| _                                                                           |
| Attention:                                                                  |
|   The function named "foobar" could not be found.                           |
|    | ESCxq | ESCxr     | ESCxt  | ESCxp  | ESCxb    | ESCxf   | ESCx>   |   |
|    | QUIT  | REDISPLAY | TOP    | PREV   | BACKWARD | FORWARD | NEXT    |   |
|    |       |           | SCREEN | SCREEN | PAGE     | PAGE    | CONTROL |   |
-------------------------------------------------------------------------------

-------------------------------------------------------------------------------
| EXPLAIN ERROR                                                               |
|                                                             Page 3 out of 4 |
| Search  rules  are  a  list  of  directories that are searched for find the |
| Xservice  functions.   Each  directory  is examined in order and the search |
| stops as soon as a directory containing the named function is found.        |
|                                                                             |
| Search rules cannot be changed while in the Xservice environment.           |
|                                                                             |
| A  function  that  cannot  be found by using your search rules may still be |
| added  by  locating  it  via  its absolute pathname.  The absolute pathname |
| Attention:                                                                  |
|   The function named "foobar" could not be found.                           |
|    | ESCxq | ESCxr     | ESCxt  | ESCxp  | ESCxb    | ESCxf   | ESCx>   |   |
|    | QUIT  | REDISPLAY | TOP    | PREV   | BACKWARD | FORWARD | NEXT    |   |
|    |       |           | SCREEN | SCREEN | PAGE     | PAGE    | CONTROL |   |
-------------------------------------------------------------------------------


MTB 636                                               Multics Technical Bulletin

-------------------------------------------------------------------------------
| EXPLAIN ERROR                                                               |
|                                                             Page 4 out of 4 |
| added  by  locating  it  via  its absolute pathname.  The absolute pathname |
| identifies  the  directory  the  function  is  in by listing all the parent |
| directories.   As  an  example  the pathname to your working directory (the |
| directory you are current in) is:                                           |
|                       >udd>Multics>Davids>eus                               |
|                                                                             |
|                                                                             |
|                                                                             |
| Attention:                                                                  |
|   The function named "foobar" could not be found.                           |
|   | ESCxq | ESCxr     | ESCxt  | ESCxp  | ESCxf    | ESCxg | ESCxs      |   |
|   | QUIT  | REDISPLAY | TOP    | PREV   | BACKWARD | GOTO  | SUGGESTION |   |
|   |       |           | SCREEN | SCREEN | PAGE     | PAGE  |            |   |
-------------------------------------------------------------------------------


Multics Technical Bulletin                                MTB 636

6.3 Enabled Control Sequence List
    The  control  window will  at all  times display  the control
    sequences that are permissible for the next input.

7.0 MACROS

7.1 Overview
    The  Xservice  subsystem  allows  the  user  to  define macro
    commands to  help facilitate the  use of the  system.  Macros
    may be defined from any multiple choice user screen where the
    OPEN  MACRO  control sequence  is  enabled.  Once  defined, a
    macro appears in the menu like any other menu choice.  Macros
    are listed after the original  menu choices in the order that
    they  were defined  (for menus  which comprise  more than one
    user  screen, the  macros are placed  at the end  of the last
    user  screen in  the chain).  The  exception to  this is that
    macros defined  in the functions menu  will be reordered when
    the user issues the reorder request (see section 5.4).

    Macros are  made up of static  responses and dynamic response
    flags to user screens.  Static responses are recorded as part
    of the macro and are  issued when the appropriate user screen
    is reached.   The user screen  is not displayed  to the user.
    Dynamic  response flags  indicate that  the response  for the
    given  user  screen  is to  come  from the  user,  these user
    screens are displayed to the user.

7.2 Macro Definition
    A  macro  may  be  defined whenever  the  OPEN  MACRO control
    sequence appears in the control  window.  When the OPEN MACRO
    control  sequence  is issued,  the  user is  placed  in macro
    definition  mode.  The  user will  see the  control sequences
    USER  INPUT  and CLOSE  MACRO enabled  and the  status window
    window will indicate that he is in macro definition mode.

    With  a  few exceptions,  every keystroke  that the  user now
    types is recorded as part of the macro definition.  The first
    exception is the HELP control  sequence, the user may request
    help on  any control sequence, menu  choice or prompt without
    any effect on the macro  definition.  The second exception is
    the USER  INPUT control sequence.  When  the user issues this
    control sequence, it indicates that  the response to the user
    screen is not to be recorded  as part of the macro.  Instead,
    the  dynamic response  flag will be  set and  the user screen
    will  be displayed  to the user  when the  macro is executed.
    The third  exception is an  input that causes  an error.  Any
    input that causes an error  is not recorded, further requests
    for  detailed  error  messages  and paging  within  the error


MTB 636                                Multics Technical Bulletin

    message text  are not recorded.   The final exception  is the
    CLOSE MACRO  control sequence which indicates  that the macro
    definition  is to  terminate and the  user is  to leave macro
    definition mode.

    After the  user has entered the  CLOSE MACRO control sequence
    but before  he actually leaves  macro definition mode,  he is
    queried  for a  textual description  of the  macro which will
    appear in the menu.  If the description matches a description
    for  an already  existing menu option  the user is  told of a
    conflict  and  queried  for  a  new  description.   The macro
    definition is aborted if the  user answers the prompt for the
    description with either the PREV SCREEN or TOP SCREEN control
    sequences.

    After leaving macro definition mode,  the user is left at the
    last user screen of the macro command.

    Macro commands may contain any number of user screens and any
    response which is legal.

7.3 Displaying A Macro
    The LIST MACRO control sequence  will be enabled whenever the
    current  user screen  contains macros.   When the  LIST MACRO
    control  sequence  is  issued,  the  current  user  screen is
    replaced with another one  containing just those menu choices
    which are macros.  Selection of  a menu choice will clear the
    screen  and  list the  names  of the  user screens  and their
    recorded responses  (or an indication that  the responses are
    dynamic) in a display text user  screen.  The user is left in
    the display macro user screen until he issues the PREV SCREEN
    control sequence.

7.4 Deleting A Macro
    The KILL MACRO control sequence  will be enabled whenever the
    current  user screen  contains macros.   When the  KILL MACRO
    control  sequence  is  issued,  the  current  user  screen is
    replaced with another one  containing just those menu choices
    which are macros.  Selection of  a menu choice will cause the
    macro to be deleted and the menu updated so that the macro no
    longer appears on  it.  The user remains in  the delete macro
    menu until he issues the PREV SCREEN control sequence.


Multics Technical Bulletin                                MTB 636

8.0 USER SUGGESTIONS
    If  the  user's site  has established  an xservice_suggestion
    mailbox,  the  SUGGESTION control  sequence will  be enabled.
    The   xservice_suggestion   mailbox    is   found   via   the
    xservice_suggestion  search paths.   By using  the SUGGESTION
    control  sequence,   the  user  may  accumulate   a  list  of
    suggestions   about   the   system.    This   list   will  be
    automatically mailed to  the xservice_suggestion mailbox when
    the user logs off the system or does a new_proc.  If for some
    reason the list is not  mailed (system crash for instance) it
    is  saved and  mailed the next  time the user  logs off after
    having  been   in  Xservice.   The  list   may  also  contain
    suggestions  from  this new  Xservice  session.  After  it is
    successfully  mailed to  the xservice_suggestion  mailbox the
    list is truncated.

    When the  user issues the  SUGGESTION control sequence  he is
    placed  in suggestion  mode.  The  text of  the suggestion is
    entered   in   the  Xservice   message  window   by  entering
    one-line-at-a-time.  It is done this way so that as little of
    the screen is  disturbed as possible in case  the user wishes
    to see  the screen as  he enters his  suggestion.  Suggestion
    mode  is terminated  when the  user enters  a line containing
    only  a  period.   If  the  user  finds  this  mode  of input
    bothersome, he may elect to  clear the main, Xservice message
    and control windows and use the cleared area as a "suggestion
    window" to enter new suggestions or modify previously entered
    suggestions  with   his  favorite  editor  (as   set  in  the
    personalize Xservice  user screen).  This is  done by issuing
    the  SUGGESTION control  sequence again.  When  the editor is
    exited, the user is still in  suggestion mode but back at the
    one-line-at-a-time  entry   scheme.   The  one-line-at-a-time
    suggestion mode status message is:

-------------------------------------------------------------------------------
| Suggestion mode: enter dot (.) return to exit, enter the SUGGESTION control |
|    sequence for a large window, all other control sequences are disabled.   |
-------------------------------------------------------------------------------

    The suggestion window status message is:

-------------------------------------------------------------------------------
| Suggestion mode: editing your suggestion file                               |
|   Remember to write the file before exiting the editor                      |
-------------------------------------------------------------------------------


MTB 636                                Multics Technical Bulletin

9.0 MULTICS MODE
    Multics mode allows  the user to be at  Multics command level
    while still  having Xservice in  his stack and  being able to
    return  to  it.   The  main,  Xservice  message,  and control
    windows are  cleared and are  used to enter  commands and get
    Multics responses.   The interactive message  window does not
    change  and, if  it was  being used,  will still  capture and
    display  all interactive  messages.  The  status window gives
    instructions for  returning to the  Xservice environment.  It
    will  not  be  possible for  the  user to  release  the stack
    through Xservice and destroy  his invocation.  He must return
    to Xservice and  exit it via the QUIT  control sequence.  The
    MULTICS  MODE   control  sequence  is   enabled  or  disabled
    depending  on how  the application  designer set  up the user
    screens.   It  is  not under  the  control of  the  user (ala
    xmail's  -mm  control  argument).   The  Multics  mode status
    message is:

-------------------------------------------------------------------------------
| Multics mode: to return to xservice enter the command:                      |
|    return_to_xservice, short name rtx                                       |
-------------------------------------------------------------------------------


Multics Technical Bulletin                                MTB 636

10.0 XSERVICE PROTOTYPE
    A prototype exists  at >udd>m>nsd>xs_proto>xs_proto3.  It may
    be executed  by initiating xs_proto3 -all  and then executing
    xs_proto3.  There are many  differences between the prototype
    and what is proposed in this document.  The major differences
    are:
    1) The control window is only 2 lines high and is optional.
    2) Many   of   the   control  sequences   proposed   are  not
       implemented.
    3) Macro definition  appears only in the  edit functions menu
       as a menu option, also it is not implemented.
    4) The display  text user screen is  not implemented, text is
       written  to the  main window and  controlled via more-mode
       prompting.
    5) The detailed error message is a sequence of error messages
       instead of 1 long text screen.
    Even with these significant  differences are other minor ones
    the prototype gives a feel for what is being proposed in this
    document.

11.0 WHAT NEXT
    With the publication  of this document the first  step of the
    Executive  Service project  has been taken.   While an actual
    time  table  for future  steps cannot  be given  the relative
    order of those steps can be listed:
    1  Publish MTB 637, Xservice high level design
    2  Hold a design review
    3  Hold  the  Conceptual Design  Review and  obtain marketing
       approval
    4  Update  and  reissue MTBs  636 and  637, publish  MTB 638,
       Xservice user interface extender subsystem
    5  Publish MTBs outlining the  user interface for an Xservice
       mail interface and an Xservice forum interface.
    6  Publish an MTB  on the program level interface  and hold a
       final design review if necessary.


MTB 636                                Multics Technical Bulletin

12.0 REFERENCES

[1] Jamar, Pamela CASUAL USER  BEHAVIOR IN INTERACTIVE COMPUTING;
    Seventh  Annual Honeywell  International Software Conference,
    May 2-4 1983.

[2] Dray,  Susan; HUMAN FACTORS:  MAKING IT  EASIER TO  MAKE LIFE
    EASIER   FOR   THE   END  USER;   Seventh   Annual  Honeywell
    International Software Conference, May 2-4 1983.

[3] Frankosky, Richard; HUMAN FACTORS GUIDE FOR SOFTWARE PLANNERS
    AND  DEVELOPERS;   Third  edition  January   1983,  Honeywell
    Information Systems Inc.