Multics Technical Bulletin                                MTB-740
MOWSE Overview

To:       Distribution

From:     Jim Gee
          Michael Flegel

Date:     4 April 1986

Subject:  Multics   Online  Work   Station  Environment   (MOWSE)
          Overview

1.  Abstract

This  MTB presents  the  functional  specifications of  a Multics
Online Work  Station Environment (MOWSE) package  for Multics and
IBM-PC  compatibles running  MS-DOS.   There  are five  MTBs that
describe  the  design  and   implementation  of  MOWSE  and  some
applications that use MOWSE facilities.  The five MTBs are:

     MTB-740   MOWSE Overview
     MTB-741   MOWSE Design, Commands and Subroutines
     MTB-742   MOWSE Background File Transfer (BFT) Facility
     MTB-743   MOWSE Personal Computer File Backup (PCFB) Facility
     MTB-744   MOWSE Terminal Emulator

Comments on this MTB should be sent to the authors -

     via Multics mail to:

        Gee@System-M or Flegel@System-M

     via forum on System-M to:

        >udd>m>jms>mtgs>workstation_working_group (wwg)

     via telephone to:

        ACTC (403) 284-6400

_________________________________________________________________

Multics project  internal documentation; not to  be reproduced or
distributed outside the Multics project.


MTB-740                                Multics Technical Bulletin
                                                   MOWSE Overview

                        TABLE OF CONTENTS

Section    Page  Subject
=======    ====  =======

1          i     Abstract
2          1     Preface
3          2     System Requirements
4          3     Introduction
5          4     The Current Multics-PC Environment
6          6     The Multics Online Work Station Environment
7          7     MOWSE Capabilities
8          9     Establishing MOWSE
8.1        9     . . Starting up MOWSE on the PC
8.2        11    . . Starting up MOWSE on Multics
8.3        12    . . Running the Terminal Emulator
8.4        12    . . Getting a Background Application Started
9          14    Glossary/Usage


Multics Technical Bulletin                                MTB-740
MOWSE Overview

2.  Preface

Purpose:

The  purpose of this  MTB is to  introduce the concepts  behind a
mechanism  called  the  Multics  Online  Work Station Environment
(MOWSE).  MOWSE  provides the means for  cooperating processes on
two  different computers  to communicate  with each  other and to
exchange  requests for  information or  processing.  The  current
implementation  of MOWSE  is on  Multics and  the IBM-PC  running
MS-DOS 2.0 or greater.

Audience:

This document  is intended to provide  a relatively non-technical
overview of MOWSE.  The abstract  lists the other MTBs which deal
with the design of MOWSE and related topics.

Directory to the document:

The   background  for   this   proposal   is  presented   in  the
Introduction.  Following that, the current scenario is discussed,
with an  analysis of the present  capabilities of a PC  linked to
Multics.  The MOWSE scenario is then diagrammed, with an analysis
of  the   added  capabilities  available  through   the  proposed
environment.   Finally,  a  view  of  the  system  from  a user's
perspective is presented.  A glossary/usage section at the end of
the  document  provides  definitions  of  terms  used to describe
MOWSE, as well as expansions of the acronyms used.

Acknowledgements:

We would  like to thank Hal  Hoover and Brian Westcott  for their
contributions.


MTB-740                                Multics Technical Bulletin
                                                   MOWSE Overview

3.  System Requirements

The current implementation of MOWSE is  designed to run on an IBM
PC (or  close compatible) that is  using MS-DOS , release  2.0 or
greater.  A minimum of 256K  of memory is suggested if background
applications are to  be run.  Although, MOWSE does  not require a
hard  disk, it is  strongly recommended that  one be used  if any
background  activities that  perform disk  accesses (such  as the
Background File Transfer facility) are to be executed.

MOWSE cannot be used in a  Multics DSA environment since both DSA
and MOWSE utilize incompatible versions of tc_io_.


Multics Technical Bulletin                                MTB-740
MOWSE Overview

4.  Introduction

Background

There  has   been  much  discussion  by   the  Multics  community
concerning the future  role of the Personal Computer  (PC) in the
Multics  world.   The  present  role  of  the  Personal Computer,
terminal  emulation,   is  a  very  minor   one.   With  terminal
emulation, two systems are physically  available, but only one is
truly utilized.  With this in  mind, discussion has centered upon
how the Personal Computer can  be better utilized for the Multics
user.

