Particular communication feature

Data transfer network for variable protocol management

4631666

Abstract

A data transfer network uses an I/O subsystem to support a main host computer in managing data transfers to and from remote data terminals. The I/O subsystem may constitute one or more units called a Line Support Processor. The Line Support Processor uses internal processor means to control a plurality of line adapters each of which has a data-comm line to a data set or data terminal. Control operations by said internal processor permit selected line adapters to operate selected types of protocols using synchronous or asynchronous transmission. Data communication information and commands in high level language data are loaded into auxiliary memories in the internal processor means and into each line adapter where the internal processor means acts to convert this language data into usable protocols.


Claims

What is claimed is:

1. A data transfer network for data transfers between a main host computer and a plurality of remote data sets operating under different protocol and timing disciplines wherein said main host computer initiates I/O data transfer commands to a line support processor means having a plurality of line support processors, each one of which manages data transfers between one of said remote data sets and said main host computer, said data transfer network comprising:

(a) said main host computer connected to each one of said line support processors and including:

(a1) main memory means for storing data to be transmitted to/received from said remote data sets and including:

(a1a) a first dedicated memory area for storing a I/O data transfer commands for transmittal to said line support processors;

(a1b) a second dedicated memory area for storing operational codes for transmittal to said line support processors wherein said operational codes contain information translatable, by said line support processor, into control data for selecting timing and protocol discipline for a selected line adapter;

(a2) a main processor for selecting said I/O data transfer commands and said operational codes for communication and control of said line support processor, said processor including:

(a2a) connection means to a distribution control circuit;

(b) a base module providing backplane connection means for slide-in circuitry cards, said base module including:

(b1) said distribution control circuit functioning to connect and/or disconnect said host computer to/from a selected line support processor in line support processor means;

(b2) said line support processor means functioning to execute said I/O data transfer commands by controlling a selected line adapter to a remote data set, said line support processor means including:

(b2a) a plurality of line support processors connected to said distribution control circuit wherein each said line support processor includes:

(B2a1) interface circuit means connecting said main host computer, via said distribution control circuit, to a plurality of line adapter means and to a state machine processor means;

(b2a2) said state machine processor means including a state machine processor operating to translate said operational codes into control data for operating a selected line adapter in a desired timing and protocol discipline for managing data transfers between said selected line adapter and an associated said data set, said state machine processor means including:

(i) a first auxiliary memory storage area for receiving said operational codes from said host computer;

(ii) program memory means for enabling said state machine processor to translate said operation codes into control data for operating a selected line adapter;

(iii) said state machine processor operating to transmit said control data to said selected line adapter for selecting and managing the timing and protocol discipline for data transfers, and including:

(ie) means for selecting a particular line adapter in said plurality of line adapter means;

(iie) means for identifying the required timing and protocol discipline for said particular line adapter;

(iiie) means for generating address signals for selecting a desired control register in said particular line adapter and placing said control data therein;

(ive) means for transferring data to/from said particular line adapter;

(ve) means for selecting a group of multiplexors associated with said selected particular line adapter;

(c) said plurality of line adapter means connected to said state machine processor means and including a plurality of line adapters, wherein each line adapter includes:

(c1) a data communication line to an associated said remote data set;

(c2) a plurality of control registers holding said control data for managing data transfers according to a desired timing and protocol discipline, said control data being derived from said state machine processor means;

(d) transceiver-controller means, operating under control of said state machine processor means, for switching a data bus to connect said state machine processor to a selected line adapter or to connect said selected line adapter to a multiplexor means;

(e) said data bus connecting each of said line adapters to said transceiver-controller means;

(f) multiplexor means including:

(f1) a plurality of groups of multiplexors whereby each group of multiplexors is connected to an associated line adapter for conveying bytes of data from said remote data set to said state machine processor means for subsequent transfer to said host computer, and wherein each said group of multiplexors includes:

(f1a) coded input signal means for identifying the particular timing and protocol discipline required for the said associated line adapter.

2. The network of claim 1, wherein each of said plurality of line adapter means includes:

(a) line adapter memory means for buffering data being transferred between said state machine processor means and said remote data set; said line adapter memory means including a plurality of RAM storage means, each one of said RAM storage means being dedicated to a said plurality of line adapters.

3. The network of claim 1, wherein each one of said RAM storage means includes:

(a) memory space for receiving and storing said operational codes from said host computer.

4. The network of claim 1, wherein said state machine processor means includes:

(a) means to generate result/data for transmission to said host computer after execution of a said I/O data transfer command from said host computer.

5. An network for handling data transfer operations between a main host computer and a plurality of remote data sets, said network comprising:

(a) said main host computer being connected to a distribution control circuit means, and including:

(a1) first memory means for storing I/O data transfer commands for initiating data transfers to/from a plurality of remote data sets;

(a2) second memory means for storing operational codes for transmittal to each one of a plurality of line adapter memory means, said operational codes including control information on a variety of timing and protocol disciplines;

(a3) third memory means for storing data to be transmitted to/received from said remote data sets;

(a4) a main processor means for utilizing said first, second and third memory means for managing a plurality of line support processors;

(b) distribution control circuit means functioning to connect and disconnect said main host computer to/from a selected one of a plurality of line support processors;

(c) said line support processors operating to execute said I/O data transfer commands and for selecting the appropriate timing and protocol discipline for data transfers with each of said remote data sets, wherein each of said line support processors includes:

(c1) a data link interface circuit means connecting said distribution control circuit means to an internal processor means and to a line adapter means;

(c2) said internal processing means including an internal processor operating to translate said operational codes into control data for managing each selected line adapter to execute data transfers according to the appropriate timing and line discipline for the remote data set connected to the selected line adapter, said internal processing means including:

(c2a) auxiliary memory means for storing said operational codes;

(c2b) means for selecting a particular line adapter for data transfer operations and for identifying and enabling the said appropriate timing and protocol discipline to be used by said selected particular line adapter;

(d) said line adapter means including:

(d1) a plurality of line adapters, each of which provides a line connection to said remote data set and operates to execute data transfers between said line adapter means and said remote data set with the appropriately selected line discipline and protocol, under control of said internal processor means;

(d2) line adapter memory means for buffering data being transferred to/from said remote data set and to/from said main host computer;

(d3) switching means for connecting a selected line adapter to said internal processor or to an associated group of multiplexors in a multiplexor means;

(d4) said multiplexor means including:

(d4a) a plurality of groups of multiplexors wherein each group is connected to receive the outputs of an associated line adapter for transfer of data bytes to said line adapter memory means for subsequent handling by said internal processor;

(d4b) identification signal input means, for each group of multiplexors connected to an associated line adapter, for generating an identification signal to said internal processor means to enable said internal processor means to generate said appropriate control data for said selected line adapter;

(e) said plurality of remote data sets being connected so that each data set has its individual data communication line to an associated one of said line adapters.


Description

FIELD OF THE INVENTION

This disclosure relates to the field of data communications apparatus and is directed to a processing unit and system which provides an I/O subsystem unit between remote data sets and terminals, and a main host computer.

CROSS REFERENCES TO RELATED APPLICATIONS

This disclosure is related to the following applications which all have the same common assignee:

An application entitled "Bit-Oriented Line Adapter System", U.S. Ser. No. 355,134, filed Mar. 5, 1982, by inventors Richard A. Loskorn, Philip D. Biehl and Robert D. Catiller, now U.S. Pat. No. 4,455,622.

An application entitled "Byte-Oriented Line Adapter System", U.S. Ser. No. 355,135, filed Mar. 5, 1982, by inventors Richard A. Loskorn, Philip D. Biehl and Robert D. Catiller, now U.S. Pat. No. 4,514,824.

An application entitled "Component Selection System for a Multiple Line Adapter Organization", U.S. Ser. No. 363,592, filed Mar. 30, 1982, inventor Richard A. Loskorn, now U.S. Pat. No. 4,453,228.

An application entitled "Read Control Operations System for a Multiple Line Adapter Organization", U.S. Ser. No. 372,106, filed Apr. 27, 1982, inventor Richard A. Loskorn, abandoned and re-filed Feb. 21, 1984 as Continuation-In-Part of U.S. Ser. No. 580,292.

An application entitled "Automatic Calling Unit Control System", U.S. Ser. No. 386,409, filed June 8, 1982, inventors Richard A. Loskorn and Lyle O. Jevons, Jr., now U.S. Pat. No. 4,479,123.

SUMMARY OF THE INVENTION

A data transfer network includes a main host computer supported by an I/O subsystem which may include one or more Line Support Processor Units. The Line Support Processor units manage the transfer and storage of data to/from remote data terminals such that selected Line Adapters in the Line Support Processor Units can be controlled to handle not only a variety of transfer protocols but also both synchronous and asynchronous communications.

The host computer stores a network definition language (NDL) providing "S-operators" which are operation codes. These codes are loaded into the various line support processors (LSPs) of the system. Each of the line support processors is provided with a universal input output state machine which is provided with auxiliary extra memory storage for receiving the S-operators which the state machine can translate into specific instructions and operation execution to control multiple numbers of line adapters, each of which may have a different line discipline and protocol arrangement.

The S machine (FIGS. 1E, F, G) is a virtual machine which results from the high level S-operators provided by the host computer to the line support processors which are then translated into a lower level operating system for precise and definite instructions to each of the line adapters associated with a given line support processor.

The main host computer in the system is provided with a network definition language (NDL) which is processed through a compiler in order to generate S-operators. These S-operators are loaded into the auxiliary memories associated with each of the state machine processors of each of the line support processors wherein certain interpretive algorithms are used by the state machine processor such that the high level S-operators are converted to operating instructions by the state machine in order to handle the data comm requirements of each of the individual line adapters that go to make up the system.

The I/O subsystem designated as a Line Support Processor (LSP-Data Link Processor) can support up to 16 data-comm lines to remote data sets or data terminals for the transfer of data between a main host computer and multiple numbers of remote terminals. The LSP operates in a specialized environment where the LSP receives I/O commands and task-identifying Data Link words for execution and returns Result/Descriptor words back to the host to indicate completion/incompletion of each assigned task. The LSP is organized with slide-in cards in a Base Module which provide (a) a plurality of Line Adapters (one for each data comm line) where each Line Adapter includes a buffer memory, (b) a processor unit called a universal input/output (UIO) State Machine for executing I/O commands from the Host, and (c) a Data Link Interface Unit which connects the LSP to the Host Computer and provides logic for selection of desired Line Adapters and specific components thereon such as buffer memories, timers, USARTs or Bit-Oriented Controllers.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is an overall data communications system drawing showing the relationship of the host computer to the Line Support Processor and the connection to the remote terminals.

FIG. 1A is a diagram showing the MLI interface to the host and the internal interface to the Line Adapters of the Line Support Processor; FIG. 1B shows the Line Adapter interfaces to direct-connect equipment and the use of an Automatic Calling Unit; FIG. 1C shows the basic elements of the Line Adapter of the Line Support Processor. FIGS. 1D, 1E, 1F, 1G are schematics showing the use of data structures within the Line Support Processor.

FIG. 2 is a schematic drawing showing the backplane of the Base Module and the slide-in cards which go to make up the Line Support Processor.

FIG. 3 shows a dialing sequence for a type 801 Automatic Calling Unit.

FIG. 4 is a block diagram of a bit-oriented Line Adapter in the Quad version whereby four Line Adapters are configured on one slide-in card.

FIG. 5 is a block diagram of a Byte-Oriented Line Adapter in the Quad configuration of four Line Adapters on one slide-in card.

FIG. 6 is a block diagram of the State Machine Microprocessor and often abbreviated as the UIO-SM.

FIG. 7 is a block diagram of a portion of the DLI/LA card which shows an internal data path.

FIG. 8 is a block diagram of the DLI/LA card which shows the controller sequencing logic for operation of the interface card.

FIG. 9 is a block diagram of the data bus structure of a single Line Adapter which is part of the DLI/LA card.

FIG. 10 is a block diagram of the memory and memory logic portion of the DLI/LA card.

FIG. 11 is a schematic drawing of the circuitry for identifying sub-components on a selected line adapter.

BACKGROUND

The essence of data communication is the electronic transmission of encoded information or data from one point to another. In general the mechanisms of data communication physically require certain elements, these include: a transmitter or source of information, a message, a binary serial interface, a communication channel or link, and a receiver of transmitted information. In order to make the binary serial data compatible with the communication channel, there is usually required a data communications interface.

A communications channel or link is a path whereby electrical transmission can occur between two or more stations or terminals by means of, for example, a single wire, multiple wires, coaxial cable, radio frequency transmission, etc. The channel has the purpose of carrying information from one location to another, and these channels are ordinarily designated as simplex, half-duplex and full duplex in the data communication art.

