Microsystems, Vol.5, No.8, August 1984

- "The Networking Capabilities of TurboDOS"
  Michel Simon and William Poole (Commercial Dynamics)
  "Microsystems", Vol.5, No.8, August 1984, p.78

(Retyped by Emmanuel ROCHE.)

By  now,  most people in the CP/M world are, at least vaguely,  familiar  with
TurboDOS.  It is fairly well known that TurboDOS runs most off-the-shelf  CP/M
software,  and  that it can be found on S-100  Bus-based,  multi-user,  multi-
processor systems (networks). Less well known is the fact that a multitude  of
network configurations are possible with TurboDOS. Some manufacturers are  now
experimenting   with  different  network  architectures,  and  a   number   of
interesting products already exist. Given the availability of TurboDOS on  16-
bit processors and the growing list of manufacturers integrating TurboDOS with
their  hardware,  we should see the use of TurboDOS networks increase  in  the
days to come.

TurboDOS  is  truly a network operating system. This article  focuses  on  the
networking aspects of TurboDOS, including its capabilities and uses. First, we
will  describe  the  features of TurboDOS that distinguish  it  as  a  network
operating  system.  Second, we will discuss the  various  possible  networking
configurations.  Next,  we  will  address  the  limitations  of  TurboDOS   in
configuring  larger  networks.  The remainder of this  article  contains  some
general  guidelines for choosing a TurboDOS network, followed by a  review  of
TurboDOS networking products currently available. Detailed descriptions of the
network  architectures of 3 different manufacturers' products are included  as

What makes TurboDOS a network operating system?

The  single  most  important  characteristics of TurboDOS  --  one  which,  in
essence,  distinguishes  a network operating system  from  a  single-processor
operating  system  -- is that it permits transparent message  routing  between
physically-connected processors. This feature allows a request for a  *DEVICE*
(TurboDOS  devices are disk drives, printers, and queues) to be  automatically
routed,  in  logical form (see below), to the processor on  the  network  that
controls the device. Routing takes place between nodes on a circuit and, in  a
multi-circuit network, between circuits via common nodes.

TurboDOS  recognizes a 'world' that consists of 1 to 255  network  *CIRCUITS*,
each  of  which can have from 1 to 255 *NODES* connected to it. A  node  is  a
microcomputer (single-board, standalone, diskless, etc.), and a circuit is the
means  (hardware and software) by which nodes are connected. The S-100 Bus  is
currently the most widely-used transmission facility (hardware) for a TurboDOS
circuit,  although  there is a rapid growth in the use of Local  Area  Network
(LAN) circuits (RS-422/SDLC, ARCnet, Omninet, Ethernet, etc.) with TurboDOS. A
node can be connected to, and thus can transfer information between, more than
one circuit.

In  order  to illustrate and clarify what makes TurboDOS a  network  operating
system,  let us compare the way CP/M handles a resource request with  the  way
TurboDOS  handles  the same request. When the operator of a  single-user  CP/M
system makes a request for a resource, such as:

        A>DIR C:

the chain of events is as follows:

     1. CP/M's   command  line  interpreter  sees  a  request  for   directory
        information  from the C drive, and makes a *LOGICAL FUNCTION  REQUEST*
        (in CP/M, a BDOS system call) requesting this information.

     2. The BDOS makes the appropriate calls to the BIOS, which contains  disk
        drivers   and   has  access  to  information  about   the   particular
        characteristics of drive C.

     3. The  BDOS retrieves the information from the BIOS, and passes it  back
        to  the command line interpreter, which then displays the  information
        on the console.

All  along,  CP/M  assumes  that  the drive  is  attached  to  the  requesting
processor,  since  CP/M  does not recognize the existence  of  more  than  one

