C28 6553 2_Telecommunications_Preliminary_Specifications_Dec65 2 Telecommunications Preliminary Specifications Dec65
C28-6553-2_Telecommunications_Preliminary_Specifications_Dec65 C28-6553-2_Telecommunications_Preliminary_Specifications_Dec65
User Manual: C28-6553-2_Telecommunications_Preliminary_Specifications_Dec65
Open the PDF directly: View PDF .
Page Count: 94
Download | |
Open PDF In Browser | View PDF |
File No. S360-30 Form C28-6553-2 Systems Reference Library IBM Operating System/360 Telecommunications: Preliminary SpecificatiDns This publication contains preliminary information on how to apply and use the IBM System/360 Operating System for remote message processing and how to use the control program for performinq the input/output operations of a data communications system. Guidance is provided for problem programming within the system. Descriptions of applicable macro-instructions, suggesting how, when, and where to use them, are also included. PREFACE' This publication contains preliminary information on planning and implementing a system for remote rr.essage handling and/or processing under the System/360 Operating System. Completion of a basic course in programming Computing System/360 is a prerequisite to using this publication. It is also required that the reader be familiar with the overall programming concepts and terminology introduced in the following publications: IBM System/360 Operating System: duction, Form C28-6534 IBM Gystem/360 Operating System: Assembler Language, Form C28-6514 IBM System/360 Operating Management, Form C28-6537 System: Data IBM System/360 Operating System: Control Program Services, Form C28-6541 It is suggested that the reader be familiar with the following additional publications: IntroIBM 2701 Data Adapter Unit, of Operation, Form A22-6864 PrinciEles IBM System/360 Operating System: Concepts and Facilities, Form C28-6535 IBM System/360 Operating System: Control Language, Form C28-6539 ~inor Job IBM 2702 A22-6846 Revision (December 1965) This publication is a minor revisicn of IBM System/360, Telecommunications, For~ C28-C553-1, and incor~orates Technic~l Newsletter N27-1233 into the publication. Information in this publication is still classified as preliminary. 2£erati~~ This publication was prepared for production using an IBM computer to update the text and to control the page and line format. Paqe-impressions for photo-offset printing were obtained from an IBM 1403 Printer using a special print chain. Copies of this and other IBM publications Branch Offices. can be obtained through IBM A form for reader's comments appears at the back of this publication. Address any additional comments concerning the contents of this publication to: IBM Corporation, Programming Documentation, Department 840, P.O. Box 9361, Raleigh, North Carolina 27603 © 1965.by Internati~nal Business Machines Corporation Transmission Control, Form CONTENTS INTRODUCTION • • • • .. • • • • • 7 Queued Telecorrmunications Access Method. • • • • • .. • • • • • • Inquiry processing. • . • • Data Collection • • • • • • • • Job Processing. • • • • • •• Message Switching • • • • • constructing a Message Control Program With the QTAM Language • • • Data Set Definition . . . . . . . . . Control Information. • • • • • • • Line Procedure Specifications • • • Message Processing :tvlacro-Instructions • • • • • • • . • 7 9 10 10 10 10 10 11 11 12 Basic Telecommunications Access Method • 12 QUEUED TELECOMMUNICATIONS ACCESS METHOD. • • • • . • • Data Set Definition. Data Control Block (DCB) Macro-Instruction • • • • . • OPEN and CLOSE Macro-Instructions OPEN Macro-Instruction • • CLOSE Macro-Instruction.. . 13 • • 15 • • • • . • •• 16 22 23 24 Message Control Task • • • • • • Control Information • • • • • Terminal Table Specifications. Terminal Table (TERMTBL) Macro- Instruction • • • • . • • • Terminal Table Optional Field (OPTION) Macro-Instruction. • • • Terminal Table Entry (TERM) Macro-Instruction • • • • •. Terminal Table List (LIST) Macro-Instruction • • Terminal Table Process (PROCESS) Macro-Instruction • • • • .. • • . Polling List Definition. • • • • • Polling Table Definition (POLL) Macro-Instruction • • .. • •• Buffer Assignment. • .. • BUFFER Macro-Instruction • • • Data Set Initialization Macro-Instructions • .. • • . • • Line Procedure Specifications • • Delimiter Macro-Instructions. • • Line Procedure Specification Start (LPSTART) Macro-Instruction .. .. • • • • Receive Segment (RCVSEG) Macro-Instruction .. • • • • • • . Receive Header (RCVHDR) Macro- Instruction • • • . . • • • End Receive (ENDRCVE) ~acro-Instruction • • • Post Receive (POSTRCVE) Macro-Instruction • • • • • 25 26 26 26 27 27 28 28 29 30 30 30 31 31 33 34 34 35 35 35 Send Header (SENDHDR) Macro-Instruction • • . • Send Segment (SENDSEG) Macro-Instruction • • • • End Send (ENDSEND) Macro-Instruction • • . • Post Send (POSTSEND) Macro-Instruction . • • . • . . . Functional Macro-Instructions . Receive Functional Macro-Instructions • . • Sequence In (SEQIN) Macro-Instruction • • • • • • • • SOURCE Macro-Instruction . •• Routing (ROUTE) Macro-Instruction • • . End-of-Address (EOA) Macro-Instruction . • · DIRECT Macro-Instruction • • Polling Limit (POLLIMIT) Macro-Instruction • • • . · Halt Receive (BREAKOFF) Macro-Instruction • • • · Receive or Send Functional Macro-Instructions • .. • · Date Stamp (DATESTMP) Macro-Instruction . • • . • • . · Time Stamp (TIMESTMP) Macro-Instruction • • · SKIP Macro-Instruction . · Message Mode (MODE) Macro-Instruction • End-of-Block (EOB) Macro-Instruction . End-of-Block and Line Correction (EOBLC) Macro-Instruction • . Logging (LOGSEG) Macro-Instruction • • • • Message Type (MSGTYPE) Macro-Instruction • . • Translate (TRANS) Macro-Instruction • Send Functional Macro-Instructions • • PAUSE Macro-Instruction. • • Sequence out (SEQOUT) Macro-Instruction • . • • . • • . Error 3andling Functional Macro-Instructions . . • · Cancel Message (CANCELM) Macro-Instruction • • · Error Message (ERRMSG) Macro-Instruction . . · . Intercept (INTERCPT) Macro-Instruction • • · REROUTE Macro-Instruction. . Message processing Tasks • • Queue Access. • • • . • • • GET Macro-Instruction. • PUT Macro-Instruction. RETRIEVE Macro-Instruction . 35 35 35 36 36 36 36 36 37 37 37 38 38 38 38 38 39 39 39 40 40 40 40 41 41 41 42 42 42 44 44 . • 44 · . 44 • • • 45 45 • 46 3 CONTENTS (~ontinued) Release Intercept (RELEASEM) Macro- Instruction • • • . • • Telecommunications System Status. Copy Polling List (CPYPL) Macro- Instruction • • • • • • Change Polling List (CHNGPL) Macro-Instruction. Start Line (STRTLN) Macro-Instruction. Stop Line (STOPLN) Macro-Instruction •••• Copy Terminal Table (COPYT) Macro-Instruction • • • • • Change Terminal Table (CHNGT) Macro-Instruction • • • • Copy Queue Status (CPYQ) Macro-Instruction • • • • • • 47 48 48 48 49 49 54 Message Processing Task Applications . • 55 Data Collection Application • . . 55 55 Message Switching Application • 56 Inquiry Application • • • . • • • 57 Operator Control. • • • • • • • • 57 Remote Stacked Job Application. • Summary Charts • • • • • • • • • • • 59 EASIC TELECOMMUNICATIONS ACCESS METHOD . 62 Telecommunications System Specif ica tions. • • • • • • • • Data Control Block (DCB) Macro-Instruction • • OPEN Macro- Instruction '. • 4 WAIT and WAITR Macro-Instructions. CLOSE Macro-Instruction. 47 47 62 64 · 65 Message Control. • • • • • • . · 65 Polling • • • • • • • • • • 66 READ Macro-Instruction • 66 Addressing.. . . . . . . 67 WRITE Macro-Instruction. • • 68 Answering • • • . • • • • • • • • 69 Reset (RESEI'PL) Macro-Instruction • • • 69 69 Terminal List Structures. Direct Polling and Addressing Li sts • • • • • • . • • • • • • • 69 Dialing and Answering Lists. . • • 70 Define Terminal List (DFTRMLST) Macro-Instruction • • • • . • . · 72 Change Terminal Entry (CHGNTRY) Macro-Instruction · 72 Buff ering • • • . • • • • • 73 Error Handlino. • • • • • • 73 r'ree Buffer (FREEBUF) Macro-Instruction . • · 74 APPENDIX A: QUEUED TELECOMMUNICATION ACCESS METHOD SAMPLE PROBLEM. • . 75 System Configuration. • • • • • • . . 75 APPENDIX B: BASIC TELECOMMUNICATIONS ACCESS METHOD SAMPLE PROBLEH. System Configuration. • 83 • 83 INDEX. • 87 62 64 • . • • • • • • . • ILLUSTRATIONS Figure 1. Telecommunications System Conceptual Diagram. • • • • • . Figure 2. Inquiry Application Simplified Block Diag~am. • • • • Figure 3. Telecommunications Access Method - Message Flow Diagram • • • • • Figure 4. Message Buffer Formats • • Figure 5. Header and Text Segment Relationships in a Queue. • • • • • Figure 6. Communications Line Error Half-Word As Interrogated by Error Mask. • • • • • • • • • • • • • • • Figure 7. Message Priorities 'Within a Queue • • • • • • • • • .. • • • • • • • Figure 8. Polling List Formats • • . • • Figure 9. Terminal Table Entry Formats= Message Flow ~ = Control Flow Task A Routine No Process Message Place Reply Branch I I I I I I I I IL _______________________________________________________________________________________ JI Figure 2. 8 Inquiry Application - Simplified Block Diagram vided by the user) to one or more message queues in main or direct--access :"torage. Message processing programs take them from there as in ordinary processing. When a message is to be sent to a terminal by a processing program, it is placed on an output queue in main or direct-access storage. The message is then sent by the message control program to its destination. In the case of message switching, a message processing program may not be required -the message control program can route an inbound message directly to an appropriate output queue. A telecommunications job can be entered into the system in the same way as any other job. The job scheduler of the operating system, therefore, can be used to allocate any input/output devices and direct-access storage space required for message logs and message queues, and to prepare and schedule the job for processing. A message control program and any message processing programs associated with it can be entered into the system as separate jobs or they can be combined and entered as a single job. With some operating system configurations, more than one job can be run concurrently. Therefore, other jobs can share the physical resource~ of the system with a telecommunications job, and thereby improve efficiency, particularly during periods when message traffic is low. A message control program can be designed for one or more types of applications including inquiry (or transaction) processing, data collection, job processing, and message switching. Each of these is briefly described below followed by a brief explanation of the procedure required to construct a message control program for one or more of the applications. INQUIRY PROCESSING Inquiry processing is an application in which inquiries in the form of messages are received from a number of remote terminals and are routed by the message control program to one or more input queues. The m~~sages are picked up from the input queue and processed by a message processing program. After the message is processed, a reply can be sent to the terminal from which the inquiry originated or to any other terminal. The reply is placed on an output queue by the message processing program and transmitted to the terminal by the message control program. With this type o~ application, the system can directly participate in and control d variety of cow~ercial and scientific activities as they are carried on. For example, the system may be used to service, from a central location, a geographically dispersed banking activity. In such a system, master files that contain account records for thousands of depositors are stored in direct-access storage. By entering pertinent data into the system, tellers at remote locations can check balances, update passbook records, and handle similar transactions, all within a few seconds. The message processing program that responds to inquiries must be designed for the specific application. In designing the program, all of the facilities of the operating system are available including the language processors, the service programs, and the data and task management facilities. The processing of messages can be performed sequentially as a single task or more than one message can be processed concurrently. Figure 2 is a simplified block diagram of an inquiry application in which the messages are processed as two separate tasks. As the routine for task B is processing one message, the routine for task A may be processing another message while the next message is being obtained from an input queue and a reply to a previous message is being placed on an output queue. In many inquiry applications, a message processing program requires access to data and routines stored in local direct-access storage. In such an application, it would be possible to process several messages concurrently as separate tasks. Consequently, as the processing of one message is delayed while access is being gained to direct-access storage, another message could be processed. By processing several messages concurrently, the total message throughput of the system can be significantly increased. Since many of the messages in such an application would often require identical processing, a single program in main storage could be used to perform each of several concurrent tasks, and thereby save main storage space and program loading time. Because the message control program and the message processing program are executed as separate tasks in an inquiry application, an System/360 Operating System control program is required that can control concurrently more than one data processing task. The general-purpose, multiple taskmanagement facilities of the control program are particularly appropriate to this type of application. They enable the system to be used for many high-mess agevolume applications that would otherwise be Introduction 9 imfractical without control program. a specjally designed MESSAGE SWITCHING Data collection is an application in which messages received from one or more terminals are collected and stored for later processing. Data collection can be performed completely by the message control program. Messages to be collected can be routed to an input queue on a direct-access storage device or logged on a sequential storage device, such as magnetic tape. Message switching is an application in which messages received from one remote terminal are sent to one or more other remote terminals. Like data collection, message switching can be performed completely by the message control program. When an incoming message is to be switched, it is routed to an output (destination) queue instead of an input queue. If necessary, the messages can be logged and functions, such as time and date stamping, sequence numbering and checking, and destination code validating, can be performed by the message control program before the message is transmitted. JOB PROCESSING CONSTRUCTING A MESSAGE CONTROL PROGRAM WITH THE QTAM LANGUAGE DATA COLLECTION Job processing is an application in which jobs like those that are entered into the system locally are received from one or more remote terminals. The jobs may be entered at the remote location via input devices such as keyboards, punched card readers, and tape units. output from a job can be directed to the terminal from which the jot originated, transmitted to one or more other terminals, printed or otherwise processed by the operating system, or cataloged and stored (for later retrieval) in the operating system library. Data which is processed by the job can either be a part of the job itself or can be retrieved from the system library. All of the operating system facilities, such as the language processors, the service programs, and the data, job, and task management facilities, that are available to the local programmer are also available to the programmer at the remote location. The operating system, in fact, is specifically dtsigned for use at remote locations as well as for local use. The data cataloging and management facilities of the system, for example, enable individuai frogrammers to compile, store, test, update, recompile, link, and execute programs within the confines of the operating system without resorting to the use of punched cards or without specific knowledge of the input/output configuration of the system. Jobs that are received frow. remote locations are placed by the message control frogram on an input queue in direct-access storage in a format acceptable to the job scheduler. The actual processing of the jobs can be performed later, or the jobs on the input queue can be read and scheduled ty the job scheduler as other jobs are teing added to the input queue. 10 To construct a message control program tailored to one or more specific applications, a programmer must provide three general types of information: data set definitions, control information, and line procedure specifications. Each type of information is described in the following sections. Data Set Definition A data set must be defined for each data set referred to by the message control program. This is done by means of the data control block (DCB) macro-instruction and data definition (DD) control statements that are entered into the system when the telecommunications JOD is scheduled for execution. A DCB macro-instruction must be provided in the message control program for the following: • Each group of communications lines that are to be referred to by the message control program. Each line group can consist of any number of communications lines provided they have certain characteristics in common. • The combined input and output queues that are to be established in directaccess storage. If the input and output queues are in main storage, a DCB macro-instruction is not required for the queues. • Each message log, if any. A DCB macro-instruction must also be provided in each message processing program, if any, for a queue from which messages are to be obtained and a queue to which messages are to be sent. control Information In addition to the data set definitions, the programmer must supply, in the form of macro-instructions, control information that is used by the message control program to control the sending and receiving of messages. The control information consists of the following: • The code name and address of each terminal together with related information, such as any special distribution lists for sending a message to more than one terminal. • The code name of each queue to which incoming messages are to be sent. The messages can be either in main or direct-access storage. If extremely fast response is required, an option can be specified which causes messages for one or more input queues to be routed directly to the processing program, bypassing the direct-access storage queues. • A polling list for each line that indicates the order in which the terminals are to be polled. • The size and number of main storage buffers that are to be used for transmitting and receiving messages to and from the terminals, and for enqueueing and dequeueing messages. Buffers are automatically and dynamically allocated from a common buffer pool in accordance with immediate requirements. Line Procedure Specifications The procedure to be followed by a message control program, when operating upon messages, is defined by a series of macroinstructions called a line procedure specification (LPS). A line procedure specification is required for each communications line group unless similar procedures are to be followed in servicing the messages of more than one line group. Two types of macro-instructions are used to specify a line procedure: functional and delimiter. The functional macroinstructions, in general, perform specific operations on messages. The delimiter macro-instructions perform initialization procedures, and classify and identify sequences of functional macro-instructions so that control can be directed to a required sequence based on whether a message is being sent or received and whether the complete message or just the message header is to be operated upon. The operations that can be performed by the functional macro-instructions include the following: • performing message editing functions, such as code translating, time and date stamping, sequence checking, source and destination code validating, sequence numbering, and message length checking. • Routing messages to specified queues based upon destination codes. • Maintaining a log of messages on an auxiliary storage device. • Checking for errors in message transmission. • Initiating corrective action when an error is detected. • Rerouting, canceling, or intercepting transmission of messages in error. The functional macro-instructions in a line procedure specification are divided by delimiter macro-instructions into two major sections: a receive section consisting of macro-instructions that are to operate on incoming messages and a send section consisting of macro-instructions that are to operate on outgoing messages. Each major section is further subdivided into sections consisting of macro-instructions that are to operate on the header portion of a message and macro-instructions that are to operate on both the header and the text portions of a message. A third optional subsection may also be included in each major section, which consists of functional macro-instructions that perform certain end functions such as testing for errors and performing error procedures. Functional macro-instructions in a message header subsection that operate on specific fields of the message header can be arranged in any order. Therefore, the programmer bas complete freedom in defining the order of the message header fields. Some of the functional macroinstructions are designed for use in either the send-section or the receive section, or both. Most of the macro-instructions are optional. Many of these can operate either upon all messages unconditionally or selective messages, as indicated by a character code in the message itself. In addition, any optional portion of the line procedure can be bypassed for a particular message based on a character code in the message. A programmer can, if he chooses, use the assembler language to insert his own inline coding or his own macro-instruction into the line procedure specification, either as a substitute for an optional macro-instruction provided by IBM or in order to provide additional functions. The programmer also has the option of speciIntroduction 11 fying that his own code conversion tables be used.to translate messages instead of the o~tional code conversion tables sup~lied by IBM. An of tiona I macro-instruction is provided that can be used to direct control, at different points in the line procedure specification, to an out-of-line subroutine supplied either by IBM or by the user. The transfer of control can be either unconditional or conditional depending on the presence of a character code in a message. IBM routines, which perform the following functions, are provided for use with the optional macro-instruction: • Assigning priority to a message based on an alphameric character in the message header. The priority order of the characters that define priority correspond to the standard collating sequence. • Holding the communications line open until a complete message has been received and a reply has been sent. This subroutine may be used for a "conversational" type of application. • Routing message segments to their destination before the entire message has been received. MESSAGE PROCESSING MACRO-INSTRUCTIONS In addition to the macro-instructions that are provided for in the message control program, a set of macro-instructions is provided for use in a message processing program or other processing programs. The following macro-instructions are included in the set: • The GET macro-instruction, which obtains the next sequential record, message segment, or message from the input queue. • The PUT macro-instruction, which places a message, message segment, or record 12 into the output queue. • The RETRIEVE macro-instruction, which retrieves a specific message segment frem ~ specific queue. • The STOPLN and STRTLN macroinstructions, used to deactivate and activate, respectively, a communications line. • Macro-instructions which can be used to co~y a terminal table, a ~olling list, or a queue status report list into a work area of main storage, as well as macro-instructions which can be used to change entries in the terminal table and the polling list. These macroinstructions can be used to modify the status or operating characteristics of the message control program. They may be used in a program that receives and analyzes operator messages entered via a local terminal. BASIC TELECOMMUNICATIONS ACCESS METHOD The BTAM facilities are designed chiefly to provide the basic tools required to construct a telecommunications program. These include facilities for creating terminal lists and performing the following operations: • • • • Polling terminals. Answering. Receiving messages. Allocating buffers dynamically. o Addressing terminals. • Dialing. • Writing buffer chains. • Changing the status of terminal lists. BTAM may be used instead of QTAM at installations that have few communications lines and limited requirements for inquiry ?rocessing or data collection. It also may be used at a large Tele-processing installation where the user chooses to construct his own message control program rather than use the one provided with QTAM. QUEUED TELECOMMUNICATIONS ACCESS METHOD QTAM is one of the data management facilities provided in System/360 Operating System. It is specified as a high-level macro-instruction language that enables operation of communications lines in a ITanner similar to directly attached input/output devices. Selection of appropriate instructions within QTAM provides a that performs the following: o o • o o • • • • • o o o o Queues must be specified for various processing tasks and destination terminals. These queues are the primary connection between the user-supplied message processing tasks and the QTAM message control task. Message flow (Figure 3) can be considered in the following seven steps: macrosystem Polls terminals (contacts remote terminals to request that they send messages). Receives messages from terminals. Addresses terminals (contacts terminals to request that they receive messages). Sends messages to terminals. Provides storage allocation for message buffering. Performs such message editing functions as code translating, time and date stamping, sequence checking, source and destination code validating, sequence numtering, and message length checking. Routes messages to specified queues tased upon destination codes (a queue may te used for a processing task, a terminal, or a group of terminals). Queues messages either on a directaccess storage device (to provide for handling long messages without requiring large buffers) or in main storage. Maintains a log of messages on an auxiliary storage device. Checks for errors in message transmission. Initiates corrective action when an error is detected. Reroutes messages. Intercepts transmission of messages in error. Cancels messages that contain an error. Message flow~ as controlled by QTAM, is illustrated in Figure 3. It involves input/output buffering and message queueing. Euffering is dynamically handled ty QTAM. A user need only specify the number of buffers and the length of each tuffer to be used. (Refer to "Buffer Assignment.") If the supply of buffers is depleted during system operation, an error indication on one or more lines will result. For this reason, a user must specify sufficient buffer space to meet his system requirements. 1. 2. 3. 4. The input message, consisting of message header and text, is prepared at the remote source terminal. The header portion contains source terminal code, destination codes, message sequence number, and message priority information. When the source terminal is polled, the message is sent to the computer via a communications line. The variable length message enters the computer and is placed in userdefined, fixed-size buffers. As many buffers as are necessary to handle the message are "filled. QTAM attaches a header prefix that contains control information (24 bytes) and queueing information (8 bytes). The header prefix and the message header must all be contained within the first buffer. Each of the remaining buffers assigned to the message has a text prefix that contains queueing information (8 bytes) and control information (14 bytes). These buffers also contain the message text. As soon as each buffer is filled, QTAM performs such user-selected functions as code translating, routing, time and date stamping, and sequence checking. When a message requires additional processing, each segment is sent to a process queue. This queue may be either in main storage or on a directaccess storage device. The user's message processing program can issue a GET macro-instruction to obtain messages, segments, or records from the process queue. The message ottained by the processing program contains a modified prefix (4 bytes). (Refer to "GET Macro-Instruction.") This message can then be frocessed. A user in his processing program can send replies by forrring a message with the 4-byte prefix and by issuing a PUT macro-instruction. The message is then placed on an output (destination) queue and handled as in message switching (Step 5). Queued Telecommunications Access Method 13 r---------------------------------------------------------------------------------------, Output Message Input Message Message Text Message Text Communications lines and Terminals Main Storage CD CD Input Buffer Message Text Message Text Message Text Message Text 8 GET/PUT Prefix Mai n Storage Direct-Access Device o Figure 3. 5. 6. 7. GET Work Area I Message Text Switched Messages PUT Input Queue Message Text Message Text Message Text Message Text Telecommunications Access Method - Message Flow Diagram In message switching, each message segment is routed to a destination queue. This queue may be either in main storage or on a direct-access storage device. Message segments are retrieved from the output queue on a first-in-firstout basis within priority groups. These segments pass through QTAM for such functions as code translating, tirr.e and date stamping, and logging. The segment is then ready to be sent to the terminal. Message segments are stripped of header and text prefixes and sent to the terminal as one continuous message. In order to communicate with QTAM, message processing programs must use the GET, PUT, and RETRIEVE macro-instructions de14 Output Buffer scribed under "Message Processing Tasks." Other fUnctions of the user programs for message processing may be written using the Assembler Language (refer to IBM Operating System/360: Assembler Language> or a higher level language compiler that produces an equivalent object code. There may be one or more individual message processing tasks. A message processing task can obtain a message from a queue, process the message, and place a message or result in an output queue. The programmer need not be concerned with the functions being performed by the message control task and the QTAM device handling routines. The message processing task, however, cannot be executed without the message control task. Problem programs may be written as if they were using sequential input/output devices. Message processing programs that use directly attached input/oQtput devices may use the macro-instruction language of the appropriate access method. System status macro-instructions are provided to enable a user to obtain information that concerns the terminal polling sequence, the terminal table entries, and the present status of message queues. Macro-instructions can be used in a message processing task to extract system status information and to change the system status. In specifying QTAM for his system, the user must provide information in the following areas: • Data set definition - The user must use macro-instructions provided by System/360 Operating System and QTAM control statements to define the data sets used in his telecommunications system. • Control information The user must provide detailed information, in the form of tables and lists, concerning the terminals in the system, the desired sequence of polling for each line, the queueing technique, and the message buffers provided. • Message control task - The user must select and place into order macroinstructions provided by QTAM to create the message control task. These macroinstructions perform the message code translating, the editing, the format checking, the logging, and the routing functions. • Message processing tasks The user must write the programs necessary to meet his requirements. These programs operate as one or more individual tasks. Wherever macro-instructions are described in this publication, the following conventions are used to illustrate the coding format: • Upper case letters and punctuation marks (except for the brackets and braces described) represent information that rrust be coded exactly as shown. • Lower case letters and words are generic terms that represent information to be supplied; i.e., a substitution must be wade when coding a parameter or option so represented. • Information within brackets [] represents an option that can be either included or omitted entirely, depending upon program requirements. • When options are enclosed in braces { } one of the enclosed options must be included, and the others omitted according to the programmer's discre- tion. One of several options enclosed in the braces may be underlined, indicating that the operating system automatically assumes this option if the parameter is omitted. • An ellipsis ( .•. ) indicates that a variable number of items may be listed. DATA SET DEFINITION Before a telecommunications system can use QTAM, the data sets of the system IT.ust be specified. A description of the four types of data sets that can be associated with QTAM and the means by which they may be defined follows. Four types of data sets are supported directly by the QTAM message control task: • Data sets that consist of messages transmitted via communications lines. One or IT.ore data sets of this type are required. • Data sets that consist of message queues on direct-access storage devices (IBM 2302 Disk Storage, IBM 2311 Disk Storage Drive, and IBM 2314 Direct Access Storage Facility). The requirement for this type of data set depends on the requirements of the user. • Data sets that consist of message logs on a secondary storage device. The requirement for this type of data set depends on the requirements of the user. • Data sets that consist of queues of messages. This type of data set is used in the message processing tasks. Available sources for information concerning a data set include the data control block (DCB) macro-instruction, the data definition (DD) statement, and the data set label (DSL). The DCB macro-instruction provides for assembly time definition of a data control block. This data control block is the primary source of data set characteristics and control information for the QTAM routines. The DCB IT.acroinstruction reserves space for the data control block and assigns values to those fields for which the user provides parameters. Note: Information provided in the DCB macro-instruction takes precedence over information provided in the DD statement or the DSL. For general information concerning the DD statement and the DSL, refer to the publications IBM Operating System/360: Job Control Language and IBM Operating System/360: Data Management. Queued Telecommunications Access Method 15 A data control block provides control information for a communications line group, where the line group consists of any number of lines with the following characteristics: • All lines are associated with the same type of terminal devices. (For this purpose, IEM 1050 and IBM 1060 Data Communications Systems may be treated as the same device.) • All lines require the same number of buffers to be requested before they are actually needed. • All lines share the same line procedure specifications (LPS). o All lines operate under the same relative priority specification~ o All lines operate with the same polling interval. • The relative address of the deviceaddress field is the same for all terminal table entries associated with the lines. • None of the lines is defined in another line group. Certain information that describes a data set must be su~plied through DD statements. Each communications linE group, direct-access queue and message log requires device allocation information. In addition, the direct-access queue requires space allocation on a direct-access storage device. Each communications line group requires one or more DD statements that specify which communications lines are to constitute that line group. This is specified in the UNIT operand of the statement. It may be specified in either of two ways: 1. //ddname DD UNIT=(name,ri) where name is the name of a list that was created at system generation time and n is the number of lines in the list. This list contains a description of each line. The order in which the lines appear in the list determines the relative line number for each. 2. //ddname DD UNIT=(name1,n1) DO UNIT=(name2,n2) DD UNIT=(name ,n ) where x lists are named and are concatenated in the order in which they are specified, and where n is the number of lines defined in each list. 16 If direct-access queueing is to be used, the user must acquire space for the queue (using the DD statement). The user must also execute a utility program so that the acquired space may be used for a fixed record length (equal to the buffer size to be used by QTAM). This data set must then be cataloged and identified to the message control task on the DD statement associated with the direct-access queue.· One input data control block must "be created for each queue from which messages are to be obtained by the message processing tasks. To obtain a message from a queue, the message processing task refers to the data control block associated with that queue. At least one output data control block must be created for each message processing task from which messages are to be sent. Since all destinations may be referred to by using one data control block, the need for additional data control blocks for output is eliminated. Data Control Block 1Q I I I Identifies the data set organization as that of al processing program message queue for telecommunications. I ~------------+----------+---------------------------------------------------------------~ I MACRF=G I I I I I IG I I Specifies that access to the queue is to the GET macro-instruction. be gained I withl I ~------------+----------+---------------------------------------------------------------~ I BUFRQ=n I I I I I I C, E I I I I I In I I Specifies the number of buffers to be read in advance I (from GET macro-instruction), where nS255. I I I I INote: BUFRQ=O will be assumed if a value is not provided I Ithrough the DCB macro-instruction or an alternate source. I ~------------+----------+---------------------------------------------------------------~ I SOWA=n I I I C, E I I In I I I I I I I I I Specifies the size in bytes of the user-provided input I workarea, where nS32,767. If this parameter is notl provided through the DCB macro-instruction or an alternate I source, the jcb will be terminated. I ~------------+----------+---------------------------------------------------------------~ I I I I ~RECFM=G}~ RECFM=S RECFM=R I I C, E I I I I I I I I I I I I I I I I I G, S, or R I I Specifies the ~ork unit as ~ollows: I I G - message (defined by the end-of-transmissionl I character) . I I S - segment (defined by the buffer size). I I R - record (defined by the carriage return, line feed, I I combined carriage return-line feed, or end-of-blockl I character) . I I I INote: RECFM=S will be assumed if no value is provided tnroughl Ithe DCB macro-instruction or an alternate source. I ~------------+----------+---------------------------------------------------------------~ I addr I I I Specifies the symbolic address of a user-provided routine I I I to be entered if no messages are available when a GET I I I macro-instruction is issued. If no value is provided I I I through the DCB macro-instruction or an alternate source, I I I a WAIT macro-instruction will be implied. I ~------------+----------+---------------------------------------------------------------~ I TRMAD=addr I E I addr I I I I Specifies the symbolic address of a user-provided area tol I I I contain the terminal name. When a GET macro-instruction I is issued, the source terminal name will be placed at thel I I I I I I specified address by QTAM. If the parameter is notl I I I provided through the DCB macro-instruction or an alternate I I I I source, the jeb will be terminated. I I EODAD=addr I I I I I I ~------------+----------+---------------------------------------------------------------~ I SYNAD=addr I I IE I I I I Specifies the symbolic address of a user-provided routine I to be entered if a work unit is longer than the workareal I provided for input. If the parameter is not provided I I through the DCB macro-instruction or an alternate source, I I I I I the remainder of the work unit will be supplied when thel I ____________ I __________ LI _______________________________________________________________ next GET macro-instruction is issued. L JI ~ 20 I addr I I I I Table 5. Message processing Task output DCB Macro-Instruction Keyword Parameters r------------T----------T---------------------------------------------------------------, I I Alternate I I I Keyword I Parameters I Source I Code I I I ~ Parameter Description ~------------+----------+---------------------------------------------------------------~ I IDDNAME=name I I I I I I I I name I I I I I I I I DSORG=MQ I I I I I I MACRF=P I I I I I I I I Specifies the name that appears in the DD statement I associated with the data control block. (Refer to thel publication IBM System/360 Operating System: Job Control I Language.) I J I I I I ~------------+----------+---------------------------------------------------------------~ I I MQ I I I I I I Identifies the data set organization as that of a process-I ing program message queue for telecommunications. I I I I I I I I IP I I I I I C, E I I I I I I In I I I I I I I ~------------+----------+---------------------------------------------------------------~ I Specifies that the queue is to be referred to by the PUTI macro-instruction. I I ~------------+----------+---------------------------------------------------------------~ I I SOWA=n I I I I I I I Specifies the size in bytes of the user-provided output I workarea, where n~32,767. If this parameter is not I provided through the DCB macro-instruction or an alternate I source, the j cb will be terminated. I I ~------------+----------+---------------------------------------------------------------~ RECFM=G}~ c., E G, S, or R [{ RECFM=S RECFM=R Specifies the work unit as follows: G - message (defined character) • by the end-of-transmission S - segment (defined by the buffer size). R - record (defined by the carri~ge r~turn, line feed, combined carriage return-line feed, or end-of-bloCk character) • Note: RECFM=S will be assumed if no value is provided through Ithe DCB macro-instruction or an alternate source. I ~------------+----------+---------------------------------------------------------------~ I TRMAD=addr ____________ E ~ addr I I Specifies the symbolic address of a user-provided area tol contain the terminal table entry name. If the parameter I is not provided before the data set is opened, the jobl will be terminated. When a PUT macro-instruction isl issued, the destination terminal name must be provided atl the specified address by the user. The name must bel defined in a terminal table entry within the message I control task. (Refer to the TERM, LIST, and PROCESS I macro-instructions described under "Terminal Table Speci-I fications.") I I __________ L ______________________________ _________________________________ J Queued Telecommunications Access Method 21 Examples: The DCB macro-instruction that defines the parameters of a data control tlock associated with a communications line group (Table 1) could be: r---------T---------T---------------------, I Name I Operation I Operand I ~---------+---------+---------------------~ IGROUPONE IDCE IDDNAME=DDGROUP1, I I I I DSORG=CX, I I I I I CPOLL= (POLLINE1, I I I I POLLINE2), I I IMACRF=(G,P),BUFRQ=3, I I I ICPRI=E,ACLOC=25, I I _________i I _________ i ICLPS=LPS1 L _____________________ JI r---------T---------T---------------------, I Name I Operation I Operand I ~---------+---------+---------------------~ IPPMQIN I I IDCB I I I I I IDDNAME=PRCIN, I I I DSORG=MQ, INACRF=G, I I I BUFRQ=2,SOWA=300, I I I I RECFM=G, I I I TRMAD=SOURCE, I _________ I _________ i I SYNAD=ERROR L _____________________ JI ~ The DCB macro-instruction that defines the parameters of a data control block associated with an output message procEssing queue (Table 5) could be: r---------T---------T---------------------, I Name IOperation I Operand I The DCB macro-instruction that defines the parameters of a data control block associated with a direct-access storage device to be used for message queueing (Table 2) could be: ~---------+---------+---------------------~ IPPMQOUT IDCB IDDNAME=PRCOUT, I I I I I DSORG=MQ, I I IMACRF=P,SOWA=300, I I I IRECFM~G, I I _________ i I _________ i ITRMAD=DESTN L _____________________ JI r---------T---------T---------------------, I Name I Operation I Operand I ~---------+---------+---------------------~ I QUEUE IDCB IDDNAME=DDFILE, I I I I I DSORG=CQ, I _________ I _________ i I MACRF= ( G, P) L _____________________ JI OPEN AND CLOSE MACRO-INSTRUCTIONS ~ The DCB macro-instruction that defines the parameters of a data control block associated with a message logging device (Table 3) could be: r---------T---------T---------------------, I Name I Operation I Operand I ~---------+---------+---------------------~ I MSGLOG IDCE IDDNAME=DDLOG, I I I I I DSORG=PS, IMACRF=(PM),RECFM=V, I I I I I IBLKSIZE=100, I I I IBFTEK=SMP, I I I I BUFNO=3,BUFL=100, I I _________ I _________ i IDEVD=TA,DEN=l L _____________________ JI ~ The DCB macro-instruction that defines the parameters of a data control block associated with an input message processing queue (Table 4) could be: 22 To initialize a data set (make it accessible by a problem program), an OPEN macroinstruction that specifies the data control block associated with the data set must be issued. In certain cases, the OPEN macroinstruction must also specify whether the data set is being opened for input or output. When the OPEN macro-instruction is issued, the following general functions will be performed: • Completion of the initialization of the data control block. • Acquisition of the access method subroutines. • Acquisition of main storage for internal control blocks required by the access method. To terminate use of a data set, the CLOSE macro-instruction is issued. The following general functions will be performed: • Releasing main storage acquired at open time. • Releasing subroutines acquired at open time. • Clearing the data control block fields which were initialized at open time. OPEN Macro-Instruction r--------T---------T----------------------, IName The OPEN macro-instruction makes the following ready for use: queues on directaccess storage devices, data sets on logging devices, processing queues, and communications line groups. Each of these data sets must be opened before any reference can be made to it. This macroinstruction, when used, has the following effects: • If a communications line group data control block is specified, the OPEN macro-instruction causes all lines in the group to be prepared for operation. The actual activation of the lines for message transmission occurs automatically unless IDLE is specified as the second entry in the sublist in the OPEN macro-instruction for the communications line group DCB. If the line group is specified as an input, or input and output line group, and the IDLE operand is not included, the OPEN macro-instruction initiates polling on those lines in the line group that have an active polling list with terminal entries. (A polling list is specified by the POLL macro-instruction; terminal entries mayor may not be included. An active polling list is one in which the second byte of the list is a non-zero character.) If IDLE is specified, all of the lines or particular lines in the line group can be subsequently activated by one or more STRTLN macroinstructions; however, STRTLN must not be included in the Line Procedure Specification section of the rressage control task macro-instructions. The user can also inhibit polling on a line by changing the second byte of the polling list for that line to zero before issuing the OPEN (see "Change Polling List •• = Data Flow CHNGT PUT = Program Flow l PUT To Local Term Q _______________________________________________________________________________________ J Figure 15. 2. 3. 4. 5. 6. 58 Operator Control other than its name. No special processing of job output is required other than translating; however, the user may su~ply any functions that he desires within the SEND LPS structure. The QTAM message control task is introduced into the system through the normal input stream. A Tele-processing reader/interpreter, which uses input from the process queue, is attached in the normal manner for a reader. (Refer to the publication IBM System/360 Operating System: Operating considerations.) Remote stacked jobs are entered through any of the terminals attached to the system. Normal job input format must be used, except that nonsignificant columns at the end of cards may be omitted; however, the records must be formed into 80-character card images if this is done. The end of a remote stacked job input is indicated by an end-oftransmission. The job is scheduled for execution by the job scheduler. A Tele-processing output writer, which dispatches output to a terminal through QTAM. is attached in the nor- mal manner for a writer. (Refer to the publication IBM System/360 Operating System: Operating Considerations.) The following considerations noted: 1. 2. 3. should be QTAM must be in the system whenever a Tele-processing reader/interpreter or a Tele-processing output writer is attached, or when a job specifying a terminal is executed. QTAM can stack remote jobs indefinitely; i.e., a Tele-processing reader interpreter need be attached only when execution is desired. The Tele-processing reader/interpreter and the Tele-processing output writer can be detached in any of the following ways: • By a command from a remote terminal, which is routed to the process queue for the reader/interpreter. • By a command from the system console. • By a command to another reader/ interpreter. SUMMARY CHARTS instructions. The functional macroinstructions are identified with the appropriate delimiter macroinstructions that they can follow. f'.1acro- instructions, which are d elin:iters, are indicated in the last column of the table. • Message control macro-instructions for specifying QTAM control information (Table 12), which includes those macroinstructions needed to provide detailed information in the form of tables and lists and to provide buffers for message handling . • Message processing macro-instructions (Table 13), which includes those macroinstructions that may be specified within the user's message processing programs to communicate with the message control task. These macroinstructions are separated into queue access and telecommunications system status categories. Summary charts list all macroinstructions that can be used with QTAM. They show where each macro-instruction can be used and note any restrictions that might affect their use. The macroinstructions are listed in alphabetical order within each chart so that they may be used for reference. The summary charts are divided into the following categorized macro-instruction charts: • Telecommunications system specification macro-instructions (Table 10), which include those macro-instructions that must be specified for both the message control and message processing tasks. • Message control macro-ipstructions for specifying line procedure specifications (Table 11). This table lists all the delimiter and functional macro- Table 10. Telecommunications System S?ecification Macro-Instructions r-----------------T---------T----------------------------------------T-------T----------, \ \ Name \ \ \ \ Operation I Operand \ \ \Message\Message \ \ Control \ Processing \ \Task \Task \ ~-----------------+---------+-----------------------------------~----+-------+----------~ \ [symbol] \ CLOSE \ (dcbname:1." ••• dcbnamen) \ \ \ \ \ x \ \ x I \ \ I I I I [,{MF L }] I MF (E,listname) I \ \ I \ I ~-----------------+---------+----------------------------------------+-------+----------~ Idiskqueue dcbnamelDCB Ikeyword parameters I x I I ~-----------------+---------+----------------------------------------+-------+----------~ Ilinegroup dcbnamelDCB I keyword parameters \ x I I ~-----------------+---------+----------------------------------------+-------+----------~ Ilog dcbname IDCB Ikeyword parameters I x I I ~-----------------+---------+----------------------------------------+-------+----------~ Iprocess dcbname IDCB Ikeyword parameters I I x I ~-----------------+---------+----------------------------------------+-------+----------~ I [symbol] I I IOPEN I I ! I !! I I[ I I _________________ L I [ {INPUT} ] I (dcbname:1., ( OUTPUT [, IDLE]) , •.. , I INCUT dcbnamen. \ \ [({~~i~~T}[' IN CUT IDLE] )] ) I I I x I I I x !! I I \ \ I I \ ! I \ {MF=L}] I _________ I________________________________________ , MF=(E,listname) \ _______ \ __________ J\ ~ ~ ~ ~ Queued Telecommunications Access Method 59 Table 11. Message Control Specifications Macro-Instructions for Specifying Line Procedure r-----------------------------------------------------------------------------------T---' I Functional Macro-Instructions and the I D I I Delimiter Macro-Instructions Each May Follow I E I ~---------T-----------T-------------------------------------T---T---T---T---T---T---~ L I I I I I R I R I E I SIS I E I I I I I I I C I C I N I E I E I N I M I I I I I V I V I DIN I N I D I I I I I I ISIHIRIDIDISITI I I I I E I D I CIS I HIE I E I I I I I G I R I V I E I DIN I R I I Name I Operation I Operand I I I E I G I RID I S I ~---------+-----------+-------------------------------------+---+---+---+---+---+---+---~ BREAKOFF n x CANCELM X'mask' x DATESTMP x x DIRECT dest 1 ENDRCVE x ENDS END x EOA C'char' 2 EOB 3 3 EOBLC 3 3 =C'dest'} {=c'errtext'} X'mask', field , addr x ERRMSG x { SOURCE X'mask' INTERCPT x x dcbname x x x LOGSEG en] LPSTART 4 label MODE PRIORITY} CONVERSE ,[C'char'] { INITIATE MSGTYPE PAUSE POLLIMIT POSTRCVE POSTS END RCVHDR RCVSEG REROUTE others =c'type cOde'} { blank X'char',nX'id' FL1 'n'} { field x x x x x x 5 6 x x X' mask' ,{=C' dest '} field x x x ROUTE n x SENDHDR x SENDSEG 7 SEQIN en] x SEQOUT n SKIP (n],[C'chars'] x x SOURCE n x x TIMESTMP n x TRANS table x x ~---------~-----------~-------------------------------------~---~---~---~---~--~---~---~ Legend I 1. 2. 3. 4. 5. 6. 7. I I I Used in place of ROUTE macro-instruction. First macro-instruction after ROUTE macro-instruction when multiple addressing isl possible. I Specified only when 1050 Data Communications Systems are used and must immediately I follow ENDRCVE and ENDS END macro-instruction delimiters. I First macro-instruction of an LPS. I Last macro-instruction for LPS receive. I Last macro-instruction for LPS send. I In a dialing system, SEQIN must follow the SOURCE macro-instruction. I I _______________________________________________________________________________________ J 60 Table 12. Message Control Macro-Instructions for Specifying QTAM Control Information r--------T---------T-----------------------------T--------------------------------------, I I I I Function of Given Message Control I I I I I Name I I I I I I IOperation I Operand I Macro-Instructions I ~--------------T------------T----------~ ITerminal TablelPolling ListlBuffer I I Specifications I Definition I Assignment I ~--------+---------+-----------------------------+--------------+------------+----------~ I I BUFFER I [dcbnameJ,n,length I I I x I ~--------+---------+-----------------------------+--------------+------------+----------~ I entry ILIST I (entrY1,··. ,entrYn) I x I I I ~--------+---------+-----------------------------+--------------+------------+----------~ IsymcoliclOPTION Isubfield type and length I 1 I I I I name of I Isubfieldl I I I I I I I I I I ~--------+---------+-----------------------------+--------------+------------+----------~ I pollname I POLL. I (entrY1, ••• , entrYn) I I x I I ~--------+---------+-----------------------------+--------------+------------+----------~ I entry IPROCESS I [EXPEDITE] I x I I I ~--------+---------+-----------------------------+--------------+------------+----------~ I entry I I I ITERM I I I I{T} I L ,dcbname,rln,addressing, I I [(optdata 1 ,···,optdata n )] I I I I x I I I I I I I I I I I I ~--------+---------+-----------------------------+--------------+------------+----------~ I ITERMTBL I entry I 2 I I I ~--------~---------~-----------------------------~--------------~------------~----------~ I legend I I I I 1. Must directly follow TERMTBL macro-instruction. I 2. Must ce the first macro-instruction specified for terminal table. I _______________________________________________________________________________________ L JI Table 13. Message Processing Macro-Instructions r------T---------T-------------------------T--------------------------------------------, I I I I FUnction of Given Message Processing I I I I I I~ame I I I I I I I I I Operation I Operand I Macro-Instructions I ~------------T--------------T----------------~ I I Telecomrnuni- I I I Ications SysterulLine Activation I IQueue Access I Status land Deactivation I ~------+---------+-------------------------+------------+--------------+----------------~ I I I I CHNGFL I I I dccname, rln,{ workarea} =C' 0' I I =C'l' I I I I I I x I I CHNGT I termname, area I I x I I I I I I I I ~------+---------+-------------------------+------------+--------------+----------------~ ~------+---------+-------------------------+------------+--------------+----------------~ I ICPYPL Idcbname,rln,workarea I I x I I ~------+---------+-------------------------+------------+--------------+----------------~ I I CPYQ I name, workarea I I x I I ~------+---------+-------------------------+------------+--------------+----------------~ I I COPYT I termname, area I I x I I ~------+---------+-------------------------+------------+--------------+----------------~ I IGET Idcbname,workarea I x I I I ~------+---------+-------------------------+------------+--------------+----------------~ I I PUT I dcbname, workarea I x I I I ~------+---------+-------------------------+------------+--------------+----------------~ I IRELEASEM Itermname I x I I I ~------+---------+-------------------------+------------+--------------+----------------~ I I I I I I I I I I IRETRIEVE I I I I I I {source terminal } I I destination terminal, I I I direct-access device I address I I I I {IN} I Iworkarea, OUT ,{number} I I blank blank I x I I I I I I I I I I I I I I I I I I I I I I I I ~------+---------+-------------------------+------------+--------------+----------------~ I symbol I STRTLN I I I dCbname,{rln} ALL I I I I I I I x I I ~------+---------+-------------------------+------------+--------------+----------------~ IsymcollSTOPLN x L ______ _________ Idcbname,rln _________________________ I ____________ I ______________ I________________ JI ~ ~ ~ ~ ~ Queued Telecommunications Access Method 61 EASIC TELECOM~UNICATIONS ACCESS ~ETHOD Routines for handling line, terminal, control unit, and device oriented fUnctions are included in the basic telecommunications access method (BTAM). This method also provides macro-instructions that enable a user to read a message segment into the computer and write a message segment onto a communications device. The user, who does not require the queueing and analysis functions of QTAM, may use BTAM. Facilities provided by BTAM include: • • • • • • • • Terminal polling. Terminal addressing. Answering. Message receiving. Dynamic buffering. Message transmitting. Dialing. Communications system status changing. The BTAM user is responsible for: • Providing con~unications system specifications. • Analyzing messages to determine the processing programs required. • Writing message processing programs for specific applications. • Writing message processing programs for changing communications system status. • Routing messages to the appropriate processing program. • Providing error checking and error corrections. • Providing other message handling fUnctions such as code translating, time and date stamping, header analysis, and error checking. • All lines and their associated terminal devices have the same terminal control characteristics. • All lines share the same buffer pool if one is uSed. • All lines use the same buffering technique. (Refer to the publication IBM system/360 Operating System: Data Mall= agement.) The user must supply a DD statement that indicates which communications lines constitute a communications line group and the order in which they are to be associated with the data control block for the line group. To create a data control block for a communications line group, the user must issue a DCB macro-instruction. Before any messages can be sent or received over a communications line of the group, however, the line group must be activated by execution of an OPEN macro-instruction. When all operations on the lines have been completed, the lines are deactivated by issuing a CLOSE macro-instruction. The DCB, OPEN, and CLOSE macroinstructions provide the user with a convenient method of specifying, initiating, and terminating his communications control system. Data Control Block (DCB) Macro-Instruction TELECOMMUNICATIONS SYSTEM SPECIFICATIONS A user must provide certain system specifications through the use of macroinstructions which cause the following: • Creation of system control information. • Preparation of control units and communications lines for message transmission. • Deactivation of communications lines. One data control block must be created for each communications line group. A line group is a group of communications lines that meet the following operational requirements: 62 The DCB macro-instruction causes the creation of a data control block. A data control block is required for each communications line group. This macro-instruction reserves space for the data control block and assigns values to those fields for which the user provides parameters. r---------T---------T---------------------, I Name I Operation I Operand I r---------+---------+---------------------~ Idcbname L _________ IDCB paraweters _________ Ikeyword _____________________ JI ~ ~ dcbname Represents the symbolic name of the data control block being created. keyword parameters Indicate the parameters listed in Tatle 14. When an alternate source code is shown with a parameter, it indicates the other sources of information that concern the parameter: C indicates that the parameter may be Table 14. specified in a DD statement; E indicates the parameter whose value may be supplied at any time up to and including the DCB exit provided at open time. (Refer to the publication IBM System/360 Operating S control Program Services.) DCB Macro-Instruction Keyword Parameters r---------------T---------T-------------------------------------------------------------, I I Keyword I Parameter I Alternate I I Source I ICode I I I I Description r---------------+---------+-------------------------------------------------------------~ I DDNAME=name I I I I I I I I I I name I I I I I Specifies the name that appears in the DD statement I associated with the data control block. (Refer to thel publication IBM System/360 Operating System: Job Control I Language.) I ~---------------+---------+-------------------------------------------------------------~ I DSORG=CX 1 1 1 1 I I CX I I identifies the data set organization to communications line group. be that of I al I ~---------------+---------+-------------------------------------------------------------~ I [{MACRF= (R) I MACRF=(W) I I I MACRF=(R.W) }] 1 I I I I I (R), (W), or (R, W) I I . Specifies that the access to this communications line I I group is to be gained through the READ or WRITE I I macro-instructions. I I I ~---------------+---------+-------------------------------------------------------------~ I [BUFNO=nJ I In I I C. E 1 1 I I I 1 [BUFL=lJ I I I I IC,E 1 11 I 1 Specifies the number of buffers to be provided buffer pool. The maximum value of n is 255. for I the I I I ~---------------+---------+-------------------------------------------------------------~ 1 1 I I 1 I I Specifies the length (in bytes) of each buffer provided I for the buffer pool or a standard length for user-I provided buffers. The maximum value of 1 is 32,7671 bytes. I I I I I I [BUFCB=addrJ 1 I I IE I I I I I I I I addr I I Specifies the name of a buffer pool control block to bel I provided at assembly time by the user. If this parame-I I ter is not provided, and if both BUFNO and BUFL arel I provided, an OPEN macro-instruction provides a bufferl I pool. I I I I c. E I I I I ID I I I I ~---------------+---------+-------------------------------------------------------------~ I I ~---------------+---------+-------------------------------------------------------------~ I [BFTEK=DJ I I I I I Specifies that dynamic buffer allocation is to bel provided. If this parameter is not provided, it isl assumed that the user will handle buffering. I I I r---------------+---------+-------------------------------------------------------------~ I [EXLST=addrJ I I addr I I I I Specifies the symbolic address of the exit list. (Referl I I I to the publication IBM System/360 Operating System: I I I I Control Program Services.) I L I _______________ I _________ I _____________________________________________________________ JI ~ ~ Basic Telecommunications Access Method 63 OPEN Macro-Instruction The OPEN macro-instruction prepares communications line groups for use. Each line group must be opened before message transmission can begin. The OPEN macroinstruction, together with the CLOSE macroinstruction y can be used to control the operative or nonoperative status of communications lines in the system. r------T---------T------------------------, I Operation I Operand I I Name ~------+---------+------------------------~ I [namel I OPEN I (dcbname1yy ••• dcbnamen) I I I I {MF=L }] I I ______ I _________ I ________________________ ~ MF=(E,listname) L JI r ~ ~ dcbname1,~···dcbnamen Specifies the address of the data control block associated with a communications line group to be initiated. This address may be specified as an absolute address, explicit effective address~ or a parenthesized symbolic name or integer designating a register that contains the address. MF=L Specifies that this macro-instruction results in the creation of a parameter list as specified in the operand. This form of OPEN macro-instruction does not result in the execution of the open function~ The name assigned to the parameter list is the name specified in the name field of the OPEN macro-instruction. MF=(Elllistname) Specifies that this macro-instruction results in the execution of the function. The parameter list constructed prior to the issuance of this macroinstruction is obtained and the function is executed for each parameter in the list (listname is the name assigned to the parameter list). Note: The absence of the MF keyword parameter causes the macro-instruction to be executed with all the parameters specified in this issuance of the instruction. (For additional information, refer to the publication IBM System/360 Operating System: Control Program Services.) WAIT and WAITR Macro-Instructions Two macro-instructions are available for signaling that the BTAM problem program can relinquish control of the Central Process64 ing Unit; control can be relinquished because the program must wait for the occurrence of an event (e.g., completion of an input/output operation). The two macroinstructions are WAIT and WAITR. WAIT results in the suspension of processing in the task from which the instruction is issued; processing resumes after the indicated event(s) occurs. The WAITR macro-instruction, in addition to performing the same functions as WAIT, provides two control features. The type of control feature implemented by WAITR depends on the type of system used. In a system with the shared dynamic storage option (two job steps alternately occupy a single area of core storage), issuance of the WAITR macro-instruction in the BTAM problem program results in the writing (or "rolling out") of a portion of this task on an auxiliary storage device. A non-BTAM task (background task) is read into core storage (that is, "rolled in"), and processing of this t~sk begins. If the event for which the BTAM problem program is waiting occurs, and the background task has no I/O in progress, the background task is written on the auxiliary storage device and the BTAM task is read back into core storage. If the event for which the BTAM problem program is waiting occurs, and the background task has I/O in progress, the BTAM problem program is not read back into core storage until the background-task event occurs. The BTAM problem program should not issue a WAITR macro-instruction unless all events for which it has issued WAITs have been completed. In a system in which the available core storage is divided into distinct sections (partitions) to concurrently process job ste~s, the first issuance of the WAITR macro-instruction from the BTAM problem program has the following effects: 1) the partition in which the BTAM problem program resides becomes permanently assigned to BTAM; and 2) a processing program for a job step in another job is read into the other (or next) partition and processing of that job step commences. To use the partition technique, core storage size must be greater than 32,768 bytes. Under this partitioned dynamic storage option, no portion of the BTAM task is written out to provide more space. As in the case of the shared dynamic storage option, however, occurrence of an event for which the BTAM problem program is waiting Signals that control is to be returned to the BTAM program. Subsequent issuance of WAITR by the BTAM problem program is treated as a WAIT. r--------T---------T----------------------, r------T---------T------------------------, ~--------+---------+----------------------~ ~------+---------+------------------------~ I [symbol] I{WAIT} ECB={addrx}jl I I WA ITR Il\( 0 ) ( 1) I I I I . ECBLIST={addr y} I IL________ i I _________ i I ______________________ (1) JI I I I I I I I [,{MF=L }] I IL ______ LI _________ i I ________________________ MF=(E,listnan,e) JI I Name IOperationlOperand I Ifr ~ } Jl symbol Specifies the name for WAITR macro-instruction. the WAIT or n specifies the number of events that must occur before the problem program issuing the WAIT or WAITR macroinstruction can regain control of the system. If (0) is specified, the number of events must be loaded into register 0 prior to execution of this macro-instruction. If no entry is made for the number of events, 1 is assumed. addrx Specifies the addres~ of an event control block (ECB) representing the only event that must occur before processing can continue. If ECB=addrx is specified, n cannot be greater than 1. If ECB=(l) is specified, the address of the ECB must be loaded into register 1 prior to execution of this macro-instruction. IName I Operation I Operand I [nameJICLOGE I (dcbname~" ... dcbnamen) I I dcbname1,,···dcbnamen Specifies the address of the data control block associated with a communications line group to be closed. This address may be specified as an absolute address, explicit effective address, or a parenthesized symbolic name or integer designating a register that contains the address. MF=L Specifies that this macro-instruction results in the creation of a paramete~ list as specified in the operand. This form of CLOSE macro-instruction does not result in the execution of the close function. The name assigned to the parameter list is the name specified in the name field of the CLOSE macro-instruction. MF=(E,listname) Specifies that this macro~instruction results in the execution of the close function. The parameter list constructed prior to the issuance of this macro-instruction is obtained and the function is executed for each parameter in the list (listname is the name assigned to the parameter list). addry Specifies the address ~f a variablelength list that can contain the addresses of up to 255 event control blocks; each event control block represents an event to be waited for. The WAIT or WAITR macro-instruction is satisfied when the number of events posted to ECB's specified in the list equals the number indicated by the n entry in the macro. If ECBLIST=(l) is specified, the list address must be loaded into register 1 prior to the execution of this macro-instruction. (For additional information, see the putlication ~ontrol Program Services.) Note: The absence of the MF keyword parameter causes the macro-instruction to be executed with all the parameters specified in this issuance of the instruction. (For additional information, refer to the publication IBM Operating System/360 Operating System: Control Program Services.) MESSAGE CONTROL The message control section of BTAM polls terminals, answers calling devices, addresses terminals, transmits and receives messages, and dials devices. To use the facilities provided by BTAM, the user must provide terminal lists. (Refer to "Terminal List Structures.") CLOSE Macro-Instruction The CLOSE macro-instruction removes comffiunications line groups from use. The CLOSE macro-instruction can be used with the OPEN macro-instruction to control the operative status of communications lines in the system. Programming for any additional rr.essage handling, such as code translating, message editing, format checking, and routing, must also be provided by the user. The number of data event control blocks (DECBs) that must be defined is equal to the maximum number of reads and/or writes that can be occurring simultaneously. Basic Telecommunications Access Method 65 The format of the data event block is shown in Figure 16. control' r-----------------------------------------, 1Byter-----------------------------------, 01 Standard ECB 1 r-----------------T-----------------~ 41 Operation Type 1 Length 1 r-----------------L-----------------~ 81 DCB Address 1 r-----------------------------------~ 121 Area Address 1 r-----------------------------------~ 161 Error Information Field Address r---------T-------------------------------,1 1Operation 1Operand 1 r---------+-------------------------------~ 1 1 1 1READ 1 1 1 1 1 1decbname, 1 1 TI TIR TT TTR , dCbname,{ as rea} , TV TVR 1 1 1 1 1 1 1 TP 1 1 l{length},termlist,rln,{MF=L} 1 liS MF=E 1 blank 1L_________ LI _______________________________ J1 1 r-----------------------------------~ 201 Terminal List Address 1 r-----------------T-----------------~ 24 1L_________________ Relative Line No.1L _________________ Response Field J1 decbname Specifies the address of the DECB in which completion is to be posted. TI Figure 16. Data Event Control Block Format Specifies initial READ. This option indicates that initial contacts must be made with the terminal. If required, contact is made by dialing or answering. Otherwise, initial contact is made by polling. POLLING TIR Macro-instructions for input operations are provided by BTAM. The user must provide polling lists that determine the order in which terminals on each line are interrogated for messages. (Refer to "Direct Polling and Addressing Lists.") The list is precessed sequentially by BTAM, starting at the point specified by the user in his problem program. Specifies initial READ with RESET at completion. (Refer to the "RESET Macro-Instruction.") TT Specifies continued READ. This option indicates that a read operation is continued. When an EOB is transmitted as a message delimiter, the central processing unit must respond to the longitudinal redundancy check generated by the control unit before transmission can be continued. This option allows BTAM to provide the response and to maintain contact with the sending device, thus eliminating the need for repolling. Each terminal on the list is polled by BTAM. If a terminal has a message to send, contact is maintained until either an endof-transmission (EOT) or an end-of-block (EOB) character is received. When one of these characters is received, completion is indicated by BTAM in the line DECB. If a terminal has no message to send, the next terminal in the polling list is polled. Polling continues until a message is received, the polling list is exhausted, or an error condition is detected. To initiate polling, a user must issue a READ macro-instruction. TTR Specifies continued READ with RESET at completion. TV Specifies conversational READ. This option applies to dialing or common carrier TWX. Initial contact is made by dialing or answering. This option makes it possible to hold the line for subsequent communication without reestablishing contact. READ Macro-Instruction The READ macro-instruction causes contact to be established with a terminal. If the terminal has a message to send, contact is maintained until an EOT or EOB character is received. The READ macroinstruction is then considered satisfied and completion is posted in the appropriate line DECB. 66 TVR Specifies conversational RESET at completion. READ with TP Specifies repeat READ. This option can be used for terminals that can recognize negative responses to be transmitted to the terminal. It provides the problem program with the means of requesting retransmission of data received in error. To accept the erroneous data, a continued READ macro-instruction can be used. dcbname Specifies the address of control tlock for the line. MF=L Specifies that this macro-instruction results in the creation of a parameter list as specified in the operand. This form of macro-instruction does not result in the execution of the read function. MF=E the data Specifies that this macro-instruction results in the execution of the fUnction without the creation of a parameter list. The parameter list created prior to the issuance of this macroinstruction will be updated by inserting any parameters preceding the MF parameter. area Represents the address of the first byte of the input area used to receive the message. s Specifies that BTAM will buffer. provide the length Indicates the number of bytes in the input area used to receive the message. S Indicates that BTAM will provide the buffer length specified in the data control block. termlist Indicates the address of an entry in the terminal list. rln blank Specifies that this parameter may be left blank. ·If this parameter is omitted, the macro-instruction results in the creation of a parameter list and the execution of the fUnction. Note: For additional information, refer to the description of the "L" and "E" forms of macro-instructions found in the introduction to IBM System/360 Operating System: control Program Services. Table 15 shows the operands permitted for each of these additional forms and their restrictions. ADDRESSING Specifies the relative line number (within a line group for the data control tlock referred to) to which this macro-instruction applies. Table 15. A convenient method is provided by BTAM for directing output messages to a terminal READ Macro-Instruction Forms r------------T--------------------------------------------------------------------------, I I Macro-Instruction Form I ~------------+------------------------T----------------------------T--------------------~ I Parameter IL I E I Neither L nor E I ~------------+------------------------+------------~---------------+--------------------~ decb type dcbname area length termlist rln MF= Must be stated, will be used as the name of the decb, or must not be in register notation. Required. Must not be in register notation. Must not be in register notation. Must not be in register notation. Must not be in register notation. Must not be in register notation. l-1F=L. Must be stated, will be used as a pointer to the decb. Required. Acceptable, will override. Acceptable, will override. Required. Required. Acceptable, will override. Required. Acceptable, will override. Required. Acceptable, will override. Required. Acceptable, will override. Acceptable. MF=E. Not acceptable. ~------------~------------------------~----------------------------~--------------------~ I _______________________________________________________________________________________ Note: Type represents one of the following options: TI, TIR, TT, TTR, TV, TVR, TP. JI L Basic Telecommunications Access Method 67 or grou~· of terminals on a line. The terminals to be addressed must be identified in an addressing list provided by the user. This list may contain the addresses of one or more of the terminals on a line. This option provides for monitoring the response and maintaining contact with the terminal. TTR All terminals on the specified addressing list are addressed by BTAM before a message is sent. To initiate addressing, a user must issue a WRITE macro-instruction. When a message is destined for more than one line, it must be transmitted by separate WRITE macro-instructions. Specifies continued WRITE at completion. Specifies conversational WRITE. This option applies to dialing or common carrier TWX. Initial contact is made by dialing or answering. When contact with the line has been established, this option provides the ability to carryon multimessage transmission with one or more components without redialing. TVR Specifies conversational RESET at completion. with Specifies SPACE signal write. (Refer to the "Commands" section in the publications: IBM 2701 Data Adapter Unit, Principles of Operation, or IBM 2702 Transmission Control.) r---------T-------------------------------,I ~---------+-------------------------------~ I I I WRITE TB I Operation I Operand I I I RESET TV WRITE Macro-Instruction The WRITE macro-instruction causes transmission of a message segment to the terminals specified in an addressing list. The list may refer to one or more terminals on the line. with TI I TIR I TT I I WRITE Idecbname, TTR ,dcbname,{area }, I s I I TV I I I TVR I I I TB I I l{length},termlist,rln,{MF=L} I I I _S MF=E I Il _________ LI _______________________________ blank JI S decbname Indicates the name of the line DBCB in which completion is to be posted. length Specifies the output area. dcbname Indicates the address of control block for the line. the data area Represents the address of byte of the output area. the first Specifies that BTAM will write a chain of buffers. number of bytes in the S TI Specifies initial WRITE. This option indicates that initial contact must be made with the terminal. If required, contact is made by dialing or answering. Otherwise, initial contact is made by addressing. Specifies that BTAM will provide length parameter based upon BUFL. termlist Indicates list. the the address of the terminal rln Specifies the relative line nun,ber (within a line group for the data control block referred to) to which this macro-instruction is to apply. TIR Specifies initial WRITE with RESET at completion. (Refer to "Reset (RESETPL) Macro-Instruction.") TT MF=L Specifies continued WRITE. When an EOB is transmitted, the control unit provides a longitudinal redundancy check. The remote terminal must respond to the longitudinal redundancy check before sending can continue. 68 Specifies that this macro-instruction results in the creation of a parameter list as specified in the operand. This form of WRITE macro-instruction does not result in the execution of the write function. MF=E Specifies that this macro-instruction results in the execution of the fUnction without the creation of a parameter list. The parameter list created prior to the issuance of this macroinstruction will be updated by inserting any parameters preceding the MF parameter. r---------T-------------------------------, I Operation I Operand I ~---------+-------------------------------~ LIRESETPL _________ Idcbname,rln _______________________________ JI ~ dcbname Indicates the address of the data control block for the communications line group. blank Specifies that this parameter may be left blank. If this parameter is omitted, the macro-instruction results in the creation of a parameter list and the execution of the fUnction. rln Specifies the relative line number (within the line group for the data control block referred to) to whicn this macro-instruction a~plies. ANSWERING TERMINAL LIST STRUCTURES In order for a terminal to dial and establish contact with the computer, the user must enable the line to transmit messages to the system. This may be accomplished by issuing a READ or WRITE macroinstruction with the proper terminal list specification. Contact with the terminal is established by BTAM, and messages are received. For subsequent communication with the terminal conversational-ty~e READ or WRITE macro-instructions car be used. The data transmission macro-instructions (READ or WRITE) provided by BTAM refer to the user-provided terminal list. The structure of the list is determined by both the terminal equipment involved and the type of operation to be performed. In all macro-instructions used to generate terminal lists, component addressing, polling, and identification characters must be specified as the hexadecimal equivalents of the particular terminal device code for that character. Tables of the various code structures are contained in the publication IBM 2701 Data Adapter Unit, Principles of Operation, Form A22-6864. The line., which has been enabled, may be disabled by issuing a RESETPL macroinstruction or a CNTRL (disable) macroinstruction. A line may also be disabled by issuing a READ or WRITE macroinstruction that specifies a RESET at completion. Reset (RESETPL) Macro-Instruction The RESETPL macro-instruction provides the ability to free a dial-type line or to interrupt a polling sequence. If a message is being transmitted when a RESETPL macroinstruction is issued, no action is taken. '. otherwise, the line is freed or polling is interrupted and the preceding READ or WRITE macro-instruction is posted as complete. Control is then returned to the ~roblem program,. If TIR, TTR, or TVR options of the READ or WRITE macro-instructions are specified, the reset function will be performed at the end of message transmission. If, however, the RESETPL macro-instruction is issued for a dial-type line which is being polled, the polling will be terminated and the line will be freed. Direct Polling and Addressing Lists Direct polling and addressing apply to data transmission operations where the line connection is permanently established (non-dial). Read operations involve the polling of terminals. When a READ macroinstruction is specified, it must refer to a polling list. A polling list determines the order in which remote terminals are interrogated to send data. Write operations require the addressing of terminals to prepare them for the receipt of a message. When a WRITE macroinstruction is specified, it must refer to an addressing list. An addressing list consists of addresses of one or more terminals on a line. which are the destinations of a message. All terminals in the list are contacted before the message is transmitted. A polling list may be either an open or a wrap-around list. An addressing list is identical in structure to the open list. Basic Telecommunications Access Method 69 OPEN LIST: In an open list. each entry is assigned a fixed field size. An index, consisting of three procedure flags plus an identification number that indicates the entry's relative position in the list, is entered for each entry. End of List Ski P l ~--:::~~::::--~-- ---T--I---T--J[::::::_--, A I ______ 0 I ______ I ______ I ______ I ______ ID No. JI lI ______ ~ ~ ~ ~ \ ~ J V Procedure Flags The last entry in the list has a flag in the index. The open list is processed sequentially and completion is posted by BTAM either when the end of a list has been reached~ a message has been received, or an error condition has been detected. entries. When the skip bit is 1 as in entries 2 and 3, it indicates that the entry is to be deleted from the polling sequence. The format bit is 1 in entry 5, indicating that the contents of the next two bytes are used to locate the start of the list. Thus, the polling sequence can continue without problem program intervention when no terminal responds with a message. Note: If in entry 5 the format bit was a and the end of list bit was 1, the list would be an open list and polling would cease after entry 5. An addressing list would contain addressing characters rather than polling characters. Dialing and Answering Lists WRAP-AROUND LIST: A wrap-around list is identical to the open list, except that the last entry contains a pointer to the beginning of the list. Completion of the wraparound list is posted by BTAM when a message has been received or when an error condition has been detected. When the end of a wrap-around list has been reached, polling automatically restarts with the first entry on the list. To free a line during a wrap-around polling sequence, a RESET macro-instruction must be issued. Figure 17 is an example of a wrap-around polling list. The entry for each terminal contains two polling characters, and a control byte. The polling characters for entries 1 through 5 are. in IBM 1050 code. AO, EO, CO, DO " and EO , respectively i these are represented in Figure 17 in their hexadecimal equivalents. The end-of-list bit in the control byte is a in all Dialing and answering apply where the line connection must be established (by dialing) before data transmission can take place. Read operations involve: • Dialing from computer to terminal (and polling) to receive a message. (In a TWX application, terminal identification verification must also be performed. ) • Answering a call from a terminal that has dialed the computer and polling the terminal to receive a message. (In a TWX application, terminal identification verification must also be performed. ) When this type of READ macro-instruction is specified, it must refer to an appropriate terminal list. Figure 18 is an example of a terminal list for dialing from computer to terminal r-------------T-----------------------------------, Control Byte I I I ~--------T------T--------T---------~ I I Entry 1 Entry 2 Entry 3 Entry 4 Entry 5 Polling Characters End of List I I Skip I I Format I I Relative Location I I ~------T------+--------+------+--------+----------~ I E2 I 15 I a I a I a I 00000 I ~------+------+--------+------+--------+----------~ I E4 I 15 I a I 1 I a I 00001 I ~------+------+--------+------+--------+----------~ I E7 I 15 I a I 1 I a I 00010 I ~------+------+--------+------+--------+----------~ a I a I a I 00011 I EB I ______ 15 I ________ a I ______ a I ________ 1 I _________ 00100 I _______________ Start of List JI lI ______ I E8 I 15 I ~------+------+--------+------+--------+----------+---------------, ~ Figure 17. 70 I I I ~ ~ ~ ~ Wrap-Around Polling List Example ~ (and addressing) to transmit a message. The dial digits may be followed by one or more open list entries. The component address is shown as the hexadecimal equivalent of IBM 1050 code characters A9. equivalent of the Eight-Bit change code Characters CHI. Data Inter- Write operations involve: Figure 19 is an example of a terminal list for answering a call from a terminal that has dialed the computer, and polling the terminal to receive a message. The answer digit (zero) may be followed by one or more open list entries. The component address is shown as the hexadecimal equivalent of IBM 1050 code characters AO. • Dialing from computer to terminal (anJ addressing) to transmit a message. (In a TWX application, ter~inal identification verification ffiUSt also be performed. ) • Answering a call from a terminal that has dialed the computer and asking the terminal to transmit a message. (In a TWX application, terminal identification verification must also be ~er formed. ) Figure 20 is an example of a terminal list for dialing in a TWX application. The terminal identification is shown as the hexadecimal equivalent of the Eight-Bit Data Interchange Code Characters CHI. Note: The list structure for the write operation is identical to that for the read operation except that in the examples shown, the field called component address contains addressing characters instead of polling characters. Figure 21 is an example of a terminal list for answering in a TWX application, except the answer digit (zero) is added, and the number of dial digits and the dial digits are not included. The terminal identification is shown as the hexadecimal Open List Entry ~~---------------~ r----------------------------T----------------------------T---------T---------T---------, / I INo. of Dial Digits I Component I Procedure I I IAddress IFlags IEntry ID I I IDial Digits ~----------------------------+----------------------------+---------+---------+---------~ I_________ JI I ____________________________ 7 4635514 E213 LI _________ L LI ________________________ ____ LI _________ Figure 18. ~ Dial DIALST Example Open List Entry r--------------------------------~~------------------------------~\ r----------------------------T----------------------------T-------------T---------------, I I I Answer I Procedure I Flags IComponent Address I IEntry ID I I ~----------------------------+----------------------------+-------------+---------------~ I I ____________________________ 0 E215 L L ____________________________ LI _____________ Figure 19. I _______________ JI ~ Answer DIALST Example r---------------T-------------T-------------T-------------T-------------T---------T-----' INa. of IDial Digits I IDial Digits INo. of ID I Characters lID From I Terminal lID of I Terminal I Procedure I Entry I IFlags lID I ~---------------+-------------+-------------+-------------+-------------+---------+-----~ I 7 I 4634414 I 3 I I C31393 I_________ I _____ JI L _______________ L _____________ L _____________ L _________ ____ L _____________ Figure 20. ~ ~ Dial IDLST Example r-------T------------T----------T----------T-----------T---------, I I No. of ID I ID From I ID of I Procedure I I IAnswer I Characters I Terminal I Terminal I Flags I Entry IDI ~-------+------------+----------+----------+-----------+---------~ I 0 I 3 I I C31393 I I I L _______ L ____________ L __________ L __________ L __________ __ L _________ J Figure 21. Answer IDLST Example Basic Telecommunications Access Method 71 Define Terminal List (DFTRMLST) Macro-Instruction E20B,E40B,E70B,E80B (for A5, B5, C5, and D5, respectively, in IBM 1050 code). The DFTRMLST macro-instruction provides the capability for defining a polling or addressing list, and entering the physical addresses and device specifications into the list. Dial or answer list (DIALST entry): for a dial list, arg1 specifies the number of dial digits, arg2 the dial digits, and arg3 through argn the addressing or polling characters. As in the open list arguments, the addressing or polling characters must be specified in hexadecimal. Example: arg1 through arg4 are 7,4635514,E207,E202 (arg3 and arg are the hexadecimal representation of A3 and Al in IBM 1050 code). For an answer list, arg1 is a zero, and arg 2 through argn (in hexadecimal) are the addressing or polling characters. Example: arg 1 through arg3 are 0,E20D,E20B (arg2 and arg3 are the hexadecimal representation of A6 and A5 in IBM 1050 code)., r-----T---------T-------------------------, IName IOperationlOperand I r-----+---------+-------------------------1 lentrylDFTRMLST I{OPENLST} I I I I WRAPLST , arg1,···,argn I I I I DIALST I IDLST lI_____ i I _________ i I _________________________ JI entry Represents the symbolic name assigned to the beginning of the list. OPENLST Indicates that the list is open list structure. to be an WRAPLST Indicates that the list is to be a wrap-around list structure. DIALST Indicates that the list is to be a dial or answer list in which verification of the identification of the terminal is not required. IDLST Indicates that the list is to be a dial or answer list of TWX terminals; therefore, verification of the identification of the terminal is required. arg1,···,argn Specify the parameters needed to construct the terminal lists. The parameters that must be included for each type of list are as follows: 72 ID dial or answer list (IOLST entry): for a dial list, arg1 specifies the number of dial digits, arg2 the dial digits, arg3 the number of identification digits, and arg4 the identification of the terminal. The identification of the terminal must be the hexadecimal equivalent of the particular terminal device code for the characters used. Example: arg1 through arg4 are 7,4635514,2,43CD (arg4 is the hexadecimal representation of B3 in Eight-Bit Data Interchange Code). For an answer list, arg1 is zero, arg2 the number of identification digits, and arg3 the identification of the terminal (in hexadecimal). Example: arg 1 through arg3 are 0,2,43CD (arg3 is the hexadecimal representation of B3 in Eight-Bit Interchange Code). Change Terminal Entry (CHGNTRY) Macro-Instruction Open list (OPENLST entry): arg1 through argn indicate the addressing or polling characters. The actual characters are in the code for the particular type of terminal, and must be specified in hexadecimal. Example: arg1 through arg4 are E202,E402,E702,E802 (for Al, Bl, Cl and Dl, respectively, in IBM 1050 code). The CHGNTRY macro-instruction provides the means for deleting or reactivating a terminal entry in a polling or addressing list without redefining the existing list. The list referred to in list 10 will be located and the entry specified in arg1 will be altered to the conditions specified in arg 2. Wrap-around list (WRAPLST entry): arg1 through argn indicate the addressing or polling characters. As in the case of the open list arguments, the characters must be specified in hexadecimal. Example: arg1 through arg4 are r----+---------+--------------------------~ r----T---------T--------------------------, I Name I Operation I Operand I I ICHGNTRY lentry,type,arg1' I I I I I I I I{SKIP} I ACTIVATE I ____ i I __ ______ i I __________________________ L JI ~ entry Represents the symbolic name for the beginning of the list. It is defined using the DFTRMLST macro-instruction. type Signifies the type of list specified in the DFTRMLST macro-instruction used to create list. arg1. Indicates the relative position in the list of the entry to be changed. SKIP Indicates that this entry is to be skipped when polling or addressing. ACTIVATE Indicates that reactivated. this entry ERROR HANDLING When the data control block parameters BUFNO and BUFL or BUFCB are provided, a cuffer pool is shared by all lines in the communications line group. The user may manipulate the pool using the GETBUF and FREEBUF macro-instructions. If the data control block parameter BFTEK=DYN is also specified, BTAM dynamically allocates buffers to read operations and dynamically writes a chain of buffers. The first eight bytes of each buffer contain the read or write channel command word, and the next four bytes contain a transfer in channel command. Thus, the user's definition of buffers length (BUFL=I) must be twelve bytes larger than that required for data. For read operations with dynamic buffering, the user may specify an initial input area in the READ macro-instruction. Alternatively, BTAM provides the initial area from the buffer pool if an area parameter of S is specified. Any additional buffers needed will be supplied by BTAM from the buffer pool. r-------T-------T--T-----T-------T--------, I Command I Address I ICountlCommandlAddress I ICode 1+ 16 ofl I I Code lof Next I I I I I Buf f er I I I Next Buffer iI __ iI _____ iI _______ iI ________ JI I _______ iI_______ L 1 4 6 For write operations with dynamic buffering, the user must provide the address of the first byte of the first buffer in the line DECB and specify the macroinstruction with an area parameter of S. The first twelve bytes of each buffer must also be in the format shown above. BTAM will provide the command codes and terminate the operation when all buffers have been transmitted. The address fields in the last buffer must be nUll. If the address fields of any buffer are non-zero, they will be assumed to contain valid buffer addresses. is to be BUFFERING o The address of the first byte of the first buffer will be contained in the data event control block. 8 9 12 At the end of the read operation, the first twelve bytes of each buffer will be in the format shown above. For the last buffer, the addresses will both be nUll. Error conditions are posted in the line error information field by BTAM routines. These conditions must be recognized by the user to ensure proper operation (Figure 22). An all-zero-sense byte indicates that the operation was completed successfully and no error conditions occurred. In a non-zero-sense byte, the bit positions indicate command reject (bit 0), intervention required (bit 1), parity error (bit 2), equipment check (bit 3), data check (bit 4), overrun (bit 5), receiving (bit 6), and time-out (bit 7). (Refer to the publications IBM 2701 Data Adapter Unit, Principles of Operation and IBM 2702 Transmission Control.) Completion is posted whether termination was caused by a completed transmission or by an error condition. The terminal response character is placed in the response field byte of the data event control block and it is the responsibility of the user to test these conditions and take proper action. If successive macro-instructions are issued for a line before the preceding macro-instruction has been posted as complete, they are rejected. When using dynamic buffer allocation, it is the problem programmer's responsibility to provide sufficient buffers to accommodate maximum traffic for the system. If buffers are requested and none are available, no buffer can be assigned. If no buffers are available, a null link is inserted in the last message buffer. This results in an incomplete message transmission and the error condition is posted in the sense byte of the error information field (Figure 22). Basic Telecommunications Access Method 73 The FREEBUF macro-instruction must be used to free tuffers and return them to the tuffer pool. Concerning buffer pool usage, the first eight bytes of the buffer contain the channel command word for this transmission, and the next four bytes of the buffer contain the linkage to the next buffer for this transmission. Free Buffer (FREEBUF) Macro-Instruction The FREEBUF macro-instruction returns the buffer whose address is contained in the specified register to the Duffer pool associated with the specified data control tlock. Buffers assigned using dynamic buffering must be returned to the pool by the problem program. r---------T-------------------------------, Channel Status Word r~-------A------~ I Operation I Operand I t---------+------------------------~------~ lIFREEBUF _________ Idcbname,T _______________________________ JI ~ r-----T--T-----------------T---T---T---T--' ISensel ILine DECB Address I I I I I I __ I _________________ I ___ I ___ I ___ I __ JI lIByte _____ o ~ 1 ~ ~ 2 6 ~ ~ 14 15 ~ 16 ~ dcbnarne Specifies the symbolic name of the data control block through which the buffer was assigned. Status T Figure 22. 74 Line Error Format Information Field Specifies the register that contains the address of the buffer to be freed. APPENDIX A: QUEUED TELECOMMUNICATION ACCESS METHOD SAMPLE PROBLEM SYSTEM CONFIGURATION The system configuration for the QTAM sample problem (Figure 23) is as follows: Communications 1050 Data Communications System (five) Half-Duplex Communications Line (two) 2701 Data Adapter Unit (one) Multiplexor Channel (one) 2311 Disk Storage Drive (one) type applications. Message switching refers to messages that do not require processing of message text but are to be routed directly to their destinations. Destinations which are specified in the input header may be any of the following: • Single destination specified in the destination field of the header. For example~ NYC. • Multiple destinations specified in sequence in the header. For exarn~le, NYC PHI .•• . • Distribution list specified in the header. For example, PBW would specify destinations contained in the terminal table list for PBW; i.e., Boston and Washington. Operating System Computing System/360 Model F30(64k) Selector Channel (one) 1052 Console (one) 1402 card Read-Punch (one) 1403 Printer (one) 2311 Disk Storage Drive (one) Inquiry message refers to process messages that require processing of the rr.essage by problem programs resident in the central processing system. Reply messages must be generated for transmission back to the sending terminal. (Refer to Figures 24 and 25 and to Tables 16 and 17.) (one) The sample program is capable of handling message switching and inquiry message r---------------------------------------------------------------------------------------, 1052 Console CHI 1050 Data Communications System 1050Dcta Communications System NYC BOS 1050Dcta Communications System 1050 Octo Communications System PHI 1050 Dato Communications System WAS Half-Duplex Communications Lines Mutliplexor Channel 2701 Data Adapter Unit Model F30 Computing System/360 Selector Channel 2841 Storage Control Unit L _______________________________________________________________________________________ J Figure 23. Q~eued Telecommunications Access Method Sample Problem - System Configuration Appendix A 75 r----------------.-----------------------------------------------------------------------, Switched Message (Input) Bytes o 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ~1,~I~I~I_9~12~I~b~l_c~IH~II~I-b~IN~ly~l_c~l-b~l-p~IH~I-I~I-b~lp~I-B~1w~1 ;~I-*~I-l~I-TE-XT~\\~------~I©~1 '------y----J "-r--" \ J \ Bytes ) ~ ) Destination Destination 2 Destination 3 t Priority EOT EOA Switched Message (Output) 0123456 \ \ Source Sequence Input ) 7 8 9 Source 30 11 12 , \ \~----v---~ Sequence Input 10 13 32 33 34 35 15 \ Destination 1 31 14 16 ) 38 39 18 19 20 \ 21 22 ''-v-' Destin~tion 3 Destination 2 36 37 17 40 41 23 24 25 26 27 28 29 \ J t Input Time Stamp EOA 42 l~b~I_6~14~1_.~12~1_8~1_5~1*~I-l~lb~1_0~.1~81_3~I_TE_XT~«~_ _~c~1 ~'I \ Input Date Stamp Priority '-y--' EOT Sequence Output *Blank spacing preceding text must be provided by the problem program to be used for the sequence out, time stamp, and date stamp fields. _______________________________________________________________________________________ J This will be the new start of message. Figure 24 .. Switched Message Formats r---------------------------------------------------------------------------------------, Processed Message (Input) Bytes o 1 2 3 4 5 6 7 8 9 10 11 12 ~1,~1_2~1~11~3~I_b~lc_I~H~I_I~lb~l~C~I_p~IU~I_;~I______rr__ XT___~0(~_________~I©~1 --v--'-' '--v---J ~ '--y-J Sequence Input Source EOT Destination EOA Processed Message (Output) Bytes o 1 2 3 4 5 6 7 1 , l p l b 1 2 1 1 1 3 1 b 11 8 9. 10 11 12 13 14 1 5 c H I b I 1 I I I I I I I b 15 16 I3 17 18 19 20 1 • I 1 I 1 I· *Sequence Input *Sequence Output *Destination TEXT 22 23 ----./ 1 *Message Type 21 **Output Time Stamp 24 25 26 27 ~I 28 '---v--------J ** Output Date Stamp (( I©I ~------------------------~ Reply Generated by Message .. EOT Processing Program *Inserted by problem program. **Blank spacing preceding text must be provided by the problem program to be used for the sequence out, time stamp, and date stamp fields. This will be the new start of message. Figure 25. 76 Processed Message Formats 29 ~8~I5~1 --'-13--Ir--"b-rI6 "";1;;';""4 ·'1";;;;"'2-r1 Table 16. Message Control Sample Problem r---------T---------T-------------------------T-----------------------------------------, I Name I Operation I Operand I Comments I ~---------~---------~-------------------------~-----------------------------------------~ IDefine DCB for Communications Line Group I ~---------T---------T-------------------------T-----------------------------------------~ IDCBGROUP IDCB I I ICDNAME=DDGROUPl I IGives the DDNAME associated with the datal I control block. I ~---------+---------+-------------------------+-----------------------------------------~ I I I I I DSORG=CX, I I Defines the data control block Icommunications line group type. as al I ~---------+---------+-------------------------+-----------------------------------------~ I I I I I I IMACRF=(G,P), I I I Indicates that GET and PUT macro-I linstructions will be used to refer tol Ithis data set. I ~---------+---------+-------------------------+-----------------------------------------~ I I I I I BUFRQ=3, I I Specifies the number of buffers to bel Irequested in advance for each line. I ~---------+---------+-------------------------+-----------------------------------------~ I I ICPRI=E, IGives send and receive equal priority. I ~---------+---------+-------------------------+-----------------------------------------~ I I I I ICPOLL=(POLLINE1, IPOLLINE2) IRepresents the symbolic names assigned tol Ipolling lists for each line. I ~------.---+---------+-------------------------+-----------------------------------------~ I I I I ICLPS=LPSl I IIdentifies LPSl as the name of this I group LPS. linel I r---------+---------+-------------------------+-----------------------------------------~ I I I I I ACLOC=13 I I Indicates the relative address Idevice in the terminal entries. of thel I ~---------~---------~-------------------------~-----------------------------------------~ IDefine DCB Direct-Access Queues I ~---------T---------T-------------------------T-----------------------------------------~ I QUEUE I IDCB I ICDNAME=DDFILE I IGives the DDNAME associated with the datal I control block. I r---------+---------+-------------------------+-----------------------------------------~ I I I I I DSORG=CQ I IDefines data control block as laccess device type. a direct-I I ~---------+---------+-------------------------+----------------------------------------~~ I I I I I I IMACRF=(G,P) I I I Indicates that GET and PUT macro-I I instructions will be used to refer tol Ithis data set. I ~---------~---------~-------------------------~-----------------------------------------~ IDefine Terminal Table I r---------T---------T-------------------------T-----------------------------------------~ I I I ITERMTBL I I ICPU I I ISpecifies the extent of the terminal I Itable; CPU is defined as the last entry I lin the terminal table. I I LIMIT I I I I OPTION I I I IFLl I ILIMIT is the symbolic name of the fieldl lin this terminal table that contains thel I limit of consecutive polls for each I I terminal. Field length equals one (FL1). I r---------+---------+-------------------------+-----------~-----------------------------~ I I r---------+---------+-------------------------+-----------------------------------------~ CHI NYC PHI BOS WAS TERM TERM TERM TERM TERM L, DCBGROUP, 1,E407E40D, (2) L,DCBGROUP,2,E207E20D, (2) L,.DCBGROUP,2,E407E40D,(2) L,DCBGROUP,1,E207E20D, (1) L,DCBGROUP,2,E707E70D, (1) The five terminals and thei~ parameters are entered in the teT-minal table. The explanation of the first line is as follows: L indicates that the outgoing messages are to be queued by line. DCBGROUP specifies the name of the data control block. 1 is the relative line number within the line group to which the terminal is attached. E40DE407 is the hexadecimal representation of IBM 1050 code-charactel.s B6 and B3; B6 is the polling code and B3 the addressing code. 2 is the maximum number of continQous polls to be inserted in the field LIMIT defined above. (continued) Appendix A 77 Tatle 16. Message Control Sample Problem (continued) r---------T---------T----------------------T--------------------------------------------, I Name 1Operation 1Operand 1 comments I ~---------+---------+--------~-------------+--------------------------------------------~ IPBW ILIST I (BOS,WAS) IDefines a distribution list of message des-I I I I Itinations as Boston and Washington. I ~---------+---------+----------------------+--------------------------------------------~ ICPU I PROCESS I I Defines symbolic name of a process datal I I I Icontrol block in the terminal table. Allows I ICPU as valid destination. I I I I ~---------~---------~----------------------~--------------------------------------------~ IDefine Polling Order I ~---------T---------T----------------------T--------------------------------------------~ IPOLLINE 1 IPOLL I I I (CHI.BOS) I I Defines order of polling of terminals I lattached to line 1. Identifies terminals. I ~---------+---------+----------------------+--------------------------------------------~ IPOLLINE 2 IPOLL I (NYC~PHI,NYC,WAS) IDefines order of polling of line 2. I ~---------~---------~----------------------~----------------------------~---------------~ I I IDefine Buffering I ~---------T---------T----------------------T--------------------------------------------~ I I I I I BUFFER I I I IQUEUE,60,125 I 1 1 IProvides main storage buffer areas for thel Idata set (QUEUE) used for message queueing. I ISixty buffers are specified~ 125 bytes perl I tuffer. I ~---------~---------~----------------------~--------------------------------------------~ IDefine Beginning of Message Control Task I ~---------T---------T----------------------T--------------------------------------------~ ISTQTAM I I I I 1OPEN 1 1 I I 1 (QUEUE"DCBGROUP) I 1 I I 1Initializes the data control blocks for th~1 Idata set to be used for message queueing andl Ithe communications line group. It causes I I foIling to be initiated on the lines, andl lupdating of queue status tables. I ~---------+---------+----------------------+--------------------------------------------~ I I IENDREADY I I I ISpecifies the I instructions. end of the initialization I . I t---------+---------+----------------------+--------------------------------------------~ I LPS1 I I I LPSTART I I 120 I I I Identifies start of message segment; 201 Ispaces for the time stamp, date stamp, andl Isequence out number. I t---------+---------+----------------------+--------------------------------------------~ I I I RCVSEG I I 1 I Instructions following will service headerl land text segments of the input message. I t---------t---------+----------------------+--------------------------------------------~ I I I TRANS I 1RCVE1050 1 IConverts 1050 message characters to I (for all segments, header and text). EBCDIC I I ~---------+---------+----------------------+--------------------------------------------~ I I 1RCVHDR I 1 1 I Instructions following will service Iheader segment of the input message. thel I t---------+---------+----------------------+--------------------------------------------~ I I I SKIP I I , C· , , I I Causes all characters I the , to be skipped. up to and including I I ~---------+---------+----------------------+--------------------------------------------~ I I I I ISEQIN 13 I I I I 1 1 IChecks sequence of numbered messages fori leach terminal as they arrive. Operand isl Ithe number of characters in header sequence I I number field. I ~---------+---------+----------------------+--------------------------------------------~ I I I I I I ! I SOURCE I I I I I 13 I I I I I !! I Checks the validity of the source terminal I Icode received in the message header against I Ithe terminal table provided by the user. I IThe operand specifies the number of charac-I Iters in the source field of the header. Ifl linvalid an error is indicated in the error I ~ half-word. ! ( conti nued) 78 Table 16. Message Control Sample Problem (continued) r---------T---------T----------------------T--------------------------------------------, I Name I Operation I Operand I Comments I ~---------+---------+----------------------+--------------------------------------------~ I I I I I I I ROUTE I I I I I 13 I I I I I IChecks the validity of the destination codel lin the message header. If the destination I Icode is valid the message is subsequently I Iqueued for the specified destination. Oper~1 land specifies the number of characters inl Ithe destination code. I ~---------+---------+----------------------+--------------------------------------------~ I I I I I IEOA I I I I IC';' I I I I ICauses messages to be routed to any addi-I Itional destination. Operand identifies; asl Ithe end of address character. This charac-I Iter must appear in the message header afterl Ithe last destination code. I ~---------+---------+----------------------+--------------------------------------------~ I I I I ITIMESTMP I I I 19 I I I IInserts the time-of-day stamp in the headerl Ifield. First character is blank. Operandi I indicates number of characters to be insert-I I ed. I ~---------+---------+----------------------+--------------------------------------------~ I I I I I IDATESTMP I I IInserts date. I I I I I I I I I I I (See TIMESTMP.) ~---------+---------+----------------------+--------------------------------------------~ I I IMODE I IPRIORITY,C'*' I IIf next character is an * then the character I I following will be the priority. I ~---------+---------+----------------------+--------------------------------------------~ I IENDRCVE I I Specifies that following macro-instructions I I I I Iwill service the message after the end ofl I I I Imessage is received. I ~---------+---------+----------------------+--------------------------------------------~ I I EOBLC I IAllows the 1050 Data Communications Systeml I I I Ito continue receiving after an end-of-block. I lIt also provides a procedure for line cor-I I I I I I I Irection if a transmission error is detected. I IIf the error is not corrected r an error isl I I I I I I lindicated in the error half-word for this I I I I Iline. I ~---------+---------+----------------------+--------------------------------------------~ I I I I I I IERRMSG I I I I I I=X'3000',SOURCE,=C'& IMESSAGE NUMBER INOT IN SEQUENCE' I I I I Sends the error text to the specified ter-I Iminal when error type specified by the maskl lis detected. The message header willi Ireplace the &. The mask is the bit configu-I Iration (in hexadecimal) used to test the I I half-word error indicator. I ~---------+---------+----------------------+--------------------------------------------~ I I I I IERRMSG I I I I=X'8600',SOURCE,=C'& I Sends message on detection IMESSAGE NUMBER Icated by error mask X'8600'. lIN ERROR CORRECT AND I I RES END' I of error indi-I I I I ~---------+---------+----------------------+--------------------------------------------~ I I I I ICANCELM I I IX'8600' I I ISpecifies I canceled. that any I message mask X'8600 isl I ~---------+---------+----------------------+--------------------------------------------~ I I I I I ! IPOLLIMIT I I I I ILIMIT I I I I !! IDetermines whether the terminal has sent thel Irr.aximum number of messages allowed on al Isingle polling pass. Operand is the symbol-I lic name of a field in the terminal table I Iwhich contains the limit of consecutive I !polls for each terminal. ! (conti nued) Appendix A 79 Table 16. Message Control Sample Problem (continued) r---------T---------T----------------------T--------------------------------------------, IName I Operation I Operand I Comments I ~---------+---------+----------------------+--------------------------------------------~ I I IPOSTRCVE I I Indicates l i t h e LPS. the end of the input section ofl I I ~---------+---------+----------------------+---------------------------------------------~ I \SENDHDR \ ISpecifies that following macro-instructions I I I \ \ \ \ \will service the \output message. header segment of thel I ~---------+---------+----------------------+--------------------------------------------~ I I MSGTYPE \=C'P' \ Determines if the message is a type PI \ \ \ \~essage. If the next nonblank character isl I I I I I \ I I I \ \ I \ \ I la P, the following LPS group will handle thel Irressage. The problem program must leave 20 1 I spaces at the beginning of the message fori Ithe out time stamp, date stamp, and sequence I \ number. I ~---------+---------+----------------------+--------------------------------------------~ \ I SKIP 13 ISkips sequence input number. I ~---------+---------+----------------------+--------------------------------------------~ SEQOUT 14 \ 1 1 Sequentially numbers outgoing message destination address. A 3-character sequence nurnter plus a leading blank is inserted. Space rrust be reserved at the beginning by the froblem program. I I I I I I Before: 0 1 192021 22 23 2425 26 27 28 29 Ibib I . ·}r 1 o \ 1 I I, I b I I I, I P / b 12/1 13/ b c H TEXT 1516 17 18 192021 22 2324 25 26 272829 Gill{' I I,I 1 1 1 After: 1 1 13 I Skips destination field. b P \ b \2 \1 \31 b 11 \1 151 b \ C \ H I, \ TEXT ~---------+---------+----------------------+--------------------------------------------~ 1 1SKIP I ~---------+---------+----------------------+--------------------------------------------~ TIMESTMP 19 I Inserts a 6-character time-of-day stamp in 1 1 Ithe outgoing header field plus Itlank. (See SEQ OUT operand.) 1 1 I 1 I I I I leading I \Before:, 1 I 1 1After: 1 1 I a 0 1 6789101112131415161718192021 l~bl~bl--~lb~I,~lpl~bI2~ll~13~lbl~111~15~lbl~cl~HII~lb~ 22 23 24 25 26 27 28 29 I (11 131·11 11 1·11 131 TEXT 1 ~---------+---------+----------------------+--------------------------------------------~ DATESTMP I 1 Inserts a 5-character date stamp in the I I I 1 Irr,essage. I I I Before: ! ! 1 I After: I I 1 0 1 2 3 4 5 6 7 8 9 10 11 12 1314 15 16 17 18 19 20 21 I;!:!:::! :! :! :1 :! '151 Ic IHI, I I, 1,1 ·1, I, II, I b .{131 b 16141·12/8/51 b TEXT / 1 (continued) 80 Table 16. Message Control Sample Problem (continued) r---------T---------T----------------------T--------------------------------------------, I Name I Operation I Operand I comments I ~---------+---------+----------------------+--------------------------------------------~ I I I I I I I MSGTYPE I IAII messages except type P messages will bel I I I Ihandled by the following LPS group. I I I I I I ~---------+---------+----------------------+--------------------------------------------~ I I I I I I ISEQOUT 14 I Inserts a 3-character sequence number ofl I I I Imessage plus a leading blank. I I I I I I ~---------+---------+----------------------+--------------------------------------------~ I I I I I I ISENDSEG I ISpecifies that following macro-instructions I I I I Iwill service header and text segments of thel I I I loutput message. I I I I I I ~---------+---------+----------------------+--------------------------------------------~ I I I I I TRANS I I I I I. I I I I I I I I I ISEND1050 I I ITranslates output message using code conver-I Ision table named SEND1050. I ~---------+---------+----------------------+--------------------------------------------~ I I I I I I PAUSE I I I I I I IUpon recognition of carriage return charac-I Iter, this routine inserts 20 idle characters I Ito provide time for carriage return. I 115=carriage return in hexadecimal; 17=IDLEI I in hexadecimal. I I I I I I I I I I IENDSEND I I I I Identifies the end of instructions used tol I service output messages. I I I I IX'15'.,20X'17' I ~---------+---------+----------------------+--------------------------------------------~ I I I I I I I EOBLC I I I I ~---------+---------+----------------------+--------------------------------------------~ I I I I I I I I I I I I I I I I I I I I I I I IAllows the 1050 Data Communications Systerrol Ito continue sending after receipt of ani lend-of-block. It also provides a procedure I Ifor line correction if a transmission errorl lis detected. If the error is not corrected I Ian error is indicated in the error half-word I I I for this line. I I I I I I I I REROUTE I I I I=X'0040',=C'BOS' I I I I ICauses a message to be queued for thel Iterminal specified when the error type spec-I lified in the mask X'0040' is detected. I I I I I ~---------+---------+----------------------+--------------------------------------------~ I ~---------+---------+----------------------+--------------------------------------------~ I I I IPOSTSEND I I I I I _________ I _________ L ~ I I I I IIdentifies the end of the sending portion ofl I Ithe LPS. It also indicates the lastl I linstruction of this LPS. I I ______________________ LI ____________________________________________ JI ~ Appendix A 81 Table 17. QTAM Sample Problem Programs r---------T---------T----------------------T--------------------------------------------, I Name I Operation I Operand I Comments I ~---------+---------+----------------------+--------------------------------------------~ ISTPROCES IOPEN I I I (PROCESSQ) I I Opens data set that contains the queue ofl Imessages to be processed. 1 1 1 1 1 1 1 I I I 1 ~---------+---------+----------------------+--------------------------------------------~ LOOP GET Gets the next sequential segment from the queue referred to in the data control block and places it in workarea WORKA1. Message is now available for processing by the. ~roblem program. The message is obtained from the queue specified by the parameter ddname
Source Exif Data:File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.3 Linearized : No XMP Toolkit : Adobe XMP Core 4.2.1-c043 52.372728, 2009/01/18-15:56:37 Create Date : 2011:10:04 16:29:59-08:00 Modify Date : 2011:10:04 18:32:57-07:00 Metadata Date : 2011:10:04 18:32:57-07:00 Producer : Adobe Acrobat 9.46 Paper Capture Plug-in Format : application/pdf Document ID : uuid:fe7ff217-a238-4d94-8898-f404a57eccb6 Instance ID : uuid:3277b103-4bd9-432f-bda4-e61bf7c0239e Page Layout : SinglePage Page Mode : UseOutlines Page Count : 94EXIF Metadata provided by EXIF.tools