A channel is characterized by its band width, such that the greater the band width of the channel, the higher the possible transmission speed. The speed is measured in terms of the number of bits per second transmitted and called the Baud rate.

Since the pulses transmitted over a communication line can be distorted by various factors, the optimum situation is such that the received signal will be an exact replica of the transmitted signal.

In that the voice telephone network in general uses "analog" transmission facilities to service data communications users, there is required an interfacing means to interface the analog channels to the digital terminals and computers. The interface unit is called a modem (modulated-demodulator) and is used to convert digital signals into analog signals or else analog signals back into digital signals. Thus, modems are devices that convert digital data from a computer or a digital terminal to a modulated carrier waveform (analog) required by the communication channel. One modem is needed at each end of the channel. It should be noted that modems are also called "data sets" and sometimes designated as DS. There are two broad categories of voice grade data sets or modems. These are "asynchronous" units and "synchronous" units. The "asynchronous" units operate at a rapid maximum data rate of 1800 bits per second over dial-up facilities and at 2,000 bits a second on preconditioned leased lines. "Synchronous" units operate generally at a maximum data rate of 4800 bits per second over dial-up lines and at 9600 bits per second on conditioned leased lines.

In asynchronous systems the transmission line is in a "Mark" (binary 1) condition in its "idle" state. As each character is transmitted, it is preceded by a start bit, or transition from mark to space (binary 0) which indicates to the receiving terminal that a character is being transmitted. The receiving device detects the start bit and the data bit that make up the character. At end of the character transmission, the line is returned to "Mark" condition by one or more stop bits and is ready for the beginning of the next character. The start and the stop bits permit the receiving terminal to synchronize itself to the transmitter on a character by character basis.

Synchronous transmission uses an internal clocking source within the modem to synchronize the transmitter and receiver. Once a synchronization character (SYN) has been sensed by the receiving terminal, data transmission then proceeds character by character without the intervening start and stop bits. The incoming stream of data bits is interpreted on the basis of the received clock supplied by the modem. This clock is usually derived from the received data through a phase locked loop. The receiving device accepts data from the modem until it detects a special ending character or a character terminal count at which time it knows that the message is over. The message block consists generally of one or two synchronization characters, a number of data and control characters, a terminating character and one or two error control characters. Between messages the communication line may idle in SYN characters or be held to "Mark".

Asynchronous transmission is advantageous when transmission is irregular; it is also less expensive due to simpler interface logic and circuitry required. However, synchronous transmission, since it eliminates the start and stop bits of each character, makes better timing use of the transmission facility. And synchronous modems offer higher transmission speeds even though they are more expensive since they require precisely synchronized clock and data.

When a number of I/O devices are required at one end of a communication channel, a multiplexor can be used to enable these devices to share one communication line, thus reducing costs. Multiplexors take low speed inputs from a number of terminals and combine them into one high speed data stream for simultaneous transmission on a single channel. At the other end of the channel a second multiplexor which operates as a "demultiplexor" reconverts the high speed data into a series of low speed inputs to the host computer.

The electrical and physical interface to the data terminal equipment is generally built to certain standards such as that established by the Electronics Industries Association such as EIA RS-232.

There are certain rules and modes which are required for the orderly and accurate transfer of data between digital units and these rules are called "protocols". For example, there are established data link control protocols (DLCs) which are rules necessary for communication between terminals and computers over the standard communication channels in order to move information accurately and efficiently. These data link control protocols provide the function of establishing and terminating a connection between two stations; insuring message integrity through error detection; providing requests for retransmission; providing positive or negative acknowledgments; providing identification of the sender and receiver by means of polling or selection; and providing special control functions such as "requests for status", "station reset", "reset acknowledge", "start", "start acknowledge", and "disconnect".

These data link control protocols can be classified in certain categories such as (i) byte control protocols (BCPs) and (ii) bit oriented protocols (BOPs). With the byte control protocols, a defined set of communication control characters monitors the orderly operation of the data link and these control characters are part of a character code set. Thus, the BCP messages are transmitted in blocks composed of a header or control field, a body or text field, and a trailer or error checking field with specialized characters used as field or block delimiters. One example of a byte control protocol is the Binary Synchronous Communications Protocol (BISYNC) developed by the IBM Corporation.

The "bit oriented" protocols (BOPs) may use only two or three specific control characters for monitoring operation of the data link. These characters are used to delimit the beginning (FLAG) and the end (FLAG, ABORT, GA) of a message frame. Upon receipt of the opening FLAG, there is a positional significance which is used to delineate the bit sequence that follows into specified fields which are designated as address, control, information, and frame check sequence fields.

In the "byte oriented" control protocol (BCP) the BCP messages are transmitted in units called "blocks". The header field contains information that identifies the address of the message destination (or source); the job number, if any; the type of message (data or control); the control action; and a positive or negative acknowledgment to ensure error-free reception of a previous message or messages. These control actions are used to reset or to initialize a secondary station, to acknowledge good or bad reception of blocks, to inquire why a response or acknowledgment has not occurred within a specific time period, or else to abort a transfer sequence. The control information is conveyed via special characters or character sequences.

The text or text field of the BCP message contains any data being transmitted.

An error check field (composed of the sequence of check bits called block check characters or BCCs) is generated and transmitted in order to ensure correct reception of information on a communication facility. BOP Messages: The "bit oriented protocol" messages are a little simpler than the byte oriented ones. The BOP messages are transmitted also in frames, and all the messages follow one standard frame of format. These bit oriented messages are independent of codes, line configurations and peripherals. They use positional significance instead of control characters or character counts that include one standard frame-format for all messages. Here a "frame" starts with an eight-bit FLAG sequence which is followed by sequences of: ADDRESS, CONTROL, INFORMATION, and FRAME CHECK, and this ends with another FLAG sequence.

When a primary station transmits, then the station ADDRESS sequence (usually one eight-bit field) designates which secondary station is to receive the balance of the transmitted frame. On the other hand, when a "secondary" station transmits, the ADDRESS then tells the primary station which secondary station originated the frame. To ensure the integrity of the data being transmitted, the ADDRESS sequence appears within each frame.

The CONTROL field of the primary station comes after the ADDRESS sequence and is generally composed of one or two eight-bit bytes. It determines the "type" of message, the send and the receive frame sequence counts, and a poll command from the primary station (or a final response from the secondary station). The primary station uses the CONTROL field to command the addressed secondary station what operation to perform. The secondary station uses the CONTROL field to respond to the primary station.

The INFORMATION field may vary in length, and the data may be configured in any code structure, such as straight binary, binary coded decimal, packed decimal, etc. Synchronization of Transmission: When using synchronous transmission, there may be four different types or methods of synchronization--bit, character, block and message. Bit synchronization is achieved through a received clock signal which is coincident with a received serial data stream. Character synchronization is accomplished by recognizing one or two "phasing" characters called SYN or sync characters.

Retransmission: The data link protocols include an error checking field to allow the receiving station to validate the message. When errors are detected, the receiving station can issue a request for "retransmission" (ARQ). There are two types of "request for transmission". These are: (i) stop and wait and (ii) continuous. Each of these provide methods for acknowledging correct "error free" reception of transmitted blocks of information.

In the "stop and wait" ARQ, the transmitter sends one block and then stops. The receiver acquires that block, subjects the block to an error check, and then sends an ACK control character back to the transmitter indicating that the block is correct, or else it sends a NAK control character to indicate an error occurred. If an ACK is returned, the transmitter sends the next block in sequence. If a NAK is returned, that particular block is retransmitted.

In the "continuous" ARQ the transmitter keeps sending one block after another without stopping. The receiver and transmitter retain individual counts of the blocks outstanding and provide buffer storage to retain those blocks. Only when an erroneous block is detected does the receiver then tell the transmitter to resend that block and all subsequent-in-transit blocks.

"Serial Data" Transmission: Serial data communication involves the use of a transmission line where "bits" of data are transmitted one after another in serial fashion. In computer systems, the serial data communication can occur in two fundamental modes. These are (i) asynchronous (not clocked) or (ii) synchronous (clocked).

Since the asynchronous mode does not use a block, it requires some other method to coordinate incoming data with the receiver's internal system. Thus typically, an asynchronous communication network keeps its communication line in an "idle" condition which is generally called a "Mark" or binary 1 condition. Then a "start" bit precedes each transmitted character to indicate that a new character is beginning and one or more "stop" bits signal the characters end and the return to the idle condition. This sequence of start bit-character data-stop bit is generally called a "frame".

In asynchronous usage the "character length" varies and may range from five to seven bits depending on the code used (BAUDOT, ASCII, and so on) and also error checking can be used on each character by using an additional bit called a "parity" bit. Thus, in the asynchronous communication of characters, much of the time consumed involves non-informational data but rather control bits such as the start bit and two stop bits.

Alternatively, the use of synchronous communication eliminates the high overhead of control bits but requires another method for achieving synchronization. Such synchronous communication networks transmit a clock signal along with the data bits in order to establish individual-bit synchronization between devices.

Certain standardized rules have been made to govern operation of networks and communication protocols are used to define the network's transmission format whether asynchronous or synchronous. Complex computer-to-computer terminal or terminal to terminal networks utilize synchronous data-communication protocols which are either character-oriented or bit-oriented.

The primary "character-oriented" protocol used as an industry standard is called Binary Synchronous Communication and is termed Bisync. This protocol requires certain control-character bit patterns (BEL, ETX, ITB, SOH, STX) in order to ensure proper network operation. Since these bit patterns constitute "control characters", they cannot also be used as a transmission of data. The Bisync protocol requires that transmission be half-duplex since receipt of a block must be "acknowledged" before another block can be transmitted.

This need for a half-duplex requirement is eliminated by the use of BOPs (bit oriented protocols). Here blocks received do not have to be acknowledged each time they are sent and thus full-duplex operation is possible in BOP networks.

There are several bit oriented protocols (BOPs) in current usage: Advanced Data Communication Control Procedure (ADCCP); High-Level Data-Link Control (HDLC); and Synchronous Data-Link Control (SDLC), and Burroughs Data Link Control (BDLC).

The most widely used bit protocol (of these types) is the SDLC. Here information is transmitted between stations in data groups termed "frames" whereby each frame comprises several fields and each field is eight or more bits long or organized in multiples of eight bits. The bits in each field of each frame are set with a specific meaning.

SDLC uses two types of stations desigated as a "primary" or "control" station and a "secondary" slave or "controlled" station. Here the protocol is code independent, and data to be transmitted must be contained in each frame's Information Field. The number of bits per character in any Information Field is limited to eight and the sending frames and the receiving frames are numbered independently. The SDLC's code independence permits full duplex operation. The organization of fields in the SDLC protocol constitutes a "frame" as shown hereinbelow.

                                      TABLE B-1
    __________________________________________________________________________
     ##STR1##
    __________________________________________________________________________


The SDLC's code independence permits full duplex operation and the number of frames "previously sent" monitored in each frame's Control Field. A secondary (controlled) station can transmit back to the primary station the number of frames it has received and if this does not match the number of frames "sent", the secondary station can request a retransmission. However, the primary station need not halt transmission between blocks of data to wait for the secondary station to confirm the receipt of previous frames.

The SLDC Control Field frame is shown hereinbelow.

                  TABLE B-2
    ______________________________________
     ##STR2##
    ______________________________________


The SDLC protocol utilizes a flag concept; thus, an opening flag (01111110) and a "closiong flag (also 01111110) will indicate each frame's beginning and end. The closing flag of one frame can also be the opening flag of the following frame. Because the only protocol-derived control character is the flag, once an opening flag has been sent, the protocol requires that every time five "ones" are transmitted, a "zero" be inserted. This zero-bit insertion technique maintains code transparency. The receiver (after receiving five continuous "ones") strips out the next zero automatically.

Integrated circuit chips, as for example the American Microsystems, Santa Clara, Ca., type S6854, can be used to handle all three types of bit oriented protocols (BOPs). It can furnish such protocol handling features as: automatic flag detection and synchronization; zero bit insertion and deletion; extended address control and logical control fields; variable word-length information fields of 5, 6, 7, 8 bits; automatic frame-check sequence generation and checking.

In the frame-check sequence, the transmitting station looks at every bit that it transmits (ignoring opening and closing flags) and operates on each with a fixed algorithm that generates the 16 bit sequence. On the receiving end the receiver operates on every bit received, except the frame-check sequences. Upon receiving a closing flag, the receiver then compares the frame-check sequence that it has generated with the frame-check sequence that it has received. If the two match, then the transmission is verified; if they do not match, the receiver requests retransmission.

All of the bit-oriented protocols permit transmission to cease during a frame, provided that an "abort" sequence is sent. The protocols thus require that frames either be sent in their entirety or else aborted with the abort sequence. An IC chip (such as the AMI S6854) also allows the transmitter to go to "idle" state and yet maintain control of the transmission line by answering one of two idle modes. Likewise, a receiver must be able to detect an "idle" condition in order to be able to transmit (that is, turn the line direction around).