Under TurboDOS, however, the chain of events is quite different:

     1. The  TurboDOS  command line interpreter sees a request  for  directory
        information from the C drive, and makes a logical function request  to
        the TurboDOS file system, asking for this information.

     2. TurboDOS checks an internal table to see if drive C is attached to the
        requesting  processor  (i.e.,  is  a "Local" resource)  or  if  it  is
        attached to some other processor on the network (i.e., is a non-local,
        "Remote" resource).

     3. If  drive C is a local resource, the procedure followed is similar  to
        that followed by CP/M.

     4. If drive C is not a local resource, TurboDOS gets a *NETWORK  ADDRESS*
        from  its internal table. The address indicates the circuit  and  node
        numbers of the processor to which the resource is attached.

     5. TurboDOS  forms a *MESSAGE PACKET* consisting of the logical  function
        request,  the data, and the network address, and passes it on  to  the
        *CIRCUIT DRIVER* of the circuit indicated in the network address.

     6. The  circuit driver has access to all the information it  needs  about
        the  hardware characteristics of its physical  transmission  facility,
        and  transmits  the message packet to the processor indicated  in  the
        network address.

     7. At  the receiving processor, the same cycle is repeated: the  TurboDOS
        system  on  that processor checks to see if the resource is  local  or
        non-local (remote). If the resource is local, the receiving  processor
        carries out the request; if non-local (remote), the processor forwards
        the  message  packet. The requested information is returned,  via  the
        same  path,  to the originating processor. This processor  passes  the
        information to the command line interpreter, which displays it on  the

The  internal  tables mentioned in Events 2 and 4, which  are  called  *DEVICE
ASSIGNMENT TABLES*, are configured when the TurboDOS operating system on  each
processor  is  generated. Thus, the message-forwarding process  is  completely
transparent to the user, who enters a DIR command to get a directory listing.

In  the above scenario, it is important to note that messages are  transmitted
over  the network in the form of logical function requests, enabling  TurboDOS
to  meet  one of the fundamental requirements of a network  operating  system:
that  only  one processor recognizes the hardware characteristics of  a  given
device. For example, it is imperative that only one processor maintain a  disk
drive's  allocation  vector  or storage-used list;  otherwise,  assuring  data
integrity  in  a  multi-user environment would be impractical.  To  meet  this
requirement, TurboDOS messages are transmitted in a device-independent  format
until they arrive at their final destination.

Print spooling is accomplished through a network in the same manner as  drives
are  accessed: printer and queue requests are forwarded to the processor  that
controls the resource, just as drive requests are forwarded.

Other features

An  important  and related feature of TurboDOS is  its  modular  construction.
Networking hardware dependencies are isolated in circuit driver modules, while
peripheral hardware dependencies are isolated in device driver modules. Device
drivers  and  circuit  drivers  take  hardware-independent  instructions  from
TurboDOS,  and  execute them on the specific device or network  hardware  that
they control. In addition, modules of the operating system and device  drivers
are easily linked by the TurboDOS GEN command. Therefore, individual  versions
of the operating system can be configured to contain only those modules needed
to control the resources attached to a given processor on the network.

A  notable  consequence  of TurboDOS's modularity is that a  wide  variety  of
peripheral  devices  and  network hardware can  be  integrated  into  TurboDOS
systems  by  EOMs and system integrators. Device drivers can  be  replaced  or
updated as new disk and networking hardware becomes available.

Another feature of TurboDOS that deserves note is its support of network file-
and  record-locking. The processor that controls a given device keeps an  open
file  and  record list locally. When a logical function request for  a  locked
file  or  record is received, access to that file or record is denied,  and  a
return code indicating the error is sent back over the network.

TurboDOS's network file and record locking allows almost all single-user  CP/M
and   multi-user  MP/M  software  to  run  on  a  TurboDOS   network   without
modification. File lockout prevents single-user programs from corrupting files
when  they are simultaneously accessed by more than one user.  Record  lockout
allows simultaneous multi-user access to data files in an organized fashion.

The  above features combine to make TurboDOS a versatile operating system  for
configuring  a  wide  variety  of  networks  with  different  topologies   and
transmission  facilities.  We  will now classify and describe  some  of  these
network configurations.

