CP6100 I/O Process Programming Manual
 Introduction
 HOW IS CP6100 RELATED TO ENVOY AND ENVOYACP?
 Before the introduction of the Tandem 6100 communication
 subsystem, two Tandem software products had functions similar to
 those of CP6100. ENVOY provided a file management interface to a
 range of byte-oriented protocols, and ENVOYACP did the same for a
 range of bit-oriented protocols. CP6100 improves on the two
 earlier products by taking advantage of the features of the 6100
 subsystem. The next few pages describe the evolution of the 6100
 subsystem; they show how products like CP6100 are better than
 their predecessors for fault-tolerant applications.
 NOTE
 A program written to use ENVOY or ENVOYACP must be
 rewritten to be compatible with CP6100.
 First Generation: Communication Controllers
 Until the introduction of the 6100 subsystem, Tandem offered
 three data communication controllers:
 • The simplex, or asynchronous controller, which controlled up
 to thirty-two terminals running at speeds up to 19.2K bps,
 • The byte synchronous controller, which controlled up to four
 byte synchronous lines at speeds of up to 80K bps per line,
 and
 • The bit synchronous controller, which controlled up to four
 bit synchronous lines at speeds of up to 56K bps per line.
 Each controller was dual ported, so the failure of a processor,
 an I/O channel, an I/O process, or a controller port didn't bring
 a line or device to a halt. Rather, control would pass to the
 backup processor, channel, I/O process, and port. Figure 1-3
 illustrates the fault-tolerance of one of these controllers.
 Another important characteristic of each of these controllers was
 that, instead of requiring I/O processes to handle all
 communication protocol, the controller would share the protocol
 task with the I/O process. For example, the byte synchronous
 controller handled some lower-level functions common to byte
 synchronous protocols; an I/O process (like AM6520 or TR3271)
 would fill in higher-level functions and device-specific elements
 of protocol. For elaborate protocols like X.25, the I/O process
 handled all the protocol above the link level. The protocol
 1-6










