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 PDF.
Page Count: 94

DownloadC28-6553-2_Telecommunications_Preliminary_Specifications_Dec65 C28-6553-2 Telecommunications Preliminary Specifications Dec65
Open PDF In BrowserView 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                      : 94
EXIF Metadata provided by EXIF.tools

Navigation menu