Tightly-coupled networks

As we mentioned earlier, the most common TurboDOS networks currently available
are  on  multi-user, multi-processor S-100 Bus-based systems,  including  IMS,
North  Star,  MuSYS,  and  Advanced Digital, to name but a  few;  for  a  more
complete list, refer to Table 1.

Table 1. TurboDOS networking products

Format: Manufacturers
        Tightly-coupled architecture
          Loosely-coupled architecture:
          Maximum distance (feet)

(NOTE: In this table, K = kiloBAUDS, M = megaBAUDS.)

Advanced Computer Technology
S-100 Bus star
  (In development)

Advanced Digital
S-100 Bus star
  (In development)

RS-422 800K bus, 2000 ft

Business Operating Systems
Parallel star, 10 ft
  RS-232 19.2K
  RS-232 19.2K

California Computer Systems
S-100 Bus star
  RS-232 9.6K

Commercial Dynamics
S-100 Bus star
  Differential 300K

HM Systems, Ltd. (UK)
S-100 Bus star
  2.5M ARCnet

Intercontinental Micro Systems
S-100 Bus star
  2.5M ARCnet

Independent Business Systems
S-100 Bus star
  RS-422 800K / RS-232 38.4K
  600 / 5000

Industrial Micro Systems
S-100 Bus star
  Differential 307K

JC Systems
2.4M Parallel bus, 600 ft
  Parallel 2.4M

