- "The Networking Capabilities of TurboDOS"
Michel Simon and William Poole (Commercial Dynamics)
"Microsystems", August 1984, Vol.5, No.8, 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
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:
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,
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
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.
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
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
Maximum distance (feet)
(NOTE: In this table, K = kiloBAUDS, M = megaBAUDS.)
Advanced Computer Technology
S-100 Bus star
S-100 Bus star
RS-422 800K bus, 2000 ft
Business Operating Systems
Parallel star, 10 ft
California Computer Systems
S-100 Bus star
S-100 Bus star
HM Systems, Ltd. (UK)
S-100 Bus star
Intercontinental Micro Systems
S-100 Bus star
Independent Business Systems
S-100 Bus star
RS-422 800K / RS-232 38.4K
600 / 5000
Industrial Micro Systems
S-100 Bus star
2.4M Parallel bus, 600 ft
Litton Industries (Sweda Int'l.)
2M Token-passing LAN
2M Token-passing LAN
2M Token-passing LAN
S-100 Bus star
RS-422 500K / RS-232 9.6K
Ethernet bus / Point-to-point
9000 / 900 / 300
S-100 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
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).
Figure 1. Tightly-coupled network, star topology
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.
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
Figure 3. Multiple networks linked by a gateway processor
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-
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.
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 ???)