Tandem NonStop (TM) Systems 6100 MPS-B Programming Manual ABSTRACT: This manual describes the 6100 Multipoint Supervisor-Burroughs (MPS-B) protocol that allows an application process to act as the supervisor station in a centralized multipoint network composed of Burroughs terminals using Burroughs Basic Poll/Select protocol, Lear-Siegler ADM-2 Data Display terminals with polling option, and NCR terminals using NCR Multipoint protocol.
DOCUMENT HISTORY Edition Part Number Operating System Version Date_________ 1st Edition 2nd Edition 82413 A00 119400 C20 GUARDIAN B00 Guardian C20 March 1985 June 1995 New editions incorporate all updates issued since the previous edition. Update packages, which are issued between editions, contain additional and replacement pages that you should merge into the most recent edition of the manual. Copyright c 1985 by Tandem Computers Incorporated. Printed in U.S.A. All rights reserved.
IBM is a registered trademark of International Business Machines Corporation.
CONTENTS PREFACE ..................................................... vii SYNTAX CONVENTIONS IN THIS MANUAL ........................... ix SECTION 1. INTRODUCTION TO 6100 MPS-B ...................... 1-1 Features of the 6100 MPS-B Product ........................ 1-2 6100 MPS-B Concepts and Context ........................... 1-5 Station Types ........................................... 1-6 Selection ............................................. 1-6 Polling ..............................................
CONTENTS READ State ............................................. Transitions to READ State ............................ Transitions from READ State .......................... Requests and Functions Applicable to READ State ...... SELECT-TEXT State ...................................... Transitions to SELECT-TEXT State ..................... Transitions from SELECT-TEXT State ................... Requests and Functions Applicable to SELECT-TEXT State ..............................................
CONTENTS Examples ............................................... READ Example 1 ....................................... READ Example 2 ....................................... READ Example 3 ....................................... WRITE Example 1 ...................................... WRITE Example 2 ...................................... WRITE Example 3 ...................................... Send EOT Example ..................................... 3-53 3-53 3-55 3-56 3-57 3-58 3-60 3-62 APPENDIX A.
CONTENTS FIGURES 1-1. 1-2. 6100 MPS-B Communication Flow ......................... 1-5 Basic Message Form .................................... 1-8 2-1. 2-2. 2-3. 2-4. 2-5. 2-6. Major 6100 Completion Completion Completion Completion Completion 3-1. WRITEREAD Buffer Format ............................... 3-9 MPS-B States and Transitions ............... 2-2 Status to Leave DISCONNECT State ........... 2-4 Status to Leave CONTROL State .............. 2-8 Status to Leave POLL State ................
PREFACE This manual describes the Multipoint Supervisor-Burroughs (MPS-B) protocol available for use with the CP6100 I/O process. The organization and content of the book are as follows: • Section 1 introduces the 6100 MPS-B protocol module. It briefly reviews the characteristics and features of the module. Information about station types, message formats, error handling, and line configuration is included in this section.
SYNTAX CONVENTIONS IN THIS MANUAL The following list summarizes the conventions for syntax notation in this manual. Notation Meaning UPPERCASE LETTERS Uppercase letters represent keywords and reserved words; you must enter these items exactly as shown. lowercase letters Lowercase letters represent variables that you must supply. Brackets [] Brackets enclose optional syntax items.
SECTION 1 INTRODUCTION TO 6100 MPS-B The 6100 Multipoint Supervisor-Burroughs (MPS-B) protocol allows an application process, executing in a Tandem system, to act as the supervisor station controlling tributary stations on a multipoint asynchronous or byte synchronous line. 6100 MPS-B provides a protocol that conforms to the ANSI Standard X3.28, "Data Communication and Link Specification" Subcategory 2.
INTRODUCTION TO 6100 MPS-B Features of the 6100 MPS-B Product FEATURES OF THE 6100 MPS-B PRODUCT The 6100 MPS-B protocol module runs in a Line Interface Unit (LIU) on a 6100 communication subsystem. It is downloaded from a disk file to the LIU, either when the system is cold-loaded or by operator request. A single copy of 6100 MPS-B controls one data communication line. Applications use the line by making file system requests.
INTRODUCTION TO 6100 MPS-B Features of the 6100 MPS-B Product Table 1-1. Application Requests to the 6100 MPS-B Protocol Module (Continued on next page) ----------------------------------------------------------------| | | Request Description | | | | SET CONFIGURATION Supplies values for 6100 MPS-B line | | parameters. | | | | FETCH CONFIGURATION Retrieves current 6100 MPS-B line | | parameters. | | | | | | START TRACE Issued by CAP upon occurrence of a | | CMI TRACE command. Activates trace | | function.
INTRODUCTION TO 6100 MPS-B Features of the 6100 MPS-B Product Table 1-1. Application Requests to the 6100 MPS-B Protocol Module (Continued) ----------------------------------------------------------------| | | Request Description | | | | WRITE Transmits a message to a specific | | station or group of stations, | | transmits a message and enables | | station, or declares use of ENVOY | | format for WRITE request.
INTRODUCTION TO 6100 MPS-B 6100 MPS-B Concepts and Context • You can trace text frames and control frames transmitted and received on a line, driver calls and completions, and protocol events in the LIU. • Because the host processor is interrupted whenever there is a request completion, polling may continue indefinitely as long as: (1) there are terminals in the enabled state on the poll list, (2) a "read" request is posted, and (3) the polled terminals return a "no data" response.
INTRODUCTION TO 6100 MPS-B Station Types A file system WRITEREAD procedure with a task request formatted in the buffer is used for communication on the link. The response to the request is returned in the buffer. Your application process is responsible for providing the appropriate request and for correctly interpreting the response to the request.
INTRODUCTION TO 6100 MPS-B Station Types In case of an unsuccessful select operation, an EOT should be issued to terminate the operation. The application process can issue an explicit EOT, or the next poll/select sequence can begin with an EOT. Fast Select. 6100 MPS-B may select one or more tributary stations by sending a selection sequence not terminated with ENQ. In this case, it could optionally proceed immediately to the message transfer operation without waiting for a response.
INTRODUCTION TO 6100 MPS-B Message Formats Message Formats A message may begin with SOH if it has a heading. Otherwise, it must begin with STX. A message is terminated with ETX followed by a Block Check Character (BCC). The BCC is provided by 6100 MPS-B. NOTE For Burroughs Multipoint protocol, messages always begin with SOH followed by a prefix which identifies a single tributary station. For ADM-2 Multipoint protocol, a message begins with SOH only when it represents a Function Key message.
INTRODUCTION TO 6100 MPS-B Message Formats The parts of the message that must be supplied by, and which are visible to, your application process are: • The station address, which is the Message Control Word (MCW), or if MCW is zero, the sequence header. The sequence header begins with EOT and is terminated with ENQ (see "Request Message Format" in this section). • The SOH (Start of Heading) or STX (Start of Text) character. This character signals the beginning of the text part of the message.
INTRODUCTION TO 6100 MPS-B Message Formats A station having master status (either the polled tributary station or 6100 MPS-B after issuing a select sequence) transmits a message and waits for a reply. The station having slave status, upon detection of ETX followed by BCC, may send one of two replies: 1. If the message is accepted, it sends ACK, or a prefix and ACK. 2. If the message is not accepted, it sends NAK, or a prefix and NAK.
INTRODUCTION TO 6100 MPS-B Message Formats The sequence header may be omitted. In this case, the MCW contains the Poll/Select List entry number and the text begins with either SOH or STX. Basically, the WRITEREAD buffer Text field using Free format appears as follows: Message Control Word |<--- (two bytes) --->| _______________________ | | | | MCW | ... | | |_ |<--------------- sequence header ----------------->| _________________________ _________________________ | | | | | | ... | [EOT] | station | . . .
INTRODUCTION TO 6100 MPS-B Message Formats The elements of the Free format WRITEREAD buffer Text field are defined below: Text field = MCW MCW sequence-header = Message Control Word (2 bytes) Byte 0 Byte 1 sequence-header message = EOT = = 0 0 if sequence-header present, or Station index if not station-id function-code ENQ EOT (1 byte, optional) station-id = Station character address (1 byte) function-code = Function code (1 byte) ENQ (1 byte, optional) message = SOH STX text text ETX ETX o
INTRODUCTION TO 6100 MPS-B Message Formats FREE FORMAT POLL REQUEST (Burroughs or ADM-2 protocol): Poll All Stations: Text Out field = 0 Text field = null Poll Specific Station Using MCW: Text Out field = 2 Text field = |<---- MCW ---->| _______________ | | | | 0 | si | | | | si = station-index from Poll/Select List Poll Specific Station Using sequence-header: Text Out field = 7 Text field = |<---- MCW ---->|<---------- sequence-header ---------->| _______________________________________________________ |
INTRODUCTION TO 6100 MPS-B Message Formats FREE FORMAT POLL REQUEST (NCR protocol): Poll All Stations: Text Out field = 0 Text field = null Poll Specific Station Using MCW: Text Out field = 2 Text field = |<---- MCW ---->| _______________ | | | | 0 | si | | | | si = station-index from Poll/Select List Poll Specific Station Using sequence-header: Text Out field = 5 Text field = |<---- MCW ---->|<-- sequence-header -->| _______________________________________ | | | | | | | 0 | 0 | [EOT] | a1 | [ENQ] | | | |
INTRODUCTION TO 6100 MPS-B Message Formats FREE FORMAT ADM-2 SEND FUNCTION (ADM-2 protocol): This function allows the application process to poll a station for specific data.
INTRODUCTION TO 6100 MPS-B Message Formats FREE FORMAT SELECT REQUEST (Burroughs protocol): Select Specific Station Using MCW: Text Out field = 2 + message length in bytes Text field = |<---- MCW ---->| _________________ | | | | 0 | si | ... | | |_ |<---------------------- message ---------------------->| _________________________________________/ /_____________ | | | | | / / | | ...
INTRODUCTION TO 6100 MPS-B Message Formats FREE FORMAT SELECT REQUEST (ADM-2 protocol): Select Specific Station Using MCW: Text Out field = 2 + message length in bytes Text field = |<---- MCW ---->|<---------- message ---------->| _______________________________/ /_____________ | | | | / / | | | 0 | si | [STX] |<---- text --->| [ETX] | | | | | / / | | / / si = station-index from Poll/Select List Select Specific Station Using sequence-header: Text Out field = 7 + message length in bytes Text field = |<----
INTRODUCTION TO 6100 MPS-B Message Formats FREE FORMAT SELECT REQUEST (NCR protocol): Select Specific Station Using MCW: Text Out field = 2 + message length in bytes Text field = |<---- MCW ---->|<---------- message ---------->| _______________________________/ /_____________ | | | | / / | | | 0 | si | [STX] |<---- text --->| [ETX] | | | | | / / | | / / si = station-index from Poll/Select List Select Specific Station Using sequence-header: Text Out field = 5 + message length in bytes Text field = |<---- MC
INTRODUCTION TO 6100 MPS-B Message Formats FREE FORMAT FAST SELECT REQUEST (Burroughs protocol): Text Out field = 6 + message length in bytes Text field = |<---- MCW ---->|<------ sequence-header ------>| _________________________________________________ | | | | | | | | 0 | 0 | [EOT] | a1 | a1 | s | ... | | | | | | |_ |<---------------------- message ---------------------->| _________________________________________/ /_____________ | | | | | / / | | ...
INTRODUCTION TO 6100 MPS-B Message Formats FREE FORMAT FAST SELECT REQUEST (ADM-2 protocol): Text Out field = 6 + message length in bytes Text field = |<---- MCW ---->|<------ sequence-header ------>| _________________________________________________ | | | | | | | | 0 | 0 | [EOT] | a1 | a1 | s | ... | | | | | | |_ |<---------- message ---------->| _________________/ /_____________ | | / / | | ...
INTRODUCTION TO 6100 MPS-B Message Formats FREE FORMAT SEQUENTIAL SELECT REQUEST (Burroughs protocol): Text Out field = 3 + 3 * station count + message length in bytes Text field = |<---- MCW ---->|<------ sequence-header -------- ... _________________________________________________ | | | | | | | | 0 | 0 | [EOT] | a1 | a1 | r | ... | | | | | | |_ ... -------------------- sequence-header ------------------>| ___________________________ ___________________________ | | | | | | | | ... | a2 | a2 | r | . . .
INTRODUCTION TO 6100 MPS-B Message Formats FREE FORMAT SEQUENTIAL SELECT REQUEST (ADM-2 protocol): Text Out field = 3 + 3 * station count + message length in bytes Text field = |<---- MCW ---->|<------ sequence-header -------- ... _________________________________________________ | | | | | | | | 0 | 0 | [EOT] | a1 | a1 | r | ... | | | | | | |_ ... -------------------- sequence-header ------------------>| ___________________________ ___________________________ | | | | | | | | ... | a2 | a2 | r | . . .
INTRODUCTION TO 6100 MPS-B Message Formats FREE FORMAT BROADCAST SELECT REQUEST (Burroughs protocol): Text Out field = 3 + 3 * station count + message length in bytes Text field = |<---- MCW ---->|<------ sequence-header -------- ... _________________________________________________ | | | | | | | | 0 | 0 | [EOT] | a1 | a1 | t | ... | | | | | | |_ ... -------------------- sequence-header ------------------>| ___________________________ ___________________________ | | | | | | | | ... | a2 | a2 | t | . . .
INTRODUCTION TO 6100 MPS-B Message Formats FREE FORMAT BROADCAST SELECT REQUEST (ADM-2 protocol): Text Out field = 3 + 3 * station count + message length in bytes Text field = |<---- MCW ---->|<------ sequence-header -------- ... _________________________________________________ | | | | | | | | 0 | 0 | [EOT] | a1 | a1 | t | ... | | | | | | |_ ... -------------------- sequence-header ------------------>| ___________________________ ___________________________ | | | | | | | | ... | a2 | a2 | t | . . .
INTRODUCTION TO 6100 MPS-B Message Formats ENVOY Format. The ENVOY format is used for Burroughs and ADM-2 protocols. It allows your application process to use a station index rather than a station character address. The ENVOY format can be used for the ADM-2 SEND function, and for Fast select, Sequential select, and Broadcast select requests. Basically, the WRITEREAD buffer Text field using ENVOY format appears as follows: Message Control Word |<--- (two bytes) --->| _______________________ | | | | MCW | ..
INTRODUCTION TO 6100 MPS-B Message Formats The elements of the ENVOY format WRITEREAD buffer Text field are defined below: Text field = MCW MCW sequence-header = Message Control Word (2 bytes) Byte 0 Byte 1 sequence-header message = EOT = = 0 0 station-id function-code ENQ EOT (1 byte, optional) function-code = Function code (1 byte) station-index = station-index from Poll/Select List (1 byte) 0 = Placeholder (1 byte) ENQ (1 byte, optional--may terminate an ADM-2 SEND function sequence-header)
INTRODUCTION TO 6100 MPS-B Message Formats ENVOY FORMAT ADM-2 SEND FUNCTION (ADM-2 protocol): This function allows the application process to poll a station for specific data.
INTRODUCTION TO 6100 MPS-B Message Formats ENVOY FORMAT FAST SELECT REQUEST (Burroughs protocol): Text Out field = 6 + message length in bytes Text field = |<---- MCW ---->|<------ sequence-header ------>| _________________________________________________ | | | | | | | | 0 | 0 | [EOT] | s | si | 0 | ... | | | | | | |_ |<---------------------- message ---------------------->| _________________________________________/ /_____________ | | | | | / / | | ...
INTRODUCTION TO 6100 MPS-B Message Formats ENVOY FORMAT FAST SELECT REQUEST (ADM-2 protocol): Text Out field = 6 + message length in bytes Text field = |<---- MCW ---->|<------ sequence-header ------>| _________________________________________________ | | | | | | | | 0 | 0 | [EOT] | s | si | 0 | ... | | | | | | |_ |<---------- message ---------->| _________________/ /_____________ | | / / | | ...
INTRODUCTION TO 6100 MPS-B Message Formats ENVOY FORMAT SEQUENTIAL SELECT REQUEST (Burroughs protocol): Text Out field = 3 + 3 * station count + message length in bytes Text field = |<---- MCW ---->|<------ sequence-header -------- ... _________________________________________________ | | | | | | | | 0 | 0 | [EOT] | r | si1 | 0 | ... | | | | | | |_ ... -------------------- sequence-header ------------------>| ___________________________ ___________________________ | | | | | | | | ... | r | si2 | 0 | . . .
INTRODUCTION TO 6100 MPS-B Message Formats ENVOY FORMAT SEQUENTIAL SELECT REQUEST (ADM-2 protocol): Text Out field = 3 + 3 * station count + message length in bytes Text field = |<---- MCW ---->|<------ sequence-header -------- ... _________________________________________________ | | | | | | | | 0 | 0 | [EOT] | r | si1 | 0 | ... | | | | | | |_ ... -------------------- sequence-header ------------------>| ___________________________ ___________________________ | | | | | | | | ... | r | si2 | 0 | . . .
INTRODUCTION TO 6100 MPS-B Message Formats ENVOY FORMAT BROADCAST SELECT REQUEST (Burroughs protocol): Text Out field = 3 + 3 * station count + message length in bytes Text field = |<---- MCW ---->|<------ sequence-header -------- ... _________________________________________________ | | | | | | | | 0 | 0 | [EOT] | t | si1 | 0 | ... | | | | | | |_ ... -------------------- sequence-header ------------------>| ___________________________ ___________________________ | | | | | | | | ... | t | si2 | 0 | . . .
INTRODUCTION TO 6100 MPS-B Message Formats ENVOY FORMAT BROADCAST SELECT REQUEST (ADM-2 protocol): Text Out field = 3 + 3 * station count + message length in bytes Text field = |<---- MCW ---->|<------ sequence-header -------- ... _________________________________________________ | | | | | | | | 0 | 0 | [EOT] | t | si1 | 0 | ... | | | | | | |_ ... -------------------- sequence-header ------------------>| ___________________________ ___________________________ | | | | | | | | ... | t | si2 | 0 | . . .
INTRODUCTION TO 6100 MPS-B Message Formats Response Message Format The response Text field begins with a message control word (MCW) followed by the message. The basic WRITEREAD buffer response Text field appears as follows: Message Control Word |<--- (two bytes) --->| _______________________ | | | | MCW | ... | | |_ |<------------------ message ------------------->| _______________________/ /________________________ | SOH | / / | | ...
INTRODUCTION TO 6100 MPS-B Message Formats RESPONSE (Burroughs protocol): Text Out field = 2 + message length in bytes Text field = |<---- MCW ---->| _________________ | | | | 0 | si | ... | | |_ |<---------------------- message ---------------------->| ________________________________________/ /______________ | | | | | / / | | ...
INTRODUCTION TO 6100 MPS-B Message Formats RESPONSE (ADM-2 protocol Function Key input response): Text Out field = 2 + message length in bytes Text field = |<---- MCW ---->| _________________ | | | | 0 | si | ... | | |_ |<------ message ------>| _________________________ | | | | ...
INTRODUCTION TO 6100 MPS-B Error Handling Error Handling The following means of handling error conditions have been mentioned in this section: • Block Check Character (BCC) • Retries • Timeouts • Negative Acknowledgements Block Check Character The Block Check Character (BCC) is the result of a running computation during data transmission. It is used by the communicating stations for error control.
INTRODUCTION TO 6100 MPS-B Error Handling A retry count value is defined in SYSGEN that specifies the maximum number of times that 6100 MPS-B will retry an operation. This value can be altered subsequent to system generation through a SET CONFIGURATION request, a STATION CONTROL Alter Line request (see Section 3), or a CMI ALTER command.
INTRODUCTION TO 6100 MPS-B Line Configuration Options Each of these types of error causes 6100 MPS-B to perform a predefined sequence of operations in an attempt to recover. For example, if text is being received and a BCC error is detected, 6100 MPS-B responds to the incoming message with a NAK control sequence and waits for the message to be retransmitted. Conversely, if a NAK control sequence is received when transmitting a message, 6100 MPS-B resends the message.
INTRODUCTION TO 6100 MPS-B Line Configuration Options NOTE The modem CONTROL Connect and Disconnect requests require that the value of MPSBCONNECTTIMEOUT be a value other than zero. In general, the value should be very short for a leased line, because in that case the modem asserts DSR almost immediately. In the case of a switched line, with the LIU on the receiving end, the value should reflect how long it will take for a call to come in.
INTRODUCTION TO 6100 MPS-B Line Configuration Options MPSBPACE (1 word) specifies the maximum number of consecutive WRITE requests that can be performed by MPS-B before all stations are polled again. The value can range from 0 through 32767. The default value is zero (only one I/O request permitted at any given time). If the value specified for MPSBPACE is zero, a HALT POLL request (when stations are polled) must be issued prior to any WRITE request.
INTRODUCTION TO 6100 MPS-B Line Configuration Options MPSBNONE (1 byte) specifies that no parity is generated for transmitted data or checked for received data. The value must be 2. MPSBHALF (1 byte) specifies half-duplex mode. That is, RTS is raised before and dropped immediately after each write operation. The value must be zero. Half-duplex is the default mode. MPSBFULL (1 byte) specifies full-duplex mode. of the time. The value must be 255.
INTRODUCTION TO 6100 MPS-B Line Configuration Options MPSBAUTODISABLE (1 byte) specifies that a station in the poll list is disabled following a normal read operation completion. The value must be 255. This saves processing time because the application need not issue a Control Disable Station request to allow for host transaction processing.
SECTION 2 6100 MPS-B LINK MANAGEMENT This section describes two important aspects of 6100 MPS-B operation: • The five major states through which a communication link moves, and the events that cause transitions between states. Some application requests have different meanings in different states, and error messages can indicate unexpected state transitions. • The modem signals 6100 MPS-B uses, and the events that cause them to change.
6100 MPS-B LINK MANAGEMENT Line States and Transitions ----------------------------------------------------------------| | | ________________ | | | | | | | | | | | DISCONNECT | | | | | | | | | | | | | | | | | ____________________________________________ | | | | | | | | | | | CONTROL | | | | | | | | | | | | | | | | | | | ________________ | | | | | | | | | | | POLL | | | | | | | | | | | | | | | | | | | ________________ | | | | | | | | | | | READ | | | | | | | | | | | | | | | | | | | ________________ | | | | |
6100 MPS-B LINK MANAGEMENT DISCONNECT State NOTE The line states reported in a protocol trace are much more specific than those described here. For example, the READ state actually has several substates. This section does not provide information to help you decode trace data. DISCONNECT State A line is in DISCONNECT state if the LIU has been downloaded but a connection has not been established. Perhaps an earlier connection was lost, or there is temporarily no caller on a dialup line.
00 MPS-B LINK MANAGEMENT DISCONNECT State • The application makes its first request to read or write from the line, without first making a CONTROL request. 6100 MPS-B first makes the connection, as though a CONTROL request had been issued. It then performs the requested function, which may cause another transition. For example, a READ request can connect the line, poll a station, and read the response; in this case, the state goes from DISCONNECT to CONTROL to POLL to READ.
6100 MPS-B LINK MANAGEMENT DISCONNECT State ----------------------------------------------------------------| | | Request Status Code Description New State | | | | WRITEREAD 172 Format error in CONTROL | | (Continued) received data | | 173 Bad BCC or other Unknown; use | | error in data Send EOT | | sent or received | | 177 Received text CONTROL | | too large | | other DISCONNECT | | | | CONTROL 0 Normal completion CONTROL | | (CONNECT) other DISCONNECT | | | ------------------------------------------------
6100 MPS-B LINK MANAGEMENT DISCONNECT State • WRITEREAD data, to establish a connection, if required; to read the response; to send the first message, and accept a conversational reply. If you use it to send a message and receive an acknowledgement, the new state is SELECT-TEXT. If you use it to send a message and receive a text reply, the new state is READ. • CONTROL, to establish a connection. CONTROL.
6100 MPS-B LINK MANAGEMENT CONTROL State CONTROL State A line is in CONTROL state of a connection exists and the line is idle (no data transfer activity). Transitions to CONTROL State The following events cause transitions to CONTROL state from other states: • The application makes a CONTROL request to connect the line. If the line is leased, the state changes from DISCONNECT to CONTROL. • The application makes its first request to read or write from the line, without first making a CONTROL request.
6100 MPS-B LINK MANAGEMENT CONTROL State ----------------------------------------------------------------| | | Original State: CONTROL | | | | Request Status Code Description New State | | | | WRITE 0 Normal completion SELECT-TEXT | | 140 Modem error DISCONNECT | | 161 6100 error DISCONNECT | | 162 Timeout Unknown; use | | Send EOT | | 173 NAK reply Unknown; use | | Send EOT | | 177 Reply too long SELECT-TEXT | | 190 6100 error DISCONNECT | | other CONTROL | | | | READ 0 Normal completion READ | | 140 Modem
6100 MPS-B LINK MANAGEMENT CONTROL State ----------------------------------------------------------------| | | Request Status Code Description New State | | | | CONTROL 0 Normal Completion CONTROL | | (Send EOT) 140 Modem error DISCONNECT | | 161 6100 error DISCONNECT | | 190 6100 error DISCONNECT | | | ----------------------------------------------------------------Figure 2-3.
6100 MPS-B LINK MANAGEMENT POLL State POLL State A line is in POLL state immediately following a READ request made by the application. Transitions to POLL State The following request causes a line to be in POLL state: • The application makes a READ request. The state changes from CONTROL to POLL. Subsequently, the specified station is polled.
6100 MPS-B LINK MANAGEMENT POLL State ----------------------------------------------------------------| | | Original State: POLL | | | | Request Status Code Description New State | | | | READ 0 Normal completion READ | | 140 Modem error DISCONNECT | | 161 6100 error DISCONNECT | | 162 Timeout Unknown; use | | Send EOT | | 163 EOT received CONTROL | | 172 Format error in CONTROL | | received data | | 173 Bad BCC or other Unknown; use | | data error Send EOT | | 177 Received text CONTROL | | too large | | 190
6100 MPS-B LINK MANAGEMENT POLL State Requests and Functions Applicable to POLL State The following requests are permitted in POLL state. Some requests have different functions when the line is in other states. For complete descriptions of the requests, see Section 3. • FETCH CONFIGURATION, to retrieve line parameters. You can find out the values of line parameters, but you aren’t allowed to change them in this state. This request does not cause a change of state.
6100 MPS-B LINK MANAGEMENT READ State READ State A line is in READ state when reading text, and whenever an acknowledgement is owed, that is, between READ requests. Transitions to READ State The following requests cause a line to be in READ state: • The application makes a successful READ request to read the first message. The state changes from CONTROL to POLL to READ. During the series of READ requests, the line stays in READ state most of the time.
6100 MPS-B LINK MANAGEMENT READ State • The retry count is exhausted on either a READ request or the READ part of a WRITEREAD. The corresponding status codes are 162, 163, 172, 173, and 177. (See Section 3 for descriptions of the errors.) For status codes 163, 172, and 177, the state changes to CONTROL. For status codes 162 and 173, the completion state is not known--issue a CONTROL Send EOT request to ensure a return to CONTROL state.
6100 MPS-B LINK MANAGEMENT READ State ----------------------------------------------------------------| | | Request Status Code Description New State | | | | CONTROL 0 Normal Completion DISCONNECT | | (DISCONNECT) 140 Modem error DISCONNECT | | 161 6100 error DISCONNECT | | 162 Timeout DISCONNECT | | 190 6100 error DISCONNECT | | | | CONTROL 0 Normal Completion CONTROL | | (Send EOT) 140 Modem error DISCONNECT | | 161 6100 error DISCONNECT | | 190 6100 error DISCONNECT | | | --------------------------------
6100 MPS-B LINK MANAGEMENT SELECT-TEXT State SELECT-TEXT State A line is in SELECT-TEXT state when writing data, and whenever it may write data, that is, between WRITE requests or when a conversational reply is expected. Transitions to SELECT-TEXT State The following events cause a line to be in SELECT-TEXT state: • The application makes a WRITE request to send the first message. During data transfer, the line remains in SELECT-TEXT state most of the time.
6100 MPS-B LINK MANAGEMENT SELECT-TEXT State ----------------------------------------------------------------| | | Original State: SELECT-TEXT | | | | Request Status Code Description New State | | | | WRITE 140 Modem error DISCONNECT | | 161 6100 error DISCONNECT | | 163 EOT reply CONTROL | | 190 6100 error DISCONNECT | | other SELECT-TEXT | | | | READ 0 Normal completion READ | | 140 Modem error DISCONNECT | | 161 6100 error DISCONNECT | | 162 Timeout Unknown; use | | Send EOT | | 163 EOT received CONTROL
6100 MPS-B LINK MANAGEMENT SELECT-TEXT State ----------------------------------------------------------------| | | Request Status Code Description New State | | | | CONTROL 0 Normal Completion DISCONNECT | | (DISCONNECT) 140 Modem error DISCONNECT | | 161 6100 error DISCONNECT | | 162 Timeout DISCONNECT | | 190 6100 error DISCONNECT | | | | CONTROL 0 Normal Completion CONTROL | | (Send EOT) 140 Modem error DISCONNECT | | 161 6100 error DISCONNECT | | 190 6100 error DISCONNECT | | | -------------------------
6100 MPS-B LINK MANAGEMENT Modem Signals MODEM SIGNALS The following modem signals are used by 6100 MPS-B: Signal Function Pin AA AB Protective Ground Signal reference (signal ground) 1 7 BA BB TXD RXD (Transmit Data) (Receive Data) 2 3 CA CB CC CD CF RTS CTS DSR DTR DCD (Request to Send) (Clear to Send) (Data Set Ready) (Data Terminal Ready) (Data Carrier Detect--Receive Line Signal Detect) 4 5 6 20 8 In addition to the modem signals listed and described above, the EIA RS-232-C line interface
6100 MPS-B LINK MANAGEMENT Modem Signals DTR For switched lines, you control the raising and dropping of DTR through CONTROL Connect or Disconnect requests (see Section 3). For leased lines, DTR is raised after the line has been configured and when the first READ or WRITE request is processed. DTR remains up until the line is stopped, or until you issue a CONTROL Disconnect request from your application process. DSR 6100 MPS-B tracks the state of DSR.
6100 MPS-B LINK MANAGEMENT Modem Signals For either half-duplex or full-duplex mode, it is preferable to have Control CF set OFF (MPSBNOCONTROLCF). For example, in full-duplex mode, the line turns around faster when Control CF is OFF. However, you may have Control CF set ON for full-duplex mode (that is, RTS will raise after DCD drops).
SECTION 3 WRITING APPLICATIONS THAT USE 6100 MPS-B An application that communicates with stations on a 6100 MPS-B line must perform several tasks to ensure successful communication.
WRITING APPLICATIONS THAT USE 6100 MPS-B Setting Line Parameters In the call to the OPEN procedure, you specify several important parameters. In the flags word, there are bits to indicate shared or exclusive access to the line; if more than one process pair will have the line open concurrently, or if one process pair will open the line more than once, you must specify shared access.
WRITING APPLICATIONS THAT USE 6100 MPS-B Defining and Controlling the Poll/Select List A configuration change immediately influences action on the line. If multiple applications use the line, be careful about any changes you make, and when you make them. To avoid problems, consider the following strategies: • If applications use different values of line configuration parameters, try to use different lines for the stations they address.
WRITING APPLICATIONS THAT USE 6100 MPS-B Transferring Data The POLL/SELECT LIST CONTROL request and STATION CONTROL request are described later in this section. TRANSFERRING DATA Once the link is properly established, data can be exchanged on the line. To poll stations on the list, the application makes a call to WRITEREAD containing a READ request.
WRITING APPLICATIONS THAT USE 6100 MPS-B Closing the Line Your application process can also define the number of times to traverse the poll/select list when polling. This is called noncontinuous polling. The polling process terminates when the traverse poll list count is reached. Note that polling also terminates whenever a station responds with a message, or an error is encountered. An explicit Halt Poll request should be issued by your application process prior to any WRITE request.
WRITING APPLICATIONS THAT USE 6100 MPS-B Recovering From Errors RECOVERING FROM ERRORS There are two ways a 6100 MPS-B application becomes aware of errors: • A file system call completes with a condition code other than zero. • A WRITEREAD call completes with a condition code of zero, but the status field in the response buffer contains an error code. In some cases, a status detail code associated with the status error code is returned in the response buffer text field.
WRITING APPLICATIONS THAT USE 6100 MPS-B Cancelling a Request There are several requests that can assist the application in dealing with errors: • The STATION CONTROL request lets you change the retry count for the line. Increasing the retry count can reduce the incidence of error by giving the station more chances to succeed in each operation. • The FETCH STATISTICS request retrieves line quality information and other data useful for evaluating problems.
WRITING APPLICATIONS THAT USE 6100 MPS-B Request Queuing REQUEST QUEUING Queued I/O reqeusts are not permitted by 6100 MPS-B. However, at any given time, 6100 MPS-B can retain one READ and one WRITE request. Note that if your application process issues a WRITE request when a READ request is in progress, control over the possibility of receiving a message acknowledgement is diminished.
WRITING APPLICATIONS THAT USE 6100 MPS-B WRITEREAD Buffer Format WRITEREAD BUFFER FORMAT You encode a request to 6100 MPS-B in the WRITEREAD buffer. Figure 3-1 depicts the buffer format. ----------------------------------------------------------------| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | ----------------------------------------------------------------Figure 3-1.
WRITING APPLICATIONS THAT USE 6100 MPS-B Response Fields Modifier. This byte contains a number representing an option within a function. For example, if the function is POLL/SELECT LIST CONTROL, a zero in this field means "define the poll/select list," while a 1 means "enable continuous polling." Request ID. This word contains a value from 1 to 32767, which identifies this request among pending requests for the line.
WRITING APPLICATIONS THAT USE 6100 MPS-B Status Codes and Status Detail Codes Status. This byte contains a code representing either normal completion or an error condition. For example, the number 0 indicates normal completion; the number 140 indicates a modem error. Request ID. This word contains the same number as in the corresponding request. Thus, you can tell which request completed. Text Out. This word will always be zero. Text In.
WRITING APPLICATIONS THAT USE 6100 MPS-B Status Codes and Status Detail Codes For some codes, an additional status detail code is returned in the response buffer Text field. If the Status field contains a value greater than zero and the Text In field contains a value equal to or greater than 2, a status detail code can be found in the Text field. For example, if the status code is 22 (invalid parameter), the status detail code might be 12 (invalid station address).
WRITING APPLICATIONS THAT USE 6100 MPS-B Status Codes and Status Detail Codes Table 3-1. Status Code Values Returned by 6100 MPS-B (Continued) ----------------------------------------------------------------| | | Code | |(Decimal) Description | | | | 161 An error occurred within the 6100 subsystem. | | Note the contents of the status detail field | | and call your Tandem Representative.
WRITING APPLICATIONS THAT USE 6100 MPS-B Status Codes and Status Detail Codes Table 3-2.
WRITING APPLICATIONS THAT USE 6100 MPS-B Status Codes and Status Detail Codes Table 3-2.
WRITING APPLICATIONS THAT USE 6100 MPS-B Requests and Responses REQUESTS AND RESPONSES The rest of this section describes the requests an application can issue, and the responses 6100 MPS-B makes to the application. Table 3-3 lists the requests and responses in numerical order, including requests issued only by vendor-supplied software. (Those requests are included in the list because you might see them in a TRACE listing.
WRITING APPLICATIONS THAT USE 6100 MPS-B Requests and Responses Table 3-3.
WRITING APPLICATIONS THAT USE 6100 MPS-B Requests and Responses Table 3-3.
WRITING APPLICATIONS THAT USE 6100 MPS-B CONTROL Requests Table 3-3.
WRITING APPLICATIONS THAT USE 6100 MPS-B Send EOT Send EOT This form of the CONTROL request sends an EOT sequence to a station. It is used either to reset the line after a read error, or to decline the chance to bid for the line. After Send EOT, the line is in CONTROL state.
WRITING APPLICATIONS THAT USE 6100 MPS-B Connect Modem Connect Modem This form of the CONTROL request is used to explicitly connect the line. It raises Data Terminal Ready (DTR) and waits for Data Set Ready (DSR). The wait interval for DSR to raise is determined by the connect timeout line configuration parameter MPSBCONNECTTIMEOUT (the value of MPSBCONNECTTIMEOUT must be greater than zero).
WRITING APPLICATIONS THAT USE 6100 MPS-B Disconnect Modem Disconnect Modem This form of the CONTROL request is used to explicitly disconnect the line. It drops Data Terminal Ready (DTR) and waits for Data Set Ready (DSR) to drop. The wait interval for DSR to drop is determined by the connect timeout line configuration parameter MPSBCONNWCTTIMEOUT (the value of MPSBCONNECTTIMEOUT must be greater than zero).
WRITING APPLICATIONS THAT USE 6100 MPS-B FETCH CONFIGURATION Request FETCH CONFIGURATION Request The FETCH CONFIGURATION request retrieves the current values of the line configuration parameters (as stored in the LIU). For information about the standard parameters, see "Line Configuration Options" in Section 1; the names that appear in the list below are the names you use in the SYSGEN entry. This request can be issued at any time, and does not affect the line state.
WRITING APPLICATIONS THAT USE 6100 MPS-B FETCH CONFIGURATION Request Line Configuration Data Block Format The structure of the standard line configuration data block follows (see "Line Configuration Options" in Section 1 for detailed information): Parameter Byte Offset,Length and Type Description_______________ MPSBCONNECTTIMEOUT 0,2 INT Value in .01 seconds MPSBTIMEOUT 2,2 INT Value in .01 seconds MPSBPOLLINTERVAL 4,2 INT Value in .
WRITING APPLICATIONS THAT USE 6100 MPS-B FETCH CONFIGURATION Request Parameter Byte Offset,Length and Type Description_______________ MPSBHALF MPSBFULL 17,1 BYTE 0 = half duplex 255 = full duplex MPSBLEASED MPSBSWITCHED 18,1 BYTE 0 = leased line 255 = switched line MPSBCONTROLCF MPSBNOCONTROLCF 19,1 BYTE 0 = control CF 255 = no control CF MPSBNOAUTODISABLE MPSBAUTODISABLE 20,1 BYTE 0 = no auto disable 255 = auto disable MPSBNONSTOPOFF 21,1 BYTE 0 = no task/host synchronization 255 = t
WRITING APPLICATIONS THAT USE 6100 MPS-B FETCH STATISTICS Request FETCH STATISTICS Request The FETCH STATISTICS request reads, returns, and optionally, clears the current line statistics. The statistics are obtained from a block of 16-bit counters. Each counter contains a value in the range from 0 to 65535. This request can be issued at any time, and does not affect the line state.
WRITING APPLICATIONS THAT USE 6100 MPS-B FETCH STATISTICS Request The structure of the line statistics data block is: Word Offset 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 Byte Offset 0 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 Statistic Description__________________________ Total number of requests Number of WRITE requests passed to Level 2 Number of READ requests passed to Level 2 Number of CONTROL requests passed to Level 2 Number of undefined requests Number of text messages s
WRITING APPLICATIONS THAT USE 6100 MPS-B POLL/SELECT LIST CONTROL Requests POLL/SELECT LIST CONTROL Requests The POLL/SELECT LIST CONTROL request can be used for any of the following functions: • To define the poll/select list. • To enable continuous polling. • To enable noncontinuous polling. • To halt polling. • To remove all stations from the nonresponding list. • To define the slow poll list. Define Poll/Select List This form of the request is used to create the poll/select list.
WRITING APPLICATIONS THAT USE 6100 MPS-B Define Poll/Select List The response buffer format is: Function := 68 Status := 0 if the operation completed successfully, or a code greater than zero if an error occurred Request ID := The same as in the request Text Out := 0 Text In := 0, or 2 if status detail code is present in Text field Text := Null, or Byte 0 = status detail code; Byte 1 = 0 The structure of the poll/select list is: Byte Offset Field Description__________________________ 0 2 3 4 .
WRITING APPLICATIONS THAT USE 6100 MPS-B Define Poll/Select List The Poll/Select list length is derived using the following formula: Length = Number of Stations * (p + s) + 4 The Poll/Select entry for each station should have a sequence header in the following form: EOT prefix optional-type-id ENQ prefix Station identifier optional-type-id Optional Poll or Select type identifier For Burroughs or Lear-Siegler terminals, the entry should be formatted: EOT a1 a1 p ENQ EOT a1 a1 q ENQ a1 -poll entry -selec
WRITING APPLICATIONS THAT USE 6100 MPS-B Define Poll/Select List Examples.
WRITING APPLICATIONS THAT USE 6100 MPS-B Enable Continuous Polling Enable Continuous Polling This form of the request is used to begin continuous polling of stations in the Poll/Select list. Polling continues indefinitely, station by station, until either a station responds to the poll with a message, or an error occurs.
WRITING APPLICATIONS THAT USE 6100 MPS-B Enable Noncontinuous Polling Enable Noncontinuous Polling This form of the request is used to begin noncontinuous polling of the stations in the Poll/Select list. You can include a value that defines the number of times you wish to traverse the Poll list. Once begun, polling continues for the specified number of passes through the polling list until either a station responds to the poll with a message, or an error occurs.
WRITING APPLICATIONS THAT USE 6100 MPS-B Halt Poll Halt Poll This form of the request is used to stop polling. Polling stops when MPS-B attempts to poll the next station in the Poll list following successful completion of the Halt Poll request.
WRITING APPLICATIONS THAT USE 6100 MPS-B Remove Stations From Nonresponding List Remove Stations From Nonresponding List This form of the request is used to remove from the nonresponding station list any stations that appear in that list.
WRITING APPLICATIONS THAT USE 6100 MPS-B Define Slow Poll List Define Slow Poll List This form of the request is used to define a list of slow poll time intervals station by station. The slow poll time interval determines when a station will be removed from the nonresponding station list. Initially, when you define (or redefine) the poll/select list, a slow poll list is created, having a slow poll time interval of zero.
WRITING APPLICATIONS THAT USE 6100 MPS-B Define Slow Poll List The request buffer format is: Function := 68 Modifier := 5 Request ID := A unique value from 1 to 32767, application-dependent Text Out := Station count * 4 (minimum value of 4) Text In := 0, or Station count * 4 if status detail code is desired in response Text := List composed of one 4-byte entry for each station: First byte = 0 Second byte = station index Third and Fourth bytes = slow poll interval in .
WRITING APPLICATIONS THAT USE 6100 MPS-B READ Request READ Request The READ request permits your application process to either poll all stations sequentially (sequential poll) or poll a specific station (specific poll). For sequential polling, only stations that are enabled or are not on the nonresponding list are polled. Polling continues if a polled station responds with EOT. If a polled station responds with a message, the READ request terminates.
WRITING APPLICATIONS THAT USE 6100 MPS-B READ Request The response buffer format is: Function := 65 Status := 0 if the operation completed successfully, or a code greater than zero if an error occurred Request ID := The same as in the request Text Out := 0 Text In := Length of received message + 2 bytes, or 2, if status detail code is present in Text field Text := MCW followed by received message, or MCW only The MCW (Message Control Word) format is: Byte 0 = 0, or Status detail code Byte 1 = St
WRITING APPLICATIONS THAT USE 6100 MPS-B SET CONFIGURATION Request SET CONFIGURATION Request The SET CONFIGURATION request is used to configure the line. This request can be issued only when the line is in the Disconnect state. Whenever a line is first opened, CP6100 issues a SET CONFIGURATION request to set the line to the configuration defined by SYSGEN and any CMI ALTER commands issued by a system operator.
WRITING APPLICATIONS THAT USE 6100 MPS-B SET CONFIGURATION Request The response buffer format is: Function := 1 Status := 0 if the operation completed successfully, or a code greater than zero if an error occurred Request ID := The same as in the request Text Out := 0 Text In := 0, or 2 if status detail code is present in Text field Text := Null, or Byte 0 = status detail code; Byte 1 = 0 3-41
WRITING APPLICATIONS THAT USE 6100 MPS-B SET CONFIGURATION Request Standard Line Configuration Data Block Format The structure of the standard line configuration data block follows (see "Line Configuration Options" in Section 1 for detailed information): Parameter Byte Offset,Length and Type Description_______________ MPSBCONNECTTIMEOUT 0,2 INT Value in .01 seconds MPSBTIMEOUT 2,2 INT Value in .01 seconds MPSBPOLLINTERVAL 4,2 INT Value in .
WRITING APPLICATIONS THAT USE 6100 MPS-B SET CONFIGURATION Request Parameter Byte Offset,Length and Type Description_______________ MPSBHALF MPSBFULL 17,1 BYTE 0 = half duplex 255 = full duplex MPSBLEASED MPSBSWITCHED 18,1 BYTE 0 = leased line 255 = switched line MPSBCONTROLCF MPSBNOCONTROLCF 19,1 BYTE 0 = control CF 255 = no control CF MPSBNOAUTODISABLE MPSBAUTODISABLE 20,1 BYTE 0 = no auto disable 255 = auto disable MPSBNONSTOPOFF 21,1 BYTE 0 = no task/host synchronization 255 = tas
WRITING APPLICATIONS THAT USE 6100 MPS-B SET CONFIGURATION Request Extended Line Configuration Data Block Format The extended block can be configured only through your application program. The format of the first 22 bytes of the extended block is exactly the same as the standard configuration block defined in "Standard Line Configuration Data Block Format.
WRITING APPLICATIONS THAT USE 6100 MPS-B SET CONFIGURATION Request Parameter WRITE-INIT-TIME Byte Offset, Length and Type 26,2 INT Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved Reserved 28,2 30,2 32,2 34,2 36,2 38,2 40,2 42,2 44,2 Description___________________ The time, in .01 second increments, that the CLIP will wait for the line to become available to start a write. Valid range is 0 and 10 to 4500.
WRITING APPLICATIONS THAT USE 6100 MPS-B START LINE Request START LINE Request The START LINE request performs no useful function. It is included only for compatibility with other protocol modules. A START LINE request always completes immediately without error.
WRITING APPLICATIONS THAT USE 6100 MPS-B START TRACE Request START TRACE Request The START TRACE request is used by CMI to trace and report line traffic and protocol events. Your application should not use the START TRACE request (function code 3). The CMI TRACE facility offers all the capability of this request, as well as readable report format. For information about the facility, consult the CMI Operator’s Guide.
WRITING APPLICATIONS THAT USE 6100 MPS-B STATION CONTROL Requests STATION CONTROL Requests The STATION CONTROL request has three forms: • Enable station polling • Disable station polling • Alter certain line configuration parameters Enable Station Polling This form of the request causes a station to be placed in the "enabled" state so that it can be polled for data by MPS-B.
WRITING APPLICATIONS THAT USE 6100 MPS-B Enable Station Polling The response buffer format is: Function := 64 Status := 0 if the operation completed successfully, or a code greater than zero if an error occurred Request ID := The same as in the request Text Out := 0 Text In := 0, or Station count * 2 if status detail code present in Text field Text := Null, or List composed of one 2-byte entry for each station: First byte = status detail code Second byte = station index 3-49
WRITING APPLICATIONS THAT USE 6100 MPS-B Disable Station Polling Disable Station Polling This form of the request is used to place a station in the "disabled" state. A disabled station is not polled during execution of a READ request sequential poll, but can be polled using a READ request specific poll.
WRITING APPLICATIONS THAT USE 6100 MPS-B Alter Line Alter Line This form of the request permits you to change a subset of the line configuration parameters (Connect Timeout, Timeout, Poll Interval, Retries, and Pace). You may change any or all of these parameters in one request.
WRITING APPLICATIONS THAT USE 6100 MPS-B Alter Line The response buffer format is: Function := 64 Status := 0 if the operation completed successfully, or a code greater than zero if an error occurred Request ID := The same as in the request Text Out := 0 Text In := 0, or 2 if status detail code is present in Text field Text := Null, or Byte 0 = status detail code; Byte 1 = 0 3-52
WRITING APPLICATIONS THAT USE 6100 MPS-B STOP LINE Request STOP LINE Request An application should never issue a STOP LINE request. CP6100 issues STOP LINE when the last user closes the line. CMI issues STOP LINE in response to the CMI STOP LINE command. The STOP LINE request aborts an active or pending request, if there is one, disconnects the line, and leaves the line unconfigured. A response is returned. The Status Code value in the response should be 122 (Request Aborted).
WRITING APPLICATIONS THAT USE 6100 MPS-B STOP TRACE Request STOP TRACE Request The STOP TRACE request is used by CMI in conjunction with the START TRACE request. Your application should not use the STOP TRACE request (function code 4). The CMI TRACE facility offers all the capability of this request, as well as readable report format. For information about the facility, consult the CMI Operator’s Guide.
WRITING APPLICATIONS THAT USE 6100 MPS-B WRITE Request WRITE Request The WRITE request permits your application to select a station or group of stations, and transmit a message to the station or group of stations.
WRITING APPLICATIONS THAT USE 6100 MPS-B READ Examples Examples READ Example 1 (Continued on next page) Start polling all "enabled" stations until a message is received: Application Process MPS-B Station Line State = CONTROL CALL WRITEREAD (...); | | | | | | | | | | | | | | | | | (WRITEREAD completes) EOT a1 a1 p ENQ EOT a2 a2 p ENQ ---> EOT <--- EOT ---> . . .
WRITING APPLICATIONS THAT USE 6100 MPS-B READ Examples READ Example 1 (Continued) MPS-B, on behalf of the next READ request, sends a proper acknowledgement to the station and reads the EOT from the station before it resumes polling: Application Process MPS-B Station Line State = READ CALL WRITEREAD (...); ACK ---> <--- EOT an+1 an+1 p ENQ EOT ---> . . . .
WRITING APPLICATIONS THAT USE 6100 MPS-B READ Examples READ Example 2 Start polling all "enabled" stations and encounter a nonresponding station: Application Process MPS-B Station Line State = CONTROL CALL WRITEREAD (...); | | | | | | | | | (WRITEREAD completes) EOT a1 a1 p ENQ ---> . . .
WRITING APPLICATIONS THAT USE 6100 MPS-B READ Examples READ Example 3 Perform an ADM-2 SEND function: Application Process MPS-B Station Line State = CONTROL CALL WRITEREAD (...); | | EOT a1 a1 send-function ENQ | | | (WRITEREAD completes) ---> <--- STX text ETX Line State = READ Status = 0 (Operation completed successfully) Text In = Message length, in bytes Application Process MPS-B Station Line State = READ CALL WRITEREAD (...
WRITING APPLICATIONS THAT USE 6100 MPS-B WRITE Examples WRITE Example 1 Transmit a message without an error to a specific station using SELECT: Application Process MPS-B Station Line State = CONTROL CALL WRITEREAD (...) | | | | | | | | | (WRITEREAD completes) EOT a1 a1 q ENQ STX text ETX ---> <--- ACK <--- ACK ---> Line State = CONTROL Status = 0 Text In = 0 (operation completed successfully) After receiving a message from the station using SELECT, transmit a message to the station.
WRITING APPLICATIONS THAT USE 6100 MPS-B WRITE Examples WRITE Example 2 (Continued on next page) Write a message to the station using FAST SELECT: Application Process MPS-B Station Line State = CONTROL CALL WRITEREAD (...
WRITING APPLICATIONS THAT USE 6100 MPS-B WRITE Examples WRITE Example 2 (Continued) Write a message to the station which responds with NAK prior to accepting a message from a station (FAST SELECT): Application Process MPS-B Station Line State = READ CALL WRITEREAD (...); | | ACK ---> | | | | EOT a1 a1 s STX text ETX ---> | | | | | | (text re-transmission) | | STX text ETX ---> | | | . | . | .
WRITING APPLICATIONS THAT USE 6100 MPS-B WRITE Examples WRITE Example 3 (Continued on next page) Transmit the same message to a group of stations using SEQUENTIAL SELECT: Application Process MPS-B Station Line State = CONTROL CALL WRITEREAD (...); | | EOT a1 a1 r...
WRITING APPLICATIONS THAT USE 6100 MPS-B WRITE Examples WRITE Example 3 (Continued) Transmit the same message to the group of stations using BROADCAST SELECT prior to a message being received by MPS-B. The last station in the sequence header does not respond (MPS-B has no information whether or not the other stations received the message correctly): Application Process MPS-B Station Line State = READ CALL WRITEREAD (...); | | ACK ---> | | | | EOT a1 a1 t...
WRITING APPLICATIONS THAT USE 6100 MPS-B Send EOT Example Send EOT Example Do not acknowledge previously received message. That is, move from READ state to CONTROL state without sending ACK to station. Application Process MPS-B Station Line State = READ CALL WRITEREAD (...
APPENDIX A FILE SYSTEM ERROR CODES This appendix lists the file system errors that have special meanings for CP6100 or the 6100 subsystem. For each error, it gives the error number, a brief description of the error and what caused it, and a corrective action you can take. For descriptions of other file system errors, consult the NonStop System Messages Manual. Errors listed under the heading "These are serious. Don’t retry" indicate that something was wrong with the request or the device.
FILE SYSTEM ERROR CODES The theoretical strategy for recovery is simple: backtrack to the most recent point where you knew what was going on. Here are some scenarios to illustrate the strategy: Case 1: You were transmitting data when the error occurred. The normal way to handle this case is to repeat the last transmission, somehow signalling the other station to discard any duplicate data.
FILE SYSTEM ERROR CODES In the following protocols, recovery from a path switch is somewhat simplified: • In ADCCP a path switch doesn’t change the state of the line. You can retry your request without loss or duplication of data. • In BSC or MPSB you can set the parameter xxxNONSTOPON, where xxx is the acronym that represents the protocol; then a path switch won’t change the state of the line, and you can retry requests without loss or duplication of data.
FILE SYSTEM ERROR CODES These same considerations apply whenever the line is downloaded, whether because of a CMI START command or in the course of error recovery. If an LIU doesn’t respond to a request, CP6100 tries up to three times to establish contact through the CSM. In the meantime, requests complete with error 124. If the LIU fails to respond after three attempts at recovery, CP6100 declares the line down and completes new requests with error 66.
FILE SYSTEM ERROR CODES ---------------------------------------------------------------THESE ARE SERIOUS. DON’T RETRY. ---------------------------------------------------------------2 Invalid operation requested. You probably issued a call CP6100 doesn’t support. Remember to use WRITEREADs for all requests to the line. ---------------------------------------------------------------12 Device has been opened exclusively. The device is in use by another application.
FILE SYSTEM ERROR CODES ---------------------------------------------------------------22 Invalid request ID. The request ID in the WRITEREAD buffer is 0 or negative. Change it to a number between 1 and 32767. (CP6100 doesn’t check for duplicate request IDs. Your application must manage its own request IDs, in coordination with other applications using the line.) ---------------------------------------------------------------53 File management interface error.
FILE SYSTEM ERROR CODES ---------------------------------------------------------------100 Controller Not Operational. The controller is not present in its slot, is not addressed correctly, has not been powered up, or has not been downloaded. Prepare the controller for operation before you try the request again. ---------------------------------------------------------------124 Non-responding LIU; trying to reset.
FILE SYSTEM ERROR CODES ---------------------------------------------------------------RETRY THESE, BUT FIRST READ NOTES IN TEXT ---------------------------------------------------------------31 No Buffer for #DEBUG. CP6100 couldn’t get a buffer to service a request for CSSDBUG. This error is a specific case of error 33, below. ----------------------------------------------------------------33 Buffer Space Shortage. CP6100 couldn’t get a buffer for the request. Try the operation again.
FILE SYSTEM ERROR CODES ----------------------------------------------------------------200 Device Owned by Other CPU. * 210 Path Switch Occurred. * 211 CPU Failure. * 230 CPU Power On. * 231 Controller power on, channel reset, or loss of contact with the 6100 subsystem cabinet. See the discussion of "Total Subsystem and LIU Failures" in this Appendix. * * These messages indicate that a path switch has occurred or is occurring. See the discussion of path switches in this Appendix.
APPENDIX B 6100 MPS-B PROGRAMMING EXAMPLE This appendix presents a complete programming example for controlling terminals in a 6100 MPS-B environment. Although the code shown has been both successfully compiled and executed, keep in mind that it is quite simplified for the purpose of clearly illustrating the interaction between an application process and 6100 MPS-B. An actual application program, for example, would use no-wait I/O to overlap the terminal handling with other application processing.
6100 MPS-B PROGRAMMING EXAMPLE The overall program consists of the following: • Declarations of global literals, variables, and data structures. • A main procedure (DO^MAIN) that executes the basic programming loop. • A procedure (INITIALIZE) that opens all pertinent files, reads the start-up message, defines the poll/select list (by calling DEFINE^POLL^LIST), and connects the modem.
6100 MPS-B PROGRAMMING EXAMPLE ----------------------------------------------------------------| | | | | | | +------------------+ | | | call INITIALIZE | | | | procedure | | | +------------------+ | | | | | | | | | | | +------------------+ | | | enable | | | | continuous | | | | polling | | | +------------------+ | | | +----------------+ | | |<----------------------| perform | | | | | application | | | | (NO | recovery | | | +------------------+ RESPONSE) | then reset | | | +------->| initiate polling |----
6100 MPS-B PROGRAMMING EXAMPLE ----------------------------------------------------------------| | | +-------------------------+ | | | open home terminal | | | +-------------------------+ | | | | | +-------------------------+ | | | open $RECEIVE | | | +-------------------------+ | | | | | +-------------------------+ | | | read start-up message | | | +-------------------------+ | | | | | +-------------------------+ | | | open any required | | | | application files | | | +-------------------------+ | | | | |
6100 MPS-B PROGRAMMING EXAMPLE ?SYMBOLS ?INSPECT LITERAL config control poll readline write^line = = = = = 1, 67, 68, 65, 66; ! "function" codes LITERAL connect^modem define^list define^slow^list enable^continuous enable^all reset select^enable sequential^poll = = = = = = = = LITERAL EOT ENQ ETX line^read^count max^retries STX 04, 05, 03, 1932, 3, 02; = = = = = = STRUCT .
6100 MPS-B PROGRAMMING EXAMPLE DEFINE ! ! ! status rfunction rmodifier textin textout start^of^msg NOTE: = = = = = = req^buff.modifier#, req^buff.function#, req^buff.modifier#, req^buff.text^in#, req^buff.text^out#, req^buff.text[5]#; start^of^msg points to the first text character following the SOH or STX in an incoming message received from a terminal. ?NOLIST ?SOURCE $SYSTEM.SYSTEM.
6100 MPS-B PROGRAMMING EXAMPLE ?PAGE "PROCEDURE: LOG^ERROR" PROC log^error (filenum,error) VARIABLE; INT filenum, error; BEGIN LITERAL base = 10; STRUCT error^msg; BEGIN STRING field^1 [0:9], field^1^num [0:1], field^2 [0:8], field^2^num [0:2], field^3 [0:15], field^3^num [0:2]; END; IF NOT $PARAM(filenum) THEN BEGIN error^msg.field^1 ’:=’ ["Function: .."]; error^msg.field^2 ’:=’ [" Status: ..."]; error^msg.field^3 ’:=’ [" Detail Status: ..."]; IF textin <> 2 THEN req^buff.
6100 MPS-B PROGRAMMING EXAMPLE ?PAGE "PROCEDURE: SEND^REQUEST" INT PROC send^request; BEGIN LITERAL cp^6100^error = 53, req^header = 8; INT .ireq^buff, line^write^count, retry^count := 0; STRUCT .save^req^buff; BEGIN STRING function, modifier; INT req^id, text^out, text^in; STRING text [0:1923]; END; ! Save buffer structure DEFINE reqid = req^buff.
6100 MPS-B PROGRAMMING EXAMPLE ! NOTE: Because the NONSTOP configuration option has been ! selected, only a very simple error recovery needs to be ! implemented. When running with the NONSTOP option, MPS-B ! will not process requests with a duplicate request ID. DO ! Send the request to MPS-B.
6100 MPS-B PROGRAMMING EXAMPLE ?PAGE "PROCEDURE: REQUEST" PROC request (function,modifier,t^out,t^in) VARIABLE; INT function, modifier, t^out, t^in; BEGIN rfunction rmodifier textout textin := := := := function; ! Initialize the request modifier; ! header fields with passed t^out; ! parameters. t^in; IF send^request <> 0 THEN CALL log^error (linefnum,file^error); ! ! ! ! Issue a WRITEREAD request. IF the send failed after 3 retries, log the FILE SYSTEM error, then ABEND.
6100 MPS-B PROGRAMMING EXAMPLE ?PAGE "PROCEDURE: CONFIGURE^LINE" INT PROC configure^line; BEGIN LITERAL config^len = 26; STRUCT .config^block; BEGIN INT connect^timeout, response^timeout, poll^interval, retries, pace; FILLER 2; INT baud^rate; STRING sync, char^size, parity, mode, line^type, controlcf, autodisable, nonstop; FILLER 4; END; ! Specify the desired configuration parameter values. config^block.connect^timeout config^block.response^timeout config^block.poll^interval config^block.
6100 MPS-B PROGRAMMING EXAMPLE ?PAGE "PROCEDURE DEFINE^POLL^LISTS" INT PROC define^poll^lists; BEGIN LITERAL continuous entry^size num^stations slow^intervl = = = = 0, 5, 3, 500; ! slow poll interval = 5 seconds STRUCT .poll^list; BEGIN INT poll^type; STRING poll^entry^size, select^entry^size; STRUCT station^index [0 : num^stations - 1] ; BEGIN STRING poll^entry [0: (entry^size * 2) - 1] ; END; END; STRUCT .
6100 MPS-B PROGRAMMING EXAMPLE IF status <> 0 THEN RETURN (status); ! define the slow poll list slow^poll^list.STATION^index[0].slow^poll^entry ’:=’ [ 0, 0 ]; ! station 0 slow poll entry slow^poll^list.STATION^index[0].poll^interval := slow^intervl; ! station 0 slow poll interval slow^poll^list.STATION^index[1].slow^poll^entry ’:=’ [ 0, 1]; ! station 1 slow poll entry slow^poll^list.STATION^index[0].poll^interval := slow^intervl; ! station 1 slow poll interval slow^poll^list.STATION^index[1].
6100 MPS-B PROGRAMMING EXAMPLE ?PAGE "PROCEDURE: REPLY^LINE" PROC reply^line; BEGIN INT retry^count := 0; slinebuff ’:=’ [ STX ] & ["YOUR MESSAGE HAS BEEN RECEIVED"] & [ ETX ] -> @sp; start^of^msg ’:=’ slinebuff FOR (buff^len := @sp ’-’ @slinebuff); DO BEGIN ! ! ! ! Call "request" to assemble, and issue, the appropriate WRITEREAD request to send the message back to the terminal. Text Out includes the message length plus mcw (2), STX (1) and ETX (1).
6100 MPS-B PROGRAMMING EXAMPLE ?PAGE "PROCEDURE: INITIALIZE" PROC initialize; BEGIN LITERAL last^open = -1; INT error, .linename[0:11], .recvname[0:11], .termname[0:11]; CALL MYTERM (termname); CALL OPEN (termname,termfnum); IF < THEN CALL ABEND; recvname ’:=’ ["$RECEIVE", 8 * [" CALL OPEN (recvname,recvfnum,,1); IF < THEN CALL log^error (last^open); ! ! ! ! Open the home terminal. "]]; ! Open the $RECEIVE. ! If OPEN call fails, log ! the FILE SYSTEM error, ! then ABEND.
6100 MPS-B PROGRAMMING EXAMPLE ?PAGE "PROCEDURE: DO^MAIN" PROC do^main MAIN; BEGIN LITERAL error = 1; INT retry^count; CALL initialize; ! Enable continuous CALL request (poll,enable^continuous); ! polling. DO ! infinite loop BEGIN retry^count := 0; DO ! initiate polling BEGIN ! Poll until a ! exhausted.
6100 MPS-B PROGRAMMING EXAMPLE ! At this point a terminal has responded to the poll, so let’s ! save the text portion of the received message (without the mcw, ! the SOH or STX, and the ETX) in slinebuff. slinebuff ’:=’ start^of^msg FOR (buff^len := line^count^read - 11); ! : ! : ! : ! After the appropriate processing (and assuming that the ! received text string is valid), the application may then ! want to send a message back to the terminal. CALL reply^line; END UNTIL 1 = 0; END; ! of infinite loop.
6100 MPS-B PROGRAMMING EXAMPLE ALTERING THE SAMPLE PROGRAM Because of its modular design, you can easily modify the above sample program to add new capabilities. For example, let’s assume that we wish to broadcast a message to all three stations before initiating the polling loop. To accomplish this, we do the following: • write another procedure (BROADCAST) that formats the text portion of the WRITEREAD buffer, sets the text-out header field to the proper value, and calls REQUEST.
6100 MPS-B PROGRAMMING EXAMPLE The code for the BROADCAST procedure is as follows: ?PAGE "PROCEDURE: BROADCAST" PROC broadcast; BEGIN INT retry^count := 0; slinebuff ’:=’ [ EOT ] & [ "11s22s33s" ] & [ STX ] & [ "SYSTEM IS UP" ] & [ ETX ] -> @sp; req^buff.text [2] ’:=’ slinebuff FOR (buff^len := @sp ’-’ @slinebuff); DO BEGIN ! ! ! ! Call "request" to assemble, and issue, the appropriate WRITEREAD request to broadcast the message to the terminals. Text Out includes the message length plus the mcw (2).
INDEX 6100 MPS-B Communication flow 1-5 Concepts 1-5 Context 1-5 Features 1-2 Similarity with ENVOY ADM-2 multipoint protocol 1-1 Access Read/write 3-2 Shared 3-2 Alter line, STATION CONTROL 3-48 Altering line configuration CMI ALTER command 1-37 SET CONFIGURATION request 1-37 STATION CONTROL Alter Line request 1-37 ANSI Standard X3.
INDEX Cancelling a request 3-7 Closing the line 3-1, 3-5 Communication flow 1-5 Concepts 1-5 Configuration, line 1-37/38 Configuration data block 3-24, 3-41 Connect Modem request, CONTROL 3-21 Context 1-5 CONTROL requests Connect Modem 3-21 Description 3-19 Disconnect Modem 3-22 Send EOT 3-20 CONTROL state Applicable functions CONTROL 2-9 FETCH CONFIGURATION 2-9 FETCH STATISTICS 2-9 READ data 2-9 WRITE data 2-9 WRITEREAD data 2-9 Completion status to leave 2-8 Transitions to/from 2-7 Controlling the poll/se
INDEX Encountering errors 1-4, 1-36 End of Text (ETX) 1-8 ENVOY 6100 MPS-B similarity 1-1 ENVOY format 1-10, 1-24 ADM-2 SEND function 1-24, 1-26 Broadcast select 1-24 Broadcast select request ADM-2 1-32 Burroughs 1-31 Data 1-4 Fast select 1-24 Fast select request ADM-2 1-28 Burroughs 1-27 Sequential select 1-24 Sequential select request ADM-2 1-30 Burroughs 1-29 WRITEREAD buffer text field 1-25 Error handling Block Check Character (BCC) 1-36 Negative acknowledgement 1-36 Recovering from errors 3-1, 3-6 Retr
INDEX Format ENVOY format 1-10 Free format 1-10 Message 1-8 Request message 1-10 Response message 1-33 Formats ENVOY format 1-4, 1-24 Free format 1-4, 1-10 Free format 1-10 ADM-2 SEND function 1-14 Broadcast SELECT request ADM-2 1-23 Burroughs 1-22 Data 1-4 FAST SELECT request ADM-2 1-19 Burroughs 1-18 POLL request ADM-2 1-12 Burroughs 1-12 NCR 1-13 SELECT request ADM-2 1-16 Burroughs 1-15 NCR 1-17 Sequential SELECT request ADM-2 1-21 Burroughs 1-20 WRITEREAD buffer text field elements 1-11 Halt Poll reques
INDEX Line configuration options (also see line configuration data block) MPSBASYNC 1-40 MPSBAUTODISABLE 1-42 MPSBBAUDnnnnn 1-40 MPSBCHARACTERSIZE 1-40 MPSBCONNECTTIMEOUT 1-38 MPSBCONTROLCF 1-41 MPSBEVEN 1-40 MPSBFULL 1-41 MPSBHALF 1-41 MPSBLEASED 1-41 MPSBNOAUTODISABLE 1-41 MPSBNOCONTROLCF 1-41 MPSBNONE 1-41 MPSBNONSTOPOFF 1-42 MPSBNONSTOPON 1-42 MPSBODD 1-40 MPSBPACE 1-40 MPSBPOLLINTERVAL 1-39 MPSBRETRIES 1-39 MPSBSWITCHED 1-41 MPSBSYNC 1-40 MPSBTIMEOUT 1-39 Summary 1-38 Line monitor 1-9 Line states CONTR
INDEX NAK 1-37 Control sequence 1-38 Negative acknowledgement 1-37/38 NAK 1-37 Nonresponding stations 3-4 Opening a line 3-1 POLL state Applicable functions CONTROL 2-12 FETCH CONFIGURATION 2-12 FETCH STATISTICS 2-12 READ data 2-12 WRITE data 2-12 WRITEREAD data 2-12 Completion codes to leave 2-11 Transitions to/from 2-10 POLL/SELECT LIST CONTROL requests 3-28 Define poll/select list 3-28 Define slow poll list 3-36 Enable continuous polling 3-32 Enable noncontinuous polling 3-33 Halt poll 3-34 poll/select
INDEX READ state Applicable functions CONTROL 2-15 FETCH CONFIGURATION 2-15 FETCH STATISTICS 2-15 READ data 2-15 WRITE data 2-15 WRITEREAD data 2-15 Completion codes to leave 2-14 Transitions to/from 2-13 Read/write access 3-2 Recovering from errors 3-1, 3-6 Remove stations from nonresponding list, LIST CONTROL 3-35 Request message format 1-10 Request queuing 3-8 Requests 1-12, 3-16 ENVOY format 1-24 ENVOY format broadcast select ADM-2 1-32 Burroughs 1-31 ENVOY format fast select ADM-2 1-28 Burroughs 1-27 E
INDEX Requests and responses CONTROL 3-18 FETCH CONFIGURATION 3-17 FETCH STATISTICS 3-17 Function code order 3-17 POLL/SELECT LIST CONTROL 3-19 READ 3-18 SET CONFIGURATION 3-17 START LINE 3-17 START TRACE 3-17 STATION CONTROL 3-18 STOP LINE 3-18 STOP TRACE 3-17 WRITE 3-18 Response message format 1-33 Responses ADM-2 (function key input) 1-35 ADM-2 (normal) 1-34 Burroughs 1-34 NCR 1-35 Retries 1-36 Select specific station Using MCW ADM-2 1-16 Burroughs 1-15 NCR 1-17 Using sequence header ADM-2 1-16 Burroughs
INDEX Setting line parameters 3-1, 3-2 Shared access 3-2 Slave station 1-4, 1-6 SOH (Start of Heading) 1-8 START LINE request 3-43 Start of Heading (SOH) 1-8 Start of Text (STX) 1-8 START TRACE request 3-44 State machine 2-1 States Line 2-1 Major 2-2 States, line CONTROL 2-7 DISCONNECT 2-3 POLL 2-10 READ 2-13 SELECT-TEXT 2-16 Station Address 1-8 definition 1-5 Nonresponding 3-4 Supervisory 1-6 Tributary 1-6 Types 1-6 STATION CONTROL requests 3-45 Alter line 3-48 Disable station polling 3-47 Enable station p
INDEX WRITEREAD buffer Format 3-9 Request fields 3-9 Response fields 3-10 Writing applications 3-1 Closing the line 3-1 Controlling the poll/select list 3-1 Defining the poll/select list 3-1 Opening the line 3-1 Setting line parameters 3-1 Transferring data 3-1 Index-10