Data Network Overview

The present disclosure involves a network where a main host computer is supported by an I/O subsystem called a Line Support Processor (or a plurality of such processors) whereby many data-comm lines to remote terminals may be utilized for data transfers. These data transfers may be effectuated for several different types of protocols using both synchronous and asynchronous operations.

The use of a host computer with an I/O subsystem which uses particular commands called I/O descriptors, data link descriptors and result/descriptors, and an architecture where one (or a plurality of) base module(s) supports a plurality of data link processors (peripheral-controllers) is shown in several prior patents assigned to the same assignee as is this disclosure. These patents are listed hereinbelow and are included by reference:

U.S. Pat. No. 4,074,352 entitled "Modular Block Unit for Input/Output Subysystem".

U.S. Pat. No. 4,106,092 entitled "Interface System Providing Interfaces to Central Processing Unit and Modular Processor-Controllers for an Input-Output Subsystem".

U.S. Pat. No. 4,189,769 entitled "Input-Output Subsystem for Digital Data Processing System".

LINE SUPPORT PROCESSOR II (LSP II)-DATA LINK PROCESSOR

General Overview

In a typical standard configuration as seen in FIG. 1, the host computer 100 is connected to a Line Support Processor 300 (LSP) which provides, as part of its circuitry, a series of Line Adapters (400, 500), each of which controls the transmission operations for a particular telephone or other type line. The Line Adapter 300 further includes a State Machine Processor 600 and a Data Link Interface/Line Adapter 700 (DLI/LA).

The Line Support Processor 300 is used to control low to medium speed data communication lines which are generally designated as sub-broadband (SB). From one to 16 Line Adapters (FIG. 1A) can be built into the Line Support Processor and can be used to handle one to 16 full duplex or half duplex lines. The lines can be private or switched. The transmission modes used can be (i) asynchronous or (ii) synchronous, or (iii) bit-synchronous. Thus, the Line Support Processor can support a nominal maximum network of four to five half-duplex 9,600 baud lines connected to TD 830s or any other network of up to 16 lines which would represent an equivalent workload.

The Line Adapter(s) is a component portion of the Line Support Processor. The Line Adapter may be placed on a single slide-in card or it may be fabricated as a "Dual" line adapter whereby two complete line adapters are fabricated on one slide-in card, or there may be fabricated a "Quad" line adapter card which constitutes four complete line adapters built on to one slide-in card. Thus, the Line Support Processor can be organized to support 1-16 data comm lines.

The Line Adapter is connected to a data communications line via two kinds of external equipment, namely (i) Data Circuit-Terminating Equipment (DCE) and (ii) an optional Automatic Calling Unit (ACU). FIG. 1B illustrates the connections of each Line Adapter to a DCE and an ACU.

A Line Adapter (FIG. 1C) in its most comprehensive embodiment will basically contain the following components: (i) a 4,096 byte RAM (Line-Work Area) which is used to hold the information associated with that particular line; (ii) a transceiver (Line Transceiver); (iii) a field-engineer jumpered value line (Line ID) which indicates the physical characteristics of the line; (iv) a DCE-Interface logic unit; (v) ACU-Interface logic unit; and (vi) two program timers. There are illustrated in FIG. 1C.

The Line Support Processor can be looked upon as a "hierarchy" of processes. One process is called the executive" kernel and is the root of the hierarchy (FIG. 1D). It manages the communications with the host computer, it initiates low-level processes, and performs LSP-oriented functions. The lower-level processes will perform line-oriented functions and are grouped by the line involved. FIG. 1D shows in schematic form the relationship of the "executive kernel" and the processes which are used for the 16 data communication lines designated line 0 to line 15. A "Line" is a logical construct which represents a particular line adapter and represents only the data structures associated with that adapter and are called "Line Data structures".

The highest-level line processes are the "executive processes". In general, the executive processes are initiated by the kernel in response to host-initiated operations on the line. The "lowest" level line processes are the "input and output" processes. The "Input Process" is used to control the input of a message from the data communications line. The "Output Process" is used to control the output of a message to the data communications line. These processes are part of a mechanism called the "S-machine" which will be discussed later hereinunder.

Line Data Structures: The Line Support Processor (LSP) maintains the following data structures for each line:

(i) Line ACU: this is a data structure which consists of the values of the ACU-interface signals for a particular line. The individual Line ACU signals are denoted by--Line.ACU. Signal $ Name--. ACU refers to an automatic calling unit.

(ii) Line.DCE: this is a data structure which consists of the values of the internal DCE-Interface signals for a particular line. The individual Line DCE signals are denoted by--Line.DCE. Signal $ Name--. The term DCE refers to data circuit termination equipment which is used on a data communication line.

(iii) Line Count: this is an integer which indicates the number of operations which are in progress on a particular line.

(iv) Line.ID: a data structure which indicates physical characteristics of a particular line. The individual Line.ID items are defined below and are denoted by `Line.ID. (Item$Name)`. The designation ID refers to "identification" of line characteristics.

(v) Connect-Type: this enumeration indicates the connection method of the line as follows:

(a) Private: the line is not switched.

(b) Switched--No Auto Dial: the line is switched but has no auto-dial capabilities.

(c) Switched--ACU Auto Dial: the line is switched and has an ACU for auto dial.

(d) Switched--DCE Auto Dial: the line is switched and has a DCE with built-in auto-dial capabilities.

(vi) DCE-Disconnect-Detect: a TRUE value of this boolean indicates that the DCE for the line can detect a break in a switched connection and will report such a break by dropping the line.DCE.DSR. This represents the "data set ready" signal on the data comm line to the data circuit termination equipment.

(vii) Transceiver-Type: this enumeration indicates the transmission-mode capabilities of the transceiver for the line, as follows:

(a) Character Oriented: the transceiver can support both asynchronous and synchronous modes.

(b) Bit Oriented: the transceiver can support bit-synchronous mode.

(viii) Line.S: a data structure which represents the S-machine for a particular line.

(ix) Line.State: a data structure which indicates the logical state of a particular line. The individual Line.State items are listed below and are denoted by `Line.State. (ItemSName)`. A particular Line.State value or set of values is denoted by a 3-tuple with the following order of item values: (Input Process State, Output Process State, Sequence). An `*` in a 3-tuple position denotes any value of the corresponding item.

(a) Input-Process-State: this enumeration indicates the status of the Input Process for the line. The values of this enumeration are:

(a1) Not Executing: there are no `Execute Input Process` operations in progress for the line.

(a2) Executing: there is one `Execute Input Proces` operation in progress for the line.

(a3) Executing and Queued: there are two `Execute Input Process` operations in progress for the line, one of which is waiting for the completion of the other one.

(b) Output-Process-State: this enumeration indicates the status of the Output Process for the line. The values of this enumeration are:

(b1) Not Executing: there are no `Execute Output Process` operations in progress for the line.

(b2) Executing: there is one `Execute Output Process` operation in progress for the line.

(b3) Executing and Queued: there are two `Execute Output Process` operations in progress for the line, one of which is waiting for the completion of the other one.

(c) Sequence: this enumeration indicates the overall status of the line. The values of this enumeration are shown below. There is an integer function, called Limit, defined upon Sequence which is "4" for the values `Enabled` and `Enabled and Executing` and which is 1 for all other values.

(c1) Uninitialized: there are no operations in progress for the line and the value of Line.S. Loaded is FALSE.

(c2) Enabled: there are no operations in progress for the line and the value of Line.S.Loaded is TRUE.

(c3) Initializing S-Machine: there is an `Initialize S-Machine` operation in progress for the line.

(c4) Updating S-Machine: there is an `Update S-Machine` operation in progress for the line.

(c5) Monitoring Ring: there is a `Monitor Switched-Line` operation in progress for the line which is waiting for a ring indication.

(c6) Monitoring End-of-Ring: there is a `Monitor Switched-Line` operation in progress for the line which is waiting for an end-of-ring indication.

(c7) Answering: there is an `Answer Switched-Line` operation in progress for the line.

(c7) Auto Dialing: there is an `Auto-Dial Switched-Line` operation in progress for the line.

(c8) Disconnecting: there is a `Disconnect Switched-Line` operation in progress for the line.

(c9) Enabled and Executing: there is at least one `Execute Input Process` or `Execute Output Process` operation in progress for the line.

(c10) Dumping Data-Area: there is a `Dump Data-Area` operation in progress for the line.

(d) Line.Switched-State: this enumeration indicates the switched state of a particular line. The individual Line.Switched-State values are:

(d1) Private: the value of Line.ID.Connect-Type is `Private`.

(d2) Disconnected: the value of Line.ID.Connect-Type is not `Private`; the line does not have a switched connection, and Line.DCE.RI has been FALSE for at least 10 seconds. The symbol "RI" refers to the ring indicator which indicates that the telephone line is ringing.

(d3) Ringing: the value of Line.ID.Connect-Type is not `Private`; the line does not have a switched connection, and Line. DCE.RI has been TRUE within the last 10 seconds.

(d4) Connected: the value of Line.ID.Connect-Type is not `Private` and the line has a switched connection.

The following glossary list will briefly define the terms used in this specification.

TABLE B-3

Glossary of Terms

ACU=AUTOMATIC CALLING UNIT (See below).

ACU INTERFACE: A set of signals and an electrical signalling discipline which are used in communication between the line adapter for a particular line and an ACU.

ASYNCHRONOUS MODE: A transmission mode in which line suynchronization is maintained by framing each character with start and stop bits. It is used for low to medium speed transmission of character strings.

AUTOMATIC CALLING UNIT (ACU): An optional external unit which connects between a line adapter and a DCE. It can be used to originate outgoing calls on a switched data communications line and is supplied by a communications common carrier.

BAUD: A unit of signalling speed which is defined as the number of times the state of the signal changes per second. If each signal element represents one bit of information, the baud rate is equal to the bit rate of the signal.

BCS (see BLOCK-CHECK SEQUENCE).

BIT-SYNCHRONOUS MODE: A transmission mode in which line synchronization is maintained by operating all DCEs on the line at the same frequency and by keeping the DCEs in phase by framing each transmission with flag patterns. It is used for low to high speed transmission of arbitrary bit strings.

BLOCK-CHECK SEQUENCE (BSC): A horizontal-parity check sequence on a block of characters.

BOOLEAN: A data type which consists of the logicial values TRUE and FALSE.

BYTE: A data type which consists of the 8-bit wide binary values zero to 255. A byte can be used to represent a single EBCDIC character. The bits within a byte are numbered from 7 to zero, with 7 being the most significant bit. A single bit within a byte is denoted by a bit number contained in angle brackets; for example B$(6). A subfield of a byte is denoted by a starting bit and the width of the field (to the right of the starting bit) contained in angle brackets; for example: B$(6:3).

DATA CIRCUIT-TERMINATING EQUIPMENT (DCE): An external unit which connects a line adapter to a data-communications line. It is typically a data set or an electrical interface conversion circuit.

DCE: This refers to data circuit terminal equipment which is used to terminate a data communication line.

DCE INTERFACE: A set of signals and an electrical signalling discipline which are used in communication between the line adapter for a particular line and a DCE.

DESCRIPTOR LINK: A 32 bit job identifier which is sent by the host to the LSP along with an I/O descriptor to initiate an operation. It is returned by the LSP to the host in subsequent connections dealing with the same operation.

DLE CHARACTER: In transparent operation, the character sequence `DLE SYN` is used by the transceiver to maintain line synchronization. This definition is the only meaning of the DLE character used herein. The symbol DLE refers to "delete".

FALSE: A boolean value denoted by a binary 0.

LSP (SB): Line Support Processor (Sub-Broadband). Formerly called a Frame Recognition Data Line Processor (FR-DLP).

HOST: That processing node which initiates LSP operations. It may be the mainframe or it may be a Subsystem-Controller LSP (SC-LSP).

INPUT PROCESS: An S-process which is used to control the input of a message from a data-communications line. The input process refers to the transfer of data which is received from a USART in the line adapter and transferred to the host computer. Similarly, the "output process" is where data is transferred from the host over to a selected USART in a selected line adapter.

INTEGER: A data type which consists of the 16-bit wide binary values, zero to 65,635. The bits within an integer are numbered from 15 to zero, with 15 being the most significant bit. A single bit within an integer is denoted by a bit number contained in angle brackets; for example: I$(13). A subfield of an integer is denoted by a starting bit and the width of the field (to the right of the starting bit) contained in angle brackets; for example: I$(13:3).

I/O DESCRIPTOR: A data structure which is sent by the host to the LSP along with a descriptor link to initiate an operation. It specifies the type of operation to be performed as well as various parametric information. LA (see LINE ADAPTER).