Two opposing  philosophies have developed depending  on the needs
of the user.  One philosophy involves that of Multics Master - PC
slave,  where  the  user  does  the  majority  of his/her work on
Multics.  The second  philosophy is one of a PC  master - Multics
slave, where  the user does the  majority of his/her work  on the
Personal  Computer  occasionally  requiring  the  service  of the
Multics file system, mail system, etc.

Proposed Solution

Multics  users should  not have  to adopt  one philosophy  at the
expense of the other.  Rather,  an environment should be provided
that  allows  individual  users  and  sites  to  define their own
required relationship.  MOWSE provides  the means for cooperating
processes  on two  different computers  to communicate  with each
other  and to  exchange requests  for information  or processing.
MOWSE is  designed in such a  way that, given the  limitations of
the  operating systems under  which it operates,  these processes
may   be  active  in   the  background  while   other  foreground
activities, not necessarily related to MOWSE, take place.

MOWSE does not assume that one  of the processes is dominant over
the other, or that certain functionality is only available on one
of the machines.   Every attempt has been made  during the design
to  ensure  that  the  same  functionality,  in  terms  of  MOWSE
requests, exists on both machines.


MTB-740                                Multics Technical Bulletin
                                                   MOWSE Overview

5.  The Current Multics-PC Environment

The  Multics user with  a Personal Computer  on his/her desk  has
access  to  two  complete  systems.   Each  system  has  its  own
resources and associated software.   Some resources are necessary
for the system to function,  while others are optional and merely
enhance the  system.  The functions performed by  each system are
dependent on the resources known to it and the software directing
those  resources.  It  is the  resources and  associated software
that determine the capabilities  of each system.  Because certain
resources  are  necessary  for  the  system  to function, certain
capabilities  are  always   possible,  although  not  necessarily
utilized.  Thus,  to determine the capabilities of  a system, the
resources must  be known.  Below  are the resources  available to
Multics and Personal Computers.

     PC RESOURCES                     RESULTANT CAPABILITY
     a single-user operating
        system                    - resource management
     a dedicated processing unit  - task execution
     a monitor                    - screen update
     a keyboard                   - input receipt
     a communications port        - external communication
     a file system                - file management
     storage devices              - data retention (tape, disk
                                    controllers)
     a printer                    - hard copy production
     other peripherals

     MULTICS RESOURCES                RESULTANT CAPABILITY
     a multi-user operating
        system (Multics)          - resource management
     a processing unit            - task execution
     a communications port        - external communications
     a file system                - file management
     storage devices              - data retention (tapes, disks)
     a printer                    - hard copy production

From the  above it can be  seen that both systems  are capable of
performing  many functions  through the  resources known  to each
system.  Applications running on  Multics use the resources known
to Multics to complete their  task, while applications running on
the PC use the resources known to the PC to complete theirs.


Multics Technical Bulletin                                MTB-740
MOWSE Overview

Currently,  individuals may  establish a  connection between  the
Personal Computer  and Multics.  To do  so, the PC must  become a
resource known to Multics, namely a terminal.  As a terminal, the
PC  directs   data  among  the  keyboard,  the   screen  and  the
communications port.  It takes on the capabilities of a terminal.
All other  PC capabilities are unknown.   Applications running on
Multics use  the capabilities of  the terminal to  complete their
function.  To  use the PC as  a Personal Computer, the  user must
escape back to the PC, and quit the terminal emulator.  He/she is
now free  to run applications  on the PC.   Such applications use
the  resources of  the Personal  Computer and  typically have  no
knowledge  of a  powerful system  at the  other end  of the line,
namely Multics.


MTB-740                                Multics Technical Bulletin
                                                   MOWSE Overview

6.  The Multics Online Work Station Environment

The previous  section presented a  brief overview of  the current
Multics-PC  link.   Such  a   link  allows  for  Multics-terminal
interaction.  As a terminal emulator, the Personal Computer loses
its  status  as  a  system,  leaving  many  of  the  PC resources
inaccessible  while others  play a  very insignificant  role.  As
anything other  than a terminal  emulator, the PC  cannot utilize
the power of Multics.

A  more powerful  environment is  one that  incorporates the  two
systems, when they are available.  Each system acts as a resource
to the other, thereby providing many additional resources and the
associated  capabilities.  The  additional resources  may be ones
not  previously  available,  or  may  be  duplicates  of  already
existing resources.   As a result, applications that  are able to
access  this larger  resource pool  will be  able to  (1) perform
tasks that were not previously possible and (2) choose the system
on  which   the  task  is  best  performed.    The  latter  point
encompasses  those tasks that  a system currently  performs, that
may be better suited to another system.

