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.