LIMIT: An integer function, defined upon Line.State.Sequence, which is "4" for the values `Enabled` and `Enabled and Executing` and which is "1" for all other values.

LINE: Either a general reference to a particular line adapter (data-communications line) or a qualifier which is used as part of the naming convention for all of the data structures and hardware elements which are associated with a particular line adapter.

LINE ADAPTER (LA): A hardware unit which is used to connect a data-communications line to the LSP. It contains the following components: (1) a 4,096 byte RAM (Line.Work-Area) which is used to hold information associated with the line, (2) a transceiver (Line.Transceiver), (3) a field-engineer jumpered value (Line.ID) which indicates physical characteristics of the line, (4) DCE-Interface logic, (5) ACU-Interface logic, and (6) two programmatic timers.

LOOP OPERATION: In bit-synchronous mode, a method of line operation in which several stations are connected together in a loop such that each secondary station must pass on all frames which are not addressed to it.

MESSAGE-LEVEL INTERFACE (MLI): A set of signals and an electrical signalling discipline which are used in communication between the LSP and the host.

NDL=NETWORK DEFINITION LANGUAGE.

NETWORK DEFINITION LANGUAGE (NDL): A notation used to specify S-machine processes and their data.

NON-TRANSPARENT OPERATION: In synchronous mode, a method of line operation in which the text portion of a message may not contain line-protocol control characters.

OPERATION: One of the various functions which the LSP can be instructed to perform by the receipt of an I/O descriptor and a descriptor link from the host.

OUTPUT PROCESS: An S-process which is used to control the output of a message to a data-communications line.

PRIVATE LINE: A data-communications channel which is either (1) owned by the customer, (2) leased from a communications common carrier for the exclusive use of the customer, or (3) provided by a communications common carrier for customer access to a switched network other than the common telephone switched network (that is, a TELEX).

RESULT DESCRIPTOR: A data structure which is sent by the LSP to the host along with a descriptor link to terminate an operation. It indicates various information about the status of the operation including, but not limited to, exception conditions.

SWITCHED LINE: A data-communications channel which is provided by a communications common carrier for customer access to the common switched telephone network.

SYN CHARACTER: In non-transparent operation, the character sequence `SYN SYN` is used by the transceiver to maintain line synchronization. This definition is the only meaning of the SYN character used herein.

SYNCHRONOUS MODE: A transmission mode in which line synchronization is maintained by operating all DCEs on the line at the same frequency and by keeping the DCEs in phase by starting each transmission with the character sequence `SYN SYN` and embedding either `SYN SYN` or `DLE SYN` character sequences in the transmission. It is used for low to high speed transmission of character strings.

S-MACHINE: A special purpose, simulated machine which is tailored for performing information transfer across a data-communications line by suitable control of a transceiver.

S-OPERATOR: One of the operation codes which comprise the instruction set of the S-machine.

S-PROCESS: A process which runs on the S-machine.

TRANSCEIVER: A hardware/firmware unit which performs specialized data-communications functions.

TRANSPARENT OPERATION: In synchronous mode, a method of line operation in which the text portion of a message may contain any valid character including the line-protocol control characters.

TRUE: A boolean value denoted by a binary 1.

Further Data Communication Symbols

Used:

S-RC; This refers to the receiver interface for the S-operators.

S-TC: This refers to the transmitter interface for the S-operators.

S-DATA: This refers to the S-operators for identifying a body of data to be transferred.

S-TRANSMIT: This refers to the S-operators used to enable the transmission of data.

S-CLASS: This refers to S-operators which define various types of parameters involving the data communication line such as line speed, transmission delays, receiver delays, time-out period for the line, cyclic redundancy checking, etc.

S-CLASS.DLE.CHARACTER: This is a parameter condition of the S-operator which is used for the "delete" of a character.

S-CLASS SYN CHARACTER: This refers to the operation where a synchronization character is to be transmitted on the line.

S-CLASS.VERTICAL PARITY: This refers to the S-operator which is used to determine whether the parity will be odd or even.

STC: This refers to the "status count" which is used in the type of I/O controllers known as data link processors and which has been described in the patents which were incorporated by reference.

STC TRANSPARENT: This is the operator which puts the line into a particular mode called transparent which enables the stripping out of a synchronization character.

STC FORCE DLE: This is the operator used in the transparent mode to provide a data link escape function. In a synchronous protocol situation this enables the sunchronization character to be stripped out from the other data.

STC COMMAND: This is a status count command which is used on the message level interface between the line support processor and the host computer, whereby certain set routines are accomplished according to the status count. This was described in the patents incorporated by reference.

LINE.DCE.TD: This represents a data communication line to the data circuit terminal equipment for the purpose of "transmitting data".

S-INPUT EXECUTION: As seen in FIG. 1E the S-operators handle the execution of inputs to a receiver with a first processor A and also handle the outputs to a transmitter with operators from a second processor B. These are all functions of the universal input output state machine in the line support processor.

THE S-MACHINE

The S-machine is a special purpose simulated machine designed for performing information transfer across a data-communications line by suitable control of a Transceiver such as Transceivers 408, 410, 412, 414, FIG. 4, or 508, 510, 512, 514, FIG. 5.

The S-machine consists of a set of major data structures which may be summarized as:

1. An input process code segment (S.Input)

2. An output process code segment (S.Output)

3. A data segment which is shared by the two previous processes (S.Data)

4. A translation table (S.TRAN)

5. A set of line parameters (S.Class)

6. Two simulated processors (S.PR)

b 7. A receiver interface (S.RC)

8. A Transmitter interface (S.TC)

FIG. 1E shows the relationship of these data structures.

Transceiver Interface: An S-machine interacts with a Transceiver by means of the following data structures:

1. A set of line parameters (S.Class)

2. A receiver interface (S.RC)

3. A transmitter interface (S.TC).

FIG. 1F shows the relationship of these data structures.

Transceiver: The transceiver is a hardware-firmware unit which performs specialized data communication functions. The transceiver consists of a receiver and a transmitter. It interacts with the S-machine via the S.Class, S.RC, and S.TC data structures. It interacts with a data communication line via the Line.DCE data structure. FIG. 1G shows the transmitter and receiver relationship to the data structures.

Receiver: The receiver accepts a serial bit stream from the DCE (data circuit termination equipment) via the Line.DCE.RD signal, and converts it into a sequence of characters. The rate at which the bits are expected are determined by the DCE in synchronous and bit-synchronous mode and by S.Class.Clock-Divisor in the asynchronous mode.

The receiver is enabled when S.RC.Enabled is set to TRUE. Each accumulated character is placed in the S.RC.Char and the S.RC.Byte-Present is set to TRUE. If S.RC.Byte-Present is not set to FALSE before another character is accumulated, the new character is placed in S.RC. Char and the S.RC.Error.Overrun is set to TRUE.

The number of bits assembled per "character" is determined by S.Tran.Char-Size (with the exception of the address and control field of each frame in the bit-synchronous mode). The assembled character is right-justified with zero fill.

Receiver Operation--Asynchronous Mode: Assembly of a character is initiated upon recognition of the first start bit following a preceding stop bit. The character assembled least-significant bit first. All start, stop and parity bits are deleted from the assembled character. If the final bit of a character is not followed by a stop bit, then S.RC.Error.Stop-Bit is set to TRUE; the absence of a stop bit in conjunction with a received character of all zeros will cause the S.RC.Frame-Abort to be set to TRUE also. If S.Class.Vertical-Parity specifies "Even" or "Odd" parity and the assembled character has bad parity, then S.RC.Parity is set to TRUE.

Receiver Operation--Synchronous Mode:

When S.RC.Enable is set TRUE, the receiver begins searching for two contiguous characters which match S.Class.SYN. Their recognition establishes "line synchronization". The receiver will then begin assembling characters from the line, least significant bit first. If S.TC.Transparent is FALSE and the S.Class.Vertical-Parity is "even" or "odd", each character is assumed to include a parity bit. If a character has bad parity, then S.RC.Parity is set to True. The parity bit is deleted from the assembled character.

If S.RC.Transparent is FALSE, the receiver will discard all assembled characters which match S.Class.SYN. If S.RC.Transparent is TRUE and an assembled character matches S.Class.DLE, the receiver will examine the next assembled character. If that character matches S.Class.SYN, the pair of characters is discarded. If that character matches S.Class.DLE, the second character is discarded.

Receiver Operation--Bit Synchronous Mode:

When S.RC.Enabled is set to TRUE, the receiver begins searching for a flag pattern (01111110). When the flag pattern is detected and the next 8 bits are another flag or an abort pattern (11111111), the search is re-initiated. Otherwise, the beginning of a frame is detected.

The receiver continues to assemble 8-bit characters until the address and control fields of the frame have been received; subsequent received bits are assembled, based upon S.Tran.Char-Size until either a flag or an abort is detected. The address field is terminated by the first assembled character in which the high-order is zero. The control field is a fixed one or two characters, as specified by S.Class.Control-Size. If S.Loop is TRUE and the first character of the address field is not all ones or does not match S.Class.Loop-Address, the frame is discarded and the receiver goes back to searching for the first flag of the next frame.

If the frame is terminated by an abort, the S.RC.Error.Frame-Abort is set to TRUE. If the frame is terminated by a flag, S.RC.End-Frame is set to TRUE, S.RC.Residue is set to indicate the number of bits in the last character and the flag and preceding 16-bits (the FCS) are discarded. If the final computed FCS (frame control signal) is not correct, then S.RC.BCS-Error is set to TRUE.

Within a given frame, a zero bit following five consecutive ones will be discarded.

Transmitter Operation: The transmitter accepts a sequence of commands and characters. This sequence results in a serial bit stream which is transmitted to the DCE (data circuit termination equipment) via the Line.DCE.TD signal. The rate at which bits are transmitted is determined by the DCE in synchronous and bit-synchronous modes and also by the S.Class.Clock-Divisor in the Asynchronous mode.

The transmitter is enabled when S.TC.Enabled is set to TRUE. The function to be performed is specified by the S.TC.Command. When the S.TC.Command is "Transmit Char" and the transmitter is ready to accept a new character, the S.TC.Byte-Request is set to TRUE. Within one character time, the next character must be loaded into S.TC.Char and the S.TC.Byte-Request must be set to FALSE: otherwise an underrun condition will occur. This is an error only in the bit-synchronous mode.

The number of bits transmitted per character is determined by S.Tran.Char-Size (with the exception of the address and control fields of the frame in bit-synchronous mode. These bits must be right-justified within the character).

Asynchronous Mode-Transmitter Operation: If S.TC.Command is set to "Transmit Char", each loaded character is converted into the following bit sequence:

(a) a start bit

(b) the bit-serial character (least significant bit first)

(c) a parity bit (if S.Class.Vertical-Parity is "even" or "odd")

(d) the number of stop bits is specified by the S.Class.Stop-Bits.

If the next character has already been loaded upon completion of the current character, the next character is begun immediately; otherwise the line is held in a "Mark" condition.

If S.TC.Command is set to "Transmit-Break", the transmitter will hold the line in a "Space" condition until either (1) the S.TC.Command is set to "Transmit Char" or (2) the S.TC.Enabled is set to FALSE.

Synchronous Mode--Transmitter Operation: If the S.TC.Command is set to "Transmit Char", each loaded character is converted into the following bit sequence;

(a) the bit-serial character (least significant bit first) followed by:

(b) a parity bit (if S.TC. Transparent is FALSE and the S.Class.Vertical-Parity is "even" or "odd").

If an underrun occurs and the S.TC.Transparent is FALSE, the transmitter will transmit the character specified by the S.Class.SYN. If an underrun occurs and the S.TC.Transparent is TRUE, the transmitter will transmit the pair of characters specified by S.Class.DLE and the S.Class.SYN.

Bit-Synchronous Mode-Transmitter Operation: If the S.Class.Loop is TRUE, the transmitter will delay all commands and automatically retransmit everything received by the receiver until the receiver detects the "go ahead" pattern (01111111); upon completion of each frame, the transmitter will transmit a "go-ahead" and return to loop operation until another "go-ahead" is received.

If the S.TC.Command is set to "Trans Flag", the transmitter will transmit continuous flags. If the S.TC.Command is set to "Transmit Abort", the transmitter will transmit continuous aborts.

If the S.TC.Command is set to "Transmit Char", the beginning of a frame is assumed. The transmitter will transmit 8-bit characters until the address and the control fields of the frame has been transmitted; subsequent characters are transmitted based upon the S.Tran.Char-Size. The address field is terminated by the first character in which the high-order bit is zero. The control field is a fixed one or two characters, as specified by the S.Class.Control-Size. If an underrun occurs, the transmitter will transmit an abort and set the S.TC.Error.Underrun to TRUE.

If the S.TC.Command is set to "Transmit End-Frame" the transmitter will apply the S.TC.Residue to the last character loaded, then transmit the FCS, and then transmit at least one flag.