MOWSE provides  such an environment  by adding the  capability of
loading  and executing applications  in the background  on either
computer.

Background activities are activities that do not utilize user I/O
facilities  on  either  computer  at  any  time except explicitly
through MOWSE.  Although MOWSE will accept requests for user I/O,
there is  no guarantee that  the requested I/O  will be performed
unless  a   MOWSE  terminal  emulator  is   running.   Background
activities  may indeed  generate output  for the  user, but  this
output  is  buffered  until  the  user  issues  a request for its
display.  Until such a request is issued, the screen is available
for  other tasks  the user   wishes to  perform.  The  capability
driver will  provide a set  of tools for  applications running in
the background.  For example, file  transfer and the Multics mail
system are  applications that could  potentially make use  of the
background tools provided by the capability driver.


Multics Technical Bulletin                                MTB-740
MOWSE Overview

7.  MOWSE Capabilities

MOWSE provides a means by which capabilities may communicate with
each other.  Within this  environment, the following features are
available on both systems:

1.  Data Reliability

    Data transmitted between the two systems is reliable.

    To  accommodate  the  various  communication  media  and  the
    associated differences, the communications  link of the MOWSE
    will

       - allow transparent data for 7 or 8-bit connections

       - provide error-free data transmission in all cases

       - allow for full-duplex communications when available

2.  Support For Background Activities

    MOWSE provides functionality that  will enable an application
    running on either  computer to invoke a program  on the other
    computer.   The  invoked  program  can  inform  MOWSE  of its
    presence and provide MOWSE with the address of a routine that
    can  receive messages  from other  applications.  MOWSE  will
    activate the  program whenever a message for  it is received,
    even if another program is running at the time.

EXAMPLE:  File Transfer Applications
    Files may  be transferred between  Multics and the  PC in the
    background  while the  usual user  interactions occur  in the
    foreground.   Each  system  is  capable  of  transmitting and
    receiving  files  simultaneously.    File  transfers  may  be
    initiated from either system  at command or subroutine level.
    The file transfer application can use the background tools of
    the capability driver to achieve this end.

3.  The Application-Capability Interface

    Applications  running   on  either  system  may   access  the
    capabilities of  the other through the  capability interface.
    They may load any desired capabilities and use them.

    The  interface  provides  the  support  routines  that enable
    applications to


MTB-740                                Multics Technical Bulletin
                                                   MOWSE Overview

    - execute a command on the remote system

    - exchange  minor  capability   messages  between  background
        and/or foreground applications on either computer

    - verify that a specified capability or group of capabilities
        is supported by remote cpu

    - enter the background mode of operation

    - send error  messages to a  queue for subsequent  display in
        cases   where   errors   are   detected   by   background
        applications  and  the   foreground  application  is  not
        supported by MOWSE

    - send background messages to a queue for subsequent display

    - request for input from user into a background application

    Applications   may   use   the   above   to  access  external
    capabilities.  There is no restriction  on the types of tasks
    that  can be  offloaded.  The  only restriction  is that  the
    capability   must  exist   and  be   accessible  through  the
    capability driver.

The  above features comprise  the basic MOWSE  environment.  They
are always available.  Applications may use the features of MOWSE
to enhance the overall user environment.


Multics Technical Bulletin                                MTB-740
MOWSE Overview

8.  Establishing MOWSE

To use the  MOWSE features, the user must  establish a connection
between  the  capability  driver  on  Multics  and the capability
driver on the PC.  To  establish such a connection, the following
steps must be taken:

8.1.  Starting up MOWSE on the PC

MOWSE is started on the PC by typing in the "mowse" command along
with optional parameters.  The PC  MOWSE software will insert its
own  vector  addresses  in  low  DOS  memory  in order to capture
interrupts  from the  COM1 or  COM2 communications  ports, and to
receive  interrupts used by  the MOWSE software  library routines
for communicating  with MOWSE.  At this point  in the invocation,
MOWSE  will activate a  very primitive terminal  emulator program
that will  enable a user to  establish a link to  Multics, and to
log on to  Multics.  After having logged in, the  user can invoke
MOWSE on Multics as described in the following section.  When the
PC  receives a  RESET message  from Multics  in a  standard MOWSE
message  format,  the  MOWSE  environment  is  considered  to  be
established.  At this time, MOWSE  will stop the operation of the
primitive  terminal  emulator  and  issue  a  "terminate and stay
resident" call to MS-DOS which has  the effect of making MOWSE an
extension of MS-DOS.