Litton Industries (Sweda Int'l.)
2M Token-passing LAN
  2M Token-passing LAN
  2M Token-passing LAN

S-100 Bus star
  10M Ethernet
  RS-422 500K / RS-232 9.6K
  Ethernet bus / Point-to-point
  9000 / 900 / 300

NCR Corp.
  2M Omninet

North Star
S-100 Bus star

Philips (Netherlands)
Euro-Bus star
  2M Token-passing LAN

QDP Computer Systems
S-100 Bus star

Sierra Data Sciences
S-100 Bus star

S-100 Bus star

RS-422 800K star, 300 ft
  RS-422 800K

Networks  of  this type are referred to as *TIGHTLY-COUPLED*  networks.  In  a
tightly-coupled networks, disk resources are largely centralized, and all  the
processors are booted from one disk.

The  master processor is called a "server" because it services  requests  from
the satellites for access to the (many or all) global resources attached to it
(disks, printers, etc.). Slave processors are called "satellites" because this
is  a  more  accurate description of their function as part  of  the  network.
Although  their  primary function is to execute user programs,  and  they  are
booted  by the server and dependent on it for most operations, satellites  are
independent  processors  and,  in some cases, possess local  disk  or  printer

In  a  discussion of network configurations, it is  important  to  distinguish
between the hardware architecture of the transmission facility and the logical
topology.  For  example, in a typical S-100 Bus implementation of  a  TurboDOS
network,  the  S-100 Bus is the transmission facility, but the network  has  a
star  topology (see Figure 1). That is to say: even though all the  processors
are  physically  connected on the S-100 Bus, the  satellites  cannot  directly
communicate  with each other; all communication on the tightly-coupled,  S-100
Bus-based  network  is  controlled by  the  server.  Although  tightly-coupled
networks   are   predominantly   S-100   Bus-based,   other    tightly-coupled
architectures  have been implemented. Examples include Alspa, JC Systems,  and
Televideo (see Table 1).

Tightly-coupled network, star topology
Figure 1. Tightly-coupled network, star topology

Loosely-coupled networks

Networks  having  processors  that are independent of  each  other  for  basic
operations,  and disk resources that are distributed throughout  the  network,
are  referred to as *LOOSELY-COUPLED* networks. Loosely-coupled  networks  can
connect standalone, single-user systems or tightly-coupled networks.

Loosely-coupled networks of tightly-coupled systems require that at least  one
processor on each tightly-coupled network belong to both its internal  circuit
and  the  loosely-coupled  circuit (see Figure 2). Either the  server  of  the
tightly-coupled  circuit  or a satellite can be  the  dual-purpose  processor,
providing,  of  course,  that it has a physical means  to  transmit  messages.
Server-to-server  networks  typically require additional  hardware;  they  are
generally  considered desirable when the loosely-coupled network will be  used
for  high-volume  disk  access  and/or  chassis  expansion  (e.g.,  MuSYS  and
Intercontinental Micro Systems). Satellite-to-satellite networks use  hardware
already  on  satellite boards, and run at low-to-medium speeds  for  file  and
peripheral sharing (e.g., Commercial Dynamics, MuSYS and IBS).

Eight-bit single-user personal computers have not been widely networked  using
TurboDOS  because of memory considerations. Until recently, TurboDOS  did  not
support  more than 64K of memory, and a fully-configured  TurboDOS  (including
file  system and disk drivers) leaves only a 43K-to-45K TPA on a  64K  system.
With  TurboDOS now available on the Intel 8088/8086 family of  processors,  we
can  expect  to  see TurboDOS become a popular  environment  for  implementing
networks of 16-bit single-user machines, such as the IBM PC.

Loosely-coupled networks
Figure 2. Loosely-coupled networks


As  TurboDOS  networks  become available for a  wide  variety  of  processors,
*GATEWAYS*  will  become  increasingly important. Since  a  processor  can  be
connected to as many TurboDOS network circuits as it has circuit drivers  (and
corresponding transmission facilities), a gateway processor that has different
types  of  network  interfaces  can  interconnect  networks  using  dissimilar
hardware (see Figure 3). (ROCHE> "Internet" means "interconnected networks"...
This  article, describing it using 8-bit microcomputers, was written 12  years
before  Bill  Gates reluctantly provided "Internet Explorer"  under  Microsoft

Because  of the TurboDOS network's forwarding mechanism, each network  circuit
connected  by  a  gateway processor can be accessed by  nodes  throughout  the
entire network. If a processor is not itself connected to a given circuit, its
internal *NETWORK FORWARDING TABLE* tells it how to access the other circuits.
Network  forwarding  is part of the general  message-forwarding  mechanism  of
TurboDOS described earlier, and is transparent to the user.

As  TurboDOS  networks for IBM PC and PC-compatibles begin to appear,  we  can
expect  to  see  gateways implemented to connect  them  to  existing  TurboDOS
networks.  The introduction of banked memory support in Z80 TurboDOS  1.3  has
made  it both feasible and desirable to network 8-bit, as well as 16-bit,  PCs

Multiple networks
Figure 3. Multiple networks linked by a gateway processor

TurboDOS limitations

Any  TurboDOS  network  that  has fewer than 16 devices of  any  type  can  be
configured  to emulate a large computer system; no matter how the hardware  is
physically distributed, users have access to all network devices at all times.
However,  since  TurboDOS uses the CP/M device-naming  convention  (letters  A
through P), when there are more than 16 devices on a network, users may access
only  a  subset  of the network at any one time. While  16  devices  may  seem
sufficient,  it  is  easy to imagine a network that has  more  than  16  drive
volumes  (or  printers); it is also reasonable for network users  to  want  to
access most, if not all, of them.

This  situation can be handled in 3 different ways. First, the network can  be
restricted  to a maximum of 16 of each device. This limitation  is  reasonable
for small point-to-point systems (e.g., 2 systems communicating directly  over
a  dedicated wire) but is prohibitive for larger networks. Second,  one  might
change the device assignments of one or more processors. This has the  serious
disadvantage that TurboDOS has no mechanism for changing device assignments in
a  running  system;  device assignments can be made only when  the  system  is
generated. Thus, this scheme would entail generation of a separate version  of
the system for each set of device assignments; to change the assignments,  the
user would have to shut down the current system and reboot it with a different
version.  Since few end-users generate their own systems, this is not  a  very
practical  solution. Last, TurboDOS networking products can be  provided  with
utilities  that  allow device assignments to be edited and patched  while  the
system  is running, without reSYSGENing the operating system or  rebooting  it
(see the Commercial Dynamics example, below).

Choosing a TurboDOS network

If  you  already  owns a TurboDOS tightly-coupled  network,  your  choice  for
further  networking  products  will probably be limited  to  whatever  network
hardware  your manufacturer or dealer supports. However, if you have  not  yet
purchased  a system or are in a position to choose between different types  of
networks,  an  analysis of your applications is important to  determine  which
type  of  tightly-coupled and/or loosely-coupled network will best  suit  your

All  of  the  currently-available  tightly-coupled  networks  provide  similar
network performance. Tightly-coupled networks that use an RS-422  transmission
facility have a somewhat slower network transfer rate and, therefore, will not
perform  as  well  as  S-100 and Parallel Bus  systems,  especially  in  disk-
intensive  operations. The costs of most tightly-coupled systems are  similar,
so  your  choice will depend primarily on the other features of  the  TurboDOS
system, including disk storage, application software, dealer support, etc.

Loosely-coupled networks, on the other hand, differ significantly in price and
performance.  A  low-speed  network  can  cost less  than  $100  per  node  to
implement, while the highest speed system currently available costs more  than
$2000   per  node.  Loosely-coupled  network  transmission  rates  also   vary
significantly, anywhere from 9.6 Kbaud to 10 Mbaud per second.

Low-speed networks (9.6 Kbaud to 40 Kbaud) are primarily useful for occasional
file  transfers, low-volume printer sharing, and the transmission of  user-to-
user  mail and messages. They are generally unacceptable in  situations  where
large  volumes  of data must be transferred or more than a few nodes  use  the
network at the same time.

Medium-speed networks (100 Kbaud to 500 Kbaud) provide adequate throughput for
all  but the most intensive networking speeds. A network in this  speed  range
should  be able to load executable files, transfer large amounts of data,  and
have multi-user access over the network. Medium-speed networks are most  often
used in situations where network nodes use primarily local disk resources  and
only  go  to  the network for access  to  globally-shared  resources.  Sharing
printers  and  file transfers between a loosely-coupled network  of  otherwise
independent, tightly-coupled systems is an excellent application for a medium-
speed network.

High-speed networks (500 Kbaud and higher) are needed for good performance  in
situations  where  network  nodes make their primary disk  requests  over  the
network. A common use of high-speed networks is for chassis expansion; e.g., 2
separate tightly-coupled S-100 Bus networks sharing a single large hard  disk.
In  this  case, the system without the hard disk uses only a floppy  or  small
hard  disk to boot its processors and, from that point on, all  disk  requests
are transmitted over the high-speed network to the system with the large  hard

To determine whether a given network speed suits your specific needs, you must
first calculate, in bits, the average and maximum amounts of data that will be
transferred over the network simultaneously. Divide each of these figures into
the effective transfer rate of the network (which is usually 10 to 50  percent
of  the  manufacturer's  stated  transfer rate...)  to  determine  the  actual
transmission   time  under  average  and  maximum  conditions.   This   simple
calculation  should give you a reasonable estimate of how well a network  will


Given  the increasing availability of lower-cost networking hardware  and  the
decreasing  price  of hard disks, we expect to see large  multi-user  TurboDOS
networks configured somewhat differently than they are at present. S-100  Bus-
based  systems are usually loaded with as many users as they can hold  (10  to
20).  To  add more users, another S-100 Bus system is networked to  the  first
(provided  there is a networking product available), and the second system  is
loaded to its fullest potential. The major advantage of this approach is  that
it  offers the lowest cost per user; the disadvantage is that  contention  for
shared  network resources slows down all users on the system. In  most  common
applications,  better overall performance can be obtained by distributing  the
users  throughout  several smaller (4- to 8-user) systems. These  systems  can
then  be  networked together to provide all users with access to  all  network

The  arrival  of  inexpensive hard disks and  networking  products  will  make
distributed networks more common. The distributed approach also provides  more
protection against system failure: if one small network goes down, all  others
can still continue to operate. In a large, centralized system, a system  crash
can disable all users.

Sample architectures

The  MuSYS product line provides examples of all of the most  common  TurboDOS
network  configurations.  Their  tightly-coupled  network  includes  satellite
processors with an S-100 Bus star topology. They also offer an Ethernet  board
set  that  connects tightly-coupled S-100 Bus star networks  into  a  loosely-
coupled  high-speed master-to-master bus network. A user will see very  little
difference in response time between making a disk request over this high-speed
master-to-master  network  and making the same request on a  local  disk.  For
lower-volume  applications, MuSYS provides both a medium-speed (RS-422) and  a
low-speed (RS-232) point-to-point, satellite-to-satellite network that uses  a
dedicated  satellite  processor board as a controller. It would not  be  cost-
effective  to  connect  more than 2 or 3 tightly-coupled  systems  with  these
latter 2 networks, since each system must contain one dedicated satellite  for
each of the other systems to which it is connected.

The  Televideo  808/816 network architecture is significantly  different  from
other  TurboDOS  networks. At the center of Televideo's  tightly-coupled  star
network  is a dedicated server processor that controls hard and floppy  disks,
printers,  and either 8 or 16 RS-422 ports. Each RS-422 port may be  connected
point-to-point  to a workstation, which is a terminal with  processor,  memory
and, optionally, a local floppy disk. Although the workstations can have local
disk  storage,  they  are  not  capable of booting  off  the  local  disk  and
connecting  to  the network at the same time; thus, the system is  a  tightly-
coupled network, even though the processors are physically distributed.

The Televideo network also allows point-to-point, master-to-master  networking
through the same RS-422 ports. As with MuSYS, an RS-422 port must be dedicated
to  each system that is networked. But, since the ports are provided with  the
initial purchase of the system, 2 Televideo 816 systems can be networked for a
very small incremental cost.

Commercial  Dynamics  provides  a  workable  solution  to  the  network   size
limitations  imposed  by  TurboDOS. They introduce the concept  of  a  network
*ENVIRONMENT*,  which  is  a  particular view of  a  network.  An  environment
consists of a set of logical-to-physical device assignments that specify which
physical  devices (disk drives, printers, queues) are accessed when a  logical
device is requested. Commercial Dynamics supplies utility programs to  create,
store, modify and activate the environments desired by the users.

Each  user  on a network can define any number of environments  by  running  a
menu-driven,  environment-editing utility. Environment definitions are  stored
in  files,  to  be  activated when they are needed  by  running  the  ACTIVATE
command,  and  specifying the environment to be activated. Although  only  one
environment  can be active at a time, a new environment can be activated  with
one command. Thus, a given user's view of the network can easily be  redefined
and  activated  without affecting any of the other users on the  network,  and
without regenerating the TurboDOS operating system. These utility programs are
supplied  with Commercial Dynamics' satellite processor and TurboNET  network,
and can also be obtained for any TurboDOS network.

Commercial  Dynamics  also  produces a satellite  processor  with  an  onboard
network  interface.  As  many as 16 tightly-coupled S-100  Bus  networks  that
contain at least one Commercial Dynamics satellite can be connected at  medium
speed  over  a S-100 Bus network. The Commercial Dynamics satellite can  be  a
user processor and a network interface at the same time; thus, loosely-coupled
networks  can  be  configured for a very low  cost.  The  Commercial  Dynamics
satellite  can  be  integrated into any S-100 Bus  TurboDOS  network,  and  is
currently running on IMS systems.


A  wide  variety  of networking options are  available  with  TurboDOS,  using
different network topologies and networking hardware. TurboDOS's (ROCHE>  ????
Missing Text ???)