Within a Frame, a zero bit is inserted after five consecutive ones.

The I/O descriptor words from the host computer when conveyed to the Line Support Processor will indicate what operations are to be accomplished such as: initializing the S-Machine; doing a manual dial or an automatic dial operation; executing input/outputs; disconnecting from the LSP; and other operational functions. The Result Descriptor Words which are sent back by the Line Support Processor to the host computer will indicate whether or not each instruction was executed or whether some type of incompletion of command was encountered.

Certain codes have been provided for the transmitter character size which will determine whether the character size is to be 5, 6, 7 or 8 bits per character.

Host Interface: Communication between the LSP and the host is accomplished via a set of signals and an electrical signalling discipline. These signals are called the Message-Level Interface (MLI).

Data Communications-Line Interface: As seen in FIG. 1B, the Line Adapter for a particular line is connected to the data-communications line via a Data Circuit-Terminating Equipment (DCE) and an optional Automatic Calling Unit (ACU).

DCE Interface: Communication between the Line Adapter for a particular line and a DCE is accomplished via a set of signals and an electrical signalling discipline called the "DCE Interface". A particular DCE-Interface signal for a particular line is denoted by `Line.DCE.(Signal$Name)`. The table below lists the set of DCE-Interface signals.

                  TABLE B-4
    ______________________________________
    Direction    Signal Name
    ______________________________________
    LSP .fwdarw. DCE
                 DTR       Data Terminal Ready
    LSP .rarw. DCE
                 DSR       Data Set Ready
    LSP .fwdarw. DCE
                 RTS       Request to Send
    LSP .rarw. DCE
                 CTS       Clear to Send
    LSP .fwdarw. DCE
                 SO        Special Output
    LSP .rarw. DCE
                 SI        Special Input
    LSP .fwdarw. DCE
                 DM        Dial Mode
    LSP .rarw. DCE
                 DCD       Data Carrier Detector
    LSP .rarw. DCE
                 RI        Ring Indicator
    LSP .rarw. DCE
                 SCT       Serial Clock Transmit
    LSP .rarw. DCE
                 SCR       Serial Clock Receive
    LSP .fwdarw. DCE
                 TD        Transmitted Data
    LSP .rarw. DCE
                 RD        Received Data
    ______________________________________


It is useful to distinguish between the "external" and "internal" DCE-Interface signals. An external signal is one of the physical data paths between the LSP and the DCE. An internal signal is an internal LSP data path which normally connects to one of the external signals.

ACU Interface: Communication between the Line Adapter for a particular line and an ACU is accomplished via a set of signals and an electrical signalling discipline called the "ACU Interface", as seen in FIG. 1B and FIG. 1C. A particular ACU-Interface signal for a particular line is denoted by `Line.ACU.(Signal$Name)`. The table below lists the set of ACU-Interface signals.

                  TABLE B-5
    ______________________________________
    Direction    Signal Name
    ______________________________________
    LSP .fwdarw. DCE
                 CRQ       Call Request
    LSP .rarw. DCE
                 PWI       Power Indication
    LSP .rarw. DCE
                 PND       Present Next Digit
    LSP .fwdarw. DCE
                 DPR       Digit Present
    LSP .fwdarw. DCE
                 NB1       Digit Signal 1
    LSP .fwdarw. DCE
                 NB2       Digit Signal 2
    LSP .fwdarw. DCE
                 NB4       Digit Signal 4
    LSP .fwdarw. DCE
                 NB8       Digit Signal 8
    LSP .rarw. DCE
                 DLO       Data Line Occupied
    LSP .rarw. DCE
                 ACR       Abandon Call and Retry
    LSP .rarw. DCE
                 DSS       Data Set Status
    ______________________________________


OPERATIONS OVERVIEW

To initiate a data transfer or data communications operation, the host computer sends the Line Support Processor (also called a Data Link Processor, DLP) a coded signal called an I/O Descriptor and a coded job-identifier signal called a Descriptor Link. The I/O Descriptor specifies the type of operation to be performed as well as various other parameters of information.

After reception of an I/O Descriptor and the Descriptor Link, the LSP-DLP will make a transition to one of three states called message level interface (MLI) states; these are:

(i) Result Descriptor: this state transition indicates that the LSP-DLP is immediately returning a Result Descriptor coded word involving that particular operation (for example, because it detected either a vertical or a longitudinal parity error in the I/O Descriptor or in the Descriptor Link).

(ii) Disconnect: this state transition indicates both that the LSP-DLP cannot accept any more operations at this time and that the I/O Descriptor word and the Descriptor Link were received without parity errors.

(iii) Idle: this state transition indicates both--that the LSP-DLP cann accept another legal operation at this time and that the I/O Descriptor and the Descriptor Link were received without parity errors.

If the LSP-DLP should detect a vertical parity error on the first MLI word of the I/O Descriptor (which contains the "number of additional words" field), it will immediately make a transition to the state called the "I/O Descriptor LPW MLI state".

Upon the acceptance of an I/O Descriptor word (which is for a particular line), the LSP-DLP will increment the Line.Count by "one".

Upon termination of an operation, the LSP-DLP will return a Result Descriptor word (which contains information indicating the status of the operation including exception conditions) back to the host computer. If the operation was for a particular line only, the LSP-DLP will also decrement Line.Count by "one".

Referring to FIG. 2 the Line Support Processor is seen as being composed of a number of slide-in cards which slide into the Base Module. These slide-in cards consist of the State Machine Processor card 600, the Quad Line Adapters 400, 500 (which each consist of four line adapters on one card) and a DLI/LA card 700 which is an interface to the main host computer and also supports a single line adapter on the card. This unit is called a DLI or Data Link Interface.

As will be seen in FIG. 2, a series of frontplane connecting lines connect these slide-in cards one to another. The outputs of each of the line adapters are also frontplane output lines which connect to an electrical (EI) interface which connects to individual data communication lines.

STATE MACHINE PROCESSOR (UIO-SM) FIG. 6

The State Machine Processor, which is often designated as the UIO State Machine (to designate a Universal Input-Output Processor), resides on a circuit board of chips which can be inserted as a slide-in assembly into the Base Module (FIG. 2) where it connects to the backplane. The State Machine is connected to the application dependent logic (located on other slide-in cards) through its frontplane connectors as is seen in FIG. 2.

The description and the drawings of the UIO State Machine have been discussed in several prior patents which are included herein by reference. These patents are:

U.S. Pat. No. 4,293,909 entitled "Digital System for Data Transfer Using Universal Input-Output Microprocessor", inventors Robert D. Catiller and Brian K. Forbes.

U.S. Pat. No. 4,291,372 entitled "Microprocessor System with Specialized Instruction Format", inventors Robert D. Catiller and Brian K. Forbes.

U.S. Pat. No. 4,292,667 entitled "Microprocessor System Facilitating Repetition of Instructions", inventors Robert D. Catiller and Brian K. Forbes.

The use of a host working in conjunction with an I/O Subsystem using I/O Descriptors, Data Link Descriptors and Result Descriptors is shown in U.S. Pat No. 4,189,769, Feb. 19, 1980, to Darwen J. Cook and Donald A. Millers, II entitled "Input-Output Subsystem for Digital Data Processing System", and this patent is included herein by reference.

As discussed in the referenced patents the UIO State Machine implements a variety of general purpose operators which include:

Arithmetic OPs;

Logical OPs;

Read/Write Memory OPs;

PUT/GET OPs;

Programmed Stack OPs (Branch, Call, Return).

The PUT OP writes a 16 bit word from the I/O bus of the State Machine Processor into a register useful in an external application. The PUT OP can address one of some 32 such application dependent registers. The GET OP reads a 16 bit word from an application dependent register into a selective accumulator register on the State Machine or into data memory through the I/O bus. The GET OP can also address one of the 32 application dependent registers.

The UIO State Machine Processor 600 has the ability to repeat certain OPs (PUT's, GET's and certain logical OPs) by the use of a Repetition Counter 42 along with the Memory Reference Register 40 (MRR) which is used as a counter, after having been loaded with the starting address of the data block to be used in the repeated OP.

For the purpose of holding "PUT Data" for a longer period of time than can occur directly off of the I/O bus, two eight-bit registers (a First Control Register 37 and a Second Control Register 38) have been placed on the I/O bus 10 of the State Machine Processor (FIG. 6). The strobing of these registers is under the control of the Application Dependent Logic.

A "WAIT" line has been implemented into the State Machine Processor such that when "slow memory" is addressed, the "slow memory" can force the State Machine Processor to wait however long is required for the Read or Write operation to be valid. This line can also be used to "halt" the machine.

I/O Descriptor-Result Descriptor Notation: I/O Descriptors and Result Descriptors are data structures which contain multiple component fields. These fields are mapped into a sequence of MLI words. An MLI word is 16 bits wide. The mapping between fields and MLI words is shown below:

                  TABLE B-5
    ______________________________________
     ##STR3##
    A particular field is defined by the following notation:
    w: `Field Name`: Word (x) (y:z)
    w:          The letter `w` is used to
                cross-reference the verbal description
                of the field with its position in the
                associated diagram. Subfields of
                fields are not assigned individual
                field letters.
    Field Name: The name assigned to the field.
    Word (x):   The field is contained within (or
                starts in) MLI word number `x`.
    (y:z):      The field starts at the bit labelled
                `y` and is `z` bits wide.
    ______________________________________


Portions of MLI words which are marked as either `(Not Used)` or `(NU)` must be zero. Integer fields are binary with the left-most bit (in the sense of the diagrams in this document) being the most significant bit. Common I/O-Descriptor Fields: Except for a few common fields, I/O-descriptor fields are different for the individual operation types. The meaning of common fields is shown below.

                  TABLE B-6
    ______________________________________
    Common I/O-descriptor field definition:
    ______________________________________
     ##STR4##
     ##STR5##
     ##STR6##
    ______________________________________


The fields in these words are described below as items a, b, c, d, e, f, g:

a: Data Transfer: Word (1) (A8:4)--This enumeration specifies the nature of the data transfer which may occur as part of the operation. The encoding of this field is listed in the table below.

                  TABLE B-7
    ______________________________________
     ##STR7##
    ______________________________________


b: Operation Type: Word (1) (B8:4)--This enumeration specifies which LSP operation is to be performed. The encoding of this field is listed in the table below.

                  TABLE B-8
    ______________________________________
    Operation Type      Code
    ______________________________________
    Extended Op Type    0000
    Initialize S-Machine
                        0001
    Update S-Machine    0010
    Monitor Switched-Line
                        0011
    Answer Switched-Line
                        0100
    Auto-Dial Switched-Line
                        0110
    Disconnect Switched-Line
                        0111
    Execute Input Process
                        1000
    Execute Output Process
                        1001
    Discontinue         1010
    Soft-Clear Line     1011
    Test LSP ID         1100
    Test Line           1101
    Dump Data-Area      1110
    ______________________________________


c: Number of Additional Words: Word (1) (C8:8)--This integer specifies the number of additional MLI words in the I/O Descriptor and it can range in value from 0 to 23.

d: Line Number: Word (2) (A8:8)--This integer specifies the number of the line/line adapter to be used in the operation and it can range in value from 0 to 15. It does not apply to the `Test LSP ID` operation.

e: Option Selector: Word (2) (C8:4)--This enumeration specifies an option selection which depends upon the operation type. It does not apply to all operation types.

f: Extended Operation Type: Word (2) (D8:4)--If the value of `Op Type` is `Extended Op Type`, this enumeration specifies which LSP operation is to be performed. The encoding of this field is listed in the table below.

                  TABLE B-9
    ______________________________________
    Extended Operation Type
                        Code
    ______________________________________
    (Non extended Op Type)
                        0000
    ______________________________________


g: Data Length: Word (3) (A8:16)--This integer specifies either the maximum or the required number of bytes of data transfer for the operation. It does not apply to all operation types.

Operation Summary: The operation types of the LSP are summarized below followed by a table and FIGS. 1E, 1F, which summarize the LSP I/O descriptors.

(1) Initialize S-Machine: An operation of this type is used to initialize any one of the following items in the S-machine for the specified line: (1) Line.S.Class, (2) Line.S.Data, (3) Line.S.Code, or (4) Line.S. Tran.

(2) Update S-Machine: An operation of this type is used to reinitialize either of the following items in the S-machine for the specified line: Line.S.Class or Line.S.Tran.

(3) Monitor Switched-Line: An operation of this type is used to monitor the specified line for either a ring or an end-of-ring indication.

(4) Answer Switched-Line: An operation of this type is used to answer an incoming call on the specified line.

(5) Auto-Dial Switched-Line: An operation of this type is used to automatically originate an outgoing call on the specified line.

(6) Disconnect Switched-Line: An operation of this type is used to break a switched connection on the specified line.