MTB-740                                Multics Technical Bulletin
                                                   MOWSE Overview

A PC View of MOWSE:

                   _______
                   |RS232|
                   -------
                     /|
                      |
                     |/
                  __________
                  |terminal|
         |--------|emulator|<--------|
         |        |        |         |
         |        ----------         |
         |                           |
     ___|/__                    ____|_____
     |screen|                    |keyboard|
     --------                    ----------

Figure 1 - PC as Terminal Emulator

                             _______
                             |RS232|
                             -------
                               /|
                                |
                               |/
                           ___________
                           |MOWSE    |
                           |interrupt|
                           |handler  |
                           -----|-----
                                |
                  |-------------|-------------|
             ____|/___                 _____|/____
             |terminal|                 |background|
    |--------|emulator|<--------|       |capability|
    |        |        |         |       |driver    |
    |        ----------         |       ------|-----
    |                           |             |
___|/__                    ____|_____  _____|/_____
|screen|                    |keyboard|  |application|
--------                    ----------  -------------

Figure 2 - PC MOWSE Environment


Multics Technical Bulletin                                MTB-740
MOWSE Overview

8.2.  Starting up MOWSE on Multics

MOWSE is started on Multics  by issuing an "mowse" command.  This
will  cause  a  module  called  ws_io_  to  be  inserted into the
standard Multics  terminal I/O routings  as shown below.   At the
same time, MOWSE will establish  a timer interrupt that will call
MOWSE at fixed intervals in order to perform any outstanding I/O.
MOWSE will then  send a "RESET" message out over  the TTY channel
to inform the PC MOWSE that it is running.

A Multics View of MOWSE:

The diagram in Figure 3  (below) depicts the process terminal I/O
routings that are possible after implementation of MOWSE support.
The  vertical path labelled  (1) shows the  conventional routings
when  a user  process is  not using  either the  video system  or
MOWSE.   Path (2) represents  the case of  video being in  effect
without MOWSE.  Paths (3) and (4) show the I/O streams when MOWSE
is in effect without and with the video system, respectively.

  (1)         (2)              (3)                  (4)

user_i/o    user_i/o    user_i/o background  user_i/o background
--------    --------    -------- ----------  -------- ----------
   |           |           |           |        |           |
 tty_     window_io_     ws_io_        |   window_io_       |
   |        tc_io_         |           |     tc_io_         |
   |           |           |           |        |           |
   |           |           |           |    ws_tty_         |
   |           |           |           |        |           |
   |           |            ___   ___/          ___   ___/
   |           |                 /                   /
   |           |                ws_                  ws_
   |           |                 |                    |
              |               tty_                 tty_
     ____________   __________/____________________/
                    /
                   hcs_
                    |
                 TERMINAL

Figure 3 - Possible I/O Routings


MTB-740                                Multics Technical Bulletin
                                                   MOWSE Overview

The establishment of MOWSE results in the creation of two logical
I/O channels over the one physical I/O channel linking Multics to
the  PC.   One  of  these  I/O  channels  is  referred  to as the
"foreground"  channel because  all traffic  between the  user_i/o
switch on Multics and a terminal emulator on the PC will use this
channel.  The  other channel is  referred to as  the "background"
channel  because all traffic  resulting from MOWSE  library calls
from background applications on either system is routed over this
channel.

The essential difference between  a non-MOWSE environment and the
MOWSE environment is the existence  and support of the background
channel.

8.3.  Running the Terminal Emulator

A  terminal emulator program  may in fact  not emulate any  known
species of terminal.  It is a program that runs in the foreground
on  the PC  and communicates  with the  MOWSE foreground channel.
Data that  is received over  the foreground channel  from Multics
will  usually  be  displayed  on  the  PC  screen by the terminal
emulator.  Similarly,  data entered from  the keyboard on  the PC
will be read by the  terminal emulator program and transferred to
Multics via MOWSE's foreground channel.

The terminal emulator program may also perform other functions in
order  to enhance  or  offload  functionality from  Multics.  For
example,  The  local  echo   negotiation  functionality  that  is
currently  supported by Multics  can be moved  out to the  PC and
supported by a terminal emulator running there.

8.4.  Getting a Background Application Started

Applications  on  either  system  which  will  provide  to or use
resources on the remote system can be initiated and executed as a
result of a request from  the remote system.  These applications,
which will be  known as MOWSE applications, must  then make their
names  and  entry  points  known  to  MOWSE.   At this point, any
program,  on either system,  whether known to  MOWSE or not,  may
make use of  the minor capabilities of the  MOWSE applications by
making calls to the local capability driver.