(7) Execute Input Process: An operation of this type is used to cause the LSP to interpretively execute the S-machine input process on the specified line.

(8) Execute Output Process: An operation of this type is used to cause the LSP to interpretively execute the S-machine output process on the specified line.

(9) Discontinue: An operation of this type is used either to (1) force termination of a `Monitor Switched-Line` operation, (2) conditionally force termination of all `Execute Input Process` operations, or (3) conditionally force termination of all `Execute Output Process` operations on the specified line.

(10) Soft-Clear Line: An operation of this type is used to unconditionally clear the specified line.

(11) Test LSP ID: An operation of this type is used to determine the type and configuration ID of the LSP.

(12) Test Line: An operation of this type is used to determine the physical and logical state of the specified line.

(13) Dump Data-Area: An operation of this type is used to obtain a dump of Line.S.Data for the specified line.

The following Table B-10 summarizes the I/O Commands used by the Host to direct the operations of the Line Support Processor.

                                      TABLE B-10
    __________________________________________________________________________
    I/O Descriptor:
                Word 1  Word 2  Word 3  4 - N
    Operation Type
                A B C D A B C D A B C D A B C D
    __________________________________________________________________________
    (1)
       Initialize S-Mach
                4 1 0 3 d d e 0 g g g g h h h h
    (2)
       Update S-Machine
                4 2 0 3 d d e 0 g g g g h h h h
    (3)
       Monitor  2 3 0 1 d d e 0 --
                                  --
                                    --
                                      --
                                        --
                                          --
                                            --
                                              --
    (4)
       Answer   2 4 0 1 d d 0 0 --
                                  --
                                    --
                                      --
                                        --
                                          --
                                            --
                                              --
    (5)
       Auto-Dial
                4 6 0 2 d d 0 0 g g g g --
                                          --
                                            --
                                              --
    (6)
       Disconnect
                2 7 0 1 d d 0 0 --
                                  --
                                    --
                                      --
                                        --
                                          --
                                            --
                                              --
    (7)
       Execute Input
                a 8 c c d d 0 0 g g g g h h h h
    (8)
       Execute Output
                a 9 c c d d 0 0 g g g g h h h h
    (9)
       Discontinue
                2 A 0 1 d d e 0 --
                                  --
                                    --
                                      --
                                        --
                                          --
                                            --
                                              --
    (10)
       Soft-Clear Line
                2 B 0 1 d d e 0 --
                                  --
                                    --
                                      --
                                        --
                                          --
                                            --
                                              --
    (11)
       Test LSP ID
                2 C 0 0 --
                          --
                            --
                              --
                                --
                                  --
                                    --
                                      --
                                        --
                                          --
                                            --
                                              --
    (12)
       Test Line
                2 D 0 1 d d 0 0 --
                                  --
                                    --
                                      --
                                        --
                                          --
                                            --
                                              --
    (13)
       Dump Data-Area
                8 E 0 2 d d 0 0 g g g g --
                                          --
                                            --
                                              --
    __________________________________________________________________________
     N = The last I/Odescriptor word (48 maximum).
      0 = 9, A-F = The corresponding hexadecimal digit.
     -- = The word does not apply to the operation type.
     a = Execute Input (8 or 2); Execute Output (4 or 2).
     c = The total number of I/Odescriptor words minus one.
     d = The line number.
     e = An operationtype dependent option selector.
     g = The number of bytes of data.
     h = Depends on the operation type.


Individual Operation Types:

The operations of Table B-10 can be summarized as follows:

(1) Initialize S-Machine: An "Initialize S-Machine" operation is used to initialize any one of the following items in the S-Machine for the specified line: (i) Line.Class, (ii) Line.S.Data, (iii) Line.S.Code, (iv) Line.S.Tran. It will be accepted only when Line.State.Sequence is "uninitialized".

The MLI data representation on Line.S.Class is defined under the subject of S-Machine Data Structures. If Class.Code is either "asynchronous" or "synchronous", then the "Data Length" must be 20 bytes; otherwise, it must be 22 bytes.

(2) Update S-Machine: An "Update S-Machine" operation is used to reinitialize certain items in the S-Machine for the specified line; these are: Line.S.Class or Line.S.Tran. It will be accepted only when Line.State.Sequence is "enabled".

(3) Monitor Switched-Line: A "Monitor Switched-Line" operation is used to monitor the specified line for either a ring or an end-of-ring indication. It will be accepted only when Line.State.Sequence is "enabled" and Line.Switched-State is either "Disconnected" or "Ringing". ("Answer Switched-Line" operation is used to answer an incoming call on the specified line. It will be accepted only when Line.State.Sequence is "enabled" and Line.Switched-State is "Ringing".

(5) Auto-Dial Switched-Line: An "Auto-Dial Switched-Line operation is used to automatically originate an outgoing call on the specified line. It will be accepted only when Line.State.Sequence is "Enabled" and Line.Switched-State is "Disconnected".

(6) Disconnect Switched-Line: A "Disconnect Switched-Line" operation is used to break a switched connection on the specified line. It will be accepted only when the Line.State.Sequence is "Enabled" and Line.Switched-State is "Connected".

(7) Execute Input Process: An "Execute Input Process" operation is used to cause the Line Support Processor (LSP) to interpretively execute the S-Machine input process on the specified line. It will be accepted only when Line.State is (i) "Not Executing", "Enabled"; (ii) "Not Executing", "Enabled and Executing"; (iii) "Executing".

An execution of the input process consists of a dynamic path through the static lists of S-operators which comprise the code of the input processor.

(8) Execute Output Process: An "Execute Output Process" operation is used to call the Line Support Processor to interpretively execute the S-machine output process on the specified line. It will be accepted only when Line.State is one of the following: (i) "Not Executing", "Enabled"; (ii) "Not Executing", "Enabled and Executing"; (iii) "Executing".

An execution of the output process consists of a dynamic path through the static list of S-operators which comprise the code of the output processor.

(9) Discontinue: A "Discontinue" operation is used to either (i) force termination of a "Monitor Switched-Line" operation; (ii) conditionally force termination of all "Execute Input Process" operations; or (iii) conditionally force the termination of all "Execute Output Process" operations on the specified line. It will be accepted only when one of the listed operations is in progress on the line.

Upon receipt of an I/O descriptor for an operation of this type, the Line Support Processor (LSP) will not make a transition to the "Idle" MLI State until and before it has returned a Result Descriptor for the operation.

(10) Soft-Clear Line: A "Soft-Clear Line" operation is used to unconditionally clear the specified line. It will be accepted any time. Upon receipt of an I/O Descriptor for an operation of this type, the Line Support Processor will not make a transition to the "Idle" MLI state until and before it has returned a Result Descriptor for the operation.

(11) test LSP ID: A "Test LSP ID" operation is used to determine the type and configuration identity (ID of the Line Support Processor (LSP)). It is common to all LCPs and will be accepted any time. Again, upon receipt of an I/O descriptor for an operation of this type, the LSP will not make a transition into the "Idle" MLI state until and before it has returned a Result Descriptor for the operation.

(12) Test Line: A "Test Line" operation is used to determine the physical and logical state of the specified line. It will be accepted at any time. Upon receipt of an I/O descriptor for this type of operation, the LSP will not make a transition to "Idle" MLI state until it has returned a Result Descriptor for the operation.

(13) Dump Data-Area: A "Dump Data-Area" operation is used to obtain a dump of Line.S.Data for the specified line. It will be accepted only when Line.State.Sequence is either "Uninitialized" or else "Enabled".

(14) Spontaneous Line Events: The Line Support Processor responds to the following events regardless of the operations which are in progress on the line: (i) Ring Indication--if Line.Switched-State is "Disconnected" and the DCE raises Line.DCE.RI, the LSP will set Line.Switched-State to "Ringing"; (ii) End-of-Ring Indication--if Line.Switched-State is "Ringing" and the DCE does not raise Line.DCE.RI within 10 seconds of the last time it raised Line.DCE.RI, then the LSP will set Line.Switched-State to "Disconnected"; (iii) Disconnect Indication--if Line.Switched-State is "Connected" and either (a) Line.ID.DCE-Disconnect-Detect is TRUE and the DCE drops Line.DCE.DSR, or (b) Line.S.Class.Loss-of-DCD-Disconnect is TRUE and the DCE drops Line.DCE.DCD, the LSP will set the Line.Switched-State to "Disconnected".

RECEIVER/TRANSMITTER OPERATIONS--FIGS. 1E, 1F, IG:

Receiver Operation: The Receiver accepts a serial bit stream from the DCE (Data Circuit Termination Equipment) via the signal "Line.DCE.RD", and converts it into a sequence of characters. The rate at which the bits are expected is determined by (1) S.Class.Clock-Divisor in the asynchronous mode; (2) either S.Class.Clock-Divisor or the DCE in bit-synchronous mode; and (3) by the DCE in the synchronous mode.

The Receiver is enabled when S.RC.Enabled is set to TRUE. Each accumulated character is placed in S.RC.Holding and S.RC.Byte-Present is set to TRUE. If S.RC.Byte-Present is not set to FALSE before another character is accumulated, the new character is placed in S.RC.Holding and S.RC.Error.Overrun is set to TRUE.

The number of bits assembled per character is determined by S.RC.Char-Size (with the exception of some fields in the bit-synchronous mode). The assembled character is right-justified with zero fill. Asynchronous Mode-Receiver: Assembly of a character is initiated on recognition of the first "start bit" following a preceding "stop bit". The character is assembled least-significant bit first. All start, stop and parity bits are deleted from the assembled character. If the final bit of a character is not followed by a "stop bit", then S.RC.Error.Stop-Bit is set to TRUE. The absence of a stop bit" in conjunction with a received character of all zeros will cause S.RC.Error.Frame-Abort to be set to TRUE as well. If S.Class.Vertical-Parity specifies "even" or "odd" parity and the assembled character has bad parity, then S.RC.Error.Parity is set to TRUE.

Synchronous Mode-Receiver: When S.RC.Enabled is set to TRUE, the receiver begins searching for two contiguous characters which match S.Class.SYN. Their recognition establishes line synchronization. The receiver will then begin assembling characters from the line, least significant bit first. If S.RC.Transparent is FALSE, and S.Class.Vertical-Parity is "even" or is "odd", each character is assumed to include a parity bit. If a character has bad parity, then S.RC.Error.Parity is set to TRUE. The parity bit is deleted from the assembled character.

Bit-Synchronous Mode-Receiver: When S.RC.Enabled is set to TRUE, the Receiver begins searching for a flag pattern (01111110). When one is detected and the next eight-bits are another flag or are an abort pattern (11111111), the search is reinitiated. Otherwise the "beginning of a frame" is detected.

The Receiver continues to assemble eight-bit characters until the address and control fields of the frame have been received. Subsequent received bits are assembled based upon S.RC.Char-Size until either a flag or an abort is detected. If S.Class.Address-Mode is "Basic", the address field consists of one character; otherwise, the address field is terminated by the first assembled character in which the low-order bit is "1". If S.Class.Control-Mode is "Basic", the control field consists of one character; otherwise, it consists of two characters. If S.Class.Function is "secondary", the Receiver compares the first-received address character with both the global address (11111111) and the S.Class.Secondary-Address. If a match occurs, the Receiver accepts the frame; otherwise, the Receiver skips the frame and begins searching for the next frame.

If the frame is terminated by a flag, S.RC.End-Frame is set to TRUE.

S.RC.Residue is set to indicate the number of residue bits in the I-field, and the FCS is checked and discarded. If the final computed FCS is not correct, S.RC.Error.BCS-Error is set to TRUE. If the frame is terminated by an abort, then S.RC.Error.Frame-Abort is set to TRUE. Within a frame a zero bit following five consecutive 1's will be discarded.

Transmitter Operation: The Transmitter accepts a sequence of commands and characters. This sequence results in a serial bit stream that is transmitted to the DCE via the Line.DCE.TD signal. The rate at which the bits are transmitted is determined by (1) S.Class.Clock-Divisor in the asynchronous mode; (2) either S.Class.Clock-Divisor or the DCE in the bit-synchronous mode; and (3) by the DCE in the synchronous mode.

The Transmitter is enabled when S.TC.Enabled is set to TRUE. The function to be performed is specified by the S.TC.Command. When S.TC.Command is "transmit Char" and the Transmitter is ready to accept a new character, then S.TC.Byte-Request is set to TRUE. Within one character time the next character must be loaded into S.TC.Char and S.TC.Byte-Request must be set to FALSE; otherwise, an underrun condition will occur. Underrun is an error only in bit-synchronous mode.

The number of bits transmitted per character is determined by S.TC.Char-Size (with the exception of some fields in the bit-synchronous mode). These bits must be right-justified within the character.

Transmitter-Asynchronous Mode: If S.TC.Command is set to "Transmit Char", then each loaded character is converted to the following bit sequence: (i) Start bit; (ii) The bit-serial character (least significant bit first; and (iii) A parity bit (if S.Class.Vertical-Parity is "even" or "odd") and the number of stop bits is specified by S.Class.Stop-Bits.

If the next character has already been loaded upon completion of the current character, the next character is begun immediately; otherwise, the line is held in a "Mark" condition.

If S.TC.Command is set to "Transmit Break", the Transmitter will hold the line in a "Space" condition until either (a) S.TC.Command is set to "Transmit Char" or (b) the signal S.TC. Enabled is set to FALSE. Transmitter-Synchronous Mode: When S.T.C.Enabled is set to TRUE, the Transmitter enters "non-transparent" mode and will transmit continuous S.Class.SYN characters until a character is loaded. At least four S.Class.SYN characters will be transmitted.

Each loaded character is converted into the following bit sequence: (i) the bit-serial character (least significant bit first) followed by (ii) a parity bit, in non-transparent mode, when S.Class.Vertical-Parity is "even" or "odd". If S.TC.Force-DLE is TRUE and S.TC.Transparent is TRUE, the Transmitter will: (a) enter transparent mode if it is currently in non-transparent mode, (b) reset S.TC.Force-DLE, (c) transmit the S.Class.DLE character, and (d) transmit the loaded character.

If an underrun occurs in non-transparent mode, the Transmitter will transmit the S.Class.SYN character. If an underrun occurs in transparent mode, the Transmitter will transmit the S.Class.DLE character followed by the S.Class.SYN character.

Transmitter-Bit-Synchronous Mode: If S.TC.Command is set to "Transmit $ Flags", the Transmitter will transmit continuous flags until either (a) S.TC.Command is set to some other value or (b) the Transmitter is disabled. The Transmitter will set S.TC. Command-ACK to TRUE after the first flag has been transmitted.

If S.TC.Command is set to "Transmit $ Ones" the Transmitter will transmit continuous one bits until either (a) S.TC.Command is set to some other value or (b) the Transmitter is disabled. The Transmitter will set S.TC.Command-ACK to TRUE after the first eight "1" bits have been transmitted.

If S.TC.Command is set to "Transmit $ Char", the "beginning" of a frame is assumed. The Transmitter will transmit loaded characters until either S.TC.Command is set to "Transmit End-Frame" or an underrun occurs. The address and the control fields are transmitted eight-bits per character. I-field characters are transmitted based upon S.TC.Char-Size. If S.TC.Command is set to "Transmit $ End-Frame", the Transmitter will (a) if S.TC.Residue is non-Zero and the frame has an I-field, transmit the specified number of residue bits from the last I-field character loaded, (b) transmit the FCS, (c) transmit one flag, (d) set S.TC.Command-ACK to TRUE and (e) transmit continuous flags until either S.TC.Command is set to some other value or the Transmitter is disabled. If an underrun occurs, the Transmitter will transmit an Abort followed by continuous flags and set S.TC.Error.Underrun to TRUE. Within a frame, a zero bit is inserted after five consecutive "ones".

Diagnostic Operation: When S.TC. Diagnose is set to TRUE, the transceiver (FIG. 1C) enters into an internal diagnostic mode in order to check out the operations of the transceiver.

A line adapter selection means is designed to be used as part of a line support processor (also often called a frame recognition-data link processor) and as part of a data comm I/O subsystem.

FIGS. 1 and 2 show such a data comm I/O subsystem wherein a state machine processor card 600 works in coordination with various types of line adapters. A single line adapter card 700 may be used as well as Quad line adapters such as that shown in cards 400 and 500. These Quad line adapters constitute units of four addressable line adapters, and each line adapter can handle a single data communications line terminal through an electrical interface.

FIG. 9 shows a block diagram of a "Single" byte oriented line adapter system. A remote data set or data terminal may be connected to input/output circuit means which includes timer 507 and USART 508. This input output circuit connects to a transceiver bus-controller 503 which can route the data to a multiplexor 504 for conveyance along I/O bus 10 to the start machine processor 600 or into a RAM buffer 550.sub.m. Data in the state machine processor can be routed from the state machine's output control register (38, FIG. 6) along bus 17.sub.2 into the transceiver bus controller 503 for transmission to the input-output circuit means. The multiplexor 504 receives control signals from the data link interface unit 700 of FIG. 1 in addition to other control signals which identify units within the line adapter system. Also provided is an automatic calling unit output register 505 which can receive signals useful for dialing remote terminals on telephone lines.

FIG. 5 is a block diagram of a "Quad" Line Adapter used for byte oriented protocol operations. The input output circuit means which connect to remote terminals is composed of four basic units such as 507, 508 (timer 0 and USART 0). Likeise, input output service to a remote terminal is provided by timer 509 and USART 1 designated 510. Likewise, units 511, 512 constitute an operating unit for another remote terminal as do units 513 and 514 for yet another remote terminal.

As discussed under FIG. 9, the Line Adapter uses a transceiver bus controller 503 and a set of multiplexors 504. It should be noted that the multiplexors such as 504 and 506 are in essence dual operating multiplexor sets in that they receive control signals from two different input-output units.

Corresponding to the Automatic Calling Unit Output Register of FIG. 9, the Quad Line Adapter of FIG. 5 uses four such ACU output registers. Also in the Quad Line Adapter there is provided an extra set of RAM buffer memories designated as 550.sub.m1 and 550.sub.m2.

FIG. 6 is a block diagram of the State Machine Microprocessor which is used to control the single line adapter or multiple configurations of line adapters. The State Machine Processor (sometimes designated as UIO State Machine) resides on a circuit board of chips which can be inserted as a slide-in card into the base module (FIG. 2) where it connects to the backplane. The State Machine connects to the application dependent logic through the frontplane connectors as seen in FIG. 2.

A detailed description of the elements and use of the UIO State Machine has been the subject of several prior patents which are included herein by reference. These patents are:

U.S. Pat. No. 4,293,909 entitled "Digital System For Data Transfer Using Universal Input-Output Microprocessor", inventors Robert D. Catiller and Brian K. Forbes.

U.S. Pat. No. 4,291,372 entitled "Microprocessor System with Specialized Instruction Format", inventors Brian K. Forbes and Robert D. Catiller.

U.S. Pat. No. 4,292,667 entitled "Microprocessor System Facilitating Repetition of Instructions", inventors Robert D. Catiller and Brian K. Forbes.

The use of a host computer working in conjunction with an I/O subsystem which uses peculiar commands called I/O descriptors, data link descriptors, and result descriptors is shown in U.S. Pat. No. 4,189,769, Feb. 19, 1980, to Darwen J. Cook and Donal A. Millers, II, and entitled "Input-Output Subsystem for Digital Data Processing System" and this patent is also included herein by reference.

FIG. 10 is a diagram of certain logic on the DLI/LA card 700 which is used to select or "Designate" the RAM buffer memory of the single Line Adapter card or a selected memory of a specific one of the four line adapter memories on the Quad line adapter card. Shown as RAM storage means 550.sub.m in FIG. 10 is the particular memory used for the single Line Adapter. However, in the "multiple" Line Adapter situation, each Line Adapter has a similar selection system for selecting the particular memory associated with that Line Adapter.

In FIG. 10, address lines from the State Machine Processor 600 (MADDRnn) connect to a comparator 100.sub.c and also to the RAM buffer 550.sub.m. A chip select signal CS/ is activated to the buffer memory 550.sub.m by means of logic signals from the Comparator 100.sub.c and the Designate Flip-Flop (DESF). A unique jumper bit provides input to the Designate Flip-flop from the I/O bus 10 in order to particularly identify any given selected buffer memory in the system. The particular bit line of the I/O bus 10, which is to be chosen, is set by the State Machine Microprocessor 600, FIG. 6.

"BYTE ORIENTED" LINE ADAPTER

A functional section of the Line Support Processor (also called the Frame Recognition-Data Link Processor and/or Line Support Processor-DLP) is the Line Adapter called the "Byte Oriented Line Adapter". This is sometimes also called a "Character Oriented" Line Adapter.

The data comm Line Adapter is basically a device which interfaces on one end to a data communication line (FIG. 2) "electrical interface", and on the other end interfaces to a processor which has been designated as the UIO State Machine 600 (UIOSM). The primary function of the Line Adapter is to serialize "bit" information to/from "byte" information, to provide timing, to generate service requests, to supply a RAM memory, to provide automatic calling interfacing and to provide connection to level changers which will match the data communication lines. The Byte-Oriented Line Adapter is also built in two basic configurations designated as (i) Quad Line Adapter and (ii) the Single Line Adapter. The single Line Adapter is part of the Line Support Processor and the Single Line Adapter shares the same board with the Data Link Interface (DLI) circuitry 700. The Line Adapter is required regardless of the quantity of lines controlled by the Line Support Processor. The Quad Line Adapter contains essentially four (4) Line Adapters on one board. These boards are typical 10 inch by 13 inch boards which plug into the backplane of the Base Connection Module, FIG. 2.

As seen in FIG. 2 each of the Line Adapter cards 400, 500 connect both to the State Machine Processor 600 and to the DLI/LA 700 (Data Link Interface-Single Line Adapter).

As seen in FIGS. 5 and 9, connection to the data communications line is through an electrical interface (EI) which connects to the Line Adapter. There are various types of electrical interface boards which exist and which may be mounted in different combinations on the Quad Line Adapters. Thus, depending on the electrical characteristics of the data comm line, the only change required is that of the electrical interface, while the Line Adapter remains as is.

From one to eight Line Adapters may variously be addressed by the State Machine Processor 600; thus, each Line Adapter is jumpered uniquely in order to identify its address. The Line Adapter must be "designated" for the State Machine Processor to communicate with it. Several addressable components are contained on a Line Adapter which the State Machine Processor may communicate with, in the form of Write/Read data or "Status" or "Control" signals.

The addressable components of the Byte Oriented Line Adapter are:

(i) USART (508, 510, 512, 514, FIG. 5)

(ii) Timer (507, 509, 511, 513, FIG. 5)

(iii) Auto Call Output Registers (ACUOR.sub.0,1,2,3, FIG. 5)

(iv) Auto Call Status for each ACU

(v) Component Requestors (units in USART's and/or in Timers)

(vi) Memory (RAM) in each card unit.

The USART (Universal Synchronous/Asynchronous Receiver/Transmitter) accepts data "bytes" from the State Machine Processor 600 and converts them into serial "bits" for transmission; it also receives serial bit data and converts this to parallel data bytes. The USART device is initialized by "writing" into its two internal control registers which specify the manner in which it operates. The USART internal control registers are discussed hereinafter.

A typical USART preferred for this purpose is manufactured by Western Digital Corporation, 3128 Redhill Avenue, Newport Beach, Calif. 92663, and is designated as UC1671 and described in a Technical Manual dated August 1978 as UC1671 Asynchronous/Synchronous Receiver/Transmitter.

Various bits of the internal control registers of this USART unit specify such things as: synchronous/asynchronous mode; bits per character; parity; transparent mode; Echo mode. The Timer used on the Byte Oriented Line Adapter serves two basic functions: (i) as program timers and (ii) as baud rate generators for asynchronous operation. Three independent internal timers are contained in each chip, two of which are used by the software for timing purposes relative to the line operations for "transmit" and for "receive" operation. The third timer is used to generate a square wave clock which is used by the USART for asynchronous operation. Each timer is initialized independently, which indicates the "mode" in which it is to operate. The two program timers are capable of activating a Flag signal to the State Machine Processor 600 when a pre-determined timing value has been reached.

The Auto Call Output Register (ACUOR 505) is a register which is loaded by the State Machine Processor with "dial digit" and control information. The output of this register drives level-changer chips which convert the logic signals to EIA RS-232 voltages. These signals drive an automatic calling unit (ACU) such as a Bell 801, which provides dial-out capabilities.

Auto Call Status (ACUST 0,1,2,3 of FIG. 5) is a means of providing the condition or state of input lines from the automatic calling unit (ACU) to the State Machine Processor 600. Lines from the ACU are received by level-changer chips which convert the EIA voltages to TTL logic levels. These logic levels may be read by the State Machine Processor to determine the present status.

The Component Requestors from a Line Adapter are as follows: (i) USART; (ii) Program Timer 1; (iii) Program Timer 2.

These three components are capable of generating "service requests" independently of each other at unique times relative to its initialization. The "service requests" activate a flag signal to the State Machine Processor which indicates that Line Adapters require servicing. After the State Machine determines which Line Adapters are requesting service, it must then determine which "component" on a particular Line Adapter is requesting service.

Memory on the Line Adapter consists of 2,048.times.17-bit words of RAM for each line. Therefore, each Quad Line Adapter card actually contains 8,192.times.17-bit words of RAM. The Single Line Adapter card (FIGS. 9, 10) contains 4,096 words of RAM 550.sub.m, one half for the data comm line and the remainder for DLI 700, FIG. 2. The RAM is used by the software for transmit/receive message buffering, for tables and for statements associated with the line operation.

BYTE ORIENTED LINE ADAPTER--OPERATION

Designate: When the State Machine Processor 600 executes code relative to an addressable component on a Line Adapter (LA), the LA must be "designated". Each Line Adapter contains a Flip-flop, whose input is jumpered to a specific bit of the I/O bus, FIG. 10. In order to "designate" a Line Adapter, the State Machine Processor must execute a PUT OP with Strobe No. 1 and the corresponding bit of the I/O bus must be equal to 1. Executing the same OP with the I/O bus bit equal to 0 will reset the Designate Flip-Flop shown typically as "DESF" on FIG. 5.

Flag Operation: The various components of a Line Adapter are capable of producing "service requests". These "service requests" are basically ORed together in order to drive a common FLAG line for all Line Adapters. A signal line, FLAG 2/, when being low active, notifies the State Machine Processor that some Line Adapters are requesting service. The State Machine Processor can determine which Line Adapters are requesting service by executing a GET OP with the variant field V-FLD (4:5) equal to 00001. The Line Adapter does not need to be "designated" for execution of this OP.

"Register address" (REGADRn) signals in the Line Adapters are the five V-FLD signals from the State Machine Processor.

Flag operation, with reference to FIG. 11, is accomplished by the FLAG 2/ line which when low active notifies the State Machine Processor that a Line Adapter is requesting service. For example in FIG. 11, if Line Adapter 0 requests service, then NOR Gate G.sub.0 is activated to provide a signal (low) on the FLAG 2/ line.

Upon receiving this signal the State Machine Processor will initiate a GET OP on the GET FLAG ID line. This will send the output signal of Gate G.sub.0 to a particular line of I/O bus (which is dedicated to a particular one of the Line Adapters) which, when read by the State Machine 600 will identify the particular Line Adapter involved, in this case, the Line Adapter 0.

Similarly each Line Adapter as 1, 2, 3, etc. will have a Gate G.sub.1, G.sub.2 or G.sub.3 to activate the FLAG 2/ line and cause the State Machine to "read" the particular "jumper" connection to the line on the I/O bus associated with that Line Adapter.

Data Bus Structures: With the exception of the RAM (FIG. 10), memory 550.sub.m1, m2, all data sent to addressable components on the Line Adapter originate from the Second Output Control Register 38 (FIG. 6) in the State Machine Processor. With the exception of RAM, all data "read" by the State Machine Processor from addressable components on the Line Adapter will go to the State Machine Processor via the I/O bus 10.

With reference to FIG. 9 (DLI/LA data bus structure), the Single Line Adapter data bus structure is shown.

As seen in FIG. 9, the Second Output Control Register 38 (FIG. 6) lines 17.sub.2 (OCREG 20n) connect directly to the inputs of the Auto Call Unit Output Register 505 (ACUOR); and they also connect directly to the Transceiver Bus Controller chip 503 which provides bidirectional bus drivers.

The Auto Call Unit Output Register 505 (FIG. 9) is a six bit "D" type flip-flop register (DR6n). When the clock input is enabled, data from the Second Output Register 38 (FIG. 6) will be strobed into ACUOR 505.

Data sent to both the Timer 507 and to the USART 508, FIG. 9, originate from the Second Output Register 38 in the State Machine Processor (FIG. 6) and is sent through the Transceiver bus controller 503; then is sent to the addressed component. The data lines for the Timer component are HI active and for the USART component they are LO active. Being as both components share the same data bus, data to one of the components must be inverted. The Timer 507 is used to receive the "inverted" data, that is, 1=0 and 0=1, while the USART 508 receives the conventional format. Thus, a "one" bit from the Second Output Register 38 in the State Machine Processor (FIG. 6) will appear as a "one" bit to the USART (active low) and as a "zero" bit to the Timer. The Transceiver bus controller 502, although being a three-state device, is not used in its third or high impedance state. It is used for driving either DIN (data in) to DOUT (data out) or DOUT to ROUT depending on the state of the RE signal which originates from bit 4 of the First Output Control Register 37 in the State Machine Processor 600, FIG. 6. When bit 4 of Register 37 is ON, the signal RE is positive and "enables" the DIN to DOUT direction through the Transceiver bus controller 503.

Reading of information (except RAM read) from a Line Adapter is performed by decoded GET OPs, and the read information is available on the least significant 8 bits of the I/O bus 10. The 8-1 multiplexor 504 is the source of the read information.

On the "Single" Line Adapter (FIG. 9) four of the eight inputs to MUX 504 are used by the Line Adapter and the remainder are used by the Data Link Interface (DLI). The multiplexors (MUX's) are chip selected (low level) during a GET OP when the V-FLD (3:2) is equal to "11" and either V-FLD (4:1) equal 0 (DLI GET) or the Designate Flip-Flop (DESF) is ON (LA GET).

On the "Quad" Line Adapter cards (FIG. 5) there are 16 multiplexors, each having an eight-one ratio. There are 8 multiplexors for each "pair" of Line Adapters.

As seen in FIG. 9, the eight input lines to MUX 504 are divided in half such that four lines connect to the DLI (Data Link Interface), and four lines connect to the Line Adapter. Similar in FIG. 5, in the Quad Line Adapter, the eight input lines of each group of eight multiplexors is divided in half, similar to the Single Line Adapter, thereby making four groups. Any group of four input lines is selected by its "Designate Flip-flop" (DESF, FIG. 10) being ON. The selection of any one of four lines of any such group is performed by the two least significant bits of the V-FLD of a GET OP.

Data to be "written into" RAM memory in a Line Adapter (FIGS. 5, 10) is sent via the I/O bus in 16 bits plus parity format. The data "read from" RAM memory in a Line Adapter is placed on the MEMOUT bus 12 with 16 bits plus parity.

Component Addressing: As seen in FIG. 9, the outputs of components to be "read" are routed to the inputs of the 8-1 multiplexor 504 which then drive the I/O bus 10. There are five components on a Line Adapter which may be "read" by the State Machine Processor, these are:

Component Requestor ID (CRID)

USART (508)

Timer (507)

Automatic Calling Unit Status (ACUST)

Adapter Type ID (ADPT.ID)

Although these five components on a Line Adapter may be read, the USART 508 and the Timer 507 share the same input line (ROUT) to the multiplexors. Selection of one of the four inputs in either group (of inputs to the 8-1 multiplexors) is performed by the two least significant bits of the V-FLD of the GET OP. V-FLD (3:4) equal 11XX and selection of one of the four inputs is determined as shown in Table Y-1.

                  TABLE Y-1
    ______________________________________
    V1(x)    V0(x)        Component Addressed
    ______________________________________
    0        0            Component Requestor ID
    0        1            USART/Timer
    1        0            ACU Status
    1        1            Adapter Type - ID
                          (Identification)
    ______________________________________


In FIG. 9 the Single Line Adapter multiplexor 504 allows three components on a Line Adapter to be written into (not including RAM). These are: Automatic Calling Unit Output Register 505 (ACUOR), the USART 508 and the Timer 507. The addressing of these three components occurs in two distinct fashions: decode of the V-FLD of PUT OPs and the decode of bits from the First Output Control Register 37 in the State Machine Processor (FIG. 6).

Referring to FIG. 9 and the multiplexor 504, there will be seen a series of input bus connections at inputs marked 0, 1, 2, 3, 4, 5, 6, 7. The use of these input busses will be discussed hereinbelow and it should be understood that multiplexor 504 is a representation of a total of eight separate multiplexors, each of which provides its output to the I/O bus 10.

(a) the input 7 of 504, FIG. 9, involves 8 lines which connect to 8 jumpers (of which only 1 representative jumper is shown). When a jumper is inserted, it grounds the normally positive voltage to change the level from a "true" to a "false" signal. Thus, this signal is used as an "Adapter ID" signal which will identify the adapter as: (i) bit oriented; (ii) byte oriented; (iii) connected to a private line or to a switched line; (iv) connected to an ACU (Automatic Calling Unit).

(b) the input pin 6 designated ACUST refers to "ACU Status". It informs the MUX 504 of various states such as: PND (present next digit); Power on-off indication; ACR (abandon call and retry); DSS (data set status).

(c) the input pin 5 presents a data or a control signal (i) from the timer or the USART of a byte-oriented line adapter or (ii) from the timer and the synchronous controller of a bit-oriented line adapter.

(d) the input pin 4 is designated CRID (component requestor identification). The signal input here is involved when a component requests attention (Interrupt) from the State Machine Processor 600 and the signal identifies the requesting component as (i) transmitter time or (ii) receiver timer or (iii) USART unit (byte-oriented); (iv) synchronous controller (bit-oriented).

(e) the input pin 3 comes from the DLI card 700 (FIGS. 7, 8) and it signals the status of the data-link processor (peripheral controller) to the State Machine Processor 600.

(f) the input 2 receives signals from the DLI Counter 100.sub.ct (FIG. 7) for transmittal to Processor 600.

(g) the input 1 represents signals from 8 ID jumpers which are used to identify the Data Link Processor (peripheral-controller) as distinct from other DLP's.

(h) the input 0 is not used.

The ACUOR 505 is addressed when a one-of-eight decoder chip decodes the PUT OP V-FLD (4:5) equal 01111 and the Strobe No. 2 is sent from the State Machine Processor. This decoding is performed only on the Single Line Adapter card and is sent to other Line Adapter cards via the frontplane connector. This decoded signal is received by a three input NOR gate (not shown) in each Line Adapter (whose other inputs are Clock and Designate FF). The output of this gate drives the clock input of the six bit ACU output register.

Data from the Second Output Control Register 38 (FIG. 6) will then be strobed into the ACUOR 505 (FIG. 9).

Chip Selecting: Addressing a USART or Timer on a designated Line Adapter is the same as "chip selecting" the component. This is accomplished with bits 0 and 1 of the First Output Control Register 37 in the State Machine Processor along with the Designate Flip-Flop in a Line Adapter.

Each Line Adapter will "AND" its Designate FF with bits 0 and 1 in order to provide a UCS (USART Chip Select) or a TCS (Timer Chip Select) for its USART or Timer.

The use of bits 0 and 1 in the First Output Control Register 37 is as follows:

                  TABLE Y-2
    ______________________________________
    Register Bit and
    Value       Signal Designation
    ______________________________________
    Bit 0 = 1   USARTCS = Chip Select-UCS
    Bit 1 = 1   TMRCS = Timer Chip Select-TCS
    ______________________________________


The remaining bits of Register 37 are used for control signals, primarily for the USART and Timer.

Random Access Memory (550.sub.m, FIG. 5): Each data comm line has 2,048 words of RAM available for its use. A word is equal to 16 data bits plus one parity bit. In FIG. 5 the RAM chip 550.sub.m is a 4,096.times.1 bit static RAM with a Read Access time of 180 nanoseconds and is arranged with 17 chips making 4,096 words. On the DLI/LA card, 2,048 words are for the "Single" Line Adapter and 2,048 words are for the Data Link Interface. The "Quad" Line Adapter card (FIG. 5) provides 34 memory chips or 8,192 words of which 2,048 words are available for each line.

The data comm Line Adapter memory (for any line) is "pointed at" by the memory address lines, MADDR (15:5) equal 01110. This can be seen in FIG. 10 which shows the Data Link Interface/Line Adapter RAM. A five bit Comparator 100.sub.c on the DLI/LA card compares (for an "equal" condition) for (i) DLI memory selection; or for a "greater than" condition (MADDRnn 01110) provides for (ii) Line Adapter RAM selection. The signal "LARAMSEL" (Line Adapter RAM Select) will go to all Line Adapter cards via the frontplane cable to select the "designated" Line Adapter RAM memory. If memory address lines MADDR (15:5) equals 0001x (DLI or LA Select) then a slow memory flip-flop (SLMF) 100.sub.sf will be set equal to 1. The Flip-Flop 100.sub.sf output drives an open collector NAND gate whose output connects to the WAIT/ frontplane signal line to the State Machine Processor. This signal (WAIT/), when low, will force the State Machine Processor to "wait" until the signal goes "high". Using a RAM chip whose Read Access time is 180 nanoseconds requires the State Machine Processor to wait for one clock time, thereby when the DLI memory (550.sub.m, FIG. 10) or any Line Adapter memory is selected, the SLMF (slow memory flip-flop) will be "on" for one clock and then toggle off.

Selection of the RAM memory 550.sub.m on the DLI/LA card is done via MADDR (15:5) equal to 01110 or else if MADDR (15:5) equal 01111 and the Designate Flip-Flop being ON, then a particular RAM is selected. This logic co