Applications  running on  either  system  may use  the capability
driver interface to:


Multics Technical Bulletin                                MTB-740
MOWSE Overview

     1.  Load  the  capabilities  on  the  other  system that are
         required by the application.

     2.  Issue  requests  to  the   other  system  to  perform  a
         specified minor capability.

     3.  Receive  requests from  the  other  system to  perform a
         specified minor capability.

     4.  Support background activities.

Background applications  are only active when a  message for them
is  received by MOWSE.   When such a  message is received,  MOWSE
will  call the  application through   an entry  address that  was
supplied  to   it  when  the  application   was  initiated.   The
application  can  only  communicate  with  MOWSE  by  means  of a
software  interrupt  that  is  defined  and  used  by  the  MOWSE
subroutine library routines.


MTB-740                                Multics Technical Bulletin
                                                   MOWSE Overview

9.  Glossary/Usage

AH register
     Register used  to store a  MOWSE function number  so that an
     application can access the specific function.

AX register
     Register used by each MOWSE function to store an error code.

application
     A program or  group of programs which are  required in order
     to  perform  a  useful  function,  such  as word processing,
     accounting, calculation, games, and education.

BFT
     Acronym for  Background File Transfer.  Provides  a facility
     for  transferring files  between two  computers by  means of
     cooperating  processes  running  on  each  of the computers.
     This facility is intended to operate as a background process
     on  each computer.  BFT  is a MOWSE  application in that  it
     makes   use   of   MOWSE   facilities   for   user  I/O  and
     communications.

BIOS
     Acronym  for  Basic  Input/Output  System.   A collection of
     programs that control the handling of characters between the
     Central  Processing Unit and  other devices of  the computer
     system (keyboard, monitor, printer, etc.)  in the IBM PC.

background activities
     Activities that do not utilize the display or keyboard input
     facilities  on Multics  or on  the Personal  Computer at any
     time except explicitly through MOWSE.

capability
     Any  function  that  a  system  is  capable  of  performing.
     Multics performs many functions, and therefore could be said
     to  have many  capabilities.  These  capabilities are  known
     only  to  Multics  and  used  solely  by  Multics.  The same
     applies to most other systems, including a Personal Computer
     talking to Multics.

capability driver
     The software used to activate a capability.


Multics Technical Bulletin                                MTB-740
MOWSE Overview

capability loading
     The  act  of  making  a  capability  known  to  MOWSE.  This
     consists of requesting the  command processor to execute the
     program that provides the capability and having that program
     notify MOWSE of its entry points.

capability message
     A  variable length  sequence of  characters that  contains a
     major capability number, a minor capability number, and data
     parameters.  Multics  and the Personal  Computer communicate
     through capability messages.

CAT
     Acronym  for   Capability  Address  Table.   A   table  that
     maintains information  on the availability  of capabilities,
     the  calling  of  capabilities,  and  the  certain states of
     capabilities.

DOS
     Acronym for Disk Operating  System.  A program which remains
     in  the  computer's  memory,  consisting  of instructions to
     enable the  computer to manage the storage  and retrieval of
     data from disks.  It also  enables the user to interact with
     the computer by entering commands at the console.

FNP
     Front-end Network Processor

MS-DOS
     A  single  user  disk  operating  system for 8086/8088-based
     computers.   Through   MS-DOS,  you  communicate   with  the
     computer, disk drives, and printer, managing these resources
     to your advantage.

major capability
     A function  to be performed  by a system.   Major capability
     and capability refer to the same thing.

major capability number
     A numerical identifier for a major capability.

minor capability
     A specific  function to be performed by  a major capability.
     Each  major capability may  or may not  have a set  of minor
     capabilities  associated with  it.  For  example, the  major
     capability  'calculate' may  have minor  functions of 'add',
     'subtract', 'multiply', and 'divide'.

minor capability number
     A numerical identifier for a minor capability.


MTB-740                                Multics Technical Bulletin
                                                   MOWSE Overview

MOWSE
     Acronym  for  Multics  Online  Work  Station Environment.  A
     mechanism whereby  one system may dynamically  determine the
     capabilities present on another system and may utilize these
     capabilities.

PAD
     A routine  that, given a string  of data to transmit  over a
     communication facility, will copy the  data into one or more
     packets as required.

PC
     Acronym for  Personal Computer; in the context  of this MTB,
     an IBM PC or close equivalent running MS-DOS 2.0 or greater.