GY30 2029 0_TCAM_PLM_Jan71 0 TCAM PLM Jan71

GY30-2029-0_TCAM_PLM_Jan71 GY30-2029-0_TCAM_PLM_Jan71

User Manual: GY30-2029-0_TCAM_PLM_Jan71

Open the PDF directly: View PDF PDF.
Page Count: 1326

DownloadGY30-2029-0_TCAM_PLM_Jan71 GY30-2029-0 TCAM PLM Jan71
Open PDF In BrowserView PDF
GY30-2029-O

Systems

IBM System/360
Operating System
Telecommunications
Access Method (TeAM)
Program Logic Manual
Program Number 360S -

ca - 548

The IBM System/360 Telecommunication Access Method
(TCAM) allows high-level, device-independent communication with telecommunications equipment. This program
provides a flexible message control language that can be
used to achieve installation-oriented message control.
This publication describes the internal logic of TCAM. It
identifies and discusses the parts of the program that
perform specific functions and relates these parts to the
program listing. It is directed to the IBM customer
engineers and system engineers, who need information on
the internal organization and logic of TCAM in order to
provide program maintenance.
In order to understand the logic of TCAM, the reader must
have a general understanding of IBM System/360 operating
system. In addition, the .following are prerequisite publications:

• IBM System/360 OS TCAM Concepts and Facilities,
GC30-2022, to gain familiarity with the overall concepts
and structure of TCAM .
• IBM System/360 OS TCAM Programmer's Guide,
GC30-2024, to learn how to construct al1d modify a
TCAM message control program and a TeAMcompatible application program.
In addition, the IBM System/360 OS System Control
Blocks publication, GC28-6628, provides co-reqUisite inforrna tion on system control blocks used by TCAM.
• The information relating to the Time Sharing Option
(TSO) in this manual is preliminary and should· be used
accordingly. '

PREFACE
The Q~glli~£ii2n £nd ~§g Q1 !n~ !£A~ g£2g~£m Log~£ Ma~y£! section of
this beok defines the audience for which this program logic manual was
intended, explains hew the book is organized, and suggests how the
reader might best familiarize himself with its contents. In order to
understand the logic of TCAM, the reader must have a general
understanding of System/360 as.
In
addition,
the
following
Frerequisite publicaticns are applicable:

•

I~~ 2~~!g~L36~

•

I~~ 21~te~Ll~~ Q~ ICA~ Rf~~~~~g£~~ Q~iQ~,

2022,
to
of TeAM.

OS lCA~ £Q~~£12 an~ ~~cilit~~§,
Order No.
GC30gain familiarity with the overall concepts and 'structure

learn how to ccnstruct and modify a TeAM
aPFlication program.

Order No. GC30-2024, to
and a TCAM-compatible

MCP

The !~~ ~~§!gmLd~Q Q~ ~stgID ~ontrol BIQ£~2 publication, Order No.
GC28-6628,
provides corequisite information on system control blocks
that are used by TCAM.
T~e information relating to the Time Shnring Option

is pr~liminary and should be used accoraingly.-

First Edition (Januarv 1971)
This edition applies
Operatinq System.

to

release

20.0

of

IBM

System/360

The contents of this publication are subject ot chanqe from
time to time. Chanqes will be reflected in periodically
updated editions. Before usinq this publication, consult the
latest System/~60·~-Newsletter, GN20-0360, for the editions
that are applicable and current.
Requests for copies of IBM publications should be made to
your IBM representative or to the IBM branch office serving
your locality.
A form is provided at the back of this publication for your
comments. If the form is missinq, comments may be addressed
to IBM Corporation, Publications Center, Dept. E01, P. O. Box
12275, Research Trianqle Park, North Carolina 27709.

© Copyriqht International Business Machines Corporation 1971

(TSO) in this manual

nrqanization ana Use of the TCAM Proqram Loqic

~anual

SEC~IO~ 1:
INTRonUC~TON
Purpose of ~CAM
System structure
System Generation
~CAM Macro Definitions
~CAM Resident Modules
TCAM Support Modules
TCAM ~ransient Modules
System Nucleus Modules
~he Messaqe Control Proqram in the System
~ssemblinq and Linkaqe Editinq a Messaqe Control Proqram
Execution of a Messaqe Control ?roaram
~he ~pplicaticn Proqram in the SYstem
~ssemblinq and Linka~e Bditinq an APplication Proqram
Execution of an APplication Proqram
~elationship of the as Dispatche~ to ~CA~
The ~CAM Dispatcher
Elements, Queues, and Subtasks
~he Readv Oueue
principle of Tpost and Twait
~C~~ control Areas
TCA~ Address vector ~able
Invitation list
~ermname mabIe
Terminal Table
Sinqle Entry
Group Entry
Distribution Fntrv
Cascade ~ntrv
urocess Entrv
Loqtype Entry
Line Entry
Option Table
option Characteristics Table
Device Characteristics Table
special ~haracters ~able
Translation Tables
Besource Control Block
subtask control Block
Oueue Control Block
T,ine Contrel Block
Station Control Block
~hannel Proqram Block
Element ~equest Block
Process Control Plock
Operator Control Address vector ~able

xxiii
25
25
25
27
27
27
27
27
28
28
28
28
~o

30
30
31
32
32
36
37
37
38
38
41
~2

43
~4

44
~5

45
~6

46
~6

47
47
47
~9

50
'')1
52
52
52
S3
53
54
54

iii

Selected Options
I')perator Control
~pplication Proqram Processinq
Line Queuinq Options
~essaqe Oueuinq Options
toqqinq.
~heckpoint/Restart

TCAM as a Startable Procedure
Error Recoverv Procedures
Subtask Trace
Cross ~eference Table
~CAM in a Multiprocessinq Environment
Time Sharinq Option
~odule

~ttributes

SBCTTON 2: ME~HOD OF OPERA~TON
l.oqic of TCA 1'4'
~he Disk Messaqe Oueue Tnitializer
Initialization of a Messaqe control ?roqram
Functions of T~~PO
~unctions of the Open Routines
Preparation of Communications Lines ~or Transmission
~unctions of BEADY
svstem Control
~unctions of the TCJM Dispatcher
Fun c t ion s 0 f the AQC TT, SVC 1 0 2 R0 uti n e
~essaqe ~andlinq in a Messaqe Control Proqram
tine ft1anaqement,
A Feceive operation
!. Send Operation
Buffer Manaqement
Buffer Requestinq and ~llocatinq
Functions of Puffer Association
Deallocatinq Buffers
Functions of Fuffer Peturn
Messaqe Handlinq ~outines
Functions of the User Interface ~outine
~unctions of ST~PTMq
~unctions of the Incominq Group of a Messaqe Handler
Functions of the outqoinq Group of a ~essa~e ~andler
Queue Manaqement
~onreusable Disk Oueuinq
?eusable Disk Oueuinq
Main Storaqe Oueuinq
Main Storaqe Oueuinq with Dis~ Backup
Special Oueuinq consinerations
Oueuinq Manaqement ?outines
Disk I/O Manaqement ~outines
Multiple Arm Support
Special ~essaqe Handlinq Functions
!Jolfi ~unction
Cancel ~essaqe Function
TJock ~unct ion
Initiate Function
~ummary of Messaqe Flow

iv

54
SC;

51)
55
'16

1:)6
')7

57
'17

58
'18
'18
'19

59
61
61
62
62
63

61
64
64
64
64
69
73

74
74
76
77

80
83

84
84
84
85
85
86
87
89
89

101
104
104
104
105
108

112
112
112
113

114
115
116

Closedown of a Messaae control Proqram
Functions of the MCP Closedown Processina and Closedown
Completion 'Routines
Close 'Routines
Application ~roqram Processinq
Application Proaram Initialization and Termination
~pplication ?roqram - Initialization Functions
Messaae Control Proaram - Initialization Functions
Application ?roqram - Termination ~unctions
Messaqe Control Proqram - ~ermination Functions
Application Proaram Tnput/Output ~unctions
Input Functions of an Apulication uroaram
Output Functions of an ~pplication Proqram
~essaqe

~etrieval

116
116
117
117
118
118
118
120
120
120
120
120
121
12 '5
125
125
128
128
128
128
129
130

Compatible OTAM.
Compatible O~A~ GET/PUT Support
compatible QTAM Messaqe ~etrieval Support
Functions of the Network Control ?acilities
Interface with Operator Control
Network control -with an APplication Proqram
Operator Control
Processinq Standard Operator control Comroands
Processinq System Console Commands
Processinq Special APplication Procrram Commands
Operator Control/ChecKPoint Tnterface
Operator Centrol Processina ~outines
CheCKpoint
Function of the Checkpoint Executor
~he Bnvironment Checkpoint ?outines
The Incident Checkpoint Routines
~he CKREO Checkpoint Routines
Error Recovery Procedures
Messaqe Bandlinq with Time Sharinq Option Support
~SO Tine Manaaement Support
TSO Buffer Panaqe~ent Support
TSO Oueue Manaqement support
TSO ~CP Closedown Process ina support

132
132
132
133
134
136
139
139
141
1fl1
142
143
144

SECTION 3:
1?FOGRAM OBGANIZA"T'rO'N
System Service Foutine
Disk Messaae Oueue Initializer
Tnitialization ~outines
~ink Boutine
WTO~ Tnterpreter ~outine
INT~O GFTMAIN Routine
~ermname Table Sort ~outine
Attach Poutine
DisK Messaae Oueues Open ?outines
Checkpoint Open Fout(ne
Checkpoint Disk Allocation Routine
ChecKPoint Disk Initialization ~outine
Checkpoint/Restart from Bnvironment Record ~outine
Checkpoint/Restart from Incident and CKFEQ Records Routine
Checkpoint continuation Restart ~outine

145
145
145
148
148
149
151
152
153
153
155
157
158
'59
160
161

1~1

v·

Checkpoint continuation Pestart Subroutine
Line Group Open Poutines
Open Error Handler
Start-up Messaqe poutine
Ready 'Routine
System control Routines
F'f'CAM Dispatcher
TeAM Dispatcher with Subtask F'f'race
AQCTL SVC 102 Routine
Post Penninq poutine
Messaqe Handlinq - Line Manaqement Poutines·
teased Receive Scheduler
Dial peceive scheduler
Local Feceive Scheduler
Send Scheduler
Send Scheduler for Leased Lines and No TSO
Send Scheduler with No TSO
Buffered Terminal Scheduler
Activate-I/O Generator Suhtask
Activate-I/O Generator Subtask ~or BSC Lines
Activate-I/O Generator Subtask for Start/Stop Lines
Activate-T/O Generator Sub task for Leased and Start/Stop
Lines and No "'SO
~ctivate-I/O Generator Subtask for a QTA~ Compatible System
Line End Appendaqe
T,ine End Appendaqe for BSC" Lines
'Line End Appendaqe for start/Stop Lines
Line End Appendaqe for Leased and Start/stop Lines
and No TSO
Line End APpendaqe for a QTAM compatible System
Attention Routine
Attention ~andler
Line I/C Interrupt Trace Routine
~ime nelay Subtask
SYstem Delay Subtask
stop Line T/0 SubtasK
Messaqe Handlinq - Puffer Manaqement Modules
Buffer Manaqement Module
Transparent Transmission ccy ~uildinq Routine
PCT Appendaqe
Messaqe qandlinq - control Routines
nser Interface 'Routine
Return Interface Poutine
STARTMH Subtask
Tncominq/Ontqoinq Messaqe Delimiter Routine
Messaqe Randlinq - Functional Poutines
Date and Time Provision Routine
output Sequence Number Provision Boutine
Locate OPtion Field Address Routine
Messaqe Limit Pontine
Input Sequence ~umber Insertion Routine
Skip Forward and Scan Foutine
Skip to Character Set Routine
Line Control Insertion Boutine
Address Finder Routine
vi

163
164
167
168
170
171
171
178
178
. 182
183
183
184
186
187
188
189
189
191
192
193
193
194
195
197
197
198
199
199
200
200
201
204
206
207
207
209
210
211
211
212
212
215
219
219
220
221
222
223
225
230
232
236

Oriqin Bcutine
Multiple Insert/Remove ~outine
"nit ?eauest Interface Routine
Remove at Offset ~outine
Operator Control Interface poutine
Cutoff ~essaqe ~ransmission Boutine
Lookup ~erminal Entry "Routine
Translate puffer Routine
Screen "Routine
Skip ~ackward poutine
Insert at nffset Routine
Line control Initialization Boutine
counter "Routine
Multiple Insert at Offset Routine
ChecKPoint Request Routine
E0B/ETB Handlinq Subtask
"nit Request Routine
loq Seqment poutine
~essaqe ~analina - Functional Subroutines
In sert Data Bout ine
puffer step "Routine
Binary Search ~outine
~ermname Table Code
Messaqe Handlinq - Buffer Disposition Modules
Ruffer Disposition Subtask
Cancel Messaqe ~outine
Operator Awareness Messaqe "Router
qold/~elease ~erminal Poutin8
Create an Error Messaqe "Routine and Subtask
Pedirect a Messaqe Routine
Messaae Generation Routine
Loq Messaqe ~outine
1,oq Schedul er
Multiple Poutinq Subtask
TJock Poutine
Hnlock Routine
Distribution List Subtask
Cascade list Subtask
~essaqe B.andlinq - Queue Manaqement Routines
Destination Scheaul~r
Destination Scheduler - Main storaqe Oueuinq Only
Destination Scheduler - Disk Oueuina Only
cpp Initiali7ation
CPR Initialization - Main storaae Oueuinq Only
CPB Initialization - Disk Oueuinq Only
EXCP T)river
f,XCP Driver for a Sinqle C~P
Disk Bnd npperdaqe
nisk End Appepdaqe for a Sinqle CPB
Feusability-Copy Subtask
Messaqe Control Proqram Termination poutines
Resident Closedown Completion
Nonresident Closedown Completion Pouti.ne
MCP Closecown Processinq Poutine
tine Group Close Routines
Checkpoint Close Routine

237
238
242
243
246
246
248
249
251
25~

254
260
262
263
26'5
266
267
267
268
268
271
272
273
271
273
274
275
276
277
278
279
280
,290
281
283
283
284
284
285
285
287
288
290
292
293
295
296
2Q7
298
298
302
302
302
303
304
306
vii

Oueues Close Boutine
Proqram Initialization and ~ermination Boutines
GBT/PUT and READ/WPITE Open Executor
GET/PUT and BEAD/W~T.~E Close Executor
Open/Close Subtask
APplication Proqram I/O Routines
~et Scheduler
~E~/READ Poutine
Check ~outine
Get Scheduler FIFO Routine
nnT/WQTTE Boutine
Put Scheduler
~pplicatton Proqram Messaqe Retrieval - Point Foutinq
point ~outine
~pplication Proqram Compatible Q~A~ Routines
GET compatible Routine
P"T Compatible ~outine
Retrieve Service Routine
Retrieve Scheduler
Application Proqram Network Control poutines
Operator Control/Application ~roqram Tnterface Routine
TCOPY Service Poutine
QCO~Y Service ~outine
TCHNG Service ~outine
TCOPY Service ~outine
Password Scrambler Poutine
Operator Control ~outines
Resident Operator control Module
Operator Control Control Module - I·oad 0
Operator Control Control Module - Load 1
Operator Control Control ~odule - load 2
Operator Control control Module - Load 3
Operator Control ("ontrol Module - I.oao. 4
Operator Control Control Module - Load 5
TCAM Command Scheduler - SVC 34
Modifv Options Poutine
Copv Line Information ~outine
COpy ~erminal Information Boutine
COpy ~CB Information ~outine
Copy OC~ !nformation Poutine
COpy gelo ~erminals Routine
Copy Tnvitation Tist Bntrv Boutine
COpy Operator Control ~erminal ~outine
Chanqe Control Terminal ~outine
Chanqe Terminal ~outine
Alter Trace Status ~outine
Stop/~esume ~erminal ~ransmission ?outine
~tart line ~outine
~top tine Routine
~odifv Poll Poutine
~odifv Intense poutine
Chanqe Tntp.rval Tvpe Poutine
MCP Closeoown Processinq ~outin~
ICHNG proc€ssinq ~outine
~essaqe

~pplication

viii

306
307
307
309
310
312
312
313
31S
316

316
317
318
3,8
319
319
320
321
322
323
323
325
325

326
327
328
328
328
329
3~O

331
332
333
333
334
335
337
318
339
341
342
343
345
346
347
349

350
352
354
~57

358
360
362
362

On-Line ~est Interface Routine
COpy Invitation list status ~outine
n~erator Control work Area CSEC~
DEBUG Service Aid Router
Check~oint

~outines

ChecKPoint F-xecutor
Bnvircnment checkpoint ~outine
ChecKPoint Oueue Manaqer
Cbeckpoint Disk ~/O Routine
Ch~ckpoint Notification and Disposition Routine
Checkpoint Disk Fnd ~ppendaqe
~uild Incident ~ecord for MH ~outine
Application Proqram/Checkpoint Tnterface ~outine
Build Incident Record for ~CH~G Ro~tine
TncidentCheckpoint for Operator Control Routine
Build C~~EO Disk PecorR Routine
Checkpoint - No Available Core ~outine
\heckpoint - No Incident ~ecords ~outine
~rror Pecoverv Procedure Routines
Start-stop EFP Control Module
Read/Write Unit Check and unit Exception EFP ~odule
Non-operational Con~rol Unit ERP Module
Unit Check for Non-read, Non-write, and ~on-pol1
CCWs F~P ~odule
Auto Poll and Read Response to Poll Unit Check and Unit
Fxception ~RP Module
Error Post and Second Level CCW Return ~odule
"nit check and unit Exception on ~ead/Write CCws for Audio
and 2260 Local Devices EBP Module
start-Stop Channel Check EBP Module
Close~own Terminal statistics Recordinq Module
BSC ERP Control ~odule
BSC Fead/Write Eauipment Check, Lost Data, Intervention
Required, and nnit Exception ~RP ~odule
ESC Read/Write Data Check, Overrun, and Command Beiect
F~P Module
BSC Second Level CCW ~eturn Module
BSC Error Post Module
BSC Channel Check ERP Module
Time Sharinq Cption Poutines
~SO Attention Routine
TSO carriaqe Subroutine
Time Sharinq Destination Scheduler
~SO ~10C Fdit Routine
TSO TOPALT Routine
~SO Panqup ~outine
TSI~pnT Routine
~~o Loqon p.outine
TSO Messaqe Generation Routine
TsonTPU~ Routine
ST~RTMH Subtask for ~C~M-~SO ~ixed
TSO Simulated ~ttention Boutine
TSO Abend Interface Boutine
TSO INMSG/CnTMSG linker

36~

365

367
367
369
369
371
372
312
313
374
375
375
317
378
37q
379
380
381

381
383
38~

384
385
385
386
387
388
388
390
3q1
392
393
393
394
394
396
397
398
399
400
402
404
407
408
412
415

411
418

ix

Tsn Asynchronous Time Delav Removal Routine
Sharinq Scheduler
Flowcharts
Tim~

"'C~1V!

SEC"'ION

u:

MTCROFICFE DTREC"'OBY

SEC~ION

S:
D~TA AREA LAYOUTS
TeAM Control Flock Linkaqes
Linkaqes from a "'CAM Buf~er Prefix
~ddress Vector Table
Terminal Table
Termname Table
()ption Table
0ption Characteristics Table
nevice Characteristics "'able
special Characters Table
~esource Co~trol Block
Oueue Control Block
5ubtask control Block
~lement ~equest Plock
tine Control Flock
station Control Block
Channel Proqram Block
Data Control plock
Data Extent Block
Data Event Control Block
OS T/O Device Characteristics Table
Buffer Prefix
'Oisk Data Area
~pplication Proqram Data ~reas
Process Control Plock
Data ~xtent Block for APplication Proqrams
Access "ethod Work Area
Process Entrv Work ~rea
nperator Control Data Areas
Operator Control ~ddress vector "'able
Command Input Buffer
Checkpoint Data Areas
Checkpoint ~lements
Checkpoint ~ork Area
Checkpoint Disk Pecords
Parameter Lists for the ~essaqe Handlinq Macro Fxpansions

SECTION 6:
DIAGNOSTIC AIDS
SCB Error Word Usaqe by Module
LCB Status Bvte Osaqe bv ~odule
~ormatted 'T'CAM Dump
Trace 'T'ables
Subtask Trace Table
Line Input/Output Interrupt Trace Table
Format of the Subtask Trace Table Control Block
Format of a Subtask Trace "'able Entrv
Cross Feference Table
"'able of Messaqe Oriqins
Table of Cross-Beferences Between TeAM Modules

x

419
420

427
897

91-1
911
913

915
940
945
946
947
948
949
951
951
956
957
957
964

969
973
982
98')
9B6

987
991

992
992
995
996
1000
1003
1001
1007
1008
1008
1009

1015
1037
1039
1039
104~

1045
1077
101'7
1078
1077
1078

1079
1080
1088

~CAM

Linkaqes Between Macro Expansion and Modules
Table of Reqister rysaqe bv Module

~ppenaix A:
Appendix B:
~ppendix C:
Appendix D:

List of TCAM Modules bv Library
of TCAM Queues and ~CBs
List of Relative Priorities in TCAM
TCAM Channel Proqrams and TP Operation Codes
~ist

G1,OS S ARY

1108
1115
1171

1187
1195
1199
1307

1323

ALPHABETIC LISTING OF TCAM MODULES BY CSECT NAME
IEDAYA
IF,DAYC
IEDAYD
I'EDAYE
TEDAYF
IEDAYH
TEDAYI
IEDAYL
IEDAYM
IEDAYO
IEDAYR
TEDAYS
IEDAYT
TEDAYX
IEDAYY
TEDAYZ
IEDO!A
IEDQAC
IEDQAD
IEDQAE
IEDQAF
IEDQAG
IEDOAH
IEDQAI
IE!)QAJ
IEDOAK
IEDQAL
IEDOAM
IEDQAN
IEDQAO
IEDQ~P

IEDQAQ
IEDQAR
IEDQAS,
IEDQAT
TB.DOATTN
IEDQAtJ
IEDQAV

TSO Attention Routine
TSO Carriaqe Subroutine
Time Sharinq Destination Scheduler
TSO TIoe Edit Routine
TSO IOHALT Foutine
TSO Hanqup Routine
TSINPUT Routine
TSO Loqon Routine
TSO Message Generation Routine
TSOUTPUT Routine
STARTMH Subtask for TCAM-TSO Mixed
TSO Simulated Attention Routine
TSO Abend Interface Routine
TSO INMSG/OUTMSG-Linker
TSO Asvchronous Time Delav Removal Routine
Time Sharinq Scheduler
STARTMH Subtask
.
Date and Time Provision Routine
Output Sequence Number·Provision Routine
Locate Option Field Address Routine
Insert Data Routine
Messaqe Limit Routine
Input Sequence Number Insertion Routine
Skip Forward and Scan Routine
Skip to Character Set Routine
Line control Insertion Routine
Address Finder Routine
Oriqin Routine
Multiple Insert/Remove Routine
unit Request Interface Routine
Remove at Offset Routine
Operator Control Interface Routine
Cancel MeSsaqe Routine
Hold/Release Terminal Routine
Create an Frror Message Routine and Subtask
Attention Routine
Cutoff Message Transmission Routine and SubtasK
Lookup Terminal Entry Routine

394
396
397
398
399
400
402
404
407
408·
412
415
417
418
419
420
212
219
220
221
268
222
223
225
230
232
236
237
238
242
243
246
274
216
277
199
246
248
xi

IEDQ!W
lEDQAX
IEDOAY
IEDQAZ
IEDQ!O
IEDQA1
IEDQA2
IEPQ!3
TEDQ!4
TEDQAS
lEDQA6
TEDOA7
I'EDQ!8
IEDOBA
lEDOBB
IEDQBC
TEDOBD
lEDQqE
lEDOBF
lEDQBG
lEDOBL
IEDQBT
TEDOBW
IEDQBX
TEDOBY
Tf,DQBZ
lEDQCA
TEDQCF
IEDQCG
tEDQCH
TEDQCT
IEDQCJ
T EDOCK
IEDQCL
TEDQCM
IEDQCN
TEDQCa
IEDOCP
IEDQCQ
JEDOCU
IEDQCV
TEDQCW
IEDQCX
lBDQC7
IEDQCO
IBDQC1
IEDQC2
IEDQC3
TEDQC5
IEDQC6
TEDOEC
rEDQES
TEDQET
IEDQETJ
xii

Translate Buffer Routine
Buffer Step Routine
Screen Routine
Redirect a Message Routine
Skip Backward Routine
Binary Search Routine
Insert at Offset Routine
Dynamic Translation Routine
Incominq/Outgoing Message Delimiter Routine
Forward Routine
Line Control Initialization Routine
counter Routine
Multiple Insert at Offset Routine
Multiple Routing subtask
Checkpoint Request Routine
Distribution List Subtask
Buffer Disposition Subtask
Lock Routine
Unlock Routine
Cascade List Subtask
Message Generation Routine
EOB/ETB Handling Subtask
Unit Request Routine
Log Segment Routine
Log Messaqe Routine
Log Scheduler ~outine
Resident Operator Control Module
Modify Options Routine
Copy Line Information Routine
Copy Terminal Information Routine
Copy LCB Information Routine
Copy QCB Information Routine
Copy Held Terminals Routine
Copy Invitation List Entry Routine
Copy Operator control Terminal Routine
Change Control Terminal Routine
Change Terminal Routine
Alter Trace Status Routine
Stop/Resume Terminal Transmission Routine
start Line Routine
stop Line Routine
Modify Poll Routine
Modify Intense Routine
Change Interval Type Routine
MCP Closedown processing Routine
ICHNG Processing Routine
On-Line Test Interface Routine
Copy Invitation List status Routine
Operator Control W~rk Area CSECT
DEBUG Service Aid Router
Put Scheduler
Retrieve Service Routine
Operator 'Control/Application Program Interface
Routine
Open/Close Subtask

,249
271
251
278
253
272
254
256
215
257
260
262
263
281
265
284
273
283
283
284
279
266
267
267
280
280
328
335
337
338
339
341
342
343
345
346
347
'349
350
352
354
357
358
360
362
362
364
365
367
367
317
321
;323

310

IEDQ'EW
lEDO~Z

lEDQE1
IEDOE2
IEDQ'E3
TEDQE4
IEDQ~6

IEDQ'E7
IEDQFA
lEDQ1"A1
IEDQFA2
IEDOGA
JEDQGT
TEDQHG
TEDQHI
IEDQHK
IEDQHM
IEDQHM1
IEDQHM2
TEDOKA
lEDQKB
lEDQKC
I'EDQKD
IEDQKE
IEDQLM
TEDONA
IEDQNA2
I EDON.B
IEDQNT)
IEDQNF
TEDQNG
TEDONH
IEDQNJ
IEDONK
I'EDQNM
IEDONO
TEDONP
rEDONQ
IEDQNR
IEDQNS
IEDONX
lEDQOA
IEDQOB
IEDQOG
IEDOOM
TEDQOS
IEDOTNT
IEDOUl
lEDOXA
lGC0010D
IGC0110D
IGC02'10D
IGC0310D

Get Scheduler
Get Scheduler FTFO Routine
TCOPY Service Routine
QCOPY Service Routine
TCHNG Service Routine
rCOpy Service Routine
Password Scrambler Routine
Retrieve Scheduler
CPB Initialization Module
CPB Initialization - Main Storaqe Only Queuing
CPB Initialization - Disk Only Queuing
Buffer Manaqement Module
Transparent Transmission CCW Building Routine
Time Delay Subtask
System Delay Subtask
Stop Line I/O Subtask
Destination Scheduler
Destination Scheduler - Main Storage Only Queuinq
Destination Scheduler - Disk Only Queuinq
Activate-I/O Generator Subtask
Activate-I/O Generator Subtask for BSC Lines
Activate-I/O Generator Subtask for Start/Stop Lines
Activate-I/O Generator Subtask for Leased and
Start/Stop Lines and No TSO
Activate-T/O Generator Subtask for a QTAMCompatible System
Return Interface Routine
Resident Closedown Completion Module
Nonresident Closed6wn Completion Module
Application Proqram/Checkpoint Interface Routine
Ready Routine
Checkpoint Executor Routine
Build Incident Record for MH Routine
Build Incident Record for TCHNG Routine
Incident Checkpoint for Operator Control Routine
Environment Checkpoint Routine
Build CKREQ Disk Record Routine
Checkpoint Queue Manager
Checkpoint Disk I/O Routine
Checkpoint Notification and Disposition Routine
Checkpoint - No Available Core Routine
Checkpoint - No Incident Records Routine
Operator Awareness Messaqe Router
Link Routine
WTOR Interpreter Routine
INTRO GETMAIN Routine
Termname Table Sort Routine
Attach Routine
Termname Table Code
User Interface Routine
Disk Message Queue Initializer
Operator Control Control Module - Load 0 - SVC 104
Operator Control Control Module - Load 1
Operator Control Control Module - Load 2
Operator Control Control Module - Load 3

312
316
325
325
326
327
328
322
290
292
293
207
209
201
204
206
284
287
288
191
192
193
193

194
212
302
302
375
170
369
375
377
378
371
379
372
372
373
379
380
275
148
149
151
152
153
213
211
145
329
330
331
332
xiii

IGC0410D
IGC0510D
IGC102
IGC1303D
IGE0004G
IGE0104G
IGE0204G
IGE0304G
IGE0404G
IGE0504G
IGE0604G
TGE0804G
IGE0904G
IGE0004H
IGE0104H
IGE0204H
IGE0404H
TGE0504H
IGE0804H
IGG019QO
TGG019Q1
IGG019Q2
TGG019Q3
IGG019Q4
IGG019Q5
IGG019Q6
IGG019Q7
IGG019Q8
IGG019RA
IGG019RB
IGG019RC
IGG019RD
IGG019R~

IGG019RG
IGG019RH
IGG019RI
IGG019RJ
IGG019RK
IGG019RL
IGG019RM
IGG019RN
IGG019RO
IGG019RP
IGG019RQ
IGG019RO
IGG019R1
IGG019R2
IGG019R3
IGG019R4
xiv

Operator Control Control Module - Load 4
333
Operator Control Control Module - Load 5
333
AQCTL SVC 102 Routine
178
TCAM Command Scheduler - SVC 34
334
Start/Stop ERP Control Module
381
Read/Write unit Check and Unit Exception ERP Module
383
Non-operational Control unit ERP Module
384
unit Check for Non-read, Non-write, and Non-poll
CCis ERP Module
384
Auto Poll and Read Response to Poll unit Check and
unit Exception F.RP Modul~
385
Error Post and Second Level CCW Return Module
385
unit check and unit Exception on Read/Writ€ CCWs for
Audio and 2260 Local Devices ERP Module
384
Start/Stop Channel Check ERP Module
387
Closedown Terminal statistics Recording Module
388
BSC ERPControl Module
388
BSC Read/Write Equipment Check, Lost Data, Intervention
Required, and unit Exception ERP Module
390
BSC Read/Write Data Check, Overrun, and Command Reject
ERP Module
391
BSC Second Level CCW Return Module
392
BSC Error Post Module
393
BSC Channel Check ERP Module
393
Line I/O Interrupt Trace Routine
200
Local Receive Scheduler
186
Line End ,Appendage for BSC Lines
197
Lin~End Appendage for Start/Stop Lines
197
Line End Appendage for Leased and Start/Stop Lines
and No TSO
198
Line End Appendage for a QTAM-Compatible Sys~em
199
Send Scheduler for Leased Lines and No TSO
188
Send Scheduler with No TSO
189
Checkpoint Continuation Restart Subroutine
163
Checkpoint Disk End Appendage
374
TCAM Dispatcher
171
EXCP Driver
295
Buffered Terminal Scheduler
189
EXCP Driver for a single CPB
296
GET/READ Routine
313
GET Compatible Routine
319
PUT/WRITE Routine
316
PUT Compatible Routine
320
Disk End Appendage for a Single CPB
298
Check Routine
315
Point Routine
318
PCI Appendage
210
TCAM Dispatcher with Subtask Trace
178
Reusability-Copy Subtask
298
Post Pending Routine
182
Line End Appendage
195
Dial Receive Scheduler
184
Disk End ~ppendage
297
Leased Receive Scheduler
183
Send Scheduler
187

TGG019RS
IGG019R6
IGG01930
IGG01931
TGG01933
TGG01934
TGG'01935
IGG01936
IGG01937
l.GG01938
IGG01939
IGG01940
IGG01941
IGG01942
IGG01943
IGG01944
TGG01945
IGG01946
TGG01947
IGG01948
IGG01949
IGG02030
IGG02035
IGG02036
IGG02041
IGG02046
IGG02

Attention Handler
start-u~ Messaqe Routine
Disk Message Queues Open Routine - Load 1
Disk Message Queues Open Routine - Load 2
Open Error Handler
Disk Message Queues Open Routine - Load 3
Line Group Open Routine - Load 1
Line Group Open Routine - Load 2
Line Group Open Routine - Load 3
Line Group Open Routine - Load 4
Line Group Open Routine - Load 5
Line Group Open Routine - Load 6
Checkpoint Open Ro~tine
Checkpoint Disk Initialization Routine
Checkpoint/Restart from Environment Record Routine
Check~oint/Restart from In~ident and CKREQ Records
Routine
Checkpoint Continuation Restart Routine
GET/PUT and READ/WRITE Open Executor - Load 1
GET/PUT and READ/WRITE Open Executor - Load 2
Line Group Open Routine - Load 7
Checkpoint Disk Allocation Routine
Disk Message Queues Close Routine
Line Group Close Routine - Load 1
Line Group Close Routine - Load 2
Checkpoint Close Routine
GET/PUT and READ/WRITE Close Executor - Load 1
GET/PUT and READ/WRITE Close Executor - Load 2

200
168
153
154
167
154
164
165
165
166
166
166
155
158
159
160
161
307
307
166
157
307
304
305
306
309
310

xv

F'T.JOWCHA'RTS
A. A.
~C.

~

D.

AE.
~".

AG.
A H.

AT.
At! •
1\~.

AT .•
~ 1'1.
~~.
~().

A P.

AO.
A~.

~S.

A."".
An.
:A " •

A TJ.
~ ~.

AY.
7.
AO.
~.

A1•

A2.
~,.

A 4.
~

t;.

A~.

Po.

7 •

Ag.
B~.

BB.
~C.

:RD.
~F •

BF.
BG.
:AL.

Brr' •
BW.
BX.
BY.
B'?.

CA.
C"'f!l'.

eG.
CQ.
CT.

""{vi

STA.'PTM H S ubtask
nate and ~ime Provision Boutine
nutput Sequence Number Provision ~outine
Locate Option Field Address ~outine
Tnsert Data Routine
Messaqe Timit Routine
Input Sequence Number Insertion Routine
Skip ~oiward and Scan Routine
~kip to Character set Poutine
~ine Control Insertion Routine
Address Finder 'Poutine
Oriqin 'Poutin~
M.ultiple T.nsert/Femove ~outine
nnit Request Interface ~outine
~emove at Cffset Foutine
nperator Control Interface ~outine
Cancel Messaqe ~outine
Hold/Release ~erminal Routine
create an Error Messaqe ~outine and Subtask
cutoff M.essaqe rr'ransmission ~outine
Lookup Terminal Entrv Boutine
rr'ranslate Buffer 'Poutine
~uffer step ~outine
~creen Routine
Redirect a Messaqe Routine
Skip Backward Routine
~inary Search Routine
Tnsert at Cffset Routine
Dvnamic Translation Routine
Tncominq/Ontqoinq Messaqe Delimiter Routine
Forward 'Routine
tine control Initialization Boutine
Counter Routine
Multiple Insert at Offset Routine
Multiple Foutinq Subtask
Checkpoint Request Routine
Distribution list Subtask
Buffer Disposition Subtask
'Lock Boutine
TTnlock Routine
Cascade List Subtask
Messaqe Generation Pontine
EnB/FT~ Handlinq Subtask
"nit Request Poutine
Loq Seqment Routine
Loq Messaqe Routine
Loq Scheduler Poutine
Resident Operator Control Module
Modify OPtions ~outine
COpy Line Information Routine
COpy Terminal Information Routine
COpy LCB Information ~outine

427
430
431
432
433
435
436
437
440
441
444
445
446
448
449
451
452
4t;3
458
459
460
461
462
463
464
465
466
467
468
469

470
471
473
474

47E)
476
477
478
480
481
~g2

4~3

484

488
489
490
491
493
494
497
498
499

C ,'J •

CK.

C'L.
CM.
C":T.

co.

C l?

co.
CTJ •
ev.
ClAT.
cx.

cz.

c ().

C1.
C2.
C '3.
C~.

E'P.

EC.
ES.
ET.
FU.

,:;:w.

EZ.

E1.
1':2.
E3.

E4.
Bf;.

E7.
1" A.

'FA'.
F~2.
G~.

GT.
RG.
HI.
HT< •
~M •
HM1.
HM2.

JC.
,"JD.

Jr; •

JR.
.'JT.
J,J.

COpy OC~ Information Routine
COpy Held ~erIDinals Routine
Copy Tnvitation list Entry ~outine
COpy nperator Control ~erminal ~outine
Chanqe Control Terminal Routine
Chanqe Terminal Poutine
Alter Trace status ~outine
Stop/~esume Terminal ~ransmission ~outine
start line Routine
Stop Line Poutine
Modifv Poll Poutine
Modifv Intense Routine
Chanqe Interval Type Routine
MCP Closedown Processinq ~outine
ICHNG processinq ~outine
On-Line Test Interface ~outine
Copy Invitation List status Routine
DEBUG Service Aid· Pouter
AOCTI. SVC 102 'Qoutine (IGC102)
'Put Scheduler
Retrieve Service Routine
Onerator Control/Application Proqram Interface Routine
Open/Close subtask
~et Scheduler
Get scheduler FIFO Routine
TCOPY Service Foutine
QCOPY Service Routine
TCHNG Service Routine
rCOPY Service Poutine
Password Scrambler Routine
Retrieve Scheduler
C'P~ Initialization
CPB Initialization - Main Storaqe Oueuinq Only
C'PB Tnitialization - Disk Queuinq Only
~uffer Manaqement Module
Transparent Transmission ccw ~uilainq Routine
Time Delay Subtask
System Delay Subtask
stop Line T/O subtask
Destination Scheduler
Destination Scheduler - Main Storaqe Oueuinq Only
Destination Scheduler - Disk Queuinq Only
Start/Stop E~P Control Module (IGE0004G)
Read/Write Unit Check and unit Exception ERP
Module (TGEO'04Gl
Non~operational Control "nit E~P Module (IGE0204G)
Unit Check for Non-read, Non-write, and Won-poll
CCWs ERP ~odule (IGE0304G)
Auto Poll and ~ead Response to 'Poll Unit Check and Unit
~xception E~P Module (TGE0404G)
~rror Post and Second Level CCW ~eturn Module (IGE0504G)
nnit Check and unit Exception on ~ead/Write CCWs for
Audio and 2260 Local Devices ERP Module (IGE0604G)
Start/Stop Channel Check ERP Module (!GE0804Gl

500
501
502
504
1305
506
509
511
5'2

516
518

519
521
522
524
527
529

530
532
533
53U
535

536
537
540

541
542

543
544

545
546
547
571
586
608
614
617

620
622

623
633

641
648
6S0
652

653
654
655
656
657

xvii

\.Jl< •
JL.
.JM.

IN.
;10.
.J'P •
,JO.
KA.

LA.
LB.

T..1C.
L D.

LF.
L H.

L I.
LJ.
K. •

T,

1M.
L 1.
1)4.
L c:,.

1,6.
17.
18.
1,,9.

IJ 10.
M A.
~B.
~~.

1'1G.
MlJ.

MM.
NA.
N ~ '2.
N'R.

ND.
\IF.

NG.
1\TH.

NIJ.
NT<'.

NM.
NO.
'f\TP.

NQ.
l\TR.
~T S.

NT.

xviii

C1osedown Terminal Statistics Recordinq Module (IGEOQ04G)
ESC ERP Control Module (IGE0004H)
BSC Fead/Write Eouipment Check, Lost Data, Intervention
Required, and Unit Exception E~P Module (IGE0104Rl
BSC Fead/Write Data Check, Overrun, and Command
Re;ect· ERP 1'100u1e (IGE0204H)
BSC Second Level CCW Return Module (IGE040 UH l
BSC ErrOL Post Module (IGE0504H)
BSC Channel Check ERP Module (TGE0804P)
~ctivate-I/O Generator Subtas~
Open Brror Handler (IGG019331
Disk Messaqe Oueues Open Poutine-load 1 (IGG019301
Disk Messaqe Oueues Open Poutine-load 2 (IGG01931)
Disk Messaqe Queues Open Poutine-Load 3 (IGG01934)
L1 ne r.;rcup Open' Boutin e-I.oad 1 (IGGO 193 5)
Line Group Open Foutine-Load 2 (IGG01936'
Line Group Open Poutine-toad 3 (TGG01937)
Line Group Open Poutine-Load 4 (IGG019381
Line Group Open Poutine-toad 5 (IGG01Q3Ql
Line ~rcup Open Poutine-Load 6 (IGG019401
Line Group Open Routine-toad'" (IGG019U81
~eturn Interface Routine
Disk Messaqe Queues Close Foutine (IGG02030)
tine Group Close Routine-l.oad 1 (IGG020351
Tline r.;rcup Close Routine-I,oad 2 (IGG02036)
Checkpoint Close Poutine (IGG020411
G~T/PUT and ?FAD/WRITE Open Executor-Load 1 (IGG019461
G~T/PUT and READ/WBITE Open Executor-Load 2 (IGG01947)
G'PT/PUT and READ/WP ITE Close ~xecutor-Load 1 (IGG02046)
GET/PUT and READ/W~I~E Close Executor-Load 2 (TGG020471
\heckpoint Open Poutine (IGG01941)
Checkpoint Disk Initialization ~outine (IGG01942)
~heckpoint/~estart from Environment Record
?outine (IGG019431
Checkpoint/Restart from Incident and CKREQ Records Routine
(IGG01944)
Checkpoint Continuation Pestart Routine (TGG019451
Checkpoint Disk ~llocation ~outine (IGG01949)
Resident Closedown Completion ~outine
Nonresident Closedown Completion Routine
Application Proqram/Checkpoint Interface Routine
Ready "Routine
Checkpoint Executor ~outine
~uild Incident Pecord for MF Routine
Build Incident Pecora for TCH~G Routine
Tncident Checkpoint for Operator Control Routine
Environment Checkpoint Routine
Build CKREQ Disk Record Routine
Checkpoint Queue Manaqer P,outine
Checkpoint Disk TID Routine
Checkpoint Notification and Disposition ~outine
Checkpoint - No Available Core Routine
Cbeckpoint - No Incident Pecords Poutine
Termname Table Code

658
659
661
663
665
666
667
668
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686

687
688

689
690
691
693
696
700
703
705
70~

707
709
711
712
713
714
715

7'R
719
720
723
726
727
728

l-TX.
N'l.

rn.•
O"R.

OG.

OM.
OS.

on.
01.
02.

0,.
OU.
() t; •

O~ •
07 •

OR.
l ' ~.

BB.
"P

c.

"P

D.

'P

F.

'qG.

'R" •
'RT.
'PJ.
BK.

'R" •

RM.
R~.

RO.
'PP.

'RO.
R

o.

p1.
'R?
'R 1.
'P Q. •
'R5.

p. (.).
U~.

'11\.
v -a •

YC.
YD.
y~

•

YF.
YR.
YI.
YL.
YfJI.

YO.

YR.

Operator ~wareness Messaqe ~out8r
TeAM Command Scheduler - SVC 3Q. (IGC1303n)
1',ink Routine
WTOR Interpreter Routine
I~TBO GF~MAIN Routine
Termname Table Sort Routine
Attach Routine
Line I/O Interrupt Trace 'Routine (IGG019001
Local Receive Scheduler (IGG01901)
Line End Appendaqe for BSC Lines (IGG0190?1
Line End Appendaqe for Start/Stop tines (IGG019Q31
Line End Appendaqe for Leased and Start/stop Lines and
No TSO (IGG01904l
Line End Appendaqe for a OTAM-Compatible System (IGG019QS,
Send Scheduler for Leased Lines and No ~so (IGG019Q6)
Send Scheduler with ~o TSO (IGG01 0 0')
Checkpoint Continuation 'Restart Subroutine (TGG019Q8)
Checkpoint Disk End APpendaqe (IGG01qP.~1
~CAM Dispatcher (IGGO'9RPl
E~CP nriver (IGG019'RC)
"Ruffered Terminal Scheduler (IGG019PDl
EXCP Driver for a Sinqle CP.B (IGG019'PFl
GET/B~AD Poutine (IGG019BGl
~et Compatible 'Routine (IGG010'R~1
PUT/WRITE Boutine (TGG019BTl
Put Compatible Routine (IGG019RJl
Disk End Appendaqe for a Sinqle CPP (TGG019RK)
Check poutine (IGG019Pll
Point poutine (IGG019RMl
PCT Appendaqe (IGG019R~)
TCAM Dispatcher with Subtask Trace (IGG019ROl
'Reusability-Copy subtask (IGG019RP)
Post Pendino Poutine (IGG019ROl
Line Bnd Appendaqe (IGG019FOl
Dial ~eceive Scheduler {IGG019R1l
Disk End Appendaqe (TGG019R2)
Leased Receive Scheduler (TGG019B3)
Send Scheduler {IGGO 19'FUl
~ttention Handlinq Routine (!GG01 Q R5)
Start-up Messaqe ?outine (IGG019B61
Attention Routine
nser Tnterface Routine
Disk ~essaqe Queue Tnitializer
~SO Attention ~outine
~so carriaqe Subroutine
Time Sharinq Destination Scheduler
~SO ~IOC Fdit Routine
TSO IOFALT ~outine
~SO Banqup 'Routine
TSINPurr Routine
"'SO I,oqon Poutine
~SO ~essaqe Generation Routine
TSOUTPU fT1 Foutine
STAPTMH Suttask for ~CAM-~SC Mi~ea

729
731
.., 32
733
7,8
'139
740
741
742
7U3
7c)6
765

779
780
782
183
784
786
792
79'5
796
800
803
804
805

806
S30'1
808
810
~12

823
824
838
840
841
842
844
845
848
849
850
852
854

857
858
862
863
864
866
868
871
874

xix

"s.
'YT.

Yx.

YY.

!z.
'71.

'7.?
'7~.

?;

4.

'7.5.
'l~.

xx:

TSO Simulated 1\ ttention

~outine

87q

Abend Interface ~outine
TSO TN MSG/OTJTM SG Linker
""SO Asvnchronous l'f1ime Delav Removal Poutine
Time Sharinq Scheduler
f)perator Control control Module - Load 0 (IGCOO10D)
Operator Control Control Module - IJoad 1 (IGCO 11 OD)
Ooerator Control Control Mo~ule
T.oad 2 (TGC0210n,
Operator Control Control I't1odule
Load 3 (JGC0310D)
Operator Control Control ~odule
Load 4 (TGC'0410T»
Operator Control control Module
l.oad E) (TGC051 CD)
""~o

-

-

881
882
883
884
889

891
892

89'3
894
895

1.

2.
~

4.

s.

~.

7.

R.
Q.

10.
11.
12.
13.

14.
15.
16.
17.
1~.

1q.
?O.
21.
2~.

23.
24.
25.
2~.

?7.
28.
2q.
~o.

31.
32.
33.
~4.

35.
36.
37.

18.

Physical Orqanization of TCAM
TCAM OCB linkaqe
uriority of Subtasks on a QCB
~assinq Blements to a OCB
~CAMDispatcher Jnaloqy
Pointers from an Invitation T,ist to the Termname Table
Pointers from the Termname Table to the Terminal Table
~elationsnips amonq the AVT, the ~ermnam~ Table,
the Terminal Table, and the neT
Example of a Shecial Characters ~able Entry
~elationshipsamonq the LCB, DCB,· SC~, and
Translation Tables
Besource Control Block
~ormat of a Full STep
General ~ormat of a OCB
~ormat of an E~B
Linkaqe from the Ready Queue to ~ubtask Code
Poin~ersdurinq a Readv Oueue "pdate
Linkaqe from Peqister 1 when a subtask Gains Control
~ormats for Different Types of STCBs
~ormat of a Cross-Partition Data Movement Parameter List
Formats of an ECB POST ?arameter List
Format of· a Parameter I.ist to Flaq the TCB of a TSO Proqram
A ~eceive Scheduler STCB in an LCB on the Beady Queue
"nit Control Area
Buffer units Chained to ~orm loqical Buffers
Effect of an EBB on Buffer "nit Linkaqe
Buffers Prepared to Receive Data
Assiqnment of Uisk ~essaqe Queues Data Set Pelative
Record Numbers Across Three volumes
Disk Oueuinq a Three-Unit Buffer
uisk Oueuinq an Eiqht-nnit Buffer
Disk Oueuinq the Second Buffer of a Messaqe
Disk Oueuinq a One-"nit ~essaqe
Disk Queuinq pointers
Example of Two Queue-Back Chains
Disk Queuinq - fIFO and FEFO Pointers
Zones for Servicinq and Updatinq a Reusable Disk
~essaqe Oueues Data Set
~ormat of an LCB ana a Destination OCB after line Open Time
~ormat of a Send Priority LCB and Destination QCB
after a ~ull ~essaqe Has Been ~eceived
~inkaqe amonq storaqe Areas in the MCP ana an Application
Proqram after Initialization

26

33
3~

~4

3S
43

44

4R
49
49
SO
51
52

53
6S
66
6;
69
71
71
73

75
78
79
81
82

qo
9~

q4
q5

96
97
99
102
103
106
107

'19

xxi

1•

?•
1.
4•
11.
7.
8•
o
10.
11.
12.
13.
1 ~.
1 c: •
1 ~.

17.
18.
1 q.

?O.
21.
2'2.
., 3.

? fl.
?'i.
'26.

27.
'-~.

?9.

30.

Tnitialization of a Messaqe control ~roaram
Functions of Open Disk Messaqe Ou~ues Data Set
~unctions of Checkpoint Open
functions of line Group Open
~unctions of the READY Macro Expansion ana Routine
Summary of the Dispatchinq Fun~tions of the TeAM Dispatcher
Summary of the Oueuinq Functions of the TeAM Dispatcher

1237
1239
1241
1243
1245
1247
1249
~CA~ ~essaq€ ~low
1251
vunctional ?low in a Feceive Operation
1253
1255
Functional ~low in a Send operation
Functions of an Initial Buffer Request in a Receive Operation 1257
~unctions of an Ini+ial Buffer Reauest in a Send Operation
1259
1263
Functions'cf Buffer ~eturn
1265
~low of Buffers throuqh a Messaae qandler
~onreusable Disk Queuina Functions of the Destination
1267
Scheduler Poutine
~unctional Flow when Peceivinq from a Line
1269
1277
~unctional ?low wh-en Sendinq to ~ Line
~unctional Flow for MCPCLOSF and Closedown Completion
1283
~unctional Flow of the DCB Closedown Procedure
1285
1287
Initialization Functions in an APplication Proqram
1289
Termination Functions in an Applicati~n Proqram
Functional Flow of ~ow Data is nassed from the Me? to an
~pnlicaticn Proaram
1291
~unctional Flow of Pow Data is Passed from an Application
Proqram to the ~CP
1293
~pplication Proaram Interface with operator Control
1295
~pplication Proqram ~etwork Control Facilities
1297
129q
Punc~ional Flow of Operator Control
Functional ~low of the Chec~point poutines
1301
Control Flow of the !nvironment Checkpoint Routines
1303
T,inkaae amona the Start-Stop ~PP Modules
1305
~inkaqe amonq the BSC ~pp Modules
1305

xxii

Orqanization and Use of the TeAM Proqram Loqic Manual
This seven-part publication cov~rs the internal loqic of the IBM
System/360 OS Telecommunications Access Method (TeAM).
The TeAM PLM
is directed to the IBM customer enqineers an~ system enqineers who
provide proqrammaintenance and who need information on the internal
orqanization and loqic of TeAM.
section 1 is the Introduction to the TeAM system.
The qeneral
information presented in the Introduction is basic to an understandinq
of TCA~.
This information places TCAM in the proper perspective to
the Operatinq System (OS) and points out the special concepts and
control areas used by TCAM in order to operate as a component of os.
Section 2, the Method of Operation section, describes the functional
flow of each operation in a TeAM system.
When possible,
the
operations are discussed in sequential order bV time of occurrence as
a messaqe is beinq processed by TCAM.
Each discussion is acc6mpanied
bv Method of O~eration ciaqrams, which depict the
operation.
(These
diaqrams are foldout charts and are located between Appendix D and the
Glossary at the back of this manual.)
The main-line processinq
operations are discussed in the followinq order:
1.

Disk messaqe queue initialization

2.

Initialization of a Messaqe Control Proqram (MCP)

3.

Messaqe handlinq in an MCP

4.

Closedown of an MCP

The other functional operations occur intermittently with the mainline processinq and except for system control, are discussed after the
MCP
sections.
System
control
is
discussed
after the MCP
initialization section. These operations include:
1.

System control

2.

Applicatien proqram processinq

3.

Operator Centrol processinq

4.

Checkpoint processinq

5.

Error reccverv procedures

6.

Time Sharinq option interface

section 3 covers the prcqram orqanization and operation, both in
textual descriptions and in flowcharts.
Each TCAM module is described
within its functional area of operation. The functional areas are
orqanized exactly as in the Method of Operation section and thus allow
the reader to relate actual modules to qeneral functions.
When a

xxiii-

module name ends in two letters or in one or two letters followed by
a number, the flowchart identification is the same
as
those
characters.
When multiple flowcharts are necessary for a module,
these two or three characters are fol~owed by a da~h and then a number
(HM1-1).
When a module name ends in twc numbers, the flowchart
identification is arbitrarily assiqned.
The informaticn on a TCAM-TSO mixed environment is located in two
places in section 3~
When a TCAM module contains loqic necessary to
identify that TSO is in operation and to activate special TSd
routines, that module description and flowchart describe the tests.
~he
special TSO routines that operate under the TCAM Dispatcher, but
that perform TSO-on1v functions, are described in a section devoted
solely to TSO routines.
There is als6 a qeneral discussion of the
mC~M-TSO interface in section 2.
section 4 is the TCAM Microfiche Directorv.
This directory is a list
of all TeAM modules.
Each entry contains the correspondinq entry
point or entry~oints, its qeneric name, its flowchart identification,
and its CSECT name.
section 5 is a composite of the data areas ,that are used by TeAM.
Each data area is described in terms of purpose, internal references,
allocation,
and initialization.
Both a visual and
a
tabular
descripti9n of the DSECT for each area are also qiven,
where
applicable.
Section E contains tables of information
analyzinq the activity of TCAM.
~he

to

aid

in

debuqqinq

and'

seventh section consists of information to aid in the use of TeAM.
This information is in four appendixes:
a list of TCAM queues and
OCEs, a list of TCAM mocules by library, a list of TeAM relative
priorities, and the TeAM channel proqrams.

xxiv

SECTION 1:

INTFODUCTION

This section provides qeneral information describinq the purpose,
orqanization,
and internal operation of the Telecommunications Access
Method (TeAM), and its relationship to the operatinq system.

PURPOSE OF TCAM
TeAM is a component of the IBM System/360 Operatinq System.
The
primary purpose of TCAM is to provide a hiqh-level access method to
communicate with telecommunications equipment while maintaininq the
qreatest possib~e amount of device independence.
In addition to
stlPportinq the transfer of data
(messaqes)
between both local and
remote terminals and the system, TCAM provides a hiqh-Ievel, flexible
messaqecontrcl lanquaqe that can be used tc direct the processinq of
the data.
Bv usinq the TeAM macro instructions, installaticn-oriented
messaqe control is achieved.

SYSTEM STFUCTURE
TCAM operates under os MFT or MVT in System/360 Model 40 or above
processors.
The minimum main storaqe requirement is 128K bytes.
In
addition to the system timer and normal OS requirements, TCAM requires
a
2701,
2702, or 2703 on a multiplexer channel (unless cnly the 7770
or 2260 Local terminals are used, in which case the 7770 or 2848 is
'attached to the channel).
Secondary storaqe for libraries and main or
secondary storaqe for .queuinq are also required.
This section describes the various parts of TCAM and explains what
they are,
where they come from, how they qet into the system, their
relationships to each other, and how they pass control' back and forth.
Fiqure 1 shows the steps necessary to beqin processinq in the TeAM
environment.

Introduction

25

AppJ ication
Source Program

Message Control
Source Program

System Generation
Macro Instructions

System Residence

Includes all TCAM
Macro Definitions

Assembler

Assembler

Linkage Editor

Linkage Editor

All TCAM Resident Modules
to be Linked with User
Object Modules

Macro Linkage
.and User Code

User
GET

MH Resident Routines

Status Changing
Resident Routines

Job Schedu ler

Mai n Storage

IPL

•

o

Supervisor Nucleus
/AttentionRoutinejAQCTL SVC Module
Partition
N

~

AppJ ication Program 2
or other Programs

Partition
2
Partition
1

GET/PUT Modules
Application Program 1
,oj

~

Partition

o
Fiqure 1.

26

:~

1 :;:

GET/PUT Modules
Message Control Program
Any Attached Subtasks

Physical Orqanization of TeAM

N

Job

ler

SYSTEM GENERATION
When TeAM is called for durinq a system qeneration procedure (via the
ASCMETH operand in the DATAMGT system qeneration macro instruction),
the TCAM modules are included in four libraries:
SYS1.MACLIB,
SYS1.TELCMLIB, SYS1.SVCLIB, an~
SYS1.LINKLIB.
An Attention routine
and a Tvpe I SVC module (the AOCTL SVC 102 routine)
are incorporated
in the Superviscr Nucleus (SYS1.NUCLEUS).
Usinq these modules, the
user can assemble, linkaqe edit, and execute TCAM messaqe centrol and
application proqrams.

TeAM Macro Definitions
The operatinq system macre definition lirrary (SYS1.MACLIB) includes
the macro definitions necessary for the assembly of TCAM messaqe
control and application ~roqrams.
~CAM

Resident Medules

When performinq a system qeneration to include TCAM, the user must
define a special library area named SYS1.TELCMLIB.
Durinq the
qeneration run, modules that can later be linkaqe edited with messaqe
control and application ebiect modules are copied from SYS1QCQ548 into
SYS1.TELCMLIB. In this publication, these modules are defined as the
TCAM residen! ~gdules.
Appendix A contains a list of the modules in
SYS1.TELCMLIB.
~CAM

Support Modules

nurinq the system qeneration run, all modules that are loaded into
main storaqe by the various system open executors and the TCAM open
and close executors are copied from SYS1.CQ548 into SYS1.SVCLIE_
The
TCAM Dispatcher, the Command Scheduler, the Type IV SVC modules, and
the ~rror Recovery ?rocedure routines are also placed in SYS1.SVCLIB.
In this publication,
these modules are defined as TCAM support
~oaul~E.
Appendix A contains a list of the TCAM support modules in
SYS1.SVC1IB.
The
routines
resident
routines

Error Recovery Procedure reutines and the TCAM open and close
can, at the option of the user at system qeneration,
be
or transient durinq proqram execution.
In either case, these
reside in SYS1.SVCLIB.

TeAM Transient Modules
At system qeneration time, modules that can be called into main
storaqe for a limited lenqth of time durinq the execution of a TCAM
messaqe centrel cr application proqram are copied from SYS1.CQ548 into
SYS1.LINKLIE.
In this publication, these modules are defined as TCAM
1raDEient-~QQ~les.
Appendix A contains a list of the
modules in
SYS1.1INKIIE.
in

The Operator Control, Checkpoint, and On-line Test routines stored
SYS1.LINKIIE can o~tion~lly be specified to be resident durinq
Introduction

27

oroqram execution.
transient modules.

However, in this publication they are

defined

as

System Nucleus Modules
At system qen~ration time, the Attention routine and the AQCTL SVC 102
routine
(a Tvpe I SVC) are copied from SYS1.CQ548 into SYS1.NUCLEUS.
In this pUblication these two modules are defined as the ~stem
.n"ycl~"y.§

1!LQd ulg.

THE MESSAGE CONTRel PROGRAM IN THE SYSTEM
Assemblinq and linkaqe Fditinq a Messaqe Centrol Proqram
'I'he user codes the TCAM macro instructions necessary to design a
messaqe contrel proqram. When these instructions are entered for
assembly, the output of this assembly includes: several tables and
control blocks, linkaqes to TeAM resident and support routines,
(MHl
macro instruction expansions, and any usermessaqe handler
written routines that were included.
The assembled ob;ect module is then linkaqe edited to include the
referenced resident routines from SYS1.TELCMLIB.
These resident
routines are the MCP routines used to process header information, to
translate from one transmission code to another, to direct messages to
the proper lines and queues, to manaqe system resources, etc.
The resultinq load
loaded for execution.

module

is

stored in a system library to be

Execution of a Messaqe Ccntrol Proqram
The TCAM messaqe centrol preqram (MCPl is normally executed as the
hiqhest priority task in the highest priority partition or region in
the system. The OS Initiator/Terminator routine loads and transfers
control to the MCF. The first TeAM macro instruction executed must be
INTRO.
The initial functions of INTBC are to establish the TCAM
Address Vector Table (AVT), addressability and entry linkages for the
MCP, the Cross-Reference Table, the Channel Program Elock (CPB) pool,
the buffer unit pool, and main storaqe queues.
INtRa also attaches
the Operator Control, FE Common Write, and On-line Test tasks and
provides override of some INTRa parameters via the Write to Operator
with Replv (WTOR) Interpreter routine. These functions are discussed
in detail under Functions of INTRa in the Method of Operation section
of this publication.
~he MCP runs under the control of the OS task management routines.
It is scheduled and dispatched accordinq tc the priorities included in
the Task Control Block
(TCB) in the partition in which it is being
executed. The MCP includes:

1.
2.
28

The ob;ect module output from the assembly of the user's code.
The resident routines linkaqe edited with the assembly output.

In order to understand the operation of an MCP, it is necessary to
become acquainted with the use of save areas in the MCP and the way in
which control is ~assed from one level of o~er~tion to another.
?ive
save areas are located at the beqinninq of the AVT, which is assembled
at the beqinninq of the MCP.
The MCP is that portion of the user's
CSECT that contains the INTRO, OPEN, BBADY, and CLOS~ macros, the MH
routines and macrc expansions, and constant areas.
Save area manaqement eccurs when a subroutine returns to the
routine that called it.
A save area "belonqs" to a routine when that
routine sets reqister 13 to point to the save area.
A subroutine of
the routine can then store the reqisters of the routine in the
specified save area.
If a reutine ~oes net call a subroutine, it does
not have a save area,
since it does not modify the contents of
reqister 13.
TCAM maintains four 18-word save areas and one 10-word save area
in the AVT.
After the standard entry linkaqe of a routine that uses
save area manaqement, certain "words of the save area contain specific
addresses:
•

The second word of the save area points to the address of the save
area for the callinq routine.

•

The third word of the save area for the callinq routine
address of the save area for the called routine.

•

Beqister 13 has the address
routine.

of

the

save

area

for

the

has

the

called

Durinq the standard exit linkaqe of a routine that uses save area
manaqement, the save area address for the calling routine is restored
from the second' word of the save area for the called routine.
The
reqisters of the callinq routine are also restored from this area, and
the callinq routine can reqain control.
As stated ~reviouslv, when as Job Manaqement initiates an MCP, the
MCP qains control at the INTRa macre expansion.
In performinq
standard entry linkaqes, the INTRO macro expansion sets reqister 13 to
point to the first field of the AVT, AVTSAVE1, which is the save area
that belonqs to the MCP.
When the functiens of the READY macro are
executed, the MCP calls the TeAM Dispatcher.
The TCAM Dispatcher
performs standard entry linkaqe, savinq the reqisters of READY in
AVTSAVE1 and settinq reqister 13 to point to the Dispatcher save area,
AVTSAVE2.
~outines,
SUbroutines, and subtasks use the AVTSAVE3 and AVTSAVE4
save areas if they need to perform save area manaqement.

qains centrel, it uses
When a disabled routine, an a~pendaqe,
to store the I/O Supervisor
AVTSAVEX, the ten-word save area,
reqisters.

Introduction

29

THE APPLICATION PROGRAM IN THE SYS!EM
Assemblinq and Linkaqe Editinq an Applicaticn Proqram
A TCAM application proqram precesses messaqes obtained from a TCAM
~CP.
The application proqram can run in a partition or reqion
different from the MCP, or it can run as an attached task in the same
partition or reqien.
An applicaticn. proqram needs only the OPEN, CLOSE, GET, and PUT
macro instructions and some data set definition macro instructions.
When this is the case, no resident routines need to be linkaqe edited
with the ob;ect module.
However, the user may wish to write
application pr6qrams. that use the followinq macro instructions to
examine and modify the status of the MCP:

•
•
•
•
•
•
•
•
•

CHECK
CKRBO
TCOP.Y
MC~CLCSE

MRELEASE
POINT
OCOPv
TCHNG
TCOPY

When any of these macro instructions are used, the linkaqe editor
includes the correspondinq resident modules in the load module. The
load module is stcred in a system library from which it is loaded for
execution.
Execution of an Application Proqram
It is possible to run an MCP with no application proqram, but there
may be one or mere application proqrams beinq executed asynchronously
with the MCP.
In most cases an application proqram is loaded into the next
hiqhest priority partition to the MCP. However, application proqrams
may also be executed in the same partition as the MCP after being
brouqht in by the system A!!ACH facility_
Applicaticn proqrams, like the MCP,
task manaqement routines.
They
accordinq to the priorities indicated
(TCEs) for the partitions in which they
as

30

run under the control of the
are scheduled and dispatched
in the Task Control Blocks
are being run.

An application proqram includes:
1.

The ob;ect module output from the assembly of the user's code.

2.

Any resident routines linkaqe edited with the assembly output.

3.

The CHECK, FOINT, GET/READ, and PUT/WRI!E routines.

~he primary difference between a TCAM application proqram and
any
other processinq proqram is the requirement for and the implementation
of inter-partiticr. communication.

~he
various macro instructions that can be used in an
proqram are handled as follows:

ap~lication

rCOFY, and QCCPY. The correspondinq resident routine for
each of these macro instructicns copies the requested information
from the MCF partition, usinq address ~einters stored in the AVT
and in the Terminal Table.
These tables are located via the
communicaticns Vector ~able (CVT).

1.

1~..QRX·,

2•

.All

ot..h~]; .j!!acro
instructions.
!he routines invoked by the
remaininq macro instructions cause SVC ~YPE I interruptions to the
supervisory routines.
A module within a partition can move data
or contrel information from another partition into its own
partition; however, that module must use an SVC either to move
data from its own partition into another partition or to move data
within anether partition.

RELATIONSHIP OF THE as DISPATCHER TO TeAM
The Operatinq Svstem (OS) qains centrol frcm the TCAM task when the
TCA~
Dispatcher finds no elements on its ready queue and subsequently
issues an as WAIT macro. This indicates that the MCP has no work to
perform.
When OS qains control, it examines all the ready tasks in
the system and passes centrel to the ene with the hiqhest pricrity.
When a TeAM appendaqe has work for the MCP, it invokes the as Post
routine via a branch entry point to post the MCP Event Control Block
(ECB) .
This indicates to the as Dispatcher that the MCP now has work
to do ann is vyinq for control of the system. as can pass control to
the ~CAM task when it is the hiqhest priority task that is ready to be
activated.
~CAM
resumes execution at the instruction followinq the
WAIT that qav€ control te as.
TCAM posts the FeBs for its attached tasks when they are to be
activated.
When TCAM subsequently issues a WAIT, the attached tasks
can vie to qain centrol frcm as.

IntI:oduction

31

THE TeAM

DTS~ATCHER

~he

followinq sections describe the tools and mechanisms by which the
TCAM Dispatcher,
or ccntrol ·module, allecates and schedules system
resources, that is, CPU processinq time, main storaqe, I/O paths,
and
elements
(primarily buffers and lines).
The key to the mechanism is
the reaay,-gueue, throuqh which a resource is allocated to a subtask.
The mechanisms of allocation are the "twait" and "tpost" functions
performed by the TCA~ subtasks.
A 1~ait-schedules a subtask to be
activated when a specific resource is available; a tpost passes an
available resource to the ready queue. The actual implementation of
twait and tpost are not exclusive functions of the suhtasks;
rather,
the subtasks return to s~ecific entry points in the TeAM Dispatcher to
indicate the status of the resource.
Dispatching is the process of
providinq a routine with an element and qivinq the routine control to
handle the element.

A detailed discussion of the TCAM DiEpatcher is included under
System Control in the Method of Operation section of this publication.
~lements,

Oueues, and Subtasks

The physical resources of the system are composed of elements- (for
exam~le,
the ·tuffer pool, a
resource, is broken into individual
buffers, the elements) with each element represented by a resource
control block
(RCB).
An RCE is an 8-byte prefix to an element.
The
first four bytes are a pointer to the queue control block
(QCB)
that
the element is to be associated with~ the last four bytes contain a
priority byte and a link field.

RCB

Buffer

There is at least one
element in the system.
control blocks (STCBs).

Eubt.s!"§~

These

that werks with evprv type of
subtasks are represented by subtask

The elements, and the subtasks that operate on these elements, are
associated with one another by a third control block, the queue
control block
(OCB).
Thus, a QCB has a pointer to the chain of
elements under its contrel and a pointer tc the chain of STeBs for
subtasks waitinq to operate on these elements.
The chains are
referred to as .9"yeue..§. Fiqure 2 illustrates the. linkaqe of these
queues to a OCE.

32

QCB

Fiqure 2.

TCAM QCB 1inkaqe

When a subtask needs an element, it can request one from the QCB
that handles that particular element by t~cstinq a request element to
that QCE or it can insert its STCB into the STCB chain of the QCB to
twait for the element.
When the element is available, the surtask is
dispatched.
When a subtask has finished usinq an element, it qives (tposts)
the element to the appropriate OCE.
The TCAM Dispatcher qives this
element to the first {hiqhest priority} subtask in the STCB chain of
the OCB.
In this case, Subtask A in Fiqure 3 is dispatched.
The
subtask associated with ,STCB B in Fiqure 3 can be dispatched if
Subtask A indicates,to the TCAM Dispatcher that it does not need to
process the element.
The S~CB chain ends with a permanent STCB.
STCB
C in Fiqure 3 remains the last STCB in the chain.
STCB C miqht point
to a routine that does nothinq more than chain elements into the QCB
el~ment
chain.
Subtask C has a lower priority than any other subtask
that miqht use the element and, therefore, is dispatched only if each
of the hiqher priority subtasks bypasses processinq.

No elements available

QCB

r----'

I _
PRI=2
L
_ _ _ ..Jt--------~---;'____ _......

~iqure

3.

Priority of Subtasks on a QCB

Introduction

33

Fiqure 4 demonstrates the linkaqe when an element processed by
subtask X is tposted to the QCB and placed on the element chain by
Subtask c.
SubtaskC can place the element 1n the QCB element chain
only if Subtask A and Subtask B do not need the ~lement and pass it
00wn the chain to subtask c.

Piqure 4.

Passinq Elements to a QCB

To illustrate the basic sequence of events involved when the TeAM
Dispatcher processes an element, the procedure can be compared to a
postal service system.
The people that mail and receive letters are
subtasks.
Each letter is an element, the address on a letter is its
QCB,
the post box is the ready queue,
and the mail box at the
destination is the appropriate STCB.
~hen
a letter is mailed
(tposted),
it becomes the property of the post office (the TeAM
Dispatcher).
The post office examines the address
(the OCB)
and
directs it tc its destination
(the
S~CB).
When the letter is
delivered (dispatched), the person represented by the address
(the
suhtask) can examine it.
Piqure 5 illustrates this analoqy.

34

TeAM Dispatcher

"'iqure 5.

TeAM rispatcher Analoqy

Introduction

35

~he

~eadv

Oueue

The previous discussion ~oints out that subtasks gain control from the
~CAM Dispatcher depending on:
1.

The availability of elements, and

?

The priority of the STCE for the suttask.

The TCAM messaqe control program is responsible for allocating CPU
processinq time to the various tasks under its centrol.
The
mechanism it uses is called the readvqueue (as discussed later, there
are actually twc ready queues).
~he ~ead~ ~~~~ is a chain of elements that represent all the work
to be done in the TeAM system. The work to be done is represented by
the various elements (RCEs) that appear on the ready queue in priority
order.
The purpcse of the ready queue is to ensure that all elements
are proc€ssed and dispatched with full respect to priority and without
one impacting the resources of another.

To support dispatchinq while enabled for interruption, TCAM uses
two reanv queues. One is desiqnated to be used by disabled appendages
or by the disabled AQCTL SVC 102 routine for tpostinq elements, while
the other is used bv enabled routines.
AlthoUgh the two ready queues
are not managed bv the same technique, each is a ready queue because
it contains elements (RCBs) to be processed by the various subtasks.
TCAM manages the disa~led read~~~~ue by the first-in-first-out
(FIFO) technique. The queue itself consists of twe worqs: a one-word
pointer to the first ana a one-word pointer to the last element on the
queue.
Disatled appendaqes place an element (RCB) on the disabled
ready queue by linkinq the new element to the element pointed to by
the second word of the queue and by then updating the second word to
point to the new element.
TeAM manaqes the enabled re~2~ ~~~ by the
priority·PIFO
technique.
The TeAM Dispatcher has the res~onsibility for merging the
disabled into the enabled ready queue iust prior to dispatching.
Dispatchinq is always handled from the enabled ready queue, and unless
specifien otherwise, this is the cne referred to as the ready queue.
The TeAM rispatcher manaqes the ready queue by attemptinq to
execute the subtask associated with the highest priority element on
its chain. Since the element has an ReB as its prefix, the Dispatcher
can refer to the correct OCB in order to pass control to the first
subtask represented in the STCB chain cf the QCB.
The subtask
processes the element and then returns control to the TCAM Dispatcher,
which can then examine the next element on the ready queue. A
discussion of the way the TCAM Dispatcher manages the ready gueue is
included under System Centrol in the Method of Operation section of
this publication.

36

Principle of Tpost and Twait
The technique for passinq an element from cne queue to another queue
is called tposti~.
When the surtask that an STCE points to finishes
processinq an element and wishes to allow another routine to process
that same element,
the surtask t~osts the element to the second
routine.
The subtask achieves the tpost by placing in the RCB of the
element a pointer to the QCB that centrols the STCE for the new
routine, and by then returninq to the TCAM Dispatcher with an
indication that the element is to be ~laced cn the ready queue.
The second technique for handlinq resources is called twaiti~.
When a subtask needs elements to process, it returns control to the
TCAM Dispatcher indicatinq that it has finished the processinqthat it
can do at this time.
The twait is im~lemented by the TCAM Dispatcher.
The Dispatcher places the STCB for this surtask in the STCB chain of
the aCB to which the resource that the subtask needs tc complete
processinq will be tpested.
When an STCB is in the STCB chain of a
OCB and the subtask for that STCB does not have control,
the subtask
is twaitinq.
When an a~plication proqram needs either to place an element on
the disabled ready queue,
to post an Fvent Control Block
(ECB)
complete,
or te move data from one partiticn to another, a special
technique is used. This technique is performed by the AQCTL SVC 102
routine, which uses pointers in the AVT to refer to the disabled ready
queue.
Since AQCTL is a resident Type I SVC, the actual processing
occurs in the as Supervisor, out of the control of either the
application prcqram or the MCP.
A detailed discussion cf the AQCTL
SVC 102 routine is included under System Central in the Method of
operation secticn of this publication.

CONTROL AREAS

~CAM

A TCAM control area is a storaqe area throuqh which a particular type
of informaticn required for control of the ~CAM system is communicated
amonq its parts. There are several principal control areas used by
~CAM:

•

TCAM Address Vector !able

•

Invitation list

•

Termname Table

•

Terminal Tatle

•

Cpt ion Table

•

Option Characteristics Table

•

Device Characteristics Table

•

Special Characters Table

Introduction

37

•
•
•
•

Translation Tables

•
•

tine Contrel Flock

•

Channel Preqram Bleck

•

Element Request Bleck

•
•

1? rocess Control Block

~CAM

Resource Centrol Block
Subtask Centrel Bleck
Oueue Con trol Block

Stati on centrel Bleck

Operator Control Address Vector Table
ADDRESS

VECTC~

TAELE

The TeAM Address Vector ~able (AVT) is a local constant area assembled
in the MCP.
When the functions of the INTRO macro expansion are
e~ecuted,
the AVT is initialized and fermatted.
At messaqe queues
open time, a ~einter to the word that contains the address of the AVT
is placed in the system Communication vector Table (CVT).
The first
~ntries in the AVT are initialized from the ~arameters of
IN~RO,
and
other entries are made durinq the assembly of other macros coded by
the user.
The AVT provides work areas in which TCAM reutines can store
variables.
~he
AVT also contains constant areas shared by more than
one macro expansien or TCAM subroutine.
The AVT contains five save
areas - one for the MCP, one for each level of control in the MCP, and
one for disabled code.
(The levels ef control in the MCP are
discussed under System structure in the Introduction section of this
publication.)
For efficient internal centrol, the AVT also contains
module addresses, special elements, contrel bytes/tits,
and the two
ready queues.
The format of the AVT is in the Data Area Layouts section of this
publication.
INVITATION LIS'I
The INVLIST=(name of list~ ••• ) operand of a DCB macre specifies the
names of the invitation lists for the lines of the line qroup
represented by the DCB.
There is one invitation list for each line in
a line qroup, and the DCB contains a pointer to thecentrol word of
each of its invitation lists.
An INVLIST macro specifies the actual
entries in each invitation list.

38

An invitation list is a list of the invitation
(pollinq)
characters for terminals that may qenerate messages to the CPU on the
same line. The order in which the invitation characters of the
terminals are listed determines the crder in which the terminals on
the line are pclled.
Invitation lists may contain both active and inactive entries.
Active entries are those invited to enter a messaqe on each pass
throuqh the list; an X'FE' follows the last active entry.
An inactive
entry is one that is not currently beinq invited to enter messaqes.
Inactive entries in the list are located after the X'FE' indicator.
The methods of Establishinq and alterinq thE status of the entries in
the invitation list are discussed in the section on Invitation in the
~~E!emL]£~Q~·l~!] g~Qgra~~~£~guid~, Order No. GC30-2024.
The qeneral fermat of an invitation list is eiqht bytes of control
information, followed by an invitation list entry for each active
terminal on the lirie, followed by an end-ef-list indicator (X'FE'),
followed by an entry for each inactive terminal on the line.
~n

invitation list with

In'

active

entries

has

the

followinq

format:

r:

e,n

I~1-.~~~ ~O
____

___Word
c_on_tr_ol__

~

______

~+8 ln_vc_ha_~ ~ ~
__

__

__

__ln_v_ch_ar_s__

~ ~~I- ~_X_'F_EI~
__

__

Be11~Feln-

are the two-byte relative ~ositicns in the Termname Table
for the entries represented by· the invitation characters.
There
is one two-tyte field for each entry in the invitation list, in
reverse ordEr.

~~D!~Ql~orQ

is a field defininq the status of
(See format belcw.)

CPU

Offset

the

invitation

list.

~lnt

for dial terminals, is the address of a field that contains
the ID sequence assiqned to the computer.
The referenced field
contains a lenqth byte, which specifies the number of bytes in the
ID sequence,
follow~d
by the ID sequence itself.
For buffered
terminals, the CPU ID field in an invitation list has the
followinq format:

+4

+6

+5
Active
Count

UCB
Status

+7
Reserved

Terminal
Count

Introduction

39

Actiy~~ou~!

is the number of active terminals on the line to
which !CAM is currently sendinq.
This field is initialized to
zero at line open time.

U~]~_~!at~~

is set to X'01' at line o~en time if the nCB for the
line indicates Aute Poll.
Otherwise,
this field contains

X'OO'.
T~~inal ~Co~nt

is the total number cf terminals on this line.
This field is initialized at line open time.

I.!l.Y..f..h.s~§

are the invitation or pollinq characters to be used for the
terminal.
The one-byte index followinq "Invchars" points to the
correspondinq relative position field that precedes the control

wor~.

X' 'F.E.!.

is the end-of-list indica tor, which is used to separate active
and inactive entries.
An EOT character precedes the X'FE' as an
end of transmission character in an invitation list for BSC Auto
'Poll terminals.

The control werd of an invitation list has the

+2

followinq

format:

+3

TQ1.s1 __ en1ri~~

indicates the number of active and inactive entries in
the list (if this byte is equal to zero,
the list is for an
output-only line: there is no messaqe traffic from the terminals) •

A~!i~~_~ntrt~~

indicates the number cf entries currently beinq
invited.
If ryte 1 is equal tc zero, all the entries in the
list
are inactive.

~id!B

indicates the size of each entry in the list (the size includes
the one-byte index that follows the invitation characters).

2tat~§

indicates whether the list is active or inactive and whether it
is beinq auto~olled.

40

status bits

o

1

2-4
5
6

7

]~ning

ON - 'EOT=' was specified on the
INVLIST macro.
O?F - 'EO~=' was not specified on the
INVL 1ST macro
ON - Offsets to the Termname Table
entries have been sorted
O?F - Offsets to the Termname Table
entries have not been sorted
Reserved
Indicates whether the list has been
processed by Check~eint/Restart
ON - Active list
O~F - Inactive list
ON - List is beinq autopolled
OFF - Proqrammed ~cll is in effect

The invitation list entries have the same fermat whether the
terminals are under control of the Auto Poll facility, the proqrammed
poll facility, cr otherwise (e.q., contenticn).
The width of each
entry is indicated in byte 2 of the control word.
The format cf each entry in an invitaticn list is:

Invitation
Characters

K

The
invitation
characters
(pollinq characters)
are in the
hexadecimal ferm cf the transmission code. K is the one-byte index
field used to indicate the relative position of the entry in the list
and to find the two-byte pointer te the correspondinq entry in the
Termname Table.
TERMNAM'E TABLE
The Termname Table contains the names ef all the terminals in the
system in collatinq sequence.
The table is qenerated at assembly time from the names of the
Terminal ~able entries in the TERMINAl macros in the order in which
they are named.
The names of queues for application proqrams,
of
queues for leqqinq media,
and of certain lists of ter~inals are
included,
in addition to the names of terminals and
terminal
components.
See the publication ~~stem/360 OS TCAM Programmer's

Introduction

41

Quide t Order Ne. GC30-2024, for informaticn about specifying the names
of the terminals, terminal components, etc.
Durinq the execution of the functions of the INTRC macro expansion
at MCP initialization time, the names in the Termname Table are sorted
into collatinq sequence to permit binary searches for locatinq
terminal names and for findinq terminal-dependent information.
~he
beqinninq of the Termname Table contains code (the Termname
Table Code - IEDQTNn that is used to ccnvert the invitation list
relative position field to the address of the corresponding entry in
the Terminal Table.
After the code there are two bytes of control
information for the Einary Search routine.
The next fields in the
~ermname ~able contain the number of bytes in the name
of an entry,
the address of the middle entry in the table, and the total number of
entries in the table.
Fach entry consists of the terminal name and
the three-byte address of the Terminal Table entry for that terminal.
~he lenqth of the field for the terminal name
is determined by the
lonqest terminal name;
each terminal name field is as lonq as the
lonq~st name (the names are
padded with clanks on the riqht, if
needed) •

From
the address field of a Termname Table entry, TCAM can locate
the corresponding Terminal Table entry, which consists of blocks of
information about each terminal.
~iqure
E shows the
relationship of ~ointers from an invitation
list to the Termname Table.
The format of the Termname Table is shown
in the Data Area layouts section of this ~utlication.

TERMINAL TABLE
The Terminal Table consists of blocks of device~dependent information
about each terminal in the TeAM system; each such block is called a
i~xmiB~l~tr~.
There are six types of terminal entries,
each of
which is discussed later in this section.
The size, structure, and contents of the Terminal Table are based
on informatien ~rcvided by the user thrcuqh the TTABLE,
OPTION,
TERMINAL,
TLIST, TPROCFSS, and LOG TYPE macro instructions.
TTABLE is
specified once and defines the limits of the table.
One TERMINAL
macro is issued to create each sinqle er qroup entry.
OPTION macros
and data supplied by TEPMINAL and TPROCESS operands cause storaqe to
be allocated for any o~tion fields to be included in the Option Table
for a Terminal Table entry.
The option fields can contain information
needed to perform varicus optional functicns provided by TCAM or the
user.
The initial contents of each opticn field are specified by the
TEBMINAL or TPBCCESS macro that defines the entry.
TLIST defines a
distribution or cascade entry (defined below).
~PROCESS creates an
entry for an application proqram.
LOGTYPE creates an entry for
loqqinq messaqes.
Each entry in the Terminal Table begins on a fullword boundary.

The formats of the various types of terminal entries, with notes
concerninq Option Table implicaticns, are included in the Data Area
Layouts section of this pUblication.
There is one terminal entry for each terminal in the system, and
each Terminal Table entry is referred to via a pointer from the
Termname Table.
Fiqure 7 shows the relaticnship between the Termname
Tarle and the ~erminal Table.

Termname Table
o~------------------------~

Code and Control
Information

+82

'Piqure 6.

BOSTON 1

address

CHI b b b b

address

DET b b b b

address

NYC b b b b

address

RTP b b b b

address

WASH b b b

address

Pointers from an Invitation List to the

~ermname

Table.

Sinqle Entry
~ ~i~le-ent~~ in the Terminal Table
defines a sinqle terminal or
component.
A sinqle entry must be defined for each terminal or
component that can enter only, accept only, or both enter and accept
messaqes
(except for a terminal in a qroup entry, defined below).
If
a terminal com~cnent is to be selected individualJy, the component
must have a separate sinqle entry.

The format of a sinqle entry is the same as the qeneral Terminal
format defined in the Data Area Layouts section of this
publication.
Bits a throuqh 2 of byte a of the control information
field are set to binary 000 to indicate a sinqle (or qroup} entry.
If

~able

Introduction

43

there is no option area for an entry, the offset and count fields are
omitted. The required selection sequence field c~ntains the selection
characters for the terminal and, if it is a switched terminal, its
telephone number and the number of dial diqits.
A sinqle ·entry in the Terminal Table
macro.

i~

defined

by

a

TERMINAL

Termname Table
Code and Control
Information

Terminal Table
Entry for CHI

BOSTON 1

addres.s

CHI b b b b

address

DET b b b b

address

NYC b b b b

address

RTP b b b b

address

WASH b b b

address

Entry for RTP

Entry forDET

Entry for WASH

?iqure 7.

Pointers from the Termname Table to the Terminal Table

Group Entry
A g~~~~
~~1~ represents a prespecified qroup of terminals on a line
that has special equiprrent tc permit simultaneous transmission of a
messaqe to the qroup.
A sinqle set of unique addressinq characters is
used to contact the qroup.
Several ccmbinations of prespecified
terminals can te qrouped for this purpose. Each qroup has .a qroup
terminal name and a correspondinq qroup entry in th~ Terminal Table.
A qroup entry in the Terminal Table has the same format
as a single
entry. except that, since the entry is for output transmissions only,
t he ,input sequence· counter field is not used.

A qroup entry is defined by a TERMINAl macro.
ryistribution Entry
A gj~~~ib~1iQ~ ~tr~·contains a list of pcinters to sinqle, process,
or qroup entries.
The pointers are qrcuped under the entry name.
When a messaqe contains a distribution entry name as its destination
code, TeAM sends the messaqe via separate transmissions to all
~estinations indicated by the list.
Each terminal on the list must
44

have a correspondinq sinqle or qroup entry in the Terminal Table.
The
TCAM MCP can only send messaqes through the distribution list method.
The format of a distribution entry in the Terminal Table is the
same as that for a sinqle entry, except that the setting of the status
bits is binary 010, and the input sequence number field (bytes 4 and
5) contains a count of the entries in the list.
Two-byte pointers to
the sinqle or qroup entries that make up the list follow this count
field.
For distribution and cascade entries, bytes 1 to
address of a distribution or cascade Destination QCB.
A distribution
macro.

entry in the

~erminal

~able

3

contain

the

is defined by a TLIST

Cascade Entry
A ca...§£aae- entll-is identical in a-p-pearance to a distribution entry,
except for the status byte, but is handled differently.
The messaqe
is queued for the available terminal that has the fewest messaqes
queued for
it in the list.
An available terminal is one that is
currently capable of acceptinq a messaqe.
~be terminal
must not be
held.
To be available, a dial terminal must not be involved in a time
delay.
If more than one of the available terminals have the same
number of messaqes queued and that number is the fewest number of
messaqes queued, the messaqe is sent to the first of these terminals.
If the messaqe cannot be sent to any terminal at this time,
it is
queued for the first terminal in the list. The TCAM MCP can only send
messaqes throuqh a cascade list.
The format of a cascade entry is the same as that for a single
entry, except that the settinq of the status bits is binary 010 and
the input sequence number field ccntains a count of the entries in the
list.
Two-byte pointers to the sinqle or qroup entries tbat make up
the list follow this count field.
A cascade entry in the !erminal Table is defined by a !LIST macro.
Process Entry
A process ent];''! in the 'Terminal Table represents a queue of messaqes
for an application prcqram. There must te a process entry for each
queue to which an application proqram can issue a GFT or READ macro
and at least one for all the PUT or WRITE macros from the same
application proqram.
The format for a process entry in the Terminal
Table is the same as that for a sinqle entry, except that the settinq
of the status bits is binary 001.
Also, for a GFT/READ operation,
bytes 1 to 3 contain the address of the Destination QCB.

A process entry is defined bV a TPROCFSS macro.

Int.J:od uction

45

Loqtype Entrv
A l~g!~~ ~nt~~in the Terminal Table represents a queue of messages
for a loqqinq medium. The setting of the status bits for a log entry
is binary 011.
A

loqtype entry is defined by a LOG TYPE macro.

Line Entrv
A li~ ~~tr~ in the Term1nal Table defines a switched line that is
used for in~ut operations.
A line entry contains the
device
characteristics for stations that call in on a switched line before
supplyinq identification and for stations that call in and never
supply identification data.
~he
format of a line entry is the same as for a single or group
entry except that the setting of the status bits is binary 100.

A line entry is refined bv the

UTE~M

operand on a TERMINAL

macro.

OPTION TAELF
The user may specify an area to correspond to any entry in the
Terminal Table for use by the COUNTER, FRRORMSG, FORWARD,
MSGLIMIT,
PA~H,
REDIRECT, STARTMH, and ether MH delimiter macro
INSERT,
instructions issued in a message handler. ~he fields are generated by
OPTION macros, which must be issued before t~e TERMINAL and TPROCESS
macros that define the Terminal Table. One-byte offsets to these
fields are ~laced in the terminal entry beqinning at the TRMOPT label.
The routine for the LOCOPT macro uses these offsets to locate the
option field.
An OPTION macro defines each field in the Option Table. The macro
names the option field and defines the type and length of the field.
The OPTION macro generates a CSECT to contain the actual option data
and another CSECT to contain the field name and characteristics.
Initial values for the option fields are specified via parameters
of the TFRMINAL or TPROCESS macros.
~ach option field requires one OPTION macro.
The order of the
fields within the Option Table is determined by the order in which the
OPTION macro instructions are specified. The first option field is
qenerated on a doubleword boundary. The maximum size of the option
fields for a qiven terminal is 254 bytes, includinq required boundary
aliqnment.

?or each OPTION specified, space for a ene-byte offset i$ reserved
in the offsets field of the Terminal Table entry. When the TERMINAL
or TPROCESS macro that initializes the fields of the Option Table is
issued, a two-byte offset is generated to the option table for this
entrv_ If initial data is supplied, the option field is qenerated for
46

the terminal cr process entry; if a comma is coded, the option field
is not qenerated.
If the field is qeneratEd, its offset is placed in
the offset field cf the terminal entry; if the field is not qenerated,
the offset field contains X'FF' to indicate that there is no field.
~ach
sinqle, qroup, or process entry in the Terminal Table
contains a one-tyte offset in the offset fiEld for each OPTION macro
issued.
The space needed for the Option Table depends on the number
of fiel~s initialized by the TERMINAL or TPROCESS macros, and on the
size of the fields as specified bv the OPTION macros.

OPTION names
table enables an
messaqe to be lccated.

c~tion

are kept in a table with their numeric values.
field named in an Operator control

OP~ION

TABl~

~ll

~his

CHARACTEFIS~ICS

~he
Opticn Characteristics Table is
a variable lenqth table that
contains one entry for each OPTION macro issued by the MCP.
The table
allows TCAM routines to use the assembled name for an OPTION macro to
locate the data for a specific terminal in the Option Table.
Each
entry in the O~tion Characteristics Table contains the lenqth of the
correspondinq Option Table entry, the ty~e of option field specified,
and the user-specified namE of the OPTION macro.
A field in the AVT contains the address of the Option Table,
and
the second word of the Opticn Table contains the address cf the Option
Characteristics Table.
storaqe is allocated for and the table is
initialized at assembly time.

DEVICE CHARACTERISTICS TABLE
The Device Characteristics Table
(DCT)
consists of entries that
describe the characteristics of the terminals in the system.
A
pointer in the AV~ and a one-byte index in the Terminal Table
entry
are used to qain access to the entries in the DCT.
A sinqle four-byte
entry
is
qenerated
for
all
terminals
that have identical
characteristics.
~he neT is
~iqure 8 shows

qenerated by the specifications of the TERMINAL macros.
thE relationships amcnq the AVT, the Termname Table,
the Terminal Table, and the nCT.

SPECIAL CHAPACTERS TABLE
A special characters table (SCT) consists of entries that contain the
special characters required for dEvice I/O for a s~ecific line qroup.
The SCT for a line qroup is located via a three-byte address in the
DCB for that line qroup.
The DCB for the line qroup is located
thLouqh a ~ointer in the LCE.
I n t~,od uc tion

47

Termname Tabl e

(
AVT

Termname Table

Code and Control
Information

I

BOSTON 1

address

CHI.bbbb

address

DET b b b b

address

NYC b b b b

address

RTP b b b b

address

WASH b b b

address

\

iJ

\.

OCT

Terminal Table Entry

I

Device
..
Characteristics Index

1

Device Characteristics Table
Characteristics List
Characteristics List
Characteristics List
Characteristics list
Characteristics List

Fiqure
~erminal

B.
Felationships amonq
Table, and the nCT

the

AVT,

the

An SCT is variable in lenqth since the special
bv each terminal type vary.

Termname Table, the

characters

needed

The beqinninq of an' seT consists of 28 one-byte offsets, each of
which when a~ded to the SC~ pcinter in the rCB, points to a one·byte
lenqth field followed bv a special characters entry. There are as
many entries in an StT as there are different sets of special
characters needed~
If a function is not defined for the associated
line qroup, the one-byte offset field ccntains X'OO'.
Fiqure 9 provides an example of a special characters table entry.
Fiqure 10 describes the relationship amonq an LeE, a DCB, the
~ranslation Tatles, and an
CT.
48

o

Offset

+28

1C

20

22

00

32

34

36

~~

~I'

~~

~I'

~"

~~

~"

00 \\00
~ I'

~"

03

.~

1F

1F

1F

j~

01

16

41'

OF

~~

DF~

OF

01

76

01

76

01

40

,

Offset to EOT Se quence Offset to EOA Se quence - : Offset to Pad Characters
Offset to Idle Characters
Offset to Even A CK
Offset to Odd A CK
Offset to NAK
Functions not de fined for this table
Count and EOT Sequence
Count and EOA Sequence
Count and 15 Po d Characters

-------'------------1

Count and Even ACK Sequence _ _ _ _ _ _ _ _ _ _ _ _
Count and Odd ACK Sequence

Count and NAK Sequence -----------~----------~---_ _- - - - - - - - - - '

li'iqure 9.

Fxample of a· Special Characters Table Fntry

TRANSLATION TAEIES
The Translaticn Tables ccnsist of entries that qive the transmission
codes for incominq and outqoinq messaqes. ~he Translation Tables are
found throuqh a three-byte address in the DCB for the line qroup.

lCB

DCB

Special
Characters
Table

t SCT

t Translation Tables

'Incoming
Ou'tgoing

'F'iqure 10.
Tabl~s

Relationshir amcnq the

LCB t

seT,

DC'S,

and

Translation

Introduction

49

~ESOUFCE

CONTFCL ElOCK

Each element in the TCAM system is represented by a resource control
block (ReB). An PCB is actually a two-word prefix to an element. The
first word is a ~cinter to the QCB that the element is to be
associated with; the second word is a link field that, when the
element is on a chain, points to the next item on the chain.
Figure
11 shows the qeneral format of an RCB.

+1

Offset

o

Reserved

QCB Address

+4

Priority

Link Address

Q~]

~ddr~EE

is a pointer to the QCE to which the element has been

tposted.
Priority is of the element represented •
.1ink -address is a pointer to' the next element in the chain.
~iqure

11.

Rescurce Control Block

There are two types of permanent FCEs:
1.

Buffer PCBs

2.

Communicaticn line FCBs

Buffers are areas of main storaqe used to contain message data
and/or control information. The first 8 bytes of each buffer comprise
an RCB.
As with all TCAM elements, the identity of a buffer depends
solely upon the ~ueue that its representative RCB is chained to at a
particular time. The buffer itself is always physically identifiable
as a fixed numrer of bytes of main storaqe. If the RCE representinq
the buffer is chained into a Destination OCE, the tuffer is full; that
is, it contains a messaqe seqment to be transmitted to a destination.
When the same FCB is subsequently chained into the element chain of
the Buffer Fequest OCE, the element involved is an availarle buffer,
even though there has been no chanqe in the physical storage location
of the buffer.
A line central block
MCP. There is an LCB
subtask has centrol of an
the LCB itself is treated
contained within the first
~CAM

SO

(LCB) represents communication lines to the
for each line in the system.
When a
LCB, it has control of the line; therefore,
as the resource element.
The RCB is
two words of the LCB.

There are
1.
2.

t~o

special types of FCBs:

Oueue contrel block P-CEs
~lement request block RCBs

When a queue control block (OCE) appears on the ready queue,
it
may represent a special case in which the QCB is t~osted to itself.
The QCB is actinq as a special element rather than as a system
resource, in that the first subtask on the STCB chain of the QCB qains
control without an element to process. The subtask must be selfcontained and able to locate any data it needs for execution.
If
~here
are no elements to process,
the QCE has qained the system
resource, time.
An element request block (ERB) on the ready queue can
request for a reseurce or as an actual element itself.

SUB~ASK

act

as

a

CeNTRel FlOCK

subtask control tlocks (STCBs) represent the modules that perform the
work of the TCAM system.
~he purpese of an STCB is to cause a
module
to be executed.
~he
format ef a full STCP is shown in Figure 12.

+1

Offset

o

Activation
Key

+4

Priority

Fiqure 12.

Li nk Address

Format of a Full STCB

When the TCAM Dispatcher examines the OCB associated with the
element on the to~ of the ready queue,
the third word of the QCB
points to the hiqhest-priority STCB on the STCB chain ,of the QCB.
The
~CAM
Dispatcher uses tbe activation key of the STCB to determine the
type of STCP present.
The way of determininq the actual address of
the subtask varies accordinq to the type of STCB~
When the address is
available,
the rCAM Dispatcher exits tc the routine itself.
More
aetails concerninq the actual dispatchinq of a routine are presented,
under System Centrol in the Method ef Operation section of this
pUblication.
The four types of STeBs are discussed under Functions of the TeAM
Dispatcher in the Method of Operation secticn of this publication.

Introduction

51

OUEUE CONTPOI ElOCK
A queue control block (aCE) is used to requlate the sequential use of
elements amonq requestinq tasks.
Every queue, or item, that is
waitinq for service in the system is associated with a QCE. Fiqure 13.
oives the qeneral format of a QCE.
Offset

o
+4

+1
Key

Element Chain Pointer

Priority

Li nk Address

+8

STCS Chain Pointer

Fiqure 13.

General Format of a OCB

A OCB has three primary fields:
a pointer to the element chain,
a iink address, and a pointer to the STCE chain.
The element chain
consists of any elementE, other than the requestinq resource on the
ready queue, that the suttask represented by th.e STCB chain miqht need
to process. If this is the Buffer Request OCB, the element chain
consists of buffers (actually the buffer unit pool). The link field
is useato point to another item when a QCB is on a hiqher queue. For
example, if a QCB is on the ready queue, the link field pcints to the
next item on the ready queue. The STCB chain consists of pointers to
the routines that are associated with the CCB.
~or
each attached task
(Operator
Control,
Checkpoint, and FE Commen Write) there is a special
BCE in the second word. The TeAM Dispatcher posts the
attache~ task is to vie for centrol of the system.
An
to ce passed to the attached task is chained into
chain.

There is a detailed list
Appendix B.

of

the

QCEs

in

the

On-Line
Test,
QCB that has an
ECB when the
element that is
the QCE element

TCAM

system

in

LINE CONTROl BleCK
There is one line ccntro1 block
(LeB)
fer each line in the TCAM
system.
An LCB ccntains all the informaticn pertaininq to the status
of the communications line that it represents. The format of an LCE
is qiven in the Data Area Layouts section ef this publication.

STATION

CCN~~Cl

EIOCK

Ther~ is at least one station control block (SCB) associated with each
LCB in the TCAM system. With bu~fered terminals there is one SCB per

52

terminal on a line. A buffered terminal ~ends a block or a part of an
entire transmission at a time. While that terminal is preparinq to
send a subseouent block, TCAM examines the SCEs and sends to and
receives from other terminals on the same line. TCAM uses the SCE for
~
terminal te keep track of one transmission from that buffered
terminal on the line.
If the terminals on a line are not buffered, one terminal at a
time completes its transmission. There is no need to keep track of
many transmissions in parallel, thus one SCE is sufficient for the
entire line.

CHANNEL PROGRAM EIOCK
A channel proqram block (CPE) contains a disk I/O channel proqram that
contains a ~cinter to the buffer to be processed. In disk queuinq,
C~Bs are used to read to or write from
the destination queues.
If
disk queuinq is utilized, the pool of CPEs is created by a nonresident
routine called ty the INTRO macro expansicn. The user specifies the
number of CPBs to be built to handle the mes~aqe queues buffers in the
CPB=inteaer operand of the INTRO macro. Each CPE is 'built in main
storaqe and is allocated a work area equal in si~e to one buffer unit
(includinq the 12-byte unit centrol area) .

ELEMENT

~EOUEST

PLOCK

uses an element request block (~RB)
tc request buffers for a
line.
There is one FRE in each LCE.
An ERE is tposted to the
appropriate OCB to obtain filled buffers fer a send operaticn or empty
buffers for a receive operation. The format of an ERE is shown in
li'iqure 14.
~CAM

+1

Offset

o

Key

QCB Pointer

+4

Priority

Link AddreSs

+8

Status

+12

Count 1

Fiqure 14.

Chain Pointer
Count 2

I

Format of an ERE

Introd uction

53

The OCE peinter refers to the queue centrol block to which the ERB
is tposted.
The link address points to the next element on the queue
that contains the ERB.
The status field indicates the status of the
~~B
(for exam~le, tposted for a buffer, available, etc.).
The chain
field contains a pointer to the first buffer in a chain of buffers to
be used in the operation.
If the buffer unit pool is ~mpty (all
buffer units are in use), the EPB is placed in a chain of ERBs waiting
for buffers and remains there until a buffer is returned and assigned
to it.
The two count fields indicate the number of buffers requested
for an operation.
Two fields are needed because a disabled routine
may need to increment the count and an enarled routine to decrement
the ceunt.

DROCESS CONTRer EIOCK
A process control block (PCB)
is a control area in an MCP that
provides an interface between the MCP and an application ~roqram.
The
PCB contains information needed for communication between the two
proqrams.
A PCB macro instruction in the MCP defines a PCB.
There must be
one PCB,
hence one PCB macro, for each active application proqram to
be used with thE MCP.

OPERATOR CCNTFOl ADDRESS VECIOR TAElE
The Operator Centrol Address Vector Table i~ a constant area assembled
at the heqinninq ef the Resident Operator ccntrol module.
This table
is used by the Resident Operator Contrel module, by the operator
control processinq modules, and by the check~oint/restart modules.

SELECTED OPTIONS
TeAM has certain optional features availatle.
optional in one of three possible ways:

These

features

1.

Some of the functions of the feature are optional.

2.

The presence or absence of the feature itself is optional.

3.

The feature may be either resident or transient.
The followinq sections discuss each of

~CAM.

54

the

optional

featues

are

of

OPERATOR ceNTRel
~he
TCAM Operatcr Control facility provides a way for the user to
dynamically examine or alter the status of his telecommunications
network.
A detailed description cf the functions of this facility is
included in the O~erator Centrol Fa~ility section of the ~ystemL360 Q~
T£~] R~Qgram~§£~§ Gqi~~1 Order No. GC30-2024.

The TeAM user specifies at SYSGEN time whether he wants the
Operator Control facility in his system to te supported by resident or
transient routines.
The centrel module of the Operator Control
facility is always resident. If the user indicates that he wants the
operator control suppcrt routines to be transient, these routines are
called in whenever they are needed. If the routines are specified to
be resident, tbey are all present in the sy~tem at all times.

AP~LICA~ICN

UBCGFAM

PROC~SSING

application proqram services of ~CAM enable a ~roqrammer to
process messaqes from a telecommunications network with tbe same macro
instructions that he use~ for local input/output devices. Because the
TCAM MCP performs the I/O operations, a completely device-independent
application proqram can be written.
Tbe proqrammer need not be
concernea with the time and device-dependent
aspects
of
the
telecommunicaticn~ environment.

~he

A TeAM MCF can operate in the System/360 without an application
proqram or proqraros. However, if the user wishes to examine and
process tbe data cominq in from his terminals to a qreater extent than
is allowed by the macro instructions of the MCP, he must use one or
more applicaticn proqrams.
The macros specific to
application
proqrams
are
discussed
in detail in the ~yst.§.1.llL]60 Os .!~.A11
Pro.9:.Ia mJ!l'§:~~ Gu i g.§., 0 r d erN o. GC3 0- 2 f) 2 4 •

LINE QUEUING OP!IONS
The TeAM user bas the option of queuinq eitber by line or by terminal,
as specifiea in the TERMINAL macro for each terminal or qroup of
terminals. The only exceptions are in the cases of buffered terminals
and of dial lines, where queuinq by terminal is required. Since
queuinq hy terminal requires one Destinatien QCB per terminal rather
than one per line qroup, this method requires more main storaqe space.

Introd uction

55

MESSAGE QUEUING OFTIONS
There are three

tvp~s

of queuinq fer messaqes:

•

Main storaqe queuinq

•

~eusable

•

Nonreusable disk aueuinq

disk queuinq

The messaae queues may be maintained by any ene of the three
methods or by a combination of main storaqe queuinq with backup on
either reusable er nonreusable disk.
In an MCP there are at most twe messaqe queues data sets:
reusable disk with or without main storaqe queues, and nonreusable
disk with or withcut main storaqe queues. tbe user specifies the type
o~ queuinq for a qiven data set bV codinq s~ecified
keyword operands
of the macros that huild the Terminal Table. The way in which the
types of aueuinq are specified is discussed in detail in the
21st~.mL36.Q
Q~
1~AM .E!:.Q.9:!:ll.mer'.§ iZuide, Order No. GC30-2024.
The way
that the various queuino types functicn is discussed under Queue
Manaaement in the Method of Operation secticn of this publication.

LOGGING
The loqqinq option allows the user to maintain a record of incominq or
outaoina messaqe traffic en a sequential medium. Messaqe seqments or
full messaqes, as determined by the placement of LOG macros in an MH,
are placed on an output device. The various types of logs, and the
correspondinq MH subaroups in which a LOG macro appears, are:
1.

Incominq header seqrnents cnly (Inheader)

2.

All incominq seqments (Intuffer)

1.

Cemplete incomina messaqes (Inmessaqe)

4.

Outqoinq header seqments only (Outheader)

5.

All outqoinq seqments (Outbuffer)

6.

Complete outqoinq messaqes (Outmessaqe)

When seqments of messaqes are loqqed se~arately, they are logged
in tbe sequence in which they are handled by the messaqe handlers~
Seqments of ~ifferent multi-seqment messaqes handled about the same
time are likely to be intermixed on the loqqinq medium. When the
first s~qment of a messaqe is loqqed, the TeAM header prefix (except
the first twelve bytes) and the seqment itself are recorded in that
or~er on the loqqinq device.
~ach subsequent messaqe
seqment logqed
is preceded by all except the first twelve bytes of the TeAM
subsequent-buffer ~refix for that seqment.
56

CHECKPOINT/FBS~AF~

Checkpoint/Restart is provided as an opticnal facility for the TCAM
MCP at user-specified intervals (every 30 seconds to 65,535 secortds).
By usinq the TCAM Check~cint/Festart facility fer the MCP and other
TCAM facilities, such as sequence numbers, an effective restart can be
accomplished in an ap~lication proqram.
The checkpoint routines store tables and other control information
necessary for a restart subsequent to a system failure or normal
closedown. ~estart of the TCAM lob after a system failure is
accomplished by initial proqram loadinq (1PL) the system aqain, and
loadinq the TCAM MCP. TCAM reinitializes the tables and pointers from
the latest checkpoint record on the disk, unless 'ICY" is specified on
the STARTUP ~arameter of the INTRO macro to suppress continuation
start-up.
After a system failure, the STAFTUP=C or STARTUP=W operand
on the TNTRO macro causes TCAM tc perform a continuaticn restart with
a scan of the messaqe queues.
If S~AF~UP=WY is specified, a
continuation restart with nc messaqe queues scan is performed.
After
a normal closedown,
TCAM can either reccnstruct the
environment that existed before closedown (a warm restart) or it can
reinitialize the system (a cold restart). A warm restart is specified
by STARTUP=W on INTRO; a cold restart is specified by STAFTUP=C.
To include the Checkpoint/Restart facility in an MCP, the user has
only to specify an OPFN for the checkpcint data set.
As a result of
this, the Check~oint Executor is attached in the same reqion as the
MCP.
The other checkpoint modules can be either resident or
transient, dependent on what the user specifies at SYSGEN time.

~CAM

AS A

S~AR~AEIE

PROCEDURE

Tbe user has the option of startinq a TCA~ ~CP or application proqram
either via JCL in the system input device or via the START operator
command at the system console. If the STAR~ command is to be used,
the JCL for the MCP and the different TeAM problem proqrams must be
cataloqed on SYS1.PROCLJE under individual ~rocedure names. The user
may then ty~e START and the "procname" for the proqram he wants, and
lob manaqement immediately fetches the JCL at
"procname"
and
subsequently starts the proqram.

ERROR RECOVERY FRCCEDURFS
Brror Recovery Procedure (ERP) routines are desiqned to diaqnose
and recover. if possible, from line errors occurring durinq a
telecommunications
operation.
The
error routines provide the
followinq basic functions:

~he

•

Automatic retry of all errors not involvinq data transfer.
transfer is handled by the EOE/ETE Handlinqsutta~k.

Data

Introduction

57

•

Automatic retry of text errors durinq a receive operation when the
data is still available;
that is,
the pcr Appendaqe has not
tposted the buffers containing the data following the last good
EOE/ETE.

•

statistical recordinqof all terminal errors.

•

~rror messaqes to
permanent errors.
~he

primary

TeAM

operator

console

for

all

ERP routines are optional in that they may be either resident

or transient.

SUETASK

the

The user specifies this option at SYSGEN time.

~RACE

~he Subtask Trace facility maintains a time-sequential
table of the
1ispatchinq activity of the TeAM tispatcher.
Each time the Dispatcher
activates a subtask, it completes an entry in the Subtask Trace Table.

The presence of the Subtask ~race facility in the TCAM system is
determined bv the DTRACF operand of the INTFO macro in the MCP.
If
the operand is coded DTBACE=O, the facility is not included. If the
operand is coded with a numerical value,
that value determines the
number of four-word entrie~ reserved for the Subtask Trace Table.

CROSS REFFPFNCE TABIF
The TeAM Cross Reference Table is formatted if the CROSSRF=integer
operand of the IN!FO macro is assembled with a nonzero value.
The
numerical
value of inteqer determines the numter of four-word entries
reserved for this table.
Each time that a line is successfully
opened,
the line Group Open routine (IGGC1940) completes an entry in
the table.

TCAM IN A MULTIIFCCESSING ENVIRONMENT
~CAM

operatinq in a multiprocessinq environment increases throughput,
availability,
and flexibility.
All TCAM appendaqes and SVC 102 cause
the TCAM task to become not eliqible to .be dispatched
in order to
prevent TCA~ disabled code from modifyinq TCAM control blocks while
enabled TCAM cede is executinq •. These modules set a flaq in the TCAM
TCB to indicate that the task is not eliqitle to be dispatched and
then call the CS Task Removal routine.
When the Task Rem9val routine
issues an external interrupt to the other CPU, the other CPU loops on
the supervisor lock.
When the TCAM module ccmpletes its functions, it
resets the TCE flaq and zeros the superviser lock before exiting.
The
other CPU then attains the lock and dispatches the task of the hiqhest
priority on its ready queue.

58

To prevent two enabled tasks from attem~tinq to enqueue/dequeue on
the same resource at the same time, each task issues a test-and-set
instruction on a specific byte in the QCE before referrinq to the
queue.
The byte must be equal to zero before the task can update the
queue, and the task must reset the byte tc zero after completinq the
update.

~TME

SHARING

CP~ION

~SO) under
when this cpticn is requested on the INTFO macrc.
There are
soecial macros to qenerate an MCP with MH routines to handle TSO
messaqes.
TCAM also supports applicaticn proqrams that are run
under
TSO in the foreqround reqion. If the ~SO o~tion is specified, TCAM
provides a conversational approach to terminal support - this includes
support of the transmit ana receive interru~t features,
modifications
to the schedulinq of I/O operations, and editinq of the data in TSO
messaqes to make the data compatitle with disk or tape.

TCAM provides terminal support for the Time Sharinq Option

~VT

TCAM ana the ~SO control proqram run in different partitions.
Smaller buffer prefixes and a modifi€a messaq€ flow allow TCAM to
route the messaqes to the TSO reqion.
TCAM support for TSO also includes the ability to use 1050s and
2741s on the same dial line,
the acility to simulate receive
interrupts when they are not a feature of the hardware,
and the
ability to have the transmission code dynamically determined.

MODULFo

ATT~IBUTES

TeAM modules are desiqned to possess certain defined attributes
concerninq structure, content, ana loqical format.
These attributes
determine how a module is to be loaded, what it contains, if it is
executable, wbether it is executable more than once without reloadinq,
and if it can bE executed by concurrent tasks.
The attritutes are included in the description of each module in
the Proqram Crqanizationsection of this ~ublication.
The attributes
applicable to !CAM modules are:

A reentrant module can be executed by more than one
task concurrently ana cannot be modified by itself or by any other
module Rurinq execution; that is, a task may beqin executinq a
reentrant module before the previous task has finished executinq
it.

•

B~~ntraRt.

•

.B~ire.§hable.

A refreshable module cannot be modified by itself or
by any other module durinq execution;
that is,
a refreshable
module can be replaced by a new copy durinq execution by a
recovery manaqement routine without chanainq either the sequence

Int.roduction

59

or the resul ts of processinq.
(See 1]] SystemL360 .Q~ concepts ~
Order No. GC28-6536, for an explanation cf recovery
manaaement routines.)

!~ciliti~~,

•

~eri~l~ ~~~ble.

•

]~~bl~~.

•

]i~ableg.

•

]~.§ i ~ .§.n.! •

•

..T.I.s1!..§i.§n..t. A transient module is a nonresident module that
resides in a system library cn some type of storaqe device until
it is called into the TeAM system for a limited lenqth of time
durinq the execution of a problem proqram.

•

E.IQbl.§~ EL£g~~~

•

..2..Y12~!:.!j'§..QL.Mog.§.

60

A serially reusable module can be executed by
only one task at a time. The module either initializes itself
and/or it restcres any instructions or any data in the module that
was altered durinq its execution.

An enabled module can be interrupted at any time bV an
appendaqe cr external event. When the interruption occurs, the
enabled module waits for the appendaqe to complete its processinq
and then continues as thouqh the interruption had never occurred.
~he interru~ticn has no effect on the
execution of the enabled
module.
A disabled module cannot
execution.
It must execute from
qained centrol.

be interrupted durinq its
beqinninq to end cnce it has

~ res i a. e n t mod u 1 ere sid e sin ma i n st 0 r a q e
system at all times.

0

f

the

TeA M

!ode. A module that operates in ~roblem proqram
mode is o~eratinq under contrel of the messaqe control or application oreqram, rather than under the contrel of
the
as
supervisor.

A module that is operatinq in supervisor mode is
operatinq under the control of the system supervisor.

SECTIO~

2:

METEor OF OPERATION

This section contains an introduction to the loqic of TCAM. The flow
of messaqes and ccntrol informaticn throuqh the buffers and tables and
the detailed functional descripticns of the modules are emphasized.
LOGIC OF TCAM
~CAM

can be functionally divided into four ma10r phases:

•

Disk messaqe queue initialization

•

Initiali~ation

•

Messaqe handlinq in an MCP

•

Closedown of an MCP

of an MCP

Tn addition tc the four phases listed above, there are other
phases that are functionally independent, vet necessary to complete a
discussion of the loqic of TCAM:
•

System control

•

Applicaticn proqram processinq

•

Operator ccntrol processinq

•

Checkpoint prccessinq

•

Error recovery procedures

•

Time Sharinq Cption interface

This section of the TeAM PLM presents the above phases of the
proqram in ·the order as they would loqicallv occur in a TeAM system.
Since the application proqram, Operator Centrol, Checkpoint, error
recovery, and Time Sharinq phases have no clear ~lace in this timeframe orqanization, they are presented as separ~te discussions at the
end of the section.
~he
foldcut operation diaqrams asscciated with this section
illustrate the functional operaticn of TeAM. The foldout diaqrams are
located after Appendix D and are accompanied by a description in the
text of this section.

Method of Operation

61

~HE

DISK MESSAGE OUEUE INITIALIZER

The Disk Messaqe Oueue Initializer is a utility routine that is used
to pre-format the data sets for the disk messaqe queues for a TCAM
MCP.
This routine is run before executinq the TCAM MCP lob.
1.\
TCAM MCF can use ei ther reusable er nonreusable ,disk messaqe
queues data sets, or both.
If both are used, each one must re~ide on
a separate data set.
The Disk Messaqe Queue Initializer must be
executed for each data set.

The variatles used te define the disk data set are, entered as Job
control Lanquaqe '(JCL)
parameters.
In the JCL the user defines the
si7e of each extent, the number of extents, the volumes to contain the
~ata set. the type of disk used, and the
size of each fixed-length
record.
In this data set there is one extent per volume, and all the
records on a velume must be contiqueus.
There is no difference in the
creation of a reusable or nonreusable data set.
The data set fermatted by the risk Messaqe Queue Initializer is
fixed lenqth and physically sequential.
Each record has a key and
data field initialized to zero.
The size of the data field is fixed
at six bytes; the size ef the key field is specified by the user in
the "KEYI,FN=mm" parameter of the IEDQDATA leb contrel statement.
The
key fielo must te less than or equal to 255 bytes, but qreater than or
equal to 33 bytes
(three plus the size of the prefix of the first
buffer).
At the end of writinq each extent cf records,
the Disk
Messaqe Oueue Initializer lists on the system consele typewriter a
statement that contains the total record count from the beqinninq of
the data set throuqh the volume lust completed.
If an\error condition
is encountered in writinq the records, the initializer sends an error
messaqe to the system console and then terminates.

INITIALIZA~ION

OF A MESSAGE

CONT~OI

PROGRAM

Upon receivinq control from System/360 as Job Manaqement, the TCAM MCP
performs certain initialization
functicns
in
preparation
for
subsequent processinq.
The initial processinq operations include:
•

Allowinq the user to alter the contents of certain AVT data fields
that were initialized and formatted at assembly time.

•

Initializinq and allocatinq stcraqe fer ruffers,
blocks, and werk areas.

•

sortinq the Termname Table.

•

Openinq data sets, initializinq LCBs, and modifyinq DeBs.

•

Preparinq the communications lines fer

•

Attachinq any required tasks in the

62

tables,

transmi~sion.

TCA~

partition.

control

The INTRO, OPEN, and READY macro expansion instructions in the MCP
initiate the initialization functions ef TCAM.
Foldout Charts 1
throuqh 5 show the flow of control durinq the initialization of an

FUNCTIONS OF INTBO
The INTBO macre is the first instruction ceded by the user i n a TCAM
MCP.
When OS Job Manaqement is alerted to the presence of a TCAM MCP
in the system, the INTRO macre expansien, as a subroutine of job
manaqement,
is
called
to
execute its specific initialization
functions •. Foldout Chart 1 presents a suromarv of these functions.

FUNCTIONS OF THE OPEN RCUTINES
After the initialization functions of the INTRO macro expansion have
completed, the functions of any OS or TCAM macros can be
executed. However, in an MCP, the user must open various data sets
before he can beqin processinq any data. He must open these data sets
in a certain erder: first, the messaqe queues data sets (optional),
then the checkpcint data set (optional), and then the data sets for
the line qrou~s.
~een

Foldout Charts 2 throuqh 5 illustrate the flow ef centrol durinq
the openinq of each of these data sets, respectively.
The followinq qeneral points apply to each of the figures:
1.

When an OFEN macro is issued in an MCP, the OS Cpen routine qains
control.
It, in turn, issues an XCTL command to brinq in the
first load of the appro~riate open module.
The first routine,
upon
completion
of its functions, issues an XCTL to the
appropriate subsequent routine.

2.

When any qiven routine is to load a module, it activates as, which
checks the OS contents tirectory to determine whether that module
has already been loaded. If there is an entry for the module in
the directcrv, OS adds one to the directory usaqe count. If there
is no entry in the directory, OS makes a two-byte entry in the
directory, adds one to the usaqe count, and loads the module.

3.

If the user issues an OPEN macro for multiple message queues or
line qroup data sets, each individual routine performs its
functions for each data set before issuinq an ICTL to the next
routine.
However, if there is a separate OPEN for each data set,
each routine is loaded individually fer each data set.

Method of Operation

63

PPEP~RA~ION

OF COMMUNICATIONS LINES FOR !BANSMISSION

The initial channel proqrams to enable the lines in the TCAM network
ar~
built by the Line Grcup Open routines. !he content of each
channel proqram depends on the type of centrol unit used with the
devices on the line.
Lin~
£..Q n t.I.Ql· JIni!·
2702
Leased
2702
Dial
2701 or 2703
Leased BSC
2701 or 2703
Dial ESC
2701 or 2703
Dial
2701 with IBM Type ITI Adapter
2701 or 2703
leased
7770
Dial
2848
leased

~UN~TIONS

OF

Channel Program
DISABLE, SAD, ENABLE
DISABLE, SAD
DISABLE, SETMODE, ENABLE
DISABLE, SETMODE
DISABLE
DISABLE
DISABLE, ENABlE
NOP
NOP

RF~DY

The READY macro instruction must. be the last instruction in the
initialization section of an MCP.
After the functions of READY have
been executed, the system is ready to handle message traffic. The
expansion of this macro ends with an instruction to branch to the
routine
(the TCAM Dis~atche~ in the MCP where arrival ef the first
element on the ready queue is awaited. When the first message enters
the system, centrel is transferred to the MH section of the MCP.
When the user codes a READY macro in his MCE, he has the eption of
soecifying the addresses of routines te handle "Good Morning" and
"Restart in Preqress" messages.
'Ihe assembly of the READY macro
places these addresses in the AVT.
~oloout
chart 5 presents
expansion and routirie.

a functienal flow for the READY macro

SYSTEM CONTROl
~wo

primary routines maintain contrel ameng the parts of

•

'Ihe TCAM Dispatcher

•

~he

TCAM~

AOCTL SVC 102 routine

FUNCTIONS OF THE TCAM DISPATCHEP
The TeAM Dispatcher is the centrol module of the TeAM system.
The
primary purpose of this module is to allecate and schedule system
resources. The section on the TCAM Dispatcher in the Introduction to
this publication contains a 0iscussion ef the tools and mechanisms
used by the Dispatcher to perform its functions.
64

~ach queue in the TCAM system is represented tv
a queue control
block (OCE), which is the connectinq link between elements and the
subtasks waitinq for the elements. A QCB consists of a pointer to a
chain of elements and a pointer to a chain of STeEs. Elements and
STCBs are inserted in their res~ective chains on the QCB in priorityFIFO order, that is, first-in-first-out within priority class.

A subtask control block (STCBl represents each waitinq subtask to
the Dispatcher. An STCP ccntains the data necessary tc activate the
subtask it represents. A full STCB consists of a suctask entry code
or activation key (MCPL), a priority field, and a link field for STCE
chaininq.
(There is a complete discussion of the four formats of
STCBs later in this section.)
A resource control block (RCBl represents each element to the
Dispatcher.
An FeB contains three fields: the address of the QCB to
which the element is or is to be tposted, a priority field, and a link
field to be used for element chaininq. When elements are on the read V
queue, they are maintained in priority-FIFO order.
The
TCAM
Dispatcher activates a subtask for the element on the tcp of the ready
queue.
The RCB for the element points to a QCE, and the activated
subtask is represented bV the hiqhest priority STCB on the STCB chain
of the OCB.
Piqure 15 illustrates tbe chain of linkaqe from the ready queue to
a subtask when an element is on the ready queue.

~iqure 15.

LinkaQe from the Fead, Oueue tc Subtask Code

Method of Operation

65

When the Dispatcher examines the hiqhest. ~riority element on the
ready queue, it removes that element from the ready queue by placing
the address of the element in register 1. The Dispatcher then inserts
the link field of the element in the ready queue, so that the next
element can be examined. When there are no elements for the ready
queue, it pcints to the "dummy last element" in the AVT (AVTDELEM).
~his element has a priority
of zero.
Fiqure 16 demonstrates the
chanqe in linkaqe between the ready queue and its elements during an
update of the ready queue bv the Dispatcher.

Register I
Element

t

-""'\
,/

./

/

/'

/'
/'
/'

Ready Queue

/'
./'

Element

t

./'

Element A
Key

QCB

Priority

Link

l'

LEGEND
Element B
- -.... Original Linkage

===t> Data movement to update the ready queue
-

- - . . Linkage after ready queue update

Fiqure 16.

Pointers durinq a Ready Queue

After the ready queue has
examines the element pointed
situations that can exist:
•

66

"'------------

Key

QCB

Priority

Link

l'

u~aate

been updatEd, the TCAM Dispatcher
to by register 1 • There are three

If the elerrent points to a QCE that has an STCE with a MCPL field
of zero, the element indicates to the Dispatcher that there are no
real elements currently tposted to the ready queue. This is a
"dummy" elerrent that causes the Dispatcl:er to issue a system WAIT
command.
The activity of the Dispatcher resumes when an I/O
routine or an application program t~osts an element tc the ready
queue and causes an interruption in the operating system.

•

If the element is tposted to a OCB that represents an attached
~CAM
task
(Cperatcr Control, Checkpcint, Cn-line Test, or FE
Common Write) ,. the MCPL field of the STCB is equal to X' 02'. This
causes the Dispatcher to link the element to the element chain of
the OCB and to post complete the event control blcck (ECB, the
second word of the QCBl of the attached task.
This allows the
attacheo task the opportunity to vie for contrel of the system
when TCAM issues a system WAIT command.

•

If neither af the abcve situations exists, the Dispatcher computes
the entrv ~cint for the hiqhest priority subtask represented on
the STCB chain of the OCB referred to by the ReB of the element.
~he nispatcher then branches to that suttask.
The TeAM tispatcher calculates the subtask entry point accordinq
to the value of the MCPL field in the STCB. If the MCPL field is
equal to X'C4', the subtask entry point immediately follows a t~o­
byte STCB. If the MCFL value is X'OE', the surtask entry point
imme~iately
follows a four-byte STCB; and an MCPl value of X'08'
indicates a six-byte STCB. An MCPL value of X'OA' indicates a
subtask entry point immediately followinq an eiqht-byte STCB. If
the MCPL value is qreater than X'OA', the TCAM Dispatcher
activates the associated subtask by usinq the MCPL field as an
index into the AVT branch table at AVTDISP. The followinq values
of MCPL cause the Dispatcher to activate the associated subtasks:
x'oe' - Leased PeceivE Scheduler
X'OE' - Send Scheduler
X'10' - Get Scheduler
X'12' - Put Scheduler
X'14' - Get FIFO Scheduler
X'16' - loq Scheduler
X'18' Dial ReceiVE Scheduler
X'1A' Buffered Terminal Scheduler
X'1C' Fetrieve Scheduler
X'1F' - local Feceive Scheduler

~iqure 17 shows
the linkaqe from reqister 1 to the
priority STCB when the Dispatcher is exaroininq an element.

hiqhest

Register 1

I

G

Element

l'

~

I
QCB

Element
QCB
Priority

Link

l'

---z-...

Element Chain
Priority

Link
STCB

STCB

l'

~

MCPL
Priority

~iqure

17.

Link

Linkaqe from Reqister 1 when a Subtask Gains control

Introduction

67

If a subtask is activated without an element to process, its
STCB is tposted to the ready queue, as if it was an RCE, with the MCPL
fie11 containinq the correct entry code for the subtask and the next
three bytes containinq the address of AVTRFADY-8.

!ot~:

~here
are four possible formats for STCBs. The way the subtask
entry point is calculated depends cn the ty~e of STCB, and the MCPL
field indicates the type. Each type of S~CB has a different length.

A two-byte STCB is used when its OCB is located in the AVT or
elsewhere in wain storaqe. the STCB is the cnly one that ever appears
in the STCB chain of the OCB, and the STCB is never placed in the STCB
chain of any other OCB. The Dispatcher examines the QCE to find the
STCE pointer.
The MCPL field of the STCE contains the value X'04',
and the Dispatcher adds 2 bytes to the address of the STCB to find the
su~task entry point.
The second byte of tbe STCB is unused.
The
format of a two-byte STCE is shown in Fiqure 18.
A four-byte S~CB has an MCPl value of X'OE' and is used when it is
convenient to haVE the OCE as a part of the suttask code. The QCB and
STCB are combined by makinq the STCB the third word of the QCB. The
STCB must be the cnly one for this OCB, and the STCB must never be
transferred to the STCB chain of another QCB.
The Dispatcher
calculates the suctask entry point by addinq four bytes to the STCE
ad1ress. The fermat of a four-byte STCB is shown in Fiqure 18.
~
six-byte ~TCB ~as an MCPl value of X'08' and is used when an
STCB always appears as the last STCB in the STCB chain of a OCB.
In
this situation, the priority field, but not the link field, is n~eded.
The Dispatch~r calculates the subtask entry point bV adding six bytes
to the STCB address. The format of a six-byte STCB is shown in Fiqure

18.

An eiqht-byte STCB is used when an STCE can appear in any position
in the STCB chain of a QCR.
When the MCFL field is X'OA', the
Dispatcher calculates the subtask entry point ty adding eight bytes to
the STC? address. If the MCPL value is qreater than X'OA', the STCB
is ~or one of the TCAM schedulers, for each of which the Dispatcher
uses the MCPl field as an offset into the AVTDISP table of addresses.
~he format of an eiqht-byte STCB, which is a full STCB,
is shown in
Fiqur,= 18.
the

Fol~out Chart E
TCA~ Dispatcher.

presents a summary of the dispatchinq functions of

The ~CAM rispatcher also functionE as a queue manaqer. The
Dispatcher performs queue manaqement functions when a subtask branches
to a particular entry point in an entry point table in the Dispatcher.
The function performed by the Dispatcher depends on which label a
subtask brancheE tc.
!ntrv point labels that 10 not end in "R" result in loss of
control bv the 1:ranchinq sUbtask. Entrv t:oint labels that erid in URn
result in an immediate return of centrel to the branchinq suhtask
after the queue manaqement functicn has been performed.
68

Attributes:

Two-byte STCB
MCPL

04

00

I

•

QCB located in the AVT or assembled in main storage

•

QCB has only one STCB

•

STCB is never chained to any other QCB

•

QCB is part of the subtask code

•

QCB and STCB are combined - the STCB is the third word of the QCB

•

QCB has only one STCB

•

STCB is never chained to any other QCB

•

STCB is always the last STCB in the STCBchain of a QCB

•

STCB can appear in any position' of the STCB chain of a QCB

Subtask entry point ~
Four-byte _ST_C_B_------_~.

Six-byte STCB
MCPL
08
Priority

00

I.

~~---.a..----f

~

S b

k

.

~

Eight-byte (Full) STCB
MCPL

Priority

Link address

~Subtask entry POi

~iqure

18.

J
Formats for tifferent

Ty~es

of STeEs

The queue manaqement functions of the various entry
are described in foldout Chart 7.

point

labels

There are actually two TCAM Dispatchers available for a TCAM MCP.
They are the same except that IGG019RO performs the additional
function of tuildinq a Suttask Trace Table.
If the DTRACE keyword of
the INTRO macrc is coded with a ncnzero numerical value, the IGG019RO
TeAM Dispatcher is loaded into the MCP. Ctberwise, the IGG019RB TCAM
Dispatcher is used.

FUNC~IONS

OF THF AOCTL SVC 102 POUTINE

The AOCTL SVC 102 routine is a
multi~urpoEe
that performs the followinq fUnctions:

•

cross-partition data movement
proqrams.

tetween

system
the

MCP

service
and

routine

ap~lication

Method of Operation

69

~CEs

for attached tasks and

a~plication

•

postinq

programs.

•

TPosting elements frcm attached tasks and
the disabled ready queue in the MCP.

•

Flagqing the Task control Block
(TCB)
that represents a Time
Sharing Option
(TSO)
application ~roqram as either available or
not availatle for swap.

•

Flagging the TCE that represents an a~~lication program as
eligible or not eliqible for rcllcut.

a~plication

programs

to

either

The AQCTL SVC 102 routine is a Type I
SVC resident in the
Operatinq System nucleus.
It gains control when an SVC 102 call is
issued from any task in the system.
~hen
the AOCTL SVC 102 routine is called by a routine anywhere in
the system, reqister 1 must point to a variable lenqth standard
parameter list.
The AQCTL SVC 102 routine examines the first byte
(byte 0) of this list to determine which of the possible functions is
to be performed. The contents of the parameter list vary according to
the action code settinq in eyte o.

Tf more than one bit in the action code byte is turned on, the
AQCTL SVC 102 routine performs the actions ~pecified for each bit.
The combinaticns of bits used, however, must be compatible so that the
parameter list satisfies all the requirements.

When the AQCTL SVC 102 routine relinquishes centrol, it stores a
r8turn code in register 15. For a successful operation,
the return
code is binary zero.
If the SVC is issued when there is not an active
MCP in the system, the requested acticn is not performed and the
return code is cinary four.
The followinq ~araqraphs discuss the method used by calling
routines to effect the functions of the AQCTL SVC 102 routine.
Cross-partition Data Movement:
When a routine needs to move data
across a partition boundary, it turns on action code bit 4 in byte 0
of the parameter list beinq built for the ACCTL SVC 102 routine.
To effect cross-partition data movement, the calling routine
provides a three-word parameter list.
The first word contains the
address of the data to be moved.
The seccnd word contains the address
of the place the data is to be moved to (the tarqet field), and the
third word points tc a halfword that contains the length in bytes of
the data field.
Fiqure 19 defines this particular parameter list
format.
The AOCTL SVC 102 routine, upon finding bit 4 of byte 0 set to
moves the data to the specified location.

70

1,

+1

Offset

o

Action code

ECB address

+4

X'OO'

T50 Job Identifier address

+8

X'80'

TCB address

?iqure

19.

Fermat of a Cross-Partition Data Movement Parameter List

Post an ECB of a Different Task:
When a routine Dee1s to issue an as
POST on the ECB of ancther task, either bit 1 or bit 2 of the action
code byte is set to 1. Bit 1 is turned on if the ECB of a task that
is eliqible fer rollout
(RaFT)
is to be posted complete; bit 2 is
turned on if the ECB of a standard (ECE always in main storaqe)
or
~ime Sharinq c~tion (TSC) task is to be posted complete.
Dependinq en tbe type of ECB to be posted, the parameter list
built for the AQC~L SVC 102 routine is either two or three words lonq.
The parameter list for a standard or ~so task is two words lonq;
the
parameter list for a RORT task is three words lonq. The formats of
thes~ two parameter lists are shown in Piqure 20.

TSO or Standard Task:

+1

Offset

o

X'20'

ECB address

+4

X'80'

TSO Job Identifier address

Rollout/Roll in Task:

+1

Offset

o

X'40'

ECB address

+4

X'OQ'

TCB address

+8

X'80'

DEB address

~iqure

20.

Formats of an ECB Post Parameter list

ftethod of Operation

71

~o effect an ECB post, the AQCTL SVC 102 routine
interfaces with
the as Post routine (IEAOSY50) at a special entry ~oint (IEAOPT01)
that performs ne validity checkinq. the address of this entry point
is in the CVT.
The AQCTL SVC 102 routine supplies input to the OS
Post routine in the follcwinq qeneral reqisters:
•
~eqister 15 - the address of the branch entry, I~AOPT01.

•

~eqister

-

Beqister 13 - in the low-order 15 bits, theTSC Job Identifier for
the FCB to be ~osted (for standard FeBs, this field is binary
zeros) •

•

Beqister 11 - the BCB address, with the lew-order bit set to

•

~eqister

14 -

the return address.

one.

10 - the co~pletion code (always zero).

If the task to be posted is currently relIed out, the AQCTL SVC
routine sets a pit in the ~CB (TCEFLTPN) to desiqnate to the
Pollout/~o11in routine at rollin time that there is a POST pendinq for
this tas~.
102

If the FCE to be posted is for a TSO task, the AQCTL SVC 102
routine branchES to the Time Sharinq Interface program in the nucleus
tas~ to beflaqqed either eliqible or
not eliqible for swap.
The
interface is accorrplished via the ISEVENT macro.
Tpost An Element to the Disabled Ready Queue: When a routine needs to
tpost an element to the'disabled ready queue in the MCP, bit 5 of the
actien code byte is set to 1.
Thecallinq routine builds the same format
list used for cross-partition data movement
address of the tarqet fiela, in this case, is
disabled ready' queue in the AVT. There is no
because both the dat~ field' and the tarqet field
the pointers are changed.

three-word parameter
(see Fiqure 19). The
the address of the
actual data movement,
are elements
only

The AQCTt SVC 102 routine chains the element onto the disabled
readv queue and pests the lCB for the MCP ccm~lete •
. Flag the TCE for a 1S0 Proqram: When a routine needs to flag the TeB
of a TSO application ~roqram either eliqible or not eliqible for swap,
bit 3 or bit 6 of the acticn code byte is used.
If bit 3 is egual to one, the AOCTL SVC 102 routine flaqs the TCE
of the TSO proqram not eiiqible for swap; if tit 6 is equal to one,
the TeB of the proqram is flagqed eligible for swap.
The

three-word parameter
in fiqure21.

illuEtrat~d

72

list created by the callinq routine is

Offset

o

+1
Action code

ECB address

+4

X'OO'

TSO Job Identifier address

+B

X'BO'

TCB address

Fiqure 21.
'T?roqram

Format of a Parameter List

to

Flaq

the

TCE

of

a

TSO

~laq

the TCE fer a RORI Program:
When a routine needs to flaq the TCE
of an RORI application proqram as eliqible or not eliqible for
rollout, bit 0 cr bit 7 of the acticn cede tyte is used.

If bit 0 is equal to one, the AQCTL SVC 102 routine flags the TCE
of the task as not eliqible for rollout; if bit 7 is equal to one, the
~CB is flagqed as eliqible for rollout.
The three-word 'parameter list created by the calling routine has
the same format as the parameter list for ~estinq the ECB of an RORI
task (see Fiqure 20).

MESSAGE HANDLING IN A MESSAGE CONTFOL PROGRAM
Data enters the TeAM system randomly in the form of messaqes from
remote terminals or proqrams that qenerate messaqes.
Data
is
ultimately delivered to one or more terminals qr proqrams that process
the data.
The MCP centrels the routinq ef the messages as well as a
limited amount of processinq.
These functicns of an MCP are referred
to as "messaqe handlinq" functions.
In order to present an overview of the wayan MCP performs its
messaqe handlinQ (MH) functions, this sectien contains discussions of
the functional areas involved:
•

Line manaqement

•

Buffer management

•

~essaqe

•

Cueue management

handlinq routines

~oldout Chart 8 illustrates messaqe flo~ throuqh
a TCAM system.
Note the area of influence for each ef the functional ~arts to be
discussed.

Method of Operation

73

LINE MANAGEMENT
TCAM schedules line o~erations to alldw data to travel over a line in
a
single direction at anyone point in time.
A line can be used for
both sending and receiving, and in order to schedule this two-way
activity TCAMuses two mechanisms.
The first of these, a receive
scheduler, allcws data to be received frcrr a
remote station; "the
other, a
send scheduler, allows data to be sent to a remote station.
~ach line in a TCAM system is represented ty an LCB, and
at line
open time, each LCB (except a send-only line) has a receive scheduler
STCB built in it.
This STCE can be for the Leased Receive Scheduler,
the Dial Receive Scheduler, the Local Receive Scheduler, or the
Buffered Terminal Scheduler, depending on the characteristics of the
line.

At assembly time each Destination QCE in a TCAM system has an STCE
startinq in its third word.
This STCB can represent either the Send
Scheduler or the Buffered Terminal Scheduler and is used to schedule
sendinq operations.
The priorities of the receive and send scheduler STCBs are
determined when the user specifies whether he wants receive, equal, or
send priority for a line.
As the address cf an STCE is moved from the
STCB chain of the ICP to the STCP chain of the Destination QCB and
back,
that STCP is inserted in the respective STCB chains by FIFOpriority.
An LCB is tposted to the ready queue when the line that it
represents is free to either receive or send data.
The STCB that has
the highest priority in the STCE chain of the LCE has its subtask
dispatched.

A Receive Operation
At open time, either a Leased Peceive Scheduler STCB, a Local Receive
Scheduler STCP, a Buffered Terminal Scheduler STeB, or a Dial Receive
Scheduler STCP is built in each LCB.
Since there is one LCB for each
line in the sys{em, there is also cne receive scheduler STCP for each
line that can receive data in the system. If a line is intended for
sending only, there is no receive scheduler STCB and the only STCB in
the STCB chain for the line points to the CFVENi routine, which frees
the LCB instead of attempting to initiate a receive operation.
(The
OFVENT routine is part of the Receive Scheduler CSECT.)
The receive scheduler in central inspects a line to determine
whether a receive operation is possible.
A message can enter the TCAM
system only after the receive scheduler for a line has recognized that
the line is available so that a receive operation can be started.
The
scheduler is activated by the Dispatcher when i~s STCB
is the next
STCB in the STCB chain of an LCB at the top of the ready queue.
(See
Figure 22.)

14

Ready Queue
Element

t
LCB
QCB

t

Link
STCB

t

Link

Fiqure 22.

A

~eceive

Scheduler STCP in an ICB on the Reaay Queue

The primary function of each of the receive schedulers is to
solicit data from the terminals on a line.
For contention lines this
is done by pre~arinq the line to receive; fer multipcint lines this is
done by pollinq the terminals on the line.
!he point at which a
receive scheduler releases a
line is qenerally when the end of an
invitation list is reached, althouqh it can be after receipt of a
messaqe or,
in the absence of the Auto Poll feature, when a neqative
re~ponse is received.
Each receive scheduler, in order to solicit a messaqe,
requests
buffers to ccntain the messaqe by tpostinq the ERB for the LCB to the
Ruffer Bequest CCE.
The Buffer Request routine
(IEDQGA)
qets the
requested
numtEr of buffers from the bu~fer unit pool, and chains the
units from the chain field of the ERB.
Buffer Request branches to
~uffer Association, which builds in the cuffers a channel proqram that
is appropriate to the characteristics of the line.
Buffer Association
returns to Buffer Pequest, which tpostE the ERB to the Activate QCB."
As a result, the TeAM Dispatcher dispatches the Activate-l/C Generator
subtask (IFDOKA, IEDOKB, IEDQKC, IEDQKD, cr lEDQKF).
The Activate-I/O Generator suttask builds the initial centrol CCW
sequence.
This subtask then issues an E~CP to accept a message and
relinquishes central to lOS.
After TOS has accepted the EXCP request,
the subsequent 1/0
interrupt with device endinq stat~s causes the TeAM Line End Appendaqe
t 0
q a in con t r 01 •
If th ere is a me s sa q ere a d y .to b e pro c e sse d , L in €
Bnd Appendaqe tposts the cuffers to the STABTMH QCE for message
handlinq.
If there is no messaqe available, line End Appendaqe tposts
the LCB to Euffer Disposition wbere the tuffers are returned to the
buffer unit peol and the line is freed (the LCE tposted to itself and
placed on the ready queue).

Method of Operation

75

Foldout Chart 9 illustrates the qeneral flow cf centrol durinq a
receive operaticn. Foldout Chart 16 shows how a receive scheduler
operates in a ccm~lete receive operation.
The spe~ific functions of each of the receive schedulers are
described in the Proaram Orqanization sectirn of this publication.

A Send Operatien
~here

is a send scheduler STCP assembled in every Destination QCB in
(If the Destination OCB is for an a~~lication proqram, the Get
scheduler STep assembled for it is the equivalent of sendinq to an
application prcqram.)
The purpose of a send scheduler is to attempt
to find a line for sendinq whei a rnessaqe is tposted to a Destination
OCB and to initiate sendinq of the messaqes on the ~CE. !he line is
initialized for sendinq when the send scheduler is dispatched as a
subtask of the LCE.
~CAM.

A send scheduler is activated by the Dispatcher when its STCB has
top priority in tte STCB chain of ~Destinaticn QCB or an ICB.
This
send scheduler can t~ either the Send Scheduler or the Buffered
Terminal Scheduler.
The numher of send schedulers that can contend for a line is
determined by the type cf queuinq requested in the TERMINAl macro for
the line. If qtteuinq by line is specified, one send scheduler STCB is
qenerateo for the line.
However, if queuinq by terminal or by
component is specified, there is one send scheduler STCB for each
terminal. The relative ~riority of the send schedulers is established
at assembly time hy the CPRI operand of the line qroup DeB.
A s~nd scheduler, in order to prepare to read a messaqe from a
messaqe queues data set and to direct the message to the ap~ropriate
terminal, tposts the ERE in the LeE to the tisk I/O QCB. The Disk I/O
aCB has the CPE Initialization STCB in its STCP chain.
When the
tposted E~E qets to the top of the ready queue, the TCAM Dispatcher
activates CPB Initialization. This routine starts readinq a messaqe
for the l{ne and qets enouah full buffers to satisfy the ERB request.
CPB Initialization chains the buffers off the EPB and tposts the ERB
to the Activate OCB. As a result, the TCA~ Dispatcher dispatches -the
Acti.ate-I/C Generator sUbtask.
~he
Activate-I/O Generator subtask tuilds the selection ccw
sequence and -a send channel ~roqram that is a~propriate to the
characteristics of the device to receiVE tbe messaqe.
This module
then issues an EXCP to address the terminal and relinquishes control
to lOS.

,

IOS has addressed the terminal and received a r€sponse to
addressinq, the resultinq I/O interrupt activates the TCAM Line End
Appendage.
!he Line End Appendage exarrines
the
response
to
addressinq; and if the response is positiv€,the appendaqe t~osts the
buffers to the STAF~MH OCB for outqoinq message handling and restarts
~fter

76

on the Write Idles loop.
For terminals that do not have a
selection sequence (cannot be addressed by TCAM), the Activate-I/C
Generator suttask tposts the eutqeinq tuffers directly te MH. If
reserve (idle) characters exist for the device, line End Appendaqe
restarts the channel proqram on the write Idles loop; otherwise Buffer
Association (IEDQGDl
issues the EXCP cemmanR. If the response to
addressinq is neqative, the appendaqe tposts a tuffer with an error
indicator to MH in order to route centrel to the outmessaqe subqroup
for user'consideration via optional OUTMSG macros.
Also, if the
neqative response to addressinq is due to a hardware error, Line Fnd
Appendaqe activates the error recovery procedure.
1/0

The qeneral flew of control durinq a send operation is illustrated
in foldout Chart 10. Foldout Chart 17 sho~s how a send scheduler
operates in a complete send. operation.
~he
specific functions of the Send Scheduler and of the Buffered
Terminal Scheduler are discussed in the Preqram Orqanizaticn section
of this publication.

BUFFER MANAGEMENT
The TCAM network has one buffer unit poel that contains buffer units
of one size. These buffer units are the tasic buildinq blocks from
which
.logical
buffe.rl?
are
ccnstructed.
Henceforth, in this
publication .,Yni.t refers to a buffer unit and buffg refers to a
loqical buffer.
Messaqes enterinq a TeAM network are placed in buffers, which are
user-defined areas of main storaqe used for handlinq, queuinq, and
transferrinq messaqe seqments between all lines and queuinq media.
(A
messaqe seqment is that portion of a messaqe contained in one buffer.)
A buffer has two parts, one that ccntains control information (the
12ufi~.I prefi-;) and the other that contains all or part of the 'messaqe.
Buffers must te at least 33 bytes lonq, and may be no lonqer than
65,535 byt es.
The size of a unit is specified in the KEYLEN operand of the INTRO
macrc of an MCP, and the number of units in the tuffer unit po6l is
equal to the sum of the numbers specified bV the LNU~ITS and MSUNITS
operands of INTFO.
For internal manaqement purposes, TCAM adds 12
'bytes as a prefix to the user-specified unit size. These 12 tytes are
called a .Y.ni.:t: £9ll.Illl area. Thus, if a user defines a unit size of 60
bytes (KEYLEN=60), the size of the unit is actually 72 bytes.
The size 6£ a buffer for a line qroup is specified by the BUFSIZE
operand of the DCB macrc for a line qroup data set. All buffers used
by a qiven line group are the same size, tut each line qroup may
utilize buffers that differ in size from those assiqned to other line
qroups.
(The tuffer size can be cverridden on a terminal 'basis for
send operations by usinq the BUFSIZE operan~ of the TERMINAL macro.)

Kethod ot Operation

77

TeAM constructs buffers by linkinq toqetherthe number of units
to create a buffer that contains a number of usable bytes
equal to or qreater than that specified by the BUFSIZE operand of the
DeB macro for a qiven line qroup.
(The 12 bytes added to each unit by
TeAM are not considered in defininq BUFSIZE; the user should consider
only the number of bytes he s~ecified in the KEYLEN operand of INTRO).
for example, if KEYLFN=60 in the TN!RO macre and BUFSIZE=120 in a line
qroun DeB macro are specified,
TCAM links together two units in
buildinq each buffer for that line qroup.
nece~sary

are two types of cuffers - header buffers and text buffers.
contains all or any part of a messaqe header. A te~1
messaqe text only.

~here

n~E~~x~~ff~X
buft~~ contains

A

A b~lfe~ ~refixis a control area contained within each buffer of
the system. The user must allow room fer the buffer prefix in
defininq his tuffers. TeAM fills the cuffer prefix area with buffer
control informatien.
~here are two kinds of buffer prefix.
The iirst bufl~~ prefix is
30 bytes lonq and is centained within the first buffer of a message.
Any .§.YR.§.§£.,gen.t 1:utfer-Nefi~ is 23 bytes leng and is centained within
all buffers after the first.

Thus, there are two kinds of control areas associated with
buffers: the twelve-byte unit central area associated with each
J:2~ff~X .,g~i1 and assianed automatically by TeAM, and the 30-byte or 23byte bUTfer ~refix assiqned to each ~~ii~~ by TeAM in an area allowed
for by the us~r. Each unit must te biq enouqh to centain a header
prefix plus three bytes of messaqe text (33 bytes) and may be no
larqer than 255 bytes.
A subseauent buffer contains more bytes of
actual messaqe than the first buffer, since a subsequent buffer prefix
is 7 cytes shorter than the first tuffer prefix.
The twelve-byte unit control area that TCAM assigns to each unit
is used to manaqe multi-unit buffers.
This centrol area has different
functions dependent on the status ef its tuffer
it may contain
pointers, be used as an FeE, or be used to qenerate a channel proqram.
The initial fermat of this 12-byte area is defined in Figure 23.

Offset

o.

4
QCB

Key

address

~iqure

78

23.

8
Address of the first
unit of the next
logical buffer that
is qssigned

Address of the next
unit of this buffer

Unit control Area

fiqure 24 shows how two buffers assiqned to a line
an initial request if the user specifies the followinq:

grou~

look on

KEYLEN=EO

TNTFO
DCE

PUFSIZE=100,BU~IN=2

Buffer 1

....

... ......

12 Bytes
Unit Control Area

11

Next
Buffer

11

30-byte Prefix

\~

~
Unit Control Area

I It

.. -....

.... .......

40 Bytes

~.

Message Header and/or Text

Unit Control Area

... .......

12 Bytes

20 Bytes

..

--.

Unused

0

.... ..

23 Bytes

...

37 Bytes

......

Message Header and/o~ Text

23-byte Prefix
Next
Unit

\-

Fiqure 24.

Message Header and/or Text

12 Bytes

I 'I
0

..

--.

30 Bytes

....

Next
Unit

Buffer 2

--

.. ..

30 Bytes

Buffer

...... .......

12 Bytes
Unit Control Area

I I

Unit~

.. -

40 Bytes
Message Header and/or Text

20 Bytes

..

Unused

0

Chained to

~orm

Loqical Puffers.

In ~iqure 24, each buffer consists of t~o units linked toqether by
the ~ointer in the third word of the twelve-byte
unit centrol area.
The two buffers are linked toqether by the second word of the twelvebyte unit contrel area.
Note that in this situation the
first eight
hytes of the unit control area of the first unit in each buffer is
functioninq as an FCP.
When the user's proqram requests and attains buffers,
they look
like the ones in Fiqure 24.
However, when a line is ready to read or
write, the functicn of the twelve-byte centrol. area changes.
TCAM
then uses the area to contain the channel ~roqram that operates on the
unit.
The Buffer Association routine places a CCW in each ReB field,
and the pointer in the third word becomes a TIC to the next unit.
The
lO-bvte prefix contains a count of the number of units in a
loqical
buffer~ this indicates where one ruffer sto~s and another starts.

Method of Operation

79

To tpost a buffer, TCAM places only the first unit of" that buffer
on the ready queue.
All other units can ~e located throuqh the chain
created in the TIC field of the unit control area.
Buffer Requestinq and Allocatinq
TeAM uses an element request block (ERB) to make requests for buffers
for a line grou~.
A description of the physical characteristics of an
~~B is included under control Areas in
the" Introduction section of
this publication.
Initial requests for buffers for a line are made when a scheduler
tposts its FRE, which contains the number cf" buffers requested, to the
Buffer Request aCE for a receive operation, or to the Disk I/O QCB for
a send operaticn.
Subsequent requests for buffers are handled by the TCAM ProqramControlled Interruption (PCI) Appendaqe.
ihen the PCI o~erand of the
DCB for a line qroup is
coded
to
allow
program-controlled
interruption.
a PCI may occur durinq the fillinq or emFtyinq of the
first and each subsequent buffer assiqned to that line group.
When
the PCI is received. the PCT Appendage qains ccntrol.
When PCT=A is coded on the rCB macro and the first interruption
occurs, PCI Appendaae assiqns to the line grou~ a number of buffers
equal to the difference between the maximum number assigned to the
line group (specified by the BUFMAX operand of the DCE) and the number
initially assiqned to the line qrcup (specified by the BUFIN operand
of the line qrcup DCB for a receivinq operation and by the EUFOUT
operand for a sendinq operation).
On subsequent PCls, the appendage
deallocates the buffer immediately precedinqthe one being filled or
emptied and requests a new buffer in order to keep the number of
buffers assianed to the line group equal tc that specified by EUFMAX.
(For a sendinq cperation, the buffer units are returned via the Buffer
Peturn QCE to the ruffer unit pool - the element chain of the Buffer
~equest
OCE:
for a rece1v1nq operation, the buffer is sent to the
messaqe handler for the line qroup for that DCB.)
When PCT=F is coded, the appendaqe deallocates the previous buffer
when the second and subsequent PCIs occur, but makes no requests for
additional buffers.Jf ~roqram-controlled interruptions are not
permitted (PCI=Nl or additional allocation is not allowed (PCI=R), the
number of buffers assiqned must be sufficient to handle the entire
transmission.
since
no
new
buffers are allocated until the
transmission is ccmplete. If PC!=N,
there is no deallccation of
buffers until the transmission is complete.
•

Initial Request -

~eceive

Operation

When a line qrcup in the TCAM system n~eds a buffer or buffers for a
receive operation, a recei"ve scheduler must tpost an FRB that contains
the number of tuffers request~d to the Euffer Request QCE.
Foldout
Chart 11 shows the complete flow of control for an initial buff~r
request in a receive operation.
80

Fiqure 2~ shows the result ef an ERB with a count of three beinq
tposted to the Buffer Request QCB. The ERB chain of the LeE· -points to
the first buffer. This fiqure demonstrates the chanqe in linkaqe
after units have been transferred from the buffer unit peel to form a
buffer chain off the requestinq EPB. The physical lccation of the
units in main storaqe does not chanqe - the various pointers are
chanqed to reflect the new orqanization.
Fiqure 26 shows the contents
Association has been executed.

of

the

tuffers

after

Buffer

If the initial request for buffers cannct be satisfied, the ERB is
chained by priority into the element chain of the Buffer Return QCB.
~his ERB has a hiqh priority: therefor~, as soon as
the buffers are
available, the initial request is satisfied and the line can start
receivina messaqes.

Buffer Request QCB
Key

Buffer Unit Pool

if' Element Chain
Link

t

STCB Chain

ERB

if'

Key
Priority

QCB
Link

t

Status

03

Chain

03

--- ---

--

\

\

\
\

"-

"-

"-

"
I------ Etc.

LEGEND
-..-.

Linkage before ERB is serviced

- - --.

Linkage after ERB is serviced

~iqure

2S.

~ffec~

of an ERE on Buffer unit Linkaqe

Metiod of Operation

81

Unit Control Area

60-byte Unit

~--------~~------~'r~------------------------~-------------~~--------------~
8 Bytes
Read CCW

.. , . 4-1N1i11----- 30 Bytes
I Bytes

I
I

TIC

-----_e+.--------- 30 Bytes ------------...

30-byte Prefix

Data to be

R~ceived

I

Buffer
1

-t~t------

Read CCW

40 Bytes - - - - - - - - - -......- - - - - 20 Bytes -----~

Data to be Received

TIC

Unused

Unit Control Area
60-byte Unit
~-------~~------~\rr-------------------',-'------------------------~
8 Bytes

.. ~ 4 ---'......1 - - - - - 23 Bytes - - - - - -.......------------ 37 Bytes -------I~
I Bytes

I
I
I

TIC

23-byte Prefix

Data to be Received

Buffer

2

.~

Read CCW

1----------- 40 Bytes - - - - - - - - - - -......- - - - - 20 Bytes - - - - - ' . . - !

I

4 .........
Bytes

I

TIC

Data to be Received

I

I

'P'
_ lqure

82

26.

Buffers Prepared to Receive Data

Unused

•

Initial

R~quest

- Send Operation

When a line qreu~ in the TCAM system need~ a buffer or buffers for a
send "operation, tbe Sena Scheduler must t~ost an EBE for the number of
buffers
requested
initially
to
the Disk I/O QCB.
~he
CPE
Initialization STCB resides in the STCB chain of the Disk I/O QCB.
When the tposted EBE qets to the top of the ready queue, the CPB
Tnitialization routine qains control.
~or a send operation, when the CPB Initialization routine acquires
enouqh buffers to fill the FPB request, the buffers are already full
Rnd allocated to a line. However, they have to qo throuqh messaqe
handlinq (MH) before I/O can occur.
CPB Initialization tposts the
~FB,
with its full tuffers, to the Activate QCB.
This activates the
Activate subtask (IEDOKA),
which builds initial contact CCws and
issues EXCP.
At this peint, allocation ef the buffers is c6mplete.
Upcn completion of the addressinq seauence, line End Appendaqe tposts
the buffers te MF for outqoinq precessinq.
~olRout
Chart 12 shows the flow ef centrol for initial buffer
request and allecation durinq a send operation.

•

Subsequent Pequests - Receive Cperatien

As discussed earlier in this section,
all subsequent requests for
buffers are handled
when PCls occur.
When a PCI for a receive
operation occurs, an EBB for additienal buffers is tposted to the
Ruffer Request OCE and the buffers are assiqned.
•

Subsequent Bequests - Send Operation

When a

pcr for a send operatien occurs, a"n ERE is t

~osted

to the

Disk

I/O QCB and the buffers are allocated.
~unctions

of Euffer Association

~he

Euffer Association routine in the Euffer Manaqement module builds
the CCWs in the units of buffers.
To do this, the routine builds a
CCW in the first buffer to be read or written, fills the subsequent
buffers with CCWs, and places an invalid TIC in the last unit.
As
other buffers are assiqned, the invalid TIC is chanqed to TIC to a new
buffer and the
invalid TIC is placed in the last unit of the new
buffer.
If a channel proqram check occurs en the invalid TIC,
the
channel proqram check portion of line End Appendaqe causes the channel
to execute the Write Idles/Read Skip leop.
When a tuffer becomes
available, Buffer Association links the buffer into this loop, as well
as into the buffer chain.
(See ~iqure 26.)
Buffer Association is called at different times during receive and
send

operation~:

Method of Operation

83

•

Receive operation - Buffer Request calls Buffer Association to
handle all initial buffers iust prior to going to Activate to
build the initi~l contact channel program,
When subsequent
buffers are obtained,
the Euffer Return subtask calls Buffer
Association as soon as a buffer is available~

•

Send operation - as soon as MH has processed each buffer. it calls
Buffer Association.

Buffer Association
completed.

exits

to

the

TCAM

tispatcher

with

the

CCws

Deallocatinq Buffers
Buffers are deallocated, released from use
different ways for receive and send o~eraticns.

by

a

line group, in

Receive Operation: When a pcr or the Line End Appendage takes a
buffer from a channel proqram and sends it to MH, the buffer is
~eallocated frcm the channel proqram, but it is not free.
The buffer
is completely deallocated only after it has been queued.
Send Operation:
When a buffer has been sent out to a line qroup, it
is deallocated ty virtue of being tposted to the Buffer Return QCB.
Functions of Buffer Return
When a buffer is tposted to the Buffer Return QCB, the action taken
depends on whether there is an FRB waiting for that buffer.
Foldout'
Chart 13 shows the conditions under which the Buffer Retutn routine
qains control and the functions tbat the routine performs,
M.ESS~GE

HANDLING ROUTINES

Tn TCAM, a messaqe is a sequence of characters entered at or sent to
a terminal,
and terminated by an ending character (EOT, ETB, ETX, or
~OB).
A messaqe may consist of two porticns, a header portion and a
text portion, each of which may occupy more than one buffer.
A
messaqe may have a header only, text cnly, cr both,
The ~iscussion of Buffer Manaqement earlier in this section
describes header buffers, text buffers, a 30-byte buffer prefix, and
a 23-byte buffer prefix.
It is necessary tc understand these terms
before approachinq the subiect of message handling.
Before messaqe characters are placed in the first buffer, TeAM
reserves the number of reserve characters specified by the user for
the line qroup.
TeAM reserves space for these characters at byt~ 30
in the first tuffer and at byte 23 in each subsequent buffer.
These
reserve characters save room in the buffer for later insertion of the
date, time, and sequence number for the messaqe.
As messages enter
the CPU and are placed in buffers, characters start fillinqeach
buffer iust after the reserved space.
84

~s soon as a tuffer is filled with the first seqment of a messaqe,
appendaqe in control t~csts that buffer to the QCB for the messaqe
handler (~H) desiqnated for the particular line qroup that the messaqe
is for or from.
(The appendaqe is able tc desiqnate the proper MH by
pxaminino DCPMH in the ~CE of the line qroup.)
~he tpcstinq of the
Duffer chains it onto the aisabled ready queue.
When the TCAM
Dispatcher oains control r the disabled ready queue is merqed by FIFOprioritv or~er onto the enabled ready queue r and the buffer waits its
turn to he dispatcbed to its MB.
th~

A mpssaqe handler is a set of messaqe handlinq routines desiqned
to process messaqes for a particular line qroup or for several line
'qrouns with similar characteristics.
Bach MH is identified by a
ST~RTMH
macro and may consist of an incominq qroup and an outqoinq
oroun r which are desiqned to handle incominq and cutqoinq messaqes
respectively.
The functions of these qroups and their subqroups are
Aiscussed in the followinq sections. woldout Chart 14 illustrates the
proqress of a buffer throuqh an MH.

~unctions

of the User Interface Routine

At assemhly time many of the user-coded MR macros qenerate one or more
fixe~-lenqth
~arameter
lists r some executable coder
and
branch
instructions to the User Interface routine (IEDOUI).
At execution
time the User Interface routine uses the parameter list frcm a macro
to
qain access to the specific functional routine needed for
processinq.
After it has finished executinqr the functional routine
branches to the' Return Interface routine (IEDQLM), which, in turn,
roturns to the next sequential instruction in the MH portion of the
~CP.
~he
next instruction miqht be a branch back to the User
Tnterface routine with a new parameter list to be processed.
This
process of branchinq to functional routines thrcuqh the User Interface
routine continues until the functions of all the user-ceded macros for
the specific MH have been executed.
~unctions

of

S~AF~MH

~
S~A~T~~
macro
~irst instructicn
STAP~MH OCB of an

identifies the beqinninq of an MH and must be the
codea in every MR. When a buffer is tpcsted to the
MP and no ~lock checkinq is s~ecifi€d, the functions
of the STA~T~H suttask are performe~.
When a tUffer is t~osted to the
S~AF~MH
OCP and block checkinq is specified, the EOB/ETB Handlinq
suhtask is activated.
The FOB/ETF Handlinq subtask checks for the
occurrence of haidware errors durinq messaqe transmission and can
han~le user-detected
loqical errors.
After ~OE/ETE Handlinq has
proc~ssed
the tuffer (or if it has no processinq tc perform) r it uses
thp. hypass functicn of the Dispatcher to activate the STABTMH subtask.
~hp block labeled S~AB1M~
in foldout
specific functicns of the STAPTMH subtask.

Chart

14

summarizes

Method of Operation

the

85

.Note:
For a ncn-TSO TCAM system, the STAFTMH subtask is IEDOAA; when
TSO is in the system, the IEDAYR version of the subtask is used.
Functions of the Incominq Group of a

M~ssaqe

Handler

The incominq qrcu~ of an MH handles messaqes arrivinq from a
station
with which the MH is associated.
When a tuffer containinq a messaqe
seqment is passed to the inccminq qroup cf an MH,
user-specified
functions
such as source checkinq, insertion of the time the messaqe
was received, input sequence-number checkinq,
etc., are performed.
The MH scans and processes buffer header fields in accordance with the
order indicated by the relative positicns of the individual MH macro
instructions.
The incominq qroup has three possible types of subqroups:

•

The inheader
seqments,

subqroup,

which

handles

only

•

The inbuffer
seqments, and

subqroup,

which

handles

all

•

~he inmessaqe subqroup, which is executed after a
has entered the cpu.

incoming
incoming
~omplete

header
message
messaqe

"Punctions of an Inheader Subgr.QJll:
The first macro coded in an
inheader subqroup is the INHDR macro.
The first function of INHDF
macro-qenerated code is to determine whether the buffer to be
processed is a header buffer or a recalled buffer,
If it is not a
header buffer er if it is a recalled buffer, control is transferred to
the next delimiter macro expansion.
If the buffer to be processed is a
header buffer and a PATH
operand was coded for the INHDR macro, the locate Option Field Address
routine
is qiven centrol to find the address of the cptien field.
Upon return to the macro-qenerated code, a t~st determines whether an
option field address was found.
If it was not, control ~asses to the
next delimiter macro expansion.
If there is an option field address,
but there are no matchinq path switches, control is also transferred
to the next delimiter macro expansion.
Otherwise, control falls
throuqh to the next sequential MH instruction.
After the INHDR macro-qenerated code is executed, the expansions
of the other user-coded macres precess the buffer.
There are two
levels of processinq
used at this time:
functional routines and
functional subroutines.
A functional routine is associated with a specific MH macro.
When
the macro is coded,
the assembler qenerates either the necessary
parameter list(s)
and a branch instruction to the User Interface
routine or a branch to the associated routine, if one is needed.
At
execution time, the User Interface routine branches to the functional
routine, as described previeusly.
The functional routine uses the
assembly-qenerated parameter list to qain access to the control areas
and data needed fer processinq the buffer.
The functional routine
86

returns

to

seau~ntial

~H

the ?eturn Interface routine, and from there to the next
instruction.

~
functional
Tnte~face
routine

subroutine qains control from
either the User
or directly fr0m a functional routine.
The same
functional
subroutine can be used by any number of functional
routines.
~
functional subroutine returns to the functional routine
that. called it.
Some ~CAM MH routines function as
subroutines.

both

functional

routines

and

unc.:tig!l§ __ Qf__all_J.nJ2uffeL_Subgro.Y.2:
The first
macro coded in an
inbuffer subaroup is the INBUF macro.
The first
functions of INBUF
macro-qenera+ed code
are to perform the same multiple-buffer-header
ana nA~H operand tests that are
~erform~d
by INHDR macro-qenerated
coa~.
~he results of the tests are the same as described above.
"P

nrocessinq cf the buffer continues throuqh this inbuffer subqroup
accordina to the M~ macros specified by the user.
Functional routines
and subroutines actually perform the processinq, as described in the
~unctions of an Inheader Subqroup secticn.
~~D~.:tlQn§~Qf_an_l~~~E~£ge

S~~~QQ~:

inm~ssaqe

executed

onter€~

suhqroup are
the ~CAM system.

The macro instructions coded in an
only after a complete messaqe has

~he

first rracro coded in an inmessaqe subqroup is the INMSG macro.
macro-qenerateo cooe tests for the PATH operand and executes
accorcinqlv, as describeo in the ~unctions of an Inheader Subqroup
s'?ction.

~np

~N~SG

~hen
an
inmessaqe subqroup
maintains
so~tinq matc~esl, control is passed, via the

control {the path switch
User Interface routine,
to tho Tncominq/Outqoinq Messaae rielimit~r routine.
If the buffer is
t~o last buffEr of a messaqe, it is t~osted to the Buffer
Disposition
ncp: if it is not the last buffer, it is tposted to the appropriate
nostination OCE.
~hen the last buffer
of a
messaqe is tposted
to the Buffer
Disposition OCE, the TCAM Dispatcher activates the Buffer Disposition
su~task to supervise execution of the macro~
in the subqroup.
The
m~ss~qe
handlinq functions of the
Buffer Disposition subtask are
illustrated on folaout Chart 14.

Functions of the outqoinq Group of a MeSSaqE Handler
~he

outqoinq qrcu~ of an MH handles messaqes as they are prepared for
to the destination with which the MH is associated.
As the
is brouqht in frcm its queue (e.q., in a messaqe queues data
set), it is placed in buffers, as for an inccminq mEssaqe.

s~nRinq
mess~q~

When
a
tuffer that contains a messaqe seqment is passed to the
outaoina qrou~ of an MR, that qrou~ processes the buffer accordinq
to
the functions s~ecifiea by the user-coded ME macros.

Method of operation

87

The outgoinq qroup has three possible types of subgroups:

,

•

The outheader
segments,

subgroup

•

The outbuffer
segments, and

subgroup,

which

handles

•

The outmessaqe subqroup,
messaqe has been sent.

which

is

which

handles

only
all

executed

cutgoing
outgoing
after

a

header
message
complete

Functions of an Outhe'ader Subgrou..p:
The first macro coded in an
outheader subqroup is the OUTHDR macro.
The functions of the OUTHDR
macro-generated code are the same as for the INHDR macro-generated
code.
Functions of anOutbuffer Subgrou~:
The
outbuffer subgroup is the OUTBUF macro.
macro-qenerated code are the same as for
code.

first macro coded in an
The functions of the OUTBUF
the INBUF macro-qenerated

Functions of an Outmessage Subgroy"p% The MH macros in an outmessage
subqroup are executed after an entire message has been sent.
The first macro coded in an outmessage subgroup is the OUTMSG
macro.
The OUTMSG macro~generated code tests for the PATH operand and
executes accordinqly,
as described in t~e Functions of an Inheader
Subqroup section.
When an outmessaqe subqroup maintains control
(the path switch
settinq matches), the macro expansion passes control, via the User
Inierface routine, to either the Incoming/Outgoing Message Delimiter
routine or the Line Control Insertion routine.
If the MSGFORM macro
is specified in the outqoinq subgroup,
the Line Centrel Insertion
routine qains control to add the necessary line control characters to
the meisaqe.
This routine then exits to the Incoming/Outgoing Message
Delimiter routine.
The Incominq /Outgoing Message Delimiter routine conditionally
tposts the buffer to an ap~licaticn program, exits to the Transparent
CCW Building routine, or exits to the Buffer Association routine.
The Incoming/Outgoing Messaqe Delimiter routine examines the
destination key
(PRFDEST)
of the buffer prefix and links to the
Termname Table Code (IEDQTNT) to obtain the address of the Terminal
Table entry for the destinaticn.
If the status field indicates a
process entry, the routine qets the address of the Read-ahead QCB from
the terminal entry and tposts the buffer to that QCE,
If the destination is not a BSC device in transparent mode,
the
Incoming/Outqoinq
Message
Delimiter
,rcutine
exits
to Buffer
Association, which builds WRITE CCWs and TICs in the control area of
the buffer units.
Otherwise,
the exit is to the Transparent CCW
Buildinq routine for the same purpose.

88

OU~UE

MANAGFMENT

~he incominq
~uff~r
that

qroup of an MH performs user-specified functions in a
ccntains a messaqe seqment.
After these functions are
completeo, the seqment is tposted to its Destinaticn QCB.
A
nestination OCP can represent a line, a terminal, or an application
1:) roa ram.

Each Destination OCB in a TCAM MCP is assiqned to one or more
messaq€ queues data sets. When a tuffer is tposted to its
Destination aCB, it is placed on the apprc~riate messaqe queue in the
associated messaqe queues data set to wait its turn to be sent to the
snecifieo ~estination.
sp~cific

1he messaqe queues data set to which the messaqe seqment is to be
directed may be in main storaqe or on a direct-access storaqe device.
~ach. messaae queue within a qiven data set contains seqments that
are
to be transmitted on a certain line or to a certain terminal, or that
are to be processed in a specific applicaticn proqram.
~C~~

supports five types of queuinq to a messaqe queues data

•

~onreusable

•

~eusable

•

Main storaqe queuinq

•

~ain

•

set:

disk queuina

disk queuinq

storaqe Queuinq with nonreusable disk backup
storaqe queuinq with reusable disk backup

The followinq sections discuss the functicns
aueU1.nq.
~onreusable

of

these

types

of

Disk oueuiriq

nUAuinq a messaqe on a direct-access storaqe device is referred to in
t~is puhlication as disk queuinq.
The term address refers to the
first ~isk relative record number that can be used to queue a unit of
a messaqe seqment. All values of address previous to the current
value are either used or preassiqned for use. The fields AVTNADDR and
~V~~Annq
in the AVT contain the address value for nonreusable and
reusable disk relative recor~ numbers. respectively. The testination
~ssianment
routine uses the correct yalue for the type of queuinq
snecified for a line. In this discussion, ad~res~ refers tc either
fiel1.
Tn nonreusable aisk qu€uinq, the Destination Scheduler initiates
a closedown when a user-specified percentaqe of the disk messaqe
qU~U~s
aata set has been filled with messaqes.
If, before the
close~own can te completed, th~re are already
more messages in the
system than the data set has room to accommodate, TCAM issues an
AE EN r..

Metbod of Operation

89

~he Destination Scheduler assiqns disk relative
addresses across
the volumes of a mUlti-volume disk messaqe queues data set in such a
way that the next relative record address after the last record on a
track is on a different volume. The routine numbers all the records
for 1 qiven track consecutively before assiqninq address values on a
track of a ~ifferent volume~ In addition, the routine numbers all the
trac~s
of a cylin~er before assiqninq address values on a different
cvlinoer.
?iqure 27 illustrates the disk record numbering scheme for
a data set that has fcur records per track cn three volumes.

Volume 1

""
" ,,.
"

/
/

/

,-

Volume 3

Volume 2

/

""

/

/
/
/

/

""

/

"".,/ /

/

" ",

Cylinder

Track

0

0

0

1

2

3

4

5

6

7

8

9

10

11

1

12

13

14

15

16

17

18

19

20

21

22

23

2

24

25

26

27

28

29

30

31

32

33

34

35

3

36

37

38

39

40

41

42

43

44

45

46

47

4

48

49

50

51

52

53

54

55

56

57

58

59

5

60

61

62

63

64

65

66

67

68

69

70

71

6

72

73

74

75

76

77

78

79

80

81

82

83

7

84

85

86

87

88

89

90

91

92

93

94

95

8

96

97

98

99

100

101

102

103

104

105

106

107

9

108

109

110

111

112

113

114

115

116

117

118

119

0

120

121

122

123

124

125

126

127

128

129

130

131

1

132 •••

1

"iourFl 27.

90

Relative Record Number

Relative Record Number

Relative Record Number

Assiqnment of Disk Messaqe Oueues Data set Relative Record
Numbers Across Three Volumes

~t
MCP assembly or restart time, each testination QCE ·is assiqned
unique address value for the first buffer seqment t~osted to it.
As
a result, wh~n the first messaqe ent~rs the TCAM system, the AVT value
of address is one qreater than the total number of Destination QCBs.

~

~he
Destination Scheduler stores the address value to be used for
the first unit of the first buffer of the next messaqe received in the
OCBn~HD~ field of the Destination OCB - this is
referred to as the
n~~~~~~~~~~~
location.
~he routine stcres the address value for the
first unit of the next huffer of the current messaqe in the
SCBNTXT
~iel~ of the SC~ - tris is referred to as the ne~~-buffer location.
~he
principle of
assiqninq next-messaqe and next-buffer address
values allows queuinq ahead on the disk.
Records for buffer units are
assione0 before the huffer is received.
~ol~out Chart 15
presents a
summary of the
aueuinq procedure of the Destination Scheduler.

nonreusable

disk

the exam~le in Fiqure 28, there are five possible destinations.
each of these, thp MCP assembly has ~reassiqned reccrd addresses
(marked A throuqh E) with relative record addresses zero to four.
The
apnlicable externals for this exam~le are:
~n

~or

IN~FC

KEYLFN=100

DCB

BUFSIZE=300,DC~=(A,A)

tINFC DCR

EUFSIZB=800,PCI=(A,A)

LT~E~

~hree

messaqes arrive in the followinq crder:

1•

S00 characters

2~

~000

3•

10 characters

-

characters

-

from line A to Line D

-

from Line C to line F

from Line A to Line E

~iqure 28 shows the situation in which TCAM reads
a
buffer
(the
first
buffer
cf the first messaqe) from line A.
The 30-byte prefix
contains the information that this messaqe is to be sent to line
D.
~he
messaqe seqment ccnsists of three units (since BUFSIZE=300 and
KEYL~N=100)and does not contain an
end-of-messaae
(EOM)
indicator.
~he Dest~nation Scheduler assiqns the first unit of this header buffer
to the
preassiqned location for destination D,
record
3.
The
sch~1uler then ~reassiqns the next-messaqe location for destination
D
to
the next available disk location at record 5, and places a pointer
to rpcorn 5 in the prefix of the buffer that will start in disk record
3.
The scheduler then
a~siqns
two aaditicnal 'units to the next
available cisk locations at records 6 ana 7.
The scheduler inserts a
pointer to the first of these records in the ~refix of the buffer that
will start in disk record 3.

Method of Operation

91

the 3CO-bvte buff~r does not contain an ECM indicator, the
Scheduler preassiqns a record number (8) for the first
~nit of the next tuffer to arrive for
this message.
The scheduler
nlac0s a pointer to record 8 in the prefix of the buffer that will
start in disk record 3. The records are actuallY written after the
thre~
oointers are included in the prefix of record 3. Fiqure 28
~hows th~ records and pointers after they are written on disk.
~in~e

~~s+'lna~ion'

Tn

this

queuinq scheme the additicnal records
are
always
the first unit of a subsequent buffer of a messaqe is
to the last unit of the previous buffer,

~ontlqUOUS,
ana
alwavs con~iquous

Tn

29 the ~irst buffer of the 3000-bvte messaqe from line
line B is aueued. The tuffer consists of eiqht units since
P"~S~Z~ for line C is 800 bytes.
The ryestination Scheduler places the
First unit of the rnessaoe in the ~reassiqn€a slot for destination line
p..
~he sche1uler th~n preassiqns a location for the first unit of the
~Axt messaqe for line F to record 9, the next available disk location.
mh~ sch~duler ~laces the additional records (units)
for the current
~~SSnqe
seament in disk locations 10 thrcuqh 16. Since this buffer
does ~ot contain an FOM indicator, the scheduler preassiqns the next~u~f~r locaticn tc record 17.

C

~iqure

for

Tn

30, the second tu~fer of the messaqe for line D is
This is a three-unit buffer with an EOM character in the last
unit. ~he Destination Scheduler places the first unit in line D's
no~t-bu~fer
slot at record 8 and ~laces the two additional records in
+~e
~~xt
available disk locations, records
18
and
19.
No
nr~~ssiq~ment
for the next-buffer locaticn is made because of the EOM
char~ct~r in this buffer.
The scheduler preassiqned the next-message
slot for line D to record 5 when the first buffer of this messaqe was
en! 0 U ~ (j ( see
i q u r € 28).
~ioure

auou~0.

't,'I

Tn riqure 31, the 30-bvte messaqe from line A to line E is queued.
this messaqe is contained within a sinqle unit, only that unit
h~s ~o h~ written on disk.
The Destinaticn Scheduler places this unit
in th~ oreassiQned next-messaqe location for destination B, record 9.
~o nQxt-huff~r lecation needs to be
preassiqned, but the scheduler
chan~es
the next-messaqe location for line B to disk record 20. The
n~x+ available disk location is now record 21.
sinc~

do not illustrate all the disk record
poi~t~rs.
qcwev€r, Fiqure 32 shews the ~cinters mentioned above, as
well as the pointers from each subsequent tuffer of a message to the
~irst
huffer
of the messaqe.
These ,~cinters are the base for the
q'y~]~=~~~~ .f.DEill to be c iscussed next.
~iaur~s

92

28 throuoh 31

Unit
Control
Area

30-Byte
Prefix

Relative Record

Unit
Control
Area

Data

Unit
Control
Area

Data

3

Data

7

6

VOLUME 1
Relative' Record

0-3

A

B

C

D

)11

12 - 15

PRFNHDR

24 - 27

(

VOLUME 2
Relative Record

4-7

D

E

~

/

Preassigned
Next
Message

D

28 - 31

~

Relative Record

8 - 11

~

V

-'

Message 1

8vff.. , /

Unit 2

16 -19

VOLUME 3

Message 1
Buffer 1
Unit 1

~/

/V
D

Message 1
Buffer 1
Unit 3

/

/
D

Preassigned
Next
Message

20 - 23

32 - 35

'-"iqure

2~.

Disk Cueuinq a Three-Unit Buffer
Method of Operation

93

Unit
Control
Area

30-Byte
Prefix

Unit
Control
Area

Unit
Control

Data

Unit
Control
Area

Data

Unit
Control

Data

Unit
Control
Area

Unit
Control
Area

Data

VOLUME 1
Relative Record

0-3

A

B

,,,-

I

I
12 - 15

B

Message 1
Buffer J
. Unit 4

II

B

Message 1
Buffer 1
Unit 1

\~,age
Buffer J
Unit 5

\

24 - 27

VOLUME 2
Relative Record

4-7

E

16 - 19

B

~
Message J
Buffer 1
Unit 8

I

C

Message J
Buffer J
Unit 6

B

Message 1
Buffer J
Unit 7

D

Message J
Buffer J
Unit 2

D

Message J
Buffer J
Unit 3

Message 1
Buffer J
Unit 2

B

Message J
Buffer J
Unit 3

\

Next
Message

\B

Message 1
Buffer 1
Unit 1

B

P,oo" ;goed\

D

D

Preassigned
Next
Buffer

\

28 - 31

J
VOLUME 3

J

Relative Record

8 - 11

D

Preassigned
Next
Buffer

B

Preassigned
Next
Messsage

B

20 - 23

32 - 35

Disk Oueuinq an Fiqht-Unit Buffer
94

Data

Data

Line A - second buffer

Unit
Control
Area

23-Byte
Prefix

Data

Relative Record

8

Unit
Control

Unit
Control
Area

Data

Data

18

19

VOLUME 1
Relative Record

0-3

A

12 - 15

B

Message 1
Buffer 1
Unit 4

B

Message 1
Buffer 1
Unit 1

C

B

Message 1
Buffer 1
Unit 5

B

VOLUME 2
Rei ative Record

4-7

E

16 -19

B

/

V

'i ~"

Message 1
Buffer 1
Unit 7

~,ro;~

",',., 1
Unit 6

~
D

Preassigned
Next
Message

D

Message 1
Buffer 1
Unit 2

D

Message 1
Buffer 1
Unit 3

B

Preassigned
Next
Message

D

Message 1
Buffer 2
Unit 2

D

Message 1
Buffer 2
Unit 3

Message 1
Buffer 1
Unit 2

B

Message 1
Buffer 1
Unit 3

!",,~ag. 1
Buffer 1
Unit 8

I

28 - 31

)
.-./

/

VOLUME 3

8 - 11

Message 1
Buffer 1
Unit 1

~

24 - 27

Relative Record

D

1

D

Message 1
Buffer 2
Unit 1

B

Preassigned
Next
Message

B

20 - 23

32 - 35

Piau!'e 10.

nisk Oueuinq the Second Buffer of a M€ssaqe
Method of

~peration

95

E
·Data 0
M

Unit
Confrol
Area

Relative Record

Unit
Control
Area

Unit
Control
Area

Empty

Empty

9

VOLUME 1
Relative Record
A

0-3

B

B

Message 1
Buffer 1
Unit 4

/.1
~

VOLUME 2
Relative Record
E

Preassigned
Next
Buffer

Message 1
Buffer 1
Unit 6

B

Message· 1
Buffer 1
Unit 7

0

Message 1
Buffer 1
Unit 2

0

Message 1
Buffer 1
Unit 3

\D

Message 1
Buffer 2
Unit 2

0

Message 1
Buffer 2
Unit 3

Message 1
Buffer 1
Unit 2

B

Message 1
Buffer 1
Unit 3

Message 1
Buffer 1
Unit 5

B

\

24 - 27

4-7

Me~sage 1
Buffer 1
Unit 1

C

l \

I

12 - 15

0

Message 1
Buffer 1
Unit 1

\

";.n.~

p'..
Next
Message

0

~

B

16 - 19

Message 1
Buffer 1
Unit 8

!\

Preassigned
Next
Buffer

B

\

28 - 31

J
VOLUME 3

1

Relative Record

8 - 11

0

20 - 23

B

Message 1
Buffer 2
Unit 1

B

..V

Message 2
Buffer 1
Unit 1

Preassigned
Next
Message

32 - 35

't:'i(jur~

96

11.

~isk

Cueuinq a One-Unit

~essaqe

B

Queue-Back Destination

Data

Queue-Back Source
Additional Records for Buffer 2
Additional Records for Buffer 1
Data

Data

Additional Records for Buffer 3

Next Message

LEGEND

BUFFSIZE =300
KEYLEN = 100

~iqure

32.

Disk Cueninq Pointers

Oueuc.-back Chain:
A aueue-back chain is a time-sequential record of
the senoinq and receivinq messaqe traffic for
the terminal or
terminals of a specific Destinaticn OCB.
TCAM maintains this chain
for the messaqe retrieval function of application ~roqrams.
A messaqe
that has alreaay been sent can re retrieved by source (input) or by
a estination (output) sequence number.
~hen the first buffer of a messaqe is t~osted to
its Destination
nCB,
the Destination Scheduler
moves the current queue-back chain
pointer (OCBOEACK) from the Destination CCB to the PRFHQECK field in
t~e
bu~fer
prefix ano then stores the disk relative record number
(adnress) assiqnment of the first unit of the buffer in the queue-back
chain fieln. of that Destination OCE (QCBOEACK).
The presence of an
address for the first ~uffer of a messaqe in the queue-back chain of
the ~estination OCB indicates that the messaqe is to be queued for the
t~rminal or termin~ls of the Destination QCE.

Qhen the last buffer of a messaqe is tpcsted to its Destination
the Destination Scheauler uses the scurce destination offset in
the huf~er prefix (PRFSPCE) to qain access to the asscciated terminal
entrv.
~he
lccation of the Destination OCB for thesendinq (source)
tprminal is in this terminal entry.
The scheduler then ~laces the
current Destination OCE aueue-tack chain ~ointer (QCBQBACK) in the
text queue-back field in the buffer prefi~ (PRFTQECKl and places the
dis~
relative record number (aadress) of the first unit of the last
~C~,

Method of operation

97

buffer in the queue~back chain of the Destination QCB
(QCEQBACK)
for
the source terminal. ~he presence cf an address for the last buffer
o~ a rnessaqe in the queue~back chain of the Destination QCB
indicates
that the messaqe was sent from the terminal or terminals re~resented
~v that Destinaticn OCB.
An examination of the queue-back chain of a specific Destination
aCB indicates exactly which messages were sent from or received by the
r~lated
terminal or terminals. If the address value in the chain is
fo~ the first tuffer of a messaqe, the messaqe was
received by this
terminal: if the address value is for the last buffer of a message,
the messaqe was sent by this terminal. since the prefix ef a first
buffer points to its subsequent buffer seqment (PFFNTXTl and the
nrefix of a sutseQuent huffer seqment. peints to its first buffer
(PR~CHnpl,
the entire messaqe is available from the queue-back chain
pointers.
Note that. if a messa Qe is only ODe
location qoes in both queue-back chains.
~iqure

neBs.

~he

~essaqe
~essaqe
~essaqe

buffer

lonq,

its

address

33 illustrates the queue-back chains' for two Destination
follcwinq messaqe sequence applies to this exam~le:
1 - sent from station A to station B
2 - sent from station E to station A
1 - sent from station A to station B

ryuplicate-Beader Messaqes: When a messaqe is identical to a message
sent previously
(as in multiple routinq), it is called a duplicate_.. _______ .~.h~.£..Q~.r .IDes.§.,g..9~. This cendi tion is indicated by a flaq in
~it
U of the status fiel~ (PBFSTAT11 of the 30-byte buffer prefix.
~he ~estination Scheduler handles a duplicate-header message 1ust like
~ny other messaqe except that no additional record
locations and no
n~xt-huffer
lccation are assiqned.
~he
first unit of the first
seqment of a duplicate-header messaqe contains the same pcinters that
are in the first unit of the first seqment ef the oriqinal messaqe.
~CA~ modules use these pointers to obtain
any additional units and
huffers in the rnessaqe.
~E~n Oupuinq:
FEFO (first-ended-first-out)
messaqes from the messaq€ queues data
aueuinq allows ~CAM to send the messaqes
~irst, rather. than t~e messaqes that beqin

queuinq is used in sending
sets to destinations. This
that end
(EOT received)
transmission first.

~ince
the seqments of a messaqe cannot be kept in main storage
until thp rnessaqe completes, they must be queued (placed on the disk)
~s
thev are received.
~his results in a FIFO (first-in-first-out)
messaqe queue.

98

Destination QCB
for Station A

Destination QCB
for Station B

QCBQBACK

Message 3 - Subsequent Bfr

/'

/

Indi cates a message sent'from Station A

-

/

{

Indicates a message sent to 'Station B

\

\
\

Indi cates a message sent from Station B

"

3D-Byte Prefix

'*I

,

PRFHQBCK IMessage 2 - First Buffer

Indi cates a message. sent to Station A

(

I
I

\

23-Byte Prefix

~

IMessage 1 - Subsequent Bfr

I

Message 1 - First Buffer

Indicates a message sent from Station A

Indicates a message sent to Station B

LEGEND:

---"Queue-bock chain for Station A

----+ Queue-bock chain for Station B
pioure

~~.

~xample

of

~wo

Queue-Back ChainE

~o create a chain of messaqes in FEFO order, the messaqe with
the
previous Eom r€ceived for a Destination OCE must chain to the messaqe
with the current FOT, reqardless of which messaqe ~eqan transmission
~irst.
This chaininq pointer cannot be written until after the
curr~nt BOT is received.
When the current EOT is received, one
~essaqe
is ccmpletely on disk and the other is on disk except for the
last seqment.
A temporary chain of first-buffer prefixes is all that
is required: therefore, the FEFO pointer can be written in the data
fiel~
(at DA~FEFO) of the record that ccntains the first-buffer (30bvte)
nrefix cf the messaqe already on disk at the same time the EOT
seqment of the current IDessaqe is written.

~hen the first-ended messaqe is to be sent and its
first seqment
is read from disk, the FEPO pointer is read from the data field of the

!ethod of Operation

99

rpcord and placed in the F~FO field of the seB.
When
is o~ssed t~ the outqoinq ~H, the STABTMH subtask
fiel~. in the Destination QCB.
The "messaqe serviced"
written in the disk data field alonq with the FEFO
~nm is successfully sent.

the first buffer
updates the FEPO
flaq (X'40'}
is
pointer when the

Destination OCB contains two FEPO ~ointers: the disk record
of the first FEPO messaqe to send to the destination
(OC~~~F~O)
ana the disk record a1dress of the last messaqe completely
rec81ver1 (OCBIFFFO).
~he

a~dross

34 illustrates FEPO queuinq for five messaqes routed to the
Messaaes 1, 3, and 4 require two buffers, and
~ess~qes 2 and 5
reauire one buffer.
The first buffers of the
~pssaa8S
arrive in the crder in which the messaqes are numbered.
The
messaqes complete transmission in the fcllowinq order: 2, 4, 3, 1, 5.
~iqure

same

~estinaticn.

this example, assume that the first tuffers of messaqes 1~ 2,
ana 4 are already written on disk, messaQe 2 is complete, and the
first buffer of messaqe 5 is currently beinq transmitted.
The FEPO
aueuinq activity ~roceeas as follows:
~n

1,

•

is written out on the line.
No FEFO pointers were
written when messaqe 2 completed because it was the first messaqe
~or the 0estination.

~pssaqe?

~psscqe
OCB~~~FO

nn

~isk

4 completes beinq received.
Messaqe 2 is still sendinq.
anc OCELFEFO are u~aated to ~cir.t tc disk address 8 and
pointers are written for FEFO queuinq.

~essaqe 3 co~pletes beinq received.
A FFFO pointer to messaqe 3
is written in the disk data field of the first unit of the first
huffer of messaqe 4.
The Destinaticn QCB field QCBIFEFO is
up~a~ea to point to disk address 7.

•

'1essa qe 2 completes beinq sen t.
Messaqe 4 is to be slen tout.
th~
first buffer of messaqe 4 is sent to MH, its disk data
~ield is Us€~ to update the OCBFFBFO field of the Destination
QCE
to point to disk record 7.

~hpn

1 completes reina received.
A FEPO pointer to messaqe 1
written in the disk data field cf tte first buffer of messaqe
,~
~he Destination OCR field QCBLFEFO if updated to point to disk
~Gdress 1, ~he location of the first buffer of message 1.
~ASsaqe

is

S completes reinq received.
A FEFO pointer to
messaqe 5
writtep. in the disk data field of the first buffer of the last
~essaae received, messaqp 1.
!he QCBLFEFO field is updated to
~isk
address 10, the location of the first unit of the first
tu~fer of messaqe 5.
~essaqp

is

•

100

'~ssaqe 4 completes teina sent.
Message 3 is the next messaqe to
he sent.
When the first buffer of messaqe 3 is sent to MH, its
rlisk data field is used to update QCBFFEFO to point to messaqe 1
in ~isk lccation 1, the next messaqe tc be sent.

3 cowpletes beinq sent.
Messaqe 1 is the next message to
sent.
When the first buffer of messaqe 1 is sent to MH, its
~isk data field is use0 to update QCBFF!FO to peint to
messaqe' 5
in ~isk location 10, the next messaqe to be sent.

~essaqe

be

•

1 is completed and messaqe 5 is sent
pointer is cleared.

~essaqe

out~

The

QCBFFEFO

~ote
that the ~EFO chain is, in many cases, incomplete.
In the
examnle there is no FEFO pointer from messaqe 2 to messaqe 4.
If
mess~qes
for a destination are always com~letelv received after the
previous messaqe has been sent out, no PEFC chain is built.

qold Oueues: When the FOLD macro is issued in the outqeinq section of
an ,.,,~, a special 11.9ld .9.!1~ue is built for multidrop terminals on a line
that is queued by line.
When queuinq multidrop terminals by line,· the messages for the
different terminals are intermixed on the destination queue. The Send
Scheduler USES the FEPO chain to read one "first buffer of a message"
after another. When a messaqe for a held terminal is reached, it is
placed in the hele Queue chain.
~
nointer to the first held messaqe is placed in the QCBTNTFF
field of the Destination OCB.
When the next held message is
encountered, its address is placed in the data field of the first unit
of the first buffer of the previous held message.
This pointer
overlays the FBFO pointer an~ is used when the messages are being
released.
~his
queuinq continues until a RELEASE command occurs.
The
messaoes are then sent in FE~O order by fcllowinq the chain that was
huilt for the hold oueue.
The hold queue is merqed into the FEPO
chain by makinq the first held messaqe fer the QCE the first FEFO
messaqe ana ty makinq ~he last held messaqe ~oint to the messaqe that
was th~ first FEFC messaqe.

Queuinq by terminal must be specified for dial lines, and messaqes
are not intermixed en a messaqe queue. In this case, only cne message
is in the hold queue, because the Send Scheduler determines that the
terminal is held and does not request any mere messaqes.
Peusable Disk Cueuinq
~eusable ais~ qu€uinq uses a wrapped messaqe queues data set, on which
sprviced rnessaQes are overlaic by new messaqes enterinq the svstem.
~he
Destination Scheduler activates the Feusarilitv-Copy subtask
to 1(eep t.he data set "cleaned up" to avoid losinq messaqes that have
not be~n serviced. Messaqe units are queued until 3/8 of the data set
is ~ull.
At this point, the Reusability-Copy subtask examines the
npxt-messaqe field in each Destination QCB for this data set. If any
next-messaqe field has a location value that falls within the scope of
+hp first quarter of the data set, the surtask writes a dummy cancel
mpssaqe record at the specified ne~t-messaQe address and u~dates the

Method of Operation

101

Message 1 - First Buffer

Disk Relative Record Address

Message Data

5

Message Data

7

Message Data

8

Message Data

Message Data

LEGEND
- --...

Next First-Buffer FIFO Chain

----.

FEFO Chain

't;Iiqur~

102

14.

nisk Cueuinq -

FI~O

and FEPO pointErs

10

npxt-messaqe field in the OCB to the current address value at AVTRADDR
in the AVT. This keeps new messaqes infairlv close proximity on the
o,ata set.
~he ?eusabilitv-Copv
subtask p~rforms 'the next-messaqe update
process each quarter of the way throuqh the data set from this point
on. For example, after 5/8 of the data set has been assigned to
units, the ~eusabilitv-Copv subtask compares the address values in the
second
quarter to the next-messaqe location specified in each
nestination OCB for this data set.

Peusabilitv-coPV suttask sends to the specified alternate
any unserviced messaqes located in the quarter that
Drecedes the part of the data set that is qettinq dummy cancel record
m~ssaqes.
~be
subtask does this tv readinq the old message from its
current location and enqueuinq the messaqe
to
its
alternate
1estination, thus causinq the rressaqe tc be written in the curr~nt
zone of the data set.
~he

~estination

If a duplicate-header messaqe is more than a quarter of the data
away from the first unit cf the first seqment of the oriqinal
~essaqe, the Peusabilitv-copv subtask copies the entire messaqe.
spt

~he ~eusabilitv-copv subtask
v?lu~
reaches a zone boundary

qains control each time the address
(the middle of a quarter) of the data
set. Thp only exception is that the first time throuqh the data set,
it is not activated until the aidress value is 3/8 of the way throuqh
the data set.
~iqure

t~at

35 illustrates the part of the disk messaqe queues data set

is issued cancel messaqes and the part in which messaqes are sent

to alternate destinations wben the address value is at a specific zone

boun oarv.
Message Queues DataSet

Message Queues Data Set

o

~d Me>INTVL

~

CO'NT~Ot

PFIMARY
INTVAl
PASSWRD
150

.E"§.§].Q.ng
S
B

M
N
K
K
V
L
P
I
W

lStl~..Qrd

]!! 1ie.lg
AVTBIT3
AVTNOLBF
AVTTOTNC
AVTCKRS'I
AVTKEYLE
. AVTKBYLE
AVTCKELV
AVTCTLCH
AVTDOUEX
AVTIN'rl V
AVTPASWD

Fiell! Length
3 rits
2 J:ytes
4 J:ytes
1 byte
2 tytes
2 bytes
2 bytes
8 chars
8 chars
2 bytes
8 chars

CKR'EQS

R

CPB
CPRCDS
CBOSSFF
COMWRTE
TRAC'E
'DTRACE
CJB
MSMIN
MSMAX
DLO
OLTEST
rrOPMSG

D

1 byte
2 l::ytes
1 tyte
4 bytes
1 bit
4 tytes
4 bytes
1 byte
4 bytes
4 tytes
8 bytes
1 byte
1 l:it

AVTNCKPR
AVTCPENO
AVTCPRCD
AVTCRSRF
AVTCWFL1
AV1'RACE
AVTDTSTR
AVTCIB
AVTCMIN
AVTCMAX
AVTDLQX
AVTOLTST
AVTEIT2

E
F

G
T
A
C
y

X
Q
0
H

Other keywords cannot be modified.
Once the operator has entered the reauired keywords and the "U"
WTOR Interpreter returns to the link routine with a X'OO'
return code in reQister 15.
re~ponse,

External Routines:
•

as WTO routine (SVC 35) - to write a messaqe to the operator.

•

os wait routine (SVC 1) - to wait for an operatcr respcnse.

Tables/Work Areas:
Attributes:
prcqram mode.

INTRa

G'E~MAIN

Module Name:
noint:
(IEDQOA) •

~ntrv

AVT, CVT, TCE.

~ransient,

nonreusable, nonrefreshable, enabled,

Foutine (Chart

problem

OID

IEDCOG
IEDOOG - called throuqh a lINK SVC by the Link routine

This routine uses the OS GETMAIN macro to obtain main
storaqe for and initialize line buffers, a main storaqe messaqe queues
data set (if requested), channel ~roqraro blecks, and any trace tables
or cross ref~rence tables requested by the user.

~unctions:

If the INTFC GE~MAIN routine is al::le tc satisfy all the required
GBTM\IN requests, it returns to the Link routine with the successful
return code X'OO' in reqister 15. The value X'08' in register 15
indicates that sufficient main storaqe was not available to satisfy·a
G~TMAIN request.
External Routine:
space.

os Getmain routine (SVC

4, -

to obtain main storage

Proqram Orqanization

151

Tables/~ork

Areas:

Attributes:

~ermname

AVT.

Transient, reusable, refreshable, problem

proqram

mode.

Table Sort Foutine (Chart OM)

Module Name:

rEDOOM

Entry Point:
(IEDQOA).

IEDOOM - called throuqh a lINK SVC by the Link routine

Functions:
This module ~orts the Termname Table entries
into
alphabetical sequence.
After the sort is finished, this routine
recalculates the Termname Table offsets for any distribution lists,
cascade lists, and invitation lists that refer to specific entries in
the Termname Table. ~his routine also recalculates the offsets for
alternate destinations.
The Termname ~able Sort routine initializes the Termname Table
fields that are necessary for the Binary Search routine~
It also
checks for the ~resence of a primary operator control terminal.
If a
~ead-letter queue is specified, this routine calculates
its Termname
Table offset and places the offset at AVTDLQX in the AVT. If,
however, the dead-letter queue is specified to a TSO terminal, this
module proceeds as thouqh nc dead-letter queue was specified.
Tf

this routine is successfully executed, it returns to the Link
with a X'CO' return code in reqister 15.
The three error
conditions that can occur are indicated by the followinq return codes
in reqister 15:

routin~

•

X'12' - main
request.

storaqe

is

not

available

to

satisfy

a

•

X' 1 F'
terminal definition err cr.
Error mes~a qe "IEDQOO?I
terminal name ILLEGAL DESTINATION" is sent to the system console
for each Terminal Tarle entry that contains an error.

•

X'20' - primary operatcr contrel terminal definition error.

~ETMAIN

External Foutines:

•

as Getmain routine (SVC 4) - to obtain main storaqe.

•

as WTO routine (SVC
operator.

Tables/Work Areas:
Attributes:

152

35)

AVT, Termname

Transient,

to

send

~able,

a

messaqe

to

the

system

Terninal Table.

reusable, refreshable, problem proqram mode.

Attach Routine

(Chart OS)

Module Name:

IEDCOS

Entry Point:
(IEDQOA) .

IEDCOS - called throuqh a LINK SVC by the

link

routine

Functions:
This routine attaches the Operatcr Control task, the OnLine Test module (if requested), and the FE Common Write routine
(if
requested)
as tasks in the same partition cr region as the MCP.
This
routine determines the need for attachinq Cn-Line ~est and FE Common
Write by testinq switches in the AVT.
The Attach routine also loads modules that depend on operands on
"the INTRO macrc.
If the system delay interval in AVTIN~LV is
equal
to zero,
the Attach routine loads the System Delay subtask (IEDQHI),
and places its address in the AVT. If PRIMARY is not specified as
SYSCON, the Attach routine loads the Operatcr Awareness Messaqe Router
(IEDONX) and places its address in the AV~'.
Upon

com~letion,

the Attach routine returns to the link routine.

External Routines:

•

as Attach routine (SVC 42) - to attach the requested tasks.

•

as Extract routine (SVC 40) - to build a communications

~arameter

list.

•

as Load routine (SVC 8) - to load TCAM modules.

Tables/Work Areas:
~ttributes:

AVT.

Transient, reusable, refreshable, problem

Disk Message Queues Open Routines (Charts LE, LC t
Module Names:

prcqram

mode.

LD)

IGGC1930 w IGG01931, IGG01934

Entry Points:
•

IGG01930 - entered by an XC~L from an I/O support mcdule or
another access methcd open executor when an OPEN DCE for a message
queues data set
is issued in an MCP.
IGG01930 can also be
reentered ty a loop from itself if there are multiple DCBs to
open.
(Cnart LBl

•

IGG01931 - entered ~y an XCTL from IGG01930 after IGG01930 is
completed.
IGG01931 can also be reentered by a loop from itself
if there are multiple DCBs to open.
(Chart LC)

Proqram Orqanization

153

•

IGG01934 - entered by an XCTL from IGG01931 after IGG01931
is
completed.
IGG01934 can also be reentered by a loop from itself
if there are multiple DeBs to open.
(Chart LD)

Functi~ns:

The functions of each routine

are

defined

accordinq

to

en'trv point.
•

IGG01930

~his routine qets main storaqe for and initializes a
Data Extent
Block
(DEB)
in subpool 254 for a messaqe queues DCB.
IGG01930
analyzes the the device type informaticn prcvided in the Unit Control
Block
(UCB)
to determine the type of direct access dEvices used for
the messaqe queues.

If IGG01930 finds an error condition, it sets error indicators in
the AVT and issues an XCTL to the O~en Error Handler routine
(IGG01933) •
When no errcrs are fcund,TGG01930 placEs the address of the next
entry in the tCE parameter list in register 7 and" the address of the
next entry in the system Where-to-Gc Table in reqister 8.
The routine
updates the Disk Messaqe Queue Open entry in thE Where-to-Go Table to
point to Load II -- IGG01931.
IGGC1930 then issues an XC~l ccmmand to
the module identified bv the next ncnzero entry in the Where-to-Go
Table, specifically IGG01931.
•

IGG01931

This routine completes the initialization of the DEB extents and
calculates various values required by EXCP Driver.
IGG01931 also
builds and initializes all I/O Blocks
(lOBs), one per BEE e){tent,
required for disk operation.
If IGG01931 finds an error condition, it sets error indicators in
the IVT and issues an XCTL to the CpEn Error Handler routine
(IGG01933) •
When no error is found, IQG01931 places the address of the next
entry in the DCE ~arameter list in reqister 7 and the address of the
next entry in system Where-to-Go Table in reqister 8. It updates the
Disk Messaqe Oueues Open entry in the Wnere-to-Go Table to identify
Load III
IGG01934.
IGGC1931 issues an XCTL command to the mddule
identified bv the next nonzero entry in the Where-to-Go Table
IGG01934.
•

IGG01934

This routine performs all the disabled initialization functions
that are required by TCAM.
This includes leadinq the TCAM Bispatcher,
EXCP Driver. ~isk End Appendaqe, and the Reusability-Copy subtask, if
it is requested.
Tn order to load a module, IGG01934 activates lOS,
which checks the OS Contents tirectory to determine whether that

154

module has already been loaded. If there is an entry for the module
in the directory, lOS adds one to the directory usaqe count. ,If there
is not an entry for the module in the directory,' lOS makes a two-byte
entry in the directory, adds one to the usaqe count,
and loads the
module.
]ot~:
~XCP

IGG01934 loads the Disk End A~pendaqe for a single CPB and
Driver fer a Sinqle CPB when CPB=1 is specified by the user.
Otherwise,
IGG01934 loads tbe reqular version of each of these
modules.

IGG01934 places the address of the next entry in the DCE parameter
list in reqister 7 and the address of the next entry in the system
Where-to-Go Tatle in reqister 8.
IGG01934 issues an XCTL to the
module identified by the next nonzero entry in the Where-to-Go Table,
either TGG01941, IGG01935, or system open.
External Routines:

•

as

•

OS Load rcutine (SVC 8) - to load TCAM modules.

Getmain routi~e (SVC 4) nEBs and IOEs.

to obtain main storage space for

the

~ables/Work

Areas: Sys~em Where-tc-Go Table, DCB parameter list, Open
work area, AVT, D~B, lOB, UCB.
Attributes:

Transient, enabled, reentrant.

Checkpoint Open Reutine (Chart MAl
Module Name:

IGG01941

Bntrv Point: IGG01941 - activated ty an XCTL from IGG01934
OP.EN checkpoint data set DCE is specified in an MCP.
~unctions:

when

the

MCP~

To

varies

as

address

in

1bis module opens a checkpeint data set in the
accomplisb this, it performs the followinq activities:

•

Determines the size of the GETMAIN work area (the size
a result cf tbe INTPO o'f:erands "CKREOS" and "CPRCDS"),

•

Issues a GE1MAIN macro for the work area and puts tbe
the AVT field AVTCKGET,

•

ryetermines the beqinninq of tbe CKREC·T!R table,

•

Initializes tbe lOB and the disk channel program in tbe checkpoint
work area,

Proqram Orqanization

155

•

Determines the type of start-up required ~cold,
warm,
or
continuation)
by investiqatinq the dis~osition field ceded on the
OPEN macro, the start ~arameters
(on INTRa), and the "normal
closedown"
bit in the checkpoint data set contrel record.
Dependinq en these results, transfers centrol (XCTL) to either the
Checkpoint Disk Allocation module or the Checkpoint/Restart from
Environment Record module. The following conditicns d~termine the
~ype
of start-up required and therefcre indicate the routine to
qain control:

1.

DISP=NEW
XCTL to the

2.

to the Checkpoint Disk Allocation routine

DISP=OLD, S=C, abnormal closedcwn
~CTL

4.

to the Checkpoint/Restart modules and scan the messaqe queues

DISP=OLD, S=CY, normal closedown
XCTL to the

5.

Disk Allccation routine

DISP=OLD, S=C, normal clcsedown
XC~L

j.

Check~oint

Check~oint

Disk Allocation routine

DISP=OLD, S=CY, abnormal closedown
XCTL to the Checkpoint Disk Allccation routine

E.

DISP=OLD, S=W, normal closedown
XCTL to the Checkpeint/Restart modules and do not scan the message
queues

7.

DTSP=OLD, S=W, abnormal closedown
XLTL to the

8.

DISP=OLD,

Check~oint/Pestart

S=~Y,

ICTL to the
queues
156

modules and scan the messaqe queues

DISP=OLD, S=WY, normal closedown
XCTL to the
queues

9.

Check~eint/Pestart

modules and do not scan the message

abnormal closedown

Check~oint/Restart

modules and do not scan the message

If, durinq execution, the Checkpoint Cpen routine determineE that
there is insufficient main storaqe for the checkpoint work area or if
a disk I/O error occurs while readinq the control record of the
checkpoint data set, the routine sends an error messaqe to the system
console, sets AVTCKGET equal to zero, and passes control to the next
module in the system Where-to-GoTable.
External Routines:
•

OS Getmain routine (SVC 4) area.

to obtain main

•

as WTO routine (SVC
operator.

to

•

as Load routine (SVC 8) - to load a

•

as EXCP routine (SVC 0) - to read a record from

35)

send

a

DCB,

to

for
the

a

work
system

module.
disk~
Check~eint

DEB,

Reentrant.

Checkpoint Disk Allocation Routine
Module Name:

messaqe

check~oint

Tables/Work Areas:
CVT,
AVT, Checkpoint
checkpoint work area, I/O work area, JFCB.
~ttributes:

storage

(Chart MM)

IGG01949

Entry Point:
IGG01949 - called by the Checkpoint Open routine when
initialization of the check~oint data is required.
Functions: This reodule determines the size of the varicus records for
the checkpoint data set.
The Checkpoint Disk Allocation routine first
scans the TCAM tables to determine the size of an environment
checkpoint record and the number of disk re~ords necessary te contain
it.
The routine then finds the maximum number of priority level QCBs
to be used for anyone application proqram Destination QCE, and uses
this number plus the lenqth of the lonqestoption area for any
terminal entry to calculate the lenqth of a CKREQ record.
The length
of an incident record is equal to the lenqth of the lonqest option
area or the lenqth of the operator control data area, whichever is
qreater.
The Checkpoint Disk Allocation routine then calculates the number
of each of the types of checkpoint records that will fill one track of
the checkpoint data set.
The routine uses the device type index (from
the UCB) and the CS 1/0 Device Characteristics Table (address from the
CVTl fields to calculate th~ numter ef records per track.
The Checkpoint Disk Allocation routine ~laces the numter of tracks
in the cheCKpoint data set,
the size of each disk record, and the
number of records per track in the checkpcint work area.
This routine
also places the count and lenqth of the various records in the
checkpoint disk data set centrol record.
Proqram Orqanization

157

The Check~oint Disk Allocation routine exits by issui~q an XCTL to
the next nonzero entry in the system Where-to-Go Table - IGG01942.
External Routines:

None.

Tables/Work Areas:
CV!,
AVT,
checkpoint work area, cption Table,
Termname Table, Terminal Table, QCE, DEE, reB, invitation list, OS 1/0
Device Characteristics Table.
Attributes:
mode.

Reentrant, transient,

Routin~

Checkpoint Disk Initialization
Module Name:

refreshable,

(Chart

enabled,

supervisor

Mm

TGGC1942

Entrv ~oint:
IGG01942
called bv the Checkpoint Disk Allocation
routine to initialize the
checkpoint
data
set
or
by
the
Checkpoint/Restart from Envircnment Record routine to perform an error
exit.
Functions:
The Cbeck~oint Disk Initialization routine initializes the
disk checKpoint data set into ~pecific areas for a centrol record,
environment check~oint records, CKFEQ records, and incident records.
This routine formats the checkpoint data set with dummy records.
The C~RCDS o~erarid of the INTRO
macrc Epecifies the number. of
environment checkpoint records to be written in the disk checkpoint
data set.
The CKFEOS operand of INTRO indicates the numbe~ of CKREQ
records to re written in the data set.
There is one control record.
The remainder of the space that is allocated to the checkpoint data
set on the disk is used for incident checkpcint records~
If,
durinq execution, the Check~oint risk Initialization routine
recoqnizes an error condition, it issues an error messaqe via WTO,
sets AVTCKGET equal to zero, and transfers centrel to the next entry
in the system Where-to-Go Table.
The followinq error conditions can
occur:
•

Disk I/O error occurs while writinq.

•

Insufficient disk
records:

stace

for

the

minimum

required

checkpoint

2 environment records,
1 control recerd,
The number cf CKREO records
records, and
1 incident tecord.

158

s~ecified

in the INTRO macro + 3 extra

Check~oint Disk Initialization
Check~oint/Festart from Environment Record

If

the

routine is entered from the
routine, the Initialization
routine issues a WTO me~saqe that indicates 'an 'unrecoverabie disk
error, sets AVTCKGET equal to zero, and transfers control to the next
entry in tbe system Where-to-Go Table.
If no errors cccur, this routine transfers
entry in the system Where-to-Go tatle.

control

to

the

next

Bxternal Routines:
•

IECPCNVT - to convert the relative track address to the actual
~isk
address.
(This is an as routine, found via a pcinter in the
CVT. )

•

os WTO routine (SVC
operator.

•

as

•

as Wait routine (SVC 1) - to allow time for the channel proqram to
complete.

35)

~XCP routine (SVC 0)
checkpoint record.

to

send

a

to

- to start a channel proqram

Tables/Work Areas: CVT, AVT, checkpoint wcrk
Checkpoint DEE, Checkpoint DCB.
Attributes:

messaqe

area,

the
tc

system
write

Checkpoint

a

QCB,

Eeentrant.

Checkpoint/Restart from Environment Record Eoutine' (Chart ME)
Module Name:
~ntry

IGG01943

Point: IGG01943 - activated by the
a system restart is required.

Check~oint

O~en

routine when

~unctions:

When checkpoint restart is specified, this module uses the
environment record seqments in the check~cint data set to reconstruct
the MCP environment.
The Checkpoint/Restart from Environment Record
routine places information from the envircnment checkpoint record in
the MCP tables.

The Restart from Environment Record Routine determines which
environment record to use bV subtractinq the value of the INTRO
operand "RESTART=" from the number of the most current environment
record.
The control record (the first record on the checkpoint data
set) contains the number of the most current envirQnment record.
If
the result of the subtraction is not a ~csitive value, this routine
adds the value of the INTRO operand "CPRCDS"
(the total number of
environment records) to the result.

Proqram orqanization

159

If. this restart rcutine finds that the TTB of the environment
record in the centrel record is equal tc zero, the ~nvironment record
has had a disk error. In this case, this restart routine issues a WTO
error messaqe and recovers by usinq the previous environment record.
If all the T~Ps are equal to zero, the routine sets the X'08' bit in
the first byte of the control record and then transfers control to
IGG01942, which issues a WTO error messaqe.
In this case, no
checkpoints are taken for the duration of the iob.
After successful execution, this module exits to IGG01944. If an
error occurs durinq prccessinq, exit is to the next .module in the
system Where-to-Ge Table.
~xternal

Routines:

•

IFCPCNVT - to convert the relative track address to the actual
disk address.
(This is an OS routine, found via a pointer in the
CVT.)

•

OS EXCP routine (SVC 0) - to read a checkpoint record seqment.

•

OS wait routine (SVC 1) - to allow I/O to complete.

•

as w~o routine (SVC
operator.

35)

to

send

a

messaqe

to

the

system

Tables/Work Areas:
CVT, AVT, checkpoint work area, TCE, Checkpoint
DEB, Checkpoint DCB, Checkpoint QCB, Termname Table, Terminal Table,
invitation list.
Attributes:

Reentrant.

Checkpoint/Pestart
Module Name:

from Incident and CKREC Records Routine (Chart MG)

IGG01944

Bntry Point: IGG01944 - activated by the Checkpoint Open routine
after the Check~oint/Pestart frcm Envircnment Record routine has
successfully executed.
This module reads the incident records for stc~ line or
start line and the CKFEQ records from the checkpoint data set and uses
these records tc update the MCP envircnment.
If STARTUP=WY is
specified as an o~erand of the INTRa macro, TCAM does not use the
incident records
to update the MCP environment; otherwise, this
module performs the followinq functions.
~unctions:

The routine first compares the time in an incident record to the
time in the environment record used for the restart. If the incident
record is more recent, it is used to update the MCP tables.
The key
fiel~
in an incident record indicates the ty~e of information in the
record. Incident checkpoints are taken as a result of a CHECKPT macro
in an MR, a TCHNG macro in an applicaticn proqram, or an operator
control command.
160

Note: This rcutine processes cnlv the incident records for start
Line and sto~ Line operator control commands.
All other commands
are processed after the lines are opened at READY time.
~hen this
routine reccqnizes a start or stop Line command,
it stores the
line status in the QCBLINK field of the Destination CCE for the
line.
The Line O~en rcutine uses this status field.
CKREO records do not contain the time at which they are written.
records are used to synchronize the information in Terminal
Table process entries with an as Checkpoint taken in an application
proqram.
The Checkpoint Restart from Incident and CKREQ Records
routine reads all the CKFEQ records in the data set.
This routine
moves each TTR and Termname Table offset into the CKREQ-TTR table in
the check~oint work area. If the offset value in a CKHEQ record is
not equal to zero, this routine uses the CKFEQ data to update the MCP
tables that pertain to the ~rocess entry.
~hese

The Checkpoint/Restart from Incident and CKHEQ Records routine
exits to the next module in
the system Where-to-Go Table the
Checkpoint continuation Restart module (IGGC1945) if this is a restart
after an abnormal closedown, or the next open executor after a normal
closedown.
Per a normal closed~wn, this routine also sets tit x'01'
in AVTCKELF to indicate the type of restart.
Externa1 Foutines:
•

TECPCNVT - to convert the relative track address to the actual
disk address.
(~his is an os routine, found via a pointer in the
CVT.)

•

lEDQTNT - Termname
address.

•

as EXCP routine (SVC 0)

•

as Wait routine (SVC 1) - to allow l/C to complete.

•

as WTO routine (SVC 35)
operator.

Table

code

to

obtain

terminal

entry

- to read a cbeckpcint record.

to

send

a

Tables/Work Areas:
AVT,
checkpoint work
Table, Termnaroe Table, Cption Table, CVT.
Attributes:

a

messaqe

to

the

system

area, QCE, DeE, Terminal

Reentrant.

Checkpoint continuation Restart Routine (Chart MJl
Module Name:

IGGC1945

Entrv
Point:
IGG01945
entered
tv
an
XCTL
from
the
CheCKpoint/Restart from Incident and CKREQ Records routine (IGG01944)
after an abnormal closedown.

Proqram Orqanization

161

Functions: This module performs any required
messaqe queues data set at restart time.

processing

of

the

By codinq S!ARTUP=WY on the INTRO macro, the user specifies that
after a system failure he wants a warm restart without a scan of the
messaqe queues.
In this case, the ccntinuation Restart routine
locates the last messaqe placed on each FEFO queue in the messaqe
queues data set before the time of the last checkpcint~
This routine
then places zeros in the FEFO chain field of any messages that were
~laced
on the queue after the check~oint
these messages are
subsequently lost.
If SYNC=YES is coded on the TPRCCESS macro, the user has
synchronized queues for application proqrams.
In this situation, the
continuation Restart module scans the FIFO messaqe queues for the
,specified process entry and recreates a FEFO queue, in FIFO order,
that includes all messages on the FEFO queue at any time after the
last checkpoint was taken.
To determine which serviced messages
should be placed on the FEPO queue, this rcutine com~ares the disk
record number of the last seqment of the first message on the FEFO
queue at the time of the last checkpoint with the disk record number
of the last seqment of every complete, uncanceled message en the FIFO
queue. If the record number of the messaqe on the FIFO queue is
qreater than the record number of the messaqe from the FEFO queue,
this routine place's the message that is on the FIFO queue
on the
restart-FEFO queue.
If neither of the above situaticns exists, the continuation
Restart routine scans each FIFO message queue and recreates a restart
FEPO
queue in FIFO order.
This queue contains all complete,
unserviceo, uncanceled messaqes.
The ccntinuation Restart routine
must read and check each segment of a messaqe for logical read errors
in order to determine whether the messaqe is completelY received.
In both as synchronized and regular ccntinuation restart,
this
routine recreates the FEFO-chain, updates the sequence numbers, and
recreates the queue-back chain.
!he sequence number in a messaqe is
only used to update its terminal entry if the number of the message is
qreater than the number already in the entry. If the queue-back
pointer in a message is hiqher than the queue-back pointer in its
Destination OCB~
the Continuaticn Restart routine uses the record
number of the message buffer, not the queue-tack field, to update the
aCE.

The continuation Restart routine exits by issuing an XCTL to the
module indicated by the next nonzero entry in the system Where-to-Go
Table.

162

External Routines:

•

IGG019Q8 - Checkpoint continuation Restart su~routine -to examine
a terminal entry and to activate IGG019RC.

•

as Load routine (SVC 8) - to load IGGC1SQ8.

•

IEDQTNT - Termname Table code - to qet a terminal

entry

address.

Tables/Work Areas:
AVT, checkpoint work area, CPE, disk data area of
the messaqe, tuffer prefix. OCB. Termname Table, Terminal !able.
Attributes:

Reentrant.

Checkpoint Continuation Restart Subroutine (Chart OR)
Module Name:

IGGC19Q8

Entry Points:
•

IGG01908 - loaded by the Check~oint ccntinuation
(IGG01945, to check terminal entries.

•

IGG019Q8+4 - activated by the
routine to execute disk I/O.

Restart

routine

Check~cint

continuation

Restart

•

IGG019Q8+8 - activated by the Check~cint
routine to update sequence numbers.

continuation

Restart

•

IGG019Q8+12 - activated by the Cbeck~cint continuation
routine to update the AVT value of address for queuinq.

Restart

•

IGGO~908+16 - activated by
the Check~cint
routine to initialize reqisters.

Restart

Continuation

Functions:
This module is an extension of the Checkpoint continuation
Festart routine (IGG01945). At the IGG019C8 entry point, this module
examines the terminal entries to determine whether a scan should be
performed on the messaqe queues.
At the IGG019Q8+4 entry point, this
module sets u~ the CPB for disk I/O on the messaqe queues data set and
then activates the EXCP Driver (IGG019RC) to actually perform the I/O
operation.
At the IGG019Q8+8 €ntry point, this module updates the
messaqe sequence number in the terminal entry.
At the IGG019Q8+12
entry point, this module examines and,
if necessary, updates the
AVTRADUR and AVTNADDR queuinq addresses in the AVT.
At
the
TGG019Q8+16 entry point, this module initializes registers with values
for IGG01945.
.
the

The Check~cint continuation Restart s~broutine
Check~oint Continuation Restart routine.

always returns to

Proqram Orqanization

163

External Routines
•

TGG019RC - FXCP Driver - to perform I/O on the disk messaqe'queues
data set.

•

os Wait routine (SVC 11 - to allow time fer completion of the disk
I/O activity.

Tables/Work Areas:
CPE, OCB.
Attributes:

AVT, checkpoint work area,

Terminal

Table,

AVT,

Reentrant, transient.

Line Grou'P Open Routines

(Charts LE, ITO', .lG, IH, LI, LJ, and LK)

Module Names:
IGG01935,
IGG01940, IGG01948.

IGGC1936,

IGG01937,

iGGC1938,

IGG01939,

Entry Points:
•

IGG01935 - entered hy an XCTL from an I/O support module or from
another access method open executor when an OPEN line qroup DCB is
issued in an MCP.
It may also be reentered by a loop from itself
if there are multiple DCEs to open.
(Chart LE)

•

IGG0193E - entered by an XCTL from
IGG01935.
It may also be
leop from itself if there are multiple DCBs to
reentered ty a
open.
(Chart LFl

•

TGG01937 - entered by an XCTL from
IGG01936.
It may also be
loop from itself if there are multiple DCBs to
reentered 1::y a
open.
(Chart LG)

•

IGG01938 - ent.ered by an XCTL from
IGG01937.
It may also be
reentered 1::y a loop from itself if there are multiple DeBs to
open.
(Chart LHl

•

IGG01939 - entered by an XCTL from IGG01938.
It may also be
loop from itself if there are multiple DeBs to
reentered ty a
open.
(Chart LI)

•

IGG01940
entered by an XCTL from IGG01939.
It may also be
loop from itself if there are multiple DCBs to
reentered by a
open.
(Chart LJ)

•

IGG01948 - entered by an XCTL from IGG01940.
It may also be
loop from itself if there are multiple DeBs to
reentered 1::y a
open.
(Chart LK)

-

~unctions:

entry point.
•

164

IGG01935

The functions of each routine

are

defined

accordinq

to

This routine builds and initializes a line DEB. IGG01935 examines
the Task I/O Table (TIOT) to determine the number of lines in this
line qroup.
It then ottains main storaqe for and initializes a line
DEB in subpool 254.
IGG01935 checks each unit control block
(UCB)
to verify that
similar devices are attached te each line and that either a 2701,
2702, or 2703 control unit is beinq used.
This routine also locates
a typical entry in the Device Characteristics Table for each line
qroup, sets an index into the branch table in IGG01936, and clears a
reqister to ccntain the Line Contrel Bleck (LCE) size.
If IGG01935 finds an error conditien, it sets error indicators in
the AVT and issues an XCTL instruction to qive control to the Open
Error Handler reutine
(IGG01933). If the user has specified a TCAM
entry in his exit list, the Open Error Handler routine will return
control to tbe next nonzero entry in the system Where-to-Go Table
after it has precessed all error conditions.
by

IGG01935 exits by issuinq an XCTL command to the module indicated
the next ncnzero entry in the system Where-to-Gc Table - IGG01936.

•

IGG01936

This routine determines the size of the channel prcqraros
devices for the line group beinq c~ened.

for

all

IGG01936 provides the number of channel cemmand words (CCWs) for
a minimum proqram for all devices.
Additional CCWs are provided as
determined by examininq the optional feature bits in the UCE and the
typical entry for each applicable device in the Device Characteristics
Table.
This routine issues a GETMAIN instruction to get an LeE for each
line in the line qroup and then places the Send Scheduler STCE in the
STCB chain of"tbe Destination QCB.
When IGG01936 issues an XCTL to IGG01937 (the next nenzero entry
in the system Where-to-Go Table), it passes in reqister 10 the total
number of CCWs required" for each channel ~reqram for each device in
the line qrou~.
•

IGG01937

This routine builds and initializes all the LCEs for this line DCB
open.
IGG01937 divides the LCB area into individual LCBs for each of the
lines and initializes each LCB.
If the scheduling priority for this
line is send, this routine moves the Send Scheduler STCB into the STCB
chain for the LeE.

Proqram Orqanization

165

TGG01937 Exits bV issuinq an XCTt command to the module indicated
bv the next ncn2ero entry in the system Where-to-Go Table IGG01938.
•

IGG01938

This routine tuilds channel proqrams in the Line
(LCBs) for the lines of the line qroup beinq opened.
IGG01938
opened idle.

alsc

tests

to

determine

wtether

control

Blocks

the lines are to be

bv

TGG01938 exits by issuinq an XCTL command to the module indicated
the next ncnzero entry in the system Where-to~Gc Table - IGG01939.

•

IGG01939

This routine loads some of the modules required for
line
operation. These modules include the TCAM rispatcher, the appropriate
receive schedulers. and the Start-u~ Messaqe routine (if requested).
In order to load a module. IGG01939 activates lOS, which checks the as
Contents Directory to determine whether that module has already been
loaded.
If there is an entry for the module in the directory, lOS
adds one tc the directory usaqe count.
If there is not an entry for
the module in the directory.
lOS makes a two-byte entry in the
directory, adds one to the usaqe count, and loads the module.
If lOS
loads the TCAM Dis~atcher. it also places a ~ointer to the address of
the AVT in the eVT.
bv

IGG01939 exits"bV issuinq an XCTL command tb the module indicated
the next ncrzero entry in the system Where-to-Go Table - IGG01940.

•

IGG01940

This module completes the loadinq of the modules required for line
operation.
These modules include the Send Scheduler, the
PCI
Appendaqe, and the Line End A~pendaqe.
IGGC1940 also loads the device
dependent snecial characters"required for initial I/O operations and
starts I/O on eacb line in the line qroup.
]Qte:
The version of Line End Appendaqe that IGG01940
depends on the user-coded operands cn the INTRa macro:
ENVIRCN=TCA~

ENVIRCN=TSC or MIXEr
LTNETYP=BISC
LINETYP=MINI
LINETYP=BCTH

loads

IGG019Q5
IGG019Q3
IGG019Q2
IGG019Q4
IGG019RO

IGG01940 exits bv issuinq an XCTL command to IGG01948.
•

TGG01948
This

routine places line-specific infcrmation in the
·Cross
Table." The data ~laced in this table includes the UCB name,
the UCB address, the LeB address, and the Destination QCE address for
each line in tbeline qrcu~.

~eference

166

Upon entry, IGG01948 issues a ~IME macrc instruction to qet the
current time of day from the operatinq system. The routine then tests
each line
(each LCB)
to determine wbether it has sriccessfully
completed its initial I/O operations.
If the initial I/O is not
complete, IGGC1948 issues another TIME macrc and determines whether 28
seconds have elapsed.
If 28 seconds have not passed, the routine
continues checkinq for I/O completion until 28 seconds have elapsed or
until the LCB has been marked to indicate I/O completion.
At the end
of 28 seconds if the I/O has still net cempleted, lGG01948 writes a
messaqe on the system console to identify the line that was not
successfully cpened.
When I/O operaticn has completed, the routine
qoes to the next line in the line qroup and continuEs checkinq fo~ I/O
completion.
lGG01948 exits by issuinq an XCTL command to the module identified
by the next nenzero entry in the system Where-to-Go Table.
This
module is the system module IGG0190S.
External Routines:

as

Getmain routine (SVC 4)

as

Load routine (SVC 8)

-

to lead TCAM modules.

as

'EXCP routine (SVC 0)

-

to start l/C en a line.

as

Time routine (SVC 11) - to qet the current time of day.

•
•
•
•
•

as

VITO routine (SVC
operator.

35)

-

to obtain main storaqe.

to

send

a

messaqe

to

the

system

Tables/Work Areas:
Where-to-Go Table, DCB ~aramet€r list, DEB, Device
Characteristics !able,Special Characters Table, Cross Reference
Table, TIOT, ueE, LCB, QCB.
Attributes:

~ransient,

enabled, reentrant.

Open Error Handler (Chart LA)
Module Name:

IGG01933

Entry Point:
IGG01933 - activated. by any of the TCAM
when an error is detected.

open

executors

Functions: This module handles all serious errors detected during the
6peninq of a ~CAM application proqram DCB, a messaqe queues data set
DCB, or a linE qrcup DCB. The Open Error Handler sends an error
messaqe to the system console.
The value of xx in the message,
lEDOOSI TCAM OPEN ERROR xx, depends on the specific parameters passed
to the Open Errcr Handler by the open·executor that detected the error
condi tion.

Proqram Orqanization

167

If the user does not provide a TCAM error e~it, the O~en Error
Handler'causes TCAM to abend with a specific abend code. If the user
does provide an error exit, the Open Error Handler passes control to
the routine at the address specified by the error exit,
The Open
Error Handler passes an errcr code in reqister 0 and an option code in
reqister 1 to the user-specified error routine.
The option code
allows the error routine to decipher which of the available options to
use.
The error routine returns a code in req1s~er 15 to indicate
which of the fcllcwinq actions the Open Frrcr Handler is to. take:
1.
2.
3.

Abend the TCAM ;ob (return code = 2 or qreater)
Iqnore the data set that is in error ( return code = 0)
continue ~rocessinq with limited capabilities (return code

=

1)

If the error routine s~ecifies an opticn that is not available for
the error in Question, the open executor sends the same error message
to the system console aqain.
This loop of sending the message and
qettinq a response from the user-specified error routine continues
until the Open Error Handler receives a valid return code in register
15.

External Routines:

•

as WTO routine (SVC 351 - to send an error messaqe to
operator.

•

as SYNCH routine (SVC 12)
routine.

Tables/Work Areas:
Attrtbutes:

to

qo

to

a

the

user-specified

system
error

System Where-to-Go Tatle, DCB, AV!.

Transient, enabled, reentrant.

start-up Messaqe Routine (Chart R61
Module Name:

IGGC19F6

~ntrv
Point:
IGG019R6 - activated when line End Appendaqe tposts an
LCB that points to the Start-up Messaqe QCE to the ready queue after
receivinq an oF-en I/O interruFt.

Functions:
This module obtains and queues any messaqes that the user
has to send to a terminal for the specified LCE at start-up time.
The Start-up Messaqe routine first locates all the terminal
entries that are associated with the specified LCB.
It then passes
the address of each entry and the address of the option fields for
that entry,
if present, to the routine specified by a user exit.
There are two ~ossible user exit addresses specified as operands of
the ~EADY macro:
one is qiven control if a cold restart is in effect;
the other, if a warm or continuation restart is in effect.

168

If the routine specified by the user exit has a messaqe to send to
a terminal,
the user routine returns t~ tbe Start-u~ Messaqe routine
with the address of the messaqe in reqister 15 and the length of the
messaqe in tbe first byte of the messaqe itself.
A zero in reqister
15 indicates that the user routine has no messaqe to enter.
When there is a messaqe to be sent to a terminal that is mainstoraqe-only queued~ the Start-up Messaqe rcutine removes buffers from
the Buffer Fequest OCB, builds the messaqe, and passes one unit of the
messaqe at a time to the Destination Scheduler (IFDQHM02) to te placed
on the Destination OCE.
In the case of restart witb main-storaqe-only
queuinq,
there are no messaqes cn the message queue; therefore, no
special measures are taken to ensure that start-up messaqes are queued
first.
When there is a messaqe to be sent to a terminal tbat is disk
queued, the Start-u~ Messaqe routine removes cne CPB from the free CPB
pool and, one unit at a time, builds the required number cf buffers in
the CPB work area.
After each unit is obtained, the Start-up Message
routine builds the CPB and branches to the FXCP Driver routine
(IGG019RCl to write the unit on disk.
When FXCP Driver returns to the
start-up Messaqe routine,
Start-up Messaqe waits en the ECB at
AVTOSECB to allow time for I/O to complete before tuilding another
buffer unit.
~he
Start-up Messaqe routine assiqns disk relative record numbers
in the conventional manner.
Eut the routine places the messaqe at the
first of the FEFO queue by moving the QCBFFEFO field into the message
FEFO chain and placinq the record number of this message in QCBFFEFO.

After the Start-up Messaqe routine has ~rocessed all the terminals
associated with the specified LCE, it increments the count of lines
processed
(AVTSMCNT)
and compares the counter with a count of the
total number of lines opened (AVTINCNT1.
If the counts are equal,
Start-uo Messaqe tposts the LCB to itself and returns control to the
TCAM Dispatcher at the DSPDLETF entry point to bave the Start-up
Messaqe routine deleted.
If the counts are not equal, Start-up
Messaqe tposts the LCB to itself and returns control to the TCAM
Dispatcher at the DSPPOST entry point.
Fxternal Routines:
o~erands

•

User routines specified as user exits in
macro.

•

IGG019RC - EXCP Driver routine - to write the units of
on disk.

•

lEDOHM02 Destination Scheduler
appropriate Destination OCE.

•

~EDQTNT

•

as

- !ermname

Tatle

code

to
to

place

obtain

of

the
a

tuffers
a

terminal

READY
message
on

the
entry

address.
Wait routine (SVC 35) - to allow I/O to complete.
Proqram Organization

169

Tables/Work Areas:
AVT, LCE, Termname Tarle, Terminal Table, QCB,
DCB, option Tarle, buffer prefix, CPB, SeE, data area of a message.
Attributes:

Reentrant, resident,

~roblem

proqram mede.

Readv Routine (Chart ND)
Module Name:

IEDCND

Entrv Point:

IEDQND -

activated by the READY macro expansion.

Functions:
If the AVTCKGET field
contains a ncnzero value, which
indicates that a checkpeint DCB has been opened, the Ready routine
reads and precesses all incident check~eint records that are more
recent than the environment record.
If the key field
cf a record
indicates TCHNG or CHFCRPT, this mcdule updates the TRMSTATF and
option fields for the associated terminal entry.
If the key field
indicates operater centrol,
but not start er stop Line, this module
moves the data into the operator control work area at CPCCRELE,
posts
the FCB for C~erator Centrol, and issues a WAIT to allow the data to
be processed.
If this mcdule encounters a disk error, it issues a WTO
error messaqe (IED085I) and iqnores the incident record on which the
error occurred.
After all the incident records are precessed, this module issues
a FRBEMAIN for the I/O buffer and then issues an ATTACH SVC to attach
-the Checkpoint Executor in the same system partition as the MCP.
The
Readv routine saves reqisters in AVTSAVF2 in such a way that the TCAM
Dispatcher will tpost the environment checkpcint request element to
the ready queue.
This routine also loads IEDQNX if the primary
operator control terminal is not the system console and IEDQHI if the
system delay is not zero.
If On Line Test is specifie~ as an o~erand of the INTRa macro, the
Readv routine determines whether there is sufficient main storaqe for
On-Line Test to perform its functions.
If there is not enouqh main
storaqe for the minimum requirements of On-line Test, the MCP abends.
If there is enouqh main storaqe for minimum On-Line Test requirements,
but not enouqh
for the requested amount, the Ready routine issues a
warninq WTO messaqe (IED094I).
If the Checkpoint and Cn-Line Test tasks are not attached,
Readv routine marks complete their respective termination FeBs.

the

The Readv routine also checks all the terminal entries in the
Terminal Table.
If CALL is specified cn a TERMINAL macro,
this
routine puts the OCE on the time delay queue.
Upon completion,
the Ready routine returns centrel tc the READY
macro expansion (the adaress in reqister 14).
External Routines:
•

170

as Attach routine
On-Line Test.

(SVC 421 -

to attach the Checkpoint Executor and

•

as Getmain routine (SVC 4) - to request the amount of main storaqe
that is required by Cn-Line Test.

•

as Freemain routine (SVC 5) - to free the main
acquired by a GFTMAIN macro.

storaqe

•

IEDOTNT - Termname
address.

a

•

as EXCP routine (SVC 0) - to start an 1/0 operation.

•
•
•

as Load routine (SVC 8)

-

to load a

as Post routine (SVC 21

-

to post an FCE.

as ¥lTO routine (SVC
operator.

Tarle

35)

code

to

to

ottain

TCA~

send

a

that

terminal

was
entry

module,

messaqe

to

the

system

•

as Wait routine (SVC 1) - to allow time for an event to. complete.

•

IECPCNVT - as convert routine - to convert the TTR to an
address.

Tables/Work
Areas:
Operator Centrel AVT.
Attributes:

AV!,

Terminal

Table

entry,

Terroname

MBBCCHHR
Table,

Feusable, problem prcqram mode, transient.

SYSTEM CONTROL FOUTINES
TCAM Dispatcher (Chart FE)
Module Name:
Entry Points:

IGG019RE
IGG019RB

The ~CAM Dis~atcher provides seme of the service functions of a
queue manaqer by allowinq routines to branch to entry point labels in
a DS!CT.
This DSEC! is included in an assembly by issuinq the macro
TDISPD.
Entrv point labels not endinq in "R" ·result in loss of control by
the branchinq sul:task.
Those endirq in "R" result in an immediate
return to the tranchinq subtask after the requested function has been
performed.
Branch entry points to the TCAM Dispatcher in the branch
table BE~'T'EL include the followinq:

Proqram Orqanization

171

DSPDtETE

Functions:
Delete the module with entry point IGG019R6 (the
Start-u~ Messaqe routine), and t~cst a chain of RCBs.
Parameter reqister:
1 - the address of the first item in a
chain of items to be tposted, or X'xxOOOOOO'.
The link
field
cf the last item in the
chain
must
contain
X'xxOCOOOO' ..
Exit

DSPCHAIN

~oint:

Function:

DSPDISP
Tpost a chain of RCEs.

Parameter reqister:
1 - the addres~ of the first item in a
chain of items to be tposted, or X'xxOOOOOO'.
The link
field
cf the last item in the
chain
must
contain
X'xxCOOOOO'.
Exit
D SPL IST

~oint:

Function:

DSPDISP
T~ost

a list-cf FCBs.

Parameter reqister: 1 - the address of a list cf .addresses
of FCEs.
The hiqh-order byte ~f the last RCB must contain
X'SO'.
Exit
DSPPOST

~oint:

Function:

DSPDISP
Tpost one RCB.

Parameter reqister:
Exit point:
DSPPOSTB

Function:

DSPDISP
Tpost one FCE.

Parameter reqister:
Exit
DSPWAIT

~cint:

1 - the address of an RCE.

1 - the address of an RCB.

Address in reqister 14.

Function:
Obtain an RCE from the element chain cf
or, if none is there, wait for an FCE to arrive.

a

OCB,

Parameter reqisters:

3
the
obtained.

address

of

the

QCE

from which an RCB is to be

7 - the address of the QCB that contains the
subtask to receive the element.

Exit point:
DSPTSTQ

172

STCP

for

the

DSPDISP

Function:
Determine whether an STCB is twaiting on a
particular QCE, and, if it is not, chain the STCP cnto that
OCB.

Parameter reqisters:
3 - the address of the

~articular

QCB.

7 - the address of the QCB that currently has
the top of its chain.

Exit point:
nSPTSTQR

the

STCB

at

DSPDISP

Function:
Determine whether an STCB is twaitinq on a
particular QCE, and if it is not, chain the STCE cnto that
QCB.
Parameter reqisters:
3 - the address of the particular QCE.

7 - the address of the QCB that currently has

the

STCB

at

the top of its chain.
Exit
DSPUNAV

~cint:

Function:
another.

Address in reqister 14.
Remove an STCE from cne QCE

and

place

it

into

Parameter reqisters:
3 - the address of the QCB that is to receive the STCE.
7
the address of the QCB that currently has the STCB at
the top of its chain.

Exit point:
DSPUNAVR

Function:
another.

DSPDISP
Remove an STCE from one OCE

and

place

it

into

Parameter registers:
3 - the address of the QCB that is to reCEive the STCB.

7
the address of the QCB that currently has the STCB at
the top of its chain.
Exit point:
DSPPBIO

Function:

Address in reqister 14.
Place an item into a chain bV

~riority.

Parameter reqisters:
1 - the address of the item.
7 - the address of the chain to receive the item.
Exit point:

DSPDISP
Proqram Orqanization

173

DSPPRIOR

Function:

Place an item into a chain by priority.

Parameter reqisters:
1 - the address of the item.
7 -

Exit
DSPLI~O

the address of the chain to receive the item.
~eint:

Function:

Address in reqister 14.
Place an item at the teqinninq of a chain.

Parameter reqisters:
1 -

the address of the item.

7 -

the address of the chain to receive the item.

Exit point:
DSPLIFOR

Function:

DSPDISP
Place an item at the

teqinnin~

of a chain.

Parameter reqisters:
1 -

the address of the item.

7 -

the address of the chain to receive the item.

Exit point:
DSPDtSP

Address in reqister 14.

Function:
Activate the hiqhest priority subtask that is
waitinq on the hiqhest priority element that has been sent
to a suttask.
Parameter reqisters:
Ex~t

DSPBYPAS

~oint:

Function:

Nene.

Entrv point of the activated subtask.
Activate a suttask immediately,

Parameter reqisters:
1 - the address of the element to pass to the subtask.
3 - the address of the STCB that centrols the subtask.
7 - the address of the QCE that controls the STCB.
Exit

~oint:

Entrv point of the activated subtask.

Functions:
The TeAM Dis~atcher allecates and schedules
the system
resources.
The resources, or elements, wait in queues for allocation.
The activity of these queues is controlled ~y the ready queue, which
contains elements to be passed from cne subtask
to
another.

114

Associated with each element on the ready Queue is the queue to which
the element is directed.
Each queue in the system is represented by a queue centrel block
(OCB), which is the connectinq link between elements and the subtasks
waitinq for the elements.
A subtask control blcck
(STCB)
represents
each waitinq suttask.
A resource control block (RCE) prefaces each
element.
Elements and STeBs are inserted in their respective chains on the
OCB in priority-FIFO order, that is, first-in-first-out within each
priority class.
Offset

Queue Control Block

o
ELCHN
+4
+8

STCHN

ELCFIN - the address of first element controlled by this
OCB controls any elements.

QCE;o

if

the

STCHN - the address of first subtask centrcl block to receive control
when an element is t~osted to this QCB.
The TCAM Dispatcher iqnores all other fields.
Resource Control Block
Offset __------_------------~

o

QBCA

+4 ~----_r------------------~
LINK
PRI

QBCA - the address of the OCB to which the

~CE

is tposted.

PRI - the ready queue and chaininq priority of the FCB.
LINK - the address of the next item in the chain in
appears.

which

this

item

The TeAM Dispatcher iqnores all other fields •

. Proqram Orqanization

175

Offset r--_ _ _--rS_ub_t_os_k_C_o_n_tr_ol_B_'_oc_k_ _ _ _ _ __

o

MCPL

+4r-----+------------~

PRI

LINK

MCPL - the subtask entry code (the key to tell the TCAM Dispatcher how
to find the subtask code).
PBI

the
others.

priority

of

the

STCB,

if it is to be compared against

LINK - the address of the next item in the chain in
appears, if any.
The TCAM Dispatcher iqnores all other

which

this

item

fi~lds.

When an element reaches the top of the ready queue (AVTBEADY), the
Dispatcher activates the hiqhest priority subtask associated with
the OCB indicated by the first word of the RCB. This element becomes
the parameter passed to the newly-activated suttask.

TCA~

The TCAM Dispatcher removes the hiqhest priority element from the
ready queue by placinq the address of the element in register 1. The
Dispatcher then places the link field of the RCB of the element in the
ready queue - this puts a new element ~t the top of the ready queue.
When there are no elements cn the ready queue, AV!FEAtY contains
the address of AVTtELEM, which has a zero priority value.
The QCE
pointer in AVTDFLEM points to a QCB that has an STCB with an MCPL
field of zero. In this situation the TCA~ Dispatcher activates a
special routine within itself.
This rcutine issues a system WAIT
command. TCAM Dispatcher activity resumes when an I/O routine or an
application proqram causes an OS interru~t to tpost an element to the
ready queue.
When an element is tposted to a QCB that represents an attached
TCAM -subtask, the TCAM Dispatcher links the element into the element
chain of the QCE and ~osts the FCB (the second word of the QCB)
for
the attached task complete. The Dispatcher recognizes this situation
when the MCPL field of the STCE is equal to X'02'.
When TCAM is executinq in a multiprocessinq environment, the TCAM
Dispatcher examines OCBS!VTO for a zero before insertinq an element in
the OCB element chain and postinq the FeB fer the attached task. If
QCBSTVTO is equal to zero, processinq proceeds as iust described;
otherwise, the rispatcher loops until the tyte at QCBSTVTO is equal to
zero •

. 176

When the value of the MCPL field of the STCB beinq examined by the
TCAM Dispatcher is qreater than X'02' and less than X1 0C', the
'Dispa tcher calcula tes the entry point of the subtask to be' dispatched.
If the MCPL value is X'04', the subtask entry peint immediately
follows its t~o-tyte STCB~ therefere, the entry point is equal t6 the
address of the STCB plus two bytes. If the MCFL value is X'OE', the
Dispatcher adds four bytes to the STCB address; if the MCPL value is
X'08', the Dispatcher adds six bytes to the STCB address; and if the
MCPL value is X'OA', the Dispatcher adds eiqht bytes to the STCE
address.
When the value of the MCPL field is qreater than X'OA', the TCAM
Dispatcher activates a subtask by usinq the MCPL field as an index
into the AVT tranch table located at AVTDISP.
If a subtask is to execute without receiving an element, it is
activated if its STCB is tposted, as if it were an ReE, with the HCPL
field containinq the correct subtask entry code, the next three bytes
containinq the address of AVTREADY-8, the PBI field containing a
priority value, and' the LINK field containing space for a link
address.
To
support dispatching while enabled for interruption~ the
Dispatcher uses two ready queues. One of these is used tv disabled
appendaqes for tposting elements~ the ether is used bV enabled
modules. The two ready queues are not manaqed by the same technique;
however, each is called a ready queue because it contains elements to
be processed ty various suttasks.
The ready queue for the appendages is FIFO only and consists of
two words:
pointers to the first and the last elements on the queue.
Appendaqes put an element on the queue by linkinq the new element to
the one pointed to by the second word of the ready queue.
The enabled ready queue is manaqed by the priority-FIFO technique.
The TeAM Dispatcher has the res~onsibility of merqinq the two ready
queues iust prior to dispatchinq.
When the ready queues are empty,
the TCAM Dispatcher issues a system WAI'! macro, which can be satisfied
by a tpost from an appendaqe or from an applicaticn prcqram.
External Routines:
•

as Wait routine (SVC 1) - to wait for an interrupt.

•

as Post routine (SVC 2) - to post the ECB for an attached task.

•

as Delete routine (SVC 9) - to delete
from main storaqe.

Tables/Work Areas:
~ttributes:

th~

start-up

~essaqe

routine

OCE, RCE, STCE, AVT.

Reentrant, refreshable.

Proqram Orqani7ation

177

TCAM Dispatcher ,w ith Subtask 'Irace (Chart
Module Name:

IGGC19RO

Entrv Point:

IGG019RO

Re)

The TCAM Dispatcher with Subtask Trace provides the same
manaqement entry ~oints as the TeAM Dispatcher (IGG019RB).

queue

Functions:
The ~CAM Dispatcher with Subtask Trace is the same as the
TCAM Dispatcher (IGG019RE) except that it ~rovides one additional
function.
Each time a subtask is activated, the TCAM Dispatcher with
Subtask Trace wakes an entry in the wraparcund subtask .Trace Table
p6inteL to by AVTDISTR.
The Dispatcher with subtask Trace is included in a TCAM MCP when
the DTRACF keywcrd of the INTRa macrc is coded with a nonzero
numerical value. The DTRACE keyword defines the number of entries in
the Subtask ~tace Table. The format and centrol of this table are
discussed in the Diaqnostic Aids section of this publication.
External Routines:
•

as Wait rcutine (SVC 1) - to wait for an interrupt,

•

as

•

as Delete routine (SVC 9) - to delete the start-up Message routine
from main storaqe.

~ost

routine (SVC 2) - to post the FCB for an attached task.

Tables/Work Areas:
Attributes:

~OCTL

AVT, OCE, FCB,

S~CB,

Suttask Trace Table.

Feentrant, refreshable.

SVC 102 Routine (Chart FE)

r.,odule Name:

IGC102

Pntrv Point: IGC102 - called bV an SVC 102 command from
in the system.
~unctions:

This is a multipurpose routine (resident
performs the fcllcwinq functicns:

~vpe

•

Movinq data across partition boundaries.

•

Fostinq EeEs in other tasks.

•

Tpostinq elements to the TCAM disabled ready queue.

•

Flaqqinq the ~CB that represents a
eligible cr net eliqible for swap.

178

TSO

applicaticn

any

routine

I SVC) that

~roqram

as

•

Flaqqinq the TCE that represents an
eliqible or not eliqible for rollout.

application

proqram

as

When a routine in the TCAM system needs to have cne of the above
functions performed r it builds the standard parameter list for a
specific function and places a pointer to that list in reqister 1.
The routine then issues an SVC 102 command to activate the AQCTL SVC
102 routine.
If the routine that activates the ACCTL SVC 102 routine is not
part of the MCP task,
the AOCT1 SVC 102 routine tests for a
multiprocessinq envircnment. If the result of this test is neqative,
this routine issues a EALR to the OS Task Femoval routine to flaq the
MCP not eliqitle to be dispatched.
Byte 0 of each standard parameter list contains the action code
for the AQCTL SVC 102 routine, and the hiqh-order byte of the last
word in each list contains X'80'. The value of each bit in byte 0 is
as follows:
Bi.,t
0
1
2
1
4
5

6
7

.Iunctio.n
Flaq the issuinq task not eliqitle for rollout
Post the ROBI ECE comt:lete
Post a standard or TSC BCE comT=lete
Flaq the issuinq task not eliqible for swap
Move data across a partiticn tcundary
Fnaueue an element on the disatled ready queue and
pest the MCP ECB complete
Flaq the issuinq task eliqitle for swap
Flaq the issuinq task eliqible fer rollout

The ECBs that this routine cause to
three different cateqories.

be

t:osted

complete

are

in

1.

TSO (Time Sharinq Option) - this type of ECE belonqs to a task
that may not be in main storaqe (swapt:ed out) at the time of the
post.

2.

ROFT (Rollout/Rollin) - this type of ICE is for a task that
not be in main storaqe (rolled out) at the time of the t:ost.

3.

Standard - this type of BCE is always in main storaqe at the
of the po'st.

may
time

The AOCTL SVC 102 routine interfaces with the as Pest routine
(IEAQSY50l, a resident Type I SVC, at a special non-validity checking
entry point (IEAOPT01)r the address of which is in the CVT.
Input for
the Post routine at this entry point is as fellows:"
Reqister 15 -

the

~ddress

of the branch entry IEAOPT01.

Beqister 14 - the return address.

Proqram Orqanization

179

Reqister
13
in the low crder 16 bits, the ~JID (TSO Job
Identifier) for the FCE to 1:e ~osted.
For E~BS that are not
rolled out, this reqister ccntains binary zeros.
11
partitien

the com~lement of the PCB address.
the low-order bit is set to one.

~eqister

For a cross-

~ost,

Beqister 10 - the

compl~tion

code.

When the task is currently rolled out, the AQC~l SVC 102 routine
sets a bit in the TCE to indicate to the Rollout/Rellin routine at
rollin time that there is a POST ~endinq for this task.
~he AOCTL SVC 102 routine branches to the Time
Sharing Interface
routine in the nucleus cf a
task to be flagged eligible or not
eliqible for swap. The interface is accomplished via the TSEVENT
macro.
~he
contents of the parameter list built by the callinq routine
vary accordinq to the bit settinq in the acticn cede control byte.

•

For POST requests only, the list may contain either twe or three
fullwords.
The hiqh-order byte of the first fullword isa flag
byte used to communicate to AQCTL the type of ECB to be posted.

•

TSO and standard (TJID=O) - all bits are set equal to zero, except
bit 2 (X'20'). The three low-erder bvtes of the second word
contain the address of the TJID or ef a halfword that contains
tinary zeros.

o
X '20'

ECB Address

X '80'

TJI D Address

+4

•

RaP! ECB - bit 1 of the action code byte (X'40') is

on, and the
lew-order three bytes of the first wcrd contain the FCB address.
~he second word contains
the TeB address for the task being
posted.
Word three contains the address of the DEB associated
with the FCE teinq pested.

o
X '40'

ECB Address

X '00'

TCB Address

X '80'

DEB Address

+4

+8

180

•

To effect cross-partition data movement, the callinq routine
provides a three-word parameter list. Tne first word contains the
address of the data to be moved.
~be second wora contains the
address of the tarqet field of the move, and the third contains
the address of a halfword that contains the lenqth in bytes of the
data field.
Eit 4 of the action code byte is set to one.

o
X '08'

Data Address

X '00'

Target Address

X '80'

,Length Address

+4

+8

If the tarqet field is the disabled ready queue and the MCP ECB is
to be posted, bit 5 is set equal to 1 •

•

If the TCB under which the SVC is issued is to be flaqqed for TSO,
bits 3 and 6 of the flaq byte are used.
If the "eliqible for
swap" flaq is to be set,
bit 6 is set to one"
If the "not
eliqible for swap" flaq is to 1:e set, bit 3 is set to one.

•

When the callinq routine wishes to flaq a TSO TeE eliqible for
swap and post an FeB, it builds a three-word list.
Bits 2 and 6
must be turnea on for this option.

o
Flag

EeB Address

+4
TJID Address

+8
X '80'

•

TeB Address

If the callinq routine wishes to flaq a task eliqible fer rollout
and to post an FCB complete, it builds a three-werd parameter
list. Bits 1 and 7 of the action code tyte are set equal to one.

u

Flag

ECB Address

+4
TeB Address

e-

+8
X '80'

DEB Address

Upon the completion of the AQCTI SVC 102 routine, reqister 15
contains a return code.
Fer a successful o~eraticn, the return code
is binary zero.
If this SVC is issued and there is not an active TCAM
MCP in the system, the routine is not executed and the return code is
four.
1n a multiprocessinq envirenment, the AQCTL SVC 102 routine
turns off the TCBTPSP bit in the TCB te indicate that the task is
aqain eliqible tc be dispatched.
Proqram Orqanization

181

External Routines:
•

as Set status routine (SVC 79) - to set the TCB status.

•

as Post routine (SVC 2) -

•

IKJTSIOO -

•

TESTDSP - as Task Removal routine -. to flaq the MCP
to be dispatched.

~SC

Tables/Work Areas:
~ttributes:

to post ECBs complete.

Interface routine - to flaq TSO tasks.
not

eliqible

CVT, AVT, Time Sharing CVT.

Resident.

Post Penoinq Rcutine (Chart RQ)
Module Name:

IGGC19RO

Entry ~oint:
IGG019RO - activated by the Follout/Rollin SVC Routine
(IEAQRORI) when tbere is an as FaST pendinq for a task that is
currently beinq rolled in.
A post pendinq is indicated bV a bit
settinq (TCBTCPP) in the TCE of an ap~licaticn program,
'Punctions:
This module turns off the "}:ost pending" bit in an
application proqram DEB and passes the address of the ECB for that
application prcqram to the as Post SVC routine to be posted complete.
The Post Fending routine finds the address of the FeE that is to
be posted bV scanninq th~ TCE DEB chain for the TCAM DEB for which a
post is pendinq.
A post pendinq is indicated in the DEBTAMPP byte in
an application prcqram DFB.
The DEB field DEBQCEAD points to the
Read-ahead OCB in the ~rocess entry wcrk area. The Post Pending
routine uses an offset from the Read-ahead QCB to locate the ECB in
the 'process entry work area.
After the DEB chain is completely
examined,
the Pest Pending
routine
returns
centrel
to
the
Follout/Follin routine.
External

Routine:

Tables/Work Areas:
Attributes:

182

as Pest routine (SVC 2)
CV~,

- to post anECE complete.

AVT, TCE, DEB, process entry work area,

Feentrant, refreshable, supervisor mode.

PCB.

MESSAGE HANDLING - LINE MANAGEMENT
Leased Receive
Module Name:

Sc~eduler

~OUTINES

(Chart F3)

IGGC19F3

'Bntrv Points:
•

IGG019R3 - the Leased Receive Scheduler entry point - activated by
the TeAM ris~atcher whEn the leased FecEive Scheduler STCB is
first on tbe STCB chain of the LCB at the top of the ready queue.

•

OEV~NT - the QEVENT routine entry point - activated when the
TCAM
Dispatcher rEaches the QEVENT STCB, which is always the last STCB
in the chain cf schedulers for a line.

Functions: The first function of the Leased Receive Scheduler is to
check the "clcsedcwn" bit in the AVTBIT1 fiEld in the AVT to determine
whether a clcsedown is in precess.
If there is a closedown in
proqress, the routine returns to the Dispatcher indicatinq that
control is to te passed to the next subtask referred tc by the STCE
chain of the LeB.
This causes completion of all receive operations
for the line.
The Leased Receive Scheduler inSPEcts the invitation list to
determine whether it is active.
For an inactive invitaticn list,
the
scheduler returns to the TeAM Dispatcher to have the next subtask for
the line dispatched.
If there are active entries in the invitation list,
the Leased
Receive Scheduler determines whether the last entry serviced is the
last active entry in the invitation list.
If it is not the last
active
entry,
the Leased Receive Scheduler exits to the TCAM
Dispatcher to tpost the ERE to the Buffer Bequest QCB.
If the entry
is the last active entry in the list, the Feceive Scheduler branches
to the Time Sharinq Scheduler (IEDAYZ) if ~so i~ active.
Upon return,
the ~eceive SchEduler resets the ICB pointer (LCBINVPT) to the first
entry in the list and tests for a specified end-of-poll time delay.
If a time delay is specified, the Leased Receive Scheduler tposts the
LCB to the time delay queue and removes the Leased ReceivE Scheduler
STCB from the STCB chain of the LCE by priority;
otherwise,
the
scheduler tposts the LCE to itself, to initiate a receive operation for
the first entry in the list.
The Q!V~NT routine first links to the Time Sharinq Scheduler
(IEDAYZ) if TSC is active in the system.
In this case,
the Time
Sharinq Scheduler initiates a
monitor channel proqram on a time
sharinq line that can timeout.
(A prepare sequenc~ monitors the line
for use of the attention key.)
Upon rEturn from the Time Sharinq
Scheduler, the QEVENT routine determines whethEr there is more
activity for the line.
If not, this routine marks the LCE for the
line "free".

Proqram Orqanization

183

External Routines:
to

post

the

Operator

Centrol

ECB

•

OS Post routine (SVC
complete.

•

IEDAYZ - !ime Sharinq Scheduler - to initiate
croqtam on a time sharinq line.

•

TGG019PBo.r IGG019RO - 'rCAM Dispatcher - the DSPUNAVR entry point,
to exchanGe the scheduler STeEs.

Tables/Work Areas:
TimeSharinq eel.
Attributes:
resifient.

2)

DCE, LeE, QCB, RCE,

Serially

reusable,

STCB,

refresnable,

a

AVT,

monitor

Terminal

channel

Table,

problem preqram mode,

Di al'PeceivE Scbeduler (Chart R1)
Module Nam@:
~

IGGC19R1

Ent r V Point: . I GGC1 9 R 1 - activated by the T CAM Dispatcher when the
Dial Receive Scbeduler STCB is the first STCB in the STCB chain of the
LCB at the tc~ of the ready queue or when a Destination QCE has been
tposted to itself as a result of the CLOCK cr INTVAI operand on the
INTRO macro~
Functions: ~he Bial Receive Scheduler initiates receive operaticns for
a dial line and prepares for send operations upon completion of the
input .•
If'a dial line is beinq used by TSa, the Dial Receive Scheduler
activates the Time Sharinq Scheduler (IFtAYZ) to schedule operations.
Tn this case~ the Time Sharinq Scheduler builds a monitor channel
proqram for lines that have the attention feature but time out. The
channel prcqram mcnitors the line fer an attention.
When the

input element to the Dial Receive Scheduler is a
OCE, one cf two possible conditions exits. Either the
aCB is associated with a destination LCB that has just been found by
the Send Scheduler or the LCE contains an indication that the
connection with a terminal is complete. In the first case, the Send
Scheduler has removed the OCE from the time delay queue, has found the
associated ~CB, and has tposted the gCB tc the Dial ~eceive Scheduler.
The schedul~r, at this point, calculates the Termname Table offset for
the destillaticn terminal and uses the Termname Table code to qet the
terminalent~v.
The scheduler verifies the Destination QCE for the
terminal to be dialed bv comparinq the input QCB to the Destination
QCP speci~ied in the terminal entry. The scheduler then stores the
Termname T;8,blE offset in the LCB and. exits to the TCAM Dispatcher to
tpostthe EFB tc the Buffer Request OCB to request initial buffers.
~estination

Whe,n the inl=u t element is a Destina tien OCB and the associated LCB
contains an indication that the terminal connection is complete, the
Dial Ree-eive Scheduler calculate~ the J:eriod for the time delay
between calls and exits to the TCAM Dispatcher to tpost
the
184,

Destination
to be made.

CCE

to the time delay queue to prepare for the next call

When the in~ut element to the tial Receive Scheduler is an LCB and
the last operation for the terminal that is presently ccnnected' did
not result in a neqative invitaticn response,
or if th~re is no
current terminal connection, the Dial Receive Scheduler exits to the
TCAM Dispatcher to tpost the ERB tc the Euffer Request QCE to request
initial buffers.
If the last operation resulted in a neqative invitaticn response,
the Dial Beceive Scheduler scans the dial-cut call queue to determine
whether there is a messaqe for the connected terminal.
(A QCE for a
dial terminal is placed in the dial-out call queue when there is a
messaqe for an unavailable line.)
If there is a messaqe for the
terminal.
the scheduler removes the associated QCE from the dial-out
call queue, moves the Send Scheduler STCB of that QCB to the first of
the STCB chain of the LCB for the line, and returns to the TCAM
Dispatcher to have the LCB tposted to itself in order to initiate
sendinq tc the ccnnected terminal.
If there is no messaqe for the connected terminal, the scheduler
scans the dial-out call queue to find the QCB with the hiqhest nonzero
priority. For priority messaqes, the scheduler removes this QCB from
the queue and returns to the TCAM Dispatcher to have the Send
Scheduler STCE cf this QCB chained into the STCB chain for the LCE.
If there are only zero priority QCBs on the dial-out call queue, the
scheduler uses the first QCE founa that has a relative line number
that is qreater than or equal to the relative line number of the
currently connected line.
If the dial~out call queue does not ccntain a QCE with a nonzeropriority level messaqe or a QCB with a zero-priority level messaqe and
a
relative line number that is qreater than or equal to the relative
line number of the current line, the Dial Receive Scheduler returns to
the TeAM Dispatcher to tpost the IRE for the line to the Buffer
Request QCB tc request buffers.
This initiates a receive operation.
External Routines:
•

TEDOTNT - Termname Table code - to find the address of an entry in
the Terminal Table.

•

OS Time rcutine (SVC 11) - to cttain the current time of day.

•

IEDQHG - Time Delay subtask - The IEDQBG01 entry point, to put the
Destination QCB on the time delay queue.

•

OS EXCP routine (SVC 0) - to disconnect a dial line (output only) •

•

IGG019~B or IGG019RO - TCAM Dispatcher - The DSPUNAVR entry point,
to place an STCB at the top of the S~CB chain of the ICE.

•

IEDAYZ - Time Sharinq Scheduler
proqram for time sharinq lines.

to

build

a

monitor

channel

Proqram orqanization

185

Tables/Work Areas:
DCE,
Table, Time Sharinq OCE.
Attributes:
resident.

DEB,

seriallY reusable,

LCB,

OCB,

refreshable,

R~B,

STCE, AV!, Terminal

~roblem

proqram

mod~,

Local Receive Scheduler (Chart 01)
Module Name:

IGGC1901

Entry Point:
IGG019Q1
activated by the TCAM Dispatcher when the
snecial attention element is tposted to this module or when an LCB is
tposted to itsel~ with the IGG01901 STCB first on its STCB chain.
Functions:
The Local Feceive Scheduler schedules receive operations
for 2260 Local lines.
The Local Beceive Scheduler is activated three times in order to
receive a messaqe from a 2260 Local device.
A& attention interrupt
activates the Attention routine
(IEDQATTN1, which activates the
Attention Handler
(IGG019R5).
The Attention Handler tposts the
special attention element to the Local Receive Scheduler QCB.
The
Local Receive Scheduler processes the special element and then tposts
the appropriate LCE to activate itself in order to schedule the
receive operation.
After the receive operation is complete, the
scheduler frees the LCB.
~he specific functions of the local Feceive Scheduler depend
upon
the specific in~ut that causes the Dis~atcher to activate this
scheduler.
If the input is the special attention element, the Local
Receive Scheduler first frees the element. Then, if the ICB is busy,
the scheduler returns to the TCAM Dispatcher at entry point DSPDISP so
that the next surtask on the ready queue can re activated. If the LCB
is free, the local Receive Scheduler tposts the LCB to itself and
returns to the ~ispatcher (DSPPOST).

If the input is an LCE, the Local Receive Scheduler determines
whether a closedown is in ~roqress and if sc, returns to the TCAM
Dispatcher without schedulinq any further operations~
If a stop line
is in proqress, the Local Receive Scheduler t~osts the LCE to the stop
Line QCB.
If there are no active entries in the invitation list for
this line, the scheduler returns to the TeAM Dispatcher at DSPPOST in
order to activate the next subtask. ~f there is an active entry in
the invitation list,
the Local Receive Scheduler sets the LeB to
request buffers and tposts the LeE to the Buffer Request QCB.
After
a receive operaticn is complete, the scheduler frees the LCE.
External Routines:

Nene.

Tables/Work Areas:

AVT, DCE, LeE.

Attributes:

186

Reentrant, refreshable.

Send Scheduler (Chart R4)
Module Name:

IGGC19R4

Point:
IGG019F.4
activated by
Send Scheduler STCB is referred toby "the
top of the ready queue.

~ntry

t~e

TCAM Dispatcher when the
LCB, or QCB at the

buff~r,

Functions:
~he first function of this module is to determine the type
of element to te processed.
There are three possible types of
elements:
•

A buffer

•

An LCB

•

A'QCB for a dial line tposted to itself

If a buffer is tposted to a Destinaticn OCB, the Send Scheduler
returns
to
the TCAM Dispatcher to dispatch the next subtask
represented in the STCP chain of the Destination QCE.
This subtask is
the Destination Scheduler,
which assiqns a disk or main storaqe
queuinq address for the buffer.
When the last buffer of a messaqe or
the first buffer cf an initiate mode roessaqe is handled by the
Destination Scheduler and the Send Scheduler STCB is in the STCB chain
of the Destination OCP, the Destination Scheduler branches into the
Send Scheduler to find a line over which the messaqe can be sent.
The
search beqins with the LeB with the same relative line number
specified in the cep.
If the line is not a dial line, the Send Scheduler uses the LCB
indicated by the relative line number in the Destination QCB as the
one for the line over which the messaqe is to be sent. If the line is
free,
the Send Scheduler tposts the LCE tc itself and moves the Send
SchedulerSTCP from the STep chain of the Destination QCB to the STCB
chain of the ICB.
If the line is not free, the scheduler takes any
necessary special action, that is, qoinq tc an open list with Auto
?oll or issuinq an IOHALT macro, and moves the Send Scheduler STCB to
the LCB without ~postinq the LCB tc itself.
If the line is a dial line, the Send Scheduler searches the LCE
indicated by the relative line number in the QCE to find the available
LeB with the lowest relative line number.
If CALL=NONE is specified
for the terminal, a line is used only if tbe terminal is currently
connected on a line.
The Send Scheduler issues an IOHAlT macro (if it
is needed)
fer a line that is not connected, and moves the Send
Scheduler STCp'frcm the STCP chain cf the Destination QCE to the
STCB
chain of the LCB.
If no available or free line is found, the
scheduler chains the Destination QCB into the dial-out call queue.
A Send Scheduler dispatched frcm an lCE indicates that a send
operation
is teinq initiated. If the line is beinq used for TSO, the
Send Scheduler activates the Time' Sharinq Scheduler to check for
partial line reads or simulated attention reads.
(These have priority
over output operations.)
If there is a quick closedown in proqress,
return to the Dispatcher activates the subtask pointed to by the next
?roqram Orqanization

187

STCB in the STCB chain of the LCE.
Otherwise, if there is a messaqe
to send, the Send Scheduler identifies the hiqhest ~rioritT messaqe,
initializes the LCB for sendinq, and t~osts the ERE# which contains
the number of tuffers to be sent, to the Disk I/O QCB to initiate
sen~inq
the nessaqe.
If a terninal on the line is in locked mode,
lock response messaqes have the hiqhest priority. Otherwise, initiate
mode messaqes ana then the priority-FEFO messaqes have the hiqhest
priorlty.
If there is no messaqe to send, the Send Scheduler returns
to the Dispatcher indicatinq that the STCB for the current Send
Scheduler is to be returned to the first position in the STCB chain of
its Destination OCB.
The functicn of the Send Scheduler when there is a Destination QCB
for a non-TSO dial line tposted to itself is to search for an
available line in the line qroup of the OCE.
If there is no line
availarle, the Destination QCB is placed en the dial-out call queue.
If there is a line available, the Send Scheduler STCB is linked into
the LCB STCB chain of the LeB. In ether words, the functions here are
the same as when a buffer is tposted and the lines are dial.
If the line is for a TSO operation, the Dial Receive Scheduler
activates the Time Sharinq Scheduler.
The Time Sharinq Scheduler
determines whether TSO has issued a write treak operation request or
a simulated atteption read request. These should be honored before
other ~CAM processinq resumes.
Upon the corrpletion of any of
Scheduler returns to the Dispatcher.
External

the

atove functions, the Send

~outines:

•

IEDQTNT - Termname Table code - to qet the address of an entry
the Terminal ~ar1e.

•

as IOHALT routine (SVC 33)- to halt I/C on the lines.

•

IGG019RB or IGG019RO - TCAM Dispatcher - the DSPUNAVR entry point,
to put the Senft Scheduler STCB in the ICB STCB chain; the DSPPOSTF
entry point, to free the LCB.

•

IEDAYZ -

•

as EXCP routine (SVC 0) - to start channel activity.

~ime

Tables/Work Areas:
Sharinq CCE.

in

Sharinq Scheduler - to mcnitor TSO requests.

DCB, LCB, QCB, ReE,

STCB,

AVT,

Terminal

Table,

~irre

Attributes:
resident.

Serially

reusable,

Send Scheduler for Leased
Module Name:
188

IGGC1906

refreshatle,

problem prcqram mode,

Lines and No TSO (Chart 06)

Entry Point: IGGOl906 - activated by the TCAM Dispatcher when the
Send Scheduler STCE is referred to by the buffer, LCB, or QCB at the
top of the ready queue.
Functions: The functions of this routine are the same as those for
the Send Scheduler (TGG019R4) except that it contains loqic for leased
lines only and contains no TSO interface lcqic.
External Routines:

•

as IOHALT routine (SVC 33) - to halt l/C on the lines.

•

as EXCP routine (SVC 0) - to issue an EXCF on break.

Tables/Work Areas:
Attributes:
resident.

DCE, LCE, QCB, BCE, STeE, AVT, Terminal Table.

Serially reusable,

refreshatle,

~roblem

program

mode,

Send Scheduler with No TSO (Chart 07)
Module Name:

IGG019Q7

Entry Point:
IGGC19Q7
activated by the TCAM Dispatcher when the
Send Scheduler is referred to by the buffer, LCB, or QCB at the top of
the ready queue.
Functions:
The functions of this routine are the same as those for
the Send Scheduler (IGG019R4) except that it contains no TSC interface
loqic.
External Routines:
~able'code

•

IEDOTNT - Termname
entry.

•

CS IOHALT routine

•

as EXCP routine (SVC 0) - to issue an FXCP cn treak.

Tables/Work Areas:
Attr1butes:
resident.

- to qet the address of

a

terminal

(SVC 33) - to halt T/C on the lines.

DCE, LCB, QCB, RCE, STeE, AVT, Terminal Table.

Serially reusable,

refreshatle,

problem

prcqram

mode,

Buffered Terminal Scheduler (Chart RD)
Module Name:

IGG019RD

Entry Point:
IGG019RD - activate~ by the TCAM Dispatcher when the LeB
is on top of the ready queue, by the TeAM Dispatcher when the Time
Delav subtask t~osts the Destination OCE to the Buffered Terminal Time
Proqram Orqanization

189

Delay OCB, and by the Destination Scheduler to move the
Terminal Scheduler STCB from the testinaticn QC~ to the LCB.

Buffered

Functions:
This module schedules send and receive operations for
buffered termina1~, that is, 2740 Model 2 and 2770.
In general,
it
performs in a manner analoqous to the send and receive schedulers for
non-buffered terminals. The send function is different because the
terminal has a hardware buffer.
When a blcck of text is sent to a
buffered termira1, the transmission is complete. However, TCAM must
observe a time delay equivalent to the time required for the terminal
t9 empty its tuffer onto its output device.
This scheduler tries to
utilize the line for sendinq to or receiving from other terminals on
the line durinq the time delay for the terminal to which the last
block of text was sent. . Flags in the destination QCBSTAT field
indicate whether the terminal is in send or receive mode.
These
states are mutually exclusive.
The Buffered Terminal Scheduler waits on the Destination QCB and
the LCB.
There is an STCB for each Destination QCB and LCB.
When a
buffer is t~ost€d to the Destination QCE, the scheduler passes the
buffer to the Destination Scheduler (IFDQHM).
When IEDQHM recognizes
end-of-messaqe,
it branches to the TAG subroutine in the scheduler.
If the line is free, the scheduler uses DSPFOSTR to tpost the LCB to
itself;
if not, after return from the Dispatcher, the scheduler links
its STCB from the QCB into the LCE STCE chain. This action indicates
that there is a messaqe for the associated terminal.
If Auto Poll is
in proqress, it is stopped. The scheduler exits to IEDQHM.
When the ICE is tposted to the scheduler, the scheduler tests for
the type ef the last eperation.
If the last operaticn was a receive,
the scheduler tests for scheduling priority.
If equal priority is
specified, the scheduler tests for end cf invitation list. If it is
not the end, the scheduler sets UP the ERB to receive frcm the next
entry in the list, and t~osts the ERB to the Buffer Request QCB.
If it is the end of the invitation list, the scheduler resets the
current invitation list pointer to the beqinninq of the list and tests
for somethinq to ~end to a terminal on the line.
If send priority is
in effect, the scheduler also makes a seno test.
If there is nothinq
to send, the scbeduler initiates a receive operation on the first
entry in the invitation list.
If there is something to send to a
terminal on the line, the next scheduler STCB in the LCE STCB chain is
dispatched.
If the OCE reflects an empty status, the scheduler removes the
STCB from the ICB STCB chain_ turns off QCESEND, and exits to the
Dispatcher by tposting the LCB to itself. If the QCB is not empty,
the scheduler tests for send status (QCBRECEV=O}. If the send status
is nonzero, the scheduler reenters the loop for testinq for somethinq
~o
send.
If the status is net receive, the scheduler turns on
OCBSEND, builds the ERB to initiate the sendinq operation, and exits
to the TCAM Dis~atcher te tpcst the ERB to the Disk I/O QCE.
If the last operation on the line was a send, the scheduler
observes a time d~lay for the destination of the last block.
The
scheduler stores the time delay interval in the QCB, and removes its
190

STCE from the ICB STCB chain.
The QCB is ~assed via
Time Delav suttask branch entry point (lEDQHG01).
scheduler enters the "somethinq-else-to-sEnd" loop.

a EALR to the
Upon return, the

T~hen the time delay interval expires, lEDOHG tposts the QCB
to a
OCB at BTSTDQCB in the scbeduler CSEC1.
The scheouler returns its
STCB from the OCP to the LCE STCB chain.
Tf the line is free,
the
scheduler tpcsts the LCB to itself.
The scheduler then exits to the
Dispatcher.

External p.outines:

•

TEDOTNT - Termname
address.

•

IGG019PB or IGG019RO - TCAM Dispatcher to tpost an element to the ready queue.

•

TEDOHG01 - Time Delay surtask - to implement a time delay.

1atle

code

to

Tables/Work Areas:
AVT, SCE, LCB, QCE,
Terminal Tatle Entrv.
Attributes:

obtain

terminal

entry

the DSPPOSTP. entry

point

reE,

DEE,

a

invitation

list,

Feentrant, refreshable, prorlem proqram mode.

Activate-I/O Generator Subtask (Chart KAl
Module Name:

lIDeRA

'Entrv Points:
•

TEDQKA -

Activate -

when entered from the TCAM Dispatcher.

•

TEDQKA02 - T/C Generator - when qiven centrol from
Appendaqe.

?unctions:
This module builds channel
continue, and rEset sequences.

~rcqrams

the

line

Fnd

for initial contact,

The Activate-I/O Generator subtask ottains ~s input the EBB or the
buffer for the terminal or device in neEd of a channelprcqram.
This
suttask constructs a channel prcqram tased upon the characteristics
for the device as obtained from the Device Characteristics Table
(DCT)..
This subtask tests the characteristics bits and transfers
control to an internal Expand subroutine, passinq an offset into a
model ccw table.
The model CCW table consists of a two-byte entry for
each CCW built:
Bvte 0 - an offset into an expander table.
Byte 1 - CCW flaqs for the
The

Expand

an~ utilizes the

CC~

beinq tuilt.

subroutine moves the specified CCW flags into the CCW
index in byte 0 of the model CCW table to gain access
Proqram Orqanization

191

to information in the expander table.
table contains the followinq data:

Each

entry

in

the

expander

Bytes 0-1

Offset to a subroutine that establishes address
ana count

Byte 2

CCWDISAB - CCW OP code

Byte 3

TFDISAE - TP OP code

~he
Expand
subroutine branches to the Expander subroutine
indicated by the offset in the ex~ander tatle entry. This subroutine
computes the CCiDATA address ana count befere returninq to the Expand
subroutine.
Upon reqaininq control, the Ex~and subroutine moves the
cew OP code into the cei and the TP OP code into the LCBTPCD field of
the ICB plus an aalustment. Each time a !P OP code is moved to
LCBTPCD, the aalustment factor is incremented by one. In this way the
~p OP codes for a channel ~roqram start at LCBTPCD and continue for as
many bytes as necessary.

After the first CCi in the necessary channel ~roqTam sequence has
been built, the Expand subroutine adlusts a reqister to point to the
next entry in the model CCW table. If this is "not the last entry, the
above
actions are aqain performed te ccnstruct the next ccw.
Otherwise, the Ex~and sucroutine returns to the in-line code of the
Activate-I/O Generator subtask, which ~laces the address of the first
ccw to be executed in the LCESTART field of the LCB.
This routine
exits to its callinq routine.
External Foutines:

•

IEDQTNT- !ermname
address.

•

OS EXCP Routine (SVC 0) - to start a channel proqram.

Tables/Work Areas:

~atle

code

to

cttain

the

ICB, DCB, CCW, AVT, tuffer prefix,

terminal

SCE,

entry

Terminal

~able.

Attritutes:
Feentrant, refreshatle, disatled and supervisor mode if
entered from Line End A~pendaqe, enabled ana problem program mode if
entered from the TCAM Dispatcher.

Activate-I/O Generator Subtask for ESC Lines (Chart KAl
Module
~ntry

~ame:

IEDCKB

Points:

•

TEDORE - Activate - when entered from the TCAM Dispatcher.

•

TEDOKA02 - T/C Generator - when qiven centrol from
Appendaqe.

192

the

Line

Ena

~unctions:
The functions of this suttask are the same as those for
the Activate-I/O Generator except that the data in the model CCW and
expander tables is for BSC lines only.

External Routines:

•

IEDQ~NT

•

as EXCP routine (SVC 0) - to start a channel proqram.

- Termname Table code

to

ottain

the

terminal

entry

address.

Tables/Work Areas:
Tatle.

LCE, DCB, CCW, AVT, tuffer prefix,

SCE,

Terminal

Attributes:
Reentrant,
refresharle, disatled and supervisor mode if
entered from Line End Appendaqe, enabled ana problem proqram mode if
entered from the TCAM Dis~atcher.

Activate-I/O Generator Subtask for start/stop Lines (Chart KA)
Module Name:

IIDCKC

Bntry Points:
•

TEDQKC -

Activate - when entered from the TCAM

•

IEDQKA02 - I/C Generator
Appendaqe.

Dis~atcher.

when qiven centrol from

the

Line

End

~unctions:

!he functiens of this subtask are the same as those for
the Activate-I/C Generator except that the data in the model CCW and
expander tables is for start/stop lines only.
External Routines:

•

IEDOTNT address.

•

as EXCP. routine (SVC 0) - to start a channel proqram.

~ermname

Tables/Work Areas:
Table.

Tatle code

to

ottain

the

LCB, DCB, CCW, AVT, tUffer prefix,

terminal

SCE,

entry

Terminal

Attributes:
Reentrant,
refreshatle, disatled and supervisor mode if
entered from line End Appendaqe, enabled and ~roblem prcqram mode if
entered from the TeAM Dispatcher.

Activate-I/O Generator Subtask for Leased and Start/Stop Lines and No
TSO (Chart KA)
Module Name:

IEDCKD
Proqram Orqani7ation

193

~ntry

Points:

•

IFDOKD -

Activate -

when entered from the TCAM Dispatcher.

•

IEDQKA02 - I/C Generator - when qiven centrol from
Appendaqe.

the

Line

End

Functions:
The functiens of this subtask are the same· as those for
the Activate-I/b Generator except that the data in the model eel and
expander tables is for leased and start/stop lines only and contains
n~ TSO interface loqic.
External Routines:

•

IEDOTNT - Termname Table code
address.

•

OS EXCP routine (SVe 0) - to start a channel proqram.

Tables/Work Areas:
Table.

to

ottain

the

LCB, DCB, CCW, AVT, ruffer prefix,

terminal

SCE,

entry

Terminal

Attributes:
Reentrant,
refreshatle, disatled and supervisor mode if
entered from line End APpendaqe, enabled and ~roblem proqram mode if
entered from the TeAM DiEpatcher.

Activate-I/O Generator Subtask for a OTAM Compatible System (Chart KA)
Module Name:

IEDCKE

Entry Points:
•

IEDOKE - Activate - when entered from the TCAM Dispatcher.

•

IEDQ~A02

- I/C Generator - when qiven centrol from
Appendaqe.

the

Line

End

~unctions:
Tbe functicns cf this routine are the same as those for
the Activate-I/C ~enerator except that it su~~orts only those devices
which OTAM su~~orts.

External Routines:

•

1EDQTNT - Terrename Table code
address.

•

as EXCP routine (Sve 01 - to start a channel proqram.

Tables/Work Areas:
Table.

to

cttain

the

ICB, DCB, cew, AVT, tuffer prefix,

terminal

SCE,

entry

Terminal

Attributes:
Reentrant,
refreshatle, disarled and supervisor mode if
entered from Line End APpendaqe, enabled and ~roblem proqram mode if
entered from the TCAM Dispatcher.

194

Line End Appendaqe (Chart ROl
Module Name:

IGGC19FO

Entrv Points:
•

IGG019RO - activated bv lOS when an I/O interrupt occurs with
device or channel endinq status or bV an E~P routine when an error
is considered permanent or cleared.

•

SCAN - activated by
control characters.

~CI

Appendaqe

(IGG019FN~

to scan for BSC

line'

Functions: The line End Appendaqe is a leqical extension of lOS and
receives contrel ~hen an I/O interrupt occurs with device or channel
endinq status, when an errer is determined to be pe~manent by ERP, or
when an error is cleared by ERP.
If a permanent error has not cccurred, the Line End Appendage
examines endinq
~tatus
tc determine if EFP is to be scheduled.
Unusual endinq status results in a return to lOS to schedule the first
load of ERP fer this device.
When ERP action is not required, the line End Appendaqe obtains
the TP operation (OP) code for the failinq CCW bvusinq the address in
the CSW as an index arqument into a list of TP OP codes (lCBTPCD).
The TP OP code is used as. an index into a tranch table in order to
take specific a~tion for this interrupt.
Two tables are employed.
One is for normal endinq status; the other for error conditions
detected by ERP.
For errors that have occurred prior to text transfer, a zerolenqth buffer is tposted to MH for INMSG/ODTMSG processinq.
If an FOB interrupt cccurs while receivinq a messaqe, a restart is
made from the appendaqe unless MH ~rocessinq is desired.
When FOT is
received, the filled buffer(s) is t~osted to ~H indicating that this
is end of messaqe. For an FOB interrupt cn output,
previous buffers
are tposted te the Bufter Return QCB and a restart is accomplished.
~he last buffer of a successfully sent messaqe is
tposted to Buffer
Disposition for OUTMSG pr~cessinq.
All ccntinue CCW sequences. are
built by the I/C Generator routine in IEDQKA.
In the event of a text mode error,
the atove action is taken
except that the buffer reflectinq the interrup.t is tposted to MH to
observe user-selected options.
The SCAN sutroutine is entered from the PCl Appendaqe routine
(IGG019RNl
as well as from the Line End A~pendaqe.
Its address is
always at an offset of 4 into the· line End Appendaqe.
OPEN moves this
address into the AVTBSCAN field of the AVT so FCl A~pendaqe can have
access
to it.
The SCAN subroutine scans for incominq binary
synchronous (BSC) line centrol characters. The subroutine checks for
valid startinq and endinq characters. If these characters are valid,
th~ Line Ena A~~endaq€
continues readinq.·
If tbe characters are
Proqram Orqanization

195

invalid,
the Line End Appendaqe, upon receiving endinq status, exits
to IDS to schedule the apprc~riate error recovery piocedure (EBP).
The followinq Line End Appendaqe functicns are unique tc
TSO environment.

a

TCAM-

1.

2741 Line Centrol - A write data does not end with a circle C at
the
end cf
text.
This allcws subsequent writes to the same
terminal withcut turninq the line around.
On each interrupt on
a
2741,
the Line End Appendaqe sets or clears a switch to indicate
whether a write circle C or a write circle D has been completed.

2.

Attention Handlinq/Hanqup - If a TSO terminal has an attention
key,
the line End Appendaqe use a prepare command to wcnitor the
TSO line for an attention.
The PR1PARE command has a
special TP
O~ code that causes the Line End APpendaqe to tpost the ERB to the
TSO
IOHAIT
routine
(IBDAYF) when the PREPARE-indicates that the
operator has struck the attention key.
If the operator strikes
the attention key while the terminal
is rece1v1nq data, an
interventicn required on a write text CCW occurs and the Line
End
Appendaqe t~osts the LCB to IEDAYF to issue a PBEPARE HIO.
If the
PFEPAPF ends normally, the apt:endaqe sets the "attention" flaq in
the SCB and, if there are buffers in use, t~osts the buffers to
the
MH.
If there are no buffers in use, the appendaqe tposts the
LCB to the ~sc Attenticn routine (IEDAYA).
If the intervention
required persists, the appendaqe assumes that the user is hunq and
tposts the ICE to the ISO Hanqup routine (IEDAYH1.

3.

write Break to a TSO Terminal
If a
TSO terminal has the
interrupt feature, priority data can interrupt a receive operation
that
is in
proqress.
The Line End Appendaqe recoqnizes an HIO
fro~ the
Time Sharinq Scheduler
(IErAYZ)
and,
as a
result,
initiates a
write treak to turn the line around.
When the break
occurs, the appendaqe restores the CSW to show an end to the read
and normal TCAM processinq handles tpostinq the buffers.

4.

2741/1050 Sut:t:ort on One Dial line - In a TCAM-TSO environment the
user can use either a 1050 or a 2741 terminal on a
sinqle dial
line.
After the user has dialed in, the line Bnd Appendaqe uses
the first interrupt as a siqnal to deci~ler the terminal type.
If
the initial read ends in a
time-out with no EOA or nothinq
received,
the appendaqe assumes a 1050.
If the read ends with a
time-out with EOA received or ends normally, the appendaqe assumes
a 2741.
Further operations for the terminal are based on the
settinq of the "2741" indicator bit (LCE2741N) in the LCBfield
ICBTSCB.

External Foutines:
OS Post routine (SVC 2)

•

IFDOTNT address.

•

IEDOKA - Activate-I/O Generator subtask
sequence cr
a channel ~reqram.

196

lermname

- to

~ost

•

Tarle

code

the TCAM Dispatcher ECB.
to

cbtain
to

a

terminal

build

a

entry

continue

•

~ESTDSP - as ~ask Removal routine - tc flaq a TeB not eliqible
be dispatched.

to

•

lGG01900 - line I/O Interrupt Trace routine - to make an entry
the Line I/O Interrupt Trace Tatle.

in

Tables/Work Areas~
Terminal Table.
Attributes~

ICE, QCB, BCB, SCB,

Supervisor mode, disabled, refreshable.

Line End Appendaqe for BSC lines
Module Name:

~refix,

AVT, CCW, DCE, buffer

(Chart 02)

IGG019Q2

Entry Points:
•

IGG01902 - activated by lOS when an I/O interrupt occurs with
device or channel endinq status, or by an ERP routine when an
error is considered permanent cr cleared.

•

SCAN - activated by PCl Appendaqe (IGG019RN)
control characters.

to scan for ESC

line

Functions:
The functicns of this routine are the same as those for
the Line Fnd Appendaqe rcutine (TGGC19RO)
except that this routine
contains loqic for ESC line control only.
~xternal

Routines:

•

as Post routine (SVC 2) - to

•

IEDQTNT - Termname
address.

•

IEDOKA proqram.

•

TESTDSP-OS Task Removal routine - to flaq a TeB not eliqitle to be
dispatched.

•

IGG019QO - line I/O Interrupt Trace routine - tc make an entry
the line I/O Interrupt Trace Table.

~ctivate-I/O

Tables/Work Areas:
Terminal Table.
Attributes:

~atle

~ost

code

Generator

the TeAM Dispatcher ECE.
to

ottain

subtask

the
to

terminal
build

a

entry
channel

in

AVT, CCW, DCE, buffer prefix, LCE, QCE, RCB, SCB,

Supervisor mode, disabled, refreshable.

Line End AppendaGe for Start-Stop lines (Chart Q3)
Module Name:

IGG01903
Proqram Orqanization

197

Entrv Point: IGGC1903 - activated by lOS when an I/O interru~t occurs
with device or channel endinq status, oi tv an EFP routine when an
error is considered permanent or cleared.
Functions:
The functicns of this routine are the same as those for
the tine Fnd A~pendaqe routine (IGG019RO) except that this routine
contains loqic for start/stop line control cnlv~
External Routines:

None.

•

as

•

IEDQTNT - Termname Table code
address.

•

IEDOKA - Activate-I/O Generator subtask
proqram. - l/C Generator subtask - to build

•

TESTDSP .- CS Task Removal routine - to flaq a TCB not eliqible
be dispatched.

to

•

IGG01900 - tine I/O Interrupt Trace routine - to make an entry
the tine T/C Interrupt Trace Table.

in

Post routine {SVC 21 - to post the TCAM Dispatcher FCB.

Tables/Work Areas:
Terminal Table.
Attributes:

to

AVT, CCW, DCB, buffer

ottain

the
to

~refix,

terminal
build

a

entry
channel

ICE, QCE, Rep, SCE,

supervisor mode, disabled, refreshable.

Line Fnd Appendaqe for Leased and

Start/Sto~

Lines and No

TSO

(Chart

04)

Module Name:

lGG01904

Entrv Point: IGGC1904 - activated bV lOS when an I/O interru~t occurs
with devic€ or channel endinq status, cr by an FRP routine when an
error is considered permanent or cleared.
Functions: The functions of this routine are the same as those for
the line End A~pendaqE routine (IGG019FC) Except that this routine
contains loqic for leased and start/stop lines only and contains no
TSO interface lcqic.
~xternal

Routines:

•

OS Post routine (SVC 21 - to post the TeAM Dispatcher FCB.

•

!EDQTNT - Termname Tatle code
address.

•

TEDOKA02 - Activate-I/O Generator subtask - to
sequence.

198

to

ottain

the

terminal

build

a

entry

continue

•

TESTDSP - CS ~ask Removal routine - to flaq a TCE not eliqihle
be dispatched.

Tables/Work Areas:
Terminal Tarle.
Attributes:

to

AVT, CCW, DCE, buffer prefix, LCE, QCE, RCE, SCB,

Supervisor mode, disabled, refreshable.

Line End Appendaqe for a QTAM Compatible System (Chart Q5)
Module Name:

IGGC1905

Entry Point:
IGGC1905 - activated by lOS when an I/C interru~t occurs
with device or channel endinq status, or ryan ERP routine when an
error is considered permanent or cleared.
Functions:
~he
functions of this routine are the same as those for
the Line End At~endaqe routine (IGG019~O)
except that this routine
contains loqic necessary to o~€rate with devices supported by QTAM
only.
External Routines:

•

as Post routine {SVC 21 - to post the TCAM Dispatcher ECB.

•

TEDOTNT - Termname
address.
IEDQKA02 sequence.

•

~atle

code

to

attain

the

Activate-I/O Generator subtask - to

terminal

build

a

entry

continue

TESTDSP - as Task Removal routine - to flaq a TCB not eliqible
be dispatched.

Tables/Work Areas:
Terminal Table.
Attributes:

to

AVT, CCW, DCE, buffer prefix, LCE, QCB, RCE, SCE,

Su~ervisor

mode, disabled, refreshable.

Attention Routine (Chart TN)
Module Name:

IEDCATTN

Entrv Point:
occurs.

IEDCATTN - activated by lOS when an attention

interrupt

Functions~
This module is a resident routine of lOS and receives
control when an attention interru~t is presented by the 2848 control
uni t.
Its function is to determine if TCAM is runninq in the system
and to pass contrel to another module (IGG019R5), which will attempt
to schedule a receive operation.

Proqram

Orqani~ation

199

If TCAM is not runninq in the sYEtem, the Attention routine
returns to lOS, where the interru~t is iqnored.
External Routines:

None.

Tables/Work Areas:

AVT.

Attributes:

Resident, supervisor mode, disabled.

Attention Handler (Chart R5)
Module Name:

IGG019P5

Entrv Point: IGG019R5 - activated by the Attention routine (IEDQATTN)
after an attentior. interrupt.
Functions: ~his module searches the DEB chain to determine if a DCB
has reen opened for this device. This module returns to IOS with no
further action taken if the DCB has not been opened.
The Attention
Handler schedules receive operation for the device if a closedown is
not in proaress and the line is not in a Etopped state.
External Routines:

•

as Post routine (SVC 2) - to

•

TFSTDSP - CS !ask Removal routine - to flaq a TCB not eliqible
be dispatched.

~ost

the TeAM Dispatcher ECB.
to

Tables/Work Areas: AVT, rEE, LeB, BCB.
Attributes:

Supervisor

~ode,

disabled, refreshable.

Line I/O Interrupt Trace Routine (Chart QO)
Module Name:

IGGC1900

Fntrv
Point:
IGG019QO
activated by the Line
(IGGOJ9ROl when it receives an I/O Interrupt and the
trace facility has been requested.

End
1/0

Appendaqe
interrupt

Functions: The Line I/O Interrupt ~race routine makes an entry in the
Line I/O Interrupt Trace Table each time that it is activated. One
table entry contains the T/O sense information, cbannel status word,
first and failinq channel commands with TP OP codes, terminal name or
UCB name, and channel and unit address of the interrupt. The Line I/O
Interrupt Trace routine then branches toa user trace exit routine if
the TREXIT=parameter was specified on the INTRO macro. The user exit
routine, in turn, returns to the Line Fnd Appendage.
(Note:
~eqisters
',2,4,11,12,13,14, and 15 must not be chanqed by the user
trace exit routinE.)
200

External Routines:

None.

Tables/Work Areas:

Line I/O Interrupt Trace Table.

Attributes:
Disabled for all interrupts
supervisor mode, serially reusable.

except

machine

check,

Time Delay Suttask (Chart HG)
Module Name:

IEDQHG

Entry Points:
•

IEDOHG - entered from an attac~ed
task
request element on the Time Delay QCB.

•

IEDQHG01 - entered by a BALR from a TCA~ subtask to place
delav request element on the time delay queue.

a

time

•

IEDOHG02 - entered by a BALR from a TCAM subtask to remove a
delay request element from the time delay queue.

time

•

IEDOHG03 - entered to remove a time delay request element from the
tiDe delay Queue when a special delete element is tposted to the
Delete Time Delay QCE by an attached task.

•

TIMEEXIT - entered as a subroutine of the as Interrupt routine to
notify the Time Delay subtask that a specific time of day has
arrived.

to

place

a

time

delay

!unctions: ~his subtask receives elements that request notification
upon completion of a specified time interval.
The Time Delay subtask
maintains these elements o~ the time delay Queue, which is a chain off
the link field in bytes 29-31 of the Time Delay QCB.
The subtask
removes request elements from the queue by deleticn requests or when
the indicated time interval has elapsed.
When the Time Delay subtask receives a request to place an element
on the time delay queue, it issues the os TIME macro to qet the
current time of day.
The number of seconds in the interval specified
in the element is added to the time of day, and the result overlays
the interval field in the time delay request element.
The Time Delay
subtask then places the request element on the time delay queue in
order by time of day - from the time closest to the current time to
the time farthest away.
When the Time Uelay suttask receives a request to immediately
remove an ele«ent from the time delay queue, the subtask searches the
queue for the specified element.
If the element is found, it is
removed.
For a removal request from an attache~ task, the Time Delay
suttask tposts the special delete element back to the indicated QCB.
(If the element to be removed is an LCE or a QCB the subtask does not
have to search the queue to find out if it is present - there is a bit
in the element that indicates whether ~t is cn the queue.)
Proqram Orqani2ation

201

Once a time delay request element is either added to or deleted
from the time delay queue, the Time Delay subt~sk beqins examininq the
queue for elements that are eliqible for removal.
since the elements
are on the queue in order by time, each can be examined, in order, and
removed if its specified time is equal to or less "than the curr~nt
time of day.
To remove an element, the Time Delay subtask tposts the
request element to a aCB, the address of which is pointed to by the
offset byte ef the request element.
To the subtask that requested a
time delay, this tpost siqnifies that t~e requEsted time interval has
~lapsed.

After all request elements eliqible for removal have been removed
from the time delay queue, the Time Delay suttask issues a STIMER
macro for the time of interrupt fer the first element on the queue and
then exits.
(~he Time Delay subtask issues the STIMER macro for this
first element only once.
If this same element is ,still first on
subsequent passes through the subtask, Time Delay does not reissue the
macro.}
This causes the as Interrupt routine to qain control when
that specified time arrives.
The as Interrupt routine issues an
interrupt and the OS Supervisor passes control to the TIMEEXIT
subroutine.
The purpose of the TIM!EXIT subroutine is to place the Time Delay
on the disabled ready queue by tpostinq it to itself.
This is
acco~plished via the AQCTL SVC 102.
(Since the TTMEEXIT SUbroutine is
an enabled interru~t routine, the SVC must te used to place an element
on the disabled ready queue.)
The QCB is qiven an extremely high
priority so that when the TCAM Dispatcher reqains control and merges
the ready qU9ues,this element will probably be on top to ~ctivate the
Time Delav suttask.

QCB

When the Time Delav subtask qains contrel and its own CCB is on
the ready queue, the suttask immediately starts examining the time
delay queue to remove elements.
Unless it has already been removed by
a special delete request, the first element on the queue is the
element for which the STIMER macro yas issued.
The Time Delay subtask
examines and removes elements from the queue, as described previously,
until it reaches either an element that requires an STIMER macro or
the end of the queue.
The Time Delay subtask exits to the TCA~ Dispatcher.
If it was
entered by a EALF instruction, the subtask branches to the address in
reqister 14; otberwise, it branchee to the tSFDISP entry point of the
Dispatcher.

202

The format of the tiroe delay request element is as follows:
Offset

o
Time Delay QCB Address (in the AVT)

+4
Priority

+8

I

Dispatcher Link Field

Reserved

+12
+16
Time Interval
(In Seconds)

+20

I

Offset
Byte

Reserved

+24

Reserved·
Recycle
Flag
Byte

Reserved

+28
Reserved

I

Time Delay Queue Link Field

The Qifs~! llte is the offset into an element to a wcrd cf which the
low-order three byte~ is the address of the OCB to which the element
is to be tposted upon expiration of the time delay interval~ This
offset byte is equal to X'OO' if the request element is a QCB, X'14'
if the reauest element is an LCE, or X'08' if the request element is
a special element, a buffer, or from check~cint.
The recycle flaq
byte has only ene bit defined: if bit 7 is on and this is a
Destination OCE, IEDOFG has issued a request to recycle this element
on the time delay queue for an additional 12 hours. The flag byte-has
only one bit defined:
if bit 6 is on, the element is on the time
delay queue; if tit 6 is off, the element is net on the queue.
This
bit in the flaq byte is set for all elements on the time delay queue,
but it may be checked only for the LCE, QCE, or checkpoint. In other
elements. this field has other definiticns.
The presence of two link fields in the time delay request element
allows the elerrent to be on the time delay queue and tposted to
another subtask simultaneously. !he link field in bytes 5-7 is used
when the element is on the TCAM rispatcher ready queue.
The link
field in bytes 29-31 is used wben tbe element is on- the time delay
queue.
The
tbe ~VT
a TCAM
element

time delay request element is t~ost€d to the Time Delay QCB in
when an attached task needs to im~lement a time delay.
When
subtask needs to request a delay, it passes the address of the
in reqister 1.

!he Time Delay OCB occupies the first three words of the time
delay element at AVTDELYE in the AVT. At asserebly time the time delay
queue link field of this element points back to the element itself.
As request elements are received, the Time Delay· subtask chains the
elements to ferm the time delay queue by usinq the link address field
Proqram Orqanization

203

in bytes 29-31 ef each request element. The last element of the chain
always points back to the time delay ele~ent in the -AVT.
The format ef the special delete element

i~

as follows:

+1

Offset

o

Reserved

Delete from Time Delay QCB
Address{in AVT)

Priority

Dispatcher Link Field

Reserved

Address of Element to be
Removed from Time Delay Queue

Reserved

Address of QCB to Receive this
Element after the Request for
Removal is Serviced

+4

+8
+12

The special delete element is tpo~ted to the Delete from Time Delay
OCE
(AVTCPFME)
in the AVT when an attached task needs to remove an
element from ·the time delay queue.
When a TCAM subtask needs to
remove an element, it passes the address of the element to be removed
in reqister 1 and then issues a EAIR to IEDCRG02.
External Routines:
•

IBAQPTOO - CS Time SVC Routine (SVC 11) - to q€t the current
of day.

•

TEAQSTOO - CS TTIMER and STIMER
time delay.

•

TGC102 - ACCTL SVC 102 Routine - to t~ost the Time
itself when a specified time interval elapses.

•

Tr,G019RP or IGG019RO - TCAM Dis~atcher - the DSPPRIOP entry point,
to move the scheduler STCB~ the DS~POS~F entry point, to put an
element on the ready queue.

Tables/Work Areas:
Attributes:

~outine

(SVC 47) -

to

time

request

Delay

QCB

a
to

AVT, OCE.

Fefreshable, reusable, resident,

~roblem

proqram mode.

System Delay Suttask (Chart HI)
Module Name:

TEtCHI

noint:
TEDORI
activated by
Operator Contrel control module (lEtOCA)
system delay.
~ntry

the TCAM Dispatcher when the
receives a request for a

Function:
This module causes the system to cease line activity for
the number of seccnds specified on the INTVAL=inteqer operand of the
INTRO macro. 1he System Delay suttask sto~s line activity by holdinq
all the LCBs on a system delay queue and then placinq a request for
204

the specified delay interval on the time delay queue. When the delay
has elapsed, the System Delay subtask frees each ICE to. reactivate the
lines.
The System relay subtask receives centrel from the TCAM Dispatcher
when 6ne of three possible elements is en the ready queue and tposted
to the System Delav QCE. The type of element indicates the phase of
processinq in which the System Delay subtask is currently o~eratinq.
The three types of elements are:
1.
2.
3.

The system delav request element
An LCE
The System relav QCE

The MODIFY INTERVAL=SYSTEM operator control cemmand causes the
operator contrel Chanqe Interval Type routine (IEDQCZ) to tpost the
system delay request element (in the Operator centrel AVT)
to the
System Delav OCE.
This request element has a PRISYStL priority (see
the TPRIOF macro list in A~~endix C), and this ~articular element is
identified by the System Delay subtask by that unique priority.
Upon
recoqnizinq the svstem delay request element, the System Delay subtask
sets the delay tit, AVTDLAYN in AVTEI~1 and initiates deactivation of
the line activity on each non-dial
ICE in the TCAM system.
The
subtask finds the LCBs by tracinq the DEB te DCB to ICE to LCE chain
of pointers.
The System Delav suttask stc~s line activity bv pottinq
any free LCE on the system delay queue, by issuinq an IOHALT macro on
the active contention lines, and by modifyinq the channel ~roqrams to
cause 1/0 interru~ts on the active Auto Poll lines~
As each LCE is
examined.
the System Delay subtask increments a counter, which at the
end of the operation is equal to the total number of active LCBs in
the system.
When an I/O interrupt on an LCB occurs, the Line End Appendaqe
qains control. The Line End Appendaqe branches te the ap~ropriate
receive scheduler,
which t~csts the LCE to the System Delay QCB when
the AVT system delay bit is on. In this way, each ICB,
as its line
activity sto~s~ is tposted to the System Delay QCB. The System Delay
subtask, upon beinq activated bv an LCE, chains the LCE on the system
delay queue and decrements the LCB counter by one~
Then, if the ICE
counter is net equal to zero, the subtask exits to the TCAM
Dispatcher.
When the LCE counter is equal to zero, every non-dial LCE
in the system is on the system delay queue.
At this point the System
Delav subtask places the System Delav QCB on the time delay queue to
start timinq the system delay.
After the Time Delay subtask (IEUOHG) has observed the specified
interval, it ~uts the System Delay QCB on the ready queue.
This
causes the TCAM Dispatcher to activate tbe System Delay subtask with
the System Delay OCB as its element. In tbis case, the System Delay
suctask clears the system delay bit and reactivates the system line
activity by tpostinq each LCE to itself. The subtask exits to the
TCAM Dispatcher, which places all the LCBs cn the ready queue.

Proqram Orqanization

205

~xternal

Routines:

•

IEDOHG01 - Time Delay suttask - to add
delay queue.

•

IEDQHG02 - Time Delay suttask - to rerrove an element from the time
delay queue.

•

CS IOHAIT routine

•

IGG019RP or IGG019RO - TCAM Dispatcher - the DSPPRIOR entry point,
to move the scheduler STCB.

•

os

W~O

an

element

(SVC 35) - to write a message.

Tables/Work Areas:

OCB, LCE, AVT, DCE, DEE, ICB.

Reusable, resident,

stop Line I/O Subtask
Module Name:

the

time

(SCV 33) - to stop the line.

routine

Attributes:

to

~roblem

proqram mode, nonrefreshable.

(Chart HK)

IFDCHK

Entry Point:
IEDCHK - activated by the TCAM Dispatcher when the
Resident Operator control ·module (IEDQCA) receives a request to stop
the activity of a line or line group.
Functions:
This subtask provides the IIC handling that is necessary
to effect a step line function.
The sto~ line I/C subtask stops line
activity bv freeing the LCBes) for the indicated line or line group.
The VARY CFFTP
(C or I) and the HAI~ operator centrel commands
cause the Resident Operater Centrol module to activate the sto~ Line
routine
(IEDOCV).
The stop Line routine builds a step line request
element in the operator control work area and t~osts this element to
the
OCB for the stop Line I/O subtask.
The LCE address is in the
request element.
When the step line request element is the highest priority element
on the ready queue, the TCAM Dispatcher activates the stop Line I/O
subtask.
This subtask qets the associated LCE address from the
request element.
If an LCB is on the time delay queue, the subtask removes the LCB
from
that queue and places the address of the stop line request
element in the ICE.
If the LCB is already free (tposted to itself),
this subtask set the LCB status byte (LCBSTAT11 to zero and then
branches to the exit code.
If an ICB is not free, the stop Line T/C subtask turns on the nonimmediate bit in the LCB status byte.
For an Auto Poll LCE,
the
subtask puts a NOP in the channel program and branches to the exit
code; for a BSC LCB with no prepare on the line, the subtask branches

206

to the exit code. If the result of a test-and-set on LCETSTSW is zero
or if the line is busy and is sendinq, the subt~sk issues an IOHALT
before branchinq to the exit cede. In all ether cases the subtask
branches to the exit code.
Qhen the stop Line I/O subtask has modified ~ channel proqram br
issued an IOHALT to stop line activity, the subtask is ieactivated to
complete the ~rccessinq of the LCE for that line. When an I/O
interrupt occurs on an LeB, the Line End Appendaqe gains centrol. The
Line End Appendaqe branches to the appre~riate receive scheduler,
which upon findinq the non-immediate bit en in the tCB activates the
stop Line I/O subtask. In this case, the stop Line I/O subtask
examines the ICE to determine the type of line. For a dial line on
which an EXCP has already been executed, the subtask turns off the LCE
EXCP byte and branches to the exit code.
When an EXCP has not been
executed on a dial line, this suttask turns on the' EXCP byte, sets a
DISABLE in the channel proqram area, clears LCBTTCIN, turns on the
test-and-set switch, sets the neqative res~cnse to poll bit, issues an
EXCP, and then exits to the TCAM Dispatcher.
Bxternal Routines:

•

as EXCP rcutine (SVC 0) - to start channel activity.

•

OS IOHAIT rcutine (SVC 33) - tc stop a line.

Tables/Work Areas:

AVT, LCE, CCW, DCB, DEE, ICE.

Attributes:
Serially
problem proqram mcde.

reusable,

MESSAGE HANtLING - BUFFER

refreshatle,

MANAGEMEN~

enabled,

resident,

MODULES

Puffer Manaqeroent Module {Chart GAl
Module Name:

IEDOGA

~ntryPoints:

•

IEDQGA - Euffer Request rcutine - to handle a tuffer request
the ~CAM ris~atcher.

from

•

IEDOGB - Euffer Return routine - to handle a returned buffer
the TeAM Dis~atcher.

from

•

TEDOGD - Euffer Association routine - to handle buffer association
at the end of OUTBUF processinq in an MH and from IEDQGA and
IECOGE.

Proqram

Orqani~ation

207

Functions:
The Buffer Manaqement module perfor_ms three different
functions, and in each case the output is different.
The functions
are discussed bere accordinq to entry point.
~

Buffer Bequest

If the Buffer Manaqement module is entered at the IEDQGA entry
point, the Buffer Request routine either assiqns the requested buffers
or queues the request to be satisfied later. The buffer request is in
the form of an FFB pointed to by reqister 1. There are four types of
requests that can arrive, and each is handled as follows:
1.

Initial request from a line - if units are available, they are
chained toqether to form the requested number of buffers. CCws
are built fer each unit, and the ERE with the buffers chained from
it is tposted to the Activate OCB. If units are' not available,
the BFB is ~lacea in the element chain ef the Buffer Return QCB by
priority.

2.

!.FB from an a~plication proqram or operator control - if units are
available, they are chained to ferm the requested number of
buffers and the ERE is tposted to a s~€cified QCB. If units are
not available, the FRB is placed in tbe element chain of the
Buffer Feturn OCB by priority.

3.

First PCT request - if units are availatle, they are chained into
the requested number of buffers. CCWs are built in each unit, and
the buffers are available for I/C. If units are not available,
the ERE is ~laced in the element chain ef the Buffer Return QCE by
priori t y.

4.

Subsequent FCT request - the FRB is chained by priority
element chain of the Buffer Return QCE.

into

the

If the routine has an ERB to tpost, it returns to the DSPPOST
entry point of the TCAM Dispatcher. If the E~E is to be inserted into
the element chain of the Buffer Return OCB, exit is to the DSPPRIO
entry point of the TeAM Dispatcher. Otherwise, Buffer Manaqement
returns to the rSPDJSP entry point of the 7.C~M Dispatcher.
•

Buffer p'eturn

If the Buffer Manaqemen~ module is activated at the TEDQGE entry
point, its functien is to return buffers to the buffer unit pool. The
handlinq of the tuffers depends en whether there is an ERE waitinq in
the element chain of the Buffer Return OCB.
1.

208

If there is no ERB waitinq for a buffer, the units that make up
the buffer are ~laced in the Buffer ReQuest QCB element 'chain (the
buffer unit peol).

2.

If an EFB is waitinq for a buffer, the necessary number of units
are chained toqether te ferm one tuffer.
If the ERE bas a low
priority (net initial, first PCI, or disk request), CCWs are built
for each unit of the buffer and the tuffer is included in the
channel ~rcqram for the lire.
If the tuffer request was fully
satisfied, the EBB is dropped from the Euffer Return QCB element
chain:
otherwise,
the ERB is rechained ~y priority.
If the ERB
has a hiqt priority, action is perfermed as described in the
Euffer Fequest discussion.

Exit from the Buffer Return ~ortien of the Buffer Manaqement
module is handled exactly as discussed under Buffer Request.
•

Buffer Asscciation

If the Buffer Manaqement module is activated at the IEDQGD entry
point, its function is to build CCWs for data transfer in each unit of
a buffer.
All units of the buffer(s) have READ or WRITE and TIC CCis
built in the first three words of the unit.
If the request is other
than an initial request for rece1v1nq, the tuffer(s)
is included in
the channel proqram for the line.
~he
Buffer Association routine of Buffer Management exits to the
routine that called it in the case of Buffer Request or Buffer Return;
or to DSPDTSP in the TCAM Dispatcher if activated by the OUTMSG macro
expansion in ME.

External Routines:
•

TGG019PB or IGG019RO - the TCAM Dis~atcher - inserts by priority
either on the ready queue (DSPPOS~R) or cn the element chain of a
specified ceB (DSPPRIORl: or puts the unit first on the buffer
unit ~col (DSPLIFOR):

•

OS EXCP routine (SVC 0) - to start channel activity.

Tables/Work Areas:
Attributes!
Transparent
Module Name:

DCB, tuffer prefix, LeE, OCE, AVT.

Resident', enabled, refreshable, reusable.
Trans~issien

CCW Euildinq Routine (Chart GT)

IEDQGT

Entrv ~oint:
IFDCGT - activated by a branch at the end of
processinq when a messaqe is to be sent in transparent mode.

OUTBUF

Functions:
This routine builds in each tuffer unit the CCWs that are
necessary to send transparent data in trans~arent mode in the correct
block size tc a terminal.
This routine also constructs in the LCB a
sequence to write DLE/E~E and to read res~ense.

Proqram Orqanization

209

Tn each unit the Transparent ~ransmission eew Euildinq routine
places a CCW to write the first ~ortion of th~ unit in the block that
is to include the unit. The unit that contains the last byte of data
of the first tlock in a transmission builds a TIC command to the LCE
ccw to write the tLE/ETB sequence.
The ICB channel program area
contains the values for the number of byt~s left to write in the
current unit, the address of the unit, and the value formerly in the
TIC field of the unit. If the current block is not the first block of
the transmissien, this reutine places a flag to indicate this
situation·in the unit·that contains the last byte of data for the
current block and places the numcer of bytes left to write from this
unit in the write CCW OP code area.
If all the units to write out the next clock are not available at
read response time, Line End A~penda~e treats the condition like a
channel proqram check and makes the channel execute a write sync loop
that writes SYNC characters on the line. When the required units are
available, normal transmission is resumed - the write sync loop TTCs
to a write DLE/STX sequence and to the next unit to be transmitted.
~fter
the necessary CCWs are built, the Trans~arent Transmission
CCW Buildinq routine branches back to the calling routine.

'External Routines:

None.

Tables/Work Areas:

AVT, LCE, SeE, tuffer prefix, ecw, DCB.

Attributes:
mode.

Reusable, refreshable, enabled, resident,

~roblem

proqram

PCT Appendaqe (Chart RN)
Module Name:

IGGC19RN

Entrv Point: IGG019RN - entered from ros when a proqram-controlled
channel interruption occurs. When the pcr flaq in the ecw is on and
an interrupt results, PCI Appendaqe qains centrel.
Functions: The PCT Appendaqe frees buffers from the line operation
iust completed and, if ADD is specified in the line qroup DCB, obtains
additional tUffers.
When a PCT interrupt occurs on rece~v1nq, the Appendaqe locates
the CCW on which the PCT occurred, and if the PCI is for the first
buffer for a read, PCT Appendaqe checks the ID sequence in the
Terminal Table entry (TERMTD), if applicacle. For ESC terminals the
appendaqe checks the buffer for transparency by executinq a EALR to a
subroutine in the line End Appendaqe.

210

On an initial PCT no buffers have been ~rocessea by the channel
proqram.
If this is not an initial PCl on sendinq, PC! Appendage
tposts the buffers that have already been processed bV th~ channel
proqram to the Buffer Return QCE. If this is not an initial PCI on
receivinq, the tuffers already processed are tposted to MH. If ADD is
specified in the lineqroup DCB, PCl Ap~endaqe (for both initial and
subsequent pels on sendinq or receivinq) requests additional buffers
from the appropriate QCB (Buffer ReQuest or Disk I/Ol. If the ERB is
already tposted, the count of requested buffers is increased.
When PCl Appendaqe completes
complete and exits to rose

its

functions,

it

~osts

'the

MCP

External Routines:
•

IGG019RO - Scan subroutine of the line End Appenqaqe - to check
tuffer for a ESC terminal for trans~arencv.

•

TESTDSP OS Task Removal rcutine
activated when TCAM is
operatinq in a multi~rocessinq envirenment tc stop the MCP from
executinq in the other active CPU~

a

Tables/~ork Areas:
CCW, DCP, AVT, tuffer prefix, LeE, Termname Table,
Terminal Table entry.

Attributes:
mode.

Reusable,

refreshable,

disabled"

resident,

supervisor,

MESSAGB HANDLING - CONTFCL ROUTINES
User Interface Foutine (Chart UI)
Module Name:

IEDCUI

Entrv Point:
rEDOUI
functional MB routine.

called from an MH macro Expansion or from a

Functions: The User Interface routine is the common module throuqh
which MH' macro expansions link to functional MH routines. This
routine saves the userreqisters, initializes q~neral
reqister
contents to cemmonlv needed values, finds the address of the routine
to be linked te, and exits to it.
The User Interface routine is also used bV certain functional MH
rdutines to provide initialization ana linkage to lcwer-level MH
routines.
ln coniuction with the Return Interface routine
(IEDQLM), User
Interface provides level-independent reQister protecticn between MH
levels.

Proqram Orqanization

211

This routine performs the followinq functions:
•

Saves reqisters 2 throuqh 12 and 14 in the save area pointed to by
reqister 13.

•

Gets the AVT address from the CVT. The routine then finds address
of the current buffer in the AVT field AVTAtBUF; the address of
the LCE in the PRFLCB field of the buffer prefix; and the address
of the current SCB in the LCBSCBA field of the LCB.
(If entry is
to the Binary Search routine, the User Interface routine only qets
the AVT addressl.

•

Gets the address of the MH VCON table from the AV!MSGS field of
the AVT.
The User Interface routine takes the index to the
address of the routine from the first byte of the input parameter
list, adds the index value to the MH VCCN table address (AV~MSGS),
and places the result in reqister 12. The User Interface routine
then exits to the address in reqister 12.

External Routines:

None.

Tables/work Areas:
VCON Table.

AVT, CVT, cuffer to te

Attributes:
proqram mode.

~eturn

Reentrant,

refreshable,

processed,
enabled,

LeE,

resident,

seB,

MH

~roblem

Interface Poutine (Chart LM)

Module 'Name:

TEDCLM

Entry Point: IEDCLM - called by a functicnal MH routine to return
the callinq routine.

to

Functions:
The Return Interface routine is the coromen module throuqh
which functional MH routines return to MH.
This routine restores
reqisters 2 throuqh 12 and 14 from the save area pointed to by
reqister 13, and exits to the address in reqister 14.
~he Return Interface routine is alsc used
to
functional MH routines from lower-level routines.

External Routines:

None.

Tables/Work Areas:

None.

Attributes:
proqram mode.

Reentrant,

STARTM'fi suttask (Chart AA)
Module Name:
212

TEDOAA

refreshable,

enabled,

return

to

certain

resident,

problem

Entry Point:
I!DQAA01 - activated by the TCAM Dispatcher when the
STARTMH macro is coded in an MH after tbe tis~atcher tposts a buffer
to the STAFTMH CCE~
Functions:
This subtask performs the
initialization
required ty the messaqe handler to precess messaqes.

functions

Upon entry, the S~AR~MH subtask places the address of the buffer
1ust tposted by the Dispatcher into the AVTAEBUP field in the AVT.
If
the 'cancel' flaq is set in the prefix status byte,
PRFCNCLN in
PRFSTAT1, the subtask branches to the input t~xt processinq portion of
the subtask at the TEXT label.
If entry is to be send side of MH, ~revided the terminal is in
lock mode, the subtask turns off the prefix 'lock' bit and increments
by one the ceunt of the outstandinq lock requests in the LCE.
Next,
the STARTMH subtask determines whether the tuffer is a
header or a
text buffer.
The subtask also determines whether the tuffer has been
received or is to be sent and branches to the appro~riate section of
the subtask.
The portion of the subtask that precesses header input buffers
first initializes the prefix oriqin field (FRFSBCE) from the LCB.
The
subtask then cleans the prefix sequence-in field (PFFSEQIN), the
seB
priority field (SCBPRI), and the SCB cutoff count field (SCBEKFCT) to
zeroes. The subtask initializes the prefix scan pointer (PRFSCANl
to
point to the last byte in the prefix er, if reserve characters are
used, to the last reserve character. The subtask next clears the SCB
destination OCE field
(SCBDESTOl
to zero, and if the oriqin is an
application proqram, branches to the MH via the exit portion of the
subtask at the EXIT label.
On the ether hand, if the oriqin is defined as an EeA sequence,
the STAR~MH subtask branches to the Skip Forward and Scan routine
(IEDQAI)
to determine whether an EOA sequence is in the buffer.
On
return, if there is an EOA sequence, the suttask increments the scan
pointer to peint to the last byte of the tuffer.
If the source is an
IBM 1030 or an IBM 2260 Remote terminal, the subtask increments the
pointer by ODe byte to point to the addressinq character that follows
the ~OA sequence.
If the terminal is in lock mode, the suttask turns on the prefix
'lock' bit, Qets the index to the destinaticn from the LCE, and places
it in the prefix destination key field (PF.FDES~).
The subtask sets
flaqs in the LCB to indicate a tpost is pendinq and passes the
destination key to the Termname Table code (IEDQTNT), which returns
the address of the Terminal Table entry.
The STAFTMH subtask then
moves the Destination QCB address from the Terminal Table entry to the
SCB Destination CCB field and exits to the MH via the EXIT portion of
the subtask.
If the terminal is net in lock mode,
tbe STAF.TMH subtask next
examines the LCE to determine whether there is a STOPIINE request
currently pendinq on the line.
If so, the subtask bypasses the OnLine Test processinq and exits to the MH via the EXIT label.
Otherwise, the suttask performs the followinq On-Line Test processinq.
?roqram Orqanization

213

The STARTMH subtask checks a bit in the ICB to det~rmine whether
the line is ~inarv synchronous or start/stop~. For start/stop lines
the subtask branches to the Skip Forward and Scan routine (IEDQ!I)
to
ascertain whether an On-Line Test sequence is in the buffer. On
return, if this is .an Cn-Line Test messaqe, the ~uttaskdetermines
whether On-Line Test su~port is in the TCAM system, whether the OnLine Test maximum load has not been reached,
and whether the test
request messaqe is only one buffer lonq.
If any one of these three
conditions is net true, the subtask indicates an error in the SCB and
exits to the ME via the EXIT label.
If all of these conditions are
found, the suttask sets in the buffer a byte to identify the oriqin as
binary svnchroncus or start/stop and sets in the ICB a
'no source'
indication (AVTEFF in LCBTSTSW) and a n~qative response flaq (LCBNEGRP
in LCESTAT21. Then the subtask t~csts the buffer to the On-Line Test
OCE via a branch to the DSPPOST entry peint in the TeAM Dispatcher.
The portion of the STARTMH subtask that processes text input first
initializes t.he prefix oriqin field
(PRFSBCE)
frcm the LCE.
The
subtask then qets from the DCB (DCBRESER+1) the number of reserve
characters and places that number in the ICE (LCBSIZE).
The subtask
initializes the scan pointer to point to the la~t byte of the prefix
or, for reserve characters, to the la~t reserve character.
If the
buffer has a lenqth of zero, the subtask exits to MH via the EXIT
label. Otherwise, the subtask determines wtether translation is to be
performed and if se, branches to the Translate Buffer routine (IEDQAWl
to translate the tuffer. On return, the suttask puts the ccntents of
the SCB multiple-tuffer-header-entrv field (SCEMEHEN, into reqister 1,
decrements it bv ene, and examines the result.
If register 1 contains
zero,
the sutta~k returns to the MH via the EXIT label. If the
contents is not zero,
the. subtask qets the address of the User
Interface routine
(IEDQUI1, sets a neqative value in register 0, and
exits to MH via the MBHEXIT label.
The portion of the STARTMH suttask that processes an output header
buffer updates the FEFO pointer in the Destination QCE roCEFFEFO) from
the FEFO pointer in the SCE (SCBFEFO) and turns off the 'currently
sendinq' flaq in the QCE.
If the destination is in lock mode, the LCB
is in initiate mode, or the buffer is zere-Iength and the send error
is a text transfer error, the subtask does not update the QCE.
If the destination is in lock mode, the suctask determines whether
both 'the 'leek' and 'extended lock~ bits in theSCE are on and if they
are, turns them beth off. the su~task qets from' the prefix scan
pointer field (PRFSCAN) the number of ~eserve characters in the buffer
and places that number in the LCEISZE field of the LCE.
The subtask
sets this field tc zero for a zero-lenqth tuffer.
Next, the subtask
initializes the scan pointer to point to the last byte of the prefix
or, if reserve characters are present, to the last reserve character.
If the buffer has a lenqth of zero, the StABTMH subtask returhs to
MH via the EXIT label.
For a positiv~-length tuffer, the subtask
branches to the Termname Table code (IEDQTNT) to get the address of
the Terminal Table entry for the destination. On return, the ~ubtask
increments the output sequence numter bv ene and returns to MH via the
EXIT label.

214

The portion of the subtask that processes output text buffers sets
the reserve characters count in the LCB tc zero, initializes the scan
pointer to pcint to the last byte in the ~refix, and branches to the
text input processinq portien of the subtask to check for a zerolenqth buffer.
On a
normal entry, the exit part of the subtask, at the EXtT
label, first sets reqister 0 to zero.
Cn a multiple-buffer-header
entrY, at the MBHEXIT label, reqister 0 already contains zero and is
not chanqed.
Next the subtask places X'1000'
in reqister 2 and
computes the messaqe handler entry address.
~he
subtask checks
reqister 0 and if it is neqative, branches to MH with a return code of
X'04' in reqister 15.
Otherwise, the subtask determines from the LCE
whether the line is sendinq orreceivinq and ~laces a X'01' or X'08'
return code, respectively, in reqister 15.
Bxternal Routines:

•
•

IEDQUI- User Interface routine
to reenter
routine and to activate the followinq modules:
IEDOAI sequenc~

Skip Forwaru and Scan routine in the buffer.
~ranslate

to

Puffer routine -if required

an

uncompleted

search
tc

for

an

EOA

translate

the

•

IEDOAW buffer.

•

IEDOTNT- Termname Ta1:le code - to qet a terminal entry addr.ess.

Tables/Work Areas:
AVT, buffer currently beinq processed,
DCB, MH VCON Tatle, OCB, Termname Table, Terminal Tab~e.
Attributes:
Serially
problem proqram mcde.

reusable,

refreshable,

enabled,

SCB,

LCE,

resident,

Incominq/Outqoinq Messaqe Delimiter Routine (Chart A4)
Module Name:

IEDCA4

Entrv Points: IFDQA401 - from the INMSG macro expansion to tpost the
buffer to the proper QCE, or from the OUTMSG macro expansion to pass
the buffer to either the Buffer Association routine
(IEDQGD)
or the
Transparent CCW Buildinq rO)Jtine (IEDQG'I).
~unctions:
~he
functicns of this module differ accordinq tc whether
it is activated from the macro expansion of the INMSG or of the OUTMSG
macro.

The format of the input macro-qenerated parameter list pointed
by reqister 1 is as follows:

Proqram OrQanization

to

215

The Incominq/Outqoinq Messaqe Delimiter ~outine first determin~s
whether the current buffer is the last buffer of a message and, if it
is, stores the address of the INMSG/OUTMSG parameter list in the
SCBMACR field ef the SCB.
If the PRFDUPIN bit of the PRFSTAT1 field
is indicatinq that the buffer is a duplicate-header buffer, the
routine turns off the PFFDUPLN bit and branches to its input or output
processinq section, for receivinq or sendinq functions,
~espectively.
If the buffer is a header buffer but net a duplicate-header
buffer, the Incominq/Outqoinq Messaqe Delirriter routine places the
address of the scan pointer in the SCB (SCEMESSA+3).
If the scan
pointer offset is less than 255, the routine places the true cffset in
the SCB~ otherwise, it places a default value of 255 there.
If the
scan pointer indicates a locaticn bey~nd the end" of the last buffer,
the routine sets the 'incomplete header' bit (SCEHDRRN in SCBERR1)
in
the SCB and tranches tc its input or output processinq section.
The
routine does not set the 'incomplete header' bit for TSO tuffers.
•

Input Processinq

The IncominqjCutqoinq Messaqe Delimiter routine turns off the
prefix
'cancel'
bit
(PRFCNCLN in PRFSTAT11 and then checks the seE
destination queue field (SCBDESTQ) to determine whether a destination
has been found
for this messaqe." If the field contains zeroes, no
destination has teen found.
In this case,
the routine ~laces the
address of the Euffer Bequest OCE in the SCBDESTQ field and bypasses
multiple-route prccessinq:
If a destination has been found,
the Incominq/Outqoinq Message
Delimiter routine performs multiple-route processinq, provided the
buffer is a header buffer and the SCBMRFSD field in the seE contains
a character stored in it bv the forward function.
When these two
conditions are met, the routine links tc the Address Finder routine to
qet the address of the start of data in the buffer, then it enters a
loop that links repeatedly to the Buffer step routine (IECQAXl to scan
the buffer for the X'DF' char&cter.
On return, if the character is
found, the routine replaces it with the character stored in the
SCBMRFSD field and places the offset to the character in the SCBMRFSD
field.
If the X'DF' character is net feund, the routine clears the
SCBMRFSD
field to zeros,
thereby concluding the multiple-route
processinq.
If the buffer is not the final buffer of the message,
or if the
loqical end-of-messaqe indicator is net set in the TIC field, the
Incominq/Outqoinq Messaqe Delimiter routine moves the restination QCB
216

address from
the SCBDESTO field to the first werd of the buffer and
places a priority of X'FS' for a header buffer or X'E4'
for a text
buffer in the tuffer.
If the buffer is the final buffer for a
messaqe, or if the loqical end-of-messaqe
indicater is set,
the
routine places the address of the Buffer Dis~osition QCB in the first
word of the buffer and sets the pricrity to X'DP'.
1f this is not a TSO buffer,
the Incominq/Outgoinq Messaqe
nelimiter routine qets from the LCEISZE field in the LeE the number of
reserve characters remaininq in the buffer and puts that number in the
prefix scan pointer field
(PRFSCAN).
~he
the routine tposts the
buffer via the TeAM Dis~atcher at the
DSFFCST label.
For a TSO
buffer,
the routine exits immediately to the Dispatcher (DSPPOST) to
tpost the buffer.
•

Output Processinq

For output processinq,the Incominq/Cutqoinq Message telimiter
routine first determines wbether the buffer has a lenqth of zero.
If
i t does, the routine tpo~ts the buffer to the Buffer Disposition QCB
by tranchinq to the DSPPOST entry point in the TCAM Dispatcher.
If the tuffer does not have an indicated lenqth of zero, the
Incominq/Outqcinq Messaqe Delimiter routine removes from
the end of
the buffer all units that do not contain data.
To determine whether
there are any empty units at the end of the current buffer,
the
routine passes the offset to the last tyte of data in the buffer,
qotten from the PFFSIZE field, to the Address Finder routine (IEDQAl).
~he Address Finder routine returns the address of the
unit in which
the last byte of data is located.
Then the Tncominq/Outqoinq Messaqe
Delimiter routine checks the TIC field of this unit to determine if it
is the last unit.
If this is the/ last unit of the buffer there are no
empty units at the end of the current cuffer.
If there are empty units, the Incominq/Outqoinq Messaqe Delimiter
routine enters a loop that follows the chain of units, frem the last
unit that contains data to the last empty unit,
countinq the empty
units.
When
the routine finds the last empty unit, it resets the
'number of units' field in the buffer prefix
(PRFNBUNTl
to indicate
only the number of units containinq data.
It then resets the TIC
fie11 of the last data unit to indicate that it is the last unit of
the buffer,
theretv removinq the empty units from the cuffer.
The chain of empty units is now considered a separate buffer.
The
Incominq/Outqoinq Messaqe Delimiter routine places the number of empty
units into the PRFNBUNT field
of the first empty unit, puts the
address of the Euffer Return OCE into the first
word of the first
empty unit,
sets a priority of X'E4' and t~osts the empty buffer by
branchinq to the DSPPOSTF entry point in the TCAM Dispatcher.
The Incominq/Outqoinq Messaqe Delimiter routine examines the
Destination OCB r the address of which is in the SCBDES~O field of the
If
SCBr to determine whether it is a OCR for an application proqram.
it is an applicaticn proqram aCB, the rcutine trosts the ~uffer to the
Read-ahead aCE,
the address of which is in the PFRAQCE field in the
process entry work area.
The address of the process entry werk area
Proqram Orqanization

217

is in the ~FMS~AT field in the ~erminal Table entry for the
application proqram.
The address of the Termirial Table entry is in
the QCBPRFN field of the application program QCH.
The routine places
the address of the Read-ahead QCB in the first word of the buffer and
sets a priority .of X'DC'.
Then the routine pa~ses in the PRFSCAN
field of the tuffer prefix the number of reserve characters remaining
in the buffer and tposts the buffer via an exit to the DSPPOST entry
point of the TCAM Dispatcher.
If the destination is not an applicaticn program, the message is
to be sent te a terminal.
If the header buffer of the message
contains a hardware EOA indication, the routine logically removes the
~OA before sendinq the message.
If the buffer is not a header buffer,
if the MSGFCRM function has inserted line centrol, or if this is a TSO
buffer, no FCA indication is present.
For inserted line control, an
STX character may te present and is left in the buffer.
The Incominq/Outqoing Message Delimiter routine passes to the
Termname ~able code
(IEDOTNT)
the key to the destination Terminal
Table entry and, en return, receives the address of the Terminal Table
entry. The routine qets the Device Characteristics Table index from
the ~BMCqCIN field in the Terminal Table entry.
The routine uses this
index to find the entry in the Device Cbaracteristics Table for this
~estination terminal, from which it can determine the specific device.
If the device is an IBM 2260 Remote or an IBM 2760 in tete-a-tete
mode, no EOA indication is present.
A STX character is present and is
left in the buffer.
At this point, the Incominq/Outqoinq Message Delimiter routine
gets the entry in the Special Characters Tatle for this device from
the DCBSCTAD field in the DCB.
If this field contains zeros, there is
no Special Characters Table entry for the destination.
Therefore, no
EOA indication is defined for the destinaticn and no EOA is present.
If there ~s a Special Characters ~able entry for the destination, the
Incoming/Outqoinq Message Delimiter routine gets the index byte for an
EOA indication from the entry and determines whether the byte is zero.
If it is zero, no EOA is defined for the destination, and no EOA is
present.
~he
routine uses a nonzero index byte to locate the configuration
of the EOA within the entry.
The routine ccmpares the configuration
with the fir~t data in the buffer, and if they are not the same, finds
no EOA present.

Tf the EOA indicatien is present, the Incoming/Otitqoing Message
Delimiter routine increments the count of reserve characters in the
LCBISZE field of the ICB by the length. of the EOA, logically removinq
the ~OA from the tuff~r.
After removinq the EeA,
the routine turns
'off the
'tete-a-tete' flaq in the LeB (lCBPESP bit in LCBSTAT2) and
exits to the Transparent CCW Building rcutine (IEDQGTl if the lifie is
a ESC line in transparent mode. "If the line is not BSC in transparent
mode, the routine exits to the Buffer Association routine (IFDQGD).
For a destinatien on a BSC line, no EOA is ~resent, but there is· a STX
character that is left in the buffer.

218

External Routines:
•

IEDQAL -

•

lEDOAX - Euffer step routine - to scan for a specified

•

IGG019~B

to tpost
•

Address finder routine - tri qet the scan pointer address.
character.

or IGG019RO - TCAM Dispatcher - the DSPPOST~ e»try point,
em~tv units to the Buffer Feturn CCE.

Termname Table code - to obtain
IFDOTNT Terminal Tatle entry for the destinaticn.

the

address

of

the

Tables/Work Areas:
SCE, Termname Table, Terminal Table, AVT, buffer
currently beinq processed, OCE, precess Entry work area, LCE,
DCE,
DEE, UCE, SCT.
Attributes:
Serially
problem proqram mode.

reusable,

refreshable,

eil.,abled,

resident,

MESSAGE HANDLING - "FUNCTIONAL ROUTINES
Date and Time Provision Foutine {Chart"AC)
Module Name:

I!DCAC

Entrv Point:
I!DQAC01 - calledthrollQh the User Interface routine
when the DAT!TIME macro is issued in an MH to insert the date' and/or
time information into a messaqe header.
'Punctions: This rcutineinserts the cDEr~nt-date and/or time of day
into the messaqe header at the curre'nt locaticn af -the scan pointer.
The DATETIME rracro expansion places' th'€ad,dress of the ]:arameter
list built for the DAT!TIME macro -at assembly-t±me in ~eqister 1 and
passes to the Date and 'Iime Prcvisicnt'otltine t-hrouqh the User
Interface routine. The parameter list "f-crmat is as follows:
+2
Count of
Bytes to be mserted .

If only date information is reQuested, the Date and Time Provision
routine obtains the current date in packed de-cimal f'ormatfrom the CVT
field CVTDATE.
If only the time or both the time and the date are
requested, the necessary information is obtained in packed decimal
format via the TIME system macro.
The Date and Time Provisicn routine \1tlpa-cks and zones the date
in t o t h e for mat EYY • DDD, whe reB, is- a bl-a nk, 'YYis-'t h~' Ia s t two d i q its
of the vear, and tDD is the dav of the year. Therolltine unp'acks and
zones the time into the form,at 13HH,~M,M"SS .. wbere E is a blank, HH is
the hour, MM is the minute, and 55 is t:tl€ second,

P-rogralt Org,aniza,tion

219

The Date and Time Provisicn routine places
the
formatted
information in the messaqe buffer (time follows" date when both are
specified), updates· the scan pointer to refer to this last character
of the new data, and places a normal return code of X'OO' in register
15.
This ro.utine then branches to the Return Interface rcutine.
Bxternal Routines:
•

TEDOAL - Address Finder routine - to find the address of the
pointer frcm the offset.

scan

•

as Time routine (SVC 111 informaticn.

date

•

TEDOAX - Euffer step routine - qet the next insert address.

Tables/Work Areas:

to

qet

the

current

CVT, AVT. buffer currently

Attributes:
Serially
problem proqram mode.

reusable,

refreshab1e.

time

and

beinq~rocessed.

enabled,

resident,

Output Sequence Number Provision Rcutine (Cbart AD)
Module Name:

lED CAD

Entry Point:

IEDOAD01 -

called throuqh the User Interface routine.

Functions:
This module ineerts the output sequence number in a buffer
of a messaqe.
~he routine qets the output sequence number from the seE (SCBOSEQ)
and converts it into EECDIC, suppressinq leading zeros.
The routine
then fiqures the lenqth of the numter, adds cne for a leadinq blank,
and links to the Insert Data routine (IEtOAFl to shift left data in
the cuffer the required number of bytes.
If return from IEDQAF
indicates insufficient reserve characters, a X'04' is set in reqister
15 ana return is made to the caller via the Feturn Interface routine
(IEDOLM1.

If expansion was successful, the Output Sequence Number Provision
routine links aqain to TEDOAF to insert the output sequence number,
includinq a leadinq blank, into the buffer.
A X'OO' return code is
set in reqister 15 and return is made to the cal1inq routine via
IEDOIM.
The form~t of the macro-generated parameter list supplied as input
to User rnterface is as fol1cws:
Ofhet~______T-+_l____~

220

~xternal
Routine:
IEDQUT - User Interface rcutine - to activate the
Insert Data routine (IEDCAFl ~o expand the tuffer.

Tables/Work Area;

AVT, ruffer,

Attributes:
Serially
problem proqram mode.

seE.

reusable~

refresbatle,

enabled,

resident,

Locate Option Field Address Routine (Chart AE)
Module Wame:

IEDCAE

Entrv Point:
ItDOAE - called bV the User Interface routine when the
LOCOPT macro is issued in an MH to return the address of an option
field.
Functions:
This' routine
from its index.

calculates

the address of an option field

The LOCOPT macro expansion places the address of the parameter
list built fer the LOCOPT macro at assembly time in reqister 1 and
passes control to the Locate Option Field Address routine throuqh the
User Interface routine. The par~meter list fermat is, as follows:

The Locate Option Field Address routine first obtains the key
(ordinal index) of the currently contacted terminal from the LCBTTCIN
field of the LeE.
This key is passed to the Termname Table code
(IEDOTNT), which returns the address of the Terminal Table entry for
that key.
If, however, the key is zero, the source terminal cannot be
found and the locate Option Field Address routine takes the error
exit.
The Locate Option Field Address routine next examines the "option
fields used" flaq in the terminal entry status byte (TRMSTATE).
If
this bit is nct on, the routine takes the error exit.
In the efror
exit, the routine stores a return code of X'FF' in the proper word in
the reqister save area and sets reqister 15 equal to X'04'.
If
reqister 15 itself is specified as the return reqister, it is set to
a return cede cf X'OO'.
If the "o-ption fields used" flaq is cr., the Locate O-pticn Field
Address
routine compares the "number cf option entries" field
(TRMCPNO) in the terminal entry with the option field offset in the
third byte of the input ~arameter list.
If the option field offset is
hiqh, the error exit is taken.

Program Organization

221

Next the locate Option Field Address rcutine gets the cffset byte
for the option field beinq sought by indexina "TBMOPT by the option
field offset in the input parameter list.
If the offset byte in the
terminal entry is equal to X'FF', the o~ticn field is not defined for
this entry, and the routine takes the error exit.
The routine computes the address of the option field being sought
by addinq the address of the Opticn Table (AVTOPTPT), the offset to
the set of c~tion fields for this entry (TFMOPTEL), and the offset
byte to the individual cption fields
(third byte of the input
parameter list).
If the return register specified is register 15, the address is
placed in reqister 15.
Otherwise, the address is stored in the proper
word in the reqister save area, and register 15 is set to a return
code of X'OO'.
The locate Option Field Address routine returns to the calling
routine via the Return Interface routine (IEDQIM).
External Routine: IEDQTNT Termname Tatle code
~erminal TaEle aadress for the specified entry.
Tables/Work
Ta bl e.

Areas:

AV~,

to

obtain

the

ICB, Termname !arle, Terminal Table, Option

Attributes:
Reentrant,
serially
resident, protlem proqram mode.

reusarle,

refreshable,

enabled,

Messaqe Limit Fcutine (Chart AG)
Module Name:

IFDCAG

Entry Point:
IFtQAG01 - activated by the ~SGLIMIT macro expansion to
limit the numrer of messaqes sent or received in a
transmission
sequence.
Functions:
This routine limits the numrer of messages to cr from a
terminal during a sinqle transmissicn sequence.
On entry, register 1 contains the address of the
list.
The format of this list is as follcws:

+4

222

+2

+1

Offset 0
Index to
IEOQAE

Parameter
List Length

Reserved

Limit

+3

Status
Offset

I

RegisW
15 Offset

I

input

~arameter

The Messaqe Limit routine first saves the parameter list address
in the AVT and then qets the addre~s of the cuffer ceinq processed
from theAVT (AV!ADBUF). The routine then examines the size field in
the buffer prefix (PF~SIZF) and, if it is zero,
indicatinq a zerolenqth buffer,
returns immediately with a return code of X'OO' in
reqister 15.
If the size of the buffer is not zero,
the routine qets the
address of tbe LCB frem the buffer prefix (PBFLCE) and examines the
dial bit (LCBtIAI in LCBSTAT1)
in the ICE.
If this bit is on,
indicatinq a dial line, the routine places a return cede of 'X'OO' in
reqister 15 and returns.
When the dial bit is off,
the routine
examines the Feceive Scheduler prieritv field (ICBRS~BIl and, if it is
X'20', examines the 'send' bit (ICBSENDN in LCESTAT1).
If the 'send'
bit is on, the routine places a X'OO' return code in reqister 15' and
returns.
If the
'sena'
bit is off or if the priority field is not X'20',
the Messaqe Lirrit routine qets the requestea messaqe limit from
the
parameter list and saves it in the AVT.
Next, the routine qets the
SCB address frem the ICE (LCBSCBA), and increments the m€~~aQe CQUD~
field in the SCE (SCBSNDCT b one.
The rcutine then compares the new
coun~
e requested count and, if the new count is lower, places
a X'OO' return code in reqister 15 and returns.
If the requested
messaqe count has been reached, the routine resets the messaqe count
field to zero and turns on the
'messaqe limit' bit
(SCBMLMTN in
SCBSCFM).
The routine rechecks the
'send'
bit and, if it is on,
places a return cede of X'OO' in reqister 15 cefore returninq.
If the 'send' bit is off, the Messaqe Limit routine turns off the
'messaqe limit'
bit.
The the rcutine qets from the LCE the relative
line number (ICEUCBX) and multiplies it by four to convert that number
to an offset.
The routine qets from the LCE the address of the DCB
{LCBDCBPTl
and qets from the DCE the address of the invitation list
for the line (DCBINVLI + the offset).
The routine qets the width of
one entry from the invitation list, the address of the current
invitation list from the LCE (LCBINVPT), increments this address by
the width,
and ~laces the result back in the invitation list address
field in the ICB.
The routine then places a X'OO' code in reqister 15
and returns.
External Boutines: None.
Tables/Work Areas:

AV!, buffer prefix, ICE, SCE, DCB.

Attributes:
Serially
problem proqraro mcde.

reusable,

refreshacle,

enabled,

resident,

Input Sequence Number Inserticn Rcutine (Chart AH)"
Module Name:

I~DOAH

Entrv Point:
IEDOAH01 - activated throuqh the User Interface routine
by the SEQUENCE macro expansion on the in~ut side of MH.

Program Organizaticn

223

~unctions:

!his module verifies ana updates an in~ut sequence number
specifled by the user in the current buffer of a messaqe.
The Input Sequence Number Inserticn routine examines the 'terminal
currently ccnnected' field in the ICE
(ICBTTCIN}.
If the field
contains zercs, the origin is unkncwn; therefore, this rcutine places
a return code of X'OC' in reqister 15 and
returns to the caller
throuqh the Return Interface routine (IEDQLM1.
If the field does not
contain zeros, the routine passes ICBTTCIN to the TermnameTatle code
(IEDOTNT), which returns the address of tbe Terminal Table-entry for
the oriqin of the messaqe.
~he

routine passes the FECDIC characters making u~ the usersupplied input
sequence number in the IVT wbrk area (AVTDOUEL1.
The
routine converts this number to a binary number and ccmpares the
result to the anticipated input sequence number located in the
Terminal Table entry (TFMINSEQ).
If the new number is higher,
the
routine sets the
'sequence number hiqh' error flag in theSCB and
places a return cede of X'OB' in register 15.
If the new number is
lower,
the routine sets the 'sequence number low' error flag in the
SeE, and places a return code of X'04' in reqister 15. In both cases,
the sequence nuwber in the Terminal Table entry remains unchanged and
the routine returns to the caller through the Return Interface routine
(IEDOIM1.
If the new number is equal to the number in the Terminal Table
entry, the routine sets the 'sequence-in' flaq in the SCE status field
(SCBSEOTN in SCBS~ATE1. If the current buffer is a header tuffer, the
routine puts the number in the prefix input sequence number field
(PRFISEOl
and then incrementes the number by one.
If the result is
over 9999 (the maximum permitted sequence number), it is reset to one.
The routine stcres the u~dated number back in the Terminal Table
entry, sets a return code of X'OO' in reqister 15, and returns to the
caller throuqh the Return Interface routine (IEDQI,M).
~he

format of the

in~ut

parameter

list

for

this

module

External Routine:
IEDOTNT
Termname ~atle
destination offset to a terminal entry address.

code

-

is

as

follows:
Offset 0

+1

Tables/Work areas:
Tatle.

AVT, buffer, ICE,

Attributes:
Serially
problem proqram mcde.

224

reusable,

seB,

Termname

refresbable,

to convert a

Table,

enabled,

Terminal
resident,

Skip Forward and
Module Name:

~can

Routine (Chart AI)

TIDCAI

Entry Point: I!tCAI01 - called throuqh thE User Interface routine by
the macro expansion of the SETSCAN macro cr ty a functional MH routine
to skip the scan pointer forward a fixed number of rytes or to scan
for and return the next field in the message header.
~unctions:

This module moves the scan ~ointer forward in the messaqe
header a specified number of bytes, or firds and returns to the caller
the next field beyond the scan pointer.
If th~ scan pointer
(PRFSCAm is reyond the end of the buffer,
that is, PRFSCAN is qreater than PRFSIZE, the Skip Forward ana Scan
routine places a -X'04' return code in reqister 15 and returns to the
callinq routine.

~he scan pointer offset from the prefix is passed to
the Address
Finder routine
(IEDQAL)
to qet the scan pointer address and to
initialize the current-unit and end-of-unit reqisters. If the buffer
is a TSO buffer, indicated by the PRFTSEtiF bit in the PRFSTAT1 field,
the Skip Forward and Scan routine passes an offset of zero instead of
the scan pointer and the ·confiquraticn of a blank character in a
reqister.
If the user specifies a confiquration, the routine sets the
reqister from the parameter list. If- no ccnfiquration is specified,
the routine places an EECDIC blank (X'40') character in the reqister.

•

~ntry

for skip forward

If the lenqth passed in the parameter list is zero,
the Skip
Forward and Scan routine places the aadress of the byte pointed to by
the scan pointer in reqister 15 and returns to the caller.
If a blank
character is not defined for the skip o~eration, the routine adds the
skip lenqth directly to the scan ~ointer.
If the resultinq offset is
beyond the end of the buffer, the routine dces notchanqe the scan
pointer,
places a X'04'
return code in reqister 15,. and returns
control to the callinq routine.
If the new offset is not beyond the
end of the tuffer, the routine places the new offset in the PRFSCAN
field, sets a X'OO' return code in reqister 15, and returns to
the
caller.
If a blank character is defined, the routine loops to the Buffer
step routine (IEDQAX), which returns the address of each subsequent
byte.
When the byte is not a blank, the skip lenqth is decremented by
one.
When the skip lenqth is equal to zero, the routine updates the
scan pointer offset in the ~refix ~uts a return code of zero in
reqister 15, and exits to the Return Interface routine.
If return from the Buffer Ste~ routine indicates that the end of
the buffer has beeD passed, the routine puts a return code of X'04' in
reqister 15 and exits to the Return Interface routine.

P~ogram

Crganization

225

•

Entry for fixEd scan

The caller may define the next· field as the next "n" data bytes.
This is the fixed scan function~ For this function, the-routine loops
to the Buffer step routine,
which returns the address of each
subsequent byte.
When the byte ~oes not centain a blank, or if blanks
are not defined for the function, it is inserted into the AVT work
area
(AVTDOUBLl
and a counter of data tytes found is incremented by
one.
When the field lenqth requested is satisfied, the routine takes
the normal scan end exit.
If return from the Buffer Step routine indicates that the end of
the buffer has been passed p the routine moves the partien of the field
that has been found from the AVT
work area to the SCE save area
(SCEMESSA) and takes the multiple-tuffer-header exit.
•

Entry for variable scan

The caller may define the next field as the next contiguous strinq
of data bytes that is delimited ~y'a blank.
This is the variable scan
function.
For this function, the routine leo~s to the Euffer step
routine until a nen-blank character is returned.
The Skip Forward and
Scan routine stores this character in the AVT work area.
The routine
loops aqain to the Buffer Step routine, addinq data bytes to the
AVT
work area until a blank delimiter is found or until the eight-byte AVT
work area is filled.
At this point p the routine takes the normal scan
end exit.
Tf return from the Buffer step routine indicates that the end of
the buffer has te€n passed p the reutine moves the portion of the field
that has been found from the AVT work area to the seB save area
(SCEMESSA) and takes the multiple-tuffer-header exit.

•

Normal scan end exit·

At the SCANNEr entry point, th~ ,~kip Forward and Scan routine
stores the field lenqth in the AVT parameter area (AVTPARM).
If a
compare operatien is requested, the routine qets from the parameter
list the address of the compare strinq and compares that address with
the strinq found.
If the strinqs are not equal, the routine places a
1'00' return code in reqister 15 and returns to the caller. If they
are equal p or if ne compare operation is requested,
the routine
determines whether entry is from a SETSCAN macro expansion. If so,
and if the strinq offset is to be returned in a reqister, the routine
places the cffset in reqister 15 and returns control to the callinq
routine.
If the offset is not to te returned, the routine makes the
offset the new scan pointer, places a X'CO' return code in reqister
15, and exits to the caller.

226

When entry is directly from a SFTSCAN macro ex~ansion,
the Skip
Forward and Scan routine determines
whether the address is to be
returned in a reqister.
If the address is not to be returned,
the
routine
makes the offset the new scan peinter, places a X'OO' return
code in reqister 15, and branches tack to the caller.
If the address
is to be returned, the routine branches to the Address Finder routine
(IEDOAL). which returns the address of the last byte of the strinq
found.
If the address is to be returned in reqister 15, the routine
places it there and returns to the caller. If the address is to be in
another reqister, the routine saves it in the reqister save area at
the proper offset for the requested reqister, places a return code of
X'OO' in reqister 15, and exits to the callinq routine.
•

Multip1e-tuffer-header exit

~or a TSO tuffer, the Skip
Ferward and
Scan routine puts the
lenqth of the field found in the AV~ parameter area and performs the
processinq descrited for the normal scan End exit.

otherwise, if return is requested in a
reqister,
the routine
determines whether entry is frem the Multi~le Feutinq subtask.
If
entry is not from that subtask, the routine
determines whether any
bytes of the field beinq souqht were found in this buffer.
If no
bytes have been feund, the routine determines whether entry is to
search for a conditional character strinq. If not, the routine places
a
neqative return code in reqister 15 and returns to the caller.
If
entry is to search for a conditional character
strinq, the routine
saves the number of bytes found and the reqister for the. callinq
routine in the SCB.
The routine sets the scan pointer to point beyond
the end of the tuffer, saves the parameter list address in the SCE
mu1tiple-buffer-entrY field (SCBMBBEN), puts a neqat~ve return code in
reqister 15, and returns centro1 te the caller.
Tf return is' not requested in a reqister, or if entry is from the
Multiple Routinq subtask, the Skip Forward and Scan routine determines
whether the buffer is the last buffer of a rressaqe, indicated when the
PR~NLSTN bit is off in the PRFSTAT1 field.
If the tuffer is not
the
last buffer ef a messaqe the routine saves the bytes found in the
buffer, the ccunt of bytes found, and the callinq reutine reqisters in
the SCB.
The reutine then sets the scan pointer to the point beyond
the end of the buffer,
saves the parameter list address in the
SCEMBHEN field, places aneqative return cede in reqi~ter 15,
and
returns centrel te the callinq routine.
•

Multiple-tuffer-header entry

The S~ip Fcrward and Scan routine may te entered directly from
code in the
STAFTMH macro expansion tc complete a scan function
interrupted by a wultiple-tuffer-header situation.
This .rcutine may
also be entered from the Multiple P-outinq subtask to find the
rerrainder ef a
subsequent destination that was incomplete in a

Program organization

221

previous buffer. The Skip Forward and Scan routine detects this type
of entry when tte low order bit of theSCB multiple-huffer-headerentry field (SCE~EHEN) is set.
If entry is not from the Multiple Fcutinq subtask, the routine
clears the SCEMBHEN field to zeros, qets frcm the SCB the ccntents of
the reqisters of the callinq routine at the time of the interruption,
and moves the reqister contents to the callinq routine save area. The
routine then calculates the return address from the parameter list
address and puts it in the callinq routine save area.
The routine examines the SCE save area to determine whether the
first character has been found.
If it has not, the routine resumes
the appropriate scan function as if initially entered. If the first
character has ceen found, the routine moves the portion of the field
that has been found back from the SCB save area to the AVT work area.
The routine calculates the number of bytes found.
If a fixed scan
function is reinq completed, the routine resumes the function as if
initiallY entered. If a variable scan function is beinq completed,
the routine resumes the function at an entry past the point where the
first character is beinq fcund.
If the X'02' tit is on in the low-crder byte of the SCBMBHEN
field, entry is from the Multiple Routinq subtask. The Skip ~orward
and Scan routine turns off both the X'01' and X'02" flags in this byte
and qets the number of bytes already found from the SCBDESTL field.
If this numrer is zero, the routine resumes the appropriate scan
function as thcuqh it were initially entered. For a positive number,
the routine meves the bytes found from the LCE (LCBCPA) to the AVT
work area (AVTrOUPLl an~ resets the low-crder byte of the AVTDOUBL
field to an EBcrrc blank X'40'. !he routine then resumes the fixed or
variatle scan function as described previously.
~he
address of the parameter list built by the macro expansion of
the SETSCAN macro or a hiqher-level MH routine is placed in reqister
1 and passed to the Skip Forward and Scan routine by the User
Interface routine. The parameter list formats are as follows:

Scan Function Parameter List (Index flag X '.01' is OFF

+1

Offset 0
Index to
IEDQAI
Blank
Character
(optional)

+3

+2

Parameter
List Length

I Register 15 1
Offset

Scan
Length

Address of the Character String
(optional)

Index flag X '02': ON - BLANK = YES
OFF - BLANK = NO
Skip Forward Function Parameter List (Index flag X'Ol' is ON)
Offset 0

+1

+2
Skip
Count

228

Upon completion of its functions,
the Skip ~orward and Scan
routine issues a return code in reqister 15. ~he return code value is
X'OO' for successful completion, a neqative value if a multiple-buffer
header is detected and a scan function fails to complete, and X'04' if
the skip function fails to complete.
other areas affected
outlined as follows:

by

the

completicn

of

this

routine are

1•

AVT work area (AVTDOUBLl - on successful
function, the next field in the buffer.

2.

AVT parameter area (AVTPAFMl
function,
the second byte
returned.

3.

Buffer prefix scan pointer (PFFSCAN) - on successful completion of
a scan functicn, and if requested by the caller, the offset in the
buffer to the end of the field beinq returned.
On successful
completion of the skip forward function, the offset of the scan
pointer meved forward the. specified lenqth.
On a multi~le-buffer­
header exit, the offset to a point one ryte beyond the end of data
l.n the buffer.

4.

SCB save area (SCBMBSSA) - on a multi~le-tuffer-header exit for a
scan function,
the bytes of the field requested found from this
buffer, padded with blanks (if necessary to fill SCBMFSSAl to the
riqht.

5.

SCB multiple-ruffer-header entry
(SCB~BHENl
on a
ruffer-header exit, the address of the ~arameter list.

E.

SCB reqister save area (SCBRGSAVl exit, the user reqisters.

-

coropletion

of

a

scan

on successful completion of a scan
contains the lenqth of the field

cn

a

multiple-

multiple-tuffer-header

External Routines:
•

IEDOAL - ~ddress Finder routine scan pointer.

•

TEDQAX bytes.

to return

the

address

of

the

Euffer Step routine - to return the address of subsequent

Tables/Work Areas:

AVT, SCE, buffer.

Attributes:
SeriallY
problem proqraro roede.

reusable,

refresbatle,

enabled,

resident,

Program Organization

229

Skip to Character Set Routine (Chart AJ)
Module Name:

IEDQAJ

Entry Point:
IErQAJ - called throuqh the User Interface routine when
the ~ORWABr or SETSCAN macro expansion or a higher-level MH routine
needs to advance the scan pointer to the last byte of a specified
character strino.
Functions:
~his routine advances'the scan pointer to
specified character strinq in the messaqe header.

the

end

of

a

The User Interface routine passes tc the Skip to Character Set
routine a parameter list built by the caller.
The format of this
parameter list is as follows:

Index
to IEDQAJ
Blank
Character

I

+3

+2

+1

Offset 0

Parameter

List Length

Length

I

Register
Offset

Address of Character String

If th~ scan ~ointer
(PRFSCAN) is beyond the end of the buffer,
that is, if the PBFSCAN field is qreater than the PBFSIZE field;
the
function cannot be performed in this buffer.
If a return register is
not ~pecified, the Skip to Character Set routine
places a -X'04'
return code in reqister 15 and returns control to the caller.
If a
return register is specified, the routine puts a X'04' return codB in
reqister 15 if it is not the return reqister, and exits to the callinq
routine.
If reqister 15 is specified as the return reqister, the
routine place~ aX'OO' return code in reqister 15 and returns to the
caller.
When the scan printer is net beyond the end of the buffer, the
Skip to Character Set routine passes the scan ~ointer offset in the
buffer prefix te the Address Finder routine (IEDQAL) to get the scan
pointer address and to initialize the current-unit and end-of-unit
reqisters.
The routine qets the confiquration of a blank from the
parameter list, the address of the Buffer Ste~ (IEDQ!X)
routine from
the AV~, and the address of the character strinq beinq souqht from the
parameter list.
Tf the Skip to Character Set routine is entered directly from the
STABTMH macro expansion to complete a skip that was interru~ted by a
multiple-buffer-header situation, the routine moves the data that was
found from the previous buffer from the seB save area to the AVT work
area, (AVTDOUBL).
The routine then clears the multiple-tuffer-headetentry field in the SCE (SCEMBHEN) to zeros and moves the user r~qister
from the SCE (SCBRGSAV) to the user save area.
The reutine calculates
from the address of the ~arameter list a return address to the message
handler and puts that address in the reqister save area.
The number
of bytes found
is calculated and processing continues as described
below.

230

If the Ski~ te Character Set routine is entered normally or after
the multiple-tuffer-header situatien ;ust described has been handled,
the routine loeps to the Buffer step routine (IEQDAX),
which returns
the address ef each subsequent byte.
~hen' a non-blank character is
found or if no tlank is defined, it is inserted in the AVT wo~k area
(AVTDOUBLl
ana a counter of data bytes feund is incremented by one.
~he routine compares the 'character with the
first character of the
character strinq to be skipped.
If ttey are equal, the routine
compares the counter with the lenqth of the character strinq to be
skipped.
If the count is the same, the character strinq has been
located.
If the count is not the same, the routine loo~s to the Euffer Step
routine to qet the next data byte, which is inserted in the AVT work
area.
comparison is made aqain, as ;ust described.
If the characters found in the tuffer do not match the character
strinq to be skipped,
the routine successively shifts left the
contents of the AVT work area,
droppinq one byte at a time, and
compares them (to a successively diroinishinq lenqth) to the character
strinq.
This ptocedure continues until either an equal co~pare is
found or the characters are exhausted.
After each unequal compare the
routine resumes loopinq to the Buffer Ste~ routine to get the next
data byte.
rf return from the Buffer step routine indicates that the end of
the buffer has been passed, the Skip to Character Set routine tests to
see if a parameter return reqister was specified.
If so, the routine
puts a return code of X'04' in reqister 15, unless reqister 15 is
itself the parameter return reqister specified.
In this case,
the
routine sets reqister 15 to zero, and exits to the~eturn Interface
routine.
If a parameter return reqister was net specified, the routine
moves the data found in the buffer from the AVT work area to the SCB
save area (SCBMBSSA) and pads with blanks to the riqht, if necessary.
The routine saves the count of bytes found in the SCB SCEDESTL field.
~he routine saves the parameter list
address in the seE multiplebuffer-header entry field
(SCEMBHEN).
~he
routine moves the user
reqisters, saved in the AVT. to the SCE reqister save area (SCBRGSAV).
The routine then updates the prefix scan ~einter to point beyond the
end of the buffer,
sets a neqative return code in reqister 15, and
exits to the Return Interface routine (IEDQIM).
If the character strinq is found,
the Skip to Character Set
routine determines whether a return reqister is specified.
If not,
the routine u~dates the scan pointer to peint to the last byte of the
strinq,
sets a X'OO' return code in reqister 15, and returns control
to the caller.
If a return reqister is specified and entry is not
from a SFTSCAN macro expansion. the routine puts in reqister 15 the
offset to the last byte of the strinq found and returns to the callinq
routine.
If a return reqister is specified and entry is from a
SETSCAN macro expansion,
the routine saves the address of the last

Program organizaticn

231

byte of the strinq found in the appropriate word of the reqister save
area, places a X'OO' return code in reqister 15, and returns to the
caller. If reqister 15 is the return reqister, the routine places the
address of the last byte of the strinq fcund in reqister 15 and
branches back tc the caller.
External Poutines:
•

IEDQAL - Address Finder routine - to return
scan pointer.

•

IEDOAX - Fuffer step routine - to return the address of subsequent
bytes in the tuffer.

Tables/Work Areas:

address

of

the

Buffer currently beinq processed, AVT, seE.

~ttributes:
Serially
problem proqram mede.

~ine

the

reusable,

refreshatle,

resident,

enabled,

Control Insertion Routine (Chart AK)

Module Name:

IEDCAK

~ntrv

Point:
IEDOAK01
activated by the User interface routine
(rEDOUI) to insErt line control characters in an outqoing messaqe.

~unctions:

them into a

7his module checks line control characters
that is ready to te sent.

and

inserts

me~~ace

When the line Centrol Insertion routine is activated, it first
tests the "messaqe form request" bit in the SeE, and if it is off, the
routine branches immediately to
the
Incominq/Outgoinq
Message
Delimiter routine (IEDOA4). The Line Centrol Insertion routine also
branches directly to the Incominq/Outqoinq ~essaqe Delimiter routine
when the input tuffer has a lenqth of zero.
When the rine Centrel Insertien routine maintains control, it
determines whether to place an STX character in the buffer.
An STX
line control character is reauired if the buffer is a header or a
recalled buffer, and if thedestinatien terminal is a
binary
synchronous -device, an IBM 2260 Femote, or an IBM 2760 in tete-a-tete
mode.
Before insertinq the STX character, this routine calculates the
initial offsets for any subseauent line control characters. The
routine uses an internal subroutine, LCOFFSET for a non-recalled
header buffer or LCOFFRCI for a recalled buffer, to p~rform this
calculation.
The locaticn at which the Line Control Insertion routine places
the STX character depends on the type of buffer. In a non-recalled
header buffer, the routine inserts the STX character as the first data
232

byte and sets the data offset to ~oint to the first data byte.
In a
recalled buffer,
the routine inserts the STX character immediately
after the last EOE in the buffer.
(The offset to the last EOB is in
the SCB field SCBEOB.l
If the routine is also placinq ITE characters
in the buffer, the routine decrements the 6ffset to the last EOB by
the number ef ITB characters inserted in the buffer before the EOB.
The routine calculates the number ef ITB characters and ad1usts the
data offset accordinqly.
If an STX line control character is not required, the Line Control
lnsertion routine determines whether any intermediate line control
characters (EeBs or ITEsl are needed.
The routine qives control to a line Centrol Offset subroutine
for non-recalled cuffers, or LCCFFRCL for recalled buffers)
in order to qet the initial offsets for insertinq the characters.
Upon return,
the Line Control Insertion reutine qives control to the
Line Control Selection subroutine (ICSE1FCT) to qet the address of the
next insert positien in the buffer and to set the offset in the SCT to
the address of the next line control character to be inserted.
The
routine compares the total data size (PRFSIZE) with the next insert
offset to determine if the first line contrel character will fit in
the current buffer.
If the character does not fit, the routine
branches to the entry point LAST to complet~ final precessinq.
If the
character fits, centrol returns to the main routine at the entry point
MAINLOOP with the data offset equal to the insert offset.
(LCOIPSE~

The main loop of this routine first sets the condition code to 2
and passes control to the Insert subroutine at the GETSCTAD entry
point. This subreutine inserts the first line control character in
the buffer.
Upon return, the routine calculates the residual count in
the tuffer (the number of bytes frem the inserted character to the end
of datal and cempares the result with the interval between ITEs or, if
no ITBs are teinq inserted, with the interval between FOEs or ETEs.
If the next line control character (pointed te in the SCT)
will not
fit in the buffer, or if no ITBs, EOEs, or FTBs are to be inserted in
the buffer, this rcutine branches to the Insert Data ioutine
(TEDQAF)
to shift any loqically empty b~tes to the end of the buffer.
Upon
return, fina~ ~rocessinq (at LAST) is performed.
Tf the next line centrol character does fit in the buffer,
the
routine qives centrol to the Insert Data routine to shift the data
left to the next insert point. On return, the Line Contrel Insertion
routine qives centrol to the Line Control Selection subroutine to
select the next line centrol character to be inserted. The subroutine
returns to the main routine at the entry peint MAINLOOP, where the
line control ,character insertion ~recess is performed aqain.
For final processinq, the routine checks the tuffer to determine
whether it is the last cuffer of the messaqe.
If the buffer is not
the last buffer of the messaqe, the routine determines whether any
character insertion has been performed.
When an insertion has been
made,
the routine qives centrol to the Insert subroutine at the entry
point FINALSIZ, passinq a condition code set to 8.
The subroutine
sets the final data size and returns.
At this point the Line Control

Program Crganization

233

Insertion routine determines whether FOBs or FTBs were inserted.
If
FOBs or ETEs have been inserted, the reuti~e ~ets the EOB/ETE initial
address for the next buffer in the seE.
If ITEs have been inserted,
the routine sets the ITE initial offset for the. next buffer in the
SCB.
The routine then passes control tethe Incominq/Outqoinq Messaqe
Delimiter routine (IEDQA4).
If the buffer is the last buffer of the mesEaqe,
the routine
clears the ECB/EOT interval and offset fields in the SCB to zero, and
indicates that an end-of-transmission
(EOT)
line control character
must now be inserted in the huffer.
If no characters 'have been
inserted, the reutine sets the data offset to equal the total data
size.
The reutine passes the offset of the last data byte to the
Address Finder routine to qet the address o,f that byte.
This address
is the insert address.
If the destination is BSC or if the
destination is Start/stop with no EOBs beinq inserted, the routine
passes the FC! character address in the SCT with a condition code of
2 to the Insert subroutine (GETSCTAD).
This subroutine inserts the
EaT and then passes control to IEDQA4.
If the destination is
Start/stop and EOEs are reinq inserted, an EOB character followed by
an ~OT character mUEt be inserted in the buffer.
The routine qives
control to the Insert subroutine at entry ~eint GETSCTAD twice with a
condition code of zero; once to qet the FOB character address and once
to qet the FaT character address from tte SCT. On return from the
second link to the Insert subroutine,
the routine builds a sinqle
character strinq in the Address Vector Tarle work area (AVTDOUBL).
This character strina consists of the EOB character followed by the
FaT character. The routine then passes the lenqth and address of this
strinq to the Insert subroutine at the entry point LINKAOET with a 2
condition code.
~he subroutine inserts the data
in the buffer and
qives contrel te IEDOA4.
There are feur internal subroutines:
1.

Line Control
LCOFFSET.

Offset

subroutine

fer

nen-recalled

buffers

2.

Line Control Offset subroutine for recalled buffers - ICOFFRCL.

3.

Line Control Selection subroutine - lCSEIECT.

4.

Insert subro~tine - GETSCTAD, lINKAOBT, and FINAISIZ.

~ither of the two line centrol effset subroutines first calculates
the offset to the first byte of data to be Eent. In LCOFFSET, this is
the first data hyte in the buffer~ in LCOFFBCI, this is the first data
byte after the laEt EOB.
The subroutine then ircrements the initial
EOE/ETB address found in the SCB by the result.
If I1Es are to be
inserted into the buffer, the subreutine increments the initial ITB
address in the SCE by the same result befcre returninq.

The
ITBs are
compares
If the
234

Line Control Selection subroutine first determineE whether
to he inEerted.
If ITBs are to be inserted, the subroutine
the IrE effset in the SCB with the FOE/ETB offset in the SCB.
ITB offset is lower, both offsets are returned to the callinq

routine after the subroutine increments the ITB offset in the SCB by
the interval tetween I~Bs. If I~Es are not beinq inserted or if the
ETB offset is equal to the ITB offset, the subroutine increments the
EOE/ETE offset in the SCB by the interval between BOPs or FTBs and
increments the ITE offset, if present, in the SCE by the interval
between ITEs.
After this, the subroutine returns the ECB/ETB offset
and SCT offset to the callinq routine.
The Insert subroutine consists of three seqments,
GETSCTAD,
LINKAOBT, and fINALSIZ.
The functions of each of the seqments follow.
1.

GETSCTAD - ~his seqment uses an SCT offset ~assed by the caller to
determine the address of a line control character in the SCT.
If
the callinq rcutine ~asses in reqister 14 a 0 condition code, this
seqment returns to the callinq routine; otherwise, this seqment
passes control to the next seqment - lINKACBT.

2.

LINKAOBT - This seqment builds parameters for and links to the
Unit Request Interface routine (IEDCAO) to insert the specified
line control. character in the .buffer.
If the callinq routine
passes in reqister 14 a non~positive ccndition code, this 'seqment
passes contrel to the next seqment - FINALSIZ.
FINALSIZ - 1his seqment decrements the data address offset by the
insert character offset (lenqth of the loqically em~ty area) and
sets the result as the final data size in the buffer.
If the
conRition code in reqister 14 is equal to zero, this seqment
returns to the callinq routine;
otherwise,
this seqment qives
control
tc
the Incominq/Outqoinq Messaqe Delimiter routine
(IEDO A4) •

3.

~hen the line Control Insertion routine qains centrol, reqister
1
coritains the address of a macro-qenerated ~arameter list ~ith the
followinq format.

External

~outines:

to

activate

the

followinq

•

IEDQUT - User
modules:

•

IEDOAF - Insert Data routine - to insert data in the buffer.

•

IEDOAO - unit Request Interface routine - to irisert
characters in the cuffer.

•

IEDO'rNT -

•

IEDOAL byte.

Interface

routine

line

control

Termname Tarle code - to qet a terminal entry address.
Address Finder routine -

to qet the

address

of

a

Program organization

data
235

~ables/Work

AV7,

Areas:

DCE, ICE, SeE, SCT, buffer currently beinq

processed.
Attributes:
serially
prctlem proqram mcde.

reusable,

refreshatle,

enabled,

resident,

Address Finder Routine (Chart AL)
Mod~le

Warne:

IEDeAL

Entrv Point:
ADDRCCMP - called from an MH routine to find the address
of an item in a tuffer.
Functions:
This routine returns the address of an item in a buffer
when the offset of the item from the start of the first unit is passed
to it.
The Address Finder rcutine qets the address of the AVT from
reqister 9 and the address of the first unit of the current buffer
from reqister 6.
The routine then com~ares the offset in reqister 5 with the key
lenqth specified in the AVT (AVTKEYLE).
If the offset is less than or
equal to the key lenqth, the item is in the current unit.
The Address
Finder routine adds the offset to the address of the current unit plus
the RCB lenqth (12 bytes - AVTUMALN) to get the address of the item,
which is then returned in reqister 5.
The address of the unit in
which the item is found is returned in reqister 2.
If the offset is qreater than the key lenqth, the routine qets the
address of the next unit from the ReB of the current unit (PRFTIC).
The routine then decrement~ the offset by the key lenqth and aqain
compares the offset with the key lenqth in the AVT to determine
whether the item is in the (new) current u~it.
If not,
the routine
qets the address of the next unit and aqain decrements and compares
the offset.
~hi~
process continues until the buffer unit that
contains the item is found.
~fter locatinq the address of the item, the Address Finder routine
examines reqister 1.
If it does not ccntain zeros, the routine
returns to th~ caller.
If it does contain zeros, end-of-unit updatinq
is beinq requested.
This causes t~e Address Finder routine to place
the address of the unit in which the item is found in register 4, to
set reqister 11 tc point to the first
byte beyond the end of the
current unit, tc load reqister 1 with the parameter list address for
the callinq rcutine (from AVTPAPM), and to return to that routine.

External

~outines:

Tables/Work Areas:

None.
AVT, buffer currently beinq processed.

Attributes:
Serially reusable,
resident r protlem proqram mcde.
236

reentrant,

refreshable,

enabled,

Oriqin Routine
Module Name:

(Chart AM)
IEDCAM

Entry Point:
IEDQAM01
called by the ORIGIN macro expansion to
verify or initialize the oriqin of a messaqe.
Functions:
or1qlnis
specified.

This rcutine verifies the oriqin of a message when the
s~ecified,
or initializes the crigin when it is not

The Oriqin routine, upon qettinq control from the ORIGIN macro
expansion tests the return code from the previcu~ly executed Binary
Search routine (IEDOA1).
If the return code is zero, the name of the
buffer was not found in the Termname Table; therefore, the Oriqin
routine sets the 'invalid oriqin' bit in the SCE (SCBSTAT1), places a
return code of X'04' in reqister 15, and returns.
If the return code from the Binary Search routine is not zero, the
value in reqister 1 is the key (ordinal index) to the Termname Table
entry for the name found.
In this case, the Criqin routine compares
the key with the key in the buffer prefix source field (PRPSRCE).
If
the keys are equal, the key in the buffer prefix is correct,
and the
Oriqin routine
~uts
a X'OO' return cede in reqister 15 before
returnina.
If the keys are not equal, the (riqin rcutine checks the
buffer prefix scurce field for zeros.
If the field does not contain
zeros, the routine considers the buffer prefix key to·be the wronq key
and passes that key to the Termname Tatle code
(IEDQTNT),
which
returns the address of the Terminal Tarle entry. The Oriqin routine
examines the terminal entry to determine whether it is a line entry.
If the entry is not for a line, the routine sets the 'invalid oriqin'
bit in SCBSTAT1, ~laces a X'04'
return cede in reqister 15,
and
returns to MR.
If the ~erminal Table entry is a line entry or if the buffer
prefix source field is zero to indicate that the field may be
initialized,
the Oriqin routine makes a final check.
The routine
passes the key for the name found in the buffer to the Termname Table
code, which returns the address of the Terminal Table entry.
The
routine aets the address of the OCB from the Terminal Table entry and
compares the address of the DCB to which tbe QCB pcints (QCBtCBAD) to
the address of the DCB te which the LCB points (LCBDCBPT). If the two
addresses are the same, the routine saves tte buffer prefix source key
in the PR~SFCE field and in the terminal-currently-ccnnected field
(LCB~TCIN) in the LCB.
The routine then places a X'OO' return code in
reqister 15 and exits to MH. If the addresses are not the same, the
routine considers the name found in the tuffer to be in error, sets
the
'invalid criqin' bit in the SCBSTAT1 fi~ld, places a X'04' return
code in reqister 15, and exits to MR.
External Routine:
IEDCTNT -Termname
address of the Terminal Table entry.
Tables/Work Areas:
Terminal Table.

Buffer

prefix,

Tarle
AVT,

code

to

locate

the

ICB, QCB, Termname Table,

Prcgram Organization

237

Attributes:
Serially
problem procrra,m mcde.

reusable*

Multiple Insert/Bemove Routine
Module

N~me~

refreshatle,

(Ch~rt

enabled,

resident,

AN)

IEtCAN

Entrv Point!
IED'O:Alt01activated ty the UEer Interface routine
(IEDOUI) to insQrt# delet~~ anrl:r€~lace data at locations specified by
character strinqs i~ the tuffEr.
'Functions:
This module tr.a'DS'lat:eE and' tests all data in a buffer
and. thereby. inserts, deletes, or replaces data in specific ~ositions
in the buffer.
The Multi~le Insert/Remove routine first tests the PFFSIZE field
in the buffer for zeros.
If tbe field is zeros, indicating that the
buffer has a lenqth of zero, the routine returns immediately to the
callinq routine. If the field is net zeros, the routine initializes
the internal l=ara'met.er lists for the IEDOA! and IEDQAJ scan routines
accord ina tc the ~arameters passed.
The 'Mu,ltiple Insert/Remove r\iJutine builds a translation table from
the initial letter of each charaeter strinq in' the input parameter
list ana.,
thereaft,er, ~e:rforms. ~,a tr.anslate and test operation on all
data in the buffeT. Reqis,ter1c;ontains the address of the input
parameter list.
~he format of the list is as follows.

+1

Offset 0

o

+3

+2

Parameter

Index to
IEDQAN

'list length

Index to
IEDQAJ

'Character

lndexto
tEOQAF

'Index to
IEOQAO

Numberaf
Entries

'Reserved ..

+4

+8

, Reserved

81ank

Address of Characters. Tob1e

+12
Key
+16

.....

Status'

Dota.~DescripMon

'FROM'

'TO'

Oetimiter Oesc:riptiolV

~I imi:teJ

'

First
Subparameter
List

Desc:r.p.tion
"10.0

T

The format of the S'ub'para1lleter ',s:tatus byte is as follows.

238

Data

= Characters
Data

=Idles Count
Data = Contract
To = Character String
Bits On

To = Offset
To = Extent

} Bits Off
Excl usive From

The
~ultiple
Insert/Pemove routine places the offset from
the
heqinninq of tbe input parameter list to the subparameter list at a
position in the translate table indicated by the initial letter of a
character strinq.
The function of the sub~arameter list is determined
bv the character -strinq, the first letter of which was placed in the
translate tatle.
The routine saves tbe offset of the byte of data
(data offset) and the number of the loqically empty bytes available
for insertion
(insert offset)
in the ~refix of the buffer.
The
initial insert offset is zero.

If, while buildinq the translate table, the routine detects a
sub parameter list that specifies a delimiter cbaracter as the insert
function indicator (bits 0 and 1 are both on), the routine checks to
verify whether t~e function is valid.
To te valid, the macro must be
on the send side of the roessaqe handler and the destination must be an
applicaticn prcqram.
If either of these ccnditions is not present,
the routine tvpasses the delimiter insert operation.
When both
conditions are present, the routine branches ana links to the Termname
Table cOde (IEDOTNT) to qet the address of the Terminal Table entry
for the destination.
From the entry the rcutine qets the delimiter
character anR puts it in the subparameter list to simulate a
reserve
character with a count of one.
The Multiple Insert/Remove routine then beqins to execute its main
processinq loop (TESTEOS). The routine compares the data offset with
the total size cf aata in the buffer (PRFSI2F).
If the data offset is
hiqher, the routine first ad;usts the PFFSIZE field to decrement any
loqicallv empty bytes remaininq at the end of the buffer and then
returns to the messaqe handler via the Peturn Interface routine
(IEDOLM) .
If the aata offset is lower than the total size of data in the
buffer, the routine passes the offset to the Address Finder routine
(IEDOAL), which returns the data address ana the address of the end of
the buffer unit in which the data address is located.
The Multiple
Insert/Remove routine then performs the translate-and-test operation
beqinninq at the data address.
The routine performs a translate-andtest for the lenqth of the unit, or if the urit is the last unit in
the buffer, for the lenqth of the aata in tte unit~

Program Organization

239

Tf the unit translates te all zeros, the routine qives control to
the Test and Shift subroutine (TESTSHIF).
This subroutine determines
whether there are any loqically empty bytes precedinq the data lust
translated.
If there are no em~ty bytes,
the subroutine returns
immediately.
Otherwise, the subroutine qives contrel to the Insert
Data routine (IEDCAP) to shift the data lust translated to the left in
the buffer, overlayinq the loqically empty tytes and, thereby,
movinq
the loqically empty area to the riqht end of the buffer unit.
Upon
return from the Insert Data routine, the Test and Shift subroutine
returns contrel to the main routine.
At this point, the Multiple
Insert/~emove reutine increments the data offset by the lenqth of data
1ust translated and branches back to the main ~rocessinq leop in order
to translate and test the next buffer unit.
If a translate-and-test operation on a unit results in a hit; that
is, a byte of data translates to nenzere,
the routine analyzes the
hit.
Tf the hit did
net occur on the first byte translated, the
routine qives centrol to the Test and Shift subroutine.
This
subroutine shifts the bytes ;ust translated to the left in the buffer,
thus movinq the loqically empty area to. tbe riqht, until it reaches
the byte that is the hit.
When the subreutine returns,
the main
routine increrrents the data offset by the lenqth of data lust
translated.
The Multi~le Insert/Femove routine finds the subparameter list
indicatec by the offset to which the hit byte translated and uses the
information in the subparameter list to build an input parameter list
for the Sk.i ~ Ferward and Scan routine
(IEDQAI).
The Multiple
Insert/Remove reutine temporarily sets the ~refix scan pointer to the
position ;ust ~recedinc the hit byte ana then qives centre1 to the
Skip Forward and Scan routine.
The Skip Forward and Scan routine
0etermines whether the hit byte is the first byte of the character
strinq that equals the strinq that qoverns tbe function s~ecified in
the suhparameter list.
If the character strinqs are not equal, the
~ultiple Insert/Femove routine increments the data offset past the hit
byte ano trancbes back te the main processinq loop.
If there
are
insuf.ficient characters remaininq in the tuffer to determine whether
the strinqs are equal, the character strinq being souqht is not in the
buffer.
Therefore, the routine clears to zero the byte associated
with this strinq in ~he translate table.
The routine then increments
the aata offset and branches back to the main ~rocessinq loop.
If the character strinqs are equal, the Multiple Insert/Remove
routine
determines whether an insert er a remove function is
requested.
Tf the function is an insert, the routine qives control to
the ~est and Shift subroutine, which shifts the character strinq to
the left
in the buffer.
The routine then uses the subparameter list
to build an in~ut parameter list fer
the Unit ~equest' Interface
routine
(IEDOAC)
and branches to that routine throuqh the User
Interface routine (IEDOUT).
The Unit Request Interface routine qets
another buffer unit, if ene is needed, for data insertion and links to
the Insert Data routine (IEDOAF).
The Insert Data routine inserts the
specified data, ad1usts the data offset and insert offset, and returns
to the main processinq leop of the Multiple Insert/Remove routine.
If

240

the Unit Request Interface routine finds ne em~ty units available, it
returns immediately to the Multiple Insert/Re~ove routine with a
4
condition
cede in reaister 15.
This routine discontinues the
translate-ano-test operation and returns to the Return Interface
routine (IEDOIMl with the 4 return code in reqister 15.
If the character strinq specifies a remove function, the Multiple
Insert/Remeve reutine determines the 'TO'
delimiter for the remove
function:
the
'AT' delimiter is the character strinq already found.
If the 'TO' delimiter is a character strinq, the routine uses
information from tbe subparameter list to build an in~ut parameter
list for the Skip to Character Set routine
(IEDQAJ)
and temporarily
sets the scan ~ointer to the point iust past"the hit byte.
The
routine then qives contrel to the Skip to Character Set routine, which
scans for the delimitinq character strinq and returns.
If the
'TO'
delimiter is an extent, rather than a character string, the routine
qets the extent from the subparameter list and adds it to the data
offset to qet a new data offset.
After tte 'TC' delimiter is found,
the routine determines whether the 'FROM~ delimiter strinq itself is
to be removed.
If this strinq is net to te removed, the routine qives
control to the Test and Shift subroutine to shift the 'FROM' delimiter
strinq to the left of any loqicallv empty bytes in the ~uffer~
If the
aelimiter is to be removed,
the routine increments the number of
loqicallv empty bytes (the insert effset) ty the lenqth ef the
'FROM'
delimiter strinq.
If the remove function specified is a contract
function, the routine trances to the
wain processinq loop.
If,
however, the data to be replaced is a delimiter character, the routine
must find the termiral entry for the destination and extract the
confiquration of the delimiter from the table.
At this point,
the
routine places the delimiter in the subparameter list and then
perferms the insert function.
If the remove function is a replace
function, the routine performs the insert function.
External Routines:

•

TEDOUI
modules:

User Interface routine -

te

the

fellowino

IEDOAF

Insert Data routine
te insert data at a specific
lccation or te shift data in the tuffer.

IEDOAI -

Skip Forward and Scan routine - to scan
character strinq in the ~uffer.

TFDQAJ

Skip to Character Set reutine
delimiter character strinq.

IEDQAO - unit Request Interface routine tuffer for the insert functien.
•

activate

IEDOAL -

to

-

for

a

specific

to scan for a 'TO'

qet

an

additional

Address Finder reutine - to fir.d the data address and the
address of the end of the tuffer unit in which the data
address is located.

Program Organization

241

•

IEDQTNT- Termname Tatle code - to qet a terminal entry address.

Tables/Work Areas:
~ranslation
Table fer the translate-and-test
operation, AVT, LeE, seE, buffer currently teinq processed.
Attributes:
Serially
proqram mode.

reusable,

refresha~le,

enabled,

resident,

pro~lem

Unit Bequest Interface Routine (Chart AO)
Module Name:

IFtCAO

Entrv Point:
TEtQAC01 activated bV the User Interface routine
(TEDOUI)
to qet a buffer unit requested by one of the insert routines
and to add that unit to the buffer currently beinq processed.
Functions:
This module ~rovides the interface to the Unit Request
routine in order to qet an additicnal tuffer unit and to attach i t to
the buffer that requires the extra space.
The Unit Request Interface routine first
determines whether the
to be inserted fits in the tuffer currently beinq processed.
If
the data fits, the routine builds a parameter list for the Insert Data
routine (IEDOAF) and branches to that routine to insert the requested
data. 1f the data does not fit, the routine links to the Unit Request
routine
(IEDOEW)
to qet an empty buffer unit.
If an empty buffer is
not available, the Unit ~equest Interface routine returns control to
the Peturn Interface routine (IEDQLM) with a return code cf X'04' in
reqister 15 and all zeros in reqister 8.
If an empty buffer unit is
available, the Unit Request routine returns control to the Unit
Request Interface routine with the address cf the empty buffer.
The
Unit Request Interface routine then links to the Address Finder
routine, passinq the data offset.
The Address Finder routine returns
the address cf the unit into which the data insertion is to be made.
TheTTnit Bequest Interface routine then links the new unit into the
buffer between the unit pointed to by the scan pointer and the
followinq unit.
The routine then moves the data from the address to
the end of the unit to the correspondinq lccation in the new unit and
increments the data offset, the insert offset, and the prefix size
fiela
(PRFSIZEf bv the unit size.
At this point, the Uni t Request
Interface routine builds a parameter list fer the Insert Data routine
and exits to that routine to insert the requested data.
~ata

The internal input parameter list is in the AVTF~RM field of the
AV!.
This list is not macro qenerated.
The format of this list is as
follows.

Offset

Index
to
IEDQAO

242

+2

+1

0

Data
Type
Flag

+3
Index
to
IEOQAF

Unused

Bxternal Routines:
•

IEDQBW - unit Request Routine - to qet the ttiffer unit
insert data.

•

IEDQAL - Address Finder routine - to qet the data offset
the unit address, a~d the end-of-unit address.

Tables/Work

Areas:

Attributes:
Serially
problem proqram mcde.

AV~,

needed

to

address,

LCE, SeE, tuffer currently beinq processed.

reusable,

refreshatle,

enabled,

resident,

Remove at Offset Boutine (Chart AP)
Module Name:

IEDCAP

Entrv Point:
IErQAP01 - activated throuqh tbe User Interface routine
(IEDOUI) to remcve and opticnally replace data in a buffer.
~unctions:
This module removes data from a sinqle specified
in a buffer and c~tionallv replaces that data with new data.

·location

~he
Remove at offset routine first examines the PRFSIZE field in
the buffer prefix. If this field contains zeros,
the buffer has a
lenqth of zero, and this routi~e exits to the Return Interface routine

( TEDOl M) •

When the buffer size is not zero, the Remove at Offset routine
calculates the size of the buffer prefix,
includinq any reserve
characters that maY.be present.
Then the routine .determines whether
the TO delimiter (specified in the TO operand of the MSGEDIT macro
instruction)
is a character strinq.
l f i t is a character strinq, the
routine sets up the AT delimiter (specified in the AT operand of the
MSGEDIT macrc instruction)
either from the scan ~ointer or from the
in~ut parameter list plus the prefix size, if the
user specifies an·
offset.
If the AT delimiter is the scan pcinter and the scan pointer
is beyond the end of the buffer, the functicn cannot be performed.
Tn
this case the routine exits with a· X'04' return code in reqister 15.
Otherwise,
the routine temporarily sets the scan pointer to the AT
offset, builds a parameter list fer the Ski~ to Character Set routine
(IEDOAJ)
and tranches to that routine through the User Interface
routine to scan for the TO character strinq.
When control returns, if
the strinq is not found in the buffer currently beinq processed,
the
routine exits te the Return Interface routine (IEDCLM) with a X'04'
return code in reqister 15. Dn the other hand,
if the strinq is
foun~,
the routine determines whether the TO strinq itself is to be
removed.
If the strinq is not to te removed, the routine decrements
the offset returned from the Skip to Character Set routine by the
lenqth of the strinq.
If the strinq itself is to be removed,
the
routine does not chanqe the offset, but gives control to its testinq
function loop
('ESTFUNC)
to determine which function is
being
performed.

Program Organization

243

If the TC delimiter is an extent, the Remove at Offset routine
oets the extent from the in~ut parameter list, adds the AT delimiter
to the extent to make the TO delimiter an offset, and branches to the
testinq functicn loop.
If the TO delimiter is an offset, the rcutine qets the delimiter
from the input parameter list and adds the prefix size.
At this
point, the routine determines whether the A~ delimiter precedes the TO
delimiter, and if it does not, exits to the Feturn Interface routine.
If the AT delireiter precedes the TO delimiter, the routine branches to
the testinq functicn loop.
If the AT delimiter is the scan pointer and the TO delimiter is
zero, the sinqle cyte at the scan ~ointer is to be remcved.
The
Bemove at Offset routine sets the TC delimiter equal to the scan
pointer plus ene and branches to the testinq functionlcop.
After the AT and the TO delimiters have been determined,
if the
remove request is to the left of the scan ~ointer in the buffer, this
routine ad;usts the scan pointer tc the left accordinqly.
~he testinq functicn loop
(~ESTFUNC)
of the Bemove at Offset
routine first sets the data offset equal to the TO offset, sets the
insert offset equal to the lenqth between the TO and A~ offsets,
and
determines which function is beinq performed.

If the TC delimiter is beyond the end of the buffer, the routine
ad;usts the scan pointer to point to the end of the buffer so that all
data from the AT delimiter to the end of the cuffer is removed or
replaced.
If the function is a contract operation, the routine bypasses the
next insert operation, builds a parameter list for the Insert Data
routine (IEDOAF), and links to that routine through the User Interface
routine to shift the loqically empty area to the end of the buffer.
On return, the Eeffove at Offset routine decrements the data offset by
the insert offset, sets the result as the new data size (PBFSIZE), and
returns to the Return Interface routine.
If the function is a replace operation, the routine builds a
parameter list for the unit Request Interface routine
(IEDQAO)
and
branches to that routine throuqh the User Interface routine to insert
the replacement data in the buffer.
On return, the routine determines
whether the re~lacement data was exactly as lenq as the data removed.
If,the replacement data was the exact lenqth, the routine exits to the
Peturn Interface routine:
ctherwise, 'the routine must close the
buffer.
To close the bu~fer, the routine cuilds a parameter list for
the Insert Data routine and branc~es to that routine through the User
Interface routine to shift the loqically em~ty area to the end of the
huffer.
When control returns, the Remove at Offset routine decrements
the data offset ty the insert off~et, sets the result as the new data
size (PRFSIZE), and returns control to the Return Interface routine.
~he
address of the input parameter list for this routine is in
reqister 1.
If the TO delimiter is a character strinq, the fermat of
the parameter list is as follows:

244

Status
Byte

Index to
IEDQAP

+3

+2

+1

Offset 0

+4

I

Index to
IEDQAF

Insert Data (optional)

+8
Index to
IEDQAJ

Parameter
List Length

I

X '00'

I

Index to
IEDQAO

I

Register 15
Offset

+12
Address of
Character
Stririg

Blank
Character
(optional)

+16

AT Delimiter
(optional)

I

If the TC delimiter is an extent or an offset, the format of the
parameter list is as follows:

Offset

Index ,to
IEDQAP

+4

I

+3

+2

+1

0

Status
Byte

I

Index to
IEDQAF

I

Index to
IEDQAO

Insert Data (optional)

+8
To Delimiter

I

At Delimiter (optional)

Bit 7 of the IErOAP index byte indicates tbe follcwinq:
OFF - remcve at the specified offset
ON - remcve at the scan pointer
Bxternal Routine:
IEDOUI - User Interface rcutine - to
followina modules:

activate

the

IEDOAF
Insert Data routine - to shift the loqically empty area
to the end cf the buffer.
IEDOAJ - Skip to Character Set
delimiter character strinq.

rcutine

to

scan

for

the

TO

IEDQAO
Unit Request Interface routine - to insert replacement
data in the buffer.
Tables/Work Areas:

AVT, buffer currently beinq processed,

Attributes:
Serially
problem proqram mcde.

reusable,

refresharle,

enabled,

LeF,

SCB.

resident,

Program Organizaticn

245

Operator Contrel Interface Routine (Chart AC)
Module Name:
Entry

I!DCAO

IEtCA001 - called by the CODE macro expansion in an
sutqroup to test fer o~erator control characters and either
return to the caller or tpost the buffer.
~oint:

TNHD~

Functions: This module tests the ~refix status byte (PRFSTAT1) for a
'not-last-buffer' flaq or a 'TSO tuffer' flaq and, if e~ther of these
flaqs is on, branches back to the calling routine.
The Operator
Control Interface routine next compares t~e character string in the
AVT work area
(AVTDOUELl
with the operator control
characters
(AVTCTtCH) •
If these character strinqs de not match, the routine
returns contrel tc the caller. Otherwise, the reutine examines the
SCB status byte (SCES!ATE) to determine whether the 'lock' bit
(SCBWCKINl is en. If this bit is en, the reutine· immediately branches
back to the caller.
The Operator Control Interface routine qets the destinaticn key
for the oriqin frem the tu~fer prefix (PRFSBCE) and, if it is equal to
zero, returns centrol to the callinq routine. If the key is not equal
to zero, the reutine passes this key to the Termname Table code
(IEDOTNTl, which returns the address of the Terminal Table entry. The
Operator Contrel Interface routine examines the status byte in the
entry
(TBMSTA!E)
to determine the status of the 'operator control'
flaq.
If this flaq is cff, the routine returns to the callinq
routine.
otherwise, the routine qets from the AVT the offset to the last
byte of the character strinq in the buffer and places the offset in
the scan pointer field (PRFSCAN). Next, the routine qets from the AVT
the address of the Operator Centrol QCB and places that address in the
RCB of the tuffer.
The routine then sets the eperator control
priority ana t~osts the tuffer to O~erator Control by branchinq to the
DSPPOST label in the TCAM Dispatcher.
Rxternal Routine: IEDOTNT - Termname Table cede - to qet the Terminal
1atle entry address.
Tables/Work Areas:

AVT, buffer, SeE, LeE, Terminal Table entry.

Attributes:
Serially
problem proqram mede.

Cutoff

~essaqe

Module Name:

reusable,

refreshable,

enabled,

resident,

Transmission Routine (Chart AU)
I!rCAU

Entry Points:
•

246

TFDQAU - the Cutoff routine entry ~oint - activated by the User
Interface reutine (IEDOUI) from the CU1CFF macro expansion to test
the cutoff count and initiate the cutoff function, if needed.

•

CUTFFQCP+12 - tbe Cutoff suctask entry ~oint activated by the
Dispatcher when the Line End Appendaqe tposts the LCB to the
Cutoff QCE in crder to execute the cutcff channel ~roqram and to
tpost the final buffer to the messaqe handler after the channel
proqram has terminated.
~CAM

Functions: ~his 'module cuts off the transmission of a messaqe beinq
received after the receipt of a user-specified number of byte~ or on
detection of identical characters in the tuffer.
The Cutoff Message
Transmission routine qains control to process each tuffer of a roessaqe
as a result of the CU~OFF macro in a messaqe handler.
This routine
detects whether the cutoff function is needEd and if it is, performs
the necessary functions to activate the Cutoff Messaqe subtask.
The
subtask actually stops the transmission of the messaqe.
The specific functions of the routine and of
respectively are described in the fcllowinq paraqraphs.
•

the

subtask,

Cutoff Messaqe Transmission Routine

The Cutoff Messaqe Transmission routine first tests t~e SCB
"cutoff" flaq
(SCBCUTFN)
to determine 'tlhether a cutoff function is
already in prcqI€SS.
When the "cutoff" flaq is not set, the cutoff Messaqe Transmission
routine continues processinq to determine whether the cutoff function
is needed.
If the tuffer has a lenqth of zero, the routine exits
immediately to the callinq routine.
~he format cf the CUTOFF macrc-qenerated parameter
list that is
used by the User Interface rcutine tc activate the Cutoff ~essaqe
Transmission routine is as follows:

Requested Cutoff
Length

~he cutoff routine next determines if all the characters in the buffer
are identical, indicatinq a line error.
If sc, the routine initiates
the cutoff functicn, described below.

rf no identical characters are detected, the routine increments
the cutoff count field (SCBBKFCT) in the seE by tbe data size of the
current buffer (PF~STZE).
If the result is not qreater than the userspecified maximum,
the Cutoff Messaqe Transmission routine returns
control to the callinq routine.
If the maximum has been exceeded, the
routine initiates the cutoff function.
To initiate" the cutoff functicn, the Cutoff Messaqe Transmission
routine sets the 'cutoff' flaq in the SeE, sets the ICB 'error' flaq
(LCBPFCPG), ana puts the adaress of the Cutcff QCE intc the lCBQCBA

Pxogram Crganization

241

field
of the LeB.
The~e
flaq settinqs indicate to the Line End
Appendaqe that the Cutoff Messaqe Transmission subtask is to be
activated.
After initiatinq the cutoff function, the Cuteff routine
returns control to the callinq routine, the Return Interface routine
(TEDOLM) •
'cutoff'
flaq is set, a cutoff is in ~roqress for the
When the
current messaqe.
In this case, the routine examines the ICE teB field
(LCBOCBA).
If theOCB field is nct zerc and the current tuffer is the
last buffer of a messaqe, the routine turns off the LCE 'error'
flaq.
If the OCE is zere, the cutoff functien is ccmplete.
The routine then
exits to the callinq routine.
•

cutoff Messaqe Transmission subtask

The Cutoff Messaqe Transmissicn subtask stops the transmission
a messaqe by activatinq the appropriate channel proqram.

of

~

channel proqram check condition indicates initial entry to the
subtask.
In this case, the subtask examines the UCB to find
which
channel proqram is to be set uP.
For teletype terminals, the channel
proqram is a Write-Break; for IBM 2260 terminals, a Write-Break and
Read-Skip;
and fer all other IBM terminals, a Bead-Skip.
The subtask
then issues the SVC 0 for the apprc~riate channel proqram and exits to
the TCAM Dispatcher at entry point DSPDISP.
When there is no channel prcqram check conditien,
the Cutoff
Messaqe Transmission subtask qets from the LCB the address of the
first buffer received after initiation of the cutoff.
The subtask
flaqs this buffer as the last buffer of the messaqe and sets its data
size to, one.
The subtask then exits to the TCAM Dispatcher with an
indication to t~ost this buffer tc the S~AFTMH QCB.
External Routine:
activity.

as

Tables/Work Areas:

EXCP

routine

(SVC

0)

to

start

channel

AVT, DCB, DEE, UCP, SCE, LCE, QCB, buffer.

Attributes:
Serially
problem proqram mode.

reusable,

refreshable,

enabled,

resident,

Lookup Terminal Entrv Routine (Chart AV)
Module Name:

IEDOAV

Bntry Point:
IEDCAV01 - called frcm the FCRWAFD macro expansion cr by
ancther MH routine to assiqn a buffer to its destination.
~unctions:
~estination

The Lookup Terminal Entrv routine first
qets
the
key from either reqister 1 er the buffer prefix.
If the
key is not available, the routine exits with a X'04'
return code in
reqister 15.
If the destination key is present in reqister 1, the
routine places the key in the PPFDEST buffer prefix field fer a.header
buffer or the AVTFAFM3 field in the AVT for a non-header tuffer.
248

After a destinatien key has been found, this routine passes that
key to the Termname Table code (IFDQTNTl, which returns the address of
the Terminal ~atle entry.
The Lcokup Ter~inal Entry rout{ne returns
the Terminal ~atle entry address to the callinq routine in the AVTPARM
field of the AV!.
The reutine then qets the address of the QCB from
the Terminal Tarle entry and determines whether there is queuinq for
this terminal. If there is no queuinq or if the QCE is a PUT
application proqram QCE,
the reutine places a X'04' return code in
reqister
15 and exits to the calliiq routine.
If queuinq is
~pecified,
the reutine saves the OCB aaaress in the SCEDESTQ field of
the SCB, places a X'OO'
return cede in reqister 15, and returns
centrol to the caller.
External Routine: IEDOTNT
Termname ~able coae - to ottain the
address of the Terminal ~atle entrY for the destination.
Tables/Work Areas:
Termname Table, Terminal Table, AVT,
currently beinq processed, LCE.
Attributes:
serially
problem proqram mede.

reusable,

refreshable,

SeE,

enabled,

buffer

resident,

Translate Buffer Feutine (Chart AWl
Module Name:
!ntry Point:
or from the

IEDCAW
!EDOAW01 - called when the CODE macro is issued in an MH
subtask te translate a tuffer.

S~ABTMH

Functions: This routine initializes the
translates the data in a buffer.

~ranslation

Table address and

When the Translate Puffer routine is activated, reqister 1 points
to a input parameter list.
The fermat of this list is as follows:

I

Offset 0

I

I

+1
+2
+3
~------r-------~------~----~
Index
Parameter
.
X '00'
·Status
to IEOQAW List Length

+4~----------------------~----~
Address of Translation Table (optional)

The settinqs of the status bits are as follews:
Bit 0

ON !ranslation Table address is in the DCE
CFF Translation Table a1dress is in the input
list

Pr09~a.

parameter

Organization

249

Bit 1

ON ~enstanaard Translation Tatle
OFF Standard Translation Table

Bit 2

ON

~he

CODE macro is in the INBUF

qroup
OFF The
qroup

CODE

or

OUTEUF

delimiter

macro is in the INHDR or OUTMSG delimiter

The format of a Translaticn Table is as follows:

Offset

0

+1

Status
+4

I

Address of Output Translation Table

1----------------tI
.. ~

+260 ....

L

Input Translation Table
(256 bytes)

.....

Output Translation Table
(256 bytes)

:r

The Translate Buffer routine may be entered trom a CODE macro
expansion or from the STARTMH subtask. If entry is from a ceDE macro
expansion r the routine determines whether the CODE m~crc is in an
INHD~
or OUTHDF subqrcup.
If the macro is in either of these, the
routine determines whether the next buffer is tc be processed hy the
CODE macro ex~ansion.
If the next buffer is net to be processed by
the macro, the routine turns on the SCBCODE bit (in SCESTATE)
in the
SCB and saves the address of the CODE parameter list in the SCBTRANS
field to ensure that the next and subsequent buffers can be translated
via a link· from the STABTMH subtask.
The Translate Buffer rcutine qets the address of the translation
table from either the DCB or the parameter list. If the translat.ion
table is a dvnawic translation parameter list, the routine passes
control to the Dvnamic Translaticn routine (IEDOA3), which indicates
via.a branch table the return location for ~roc€ssinq.
On return, if the table is a standard translaticn table, the
routine examines the first word of the table and, if it is zero, to
indicate that the table is an EBcrIC translation table, returns to the
caller via the Re"turn In terface routine (IEtQIM). If the first word
is not zero. the routine points to either the input translation ~able
for receiviriq cr the cut~ut translaticn table for sendinq.
Next. the ~rarislate Euffer routine finds the offset te the first
data byte of the buffer err if the buffer is a canceled buffer, to the
offset to the first hyte fc110winq the last EOB ~haracter. At this
point the translation operations beqin. The routine calculates the
total number cf bytes to be' translated and, if the buffer is of zero
lenqth,returns tc the callinq routine. Fer ncnzero lenqth buffers,
the routine passes the offset of the first byte to be translated to
the ~ddress Finder routine (IEDQAL).
The address returned by the

250

Address
~inder
routine is the startinq address for the first
translation.
~he Translate Buffer routine decrements the
end-of-unit
address returned by the startinq address tc ottain the lenqth of data
in the first unit. If the total lenqth of data is equal to or smaller
than the lenqth of data in the first unit, tbe data ends in the first
unit, and the routine iss~es a branch to the label ~~ANS2.
At ~RANS2,
~inal
translation of the total lenqth of aata is performed, and the
Translate Buffer routine returns to the callinq routine.
If the data in the buffer does not end in the first unit,
the
~ranslate
Euffer routine decrements the total data lenqth by the
lenqth of data in the unit, and then translates the entire unit.
The
routine qets the address of the next unit from the TIC field of the
unit lust translated.
The startinq address is set at the start of
data
(past the FCF)
in the unit.
~he
~ranslate Buffer routine
compares the remaln1nq total lenqtt. of data to be translated ~ith the
key lenath
{AVTKFYLEl.
If the tctal lenath is equal or smaller, the
data ends in this unit, so the final translation is made and this
routine exits tc its callinq routine.
If the data does not end in the second unit, the total lenqth is
decrmented by the key lenqth, and the entire unit is translated.
~he
Translate Buffer routine aets the
address of the
next unit and
continues as lust described until all the data in the buffer is
translated.
External

Foutin~s:

•

IEDOAI - Aadress Finder routine
address fer translation.

•

TEDOA3
Dynamic Translaticn
translaticn of the buffer.

Tables/Work

Areas:

AVT,

to

initialize

routine

to

the

startinq

perform

dynamic

LCB, teB, SCP, current buffer, Translation

~able.

Attributes:
Serially
problem proaram mede.

Screen

~outine

Module Name:

reusable,

refreshatle,

enabled,

resident,

(Chart AY)
IEDeAY

Entry point:
TEDOAY01
activated by the User Interface routine
(TEDOUI) to initialize for a screen command modification operation on
the buffer destination.
Functions:
!his module checks the Unit Control Eleck
device beinq used and initializes fer a screen command
operation on the destination.
~eqister

format of the

(UCBl for the
modification

1 centains the address of the input parameter list.
list is as follows.

The

~arameter

PIcgram Organization

251

Bit 7 of the index byte indicates the follcwinq:
ON - command chanqe requested
OF~ - return the current functien settinq only
~he

requ~st code can be
X'OO' - to indicate
X'01' - to indicate
X'02' - to indicate

one of the follewinq:
a write at display cursor operation
a write at line address operation
a write erase operatien

~he Screen routine first
bu~fer ~estination is an IBM

checks the UCB to determine whether
2260 Local or an IBM 2260 Remote.

the

If the destination is a 2260 lecal, the routine uses an index hyte
from the inrut ~arameter list to locate the requested function tyte in
an internally defined table. The routine ~laces the function byte in
the ~ey field of the tuffer and sets the 'screen request' bit in the
LCBSCRNN field cf the LCE. At this ~oint the routine has completed
processinq and returns to the Return Interface routine
(IEDQIM)
with
the new functicn tyte in reqister 15.
If the destination is a 226C Remote, the Screen routine verifies
that the destinaticn is a screen device.
If it is not a screen
device, the rcutine places zeros in reqister 15 and branches to the
~eturn Interface routine.
If the destinaticn is a screen device, the
routine qives certrol to the Termname ~arl€ cede (IEDQTNT) to qet the
address of thE terminal entry for the destination. Upen return, the
Screen routine finds the device-derendent area of the entry and places
the current settina of the function byte in reqister 15. If a chanqe
of function is reouested, the routine selects a new function byte,
nlaces it in the current function byte in the terminal entry, and then
branches to the Beturn Interface routine.
External ~outine: T~DOTN~ - Termname Tarle code - to qet the address
of the terminal entry for the buffer R~stination.
Areas: AVT, buffer currently teinq processed,
DEE, UCE, Term1nal Tatle.

Tables/~ork

Attributes:
~erially
problem proqram mcde.

252

reusable,

refresharle,

enabled,

LeE,

SCB,

resident,

Skip Backward Routine
Module Name:

(Chart AO)

IEDCAO

Fntry Point:
I~DOA001 - called throuqh
the User Interface routine
when SE1sCAN is issued in an ME to move the scan ~ointer tackward in
the header of a messaqe a specified number of bytes.
Functions:
This routine moves the scan pointer backward
number of bytes in the header of a messaqe.

a

specified

When the Ski~ Backward routine is activated, r~qister 1 ~oints to
an input parameter list.
~he format of this list is as fellows:

Skip Count

Tf the scan pcinter is beyond the end cf the' buffer,
the Skip
Backward routine returns immediately with a Y'04' in reqister 15.
When the skip count in the input parameter list contains zeros,
this routine links to the Address Finder routine (IEDQAL) tc qet the
scan pointer address.
On return, the Skip Backward routine returns to
the callinq rcutine with the scan pointer address in reqister 1 and a
X'OO' return code in reqister 15.
When the skip count is not equal to zero, the Skip Eackward
routine places the prefix scan ~cinter cffset from the tuffer pre~ix
{PRFSCA~l
in a scan pointer offset reqister and then links to the
Address ~inder routine (IEDOAL) to qet the address of the scan pointer
and of the unit in which it is located.
Tbe Skip Eackward routine
puts the address cf the last byte cf the FeB ef this unit in a "start
of unit" reqister and puts the specified ski~ ceunt in a count
reqister.
The Skip Backward routine next enters a main processinq loop that
first decrements the scan ~cinter address and cffset reqisters by ene,.
If the offset is reduced to zero, the skip is into the prefix and the
routine puts a return code of X'04' in reqister15 before returninq to
the callinq routine via Return Interface (IEDOLM).
If the offset is
not reduced to zero, the routine ccm~ares t~e scan pointer address to
the "start of unit" reqister. If the scan l=ointer address is hiqh,
reqular processinq continues~ otherwise, the Address Finder routine is
used to qet a new scan pointer address and a new "start of unit"
address for the precedinq unit.

Program Organization

253

If the byte at tbe current positicn of the scan pointer is a
blank, the Skip Backward routine branches tc reenter the main
processinq loop. If the byte is not a clank, the routine decrements
the count reqister bv one. If this does not reduce the count to zero,
the routine branches to reenter the loop.
When the count is reduced to zero, the skip is complete. At this
point, the Skip Backward routine updates the prefix scan pointer
(PRFSCAN) from the scan pointer offset reqister, sets a return code of
X'OO' in reqister 15, and returns to the callinq routine via Return
Interface.
External R~utine: rEDOAl - Address Finder routine
to return the
address of the scan point~r and of the unit in which it is located.
Tables/Work Areas:

AVT, tuffer beinq processed.

Attributes:
Serially
problem prcqram mcde.

reusable,

refreshacle,

enarled,

resident,

Insert at Cffset Foutine (Chart A2)
Module Name:

IErOA2

Bntrv ~oint: IEDCA201 - activated bV the User Interface
(TEDOUT) to insert data in a messaqe at a s~ecific location.
This module
specific location.

~unctions:

inserts

data

into

a

routine

messaqe tufter at a

If the buffer has a lenqth of zero, this module puts a return code
of X'04' in reqister 15 and exits to the Return Interface routine
(IEDOIM) •
Otherwise, the Insert at Offset routine determines whether
the insert operation is the current locaticn of the scan ~ointer.
If
the· insert is at the scan pointer, the routine qets the insert offset
from the prefix field
(PRFSCAN)~
otherwise, the routine qets the
offset from the input parameter list, the address of which is in
reqister 1. The format of the input parameter list is as fellows:
Ofhet~______~______~~____-r+~3____~

o

Index to
IEDQAO .

Index to
IEDQA2 .

+4~------~------~---------------1

Insert Data

+8~--------------~---------------Insert Offse·t
(optional)

254

Bit 7 of the IEDOA2 index byte indicates the followinq:
ON
OF~

- the data is re~eated characters
- the aata is a character strinq

Tf the data is a charact€r strinq, the format of the insert data
is as follows:

wore

Address of Character String

If the data is a strinq of identical characters, the fcrmat of the
insert data word is as fellows:
Offset 0

+t

+2

~~--~T-------~--------------~

Reserved

~he Insert at Offset routine next determines
whether the insert
offset is qreater than the buffer siZE. If the insert offset is
qreater, the rcutine does not perform the insert operation, but
returns contrcl directly to the Return Interface routine (IEDQL~) with
a X'04' return code in reqister 15.

If the insert offset is not qreater than the buffer size, the
Insert at Offset routine tranches to the Unit ~equest Interface
routine (IEDCAO) via the User Interface routine to insert the data in
the buffer •. If, on return, the Insert at Cffset routine finds that no
empty space is available for the inserticn, it places a X'04' in
reqister 15 and exits to IEDOLM. If there is loqically em~ty space
remaininq in the ruffer, the Insert at Offset routine links to the
Insert Data rcutine (IEDOAFl via the User Interface routine to shift
the em~tv space tc the end of the tuffer. U~cn return, the routine
calculates the final data size, places it in the PRFSIZE field in the
~uffer prefix, and exits to the Return Interface routine.
Routine: TEDQUI - User Interface routine - to
followinq modules:

~xternal

activate

the

IEDOAF
Insert Data routine - to shift any loqically. empty span
to the ena cf the tuffer.

IEDQAO - Unit Request Interface routine - to insert
buffer.

data

in

the

Plogram Crganization

255

Tables/Work

Areas:

Attributes:
Serially
nroblem proqram mede.

AV!~

buffer currently heinq processed, ICB, SCB.

reusable,

refreshatle,

enabled,

resident,

Dynamic Translatien Foutine (Chart A3)
~odule

Name:

IErOA3

Entry Point: IEDQA3 - entered from the Translaticn routine
(TEDQAW)
via a Branch and Link when the translaticn table pointer in the DeB
points to a ~RANLIS1 macro expansion.
~unctions:

Tbere are two main functions of the

Dynamic

Translation

routine.
1.

To determine, on the first messaqe input from a line usinq dynamic
correct table from a list of tables.
The
expansion provides the list of tables and one or
more centrel Etrinqs.

translation~ the
~PA~lIST
macro

2.

To retrieve from the appropriate option field, the address of a
translation table.
When the correct ta~le was d~termined in the
first functio~, its address is stored tc be used here.

To determine the correct table, the centrol strinq is expected to
beqin within the first 3 characters of the messaqe. For a correct
determination~ the user must assure that at least one
character that
is uniquely translated for each table specified is included in the
strinq. Once a match is feund~ the Dynamic Translaticn routine
assumes that the table is the only correct ene.
~he
maximuw lenqth of a strinq is eiqht characters. This routine
moves ten characters frow tbe buffer into a work area in the AV~ and
translates them usinq the first taplein the list. After translation,
the ryvnamic ~ranslation routine forces each character to upper case.
The routine then attempts 3 times to compare a strinq from the list to
the 1ata input~ The routine repeats this c~eration for each strinq
and then uses the next table specified. If the Dynamic Translation
routine finds no rratch before exhaustinq all tables and all strinqs,
the routine sets an errcr bit in the seB and makes an error return.
If the routi~e finds a match, the address of the table is stored in
the option field for this terminal.
!hereafter, until loqof£ or
hanqup in a TSO environment or hanqup in a TCAM envircnment, that
table will te used for all input and eutput translatien for that
terminal.

~he second fur.ction of
the Dvnamic Translatien routine merely
finds the opticn field and leads the translatien address in the
reqister used bv IEDOAW. The routine then returns control to IEDQAW
via reqister 14. All etber reqisters are restored to their value at
entry.

256

5041 Processinq:
certain dial lines may be desiqnated as terminal ty~e 5041.
This
indicates that a line will support (includinq translation) a 1050 or
a 2741 terminal.
~he type is determined at
dial up time.
Dynamic
translation will always be specified for a 5041 line.
lEDQA3 will
know the type at entry and will only try 1050 translation tables for
a
1050 and
2741 tables for a 2741. !his is accomplished by the way
the TRANLIST macro is used.
For a non-5041
line,
all tatles are
included in the LTS~= o~erand
and the byte preceding the VCON is
X'OO'. ~or 5041 lines, 1050 tables are specified in the L1050=
operano and the byte precedinq the table VCON is set to X'02', 2741
tables are specified in L2741= and the byte is X'01).
External Foutines:
•
•

IF-DOAL -

Address Finder routine - to qet the address of the

IEDOUI - User Interface routine Address routine (IEDQAE).

to link

to

the

locate

data.
Option

~ield

~able/Work

Areas:

Attributes:~

AVT,SCE,LCE,DCB

Serially reusable, reentrant,

~reblem

proqram mode.

Forward Routine (Chart AS)
~odule

Name:

IEtOA5

Entry Point:
IEDOA501
activated eitter by the User Interface
routine (IEDOUI) when the FOFWARD macro is issued in an MH or from the
Multiple Fcutinq suttask.
Functions: ~his routine determines the destination to which a
messaqe
is to be sent.
If,
however, the buffer has a lenqth of zero, the
buffer is a TSO buffer, the buffer is a nen-recalled text tuffer,
or
the line is in extended lock mode, this routine returns immediately to
the callinq reutine.
When the Forward routine is activated, reqister 1 ~oints to the
first of up to three parameter lists.
The first parameter list is for
the Forward reutine itself.
The Forward routine passes the address of
the second parameter list to the User Interface" routine, thus linkinq
to one of three possitle subsidiary rcutines.
These three routines
are the Skip rerward and Scan routine
(TF-COAI),
the Locate Option
Field
Address routine
(IFDQAE),
and the Binary Search routine
(IEDOA1).
If the second parameter list is for either the Skip Forward
and Scan routine cr the Locate Opticn Field Address routine, the third
paramater list is for the Einary Search routine,
which is activated
when the routine of the second parameter list passes the address of
the third parameter list to the User Interface routine.
The format of the
as follows:

in~ut

parameter list for the Forward routine

Prcgram organizaticn

is

251

+4

Index
to IEDQAS

I

+2

+1

Offset 0

Parameter
List Length

+3
Status

I

Index to
IEDQBA

Address of the End-of-Address
Character String

Length of
EOA String

+8

Address of the User
Error Recovery Routine

Optional

Optional

+12
Variable Data

+16
Index to
IEDQAI

+20

Parameter
list Length

I

Reserved

I

Length
(may be I)
initalized

Address of the character string
(may be initialized)

status byte:
X'80'
X'40'
X'20'
X'08'

'Tariable

-

This byte has the followinq definitions.
the destination name is
the destination name is
the 8estination name ie
an End-of-Address (FOA)

data:

~his

defined in the macro
in an o~tion field
in the tuffer
strinq is specified

field can have one of the two following formats.

+12

+12

When the ?orward routine receives control from one of its
subsidiary routines, it examines a status tyte in its in~ut ~araroeter
list to determine which subsidiary routine was executed.
•

~eturn

frore the Skip Forward and Scan Rcutine (IEDOAl}

Tn this case; the Skip Forward and Scan rcutine has attempted to
qet the name ef the destination fer the message from the messaqe
buffer. If reqister 15 contains a neqative value, the name is not
complete in the current buffer ann the Pcrward routine returns to its
callinq routine with the neqative return code.
If reqister 15 does net ccntain a neqative value, the Forward
examines tbe status byte to determine whether the macro
defined an FOA strinq. If so, this routine com~ares the EOA string in
its parameter list with the strinq returned by the Skip Fcrward and
Scan routine.
If the two character strinqs do not match and the EOA
character strinq is one ryte lonq, the Fcrward routine tests each byte
of the returned character strinq for an ECA. If the routine finds an
EOA or if tre strinqs match, there are no more destinations. On
rout~ne

25A

oriqinal entry from the Multiple Routinq routine, the Porward routine
places zeros in the secendary destination field in the seE (SCBMRFSD)
and exits to the callinq routine with an X'C8' return code in reqister
15.
If the BOA is found and entry was not from Multiple Routinq,
no
valid destinatien has been found:
therefore,
the Forward routine
performs its error recovery proc~dure.
(~his procedure
is discussed
after the Beturn from the ~inary SEarch routine paraqraphs.l
When entry is from th~ FORWAFD macro expansion and either the ~OA
is net found or if no EOA strinq is defined,
the Fcrward routine
places the prefix scan ~ointer
(P~FSCAN)
at the last byte of the
strinq returned, places the last byte in the secondary destination
field of the SCE, and overlays the last byte with a unique character.
At this point, reqardless of which functicn activates this routine,
the ~orwara routine prepares to link to the routine represented by the
third parameter list - the Binary Search routine.
The Forward routine
places the address and the lenqth of the character strinq returned by
the Skip Forward and Scan routine in the in~ut ~arameter list for the
~inary
Search routine.
Binary Search is activated when the Forward
routine passes the input parameter list to the User Interface routine.
•

~eturn

frem the Locate Option Field Address Routine

(IEtQAE)·

In this case, the Locate Option Field Address rcutine has
attempted to lccate the name of the destination for the messaqe in an
option f.ield.
If reqister 15 contains zero, the Locate Option Field
Address routine was not able to find the name; therefore, the Forward
routine branches to its error recevery prccedure.
If reqister 15
contains a value, it is the address of the option field that contains
the ~estinatien name.
In this case, the Fcrward routine
places the
address and lenqth of the characterstrinq that is in the option field
in the input parameter list for the Einary Search routine.
The
Forward routine then links to the Binary Search routine by passinq its
input parameter list to the User Interface routine.
•

Beturn frcm the Binary Search Routine (I!tQA1)

If the Binary Search routine is the first subsidiary routine
linked to from the Forward routine, the aadress of the destination of
the messaqe is defined in the FORiARD macro.
Subsequent prccessinq is
the same in this case as for the return after searchinq for a
character stinq defined in the buffer or in an option field.

1f, upon return from the Binarv SEarch routine, the Yorward
routine finds a zero value in reqister 15, no matchinq destination was
founa.
Therefcre, Forward tranches to its errcr recovery procedure.
If reqister 15 contains a nonzero value, that value is the offse to
the Termname Tatle entry fer the destinaticn.
In this case,
the
Forward routine passes the offset to the Looku~ routine (IEDQ!V) to
qet the appropriate Destination QCB address.
Upon return, the forward
routine returnstc its callinq routine with a return cede of X'OO' in
reqister 15.

Program Organization

259

•

Brror Feccvery Procedure

The error recevery procedure of the Ferward routine first examines
the status byte in its inprit parameter list to determine whether the
user has defined a special routine to attempt error recovery. If so,
the ~orward routine links to the u~er-specified routine. If the user
routine returns with the address of another character string in
reqister 15, the Forward routine links rack to the Einary Search
routine to try to match this new entry with an entry in the Termname
~able.
A return reqister is set, however, to prevent relinkaqe to the
user routine if no match is found.
If no match is found or if no UEer routine is defined, the Forward
routine determines whether a dead-letter queue is defined by examining
the AVT field AVTDLOX. If not, the ~orward routine places zeros in
the secondary destination field of the seE (Multiple Routing only) and
returns to its callinq routine with X'04' in register 15. If a deadletter queue is defined, the Forward routine uses the lookup routine
to qet its restination OCB address and then returns tc its callinq
routine.
Bxternal Routines:
•

IEDOUT - tbe User Interface routine to link to the Skip Forward
and Scan routine (IEDQAI), the Locate C~tion Field Address routine
(IEDOAE). and the Binary Search routine (JEDQA1).

•

IEDOAV - lookup routine - to find the address of
0CE for a s~ecific terroinal entry.

•

TEDOAl - Address Finder routine - to get the address of
byte in a terrrinal entry.

~ables/~ork

Areas:

AVT, SeB, buffer currently reinq

Attributes:
Serially
problem proqrare mede.

reusable.

refreshable,

the

Destination
the

last

~rocessed.

enarled,

resident,

Line Control Initialization Foutine (Chart AE)
Module Name:

IEDCA6

Point: IEDOA601 - activated by the UEer Interface routine
(IBD0UI)
to initialize SCB fields that indicate the intervals between
the line centrel characters to be inserted.
~ntrv

Functions: This module initializes fields in the staticn control
block
(SCBl
tc indicate the intervals between the line control
characters to be inserted.
The Line Control Initialization routine initializes the
fields in the seE.
260

followino

1f EOBs are to te inserted,

1•
2.

If
1•
2.

SCBEOBS7
SCBEOEAC

-

-

initialized to the interval ret ween EOBs.
initialized to the interval tetween EOEs.

are tc be inserted,
SCBEOBSZ - initialized to the interval tetween ETEs.
SCBEOEAC - initialized to the interval tetween ETBs.

~TBs

If TTBs are to be inserted,
1•
SCBITESZ - initialized to the interval retween ITBs.
SCBITEAC - initializEd to the interval ret ween ITEs.
2.

1f the in~ut ruffer to this module is a text tuffEr or has
of zero,
the reutine rpturns immediately to the callinq
throuqh the Return Interface (IEDQIM1. Otherwise, the Line
Initialization reutine uses the Termname Table code (IEDQTNT)
the terminal entry address for the destination.

lenqth
routine
Control
to qet

~he Line Central
Insertion routinE then examines the SCT to
determine whetber an EO~ is defined for the destination terminal.
If
no EOT is defined, the module returns to IEDQLM.
When an EOT is
defined,
the routine examines the seT fer an EOB entry for this
terminal.
When an FOB is not defined and the terminal is not in
transparent mode or when an EOP is defined and there is no checkinq
for this terminal, at the label SE~FIELD the reutine sets the "MSGFOFM
request' bit in the SCB, puts the subblock and block reqisters in the
SCB, puts a X'OO' return code in reqister 15, and exits to IEtOLM.
In
all other cases the processinq continues to find thE block extent.

When the bleck extent is specifiEd on the MSGFCRM macro, this
routine sets the tlock reqister from thE ~arameter list.
For a
terminal in transparent mode and not en a ESC line, the routine
performs the exit functicn~ described in the precedinq paraqraph.
For
a terminal in transparent mode on a BSC line, the reutine sets the seE
'transparent' flaq, puts the block reqister in the SCE, puts a 1'00'
return coae in reqister 15, and exits to IEDCLM.
When the t1eck extent is specifiea and the terminal is not in
transparent mede, this routine branches te the code to find the
sutblock extent.
In this processinq, if there is no ITF defined in
th~ SCT or there is no subtlock extent on the MSGFOFM macro or in
the
terminal entry, the rcutine exits as described previeusly for the
label SETFIFLD.
Ctherwise, the reutine qets the sutb10ek extent from
either the MSGFOBM parameter list er the terminal entry. The routine
then exits as described for the SETFIELD latel.
When the block extent is not specified en the MSGFORM macro,
the
Line Control Initialization routine must qet the block extent from the
terminal entry.
If the terminal is in trans~arent mode and on a ESC
line, the reutine puts the transparent block extent from the terminal
entry in the SCB, sets the, seB 'trans~arent' flaq, puts X'OO' in
reqister 15, ana exits tc IEDOLM.
If, in this case, the extent is not
in the terminal entry, the routine puts a X'04' in reqister 15 and

Program Organizaticn

261

exits.
If the terminal is in transparent mode not on a ESC line, the
routine qets the extent, if available, from tbe terminal entry and
exits thro~qh the SETFIELD label.
If the terminal is not in transparent mode, the terminal is on a
ESC line, and the block extent is ~ct in tbe terminal entry, this
routine puts a X'04' in reqister 15 and exits to IEDOLM. When the
terminal is net in trans~arent ~oae and the bleck extent is in the
terminal entry, the rcutine qets the block extent and then performs
the subblock extent search descrited previously.
~he in~ut ~arameter list, the address of
which
reqister 1, has one of the followinq formats.

is

contained

in

Offsets

o

X '05'

Block
Interval

'} Block and. Subblock
Specified

Index to
IEOQA6

X '04'

Block
Interval

} Block Only

Index to
IEDQA6

X '03'

Index to
I EOQA6

X '02'

Index to
IEOQA6

Subblock
Interval

0
Specified

0
} Subblock Only

Subblock
Interval

Specified

0
} N.Uh., Block No,
Subblock Specified

where index to IEOQA6
= X '01 ' for transparent mode.
= X '00' for text mode.

Routine: IEDO~N~ - ~ermname Table cede - to qet the address
of the destination terminal entry.

~xternal

Tables/Work Areas:
AVT, SCE, cuffer currently
Terminal ~atle ~ntrv fer the tuffer destinaticn.
~ttributes:

S~riallv

reusable,

refreshable,

beinq
enabled,

processed,
reiiRent,

problem proqram mcde.
counter Routine (Chart A7)
Module Name:

IEDCA7

Entrv Point:
count either

I!tOA701 - activated bv the CCUNTER macro

262

ccm~lete

messaqes or messaqe seqments.

expansion

to

~his module counts either the ccm~lete messaqe or messaqe
seqments that arE beinq precessed ty the MH subqroup in which the
conN~ER
macrc a~pears.
Tf the CCUNTEF roacro appears in an INHDR or
OUTHDR subqroup and the tuffer is not a header buffer, this routine
returns immediately with a X'OO' in reoister '5~ Otherwise, the
Counter routine determines whether the tuffer
currently
beinq
processed is a zero-lenqth buffer. If so, the routine dces not count
the messaqe but returns immediately to the callinq routine 'with a
X'F~'
return code in reqister 15. If the buffer i~ not zerc-lenqth,
the routine linKs to the Locate Option Field Address routine
(IEDQAEl
throuqh the UEer Interface routine tc qet the address cf the option
field.
On return, if the o~tion field is not found, the Counter
routine does not count the messaqe and exits to the callinq routine
with a X'FF' return code in reqister 15.
~unctions:

1f the opticn field is found, the Counter routine adds one to
the
count in the c~tion field and exitE to the callinq routine with X'OO'
in reqister 15.

External Routine:
IEDQUT - User Interface routine - to activate the
Locate Option Field Address routine (IEtQAE), which qets the address
of the option field.
Tables/Work Areas:
option field.

AVT, cuffer

Attributes:
Serially
problem prcqram mcde.

currently

reusable,

beinq

refreshable,

~rccessea,

enabled,

counter
resident,

Multiple Insert at Offset Boutine (Chart A81
Module Name:

IIDCA8

Entrv Point:
(TEDOUT)
to
meEsaqe.

TEDCA801 - activated by the User Interface routine
insert a character strinq at E~ecified intervals in the

Functions:
characters
meEsaqe.

'Ihis
at a

module inserts a data
(up
specified interval

strinq of
to 65,535

u~
to eiqht
bytes) in the

~he address of the input parameter list for the Multi~le Insert at
Offset routine is in reqister 1. The fermat of the parameter list is
as follows.

Prcgram Organization

263

Offset ,..;O~_ _--r-"':-_ _---r~_-~....
+_3___--,
Index to
Index to
IEDQAO
IEDQA8

+4~-----~-------------------_1
Insert Data
+8r---------------~-----_r~~~~

Option
Field
Offset

Interval Between Inserts

Bit; of the IEEQA8 index byte indicates the followinq:
OFF - the aata is a character strinq
ON - the aata is reserve characters
If the data is a character strino, the forrrat of the insert data word
is as follows:
+1
Address of
Character Stri ng

If the data is a strinq of identical (reserve) characters, the
of the insert data word is as follcws:
Offset 0

+1
Number of
Identical
Characters

Repeated
Character

format

+2
Reserved

The Multi~le Insert at Offset routine first tranches throuqh the
nser Interface routine tc the Locate Opticn Field Address routinp
(TED0AE)
to find the address of the opticn field in which the initial
offset for the next buffer is located. On return, if the c~tion fiel~
is not found, the Multiple Insert at Offset routine exits to the
Feturn Interface routine (IEDQLM) with a X'C4' return code in reqister
15.
Otherwise, the routine calculates the initial data offset and
branches to the main processinq lcc~ (MAI~lCOF)
to insert the data
strinq.
If

the data offset is not contained within the buffer that is
beinQ ~rocessed, the routine decrements the offset by the
lenqth of data in the buffer, saves the offset in the option field,
and exits to the Beturn Interface routine with a return code of X'OO'
in reqister 15.
If the data offset falls at the very end of the
buffer data and this tuffer is not the last buffer of the messaqe,
this routine ~erforms the same ~rocessinq 1ust described so that the
insert is done at the beQinninq of the next tuffer.

curr~ntlv

264

~he main ~rccessinq loo~ (MAIMIOO?)
of the Multiple Insert at
Offset routine uses the User Interface routine to link to the Unit
Bequest Interface routine
(IEDQAO)
in order to insert th~ data
character strinq.
On return,
the routine branches, via the User
Interface routine, to the Insert Data routine (IEDQAP)
to shift the
oriainal buffer data to the left up to the next point of data
insertion. The routine continues processinq in the main loop until
the insert point falls beyond the end of the buffer that is currently
heina processed. When this peint is reachea, tbe Multi~le Insert at
Offset routine branches to the Insert Data routine to shift the
loqically empty area to the end of the buffer.
On return,
the
Multiple Insert at Offset routine calculates the final data size and
places it in the prefix (PRFSTZE). If there is a subsequent buffer to
be processed r the routine calculates the initial insert offset for
that buffer and places it in the o~ticn field.
At this point,
processinq is ccmplete and the routine exits to the Return Interface
routine with a X'CO' return code in reqister 15.

External Routine:
followina modules:

IEDQUT - User Interface rcutine - to activate the

IEDOAE - locate Option Field Address routine - to find the address
of the cpticn field.
IEDOAF - Insert Data routine - to shift the oriqinal data
left in the tuffer.
lEDOAO
Unit Request
character strinq.

Interface

routine

Checkpoint

~equest

reusable,

refreshatle,

the

- to insert the data

Tables/Work Areas: AVT, buffer currently t€inq processeo,
user-defined c~ticn field.
Attributes:
Serially
problem proqram mcde.

to

enabled,

LCB,

SCB,

resident,

Routine (Chart EEl

Module Name:

IEDCBB

Entry Point:
the CHECKPT
(TEDOBD).

macro

IEDOBB - callea throuqh the User
expansion

Interface routine by
or from the Buffer Disposition subtask

Functions: This routine sets the "checkpcint request" flaq
(SCBCKPT)
in the SCF if the Checkpoint task is in the system. If the routine
was entered frorr the Buffer Di~position subtask
(IEDQBD),
the
Checkpoint Request routine tposts the ERE tc the Buffer Disposition
aCE.

If Checkpcint is not in the system and this routine was entered
from
the User Interface routine, the Check~cint Bequest routine exits
to Return Interface with a return code of X'04' in reqister 15~
If

Program Organizaticn

265

ChecKPoint is in the svstem and entrv is from User Interface, a
successful return code of X'OO' is passed to Return Interface.
If the Checkpoint Request routine ~as entered from
Disposition, exit is tc the TCAM Dispatcher to tpost the ERE.

Buffer

The macro-qenerated.
followinq format.

input parameter list for this module has the

Offset

+3

Q

-+2

+1
Index to_
IEOQBB

Parameter
List Length

X'QQ'

X'QQ'

External Foutines:

None.

Tables/Work Areas:

AVT, LCE, SCB.

Attributes:
Reentrant,
proqram mode.

refreshable,

enatled,

reside r.t,

problem

FOE/ETB HandlinQ Subtask (Chart BT)
Module Name:

IEDCE~

Entrv ~oint: TEtORT - activated tv the TeAM Dispatcher when a buffer
is tposted to the STARTMH OCE and the STARTMH cperands specify that
BOP-/ETE handlinQ is to be performed.
Punctions:
This module performs EOE/ETE handlinq on a tuffer. This
subtask 6 lins centrol when a buffer is tFcsted to STARTMH and the
S~AR~MH
operands specifv that some form of EOB/ETB handlinq is to be
done.
If the buffer is not marked as the last buffer of a messaqe, the
subtask exits to the TCAM Dispatcher at DSFBYPAS to perform a bypass
function to the S~AR~MH routine (IEDOAA). If the buffer is marked as
the last buffer of a messaqe, an BOB/FTB a~~ears in the ruffer, and
this subtask checks for a text errer.
If an error has occurred, th~
subtask attempts retrv by recallinq a previcusly received/sent buffer.
Ifno error occurred, (for receive operatiens only) the reutine checks
for the FOB/ETE options selected.
If a user exit was specified, a
branch and link passes centrol to that exit address.
This subtask
then checks the CONV= operano to deterwine if the EOB/ETX ;ust
received is to te treated as end of messaqe.
If not, the subtask
tposts the ERE to IErQKA to centinuE messaqe rece~tien. For send
operations, only the last buffer of a messa~e or one with an EOE/ETE
error is marked last.
If a permanent error occurs, the STOP/CONT
opticns are checked and the messaqe continues cr is aborted based on
the options.

266

External Routine:
IEDCUI User Interface reutine - to activate the
Locate Option Fi~ld Address routine (JEDOAEl in erder to
obtain the
address of an c~tion field.
Tables/Work Areas:
Attributes:
mode.

LCB,SCE, AVT, tuffer prefix.

Peusable, refreshable, enabled, resident,

~rcblem

proqram

Unit Bequest Peutine (Chart BW)
Module Name:

TIDCEW

~ntry

Point:
IErOBW - entered frem MH via the Unit Request Interface
routine (IEDOAO) to qet an extra unit.

~unctions:
This module su~~lies extra tuffer units to requestinq
modules.
When the Unit Request routine is entered, the callinq MH
routine is requestinq a buffer unit.
If a unit is available, the unit
Bequest routine removes the unit frcm the buffer unit ~ool and returns
the unit to the callinq routine.
If no unit is available,
the Unit
Requ~st routine returns to the callinq routine with a return code.

Bxternal Routines:

None.

Tables/~ork

OCE, STCB, SCE, buffer

~reas:

Attributes:

~refix,

AVT, LeE, DCB.

Peusable, enabled, resident, problem proqram mode.

10q Seqment Bcutine (Chart BX)
Module Name:

IErCEX

Entry Point:
IEIQBX - called threuqh the User Interface routine when
the LOG macro is issuec in the INHDR,
CUTHDR,
INEUF,
or OUTBUF
subqroup of an MH.
Functions:
This routine writes, or loqs, a messaqe seqment onto the
loqqinq mediurr s~ecifiec bV the user in a B~AM DCE.
When the loq Seqment routine is activated, reqister 1 peints to a
one-worn inrut ~arameter list.
The formatcf this list is as follows:
+1
Address of DeB to be used to log the Segment

pxcgram organization

267

~he
Loq Seqment.routine issues a WRITE and a CHECK macro for each
unit of the buffer to be loqqed on the device specified in the DCB.
The unit is written without the twelve-byte control area.

If an I/C error occurs while the tuffer is beinq written, ESAM
passes control tc the user SYNAD exit in the DCB.
(This exit must
returntG the instruct io'n that folloW'S the 'CHF'CK mac-to.) -If th-e 16CjSeqment routine finds that the specified DCE is not open, it ~laces a
return code of X'04' in reqister 15. ~he successful write return code
is X'OO' in reqister 15.
the

The Loq Seqwent routine returns to the next in-line instruction in
~H code of the MCf.

External Routines:

•

as BSAM

•

as BSAM CHECK routine - to check the write operations.

•

as Getmain routine (SVC 4) - to ottain main storaqe.

W~I~E

routine - to write tbe units of the tuffers.

Tables/Work Areas:
Attributes:

DCB, Avi.

~eusable,

MESSAGE BANtLING -

refreshab1e, resident, enabled.

FUNC~IONAL

SUB~OUTTNES

Tnsert Data Routine (Chart AF)
Module Name:

IEDCAF

~ntry Point:
IErCA~01 - activated throuqh the User Interface
routine
as a subroutine cf a functional TCAM module to insert data in a buffer
or to shift data left within a buffer.

Functions:
functions.

The

Insert

Data

rcutine

performs one of four possible

1.

To insert data and return immediately.

2.

~o

3.

To shift data across several units and return.

4.

To expand the tuffer
characters area.

insert data, adiust the
data inserted, and return.

by

pre~ix

shiftinq

insert offset by the

data

left

intc

1enqth

the

of

reserve

~eqi~ter 1 contains the address of the ~arameter list qeneraten by
a macro expansicnor by a cal1ina routine fcr User Interface to use to
activate the Insert Data routine. The requested function is indicat~d
by the f1aqs in the first byte of the list. The format of this area
for all except the expand buffer functicn is as follows:

268

Offset

Index

X
X
X
X

Data Type Flag

100 1 -Insert, adjust, and return
1011 - Insert' and return
1021 - Multiple-unit shift
103 I -Expand buff~H

X 100 I
X 101 I

-

Data address
Reserve characters

For the expand tuffer function, the secend cyte of the list contains
the lenath of the ex~ansion.
For all
except the ex~ana buffer
function, this ~arameter list is storen at AV~PARM in the AVT.
If the Insert Data rcutine finds the X'CO' or X'01' value in
the
index field of AVTPAFM, it uses a second parameter list at AVTPA~M3
for additionalin~ut.
If the data type is a cha~acter strinq,
the
format of AVTFA~M3 is as follows:
Offset

"';0~

_ _ _ _ _ _ _T""+_1_ _ _ _ _ _ _...,
Address of the
Character String

Length of the
Insert Data

If the data ty~e is repeated characters, the format of AVTPARM3
is as fol1ows~
+1

+2
Reserved

If the requested function is to insert data and return, the Insert
Data routine links to the Insert surreutine,
which inserts the
specified data, and returns to the callinq routine throuqh ~eturn
Interface.
If the requested function
is to insert data, adiust the prefix
insert offset, and return, the Insert Data routine first links to the
Tnsert subroutine where the data inserticn is peformed.
Upon return
from the subroutine, the Insert Data routine qets the prefix insert
offset,
decrements it bv the tetal lenqth of the data inserted, and
stores the new value back in the ReB.
The routine then exits to the
callinq routine throuqh Feturn Interface.
If the requested function
is a multi~le-unit shift, the Insert
Data routine qets the prefix data cffset frcm the FeB and enters a
shift data leep.
In this loop, the rcutine passes the prefix data
offset to the Address Finder routine (IEDeAl) with a request for the

P£ogram Organizaticn

269

end-of-unit address and the data address. When the Address Finder
routine returns these addresses, the Insert Data routine calculates
the count of bytes from the data address to the end of the unit and
compares the result to the total length of data to be inserted.
If
tbe count of bytes tc the end of the unit is greater, the routine
places the count in the first byte of AVTPAFM3~ otherwise, the routine
inserts the total length of the data to be inserted in that first
byte.
~he Insert Data routine then places the address of the data in
the next three bytes of AVTPARM3.
Next, the routine calculates a new
data offset that is equal to the current data offset plus the length
specified in AVTPARM3. The routine also decrements the total length
of data to be inserted ty the value in AVTPAFM3- this may reduce the
lenqth to zero. !he Insert Data routine tr.en links to the Insert
subroutine tc shift left all the data in the current unit. U~on
return from the subroutine, the Insert Data routine tests the
remalnlnq lenqth of data' for a value cf zero. If the value is not
equal to zero, the routine must shift the data in the next unit.
The
routine sets the new data offset, which is now the offset to the start
of data in the next unit, as the prefix data offset and then reeneters
the shift data loop. When the remaininq lenqth is reduced to zero,
the Insert Data routine puts X'OO' in reqister 15 and returns to the
calling routine throuqh PeturnInterface.
If the requested function is to expand the buffer, the Insert Data
routine tests the scan pcinter tc determine whether it is beyond the
end of the buffer. If it is, the function is discontinued and the
routine returns to the caller with a -4 in register 15. Otherwise,
the Insert Data routine qets the requested expand length from the
input parameter list and places the length in the RCB as the prefix
insert offset. The routine gets the numter of reserve characters
currently in the buffer from LCBISZE in the LCE and ccmpares this
value with the lenqth requested.
If the expand request is greater
than the number of reserve characters, the function cannot be
performea - the routine returns to the callinq routine through Return
Interface with X'04'
in reqister 15.
If the expansion can be
performed, the Insert Data routine sets the prefix data offset equal
to the size cf the prefix plus the numter of reserve characters plus
one. The routine then calculates the lenath of the data to be shifted
to be the current scan ~ointer settinq minus the prefix data offset
this lenqth is later placed in AVTPARM3. The routine decrements the
number of reserved'characters by, the requested ex~and length and
places the result in LCBISZE. Next, this rcutine enters the shift
data loop and proceeds as described in the ~araqraphon the mu1tipleurtit shift functicn.
The Insert SUbroutine cf the Insert Data routine inserts data
accordinq to the ~arameters passed as input. The pcssible parameters
are a, pair of offsets - the prefix d~ta offset (a halfword at RCB+4)
and the prefix insert offset (a halfword at RCB+6)
in the FCE, the
lenqth of the data to be inserted, and the actual data to be inserted
- either a char~cter strinq or a repeat character. I~ the data to be
inserted is itself lo6ated in the buffer, the insertion is actually a
left shift in the buffer.
The Insert Data subroutine calculates the offset at which data is
to be inserted ty suttractinq the ~refix ineert offset frcm the prefix
270

data offset. !he routine passes this resultinq offset to the Address
Finder routine (I!DOAL) to obtain the end-of-unit address and the
insert address.
Upon return, the Insert rata routine calculates the
count of bytes frcm the insert data to the end of the unit and
compares the result
to the lenqth of data to be. inserted.
If the
number of bytes tc be inserted is less than the number of bytes to the
end of the unit, all the data will fit in the current buffer unit.
If
the d~ta to be inserted is a character strinq, the routine qets its
address from
AV!PAFM3 and moves the data to the unit~ if the data is
a strinq of identical
repeated characterE,
the routine qets the
character frcm
AVTPAPM3 and enters a store character loc~ to insert
the total number of characters reauested.
If all th~ data will not
fit
in the current unit, the InEert Data routine qets the address of
the next unit and moves in the remaininq data or repeat characters.
~fter
the specified ccunt of characters haE been inserted, the Insert
subroutine returns to the point from which it was called.
External Routine:
IEDeAl address in a unit.
Tables/Work Areas:

Address

Finder

routine

to

find

an

AVT, buffer, ICE, SCF.

Attributes:
Serially
problem prcqram mcde.

reusable,

refreshatle,

enabled,

resident,

Buffer step Rcutine (Chart AX)
Module Name:

IEDOAX

Bntrv Point:
SCAN - called by a hiqher-level MH routine to return the
a1dress of the next sequential byte in the 'tuffer beinq processed.
Functions~

~his routine returns to the callinq routine the address of
the next seauential byte in the buffer that is beinq processed.

The Buffer step routine increments the scan pointer address
reqister
(RSCAN
reqister 5) and the scan ~cinter offset reqister
(PSCANOFF - reqister 7) by one.
It then corrpares RSCANOFF with
the
buffer prefix data size field (PRFSIZE). Tf FSCANOFF is hiqher, the
end of data in the buffer has been passed, and this routine returns to
the callinq routine.
~he Buffer Step routine next ccmpares
reqister (REOUAt - reqister 11).
If ESCAN
correctly set,
and this routine returns
point that is four bytes bevond the return

If RSCAN is net lower that
been passed.
~he routine qets
~CE
of the cuirent unit, sets
data byte in the new unit, and
byte beyond the end of the new
callinq routine at a point
address in reqister 14.

BSCAN to the end-of-unit
is lower, the reqisters are
to the callinq routine at a
address in reqister 14.

REOUAD, the end of the current unit has
the address of the next unit from
the
RSCAN equal to the address of the first
sets REOUAr to the address of the first
unit.
The reutine then returns to the
that is four bytes beyond the return

Prcgram Organization

271

~xternal

Routines:

Tables/Work Areas:

Ncne.
Buffer currently beinq

~ttributes:
~eentrant,
~rotlem proqram

residen~,

Binary Search Routine
Module Name:

serially
mode.

~rccessed,

reusable,

AVT.

refreshable,

enabled,

(Chart A1)

IEDCA1

Point:
IEDOA101
called throuqh the User Interface routine
(TEDOUT) bv a hiqher level MH routine to search a table.

~ntrv

Functions:
!his routine searches a tatle that is arranqed in
collatinq sequence.
It is primarily desiqned to search the Termname
~able.
On entry, the address of the last 8 bytes of the FORWARD
macro-qenerated parameter list is in reqister 1.
The Binary Search routine com~ares the lenqth of the input field
to the lenqth cf the name field in a table entry (TNTENLEN).
If the
passed lenqth is lonqer,
this routine ~uts a X'OO' return code in
reqister 15 and returns to the callinq routine throuqh the Return
Interface routine (IFDQLM1.
If the passed lenqth is equal or shorter,
the Binary Search routine sets the cem~are lenqth for the wain loop
~qual to the passed lenqth.
~he routine then clears the AV~ field AVTDCUBI to zeros and
moves
the character strinq to be found to thatAVT field if this move is
necessary.

The Binary Search routine initializes the entry address to the
address of the middle entry
(TNTMIDEN) in the table, and sets the
search extent tc the full lenqth of one entry (TNTENLEN+3)
multiplied
hv the search extent factcr (TNTSRCHX).
The address of the last entry
plus one is set by multiplyinq the full lenqth of one entry by the
number of entries (TNTLFN) and addinq the product to the address of
the first entry
(TNTFIRS~).
Tte routine then enters the main
processinq locp at FNTRLCOP.
~he Binary Search routine compares
the entry address with the
address of the last entry.
If the entry aadress is not lew, it points
beyond the end of the tacle.
The routine decrements the entry address
bv
the search extent.
If the entry address is within the table, the
routine compares the passed field with the naIDe field cf that entry.
Tf the entry name field is hiqh, the routine decrements the entry
address bV the search extent.
If the entry name field
is low,
the
routine increments the entry address by the search extent.

After incrementinq or decrementinq the entry address, the Binary
Search routine cem~ares the search extent tc the lenqth of one full
entr~.
If it has becowe less that the lenqth of one entry, the table
has been fully searched without findinq a name equal to the passed
field,
and ~he routine puts a X'OO' return code in reqister 15 b~fore

272

passinq control tc IEDQLM.
If the search extent is not less than the
lenqth of one entry, it is divided bv two and the loop continues with
the end-of-tatle ccmpare.
The Binary Search routine computes the cffset to the entry
(the
ordinal index), places that offset in reqister 15, and returns control
to the cal1inq routine throuqh IEDQLM.
External Routines:

None.

Tables/Work Areas:

AVT, Termname !able.

Attributes:
Serially
problem proqram mcde.

~ermname

reusable,

refresnatle,

enabled,

resident,

Table Code (Chart NT)

Module Name:

IEDCTNT

Entry Point:
IEDOTNT - activated ty TeAM rcutines
Terminal ~atle address of an entry.
Function:
This subroutine
offset, to a Termname Table
Terminal Tarle.

to

calculate

the

converts the two-byte ordinal index, or
entry to its actual address in the

~his
subroutine calculates the address of the entry by performinq
an effect ice multiply of the index by the size of the entry. The code
of the routine is qenerated at MCP assembly time and varies dependent
on the lenqth of the Termname Table.

On completion,
the Termname Table code places the address of the
Terminal Table entry in reqister 1 and branches to the routine that
called it.
External B.outines:

None.

~ables/Work

None.

Areas:

Attributes:

Resident, problem proqram mode, reentrant.

MESSAGE HANDLING - EUFFEF DISPOST1ION MODUlES
Buffer Disposition Subtask
Module Name:
Entrv
•

(Chart ED)

TEDCBD

~oints:

IEDO~D01

- activated by the TCAM Dis~atcher after the last seqment
of a messaqe has been received or sent and processed by the MH UP

Program Organization

273

to
the
inmessaqe/outmessaqe subqroup, when the end of an
invitation li~t is reached, and when the last buffer of a block
has been sent to a buffered ter~inal.
•

IEDOBD02 - activated by the TCAM Dispatcher to process an LCE from
the Operator Awareness Messaqe Router (IFDQNX).

This subtask returns unused buffers to the Buffer Return
and executes the INMSG/OU!MSG macro expa~sions. This subtask
chec~s the parameter list for each macro in the INMSG/CUTMSG subgroup,
checkinq the error word aqainst the specified mask if execution of the
function is conditional. If the routine represented by a parameter
list rpquires a recalled header, the Buffer Dis~osition subtask tposts
the ~~~ to the Disk I/O QCB to perform a recall. The recalled header
is returned to Buffer Disposition bV a t~ost.
Each routine' that
receives control from Buffer Disposition performs its functions and
exits by tpostinq the recalled header (if cne was passed to it) or the
BRB back to Buffer Disposition to continue execution of the macro
expansions.
In the case of recalled beaders, after the recalled
header is tposted by the macro routine, it is returned to Buffer
Disposition by CPB Initialization (IFDOFA). When an INFND or OUTFND
macro ~xpansion is
detected,
Euffer
Dispositicn
checks
for
distribution list, multiple routinq, .and checkpoint request. If any
of these functions have been requested, the aFprc~riate subtask
receives contrcl throuqh a tpost. For output messaqes, the message
1ust sent is then ma~ked servi~ed. ~or both send and receive, the LCE
is then tposted tc itself.
~unctions:

OCB

~f th~ error
messaqe bit is on
(X'LO')
in LCBCHAINr. Buffer
Disposition qets the address of the Operatcr Awareness Messaqe Router
(TEDONX) from the AVT.
Buffer Disposition then branches to the
messaqe router with the LCB and a chain of elements set up to be
tposted to the ready queue. The Operator Awareness Message Router
builds the error messaqe, tposts the messaqe to its Destination QC~,
puts the address of the OCB for IFDOBD02 in the first word of the LCB,
and tposts the ICE and the chain of element~ to the ready queue.

Routine: IEDOTNT - Termname
Terminal Table address of an entry.

~xternal

Tables/Work Area~:
buffer prefix, OCP.
Attributes:
mode.

LCE,

SCE,

Tatle

code

to

obtain

the

AVT, Termname Table, Terminal Table,

Reusable, enacled, resident, refreshable, problem proqram

Cancel Messaqe Rcutine (Chart AR)
Module Name:

IEDCAB

Entrv ~oint: IEDCAF - activated by
(IEDOBD) to cancel a messaqe.

214

the

Buffer .Disposition

subtask

punctions:
This routine sets a flaq in the buffer prefix (PFFCNCLN)
to notify the Destination Scheduler and CPB Initialization te cancel
the messaqe currently beinq received en the line. This flaq also
stops multiple reutinq and checkpeint functions that rniqht apply to
the messaqe beinq canceled.
If the cancel request is for a terminal in lock mode, this, routine
cancels the rressaqe, sets UP the LeE te repoll the terminal, ana
decrements the in~ut sequence number in the terminal entry.
The Cancel Messaqe routine exits to the DSPCHAIN entry point of
the ~CAM Dis~atcher to tpost a chain cf elements that were passed to
the Cancel Messaqe routine as input (a chain off reqister 1).
Routines: IFDQTNT - Termname Table code - to qet the terminal
entry address.
~xternal

Tables/Work Areas:
\ttributes:

AVT, LCE, SCB, Terminal

Feusable, refreshable, enabled, resident.

Operator Awareness Messaqe
Module Name:

~atle.

~outer

(Chart NX)

IEDCNX

Entry Point: IEDCNX - loaded at IN~RO time by the Attach routine
(IEDOOS)
if the system console is not specified as the ~rimary
operator control terminal; can also be loaded by the Chanqe Control
Terminal routine (1EDQCN) if the primary c~erator terminal is chanqed
bv an operator control cemmand. When TIDONX is in the system, it is
activated by Puffer Dis~esition (TFDQBD) when an error has cccurred on
a line.
~unctions:

~his

operator control
console.

routine
terminal

directs error messaqes
when that terminal is

to the primary
net the system

The Operatcr Awareness Messaqe ~euter receives centrel from the
Buffer Disposition surtask (IEDOBD). The rcuter first remeves errorspecific information from the LCE. This information was placed in the
LCB by the EFP routine that qot centrol ~hen the error was detected.
~his informatien includes the line address (UCENAME) ~ the cemmand code
of the failinq CC~~
(LCB'FESTR);
the two status bytes of' the CSW
(LCBCSW+3); the first sense byte of the lOB
(lCESENSO); the TP
operation codes of the last retry (lCBFLAG2) and of the first failinq
CCW
(LCBSFNS1): and the addressinq characters, last four dial diqits,
or pollinq characters
(ICEEFRCT).
'rhe Operator. Awareness Messaqe
Pouter ccnverts this error data to hexadecimal fermat and builds an
error messaqe in a work area
(AV~SAVE4).
The router then qets a
buffer from the buffer unit pool, moves the messaqe into the buffer,
and sets up the tuffer prefix and the SCE tc t~ost the buffer to the
Destination OCE fer the primary operator centrol terminal. The router
then links tc the buffer the chain of elements passed from the Buffer
Disposition suctask, turns off the error-messaqe bit in the LCB, and
pxogram Crganization

275

passes control to the TeAM Dispatcher at entry point DSPCHAIN to tpost
tne chain of elements to the ready queue~
External Foutines:

None.

Tables/Work Areas:

AVT, LCB, buffer prefix, OCB, SCE, Terminal Table.

Attributes:

Fesident, reentrant, refreshable.

~old/Belease

Terminal Routine (Chart AS)

~odule
~ntrv

•
•

Name:

IFDCAS

points:

- activated
terminal.

T~ryOAS

TE~OAS01

0oerator

ry

Buffer

Disposition

(IFDQED)

to

hold

a

- called to release a terminal when a buffer unit from
Centrel or the time delay queue is tpested to this STCB.

- activated by the
TeAM
T?UOAS is waitinq for is availacle.

-

GE~CPB

Dis~atcher

•

lC~~~N - activated by the TCAM Dispatcher
for the aCE beinq released is available.

~ben

when

a

the Send

CPE

that

Scheduler

This module has two distinct functions - to hold and to
release a terminal. The functions are performed accordinq to the
entry ooint used ty the callinq routine.

~unctions:

Tf the Euffer nisposition subtask encounters terminal errors, it
branches to the Held/Release Terminal reutine at the IErOAS entry
point to set the hold bit (~RMPELDN) in the ap~ropriate terminal entry
in
the
Ter~inal
Table.
A hola prevents messaqes from beinq
transmitted to that terminal. The last messaqe sent to the terminal
is also held until the terminal is released (the address of the first
unit of the last messaqe sent is -placed in the FEPC chain for held
messaqes in the priority QCB). The routine passes the input buffer to
the ~ime Delay suttask.
~ote:

~f

messaqe is

the

Terminal is in leek mode, it is not held and the lock

retran~mittea.

When a buffer unit from Operator Control or the time delay queue
is tposted to the S7CB for the Hold/Release Terminal routine, the
routine is activated at the ~EDOAS01 entry point to release a
terminal. The Belease Terminal routine first qetscontrol of t~e Send
Sche~uler
STCP so t~at the Destination OCB will not be modified until
the release function is complete. The routine then moves the QCBINTPF
chain onto the first of the reqular FEPO chain
(requires one write,
ther~fore
one C~Bl
and turns off the terminal entry hold tit. The
nelease ~erminal routine then ~laces the Send Scheduler STCB in the
LC~ STCB chain or in the dial-out call queue for dial lines.
276

This
the

~CAM

module exits to the DSPPOST or the rSPCEAIN entry point of
Dispatcher to place elements cn the ready queue.

External Foutines:
Ter~name

•

IEUOTNT -

Table code - to locate the terrrinal entry.

•

IEDOHG01 - ,ime Delay subtask delay queue.

to insert an element on

•

lEDOHG02 - !ime Delav subtask delay queue.

to remove an element from the time

•

TGG019RB or IGG019~O - TCAM
to toost a tuffer.

Dis~atcher

-

~refix,

eCE, CPE,

Beusable, enabled, resident, problem proqram mode.

Create an Error Messaqe
Module Name:

time

the DSFPOSTF entry point,

~ables/Work Areas:
AVT, SCE, Terminal Tatl€, tuffer
STCE, DEB, nCE, DCB.

Attributes:

the

~outine

and Subtask

(Cbart AT)

I!DOAT

Entry Point:
•

IEDQAT01 - activated by the F€direct a Messaqe routine (IEDQAZ)
build an error messaqe and tpost it tc its destination.

•

S~CBAT+2

- activatec bv the TCAM Dis~atcber
unit to ccntain part of the errcr messaqe.

to

return

an

to

empty

~unctions:

,be Create an Error MeSsaqE routine builds an error
messaqe in the tuffer and t~osts the ruffer to its destination.

The Create an Error Messaqe routine first determines whether the
messaqe buffer already
contains an errcr IDessaqe.
If there is an
error messaqe in the buffer, the rcutine exits by tpostinq the
ERE
back to the Buffer Disposition suttask.
This routine qets the lenqth of tre error messaqe from the
parameter list cf the ERRORMSG macro expansicn or,
if tbat byte is
zero, from the first byte of the messaqe itself.
For the latter case,
the address cf the
messaqe is in the IRRORMSG macro-qenerated
parameter list.
If the buffer does not contain a messaqE, the routine determines
whether the errcr messaq€ fits between tbe scan ~ointer (the end of
the header) and the end of the buffer.
If the messaqe will not fit,
the Create an F.rror Messaqe routine determines whether one additional
unit will provide enouqh space for the messaqe.
If not,
the routine
truncates the messaqe.
If an empty unit is rieeded, the routine tposts
an
~PB
to
reqUEst one unit tc the Buffer Request QCE and returns

Program Organizaticn

277

control to the !CAM Dispatcher to wait for the buffer request to be
satisfied.
When the unit is available, the Dispatcher activates the
create an Error Messaqe routine.
At tbis ~cint the routine links the
new unit into the tuffer.
After qettinq a
new buffer unit,
tbe routine uses the User
Interface routine (IDEQUI) to qive control to the Insert Data routine
(IEDOAW),
which inserts the error messaqe in the buffer.
On return,
if there is a user-written exit routine present, the create an Error
~essaqe
routine
passes control to that routine • . Upon return, the
Create an Error Messaqe routine t~osts the tuffer that contains the
messaqe to its destination.
(The Redirect a Messaqe routine, which is
dispatched by Buffer Disposition, determines the buffer destination,
then places the error messaqe in the tuffer.)
External Poutine:
IEDQUI -User Interface rcutine -. to activate the
Insert Data rcutine (rEDOAF), which inserts the error messaqe in the
buffer.
Tables/Work Areas:

AVT, tuffer currently teinq processed,

Attributes:
Serially
problem proqram mcde.

Redirect a Messaqe
Module

~ame:

~outine

reusable,

refreshable,

LeB,

enabled,

SCB.

resident,

(Chart AZl

TEDCAZ

Entrv Point:
IEfCAZ01 - activated by the Euffer Dis~osition
(TEDOBD) to redirect a messaqe to a specified destination.
~unctions:
This module
specified by a user.

redirects

a

messaqe

to

the

subtask

destination

~he Redirect
a
Messaqe routine first
determines whether the
redirect destination is in an option field, and if it is, links to the
Locate Option Field Address routine (IEDQAE) via the User Interface
routine to qet the option field address.
Upon return, if the option
fiel~
is not .feund,
the Redirect a Messaqe routine branches to its
error handlinq locp (TESTDEAD).
If the option field address is found,
the Pedirect a Messaqe routine builds a parameter list for the 'Binary
Search routine
(IEDQA1)
and branches throuqh the User Interface
routine to qet the buffer destination key.
If the
readirect
destination name is explicitly specified cn the macro instruction, the
routine also builds the parameter list and branches to the Binary
Search routine.
Upon return, if the redirect destination name is not
in the Termnaree Table, the Redirect a Messaqe routine branches to its
error handlinq locp; etherwise, the routine passes the destination key
returned by the Binary Search routine to the Lookup Terminal Entry
routine
(IEDCAV1.
If the redirect destination is the oriqin or the
oriqinal destination, the key is from either the PRFSRCE
(oriqin)
or
the PRFDEST
(criqinal destination)
field in the buffer prefix.
In
this case the routine also passes the key tc the Lookup Terminal Entry
routine.
On return, the Redirect a Messaqe routine determines whether

278

the destination is a TSO device.
If the destination is a ~SO device,
the routine branches to its error handlinq loop; otherwise the routine
tposts the QCE for the messaqe to its destination by exitinq to the
DSPCHAIN entry point of the TCAM Dispatcher.
If an error messaqe is beinq redirected to its destination,
the
?edirect a
Messaqe routine does not t~ost the QCE; instead, the
routine sets the SCBMACR field equal to the address of the error
messaqe parameter list and then exits to the create and Error Messaqe
routine (IFDOATl.
The error handlinq loop
(TESTDEAD)
of the Redirect a
Messaqe
routine
~eterwines
whether a
dead-letter queue is defined.
If the
queue is de£ined~ the routine qets the destination key for the queue,
passes it to the lcokup Terminal Entrv routine, and t~osts the messaqe
1:0 that destination.
If no dead-letter queue'is defined, the Redirect
a Messaqe routine does net redirect the lllessaqe, but tposts the buffer
to the Buffer Disposition QCB and exits to the TCAM Dispatcher
(DSPCHAI1'J) •
External Routines:
IEDOUI - User
modules:

Interface

routine

te

activatE

thefollowinq

IEDOAE - Locate Option Field Address reutine - to qet the address
of the optien field.
IEDOA1 - Einary
the messaqe.
•

Se~rch

routine - to qet the

TEDQAV - Lookup Terminal Entry routine for a specifiEd destination.

Tables/Work Areas:

~VT,

Attributes:
Serially
problem proaram mcde.

key

for

to qet the terminal entry

recalled-t.eader ruffer, SCE.
reusable,

Messaqe Generation Routine
Module Naroe:

destination

refreshatle,

enabled,

resident,

(Chart ELl

IEDCEL

Entrv point:
IEDOFL
activated by the Buffer Disposition subtask
(IED9BDl
when a
MSGGEN macro
is specifiEd in an inmessaqe or
outmessaae subqrcup of an MH.
Functions:
T~e
MessaqE Generaticn routine finds
a user-provided
messaqe, moves the messaqe to the SCB for
the currently connected
terminal,
translates
the messaqe to the appropriate line code, and
tposts the ERE that contains the messaqE to the
Activate subtask
(TEDQKA02) to caUSE the rressaqe te te sent.

Program Crganization

279

External Routines:

None.

Tables/work Areas:

ICE, SCE, AVT, DCE.

Attributes:
mode.

Loq

~essaqe

~odule

Name:

Peusable, refreshable, enabled, resident, problem program

Routine (Chart EY)
TEDCEY

Entry Point:
IEDOBY
called by the Buffer Disposition subtask
(IBDOBD) when a LOG macro is specified in an IN~SG or OUTMSG subqroup
of an MH.
punctions:
~his
routine tposts a recalled header to the Destination
OCB specified in the LOG macro for loaqinq the messaqe.
This tpost
activates the loq Scheduler, which loqs the messaqe.
Loq ~essaqe routine exits to the rSPCHAIN entry point in the
Dispatcher tc actually tpost the elewert.

~he
~CAM

External Foutines:

None.

Tables/Work Areas:

SCE, tuffer prefix.

Attributes:
mo0e.

1.00

Peusable, refreshable, resident, enabled, problem proqram

Scheduler (Chart B'Z)

'1odule Na me:

IF.'COEZ

Entry ?oint: IEDQBZ - activated by the TCAM Dispatcher when th~ LOG
LCB is on the ready queue or when a buffer has been t~osted to the LOG
'l)est i nati'on OCE.
Punctions:
This routine schedules the loqqinq of messages.
Scheduler may' ce activated under the followinq conditions.

The Loq

•

A Destination OCB with a buffer on the ready queue:
the Loa
Scheauler meves its STCB to the LOG ICP, t~osts the LCE to itself,
and exits to the DSPBYPAS entry point of the Dispatcher. ~his
action passes the messaqe buffer to the Destinatien Scheduler.

•

An LCB tposted to itself on the ready queue:
the Ioq Scheduler
tposts the ERE in the LCB to the Disk I/O OCE to recall one
buffer. The scheduler exits to the nSffCST entry point of the
TCAM Dispatcher.

•

A E~B tposted to an LCB on the ready queue:
the Loq Scheduler
checks any eutstandinq WRITE commands and frees the buffers. It

280

then issues WBI~E commands for any buffer units to be written. If
the end-of-messaqe was written, the leq S~beduler t~osts the ERE
to the ICB aqain to handle the last tuffer checks. If there are
no more messaqes to leq for this OCB, the scheduler moves its STep
back to the Destination OCB by exitinq to the DSPUNAV entry point
of the TCA~ Dispatcher.
Tf an error eccurs durinq the writinq cf a buffer, the CHECK macro
issues an exit to the SYNAD routine specified in the DCE. !he SYNAr.
routine must return to the CHECK macro.
The user-written SYNAr
routine must ccnfcrm to ESAM standards.
External Routines:

•

as Getmain routine (SVC 4) - to obtain main storaqe.

•

IGG019RB or IGG019RO - TCAM Dispatcher - the DSFUNAVP entry point,
to move an STCP; and the DSPPOSTR entry point, tc t~ost an
element.

•

as Check routine - to check a write

•

as Write reutine - te write a unit.

Tables/Work Areas:
Attributes:
mode.

ICB, SCP, DCB,

AV~,

o~eration.

CCF.

Feusable, refreshable, resident, enabled., problem proqram

Multiple Routinq Subtask (Chart BAl
Module Wame:

I~DCEA

~ntr~ Point:
IEDCBA01 - activated when an !FE or a buffer is tposted
to the Multiple Fcutinq QCB in order to queue a messaqe for additional
destinations.

Functions:
The
~ultiple
Routinq subtask identifies additional
destinations s~ecified in a buffer and t~csts the messaqe tc each of
these destinations, in order.
On initial entry, the ER~ within the ICB is t~ost€d to the
Multiple ~outinq subtask with the address cf.the first buffer of o.
recalled messaqe in the EFE chain field (lCEFRBCH) of the ICB. The
subtask counts the number cf buffers passed (initially cnly cne)
and
keeps the addresses of ~cth the first buffer of the messaqe and of the
current buffer.
At initial entry, the address of the current buffer
is also the address of the first buffer.
~he
subtask places the
current tuffer address in the ICB and ~laces the current count of
buffers in the current buffer.
The Multi~le Foutinq subtask uses the offset frcm the firstsecondarv-aestinaticn field
(SCPMBFSD) of the SCE to set the scan
pointer. The subtask loads the address of the Forward routine

PLcgram organization

281

parameter list
from
the SCBMFFPL field ef the SCE and then links to
the Ferward routine
(IEDOA5)
throuqh the User Interface routine
(rEDOUT) •
When the Multi~le Routinq subtask reqains control, if the
destination waE feund to be valid, the subtask determines whether this
1estination is a distribution list.
If it is, the subtask sets the
LCB to tpost the messaqe to each destinatien in the list before it
reqains control.
The subtask then tposts the recalled messaqeto the
appropriate OCE
(distribution list or sino1e entry) and branches to
the TCAM Dispatcher.
If the Forward routine returns to the Multiple Routinq subtask
with an invalid destination srecified, the subtask reactivates the
Forward routine to find the next destinaticn.
After the first buffer of the recalled ~essaqe has been t~osted to
the first seccndary destination,
the Multiple Boutinq subtask is
reentered
with another recalled buffer.
The subtask qets the current
buffer address frem the ICB.
If the current buffer is itself the
first buffer of a messaqe, the suttask sets the current buffer count
to one ana sets the buffer lust t~csted to the subtask as the current
buffer.
If the new buffer is not the first buffer of a messaqe, the
buffer whose address was recevered from the ICE remains the current
buffer and
the buffer count is recovered from it.
The subtask aqain
sets the scan reinter frcm the first-seccndary-destinaticn field
of
the LCB and then passes control to the ~orward routine.
1f

return from
the Forward routine indicates that a destination
in the current .buffer is inccmplete, the buffer is ~art of
a
multiple-buffer header and the
next
buffer must be recalled.
The
subtask saves the data in the current buffet and steres the address of
the first buffer in the messaqe, with all ether buffers that have been
pass~d linked te it, in the ERB.
The subtask increments the current
buffer count ty one, places the count in the FPE, and t~osts the ERE
to the n.isk T/O OCE in order to recall ancther buffer.
fiel~

The BPB is tpcsted to the Multi~le Pontinq subtask
when another
buffer has been retrieved.
At this point the subtask determines that
two or more buffers are reinq passed
(to distinquiEh
from initial
entry)
and counts the number of buffers beinq passed.
!he subtask
saves the address of the last buffer in the chain in the LCE,
a10nq
with the· addres~ of the second buffer and any subsequent buffers
linked to it.
~he last ruffer in the chain is the new current tuffer.
The surtask sets the first-secondary-destinaticn field to the offset
of
the first data byte in the current buffer.
Then the subtask sets
the scan pointer and links to the Ferward rcutine.
If return fro~ the Fcrward routine indicates that the
EOA strinq
has been encountered,
there arE no more destinations.
The subtask
sets the last recalled header to peint
to any recalled subsequent
buffers,
and
sets all buffers with the aadress of the Buffer ~eturn
OCE.
The suhtask then links the EBE to the last tuffer and
puts the
address of the Buffer Disposition OCE in the EBB.
The subtask clears
the first-seccndary-destinaticn field of the SCB to zeroes and tposts
the buffers and EFE via an exit to the TeAM Dispatcher.

282

External Poutine:
IEDOUI - User Interface rcutine - to activate the
Forward routine (IEDOA5), which deciphers ~ecendary destinations in
the messaqe header.
Tables/Work Areas:

SCB, AVT, LCB, tuffer prefix.

Attributes:
Serially
problem proqram mode.

Lock Boutine
Module Name:

reusahle,

refresbatle,

enabled,

resident,

(Chart BE)
IEDCBE

Bntry Point:
IEDOBE - called throuqh the User
the lCC~ macrc ex~ansion.

Interface

routine

by

Functions:
This routine locks the connection between the currently
connected terroinal and its process entry destination b~ settinq a
switch in the SCBSTATF byte of the SCB.
~he extended lock switch is
set if the reouest is by the LOCK macro.
If the routine finds that a terminal is net connected, the routine
exits immediately to the Return Interface routine (IEDQLM) with X'04'
in reqister 1~.
If a terminal is connected but the destinatien is the
Buffer B.eturn QCE or is not an applicatien proqram, the Leek routine
exits with a return code of X'08' in reqister 15.
A return code of
X'08'
also indicates that the buffer has an indiacted lenqth of zero
or that the buffer is net a header buffer.
A X'OC'
return code
indicates
that there is no GE~ DCE open for the destination
application preqram.
The successful return code is X'OO'.
~xternal

Routine:
entry address.

Tables/Wor~

Attributes:
mode.

IEDOTNT - Termname Tatle code - to qet

Areas:

a

terminal

AVT, LCE, QCE, SCB.

Reusable, refreshable, enabled, resident,

~roblem

proqram

"nlock Poutine (Chart EF)
Mo~ule

Name:

IEDCBF

Bntry Point:
IEDOBF - called throuqh the User Interface routine by
the UNLOCK macro expansien.
Functions!
This routine unlocks the currently connected terminal by
turninq off the lock bits in the SCBSTA~F tyte of the SCB (if they
were on).

Program Organization

283

of

If the currently connected terminal is not locked, a return code
X'04'
is placed in reqister 15. Otherwise, X'OO' is returned in

r~qister

15.

External Routines:
~ables/Work

Attributes:
mode.

Nene

Areas:

AVT, SCP.

Reusable, refreshable, enabled, resident,

~rcblem

proqram

Distribution List Subtask (Chart BC)
~oaule

Name:

IEDCBC

Bntrv Point: IEDCBC - activated by the 7CAM Dispatcher when a messaqe
i s. sen t to a des t rib uti 0 n 1 is ten t r V in the T e r min a 1 Tab 1 e ..
This module tposts the buffers of a messaqe to each of the
0estinations specified in the distribution list to which the messaqe
was reuted.
~unctions:

The
Distribution
List
suttask t~csts the messaqe to the
Destination OCE for the first or next entry in the distribution list
and exits to the Dispatcher. When the Destination Scheduler reqains
control, it finds the duplicate header bit on in the buffer prefix and
tposts the buffer to the QCE indicated in" LCEFCCCE - the Distribution
List OCR.
In this manner, the Distribution List subtask reqains
controls to t~cst the messaqe to the next destination.
When the buffer has teen returned for the last destination in the
list, if multiple routinq is not active, the kuffer is tposted to the
Puffer Return OCE ana the LCB is tposted tc the Buffer Disposition
OCB.
If multiple routinq is active, the Distribution List subtask
tposts the buffer to the Multiple Routinq QCE and sets LCERCQCP to
refer to the Mu1tiple RoutinqQCP.
The nistritution List subtask exits to the DSPCHAIN entry point of
the TeAM Dispatcher.
~xternal Routine:
~able
address of

IEDOTNT - Termname Table cede - to qet the Terminal
the distribution list entry and of each entry in the

distritution list.
Tab19s/Work Areas: AVT, LCB,
~erminal Table, C(B.
Attributes:
mode.

bu~fer

prefix,

Termname

Table,

?eusable, refreshable, enabled, resident, problem proqram

Cascade List Sul:task (Chart BG)
284

SCE,

Module Name:

I!tOEG

Entry Point:
IEDQBG - activated .by the TCA~ Dispatcher when a messaqe
is sent to a cascade list entry in the ~erminal Table.
~unctions:
This module tposts the buffers of a
messaqe to one
destination in the cascade list to which the messaqe was routed.

~he Cascade List subtask examines
the terminal entry for each
entry in the list in order, searchinq for the first terminal that can
accept, is not beld. has an open rCB, and has the fewest
number of
mes~aqes
queued for it.
Once an entry that roeets these conditions is
found, the Cascade List subtask t~osts the messaqe to its Destination
OCE and resets the destination fields in the SCE and in the buffer
prefix.
If a terminal that meets all these conditions cannot be
found,
the messaqe
is tposted to the Destination QCE for the first
entry in the list.
~he Cascade list subtask exits to the DSFFCST entry peint
TCAM Dispatcher.

of

the

External Routine:
IEDQTNT - Termname Table cede - to qet the Termname
Table address of the cascade list entry and· of each item in the
cascade list.
Tables/Work Areas:
AVT, LCE, SeE,
buffer prefix, Ber, OCE.
Attributes:
mode.

Termname

Table,

Reusable, refreshable, enabled, resident,

Terminal

Table,

~roblem

proqram

MESSAGE HANDLING - OUEUE MANAGEMENT ROUTINES
Destination Scheduler
Module Name:

(Chart HM}

IEDCHM

Bntry Points:
•
4

•

I~DOFM

~

frcm the TeAM Dispatcher with a full tuffer to be queued.

TEDQHM02 - frcm the Reusability-Copy
start-up Messaqe routine (TGGC19B6)
be queued.

suttask
(IGG019FP)
or the
with one unit of a buffer to

IEDOHM03 - from IEnOHM,
the Reusability-CorV
subtask and CPE
Initialization to
find the seB address if the first FEPC messaqe
on the in~ut Destination OCB is beinq sent.

functions:
~his subtask assiqns a buffer tc a location in
a
messaqe
queues data set (reusable disk. nonreusable disk, er main storaqe, as
applicable) by tpcstinq the buffer to the Disk I/O OCE.
The buffer is
chained to other buffers of the messaqe, and this messaqe is chained
to other messaqes in the same queue.

Program Organizaticn

285

~he
first buffer of the messaqe contains the a1dress of the next
seqment and of the first buffer of next messaqe~ Each tuffer has the
address of the next messaqe seqment (if it is bot the last buffer),
the address of the additional records (if any), and, if it is not the
first buffer ef a messaqe, the address ef the first buffer of this
messaqe.

If the messaqe is disk Queued, the first and the last tuffers of
a messaqe contain the queue-back chain ~ointers. The queue-back chain
is a time sequential record of the events (both sendinq and receiving)
for a Destinaticn OCB. If the QCE represents the destination of the
messaqe, the first buffer appears in the queue-back chain from that
QCB.
If the OCB represents the source of the messaqe (line or
terminal) the last buffer of the messaqe appears in the queue-back
chain of the OCF..
Disk messaqe·queuinq (reusable or nonreusable) is accomplished by
assiqninq relative record numbers ahead on disk.
There is a value
called
"address"
for ~oth reusable
(AVTRADrR)
and nonreusa.ble
(AV~NADnF) disk data sets in
the AVT.
There is a correspondence
between the value of addre~s and the ~hysical location (MBBCCHHF) of
the record on disk. When the address, medulo the total number of
records
in
the
data
set,
is used, there is a one-to-one
correspondence. When a first huffer that is net also the last buffer
of a m~ssaqe is received, the Destinaticn Scheduler reserves a value
of address for the first buffer of the next messaqe for that
Destination ceE and a value of address for the next buffer seqment of
this messaqe.
Sequential values of address are reserved for any
additional records required.
When a sutsequent buffer that is not
also the last cuffer of a messaqe is received, the Destination
Scheduler reserves locations for the next-seqment and for addition~l
records. When a last cuffer of a messaqe is received, no 1ccation for
next-seqment is reserved.
The main storaqe messaqe queues data set is not divided into
numbered reccrds. One record corres~onds in size to.cne buffer unit.
Units are not assiqned ahead as in disk queuinq; however, themessaqes
in one queue arE chainEd tOQether and the buffers ef a messaqe are
chained toqether. The value AVTCArDB is similar to the address value
on disk.
AVTCADDR corres~onas to the- number of units used cut of the
total number reserved for main storaqe queues. Chaininq is not done
by record numcer for main storaqe queues, but by the actual address.
The additional records are located throuqh the TIC fields in the RCB
of the buffer units.
When the first buffer of a messaqe to be main stcraqe queued is
received, the cuffer is chained to the first buffer of the previous
rnessaqe in the queue. When a subsequent cuffer of a message to be
main storaqe queued is received, the buffer is chained to the pre.ious
buffer of this messaqe.
~he
number cf units cerrespondinq to the
number of units in the buffer is removed from the buffer unit pool.
If the messaqes f~r this Destinatien QCB are to be roain storaqe queued
only, the Destination Scheduler tposts these units to the Buffer
Feturn aCE and ~laces the buffer in the
roain storaqe queue of
messaqes for the aCE. If the messaqe is to be disk queued also, the
Destination SchEduler copies the the messaqe into the units from the
286

buffer unit ~col
aueue for the QCE.

and places the buffer in the main storaqe messaqe
The oriqinal tuffer, therefore, is disk queued.

When the Destination Scheduler receives the last buffer of a'
messaqe and the scheduler associated with this Destination QCB is in
the STCB chain cf the Destinaticn OCE, the Destination Scheduler
issues a BAIR to a subroutine of this scheduler. This FAIR notifies
the sche~uler that a messaqe is available.
The Destinatien Scheduler exits to the TeAM Dispatcher at DSPPOST
or DSPDISP or, if called by the ~eusability-Copy suttask, to the
callinq routine.
External Poutines:
•

IEDOTNT - Terroname Table code - to attain the address of
~ermina1 Tarle entry frcm the offset into the Termname Table.

•

The subroutine of the scheduler for the Destination QCE.

Tables/Work Areas: LCE, DCE, SeE, tuffer prefix, QCB,
Table, disk data area.
Attributes:
mcde.

AVT,

the

T~rminal

Reusable, refreshable, enabled, resident, problem proqram

Destination Scheouler - Main Storaqe
Module Name:

Oueui~q

Only (Chart HM1)

IIDCHM1

Entrv noints:
•

TEDO~M1

- from the

~CAM

Dispatcher

with

a

full

buffer

to

be

queued.
•

IEDQHM02 - activated by the Start-up Messaqe
with one unit of a buffer to te queued.

routine

(IGG01QF.6)

•

TEDQHM03 - called frem IEDQHM1 to find the SCE address if the
first FEPO messaqe on the input ryestinatien QCB is beinq sent.

This subtask assiqns a buffer to a location in a main
storaqe messaqe queues data set.
The buffer is chained to other
huffers of the messaqe, and this rressaqe is chained te other messaqes
in the same queue.
~.unctions:

The first buffer of the messaqe contains the address of the next
seqment and ef tr.e first tuffer of next messaqe. Each ruffer has the
address of the next messaqe seqment (if. it is net the last buffer),
tbe address of the additional reccrds (if anv}. and, if it is not the
first buffer of a messaqe, the address of the first ~uffer of this
messaqe.

PIogram Organization

287

The main storaae messaqe queues data set is not divided into
numbered records. One record corresponds in size to one buffer unit.
Units are not assiqned ahead as in disk queuinq; however, the messaqes
in one queue are chained toqether and the tuffers of a messaqe are
chained toqether. The value AVTCADDR is similar to the address value
on oisk.
AvrCADrR corresponds to the number of units used out of the
total number reserved for main stcraqe queues.Chaininq is not done
by record numher for main storaqe queues, but by the actual address.
The additional records are located throuqh t~e TIC fields in the BCB
of the buffer units.
When the first buffer of a messaqe tc te main storaqe queued is
receivea," the huffer is chained to the first huffer of the previous
messaqe in the queue.
When a suhsequent buffer of a messaqe to be
main storaqe queued is received, the buffer is chained to the previous
buffer of this IT'essaqe. The number of units correspondinq to the
number of units in "the huffer is removed frcm the huffer unit pool.
~he Destination Scheduler tposts these units to the Buffer Return
OCE
and places the tuffer in the main storaqe queue of messages for the
aCE.
When the Destination Scheduler receives the last buffer of a
messaqe and the scheduler associated with this Destination OCB is in
the STCB chain cf the Destinaticn QCE, the Destinaticn Scheduler
issues a BAIF to a sutroutine of this scheduler. The EAIR notifies
the sche~uler that a messaqe is available.
The Destinaticn Scheduler exits to the
or DSPDISP.
~xternal

Dispatcher at

~CAM

DSPPOST

Routines:

•

IEDO~NT - ~ermname Table code to obtain the address of
Terminal ratle entry from the offset into the Termname Table.

•

The

subro~tine

of the scheduler for the Destination QCB.

~ables/work Areas:
LCE, DCE, SCE, tuffer prefix, QCB,
entry, disk data field.

Attributes:
mode.

the

AVT,

terminal

Peusable, refreshable, enabled, resident, prcblem proqram

Destination Scheduler - risk Oueuinq Only (Chart HM2)
Module Name:
~ntrv

•

Points:

IEDOHM2 - from the
queued~

288

I~DCHM2

~CAM

Dispatcher

with

a

full

buffer

to

be

•

IEDOHM02 - from the Beusability-Copy suttask
(IGG019RF)
or the
startup Messace routine (IGG019?6) with one unit cf a cuffer to be
queued.

•

IEDOHM03 - called frcm IEDQHM2, the Reusarility-Copy suttask,
and
CPB Initialization to find the SCE address if the first messaqe on
the input restination OCB is ceinq sent.

Functions:
This subtask assiqns a buffer to a location in a messaqe
queues data set (reusable disk or ncnreusable disk, as ap~licable)
by
tpostinq the tuffer to the Disk I/O QCB. The buffer is chained to
other buffers of the messaQe, and this messaqe is chained to other
messaqes in the same queue.
The first tuffer of the messaqe contains the address of the next
seqment and of the first buffer of next messaqe.
Each buffer has the
address of the next messaqe seqment (if it is not the last buffer) ,
the address of the additional records (if any), and, if it is not the
first buffer of a messaqe, the address cf the first buffer of this
messaqe.
When the messaqe is disk queued, the first and the last buffers of
a messaqe contain the queue-back ~ointers. The queue-back chain is a
time sequential record of the events (roth sendinq and receivinq) for
a Destination OCE. If the QCE represents the destination of the
messaqe,
the first buffer appears in the queue-back chain from that
aCE.
If the OCB represents the source cf the message
(line or
terminal)
the last buffer of the messaqe appears in the queue-back
chain of the OCE.
Disk messaqe queuinq (reusable or ncnreusable) is accom~lished by
assiqninq relative record numbers ahead on disk.
~here is a value
called "address" for both reusable
(AV'l'RADDR)
and
nonreusable
{AVT~ADURl
disk data sets in the
AV~.
There is a ccrrespondence
between the value of address and the physical location
(MEBCCHHR)
of
the record on disk.
When the address, modulo the total number of
records in the data set, is used, there is cne-to-one correspondence.
When a first buffer that is not also the last buffer of a messaqe is
received, the Destination Scheduler reserves a value of address for
the first buffer 6f the next'messaqe for that Destination OCB and a
value of address for the next tuffer seqment of this messaqe.
Sequential values of address are reserved for any additional records
required.
When a subsequent buffer that is not also the last buffer
of a messaqe is received, the Destination Scheduler reserves locations
for the next-seqment and for"additicnal records.
When a last buffer
of a messaqe is received, no location for next-seqment is reserved.
When the Destination Scheduler receives the last buffer of a
messaqe and the scheduler associated with this Destination QCB is in
the STCB chain cf the Destination QCB,
the Destination Scheduler
issues a BALF tc a subroutine of this scheduler. This BALR notifies
the scheduler that a messaqe is available.
The Destinaticn Scheduler exits to the ~CAM Dispatcher at DSPPOST
or DSPTIISP or, if called bv the ~eusatility-Copy subtask, to the
calli nq ,rou ti ne.

Program Organization

289

External Routines:
•

IEDOTNT - Termname Table code to ottain the address of
Terminal Table entry form the offset into the Termname Table.

•

The suhroutine of the scheduler for the Destination QCE.

Tables/Work Areas: LCE, DCB, SCE, tuffer prefix,
entry, disk data field.
Attributes:
mode.

QCB,

Reusable, refreshable, enabled, resident,

AVT,
~roblem

the

terminal
proqram

CPB Initialization (Chart FA)
Module Name:

IEDCFA

Entry Points:
•

IEDOFA - the CPE Initialization routine
called by the TCAM
Uispatcher to queue a buffer on disk or to obtain full buffers
from a main storaqe cr aisk messaqe queue.

•

IEDQFQ - the CPE Cleanup routine - callea by the TCAM Dispatcher
to handle CPEs after disk operations and to fill buffers from data
in CPEs that have read a reccrd cr frcm units in a main storaqe
queue.

Functions: ~his module consists cf two routines:
IEDQFA,
the CPE
Initializaticn routine, which initializes (FEs to write or read buffer
units to or frcm disk;
and IEDQFQ, the CPE Cleanup routine, which
handles the CPEs after disk I/O has been ccm~leted.
There are three different types of in~ut to the IEDQFA entry point
of the CPB Initialization module, and the functions perfcrmed depend
on the input:
•

A buffer to be written on disk.
The input contains the relative
record numbers for the units of the buffer.
The buffer is tposted
to
the
Disk
I/O OCE by the Destination Scheduler.
CPB
Initialization builds the CPEs to write the record on disk.

•

Buffers to be flaqqed serviced or canceled on the roessaqe queues
data set.
1hese buffers were t~ost€d to the Disk I/O QCE by the
Buffer Dis~osition subtask.
(PB Initialization builds the CPBs to
write the requested records ~n disk.

•

An ERE tposted to obtain full buffers. The Send Scheduler tposts
the FRB to obtain full buffers to satisfy an initial request for
sendinq.
Euffer Disposition tposts the EPE for recall.
The
EOB/ETE Handlinq subtask tposts the ERE for recalled buffers.
The
Get Scheduler tposts the ERE to obtain full buffers to satisfy a
GFT command.
PC! Appendaqe t~osts the ERE to qet buffers for
subsequent transmission.
Fer recall, the address of the first

290

byte of data to put in the buffer is in the SCBDEOB field of the
SCB: otherwise, it is in SCBSCSEG.CPB Initialization builds CPBs
for disk reads,
ottains the buffers, fills 'them with data, and
tposts either the tuffer or the ERB with the [uffers to the
appropriate OCB.
CPB Initialization exits to the EXCP Driver when t~ere are either
no elements to ~rccess or no CPBs available.
If there is no disk in
the system, CFB Initializatioti ~xits to the TCAM Dispatcher.
If a loaical read error occurs durinq a recall when a request is
made to read a record and the record number read does not aqree with
the requested record number, CPE Initialization sets the appropriate
error flaqs' and returns the ERB to the sDecified OCE.
~here are two types of input to the IEDQFO, or (PB
Cleanup,
part
of the CFE Initialization module, ana the functions ~erformea depend
on the input:

•

OCB - the (PE Cleanup QCB is t~osted to itself to initiate cleanup
of the CPEs.
Disk End Appendaqe tpcsts the QCB after disk IIO .is
complete and the completed CFBs have teen placed on AVTDKAPQ.
CPB
Cleanup resets the CPB buffer address into CPBXREA and examines
CPBFLAG for X'80'.
Tf this flaq is set~ the CPEs telonq to the
Beusablity-cc~y
suttask, so CPB Cleanu~ enqueues the CPBs on
AVT?~USO.
If the flaq is not set, CPB Cleanup returns the CPBs
for disk writes to the CFE free ~ocl, and if the CPE was for a
disk read, places the data in the buffers and returns the CPB
to
the CPB free ~ool.

•

Buffer - a buffer unit is tposted to satisfy a request from CPB
Cleanup.
Buffer Return tposts the availarle unit to the Cleanup
OCB.
(FB Cleanup locates the CPB that
is associated with this
buffer on the No-buffer queue.
The buffer is associated with the
CPB to te later processed by
the
TEDeFA
part
of
CPE
Initialization.

~fter
all CPBs on the CPB Cleanup QCE have teen processed, C~E
Cleanup branches to the Reusability-Copy suttask (IGG019BP) if either
the "Reus first time" switch is on, the "Copy needs control" bit is
set, or AV~~EUSQ has elements on it. otherwise, CPE Cleanup exits to
TEDO"A.

~xternal

Routines:

•
IGG019~E or IGG019RO - TCAM Dispatcher - to place
the ready queue bV pricritv.
•

an

element

on

IFDOHM03 in IEDOHM - Destination Scheduler
to find the SCE
address when the first FEFO messaqe on the input testination QCB
is beinq sent.

Tables/Work Areas: LCE, SeE, buffer prefix,
CPE, DCB, disk data field.

~erminal

Table, AVT, QCB,

pxogram Organization

291

Attributes:
mode.

Feusable, refreshable, enatled, resident, rrcblem proqram

CPB Initialization - Main Storaqe Oueuinq Only (Chart FA1)
Module Name:
Entrv

IEDCFA1

~oints:

•

IFDQFA1 - the CPP Initialization routine
called ty the ~CAM
Disoatcher to obtain full buffers from a main storaqe queue or to
flaq a messaqe serviced.

•

IEDQFO - the CPE Cleanup routine - called by the TC~M Dispatcher
with a tuffer unit that is to te used tc build a buffer for a main
storaqe queue.

~unctions:
This module consists of two routines: IEDQFA1, the CFE
Initialization routine, which qets full buffers from a main storaqe
queue and flaqs a messaqe serviced; an~ IEDQFO, the (PE Cleanup
routine, which ruilds buffers for a main storaqe queue.
~here are two dirrerent types of inrut to the IFDQFA1 entry
point
of the CPB Initialization module, and tbe functions performed depend
on the input:

•

Buffers tc te flaqqed serviced or canceled on the messaqe queues
~ata
set.
~hese ruffers were t~ost€a to the Disk I/O QCE by the
Buff~r Dis~osition subtask.
(PB Initialization either frees the
buffer frow the messaqe or sets the 'cancel' flaq in the messaqe
on the messaqe queue.

•

An ERB tpcsted to obtain full tuffers. The Send Scheduler tposts
the EBE to cctain full buffers to satisfy an initial request for
sendinq. Euffer Disposition tposts the ERE for recall.
The
~OB/ETE Handlinq subtask tposts the EBB for recalled buffers.
The
Get Scheduler tposts the ERE to obtain full tuffers to satisfy a
GE~ command.
PCI Ap~endaqe t~osts the EPE to qet cuffers for
subsequent transmission.
For recall, the address of the first
byte of data to put in the buffer is in the SCBDEOB field of the
seE; otherwise, it is in SCBSCSEG. CPE Initialization obtains the
buffers, fills them with data, and t~csts either the buffer or the
ERB with the tuffers to the ap~ropriate OCE.

CPE Initialization exi~s to the TCAM tispatcher when there are no
elements to precess. There is one type of inrut to the IEDQFQ, or CPF
Cleanup, part of the CPE Initialization module - a buffer. The Buffer
Return routine tpcsts an available buffer unit to IEDQFQ to satisfy an
BRB request. CPB Cleanup locates the pertien cf the messaqe to be
placed in this buffer ana then branches to IEDQFA1 for buffer
processinq.

292

External Boutines:
•

IGG019RE or I~G019RO - ~CAM Dispatcher - to place
the readv Queue bv priority.

•

IEDOHM03 in I]DOHM1 - Destination Scheduler
to' find the
SCP
address when the first FEFO messaqe cn the input Destination QCB
is beinq sent.

an

element

on

·Tables/Work Areas: LCB, SCE, buffer prefix, !erminal Table, AVT, QCB,
CPE, DCB, disk data field.
Attributes:
mode.

Feusable, refreshab1e, enabled, resident, problem proqram

CPE Initialization - Disk Oueuinq Only
Module Name:

(Chart FA2)

IEDCFA2

'Rntrv Points:
•

TEDQFA2 - the CPB Initializaticn routine
called by the TCAM
Dispatcher to ~ueue a buffer on disk cr t9 obtain full buffers
~rom a disk messaqe queue.

•

IEDOFO - the CPB Cleanup routine - called tv the TCAM Dispatcher
to handle CFEs after disk operations and to fill buffers from data
in CPBs that have read a record.

~unctions:

This module consists of two routines~ IEDCFA2, the CPE
Initialization routitie, which initializes (PEs to write or read buffer
units to or from disk; and IEDQFO, the CPE Cleanup routine,
which
handles the CPEs after disk I/O has been com~leted.
There are three different types of input to the IFDQFA2 entry
point of the CPB Initialization module, and the functicns ~erformed
depend on the input:
•

A buffer to be written on disk.
The in~ut contains the relative
record numbers for the units of the buffer.
The buffer is tposted
to
the
Disk
I/O OCB by the Destination Scheduler.
CPB
Initialization builds the CPBs to write the record on disk.

•

Buffers to te f1aqqed serviced or canceled on the messaqe queues
data set.
~hese buffers were t~ost€d to the Disk I/O QCE by the
Buffer Dis~osition sUbtask.
CPE Initialization builds the CPPs to
write the requested records on disk.
An ERE tposted to obtain full buffers. The Send Scheduler t~osts
the ~RE to obtain full tuffers to satisfy an initial request for
senninq.
Euffer Disposition tposts the ERB for recall.
The
~OB/ETB Handlinq subtask tposts the EBP for recalled buffers.
The
Get Scheduler tposts the ERE to ottain full buffers to satisfy a
GET command.
PCI Ap~endaqe t~osts the EBB to qet buffers for
subsequent transmission.
For recall, the address of the first
bY.te of da ta to put in the bu ffer is in the SC13; otherwise, it is

Program Organizaticn

293

in SCESCSEG.
CPB Initialization builds CPPs for disk reads,
obtains the buffers, fills them with data, and tposts either the
buffer or tt.e ERB with the buffers to the a~propriate QCB.
CPB Initialization exits to the EXCP Driver when there are either
no elements tc ~rccess or no CPBs available.
If a loqical read error oc6urs durinq a recall when a request is
made to read a record and the record number read does not aqree with
the requested reccrd number, CPB Initialization sets the appropriate
error flaqs and returns the ~RB tc the specified QCE.
There are two types of input to the IFDQFO, or CPB Cleanup, part
of the CPB Initialization module, and the functions performed depend
on the input:
•

OCB - the CFB Cleanup OCB is tposted to itself to initiate cleanup
of the CPEs. Disk End Appendaqe tposts the QCE after disk I/O is
complete and the com~leted CPBs have teen placed cn AVTDKAPQ. CPE
Cleanup resets the CFE buffer address into CPBXREA and examines
CPBPLAG for X'80'. If this flaq is set, the GPEs belong to the
qeusabilitv-Ccpv suttask, so CPB Cleanup enqueues the CPBs on
AV~BEUSO.
If the flaq is not set, CPB Cleanup returns the CPBs
for disk writes to the CPE free ~ool and, if the CPE was for a
~isk read, places the data in the buffers and returns the
CPR to
the CPE free ~ool.

•

Buffer - a buffer unit is tposted to satisfy a request from CPE
Cleanup.
Buffer Feturn tposts the available unit to the Cleanup
OCB. CPB Cleanup locates the CPB that is associated with this
buffer on the No-buffer queue. The buffer is associated with the
CPB to be .later processed bV the
IEDQFA2
part
of
CPE
In:itialization.

After all cpgs on the CPB Cleanup QCB have been processed, CPE
Cleanup branches to the Feusabilitv-Copv suttask (IGG019RPl if either
the . "Reus first time" switch is on, the "Co~V needs control" bit is
set, or AVTF~USC has elements on it. otherwise, CPE Cleanup exits to
TEDO'FA.
External Routines:
•

IGG019RB or IGG019RO - TCAM Dispatcher - to place
the ready Queue bV pricritv.

an

element

on

•

IEDQHM03 in IEDOHM2 - Destination SchEduler
to find the seB
address when the first FEPO messaqe on the input destination QCB
is beinqsent.

Tables/Work Areas: LeB, SCB, buffer prefix, Terminal Table, AVT, QCB,
CPE, DeB, disk ~ata field.
A.ttributes:
mode.
294

Reusable, refreshable, enabled, resident, problem proqram

BXC? Driver (Chart RC)
Module Name:

IGGC19FC

'Entry Points:

•

IGG019RC
the EXCP Driver routine
Initialization routire to start disk l/C.

•

I~DO~P - the Convert routine - called by IGG019FC to
convert the
absolute reccrd number to the MBECCEHF address in the disk data
set.

called

by

the

CPE

~unctions:
The EXCP Driver routine of this module chains the CPBs
that were bequn bV CPB Initialization in the Frc~er sequence, adds
Seek and Search-TIC CCws where necessary, and sets the absolute disk
address in the IOE. EXCP Driver then calls ICS with the lXCP macro to
start nisk IIC on the line. When the channel proqraro is completed,
EXC~ Driver nasses additional
CPBs to the lOB for the Disk End
Appendaqe to retry, and then returns to the TCAM Dispatcher.

Tbere are ttree maior steps in this routine: insertinq by CC
priority. optirrizinq the disk channel preqram, and issuinq an EXCP.
•

Insert by CC

~riority

takes each (FE frpm the input queue
~he FXCP Driver routine
(AVTINCPOl
ana uses the Ccnvert routine tc convert CPBADDR to the
MBBCCHH~ address.
The convert routine converts an absolute record number to
MBBCCHHF disk address for a multi-volume ~CAM disk messaqe queue.

an

The disk messaqe queue consists of one or more similar extents of
one fixed, unblocked data set. Each extent is on ene or more disk
drives of the sarre type, and eacb extent must contain the same number
of continuous cvlinders on a cylinder boundary~
The records are
assiqned to the disks as discussed under ~ultiple Arm Support in the
Method of Operaticn section of this publicaticn.
The convert rcutine obtains the I absolute record number to be
from the CPBADDF field of tte CPB. After usinq values
stored in the AVT to convert this value to MBBCCHHR, the converted
value is placed in the CPBABSAD field of the ePE.
All ether fields,
in~ludinq the input field, are
unchanqed, except that the command
chain bit in the second READ/~FITE CCW is turned off. This routine
then branches back to the EXCP Driver rcutine.
converte~

The EXCP Driver routine uses "M" as the search £ndex to find the
appropriate ICB for this extent. It then searches the New queue of
the appropriate ICB, usinq "CC" as the arqu1l1ent to find the proper
place for the new CPB. The order is ~IFC-~er-cylinaer, but cylinders
are in order with the current arm position of the disk havinq the
hiqhest priority.
•

Optimize the disk channel proqram
ptogram Crganization

295

The FXCP rriver routine compares the new CPB with the previous CPB
on the New queue. ~ive conditions are recoqnized, and accordinqly,
one of three possible types of CPEs is built into the new CPB.
Condition
CPE-!y~
1. There is net a previous CBP

Medium

2. Previous CPB is fer a different CC

Medium

3. Previous CPB is for the same CC, but

a different HH

Iaroe

4. Drevious CFB is for the same track,
but its record is not the cne
immediately precedinq the record of
the new CFE
Medium
~.

Previous CPB is for the record
immediately precedinq the record of
the new CPE (read only).

Small

A l~rge ~E] starts with seek, search, and TIC CCWs.
It is usen to
chanqe heads en the same cylinder.
A ..ID.§dium CPB starts with search
and TIC CCWs.
It is used to locate non-sequential records on the same
track as the pre.ious CPE, and also to start the new channel proqram
on a new cylinder. A .§J[S11 CPB has only READ/WRITE CCWs. It is used
for findinq sequential records on one track.
•

EXCP

After all of the CPBs have been built cnto the New queue, each IOB
is checked to te Eure that if any CPBs are available, the Retry queue
has some.
If ~XCP is not busy, EXCP Driver shifts the Retry queue
CPBs to TOBSTABT, shifts one cylinder of (PEs from the New queue to
the qetrv aueue, and then issues an EXCP command.
If

EXCP is busy er if there are no CPEs on the New queue, EXCP
tranches to the TCAM Dis~atcher.
Reqister 15 is set equal te
X'08' to indicate that there is a chain pointed to by reqister 1.

nriv~r

'External
channel.

Routine:

~ables/Work

~reas:

Attributes:

~XCP

296

FXCP

routine

Points:

(SVC

a)

-

to start I/O on the

IOE, DEE, CPB, AV!.

Resident, reusable, refreshable, problem prcqram mode.

Driver fer a Sinqle CPE (Chart

Monule Name:
~ntrv

OS

IGG019P~

~F)

•
TGG019RF
the EXCP Driver routine
called
Initialization routine to start disk I/O for one CPE.
•

the

by

CPE

IEDQFP - the Convert routine - called tl IGG019RF te convert the
absolute reccrd number to theMBBCCEHR address in the disk data
set.

The lXCF Driver for a Sinqle CPE takes the CPB that was
bequn by CPE Initialization and finishes buildinq the CCWs. This
module adds Search-TIC CCws where necessary, calls IEDQFP to translate
the absolute disk address to an MBBCCHHF value, and then calls IOS
with the FXCP macro to start disk I/O. ~ten the channel proqram is
completed, FXCP DriVer returns to the TCAM tis~atcher.
~unction:

F-xternal Routine:
channel.
Tables/Work Areas:
Attributes:

OS EXCP routine (SVC 0)

to

start

I/O

on

the

ICB, DEE, CPB, AVT.

Resident, reusable, refreshable,

~roblem

proqram mode.

Disk End Appendaoe (Chart R21
Module

Nam~:

Fntry Point:

IGGC19B2
IGGC19R2 - called by TOS at the end of a disk operation.

Functions:
This appendaqe receives centrel from lOS at the end of a
disk rio operation. It removes the CPBs frcm the lOB and makes them
available for the CPB Cleanup routine by tpostinothe CPE Cleanup QCB
to the disabled ready queue. CPBs are obtained from IOBSTABT by usinq
CPENEXT as a chaininq ~ointer. The CPBNEXT field of the last CPB is
zero.
The CFBs are passed to CPB Cleanup via one of two FIFO queues,
AVTDKAPQ or AVTDKENO.
The CPP. Cleanup QCE is taqqed AVTCPECE.
If
AVTEIT1 is set to X'80', AVTDK!NO is used, instead of AVTDK~FQ, te
hold CPBs that are beinq returned to CPB Cleanup.
If any CPEs are available on the retry queue, they are returne~ to
TOS with a request to retry the disk channel ~roqraro. The locked bit
in IOBXLOCK of the IOE is first checked for permission to try I/O on
the CPBS on the retry queue. If lecked, t~e retry queue is left
untouched. The chain of C~Bs ;ust finished by lOS is in IOESTART, and
the MeBCCHHR ef the first CPR frem the retry queue is set to IOBSEFK
if retry is to be done.
Disk End AppendaQe examines the CPB Cleanup QCB for a priority
value of zero.
~his value indicates that the OCB is not on the ready
queue. 1£ the QCE is not on the ready queue, Disk End Appendaqe
tposts the eCE to itself on the disabled ready queue in erder to
activate the CFE Cleanup routine (IFDQFQ in IFDQFA).
Disk End A~~endaqe posts complete the FCB for the TCAM Dispatcher
in order to reactivate the TCAM task.
Disk End Appendaqe then returns

Program Organization

297

to IOS via reqister 14 if there is no retry, or via reqister 14+8 if
retry is to be attempted.

as

External Routine:

Post routine (SVC 2) - to post complete the TCAM

~CB.

Ta~les/Work

Attributes:

Areas:

OCE, IOB, CPB, AVT.

Feentrant, refreshable, superviEcr mode.

Disk End Appendaqe for a Sinqle CPB (Chart FK)
Module Name:

IGG019FK

Entrv Point:

IGG019FK - called by TOS at the end of a disk

o~eration.

Function:
This a~pendaqe receives contrel from IOS at the end of a
disk I/O operaticn.
It removes the sinqle CPE from the ICB ana makes
it available for the CPE Cleanup routine ty placinq the CPB on the
AVTD~APO
FI~C
queue.
The Disk End Appendaqe then tposts the CPB
Cleanup OCE to the disabled ready queue in
erder to activate CPE
Cleanup to precess the CPB.
This Disk End Appendaqecomplete the ECE
for the ~CAM rispatcher to reactivate the TCAM task and
then returns
to TOS via reqister 14.
Routine:
as Post routine (SVC 2) - to post complete the TeAM
FCB, which allows the TCAM Dispatcher to te reactivated.

~xternal

Tatles/Work Areas:
Attributes:

Beentran~,

Reusabilitv-Co~y

Module Name:

OCB, IOE, CPB, AVT.

~ubtask

refresbable, superviscr mode, disabled.

(ChartRP)

IGG019RP

Entry Point:
IGG019RP is loaded by the Disk Messaqe Queues Open
routine and has only one defined entry point.
There are, however, two
loqical entrieE:
•

REUS - called bv CPE Initialization
set availatle for reuse.

(IErOFA)

•

COpy - called bv the TCAM Dispatcher tc
from one messaqe queue to another.

move

to make the disk data
an

Functions:
This module makes the disk messaqe
reusable bv periodically performinq twc functions:
1.

298

entire
queues

messaqe
data set

~ovinq the unused preassiqned locations for
the first units of
messaqes inte the current zone byplacinq a cancel bit in the old
lccation cf the unitE on disk, and

2.

Copyinq unsent messaqes into the current disk zene
them fer transmissien te an alternate destinatien.

and

enqueuinq

If the user specifies OUEUES=D~ on the TERMINAl macre and OPTCt=R
on the DCB for the reusable disk messaoe queuEs data set, the
reusability function of the Reusability-copy Subtask is applicable.
The disk data set is loqically divided into four zo~es, and when
Destination Assionment (IEDQHM021
assiqns a new disk record to a
location that is equal to the current 20ne boundary
(AVTLODPT),
Destination Assiqnment sets a "first time" switch to request CPB
Initialization to exit to F~DS. CPE Initializatien branches to REUS
at a midzone ~oint, and the Feusability-Copy surtask cancels all
unused preassiqned next-messaqe lecaticns in the precedinq zone. This
moves each next-messaqe location into the current zene.
~he
subtask
also copies all unsent messaqes in the ~ene iust before the precedinq
zone into the current zone, enqueuinq the messaqes for transmission to
an alternate destination.
The COPY part of the Reusability-Copy subtask is activated to copy
a messaqe frcm one queue to another
whenever
two
rece1v1nq
nestinations are to receive the same messaqe, but have their queue on
different messaqe queues. It is also activated when multiple-bufferheader meSsaQES have secondary header records in a zene that is
different from the text records.
The ~EUS function can stop TeAM receivinq operations by settinq
the "R'FUS disk is full" bit (X'40' in AVTB.IT 3) .. When both the "REUS
is runninq" and the "'REUS first time" flaqs arE on, this subtask
allows ~CAM to only send messaqes. Nermal messaqe traffic can be
resumed when this subtask subsequently finds the "REUS first time"
flaq off and turns off the "F'EUS disk is full" bit.
After coropletinq its processinq, the Reusability-Copy subtask
exits to CPB Initialization at IEDOFA02.
Any qenerated CPBs are
passed to ~XCF rriver (IGG019RC) on a FIFe queue. If, however, this
subtask receives a loqical read error or disk, it issues an ABEND,
S045, U0002.

The Beusability-Copy suttask uses a unit frem the buffer unit pool
as a work area that has the followinq DSFCT format:

Prcgram Organization

299

Offset
+0 (0)

SAVEFEFO

DaCB

+4 (4)

NBUNT

saCB

+12 (C)

DNFL

DESTaCB

+16 (10)

Reserved

SOURCaCB

+20 (14)

SRFL

BUFFER/IDBADPTR

+8 (8)

+24 (18)

XTRA

NTXT

NTXT (Cont.)

+28 (1C)

NEWXTRA

NEWXTRA
(Cont.)

+32 (20)

+36 (24)

NEWHEADR

Reserved

BADHEAD

BITS

ALTDESX

+40 (28)

SAVEFE~O

- Save area for the first 5 bytes of the data

~ortion

of the

r~cord

DQCE -

Destination priority OCB

NBUNT
Decremented ccunter
oriqinallv set frcm PRFNEUN~

of

additicnal

units

to

be

copied,

SOCB - Source pricritv OCE
DN'FL

300

Destination messaQ€
X'20' reusable disk
X'10' ncnreusable disk

queue

type - to be OR'ed with C?BFLAG:

X'OO' main storaqe only
DESTOCB - Destination master OCB
SOUFCOCB - Source master QCE
SRFL - Source messaae queue type - to be OB'ed with CPEFIAG:
definitions are the same as DNFL atove

The

tit

BUFFER - In COPY, the acdress of the oriqinal unit tposted to COPY.
IDBADPT~
In BEUS, the absolute disk reccrd number of the record
whose FBFO pointer indicated the messaqe to qo to the alternate

~estination.

XTRA - The absolute address of the next additional unit to be fetched
into main storaqe when mcvinq a messaqe
NTXT - The absolute address of the next buffer to te fetched into main
storaqe when Icvinq a messaqe
NEWXTBA - The absolute address of
additional unit is to be written.
NEWH!ADF
!he
destination.

the

position

in

the

next

absolute address of the first unit for the alternate

BAtHEAD - The absolute address of the first unit of a
sent to an alterncte destination.
ALTDESX - Index in the
BITS -

which

~ermname

messaqe

to

be

Table of the alternate destination.

~laa bits for BEDS:
X'80' - first messaqe of this QeB was to qo to
an alternate destinaticn.
X'40' - last messaqe of this OCB bas beEn checked
tv Reusability.

~he
Reusabilitv-Co~y
subtask uses one CPB to transfer an entire
messaqe from one queue to the other.
At the time the CPB is obtained
from the CPB free pool, the unit work area is taken from the buffer
unit pool to contain infcrmation about the status of the messaqe beinq
moved •. This unit work area is attached tc the CPE by a
~ointer
at
CPEAERB.
When the copy operation is ccmpleted, or when this zone
servicinq by Reusability is finished, the suttask returns the unit
work area to the buffer unit pool and the CFB to the CPB free pool.

!xternal Routines:
•

IE~QHG02

- ~ime Delay suttask - to remcve the checkpcint element
from the time delay queue in order to tpost the element to the
Checkpoint CCB.

•
IEDOHM02 - testination Scheduler - to receive a
buffer,
put the
address value in the prefix, and put the messaqe into the main storaqe
messaqe aueues data set if that is the destination.

Program Organizaticn

301

•

TEDQHM03 - testinaticn Scheduler - to determine whether
messaqe on the Pricritv QCB is beinq sent.

Tables/Work Areas:
Terminal Table.
Attributes:

the

only

AVT, CPE, Termname Tarle, LeE, CCE, ruffer prefix,

Reusable, nonrefreshable, enatled, problem proqram mode.

MFSSAGE CCNTRcr FROGRAM !EFMlNATlCN

FOU~INES

Pesident Closedcwr Completion (Chart NA)
Module Name:
~ntrv

IEDCNA

Point:

•
lEDONA
called bv the TCAM Dispatcher
completion element is on the ready queue.
•
lEDONA3 - called by the
attached task t€rninates.

OS

Termination

when
routine

the
when

closedown
a

TCAM

At the TFDON! entry ~oint, this rcutine links to the
Clesedown Completion module. After centrol is returned,
this routine restores the user reqisters from AVTSAVE1 and returns to
the user code that follows the RFAIY macro Expansion.

~unctions:
~onresident

At the lEDCNA~ entry point, this routinE determines whether the
attached task terminated abnermally. If so, lEDQNA3 negates the !CB
address in reqister 1 and then links to IEDQNA2.
Otherwise, IEDQNA3
returns to as.
Routine: IEDQNA2 - Nonresident Closedown Completien routine
- to close down the ~CP and the attached tasks.

~xternal

Tabl"es/Work Areas:
Attributes:

~onresident

Module Name:

AVT, TCE.

Re€ntrant, resident.

Clos~down

Completion Routine (Chart NA2)

IEDCNA2

Entry Point: IErCNA2 - called by the Resident Closedown Completion
routine (lEDONA) to close down the MCP and the attached tasks.
Functions:
Wt.en reqister 1 is ~ositive, this routine waits for the
completion of all disk activity in the MCP. If there is disk activity
in the MCP, Clesedown Completion exits to the TCAM tispatcher to tpost
the closedown completien element tack tc the ready queue.
If there is nc disk activity in the TeAM system, the Closedown
Completion routine sets a closedown completicn bit in the environment

check~oint request elemer.t and posts the FeEs for any attached
tasks.
This routine waits for the terminatien of the attached tasks and then
detaches the tasks. TheClosedown Completicn rou~ine checks for the
presence of Cbeckpoint, On-Line Test, and FE Commen write before
issuinq a DETATCH:
however, Operator Control is unconditionally
detached.

After the atove functions have been completed, this routine
returns to the Resident Closedown Completicn routine (TEDQNA).
When reqister 1 is neqative, a TCAM attached task has terminated
abnormally.
This module compares the TeE address ~assed from OS with
the TCB address in the AVT to determine which task terminated.
If the
task was TOTE, this module issues an ABEND with a completion code of
42 toabend the MCP.
If the task was operator control, IEDCNA2 issues
a WTO messaqe to the system consele and then returns to IEDQNA3.
If
the task was checKPoint, this module issues a iTC messaqe to the
system console, clears AVTCKGE! to zero so that no more checkpoints
will be attem~tea, and returns to IEDQNA3. If the task was FE Common
Write, IFDONA2 issues a iTO messaqe to the system console, clears
AVTCWFL1 to zero to indicate an inactive status, and returns to
IFDONA3.
External Routines:

None.

Tables/Work Areas:

AV!, IOE, DCB, DEB.

Attributes:

Transient, reentrant.

MCP Closedown Processinq Routine
Module Name:

(Chart CO)

I~DCCO

Entrv Point
IEDOCO - called when an MCPCLCSF cr CLOSEMC macro is
issued in an a~~lication proqram or when the "HALT operator control
command is issued from a terminal or the system console.
Functions:
This routine processes an MCFCLCSF or CLOSFMC macro from
an application prcqram ot a HALT ccmmand frem a terminal or the system
console.
The MCP Clcsedown Processinq routine first scans the input command
for syntax errors. If there are errors, this routine returns to
TEDOCA with X'04' in reqister 15. Otherwise, this routine scans all
the LCBs to set the X'01' bit in LCBQCEA+2 for each stopped line.
The
MCP Closedown Processinq routine then sets the proper clesedown in
proqress switch~s in AVTEIT1.
If the Reusability-Copy suttask is active,
the ~CF Closedown
Processinq routine issues a WAIT until the disk I/O is complete.
After this if any line is sendinq data, the MCP Closedown Processinq
routine issues a WAIT on the Operator Centrel FCB.
This allows the
MCP to qain contrel to process elements en the ready queue.

Program Organization

303

When the ECE is ~osted complete, the MCP Closedo~n Processinq
routine reqains centrol to continue checkinq for line activity.
This
routine checks the lines and issues WAIT macros until all sending
activity has stopped. At this point, the MCP Closedown Processing
routine returns to Operator Contrel so that the stop line routine can
he activated to issue a HALT I/O on each line.
After the sto~ Line routine has performed its functions, the MCP
Closedown ~rocessina routine is reloaded tc examine the PCE use count
fields. If there is an epen DCB for a PCB (use count net equal to
zerol, this routine issues a WTO error messaqe that contains the ;or
name of the application ptoqram to the system console.
This routine
then issues a WAIT on the Operator Control ECE to allow time for a
CLOSV to te executed in the application proqram. When the CLOSE is
executed •. the MCP Closedown Processinq routine regains control to
continue examininq the use counts until the routine determines that
all application proqram DCBs are closed.
When all the [CBs are closed, the MCP Closedown Processinq routine
rechecks the LCBs. If any LCB is marked sending, receiving, or free,
this routine issues a WAIT to allow time for the LCE to be marked
stopped.
When all the LCBs are marked stopped, this rcutine tposts
each LCB to itself and issues a WAIT to flush the queues.
Then this
routine issues a WAIT on the Operator Centrol FCB until all the CPBs
are in the CPE free ~ool.
After all of the above functions are completed, the MCP Closedown
Processinq rcutire tposts an element tc ~he ready queue to request
clcsedown. Tf the checkpoint DCB is open, the routine tpcsts the
environment
request element; otherwise, the routine tpcsts the
clcsedown completion request element.
The MCP Closedown Completion
routin~
returns to the address in reqister 14 - the Operator Control
task. ~ote that the element is t~csted to the ready queue via the
AOCTL SVC 102 routine.
Bxternal Routines:
•

IGC102 - ACCTI SVC 102 routine - to tpost an element to the
queue.

•
OS Wait routine (SVC 1) - to allow time for certain MCP
to complete.
Tables/Work Areas:
Attributes:

CVT, AVT, TCE, DEE, DCE, ICB.

Reentrant, transient.

Line Group Close Foutines (Charts 14 and 15)
Module Names:
Entr, Points:

304

IGG02035, IGG02036

read,

functions

•

IGG02035 - activated by an XCTt from an TIC supported routine to
close the line qroup DCBs. ~he routinemav also be reentered bV
a loop from itself if there are multi~le DCBs to be processed.
(Chart 24)

•

IGG02036 - activated by an XCTt from the line Group Close routine
(IGG02035) after a CLOSE line rCB is issued in a TCAM MCP. It may
also be reentered rv a loop frem itself if there are multiple DCBs
to be processed. (Cb art L5)

Functions:
The
entry point.
•

functions

of

each routine are defined accerdinq to

IGG02035

Load 1 of tbe line Group Close routine determines whether the
clcsedown condition is the result of an abend in the MCP. If the MCP
has not abended, the routine issues an FxeF macro on the line to
perform error recordinq via the IRP reutines. On the etber hand, if
the MCP has atended, the routine determines whether there are any
application ~reqrams active in the system. If there are some active,
the Line Group Clcse routine determines whetner any of them have been
scheduled to be abended.
If nene have teen scheduled, the routine
schedules them to be abended and branches te the Abnormal Termination
routine, which arends eacb application proqram with a completion code
of 046. After processinq each applicatirin ~roqram in the system, the
routine issues an EXCP macro on the first line in the line qroup in
the MCP and branches to the ERP routines to perform OEF-SDR error
recordinq.
On return from the EFP routines, the Line Grcup Clese routine
checks all the DCEs for the lines in the MCP and then issues an XCTL
macro to qive centrol to the executor identified by the next non-zero
entry in the system Where-to-qo Tarle.
•

IGG02036

The purpose of this routine is to close a line qroup DCB in a TCAM
MCP. Load 2 of the Line Group Close routine purqes all I/O on the
lines associated with this DeE, disables the lines unless they are
connected to a Ty~e lIT adapter, frees the associated ICBs, and clears
the associated line entries in the Cross Reference Table (if present).
Load 2 of the Line Grou~ Close routine also examines every DEE in
the TCE DEB chain to determine whetber there is an additional line
qroup or messaqe queues reB to be closed. If there is not, the Line
Group Close 2 routine places zeros in the AVT pointer in the
Dispatcher prefix and issues a FRFEMAIN for the Cross Refrence Table,
if one is present.
IGG0203E issues an XC~L to the module indicated by the next nonzero entry in the system Where-to-Go Table. This module can be any
one of the system modules IGG0200B throuah IGG0200G.
Bxternal

Routine:

~eferenge ~able

as

~reemain

routine (SVC 5) - to free the Cross

if all DCBs have been processed.
Program

O~ganization

305

Tables/Work Areas:
Table.
Attributes:

Where-to-Go Tatle,

~CE,

rEE, TCE, Cross

Reference

!ransient, enabled, reentrant.

Checkpoint Clcse Poutine (Chart L6)
~odule

Name:

Entry Point:
issued in the

IGGC2041
IGG02041 - called when a CICSE checkpoint DCB macro is
~CP.

~unctions:

This routine closes the check~cint DeB in an MCP.
If this
is a normal clcsedown, the Checkpoint Clcse routine sets an indication
in the checkpoint c6ntrol record and rewrites the record on disk.
It
then frees
the check~oint work area by a FFEEMAIN macro instruction.
The address of the checkpoint work area is in AVTCKGET,
unless some
error causes the check~oint function to be eliminated from the system.
In this case r the address is in AV~CKELF.
If toth.fields are equal to
zero,
there was not enouqh main storace for the GFTMAIN, so the
FREEMAIN and delete functions are typassed.
The only error recoqnized by this routine is a ~isk error while
writing the control record.
If this occurs, the Check~oint Clos~
routine uses WTO to issue an error messaqe and exits, as it would if
no error had occurred, to the next entry in the Where-to-Go Table.
External Routine·:
IECPCNVT - an OS system routine that converts the
relative track address tc an actual disk address.
Tables/Work Areas:
Attributes:

CVT, AVT, checkpoint work area.

Feentrant, transient, superviscr mode.

Messaqe Oueues Close Routine
Module Name:

(Chart 11)

IGG(2030

Entry Point:
IGGC2030 - activated by an XCTI from a system I/O
support module when a CLOSE message queues cr checkpoint DCE is issued
in a TCAM KCF.
It may also be reentered by a loop from itself if
there are multiple messaqes queues DCBs tc te processed.
Functions:
This routine clcses a messaqe queues DCB in a TCAM MCP.
The Message Oueues Close rcutine removes the DEE for this DCB from the
DEB chain in the ~CB and frees the lOBs associated with this DCB.
The Messaqe Queues Close routine also examines every DEE in the
TCE DEB chain to determine whether there is an additional DCB to
close.
If there is not, the Message Queues Close routine issues a
FPEEMAIN command for all areas that were ottained at INTBO time and
places zeros in the AVT pointer in the prefix of the Dispatcher.
306

If the DCEOP~CD field of the rCB indicates a Checkpoint tCB, this
close routine puts the identification (41) of the Checkpoint Close
routine in the next entry in the system Where-to-Go Tatle.
~he Messaq€ Queues Close routine the~ issues an XCTl to the module
indicated by thE next non-zero entry in the system Where-to-Go Table
- this can be any module with a name from the value IGGC190B to
IGG0190G or IGG01~41, as determined by the system close functions.

External Routine: os Freemain routine (SVC 5) - to free main storage
that is associated with the DCBs.
Tables/Work Areas!
Table.

Where-to-Go Table, DeE, DIE, TCE, Cross

Reference

Attributes: Transient, enabled, reentrant.

APPLICATION PROGRAM INITIALIZATION AND T!RMINATION ROUTINES
GET/PUT and READ/WRITE

O~en

Executor (Charts 17, L8)

Module Names:

•

IGG01946 - Load 1 •

(Chart L7)

•

IGG01947 - Load 2.

(Chart L8)

Entry Points:
•

IGG01946 - called by the as system CFEN routine when an OPEN
GET/PUT or READ/WRITE DCE is specified in an applicaticn ~roqram.

•

1GG01947 - called by an XCTL frcm IGGC1946.

Functions: This module activates a data transfer cowmunication link
between an ap~lication prcqram and the MCP.. The Open Executor is used
to open input
(GET or READ) and output (PUT or WRITE) DCBs in the
application proqram. It executes with a su~ervisor storage protection
key and, for the most ~art, disabled to interruptions.
When the O~en Executcr {Lead 1} is activated, it first tests the
address pointer in the CVT to determine whether there is an active
MCP in the system. If there is not an actiVE MCP, the Open Executor
does not open the DeB, sets an unsuccessful o~en flaq in the DCB, and
exits to IGG01933.
AV~

If there is an active MCP in the system, the Open Executor gets
the nqueuename" (that was coded on the DD card)
from the Job File
Control Block (JFCB) in the DCB work area. The User Interface routine
is then invoked to activate the Binary Search routine (IEDQA1), which
uses the "queuenarre" parameter to search the Termname Table for the
correspondinq ~rocess entry. When the matchinq entry in the Termname
P~oqra.

Oxganization

307

Table is found, centrol returns to the Open Executor, which, in turn,
issues a
GET~AIN command to obtain mainstoraqe fer an access method
work area and for a Data Extent Block (DEB).
If the "queuename" is
invalid r the Open Executer exits to IGG01933 for error precessinq.
The Open Executor t~ests a special element that centains a pointer
to
the process entry in the Termname Table to the O~en/Close subtask
in the MCP.
(The AOCTL SVC 102 routine is used to tpost the element
to the ready queue in the MCP.)
'The Open Executor then issues a WAIT
to put ths application proqram in the wait state.' This allows the MCP
to qain contrel to process the special element 1ust t~csted from
the
application prcqram.
When the
ap~licatien
proqram ECB is ~osted'complete by the MCP,
the WAIT condition is satisfied and the O~en Executor reqains centrol.
It inspects the status flaq in the process entry to determine whether
the MCP successfully allocated
main
stcraqe in the MCP for this
application preqram.
If so, the Open Executor initializes the access
method work
area by linkinq it tc the DeB and the process entry work
area in the MCP.
The DEE is also initialized and enqueued on the TCE
DEB chain.
If the MCP did not allocate space for this application
proqram (either the process entry was already in use or a GETMAIN
was
unsuccessful)
the DCB is
net opened,
tbe DEB is not enqueued, an
unsuccessful open flaq is set in the reB, and the Open Executor exits
to IGG01933 fer errer prccessinq.
The Ope·n Executor then lcaas the appro~riate access methed module
for the DeB beina opened.
For an input DCB, the appropriate GET/READ
routine is loaded and linked
to the DCE; for an output DCB, the
appropriate PUT/WFI~F routine is leaded and linked to the DCB.
The
Check routine is loaded if this is a read/write condition, and if the
user has s~ecified a POINT macro, the Point routine is also leaded.
~fter the above functions
ar~
performed,
Load 1 of the Open
Executor saves the information' needed
ty load 2 nGG01947) in the
OPEN/CLOSE work area.
The Open Fxecutor
(Load
1)
then transfers
control
(XeTL)
to next entry in the Where-to-Go Table.
The next
entry, in this case, is the IGG01947 entry ~cint of load 2 of the Open
Executor.

Load 2 of the Open. Executor first
determines whether it
continuinq the
open of an input DCE.
If it is an input DCB,
Executor inspects the Destination QCB for this application program
the
~CP.
I f ' there is not a complete messaqe on this QCB, the
Scheduler STCE in the MCP is moved from
the
Fead-ahead QCB to
application
proaram Destination OCE.
If there is a messaqe, an
for the messaqe buffers i& initialized an~ t~ested to the Disk I/O
in tl-te MCP.

is
the
in
Get
the

ERE
QCR

If locate mode is specified, the Open Executor issues a GETMAIN
for
a work area and stores its address in the DEE.
If the GETMAIN is
unsuccessful r
the Open Executor exits to
IGG01933
for
error
processinq.

308

Upon successful completion of the above functions, the Open
Executor sets a s~ccessful open flaq in the DCE and returns to the
system OPEN routine (the next entry in the wtere-to-Go Table).
External Routines:

•

TEDOUT - User Interface routine - to activate the Einary Search
routine
(IEDOA1), which locates the "queuename" entry in the
Termname Tatle.

•

IGC102 - AOCTI SVC 102 routine - to
MCP ready queue.

•

IEDQNB05 - Application Proqram/Operator Control Interface
- to take an MCP checkpoint.

t~ost

a special elerrent to the
routine

Tables/Work Areas:
CVT, AVT, TeE, Termname Table, DCB beinq opened,
JFCB, access metEoa work area, DEB process entry, process entry work
area, OPEN/CLCSE work area.
Attributes:
mode.

Transient,

reentrant,

refreshable, enabled, supervisor

GET/PUT and READ/WRITE Close Executor (Charts L9 and L10)
Module Names:

IGG02046, TGG02047

Entry 'Points:
•

IGG02046 - called by the system Close rcutine when a CLeSE GET/PUT
or READ/WRITE DCB is issued in an applicaticn proqram. (Chart L9)

•

TGG02047
activated by an
applicaticn proqram clcsedown.

XCTI

from

IGG02046

tc

complete

These routines deactivate a data transfer communication
link between an application proqram and the MCP. Beth loads of the
Close
~xecutor
are used to close input
(GET/READ)
and output
(PUT/W~TTE)
DeBs in the applicaticn proqram.
They execute with a
supervisor stcraqe protection key, and, for the most ~art, disabled to
·interruptions.
~he
functions of each module are discussed accordinq
to entry point.
~unctions:

•

IGG02046

~or an input teB, if an ERB is tposted to the Read-ahead QCB, Load
1 of the Close Executor tposts a s~ecial element that contains the
a~dress
of the DCB process entry in the Termname Table to the
Open/Close sub task in the MCP. If the ERE is not busy, the Close
Executor tests the Read-ahead OCB for full tuffers to be tposted to
the Buffer Return QCB. If the Get Scheduler is in mid-cycle, the
Close Executcr does not tpost the special element4 The Get Scheduler
tposts the element when it finishes its cycle and recoqnizes that a
CLOS~
has teen issued for the DeE associated ~ith the ~rocess entry.
If the Get Scheduler is waitinq on the application proqram Destination
OCB, its STCB is unchained.
(This tpost is accomplished via the AQCTL

Progra. Organizaticn

309

SVC 102 routine.)
A WATT macro is then issued to allow the MCP to
qain control to process the special element iust tposted from the
application prcqram.
Por an output DCB, the Close Executor tests t~ determine whether
a
buffer was saved from the last PUT or WRITE operation. If it was,
the buffer is flaqqed as end-of-messaqe and tposted to MH. The Close
Executor then t~osts a special element tc the Open/Close subtaskin
the MCP and issues a WAIT command.
When the application proqram FeE is posted complete, the Close
Executor reqains centrol to free main stcraqe occupied by the access
method work area, the locat~ mode work area (if any), and the DEB,
to
issue a DELETE macro for any loaded routines, to restore the DCB to
its pre-open status, and to set the close flaq in the DCB.
If the MCF closedown bit in the AVT is on,
the GET/PUT and
READ/WRITE Close Executor' posts complete the Operatcr Control ECB ih
the AVT.
This allows closedown processinq to complete.
After completinq its functions, IGG02C46. transfers control
IGG02047 to complete the applicaticn proqram clcsedown procedure.
•

to

IGG02047

Load 2 of the GET/PU! and READ/WRITE Close Executor scans all the
TCAM LC~s to determine whether any lines are locked to the application
proqram DCB that is beinq closed.
If an ICB is locked to the DCB in
question •. IGG02047 removes the associated line from lock mode and
tposts (via TG(102) the ICB to itself to free the line.
After all DeBs have reen closed for this invocation, load 2 of the
Close Executcr transfers control to the system OPEN routine (the next
entry in the Where-to-Go Tarle).
External Routines:
•
IGC102 - AOC1L SVC 102 routine -. to
LCE to the MCP ready queue.

•

t~cst

a special element or an

IEDQNB05 ~ Application Proqram/Checkpcint Interface routine
take an MCP ct.eckpcint.

to

Tables/Work Areas:
CVT, AVT, DCE to be closed, TeB, eCE, tEE, access
method work area, process entry, process entry work area, OPEN/CLOSE
work area, LCB.
Attributes:
mode.

Transient,

reentrant,

Open/Close suttask (Chart EU)
Module Name:
310

IEDCEU

refreshable, enabled, supervisor

Bntry Point:
IEDOEU
qains centrol when a
special
element
(containinq the address of a
~rocess entry i~ the Termname Table)
tposted by the Open or Close Executor in an ap~lication ~roqram qets
to the top of the ready queue in the MCP.
~unctions:
This routine allocates main storaq€ in the MCP for an
application prcqram.
Tbe allocated main stcraqe is te contain a
process entry work area, an LCE, and one or more SCEs.

The Open/Close subtask is an MCP routine.
It qains control when
a special elewent containinq the address ef an a~plicaticn proqram
process entry in the Termname Table is at the top of the MCP ready
queue. This s~ecial element is placed on the ready queue by the Open
or Close Executor in an applicaticn proqram.

If the O~en/Close subtask is activated by the Open Executor, it
first allocates main storaqe for a process entry work area/SCE and
links it to the process entry.
It then increments the use count in
the PCB, loads the appro~riat€ scheduler, li~ks the scheduler to its
Destination aCE, sets a qood-open flaq in the process entry, posts the
application ~roqram ECE complete, and returns to the TCAM Disp~tcher.
If any GETMAIN or lOAD fails, a return code is stored in the process
entry and the cpen-failed flaq is set in the ~rccess entry.
1f the Open/Close subtask is activated by the Close Executor, it
first frees the process entry work area/SeE and decrements the use
count in the PCB. The subtask then delinks and issues a DELETE macro
for the appropriate scheduler, deactivates the application proqram
Destination OCB, and turns off the epen flaq in the process entry.
If
the use count in the ~CE is now equal to zero, the LCE is also freed.
The Open/Close suttask relinquishes centrel by posting the ap~lication
proqram ~CB complete and returninq to the TCA~ Dispatcher.

If a GET or READ DCB is beinq closed, the Open/Close subtask
determines whether the EFB is in use and ensures that all buffers
assiqned to the cerrespondinq Destinaticn QCB are in the buffer unit
pool.
If the ERB is in use,
this subt~sk returns to the TCAM
Dispatcher to wait for EBB cleanup bV the Get Scheduler.
External Routines:

•

IGC102 BCB.

•

as Getmain routine (SVC 4) - to qet main stcraqe for

AQC~l

SVC 102 routine - to post the

application
an

program
LCE

and

as Freemain routine (SVC 5) - to free main storaqe for an LCE

and

the process entry work area.

•

the process entry work area.
Tables/Work Areas:
Process
process entry work area, SCE.
Attributes:
Reentrant,
proqram mode.

entry

refreshable,

in the

~ermname

enabled,

Table, QCB, PCB,

resident,

problem

Program Crganization

311

•

IGC102 - AOCT2 SVC 102 routine - to pest the
ECB.

APPLICATION

~FOGBAM

application

program

I/O ROUTINES

Get Scheduler (Chart FW)
Module Name:

IEDCEW

Bntry Point: JEDOEW - activated by the TCAM Dispatcher when a special
element from a GE1/BEAD routine in an ap~lication proqram is on the
~CP ready queue.
Function:
This routine performs a read-ahead activity from the disk
mes~aqe queues data set in anticipation
of a GET command from an
application ~rcqram.
The· Get Scheduler also reacts to retrieve
requests from an application proqram.
The STCB for the Get Scheduler waits on either the Destination QCB
or on the Reaa-ahead QCB for a particular application pregram.
The
Get Scheduler STCB is on the Destination QCB until a com~lete message
enters the system. It then waits cn the STCB chain of the Read-ahead
OCE.
~s
lonq as there are buffers available and more than two messages
have not been read from the messaqe queue, tbe Get Scheduler tposts an
E~E to the Disk I/O OCB to have a tuffer filled with data
and placed
on
the Destination OCB.
The Disk l/C QCB activates the CPB
Initialization routine, which satiEfies the EBE and passes the full
buffers on the ERB to the Get Scheduler. The Get Scheduler places
these buffers in the element chain of the Bead-Ahead QCE to be read by
the application proqram GET/READ routine.

The Get Sch€ouler inEures that MB processes only one message at a
time.
If the messaqe handler for a particular applicaticn program is
already processinq a messaqe and a new messaqe arrives, the Get
Scheduler enqueues the buffers of the new messaqe on the Fre-MH queue.
When MH completes the prior messaqe, the Get Scheduler tposts an ERE
for cuffers fer the next messaqe. Also, the prior messaqe is not
marked serviced until the next messaQe has been processed by the
application prcqram.
If a messaqe is a lock inquirey, the Get Scheduler turns cn bit 3
(X'20')
in the tvte at LCBINSRC+2 in the ICB for the source terminal.
This indicates that a response is due to the source terminal. The Get
Scheduler also increments bv ene the lock res~cnse count (LCBINCAM) in
the LCB for the ,application proqram pointed to by the PCB.
When the ap~licaticn proqram
GET/READ
routine
reads
and
subsequently empties the full buffers, it t~osts a special element to
the Get Scheduler in the MCP to indicate how many buffers can be
returned to the buffer unit ~cc1.
The Get Scheduler returns the
buffers and requests another disk read.

312

This operation continues unless
special retrieve element.
At this
I/O activity tc ccmplete.

the
~oint,

Get Scheduler receives a
it waits for any requested

If the specified destination for the special retrieve element is
a main-storaqe-onlv queue, the messaqe cannot te retrieved and an
error return code (X'40') is ~assed to the application proqram in the
process entry work area.
If the s~ecified destin~tion for the special retrieve element is
not a main-storaqe-only queue, the Get Scheduler alters the LCB and
the SCB to teqin retrievinq messaqes from the indicated destination
messaqe queue. The recall header bit (LCBFCLIN) in the LCE is turned
on, so the Disk End A~pendaqe tposts full buffers directly to the
Read-ahead OCE. ~he Get Scheduler examines each header for the
requested sequence number. If the requested sequence numcer cannot be
found, an errcr cede (X'40') is returned to the applicaticn proqram in
the process entry work area. If the requested header is fcund, the
Get Scheduler requests that the messaqe be read from disk.
As each
buffer of the rressaqe beinq retrieved is tposted to the Read-ahead
OCE, the Get Scheduler tests the GET DeB to see if the ap~lication
proqram is in retrieve mode.
If the applicaticn program leaves
retrieve mode before the entire messaqe is read, the Get Scheduler
returns any unfilled tuffers to the buffer unit pocl and then resumes
normal operaticn.
When the Get Scheduler determines that the DCB for the current
process entry is beinq closed, the SchEduler sets u~ any buffers on
the Read-ahead OCE to be returned to the buffer unit ~ool.
In this
situation, the scheduler also t~ests a s~ecial closed own element to
the Open/Close suttask (IFDCEU).
tc ~ost the
External ~outitie: IGC102 - AQCTL SVC 102 routine
application prcqram EeE complete in crder to activate thewaitinq
application prcqram.
Tables/Work Areas: DCB for GET or BEAD in
Read-ahead
CCE, Termname ~able, AVT,
application prcqram ECB.
Attributes:
Feentrant,
proqram mode.
G!T/~EAO

refreshacle,

the

proqram,
work area,

ap~lication

entry

~rocess

enabled,

transient,

problem

Routine (Chart PG)

Module Name:

IGGC19RG

Entry Point: IGG019RG - called when a GET or
a SAM compatitle TCAM application ~roqram.

~EAD

macro is issued in

This routine reads data "from full buffers on the element
chain of the Bead-ahead OCE in the MCP into an application proqram
work area. It also includes support for message retrieval and the
checkpoint user exit (CKPTADD).
~unctioris~

Program Organization

313

The GET/READ routine reads data from the buffers in the MCP until
either the ap~lication preqram work area is filled,
an entire work
unit is moved, or the end of a messaqe is reached~
For QSAM, if the
Read-ahead OCE is empty and SETEOF is net specified,
the GET/READ
routine waits fer more data.
For BSAM,
the routine stores a
completion code of X'01' or 1'02' in the DFCB.
The GET/FEAD routine
builds a special element that contains the number of buffers emptied
and uses the AQCTI SVC 102 routine to tpost this element to the Get
Scheduler STCB in the MCF.
The GET/READ routine branches to the user EODAr address, if
specified, on the subsequent GET or FEAr/CHECK request following
recoqnition ef a cuffer that contains an end-of-file indicator in its
prefix (SETEOF condition).
For QSAM, a return code of X'04' is placed
in reqister 15 if the SFTEOF ccndition exists and ne BODAD is
specified.
Fer BSAM, the SETEOF condition causes a code of X'70' to
be placed in the rECE.
If the SETEOF condition is not present, the GET/READ routine does
not pass contrel to the next user-ceded instruction in the applica~ion
proqram until the user request is completely satisfied.
(The routine
uses a WAIT command to maintain centrol.)
If the READ request is
used,
the WAIT is delayed until the CHECK macro is issued.
After
successful completion of a GET operation, X'OO' is ~laced in register
15.
For a
FEAr operation, a X'7F' completion code is placed in the
DECB.
If OPTCD=C or W is specified on the DCE macro,
the GET/READ
routine places the name of the source terminal and/or a work area
contents description in the application proqram work area.
If the
source is not ~pecified in the buffer prefix (e.g., from a dial line),
blanks (X'40') are placed in the terminal name field in the work area.
If c checkpoint exit is specified on the DCB macro, the GET/READ
routine takes tbis exit each time th~ first buffer of a message is
processed and each time a checkpcint has teen taken in the MCP since
the last time the first cuffer of a messaqe was examined.
If the SYNAD user exit is specified, it is
overflow if CPTcr=c is not specified.
If SYNAD
user receives a r~turn code in reqister 15 for a
DECB for a READ request.
For QSAM a return code
work area overflow.
For BSAM, the code fer
X'52'.

taken on work area
is not s~ecified, the
GET request or in the
of X'08' indicates a
work area everf~ow is

External Routines:
~

os

•

IGC102 - AQCTI SVC 102 routine - to tpost a special element to the
Get Scheouler STCB in the MCP.

~

Wait routine (SVC 1) - to wait for data to
element chain of the Read-ahead QCB in the MCP.

.. II

:J , ...

arrive

on

the

Tables/Work Areas: CVT, Get/Read DCB, application ~reqram work area,
AVT,
Read-ahead QCE,
access method work area,. DECE, DEE, Termname
Table, process entry work area, peE.
Attributes:
transient.

Reentrant, refreshable, preblem

~rogram

mode,

enabled,

Check Routine (Chart RLl
Module Name:

IGGC19FL

?ntrv Point:
IGG019RL
called when a CHECK macro is issued in an
application prcqram in ccnlunction with a READ or WRITE macro.
~unctions:

This routine tests for completien of the read or write
request that is related to this check request.
It alse tests for
errors that may have occurred durinq the eXEcution of the associated
~EAD or W~ITB macro.

If the event contrel bleck (ECB) in the data event control block
(DECB) is posted complete and the DECB ccm~leticn code is X'7F',
the
Check routine returns control to the user at the next sequential
instruction fellowinq the CHECK macro expansien.
If data has arpeared on the Read-ahead CCB since the Read routine
examined it
(DECR completion code equal to X'401, the Check routine
invokes the GE~/FEAD routine tv a BALR instruction.
U~on return
from
the GET/~EAD routine, the tECB completicn cede is rechecked.
1\t end-of-file
(SETEOFl, the Check routine takes the EODAD exit,
if one is specified.
Otherwise, a return cede of X'04' is returned to
the next sequential instruction after the CHECK macro-expansion.
Tf a READ cr WRITE error is detected, the Check routine takes the
SVNAD ~xit,
if specified.
Otherwise, an errcr return cede is passed
to the next preqram instruction.
A return code of X'08' after a READ
oper~tion
indicates that a wcrk area overflow occurred; X'08' after a
WFITE operation indicates a sequence error; X'OC' indicates an invalid
destinatien.
If the FeE is not ~osted. complete and no error indication is
detected in the DECB,
the Check routine issues a WAIT for the
completion of the event under consideratien.
When the wait is
satisfied (a messaqe arrives on the Bead-ahead QCE) , the Check routine
invokes the a~~ro~riate ~CAM SAM reutine.
External Routine: IGG019RG - GET/READ routine - to read buffers from
the Read-ahead CCE.
~ables/Work

Areas:

DECB, DCB, DEE, access method work area.

Program Organization

315

Attributes:
transient.

Reentrant, refreshable, prcblem

proqram

mode,

enabled,

Get Scheduler FIFe Routine (Cbart EZ)
Module Name:

IEDCEZ

Entrv Point:
IEDQEZ - activated by the TCAM Dispatcher when a POINT
macro followed by a GET macro is issued in an application proqram and
the Get Scheduler STCE is on th~ STCB chain of the Destination QCE,
rather than on the STCB chain of the Read-ahead QCE.
This routine recoqnizes the retrieve element and tposts it
to the applicaticn proqram Destination QCE to indicate to the Get
Scheduler the need to process the retrieve element.
~unctions:

External

~outines:

~ables/Work

Areas:

Attributes:
proqram mode.

PUT/WBI~E

Module

Pead-ahead QCB, Destinaticn QCE.

Reentrant,

~outine

Name~

None.

refreshable,

enabled,

transient,

problem

(Chart PI)

IGG019FI

Point: IGGC19PI - called when a PU~ cr WRITE macro is issued in
a SAM Compatible TCAM application proqram.

~ntrv

Functions: This routine prepares the data in the applicaticn
PUT/WBITE work area fer transfer into buffers in the MCP.

proqram

~he
PUT/WPI~F
routine initializes certain fields cf the access
method work area with data from the applicaticn proqram DeE, DECB, and
work area pre·fix.
Tf locate mode is u~ed, the address of the
PUT/W~T~~
work area is in the DEB; otherwise, it is supplied as an
operand of the PU! cr WPI!E macro.

The PUT/WPITE routine takes the synchrcnous checkpcint exit if a
chectpoint has been taken in the MCP since the last PUT or WRITE and
the reB has an EXLST entry offset cf X'OF'.
Tf destination terminal name is specified as the work unit, the
routine converts the- name to a Termname 1able offset to be stored in
the access methcd work area.

316

~he PUT/~PITE routine tposts (via the AQCTI
SVC 102 routine)
a
special element to the Put Scheduler in tbe MCP. It then issues a
WAIT command to pass control to the MCP. When the Fut Scheduler qains
control, the presence of this special element on the ready queue
causes the Put Scheduler to em~tv the a~~lication ~roqram PUT/WRITE
work area. The application proqram does not reqain control until the
entire work area has been transferred intc ~CF buffers.
~or
a PUT operaticn in locate mode, the PUT/WRITE work area
address is returned to the user in reqister 1. Therefore, data is not
moved until the second and subsequent o~erations.

If the application proqram is eliqible tc be swapped, the AQCTL
SVC 102 routine causes it to be flaqqed not eliqible to be swapped
until the PUT/WRI~E operation is ccmpleted. It performs the same type
of function for application proqrams that can be rolled out.
At the completion of a PUT (OSAM) operation, register 15 contains
a return code, normally zero. It is X'04' if either the terminal name
or the Termname Table offset is invalid. If message segments or work
units are not in ~ro~er sequence, the return code is X'08'.
At the completion cf a'successful WRITE
(BSAM) operatien, byte
zero of the rECB contains a completicr. cede of X'7F'. The DECE
completion code for an invalid terminal name is X'44' and for a work
unit sequence errer is X'48'.
Bxternal Foutines:
•

TEDQUI - User Interface routine - to activate the Einarv Search
routine
(IEDOA1)
to scan the Termname Tatle for the specified
terminal name.

•

as Wait routine (SVC

•

IGC102 - AOCTL SVC 102 routine - to
Put Scheduler STCE in the MCP.

11 - to allow the Fut Scheduler in the MCP to
empty the application proqram PUT/W~ITE work area.
t~ost

a special element to the

~ables/Work Areas:
CVT, AVT, PUT/WRITE rCE, PUT/WRITE work area,
DECB, Read-ahead OCE, Termname Ta~le~ access method werk area, DEB,
process entry work area, peE.

Attributes:
transient.

Reentrant, refreshable, problerr

proqram

mode,

enabled,

Put Scheduler (Chart EC)
Module Name:

IEDCEC

Program Organizaticn

317

Entry Point: IEDQEC - activated by the TCA~ Dispatcher when a special
element from an application preqram PUT/WRITE routine is on the MCP
ready queue.
Functions: This routine moves data frcm an ap~licaticn preqram into
MCP buffers. The Put Scheduler requests buffers from the buffer unit
poolp fills them with data from the application proqram work area, and
tposts the full buffers to the appropriate ~H in the MCP.
When the application proqram work area is empty and the last
buffer tposted to MH is not EOM, the Put Scheduler ~osts the ECB for
the application proqram complete, if it is waitinq, It also flaqs the
application proqram eliqible for if it has teen flagqed net eliqible
to be swapped. (TSO only), and eliqible fer rollout if flaqqed not
eliqible fer rellcut. If the last buffer is EOM, the Put Scheduler
posts the application proqram EeB after Buffer Dispositien tposts the
application prcqram FCB back to IEro~C.
When the messaqe destination is specifiEd and the lock response
count in the a~plicaticn preqram LCB is not zero, the Put Scheduler
to
the
determines whether the destination terminal 1..s locked
application prcqram that initiated the post operation. If so, the Put
Scheduler moves the Send Scheduler STCB te the STCB chain of the LCE
for the terminal and then decrements the leek response count.
Tf the PUT
forma t wi thout
l?ut Scheduler
OCB.
At CLOSE
full cuffer is
~xternal

or WRITE rCE indicates that tbeuser is usinq record
a leadinq TCAM work area centents description byte, the
saves the last full buffer in the element chain of its
time, which implies end-of-messaqe (FOM), this latest
tpested tc MH and flaqqed FeM.

Routines:

•

TGC102 - AQCTI SVC 102 routine - to post the applicatien proqram
ECB complete after the data in the ap~lication proqram work area
has been transferrea into MCP tuffers.

•

IGG019RB or TGG019PO buffers

~CAM

Dispatcher - to tpost the EBE or

full

Tables/Work Areas:.
AVT, LCB,PUT or WRITE DCE in the application
proqram, DEFp PCE, access method wcrk area, process entry~ process
entry work area p OCB, SCE, Termname Table, application proqram work
area.
Attributes:
Transient,
proqram mode.

reentrant,

APPLTCATION PFOGRAM MFSSAG!
Point Routine (Chart RM)

318

refreshable,

RFT~IEVAL-POINT

ROUTINE

enabled,

problem

Module Name:

IGG019RM

Bntry Point:
IGG019RM - activated by the PCINT macrc expansion in a
TCAM applicaticn ~reqram.
~his routine builds a messaqe retrieval centrel block from
input informatien specified by the user. This control bleck is used
by the GET/F~AD routine to retrieve the specified messaqe.

~unctions:

When
the
Point routine qains centrol to initiate messaqe
retrieval, it stores the Terminal Table entry address, the messaqe
sequence number, and the messaqe type
(input or output) in the
retrieve contrel block. The routine also sets the retrieve flaq in
the access method work ~rea to indicate that messaqe retrieval is in
proqress.
The Point routine issues a return code in reqister 15.
For
successful com~letion, the return code is X'OO'.
A return code of
X'08' indicates that an invalid terminal name was specified, a return
code of X'OU' indicates that an invalid sequence number was specified,
and a return cede of X'OC' indicates an invalid queue type.
External Poutine:
IEDQUI - User Interface routine - to activate the
Binary Search routine (TEDOA1) to scan the Termname Table for the
specified terminal name.
~ables/Work
Areas: CVT, AVT, DCE, 'DEB, access method work area, QCB,
Termname Tacle, Terminal Table entry.

Attributes:
transient.
APPLICA~ICN

Feentrant, refreshable, problem

PBCGBAM COMPATIBLE QTAM

GBT compatible
Module Name:

~outine

proqram

mode,

enabled,

~OUTINFS

(Chart PH)

IGG019RH

Entry 'Point:
TGG019RH
called when
compatible OTAM a~plication proqram.

a

GET macro is issued in a

This routine moves data from full tutters on the element
chain of the Read-ahead QCB in the MCP into an application proqram
work area.

~unctions:

The GET Cem~atible rcutine reads data frem the buffers in the MCP
until either an entire work unit is moved, the -application proqram
work area is full, or the element chain cf the Fead-ahead QCB is
empty.
If the queue is empty and an entire work unit has not been
read, the GET Ccm~atible routine takes the EODAD exit, if specified.
If no rODAD address is specified and this condition exists, a WAIT
macro is issued to allow time for more data to te ~laced on the queue.

Program Crganization

319

When the GFT cperation completes, or when the queue is empty,
the
GBT Compatible routine builds a special buffer return element and
tposts it, via AOCTL SVC 102, to the Get Scheduler STCE in the MCP.
This returns the empty buffer units to the ~CP.

l

If a work area overflow occurs, the GET Compatible routine takes
the SYNAD exit, if specified, and does not read the seqment that would
cause the overflow.
If no SYNAD exit is specified, the routine places
a X'04' return code in reqister 15.
Tf the work unit fer the application ~reqram is a message, the GET
Compatible routine checks for an ECM buffer.
If the werk unit is a
seqment,
a
sinqle loqical buffer is used.
If the werk unit is a
record, the routine scans for EOB, NL, CF, IF, or ECM.
External Routines:

•

as Wait routine (SVC 1) - to

wait for data to
element chain of the Read-ahead QCB in the MCP.

IGC102 - AQCTI SVC 102 routine - to
Get Scheduler STCB in the MCP.

t~ost

arrive

Reentrant,

refreshable,

the

a special element to the

Tacles/Work Areas: CVT, AVT, DCE,
DEE,
access method work
~ermname Table, cuffer prefix, PCB, process entry work area.
Attributes:
transient.

on

area,

problem pregram mode, enabled,

PUT Compatible Foutine (Chart RJ)
Module Name:
~ntry

IGGC19FJ

Point:
IGG019FJ - called when
compatible OTAM a~plication proqram.

a

PUT

macro

is

issued

in

a

~unctions:

This routine prepares data in the application program
PUT/WRITE work area for transfer into buffers in the MCP.

The PUT Cerrpatible routine initializes certain fields of the
access method werk area with data from the application program work
area prefix and from the DCE.
The User Interface routine (IEDQUI)
is
called
to
activate the Binary Search routine te ccnvert the
destination terminal name to a
Termname Table offset.
The PUT
Compatihle routine then converts the ccmpatible QTAM work. area
contents descriptcr byte to its TCAM equivalent and
verifies the
seqment/record sequence."
The PUT Com~atible routine tposts (via AQCTL SVC 102) a special
element to the Put Scheduler in the MCP.
The routine then issues a
WAIT to pass centrol to the MCP.
When the Put Scheduler qains
control, the presence of this special element on the ready queue
causes the
Fut Scheduler to empty the ap~lication ~rcqram PUT/WRITE

320

work area.
Tbe ECB for the application prcqram is posted complete
when the entire work area· has been transferred intc buffers in the
. MCF.
At the completion of a PUT compatible operation,
reqister 15
contains a return code - X'OO' if the o~eration was successful.
A
return code of X'40' indicates an invalid record or seqment ~equence.
External Routines:
•

IEDQUI - User Interface routine - to activate the Binary Search
routine
(TEDOA 1)
to scan tbe Termname Table for the specified
terminal name.

•

os Wait routine (SVC 1) - to allow the Fut Scheduler in the MCP to
empty the application proqram PUT/WRITE work area.

•

IGC102 - AQCTI SVC 102 routine Put Scheduler STCB in the MCP.

to tpost a special element to the

Tables/Work Areas: CVT, AVT, DCB, QCB, !ermname Table, access method
work area, PU~/WFITE work area, DEE, process entry work area, PCB.
Attributes:
•

Feentrant,

refreshatle,

~roblem

program mode, enabled,

tran~ient

Betrieve Service Routine (Chart ES)
Module Name:

IEDOES

~ntry

Point: IEDCES - activated when aRETFIEVE macro is issued in a
applicaticn ~roqram that is cperatinq with a TCAM message control
proqram.

OTAM

Functions:
The Petrieve Service routine provides TCAM ~upport for
messaqe retrieval from a OTAM application program.
The routine first
converts the terminal name of the messaqe destinaticn to a Termname
Table offset.
The routine then builds a special element that consists
of this offset and other messaqe informaticn:
the number and type of
the buffer
for retrieval of the first buffer of a message, this
element contains the sequence· number and type of the buffer;
for
subsequent buffer retrieval, it contains the relative record address
of the buffer to te retrieved.
The AQCTL SVC 102 routine is used to tpost the special retrieve
element to the Retrieve Scheduler (IEDQE?) OCE in the PCE in the MCP.
The Retrieve Service routine then issues a ~AIT to allow time for the
MCP to retrieve the requested buffer.
When the special retrieve element is on top of the ready queue,
the ~etrieve Scheduler qains control.
If the buffer is retrieved, the
Retrieve ScheduleL places it on the element chain of the PCE QCB and
posts complete the waitinq Retrieve Service ECE in the ap~lication

Program Organization

321

proqram.
Otherwise, the routine places an X'04' error return code
reqister 15.

in

The Retrieve Service routine.reqains centrol at the instruction
lust after which the os WAIT command was issued. If· an error return
code
(X'04'1 is in reqister 15, the address or sequence number of the
buffer requested is incerrect. If the return cede in register 15 is
equal to X'OO',
the Retrieve service routine moves the retrieved
buffer into the application proqram area and builds a com~atible QTAM
buffer.
The routine then tposts (via· AQCTL SVC 102) a tuffer return
element to the Retrieve Scheduler and exits to the next user
instruction in the applicatien preqram.
Externul Routines:
•

TEDQUI - User Interface Routine - to activate the Einarv Search
routine
(IEDQA1)
te scan tbe Termname Table for the specified
terminal name.

•

IGC102 - AQCTI SVC 102 - to tpost the special element
Retrieve Seheculer OCB in the messaqe centrol proqram.

Tables/Work Areas:
CVT,
Terminal Table entry, QCB j
prefix.
Attributes:
enabled.

to

the

AVT, r~B, access method work area, PCE,
Termname Table, TCB, SCB, LCB, buffer

Reentrant, refreshatle, problem proqram mode, transient,

Retrieve Scheduler (Chart E7)
Module Name:

IEDOF7

Entry Point:
TEDQE? - activated when a special retrieve element from
a
compatible QTAM applicatien preqram is at the top of the MCP ready
queue.
Functions:
The Retrieve Scheduler retrieves a buffer from a disk
messaqe queues data set fer a compatible OTAM application proqram.
The special retri~ve element that activates this rcutine contains a
sequence number for retrieval of the first buffer of a messaqe or the
relative buffer address for subsequent buffer retrieval.
(The special
retrieve element is t~osted to the Retrieve Scheduler QCB bV the
~etrieve
Service routine in the compatible CTAM application proqram.)
~or an initial request, the Retrieve Scheduler
scans the queue-back
chain for the specified sequence number until either the number is
foun1 or it is determined to be lost or net en the queue.
When a
buffer is retrieved, the Retrieve Scheduler ~laces the buffer in the
element chain of the OCB in the PCE and posts complete the ECB for the
waitinq Retrieve Service routine.
When the Retrieve Service routine qains control,
it empties the
buffer and t~ests a buffer return element to the Retrieve Scheduler.

322

The ~etrieve Scheduler returns the empty tuffer to the buffer unit
pool,
deallocates main stcraqe for the dummy L~B and SCE, and waits
for another retrieve request.
~hen
a
retrieve request has been
handled,
the Retrieve Scheduler exits tc the DSPDISP entry point of
the TCAM Dispatcher.
External Poutines:
~CAM

•

IGG019RB or IGG019PO ready queue.

•

IGC102 - AQCTL SVC 102 - to as FaST the Retrieve
BCB complete.

Tables/work Areas:
Attributes:
transient.

APPLJCATTON

Service

the

routine

AVT, PCB, SCE, ICB, QCB, Terminal Table entry.

Reentrant,

PFOGF~M

Dispatcher - to tpost elements to

refresnatle,

~reblem

prcgram mede, enabled,

NETWCRK CONTBOI ROUTINES

Operator Contrel/Application Proqram Interface Routine {Chart ETl
~odule

Name:

~ntrv

IEDCET

Point:
IEDCET - called and loaded durinq execution time
TCHNG,
REL~ASEM,
MCPCLOSE,
or CLOSEMC macro expansion
application proqram.

by
in

an
an

~unctions:

Thisreutine allows the user te perform a
subset of the
TCAM operator control functions frcm an application prcgram .without
actually issuinq a PUT command for an operator control message.

The Operator Control/Application Proqrarr Interface rcutine uses
the AOC~L SVC 102 routine to move a central block (Command Input
Buffer) that indicates the type of command and other pertinent data
into the PC~WFKA field in a Process Control Block (peE).
This
Interface routine tposts the CIB to the Cperator Control QCB for
processinq.
It then {except in closedown o~eraticnsl issues a WAIT to
put the application proqram in the wait state.
The format of the CIE
is as follows:

Prcgram Organization

323

Offset

o
Operator Control QCB Address

+4
Priority

Link Field

+8
Verb
Code

+12

length
X'lC'

I

0

I

Relurn Code

ECB Address for Application Program

+16
0

+20
0

+24
0

When the Cperator Control task has processed the command, it posts
the waitinq a~~licatien ~roqram EeE complete. The Interface routine
then reqains centrel and moves the return code set bV operator control
from the PCB field that contains the eIE to reqister 15 for inspectio
n bv the user.
Tf this routine is invoked when a TeAM MCF is not active in the
system; that is, the AVT pointer in the CVT is zero, the routine
places a return cede of X'01' in reqister 15. If an invalid password
is specified or if a password is required but not specified, this
routine.puts a X'14' return code in reqister 15.
If the Operator Control/Application Froqram Interface routine is
activated bv an MCPCLOSF or an CLOSEMC macrc expansion and a closedown
is already in proqress (AVTCLOSN is set in AVTBIT1), the routine does
not perform its functions.
It returns to the next sequential
instruction in the applicatien proqram with a return code of X'OO' in
reqister 15.
Pxternal Routines:
•

IGC102 - AQCTL SVC 102 routine - tc meve
and to post FCEs complete.

data

across

partition

boundari~s

•

wait routine (SVC 1) - to put the
wait state.

0S

Tables/Work Areas:
Attributes:
resiflent.

ap~licaticn

proqram

in

the

CIE, PCE, AVT, CVT, Cperator Control QCE.

Problem

proqram

mode,

serially

reusahle,

enabled,

~COpy

Service Routine (Chart E1)

Module Name:

IEDOE1

Entry Point: IEDOE1 - called when a
application prcqram.

TCOPY

macro

is

issued

in

an

Functions: This module copies a terminal entry into a work area in an
application prCQram.
~he
TCOPY Service routine uses the TCAM Einary Search routine
(activated via the User Interface routine) to find the Termname Table
entry that corresponds to the terminal name specified by the user.
~he Termname Tacle entry contains the
address of the correspondinq
Terminal Table entry. The TCOPY Service routine determines the type
of entry. computes its size, and moves the entry into the ap~lication
proqram work area.
Anv option fields are also moved into the wcrk
area.

If the terminal name specified by the user is invalid, this
routine ~laces a return code of X'20' in reqister 15. A return code
of X'08' indicates that TCAM is nQt in the system and X'OC' indicates
that there is net an open DCB in "the application p·roqram.
External Routine: IEDOUT - User Interface rcutine - to activate the
Binary Search routine (TEDQA1) to scan the ~ermname ~able for the
specified ter~irial name.
Tables/Work
Areas:
CVT, AVT, Termname Table, Terminal Table,
application preqram work area, TCB, DCB, access method work area.
Attributes:
Reentrant,
proqram mode.

refreshable,

enatled,

resident,

problem

QCOPY ?ervice Routine (Chart E2)
Module Name:

IEDOE2

Entrv Point:
,IEDOF2
application prcqram.
Functions:
area in an

called

~his module copies
ap~lication proqram.

when

a

CCC~Y

macro is issued in an

a queue centrcl block (QCB) into a work

The oropy Service routine uses the TC~M Pinarv Search routipe
(activated via the User Interface routine) to find the Ter~name Ta~le
entry that corres~onds to the terminal name specified by the user.
The Termname Tatle entry contains the address of the corresponding
~erminal Table entry. and the
Terrrinal Tatle entry points to the
associated Destination OCB.
The QCOPY Service routine computes the
size of the OCE, includinq all pricritv level QCBs, and moves the QCE
into the application proqram work area.

Prcgram Organizaticn

325

If the terminal name specified by thE user is invalid, a return
code of 1'20' is ~laced in reqister 15.
If the ~erminal type is
invalid, a return code of X'04' is placed in reqister 15. A return
code of X'08' indicates that TCAM is not in the system and X'OC'
indicates that there is not an open DCB in the application ~rcqram.
Routine: IEDOUI - User Interface routine - to activate
Binary Search reutine (IEDOA1) to scan the Termname Table for the
specified terminal name.

~xternal

Tables/Work
Areas:
CVT, AVT, Termname Table, Terminal
Destination OCE, application proqram work area, TCE, DEB.
Attributes:
Reentrant,
preqram mode.

refreshable,

enatled,

resident,

Table,
problem

TCHNGService Routine (Chart F3)
Module Name:

IEDeE3

Bntry Point:
IEDQE3
application prcqram.

called

when

a !CHNG macro is issued in an

Functions: This routine updates the ccntentsof a Terminal Table
entry by copyinq an altered entry from an applicatien ~roqram work
area into the Terroinal ~able.
The TCHNG Service routine uses the Binary
Search
routine
(activated via the User Interface routine) to find the Termname Table
entry that corres~onds te the specified terwinal name.
!he Termname
~able
entry points to its associated Terminal Table entry. 1he TCHNG
Service routine determines the type of entry, computes its size, and
moves the entry ,as well as any optien fields, from the ap~lication
proqram work area to overlay the ~erminal Table entry.
If
checks

is a password in the AVT, the TCHNG Service routine
for a password as input. If there is an input password, the
~CHNG Service routine loads the Password Scrambler routine to scramble
the characters. ~he TCHNG Service routine then com~ares the ~asswords
to determine whether to update thE Terminal Table entry.
If the
passworcs match, the entry is updated; if the ~asswords do not match,
a return code of X'14' is placed in reqister 15 and the entry is
unchanqed.
A return cede of X'08' indicates that TCAM is net in the
system, X'OC' indicates that there is not an qpen DCB, and X'20'
indicates that an invalid terminal name was specified.
ther~

If the update of the Terminal Table entry is successful and the
TCAM checkpoint data set is open
(AVTCKGET=O), the TCHNG Service
routine links tp the TCAM APplication Frcqram/Checkpoint Interface
routine (rEDONE) at a special entry peint (IEDQNB02).

326

F-xternal Routines:
•

IEDOUI - User Interface routine - to activate the Binary Search
routine
(IEDQA 1)
to scan the Termname Table for the specified
term:lnal name.

•

IEDOE6 - Fassword Scrambler routine ~ tc scramble
of the application proqram-specified password.

•

lEDONB - AP~lication Proqram/Checkpcint Interface routine
to
take a chEckpoint of the MCP after a ~erminal ~able entry chanqe
has been made.

the

characters

Tables/Work Areas:
CVT, AVT, Termname Tatle,
Terminal
Table,
application prcqram work area, TCE, DEB, access method work area.
Attributes:
proqram mode.

Beentrant,

T.COPY Service Foutine (Chart
Module Name:

refreshable,

enabled,

resident,

problem

F.4)

IEDOE4

Entrv Point: IEDQE4 - called when an ICapy
application prcqram.

macro

is

issued

in

an

Function:
This routine copies the invitation list for a line qroup
into a work area in an application prcqram.
BV followinq a chain of system control tlccks (see flowchart E 4) ,
the ICOPY Service routine com~ares the uaaname u of each TCAM lineqroup DCB with the name coded in the rcapy macro.
The routine qets
the address cf the invitation list frcw the matchinq DCB and then
computes the size of the list. The routine then moves a copy of the
list into the application proqram work area.

At
code:

~he

corrpletion of this routine, reqister 15 contains a return

•

X'OO' - normal completion of the ICapy function.

•

X'04' - an invalid relative line number was specified.

•

X'08' -

•

X'20' - an invalid "ddname" for line-qrcup DeB was specified.

TC~M

is not in the system.

External Routines:

None.

Tables/Work Areas: CVT, AVT, MCP TCB, MCP TIOT,
application proqram work area, DCB, invitation list.

MCP

DEE

chain,

Prcgram Crganization

327

Attributes!
proqram mode.

Reentrant,

refreshable,

enabled,

resident,

problem

Password Scrambler Routine (Chart E6)
~odule

Name:

IEDCE6

Entrv Point:
IEDQEE
called
characters of a ~assword.

as

a

subroutine

to

scramble

the

Punctions: ~his routine scrambles the characters of an in~ut password
so that it can be compared to an already scrambled password in the
AVI. ~his provides an internal security check to keep proqrams in
other system partitions from alterinq the contents of the MCP tables
and! work areas.
External

~outines:

None.

Tables/Work Areas:

None.

Attributes:
transient.

OPERA~OR

Problem proqram mode,

reentrant,

refreshable,

enabled,

CCNTFCL FOU1INFS

Pesident Operatcr Control Module (Chart CAl
Module Name!
~'1try

IFDCCA

Points~

•

!EDOCA01 - activated by OS when

•

1ErQcA02 - activated by the transient cperator centrel routines
when a field in an input operater control command needs to be
scanned.

O~erator

Centrel is attached.

Punctions: This module defines the Operater Control AVT and qives
control 'to the initial load of the Operator Contrel centrel module
(IGC0010D) for command proc€ssinq.
At the IErOCA01 entry peint ef the Resident Orerator Control
module, the ffodule puts an entry code of 1 in reqister 0 to indicate
to TGC0010D that Operator Control has lust been attached
and
initialization functions must re performed. At the IECQCA02 entry
point, the module puts an entry code of 4 in reqister 0 to indicate
that an input command needs te be scanned. The Resident Operator
Control module activates IGC0010n tv issuinq the TCPCTL macro.
The
TOPCTL macro expansion issues SVC 104, which loads IGC0010D.

328

If Operatcr Centrol has ;ust been attached and, upon return from
the Operator Centrol ccntrcl module, closedewn is in proqress,
the
resident module returns immediately to os.
If, however, Operator
Control has 1ust been attached and closedcwn is nct in ~rcqress,
this
module ensures that all input operator centrol commands are processed
before returninq to os.
Bxternal Poutine:
Operator Contrel
processinq.
Tables/Work Areas:
Attributes:

SVC 104 the TOPCTl, macro
to activate the
control module
Load
o (IGC0010r) for command
AVT, Operator Centrol AVT.

resident, serially reusable, refreshable, enabled.

Operator Contrcl Control Module ~oaule

Name:

load 0

(Chart Z1)

lGC0010D

Entry Point:
IGC0010D - activated by lEDOCA, lGC0210D,
IGC0410D,
or
from a subroutine within its own CSECT to ~rocess an operator control
command.
~unctions:

The specific functiens ef this nodule depend en the entry
code that is ~assed as input in reqister O.
If the entry code is
equal to one, the Operator Control contrel Module loao
0 performs
operator control initialization functicns.
The medule builds an
Operator Contrel ECE in the AVT and then issues an as WAIT for an
operator contrel command to be tposted te the Operator Control QCB.
When the WAI~ is satisfied, this medule puts an entry code ef 1 in
reqister 11
and then issues an XCTL to IGC0110D,
which beqins
processinq the command.

If the entry code is equal to 2, this centrol module ~uts an en~ry
code of 4 in reqister 0 and executes itself as a subroutine to scan
for the next field in the input command.
If the command contains an
~OE or an EOT, which implies that the command was net
followed by a
blank, or if the end of the field or data is reached, the module sets
the "last field" indicater and returns te the callinq routine.
If the entry code is equal to 3, this mcdule first scans the input
command for fields that specify a terminal name, a DDNAME, an absolute
address, a relative line number, ONTP, or CFFTP.
The control module
checks the validity of the format of the fields; and if nc errors are
detected, sets reqister 15 equal te X'OO'. If errors are detected,
the module puts X'02' in reqister 15.
The control module then returns
to the callinq routine.
If the entry code is equal to 4, the Operator Control Control
Module - toad 0 scans the input command for a field that is terminated
by the end of the the in~ut, an EOB or EOT, 8 characters, cr a valid
delimiter.
If the module finds a blank in the command, the module
sets the "last field" indicator.
When the
module finds a field-

PIogram Organization

329

terminatinq cendition, it saves the scanned field in the Operator
Control AVT, puts the number of bytes scanned in reqister 15, and
returns to the callinq routine.
F.xternal Routine:
OS wait
operator contrel command.
Tables/Work Areas:
Attricutes:

routine

AVT, buffer, Cperator Control AVT.

serially reusarle, refreshable, enabled, transient.

Operator ContrelControl Module - load 1
Module Name:

(SVC 1) - to wait for an input

(Chart Z2)

IGC0110D

Fntry Point: IGC0110D - activated by IGC0010D, IGC0210D, IGC0310D, or
IGC0410D to continue processinq an input operator centrel command.,
Functions: ~he specific functions of this module depend on the entry
code that is passed as input in reqister 11. If the entry code is
equal to one, the Operator Centrol control module - Load 1 prevents
any further queuinq of operator centrol commands when closedown is in
proqress. If a restart is in proqress, this module performs the
command processinq defined for an entry code of 2; otherwise, the
module performs the processinq defined for an entry code of 3.
If the entry code is equal to 2, this eentrol medule saves the
checkpoint elereent for this request and leads and qives centrel to the
appropriate eperator control functional ~recessinq module er modules.
Upon return from the last necessary processinq module, the control
module deletes the precessinq monule"
~uts
an entry cede of 1 in
reqister 11, and transfers control to IGCC310D for further command
processinq.
1f the entry code is equal to 3, this control module processes
only commands from the system consele. When a valid verb, ether than
START, STOP, or HAlT is found, this module puts an entry code of 1 or
2 in reqister 11 and passes centrol to IGC0210D for further command
processinq.
For a HAL~ command, this module performs the processinq
defined for the entry code 2.
For a START or STOP verb or if
closedown is in proqress, this module deQueues a new input operator
control commarid and starts the entry code 3 processinq aqain. If this
module finds an invalid verb in the command, the module passes control
to IGC0310D with an entry code of 3 in reqister 11.
If the entry code is equal to 4, restart is in proqress and this
module checks fer the next restart cemmand. If there is no other
command or if closedown is in proqress, this module returns to the
callinq routine..
If there is another command that is from an
application preqram or On-Line Test and the command is valid, this
module branch~s to the code for an entry code of 2. If there is
another command from an application preqram and the command is

invalid,
this rrodule puts an entry code ef 3 in reqister 11 and exits
to IGC0310D.
Otherwise, the command is from a terminal and this
module puts an entry code of 1 in reqister 11 and passes control to
IGC0410D.
~xternal

•

Routines:

OS OEDIT routine - to prevent
commanos.

• as WTO routine (SVC
operatorc

35)

queuinq
to

send

further
a

operator

messaqe

- to lead an operator

to

the

system

•

CS Load routine (SVC 8)
routine.

•

os Delete reutine

•

to perform
specific
Operator Centrol Processinq routines
requested by an operator control cemmand.
These
functions
IEDOCG, IEDQCH,
IEDQCI,
IEDOCJ,
IEDQCK,
routines are IEDOCP,
IFtQCM,
IFtQCN,
IEIQCO, IFtQCP, IEDQCO, IEDQCU, IEDQCV,
IEDOCL,
TEIOCX,
lEDQCZ,
IFICCO,
TErQC1,
TEIQC2,
lEDOC3,
and
IEDOCW,

(SVC 9)
te delete
processinq routine from main storaqe.

control

control

the

processinq

o~erater

control

~EDOC6.

~ables/Work
~ttributes:

Areas:

AVT, tuffer, Operator Centrol AVT.

Serially reusable, refreshable, enabled, transient.

Operator Contrel Contrel Module - lead 2
~oaule

Name:

(Cbart Z31

TGC0210D

Bntrv Point:
IGCC210D - activated by IGC0110D or IGC0410D to continue
processinq operater control commands.
~unctions:
~he
specific functions
ef this module depend upon the
entry coae that is passed as input in reqister 11. If the entry code
is equal to 1, this module checks the format of VARY, HOLD, RELEASE,
MODIFY, and DISPLAY commands.
If the command is valid,
this module
puts an entry code of 2 in reqister 11 and exits to IGC0110D.
For
invalid commands, this module puts an entry code of 3 in reqister 11
and exits to IGC0310D.

If the entry code is equal to 2,
MODIFY and DISFLAY commands fer valid
IGC0110D with an entry code of 1 in
an entry code c~ 3 in reqister 11 for

this nodule checks the format of
operands.
This module exits' to
reqister 11 and to IGC0310D with
invalid commands.

External Routine:
SVC 104 - the ~OPCTL macro - to activate IGC0010D
with an entry code of 2 to ~et the next field in thE command.

P~ogram

Organization

331

Tables/Work Areas:
Attributes:

AVT, Operator Control AV!.

serially reusable, refreshable, enabled, transient.

Operator Contrel Control Module - Load 3
Module Name:

(Chart Z4)

IGCC310D

~ntry
Point:
IGC0310D - activated by IGC0110D, IGC0210D, or IGC0410D
to continue processinq an input operator centrol command.

Functions: The specific functions of this module depend on the entry
code that is passed as input in reqister 11. If the entry code is
equal to 1, this module processes checkpoint requests.
!his module
builds a checkpeint request element and t~osts that element (via SVC
102) to the Checkpoint OCB.
Upon return, this module dequeues the
request command and,
for a terminal request, passes centrol to
TGC0510D.
For a request from the console or an application proqram,
this module continues processinq as thouqh the entry code is 2. If
the request is canceled, this module passes control to IGC0410D with
an entry code ef 2.
If the entry code is equal to 2 and the operator control command
is from the system console, this module sends a WTO respense, frees
the CI~,
puts an entry code cf 3 in reqister 11, and exits to
IGC0110D. For an entry code of 2 and a cemmand frem an application
proqran or On-Line Test, this module os FCSTs the EeE, puts an entry
code of 1 in reqister 11, and exits to IGC0110D.
Tf tbe entry code is equal to 3, this mcdule qenerates an error
messaqe for an invalid command. If the invalid command is from the
MCP, this module exits te TGC0510D, which builds the output messaqe.
External Routines:
•

IGC102 - AQCTL SVC 102 routine element in the Me?

•

as wait routine (SVC 1) - to wait for an element from

checkpoint.

•

as WTO ro~tine (SVC
operator.

the

•

as Delete routine
(SVC 9)
to delete
processinq routine from main storaqe.

•

as OED IT rcutine - to free the CIB.

TabLes/Work Areas:
Attributes:

332

35)

to

to

send

an

~est

a

ECE

message
an

or

to

tpost

operator

an

system
control

AVT, buffer, Operator Centrol AVT.

Serially reusable, refreshable, enabled, transient.

Operator Contrel Contrel Module - load 4
~odule

Name:

(Chart

Z~)

IGCC410D

~ntry Point:
IGC0410D - activated by IGC0110D, IGC0310D, or
to continue processinq o~erator control cemmands.

IGC0510D

The specific functions of this module depend on the entry
code passed as in~ut in reqister 11. If the entry code is equal to 1,
this module calls IGC0010D to scan an operator control command from a
terminal to determine whether the command has been canceled. If the
command is canceled, no further processinq is performed and this
module exits to IGC0310D.
If the command is not canceled and is a
HALT command~ this module exits to IGC0210D with an entry code of 2 in
reqister 11.1f the command is net canceled and is not a HALT
command, this medule exits to IGC0110D.
~unctions:

If the entry code is equal to 2, this module determines the source
of the command.
For a command frcm a terminal, this mcdule passes
control to the code for an entry code of 3.
Otherwise, this module
puts an entry cede of 2 in reqister 11 and exits to IGC0310D.
Tf the entry code is equal to 3, this module ~erforms the
processinq necessary to complete sendinq a response messaqe.
; If
closedown is net in proqress, this module puts the destination for the
response in the buffer, updates the SCB, puts a code of 1 in reqister
11, and exits to IGC0110t. If closedown is in prcqress or if the
terminal is net connected, this module puts the entry code (1) in
reqister 11 and exits immediately to IGC0110D.
Bxternal Routines:
•

SVC 102 - AOC~L SVC 102 routine - to tpcst the response messaqe to
the Buffer tisposition OCE.

•

SVC 104 - the TOFCTL macro - to activate IGC0010D.

•

as

Delete routine
(SVC 9)
to delete
processinq routine from main storaqe.

Tables/Work Areas:
Attributes:

AVT, buffer, LCE, SCE,

Name:

C~erator

o~erator

control

Centrol AVT.

Serially reusable, refreshatle, enabled, transient.

Operator Contrel Contrel Module - Load 5
~odule

an

(Chart ZE)

IGCC510D

Entry Point:
IGC0510D
messaqe for the MCP.

activated by IGC0310D to tuild a response

PLcgram Organizaticn

333

Functions:
The purpose cf this module is tc build an cutput response
messaqe that is te be sent to the MCP.
This medule determines whether
the input buffer is larqe enouqh to centain the output message, and if
it is not, obtains enouqh additional units to hold the message.
This
module calculates the required out~ut size by adding the
prefix size
to the lenqth,of the'output data.
The module multiplies the number of
input buffers times the buffer length and then com~ares the result to
the outuut messaqe length.
If the output message is not lenger,
this
module puts the messaqe in the buffers and exits to IGC0410D.
If the
cutput messaqe is lonqer than the input buffer size, this
module subtracts the buffer length fremthe
output lenqth and then
divides the result by the number ef bytes in a unit to get the number
of additional units required. This module builds an EBB with the
required
unit count,
uses
SVC
102 to tpost the ERE to the Buffer
Request OCB, and issues an OS WAIT to allow time for the request to be
satisfied.
Upen return, this module links t~e new units tc the input
buffer, puts the messaqe in the buffer, and exits to IGC0410D.
External Routines:
•

,•

TGC102 - ACCTI SVC 102 routine Request OCE in the MCP.

os Wait routine (SVC 1) - to

to tpcst an

wait

for

the

EBB

to

ERB

request

the

Buffer
to

be

satisfied.
Tables/Work Areas:

AVT, buffer, FRE, Operator control AVT.

Attributes:
Serially
problem proqram mode.

reusable,

~CAM

SVC 34

Command Scheduler -

Module Name:

refreshable,

enabled,

transient,

(Chart NZ)

IGC1303D

Entry Point:
IGC1303D - activated when an.SVe 34 module recoqnizes
command with a ~CAM keywerd operand.

a

,.. unctions:
The TeAM
Command Scheduler builds a Command Input Block
any, operator control command entered
from
the system
(CIB) for
console.
The ccmmands are VARY, HOLD, RELEASE, DIS~LAY, MODIFY, and
HALT.
Th8 TCAM Cemmand Scheduler first issues a GETMAIN macro to obtain
an area
in
which
to build the CIB.
After the eIE is built, the
routine issues a CEDIT macro, which puts the CIB into the CIE chain.
The scheduler then ~osts the ECB pointed to by the first word of the
Communications Parameter List,
so that Operator Control can
be
activated and exits to the address in reqister 14. If the re~urn code
from OEDTT indicates that the eIE limit has been reached, the

334

scheduler issues a FFEEMAIN for the CIS, reiects the operator control
command,
and issues an indicative error IDessaqe to the system console
by exitinq to IGC0503D.
The TeAM Cemmand Sebeduler also exits to IGC0503D to issue an
error messaqe if there is no TCAM MCP in the system or if the GETMAIN
for main storaqe is unsuccessful.
External poutines:
•

OS Getmain routine (SVC 4) -

•

os

•

as

~reemain

rcutine

to obtain main storaqe.

(SVC 5) - to release main storaqe.

OEDIT routine - to put the eIE in the

Tables/~ork
~ttributes:

Areas:

eIB

chain.

Extended save area, CVT, CIE, AVT.

Peentrant, supervisor mode, transient.

Modify Options Routine (Chart CF)
Module Name:

IEtOCF

Bntry Point:
IFDQC~ - loaded by the Operatcr Contrcl
control module
to process rISPIAY OP!ION and ~CDT~Y CP~JCN commands.
The command
that caused this routine to be activated is one of the follcwinq:

MO~IJ'Y

r centrol

chars 1 {

r control

chars 1 {DI~PLAY} TP.OPTICN.statname.opfldname

} ident, OPT=statname .opfldname. data

~unctions:

This routine processes operater control ccmmands
request display or modification of terminal option fields.

that

The Modify Cptions routine first leads its work area (IEDOC5),
which is used as a conversion area for both the modify and display
functions.
!he routine serially searches the Termname Table for an
entry that matches an entry specified in the common input block, which
is passed as in~ut to the routine. If a matchinq entry is not found
in the ~ermname Table, the routine prepares an error messaqe (IED016I)
and returns centrel to the Operater Centrel control module.
If a matchinq entry is found, the Modify Options routine serially
searches the option Characteristics Table for' the
cption .field
specified in the MODIFY or DISPLAY command.
If no option is found,
the Modifv Opticns routine prepares an errcr messaqe
(IED034I)
and
returns control to the control module.
When there are no eptions for
the terminal entry, the ~RMOPTFN field is set off in the !RMSTATF
control table.

Program Crgnaization

335

If the option field specified in the MCDIFY or DISPLAY cemmand is
not defined for the terminal entry,
the reutine prepares an error
messaqe
(IEn034I) and returns control to the Operator Control control
module.
If the s~ecified option is defined, the Modify Ortion routine
obtains the address of the opticn field and tests the input to
determine whether the command is a DISPLAY er a MODI~Y command.
If the command is a
MODIFY,
the Modify Opticns routine qives
control to the Operator Control Scan subroutine
(IEDQCA02)
by
branchinq
to the OPCSCAN entry point in order to cbtain the
replacement data.
Cn return, if there is ne data or if end~of-message
was reached befere the end of the field, the routine prepares an error
messaqe
(IE001EI)
and returns centrol to the
centre1
module.
Otherwise, the
Modify Options routine places the replacement data in
the work area (IEDQC5).
Tf the option field ty~e definitien does not match the replacement
data: for exam~le, the field is in decimal notation and the data is in
character representation,
the routine prepares an error message
(IEDOSEI)
and returns centrol to the Operator Control control module.
Also, if a hexadecimal data field contains invalid characters,
the
Modify Options routine prepares an error messaqe (IED077I) and returns
control to the centro1 module.
The Modify Options routine normally places character data in the
oPtion field of the MODIFY command, and converts decimal
and
~exadecimal
fields from EBCDIC to the cerrect format and stores the
n~w values in the optien field.
If the new fields are larqer than the
option field~ the routine noes not store the fields, but prepares an
errror messaqe
(IED062I)
and returns centrol to the control module.
~fter the new data has been placed in the e~tien field of
the MODIFY
command,
the Modify Options routine prepares a resFonse message
(IED050I) and returns control to the Operater Control control module.
1f the command is a DISPLAY command, the Modify Options routine
places the option field ef the command in the work area (IErQC5).
If
the data format is characters and the opticn field is all blanks, the
routine places the characters 'ALI BLANKS' into the response message
(IED035I) •
Since no conversion is required for character data, the
routine prepares a res~onse messaqe (IED035I) and returns control to
the control module.
For decimal or hexadecimal representation in the
option field, the routine determines whether the field co~tains zero.
If the data is zero, the routine pre~ares a 'data is zero' messaqe
(IED035I) and returns control to the control module.
If there is data
in the option field, the routine cenverts the data into a printable
format,
prepares a messaqe response (!FDC35I) and returns centrol to
the Operator Centrol centrel module.
On entry to the Modify Options routine, the address of the
Operator control AVT is passed in reqister 1.
The common in~ut block
is located at the label OPCCKELE.
The fields in the common input
block that this routine uses are the followinq.

336

+18

Field-Name
CFCTNME
OPCFLG

+24

OFCOPFLD

~ff~§1

+8

Field DescriFtion
Name of the terminal
X'80' for DISPLAY command
X'40' for MODIFY command
Name of the option field

External Routines:
•

IEDOCA - Fesident Operator Control module - the Operator Control
Scan subroutine (IEDQCA02), te serially search the Termname Table
and option field CSECT.

•

as Load routine (SVC 8) -

to load the lEDCC5 work area.

Tables/Work Areas: Work areas that contain the fixed portien of each
response messaqe and space for insertion of variable data, AVT,
~ermname Table, Terminal Table entry, Operator
Control AVT, buffer,
translate tables.
Attributes;
Serially
problem proqram mode.

reusable,

refreshable,

enabled,

transient,

COpy Line Information Routine {Chart CGl
Module Name:

IEDCCG

Entry Point: IEDQCG - loaded by the Operatcr Control
to process DISPLAY ADDR commands.

control

module

This routine processes op~rator control commands that
request display of the line address and relative line number for a
specified terminal.
The command that caused this routine to be
activaten is as follows;

~unctions;

rccntrol charsl {DI;PLAY} TP.ADDR.statname
The Copy Line Information routine finds the Termname Table throuqh
the AVT and serially searches for the entry that matches the one
specified in the common inp~t element. If a matching entry in the
~ermname Table cannot
be found, the routine constructs an error
messaqe (IED01EI) and returns to the control module.
When a matchinq entry in the Termname !able is found, the Copy
Line Information routine ~laces the terminal name in a response
messaqe
(IFD03EI) and ortains the address of the correspondinq entry
in the Terminal Table. If the entry is a ~rocess entry (bit 2 is on
in TRMS~ATEl, the entry has no line information, the fact of which is
noted in a messaqe response (IED090I) ana the routine returns control
to the control module.
.
At this point. the Copy Line Information routine gets the QCE
address from the terminal entry (!BMDESTQ}
and places its relative
P~cgram

Organizaticn

337

line number
(after it is converted to printable EBCDIC) in the
response messaqe (IED038I). !he routine obtains· the address of the
DCB from the QCE (OCBDCEAD) and determines whether the line attached
to the terminal has been opened.
If the line is not c~en. the routine
prepares an error messaqe (IED091I) and returns contrel to the control
module.
The line is now checked to determine whether an o~en idle
condition has occurred
(DEBUCBAD is zero).
If se,
the routine
prepares an error messaqe
(IFD091I)
and returns control to the
Operator Contrel contrel module.
If the line is open, the Copy Line Infcrmatien routine places the
address of the DCE in a res~onse messaqe (IED038I). Then the routine
qets the TCB address from the AVT (AVTTCB) and uses it to find the
Task I/O Table (TrOTI address at the location TCB+12.
!he routine
adds the DCBTJ01 value to the !TOT startinq point, moves the ddname
field from the resultinq location into the response messaqe (IED038I),
and returns centrcl to the control module.
On entry to the Copy Line Informaticn reutine, the address of the
Operator Control AVT is passed in reqister 1. The common input block
is located at the label OPCCKELE.
The routine uses only the OPCTNAME
field to qet the terminal name from the common input block.
External

Routines~

None.

Tables/Work Areas:
Work areas that contain the fixed pcrtion of each
response and s~ace for insertion of variarle data, AVT, DEB, DCB, QCB,
Termname Table, Terminal Table entry, Operater Control AVT.
Attributes:
Serially
problem proqram mode.

reusable,

refreshacle,

enabled,

transient,

CoPY Terminal Infermation Routine (Chart CHI
Module Name:

TEDCCH

~ntry
Point:
TEDOCR - loaded by the Cperator Control contrel module
to process DISPLAY TERM commands.
The ccmmand that caused this
routine to be activated is as follows:

r centrol chars' {DI~PLAY } T1?, TER M,statn am€
Functions:
This routine processes operator control commands that
request display of the fields· in a specified terminal entry.
The Copy Terminal Information routine ettains the !ermname Tacle
address from the AVT and serially searches it fo~ the name that
matches the ene s~ecifiea in the ccmmon input block.
If the matchinq
name cannot be found, the Copy Terminal Information routine prepares
an error messaqe (TED016II and returns contrel to the contrel module.

338

qhen a name match is found, the Copy ~€rminal Information routine
qets the Terminal Table entry address and places the terminal entry
name in the response messaqe
(IED033I). The ~outine ccnverts th~
in~ut and output sequence numbers
(from TEMINSEO and TBMOUTSO)
to
printable characters and places them in the IED033I messaqe.
the terminal entry is net a ~roc€ss entry (bit 2, X'20', in
is net turned onl, the routine qets the intensive mode' search
table, converts tte sense data (TRMSENSE)
to printable information,
and places it in the IED0331 messaq€.
If the entry is a process
entry, the routine places the characters TNTENSE=NC in the IED033I
messaqe.
If

~RMSTATR

Finally the COpy Terminal Information routine qets the status byte
placEs the ~rintable equivalents of its bit values in the
TED0331 messaqe, and returns contrel to the O~erator Control control
module.
(TR~STATF1,

On entry to this reutine, reqister 1 contains the address of the
Operator Contrel AVT,
from which the cenmenin~ut block can be
obtained.
The name of the requested terminal is located in the
checkpoint element in the CPCTNME field of the common input block.
Bxternal Routines: None.
~ables/~ork

response
~ermname

Areas: Work areas that contain the fixed perticn of each
messaqe and space for insertion of variakle data, AVT, CIB,
Table, Terminal Table entry, Operator Control AVT.

Attributes:
Serially
problem proqram mode.

reusable,

refreshatle,

enabled,

transient,

Copy ICB Information Boutine (Chart CI)
Module Name:

IEDCCI

Entry Point:
I!DOCI - loaded by the Operatcr Contrel control module
to process DISPLAY LINE commands.
The ccmmand that cuased this
routine to be activated is as follows:
rcontrol charsl ~ DISPLAyt TP,LINE, ddname,rln
D)
address

I

~unctions:

This routine processes operator control commands that
request oisplay of the ICB fields for a s~€cified line.

The Copy ICE Information routine determines 'whether the input
command format
specifies the line in the DDNAME/FLN or hardware
address format by checkinq the coromon input block, which is obtained
from the Operatcr Centrol AVT - the aadress of which is ~assed in
reqister 1.
If DtNAM~/RLN is specified and if the relative line
number is specified as ALL, the routine re1ects the input command,
because the relative line number may provide informaticn for a sinqle

Program Organization

339

line only.
If the relative line number is not specified as ALL, the
routine converts the relative line number to hexadecimal (for internal
~CAM use)
and determines whether the result is zere or qreater than
255, the maximum relative line number allowed.
If the relative line number is zero or qreater than 255, the Copy
LCE Informatien rcutine relects the command, ~repares an error message
(IED018I), and returns centrol to the Operator Control control module.
If the relative line numcer is valid, the rcutine gets the address of
the TCB from the AVT
(AVTTCBl,
finds the TIOT via the TCB, and
determines the offset into the TIOT for the rDNAME that was specified
in the input command.
When both DrNAMF/PLN and hardware address formats have been
specified in the input command, the COpy LeE Information routine qets
the startinq address of the DEE chain frcm the TCE and locates the
first DCP (DEBrCBAD).
If the DCB is not for a TeAM line
(DSORG does
not equal X'40'), the routine qets the next DEE in the chain
(DEBDEBADl and examines that DCB.
If there are no DEBs that have
associated TCA~ rCBs, the routine prepares an error messaqe (IED017I)
and returns contrel to the control module.
If the input command format is DDNAME/RIN, the routine cem~ares
the TIOT offset in the DCB ,(DCBTIOT)
to the ene calculated in
searchinq the TIOT. If the offsets are not equal,
the
routine gets
the next DEB and makes the comparison aqain.
When the correct DCB has
been located, the routine determines whether the associated UCB
(DEBUCBADl is zere (implyinq an open idle cendition has occurred).
If
the UCB is zere, the routine reiects the in~ut command,
prepares an
orror messaqe {IED018I}, and returns centrol to the control module.
If the line specified in the input command is open, but its relative
line numher is qreater than the number of lines in the line group, the
routine relects the command, prepares an error message (IEU018I), and
returns contrel to the centrel module.
If a hardware address was specified in tre input command, the Copy
LCE tnformation routine qets the DCB from the DEB
(DEBUCBAD)
and
compares it to the specified address.
If the DCB is not the one
associated with the DEB, the routine qets the next DEB and makes the
comparison aqain.
For both DDNAME/RLN and hardware address formats, once the rCB
address has been verified, the routine deterrrines whether the line has
been opened.
If the line is not cpen, the routine prepares an error
messaqe
(lED01?I)
and returns centrol to the control module. If the
line is open, the routine determines the adaress of the LCB from the
DCB (DCBIOBAD + (rCBFIOBX xrln) - lOB lenqth).
Then the routine gets
the LCB ~tatus tyte ano determines whether any bits are on.
If there
are some bits on, the routine uses the status conversion table to
convert the values te printable data and places the result in a
response messaqe (IED032I).
If no bits are on, the routine places the
characters 'NC BI~S ON' in the res~onse m€s~aqe (IED032I).
Next,
the
routine qets the SCE from the LCB, cenverts the error word to
printable data by usinq the error conversien table, and
places the

result in the response messaqe (TED032I). If there are no bits on in
the error word, the routine places the characters 'NO EITS ON' in the
response messaqe (IED032I).
The Copy LCE Information routine returns
control to the Cperator Control control module.
On entry to this routine, reqister 1 contains the address of the
Operator Contrel AVT from which the common in~ut block can be obtained
at the label OPCCKELE.
The Copy LCE Information routine uses only the
first sixteen bytes of the common input bleck, the format of which is
as follows.
Field Descripticn
Address of the common in~ut block
Lenqth ef the relative line number
If X'OO' - ALL
If X'80' - No rln
~ECDIC relative line number
~tNAMF or hardware address

lield~ame

OFCCKELE
CFCLEN

o FC'RL N
OPCTNME

+5
+8

!xternal Fbutines:

None.

Tables/Work Areas: Work areas that contain the fixed portien of each
response messaqe and space for insertien ef variatle data, AVT, LCB,
DCB, DEB. Operator Control AVT.
Attributes:
Serially
preblem proqram mode.

reusable,

Copy OCB Information Routine
Module Name:

refreshatle,

enabled,

transient,

(Chart CJ)

I~tCCJ

~ntrv

Point:
I~DOCJ - loaded by the Operator Contrel centrol module
to process DISPLAY OUEUE commands.
The ecmmand that caused this
routine to te activated is as follews:

fcontrol charsl

DISPLAY

TP,QUEUF,statname

D
~unctions:

This routine processes operator control commands that
request the display of the OCB fields for a specified terminal.

The Copy OCE Information routine locates the Termname Table from
the AVT and serially searches it for an entry that matches the one
specified in the common imput block, the locatien of which is
specified in the Operator Control AVT - the address of which is in
reqister 1.
If a matchinq entry cannot be found, the routine ~repares
an error messaqe (IED016Il and returns contrel to the Operator Control
control module.
If the terminal entry is found, the CO~Y eCE Informatien routine
qets the address of the OCE from the entry (TRMDESTQ) and the address
of the DCB from the OCB (OCEtCEAD), and ch~cks to determine whether

Program Organizaticn

341

the DCB has teen opened. If the DCB is net o~en, the routine reiects
the input command because there is no queue status.
~he
routine
prepares an error messaqe (IEDO~1I) and returns control to the control
module.
If the DCB is open, the routine uses the.address of the DEE
(DCBUEBAD) to check the UCB address (DEBUCEAD).
If the UCB address is
zero, a line open idle condition has occurred, and the line is
considered to be not open.
The routine rejects the input command,
prepares an errer messaqe (IED091I), and exits to the contre1 module.
If the line is open, the Copy QCE Information routine qetsthe
number of messaqes en the queue, ccnverts it to a printable number,
and places the result, alonq with the terminal name, in a response
messaqe (TED031I). The routine qets the status field
(QCBSTAT)
from
the OCB, converts the status data to printatle equivalents, and places
the result in the response messaqe (IED031l).
If no status bits are
on, the routine places the characters 'NO BITS ON'
in the response
messaqe (IED031I).
·The COpy eCE Information routine ottains the first ~rioritv QCB
associated with the master OCE, converts it to a printable number, and
places it in the response messaqe
(IED031I).
-If there are more
priority OCBs,
each one is converted and the ~rintable equivalent is
placed in the res~onse messaqe (IED031I).
~he routine returns control
to the Operator Centro1 control module.
On entry to this routine, reqister 1 contains the address of the
Operator Control AVT,
which contains the common input block that
points to the label OPCTNME.
This label is the name of the terminal
for which OCB values are to be displayed.
~xternal

Routines:

None.

Tables/Work Areas:
Work areas that contain the fixed portion of each
response messaqe and space for inserticn of variable data,
AVT,
Termname Table, Terminal Table entry, QCE, Operator Control AVT, DCB,
DEB.
~ttributes:
Serially
problem proqram mcde.

reusable,

refreshatle,

enabled,

transient,

Copy Held Terminals Routine (Chart CK)
Module Wame:

lEDCCK

Entry Ooint:
IEDOCK - loaded by the Operator Control centrel module
to process DISFIAY INTER commands.
The command that caused this
routine to be activated is as follows:

rcontrol chars1 'lDI~PLAY~ ,[P.INTER

Functions:
This routine processes operatcr
request display of the list of terminals that
h elo.

contrel commands that
~re
currently beinq

The COpy Beld Terminals routine qets the address of the Terminal
Table from the AV~ and then steps throuqh the table to test each entry
to determine whether it is beinq held
(intercepted).
If it is a
process entry
(X'20'
is on in ~BMSTATE), it cannot te held~
If an
entry is beinq held, the rcutine sets a bit to indicate an entry found
and places the name of the entry in a list.
When the end
of the
Terminal Table is reached,
the routine tests the bit te determine
whether any entries were held. If no entries are held,
the routine
returns a res~onse messaqe indicatinq this tc the control module.
If
the bit is set, the routine places the list of entries in a response
messaqe and returns to the centrol module.
~xternal

Routines:

None.

Tables/Work Areas:
Work areas that contain the fixed pertionof each
response meSSaqE and. space for inserticn of variable data, AVT,
~ermname Table, Terminal Table, Operator Ccntrol AV!.
Attributes:
Serially
prcclem proqram mcde.

reusable,

enabled~

refreshable,

transient,

COpy Invitation List Entry Routine (Chart Cll
Module Name:

IErceL

~ntrv Point:
IEDCCI - leaded by the Operator Control control module
to process DISPLAY ACT and DISPlAY INAC! commands.
The command that
caused this routine to be activated is as fellows:

r centrol

t

t

chars 1 ~ DISPLAY TP,~ ACT
t,~ ddname,rln
D
\
IINAC~\ laodress
\

t

Functions:
This routine processes operatcr control ccmmands that
request display of a
list of either the active or the inactive
terminals for a qiven line.
The Copy Invitation List Entry routine determines whether the
ddname/relative line number format or the hardware address format is
specified in the common input block.
The routine issues an error
messaqe
(IED018I)
and reiects the command if it is a ddname/relative
line number and the relative line number specified is ALL, because the
COpy Invitation List Entry routine displays data only for a sinqle
line.
If the relative line number is not ALL, the routine converts
the relative line number to a hexadecimal value.
If this value is
zero or is qreater than 255, the routine reiects the command due to an
incorrectly
specified
relative line number,
sends the message
(IED018Il, and exits to the Operator Control Control module.
If the
relative line nurrber is valid, the Copy Invitation List Entry routine
obtains the TCF address from the AV! and serially searches the TIOT

Frogram Crganization

3~3

(at TCE + 12) for a ddname matchinq that specified.
If it finds no
mat c h, the r 0 uti n € b u i 1 d s a n err c r
me s sa q e
(I ED 0 1 -7 I)
and re t urn s
control to the control module (IItOCA).
When it finds a match on the
~dname, the Co~y Invitation List Entry routine saves the
offset into
the TIOT.
~or
roth in~ut formats, the Copy Invitation List Fntry routine
obtains the start of the DEB chain from the TCB (TCE+8).
The routine
tests the DCE for each line to see if it is a TCAM line tCB (DSORG of
X'40') and if it is not, it finds the next tEB (from DEEDEEAD field of
the tEB).
If the routine reaches the end of the DEB chain before it
finds a
valid
tCB, it builds an error messaqe (IED017I) and returns
control to the contrel module (IEDQCA).

If the command was specified in the
ddname/relative line number
format,
the Copy Invitation List Entry routine compares the offset
into the TTOT (DCETIOT) to the one it com~uted above.
If they are not
equal, the routine obtains and tests the next DEB.
When it finds
the
proper DCB, the routine tests the ICB address in the DEB (DEBUCBAD)
for zero, implyinq line operand dd dummy.
If the UCB address is zero,
the Copy Invitation List Entry routine builds an error messaqe
(TED01?!)
and returns centrol to the ccntrel module (lEDQCA).
If the
computed relative line number is qreater than the number of lines in
the line qroup
(found in the DEENMEXT field of the DEE) the routine
re4ects the cemmand, builds an error messaqe
(IED017I),
and returns
control to the control module.
Tf the hardware adaress format was specified, the Co~y Invitation
List Entry routine compares the input address to the UCBs associated
with the DEB.
The routine then tests the DEB chain as above until it
finds a, match.
When the Copy Invitation List routine obtains the proper DCB for
either format,
it tests the DCB to see if it is open.
If it is not
open, the routine builds an error messaqe
(IEDO 171)
and returns
control to the control module.
If the line is open, the routine
obtains the invitation list address from the DCBINVLI field of the
DCB.
The routine then serially searches ·the invitation list for each
active or inactive entry in the list.
The routine obtains the
terminal name for each appropriate entry in the list from the Termname
Table and places that name in a response message (IED0361 or IED037I).
When it reaches the end of the list, the Copy Invitation List Entry
routine plac'es the line name in the re s~cnse messaqe and returns
control to the Operator Control contrel module.
External Poutines:

None.

~ables/work
Areas:
Work areas that contain the fixed pcrtion of each
response messaqe and s~ace for insertion of variable data, CIB,
DEB,
DCB, Termname Table, AVT, Operator Control AVT.

Attributes:
Serially
problem proqram mcde.

344

reusable,

refreshable,

enabled,

transient,

Copy operator Centrol Terminal Routine
Module Name:

(Chart CM)

IEDeCM

Entry Point:
IEIQCM - leaded by the Operater Centrel control module
to process DISfLAY PRITERM and DISPLAY SFC!EFM commands.
The command
that caused this routine to be activated is as follows:
rcentrol1 lDISFLAYl TP, lYFITERMl
D
~
SECTERM\
Functions:
This routine processes operater control cemmands that
request display of the primary e~erator centrel terminal or the list
of secondary operator control terminals.
The Copy Operator Control Terminal routine locates the Termname
Table from the AVT and checks the com men input block, the location of
which is obtained from the Operator Control AVT, the address of which
is in reqister 1, to deter~ine the type of input command. The OPCFLG
field contains X'80' fer the primary o~erator central terminal and
X'40'
for any secondary operator contrelterminals.
If the primary
operator contrel terminal is to be displayed, the routine qets the
terminal offset from the AVT (AVTOPCON) and determines whether it is
zero (indicates the system console).
If the offset is zero,
the
routine places the name SYSCON in the response messaqe (IED041I) and
returns control to the Operator Control centrol module. If the offset
is not zero, the routine adds the effset te the start of entries in
the Termname Table.
The name at the resultinq address is placed in a
response messaqe (IED041I), and centrol returns to the control module.
If the list of secondary operator centrel terminals is to be
displayed, the Copy Operator Control Terminal routine examines each
entry in the Terminal Table.
If an entry is for a secondary operator
control terminal (TRMSCNYN on in 1RMSTATE), its name is placed in the
list to be returned as a response (IED043I SFCCNDABY=statnamel~
After
all entries have been checked, the routine returns the list to the
control module.
External Foutines:

None.

Tables/Work Areas:
Work areas that contain the fixed pertion of each
response messaqe and space for inserticn of variable data,
AVT,
~ermname Table, T~rminal Table entry, Operatcr Control AVT.
Attributes:
Serially
problem proqram mcde.

reusable,

refreshable,

enabled,

transient,

Program Organization

345

Chanqe Control 7erminal Routine (Chart CN)
Module Name:

IEDCCN

Entry Point:
IEDQCN - loaded by the Operatcr Control control module
to process MODIFY OPFFATOR commands.
the command that caused this
routine to be activate~ is as follews:
rcontrol chars' JMODIFyl ident,oPEEATOR=~statnamel
iF)
t~YSCCN
~
Functions;
This routine
processes
cperator
centrel
commands
requestinq that the primary operator ccntrol terminal be changed to
the terminal s~ecified in the command.
The Chanqe Control Terminal routine first checks the common input
block, the location of which is obtained from the Operator Control
AVT, the address of which is in reqister 1, to determine 'whether the
specified primary terminal is the system console.
If it is, the
routine compares the primary terminal offset in the AVT (AVTOFCON)
to
zero'.
If the offset is zero (the system console is already primary),
the routine pre~ar~s a res~onse messaqe (IED042I) and tranches to the
Operator Contrel control module.
If the system console is not already primary, the AVTOPCON field
is set to zero.
If the O~erator Awareness Messaqe Router routine
(IEDONX)
is present in the TCAM system (AVTNX is not equal to zero),
the Chanqe Centrol Terminal routine deletes the Operator Awareness
Messaqe Router routine and sets the AVTNX field in the AVT to zero.
Then the routine ~repares a response messaqe
(IED041I)
and returns
control to the control module.
If the offset of the primary terminal specified in the common
input block is not zere, the Chanqe Contrel Terminal routine finds the
T.ermname Table from the AVT and serially searches it for an entry to
match the one sPecified in the common input block,
If there is no
matchinq entry, the routine prepares an error messaqe
(IED016I)
and
returns contrel to the centrel module.
If a matchinq entry is found,
the xoutine checks to determine whether it is a valid secondary
terminal
(TRMSCNYN is on in TFMSTATE).
If it is not valid, the
routine prepares an error messaqe (IED044I) and ieturns centrel to the
Operator Contrel ~ontrol module.
Once the matchinq entry has been located,
the Chanqe Co~trol
Terminal routine com~ares the terminal effset from the beqinninq of
the Termname Table to the contents of the AVTOPCON field in the AVT,
and if they are the same, the terminal is already a primary terminal.
The routine prepares a response messaqe (IEt042I)
and exits to the
control module.
If the offset and AVTOPCON are not the same, the
routine places the new offset (of the matchinq terminal found) in the
AVTOPCON field and determines whether the Operator Awareness Message
Router routine i~ present (AVTNX is not equal to zero).
If it is not
in
the system, the Chanqe control Terminal routine loads the Operator
Awareness Messaqe Router routine, stores its address in the AVTNX
field of the AVT, prepares a res~onse messaqe (IEr041I), and returns
control to the Operator Contrel centrel module.

External Foutines:

•

as Load routine (SVC 8) - to load the Cperator
~outeI

Awareness

Messaqe

routine (IEDONX).

as Delete reutine (SVC 9)
Messa~e

to
Bouter routine (IEDQNX).

delete

the

Operator

Awareness

~ables/Work

Areas:
Work areas that contain the fixed portion of each
response messaqe and space for
inserticn of variable data,
AVT,
Termname Table, Terminal Table, entry, Operator Control AV~.
Attributes:
Serially
problem preqram mede.

reusable,

Chanqe Terminal Routine

(Chart CO)

Module Name:

refreshable,

enabled,

transient,

IEDCCO'

Entrv Point:
IFDOCO - loaded by the Operator Control control module
to process VABY TERMINAL commands.
!he cemmand that caused this
routine to be activated is as follows:

Functions:
This routine processes operater control cemmands that
request that a specified terminal be either activated or deactivated
for enterinq, er for both enterinq and acceptinq.
The Chanqe Terminal routine serially searches the Termname Table
for an entry matchinq that specified in the common input blcck.
If i t
does not find
a match, the Chanqe Terminal routine builds an error
messaqe (IED016I) and returns control to the O~erator Control control
module (IEDOCA).
When it finds a matchinq entry, the Chanqe Terminal routine tests
it for a process entry (X'20' in tte !RMS!AiE field).
If the entry is
a process entry, it has no invitation list, and the Chanqe Terminal
routine builds an error messaqe (TED090I) and returns centrel to the
control module.
The Chanqe !erminal routine uses the aCE at TRMDESTO in
Table to ottain the relative line number CQCBPELLN) and
DCE (QCEDCEAD).
!he routine then tests the DeE fer open status,
if it is not o~en the routine tuilds an error message (IED091I)
returns contrel to the centrol module.
~ermname

the
the
and
and

The Chanqe Terminal routine qets the address of the DEE from
the
DCBDEBAD field
ef the DCB and uses thetFB to find the UCB address
(DEB~CBAD).
The routine tests the UCB for 2ero.
If it is zero,
the
line has been opened DDDUMMY, so the routine builds an error messaqe
(IED091I) and returns to the centrel module.

Prcgram Organization

341

The routine uses the DCBIOBAD field of the DCB to find the LCB
address and then tests the LeE for dial (the LCBDIAL bit is on in
LCBSTAT2). If thE line is a dial line, the Chancre Terminal routine
builds an errcr messaqe (rED08ST) and returns to the control module.
The Chanqe Terminal routine tests the line to see if it is stopped.
If it is net stopped, the rcutine relects the command, builds a
messaqe (IFD089I), and returns control to the centrol module.
~he Chanqe Terminal routine obtains aadress of the invitation list
from the DCEINVLI field of the DCB.

The routine tests the input block to determine if it contains a
VARY ON or O~F command. If it is cn, the rcutine tests the invitation
list to determine if all the entries are active. If the Entries are
all active the Chanqe Terminal routine builds a messaqe (IED019I)
and
returns control to the central module.
The Chanqe Terminal routine tests each entry in the invitation
list to see if it is the entry for the terminal.
If the entry is for
the terminal and if it is not already active, the Chanqe Terminal
routine swaps it from the inactive to its ~roper location in the
active part of the list. The routine then sets a bit to indicate that
the list was chanqed. When it reaches the End of the list, the Change
Terminal routine tests this bit. If the tit is not on, the terminal
is already active and tpe routine builds an "already active" messaqe
(TEDf)19I)
and exits tc the control module. If the bit is on, the
routine huilds a messaqe (IED020I) and returns control to the Operator
Control control mcdule.
If the command is a VARY OFF, the ChanqE Terminal routine tests
the invitation list for active status. If all the entries in the list
are inactive, the routine builds a res~onse messaqe (IED025I) and
exits to the centrol module.
~he routine tests each entry in the invitation list to see
if it
an en·try for the terminal. I f it is 'for the terminal and if it is
active, the routine swaps it from the active to the inactive side of
the list, decrements the active count, and sets a bit to indicate that
the list was chanqed. When the rcutine has examined all the entries
in the list, it tests the bit. If the bit is off the terminal was
already inactive, so the routine builds an "already stopped" message
(IFD025I) an~ returns control to the contrel module. If the bit is
on, the Chanqe Terminal routine builds a messaqe (IED026I} and returns
to the control roodule.

is

Fxternal Routines:

None.

Areas:
Work areas that contain the fixed portion of each
response meSSaQE and space for inserticn of variable data, AVT,
Termname Table, Terminal Table entry, QCE, LCB, DEB Operator Control
AVT.

~ahl€s/Work

Attributes:
Serially
preblem proqram mcde.
348

reusable,

refreshatle,

enabled,

transient,

~lter

Trace status Routine (Chart CP)

Module Name:

IEDCCP

Entry Point:
IEDOCP - loaded by the Operator Control control module
to process MODIFY TRACE commands.
The ccmmand that caused this
routine to be activated is as follows:
rcontrol charsl JMCDIFytident, TRAC!=jaaname,rlnt
F \
iaddress
\

1

j,

i

00NFFt

\

Functions~

!his routine processes operator contrel commands that
request a chanqe cf trace status for a specified line.

The Alter Trace status routine first checks the common input
block,
passed' tc it from
the O~eratcr Control AVT, the address of
which is in reqister 1, to determine whether the DDNAMF/BIN or the
hardware address format was specified in the input command.
If DDNAME
is specified, the routine determines whether RLN equals ALL; and if
so, the routine relects the command, prepares an error messaqe
(IED018Il', and returns centrol to the Operator Control control module,
because trace can be altered only on a sinqle line basis.
Tf the BIN is not ALL,
the routine converts the FLN value to
hexadecimal and determines whether the result is zero cr greater than
255, the maximum value, either of which is invalid for a relative line
number.
The routine re;ects the command, ~repares an error message
(IED018Il , and returns control to the centrel module.
If the RLN is valid, the Alter Trace status routine qets the
address of the TCB from the AVT (AVTTCBl and serially searches the
TIOT, the address of which is in the TCE, fer the ddname specified.
If no matchinq ddname is found, the routine prepares an error message
{IED017Il and exits to the centrol module. When a matchinq ddname is
found, the routine saves the offset into the TIOT.
For both tDNAMF/ELN and address formats, the Alter Trace status
routine locates the DEB chain from tbe TCE and examines each DCB
(DEBDCBAD)
to
determine
whether
it
is
a
TeAM
line DCB
(DCBtSORG=X'40').
If it is not a TeAM line DCB and if the end of the
DEB chain has been reached,
the routine prepares an error messaqe
(rED017I) and tranches to the control module.
~or the DtNAME/BLN fermat only, the
Alter Trace Status routine
comapres the' TeAM line DCB's TIOT offset to the one just saved.
If
the offsets are not the same, the routine continues searchinq the DEB
chain.
When the correct DCB is found,
the routine com~ares the
relative line numter to the numter of lines in the line q~oup
(DEBNMEXT) •
If the relative line number is larqer, the routine
prepares an error messaqe (IED017I) and returns control to the control
module. The routine checks the line fer an open idle condition
(DEBUCBAD field
is zero), and if it has cccurred, prepares an error
messaqe (IED017l) and exits to the control module.

Program Organization

349

Wor the address format, the Alter Trace status routine compares
each UCB asseciated with a DEB te the address 'specified in the input
command, and searches the DEB chain until a matching address is found.
Once the correct DCB is found for either format, the Alter Trace
status routine checks the DCB fer an o~en condition. If the DCB is
not epen, the reutine prepares an error messaqe (IEr017I) and returns
control to the control module.
If the DCB is o~en, the routine
calculates the ICE address from the DCB.
Next, it checks the AVT for
the presence ef a Trace Table (AVTRACE field is net zero).
If there
i~ no Trace Table, the Alter Trace status routine
pre~ares
an error
messaqe (IED055Il and returns contrel to the control module.
If a Trace Table is found and if a trace is to te performed, the
Alter Trace status routine checks the trace bit. If it is already on,
the routine prepares a response messaqe (IEr024I) and returns control
to the contrcl medule.
Otherwise, the reutine turns en the trace bit
(LCBTRACE in the ICBSTAT2 field of the LCB),
turns on a bit to
inditate that a checkpoint is needed, ~repares a res~onse messaqe
{lED023Il, and returns centrol to the centrel module.
If a trace is to be stepped and the tCE trace bit is net on,
the
routine prepares a response messaqe (IED030I) and exits to the control
module.
Otherwise, the Alter Trace status routine turns the trace bit
off,
turns the checkpoint bit en, pre~ares a respense messaqe
(IED029Il, and returns centrol to the Operator Control control module.
External Routines:

None.

Tables/Work Areas:
Work areas that contain the fixed ~ortion of each
response messaqe and space for insertion ef variable data, AVT, LCB,
nCE, DEB, Operator Control AVT.
Attributes:
Serially
problem proqram mede.

reusable,

refreshatle,

enabled,

transient,

stOP/Resume Terminal Transmission Routine (Chart CQ)
Module Name!

IEDQCO

Entry Point:
IFDQCQ - leaded bV the Operator Control contrel mddule
to process HOLD and RELEASE operater centrol commands and RELEASEM and
MPELEASE application proqram macros.
The command that caused this
routine to be activated is one of the followinq.

t

rcontrol chars' ~VAFY ter~name, ~ CNTP {, E
V \
ICFFTP~

1

r con trol chars 1 fHO~D
RELEASE
A

350

l

TP=sta tname

~unctions:

This
routine
processes
eperator control commands
requestinq that a specified terminal be prevented from acceptinq
messaqes or requestinq release of a specified held terminal.
The Sto~/Fesume Terminal Transmission routine serially searches
the Termname Table for an entry matchinq that in the common imput
block.
If the routine reaches the end ef the table before findinq a
match, it builds an error messaqe (IED016I) and returns centrel to the
Operator contre! contrel module
(IEDOCA).
When the Stop/Resume
~erminal
Transmission routine finds a matchinq entry in the Termname
Table, it saves the address of the entry in a reqister.
The routine
then tests the input bleck to see if a HOLD or RELEASE is to be done.
If a HOLD is to be done,
the Stop/Resume Terminal Transmission
routine tests the entry to see what type it is.
If it is not'a single
terminal the routine builds an error messaqe (IED060I) and returns
control to the control module.
If the terminal is already held
(the TF~HELtN bit is. on in
TFMSTATE), the Stop/Resume Terminal Transmission routine tests to see
if it was held by a HOLD or by a VARY command.
If the commarid was
HOLD, the routine builds a messaqe
(IED052I)
and returns to the
control module.
If the cemmand was VARY, the routine tests a bit set
by the Chanqe Terminal routine
(IFtQCO).
If the bit is on, the
Stop/Fesume Terminal Transmission routine builds a messaqe
(IED025I)
and returns tc the centrol module. If the bit is off, the routine
builds a messaQe (IED026I) and returns contrel to the contrel module.
If the hold code is not in the system (the AVTAS field in theAVT is
zero), the terminal cannot be held.
If this is the case, the routine
builds an error messaqe (TED060I) and exits to the control module.
The StOP/Resume Terminal Transmission routine ebtains the address
of the aCB from the TRMDESTO field of the Terminal Table and tests the
aCB for its queue type.
If it is a main-storage-only queue
(the
OCBCOFE bit is on in the OCBDSFLG byte), the terminal cannot be held.
The routine builds an error messaqe
(IED060I)
and returns to the
control module~
.
The StoP/Fesume Terminal Transmission routine ebtains the address
of the DCB from the OCBDCBAD field of the CCB and tests it to see if
it is open.
If the line is not open, the routine builds an ~rror
~essaqe (IED060I)
and returns to the control module. If the line is
open dd dummy (the DFBUCEAD of the DEB is zero), the routine builds an
error messaqe (IED060I) ana returns control to the control module.
If the entry is queued by terminal
(the CCBTEFMQ bit in the
OCBFLAG byte is on), the Sto~/Resume Terminal Transmission routine
turns on the QCB hela flaq (OCBTRMHO in QCBSTAT).
The reutine then
turns on the hold bit in the Terminal Table (TRMHEIDN in TRMSTATE) and
sets the check~ointbit (OPCCKBIT in the Operator Control AVT).
The
routine tests the input to see if this is a HOLD command only or if it
is an entry for a VARY terminal. The routine builds the ap~ropriate
response messaqe (IED051I for a HeLD command; IED025I or IED026I for
VARY dependinq upon the bit set tv the Chanqe Terminal routine), and
returns to the control module.

Pxogram Organization

351

If the StoP/Resume Terminal Trans~ission routine determines that
must perform a release function, ~it tests the hold bit in the
~erminal Tarle Entry.
If the bit is off, the terminal is already
released.
The routine then determines whether the cemmand was a
PELEASE or a VARY. If the command was RElEASE, the routine builds a
messaqe (IED053I) and returns to the contrel module. If the command
was VARY. the Stc~/Resume Terminal Transmissien routine tests a bit
set bv the Chanqe Terminal 'routine. If the bit is on, the routine
builds a messaqe (IED020I). or if the bit is off, the routine builds
a messaqe (IED019T) and returns control to the control module.

it

If the held bit is off, the Stop/Resume Terminal Transmission
routine builds an element request block (ERE) to request a tuffer, and
issues an AOCTI macro (IGC102) to obtain the buffer. The routine then
issues a WAIT (SVC 1) for the buffer to be received. When the WAIT is
satisfied, the Stop/Resume Terminal Transmission routine removes the
new buffer from the operator control queue, places the terminal-to-bereleased offset in the new buffer, and queues the buffer to the
IEDO~S01 entry point of the Hold/Release
Termiral routine (IEDQAS).
~he
stop/Resume Terminal Transmissien rcutine issues ancther AQCTL
macro to qiv€ the new buffer to the release function (!EDQAS01) above.
The routine builds a res~onse messaqe (IFDC201 if the command was
R~LFASE
and IED0541 if the command was VARY).
The Stop/Resume
~erminal Transmission
routine then sets the checkpoint flaq and
returns contrel tc the centrol module.
External Routines:
•

IGC102 - AQCTI Svc 102 - to obtain a new tutfer and to tpcst it to
TCAM for further processinq bv the Hold/Release Terminal routine.

•

os Wait routine (SVC 11 - to wait for a tutfer to be received.

Areas: Work areas that centain the fixed portion of each
response messaqe and space for insertion ef variable data, AVT, ClB,
Termname Table, Terminal Table entry, Operator control AVT., ERE, DEB,
OCE. and DCB.

Tables/~ork

Attributes:
Serially
problem proqram mode.
start Line
i

Ro~tin€

ModuleI Name:

reusable,

refreshable,

transi~nt,

(Chart CU)

IFtOCU

Entrv Point: JEDQCU - loaded bV the Operatcr
to process STAR!LN and VARY ON!F commands.
this routine to be activated is as follows:
rcontrol chars'

~VARYt!ddname,rlnl

') V \ ddname
~
address

Also, the STAFTLN macro in the OTAM
activate this routine.
352

enabled,

contro~

control module
The command that caused

,ONTP

messaq~

processinq

proqram

can

Functions:
This routine processes operator
request startinq a line or line qreup •.

contrcl commands that

The start Line routine examines the common input block, located in
the Operator Ccntrol AVT, the address of which is in register 1,
to
determine the input cemmand format.
If tbe input is a DCB address,
the routine qets the address of the DEB from the DCBDEBAD field and
beqins processinq the DeB.
If the in~ut is a terminal name, the
routine serially searches the Termname Table for an entry that matches
the one specified in the input command.
If the end of. the table is
reached before a match is found, the routine sets a X'04' return code
in reqister 15 and returns control to the O~erator Contrcl control
module.
When a matchinq entry is found, the routine locates the QCE
(from the TRMDESTC field of the terminal entry),
which ~rovides the
addresses of the DCB and DEB, and beqins ~rccessing the DCB.
If the input command format is DDNAME/FLN and the relative line
number is not Allor is not already in hexadecimal,
the start Line
routine converts the line number to hexadecimal and determines whether
it is zero or qreater than 255.
If the relative line number is
either, the reutine re1ects the corrmand,
prepares an errer messaqe
(I~D018I), and returns centrol to the centrel module.
If the relative line number is valid, the routine qets from the
TCE the address of the TIOT and serially searches it for an entry that
matches the specified DDNAME. If the end of the TICT is reached and
no matchinq ddname is found, the routine prepares an error messaqe
(rED017I) and returns control to the control module.
If a matching
ddname is found, the routine saves its offset into the TIOT.
Then the
routine qets the DEB chain and determines whether each DCB is a TCAM
line DCB (DSOFG field contains X'40') and has the same TIOT offset
(DCBTIOT) as the one iust saved.
If no DeB is found in the DEE chain,
the start Line routine prepares an error message (IED017I) and exits
to the control module.
Otherwise, when the correct DCE is found,
the
routine beqins precessing the DCB.
If a line address is specified in the input command, the start
Line routine locates the DEB chain and checks each UCB associated with
a DEB to determine whether the UCB has an ID matchinq the specified
address.
If no matchinq ID is found, the routine prepares an error
messaqe (IED017I) and returns control to the centrol module.
Now the start Line routine is ready to process the DEB
(for all
input formats).
First, the routine checks the DCB open status, and if
it is not open, prepares an error messaqe (IED017!) and returns
control to the centrol module.
If the DCB is open and a sinqle line is to be started, the routine
compares its relative line number to the number of lines in the line
qroup.
If the line number is larger than the number of lines, the
routine prepares an error message (IED01?I) and returns contrel to the
control module. Otherwise, the rcutine determines whether the line is
an open DD DUMMY, and if so, the routine ~repares an error message
(TED01?I)
and returns control to the contrel module.
If a line qroup

Program

O~ganization

353

is to be started and a line is a BD DU~MY, the routine prepares the
same error messaqe and then checks the next lin~ in the group.
If all
lines in th~ qrcup are open DD DUMMY, the routine prepares the error
messaqe (IED017I) and returns control to the control module.
From the DCE in the DCEIOEAD, the start Line routine gets the LCE
address and determines whether the activity of the line associated
with it has been stopped.
If line activity has not stopped and the
input command request is from the Teleecmmunications On-Line Test
Executor (TOTE), the routine tposts the line LCE to itself via SVC 102
(IGC102) in order to return the line from TeTE to TCAM.
The routine
returns contrel to the centrel mcdule.
If the input command request
is not from TOTE, the routine qets the next LCE to be processed.
When
alllCBs have been processed, if any lines associated with them have
been made active,
the routine ~repares a response messaqe (1ED020I)
and returns contrel to the control module.
Otherwise,
the routine
prepares another res~onse messaqe (IED019Il and exits to the control
module.
If the line is not active,
the start Line routine turns the
receive bit en in the associated LCB. The rc~tine pre~ares a Nap
command for a switched line, an Enable command for a nonswitched line,
and a SAD command for a line attached to a 2702 control unit,
which
complets the channel preqram.
Now the routine issues an EXCP (SVC 0)
command to start the line activity and turns en the line-started bit
in the LCE for the line.
The start line routine continues qettinq
LC~s and processinq them until all
lines in the system have been
processed.
External Routines.:
•

IGC102 'rCAM

ACCTl SVC 102 routine - to return a

•

as EXCP routine' (SVC 0)

line

from

TOTE

to

- to start a line.

Tables/Work Areas: Work areas that contain the fixed portion of each
response and s~aee for insertion of variarle data, LeE, AVT# Operator
Control .AVT, OCE, DEB, DeB, Termname Table, Terminal entry.
Attributes:
Serially
problem prcqram mcde.

reusable,

refreshable,

enabled,

transient,

stop Line Routine (Chart CVl
Module Name:

IEDCCV

Fntrv Point:
IEDQCV - loaded by the Operator Control centrol module
to process STCFLN., VARY OF'FTP (Cl,
VARY OFFTP,
and VARY OFFTP
(I)
commands.
The command that caused this rcutine to be activated is as
follews:

354

r control chars l{V~RY}I(ddname, rln)l
V

adnaroe
address

,O~FTP,

{,c}
I

Also, the STOPLN macro in the QTAM rnessaqe processinq ~rogram, the
ICHNG macro in the ~CAM applicaticn proqram, and the CLOSEMC or
MCP.CLOSE macros can activate this routine.
~unctions:

This routine ~rocesses operatcr control cCIDmands that
request stoppinq acti~ity on a line either immediately or at the
completion of the current operaticn.

The stop Line routine first checks the closedown bit in the AVT
(AVTCLOSN in AVTBIT1 field).
If it is cn, indicatinq that all lines
in the system are to be made inactive, the routine sets a flaq in the
stop line request element.
At this point the Stop Line routine examines the ccmmon input
block located at the OPCCKELE entry point in the Operator Control AVT,
the address of which, is in reqister 1, to determine the format of the
input command.
The routine uses the follcwinq fields of this block.
Field

Na.ID.§

OP (l:EN

+8

OPCFLN
OPCTNME

+18

OPCFIG

+'5

Field Cescription
X'OO' for STOPIINE All.
X'40' for relative line number in
hexadecimal.
X'80' for no relative line numter.
bits 1-3 ccntain the relative line
number, if ~resent.
Relative line number
DCB address, tErminal name, cr
line address.
X'80' for VARY (I)
X'40' for'VARY (Cl

If the input command format contains a DCB address, the routine qets
the DEB address from the DCB (tCEDEEAtl and ~ranches to process the
DCB. If it contains a terminal name, the routine serially searches
the Termname Table for a matchinq entry. If no match is feund, the
routine sets a return code of X'04' in reqister 15 and returns control
to the control module.
Otherwise, when the entry is found,
the
routine qets the associated QCB (from TRMDESTQ), the DCB from the QCB
(OCBDCBAD) and the DEB from the DCE (DCBD:EBAD). Now the routine is
ready to branch tc process the DCE.
Tf the in~ut command format is DDNAME/F1N and the RLN is still in
character reprEsentation, the stop tine rcutine converts it to
hexadecimal and checks to determine whether the result is zero or
qreater than 255. If the relative line numrer is either, which is
invalid, the ,routine prepares an error messaqe (IFD01SI), sets a
return code of X'04' in reqister 15, and returns contrel to the
control module.
When the relative line number is valid, the routine
finds the TrOT throuqh the TCE (AVTTCB) and serially searches the TIOT

P~ogram

Organization

355

for a ddname that matches the one in the input command.
If no
matchinq entry is found,
the routine ~re~ares an error message
(lED017I), sets a return code of X'04' in register ·15, and exits to
the control module.
For a matchinq ddname, the reutine gets the DEB
chain from the TCE and checks each DCB associated with a
DEB to
determine whether it is a TCAM line DCB (ISORG is X'40') and whether
the TIO~ offset matches that found while searchinq the TIO!.
If no
matchinq offset is found
in the DEB chain, the routine prepares an
error messaqe (IED01?I), sets a return code of X'04' in register 15,
and exits to the control module.
When the correct DCB is found in the
DEE chain, the routine branches te ~rocess the DCB.
Tf the in~ut command specifies the line address format, the stop
Line routine qets the DFE chain and checks each UCB associated with a
DBB in the chain for an ID to match the ene specified in the input.
If no matchinq ID is found in the DEB chain, the routine ~re~ares an
error messaoe
(IED017I), sets a return code of X'04' in reqister 15,
and returns control to the control module.
At this peint, no matter which input ccmmand format was specified,
an appropriate rCE is ready to be processed.
The stop Line routine
determines whether STOPLINE ALL was specified on the input command,
and if so, performs the followinq operaticns. The routine places the
DEB and
DCB addresses in the stop line request element, tposts the
element complete; and issues a WAIT instruction (SVC 1) to wait for at
least one line to be sto~ped.
When the WAIT has been completed,
the
routine prepares a response messaqe (lED026I) and returns control to
the control module.
1f only one line is to be stop~ed, the stop Line routine
compares
the
relative line number to the number of lines in the qroup.
If the
line number is qreater,
the routine prepares an error message
(IED017T),
sets a X'04' return code in reqister 15, and qives control
to the control module.
When the relative line number is valid,
the
routine checks for an open idle conditien (OPEN DD DUMMY).
If this
condition has occurred, the reutine prepares an error
message
(IED01?I),
sets a X'04' return code, and qives control to the control
module.
Otherwise, the routine qets the address of the line LCE from
the DeB
(DCEIOEAD)
and determines whether the line has already been
stopped.
If it has been stepped,
the rcutine prepares a response
messaqe
(IED025I), sets a X'OO' return code in reqister 15, and exits
to the control module.
If the line is still active, the routine
places the ·DEB and DCB addresses in the stop line request element,
tposts the element complete, and issues a WAIT (SVC 1) instruction to
wait for the line to be stopped.
When the WAIT has been completed,
this routine checks an indicator to determine whether there are more
lines to stop.
If not,
the stop Line routine prepares a response
messaqe (IED026I), sets in reqister 15 a X'OO' return code for single
or all lines or a X'14' return code if closedown is specified, and
returns contrel to the Operator Centrol centrol module.
Otherwise,
this routine qets the next LCE and proceeds as previously described.

356

External Routines:
•

IGC102 -

AQCTL SVC 102 routine - to

•

as Wait routine (SVC 1\ request.

t~cst

the STOPLlNE request.

to wait for eempletion of

the

STOPLl~E

~ables/Work

ArEas:
Work areas that contain the fixed portion of each
response and s~ace for insertion of variarle data, QCE, LeE, AVT, ClE,
Operator Contrel AVT, DCE, DFB, Termname Table, terminal entry.
Attributes:
Serially
problem preqram mcde.

reusable,

refreshatle,

enabled,

transient,

Modify Poll Routine (Chart CW)
Module Name:

IEDCCW

Entry Point:
IFDOCW - called by the Operater Control control module
to process MODIFY AUTOPOLL commands. The ccmmand that caused this
routine to be activated is as follews:
rcontrol charsl {MODIFYlident~AUTOF011={ddname,rlnJ'loN
F
address
OFF

I

~unctions:

The Modify Poll routine ~rocesses operater control
commands that request that autopollinq be started or stopped for a
specified line.

The Modify Poll routine tests the com men input block to determine
whether the DtNAME/RLN or the hardware addrEss format was used.
If
the adname was used, the routine checks the relative line number for
ALL.
If tt is All, the routine builds an invalid command messaqe
(1ED01BI)
and returns contrel to the Operater Control control module
(TEDOCA).
If the relative line number is net ALL,
the Modify Poll
routine converts it to a hexadecimal value and determines whether it
is zero or qreater than 255. Either of these is invalid; therefore,
the routine re;ects the command (IED018T) and returns to the control
module.
Tf the relative line number is valid, the ModifV FoIl routine
obtains the address of the TCE from the AVT and then serially searches
the TTOT
(at TCB+12) for the related ddname.
If it finds no match,
the routine builds an error message (IED017I) and returns control to
the control mcdule.
If the routine finds a matchinq entry, it saves
the offset intc the TIOT.
For both in~ut formats, the start of the DEB chain is at TCB+8.
Modify Poll rcutine tests the associated DCE (DFBrCBAD) for a TeAM
line DCE
(DSOBG of X'40').
If the DeE is not a TCAM line DeB, the
routine ottains the next DeE and ~rocesses tbe DEB chain.
If it finds
no TCAM line DeBs, the routine builds an errer messaqe
(lED01?I)
and
returns contrel tc the centrel module.
~he

P~o9ram

Organizaticn

357

input format, the Modify Poll routine cem~ares the
com~uted
above.
If the
offsets. do net match, the routine conintues to search through the DEE
chain. When it finds the proper DCB, the reutirie tests its UCB
(at
DEBUCBADl
for zero,
which implies an OPEN DD DU~MY.
If the UCB is
zero, the Modify Poll routine builds an error message
(IED01?!)
and
returns contrel te the control module.
For

a

DDNAME

TeAM line DCB's TIOT offset to that offset

For a line address format, the Modify Fell routine tests each UCE
associated with the DEB for a match on the address.
It continues to
search throuqh the DEB chain until it finds the matching UCE.
Once it ottains the proper DCE for either format, the Modify Poll
routine tests it for open status.
If the DCB is not open, the routine
builds an error message (IED01?I) and returns control to the control
module.
If the rel~tive line number is qreater than the number of
lines in the line qroup, the routine builds an error message (IED01?!)
and exits to the control module. If the UCE is not a co~munications
UCB . or is not capable of autopeli, the Medify Poll routine builds a
~essaqe (IFD057I)
and returns to the crintrcl module.
The routine ottains the address of the invitation list from the
DCBINVLI field ef the DCE and tests the input block to see if autopoll
is to be started or stopped.
If autopcll is to be started and is
already started or is to be stopped and is already stopped, the Modify
Poll routine builds an appropriate response (IED022I or IED028Il
and
returns contrel to the control module. Otherwise, the routine turns
on or off the appropriate bit in the invitation list indicatinq that
autopoll is started or stopped.
It then turns on the checkpoint
flaqs, builds th~ appropriate response messaqe (IED021I er IED02?I),
and returns control to the centrol module.
External Routines:

None.

Tables/Work Areas~ Work areas that contain the fixed portion of each
messaqe and space for inserticn of the variable data, AVT, CIB,
DCB,
DEB, 'and the Cperator Control AVT.
Attributes:
Serially
problem proqram mede.

reusable,

refreshable,

enabled,

transient,

Modify Intense Routine (Chart CX)
Module Name:

IEDOCX

Entrv Point:
rEDQCX - leaded by the Operatcr Control control module
to process MCDIFY INTENSE commands.
Tte command that caused this
routine to be activated is as follows:
fcentrol CharS'{~ODIFY\ident'INTENSE={TFRM,termna.me
. },sens€,count
F
LINE,{ddname,rln\
address

358

Functions:
This routine processes operator control cemmands that
request modification of the sense infomatien for intensive recording.
The M~difv Intense routine tes~s the common input block to
determine whether modification is for a terminal or for a line.
If
the modificatien is for.a terminal, the routine serially searches the
~ermname
Table fer an entry matchinq that specified in the input.
If
the routine reaches the end of the table before it finds a match,
it
builds an error messaqe
(IFD016I), sets a X'04' return code in
reqister 15, and returns centrol to the Operator control control
module
(IEDOCA).
When a matchinq entry is found in the Termname
Table, the Modifv Intense routine saves its address.
If the modificaticn is for a line, the routine tests the input for
the DDNAME/FLN cr the hardware address ferroat.
If it is the ddname
format,
the routine tests the relative line number for ALL.
If it is
ALL, the routine builds an error messaqe
(IED01SI), sets a X'04'
return code in reqister 15, and returns centrol to the control module.
Otherwise the Medifv Intense routine converts the relative line number
to hexadecimal and. tests the result fer obvious errors - zero or
qreater than 255.
If the relative line numter hexadecimal value is
either zere or qreater than 255, the routine builds an error messaqe
(TED018Il, sets the X'04' return code, and returns to the control
module.
The Modifv Intense routine qets the address of the TICT from the
(at TCB+12) and serially searches the TIOT for an entry matching
that specified in the input.
If it finds nc match, the routine builds
an error messaqe
(IED01?I) and returns to the control module with a
X'04' return code in reqister 15.
When it finds in the TIOT an entry
that matches the input, the routine saves its offset into the TIOT.
~CB

For both the DDNAME/BLN or hardware line address fermat for line
modification, the Modify Intense routine finds the start of the DEB
chain at TCB+8 and then tests the DCE associated with each DEB for
TCAM line status (DSORG of X'40').
If it finds no TCAM line before
the enn of the DEB chain, the routine builds an error messaqe
(TED01?!), sets a X'04'
return code,
and returns control to the
control module.
~or
the adname/rln input format,
the Modify Intense routine
compares the hexadecimal relative line number equivalent to the
DCBTIOT field.
If they do not match, the routine finds the next DEB
and continues to process the DEB chain.
When it finds the proper DCB,
the Modifv Int~nse routine compares the relative line number to the
number of lines in the line qroup (DEBNMEX!) and if the relative line
number is hiqh, the routine builds an errer messaqe
(IED017n
and
returns control to the control module with the X'04' return code.
The
routine then tests the line for CPEN DD DUMMY (DEEUCEAD of zero) and
if the line is CPEN DD DUMMY the routine builds an error messaqe
(IED017I), sets a X'04' return code in reqister 15, and returns to the
control module.

p~cgram

Crganization

359

For the aadress format, the ModifV Intense routine checks each UCB
associated with a DEB for a match in the specified line address.
The
routine searches the DEB Chain until it finds a match.
At this point, no matter which in~ut command format was s~ecified,
the DCB is ready to be processed. The ModifV Intense routine checks
the line DCB fer an open conditien. If the line is not open, the
routine prepares an error messaqe (rED017I), sets a X'04' return code
in reqister 15, and exits to the centrel module. For an open line,
the routine qets the address of the LCB, locates the sense field of
the input block, and converts it to hexadecimal representation usinq
a sense conversion table. The routine next qets the sense count,
converts it to hexadecimal, and determines whether the result exceeds
the maximum allowable limit. If the count is too larqe, the routine
prepares an error messaqe (IED018I), sets a X'04 1 return code in'
reqister 15, and exits to the control module.
When the converted
sense count' is valid, the routine places both it and the converted
sense field inte a sinqle byte and saves them in the sense field of
the Terminal Table entry (TRMSENSE) for a terminal or in the sense
field of the ICB (LCPEBMSK) for a line.
Now the ModifV Intense
routine
sets the checkpoint flaq,
pre~ares
a response message
(IED058I), sets a X'OO' return code in reqsiter 15, and qives control
to the Operator control control module.
External Routines:

None.

Tables/Work Areas; Work areas that contain the fixed portion of each
messaqe and space for insertion of the variable data, AVT, DCB, DEB,
~erminal Table, Termname Table, LeE, Operatcr Control AVT.
Attributes:
Serially
problem proqram mode.

reusable,

refreshable,

enabled,

transient,

Change Interval Type Poutine (Chart CZ)
Module Name:

IEDCCZ

~ntrv Point:
IEDQCZ - loade~ by the Operater Control centrol module
to process MODIFY INTFBVAL SYSTEM/POll commands that have ne further
operands. The command that caused this reutine to be activated is as
follows:

rcontrol chars'{MODI. FY}iaent,INTERVAL={SYSTFMr,datal
}
!
POII,statname,data
Functions: ~his routine ~rocesses operatcr control cemmands
request activation of the system or poll delay interval.

that

The Chanqe Interval Type routine qets the common input block from
the location OPCCKELE in the Operator Centrel AVT, the address of
which is in reqister 1, and checks to determine the type of interval

360

requested in the input ccmmand.
in the common input block.
Qffs~!

+8
+18

Fi~ld

lLgme
OPC'rNME
OPCFLG

!he routine uses the following fields

e l..L12~g r iEti.Q.n
Terminal name for the poll interval
X'80' - system interval
X'40' - ~oll interval
X'20' - a value to be chanqed.
F' i

If the interval is a pell interval, but ne value is specified to
be chanqed, the Chanqe Interval Type routine prepares an error messaqe
(I'EDO 181), sets a X' 04'
return code in register 15, and returns
control to the Operator control centrel module.
If the interval to be
chan qed is the system interval,
the routine places the interval
specified ina response messaqe (IEU047I) and then deterrrines whether
the numeric characters are valid.
If all of the characters are not
valid, the reutine pre~ares an error messaqe (IFD018I), sets a X'04 1
return code in reqister 15, and returns to the control module.
Now the Chanqe Interval Type routine cenverts the valid system
interval value to hexadecimal and deterrrines whether the result is
zero or qreater than the allowable maximum cf 65,535.
If the interval
is either, the routine pre~ares an error messaqe
(IED018I),
sets a
X'04'
return code in reqister 15, and exits to the centrol module.
The routine checks the AVTHI field
in the AVT for zere,
which
indicates that th~ system interval functien is not su~ported.
If the
field is zero, the routine prepares an error messaqe
(IED011I),
sets
a X'04'
return code in reqister 15, and branches back te the control
module.
For a pos1tive field,
the routine places the new system
interval value in the AVTINTLV field of the AVT, sets the checkpoint
bit, prepares a response, messaqe (IED047T), sets a X'OO'
return code
in reqister 15, and exits to the centrol module.
For a poll interval that is to be chanqed, the Change Interval
Type routine serially searches the TermnaITe Table for an entry that
matches the ene specified in the common input block. If no matchinq
entry is found, the routine prepares an errcr messaqe (IED016I),
sets
a X'04'
return code in reqister 15,
and branches to the control
module.
If an entry is found,
the routine places the specified
interval in a response messaqe (IED048I) and then checks to ensure
that each character is a valid numeric.
If the characters are not
valid, the routine prepares an error messaqe (IED018I), sets a return
code of X'04', and returns control to the control medule.
For a valid
pollinq interval, the routine converts the interval to hexadecimal and
aetermines whether it is equal to zero er qreater than 255.
If the
interval is either, the routine prepares an error messaqe (IED018I),
sets a X'04' return code, and qives centrcl to the contrcl module.
Next, the routine uses the OCE associated with the terminal entry
fTBMDESTO) to get the DCE (OCBDCBAD), wbich is tested for o~en status.
If the line is not open, the Change Interval Type routine ~re~ares an
error messaqe (JEDOE1I), sets a X'04' return code in register 15, and
returns contrel te the centrel module.
For an epen line, the routine
uses the DeB te locate an LCB for the line and determines whether the

P~cg~am

Organization

361

line is dial (ICBtIAL switch on in the LCESTAT2 field).
If the line
a dial line, the routine ~re~ares an error messaqe (IED061I),
places a X'04' return code in reqister 15, and exits to the control
module.
For a nonswitched line, the routine places the pollinq
interval in the DCE (DCBINTLV), sets the checkpeint 'bit,
prepares a
response messaqe
(IED048I), sets a X'04' return code in register 15,
and returns te the contrel module.
i~

If the system interval is to be activated, the Change Interval
routine checks the AVTHI field in the AVT, and if it is zero,
p~epares an error messaqe (IED011I), sets a
X'04' return code,
and
branches to the control module. If the interval value in the AVTINTLV
field is zero, the routine performs the same error exit functions.

Type

If the AV~DLAYN bit in the AVTBIT1
field is en, the routine
prepares a res~onse message (IED045I), sets a X'OO' return code, turns
on the checkpeint bit, and returns control to the contrel module.
When both of these fields are net zero, tbe routine builds a crosspartition tpost parameter list to activate the System Delay subtask
(TEDOHI)
and the Interval Contrcl module, and issues an AQCTL m~cro
instruction (SVC 102) via the AQC~I SVC 102 routin~ (IGC102)
to post
the interval ~rocessor.
Then the routine prepares a response message
(IED093Il, sets the checkpoint bit, places a
X'OO'
return code in
reqister 15,
and returns control to the Operator Control control
module.
~xternal Routine:
system interval.

IGC102 -

AQCTL SVC 102 reutine -

to

activate

the

Tables/Work Areas:
Work areas that contain the fixed portion of each
response and s~ace for insertion cf variable data, AVT, Operator
Control AVT.
Attribute ':
SeriallY
problem prcqram mcde.

reusable,

MCP Closedown Processing Routine

re~reshable,

enabled,

(Chart CO)

~his routine is discussed in the Termination Routines
the Proqram Orqanizaticn part of this publication.

ICHNG Processinq Routine
Module Name:

transient,

section

of

(Chart C1)

IEDeC1

Entry Point:
TEDOC1
activated by the Operator Control control
module (IFDOCA) when an ICHNG macrc has been issued in an ap~lication
proqram,
the stup line function has been completed, and the LeE has
heen tposted tc the Operator Control QCE by the stop Line I/O subtask
(IEDOHK).

362

Functions: This module chanqes a specified invitation li~t entry when
an 1CHNG macro is issued in an applicatien ~roqram.
When an ICHNG
macro is
issued
in
an
application
proqram,
the
Operator
Control/~pplicaticn
Proqram Interface routine
(IEDQET)
builds and
tposts a CIB te the Operator Control QCE..
This causes the TCAM
Dispatcher to relinquish control to the Operator Control control
module~ which receqnizes the eIB and hranches to the stop Line routine
(IEDQCV).
The stop Line routine t~osts a request to stop the line
activity on the associated line to the stc~ Line I/O subtask (IEDQHK).
The stop line I/O subtask performs its functions to step the line
activity anc. once this is done,
tposts the LCE to the operator
control queue.
The stop Line routine reqains centrol and then
branches back tc the Operator contrel centrc! module, which checks the
common input block to determine which routine is to receive control.
If the OPCVBCt2 field
is equal to 1, the Cperator Contrel control
module qives ceEtrol to the ICHNG Processinq routine.
The ICHNG Processinq routine qets the address of the tCE from the
LCB
(LCBDCB~r)
and then finds the invitatien list address from them
both.
The routine uses the common input block, located at OPCCKELE in
the Operator Centrol AVT, the address of which is in reqister 1, to
determine the type of ICHNG function to te performed. If the command
is ICHNG ~OVE, the routine calculates invitation list size and moves
the data at the move work area to overlay t~e list.
Then the routine
removes the LCE from the operator control queue and tposts the LCB to
itself in erder to start the line via the AQCTL SVC 102 routine
(IGC102).
The routine sets a X'OO' return code in reqister 15 and
returns centrel te the O~erator centrel centrol module.
If the command is ICHNG DEACT and all invitation list entries are
already inactive, the ICHNG Processinq routine dequeues the LCB and
starts line activity by tpostinq the LCB to itself via the AQCTL SVC
102 routine. Fer active entries, the reutine sets up a count of the
number of active invitation list entries. The routine swaps each
active entry frem the active to the inactive side of the invitation
list and decrements the active count unti1 it is zero.
When all
entries are inadtive, the routine sets the number of active entries to
zero, deaueues the ICB, and starts the line activity ty tpostinq the
LCB to itself via the AQCTL SVC 102 routine.
If the cemmand is ICHNG ACT and all entries are already active,
the TCHNG Processinq routine dequeues the LCB and starts line activity
by usinq the ACCTL SVC 102 routine as dcne above.
Fer inactive
entri~s, the routine sets up the count ef the number of entries, swaps
each entry frem the inactive to the active side of the invitation
list, and then swaps each one with other active entries until each is
in its correct place in the list. The routine decrements the inactive
count until it is zero.
When all entries have been made active, the
routine sets the number of active entries te equal" the total entry
count.
The reutine dequeues the LCB, t~osts it to itself, and starts
the line activity via the AOCTL SVC 102 routine.
External Routine:
IGC1C2 - AOC~L SVC 102 routine - to tpost
to itself in order to start line activity.

P~ogram

the

LCE

Organization

363

~ables/Work

Areas:

DCE, LCE, AVT, Operator Control AV!.

Attributes:
Serially
problem proqram mede.

reusable,

refreshable,

enabled,

transient,

On-Line Test Interface Poutine {Chart C21
Module Name:

IEDOC2

Entry Point:
IFtOC2 - loaded ty the Operater Contrel control module
(lEDOell to orocess MODIFY OLT commands.
The command that caused this
routine to be activated is as follews:
fcontrol charactersl {MODI~Y}ident,OLT=data.

~unctions:

1his module processes operator control commands that
request Teleprocessinq On-Line Test ~xecutive (!OTE) processinq.
The
On-Line ~est Interface routine prepares a buffer for the TOTE task and
uses the AOCTL SVC 102 routine to tpost the buffer to the TOTE QCB and
place it on the ready queue in the MCP.

If,
when the On-Line Test Interface routine qains centrol, the
task is net active in the system, the routine re1ects the command
by returninq to the control module with a X'04' return code and with
the address ef an error messaqe.
When the TOTE task is active, the
On-Line Test Interface routine examines the message
(the input
command)
to determine whether it is already canceled by havinq the
operator control characters repeated in the message buffer.
If this
is the case, the routine returns to the control module with a X'08'
retu~n code in reqister 15.
When TOTE is active and the command is
not canceled,
this interface routine continues by queuinq the buffer
for processinq by the TO!! task.
~OTE

The On-Line Test Interface routine places X'OC' in the key field
of the buffer ~refix, places the address of the TOTE QCE in the buffer
prefix,
and sets the scan pointer to refer to "OIT=" in the buffer if
the command is from a terminal.
Otherwise, the command is from the
system console, and this routine must obtain a buffer in which to pass
the operator centrol command to the TOTE task.
When the operator control commana is from the system console, the
On-tine Test Interface routine first builds an EBB in the operator
control work area and then uses the AQCTl SVC 102 routine to tpost the
EPB to the Buffer Request QCE in the MCP.
Th~ ERB contains the
address of the OCE for this interface routine, so that when the buffer
request is satisfied, the buffer units are returned to this operator
control routine.
The On-Line Test Interface routine calculates the
number of buffer units that are necessary bv comparinq the lenqth of
the data portien cf the operator ccntrol command with the unit lenqth
in AVTKEYLE.
This number is placed in the ERE unit count field.

364

since operator control has a lower priority than the MCP, the ERE
with its buffer is on the element chain cf the O~erator Control QCB
when svc 102 returns control after the tpost.
~he
interface routine
locates the appropriate element on the element chain of the Operator
control aCB by scanning the chain fer an element that has a X'E4'
priority. If, however, the interface routine does not find an element
with X'E4' in its priority field, there was not a tuffer available in
the MCP.
In this case, the interface routine issues a WAIT on the
Operator Contrel FCB in the AVT.
When the ECB is posted complete, the
On-Line Test routine once aqain scans the C~erator Control QCE element
chain for an element with a
X'E4' priority.
This scan-WAIT loop
continues until the element is present on the chain. When the On-Line
Test Interface routine finds a buffer, the routine puts the operand
portion of th€· operator control command in the buffer. Then the
routine puts X'10' in the. tuffer prefix key field and sets the scan
pointer to point to "OLT=".
After the On-Line ~est Interface routine has ~repared the buffer
for TOTE, the routine uses the AOCTL SVC 102 routine to tpost the
buffer to the TOTE OCB.
The interface routine then sets the
successful return code X'14' in reqister 15 and returns to the control
module.
~xternal

Routines!

•

IGC102 - ACCTL SVC 102 routine - to
queue in th~ Mtp.

t~ost

elements

•

as Wait routine (SVC 1) - to wait for the
be posted com~lete.

O~erator

Tables/Work
AVT.

Areas:

AVT,

CIB,

Attributes:

Reentrant, transient.

to

the

ready

Control ECB

to

tuffer prefix, LCE, Cperater Control

COPy Invitation List status Foutine (Chart C3)
Module Name:

I!DCC3

Entrv Point:
I!DQC3 - loaded by the Operatcr Control centrol module
to pr.ocess .DISPIAY LIST commands.
The command that caused this
routine to be activated is as follews:
fcontrol charsl {DISPLAY}TP,LIST,{ddname,rln}
D
address

-

Functions:
This routine processes operatcr control cemmands that
request display of the status field cf an invitatien list for a
specified line.

Erogram Crganization

365

The Copy Invitation List status routine first gets the common
input block from the CPCCKELE location in the Operator Control AVT,
the address of which is in reqister 1.
Now the routine determines
from the common input block the line format, either the DDNAME/RLN or
hardware address format," that is specified in the input command.
If
DDNAME/RLN is specified, the routine determines whether the relative
line is specified ALL, and if so, re;ects the ccmmand because status
information for a sinqle line only may be displayed.
The routine
prepares an error messaqe (IED018I), sets a X'04'
return code in
reqister 15.
and returns control to the Operator control control
.odule.
Otherwise, the routine converts the relative line number to
hexadecimal and determines whether the result is zero or greater than
255.
For either, the routine re;ects the input command,
prepares an
error messaqe (IED018I), sets a X'04' return code in register 15, and
exits to the control module.
If the relative line number is valid,
the Copy Invitation List
Status routine qets the TeE address from the AVT (AVTTCE) and serially
searches the TICT
(at TCE +12)
for a ddname that matches the one
specified on the input command.
If no matching entry is found,
the
routine prepares an error message (IED01?I), sets~a X'04' return code,
and rranches to the control module.
When a matching entry is found,
the routine saves the entry offset into the TrOT.
~or either tDNAME/RLN or address format, the Copy Invitation
List
status routine qets the address of the beqinninq of the DEE chain from
the TCE (TCB+8) and checks each associated rCE (DFEBCFAr) to determine
whether it is for a TCAM line (DSO~G is X'40').
If the rcutine does
not find an associated DCB in the DEB chain, the routine pre~ares an
error messaae (IED017I), sets a X'04' return code, and returns control
to the control module.

For the rDNAME/RLN command format, once the DCE has been located,
the Copy Invitation List status routine com~ares the DCE offset into
the TIOT
(DCBTIOT)
to the offset calculated from the TCE mentioned
above, and if the offsets do not match, the routine locates the next
DEB and continues to search as lust described.
When the correct DCB
is found. the routine checks the DCE for an OFEN DD DUMMY condition.
If this condition has occurred, the routine prepares an error message
(TED01?I), sets a return code of X'04' in reqister 15, and exits to
the control module.
For the address forrrat, the Copy Invitation list Status routine
tests each DeE associated with the DBB to find a match for the one
specified in the input command. The routine searches the DEB chain
until a matchinq entry is found.
At this point, now that the rCB has been found,
the Copy
Invitation List Status routine com~ares the relative line number, the
one provided in the DDNAME/FLN format or the one calculated for the
address format,
to the number of lines in the line group. If the
relative line nUDher is qreater, the routine prepares an error message
(IED01?T), places a X'04' return code in reqister 15, and branches to
the control module.
Next the routine determines whether the line is

366

open, and if not, prepares the same error messaqe and return code and
exits to the centrol module.
If the line is open, the routine qets
address of the invitation list for the line from the DCB
(DCBINVLI),
converts the status byte values to printable characters and places
them in a response mess~qe (IED059I).
The routine now sets a X'OO'
return code in reqister 15 and returns contrel to the Operator Control
control module.

~xternal

Routines:

Nene.

~ables/Work
Areas:
Work areas that contain the fixed portion of each
response messaqe and space for insertion of variable data!
AVT, DEB,
DCB. Operator Centrol AV~.

Attributes:
Serially
problem proqram mede.

reusable,

refreshable,

enabled,

transient,

0perator Contrel iork Area CSECT (Ne Flowchart)
Module Name:

I~tQC5

Entrv Point:

Net applicable.

~unctions:
The O~erator Control work area is a non-executable work
area used by the Operator Control centrol module to prepare lonq
messaqes and ty the ModifV Options routine
(IEDQCF), the Copy Held
Terminals routine
(IEDOCKl,
and the Copy Operator Control Terminal
routine (IEDOeM) as a conversion area fer the MODIFY and DISPLAY
option functions.

Bxternal Foutines:

None.

mables/Work Areas:

None.

Attributes:
mode.

Non-executable,

refreshable"transient,

~roblem

proqram

DEBUG Service Aid Router (Chart C6)
Module Name:

I]DOC6

!ntrv Point:
I!tOC6 activated hV the Operater Control control
module
(IGC0110D)
to process operator centrol commands that request
loadinq or deletinq a service a~d.
The cemmand that caused this
routine +0 be activated is as follows:
rcontrol chars' {MOD~FY}ident,DEBUG=data

Program Organization

367

This module processes operator control command~ that
request the lcadinq or deletinq ef service aid medules.
If the
operator contrel cemmand is valid r the DEEUG Service Aid Router
returns a respense messaqe after executinq the service aid routine
that either was leaded or is to be deleted.'

~unctions:

~he
DEBUG Service Aid Router deterwines whether the COMWRITE
routine is present in the svste~.
If COMWRITE is not in the system or
i~ a restart is in ~roqressr the Reuter qenerates a messaqe
(IED107I)
and returns centrol to the callinqroutine. If COMWRITE is in the
system ana a restart is not in proqress r the Router passes control to
the scan functien (IEDOCA02) of the Resident Operatcr Centrel module
to qet the first tEEUG operand.
If the operand is not a load or a
delete requestr
the Reuter qenerates a messaqe (IED107I) and returns
to the callinq routine.
If the operand is a load or a delete requestr
the ~outer aqain uses the scan functicn cf the Resident Operator
control module r this time to ebtain the secend DEBUG operand.
If this
operand is a valid name r the Router executes the requested function;
otherwise the Reuter qenerates a messaqe (IED107I) and returns to the
callinq routine.

The DEBUG Service Aid Router finds the address of the service aid
routine by issuinq a BLDL macro.
!his routine uses the resultinq BLDL
list to determine whether the requested service aid routine exists in
eith~r
SYS1.LINKIIB or JOB/STEPLIB.
If the service aid routine does
not exist r the Reuter prepares the IED1021 error messaqe and returns
to its callinq routine.
When the eperator control
command requests that a service aid
routine he loaded r the DEBUG Service Aid Router checks the load list
to determine the current status of the service aid routine; that iS r
whether'the routine is active or inactive in the system.
If the
routine is al~eady active, the DEBUG Service Aid Reuter returns
control to the callinq routine with a res~cnse messaqe nED103I).
If
the service aid routine is not currently active r the tEEUG Service Aid
Pouter issues a conditional
GETMAIN r
rased on the medule lenqth
specified in the BLDL list, to determine whether there is enouqh main
storaqe availacle to load the routine.
If main storaqe is not
available r the ~outer tests to determine how much more storaqe is
needed to loaa the service aid and pre~ares a messaqe to inform the
operator of the problem. If main storaqe is available,
the Router
loads and qives contrel te the service aid routine.
Upon return from
the service ~id routine, the DEBUG Service Aid Fouter checks the
return code.
If the return code indicates successful initialization
of the service aid r the Fouter returns control to the callinq routine
with an appro~riate res~onse messaqe (IE!099I).
If the return code
indicates an unsuccessful load, the DEBUG Service Aid Router prepares
a messaqe
(IEt1 CSI or IED106I), deletes tbe service aid, and passes
control to the callinq routine.
When the
service aid

368

e~erator

routine,

centrel
aqain

command requests the deletien of a
the DEBUG Service Aid ~outer checks the

load list for the status of the service aid.
If that routine is
active in the system, the DEBUG Service Aid Router passes centrol to
the service aid routine.
Upon return, the DFBUG Service Aid Router
checks the return code;
if the code is qood, the Bouter prepares a
deactivation messaqe (IED100I), deletes the service aid routine,
and
passes control to the callinq routine.
If the load list shows that
the service aid routine is not active, the DEBUG Service Aid Router
prepares a messaqe
(IED104I)
and returns control to the callinq
routine.
External Routines:
•

IEDQCA - Resident Operator Control module - the Operater Control
Scan subroutine
(IEDOCA02), to serially search the in~ut command
for the service aid name.

•

FE Service ~id routine - to cause activation
the service aid functicns.

or

deactivation

of

Tables/Work Areas: AVT, Operator Control AVT, work areas that contain
the fixed portion of each response messaqe and space for insertion of
the variatle data.
Attributes:

CHECKPOINT

Problem proqram mode.

ROU~INES

Checkpoint EXEcutor (Chart NFl
Module Name:

IEDCNF

Entry Point: I~DQNF - qains control when the Checkpoint task
activated, or when a checkpoint routine com~letes its activity.

is

Functions:
This routine determines whether there is anything that
needs to be dcne by the Checkpoint task and which module should be
loaded to perform the required function, if any.
If the disk lOB is marked com~lete, the ChecKpoint Executor loads
and qives control to the Check~eint Notification and Dis~osition
routin~.
If no I/O is in proqress and there is a record on the
Checkpoint Disk I/O queue, the Checkpcint Executor loads and qives
control to the ChecKPoint Disk I/C routine.
If there is a
request element on the Checkpoint
Checkpoint Executor loads and qives centrel to the routine
the appropriate checKpoint record.

QCB,
the
to build

If there is no checkpoint functicn tc be performed, this module
waits on the FCE in its OCE and its I/O ECB, unless the clcsedown

program

O~qanization

369

completion bit in the environment check~cint request element is on.
In this case, the Checkpoint Executor returns to·OS, thus terminating
the attached Check~oint task.
If the Cbeckpoint Executor is activated ty the return of another
checkpoint routine,
it can perform the additional function
of
immediately activatinq a routine as requested by the returninq
routine.
If the returninq routine tranches to the address in reqister
14, the Checkpoint Executor deletes the returninq routine
and
immediately loads the one with the offset in reqister 15. If the
returninq routine branches to the address in reqister 14+4,
tbe
Checkpoint Bxecutor deletes the returninq module and immediately
beqins performinq its reqular fUnctions.
If the returninq routine
branch~s
to the address in reqister 14+8, the Checkpoint Executor
deletes the returnina module and waits for the I/O to complete before
resuminq activity.
~xternal

Routines:

•

I~DQNG - Jncident Checkpoint for MH routine - to build an incident
checkpoint record when a CHECKPT macro is issued in an MH.

•

IEDONH - Incident Checkpoint fer TCHNG rcutine
incident checkpoint record for a TCHNG macro.

•

IEDONJ - Incicent Checkpoint for Operatcr Control routine
to
build an incident checkpoint record for an operator control
command.

•

IEDONK - Environment Checkpoint routine checkpoint record.

•

TEDQNM - Euild CKREQ risk
checkpoint record.

•

IEDONO - Checkpoint Queue Manaqer - to manaqe the
queue.

•

IEDQNP - Checkpoint Disk I/O routine - to write checkpoint records
on oisk.

•

IFDQNO - Checkpcint Notificatien and risposition routine
issue FREFM~IN macros and notify completicn of a checkpcint.

•

IEDQNR - No Available Core routine main storaqe situation.

•

TEDONS - Nc Incident Records
record overflew situation.

•

as wait routine (SVC 1)
complete.

•

as Load routine (SVC 8) - to load a module into main storage

370

Recor~

routine
to

to build an
to

routine

to

wait

handle
tc

for

to

an

a

CKREQ

Checkpcint

an

an

environment

build

I/O

to

insufficient

handle
ECB

build

an
to

incident
be

posted

•

as

Delete routine

Tables/Work Areas:
Attributes:

Environment
~odule

Name:

(SVC 9)

- to remove a module from main

storage.

CVT, AVT, checkpoint work area.

Reentrant, resident.

Check~oint

Foutine (Chart NKl

I!DCNK

~ntry

Point:
IEDONK - loaded by the Checkpoint Executor to build an
environment check~cint record.

~unctions:

This module builds environment checkpoint reccrd segments
disk.
The Environment Checkpoint rcutine examines the current
BXCP field (CKPFXCP) in the check~oint work area to determine whether
to build the first seqment or a subsequent seqment of an environment
checkpoint.
If the key field of the record pointed to by CKPEXCP
contains the value X'20',
a subsequent seqment is to be built.
In
this case, the Environment Checkpoint routine ~icks up its register
values from CKPSAVE1
and builes the next checkpcint seqment in the
GETMAIN area pointed to by CKPEXCP.
Otherwise, the Environment
Checkpoint rcutine issues a GE!MAIN
macrc for an area in which to
build a new seqment and places the address of the area in the "last
record built" field
(CKPLDRB)
in the checkt:oint work area.
For a
first (or only) seqment, this routine also turns off all request bits
and turns on the "checkpoint in proqress" flag in the Environment
Checkpoint Bequest element (AVTCKELEl.
~or

Before movinq a qroup of data from the MCP tables into a disk
record, the Envircnment Checkpoint routine determines whether there is
room for all the data in this seqment. If not, the routine puts X'20'
in the key field, saves reqisters in CKPSAVE1, moves as much data as
possible into the seqment, and returns to tt.e Checkpoint Executor.
If
the routine r~aches the end of the data in the MCP tables before
fillinq the reccrd seqment, it places X'1C' in the key field and
returns to the Checkpoint Executor without saving reqisters.
If the Fnvironment Checkpoint routine has ;ust tuilt the first (or
only)
seqment of an environment ch~ck~cint,
it returns to the
Checkpoint Executor with the offset of the Checkpoint Queue Manaqer in
reqister 15.
If the routine has ;ust built a subsequent seqment, it
returns to the Checkpoint Executor with the offset cf the Checkpoint
Disk I/O routine in reqister 15.
This is because only the first
seqment of an environment checkpoint is placed on the Check~oint Disk
I/O queue.
The only error condition that applies to this routine occurs if
the GETMAIN request for space in which to build a seqment cannot be
satisfied.
In this case, the"Envircnment Checkpoint routine returns
to the Checkpoint Executor with the offset of the No Available Core
routine in reqister 15.

Program Organization

371

External Routines:

None.

Tables/Work Areas: AVT, checkpoint work area, Option Table, Termname
Table, Terminal 1able, 0CE, invitation list.
Attributes:

Reentrant, transient.

Checkpoint Queue Manaqer (Chart NC)
Module Name:

IEDCNO

Bntry Point: rEDONO - loaded by tte
checkpoint r/c Queue.

Check~cint

Executor to manage the

functions: This routine puts disk records cn the checkpoint I/O queue
and updates the last request element for which a disk record was
built. When it enqueues an envircnment reccrd segment, the Checkpoint
Oueue Manaaer dequeues all incident records and issues a FREEMAIN for
each. one.
As a result, they are not written on the disk.
An
"incident overflow" bit in the incident request element is turned on
to indicate that the request will be satisfied when the
new
environment record(s) is written.
The Checkpoint Oueue Manaqer returns to the
the reqister 14+4 entry ~cint.
External Routines:

None.

Tables/Work Areas:

AVT, checkpoint work area.

Attributes:

Check~oint

Executor at

Reentrant, transient.

Checkpoint Disk I/O Routine (Chart NPl
Module

~ame:

IEDCNP

Point:
IEDONP
loaded
checkpoint reccrds on disk.

~ntry

by the

Check~oint

Executor to write

1"unctions: This routine locates the next disk record to be written,
determines the proper TTR for the record, and issues an EXCP to write
the record.
If there is a record in the current EXCl? field ·CCKPEXCP)
of the
checkpoint
werk area, it is the reccrd written and it is a
continuation of a checkpoint that requires ~ore than cne segment.
If
CKPEXCP is equal to zerc, the first record cn the Checkpoint Disk 1/0
queue (CKPIOOF) is the one 1ust written.
The Check~oint Disk I/O
routine removes this record from the Ch€ck~oint Disk I/O queue and
places it in CKFEXCP. If the record is an environment or incident

372

record,
the routine uses the TiME macro to put the date and time into
the record.
If the record is an environment record,
this routine
moves the TTR of the last incident record used from the centrel record
to the environment record.
The
methcd
used to determine the correct TTR depends on the type
of record to be written:
•

First seqment of an environment check~oint the control record
has the ~~F of all first seqrnents and an index to the latest one
used~
This routine picks u~ the TTR that sequentially follows the
latest one, and chanqes the index tc point to the new first
seqment.

•

Any environment seqment other than the first - the checkpcint work
area contains the TTF of the last seqment written.
This module
determines the TTR of the next sequential reccrd on disk.

•

Incident record - the checkpoint work area contains the TTB of the
last incident record written.
This module determines the TTF of
the next seQuential record on disk.

•

CKREO record - the check~oint work area contains a CKFEQ-TTB table
that associates a terminal name offset with a particular TTR.
This module uses the terminal name offset in the disk record to
locate the proper TTF in the tatle.

If there is no TTF available fer envircnment seqments or CKPEQ
records because all the record~ have disk I/O errors, this routine
issues an error messaqe via WTO.
The Check~eint Disk I/O routine returns to the Checkpoint Executor
at the reqister 14+4 entry point.
txternal Routine:
IECPCNVT - an OS routine tc
~TB to an absolute disk address.
Tables/Work
DEB, CVT.

Areas:

AVT,

check~cint

cenvert

the

relative

work area, Termname Table, DCB,

Attributes: Reentrant, transient.

Checkpoint Notification and Disposition Routine (Chart NQ)
Module Name:

IEDCNO

Entrv Point:
IEDONO - loaded by the Checkpcint Executcr
~~~~MAIN macros and to notify completion of a checkpoint.

to

issue

Functions:
This routine qets control after a disk write operation
completes or after a checkpoint could not te satisfied.
It removes
the checkpoint request element(sl from the QCB chain and t~osts the

pro9ram Organization

373

element (if from· an MH macro)
or posts an ECB
(if from Operator
Control or an application proqram).
Tr.e request element is not
removed if the request has not been completely satisfied er if a disk
error occurred durinq the write operation.
If the last seqment of an environment checkpoint was just written
with· an incident overflew conditien
(indicated in the environment
request element), several incident request elements may be removed
from the OCB chain.
The "incident overflew" bit in each incident
request element
(bit 0 of the key) and in the environment request
element is turned off.
If the last seqment of a checkpoint was just written, this routine
issues a FREEMAIN macro for the record.

Tf the last seqment ef an environment checkpoint was just written,
this routine turns on a bit in each P.CB (bit 2 of PCBOFIG) to indicate
to the applicatien ~roqram(s)
that the checkpoint was taken,
and
tposts an element to the ready queue.
If the request was from an
MCPCLOS~ macro, the
element is the clesedown completion elem~nt;
otherwise,
it is the environment check~cint reguest element to be
placed on the time delay queue.
If this routine recoqnizes a record with a disk error, it issues
an error messaqe via WTO.
If the record with the disk error is a
CKREO or environment record, the routine flags the record
in the
checkpoint work area, and branches to the address in reqister 14 with
the offset of the Checkpoint Disk I/O routine in register 15. In this
way the same record can te written at anether location on the disk.
If a check~oint request was not completely satisfied, this routine
nlaces the offset for the module that builds the particular checkpo~nt
in proqress in reqister 15 and returns to the Checkpoint Executor at
the reqister 14 entry point.
If the checkpcint request was com~letely satisfied;
returns to the address in reqister 14+4.

this

routine

Bxternal Routine:
IGC102 - AQCTL SVC 102 routine - to tpost elements
to tbe ready queue and tc post ECBs for the applicaticn proqrams.
Tables/Work Areas:
Attributes:

AVT, checkpoint work area.

Feentrant, transient.

Checkpoint Disk Fnd Appendaqe

~hart

RAl

Module Name:
IGG019RA - activated by lOS at the end of
disk operation.

374

a

checkpoint

runctions:
This routine writes the check~oint contrel reccrd after
the last seqment of an environment checkpeint re~ord is written on the
oisk.
When this mcdule writes a control record,
it branches to the
address in reqister 14+8. It writes the control reccrd usinq retry.
When this mcdule is not writinq a ccntrcl record, it
the address in reqister 14.
External

~outines:

Tables/Work Areas:
Attributes:

to

None.
DEE, checkpoint work area.

Reentrant, resident, superviscr mode.

Build Incident Fecord for MH Routine
Module Name:

bra~ches

(Chart NG)

IEDCNG

~ntry
~oint:
TIDONG - loaded by the Checkpoint Executor to write an
incident 'checkpcint recor~ for a CHECKPT macro in an MH.

functions:
~his routine builds
an incident disk record when
request element on the Checkpoint QCB is an LCE from an ME macro.

the

This routine returns to the address in reqister 14 with the offset
for either the Checkpcint Oueue Manaqer, the No Incident Records
routine, ,or the Ne Available Core routine in reqister15.
External Routine:
IEDQTNT - Termname
~erminal ~arle entry. address.
~ables/Work

Areas:
AVT,
checkpcint
Terminal Table, Cption Table.
Attributes:

Tarle
work

code
area,

obtain

!ermname

the

Table,

Reentrant, transient.

Application Proqram/ChecKpoint Interface Routine
Module Name:

to

(Chart NBl

IIDCNB

Entrv Points:
!his routine is called wher. an application proqram
issues a TeAM macro that chanqes the TCAM environment. The entry
point to the routine depends on which macrc causes tbe routine to be
activated:
•

IEDQNE - CKREC macro.

Program Organization

315

•

IEDQNB02 - 1.CHNG macro.

•

IFDONE05 - CPEN or CLOSE macro.

wunctions: The purpose of this routine is to build a checkpoint
request element and tpost it to the MCP ready queue when an
application prcqram issues a ~CAM macrc th~t changes the
MCP
environment.
After tpostinq the request element, the Application
~roqram/Checkpoint Interface routine issues a WAIT
command to allow
the Checkpoint task to qain centrol tc process the element. The
request element built bv this routine indicates which macro issued the
request.
When an OPEN cr CLOSE macro is issued in an application proqram,
the
Application
Proqram/Checkpcint Interface routine determines
whether an entry in the CKREQ-TTR ~able is involved. If there is an
entry involved, this routine inverts the status of the CKREQ-TTB
entry. For example, if a Destination QCB that can ce checkpointed as
the result of a CKRFO macro is opened, its entry in the CKREQ-TTR
"['able is made active; if closed, its entry' is made inactive.
{Inactive entries can be used for other Destination QCEs that are
opened later.' If SYNC=YES is specified for the Destination QCE.
(TFROCESS macrc), the QCB can be checkpcinted; therefcre, it is qiven
an entry in the CKREO-T~F Table.
~he Application Proqram/Check~cint Interface
routine builds its
checkpoint request element in the Process Centrol Elock (PCB). The
formats of this element are indicated below accordinq to entry point:

•

IEDQNE - request by a CKBFQ macro.

Offset

o

+1
Key

X 160 1

Address of Checkpoint aCB

Priority

Link Address

+4

+8
Address of Appl ication
Program ECB
+12

376

Address of Application
Program DEB chain

•

IEDQNB02 - request by a

~CHNG

macro

Offset

o

Key

Address of Checkpoint QCB

X'10'
+4
Priority

Link Address

+8

Address of Appl ication
Program ECB

+12

,

Offset to Termname
Table Entry'

•

Reserved

IEDONB05 - reqUest by OPEN or CLOSE macrc - inverts tbe first
of the CKREC-!TR Table entry:

bit

OffsetOBI
r=:"'I"~..--.,.---------------,
BI .
J
I 1 I I

T: TI

+4

0

Unused·

11

I
I
I

TTR of Disk Record
,

Offset to Termname
Table Entry

,.

Reserved

Byte 0, bit 0: ON- Entry is Active
OFF- Entry is Inactive
Byte 0, bit 1: ON- Entry has a Disk Error

~xterrial

Routines:

•

IEDOTNT - !ermname Tarle code - to determine
address.

the

terminal

entry

•

IGC102 - ACCTI SVC 102 routine - to t~cst the checkpcint request
element tc the MCP reaay queue and to invert the status bit in the
CKPBO-TTR Table.

~ables/Work

Areas:
AVT, checkpoint work area, rCE, PCB, ap~lication
proqram DEE, LCE, access method wcrk area, Termname Table, Terminal
Table.
Attributes:

Reentrant, transient.

Build Incident Record for TCHNG Routine (Chart NH)
Module Name:

IEDCNH

F.ntry Point:
IEDONH
called by the Checkpoint ~xecutcr when the
request element on the Checkpcint QCB is frcm a TCHNG macro in an
application prcqram.

Program Organization

377

Functions:
This routine builds an incident check~oint disk record
when the request element on the Checkpoint QCE is from a TCHNG macro
in an applicaticn prcqram.
The format of the checkpcint request
element is shown under IEDONB02 in the Application Proqram/Checkpoint
Interface routine discussion.
This routine builds the incident checkpcint record in a GETMAIN
area and stores its address in the CK~LDRE field of the checkpoint
work area.
The Build Incident Record for TCHNG routine returns the address in
reqister 14 with the offset for the Checkpoint Queue Manager, the No
Incident Records routine, or the No Available Core routine in reqister
15.
External Routine:
IFDQTNT - 1ermname Tatle code Terminal Tatle entry address.
Tables/Work
Areas:
AVT,
Terminal Tatle, O~tion ~able.
Attributes:

check~cint

work

area,

to

determine
Termname

the

Table,

Reentrant, transient.

Incident Checkpoint for Cperator Control Eoutine (Chart NJ)
Module Name:

IEDCNJ

Entry Point:
IEtCNJ - called by the
request elemert ~n the Checkpoint
command.

Checkpcint Executor when the
QCE is from an operator control

~unctions:

This routine builds an incident check~cint
disk record
when the request element on the Check~oint OCE is from an operator
control command.
The request element is ~ointed to by reqister 3.
The AVT contains the address of the operator control work area, which
contains the e~erater centrel command block.
When the eperator centrol command is fer stop or start Line,
the
routine ensures that the DDNAME is present in the data and converts
all the unit addresses to DDNAME and relative line number.
This routine tuilds the incident checkpcint record in a GETMAIN
area and stor~s its address in the CKPIDRB field of the checkpoint
work area.
The record is a
form of the operator centrel c9mmand
itself,
rather than the tables that are chanqed as a result of the
command.

378

The Incident Checkpoint for Operator Centrol routine exits to the
address in reqister 14, with the offset for the Check~oint Queue
Manaqer, the No Incident Records routine, OI the No Available Core
routine in reqister 15.
Rxternal Foutines:

None.

Tables/Work
area.

Areas:

Checkpoint work area, AVT, Operator Centrol work

Attributes:

Reentrant, transient.

Build CKPEO Disk Record Routine (Chart NM)
"odule Name:

IEtCNM

~ntrv Point:
IEtONM - leaded by the
request element on the Checkpoint
application prcqram.

Checkpeint Executor when the
QCE is from a CRHEQ macro in an

Punction: This reutine builds a CKREQ check~oint disk record for each
of the opened Destination OCBs in the MCP that are associated with the
application preqram issuinq the CKREQ macro.
The format of the
request
element
is
shown
under
IEDCNB
in the Application
Proqram/Checkpeint Interface routine discussion.
This routine builds the CKREQ r~cord in a GFTMAIN area.
If the
record is the first one built fer a paIticular request, the routine
places its address in the CKPLDRB field in the checkpcint work area;
otherwise, the address is stored in the CKPEXCP field in the
checkpoint work area. One CKREO macro may result in more than one
CKBEO record, but each entry into this Icutine results in only one
record.
The Build CKREQ Disk Record exits te the address in reqister 14,
with the effset for the Checkpoint Queue ~anaqer or the Ne Available
Core routine in reqister 15.
External Routine: TEDOTNT - Termname Tatle code Terminal Tarle Entry address.

to

determine

the

Tables/Work Areas:
AVT, checkpoint work area, DEB, Termname Table,
Terminal Table, QCE, Option Table.
Attributes:

Feentrant, transient.

Checkpoint - No Available Core Boutine (Chart NFl

Prcgram Organization

379

Module Name:

IEDCNR

~ntrv Point:
IEDCNR loaded by the ChEckpeint EXEcuter when a
conditional GETMAIN for an area in which to build a checkpoint record
cannot be satisfied.

~unctions:

This routine handles the situation in which a conditional
GETMAIN for a checkpoint record cannot be satisfied, The No Available
Core routine first checks for other GBTMAIN records on the Checkpoint
Disk I/O queue.
If there are GETMAIN records there,
this routine
exits to the Checkpoint ~xecutor (reqister 14+8) to allow time for
these records tc te precessed and freed.
If there are no outstandinq GE7MAIN records, the No Available Core
routine converts the lenqth of the GETMAIN request,
ruilds an error
messaqe to re issued via WTO, and indicates that no disk record was
built for this request element.
It then exits to the address in
reqister 14 with the offset fer the Nctification and risposition
routine in reqister 15.
~xternal

Routines:

Tables/Work Areas:

None.
AV!, checkpoint work area, Termname Table.

Attributes:

Reentrant, transient.

Checkpoint -

No Incident Records Routine

Module Name:

(Ctart NS)

IEDeNS

Entrv Points:
IEtCNS - loaded by the Check~oint Executor when all the
inci~ent disk reccrds on the check~cint data set have been used.
~unctions:

This routine causes an environment checkpcint to be taken
when all the incident disk records on the check~cint data set have
been usen.

The No Incident Records routine removes the envirenment checkpoint
request element from its queue (either the time delay queue or the
Checkpoint OCE).
It then examines the Checkpoint QCE to locate the
last reques~ element for which a disk record was built and inserts the
environment check~cint request element inte the next ~csition in the
element chain of the Checkpoint QCE.
~his causes the environment
request elAment te be the next one precessed, so the incident records
on disk can be overlaid.
The No Incident Records routine exits to the Checkpoint Executor
(the address in reqister 14 +4).

380

External Routines:
•

1EDQHG03
Time Delay routine
te remove the
checkpoint request element from the time delay queue.

•

IGC102 - AOCTL SVC 102 routine - to
ready queue te activate IEDOHG03.

Tables/Work Areas:
Attributes:

t~ost

an element

environment
to

the

MCP

AVT, checkpoint work area.

Feentrant, transient.

ERBOR RECOVERY fFCCEDURE FOUTINES
start-stop ERP Control
Module Name:

~odule

(Chart JC)

lGE0004G

Entry Point:
IGE0004G - activated by the I/O Supervisor (leS) when'an
error is detected on a start-stop line, when an interru~t occurs on
I/O that was initiated by an ERP module, and when end of day recordinq
is requested.
Functions:
This module transfers contrel to the appropriate ERP
module to precess the specific error condition that eccurred on a
particular CCW.
The start-stop ERP Contrel module receives control
from lOS when the Line Fnd A~pendaqe returns to lOS with a line error
condition, when an interrupt occurs on an I/O 'operatien that was
initiated by an ERP module,
and when end of day recordinq is
requested.
This control module transfers control to one of the
followina
modules accordinq to the cenditien by which the control
module was activated:
•

Read/Write Unit Check and Unit Exception FRP module
(IGE0104G)
activated ty the centrol module tc ~recess a unit exception on a
write or write break CCW and to process a unit check
(equipment
check,
lost data,
time-out, bus-cut check, or intervention
required) en a read CCW.

•

Non-operational Control Unit ERP module (IGF0204G) - activated by
the centrol module when a centrel unit is not operational.
This
is indicated by the condition code 3 after a Start I/O command.

•

Unit Check for Non-read, Non-write,
and Non-poll cews module
(IGE0304G)
-activated by the contrel module when a unit check or
a unit exce~tion error occurs on a CCW that is not a read, a
write, or a pell operation.

•

Auto Poll and Read Fesponse to Poll Unit Check and Unit Exception
ERP module (IGE0404G) - activated by the control module to process
a unit exce~tion or a unit check en a ~cll cr reid response td
poll Ccw.

Program Crganization

381

•

~rror

Post and Second Level CCW Return module
(IGE0504G)
activated by the centrol module under five different situations:
1. An interrupt on an I/O operatien that was initiated by
module.

an

ERP

2. An attentien.
status modifier,
centrol unit end, or busy
conditior indicated by the centrel unit.
In this case, the
control module sets an error flag in the LCB before activating
the FRP ~rocessinq routine.
3. A proqram check, protection check, or chaininq check error on
the line.
In this situation, the control module sets an error
flaq in the LCB refore activatinq IGE0504G.
4. Any unit exception that is not handled by the Aute Poll and
Read Response to Poll unit Check and Unit Exece~tion ERP
module, the Read/Write unit Check and Unit Exception ERP
module,
the Unit Check and Unit Exception on Read/Write CCws
for Audie and 226C Local Devices FRP module, and the Unit Check
Module fer Non-read, Non-write, and Non-poll CCws EFP module;
and is net an overrun or data check err~r·on read and write
text CCW.
5. Any retriatle errers on which
without successful recovery~

the

retry

ccunt

is

exhausted

•

Unit Check and Unit Exception on Read/Write CCWs for Audio and
2260 Local Devices EFP module
(IGEOE04G)
activated by the
control module to process errers detected cn a~dio and local
devices.

•

start-Stop Channel Check ERP medule (IGE0804G) - activated by the
control medule to process channel centrol check endinq status,
interface centrol check endinq status,
and channel data check
endinq status.

•

Closedown Terminal statistics Recordinq module
(IGE0904G)
activated by the control module when end of day recording is
requested.
as OBR/SDR module (IGE0025F) - activated by the centrol module
when recover V from an error has been successful and one of the
followinq conditions exist:
1. The SIO er error counter is about to overflow, er
2. The user has requested loqqinq of terrperary errors.

•

Line End Appendaqe (IGGC19RO) - activated by
under the two fellowinq conditicns:
1. When error recovery was successful
statistics is not required.

382

and

the

control

updatinq

of

module
terminal

2. When overrun or data check errors occur on read or write text
CCWs.
!hese errors are net retried ty an FRP moaule, but' may
be retried in the MCP.
External Routine:
IEDQTNT
terminal entry address.
Tables/Work Areas:

~ead/Write

LCE. CCW, SCE. AVT,

Su~erviscr

Attributes:

Tarle

rcp,

code

to

obtain

a

Terminal Table entry.

mode, disabled, transient.

Unit Check and Unit

Module Name:

Termname

Fxce~tion

IFF Module

(Chart JD)

IGE0104G

Entrv Point:
IGE0104G
activated bV the Start-Sto~ ERP Control
module (IGEOOC4G) to process read/write unit check and unit exception
error conditions.
wunctions:
Tbis module processes read/write unit check and unit
exception errcr conditions that occur on Etart-stop lines.
If a unit exception eccurs, the action that this EBP module
depends on the device on which the error occurs:

takes

•

~eletvpe

•

2'01 - the ERP module executes a Read

•

All other start-ste~ adapters - the ERP re-executes the CCw on
which the unit exce~ticn cccurred until the retry count is
exhausted.
At this point, a permanent error exists and this
module transfers ccntrol tc the Errcr Post and Second Level CCW
Return module (IGE05C4G).

adapter -

the ERP module executes a Write Break CCW.
S~ip

CCW.

If the Read/Write unit Check and Unit Exception module receives
control after a unit c}eck occurs, this ERE module analyzes the sense
data in the reB.
If the error is eliqible for retry, this ERP module
restarts the channel ~roqram: otherwise, the error is permanent.
This
EPP module considers as permanent erro~s any control unit errors, such
as equipment checks,
ana any non-text errors with exhausted retry
counts.
This ERP module aoes not process text errors,
but returns
them to the Line End Appendaqe for possible retry in the MCP.
Pxternal Poutines:

Nene.

Tables/Work Areas:

CCW, IOE, LCB, SCE, AVT, UCE.

Attributes:

Su~erviscr

mode, disatled, transient.

Prcgraa Organization

383

Non-operational Control Unit PEP Module (Chart JE)
Module Name:

IGE0204G

Bntrv Point:
IGF0204G
activated ty the start-stop ERP Control
module (IGE0004G) when a centrol unit is not operational.
This module informs the system eperator that a specific
control unit is not eperational.
This medule issues a write to
Operator (WTO) macro, which writes the messaqe, IED0641 LINE addr
CONTROL UNIT NeT OPERATIONAL. The module indicates a permanent error
condition by settinq a flaq in the LCB.
The module then exits to Line
~nd Apnendaqe.
~unctions:

~xternal Routine:
os write to Operator routine - to write
on the system console.
~able/Work

Areas:

su~ervisor

unit Check
(Chart JF)

fer

~ntry

module

messaqe

LCE.

Attributes:

Module Name:

a

mode, disarled, transient.

Non-read,

Non-write,

and

Non-poll CCis ERP Module

IGEC304G

Point: IGE0304G activated by thE start-stop FRP Control
to prOCESS errors from non-read, non-write, and non-poll CCWs.

~unctions:
~his module processes unit checks for
failinq CCWs that
are not a read, a write, or a pell operation. This ERP module uses
the sense data that is stored in the IOB to determine the actien to be
taken:

•

qetries the ccw twice for lost data and for a bus-eut check on a
dial command.
If retry is unsuccessful, the error is permanent;
therefore, this EPP module transfers centrel to the Errcr Post and
Second Level CCW Beturn module.

•

Retries the ccw twice for a time-cut en a dial, a disable, an
enable, or a prepare command.
If retry is unsuccessful, the error
is permanent; therefore, this FRP module transfers control to the
~rror Post and Second Level CCW Return rocdule.

•

Retries the ccw twice
prepare
command~
permanent; therefore,
Brror Post and Sec6nd

•

Transfers centrol to the Error Post and Second LevelCCW Return
module
(IGE0504G)
to hanale all the ether errcrs, which either
loqicallv should not have occurred or are permanent errors.

384

for an interventicn required on a dial or a
If retry is unsuccessful, the error is
this ERF module transfers control to the
Level CCW Return module.

External Routines:
~ables/Work

Attributes:

Areas:

None.
CCW, IOE, LCE, SeE.

Superviscr mode, disabled, transient.

~uto Poll and Bead Response to Poll unit Check and Unit Exception
Module (Chart JG)
~odule

Name:

ERP

IGE0404G

~ntry

Point:
IGE0404G
activated by the Start-Stop EFP Control
module (IGE0004G) or the ESC FRP Control Module
(IGE0004H)
when an
error is detected on a poll or a read res~onse to a poll ccmmand.
Functions:
~his module processes unit checks and unit exceptions for
poll CCWs and read response to poll CCWs.
Tf a unit exception eccurs on a poll CCW,this ERP module reexecutes the eew. If a unit check occurs en a poll ecw and the error
is a time-out, data check, or intervention required, this REP module
updates the poll pointer and retries the cbannel"proqram. When the
retry count is exhausted, the error is assumed to be permanent.
All
other unit check error conditions en a ~oll ccw are considered
permanent.
If a unit check occurs on a read respcnse to poll CCW and the
error is a time~out, data check, or intervention required, this ERP
module updates the poll ~ointer and restarts the channel proqram.
When the retry count is exhausted,
the error is assumed to be
permanent.
The module retries overrun and lest data errors by
restartinq the channel proqram at the rEad response ccmmand.
All
other unit checks on a read respoDEe to ~cll CCW are permanent.
A unit exception on a read response to
Line End Appendaqe.

~ell

CCW is handled by

the

When

a permanent errcr condition is detected, this EBP module
contrel to the Error Post and Seccnd Level CCW Return module
(IGE0504G) •

tran~fers

External Routines:

None.

TableS/Work Areas:

CCW, LCE.

Attributes:

Supervisor mode, disabled, transient.

Error Post and Second Level CCW Return Module (Chart JH)
~odule

Name:

IGE0504G

Program Organization

385

Entry point:
IGE0504G
activated ty either
Control module or other ERP processinq modules.

the

start-stop

ERP

This module attempts to retry channel proqrams and handles
permanent error situations.

~unctions:

The Error Pest and Second Level CCW Return module receives control
from the Start-StopERP Control module when a special return indicator
is set and an interrupt eccurs on a Read Skip or Write Break CCW that
was issued bv an ERP module.
In this situation, the Error Post and
Second Level CCW Return module attempts to retry the user's channel
proqram.
The Error Pest and Second Level CCW Return module receives control
from other FBP ~rccessing modules when a permanent errer is detected.
The ERP processinq modules pass to this module both permanent errors
that are not retried and errors that are considered permanent only
after the retry count is exhausted.
When a permanent error condition
is passed to the Error Post and Second Level CCW Return module,
it
passes control to either the as Message Writer,
the line End
Appendaqe. or the OS OER/SDR module.
If OBR recordinq is required and the system censele is not the
primary operater control terminal,
control passes to the OBR/SDR
module.
If OBB recordinq is not required and the system console is
not the primary operator control terminal, centrol passes to the Line
~nd Appendaqe.
If the system console is to primary operator control
terminal,
the Error Post and Second Level CCW Return module exits to
the as Messaqe Writer, which either writes an error messaqe on the
system consol~ er routes an error message to an aiternate operator
control terminal bV returninq to Line End Appendaqe.
If eBB recording
is required, the Error Post and Second level CCW Return medule places
X'01'
in lCBFlAGS before exitinq te the as Message Writer. ~his flaq
indicates that the Message Writer should, pass centrel to the OBR/SDR
module (IGE0025F).
External Routine:
IFDCTNT
terminal entry address.
~ables/work

Attributes:

Areas:

Termname

Tatle

CCW, LCB, AVT, Terminal Table entry,

seE.

superviser mode, disabled, transient.

unit Check and unit Exception on Read/~rite CCWs for
Local Devices ~RP Module (Chart JI)
Module Name:

to obtain a

cede

Audio

and

2260

IGF0604G

Entry Point:
IGE0604G
activated by the Start/Stop ERP Control
module (IGE0004G) to process errors on audio and local devices.

386

Function~:
This medule ad1usts the retry count and retries the
failinq CCW sequence when lOS detects an errer cn an audio or local
device.
If the error is undefined or if the ret~y count is exhausted,
this FR~ module exits to the Error Post and Second Level CCW Return
module, which records the error.

External Routines:

None.

Tables/Work Areas:

LCE, SCE, CCW.

Attributes:

Superviser mode, disabled, transient.

Start-stop Channel Check RRP Module (Chart JJ)
Module Name:

IGE0804G

Entrv Point:
IGFOR04G
activated bV the Start-stop FRP Control
module (IGE0004G) to process channel contrel check endin~ status,
interface control check endinq status, and channel data check ending
status.
Functions:
This module processes channel endinq
are detected tv 1CS.

status

errors

that

The Channel Check Hanoler is· an e~tional extension of lOS for
confiqurations that use the 2860/2870 channels.
The Channel Check
Pandler determines whether a channel centrol check or an interface
control check is recoverable. If so, this handler builds an ERP
interface byte
(ERPIB)
to provide the start-Stop Channel Check ERP
moaule the infermation fer a possitle retr,.
When the Start-Stop Channel Check ERP medule qains ccntrel after
a channel contrel ~heck or an interface centrol check, it searches a
list of ERPIBs to determine whether ros has supplied preliminary
parameters for retry.
If the module does not find an ERP1E for the
failinq device, the module considers the error to be permanent and
passes control to the Error Post and Second Level CCW Feturn module
(lGE0504G).
If an ERPIB is found for the device,
the Start-Stop
Channel Check EFP module tests the retry flaq in the EFFIE.
If this
flaq is on, the medule censiders the ecrcr to te permanent and exits
to the Error Post and Second Level CCW Return module. If the flag is
not on, the start-stop Channel Check ERP module saves the ERPIE data
in a work area, clears the ERPIB to zero to make space for system
sense informaticn, and attempts a retry procedure that is b~sed on the
ERPIB data,
the failinq CCW, and the retry count.
The module
continues the retry procedure until the eitb~r the retry is successful
or the retry ceunt is exhausted. If the ret~y count is exhausted,
this module transfers control to the Error Post and Second Level CCW
Return module.
When the Start-Stop Channel Check ERF module gains control after
a channel data·check~ the module attempts te retry the failinq CCW.

Prcgra. Organization

387

If retry is unsuccessful and the retry count is exhausted, this module
considers the errer to be permanent and transfers contrel to the Error
~ost and Second Level CCW Return module.
External Routines:

None.

Tables/Work Areas:

ERPIE, CCW, LCE.

Attributes:

supervisor mode, disabled, transient.

Closedown Termiral statistics Recording Medule (Chart JK)
Module Name:

lGEC904G

Entrv Point:
IGE0904G
activated by the Start-stop ERP Control
module (IGEOcr04G) when end of day recording is requested.
This module provides for terminal statistics recording
when end of day recording is specified. When the Clesedewn Terminal
statistics Recordinq module is activated, it sets up input records for
the system OBR/SDR module and transfers centrol to it.
The OBR/SDR
module records the statistics for each terminal and then returns to
the Closedown Terrrinal Statistics Recording module to reset parameters
for the next recording.
After all recording has been performed, the
Closedown Terminal statistics Recordinq medule passes centrel to the
Line ~nd Appendage.
~unctions:

Pxternal Routines:
statistics.

IGE0025F - os OBR/SDR medule - to record

Tables/Work Areas:

LCE, Terminal

Attributes:

~able

terminal

entry.

supervisor mode, disabled, transient.

BSC FFP control Module (Chart JL)
Module Name:

TGE0004H

Entrv Point.:
IGE0004H - activated bV the T/C Supervisor (TOS) when
the Line End Appendaqe (IGG019RO) detects a ESC error condition or
when an interrupt occurs on I/O that was started by a ESCERP module.
Functions: This module transfers centrel tc the appropriate ESC ERP
module to precess the specific error condition that occurred on a
particular ccw. ~he ESC FFP Contrel module receives centrel from lOS
when the Line End Appendaqe returns te lCS with a ESC line error
condition and when an interrupt occurs on an I/O operation that was
initiated bv a ESC ERP modue. This centrel module transfers control
to one of the followinq modules accordinq te the conditien by which
the control module was activated.

388

•

BSC Read/Write Equipment Check, Lest Data, Interventien Bequired,
and Unit Exception ERP module
(IGE0104H)
activated by the
control module to process a unit exce~tion on a write CCW and to
process a unit check
(equipment check, lost data, intervention
required, er tus-out check) on a write or read ccw.

•

Non-operational Control Unit ERP module (IGE0204G) - activated by
the contrcl module when a centrol unit is not operaticnal.
This
is indicated by the condition code 3 after a start I/C command.

•

ESC Read/Write Data Check, Overrun, and Command Reiect ERP module
(IGE0204H)
activated by the centrel module to process data
checks, command reiects, and overruns on read or write CCws.

•

unit Check for Non-read, Non-write, and Nen-poll CCWs ERP module
(IGE0304G) - activatea by the centrel medule when a unit exception
error occurs on a CCW that is not a read, a write, or a poll
operation.

•

Auto Poll and Read Fesponse to Poll Unit Check and Unit Exception
module (IGE0404G) - activated by the control module te process
a un'it exce~tion or a unit check en a poll or a read response to
poll Ccw.

~RP

•

BSC Second Level CCW Return Module (IGE0404Hl - activated by the
control module when the special return indicator is set and an
interrupt eccurs on I/O that was initiated by an ERP module.

•

BSC Error Post module (IGE0504H) under four aifferent conditions.

activated ty the control module

1. An attention,
status modifier, control unit end, or busy
condition indicated by the centrel unit,
In this case, the
control roodule sets an error flaq in the LCB before activating
the ERP precessinq module.
2. A proqram check, protection check, or chaininq chain error on
the line.
In this situation, the centrol module sets an error
flaq in the LCB before activatinq IGE0504H.
3. Any unit check on BSC devices that is not handled by the ESC
Read/Write Equipment Check, Lost Data, Intervention Required,
and unit Exception ERP module, the unit Check for Non-read,
Non-write, and Non-poll CCWs ERP module, the Auto Pell and Read
Response to Poll Unit Check and Unit Exception ERF module, and
is not a time-out on a read to addressing, a read or write ENQ,
a read response to ENQ, a read text ccw with no data received,
a read response to text, cr an overrun or data check error on
a text or non-text read CCW.
4. Any retriatle errors on which
without successful recevery.

the

retry

count

is

exhausted

PLogram Organization

389

•

Bse channel Check ERP module (IGE0804H) - activated by the control
module to process channel errors such as channel contre1 checks,
channel data checks, and interface contrel checks.

•

Line End APpendaae (IGG019RO) - activated by
under the fcllowinq conditions:
1. When a read unit exception
occurs
statistics is not required.

and

the

control

updatinq

of

module
terminal

2. When a time-out occurs on a read text and data is received.
3. When overrun or data check errors cccur on read text CCWs.
~hese
errers are not retried ty an ERP module, but may be
retried in the MCF.
If a time-out on a read to addressinq, a read ENQ,
or a
read
response to ENO occurs,
the control module restarts the channel
proqram.
If a time-out en a read text ecw eccurs and no data is
received,
the control module restarts tbe channel ~roqram at the read
text cew.
If a time-out on a read response to text eew cccurs,
the
control module executes a write ENQ channel proqram.
External Routine:
IEDCTNT
terminal entry address.
TableS/Work Areas:
Attributes:

Termname

code - to ottain the

~at1e

LCB, ecw, IVT, DCB, 7ermina1 ~able entry.

Supervisor mode, disatled, transient.

SSC Read/Write Equicment Check, Lost Data, Intervention Reguired t
Unit Fxception ERP Module (Chart JM)
Module Name:

atid

!GE0104H

Entrv ~oint:
IGE0104H
activated by the ESC ERP centrel module
(IGE0004H) to process unit check and unit exception error conditions
that cccur on read and write eels.
Functions:
This module processes read/write unit
exception error conditions that occur on BSC lines.
If a unit exception cccurs on a write CCW,
this module de~ends on the type of write cc~:

the

check and unit

action

taken

by

•

If the cew is for a write ENO(a line bid}, this module restarts
I/O at the read response eCI.
A unit exception at line bid time
could indicate that a ccntention situation exists.

•

A' unit exception on any other write cew'imp1ies
that either the
line is neisy or the other station is usinq bad line ~rocedures.

390

~or this situation, this
proqram.

module

executes

a

Bead

Skip

channel

If the ESC Unit Check and Unit F.xce~tion ERP module receives
control after a unit check occurs, the module analyzes the IOE sense
data to determine the ~ourse of" action. ~he action taken depends on
the type of errer that occurred:
•

~quipment check - this module sets an error flag in
the LCB
transfers centrel to the ESC Error Post module (IGE0504H).

•

Lost data on a write ccw - this module sets an error flag in the
LCE and transfers centrel to the ESC Error Post module (IGE0504H).

•

Lost data en a read CCW - this module acts according to
of read on which the error occurred:
1. Lost data on a read response
reexecutes the write ENQ CCW.

te

ENe

the

this

eew

2. Lost data on a read ENQ CCW - this roodule reexecutes
ENO CCW.

and

type
module

the

read

3. Lost data en a read response to text cei - this module executes
a write ENe, read response channel proqram.
4. Lost data on a read text ecw - this nodule returns centrol to
the LinE End A~~endaqe (IGG019RO) ~here a read ENQ, write NAK
channel ~reqram is executed.
•

Interventicn required - this module transfers contrel to the
BSC
BrrorPost module
(IGE0504H) where this error is processed as a
permanent errer conaition.

•

Bus-out check - if the errQr occurred or. the command, not on the
data, this module retries the CCW; if the error occurred on the
transmitted data ana the CCW is a write text, this module executes
a read res~onse eew.

Bxternal Routines:

None.

Tables/Work Areas:

eei.

Attributes:

IOE, LCB, SCB, AYT, UCE.

Supervisor mode, disacled, transient.

Ese Read/Write Data Check, Overrun,
(Chart JNl
~odule

Name:

and

Cemmarid

Reject

ERP

Module

lGE0204H

P~cgra.

Organization

391

Entrv ~oint~
IGE0204H
activated bv the BSC EBP Centrol module
(TGE0004H) when a data check, a command reiect, or an everrun occurs
on a read or a write ccmmand.
Functions:
This module processes a data check, a command reject, or
an overrun on a failinq read or write cew. This module examines the
failinq cei to determine the appropriate course of action.
If this EFF m-odu Ie finds an undefined error or if the retrv count
is exhausted, the module transfers centrel to the BSC Error Post
module (IGEOS04H) where the error is recorded. If an intermediate eei
sequence is required, the Bse Read/Write Data eheck, Overrun, and
Command Reiect module builds the eei sequence and sets a special
return
indicator
for the Bse Second Level eei Return module
(IGE0404H). The Bse Secend Level eei Return module services the next
interrupt and controls subsequent recover V attempts for this error.
Tn all ether situations, the Bse Bead/Write "Data Check, Overrun,
and Command Re;ect EFP ~edule advances the retry counter and attempts
a retry at the appropriate point in the failinq eei sequence.
F.xternal Foutines:

None.

Tables/Work Areas:

CCi, IOE, LCB, SeE, AVT, UCB.

Attributes:

Supervisor mode, disabled, transient.

Ese Second Level cel Return Medule
Module Name:

~hart

JCl

IGEC404H

Entry Point:
IGE0404H
activated bV the BSC EFP eentrel module
(TGE0004H) to process interrupts that occur on I/C that was initiated
hy an ERP module.
This module attempts to retry channel proqrams that were
initiated by an EFP module. This module retries the channel proqram
until either the retry is successful or the retry count is exhausted.
When the retry count is exhausted, this module considers the error to
be permanent and transfers control te the Ese Error Post module
(TGFOS04fl).
~unctions:

If the channel and unit status of the CSi indicate that the I/O
was error free, the BSC Second Level cei Return module either restarts
the user channel proqram at the correct CCW or transfers control to
the Line End A~~endaqe (IGG019RO) where the received-data is checked
and the appro~riate eCi is executed.
External Routines:
~ables/Work

392

Areas:

None.
CCi, LeE, SCB, AVT, Terrrinal Table entry.

Attributes:

Supervisor mode, disabled,

Bse Error Post Module
Module Name:

~hart

transient~

JP)

IGF0504H

Entry Point:
IGF0504H
activated by the Bse ~~P Control module
(IGE0004H) or by any of the ESC ERP processinq modules.
'unctions:
This module handles permanent error situations.
It
receives beth errors that are not retried and errors that are
considered to re permaner:t cnly after the retry count is exhausted.
This module builds the records necessary as input for OBR/SDR
recordinq and then passeS control to the OEF/SDR module
(IGE0025P).
The OBR/SDR module records the error and logs an error messaqe on
either the system conscle cr the o~eratcr centrol terminal.
Bxternal Routine: IEDQTNT - Termname
terminal entry address.
Tables/Work Areas:
Attributes:

code

to

obtain

the

CCW, LeE, seB, AVT, Terminal Tarle entry.

Superviser mOde, disabled, transient.

BSC Channel Check ERP Module
Module Name:

Tarle

(Chart JQ)

IGF0804H

F.ntry ~oint:
IGE0804H
activated bV the BSC ERP Centrol module
(!GE0004Hl to process channel control check ending, status, interface
control check endinq status, and cha~nel data check ending status.
This module
are detected ty rose

~unctions:

processes channel endinq status errors that

The Channel Cbeck Handler is an opticnal extension of lOS for
configurations that use the 2860/2870 channels.
The Channel Check
flandler determines whether a channel control check or an interface
control check is recoverable.
If so, this handler builds an ERP
interface byte (EFPIE) to provide the ESC Channel Check EFP module the
infor~ation fer a possible retry.
When the ESC Channel Check ERP module qains ccntrel after a
channel control check or an interface centrol check, it searches a
list of ERPIBs to determine whether lOS has supplied preliminary
parameters for retry.
If the module does not find an ERPIE' for the
failinq device, the module considers the error to be permanent and
passes control to the ESC Error Post module (IGE0504H).If an ERPIB
is found for the device, the BSC module tests the retry flag in the
ERPIE.
If this flaq is en, the mcdule considers the error to be

program Organization

393

permanent and exits to the BSC Errer Post mcdule~ If the flaq is not
on, the BSC Channel Cbeck FRP module saVES tbe EFPIE data in a work
area, clears the EFPIB to zero to make space for system sense
information, and attempts a retry procedure that is based on the ERPIE
data, the failinq ccw, and the retry count. The module centinues the
retry procedure until either the retry is successful or the retry
count is exhausted.
If the retry count is exhausted, this module
transfers contrel to the ESC Error Post module.
When the ESC Channel Check ERF module gains centrol after a
channel data check, the medule attem~ts to retry the failinq CCW. If
retry is unsuccessful and the retry count is exhausted, this module
considers the error to be permanent and transfers centrel to the ESC
Error ~ost module.
External Routines:

Nene.

Tables/Work Areas:

ERPIE, CCW, LeE.

Attributes:

Supervisor mode, disabled, transient.

TIME SHAPING OF!ICN RCUTINES
TSO

~ttention

Module Name:

Routine (Chart YA)
IEDAYA

Entrv Points:
•
IEDAYA (ENTRY1) - activated by Buffer Disposition (IEDQED) throuqh
the TSO INMSG/OUTMSG Linker (IEDAYX) when it detects an attention
interrupt (hardware or simulated)
e'

•

IEDAYA+12 (EN'IRY2) - activated by Line End APpendaqe (IGG019RO)
throuqh the TSO rOHALT routine (IEDAYF) or directly from IEDAYF
when it receives an attention interru~t on a sinqle prepare CCW.

The TSO Attention routine ~rovides the terminal user the
ability to affect line deletion, CPU task interruption (givinq control
to the STAX Exit) or both. These functions can be accomplished either
throuqh a hardware attention interrupt (an A~TENTION or BEQUEST key on
a terminal and an ATTEN macro instruction in the TCAM messaqe control
proqram)
or throuqh a software-simulated attention interrupt (a
SIMATTNmacro instruction in the TCAM message centrol proqram).

~unctions:

~n attention request from a terminal causes the IU
Supervisor to
activate the TCAM Line End Ap~endaqe
(IGG019RO). This appendage
identifies the request and sets an ~attention interrupt
switch
(SCBATTNl
in the station Contrel Eleck for the terminal. When the
TCAM messaqe handler for that terminal qains centrol, the ATTEN macro
expansion in that messaqe handler tests the SC~ATTN bit and if it is

on, activates the TSO IOHAL~ routine (lEDAYF), which activates the TSO
Attention routine.
Upon detectien of an attention,
the TSO lOHAL~
routine may activate the TSO Attention routine 'directly by tpostinq
the ICB to it.
An attenticn request from the SIMATTN macro in the preqram causes
the TSO Simulated Attention routine (IEDAYS) to set the "simulated-'
attention interru~t" switch (SCESATTN) in the station control. Block.
This switch causes the macro expansion tc activate the TSC Attention
routine.
~he TSO Attention routine first branches and links to the Termname
Table code (IEDOTNT) to qet the address of the terminal entry,
which
contains the address of the Destination QCE.
The routine then
determines whether the terminal is handlinq a TSO session.
If the
terminal is net, the routine determines wt.ether the line was sendinq
or receivinq (the routine was entered at ENTRY1)
or on a sinqle
prepare CCW
(the entry was at ENTBY2) and exits acccrdingly - to
DSPD1SP for BNTBY2 and tc DSPCHATN for ENTRY'.

In the in~ut mod~, if the key has been specified fer line delete
and in fact at least one character has been entered, the TSO Attention
routine deterrrines if automatic line numterinq has been specified and
if so, decrements the current line value.
This is done so that the
terminal may once aqain be prompted fer the deleted line number.
Before returninq to the messaqe handler code, the routine sets a flaq
within the prefix of the input buffer.
Also, the routine sets a flaq
(SCBXPD) in the SCB to indicate to the ~SO ~essaqe Generatien routine
(IEDAY~l
to write the messaqe (!D) tQ the terminal.
(This indicates
that the line is teinq deleted).
~f the ke, had not been specified fer line delete, or
if it had
and nothinq had teen entered on the input line prior to the Attention
key beinq depressed r the TSO Attention Routine then processes the
interrupt as a request for an attention exit.
This is the case when
the system is in the out~ut mode, when the key is depressed and the
terminal supports the Transmit/Interrupt feature.

Once the TSC Attention routine determines that exit request
handlinq is te te performed, it determines if any exit levels are
currently available.
If not or if the user proqram does not specify
any STAX macros r the routine drops in~ut.ana output buffers and sets
a flaq (SCBXPI) in the SCB to indicate that the TSO Messaqe Generation
routine is to write the messaqe (!Il to the terminal.
(This indicates
an attention iqnered).
The ~SO Attention routine then issues a QTIP2
to clear the queues and record that an attention was iqnored.
If an exit level is available, the rcutine decrements the
count in the TJB (TJBATTN) and drops the in~ut and output queue.

ATTN

If the SCEATTN bit is on without eitber the SCEXPI bit or the
SCBXPD bitr the TSO Messaqe'Generation routine writes the messaqe
(!)
to the terminal.
This indicates that an attention is accepted and an
exit routine is scheduled.
If the user is in main storaqe, the TSO

PLogram Organization

395

Attention routine issues a QTIPO to set the flag RCBFAT in the
tposts the PCE, and returns to the message handling code. If the
is not in main storaqe, the routine sets an entry code of (4),
the TJIU in reQister zero, and issues a CTIP1 to swap the user
main storaqe.

RCB,
user
puts
into

When TeAM passes control to the TSC Attention routine, TCAM
notifies the routine whether the line was sending, receiving, or on a
sinqle prepare CCW. The sinqle prepare CCW is used to monitor the
line attention interru~tions when a keyboard is locked. If the
attention interru~tion occurs while sendinq cr receivinq, the TCAM
Dispatcher, via a MSGGEN macro instructicn, schedules the TSO Message
~eneration routine (IEDAYM1.
If the interruption occurs en a prepare
CCW, the TSO Attention routine tranches directly to the TSO Message
~eneration routinE.
~xt~rnal

•

Poutines:

IFDOTNT - Termname Tarle code - to Qet the address of the terminal
entry.
OTIP SVC - TSO SVC - Entries 0, 1, and L - to clear the input and
outPut queues, r~move system and user LWAITs' and QWAITs, set
flaqs, and swap the user into main storage.

Tables/Work Areas: AVT, CVT, ICB, OCE, RCE, SCE, STCE, TJE,
gntrv, TSE,Tiwe Sharinq CVT, TSI.
Attributes:

terminal

Reentrant, enabled, supervisor mode.

TSO Carriage Sutrcutine (Chart YCl
Module Name:

IEDAYC

Entrv ?oint:
IEDAYC - entered from the !CAM User Interface routine
(TEDOUI) when a CA~F.IAGF macro instructicn is coded in an INEUF or
OUTEUF subqroup of an MR.
7.he TSO carriaqe sutroutine initially links to the
Termname Table code (I~DCTNTl to qEt the terminal entry from which it
extracts the address of the Destinaticn QCB.
The TSO carriage
subroutine maintains a count in the OCB of carriaqe positions 'for
keyboard devices, so that when output is sent, idle characters can be
inserted properly. If a translation error has occurred, or if the
current buffer is a zero-1enqth buffer, the TSO Carriage subroutine
passes control to the MH via the Return Interface routine
(IEDOLM).
Otherwise, the subroutine scans the buffer, character ty character,
for new line characters and rackspace characters.
When it finds a
backspace character, the subroutine decrerrents the carriage position
count bv one, unless the tackspace is the first character in the
buffer. When it finds a new line character, the surrcutine resets the
~unctions:

396

carriaqe position count to zero, and, for 2260 devices, updates the
aCB simulated attention line count, unless the new line is the last
character in the buffer.
If it is the last character, the TSO
Carriaqe subroutine sets the QCE retry count field to reflect this, so
that, when this subroutine is entered tc scan the next buffer,
scanninq will beqin at the first character in the buffer.
The TSO
Carriaqe subroutine also zeros out circle Ds from all devices except
2741s and S~X/Addressinq character sequences from 2260s,if they
appear in input buffers. 'The suhroutine also counts output lines for
simulated attention by line ceunt, and turns on the "simulated
attention" bit in the SCE when required.
After it has scanned all
units of the tuffer, the TSO Carriaqe subrcutine u~dates the carriaqe
position count in the QCE, and returns centro1 to the MH via the
Return Interface routine (IEDQLM).
~xternal

Routine:
IEDQTNT - Termname Table cede - to qet the terminal
entry from which it extracts the address of the Destination QCE.

Tables/qork Areas:
CVT, Time Sharinq
OCE, buffer prefix, terminal entry.
Attributes:

Tim~

CV~,

Reentrant, enabled, resident,

AVT,

~roblem

~SE,

LeE, SCB, DCB,

proqram mode.

Sharinq Destination Scheduler (Chart Yt)

Module Name:

IEDAYD

Bntry Point: IErAYD - receives control te initiate a write break
operation,
if necessary, and to assiqn a buffer or QCE to its
destination. The VCON fer this module
(instead of for IEDQHM)
is
assembled as the destination for every line that can be used by TSO.
Functions:
The Time Sharinq Destination Scheduler qets control in
place of the TeAM Destination Scheduler when !SO is in the system.
If
this routine is activated because a ~CAM buffer was tposted to it, it
loads the address of the TCAM Destinaticn Scheduler STCB (IEDQHMl into
reqister 3,
and branches to the Dis~atcher bypass function to
immediately activate the STCE.
If the Time Sharinq Destination Scheduler is activated by the
tpostinq of a Time Sharinq Destination QCB to itself,
it sets the
tposted bit off in the OCE and checks to see if a simulated attention
Read was requested.
If it was requested, the Time Sharinq Destination
Scheduler immediately passes control te the Dispatcher dispatch
function.
If net,
this reutine checks to see if TPU~ requested a
write Break.
If ~ot, the scheduler passes control to the dispatch
function.
If a Write P~eak was requested, this routine loads the LCE
address into reqister 4 and branches to the Time Sharinq Scheduler
(IFDAYZ)
to determine whether a write Break channel command can be
issued.
If it cannot be issued, the Time Sharinq Scheduler returns
control to the ~ime Sharinq Destination Scheduler, which then passes
control to the Dispatcher dispatch functicn.

Program Crganization

397

External Foutines:
IE'DAYZ - Time Sharing Scheduler
to· determine
whether the Write Break channel command requested by TPUT can be
issued.
Tables/Work Areas:

AVT, LCE, QCB,

Attributes:
Serially
problem program mede.

reusable,

~CEp

STeE, and TSID.

refreshatle,

enabled,

-resident,

TSO TIOC Edit Routine (Chart YF)
Module Name:

IEDIYF

Entrv Point: IEDAI! - called by the TSOUTPUT routine (IEDAYe) to edit
output buffers or by the TSO Message Generation routine (IEDAYM) to
edit MSGGEN messages.
wunctions:
~he TSO
TIOC Edit rcutine ins~ects and edits output
messages contained in TSO buffers ana MSGGFN messaqes in the SCB.
The
routine moves edited TSO messages to TCAM tuffers to be sent.
MSGGEN
buffers remain in the seB.
The routine uses the line size,
the
reCe1V1nq buffer size, and the presence of New Line characters in the
messages for the EDIT scan.
The user specified the line size for a
TSO message in the Time Sharing block (TSB).
For MSGGEN messages, the
line size defaults to 12C bytes.
If the maximum line size is reached,
the TSO TIoe Edit routine inserts -a new-line character and the
appropriate number of reserve characters into the buffer to avoid
overprinting the line at the terminal.
On one entry to it, the TSO
TIOC Fdit routine may move no more printarle data to the TeAM buffer
than the physical line size.
If the message to te sent will exceed
the line size, th~ routine inserts the ap~rcpriate character(s) (bised
on terminal type) at the end of the line and reverts to the TSOUTPUT
routine,
with a return code (X'OC'l indicating that the whole message
was not edited.
The presence of a new line character in the buffer
signifies the end of a complete line.
At the end of a line or
message, the TSC TIoe Edit routine checks tc see if a simulated
attention bv line count was reguested.
If it was, the routine links
to the TSO Simulated Attention routine
(IFtAYSj
to update the QCB
simulated attention line count, and to reQuest a siroulated attention
~ead if the threshold is reached.
Next, the TSO TIoe Edit routine
checks to see if the message is a centrel or "ASIS" message.
These
messages cannot ccntain standard line and carriage control characters.
For these messages, the routine re~laces any invalid characters
(EOT,
New Line, Tab, etc.) with a colon to avoid program-caused IIC errors.
In addition tc insertinq New line and r~serve characters,
and
replacinq invalid characters, the rcutine inserts any other line
control characters
(that is,
STX and ETX)
and carriage control
characters
(that is,
line feed characters)
reguired to edi t the
message for out~ut to a particular termibal.
Whenever a TIOC buffer
is emptied, a l~ne is filled, or when a message is completely edited,
the TSO TIOC Edit routine issues the QTIP
(SVC 101)
to update the
offset and length fields in the TIOC tuffer prefix.
If the TCAM

398

buffer accommodated the entire TSO buffer, the TSC TIoe Edit routine
the prefix edited-in-full.
otherwise, the QTIP/SVC sets the
offset to indicate the point in the TSO buffer to start editing on the
next entry to the routine, and sets the length to indicate the length
of the data 'vet to be edited. On return to the calling rcutine, the
TSC ~IOC Edit routine seis a return code (X'OO'-successful completion;
X'OC'-partial line or partial messaqe moved; X'10'
end of line
reached) to indicate the status of the edit request.
mark~

]ot~:

end of
size.

On a 22EO, this routine inserts New line characters only at the
a mes~aqe when the number of characters is less thari the line

~xternal

Routines:

•

IEDQTNT - Termname Table code - to qet tbe terminal entry from the
LCB terminal index or line entry, or frcm the invitation list for
the line.

•

IEDAYS - TSC Simulated Attention routine - to handle requests
simulated attention by line count.

•

OTIP SVC routine - SVC 101 -

for

to update the TIOC buffer prefix.

~ables/Work Areas:
CVT, Time Sharinq CVT, AVT, TSE, CCE, TSID, LCB,
SCE, DCB, terminal entry, TCAM buffer prefix used ~or TSO, Tlec' buffer
prefix.

Attributes;
Serially
problem proqram mcde.

reusable,

refreshable,

enabled,

resident,

TSO IOijALT Routine (Chart YF}
Module Name:

IrDAYF

Entry Point: 'IEDAYF - receives control from the TCAM Dispatcher when
an LCE or an ERE is tposted to it from Line End Appendage (IGG019RO)
Functions: ~he TSO IOHAlT routine qets centrol when either an LeE or
an ERB is tposted from Line End Appendaqe (IGG019RO). For an LCE,
this routine mcnitors for an attention if" the LCB o~en check op code
has been set and if a Prepare has been issued for the line.
When an
attention occurs, this routine issues an IOHAlT sve (SVC 33) on the
urepare.
It then exits tc the Dispatcher dispatch function to
dispatch the next subtask.
An EFB is tposted when a hardware attent~on occurs or when a 2141
hanos up. This reutine locates the LCB frow the ERE and turns off the
prepare bit.
Then,
if the LeE is fn the time delay queue, this
routine links first to the Time Delay subtask (IEDQHGl to remove it,
and then to the Dispatcher priority functicn to insert the Rec~ive
Scheduler STCE into the LCB STCB chain by priority.
If the LeB

Prcgram Organization

399

completion code indicates that I/O ended on the line because of an
TOHALT, the routine sets line free priority, and sets the LCE to be
tposted to itself. If the 1ineis connected to a 2741, and a Prepare
CCW was interrupted r this routine indicates in the LCE that a circle
D was sent and checks to see if the 2741 has hung up. If it has, the
routine sets the ICB to be tposted to the TSO Hangup routine.
If a
?repare CCW was not interrupted, tut a circle D was sent, the routine
sets the LeE tc indicate circle D sent. Por 2741s'that have not hung
UPr and for all ether devices, the TSO IOHALT routine turns on the SCE
hardware attenticn bit (SCEATTN), and sets the LCE to be t~osted to
the TSO Attention routine. In all cases except when I/O was ended by
IOHALT, the routine sets PCI priority. Finally, this routine link~
all previous elements in the chain, puts the QCB address in the LCE,
indicates that the LCE is the new first element in the chain r and
exits to the Dispatc~er chain function tot~ost all the elements in
the chain to the a~propriate QCBs.
External

~outines:

•

OS TOHALT routine (SVC 33) - tc halt I/O cn the line.

•

IEDQHG - Time Delay suttask - to remove an LeB from the time delay
queue.

•

IGG019RP or IGG019FO - TCAM Dispatcher rSPPRIOB entry point
insert the Receive Scheduler STCB into the LCF STCE chain.

Tables/Work Areas:
Attributes:
~SO

to

AVT, DCE, LCE, SeE, DEB, TSID, TPRIOB, ERE.

Peentrant, enabled, resident,

~rcblem

proqram mode.

Hangup Routine (Chart YH)

~odule

Name:

I!DAYH

Entrv Points:
•

IFDAYH (ENTFY1i
entered from the TSO INMSGjOUTMSGLinker
(IEDAYX) ·tc determine whether I/O errcrE have occurted and whether
a HANGUP macrc is to be processed.

•

TEDAYH+12
(FNTBY2)
entered from the Line
End
Appendaqe
(IGG019BO) to determine whether a HANGUP macro is to be processed.

Functions:
This module ensures that line errors associated with TSO
terminals are identified to the terminal user and cancels the messaqe
that is in errcr.
The TeAM Euffer Disposition subtask (IFDQED) activates the TSO
INMSG/OUTMSG Linker, which activates the TSC Hanqup routine, when the

400

messaqe handler has precessed a complete messaqe and a
specified.

HANGU~

macro is

The TSO Hanqup routine first determines whether an error that it
can handle has occurred. If no error is found,
the routine returns
immediately te the TCAM Dispatcher.
When an error is found, the TSO
Hanqup routine branches to the Termname Table code
(IEDQTNT)
to get
the terminal entry address. On return, the reutine uses the terminal
entry and the ICB index to find the QCB asscciated with the error and
determines whether the QCB belonqs to a ~SO user.
If the QCB does not
belonq to a !SO user, the routine returns immediately to the TCAM
Dispatcher.
If the OCE is for a ~SO user, the TSO Hanqup routine
determines whether the error is permanent.
If so, the routine sets
flaqs to disconnect this line and turns off the SCE error word bits,
issues a OTIP request (SVC 101) to turn cn the TJBHUNG bit, invokes
the Time Sharinq Interface Proqram (TSIP) with an entry code of 36,
and activates the System Initiated Loqoff (SIL) to beqin TSO loqoff
procedures.
When no permanent errors are found,
the TSO Hanqup routine
determines whether the line is sendinq cr receivinq and performs the
necessary error handlinq for either situation. If the retry count in
the OCB is set
(initially to three), and the .line is sendinq, the
routine decrements the count by one each time a countable error
occurs.
When the count is zero, the routine sets flaqs to disconnect
this line, turns off the seE error word tits, and issues a QTIP
request as when a permanent error cccurs.
If the count is not zero
and the line is sendinq, the TSO Hanqup routine returns immediately to
the TCAM Dispatcher.
If the retry count in the QCB is set and the line is receivinq,
the TSO Hanqup routine prepares a messaqe to inform the terminal user
of his status and decrements the ccunt by one.
When the count is
zero, the rcutine sets flaqs tc disccnnect this line, turns off the
SCB error word bits, and issues a QTIP request as described for a
permanent errcr above.
When the retry ccunt is not zero and the line
is receivtnq, the routine tests the SCBTMIN~ field,
If this field is
not on,
the reutine cancels the nessaqe iust prepared and returns to
the TCAM Dispatcher.
If the SCBTMINN field is on, the routine sends
the status messaqe to the user and tben returns to the TCAM
Dispatcher.
External Routines:
•

IEbOTNT - Termname Table code to ccrvert the Termname
offset to the address of the Terminal Table entry.

•

QTIP SVC - TSC SVC - to set a bit in thE TJE.

Table

Tables/Work Areas: AVT, CVT, LCB, cuffer prefix, QCB, SCE, TJB,
Sharinq CVT, TSE, TCT.
Attributes:

Time

Reusable, refreshable, enabled, problem prcqram mode.

pxcgram Organization

401

TSINPUT Routine (Chart YI)
~odule

Name:

I!D~YI

Entrv Point:
IEtAYI+2 - activated bv the ~CAM Dispatcher when either
the PCI Appendaqe or the Line End Appendaqe routes a ~essage from a
TSO terminal to the messaqe centrel prcqram message handler for that
terminal, or when one of the TIOC routines tposts the TSINPUT
Destination OCE to itself tc remove a svsterr LWAIT condition.
Functions:
The TSINPUT routine moves incoming data frcm a TCAM buffer
into a TSO tUffer and places the TSO buffer in the TSO input buffer
queue for processinq ~y ISO TGET requests.
When the TSINPUT routine qets control and finds a
TCAM buffer
beinq passed to it for processinq, the routine determines whether the
messaqe is to te canceled (PRFCNCLN bit is en).
If this bit is on,
all TCAM and TSO buffers associated with this messaqe are freed, and
the TCAM buffers are returned to the TCAM Di~~atcher.
If the messaqe is not to be canceled, TSINPUT manipulates the
transfer of inccminq data from 1.CAM to TSO tuffers in the following
manner.
The routine scans the text in the TCAM tuffer for CF, Line Delete,
and EOT characters. If a Line Delete character is detected, or if
Attention for Line Delete occurred, the reutine deletes the portion of
the line to the previous CR (or to the beqinning of the message).
otherwise, the routine mcves each ~hvsical line to a TSO buffer or
buffers.
After the complete TCAM messaqe has teen processed, this routine
flaqs each TSO tuffer that contains part cr all of a complete TSO
message as complete in the buffer prefix.
If the data in a TCAM
buffer does net cemplete a physical line, the routine flags the TSO
buffer as a fraqment in the buffer prefix (turn~ the EUFFFRAG bit on).
When the TCAM buffer that completes the physical line is processed and
the data is mcved toTSO buffers to complete the line, the TSC buffers
are flaqged complete
(BUFFFRAG tit in each buffer is turned off).
Each TSO buffer is placed on the 1SB input tuffer queue in FIFO order.
TSO TGET requests may retrieve only complete messages from this queue.
If the incoming messaqe has filled the maximum number of TSO
buffers alloted to this terminal for input, the TSINPUT rcutine places
the terminal in an LWAIT condition.
That is, it locks the terminal
keyboard on completion of the current line.
LWAIT is entered by
turning on the TSELWAIT and QCBNOBUF bits tc prevent TCAM fro~ issuing
further READ instructions to ·the terminal.
(Additional TSO buffers
are obtained, if ~ossible, to complete the current line.)
When no TSC buffers are available t~ move data into, incoming TCAM
buffers are held in a buffer wait queue.
Whenever TCAM buffers are
placed in this queue, the OCEBUFQ bit in the associat~d QCE is turned
on to indicate that TCAM buffers are being held for this terminal.
In

402

this case, a system LWAIT condition 1S entered; that is, all terminals
currently in input mode enter an lWAIT condition as TSINPUT handles
incominq data.
System LWAIT has no effect cn output mode or control
mode terminals until output is complete or input is required.
After a TIce routine has released cne or more TSO buffers. a check
is made to see if a system LWAIT ccndition exists.
If this condition
does exist, the TIee routine tposts the the TSINPUT Destination QCB to
itself.
When TSINPUT qets control, it finds that no TCAM [uffer is
heinq passed.
~SINPUT then determines whether any TeAM buffers are in
the buffer wait queue.
If this is the caSE, ~SO buffers are obtained
to remove the TeAM buffers one at a time, in FIFO order, until all are
removed or no more TSO buffers are availatle.
When all TeAM buffers have been removed from the buffer wait queue
(or when none were held), TSINPUT determines whether sufficient TSO
buffers are available to remove the system LWAIT condition.
If
sufficient buff~rs are· available, waitinq ~SBs are removed from the
wait queue in FIFe order, the correspcndinq OCETSBQ and QCENOEUF bits
are turned off, and TeAM issues a FEAD to unlock the effected terminal
keyboards to allow input as soon as possible.
If ~ terminal is in both a system LWAIT and a maximure-number-ofTsO-tuffers LWAIT, the a~propriate TSB is removed from the wait queue
when the sy£tem is removed from LWAIT, rut the QCBNOBUF bit is not
turned off to unlock the keyboard. The keytoard can be unlocked only
when the associated application proqram frees sufficient buffers,
throuqh one of the TIOC routines, to allow the user to continue.
If the terminal is in input mode and a !CLEAFQ instruction is
issued, the TSBIFLSH bit is turned on to indicate that an input queue
flush is in ~rOQress.
TSINPUT then checks the incominq TeAM eu-ffer to
determine whether it is a buffer of the TeAM messaqe, If this is the
first buffer of the messaqe,
the !SBIFLSH bit is turned off, and
normal buffer processinq continues.
If the buffer is not first and
not last, the data is ~ropped and the buffer is returned.
If this is
the last buffer. of the messaqe, the data is dropped, the buffer is
returned,
and tbe TSFIFLSB bit is turned off to indicate TCLEARQ
completion.
In addition, when TSINPUT finds the TSBIFLSH tit on,
the
routine returns any TCAM buffers associated with this terminal that
are on the buffer wait queue, and turns off the corresponding QCBEUFQ
bi t.
If the received messaqe is a partial line caused by a break-in,
the partial line is sent back to the terminal after com~letion of
output to allow the user to complete his message.
The partial line is
also placed on the input queue.
When TSTNFO! finds that a break-in has cccurre~ (LCEWBEBK bit on) ,
and if the incominq TeAM buffer does not. end in a eR, Line Delete, or
EOT character, the routine turns the corres~ondinq ~SEERKIN bit on to
indicate to ~SOUTPUT that a partial line exists, in ~SO buffers, for
promptina.
The ccrrespondinq TSO header buff~r is flaqged as a
partial line (EUFFPAFT bit is turned on).
At this point, the terminal

Pxogram Organizaticn

403

Destination OCB is tposted to itself to activate the send eperation
that sends the break-in messaqe and prompts the user.
Tf TSINPUT finds the TSBBIPI tit cn, the incominq TeAM buffer is
the completicn ef a rreak-in message that was sent to the user to
complete.
TSINFUT turns off the TSBBIPI bit and completes the partial
messaqe on the input queue by adding the new data to it.
If automatic line numbering is in proqress (TSBAULST and TSBAUTON
bits are on), the current line number is incremented as each complete
line is received.
The next line number is sent when line completion
occurs
(FOT or FOB is received) by turning on the SCBALN bit.
The
user can terminate automatic line numbering at any time by entering a
null line.
When line cempletien occurs, TSINFUT turns off the QCERFAD and
OCBTGET bits te indicate that REAt no lcnqer has priority and that any
TGET requests have been satisfied. If the user is not in main storage
and a TGFT request has not been satisfied (an IWAIT cendition exists) ,
control is pasEed to the Time Sharinq Interface Proqraw (TSIP),
which
sets the "restere" flaq in the TJB and l=csts the RCT te release the
user from IWAIT.
If the user is in main storaqe and an IWAIT
condition exists, TSINPUT flaqs all TCBs as dispatchable and continues
nermal processinq.
TSINPUT always exits to DSPCijAIN in the
processinq is cemplete or can no lenqer ccntinue.
~xternal

TC~M

Dis~atcher

when

Routines:

•

IEDQTN~

•

OT~P SVC - TSC SVC - activated with appropriat€
entry codes,
to
delete a
rressaqe fraqment,
to terminate TCLFARQ processinq, to
delete the input line currently beinq scanned,
to
meve scanned
data from TCAM to TSO buffers, and to put the system into LWAIT or
put a TSB on the waitinq TSE queue.

- Termname Tarle code - to qet the address of
tahle entry.

a

terminal

Tables/Work AreaE:
AVT, CVT, Time Sharinq CVT, DCE, IOE, ICB, buffer
prefix, OCE, SCE, TIOCEU!, ~IOCRPT, Terminal Tatle,TSE, TSI.
Attributes:

Reusable, refreshable, problem prcqram mode.

TSO loqon Routine
Module Name:

(Chart YL)

IEDCYL

Entry Point:
IEtAYL
activated by the User Interface routine
(IEDQUI) when a LeGaN macro is coded in a TSO message handler.

~unctions:

!he TSO loqen routine informs the TSO system when a
potential TSO user attem~ts to 10q onto the system and to route TSObound messaqes to the TSINPUT routine (IEDAYI).
The TSO Leqon routine first initializes the lCETTCIN field in the
LCE and the FFFSRCE field in the prefix of the buffer that contains
the loqon request. The routine locates the ~roper Destination QCB via
the Termname Tarle code (IEDQTNT) and then routes the message.
If a
~ime
Sharinq session is already in proqress with the terminal in
question, the loqen request in the buffer is not an initial request.
If the TSO session is in proqress, the routine scans the messaqe
handler for a LOGCN macro request, and if cne is not found,
performs
one of the followinq actions:
•

Requests TCAM to cancel this buffer.

•

If the Locate Optien reutin~ (IEDOA!) is present,
tranches there
to find the options for the NCIOG user-exit routine, if one
exists.
If a user-specified NCLOG exit routine is specified,
the
TSO Loqon rcutine branches there tc ~rccessthe buffer.

If neit~er of these actions can be performed, the TSC Leqon routine
does one of the fellowinq:
•

If TSO is net in the system,
tells the user that TSO is not
runninq ana returns control to the message handler via the Return
Interface rcutine (IEDCLM).

•

If the environment is TCAM-TSO, sends the user the
'try aqain'
messaqe and returns contrel to the messaqe handler via IEtQLM.

•

If the environment is TSO only and the CCB retry count does not
already exist, sets up a count, sends the 'try aqain' message, and
returns to the messaqe handler via IEDQIM.

•

If the environment is TSO only and the CCB retry count has been
previously set up,
decrements the ccunt by. ene, sends the 'try
aqain' messaqe, and returns tc the message handler via IEDQLM.

•

If the environment is TSO only and the CCE retry count is zero,
advises the user that his loqon attempt has failed, tells TeAM to
disconnect the terminal, ana returns control to the message
handler via IEDOLM.

If there is a LOGON macro request in the message handler, the TSO
Loqon routine puts blanks in the tuffer tc overlay any characters
preceedinq the characters LCGON.
~hen the routine ~erforms one of the
followinq actions:
•

If the terminal cannct support TSO, tells the user that the
terminal cannot receive TSO messaqes, marks the tuffer 'to-becanceled', and returns control to the message handler via IEDQLM.

Frogram Crganization

405

•

If the terminal is held (unable to receive messages tbrough normal
means), qenerates a messaqe to inform the· user,
sets flags to
cancel the buffer, and returns to the message handler via IEDQlM.

•

If TSO is not in the system, advises the user of this fact,
sets
flags to cancel the buffer, and returns to the message handler via
IEDQLM.

•

If the maximurr number of TSO users has already loqqed on,
advises
the last user to loq en of this fact, sets flags to cancel the
tuffer; and returns control to the messaqe handler via IEDQLM.

•

If TSO does net have the maximurr number of users already logged
on, the routine performs its initialization ~rocedures for TCAM.
The routine places zeros in the QCERETCT, QCBSATCT, QCBTSOF1,
QCBTSOF2, and QCBCAFCT fields ef the QCE. The routine then places
in the CINHIBIT field the value of the TCT in the QCEINHEN field
and turns en the QCETSSES switch.
Next, the routine performs the
initialization for TSO bv issuinq a CTIP (SVC 101) request to
activate the loqon procedure in the TSO region~
The QTIP SVC
searches th~ TJB chain for an available TJB.
If a TJB is not
free, the SVC places a X'OO'
return cede in register 15 and
returns control to the TSO Logon routine.
The TSO Logon routine
activates the Locate Option routine (IEDOAE)~
If the return code
from IFDQAE indicates that loqon initialization is requested, the
TSO logon routine performs the TCAM and TSO initialization
procedures then returns control to tbe message handler via the
~eturn Interface routine.
If a free TJB is found, the OTIP SVC increments the ~SCVTCUS
field bvone (to include the current uEer), turns on the TSCLOGON
field in the Time Sharing CVT to indicate that a LOGON has been
issued,
ana' puts in the TJB the address of its associated TSB
entry and QCB.
At this point the QTIP SVC pl~ces the characters
'STAFTING'
into the TJBUSER field to denote a new user, turns off
the TJENJB bit to indicate that thisTJE is being used, turns on
the TJBLCGCN bit to indicate a LOGeN request, and turns on the
TSBINUSE bit to indicate a used TSB.
Next, the SVC turns off the
TSBATNLD ·tit so that the attenticn key on the terminal cannot
activate tbe line delete function.
The OTIP SVC initializes the
TSBLNNO, TSBINSZ,
TSBSTCC, and TSBDSFIY fields acccrding to the
terminal type indicated either in the UCB or in the Device
Characteristics Table
(DCT)
and, depending on the terminal type
found, m~v turn on the TSEATNlD bit.
The SVC places the contents
of the FFFSFCE field from the tuffer prefix into the TSBASRCE
field, calculates the ad;usted maximum input and output buffers
allowed to each user and inserts them in the TIOCRPT field, posts
the LOGO~ FCE for the Time Sharing Centrol program,
~laces
the
value of the TJBTJID field in register 15, and returns control to
the TSO Legen routine.
If reqister 15 contains a zero, the Logon
routine performs the same PIoce~ing that was done when no free
TJB was found.

406

External Routines:
•

IEDQTNT - Termname Table code - to qet the address of
Table entry.

a

Terminal

IEDOAE - locate opticn Routine - to find the addre~s of the option
field.
•

OTIP SVC - TSO SVC - te perform initialization for TSO.

Tables/Work Areas: AVT, CVT, DCB, DEB, ICE, kuffer prefix, QCE,
TCT, TIOCFPT, TJE, Time Sharinq CVT.
Attributes:
TSO

~essaqe

~odule

SeE,

Reusable, refreshable, enabled, problem program mode.
Generation Foutine (Chart YM)

Name:

I~DAYM

Entrv Points:
•

IEDAYM - called by Buffer Dis~osition (lEDCBD) to process a MSGGEN
messaqe, or called bv the TSO SimulatEd Attention routine (IEDAYS)
to process a simulated attention messaqe for a simulated by time
interval.

•

AYMOOO - called by the TCAM Dispatcher (IGG019BBl
other type of messaqe.

to

process

any

runctions:
The TSO Messaqe Generation reutine processes a messaqe,
which maybe provided in one of three places.
If the messaqe is
qenerated" in a MSGGEN macro instruction, it is located in the macro
qeneration.
If a simulated attention REAt was requested, this routine
qenerates a simulated attention messaqe from a ccnstant.
If an
automatic line numberinq messaqe of a ~rompt messaqe was requested,
the messaqe is located in a user-specified field in the Terminal
status ~lock, which is in the TSO reqion.
1f

the

messaqe was not qenerated by MSGGEN, the TSC Messaqe
routine checks to see if the last buffer of the messaqe has
been tposted (that is, it has been processed by the TSINPUT routine).
If it has not this routine exits to th~ Dispatcher chairi function to
tpost the buffer. If the buffer has been t~osted, this rcutine links
to the Termname Table code (I~EOTNT), qets the terminal entry, and
extracts the OCE address from it.
At this ~eint, if the messaqe does
not fall into any of the atove three cateqories," this routine exits to
the Dispatcher chain function tc tpost the EBB to Buffer Disposition
(IEDOED) •
Gen~ration

~he TSO Messaqe Generation routine qains
access to the messaqe
from whichever location ap~lies,
and sets the LCB to activate the
terminal.
The routine qains access to the translation table from the
DCB, or,
if the messaqe is qenerated from a MSGGEN macro with a code
operand, from the macro qeneration.
If translation is via a TRANLIST
macro,
this routine links to the Locate O~tion Field Address routine

Prcgram Organization

Q07

(IEDOAE) via the User Interface routine (IEDOUT) to locate the option
field containinq the translation tatle.
If for any reason the message
can not be tranlated, this routine turns off all SCB error word bits
and all bits in the LCB sense byte, turns off the seB translation
requested bit, indicates that the remaininq INMSG or OUTMSG macros are
to be bypassed, and exits to the Dis~atcher chain functicn to tpost
the !RB to Buffer Disposition.
The ~SO Messaqe Generation routine left-iustifies the messaqe if
necessary, and moves it to the multiple-tuffer-scan save area in the
SCB. This routine then links to the TSO TIOe Edit routine (lEDAYE) to
edit the messaqe. Upon return, this routine translates the messaqe to
line code, sets the priority and CCW in the LeB, and exfts to tbe
Dispatcher chain function te tp~st the ERB to the Activate-I/O
Generator subtask (IEDQRA).
The TSO Messaqe
attention su~~crt for
write erase corrrrandif
write erase command,
if 'erase is reque~ted.

Generation routine also provides
simulated
2260 devices. ~or remote 2260s, it indicates a
requested. For local 2260s, it indicates a
and sets the data address and count in the cew,

External Routines:
•

IEDOTNT - !ermname Table code - to qet tbe
terminal or line index in the ICB.

•

IEDQAE - lecate Option Field Address routine
to locate the
translation table cption field for the TRANLlST macro (via the
User Interface routine - TEDQUI).

•

TEOAYF - TSC iIOC Edit routine - to edit the messaqe.

~erminal

Tables/Work Areas: CVT, Time Sharinq CVT, AVT, LCB,
TSE, TSID, terminal entry, TPBIOF, ERE.
Attributes:
proaram mode.

Reentrant,

refresnable,

erabled,

entry from the

eCE,

SCE,

resident,

DCE,

~roblem

TSOUTPUT Routine {Chart YO)
Module Name:

lEDAYO

'Entrv Points:
•

IEDAYO - activated bV the TCAM Dispatcher when a TPUT
issued to move data from TSO buffers into !CAM tuffers.

•

IFDAY002 - activated bv the TCAM Dispatcher to return TSO
to the TSC availatle buffer queue.

macro

is

buffers

Functions:
!he !SOUTPUT routine supervises the movement of TSO data
from TSO buffers into TCAM buffers. The routine must qet empty TCAM
buffers, fill these buffers with TSO data, return the TSC buffers to

408

the TSO available buffer queue, and route the full
appropriate TSO terminal fer cutput.

~CAM

buffers to the

When a user issues a TPUT instruction te request output of a
messaqe, the !FU! SVC moves the messaqe into TSO buffers and turns on
the OCBTPUT tit in tne Destination QCB.
This causes the Send
Scheduler to tpost an EBB to the ~SOUTPU~ QCE to request TCAM ~uffers
for the messaqe from TSO.
The TSOUTPUT
routine
satisfies
this·
initial
request
by
constructinq the required number of TCAM tuffers from units taken from
the buffer unit pool. The routine determines the number of units per
buffer accordinq to the buffer size specified in the DCE er in the
Terminal Table entry and determines the number of tuffers for the
initial request from the value specified in the DCB BUFOUT parameter.
If while buildinq the ~CAM buffers, the TSCU~PU! rcutine cannot
obtain units, it ~laces the ERE on the Buffer Return QCB element chain
and exits to the TCAM Dispatcher.
When a unit is availatle,
the
Buffer Return routine (IEDCGD) tposts the unit to the TSOUTPUT QCB at
its secondary entry peint - IEDAY002.
If, in this situation, the
LCBERPOp· bit in the LCB is off, the 'SOUTPUT routine continues to
build buffers. If, however, the error bit is on, .the routine t~osts
the unit and any part of a TCAM buffer that is built to the Buffer
Return QCE to free the units,· tposts the ERE to the address in the
LCERCQCB field, and exits to the TCAM Dis~atcher.
As each unit is obtained, the 'SOUTPUT routine branches to the TSO
TIOC Edit routine (IEDAYEl to move data frcm the TSO buffers into the
unit. The TSO TIee Fdit routine also edits the data from carriaqe
control characters, reserve characters, new line characters, simulated
attention characters, and EOT characters. The TSC TIOC Edit routine
issues a QTIP SVC to update the data count in the TSO buffer(~)
from
which it has mcved data.
This routine then places one of the
followinq return codes in reqister 15 and returns to the TSOUTPUT
routine:
X'OO' -

A complete TSO messaqe has beer: meved.

X'OC' -

A complete TSO messaqe has not been moved and the
terminal line is net filled, that is, not ready for
transmission.

X'10' -

A complete ~So messaqe has
terminal line is filled.

not

been

moved,

but

the

When the !SCUTPUT routine reqains centrel from the TSO TIOC Edit
routine, it examines the return cede and executes accordinq to that
value.
•

Return code of X'OO'
When a com~lete TSO messaqe has been meved into TCAM tuffers, the
TSOUTPUT routine examines the TSB to determine whether automatic

pxogram Organization

409

promptinq is specified. If so, the routine sets
indicator in the SCB(SCBALN). The reutine then
messaqe" indicator in the 1CB, tposts the
buffers to the Activate OCB to initiate sendinq,
TCAM Dispatcher.
•

the corresponding
sets the "end of
ERE with the full
and exits to the

Return code of X'OC'
When a com~leteTSO messaqe has not teen mcved and the terminal
line is net filled, the 7S0UTPUT rcutine determines whether a
complete TeAM buffer has teen constructed. If not, the routine
qets another unit from the buffer unit pool and repeats the
procedure to fill it. When a com~lete tuffer has been built and
there is still part of the 7S0 messaqe to be moved, the TSOUTPUT
routine deterrrines wbether the maximum number of TCAM buffers
allowed for this request has been reached. If nct, the routine
continues to build buffers.
Otherwise, the routine sends the
buffers already constructed by tpostinq the ERE to the Activate
OCB. If dynamic bufferinq is not specified (PCI specified in the
nCB), the routine sets the "end of messaqe" indicator in the LCB
(LCBECMSG) refore exitinq to the TCAM Dispatch~r.

•

Beturn code of X'10'
When a com~lete TSO messaqe has not been mcved and the terminal
line is filled, the TSOUTPUT routine t~osts the ERE with the data
in the TCAM tuffer(s) and/or ~art of a tuffer to the Activate QCE
and then exits to the TCAM Dispatcner.

The PCI Appendaqe activates the TSOUTPU7 routine when the 1CBEOMSG
bit is off and dynamic bufferinq is s~ecified. The appendaqe tposts
to the TSOUTPUT QCB an ERB to request more TCAM buffers when the data
in the current tuffers is successfully transmitted. The TSOUTPUT
routine p' ocesses this request the same as an initial request except
that the TSOUTPUT routine individually t~csts each TCAM tuffer built
to the appropriate TCAM messaqe handler. For all except the first PCI
request, the rcutine can tpost only cne TeAM buffer before q1v1nq
control to the TCAM rispatcher.
On subsequent PCI requests when the
LCEERECT bit is not equal to zero, the TSOUTPUT routine must tpost its
own OCB to itself before branchinq to the TeAM Dispatcher.
The Send Scheduler activates the TSOUTPUT routine when the data in
the TCAM buffers bas been successfully sent and the LCEEOMSG bit is
on.
The scheduler tposts to the TSOUTPUT QCB the last TCAM buffer
from which data was sent. The TSOUTPUT rcutine frees the empty TSO
buffers and removes any wait conditions that are relieved by freeing
these buffers. If the LWAIT can be relieved or if the TSINPUT routine
(TEDAYI) is holdinq TCAM buffer~, the TSCUTPUT routine tpests the
TSTNPUT OCE to itself. Next, if there are rrore messaqes to send or if
the user has hunq up, the routine leaves the TCBTPUT bit on so that
the Sen~ Scheduler will tpost the TCAM Suffer to the Buffer Return QCB
and returns centrel to the TCAM Dispatcher.

410

Note from the discussien in the precedinq ~araqraph that as lonq
as the OCBTPUT bit is en r that is, as lenq as there is data on ihe
output queue. "initial" requests for TCAM tuffers continue to occur.
Tn this way a TSO messaqe that is toe leng to be contained in the
number of TCAM tuffers allowed in an "initial" request (in one output
line). are com'f:letelv s:ent even if ·dvnami c tuffer inq is net s'f:eci fied.
The Send Scheduler also activates the ~SOUTPUT routine when there
is no data on the out~ut queue.
In this case r if a break-in message
has 1ust been sent and there is a bartial input messaqe on the input
queue to be sent to prem'f:t the user (TSEERKIN is on),
the TSOUTPUT
routine issu~s a CTIP SVC to indicate that tbe ~artial in~ut situation
is handled (TSBBPKIN is off and ~SEBIPI is on) and to put the partial
input messaqe on the output, as well as the in~ut, queue.
After this,
the messaqe is ~recessed like any ether roessage except that when the
messaqe is successfully sentr
the TSOU~PUT routine leaves the TSO
buffers on the in'f:ut queue (does nct frEe tbem).
When the Send Scheduler activates the ~SOUTPUT routine with no
data on the eut~ut queue and the TSBE~KIN bit is off, the TSOUTPUT
routine Retermines whether the user is beinq logged off
(TSEDISC is
on) •
If so. the routine activates CPE Initialization (lEDOFA) to
restore the TCAM control blocks and to facilitate another leq on.
On
return.
the ~SOUTPUT routine restores the TSO centrol blocks and
determines whether there are any abnormal conditions that require
special messaqes to be sent to the terminal user.
If a special
messaqe is required. the routine exits to the TSO Message Generation
routine
(TFDAYM)
to transmit the messaqe.
If no loq off messaqe is
required. the ~SOUTPUT routine determines whether automatic 'f:romptinq
should be started
(~SESTAUT
is on).
If so, the rcutine turns off
TSBSTAUT and exits to the TSO MessaqeGeneration routine, which sends
the automatic 'f:reropt messaqe. If there are no special messaqes to be
sentr the TSOU~FU~ routine tposts the LCE tc itself and exits to the
'T.'CAM Dispatcher.
When an ERE is t~csted to the ~SOUTPUT QCE and the recall
indicator (lCEFCLIN) is on r an input/eut'f:ut error has occurred.
For
an input error
(LCBRECVN is on). the TSOUTPUT routine reinitializes
the ~CAM buffer to receive the input messaqe again, t~osts the ERB to
the address in LCBRCQCB,
and exits to the TCAM Dispatcher.
For an
output error (lCBSFNDN is on), the TSOUTPUT routine issues a QTIP SVC
to reinitializ€ the TSO buffers that ce~tain the messaqe to be resent
to appear as they did oriqinallv on the "initial" request.
At this
ooint, the TSOUTPUT routine processes tbe message like an initial
request r except that the reutine t'f:osts the ERE to the address in
LCERCQCB r rather than to the Activate QCE, tefore returning centrol to
the TCAM Dispatcher.
On any "initial"
request.
followinq tests ana functions:
1.

the

~SCU~PU!

routine

performs the

If TSO is atendinq (AVTTSAB is on), the ~SOUTPUT routine exits to
CPB Initialization to initialize the TCAM centrol blcCKS and, on

Program Organization

411

return, sends an abend messaqe
Messaqe Generation routine).

to

the

terminal

(via

the

TSO

2.

If a hardware attention has occurred (SCEATTN is on), the ~SOUTPUT
routine t~csts the LCB to the ~SO Attenticn routine
(lEDAYA)
and
exits to the ~CAM Dispatcher.

3.

If a hanq UP situation exists (TJEHUNG is on), the TSOUTPUT
routine
clears the input and output queues, activates CPB
Initialization to initialize the TCAM centrol blocks, initializes
the TSO control blocks, and exits to the TCAM Dispatcher.

On subsequent or PCI requests, the ~SOUTPUT routine c~ecks for a
hardware attention (SCBA~TN is en).
If a hardware attention is
indicated, the !SbUTPUT routine puts zeros in the ERE buffer chain
pointer field and exits to the TCAM Dispatcher.
Otherwise, if the
LCBERROR bit is on, the routinetposts the ERE tc the address in
LCERCOCE and exits to the ~CAM Dis~atcher.
When a display station user enters data on the last er next-tolast line of the screen, the data is erased. In this situation, the
TSINPUT routine sets the TSBBRKIN bit in the 'SP. When the ISOUTFUT
routine qains cor.trol and this bit is on, the routine must resend the
last input messaqe or, if the messaqe is lcnq, the last full input
line and any fraqment of a line. The ~SOUTPUT routine handles this
situation like a partial input line with a treak-in except that after
handlinq the dis~lav messaqe the routine turns off the TSBBIPI bit.
mhis differentiates the display messaqe situaticn from a real break-in
situation.
External Routines:
•

TEDAY~ - TSC TIoe Edit routine - to move data from TSO to the TCAM
tuffers ana tc edit the data fer centrel characters.

•

IEDQFA - CPB Initialization routine
processinq.

•

OTIP SVC - TSO SVC -

to

reusa~le.

Suhtask for TCAM-TSC Mixed (Chart YF}

Module Name:

412

F€entrant, refreshable,

IEDAYF

cleanup
buffers.

tuffer prefix, QCB, SCB,
TSE, Time Sharinq eVT,

TST.

STA~~MH

TeAM

to update the data ceunt in the TSO

Tabl~s/Work
Areas: AVT, CVT~ DeE, E~B, ICE,
~~CB, TIOCBUF, TIOCRPT, TJB, Terminal Table,

Attributes:

perform

Bntry Point:
IEDOAA01
activated by the ~CAM Dispatcher when a
buffer is tposted to the STARTMH QCB to initialize the buffer before
sendinq it threuqh a TCAM er TSO messaqe bandler.
Functions:
The STARTMH subtask for TCAM-TSO Mixed initializes a
buffer before sendinq it throuqh a TCAM er ~SO messaqe handler.
The
functions vary dependinq upon whether the tufter is a header or a text
buffer, and whether it is to be processed ty the incominq or outqoinq
side of the messaqe handl~r.
The STAFTMH subtask for TCAM-TSO Mixed first checks for a recalled
buffer.
If the buffer is recalled, the suttask
performs
no
initialization but does check for translation.
If the buffer is an
outqoinq buffer and the destination terminal is in lock mode,
the
subtask increments the LeB count of outstandinq lock responses
(LCBINCAM) and turns off the prefix lock bit
(PRFEOFF).
If the
buffer,
incominq or outqoinq,
is a TCAM/TSO buffer, the subtask
initializes the LCB reserve count (LCEISZE) to zero.
Then the subtask
checks to see if the buffer is a header or a text buffer.
For all
header buffers the surtask sets the address in the SCE multiplebuffer-header entry (SCEMBHEN) to zero.
Next, the TSC STABTMH subtask
checks to see if the buffer is to be processed by an incominq or
outqoinq MH.
The subtask then tailors the processinq tc each of the
four situations.
?or an incominq header buffer, the STAFTMH surtask for TCAM-TSO
Mixed initializEs the prefix field (PR~SRCEl from the current terminal
index in the ICE (LCBTTCIN).
The subtask then clears the SCB priority
(SCB?RIl
and cutoff ccunt
(SCEEKFCT)
tc zero. If the buffer is a
TCAM/TSO buffer, th~ subtask branches to the exit code.
If the buffer
is strictly a ~CAM buffer, the surtask sets the prefix scan pointer
(PRFSCA~)
to peint to the last byte ef the prefix, or to the last
reserve characler, if specified.
If the seurce of the messaqe was an
application
~rcqram,
the
suttask branches to the exit code.
Otherwise, the surtask checks to see if an FOA sequence was defined in
the Special Characters Table.
If the sequence was defined,
the
subtask links to the Skip Forward and Scan routine (IEDQAI) to see if
the ~OA sequence is in the buffer. If the EOA sequence is in the
buffer, the subtask sets the prefix scan pointer to point beyond it.
For 1030s and Remote 2260s the suttask moves the prefix scan pointer
beyond the addressinq character that fellows the EOA sequence for
these devices.
The subtask then determines if the terminal is in lock
mode and if sc branches to the exit code.
Ctherwise,
the subtask
checks to see if the buffer contains an On-line Test message.
~or
binary svnchroneus (BSC) lines the subtask checks a bit
(LCBSYNCl
in
the LCB:
for start/stop lines the surtask links to the Skip Forward
and Scan routine to see if an On-Line Test sequence is in the buffer.
If the buffer contains an On-Line Test messaqe, but On-line Test is
not in the system, the subtask sets a bit in the SCB error word
(SCBOLTR)
and branches to the exit code. If On-Line Test is in the
system, the subtask sets the On-Line Test priority bit
(PBIONLT)
in
the buffer prefix and exits to the Dispatc~er post function to tpost
the buffer to the On-Line Test QCE.
If the tutfer does net contain an
On-Line Test messaqe, the subtask branches to the exit code.

El:cgram Cx:ganization

413

For an inceminq text buffer,
the STAFTMH subtask for TCAM-TSO
Mixed initializes the prefix source field as for an inceming header
bufter.
If the MH to receive the tuffer is a TSO MR,
the subtask
checks te see if the destinatien is in the TSINPUT QCB. If the
destination is not in the OCE, the suttask checks f o r a LeGeN exit.
If one is net
present,
the suttask branches te the code for a
translation check.
If a LOGON exit is present,
the
subtask
establishes a new OCE and MH, and branches to the new MR.
If the MH
to receive the tuffer is net a TSO MR, the subtask initializes the LCE
reserve count from the ceunt specified in the DCB at DCEFESER+1,
and
sets the prefix scan pointer te point te the last byte of the text
prefix, or to the last reserve character,
if specified.
~hen
the
subtask branches to the translaticn ch~ck ce~e.
For an outqoina header tuffer, the S~~FTMH suttask for TCAM-TSO
Mixed immediately branches to the exit code
if it is a TCAM/TSO
buffer.
If the buffer is a TeAM buffer, the subtask checks for a
LOGON exit.
If one is present, the subtask sets up and branches to
the new MH as described above.
If no LeGON exit is present, the
subtask perforres FEPO updatinq.
Normally, the suttask updates· the
FBFO pointer in the Destination
(priority) QCB, and turns off the
'currently senainq' flaq in the Master QCE.
However, there are three
situations in wbich this is not done; (1) if the destination terminal
is in lock mode with an applicaticn proqram, the subtask cannot update
the F~FO pointer until the terminal is unlocked; (2) if the line is in
initiate mode, the subtask cannot update the FEFO pointer until the
last buffer of the initiate messaqe has teen processed throuqh the MH;
(3)
if a text transfer error qeneTated a zero~lenqth buffer, the
subtask cannot update the FEPO pointer because the tuffer will not be
sent to the destination.
If the destinatien terminal is in toth lock
and e~ended
leek modes,
the suttask turns off both leek bits
(SCBLCKIN and SCBMSGLN).
After it has ccmpleted any FEFO updating,
the subtask sets the LCB reserve count to zerc for zero-Ienqth
buffers,
or te the value in the scan pointer for non~zero-lenqth
buffers.
The subtask sets the prefix scan ~cinter to point to the
last byte of the header prefix, cr to the last reserve character, if
specified.
In addition, for non-zero-Ienqth buffers the suttask links
to the ~ermname Table code (IEDOTNT) to qet the terminal entry, saves
the
current output sequence number in the SCE
(SCEOSEQ),
and
increments the cutput sequence number in
the
terminal.
entry
(TRMOUTSO) .
If this sequence number then exceeds the maximum output
sequence number, the subtask branc}es tc the exit code.
For an outqcinq text buffer,
the STARTMH subtask for TCAM-TSO
Mixed
immediately branches to the translation check code if the
buffer is a TCAM/TSO buffer.
Otherwise, the suttask checks for a
LOGON exit.
If ene is ~resent, the suttask sets up and branches to
the new MH as described above. If no LOGeN exit is present,
the
subtask initializes the LeB reserve count to zero, sets the prefix
scan pointer to peint to the last byte ef the text prefix,
and
branches to the translation check cede ~scribed below.
~he STAFTMH subtask form TCAM-TSO Mixed handles buffer translation
for the followinq types ef buffers~ (1) inceminq text buffers directed

414

to a non-TSO MB;
(2)
incominq text tuffers directed to a TSO MH
without a LOGON exit: (3). outqoinq TCAM (non-~SO) header buffers;
and
(4) all recalled tuffers. The translation cbeck' code first checks for
a zero-lenqth buffer.
A zero-Ienqth buffer is not translated.
Next
the translaticn check code checks the SCE te see if a translation was
requested.
If no req~est was made, the buffer is not translated.
If
a request was made, the subtask links to the Translate Buffer routine
(IEDOAW1.
via the User Interface routine (IEDQUI), to translate the
buffer.
If the SCB multiple-buffer-header field is zero, the subtask
brancbes to the exit code.
If not, the subtask indicates the presence
of the multiple-tuffer header by settinq a neqative value in reqister
o and loadinq the address of the User Interface routine in reqister 15
before branchinq to the exit code.
The exit cede of the STARTMH suttask for ~CAM-TSO Mixed qets the
address of the first instruction in the MH and sets an increment of
4096 in reqister 2 for multiple base reqister support.
If a multiplebuffer header is present, the subtask sets a condition code of 4 in
the Psw.
otherwise it sets a ccnditicn cede of 1 in tbe PSW if the
line is sendinq or 8 if the line is receivinq.
These condition codes
are tested ty the code qenerated by the S~ABTMH macro instruction.
The subtask then exits to the first executatle instruction of the MH.
External Routines:
•

IEDOAl - Skip Forward and Scan routine
to scan
sequence or On-Line Test sequence in the tuffer.

•

lEDQAW -

•

IEDOTNT - Termname Tatle code - to qet tbe terminal entry for
destination of an outqoinq header buffer.

•

IEDQUT - User Interface routine - to link to lEDQAW
the buffer ana to re-enter an uncompleted routine.

~ranslate

for

an

EOA

Euffer routine - te translate the tuffer.

to

the

translate

Tables/Work Areas;
AVT, LCB, SCE, nCB, DEE, nCB, QCP., buffer prefix,
terminal entry, Special Characters Table, TFRIOF, EBB.
~ttributes:

Serially

reusable,

refreshatle,

enabled,

resident,

problem mode.

TSO Simulated Attention Foutine (Chart YS1
Module Name:

IED~YS

Entry Points:
•

IEDAYS - receives control from the TCA~ User Interface routine
(TEDOUI) to handle simulated att~ntion tv character strinq.

Prcgram Organization

415

•

IEDAYS2 - receives centrol from the TSC TIOC Edit routine (IEDAYE)
to handle simulated attention ty line count.

•

IEDAYS3 - receives centrol from the !CA~ Dispatcher (IGG019RB,
handle simulated attention by time delay interval.

to

Tbe TSO Simulated Attenticn routine handles simulated
attention for !So. The three ways ef simulatinq attentions are (1) by
character strinq, (2) by line count, and (3) by time delay interval.
~unctions:

For simulated attention by character strinq, the ~sc Simulated
Attention routine first checks to see if the Time Sharing tuffer was
read by the Siroulated Attention Read channel program. If it was not,
the routine checks to see if the device is a 2260. If the device is
a 2260 and the screen is full, the routine sets the "erase display
request" bit ir the SCB error werd.
The ~SO Simulated Attention
routine then scans the buffer for a clear character string, which
indicates that the screen is to be erased irrmediately. If this strinq
is present, the routine immediately tposts the buffer to Buffer
~eturn, ana no additional simulated processinq takes place.
.
If the device is not a 2260, or if nc clear character string is
present in the cuffer, the TSO Simulated Attention routine checks the
OCE to see if simulated attenticn by character strinq was requested.
I~ it was not, the routine returns contrel
to the Return Interface
routine.
The TSO Simulated Attention routine also returns control
immeaiately if a simulated attenticn by character strinq was requested
but no valid simulated attention character string is found in the
buffer.
If the routine finds the character strinq, it checks to see
if a valid attention level
(a number 1 throuqh 9 followed by a
carriaqe return or a new line symbol) was also entered. If it was
entered, the reutine sets the attention level in the SCB. An invalid
attention
level causes the TSC Simulated Attenticn routine to
immediately return to the Return Inter~ace routine. After settinq the
attention level, this routine sets on the "simulated attention
request" bit in the SCB error word, tposts the buffer to Buffer
Return, and returns control via the Return Interface.
If the buffer was read by the Simulated Attention Fead channel
proqram, the TSO Simulated Attention routine turns off the "simulated
attention read" bit in the Destination QCB. In this case, a simulated
attention character strinq is not required. If one was entered, the
routine checks it for validity, and also checks the attention level.
~owever, in this case, an invalid character strinq or attention
level
does not prevent the buffer from beinq t~osted. Instead, the routine
sets an attenticn level of zero and t~osts the buffer and returns as
stated above. Also, in this case, the routine automatically sets the
"erase display request" cit for 2260s, but makes no check for a clear
character strinq.
For simulated attention by line count, the TSO Simulated Attention
routine counts each physical output line and keeps the count in the
ryestination OCE. When the threshold specified by the user in the
Terminal status Block is reached, the routine requests ,a special

416

simulated attention channel ~roqram by settinq cn the "simulated
attention read request" bit in the QCB and settinq the cutput line
count to zero befcre returninq to the Edit routine. This is not done
when the device is a 2260.
For simulatEd attention bv time interval, the TSO Simulated
Attention routine receives control from the Dis~atcher when a QCB is
removed from the time delay queue. If simulated attention bV time
delay was net requested.' the TSO SimulatEd Attention routine returns
control to the Dispatcher. Otherwise, the routine issues a OTIP SVC
(SVC 101) with entry code 26 to turn off the "QCE tposted" flaq and
determine if a TPUT has teen requested. If a TPUT is requested, the
TSO Simulated Attention routine tposts the OCB to itself and returns
. control totbe Dis~atcher.
Otherwise, the routine requests
a
simulated attention read • . If the rCB is free, the routine removes the
LCB from the time delay queue and tposts it to itself.
Rxternal Routines:
•

IFDOTNT - Termname Table code - to qet the terminal entry from the
index.intbe LCE.

•

OTI? SVC (101) - entry code 26 - to turn "QCB
and determine if TPUT is requested.

tposted"

flaq

off

Tables/Work Areas:
CVT, Time Sharinq CVT, TSB, ICE, SCE, AVT, QCB,
TSID, terminal eritrv, current buffer prefix.
Attributes:
Serially
problem proqram mOde'.

reusable,

TSO Abend Interface Routine
Module Name:

refreshable,

(Cha~t

enabled,

resident,

YT)

TEtAY!

Entrv Points:
•

IEDAYTO - receives
abends.

control

from

the

OS

Supervisor

when

TCAM

.IEDAYT1 - 'receives centrol from the as Supervisor when an attached
task abends.
•

IEDAYT2 - receives centrol from the EXCF Driver (IGG019BC) when no
space is available on a nonreusable disk queue and a flush
closedown has been initiated.

The Abend Interface routine informs TSO when TCAM abends,
when an attached TCAM task abends, or when, in a mixed TSO/TCAM
environment, the EXCP triver abends because no space is available on
a nonreusable disk queue and a flush closedown has teen initiated.
~unctions:

PIoqram Organization

417

If TCAM abends, the Abend Interface routine issues the TCABEND
macro instruction, which turns off the TCA~ ready tit in the CVT.
If
the CVTTSRDY, bit in CVTTSFLG is on, indicatinq that TSO is active, the
TCABEND macro instruction also indicates that the Time Sharinq Control
task (IKJEAT03) is to step by turninq on the TCASTOP 'bit in the Time
Sharinq CVTr
and by postinq the Time Sharinq Ccntreller ECB in
TSECETAB complete.
If an attached TCAM suttask abends, the At~nd Interface routine
qains access to all the elements that were tposted to the abendinq
subtask from the ready queue and the task QCB and disposes of them
that iS r buffers are placed on the Buffer Return queue and LCBs are
tposted to themselves.
If the abendinq task is either Checkpoint or
On-lin~
Test, the Abend Interface routine clears the OCE STCB link
address, sets the OCB element chain to point to the dummy last element
address in the AVT, and resets the QCB flaq to indicate that it is a
OCB.
This is dcne to indicate that the abendinq task ne lenger exists
in the systerr.
If the abendinq task is Operator Centrol, the
procedure is the same as when the EXCP Driver abends.

If r in a mixed TSO/TCAM environment, the E~CP Driver abends
because no space is available on a nonreusable disk queue and a flush
clesedown has teen initiated, the ~SO Abend Interface routine issues
the AOCTL SVC 102 to tpost the Abend routine ECE to the ready queue.
It also issues the !CABFND macro instructien, which performs the same
functions as when TCAM abends.
External Routines:
•

IGC102 - AOC~1 SVC 102 routine subtask FCE tc the ready queue.

•

TCABEND (SVC ~4) - to turn off the TCAM ready
Time Sharinq Control task.

Tables/Work Areas:
Attributes:

TSO

t~ost

the

Abend

tit

and

Interface
stop

the

AVT, QCB, CVT, TSID, STAE work area.

SeriallY reusable, enabled, prcblem proqram mode.

INMSG/OU~MSG

Module Name:

to

linker

(Chart YX)

IED~YX

Entry

Point:
IEDAYX
receives centrel from Buffer Disposition
to previde linkaqe to the !SO Attention or the TSC Hangup
routine when ATTFN or HANGUP macro instructions are coded in the INMSG
or OUTMSG suboreu~s.
(I~DOBD)

Functions:
The TSO INMSG/CUTMSG Linker provides linkaqe to the TSO
Attention and TSO'Hanqup routines (TEDAYA and IEDAYH, respectively).
If the linkaqe is 'to the TSO Hanqup routine, the TSO INMSG/OUTMSG
Linker obtains the address of the routine from the macro expansion

418

that was passed. If the linkaqe is to the ~SO Attention routine, the
Linker obtains the address of the routine from the S~AFTMH macro
pointed to in the DCE. Before it branches to either routine, the TSO
INMSG/OUTMSG linker sets the ERB priority and tposts the ERB to Buffer
Disposition.
~xternal

Routines:

Tables/Work Areas:

None.
AVT, LeE, DeB.

Attributes:
Serially
problem proqram mode.

TSO Asynchronous

Module Name:

~ime

reusable,

Delav Removal

refreshatle,

~outine

enabled,

resident,

(Chart YY)

IED~YY

Point:
IEDAYY
receives centrol when it
asynchronously frem TIOC modules tc remove ceBs from the
queue.

~ntrv

is tposted
time delay

Functions:
~he
TSO Asvnchronous Time Delay Removal routine removes
OCEs from the time delay queue when a send or receive operation is to
be initiated.
~he
routine first checks to see if it"has been
activated (tposted to the ready queue) by a TIOC module~
If it has
not been activated,
the !SO Asynchronous Time Delay Removal routine
returns contrel to the Dispatcher to dispatch the next subtask.
If it
has been activated, the routine deactivates itself, by markinq its QCE
not tposted, and obtains the addresses of the previous and current
elements on the time delay queue.
The routine then scans the time
delay queue lcckinq for a Time Sharinq QCB with both the Write Break
flaq and the TPUT request flaq on. Each time it finds such a QCB, the
TSO Asvnchronous Time Delay Pemoval rcutine performs the followinq
functions.
It updates the link field of elements on the time delay
queue.
It sets the time delay flaq in the QCB to indicate that it is
no lonqer in the time delay queue. It t~osts the QCB to itself to
initiate a send operaticn. The routine then loads the tpost reqister
(B1) with the address of the QCB to be tposted to the ready queue and
links to the Dispatcher tpost function to t~ost the "QCE.
When the ~SC Asynchronous !ime Delay Removal routine receives
control aqain from the Dispatcher, it continues to scan the time delay
queue, lookinq for the next OCB to be removed. When it has searched
the entire queue, and has removed all the applicable CCEs, the TSO
Asvnchronous Time Delay Removal rcutine branches back to the beqinninq
to see if anotber interrupt has occurred tc reactivate it. If no such
interrupt has occurred, the routine returns to the Dispatcher. If an
interrupt has occurred, the rcutine re~eats the entire ~rocedure
outlined above.
External Routines: IGG019RB or TGG019RO - the TCAM
tpost the OCBes) to the ready queue by priority.

Dispatcher

Program Organization

to

419

Tables/Work Areas:
Attributes:
mode.

~ime

AVT, QCE, TSIr.

SeriallY reusable, refresharle, enabled, prcblem proqram

Sharinq Scheduler (Chart YZ)

Module Name:

I!DAYZ

Entry Points:
•

AYZOOO - activated by the Leased Receive Scheduler (IGG019R3)
determine whether or not to initiate a Fead operation.

to

•

AYZ100 - activated by the Dial Receive Scheduler (IGG019R1)
determine whether or nct to initiate a Read operation.

to

•

AYZ200 - activated by the Line End Appendaqe
(IGG019~O)
when a
neqative res~ons€ to pollinq has teen received to determine
whether or r:ot ancther ~oll operatien is desired.

•

AYZ300 - activated from the QEV~NT subroutine' in the Leased
Receive Scheduler (IGG019P3) to qenerate a Prepare channel proqram
when a line ccnnected to a 2741 is to be freed,

•

AYZ400 - activated by the Send Scheduler (IGGC19F4)
when it is
dispatched from the QCE to determine whether a write Break channel
command can be issued.
AYZ410 - activated by the rime Sharinq Destinaticn Scheduler
(IEDAYD) to determine whether or not a Write Break channel command
can be issued.

•

AYZ500 - activated by the Send Scheduler (IGG019B4)
when it is
dispatched from the LCE to determine wbether or net to initiate a
send operation.

•

AYZ600 - activated by the Activate-TIC Generator subtask
before it builds an input or output channel proqram.

(lEDQRA)

The function of the Time Sharinq Scheduler varies
dependinq upon the routine from which it receives control and at which
entry point.

~unctions:

If the Time Sharinq Scheduler is entered from the leased Receive
scheduler (IGG019F3) at entry point AYZOOO, the scheduler links to the
Termname ~able code (IEDQTN~) to qet the terwinal entry, from which it
qets the address of the Destination QCB. If the terminal is not
dedicated to a Tirre Sharinq session, the scheduler updates the LCE
pointer to the current invitation list entry and returns centrol to
the Leased Receive Scheduler. If a terminal is dedicated to a Time
Sharinq sessicn, the Time Sharinq scheduler checks various schedulinq

420

bits in the OCE te determine whether to initiate a read operation.
If
a hardware attention interrupt has been received, the scheduier turns
off the "simulated attention read request" bit (CCESATFD) in the QCE
and exits to the tispatcher post functien tc t~ost the ICE to the TSO
attention routine specified in MR.
The TSC Attenticn routine (IEDAY!)
activates TSO attention exits or indicates that certain attention
controled functions (such as line deletion) should be activated. When
the Time Sharinq Scheduler de6ides to beqin a read operation, it first
determines whether any ~equests for
a simulated attention read
override the read operaticn.
If so, the scheduler initiates the
special simulated attention read cha~nel ~rcqram.
If no read operation is to be started, the Time Sharinq Scheduler
checks to see if a simulated attentien by time delay interval was
requested.
If this simulated attention was requested, the scheduler
checks to see if a send operation was requested or if the QCB is
already in the tine delay queue.
If neither of these conditions
exists, the scheduler sets the pricrity, the time delay interval, and
the time delay flaq in the OCE and links to the ~ime Delay subtask
(IEDOHG)
to insert the QCE into the time delay queue.
The scheduler
then updates the invitation list pointer to point to the next entry,
updates the ICE pointer to the currently connected terminal, and
branches back to the beqinninq to qet the terminal entry and QCE
address for the new terminal and to repeat tbe procedure for it.
When
the Time Sharinq Scheduler r~aches the end of the invitation list, it
checks to see if all entries were polled. If they were, the scheduler
sets the "start of pollinq list" bit and returns control tc the Leased
Receive Scheduler. If no entries ~ere polled, the scheduler sets the
invitation list pointer to point to the first entry and exits to the
Dispatcher bypass function to immediately activate the next STCB in
the LCB chain.
If a read o~eration is to be started, the Time Sharing Scheduler
checks to see if the QCE is in the time delay queue. If it is,
the
scheduler links to the Time Delay suttask (IEDQHG) to remeve it from
the queue.
'Finally~ the scheduler turns en the "time
sharinq buffer
prefix" bit
(lCBTSBUF)
in the LCB, updates the ICB invitation list
pointer, and returns centrel to the Leased Receive Scheduler.
When the ~ime Sharinq Scheduler is entered from the Dial Receive
Scheduler
(IGGC19R1)
at entry pcint AY2100, the scheduler makes the
same tests as above to determine whether or not to initiate a read
operation. The scheduler does the same processing to insert or remove
a OCB from the time delay queue or to tpost the LCB to the TSO
Attention routine.
If no reqular read operation is to be started, but a simulated
attention read was requested, the Time Sharinq Scheduler turns off the
"neqative res~cns€ to pollinq" bit (LCBNFGRF) in the LCE and initiates
the special simulated attention read channel proqram. Otherwise,
after performinq any necessary time delay ~rocessinq,
the scheduler
frees the line,
puts up a Prepare channel program on the line to
monitor for an at.tention interrupt, turns off the "send priority" bit
(LCBSNDPR)
and t~e "neqative res~onse to ~clling" bit in the LCB, and

Eroqram Organization

421

exits to
suttask.

the

'Dispatcher

dispatch

function

to

dispatch

the

next

If a reqular read operaticn is to be started, the Time Sharinq
Scheduler performs any necessary time delay processinq and checks to
see if a negative respcnse to pollinq was received on the last poll~
If a negative res~onse was received, the scheduler sets the LeE to repoll, ana checks to see if the pollinq delay interval in the DCB is
zero.
Tf the ~ollinq delay is not zero, the scheduler puts up a
~repare channel proqram to monitor
for an attention interrupt and
ex~ts
to the Dispatcher post functicn tc t~ost the ICE to the Time
Delay QCE. If the pollinq delay is zero, if a neqative response to
pollinq was nct received, or if a simulated attention read operation
is to be started, the Time Sharinq Scheduler turns on the "time
sharinq buffer prefix" tit in the ICB and returns control to the Dial
Receive Scheduler. When the entry is from the Dial Receive Scheduler
the Time Sharinq Scheduler does not update the invitation list
pointers.
The ~ime Sharinq Scheduler is entered at entry point AYZ200 from
Line End Appendaqe (IGGC19RO) when a neqative response to pollinq is
received. The scheduler first links to the Termname Tatle code
(TEDQTNT)
to qet the terminal entry frcm which it extracts the
Destination OCE address. The scheduler also qets the address of the
last buffer" frow the LeB. If neither the last entry polled nor the
next entry to be polled is dedicated to time sharing, the Time Sharing
Scheduler turns off the "start of ~cllinq'list" bit (ICBSCPL)
in the
ICB and returns control to Line End Appendaqe to poll the next entry
in the invitation list.
If the next entry to be polled is dedicated to time sharinq, the
Time Sharinq Scheduler checks the OCE schedulinq tits tc determine
whether or not to poll it. If the entry is not tc be polled, the
sche~uler
returns control to Line End Appendage to update the
invitation list pointer to point to the next entry.
If a simulated
attention by time delay interval was requested, the scheduler links to
the Time Delay subtask to insert the CCE into the time delay queue
before returninq to Line End Appendaqe.
If a TSO-dedicated entry is to be polled and itsQCE is in the
time delay queue, this routine links tc the Time relay subtask to
remove it. Then the sche~uler checks for both TSO and TCAM entries to
see if the last entry polled was also dedicated to TSO or TCAM.
If
both entries are not dedicated to the same system, the Time Sharinq
Scheduler ad1usts the addresses, ccunts, and in some cases the op
codes, in the CCis for all buffer units tc meet the requirements of
the current systere. The scheduler flaqs each buffer prefix as either
a ~So buffer or a TCAM buffer. For TSO buffers, the scheduler turns
on the "time sharinq buffer prefix" bit in the LCE. After it has made
all the ad1ustments, the scheduler re~urns control to Line End
Appendaqe to pel I the next entry.
Because this scheduler is disabled when it is entered from Line
End Appendaqe, special enabled code is included to link to the Time

422

Delay suttask, schedule an enal:led reentry to the ~ime Sharinq
Scheduler, and exit to the Dispatcher.
The Dispatcher,
in turn,
returns contrcl tc the scheduler in the enatled state.
The Time Sharinq Scheduler is enterEd at AYZ300 from the QEVENT
entry point in the Leased Receive Scheduler (IGG019R3) when TSO is in
the system.
QEVENT is dispatched as the last STCB in the chain of
scheduler STCEs for a line.
After it links to the Termnaroe Table code
and qets the address of the DCB, invitaticn list, and Destination QCB,
the scheduler checks to see if the followinq conditions are met:
(1)
the terminal is dedicated to a time sharinq ,session; (2) a Prepare is
not already up on the
line;
(3)
the terminal has the Attention
feature;
(4)
an attention exit was specified in the MH; and (5) the
invitation list consists of only are entry.
If all these conditions
are not met, the scheduler returns control to the QEVENT routine.
The
Time Sharinq Scheduler next checks to see if the terminal is a 2741.
If it is not a 2741. the scheduler checks tc see if the terminal can
time out.
If the terminal can time out, thE scheduler returns control
to the OEVENT routine.
If the terminal is inhibited from timin4 out,
the scheduler sets up a Prepare on the line, li~ks to the Activate-I/O
Generator subtask (IEDQKA) to build the channel ~rcqraro, and branches
to the routine specified below that issues the EXCP.
If the terminal is a 2741, the line is to te frEed.
If the LCE
indicates that a circle D has not been sent tc the 2741,
the Time
Sharinq Scheduler qenerates a write circle t - Prepare Channel proqram
to nut the line into receive mode and to monitor for an attention
interrupt.
If a circle D has been sent, the line is already in
receive mode,
sc the scheduler qenerates a Prepare channel proqram.
The scheduler puts the CCW startinq address in the LCB.
Then the
scheduler loads the IOE address in reqister 1, issues the EXCP SVC
(SVC 0) to start the channel proqram,
and returns contrcl to the
OEVENrr routine.
~he
Time Sharinq Scheduler is entered at entry point AYZ400 from
the Send Scheduler (IGG019F4) when it has tEen dispatched eff the QCB.
~he Time
Sharinq Sche0uler first checks. to see if a
simulated
attention read was requested. If it was, the scheduler passes control
to the Dispatcher at DSPUNAV to remove the STCB from its current eCE
and insert it in the Send Scheduler QCB.
If no simulatEd attention
read was requested.
the Time
Sharinq SchEduler checks to see if a
write Break was requested. If not, the scheduler returns control to
the Send Scheduler.
If a write Break has been requested, the Time
Sharinq Scheduler turns off the "read priority" bit (QCEREAt)
in the
OCB and tests several status bits in the 1CB and QCB to determine
whether or not it can issue a write Break channel ccmmand.
If it
cannot issue this channel command, the scheduler returns centrol to
the Send Scheduler. If the terminal is en a leased line, the Time
Sharinq Scheduler Ii nks to the Termname Tatle code,. qets the terminal
entry and extracts the OCB address.
If the terminal for which the
Write Break was requested is not currently connected, the scheduler
returns control to the Send Scheduler.
OthErwise, the Time Sharinq
Scheduler qets the address of the first buffer (in LCELSPCI), turns on
the "write treak in ~roqress"
bit (lCBWRBBK) in the LeE, qets the

Program Organization

423

address of the DCE, and issues an IOHALT SVC
(SVC 33).
line End
Appendaqe handles the IOHAlT interrupt which causes a Ereak channel
prcqram to be executed.
After it issues the IOHALT, the Time Sharing
Sch~duler
passes control to the Dispatcher at DSPUNAV to switch the
STCB to the Send Scheduler QCE.
The Time Sharinq Scheduler is entered from the Time Sharing
nestination Scheduler
(IEDAym at AYZ410 when a Write Break has been
requested.
The processinq is the same as wben entered from the Send
Scheduler above,
except that the first two checks for simulated
attention and Write Freak are bypassed, and the Time Sharing Scheduler
always returns control to the Time Sharinq Destination Scheduler.
The Time Sharinq Scheduler is entered from the Send Scheduler at
AYZ500 when it has been dispatched off the ICB.
If a TSO session is
not in proqress,
and no non-TSO
(queuinq)
functions are to be
performed,
the lime Sharinq scheduler returns control to the Send
Scheduler to put the Send Scheduler STCB tack in the QCB chain.
If a
non-TSO output
function
is to be performed, the scheduler returns
control to the Send Scheduler to initiate a send operation.
If a TSO
session is in ~roqress, the Time Sharinq Scheduler checks the various
schedulinq bits in the OCB to determine whether or not to initiate a
TSO send operation.
If a send operation is to be performed, the
scheduler returns control to the Send Scheduler t6 do so.
If a
simulated attention Read or a
Read of a partial input line is
requested, it takes priority ever eutput.
In this case if the LCB is
in
the time delay queue, the Time Sharinq Scheduler links to the Time
Delay surtask to remove it.
Then the scheduler t~osts the LeB to
itself and ~asses control to the Dispatcher bypass function to
immediately activate the next STCE in the LCE chain.
~he Time Sharinq Scheduler is entered at AYZ600 from the ActivateI/O Generator subtask (IFDOKA) befcre it tuilds an input or output
channel proqram.
The scheduler links to the Termname Table code, gets
the terminal entry, and extracts the OCB aadress.
If a TSC session is
not in
proqress, the scheduler immediately returns centrol to the
Activate-I/O Generator module.
Fer input, if a hardware attention was
received, the Time Sharinq Scheduler t~osts the LCB to the TSO
attention routine specified in the MR.
If a TPUT was requested, the
scheduler tposts the LCB to itself.
In either case, the scheduler
passes control to the Dispatcher chain function to tpost the input
buffers to the Buffer Return routine (IEDQGE1.
If a Prepare is up on
the line, the scheduler issues an IOHALT SVC (SVC 33) to halt I/O on
the line.
Then the scheduler makes another check for a ha~dware
attention,
and,
if one was received, processes it in the same ~anner
as above.
Otherwise, the Time Sharinq Scheduler returns control to
the Activate-I/O Generator subtask after the ICHALT.
~xternal

•

424

Foutines!

IEDOTNT - lermname Table code - to qet the terminal entry from the
terminal er line entry in the ICB.

•

IEDQHG - ~ime Delay suttask - to remove an ICE cr a QCE
time delay queue, or to insert a QCB into it.

•

IEDQKA - Activate-I/O Generatcr
channel ccmmand.

•

IGG019RB - TC~! Dispatcher at the dispatch entry peint,
to
provide for enabled re-entry to IEDAYZ after linking to IEDQHG,
when entered in a disabled state.

•

as IOHAIT routine (SVC 33) - to halt T/C en a line.

•

as EXCP routine (SVC 0) - to start a Prepare channel

subtask

to

buila

from
a

the

Prepare

~reqram.

Tables/Work Areas: CVT, Time Sharinq CVT, AVT, TSE, QCE, TSID, LCB,
DCE, SCB, tuffer prefix, terminal entry, invitation list, TFRIOB, ERE.
Attributes:
Reentrant, disabled when entered from line End Appendaqe,
otherwise
enabled,
supervisor mode when entered from Line End
Appendaqe, otherwise problem proqram mode.

Program Organization

425

Chart AA-J STARTMH SUBT ASK

"

"

"

"

4

IEDQ.TNT
GET THE ADDRESS
OF THE TERM I NAL
TABLE ENTRY

.

•
PUT THE
DESTINATION QCB
ADDRESS IN THE
SCB

8

B

.
C

.

•
GET THE ADDRESS
OF THE FIRST MH
I NSTRUCT I ON
FROM THE QCB

D

INCREMENT THE
SCAN PO INTER
PAST THE EOA
SEQUENCE

E

D

E

.
TEST THE 'SEND'
BIT TO SET
CONDITION CODES

F

F

.
G

I NCREMENT THE
SCAN PO INTER
PAST THE
ADDRESS I NG
CHARACTER

CLEAR THE SCB
MUL T I PLE-BUFFER
HEADER FIELD

G

H

H

·

..

J

J

·
K

.
CLEAR THE SCB
PRIORITY AND
THE SCB CUTOFF
COUNT

•

•
Proqram Orqanizaticn

427

Chart AA-2 STARTMH SUBTASK

,

A

,

,

4

,

CLEAR THE
DESTINATION QCB
ADDRESS I N THE
SCB

•

•

B

B

•

•
RESET THE
RESERVE
CHARACTERS
COUNT FROM THE
BUFFER

C

C

•
D

D

•

•

E

TEST FOR OL T
ERRORS

GET THE ADDRESS
OF THE MASTER
QCB

TEST FOR OL T
ERRORS

E

•
GET THE
TERM I NAL TABLE
ENTRY ADDRESS

F

•

F

•
GET THE ADDRESS
OF THE PRIORITY
QCB FROM THE
MASTER QCB

G

PUT THE OUTPUT
SEQUENCE NUMBER
I N THE SCB AND
ADD ONE

G

•
UPDA TE THE FEFO
POINTER IN THE
PRIORITY QCB
FROM THE SCB

H

H

•

•
RESET THE COUNT
TO ONE IN THE
TERM I NAL TABLE
ENTRY

J

•
K

•
428

4

Chart AA-3 STARTMH SUBTASK

,

•

4

•

A

•
B

I N I TI ALI ZE THE
PREFIX ORIGIN
FIELD

I N I TI ALI ZE THE
SCAN PO INTER

AA-2,EI

AA-I,D3

AA-2,E2

AA-a,C2

GET THE ADDR OF
STRING SOUGHT
FROM SPECIAL
CHARACTERS
TABLE

•
B

•
C

GET THE RESERVE
CHARACTERS
COUNT FROM THE
DCB

C

•

•
D

I EDQU I

PUT THE RESERVE
CHARACTERS
COUNT IN THE
Lce

LINK TO THE
SCAN ROUTINE TO
SEEK THE STRING

0

•
E

•
F

•
IEDQUI
G

G

Ll NK To TRANSLA TE BUFFER RTN
( IEDQAWI

•

•

H

H

•
J

GET THE
PARAMETER LIST
ADDRESS

J

•

•

K

K

Proqram Orqanization

429

Chart AC

DATE AND TIME PROVISION ROUTINE

•

•

•

4

•

A
AC,E2
~

__________________

~AC,C3

..

IEDQAL
B

FORMA T THE DA TE
DATA IN THE AVT
WORK AREA

GET THE INSERT
ADDRESS

B

.
YES

D

PROCDATE

GET THE DATE
FROM THE CVT

C

SET AN I NIT I AL
BLANK IN THE
BUFFER

FORMAT THE DATE
AND I NSERT IT
I N THE BUFFER

SVC 11 GET THE
TIME AND
DATE

PROCDATE

GET THE BUFFER
STEP ROUT I NE
ADDRESS

D

GET THI:: NEXT
I NSERT ADDRESS

E

I EDQAX
'GET THE NEXT
I NSERT ADDRESS

FORMA T THE DATE
AND I NSERT IT
I N THE BUFFER

..
F

I NSERT THE NEXT
DATA BYTE IN
THE BUFFER

FORMAT ,THE TIME
DATA IN THE AVT
WORK AREA

F

..
G

I NCREMENT THE
COUNT OF DATA
INSERTED

INSERT THE TIME
DATA IN THE
BUFFER

G

..
H

H

.J

.J

•

..

K

•
430

•

4

•

Chart AD

OUTPUT SEQUENCE NUMBER PROVISION ROUTINE

•

•

•

4

•

A

..

.
GET THE OUTPUT
SEQUENCE NUMBER
FROM THE SCB

B

B

..

.
CONVERT THE
NUMBER TO

D~~6 M~b~p~~~~CK

C

LEAD I NG ZEROS

..

.
BUILD THE
PARAMETER LI ST
FOR THE INSERT
DATA ROUTINE
( IEDQAF)

D

D

IEDQUI
E

CALL IEDQAF TO
EXPAND THE
BUFFER

E

..

..
BUILD THE PARM
LIST FOR THE
INSERT DATA
ROUT INE
( IEDQAF)

F

F

..
IEDQUI
CALL I EDQAF TO
INSERT OUTPUT
SEQUENCE NO

G

G

..

..

H

H

..

.

J

J

..

•

K

K

•

•
nroqra~

Orqanization

431

Chart AE

LOCATE OPTION FIELD ADDRESS ROUTINE

,

,

,

4

,

•

•
B

GET THE
TERMNAME TABLE
OFFSET FROM THE
LCB

B

•

•
YES

C

C

•
IEDQTNT
D

GET THE ADDR OF
TERMINAL TABLE
ENTRY

D

•
NO

E

E

.•

•
YES

I"

F

•

•
NO

G

G

•

•
H

GET THE ADDRESS
OF THE OPTION
FIELD

H

•
J

J

•

•

K

4

432

III

Chart AF-l INSERT DATA ROUTINE

,

,

,

,

4

A

•
B

B

•
INSERT

INSERT
C

I NSERT THE DATA
AS SPECIFIED

C

INSERT THE DATA
AS SPECIFIED

•

•
D

DECREMENT THE
PREF I X INSERT
OFFSET BY THE
LENGTH OF THE
DATA INSERTED

D

•

•

E

GET ADDR & END
OF UNIT FOR PRF
DATA OFFSET

E

•

•
CHANGE THE
TO THE
THE UN I T
TO THE TOTAL
DATA LENGTH

SET PREFIX DATA
OFFSET TO
PREF I X SIZE +
NO OF RESERVE
CHARS + 1

F

YES
COUNT
>--...-.,..
END OF

F

•

•
BUILD THE
PARAMETERS FOR
SHIFT WITH DATA
AS THE COUNT TO
THE END OF UNIT

SET DATA LENGTH
TO VALUE OF
SCAN PO INTER PREFIX DATA
OFFSET

G

G

•

•
DECREMENT THE
LCB RESERVE
COUNT BY THE
LENGTH OF THE
SHIFT

H

SHIFT ONE UNIT
OF DATA

H

•

•

J

J

•
K

•

•

•

4

•
Proqram Orqanization

433

Chart AF-2 INSERT DATA ROUTINE

•

. 2

•

•

4

•

AF-I ,CI ,C2,H4

.

•
SET INSERT
OFFSET TO
PREFIX DATA
OFFSET - PREF I X
INSERT OFFSET

B

B

.

•
C

GET ADDR & END
OF UNIT FOR
INSERT LOC

C

.

•
COMPLETE THE
COUNT TO THE
END OF THE
UNIT; PICK UP
THE DATA LENGTH

D

D

•

..

E

E

•

.

F

SET THE COUNTER
TO THE TOTAL
NUMBER OF
REMA INING
CHARACTERS

MOVE ALL THE
DATA THAT FITS
IN THIS UNIT

..

•
G

DECREMENT THE
TOTAL DATA
LENGTH BY THE
DATA MOVED

MOVE ALL
REMAINING DATA
INTO TH I S UN IT

INSERT ONE
REPEAT
CHARACTER;
DECREMENT THE
COUNT

SET THE COUNTER
TO COUNT TO THE
END OF THE UNIT

INSERT ONE
REPEAT
CHARACTER;
DECREMENT THE
COUNTER

UPDATE THE
INSERT DATA
ADDRESS

H

.

•
J

POINT TO THE
START OF THE
DATA AREA IN
THE NEXT UN IT

..

•
POINT TO THE
START OF DATA
AREA IN THE
NEXT UNIT

K

,2

434

G

.

•
H

F

..

4

..

Chart AG

MESSAGE LIMIT ROUTINE

,

,

,

,

A

A

•

•
B

SAVE THE
PARAMETER LIST
ADDRESS I N THE
AVT

a

•

•
C

GET THE BUFFER
ADDRESS FROM
THE AVT

C

•

•

D

D

•

•

E

GET THE LCB
ADDRESS FROM
THE BUFFER
PREFI X

GET THE
RELAT I VEL I NE
NUMBER AND Dca
ADDRESS FROM
THE L.ca

PUT THE
REQUESTED
MESSAGE LIMIT
FROM THE PARM
LIST IN THE AVT

E

•

•
F

GET THE SCB
ADDRESS FROM
THE Lce

GET THE WIDTH
OF ONE ENTRY·
FROM THE
INVITATION LIST
IN THE DCB

I NCREMENT THE
MESSAGE COUNT
BY ONE

GET THE CURRENT
INV ITAT ION LI ST
ADDRESS FROM
THE Lce

F

•
G

G

•

•
I NCREMENT THE
ADDRESS BY THE
WIDTH OF ONE
ENTRY AND
RESTORE IT

H

H

•

•

..J

..J

•

•

K

K

•

•

•

•
Proqram Orqanization

435

Chart AH

INPUT SEQUENCE NUMBER INSERTION ROUTINE

,

,

,

,

4

A

•

41

IEDQAHO I

e

B

•

41

IEDQTNT
C

GET TE:RM I NAL
TABLE ENTRY FOR
ORIGIN

C

•
D

41

POIN'r TO THE
I NF"UT SEQUENCE
NUMBER AND SET
A COUNTER TO
FOUR

I NIT I ALI ZE THE
PREF I X INPUT
SEQUENCE NUMBER
FIELD

•

41

ADD ONE TO THE
I NPUT SEQUENCE
NUMBER

E

E

•
F

41

SET THE COUNTER
TO THE NUMBER
OF DIGITS

UPDATE THE
I NPUT SEQUENCE
NUMBER IN THE
TERMINAL TABLE
ENTRY

NO

•
G

D

F

41

GET THE DIGIT
CLEAR ZONE AND
ADD I T TO THE
ACCUMULATI::D
COUNT

RESET THE INPUT
SEQUENCE NUMBER
TO ONE

G

•

41

H

H

•

41

J

MUL T I PL Y THE
ACCUMULA TED
COUNT BY TEN

J

•
K

41

• I NCREMENT TO
THE NEXT DIGIT

K

•
436

•

4

•

Chart AI-l SKIP FORWARD AND SCAN ROUTINE
If

YR-4,C4

If

If

If

4

GET THE ADDRESS
OF THE BUFFER
STEP ROUT I NE
FROM THE AVT
( IEDQAX)

•

411

B

B

•

411

C

SET THE REQUEST
REG I STER TO 0
AND REQUEST THE
END-OF-UN I T
UPDAT I NG

CLEAR THE AVT
WORK AREA TO
BLANKS AND
INITIALIZE THE
COUNT TO ZERO

GET THE COUNT
OF BYTES FOUND
I N THE BUFFER

CLEAR THE SCB
MBH FIELD TO
ZERO

C

•

411

D

0

•

411

E

SET THE REQUEST
REG I STER TO THE
SCAN POINTER
OFFSET

MOVE THE BYTES
FOUND FROM THE
LCB TO THE
A VTDOUBL FIELD

SET A NEW
RETURN ADDRESS

•

411

IEDQAL
F

E

REQUEST THE
SCAN POINTER
ADDRESS

IEDQAX

ADD THE SCAN
PO I NTER AND THE
SK IP LENGTH

GET THE ADDRESS
OF THE NEXT
BYTE

GET THE COUNT
OF BYTES FOUND
I N THE BUFFER

F

•

411

G

G

(0

•

411

H

H

•

411

DECREMENT THE
SK I P LENGTH BY
ONE

J

J

411

K

, SET THE BLANK
REGISTER FROM
THE PARAMETER
LI ST

'K

•

4

•
Proqram Orqanization

437

Chart AI·2 SKIP FORWARD AND SCAN ROUTINE

•

•

,

4

,

IEDQAX
A

GET THE ADDRESS
oF' iHE NEXT
BYrE

•

•

B

e

•
C

C

•

•
SAY!:: THE BYTES
FOUND IN THE
SCB

0

•
E

•
I NCREMENT THE
COUNT OF' BYTES
FOUND

E

•

•
YES

F

PO I NT THE SCAN
PO I NTER BEYOND
THE BUF'"FER END

•

F

•
SAVE THE
PARAMETER LIST
ADDRESS IN THE
SCB

IEDQAX

G

0

GET THE ADDRESS
OF THE NEXT
BYTE

G

•

•

H

H

•

•

..J

..J

•

•

K

•

•

4

Chart AI-3 SKIP FORWARD AND SCAN ROUTINE

,

•

,

,

4

5

A

..

•
GET ADDRESS OF
THE LAST BYTE
OF THE STR I NG

B

B

.

•
PUT THE RETURN
ADDRESS IN
REGISTER IS

C

C

..

•

D

~

.

•

E

E

.

•

F

ADD THE BYTE TO
THE AVT WORK
AREA

F'

.
G

•
I NCREMENT THE
COUNT OF BYTES
FOUND

G

.

•

H

H

.

•

J

J

.

•

K

K

2'

4

•
Droqram Orqanization

439

Chart AJ

SKIP TO CHARACTER SET ROUTINE

•

•

•

4

•

T
ENTER

A

•

A

41

OEDQA""

B

B

•

41

C

•

41

IEDQAL
D

MOVE THE
CHARACTERS
FOUND FROM THE
AVT WORK AREA
TO THE SCB

GET SCAN PTR
ADDR,EOU & CURRENT UNIT REGS

•

41

ADD A CHARACTER
TO THE AVT SAVE
AREA; INCREMENT
THE COMPARE
REGI STER'

E

SAVE THE
ADDRESS OF THE
PARAMETER LI ST
IN THE SCB

.'
MOVE THE
REG I STERS FROM
THE AVT SAVE
AREA TO THE SCB

•

F

41

MOVE THE
CHARACTERS FROM
FROM THE SCB TO
THE AVT WORK
AREA

G

•
H

E

41

F

G

D

41

COMPUTE NUMBER
OF CHARACTERS

F~~~~~RPy~ t~~

H

COMPARE REG

•
J

41

COMPUTE THE
RETURN ADDRESS
AND PUT IT IN
THE REG [STER
SAVE AREA

J

•

•

K

K

2

440

•

4

•

Chart AK-l LINE CONTROL INSERTION ROUTINE

,

,

,

•

4

A

..

•

IEDQAKO 1

8

8

..

•

C

C

..

•
IEDQTNT

D

GET THE
TERM I NAL ENTRY
ADDRESS

D

..

•

STX

E

E

..

•
SET .THE INITIAL
I NSERT OFFSET
AT THE FIRST
8YTE OF DATA

F

COMPUTE THE
NUM8ER OF I T8S
PRECED I NG THE
E08

F

DECREMENT THE
SC8E08 8Y THE
NUMBER OF
PRECEDING IT8S

G

..
LCOFFRCL
G

SET THE INITIAL
E08/1T8 OFFSETS

..

•
LCOFFST2

H

SET THE DATA
OFFSET FROM THE
SC8EOB

SET THE INITIAL
ETB/ITB OFFSETS

H

.

•
LCSELECT

..J

LCOFRCL2

REQUEST THE
ADDRESS OF THE
STX

GET THE OFFSET
TO THE FIRST
EOB

SET THE INITIAL
EOB/ITB OFFSETS

..J

•
K

SET THE INITIAL
INSERT OFFSET

K

•

•

4

•
?roqram Orqanization

441

Chart AK-2 LINE CONTROL INSERTION ROUTINE

,

A

,

,

4

.,

INSERT FIRST
LINE CONTROL
CHAR (CC=21

•
S

COMPUTE THE
I DUAL COUNT
I N THE BUFF"ER

~ES

B

•
C

C

•
o

PICK UP THE ITS
INTERVAL

FINALSIZ

PICK UP THE
EOBIETS
INTERVAL

COMPU'rE THE
FINAL DATA SIZE
(CC=81

SET THE INSERT
OF"F"SET TO THE
TOTAL DATA SIZE

0

•
GET INSERT ADDRESS (ADDR OF
LAST DATA BYTEI

E

•
GETSCTAO

IEDQUI
ACT I VATE IEOQAF"
TO SHIFT TO
NEXT INSERT PT

INSERT EOT, SET
F"INAL SIZE. AND
EXIT (CC=2)

F

•
G

SET THE INITIAL
ITS OF"FSET FOR
THE NEXT BUF"F"ER

GET OFFSET. TO
NEXT LINE
CONTROL CHAR

G

•
BUII... D AN
EOB/ETB STR I NG
I N THE AVT WORK
,
AREA

H

H

•
PUT THE LENGTH
AND ADDRESS OF
THE STRI NG IN
THE: AVT
PARAMETE:R AREA

..J

..J

•
K

•

442

•

Chart-AK-3 LINE CONTROL INSERTION ROUTINE

•

•

•

- .~

4

A

•

AK-t ,Jt

AK-·2, A t

AK-2,E2

AK-2,F5

GET THE ADDRESS
OF THE LC CHARACTER FROM THE
SPEC I AL CHARACTERS TABLE

B

AK-t ,HI

AK-I,H3

SET THE SIZE OF
THE BUFFER
PREFIX AND

B

CH~~~E~~~ ~~ONt
~.

•

•
YES

C

PUT THE INITIAL
OFFSET FOR THE
EOB I ETB :1 N THE
SCB

RETURN THE
CURRENT ITB
OFFSET

C

•
0

RETURN THE
CURRENT EOB

~~P~6~ ¥bD~~~

NEXT E08 OFFSET

PUT THE LENGTH
AND ADDRESS OF
THE LC CHARACTER IN THE AVT
PARAMETER AREA

0

•
E

•
BUILD THE UNIT
REQUEST
PARAMETER LIST
IN THE AVT

PUT THE INITIAL
OFFSET FOR THE
ITS IN THE .SCB

E

•

•
IEOQUI

F

F

CALL UNIT REQ
I NTERF ACE RTN
TO INSERT DATA

AK- t ,G2

•

•
GET THE OFFSET
TO THE FIRST
DA T A 8YTE FROM
THE SC8EOB

G

•
H

G

•
PUT THE INITIAL
OFFSET FOR THE
E08 INTO THE
SCB

COMPUTE THE
FINAL DATA SIZE
AND SET IT IN
THE PREFIX

H

•

•

J

J

•

•
PUT THE INITIAL
OFFSET FOR THE
ITB INTO THE
SCB

K

4

~roqram

orqanization

443

Chart AL

ADDRESS FINDER ROUTINE

•

•

•

4

•

A

.
B

IIC,SI

AI-I,FI

AN-I,G2

AF-I,E4

AI-3,B3

AO,FI

A4,G2

AF-2,C3

AJ,DI

AW,E4

A5,J4

AK.-2,E4

AO,EI,H2

A3,E2

•

INIT I ALI lE THE
ADDRESS OF THE
FIRST UNIT

B

.

•
SET THE
OF THE
ADDRESS
UNIT +

YES

C

ADDRESS
ITEM =
OF THE
OFFSET

C

..
0

•
GET THE ADDRESS
OF THE NEXT
UNIT

0

.
E

•
RESTORE THE
PARAMETER

DECREMENT THE
OFFSET BY THE
UNIT LENGTH

A~~~E~MR~~t

E

UN I T ADDRESS

..

•
SET END-Dr-UN I T
ADDRESS TO
POINT TO rlRST
BYTE BEYOND THE
CURRENT UN I T

F

r

..

•

G

G

.

•

H

H

.

•

J

J

.

•

K

K

•
444

2

•

4

•

Chart AM

ORIGIN ROUTINE

,

,

,

4

,

A

A

•

411

GET THE sce
ADDRESS FROM
THE LC8

e

8

•

411

C

C

•

411

D

GET THE PRE!'" I X
SOURCE FIELD

D

•

411

E

E

•

411

F

GET THE ADDRESS
OF THE TERM I NAL
TASLE ENTRY

GET THE ADDRESS
OF THE TERMINAL
TASLE ENTRY

F

•

411

GET QC8 ADDRESS
FROM THE ENTRY
AND GET THE LCe
ADDRESS FROM
THE 8UFFER

G

G

•

411

H

H

~?3

•

411

I NIT I AL I ZE THE
LC8 SOURCE
FIELD AND THE
PRE!'" I X SOURCE
FIELD

J

J

•

411

0ETURN TO MH)

K

•

•

•

K

4

Prooram Orqanization

4U5

Chart AN-I MULTIPLE INSERT/REMOVE ROUTINE

•

•

'2

•

•

4

A

•

•
SET THE SH I FT

LE~S~~E~O O~HE

NO

B

TRANSLATED
BYTES

B

•
SHIFT THE DATA
IN THE UNIT

GET THE ADDRESS
OF THE 'FROM'
STR I NG FROM THE
SUBPARAMETER
LIST

SHIFT THE DATA
IN THE UNIT

C

UPDATE THE DATA
OFFSET BY THE
TRANSLA TE AND
TEST LENGTH

SAVE THE
CURRENT SCAN
PO I NTER AND SET
THE TEMPORARY
SCAN PO INTER

UPDATE THE DATA
OFFSET BY THE
LENGTH OF THE
SHIFT

D

TESTSHIF
C

TESTSHIF

•
D

•

•
IEDQUI
ACTIVATE IEDQAI
TO SCAN THE
BUFFER

E

E

•

•
IEDQTNT
F

RESTORE THE
SCAN PO INTER

GET ADDRESS OF
DESTINATION
TERM I NAL ENTRY

F

•
G

GET THE DEL I MI TER FROM THE
ENTRY & PUT IT
IN THE SUBPARAMETER LIST

IEDQAL
G

GET THE ADDRESS
OF THE DATA
OFFSET

•

•
H

SET THE INDEX
TO LI ST INTO
THE TABLE BY
THE FIRST 'AT'
STRING BYTE

NO

H

•
SET THE
TRANSLATE AND
TEST LENGTH =
THE TOTAL DATA
REMA INING

J

SET THE
TRANSLATE AND
TEST LENGTH =
THE UN I T LENGTH

J

•

•
UPDATE THE DATA
OFFSET BY THE
LENGTH OF THE
STRING

SHIFT
SHIFT THE
'FROM' STRING

K

•
446

•

•

4

•

K

Chart AN-2 MULTIPLE INSERT/REMOVE ROUTINE

•

•

•

•

4

A

•

AN-l,K4

AN-l,C3

AN-2,H2

AN-l,C5

B

B
UPDATE THE DATA
AND INSERT
BY THE
EXTENT

•

>----t OFFSETS

ACT I VATE IEDQAF
TO SHIFT OR
I NSERT DATA

C

C

•
o

•

o
SAVE PREFI X
OFFSETS AND
BUILD IEDQAJ
PARAMETER LIST
I N THE BUFFER

SET THE 'TO'
.OFFSET AS THE
RETURNED OFFSET

•

E

•

E

I NCREMENT THE
INSERT OFFSET
BY THE REMOVE
LENGTH

CALL I EDQAJ TO
LOOK FOR THE
'TO' STRING

F

F

RESET THE DATA
OFFSET TO THE
RETURNED OFFSET

•

AN2
G4

G

•

G

UPDA TE THE DATA
OFFSET TO THE
OFFSET OF THE
LAST BYTE

REQUEST THE
>-N0;.....l_... TEST IN~~~*' AND
FUNCTIONS

•

H

H

r--'"
NO

•

PUT THE DATA
ADDRESS, DATA
LENGTH, & DATA
TYPE IN IEDQAO
PARAMETER LIST

J

•

•
J

DECREMENT THE
RETURNED OFFSET
BY THE 'TO'
STRING LENGTH

~~~B~~L5F-

UPDA TE THE DATA
OFFSET BY THE
LENGTH OF THE
STRING

IEDQUI
ACTI VA TE I EDQAO
TO GET NEW UNIT
& INSERT IT

IDLES, & DATA
TYPE I N I EDQAD
PARAMETER LIST

K

•
K

•

•.

4

•
Proqram Orqanization

447

Chart AO

UNIT REQUEST INTERFACE ROUTINE

,

,

,

4

,

A

•

A

..

IEOQAOO I

NO

B

B

..

•
IEDQBW
C

REQUEST A UNIT

C

•

..

D

D

•

..

E

E

•

..
IEDQAL

F

GET D,ATA OFFSET

F

PO I NT THE NEW
UNIT TO. THE
NEXT UNIT

G

AD~RE:O~Nl6D~DDR

•
G

..

•
H

POINT THE
CURRENT UN I T TO
THE NEW UNIT

H

•
J

MOVE DATA FROM
THE CURRENT
UNIT TO THE NEW
UNIT

..

•
K

I NCREMENT DATA
OFFSET, INSERT
OFFSET & PREF I X
SIZE FIELD BY
KEY LENGTH

I NCREMENT THE
PREF I X 'NUMBER
OF UNITS COUNT
BY ONE

•
448

2

BUILD THE
PARAMETER LIST
TO ACTIVATE THE
INSERT DATA
ROUTINE

•

•

4

•

Chart AP-l

REMOVE AT OFFSET ROUTINE

•

•

•

4

•

•
B

B

•
C

CALCULA TE THE
BUFFER PREFIX
SIZE

C

D

D

•
E

E

F

F

•
G

GET THE 'FROM'
DELIMITER FROM
THE BUFFER
PREFI X

SET THE 'TO'
DELIMITER
'FROM'
DELI MITER PLUS
THE EXTENT

=

•
H

•
BU I LD THE SK I P
TO CHARACTER
SET ROUTINE
IIEDQAJ)
PARAMETER LI ST

GET THE 'TO'
DEL I MITER FROM
THE BUFFER
PREFI X

H

•

•
IEDQUI

J

G

ADJUST THE SCAN
POINTER BY THE
LENGTH OF THE
REMOVED DATA

ACTIVATE IEDQAJ'
TO GET THE 'TO'
CHAR STRING

•

J

•

•

2

~

GET THE 'FROM'
DEL I MITER FROM
THE PARAMETER
LIST

ADJUST THE 'TO'
DELI MITER TO
THE START OF
THE CHARACTER
STRING

K

•

AI

•

K

4

~roqram

Orqanization

449

Chart

AP~2

REMOVE AT OFFSET ROUTINE

•

•

•

4

•

P----..
YES

•

SET THE 'TO'
DELIMITER TO
THE END OF THE
DATA

B

B

•

SET THE PREF I X
DATA DFFSET AND
THE INSERT
OFFSET

•
c

C

•

BUILD THE
INSERT DATA
ROUTINE
( IEDQAFI
PARAMETER LIST

•
o

D

SET THE FINAL
DATA SIZE

YES

•

•
E

E

•

•

ADJUST THE SCAN
PD I NTER FOR THE
LENGTH OF THE
INSERT DATA

•

CALL I EDQAF TO
CLOSE UP THE
BUFFER

DECREMENT THE
BUFFER SIZE BY
THE NUMBER OF
EMPTY BYTES

ACTIVATE IEDQAQ
ROUTINE TO
INSERT DATA

•
G

G

~--~-,

RESET THE SCAN
PO I NTER FOR THE
CLOSE UP

•
H

H

•
J

•

•

K

K

•
450

•

•

4

•

Chart AQ

OPERATOR CONTROL INTERFACE ROUTINE

•

•

•

4

•

5

A

A

•

•

I EOQAQO 1

B

B

•

•

C

C

•

•
GET THE SOURCE
KEY FROM THE
BUFFER

D

•

D

YES

•
YES

E

E

•

•

F

F

GET TERM I NAL
TABLE ENTRY
ADDR FOR SOURCE

•
POINT SCAN

~YE;;;.;S;....__ b~I~~~RO~~R~~gR

G

G

CONTROL
CHARACTERS

•

•
PUT THE ADDRESS
OF THE OPERATOR
CONTROL QCB IN
THE BUFFER RCB

H

H

•

•

..J

J

•

•

K

•

•

•

4

•
Proqram Oroanizaticn

4S1

Chart AR

CANCEL MESSAGE ROUTINE

•

2

•

•

4

•

A

..
B

B

•
STOP CHECK PO I NT
AND ALL
MULTIPLE
ROUTING

C

C

•
0

SET UP TO TPOST
THE ERB TO THE
BUFFER
01 SPOS I TJ ON QCB

E

ADD THE ERB TO
THE TPOST LI ST

0

E

•
IEDQTNT
F

GET THE
TERM I NAL ENTRY
ADDRESS

F

..
DECREMENT THE
INPUT SEQUENCE
NUMBER IN THE
TERM I NAL ENTRY

G

G

..
SET UP THE LCB
TO POLL AGAIN

H

H

..

•

,j"

,j

..

•

K

•
452

•

4

•

Chart AS-l HOLD/RELEASE TERMINAL ROUTINE

,

,

,

,

4

ACTI VATED BY BUFA

WITH A RECALLED
BUFFER TO HOLD

..
B

•

(0

SET UP TO TPOST
THE ERB TO THE
BUFFER
D I SPOS I T I ON QCB

..

B

•
GET THE
DESTINATION
OFFSET FROM THE
LCB

NO

C

..
D

GET THE
DESTI NATI ON
OFFSET FROM THE
BUFFER

SUBTRACT ONE
FROM .THE OUTPUT
SEQUENCE NUMBER

D

..
E

LOCATE THE
TERM I NAL TABLE
ENTRY

E

..
GET THE ADDRESS
OF THE
DESTINATION QCB
AND PRIORITY
QCB

F

F

..
SET UP TO TPOST
THE BUFFER TO
THE BUFFER
RETURN QCB

G

SAVE THE
PRIORITY.QCB

G

..
MOVE QC8 I NTFF
TO PRFCROD

BU I ~~B~C~~E: IF
AVAILABLE

QUEUE THE
BUFFER

H

..
J

PUT PRFCRCD IN
DATFEFO

J

EXECUTE T I ME
DELAY

K

..
YES

K

•

•

•

•
uroaram Orqanization

453

Chart AS-2 HOLD/RELEASE TERMINAL ROUTINE

•

•

•

OPERATOR CONTROL

ACTI VATE THE SUSROUTI NE AT BZ-I ,A4;

OR TI ME DEL. A Y

EW-:3,F5; R4-2,AI; Q6,A3; Q7-2,AI;

TP05TS A BUFFER

OR RO-2,A3.

Y__.

~

A

.

TO RELEASE

•
B

•

NOTE: THE BALR 14, 15 I N BLOCK J5 CAN

ACTI VATED WHEN
A

4

Q8FR
B

QUEUE THE

B
...U_F..F...
E...
R_ _....

•
C

NO
GET THE ADDRESS
r;....-...
OF THE NEXT

GET THE ADDRESS
OF THE FIRST
BUFFER

PRIORITY QCB

C

..

•
REMOVE THE
BUFFER AND SET
UP TO TPOST IT
TO THE BUFFER
RETURN QCB

D

D

..

•
TPOST· THE
BUFFER

E

E

..

•
F

.

•
G

SET THE DATF'EFO
. AND QCB I NTFF
FIELDS

G

..

•
H

EXECUTE T I Mi
DEL.AY

H

..

•

J

..

•
K

K

•
454

:3

•

4

Chart AS-3 HOLD/RELEASE TERMINAL ROUTINE

•

•

•

4

A

•

•
F
SET UP TO GET
THE FIRST LCB

B

FIRSTLN
FIND THE FIRST
LCB

SET UP TO
SEARCH THE
DIAL -OUT CALL
QUEUE

B

•

•
FINDLCB

C

FIND THE LCB

C

•
0

•
GET THE ADDRESS
OF THE FIRST
STCB ON THE LCB

0

•

•

E

E

•

•
GET THE NUMBER
OF LCBS FOR
THI S DCB

F

F

•

•

G

G

•

•

H

REMOVE THE
CURRENT BUFFER

GET THE ADDRESS
OF THE NEXT Lce

H

•

•
J

IEDQHG02

BUILD AN STCB
AND CODE IN THE
BUFFER

REMOVE THE ELEMENT FROM T I ME
DELAY QUEUE

J

•
K

•
INSERT
BUFFER
AFTER
DES IRED

THE
STCB
THE
STCB

K

•

4

•
Proaram Orqanizaticn

45!=

ChartAS-4 HOLD/RELEASE TERMINAL ROUTINE

•

•

•

•

4

ACTIVATED WHEN A
RELEASE STCB

IS

FIRST ON THE CPB

A

CLEANUP QCB
AS-3,B3

AS-3,t::1

.

GET THE
RELA TI VE LI NE
NUMBER FROM THE
QCB

B

8

..
C

CALCULA TE lOB
SIZE X RELA T I VE
LINE NUMBER +
ADDRESS OF THE
FI.RST LCB

C

GET THE OFFSET
TO THE FIRST OF
THE LCB

D

..
D

E

RESET THE
ADDRESS OF THE
CPB UNIT

(

RETURN

)

E

.
NO

SET TO
THE
CPB ON THE QCB

>--.--... RE-ENQUEUE

F

F

.
G

PUT THE CPB ON
THE FREE QUEUE

G

.
H

H

.
J

J

.
K

K

..
456

..

..

4

..

Chart AS-5 HOLD/RELEASE TERMINAL ROUTINE

•

•

•

•

4

ACTIVATED WHEN THE
BUFFER STCB IS
FIRST ON THE LCB
AS- I ,H5

AS-I,K3

AS-4,D2

AS-2,Hl

AS-2,BI

INITIALIZE THE
BUFFER FOR T I ME
DELAY

B

B

•
DSPPOSTR
C

GET THE ADDRESS
OF THE LAST
ELEMENT ON THE
QCB; SET A NEW
LAST ELEMENT

TPOST THE
BUFFER AND
RETURN

I NSERT AN ELEMENT ON TIME
DELAY QUEUE

C

•

~
Cl

D

LINK THE
PREV I OUS LAST
ELEMENT TO TH I S ....- - <
ELEMENT

YES

SET THE PO INTER
ON THE
QUEUE

>-'----<~ TO FIRST

D

•
E

E

F

F
AS-I,H4
AS-2,EI
AS-2, E3

G

G

H

CALCULATE
REGISTER 14 + 4

H

J

BUILD WRITE
CCWS

J

K

SET UP THE
ADDRESS OF THE
EXCP INPUT QCB

4

K

•
Proqram 0raanization

457

Chart AT

CREATE AN ERROR MESSAGE ROUTINE AND SUBTASK

•

•

•

4

•

A

•

IEDQATOI

YES

B

SET UP TO TPOST
THE ERB TO THE
BUFFER
01 SPOS I TI ON QCB

B

.

•
LINK A NEW UNIT
INTO THE BUFFER

C

C

.
0

GET THE LENGTH
BYTE FROM THE
PARAMETER LIST

0

..
RESET THE
LENGTH BYTE AND
ERROR MESSAGE
ADDRESS IN THE
PARAMETER LI ST

GET THE LENGTH
BYTE FROM THE
ERROR MESSAGE

E

E

..

•
USER ROUT I NE

COMPUTE THE
FINAL DATA SIZE
AND PUT IT IN
THE BUFFER
PREFI X

F

LINK TO THE
USER ROUTINE

F

..

•
TRUNCATE THE
LENGTH OF THE
ERROR MESSAGE

G

RESET THE
'DUPLICATE
HEADER' BIT

G

SET UP TO TPOST
THE BUFFER TO
THE DESTINATION
QCB

H

•
H

REQUEST A NEW
UNIT; SET UP TO
TPOST THE ERB
TO THE BUFFER
REQUEST QCB

..

•
J

SET up· TO TPOS T
THE ERB TO THE
BUFFER
01 SPOS I T ION QCB

SET UP TO
RETURN TO THE
ERROR MESSAGE
SUBTASK

..

•

•
458

J

•

4

Chart AU

CUTOFF MESSAGE TRANSMISSION ROUTINE AND SUBTASK

•

•

•

•

4

CUTFFQCB+ 12

•

..

B

B

•

.
GET THE ADDRESS
OF THE FIRST
UNPROCESSED
BUFFER FROM THE
LCB

C

GET THE ADDRESS
OF THE UCB

C

.

•
PUT THE WRITE
BREAK CHANNEL
I N THE
LCB

MARK THIS
BUFFER LAST AND
SET ITS SIZE
FIELD TO ONE

D

>-~-~ PROGRAM

..

•
E

D

I NCREMENT THE
ACCUMULATED
DATA SI ZE IN
SCB BY THE SIZE
OF TH I S BUFFER

SET UP TO TPOST
THE BUFFER TO
THE STARTMH QCB

~-~...

PUT THE WR I TE
BREAK/READ
CHANNEL PROGRAM
IN THE LCB

E

..

•
PUT THE REAO
SK I P CHANNEL
PROGRAM I N THE
. LCB

F

F

•

..

G

G

..

•
H

SET UP TO TPOST
THE LCB TO THE
CUTOFF SUBTASK

H

•

..

J

J

•

..

K

K

•

•

•

4

•
Prooram Oraanization

459

Chart AV

LOOKUP TERMINAL ENTRY ROUTINE

•

•

•

4

•

A
A1;.B4

•

A5.04

•

IEDQAVOI

8

B

•

•
NO

C

C

•
D

•
C:;ET THE
DESTINATION KEY
FROM THE
PRFDEST FIELD

PUT THE
DESTINATION KEY
I N THE PRFDEST
FIELD

PUT THE RETURN
DESTINATION KEY
IN THE AVTPARM3
FIELD

D

•

•
IEDQTNT

E

C:;ET DESTINATION
TERM I NAL T A8LE
ENTRY ADDRESS

E

•

•
GET THE QCB
ADDRESS FROM
THE TERM I NAL
TABLE ENTRY

F

F

•
c:;

G

•

•
PUT THE QCB
ADDRESS IN THE
SCBDESTQ FIELD

H

H

•

•

.J

.J

•

•

K

K

•
460

4

•

Chart AW

TRANSLATE BUFFER ROUTINE

•

•

YR-5,Jl

•

•

4

~?4~

B2
IEDQAWO 1

•

SELTABLE

•

GET THE
TRANSLATE TABLE
ADDRESS FROM
THE DCB

B

B

•

•
FIND THE TOTAL
TRANSLA T I ON
LENGTH

C

C

•

•
NO

D

YES
D

•
E

GET THE ADDRESS
OF THE FIRST
DATA BYTE

E

•
F

•
SA VE THE CODE
PARAMETER LIST
ADDRESS I N THE
SCB

TRANSLATE THE
LAST UNIT

F

•
DECREMENT THE
TRANSLATION
LENGTH BY ONE
UNIT

G

•

G

•
>-.......-..

H

GET THE ADDRESS
OF THE OUTPUT
TABLE

TRANSLATE ONE
UNIT

H

•
GET
OF

J

I NCREMENT TO
THE NEXT UN I T

•

J

•

K

•

•

•

4

Proaram Orqanization

4E1

Chart AX

BUFFER STEP ROUTINE

•

•

•

4

•

A
AC,E3

AI-2,AI,GI

AC,E5

AI-3,BI

AI-I,F2

A"J,C3

A4,H2

INCREMENT THE
SCAN PO INTER
ADDRESS AND THE
OFFSET

B

B

C

C

D

D

E

SET THE SCAN
POINTER ADDRESS
TO THE FIRST
BYTE OF THE NEW
UNIT

E

F

SET THE ENDOF-UNIT REGISTER TO ONE BYTE
BEYOND THE LAST
BYTE IN UNIT

F

G

G

H

H

"J

J

•
K

K

•
462

•

•

4

•

Chart AY

SCREEN ROUTINE

•

•

•

4

•

A

..
B

•
GET THE DCB ADDRESS FROM LCB,
DEB ADDR FROM

B

g~~~s &F~g~ ~~B

..

•
IEDQTNT
YES

C

GET THE DEST I NATION TERMINAL
ENTRY ADDRESS

C

..

•
I NCREMENT PAST
THE OPTION
FIELDS

D

..
E

D

'.
SELECT THE
FUNCT I ON BYTE
FROM THE TABLE;
PUT IT IN THE
BUFFER

INCREMENT PAST
THE 'BUFSIZE'
FIELD

..

E

•
PICK UP THE
CURRENT SETTING
IN REGISTER 15

F

F

..

•
NO

G

G

.

•
SELECT THE
FUNCT I ON BYTE
FROM THE TABLE;
PUT I T IN THE
TERM I NAL ENTRY

H

H

..

•

J

J

.

•

K

•

•

•

•
Proqram Orqanizaticn

463

Chart AZ

REDIRECT A MESSAGE ROUTINE

,

,

,

,

4

A

•

IEDQAZO I

•

TESTSRCE
IEDQAV
GET THE OR I GIN
OFFSET FROM THE
PREF IX

B

LOOKUP ROUT I NE
TO GET QCB ADDR
& DEST OFFSET

B

•

•
YES

C

NO

C

•
0

GET THE
DESTINATION
OFFSET FROM THE
PREFI X

GET THE
DEAD-LETTER
QUEUE OFFSET
FROM THE AVT

NO

D

•
YES

E

NO

0

UPDA TE THE SCB
TO THE ERROR
MESSAGE
PARAMETER LI ST
ADDRESS

E

•

•
BUILD THE
LOCA TE OPT I ON
PARAMETER LIST
( IEDQAE) IN THE
A VT WORK AREA

F

SET THE BUFFER
01 SPOS I TI ON QCB
AS THE
DESTINATION QCB

GET THE
DESTINATION Qce
ADDRESS FROM
THE SCB

GET THE ERROR
MESSAGE ROUTINE
ADDRESS

F

.
G

GET THE LENGTH
AND ADDRESS OF
THE NAME FROM
THE PARAMETER
LIST

IEDQUI

PUT THE QCB
ADDRESS AND THE
PRIORITY IN THE
BUFFER

ACTI V A TE LOCATE
OPT I ON RTN TO
GET ADDRESS

G

•

•
H

BUILD THE
BINARY SEARCH
PARAMETER LI ST
(IEDQAI) IN THE
AVT WORK AREA

PUT THE BUFFER
ADDRESS IN
REGISTER I

H

•

•
IEDQUI

..J

GET THE LENGTH
AND ADDRESS OF
THE NAME FROM
THE OPTION
FIELD

B I NARY SEARCH
TO FIND NAME IN
TERMNAME TABLE

GET THE ADDRESS
OF THE TCAM
DISPATCHER

..J

•

•

K

K

•
464

2

•

•

4

•

Chart AO

SKIP BACKWARD ROUTINE

•

•

•

•

4

.

•
B

I N I TI ALI ZE THE
SCAN PO INTER
OFFSET REG I STER
FROM PRFSCAN

B

•

..

C

C

•

..
NEWSOU

SET THE COUNTER
TO THE SKIP
LENGTH

GET THE ADDRESS
THE START OF
THE UNIT

0

D

..

•
IEDQAL
E

GET THE ADDRESS
OF THE SCAN
POINTER

GET THE ADDRESS
OF THE START OF
THE NEW UNI T

E

..

•
F

PUT THE ADDRESS
OF THE SCAN
POINTER IN
REGISTER 1

F

•
DECREMENT THE
COUNTER BY ONE

PASS THE SCAN
PO I NTER OFFSET

G

G

..

•
H

GET ADDRESS AND
UNIT OF CURRENT
SCAN PO INTER

H

..

•
SET THE ADDRESS
OF THE START OF
THE UNIT

J

•

41

K

K

•

•

•

•
Proqram Orqanization

465

Chart Al

BINARY SEARCH ROUTINE

•

•

•

3

4

•

A

•
B

B

•
C

C

•
D

.,--~....

MOVE THE NAME
TO THE A VT WORK
AREA (AVTDOUBLI

D

•
LOW

E

E

•
COMPUTE THE
OFFSET TO THE
MATCH I NG TABLE
ENTRY

F

I NCREMENT THE
ENTRY ADDRESS
BY THE SEARCH
EXTENT

OECREMENT THE
ENTRY ADDRESS
BY THE SEARCH
EXTENT

F

DIVIDE THE
SEARCH EXTENT
BY TWO

G

•
H

H

•
J

J

•
K

K

,

466

,

4

,

Chart A2

INSERT AT OFFSET ROUTINE

•

•

•

•

4

A

•

IEDQA201

YES

B

B

•
YES
SET THE INITIAL
>-~-.. OFFSET TO THE
SCAN POINTER

c

D

C

SET THE INITIAL
OFFSET TO THE
PARM FIELD +
RESERVE COUNT +
PREFIX SIZE

D

•
PUT THE. OFFSET
I N THE BUFFER
PREFIX AND SET
AVT PARMS FOR A
UNIT REQUEST

E

E

•
F

I NCREMENT THE
SCAN PO I NTER BY
THE INSERT
LENGTH

ACTIVATE IEDQAO
TO INSERT DATA

•
G

G

•
SET THE AVT
PARAMETERS FOR
A DATA SHIFT BY
THE INSERT DATA
RTN (I EDQAF)

COMPUTE THE

~=-_... RE~~gu~h C~~~T

H

LIMIT TO THE
RES I DUAL COUNT

I EDQU I
ACTIVATE THE
INSERT DATA
ROUTINE

H

•
COMPUTE THE
FINAL DATA SIZE
AND PUT IT IN
THE BUFFER
PREFIX

..J

..J

•
K

K

•

2

•

•

4

~roqram

Oraanization

4F"1

Chan A3

DYNAMIC TRANSLATION ROUTINE·

•

•

•

•

4

A3

A

.

AW,E2

•
B

B

..
C

•
ESTABLISH THE
NUMBER OF
CHARACTERS OF
DATA

BUILD THE
PARAMETER LI ST
FOR LOCOPT

C

.

•
IEDQUI

D

0

ACTIVATE THE
LOCOPT ROUT I NE
( IEDQAE)

..

•
COMPARE A
STR I NG TO THE
DATA (FORCE THE
INPUT TO UPPER
CASE)

IEDQAL
E

E

.

•
POINT TO THE
LIST OF TABLES

F

YES

..
G

GET THE TRUE
STARTING
ADDRESS OF THE
TABLE

F

•
SET THE RETURN
REGI STER TO
SELe:CT A .
RECEIVEI
TRANSMIT TABLE

SET THE INDEX
TO THE NUMBER
OF TABLES

SET THe: POINTER
TO THE NEXT
STRING

G

•
POINT TO THE
CHARACTER
STRINGS AND
SAVE THE STARTING ADDRESS

H

H

..
SET THE POINTER
TO THE Ne:XT
TABLE

SET THE INDEX
TO THE NUMBER
OF STRINGS

J

..

•
RESET THE
STRING POINTER

K

•
468

J

•

•

4

K

Chart A4

INCOMING/OUTGOING MESSAGE DELIMITER ROUTINE

,

,

•

•

4

A

•
B

•

I EDQA40 I
SAVE THE
PARAMETER LIST
IN THE
SCB

YES

~;;;.;........,.. ADDRESS

DEL INK THE
EMPTY UNITS
FROM THE BUFFER

B

•

•
TPOST THE EMPTY
UN I TS TO BUFFER
RETURN QCB

C

•

C

•

TESTPROC
IEDQTNT
NO

D

GET THE
TERM I NAL ENTRY
ADDRESS

D

•

•
PUT THE
READ-AHEAD QCB
ADDRESS I N THE
BUFFER

SET UP TO TPOST
THE BUFFER TO
THE BUFFER
RETURN QCB

E

E

•

•
GET THE EOA
CONFIGURATION
FROM THE SCT

F

F

•

•
PUT THE BUFFER
DISPOSITION QCB
THE

YES

>---'-'" ADDRESS
IN
BUFFER

G

G

•

•
PUT THE
DESTINATION QCB
ADDRESS IN THE
BUFFER

H

I NCREMENT THE
COUNT OF
RESERVE
CHARACTERS BY
ONE

•

H

•
PASS THE NUMBER
OF RESERVE
CHARACTERS IN
THE BUFFER
PREFI X

-J

-J

•

•

K

K

2

•

•

4

•
Proqram Orqanization

4E 9

Chart A5

FORWARD ROUTINE

,

,

,

4

,

A

A
A5,K2

•

..

A5,F3
IEDQA501
IEDQUI

GET THE FIRST
SUBSIDIARY
PARAMETER LIST

B

ACTI VATE IEDQA I
TO FIND THE
TERM I NAL NAME

B

..

•
IEDQUI
C

C

•

.
IEDQAV
PUT THE DESTINATION QCB ADDRESS IN sce

0

0

•

..

E

E

•

.

F

F

•

..

G

G

•

..

H

H

•

..
RESET THE SCB
SECONDARY
DESTINATION
FIELD TO ZERO

IEDQAL
GET ADDRESS OF
LAST BYTE IN
TERM I NAL NAME

J

..

•
LlNKAI
K

IN.lTIALIZE THE
SCB SECONDARY
DESTINATION
FIELD

LINK TO THE
B I NARY SEARCH
ROUTINE

•
410

J

•

•

4

K

•

Chart A6 .. 1 LINE CONTROL INITIALIZATION ROUTINE

•

•

•

•

4

5

A

A

•

~

IEDQA60 I

B

B

~

•

C

C

~

•
IEDQTNT

D

D

GET ADDRESS OF
DEST TERM I NAL
TABLE ENTRY

•

~

E

INITIALIZE THE
BLOCK AND

RE~~~~~~~KTO

E

ZERO

•

~

SET THE
SUBBLOCK
REG I STER FROM
THE PARAMETER
LIST

F

F

•

~

G

PUT THE
SUBBLOCK
REG I STER I N THE.
SCB

GET THE ADDRESS
OF THE OEVICEDEPENDENT AREA

G

•

~

SET THE
SUBBLOCK
REG I STER FROM
THE SUBBLOCK IN
THE ENTRY

H

H

~

•

..J

..J

~

•

K

K

III

III

4

III

~roqram

Orqanizaticn

471

Chart A6-2 LINE CONTROL INITIALIZATION ROUTINE

,

,

,

4

,

A6-I,E3

•

A6-I,85

•

A6-1 ,G5

8

8

•

•

C

INCREMENT PAST
THE OPTION
FIELDS

C

•

•

D

D

•
E

POINT TO THE
FIRST OR THE
NEXT FIELD

E

•

•
GET THE LENGTH
OF THE FIRST OR
THE NEXT FIELD
AND PO I NT PAST

F

F

IT

•

•
RETURN
G

G

•

•

H

H

•
J

J

•

•

K

K

•
412

•

•

4

•

Chart A7

COUNTER ROUTINE

,

,

,

4

,

A

..

IEDQA70t

B

B

..
C

C

•

..

D

D

•

..
IEDQUI

E

ACT I VATE LOCATE
OPT I ON ROUT I NE
TO GET ADDRESS

E

•
NO

F

F

..

•
I NCREMENT THE
COUNT IN THE
OPT! ON FIELD BY
ONE

G

G

.
H

H

..
J

J

•
K

K

•

•

•

4

•
Proqram Orqanization

473

Chart A8

MULTIPLE INSERT AT OFFSET ROUTINE

,

,

2

,

4

,

A

•
B

•
BUILD THE
LOCATE OPTION
PARAMETER LI ST
IN THE AVT WORK
AREA

SET THE INITIAL
OFFSET TO RE-

NO

F;;'-'-.t SERVE CHARACTER

B

COUNT, PREF I X
SIZE, & OPT FLO

•
C

ACTIVATE LOCATE
OPT I ON ROUT I NE
TO GET ADDRESS

SET THE PASS
LIMIT EQUAL TO
THE RES I DUAL
COUNT

SET THE INITIAL
OFFSET TO RESERVE CHARACTER
COUNT, PREF I X
SIZE, & EXTENT

•

•
o

ACTIVATE UNIT
REQUEST ROUTINE
TO INSERT DATA

INSERT DATA RTN
TO SHIFT TO END
OF DATA

o

•

•
BUILD THE
INSERT DATA
PARAMETER LI ST
IN THE AVT

E

COMPUTE THE
INITIAL OF'FSET
FOR THE NEXT
BUFFER

E

•

•
I"

C

COMPUTE THE
I N IT I AL OFFSET
FOR THE NEXT
BUFFER

SET UP TO STORE
ZEROS IN THE
OPTI ON FI ELD

COMPUTE THE
RESIDUAL COUNT
I N THE BUFFER

F

•

•
COMPUTE THE
INITIAL OFFSET
FOR THE NEXT
BUFrER

G

G

•

•

H

H

•

•
SET THE PASS
LIMIT EQUAL TO
THE EXTENT

..J

•

•
INSERT DATA RTN
TO SHIFT TO
NEXT INSERT PT

K

•
474

J

4

K

Chart BA

MULTIPLE ROUTING SUBTASK

,

,

,

,

4

•

•
GET THE CURRENT
BUFFER ADORES S
AND THE COUNT
OF BUFFERS FROM
THE ERB

YES

B

B

•
C

•
COUNT THE
NUMBER OF
BUFFERS PRESENT

C

•

•
IEDQUI

0

ACTIVATE THE
FORWARD ROUT I NE

0

•
E

•
PUT THE COUNT
AND THE ADDRESS
OF THE CURRENT
BUFFER IN THE
ERB

4

•
F

E

SET THE SCB TO
START THE SCAN
AT THE START OF
THE CURRENT
BUFFER

•
PUT THE
DESTINATION IN
THE BUFFER
PREFI X

NO

PUT THE DATA
FOUND IN THE
LCB

•
G

•
PUT THE ADDRESS
OF THE SECOND
BUFFER I N THE
LCB

LINK THE SECOND
BUFFER TO THE
FIRST ONE

CLEAR THE
MUL T I PLE ROUTE
FIELD OF THE
SCB

CLEAR THE LINK
FIELD OF THE
CURRENT BUFFER

•
H

.•
K

G

•
SET THE RETURNCONTROL QCB
FIELD OF THE
LCB TO DISTRIBUT ION LI ST QCB

PUT THE BUFFER
ADDRESS IN THE
AVT

PUT THE BUFFER
RETURN QCB
ADDRESS IN ALL
BUFFERS

PUT THE ADDRESS
OF THE FIRST
BUFFER I N THE
ERB

•
J

F

H

•
PUT THE
DESTINATION QCB
ADDRESS IN THE
BUFFER

SET THE SCAN
POINTER FROM
THE SCB

L INK THE ERB TO
THE LAST BUF-

PUT THE ADDRESS
OF THE 01 SK 1/0
QCB I N THE LCB

B~~~~RS5Ts~~~IT I ON QCB ADDR

J

•
GET THE FORWARD
PARAMETER LIST
ADDRESS FROM
THE SCB

K

•

•

3

4

•
Proqram Orqanizaticn

475

Chart BB

A

•

CHECKPOINT REQUEST ROUTINE.

,

,

,

4

Gp

,

41

B

B

•

41

C

C

•

41

D

GET THE ADDRESS
OF IEDQLM

D

•

41

E

E

41

F

GET THE ADDRESS
OF THE ERB

F

•
G

41

GET THE ADDRESS
OF IEDQBD

G

•
H

41

TPOST THE ERB
TO IEDQBD

H

•

41

J

•

41

K

4

476

Chart BC

DISTRIBUTION LIST SUBTASK

•

•

•

•

4

GET THE ADDRESS
OF THE RECALLED
HEADER

A

•

•
B

GET THE OFFSET
TO TLIST IN THE
TERMNAME TABLE

9

•

•
IEDQTNT

C

GET THE ADDRESS
OF THE TLI ST
ENTRY

GET ADDRESS OF
THE LI S TIN THE
TERM I NAL TABLE

C

•
D

•
GET THE OFFSET
OF THE FIRST
ENTRY IN THE
LIST

SET. UP TO GET
THE NEXT ENTRY

o

•

•
TPosr THE
BUFFER TO THE
MULTIPLE
ROUTING QCB

E

E

•

•
F

TPOST THE Lce
TO IEDQ90

GET THE
TERM I NAL r ABLE
ENTRY ADDRESS

SET LCBRCQCB TO
POINT TO THE
MULTIPLE
ROUTING QC9

F

•

•
PUT THE
DESTINATION QCB
ADDRESS IN
SCBDESTQ

G

TPOST THE
BUFFER TO THE
BUFFER RETURN
Glce

G

•

•
SAVE THE LIST
ENTR Y PO INTER

H

H

•

•
TPOST THE
BUFFER TO THE
DESTINATION QCB

•

•

K

K

•

•

4

Proqram 0rqanization

477

Chart BD-I

BUFFER DISPOSITION SUBTASK

•

•

•

4

•

5

A

•

•

IEDQ8DO I

GET THE FIRST
; - - -.. BUFFER ASS I GNED
TO THI S LINE

8

B

•
NO

r~--i

C

GET THE ADDRESS
OF THE NEXT
BUFFER

C

•
D

GET THE ADDRESS
OF THE LCB AND
OF THE SCB

FREE ANY EXTRA
BUFFERS

SET UP TO TPOST
THE ERB TO ITS
DEST INAT! ON QCB

•

D

•
FIND THE
FIRST/NEXT
I NMSG OR OUTMSG
MACRO EXPANS I ON

E

REMOVE THE ERB
F"ROM THE BUFFER
RET¥R~ S Q!f~ERJ F

•

E

•
SET UP TO TPOST
THE EOM BUFFER
TO ITS
DEST! NAT I ON QCB

F

F

•

•

G

G

•

•

H

SET UP TO TPQST
THE LCB TO
IEDQBD02

FREE ANY EXTRA
BUFFERS

•

•
SET UP TO TPOST
THE LCB TO
ITSELF

J

J

•

•
SET UP TO
RETURN A
RECALLED HEADER
TO BUFFER
D I SPOS I T ION

K

•
478

H

•

K

•

4

•

Chart BD-2 BUFFER DISPOSITION SUB TASK

•

•

•

•

4

•

•
SET UP TO TPOST
THE ERB· TO THE
DISK 1/0 QCB
FOR RECALL

SET UP TO
RETURN A
RECALLED HEADER
TO MULTIPLE
ROUTING

B

B

•

•
C

GET ADDRESS OF
DISTRIBUTION
TERM I NAL ENTR Y

SET UP TO
RETURN THE
RECALLED HEADER
TO DISTRIBUTION
LIST

C

•

•

D

D

•

•
YES

E

SET UP TO TPOST
THE LCB TO THE
CHECKPO I NT QCB

E

•

•
F

PUT ZEROS IN
THE ERROR BYTES

F

•
SET UP TO TPOST
EOM SEGMENT TO
BE MARKED
SERVICED

G

NO

CLEAR THE
SCBSTATE FIELD

G

•

•
PREVENT THE LCB
TPOST OPERAT I ON

H

H

•

•
SET THE
DESTINATION TO
BE THE BUFFER
RETURN QCB

J
SCB

SET UP TO TPOST
THE LCB

J

•
K

K

•

3

•

4

•
Uroqram Orqanizaticn

479

Chan BE

LOCK ROUTINE

•

•

•

4

•

A

..
8

B

..

•

C

C

..

•
GET THE
DESTINATION
OFFSET FROM THE
BUFFER

D

0

..

•

E

E

..

•
GET THE
FIRSTfNEXT
TERMNAME TABLE
OFFSET

F

F

..

•
IEDQTNT

G

GET THE
TERMINAL TABLE
ENTRY ADDRESS

G

..

•
PUT THE
DESTINATION
OFFSET IN THE
LCB

H

H

..

•

J

J

..

•

K

•
480

•

•

4

•

Chart BF

UNLOCK ROUTINE

•

•

•

4

•

A

.

•

B

B

.

•
GET THE ADDRESS
OF IEDQLM

C

C

..

•

D

D

.

•

E

E

•
F

F

•
G

G

..

•

H

H

..

•

J

J

..

•

K

K

•

•

•

4

Proqram Orqanization

481

Chart BG

CASCADE LIST SUBTASK

•

•

4

•

GET THE
DESTI NA TI ON
OFFSET OF THE
CASCADE LIST

GET THE
TERMNAME TABLE
ADDRESS

A

•

.

•
IEDQTNT

B

GET TERM I NAL
TABLE ADDRESS
OF CASCADE LIST

B

..

•
CALCULA TE THE

C

N~~~~~~~F

C

.

•
GET THE FIRST
(NEXT) ENTRY

D

D

.

•
IEDQTNT
E

E

GET THE ENTRY
ADDRESS IN THE
TE;RM I NAL TABLE

..

•
F

GET THE AODRESS
OF THE QCB AND
OF THE DCB

F

•
G

G

•

..
GET THE ADORESS
OF THE FIRST
ENTRY

H

H

•
PUT THE
DESTI NAT I ON IN
THE BUFFER AND
IN THE SCB

YES
J

J

..

•
K

USE THE NEW
ENTRY

TPOST THE
BUFFER TO THE
DESTINATION QCB

•
482

•

K

4

Chart BL

MESSAGE GENERATION ROUTINE

•

•

•

•

4

A

A

•

•
Gat

t~hA~~~~SS
B

THE PARAMETER
LIST

B

•

•
SET UP TO TPOST
'tHE ERB TO
IEDQBD

C

•

•
0

C

GET THE ADDRESS
OF THE
TRANSLATION
T ABLE FROM 'tHE
PARAMETER LIST

USE THE DCB
TRANSLA T I ON
TABLE ADDRESS

YES

•

D

41

TRUNCA'te: 'to THE
MAXIMUM SIZE

E

•

E

41

MOVE THE 'tE)(T
TO THE see

F

F

•

•

G

G

•

•
TRANSLATE THE
TEX't

H

H

•

•

J

J

•

•
,).<,.
SET UP TO TPOST
THE ERB· TO THE
ACTIVATE Qce

K

•

K

•
Proqram Orqanization

483

Chart BT-I EOB/ETB HANDLING SUBTASK

,

2

,

,

4

,

•
8

8

•
C

GET THE ADDRESS
OF THE LC8 AND
OF THE SC8

C

•
D

D

•
REMOVE THE ER8
FROM THE 8UFFER
REiuRN QC8 OR
THE READY QUEUE

E

CLEAR THE
MULTIPLE8UFFER-:-HEADER
FIELD

E

8UILD A CCW IN
THE 8UFFER

F

•
F

•
G

G

•
SET UP TO TPOST
THE ER8 TO
IEDQFA FOR
RECALL

H

H

•
J

J

8Tl
K3

•
K

•
484

•

4

•

Chart BT-2 EOB/ETB HANDLiNG SUBTASK

•

•

4

•
A5

A

A

ACTIVATE IEDQAE
TO LOCATE THE
OPT! ON FIELD

•
B

B

•
C

ACTIVATE IEDQAE
TO LOCATE THE
OPT I ON FIELD

C

•
D

D

•
E

ACTIVATE IEDQAE
TO GET THE USER
RTN ADDRESS

E

•
NO

F

F

•
USER ROUT I NE
G

IEDQUI

EXECUTE THE
USER ROUT I NE

SET UP TO TPOST
THE BUFFER TO
THE ACTIVATE
QCB

ACTIVATE IEDQAE
TO LOCATE THE
OPTION FIELD

G

•
H

H

•
.J

SET ACK TO BE
SENT

J

•
K

K

•

•

4

Program organization

485

Chart BT·3 EOB/ETB HANDLING SUBTASK

•

•

•

4

A

.

•
SAVE THE
REMA I N I NG IDLE
CHARACTERS

NO

B

B

..
C

•
SET UP TO
RECALL THE LAST
EOB

SET THE ERB TO
RECALL BUFMAX BUFOUT

SET PRFSCAN AND
THE SIZE I N THE
RECALLED BUFFER

C

..
0

SET UP TO TPOST
THE ERB TO
IEDQFA FOR
RECALL

NO

BUILD A WRITE
IDLE TIC LOOP

PUT THE BUFFER
AT THE START OF
THE CHAIN

..

•
EXCP EXECUTE THE
CHANNEL
PROGRAM

E

E

..

•
SET THE SCB
LAST EOB FIELD
TO EQUAL THIS
RECORD

F

.

F

•
SET UP TO TPOST
THE ERB TO FILL
BUFMAX

G

DECREMENT THE
I NPUT SEQUENCE
NUMBER

G

.

•
CHAIN THE
RECALLED BUFFER
AT THE START OF
THE CHA IN

SET UP TO TPOST
THE BUFFER TO
THE STARTMH QCB

H

H

.

•
REMOVE THIS
RECORD AND ALL
AFTER I T FROM
THE MAIN
STORAGE QUEUE

GET THE NEXT
BUFFER

.J

.

.J

•
BUILD CCWS IN
THE RECALLED
BUFFER

K

~
D5

•
486

0

•

•

4

•

K

Chart BT4 EOB/ETB HANDLING SUBTASK

,

,

,

,

4

A

..

BT-l,E2
BT-l,B3

•

B

B

..

•

C

C

..
0

•
ADD 1 TO THE
RETRY COUNT

0

•
E

E

..

•

F

F

.

•

G

G

.

•

H

H

.

•

J

J

.

•

K

K

•

•

4

•

Proqram. Orqani?ation

487

Chart BW

UNIT REQUEST ROUTINE

•

•

•

4

,

A
AO,CI

•

•
SET A RETURN
CODE

B

B

•
C

•
GET THE ADDRESS
OF A UNIT

C

•

•
D

SUBTRACT ONE
FROM THE
AVAILABLE
BUFFER COUNT

D

•

•

E

E

•

•

F

F

•

'41

G

G

•

•

H

H

•

•

J

J

•

•

K

•
488

2

4

Chart BX

LOG SEGMENT ROUTINE

•

•

•

•

4

A

A

•
B

B

•

•

C

GET THE ADDRESS
OF THE DCB FROM
THE PARAMETER
LIST

C

•
D

SET THE SAVE
AREA ADDRESS

GET THE ADDRESS
OF THE FIRST
DECB TO CHECK

D

CHECK

E

GET THE ADDRESS
OF THE NEXT
DECB

F

•
E

CALCULATE
DCBNCP ( NUMBER
NEEDED) X THE
SIZE OF THE
DECB

GET THE ADDRESS
OF THE FIRST
DECB

•
F

GETMAIN GET MAIN
STORAGE FOR
THE DECBS

CALCULA TE THE
ADDRESS OF .THE
UN ~~M~~~ 6~E
WRITES + 1

•
G

PUT THE ADDRESS
OF THE FIRST
DECB IN THE
DCBEODAD FIELD
OF THE DCB

WRI TE THE
UNIT

•
H

J

GET THE ADDRESS
OF THE NEXT
UNIT AND OF THE
NEXT DECB

•
K

4

Droqram Orqanization

489

Chart BY

LOG MESSAGE ROUTINE

,

,

,

4

,

A

A

.

•
GET THE ADDRESS
OF THE TERM I NAl
ENTRY FROM THE
PARAMETER LI ST

e

e

..

•
GET THE ADDRESS
OF 1'HE
DESTINATION Qce
FROM THE
TERM I NAL ENTRY

C

c

..

•
ADD THE
RECALLED HEADER
BUFFER TO THE
TPOST LIST

0

0

•

•
SET THE
DESTINATION Qce
ADDRESS AND
PR I OR ITY FOR
TPOST

E

E

•

•

F

F'

•

•

G

G

•

•

H

H

•

•

..J

..J

•

•

K

•
490

2

•

4

•

Chart BZ-l LOG SCHEDULER ROUTINE

•

2

•

•

•

4

HM-B,E2

AS-2,J5

HMl-6,E2

•

•

HM2-7,E2

GET THE ADDRESS
OF THE LCB AND
OF THE DCB

B

B

•

•
C

GET THE DCB
ADDRESS FROM
THE QCB

GET THE DCB
ADDRESS

C

•

•
DSPUNAVR

D

MOVE THE STCB
AND RETURN

•

D

•

E

MOVE THE· STCB
AND RETURN

E

TPOST THE LCB
TO ITSELF

•

•
F

TPOST THE Lce
TO ITSELF

F

TPOST THE LCB
TO THE READY
QUEUE & RETURN

•
G

G

•

•

H

H

•

•

J

J

•

•

K

K

•

•

3

•

4

~roqram

Orqanization

491

Chan BZ-2 LOG SCHEDULER ROUTINE

,

,

,

3

,

4

GET THE DCB
ADDRESS FROM

A

T~~E S~~B lDg~~ss

A

FROM THE LCB

BZ-I.F::!
BZ-I.E:4

•
YES

B

SET THE QCB
ADDRESS PO INTER
TO THE Lce
ADDRESS

UPDATE THE
QCBFFEFO FIELD
IN THE
DESTINATION QCB

•

B

41

GET THE ADDRESS
OF THE FIRST
DECB

C

GET THE NUMBER
OF UNITS IN THE
NEW BUFFER

C

..

•
0

CHECK

GET THE ADDRSS
OF THE FIRST
DECB

0

•

41

GET THE ADDRESS
OF THE NEXT
DECB

E

ADD ONE TO THE
NUMBER OF
WRITES DONE

E

•

41

CALCULA TE THE
ADORES S OF THE

F

AD~~g Su~t T tHE

F

UNIT +

12

•
G

41

41

WRITE THE
NEXT UNIT

GET THE ADDRESS
OF THE NEXT
UNIT TO WRITE

G

..

•
SAVE THE NUMBE~

N~~B~~ I ~~ I Tt~~ •

NO

H

H

AND THE NEXT
UNIT TO WRITE

..

•
DSPPOSTR

J

J

TPOST IT TO THE
AVAILABLE BFR
QCB AND RETURN

•

..

ALLUN I TS

K

K

•

2

4

•

Chart CA

RESIDENT OPERATOR CONTROL MODULE

,

,

3

,

•

4

A

A
CF-2,Al

•

41

8

8

•

41

IGCOO10D
C

PROCESS A
COMMAND

C

•

41

D

D

•

41

IGCOO10D
PROCESS A
COMMAND

E

E

•

•

F

F

•

41

G

G

•

41

H

H

•

41

J

J

•

41

K

K

•

3

•

4

•

?roqram Orqanization

493

Chart CF-I MODIFY OPTIONS ROUTINE

•

•

3

•

•

4

5

A

A

GET THE OPT I ON
ADDRESS

B

C

D

B

LOAD THE
IEDQC5 WORK
AREA

C

GET THE
TERMNAME TABLE
ADDRESS

D

YES

E

BU I LD AN ERROR
MESSAGE

YES

PREPARE THE
'FIELD IS ALL
MESSAGE

.. BLANKS'

>--~

NO

CONVERT THE
LAST BYTE FOR
THE SIGN·

F

CONVERT THE
FIELD FROM

G

H

~~_~ PACK~~c T~A[ONED

I NCREMENT TO
THE NEXT ENTRY

CONVERT THE
VALUE TO
PRINTABLE
NUMBERS

GET THE OPT I ON
TABLE ADDRESS

PUT THE FIELD
I N THE MESSAGE

I NCREMENT TO
THE NEXT ENTRY

J

K

2

494

G

H

BU I LD AN ERROR
MESSAGE

J

K

PUT THE SIGN IN
THE MESSAGE

F

•

•

4

Chart CF-2 MODIFY OPTIONS ROUTINE

,

,

,

4

,

5

GET PART OF THE
DATA

A

•
B

B

•
c

C

•
0

SAVE THE DATA
TYPE

PUT THE DATA IN
THE WORK AREA

p

•
E

E

•
F

F

•
G

G

•
SAVE THE LAST
BYTE RECE I VEO

H

H

•
J

J

•
K

K

..

2

..

..

4

..

5

Prooram Orqanizaticn

495

Chart CF-3 MODIFY OPTIONS ROUTINE

Y

•

•

•

•

4

AI

A

GET ALL THE
CHARACTERS
RECEIVED

A

•

•

B

0

B

•

•
SET THE
POSITIVE SIGN

C

C

•

•

0

SET THE
NEGATIVE .SIGN

NO

0

•
E

NO

F5

•

•
CONVERT THE
DATA TO A
PACKED DECIMAL
VALUE

PAD THE DATA
WITH BLANKS TO
THE RIGHT

F

BUILD AN ERROR
MESSAGE

•
G

PUT THE DATA
THE OPTION
FIELD

IN

BUILD A
CHECKPOINT
ELEMENT

PAD THE DATA
WITH ZEROS TO
THE LEFT

G

•
BUILD A
RESPONSE
MESSAGE

SET UP TO TAKE
A CHECKPO I NT

-H

•
.J

•
OS WAIT ON THE
CHECKPOINT
ECB

NO

.J

•
K

2

496

F

•

•
H

E

•

4

•

Chart CG

COpy LINE INFORMATION ROUTINE

•

•

•

4

•

A

Z2,F2

•

•

B

B

•

•

C

GET THE
TERMNAME TABLE
ADDRESS

C

•

•
I NCREMENT TO
THE NEXT ENTRY

o

o

•
E

•
BU I LD THE 'NAME
NOT FOUND'
MESSAGE

GET THE AODRESS
OF THE TERMINAL
ENTRY

E

•
F

•
BU I LD THE 'NAME
I S A PROCESS
ENTRY' MESSAGE

YES

YES

GET THE DEB
ADDRESS FROM
THE DCB

GET THE UCB
ADDRESS FROM
THE DEB

F

•
GET THE QCB
ADDRESS FROM
THE TERM I NAL
ENTRY

G

YES

G

•

•
GET THE
RELATI VE LINE
NUMBER; PUT IT
IN THE IED0381
MESSAGE

H

PUT THE UCB I 0
IN THE IED0381
MESSAGE

BUILD THE 'LINE
NOT OPEN'
MESSAGE

H

•

•
GET THE DCB
ADDRESS FROM
THE QCB

PUT THE NAME IN
THE IED0381
MESSAGE

•
K

K

•

•

•

4

•

Proqram Orqanization

497

Chart CH

COpy TERMINAL INFORMATION ROUTINE

•

•

•

4

•

A

A
Z2,F2

•

41

B

B

•

41

C

GET THE
TERMNAME TABLE
ADDRESS

C

•

41

I NCREMENT TO
THE NEXT ENTRY
IN THE TABLE

NO

0

0

•
E

C

BUILD THE 'NAME
NOT FOUNO'
MESSAGE

PUT THE ENTR Y
NAME IN THE
MESSAGE

E

•

41

F

GET THE
TERMINAL ENTRY
ADDRESS

F

PUT THE INPUT
AND OUTPUT
SEQUENCE
NUMBERS IN THE
MESSAGE

G

...
G

•

41

PUT THE
I NTENS I VE MODE
FIELO IN THE
MESSAGE

H

H

•

41

PUT THE STATUS
IN THE MESSAGE

,J

,J

•

41

K

K

•

2

•

3

•

4

5

Chart CI

COPY LCB INFORMATION ROUTINE

•

•

4

•

GET THE DCB
ADDRESS FROM
THE DEB

A

.

•

Z2,F2

B

GET THE ADDRESS
OF THE NEXT DEB

.
C

B

•
GET THE TCB
ADDRESS

PREPARE THE
'LINE NOT
FOUND' MESSAGE

C

..

•

D

THE FIRST
DEB

D

•
E

E

..

•

F

CONVERT THE
RELA TI VE LI NE
NUMBER TO
HEXADEC I MAL

PREPARE THE
'INVALID
COMMAND'
MESSAGE

GET THE lOB
LENGTH
MULTIPLIED BY
THE RLN AND ADD
TO THE lOB

..

•
BACK UP TO THE
Lce ADDRESS

G

G

..

•
GET THE ADDRESS
OF THE NEXT UCB

PREPARE THE
' INVALID
COMMAND'
MESSAGE

H

PUT THE LINE
NAME IN THE
MESSAGE

H

..
J

F

•
CALCULATE THE
OFFSET OF
DDNAME I N THE
TlOT

PUT THE ERROR
MASK IN THE
MESSAGE

PUT THE STATUS
IN THE MESSAGE

.

J

•
GET THE SCB
ADDRESS FROM
THE LCB

K

•

•

3

4

K

•

?roqram Orqanization

499

Chart CJ

COPY QCB INFORMATION ROUTINE

,

,

3

,

,

4

5

A

Z2,F2

•

•
GET THE
TERMNAME TABLE
STARTING
ADDRESS

B

B

•

•
.---~

C

PREPARE THE
'NAME NOT
FOUND' I EDO 16 I
MESSAGE

C

•

•
D

GET THE NEXT
ENTRY

NO

D

•

•
PUT THE
TERM I NAL NAME
IN THE IED031I
MESSAGE

E

PREPARE THE

~.;.....,-... 'L I NE NOT OPEN'

I ED09 I I

E

MESSAGE

•
GET THE
TERM I NAL ENTRY
ADDRESS

F

F

•

•
GET THE QCB
ADDRESS

G

G

•

•
PUT THE·
PRIORITY IN THE
I ED031 I MESSAGE

GET THE DCB
ADDRESS

H

H

•

•
PUT THE STATUS
IN THE IED0311
MESSAGE

•

•
PREPARE THE
IED0311 MESSAGE

K

•
500

2

•

4

K

•

Chart CK

COpy HELD TERMINALS ROUTINE

•

•

•

4

•

Z2,F2

•

..

B

B

•

..
GET THE ADDRESS
OF THE TERMNAME
T ABLE FROM THE
AVT

C

C

•

.

D

D

..
PREPARE A 'NO
ENTRY FOUND'
RESPONSE
MESSAGE

GET THE
TERM I NAL ENTRY
ADDRESS

E

E

..

•
F

I NCREMENT TO
THE NEXT
TERMNAME TABLE
ENTRY

F

•

..

G

G

•

..

H

H

---~

SWAP THE ENTRY
WITH THE
PREV IOUS ENTRY

•

J

•
RESET THE SWAP
COUNTERS

K

•

4

K

•
nrOqrR~

Orqanizaticn

SO?

Chart CO-3 CHANGE TERMINAL ROUTINE

•

,

3

,

4

•

A

.
8

~.3.

..

GET THE LENGTH
OF THE ENTRY

j'

B

.

BACK UP PAST
THE EOT IFE
BYTES

C

.

C

PUT THE E::NTRY
ON THE ACT I VE
SIDE

MAKE THE ENTRY
ACTIVE

GET THE ENTRY
INDEX

o

o
POINT TO THE
NEW END OF
ACTI VE ENTR I ES

GET THE NUMBER
OF ACTIVE
ENTR IES

RESET THE
EOT I FE BYTES

E

E

..

..

GET THE INDEX
OF THE NEXT
ENTRY

RESET THE
ACT I VE PO INTER

..
F

.

SET THE • MOVED'
INO I CATOR

I NCREMENT THE
COUNT OF
ENTRIES

YES

G

G

..

..

H

H

.

SWAP THIS ENTRY
WITH THE NEXT
ENTRY

..

I NCREMENT THE
COUNT FOR EOT

J

J

..

..

SWAP THE ENTRY
TO THE I NACT I VE
SIDE

SWAP THE ENTRY
WITH THE
PREV 10US ENTRY

K

K

DECREMENT THE
COUNT OF ACT I VE
ENTRIES

•
508

2

•

4

•

Chart CP-l ALTER TRACE STATUS ROUTINE

,

,

,

,

4

A

A
Z2,F2

•
B

B

•

•
GET THE TCB
ADDRESS

C

C

•

•
PREPARE THE
IEDO 111 MESSAGE

D

D

•
E

•
CONVERT THE
RELA T I VE--L INE
NUMBER TO
HEXADEC I MAL

PUT THE
RELA TI VE LI NE
NUMBER IN THE
IED0111 MESSAGE

E

•

•
GET THE T lOT
ADDRESS

F

PUT THE UCB
ERROR IN THE
IED0111 MESSAGE

F

•

•
CALCULATE THE
OFFSET TO
DDNAME

G

G

•
H

PREPARE THE
IEDO 111 MESSAGE

H

•

•

J

J

•
K

K

•

•

4

•
Proqram Orqanization

509

Chart CP-2 ALTER TRACE STATUS ROUTINE

•

A

•

•

•

4

GET THE ADDRESS
OF THE FIRST
DEB

A

•
B

•
GET THE ADDRESS
OF THE DCB FOR
THI S DEB

GET THE UCB
ADDRESS

GET THE lOB
ADDRESS

B

•
ADD THE lOBS I ZE
MULTIPLIED BY
THE RLN TO THE
lOB ADDRESS

C

C

•

•
BACKUP TO THE
LCB

D

D

•
E

•
GET THE ADDRESS
OF THE NEXT DEB

GET THE ADDRESS
OF THE NEXT UCB

GET THE TRACE
TABLE ADDRESS

E

•
F

•
PREPARE THE
, ALREADY
STOPPED'
I ED030 I MESSAGE

.I--~--'-'

PREPARE THE
'ALREADY ON'
I ED0241 MESSAGE

•
G

G

•

•
PREPARE THE
'TRACE
MODIFIED'
IED0231 OR
IED0291 MESSAGE

H

H

•

•

•

•

K

K

•
510

•

4

2hart CQ

STOP /RESUME TERMINAL TRANSMISSION ROUTINE

)..
B

•

•

•

•

4

>-----1 TERM~~~E T~~BLE
ADDRESS

Z2,F2
41

I NCREMENT TO
THE NEXT ENTRY

YES

PREPARE AN
ERROR MESSAGE

B

..

41

PREPARE THE
'ALREADY HELD'
MESSAGE

C

C

..
o

PREPARE THE
, ALREADY
RELEASED'
MESSAGE

PREPARE AN
ERROR MESSAGE

.

0

4'

BU ILD THE
REQUEST FOR THE
BUFFER

E

E

..

41

F

GET THE ADDRESS
OF THE QCB

POST THE
REQUEST TO TCAM

..

F

41

DEQUEUE AN
ELEMENT AND
RESET THE
'QUEU I NG' FLAG

G

G

.

41

TAKE THE BUFFER
OFF THE QUEUE

H

GET THE ADORES'S
OF THE DCB

..

H

41

BUILD THE
RELEASE REQUEST
LIST

J

.

41

K

POST THE
REQUEST TO TCAM

•

K

•

4

Proqram 0rqanizaticn

511

Chart CU-l START LINE ROUTINE

,

A

,

3

,

4

,

(QC~NTE'

A

Z2,F2

•
B

B

..
RECONVERT TO
RLN

C

C

..
GET THE DEB
ADDRESS AND
RELATIVE LINE
NUMBER (RLN)

0

D

..

F3

E

E

..

'.

F

PUT THE LINE
DDNAME I N THE
I ED020 I MESSAGE

..
G

G

..

•

H

CHECK FOR RLN
ALL

H

YES

..

•

J

J

..

•

K

K

•
512

•

•

4

•

5

Chart CU-2 START LINE ROUTINE

:r
I

•

•

•

•

4

U2
AI

TRM

GET THE
TERMNAME TABLE
ADDRESS

•

.

B

B

•

.

C

C

.
GET THE NEXT
ENTRY

SET UP TO
PROCESS THE
ENTRY

D

E

..
F

>-----0...

YES

GET THE NUMBER
OF RELA T I VE
LI NE NUMBER S

F

..
SAVE THE
RELATIVE LINE
NUMBER

G

G

..
H

H

..
GET THE FIRST
RLN

J

J

..
K

K

•

4

•

Proqra~

Orqanization

513

Chart CU-3 START LINE ROUTINE

•

A

!

•

3

•

•

4

U3
81

!'AVERLN

8

~~~

~

YES

CU-I,H3
CU-I,H5

•

CU-4,J2

GET THE
'COMMAND
INVALID'
IEDOl81 MESSAGE

YES

PUT 'ALL' IN
THE IEDO 171
MESSAGE

8

•
PUT THE RLN I N
THE IEoO 171
MESSAGE

C

411

o

GET THE TIOT
ADDRESS

o

•
E

411

GET THE FIRST
TERM I NAL ENTRY

E

411

CALCULA TE THE
TlOT OFFSET

F

•

411

G

G

•

411

H

H

•

411

J

J

•

•

K

K

2

5111

..

..

4

..

Chart CU-4 ST ART LINE ROUTINE

•

•

•

•

4

A

A
CU-I,E3

•

..

B

B

•

.
PUT A SAD
COMMAND IN THE
CHANNEL PROGRAM

C

C

.
IGCI02

0

0

TPOST THE LCB
TO ITSELF

..

•
E

SAVE ALL THE
INCOMING
REGISTERS

E

PUT A DISABLE
COMMAND IN THE
CHANNEL PROGRAM

..

•
F

GET THE DCB
ADDRESS FROM
THE LCB

F

.

•
G

PUT AN ENABLE
COMMAND IN THE
CHANNEL PROGRAM

GET THE DEB
ADDRESS FROM
THE DCB

G

..

•
B
H

GET THE ADDRESS
OF THE UCB FOR
THI S LINE

H

BU I LD THE BSC
ERROR MESSAGE
IED0921

..

•
J

BUILD A NOOP
CCW IN THE
CHANNEL PROGRAM

PUT A SETMODE
COMMAND IN THE
CHANNEL PROGRAM

TESTALL
CHECK FOR RLN
ALL

J

•

.

K

K

•

3

•

4

•
Proqram Oroanization

515

Chart CV-I STOP LINE ROUTINE

•

•

•

4

•

5

CVI
A4

PREPARE THE
'L I NE NOT OPEN'
MESSAGE IEDOl71

A

.

A

Z2,F2
41

-

SVC I
WAIT FOR
THE LINE TO
BE STOPPED

B

.

41

C

C

..

41

D

D

..

41

DEQUEUE AN
ELEMENT

E

..

F

..

41

G

G

..

41

PREPARE THE
'L I NE BELONGS
TO TSO' MESSAGE

H

H

..

41

PREPARE THE
'LINE STOPPED'
MESSAGE IED0261

GET THE DCB
ADDRESS FOR
THI SENTRY

J

..

J

41

IGCI02

I NCREMENT TO
THE NEXT ENTRY
IN THE TABLE

K

TPOST THE STOP
LINE REQUEST
ELEMENT TO TCAM

•
516

E

41

F

K

B

•

3

•

4

•

5

Chart CV-2 STOPLINE ROUTINE

,

,

,

,

4

A

A

•

41

B

B

GET THE ADDRESS
OF THE DCB FOR
THIS DEB

•

41

C

C

INCREMENT TO
THE NEXT DEB

YES

•

0

D

•

CONVERT THE
RELA TI VE LI NE
NUMBER TO
HEXADECIMAL

SAVE THE
RELATIVE LINE
NUMBER

41

E

E

•

GET THE TIOT
ADDRESS

41

F

F

•

YES

SAVE THE DO
OFFSET

41

G

G

•

41

PREPARE THE
• LI NE NOT OPEN'
MESSAGE IEDOl71

GET A UCB
ADDRESS

41

H

H

•

41

J

J

•

41

K

K

I NCREMENT TO
THE NEXT UCB

3

4

•

Proaram Oraani7ation

517

Chart CW

MODIFY POLL ROUTINE

,

,

,

4

,

GET THE ADDRESS
OF THE FIRST
DEB

A

A

Z2,F2

•

•
GET THE ADDRESS
OF THE DCB FOR
THI S DEB

B

B

•

•
I NCREMENT TO
THE NEXT DEB IN
THE CHA IN

C

•

•
BUILD THE
'COMMAND
INVALID'
MESSAGE

D

(0

D

•
E

'c

•
CONVERT THE
RELATIVE LINE
NUMBER TO
HEXADECIMAL

GET THE ADDRESS
OF THE UCB

GET THE
INVITATION LI ST

E

•

•

F

F

•

•

G

G

•

•

H

GET THE TIOT

H

•
BUILD THE
'ALREADY
MODIFIED.'
MESSAGE

SAVE THE OFFSET
OF THE DDNAME
INTO THE TIOT

BUILD THE
'MODIFIED'
MESSAGE

J

•
K

BU I LD THE 'L1 NE
NOT OPEN'
MESSAGE

K

2

518

3

4

•

5

Chart leX-} MODIFY INTENSE ROUTINE

•

,

,

,

4

A
Z2,F2

•

..

B

B

•

.

C

YES

BUILD THE
'COMMAND
INVALID'
MESSAGE

C

..

•
0

GET THE ADDRESS
OF THE TERMNAME
TABLE

0

.

•
BU I LD AN ERROR
RESPONSE

E

•

E

.

NO

F

F

..

•
GET THE TIOT

G

G

.

•
H

I NCREMENT TO
THE NEXT ENTRY
I N THE TERMNAME
TABLE

au I LD

AN ERROR
RESPONSE

BUILD THE 'LINE
NOT OPEN'
MESSAGE

H

..

•
SAVE THE ODNAME
OFFSET I N THE
TlOT

..J

..J

•

.

K

K

•

•

•

4

•
Proaram Oraanization

519

Chart CX-2 MODIFY INTENSE ROUTINE

•

A

..

~

B

GET THE ADDRESS
OF THE DCB FOR
THIS DEB

•

•

4

•

A

AI

•
THE SENSE
TYPE

B

C

C

..

•
GET

D

D

•
I NCREMENT TO
THE NEXT DEB

GET THE ADDRESS
OF. THE LCB

CONVERT THE
SENSE COUNT TO
HEXADEC I MAL

E

•
BU I LD AN ERROR
MESSAGE

F

..

F

•
I NCREMENT TO
THE NEXT UCB

G

COMBINE THE
SENSE COUNT
WITH THE TYPE

G

•
PUT THE SENSE
COUNT I TYPE IN
THE LCB

H

H

..

•
PUT THE SENSE
COUNT/TYPE IN
THE TERM I NAL '
ENTRY

J

J

..

•
BUILD A
RESPONSE
MESSAGE

K

•
S20

4

K

•

Chart CZ

CHANGE INTERVAL TYPE ROUTINE

,

,

,

,

4

)•

..

Z2,F2

B

GET THE ADDRESS

B

>---~ OF THE TERMNAME

TABLE

..

•
C

PREPARE THE
IED0161 ERROR
MESSAGE

C

..

•
D

PREPARE THE
. _ - - - . IEDOlll MESSAGE

PUT THE DATA
FIELD IN THE
WORK AREA

D

..

•
I NCREMENT TO
THE NEXT ENTRY

PREPARE THE
I ED045 I MESSAGE

E

E

..
BUILD THE
REQUEST TO
START THE
SYSTEM DELAY

SEND THE
REQUEST TO THE
TCAM MCP

CONVERT THE
FIELD TO
HEXADECIMAL

GET THE LCB ADDRESS
THROUGH THE
DCB-LCB-TERM I NAL
ENTRY CHAIN

F

G

..
H

PUT THE
INTERVAL IN THE
AVT

PREPARE THE
I ED0931 MESSAGE

H

PUT THE
INTERVAL IN THE
DCB

J

J

..
PREPARE THE
I ED0481 MESSAGE

K

•

K

•

4

Droar~ro

0rqani2ation

521

Chart CO-I MCP CLOSEDOWN PROCESSING ROUTINE

,

,

2

,

,

4

A

A
Z2,F2

CO-I,H3
CO-2,E4,H5

•

41

CO-2,J5,H2

CLEAR THE LINK
FIELD OF THE
ELEMENT

8

8

41

NO

C

LC8LOOP

SET UP THE
PARAMETER LIST
FOR SVC

MARK ALL LC8S
THAT ARE
STOPPED

•

41

YES

D

TURN ON THE
'QUICK
CLOSEDOWN' 81 T
IN AVT81TI

IGCI02
TPOST ELEMENT
TO THE DISA8LED
READY QUEuE

•
TURN ON THE
'CLOSEDOWN' 81 T
IN AVT81TI

E

•

41

SET THE
'TEST-AND-SET'
SWITCH

YES

F

F

•

41

GET THE NEXT
PC8 IN THE
CHAIN

G

CLEAR THE
AVTOSEC8 FIELD

NO

G

•

41

WTO - TELL
CONSOLE OF
DC8 STILL
OPEN FOR
APPL PROG

REMOVE THE
8UFFER; CLEAR
THE
'TEST-AND-SET'
SWITCH

LC8LOOP

NO

MARK ALL LC8S
'NOT SENDING'

WAIT-'FOR
OPERATOR
CONTROL EC8
POSTED 8Y
CLOSE

POST

WAIT FOR
AVTOSEC8

TPOST 8UFFER TO
IEDQ8D SO LINE
CAN BE FREED

J

•

•
K

•
522

H

•

•
J

D

41

E

H

C

•

4

•

Chart CO-2 MCP CLOSEDOWN PROCESSING ROUTINE

•

•

•

4

•
LCBLOOP
WAIT FOR ALL
CPBS TO BE
MARKED STOPPED

A

•
B

8-

CO-I,D3,H5
CO-2,A5,B5,C5

A

•

GET THE TCB AND
DEB CHAIN;
INI TI ALI ZE THE
'WAIT' SWITCH
TO ZE;:RO

B

•

•
LCBLOOP
YES

C

WAIT FOR ALL
LCBS TO BE
MARKED STOPPED

•

•
NO

D

D

•

•
GET THE FIRST
E

WAIT FOR THE
OPERATOR
CONTROL ECB TO
BE POSTED BY
QEVENT

LC~Ou~~D A~~E

LENGTH OF LCBS

POST

NO

TPOST CLOSEDOWN COMPLET I ON
ELEM TO IEDQNA

E

•

•
F

C

GET THE NEXT
LCB ADDRESS

TURN ON THE
'REQUEST' BIT
I N THE ENV I RONMENT CHECKPO I NT
REQUEST ELEMENT

CLEAR THE
AVTOSECB FIELD

YES

F

(0

•
TURN ON THE
'REQUEST' BIT
I N THE ENV I RONMENT CHECKPOINT
REQUEST ELEMENT

G

G

•

•
POST

POST

TPOST REMOVAL
ELEMENT TO T I ME
DELAY QUEUE

TPOST THE LCB
TO ITSELF

H

H

•

•
POST
TPOST ENVIRON
REQUEST ELEMENT
TO CKPT QUEUE

J

•

•
K

J

GET THE NEXT
DEB IN THE
CHAIN

K

•

4

•

Uroqram nrqanization

523

Chart Cl-l ICHNG PROCESSING ROUTINE

•

•

•
GET THE
POSITION TO
MOVE TO AND THE
NUMBER OF BYTES
TO MOVE

A

4

•

MOVE THE DA 1 A

A

•

•

B

B

•

•
BUILD A
CHECKPOINT
ELEMENT AND SET
UP FOR
CHECKPOINT

C

•

•
COMPUTE THE
OF ENTRIES
THE LENGTH
AN ENTRY +

o

NO
X
OF
9

OS WAIT WAIT FOR
THE
CHECKPOINT
ECB

•

o

•

E

ADD

1 FOR THE
EOT

E

•

•

F

F

•
DEQUEUE AN
ELEMENT AND
RESET THE
• QUEU I NG' FLAG

MOVE THE
CHARACTERS

G

•
H

G

•
GET PO I NTER TO
THE BEGINNING

GET THE START
OF THE
INVITATION LIST

SET THE STATUS
FOR STARTUP

>---i~~ OF THE LI ST FOR

THE RECEIVE
SCHEDULER

H

•

•
SET UP.TO TPOST
THE LCB TO
ITSELF

MOVE THE LAST
BYTES

J

J

•
CKPTIT
K

CHECKPO I NT THE
INVITATION LIST

IGC102
CHECKPO I NT THE
INVITATION LIST

START LINE
ACTI V I TY

•
524

YES

4

•

Chart Cl-2 ICHNG PROCESSING ROUTINE

,

,

,

,

4

A

..

GET THE LENGTH
OF THE ENTRY

THE NEXT
INDEX

YES

BACK UP PAST
THE EOT/FE
BYTES

•
B

B

..

MAKE THE ENTRY
ACTI VE

PUT THE ENTRY
ON THE ACT I VE
SIDE

C

C

POINT TO THE
NEW END OF
ACT I VE ENTR I ES

SET UP FOR A
SWAP

RESET THE
EOT /FE BYTES

•
o

0

RESET THE
ACT I VE PO INTER

GET THE ENTRY
INDEX

•
E

SWAP TH I SENTRY
WITH THE
PREY IOUS ENTRY

GET THE NUMBER
OF ACTIVE
ENTRIES

INCREMENT THE
COUNT OF ACT I VE
ENTRIES

•
F

F

..

MOVE PAST THE
'ACTIVE' FLAG

RESET THE SWAP
COUNTERS

•
G

G

GET THE INDEX
TO THE NEXT
ENTRY

•
H

H

..

SWAP TH I SENTRY
WITH THE
PREV IOUS ENTR Y

MOVE PAST THE
'EOT' FLAG

•

..J

..J

..

•
K

2

•

4

•
Drooraro

Orqanizaticn

525

Chart Ct·3 ICHNG PROCESSING ROUTINE

,

,

,

4

•

5

A

A

GET THE LENGTH
OF THE ENTRY

•
CI-I,KI
CI-I,K2

B

8

•

•

C

C

PERFORM THE
CHECKPOINT

•
o

•

o
GET THE ENTRY
INDEX

START LINE
ACTI VITY

E

•

•
E

SVC I WAIT FOR
THE LINE
STARTUP

GET THE NUMBER
OF ACT! VE
ENTRIES

F

•

•

•
F

GET THE INDEX
FOR THE NEXT
ENTRY

G

G

•

•

I NCREMENT THE
COUNT FOR EOT

H

H

•

•

J

J

•

•

DECREMENT THE
COUNT OF ACTIVE
ENTRIES

K

K

•
526

•

•

4

•

5

Chart C2-1 ON-LINE TEST INTERFACE ROUTINE

,

,

,

4

,

SET THE SCAN
PO I NTER AT
'OLT='

A
Z2,F2

.

•
BU I LD A DUMMY
LCB

B

SET THE KEY TO
INDICATE
TERMINAL INPUT

B

..
YES

PUT THE
OPERATOR
CONTROL QCB
ADDRESS IN
LCBRCQCB

GET THE ADORESS
THE COMMAND

r--~ OF

C

PUT THE TOTE
QCB ADDRESS IN
THE BUFFER
PREFI X

..

•
D

C

CALCULA TE THE
LENGTH OF DATA
+ THE LENGTH OF
THE HEADER
PREFIX

GET THE ADDRESS
OF THE ERROR
MESSAGE

D

..
I N I TI AL I ZE THE
COUNT OF UN I TS
TO ZERO

E

SET THE
PRIORITY AND
CLEAR THE LINK
FIELD

E

..
ADD ONE TO THE
COUNT OF UN I TS

F

BUILD THE SVC
102 PARAMETER
LI ST

F

..
TPOST THE
BUFFER TO THE
TOTE QCB

G

G

•

..

H

H

•

..
PUT THE BUFFER
REQUEST QCB
ADDRESS IN THE
ERB

J

J

..

•
SET THE
PRIORITY AND
CLEAR THE LINK
FIELD

K

.,

K

.,

4

Droqram 0rqanization

527

Chart C2-2 ON-LINE TEST INTERFACE ROUTINE

,

,

,

4

,

REMOVE THE
ELEMENT FROM
THE CHA IN

BUILD THE SVC
102 PARAMETER
LI ST

..

•
IGCI02

B

TPOST THE ERB
TO THE BUFFER
REQUEST QCB

GET A BUFFER
FROM :THE ERB

B

PUT THE TOTE
QCB ADDRESS IN
THE BUFFER

C

SET THE KEY TO
INDICATE THE
SYSTEM CONSOLE

D

.
C

GET THE ELEMENT
CHA IN OF THE
OPERATOR
CONTROL QCB

..
D

..

•
GET THE NEXT
I::LEMI::NT IN THE
CHAIN

E

SET THE SCAN
POINTER AT
'OLT='

SET THE
PRIORITY AND
CLEAR THE LINK
FIELD

E

..
F

•
OS WAIT ON THE
OPERATOR
CONTROL ECB

PUT THE BUFFER
SIZE IN THE
PREFI X

BUILD THE SVC
102 PARAMETER
LI ST

F

..

•
MOVE THE DATA
TO THE UNIT

G

IGCI02
G

TPOST THE
BUFFER TO THE
TOTE QCB

H

H

..

•
MOVE TO THE
NEXT SECT I ON OF
DATA

J

J

..

•
GET THE NEXT
UNIT

2

528

K

4

•

Chart C3

COPY INVITATION LIST STATUS ROUTINE

•

•

•

,

4

5

GET THE DEB
ADDRESS FROM
THE TlOT

A

..

3

Z2,F2

•
GET THE DCB
ADDRESS FROM
THE DEB

B

B

•
C

GET THE TCB
ADDRESS

I NCREMENT TO
THE NEXT DEB

..

C

•

D

ADDR

D
E5

•
E

PREPARE THE
' INVALID
COMMAND'
MESSAGE IEDOt81

YES

PREPARE THE
' LI NE NOT OPEN'
MESSAGE IEDOt71

E

•
F

CONVERT THE
RELATIVE LINE
NUMBER TO
HEXADECIMAL

F

•
G

G

..

•
GET THE LENGTH
OF THE DD ENTRY

H

H

..

•
GET THE DD
OFFSET IN THE
T lOT

I NCREMENT TO
THE NEXT UC8

PREPARE THE
'STATUS'
MESSAGE IED0591

J

•
t NCREMENT TO
THE NEXT ENTRY

K

•

4

5

Proqram Otqanization

Chart C6-1

DEBUG SERVICE AID ROUTER

•

•

•

4

•

Z2,F2'

•

•

B

B

•

•

C

C

•

•
SET UP
'COMWR I TE NOT
ACT I VE' MESSAGE

D

D

•
E

•
GET THE FIRST
OPERAND

E

•

•

F

F

•
G

LOAD RETREG
WITH THE
ADDRESS OF THE
DELETE ENTRY
POINT

LOAD RETREG
WITH THE
ADDRESS OF THE
LOAD ENTRY
POINT

G

•

•
H

GET THE SECOND
OPERAND

NO
>-.....L--o...

SET UP 'INVALID
OPER AND'
MESSAGE

H

•
BRANCH TO THE
ADDRESS IN
RETREG

YES
J

...

•
530

BRANCH TO THE
ADDRESS IN
RETREG+4

LOAD A ZERO IN
REGISTER 15

T

•

•

4

J

Chart C6-2 DEBUG SERVICE AID ROUTER

,

,

,

,

A

•
B

SET UP 'ROUT I NE
ALREADY ACT I VE'
MESSAGE

SET REGISTER 0
TO A POSITIVE
VALUE

SET UP 'ROUT I NE
NOT ACTIVE'
MESSAGE

B

•
BALR TO THE
SERVICE AID
ROUTINE

C

C

•
SET UP THE
'RETURN CODE
XXX' MESSAGE

o

D

•
E

LOAD - THE
ROUTINE

DELETE THE ROUT INE

MOVE IN THE
USER MESSAGE

SET UP THE
'MULTIPLE
REQUEST'
MESSAGE

E

•
F

SET UP THE
'ROUT I NE NOT
DELETEO'
MESSAGE

SET REG I STER 0
TO ZERO

F

•
G

BALR TO THE
SERVICE AID
ROUTINE

G

•
SET UP THE
ADDRESS OF THE
MESSAGE IN
REGI STER 1

H

•
,J

SET UP 'ROUTINE
LOADED' MESSAGE

,J

•
K

K

iIII

iIII

4

iIII

nroqram orqanization

531

Chart EB

AQCTL SVC 102 ROUTINE

,

,

,

,

4

)--

A

A

•
B

•

•
TESTDSP OS TASK
REMOVAL
ROUTINE

C

•
D

LOAD A REG I S TER
WITH THE THE
ECB ADDRESS
PLUS X'O l '

LOAD A REG I STER
WITH THE TJID
FROM THE PCB

OS POST POST THE
Eca
COMPLETE

D

•
E

IKJTSlf)O FLAG THE
TCB
'ELIGIBLE
FOR SWAP'

GET THE SOURCE.
LENGTH, AND
TARGET DATA
FROM THE
PARAMETER LI ST

YES

•

•
OS POST POST THE
Eca
COMPLETE

F

MOVE THE DATA
ACROSS THE
PART I T I ON
BOUNDARY

F

•

•
G

NO

G

•

•
PUT THE ELEMENT
ON THE DISABLED
READY QUEUE

H

H

•

•
J

E

OS POST POST THE
MCP Eca
COMPLETE

SVC 79 SET THE TCB
STATUS

J

•
K

I KJTS I 00 FLAG THE
TCB 'NOT
ELIGIBLE
FOR SWAP'

•
532

YES

YES

•

4

SVC 79 SET THE Tca
STATUS

5

K

Chart EC

PUT SCHEDULER

•

•

•

4

•

A

•
PREPARE TO
HANDLE THE
ELEMENT REQUEST
BLOCK

B

B

•
GET THE PO I NT~
TO THE EMPTY'
BUFFER ON THE
ERB

C

C

•
GET THE PO INTER
TO THE WORK
AREA AND TO THE
CONTROL
I NFORMA T I ON

D

MOVE THE SOURCE
TERMNAME TABLE
OFFSET I NTO THE
PREFIX

D

•
E

SET UP THE ERB
TO REQUEST
EMPTY BUFFERS

YES
LOCATE THE SEND
r~-'" SCHEDULER STCB

PUT THE SEND
SCHEDULER STCB
I N THE LCB STCB
CHAIN

E

•
F

PREPARE TO
TPDST THE ERB
TO THE BUFFER
REQUEST SUBTASK

MOVE THE
DEST I NAT ION
TERMNAME TABLE
OFFSET I NTO THE
PREFIX

PUT POINTERS TO
MH AND TO THE
LCB IN THE
BUFFER PREF I X

PREPARE TO
TPOST FULL
BUFFERS TO MH

F

•
G

FILL THE BUFFER
WITH DATA FROM
THE USER WORK
AREA

PREPARE TO EX I T
TO THE TCAM
01 SPATCHER

G

•
ADD THE BUFFER
TO THE CHAIN
FOR THE TCAM
DISPATCHER

H

POST THE APPLICATION PROGRAM
ECB COMPLETE

H

•
SAVE THE LAST
FULL BUFFER I N
THE PROCESS
ENTRY WORK AREA

J

PREPARE TO EX I T
TO THE TCAM
DISPATCHER

J

•
PREPARE TO
TPOST THE
EXHAUSTED ERB

K

•

•

K

•

4

Proqram nrqanization

533

Chart ES

RETRIEVE SERVICE ROUTINE

,

•

•

4

IN I TI ALI ZE THE
SPEC I AL AQCTL
ELEMENT

•

A

•
B

B

•

•
MOVE THE
RELATIVE RECORD
ADDRESS INTO
THE SPEC IAL
ELEMENT

C

C

•

•
GET THE ADDRESS
OF THE USER
WORK AREA

0

o

•

•
E

GET THE ADDRESS
OF THE ACCESS
METHOD WORK
AREA AND OF THE
PCB

TPOST ELEMENT
TO THE RETR I EVE
SCHEDULER

BUILD A QTAM
PREFIX FROM THE
TCAM PREFIX

E

MOVE DA T A FROM
THE BUFFER TO
THE WORK AREA

F

•
F

•

•
PREPARE TO FREE
THE EMPTY
BUFFER

G

G

•

•

H

TPOST ELEMENT
TO THE RETR I EVE
SCHEDULER

H

•
J

J

•

•

K

K

2

534

•

4

Chart ET

OPERATOR CONTROL/APPLICATION PROGRAM INTERFACE ROUTINE

,

,

,

4

,

A

•

•

B

B

•

•

C

C

•

•

D

GET THE ADDRESS
OF THE CURRENT
TCB

GET THE ADDRESS
OF THE CIB WORK
AREA FROM THE
PCB

D

•
E

GET THE ADDRESS
OF THE AVT

COMPLETE THE
CIB IN THE USER
WORK AREA

E

•

•
F

GET THE ADDRESS
OF THE PCB
CHA I N FROM THE
AVT

F

•

•
IGCI02
G

TPOST THE C I B
TO THE OPERATOR
CONTROL QCB

G

•

•

H

H

•

•
J

OS WAIT FOR
THE C IB TO
BE
PROCESSED

J

•

•

K

K

•

4

•

Oroqram Orqanization

535

Chart EU

OPEN/CLOSESUBTASK

,

,

:3

,

4

,

A

A

•

•
NO

B

B

•
C

..

•
GET THE PROCESS
ENTRY WORK AREA
ADDRESS FROM
THE SPECIAL
ELEMENT

GETMAIN
STORAGE FOR
AN Lce

C

•

D

YES

GETMAIN
STORAGE FOR
THE PROCESS
ENTRY WORK
AREA

INlitALlZE THE
Lce AND LINK IT
TO THE pce

D

•

•
E

GET THE ADDRESS
OF THE PROCESS
ENTRY WORK AREA

INlitALIZE THE
PROCESS ENTRY
WORK AREA

E

•
F

•
FREEMAIN
STORAGE FOR
THE PROCESS
ENTRY WORK
AREA

POINT TO THE
AQCTL PARAMETER
LIST IN THE pce

LINK THE WORK
AREA TO THE
PROCESS ENTRY

F

•
G

•
~~~R5~~N~0~~~

I N I i t AL I zE THE
AQCTL PARAMETER
LIST

BY ONE

SET UP THE MAIN
STORAGE QCB

G

•

•
IGCI02

H

SET UP THE
STCBS FOR THE
SCHEDULERS

POST THE
APPL I CA i I ON
PROGRAM Eca

H

•
,J

•
FREEMAIN
STORAGE FOR
THE Lce

PREPARE TO GIVE
CONTROL TO THE
TCAM D I SPACHER

I NCREMENT THE
PCB USE COUNT
ey ONE

,J

•

•

K

K

It

536

It

It

•

Chart EW-l GET SCHEDULER

,

,

3

,

4

,

A

A

..

•

B

B

..

•

C

C

..

•
INCREMENT TO
THE NEXT
PRIORITY QCB

o

THE
AND

o

•
E

E

..

•

F

F

..

•
SAVE THE SCB
I NFORMA TI ON IN
THE PROCESS
ENTRY WORK AREA

G

SAVE ANY FULL
BUFFERS

..

•
IGCI02

H

POST THE
APPLI CAT I ON
PROGRAM ECB

..

H

•

J

J

.

•

K

K

•

•

3

•

4

•

nroaram Oraanization

537

Chart EW-2 GET SCHEDULER

,

,

,

3

,

4

YES

A

>---~

RETURN ALL
BUFFERS TO THE
BUFFER RETURN
QCB

A

BUILD THE
CLOSEDOWN
ELEMENT FOR THE
OPEN/CLOSE
SUBTASK

B

..
GET THE ADDRESS
OF THE ERB

B

.
YES

TPOST THE EMPTY
BUFFER TO THE
BUFFER RETURN
QCB

NO

C

REMOVE THE FULL
BUFFER FROM THE
ERB

C

..

•
PUT THE· BUFFER
ON THE PRE-MH
QUEUE

D

..
E

D

YES

SET THE 'BUFFER
SERVICED'
PR I OR I TY I N THE
BUFFER

SAVE THE
ADDRESS OF THIS
EOM BUFFER

E

.
AD,JUST THE
AVAILABLE
BUFFER .COUNT

F

F

.
G

G

.
TPOST THE
BUFFER TO THE
STARTMH QC8

H

H

..
,J

,J

.
K

K

•
538

•

•

4

•

Chart EW-3 GET SCHEDULER

•

•

3

•

4

•

GET THE ADDRESS
OF THE RECALLED
BUFFER

A

A

•

•
SET UP TO
RECALL A HEADER
BUFFER

B

B

•

•
CHAIN THE
BUFFER ON THE
READ-AHEAD
QUEUE

C

C

•

•

D

D

•

•
GET THE PO INTER
TO THE NEXT
BUFFER FROM
QBACK

E

TPOST THE
BUFFER TO THE
BUFFER REQUEST
QCB

E

•

•

F

F
HM-8,E2

AS-2,J5

HMI-6,E2

•

HM2-7,E2
MOVE THE STCB
FROM THE
DEST INA TI ON QCB
TO THE
READ-AHEAD QCB

G

•

•
G

•
GET QBACK FROM
THE CURRENT
LAST TEXT FIELD

H

BUILD A SPECIAL
TWA IT ELEMENT

•

H

•
SET UP TO
RECALL A HEADER
BUFFER

J

TPOST THE
SPEC I AL ELEMENT

•

J

•
SA VE QBACK FROM
THE CURRENT
LAST TEXT FIELD

K

K

B4

,.

,.

5

Droaram Orqanization

Chart EZ

GET SCHEDULER FIFO ROUTINE

,

,

3

,

4

,

A

A

•

•
SAVE THE
ADDRESS 01'". THE
RETRIEVE
ELEMENT I N THE
QCB LINK I'"IELD

e

e

•

•
GET THE
DESTINATION QCB
AODRESS F'OR THE
APPLICATION
PROGRAM

C

C

•

•
RAISE THE
PR I OR I TY OF' THE
RETRIEVE
ELEMENT

D

D

•

•
PREPARE TO
TPOST RETRIEVE
ELEMENT TO DEST
QCB, THEN TO
GET SCHEDULER

E

E

•

•

I'"

I'"

•

•

G

G

•

•

H

H

•

•

J

J

•

•

K

K

2

540

•

4

•

5

Chart El

TCOPY SERVICE ROUTINE

•

2

•

•

4

•

•

•

S

S

•

•

C

GET THE ADDRESS
OF THE AVT AND
OF THE TERMNAME
TASLE

GET THE
TERMINAL TASLE
ENTRY ADDRESS
FROM THE
TERMNAME ENTRY

C

•
0

•
SET UP THE
PARAMETERS FOR
THE SINARY
SEARCH ROUT I NE

DETERMINE THE
TYPE OF
TERMINAL ENTRY

0

•

•
IEDQUI
E

ACT I VATE IEDQA 1
TO SEARCH THE
TERMNAME T ASLE

COMPUTE THE
SI ZE OF THE
TERMINAL TASLE
ENTRY

E

•
F

•
GET THE ADDRESS
OF THE USER
WORK AREA

F

•
G

•
MOVE THE
TERM I NAL ENTRY
I NTO THE WORK
AREA

G

•

•

H

H

•

•

J

J

•

•

K

RETURN
K

•

•

4

•

Proqram Orqanization

541

Chart E2

QCOPY SERVICE ROUTINE

,

,

2

,

4

,

A

A

•

•

B

B

•

•

C

GET THE ADDRESS
OF THE AVT AND
OF THE TERMNAME
TABLE

C

•

•
D

SET UP THE
PARAMETERS FOR
THE BINARY
SEARCH ROUT I NE

YES

GET THE
DESTINATION QCB
ADDRESS FROM
THE ENTRY

D

•

•
INITIALIZE A
COUNTER TO THE
SIZE OF THE
MASTER QCB

I EDQU I
E

ACTIVATE IEDQAI
TO SEARCH THE
TERMNAME TABLE

E

•

•
ADD THE SIZE OF
THE PRIORITY
QCB TO THE
COUNTER

F

F

•

•

G

G

•

•
GET THE ADDRESS
OF THE USER
WORK AREA

H

H

•

•
MOVE THE QCB
I NTO THE USER
WORK AREA

J

J

•

•

K

K

•
542

•

•

4

•

Chart E3

TCHNG SERVICE ROUTINE

•

•

•

4

•

A

•

•

B

B

•

•

C

GET THE ADDRESS
OF THE AVT AND
OF THE TERMNAME
TABLE

C

•

•

D

D

•

•

E

E

•

•
IEDQE6

F

GET THE
TERM I NAL TABLE
ENTRY ADDR FROM
THE TERMNAME
TABLE ENTRY

SCRAMBLE THE
USER-SPEC I F I ED
PASSWORD

F

•

•
DETERM I NE THE
TYPE OF
TERM I NAL TABLE
ENTRY

G

G

•
H

•
SET UP THE
PARAMETERS FOR
THE BINARY
SEARCH ROUTINE

COMPUTE THE
SI ZE OF THE
TERMINAL TABLE
ENTRY

H

•

•
IEDQUI

J

IEDQNB02

GET THE ADDRESS
OF THE USER
WORK AREA

ACTIVATE IEDQA 1
TO SEARCH THE
TERMNAME TABLE

TAKE A
CHECKPOINT

J

•

•
BUILD THE
PARAMETER LI ST
FOR AQCTL S VC
102

K

•

K

•

3

•

4

5

Proqram Orqanization

543

Chart E4

ICOPY SERVICE ROUTINE

•

•

•

4

•

A

A

.

4

B

8

.

..

C

GET THE AVT
ADDRESS FROM
THE CVT

GET THE DCB
ADDRESS FROM
THE DEB

C

.
0

GET THE MCP Tce
ADDRESS FROM
THE AVT

GET THE TIOT
EXTENT OFFSET
FROM THE Dce

0

.
E

4

GET THE MCP
nOT ADDRESS
FROM THE TCB

COMPUTE THE
TIOT EXTENT
ADDRESS

E

..

..
F

GET THE ADDRESS
OF THE
INV ITAT ION
LISTS FROM THE
DCB

GET THE MCP DEB
CHAIN ADDRESS
FROM THE Tce

F

..

..
GET THE MAXIMUM
RELAT I VE LI NE
NUMBER FROM THE
DEB

G

CALCULATE THE
SIZE OF THE
DESIRED
I NV I T ATI ON LI ST

G

.

.
MOVE THE LIST
INTO THE USER
WORK AREA

H

H

..

..

J

J

.

4

K

K

•
544

•

4

•

Chart E6

PASSWORD SCRAMBLER ROUTINE

,

,

,

3

,

4

A

A
E3,FI

•

•

8

8

•

•
GET THE ADDRESS
OF THE PASSWORD
TO BE SCRAMBLED

C

C

•

•
REARRANGE THE
CHARACTERS OF
THE PASSWORD

D

D

•

•
TRANSLATE THE
CHARACTERS

E

E

•

•
PUT THE FIRST
HALF OF THE
PASSWORD IN
REGI STER 0

F

F

•

•
PUT THE LAST
HALF OF THE
PASSWORD IN
REGISTER I

G

G

•

•

H

H

•
J

J

•

•

K

K

•

2

•

•

4

•

5

Procrr.am Orqanization

sus

Chart E7

RETRIEVE SCHEDULER

,

,

,

4

,

A

A

•
B

B

•
REMOVE THE
BUFFER FROM THE
ELEMENT CHA I N

C

C

•
GETMA IN
MAIN
STORAGE FOR
THE LCB AND
THE SCB

D

MOVE THE
NO
RELATIVE RECORD
>---~ ADDRESS FROM
THE ELEMENT TO
THE SCB

D

•
I NIT I ALI ZE THE
QUEUE-BACK
POINTER

E

E

•
PREPARE TO
TPOST THE ERB
TO THE DISK 1/0
QCB

F

G

F

G

•
H

FREEMAIN
THE LCB AND
THE SCB

SET UP THE SCB
FOR THE NEXT
RECALL

H

•
J

TPOST THE EMPTY
BUFFER TO BUFFER RETURN QCB

J

•
K

K

2

546

..

..

4

..

Chart FA-l CPB INITIALIZATION

,

,

,

,

4

A

•

•
GET THE ADDRESS
AND THE NUMBER
OF UNITS LEFT

B

•

B

•
B I GSUBR

C

PROCESS A
REQUEST

•

C

•
REMOVE AN
ELEMENT FROM
THE NO-CPB
QUEUE

D

SET THE CPB AD-

D~T~CD ~~~ ~~TA
PREFIX, AND THE
RECORD ADDRESS

0

..

•

E

E

•

•
DECRMGCT

F

EXCP I NQ 1

DECREMENT THE
QCB MESSAGE
COUNT

ADD A CPB TO
THE CHANNEL
PROGRAM

..
G

•
SAVE THE
SCBQTYPE FIELD
AND THE SOURCE
OF THE MESSAGE

SET
G

.
H

F

•
PREPARE TO FREE
ALL BUT THE
FIRST UNIT OF
THE MESSAGE

H

•

•
RTNBRF

J

RETURN THE
BUFFER UN I TS

J

•

•
SAVE THE 5 I Z.E
AND FLAGS FOR
THE LAST UNIT

K

•

•

4

K

•
Prooram Orqanization

547

Chart FA-2 CPB INITIALIZATION

•

•

•

4

•

FINDEST2
A

FIND THE
PR I OR I TY QCB

A

•

..

8

B

•

..
01 SKMSG

C

F I NO THE 0 I SK
COpy OF THE
MESSAGE

F I NO THE 0 I SK
COpy OF THE
MESSAGE

C

FREE A MESSAGE

o

•
0

REQUEST CPBS

•
~E~ T~~D L~~ I N
STORAGE QUEUE
ADDRESS

E

E

..

•
GET
OF

F

F

.

•
WRKD

DECRMGCT
G

DECREMENT THE
QCB MESSAGE
COUNT

BUILD CCWS

G

..

•
EXCPINQI
H

REQUEST ONE CPB

ADD A CPB TO
THE CHANNEL
PROGRAM

..

•
EXCPINQI

PUT THE • SERV I CEO' FLAG AND
THE OUTPUT SEQUENCE NO IN
THE DATA FIELD

PREPARE TO
TPOST THE
BUFFER TO THE
RECALL QCB

ADD A CPB TO
THE CHANNEL
PROGRAM

J

J

..

•
POST
PERFORM A TPOST

K

•
548

H

2

•

RTNPART

EXCPINQI

CHAIN OR RETURN
THE BUFFER

ADD A CPB TO
THE CHANNEL
PROGRAM

4

•

K

Chart F A~3 CPB INITIALIZATION

A-3
AI

~

•

•

•

•

4

WR I TEBFR

GET THE ADDRESS
OF THE LCB AND
OF THE SCB

..

•

B

8

..

•
OFFSET

C

YES

SET THE FEFO
PO INTERS

BUILD AN ERB

..

C

•
MERGE THE
DISABLED AND
ENABLED COUNT
FIELDS

0

0

.

•
BI GSUBR

E

PROCESS A
REQUEST

FIND THE
DESTINATION QCB

E

..

•

F

F

..

•

G

G

•
H

H

..

•
GET THE ADDRESS
OF THE NEXT
UNIT

J

.

•
K

•

•

4

•
Proqram Orqanizaticn

549

Chart FA-4 CPB INITIALIZATION

•

•

•

•
QTYPE

A

SET THE FIELDS
TO NORMAL

SET SCBQTYPE

•

41

4

USELCB
B

B

BUILD AN ERB

•

•
GET THE ADDRESS
OF THE FIRST
MESSAGE ON THE
QUEUE

C

C

•
0

0

•

41

E

E

•

41

GET THE ADDRESS
OF THE NEXT
MESSAGE

F

F

NO

G

SET THE DISK
QUEUE TYPE IN
THE SCB

G

•

41

FREEMSG
GET THE ADDRESS
OF THE HEADER
OF THE MESSAGE

FIND THE
CORRESPOND I NG
BUFFER PREF I X

H

SET THE UNIT
ADDRESS TO MOVE
FROM

J

•

•
K

CALCULA TE THE
NO. OF CPBS
NO. OF BUFFERS
X NO. OF UNITS
PER BUFFER

OFFSET

NO

=

BUILD AN E~B

•
550

H

•

•
J

FREE A MESSAGE

2

•

•

4

K

Chart FA-S CPB INITIALIZATION

•

4

A

•

•

B

SCBQTYPE

BUILD A READ
CPB

B

•
SET SCBNTXT =
THE CURRENT
RECORD

C

YES

SUBTRACT THE
KEY SIZE

RESET THE
NEXT-TEXT
POINTER

C

•
D

SET CPBWKACT
SCBUNTCT

0

•

•
READCPB
NO

E

BUILD A READ
CPB

E

•
F

•
GET THE FIRST
BUFFER AND THE
NUMBER OF
BUFFERS

ADD ONE TO THE
NUMBER OF UNITS

F

•

•
L
GET THE NUMBER
OF UNITS IN A
BUFFER AND THE
NUMBER REQUIRED

NO

G

NO

G

•
H

•
ADD ONE TO THE
COUNT AND GET
THE ADDRESS OF
THE NEXT BUFFER

YES

YES

H

•

•
ADD ONE TO THE
NUMBER OF

SET THE NEW
NUMBER TO READ

J

~~~F~n~~E~E6F

UNITS

=

J

ZERO

•
NO

K

•

•

K

4

Oroqram orqanization

551

Chart

FA~6

CPB INITIALIZATION

•

A

•

3

•

4

•

5

GET THE DCB
ADDRESS

•

•
SAVE THE SCAN

~~~~~~~E:

B

B

NV~~~R 5I ~~D

•

•

C

C

•

•
LAST

SI ZECK
CHECK THE
BUFFER SIZE

SET THE SIZE OF
DATA IN THE
LAST UNIT

0

D

•

•
IEDQTNT

GET THE SI ZE
AND CLEAR THE
DATA

E

GET THE
TERMINAL TABLE
ADDRESS

•

E

•
SET THE 'NO

I ~~~~ ~~; z~L~~~
ADDRESS TO MOVE
DATA FROM

F

SAVE THE XTRA
OR NTXT FIELD
IN .THE SCB

F

•

•
SET THE COUNT
OF DATA TO BE
MOVED (I NWKA)
SIZE

G

SA VE THE FEFO
POINTER

G

•

•

H

H

•

•
4
USELCB

NO

J

BUILD AN ERB

J

•

•
OFFSET

K

K

BUILD AN ERB
FA-7
AI

•
'152

2

•

•

4

•

Chart FA-7 CPB INITIALIZATION

,

,

,

,

4

..
B

..
C

..
o

..
E

..
LINK A UNIT TO
THE BUFFER

F

G

..
H

.
.j

FIXIT

SET UP FOR THE
TEXT PREFIX

.,-~~. ~-'.

.j

ADD A UNIT TO A
BUFFER

.,

.
SET THE ADDRESS
OF THE NEW LAST
UNIT

K

•

•

ADD THE COUNT
OF DATA LEFT TO
MOVE AND THE
PREF I X SIZE

4

K

•
~roqram

Orqanization

553

Chart FA-8 CPB INITIALIZATION

,

YES

,

2

,

UPDATE THE
QCBFFEFO FIELD

A

A

..

41

NO

DECREMENT
AVTDSKCT

B

B

..

41

HAVEADDR
C

FREECPBA
YES

FREE THE
MESSAGE

C

FREE A CPB

41

D

SET UP TO EX IT
TO PROCESS
(FA-I, D3)

SET UP TO EXIT
TO APPQEMTY
(FA-II,G2)

D

..
SET THE DATA
FIELD AND THE
LASTIFEFO FIELD

E

E

..

41

2
DEQMGRC
F

DEL INK A CPB

F

..
3
EXCPINQ2
ADD A CPB TO
THE CHANNEL
PROGRAM

G

..

NO

41

SET UP TO
BYPASS CPBFREE

H

G

H

..
DSPPOSTR
J

J

TPOST THE LCB
TO ITSELF

..

41

FA-I,
FA-II,

K

..
554

D3 OR
G2

..

..

4

ChartFA-9 CPB INITIALIZATION

,

A

,

,

4

,

SET THE PRFSIZE
FIELD

•

•
·PROCESS A FULL
BUFFER

B

B

•

•

C

C

•

•
ADDNBUNT

L1NKTIC

GET AN
ADDITIONAL UNIT

D

LINK A UNIT TO
THE BUFFER

PUT THE TOTAL
NUMBER OF UNITS
I N THE PREF I X
KEY LENGTH
FIELD

SET THE FIRST
BYTE OF DATA AT
THE ADDRESS OF
UNIT + 12

D

•
SET X = DES I RED
BUFFER SIZE CURRENT BUFFER
SIZE; DATA IN
NEW UNIT = 0

FREECPBA
FREE A CPB

E

E

•

•

F

F

•

•

G

G

•

•

H

H

SET 'END OF
MESSAGE'
INDICATORS

•
J

•

J

•
PROCESS A FULL
BUFFER

K

K

FA-13

'V
•

•

4

•

Proqram Orqanization

555

Chart

FA~ 10

CPB INITIALIZATION

•

•
=

A

SET X
SIZE OF
I DLES PLUS THE
PREF I X SIZE;
PREFIX
SET Y
SIZE

GET THE [il SK
ADDRESS OF THE
CURRENT BUFFER

=

•

•
4
SAVE PRFDEST
ANO PRFQSACK

B

QTYPEI

GET THE AODRESS
OF THE LAST
BUFFER, SENT

SET THE 01 SK
QUEUE TYPE IN
THE SCB

B

•

•
SET UP TO SAVE
THE IDLES (Y
PREFIX SIZE +
SIZE OF IDLES)

=

C

C

•

•
0

•
E

•
COpy PREFIX;
SET THE AMOUNT
OF DATA MOVED
INTO THE NEW
UNIT
X

E

=

•
F

•
=
=
=Y

SET F'RFSCAN

F

0; UNIT COUNT
Y; PRFSIZE

•

•
4
FIXIT

G

ADD A UNIT TO A
BUFFER

G

•
H ....---.
FA-IO
JI

•
ADg~~s~H~N5C'HE

H

NUMBER OF UNITS

•

•
=

J

'TO' ADDRESS
UN IT ADDRESS +
y. 'FROM'
ADDRESS
UN I T
ADDRESS + 'WKACT

=

SET UP TO MOVE
X CHARACTERS
(AMOUNT OF DATA
LEFT IN THE
WORK AREA)

YES

=

MOVE THE DATA

•

NEW WKACT
OLD
WKACT + X; NEW
INWKA
OLD
INWKA - X

=

0
J

•
SET UP TO MOVE

AMOG~f ~~T06vE

K

K

" ADDRESS OF
OLD 'TO' UNIT-Y

•
556

•

•

4

Chart FA-11

CPB INITIALIZATION

•

•

•

•

..

•
SET SCB AND LCB

A~g~~~~StoS~6VE

B

NO

DATA TO 'AT'
UNIT .j. 12

GET THE ADDRESS
OF THE NEXT CPB
ON THE
NO-BUFFER
QUEUES

B

•
r--"

SET THE DUMMY
CPB ADDRESS

C'{Y

C

..

•
CLEAR THE
FIELDS

D

REMOVE THE CPB

D

..

•
DEQMGRC
E

E

DEL INK A CPB

•

..

F

F

•

..
CKWRITE
CHECK THE WR I TE
COMMAND

G

G

.

•
FA-12

CKWR ITE

'V

CHECK THE WR I TE
COMMAND

H

H

..

•
EXCPINQI
.j

ADD A CPB TO
THE CHANNEL
PROGRAM

.j

•

..

K

K

•

2-

•

4

?roqram orqanization

557

Chart FA~12

CPB INITIALIZATION

•

A

•

•

•

4

GET THE ADDRESS
OF THE LCB AND
OF THE SCB-

A

•

•

B

B

•

•
NO

C

(0

•
D

C

•
ADD A BUFFER TO
THE CPB CHA I N

D

•

•

C'KEOB
FREECPBA

E

GET THE WORK
AREA ADDRESS

FREE A CPB

E

•

•

F

F

•
G

•
SET UP TO TPOST
THE ERB TO
IEDQFA

FREEBFRS

FREEBFRS

FREE THE
,BUFFERS

FREE THE
BUFFERS

•

G

•
SET UP TO TPOST
THE BUFFER TO
THE BUFFER
DI SPOS IT! ON QCB

SET UP TO
RETURN THE ERB

H

•

H

•
POST

J

POST

PERFORM A TPOST

PERFORM A TPOST

J

•

•

K

K

•
558

•

4

Chan FA-13

CPB INITIALIZATION
I

.---.

•

•

3

•

•

4

FA- 13
AI

FREECP6A
FREE A CPB

•

•
B

B

ENQUEUE A
BUFFER I N THE
CHANNEL PROGRAM
FA-II

•

•

~E.jWoIol------.
>---.--..

C

SET UP TO TPOST
THE ERB TO
LCBRCQCB

C

•

•
D

PERFORM A TPOST

D

•

•
.>-----t

E

SET UP TO TPOST
TO THE MH

E

•

•
SET UP TO TPOST
BUFFERS TO THE
BUFFER RETURN
QCB

F

F

•

•
FREEBFRS
G

G

FREE THE
BUFFERS

•

•

H

H

•

•

.J

.J

•

•

K

SET UP TO TPOST
THE ERB TO THE
ACTIVATE QCB

K

•

•

4

Proqr~m

Orqanization

559

Chart FA-14

CPB INITIALIZATION

•

•

•

•

4

A

.

FA-I,C5

FA-2,K4

FA-3,EI

FA-14,DI

FA-14,C?

FA-2,K3
FA-12,J3
FA-12,J4

•

FA-13,D4
B

FA-16,HI

REQUEST A CPB

FA-16,E3

B

FA-19,KI

.

•
UNITFREE

C

FREE BUFFER
UNITS

C

..

•
RTNPART

o

ADD ONE TO THE
LAST BUFFER
UNIT COUNT

CHAIN OR RETURN
THE BUFFER

SET THE NUMBER
OF UNITS AND
THE TIC

..
E

•
RESTORE THE
DESTINATION QCB
ADDRESS

CHAIN THE UNIT
INTO THE TIC
CHAIN

SET UP TO TPOST
THE UNITS TO
THE BUFFER
RETURN QCB

..
F

0

E

•
KEEP THE
ADDRESS OF THE
LAST TPOSTED
UNIT

BUILD CCWS

..

F

41

PUT THE QCB
ADDRESS I N THE
BUFFER

G

..

G

41

H

TPOST THE UNITS

H

..

41

J

J

..

•

K

K

2

560

4

Chart FA-iS

CPB INITIALIZATION

•

•

•

•

4

A

..

FA-2,C3

FA-7,H4

FA-l,Fl

FA-3,C2

FA-l0,Gl

FA-2,G2

LINK THE UNIT
TO THE PREV I OUS
BUFFER

B

SUBRACT ONE
FROM THE
MESSAGE COUNT
IN THE QCB

.

B

•
SET THE
QCBFFEFO FIELD

C

CLEAR AND SET
THE TIC

.

C

•
I EDQHM03

D

•

SET THE LCB AND
SCB FIELDS

FIND THE SCB
FOR THE
DESTINATION

..

D

•
YES

E

UPDATE THE FEFO
POINTER SAVED
I N THE SCB FOR
THE DESTINATION

E

..

•
REQCPBl

F

REQUEST ONE CPB

F

..
G

•
SET CPBADDR
QCBLFEFO

G

..

•
SET UP TO GET
THE NEXT
MESSAGE

GET THE ADDRESS
OF THE FIRST
MESSAGE

H

..
J

H

•
SET THE DATA
FIELD = PREF I X
+ FEFO PO INTER

SET THE FEFO
POINTER

.
2
EXCPINQl
K

ADD A CPB TO
THE CHANNEL
PROGRAM

K

•

•

•

4

Uroqram Orqanization

561

Chart FA-16

CPB INITIALIZATION

•

•

•

•

,4

A

A

.
B

FA-9',B3

FA-12,G3

FA-9,J5

FA-12,G4

FA-5,C4

FA-l,C2

•

FA-13,G3
MERGE THE
ENABLED AND
DISABLED COUNT
FIELDS

GET THE ERB

GET THE SCB
SIZE

B

ADD ONE TO THE
NUMBER OF UNITS
AND SUBTRACT
THE KEYLENGTH
FROM SCB SIZE

C

..
C

..

•
LASTTEST

D

UNLINK THE
BUFFERS FROM
THE ERB

SET THE SCB
UNIT COUNT

D

..

•
POST
PERFORM A TPOST

E

E

•
F

F

..
G

UNLINK THE
BUFFER AND
PREPARE TO
TPOST IT TO MH

G

.
POST
H

H

PERFORM A TPOST

.

•

.J

J

..

•

K

K

•
562

•

•

4

•

Chart FA-17

CPB INITIALIZATION

•

•

•

•

4

.A

•
B

A

FA-I,C3

FA-I,F5,J2,H3,K5

FA-8,G5

FA-4,G2

FA-4,A4

FA-13,B3

FA-3,F2; FA-II ,JI

FA-20,HI

FA-IO,B5

FA-5,B2

FA-15,KI

CLEAR THE LINK
FIELD OF THE
BUFFER

GET THE ADDRESS
OF ENQMGRC

•
B

•

•
SET SCBUNTCT

o

C

C

•

•

D

D

FA-12,DI

•

FA-23,C3

•
GET THE ADDRESS
OF THE BUFFER
LINK FIELD

E

E

•

•
CORRECT THE
LINK ADDRESS
FOR THE CPB;
CLEAR THE LINK
FIELD

NO

F

F

•

•
SET THE NEW
LAST ELEMENT

G

G

•

•
NO

SET THE FIRST
ADDRESS

>---iOoI ELEMENT

H

H

•

•
LINK THI S
ELEMENT TO THE
PREVIOUS LAST
ELEMENT

J

J

•

•

K

K

•

2

•

•

4

•
?roqram Orqani7ation

5E3

Chart FA-18

CPB INITIALIZATION

•

•

•

•

4

A

B

A
FA-2,G3

FA-2,D3

FA-2,F2,H5

FA-14,F1

FA-14,B1

FA-15,Ft

BU ! LD THE WR ITE
KEY AND DATA
CCWS

•

MAKE REGISTER 2
< 0

B

•
=

C

SET CPBADDR
CURRENT RECORD
NUMBER ! N THE
PREF! X

NO

PUT THE ELEMENT
FIRST ON T,HE'
NO-CPB QUEUE

C

•
o

SAVE THE
ADORES S AND THE
NUMBER OF UNITS

REMOVE A CPB

0

'.

•

E

E

•
F

F

•
SET THE CPBADDR
>-,;..,;,..-... FROM
THE PREF I X

G

G

•
H

H

•
J

•
K

K

•
564

2

•

4

•

5

Chart FA-19

CPB INITIALIZATION

,

•

•

•

4

A

A
FA-2,D5

•
8

FA.-6,CI

FA-19,G3

FA-2.CI

FA-4.H5

FA-2,C5

NO MAIN STORAGE
UNITS NOW IN
USE

41

YES

B

•
C

41

GET THE ADDRESS
OF THE HEADER
OF THI S MESSAGE

C

•

41

YES

D

PUT ZEROS IN
THE QCBPVHD
FIELD

D

•

41

NO

E

GET TH I S BUFFER

AgS~~~~t X~~
D~5~ SllF A~~ I +~E

GET THE ADDRESS
OF THE MESSAGE

E

•

41

2
F

LINK THE
PREVIOUS
MESSAGE TO TH I S
MESSAGE

RTNBFR
CHA I N OR RETURN
A BUFFER

F

•

41

4
CKCMIN
G

CHECK MAIN
STORAGE QUEUES
USAGE

G

•
H

H

•

41

.J

PREPARE TO
TPOST ONE UNIT
TO THE BUFFER
RETURN Qce

.J

•

41

POST
K

PERFORM A TPOST

K

•

•

•

4

Proqram Orqanization

565

Chart FA-20

CPB INITIALIZATION

•

2

•

•

•

4

5

A

A
FA-3,C5

F"A-4,G3

•

FA-4,B2

FA-6,D3

FA-6,..J2

FA-5,B3,E3

•

E4
B

B

•

•

C

C

•

•

0

GET THE LCB
ADDRESS, NO. OF
THE CURRENT
CPB, AND COUNT
OF DATA MOVED

GET THE
OESTINATION
FROM THE BUFFER
PREFIX

SET UP TO BUILD
THE SAME BUFFER
SIZE

•

•
E

GET THE
LCBTTC I N OFFSET

ADO ONE TO
SCBCPBNO; CLEAR
THE WORK AREA

E

•
F

•
SET INTO THE
SCBSCSEG FIELD
THE NUMBER OF
THE RECORD JUST
READ

IEDQTNT
F

GET THE
TERM I NAL ENTRY
ADDRESS

•

•
G

0

BUILD READ KEY
AND DATA CCWS

GET THE BUFFER
SIZE

YES

G

•

•
3
GET THE DCB

EXCPINQ2
H

~B~~~~S ~ I I~E

ADO A CPB TO
THE CHANNEL
PROGRAM

CALCULATE THE
NUMBER OF UNITS

AND THE NUMBER
OF UNITS

H

•

•
BUILD THE ERB

J

J

•

•

K

K

•
566

2

•

•

4

•

Chart FA-21

CPB INITIALIZATION

•

•

•

•

4

A
FA-6,D2

FA-9,D2

•
B

FA-7,DI

FA-6,H2

GET THE KEY
LENGTH & THE
FIRST BUFFER
ADDRESS

ADD ONE TO THE
NUMBER OF UNITS

B

•
GET THE ADDRESS
OF THE NEXT
BUFFER

C

C

•

•

0

0

•
E

DECREMENT THE
NO. OF UNITS IN
BUFFER IF ENTRY
WAS AT ADDNBUNT

SUBTRACT THE
KEY LENGTH FROM
THE BUFFER SIZE

E

•
NO

F

SET THE LAST
UNIT ADDRESS

F

•
G

•
GET THE ADDRESS
OF THE NEXT
UNIT

NO

ADD THE KEY TO
THE REMA I N I NG
SIZE

PUT THE ERB ON
THE BUFFER
RETURN QC8

•
H

G

•
SET THE
REMAINING SIZE
=IN COUNT
OF DATA
THE NEW UNIT

H

•

•
PUT THE COUNT
NEEDED TO FILL
THE UNIT IN
TaUNT

J

•
K

K

•

•

4

Proqram Orqanization

5E7

Chart FA-22

CPB INITIALIZATION

,

,

,

,

4

A

A

..

FA-9,H4

FA-7,F5

FA-I,EI

FA-3,E"3

FA-24,D5

FA-9,D3

FA-2,Al

FA-6,C5

B

LI NK THE UN IT
INTO THE TIC OF
THE BUFFER

GET THE
DESTINATION QCB
ADDRESS AND THE
PRIORITY LEVEL

CLEAR AND
INIT I ALI ZE THE
OP CODE

GET THE ADDRESS
OF THE FIRST
PR I OR I TY QCB

B

..
C

C

..
D

D

..
PRIORITY QCB
ADDRESS = SIZE
OF PR I OR I TY QCB
X PRIORITY
LEVEL

E

E

.
F

F

G

G

H

H

J

J

K

K

•
568

•

4

•

Chart FA-23

CPB INITIALIZATION

•

•

•

•

4

....--,
FA-23

A

B4
FA-8,F4

FA-II ,H2 ,G5

FA - 1 1 , E 1 , G2

PUT THE
APPQEMTY
ADDRESS

B

.
B

(~~Gl h~~) 1 ~N

..
ENQUEUE THE
BUFFER I N THE
CHANNEL PROGRAM

C

UNL I NK THE CPB

C

..
D

D

..
E

SUBTRACT 16
FROM THE
ADDRESS

PUT THE CPB I N
THE CPB FREE
POOL

E

..
F

G

F

SUBTRACT 8 FROM
THE ADDRESS

G

..
H

MOVE THE CCWS
TO THE PROPER
LOCAT I ON I N THE
CPB

H

•

..

..J

..J

•
K

•

•

•

4

Proqraro Orqanization

569

Chart FA-24

CPS INITIALIZATION

,

A

•
B

,

,

,

4

FA-B,C3
FA-9,EI

FA-16,DI

FA-12,E3,F4

FA-24,C2

•

FA-13,AI

SUBTRACT I FROM
THE SCB CPB
COUNT

SET THE SCB
UNIT COUNT =
CPB WORK COUNT

•

B

•
4
LASTTEST

SET THE SCB
UN IT COUNT = 0

C

C

•

•
SETEOM

D

SET 'END OF
MESSAGE'
INDICATORS

D

•

•

E

E

•

•
PUT THE ADDRESS
OF THE NEXT
UNIT INTO THE
SCBSCSEG FIELD

F

F

•

•
FA-12

'V

G

•

•
ADD

H

I TO THE
ADDRESS

SET THE CPB
COUNT = 0

H

•
J

G

•
PUT PRFXTRA IN
SCBSCSEG

J

•

•

K

K

•
570

2

•

4

•

Chart FAI-I

CPB INITIALIZATION - MAIN STORAGE ONLY QUEUING

,

,

,

,

4

A

..

•
NO

B

B

..

•
AI
ENQMGRB

GET THE LCB,
SCB, DESTl-

C

C

~~ Tb2~ T$C~Ev~~D
QCB

..

•
A4
REMOVE AN
ELEMENT FROM
THE NO-CPB
QUEUE

FINDEST2
D

FIND THE
PRIORITY QCB

D

~

DECRMGCT
E

'V

GET THE ADDRESS
OF THE SOURCE
LCB

DECREMENT THE
QCB MESSAGE
COUNT

•
E

..

•

F

SAVE THE
SCBQTYPE FIELD
AND THE SOURCE
OF THE MESSAGE

G

PREPARE TO FREE
ALL BUT THE
FIRST UNIT OF
THE MESSAGE

F

•
G

..

•
D5
RTNBFR

H

H

RETURN THE
BUFFER UN I TS

.

•
RTNPART

8

..

•

¥~~ ~~§,L~~D

FREEMSG
K

J

CHA I N OR RETURN
THE BUFFER

J

FREE A MESSAGE

K

THE MAIN
STORAGE QUEUE
ADDRESS

III

2

4

Proqram Orqanization

571

Chart, FAI-2

CPB INITIALIZATION - MAIN STORAGE ONLY QUEUING

•

•

•

•

GET THE ADDRESS
OF THE LCB AND
OF THE SCB

•

4

..

SET THE FIELDS
TO NORMAL

B

B
A4

•

..

USELCB

§~~N~g~~~~~OA~D

BUILD AN ERB

SCBCOU,BL=O

C
A3
YES

•

..

OFFSET
BUILD AN ERB

D

•

D

..

MERGE THE
DISABLED AND
ENABLED COUNT
FIELDS

E

E
A5
FINDESTQ

•

..

FIND THE
CORRESPOND I NG
BUFFER PREF I X

FIND THE
DESTINATION QCB

'

F

F

..

SET THE UNIT
ADDRESS TO MOVE
FROM

•
G

G
A3
OFFSET

NO

GET THE ADDRESS
OF THE LAST
BUFFER SENT

BUILD AN ERB

H

H

..

SET THE DUMMY
CPB ADDRESS

•
J

J

..

CALCULATE THE
NO. OF CPBS =
NO. OF BUFFERS
X NO. OF UNITS
PER BUFFER

K

K

FAI-3

QTYPE

'VI

SET SCBQTYPE

•
572

•

4

•

CPB INITIALIZATION - MAIN STORAGE ONLY QUEUING

Chart FAl-3

,

,

t

,

,

4

r--"1
FAt-3
At

GET THE DCB
ADDRESS

•

•
YES

B

B

•
,..-_ _ _"'-II"""",,w..,A5

FINDESTQ

STORE THE DATA
COUNT FROM THE
UNIT IN INWKA

FIND THE
DEST I NAT( ON QCB

•

C

•
~---.

D

SET THE SIZE OF
DATA IN THE
LAST UNIT

SET THE
SCHEDULER

CHECK THE
BUFFER SIZE

D

•

•
GET THE SIZE
AND CLEAR THE
DATA

E

•

•

GET THE
TERM I NAL TABLE
ADDRESS

NO

•
SET THE 'NO

I ~~~~ l~; Z~L~~~
ADDRESS TO MOVE
DATA FROM

F

E

SAVE THE XTRA
OR NTXT FIELD
IN THE SCB

SAVE THE FEFO
POINTER

•

F

•
SET THE COUNT
OF DATA TO BE
MOVED (I NWKA)
SIZE

G

G

•

•

H

H

•

•
USELCB

J

BUILD AN ERB

J

•
K

•
BUILD AN ERB

K

Cl~J

V

•

•

4

~roqram

Orqanizaticn

573

Chart FAl-4

CPB INITIALIZATION - MAIN STORAGE ONLY QUEUING

,

,

,

4

,

•

.

B

B

•

..

C

SET THE PREFI X
NEEDED

C

..

•
A4
GETBFR

D

.

•

E

•
F

F

•

..

G

G

•

..

H

H

•

..

J

•
K

SET UP FOR THE
TEXT PREFIX

J

.
FAl-5

'VI

LlNKTIC
LINK A UNIT TO
THE BUFFER

FAl-5

'\1
III

574

III

III

4

III

K

Chart FAl-5

CPB INITIALIZATION - MAIN STORAGE ONLY QUEUING

•

,.-l-,
FAI-5
AI

•

•

=

SET X
SIZE OF
IDLES PLUS THE

YES

UPDA TE THE

>----o~ QCBFFEFO FIELD

s~~E~ I ~ ~~~~ i X

A

•

4

SIZE

•
SAVE THE
PRFDEST AND
PRFQBACK FIELDS

B

FREE THE
MESSAGE

B

•

•
SET UP TO SAVE
THE IDLES IY
PREF I X SIZE +
SIZE OF IDLES)

=

C

SET UP TO EXIT
TO PROCESS
(FA 1-1.03)

C

•

•
o

•

•
COpy PREF I X;
SET THE AMOUNT
OF DATA MOVED
INTO THE NEW
UNIT = X

E

E

•

•

F

SET PRFSCAN =
0; UN I T COUNT
Y; PRFS I ZE
Y

G

ADD A UN I T TO A
BUFFER

=

=

F

TPOST THE· LCB
TO ITSELF

G

•

•
H

r-"I
FAI-5
JI

GET THE LCB
ADDRESS AND THE
NUMBER OF UN I TS

H

•

•
J

'TO' ADDRESS =
UN I T ADDRESS +
Y' 'FROM'
ADDRESS = UNIT
ADDRESS + WKACT

~----.

SET UP' TO MOVE
X CHARACTERS
(AMOUNT OF DATA
LEFT IN THE
WORK AREA)

=

NEW WKACT
OLD
WKACT + X: NEW
INWKA = OLD
INWKA - X

MOVE THE DATA

•
K

J

•
SET UP TO MOVE
THE DATA;
AMOUNT TO MOVE
= ADDRESS OF
OLD 'TO' UN IT-Y

4

•
0roaram orqanization

575

Chart FAI-6

;CPB INITIALIZATION - MAIN STORAGE ONLY QUEUING

h,-J

•

•

•

4

•

AI

A

SET THE PRFS I ZE
FIELD

•

•
NO

S

B

PROCESS A FULL
SUFFER

•
C

C

•
LlNKTlC
D

TOUNT=KEYLE;
FIRST 6YTE OF
DATA IS AT
ADDRESS OF UNIT
+ 12

LINK A UNIT TO
THE BUFFER

D

•
E

E

FREE A CPB

•
SET THE AMOUNT
OF DATA TO SE
MOVED I NTO THE
NEW UN I T EQUAL
TO X

F

F

•
FA 1-5

'VI

G

G

•
H

PROCESS A FULL
BUFFER

H

•
AI-7
J

'V

J

•
K

•
576

•

•

4

•

Chart. FAl-7

CPB INITIALIZATION - MAIN STORAGE ONLY QUEUING

•

•

•

•

4

A

A

•

•
ENQUEUE A
BUFFER IN THE
CHANNEL PROGRAM

B

B

•
c

_--r~...

SET UP TO TPOST
THE ERB TO
LCBRCQCB

C

•

•

o

o

PERFORM A TPOST

•

•
SET UP TO TPOST
TO THE MH

E

E

•
SET UP TO TPOST
BUFFERS TO THE
BUFFER RETURN
QCB

F

F

•

•
FREE THE
BUFFERS

G

G

•

•

H

H

•
J

•
K

•
SET UP TO TPOST
THE ERB TO THE
ACTIVATE QCB

K

•
~roqram

orqanization

f)77

Chart FAl-8

CPB INITIALIZATION - MAIN STORAGE ONLY QUEUING

•

•

2

3

•

•

4

A
FAI-7,D4

•

FAI-5,GI

FAI-I,EI

FAI-IO,KI
GET THE SCB AND

B

FAI-14,H5

FAI-9,HI,E3

S~~BT~~D~56~hs

TO MOVE DATA TO
AT UNIT+12

KEEP THE
ADDRESS OF THE
LAST TPOSTED
UNIT

LINK THE UNIT
TO THE PREVIOUS
BUFFER

SUBTRACT I FROM
THE MESSAGE
COUNT IN THE
QCB

B

•

•
PUT THE QCB
ADDRESS I N THE
BUFFER

C

CLEAR AND SET
THE TIC

C

SET THE LCB AND
THE SCB FIELDS

D

•
D

SET THE OUMMY
CPB ADDRESS

TPOST THE
ELEMENT

•

•
E

CLEAR THE
FIELDS

E

•

•
FAI-3

F

'V

F

•
G

G

•

•

H

H

•

•

J

J

•

•

K

K

•
518

4

Chart FAl-9

CPB INITIALIZATION - MAIN STORAGE ONLY QUEUING

•

•

•

•

A
FAI-6,B3,HI

FAI-7,G3

•
B

MERGE THE
ENABLED AND
DISABLED COUNT
FIELDS

GET THE ERB

B

•

•

C

C

•
D

UNLINK THE
BUFFERS FROM
THE ERB

SET THE SCB
UNIT COUNT

D

•
E

PERFORM A TPOST

E

•
F

F

•

•

G

UNLINK THE
BUFFER AND
PREPARE TO
TPOST I T TO MH

G

•
H

•
PERFORM A TPOST

H

•
J

J

•

•

K

•

3

•
Proqram orqanization

579

Chart FAI-IO CPB INITIALIZATION - MAIN STORAGE ONLY QUEUING

•

•

•

•

4

5

A
FAI-I,K I

FAI-5,B3

FAI-IO,G3
B4 1------4~

B

NO MA I N STORAGE
UNITS NOW IN
USE

B

•

•
C

GET THE ADDRESS
OF THE HEADER
OF THIS MESSAGE

D

E

F

D

>---..

GET THE ADDRESS
OF THE MESSAGE

E

LINK THE
PREVIOUS
MESSAGE TO THI S
MESSAGE

CHAIN OR RETURN
A BUFFER

F

G

G

H

H

J

J

K

2

580

•

4

•

Chart FA 1-11

CPB INTIALIZATION - MAIN STORAGE ONLY QUEUING

•

•

•

3

,

4

A

A
FAI-2,Kl

•

FAI-2,C3,G5

FAI-2,B5

FAI-3,Kl

FAI-3,J2

FAI-3,D3

•

E4
B

B

•

•

C

SET SCBUNTCT
0

C

•

•
GET THE
DESTINATION
FROM THE BUFFER
PREFIX

D

SET UP TO BUILD
THE SAME BUFFER
SIZE

D

•

•
GET THE
LCBTTC I N OFFSET

E

•

E

•
IEDQTNT

F

GET THE
TERM I NAL ENTRY
ADDRESS

F

•

•
YES

G

GET THE BUFFER
SIZE

•

G

•
GET THE OCB

~S~~~~S ~ I i~E
AND THE NUMBER
OF UNITS

H

CALCULA TE THE
NUMBER OF UNITS

•

H

•

J

BUILD THE ERB

J

•

•

K

K

•

•

4

Proqram Orqanization

581

Chart FAI-12

CPB INITIALIZATION - MAIN STORAGE ONLY QUEUING

,

,

,

,

4

A

.
B

A
FAt-3,H2

FAt·-3,D2

FAt-4,Dt

FAt-6,D2

GET THE KEY
LENGTH & THE
FIRST BUFFER
ADDRESS

•

ADD ONE TO THE
NUMBER OF UNITS

B

.

•
GET THE ADDRESS
OF THE NEXT
BUFFER

C

C

.

•

0

D

..

•

E

DECREMENT THE
NO. OF UNITS IN
BUFFER IF ENTRY
WAS AT ADDNBUNT

SUBTRACT THE
KEY LENGTH FROM
THE BUFFER SIZE

.

•
NO

F

SET THE LAST
UN I T ADDRESS

F

.
G

E

•
GET THE ADDRESS
OF THE NEXT
UNIT

NO

PUT THE ERB ON
THE BUFFER
RETURN QCB

ADD THE KEY TO
THE REMAINING
SIZE

.

G

•
FAt-t

SET THE
REMAINING SIZE
COUNT OF DATA
IN THE NEW UNIT

V'

=

H

..

H

•
PUT THE COUNT
NEEDED TO FILL
THE UNIT IN
TOUNT

J

J

..

•

K

K

•
582

•

•

4

•

Chart FAl-13

CPB INITIALIZATION - MAIN STORAGE ONLY QUEUING

•

•

•

•

4

A
FAI-14,D4

FAI-4,K5

FA1-l,Dl

GET THE
DESTINATION QCB
ADDRESS AND THE
PR I OR I TY LEVEL

LINK THE UNIT
INTO THE TIC OF
THE BUFFER

B

FAI-2,El
FAI-3,C5

FAI-6,D3

•

•
B

•

•
GET THE ADDRESS
OF THE FIRST
PRIORITY QCB

CLEAR AND
I NIT I ALI ZE THE
OP CODE

C

C

•
0

D

•

•
PR lOR ITY QCB
ADDRESS = SIZE
OF PRIORITY QCB
X PRIORITY
LEVEL

E

E

•

•
F

•
G

G

•

..

H

H

•

•

J

J

•

.
K

•

•

4

Proqram Orqanization

583

Chart FAl-14

CPB INITIALIZATION - MAIN STORAGE ONLY QUEUING

•

A

,

•

,

4

A

FAI-6,EI
FAI-9,DI
FAI-14,C2

•
B

SUBTRACT 1 FROM
THE SCB cpa
COUNT

41

SET THE SCB
UNIT COUNT
CPB WORK COUNT

=

B

•

41

SET THE SCB
UNIT COUNT
0

=

C

C

•

41

o

o

•

41

SET THE READ
ERROR RETURN IN
14 TO
TAGI (FAI-1,E4)

>-~~~ REG I STER

E

E

•
F

41

PUT THE ADDRESS
OF THE NEXT
UN I T INTO THE
SCBSCSEG FIELD

PUT THE ADDRESS
OF THE NEXT
BUFFER I NTO THE
SCBSCSEG FIELD

F

•

41

SET UP TO TPOST
THE ERB TO
IEDQFAI

G

G

•
H

41

SET THE CPS
COUNT: 0

PERFORM A TPOST

H

•

41

FAI-I

'VI
•

41

K

K

4

584

Chart FAI-IS

CPB INITIALIZATION - MAIN STORAGE ONLY QUEUING

•

•

•

4

•

A

A
FA I-I ,C3

•
B

FAI-I, J2

FAI-7,B3

CLEAR THE LINK
FIELD OF THE
BUFFER

B

SET AND SAVE
THE POS I T I VE
CHANNEL COMMAND

C

•
C

•
o

GET THE ADDRESS
OF THE LAST CPB
ON THE QUEUE

ADD ONE TO THE
LAST BUFFER
UNIT COUNT

SET THE NUMBER
OF UNITS AND
THE TIC

o

GET THE ADDRESS
OF THE BUFFER
LINK FIELD

CHAIN THE UNIT
INTO THE TIC
CHAIN

SET UP TO TPOST
THE UNITS TO
THE BUFFER
RETURN QCB

E

KEEP THE
ADDRESS OF THE
LAST TPOSTED
UNIT

F

PUT THE QCB
ADDRESS IN THE
BUFFER

G

TPOST'THE UN ITS

H

•
E

•
CORRECT THE
LINK ADDRESS
FOR THE CPB:
CLEAR THE LINK
FIELD

F

•
G

SET THE NEW
LAST ELEMENT

•
SET THE FIRST
ELEMENT ADDRESS

H

J

LINK THI S
ELEMENT TO THE
PREV IOUS LAST
ELEMENT

J

•
K

•

•

•

4

•
Proqraro Orqanization

585

Chart FA2-1

CPB INITIALIZATION - DISK ONLY QUEUING

•

•

•

4

•

A

..

•
NO

B

B

•
SUBTRKEY
SUBTRACT THE
KEY SIZE

C

C

..

•
REMOVE AN
ELEMENT FROM
THE NO-CPS
QUEUE

o

0

..
E

•
FIND THE
PRIORITY QCB

E

.

•
OECRMGCT
DECREMENT THE
QCB MESSAGE
COUNT

F

.
G

•
SAVE THE
SCBQTYPE FIELD
AND THE SOURCE
OF THE MESSAGE

G

.
H

•

CKINIT
PREPARE TO FREE
ALL BUT THE
FIRST UNIT OF
THE BUFFER

PUT THIS BUFFER
ADDRESS IN THE
SCBDEOS FIELD

.

H

•
RTNBFR
RETURN THE
BUFFER UNITS

.J

..

•
FA2-2

K

VI

•
596

•

4

•

Chart FA2-2

CPB INITIALIZATION - DISK ONLY QUEUING

,

~

,

,

,

4

FA2-2
AI

A4

A

A3

F I NDEST2

NO

FIND THE
PRIORITY QCB

CPB

A

•
B

•
GET THE ADDRESS
AND THE NUMBER
OF UNI TS LEFT

B

•

•
AI

A2

BIGSUBR
C

PROCESS A
REQUEST

SET THE FEFO
POINTER

ADD A CPB TO
THE CHANNEL
PROGRAM

C

•

•
A3

0

SET THE CPB
ADDR. THE DATA
FIELD FOR NO

REQCPB

RTNPART
CHAIN OR RETURN
THE BUFFER

PR~~t~RD A~8D~HE

•

•
FA2-1

REQCPBI
E

'V

COPY THE BUFFER
INTO THE CPB
UNIT

REQUEST ONE CPB

•

E

•
A2

A5

EXCP I NQ I
F

0

DECRMGCT

ADD A CPB TO
THE CHANNEL
PROGRAM

CLEAR THE DATA
FIELD

DECREMENT THE
QCB MESSAGE
COUNT

F

•

•
AI
NO

G

WRKD

SET THE DATA
COUNT

G

BUILD CCWS

•

•
A2

H

ADD ONE TO THE
ADDRESS VALUE

EXCPINQI

CLEAR THE DATA
FIELD

r---'I

FA2-2
JI

ADD A CPB TO
THE CHANNEL
PROGRAM

H

•

•
A2

J

EXCPINQI

GET THE ADDRESS
OF THE NEXT
UNIT

ADO A CPB TO
THE CHANNEL
PROGRAM

PREPARE TO
TPOST THE
BUFFER . TO THE
RECALL QCB

J

•

•
A5

K

POST

SAVE THE SIZE
AND FLAGS FOR
THE LAST UNIT

PERFORM A TPOST

FA2-3·

'V'
•

•

K

FA2-1

'\Y
4

•

5

?roqram Orqanization

581

Chart F A2-3 CPB INITIALIZATION - DISK ONLY QUEUING

•

~
FAZ-3
AI

•

•

•

4

GET THE ADDRESS
OF THE LCB AND
OF THE SCB

A

A

•

•
§~~N~g~~~~~OA~6

B

B

SCBCOUBL=O

•

A3
SETFEFO
SET 7HE FEFO
POINTERS

C

OFFSET
BUILD AN ERB

YES

C

•

•
MERGE ·THE
DISABLED AND
ENABLED COUNT
FIELDS

•
E

•

0

•

AS

AI
FINDESTQ
FIND THE
DESTINATION QCB

BIGSUBR
PROCESS A
REQUEST

E

•

•
EXCPINQI
ADD A CPB TO
THE CHANNEL
PROGRAM

F

F

•

•
SET THE FIELDS
TO NORMAL

G

G

•

•

A4
USELCB
BUILD AN E~B

H

H

•

AI
READCPB
BUILD A READ
CPB

GET THE ADDRESS
OF THE NEXT
UNIT

..J

•
J

•

•

K

K

•
588

Z

4

•

Chart F A2-4

CPB INITIALIZATION - DISK ONLY QUEUING

,

"

..-J-,
FA2-4'
Al

,

3

,

4

A

A

.

•
Al

SCBQTYPE

B

BUILD A READ
CPB

B

.

FA2-1

•

'V
SBTRKEY I

SET SCBNTXT =
THE CURRENT
RECORD

C

AS
RESET THE
NEXT-TEXT
POINTER

SUBTRACT THE
KEY SIZE

.

•
0

SET CPBWKACT
SCBUNTCT

0

.

•
NO

BU ILD A READ
CPB

E

E

.

•
F

C

GET THE FIRST
BUFFER AND THE
NUMBER OF
BUFFERS

ADD ONE TO THE
NUMBER OF UN ITS

F

.

•
L
GET THE NUMBER
OF UNI TS IN A
BUFFER AND THE
NUMBER REQU I RED

NO

G

NO

G

.

•
H

ADD ONE TO THE
COUNT AND GET
THE ADDRESS OF
THE NEXT BUFFER

YES

YES

H

..
ADD ONE'TO THE
NUMBER OF

SET THE NEW
NUMBER TO READ

.J

~~~F~e~~E~E6F

.J

UNITS'" ZERO

.

•
NO

K

•

2

•

•

K

4

•
Proqram orqanization

589

Chart FA2-5

CPB INITIALIZATION - DISK ONLY QUEUING

•

•

•

•

5

A

..
SET SCB AND LCB

">N_O;;....._...

B

GET THE ADDRESS
T~~ ~R~T CPB
NO-BUFFER QUEUE

A~g~~~~sfoS~6vE 1-_ _<

>---._... OF

DATA TO 'AT'
UNIT + 12

B

..
C

D

REMOVE THE CPB

D

..
DEQMGRC
UNLINK A CPB

E

E

.
F

F

.
r -______~~~~AI
CKWRITE
CHECK THE WRITE
COMMAND

UNLINK A CPB

G

G

..
.FA2-6

V'

CHECK THE WR I TE
COMMAND

H

H

.
ADD A CPB TO
THE CHANNEL
PROGRAM

J

J

.
K

K

2

590

•

3

•

4

•

Chart FA2-6

CPB INITIALIZATION - DISK ONLY QUEUING

•

A

•

•

•

4

GET THE ADDRESS
OF THE LCB AND
OF THE SCB

•

..

B

B

•

.

C

C

•

.

0

0

ADD A BUFFER TO
THE CPB CHAIN

•
FA2-5
E

..

CKEOB
FREECPBA

'V'

GET THE WORK
AREA ADDRESS

FREE A CPB'

..

•
FA2-8

FREECPBA

F

..

•

A3

A3

G

'\1

FREE A CPB

F

SET UP TO TPOST
THE ERB TO
IEDQFA2

FREEBFRS

FREEBFRS

FREE THE
BUFFERS

FREE THE
BUFFERS

G

..
SET UP TO TPOST
THE BUFFER TO
THE BUFFER
DISPOSITION QCB

SET UP TO
RETURN THE ERB

H

H

.

•

A5

A5
POST

POST
PERFORM A TPOST

PERFORM A TPOST

J

J

.

•
FA2-5

'V'

K

•

•

•

4

K

5

Proqram Orqanization

591

Chart FA2-7

CPB INITIALIZATION - DISK ONLY QUEUING

--

•

•

3

•

4

•

.FA2-7

AI

•

•
B

B

ENQUEUE A
BUFFER I N THE
CHANNEL PROGRAM
FA2-5

•

•

'VEpi'Il-------.

C

C

•
POST

o

o

PERFORM A TPOST

•
E

E

•
F

F

•

•
G

FREE THE
BUFFERS

G

•

•
FA2-:5

'V

H

H

•

•

J

•

•
K

SET UP TO TPOST
THE .ERB TO THE
ACT I VATE QCB

K

•
592

•

•

4

•

Chart FA2-8

CPB INITIALIZATION - DISK ONLY QUEUING

•

I

..---.

•

•

•

4

FA2-8
AI

GET THE DCB
ADDRESS

A

A

AS
FI~DESTQ

SAVE THE SCAN

~~b~~~~E

B

FIND THE
DESTI NAT I ON QCB

NY~E~R ~ I ~~D

•

B

•

C~
01

THE DATA
FROM THE
IN INWKA

PUT THE PREF I X
IN THE SCB

SET THE
SCHEDULER

C

•

•
AI
YES
D

LAST

IEDQTNT

SI ZECK

SET THE SIZE OF
DATA IN THE
LAST UNIT

CHECK THE
BUFFER SIZE

GET THE
TERMINAL ENTRY
ADDRESS

•

D

•
GET THE SIZE
AND CLEAR THE
DATA

E

•

•

E

NO

•
SET THE 'NO

I ~~9~ l~ zkL~~t
ADDRESS TO MOVE
DATA FROM

SAVE THE FEFO
POINTER

;

F

•

F

•
SET THE COUNT
OF OATA TO BE
MOVED (I NWKA)
SIZE

G

G

•

•

H

GET AN
ADDITIONAL UNIT

H

•

•

A4
USELCB
BUILD AN ERB

J

•
K

BUILD AN ERB

K

FA2-9

'VI
•

4

•
~roqram

Orqanization

593

Chart F A2-9

CPB INITIALIZATION - DISK ONLY QUEUING

,

,

,

,

.

•
SET X = THE NO.
OF IDLES PLUS
PREFIX SIZE
PLUS THE AMOUNT
MOVED

B

B

.
C

•
SET THE PREFI X
NEEDED

C

.

•
A4
GETBFR

0

.

•
A3
LlNKT IC
LINK A UNIT TO
THE BUFFER

..
FA2-12

\:Y

F

E

•
F

.
G

G

.

•
LINK TO THE
PREY I OUS BUFFER
OR UNIT

H

H

..

•
A4

J

YES

SET UP FOR THE
TEXT PREFIX

FIXIT
ADD A UNIT TO A
BUFFER

J

..

•

FA2-12

K

'V

SET THE ADDRESS
OF THE NEW LAST
UNIT

ADD THE COUNT
OF DATA LEFT TO
MOVE AND THE
PREFIX SIZE

K

FA2-11

'V
,.
594

2

,.

3

4

,.

Chart FA2-10

CPB INITIALIZATION - DISK ONLY QUEUING

,.-J.-.,
FA2-IO
AI

•

•

•

UPDATE THE
QCBFFEFO FIELD

•

A

•

..

_-----~..w A I
FREECPBA
B

B

FREE A CPS

•

•
SET UP TO EXIT
TO APPQEMTY
IFA2-5,G2)

C

•

•

D

D

•

•
DSPPOSTR

E

SET THE DATA
FIELD AND
LASTIFEFO

TROST THE LCB
TO ITSELF

•

.--_ _ _ _

F

E

~.-,.;;.~E2

FA2-I,D3

DATAONLY

FA2-5,G2

BUILD THE CCWS
AND SET THE
. 'QUEUING' FLAG

F

ADD A CPS TO
THE CHANNEL
PROGRAM

G

•
G

•
SET UP TO
BYPASS CPSFREE

H

H

•

•

J

•

•
K

III

III

III

4

III

Proqram Orqanization

595

Chart F A2~ 11

CPB INITIALIZATION - DISK ONLY QUEUING
I

r---"'I

FA2-1 I
AI

"

"

"

4

"

SET THE PRFSIZE
FIELD

A

•
NO

B

PROCESS A FULL
BUFFER

B

•

•
FA2-7

'V

C

r-______

•
~~~~,A3

LlNKT I C

D

E

GET AN
ADDITIONAL UNIT

C

PUT THE TOTAL
NUMBER OF UN IT S
I N THE PREF I X
KEY LENGTH
FIELD

LINK A UNIT TO
THE BUFFER

FREE A CPB

SET THE FIRST
BYTE OF DATA AT
THE ADDRESS OF
UNIT + 12

D

SET X = DES I RED
BUFFER SIZE CURRENT BUFFER
SIZE; DATA IN
NEW UNIT = 0

E

•
F

F

•
SET THE AMOUNT
OF DATA TO BE
MOVED I NTO THE
NEW UN I T EQUAL
TO X

G

G

•
FA2-12

SETEOM
H

'V'

SET 'END OF
MESSAGE'
INDiCATORS

H

•

•

J

J

•

•
K

PROCESS A FULL
BUFFER

FA2-7

•
596

•

VI
•

4

•

Chart FA2-12

CPB INITIALIZATION - DISK ONLY QUEUING

,

A

,

,

,

4

SET X
SIZE OF
I DLES PLUS THE

S~~E~ I ~ ~A~~ i x

A

SIZE

..

,.
SAVE THE
PRFDEST AND
PRFQBACK FIELDS

B

B

..

,.

C

C

..

,.
WKACT=X=DATA

D r--"'1
FA2-12,
EI

~~~~~~bA~~VE~h

D

I N WORK AREA IDLES + PREF I X

,.
E

COpy PREFIX;
SET THE AMOUNT
OF DATA MOVED
INTO THE NEW
UNIT = X

E

.
F

,.
SET PRFSCAN =
0; UNIT COUNT =
Y; PRFSIZE = Y

F

..
G

,.
ADD A UNIT TO A
BUFFER

G

..

,.
H

,.
J

'TO' ADDRESS =
UN I T ADDRESS +
Y; 'FROM'
ADDRESS = UN I T
ADDRESS + WKACT,

YES

SET UP TO MOVE
X CHARACTERS
OF DATA
LEFT IN THE
WORK AREAl

r-----~ (AMOUNT

NEW WKACT = OLD
WKACT + X; NEW
INWKA = OLD
INWKA - X

MOVE THE DATA

..

.----.

,.

FA2-11

'V

SET UP TO MOVE
THE DATA;
AMOUNT TO MOVE
= ADDRESS OF
OLD 'TO' UNIT-Y

K

•

4

K

•
?roqram Orqanization

597

Chart FA2-13

CPB INITIALIZATION - DISK ONLY QUEUING

•

•

•

•

4

A
FA2-13,C2

FA2-2,D5

FA2-2,K4
FA2-6,J3

FA2-13,DI

•

FA2-6,J4

•

FA2-7,D4
FA2-15,HI
B

REQUEST A CPB

FA2-15,E3

•

•
NO
C

•

UNITFREE
FREE BUFFER
UNITS

C

•
r-_ _.....,.\;,Q.....",.,.A3
RTNPART

D

B

CHAIN OR RETURN
THE BUFFER

ADD ONE TO THE
LAST BUFFER
UNIT COUNT

SET THE NUMBER
OF UNITS AND
THE TIC

0

RESTORE THE
DESTINATION QCB

CHAIN THE UNIT
INTO THE TIC
CHAIN

SET UP TO TPOST
THE UNITS TO
THE BUFFER
RETURN QCB

E

•
E

•

~DDRESS

r -________

~~~.AI

KEEP THE
ADDRESS OF THE
LAST TPOSTED
UNIT

WRKD
F

BUILD CCWS

•

•
PUT THE QCB
ADDRESS IN THE
BUFFER

G

G

•

•

H

TPOST THE UNITS

H

•

•

J

J

•

•

K

K

2

c; 98

•

•

4

•

Chart FA2-14

CPB INITIALIZATION -DISK ONLY QUEUING

•

•

•

•

4

A

A
FA2-2,C4

FA2-9,H4

FA2-I,FI

FA2-3,C2

FA2-12,GI

FA2-2,F3

SUBRACT ONE
FROM THE
MESSAGE COUNT
IN THE QCB

LINK THE UNIT
TO THE PREVIOUS
BUFFER

B

B

•
CLEAR AND .SET
THE TIC

C

C

•
I EDQHM03
D

SET THE LCB AND
SCB FIELDS

FIND THE SCB
FOR THE
DEST I NA TI ON

D

•

•
UPDA TE THE FEFO
POINTER SAVED
I N THE SCB FOR
THE DESTINATION

YES

E

E

•

•
A3
REQCPBI

F

REQUEST ONE CPB

F

•
G

•
SET CPBADDR
QCBLFEFO

G

•

•
H

SET THE DATA
FIELD = PREF I X
+ FEFO POINTER

H

•
A2
EXCPINQI
J

ADD A CPB TO
THE CHANNEL
PROGRAM

J

•

•
K

•

4

•
Proqram orqanization

599

Chart

FA2~15

CPB INITIALIZATION - DISK ONLY QUEUING

"

"

"

"

A

•
B

FA2-1 I ,B3
FAZ-II,K3

FA2-6,G3
FA2-6,G4
FA2-7,.:i3

MERGE THE
ENABLED AND
DISABLED COUNT
FIELDS

FA2-I,C2

FA2-4,C4

GET THE SCB
SIZE

GET THE ERB

..
B

.

•
ADD ONE TO THE
NUMBER OF UN I TS
AND SUBTRACT
THE KEYLENGTH
FROM SCB SIZE

C

C

•
D

UNLINK THE
SUFFERS FROM
THE ERB

SET THE SCB
UNIT COUNT

o

.

•
PERFORM A TPOST

E

E

•

.

F

F

G

UNLINK THE
BUFFER AND
PREPARE TO
TPOST IT TO MH

..

•
H

G

AS
POST
PERFORM A TPOST

H

•

.

J

J

•
K

K

2

600

•

3

•

4

Chart F A2-16

CPB INITIALIZATION - DISK ONLY QUEUING

•

•
S

•

•

FA2-1,C3

FA2-2,Fl,J3,H4,C5

FA2-10,G4

FA2-7,B3

FA2-3,F2 FA2-5,Jl

FA2-18,Hl

4

•

FA2-4,B2

•

FA2-14,Jl

CLEAR THE LINK
FIELD OF THE
BUFFER

GET THE ADDRESS
OF ENQMGRC

B

•

•
SET SCBUNTCT
0

C

C

•
GET THE ADDRESS
OF THE LAST CPS
ON THE QUEUE

D

D

FA2-6,Dl
FA2-21,C3

•
GET THE ADDRESS
OF THE BUFFER
LINK FIELD

E

E

•

•
CORRECT THE
LINK ADDRESS
FOR THE CPB;
CLEAR THE LINK
FIELD

NO
F

F

•
SET THE NEW
LAST ELEMENT

G

RETURN

G

•

•
NO

H

SET THE FIRST
ELEMENT ADDRESS

H

•

•
LINK THI S
ELEMENT TO THE
PREVIOUS LAST
ELEMENT

(

K

•

RETURN

J

)

K

•

•

4

•
nroqram Oraanization

601

Chart F A2-1 7

CPB INITIALIZATION - DISK ONLY QUEUING

,

,

,

4

,

A

B

FA2-2,G4

FA2-2,D4

FA2-2,E3,A5

FA2-13,EI

FA2-13,BI

FA2-14,FI

•

MAKE REGISTER 2

BUILD THE WRITE
KEY AND DATA
CCWS

< 0

B

•
C

•
SET CPBADDR =
CURRENT RECORD
NUMBER I N THE
PREFIX

C

•

•

o

D

•
E

E

•

•
SET THE AREA
ADDRESS; PUT A
WRITE DATA AND
NOOP I N THE CPS

F

F

•

•
YES

SET THE CPBADDR
THE PREF I X

>---.. FROM

G

G

•
H

H

•
J

J

•

•

•
~02

•

4

•

Chart FA2-I8

CPB INITIALIZATION -DISK ONLY QUEUING

•

•

•

•

4

FA2-3,J5

FA2-3,C5

FA2-3,H4

FA2-4,B3,E3

FA2-8,KI

FA2-8,J2

FA2-8,D3

•

E4

B

B

C

C

•
FA2-1

o

'V

GET THE LCB
ADDRESS, NO. OF
THE CURRENT
CPB, AND COUNT
OF DATA MOVED

GET THE
DESTINATION
FROM THE BUFFER
PREFI X

SET UP TO BUILD
THE SAME BUFFER
SIZE

D

41

E

ADD ONE TO
SCBCPBNO; CLEAR
THE WORK AREA

F

SET INTO THE
SCBSCSEG FIELD
THE NUMBER OF
THE RECORD JUST
READ

.r---~

GET THE
LCBTTC I N OFFSET

(

RETURN

)

E

IEDQTNT
GET THE
TERMINAL ENTRY
OFFSET

F

•
G

BU I LD READ KEY
AND DATA CCWS

GET THE BUFFER
SIZE

G

•
GET THE DCB

H

~8~~~~ S 5 I I~E

ADD A CPB TO
THE CHANNEL
PROGRAM

CALCULA TE THE
NUMBER OF UN I TS

AND THE NUMBER
OF UNITS

H

•
J

BU I LD THE ERB

K

K

,.

,.

,.

4

,.

Proqram Orqanization

603

Chart FA2·19

CPB INITIALIZATION ~ DISK ONLY QUEUING

•

•

•

F"A2-9,01

F"A2-8,H2

FA2-8,Da

•

4

.

FA2-1 I ,02

B

GET THE KEY
LENGTH & THE
FIRST BUF"F"ER
ADDRESS

ADO ONE TO THE
NUMBER OF UN I TS

B

..
.>---....

C

GET THE ADDRESS
OF" THE NEXT
SUF"FER

C

..
SUBTRACT I F"ROM
THE AVAILABLE

o

DECREMENT THE
NO. OF UNITS IN
BUFF"ER I F ENTR Y
WAS AT AOONBUNT

U~~~~RR AC~~~;tR

o

..
E

SUBTRACT· THE
KEY LENGTH FROM
THE BUF"FER SIZE

E

PUT THE ERB ON
THE BUF"F"ER
RETURN QCB

SET THE; LAST
UNIT ADDRESS

NO

F'

F

..
F"A2-5

G

'VI

GET THE ADDRESS
OF" THE NEXT
UNIT

G

..
H

H

J

J

..
(

•
604

RETURN

)

K

•

4

•

Chart F A2-20

CPB INITIALIZATION - DISK ONLY QUEUING

•

•

•

•

4

A
FA2-II,H3

•

FA2-9,E5

FA2-I,EI

FA2-3,E3

FA2-II,D3

FA2-2,A2

FA2-8,B5

GET THE
DESTINATION QCB
ADDRESS AND THE
PRIORITY LEVEL

LINK THE UNIT
INTO THE TIC OF
THE BUFFER

B

•

•
B

•
CLEAR AND
I N I TI ALI ZE THE
OP CODE

C

GET THE ADDRESS
OF THE FIRST
PRIORITY QCB

C

•
D

D

•
PRIORITY QCB
ADDRESS = SIZE
OF PRIORITY QCB
X PRIORITY
LEVEL

E

E

•

•

F

F

•
G

G

•

•

H

H

•

•
J

•
K

•

•

•

4

Oroqram Orqanizaticn

60:

Chart F A2 ..21

Cpa INITIALIZATION - DISK ONLY QUEUING

•

•

3

•

•

4

FA2-5,H2

FA2-5,EI

FA2-5,G5

FA2-5,G2

PUT THE
APPQEMTY
ADDRESS

B

(~~~i§t~~J

8

liN

UNL I NK THE CPB

ENQUEUE THE
BUFFER I N THE
CHANNEL PROGRAM

C

•

FA2-5

'V
D

D

•
E

SUBTRACT 16
FROM THE
ADDRESS

PUT THE CPB IN
THE CPB FREE
POOL

E

•
F

•
G

SUBTRACT 8 FROM
THE ADDRESS

G

•
H

MOVE THE CCWS
TO THE PROPER
LOCATION IN THE
CP8

H

..
J

J

•
K

•
606

4

•

Chart FA2-22

CPB INITIALIZATION - DISK ONLY QUEUING

•

2

•

•

•

FA2-6,E3,F4

•
B

FA2-7,AI

FA2-15,Dl

FA2-IO,B2

FA2-22,C2

..

FA2-II,EI

SUBTRACT I FROM
THE SCB CPB
COUNT

SET THE SCB
UNIT COUNT =
CPB WORK COUNT

..

•
~

________aa-w~A4
LASTTEST

SET THE sCB
UNIT COUNT
0

=

SET THE SCB
UNIT COUNT

C

C

..

•
ADD

o

B

I

TO

SUBf~~~~C~B fROM

0

DISK COUNT

•

..

E

E

•

..

F

F

..
ADD
G

I TO THE
ADDRESS

G

..
H

PUT PRFXTRA
SCBSCSEG

IN

PUT THE CPB IN
THE CPB FREE
POOL

H

..

•

J

J

..

•

K

K

2

•

3

4

•
nroqram Orqanization

607

Chart GA-l

BUFFER MANAGEMENT MODULE

•

•

•

4

•

A

..
B

41

GET THE ADDRESS
OF THE LCB

B

..

41

C

C

.

41

D

D

.

41

SETRSVD
E

GET RESERVED
DISK AND REQUEST COUNT

GET THE ADDRESS
OF THE LAST
BUFFER ASS I GNED

E

..

41

DCBCT
F

GET THE BUFFER
UNIT COUNT FROM
THE DCB

PUT THE INITIAL
ADDRESS
{2~G: ~~~~ IN
14

F

41

PUT THE SETCT
ADDRESS

{2~Gi~~~~ ~N

G

41

SET UP TO TPOST
THE BUFFERS TO
THE QCB
SPECIFIED IN
LCBRCQCB

SET REGISTER 8
EQUAL TO
REG I STER 14

H

41

J

GET THE ADDRESS
OF THE BUFFER
RETURN QCB

UNIT

ASSOCIAT

GET THE BUFFER
UNITS

BUILD CCWS IN
THE BUFFERS

SET THE QCB
ADDRESS AND THE
PR I OR ITY

.

41

SET UP TO TPOST
THE BUFFERS TO
THE ACTIVATE
QCB

K

•
608

J

4

K

5

Chart GA-2 BUFFER MANAGEMENT MODULE

•

•

•

4

•

A

A

•

•

B

B

C

RETURN UN I TS TO
THE BUFFER UN I T
POOL

C

•

•
D

REMOVE ONE
BUFFER UNIT
FROM THE BUFFER
UNIT POOL

RESTORE THE
AVA ILABLE
BUFFER COUNT

D

•
SET UP TO TPOST
THE BUFFER TO
THE D1 SK 1/0
QCB AND SET THE
PRIORITY

E

ADD THE
DISABLED COUNT
THE ENABLED
COUNT

~-----~-. TO

GET THE BUFFER
UN I T COUNT FROM
THE DCB

NO

E

•

F

F

•

•

G

G

•

•

H

H

•
PUT THE
PR INSERT
ADDRESS

J

(~~G: s~~~ ~N

J

•

•

K

K

•

3

4

•
Program Organization

609

Chart GA-3 BUFFER MANAGEMENT MODULE

•

•

3

•

•

A

A

•
B

6H
E~§E
ADDRESS;

&R5g~
SET
RETURN TO
DISPATCHER

SET THE I/O
START ADDRESS

EXCP

B

•
PUT THE ADDRESS

~~......."" I~F T~~EL~~[~~§I

C

C

FIELD OF THE

Lce

•
D

•
E

•
GET THE NEXT
TIC

F

G

F

COMPLETE
BUILDING THE
CCWS

G

•
H

GET THE ADDRESS
OF THE
PREY 10USLY
ASSIGNED BUFFER

SET THE
PREY 10US LAST
UNIT TO TIC TO
THE FIRST

H

•
YES

SET THE ADDRESS
OF THE LAST
UNIT TO BE THE
LCBCPA

RESET THE
. - - - - - , CHANNEL PROGRAM
CHECK FLAG

J

J

•
K

K

•
610

2

•

•

4

•

Chart GA-4 BUFFER MANAGEMENT MODULE

•

•

•

3

•

4

A

A
GA-I,J3

GA-I,EI

GA-2,G3

GA-2,C3

SET THE RETURN
ADDRESS TO LINK

GET THE COUNT
RESERVED FOR
THE DISK AND
THE REQUEST
COUNT

(¥~E 1N~~MR G[5t

B

41

UNITS

SET THE

5~B~~~C ~C~ I ~~g

RESTORE THE ERB
COUNT

THE RESERVE
CHARACTER COUNT

•

41

GET THE ADDRESS
OF THE FIRST
BUFFER

C

BU I LD THE READ
SK IP LOOP

C

•
D

41

LINK THE
PREV IOUS UNI T
TO THI S ONE

GET THE ADDRESS
OF THE NEXT
BUFFER

NO

SET THE READ
INHIBIT COMMAND

•
E

B

D

41

SETCCWS

CLEAR THE
PREVIOUS LINK
FIELD TO ZERO

REMOVE ONE UNIT

E'

BU I LD THE CCW
OP CODES

•

41

DSPLIFOR
F

SAVE THE
ADDRESS OF THE
FIRST BUFFER

PUT UNIT FIRST
IN BUFFER UNIT
POOL

F

GA-1,F1

•
G

GA-2,E3

SET UP THE
BUFFER PREF I X

GET THE ADDRESS
OF THE NEXT
UNIT

41

G

•

41

H

COMPLETE
BU I LD I NG THE
CCWS

H

•

41

GET THE ADDRESS
OF THE NEXT
BUFFER

J

GET THE NUMBER
OF UNITS FROM
THE ERB

J

•

41

K

K

•

•

•

4

•
Program Organization

611

Chart GA-S BUFFER MANAGEMENT MODULE

,

,

,

4

,

A

A
GA-3,G1

•
B

GA-4,H4

41

GET THE KEY
LENGTH

B

•

41

GET THE BUFFER
SIZE FROM THE
DCB

C

C

•

41

GET THE HEADER
PREFIX SIZE AND
THE
START-OF-DATA
ADDRESS

0

0

•
E

41

GET THE TEXT
PREFIX SIZE AND
THE
START-OF-DATA
ADDRESS

SET THE SCB
ADDRESS

SUBTRACT THE
TSO PREFIX SIZE
FROM THE BUFFER
SIZE

GET THE NUMBER
OF RESERVED
CHARACTERS

•

E

41

NO

F

ADD 12 TO THE
UNIT ADDRESS

•
G

SET THE COUNT,
THE OP CODE AND
THE FLAGS IN
THE CCW

PUT A WR ITE
IDLE CCW IN THE
BUFFER

PUT NEW COUNT
IN CCW OF THE
LAST UNI To SET
AN INVALID TIC
IN LAST UNIT

G

•

41

CALCULATE THE
I/O ADDRESS =
ADDRESS OF THE
UNIT + 12 + EOB
COUNT

H

H

•
J

41

GET THE ADDRESS
OF THE NEXT
UNIT

J

•
K

41

SET THE CCW I/O
ADDRESS AND
TEST FOR
ADD IT 10NAL
UNITS

SUBTRACT THE
KEY LENGTH FROM
THE EOB COUNT

•
612

•

K

•

4

•

Chart GA-6 BUFFER MANAGEMENT MODULE

,

,

,

,

4

GET THE SIZE
FROM THE BUFFER

A
GA-3 ,E I
GA-4,E4

•

•

USE THE TSO
PREFIX

B

B

•

•
>---..

C

YES

ADD THE NUMBER
OF IDLES TO THE
TEXT SIZE

SET THE READ OP
CODE

•
D

C

•
ADD THE NUMBER
OF I DLES TO THE
HEADER SIZE

D

•

•

E

E

•

•
F

SET THE DATA
CHAINING AND
SLI BITS IN THE
CCW

FIND THE SIZE
OF THE LAST
UNIT

F

GA-5,E3

•

•
SET THE NUMBER
OF RESERVED
CHARACTERS IN
THE BUFFER
ZERO

G

G

•

•
.>-----1

H

GET THE NUMBER
OF TEXT IDLES
FROM DCBRESER+ I
IN THE DCB

H

•

•
GET THE NUMBER
OF IDLES FROM
THE LCBISZE
FIELD OF THE
LCB

J

J

•

•

K

K

•

•

4

•
Program Organization

613

Chart GT·1 TRANSPARENT TRANSMISSIONCCW BUILDING ROUTINE

•

•

•

4

•

A

A

•

GT-3,FI

GT-2,J4

GT-3,E2

GT-3,G5

GET THE ADDRESS
B

O~c~~EA~gBtH~HE

GET THE ADDRESS
OF THE LAST
UNIT BEING
WRITTEN

YES

DCB

PUT 1 BLANK AT
THE: UNIT
ADDRESS + 12 +
THE SIZE OF THE
DATA

INITIALIZE THE
WORK AREA WITH
THE CCW FLAGS

SAVE THE
REMA I N I NG SIZE
OF DATA IN THE
UNIT FOR LINE
END APPENDAqE

•
YES

CLEAR THE LCB
FIELDS

SUBTRACT ONE
FROM THE COUNT
AND MOVE THE
DATA

NO

MAKE THE UN I T
TIC TO THE
WR I TE OLE ETB

GET THE ETB
SIZE REMAINING
FROM THE LAST
BUFFER

PUT A WR ITE OLE

RES~6~~E RT~D THE

ADD THE COUNT
OF BLANKS TO
THE COUNT OF
DATA STILL IN
THE UNIT

YES

LCB CHANNEL
PROGRAM AREA

E

•

•
GET THE BUFFER
SIZE, KEY

GET THE BLOCK
SIZE FOR
TRANSM I SS ION

NU~~~~T~t!- ~~? TS

ADD THE COUNT
OF BLANKS TO
THE COUNT TO
WRITE NEXT TIME

YES

F

•
G

•
CALCULATE THE
NUMBER OF BYTES
NOT TO WRITE
PREFIX SI ZE
IDLES

SET THE NEW CCW
COUNT AND OP
CODE

G

•

•
YES

H

GET THE COUNT
OF DATA ALREADY
WRITTEN

FIND THE UNIT
THAT HAS THE
FIRST BYTE OF
DATA TO WRITE

NO

•
J

0

•

•

F

C

•

0

E

B

•

•
C

•

SET UP TO WRITE
THI S UNIT FIRST

H

•
SUBTRACT NUMBER
OF BYTES NOT TO
WR ITE FROM
PFiEF I X SIZE AND
FROM KEY LENGTH

J

•

•

K

K

•
614

2

•

3

•

4

Chart GT-2 TRANSPARENT TRANSMISSION CCW BUILDING ROUTINE

•

•

•

3

YES

•

4

PUT WRITE OLE
ETX & THE WR I TE
I N THE
LCB

>---~ OLE ETB

A

A

•

..

B

B

•

.
SET THE 'ETB
HERE' FLAG IN
THE PREF I X TI C
FIELO

C

C

..

•
NO

o

0

..

•
RESET THE
REMAINING ETB
COUNT

E

E

•

..

F

F

•

..

G

SUBTR KEY LEN
FROM REMA I N I NG
ETB SIZE & FROM
THE REMAINING
PREFIX SIZE

G

..

•
YES

H

>---~

SET THE NEW CCW
COUNT

H

..

•
SAVE THE ETB
COUIIIT FOR THE
NEXT UNIT

YES
J

SET UP TO WR I TE
THE ETB

J

.

•
SET UP TO WRITE
THI S BUFFER

K

K

GT3
AI

•

2

•

•

4

Program Organization

615

Chart GT-3 TRANSPARENT TRANSMISSION CCW.BUILDING ROUTINE

,

~

l'

,

,

4

,

.. 3

o

A

A

•
B

B

•
C

GET THE SIZE OF
THE DATA IN
THIS UNIT

C

•
o

SUBTRACT THE
AMOUNT OF DA T A
IN THIS UNIT
FROM THE KEY
LENGTH

o

•
MOVEIT
E

SUBTRACT THE
AMOUNT OF DA T A
MOVED FROM THE
REMAINING ETB
SIZE

MOVE DA T A LEFT
TO BE MOVED IN
THE UNIT

GET A UNIT FROM
THE BUFFER UN I T
POOL AND LINK
IT TO THIS
BUFFER

BUILD A cr.w IN
THIS UNIT

•

E

•
MOVE IT

F

MOVE DATA UP TO
THE ETB SIZE

F

•

•
G

SET UP TO WR I TE
THE ETB

G

•

•

H

H

•
YES

SAVE THE
ADDRESS OF THE
LAST UNIT OF
THI S BUFFER

SET THE WR I TE
OLE STX TO TI C
TO TH I S BUFFER

""-'..=-=--... ~-..

•
K

..J

•
LINK THI S
BUFFER TO THE
LAST UNIT OF
THE PREV IOUS
BUFFER

YES

K

•
616

SET A WR ITE
SYNC TO TIC TO
THE WR I TE OLE
STX

4

•

Chart HG-l

TIME DELAY SUBTASK

,

,

,

,

4

A

..

AS-5, C5

DISPATCHER

RD-l,F5

•
T
FROM NEXT ELEM
GET TIME OF
INTERRUPT
COMPARED WITH
REFERENCE T I ME

B

B

..

.
C

SET

SET

PRESET
REGISTERS

PRESET
REGISTERS

COMPARE T I ME OF
I NTERRUPT ON
NEXT ELEMENT ON
QUEUE WITH
REFERENCE T I ME

YES

C

..

..
HGI
E2

COMPARE TI ME OF
INTERRUPT ON
NEXT ELEMENT ON
QUEUE WITH THE
REFERENCE T I ME

D

GET THE TIME OF
THE INTERRUPT
FROM THE FIRST
ELEMENT ON THE
TIME QUEUE

D

..

..
SUBTRACT THE
TIME OF DAY
FROM THE T I ME
OF THE
INTERRUPT

TIME - GET
TIME OF DAY

E

E

..
F

GET FROM THE
ELEMENT SECONDS
CONVERTED TO
TIME UNITS

CONVERT TIME OF
DAY INTO
HALF WORD T I MER
UNITS

F

.

.

G

G

..

..

H

CONVERT T I ME OF
INTERRUPTS TO
INTERVAL IN
TIMER UNITS

SET THE
INTERVAL TO THE
DEF AUL T VALUE

H

..
J

MODIFY TIME OF
DAY 8Y 51 X
HOURS FOR
REFERENCE T I ME

STIMER REQUEST A
TIMER
INTERRUPT

POSTSUB
TPOST THE LC8
TO ITSELF

.
K

..
SAVE THE
ADDRESS OF THE
ELEMENT THAT
HAS AN ACTIVE
STiMER

FIND TIME OF
I NTERRUPT AND
PUT IT INTO THE
ELEMENT

2

K

4

Proaram Orqanizaticn

617

Chart HG-2 TIME DELAY SUBTASK

•

•

•

4

•

A

•
B

•
UNL I NK FROM THE
T I ME QUEUE THE
FIRST ELEMENT
WITH AN EXPIRED
TJ ME I NTERV AL

B

•

•

C

C

•

•
SET THE TIME
INTERVAL TO 12
HOURS

D

D

•
PUT THE ADDRESS
OF THE ELEMENT
INTO REGISTER I

E

E

•
F

GET THE QCB
ADDRESS TO
RECEIVE THIS
ELEMENT

LINK THE
RECEIVE
SCHEDULER ONTO
THE STCB CHAIN

F

•
DSPPR lOR
MOVE THE
SCHEDULER

G

G

•

•

H

H

•

•
MOVE THE
SCHEDULER

J

J

•

•
POSTSUB
K

TPOST THE
ELEMENT TO THE
INDICATED QCB

..
618

..

3

4

..

K

Chart HG-3 TIME DELAY SUBTASK

,

,

,

,

4

5

A

..

A
DISPATCHER

HM2-7,C3 HM1-b,C3

HG-l ,Cl ,C2

NS,F2

HM-8,C3

AS-3,J4

HG-3,Cl,C2

YS-2,G4

YF,D2

•

B

B

..

•

C

PRESET
REGISTERS

PRESET
REGISTERS

C

..

•
THE
FROM
QUEUE

D

D

.
E

•
GET THE ADDRESS
OF THE ELEMENT
TO BE MOVED
FROM THE DELETE
REQUEST ELEMENT

PRESET TIME
QUEUE REG I STER
TO THE ADDRESS
OF THE TIME
QUEUE

E

.

•

F

F
T I ME SUPER V I SOR

•
G

GET THE TCB
ADDRESS FROM
THE TIME QUEUE
ELEMENT

G
HG-l,J2

..

HG-2,K5

•

PASS THE
ELEMENT TO BE
TPOSTED TO THE
TCAM DISPATCHER

H

PASS THE
ADDRESS OF
SAVE2 TO THE
DISPATCHER IN
REGISTER 13

.

H

•

J

SET THe: ELEMENT
TO GO TO THE
INDICATED QCB

TPOST THE
ELEMENT TO THE
READY QUEUE

J

..
K

REQUEST TIME
QCB BE TPOSTED
TO ITSELF

K

•

2

•

•

4

•
Proqram Orqanization

619

Chart HI-!

SYSTEM DELAY SUBTASK

,

,

3

,

4

,

A

A
DISPATCHER

•

•
CLEAR LCB CDUN-

,I~~fE~U§~L~~ ,

B

B

BITX'10' IN
AVTBIT 1

•
GET THE TCB
ADDRESS FROM
THE AVT

C

•

•
GET THE START
OF THE DCB
CHAIN ADDRESS.
FROM THE TCB

0

0

•

•
HANGLCB
E

PUT LCB ON
SYSTEM DELAY
QUEUE

TPOST THE LCB
TO, ~~TE~~~E~SE
PRIORITY

YES

GET THE ADDRESS
OF THE DCB FOR
THI S DEB

E

•

•
GET THE ADDRESS
OF THE PSEUDO
lOB FROM THE
DCB; BACK UP TO
THE PSEUDO lOB

GET THE NEXT
LCB ON THE
QUEUE

F

•

•
SAVE THE NUMBER
OF EXTENTS FROM
THE OEB

G

WTO 'START OF
SYSTEM
DELAY'
MESSAGE

CLEAR THE LINK
FIELD OF' THE
LAST LCB AND
THE SYSTEM
DELAY QUEUE

GET THE ADDRESS
OF' THE NEXT DEB
IN THE DEB
CHAIN

ADD THE SIZE OF'

T~~EL~~B~D~~~~S
TO THE FIRST
(NEXTJ LCB

H

•

•
I EOQHGO 1
J

G

•

•
H

F

PASS THE CHAIN
OF ALL Lces TO
THE DISPATCHER

PUT SYSTEM DELAY QCB ON TIME
DELAY QUEUE

J

•

•

K

K

•
620

4

5

Chart HI-2 SYSTEM DELAY SUB TASK

•

•

•

•

4

A

A
HI-2,D2

HI-I,EI
HI-2,F3

B

IEDQHG02

ADD ONE TO THE
LCB COUNTER

HANG THE Lee
ONTO THE FRONT
OF THE SYSTEM
DELAY QUEUE

REMOVE THE Lce
FROM THE T I ME
DELAY QUEUE

..

•
e

•
DECREMENT THE
COUNT OF
OUTSTANDING
Lces

C

C

•
D

PUT THE RECE I VE
SCHEDULER BACK
I NTO THE STCB
CHAIN

DO NOT COUNT
THI S LCB

D

•
E

E

•
F

F

..

•

G

G

..

•

H

H

.
USI NG THE uce
INDEX IN THE

IOHALT STOP THE
LINE

~5~RE~~T F~g~

J

DEB OF THE LCB

J

..
K

K

..

3

..

4

..
nrocrram Orqanizaticn

621

Chart HK

STOP LINE I/O SUBTASK

,

,

,

4

,

A

A

..
REMOVE THE LCB
FROM THE T I ME
DELAY QUEUE

B

PUT THE RECEIVE
SCHEDULER BACK
ON THE QUEUE

B

..
C

C

..
D

D

..
E

E

..
SET
TO

F

G

CLEAR THE
LC8TTCIN FIELD
IN THE LCB

H

BUILD THE
DISABLE COMMAND

F

SET UP TO TPOST
THE LeB TO THE
OPERATOR
CONTROL QUEUE

SAVE THE
ADDRESS OF THE
STOP LINE
REQUEST IN THE
LC8

r~-~

SET A NO-OP IN
THE CHANNEL
PROGRAM

G

H

..
J

EXCP SVC 0

J

..
K

K

•
622

•

4

Chart HM-l

DESTINATION SCHEDULER

•

•

•

4

GET THE ADDRESS
OF THE BUFFER,
B

OFo~H~H~C~CBAND

B

•
C

GET THE ADDRESS
OF THE MASTER
QCB AND OF THE
FIRST PRIORITY
QCB

NO
C

•

•
NO

0

=

PRTY QCB ADDR
PRTY OFFSET X
PRTY QCB SIZE +
FIRST PRTY QCB
ADDR

NO

0

•
YES
E

FIND THE
HIGHEST
PR lOR I TY LEVEL
QCB

NO

REMOVE ELEMENT
FROM TI ME DELAY
QUEUE, IF THERE

E

•

•
YES

F

F

•

•
G

GET THE ADDRESS
OF THE NEXT
PR I.oR I TY LEVEL
QCB

=

SET X
THE
PREFI X SIZE

G

•
GET THE ADDRESS
OF THE NEXT
UNIT; ADD ONE
TO THE COUNTER

H

SUBTRACT
AVTKEYLE FROM X

H

•
J

SET THE NUMBER
OF UNITS
THE
COUNTER

=

J

•

•
NO
K

3

SET UP TO TPOST
THE NEXT UN I T
TO THE BUFFER
RETURN QCB

4

POSTSUB
TPOST THE
BUFFER

K

•
Droqram Orqanization

E23

Chart HM-2

DESTINATION SCHEDULER

,

YES

4

,

REPLACE THE QCB
HIGHEST
PR I OR I TY LEvEL

A

•
SENDINIT
B

TEST FOR
INITIATE MODE
NOW ACTIVE

B

..

41

C

C

..

41

CNTUNITS
D

COUNT BUFFER
UNITS & UPDATE
A VT ADDR VALUE

D

•

41

E

E

•

41

F

F

•
G

H

SET UP TO TPOST
TH I S BUFFER TO
THE COPY QCB

REUSDUPL
UPDATE REUSABLE

SET THE ADDRESS
FOR TH I S BUFFER

I

D ~KN~~i~s~~~'

H

J

K

J

EXAMINE THE
MESSAGE AND LCB

2

624

SET THE QCB AND
SCB FEFO
POINTERS

•

K

4

•

Chart HM-3 DESTINATION SCHEDULER

,

,

,

,

4

5

A

-

B

B

1

..
C

C

..
SET THE NEW
QCBFHTZ AND
QCBFHLZ FIELDS

D

MOVE THE AVT
ADDRESS VALUE
TO PRFXTRA

o

ADD Y TO THE
AVT VALUE OF
ADDRESS

E

..
E

MOVE QCBDNHDR
TO PRFCRCD AND
PRFCRCD TO·
SCBDCHDR

F

MOVE QCBQBACK
TO PRFHQBCK AND
PRFCRCD TO
QCBQBACK

G

MOVE THE AVT
ADDRESS FIELD
TO QCBDNHDR AND
TO PRFNHDR

GET THE
TERM I NAL ENTRY
ADDRESS

MOVE A VT VALUE
OF ADDRESS TO
SCBDNSEG AND TO
PRFNTXT

GET THE QCB
ADDRESS

G

..

..
H

F

ADDONE

GETNTXT

ADD 1 TO THE
AyT VALUE OF
ADDRESS

GET THE
ADDITIONAL
RECORDS ADDRESS

MOVE PRFCRCD TO
QCBLKRRN

MOVE QCBQBACK
TO PRFTQBCK AND
PRFCRCD TO
QCBQBACK

ADDONE
ADD 1 TO THE
AVT VALUE OF
ADDRESS

H

.
SAMELAST

FINDSTCB

..J

EXAMINE THE
MESSAGE AND THE
LCB

GET THE STCB
ADDRESS

..J

..

..
F I NDSTCB
GET THE STCB
ADDRESS

K

4

K

•
Proqram Orqanization

625

Chart HM-4 DESTINATION SCHEDULER

,

,

4

,

REMOVE ONE UN I T

A

•
TRANSFER DATA

B

ASS IGNI A
ASS I GN THE

pgV~¥J~~

C

•
0

•
E

SETFEFO

CALCULATE Y
AVTRADDR
DIVIDED BY
TOTAL NUMBER OF
RECORDS

PUT THE FEFO
POINTERS IN THE
QCB AND SCB

•

•
=

F

E

SET UP TO TPOST
THE ELEMENT TO
THE SPECIFIED
QCB (LCBRCQCB)

CALCULA TE X
TOTAL NUMBER OF
RECORDS 0 I V IDEO
BY 4

F

•

•

G

G

•
H

REPLACE
AVTRADDR WITH Y
- MODULO VALUE

H

•

•

J

J

•

•

K

CALCULAtE LOAD
POINT
LOAD
POINT + 1/4 THE
TOTAL NUMBER OF
RECORDS

=

K

•
626

2

4

Chart HM-S DESTINATION SCHEDULER

,

,

,

,

4

ACTIVATED BY THE
REUSAB I L I TY-COPY

A

A

SUBTASK
HM-I0,Cl

..

FA-15,Dl

•

e

B

..
C

C

.

•
SET THE NUMBER
OF UNITS PER

o

~~-~ BUFFER EQUAL TO
1

~~..........

GET THE ADDRESS
OF THE WORK
AREA AND OF THE
SCB

..

•
E

GET THE ADDRESS
OF THE LAST
SEGMENT

GET THE ADDRESS
OF THE DCB AND
OF THE FIRST
LeB IN THE LINE
GROUP

COUNT ONE UN I T

E

.

•
F

o

MAKE THE LAST
UNIT TIC TO
THI S UNIT

'--'-_~d

GET THE ADDRESS
OF THE LAST
PREFIX

"""-''--~....

FIND THE SCB
ADDRESS AND THE
LCB WITH THE
DIAL SCHEDULER

..

•
GET THE ADDRESS
OF THE RIGHT
Lce AND sce

G

G

•

.

H

H

•

.

J

J

..

•

K

K

2

•

•

4

•
Proqram Orqanization

627

Chart HM·6 DESTINATION SCHEDULER

•

•

•

•

4

A

•

HM-2,BI

HM-I,K5

HM-7 ,EI ,B2

HM-2,G5

PUT THE BUFFER
ADDRESS IN
REGI STER I

B

HM-2,D4

GET THE NUMBER
OF UNITS IN A
BUFFER

B

•

•
P
SET THE NUMBER
EQUAL TO I

PUT THE QCB
ADDRESS IN THE
BUFFER

C

C

•

•
DSPPOSTR
D

TPOST THE
BUFFER

ADD THE NUMBER
TO THE AVT
VALUE OF
ADDRESS

D

•

•
YES
E

E

•

•
SET A NEW AVT
VALUE OF
ADDRESS

F

F

•

•

G

G

•
H

H

HM7
AI

•
CHAIN ONE UNIT
TO THE PRE V IOUS
UNIT

.j

.j

•

•
K

FREE THESE
UNITS

YES

K

2

628

•

4

•

Chart HM-7 DESTINATION SCHEDULER

,

,

,

,

4

A

A

..
FLAG THE HEADER

~;....J_" L~~~~ f~J ~~stO

SEE I F AN I N I Tl ATE MESSAGE
I S BEING SENT

B

B

OF THE BUFFER

•

.

C

C

•

..

D

D

•

..
E

QUEUE ONE UN I T

E

..

•

F

F

..
G

G

•

..

H

SAMELAST

SET UP TO QUEUE
ONE UNIT

EXAMINE THE
BUFFER AND THE
LCB

..

•
,J

H

,J

QUEUE THE UN I T

•

.

K

K

4

Proqram Orqanizaticn

Chart HM-8 DESTINATION SCHEDULER

,

,

,

3

,

4

A
HM-2,KI

RP-I I,E5

HM-I,E4

HM-2,K2

HM-8,DI

HM-3,J5
HM-1,H5

YES

B

B

•
YES

REMOVE ELEMENT
FROM THE T I ME
DELAY QUEUE

C

C

•
CKDELAYQ
D

CALCULATE
REGISTER 15
ADDRESS +
OFFSET AT
ADDRESS-2

REMOVE ELEMENT
FROM T I ME DEL A Y
QUEUE, IF THERE

LOCKMSG

REPLACE THE
SEND SCHEDULER
STCB

TEST FOR A LOCK
RESPONSE
MESSAGE

D

•
BALR

E

14,15

EXECUTE THE
SCHEDULER AT
REGI STER 15

E

•
RESTORE THE
ADDRESS OF THE
F
AN8
QCB

Sc~:B

F

SET UP TO TPOST
THE LCB FOR A
SEND OPERAT I ON

O~H~HE

F

•
G

G

SET X = QCB
ADDRESS AND Y
SEARCH VALUE

H

H

YES

NOTE: THE BALR
K

•

J

14,15 IN BLOCK E2 CAN ACTIVATE

THE SUBROUTINE AT BZ-I,A4; EW-3,F5; R4-2,AI;

K

Q6,A3; Q1-2,AI; OR RD-2,A3.

630

REMOVE THE LCB

>---~ FROM THE CHA IN

J

•

4

Chart HM-9 DESTINATION SCHEDULER

•

•

•

HM-4.C5

HM-2.H4

•

4

HM-7.J1

HM-2.G4

HM-9.D3

SET THE PRFCORE
FIELD

B

SA VE THE BUFFER
ADDRESS

B

•
TRANSFER ONE
UNIT

C

C

•
ASSIGN1

GET THE ADDRESS
OF THE PREY IOUS
HEADER AND
CHA I N TH I S ONE
IN

QUEUE THI S
BUFFER

D

E

GET THE ADDRESS
OF THE PREY IOUS
UNIT AND PUT
PRFCORE IN ITS
PRFNTXT FIELD

F

MOVE PRFCORE TO
SCBCLSEG

D

MOVE PRFCORE TO
SCBCLSEG AND TO
QCBCPVHD

SET THE LOCK
RELA T I VE RECORD
NUMBER IN THE
QCB

RESTORE
ADDRESSES

PUT ZERO I N THE
TI C COUNT FIELD

E

F

G

G

•
H

H

K

K

•

•

4

•
Proqram Orqanization

E31

Chart HM-IO DESTINATION SCHEDULER

,

•

,

3

•

4

5

A

A
HII1~2,K3

•
B

HII1-2,E5

HII1-2,H2

HII1-3,H2

HM-8,D4

HII1-4,E5

41

HM-7,F5

GET THE HEADER
BUFFER ADDRESS

B

~

41

IEDQHM03
C

ADD I TO THE
DUPLICATE
HEADER COUNT

SEE IF ONLY II1SG
IN FEFO CHA IN
IS BEING SENT

C

•

41

0

0

•

41

E

UPDA TE THE SCB
WITH THE NEW
FEFO PO INTER

E

•
F

41

UPOA TE THE QCB
FEFO POINTERS

F
HM-3,H4,HI

HII1-2,H3,.J4

•

41

ADD I TO THE
AVT VALUE OF
ADDRESS

G

G

•

..

H

H

•

.
PUT SCBDNSEG IN
PRFCRCD

.J

.J

..

•
SET THE BUFFER
ADDRESS

K

•
632

2

•

4

K

•

Chart HMI-I

DESTINATION SCHEDULER - MAIN STORAGE QUEUING ONLY

,

,

,

,

4

A

.
B

•
GET THE ADDRESS
OF THE BUFFER,
OF o~H!fH~C~CB AND

B

.
C

•
GET THE ADDRESS
OF THE MASTER
QCB AND OF THE
FIRST PRIORITY
aCB

NO
C

•
PRTY QCB ADDR =
PRTY OFFSET X

o

>---~ PRTY Qce SIZE +

D

FIRST PRTY QCB
ADDR

•
FIND THE
HIGHEST
PR lOR I TY LEVEL
ace

E

CKDELAYQ

E

REMOVE ELEMENT
FROM T I ME DELAY
QUEUE, I F THERE

..

•

F

F

•
G

GET THE ADDRESS
OF THE NEXT
PRIORITY LEVEL
aCB

SET X = THE
PREFI X SIZE

G

•
NO

H

GET THE ADDRESS
OF THE NEXT
UNIT; ADD ONE
TO THE COUNTER

SUBTRACT
AVTKEYLE FROM X

..

H

•
SET THE NUMBER
OF UNITS = THE
COUNTER

J

J

..

•
POSTsue

SET UP TO TPOST
THE NEXT UN I T
TO THE BUFFER
RETURN aCB

K

TPOST THE
BUFFER

K

HMI-2

':1
"

4

"
Proqram Orqanization

633

Chart HMl-2

DESTINATION SCHEDULER - MAIN STORAGE QUEUING ONLY

r---l-.
HMI-2
AI

•

•

•

4

•

REPLACE THE QCB
HIGHEST
PR lOR I TY LEVEL

A

•
SENDINIT
B

B

TEST FOR
INITIATE MODE
NOW ACTIVE

..

•
POSTSUBA
TPOST THE ERB
C

C

•

..

D

D

COUNT BFR UN I TS
& UPDATE AVT
ADDR VALUE

..

•
NO

E

GET THE ADDRESS
OF THE BUFFER
RETURN QCB

E

..

•
DUPLCORE
F

F

CHECK FOR A
S INGLE UNIT
HEADER

..

•

4
QUEUNITS
REMOVE ONE UN IT
FROM THE BUFFER
TRANSFER DATA

G

G

QUEUE THE
BUFFER UN I TS

..

•
HMI-5
H

FINDSTCB

'V

GET THE STCB
ADDRESS

..

•
SETFEFO
J

SET FEFO
POINTERS IN THE
QCB AND THE SCB

PUT THE QCB
ADDRESS IN THE
BUFFER

J

..

•
K

SET UP TO TPOST
THE SPECIFIED
QCB AT LCBRCQCB

2

634

H

K

3

..

4

..

Chart HMl-3

DESTINATION SCHEDULER - MAIN STORAGE QUEUING ONLY

,

,

,

,

4

5

ACT I VATED BY THE
REUSABI L I TY -COpy

A

SUBTASK
HMI-8,CI

•

•

B

B

•

•
SET THE NUMBER
OF UNITS PER

r---~ BUFFER EQUAL TO

C

C

I

•
D

•
GET THE ADDRESS
OF THE LAST
SEGMENT

GET THE ADDRESS
OF THE WORK
AREA AND OF THE

COUNT ONE UNIT

seB

•
E

D

•
MAKE THE LAST
UNIT TIC TO
THIS UNIT

NO

r---~

GET THE ADDRESS
OF THE LAST
PREFIX

GET THE ADDRESS
OF THE DCB AND
OF THE FI RST
LCB IN THE LINE
GROUP

E

•

•
HMI-5

FIND THE SCB
ADDRESS AND THE
YES
r~-" LCB WITH THE
DIAL SCHEDULER

V'

F

•

•
HMI-2

G

'V

GET THE ADDRESS
OF THE RIGHT
LCB AND SCB

G

•

•

H

H

•

•

J

•

•

K

K

•

3

4

•
Proqram orqanization

E35

Chart HMl-4

DESTINATION SCHEDULER - MAIN STORAGE QUEUING ONLY

,

,

,

,

4

5

A

.

HMI-2,BI

HMI-I,K5

HMI-5,DI

HMI-2,F3

HMI-2,D2

•

HMI-5,B2

PUT THE BUFFER
ADDRESS IN
REGISTER I

B

GET THE NUMBER
OF UNITS IN A
BUFFER

B

..

•

P
PUT THE QCB
ADDRESS IN THE
BUFFER

C

SET THE NUMBER
EQUAL TO I

YES

C

.

•
DSPPOSTR

0

TPOST THE
BUFFER

ADD THE NUMBER
TO THE AVT
VALUE OF
ADDRESS

0

..

•
YES

E

E

..

•
SET A NEW AVT
VALUE OF
ADDRESS

F

F

•
G

G

.

•

H

H

.

HMI-5

'V
CHAIN ONE UNIT
TO THE PREV IOUS
UNIT

..J

..J

..
K

•
FREE THESE
UNITS

YES

•
636

•

K

4

•

Chart HMl-S

DESTINATION SCHEDULER - MAIN STORAGE QUEUING ONLY
...-J-,
HMI-5

•

•

•

•

4

Y

TOOMANY

A

..

•
>---1-'"'1

SEE IF INITIATE
MODE MSG BE I NG
SEND

B

FLAG THE HEADER
LOST; SET UP TO
FREE THE REST
OF THE BUFFER

e

•

..

C

C

•

..
SENDINIT

0

SEE I F AN I N I TlATE MESSAGE
I S BE I NG SENT

HMI -2

'V

o

QUEUE ONE UN I T

..

•
HMI -2

SETFEFO

'VI

E

PUT THE FEFO
POINTERS IN THE
QCB AND SCB

E

..
F I NO THE STCB
ADDRESS

F

..

•
G

F

SET UP TO QUEUE
ONE UNIT

EXAMINE THE
BUFFER AND THE

G

Lce

..

•
H

QUEUE THE UN I T

H

..

•

J

.
K

K

•

3

•

4

•
Proqram Orqanizaticn

637

Chart HMI-6

DESTINATION SCHEDULER- MAIN STORAGE QUEUING ONLY

•

•

•

•

4

A

A
HMI-2,H4

HMI-I,E4

HMI-2,G4

HMI-5,F5

HMI-6,DI

HMI-5,G5

•

8

8

•

•
REMOVE ELEMENT
FROM THE TIME
DELAY QUEUE

C

C

•

•
CKDELAYQ

D

CALCULATE
REGI STER 15
ADDRESS +
OFFSET AT
ADDRESS-2

REMOVE ELEMENT
FROM T I ME DELA Y
QUEUE, I F THERE

REPLACE THE
SEND SCHEDULER
STCB

TEST FOR A LOCK
RESPONSE
MESSAGE

D

•

•

E

EXECUTE THE
SCHEDULER AT
REGISTER 15

E

•

•
RESTORE THE
ADDRESS OF THE
F
OrfHE
QC8

SET UP TO TPOST
THE LCB FOR A
SEND OPERA T I ON

SC~78 ANg

•
G

G

•

•
SET X = QC8
ADDRESS AND Y
SEARCH VALUE

H

H

•

•
YES

REMOVE THE Lce
THE CHA IN

>---.. FROM

J

•

•
NOTE: THE 8ALR

K

14, 15 I N BLOCK E2 CAN ACTI VATE

THE SU8ROUTINE AT 8Z-1 ,A4; EW-3,F5; R4-2,AI;

K

Q6,A3; Q7-2,AI; OR RD-2,A3.

•
638

J

•

3

•

4

•

Chart HMl-7

DESTINATION SCHEDULER - MAIN STORAGE QUEUING ONLY

,

,

,

3

HMI-2,G3

,

4

HMI-2,H4

HMI-5,HI

..

HMI-7,D3

•

SET THE PRFCORE
FIELD

B

B

•

.

C

C

..

•

4'

D

QUEUE THIS
BUFFER

GET THE ADDRESS
OF THE PREV IOUS
HEADER AND
CHA I N TH I S ONE
IN

D

..

•
E

GET THE ADDRESS
OF THE PREV IOUS
UNI T AND PUT
PRFCORE IN ITS
PRFNTXT FIELD

SET THE LOCK
RELATIVE RECORD
NUMBER IN THE
QCB

MOVE PRFCORE TO
SCBCLSEG AND TO
QCBCPVHD

E

..
F

MOVE PRFCORE TO
SCBCLSEG

PUT ZERO I N THE
TIC COUNT FIELD

F

•

.

G

G

•

.

H

H

•

..

J

J

..
K

K

•

•

3

4

•
Proqram Orqanization

639

Chart .HM 1-8

DESTINATION SCHEDULER - MAIN STORAGE QUEUING ONLY

•

•

3

•

4

•

5

A

A
HMI-2,J2

HMI-2,F2

HMI-6,D4

HMI-2,F4

•

HMI-5,E5

B

C

GET THE HEADER
BUFFER ADDRESS

B

ADD I TO THE
DUPLICATE
HEADER COUNT

SEE IF ONLY MSG
IN FEFO CHA I N
I S BE I NG SENT

C

•
D

D

•
E

UPDA TE THE. SCB
WITH THE NEW
FEFO PO INTER

E

•
F

UPDA TE THE QCB
FEFO PO INTERS

F

•
G

G

•
H

H

•
J

J

•
K

•
640

•

•

4

•

5

Chart HM2-1

DESTINATION SCHEDULER - DISK QUEUING ONLY

•

•

•

3

•

4

A

•

•
B

GET THE ADDRESS
OF THE BUFFER.
OF O~H~H~C~CB AND

B

•

•
C

GET THE ADDRESS
OF THE MASTER
QCB AND OF THE
FIRST PRIORITY
QCB

C

•

•
=

o

.>---....

PRTY QCB ADDR
PRTY OFFSET X
PRTY QCB SIZE +
FIRST PRTY QCB
ADDR

o

•

•
FIND THE
HIGHEST
PR lOR I TY LEVEL
QCB

E

E

•

•

F

F

•

•

G

GET THE ADDRESS
OF THE NEXT
PR I OR I TY LEVEL
QCB

SET X = THE
PREFIX SIZE

G

•

•
GET THE ADDRESS
OF THE NEXT

NO

H

T~Nt~t ~gSN~~~

SUBTRACT
AVTKEYLE FROM X

H

•
SET THE NUMBER
OF UNITS
THE
COUNTER

=

..J

J

•

•
SET UP TO TPOST
THE NEXT UNIT
TO THE BUFFER
RETURN QCB

NO

K

POST SUB
TPOST THE
BUFFER

K

HM2-2

\;/

•

2

•

•

4

~roqram

Orqanization

641

Chart HM2-2

DESTINATION SCHEDULER - DISK QUEUING ONLY
.-J-,

,

,

,

4

,

HM2-2
At

A

~-~..

REPLACE THE QCB
HIGHEST
PR I OR I TY LEVEL

..

•
B

TEST FOR
I NIT I A TE MODE
NOW ACTIVE

B

•

..

C

C

•
D

D

•

..

E

E

..
F""---'
HM2-2

REUSDUPL

SET UP TO COPY
THI S QTYPE

UPDA TE REUSABLE
DISK DATA SET.
I F NECESSARY

Gt

F

..

•
HM2-3
G

':l

SET UP TO TPOST
TH I S BUFFER TO
THE COPY QCB

G

•

..

H

H

•

.

J

J

•

..

K

K

•
642

3

•

4

•

Chart HM2-3

DESTINATION SCHEDULER - DISK QUEUING ONLY
,.-J-,
HM2-3
AI

•

•

•

•

4

A

•

•
-

B

I

B

•
C

C

•

•
SET THE NEW
QCBFHTZ AND
QCBFHLZ FIELDS

D

MovE THE AVT
ADDRESS VALUE
TO PRFXTRA

D

•
E

•
MOVE QCBDNHDR
TO PRFCRCD AND
PRFCRCD TO
SCBDCHDR

E

•
F

•
MOVE QCBQBACK
TO PRFHQBCK AND
PRFCRCD TO
QCBQBACK

GET THE
TERM I NAL ENTRY
ADDRESS

F

•
G

•
MOVE THE AVT
ADDRESS FIELD
TO QCBDNHDR AND
TO PRFNHDR

MOVE AVT VALUE
OF ADDRESS TO
SCBDNSEG AND TO
PRFNTXT

GET THE QCB
ADDRESS

G

•
H

ADDONE

ADDONE

ADD I TO THE
AVT VALUE OF
ADDRESS

ADD I TO THE
AVT VALUE OF
ADDRESS

MOVE QCBQBACK
TO PRFTQBCK AND
PRFCRCD TO
QCBQBACK

H

•
4
J

FIf'jDSTCB

SAMELAST

GET THE STCB
ADDRESS

EXAMINE THE
MESSAGE AND THE
LCB

J

•
FINDSTCB
K

GET THE STCB
ADDRESS

K

HM2-4

'\Y
•

4

•
Proqram Orqanization

643

Chart HM2-4

DESTINATION SCHEDULER - DISK QUEUING ONLY

,

,

4

,

A

•
B

•
C

•
o

E

CALCULATE Y
AVTRADDR
DIVIDED BY
TOTAL NUMBER OF
. RECORDS

E

.
F

•
CALCULATE X =
TOTAL NUMBER OF
RECORDS DIVIDED
BY 4

F

..
G

G

..

•

H

REPLACE
AVTRADDR WITH Y
- MODULO vALUE

H

..

•

,J

,J

.
K

•
CALCULATE LOAD
POINT = LOAD
POINT + 1/4 THE
TOT AL NUMBER OF
RECORDS

K

•
644

2

•

3

•

4

•

Chart HM2-S

DESTINATION SCHEDULER - DISK QUEUING ONLY

•

•

•

•

4

ACTIVATED BY THE
REUSABI L I TY-COPY

A

A

SUBTASK

..
B

B

..
HM2-3

C

'\Y

C

..
>-..;...-'"

D

GET THE ADDRESS
OF THE WORK
AREA AND OF THE
SCB

D

..
GET THE ADDRESS
OF THE DCB AND
OF THE FIRST
LCB IN THE LI NE
GROUP

E

E

..
YES

>-..;...-'"

FIND THE SCB
ADDRESS AND THE
LCB WITH THE
DIAL SCHEDULER

.
GET THE ADDRESS
OF THE RIGHT
LCB AND SCB

G

G

..
H

H

.
J

J

..
K

K

•

•

4

•
~roqram

Orqanization

645

Chart HM2-6

DESTINATION SCHEDULER - DISK QUEUING ONLY

•

•

•

:3

•

4

A

A

HM2-2.,BI

HM2-I,K5

HM2-2,F2

HM2-3,H2

•
PUT THE BUFFER
ADDRESS IN
REGISTER I

B

GET THE
ADDITIONAL
RECORDS ADDRESS

..
B

.

•
PUT THE QCB
ADDRESS IN THE
BUFFER

C

C

..

•
D

TPOST THE
BUFFER

D

•

..

E

E

•

..

F

F

.
G

G

HM2-:3 ,H I

HM2-7,D4

.

HM2-:3,H4

ADD ONE TO THE
AVT VALUE OF
ADDRESS

H

H

..
J

J

.
K

K

•
646

•

:3

•

4

•

5

Chart HM2-7

DESTINATION SCHEDULER - DISK QUEUING ONLY

,

.,

,

,

4

5

A

•

HM2-3,J2

HM2-I,E4

HM2-3,K5

HM2-7,DI

HM2-3,J5

•

B

B

•

•
REMOVE ELEMENT
FROM THE T I ME
DELAY QUEUE

C

C

•

•
CKDELAYQ

o

REMOVE ELEMENT
FROM TIME DELAY
QUEUE, 1F THERE

CALCULATE
REGI STER 15
ADDRESS of.
OFFSET AT
ADDRESS-2

REPLACE THE
SEND SCHEDULER
STCB

o

TEST FOR A LOCK
RESPONSE
MESSAGE

•

•
BALR

E

14,15

EXECUTE THE
SCHEDULER AT
REGISTER 15

E

•

•
SET UP TO TPOST
THE LCB FOR A
SEND OPERA T 1ON

F

F

•

•

G

G

•
SET X = QCB
ADDRESS AND Y
SEARCH VALUE

H

H

•
YES

>---~

J

REMOVE THE LCB
FROM THE CHA I N

•

•
NOTE: THE BALR

K

J

14, I 5

I N BLOCK E2 CAN ACTI V ATE

THE SUBROUTINE AT BZ-I,A4; EW-3,F'"5; R4-2,AI;
Q6,A3; Q7-2,AI; OR RD-2,A3.

•

MOVE Y TO X;
MOVE THE LCB
INSRCE VALUE TO
Y

4

K

•
uroqram Orqanization

647

Chart Je-I START/STOP ERP CONTROL MODULE

•

•

•

4

•

•

41

8

8

•

41

C

C

•

41

0

U'

•

41

E

E

•

41

F

F

•
G

G

•

41

H

H

•

41

J

J

•

41

K

K

•
648

3

•

4

•

Chart JC-2 START/STOP ERP CONTROL MODULE

,

,

,

4

,

A

•

•

B

B

•
C

C

•

•

D

D

•

•

E

E

•

•
UPDATE THE SDR
COUNTERS

F

F

•
INCREMENT THE
COUNTER

G

G

•

•
RED I AL THE TWX
TERMINAL

H

H

•

•
J

(0

SVC 15 EXECUTE
CHANNEL
PROGRAM

J

•

•

K

K

•

3

4

•
nroqram Orqanization

649

Chart JD-l

READ/WRITE UNIT CHECK AND UNIT EXCEPTION ERP MODULE

,

,

,

4

,

PICK UP THE
NEXT UNIT

A

..
B

B

C

C

..

•

D

D

..

•

E

E

..

•
RECONSTRUCT THE
HEADER BUFFER

F

F

..
I NIT I ALI ZE THE
LCB FOR ERROR
RETRY

G

BUILD THE
WR I TE/T IC
COMMANDS

..

G

•
EXCP RETRY FROM
ERP

H

I NCREMENT THE
RETRY COUNT

EXCP RETRY FROM
ERP

H

..

•

J

J

.

•

K

K

•
650

•

•

4

•

Chart JD-2 READ/WRITE UNIT CHECK AND UNIT EXCEPTION ERP MODULE

,

,

,

4

,

~
•

i'

•

B

B

•
C

C

D

D

•
E

E

•

•

F

RESTART AFTER
THE DIAL LINE
CCW SEQUENCE

F

•

•

G

G

•

•

H

H

•
J

J

•

•

K

K

•

•

4

Proaram Oraanization

651

Chart JE

NON· OPERATIONAL CONTROL UNIT ERP MODULE

,

,

3

,

4

,

A

•
8

8

•

•

C

GET THE LINE ID
F'ROM THE LC8

C

•
0

•
WTO - 'LINE
ID CONTROL
UNIT NOT
OPERATlONAL'

D

..

•

E

E

•

•

F'

F'

•
G

EXCP RETRY EXC?

G

•

•

H

H

•
J

J

•

•

K

K

•
652

2

•

3

•

4

Chart JF

UNIT CHECK FOR NON-READ, NON-WRITE, AND NON-POLL CCW'S ERP MODULE

,

,

3

,

,

A

•

•

8

8

•

•

C

C

•

•

D

D

•

•

E

E

•

•

F

F

•

•

G

G

•

•

H

H

•

•

J

J

•

•
EXCP RETRY THE
LINE

K

•

K

•

4

•
Proqram Orqanization

653

Chart JG
AUTO-POLL AND READ-RESPONSE-TO-POLL UNIT CHECK AND UNIT EXCEPTION ERP
MODULE

•

•

3

•

•

4.

lOEO<:"
A

NO
(

ENTER

I NCREMENT THE
RETRY COUNT

.

A

•
EXCP RETRY THE
LINE

B

B

..

•

C

C

.
0

•
INCREMENT THE
PO I NTER TO THE
FIRST/NEXT
ENTRY

0

..
E

E

..

•
GET THE
INVITATION LIST
AODRESS

F

F

.

•
COMPUTE THE
DATA COUNT

G

G

..

•

H

H

.

•

J

GET THE ADDRESS
OF THE FAILING
CCW

J

.

•
REBUILD THE
FAILING CCW

K

•
654

•

4

Chart JH

ERROR POST AND SECOND LEVEL CCW RETURN MODULE

,

,

,

4

,

GET THE
STATISTICS'
TABLE OFFSET

•

•
B

GET THE NEXT
ENTRY

GET THE
TERM I NAL OFFSET

B

•

•
C

GET THE LINE
NAME

GET THE UCB
ADDRESS

C

•

•

D

D

•

•
GET THE ADDRESS
OF THE CURRENT
INVITATION LIST

E

E

•

•

F

F

•

•

G

ADJUST FOR
BUFSI ZE

G

•

•
H

GET THE DEV ICE
I NFORMA T ION

GET THE ADDRESS
OF THE MESSAGE
WRITER

GET THE ADDRESS
OF THE OBR
ROUTINE

Nlf-A~~....I..

_ _....,

GET THE ADDRESS
OF THE XCTL
ROUTINE

J

H

•
J

•

•
SET THE NUMBER
OF ADDRESSING
CHARACTERS

K

•

K

•

4

•

uroaram Orqanization

655

Chart JI
UNIT CHECK AND UNIT EXCEPTION ON READ/WRITE CCW'S FOR AUDIO AND 2260 LOCAL
DEVICES ERP MODULE

,

2

,

,

4

,

A

•
8

B

•
C

C

•
D

D

•
E

E

•
F

l'

•
G

G

•
H

H

•
EXCP -

J

RETRY 1'ROM
THE

J

APPENDAGE

•
K

K

•
656

2

3

•

4

•

5

Chart 11

START/STOP CHANNEL CHECK ERP MODULE

•

•

•

•

4

•

•

B

B

•

•

C

>---~

GET THE ADDRESS
OF THE ERP I B
"-------,
TABLE

~~ .. ~_I

SA VE THE RETRY
FLAGS

C

•

•

D

D

•

•

E

E

•

•

F

F

G

GET THE ADDRESS
OF THE SEND CCW

G

•
H

•
STORE THE
STARTING
ADDRESS

BUILD A WTO
MESSAGE; SET
THE STATUS BYTE
IN THE CSW

H

•

•
EXCP RETRY THE
EXCP

•

•

K

K

4

.,

Proqram Orqanization

657

Chart JK

CLOSEDOWN TERMINAL STATISTICS RECORDING MODULE

•

•

A

•

4

•

}-

•
GET THE COUNT
OF THE
REMA INI NG
ENTRIES

NO

B

B

•

41

IEDQTNT
NO

GET THE ADDRESS
OF THE TERM I NAL
TABLE ENTRY

C

C

•

41

I NCREMENT TO
THE NEXT ENTRY

D

0

•

41

GET THE
TERMINAL
ADDRESS

E

E

•

41

F

F

•
GET THE XCTL
ADDRESS

G

G

•

41

EXCP RETRY THE
EXCP

H

H

•
J

J

•

41

K

K

•
658

2

..

4

Chart IL-l BSC ERP ·CONTROL MODULE

,

,

,

4

,

5

A

A

B

B

•

•

C

C

•

•

D

D

•

•

E

E

•

•

F

F

•

•

G

Ci

•

•

H

H

•

•

J

J

•

NOTE: EACH BRANCH TO 'LOAOMOO' LOADS

K

NEXT MODULE TO GET CONTROL.

A UNIQUE VALUE IN AN INDEX REGISTER;

•

THIS VALUE IS USED TO LOCATE THE

•

•

4

K

•
Proqram Orqanization

659

Chart JL-2 BSC ERP CONTROL MODULE

,

,

,

,

4

NO

A

EXCP RETRY THE
EXCP

A

•

•

B

B

•

•
GET THE ADDRESS
OF THE SDR
MODULE

C

C

•

•
GET THE
TERM I NAL OFFSET

D

YES

0

•

•
ADJUST THE
FLAGS FOR THE
TERMINAL MASK

E

E

•

•

F

F

•
G

•
GET THE ADDRESS
OF THE
STATISTICS
TABLE

G

•

•
NO

H

GET THE ADDRESS
OF THE NEXT
ENTRY

H

•
J

GET THE NAME OF
THE LINE

DECREMENT THE
RECORDING COUNT

YES

•
K

•
GET T~~EN~~E OF

INCREMENT THE
TEMPORARY ERROR
HANDLER

K

•
660

J

•

4

•

Chart JM-l SSC READ/WRITE EQUIPMENT CHECK, LOST DATA, INTERVENTION REQUIRED, AND UNIT
EXCEPTION ERP MODULE

,

,

,

4

,

..

41

B

B

.

41

C

C

.
BUILD A WRITE
OLE ENQ CCW

0

..

0

41

E

E

.

41

F

F

.

41

G

G

.

41

H

H

•

41

J

J

..
K

41

EXCP RETRY THE
EXCP

K

•

4

Proqram nrqanization

6E 1

ChartJM-2 BSC READ/WRITE EQUIPMENT CHECK, LOST DATA, INTERVENTION REQUIRED, AND UNIT
EXCEPTION ERP MODULE

,

•

•

4

•

A

A

.

•
ASSUME A WRITE
ENQ

e

B

..

•
ASSUME A WR I TE
TEXT RESPONSE

C

C

.

•

0

0

..

•

E

E

..

•
EXCP RETRY EXCP

F

F

..

•
BUILD A READ
CCW

G

G

.

•

H

H

.

•

.)

.)

.

•

K

K

•
662

•

4

•

Chart IN-! BSC READ/WRITE DATA CHECK, OVERRUN, AND COMMAND REJECT ERP MODULE

,

,

,

,

4

ITSOVRN

>---...

BU I LD CCWS FOR
A RETRY

.

..

B

B

..

..

C

C

..

..

o

o

..
E

E

..

..
EXCP RETRY EXCP

F

F

..

..

G

G

. ~~====~-------------J

..

H

H

..
J

.. L..-_ _ _ _ _

..

~

K

K

..

..

4

Proqram Orqanization

663

Chart IN-2 BSC READ/WRITE DATA CHECK, OVERRUN, AND COMMAND REJECT ERP MODULE

,

,

4

A

,

A'

•
BU I LD THE CCWS
FOR RETURN

B

B

•
I NCREMENT PAST
THE DI AL
SEQUENCE

C

C

JNI
D4

D

D

'.
SET THE TIC
ADDRESS

E

E

•
F

GET THE ADDRESS
OF THE DEY I CE
CHARACTERISTICS
TABLE

SET THE COUNT

F

G

G

H

H

•
J

•
K

•
664

4

Chan JO

BSC SECOND LEVEL CCW RETURN MODULE

,

,

,

,

4

A

•

..

B

B

•

..
NO

C

C

•

..

D

D

•

..

E

E

•
F

CLEAR THE FIRST
SENSE BYTE

F

..

•
G

>---...

EXCP RETRY EXCP

GET THE CURRENT
POLLI NG ENTRY

RESTORE THE
DATA ADDRESS

G

..

•
REBUILD THE
FAILING CCW

H

H

•

..

J

J

•

..
GET THE ADDRESS
OF THE XCTL
ROUTINE

K

2

•

•

K

4

D.roqram Orqanization

665

Chart JP

BSC ERROR POST MODULE

,

,

,

4

,

IEDQTNT
GET THE
TERM I NAL ENTRY
ADDRESS

A

..

A

•
IN I TI ALI ZE THE
REGISTERS FOR
THE OBR ROUT I NE

GET THE ERROR
STATISTICS
TABLE INDEX

B

B

..
I NCREMENT TO
THE NEXT
STATISTICS
TABLE ENTRY

NO

C

C

..

•
SET THE
VAR I ABLES FOR
THE ERROR
MESSAGE

D

GET THE OPTION
ENTRIES

..

•
YES

GET THE DIAL
DIG ITS FROM THE
TERMINAL ENTRY

E

E

.

•
ADJUST FOR THE
BUFFER SIZE

GET THE CURRENT
INVITATION LIST
ENTRY INDEX

F

G

D

I NIT I AL I ZE THE
REG I STERS FOR
THE IEDQTNT
ROUTINE

YES

INITIALIZE THE

>----<~ ERROR PARAMETER

F

G

POINTER

.
PACK THE DIAL
DIGITS

H

..

H

•
J

..

•
SET THE
ADDRESSING
CH.ARACTERS

K

2

666

•

•

4

K

Chart JQ

BSC CHANNEL CHECK ERP MODULE

,

,

,

,

4

A

A

..

•

B

B

.

•
YES

r;;";"--'"

C

GET THE ADDRESS
OF THE FIRST
ERPIB

C

..

•
THE RETRY
FLAGS

D

D

..
E

•
GET THE XCTL
ADDRESS

E

•
F

F

..

•
YES

G

VER I FY THE CCW
ADDRESS; SAVE
THE ENDING
STATUS

..
H

G

•
CHECK THE RETRY
COUNT

H

..

•
EXCP RETRY FROM
THE::
APPENDAGE

J

J

..

•

K

K

4

nroqrarn Orqanization

667

Chart KA-l

ACTIVATE-I/O GENERATOR SUBTASK

•

3

•

4

•

THIS CHART ALSO
t - - - - - - I A P P L I E S TO MODULES
A

RO-B,GS

Q3-6,GS

RO-9,F2

Q3-7,F2

Q2-B,GS

Q4-S,GS

,---'---

I EDQKB,

I EDQKC,

I EDQKIJ,

AND I EDQKE

A

41

QS-6,GS

B

B

41

C

CALCULATE THE
TERMNAME TABLE
OFFSET

C

41

D

D

41

EXPAND
E

EXECUTE THE
EXPAND
SUBROUTINE

E

41

EXCP EXECUTE THE
CHANNEL
PROGRAM

F

F

41

G

G

41

H

H

41

J

J

41

K

K

•
668

•

•

4

•

Chart KA-2 ACTIV ATE-I/O GENERATOR SUBTASK

,

,

,

4

,

KA-l,E3

KA-2,E3

•

•
SET THE ADDRESS
OF THE MODEL
CHANNEL PROGRAM
TABLE

B

GET THE ADDRESS
OF THE CCW AREA

B

•

•
GET THE CORRECT
CCWS

C

C

•

•
SET THE DATA
COUNT

D

D

•
EXPANDER
E

EXECUTE THE
EXPANDER
SUBROUTINE

E

•

•
SET THE DATA
ADDRESS

F

F

•

•
G

G

SET THE OP CODE

•
H

H

•
POINT TO THE
NEXT ENTRY IN
THE MODEL TABLE

J

J

•

•

K

K

•

2

•

•

4

5

Proqram orqanization

6E9

Chart LA

OPEN ERROR HANDLER

,

,

,

4

,

A

•

..

B

B

C

WTO - WR ITE
THE ERROR
MESSAGE

C

.

•
D

LOAD THE EXIT
LI ST ADDRESS

D

.
E

E

•

..

F

SAVE AND
RESTORE THE
REGISTERS

RESTORE THE
REGI STERS

F

•
G

SPEC IFY THE
OPT IONS
AVAILABLE

G

H

SYNCH - GO
TO THE USER
EXIT

H

•

..

J

J

•
K

•
610

2

•

•

4

•

Chart LB

DISK MESSAGE QUEUES OPEN ROUTINE - LOAD 1

•

2

•

•

4

•

A

CALCULATE THE
NUMBER OF
EXTENTS FOR
THIS DATA SET

B

B

•

•

C

C

•

•

D

NO

D

•
E

•
SET THE
APPROPR lATE
QUEUING
CONSTANT

CALCULA TE THE
NUMBER OF UCBS

E

•
CALCULATE THE
SIZE OF THE DEB

F

F

•
G

•
GETMA IN
STORAGE FOR
THE DEB

YES

G

•
H

H

•
INITIAL! ZE THE
DEB

J

J

•

•

K

•

4

Proqram Orqanization

671

Chart LC

DISK MESSAGE QUEUES OPEN ROUTINE· LOAD 2

,

,

,

4

,

A

A

•

.

8

8

•

..
I NIT I ALI ZE THE
FIRST/NEXT DE8
EXTENT

C

C

•
D

D

•

..

E

E

•

..
SET THE QUEU I NG
CONSTANTS FOR
REUSA8LE AND
NONREUSABLE
DISK QUEUING

F

F

..

•
DETERM I NE THE
SIZE OF THE 108
AREA

G

G

..

•
GETMAIN
MAIN
STORAGE FOR
AN 108 AREA

H

H

•
INITIALIZE THE
108 AREA

J

..

•
K

•
672

J

•

4

Chart LD

DISK MESSAGE QUEUES OPEN ROUTINE - LOAD 3

•

•

•

4

•

5

A

A

•

..

B

B

•

..
LOAD THE
REGULAR
TCAM
DISPATCHER
(IGGO 19RB)

C

C

..

•
0

LOAD TCAM
DISPATCHER
WITH
SUBTASK
TRACE

0

•

..

E

E

..
F

F

•

..
LOAD EXCP
DR I VER AND
DISK END
APPENDAGE

G

G

•

..

H

H

•

..

J

J

•

.

K

LOAD THE
REUSABILI TV ICOPY
SUBTASK

K

•

•

•

4

•
?roqram orqanization

673

Chart LE

LINE GROUP OPEN ROUTINE., LOAD 1

,

,

,

4

,

5

A

•

•
ASS I GN BUFFERS
FOR RECEIVE
OPERATIONS

B

B

•

•
INITIALIZE THE
DEB AND THE DEB
EXTENTS

ASS I GN BUFFERS
FOR SEND
OPERATIONS

C

C

•

•
ASSIGN BUFFERS
FOR DATA
TRANSFER

D

0

•

•
ASSIGN A PCI
VALUE

E

E

•

•
F

=

MAKE BUFMAX
THE LARGER OF
BUFIN OR BUFOUT

F

•

•
G

CALCULA TE THE
ADDRESS OF A
TYPICAL ENTRY
_ IN THE OCT

CALCULA TE THE
NUMBER OF LI NE
UNITS IN A
BUFFER

G

•

•
H

CLEAR A
REGISTER FOR
THE CHANNEL
PROGRAM SIZE

CALCULATE THE
NUMBER OF LI NES
IN THIS LINE
GROUP

H

•

•
J

CALCULA TE THE
SIZE OF THE DEB

J

•

•
K

GETMAIN
MAIN
STORAGE FOR
THE DEB

•
67q

•

4

Chart LF

LINE GROUP OPEN ROUTINE - LOAD 2

•

•

•

4

•

A

•

41

B

B

•

41

SET THE SIZE OF
THE CHANNEL
PROGRAM

C

C

•
D

41

ALLOW 2 CCWS
FOR THE
READ I SK I P LOOP
AND THE BRANCH
TO DEV I CE TEST

D

•
E

41

SET THE CHANNEL
PROGRAM SIZE
FOR THE DEV I CE
BE I NG OPENED

2141,

1050,

1030,

TWX,

2140,

115A,

BSC,

2260 LOCAL,

E

OR 1110

•
F

41

DETERM I NE THE
SIZE OF THE LCB
AREA

F

•
G

41

GETMAIN
MAIN
STORAGE FOR
THE LCB

G

•
H

41

GET THE ADDRESS
OF THE
DESTINATION QCB
FOR TH I S LI NE

PUT THE SEND
SCHEDULER STCB
IN THE STCB
CHA IN OF THE
DESTINATION QCB

H

•

41

.J

.J

•

41

K

K

•

•

4

•
~roqram

Orqanizaticn

67 '5

Chart LG

LINE GROUP OPEN ROUTINE - LOAD 3

•

•

,

4

•

A

.

•

a

B

.

•

c

CLEAR AN Lca

..
D

INITIALIZE AN
Lca

D

..

•

E

E

.. , . . . . . - - - - -..1

•

F

GET THE
DEST INAT I ON Qca
ADDRESS FOR
THI S LINE

F

•
G

r~--o'"

MOVE THE SEND
SCHEDULER STca
TO THE STCB
CHAIN OF THE
Lca

G

•
H

H

•
..J

J

.

•

K

•
676

•

•

4

Chart LH

LINE GROUP OPEN ROUTINE - LOAD 4

•

•

•

•

4

A

•

•

B

B

•

•

C

BUILD A NOP
CHANNEL PROGRAM

C

•
0

•
MOD I FY THE UCB
ERRORTAB AND
ATTENTION
FIELDS

o

•

•

E

E

•

•
YES

BUILD A SAD

~;;..;....-... CHANNEL COMMAND

F

•

F

•
YES

G

BUILD A SET
MODE COMMAND

G

•

•

H

H

•

•

,J

,J

•

•

K

•

•

4

•
Proqram Orqanization

677

Chan LI

LINE GROUP OPEN ROUTINE - LOAD 5

,

2

,

3

,

4

,

A

A

..

•

e

B

.

•

C

LOAD THE
TCAM
DI SPATCHER

C

..
LOAD THE
STARTUP
MESSAGE
ROUTINE
(IGGO 19R6)

YES

D

D

..

•
LOAD THE
2260 LOCAL
RECEIVE
SCHEDULER
(IGGO 19Q1)

YES

E

E

.

•
LOAD THE
BUFFERED
TERMINAL
SCHEDULER
( IGGOI9RD)

YES

F

F

.
G

•
LOAD THE
START/STOP
RECEIVE
SCHEDULER

G

..

•

H

H

.

•

J

J

.

•

K

K

•
678

•

3

•

4

•

Chart LJ

LINE GROUP OPEN ROUTINE - LOAD 6

•

•

•

4

•

A

A

B

B

•
LOAD THE
SEND
SCHEDULER
(lGGO 19R4)

C

C

•
D

D

LOAD THE
DIAL
SCHEDULER
(IGGO 19R 1 )

YES

E

E

F

LOAD THE
APPROPR I ATE
LINE END
APPENDAGE

F

G

LOAD THE
SPEC I AL
CHARACTERS
FOR THE
LINE GROUP

G

EXCP START 110
ON A LINE

H

•
H

•
J

J

•
K

•

•

•

4

Droqram Orqanization

679

Chart LK.

LINE GROUP OPEN ROUTINE - LOAD 7

,

,

3

,

4

,

A

•
B

TIME - GET
THE CURRENT
TIME OF DAY

B

•

•

C

C

•

•
YES

0

I NIT I ALI ZE THE
APP~OPR I ATE
ENTRIES

0

•

•
YES

E

E

•

•
YES

F

WTO - WRITE
AN ERROR
MESSAGE

F

•

•
G

TIME - GET
THE CURRENT
TIME OF DAY

G

•

•

H

H

•

•

J

J

•

•

K

K

•
680

•

4

Chart LM

RETURN INTERFACE ROUTINE

•

•

•

4

•

B

B

c

c

o

o

E

E

•

G

G

•
H

H

J

J

K

4

•
Proqrarn Orqani7ation

E 81

Chart Ll

DISK MESSAGE QUEUES CLOSE ROUTINE

•

•

•

4

•

A

•
B

•
GET THE FIRSTI
NEXT DEB
ADDRESS FROM
THE TCB CHA IN

B

•

•
C

GET THE DCB
ADDRESS FROM
THE DEB

•

•

D

D

•
E

E

•

•
FREEMA IN
lOBS FOR
THI S DCB

F

F

•

•
FREEMAIN
ALL TRACE
TABLES

G

G

•

•
H

GET THE NEXT
DEB ADDRESS

FREEMAIN
THE ·MSG
QUEUES AND
LINE
BUFFERS

H

•

•
J

FREEMA IN
THE CPBS

J

•

•
K

FREEMA IN
THE CROSS
REFERENCE
TABLE

III

682

4

III

Chart L4

LINE GROUP CLOSE ROUTINE - LOAD 1

•

2

•

•

4

•

5

A

A

•

•

B

B

•

•
SET THE EXCP
PARAMETERS

C

C

•

•
ISSUE EXCP
ON THE
FIRST LINE

D

D

•

•
WAIT FOR
EXCP TO
COMPLETE

E

E

•

•
SET THE XCTL
PARAMTERS

YES

F

F

•

•
YES

G

G

•

•

H

LOAD AN ABEND
CODE

H

•

•
J

ABEND
ROUTINE

J

•

•
NO

K

K

•

•

3

4

•
Proqram Orqanization

683

Chart L5

LINE GROUP CLOSE ROUTINE - LOAD 2

,

,

,

2

4

,

A

•
B

B

•
C

INCREMENT THE
LOOP COUNTER

C

D

GET THE FIRST
DEB ADDRESS

D

•
E

E

•
F

INCREMENT THE
COUNT OF TCAM
DEBS

F

•
NO

GET THE ADDRESS

FREEMAIN
THE LCBS
FOR LI NES
IN THIS
LINE GROUP

YES

>-;.....,.-~ OF THE CURRENT

G

DEB

G

•
H

GET THE ADDRESS
OF THE NEXT DEB

ZERO THE AVT
POINTER IN THE
DI SPATCI:tER
PREFI X

PURGE I/O ON
ALL LINES

DISABLE ALL
LI NES IN THE
LINE GROUP

REMOVE THE
LI NES FROM THE
CROSS REFERENCE
TABLE

WAIT FOR
THE DISABLE
TO COMPLETE

RECHAIN THE
CROSS REFERENCE
ENTRIES

H

•
,J

FREEMAIN
THE CROSS
REFERENCE
TABLE

,J

•
10SGEN - TO
RESET THE
ERROR AND
ATTN TABS
IN THE UCB

K

•

684

4

K

•

Chart L6

CHECKPOINT CLOSE ROUTINE

•

•

•

•

4

A

.

•

8

8

..

•
NO

C

SET THE FLAG IN
THE CONTROL

GET THE
CONVERSION
ROUTINE

RECo~g~ E~~ UP

C

.
o

•
GET THE ADDRESS
OF THE
CHECKPO I NT WORK
AREA FROM
AVTCKELE

WTO - 01 SK
ERROR

D

.

•

E

J'""-~'"

GET THE LENGTH
OF THE
CHECKPO I NT WORK
AREA

FREEMAIN FREE UP THE
CHECKPOINT
WORK AREA

EXCP WRITE THE
CONTROL
RECORD

..
F

E

•
DELETE DELETE THE
CHECKPOINT
01 SK END
APPENDAGE

WAIT - FOR
110 TO
COMPLETE

F

..

•

G

G

..

•

H

H

.

•

J

J

•
K

•

4

•

5

Proqram OrQani2ation

685

Chart L7

GET/PUT AND READ/WRITE OPEN EXECUTOR - LOAD 1

•

•

•

LINK THE DEB TO
USER DCB

A

•

4

BUILD A SPECIAL
ELEMENT FOR THE
OPEN/CLOSE
SUBTASK

•

•
GETMAIN
STORAGE FOR
ACCESS
METHOD WORK
AREA

B

BUILD THE AQCTL
PARAMETER LIST

B

•

•
C

PROCESS FOR
ABNORMAL
TERM I NA TI ON

INITIALIZE THE
ACCESS METHOD
WORK AREA

IGC102
ACTIVATE THE
OPEN/CLOSE
SUBTASK

C

•

•
0

SET UP TO XCTL
TO IGG01933 FOR
ERROR
PROCESSING

GET THE AVT
ADDRESS FROM
THE CVT

LINK THE ACCESS
METHOD WORK
AREA TO THE DEB

WAIT FOR
THE
OPEN/CLOSE
SUBTASK TO
TERMINATE

0

•

•
E

DETERM I NE THE
ACCESS METHOD
ROUTINE
REQUIRED

GET THE QNAME
ADDRESS FROM
THE OPEN WORK
AREA

E

•

•
F

BUILD A
TERMNAME T ABI.E
SCAN PARAMETER
FOR THE USER
INTERFACE RTN

LOAD THE
APPROPR I ATE
MODUI.:E &
PUT ADDR IN
THE DCB

SAVE THE
REGISTERS FOR
LOAD 2 IN THE
WORK AREA

F

•

•
IEDQUI
G

YES

ACTIVATE IEDQAl
TO SEARCH THE
TERMNAME TABLE

GET THE ADDRESS
OF THE OPEN
WORK AREA

•

•
LOAD THE
POINT
MODUI.E &
PUT ITS
ADDR IN DCB

H

SET UP THE
WHERE-TO-GO
TABLE

H

•
.;

•
GETMAIN
MAIN
STORAGE FOR
THE DEB

SET UP TO XCTL
TO THE NEXT
ROUTINE

.;

•

•
K

INITIALIZE THE
DEB AND PLACE
IT IN THE TCB
CHAIN

LOAD THE
CHECK
MODULE &
PUT ITS
ADDR IN DCB

•
686

G

4

•

Chart L8

GET /PUT AND READ/WRITE OPEN EXECUTOR - LOAD 2

,

,

,

,

4

A

•
B

B

•
C

COMPLETE THE
DEB AND PROCESS
ENTRY WORK AREA
I N IT I AL I ZATI ON

C

•
I NI T I ALI ZE THE
ERB AND THE SCB
FOR READ-AHEAD

o

o

•

>---...

BU I LD THE AQCTL
PARAMETER LI ST

E

YES

COMPUTE UN I TS
PER BUFFER AND
STORE THE
RESUL TIN THE
PCB

E

•
F

MOVE THE GET
SCHEDULER STCB
TO THE
DESTINATION QCB

---8

YES
GET THE ADDRESS ...
>-....;...-...
OF THE OPEN

TPOST THE ERB
TO THE 0 I SK I 10
QCB

WORK AREA

1

F

•
SET UP THE
WHERE-TO-GO
TABLE

G

G

•
SET UP TO XCTL
TO THE NEXT
ROUTINE

H

H

.J

.J

•
K

IEDQNB05

STORE THE WORK
AREA ADDRESS IN
THE DEB

TAKE AN MCP
CHECKPOINT

•

K

•

4

•
Proaram Orqanization

687

Chart L9

GET/PUT AND READ/WRITE CLOSE EXECUTOR - LOAD 1

•

•

•

3

•

4

A

A

•
REMOVE GET
SCHEDULER STCB
FROM THE CHA I N

B

B

•
C

C

•

•
MOVE THE
ELEMENT ACROSS
THE PARTITION
BOUNDARY

0

FREEMA IN
THE LOCATE
MODE WORK
AREA

YES

0

•

•
SET UP
PARAMETERS TO
POST THE MCP
ECB COMPLETE
WITH SVC 102

E

REMOVE THE DEB
FROM THE TCB
DEB CHAIN

E

•

•
F

IGCI02

SET THE EOM
I NO ICATOR IN
THE BUFFER
PREFI X

SVC 102 ·TO POST
THE MCP ECB
COMPLETE

FREEMAIN
THE DEB

F

•

•
IEDQNB05
G

NO

WAIT FOR
OPEN/CLOSE
SUBTASK TO
COMPLETE

PUT THE MH
ADDRESS IN THE
BUFFER PREF I X

TAKE A
CHECKPOINT

•

•
H

G

DETERM I NE THE
LOADED ACCESS
METHOD MODULES

BU I LOA SPEC I AL
E;LEMENT FOR
OPEN/CLOSE

H

POST THE
CLOSEDOWN ECB
COMPLETE

•
J

~~~b~UEMOX~6

DELETE THE
LOADED
MODULES

TPOST THE AQCTL
PARAMETER LI ST

RESTORE THE DCB
TO I TS PRE-OPEN
STATUS

J

•

•
FREEMAIN
THE ACCESS
METHOD WORK
AREA

K

•
688

2

K

•

4

•

Chart LIO

GET/PUT AND READ/WRITE CLOSE EXECUTOR - LOAD 2

•

•

3

•

•

4

5

A

•
8

O~~~ ~g~K ~~~A.

GET THE AVT
ADDRESS

A~~O~~~sp~g~ESS

B

DEB ADDRESSES

•
YES

C

GET THE DCB
ADDRESS

C

•

•
C

D

I NCREMENT TO
THE NEXT LCB
AND TO THE NEXT
WHERE-TO-GO
TABLE ENTRY

IEDQTNT

THE NEXT
FROM THE
CHAIN

GET THE PROCESS
ENTRY ADDRESS

•

D

•
GET DESTINATION
QCB ADDRESS AND
RESET THE
PROCESS ENTRY
USE FLAG

E

GET THE ADDRESS
OF THE LCB AND
. OF THE sce

E·

•

•

F

F

•

•

G

RESET THE WTG
AND DCB LIST
POINTERS.TO THE
START Of' THE
LISTS

CLEAR THE ID IN
THE WHERE-TO-GO
TABLE

G

•

•

H

H

•

•
SET UP THE SVC
102 PARAMETER
LI ST TO TPOST
THE Lce TO
ITSELF

..J

..J

•
IGel02

K

TPOST Lce TO
ITSELF & PUT IT
ON READY QUEUE

K

•

•

4

•
Proqram Orqanization

689

Chart MA

CHECKPOINT OPEN ROUTINE

•

2

•

•

4

•

A

GET THE AVT
ADDRESS FROM
THE DCB

B

B

.

•

C

GET THE DCB
ADDRESS FROM
THE PARAMETER
LIST

INI TI ALI ZE THE
CHECK PO I NT WORK
AREA

GET CKREQS AND
CPRCDS FROM THE
INTRO MACRO

SET UP THE lOB
AND THE CHANNEL
PROGRAM

CALCULATE THE
SIZE NEEDED FOR
THE CHECKPO I NT
WORK AREA

FILL IN THE
APPENDAGE TABLE
IN THE DEB
PREFIX

.
o

D

.
E

WTO - SEND
THE IED0561
MESSAGE

E

.
GETMAIN PUT THE
WORK AREA
'ADDRESS IN
AVTCKGET

MOVE THE
CHECKPOINTED
V ALUE FROM THE
CONTROL RECORD
TO AVTNCKPR

LOAD - THE
CHECKPOINT
01 SK END
APPENDAGE

.
SET UP THE 10
AND TTR FOR A
WARM RESTART

G

.

G

YES

MOVE THE
CHECKPOINTED
V ALUE FROM THE
CONTROL RECORD
TO AVTCPRCD

GET THE LENGTH
OF AN
ENVIRONMENT
RECORD

H

H

.
GETMAIN PUT THE 1/0
AREA AODRESS INTO
CKPEXCP

SET UP THE 10
AND TTR FOR A
COLO RESTART

J

J

..

•

K

..
690

2

..

4

•

Chart MB-l CHECKPOINT DISK INITIALIZATION ROUTINE

•
IGG01942
ENTER

A

)

•

2

~m

•

3

•

4

SAVE THE
MAX I MUM NUMBER
OF ENV IRONMENT
CHECKPOINT
RECORDS

VALUE < VALUE
IN CPRCDS

NO

GET THE
INI TI ALI ZED
REG I STERS FROM
T.HE CHECKPO I NT
WORK AREA

B

-

SAVE THE VALUE
SPECIFIED IN
CPR CDS

~
,

I
YES

C

MB2
F4

IS THE
X'OS' BIT
ON IN
CKPFLAGS

NO

IS THE
# OF ENVIRONMENT
RECORDS <
2

---

NO

INITIALIZE THE
COUNT AREA OF
THE RECORD

FOR CKREQS
ON SAME TRK
AS ERROR
RECS

YES

CONVERT
GET ABSOLUTE
DISK ADORES S OF
CONTROL RECORD

MB-2 A:
EXCP
E

WRITE THE
CONTROL RECORD

F

CALCULATE THE #
OF ENV IRONMENT
RECORD SEGMENTS
THA T CAN BE PUT
IN THE DATA SET

G

CALCULATE THE
RELATIVE SIZE
OF ENVIRON RECORO SEGMENTS &
I NC I DENT RECS

H

GET NUMBER OF
CKREQ RECORDS
REQUIRED
(CKREQS ON THE
I NTRO MACRO)

J

CALCULATE THE #
OF RECORDS THAT
CAN BE USED FOR
ENV IRONMENT
RECORD SEGMENTS

K

01 VIDE # OF
RECORDS BY # OF
SEGMENTS NEEDED
FOR ONE ENV I RONMENT CKPO I NT

B

INITIALIZE # OF
RECORDS TO BE
WRITTEN ON THIS
TRACK TO # OF
CKREQ RECS I TRK

NO

WTO - SEND
THE IEDOO91
MESSAGE

~

GET THE NUMBER
OF RECORDS PER
TRACK

SAVE THE TTR OF
FIRST CKREQ
RECORD AND # OF
CKREQ RECORDS
ON I ST TRACK

SUBTRACT I FROM
THE NUMBER OF
RECORDS PER
TRACK (FOR
CONTROL RECORD)

GET THE
BEGINNING
ADDRESS OF THE
CKREQ-TTR TABLE

1

G4

1

MB-2 A

SUBTRACT I FROM
THE NUMBER OF
ENVIRONMENT
CHECKPOINTS

LOOP
WR I TE ALL CKREQ
RECORDS

~
COUNT

=

ZERO

NO

•

•

E

LOOP
WRITE INCIDENT
RECORDS ON
REMAINING SPACE

F

PUT THE NUMBER
OF INCIDENT
RECORDS I N THE
CONTROL RECORD

G

J

1
I N I TI ALI ZE THE
COUNT AREA OF
THE RECORD

I NCREMENT TO
THE NEXT TTR
SLOT

SAVE THE NUMBER
OF RECORDS ON
THE FIRST TRACK

1

GET THE TOT AL
NUMBER OF CKREQ
RECORDS TO BE
WRITTEN

WR I TE ALL SEGMENTS FOR ONE
ENV I RON CKPT

D

MB-2 A

1

MB-2 A

SAVE THE TTR OF
THE FIRST
INCIDENT RECORD

1

TURN ON THE
'CKREQ' FLAG

LOOP

roo-

1

1
PUT THE TTR OF
THE ENV IRONMENT
CHECK PO I NT IN
THE CONTROL
RECORD

C

I

YES

.M8-.2.A·

o

GET THE NUMBER
OF CKREQ
RECORDS PER
TRACK

J

CLEAR THE
SECT I ON OF THE
CHECKPOINT WORK
AREA USED BY
OPEN

H

1
CLEAR THE
WHERE-TO-GO
ENTRY

1

TURN OFF THE
'CKREQ' FLAG

XCTL TO THE
NEXT ENTRY IN
THE WTG TABLE

K

I

4

Proqram Orqanizaticn

6CJ1

Chart MB-2 CHECKPOINT DISK INITIALIZATION ROUTINE

•

2

•

3

•

•

4

(

CONVERT

)-

A

MB-I,DI

•

MB-2,HI

POS I TI ON THE
TTR IN REGISTER
0

MOVE THE TTR TO
THE CKREQ-TTR
TABLE

B

..

•
EXCP
C

B

GET THE ADDRESS
OF THE NEXT
CKREQ-TTR SLOT

WRITE ONE
RECORD

IECPCNVT PUT ABSOLUTE DISK
ADDRESS IN
COUNT AREA

EXCP WRITE A
RECORD

•
SUBTRACT I FROM
THE NUMBER OF
RECORDS PER
TRACK

0

WAIT - FOR
1/0 TO
COMPLETE

0

..

•
GET THE TTR OF
THE FIRST
RECORD ON THE
NEXT TRACK

E

E

..

•
MOVE THE
ABSOLUTE DISK
ADDRESS FROM
THE COUNT AREA
TO THE lOB

F

INI TI ALI ZE THE
NUMBER OF
RECORDS PER
TRACK

F
MB-2, J I

•
G

ADD ONE TO THE
TTR

G

..

•
CLEAR THE
SECT ION OF THE
CHECKPOINT WORK
AREA USED BY
OPEN

CONVERT
H

UPDATE ABSOLUTE
DISK ADDRESS IN
COUNT AREA

..

•
SUBTRACT ONE
FROM THE TOTAL
NUMBER OF
RECORDS TO BE
WRITTEN

J

CLEAR THE
WHERE-TO-GO
ENTRY

J

..

•
K

•
692

H

•

•

4

Chart ME-l CHECKPOINT/RESTART FROM ENVIRONMENT RECORD ROUTINE

•

•

•

4

•

A

A

•
B

B

..

•
GET VALUE OF
INTRO OPERAND
'CPRCDS'; GET
CURRENT ENV I RON
CKPT RECORD

C

..
0

•
GET DOWN LEVEL
FOR RESTART
( I NTRO OPERAND
RESTART)

0

..
E

•
SUBTRACT DOWN
LEVEL VALUE
FROM NUMBER OF
CURRENT RECORDS

E

..

•
ADD THE VALUE
OF CPRCDS

NO

F

F

•
G

GET THE ADDRESS
OF THE TTR FOR
THE RECORD

G

..

•
SAVE THE
ADDRESS OF THE
TTR

H

H

..
J

•
SUBTRACT FROM #
OF AVAILABLE
RECORDS; SET
DOWN ·LEVEL
VALUE TO 1

J

..

•
TURN ON
CKPFLAGS BIT
X'OS'; SET UP
10 FOR IGGOl942
IN WTG TABLE

K

•

•

•

4

•
Proaram Orqanization

693

Chart

ME~2'

CHECKPOINT/RESTART FROM ENVIRONMENT RECORD ROUTINE

•

•

3

•

4

•

ME2
81
UPDATE THE
STATUS FIELD;
MOVE TO THE
NEXT FIELD IN
THE DISK RECORD

A

•
8

GET THE # OF
TERMNAME T A8LE

~~~R [~~& T~E6F

CHECK FOR THE
END OF THE DISK
RECORD

THE NAMES

8

•
C

•
GET THE ADDRESS
OF THE TERM I NAL
ENTRY

UPDATE MASTER
QC8 AND SEGMENT
FIELDS; MOVE TO
NEXT FIELD IN
DISK RECORD

D

E

CHECK

GET THE NEXT
TERMNAME ENTRY

UPDATE THE
OPTION FIELD

CHECK FOR THE
END OF THE DI SK
RECORD

CHECK FOR THE
END OF THE DI SK
RECORD

UPDA TE THE LC8
FIELDS; MOVE TO
THE NEXT FIELD

D

UPDA TE THE DC8
F I E.LDS; MOVE TO
THE NEXT FIELD

E

•
F

•
SU8RACT ONE
FROM THE NUM8ER
OF TERMNAME
ENTRIES

UPDATE PR I OR I TY
LEVEL QC8; ADD

L~~~T~h~ObTs~O

CHECK FOR THE
END OF THE DISK
RECORD

CHECK FOR THE
END OF THE DISK
RECORD

RECORD FIELD

F

•
GET THE NEXT
OPT! ON FIELD

G

•
H

H

•
TURN ON THE
• CHKPT' SW ITCH·;
GET THE LENGTH
OF THE LIST;
UPDATE THE LI ST

GET THE NEXT
PRIORITY LEVEL
QC8

J

J

•
CHECK FOR THE
END OF THE
RECORO

•
694

2

•

•

4

•

Chart ME-3 CHECKPOINT/RESTART FROM ENVIRONMENT RECORD ROUTIN~

•

•

•

3

•

4

ME-2,B2,E2,F3,E4,G4,F5,K5

•

•

B

B

•
C

C

•

•
IECPCNVT GET ABSOLUTE DISK
ADDRESS &
PUT IN lOB

o

0

•

•
EXCP - READ
A RECORD
SEGMENT

E

E

•

•
WAIT -

FOR
1/0 TO
COMPLETE

F

F

•
G

G

•

•

H

ADD ONE TO THE
TTR

NO

CLEAR THE TTR
I N THE CONTROL
RECORD TO
INDICATE A DISK
ERROR

WTO - SEND
THE IED0831
MESSAGE

YES

•

H

•
SET THE TTR TO
THE FIRST
RECORD ON THE
NEXT TRACK

..J

..J

•

•
PUT LATEST
I NC I DENT TTR
(FROM ENV I RONMENT REC) IN
CONTROL RECORD

K

•

•

4

•
Proqram orqanization

695

Chart

MG~ 1

CHECKPOINT/RESTART FROM INCIDENT AND CKREQ RECORDS ROUTINE

•

•

3

•

4

•

A

•
B

B

•

•
YES

C

GET THE VALUE
OF THE INTRO
OPERAND

C

•
D

•
GET TTR OF THE
LAST INCIDENT
RECORD AT THE
TI ME OF THE ENVIRON CKPOINT

GET THE DDNAME
AND RELA T I VE
LINE NUMBER
FROM THE
I NC I DENT RECORD

GET THE TTR OF
THE LAST
I NC I DENT RECORD
ON THE SAME
TRACK

INITIALIZE FOR
A LOOP THROUGH
THE TERMNAME
TABLE

TTR

GET THE
ADDRESSES OF
THE TERM I NAL
ENTRY. THE QCB.
AND THE DCB

D

•
E

•
GET THE TTR OF
THE FIRST CKREQ
RECORD

E

•
F

GET THE TTR OF
NEXT SEQUENTIAL
I NC I DENT RECORD

F

•
EXCP

G

NO

READ THE
I NC I DENT RECORD

GET THE NEXT
TERMNAME ENTRY

G

•
H

•
PUT THE LINE
STATUS IN
QCBLINK FOR
LINE OPEN

H

•
SET BIT TO
X'Of' TO
PROCESS THE
RECORD AT READY
TIME

J

J

•
K

•
696

3

•

4

•

Chart MG-2

CHECKPOINT /REST ART FROM INCIDENT AND CKREQ RECORDS ROUTINE

•

•

•

•

4

GET THE NUMBER
OF CKREQ
RECORDS ON THE
FIRST TRACK

..
B

B

C

..
D

READ THE CKREQ
RECORD

D

MOVE THE TTR
AND TERMNAME
OFFSET TO THE
CKREQ-TTR TABLE

E

..
E

..
F

GET THE NEXT
ENTRY IN THE
TABLE

F

..
TTR

SUBTRACT ONE
FROM THE NUMBER
OF CKREQ
RECORDS

GET THE TTR OF
THE NEXT CKREQ
RECORD

G

G

..
H

GET THE ADDRESS
OF THE TERM I NAL
ENTRY

H

K

GET THE ADDRESS
OF THE OPT I ON
FIELD IN THE
DI SK RECORD

YES

J

OPTIONS
UPDATE THE
OPTION FIELDS

J

UPDATE THE
SEQUENCE

~~~~~~~s.Dl~~

MESSAGE COUNT

•

•

•

4

Proqram Orqanization

E97

Chart MG-3

CHECKPOINT/RESTART FROM INCIDENT AND CKREQ RECORDS ROUTINE

•

•

3

•

•

A
MG-2,Hl

MG-2"J4

•
B

C

o

GET THE NUMBER
OF OPTION
ENTR I ES; GET
THE ADDRESS OF
THE FIRST ENTRY

B

GET THE OPT I ON
LENGTH TABLE

GET THE ADDRESS
OF THE TERMNAME
TABLE

GET THE ADDRESS
OF THE OPT I ON
ENTRY; GET THE
LENGTH OF THE
OPTJ ON ENTRY

GET THE ADDRESS
OF THE TERM I NAL
ENTRY

D

•

•
NO

>---~

E

GET THE ADDRESS
OF THE NEXT
ENTRY IN THE
01 SK RECORD

MOVE THE ENTRY
TO THE OPT I ON
TABLE

E

•
F

GET THE ADDRESS
OF THE NEXT
OPTION
CHARACTERISTICS
TABLE

F

•

•
G

ADD 1 TO THE
INDEX FOR ENTRY
OFFSETS' 51JBTRACT 1 FROM #
OF ENTR IES

G

•

•

H

H

•

•

J

J

•

•

K

•
698

•

4

Chart MG-4

CHECKPOINT/RESTART FROM INCIDENT AND CKREQ RECORDS ROUTINE

•

•

•

•

•

4

MG-I,GI

MG-I,FI

MG-2,DI

MG-2,G2

.

ADD ONE TO THE
TTR

B

B

.

•
SET THE TTR TO
THE FIRST
RECORD ON THE
NEXT TRACK

GET ADDRESS OF
CONVERS ION
ROUTINE FROM
CVT; POSITION
TTR IN REGISTER

C

..

NO

INITIALIZE THE
TTR OF THE LAST
RECORD ON THE
TRACK

GET THE ADDRESS
OF THE DEB; GET
THE ADDRESS FOR
CONVERSION
RESULT

0

C

0

.

•
IECPCNVT CONVERT TTR
TO ABSOLUTE
01 SK ADDR

E

E

.

•
EXCP - READ
A RECORD

NO

F

F

.

•
WAIT - FOR
1/0 TO
COMPLETE

G

G

•
MOVE 'IED0851
CHECKPO I NT 0 I SK
ERROR' INTO
MESSAGE BUFFER

H

YES

H

..
MOVE 'CKREQ
RECORD IGNORED'
INTO MESSAGE
BUFFER

YES
J

J

..

•
MOVE ' INCIDENT
RECORD IGNORED'
INTO MESSAGE
BUFFER

K

WTO - A
MESSAGE

MG-4,A4

..

..

.

4

..

Proqram Orqanization

699

Chart MJ-l

CHECKPOINT CONTINUATION RESTART ROUTINE

•

A

,cp0p

2

•

•
CHECK

ENTER

4

CHECK AVTRADDR
OR AVTNADDR

GET THE NEXT
ENTRY IN THE
TERMNAME TABLE

DECREMENT THE
NUMBER OF
ENTR I ES BY ONE

•

•
B

LOAD - LOAD
THE
IGGO 19Q8
MODULE

CLEAR THE
MESSAGE COUNT
IN THE QCB TO
ZERO

MOVE THE RECORD
NUMBER FROM
QCB I NTLF TO THE
CPB

IGGOI9Q8+16

CLEAR THE
INTERCEPT FEFO
CHAIN POINTERS
IN THE QCB TO
ZERO

TO CHA I N FEFO
QUEUE TO
I NTERCEPT QUEUE

B

•
C

INI T I ALI ZE
REGISTE:RS FOR
IGG01945

QMJ92

•
D

MOVE THE RECORD
NUMBER FROM
QCBLFEFO TO THE
CPB

GET THE ADDRESS
OF THE TERMINAL
ENTRY

CPB
FREE

•

•
IGG019Q8

E

D

CLEAR THE FEFO
QUEUE PO INTERS
TO ZERO

CHEC'K THE
TERM I NAL ENTRY

E

•

•
MOVE QCBFFEFO
TO CPBADDR

F

F

•
G

READ THE HEADER

G

•

•
IGGO 19Q8+8

NO

H

UPDA TE INPUT
SEQUENCE # 1N
TERM I NAL ENTRY

H

•

•
MOVE QCBLFEFO
TO CPBADDR

J

SAVE THIS
RECORD NUMBER
I N THE QCB I NTFF
FIELD

YES

J

•
QMJ91
K

READ THE
MESSAGE

•
700

MOVE THE RECORD
NUMBER OF THE
NEXT UNI T TO
QCBINTFF

GET THE NEXT
BUFFER I N THE
MESSAGE

3

•

4

•

Chart MJ-2 CHECKPOINT CONTINUATION RESTART ROUTINE

,

~

,

,

,

4

)'

IGGO 19Q8+8

YES

A

UPDA TE OUTPUT
SEQUENCE # IN
TERMINAL ENTRY

•
B

MOVE THE
MESSAGE NUMBER
FOR THE NEXT
HEADER TO
QCBDNHDR

B

.

•
GET THE SOURCE
~~-... FROM THE BUFFER
PREFI X

C

C

..

•
QMJ91
D

D

GET THE
TERM I NAL ENTRY
ADDRESS

READ THE EXTRA
UNIT

READ THE TEXT
BUFFER

..

•
GET THE ADDRESS
OF THE QCB

E

E

..

•
RECORD # WITH
AVTRADDR OR
AVTNADDR

F

F

UPDATE QBACK
FOR SOURCE WITH
LAST BUFFER

..

•
MOVE THE RECORD
NUMBER FROM
QCBDNHDR TO
CPBADDR

G

>---r-'"

PUT THE MESSAGE
ON THE FEFO
QUEUE

G

.

•
ADD 1 TO THE
COUNT OF
MESSAGES ON THE
QUEUE

H

H

.

NO

J

.

•
WR I TE THE FEFO

K

CHAIN IN PREV IOUS MESSAGE

•

•

•

4

Proqram orqanization

701

Chart MJ-3 CHECKPOINT CONTINUATION RESTART ROUTINE

•

•

•

•

4

5

A

.
8

A
MJ-I,A3

MJ-I,H5

MJ-2,F2

MJ-2,F3

MJ-2,02

MJ-I,K2

MJ-I,C3

MJ-I,G3

MJ-I,04

MJ-2,DI

MJ-2,K4

ADD ONE TO THE
VALUE OF
CP8ADDR

8

..
C

•

•
UPDATE QC8Q8ACK
WITH PRFCRCO

UPOA TE A VTRADDR
OR AVTNADDR

C

.

•

o

TAKE CARE OF
THE OISK 1/0

0

..

•

E

E

..

•
F

.

•

G

G

.

•

H

H

..

•

J

J

..

•

K

•
'702

2

•

4

•

Chart MM-l

CHECKPOINT DISK ALLOCATION ROUTINE

•

2

•

•
ADD THE LENGTH
OF THE STATUS
FIELD TO THE
RECORD LENGTH

A

•

4

CHECK
CHECK FOR A
COMPLETED
RECORD SEGMENT

•
B

•
GET THE
INI T I ALI ZED
REGISTERS FROM
THE CHECK PO I NT
WORK AREA

NO

CHECK

ADD THE LENGTH
OF THE LCB AND
DCB FIELDS

B

•
C

•
CALCULATE THE
LENGTH OF THE
OPTION TABLE

C

•
D

•
ADD THE LENGTH
OF MASTER QCB
AND SEQUENCE
FIELDS TO THE
RECORD LENGTH

ADD THE LENGTH
OF THE AVT
FIELDS

SUBTRACT ONE
FROM THE COUNT
OF TERMNAME
ENTRIES

GET THE ADDRESS
OF THE
INVITATION LIST
FOR TH I S LI NE

•
E

•
SA VE THE NUMBER
OF COMPLETE
ENVIRONMENT
RECORD SEGMENTS
NEEDED

E

•
F

•
GET NUMBER OF
ENTRIES IN THE
TERMNAME TABLE;
GET THE LENGTH
OF THE NAMES

CHECK
CHECK FOR A
COMPLETED
RECORD SEGMENT

F

•
G

•
ADD THE LENGTH
OF THE PRIORITY
LEVEL QCB TO
THE RECORD
LENGTH

GET THE ADDRESS
OF THE TERMINAL
ENTRY

ADD THE LENGTH
OF THE LI ST TO
THE RECORD
LENGTH

•

G

•
CHECK

H

CHECK

CHECK FOR A
COMPLETED
RECORD

CHECK FOR A
COMPLETED
RECORD SEGMENT

•

H

•
ADD ONE TO THE
COUNT OF
PRIORITY QCBS

J

J

•
K

0

•
GET THE NEXT
PRIORITY LEVEL
QCB

SA VE THE COUNT
OF PR I OR I TY
LEVEL QCBS FOR
SYNC PROCESS
ENTRIES

NO

•

•

4

K

•
Proqram Orqanizaticn

703

Chart MM-2 CHECKPOINT DISK ALLOCATION ROUTINE
3

•
704

4

•

4

•

Chart NA

RESIDENT CLOSEDOWN COMPLETION ROUTINE

•

•

•

4

•

A

•
B

LINK TO
IEDQNA02

SAVE REGISTERS
I USE REG I STER
13) ; NEGATE
REGI STER 1

B

..
RESTORE THE
REGS I TERS FROM
AVTSAVEI

C

C

..
0

•
RESTORE THE
REGISTERS FROM
THE SAVE AREA
PO I NTED TO BY
REGI STER 13

0

•
E

E

..

•

F

F

•
G

G

..

•

H

H

.

•

J

J

..

•

K

•

4

•
Proqram Orqanization

705

Chart NA2

NONRESIDENT CLOSEDOWNCOMPLETION ROUTINE

•

•

•

•

YES

>---..

A

SET UP THE
COMPLET I ON CODE

•
GET THE ADDRESS
OF THE REUSABLE
DISK lOB FROM
THE AVT
(AVTIOBR)

B

WTO
I NO ICATE
TASK WHICH
HAS ABENDED

B

•
GET ADDRESS OF
YES
THE NONREUSABLE
>-~-.. 0 I SK lOB FROM
THE AVT
(AVT I OBN)

YES
C

C

•
TURN ON CLOSEDOWN COMPLET I ON
BIT IN CHECKPOINT REQUEST
ELEMENT

GET THE DCB
ADDRESS FROM
THE FIRST lOB

o

o

•

•
POST - ECBS
FOR ALL
ATTACHED
TASKS

GET THE DEB
FROM THE DCB

E

E

•
WAIT - FOR
TERMI NAT ION
OF ATTACHED
TASKS

GET THE NUMBER
OF lOBS FROM
THE DEB

F

F

•
DETACH TASKS

CALCULATE THE
LENGTH OF THE
lOB

G

G

•

•
MOVE TO THE
NEXT lOB

H

H

•

•
J

DECREMENT THE
lOB COUNTER

TPOST CLOSEDOWN
COMPLET I ON ELEM
TO READY Q

J

•
K

•
706

•

•

4

•

Chart NB-l APPLICATION PROGRAM/CHECKPOINT INTERFACE ROUTINE

•

•

•

5

4

A
NB-I,BI,B2

E3,..J3

NB-2,BI

•
SETUP
B

LOCA TE TABLES
AND WORK AREAS

•

SETUP
LOCATE TABLES
AND WORK AREAS

B

•

•
PUT X' 10' IN
THE KEY FIELD
OF THE REQUEST
ELEMENT

C

C

•

•
D

PUT X'60' IN
THE KEY FIELD
OF THE REQUEST
ELEMENT

PUT THE
TERMNAME OFFSET
INTO THE
REQUEST ELEMENT

D

•

•
E

PUT THE ADDRESS
OF THE DEB
CHAIN IN THE
REQUEST ELEMENT

PUT THE CHECKPOINT QCB ADDR,

GET THE NEXT
DEB I N THE DEB
CHAIN

E~~12M~YINA~~E

REQUEST ELEMENT

E

•
F

•
SET UP THE
PARAMETER LIST
FOR AN SVC 102

F

•

•
IGCI02
G

G

TPOST REQUEST
ELEM FOR CKPT
TO READY QUEUE

•

•
H

WAIT - FOR
CHECKPOINT
TO BE
WRITTEN TO
DISK

H

•

•

..J

..J

•

•

K

K

•

•

4

•
Proararo Oraani~aticn

707

Chart NB-2 APPLICATION PROGRAM/CHECKPOINT INTERFACE ROUTINE

•

•

•

4

•

5

A
L8,K2

•

L9,G5

•

SETUP
B

LOCATE THE
TABLES AND WORK
AREAS

B

•
C

•
GET THE ADDRESS
OF THE DEB FOR
THE DCB BE I NG
OPENED OR
CLOSED

C

•
D

•
GET THE
TERM I NAL OFFSET

D

•

•
IEDQTNT

E

GET THE ADDRESS
OF THE PROCESS
ENTRY

E

•

•
F

>Y_E;",S_-I GET O~H~K~~~BER

GET THE
BEGINNING OF
THE CKREQ-TTR
TABLE

NO

RECORDS ON DISK

F

•
GET NEXT ENTRY
IN THE TABLE;
SUBTRACT ONE
FROM THE COUNT
OF ENTRIES

G

G

•

•

H

H

YES

•
SET UP THE
PARAMETER LIST
FOR SVC 102 TO
MARK CKREQ-TTR
ENTRY I NACT I VE

..J

•

•
MOVE THE STATUS
FIELD TO THE
CKREQ-TTR ENTRY

K

•
708

J

•

4

K

Chart ND-l

READY ROUTINE

,

2

,

3

,

,

4

cr
A3

A

•

•

B

B

•

•
GET THE ADDRESS
OF THE QCB

C

C

•
D

GETMAIN GET MINIMUM
STORAGE FOR
ON-LINE
TEST

D

•

•
E

FREEMAIN FREE
MINIMUM
MAIN

E

STORAG~

•

•
F

COND I T I ONAL
GETMAIN FOR
USER'S MAIN
STORAGE
REQU I REMENT

F

•

•
WTO - MAIN
STORAGE FOR
ON-LI NE
TEST NOT
AVAILABLE

NO

G

GET THE FIRST
OR NEXT BLOCK
IN THE CHA IN

G

•

•
H

FREEMAIN FREE
REQUESTED
MAIN
STORAGE

PUT IT I N THE
TIME DELAY
QUEUE

H

•

•
NO

NO

J

•

•
K

•

•

4

Proqram Orqanizaticn

709

Chart ND·2 READY ROUTINE
2

•

•

4

•

A

A

•

•

B

LOAD I EDQH I

B

•

41

WTO - SEND
THE IED0851
MESSAGE

C

•
D

41

ATTACH THE
CHECKPOINT
EXECUTOR
( I EDQNF I

FREEMAIN FREE THE
110 AREA

GET TTR OF' LAST
I NC I DENT RECORD
TAKEN AT ENVIRONMENT CHECKPOINT TIME

D

•
E

41

PUT THE ENV I RONMENT CHECKPOINT REQUEST
ELEMENT ON TI ME
DELAY QUEUE

IEDQTNT

CLEAR THE OPEN
WORK AREA IN
THE CHECKPO I NT
WORK AREA

GET THE TERMINAL ENTRY FOR
THE CKPT RECORD

•
GET THE TTR OF
THE FI~ST
I NC I DENT RECORD

UPDATE THE TER"11 ~~aU~~~~US,

GET THE TTR OF
THE NEXT
INCIDENT RECORD

~~~,g~Sj!-I~~gs

•

F

41

IECPCNVT CONVERT THE
TTR ·TO AN
MBBCCHHR

LOAD - THE
IEDQNX
MODULE

MOVE THE DA T A
TO THE OPERA TOR
CONTROL WORK
AREA

•

G

41

POST - THE
OPERATOR
CONTROL Eca

H

•

H

41

EXCP - READ
AN INCIDENT
RECORD

..J

WAIT - FOR
OPERATOR
CONTROL TO
COMPLETE

•

J

41

WAIT - FOR
110 TO
COMPLETE

K

•
710

E

41

F'

G

C

K

4

Chart NF

CHECKPOINT EXECUTOR ROUTINE

•

•

•

•

4

YES

r;;";"'-'"

GET THE OFFSET
OF THE DISK I 10
ROUT I NE
( IEDQNP)

•

..

B

B

..
GET THE FIRST
ELEMENT OF THE

~;;..;,..---o.... CHECKPO I NT QCB

C

C

ELEMENT CHA I N

•

..

D

D

•

..

E

•E

..
USE THE OFFSET
TO LOCATE THE
NAME OF THE
MODULE

F

REMOVE THE ELEMENT FROM THE
QUEUE; CLEAR
THE 'TESTAND- SET' SW ITCH

..

•
LOAD - THE
PROPER
MODULE AND
BRANCH TO
IT

G

GET THE NEXT
ELEMENT

G

..

•
H

F

DELETE THE MODULE
JUST LOADED

DELETE THE MODULE
JUST LOADED

MODULES LOADED BY TH I S ROUT I NE
OFFSET

H

MODULE NAME
IEDQNG

•
J

IEDQNH

USE THE RETURN
CODE FOR THE
OFFSET

•

•
K

•

DELETETHE MOCULE
JUST LOADED

WAIT - FOR
THE 01 SK
110 ECB TO
BE POSTED

32

IEDQNJ

40

IEDQNK

48

IEDQNM

56

IEDQNK

64

IEDQNO

72

IEDQNP

80

IEDQNQ

88

IEQDNR

96

IEDQNS

..

4

Proqram Orqanizaticn

711

Chart NG

BUILD INCIDENT RECORD FOR MH ROUTINE

•

•

2

•

4

•

A

•
B

GET TERM I NAL
OFFSET FOR TERM I NAL CURRENTL Y
ASSOCIATED WITH
THE LCB

SUBTRACT ONE
FROM. THE COUNT
OF RECORDS; GET
THE LENGTH OF
THE RECORD

B

GETMA IN FOR DI SK
RECORD; PUT
ADDRESS IN
CKPLDRB

C

•
C

..
D

GET THE ADDRESS
OF THE TERMNAME
TABLE FROM THE
AVT

D

•
IEDQTNT
E

GET THE ADDRESS
OF THE TERMINAL
ENTRY

PUT A KEY OF
X'O' AND THE
TERMNAME OFFSET
IN TRMSTATE
I NTO THE RECORD

E

..
NO

F

G

F

GET THE START
AND COUNT OF
OPT! ON ENTR I ES;
GET THE OPT I ON
LENGTH TABLE

G

..
GET THE LENGTH
OF THE OPT I ON
FIELD AND MOVE
IT TO THE DISK
RECORD

H

J

MOVE TO THE
NEXT FIELD IN
THE DISK RECORD

GET NEXT OPT I ON
OFFSET AND NEXT
LENGTH;
SUBTRACT ONE
FROM THE COUNT

H

J

..
K

•
712

4

•

Chart NH

BUILD INCIDENT RECORD FOR TCHNG ROUTINE

•

•

3

•

•

4

A

•
B

B

•
C

SUBTRACT ONE
FROM THE COUNT
OF RECORDS

C

GET TERMNAME
OFFSET FROM
REQUEST ELEM;
GET TERMNAME
TABLE ADDRESS

D

•
D

•
E

GET THE ADDRESS
OF THE TERMINAL
ENTRY

E

•
F

GET START OF
OPTION ENTRIES;

GET THE LENGTH
OF THE INCIDENT
RECORD

G5~T Tg~N~~Ng~~

F

TABLE

•
GETMAIN FOR DISK

G

GET
OF
AND
THE

~5g2~~~ ~W
CKPLDRB

THE LENGTH
THE FIELD
MOVE I T TO
DISK RECORD

MOVE TO THE
NEXT POSITION
IN THE DISK
RECORD

G

•
GET THE NEXT
OPT I ON ENTR Y
OFFSET;
SUBTRACT ONE
FROM THE COUNT

H

H

•
J

J

•
K

K

•

•

4

Proaram Orqanization

713

Chart NJ

INCIDENT CHECKPOINT FOR OPERATOR CONTROL ROUTINE

•

•

•

4

•

A

A

•

.

B

B

•
C

SUBTRACT ONE
FROM THE COUNT
OF INCIDENT
RECORDS

C

..

•
D

GETMAIN FOR
AREA TO
BUILD A
RECORD IN

D

•
E

E

•

..

F

GET THE
OPERATOR
CONTROL WORK
AREA ADDRESS
FROM THE AVT

F

..

•
G

PUT A X' I o· IN
THE KEY FIELD
OF THE DISK
RECORD

G

..

•
H

MOVE INFORMAT I ON FROM OPERATOR CONTROL
WORK AREA TO
DISK RECORD

H

·

..

J

J

·
K

..
CONVERT THE UCB
ADDRESS TO
DDNAME AND
RELATIVE LINE
NUMBER

iii

714

iii

iii

4

iii

Chart NK-l ENVIRONMENT CHECKPOINT ROUTINE

,

,

,

,

4

A

•
B

•
GET THE LENGTH
OF THE
ENV IRONMENT
RECORD SEGMENT

B

•

•
GETMAIN
MAIN
STORAGE FOR
THE 01 SK
RECORD

C

•
o

•
PUT THE RECORO
AOORESS IN
CKPLDRB

o

•
E

E

•
'--~-'

F

GET THE LENGTH
OF THE STATUS
FIELD

•
G

F

•
GET THE
TERMNAME TABLE
ADDRESS FROM
THE AVT

GET THE NEXT
TERMNAME TABLE
ENTRY

CHECK THE
REMAIN ING DISK
RECORD SPACE

G

•
H

GET THE COUNT
AND LENGTH OF
THE TERMNAME
TABLE ENTR I ES

MOVE THE
TERMINAL STATUS
FIELD TO THE
DISK RECORD

SUBTRACT ONE
FROM THE COUNT
OF ENTRIES

H

•
UPDATE THE
PO I NTER TO THE
NEXT DISK
RECORD

GET THE ADDRESS
OF THE FIRST
TERM I NAL TABLE
ENTRY

•
K

INVERT THE
CONTROL
SW I TCHES FOR
THE QCB AND
INVITATION LIST

PUT X' IC' IN
THE 0 I SK RECORD
KEY FIELD

4

K

•
Proqram orqanization

71~

Chart NK-2 ENVIRONMENT CHECKPOINT ROUTINE

~

•

•

•

4

•

5

AI

GET THE LENGTH
OF THE SEQUENCE'
NUMBER FIELDS .

A

CHECK
CHECK THE
REMA INING DI SK
RECORD SPACE

..

•
MOVE THE
SEQUENCE
NUMBERS TO THE
RECORD

B

B

..
C

•
UPDATE THE
PO I NTER TO THE
NEXT RECORD
POS ITI ON

GET THE LENGTH
OF THE LCB
INFORMATION .

C

.
CHECK
CHECK FOR THE
END OF THE
RECORD

0

D

..
E

•
MOVE THE LCB
I NFORMA T I ON TO
THE RECORD

GET THE LENGTH
OF THE PRIORITY
QCB FIELDS

..
F

•
GET THE LENGTH
OF THE DCB
I NFORMA T ION

CHECK

GET THE LENGTH
OF THE MASTER
QCB FIELDS

CHECK THE
REMAI N ING DISK
RECORD SPACE

.
CHECK FOR THE
END OF THE
RECORD

GET THE LENGTH
OF THE
INVITATION LI ST

CHECK

CHECK

CHECK THE
REMA INING DI SK
RECORD SPACE

MOVE THE
PRIORITY QCB
FIELDS TO THE
DI SK RECORD

CHECK THE
REMA ININe; DISK
RECORD SPACE

..
H

F

•
CHECK

G

E

G

•
MOVE THE OPT I ON
FIELD TO THE
DI SK RECORD

MOVE THE DCB
INFORMATION TO
THE RECORD

UPDATE THE
PO I NTER TO THE
NEXT DISK
RECORD POS I T I ON

MOVE' THE MASTER
QCB FIELDS TO
THE DISK RECORD

H

•
MOVE
MOVE THE LIST
TO THE RECORD

UPDATE THE
OPTION 'FIELD
AND DISK RECORD
POINTERS

UPDATE THE
POINTER TO THE
NEXT DISK
RECORD POS I TI ON

..J

..

•
GET THE NEXT
PRIORITY QCB
ADDRESS

K

III

716

4

III

K

Chart NK-3 ENVIRONMENT CHECKPOINT ROUTINE

•

•

•

•

4

A

A
NK-2,J2

NK-l,G5
NK-2,Dl,Gl,H2,A3,G3,G4,F5

•
B

C

D

COUNT THE
NUMBER OF
256-BYTE BLOCKS
IN THE DATA

SUBTRACT THE
LENGTH OF THE
FIELD FROM THE
LENGTH OF THE
DISK RECORD

YES
SUBTRACT EIGHT
r~-" FROM THE RETURN
ADDRESS

MOVE THE DATA

SUBTRACT THE
ENTRY POINT
ADDRESS FROM
THE BRANCH
ADDRESS

8

PUT A X'20' IN
THE KEY FIELD
OF THE RECORD

C

UPDATE THE
ADDRESSES OF
THE DATA AND
DI SK RECORD

D

•
YES

E

E

•
PUT THE OFFSET
OF THE DISK I 10
ROUTINE IN
REGI STER 15

F

PUT THE ADDRESS
OF THE DISK I 10
QUEUE MANAGER
IN REGISTER 15

F

•
G

G

•
H

H

•

•
K

K

•

•

•

4

Proaram Orqanization

717

Chart NM

BUILD CKREQ DISK RECORD ROUTINE

,

,

,

4

,

A

A

GETMAIN FOR
DI SK
RECORD; PUT
ADDRESS IN
CKPLDRB

B

B

..
C

C

D

D

..

.

E

MOVE QCB FIELD
AND SEQUENCE
NUMBERS TO
CKREQ RECORD

GET THE DEB
CHAIN ADDRESS

GET
OF

E

.
GET THE ADDRESS
OF THE NEXT DEB
IN THE CHAIN

F

F

..
G

PUT X'IB' IN
KEY FIELD OF
THE RECORD; PUT
TERMINAL OFFSET
IN RECORD

.
SAVE THE
MESSAGES ON THE
READ-AHEAD QCB
IN QCBINTLF

PUT THE ADDRESS
OF TH I S DEB IN
THE REQUEST
ELEMENT

H

MOVE THE OPT I ON
FIELD TO THE
CKREQ RECORD

H

.

..
J

IEDQTNT

GET THE ADDRESS
OF THE NEXT DEB
IN THE CHAIN

MOVE THE QCB
FIELDS TO CKREQ
RECORD

GET THE ADDRESS
OF THE TERM I NAL
ENTRY

SUBTRACT FROM
THE NUMBER OF
OPT I ON ENTR I ES

J

..

.
NO
K

•
118

SET THE
TERMINAL IN THE
DI SK RECORD TO
ZERO

K

•

5'

Chart NO

CHECKPOINT QUEUE MANAGER ROUTINE

,

,

,

4

,

A

A

.

•

B

GET THE ADDRESS
OF THE LAST
RECORD ON THE
1/0 QUEUE

B

..
C

•
GET THE FIRST
REQUEST ELEMENT
ON THE QCB
ELEMENT CHAIN

CLEAR THE LINK
FIELD OF THE
NEW RECORD

C

..

•
PUT ADDRESS OF
LAST RECORD IN
LINK FIELD OF
THE LAST RECORD
IN THE QUEUE

D

D

•
E

PUT THE ADDRESS
OF THE NEW
RECORD IN
CKPIOQF

INITI AL I ZE
COUNT OF I NC I DENT RECORD;
GET RECORD ON
1/0 QUEUE

E

..
F

•
PUT THE ADDRESS
OF THE NEW
RECORD IN
CKPIOQL

GET THE NEXT
RECORD ON THE
1/0 QUEUE

GET THE NEXT
REQUEST ELEMENT
IN THE CHAIN

F

..
G

•
UPDATE THE LAST
REQUEST ELEMENT
WITH THE DISK
RECORD
(CKPLREBI

SAVE THE
ADDRESS OF TH IS
RECORD

NO

G

..

•

H

H

..

•
REMOVE THE
I NC I DENT RECORD
FROM THE 1/0
QUEUE

..J

..J

..

•
FREEMAIN FREE THE
INCIDENT
DISK RECORD

K

..

K

.

4

Proqram Orqanizaticn

719

Chart NP-l CHECKPOINT DISK I/O ROUTINE

,

,

3

,

4

,

A

..

41

NO

.>---..

B

REMOVE THE
FIRST DISK
RECORD FROM THE
I/O QUEUE

B

41

C

SET UP THE
COMMAND CODE
AND THE DATA
ADDRESS I N THE
CCW

PUT THE ADDRESS
OF THE FIRST
DISK RECORD IN
CKPEXCP

..
D

41

MOVE TO THE
NEXT ENTRY IN
THE CKREQ-TTR
TABLE

GET THE LENGTH
OF THE CKREQ
RECORD

GET THE LENGTH
OF AN I NC I DENT
RECORD

GET
OF THE
THE~ADDRESS
CVT
NPI
E4

..

D

41

GET THE ADDRESS
OF THE
CONVERSION
ROUTINE

SUBTRACT FROM
THE COUNT OF
ENTRIES

GET THE ADDRESS
OF THE
CKREQ-TTR TABLE

E

E

..
GET THE ADDRESS
OF THE DEB

GET THE COUNT
OF THE ENTRIES

F

G

G

..
IECPCNVT CONVERT TTR
TO MBBCCHHR
PUT IN lOB

PUT OFFSET INTO
THIS ENTRY

H

H

..

41

MARK THE ENTRY
INACT.IVE

J

J

..

41

SAVE THE
ADDRESS OF TH I S
ENTRY

K

•
720

GET THE TTR
FROM TH I S ENTR Y

•

•

4

•

Chart NP-2 CHECKPOINT DISK I/O ROUTINE

,

,

,

,

4

TIME- GET
DATE AND
TIME OF DAY

A

•

•
B

STORE IN FIRST
TWO WORDS OF
THE DISK RECORD

B

•
GET LENGTH OF
ENVIRONMENT RCD
SEG; SAVE TTR
OF LAST INCIDENT WRITTEN

C

GET THE TT~ OF
THE LAST
SEGMENT WR I TTEN

NO

GET THE COUNT
OF ENVIRONMENT
SEGMENTS ON ONE
TRACK

C

•
D

GET THE TTR OF
THE LAST
I NC I DENT RECORD
WRITTEN

D
NP2
E3

•
GET THE TTR OF
THE FIRST
I NC I DENT RECORD
IN THE DATA SET

E

SA VE TH IS TTR
IN CKPTTRLI

NO

E

•
GET COUNT OF
INCIDENT RECORDS ON TRACK
OF ONLY INCIDENT RECORDS

F

SAVE THI S TTR
IN CKPTTRLT

•

•
G

GET COUNT OF
INCIDENT RECORDS ON FIRST
TRACK OF INCIDENT RECORDS

NO

G

•

•
GET THE TTR OF
THE NEXT
SEQUENTIAL
RECORD ON THIS
DISK

NO

H

CLEAR THE
CKPTTRL T FIELD
TO ZERO

H

•

•
j

GET THE TTR OF
THE FIRST
RECORD ON THE
NEXT TRACK

J

•
NPI
E4

.,

.,

.,

K

4

Proqram Orqanization

721

Chart lNP·3 CHECKPOINT PISK I/o ROUTINE

•

A

•

GET THE INDEX
TO THE CURRENT
ENV IRONMENT
RECORD

SET THE 'FIRST
TIME' SWITCH

GET THE COUNT
OF ENV IRONMENT
RECORDS

SET COUNT OF
ENTRIES EQUAL
TO INDEX TO
CURRENT ENVIRONMENT RECORD

•

•

YES

MOVE 'CKREQ' TO
THE WTO MESSAGE
BUFFER

•
B

GET THE ADDRESS
OF THE
'ENV IRONMENT
DISK ERROR'
MESSAGE BUFFER

FIND THE NAME
OF THE TERM I NAL

B

•
C

GET THE ADDRESS
OF THE NEXT TTR

MARK THE DISK
RECORD AS 'LAST
SEGMENT' (X'IC'
IN KEY)

GET THE ADDRESS
OF THE FIRST
TTR

YES

D

MOVE THE NAME
TO THE WTO
MESSAGE BUFFER

C

MOVE
'CHECKPO I NT
DISK ERROR'
INTO THE WTO
MESSAGE BUFFER

D

•
E

WTO - WRITE
THE ERROR
MESSAGE TO
THE CONSOLE

ADD ONE TO THE
INDEX

E

•
MARK THE DISK
1/0 ECB AS
COMPLETE

PUT THE NEW
INDEX IN THE
CONTROL RECORD

NO

F

F

•
G

GET THE TTR OF
THE NEW
ENVIRONMENT
RECORD

GET THE AODRESS
OF THE NEXT TTR

G

•
H

SUBTRACT ONE
FROM THE COUNT
OF ENTRIES

H

J

J

•
K

K

•
722

•

4

Chart NQ-l CHECKPOINT NOTIFICATION AND DISPOSITION ROUTINE

•

•

•

•

4

A

A

•
YES

r---~

B

REMOVE THE
REQUEST ELEMENT
FROM THE QCB
ELEMENT CHAIN

1---<-

B

•
C

•
GET THE LAST
DI SK RECORD
WR I TTEN FROM
CKPEXCP

C

•
D

•
CLEAR THE ECB
COMPLETION CODE

D

•
INDICATE A DISK
ERROR IN THE
RECORD JUST
WRITTEN

NO

E

E

•
MOVE THE
CONTROL RECORD
TO THE WTO
MESSAGE BUFFER

F

MOVE THE
CHARACTERS
• RECOVERED' TO
THE ERROR
MESSAGE

F

•

•

G

G

•

•

H

H

•
J

J

•

•

K

REMOVE REQUEST
ELEMENT FROM
THE QCB CHA I N

K

•

•

4

Proqram Orqanization

723

Chart NQ·2 CHECKPOINT NOTIFICATION AND DISPOSITION ROUTINE

,

,

4

,

A

A

•

•

B

GET THE REQUEST
ELEMENT CHA I N
FROM THE QCB

B

•

•

C

C

•

•
GET THE
CLOSEDOWN
COMPLETION
ELEMENT

D

D

•
E

E

•

•

F

REMOVE THE
REQUEST ELEMENT
FROM THE QCB
CHAIN

TF'OST
TF'OST ELEMENT
TO DISABLED
READY QUEUE

F

•
G

DETERMINE
REQUESTOR AND
POST COMPLETE

G

•
H

•
GET THE NEXT
REQUEST ELEMENT
IN THE CHAIN

GET THE CHA I N
OF PCBS FROM
THE AVT

H

•
GET THE NEXT
PCB

..J

..J

•

•
GET THE LENGTH
OF THE
ENVIRONMENT
RECORD SEGMENT

K

..
724

..

..

4

.

Chart NQ-3 CHECKPOINT NOTIFICATION AND DISPOSITION ROUTINE

•

•

•

•

4

A

A
NQ-I,J3

•
B

NQ-I ,K I ,H3

NQ-2,F2

NQ-3,E2

NQ-3,GI

NQ-2,GI

BUILD THE
PARAMETER LI ST
WITH X'OC' IN
THE FIRST BYTE

GET THE LENGTH
OF THE I NC I DENT
DISK RECORD

.
B

..

•
GET THE ECB FOR
OPERATOR
CONTROL

C

POST - THE
ECB

CLEAR CKPLREB
TO ZERO (LAST
REQUEST
PROCESSED I

TPOST ELEMENT
TO THE DISABLED
READY QUEUE

C

..
o

'--'-'--~...

SET UP THE
PARAMETER LIST
TO POST THE ECB
FOR THE APPLICATION PROGRAM

o

..

•
TPOSTECB

E

E

POST THE ECB IN
ANOTHER
PARTITION

..

•
F

GET THE ADDRESS
OF THE BUFFER
01 SPOS I T I ON
ROUTINE
( IEDQBDI

NO

F

..

•
G

MOVE THE LINK
FIELD FROM THE
ELEMENT TO THE
QCB ELEMENT
CHAIN

GET THE LENGTH
OF THE CKREQ
RECORD

TPOST LCB TO
THE READY QUEUE
FOR BUF 01 SP

co

•

..

H

H

.
J

J

•

.

K

K

•

2

•

4

•
Proqram Orqanization

725

Chart NR

CHECKPOINT - NO AVAILABLE CORE ROUTINE

•

•

•

4

,

•

..

B

B

•

..

C

SET HIGH ORDER
BIT OF LAST
ELEMENT FOR
WHICH A RECORD WAS BUILT

C

..

•
0

GET THE LENGTH
OF THE GETMA I N
REQUEST FROM
THE PARAMETER
LIST

0

..

•
E

CONVERT THE
LENGTH TO
EBCDIC

E

•

..

F

F

•

..

G

CKREQ

MOVE CKREQ AND
PROCESS ENTRY
NAME TO THE
MESSAGE BUFFER

G

..

•
H

INCIDENT

MOVE INC IDENT
TO THE WTO
MESSAGE BUFFER

WTO ' CHECKPO I NT
NOT TAKEN'

H

..

•
TOTAL
J

MOVE
ENVIRONMENT TO
THE WTO MESSAGE
BUFFER

J

..

•

K

K

4

726

•

Chart NS

CHECKPOINT - NO INCIDENT RECORDS ROUTINE

,

,

,

4

,

A

•

41

B

B

•

41

GET THE ELEMENT
CHA I N FROM THE
CHECKPO I NT QCB

C

C

•
D

41

SET UP
PARAMETERS FOR
SVC 102

GET THE NEXT
ELEMENT I N THE
CHAIN

D

•

41

IGCI02
E

TPOST TIME DELA Y REMOV AL . ELM
TO READY QUEUE

E

•

41

IEDQHG03
F

REMOVE ANY
REQUEST ELEMENT
FROM THE CHA IN

F

G

G

•

41

H

H

41

INSERT THE ENVIRONMENT REQ
ELEMENT AFTER
THE LAST PROCESSED ELEMENT

J

) -_ _ _ _ _ _ _ _ _ _ _ _.....l.. .

SET THE I NC I DENT OVERFLOW
REQUEST
BITS IN
THE ENV IRONMENT
REQUEST ELEMENT

•
K

J

41

PUT THE ENV I RONMENT REQUEST
ELEMENT AT THE
TOP OF THE QCB
ELEMENT CHA I N

K

•

•

•

4

Proqram Orqanization

727

Chart NT

TERM NAME TABLE CODE

,

,

,

,

4

5

A

•

•
MUL T I F'L Y THE
TERMNAME TABLE
OFFSET BY THE
SIZE OF AN
. ENTRY

B

B

•

•
F'UT THE ADDRESS
OF THE TERM I NAL
ENTRY IN
REGISTER I

C

C

•
D

D

•

•

E

t=:

•

•

F

F

•

•

G

G

•

•

H

H

•

•

J

J

•

•

K

K

..
728

•

4

Chart NX-I OPERATOR AWARENESS MESSAGE ROUTER

,

,

,

,

4

I EDQIIIX
ENTER

A
NX-I,EI,FI,GI,JI,KI
NX-I,B2,C2
NX-I

B

SET UP CHAIN OF
ELEMENTS FROM
IEOQBD TO PUT
ON THE READY
QUEUE

-

CONVERT

A

CONVERT

NX-

1

A

CONVERT
E

NX-I

PUT
QCB
THE
OF

,
I

NX-

A

STORE THE
RESULT I NG BYTE
IN THE MESSAGE
WORK AREA

E

..
F

..

PUT THE ADDRESS
OF THE LCB INTO
THE LINK FIELD
OF THE BUFFER;
SET PRIORITY

MOVE THE
MESSAGE TO THE
BUFFER UNIT

. CONVERT lOB
SENSE BYTE 0

DESTINATION
ADDRESS IN
FIRST WORD
THE BUFFER
PREFIX

J

CONVERT
G

..

J

PUT THE QCB
ADDRESS AND
PRIORITY INTO
THE SCB

SET UP THE
PREFI X

CONVERT CSW
STATUS BYTES

o

1

1

CONVERT
F

OR THE HEX
DIGIT WI TH A
MASK OF
X'OOOOOOCO'

GET TERM ADDR
FOR PRIMARY
CONTROL TERM

JX-?

REMOVE THE UNIT
FROM THE BUFFER
FREEPOOL

A·

13

IEDQTNT

r-

UNIT

CONVERT COMMAND
CODE OF FAILING
CCW

ADD 1 TO THE
ADDRESS FOR THE
RESULT I N THE
MESSAGE WORK
AREA

G

..

1
H

MOVE IN ZEROS
FOR lOB SENSE
BYTE 1

C

..
NT

GET THE LENGTH
OF THE ERROR
MESSAGE; GET
THE AVAILABLE
BUFFER COUNT

GET THE LINE
ADDRESS FROM
THE UCB AND
MOVE IT INTO
THE MESSAGE

OR THE HEX
DIGIT WITH A
MASK OF
X'OOOOOOFO'

NO

2ND HALF OF
ADDR & POLL I NG
CHAR, DIAL DIGS

1
D

B

..

NX-\

GET THE MESSAGE
WORK AREA AND
MOVE IN THE
F I XED TEXT

SAVE HEX BYTE,
SHIFT OUT RIGHT
HALF, PRESET
2ND BYTE OF
RESULT TO C'O'

FIRST HALF OF
ADDRESS I NG &
POLLING CHAR

1
C

..

A.

IS THIS THE
END OF THE
MESSAGE

USE ADDRESS OF
BUFFER A S THE
FIRST ELEMENT
IN CHA I N TO PUT
ON READY QUEUE

YES

MASK OUT THE
LEFT HALF OF
THE OR IG I NAL
BYTE OF HEX
INPUT

H

NO
NXCONVERT
J

UNIT

CONVERT TP OP
CODE FOR LAST
RETRY

NX:-I

GET ANOTHER
BUFFER UNI T

I

A

CONVERT
K

1

NX-;:> A

A

cr
K3

,

J

..

I

EX IT TO
DSPCHAIN

CHA I N THE UN ITS
AND ADD I TO
THE UN I T COUNT

CONVERT TP OP
CODE FOR
FAILING CCW

SET THE SW ITCH
TO ZERO TO
INDICATE THE
SECOND PASS

SET THE ERROR
BIT IN THE LCB
TO ZERO

K

I

•

•

•

4

•
nroqram Oraanization

729

Chart NX-2 OPERATOR AWARENESS MESSAGE ROUTER

•

•

•

4

•

A
NX-I,E2,J2

B

C

SUBTRACT ONE
FROM THE
AVAILABLE
BUFFER UNIT
COUNT

PUT THE ADDRESS
OF THE LCB IN
REGISTER I

PUT THE BUFFER
RETURN QCB
ADDRESS I N THE
PART I AL BUFFER

B

PUT THE ADDRESS
OF THE FIRST
UNIT IN
REGISTER I

C

..
D

REMOVE THE UNIT
FROM THE
FREEPOOL

D

•
E

E

F

F

G

G

H

H

J

K

K

2

730

4

•

Chart NZ

TCAM COMMAND SCHEDULER - SVC 34

,

•

,

4

,

A

..

•
B

GET THE AVT
POINTER FROM
THE CVT

B

..

•
SET UP THE
PARAMETERS IN
XSA FOR AN
ERROR MESSAGE

C

C

.

•
SET UP THE
PARAMETERS FOR
AN ERROR
MESSAGE

D

D

..

•
E

MOVE TO THE
NEXT CHARACTER
IN THE OPERAND
FIELD

E

..

•
MOVE THE
OPERAND FROM
THE BUFFER TO
CIB

F

F

..
G

GETMAIN LENGTH = 13
+ OPERAND
LENGTH

QEDIT PASS COMM
PARAMETER
LIST & CIB
TO CHAIN

G

•
H

YES

CLEAR CIS

FREEMAIN FREE THE
CIB

H

..

•
J

PUT THE LENGTH
OF THE GETMA I N
REQUEST INTO
CIB IN
DOUBLEWORDS

POST - THE
ECB IN COMM
PARAMETER
LIST

SET UP THE
PARAMETERS IN
XSA FOR AN
ERROR MESSAGE

J

..

•
K

MOVE THE VERB
CODE FROM XS.A
TO CIB

K

•

•

4

Proqram Orqanization

731

Chart OA

LINK ROUTINE

•

'.

•

4

•

A

•

•

B

B

•

•

C

C

•

•

D

PUT THE AVT
ADDRESS IN
PARAMETER
REGI STER 1

D

•

•
E

LINK - TO
IEDQOB

E

•

•
CONVERT THE
ERROR CODE TO
CHARACTERS FOR
A WTO MESSAGE

F

WTO - SEND
THE ERROR
MESSAGE TO
THE
OPERATOR

F

•

•
PUT THE AVT
ADDRESS IN
PARAMETER
REGI STER 1

G

PUT THE AVT
ADDRESS IN
PARAMETER
REGI STER 1

PUT THE AVT
ADDRESS IN
PARAMETER
REGI STER 1

G

•
H

•
PUT THE
PASSWORD
ADDRESS INTO
PARAMETER
REGISTER 1

LINK - TO
IEDQOG

LINK - TO
IEDQOM

LINK - TO
IEDQOS

H

•
J

L1NK- TO
IEDQE6

J

•

•
K

SAVE THE
SCRAMBLED
PASSWORD IN THE
AVT

K

•
132

4

•

Chart OB-l WTOR INTERPRETER ROUTINE

•

•

•

•

4

A

LNUNITS

•

CP8

~ 1P
~ 1P
~ 1P
~ 1P
~ 1P
~ 1P
~ 1P
~ 1P
~ 1P
~ 1P
A4

8

A3

MSUNITS

•

A2

RESTART

DLQ

AI

•

F5

CPINTVL
0

WTOR - SEND
MESSAGE TO
OPERATOR,
REQUEST
REPLY

MSMIN

F4

WAIT - FOR
THE REPLY

~~~~NtH~S~gT
OF KEYWORDS

F4

PASSWRD

KEYLEN

F3

•

F3

STARTUP
WTO - 'TCAM
IN SYSTEM'

G

H

A5

CROSSRF

PREPARE WTO
MESSAGE WITH
PROCSTEPNAME

COMWRTE

WTO - SEND
THE 'TCAM
STARTING'
MESSAGE TO
OPERATOR

8
EOF

K

F2

1P
FI

•

•

4

..
G

H

..
J

..

DTRACE

084
H5

•

F

OL TEST

e-~

GET THE TCAM
WORgv~~~~OTHE

..

CPRCDS

REQUEST

•

E

A3

A2

J

..

CKREQS

AI

~~~~~~~E,

D

INTVAL

AI

•

..

MSMAX

F2

REMOVE MSUNITS,

C

F5

PRIMARY

•
F

A2

CONTROL

E

..

TRACE

A4

•

8

CI8

A4

C

..

K

TOPMSG

•
Proqram Oraanization

733

Chart OB-2 WTOR INTERPRETER ROUTINE

•

•
134

•

2

•

4

•

•

4

•

Chart OB-3 WTOR INTERPRETER ROUTINE

•
HALFNO
A

•
HALFNO

CONVERT OPERAND
TO BINARY

HALFNO

HALFNO
CONVERT OPERAND
TO BINARY

CONVERT OPERAND
TO BINARY

•

•

CONVERT OPERAND
TO BINARY

.
B

B

•

..

C

STORE THE VALUE
IN AVTCKRST

STORE THE VALUE
IN AVTNCKPR

STORE THE VALUE
IN AVTCIB

STORE THE VALUE
IN AVTCKELV

C

..

•
MOVE THE SCAN
PO I NTER TO THE
NEXT KEYWORD

0

0
WTOR

..
E

E

~
F3

•
HALFNO·

HALFNO
F

HALFNO

CONVERT OPERAND
TO BINARY

CONVERT OPERAND
TO BINARY

41

HALFNO

HALFNO

CONVERT OPERAND
TO BINARY

CONVERT OPERAND
TO BINARY

CONVERT OPERAND
TO BINARY

F

•

41

G

G

41

H

STORE THE VALUE
IN AVTOLTST

H

•

41

STORE THE VALUE
IN AVTCPRCD

.j

STORE THE VALUE
IN AVTKEYLE

STORE THE VALUE
IN AVTCMIN

STORE THE VALUE
IN AVTCMAX

•

.j

41

MOVE THE SCAN
PO I NTER TO THE
NEXT KEYWORD

K

K

KEYWORD

•

2

•

•

4

•
Proqram orqanizaticn

735

Chart OB-4 WTOR INTERPRETER ROUTINE

•

A

•

SCAN

SCAN

SET THE SCAN
PO I NTER TO END
OF THE OPERAND

SET THE SCAN
PO I NTER TO END
OF THE OPERAND

•

.

•
B

ERASE PREVIOUS
'STARTUP='
REPLIES

SET THE FLAG TO
'COMWRTE=YES'

HALFNO
CONVERT OPERAND
TO BINARY

B

1

•

WTOR

C5

SET THE FLAG TO
'COMWRTE=NO'

C

INSERT KEYWORD
HAVING BAD
OPERAND INTO
ERROR MESSAGE

YES

.

(0

•
INDICATE
'COLDSTART' AND
'START-UP
SPECIFIED'

D

C

MOVE THE SCAN
PO I NTER TO THE
NEXT KEYWORD

STORE THE VALUE
IN AVTTOTNC

D

•
INDICATE
'WARMSTART' AND
'START-UP
SPECIFIED'

E

MOVE THE SCAN
PO I NTER TO THE
NEXT KEYWORD

E
WTOR

KEYWORD

•
INDICATE
' I NV I TAT I ON
LIST'

F

..
F

KEYWORD

•
INDICATE 'NO
CONTI NUAT ION'

G

G

..

•
H

SCAN

AcER9~tA~~d~;,

SET THE SCAN
POINTER TO END
OF THE OPERAND

REPLIES

.

•
J

INSERT THE
KEYWORD WITH A
BAD OPERAND IN
THE ERROR
MESSAGE

MOVE THE SCAN
PO I NTER TO THE
NEXT KEyWORD

TURN OFF THE
'TOPOL' BIT IN
AVTBIT2 FOR
TOPMSG=YES

YES

TURN ON THE
'TOPOL' BIT IN
AVTBIT2 FOR
TOPMSG=NO

YES

•
K
KEYWORD

WTOR

•
736

H

•

4

•

J

Chart OB-S WTOR INTERPRETER ROUTINE

•

A

•

•

4

A

C,,--SCA_____
N
) OB-5,H2

OB-4,AI,A2,H5

•
B

•

OB-2,G2,G3,G4,G5

•

OB-5,G2,BS

GET THE NUMBER
OF CHARACTERS
I N THE OPERAND

SET THE SCAN
PO I NTER TO END
OF THE OPERAND

B

•

•
INSERT THE
KEYWORD WITH A
IN
THE ERROR
MESSAGE

GET THE NUMBER
OF CHARACTERS

>-""'""T-~ BAD OPERAND

C

>-;;..-..1....<.... I N THE OPERAND

C

FIELD

•
RESULT
BLANKS

D

D

•

•

E

E
WTOR

•

•
F

INCREMENT THE
INDEX TO THE
NEXT CHARACTER

MOVE THE SCAN
PO I NTER TO THE
NEXT KEYWORD

F

OB-2,AI,A2,A3,A4,AS,FI
OB-3,AI,A2,A3,A4

•

•

OB-3,FI,F2,F3,F4,FS
OB-4,B4

G

G

KEYWORD

•

•
H

USE 51 ZE OF
OPERAND TO

NUMCONV
CONVERT OPERAND
TO BINARY

t~~~ER+H~~
BINARY

H

•

•

J

J

•

•

K

K

•

•

•

4

•
Proqram Orqani7ation

737

Chart OG

INTRO GETMAIN ROUTINE

•

•

•

•

4

OG,HI,C2,G2,C3,G3

•
CALCULA TE THE
SIZE OF THE
REQUESTED I/O
TRACE AREA

CALCULA TE THE
SIZE OF THE
REQUESTED AREA

B

GETMAIN MAIN
STORAGE

•

B

•

C

PUT THE TCB
ADDRESS IN THE
AVT

D

CALCULATE THE
LINE BUFFER
SIZE

GETMA I N STORAGE
FOR D I SPA TCHER
TRACE AREA

GETMA I N STORAGE
FOR THE I/O
TRACE AREA

CLEAR AND
I NIT I AL I ZE THE
AREA

CLEAR AND
I NI T I ALI ZE THE
I/O TRACE AREA

C

D

•
E

E

•

•
CALCULA TE THE
SI ZE OF THE
CROSS REFERENCE
TABLE

CALCULA TE THE
SIZE OF THE CPB
AREA

F

F

•

•
G

CALCULATE THE
SIZE OF THE
MAIN STORAGE
QUEUES DATA SET

AVTPAR

AVTPAR
GETMA I N STORAGE
FOR THE CPBS

GETMAIN STORAGE
FOR THE CROSS
REFERENCE TABLE

CLEAR THE AREA
AND I NI T I ALI ZE
THE CPBS

CLEAR AND
I NIT I ALI ZE THE
AREA

G

•
AVTPAR
H

GETMAIN FOR
BUFFERS & MSG
QUEUES DATA SET

H

•
J

CLEAR AND
INIT I ALI ZE THE
AREA

•
K

K

•
738

•

4

Chart OM

TERMNAME TABLE SORT ROUTINE

•

•

•

3

•

4

EXAM I NE EACH
TERMINAL TABLE
ENTRY

A

OM,Dl

•

41

YES
B

SET A PO INTER
TO THE FIRST
ENTRY IN THE
LIST

GETMA IN MAIN
STORAGE

B

41

C

CALCULATE THE
NUMBER OF
ENTRIES IN THE
TERMNAME TABLE

CALCULATE THE
NEW OFFSET FOR
THE AL TERNA TE
DESTINATION

C

41

AVTPAR
D

D

GET STORAGE FOR
TERMNAME TABLE
ENTRY OFFSETS

41

E

SET THE PO INTER
TO THE NEXT
ENTRY IN THE
LIST

I NIT I ALl ZE THE
OFFSETS AREA

·E

•

41

INI T I ALl ZE THE
TERMNAME TABLE
FOR A BINARY
SEARCH

I NCREMENT THE
PO I NTER TO THE
NEXT ENTRY

F

F

41

G

SWAP TWO
ENTRIES IN THE
TERMNAME TABLE
AND TWO OFFSET
ENTRIES

G

•

41

H

H

•

41

STORE THE
OFFSET OF THE
TERMINAL IN THE
AVT

J

STORE THE
DEAD-LETTER
QUEUE OFFSET IN
THE AVT

•
K

J

41

WTO - WRITE
THE 'DEAD
LETTER
QUEUE'
ERROR MSG

I NCREMENT THE
ENTR Y PO INTER S

•

•

K

4

Proqram Orqanizaticn

739

Chart OS

ATTACH ROUTINE

•

•

•

4

•

A

A

..

•

8

8

..

•
ATTACH
ON-LINE
TEST

C

C

.

•
ATTACH FE
COMMON
WRITE

YES

D

D

.
E

•
ATTACH
OPERATOR
CONTROL

E

.
F

EXTRACT ESTABLISH A
COMMUNICATlONS PARAMETER LIST

F

.
G

•
QEDIT - GET
COMMAND
INPUT
BLOCKS

G

.

•
LOAD THE
SYSTEM
DELAY
ROUTINE
(IEDQHI)

H

H

.

•
LOAD - THE
OPERATOR
AWARENESS
MSG ROUTINE
( IEOQNX)

J

PUT THE I EOQNX
ADDRESS IN THE
A·VT

J

.

•

K

,
740

2

,

,

4

,

Chart QO

LINE I/O INTERRUPT TRACE ROUTINE

•

•

•

•

4

A
RO-I,C2 Q4-I,C2

•
B

Q2-I,C2 Q5-I,C2

•

Q3-I,C2
ENTER 1/0 SENSE
I NFORMA T I ON
FROM LCBSENSO
(I BYTE) IN THE
TRACE TABLE

B

•

•
C

ENTER THE
CURRENT CSW
FROM LCBCSW ( 7
BYTES) IN THE
TRACE TABLE

INDICATE
'MIDPOINT
REACHED' IN THE
TRACE CONTROL
TABLE

YES

C

•

•
D

ENTER THE LAST
CCW EXECUTED ( 8
BYTES) IN THE
TRACE TABLE

INDICATE 'END
OF TRACE TABLE'
IN THE TRACE
CONTROL TABLE

YES

D

•

•
ENTER THE TP OP
CODE FOR TH I S
CCW (I BYTE) IN
THE TRACE TABLE

NO

E

E

•

•
F

ENTER THE FIRST
CCW IN THE
CHANNEL PROGRAM
(8 BYTES) IN
TRACE TABLE

BRANCH AND LINK
TO THE USER
EX I TROUT! NE

F

•

•
ENTER THE TP OP
CODE FOR TH I S
CCW (I BYTE) IN
THE TRACE TABLE

NO

G

G

•

•
H

ENTER CHANNEL
AND UNITS
ADDRESSES FROM
UCB (2 BYTES)
IN TRACE TABLE

WRAP TO THE
BEGINNING OF
THE TRACE TABLE

~

•
J

YES

H

•
ENTER NAME FROM
THE TERM I NAL
ENTRY TABLE (6
BYTES MAX) IN
THE TRACE TABLE

J

•

•
K

ENTER THE UCB
NAME (3 BYTES)
IN THE TRACE
TABLE

NO

.

K

..

..

4

.
Proqram Orqani2ation

741

Chart QI

LOCAL RECEIVE SCHEDULER

•

2

•

3

•

4

•

A

A

B

B

C

C

D

FREE THE
ATTENTION
ELEMENT

NO

E

F

GET THE ADDRESS
OF THE NEXT
SUBTASK

INITI ALI ZE THE
LCB TO BE
TPOSTED TO
ITSELF

SET THE INITIAL
PRIORITY AND
COUNT

D

GET THE ADDRESS
OF THE BUFFER
REQUEST QCB

E

F

G

G

H

H

•
J

K

2

742

•

•

4

Chart Q2-1 LINE END APPENDAGE FOR BSC LINES

•
leG
A

•

!'jIQ?

ENTER

3

GET THE
')-_ _~ MU~HP~gg~~~~R
FROM THE CVT

) -

~

•

•

4

5

DE TERM I NE ADDR
OF TEXT OR CONTROL CCW FROM
TP CODE FOR
BRANCH TABLE

A

•

•
TESTDSP INTERRUPT
THE OTHER
CPU

B

B

•

•
ACTIVATE I/O
I NTERRUPT TRACE
ROUTINE

C

C

•

•

D

D

•

•

E

E

•
F

F

•
G

G

•

•

H

H

•
..J

J

•

•

K

GET THE RETURN
ADDRESS TO THE
I/O SUPERVISOR
TO SCHEDULE ERP

K

•

•

4

•
?roqram Orqanization

743

Chart Q2-2 LINE END APPENDAGE FOR BSC LINES

•

SET A NEGAT I VE
RESPONSE

A

A

•
9

•
SET THE PARAMETER LI ST TO
TPOST THE ERB
TO THE BUFFER
DI SPOS IT ION QCB

B

•
C

•
PUT
THE

•
D

•
ADJUST THE
RETURN REGISTER
SO THAT THE ECB
I S NOT POSTED

GET THE ADDRESS
OF THE NEXT
ENTRY

D

•
E

•
RESTORE THE
REGISTERS FOR
'THE I/O
SUPERVISOR

E

•

•
F

•
RESTORE THE
REGISTERS FOR
THE I/O
SUPERVI SOR

G

G

•
H

H

•
J

J

•
SET UP TO
RESTART ON THE
NEXT CCW

K

•
744

•

3

•

4

Chart Q2-3 LINE END APPENDAGE FOR BSC LINES

•

•

•

•

4

A

..

•

4
CHACK
B

GET A RESPONSE
TO THE
SELECT ION

B

..

•

C

C

..

•

D

GET THE
TERM I NAL ENTRY
ADDRESS

D

..

•
GET THE LIST OF
BUFFERS FOR THE
MH

E

E

..

•

F

PUT THE BUFFERS
ON THE READY
QUEUE

F

..

•
SET UP TO
RESTART ON THE
NEXT CCW

G

G

•
H

GET THE RETURN
ADDRESS TO THE
I/O SUPERVISOR
TO SCHEDULE ERP

H

..
J

RESTORE THE
REGISTERS FOR
THE I/O
SUPERVISOR

ADJUST THE
RESTART ADDRESS
AND INCREMENT
THE RETRY COUNT

J

..

•
YES

K

K

•

4

Proqram Orqanization

745

Chart Q2-4 LINE END APPENDAGE FOR BSC LINES

,

,

,

4

,

•
B

B

•
CHECK THE
RESPONSE

C

C

•
'-'--~

D

___ I

WRITE RESET
AN EOT TO

D

•
E

RESET THE RETRY
COUNT

E

•
F

BUILD A WRITE
ENQ

GET THE RESTART
POINT

F

•
G

G

•
H

H

•
CHECK ID .AND
SET A BRANCH
RETURN

J

J

•
K

•
746

•

•

4

•

Chart Q2-S LINE END APPENDAGE FOR BSC LINES

•

•

•

•

4

4
CHACK
CHECK THE
RESPONSE

CHECK THE
RESPONSE

•

41

SET UP TO
ON THE
NEXT CCW

>-----... RESTART

B

B

•

41

C

C

•

41

0

D

•

41

E

SET UP TO
REST ART ON THE
NEXT CCW

E

•

41

F

F

•

41

G

G

•

L -__________________

~~

________________________________________

~

_________.\H5

41

H

H

41

RESTORE THE
REGISTERS FOR
THE 1/0
SUPERVISOR

J

41

K

•

•

•

4

Proqram

Orqani~ation

7U..,

Chart Q2-6 LINE END APPENDAGE FOR BSC LINES

•

•

•

•

4

5

SCAN
SCAN LINE
CONTROL

A

•

•
ENQUEUE
B

SET UP TO
RESTART ON READ
LCOUT

TPOST THE
BUFFER TO THE
MH AS EOM

•

•
C

B

ADJUST THE
RETURN REG I STER
SO THAT THE ECB
I S NOT POSTED

FINDBUFF

BU I LD A WR ITE
NAK, READ TEXT

SET UP TO START
AT WRITE ACK
(NAK)

SET THE CURRENT
BUFFER BASE

C

•

•
RESTORE THE
REGISTERS FOR
THE I/O
SUPERVISOR

ADJUST PRFSIZE

D

•

D

•
ENQUEUE

E

•

Y

TPOST THE
BUFFER TO THE
MH

FI

E

•
CHACK
F

CHECK THE
RESPONSE

F

•

•
G

CHACK

IDCHK

CHECK THE
RESPONSE

CHECK THE I D ;
SET UP FOR A
BRANCH RETURN

SET THE TIC
CHA IN FOR
TRANSPARENT
BUFFER

YES

G

•

•
FINDBUFF

IDCHK
CHECK THE
RESPONSE

H

GET THE CURRENT
BUFFER

H

TPOST THE
BUFFER TO THE
MH WITH ERROR

J

•
RESTART ON THE
DISABLE

J

•

•
K

ENQUEUE

SET UP TO
RESTART ON READ
10 ENQ

PUT THE BUFFER
ON THE READY
QUEUE

•
748

•

•

4

•

Chart Q2-7 LINE END APPENDAGE FOR BSC LINES

•

•

•

•

5

FINDBUFF
A

FIND THE
CURRENT BUFFER

A

•

•
SET PARAMETER
LIST TO TPOST
THE BUFFER TO
THE BUFFER
01 SPOS IT ION QCB

B

GET THE RETURN
ADDRESS TO THE
I/O SUPER V I SOR
TO SCHEDULE ERP

8

•

•

C

PUT
ON

C

•

•
SET UP TO TPOST
THE ERB TO THE
BUFFER
01 SPOS IT ION QCB

0

ADJUST THE
RETURN REG I STER
SO THAT THE ECB
IS NOT POSTED

PUT THE ERB ON
THE READY QUEUE

D

•

•

E

E

•

•
SET UP TO TPOST
THE ZERO-LENGTH
BUFFER TO THE
MH

F

ENQUEUE
PUT THE BUFFER
ON THE READY
QUEUE

F

•

•
RESTART AT
WRITE IDLES

G

G

•
H

•
SAVE THE FIRST
BUFFER

H

•

•
SET UP TO TPOST
THE BUFFER TO
THE BUFFER
RETURN QCB

J

PUT THE BUFFER
ON THE READY
QUEUE

J

•

•
TPOST THE FIRST
BUFFER TO THE
BUFFER RETURN
QCB

K

•

•

•

4

•
Proqram Orqanization

749

Chart Q2·8 LINE END APPENDAGE FOR BSC LINES

,

2

,

4

,

START ON THE
INITIAL CONTACT
SEQUENCE

A

A

..

•
ADJUST THE
REGISTERS; FIND
THE TRUE
FAILING CCW

ADJUST THE CCW
TO READ/WRITE

B

SET UP THE
CURRENT CCW FOR
CONT I NUE; SET
THE OFFSETS FOR
RECALL

..

B

•
COMPUTE THE
SOURCE OF THE
RESPONSE FOR
AUTO POLL

C

SET UP TO TPOST
THE BUFFER TO
THE MH AS THE
LAST BUFFER

BUILD THE
PARAMETER LIST
FOR F I NDBUFF

..

C

•
FINDBUFF

GET THE OFFSET
INTO THE
BUFFER; SET THE
CURRENT CCW FOR
CONTINUE

GET THE CURRENT
BUFFER

0

ENQUEUE
TPOST THE
BUFFER

..

0

•
4
BSC270X

NO

E

ADJUST THE
WRITE CCW

ADJUST THE
RETURN REG I S TER
SO THAT THE ECB
I S NOT POSTED

ADJUST THE ERB
BUFFER COUNT

.

E

•
YES

F

ADJUST THE CCW
TO READ OVER
THE EOB

F

..
SCAN
G

TPOST THE LAST
BUFFER TO THE
BUFFER
DISPOSITION QCB

CHECK THE LINE
CONTROL

G

..
FORCE A 01 SABLE
ON THE NEXT
OPERATION

H

ENQUEUE
PUT THE BUFFER
ON THE READY
QUEUE

TPOST THE
BUFFER TO THE

H

MH

..

•
ADJUST THE
RETURN REGISTER
SO THA T THE· ECB
I S NOT POSTED

J

RESTORE THE
REGISTERS FOR
THE 1/0
SUPERVISOR

..
K

•
BUILD THE
PREVIOUS ACK TO
START ON

BU I LD A WR I TE
ACK FOR RESTART

•
750

J

2

K

•

4

•

Chart Q2-9 LINE END APPENDAGE FOR BSC LINES

•

•

•

•

A

•

Q2-6,Al,C2,H4

Q2-2,CI,C2

Q2-6,BI,E2,K4

Q2-7,A3

Q2-3,F2

Q2-7 ,C3 ,03 ,F3 ,..J3

Q2-6,D3

Q2-6,D5,H3,H4

Q2-13,Dl

•

Q2-9,G2
B

B

•

•
SET THE CURRENT
ELEMENT AS THE
LAST IN THE
DISABLEO REAOY
QUEUE

C

C

•

•
INSERT THE
CURRENT ELEMENT

NO

o

.>-----<~ I N THE CHA I N OF

PREVIOUS
ELEMENTS

D

•

•
INCREMENT THE
BUFFER COUNT

E

GET THE ADDRESS
OF THE NEXT
BUFFER

PUT THE CURRENT
ELEMENT AT THE
TOP OF THE
READY QUEUE

E

•

•
SET THE PREFIX
S·l ZE; SET THE
PARAMETERS TO
TPOST TO THE MH

F

CLEAR THE LINK
FIELD OF THE
CURRENT ELEMENT

F

•
G

. SET THE
PARAMETER Ll ST
FOR BUFFER
RETURN

PUT THE BUFFER
ON THE READY
QUEUE

G

•

•
POST - POST
THE SYSTEM
WAIT
COMPLETE

H

H

•

•

..J

..J

•
K

•

4

•
Proqram Orqanization

751

Chart Q2-1 0 LINE END APPENDAGE FOR BSC LINES

,

,

,

,

4

A
Q2-4,J4

•

Q2-8,E2

Q2-6,H2,G3

41

GET THE ADDRESS
B

OFT~~EI8c~~AgET

ADJUST THE TIC
CHAIN IN THE
BUFFERS TO
TPOST

YES

AREA

•

41

ADJUST THE
RESPONSE LENGTH
BY 2

C

C

•

41

ADJUST THE
RESPONSE LENGTH
BY 1

D

YES

ADJUST THE
COUNT FOR A
PREVIOUSCCW

•
E

D

41

PAD THE
RESPONSE AREA
WITH BLANKS

YES

ADJUST THE CSW
FOR RESTART

•
F

B

E

41

GET # OF INVITATION LISTS
AND PO I NTER TO
I NV I TAT I ON LI S T
FOR TH I S LI NE

YES

F

•

41

INCREMENT THE
CCW DATA
ADDRESS BY 1

G

G

•

41

H

H

•

41

SET THE SOURCE
OF THE CALL I NG
TERMINAL

J

J

•
K

41

GET THE NEXT
ENTRY IN THE
LIST

•
752

2

•

•

4

•

ChartQ2-11 LINE END APPENDAGE FOR BSC LINES

•

•

•

•

4

Q2-6,A2

•

Q2-8.Gl
RN-l,F3

B

B

•

.
GET THE ADDRESS
OF THE FIRST
BYTE OF DATA

C

SET A FORMAT
ERROR - INVALID
START

C

•
D

D

•

.

E

E

•

.

F

GET THE FIRST
DATA BYTE FROM
THE CURRENT CCW

.

•
G

GET THE SCT
ADDRESS; POINT
TO STX-ENQ

INCREMENT THE
I DLES COUNT BY
2

G

•

..

H

H

•

.

J

J

•

..

K

•

•

4

Proqram Orqanization

753

Chart Q2-12 LINE END APPENDAGE FOR BSC LINES

•

...-J-.,
Q2-12

•

3

•

•

4

AI

A
Q2-3,81

Q2-4,C3

Q2-5,A I ,A3

•

•

8

8

•

•

C

•

•

D

D

•

•

E

E

•

•

F

F

•

•

G

TO
ON
ACK

G

•

•

H

H

•

•
J

RESTORE THE
REG I STERS FOR
THE I/O
SUPER V I SOR

J

•

•

K

•
754

2

•

•

Chart Q2-13 LINE END APPENDAGE FOR BSC LINES

•

•

•

•

4

A

A

..

Q2-4,Fl

B

B

.
C

BUILD THE
PARAMETER LIST
FOR FINDBUFF

SET THE SCB
OFFSETS

C

..
o

SET UP TO
RESTART ON THE
NEXT BLOCK

GET THE CURRENT
BUFFER

o

..
E

ADJUST THE
BUFFER COUNT IN
THE ERB

E

..
~~...l...o'"

F

WRITE AN EOT TO
RESET THE
I-~-<
TERMINAL

RESTORE THE
REG ISTERS FOR
THE 1/0
SUPERVISOR

F

..
G

SET.THE OFFSET
I N THE SCB FOR
POSSIBLE RECALL

G

..
GET THE ADDRESS
OF THE NEXT
UNIT

H

H

..
BUILD A WRITE
EOT TO RESET
THE TERM I NAL

J

.
K

•

•

4

•
Proaram Oraanization

755

Chart Q3-1

LINE END APPENDAGE FOR START/STOP LINES

•

A

•

)--

•

4

•

DETERM I NE ADDR
OF TEXT OR CONTROL CCW FROM
TP CODE FOR
BRANCH TABLE

•
B

TESTDSP INTERRUPT
THE OTHER
CPU

B

•
C

C

•
D

D

•
E

E

•
F

F

G

G

•
H

H

•
J

J

•
K

K

•
156

4

•

Chart Q3-2 LINE END APPENDAGE FOR START/STOP LINES

•

SET A NEG AT I VE
RESPONSE

A

A

..

•
B

SET THE PARM.tETER LIST TO
TPOST THE ERB
TO THE BUFFER
DISPOSITION QCB

B

•
C

41

PUT
THE

C

..

•
D

ADJUST THE
RETURN REGISTER
SO THAT THE ECB
I S NOT TPOSTED

GET THE ADDRESS
OF THE NEXT
ENTRY

D

.

•
E

RESTORE THE
REGISTERS FOR
THE 1/0
SUPERVISOR

E

•

41

YES

F

UPDATE THE
INVITATION LIST
POINTER

F

•

41

RESTORE THE
REG I STERS FOR
THE 1/0
SUPERVISOR

SET UP TO START
ON THE NEXT CCW

G

G

•

41

H

H

•

..

J

J

•

..
SET UP TO
RESTART ON THE
NEXT CCW

K

•

•

4

K

•
Proqram Orqanization

757

Chart Q3-3 LINE END APPENDAGE FOR START/STOP LINES

,

A

5

BU I LD A BREAK
COMMAND AND
SAVE THE
CURRENT CSW

A

SET THE TP OP
CODE
X' 12"
SET THE STARt
ADDRESS

B

•
B

=

•
C

C

•
GET THE LIST OF
BUFFERS FOR THE
MH

D

D

•
E

PUT THE BUFFERS
ON THE READY
QUEUE

E

•
.,--~---.

F

ADJUST THE
RETURN REGISTER
SO THAT THE ECB
IS NOT POSTED

RESTORE THE
REG!STERS FOR
THE 1/0
SUPERVI SOR

F

•
SET UP TO
RESTART ON THE
NEXT CCW

G

G

•
H

H

•
J

J

•
K

K

•
758

2

•

4

Chart Q3-4 LINE END APPENDAGE FOR START/STOP LINES

•

NO

A

•
ADJUST THE
RETURN REGISTER
SO THAT THE ECB
IS NOT POSTED

A

.
B

•
SET UP TO
RESTART ON THE
WRITE IDLES
LOOP

SET THE ENDING
STATUS

ENQUEUE
TPOST THE LCB
TO THE MH

..

•
ADJUST THE
RETURN REGISTER
SO THAT THE ECB
I S NOT POSTED

C

..

C

•
RESTORE THE
REGI STERS FOR
THE 1/0
SUPERVISOR

FINDBUFF

0

B

GET THE CURRENT
BUFFER

0

..

•
ENQUEUE

E

TPOST THE
BUFFER TO. THE
MH AS EOM

E

..
F

•
ADJUST THE
RETURN REG I STER
SO THAT THE ECB
I S NOT POSTED

F

..

•
YES

G

SET THE TIC
CHAIN FOR
TRANSPARENT
BUFFER

..

G

•
FINDBUFF

H

GET THE CURRENT
BUFFER

H

.

•
TPOST THE
BUFFER TO THE
MH WITH ERROR

J

J

..

•
ENQUEUE
PUT THE BUFFER
ON THE READY
QUEUE

K

•

4

Proqram Orqanization

759

Chart Q3-5 LINE END APPENDAGE FOR START/STOP LINES

•

•

•
~I DCHK

CHECK THE 10
FOR TWX

A

•

FINDBUFF
FIND THE
CURRENT BUFFER

•

•
SET PARAMETER
Ll ST TO TPOST
THE BUFFER TO
THE BUFFER
01 SPOS IT ION QCB

B

GET THE RETURN
ADDRESS TO THE
I/O SUPERV I SOR
TO SCHEDULE ERP

B

•

•
PUT
ON

C

•

•
SET UP TO TPOST
THE ERB TO THE
BUFFER
DISPOSITION QCB

0

ADJUST THE
RETURN REGISTER
SO THAT THE ECB
I S NOT POSTED

ENQUEUE
PUT THE ERB ON
THE READY QUEUE

0

•

•

E

E

•

•
SET UP TO TPOST
THE ZERO-LENGTH
BUFFER TO THE
MH

F

ENQUEUE
PUT THE BUFFER
ON THE READY
QUEUE

F

•
RESTART AT
WRITE IDLES

G

G

•
H

SAVE THE FIRST
BUFFER

H

•

•
J

SET UP TO TPOST
THE BUFFER TO
THE BUFFER
RETURN QCB

PUT THE BUFFER
ON THE READY
QUEUE

J

•
K

TPOST THE FIRST
BUFFER TO THE
BUFFER RETURN
QCB

K

..
760

4

Chart Q3-6 LINE END APPENDAGE FOR START/STOP LINES

•

A

YES

•

3

•

•

4

START ON THE
INITIAL CONTACT
SEQUENCE

A

•
B

•
YES

ADJUST THE CCW
TO READ/WRITE

SET UP THE
CURRENT CCW FOR

ADJUST THE
REGISTERS; FIND
THE TRUE
FAILING CCW

T~~NM~~Hs S~6R

•
C

•
YES

COMPUTE THE
SOURCE OF THE
RESPONSE FOR
AUTO POLL

SET UP TO TPOST
THE BUFFER TO
THE MH AS THE
LAST BUFFER

BUILD THE
PARAMETER LIST
FOR F I NDBUFF

•
GET THE CURRENT
BUFFER

GET THE OFFSET
INTO THE
THE
FOR
CONTINUE

~~k~~~f ~N

ENQUEUE
TPOST THE
BUFFER

•
E

C

•
FINDBUFF

0

B

RECALL

0

•
ADJUST THE
RETURN REGISTER
SO THAT THE ECB
IS NOT POSTED

ADJUST THE ERB
BUFFER COUNT

E

•
ADJUST THE CCW
TO READ OVER
THE EOB

F

F

•
G

•
TPOST THE LAST
BUFFER TO THE
BUFFER
DISPOSITION QCB

G

•

•
ENQUEUE

H

PUT THE BUFFER
ON THE READY
QUEUE

H

TPOST THE
BUFFER TO THE
MH

•
J

•
ADJUST THE
RETURN REGISTER
SO THAT THE ECB
I S NOT POSTED

RESTORE THE
REG I STERS FOR
THE I/O
SUPERVISOR

J

•

•

K

K

4

Proqram Orqanization

7f1

Chart Q3-7 LINE END APPENDAGE FOR START/STOP LINES

•

YES

A

•

•

CHANGE THE
PREPARE TO A
READ COMMAND

..

NO

•
B

B

•

.
SET THE RESTART
ADDRESS TO READ

C

C

.

•
CA~~~~ER~lblto

>-.......,,......... PREPARE

o

o

AND SET
THE RESTART
ADDRESS

..
E

BM~5 rH~R~~~RE
COMMAND. AND
SET THE START
ADDRESS

E

.

•
IEDQKA

F

BUILD A 1050
CHANNEL PROGRAM

TPOST THE
BUFFER TO MH

F

.

•
G

INCREMENT THE
RETURN REGISTER
TO SK IP THE
POST IN 105

PUT THE LCB/ERB
ON THE READY
QUEUE

G

•

..

H

H

•

..

J

J

•

..

K

TPOST THE LCB
TO THE HANGUP
ROUTINE

•
762

•

K

4

•

Chart Q3-8 LINE END APPENDAGE FOR START/STOP LINES

•

•

•

•

4

A

..

Q3-4,Dl,H3

Q3-2,Cl,C2

Q3-5,C3,D3,F3,J3

Q3-5,A3

Q3-3,E2

Q3-6,D5,H3,A4

Q3-6,D3

Q3-4,B5,EI,K3 Q3-7,Gl,K3,F4

•

Q3-8,G2
PUT QCB ADDR

IN

G~~E A55~M6~T tHE

B

LAST ELEMENT ON
READY QUEUE

..

B

•
SET THE CURRENT
ELEMENT AS THE
LAST IN THE
DISABLED READY
QUEUE

C

C

..

•

D

D

..

•
I NCREMENT THE
BUFFER COUNT

E

GET THE ADDRESS
OF THE NEXT
BUFFER

PUT THE CURRENT
ELEMENT AT THE
TOP OF THE
READY QUEUE

..

E

•
SET THE PREF I X
SIZE; SET THE
PARAMETERS TO
TPOST TO THE MH

F

CLEAR THE LINK
FIELD OF THE
CURRENT ELEMENT

F

•
G

SET THE
PARAMETER L1 ST
FOR BUFFER
RETURN

PUT THE BUFFER
ON THE· READY
QUEUE

G

.

•
POST - POST
THE SYSTEM
WAIT
COMPLETE

H

H

..

•

J

J

..

•

K

K

•

4

Proqram Orqanization

7E 3

Chart Q3-9 LINE END APPENDAGE FOR START/STOP LINES

•

2

•

•

4

A
Q3-5,A2

•

•
GET THE ADDRESS

B

OFT~~ElgC~hgET

B

AREA

•

•
YES

C

AD..JUST THE
RESPONSE LENGTH
BY 2

C

•

•
YES

D

AD..JUST THE
RESPONSE LENGTH
BY t

D

•
E

•
PAD THE
RESPONSE AREA
WITH BLANKS

E

•

•
F

GET # OF INVITATION LISTS
AND PO I NTER TO
INVITATION LIST
FOR THI S LINE

F

•

•

G

G

•

•

H

H

•

•
SET THE SOURCE
OF THE CALL I NG
TERMINAL

..J

..J

•
K

•
GET THE NEXT
ENTRY IN THE
LIST

K

•
764

3

•

•

Chart Q4-1

LINE END APPENDAGE FOR LEASED & STARt/STOP LINES WITH NO TSO

•

A

•

•

>---...

}-

GET THE
MUL T I PROCE S SOR
C'IT ADDRESS
FROM THE CVT

•

4

DETERM I NE ADDR
OF TEXT OR CONTROL CCW FROM
TP CODE FOR
BRANCH TABLE

A

•

•
TESTDSP INTERRUPT
THE OTHER
CPU

B

B

•

•
ACT I 'lATE 1/0
I NTERRUPT TRACE
ROUTINE

C

C

•

41

o

o

•

41

E

E

•

41

F

F

•

•

G

G

•

41

+24

'''~

H

~

~

01

•

.j

•

+34

~

GET THE RETURN
ADDRESS TO THE
1/0 SUPERVISOR
TO SCHEDULE ERP

•

•

•

+30

~

.j

H

."

K

4

Proqram Orqanization

765

Chart Q4-2 LINE END APPENDAGE FOR LEASED & START/STOP LINES WITH NO TSO

~

•

•

•

'7

SET A NEGATIVE
RESPONSE

A

..
B

SET THE PARAr-AETER LI ST TO
TPOST THE ERB
TO THE BUFFER
QI SPOS ITION QCB

SET THE LCB TO
BE TPOSTED TO
THE QCB ADDRESS
SPECIFIED IN
THE LCB

B

..
GET THE ADDRESS
OF THE
I NV I TATION

ENQUEUE
C

PUT THE ERB ON
THE READY QUEUE

PUT THE ELEMENT
ON THE READY
QUEUE

C

L~~~~I~PCTMT~E

..
D

ADJUST THE
RETURN REGISTER
SO THAT THE ECB
I S NOT TPOSTED

GET THE ADDRESS
OF THE NEXT
ENTRY

D

..
E

RESTORE THE
REG I STERS FOR
THE I/O
SUPER V I SOR

E

..
F

F

..
RESTORE THE
REGISTERS FOR
THE I/O
SUPERV I SOR

G

G

..
H

H

..
J

J

..
SET UP TO
RESTART ON THE
NEXT CCW

K

•
766

4

K

Chart Q4-3 LINE END APPENDAGE FOR LEASED & START/STOP LINES WITH NO TSO

,

A

•

•

B

B

•

•

c

C

•

•

D

GET THE LI ST OF
BUFFERS FOR THE

D

MH

•

•
ENQUEUE

E

PUT THE BUFFERS
ON THE READY
QUEUE

E

•

•
NO

:>--------i

F

ADJUST THE
RETURN REGISTER
SO THAT THE ECB
I S NOT POSTED

RESTORE THE
REG I STERS FOR
THE 1/0
SUPER V I SOR

F

•
G

•
SET UP TO
RESTART ON THE
NEXT CCW

G

•

•

H

H

•

•

J

J

•

•

K

K

•

4

•
Proaram Orqanization

7E7

Chart Q4-4 LINE END APPENDAGE FOR LEASED & START/STOP LINES WITH NO TSO

,

,

,

•

NO

>--.........

A

..

ADJUST THE
RETURN'REGISTER
SO THAT THE ECB
I S NOT POSTED

A

•
GET THE' RETURN
ADDRESS TO THE
1/0 SUPERVI SOR
TO SCHEDULE ERP

B

SET UP TO
RESTART ON THE
WRITE IDLES
LOOP

B

..

•

C

C

.

•
~;;..;.....t......~

D

SET UP TO TPOST
THE ~E~F~2 THE
DISPOSITION QCB

ADJUST THE
RETURN REGISTER
SO THA T THE ECB
I S NOT POSTED

PUT THE ERB ON
THE READY QUEUE

D

.

•

E

E

.

•
>--...I-<~

F

SET UP TO TPOST
THE ZERO-LENGTH
BUFFER TO THE.
MH

PUT THE BUFFER
ON THE READY
QUEUE

F

..

•
RESTART AT
WRITE IDLES

G

G

..
H

SAVE THE FIRST
BUFFER

H

..
J

•
YES

SET UP TO TPOST
THE BUFFER TO
THE BUFFER,
RETURN QCB

PUT THE BUFFER
ON THE READY
QUEUE

J

.
K

•
BUSY

TPOST THE FIRST
BUFFER TO THE
BUFFER RETURN
QCB

K

•
768

•

4

•

Chart Q4-S LINE END APPENDAGE FOR LEASED & START/STOP LINES WITH NO TSO

•

•

YES

A

•

•

4

START ON THE
INITIAL CONTACT
SEQUENCE

A

•

•
YES

B

ADJUST THE
REGISTERS; FIND
THE TRUE
FAILING CCW

ADJUST THE CCW
TO READ/WRITE

NO

SET UP THE
CURRENT CCW FOR

T~~NU~~Hs SfbR

B

RECALL

•

•
BUILD THE
PARAMETER LIST
FOR F I NDBUFF

C

YES

SET UP TO TPOST
THE BUFFER TO
THE MH AS THE
LAST BUFFER

•

•
FINDBUFF

D

GET THE OFFSET
INTO THE
BUFFER; SET THE
CURRENT CCW FOR
CONTINUE

GET THE CURRENT
BUFFER

ENQUEUE
TPOST THE
BUFFER

•

0

•
ADJUST THE
RETURN REGISTER
SO THAT THE ECB
IS NOT POSTED

ADJUST THE ERB
BUFFER COUNT

E

•

E

•
ADJUST THE CCW
TO READ OVER
THE EOB

F

F

•

•
SET THE TIC
CHAIN FOR
TRANSPARENT
BUFFER

G

TPOST THE LAST
BUFFER TO THE
BUFFER
01 SPOS I TI ON QCB

G

•

•
FINDBUFF

H

C

ENQUEUE

GET THE CURRENT
BUFFER

PUT THE BUFFER
ON THE READY
QUEUE

TPOST THE
BUFFER TO THE
MH

H

•

•
ADJUST THE
RETURN REGISTER
SO THA T THE ECB
IS NOT POSTED

TPOST THE
BUFFER TO THE
MH WITH ERROR

RESTORE THE
REGISTERS FOR
THE I/O
SUPERVISOR

J

•
ENQUEUE
K

PUT THE BUFFER
ON THE READY
QUEUE

•

•

4

Proqram Oraanization

769

Chart Q4-6 LINE END APPENDAGE FOR LEASED & START/STOP LINES WITH NO TSO

•

2

•

•

•

4

A

A
Q4-5,HI,D3

Q4-2,CI,C2

Q4-5,D5,H3,H4

Q4-3,E2

Q4-6,G2

Q4-4,D3,F3,..J3
PUT QCB ADDR I N
THE ELEMENT;
GET ADDR OF THE
LAST ELEMENT ON
READY QUEUE

8

..
B

..
SET THE CURRENT
ELEMENT AS THE
LAST IN THE
DISABLED READY
QUEUE

C

..
INSERT THE
CURRENT ELEMENT
IN THE CHAIN OF
PREVIOUS
ELEMENTS

o

D

..
PUT THE CURRENT
ELEMENT A T THE
TOP OF THE
READY QUEUE

GET THE ADDRESS
OF THE NEXT
BUFFER

I NCREMENT THE
BUFFER COUNT

E

E

..
SET THE PREFIX
SIZE; SET THE
PARAMETERS TO
TPOST TO' THE MH

F

CLEAR THE LINK
FIELD OF THE
CURRENT ELEMENT

F

..
G

SET THE
PARAMETER LIST
FOR BUFFER
RETURN

G

PUT THE BUFFER
ON THE READY
QUEUE

..
POST - POST
THE SYSTEM
WAIT
COMPLETE

H

H

.
..J

..
K

K

•
770

•

4

•

Chart QS-l LINE END APPENDAGE FOR A QTAM-COMPATIBLE SYSTEM

•

A

•

•

>----...

)--

GET THE
MUL T I PROCESSOR
CVT ADDRESS
FROM THE CVT

•

4

DETERM I NE ADDR
OF TEXT OR CONTROL CCW FROM
TP CODE FOR
BRANCH TABLE

A

•
TESTDSP INTERRUPT
THE OTHER
CPU

B

B

•
C

ACT! VATE 1/0
I NTERRUPT TRACE
ROUTINE

C

•
D

D

•
E

E

•
F

F

•
G

G

•
H

H

•
J

J

•
K

GET THE RETURN
ADDRESS TO THE
1/0 SUPER V I SOR
TO SCHEDULE ERP

K

•

•

4

Proqram Orqanization

771

Chart QS-2 LINE END APPENDAGE FOR A QTAM-COMPATIBLE SYSTEM

,

,

,

SET A NEGATIVE
RESPONSE

A

..

•
B

SET THE PARAMETER LIST TO
TPOST THE ERB
TO THE BUFFER
01 SPOS I TI ON QCB

B

.

•
C

ENQUEUE

ENQUEUE

PUT THE ERB ON
THE READY QUEUE

PUT THE ELEMENT
ON THE READY
QUEUE

SET THE LCB TO
BE TPOSTED TO
THE BUFFER
01 SPOS I TI ON QCB

GET THE ADDRESS
OF THE
INVITATION
LI ST; RESET THE
RECEIVE LIMIT

C

..

•
o

ADJUST THE
RETURN REGISTER
SO THAT THE ECB
I S NOT TPOSTED

GET THE ADDRESS
OF THE NEXT
ENTRY

0

..

•
E

RESTORE THE
REG I STERS FOR
THE I/O
:;UPERVISOR

E

•

..

F

F

•

..

G

RESTORE THE
REGISTERS FOR
THE 110
SUPER V I SOR

SET UP TO START
ON THE NEXT CCW

G

•

..

H

H

•

..

J

J

•

..
SET UP TO
RESTART ON THE
NEXT CCW

K

•
772

4

Chart Q5-3 LINE END APPENDAGE FOR A QTAM-COMPATIBLE SYSTEM

,

A

A

..

•

B

B

.

•

c

c

..

•

D

GET THE LIST OF
BUFFER S FOR THE
MH

D

.
E

•
PUT THE BUFFERS
ON THE READY
QUEUE

E

•
RESTORE THE
REG I STERS FOR
THE 1/0
SUPERVI SOR

F

F

.
G

•
SET UP TO
RESTART ON THE
NEXT CCW

G

..

•

H

H

..

•

-.J

-.J

.

•

K

K

•

4

•
Program Orqanization

773

Chart QS-4 LINE END APPENDAGE FOR A QTAM-COMPATIBLE SYSTEM

•

•

•

YES

A

4

,

SET UP TO
RESTART ON THE
WR ITE IDLES
LOOP

..

..
NO

B

ENQUEUE

ADJUST THE
RETURN REGISTER
SO THAT THE ECB
I S Nor POSTED

TPOST THE LCB
TO THE MH

e

..

..
C

ADJUST THE
RETURN REGISTER
SO THAT THE ECB
IS NOT POSTED

RESTORE THE
REG I STERS FOR
THE 1/0
SUPERVISOR

C

..
D

41

RESTORE THE
REG I STERS FOR
THE 1/0
SUPER V I SOR

D

..
E

E

..

..
GET

F

F

..

.
SET THE TIC
CHA IN FOR
TRANSPARENT
8UFf:"ER

YES

G

ENQUEUE
TPOST THE
8UFFER TO THE
MH AS EOM

.

..
ADJUST THE
RETURN REG I 5 TER
SO THAT THE Ece
I S NOT POSTED

FIND8UFF
H

GET THE CURRENT
BUFFER

H

..
J

..
RESTORE THE
REG I STERS FOR
THE 1/0
SUPERVI SOR

TPOST THE
BUFf:"ER TO THE
MH WITH ERROR

J

..

..
ENQUEUE

K

PUT THE BUf:"FER
ON THE READY
QUEUE

K

•
114

•

Chart QS-S LINE END APPENDAGE FOR A QTAM-COMPATIBLE SYSTEM

•

•

•
FINDBUFF

I DCHK
A

CHECK THE 10
FOR TWX

•

A

FIND THE
CURRENT BUFFER

•

41

SET PARAMETER
LI ST TO TPOST
THE BUFFER TO
THE BUFFER
01 SPOS I TlON QCB

B

GET THE RETURN
ADDRESS TO THE
110 SUPERVISOR
TO SCHEDULE ERP

•

B

41

C

C

PUT
ON

•

41

SET UP TO TPOST
THE ERB TO THE
BUFFER
DISPOSITION QCB

0

ENQUEUE

ADJUST THE
RETURN REG I S TER
SO THAT THE ECB
I S NOT POSTED

PUT THE ERB ON
THE READY QUEUE

0

•

41

E

E

41

SET UP TO TPOST
THE ZERO-LENGTH
BUFFER TO THE
MH

F

ENQUEUE
F

PUT THE BUFFER
ON THE READY
QUEUE

•

41

RESTART AT
WRITE IDLES

G

G

•
H

41

SAVE THE FIRST
BUFFER

H

•

41

SET UP TO TPOST
THE BUFFER TO
THE BUFFER
RETURN QCB

J

PUT THE BUFFER
ON THE READY
QUEUE

J

•

41

TPOST THE FIRST
BUFFER TO THE
BUFFER RETURN
QCB

K

•

•

4

Proqram Orqani2ation

775

Chart Q5-6 LINE END APPENDAGE FOR A QTAM-COMPATIBLE SYSTEM

,

A

•

4

•

START ON THE
I N I TI AL CONTACT
SEQUENCE

..
B

•
AD..JUST THE
REGISTERS; FIND
THE TRUE
FAILING CCW

AD..JUST THE CCW
TO READ/WRITE

SET UP THE
CURRENT CCW FOR

T~~NM~~Hs S~6R

.
C

B

RECALL

•
COMPUTE THE
SOURCE OF THE
RESPONSE FOR
AUTO POLL

SET UP TO TPOST
THE BUFFER TO
THE MH AS THE
LAST BUFFER

BUILD THE
pARAMETER LIST
FOR F I NDBUFF

C

..
FINDBUFF

GET THE OFFSET
INTO THE
THE
FOR
CONTINUE

GET THE CURRENT
BUFFER

0

~~~~~~f E~~

ENQUEUE
TPOST THE
BUFFER

.

0

•
AD..JUST THE
RETURN REGISTER
SO THA T THE ECB
IS NOT POSTED

AD..JUST THE ERB
BUFFER COUNT

E

.

E

•
AD..JUST THE CCW
TO READ OVER
THE EOB

F

F

.

•
TPOST THE LAST
BUFFER TO THE
BUFFER
01 SPOS ITION QCB

G

IEDQKE
G

.
ENQUEUE
PUT THE BUFI'"ER
ON THE READY
QUEUE

H

TPOST THE
BUFFER TO THE
MH

H

..

•
AD..JU5-T THE
RETURN REGISTER
SO THAT THE ECB
I S NOT POSTED

..J

RESTORE THE
REGISTERS FOR
THE I/O
SUPERVISOR

..J

..

•

K

K

2

176

•

•

4

5

Chart Q5-7 LINE END APPENDAGE FOR A QTAM-COMPATIBLE SYSTEM

•

•

•

,

4

A

A
Q5-4,H2,F4

Q5-2,CI,C2

Q5-5,C3,D3,F3,J3

Q5-5,A3

Q5-3,E2

QS-6,H3,H4,DS

Q5-6,D3

Q5-4,B2,K2,G4 Q5-7,G2
PUT QCB ADDR

IN

G~~E A55~M5~T tHE
LAST El.EMENT ON
READY QUEUE

B

•
B

•
SET THE CURRENT
ELEMENT AS THE
LAST IN THE
01 SABLED READY
QUEUE

C

C

•
INSERT THE

NO
CURRENT ELEMENT
.r----<..
I N THE CHA I N OF
PREVIOUS

D

D

ELEMENTS

•
I NCREMENT THE
BUFFER COUNT

E

PUT THE CURRENT
ELEMENT A T THE
TOP OF THE
READY QUEUE

GET THE ADDRESS
OF THE NEXT
BUFFER

E

•
SET THE PREF I X
SIZE: SET THE
PARAMETERS TO
TPOST TO THE MH

F

CLEAR THE LINK
FIELD OF THE
CURRENT ELEMENT

F

•
G

SET THE
PARAMETER LIST
FOR BUFFER
RETURN

PUT THE BUFFER
ON THE READY
QUEUE

G

•
POST - POST
THE SYSTEM
WAIT
COMPLETE

H

H

•
J

J

•
K

•

•

4

•
Proqram Orqanization

777

Chart Q5-8 LINE END APPENDAGE FOR A QTAM-COMPATIBLE SYSTEM

,

,

3

,

4

B

Q5-5,A2

•
GET THE ADDRESS
OF T~~E I gC~~AgET
AREA

B

..

•
ADJUST THE
RESPONSE LENGTH
BY 2

YES

C

C

.

•
ADJUST THE
RESPONSE LENGTH
BY 1

YES

D

D

.
E

•
PAD THE
RESPONSE AREA
WITH BLANKS

E

.
F

5

A

A

..

,

•
GET # OF INVITATION LISTS
AND PO I NTER TO
INVITATION LIST
FOR TH I S LI NE

F

.

•

G

G

...

•

H

H

.

•
SET THE SOURCE
OF THE CALLING
TERMINAL

J

J

.
K

•
GET THE NEXT
ENTRY IN THE
LIST

K

•
778

2

•

4

Chart Q6

SEND SCHEDULER FOR LEASED LINES AND NO TSO

,

,

,

,

4

A
HM-B,E2 AS-2,.J5

.

HMI-6,E2
~----------------~HM2-7,E2

B

GET THE LCB

B

..
C

C

..
D

STORE THE
DESTINATION
ADDRESS

TPOST THE LCB
TO ITSELF

D

..
YES
SET UP POINTERS
>-;;;.;...-...
FOR INITIATE

E

NO-OP THE TIC
CCW

MODE MESSAGES

E

..
YES

F

F

..
G

MOVE THE SEND
SCHEDULER STCB
TO THE QCB

SET UP FOR A
SEND OPERATION

AN
SVC

G

.
H

H

..
..
K

•

4

Proqram Orqanization

779

Chart Q7-1 SEND SCHEDULER WITH NO TSO

,

2

,

,

4

,

A

A

..
LcescAN

YES

GET THE
DESTINATION Lce
ADDRESS

e

.
C

..
D

STORE THE
DESTINATION
ADDRESS

D

..
r--"
YES

E

SET UP PO INTERS
FOR INITIATE
MODE MESSAGES

E

..
YES

F

.
G

SET UP FOR A
SEND OPERATION

MOVE THE SEND
SCHEDULER STce
TO THE Qce

G

..
H

H

J

J

.
K

K

•
780.

•

•

4

•

Chart Q7-2 SEND SCHEDULER WITH NO TSO

•

Q7-I,84

•
8

HM-8,E2
81 J----IHMI-6,E2

•

•

•

4

HM2-7,E2

..

AS-2,J5

8

GET THE LC8

..

•
SAVE THE FIRST

NOT I N USE
>-;;,......-... LC8
FOR POSS 18LE

C

C

CALL-UP

•

.

05

LI NK THE STC8
TO THE LC8

0

o

•
E

E

•

.

F

TPOST THE LC8
TO ITSELF

PUT THE MESSAGE

>---~ IN THE DIAL-OUT

F

CALL QUEUE

•

..

G

G

•

.
AN
SVC

H

H

.
J

•

..

K

K

•

•

4

•
Proqran Orqanization

781

Chart Q8

CHECKPOINT CONTINUATION RESTART SUBROUTINE

•

•

,

3

4

•

A
MJ-I,HI

•
B

MJ-3,D4

MJ-3,D4

MJ-I,H4
MJ-2,A2

GET THE ADDRESS
OF THE TERM I NAL
ENTRY AND OF
THE QCB

PUT THE CPB ON
THE EXCP DR I VER
INPUT QUEUE

•

ADD I TO THE
MESSAGE
SEQUENCE NUMBER

B

•

•

C

C

•

•
GET THE EXCP
DRIVER ADDRESS;
PUT THE RETURN
ADDRESS IN
AVTEA

0

SET THE
SEQUENCE NUMBER
TO I

MOVE CPBADDR TO
AVTNADDR

0

•

•
IGGO 19RC

E

ISSUE I/O ON
THE MESSAGE
QUEUES DATA SET

E

•

•

F

F

•

•
UPDATE THE
SEQUENCE NUMBER
I N THE TERM I NAL
ENTRY

G

REMOVE A CP8
FROM THE CP8
FREE POOL

•

G

•
REMOV.E THE CPB
FROM THE CPB
CLEANUP QUEUE

H

GET THE COUNT
OF TERMINAL
ENTRIES & THE
LENGTH OF THE
TERM I NAL NAME

SAVE THE
ADDRESS OF THIS
MODULE

H

•
RESTORE
CPBXREAF (I/O
AREA ADDRESS IN
THE CPB)

J

GET THE ADDRESS
OF THE FIRST
ENTRY IN THE
TERMNAME TABLE

•

•
SAVE THE
ADDRESS OF THE
TCAM 0 I SPATCHER

K

•
782

J

2

•

4

K

•

ChartRA

CHECKPOINT DISK END APPENDAGE

,

,

,

4

,

5

A

A

•
GET THE ADDRESS
OF THE 01 SK
RECORD FROM THE
CHANNEL PROGRAM

8

B

•

•

C

C

•

•

0

0

•
RE IN ITI AL I ZE
THE lOB AND
CCWS TO WR lTE A'
CONTROL RECORD

E

E

•

•
GET THE ADDRESS
OF THE CONTROL
RECORD (I N THE
CHECKPO I NT WORK
AREA)

F

F

•

•

G

G

•

•
PUT THE ADDRESS
OF THE CONTROL
RECORD AND
COMMAND CODE
INTO THE CCW

H

H

•

•

J

J

•

•

K

K

•

•

4

•
Prooram OrQani7ation

783

Chart RB·l TCAM DISPATCHER

•

•

•

4

•

FIRST PASS ENTRY

A

POINT INTO THE
TCAM DISPATCHER

•
B

•
C

C

•
D

~-~.,

REMOVE AN
ELEMENT FROM
THE TOP OF THE
READY QUEUE

D

GET THE ADDRESS
OF THE QCB FROM
THE ELEMENT

E

F

GET THE SUBTASK
ENTRY CODE FROM
THE STCB

G

•
H

PUT THE ELEMENT
IN THE CHAIN

YES

WAIT FOR AN
INTERRUPT

(0

.

•
COMPUTE THE
SUBTASK ENTRY
POINT

NO

J

J

..
POST THE
ATTACHED
TCAM TASK
COMPLETE

K

,.

784

H

3,

,.

,.

Chart RB-2 TCAM DISPATCHER

•

•

•

•

4

BRANCH ENTRY

A

POINT INTO THE
TCAM DISPATCHER

•

RETTBL

B

B

REMOVE THE
ELEMENT FROM
THE LI ST

C

PUT THE ELEMENT
ON THE READY
QUEUE

C

•
D

D

E

MOVE THE STCB
TO THE PROPER
QCB

E

•
F

F

G

G

•
H

H

•

•
POINT TO THE
PRIORITY-FIFO
CHAIN

•
K

•

3

•

4

Proqram Orqanizaticn

78~

Chart RC-l

EXCP DRIVER

•

•

•

4

•

A
Q8,E3

.,

R6-3,D1

B

GET THE ADDRESS
OF THE FIRST
lOB FOR
REUSABLE DISK

D

NO
C

DELIMIT THE
FIRST CPB FROM
THE INPUT QUEUE

CHECKIOB

GET THE ADDRESS
OF THE DEB FOR
REUSABLE DISK

START UP ANY
WAITING lOBS

D

.,
E

E

.,
CLEAR THE FLAG
BYTE IN THE
FIRST
READ / WR I TE CCW

YES

F

GET THE ADDRESS
OF THE DEB FOR
NONREUSABLE
DISK

F

.,
G

TURN ON THE
'SLI' AND 'DATA
CHAIN' BITS IN
THE FIRST
READ/WRITE CCW

CHANGE THE
NO-OP TO A
DUMMY TIC
(X'FF') IN THE
SECOND CCW

H

INSERT 'KEYLEN'
I NTO THE LENGTH
OF THE FIRST
READ/WRITE CCW

SET THE COUNT
OF THE FIRST
READ/WR ITE CCW
TO THE DATA
LENGTH

PUT THE ADDRESS
OF THE BUFFER +
12 IN THE CCW
(ADDRESS OF
BUFFER KEY)

GET THE BUFFER
ADDRESS FROM
THE SECOND CCW
TO THE FIRST

START UP ANY
WAITING lOBS

G

H

.,
PASS THE
THRESHOLD
CLOSEDOWN
ELEMENT TO THE
DISPATCHER

J

.,
K

K

..
786

2

..

..

4

Chart RC-2 EXCP DRIVER

,

,

,

,

4

IEDQFP
A

CONVERT THE
ADDRESS TO
MBBCCHHR

•

•
I NCREMENT THE
COUNT OF
BUFFERS NEEDED
FOR A READ

B

B

•

•
SET THE lOB REG
TO PO I NT TO THE
FIRST REUSABLE
lOB IN THE
GROUP

C

YES

NO

SET THE lOB REG
TO POINT TO THE
FIRST NONREUSABLE lOB IN THE
GROUP

C

•

•
INDEX TO THE
PROPER lOB FOR
TH I S EXTENT BY
USING THE 'M'
OF MBBCCHHR

0

0

•

•
SAVE THE CYLINDER 10 OF THE
FIRST CPB AS
HIGHEST PRIOR I TY CYL I NDER

E

•
F

YES
E

ADD A NEW CPB
TO THE NEW
QUEUE

NO

F

YES

•
G

•

NEWLOWOK

Z

GET THE
CYLI NDER OF THE
NEXT CPB ON THE
NEW QUEUE

SAVE THE
READ/WR I TE TIC
(5 WORDS)

G

•

NEWLOW
CHA I NTHE NEW
CPB TO THE END
OF THE NEW
QUEUE

H

YES

•

•
H

•
J

•
INSERT A NEW
CPB BEFORE THE
NEXT CPB ON THE
NEW QUEUE

K

•

K

4

•
Proqram Orqanization

787

Chart RC-3 EXCP DRIVER

,

•

3

,

4

,

5

A

A

•

•
YES

B

B

•

•

C

C

•

41

MEDIUMCP
0

BUILD A MEDIUM
CPB

0

•

41

E

BU I LD A LARGE
CPB

BUILD A MEDIUM
CPB

E

•

41

SMALLCPB
F

'BUILD A SMALL
CPB

•

41

SEARCH THE
PREV 10US CPB
FOR A X'FF'
PSEUDO TIC 01"
CODE

G

G

•

41

SET COMMAND
CHAIN, SLI, AND
LEGAL TIC OP
CODE IN FIRST
READ {WR I TE CCW

H

H

•

41

..J

..J

•

41

K

K

•
788

2

•

4

•

Chart RC-4 EXCP DRIVER

•

•

•

2

4

•

A
RC-l,G5,D4

S

..

PRESET THE
COUNTER TO THE
NUMBER OF
ELEMENTS

B

.
NO

C

.
MOVE THE CPBS
FROM THE RETRY
QUEUE TO THE
IOBSTART QUEUE

YES

D

..
E

GET THE FIRST
CPS ON THE NEW
QUEUE

CLEAR THE ECB
AND CLEAR THE
RETRY QUEUE

E

.
I NCREMENT THE
INDEX TO THE
NEXT lOB, IF
ANY

F

EXCP - ON
THE
10BSTART
QUEUE OF
CPBS

..

•
SAVE THE
CYLI NDER I D OF
THE NEXT CPB AS
THE TOP PRIORITY CYLINDER

G

G

..

Cl

H

TAKE FIRST
GROUP OF NEW Q
CPBS ON 1 CYL &
QUEUE THEM ON
THE RETRY QUEUE

H

.

•
J

F

HANG THE
REMA I N I NG CPBS
FOR OTHER
CYL I NDERS BACK
ON NEW QUEUE

J

•

..

K

K

•

•

4

5

Proqram Orqanizaticn

789

Chart RC-S

EXCP DRIVER

•

•

•

4-

•

A
RC-3,bl,1'"4

RC-3,E3

RC-3,1'"5

•

•
BUILD A SEEK
HEAD CCW

B

B

•

•
BU I LD SEARCH 10
EQUAL AND TIC
CCWS

C

C

•

•
MOVE THE
READ I WR I TE AND
TIC CCWS BACK
INTO THE CPB (5
WORDS)

0

0

•

•
SET THE FINAL
TIC TO A DUMMY
(X'FF' )

E

E

•

•

I'"

I'"

•

•

G

G

•

•

H

H

•

•

.J

.J

•

•

K

K

•
"'90

2

•

4

•

Chart RC-6 EXCP DRIVER

•

•

•

•

4

FROM RELA T I VE
DRIVE # SET THE
'M' OF MBBCCHHR

A

A

RC-2,A2
RF,G4

•
CLEAR THE 'BB'
OF THE MBBCCHHR
TO ZERO

B

•

•
ADD I TO THE
RELATIVE RECORD
NUMBER TO MAKE
IT RELA T I VE TO
I

C

C

•

•
REUS

0

STORE THE
RELATIVE RECORD
NUMBER IN THE
'R' OF THE
MBBCCHHR

GET THE DATA
SET DESCR I PT ION
FROM THE AVT OF
THE NONREUSABLE
DISK DATA SET

0

•

•
E

B

STORE THE
RELATIVE TRACK
NUMBER IN THE
'HH' OF THE
MBBCCHHR

GET THE DATA
SET DESCRIPTION
FROM THE A VT OF
THE NONREUSABLE
DISK DATA SET

•.

E

•
RELATIVE RECORD
NUMBER
REMA I NDER OF ABSOLUTE RECORD #
/ TOTAL RECORDS

=

F

SET THE BASE
REG I STER TO DEB
EXTENT CORRESPONDING TO THE
REL DRIVE #

F

•
GET THE PRODUCT
OF THE NUMBER
OF EXTENTS X #
OF RECORDS PER
TRACK

G

ADD STARTING CC
FROM THE DEB TO
THE RELATIVE
CYL # TO GET
ABSOLUTE CyL #

G

•

•
RELATIVE RECORD
# / PRODUCT
RELATIVE TRACK;
REMAINDER
REL
REC # ON TRACK

=

H

=

STORE THE
ABSOLUTE
CYLINDER NUMBER
IN THE 'CC' OF
THE MBBCCHHR

H

•
RELATIVE TRACK/
TRACKS PER CYL

REM~T~DJ~A;K ~EL

J

TRACK NUMBER

CLEAR THE
'COMMAND CHAIN'
BIT IN THE
READ/WRITE CCW

J

•

•
WTO - TELL
CONSOLE OF
THRESHOLD
CLOSEDOWN

K

•

REL REC # ON
THI S ROW / #
RECS PER TRACK
REL DR IVE;
REM
REL REC #

=

K

=

4

Proqram orqanization

791

Chart RD-l BUFFERED TERMINAL SCHEDULER

,

,

,

4

,.

A

A

.

•

8

8

.
ACTIVATE THE
DESTINATION
SCHEDULER V I A
DSP8YPAS

YES

C

C

..

•
CALCULA TE THE
ER8 ADDRESS AND
GET THE 8UFFER
ADDRESS

NO
D

0

.

•
IEDGITNT

YES
E

GET THE
TERMINAL ENTRY
ADDRESS

COMPUTE THE
ADDRESS OF THE
8UFFER DEL A Y
VALUE

GET 8UFDELAY
FROM THE
TERM I NAL T A8LE
ENTRY

E

..
F

•
COMPUTE THE SC8
ADDRESS

.
G

SET AN INDEX IN
THE QC8 FOR THE
8TS EOTD
HANDLER

STORE THE SC8
ADDRESS IN
LC8SC8A

G

.

•
REMOVE THE QC8
FROM THE LC8
STC8 CHAIN

H

H

•
RESET THE
POLL I NG PO INTER
TO THE
BEGINNING OF
ILIST

J

PREPARE TO
TPOST THE QC8
TO THE TIME
DELAY QC8

.

0)
ADDRESS
8UFFER
QCB IN
ERB

K

•
792

SET LC8STATl TO
FREE

2

MOVE THE
I N I TI AL 8UFFER
COUNT FROM THE
DCB TO THE ER8

3

•

4

J

Chart RD-2 BUFFERED TERMINAL SCHEDULER

•

•

•

•

4

A
HM-8,E2 AS-2,J5

B

HM2-7,E2

GET THE NEXT
STCB I N THE LCB
STCB CHAIN

GET THE DCB
ADDRESS FROM
THE QCB

B

•
C

..

HMI-6,E2

•

..

C4
PREPARE TO
RETURN TO THE
DESTINATION
SCHEDULER

NO

SET UP THE SCB
ADDRESS FOR THE
RELATED QCB

C

..

•
0

PUT THE
DESTINATION QCB
ADDRESS IN THE
SCB

GET THE DEB
ADDRESS FROM
THE DCB

0

..

•
NO
E

E

•

..
REMOVE THE BTS
STCB FROM THE
LCB STCB CHA I N

F

GET THE
RELATIVE LINE
NUMBER FROM THE
QCB

F

..

•
PREPARE TO
TPOST THE LCB
TO ITSELF

G

MUL TlPLY
LCBSIZE BY
(RLN-l )

GET THE NUMBER
OF EXTENTS FROM
THE DEB

G

..

•
ADD THE PRODUCT
TO DCB 10BAD FOR
THE lOB ADDRESS
FOR THE Lce

FLAG THE LINE
NOT FREE IN
LceSTATI

H

H

.

•

J

GJ

DSPPOSTR
TPOST THE LCB
TO ITSELF

..

•
SET THE ERB
PRIORITY AND
BUFFER COUNT

K

.,

2

K

.,

4

.,

Procrram Orqanization

Chart RD-3 BUFFERED TERMINAL SCHEDULER

•

•

3

•

•

5

A

A

•
GET THE LC8 AND
THE QC8
ADDRESSES

8

8

..
TPOST THE QC8
TO THE LC8 STce
CHAIN VIA
UNAVA ILR

C

C

•

..

D

D

•
TPOST THE Lce
TO ITSELF

E

STOP THE AUTO
POLL

E

•

.

F

F

•

..

G

G

•

..

H

H

•

..

.J

.J

•

.

K

•
194

2

•

4

•

Chart RF

EXCP DRIVER FOR A SINGLE CPB

•

•

•

•

4

A

..

•

B

B

•
GET THE CPB
INPUT
QUEUE

>-----<~ FROM THE

C

SAVE THE
READ/WRITE TIC
(5 WORDS)

C

BUILD THE
SEARCH 10 EQUAL
AND TIC CCWS

o

..
CLEAR THE FLAG
BYTE IN THE
FIRST
READ I WR I TE CCW

o

.
E

•
PASS THE
THRESHOLD
ELEMENT TO THE
DISPATCHER

TURN ON THE
'SLI' AND 'DATA
CHA IN' BITS IN
THE FIRST
READ/WRITE CCW

SET THE COUNT
OF THE FIRST
READ I WR I TE CCW
TO THE DATA
LENGTH

MOVE THE
READ I WR I TE AND
TIC CCWS BACK
I NTO THE CPB (5
WORDS)

..
F

E

•
MARK THE
THRESHOLD
ELEMENT AS
'POSTED'

INSERT 'KEYLEN'
I NTO THE LENGTH
FIELD OF THE
FIRST
READ/WRITE CCW

MOVE THE BUFFER
ADDRESS FROM
THE SECOND TO
THE FIRST
READ I WR I TE CCW

MOVE THE
ADDRESS OF THE
BUFFER + 12
I NTO THE SECOND
READ I WR I TE CCW

CONVERT THE
01 SK ADDRESS TO
MBBCCHHR

MOVE THE
MBBCCHHR TO THE
lOB

F

PUT THE CPB
ADDRESS IN THE
10BSTART FIELD
OF THE lOB

G

.
G

.

•
I NCREMENT THE
READ COUNT BY 1
IN AVTDSKCT

H

CLEAR THE INPUT
QUEUE AND THE
ECB FIELD IN
THE lOB

NO

t---<

..

H

•
SET THE lOB

~~B~~~tE Tgo~~~: t-_..;..N;.;;,O<

J

PUT THE ADDRESS
OF THE lOB IN
REGISTER 1

SPONDING TO 'M'
OF MBBCCHHR

..

J

•
SET lOB ADDRESS
TO REUSABLE
01 SK CORRESPONDING TO 'M'
OF MBBCCHHR

K

2

•

EXCP - TO
DISK 1/0
FOR THI S
CPB

K

4

Proqram Orqanization

795

Chart RG-l

GET/READ ROUTINE

•

2

•

•

3

4

•

A
RL,D5

•

•
B

C

•
o

•
MOVE THE DECB
ADDRESS INTO
THE PROCESS
ENTRY WORK AREA

05

E

•

>---..
NO

STORE THE EMPTY
QUEUE CODE IN
THE DECB

F

WAIT FOR A
BUFFER

RESTORE THE
PARTI AL BUFFER
INFORMATION

G

•
H

COMPUTE THE
SIZE OF THE
LOGICAL BUFFER

H

•

•
MOVE THE
TERM I NAL NAME
OR DEF AUL T INTO
THE WORK AREA

J

•

•
K

GET ADDR OF THE
LOCATE MODE
WORK AREA FROM
ACCESS METHOD
WORK AREA

INITIALIZE THE
CONTROL BYTE
AND INCREMENT
PAST iT

INITIALIZE THE
PREFIX AND
I NCREMENT PAST
IT·

•
796

J

2

•

3

INCREMENT PAST
THIS FIELD IN
THE WORK AREA

4

K

Chart RG-2

GET/READ ROUTINE

•

A

•

•

4

•

COMPUTE THE
NUMBER OF DATA
BYTES I N THE
BUFFER

•

41

B

B

•

41

BALR TO THE
CHECKPO I NT USER
EXIT

C

C

•
o

41

~--...

SAVE THE
I NFORMA T I ON
ABOUT THE
PART I AL BUFFER

FILL THE WORK
AREA WITH PART
OF THE UNIT

TURN OFF THE
CHECKPOINT FLAG
IN THE AVT

0

•

41

STORE THE WORK
AREA
IN
THE PREFIX

>---.. DESCRIPTIONS

E

E

•

41

F

F

•

41

G

G

•

41

RGI
05
H

H

•

41

GET THE ADDRESS
OF THE NEXT
FULL BUFFER

J

J

•

41

COMPUTE THE
SIZE OF THE
BUFFER

K

•

K

•

•

4

•
Proaram Orqanizaticn

79'7

Chart RG-3 GET/READ ROUTINE

•

•

YES

A

•

3

4

•

5

CLEAR THE SCAN
TABLE TO ZEROS

A

.
B

•
MOVE THE RECORD
DEL I MITER FROM
THE PROCESS
ENTRY TO THE
TRANSLATE TABLE

YES
B

.

•
COMPUTE THE
MAXIMUM SCAN
LENGTH

C

C

..

•
N
ADD I TO THE
EMPTY BUFFER
COUNTER

EMPTY THE
BUFFER I NTO THE
WORK AREA

0

..

D

•
MOVE THE DATA
FROM THE BUFFER
TO THE WORK
AREA

E

E

.

•
ADO I TO THE
EMPTY BUFFER
COUNTER

F

..

F

•
MOVE ANY
CONTIGUOUS
DELIMITERS INTO
THE WORK AREA

G

G

..

•
SAVE
I NFORMA T I ON
ABOUT PART I AL
BUFFERS

NO

H

H

.

•

J

ADD 1 TO THE
EMPTY-BUFFER
COUNTER

CONSTRUCT A
VARIABLEFORMAT WORK
AREA PREFIX

NO

J

..

•

K

K

•
798

•

3

•

4

Chart RG-4

GET /READ ROUTINE

•

2

•

•

4

•

A

•

41

8

8

•
C

8U I LD A SPEC I AL
RETRIEVE
ELEMENT

C

41

D

D

•

41

IGC102
E

TPOST SPEC I AL
ELEMENT TO THE
READY QUEUE

E

•
F

41

WAIT FOR
MESSAGE
RECALL

F

G

G

•

41

H

H

•

41

J

J

•

41

K

K

•

•

4

Proqram Orqanization

799

Chart RH-l GET COMPATIBLE ROUTINE

•

•

3

•

..

4

5

A

A

•
CONVERT THE
OFFSET TO THE

YES

GET THE ADDRESS
OF THE DEB FROM
THE DCB

B

>----..~ TERMNAME TABLE

B

ENTRY ADDRESS

•
GET ADDR OF
ACCESS METHOD
WORK AREA FROM
D~~t G~~oODg~T OF

C

MOVE THE
TERM I NAL NAME
TO TRMAD
ADDRESS

SAVE THE
ADDRESS OF THE
CURRENT BUFFER

C

•
D

•
SET UP TO
TRUNCA TE THE
BUFFER

E

•

.>----....

COMPUTE THE
NUMBER OF BYTES
PER UNIT

NO

GET THE ADDRESS
OF THE NEXT
UNIT

G

•
DECREMENT THE
COUNTER OF
BYTES TO BE
MOVED

MOVE THE COUNT
OF BYTES MOVED
TO THE WORK
AREA PREFIX

H

•
J

GET THE BUFFER
ADDRESS FROM
THE ACCESS
METHOD WORK
AREA

MOVE DATA FROM
THE BUFFER TO
THE WORK AREA

MOVE THE WORK
UNIT TYPE FLAGS
I NTO THE WORK
AREA PREFI X

J

•
GET ADDRESS OF
THE FULL BUFFER
ON READ':'AHEAD
QUEUE

K

RETURN EMPTY
BUFFERS TO THE
MCP

K

GI

•
800

4

•

Chart RH-2 GET COMPATIBLE ROUTINE

•

•

•

4

GET THE ADDRESS
OF THE CURRENT
UNIT

GET THE ADDRESS
OF THE PARTIAL
BUFFER

•
PREPARE TO SCAN
THE ENTIRE
BUFFER

GET THE ADDRESS
OF DATA TO BE
SCANNED

B

B

•

•
SET UP TO MOVE
THE PARTIAL
BUFFER

C

D

PREPARE TO SCAN
UP TO THE WORK
AREA LENGTH

C

PREPARE TO
EMPTY THE
BUFFER

D

•
E

MOVE THE DATA
FROM THE UNIT
TO THE WORK
AREA

E

•

•
GET THE ADDRESS
OF THE NEXT
UNIT

F

F

•

•

G

G

•
H

H

•

•
BUFRTN
J

RETURN THE
EMPTY BUFFERS

J

•
BUFRTN
K

K

RETURN THE
EMPTY BUFFERS

•

2

•

4

•
Proqram Orqanization

801

Chart RH-3 GET COMPATIBLE ROUTINE

,

,

,

4

,

A

A
RH-I ,01 ,K3
RH-2,K 1 ,J3

•
B

MOVE THE COUNT
OF EMPTY
BUFFERS TO THE
SPECIAL ELEMENT

GET THE LENGTH
OF THE DATA
SCANNED

•
C

B

•
MOVE THE DATA
FROM THE BUFFER
TO THE WORK
AREA

C

•
·0

•

•
IGCI02

COMPUTE THE
NUMBER OF EMPTY
BYTES LEFT

TPOST SPECIAL
ELEMENT VIA
AQCTL SVC 102

0

•

•

E

E

•

•

F

F

•

•

G

G

•

•

H

MOVE THE RECORD
DELIMITER INTO
THE WORK AREA

H

•

•

J

J

•

•

K

K

2

802

•

•

4

•

5

Chart RI

PUT/WRITE ROUTINE

,

,

3

,

,

4

GET THE
ADDRESSES OF
THE WORK AREA
AND THE DCB
FROM THE DECB

A

•
GET ADDRESSES
OF THE PUT/
WRITE WORK

B

B

A~~$R~~~C~~~

•

•
DETERM I NE THE
LENGTH OF THE
DATA IN THE
WORK AREA

C

C

•
D

•
GET ADDRESSES
OF WORK AREA &
DCB FROM
PARAMETER
REG I STERS

STORE THE DATA
COUNT IN THE
PUT / WR I TE WORK
AREA

MOVE THE
CONTROL BYTE
INTO THE
PUT/WRITE WORK
AREA

D

•

•

E

E

•

•
IGCI02

SET UP THE
PARAMETERS FOR
B I NARY SEARCH

F

TPOST THE
ELEMENT TO THE
PUT QCB

F

•
WAIT FOR
PUT
SCHEDULER
TO EMPTY
WORK AREA

ACTIVATE IEDQAI
TO SEARCH THE
TERMNAME TABLE

G

G

•
H

•
PUT THE ADDRESS
OF THE LOCATE
MODE WORK AREA
IN USER SAVE
AREA

USER ROUTINE
BALR TO USER
CHECKPOINT
ROUTINE

H

•

•

J

•

•

K

K

•

•

4

•
Proqram Orqanization

8('3

Chart RJ

PUT COMPATIBLE ROUTINE

•

•

3

•

4

•

5

A

..

•

B

e

..

•

C

GET THE DCB AND
WORK AREA
ADDRESSES FROM
THE REGISTERS

C

•
GET THE ADDRESS
OF THE TERM I NAL
NAME OF THE
DESTINATION

D

STORE THE
TERMNAME TABLE
OFFSET I N THE
DEB

D

.
E

•
SET UP THE
PARAMETERS TO
SEARCH THE
TERMNAME TABLE

CALCULA TE THE
DATA COUNT AND
PUT IT IN THE
PUT WORK AREA

BUILD A SPECIAL
ELEMENT FOR THE
PUT SCHEDULER

E

.
F

•
CONVERT THE
CQT AM CONTROL
BYTE TO ITS
TCAM EQU I V ALENT

IEDQUI

F'

ACT I VATE IEDQA I
TO SEARCH THE
TERMNAME TABLE

•
G

STORE THE
RESUL T OF THE
CONVERSION IN
THE PUT WORK
AREA

IGCI02
TPOST THE
SPECIAL ELEMENT
TO THE PUT Qce

G

.

•
WAIT FOR
PUT
SCHEDULER
TO
TERMINATE

H

H

.

•

J

J

.

•

K

K

2

804

•

•

Chart RK

DISK END APPENDAGE FOR A SINGLE CPB

•

•

3

•

•

4

A

A
lOS

•

•
PUT THE CPS
FROM THE lOS TO
THE DISK
APPENDAGE QUEUE
AT 'AVTDKAPQ'

B

B

•

•
PUT THE
PRIORITY IN THE
CPS CLEANUP QCB
AT 'AVTCPBCS'

C

C

•
0

•
GET THE
MUL T I PROCESSOR
CVT ADDRESS
FROM CVT +
X'CO'

CLEAR THE
CLEANUP QCS
LINK FIELD

0

•

•
HANG THE QCB AT
THE END OF THE
DISABLED READY
QUEUE

E

E

•

•
F

GET THE TCAM
TCB ADDRESS
FROM THE AVT

NO

GET THE TCAM
TCB ADDRESS

•

•
HANG THE QCB AT
THE START OF
THE 0 I SABLED
READY QUEUE
ALSO

G

PUT THE QCB
ADDRESS INTO
THE LINK FIELD
OF THE ELEMENT
THAT WAS LAST

G

•
H

F

•
GET THE OS TASK
REMOVAL ROUTINE
ENTRY ADDRESS

H

•
J

TESTDISP INTERRUPT
THE OTHER
CPU

OS POST ACTIVATE
TCAM
01 SPATCHER

J

•

•

K

K

•

4

•
Proqram OrQanization

8C5

Chart RL

CHECK ROUTINE

•

•

•

4

•

5

A

A

•

•

B

B

•

•

C

GET THE
PO I NTERS TO THE
DECB AND THE
DCB

C

•

•
WAIT FOR A
FULL BUFFER
ON THE
READ-AHEAD
QCB

D

PREPARE TO
I NVOKE THE READ
ROUTINE

D

•

•
GET THE EODAD
ADDRESS FROM
THE DCB

E

E

•

•

F

F

•

•

G

G

•

•

H

H

•

•

..J

GET THE SYNAD
ADDRESS FROM
THE DCB

..J

•

•

K

K

2

806

•

•

4

Chart RM

POINT ROUTINE

,

2

,

3

,

4

,

5

A

A

•

•

e

e

•

•

C

GET THE ADDRESS
AV
TN
6EB
AND
ACCESS METHOD
WORK AREA

8te

C

•

•

D

D

•
E

•
SAVE THE
TERMNAME ENTRY
OFFSET I N THE
ACCESS METHOD
WORK AREA

SET UP THE
PARAMETERS FOR
BINARY SEARCH

E

•

•
MOVE THE
ELEMENT TYPE
I NTO THE WORK
AREA

I EDQU I
F

ACTIVATE IEDQAI
TO SEARCH THE
TERMNAME TABLE

F

•

•
MOVE THE
SEQUENCE NUMBER
INTO THE WORK
AREA

G

G

•

•

H

H

•

•

J

J

•

•

K

K

III

III

III

4

III

5

nroqram Orqanization

807

Chart RN-l

PCI APPENDAGE

,

,

,

4

,.

A

A
RN-2,KI

..
8

RN-2,C5

GET THE CVT
ADDRESS

GET THE QC8
ADDRESS

TESTDSP OS TASK
REMOVAL
ROUTINE

C

CLEAR THE LINK
FIELD

..

8

C

..
GET ADDRESS OF

D

..

A~~ET~~T BU~~~R

PUT THE ELEMENT
ON THE DISA8LED
READY QUEUE

THAT CAUSED THE
INTERRUPT

D

..
SU8TRACT 8 FROM
THE CSW ADDRESS
TO GET THE
PREY 10US CCW

E

E

..

..
GET THE 8UFFER
RETURN QC8 AND
PR I OR I TY FOR A
TPOST

F

F

..
SCAN
YES

G

PERFORM A DATA
SCAN FOR TRANSPARENT MODE

G

..
H

UPDATE THE
I NV ITA T I ON LI S T
POINTER TO THI S
ENTRY

GET THE STARTMH
QCB ADDRESS AND
PR I OR I TY FOR A
TPOST

.

..

CKAUTOPL
SET THE PREF I X
SOURCE FIELD
FROM THE INDEX
BYTE OF RESPONDING TERMINAL

.J

..

IEDQTNT
GET THE
TERM I NAL ENTRY
ADDRESS

.J

NO

SET THE PROPER
SCB ADDRESS

K

•
808

H

•

•

4

CALCULATE
BUFMAX - BUFIN
OR BUFOUT

•

K

Chart RN-2 PCI APPENDAGE

,

,

•

,

4

I NCREASE THE
ERB COUNT

A

A

•
B

B

•

•
POST

C

TPOST THE ERB

C

•

•

0

o

•
E

E

•

•

F

F

•

•
GET THE SCT

AD~~~SC6o~ET

G

G

COUNTER EQUAL
TO FOUR

•
H

•
GET THE FIRST
ENDING
CHARACTER
OFFSET I N THE
SCT

SET LCBLSPCI
THE ADDRESS OF
THE NEXT BUFFER

H

•
ADD 1 TO THE

J

S~¥F~~~ gS~~t~

J

SIZE AND
PRFNLSTN

•

•
TPOST THE
BUFFER

K

•

•

4

•
~roqr~m

Orqanization

809

Chart RO-l TCAM DISPATCHER WITH SUBTASK TRACE

,

,

,

,

4

5

FIRST PASS ENTRY
POINT INTO THE TCAM

A

A

01 SPATCHER WITH
RO-l,J5

SUBTASK TRACE

•

•

B

GET THE TRACE
TABLE ADDRESS
FROM THE AVT

B

MAKE A SUBTASK
TRACE ENTRY IN
THE NEXT TABLE
ENTRY A VA I LABLE

C

•

~
C

01

GET THE
PARAMETERS FROM
THE SAVE AREA
IN THE AVT

•

REMOVE THE
ELEMENT FROM
THE TOP OF THE
READY QUEUE

YES

0

UPDATE THE NEXT
AVAILABLE ENTRY
POINTER

•

0

•
GET THE ADDRESS
OF THE QCB FROM
THE ELEMENT

E

WRAP TO THE
BEGINNING OF
THE TABLE

E

•

•

F

F

•

•
GET THE SUBTASK
ENTRY CODE FROM
THE STCB

G

G

•

•
OS WAIT FOR AN
INTERRUPT

YES
H

e

•

•
NO

COMPUTE THE
SUBTASK ENTRY
POINT

J

J

•

•
OS POST THE
ATTACHED
TASK ECB
COMPLETE

PUT THE ELEMENT
IN THE QCB
ELEMENT CHAIN

K

,
810

H

2

•

K

•

4

•

ChartRO-2 TCAM DISPATCHER WITH SUBTASK TRACE

•

•

•

•

4

5

BRANCH ENTRY
POINT

A

INTO THE

A

TCAM DISPATCHER
WITH SUBTASK TRACE

•

RETTBL

e

B

•
REMOVE THE
ELEMENT FROM
THE LI ST

C

PUT THE ELEMENT
ON THE READY
QUEUE

c

•
D

D

•

DSF'UNAVR

U'p.a.IoA.Io~

MOVE THE STCB
TO THE F'ROPER
QCB

NO

E

_ _ _- . ,

E

•
F

F

•
G

G

•
H

H

•

p.P-'oI.u:i.I.,j,,/,,----.,
YES

J

POINT TO THE
PRIORITY-FIFO
CHAIN

..J

•
K

K

•

•

•

4

Proqram 0rqanizaticn

811

Chart RP-l

REUSABILITY-COPY SUBTASK

•

•

•

4

'

.
0

DELINK THE
FIRST CP8 FROM
THE REUS CPS
QUEUE

A

1;J
1;J
1;J
1;J
1;J
1;J

SET THE LC8 AND
SC8 8ASE
REGISTERS

A2

•

I

SET THE DISK
8UFFER 8ASE
REGISTER

8

CONVERT TYPE OF
CP8 (LOW ORDER
FOUR 81TS OF
CP8FLAG) TO AN
INDEX

AI

A

•
8

2

•

•

E2

C

C

3

•

A3

DECREMENT THE
COUNT OF READ
CP8S
OUTSTANDING 8Y
ONE

4

F2

•

•
0

•

5

E

E

81

•

YES

•

6

1Y
1Y

F

A5

•

7

F

•

81

G

8

•

1;J
1;J
1;J
1;J

•

GI

H

H

9

•

02

FETCH

J

GET THE CP8 AND
WORK UNIT

A

•

E5

•
J

•

8

K

E5

•
812

•

K

Chart RP-2 REUSABILITY-COPY SUBTASK

,

,

,

FREEBLKS

YES

RETURN CPB AND
WORK UNIT TO
THE FREE POOL

,

4

IEDQHG
REMOVE THE CKPT
ELEM FROM T I ME
DELAY QUEUE

NO

411

B

B

•

411

PASS THE
CHECKPOINT ELEME NT WITH ITS
PR I OR I TV TO THE
TCAM DISPATCHER

C

•
D

411

DSPPOSTR

OS POST THE
OPERATOR
CONTROL ECB

RESET THE
REG I STERS FOR A
DUMMY LCB AND
SCB

TPOST THE
CHECKPOINT
ELEMENT

•
E

D

411

GET THE ZONE
BOUNDAR I ES FROM
THE LOAD PO I NT

E

•
F

C

411

INCREMENT THE
PR I OR I TV QCB
ADDRESS TO THE
NEXT LEVEL

GET THE
TERMNAME TABLE
I NDEX FOR THE
LAST TERMINAL

•

F

411

4
CALL TNT

G

G

GET THE
TERM I NAL ENTRY
ADDRESS

•

411

H

H

•
..J

BACK UP THE
INDEX TO THE
NEXT TERMNAME
TABLE ENTRY

SAVE THE MASTER
AND PRIORITY
QCB ADDRESSES
FOR THE SOURCE

ACTSCHED

SAVE THE
PRIORITY FROM
THE SOURCE
PRIORITY QCB

ACT! VATE THE
SEND SCHEDULER

..J

411

GET THE ADDRESS
OF THE NEXT
UNUSED HEADER
FROM THE
PRIORITY QCB

K

•

3

4

K

•
Proqram Orqanization

813

Chart RP-3 REUSABILITY-COpy SUBTASK

•

•

4

•

A

A

..

•

B

B

•
BU I LD CANCELED
MESSAGE, ONE
C

~~thR A~~ ~~~

C

CPB UNIT

•
o

MOVE QCB I NTFF
TO QCBFFEFO

GET CANCELED
MSG ASS I GNED TO
THE 0 I SK QUEUE

MOVE QCBINTLF
TO QCBLFEFO

D

..
E

PASS THE
ADDRESSES OF
THE SOURCE
MASTER AND
PRIORITY QCBS

SET THE CPB TO
WRITE TO
PRFCRCD

E

•
F

SEE IF THE
FIRST MESSAGE
IS BEING SENT

G

GENERATE THE
'WRITE KEY AND
DATA' OP CODE
IN CPB CCWI

PUT QCBFFEFO I N

>---.. DATFEFO
I N THE
CPB BUFFER

G

•
GENERA TE THE
'WR ITE DATA' OP
CODE IN CPB
CCW2

UPDA TE SCBFEFO
TO QCBINTFF

CLEAR DA TFLAGS

..
J

H

•
SET CPBFLAG TO
'WRI TE HOLO
DATA'

SET CPBADDR TO
READ FROM
QCBFFEFO

PASS THE CPB TO
EXCP DRIVER ON
FIFO INPUT Q

J

•
FLAG THE CPB AS
'READ HOLD
DATA' FROM
REUSABLE DISK

K

•
814

SET CPBADDR TO
QCBINTLF

•

4

Chart RP-4 REUSABILITY-COPY SUBTASK

•

A

PASS THE
ADDRESS OF THE
MASTER AND
PRIORITY SOURCE
QCBS

•

•

•

4

GET ADDRESS OF
FIRST BUFFER IN
CORE QUEUE OF
THIS PRIORITY
SOURCE QCB

A

..
GET NEXT HEADER
BUFFER IN MAIN
STORAGE FROM
TH I S BUFFER'S
POINTER

FINDHM03
B

SEE IF THE
FIRST MESSAGE
IS BEING SENT

B

..

..
SET CPBADDR TO
THE OLD NEXT
TEXT BUFFER
SAVED IN NTXT

C

..

.
MAKE THE SECOND
UNIT LOOK LIKE
THE HEADER, BUT
WITH ONE LESS
UNIT

D

D

..

.
NEXTBU
FREE CORE MSG
STARTING WITH
NEXT BUFFER

E

BUFRET

SETCPBF
SET CPB FLAG TO
REUS OR NONREUS
DISK OF SRCE Q

FREE CORE MSG,
STARTING WITH
2ND UNIT AS HDR

.
F

C

E

.
SET THE CPB TO
READ THE HEADER
OF THE FIRST
UNSENT FEFO
MESSAGE

F

..

..

G

G

..

.
H

..

..
GENERA TE THE
READ DATA' OP
CODE IN CPB
CCW2

J

J

..

..
MOVE THE BUFFER
PREFIX

K

III

MOVE THE KEY
FIELD FROM THE
MA I N STORAGE
QUEUE UN I T TO
THE CPB BUFFER

4

K

III

?roqram Oraani7ation

815

Chart RP-5 REUSABILITY-COPY SUBTASK

•

4

•
N

SAVE THE ADDITI ONAL UN I TS
ADDRESS IN THE
WORK UN I T FROM
PRFTIC (XTRA)

YES

A

CALLHM02
GET THE BUFFER
ASSIGNED TO ALTERNATE DEST

..
B

A

•
PASS THE
ADDRESSES OF
THE MASTER AND
PR I OR I TY SOURCE
QCBS

CLEAR THE
ADDITIONAL
UNITS ADDRESS
IN THE WORK
UNIT (XTRA)

SAVE THE ADDITI ONAL UN I TS
ADDRESS IN THE
WORK UN I T FROM
PRFXTRA (XTRA)

CLEAR THE FEFO
POINTER

B

SAVE THE
ADD I T I ONAL TEXT
RECORD PO INTER
(NEWXTRA)

C

..
SET THE DESTINATION TO
ALTERNATE;
CLEAR THE FEFO
POINTER

C

GET THE NUMBER
OF UNITS IN
THI S BUFFER

..

•

0

0

•
CLEAR THE FIRST
AND LAST FEFO
PO I NTERS OF THE
NOW EMPTY QUEUE

E

E

..

•
4
CALL TNT

GET THE XTRA
PO I NTER FOR· THE
NEXT UNIT

F

F

..

•

G

G

..

•

MOREB

SA VE THE NEXT
RECORD 10 IN
SCBMBSSA+4

NON

GET THE AL TERNATE DEST FROM
TERM I NAL ENTRY

H

..
J

•
SAVE THE
ADDRESS OF THE
NEXT BUFFER IN
THE UN I T WORK
AREA (NTXT)

GET THE MASTER
QCB ADDRESS FOR
AL TERNATE DESTINATION FROM
TERMINAL ENTRY

SA VE THE NEXT
RECORD 10 IN
SCBMBSSA

J

..
K

•
I DENT I FY THE
QUEUE TYPE FOR
THE. ALTERNATE
DESTINAT I ON

SAVE THE NEW
HEADER 10 FROM
PRFCRCD IN
• NEWHEADER'

GET THE NEXT
LOWER PR I OR I TY
QCB FOR THE
ALTERNATE
DESTINATION

•
816

H

•

4

•

K

Chart RP-6 REUSABILITY -COPY SUBTASK

•

•

,

4

5

A

S

GET THE ADDRESS
OF THE OLD LAST
UN SENT MESSAGE
ON THE CORE
QUEUE

B

PUT NEW MESSAGE
ADDRESS INTO
THE FEFO
POINTER OF OLD
LAST MESSAGE

C

D

•
E

E

GET 10 OF LAST
MESSAGE I N THE
ALTERNATE DESTINA TI ON QUEUE
(QCBLFEFO)

F

G

MOVE THE
ADDRESS OF THE
OR I G I NAL HEADER
FROM 'BADHEAD'
TO 'CPBADDR'

UPDATE SCBFEFO
WITH 'NEWHEADR'
AS IF NEW MSG ....- - <
10 WAS IN FEFO
ONLY
PTR OF MSG SENT

H

ACTSCHED
ACTIVATE THE
SEND SCHEDULER

F

PUT THE 10 OF
THE NEW LAST
(..JUST COP I ED)
MESSAGE INTO
QCBLFEFO

G

PUT THE 10 OF
THE NEW MESSAGE
INTO DA TFEFO
FOR THE OLD
LAST MESSAGE

H

..J

GENERATE A
'WRITE DATA' OP
CODE IN CPS
CCWI

..J

K

GENERATE A
'NO-OP' OP CODE
IN CPS CCW2

K

..

..

4

5

~roqram

Orqanization

817

Chart RP-7 REUSABILITY -COPY SUBTASK

•

NO

A

4

•

SET CPBADDR
FROM ' I DBADPTR '
TO CHANGE FEFO
PTR PO I NTI NG TO
THE BAD MESSAGE

SET CPBADDR TO
THE RECORD
ASSIGNED AS
'NEWXTRA'

A

•

•
INCREMENT
NEWXTRA BY I IN
CASE ADD I T I ONAL
XTRA RECORD IS
ASS IGNED

B

B

•

•
SET LAST FEFO
TO THE 10 OF
THE MESSAGE
THA T PO I NTED TO
THE BAD MESSAGE

C

SA VE FEFO PTR
IN 'RESUME' TO
TELL WHERE TO
RESUME READ I NG
MESSAGE CHAIN

C

•

•
SET DA TFEFO TO
POINT TO ITSELF
(I TIS NOT

0

0

HEA~~~A)BUT

•
E

•
PUT TH I S SAME
10 INTO DATFEFO
AS IF 'READ
GOOD DATA' HAD
JUST BEEN DONE

SAVE 10 OF MSG

i¥~T F~~~D h~EtO
THE BAD MSG
INTO ' I DBADPTR '

SAVE THE NEW
DECREMENTED
UNIT COUNT IN
NBUNT

E

•

•
2
GET THE NEXT
UNIT ADDRESS TO
CPBADDR FROM
XTRA

F

SETCPBFL
SET· CPBFLAG TO
REUS OR NONREUS
OF AL TDEST

•

F

•
YES

G

GET ADDRESS OF
THE NEXT XTRA
FROM THE TIC OF
THIS ONE & SAVE
IN 'XTRA'

G

•
ADD ONE THE THE
ADDRESS OF XTRA
TO GET THE NEXT
XTRA; SAVE IN
'XTRA'

H

H

•

•
SETCPBF
SET CPBFLAG TO
REUS OR NONREUS
DISK FOR SRCE Q

J

J

•

•

K

K

2

818

4

•

Chart RP-8 REUSABILITY-COPY SUBTASK

•

•
MOVE THE
DESTINATION
FROM PRFDEST TO
'ALTDESX'

A

:3

•

•

GET ADDR OF

~~aL ~~~c~~t T

5

NO

(UNI~

A

IN BUFFER
IS A COPY)

•

•
B

S~~o~~~~S~~~~,

BUFFER ADDRES~

MOVE 1ST BUFFER
EXTRA UN I T ADDR
FROM TIC OF
REAL BUFFER TO
TIC OF COpy

SC6B~E~6~;E~~6
QCB

GET THE FIRST
UNI T GI VEN TO
COPY FROM
'BUFFER'

B

•

•
FIFOBUF
C

PUT THE NEW
BUFFER ON THE
COpy QUEUE

IDENTIFY THE
DESTINATION
QUEUE TYPE ( DR ,

GET THE
PR I OR I TY LEVEL
OF THE
DESTINATION QCB
FROM 'SCBPR I '

C

DN'Q~26~FE~ECK

•

•
GE'T THE ADDRESS
OF NEXT CORE
BUFFER FROM 'TIC
OF UNIT IN
'SUFFER'

SAVE THE
DESTINATION
PR lOR ITY QCB
ADDRESS IN
'DQCB'

0

GET THE ADDRESS
OF THE NEXT
CORE BUFFER
FROM • PRFNTXT'

•

•
GE'T MUL'T I PLE
ROUTI NG COUNT
FROM THE TIC OF
THE NEXT UN IT
OF THE MESSAGE

FETCH
E

GET THE CPB AND
THE WORK AREA
UNIT

E

•

•
FLAG THE SOURCE
AS REUSABLE
DISK

F

NO

FLAG THE SOURCE
AS NONREUSABLE
DISK

DECREMENT THE
COUNT BY ONE;
SAVE THE NEW
COUNT IN THE
TIC FIELD

UNLINK THE
FIRST BUFFER
FROM THE COPY
QUEUE

PREPARE TO GET
THE NEX'T UNIT
ADDRESS FROM
SCBMB.SSA

PREPARE TO GET
THE NEXT UN I T
ADDRESS FROM
SCBMBSSA+o4

GET THE UNIT
COUNT FROM
PRFNBUNT OF THE
FIRST UNIT IN
'SUFFER'

G

•

•
H

MOVE THE BUFFER
TO THE DISK
UNIT ATTACHED
TO THE CpB

YES

MAKE THE SECOND
UNIT LOOK LIKE
THE FIRST UNIT
OF THE MESSAGE

H

•

•
.J

F

•

•
G

0

2
SAVE THE
OR I G I NAL BUFFER
ADDRESS IN
'BUFFER'

SET 'PRFXTRA'
FROM THE SCB

SET ' PRFNTXT '
FROM THE SCB

NEXTeu
FREE THE CORE

.J

~~¥H S~:~+, ~~R

•

•

2

FREEBLKS

GET ADDRESS OF
'NTXT' FROM
'XTRA' AND # OF
UNITS & PUT IT
IN 'PRFNTXT'

YES

K

•

:3

RETURN·CPB AND
WORK AREA UN I 'T
TO FREE:POOLS

4

K

5

Proqram Orqanization

819

Chart RP-9 REUSABILITY-COPY SUBTASK

,

A

,

2

•

3

GET THE
ORIGINAL UNIT
FROM 'BUFF"ER'

A
RP-8,Cl

RP-l,..Jl

RP-3,..Jl

RP-8,El

•
B

•

4

SET THE· BUFFER
TO BE RETURNED

CLEAR THE
FORWARD PO INTER
OF THE BUFFER

P6?Nt~~ ~gBBY
LCBRCQCB

•

CLEAR THE
FORWARD POINTER
OF THE CPB

B

•
C

•
SET REG I STERS ELEMENT TO BE
TPOSTED TO REG

SAVE THE ADDRESS OF THE
OLD LAST ELEM
{IF ANY}. ON THE
FIFO QUEUE

Bl~ED1~P~~gHT~

SAVE THE
ADDRESS OF THE
OLD LAST CPB
{IF ANY} ON THE
FIFO QUEUE

GET THE FIRST

C~~h H~~GT~~E
CPBS ONTO
FREEPOOL

RP-8,K5

•
DSPPoSTR
D

C
RP-2,A2

PUT THE NEW
BUFFER A T THE
END OF THE FIFO
QUEUE

FREE THE MAIN
STORAGE BUFFER

PUT THE NEW CPB
AT THE END ot
THE FIFO QUEUE

CLEAR THE
FORWARD POINTER
I N THE UNLI NKED
CPI3

HANG THE FREE
UN I TS ONTO THE
UNIT BEING
RETURNED

•

•
D

•
HANG THE WORK
AREA UN I TONTO
AN AVAILABLE
BUFFER IN
FREEPOOL

NO

E

•

E

•
PUT THE NEW
ELEMENT AT THE
HEAD OF THE
FIFO QUEUE

F

PUT THE ADDRESS OF NEW
ELEM I N FORWARD
POINTER OF OLD
LAST ELEMENT

GET THE FIRST

UN~~hH~~GT~~E
UNITS ONTO
FREEPOOL

I NCREMENT THE
COUNT OF
AVAILABLE UNITS
BY ONE

•

F

•
CLEAR THE WORK
AREA UNIT

G

HANG THE CPB
FREEPOOL OFF
THE NEW CPB
BE I NG RETURNED

•

G

•
HANG THE WORK
AREA UN IT ONTO
THE CPB

H

PUT THE CPB
INTO THE CPS
FREEPOOL

H

•

•
DECREMENT THE
COUNT OF"
AVA ILABLE UNITS
BY ONE

..J

J

•

•

K

K

•
820

2

•

4

Chart RP-IO

REUSABILITY-COPY SUBTASK

•

•

•

3

•
IEDQHM02
GET QUEUE ADDRESS ASS I GNED
TO NEW MESSAGE

A

.

RP-4,E5

RP-6,B3,K4

RP-3,DI

RP-7,J4

RP-7,F5

RP-5,A5

•

PASS THE LCB
ADDRESS IN THE
REG I STER AND IN
PRFLCB

B

RESTORE THE
SAVED CONTENTS
OF PRFSTATI

B

..

•
SAVE THE
REUS/COPY BITS;
PUT CPBTYPE IN
CPBFLAG

C

PRESERVE THE
RETURN ADDRESS

C

.

•
NO-OP

0

ADD THE QTYPE
OF THE
DESTINATION TO
CPBFLAG

RETR I EVE THE
RETURN ADDRESS

PASS THE
ADDRESS OF THE
SCB

UNITS ARE

E~~~~~~En ~~:Y
UN I T RETURNED
BY IEDQHM

.

0

•
W

E

PUT THE ADDRESS
OF THE
DESTINATION QCB
IN 'SCBDESTQ'

ADD THE QTYPE
OF THE SOURCE
TO CPBFLAG

PUT THE NEW
UN I TIN CPBXREA

..

E

•
GET THE ADDRESS
OF THE PRIORITY
DESTINATION QCB

NO

F

F

..

•
PASS THE
ADDRESS OF THE
MASTER
DESTINATION QCB

G

GET THE ADDRESS
OF THE PRIORITY
SOURCE QCB

G

..

•
ADJUST THE QCB
REGISTER TO THE
PR lOR ITY
PORTION OF THE
QCB

H

H

..

•
INOICATE NO
ALTERNATE
DESTI NATON TO
AVOID A FEFO
UPDATE

PRESERVE THE
CONTENTS OF THE
PRFSTATI FIELD

J

J

.

•

K

K

•

2

•

3

•

4

5

Proaram Orqanization

821

Chart RP-ll

REUSABILITY-COPY SUBTASK

•

•

•

3

•

4

A

A

•
B

RP-4,E4

RP-4,E3

RP-3,F2 RP-6,F3

RP-2,GI

RP-2,J4

RP-8,J5

RP-S,J4

RP-4,BI

RP-5,F3,H3

RP-6,F5

DECREMENT NO OF
UNITS IN CORE
QUEUE BY NO OF
UNITS IN THIS
BUFFER

CLEAR THE HIGH
HALFWORO OF REG
IN INDEX TO THE
TERMNAME TABLE

I NCREMENT THE
PR lOR I TY. QCB
ADDRESS PAST
MASTER PORT I ON
OF THE QCB

GET THE
DESTINATION
SCHEDULER
ADDRESS

•
-

GET
OF
THE
THE

~~~~~~'RNGRN

QCB ( INTO
PRFQCBA ALSO)

THE ADDRESS
HM03 FROM
WORD BEFORE
HM02 ENTRY

GET THE ENTRY
ADDRESS FROM
AVTRNMPT

C

•
0

41

IEDQTNT

SAVE THE
INTERNAL RETURN
ADDRESS

PUT PRIORITY
'PRIBFRTB' INTO
THE BUFFER

GET THE
TERM I NAL ENTRY
ADDRESS

PASS THE
REGISTERS, LCB,

SC~[)Q~~~ S~~B

•
IEDQHM03

FINDSTCB

ONLY MESSAGE
BE I NG SENT ON
THIS QCB?

ACTIVATE THE
SEND SCHEDULER

E

•

•
PUT THE BASE
FOR THE
DISPATCHER IN
REGISTER II

NO

RESTORE THE
MAIN ROUTINE
RETURN ADDRESS

F

•

41

DSPPOSTR
G

D

41

E

F

B

41

SET REGS: RI
C

41

RP-5,CI

RESTORE THE
MA I N ROUTI NE
RETURN ADDRESS

TPOST THE
BUFFER TO
BUFFER RETURN

G

•

•

H

H
ONLY MESSAGE

NOTHING

BEING SENT

SENT

BEING SENT

•

41

J

J

•

41

K

GET THE NEXT
BUFFER ADDRESS
FROM PRFNTXT

K

.
822

3

4

Chart RQ

POST PENDING ROUTINE

•

•

•

4

•

A

A

..

41

B

B

.
C

41

GET THE DEB
CHAIN ADDRESS
OF THE TCB

C

.

41

D

D

.
E

41

GET THE ADDRESS
OF THE NEXT DEB
IN THE CHAIN

E

..

41

F

F

..

41

G

G

..

.

H

GET THE ADDRESS
OF THE ECB FROM
THE DEB

H

.
SET UP THE
PARAMETERS FOR
THE OS POST
ROUTINE

J

.
K

41

OS POST THE ECB
COMPLETE

•

•

•

4

•
Proqram Orqani2ation

823

Chart RO-l LINE END APPENDAGE

•
'GG: "'P
A

CENTER

•

}-

•
GET THE MUL T I PROCESSOR CVT
ADDRESS FROM
THE CVT

•

4

DETERM I NE ADDR
OF TEXT OR CONTROL CCW FROM
TP CODE FOR
BRANCH TABLE

•
TESTDSP INTERRUPT
THE OTHER
CPU

8

B

•

•

C

NO

•

•

---,.
+0

D

r-~
~~

•

+6

~

E

R02
F2

•

~

+8
---,

~

+10

0+12

'\!Y ---,

YES

F

~O+16
+14

•

AI

~----~----~

~

~
AI

---,
r;;;;]
.
V'
~
'V ---,

G

+ 18

+20

~ .~

•

Rg~

H

~

+26

.-"q

~

+28

'V

---,

~~
R2~ ~
+34

.-~
~
+36

K

c:5J
•
824

•

•

4

+0

+2

~

'-\!Y

~

+4

'V ---,
~
. - "7
~
"7 ~
r;Q?]

o

•
E

+8

+10

. - 'Y"
r;;l.

•

+12

'\7~
+14
. -

r;Q?]

+ 16

~0'7
'Y"~
+ 18
. -

r;Q?]

DI

•
G

+20

'Y"~
+22
. -

r;;l

R06
01

•

+24

'Y"~
+26
. -

r;Q?]

+28

~
~
+30

Rgi

H

R07
01

'Y"~

•

R~~

J

~+32

+34

R07
A4

F

R07
01

R2~
+36

•

Chart RO-2 LINE END APPENDAGE

,

B
'(

,

,

,

SET A NEG A T I VE
RESPONSE

A

A

..

•
SET THE PARAMETER LIST TO
TPOST THE ERB
TO THE BUFFER
a I spas I TI ON QCB

B

B

•
C

ENQUEUE

ENQUEUE

PUT THE ERB ON
THE READY QUEUE

PUT THE ELEMENT
ON THE READY
QUEUE

SET THE LCB TO
BE TPOSTED TO
THE BUFFER
spas I TI ON QCB

GET THE ADDRESS
OF THE
INV I TATION

01

C

L~~t~ I e~sn MT~E

..

•
ADJUST THE
RETURN REG I STER
SO THAT THE ECB
IS NOT POSTED

D

GET THE ADDRESS
OF THE NEXT
ENTRY

D

..

•
RESTORE THE
RC:GISTERS FOR
THE I/O
SUPERV I SOR

E

..
F

(

RETURN

~
12

E

•

)

F

..
G

•
RESTORE THE
REGISTERS FOR
THE I/O
SUPERVISOR

SET UP TO START
ON THE NEXT CCW

..

C

RETURN

H

G

•

)

..

H

•

•
SET UP TO
RESTART ON THE
NEXT CCW

K

•

.
"

Proqram Orqanization

825

Chart RO-3 LINE END APPENDAGE

•

•

•

•

4.

A

•

..

a

B

•

..

C

•

..

D

D

•

.

E

E

•

..
>---...

AD.JUST THE
RETURN REGISTER
SO THAT THE Eca
I S NOT POSTED

F

RESTORE THE
REGISTERS FOR
THE 1/0
SUPERVI SOR

G

•
G

•

..

H

H

..

•
AD.JUST THE
RESTART. ADDRESS
AND INCREMENT
THE RETRY COUNT

.

•
YES

K

•
826

.'

•

4

•

Chart RO-4 LINE END APPENDAGE

•

•

•

•

4

BU I LD A BREAK
COMMAND AND
SAVE THE
CURRENT CSW

NO

YES

B

•
SET THE TP OP
CODE = X' I 2' ;
SET THE START
ADDRESS

ADJUST THE
RETURN REG I STER
SO THAT THE ECB . - - -....
I S NOT POSTED

B

•
SET UP TO
RESTART ON THE
WRITE IDLES
LOOP

C

C

CHECK THE
RESPONSE

•
D

D

•
E

RESET THE RETRY
COUNT

E

•
F

GET THE RESTART
POINT

BU I LD A WR I TE
ENQ

F

G

G

•
H

H

•
CHECK ID AND
SET A BRANCH
RETURN

•

4

Proaram Oraanization

827

Chart RO-S LINE END APPENDAGE

,

,

,

,

4

5

,.-_ _ _ _oIOloW.....iI-'\4

CHACK
CHECK THE
RESPONSE

A

CHECK THE
RESPONSE

•
SET UP TO

>---~ RESTART ON THE

B

B

NEXT CCW

•

•

C

C

•
D

D

•
SET UP TO
RESTART ON THE
NEXT CCW

E

E

•

•

F

F

•

•

G

G

.~05

~

__________________

~~

________________________________________

~

________

~\

H5

•

HI

ADJUST THE
YES
RETURN REG I STER
>--.,~~ SO THA T THE ECB
I S NOT POSTED

H

H

•

•
. RESTORE THE
REGISTERS FOR
THE I/O
SUPERVISOR

ENQUEUE
TPOST TH I S LCB
TO THE MH

J

•

•

K

•
828

J

2

•

•

4

•

Chart RQ-6 LINE END APPENDAGE

~

•

•

•

•

4

'(

!'
•
B

SET THE END I NG
STATUS

•

NO

SET UP TO

>-~-~ RESTART ON READ

LCOUT

B

~

'\l

FINDBUFF
SET THE CURRENT
BUFFER BASE

C

SET UP TO START
AT WRITE ACK
(NAKI

BUILD A WRITE
NAK, REAO TEXT

C

•
o

•
E

GET

RESTORE THE
REGISTERS FOR
THE 1/0
SUPERVISOR

ADJUST PRFSIZE

r-____

r-____

~.o..I.l"-'l4

~.o..I.l"-'l4

ENQUEUE

ENQUEUE

TPOST THE
BUFFER TO THE
MH AS EOM

TPOST THE
SUFFER TO THE
MH

•

~

i',

l(L-_L~

F

ADJUST THE
RETURN REGISTER
SO THAT THE ECB
I S NOT POSTED

~
14

(

RETURN

)

E

4

CHACK
CHECK THE
RESPONSE

•

1

RO-I I

F

1
SET THE TIC
CHAIN FOR
TRANSPARENT
BUFFER

IDCHK
CHECK THE
RESPONSE

G

CHECK THE 10;
SET UP FOR A
BRANCH RETURN

G

I

•
IDCHK
H

o

CHECK THE
IDENT I F I CAT I ON

GET THE CURRENT
BUFFER

H

RESTART ON
DISABLE

TPOST THE
BUFFER TO THE
MH WITH ERROR

J

•
J

..
4
ENQUEUE

SET UP TO
REST ART ON READ
10 ENQ

K

PUT THE BUFFER
ON THE READY
QUEUE

K

(0
•

•

4

•
Proqram 0rqanizaticn

829

Chart RO-7 LINE END APPENDAGE

"

"

A

CHECK THE 10
FOR TWX

"

"

FIND THE
CURRENT BUFFER

GET THE RETURN
ADDRESS TO· THE
I/O SUPERV I SOR
TO SCHEDULE ERP

SET PARAMETER
LIST TO TPOST
THE BUFFER TO
THE BUFFER
01 SPOS I T I ON QCB

B

B

•
C

~ ~

PUT
ON

01

02

0

YES

C

•

'

SET UP TO TPOST
THE ERB TO THE
'
BUFFER
01 SPOS I TlON QCB

ADJUST THE
RETURN REG I S TER
SO THAT THE ECB
I S NOT POSTED

PUT THE ERB ON
THE READY QUEUE

0

•

•

E

E

•

•
4
SET UP TO TPOST
THE ZERO-LENGTH
BUFFER TO THE
MH

F

ENQUEUE
F

PUT THE BUFFER
ON THE READY
QUEUE

.,
RESTART AT
WR I TE IDLES

G

G

•
H

•
SAVE THE FIRST
BUFFER

H

•

•
SET UP TO TPOST
THE BUFFER TO
THE BUFFER
RETURN QCB

J

PUT THE BUFFER
ON THE READY
QUEUE

J

•

•
TPOST THE FIRST
BUFFER TO THE
BUFFER RETURN
QCB

K

(0
•
830

•

•

•

ChartR08

LINE END APPENDAGE

•

•

•

...

START ON THE
IN I TI AL CONTACT
SEQUENCE

A

•
ADJUST THE
REGISTERS; FIND
THE TRUE
FAILING CCW

ADJUST THE CCW
TO READIWRITE

B

SET UP THE
CURRENT CCW FOR

NO

Tg~NM~~~+s S~6R

B

RECALL

•

•
COMPUTE THE
SOURCE OF THE
RESPONSE FOR
AUTO POLL

C

BUILD THE
PARAMETER LIST
FOR FINDBUFF

SET UP TO TPOST
THE BUFFER TO
THE MH AS THE
LAST BUFFER

YES

•

C

...
GET THE OFFSET
INTO THE

FINDBUFF

•

ENQUEUE

~~~~~~f E~; ~~~

GET THE CURRENT
BUFFER

0

TPOST THE
BUFFER

CONTINUE

0

•

...
BSC270X

ADJUST THE
RETURN REG I STER
SO THAT THE ECB
I S NOT POSTED

ADJUST THE ERB
BUFFER COUNT

ADJUST THE
WRITE CCW

E

ADJUST THE CCW
TO READ OVER
THE EOB

F

F

•
SCAN

TPOST THE LAST
BUFFER TO THE
BUFFER
01 SPOS I TlON QCe

CHECK THE LINE
CONTROL

•

NO

~

•
IEDQKA
BUILD A
CONTINUE
SEQUENCE

G

•

...
ENQUEUE

FORCE A DISABLE
ON THE NEXT
OPERATION

H

ENQUEUE

PUT THE BUFFER
ON THE REAOY
QUEUE

.H

TPOST THE
BUFFER TO THE
MH

•

•
RESTORE THE
REGISTERS FOR
THE 1/0
SUPERVISOR

ADJUST THE
RETURN REG I STER
SO THAT THE ECB
I S NOT POSTED

J

J

•

•
K

E

•

•

G

•

BUILD THE
PREvIOUS ACK TO
START ON

C

RETURN

BUILD A WRITE
ACK FOR RESTART

•

•

•

4

)

K

•

Prooram Orqanization

831

832

Chart RO-IO'LINE END APPENDAGE

•

•

•

•

4

A

•

RO-6,C2,DI,H4

RO-2,CI,C2

RO-6,EI,E2,K4

RO-7,A3

RO-3,E2

RO-7,C3,D3,F3,J3

RO-8,D3

RO-14,DI

RO-5,KI
PUT QCB ADDR

RO-8,D5,H3,H4
RO-9,GI,K3,F4

IN

G~~EA55~M5~TfHE

B

RO-IO,G2

LAST ELEMENT ON
READY QUEUE

B

•
SET THE CURRENT
ELEMENT A S THE
LAST IN THE
DISABLED READY
QUEUE

C

C

•
NO

>---..

D

INSERT THE
CURRENT ELEMENT
I N THE CHA I N OF
PREVIOUS
ELEMENTS

D

•
E

I NCREMENT THE
BUFFER COUNT

F

SET THE PREF I X
SIZE; SET THE
PARAMETERS TO
TPOST TO THE MH

PUT THE CURRENT
ELEMENT A T THE
T.OP OF THE
READY QUEUE

GET THE ADDRESS
OF THE NEXT
BUFFER

E

CLEAR THE LINK
FIELD OF THE
CURRENT ELEMENT

•
G

SET THE
PARAMETER LIST
FOR BUFFER
RETURN

PUT THE BUFFER
ON THE READY
QUEUE

G

•
POST - POST
THE SYSTEM
WAIT
COMPLETE

H

H

J

J

•
K

K

•

•

4

•
Prooram Orqanization

833

Chart RO-ll LINE END APPENDAGE

•

•

•

RO-4,'J4

•
B

•

4

RO-8,E2

..

RO-6,G3,HI
RO-7,A2
GET THE ADDRESS
OF T~~E I gC~~AgET
AREA

ADJUST THE TIC
CHAIN IN THE
BUFFERS TO
TPOST

B

..

•
ADJUST THE
RESPONSE LENGTH
BY 2

C

•
ADJUST THE
RESPONSE LENGTH
BY I

D

ADJUST THE
COUNT FOR A
PREV IOUS CCW

D

.
E

..
PAD THE
RESPONSE AREA
WITH BLANKS

ADJUST THE CSW
FOR RESTART

..
F

E

..
GET # OF INVITATION LISTS
AND PO INTER ,0
INVITAII':~I liST
FOR TH I S LI NE

F

•
INCREMENT THE
CCW DATA
ADDRESS BY I

G

RETURN

)

G

•

.

H

H

•
SET THE SOURCE
OF THE CALL I NG
TERMINAL

J

J

.
K

GET THE NEXT
ENTRY IN THE
LIST

•
834

•

4

Chart RO-12 LINE END APPENDAGE

•

•

•

•

4

A
RO-6.A2

•

RO-8.GI

•

RN-I.G3

B

B

•

•
GET THE ADDRESS
OF THE FIRST
BYTE OF DATA

c

SET A FORMAT
ERROR - I NV ALI D
START

RETURN
C

•
D

D

•

•

E

E

•

•

F

G<::T THE FIRST
DA T A BYTE FROM
THE CURRENT CCW

F

•

•
G

GET THE seT
ADDRESS; POINT
TO STX-ENQ

G

•
H

G

)

H

•

•

J

•
K

K

•

•

4

•
Proqram Orqani2ation

835

Chart RO-13 LINE END APPENDAGE

•

2

•

•

4

•

A

A
RO-3,BI RO-4,C3
RO-5,AI,A3

•

•

B

B

•

•

C

C

•

•

o

0

•

•

E

E

•

•

F

F

•

•

G

G

•

•

H

H

•
J

RESTORE THE
REGISTERS FOR
THE I/O
SUPERVI SOR

J

•
K

K

•
836

•

4

•

Chart RO-14 LINE END APPENDAGE

,

,

,

,

4

A
RO-4,FI

•
B

B

•

•

C

BUILD THE
PARAMETER LI ST
FOR F I NDBUFF

SET THE SCB
OFFSETS

C

•

•
F INDBUFF

0

GET THE CURRENT
BUFFER

SET UP TO
RESTART ON THE
NEXT BLOCK

0

•

•
E

ADJUST THE
BUFFER COUNT
THE ERB

E

IN

•
RESTORE THE
REG I STERS FOR
THE I/O
SUPERVI SOR

WRITE AN EOT TO
RESET THE
TERMINAL

F

F

•
G

SET THE OFFSET
I N THE SCB FOR
POSSIBLE RECALL

G

•

•
GET THE ADDRESS
OF THE NEXT
UNIT

H

H

•
J

BU I LD A WR I TE
EOT TO RESET
THE TERM I NAL

J

•

•

K

K

•

•

4

•
Proqram Orqanization

837

Chart Rl-l DIAL RECEIVE SCHEDULER

•

•

•

4

•

A

•

•

B

B

•

•
IEDAYZ

YES

C

SCHEDULE TSO'

C

•

•
SET UP TO POLL
THE INVITATION
LIST

D

0

•

•

E

E

•

•
SET
>-;.....l__.. THE

F

UP TO POLL
INVITATION
LIST

F

•

•

G

G

•

•

H

H

•

•
J

..
K

•
ADJUST
PARAMETERS

•
838

•

3

•

4

•

Chart Rl-2 DIAL RECEIVE SCHEDULER

•

SAVE THE LCB
ADDRESS

A

S

•

4

GET THE ADDRESS
OF THE TERMNAME
TABLE

DSPUNAVR
EXCHANGE THE
SCHEDULERS
STCS'S

B

•

•
C

GET THE ADDRESS
OF THE FIRST
ENTRY

SAVE THE AMOUNT
OF DELAY

C

•

•
D

GET THE ADDRESS
OF THE QCB

D

•
OS TIME GET THE
TIME OF DAY

E

E

•
F

•
PUT THE SOURCE
TERMINAL
INFORMATION IN
THE LCB

CONVERT THE
T I ME TO SECONDS

F

•
G

~
F3

NO

ADD 24 HOURS TO
THE TIME

G

•
YES

H

INDICATE MORE
THAN 12 HOURS

H

•

•
J

TPOST THE QCB
TO THE TIME
DELAY QUEUE

J

•
K

•
TPOST THE Les
TO ITSELF

K

4

.,

~roqram

Orqani2ation

839

Chart R2

DISK END APPENDAGE

•

•

•

4

•

A

•

•
'---~

8

GET THE ADDRESS
OF THE D I SA8LED
FIFO QUEUE

B

•
GET THE ADDRESS
OF THE ENA8LED
FIFO QUEUE

C

~--~~-.

PUT THE
PR I OR I TY I N THE
CPB CLEANUP QCB

•
D

•
GET THE
MUL T I F'ROCESSER
CVT ADDRESS
FROM CVT PLUS
X'CO'

PUT THE CPB
CLEANUP QCB ON
THE DISABLED
READY QUEUE

DEL I NK THE CP8
FROM 10BSTART

•

D

•
I NSERT THE NEW
CPB AT THE END
OF THE FIFO
QUEUE FOR CP8
CLEANUP

E

E

•
F

C

•
OS POST THE
TCAM ECB

GET THE TCAM
TCB ADDRESS
FROM THE AVT

•

•
GET THE TCAM
TCB ADDRESS

G

G

•
H

GET THE ADDRESS
OF THE OS TASK
REMOVAL ROUTINE
FROM MP CVT
PLUS X'OC'

H

•
J

TESTDI SP INTERRUPT
THE OTHER
CPU

MOVE THE RETRY
QUEUE TO
108START; ZERO
THE RETRY QUEUE

J

•

•
SET THE FIRST
CP8 MBBCCHHR TO
108; MODIFY THE
RETURN ADDRESS
TO RETRY

K

•
840

2

K

•

•

4

•

Chart R3

LEASED RECEIVE SCHEDULER

,

,

,

,

4

•
B

B

•

•

C

C

•

•
FREE THE LINE

D

D

•
E

E

•
F

F

•

•
END OF THE INVITATION LIST

G

G

•
H

ADJUST THE STCB
CHAIN

H

•

•

•

K

•

•

3

•
Proqram 0rqanization

841

Chart R4-1 SEND SCHEDULER

•

•

2

•

•

A

•

•

B

B

•
C

C

NO

•

o

0

•
LCBSCAN

E

GET THE
DEST I NAT! ON LCB
ADDRESS

E

•

•

F

F

•

•

G

SET UP PO INTER S
FOR Tf-""
INITIATE
ODE
MESSAGE'>

G
TSO -

NO OUTPUT

•

•
MOVE THE SEND
SCHEDULER STCB
TO THE QCB

H

H

TSO -

•

OUTPUT

•

SET UP FOR A
SEND OPERAT I ON

J

J

•

•
K

•
942

•

4

•

Chart R4-2 SEND SCHEDULER

•

•

•

•

4

A

A
R4-I,E5 HM2-7,E2

•
B

HM-8,E2 AS-2,J5
HMI-b,E2

GET THE LCB

B

•
>---~

C

SAVE THE FIRST
LCB NOT I N USE
FOR POSS IBLE
CALL-UP

. . .-_.(0

C

G~
1.

•

DSPUNAVR

Ll NK THE STCB
TO THE LCB

D

(

E

RETURN

)

D·

E

•
DSPPOSTR
~-~-,

TPOST THE Ll NE
TO ITSELF

F

PUT THE MESSAGE
IN THE DIAL-OUT
CALL QUEUE

F

•
NO-OP THE TIC
CCW

G

G

..
H

H

I SSUE AN
EXCP ON
BREAK

J

J

•
K

K

•

•

•

•
Proqram 0.raanization

843

Chart R5

ATTENTION HANDLING ROUTINE

•

•

2

•

4

•

A

..
a

•
GET THE
MUL T I PROCES S I NO
CVT ADDRESS

B

.

•
TESTDSP INTERRUPT
THE OTHER
CPU

C

..

C

•

•

o

D

.
LOCATE THE Lca
FOR TH I S LI NE

E

E

..

•

F

F-

.

•
TPOST THE
ELEMENT TO THE
READY QUEUE

G

G

..

•
GET THE UCB
ADDRESS

H

H

..

•
OS POST THE
Eca
COMPLETE

J

J

..

•

K

•
844

2

•

•

4

•

Chart R6-1 START-UP MESSAGE ROUTINE

•

•

•

•

4

A

..

•
B

GET THE ADDRESS
OF THE TERMNAME
TABLE

B

•
C

•

I

GET THE COUNT
OF ENTRIES AND
INITIALIZE THE
OFFSET TO 1

C

•

•
IEDQTNT
0

D

GET THE
TERM I NAL ENTRY
ADDRESS

•

•
PUT THE ADDRESS
OF THE TERMINAL
ENTRY AND
OPTIONS IN THE
PARAMETER LI ST

YES

g~~.T~~DQE~B

E

E

•

•
F

GET THE ADDRESS
OF THE RESTARTIN-PROGRESS
EXIT

NO

ADD ONE TO THE
TERMNAME OFFSET

•

•
G

F

YES

GET THE ADDRESS
OF THE GOOD
MORNING EXIT

ADD ONE TO THE
NUMBER OF LINES
SERVICED

G

•

•
INDICATE THAT
THE LCB IS
TPOSTED TO
ITSELF'

H

H

•

•
GET THE LENGTH
OF THE USER
MESSAGE

BRANCH TO
THE USER
EXIT

J

J

•

•
GET THE LENGTH
OF THE DATA' IN
THE HEADER
BUFFER

K

K

~

'V
•

•

•

4

•
Proqram Orqanization

845

Chart R6-2 START-UP MESSAGE ROUTINE

•

•

•

4

•

A

•

•
UNITS
GET THE SCB
FROM THE LCB

B

B

•

•

C

C

•

•
REMOVE THE CPB
FROM THE
FREEPOOL

D

STORE THE UNIT
LENGTH IN
DATCOUNT

D

•
E

•
DECREMENT THE
'COUNT OF THE
AVAILABLE
BUFFERS

GET THE LENGTH
FOR THE NEXT
MOVE INTO THE
NEXT UN I T FROM
AVTKEYLE

•
F

•
REMOVE THE
BUFFER FROM THE
FREEPOOL

F

•
G

E

•
PUT THE BUFFER
ON THE CORE
FEFO QUEUE

G

•

•

H

H

•

•
PUT IN THE
DESTINATION

GET THE LENGTH
OF THE DATA IN
A TEXT BUFFER

A25FG~T t ~66~t

J

J

•
K

•
UNITS

SUBTRACT ONE
FROM UNIT COUNT

DE TERM I NE NUMBER OF UNITS IN
A TEXT BUFFER

•
846

4

Chart R6-3 START-UP MESSAGE ROUTINE

•

•

•

•

4

GET THE MAX I UM
NUMBER OF UN ITS
I N ONE BUFFER

SET THE UNI T
COUNT TO ZERO

R6-2,K2
R6-2,BI

•

•

ADD ONE TO THE
COUNT OF
MESSAGES ON
THI S QUEUE

B

GET THE DATA
LENGTH IN THE
FIRST UNIT

•
C

B

•
PUT THE CPB ON
THE INPUT QUEUE
AND PUT THE
PRIORITY IN THE
CPB CLEANUP QCB

UPDATE THE
FIRST HEADER IN
TH I S ZONE AND
FIRST HEADER !N
LAST ZONE

ADD ONE TO THE
UNIT COUNT FOR
THI S BUFFER

•

•
IGGOl9RC

0

PUT THE NUMBER
OF THI S RECORD
IN THE PREFI X

WR I TE ONE UN I T
OF THE MESSAGE
ON 01 SK

GET THE LENGTH
IN THE PARTIAL
BUFFER

YES
0

•
E

•
WAIT FOR
COMPLET ION
OF 1/0
IECB=
AVTOSECB)

MOVE THI S
RECORD NUMBER
FROM THE PREF I X
TO QCBLFEFO

YES

ADD THE LENGTH
OF THE DATA IN
THE NEXT UN I T
(AVTKEYLE)

•

•
MOVE QCBFEFO TO
DATFEFO (CHAIN
FIELD IN
MESSAGE)

F

F

•

•
ASS IGN THE
RECORD NUMBER
FOR THE NEXT
TEXT AND SAVE
IT IN THE SCB

MOVE THIS
RECORD NUMBER
TO QCBFEFO

G

SUBTRACT
AVTKEYLE FROM
THE DATA LENGTH

•
H

G

•
REMOVE THE CPB
FROM THE DISK
APPENDAGE QUEUE
AND RESTORE THE
CPB

SAVE THI S
HEADER RECORD
NUMBER IN THE
SCB

MOVE THE SAME
VALUE TO THE
PREF I X CHA IN

ADD ONE TO THE
VALUE OF THE
ADDRESS

H

•
J

E

•
RETURN THE CPB
TO THE FREEPOOL
AND CLEAR THE
PRIORITY IN CPB
CLEANUP QCB

MOVE THE VALUE
IN THE ADDRESS
TO QCBDNHDR
(NEXT HEADER)

J

•

•
ASSIGN RECORD
NUMBERS FOR THE
EXTRA UNITS
FROM ADDRESS

K

•

•

•

ADD THE COUNT
OF UNI TS TO
ADDRESS

K

4

Proqram Orqanization

gu 7

Chart TN

ATTENTION ROUTINE

•

•

•

4

•

A

A

•

•

8

8

•

•

c

c

•

•

LOAD THE
ADORES S OF" THE
ATTENTION
HANDLER
( IGGOI9R5)

0

0

•

•

E

E

•

•

F"

F

•

•

G

G

•

•

H

H

•

•

J

J

•

•

K

•
848

•

•

4

•

Chart UI

USER INTERFACE ROUTINE

•

•

•

•

A

..

•

B

B

..

•
GET THE AVT
ADDRESS FROM
THE CVT

C

C

..

•

D

D

..

•
LOAD THE BUFFER
ADDRESS'

E

E

..

•

F

LOAD THE Lee
ADDRESS

G

CALCULA TE AND
LOAD THE
ADDRESS OF THE
CURRENT SCB

F

•
G

•
H

H

•
J

J

..

•

K

K

"

"

'"

"
Proqram Orqanizaitcn

8U9

Chart XA-l DISK MESSAGE QUEUE INITIALIZER

•

•

•

•

.4

WRITE

NO

A

WRITE THE
IED070 I MESSAGE

•

•
WRITE

NO

8

WR ITE THE
IED0711 MESSAGE

•
C

B

•
GETMAIN A
BUFFER WORK
AREA ..
BlKSI ZE

OPEN THE
SYSPRINT
DATA SET

C

•

•
WTO

D

WRITE THE
IED0661 MESSAGE

0

•
E

•
OPENJ - THE
I EDQDATA
DATA SET

WRITE THE
I ED06 7 I MESSAGE

E

•
F

•
SVC 64 READ JFCB
OF THE
IEDQDATA
DATA SET

F

NO

G

WRITE THE
I ED068 I MESSAGE

G

•

•
NO

H

CLOSE THE
SYSPRINT
DATA SET

WR ITE THE
I ED0691 MESSAGE

•

•
J

ADD THE F I XED
DATA. lENGTH TO
KEYlEN

J

•

•
K

STORE THE
RESULT IN THE
BlKSIZE FIELD
OF THE JFCB

III

850

H

III

III

4

III

Chart XA-2 DISK MESSAGE QUEUE INITIALIZER

•

•

A

•

WRITE - A
DUMMY
RECORD ON
IEDQDATA

A

•
B

•

4

CHECK WA IT FOR
I/O TO
COMPLETE

XA-l,El,G2,H2,A5,B5

XA-I,D2

XA-2,Fl,C2,D2

XA-2,E4

WTO - WRITE
A MESSAGE
TO THE
OPERATOR

WRITE THE
MESSAGE TO
SYSPR INT

•
B

•
YES
C

CHECK WAIT FOR
I/O
COMPLETE

WR ITE THE
IED0121 MESSAGE

C

•
D

I NCREMENT THE
RECORD COUNTER

D

•
WRITE THE
IED0131 MESSAGE

E

E

•
F

WR ITE THE
IED0151 MESSAGE

CLOSE THE
IEDQDATA
DATA SET

F

•
FREEMA IN THE BUFFER
WORK AREA

G

G

•
H

SVC 31 SHIFT TO
THE NEXT
VOLUME

CLOSE THE
SYSPRINT
DATA SET

H

•

•
K

K

•

•

4

•
Proqram Orqanization

851

Chart YA-I TSO ATTENTION ROUTINE

•

•

•

4

.

.

A TTENT I ON ·1 NTERRUPT
RECEIVED ON A

A

S INGLE PREPARE CCW

•

•

B

B

•

•

C

C

•

•
GET THE TIME
SHARING CVT

D

D

•

•
GE:T THE TJID
FROM QCBT J I D

NO

E

E

•

•
GET THE TJID
FROM QCBL I NK

F

F

•

•
CALCULATE THE
POINTER TO THE
TJB

G

G

•

•
GET THE TSB
FROM THE TJB

H

H

•

•

J

J

•

•

K

K

•
852

•

•

4

•

Chart YA-2 TSO ATTENTION ROUITINE

•

~
A2

•

•

•

4

AI

SIMATTN

..
B

8

..
C

C

.
MERGE THE NEW
ATTENT I ON COUNT
AND THE TJID

o

0

..
E

QTIPI SWAP
IN, CLEAR
THE QUEUES
AND REMOVE
WAITS

PLACE T J8A TTN .
IN REGISTER 2

E

..
>---,..
NO

GET THE
SIMULATED
ATTENT I ON COUNT
ENTERED

F

.
G

ADD THI S TO
REGISTER 2 TO
08TAIN A NEW
ATTENT I ON COUNT

INCREMENT
REG I STER 2 BY
ONE

INDICATE
TO
BE SENT

G

.
PASS LCBERB TO
THE CALLER

H

SET UP TO
INDICATE A ! I
TO BE SENT

H

..
MAKE THE
ATTENT I ON COUNT
EQUAL TO THE
STAX COUNT

J

J

..
K

K

•

•

4

•
Proaram Orqanizaticn

853

Chart YC-l TSO CARRIAGE ROUTINE

,

,

,

,

4

A

A

•

411

PRESET THE
CARR I AGE
COUNTER

SET UP THE
ADDRESS FOR
LCB/SCB

B

B

411

YES
C

STORE A ZERO AS
THE CARRIAGE
COUNT IN THE
QCB

C

GET THE
SI ZE AND
IT BY
PREFIX

0

•
GET THE QCB
ADDRESS

0

USE TJID TO
FIND THE TSB
AND SET THE
LINE 51 ZE

UNIT
REDUCE
THE
'S I,zE

•
SAVE THE
ADDRESS OF THE
FIRST BUFFER

E

RESTORE THE
REGI STERS

E

•

411

SAVE THE
REGISTERS FOR A
CALL TO THE
TERMNAME
ROUTINE

F

STORE A ZERO AS
THE PREVIOUS
CHARACTER

SET THE NUMBER
OF UNITS PER
BUFFER

F

411

IEDQTNT
GET THE ADDRESS
OF THE TERM I NAL
ENTRY

G

SET THE DATA
SIZE

COMPUTE THE
NUMBER OF IDLES
REQUIRED

G

•

411

YES

GET AND STORE
THE DEVICE
CHARACTER I ST I CS

H

H

•

411

REDUCE THE DATA
SIZE BY THE
TCAM OR TSO
PREFIX SIZE

J

ZERO OUT THE
EOA CHARACTER
FOR THE BUFFER

GET THE ADDRESS
OF THE EX IT
ROUTINE

J

•

411

SET THE DEFAULT
FOR THE LINE
SIZE

K

K

•
A54

•

4

•

Chart YC-2 TSO CARRIAGE ROUTINE

•

•

•

•

4

A

~---.

SET UP THE LINE
COUNT AND REDUCE THE PREF I X
SIZE FOR THE
END CHARACTER

•

•

B

B

•

•

C

C

•

•
YES

.>---...

D

I NCREMENT THE
2260 Ll NE COUNT

D

•

•
ZERO OUT THE
COUNT REG I STER

E

E

•
F

SAVE THIS
CHARACTER FOR
REFERENCE

F

•
G

•
INCREMENT THE
BUFFER PO INTER
TO POINT TO THE
NEXT BUFFER

G

•

•
YES

~;;.,;...-....

H

INDICATE NL IN
TH I S BUFFER

H

•

•

J

•

•
SETUP THE UNIT
ADDRESS AND THE
KEY LENGTH

K

•

K

4

•

5

Orooram OrQani2ation

855

Chart YC-3 TSO CARRIAGE ROUTINE

,

,

4

•

DEFAUL T THE
CARR I AGE COUNT
TO THE MAX I MUM

A

A

•

..

B

8

•

..

t:

c

..

.
0

0

•

..

E

E

•

..

F

F

•

..

G

ADD ONE TO THE
CARR I AGE COUNT

G

•

..

H

H

•

..

J

J

•

..
K

K

YC2
FI

•
856

•

•

4

•

Chart YD

TSO DESTINATION SCHEDULER

•

•

•

4

•

A

•
B

B

•
GET THE NEXT
STce IN THE
CHAIN

C

C

•
D

D

•
E

E

•
F

F

•
G

GET THE
STARTING RLN
FOR THE Qce

SET THE PO INTER
TO THE lOB OF
THE Lce

G

•
H

ADJUST THE
PO I NTER TO THE
START OF THE
Lce

GET THE ADDRESS
OF THE DCB

H

•
J

GET THE SIZE OF
THE Lce

LOAD THE LCB
BASE

J

•
K

GET THE
STARTING LCB
OFFSET

GET THE ADDRESS
OF THE TIME
SHARING
SCHEDULER

LOAD THE RETURN
ADDRESS

•

2

•

K

•

4

•
Proqram Orqanization

857

Chart YE-I TSO TIOC EDIT ROUTINE

,

,

,

4

,

INSERT IDLES
AND SET UP THE
FULL LI NE SIZE

A

..

YM-I,J4.
YM-2,E2

•

YO-I,G4
GET THE MESSAGE

f~~E S tz~Dg~Ef~E

B

STORE THE LINE
SI ZE IN THE
WORK AREA

'TO' AREA, AND
THE FLAGS

..
C

•
CLEAR THE WORK
AREA AND SA VE
THE MESSAGE
SIZE AND TCAM
BUFFER SIZE

CALCSIZE
CALCULA TE THE
AMOUNT OF DATA
TO BE MOVED

..
D

C

•
SET UP THE LINE
SIZE FROM THE
TSB AND GET AND
SAVE THE DEVICE
CHARACTER I ST I CS

INSERT NL AND
I DLE CHARACTERS
WHERE REQU I RED

SET UP THE CARR I AGE POS I T I ON,
TSO BUFFER,
TCAM BUFFER, &
WORK AREA FLAGS

CALCULATE THE
NUMBER OF BYTES
TO MOVE AND
TRUNCA TE THE
EXCESS

I NSERT AN STX
CHARACTER

INSERT A CR AND
AN LF CHARACTER
I N THE BUFFER

D

..
E

B

•
EDIT
ED IT THE DATA
THAT WAS JUST
MOVED

..

E

•
I NSERT MESSAGE
INTO THE DATA
AREA AND UPDATE
THE CARR I AGE &
'TO' COUNTS

F

ZERO THE
CARRIAGE COUNT
BECAUSE THERE
ARE NO IDLES
FOR A 2260

INSERT AN LF
CHARACTER

F

..

•
UPDATE THE
PO INTER S TO THE
NL AND IDLE
CHARACTERS

G

SET LI NE SIZE
TO THAT FOR
TH I S TERM I NAL &
SUBTRACT THE
CURRENT COUNT

SET RETURN CODE
12 TO
INDICATE THAT
ONE LINE IS
COMPLETED

G

..

•
QTIPR

H

UPDATE THE
BUFFER

..
J

•
SAVE THE
CARR I AGE COUNT
I N THE QCB AND
RESTORE ALL
REGI STERS

INSERT NL AND
I DLE CHARACTERS
WHERE THERE I 5
SPACE & UPDATE
THE COUNTS

INSERT AN NL
CHARACTER IN
THE BUFFER

QTIPR
UPDATE THE TSO
BUFFER

J

..

•

~

SET UP TO
RETURN TO
IEDAYM

"
858

H

D3

"

4

K

"

Chart YE-2 TSO TIOC EDIT ROUTINE

,

A

,

,

,

J~--~- ~-.

UPDATE THE
BUFFER

GET THE BUFFER
ADDRESS AND
SAVE I T AS THE
CURRENT ONE

•
B

UPDATE THE LINE
COUNT

INSERT NL AND
IDLE CHARACTERS

B

..
C

C

•

..

D

D

..
E

E

•

..

F

INSERT AN ETX
AT THE END OF
THE DATA

INSERT AN NL AT
THE END OF THE
DATA

F

..

•
G

I NCREMENT THE
'TO' COUNT AND
DECREMENT THE
REMA I N I NG TCAM
BUFFER SIZE

G

..
INSERT IDLE
CHARACTERS
FOLLOW I NG THE
NL

H

REPLACE THE NL
WITH A CARRIAGE
RETURN (CRI
CHARACTER

PUT A ZERO IN
THE CARRIAGE
COUNT

H

.

•
YES

I NSERT AN LF
INTO
THE BUFFER

>-----o~ CHARACTER

..

•
STORE A X'C2'
TO INDICATE AN
LF CHARACTER IS
NEEDED

K

INDREMENT THE
'TO' COUNT AND
DECREMENT THE
REMA I N I NG TCAM
BUFFER SIZE

K

YEI
HI

•

3

•

4

Proqram Orqanization

859

Chart YE-3 TSO TIOC EDIT ROUTINE

•

•

•

,

4

A

A
YE-I,J5

•

YE-I,C5

YE-2,82

•

8

8

•

•
IEDAYS

C

REDUCE THE
MAXIMUM DATA
SIZE TO THE
SIZE OF THE
TCAM BUFFER

COUNT THE
NUMBER OF LI NES

C

YES

•
REDUCE THE TCAM
BUFSIZE BY 2
AND FORCE A NEW
ENTRY IN A NEW
BUFFER

D

•
D

•

•

E

E
YE-I,H5

•
F

YE-I,J4

•

YE-2,AI
STORE REGI STERS
AND PICK UP THE
COUNT OF DATA
MOVED

SET THE DATA
LENGTH EQUAL TO
THE LINE SIZE

F

•
G

PUT ZEROS IN
THE DATA MOVED
COUNT

G

•

•
H

H

SVC 101

•

•
J

RESTORE ALL THE
REGISTERS

J

•

•

K

K

2

860

•

•

'4

Chart YE-4 TSO TIOC EDIT ROUTINE

,

,

,

4

,

SAVE REGISTERS
AND DATA COUNT

A

YE-l.E5

•

•
SAVE THE
CURRENT TSO
BUFFER ADDRESS
AND REDUCE THE
COUNT FOR MOVE

B

e

•

•
MOVE THE DATA
FROM THE TSO
BUFFER TO THE
TCAM BUFFER

C

C

•

•

D

D

•

•
~2~NSX~~ ~~~E.

·E

E

NUMBER OF
BLANK S FOUND IN
THE WORK AREA

•

•

F

F

•

41

G

G

•

•

H

H

•

41

.J

I NCREMENT TO
THE NEXT
CHARACTER TO BE
SCANNED

.J

•

41

UPDATE THE
COUNTS AND
ADDRESSES

K

•

K

•

4

•

5

Proqram Orqanization

861

Chart YF

TSO IOHALT

,

,

,

4

,

A

A

.

..
IOHALT
I SSUE AN
IOHALT TO
HALT THE
PREPARE

8

B

.

..

C

C

.

..
I EDQHG02'
REMOVE THE LC8
FROM THE T I ME
DELAY QUEUE

0

0

LI NK RECE I VE
SCHEDULER IN
STC8 CHAIN

.

.
SET TO TpOST
THE LCB TO
ITSELF

E

E

..

..
SET UP TO TpOST
TO THE HANGUl"
ROUTINE
( IEDAYH)

YES

F

F

.

..

G

G

..

.

H

SET UP TO TpOST
TO THE TSO
ATTENTION
ROUTINE
( IEDAYA)

H

.

.
J

THE ELEMENT TO
8E TPOSTED IS
THE LC8

J

...

.

K

K

•
862.

2

•

•

4

•

Chart YH

TSO HANGUP ROUTINE

•

•

•

•

4

A

A

41

B

GET THE NEEDED
ADDRESSES FOR
BOTH ENTRY
POINTS

B

•

41

C

C

•

41

D

TELL TCAM THAT
A HANGUP IS
OCCURRING

D

•
E

41

QTIP ENTRY 4 TO
TELL TSO A
HANGUP IS
OCCURR I NG

E

•

41

F

F

•

41

G

G

•

41

H

H

41

PUT THE ERB
ADDRESS IN
REGI STER 1

..J

..J

•

41

K

K

4

•
Proqram Orqanization

8E 3

Chart YI-I TSINPUT ROUTINE

,

A

,

,

4

,

'~

ET

•
TURN OFF THE
TSI POST BIT

S

B

TAKE THE SYSTEM
OUT OF LWAIT;
TURN OFF THE
'T10CSYLW' AND
'QCBNOSUF' SITS

C

C

•
D

TAKE ALL TSSS
OUT OF TS ITSSQ
AND TURN OFF
ALL QCSTSBQ
SITS

FREE ALL TCAM
AND TSO· BUFFERS
FOR THI S
MESSAGE

D

•
E

DEQUEUE A TCAM
SUFFER CHAIN
AND RESET THE
QCBBUFQ SIT

r--'"

RETURN THE
FREED TCAM
BUFFERS AND ANY
QCSS BEING
TPOSTED

PUT THIS TSB IN
THE TSITSBQ
QUEUE AND TURN
ON THE QCSTSBQ
SIT

PUT THE SYSTEM
IN LWAIT

E

•
TURN OFF THE
TSB I FLSH AND
TSBSIPI SITS

F

F

G

G

•
H

H

•
J

TURN OFF THE
TSB I FLSH AND
TSBBIPI SITS

J

•
K

FREE TH I S TCAM
SUFFER

K

•
864

4

•

Chart YI-2 TSINPUT ROUTINE

,

,

,

4

,

~
B1

..

•
TURN OFF THE
QCBREAD AND
QCBTGET BITS

B

B

..
C

•
PUT THE USER
LWAIT

IN

C

•
MARK THE TS
MESSAGE
COMPLETE

D

D

.
E

•
PUT TCAM BUFFER
ON THE WAITING
BUFFER QUEUE

SET TSBBRK I N
AND MARK THE
HEADER BUFFER
AS PARTIAL LINE

E

..

•
INCREMENT THE
AUTOMA TIC LI NE
NUMBER FOR EACH
COMPLETE LINE
IN TCAM BUFFER

F

F

•
TERM I NA TE THE
AUTOMA TIC LI NE
NUMBERING

G

G

..

•
NO

H

H

..

•
CALL TSIP TO
BRING USER IN
MAIN STORAGE
AND REMOVE
IWAIT

,J

NO

,J

•
REMOVE THE USER
FROM IWAIT

K

~

'V
4

•
Proqram Oroanizaticn

86

~

Chart YL-l TSO LOGON ROUTINE

•

•

•

•

4

.

..

B

B

.

..
IEDQTNT

C

GET THE ADDRESS
OF THE TERM I NAL
TABLE ENTRY

C

.
0

..
FIND THE PROPER
,QCB

0

..

•
IEOQUI

CANCEL THIS
BUFFER

E

ACTIVATE I EOQAE
TO FIND USER
EXIT OPTION

.

E

..

NO

F

F

..

..

G

G

.

..

H

ROUTE THE
BUFFER TO TSO

H

.
J

..
SAVE THE
REG I STERS FOR
USE AFTER THE
LOGON SCAN

YES

PUT BLANKS IN
FRONT OF THE
LOGON
CHARACTERS

.

..
RESTORE THE
REGISTERS TO
CONTENTS BEFORE
LOGON SCAN

K

•
866

J

2

3

•

4

Chart YL-2 TSO LOGON ROUTINE

A

•

•

8

8

•

•

C

C

•

•
SET UP THE
RETRY COUNT

D

D

•

•

E

E

•

•

F

F

•

•

G

G

•
H

H

•

•

J

J

•

•

K

ACTIVATE IEDQAE
TO FIND USER
EXIT OPTION

K

•

4

•
Proqram Orqanization

8E?

Chart YM-l TSO MESSAGE GENERATION ROUTINE

•

•

8

4

SET UP TO
RETURN TO
BUFFER
DISPOSITION

A

..

,

,

A

FROM IEDQBD

•
GET ACCESS TO
THE AUTOMA TI C
LINE NUMBER
FROM THE TS8

LINK BUrFER S
I NrO LC8ERBLK
FOR A FUTURE
TPOST

B

.

•
CONVERT THE
LINE NUMBER TO
A OEC I MAL VALUE

C

C

.

•
SET UP THE
ADDRESS OF THE
LINE NUMBER AND
LENGTH

o

o

.

•

E

E

.

•

F

F

..

•

G

G

.

•

H

BUILD THE
PARAMETERS TO
PASS TO THE
EDIT ROUTINE

GET THE
TERMINAL ENTRY
FROM THE
TERMINAL TABLE

.

•
EDIT THE
MESSAGE DATA

.

J

•
GET ACCESS TO
THE ADDRESSING
>--..1.ooj", CHARACTERS FOR
THE 2260

•
868

H

GET THE PROMPT
MESSAGE AND THE
AUTO LINE
NUMBER FROM THE
TSB

•

K

4

Chart YM-2 TSO MESSAGE GENERATION ROUTINE

,

,

,

,

4

CLEAR THE ERROR
INDICATORS IN
" ) - - -.. THE LCB AND THE
SCB

A

FROM THE TeAM
DISPATCHER

B

41

INDICATE IF" THE
BUFFERS ARE
TPOSTED

B

41

SET UP TO SK I P
THE REMAINING
I NMSG I OUTMSG
MACROS

C

C

.
o

0

•

..
IEDAYE
E

EDIT 'ENTER'
MESSAGE FOR
INVALID LOGON

E

..
YES

F

UPDATE TO THE
NEXT
TRANSLATION
TABLE

F

..
TRUNCA TE THE
CHARACTER
STRINGS TO BE
PRINTED

G

NO

SET UP TO
RETURN TO
BUFFER
01 SPOSITION

G

..
SET UP TO
RE-ENTER IEDAYM
AT AYMOOO

H

H

..
J

J

41

K

K

•

4

Proqram Orqanization

Chart YM-3 TSO MESSAGE GENERATION ROUTINE

,

4

,

GET THE ADDR OF
THE S I MULA TED
ATTENTION
MESSAGE AND THE
LENGTH

A

A

..
B

B

..

~

C

C

..
YMI
F2

D

0

..
E

SET UP THE CCW
TO ERASE THE
DISPLAY

TRANSLATE THE
MESSAGE

E

..
F

I NO I CA TE MSGGEN
FOR THE 1/0
GENERATION
ROUTINE

INDICATE MSGGEN
FOR THE 1/0
GENERATION
ROUTINE

F

..
G

SET UP THE CCW
TO WRITE THE
MESSAGE

G

..
H

SET UP THE
I NTERF ACE TO
THE 1/0
GENERAT I ON
ROUTINE

H

..
J

J

..
K

•
870

•

4

•

Chart YO-l TSOUTPUT ROUTINE

,

,

,

,

4

A
ACTI VATED BY THE
TCAM DISPATCHER

•

•
QTlP 12 FREE THE
TSO BUFFER
AND REMOVE
WAITS

B

SET UP TO TPOST
THE TCAM BUFFER
TO BUFFER
RETURN

B

•
PREPARE TO PASS
CONTROL TO
I EDQFA OR
I EDQFQ

C

C

•

•
QTIP 13 REINITIALIZE THE
OUTPUT
MESSAGE

D

GET THE NUMBER
OF BASIC UNITS
PER TCAM BUFFER

D

•

•
TPOST THE LCB
TO RECALL

E

E

•

•

F

F

•

•
TPOST THE LCB
TO THE
ATTENTION
ROUTINE

G

IEDAYE
MOVE DATA INTO
THE BASIC UNIT
AND EDIT IT

•

•
YES

HC§
•

G

H

F2

•

J

J

•

•

K

REQUEST MSGGEN
TO SEND THE
AUTOMATIC
PROMPTING
MESSAGE

GIVE INPUT
PRIORITY FOR
THIS TERMINAL

K

Y02
AI

•

•

4

Proqram Orqani2ation

871

Chart YO-2 TSOUTPUT ROUTINE

,

,

4

,

A

•
~-~...

B

C

SET UP TO TPOST
THE ERB TO
ACTIVATE

OSPPOSTR
TPOST THE ERB
TO MH

SET UP TO TPOST
THE ERB TO
RECALL

C

•
o

o

•
SET UP TO TPOST
THE ERB BACK TO
TSOUTPUT

E

E

•
QTIP 15 PUT TS MESSAGE ON THE
OUTPUT
TRAILER Q

F

F

•
SESCLEAN
CLEAN UP THE
TCAM CONTROL
BLOCKS

G

SELECT THE
PROPER LOGOFF
MESSAGE

QTIP 14 CLEAN UP
THE TSO
CONTROL
BLOCKS

CLEAN UP THE
TCAM CONTROL
BLOCKS

G

•
SELECT THE
AUTOMATIC
PROMPTING
MESSAGE

H

SELECT THE TS
ABEND MESSAGE

H

SET UP TO EX IT
TO MSGGEN

J

•
J

SET UP TO SEND
AN IDLE

•
K

K

•

4

•

Chart YO-3 TSOUTPUT ROUTINE

,

,

,

4

,

---,-~

C

I NIT I AL I ZE THE
LCB RESERVE
COUNT

C

•

•
GET THE IDLES
COUNT FROM THE
BUFFER PREF I X

0

SET THE SCAN
POINTER =
HEADER PREF I X
SIZE + RESERVE
COUNT

0

•

•

E

E

•

•

F

UPDA TE THE FEFO
POI~!TER IN THE
PR I OR I TY QCB
FROM THE SCB

F

LINK TO GET THE
TERM I NAL ENTR Y
ADDRESS

•

•
ADD ONE TO THE
OUTPUT SEQUENCE
NUMBER

G

G

•

•
RESET THE
OUTPUT SEQUENCE
NUMBER TO ONE

H

•

H

•
MOVE THE
UPDATED
SEQUENCE NUMBER
TO THE TERM I NAL
ENTRY

..J

..J

•

•

K

K

•

2

•

4

•
Proqram Orqanization

875

Chart YR-3 STARTMH SUBTASK FOR TCAM-TSO MIXED

•

3

•

<4

•

I N I TI ALI ZE THE;
OR I GIN FIELD IN
THE BUFFER
PREFIX FROM THE
LCB

A

•

•
CLEAR THE scB

Cu~~~~R b60rh

B

B

AND DESTI NAT I ON
QCB TO ZEROS

•

•

C

C

•

•
SET THE INPUT
SEQUENCE NUMBER
I N THE BUFFER
PREF I X TO ZERO

D

D

•

•
GET THE RESERVE
COUNT FROM THE
LCB

E

E

•

•
SET THE SCAN
POINTER =
HEADER PREF I X
SIZE + RESERVE
COUNT

F

F

•
GET THE SCT
ADDRESS FROM
THE DCB

G

G

•

•

H

H

•

•
J

GET THE EOA
SEQUENCE

J

•

•
SET THE SCAN
PO I NTER BEYOND
THE EOA
SEQUENCE

K

•
876

2

•

3

•

<4

K

•

Chart YR-4 STARTMH SUBTASK FOR TCAM-TSO MIXED

,

,

,

,

4

GET THE DEB
ADDRESS FRDM
THE DCB

•
B

4

GET THE UCB
ADDRESS FROM
THE DEB

B

•

4

IEDQAI
C

C

•

4

D

D

•

4

E

E

•

4

F

F

•

4

G

G

•
H

H

•
SET THE OLT
PRIORITY IN THE
BUFFER PREF I X
AND THE RCB

J

4

K

K

•

4

•
Proqram Orqanization

877

Chart YR-5 STARTMH SUBTASK FOR TCAM-TSO MIXED

•

•

•

4

•

MOVE THE
RESERVE COUNT
FROM THE DCB TO
THE LCB

NO
A

•
B

•
SET THE SCAN
POINTER = THE
TEXT PREFI X
SI ZE + THE
RESERVE COUNT

GET THE TS INPUT
QCB ADDRESS
FROM THE AVT

B

•
C

•
GET THE ON-LINE
TEST QCB
ADDRESS FROM
THE AVT

GET THE
DESTINATION QCB
ADDRESS FROM
THE SCB

C

•
D

D

•

•

E

E

•

•

F

F

•

•

G

G

•

•

H

GET THE ADDRESS
OF THE
TRANSLA TI ON
PARAMETER LI ST
FROM THE SCB

PASS A ZERO TO
MH (NOT MBH)

H

•

•
IEDQAW
..J

SET AN
I NCREMENT OF
4096 IF THERE
ARE MULTI PLE
BASE REGISTERS

TRANSLATE THE
BUFFER

..J

•

•
GET THE FIRST
MH I NSTRUCT I ON
ADDRESS

K

•
878

2

PASS A MINUS TO
MH (IS MBH)

3

K

4

•

Chart YS-l TSO SIMULATED ATTENTION ROUTINE

•

•

•

•

4

A

41

B

B

41

SET UP TO
RETURN THE
BUFFER

C

C

41

SET THE
ATTENTION
REQUEST AND THE
LEVEL

REQUEST A
SCREEN ERASURE

D

D

41

YES

>---...

E

REQUEST A
SCREEN ERASURE

E

41

F

F

41

REQUEST A
SCREEN ERASURE

G

G

41

H

H

41

..J

SET THE
ATTENTION
REQUEST AND THE
LEVEL

..J

41

K

K

•

3

•

4

•
Proqram Orqanization

8'9

Chart YS-2 TSO SIMULATED ATTENTION ROUTINE

•

•

•

•

4

A

A

•
B

B

•
SVC 101 QTIP 26 TO SEE IF A
TI"UT WAS
REQUESTED

I NCREMENT THE
LINE COUNT

C

c

SET THE QCB TO
BE TPOSTED TO
ITSELF

YES

D

•

•
REQUEST A
SIMULATED
A TTENT I ON READ

E

E

•
F

•
I NCREMENT THE
I,.INE COUNT

F

•

•
REMOVE THE LCB
FROM THE TIME
DELAY QUEUE

G

G

•
H

D

•
REQUEST A
SIMUI,.ATED
A TTENTI ON RI;:AD

SET THE LCB TO
BE TPOSTED TO
ITSELF

H

•

•

J

J

•
K

K

"
880

"

3

"

4

"

Chart YT

TSO ABEND INTERFACE ROUTINE

•

•

•

3

•

4

A
YT,DS,E4

•

..

B

B

•

.
AYTI04

TCABEND SVC 94 - TO
SET BITS
AND POST
THE TSC ERB

C

QCB ROUTINE

ABEND ROUT I NE
AQCTL SVC

.

•
D

C

(

RETURN

)

TO SET THE
PROPER BITS

ABEND ROUT I NE
AQCTL SVC

.

NO

•

D

AYTI04

E

E

TO SET THE
PROPER BITS

QCB ROUTINE

..

•

F

F
YT ,E2,C4

•
SET THE 51CB
POINTER TO
POINT TO THE
QCB

G

G

·

..
CLEAR THE STCB
LINK ADDRESS

H

•
SET THE ELEMENT
CHAIN TO POINT
TO A. DUMMY
ELEMENT

J

J

..

•
K

(

RETURN

)

K

•

•

3

4

•
Proqram Orqanization

881

Chart YX

TSO INMSG/OUTMSG LINKER

•

•

•

4

•

A

A

..

•
B

B

•

..

C

ASSUME THAT
THI S IS THE
HANGUP ROUTINE
AND THAT IT HAS
NO MASK

C

•
LOAD THE MH
ADDRESS

GET THE ADDRESS
OF THE DCB

o

LOAD THE
ATTENT I ON ,
ROUTINE ADDRESS

o

..

•
E

LINK THE
ELEMENTS; SET
THE PRIORITY

E

..

•
F

GET THE MH
MACRO ROUT I NE
ADDRESSES

F

..

•
G

LOAD THE
ADDRESS OF
BUFFER
DISPOSITION

G

..

•
H

TPOST THE ERB
TO BUFFER
01 SPOSITION

H

.

•
J

SET THE
ATTENTION
ROUTINE BASE
ADDRESS

J

•

..

K

K

•
882

•

4

•

Chart YY

TSO ASYNCHRONOUS TIME DELAY REMOVAL ROUTINE

•

•

•

•

4

UPDATE THE
PREVIOUS
ELEMENT PO INTER

A

..

•

B

B

•
C

GET THE ADDRESS
OF THE TS INPUT
Qce

C

..

•
UPDATE THE LINK
POINTER

D

D

..

•

E

E

..

•

F

TPOST THE Qce
TO ITSELF TO
INITIATE A SEND
OPERATION

LOAD THE
ADDRESS OF THE
T I ME DELA Y Qce

F

.
G

•
GET THE NEXT
ELEMENT ON THE
TIME DELAY
QUEUE

RESTORE THE QCB
FLAG BYTE

G

.
H

•
NO

I ND I CATE THE
QCB THAT WA.S
TPOSTED

H

•
LOAD THE POST
REGISTER WITH
THE Qce ADDRESS

J

J

..

•
DSPPOSTR

K

TPOST THE
ELEMENT TO THE
READY QUEUE

•

•

K

4

Proqram Orqanization

883

Chart YZ-I TIME SHARING SCHEDULER

•

•

•

4

•

5

A

A
IGGO 19R3

•

BI

R4-I,F3

R3,F3,B5

•
TPOST THE LCB
TO THE
ATTENTION
ROUTINE

B

B

•

•
C

•
D

D

•

•

E

E

•

•
PUT
THE

F

•
UPDATE THE
LCBTTBIN FIELD
IN THE LCB

G

•

G

•
UPDATE THE
ADDRESS OF THE
INVITATION LIST

H

H

•
J

J

•

•
REMOVE THE QCB
FROM THE T I ME
DELAY QUEUE

K

•
884

•

4

•

Chart YZ-2 TIME SHARING SCHEDULER

•

(

•

•

•

4

A

ENTER

IGGO 19R 1

•

•

B

8

•

•

C

c

•

•

D

o

•

•

E

INSERT· THE QCB
IN THE TIME
DELAY QUEUE

E

•

•

F

F

•

•

G

G

•

•

H

H

•

•
J

PUT A PREPARE
ON THE LINE

-J

•

•
K

SET UP TO TPOST
THE LINE TO THE
DELAY QUEUE

REMOVE THE QCB
FROM THE T I ME
DELAY QUEUE

•

4

K

•
Proqram Orqanization

885

Chart YZ-3 TIME SHARING SCHEDULER

•

•

A

(

•

4

•

A

ENTER

IGGOl9RO

•
B

B

SET
C

C

•
D

SET up, TO
ADJUST THE
BUFFER PREF I X
SIZE

ADJUST THE
PREFIX SIZE

D

•
SET THE OPT I ON
CODE TO A READ
I F THE TERM I NAL
I S NOT A 2740

E

E

YES

•
F

F

REMOVE THE QCB
FROM THE T I ME
DELAY QUEUE

G

G

•
SCHEDULE THE
ENABLED ENTRY
INTO TSO SCHEDULER TO PUT QCB
IN DELAY QUEUE

H

H

•
J

J

•
K

K

•
886

•

•

4

Chart YZ-4 TIME SHARING SCHEDULER

,

,

,

4

,

AYZ3QQ

(

..

A

EN'"
IGGO 19R4

QEVENT

•
B

B

•
c

c

..

•

D

D

..

•

E

E

•
F

F

..

•

G

G

•
H

H

•

.

•

K

K

•

•

•

4

•
Proqram Orqanization

887

Chart YZ-S TIME SHARING SCHEDULER

,

,

,

4

,

A

•

•

a

a

•

•

c

REMOVE THE Lca
FROM THE T I ME
OELAY QUEUE

•

•

0

o

•

•

E

E

•
F

F

•

•

G

G

•

•

H

H

•

•

J

J

•

•
>---~

K

•
888

•

•

POST THE Lca TO
ITSELF

4

Chart Zl-l

OPERATOR CONTROL CONTROL MODULE - LOAD 0

,

,

,

4

,

CA,E2,C4
ZI-2,C4

•

Z3,C5

B

B

..

•

C

C

.

•

D

BUILD AN
OPERATOR
CONTROL ECB
THE AVT

GTFIELD
IN

SCAN THE
COMMAND

D

..
E

•
WAIT - FOR
AN OPERATOR
CONTROL
COMMAND

E

..

•

F

F

G

G

•
GTF I ELD
H

SCAN THE
COMMAND

H

..

•

.j

.j

•
K

K

•

•

•

4

•
Proqram Orqanization

889

Chart ZI-2

OPERATOR CONTROL CONTROL MODULE - LOAD 0

•

•

4

•

GET THE NUMBER
OF PREY I OUSL Y
USED BYTES

B

USE THE SCAN
POINTER TO
CALCULA TE THE
COMMAND ADDRESS

CALCULATE THE
BEGINNING OF
THE ENTRY

B

..
PROCESS THE
COMMAND

C

D

C

SK I P PAST THE
LEAD I NGBLANKS

D

..
E

•
SCAN TO THE END
OF THE FIELD

E

.

•

F

F

..

•

G

G

..

•

H

H

..

•

J

J

.

•

K

K

•
890

2

•

•

4

•

Chart Z2

OPERATOR CONTROL CONTROL MODULE - LOAD 1

•

•

•

•

4

A

•

•

B

B

•

•

C

C

•

•
WTO "CLOSEDOWN
IN
PROGRESS"

D

D

•
E

•
QEDI T - TO
PREVENT
QUEUING
COMMANDS

LOAD - THE
APPROPRIATE
FUNCTIONAL
OPERATOR
CTL MODULE

DETERM I NE THE
TYPE OF COMMAND

DETERM I NE THE
TYPE OF COMMAND

E

•
BALR

F

EXECUTE FUNCT IONAL OPERA TOR
CONTROL MODULE

G-)_____

•
G

F

DELETE THE MODULE
JUST
EXECUTED

YES

T_I

GET THE NEXT
COMMAND

•
G

•

•

H

H

•

•

J

J

•

•

K

K

2

4

Proqram Orqanizaticn

891

Chart Z3

OPERATOR CONTROL CONTROL MODULE ~ LOAD 2

•

•

•

4

•

A

Z3,C3

.
B

B

.
IGCOO I 00
NO

C

GET THE NEXT
FIELD IN THE
COMMANO

GET THE NEXT
FIELD IN THE
COMMAND

.
D

C

•
DETERM' NE THE
TYPE OF COMMAND

0

.

•

E

E

..

•

F

F

..

•

G

G

..

•

H

H

..
J

J

.
K

K

•
892

2

•

•

4

Chart Z4

OPERATOR CONTROL CONTROL MODULE - LOAD 3

•

•

•

4

•

GET THE ERROR
ADDRESS

>---.. MESSAGE

A

•

•

8

B

C

C

•
SET UP TO POST
THE EC8

D

D

•
E

E

•

•

F

F

•
DEQUEUE AN
ELEME;:NT AND
RESET THE
'QUEUING' BIT

G

•

•
IGCl02

H

G

DELETE THE
FUNCTION
MODULE

POST THE
CHECKPOINT ECB

H

•

•

J

J

•

•

K

K

•

•

•

4

•
Oroaram Orqanization

893

Chart

zs

OPERATOR CONTROL CONTROL MODULE - LOAD 4

•

•

•

•

A

•

(0)

AVTSAVE1
Message Control Program Save Area
AVTSAVE2
Dispatcher Save Area

1+144(901

1216(081

AVTSAVE3
Subtask Save Area

AVTSAVE4
First Level Subroutine Save Area

1288 (1201
AVTSAVEX
Disabled Save Area

1+320(1401
-I"""

AVTDLO
D LQ=Termname

'1

I
I

1
I_

...

+328 (148)
AVTCSTCS
Address of the First Entry in the Device Characteristics Table
+332 (14C)
AVTDPARM
Disabled Parameter List

.........+336 (150)

AVTDOUBX
Disabled Doubleword Scratch Area

.........

+344 (158)
AVTDOUBL
Enabled Scratch Area

1+352 (1601

AVTCTLCH
Operator Control Characters

I

+360 (168)
AVTPASWD
Password

-I"'"

_r-

+368 (,170)
AVTTCB
Address of the Message Control Program's TCB; Set by OPEN
+372 (174)

AVTRACE
Trace Table Address

+376 (178)
AVTREADY
Enabled Ready Queue

....

+380 (17C)
~

AVTREADD
Disabled FIFO Ready, Queue

+388 (184)
AVTCKGET
Checkpoint Work Area Address
+392 (188)

916

AVTOCGET
Operator Control Work Area Address

--:-

+396 (18C)

AVTEXA2S
Executed Instructions to Save the User's Registers
1+402 (192)

AVTEXS2A
Executed Instructions to
Save the User's Registers·

408 (198)
AVTPARM
Address of Parameters
412 (19C)
AVTBASE
Address of the A VT
416 (1AO)
AVTPARM3
Address of Additional Optional Parameters
420 (1A4)
AVTDISTR
Address of the Dispatcher Subtask Trace Table
424 (1A8)

AVTRNMPT
Address of the Termname Table

428 (1ACI
AVTRDYA
Address of User Exit in the READY Macro Expansion.
432 (1 BO)

AVTBSCAN
Line End Appendage BSC Message Scan

436 (1B4)

AVTRARTN
Address of Routine to Update Line I/O Trace Table

--

440 (1B8)

.... 1.-.

AVTPOST
Tpost Parameter List Used by Operator Control

_10...

.... r-

448 (1CO)

AVTSPLPT
Start Parameter List Pointer; Set by INTRO
4194 (1 C6)

453 (1 C5)

452 (1C4)
AVTCIB
CIB=lnteger

AVTNOLBF
LN U N ITS= Integer

AVTNCKPR
CKREQS=lnteger

456 (1C81
AVTAS
Address of the Hold/Release Terminal Routine
460 (1CC)
AVTCKTCB
Address of the Checkpoint TCB
464 (100)
AVTOCTCB
Address of the Operator Control TCB
468 (104)

472 (108)

c

AVTOLTCB
Address of the On-Line Test TCB

AVTCWTCB
Address of the FE Common WriteTCB

Data Area Layouts

917

476 (1DC)

AVTCWECAFE Common Write ECB

480 (1EO)

AVTCKECA
Checkpoint ECB

484 (1E4)
AVTOLECA
On-Line Test ECB
488 (1E8)

AVTO,PECA
Operator Control ECB

492 (1EC)

AVTOSECB
ECB Used by the Dispatcher to Cause TCAM
Task to be in the Wait Stat~_

496 (1 FO)
AVTPCBPT
Address of the First Process Control Block
500 (1F4)

AVTOPTPT
Address of the Option Table

504 (1F8)

AVTKA02
Address of the I/O Generator in the Activate Subtask

508 (1FC)
AVTREXIT
TREXIT=Name
512 (200)
AVTCRSRF
CROSSRF=lnteger
516 (204)
AVTCOMPT
Address of Communications Parameter List
520 (208)

AVTUI
Address of the User Interface Routine

524 (20C)

.

AVTOLIST
I
r- _____ ~L,:!:~!:,~t~e~.J
528 (210)

AVTLM
Address of the Return Interface Routine
AVTHG02
Address of the Routine to Remove a Checkpoint
Element from the Time Delay QCB

532 (214)
AVTAL
Address of the Address Finder Routine
536 (218)
AVTGD
Address of the Buffer Association' Routine
540 (21C)
AVTA3
Address of the Transparent CCW Builder Routine (lEDQBT)
544 (220)
AVTAX
Address of the Buffer Step Routine

918 :

548 (224)
AVTEA
Address of the TCAM Dispatcher
552 (228)
AVTHA
Address of the Receive Scheduler
556 (22C)
AVTHD
Address of the Send Scheduler
560 (230)
AVTEW
Address of the Get Scheduler
564(234)

568 (238)

AVTEC
Address of the Put Scheduler

AVTEZ
Address of the Get FIFO Scheduler

572 (23C)
AVTBZ
Address of the Log Scheduler
576 (240)

AVTR1
Address of the Dial Scheduler

580 (244)
AVTHB
Address of the Buffered Schedufer
584 (248)

AVTE7
Address of the Retrieve Scheduler

588 (24C)
Reserved
592 (250)
Reserved
596 (~54)
Reserved
600 (258)
Reserved
604 (25C)
Reserved
608 (260)
Reserved
612 (264)
Reserved
616 (268)
Reserved

Data Area Layouts

919

620 (26C)
Reserved

624 (270)
AVTDMECB
Dummy Line I/O ECB
628 (274)

'AVTA3TL
Address of the Translate List for the Dynamic Translation Routine (IEDQA3)

632 (278)
AVTTONE
WTTONE=lnteger; Address of World Trade Tone Characters
636 (27C)

AVTNX
Address of the Operator Awarehess Message Routing Routine

640 (280)

AVTIOT
Address of Line I/O Trace Table Handler

644 (284)

AVTHI
Address of System Delay QCB

648 (288)

AVTHK
Address of the Stopline QCB

652 (28C)

AVTCKRMV
Request for Removal of Checkpoint Routine
Element from Time Delay Queue

-""

_.....

AVTCKELE
Checkpoint Request Element, Start of Checkpoint QCB

676 (2A4)

AVTCKQAD
Address of the Checkpoint ace·
681 (2A9)

680 (2A8) AVTCKELF
Checkpoint Request
Element Flags

682 (2AA)
AVTCKELV
CPINTVL=Time Interval

AVTCPRCD
CPRCDS=lnteger.

684 (2AC)

686 (2AE)
AVTCKTIM
Time of Day Interrupt

688 (2BO)

I ndex to aCB Address
690 (2B2)

AVTOPXCL
10 of OPEN Module with Error

AVTOPERT
OPEN Error Type

692 (2B4)
AVTHG01
Address of Time Delay Subroutine
696 (2B8)

700 (2BC)

704 (2CO)

""-

677 (2A5)
AVTSCBSZ
sce Size

9201

_10-..

AVTCKLNK
Link Field On the Time Queue

AVTDELEM
Dummy Last Element

AVTDELAD
Address of the Dummy Last Element

287 (2AF)
AVTOPERL
OPEN Error Locator
691 (2B3)AVTCKBVT
Status at Checkpoint
and Time Delay

J?08 (2C4)

716 (2CC)

1.... -

AVTCCELE
I nCldent
.
Checkpoint Request Element

.... r""

718 (2CE)

AVTCLRHI
Mask for Clearing Left Two
Bytes of a Register

AVTHFF
Half Word of X'FFFF'

720 (200)
. AVTADBUF
Address of Buffer
724 (204)
AVT2260L
Address of 2260 Local Receive Scheduler
728 (208)

729 (209)
AVTMSGS
List of Optional VCONs

AVTSYSER
System Error Flags
732 (2DC)

AVTINSPT
Address of the aCB of Available Insert Blocks

736 (2EO)
AVTSUPPT
Address of the Start-up Message aCB
740 (2E4)

744 (2E8)

AVTTSOPT
Address of the Time Sharing Input aCB

AVTOCOPT
Address of the Application Program Open/Close Routine

748 (2EC)

........

AVTDELYB
Time Delay Subtask aCB

... ~

- ----.- - - - - - --- -- ........
---- -- 1766(2FE)
..

764 (2FC)

AVTREFTM
Reference Time

~

-- -- -

--

_....

AVTINOUT
Dummy INEND/OUTEND Parameter List

768 (300)

_.....

776 (308)

--

780 (30C)

AVTIMOPS
SVC 102 Parameter

AVTTIMO
Time Delay aueue

AVTBFREB
Buffer' Request ace

792 (318)
AVTBFRTB
Buffer Return ace

AVTCKPTB
Checkpoint aCB

I
IJ'

AVTOPCOB
Operator Control aCB

1

AVTOLTOB
On-Line Test ace

Data Area Layouts

921

~40

:L

(348)

15213541

AVTACTIB
Activate aCB

I

AVTCLOSB
Closedown aCB

I

16413601
AVTCPRMB
aCB to Remove an Element from the Time Delay aCB
AVTDSIOB
Disk I/O aCB

I

188813781

....

~

AVTCPBCB
CPB Cleanup aCB

_r-

900 (384)
AVTCOREC
Close Buffers Pool
904 (388)

AVTCADDR
Main Storage aueue Count

908 (38Cr
AVTFZERO
Fullword of All Zeros
912 (390)

AVTCAREA
FE Common Write Interface Area Address of the Patch Module

916 (394)
AVTCWPM1
FE Common Write Interface Area - First Parameter Pointer
920 (398)

924 (39C) AVTCWF L 1
FE Common Write Flag Byte 1
928 (3AO)

AVTCWEC1
FE Common Write Interface Area - First ECB
925 (39D) AVTCWFL2
FE Common Write Flag Byte 2

926 (39E) AVTCWTS1
FE Common Write Flag Byte 3

,927 (39F) AVTCWTS2
FE Common Write Flag Byte 4

AVTCWPM2
FE Common Write Interface Area - Second Parameter Pointer

932 (3A4)
AVTCWEC2
FE Common Write Interface Area - Second ECB
936 (3A8)
AVTAFE10
Address of FE STCB Trace Dump Routine
940 (3AC)

944 (3BO)

.... ,.!J48 (3B4)

,922

AVTAFE20
Address of FE I/O Trace Dump Routine

AVTAFE30
,Address of FE Buffer Dump Routine

AVTCWINT
FE Common Write Interface Area - Patch Area

--

1012 (3F4)

AVTGETMN
GETMAIN Parameter List

.... r-

..... 1-.

..... .-

1022 (3FE)

1024 (400)

AVTHA2
Constant = 2

1026 (402)
AVTHA3
Constant = 3

AVTHA4
Constant = 4

1028 (404)

1030 (406)
AVTHA7
Constant = 7

AVTHA16
Constant = 16

1032 (408)

1034 (40A)
AVTKEYLE
KEY LEN on the Message Queues

AVTLNCNT
Number of Lines Opened

1()36 (40C)

1038 (40E)

AVT,OPCON
Termname Table Offset to the Primary
Operator Control Terminal

1042 (412)

AVTSMCNT
Number of Lines Serviced by the
Start-up Message Subtask

1046 (416)

AVTDLOX
Offset in Termname Table of the
Dead Letter Queue

AVTOPCNT
Number of Lines Taken by Operator Control
1040 (410)

1044 (414)

AVTAVFCT
Number of Buffers in the Buffer
Units Pool
AVTINTLV
Number of Seconds of a System Delay
INTVAL=lnteger

1048 (418)

1051 (41B)
AVTBIT2
Flag Bits

1050 (41A)
AVTDUMBR
Dummy Line Trace Table Update

1052 (41C)
AVTBIT3
Flag Bits

AVTBIT1
Flag Bits

1053 (41D)
AVTCKRST
R1=START=lnteger

1054 (41 E)
AVTDSKCT
Number of Buffers on CPBs

1056 (420)
AVTHM02
Address of the Destination Scheduler
1060 (424)
AVTCMIN
MSM I N= Integer
1064 (428)
AVTCMAX
MSMAX=lnteger
1068 (42C)

AVTTOTNC
Number of Records in the EntireJVlessage Queues Data Set
(MSUNITS=lnteger)

1072 (430)

~h

-,,-..

AVTNCPBO
Queue 9f Buffers and ,E RBs Waiting to be Processed

.... 100.
-I""'"

1080 (438)
AVTFL
Address of the Disk EXCP Driver Routine
1084 (43C)

AVTIA
Address of the REUS part of the Reusability Copy Subtask

1088 (440)
AVTCOPY
Copy Subtask QCB Pointer

Data Area Layouts

923

J1092 (444)
AVTDKAPQ
Queue of CPBs to be Processed by CPB Cleanup (Disabled)

~

1100 (44C)
AVTDKENQ
Queue of CPBs to be Processed by CPB Cleanup (Enabled)
1108 (454)
AVTNOBFQ
Queue of CPBs without Buffers
1116 (45C)

AVTREUSQ
Queue of CPBs Being Returned to the Reusability
Subtask by CPB Cleanup

1124 (464)
AVTINCPQ
Queue of CPBs Requesting I/O be Done by EXCP Driver

-r1132 (46C)

AVTFCPB
Address of the CPB Free Pool
1136 (470)

AVTCPBPT
Address of the CPB Free Pool to be Freed by Disk Close

1140 (474)
AVTIOBR
Address of a Series of lOBs, One for Each Extent of the Reusable Disk Queue
1144 (478)
AVTIOBN
Address of a Series of lOBs, One for Each Extent of the Nonreusable Disk Queue
1148 (47C)

AVTLODPT
Absolute Disk Record Number Indicating Time to Activate the
REUS part of the Reusability - Copy Subtask

1152 (480)

AVTADEBR
Address of the DEBEOEA Field in the DEB for the Reusable Disk
Message Queues Data Set

1156 (484)

1160 (488)

1164 (48C)

AVTNOVOR
Number of Extents in the Reusable Disk Message Queues Data Set
AVTRCTRR
Number of Records Per Track On the Reusable Disk Message Queues Data Set

AVTTRCYR
Number of Tracks Per Cylinder On the Reusable Disk Message Queues Data Set

1168 (490)
AVTTOTNR
Number of Records in the Entire Reusable Disk Message Queues Data Set
1172 (494)

AVTVOLRR
Product of the Number of Extents Times the Number of Records
Per Track On the Reusable Disk Message Queues. Data Set

1176 (498)

AVTADEBN
Address of the DEBEOEA Field in the DEB for the Nonreusable
Disk Message Queues Data Set

1180 (49C)

924

i

AVTNOVON
Number of Extents in the Nonreusable Disk Message Queues Data Set

.....

-

1184 (4AO)

1188 (4A4)

1192 (4A8)

AVTRCTRN
Number of Records Per Track On the Nonreusable Disk Message Queues Data Set

AVTTRCYN
Number of Tracks Per Cylinder On the Nonreusable Disk Message Queues Data Set

AVTTOTNN
Number of Records in the Entire Nonreusable Disk Message Queues Data Set

1196 (4AC)

AVTVOLRN
Product of the Number of Extents Times the Number of Records Per
Track On the Nonreusable Disk Message Queues Data Set

1200 (460)

AVTHRESN
Absolute Aecord Number (Threshold) to Cause Closedown Due to the
Filling of the Nonreusable Disk Message Queues Data Set

1204 (464)

1208 (468)

AVTNADDR
Nonreusable Disk Relative Record Number of the Next Record to be Assigned

AVTRADDR
Reusable Disk Relative Record Number of the Next Record to be Assigned

----

1212 (46C)
-~

AVTHRESE
Nonreusable Threshold Closedown Element

1223 (4C7)
AVTHRESS
Status Completion Code

1224 (4C8)

AVTCPBNO
CP6=lnteger

'1226 (4CA)
Reserved

Data Area Layouts

925

1)eSIDPtion"

o

(01

AVTSAVE1

72

Messaqe Control

~roqra~

12

(48)

AV-:rSAVF.2

72

Dispatcher save

are~

144

(90)

AV-:rSAVE3

Subtask save area

21€

(1)~)

A,\TSAVE4

~irst

288

( 120)

AV-:rSAVEX

320

(140)

AV'J'DLO

8

At assembly time, set by the
DLQ=termname operand of the INTBO
macro. After the Termname Table
is sorted, this value is m~ved to
AVTDIQX ~nd t~is field (AVTDLQ) is
overlaid and used as part of the
~isabled saYe area. "

328

(14 £ll

A"V'!CS"'C S

4

~ddress of the first entry in
the Device Characteristics
'rable

332

(14C1

4

Disatle4""parameter list
(used with AVTnOnBX)

336

( 1501

AV1DOUEX

S

Disabled doubleword
area

344

(158)

AVTDOUBL

8

Enatled doubleword scratch
area

~52

( 160)

AV'l'CTLCH

8

Operator Control characters

3E 0

(HiS)

AV'IPASWD

8

~essaqe

926

4'0

save area

level subroutine save area

Disatled save area

scratc~

Control Program password

1)escription
368

~VTTCE

372

AV'IF~CE

~ddress cf the Message Control
Proqram TCE - set by the first
OPPN routine

4

Line T/O Interru~t Trace Table
address

~he followinq are the ready queu~s for the 'TCAM Di~patcher~

376

(178)

AV'I~EADY

4

ready queue - points
to the first item in the chain
of elements that is to be processed by the TCAM Dispatcher

380

(17C1

AVTFEADD

8

Disabled FIFO ready queue - controls
the cbain of eleme~ts tposted from
disabled routines~ The first word
points to the first element~ the
seccnd word points to the last
element on the chain~

'388

( 184)

AV'ICKG'ET

4

Address of the Checkpcint work
set after a successful GETMAIN
is completed ty the Check~oint Open
routine

Ena~led

area~

(188)

AV'IOCGFT

4

Address of the Operator Control
work area

(1 RC1

AV'T'EXA2S

E

Instructions to be executed to save
the user's registers

tio?

(192)

AV~EXS2A

408

(19 ~)

AV'IPAPM

4

Address of the parameters to .be
processed

412

(19C\

~V'IEASE

4

~ddre~s

4 1F;

(1AO)

AV'IPA'FM3

4

~ddress of additional optional
parameters

420

(1 A 4)

AV'IDTSTF

4

Address of the Dispatcher's
Suttask Trace Table

424

(1 A8)

AV'IRNMPT

4

Address of the Termname Table

428

(1 AC)

AV'IRDYA

4

User exit address in the 'READY
macro expansion

4'32

(1B 0)

AV'IBSCAN

4

Line End Appendaqe Address for
BSC messaqe scan

U~6

(1'R4l

AV'J'R A'PT

4

Address of the routine to update
the Line I/O Interrupt trace table

440

(1'88l

AV'IPOST

8

Tpost parameter llist u'sed
by Operator centrol

448

(1C

AV'ISPLPT

4

start parameter list address - set
by' the TN~FO macre expansion

4')2

(1C 41

"'92

01

AVTCIB

continuation of the instructions to be
executed to save the user's registers

of the AVT

The maximum number of command
Irput BlOCKS that can be utilized
at anyone time in the 'IC~M
system - set by the CIB=integer
operand of the IN'IFO macro

Data Area Layouts

927

Q.,§scription
4'53

( 1(5)

AV'INCKPR

1

The maximum decimal numter of
destination queues in pse at any
time for application ~roqrams that
use a CKREQ .macro - set bv the
CKFECS=inteqer operand of the INTRO
macro

454

(1CE)

AVTNOlBF

2

Specifies the· number of buffer
units that may be used to build
buffers for messages - set
by the lNUNITS=integer operand
of the INTRO macro

4SE

(1 C8l

AVfJ:AS

4

Address of the Hold/Release
terminal routine

mhe followinq are the addresses of the TCEs of the attached tasks:

464

(1CCl

Av1cKTCB

4

Address of the Checkpoint TCB

(1n 0)

AVTOCTCE

4

Address of the
Tep

AV'ICLTCB

4

Address of the On-Line Test
TCP

AVfJ:CWTCB

4

4E R

(1D 8)

O~eratcr

Control

Address of the FE Common Write
TCE

are

~ollowina

u 76

( 1DC)

AVTCWFCA

4

FE Common Write lCB

4RO

(1'80)

~V'!CKFCA

4

Checkpoint FCE

(1 ~ 4)

AV'IOtFCA

4

On-Line Test FCE

(1 T:' 8)

AV'IOPECA

4

Operator control FCB

(H'C)

AV'!OS'FCB

4

BCE used by the Dispatcher to
cause the TCAM task to te in the
WAIT state

4

Address of the first Process Control
Block

4~8

th~

Event Control Blocks (ECBs) for the attached tasks:

mh~

(1To'O)

500

(11:' 4)

AV'IOPTpm

4

Address of the Option Table

(1'P8)

AV'IKA02

4

Address. of the IIC Gene~ator routine
in the Activate suttask

4

Address of a user written routine to
be qivencontrolwhen all entries in
the TCAM I/O Int~rrupt Trace 'Table have
been filled ~ set 'by the TREXIT=name
operand of the INTRO macro

(1 ::'C)

512

('200)

AVTCRSRF

516

(204)

AVTCOMPT

4

Address of the Communications
Parameter List

1:)20

(208)

AV'IU!

4

Address of the User Interface routine

928

Specifies the number-of entries in th~
Cross ~eferenc~ Table - set by the
CROSSRF=in·teqer operand of the INTRO
. macro. Replaced by the address of
the Cross Reference Table.

Description
.524

(20C)

AV'ILM

4

528

(210,

AV'IHG02

4

Address of the Return Interface
routine
Address of the routine to remove a
element from the Time
Delay OCB

Check~oint

r; 28

(210)

AVTOLTST

532

(214)

AVTAL

53E

(218)

AV'IGD

1

set ty the Ot'I~ST=inteqer operand of
the INTRC maCI:O
Address of the Aadress Finder routine

4

~ddress

of the Buffer Association

routine
r;40

(21Cl

AVTA3

4

Address of the Transparent Transmission CCW
Buildinq routine (IEDQBT)

544

(220)

AV'IA!

4

Address of the Buffer step
ro'utirie

548

(224,

AV'IEA,

4

Address of the TCAM Dispatcher

552

(2281

AV'!HA

4

Address of the Receive Scheduler

5t;6

(22q

AV'IHD

4

Address of the Send Scheduler

560

(230,

AV'I~W

4

Address of the Get Scheduler

Ci64

(234)

4

Address of the Put Scheduler

56~

(238,

4

Address of the Get FIFO
Scheduler

(2'3Cl

AV'J'BZ

4

Address of the Loq Scheduler

(2401

AV'T'F1

4

A~dress

(244)

AV'IRE

4

Address of the Euffered
Scheduler

'i84

(248)

AV'IE7

4

Address of the Receive Scheduler

~he

~ollowinq

S76

are the special elements used in TCAM:

t;gg

36

AV'IDM'ECB

f 24

of the Uial Scheduler

~eservea

Address of the dummy line
I/O FCB

f;28

(2741

f32

F;

36
(280'

AV'J'A3TL

4

Address of the translate
list for thi Dvnamic
Translaticn routine

AV'\"TON~

4

Contains either a zero cr the
address of a field consistinq of
2 halfwords; the first contains
the W'ITCNE inteqer from the INTRO
macro and t~e second aX'FF' representinq the number of characters
specified by WTTONE.

AV'I'NX

4

Address of Operator Awareness
Messaqe Routinq routine

AV'l'TOT

4

Address cf tine I/O Trace
Table routine

Data Area Layouts

929

F44

(284)

AVTHI

4

Address of System Delay
QCB

48

(2A 8l

AV'H!K

4

Addre~s

61:)2

(28C)

AV'!CKPMV

~

~

ii

&: 80

t6

of stop line QCE

~equest for removal of CheckpOint routine element from the time
delay queue

AV'rCKFI, E

Check~oint Request Element - the
Time Delay or ~eusability subtasks tpost this
element to start the Checkpoint routine

(2A 4)

AVTSCB S7

Specifies the number of bytes in the
SC~ includinq the save area for the
user'~ reqisters.

(2 AI:)

AV'ICKOAD

(2 A R)

AV'ICKFLF

3

Address of Checkpoint QCB
Checkpoint Pequest Element flaq bits

Pit definitions:
Eame

]it

Checkpoint requested by the
READY macrc expansion

X' 40'

Checkpoint requested by the
l'lCFCIOSE macro

2

X'20'

Unused

AV'l:'CINCN

3

X'10'

Checkpoint requested by the No
Incident Records routine

AVTCCLCN

4

X'08'

Closedown completion bit

~. VTCPIP~

5

X'C4'

Checkpoint in proqress
bit

AVTCPTLN

E

X'02'

Checkpcint requested

X' 01 '

Warm restart

0

AV'l'CMCPN

AVTWl\PM
81

~A4

fR..,

F90

930

Description

X'80'

AV~C'PDYN

~

Value

..,

The nurocer of environment checkpoint
records to be retained in the Check~oint ~ata Set at anyone time - set
bv the CPPCDS=inteqer operand of the
INTRC macro

AV'l'CP~CD

(2A A)

AV'T.'CKELV

2

'l'he number of seconds between environment checkpoints - set by the CPINTVL=inteqer
o~erand of the INTPC macro

(2AC)

AV'!CKTIM

2

~ime

of day

interru~t

(2A ~)

Index to the CCB address

(2 At:')

Open

(2PO)

AV'IOPXCL

(2P2)

AV'fOPE'P'l'·

2

~rrcr

location

Module ID of the routine
that has an error
Specifies the type of
occurred

o~en

error that

Description
(2P 3)

(2B81

Specifies the check;cint and time delay
sta tus

AY'IHGt'1

4

Address of the Time tela,

AV'ICKLNK

4

Link field on the'Time Cueue

AV'IDELEM

700

704

AV'!CKPYT

~ubroutine

Dummy last element - used as the last
element in any Qca's (or the ready
qUeUe's) element chai~

(?c 01

AV'IDELAD

4

Address of the dummy last element

(2C41

AV'ICCEtE

8

Incident Checkpoint Bequest element - t~osted
by the Ope rater Control task to request an
incident ~heckpoint

71E

(2CC1

AV'I'Ct'PH!

2

Mask used with the next halfword to
clear the left two bytes of a
reqister ..

71A

(2C!l

2

~alfword

720

(2D01

AV'!AtPUF

4

Address of the buffer currentl,
beinq processed

"'124

(2D4)

AVT2260·1

4

Address of the 2260 local Receive
Scheduler

AV'ISYSER

1

System error flaq byte - set by
the operands of the INTEO macro
as follows:,

J111

Value

pescriFtioD

AVTCMINN

0

X'80'

~he number of main storaqe
queue units less
than that specified
by MSM!N=i~teqer

AVTC~AXN

1

X'40'

Nam,!

2-7
729

(2D9)

~hefollowinq

740

3

4

(2EOl

AV'rSUPP~

4

(2~

AV~'ISOPT

Q)

,he number of main storaqe
more
.
than that specified
by t!SMAX=inteqer
qu~ue-units

Feserved

A~dress of a list of
optional VCONs

is.a list of pointers to QCBs:
AV'!!NSPT

732

736

AVTMSGS

equal to X'FF'"

Address of the QCE of Available
Insert. blocks
Address of th. Startup Messaqe
ocp

4

Address of the Time Sharinq
1:nput. OCB
Address 0.£ the al=plication
proqram Cpen/Close subtask

AV~OCQPT

The !ollowina is a list of non-optional OCBs:
74A

(2FCl

AV'IDEt YB

20

Time telay subtask QCE

Data Area Layouts

931

7~4

AV'!PEP'T'M

2

Bepresents the reference
time. current time of day.
plus cr minus 6 hours

7F.E

(2FE)

AVT!~OUT

2

Dummy INEND/OUT~ND
parameter list

7F.8

nOO)

AVTITtlOPS

8

SVC 102 parameter - to tpost
the Time QCB to itself at the
interrupt

776

(08)

AV'ITTft10

4

Time delay queue

'780

nOC)

AVTBFPEB

12

BQffer Request QCE

(318)

AV 'rBF'!' '! E

12

Buffer Pequest QCE

(324 )

AV'!'CKPTE

12

Checkt:oint QCE

(330)

AV'IO'PCO~

12

Operator Control QCB

(33C)

AV'IOLTOE

12

On-line 'Iest OCE

(348)

AV'I'ACTIB

12

Act i vat e OCB

nS41

AV '!cr~o SB

12

Closedown Comt:letion QCE

nEO)

AVTCPPMB

12

nCB tc remove an element
from the Time Delay QCB

AV'!DSTOB

12

1)isk I/O OCE

AV'T'CPFCB

12

CPB Cleanup QCB

AV'T'COP'EC

4

Close buffers pool

AV'!CADDt:?

4

Main Storaqe queue count

804

(178)

004

008
~~A

~ullwcrd
~ollowinq

of zeros

is the WE Common write task interface area:
AV'!CAPEA

4

Address of the Patch module
for this' task

('394)

AVTCWPM1

4

Pirst parameter list point for
this task

(398)

AV'ICWEC1

4

Wirst FCB for this task

(39C)

AV'ICW'FL1

flaq byte for this task

~irst

Bit definiticns:
Description
AVTCOMWN

AV'ICWFt2

932

0

)'SO'

Specifies that the
FE Commen write task
is attached; set by.
the COMWRTE=YES operand
of the INTFO macro

Second flaq byte for this task

Description
AV~CWACT

94(\

0

X'80'

Specifies that the
FE Commcn Write task
is active; set by the
COMWRITF=YES operand
of the INTFO macro.

AV'ICWTS1

~hird

AV'ICWTS2

Fourth flaq byte for this task

flaq byte for this task

AV'fCWPr12

U

Second parameter pointer for
this task

~V'ICWFC2

4

Seccnd ICE for this task

(3A 8,

AV'IAFE10

U

Aadress of the FB S'ICE
Trace nump routine - IEDQFE10

(3Aq

lIV'TA'FI20

4

Address c~ the FF I/O Trace
routine - !IDQPE20

num~

044

Address of the FI Buffer
Ioutine - IIDQFE30

~V'TAF~30

~um~

(1FU)

A V'IGE'Y'-MN

f.4

Patch area for this task

'1 Q

GF'rr1A!N parameter list

1022

(3'F'F)

~V'IHA2

2

Constant = 2

1024

(UOO)

AV'IHA3

2

Constant = '3

1026

(UO 2)

AV'IHA4

2

constant = 4

1028

(404l

.AVTHA7

2

constant = 7

1030

(40"6)

AV'IHA16

2

Ccnstant = 16

1032

(U08)

AV'IKEYLE

2

Specifies the size in bytes
of a tuffer unit - set by the
KEYIFN=inteqer operand of the
INT~O lI'acro

1034

(UOA)

AV"(l,NCN'!'

2

~umter of lines o~ened - set.by
the tine Grcu~ C~en routine - checked
by the Time Delay suttask

1036

(40C)

AVTOPCNT

2

Nurnter of lines taken by the
Operator Control task - set
by the System Delay subtask
and t~e Operator Control task

1 0 ~B

(40r')

AV'IOPCC N

2

Termname Tatle offset to the entry
for the primary Operator Control
terminal - set by the PRIMARY=termname
operand of the INTPC macro

104"

(U10)

AV'IAVFCT

2

Number of buffers in the buffer
unit pool - this value is equal
to the sum of the LNUNITS=inteqer
and the MSUNTTS=integer operands
of the INTRO macro
.

1042

(U12)

~VTSMCNT

2

Number of lines serviced by the
Startup Messaqe subtask

Data Area Layouts

933

1044

(414)

1046

(416)

104 Q

(418)

1050

(41A)

AV'I!N'T'LV

2

Numrer of seconds of a system
delay - set by Operator Control
or ty the INVTAl=inteqer
operand of the IN~FO macro; checked by
the Time Delay subtask

2

Termname Tatl~ offset of the dead
letter queue - moved from the AVTDLQ
field of the AVT after the Termname
Tarle is sorted at execution time

AV'IDUMBP

2

nummv line I/O Interrupt
'1'atle update

AV'IBIT1

1

Flaq 1::its

~race

Bit Definitions:
Description
AVTAPIKN

0

X'80'

Pr~vents the Disk End
appendaqe from addinq
a CPB to the Disabled
Disk End QCE for CPB
Cleanup

AVTAPIKF

0
Off

X'7F'

the Disk End
to add a
CPB to the Disabled
Disk End QCE for CPB
Cleanup

AVT'l'SON

934

Mask to

~ermit

app~ndaqe

X'.40 '

specifies that the TCAM
environment has TSO or
is mixed - set by the
»NVIRON=TSO or MIXED
operand of the INTRO
lIlacro

AVTAQTAN

2

X'20'

Specifies that the system
environment has TCAM
or is mixed - set 1::y the
ENVIRON=TCAM or MIXED
operand of INTRa

AVTDLAYN

3

X'10'

Specifies that a
system delay is in
effect - set by the
Operator Control task

AVTDI. A YF

3
Off

X' EF'

Mask to specify that a
system delay is not
in effect - bit 3 is
turned off bv the Time
Delav subtask

AVTREADN

4

X'08'

specifies that the
PEADY macrcexpansion
has been executed - set
by the READY macro
expansion; checked bV
the Open routines

~VTClOSN

5

X'04'

Close down indicator:
o - closedown not requested

Description
1 - closedown requested

11)51

(~1Bl

AVTQUCKN

E

X'02'

Tvpe of clcsedown:
o - Flush closedown
1 - Quick closedown

AVTDISKN

;

X'01'

Specifies that none of
the messaqe queues data
sets are disk queued

AV'IEIT2

Flaq tits
Bit fJ.efini tions:
Descripti9n
AVTRUF'IN

AVTRUF

0

·X'80'

0
Off

X'7F'

Mask for the "Reusability
first time" switch turned
off ty Reusability

X'~O'

specifies· that Reusability
is running - set by
Feusability; 'checked by
CPB Cleanup

X'BF'

Mask to specify that Reusability
is not runninq - turned off
by Reusability

2

X'20'

Specifies that the ReusabilityCopy function is requesting control

3

X'10'

Specifies that TOPMSG=NO is set
in the INTRO macro

4

X, 08'

Restart is in progress

4

X'F7'

Mask to specify that restart
is net in ,rogress

5

X'04'

Initial load done indicator

6 r7

X' 03'

Specifies the line t~pe as
nonswitched Start/Stop only
set by the Activate routine
or the Linp End Appendage

6

X'02'

Spe~ifies the line type as
start/StoPr switched or
nonswitched - set ty the
Activate routine or the
line End Appendage

7

Xt

01'

Specifties the line type as
tinary synchronQus - set
by the Activate routine
Line End Appendage

AVTFEUSN

AVT~EUSF

1

Off
AVTCOP1N

AVTSTRTN
AVTSTRTF

Off
AVTOPEIN

All
off

Reusability first time
switch - set by Destination
Assignment; checked by CPB
Cleanup; turned off by
Reusability-Copy

Specifies the line type as both
BSC and Start/StoPr switched
and nonswitched, all possible
line combinations - set by
the Activate routine or tine
End Appendaqe

Data Area Layouts

935

Description
10'i2

(U1Cl

AV'P!TT3

1

ll'la~

tits

Bit Definitions:
Description

936

AVTSTAN

7

X'01'

Specifies that either a Cold
or Warm restart is to perform
followinq a normal quick close
or a flush· close - set by
STIRTUP=C orSTARTUP=~ operand
of the INTRO macro

AVTSTACN

6

X'02'

Specifies that a Cold start is
to be performed following a
normal quick or a flush close
and 'that a' Continuation Restart
is to be performed followinq
system failure - set by the
STARTUP=C operand of the INTRO
macro

AVTSTAWN

6,
off

X'FD'

to specifv·Othat a wal;m restart
is to be performed followinq
a normal quick or a flush
Close and that a Continuation
Restart is to be performed
followinq system failure.- set
bv the STARTQP=W op~rahd of
the INTRO mac~o

~VTSTA!N

5

X'04'

Specifies that the status of
each invitat~on_list is to be
included in the checkpoint
record - set bv'the STARTUP=!
operand of the INTRO macro

AVTSTAYN

4

X'08'

Specifies that no Continuation
Restart·is to be performed
followinq a normalquict close,.
a flush clcse, or system
failure ~ set by the STARTU~=Y
operand of the INTRO macro

AVTOLTEN

3

X'10'

specifies that the maximum size
in the OLTEST=kevword qperand in
the INTRO macro (the maximum
number of on-line tests that
can be performed) has been
reached ~ set, checked, and
reset by TOTE

AVTTSAE

2

X'20'

Specifies that TSO has
abended - set by the
Time Sharinq Abend
module; checked by
the TSINPUT and
TSOUTPUT routines; reset
bv the Start Tim~
Sharinq routine .

AVTRFULN

1

X'40'

Reusable disk zone
full - set by
1:).,.lIsabilitv

Mas~

AVTP~Ut~

0,2, X'BY'
3

off

AV':"RECVN

1053

(41T)l

1054

(41El

AV'IDSKCT

o

1'80'

Mask to specify that
reusable disk is ready
to receive - checked
by Receive Scheduler
and tine End Appendaqe;
turned off by Reusability
Main storaqe queue is
full - sethy Destination
Scheduler when the number
of main storaqe queue
units > or = the number
specified in the MSMAX
operand of the INTFQ
macro; turned off by
Disk I/C; checked by the
Feceive Scheduler and
Line End A~pendage.

1

checkpoin+ ~pcor~ the
TCAM xestart facility should use in
attemptinq to restructure the MCP
envircnment as it existed at the
time of closedown or system failure set bV the R~STAB'=~nteqer operand of
the INTRO macro

2

Specifies the number of
buffers on CPEs

~pecifie~.whtch

*******************************************
This is the end of the basic AVT when
ENVIRCN=TSO

*******************************************
1056

(420l

AV'IMH02

4

Address of the Destination Scheduler

1060

(424l

AV'rC!1!N

4

Specifies the percentaqe of the number
of units in the message queues data
below which the data set is not crowded - set
by the MSMIN=inteqer operand of the INTRO
macro

1064

(428l

AV'ICMAX

4

Specifies the percent~qe of the
number of units in the message
queues data set above which the data
set is nearly full - set by the
MSMAX=inteqer operand of the INTRO
macro

1068

(42Cl

AVTTO'fNC

Number of records in the entire
messaqe queues data set - set
by the MSUNITS=inteqer operand
of the INTRO macro

1012

(4"3 Ol

AV'INCPBQ

Queue of buffers and EBBs waitinq
to bE processed

********************************************
This is the end of the AVT when
main stoIaqe queuinq only is specified
(DISK=NO, ENVI~ON=TCAM or MIXED)

********************************************
Data Area Layouts

937

Description,

.1l.!.P!!
1080

(438)

AV'!Ft

1084

(43C)

AV'IIA

4

Address of the RlUS part of
Reusa'bilitv-copv subtask

1088

(440)

AVTCOPY

4

Address of the Copy sub task
QCB

1092

(444)

AVTDKAPQ

8

Queue of the CPBs to te processed
bv CPE Cleanup (disable~)

'100

(44C1

AV'IDKENQ

8

Queue of C,Bs to be processed
bv CPB Cleanup (enabled)

'10R

(454)

AV'l'NOBFQ

8.

Queue of CPEs without
tuffers - used bV CPE
Cleanup

1116

(45 C)

AV'I'R!)USQ

8

Queue of CPEs beinq returned
to th~ Reusabilitv-Co~y subtask
bv CPE Cleanup

1124

(4E4)

AV'IIlfCPQ

8

Queue ofCPBs requestinq that
I/O be done by EXCP Driver

1132

(46Cl

AV'I'FCPB

4

Queue of inactive CPBs - the
CP'B free pool

1136

(470'

AV'I'Cl?flPT

Address of the CPE free pool
to be freed by the Disk
Close routine'- AVTFC'B is
initiall, s~~ to thi~ same
value

1140

(474)

AV'IIO~R

Address of a series of lOBs,
one for each .xtent of the
reusatle disk queue

1144'

(478)

AV'!tOFN

4

Address of a list of IOEs,
one for each extent of the
nonreusable disk queue

1148

(4 7 C,

AV'ItODl?T

4

Absolute.disk reccrd number that
indicates when the RIOS part of
the Reusabilitv-copy suhtask
is to activated - the initial
value is 3/8 of the total
numter of records on the
reusatle disk messaqe queues
data set

Address of the Disk FXCP
1)ri vet routine

~he next 6-word area is initiated bv
~isk messaqe queues data set for use
~EBCCHF~ converter routi~e.

th~

the OPEN for the reusable
bv the Reco~d Number to

1152

(480)

AV'IADFBR

4

Address of the VIBlelA field
in the DIB for the reusable
disk messaqe queues da~a set

, 156

(4841

AVTNOVOR

4

Number of extents in the reusable
disk ressaqe queues data set

1160

(488)

AV'IRCTRlf

4

wumter ~f records per track on the
reusable disk messaqe queues.
d.ata set

938

Description
1164

1112

(48C\

(494)

AV'!T~CYR

4

Number of tracks per cylinder
on t~e reusable disk messaqe
,queues data set

AV'!TOTNB

4

Number rif r~cords in the entire
reusable disk messaqe queues data
set

AVTVOLFB

4

Product of the number of extents
times the number of records
per 'track on the reusable
disk messaqe queue~ data
set

~he next 1-word area is initialized by the CPEN for th~ nonreusable disk messaqe queues data set for use by the Record
Number of MBBCCHHF converter routine.

1116

(498)

AVI'I ADEBN

4

Address of the DEBECEA
field in the DEB-for the
nonre~sable disk messaqe
queues data set

1180

(49C'l

AV'!NOVON

4

Number of extents in the
nonreusable disk messaqe
queues data set

1184

(4AO'\

AV'!RCTRN

4'

Number of records per track
on the nonreusable di~k
messaqe queues data set

1188

(4A4'\

AV'ITRCYN

4

Number of tracks per cylinder
on the nonreusable disk messaqe
queues data set

1192

(4A8:\

AV'ITOTNN

4

Number of records in the
entire nonreusable disk
messaqe queues data set

1196

(4ACl

AV'!VOLRN

1200

(~BO\

AVTHPFSN

1204

(4B4)

AV'!NAl'DR

Nonreusabl~ disk relative
record number - next available le'cation

1208

(4B8l

AVT-FADDR

Reusable disk relative record
number - next available
location

1212

(4BC)

AV'I'HRESE

1223

(4C1l

AV'!HRE SS

Product of the number.of
extents times the number
of records per track on
the nenreusable disk
messaqe queues data set
4

12

_The absolute record number
that is the threshold te
cause closedown due tojhe
fillinq cf the nonreusable
disk messaqe queues data
set

Nonreusable threshold
closedovn element
com~letion code -

used to

indicate status

Data Area Layouts

939

Description
X'Fl' - an unused ~lement
X'FO' - the element has been

tposte(l

X'00',X'04' - Closedown

indication
1224

(4C8)

"r'l:'RMTNAL

AV'ICPBNO

2

Specifies the value coded
in th~ CPB=inteqer ope~and
of t~e INTRO macro

'r'~BL:E

~erminal Table (TED~T~M) is a variable lenqth table that contains
blocks of device~
dependen+ infcrmation about each terroinal in the TeAM system; each such block is called a
terminal entry. There are ~ix types of terminal entries (shown below), each of which is
use~
for a different typ~ or qroup of terroinal~ dependinq upon the configuration of the
+eleurocessinQ system.
~he

The Terminal Table entries are assembled and initialized
accordinq
to
the
specifications of the TE?"JINAt, TLTST" TPROCESS"
TTAEIE, LOGTYPE,and OPTION macro
instructions. The size, structure, and ccntents of the T~rminal Table are based cn the
informaticn ~rcvi~ed by the user in the atove~listed matrcs. Each entry in the 'Ierminal
mabIe beains on a fuIIword boundary. ~he terminal entries ar~ located throuqh the address
portion of the entries in the Termname Tatle.
~~ the user codes an OPTION macro, three
fields in the Terminal Table entry are
initialized and' bit 6 in the TRMSTATE field is set to 1. 'Ihe TRMOPNO field contain~ the
number of option'fields specified for the,entry.The option offsets are positional in
nature, and the number of offsets is equal to all the offsets up to and includinq the last
option specified by the user.
The next field, TRMOPTBL, contains the offset to the
beqinnina, of the .Dptiori Table (lata for this terminal entry. The third field, TRMOPT, is
the first of the actual option offsets to the Option Table data, the beginninq of which is
pointed to by the TPMOPTBt field.
Fach OPtion offset is a one-byte indeX to the
corr?spon~inq O~ti6n 'Iable.d~ta.
!h~re is an ~ption ?ffset for each possi~l~ option uP.to
and 1nclu~ina the last opt1on spec1f1ed for th1s term1nal entry. If a part1cular opt10n
within t~at span is omitted, that option offset field'is initialized to X'FF'.

The device dependent fields of an entry in the 'Ierminal Table are used to indicate
such informaticn as the dial diqits or addressing characters .of the terminal.
Th~
specific type of information in these fields is noted in the two bytes of the device
dependent field flaas field (TRMDFVFL) of the Terminal Tatle. The actual entries' in ,the
device dependent fields consist of one byte, Which contains the lenqth of· the entry,
foltowed by the actual information.
~he
location of the device depende~tfield is
indicated by the bit settinqs in the first byte of the Terminal Table. If bit six
(T~MOPTFNl in the status byte (TRMSTATE) is off, the device dependent field is located
at
+17
(X'11')
in the table.
If bit six is on, indica~ing that there are option'offset
fiel~s in the table, the device de~endent field starts at location
20
(X'14')
plus the
value in the number cf cption offsets field (TRMOPN01. Each option offset ~s one byte
lona, and the first option offset is located at offset 20 in a terminal entry; the device
dependent field starts immediately after the last option offset.
The fiaures below sh6w the formats of the
descriptions of the fields follow the illustrations.

940

various

type~

of terminal entries;

IEDOTRM
0(0)

1 (1)

TRMSTATE
Status Byte

TRMDESTO
Destination aCB Address

4 (4)
I- - -

J(8)

-

- -----TRMINSEO

TRMALNCT
Automatic Line Number Count

---

'6(6)

Input Sequence Number

I

TLSTCNT
TLIST Count of Entries

I

-- - -- -

-

- --

TRMOUTSO
Output Sequence Number

I

TLISTEN
First T I... 1ST Entry Address
10 (A)

TRMALTD
Alternate Destination Termname Table Offset

TRMDEVFL
Device Dependent Field Flags

TRMSTAT
Error Statistics
TRMSIO
Start I/O Count
17 (11)

12 (C)

16 (.10)
TRMCHCIN
DCT Index

15 (F)

14 (E)
TRMTEMPR
Temporary Error Count

TRMSENSE
Intensive Mode
Recording Indicator

18 (12)
TRMOPTBL
Option Table Offset

TRMOPNO
Option Field Count

_......

20 (14)
-I-..

TRMOPT
Start of Option Offsets

T
nffse.,t .
0 (01

--

Name·
'IFMSTATE

Byte.§!
1

Name

T

Descri}2tio n·
Status byte - the bit
definitions are as follows:
Bits~

HeSlning

0 ... 2

Type of entry
Terminal, sinqle,
or qroup
Process
Cascade
list
tine

E'OOO'
B' 00.1'

13'010'
E'100'
B' 101 '

TRMACPTN

3
4

X'OS'

'!'RMHEtDN

5

X'04'

TRMOPTEN
TRMSCNYN

.,

X'02'
X' 01'

6

t~q

Reserved
Terminal can· accept an
entry for l=rocessinq
Terminal is held or a
prOCESS entry specified
SYNC=YES
Option fields are used
Control 'Ierminal

'Data Area Layouts

941

Qffs~.1

Na.!!!~

]nes

Description

1 ( 1)

'l'PMDESTQ

3

Address of the Destination QCB for
the entry or of the distribution
~r cascade entry QCE.

(4)

'IFMINSEQ

2

Input

4 ( 4)

'!tISTCNT

2

count of entries in a TIIST

6

(6')

TFMOUTSO

2

Output sequence number

6

(6)

'ILISTEN

2

P'irst entry in a 'It IST

8 (8)

TRMALTD

2

Termname Table offset of the
alternate destination

'!RMDEVFL

2

Device dependent field flaqs
to indicate which fields are
present

4

10

CA')

sequ~nce

BitE Value

number

Heaning

0
1
2

X'8000' BUFStZF specified
X'4000' Dial digits present
X'2000' Addressing characters

3

4
5

X'1000' BLOCK specified
X'0800' SUPBLOCK specified
X'0400' 'Iransparent b~ock

6
7

X'0200' BFDELAY specified
X'0100' 'Iime Sharing field

present

length specified
8-15

Reserved

12 (C)

'IPT1STAT

12 fC)

TFMSIO

2

Numter of STAET I/O instructions

14

(E)

TF~TEMFR

1

Number of temporary errors

15 (F)

'IF MSEN SE

1

Intensive mode recordinq
indicator

16 (10)

TRMCHCIN

1

Index to the Device
Chara'cteristics Table
for this entry

17 (11 )

TRMOPNO

1

Num1:er of option fields
for this entry

18

( 12)

TRMOPTBL

Offset to the option table for this entry

20

( 14)

'IPMOPT

start of cpt ion offsets

942

'Error statistics

TERMINAL TABLE ENTRY TYPE
Offset
Single
and
Line

o

4

6

8

Output
sequence
number

Alternate
destination
offset

Status
byte

Desti nation
QCB address

Input
sequence
number

TRMSTATE

TRMDESTQ

TRMINSEQ TRMOUTSQ TRMALTD

10 (A)
Device
dependent
field
flags

12 (C)
Number
start
I/Os

14 (E)
Number
temporary
errors

TRMDEVFL TRMSIO TRMTEMPR

15 (F)

16 (10)

17 (11)

18 (12)

Intensive
mode
recording
indicator

DCT
index

Number
option
offsets

TRMSENSE

TRMCHCIN

TRMOPNO TRMOPTBL

Option
Table
offset

20 (14)
Start of
option
offsets

20 + n
Start of
device
dependent
fields,

TRMOPT

Offset
Group

o
Status
"byte

Destination
QCB address

TRMSTATE

TRMDESTQ

8

6

4
Unused

X'OOOO'

Output
sequence
number

10 (A)

Alternate
Device
destination dependent
offset
field
flags

12 (C)
Number
start
I/Os

14 (E)
Number
temporary
errors

TRMOUTSQ TRMALTD TRMDI:VFL TRMSIO TRMTEMPR

16 (10)

17(11)'

Intensive
mode
recording
indicator

OCT
index

Number
option
offsets

TRMSENSE

TRMCHCIN

TRMOPNO TRMOPTBL

15 (F)

18(12)
Option
Table
offset

20 (14)
Start of
option
offsets

20 + n
Start of
device
dependent
fields

TRMOPT

Offset
Distribution 0

6

4

Status
byte

Distribution
List QCB
address

Number
entries
in the
list

Offset to
the first
entry in
the list

TRMSTATE

TRMDESTQ

TLlSTCNT

TLiSTEN

Offset
Cascade

o
Status
byte

TRMSTATE

6

4
Cascade
list QCB
address

TRMDESTQ

Number
entries
in the
list

Offset tu
the first
entry in
the list

TLlSTCNT

TLiSTEN

Offset
Process

o

4

10 (A)

6

8

Output
sequence
number

Alternate
destination
offset

Status
byte

Process
QCB address

Input
sequence
number

TRMSTATE

TRMDESTQ

TRMINSEQ TRMOUTSQ TRMALTD

12 (C)

16 (10)

17 (11)

18 (12)

Device
dependent
field
flags

Process
Entry
Work Area
address

Work unit
record
delimiter
character

Number
option
offsets

TRMDEVFL

TRMSTAT

TRMCHCIN

TRMOPNO TRMOPTBL

Option
Table
offset

20 (14)
Start of
option
offsets

TRMOPT

Offset
Logtype

o
Status
byte

Destination
QCB address

TRMSTATE

TRMDESTQ

10 (A)

8

6

4
Unused

Unused

Unused

X'OOOO'

X'OOOO'

X'OOOO'

Device
dependent
field
flags

12 (C)

14 (E)

15 (F)

16 (10)

17 (11)

Unused

Unused

Unused

Unused

Unused

X'OOOO'

X'OO'

X'OO'

X'OO'

X'OO'

18 (12)
Buffer
size (2 bytes)

TRMDEVFL

Terminal Table Entry Type
Data Area Layouts

943

'T'~!H1NAtH'

':"ABLE

The ~ermanme Table has .an entry that contains the name and terminal entry ad~ress for each
terminal. terminal com~onent, application proqram, "list of terminals, and logginq media in
the TCA~ system. These entries are qenerated at assembly time from the·1ERMIN't macros in
the order in which the macios are coded.
At MCP initializ,tion time -the entrie~ are
sorted into collatinq sequence.
The first 82 byte~ of the T~rmname Table contain the Termname Table code (IEDQTNT, and
control informatien.
The code can be executed as a subroutine by other TCAM modules. The
control information identifies the attributes of the table.
The address of the Termname Table is in the AVTRNMPT field of the AVT.
However, the
individual Termname Table entries are r~ferenced by the relative po~ition offsets that
precede the centrol data in each invitation list. When a TCAM module needs to find a
specific.entry in the Terminal Table, the module activates the Termname Table code, which
translates
the
invitation list relative position offset to the 'address of the
corresponninq Te~minal Table entry.

IEDQTNTD
0(0)

TNTCODE
Enabled Termname Table Code

38 (26)

TNTSRCHX
Search Extent

40 (28)

41 (29)

TNTENLEN

TNTM'IOEN
Middle Entry Address

Length of a Name
44 (2C)

46 (2E)

TNTLEN
Count of Table Entries

TNTDCODE
Disabled Termname Table Code

82 (52)

TNTFIRST

_....

Start of Table Entries

T

T

Format of a Termname Table Entry:
Terminal
Table Address

Name

I

--

Maximum of 8 Bytes

....-

--....-

I

·3 Bytes--...

Data Area Layouts

945

By tel?

o

(0)

38 (26)

Description

'IN'ICOD~

38

Enatled Termanme Table
code (IEDQTNT) to ccnvert
the relative offset to a
Terminal Table address

'!N'IS'RCHX

2

ainary search extent - used
by the Binary Search routine
(IFDQA1)

40 (28)

'IN'IENI,EN

1

Length in bytes of the name
field of an entry

41

'IN'IMIDEN

3

Address of the middle entry
in the Termname Ta,ble - used
by the Binarv Search routine

(29)

(IEDQA 1)

44 (2Cl

'IN'!tEN

46

(2El

'INTDCODE

R 2 (52)

TN'r1'IR ST

2

36

Total number of entries in
the Termname '!able
Disa~led

Termname Table code

The beqinninq of the 'Iermname Table entries

OPTION 'rAF.tE
The Option Table (IEDOOPTl is a variable length table that contains the actual data coded
by the user in the TERMINAL and TPFOCESS macros in the message control program. At
~ssembly time, this data is placed in the table with the the necessary byte
alignment in
the order in which it is coded.. An option data field, which is'not directly identifiable
by the macro in which. it is coded, can be referred to only through th~ option offset
fields of a terminal entry. If only the user-coded name for a macro is known, TeAM uses
the Option Characteristics Table and the terminal entry to refer to a specific data field
in the Option Table.
(See the discussion of the Cption Characteristics Tatle in this
section.) ,
At assembly time the address cf the Opticn Table is placed in the AVTOPTPT field Qf
the AVT.
The first two words of the O~ticn Table contain the add~ess of the end of the
Option Table and the address of the OPtion Characteristics Table, respectively.
The
option data immediately follows these two words. The figure below is the general format
of the Option Table~ descriptions of the fields follow the illustration

IEDQOPT
0(0)

Address of the End of the Option Table
4 (4)

Address of the Option Characteristics Table
8 (8)

Option Data

7+n
Length

946

..... "-

--

~escription

,Q.Uu1

o

(0',

4

The address of the first byte (7+n)
followinq th~ option Table

4 (41

4

The address of the first byte of
the Option Characteristics Table
(IEDQCPT~'

7+n

OP~!O~

Option data

n

The actual data coded by the
user with the necessary.byte
aliqnment. in the order in which
the data is ceded

le,nqth

1

The lenqth of the option data
for the terminal or p~ocess entry
that has the lonqest eption data

CPA~ACTERISTICS

~ABLF

'The option Characteristi,cs 'T.'al:-Ie nEDQOPTN) is a variable lenqth table that contains one
entry for each OPTtON macro issued in the messaqe contrel proqram (MCP). The relative
position of an entry in the table directly ~orres~onds to the relative position of an
option offset in a Terminal Table entry. The cpt ion offset is an index to the actual
Ootion ~able data for t~e option entry in the Option Characteristics Table.
The Option
Characteristics Table allows TCAM routines te use, the assemtled name for an C~TION macro
to locate the Option Table data for a specific station (terminal).
!ach entry in the Oution Characteristics Table contains the length
of
the
correspondinq Option Table entry. the tv~~ of option field specified, and the .usersoecified name of the OP~ION macro. The lenath of the table is variable and consists of
,~en
bytes for each O~TION macro issued plus one tvte (X'FF') to indicate the end of the
table. ~toraqe is allocated and the table is initialized at a~semblv time. The AVT field
\V~O~~PT contains the address of the Option Table, and the second word of the Option Table
contains the address of the O~tion Characteristics Table.
~"e fiqure below is the format of
an entry in
descriptioris of t~e fields follow the illustration.

Offset

the

Cption

Characteristics

+1

0

Length

Table;

9

Type

Name

l)escription·

o

(0)

lenqth

1

(1)

type

The lenqth of the ccrrespondinq
opticn Table entry. which is
equal to the number of bytes of
data ~pecified bV the TPROCESS
and TERMINAL macros plus any
necessary aliqnment bytes
'T.'he type of option field. indicated
by one of the followinq bit confiqurations:

1

Hex Code

~e

co

c

Cha~acter

01
40

p

z

Deciroal
Decimal

of Constant Machine !ormat
8-tit code for
each character
Zoned decimal format
Packed decimal format

Data Area Layouts

947

D

Floatinq-Po.1.nt

80

F

l1'loatinq-Point

DO

o

Address

r8

v

Address

C4

Acnress

C2

y

_~adress

("1

1\

A.ddress

F

2

(2)

ryPVICE

name

CHAR~CTFRISTICS

H

l:'ixed-Point

x

Bexadecimal

p

Binary

Lonq floatinq-point
format; normally a
doubleword
Sbort floatinq-point
format; normally a
fullword
Space reserved for
a dummy section offset
Space reserved for
external symbol
addresses; each
address normally
a fullword
Ease reqister and
displacement ialue;
a halfword
Value of address;
normally a halfword
Value of address;
normally a fullword
Siqned, fixed-point
binary format; normally
a balfword
Siqned, fixed-ooin~
binary format; normally
a halfword
4-bit code for
each hexadecimal diqit
Binary format

The name of the opticn field ~ this
is the actual name the user codes in
the name field of the OPTION macro

TABLE

The Device Characteristics ~able (DCT) is a variable lenqth table that contains one fourbyte entry for each type of termi nal or sta tion defined .in the TCAM system.
At asseni'bly
ti~e,
each entry is allocated and initialized to describe the characteristics of the
oarticular type of terminal or qroup of terminals; one entry is generated for all
terminals that have identical ~haracteristics.
The address of the Device Characteristics Table is assembled in the AVTCSTCS field of
the Address ~ector Tabl~. The one-byte index (TRMCHCIN)
in a terminal entry in the
~erminal
Table provides the offset to the specific Device Characteristics Table entry for
a station.
Bits are set in the DCT entry to indicate the type of station. Combinations of these
bit settinqs may be coded where applicable,The specific values for a nCT entry are
outlined below.
BE]l~
()

2

(2)

.2'§§~1:jpti.9]}

Reserved

(I))

(1)

94t'

1.9:1 u~

CINHIBIT

X'80'

Terminal can use Read
Tnhitit CCWs

CF'REP'

X'40'

TerreitJal has the Reverse
Break feature

C~TT'P.N

X'20'

Terminal has the
Att,enticn feature

CPISYNC

'(' 80'

ESC station

].Sli

]yte.§

.Description

CTWY

X' 20'

TWX 3335 terminal

(S'INCTL

X'10'

"'erminal has the station
control feature

(Y~T'rC~L

X'OR'

Terreinal has the Transmit
Control feature

CCONTFN'"

X'O~'

contention device

C1 CCAI,

X' 02'

tocal device

CAlJ'lHO

X'01'

Audio device

CWrr'TA

X'

World 'Trade Teleqraph

(fN1)CTL

X'20'

CCHECl(

X' 10'

CCCN'!'TN

X'04'

Terminal is capable of a
Continue operation

CNOID1'F'S

'1'02'

~erminal

~O'

Ter minal has end-to-end
contrcls (2780)
Terll'inal has the Checkinq
feature

has no idles

nefinEd

(2760

X' 01'

27EO

SPEC1AL CHAFACTEPS TABtF
~ Special Characters Table (SCT)
is a variatle lenqth table that consists of entries
q1v1nq the s~ecial characters required for device I/O for a line group_
There is on& SCT
for each type of line qroup in the TCAM svstem~
Each SCT contains a list of the
characters that the associated-terminal or line qroup recoqnizes.
SYS1.SVCLIB contain~ a
Special Characters Table for each line grcup in the system..
The various sels are
initialized at SYSGEJ' time, and at open time the TeAM Line Group Open routine uses
information from the"dCB and the terminal entry to load the appropriate Special Characters
'rable.
.

An SCT is located by a three-tyte .address in the DCBSCTAD field of the DCB for the
line qroup.
The address of the DCB for the line qroup is.in the LCBDCBPT field of the
associated tCB.
An SCT is used to build channel ~roqrams_ This table is also used by the error
recovery procedures to retry certain text errors, and by the message handling routines to
initiat~ on-line test procedures and to determine the
message format for line control
insertion.
The first 28 'bytes of an SCT comprise a fixed-length directory of one-byte offsets,
each of which when added to the seT pointer in the DCB points to a one-byte length field.
This lenqth field is 'followed bV a special characters entry of the length specified in the
l~nqth
field.
There are as many entries in the directory as there are different sets of
special characters required bv the line gro~p. If a function is not defined for the
associated terminal or line group, the offset field in the directory cohtains a X'OO'
value.

Data Area Layouts

949

followinq is a list of the specific types of characters that each of
~irst 28 bytes of a SCT represent.

T~e

the

~ecial

o

Characters

(1)\

EO'I sequence

(n

EOA sequence

2 (2'

PAr characters

3

(3'

Idle or reserve characters

4

(4)

Fven ACK

5

(5)

Cdd ACK

6

(E'

NAK

7

(71

n,lO (inquirv)

8

(Rl

EOE/ETE (for ESC rytE

ET~l

Special· Characters·
q

(91

tLE ETX (ESC)

10 CAl

DtE STX (BSC

11

(B)

DIE/STX/ENO (ESC transparent temporary text delay-TTD)

12

(Cl

SOH (BSC - start of header character)

13

(D)

Cn-line Test sequence

14

(El

WACK (BSC)

15

(F"

BVI (BSC reverse interruPt)

~ransparent

sequence)

16 (101

ttE EOT (BSC dial sequence)

17 (111

DtE ENO (ESC - use in abort sequencel

18

(12)

FOE sequence (used by IEDQAK and IEDCA6
to insert line control characters,

1q

(13')

ITB sequence (used by IEDQAK and IEDQA6 to insert
line control characters)

20

(14)

FO'I sequence (used bV IEDQAK and IEDQA6 to insert
line control characters)

21

(151

FCT sequence (used by IGG019BO)

22 (16)

EOE sequence (used by IGGC19BO)

.23

(17)

FTX sequence (ESC only)

24

(18)

ENQ sequence (BSC cn1y)

25

(19)

SOH

~

S sequence (ESC cnly,

26 (1A)

SOH

~

00 sequence

(1B)

SOH

~/CANCELI

27

950

(BSC on-line test sequence)

sequence (ESC on-line test cancel sequence)

the

offsets

in

?~SOUBC~

~he

CON~FCI

~esource

ELOCK

(IEDOF!C~l is a twc-wo~d prefix to an element that allows the
the disposition of an element and to determine the OCE to
will be tpostEd.
Each element in the TCAM system is represented ty a
Pesource Contrcl Elock. ~he first word of the BCB is a pointer to the QCB with which the
element is associated;
the secen~ word is a link field which, when the element is on a
chain, points to the next item on the chain.
The first word in the associatEd QCB may
point to the ?CF.

Control Block

~CAM Oisoatcher to
w~ich
ar elewent

deter~ine

~toraae
is allocatEd for the BCB at open time for the line qroup or for the
apolication prcqram. The ~CE is initialized at open time and is modified when elements
are passed in the system.

Below is the format of a Resource Contrel Block; descripticns of the fields follow the
illu~tration.

IEOORECB
1 (1)

0(0)

RECBKEY
Key Field

RECBOCBA
QCB Address
5 (5)

4 (4)

RECBLINK
Link Field

RECBPRI
Priority

Qff§~.t

.!.ell
FFCEKEY

1

tRPC'"

2

TOS error counters

t:4

(I~

T C'P~lC'P X

~c:;

(41 ,

1.CP::'CE"F P

3

Pointer to a recalled buffer

fh,

(41 )

ICPlS'PCT

3

Aaaress of tbe last

C,8

(44)

'LCP'T'PST

2

O-ffset to the start of the Buffer Translaticn
routine

in

(4~)

lCPSTA'l''S

2

Status t-its

7')

(1.l6 )

lCPS A,""1

1

"First status byte - bit definitions are as fellcws:

0)

tTl

SIO condition code
3

A1dress of tbe channel

TJep

~roqram

ef the correspondinq DCE
dat~

index

se~viced

PCl

B2.ID~

]i1.§ ,Yal'y,§

Meanin.9

l.CBRCLLN
LCBPCllF

0
0
Off
1

Pecall beinq performed
Mask to specify that no recall
is beinq p"~rformed
line is in control mode
First ESC output conversational
block
Non-immediate operator control
operation is in ~roqIess

LCBCTLMD
lCBCVFSP

X'80'
X'7F'

1

1!'40'
X'40'

LCBOCNI

2

X'20'

1,CBTNI'T.'N
LCBlNI'Tr'

3
3

X' 10'
X'E"F'

Off
LCBCON'!
LCBFPFEN

4

S

X'08'
X'04'

Feceivinq initiate mode messaqe
~ask to specify no initiate
mode messaqe
Continue or reset operation in rroqress
line is free

Data Area Layouts

961

LCBFREFF
LCER~CBN

LCBS!NDN
71

(4 7)

5· X'FB'
Off
6
X'02'
7
X'01'

~ask tc specify that the line
is not free
line is receiving
Line is sending
(Line is stopped if bits 5,6, & 7 are off.)

Seccnd status hyte - bit settings are as follcws:
l!ll~

lCB'I'RACF
LCBLOCT<
LCBTPCOF

]it.§ value
0
0
8

X'SO'
X'80'
X'?F'

Off
LCBMSGN~

1

X'40'

LCBMSr;NF

1
Off

X'PF'

E.tl.f.§

T.)e.§~r i

tCPB""O'I'N
ICBBEOTF

2
2

Off

X'20'
X'DF'

"3

X' 10'

lCBNFGFP
lCBS'VNC
lCBDIAI
LCBR:T?SP

4

X'OS'
)1'04'
X'02'
X'01

E
1

I/O trace active for 'this line
Line is in lock mode
Mask to specify that I/O trace
is not active for this line
~SGGEN or startup message
Mask to specify that this is not
a MSGGFN or Startup message

Eti..Q1!

T.CBSNDPR

I)

f'le~ning

FOT frcm a bllffered terminal (nc BCM)
Mask tc specify a regular FOM
if EOT from a buffered terminal
Send priority switch SE:t by the
Send sched.uler
Negative response to pollinq
line is binary synchronous
This is a dial LCB
A resp·cnse needs to 1:e sent to
this line

""est-and-set switch:
Meaning
LCBCONC"""

o

X'80'

co~nection

established

7'3

{49}

lCPPECAD

3

~adress

7~

( U(")

lCE'I<'~F

4

Start of the ERE for this LeB

7(:..

( 4C)

lC"PE'RPKY

77

(un)

lC~"E'qFQB

80

(eo)

lCJ:l~oB1?Y

81

(IS 1)

lCE!opLK

84

(54 )

LC~F~fS'"

of the

curr~nt

message block

Element Fegvest Elock key field
3

Address of the gCE to
currently tposted

whi~h

this ERB

i~

ERP priority
3

A~dress of the next item in the chain
in which this ERE currently resides

E~B
]~

LCBMSG
lCB~OMSG
LCB~l)FRR

LCPRDFRF

status - bit settinqs ~re as follows:

]it.§ Value
0

1
2
2
Off

X'80'
X'40'
x'20'
X' OF'

lCBI~Q,

3

X' '0'

I,CBERRCR
LCBPRCPG

5
6

X'04'
X'02'

LCBCOMPL

6

X'02'

Meaning
End of i~itiate mode
Fnd of message read from disk
toqical read error
Mask to specify no
read error
FRB is waiting for buffers from
!EDQMM

962

Error on the send side
Atter the initial reguest is
satisfied, tpost the ERB to the
QCB specified in LCERCQCE
·Disk request is complete

lCBDlNKN
lCBDlNK~

"7

X'01'

"7

X'FE'

Off

Delink switch tut is ~liqible
Mask to specify
tPosted, so PCT

ERB is not tposted,
to be tposted
that the ERE i~
cannot tpost

Description
it aqain
~5

«CiS)

lCE!RPCH

3

Address of the chain to be assiqned butfers

88

(58)

lCEFPPC m

2

count fields

lCETTCIN

2

Index to the terminal that is currently

lCEMSGFM

connec~ed

Bits to control th. ESC line
l"!eaning
lCBNAK
lCBACK1

o

X'SO'

1

X'40'

Fequest to send a NAK response
ACK counter -

The followinq two bits indicate whether a scan Of
line ccntrol has been accomplished and the type of
line control received.
tCEVS"'~T

lCBRSTFT
lCBTTD
lCBENQ
tCBEOT
LCBOLT
93

(5D)

2
3
4

S
6
'1

X'20'
X'10'
X'08'
1'04'
'1:02'

X'01'

Valid start sequence
Error start sequence
1e~porary time delay recieved
ENQ received
EOT first character
Address cf the current sce

lCBSCEA

3

.Address of the current SCB

lCEEPMSr.

1

Error recordinq mask

lCE1NV?T

3

Address of the current entry in the
invitation list

101) (64)

lCETPCJ)

12

112 (70)

tC13SNSV

1

Save area for the sense byte

113 (71)

lCECSWSV

"7

Save area for the CSW

120 ("78)

lCE!,RCCW

24

1 41 (8n)

lCES'rICS

3

Characteristics work area

1li4 (90)

lCECPA

8

Channel

TP operation codes

Three ERP commands

~roqram

area

Data Area Layouts

963

STATTON
~here

CON~~OI

EI0C~

is

at least one station Central Plock (SCB, associated with each tCB in the TCAM
With tuffered terminals there is ene SCB per terminal on a line.
A buffered
+~rmina1
sends a block or a part of an entire transmission at a. ti.e; while that terminal
is preparinq te send a subsequent block, TCAM examines and t~ceive~ from other terminals
on the same line. TCAM uses the SCBs to keep track of one transmis~ion from each buffered
~ermina1 on tbe ~ine.
system.

If the terminals on a line are net buffered, or if~the line with which the StB is
associated is a dial line, one terminal at a time completes its transmission. There is no
nee~ to keep track· of many transmissions in parallel, so one SCB
is sufficient for the
entire line. In this case the address of the SCB is the LCSSCBA field of the tCB.
~he
~he

address of the SCB Directory is in the tCBSCBDA field of the tine control Block?
offset to the current seB is in the tCBSCBO field of the LCB.

To obtain the address of any SCB associated with a QCB, TeAM first lo~ates the tcB.
This is done bv multiplvinq the relative line number (in QC~REtLN) by the si7e of an LCB
CDCBFTOBX) and addinq the address of the pseudo lOB (DCBIOBAD).
This gives TCAM the
ad~ress
of the lOB.
At a disp~acement of ~~'20' from the beginning of the lOB is the
heqinninq of the tCB. TCAM then multiplies the SCB si7e (located in the AVTSCBSZ field of
the Address vector Table) bv the offset in QCBSCBOF and adds that totai to the address of
theSCS Directery (LCBSCBDA). This sum then points to th~ desired station Control Block.
Storaqe is allocated for a Station control Block ·at assembly time for leased lines and
at open time fer dial lines. The SCB is initiali2ed by START~H.The fiqure belew is the format of
fields follow the illustration.

964

t~e

Station

control

Block;

descriptions

of

the

IEDQSCB
0(0)

1 (1)

SCBSTATE
Status Bits

4 (4)
SCBSNDCT
Message Limit On Send Side
SCBRCVCT
Message Limit On Receive Side

SCBDESTQ
Pointer to the Destination QCB

5 (5)

SCBMACR
First/Next IN/OUTMSG Macro to be Executed

- - - - - - - - - - -SCBMBHEN
- - - - - - - - - - - - -Address of the Ml!ltipie Heacer Buffer Entry

8 (8)

9 (9)

SCBBKFCT
Count of Message Length for Break
110lA)- SCBEOBsZ- - - - ,
Size of Logical Blocks
~ .

SCBPRI
Priority Index to the QCB

!
12 (C)
SCBSALEV
Simulated Attention Level Req
SCBQTYPE
16 (10)

13 (D)

SCBMRFPL
Address of Forward Parameter List
SCBERRST
Error Word Bits

SCBERR1
First Byte

18 (12)

SCBERR2
Second Byte

20 (14)

SCBERR3
Third Byte

22 (16)

SCBEOBAC
Accumulated Count Between Blocks
SCBDLPTR
Distribution List Pointer

SCBMRFSD
Multiple Router First Secondary Destination
24 (18)

SCBBSCFM
MSGFORM Dynamic
B lock Changes

SCBERR4
Fourth Byte

119 (13)

25 (19)
SCBMBSSA
Multiple Buffer Scan Save Area

32 (20)

33 (21)

36 (24)

37 (25)

40 (28)

41 (29)

SCBCPBNO
Number of Next Sequential CPB
SCBDESTL
Length of Destination Names

SCBITBSZ
Size of Logical Subblocks

SCBDCHDR
Disk Address Current Header
SCBCCHDR
Main Storage Address of the Current Header
SCBSCSEG
Current Segment Being Read

- - - - - - - - - - -SCBDNSEG'
------------_.
Disk Address of the Next Segment to Send from the Disk

44 (2C)

45 (2D)

SCBHBFNO
Number of Buffers in
Multiple Header

SCBSCHDR
Current Header Being Sent

- - - -SCBCLSEG
--------------

------

Mair:l Storage Address of the Last Message Segment

49 (31)

48 (30)
SCBITBAC
Accumulated Count
Between ITBs

---------

SCBFEFO
Saved FEFO Pointer

- - - -----------_.SCBDCSEG
Disk Add'ress of the Current Segment

52 (34)
SCBDEOB
Disk I nformation On the last EOB

56 (38)

60 (3C)

64 (40)
-

-- - -

SCBXTRA
Address of Additional Records Saved

- - - - -

-

-

Continued

-- -

-

-

SCBSCAN
Scan Pointer

- - - -Continued
-----

69 (45)

-

- - - -

-

66 (42)
-

- -

- -

- - -

SCBCORE
Address of the Record in the Core Queue Saved

SCBSEQ
Sequence Out Number
-

SCBSIZE
Message Buffer Size Saved
~,

61 (3D)
SCBSTAT1
Status Byte

f--- -

58 (3A)

SCBSRCE
Message Buffer Source Saved

-

-

-

-~

-

---

SCBTQBCK
Text Segment Chain Saved
-

-

-

-

-

-

-

-

-

-

-

SCBNTXT
Address of the Next Text Segment Saved

-

-

--

SCBCRCD
Address of the Current Segment Saved

Data Area Layouts

965

72(48)

75 (4B)
SCBNXCPB
Next CPB Number from Disk

SCBNHDR
Address of the Next Header Segmenjt Saved

---- -- - - - - -- - - - - - ---- - - -

ScBTCSEG Main Storage Address of
Current Segment

SCBCHDR
Address of the Current Header Segment Saved

.....

------ -- - -

-

Continued

80 (50)

SCBUNTCT
Count in Disk Record of
First Byte of Data

--

-

-

81 (51)

78 (4E)

-

SCBEOB
Pointer to First EOB Saved

SCBTRANS
Current Translate Table Address

84 (54)
SCBRGSAV
Save Area for User MH Registers - if Specified on INTRO

!2!.i§.~!

0

( 0)

]~1!l'§

.f.Yi~.§

Q~..§cription

Status tits:

SCESTA'1"~

Name

~.l1E

Value

l1eaning

SCBTFANP
SCBMGFMN
SCPMGFMF'

0
1
1
Off
1

1('80'
X'40'
1('BF'

SCBLCR1F

2

X'DF'

SCEMSGTN
SCBMSGLF

Off
4
4
Off

1('08'
:X'F7'

Y"'essaqe in transparent mode
f'lSGFCRM requested
Mask to specify MSGFORM
not requested
Sequence-in has been executed for the
current messaqe
Mask to specify that a message
is not beinq received in Lock
Messaqe lock
f'1ask te specify extended leck

X'Oq'
X'02'
X, 01'

Checkpcint requested
Previous EOB/E'l'B error
Translation requested

SCBSBQIN

SCBCKPT
SCBPR E''R
SCBCODE

5
F.

7

~'40'

(1)

SCF'lH'S TO

3

Address of the Destination QCE

u

( 4)

SCESNDC'l'

1

MSGIIMIT on Send side

4

(4)

SCE'PCVC'!.'

r:;

( 5)

SCBMA(,,'P

3

First or next TNMSG er OUTMSG macro to
be executed

3

Address of the multiple-buffer-header entry

MSGIIMIT on Receive side

5

(~l

SC EMBF FN

Q

(A 1

SCEPl'T

Q

( Q)

SCfBKFC'1"

1/')

fAl

SCfEOBS'7

12

{el

SCPSAT. EV

1

simulated attention level request

12

(C'l

SCPOTY"f."'

1

Oueuinq mediulfl for this messaqe:

Priority index to the QCE
3

size of loqical blocks

]~.!l\~

966

Ceunt of messaqe lenqth for Break

]3j.112 ValM

SCBCOFFO

1

SCBR~US

SCBN'RF(S

2
3

SCB~OFF

I)

SCBBFTM
SCBBFfo'M

E
7

X'40'
X'20'
X' 10'

J!'04'
X'02'
X'01'

-

TSb

Meaning
Main stcraqe queues
Reusable disk queues
Nonreusable disk queues
Peusability has updated SCEFEFO
Puffered terminal SCB
Buffered terminal in middle
of messaqe

13

(1))

SCPMFF~L

16

(10)

SCrE?PST

1 F-

( 1 0)

SCP'E~R

1

3

Address of the FOFWARt
~rror

1

~arameter

list

liord bits

First byte:
Meaning

SCBf{1)"RFN
SCBHD?~F

SCBNOLCG
SCBOFTGN
SCBORTGF

o

o
Off
o
1

1

:X'SO'
X'7F'

Inccm~lete header
Mas~ to s~ecify not
incom~lete header

:X'SO'
:X'40'
X'BP'

Invalid Loqon message - TSO
Invalid oriqin
Mask to specify a valid origin

1('40'
1'20'
X' 10'
X'FF'

loqon requests hangup message - TSO
Not a TSO terminal - TSO
Sequence hiqh
Mask to specify that sequence
is not hiqh
TSO is not in the system - TSO
Sequence low
MaSK tc specify that sequence
is not low
~oo many TSC users - TSO
Insufficient buffers
CU'IOFP error
MaSK to s~ecifY no
CUTOFF error
RVI to selection ·on a buffered
terminal

an

Off
SCBHA NG
SC?NOTFM
SCBSEOHN
SCBSEOHF

1

2
3
"3

Off
SCBNO'rSO
SCBSEOIN
SCBSEQLP

:3
4

4

:X' 10'

X'OS'
X'F7'

Off

1'7

(11)

SCPE?l.12

SCBl-tOVAC
SCBNOBFN
SCBCUTFN
SCBCU'IFF

,

1(''FE'

SCBPVTSI

Off
...,

X'01'

1

4

E
...,

X'OS'
X'02'
X'01'

Seccnd byte:
Meaning

SCBCPMTN
SCBCRMAX
SCBCODER
SCBALN
SC~Ol.TR
SCB~PF'T'N
SCBFF~DN

1A

(12)

SCPERF 3

1

,o
2
:3
4

5
E

X'SO'
X' 40'
X' 2'0'
:X' 10'
X'08'
X'04'
X' 02'

Main storaqe m1n1mum passed
Main storaqe maximum ~assed
Error in dynamic translate - TSC
Automatic line numbering - 'ISO
~OTE not in the system
Abort - ESC terminal
Terminal FORWARD error

Third byte:
Meaning

SCBLOSTN
SCBLOSTF
SCBX~I
SC~'rM:rf'N

SCBTt-'IDF

0
0
Off
0

X'AO'
X'7P'

1
1

X' 40'

:X'SO'
X'EP'

Off

40'

SCBX~D

1

'X'

SCBSAr'f'TN
SCEUS ERN
SCBUSEFt:'

3

X' 10'

4
4

X'08'

:x'p,'

Off
SCPFORM:N
SCEA't'TN
SCBXCEFN
SCBXCEPF

C;

,
E

'7

Off

X'04'
X'02'
X'01'
X' FE'

Messaqe lost (overlaid)
Mask to specify
messaqe ~rocessed
Attention - Send - I - TSO
1D from terminal invalid
Mask to s~ecify that ter~inal
identification is valid
Attention - Send - D - 'ISO
Simulated Att~ntion received User errcr
Mask to s~ecify
no user error
Format error - BSC messaqe
Hardware Attention - TSO
Unit excepti9n
Mask to specify no
unit exception

~SO

Data Area Layouts

967

Na.ID~

1q

(13)

SCBERP4

1

l'ourth tyte:
Meanin.,g

SCBStCTN
SCBSLCTF
SCBTXTTN

0
0
Off
1

X'80'

SCE~X~'J'F

1

SCBCONNN
SCBCOMNF

Off
2
2
Off

X'20'
X'DF'

SCBTRMLN
SCBTRMIF

3
3

X'10'
X'EF'

X~7F'

X'40'
X'BF'

Off
SCBCTIUN
SCBC'T'lUF

5

5

X'04'
X'FE'

Off
~CBCHANN

SCBCHANF
SCBUNCFN
SCBUND'F'F

6
E

Off
7
7

X'02'
X'FD'
X'01'
X'FF'

Off

Frror durinq selection
Mask te specify no
selectien error
Error durinq text transfer
Mask to specify no
text transfer error
Error in Connect/Disconnect
Mask te specify no
Connect/Disconnect error
Terminal error
Mask to specify
no terminal error
Error in the control unit
Mask to specify no
centrol unit error
Error in channel
Mask te specify
no error in channel
Undefined error - should net occur
Mask te specify
no undefined error

?0

( 14)

SCPMR'F'SD

2

MultiJle routinq first secondary

22

(16)

~CEEOP~C

2

Accumulated count 'between blocks

22

{16,

SCFDLP'J'P

2

Distribution list pointer

24

(18)

SCEBSC''F'M

destina~ion

MSGFCFM dynamic block chanqes:

SCBTPNSP
SCBRCVTX
SCBNON'IR
SCBNOEOT
SCBML MTN
SCBMT, MTP

o

X'80'

2

~'20'

1
E
7
7

X' 40'
X'02'
X'01'
X'FE'

Off

Beceivinq transparent
ETX received from BSC
Feceivinq non-transparent
ESC Cial no EOT before read
MSGLIMI'I has been exceeded
Mask to specify that
MSGIIMIT is not exceeded

C)

(19)

SC'EMESSA

~2

(20)

SCECPFt-rO

31

(21)

SCEDCPD~

3e:

(24)

SCBDES'T't

3'"

(25,

SC'PCCHD'R

it "

(

28)

SCFI'rPS7

U1

(29),

~CESCSFG

3

current seqment beinq read

41

(29)

SCEDNSf'G

3

Disk address of the next seqment from the disk
to send

U4

(2(')

SCPHRF~lO

45

(21))

SCE SCPD",

3

Current header beinq sent

4£;

(2!')

SCFCLspr;

3

Main storaqe

?

968

"7

Multi~le

buffer scan save area

Number of the next sequential CPB to be read
froro disk
3

Disk address of the current header
lenqth of destination names

3

Main stcraqe address of the current header
Size of loqical subblccks

Number of tuffers in the multiple-buffer header

a~dress

of the last messaqe sent

Offset
4~

c; 2

nO)

(34'

No+e:

f I)

Name·

Descriptior.

~CEltt:'P~.C

~ccumulated

SCBF~r.'O

SavEd

FE~O

count tetween ITBs
pointer

SCEDC~"G

3

Disk addresp of the current segment

SCPDFO~

4

Disk information on the last EOB

section in bytes 54-79 is a copy of the last buffer
prefix prccesse~.

~he

(3Cl

~CESRC1"

2

Messaqe buffer source

SCESI7E

2

~essaqe

SCES't.'A'.!'1

1

St.a tus byte

SCEX't.'B A

3

A~dress

SC'f.ICOPF

3

Address of the record in the main storage

tuffEr size

of additional

record~

tl.

(40)

SCEOSFO

2

Sequence-out number

FU

(40)

SCBSCAN

2

Scan fointer address

F. E

(4 2)

SCETOBCK

3

Text segment Queue-back chain

EE

(42)

SCBNTXT

3

Address of the next text segment

SCECRCD

3

Address of the current seqment

r:;

72

(481

SCBNHDR

3

Address of the next header segment

"'2

(U8)

SCECHDl>

3

Address of the current header segment

75

(UB)

SCENXC'PB

1

Next CPB number from disk;
if zero - no multiple routing

7')

{4 B1

SCECCSEG

3

Main

78

f4El

SCE!O'f\

2

gO

(SOl

SCEUN'!'CT

,

Pointer to the iirst EOB
count of the first byte of data in the disk record

81

(511

SCETRANS

3

Current translation

R4

(54)

SCERGSAV

storag~

address of the current segment

ta~le

address

Save area for user MB registers if specified
IN'Ilmmand issued is rejected l:ecause
work units are out of seauence. The second stat~ ~ndicator is bit one of the thirteenth
~vt~.
When this bit is set to 1, an incorrect le~qth has been specified, thus creatinq a
work area overflow.
The fiqurerelow shows the format of the
fields follow the illustration.

996

~ccess

method work area; descriptions of the

IEOQWRKA
0(0)

PWASAVE
GWASAVE
Address of User's Register Save Area

4 (4)
PWAPEWA
Address of the Process Entry Work Area
8 (8)
GWAPEB
Address of a Part-Empty Buffer
PWASTART
Address of the First Byte of Data in the Work Area
- - - GWAMOVE- Address of the Next Byte in a Buffer to be Moved

121C)

---- --- -

-

-

-

-

PWACKPT
GWACKPT
Address of the User's Checkpoint Routine

16 (10)

20 (14)

GWAPEWA
Address of the Next Empty Byte in.the User's Work Area
PWAECB
PUT/WRITE ECB
GWAECB - GET /READ ECB

24 (18)
~--

--- - ---.-.-- -

-

--

28 (1C)

-

- - - - - - - -- ---

_

.....

PWAELEM
GWAELEM
Special AQCTL Element

-I"'"

48 (30)

1--- -

-- --- ------

PWALIST
GWALIST
AQCT L Parameter List
-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

- - ----

MOVEAO
Address of the Field to be Moved
52 (34)

TARGETAO
Address of Where the Data is to be Moved
57 (39)

56 (38)

LENGTHAO
Address of the Length of the Field

PFLAG
End-of-List Indicator
60 (3C)

..........

..... p::- 132 (84)

-

PWASAVA
PUT /WR ITE Save Area
-GWASAVA- GET /READ Save Area

I

-

-

-

-

-

-

-

-

-

-

-

-;:.-

134 (86)

PWAFLG

PUT /WR ITE Re.ader Needed

-

Reserved

EOM Processed GET /REAC

136 (88)
IOBPSAVE
Address of a Partly Empty Buffer Unit
140 (8C)
_____________

GWASTAT

-A.£!dres~f.m:ILRge.~l!luUn<:lli:alQrs

____________ _

PWASTAT
Address of PUT/WRITE Status Indicators
144 (90)

148 (94)

PWASOWA
GWASOWA
Size of the User's Work Area
GWABUFL
Size of an MCP Buffer

GWAR~EL

146 (92)
PWACTL
Work Area Contents
Descriptor Byte

147 (93)

150 (96)

151 (97) PWARECFM
GWARECFM
General Switches

PWAOPTCO
GWAOPTCO
General Switches

Record Delimiter

Data' Area Layouts

997

154 (9AI

152 (98)
. GWALRECL
Size of a Logical Work Unit

PWAOFF
Termname Table Offset for Message Destination

156 (9CI
CTLADDR
Address of the Work Area Control Byte
160 (AO)

162 (A2)
GWASCAN
Size of Field to be Scanned

BUFCNT
Empty"Buffer Counter

164 (A4)

166 (A6):'
IOBPSZE
Prefix Size Work Area

IOBUSZE
Count of Data in a Logical Buffer
168 (A8)

170 (AA)
IOBSRCE
Termname Table Offset

Reserved

172 (AC)

~I-.

GWARTVE
Message Retrieval Work Area

~ote~
'3.

re

use~

-I-.

When there are two field names for cne field, those field names beqinninq with P
useQ when the user i ~ codin q in PUT mod e, a nd those field names beqinn inq with G are
whe~ the u~er is codirq in GE~ mode.

Q.ii.§,g.t

].gJ'!!~

]lyte§

]escriFtion

0

(0)

PWASAVE

4

AAdre~s

I)

( 0)

GT,TASAVf

I.J

Address of the user reqister save area

4

( 4)

PWAPRWA

4

Address of the

8

( 8)

GWAPEB

4

Address of a partially empty buffer
one teinq used

12

(e)

FWAS'T'APT

4

Address of the first byte of data in the
user work area

12

fe)

G1'T AMOVE

4

Aadress of next byte to be moved in a
buffer

H

no,

P"(,T AeKPT

4

-q es erve d

1F;

(1O)

GWJlCKP"',

4

Reserved

20 (14)

GWAPEWA

4

Address of next empty byte in user
work area

FWAECP

4

llUT/WRTTE EeB

2I.J

998

(1 ~l

of the user reqister save area

proces~

entry work area

-

the

~.fl§~1

7.4

(18)

l!.~!l1e

GWAECB

]-Y1,g§
4

Descriptio.n
GET/~!AD

FCB

28 ( 1C)

p,., AEL1"M

20

Special AQC'lL element

(1 C)

GWAEl,FM

20

Special AQC'J'l element

48 (30'

FWT\LIST

4

AOCTI parameter list

U8 ( 30)

GWALTST

4

Aoe'll parameter list

48 ( 30)

MOVPAD

4

Address of the field to be moved

1:)2 (34)

"'A~GETAD

4

Address of the area into which data is to be moved

1:)6

P"plAG

1

Indicator of end of {:arameter list

r:;7 ("39)

L'ENG'rHAD

3

Address of the lenqth field of the parameter
list

FO

(3C)

PWA$AVA

72

?UT/WFJTE save area

~O

(3C)

GWASAVA

72

R'EAD/CH!CK save area

?~

(38)

132 ( 84)

PWA::'LG
PWA1"LG+1

2

X'20' beader needed (PUT/WRITEl
X' PO' FOM processed (GET/READ)

13E ( 88)

IOEP$AV~

4

Address of partially em t:tv buffer unit

140 (8Cl

G'WASTAT

4

Address of status indicators

140 (8C)

PWl\STA'l

4

Address of status indicators

144 (90)

FWASOWA

2

Size of user work area

144 ( 90')

GWASOWA

2

Size of user work area

146 ( 92)

PWACTL

1

Work area contents descriptor byte contaim; a ,value indicatinq whether
the messaqe in the work area is the
first, intermeaiate, or last seqment of
the messaqe. The followinq are
the bit settinqs:

.]its

ValJJ.g

Meaning
first seqment (header)
last seqment (EOM)
entire messaqe

0,1,2,3,1 X' 1" l'
0,1,2,3,6 "'1"2'
0,1,2,3,6,X'1"3'
7
1
X'40'

intermediate seqment

- copied from

147 (93)

GWAPDFL

148 (94)

GWABU1"L

2

Size of MCP tuffer

150 ( 96)

~WAOPTCD

1

General switch - bit settinqs as follows:

'End of record for GE'I/PUT
the t:rocess entry

]~

1"IPSTPUT

]its ~
7

X'01'

tIeaning
first-time switch for
locate mode

Data Area Layouts

999

T)escription
150

(9El

Gt.1AOPTCD

1

General switch - bit settings as follows:
Meaning

]it§ Value
TNMFFLG
MSGFLr;

o
1

X'80'
X' 40'

CTLBY'!'E'
EODADFLG
FFCDE.l
PA'QTBUF

2'
3
4
5
6

X'20'
X'10'
X' 0.8'
X'04'
X'02'

SYNAD140 P'O)

1006

CPCMTSC

1

1

1
1

1
1

'3
8

1
1
1
1
2
2
8

1)ata for IEDQCA

Restart flaq
IDfor routine to te loaded
Internal flaqs
Internal flaqs
Lenqth of relative line
number
Relative line number
Terminal name, ddname,
or address
First verb code
Second vert code
Command dependent flaq tits
Internal flaqs
MODIFY interval sense value
MODIFY interval sense count
Option field name for
DISPLAY option and MODIFY
option commands

COMMAND

INPU~

EUF~r.~

~he
Command Input
is used hv Ooe~ator
from thp console.
issued ~he comman~,

Buffer (IEZCIE) is a variable lenqth ccmmunication paramete~ list that
Control to process a command. The buffer describes the command sent
The CIE shows the command code, the identification of the console that
and the actual data in tbe command~

When the INTBO mac~o instruction is expanded at TCAM execution time, the INTBOmacro
aenerates linkage to a module that issues an EXTRACT macro. The FIELDS~ pa~ameter
specified on the EXTPACT macro is FIELOS=COMM, which calls fo~ the Communication Parameter
~ist.
AVTCOM~T is specified as the
answer area address on the EXTBACT macro.
The
Operatina SYstem places the address of the Communicaticn Parameter List (Ccmmand In~ut
Puffer) in the AV!COMPT field of the Address Vector Table.
When a command is entered, SVC 34 oerforms a GET MAIN for the
Command Input Puffer~ and the buffer is iritialized at that time.
~he

~iel~s

area

requi~ed

ty

the

figure relow shows the format of the Command Input Buffer; descriptions of the
follow the illustration.

IEZCIB
0(0)
CIBNEXT
Address of the Next CIB in the Queue
4 (4)

6(6)

5 (5)

CIBVERB
Code Byte

CIBLEN
Buffer Length
Reserved

14 (E)

13 (D)

12 (C)
CIBCONID
Console 10

CIBDATLN
CI B Data Length

Reserved

_....

--T

16 (10)
CIBDATA
CIB Data

]escription

o

(0)

CJPNEXT

4

Address of the next CIB in the queue (0 for last)

4 (41

C1' PVFF B

1

Eits settinqs for this field are
as follows:

,Name
CIBS'l'AFT
CIBMODFY
CIBSTOP
CIBVARY
crBHAl'Y'
crBDTS~L

CrBHOLD
CrBR!tsE
C:rBLEN

]its
c;

1,5
1,2;5
2,4
2,3,4,5
1,2,4
1,2,4,5
1,2,3

ValUe

Meaning

X'04'
X'44'
X'64'
X'28'
X'3C'

START ccmmand code
MODI~Y command code
STep command code
VAFY command code
HALT command code
DISPLAY command code
HOLD command code
F.ELE~SE command code

Y'68'

1'6C'
X'10'

1

lenqth of the buffer (includinq
in doublewords

6 (61

6

Reserved

12 (Cl

1

~dentifier

13

cr.))

cont~ol

fields)

of the console issuing the command

Reserved

Data Area Layouts

1007

14 (Fl

C!EDATLN

2

1E

(TP!)ATA

n

(10\

lenqth of data in the CIB
Beqinninq of the data from the command operand:

S~A~~ data - contains the fourth positional ~arameter,
'PA~MVALUE'
MODIFY data - contais the residual operand imaqe following the comma,
terminatinq the first positional parameter
STOP data.- none r CIE qenerated only to qive the conscle 1D to the
recipient task
VA~Y data -,contains the operand field for the command issued
PAI~ data - contains the o~erand field for the command issued
DrSPL~Y ~ata - contains the c~erand field for the command issued
FOlD data - contains the o~erand field for the command issued
PEIFASF ~ata - contains the operand ~ield for the command issued

Offset
Key
X'70'

o
~nvironment
nefine~

Checkpoint Pequest
at

AV~CK~l~

~lement:

4

Link address

in the AV1

"'our worns lonq
~~y

aCB address

Source
flag

8

Checkpoint
time interval

Reserved

field - always P'01110000'
Time of
interrupt

12

Source flaq -

(C)

Reserved

B'10000COO' - requested by PEAnY
B'01000000' - requested by MCPCLOSE
Offset
~'0C010000

- requested by the

No incident

Check~cint­

~ecords

routine

o

P'00100000' - requested by other routines
~p

Checkpoint aCB
address

4

Checkpoint HeqUest Element:
Defined as the lCE

60
(5A)

~ey

Key
X'OO'

Link addres.s
Terminal
name offset

fiel0 - always P'OOOOOOOO'

TCHNG

Offset

Anplication Proqram Checkpcint Request Element:

o

nefined at ~CP.WRKA in the PCP - one for
each application proqram

Key
X'10'

Checkpoint aCB
address

4

Link address

8

ECB

:tion entry offsets in the terminal entry to refer to the specific option data entries

1020

for this terminal. The second word of the Option Table contains tlie address of the Option
Characteristics Table, each entry ef which corresponds inconsecutive order to each option
entry of.fset in a termina~ entry. If the Build Incident Becord for KH routine finds that
a halfword eptiori entry offset in the terminal entry does net contain X'FF'·, the routine
qets the address of the epti6n data bV addinq the halfwerd option entry offset to the
beqinninq of the optien data for this terminal to qet the beqinninq of this data field,
qets the lenqt.b of this option data field fer the correspondinq Option Cha'£acteristics
~able
entry, and moves the option data to the next available location in the incident
cheCKPoint record.

Qff.§.f.:t

Byte.§

~ame

Description

Initialized By_

0 (01

CDF'DATE

4

Date of the checkpoint

l!tCNE

4 (4l

CDPTIKE

4

Time that the record is written

IEt9NP

CDPKEY

1

Kev byte:
D'OO' - CHECKPT record

IEDQNG

8

( 8l

9

(91

2

The offset to the terminal that
is currently connected on the line
of the LeB that is the request
element - from tCBTTCIN

IEtQNG

11

on

1

The terminal status - from TRKSTATE

IEDQNG

Beqinninq of the option fields
defined for the terminal ~eferred
t6 bV the offset in bytes 9-10.
The manner in which IEDQNG checkpoints these option fields is
described in the writeup that
precedes this record layout.

IEDQNG

12 (Cl

rn summary, the qeneral format of an incident checkpoint record 10r the CHECKPT
as follows:

macro

is

Offset

o

4
Date

8
Time

11 (B)

9
Key
0'00'

Terminal
offset

Terminal
Status

12 (C)
Option data fields

In£i~ent

ChecKpcint for Operator Centrol:
The Build Incident Checkpoint for Operator
Control routine (IEDONJl issues a GETKAIN for main storaqe in which to build this incident
checkpoint record and plac~s the address of this area at cKPtDRB in the checkpoint work
area.
This routine initializes this checkpoint record from the operator control
checkpoint element at OPCCKEtE in the Operator Control AVT.

Data Area Layouts

1021

Qffs,g1

Byte.§

~'aJ!!~

Description

Initialized

0 ( 0)

CDBDATE

4

Date of the checkpoint

IFDQNP

4 ( 4)

crBTTME

4

Time that the record is written

IEDQNP

Key byte~
Operator Control record
D' 16'

IEDQNJ

CDBKEY

8

(8)

<)

( 9l

3

12 ee)

32

-

n

Reserved
IFDQNJ
operator Control checkpcint element
from CPCCKELE in the Operator Control
AVT

incident

In summary. the for.mat of an
follows:

checkl=eint

record

fer

operator

control

is

as

Offset

o

8

4
Date

Key
0'16'

Time

12 (C)

9

Operator Control Checkpoint Element

Reserved

Tnci~ent_ Ch~ckpoint -for
(~!DONm issues a G!TMATN

the TeHNG Macro: The Build Incident Checkpoint for TCHNG routine
for main storaqe in which to build this incident checkpoint
record and places the .address of this area at CKPLDBB in the checkpoint work area. The
checKPoint of the option data fields is handled exactly as explained in the Incident
C"heckl=oint for the CHECKP'T' Macro discussicn ..
Qffse!

Description

Initializ~

0

fO)

CDFDATF

4

Date of the checkpoint

IEDQNP

4

( 4)

CDFTIl"'E

4

1ime that the record is written

IEDQNP

8

( 8)

CDBKEY

Key 1::yte:
0'04' = TCHNG record

I!tQNH

q

(9)

Offset te the Termname
~a1::le entry for the terminal
beinq checkpcinted - frcm
bytes 12-13 of the checkpoint
request element

IEDQNH

11

('Rl

Terminal entry status byte from TFMSTATF

IEDQNH

12

ee)

Beqinninq of the option fields
defined for the terminal referDed to by the offset in
bytes 9-10.

IEDQNH

Ir.

sum~ary.

2

t~e

qeneral format of an incident cheCKpoint for TCHNG record is as follows:

Offset

o

4
Date

1022

8
Time

11 (8)

9
Key
0'04'

Terminal
offset

Terminal
status
byte

12 (C)

Option data fields

The Build CKP.EQ Disk Record routine (IEDQNM) issues a GETMAIN
macro for main storaae in which to build this CKREQ checkpoint record and places a pointer
to this area in the CKPLDRB field of the cbeckpoint work area. The format and lenqth of
this checkpoint record depends upon the number of priority QCBs associated with the
Destination OCB that is reinq checkpcinted~ there is one 21-byte area of QCB disk pointers
for each priority level. The checkpoint of the option data fields is handled e,actly as
explained in the Incident Checkpoint for the CHECKPT Macro discuss~on. The CKREQ record
DSECT is IEDOCD~D.

~~REg_~he£~~int_pecox~:

Description

o

(0)

CDPCKFLG

1 (1l

1

Flaq tits:
Bit 0 - On - CTrocess entry in the Terminal Table or. the
process entry named is inconsistent with the
nCB format.
A process entry named on a DD statement for an
application proqram is currently being used by
another DCB.

U Tnsufficient main stroaqe was available in the
MCP to build internal control tlocks~
~
Tnsufficient main storaqe was avaiable in the
ap~lication ~roqram area to build the internal
control b lecks.

vvv = the name on the DD statement
zzz
IED01EI
TED017T

=

the ;ob name

STATION name Ne! FCUND

IEDQCF/G/HjNj

LIN~{aaname.rln}NOT OPEN

address

TED018I

oJ /O/Q/U/V/X/Z

IEDQCljL/P/Uj

*
*

V/W/X/3

commano field COMMAND INVALID

IFDQCA/I/L/N/

*

P/U/V/WjX/Z/3

IGC0310D
IED01QI

{~~~~:::~rln } ALREADY

STARTED

TEDQCO/Q/U

*

IEDQCO/O/U

*

IEDQCW

*

address

Stermname
}
IED0'20I ) qrpname,rlll STAF"rED
~ adClress
lED021I

AU~O pell STARTED FOR{qrpname,rln}

address
"!:ED022I

T~~O~3T

AU~O POLl ALREADY STARTED
FOP {qrpname,rln}
address

IEDQCW

*

IEDQCP

*

IEDQCP

*

ALREADY STOPPED

IEDQCO/Q/V

*

STCPPFD

IEDQCO/Q/V

*

TRAC! ST~RTED FOR {qrpname.rln}
address

1F.DO?UI TRACE AIBEADY STARTED FOR
qrpname,rln}
{ address

T~n025I {~~~~~::~rln}
addr.ess

TED02EI
I'PD027I

{ ~~~~!~:~rln}
address

AUTO POLl STOPPED FOR{qrpname.rln}
address

TED028I AUTO POLl ALREADY STOPPED
FOR{qrpname.rln}
addr ess

IEDQCW

TEDQCW

*

*

Diagnostic Aids

1083

T'ED0291

IEDOCP

*

IED030I TPACE ALREADY STOPPED
FOR{qrpname,rIn}
address

IEDQCP

*

TEU031I st~tname OUEUE SIZE=inteqer,
QUEUETYP=type, STATUS=status, •••

IEDOC.J

*

IED032I {qrpname,rIn} LNSTAT=status, •••
address
ERB=error, •••

IEDQCI

*

IEDQCH

*
*
*

TRACE STOPPED FOR{qrPhame, rIn }
address

TEn033I statname STATUS=status, •••
INTENSE,;~nse count}
IN-SEO=inteqer,OUT-SEO=inteqer
IED034I

statname HAS NO opfldname OPTION

lEDQCF

TED035I

stat name OPTION opfldname=data

IEDQCF

TED036I {qrpname,rIn}ACTIVF= statname •••
address
NONE

TEDOCr

*

TED037I {qrpname,rIn}INACTIVF= statname •••
address
NONE

IEDQCL

*

IEDOCG

*
*
*

IED038I

statname IS ON

LINE{~~~~::€,rln}
address

IED039I

NO STATIONS INTERCEPTED

TED040I

INT~BC!PTED

IED0411

FRIMAFY={statname}
SYSCON

STATIONS=statname, •••

IED042I {statname} ALREADY
SYSCON

IEDQCK
IEDQCK
IEDQCN
IEDQCM

P~IMARY

IEDQCN

TED043I

SECONDARY=statname

IEDOCM

TED044I

statname NOT ELIGIBLE paR PRIMARY

IEDQeN

IED045I

SYSTEM INTEFVAL ALREADY ACTIVE

IEDQCZ

IED04EI LINE FOR statname IS OUTPUT ONLY
STATION
TED0471

1084

SYSTEM INTERVAL IS data

IEDQCO
IEDQCZ

*
*

*
*
*
*
*

TEDOU81 POLLING DELAY FOR statname
IS data

TEDoez

*

TEDOU91 OIT CCNTFOLS LINE line COMMAND
REJECTED

IEDQCU

*
*

TEDO~OT

statname CPTION opfield MODIFIED

TEnOS1I stat name SET FOR HOLD,
SEQ-OTJT=inteqer

IEDQC!
TEDQCQ

I~D052I

statname ALREADY SET FOR HOLD

TEDQCQ

IEDO~3I

statname ALFFADY RELEASED

IEDQCQ

IEU054I

statname

I!DOCQ

T~D055I

I/O

IED056T

termnarre opfldname DATA FORMAT
INVALID

IEDQCF

aadress NOT CAPABLE OF AUTO POLL

IEDQCW

TEDOS7!

~RAC!

RELEASED,SEO~OUT=inteqer

CANNOT BE ALTEBED

IFDQCP

*
*
*
*
*
*
*

IFDOS8I {qrpname,rln} SENSECOUNT =count,

address
statname
SETTING=sense

TEDQeX

*

IED0591 {qrpname,rln} LIST STATTJS=status
afi dr ess

TEDQC3

rED060I

IEDQCQ

*
*

statname CANNOT BE HELD

TBD061I POLLING DELAY FOR statname
CANNOT BE ALTERFD

IFDQeZ

*

IFD062I statname OPTION opflaname CANNOT
ACCEPT SPECIFIED DATA

IEDoeF

*

IED063I CLCS~DCWN IN PROGRESS -- xxx
COMMAND BEJFCTED

IGC0110D

*

TED0641 LIN~ addr CONTROL UNIT
OPERA"rIONAL

IGE0204G

8

IEDOOA

2,11

TEDQXA

2

lEDQXA

2

lEDQXA

2

IED065I

TNI~IAIIZATION

FRRO~

IED0661

UNABLE TO

SYSPRINT

I~DO~71

TeAM

TED068T

UNABLE TO OPEN TEDODATA

OPE~

INI~lALlZA~lON

NO~

return code

BEGUN

Diagnostic Aids

1085

TED069I

TNVAllt KEYLEN FOR IEDQDATA

IEDQXA

2

IFDODATA DOES NOT SPECIFY CONTIG
SPACE IN CYLINDERS

IFDQXA

2

UNEOUAL PRIMARY AND SECONDARY
ON IFDODATA

IEDQXA

2

TED0721

T/C FFROF ON IFDQDATA

IEDQXA

2,10

TEn0731

I/O FRROB ON SYSPRINT

IEDQXA

2,10

TED0741

TCAM INIlIALIZATION COMPLETE

IEDQXA

2

lEDQXA

2

IGG019RC

2,11

INV~LID

IFDQCF

*

DLQ IF.FM ERROR

IEDQOM

11

IGG01948

8

T.~U070I

rED071I

EX~ENTS

TEn075! END OF
IS number

EXT~NT.

RECORD COUNT

TCAM NCN-REUSABL! rISK TERESHOLD
CLOS FDOWN

T~D076I

TED07?!
TEry0781

termname opfldname DATA CHARACTER

ENDTNG STATUS NOT RFCEIVED FROM
LINE address - LINE UNAVAILAELE

T~D0791

IEDOgOr

START OF TCAM SYSTEM DELAY

IEDOHI

2

IED081T

END OF TCAM SYS!EM DELAY

IEDOHI

2

IGG01942

11

rED083! CHFCKFOINT DISK ERROR -- RECOVERY
FROM PREVICUS RECORD

IGG01943

11

IED084I

IEDQNQ

11

IEDOND
IGG01944

11

rED0821 CHFCKPOINT DISK ERROR
SET NOT OPENED

DATA

CHECKPCINT DISK ERROR - RECOVERED

IED0851

CHECKPCINT DISK ERROR - {CKBEQ
}
INCIDENT
RECORD TGNOFED

TED0861

CHECKPOINT DISK ERROR - {lNVIRONI!l!N\
CKREQ,name EDQNP

11

rED0871 CH~CKPOINT DISK ERROR - CONTROL
RECOFD

IGG02041
IEDONQ

11

TED088! term name ON DIAL LINE - CANNOT BE
VARIED

IEDOCO

*

1086

LINE ACTIVE - VARY
COMMANr F~JECTED

I~D089I

TF~MINAL

IEDQCO

~~DOqOT

statname IS NOT SINGLE ENTRY

T~D0q1I

LINB

T.FDOQ21

BISYNC EBROR - LINE xxx
BE STARTEr

~OP

statname NOT OPEN

CANNO~

TEDOg3I S~T SYSTEM INTERVAL COMMAND
ACC'FP':rED
COP~ FEQUFSTED
TBsm NOT AVAILABLE

TBD094I

IF-DOgSI ~ODTFY OLT REJECTED - OLT NOT
AC'T'TVE
OPE~A~OF

CONT~OL

}

IEDQCG/J/O

IEDOCU

*

IEDQCZ

*

IEDQND

11

IEDQC2

8,11

ON-LINE

~OF

T~DOq6I {C~FCKPOINT

IEDQCG/O

*
*
*

NO LONGER ACTIVE IEDONA2

2,11

COMWRITE
TED097T

TCAM IS

TED09RI

DOWN

IEDQNA2

2,11,*

DCB CFEN FOP MESSAGE PROCESSING
- iorname

IEDQCO

2,11

TEDOg9I

ROUTINE LOADED

IE:GQC6

8

It::T)1001

POU'rINF rEACTIVA'!'ED

IEDOC6

8

TED101I

'RES."AFT IN PROGBESS

IEDQC6

8

T~D1,)2I

TNVAIIr OPERAND

IEDOC6

8

TE1)103I

ROUTIN!: IS ACTIVE

IEDQC6

8

T~1)1')4I

ROU'T'INE NOT ACTIVE

IEDQC6

8

IED1,)5I

PETUFN CODE=xxxx

IEDQC6

8

T'ET)1,)EI

MUl'rIFlE REQUEST

IEDOC6

8

1~D107I

COMWPI'IE NOT ACTIVE

TEDQC6

8

IED109r

ROUTINE NOT DELETEr

IEDQCE

8

~tOSED

PRO~FAM

Diagnostic Aids

1087

''''odule
\! arne

~ntrv

poi:nts

Fr tered
Frem

'External
Routines

Exit
Points

Exits
To

":~!:'AY~

l!l),~ YX
IE tAYA
.!F.rAYA+12lFDAYF

!EDOTNT

DSPDISP in IGG019RE
"EN"t'RY1)12" or It;GC19RC
T)SPCHAIN in IGG019RB
B after
"ENTRY~'2" or IGG019RO
DSPCHAIN in IGG019~E
E after
"RF.'T'U~N"
or IGG019RO
BR after IEDAYM
"PFTU!n'2"

~1l'ryAYC

l1!DAYC

!EDOUI
(C A~RI AGE)

IEDOTNT

BF after
"EXIT"

IEDQLM (to MF)

TE1)~Yl)

IEDAYD

IGG019 P O or

TFDAY'Z

B after
"AYD200"

DSPBYPAS in
IGG019RO or

IGG019~B

EZ after

IGG019~B

T.!DAY!'

TET)AY"

T!l)AYR

I!DAY'E

lEtAY!"

IEDAYH

!EDAYO
lFDAYM

TEDOTN[',
IEDAYS,
OTIl? SVC
101

BR after
"EXIT"

!~l)AYM,

IGG019'RO or
IGGO 19FB

IOF~L'!'

B at
"EXIT"
E'R after
"POSTSUE"

DSPDISP in IGG019RE or
IGG019RO
DSPCHAIN in IGG019FEor
IGG019RO

11='DAYX

I!DAYH+12 tGG019?O

1'~l)AYt

IEl)~.YI

"':GG019FP
or

IFDQHG,
DSl?l?RIOP
in
TGG019RO
IGG019RB
TEDQTNT
lEDOTNT

DSPCHAIN in
"SAYONAPA"IGG019RE or
IGG019RO
E after
DSPCHAlN in
"SAYONA~A"IGG019RB or
IGG019RO

13 after
DSPC~AtN in
"TSIN2050"IGG019RB or
TGG019"RO

ER after
"EYEEYE"

TET)AYL

IEDAYL

IFDOUI
(lOGON)

lED QUI
(IFDQAE)
IEDQTNT

T'FDA'YM

. !EtA'VM,
AYMOOa

T~DOBD,

IEDOTNT,

I~DAYS,

l~DQUI

1088

B after

IEDQTNT,
OTll? SVC

~GG019~O

TGG019PO or
IGG019PB

IEDAYO

B after
"AYM020"
(IEDQAE) , E after
IF'DAYF.
"AYM309"

IEDQLM
(Time Sharinq
Messaqe ~andl~r)
DSPCHAIN in
IGG019RB or
lGG019RO

"'o~.1l1e
\1:=t 11'

e

Fn+.rv

Entered

Pci!'ts

'C'ro~

External
Poutines

Exit
l?oints

Exits
To

E after
"CRAIN"
B after
"POST"
E after
"DISP"

DSBYl?AS,
DSPPOST, or
DSPDISP in
IGG019RE or
IGG01QnO

T~"AYO

IGG019"PB or
rEDAYO
I'FtAY002 IGG019~O

I'EDAYF,
IEDA.YM,
IFDQFA,
!EDQFQ,
OTIP SVC

T"'D Av "I:)

IEnOAA01 IGG019"1:)0 or
IGG019PB

IF-DQUr
E after
DSPl'OS~ in
(TEDQAI
"POS,T"
IGG019~B or
or IEDQAWl ,
IGG019P.O
TEDQ~NT
ER after MH
"MBHEXIT"

T~nAYS

IFD~:YS •
rEDOUT
1'EDAYS2. I1:DAYE
IEDAYS3 IGG019PO or
IGG01Q?B

TEnO':"NT,
QTIP/SVC
101

E after
IEDQLM (to MH)
"AYS104"
ENO after DSPDISl' in
"AYSAYS3" TGG019RO or
IGG019RB
I~DAYM
E after
"A.YS4 01 "

T'C'1)AY'"

!EDAYTO. S':"~"F.' l;'xit
IFDAYT1, Acdress
I!DAYT2

IGC102.
TCABEND
(SVe 94)

R:BTURN
ABFNll/STAE
after
Interface
"IEDAYTO",routine in OS
after
Supervisor
"RETURN",
and after
"IEDAYT2"
BR after
" AYXO'SO"

'T"t:' 1)

AY X

:f.t::DAYX

TErOED

l-lcne

vv

T~rAYY

'!'FD.lI.YGP.
I¥'.:TGG'F'9 U •
IF!:'AY!!

DSfPOSTP

~YZOOO

IGG019 P 3

IFDC"'N'I

E"I:) after
., AYZ042"
E after
"AYZ01S"

AYZ100

I~G019P1

IEDQHG,
DSPPOSTF

ECR after IGG019R1
"AYZ100"
DSPPOST in
B~ after
"AYZ135" IGG019RB or
IGG019~O
B after
"AYZ125"

AVZ200

IGG01 9 PO

DS'PDISP

E after
"AY20EO"

AYZ300

OFV1:N'" in

IFDQKA,
Exep

P.R after

T~T)~.

Il;''''AYZ

T.GG01Q~3

IEDAYA
IEDAYH
DSPDISP in
or

IGG019~O
IGG019~E

IGG019~3

DSPDISl? in
IGG019RB or
IGG019'RO,
IGG019R3

"AYZ240"
BR after
"AYZ2S8"
ER after
., AYZ270"
B after
"AYZ280"

Diagnostic Aids

1089

''101ule

\:ame

F.ntrv
Points

AYZUOO

F.xternal Exit
'Routines . Points

'l:'ntered
1?rcm

USPUNAVP.

IGG019~4

lOHAt'!.'
(SVC 33)

IEDAYD

BR after
"AYZ460"

IEDAYD

AYZt::CO

TGG01 0 'D4

BR after
"AYZSOO"

IGG019R4

AYZEOO

IE'DO~A

B after
"AYZS10"
BP- after
"AYZS1S"
B after
"AYZ66S"
BCF after
"AYZ692"
B after
"AYZ04S"
B after
"AYZS30"
E~ after
"AYZOS5"

IEDQKA
DSPCHAlN in
IGG019RE or
IGG019~0

DSPBYPAS in
lGG019RE or
IGG019RO
IEDAYM

TEDQTNT,
r'EDOUI
(IEDQAW,
!EDQAl)

B after
"SETO'I'T"
ER after
"EXl'I"

DSPPOST

IEDOAC01 IFDQUI P:)ATF.'!.'IMF.}

lEDQAt,
TIME
lEDQAX

BR after
"RETURN"

IEDQLM (DATETIME)

ItDOAD01 IFDQUI (SEQU!NCm

IEDQUl
(lEDO.AF)

BP after
"EXIT"

~EDQLM

!EDOA.T:'

!FDQTNT

BR after
"EXIT"

J-EDOLM
(lNBUF, INHDR,
INMSG, LOCOPT,
MSGLlMIT,O UTBUF,
OUTHDF,OUTMSG or PATH)
IEDQtM(lEDQAZ,
IFDQAS,IEDQA7,
!EDQAS,IEDQET,lEDQYt)

EF after
"EXIT"

IEDQLM(DATETIMEor
S~QUENCE, lBonQAD
lEDQAK, IEDQAN,
lEDQAP, lEDQAT, IEDQA2,
IEDQAS)

IGG019~E

IEDQA~01

or IGG019RO

I~rQUI

(INEUF,
LOCOP.'I,
OtlTEUF,
OUTMSG,
IEDQUl
IEDQAS,
IErOB'!',

1090

EeR after
"AYZ3OO"
BC~ after IGG019R4
"AYZ325"
BC~ after DSPUNAV in
"AYZ330" IGG019~S or
BCR after lGG019RO
"AYZ3c)O"
ER after
"AYZ400"
B after
" AYZ49C;"
BCP after
"AYZ410"

AYZ410

T1?DOAA01

T1:'DOAE

Exits
To

I~HnR,

r~MSGi

MSGLIMIT,
OUTHr'D,
or PA'!.'H)
(I1?nOAZ,
lFDO~7,

I~nOA8

lEDQYL)

IErOUI(DA~~TlMB
IEDQAl
or SEQUENCE, I~DOAD,
IFtQAK, I~DQAN, IEDOAO,
I~nOAP, I!DOAT, lEDQA2,
IEtQAf:l)

IEDQLM
(STARTMH)

(SEQUENCE)

"F.:ntrv
1'cints
lIDOAG01

~f\terea
~rom

Fxternal
Poutines

'Exit
'Points

MSGLl~1:'T'

None

EF after MSGLTMIT
uZEFORTN"

lEDOTNT.

BR after
'STOBE'

lEDQLM (SEQUENCEl

TEDQAI,
lEnOAX

EF after
"EXIT"

IEDQLM(CODE,
INITIATE, LOCK,
[1SGTYP~, ORIGIN
PATH, 'PRIORITY,
SCREEN, SEQUENCE,
SETEO'F, SFTSCAN,
or UNLOCK,
IEDQAA,
lEDQAN, IF.DQA4, TEtCA5)

!FDOAL,
lEDOAX

BF after
"RETURN"

lEDQLM (FORWAB~
or SETSCAN)
IEDQLM (TEDQAN or lEDQAP)

IEDQTNT,
lFDQUT
(TEDQAP,
IEDQAO),
IEDOAl

BF. after
"FXTT2"

I'EDQA4

TET)('IAH01 !FDOUI

!~DOAl01

(S~OU!NCEl

!E~OUl(CODE,!NTTlAT!,

LOCr, MSGTYPE,
OPIGTN, PATH, PRTOF.lTY, SCPFEN~ S~­
OD~NCF, SETEOF, SETSC AN, or 'TJNLOCK,
lF~OAA

lEDOA', l!T)QA4, IEDQl51

!!OOAJ01

T~DOUI

(!O~9ARD

or

SFTSCA~11

TEr.onI (TEDQAN or
!FtOA1?l
IEDOAK01

!~~OU!

(OUTMSG or

OU'J"ENl'))

T:::DO~!'

Exits
To

ADr.FCOMP !FDQAC
None
lFtOAF
lYtOAI
IEDOAJ, lEDOAO
!EtOAK, IFl)QAN
I-:PtOAH
I~DOAO, !BDQA3, IEDOA4
!1?DO AI)

ECF.
IEDQAC
and
lEDQAP
BP
lEDQAI
after
IEDQAJ~ IEDQA~, lFDQAN,
"ENTFLOOP" lEDQAO, IEDQAW,
IEDQAO,IEDQA3,lEDQA4,
IEDQA5

IEDOAM01 OPIGlN

IEDQT~lT

EF after ORIGIN
"SETEIT3"

!FDQTNT,
lEDOAl,
TEDOUT
(lEDQAP,
IY.DOAI,
lEDOAJ,

EF. after
"AECOMP"

IEDQLM (MSGEDlTl

ER

tEDQLM (IEDQAN,
IEDQA?,IEDQA2,
lEDQA8)
IEDQUl (lEDQAFl

lEnOAN01 lEDQUI

(MSGF.DI~)

!~,DQAO)

T~DO~O

, !Ef-OA001 rFDQUT. (IF.DOAN
I~~OAP,

IEDQAL,
T'EDQBW

IE.nOA2

BF. .,after
"lNS"!!:'RT"

JET'O~Al

I!DOA~01

l~DO"I(MSG~DITl

TEDQUl
(IEDQAF
lEDOAJ,

BF. after
"EXIT2"

lEDQLM (MSGEDlTl

Diagnostic Aids

1091

"'~r!ull?
"'::''!It:!

Entrv
'Points

Entered
1:'rom

External
Poutines

Exit
1?oints

!xits
To

IFDOAO)
~EDOA001

IFDOUI (CODE)

lEDQTNT

IE~QLM

(CODF)

"DSPPOST" in
IGG019RB or
lGG019RO

IEDOA~

T ~nOAS

TEDOAS
IFrOBD
TEtOAS01 !GG019~B or JGG019RO
GF~CPB
IGG019PF. or IGG019RO
LCF.R~~
IGG019PF or IGG019PO

B after
"RETURN"

DSPDlSP or DSPCHAIN
in IGG019RB or IGG019RO
lEDQFQ

JEDOTNT
DSPPOSTF,
lEDOHG02,
lEDOHG01 r

IF!'OAZ
IGG019 P B or
IGGO 19~0

rEDQUT
(lEDOAP)

IEDA'T'TN

T/O Supervisor

None

IGG019R5

!!DOAH
IFDOUI (CUTOFF)
CUTFFOCF.+12 IGG019~B or
IGG019!'O

None
F,XCP

IEDQLM (CUTOFF)
IGG019RB
or IGG019RO

IEDQAV01 IEDOUT

IEDQTNT

ER after IEDQLM (FORWARD)
"LOADPFX"
ECP after IEDQtM (IEDQAZ, IEDCA5)
"LINK'INT"

IEDOAL,
lEDOA3

BR after
"EXIT"

(FO~WA~D)

IFDQUI(IEDOAZ r !!OOA5)

IEnOAW01 lEDOUl (CODE)

BR after DSPCHAIN in
"POSTSUE" IGG019RB or
IGG019RO

ros

IFDQUI (!EDOAA)
SCAN

IEDQAC
IFDOAI
IFDOAJ
TEDOA4

tEDOAY01 IFDQUI
!EDOAZ01

(SCP!!~)

l!DO~D

IEDQA001 IFDQUI (SETSCAN)

1092

"DSPCHAIN" in
IGG019RB or
IGG019RO

STCBA~+2

!EDO~'T'n1

r~no~v

lEDOT·NT

TEDO'BD

IEDQLM (CODE)
IEDQLM (IFDQ\A)

None

ECR, BLr
and
E to
return to
caller

IEDQAC
IEnQ!I
IEDQAJ
lEDQA4

TEDQTNT

ER after
"FXIT"

!EDQLM (SCREEN)

lED'QUT
(IEDQAF,
TEDQA 1)
IEDQAV

ER after
"FFFMSG"

lEDQAT

I'!l'DOAt

ER at
"RETURN"

B after
DSPCHAIN in
"MOVEQCB" IGG019RB or
IGG019RO
IEDQLM (SETSCAN)

'C'n terefl
"'rem

'-'arne

Entrv
t:eints

T"I:'1)OA1

IErOA101 IFrOUI

"'OdUL"?

Fxternal
~outines

(O~rG!N)

None

!xit
Points

~xits

'To'

IEDQL!"! (OFIGIN)

BFat
"RETUFN"

IEtiQLM(IEDQAZ,IEDQAS,
IEDQE1,IEDQE2,

IEDOUI(IEDOAZ,IEDQAS,
IFDOE1,IEDOE2,IEDOE3,IGG0194E,

IEDQE3,IGG01~46,

.IGG019FT,IGG01q~J)

I GG0 19 RI , I GG0 1q~ J)
T!DO~201

IEDOUI (MSGEDIT)

IEDOUI(IEDQAF~

TEDQAO)

JE1)OA3

TEDQAl
TEDOUT
(IEDQ AE)

IEDOAW

TEDOA401 IEDOUT (TNEND, IFMSG, IFDeAl,
OU'!FN,D, or OU'!MSGlTFDOAX,
TEDQTNT,
DSPPOSTR

1FDO A601 11"DOUI

(M SGFORM)

13F
IEDQtM (MSGEDIT)
after
"ABEXIT"

13F at
"NOXLTI"

IEDQAW

EeR after IEDQGD
"SELEXIT"
E after
IEDQGT
"EXIT"
DSPPOST in
IGG019RB or
IGG019?O

TED QUI
CIEDQAE,
IEDOAI,
TEDQA 1)
lEDOAL
TEDQAV

ER after
"EXIT"

!EDCTNT

13F after

IEDQLM

(~C~WARD)

IEDQLM (IEDQE A)

IEDQLM (MSGFORM)

"EXITO~F"

IE1)OA701

COUN'!'~P

TEDOA801 IErOUI

!~T)OBC

(~SGEDIT)

~F.D013A01

IGG019PF. or

IEDOEE

IFroUI (CHFCKPT)
IFDOBD

IFDO~C

IGG019~~

IGG01q~O

or IGG019RO

TEDQUI
(IE.DOAE)

ER after
"ERROR"

COU~lTER

IEDOUI·
(lEDQAE
IEDOAP,
!EDQAO)

ElR after
"EXIT"

IEDQLM (MSGEDIT)

IEDOUI
(IEDQA5)

13 after
DSPPOST or DSPCHAIN in
"POSTEPR" IGG019REl or IGG019RO
13 after
"EOAENTFF"
13 after
"MBHLINK"

None

IEDQLM (CHECKPT)
DSPPOST in IGG019RB or
IGG019RO

TFDOTNT

DSPCHAIN in IGG019RE or
IGG019RO

Diagnostic Aids

1093

Name

'F.nt·rv
Peints

T"tl'DOBD

IEDOPD01 IGG019"OB or 'IGG019FO

TEDQTNT

TFD(,E1)02 IGG019PP or IGG019RO

TEDQTNT

"'~!)OBE

TFDQFE

IEDOUT (lOCK)

IEDOTNT

IEDQLM (LOCK)

r"l:'DOBF

TEDOEF

rEDOUI (UNLOCK)

None

tEDQLM (UNLOCK)

r~DO"8G

!F.DOPG

IGG019PF or "!GG019PO

IEDQTNT

DSPPOST in IGG019RB
IGG019FO

T'P!')OBT"

TEDOE!'

TF'rOBD

Non.e

DSPCHAIN in TGG019FE or
IGG019RO

I 'PDO ET

JEDOErr

!r,G019RB or IGG019FO

rEDQUT
(IEDOAE)

DSPBYPAS or DSPCHAIN in
TGG019RB or IGG019FO

Tl<'DOBT.7

TEDOEW

IPlJOAO

None

IEDQAO

Tl<'DOBX

IEDQBX

IFDOTJI (LOG)

WRITE
CHECK
GETMAIN

TEDO~Y

TEl"O~Y

IFDORD

Nene

:F'f)O~7.

IEDOPZ

!GG01Q1'P or
IGG01q PO

GETMATN
CHECK
WRITE
DSPPOSTF
DSPUNAVF

DSPBYPAS or DSPPOST
.in TGG019P.B or
IGG019RO

T~T'Or:A

rEDOCA

os '!'ask

~odtlle

Entered
From

Fxternal
"Poutines

Exit
Points

Exits
To
DSPCHAIN in TGG019FE or
IG.G019RO
IEDQNX
DSPCHAIN in IGG019FB or
IGG019FO

after
'EXIT'

E~

IEDQLM (LOG)

DSPCHAIN in IGG019RB
or IGG019FO

IGCOO10D

"!anaqement.
JET1OCA02 '!'ransieni; Operator
. control Poutines

OS Task Management

IGCOO10D

Transient Operator
Contrel Routines

Tl<'1)O':l<'

IErOCF

IGC0110D

rEDQCS

IGC0110D

T~1)()CG

IEDOCG

IGC0110D

None

IGC0110D

T"t:'DOCf.J

IEDOCH

IGC0110D

None

IGC0110D

TF1)OCI

TErOCI

JGC0110D

None

IGC0110D

.... ~DOC:y

IEDOCJ

. IGCO 110D

None

IGC0110D

TFY'lOC"

T~DOCK

IGC0110D

None

IGC0110D

1094

"'odule
Name

Entrv
Points

~rGm

'Entered

fxternal
'Routines

T~T)Or:J"

IF-DOC!"

IGC0110D

None

IGC0110D

TEDOC:"l

I:'P'DOCM

T(';C0110D

None

IGC0110D

IBr,9 CN

I'?tOCN

IGC0110D

IFDQNX

IGC0110D

-r:~1JOCO

IEDQCO

IGC0110D

None

'IGC0110D

T~DOCP

IEtOCl?

IGCO'10n

None

IGC0110D

TlO'DOCO

IEDOCO

TGC0110D

IGCQ02
WAIT

IGC0110D

T~DOCU

IEtocU

IGC01101J

IGC102
'FXC}?

IGC01,10D

T~T)OCV

TEDOCV

IGC0110D

IGC102
WAIT

IGC0110D

TlO'T)Or.TJ

IEDocm

IGC0110T)

None

IGC0110D

IB!)OC'X

TErOCX

IGC0110D

Ncne

IGC0110D

T~1JOCZ

IEroCZ

IGC0110D

IGC102

IGC0110D

T"'1)OC(\

IEDOCO

IGG019BB or
IGGO'19BO,
TGC0110D

IGC102

IGG019RE or IGG019RO

TEDOr::1

IET:QC1_

IGC0110D

IGC.102

IGC0110D

T~T)OC2

IEDOC2

IGC0110D

IGC102
WAIT

IGC0110D

T"'l)Or:'1

JEDOC3

IGC0110D

None

IGC0110D

T~T)OC6

TEtOCf)

TGC0110D

IEOQCA02
Service
Aid Routines
LOAD
DELETE

IGC0110D

T"'l)OlO'C

TErOEC

TGG019PE or !GG019RO

DSPPOST'R
in
IGG019RE
or
!G<; 019RO

Exit
Points

Exits
To

E after
DSPCHAIN in
"'REQUEST" IGG019'RE or
IGG019'R0
13 after
"NOF!CDEL" DSPDISP in
IGG019'RE or IGG019RO

Diagnostic Aids

1095

~odule

Name

Entrv
Peints

Entered
From

Exits
To

External
Routines

Exit
Points

IGC102

DSPDISP in
B after
"ECEPOST" IGG019RB or
IGG019RO
B after
"SAVIT"

DSPDISP in
IGG019RB or
IGG019RO

FFT'RIEVE

IEDOUI
(IEDOA1)
IGC102

RETRIEVE

'lFDOE"!'

ICHNG, REt~ASEM,
MRELEASE, iSTARTLN,
STOPLN, MC"CIOSE, or
ClOSEMC

IGC102
IEDQE6

Next instruction in the
application proqram

1:EDO~U

rEDOEU

IGGO,19PF or !GG019RO

lGC102
GETMAIN'·
FRE'EMAIN

IGG019RBor .JGG019RC

T"'l)Q~W

IEDOEll

IGG01.9RE or IGG019PO

IGC102

IGG019RB or IGG019RC

TFDOEZ

IEDOEZ

IGG019RB or IGG019FO

None

IGG019RB or IGGO.19RO

T!l)OE1

lEDOE1

TCOPY

lED QUI
,(IEDQA 1)

TCOPY

I'I!DOE2

I!DOE2

QCOP'Y

TEDQUI
(IEDQA 1)

TEDO::: 3

IEDOE3

TCENG

IEDOE6,
RETURN
IEDOUI
(IEDOA1) , after
IEDQNB,
"EXIT"
TGC102

T~T)OES

!EDOES

TP.DO~~

RETURN
after
"EXIT"

TCHNG

tEDOE4

I'EDQF4

ICOPY

None

~'E'DQ~E

lEDOEE

OS Link (IEDOOA)
IEDOE3
lFDOET

None

IEDQOA
lEDQE3

TFDOE7

IEDOE7

IGG019RB orIGG019RO

IGC102

DSPDlSP in lGG019RB
or lGG019RO

T~DO~A

lEDOFA

IGG019RB or IGG019RO
IFDQFO

lGG019~C

lGG019RO or IGG019PO
IF!)Q'FO

IGG019RB or IGG019RO
IGG019RC

!ED01"A1

1096

lEDOFA1

RETURN
after
"EXIT"

Next sequential
instruction or
macro expansion

lCOPY

lGG019RB or lGG019RO

Exits
To

Entry
Pcin.ts

Entered
Froll

!EDOl"A2

TE1)Q'FA2

IGG019PO or IGG019FB
IFDQFO

IEDOGA

IFDOGA

IGG019P B or 'IGG019FO

DSPtIFOP

IGG019RB or IGG019RC

IEDOGA

IEDOGB

IGG019~B

or IGG019PO

DSPPOSTF
DSFtIFOB

IGG019RB or IGG019BC

T EDOG A

IEDOGD

IG,G019FB or IGG019RO

FYCP

!GG019RB or IGG019RO

ET)OG"!'

iEDOG'T'

OUTBUF

None

OUTEUF

"t BDOBG.

IEDOPG

IGG01Q'RB or TGG019RO

'IIME
STIMEF
IGC 102
DSPPOSTP
DSPPFIOF

IGG019RB or IGG019FC

T

External
Poutines

Exit
Pointl!

"Iodule
Name

IFDOHG01 'rCAM Subtasks
I!DOP.G02 TCAM Subtasks

IGG019RB or IGG019RO
!GG019RC

or lGG019~O
Interrupt Routine

calli.nq Su btask
Callinq Subtask

TEDOHG03
TlfilEFXIT

IGGC19~B

TEDOR!

TFDQHT

IGG019PB or TGG019FO

IEDQHG01
IEDQHG02
IOHAtT
DSPPPIOF
WTC

IGG019RB or IGG019FO

lEDOQl{

IFDOHK

IGG019P E or IGG019RO

None

IGG019RB or IGG019FO

I~DORM

IEDOHM

IGG019FB or IGG019RO

IEDOTNT

IGG019RB or IGG019BO

IFDOHM02

IGG019~D

Scheduler
Subroutine

IGG019RP

O~

IGG019Rl'

IGG019RB or IGG019"RO

IEDQHr«'

IFDOHM1 IGG019PB or IGG019RO
lEnOHM02 IGG019RD
IGG019RP

IEDQTNT
Scheduler
Subroutine

IGG019RB or IGG019BO
IGG019RP

:EDOHM2

IEDOHM2 IGG019RB or lGG019FO
IEDOEM02 IGG019'e)D
IGG019RP

IEDQTNT
Scheduler
Subroutine

IGG019RB or IGG019BC
IGG019RP

IEDORA

lEDORA
TGG019RB or IGG019FO
·IEDORA02 IGG019PO

EXCP
IFDQTNT

IGG019RE or IGG019BC

TPDORB

lEDQRB
IGG019P.B or TGG019RO. EXCP w
IEDORA02
IEDQTNT

IGG019RE or IGG019FO

TEDORC

IEDOl{C
IGG019PE or IGG019RO
TEDQRA02

EXCP w
IEDQTNT

IGG019RB or IGG019RO

TEDotqist:er
~outine rase reqister
Save area address
Return address
P.eturn code reqister
X'CO' Successful completion
X'C4' No control strinq match found
X'OB' No option ~ield fcund
Work reqister
Parameter list address
~"ork req ister
Work reqister
SCB adnress
ICE adoress
Scan address
Current ruffer address
SeT address and scan offset
AVT address
TCAM Dispatcher address
~ase reqister
Callinq routine save area address
t?etu:r:n adoress
Pntry ~cint address
Work reqister
Parameter list address
Sub~arameter list address
Faraweter list address
S(,~ adnress
ICB address
Work reqister
Current ruffer address
Subparameter list address
AVT address'
local return address
Execute. reqister
Ease reqister
callinq routine save area address
"Return address
Entry rcint address
~eturn code:
X'OO' - Successful comrletion
X'04' - on entry frcm multiple routing the destination name is incomplete in
the current 1:uffer
.
X'04' - on entry from the ~OFWARD
macrc expansion - a valid destination
cannct be found
x'oe' - on entry from Multiple Routing an EeA character strinq is detected.
Wcrk reqister
Address of parameter li$t
Terminal Tarle entry address
Device dependent area address
SC E address
ICE address
plock' extent
Current 1:uffer address
su1:block extent
Parameter list address
AVT address

10
12
13
1'"

15

IEDO~7

IF'DOA7C1

1

13

W
I

1,0
W
W

a

W

1,0
W

w
w
O'

IEDOA8 T'EDQA801

o
1

2
3
4

5
,:;
7

8
9

T

10

W
I

12
13
14
15

IEDO~ll

I'P'DOBA01

o
1
2
3
4
5
6
7
8

11
12
13
14
15
T'EDO~P

TEDCPB

W
I
W
W
I
W
I
W
W

I,O
W
W

a

W
I
W
W
W

W
W
W
T

w

I
W

1,0
W
W
W

0

I

1
2

a

3

!
I
I
I

4
q

11

w

local return address
Ease reqister
Callinq routine save area address
~etuIn address
Entry ~cint address
Feturn code:
X'OC' - Successful com~letion
X'04' - The line ccntrol intervals are
not in the input parameter list
or terminal e~tI', or the line
control characters are not valid
for the [uffer destination.
Work reqister
Callinq routine save area address
Ease for AVT addressability
Beturn address
Entry ~cint ~ddress and option field address
RetuIn cod-e:
X'OO' - Successful com~letion
X'FF' - !he·kuffer is zero-length, the counter
opticn field is not found, or the
counter option field is not changed.
Wcrk reqister
Address of the input parameter list
Extent tetween inserts
tata flaq
LCE address
Scan req ist.er
Current [uffer address
Paramet~r lis~ address
Shift limit
AVT address
Opticn field addre~s
Base reqister
Callinq routine save area address
?etuIn address
Entr, ~ci~t a~dress
Return code:
X'OC' - Successful com~letion
X'04'- The option field is not found; thus,
the insertion operation is not
successful
Work reqister address to be posted
Address of the element to be tposted
Parameter list address
Work reqister
SCE address
ICE address
Recalled buffer count
Current tuffet address
Multiple Routinq QCE address
Reader [uffer address
TCAM Dispatcher address
Base reqister
Callinq routine save area address
Base for AV~ addressabilit,
~etuIn address
Entry ~oint reqister
F1"trv code:
X'OO' - entry from I~DQEn
~cnzero • entr, frc~ IEtOUI
ER'E address
~ddr€ss of IEDQED
SCE adaress
LCE aadress
AV'I aadress'
TCAM Dispatcher address

Diagnostic Aids

j131

12
13
15

TEDOBC

IErQEC

1

2
3
4
€

..,

9
10
11
13
14
15

~outine

I
W
W

Address cf the tuffer cr ERB
o or LCE address
STCP address
ICP address
Euffer address
IErCEC CCE address
Work reqister
140rk reqister
~CAM Dispatcher address
Callinq routine save area address
TFDC~N! return address
Entrv ~cint ad4ress
7ermname Table address

o

W
W
I
W
~

I
I
W

T
W

TF'nOED IFDOPl)

o
1

2
3
4

5
F

7
8
q

10
11

ITlI1)QEE IFDOPE

r

5

I
W
I
I
W

r

q

I

3
4
9

14.
15 '

w

o

I
I

'I

o
o

4

5

..,6

Work reqister = 0
Element address (buffer, ERE, or LCE)
wor'" reqister
SCE address
ICE address
Work reqister
Euffer address
QCE address for IEDCED
Parameter list fer the Incominq/Outqoinq
Messaqe Delimiter rcutine
Worl{ reqister
Sutrcntine link reqister
TCA~ ris~atcher address
Incominq/Outgoinq Messaqe Delimiter routine
base reqister
Save area address for the callinq routine
Subrcutine link reqiiter
Pase register
parameter list address
Werk reqister
SC E address
lCB address
Euffer ~etUrn CCE address
Euffer address
AVT address
1I1)Ql~ address and subroutine return address
~etur!'! code:
X'OO' - Successful com~letion
X'C4' - The source was not identified
x'ce' - The destination is not an open
~rocess entry, the buffer has a
lenqth of zero, or th~ input tuffer
is net a header buffer
X'12' - 1he staticn is already locked
In~ut

SCE address
LCP address
AV'!' address
Return address (IErCLM)
~eturn code,:
x'ce' - Successful ccm~letion
X' C4' - If er min ali s not 1 o"c ked

tufter address
Work reqister
Work reqister
Werk reqister
Werk reqister
Buffer address
OCB address for 1~rQEG
rn~ut

1

2
3

1132

toT

r

6

14
15

IEDOFG T'F'!'OflG

W
W
I

13
14
15

4

T'EDOP'1'.lI

o

o

2
3

I~DOEF

W
I
W
W
W
W
W
I

12

1

base reqister
Callinq routine save area address
Return code:
X'CC' - Successful com~letion
X·04' - Checkpoint not in system

I
I

w
W
W
W

W
T

8
q

11

13
14
15
T~D01?l

T'EI::OPL

1
2
3
4
5
8
9

1
2
3
4

I

W·

W
w
I

W
I

W
W

6
7
8
9

W
I

w
W

W
I
1i1

I
t.l

w

3

I

4

W

13

T
W
I
I

14
15

I

TFDOPWQ1 1

I

3
4

7

'T''EnOBY

w

t:i

6
7
11

:~DOPX

I
I

I
I
I

14'
15

'I ~ D013 ~l

Chain of eleroents tc bl':' tposted
tCB address
seE address
leE address
Work reqister
T.nl=ut parameter list aaaress for MSGGEN
length of MSGGEN
Work reQister
'tCAM Dispatcher address
Ease register
Save area address for the callinq routine
Work register
Translation 'Ial:le address

w

11

10
11
12"
13

~El)OPW

!

w

lol

13
14
15

T1:DOBW

Wot:~ register
Wcrk register
TCAM l'ispatcher address
Save area address for the ~alling routine
sutroutine retU1::n reqister
T~r\t'rame Tal:le apdress

10
12

T1?DQE"T' IEDOPT

W
W
I
T
W

IFryCEX

TEI::OEY

I

W
W
W

11

I

13
15

T
I

1

I

6

I

12
14
15

I
I
0

1
3
6

-I
I

..,

8

11
12

'!
I
I
I
I

Input element address (huffer or ERE)
Work register
Ease register
lC 13 a~dress
Work register
Buffer address
S'IAF'IMH QCE address
SCE address
Work reQister
Sul:rcutine return register
TCAM Dispatcher address
Work reqister
Save area adClress for the calling routine
sutrcutine return regist"er
Work reqister
SeE address
ICE address
Euffer addr.ess
Buffer Feturn QCr address
TCAt'1 Dispatcher address
Calling routine save area address
Ret~tn address
'Entry pcint address
Address of the l:uffer ;ust returned
SCt! address
leE address
Buffer Feturn QCr address
TCAM Dispatcher address
Callinq routine save area address
Entr" pcint a~dress
Input parameter list aCldress
Current l:uffer address
Entr" pcint address
~eturn addre.ss
'Return code:
X'00' - Successful comr.:letion
X'04' - DCE not open
Ar9dress of element chain to be tposted
sef! address
Becalled header address
Destination ceE address
1nr.:ut parameter list address
TeA!'" rislJatcner base address
Entrv f:cint address

Diagnostic Aids

1133

IEDQEZ

1

2
3

I
T

T

w.
4

J

5
E

]j

7
8

10
11

12
13

W

W
W
W
I
I
I

TFlJOCA01 0

o

1

T

2
7
12
13

W

o
·tol
"W

I

o

15

TFDCClI02 )
1

I

o
o

14
15

I ":'DOC'F

I
I

r

IEDCCF

o

2
3

w

4

w

5
E

w

..,

12
13
14

15

TFTJQCG

IFDQCG

1

5
6
7
8
9
10
12

13
·14

15

l:EDOCE

w

W
I
T
I

o
I

w
w
w

w
w
w

w
w
W
J
I

I

o
T

o
2

w

4

w
w

5

1-134

w

o
2
4

!!DQCF

w

6

w

10
12

w
w

Address of the buffer, LCB or ERE
'OCt' address

SCE address
~ddress of the buffer td write
LC.'P a Pdress
Numher of units te write for this b~ffer
Current buffer address
OCT-l aodress
Numter of writes that can be issued
T)C'S address
~CAM Dispatcher address
~ntry ~cint address·
Callinq routine save area address
Entry code
AV'I' address
Operater Control AV! address
O~erater Centrel AVT address
T"ork reqister
Routine base reqister
Save area address
Op~rater Control save area 'address
Entry peint address
Entry code
Operator Contrel AV'I' address
Feturn address
!ntry ~eint a~dress
Operator contrel AVT address
Address of apprepriate res~onse messaqe
Operator Contrel AVT address
~nput buffer address or CIB address
AVT address
Cptien address
'I'ermname Table address
Terminal entry address
Poutine base reqister
Callin~ routine save area address
Feturn address
Entry peint address
Peturn code:
X'OO' - Successful cempletion
X'C4' - Unsuccessful cewpletion
C~erater Contrel AV'I' addr~ss
Address of appropriat~ response message
Cperator Centrel AVT address
AVT address
Termname Table address
'I'erminal entry address
CCE address
rCB address
tEB address
DCE address
Foutine base reqister
Callinq routiqe save area a~dress
Return address
Entry reint address
Feturn code:
x'on' - Suceessful completion
X'04' - Unsue~essful completion

Operater Centrel AVT address
Address of apprepriate response message
Operator Control AVT address
AV~ address
Term~ame Table address
~erminal entry address
OCE address
Foutine r.ase reqister

13
14
15

I
T
I

Callinq routine save area address
Pet urn address
Entry ~eint address
Return code:
X'CO' - Successful com~letion
X'C4' - Unsuccessful cempletion

I

Operator Control AVT address'
Address of a~prepriate response message
Operator Contrel AV~ address
Input tuffer address or ClE address
AV~ addre.ss
r:EE address
nCB address
lCB address
UC~ address
Routine base reqister
Callinq routine save area address
Beturn address
Entrv ~cint address
~eturn code:
X'OO' - Successful completion
X'C4' - Unsuccessful completion

o

IBDQCI

IEnocr

o

~
4

E

7
9
11
12
13
14
11;

l>l
l>l
W
W
W
W
T~

W
I
T
I

o

IFDCCJ

I

o
4

w
w

5
6

w
w

7

w

2

11
12
13
14
15

w
W

T
I
T.

o
r

:rrOCK

o
2
4

5

10
12
13
14
1~

w
w
w
w

W
I
I
I

o
I

o
2

12

W
l>l
W
W
W
W
W

13
14
15

I
I

4

5
7
B
q

T

o

Operator Control AV~ address
Address of a~prc~riate response messaqe
Operator Ccntrel AVT address
AV'f address
Termname Tatle address
~erwinal ent~y address
OCB address
rCB aadress
~outine tase reqister
Callinq routine save area address
Peturnaddress
Entry ~(int address
tl
lil
W
I

I.
lil
I
l>l

.0

TGC0010D IGCOC10D 0
CBntrv code=1)
1
2
4
7

11
12
13
TGC0010D TGCOC10r 0
(?ntrv code=2l
1

I

I, w,
W
W

l>l

o
W

1,0
1,0
!

2
3

W
W

5

!

E

W
W
I

12
14
IGC0010U TGCCC1CD 0
(Entrv Code=3)
1
5

12
14
15

IGC0010n IGC0010D 0
p'ntrv code=4)
1
2
3

5
E

..,

8

12
14
11:5

IGC0110D IGC0110D 2
(Entrv Code=1)
4

..,

11

12
14

r
I
I
W
I

o

I,W
I
W
W
l>l
W
W
lil
W
1:

o

RE'turn code
Return address from in~ernal subroutines
WRI~E return code
Volume counter
Record counter
Jt:'C1= address
~essaoe text address
lenqth of the roessage, block size
WorK area tuffer address
SYSPFINT or dat DCBs ad~ress
Routine base register; save area address
Return a'ddress
Scratch register
Entrv ~oint address
Scratch reqister
Return code:
.
X'OC' - Successful eom~letion
~'04' - I/O error on SYSPRINT
X'OS' - KEYLEN omitted or invalid
X'OC' - I/O error on IEDQDATA
Xt 1C' - Illeqal SPACE ~arameters
X'14' - Unable to open
Entrv Code
Operator control AVT address; work register
Operator control AV! address
Avrr address
Cperator control save area address
Entr, code
Routine tase reqister
Save area address
Entr, code
Operator control AVT address
Operater centrel AVT address
eIE address
Return address
Ceml=are register
Reutine base register
Return address
Entrv Code
control AV! address
Return address
Routine base register
Return reqister
Return code
X'CO' No errors detected
X'02' Errors detected
O~erator

Entrv code; work register
Operator centrol AVT address
Operator control AV! address
CIB a"dress
Scan ~ointer
WorK reqister
WorK reqister
Puffer address
Rcutine base reqister
~eturn address
length scanned
Cperator control AV! address
AV'J' address
EuffEr address
Entry code
poutine tase register
Return addres~

Diagnostic Aids

1151

'IGC0110T) IGC0110D 0
(Pnt'ty cooe=2)
1
2
5
6
7
9

11
13
14
15

W
W

I
W
W

I
W

I
Vl

T,W
I
C

-rGC0110D IGC011Cn 0
(Pntry coo e= 3)
1
2
3
S
6
7
q

11
12
14
TGC0110T) IGC0110D 2
(t:'ntry code=4)
3

0
0
I
W
W

W
I,W
w
T,O
W
J
I
l<1

4

W

S

l-l
W

f.

7
9

I,W

11
12
13
14

1,0

IGC0210D IGCC210D 2
4
(Entry code=1)

I,W
W

5
7
9

11
12
IGC0210D IGCC210D 0
(Entry co de= 2)
1
2
5
9

11
12
14
15
IGC0310D IGCO::1dD 1
(Entry code=1)
2
4
7

W

W

I
I,W

W
W

W
1,0
W

0
C

I,W
W
W

1,0
W

I,W,O
I
I,W
1,0
1,0.

W

11
12

1,0

1GC0310D IGC0310D 1
('t:~ntry code=2)
2
3
4

W
T,O
I

6
7

11
12
15
j

152

W

1,0
W

W
1,0
t07

W

[t'lodule address
Module index
Operator control AVT address
Index reqister
lenqth·of the entry
Buffer address
Pointer to the verI:: taI::le
Entry code
Save area address
Return address; EAt return
Return code
Exit address
Parameter address
Parameter address
Operator centrol AVT address
CIE address
Inde:x reqister
lenqth of the entry
BuffeT; address
Pointer to the verI:: tatle
Fntry code
Routine base reqister
Return address
Operater control A-VT address
CIE aadress
AV'! address
IndEx recister
lenqth of the entry
BuffEr address
Pointer to the verI:: tatle
Entry code
Routine base register
Save area address
Return addre~s; EAl return
Operator centrol AV'I address
AVT address
EAl (link) address
TCE address
Branch and link return address
Entry code
Routine base reqister
Entry code
Operator control AVT address
Operator centrel AVT address
EAl (link) address
Optien 'Iable address
Entry cod·e
Routine base reqister
Retu·rn address
lenqth of the field
Address of themessaqe
Operator centrel AVT address
AV'I address
·Work reqister
Entry code
Routine base reqister
Parameter for DEIE'IE, W'rO, AQCTL
Operator centrol AVT address
CIE address
AV'I address
Werk reqister
Work reqister
Entry code
'Routine base reqister
Save area address
~

IGC0310D
(~ntry

TGC0410D
('~ntry

IGC0310D 1

code:3)

4

I,O
W

11
12

W

1

I,O
W

4

1,0

5

I
W

6
8
9

'W
'W
'W

10

W

11

1,0

12
14

W
I
W

4
11

IGC041CD C

(,!'.'ntry cone=3)

IGC0510D

TGC102

W

2
3

T,O

4

1,0

6
7

'W

e

W

to1

10

W
W

11

1,0

12

~

W

1

w

3

I
W

4

T,O

5

W

E

W

7

8
9
10

W
W
W
W

11

o

12
15

T

1

'W

13

I
W
W
W

14
15

o

11

IG~0004G

T,O

w

10

IGC1303D

1,0
1,0

1

IGC0510D 0

TGC102

o
o

3

12
T~C0410D

I,O

2

JGCQ410D 2

(Entry cone=2)

1,0 .
1,0

7

IGC0410r 0

cone:1)

TGC0410D

2

I

Address of the message
Operater centrol AVT address
AV1 address.
.
Work address
Entr" code
Boutine base reqister
Fntrl code
Operatcr centrol AVT address
Cperator centrel AVT address
Scan ~einter
AVT address
Betuln address
Sean offset
Work reqister
Buffer address
Prefix address
lo1crk req ister
'Fntr" code
"Reutine tase reqister
"Return address
EAI address
Operator control AV~ aaaress
AV'!' address
Fntr" cede
Boutine base reqister
Wcrk reqister
Termname entry lenqth; SCB address
Operator centrol AVT address
Scan ~einter
AVT address
~errrr.ame tatle address
ICE address
Pointer to prefix
Work reqister
Entrv code
~outine tase register
work reqister
Werk reqister, ~arameter
Buffer address
ICP a~ar~ss; prefix address
AVT address
~"RP. address
Keylenqth
Numrer of units in the tuffer
Prefix addres3
Address of the message; length of the· message
Wcrk reqister
Entr" code
~eutine tase,reqister
Entr" ~oint address
paraIDeter list address
IEACf101 address; Corepletion code
Complement of the ECE address
TJIt forihe ECE to te tposted in the le~-crder
sixteen tits
Beturn address
Return code:
X'OO' - SuccEssful com~letion
X'04' - No active TCAM MCP in the system
In~~t

IGC1303r 2
14

I

J

Extended saVE area address
Return address

IGEOOC4G 1
3

I
W

12 Star address
nCE address

Diagnostic Aids

1153

4

IGF0104G

IG~C104G

W

11
12
13
14
15

W

TGEO~04G

TGE0404G

W
W
W
W

W

W
I

I
W
W
W

IGE0304G 1
3
4
5
E
11
13
14
15

I
W
W

!G'F0404G 1
2
3
4

TGEC5C4G 1
.3
4
5

I

w

w
W
W
W
T

I

W
W

·w
W
W
W

W
W
I
I
W

W
W
W

11

w

13
14

W
W

15

I

TGE0604G 1
3
4
5

I

6

11
13
14
15
IG~CeC4G

1
13
14
1'3

1154

W
W

IGE0204G 1
3
4
13
15

2

TGEOB04G

I

6

11
13
14
15

TGF0604G

W
I

5
6

TGt0504G

w
w·

1
3
4
5
10
11
13
14
15

TGE0204G

W

~O

W
W
W
W
W

W
liT

I

T

W
W
T

lCB address
CCW address
AVT tase reqister.
SCE address
linkaoe for next rocdule load
lCTt reqister
Ease reqister
12 star 3.ddress
UCB address
tCE address
SCE ad·dress
ccw address
DCP address
AVT 1::ase req"ister
tinkaqe for next mcdule load
XC'!t reqister
Base reqister
12 Star address
UCB address
lCE address
linkaqe. for next mcdule load
Eas~ reqister
12 star address
UCB address
ICE address
SCE address
CCto' address
AVT tase reqister
linkaqe for next mcdule load
XCT1 reqister
Ease reqister
12 star address
SCB address
UCE address
lCE address
tCB a~dress
CCll address
AVT tase reqister
linkaqe for next mcdule load
XCT1 reqister
Ease reqister
12 star address
lCE l:ase reqister
ueE address
VCE address
CCW 1::ase reqister
AVrr l::ase register
linkaqe for next mcdule load
XCTI reqister
Ease reqister
12 Star address
UCE address
ICE address
SCE address
ccw address
AV'1' tase reqister
linkaqe for next mcdule load
XCT! register
Ease reqister
12 Star address'
linkaqe for next mcdule load
XCT! reqist~r
Base reqister

"'fGE0904G

iGBOOO4H

1GB0104Q

IG~0904G

IG~OOO4H

IG~0104H

1.
2
12
13
15
1
2
3
4
5
11
12
13
14
15
1
2

IGE0504l-l

IGG019QO

W

W
W
W
W
W

w
W

r
I

W

TGF02C4H 1
2
4
5
10
11
13
14
15
IG"?0404H 1
2
3
4
5
11
13
14
1:
IGEC5CuP 1
2

iG~OeC4H

I

5

3

TGB0804H

l'

4
11
13
14
15

:rGB0404H

W
W

W
W
W

3

IGE0204H

1

W

W

W
W

I
I
W

W
W
W

W

w
W

I
I
W
W
W

w
l7ork reqister
Base reqister
Work reqister
ros return address
worl< register

IGr;01 Q RO
IG~010~ry

-

see IGGC19PE
'QEUS

0

1
2
3

,W
1
W
W

4

w

5

W

6
7
8
9

W
W

10
11

w
W
~

W
0

12

I
0

13
14
15

I
W
I
0

'!'GG019Pl?

CCpy

1

W
I

2
3

W
W

4

W

C

~

W

E

w

7
9

W

'0
11
12
13
14
15
IGG019RQ

IGGC19FQ 0
1
2
3
4
9
10
11
12
13
14
15'

IGG019RO

IGG019F.0 2
4
6

12
13
14

IGG019R1

W
W
11
0

I
0
1,0

W
I
0

W
I
1
1
'1
I
I
W
I
W
1
1
I
I
0
0
0
0

IGGO('l9R 1 1

I

4
7

0
0
0

10

'~crk reqister
Work reqister
Work reqister
SCE'address
ICE address
Termname Table entry address
Euffer address
OCE address
Wcrk reqister
Unit work area address
DCE address
CPE address
'IClIM Dist:atcher address
Foutine base register
Address of IEDQ!A+2
CallinQ routine save area address
Work reqister
Entry f:cint address
Al:1dress of IIDQPA02

Work reqister
Ad dre ss cf the first unit of the buffer
to be copied
Work reqister
SCE address
ICE address
~ermr.ame 'Iable en try add re s s
Euffer address
QCP address
Unit work area base address
DCE address
CPE address
Dispatcher address
Routine base register
Address of IEDOFA+2
Callinq toutine save area address
Work reqister
E~trv t:cint address
A'ddress of IEDO'FA02
Work reqister
Parameter register
DEB i::ase regist~r
CVT tase register
'rCE address
AVT address
PrOCESS entry work area address
Work reqister
Routine base register
Work register
Return aderess
CVT address
ICE address
DCB address
Prefix address
1nterrup:ted cew addresli
AVT address
SCE address

LCE address or
LCB address
OCE address
teB address

oeB

address

Diagnostic Aids

1161

IGG019R2

IGG019R2 1
2

6
8
9

I
I
W

1,0
~,O

10
11
12

W.
W
W

13
" LI

I
I

15

I

W

IGG019R3

IGG019R3 q
4

10
IGG019R4

IGG019R5

IGG019R6

I

tCB address
tCB' address
tCB address

o
o
I

4
7

o
o

Buffer address,tCB address,or QCE address
tCB address
QCB address

IGGC19R5 3
6

o
o

7

I

9
113

I

DEE
tCB
UCB
tCB
AVT

IGG019R4 1

IGG019R6 1
2
3
4

5
6
7

I
W
W

W
W

W
W
W

10

W
W
I
I

12
13
15
IGG01~3C

o

8
9
11

IGG01930

W'

0
1

2
3
4

5
6
7

W

I

w

w
w
W

W
I
I
I

o
8

I

o
9

10
11
12
13
14
15

1162

.'2 star address
lOB address
Temporary AV~ base address
lOS register
lOS register
AVT .address
CPB Cleanup QCE addres: CPB address
Base regi~ter ECE address;
Temporary storage of the T,C.Paddress during
the OS Post
Calling routine save area address
R-eturn address
Wo'rk register
Entry Feint address.
Work register

W
W
W
I

W
W
W

address
address
address
address
address

ICB address
lOB address from the DCE
lOB addres~ iri the tCB
Termcame'Tabie address
length of the ter_inal n.~,me
Ter.inal,name address'
Terminal entr, address
QCB address
tCB address
DCB/SCB address
TCA! Dispatcher'address
Routine base register
Calling ·routine save area addre~s
Entry point address
Work register
Work register
Current DCB a·ddress,
TICT add,ress
DCB vork area address
Address of ~he first entry in the DCB paraaeter
list
.
Address of the Where-to-Go Table
Address of the current entry in the DCE
parameter list
Up~ated to the next entry in the DCB parameter
'list
Address of the current entry in the Where-to-Go
Tal:le
Updated to the next entry in the Where-to-Go
Tal::le
AV~ address
Current UCB addr~s~
DEB address
Routine base register
Work register
Work register
Work register

IGG01931

IGGC1931 0
1
2
3
4
5

W
W
W
W
W
I

6
7

I
I

o
8

I

o
9

12
13
14
15

W
W
W
I
W
W
W

IGG01933 0
1

o
o

2
4
5

I
W
I
I

6
7

I
I

10
11

IGG01933

3

o

8

I

o
9

10
11
12
13
14
15

IGG01934

IGG01S34 0
1

I
W
I
I

liI
W
I

w

2
3
4
5

W
I
I
I
I

6
7

I
I

o
8

I

o

Work reqister
Work reqister
CurrentDCB address
Work register
DCB work.area address
Ad~ress of the fiist entry in the DCB
parameter ·list
Address of the Where-to-Go Table
Address of the current entry in the DCE
parameter list
Updated to the next entry in the DCB
parameter list
Address of tbe current entry in the
Where-to-Go Table
Updated to the next entry in the Where-to-Go
TcH:le
AVT address
Work register
Work register
Routine base register
Work reqister
Work register
Work register
Error code to user-specified error routine
Opticn code to user-specified error routine
Address of the current DCB
W.ork reqister
Aadress of the DCB Open Work Area
Address of the first entry in the
DCE ~arameter list
Address of theWhere-to-Go Table
Address of the current entry in the
tCB {arameter list
If reqister 15 = 0, updated to the next entry in the
DCB parameter list
If reqister 15 = 1, the address of th~ DCB parameter
list·entry for the module that d~tected the error
If register 15 is greater thin 1, destroyed
Address of the current entry in the
Where-to-Go Table
If reqister 15 = 0, updated to the next entry
in the Where-to-Go Table
AVT address
liIork register
Address of tbe current DEB
Routine base address
Work register
Work reqister
Return Code:
X'OO' - Ignore the data set in error
X'01' - Continue processing with the
error causing limited capabilities
X'02 - AB!Nt the TCAM job
Work reqis·ter
Work register
Current DCB address
Routine base register
DCB work area address
Address of the first entry in the DCB
parameter list
Address of the Where-to-Go Table
Address of the current entry in the DCB parameter
list
Updated totbe next entry in the DCE parameter
list
Address of the current entry in the Where-to-Go
Ta1:le
Updated to the next entry in the Where-to-Go
~able

Diagnostic Aids

1163

9

10
11
12

13
14
15
TGG01935

I
I
I
I
~

W
~

IGGC1935 0

w

1
2
3
4
5

W
W
W

6
7

w

~

I
I

o

e

I

o
9

10
11

W
W
W

12

I

13

W
W
W

14

15
IGG01936

IGGC1936 0
1
2
3

4
5
6

7

W
W
I
I

1
I
I
I

o

e

I

6
9

IGG01937

!

10

o

11
12
13
14

I
I

15

~

W
W

IGG01937 0

W

1

W
I
I
I
I
I
I

2
3

4

5
6
7

o
I

9

10
111
12.

13

1164

C
I
I
I
I
W

AVT address
Current UCB address
DEB address
TIO'! address
Work register
Work register
Work register
Work register
Work register
Current DCB address
'IIO'! address
DCB work area address
teB parameter list address
~here-to-Go Tatle address
Address of the current entry
pa ra meter lis:t
Updated to the next entry in
DCB ~arameter list
Address of the current entry
Where-to-Go table
Updated to the next entry in
Where-to-Go Table
AVT address
Current ueE address
DEB address
Routine base register
Work register
Work register
Work register

in the DCE
the
in the
the

Work register
Work register
Address of·the current rCB
TrOT address
Address of the DeB work area
rCB ~arameter list address
Where-to-Go Table address
Address of the current entry in the DeB parameter
list
Updated to the next entry in the DeB parameter
list
Address of the current entry in the Where-to-Go
Table
Updated to the next entry in the Where-to-Gc
Table
AV'I address
Total number of cews required for each device
DEB address
Routine base register
Work register
Work register
Work register
Work register
Work register
Address of the current rCB
TIOT Address
Address of the DCB work area
rCB parameter list. address
Where-to-Go Table address
Address of the current entry
list
Updated to the next entry in
Address of the current entry
table
Updated to the next entry in
AVT address
Address of the current UCB
DlE address
Routine base register
Work register

in the DeB parameter
the DeB parameter list
in the Where~to-Go
the Where-to-Go Table

W

15

w

work register
Work register

IGGC1938 0
1

W
W

Work register
Work register
Address of the current DeB
Work register
Address of the tCB wcrk area
tCB parameter list address
Where-to-Go !atle address
Address of the current entry "in the DCE ~arameter
list
Updated to the next current entry in the DeE
parameter list
Address of the current entry in the Where-to-Go
Table
Updated for the next entry in the Where-to-Go
Tatle
AV! address
Work register
Work register
Rout.ine base register
Wcrk register
lolorl< register
Work register

14

IGG01938

2

I

3

w

4

I
I
I
I

5
6

7

0

8

!
0

9
10
11
12
13
14
.15
IGG01939,

IGG01939 0
1
2
3

4
5

I
W
W
I

W
W
W
W

W
I
W

E

I
I
I

7

I
0

8

I

0

9
10
11
12
13
14
15

TGG01940

TGGC1C:;4C

a
1

2
3
4

I
W
W

I
W
W
W

w
W
I
W
I

5

I

6.

I

7

I
0

8

I

0

9
10
11

12
13
14
15

I
W
W
I
W
W
W

Worl< register
Wcrl< register
Address of the curr~nt DCB
Work reqister
Address of the DCB wcrk area
DCB parallleter list address
Where-to-Go ~atle address
Address of the c~rrent entry
parameter list
Updated to the next entry in
list
Address of the current entry
Tatle
Updated to the next entry in
Where-to-Go ~able
AVT address
Work reqister
Work register
Rout in e base y;egister
Work reqister
Work reqister
Work register
Work reqister
Wcrk register
Address of the current DCB
Worle' register
Address of the DCPwcrk area
DCB l=arameter list address
Where-to-Go ~atle address
Address of the current entry
parallleter list
Updated to the next entry in
list
Address of the current entry
'l'atle
Updated to the next entry in
Where-to-Go ~able
AVT address
Work reqister
Worl< register
Routine base register
Work register
Worl< register
Work register

in the DCE·
the DCB parameter
in the Where-to-Go
the

in the DeB
the DCB parameter
l

in""" the Where-to-Go
the

Diagnostic Aids

1165

IGG01941

TGGC1<':41 2

0

5

T

E

I

7

I
0

8

T'
0

12
TGG01Q42

T.GGC1~42

I

2

I

5

T

E

I
I

7

0

8

T

0

TGG01Q43

12

T

IGG C1943 2

I
T

5
E

7

I
I
0

8

I

0

'!GG01944

12

I

IGG01944 2
5

I
I

6
7

I
I
0

8

I

0

TGG01945

12

I

TGG0194!: 2
5

I
I

E

I

7

1:
0

8

I
0

Check}:,oint wcrk area address
Address of the first entry in the DCB parameter
list
Address of the Where-tc-Go Table
Aadress of the current entry in the DCB
parameter list
Updated to the next entry in the DCE parameter
list
Address of the current entry in the Where-'Io-Go
Tatle
Updated to the next entry in the Where-'Id-Gc
Table
Base reqister
Chec]q:oi nt wcrk area address
Address of the first entry in the DCB parameter
list
Address of the Where-to-Go Table
Address cf the current entry in the CCE
pararoeter list
Updated to the next entry in the DCB parameter
list
Address of the current e.nt.ry in the Whei':e-tc-Go
Table
Updated to the next entry in the Where-to-Go
Table
Ease reqister

Checkpcint wcrk area address
Address of the first entry in the DCB }:arameter
list
Address of the ~here-tc-Go Table
Address of the current entry in the DCB
parameter list
Updated to the next entry in the DCB parameter
list
Address of tee current entry in the Where-to-Go
'fable
Updated to the next entry in the Where-to--Gc
Table
Pase reqister
ChecKP0int wcrk area address
Address cf the first .entry in the DCB I=arameter
list
Address of the Where-tc-Go Table
Address of the current entry in the D<;B
parameter list
Updated to the next entry in the DCE }:arameter
list
Address of the current entry in the Where-to-Go
Ta1:le
Updated to the next entry in the Where-to-Go
Table
Ease reqister
Check}:cint
Address of
list
Address of
Address cf
list
Updated to
list
Address ef
Table
Upaated to

werk area address
the first entry in the DCB parameter
the Where-to-Go Table
the current entry in the DCE }:arametel
the next entry in the DCE parameter
the current entry in the Where-to-Go
the next entry in the Where-to-Go

~atle

12

1166

I

Base reqister

TGGO'194f

TGG0194E 5

I

E
7

I

I
0

8

I
0

"TGG0194"1

IGG01941 5

I

6
7

I
I
0

8

I
0

TGG01QU8

IGGC1~4f

0
1
2
3

'\ij
{.l

I)

I
W
J
I

6
7

I
I

4

0

8

I
0

q

10
11
12
13
14
15
TGG0194 Q

I~G01949

2

5
fi

7

I
W
W

I
W

W
W
I
I
I
I

0

8

J

0

IGG02030

IGG02C30 0
1

2

W
W
I

3

I

4

!

5

I

6

I

Address of the
list
Address of the
Address of the
parameter list
Updated to tbe
list
Address of the
Tarle
Updated to tbe
Table
Address of tbe
list
Address of tbe
Address of tbe
parameter list
Updated to the
list
Address of the
TatlE
Updated to the
Tarle
Work reqister
Work reQister
Address cf tbe
Work reqister
Address of the
Address of the
list
Address of tbe
Adaress of the
parameter list
Updated to the
list
Address cf the
list
UpdatE?d to tbe
Table
AVT aadress

first entry in the DCE ,:arameter
Where-to-Go Table
current entry in the tCE
next entry in the DCB parameter
current entry in the Wbere-to-Go
next entry in the Where-to-Gc
first entry in the DCB parameter
Where-to-Go Table
current entry in the DCE
next entry in the DCB parameter
current entry in the Wbere-to-Go
next entry in t.he Where-to-Go

current DCB
DCE wcrk area
first entry in the DCB

~arameter

Wbere-to-Go Table
current entry in the DCB
next entry in the DCP parameter
current entry in the Where-to-Go
next entry in the Where-to-Gc

Work reqister
Work reqister
Routine rase reqister
Work reqister
Work reQister
Work reqister
Chec}q: c i nt werk area address
Address cf tbe first entry in the DCE
pararreter list
lolbere-t o-G c 'Tatle address
Address of the current entry in the DCE
paraflleter list
Updated to the next entry in the
tCE parameter list
Adaress of the current entry in the
Where-tc-Go 'Table
Upoated to the next entry in the
Where-tc-Go ira~le
Work reqister
Wcrk reqister
Current DC!? address
'IIC'I address
DeB work area address
Address of the first entry in the DCB parameter
list
Address of the llhere-tc-Go Table

Diagnostic Aids

1167

1

1
0

8

!

0

9

10
11
12
13
14
15
TGG02035

IGG02035 0
1
2
3
4

T
J
!
I

W:
W
W

W

w

I
I
1

5

r

6
7

T

I
0

8

I
0

IGG02036

~

T

10
11
12
13
14
1'5

I
I

,

IGG02C3E 0
2
3
4
5
6

1

r
r

W
W

W
W
!

I
I
I
1
I
0

8

1
0

9

TGG02041

1168

I

10
11
12
13
14

1.
!

15

W

W
W
'W

IGG02041 5

!

2

I

6
7

I

r

Address of the current entry
list
Updated to the next entry in
list
Address of the current entry
Table
Updated to the next entry in
Tal:le
AVrr: aadre~s
current UCl? address
DEB address
Routine l:ase reqister
W-ork register
Work register
Work register

in the DCE y:::arameter
the DCB parameter
in the Where-tc-Go
the Where-to-Gc

Work register
Wcrk reqister
DeE l:ase register
'ICB tase register
Termrame Table entry DSECT base
Address of the first entry in the DCB ~arameter
list
Address of the Where-tc-Go Table
Address of the current entry in the DCB parameter
list
Updated to the next entry in the DCB parameter
list
Address of the current entry in the Where-to-Go
'Tal::le
Updated to the next entry in the Where-to-Gc
Tatle
AVT tase address
'Iermname table l::ase address
DEE tase address
Routine l:ase address
PCE CSECT base register
Work register
Work register
Work register
Work register
Current DCB address
TIOT address
DCP wcrk area address
Address of the first entry in the DCE ~arameter
list
Address of the Where-to-Go Table
Address cf the current entry in the DeE parameter
list
Tlpdated to the next entry in the DCE y:::arameter
list
T\rldress cf the current entry in the Where-tc-Gc
Table
Updated to the next entry in the Where-to-Gc
Ta 1:1 e
AV'T address
Cu'rrent UCE address
Routine l:a se address
Work reqister
Work register
Work register
work register
Address cf the first entry in the DeB ~arameter
list
Checkpoint work area address
Address cf the Where-to-Go Table
Address of the current entry in the DCE
parameter list

c
8

!
C

TGG02046

12

I

IGG02C4E 5

I

E

I

7

I

0

8

I
0

IGG02047

IGG02C47 3
4

W
W

5

1,0

E

1,0

TN

W
7

I

0
8

I

0
9

W

10
12
13

W
I

W

Upaated to the next entry in the DCP l=arameter
list
Aodress of the current entry in the Where-to-Go
Tatle
Updated to the next entry in the T,Jhere-to-Gc
'Iat1e
Base reqister
Address of the
list
Address of the
Address of the
parameter list
Updated to the
list
Address of the
Table
Updated to the
Tatle

first entry in the DCB ,{:arameter
Where-to-Go Table
current entry in the DCE
next entrv in the DCB parameter
current entry in the Where-tc-Go
next entry in the Where-to-Gc

DCE address
DEE address
Address cf the first entry in the DCB parameter
list
'ICB aadress
Address of the system Where-to-Gc
Table
.
ICB aadress
Andress of the current entry in the tCE
parameter list
Address of the next entry in the DCB parameter
list
Address cf the current entry in the system
Where-to-Gc Table
Address of the next entry in the systeni
Where-to-Go Table
SCB address
AVT address
Base reqister
Open/close work area address

Diagnostic Aids

1169

~p~~~nTX

A:

LIST

O~

TCAM MODULES BY LIBFAFY

identifies the modules that ccmprise TeAM. The modules
by the: libraries in which the modules reside.
The
modules in each litrary are in alphabetical order by name. For those
modules that represent macro instruction implementinq routiries, the
mnemonic operation code for the macro is included in parentheses.
~his

appen~ix

~re

orqanize~

All resinent TCAM modules are in SYS1.~ELCMtIB. Transient modules
in SYS1.1INKLIB, and all Open, Close, Get, and Put modules are
in SYS1.SVCLJP. The system nucleus modules are in SYS1.NUCLEUS~ The
~CAM mo~ule IlDOTNT
is. not stored in a library~ rather, it is
assembled as ~art of the Terrnname Table~
TCAM macros are in

resi~e

SYS1.~ACLIB.

Modify Options

~cutine

I'E'DOCG

COpy Line Information Poutine

T'EDOCB

Copy Terminal Information Routine

T ~nOCT

Copy ICB Informaticn Boutine
Copy OCB Information Foutine

Il:'DOCK

Copy Held Terminals Routine

T~DOCL

Copy Invitation List Entry Routine

T'F'T)OCM.

Co~y

Operator Centrol

Chanqe control

~erminal ~outine

~erminal

Routine

T'RDOCO

Chanqe Terminal Routine

I"PDOC'P

Alter

T ~l)OCO

Stop/Pesurne Terminal Transmissicn Routine

T

"EDOCU

~race

status ?outine

Start line Routine

I'EDOCV

Stop Line Routine

~FT)OCW

Modify Poll

T1:'DOCX

M.odify Intense Routine

T'F~OC7

Chanqe Interval Type Bcutine

TBDOCf)

~C~

~outine

Closed own Processinq Routine
APFendix A List of TeAM Modules by Library

1171

I'PDOC1

ICHNG Processinq

T'BDOC2

On~Line

IEDOC3

CopvInvitation list status Routine

T.EDOC5

Nonexecutable Work

I~DOCE

DetuQService Aid Router

T1?DO~6

Password Scramble ?outine

TEDOHI

SYstem Delav Routine

TEl)ONA2

Nonresident Closedown Completicn Foutine

IEDOl-.TB

Application Proqram/Cbeckpoint Interface Routine

IEDOl-tD

Feadv Boutine

~outine

Test lriterface Routine

Ar~a

for Operator Control

(~EADn

Checkpoint Executor
TBDONG

Build Incident Becord for MH Routine

'T"8DONH

Build Incident Becord for TCHNG Routine

T~DONJ

Incident Checkpoint for Operator Control Routine

TE1)O~!K

Pnvironment Checkpoint Routine

TEDONM

Puild CKREQ Disk Pecord Boutine

rEDONO

Checkpoint Queue Manaqer

T~DO~P

Checkpoint Disk I/O Routine

r"pnol-tQ

Check~oint

"!" FnO't\1R

Checkpcint - No Availatle Core Routine

,.'EDO~S

Checkpoint - No Incident Records Routine

T~DONX

Ooerator Awareness Messaqe Router

T"DOOA

link Poutine

T~~OO-e

WTOB Interpreter Routine

T 'J';IT)OOG

INTRC

T"DOOM

Termname Table Sort Routine

T~DOOS

Attach Routine

I~DOYA

~isk

1172

Notification and Disposition Foutine

GE~MAIN

Routine

Messaqe Cueue Initializer

ATTEN

Activates the TSO/TCAM attention processinq routine

CANC~I~G

CancEls

CA'P?TAGE

Processes characters that move the carriaqe

CHFCKPT

Takes an Incident Checkpoint record of the
option fields
Mo~ifies

m~ssaqes

an invitation list

CHNGT

Places specified data in a Terminal Table entry

CKPEO

Checkpoints the MCP

CIOS'Ef>'lC

Closes down the telecommunicaticns system

conE

Translates the data in the buffer currently beinq
handled

ropyo

Examines the contents of an invitation list

COPYO

Examines the contents of a QCB

COpy"!'

Examines the contents of a Terminal Table entry

COUN'rER

Maintains a count of complete messaqes or of messaqe
seqments received from cr sent to a terminal
Specifies the maximum allowable incominq messaqe
lenqth
Inserts. the date and time in an incominq or outqcinq
messaqe header

li'RFORMSG

Sends an error messaqe when an error occurs

,..onWARD

Queues messaqes for specified destinations

PANGUP

Checks for I/O errors

flOIl)

Sus~€nds

TCHNG

Modifies an invitation list

TCOPY

F~amines

TEnOCHA~

Internal assembly macro to check character strinqs

T'EDOCHT

Internal assem~lv macro to determine device
characteristics·

transmission to a terminal

the contents of an invitation list

ApFendix A List of TeAM Modules by Library

1173

T'EDOCKO

Internal assembly macro to perform validity checkinq
on terminal operands
Internal assembly macro for the FE serviceability
modules

. TEDOGCH

Internal assembly macro to qenerate device dependent
fields for a terminal entry

TEDOMASK

Internal

T~DOSCAN

Internal assembly macro to search for a character
strinq

as~embly

macrc to analyze mask

operand~

Internal assembly macro to qenerate the option fields
specified hy a TERMINAL macro
T"EDO~O

Internal assembly macro to qenerate QCEs
Tnternal assembly macro to qenerate a Termname
Ta1::le entry

T

3DOVCON

Tnternal assembly macro to provide proper branchinq
addresses for all the macros
Identifies a sucqroup that handles incominq messaqe
huffers

T"TEN D

Identifies the end of the MH inccminq qroup

TNHD~

Identifies the heqinninq of an inheader suhqroup

T\JITTAT~

Sends IDessaqe seqments immediately to their
destination

TNMsr;

Identifies the beqinninq of an MH inmessaqe subqroup
Creates the AVT
Generates the invitation list for a line

TNVLTST1

Internal assembly macro to qenerate an invitation list

TNVLIST2

Internal assembly macro to qenerate an invitation list

INVITST3

Internal assembly macro to qenerate an invitation list

l.-rNEGPP

TSC MCF oeneration macro
TSO MCF qeneration macro

Locks one terminal on a line to an application
proqrarr

1174

GOCOPT

Locates a field in the Option Table

LOG

Loqs ccmplete messaqes or messaqe seqments

10GON

Performs loqon procedures

lOGTYP~

Initializes fori usinq the TCAM lcqqinq facility

MCPCIOSE

Initiates closedown of the teleccmmunications system

M~ELB~SE

Releases messaqes queued for a destination

MSGEnTT

Inserts specified characters into specific locations
in a messaqe

MSGFORM

Inserts EOT line control characters in outqoinq
messaqes

MSGG~N

Generates an unqueued messaqe

MSGLIMIT

Limits, the number of messaqes durinq a sinqle
transmission sequence

MSGTYP!.

controls the path of a header throuqh an MH

OPTION

Defines the Option Table

O~IGTN

Checks the validity of the oriqin field in a messaqe
header

OUTBUF

Identifies a sribqroup that handles outgoinq message
buffers

OUTEND

Identifies the end of any MH outgoinq

OUTHDR

Jdentifies the beqinninq of an outheader

OUTMSG

Identifies the beqinninq of an ME outmessaqe subgroup

?ATH

Dvnamicallv varies the path of a messaqe throuqh an MH

PCB

qrcu~

subqrou~

Generates a Process Control Block in an MCP to
,interface with an application proqram

PFIO~ITY

Specifies priority

PFOCESS

Interfaces cetween the

OCOPY

Examines the contents of a QCB

OSTA~T

Differentiates between a QTAM and a TCAM application
proqram

handl~nq

MCP

for messages
and an application proqram

Initializes and activates the MCF

Appendix A List of TeAK Modules by Library

1175

Queues a messaqe for an additicnal destination
t)~LEASEM

Releases messaqes queued for a destination
Fetrieves a roessaqe for reprocessinq

~TATJTOP""

Pesumes automatic promptinq (after
a null line).

SCRE'F.N

Modifies the write operaticns for display terminals

SF.OU~NCE

Checks the input sequence number pf an incoming
messaqe
Indicates an EOF messaqe
Proves the scan pointer forward cr backward or returns
the address of the last character of a specific
character strinq

SGIBC3Tl?

Moves ETAM, Q!AM, and TeAM modules into
at system qeneration time

SGTEC5Tl?

Moves ETAM, OTAM, and TCAM modules into SYS1.LINKLIB w
SYS1.SVCLIB, and SYS1.TEtCMLIB at system qeneration time

SGI~C2?T

Generates UCBs at system qeneration time

SGIEC519

Moves the proper macros into SYS1.MACLIE at system
qeneration ti1l1e

STMA'r'T'N

Handles a simulated attention strinq or code

SYS1~SVCLIE

Stops automatic promptinq
Activates a line or line qrotrp
Establishes addressability for an MH routine
Sets UP a simulated attention strinq
or code, time or lines
STAUTOCP

starts automatic character prorrptinq
Starts automatic line numberinq

STBR~AK

Allows the user to specify the presence of the
reverse break feature

STCC

Allows the user to specify line and character
deletion characters

STCL~AP

S?ecifies the character strinq used to clear
the 2260 screen

1176

STCOM

Specifies whether to allow other TSO stations
to send the user messaqes

STOPIN

Deactivates a line or line qroup

STSI'lF

Specifies the lenqth of a line or the lenqth
of and the number of lines for a 2260

STTIMEOU

Specifies whether a 1050 has the timeout
sUppression feature

'T.'CHNG

Places specified data in a Terwinal Table entry

'T'CLEARQ

Allows the user to clear the
output queue.

TCO"Y

Examines the contents of a

'l'?RMiNAL

creates a sinqle cr qrcup entry in the Terminal Table

~sc

input or

~erminal

Table entry

Sets a bit in the Error Record
TGBT

Transfers a line of input from.a TSO terminal
to the user's data area.

TL,.ST

Defines a cascade-list olr distritution-list entry
in the Terminal Table

'rPROCESS

Interfaces between the MCP and an application proqram

~PUT

Transfers a line of output from the user's data
area to a !SO terminal

TPANLIST

Generates a control table for use by the Dynamic
Translation routine (I!DQA~

TSINl?UT

Generates a QCB for the TSO suttask and creates an
extension of the AVT for TSO sup~ort

TSOMCP

TSO MCF qeneration macro

TSO"1H

~SO

MCF qeneration macro

Defines the Terminal Table

UNLOCK

Removes a terminal from extended lock mode

1 EDOATTN

Attention Routine

TGC102

AOCTL sv.c 102 Routine

APFendix A List of TeAM

Module~

by Library

1171

~!..§j.

SV£1 IB

-

IGC1303D

TCAM Command Scheduler

IGCOO10D

Operator Control Control Module - Load 0

IGC0110D

Operatcr control Control Module - Load 1

TGC0210D

Operator control Control Module - Load 2

IGC0310D

Operator control Control Module

I~C0410D

Operator Cont rol Control Module - Load 4

TGC0510D

Operator Cont rol Control Mod ule

TGE0004G

start/Stop ERP Control Module

T.GE0104G

Read/Write Unit Check and Unit

IGE0204G

Non-operational Control unit Module

TGE0304G

Unit Check for Non-read, Non-write, and Non-poll
CCWs EFP Module

IGE0404G

Aute Poll and Pead Respcnse to Poll unit Check
and Unit Exception ERP Module

TGE0504G

Frror Post and Second Level CCW Return Module

TGE0604G

Unit Check and unit Exception on Read/Write CCWs for
Audic and 2260 Local Devices ERP Module

IGE0804G

Start/stop Channel Check Module

TGEOQ04G

Closedown Terminal statistics Recordinq Module

TGE0004fJ

ESC EFP control Module

IGE0104H

PSC Read/Write Equipment Check, lost Data, Intervention
Required, and Unit Exception ERP"Module

IGE0204H

BSC ~ead/Write Data Check, Overrun, and Command
Feiect EBP Module

TGE0404H

BSC Second Level CCW Return Module

IG'F.0504H

E~C

IGE0804H

ESC Channel Check ERP Module

IGG01900

Line I/O Interrupt Trace Routine

1178

SVC 34

-

Load 3

- Load

5

Exce~tien

Error Post Module

ERP Module

IGG019Q1

Local Receive Scheduler

TGG01902

Line End APpendaqe for ESC Lines

TGG 019Q3

Line End Appendaqe for start/stop Lines

IGG019Q4

I,ine End Appendaqe for Leased and Start/Stop
Lines and No TSO

IGG019Q5

Line End

IGG019Q6

Send Scheduler for teased
No TSQ

IGG019Q7

Send Scheduler with No TSO

IGGO 19Q8

Checkpoint continuation Restart

IGG019RA

Checkpoint Disk End Appendaqe

TGG019RB

TCAM Dispatcher

TGG019~C

EXCF Driver

TGG019-qn

Buffered Terminal Scheduler

IGG01QRF

EXCP Drive for a Sinqle CPB

IGG019RG

G~T/READ

IGG019FH

Get Compatible Routine

TGG-O 19RT

PUT/WRItE Routine

IGG019RJ

Put Compatible Routine

IGG019RK

Disk Fnd Appendaqe for a Sinqle CPB

TGGO 19RT..

Check Foutine

IGG019'RM

Point Routine (POINT)

IGG019B.N

PCI Appendaqe

IGG019RO

TC~~

IGG019RP

Reusability-CoPV Subtask

IGG019RO

PostPendinq Routine

IGG019R'R

IBM 1030. 1050, 1060, 2740, 2741 Special Characters
Ta1:::le

IGG019'RS

IBM 2260 Remote Special'Characters
Table
r

~ppendaqe

for a QTAM Ccmpatible System
Lines ana

Subroutine~

Foutine

(CHECK)

Dispatcher with Subtask Trace

Appendix A List of TCAM !odules by Library

1119

IGG019:PT

AT&T 115A or Western Union 83B3 Special Characters
'T'a1:le

TGG019RU

AT&T TWX, with Odd Parity Special Characters Table

IGG019'fnr

IBM 2260 Local Special Characters Table

TGG019~W

World Trade Teletvpe Adapter (WT!A) Special Characters
Table

IGG019RX

AT&T TWX, with Even Parity special Characters Table

"!"GG019RY

Audio SpeciaY Characters Table

IGG019~O

Line End Appendaqe

IGG019R1

Dial Receive Scheduler

IGG019R2

Disk End Appendaqe
Leased Receive Scheduler

IGG019R4

Send Scheduler

IGG019'R5

Attention Handler

IGG019R6

Startup Messaqe Fcutine

IGG019R7

ESC EBCDIC Code Special Characters Table

IGG019R8

ESC USASCII Code Special Characters Table

IGG019R9

BSC 6-bit Code Special Characters Table

TGG01930

Disk Messaqe Queues Ope'n - 1

IGG01931

Disk Messaqe Queues Open - 2

TGG01933

Open Error Handler

TGG01934

Disk Messaqe Queues Open

IGG01935

line Group Open

IGG01936

Line G.roup Open - 2

TGG01937

line Group Open

-

IGG01938

Line Group Open

-4

IGG01939

tine Group Open - 5

IGG01940

tine Grcup Open - E

IGG01941

Checkpcint Open Routine

1180

-1
3

-

3

IGG01942

Checkpoint Disk Initialization Routine

IGG01943

Checkpoint/Restart from Environment Record Routine

TGG01944

Checkpoint/Restart from Incident and CKREQ Records
Routine

IGG01945

Checkpoint continuation Restart Routine

IGG01Q46

GET/PU! and BEAD/WPITE Cpen Executor - 1

IGG0194'7

GET/PUT and READ/WRITE Open Executor -

IGG01948

Line Group Open - 7

IGG02030

Disk Messaqe Queues Close Routine

IGG02035

Line Group Close Routine -

1

IGG02036

Line Group Close Routine -

2

IGG020,41

Checkpoint Close Routine

TGG0204E

GET/PUT and PlAD/WRITE Close Executor - 1

IGG02047

GET/PU! and FEAD/WRITE Close Executor - 2

2

SYS1.TELCMLIB
TEDAYA

TSC Attention Routine

IEDAYC

TSO Carriaqe Subroutine

I'F,DAYD

Time Sharinq Destination Scheduler

TFDAYE

TSO TIec Edit Routine

T EDAYF

TSO IOHALT Routine

IEDOYH

TSO Hanqup Routine

IEDAYI

TSINPUT ~outine

TEDAYL

TSO loQon Routine

IEDAYM

TSO Messaqe Generation Routine

1EDAYO

TSOUTPUT Routine

IEDAYR

STARTMH Subtask for TCAM-TSO Mixed

IEDAYS

TSO Simu-lated A'ttention Routine

IEDAYT

TSO Abend Interface

~outine

Appendix A List

of

TeAM Modules by Library

1181

TEDAYX

TSC INMSG/OUTMSG Linker Routine

IEDAYY

TSO Asynchronous Time relay Removal Routine

TEDAYZ

Time Sharinq Scheduler

TEDOAA

STARTMH ,Subtask (STARTMHl

TElJOAC

Date and Time Provision Routine (tATETIMF}

IEDOAD

Output Sequence Number Provisicn Routine

IEDOAE

Locate Opt ion Field Address Routine (LOCOPT')

TEDOAP

Insert Data Poutine

IEDOAG

Messaqe Limit Routine

T FDO~H

Input Sequence Number Insertion Routine

rEDOAT

Skip Fcrward and Scan Routine

TEDOA')

Skip tc Character Set Routine

IEDOAK

Line Centrol Insertion Routine

TEDOAI

Address Finder Routine

IEDOAP.1

Oriqin Routine

IEDO~N

Multiple Insert/Remove Poutine

IEDOAO

Unit Fequest Interface Routine

rEDQAP

Remcve at Offset Routine

IEDOAQ

Operator control Interface Routine

IEDOAR

Cancel Messaqe Routine

IElJOAS

Hold/Release Terminal Routine

IEDOAT

Create an ErrcrMessaqe Routine

tEDOAU

Cutcff Messaqe Transmission Routine

IEDQAV

Lookup Terminal Entry Routine

IEDOAW

Translate

lEDQAX

Buffer Step Routine

IEDOAY

Screen Routine

IEDOAZ

Redirect a Messaqe Routine

1182

~uffer

Routine

T EDOAO

Skip Backward Routine

IEDOA1

Binary Search Routine

lFDOA2

Insert at Of£set Routine

TEDOr,,3

Dvnamic Translation Routine

I'EDOA4

Incominq/outqoinq Messaqe Delimiter Routine

IEDOA5

Forwara Routine

IEDOAE

Line control Initialization Routine

I~DOA7

counter Routine

TEDOA8

Multiple Insert at Offset Routine

IEDOBA

Multiple Poutinq Subtask

IEDOBB

Checkpoint Reque$t Routine

TEDOBC

Distritution List Subtask

IEDOBD

Buffer Disposi ti'on Subtask

I

'EDO'SE

lock Routine

IEDOBF

Unlock Routine

IEDQEG

Cascaae List Su-btask

IEDOBL

Messaqe Generation Routine (MSGGEN)

IEDOBT

EOE/E~E

TEDQBW

Unit Bequest Routine

Bandlinq subtask

EDOBX

Loq Seqment Routine

IBDOBY

Loq Messaq€ Routine

IEDOEZ

LOQ

IEDoeA

Resident Operator

TEDOEC

Put scl:eduler

IEDOES

Retrieve Service Routine

TEDO'ET

Operator Control/APplication Proqram Interface Routine

IEDOEU

OpentClose Subtask

IEDOEW

Get Scheduler

I

Scheduier
Contro~

Module,

Appendix A List of, TeAl! Modules by Library

11'83

IEDO~Z

Get

T~DO'E1

TCOPY Service Routine (TCOPYl

TEDOE2

QCOFY

Se~vice

~CHNG

Service Routine (TCHNGl

Sc~eduler

FIFO

~outine

Poutine (QCOPY)

I'P.DOE4

ICOPY Service Routine (IeOPY),

I EDOE7

Retrieve Scheduler

TEDO'F~

CPF Initialization Module

'T

~DOFA

1

CPB Initialization-Main storaqe Queuinq Only

TEDO'FA2

CPB Initialization-Disk Queuinq Cnly

TE'DOGA

Buffer Manaqement Module

IF,nOGT

Transparent Transmission CCW Buildinq Routine

IEDOHG

Time Delav Suttask

IEDOHK

Stop Line I/OSubtask

I EDOHM

Destination Scheduler

~EDOHM1

Destination Scheduler-Main Storaqe Cueuinq Only

IEDOHM2

Destination Scheduler-Disk Queuinq Only

1: ETJOK A

Activate-I/O Generator Subtask,
Activate-T/O Generator Subtask for BSC Lines

T

EDOKC

TEDOT<'D
T

EDOKE

Activate-I/O Generator

fer start/Stop lines

Sub~task

Activate-I/O Generator Subtask fer Leased and Start/Stop
Lines and No 'ISO
Activate-I/O Generator subtask fer a QTAM Compatible
SYstem

TBDOLM '

Feturn Interface Poutine

TEDONA

Pesident Closedown Completion

I EDOUI

User Interface Routine

TET)010

IBM 1030 Translate Table

lED011

IBM 1050 Translate Table'

IED012

IBM 1050 Folded Translate Table

1184

~outine

I'ED013

IBM 10EO Translate Table

T~D014

IBM 22EO Translate Table

IED015

Alias for IED014

I EDQ 1 6

IBM 2740 Translate Table

r BD017

IBM 2740 Folded Translate Table

IED018

~orld

~eletvpe

Trade

Adapter (WTTA1, ITA2 Translate

Table

IED019

World Trade Teletvpe Adapter (WTTA1, ZSC3 Translate
Table

TED020

ATST 115A or Western Union 83B3

IED021

AT&T TiX, with Parity Translate Table

TEDQ22

AT&T TWX. without Parity

IED023

IBM 2780, 6-bit Code Translate. Table

IED024

USASCII Code

IEDQ25

Dummv Table {EECDIC to EBCDICl

IED026

IBM 2741, BCD Code Translate Table

T 'ED027

IBM 2741, EEcn Code Translate Table

J'ED028

IBM 2741. C6rrespondence Code Translate Table

~ranslate

~ranslate

~ranslate

Table

Table

Table

Appendix A List of TCAM Modules by· Library

1185

~PPENDIX

B.

TeAM QUEUES AND QCBS

rrCAM QUEUES
Checkpoint Disk I/O queue - Check~oint disk records wait on this queue
to be written to disk.
The records are queued in FIFO order.
The
first word of the record is the link field.
Each time an
environment checkpoint record is put on the checkpcint disk I/O
queue, the IEDONO routine scans the queue~
If there are any
incident checkpoint disk records on the queue, the IEDQNO routine
removes them and frees them up.
Since the information in the
incident checkpoint record is included in each environment record,
it is not necessary to write beth records to disk.
The Checkpoint
Executor routine (I!DQNF) looks at the queue when a record is put
on the queue, and qives control to the Checkpoint Disk I/O routine
(IEDONP) •
communication queue - This is a queue of coromand ~nput blocks in FIFO
order,
chained by the first word in eachCIB.
The communication
queue is used to queue command input blocks containing ope~ator
control commands from the console.
An SVC 34 from the Command
Scheduler places the CIEs on the queue, and the SVC 34 routine
removes them.
The second wcrd of the queue is the communication
. ICB.
Copy Buffer queue - When a messaqe is to be copied from one queue
. medium to another, the first buffer of the messaqe is tposted to
COPY, which hanqs the tuffer on the co~y tuffer queue, pointed to
by the AV~COPY field.
This field also points to the Copy QCB
whose first two. words are used as ~ FIFO queue of buffers.
Each
messaqe stays on the COpy Buffer queue- until a CPB is available to
be usea te copy the messaqe.
One CFE is used per messaqe~
The
-use of this queue ensures that messages will be copied in the
order that the copy operation was requested as CPBs become
available.
Buffers are chained by their second word f
There is a
zero in the second word of the last buffer~
CPB

Free Pool queue - The AVTFCPE field contains the address of the
first of a chain of CPBs that are not busy.
They are chained by
CPBNEXT,
with a
zero in the last one. This is not a FIFO queue
(as is· otber CPB queues) but a LIFO (last in,
first
outl
qu~ue.
If the user specifies too many CPBs (INTRO CPB=integer), the CPBs
at the end of this free pool chain will never have been used.
The
user should look at a TCAM dum~ for un~sed CPBs and be able to
specify a smaller number next time, thereby savinq main storaqe~

Disabled Beady queue - The disabled ready queue is a FIFO queue that
contains elements passed frcm application proqrams and attached
tasks for processinq by the MCP.
The contents of this queue are
merqed into the enabled ready queue by the TCAM Dispatcher.
APFendix B List of TeAM Queues and QCBs

1187

·Disk

End queue - ~here are two disk end queues, The address of the
first is at AVTDKAPQ. This queue is used to pass CPEs from the
Disk End A~pendaqe to the CPB'Cleanup rcutine. The addres~ of the
second queue is at AVTDKENQ. This queue is used as an alternate
in the disabled/enabled interface to pass CPBs from the Disk End
~ppendaqe
to the CPB Cleantip rbutine. If the AVTBPLKN bit is on,
the Disk End Appendaqe cannot put a CPB in the disk end queue
pOinted to by AVTDKAPO, but must place it in the queue pointed to
by AVTDKENC •

. Enabled Readv queue - see Ready·queue.
EXCP queue - This is a chain of CPBs far the one cylinder, in one
extent of a disk messaqe queues data set, that is currently ready'
for 1/0 execution. CPBs are ordered on this cha~n by FIFO order.
CPB Initialization waits cn.this queue for the I/O to complete so
it can build a new CPB and do another EXCP.
'EXCP .Driver Input queue - This is a chain of CFBs that the FXCP Driver
processes until'it is empty. Only Read or Write CCW op codes and
the buffer unit address are in the channel proqram. The disk
address is an absolute disk address in the same form as ~h~n taken
from the CPERADDR or CPBNADDR field. An indication of reusability
or nonreusatility is in the CPBFLAG. The EXCP Driver removes the
CPBs in' FIFO order, hanqseach one on the New q~eue by cylinder,
and then completes the channel proqram. No EXCP is issued until
the input queue is e~ptied. A doubleword queue pointer is in,th~
AVT!NCPQ field.
FBFO queue - first-ended-first-out - A FEPO message queue is ordered
so that the messaqe that ends first will be sent out first
reqardless of the order in which the messages started being
received.
FIFO

queue - A FIFO queue is any queue of. elements that is managed 'on
a first~in-first-out basis. When an . element is placed on the
queue, it ii pl~ced in the order in which it was receiv~d and the
first element on the queue is the first to be removed p

Hold queue - A hold qu~ue is a PEFO-ord~red queue th~t is a part of
the priority le~el OCB for each Destination .QCB~ If a terminal is
intercepted
(hel~,
its messaqes are placed in this queue while
messaqes for other terminals on this Destination QCB are sent.
New queue - A queue.on the lOB chain of CPBs being built by ~XCP
Driver.
The CPBs· are sorted on this queue by absolute cylinder
number and are in FIFO order for any cylinder gr~up~ The CPBs are
placed on the queue One at a time from the inp~t queue by the EXCP
Driver. They are removed by cylinder group and are placed on the
'Retrv queue.
No-buffer queue
This is a 'FIFO-ordered queue of CPBsfor read
operations when no buffers are in ,the buffer unit pool,
This i~
1188

an internal queue used by
linked bv tbe CPBNEXT field.

IEDQ~A

and IEDQFQ.
'

The elements are

No-CPB queue - This is queue of buffers and E~Bs waiting for CPBs.
The queue is located in the AVT,and serves as a place to keep
elements until CPBs are built for them~
Operator Contrel queue - This is FIFO queue of buffers, dummy CPBs
from application proqrams and TOTE, stopped tCBs, and dummy ERBs
with buffers associated. The secend word of the queue is the
Operator Control ECB. The queue is used as a communication link
between the TCAM MCP and Operator Contrel.
All commands other
than those from the console are place~ on this queue, as well as
elements (teBs, FRBs) requested by Operator Contrel,,.
qeadv queue - This is a priority-FIFO ordered queue of
that are te be processed bv'the TCAM suttasks~

TeAM

elements

°etrv queue - This is a chain of CPBs for one cylinder in an extent of
the ~isk messaqe queues data set.- These CPBs are next in line for
1/0 execution after the CPEs on the ~XCP queue are processed.
When the tisk End Appendaqe receives ccntrol after the CPEs on the
EXCP queue are finished, it requests lOS to do a "retry" 'after
movinq the CPBs on this queue to the !XCP queue. This last move
avoids an extra FXCP and permits the channel to beqin work on the
new disk cha~nel proqram faster.
~EUS

CPB queue - When the CPB Cleanup routine finds a CPB belonqinq to
the Reusability-Copy subtask (CPBFL~G, CPBREUSN bit on), it puts
the CPB on the REUS CPB queue at AVTREUSQ, a doubleword FIFO queue
of CPBs beinq returned to the Reusability-copy subtask.
Each CPB
has a 4-bit field in the low-order 4 bit~ of CPBPLAG identifying
the type cf action the CPB is to ~o.
Since the CPB may be doing
I/O for the'Reusabilitv-Copy subtask, there may be several CPBs on
the queue~
The CPBCleanup routine calls the Reusability-copy
subtask if either the reusability CPB ~ueue is not em~ty, the
reusability
'first time' switch 'is set (AVTRUFTN bit ~n AVTBIT2"
or the 'copy wants control' bit is set
(AVTCO~YN
in AVTBIT2).
Once Reusatility-Copy qets control, it continues to process CPBs
~rom the reusability CPB queue until that queue is empty.

System Delay queue - This is a chain of LCBs.
The System Delay
subtask
(I!~OHIl waits on the queue until all the LCBs are on the
queue an6 tben beqins the system delay interval~
When a system
~elav
is requested, the Leased Receive Scheduler and the Buffered
Terminal Scheduler tPo~t tCBsto the system ~elay queue, rather
than continue 110 on the lines.
When the count of LCBs is the
same as the number of LCBs received by the System . Delay subtask,
a time re~uest is posted to the Time Delay subtask ,(IEDQHG).
After the interval is complete, each lCBis removed and tposted to
itself to r~sume line activit,.
Time Delay queue -This is a relative time of interrupt ordered chain
of elements that are requestinq a system STIMER interrupt. The

Appendix B List of

~CAM

Queues and QCBs

1189

elements are chained bv the eiqhth word in the element. The Time
Delav QCB is always the last element in the queue. The purpose of
this queue is to inform the routine tposting the element when a
specified time has ela~sed.
'reAM QCBS

Buffer Disposition OCB - The address of the Buffer Disposition subtask
(IEDPBD) is tbe first address in the list pointed to by the
AVTMSGS· field of the IVT. !he Buffer Disposition QCB comprises
the first three words of the routine.
The Incoming/Outqoing
Me~saqe
Delimiter routine (IEDQI4) t~osts the last segment of the
incominq messaqe to the OCB, and the Line End Appendage routine
(IGG019ROl
tposts the last seqment of the outqoinq messaqe to the
aCB to execute the INMSG and OUTMSG macro instructions,
The Line
End Appendaqe routine t~osts the ICB to the QCB when the routine
reaches the end of the pollinq list to clean up the line.
Buffer Request aCB - The Buffer Request QCB address is located in the
IVTBFREB field in the AVT.
The Receive Schedulers (IGG019R1 and
IGG019R~
tpost to the OCB ERBs requestinq buffers for receiving
operations
Buffer units are chained from the first word of the
QCB to form the buffer unit pool.
Buffer Return QCB - The Buffer Return OCB addre~s is located in the
~VTBFRTB
field in the IVT. Routines which are no lonqer usinq
buffers tpost them to the QCB to be returned to the buffer pool.
Checkpoint QCE - The Checkpoint aCB address is located in the AVTCKPTB
field
in the AVT.
This is a special type ofQCB for attached
tasks, and the OCB is also the STCB~
An FCE is in the second word
of the OCB.
The Check~oint Executor (IEDQNF) waits on the EeB.
The TCAM tispatcher posts the ECB when it puts a request element
on the chain.
The Checkpoint aCB is never tposted to itself~
However,
when·a checkpoint request element is tposted to the QCB,
the-Checkpoint Executor is qiven control~
Closedown completion Element OCB - the aCB address is located in the
AVTCLOSB field in the IVT.
The MCP Closedown processinq routine
(TEDOC~
ana the Checkpoint Notificaticn and Dispositicn routine
(IEDONQ)
tpost the QCE to itself to qive control to the Resident
Closedown Completion routine (IEDQN~. The QCE is used as an
element with'the lowest priority of any element in the.system~
It
is the o~ly element ever t~osted to the QCB~
CPB Cleanup OCE - The address of the CPB Cleanup QCE is located in the
AVTCPECB field in the AVT. The Disk End Appendage (IGG019R2),
upon completion of an I/O operation, chains the completed CPEs on
the AVTDKAPQ queue and tposts the OCE to itself to activate the
CPB Cleanup routine (IEDOFQl in CPB Initialization (IEDQFA)_
cutoff QCB - The Cutoff OCB is located within the Cutoff routine
(IEDOAU).
The Cutoff routine places the address of the QCB in the
first word of the LCB~
Line End Appendaqe (IGG019RO) tposts the
LCB beinq cutcff to the OCB when a channel proqram chec~ occurs o~
when the read skip or write break sequence initiated by the 'Cutoff
routine completes.
1190

Delete from Time Delay QCB - The address of the Delete from Time Delay
QCE is in the AVTCPFMB £ield of the AVT.
Attached tasks tpost a
special four~word element to this CCB.
The element defines
another element and requests the Time Delay subtask
(entry point
IEDQHGO~
to search the time delay queue for a particular element.
1f the Time Delay subtask finds the element on the time delay
queue, it removes that element.
After this process,
the subtask
tposts the four-word element tack to the requestor to indicate the
completion of the request.
Destination

aCE - A pointer to a specific Destination QCB is in each
entry.
This pointer does not chanqe, but,
as messages
are received or sent,
the SCB points to the Destination QCB
involved.
For dial or buffered terminals, the ~ime Delay subtask
(I~DOHG)
tposts the OCE to itself at the end of a time delay.
Routines tpost full tuffers to be queued to the Destination QCB.
~he
Destination Scheduler
(IEDQHM)
is always the last subtask
represented on the STCB chain of a 'Destination QCB~
A Destination
OCB is made u~ of a master QCB, which ccntains the Send Scheduler
STCB for this QCB and other information pertinent to the entire
OCB; and one or more priority level QCEs, which- contain all the
queuinq pointers for messaqes for the particular priority level.
~erminal

ryisk I/O QCB - The Disk I/O QCB address is located in the AVTDSIOB
field in the AVT.
Buffers requestinq a write on disk or the
servicinq of a bit are tposted to the Disk I/O QCB for processing
by CPB Initialization.
The schedulers tpost to this QCB EBBs
requestinq full buffers to senae
~oq

Destination OCB - There is a ~cinter to a.Log Destination QCB in
every loqtype Terminal Table entry.
~hen
a log messaqe is
specified, a 10GTYPE macro must be specified in the Terminal Table
to qenerate a terminal entry, an LCB, and an SCE. The Loq Message
routine (IEDOEY) tposts a duplicate head~r to the Log Destination
OCE after the complete messaqe is received or sent.

Master QCB - The tasie format of a Destination
ten words of destination-specific data.

QCB~

This QCE contains

Multiple Foutinq QCE - The Multiple Reutinq QCE. is in the list of VCON
pointed to ty the AVTMSGS field in the AVT.
The FOFWABD parameter
list has the index to it.
Elements chained on the QCB are either
IEDOFA recalled buffers or the IEDQFA EBB for tbe line,
On-Line Test QCE' - The address of the On-Line Test QCB is in the
AVTOLTOB field of the AVT.
Test request messages (messages
requestinq TOTE to run an on-line test through TeAM)
are tposted
to this OC,E.
Operator contrcl OCB
The address of the Operator Control QCE is
located in the AVTOPCOB field in the AV~~
This is a special QCE
for attached tasks,
and the second word of the QCE is an ECB,.
When the Dispatc}er receives an element for this QCE at the top of

Appendix B List of TeAM Queues and QCBs

1191

the ready queue r the ECB is posted complete.
The Translation Test
routine {rEDQA 3;, t posts buffers containinq opera tor commands to
the QCB.
!he Ap~lication Proqram/Operato~ control Inteuface
routine (IEDONE) tpo~ts dummy CIBs from application proqrams to
the QCB.
The B~ffer Manaqement module-Buffer Request routine
(I~DOGA~
t~osts dummy ERBs containinq
requested buffers to the
OCB.
The stop Line I/O suttask (IEDQHK) tposts stopped LCBs to
the Operater centrel QCE.
PCB QCB - The PCE OCE is located in words 2 throuqh 4 of the PCB.
This QCB is used in support of QTA~ compatible RETRIEVE.
The
Dispatcher dispatches 'the Betrieve Scheduler
(lEDQE71
from this
OCB.
The element chain contains retrieved buffers~
Priority QCB - Priority QCBs follow the 'Master QCE and are loqically
a part of the Master Destination OCE.
IEDOHM queues messaqes on
one of the Priority QCBs that is associated with the Master
Destination ~CE to which the messaqe was tposted.
The Send
Scheduler (IGG019R4) sends messaqes queued on the highest Priority
aCB first.
Put

process OCB - The address of the Put F~ecess QCE is in a process
entry in the Terminal 7ahle.
This QCB ~rovides compatability and
symmetry so that all terminal entries will look alike to TCAM
modules.

QCB for IEDOBt02 ~ The OCB is located within the IEDOED02Buffer
Disposition subtask (IEDOBD02 entry point).
The subtask (IEDQBDl
tposts the LCB to this OCB when an TNMSG/OUTMSG sutgroup has been
executed.
~ead-ahead

OCB - The address of the Read-ahead QCB is in the DEBQCEAD
field of the application proqram data extent bleck,
the location
of which is within the process entry work area PERAQCB.
The
element chain contains buffers processed by the application
proq~am
outp~t messaqe handler," but not ptocessed by the GET/RE~D
loqic. ~he Dispatcher uses this QCB to dispatch the Get Scheduler
(IEDOEW) •

Recall QCB - The address of this QCB is in the lCBRCQCB field
of the
LCB.
This is a pointer to the QCB of the subtask wishinq control
to be passed to it with a recalled buffer. The ERB is tposted to
the OCB indicated in LCBRCQCB.
STARTMH QCP - The address of the STARTMH QCE is in the DCBMH field o£
the DCB for the line qroup.
Buffers are tposted to- this QCB by
Line End Appendaqe and PCl Appendage on input when they are
filled.
On output"the buffers are t~6sted to the QCE by Line End
APpendaqe after a positive response to addres~inq~
When buffers
are tposted to the- OCB,
lEDQAA receives 'control unless EOB
che~kinq is requested. in which ~ase IFDQBT receives control.
OCB for the
~VT~K

1192

sto~

field

Line I/O subtask - The addres~ of this QCE is in the
in the AVT.
~he stop line routine (lEDQCK)tposts

stop line requests to this OCE.
to it.

The various schedulers tpost LeEs

System Delay QCE -The System Delay QCB is located in the first three
words of the System Delav subtask (IEDQHl). The address of the
subtask is in the AVTHI field of the AVT~
The System Delay
subtask tposts the QCB to the Time Delay subtask (IEDQHG) to start
a wait.
At the end of the wait, the Time Delay subtask t~osts the
OCB to itself to activate the System Delay subtask~
~ime

Delay QCE - The ~ime Delay QCB is the last element on the time
queue.
~he AQCTL SVC 102 routine. (IGC102)
tposts the QCE to
itself as a result of the STIMER exit routine~
This QCE is used
bv the STIMER exit routine to activate the Time Delay subtask
(lEDO HG) •
~elav

TST.NPUT OCE - The address of this QCB is in the AVT~SOPT field of the
AVT.
The QCE is tposted to the TSlNPUT routine (lEDAYl) to remove
the system ~ATT and unlock the keyboard.

Appendix B List of TeAM Queues and QCBs

1193

APPENDIX C.

lIST OF RELATIVE PRORITIES IN !CAM·

TCAM routines apply relative priorities tc elements throuqh the use of
the TPRIOR" macro.
The names and values l=resented in this table are
established by this internal macro.
Name

Value

Use in an ERB

Routines Usinq

PRITNTRQ

E4

to request full buffers
from Disk I/O

Send Scheduler
Receive Scheduler
Get Scheduler
Put Scheduler
Create an Error Messaqe
Routine

PRIFSPCl

E8

to request empty buffers
from Buffer Request QCB;
to request full buffers
from Disk I/O

PCI Appendage-on first
PCI only
Multiple Routinq
subtask

PRISBPCI

EO

to request empty buffers
from Buffer Request QCB;
to request full ruffers
from Disk I/O

PCI

Ap~endaqe-all

PCls except the
first

PRIDSKRQ

FC

to request an em~ty unit
bV chaininq the ERB on
the Buffer Return QCB

CPB Cleanup

PRlACTIV

E4

in tpostinq ERB to the
Activate OCB to request
buildinq of an initial
contact· proqram and
EXCP for the line

CPB Cleanup
Buffer Request
Buffer Return

P'RIDKEOB

EO

to enable BOB to recall;
to tpost to EOB Handlinq
after an EOB error; must
be lower priority than
FRIMHPF'B

CPB Cleanup
CPB Initialization

PPIR~CAL

EO

to request from Disk I/O
a COpy of the header

All routines requestinq recalled headers
Multiple Routinq Subtask

PRIRCOCE

EO

to return the ERB to any
routine specified in
LCERCQCB'

CPB Cleanup - after
recall
Create an Error Messaqe
Routine

Appendix C List of Relative Priorities in TCAM

1195

no

to request full buffers

Application Program-

'D~IEDISP

EO

to tpost E~B to itself
on send operations when
an error occurs before
EOM; must be lower
than PFIMHEFR

Buffer Disposition

PRIMBEFR

F4

to have a buffer processed by MH

pcr Appendage
CPB Cleanup
Line End Appendaqereceive, last
buffer only

PPIUBEQ

E8

to request an empty
unit for insert
function in MH; must
be hiqher than
PRIMHFFR

Unit Request

PFIAPEF'R

DC

to tpost a buffer to
an application proqram

Incoming/Outgoing Message
·Delimiter Routine

PFT1'NEND

F.4

to have Buffer Disposition finish processinq macros and
cleanup the line

Line End Appendagesend, last
buffer only

PPIRCEFR

FO

to return a duplicate
header to a specified
routine

CPB Cle,anup
Destination Scheduler

l?PTP"'RTB

E4

to return a buffer or
unit ~c the buffer.unit
pool

Incominq/Outgoing Message
Delimiter Routine
PCl Appendage
CPB Cleanup
Destination Scheduler
Multiple Routing Subtask

PPIDSKBF

FC

to qive a unit to
CPBCleanup

EufferReturn

PPICOPY

EO

to have a messaqe
copied to a different
data set

Destination

PFIDESTO

F4

to put a buffer on a
messaqe queue

Message
Delimiter Routine
Multiple Routing Subtask
Create an Error ~essage
Routine.

PRIDKWRT

E4

to have a full tuffer
written cn disk'

Destination Scheduler

1196

Schedul~r

rncoming/O~tgoinq

P.~T D'KS 'RV.

FC

to have a messaqe
flaqqed serviced

Buffer Cleanup

PRIt'KCNC

FO

to· have a messaqe
cancele\d in the
messaqe' queue

cancel Message

PRTDKINT

EO

to have a messaqe
intercepted

Hold/Release Terminal
Routine

'bFICKPLN

'F.C

to tpost the LCB to
Checkpoint requestinq
a checkpoint

Buffer Disposition

P.PTMULTR

FO

to tpost the LCE to
Multiple 'Router
routine to continue

Buffer Disposition
TLIST

th~

PPTOPCTT..

DC

to tpost an operator
control buffer

Messaqe Handling Routine
Operator Control
Interface Routine

PFI'OSPLB

F4

to tpost last buffer
of messaqe to Buffer
Disposition QCB; must be
lower than any PCl tpost
of an ERB

Incominq/Outgoinq
Messaqe Delimiter
Routine

PFlONLT

DC

to request On-Line

STARTMH Subtask

T~st

line End Appendaqe

PRILAEND

F4

to start error
cessinq

'PRlMHUNT

FA

to tpost a unit to
MH: mU$t be qreater
than PFIMHEFB

unit Request

P1)1RFLSE

EO

to release a su~task
from Time Delay or
Cpe~ator Control

Operatcr Control
Hold/Rel~ase Terminal

PFTCPBCL

B8

to PostCPB Cleanup
complete

Disk End Appendaqe

PR!C~PT

DC

to request a
checkpoint

F8

to free a line; must qet
to Destination Scheduler
before line is. free

~IO­

com~lete

Reusabilitv-Co~y

sub task
MCPCLOSE
Time Delay subtask

Buffer Disposition
Put Scheduler
Send Scheduler

Appendix C List of Relative Priorities in

TCA~

1197

n~ICLSDN

10

to request closedown;
must be lowest
priority

PPTAPCKP

DC

to request an incident
checkpoint

A~~lication

PFIOtlCKP

DC

to request an incident
checkpoint

Operator Central

P'Plt~CL

EC

to clean up buffers and
to free a line

Line End Appendaqe

to tpost a line to
Buffer Dispositicn

INEND
OUTEND

Proqram

PRTLOGLB

EO

to tpost the LOG Lel
to itself

LOG Scheduler

PRISSOlfT1

DC

tposted to Operator
Control to request
startline/Stopline
to return an element
from the time delay
queue

On-Line Test
Time Delay

np!ATTN

DC

to tpost the attention
element for local
devices

Attention Handler

PPISYSDL

DC

to initiate system delay

Operator Control

PPTLCBDL

20

to indicate to
Environment Checkpoint
that an LCB is
on the System Delay
queue
to Destination

System Delay Subtask
Environment Checkpoint

1198

Routine

APpendix D:

TeAM CHANNEL PROGRAMS AND TP OPERATION CODES

The format of the TCAM channel

Offset 0

1

7 8

36 37
Flags

word (CCWI

is

as

follows:

31

~:em.nd I.

32

com~and

Data Address

39 40

000

63

47 48

Reserved

Count

The TCAM Channel ~roqrams are qenerated by IO Generator ~odule
(IEDOKA).
Channel proqrams are listed by operation types within
communication line types.
The description of each channel program
beqins with a qraphic representation of the model channel program
accordinqto the follo~inq cateqories:
1.

Operation - The command code with a brief
information that is beinq transferred.

description

2.

Address The
execution.

in

data

address

that

is

set

the

of

CCW

the

before

Buffer refers to the buffer CCW address.
refers to· the appropriate location in the Special
Characters Table.
List refers to the applicable invitation or addressing list
en·try.
LCB refers to the Line Control Block.
Entry refers to addressinq characters, dial diqits, etc., in a
terminal entry.
Idles refers to an idles loop that is used to process data.
~able

3.

~laqs

,4.

Count - The data count that is set in
execution.

- The flaqs that are set in the qenerated CCW are:
Chain
Command
(CC), Chain Data
(CD), and Suppress Lenqth Indication
(SLT) •

Ap~endix

the

qenerated

CCW

D TCAM Channel Programs and TP Operation Codes

before

1199

A Tp OP code differentiates amonq the types of CCWs on which
interrupts can cccur. In TCAM, the ~ctivate-I/O Generator subtask
buil~s
a strinq of Tp OP codes for any qiven channel program in the
LCB. There is one Tp OP Code for each CCW. These codes are retrieved
and used by Line End Appendaqe. An even-valued Tp·OP code represents
a text or non-text CCW for which an interrupt is anticipated. An oddvalued Tp OP code represents a CCW for which no interrupt is
anticipated. The followinq is a list of the TCAM Tp. OP codes:

1200

Description,

1! amiZ'

.!~1.Y~-

TPWREOT

X'01'

rrpOPEN'

X' 02'

TPWRPOLL

X' 03'

TPRD'R!i:SP

X'04'

TPWRPAD

X' 05'

rrpENABLF.

X'06'

·

Enable on Dial Line

TPWPAD

X' 07'

Write Addressinq Sequence

TPRDRSPD

X '08'

TPW'REOA

X'09'

T1?RD'RPEE

X' OA'

·
·
·
·

TPWRCPU

X' OB'

·

Write CPU ID

TPRDENQ

X'OC'

Read ENQ

"'PWRFNQ

X' ODe

TPRSPENO

X;OE'

rrpWRDL ET

X'OF'

TPRDID

X' 10'

·
·
·
·
·

TPNULL

X • 11 '

·

Non Read Write CCW's for
which no Interrupt is
an tici pa ted

'T'PBREAK

X'12'

•

WRITE EREAK TP-CD

rrpENQAD

X'13'

.

WRITE ENQ after Selection Response

TPRDLC

X'14'

•

Read LeOUT

TPWRACK

X'15'

•

write Response Prior to Text

·
·
·
·
·

Write EaT For SEtECTION
Open TP OP Code
Write Pollinq Characters
Read Response to Pollinq
.

Write Pads

Read Response to Addressinq
Write EOA Sequence
Read Response to EOB/ETB

write ENQ
Read Response to ENQ
Write DLE EOT
Read ID

·
·
·
·
·
·

Write Response

'rPWRAKNK

X'16'

TPWRrrONE

X'17'

TPRDIDNO

X' 18'

TPR'DIDAK

X' 1 A'

TPRESET

X' 1 C'

TPTWXTD

X' 1 E'

Tl?BUFEOT

X'20'

·

Buffered Terminal Reset after Block

"'PCLOSE

X'22'

·

Close SDR Recordinq

rt'PRS'PAD

X' 24'

·

Write Reset after Select'ion

Tl?RDSKIP

X'51'

Read. Ski p Loop

TPWRIDLE

X' 53'

·
·

TPDLESTX

X' 57'

Tl?DLBETX

X'59'

TPBNORSP

X' 5E'

TPTEXT

X'FF'

The first two CCws in

Write Tone WTTA BSC
BSC Read ID ENQ
BSC Read ID ACK
Abort for Send/Receive
Read TWX ID

write Idles Loop

·
·
·
·

Write 'OLE STX
Write DLE ETB (ETX)
Write ENQ in Response to Text
Text CCW

Re~d-Initial

channel proqrams are the following:

Operation

Address

Flaqs

Tp Code

Read
TIC

Skip

CC,SLI

51

Count

,

A

These CCws are executed whenever a buffer is not available.
The
initial contact CCWs are constructed in the channel program a'rea plus
1 E (3rd .CCW) •
When ~n idle character is defined for a device, the first two CCws
Write Initial cbannel proqrams are the followinq:

A

Operation

Address

Flaqs

Tp Code

Count

Write
TIC

Idles-

CC,SLI

53

3

in

A

Appendix D TCA! Channel Progra ms and TP 0 pera ti on Codes

1201

CHANNEL PROGRAMS FOR THE AT&T 83B3 SELECTIVE CALLING STATION LINES
?ead Initial Channel Proqram
0peration

Address

Flaqs

Tp Code

Write EOT sequence
Write pollinq
characters
'P ead response

Table
List

CC,SLI
ee,SLI

01
03

Buffer
Buffer

CD,SLI

04

'rTf'

count

2

read initial channel proqram places the line in control mode by
sendinq the EOT seauence, polls the terminal, and then reads the
r~sponse.
The read response command has a data count of 2. Thus,
when there is a one-byte positive response, the response is followed
hy data.
~his reduces the count to zero and causes data chaininq to
read the rest of the data until an EOB or FaT is received or the count
is zero.
A neqative response causes channel end and device end with
unit exception and wronq lenqth indicated. Line End Appendage finds
the pollinq restart Tp code, reinitializes for the next terminal to be
polled, and returns control to lOS for execution of the CCWs.

~he

r.Jri te Initial Channel Proqram
Operation

Address

Flaqs

Tp Code

Count

Write EOT sequence
T~ri te adJressinq
·charact ers
Bea~ response
TMri te EOA sequence

Table
T entry

Ce,SLI
CC,S1I

01
C7

3

LCB
Table
Idles

08
09

9

CD

TTC

2

~he write initial channel proqram places the
line in control mode,
addresses a terminal, and reads the response.
An interrupt is taken
on the read response, after which buffers are tposted to the outqoinq
M~.
~estart
is made at the write EOA sequence, which TICs to the
idles loop and frcm there writes data.

CHANNEL PROGRAMS FOR WESTERN UNION PLAN 115A OUTSTATION
Read Initial Channel Proqram

1202

Operation

Address

Flaqs

Tp Code

Count

Write EaT sequence
write pollinq
characters
'Read response
TIC

Table
List

CC,SLI
CC,S1I

07

3

Buffer
Buffer

CD~SLI

04

03
2
2

The read initial channel proqram places the line in control mode by
sendinq the EOT sequence. polls the terminal, and then reads the
response.
The read response command has a data count of 2.
Thus,
when there is a one-byte positive response, the response is followed
by data.
This reduces the count to zero and causes data chaininq' to
read the rest of the data until an EOB or EaT is received or the co~nt
is zero.
A neqative response causes channel end and device end with
unit exception and wronq lenqth indicated. Line End Appendaqe finds
the pollinq restart Tp code. reinitializes for the next terminal to be
polled. and returns control to lOS for execution of the CCws.
Write Initial Channel Prcqram
Operation

Address

Flaqs

Tp Code

count

Write EOT sequence
Write addressinq
characters
Bead response
Write EOA sequence
TIC

Table
T entry

CC,SLI
CC, SLI

01
07

3
2

LCB
Table
Idles

CD

08
09

9
4

The write initial channel proqram places the line in control mode,
addresses a terminal. and reads the res~onse.
An 'interrupt is taken
on the read response, after which buffers are tposted to the outqoinq
MH.
Restart is made at the write EOA sequence,
which TICs to the
idles loop and from there writes data.

CHANNEL PROGRAMS FOR IEM 1030 LINES
'Read Initial Channel Proqram
Operation

Address

Flaqs

Tp Code

Count

Write EOT sequence
Write pollinq
characters
Read response
TIC

.Table
List

CC.SLI
CC,SLT

01
03

3
1

Buffer
Buffer

CD,SLI

04

2

The read iriitial channel proqram places the line in control mode by
sendinq the EaT sequence, polls the terminal,
and then reads the
response.
The read response command has a data count of 2. Thus,
when there is a one-byte positive response, the response is followed
by data.
This reduces the count to zero and causes data chaining to
read the rest of the data until an EOB or EeT is received or the count
is zero.
A neqative response causes channel end and device end with
unit exception and wronq lenqth indicated. Line End Appendage finds
the pollinq restart Tp code, reinitializes for the next terminal to be
polle~, and returns control to lOS for execution of the CCis.

Appendix D TCAM Channel Programs and TP Operation Codes

1203

Read continue Channel Program
Operation

Address

Flags

Write positive" (ACK) Table
or neqative (NAK)
response
The read
response
'T'C"~M •
~Trite

continue channel
to the previous

Tp Code

Count

16

1

proqram sends a positive or ~egative
message block to indicate a response from

Initial Channel Program

Operation

Address

Flags

Tp Code

Count

Write EOT sequence
Write addressinq
ch aracters
~ead response
T~ri te EOl\ sequence
rrIC

Table
T entry

CC,SLI
CC,SLI

01
07

3
2

LCB
Table
Idles

CD

08
09

9
1

The write initial channel program places the line in control mode,
addresses a terminal, and reads the response.
An interrupt is taken
on the read response, after which buffers are tposted to the outgoing
MR.
Restart
is made at the write EOA sequence, which TICs to the
idles loop and from there writes data.
write continue Channel Proqram
Operation
~ead

response

TIC

Address

Flags

Tp Code

Count

LCB
Buffer

CC,SLI

OA

9

The write continue channel program reads the response to the last
message block.
If the response is positive, chaining takes place to
the next write text command.

CHANNEL PROGRAMS FOR IBM 1050 LEASED LINES
Read Initial Channel Program
Operation

Address

Flags

Tp Code

count

Write EOT sequence
Write pollinq
characters
'Read response

Table
List

CC, SL!
CC,SLI

01
03

3
2

Buffer
Buffer

CD,SLI

04

2

TIC

1204

The read initial channel proqram places the line in control mode by
sendinq the EOT. sequence, polls the terminal, and then reads the
response.
The read resporise command has a data count of 2.
T~us,
when there is a one-byte positive responSE, the response is followed
by data.
This reduces the count to zero and causes data chaininq to
read the rest of thedata1until an FOB or EOT is received or the count
is zero.
A neqative response causes channel end and device end with
unit exception and wronq lenqth indicated. Line End Appendage finds
the pollinq restart Tp code, reinitializes for the next terminal to be
polled, and returns control to lOS for execution of the CCws.
Read continue Channel Proqram
Operation

Address

Write positive or
Table
neqative response'
TIC
Buffer

Flaqs

Tp Code

CC,SLI

16

Count
.1

The read continue channelproqram writes the appropriate
a block of data and then chains to reaR dat~.

response

to

Hrite Initial Channel Proqram
Operation

Address

Flaqs

Tp Code

Count

TJri te EOT sequence
Write addressinq
characters
~ead response
~~ri te EOA sequence
TIC

Table
T entry

ce, Sl I

CC,SlI

01

07

3
'2

lCB
Table
Idles

C8

9

CD

09

1

The write initial channel proqram places the:line in control mode,
a0dresses a terminal, and reads the response.
An interrupt is taken
on the read response, after which buffers are tposted to the outgoing
MR.
Restart is made at the· write EOA sequence,
which TI~s' to the
idles loop and from there writes data.
Write coritinue Channel Proqram
Operation
~ead

TIC

response

Address

Flaqs

lCB
Buffer

CC,S11

'Tp Code
OA

Count
9

The write continue channel proqram reads the response to the last
messaqe block.
If the response is positive, chaininq takes place to
the next write text command.

Appendix D TCAM Channel Programs and TP Operation Codes

1205

write Conversational Channel Proqram
Operation

'Address

Flaqs

Write EOA
TIC

Table
Idles

CD,SLI

~he

write conversational
then chains to write data.

channel

. Tp Code
09

Count
1

proqram writes end-of-address and

rqANNEL PBOGFAMS FOR IEM 1050 DIAL
Pead Initial Channel Proqram
Operation

Address

Flaqs

Tp Code

Count

List

CC,SLI
SL1
CD
CC,SLI

11
06
01
03

1
3
2

CD,SLI

04

2

Disable
~nable

Write EO~ sequence
Write pollinq
characters
"'ieao response
TIC

Buffer
Buffer

1

~he read
a~apter

initial channel proqram disables and then enables the line
so that a remote terminal may dial the cpu.
An interrupt is
taken on the enable so that TCAM can set irtternal switches.
'Fifteen
uad characters are sent by the CPU, followed by an EOT sequence; this
places the terminal in ccntrbl mode.
Two polling characters are sent
and then a read response that specifies a data count of two, with
wronq lenqth indication net sup~ressed,
while the lenqth of the
response character is one byte. The effect of this technique is as
follows:
1.

POEit.i~~ reE~~nse.
The response character and the first byte of
the messaqe are read under control of the Read Response CCW.
This
reduces the data count to zero and causes data chaininq to take
place.
The second and subsequent bytes of the messaqe are read
under control of the address and count fields of the Read Data
ccw.
Execution continues in the channel with an interrupt
occurrinci enly at receipt of an BOB or FOT.

2.

~~gatlve

res~ense.
This response causes channel end and
enn with unit exception and wronq lenqth record indicated.

mhe read initial channel proqram then transfers-in-channel
the andress in the buffer ccw to read data.

1206

device

(TIC~

to

?ead continue Channel Prcqram
Operation

Address

Write positive (ACK) Table
or neqative (N AK)
response
TIC
Buffer

Flaqs

Tp Code

CC,StI

16

Count
.1

The read continue channel proqram sends a positive or neqative
response to the previous messaqe block and continues readinq data.
t~ri te

Ini tia 1 Channel Proqram

Operation
Disable
Dial
Write pad characters
write EOT sequence
Write addressinq
characters
Read response to
address
Write EOA
TIC

Address

Flaqs

Tp Code

Count

CC,StI
CC,SLI
CD,SLI
CD,StI
CC, SLI

11
11
05
01
07

1

T entry
Table
Table
T entry

15
3
2

LeB

SLI

08

9

Table
Idles

CD,SLI

09

1

X

The write initial channel proqram disables the line and then dials a
terminal.
When the remote terminal answers, the CPU sends the pad
characters and the EOT sequence, which plac€s the terminal in control
mode.
The address characters select the component, which responds to
the addressinq.
End-of~address terminates
addressinq and then the
write initial channel prcqram TICs to the idles loop and from there to
a
write data.
Tge X count value depends on the number of dial digits
specified in the terminal entry.
Write continue Channel Proqram
Operation

Address

Flaqs

Tp Code

Count

'Jiead response
TIC

LeB
Buffer

CC,St1

OA

9

~he

write continue channel ~roqram reads the response to the last
messaqe block.
If the response is positive, chaininq takes place to
the next write text command.

AP P en d ix D T CA M C h ann e 1 Pre 9 ra ms and TP 0 pe ra t i on Cod e s

1 207

Write Conversational Channel Proqram
Operation

Address

Flaqs

Tp Code

write -EOA
TIC

Table
Idles

CD,SLI

09

Count

,

The write conversational channel proqram
writes
End~of-Address
character and then TICs to a' write idles loop to wri'te data.

rH~NNEL

PROGRAMS FOR IBM 1060 TERMINALS

Pead Initial Channel Proqram
Operation

Address

Flaqs

Tp Code

Count

Write FOT sequence
Write pollinq
characters
~ead response

Table
List

CC,SLI
CC,SLI

01
03

3
2

Buffer
Buffer

CD,SLI

04:

2

~IC

The read initial channel proqram places the line in control mode by
sendinq the EO! sequence, polls the terminal,
and then reads the
response.
The read response ccmmand has a data count of 2.
Thus,
when there is a one-byte positive response, the response is followed'
by data.
This reduces the count to zero and causes data chaininq to
read the rest of the data until an EOB or EOT is received or the count
is zero.
A neqative response causes channel end and device end with
unit exception and wronq lenqth indicated.
Line End Appendage finds
the pollinq restart Tp code, reinitializes for the next terminal to be
polled, and returns control to lOS for ex~cution of the CCWs.
Read Continue Channel Prcqram
Operation

Address

Flacts

Tp Code

Write positive ,(ACK)
or neqative (NAK)
response

Table

SLI

16

Count

The read 'continue channel proqram· sends a positive or neqative
response to the previous messaqe block and continues readinq data to
the previous rlock.

'1208

Write Tn{tial Channel Proqram
Operation
Write EOT sequence
write addressinq
characters
Read response
Write EO! sequence
"rIC

Address

li'laqs

Tp Code,

Count

Table
entry

CC,SLI
CC,StI

01
07

3

LCE
Ta,ble
Idles

08

9

CD

09

1

T

2

~he write initial channel proqram places the
line in control mode,
addresses a terminal, and reads the response.
An interrupt is taken
on the read response, after which buffers are tposted to the outqoing
MH.
Restart is made at the write EOA sequence, which TICs to the
idles loop and from there writes data.

Write continue Channel Proqram
Operation .

Address

Flaqs

Tp Code

Count

'Read response
TIC

LCB
Buffer

CC,stI

OA

9

rrhe write continue channel proqram reads the response to the last
messaqe block.
If the response is positive, chaining takes place to
the next write text command.

CHANNEL PROGRAl'1S FOR IBM 2741 LEASED
'Read Initial Channel Proqram
Operation

Address

Flaqs

TP Code

Count

~~ri te

Table

Cc,stI

07

3

CC,SLI
CC,StI
CD, SL I

11
11
04

1
1
2

EaT
sequence
Prepare
Sense
Read response
TIC

LCB
Buffer
Buffer

read initial channel proqram sends a write EOT sequence and then
prepares the control unit to receive a message from a terminal. The
sense operation informs. the CPU of the status of the terminal through
the read response. The read initial channel program then TICs to read
data.

~he

Ap~endix

D TeAM Channel Programs and TP Operation Codes

1209

Write Initial Channel Proqram
Operation

Address

Flaqs

TP Code

write EOA sequence
write Tdle
characters
rt:'IC

Table
Table

CD, SL I
CD,SLI

09
05

~h~

Count
1
15

Idles

write initial channel proqram sends an EOA sequence to set up the
characters on the line~
The program then

t~rmirial and writes 15 idle
~ICs to a write command.

~HANNEL

~ead

PROGRAM FOR IEM 2741 DIAL

Initial Channel Proqram
Operation

Address

Flaqs

TP Coo.e

Count

Disable

LCE
LCB
LCB
LCB.
Buffer
Buffer

CC,SLI
SL1
CC,SLI
CC,SLI
CD,SLI

11
06
11
11

1
1
1

~nable

Prepare
Sense
Read response
TIC

04

1
2

~he read
receiv~.a

initial channel proqram disables and then enables the line to
call.
TCAM takes an interrupt on the enable to set internal
switches.
The prepare command ~onditions the control unit to receive
a messaqe.
Read response reads the response from the terminal and
then chains to read data via the TIC.
NQ1~:

The write initial channel proqram fer 2741 Dial is the same as
for 2741 Leased.
TCAM, however, does not dial a 2741; the user calls
to establish the connection.

CHANNEL PROGRAMS
FOR IBM 2740 COMMUNICATION LINES
,

IBM 2740 BASIC CHANNEL PROGRAM
~ead

1210

Initial Channel Proqram
Operation

Address

Flaqs

Tp Code

Count

Write EOT sequence
Prepare
Sense
'Read response
TIC

Table

CC,·S11
CC,SL!
CC,SLI
CD,SLI

07

3

LCB
Buffer
Buffer

11
11

04

,
1
2

The rean initial channel program sends a write EOT sequence and then
prepares the centrol unit to receive a messaqe from a terminal.
The
sense operation informs the CPU of the status of the terminal through
the read response. The read initial proqram then TICs to read data.
Write Initial Channel Proqram
Operation
Write EOT sequence
.Write EOA sequence
write idle
characters
TIC

Address

Flaqs

Tp Code

Table
Table
Table

CD r SL T
CDrSLI
CDrSLI

01
09
05

Ccunt
3
1
15

Idles

write initial channel proqram sends an EOT and EOA sequence for
settinq up the terminal.
It then writes 15 idle characters and
transfers-in-channel to a write command.

~he

IBM 2740 WITH CHECKING
Read Initial Channel Proqram
Operation

Address

Flaqs

Tp Code

Count

write EOT sequence
Prepare
Sense
Read response
TIC

Table

CC r 5L I
CCrStI
CCrSLI
CDrSLI

01

3
1

LCB
Buffer
Buffer

The read initial channel
prepares th~ centrol unit to
sense operation informs. the
the read response. The read

11
11

,

04

2

program sends a write EOT sequencer then
receive a messaqe from a terminal.
The
CPU of the status of the terminal through
initial proqram then TICs to read data.

Read Continue Channel Prcqram
Operation

Address

Flaqs

Tp Code

Count

Write circle Y or
circle N
TIC

Table

CCrSLI

16

1

Buffer

~he

read continue channel proqram is initiated after a read initial
operation. The proqram writes the response character and then TICs to
read data.

Appendix D TeAM Channel Programs and TP Operation Codes

1211

write Initial Channel Proqram
Operation

Address

Flaqs

Tp Code

Count

Write EOT sequence
Write EOA sequence
Write idle
characters
'rIC

Table
Table
Table

CD,SLI
CD,5LI
CD, 5L I

01

09

3
1

05

15

Idles

~he
write
~ettinq up

initial channel proqram sends an EOT and EOA sequence for
the terminal.
It then writes 15 idle characters and
transfers-in-channel to a write command.
Write Continue Channel Proqram
Operation

.Address

Flaqs

Tp Code

Count

'Read response
TIC

LCB
Buffer

CC,SLI

OA

9

The write continue channel proqram reads the response after a write
initial operation and then TICs to a write text command in the buffer.
Write Conversaticnal Channel Proqram
Operation
T~ri

te EOA

TIC

Address

Flaqs

Tp Code

Count

Table
Idles

CD,SLI

09

1

mhe write conversational channel program
writes
character and then TICs to a write idles loop to write

End-of-Address
data~

IBM 2740 WITH DIAl
Pead Initial Channel Proqram
Operation
Disable
Enable
Prepare
Sense
"Read response
TIC

Address· Flaqs

LCB
Buffer
Buffer

CC ,.SL I
5L1
CC,SLI
CC, SL I
CD,SLI

Tp Code

Count

11
06
11
11

1
1
1
1
2

04

The read initial channel program disables and then enables the line to
receive a call. TCAM takes an interrupt on the enable to set internal

1212

switche~.
The prepare command' conditions the control unit to receive
a messaqe.
Read response reads the response from the terminal and
then chains to read data via the TIC.

r~rite

Initial Channel l.?rcqram

Operation

Address

Disable
Dial
T entry
Write pad characters Table
r~ri te EOT sequence
Table
\~ri te EOA l=lus idles rrable
Idles
TIC

Flaqs

Tp Code

Count

CC,SLI
CC,SLI
CD,SLI
CD, SL I
CD,SLI

11
11
05

1
X

15

01
09

16

3

~he write initial channel proqram disables the line ~nd then dials the
specified terminal.
The channel proqram sends 15 pad ch~racters
before the EOT sequence.
An BOA character ~lus 15 idle characters are
sent and then the proqram 'rICs to write text.
The X count . value
depends on the number of dial characters specified in the terminal
entrv.

IBM 2740 WITH DIAl AND CHECKING
Bead Initial Channel Proqram
Operation
Disable
Enable
l.?repare
Sense
Read response
TIC

Address

LCE
Buffer
Buffer

Flaqs

Tp Code

Count

CC,SLI
SL1
CC,SLI
CC,SLI
CD, SL 1

11
OE
11
11

1
1
1

04

2

1

The read initial channel proqram disables and then enables the line to
receive" a call.
The prepare command conditions the centrol unit to
receive a
messaqe.
Bead response reads the terminal's response and
then chains to read data via the TIC.
Write Initial Channel Prcqram
Operation

Address

Disable
Dial
T entry
r,:fri te pad characters Table
Write EDT sequence
Table
Write EOA plus idles Table
TIC
Idles

Flaqs
CC,SLI
CC;SLI
CD,SLI
CD, SLI
CD,SLI

/ Tp Code

Count

11

1

11'

X

05
01
09

15
3

16

Appendix D TCAM Channel Prcgrams and TP Operation Codes

1213

The write initial channel proqram disables the line and then dials the
sP€cified terminal. The channel ~roqram sends 15 pad characters
b~fore the EOT sequence.
An EOA character plus 15 idle characters are
sAnt and then the proqram TICs to ~rite text. X represents the number
of dial diqits for the terminal.

TBM ?740 WITH DIAl AND TFANSMIT CONTROL
t:1ead Initial Channel Proqram
OPAration

Address

Flaqs

Tp Code

Count

11

List

CC,SLI
SLI
CD
CC, SLI

01
03

1
1
3
2

CD,SLI

04

2

Disable
~nable

Write 'P. orr sequence
T.]ri te pollinq
characters
-g~ad response
~lC

Buffer
Buffer

C6

read initial channel proqram ~isables and then enables the line
adapter so that a remote terminal may dial the cpu. After the enable
~CAM waits for an interrupt from the terminal, after which the channel
proqram resumes. Fifteen pad characters are sent by the CPU, followed
hv an EOT sequence~ this places the terminal in control mode. Two
pollinq characters are sent and then a read response that specifies a
nata count of two. The effect of this technique is as follows:
~be

1.

~..Qsitiv..§ ~'§~..Q..n.§~.

'Ihe response character and the first byte of
the messaqe are read under control of the Read Response CCW. This
reduces the data count to zero and causes data chaininq to take
olace. The second and subsequent bytes of the message are read
under control of the address and count fields of the Read Data
CCW.
Execution continues in the channel with an interrupt
occurrinq cnIv at receipt of an EOB or FOT.

2.

~~qativ~ ~es~cnB~.

~he
th~

read i~itial channel proqram then transfers-in-channel (TICs) to
address in the buffer ccw to read data.

This response causes channel end and
ena with unit exception and wronq lenqth record indicated.

1}lri te Initial Channel l'roqram
Operation

Address

nisable
Dial
T entry
T,\rri te pad characters Table
Write !.OT sequence
Table
Write EOA 1=lus idles Table
rrtIC
Idles
1214

Flaqs

Tp Code

CC,SLI
CC,SLI
CD,SLI
CD,SLI
CD,SLI

11
11
05
01
09

count
1
X
15

3
16

device

~he

write initial channel proqram disables the line and then dials the
specified"terminal.
The channel proqram sends 15 pad characters
before the EO~ sequence.
An EOA character ~lus 15 idle characters are
sent and then the proqram TICs to write text.
X represents the number
of dial diqits for the terminal.

IBM 2740 WITH DIAl r TRANSMIT CONTRCL r AND CHECKING
~ead

Initial Channel Proqram
Operation
Disable
Fnable
Write EOT sequence
write pollinq
characters
Read reSDonse
TTC

Address

Flaqs

Tp Code

Count

11
06
01
03

1
1
3

List

CCrSLI
SLI
CD
CC r ST.. 1

2

CD,SLI

04

2

Buffer
Buffer

~he
read
initial channel proqram disables and then enables the line
adapter so that a remote terminal may dial the CPU.
After the enable,
TCAM waits for an interrupt from the terminal, after which the channel
proqram resumes.
Fifteen pad characters are sent by the CPU, followed
hv an EOT sequence; this places the terminal in control mode.
Two
po11inq characters are sent and then a read response that specifies a
data count of two. The effect of this technique is as follows:

1.

Eositive res~onse.
The response character and the first byte of
the messaqe are read under control of the Read Besponse CCW.
This
reduces the data count to zero and causes data chaininq to take
place.
The second and subsequent bytes of the message are read
under control of the address and count fields of the Read Data
Ccw.
Execution continues in the channel with an interrupt
occurrinq cnly at receipt of an EOB or EOT.

2.

B.§.gat.iv.§ g..§~nse.
This respcnse causes channel end and
enR with unit exception and wrcnq lenqth record indicated.

device

The read
initial channel proqram then transfers-in-channel (TICs)
the address "in the buffer ccw to read data.

to

r.Jri te Initial Channel Proqram
Operation

Address

Disable
."
entry
Dial
Write pad characters Table
Table
{~ri te EOT sequence
Write EOA ~lus idles Table
Idles
TIC
.l

Flaqs

Tp Code

CCrSt1
CC,SL1
CDrSL1
CD, SL I
CDrSLI

11
11
05
01
09

Ccunt
1
X
15
3
16

Appendix D TCAM Channel Programs and TP Operation Codes

1215

The write' initial channel proqram disables the line and then dials the
specified terminal. The channel proqram sends 15 pad characters
before the EaT sequence. An EOA character plus 15 idle characters are
sent and then the proqram TICs to write text. X represents the number
of di~l diqits for the terminal.

IBM 2740 (DIAL WI!H A CONNECTION)

Read Initial Channel Proqram
Operation

Address

Flaqs

Tp Code

Count

Write FaT sequence
Prepare
Sense
Read response
'rIC

Table

CC,StI
CC,StT
CC, StI
CD,StI

01

3

11

1
1
2

LCB
Buffer
Buffer

11
04

The 'read initial channel proqram sends a write EaT sequence, then
prepares the centrol unit to receive a roessaqe from a terminal.
The
sense operation informs the CPU the status of the terminal throuqh the
read response. The read initial proqram then TICs to read data.
~rite

Initial Channel prcqram

Operation

Address

Flaqs

Tp Code

Count

EaT sequence
te EOA sequence
Write idle
characters
TIC

Table
Table
Table

CD,St!
CD, SL I
CD,SLI

01

3

09

1

05

15

t~rite
t~ri

Idles

The write initial channel proqram sends an EOT and EOA sequence for
settinq up the terminal.
It then writ~s 15 idle characters and
transfers-in-channel to a write command.

IBM 2140 WITH CHECKING (DIAL WITH A CONNECTION)
Read Initial Channel Proqram
Operation
Write EO~ sequence
Preoare
Sense
'''Read response
TIC
1216

Address

Flaqs

Tp Code

Count

Table

Cc,stI
CC,stI
CC,SLI
CD,StI

11
11
11
04

3
1

LCB
Buffer
Buffer

,

2

The read initial channel proqram sends a write EOT sequence, then
prepares the centrol unit to receive a message from a terminal.
The
sense o~eration informs the CPU the status of the terminal through the
read response. The read initial program then TICs to read data.
write Initial Channel Proqram
Operation

Ad.dress

Flaqs

Tp Code

write EO'" sequence
Write EOA sequence
write ia,le
characters
TIC

Table
Table
Table

CD,SLI
CD,SLI
CD,SLI

01

C9
05

Count
3
1
15

Idles

The write initial channel proqram sends an EOT and',. EOA sequence for
settinq up the terminal.
It then writes 15 idle characters and
transfers-in-channel to a write command.

IBM 2740 WITH S!ATION CONTROL
~ead

Initial Channel Proqram
Operation

Address

Flaqs

Tp Code

Count

Write EaT sequence
Write pollina
characters
Read response
TIC

Table
'List

CC,SLI
CC,SLI

01

3

03

2

Buffer
Buffer

CD,SLI

04

2

The read initial channel proqram places the line in control mode by
sendinq the EaT sequence~ polls the terminal, .and then reads the
response.
The read response ccmmand has a data count of 2. Thus,
when there is a one-byte positive responSE, the response is followed
by
data.
This redu,ces the count to zero and causes data chaining to
read the" rest of the data until an EOB or EOT is received or the count
is zero. A neqative response causes channel end and device end with
upit exception and wrong lenqth indicated. Line End Appendage finds
the pollinq restart Tp code, reinitializes for the next terminal to be
polled, and returns control to lOS ~or execution of the CC"s.
T,.Trite Initial Cha nnel Prcqram
Operation

Address

Flags

Tp Code

Count

Write EOT sequence
Write addressinq
characters
Read response
write EOA sequence
TIC
Appendix D TCAM

Table
T entry

CC,SLI
CC,SLI

01
07

3
2

LCB
08
9
Table
CD
09
1
Idles
Channel Programs and TP Opera tion Codes

1217

The write initial channel program places the line in control mode,
addresses a terminal, and reads the respcnse.
An interrupt is taken
on the read response, after which buffers are tposted to the outqoing
~H.
Restart is made at the write EOA sequence, which TICs to the
idles loop and from there writes data.

IBM 2740 WITH S!A!ION CONTROL AND CHECKING
Read Initial Channel Program
Operation

Address

Flaqs

Tp Code

count

write EaT sequence
Write pollinq
characters
~ead response
TIC

Table
List

CC,SLI
CC,SLI

01
03

3
2

Buffer
Buffer

CD, SLI

04

2

The read initial channel program places the line in control mode. by
sending the EaT sequence,
polls the terminal, and then reads the
response.
The read response command has a data count of 2.
Thus,
when there is a one-byte positive responSE, the response is followed
bv data.
This reduces the count to zero and causes data chaininq to
read the rest of the data until an EOB or EOT is received or the count
is zero.
A neqative response causes channel end and device end with
unit exception and wronq lenqth indicated. Line End Appendage finds
the pollinq restart Tp code, reinitializes for the next terminal to be
polled, and returns control to lOS for execution of the CCWs.
Write Initial Channel Proqram
Operation
Ttlri te EOll' sequence
T,oJri te addressinq
characters
~ead response
T,Jri te EOA sequence
TIC
~he

Address

Flaqs

Tp Code

Count

Table

CC,SLI
CC,SLI

01
07

3

CD

08
09

9
1

T entry

LCE
Table
Idles

2

write initial channel program places the line in control mode,
addresses a terminal, and reads the response.
An interrupt is taken
on the read respcnse, after which buffers are tposted to the outqoing
MH.
Restart is made at the write EOA sequence,
which TICs to the
i11es loop and from there writes data.

1.218

IEM 2740 WITH TRANSMIT ceNTROL (DIAL WITH A CONNECTION}
Pead Initial Channel Proqram
Operation

Address

Flaqs

Tp Code

Count

write ROT sequence
pollinq
characters
Read response
TIC

Table
List

Ce,SLI
CC,SLI

01
03

2

Buffer
Buffer

CD,SLI

04

2

f~ri te

3

~he

read initial channel proqram places tbe line in control mode by
sendinq the EOT sequence, polls the terminal,
and then reads the
response.
The read response command has a data count of 2.
Thus,
when there is a one-byte positive response, the response is followed
by data.
This reduces the count to zero and causes data chaining to
read the rest of the data until an FOB or BeT is received or the count
is zero.
A neqative response causes channel end and device end with
unit exception and wronq lenqth indicated~
Line End Appendage finds
the pollinq restart Tp cede, reinitializes for the next terminal to be
polled, and returns control to lOS for execution of the CCWs.

Write Initial Channel Preqram
Operation

Address

Flaqs

Tp Code

write EOT sequence
EOA sequence
Write idle
characters
TIC

Table
Table
Table

CC,SL1
CD,SLI
CD,SLI

01
09
05

t.~ri te

~he

Count
3
1
15

Idles

write initial channel
settinq up the terminal.
to a write command.

~roqram

sends an EOT and EOA sequence for
It then writes 15 idle characters and TICs

IBM 2740 WITH TRANSMIT CONTROL AND CHECKING (DIAL WITH

A

CONNECTION)

Bead Initial Channel Proqram
Operation

Address

Flaqs

Tp Code

Count

write EOT sequence
write pollinq
characters
Read response
TIC

Table
List

CC,StI
CC,SLI

01
03

3
2

Buffer
Buffer

CD,SLI

04

2

Appendix 0 TCAM Channel Programs and TP Operation Codes

1219

The read initial channel proqram places the line in control mode by
sendinq the EaT sequence, polls the terminal,
and then reads the
response.
The read response ccmmand has a data count of 2. Thus,
when there is a one-byte positive response, the response is followed
by a~ta.
This reduces the count to zero and causes data chaining to
read the rest of the data until an EOB or EOT is received or the count
is zero.
A neqative response causes channel end and device end with
unit e~ception and wrong length indicated. Line End Appendage finds
the pollinq restart Tp code, reinitializes for the next terminal to be
polled, and returns control to lOS for execution of the CCws.
. Write Initial Channel Prcqram
Operation

Address

:Flaqs

Tp Code

Count

Write EO'r sequence
Write EOA sequence
TIC

Table
Table
Idles

CC,SLI
CD

01

3

09

~he write initial channel proqram places the
line in control mode.
The proqram then issu~s the write EOA sequence, TICs to the idles
loop·, and from there writes data.

C~ANNEL

~ead

PROGRAMS FOF WORLD .TRADE TELEGRAPH

Initial Channel Proqram
Operation
Prepare
Sense
'Read response
TIC

Address
LCB
Buffer
Buffer

Flaqs

Tp Code

Count

CC,SLI
CC,SLI
CD,SLI

11
11

1
1

04

2

The read initial channel proqram prepares the control unit to receive
a messaqe from a terminal.
The sense operation informs the CPU of the
status of the terminal throuqh the read response, The read initial
pro~ram then TICs to a read text ccmmand in the buffer~
Write Initial Channel Proqram
Operation

Address

Flaqs

Tp Code

Write EaT sequence
write mark
characters

Table
Table

CD,SLI
CD, SL I

01

3

'05

21

~A}rite

WRU
LCE
Table
Idles

CC,SLI

07
08
09

24

Read respon~e
write EOA sequence
TIC

1220

Count

1
1

fT1he wri t'e initial channel proqram writes an EOT sequence-,
sends 2'1
mark characters to condition the line, and writes a WRU on the line,
and reads the res~onse. ,An interrupt is taken on the read ,response,
after which the buffers are tposted to outqoing MH.
Restart is at the
Write EOA sequence, which TICs to the idles loo~ and writes data.

IBM 2260

FEMO~E

CHANNEL PROGRAMS

Read Initial Channel Proqram
Operation

Address

Flaqs

Tp Code

~rite EO~ sequence
Write pollinq
characters
Read response
TIC

Table
List

CC,SLI
CC,SLI

01

Buffer
Buf,fer

CD,SLI

04

Count

03

The read initial channel proqram places the line in control mode, by
sendinq the EOT sequence, polls the terminal, and then reads the
response.
The read response command bas a data count of 2. Thus,
when there is a one-byte positive res~onse, the response is f6llowed
by
data.
This reduces the count to zero and causes data chaining to
read the rest of the data until an EOB or EOT is received or the count
is zero.
A neqative response causes channel end and device
end with
unit exception and wrong'lenqth indicated. Line End Appendage finds
the pollinq restart Tp code, reinitializes for the next terminal to be
polled, and returns cont~o~ to lOS for execution of the CCws.
Read Continue Channel Proqram
Operation

Address

Flags

TP Code

Count

positive (ACK)
or neqative
(NAK)
response
TIC

Table

CC, S·LI

'6

1

~rite

Buffer

~he

read continue channel proqram sends a positive or negative
response to the previous messaqe block and continues reading data.

write Init,ial Channel Proqram
c

Operation

Address

Flags

Tp Code

Count

Write EOT sequence
Write address
~ead response

Table
T entry
LCB

CC,StI
CC,SlI

01
07
08

3

2·

9

The write initial channel proqram writes an EOT sequence followed by
an address.
After the read response, the buffers are tposted to MH'
and data is transferred to the line bv EXCP.
Appendix D TCAM Channel Programs and TP Operation Codes

1221

write continue Channel Proqram
Operation

Address

Flaqs

Tp Code

Count

Read response
,,[,IC

LCB
Buffer

CC,SLI

OA

9

The write continue channel proqram reads the response to the last
messaqe block. If the response is positive, chaininq takes place to
the next write text command.

IBM 2260 LOCAL CHANNEL PROGRAMS

In

local mode the channel proqrams simply read data or write data, as

the case may be.

CqANNEL PROGRAMS FOR IEM 7770 (DIAL)
Bead Initial Channel Proqram
Operation
Disable
'Enable
Write C1?U ID {if ID is

Code

Count

Address

Flaqs

Tp

11
06

1
1

T entry

CC,SLI
SLI
CC,SLI

OB

X

CD,SLI

04

2

~pecifi€dl

'Read response
l"IC

Buffer
Buffer

~he read initial channel proqram disables and then enables
the line.
The CPU ID is written if this is specified, and then the program
chains to a read response. The X count value is the length of the CPU
Tn specified in tt.e invitation list.

write Initial Channel. Proqram
This prodram simply writes data to the 7770.

1222

CHANNEL PROGRAMS POR TTY MODELS 33 AND 35 TWX LINES
Read Initial Channel Proaram
Operation
Disable
Bnable
write CPU ID
Read response
TIC

Address

T entry
Buffer
Buffer

Flaqs

Tp Code

Count

CC,SiI
SLT
CC,SLI
CD,SlI

'1

1
1
X

06
OB
04

2

The read initial channel proqram disables the line and sets the enable
latch within the line adapter. This permits the terminal to dial the
cpu. The write cpu ID ccmmand writes the CPU identification, which is
assiqned by the invitation list for the line.
A read response command
is then issued, followed by a TIC to a read text in the buffer.
X is
the lenqth of the CPU ID specified in the invitation list.
~~r i

te Ini tia 1 Channel Proqram
Operation

Address

Flaqs

Tp Code

Count

Disable
Dial
Read ID

T entry
LCB

CC,SLI
CC,SlI
SLI

11
11
IE

1
X
Y

Tne write initial channel proqram disables and then dials the
specified terminal.
If the identification received is valid, the
proqram restarts on the idles loop and writes data.
If the ID is
invalid, the channel proqram is terminated.
X represents the number
of dial diqits for the terminal and Y represents the lenqth of the CPU
TD specified in the invitation list.

C~ANNEL

PROGRAMS EMPLOYING THE AUTO POLL FEATURE

The devices that use this feature are the fcllowinq:
IBM
IBM
IBM
IBM
IBM
BSC

1030
1050 (nonswitched)
1060
2740 (with staticn control)
2740 (with staticn control and checking)
Multipoint

AppendixD TCAM Channel Pro,grams and TP Operation Codes

1223

Operation

Address

Flags

Tp Code

Write EOT sequence
l?oll

Table
List
A

Ce,SI1
ee,Sl1

01

X

11

y

ee,Sl1

11

Z

CD,SI1

04

2

TIC
A

TIC
Poll

B

List
A
Buffer
Buffer

TIC

B

Count

'Read
TIC

~I

T.his feature employs the read initial t vpe of channel program.
First,
a write EOT sequence command is sent,
followed by a
poll .of the
ad~resses
in the invitation list.
If no positive responses are
returned r the proqram TICs to a poll of another list.
If tbere are
positive responses,
the read initial prcgram TIes to read response
command, and from there chains to a read text in the buffer.
X
represents the number of EOTs dependent on the type of terminal (1 for
BSC·, 3 for all others), Y represents the position in the invitation
list, and Z is the lenqth in bytes of the invitation list~

CHANNEL PROGRAMS FOR IBM BSC MULTIPOINT LINES
Read Initial Channel Proqram
Operation

Address

Flaqs

TP Code

count

Write EOT sequence
~rite pollinq
characters
~ead response
TIC

Table
List

Ce,SLI
Ce,SII

01
03

3
2

Buffer
Buffer

eD,SII

04

2

The read initial channel prcqram places the line in control mode by
sendinq the EOT sequence, polls the terminal, and then reads the
response.
The read response command has a data count of 2.
This
reduces the ccunt to zero and causes data chaining to read the rest of
the. data until -an ETE or ETX is received 6r the count is zero.
A
neqative response causes channel end and device end with. unit
exception and wronq lenqth indicated.
Line End Appendage finds the
pollinq restart Tp code, reinitializes for the next terminal to be
polled, and ·returns control to IDS for. execution of the ecws.
Read Continue Channel Proqram

1224

Operation

Address

Flags

TP Code

Count

Write ACK or .NAK
response
TIC

Table

ee,st!

16

2

Buffer

~he

read continue channel ~roqr~ms writes tbe appropriate·response to
a block of data and then chains to read aata.

'Write Initial ChannelProqram
Operation
Write EO~ sequence
Write addressinq
characters
Read response

:Address

Flaqs

TP Code

count

Table

CC,SII
CC,SlI

01
07

3

08

9

T ,entry

LCE

Tbe write initial channel proqram places the line in control mode,
addresses a terminal,
reads the respcnse (ACK-1), and then begins
transmission of data.
~rite

continue Channel Proqram

, Operation
~ead

response

'rIC

Address

Flaqs

TP Code

Count·

LeE
Buffer

CC,SI1

OA

9

~he

write continue channel prcqram reads the response to the' last
messaqe block.
If the response is positive, chaininq takes place to
the next write text command.

C~AN~EL

PROGRAMS FOR ESC'DEVICES

The devices
IBM
·IBM
IBM
IBM

su~~orted

under BSC channel prcqrams are the followinq:

2770
2780
1130 Ccmputinq System
System/36C, all models 20 and hiqher

CHANNEL PROGRAMS
Read

In~tial

FO~

S/360 to 5/360 POINT TO POINT

Channel Proqram

Operation

Address

Prepare
inquiry
Write ~CK-C
'rIC

LCB
Table
Buffer

~ead

(EINARY SYNCHRONOUS COMMUNICATION)

Flaqs

Tp Code

CC,stI

11
OC
15

CC,StI

Count
1
'1
2

Appendix D TeAM Channel Programs and TP Operation Codes

1225

read initial channel proqram prepares the control unit to receive
an inquiry siqnal, which is read bV the read command. The program
then writes an ACK-O and TICs to a read command in the buffer.

~he

continue Cbannel Prcqram

R~ad

Operation
T~rite

ACK or NAK

TIC

Address

Flaqs

Tp Code

count

Table
Buffer

CC,SLI

16

2

~he read continue channel proqram writes a response (ACK or
mTCs to a read data command in the buffer.

writ~

NAK)

and

Tnitial Channel Prcqram

Operation

Address

'Flaqs

Tp Code

count

write inquiry
response

Table
LCB

CC,SLI
SLI

OD

1

08

2

~ead

write initial channel proqram writes an inquiry,
response (ACK-O), and then beqins transmission of data.

~he

reads the

Write continue Channel Proqram
Operation

Address

Flaqs

'Read· response

LCE

SLI

Tp Code

count
9

~he write continue channel proqram checks the
response to the last
hlock of data
(ACK-O, ACK-1, RVI)
and restarts on a write data
command.

CHAN~EL

PROGRAMS FOR S/360 TO 1130 POINT TO FeINT

Read Tnitial Channel Proqram
Operation

Address

T?repare
'Read inquiry
r~ri te ACK-O
" IC

LCB
Table
Buffer

Flaqs
CC,SLI
CC,SLI

Tp Code

Ccunt

oc

11

1
11

15

2

~he read initial channel proqram prepares the control unit to
receive
an inquiry siqnal, which is read by the read command. The program
then writes an ACK-O and TICs to a read command in the buffer.

1226

Fead continbe Channel Proqram
,Operation

Address

Flaqs

Tp Code

Count

Write ACK or NAK
TIC

Table
Buff'er

CC,S1!

16

2

~he read continue channel proqram writes a
~ICs to a read data command in the tuffer.

response (ACK or

NAK)

and

Write Initial Channel Prcqram
Operation

Address

Flaqs

Tp Code

Count

Write inquiry
"Read response

Table
LCE

CC,SLI
SII

08

2

1

~he
write initial channel proqram writes an inquiry,
response (ACK-O), and then beqins transmission of data.

reads the

write continue Channel Proqram
Operation

Address

Flaqs

Tp Code

Count

'Read response

LCB

SLI

OA

9

The write continue channel proqram checks the response to the last
block of data
(ACK-O,
ACK-1, RVIl
and restarts on a write data
command.

CHANNEL PROGRAMS FOB 5/360 TO 2770 POINT TO POINT
Read Initial Channel Pro.qram
Operation

Address

'Prepare
Read inquiry
write ACK-O
'rIC

LCE
Table
Buffer

Flaqs

Tp Code

Count

CC,SLI

11
OC
15

1

CC,SLI

'1

2

The read initial channel prcqram prepares the control unit to receive
an inquiry siqnal,
which is read by the read command.
The proqram
then writes an ACK-O and TICs to a read command in the buffer.

Appendix D TCAM Channel Programs and TP Operation Codes

1227

~eaa

continue Cbannel Prcqram
Operation

Address

Flaqs

Tp Code

count

Write ACK or NAK
"'IC

Table
Buffer

CC,StI

16

2

The read continue channel proqram writes a response (ACK or
"'lCs to a read data command in the tuffer.

NAKl

and

. 'to.Tri te Initial Channel Prcqram
Operation

Address

Flaqs

Tp Code

Count

~rite inquiry
~ead response

Table
LCB
T entry

CC,SLI
St!
CC,SLI

OD
OE
07

1
2

LCB

SLI

08

2

Write escape sequence
CSTX, ESC or DC,ETE)
~ead response

X

The write init~al channel proqram writes an· inquiry,
reads the
response to that inquiry (ACK-Ol, writes an excape sequence, reads the
response (ACK-1), and then beqins transmiEEion of data,
X represent.s
the lenqth of the addressinq sequence specified in the terminal entry.
write continue Channel Proqram
Operation

Address

Flaqs

'Qead response

tCB

StI

"'he write continue channel
block of data (ACK-O,
ACK-1,
command.

Tp Code

Count
9

proqram checks the response to the last
RVI)
and restarts on a
write data

CHANNEL PROGRAMS FOR S/360 TO 2780 POINT TO POINT
Pead Initial Channel Proqram
Operation

Address

Prepare
inquirv
Write ACK-O
"r.IC

LCE
Table
Buffer

~eaa

Flaqs

Tp Code

Count

cC,St!

11

1

11

CC,St!

OC
15

2

The read initi~l channel proqram prepares tbe control unit to receive
an inquiry siqnal, which is read by the read command,
The program
then writes an ACK-O and TICs to a read command in the buffer.

1·228

Bead continue Channel Proqram
Operation

Address

Flaqs

Tp Code

Count

Write ACK or NAK
'rIC

Table
Buffer

CC,SLI

16

2

The rean continue channel ~roqram writes a response (ACK or NAK) and
TICs to a read data comma~a in the buffer.
Write Initial Channel Proqram
Operation

Address

Flaqs

Tp Code

Count

te inquiry
'Read response
Write escape
sequence STX,ESC
or DC,ETB
~ead response

Table
LCB
T entry

CC,SLI
SLI
CC,SLI

OD
OE

1
2

07

X

LCB

SLI

08

2

r~ri

mhe write initial channel proqram writes an inquiry, reads the
response
(ACK-C), writes the escape sequence, reads the response to
the escape sequence (ACK-1)-, and then beqins transmission of data.
X
represents the lenqth of the addressinq sequence specified in the
terminal entry.
Write Continue Channel Proqram
Operation

Address

Flaqs

'Read response

LCB

S-LI

Tp Code

Count
9

The write continue channel proqram checks tbe response to the last
block of data
(ACK-O,
ACK-1, RVIl
and re~tarts on a write data
command.

CHA~NEL

PROGRAMS FOR 5/360 to S/360 DTAL

Read Initial Channel P.roqram
Operation
Disable
Enable
Read ID inquiry
write ID (if ID is
specified)
Write ACK-O
'rIC

Address

Flaqs

Tp Code

"

LCB
List

CC, SLI
CC,SLI
SLI
CD, SL I

06
18

1
1
16

OB

X

CC,SLI

15

2

Table
Buffer

Count

Appendix D TCAM Channel Programs and TP Opera ti on Codes

1229

The read initial channel proqram disables the line and enables the
control unit. The proqram then reads the inquiry (and writes the CPU
rD, if specified). It then writes an ACK"'O and chains to a read text
command in the buffer. X represents the length in bytes of the userspecifie~ ID in the invitation list.
'Read Initial Channel Program with Connection Established
Operation

Address

Flags

'Reart inquiry
Write ACK-C
TIC

LCB
Table
Buffer

CC,SLI

Tp Code

Count

OC

17

15

rea1 initial channel prcqram reads the inquiry, writes
and then chains tc a read data coromand.

an

~he

ACK-O,

Pead Initial Channel Proqram - CPU Yields the Hight to Transmit
Operation

Address

Flaqs

Tp Code

Write EOT
pead inquiry
Writ~ ACK-O

Table
LCB
Table
Buffer

CC,SLI

01

'TIlC

1
17
2

OC
CC,SLI

Count

15

The read initial channel proqram writes an EOT character and then
reads the inquiry from the station. The read initial channel' program
then writes an ACK-O and continues to read data from the station.
continue Channel Prcqram

~ead

Operation

Address

Flags

Tp Code

Count

Write ACK or NAK

Table
Buffer

CC,SLI

16

2

~IC

The read continue channel proqram writes a response (ACK or NAK) and
TICs to a read data ccmmand in the ~uffer.
write Initial Channel Prcqram
Operation
Disab Ie
Dial
Write CPU ID (If ID is
specified)
r~ri te inquiry
'Read ID ACK-O

1230

Address

Flags

Tp Code

Count

T entry
List

CC,SlI
Ce,SII
CD,SL!

11
11

OB

1
X
y

Table
LCB

ee,SI!
SL1

OD
1A

1
17

~he

write initial channel proqram disables the line and dials the
station.
The proqram writes the CPU IU, if specified, and writes an
ENO character. The response is read and the lD is checked.
The
buffers are tposted to MH, and the channel ~roqram restarts at a write
command.
X represents the number of dial diqits for a terminal, and
Y is the lenqth of the CPU ID.
write Continue Channel Proqram
Operation

Address

Flaqs

Tp Code

Count

Bead response

LCB

SL!

OA

9

write continue channel proqram checks the response to the last
block of data
(ACK-O, ACK-1, RVll
and restarts on a write data
command.

~he

CHANNEL PROGRAMS FOR· S/360 TO 1130 DIAL
~ead

Initial Channel Proqram
Operation

Address

Flaqs

Tp Code

Count

11
06

,

LCE
List

CC,SLI
CC,SLl
SLI
CO,SLI

18

16

OE

X

CC,SLI

15

2

Disable
~nable

'Read ID inquiry
WriteID (if 10 is
specified)
Write ACK-O
TIC

Table
Buffer

1

read initial channel proqram disables the line and enables the
control unit. The proqram then reads the inquiry (and writes the CPU
TD, if specified). It then writes an ACK-O and chains to a read text
c~mmand in the buffer.
X is the lenqth of the CPU IO.

~he

Read Initial Channel Proqram with Ccnnecticn Established
Operation

Address

Flaqs

Tp Code

Read inquiry
Write ACK-O
tt'IC

LCE
Table
Buffer

CC,SLI

OC
15

Count
17

2

The read initial channel proqram reads the inquiry, writes an ACK-O,
and then chains tc a read data command.

Appendix D TCAM Channel Pro9rams and TP Operation Codes

1231

'Read Initial Channel Proqram

-

CPU Yields the Bight to Transmit

Operation

Address

Flaqs

1;o1ri te EOT
Read inquiry
T.o1ri te ACK-O
TIC

Table
LCB
Table
Buffer

CC,SLI
CC,SLI

Tp Code

count

01

1

15

17
2

oc

read initial channel proqram writes an EOT character and then
reads the inquiry from the staticn. The read initial channel proqram
thAn writes an ACK-O and continues to read data from the station.

~he

~ead

continue Channel Proqram
Operation

Address

Flaqs

Tp Code

Count

write ACK or NAK

Table
Buffer

CC,SLl

1E

2

~IC

~h8 read continue channel ~roqram writes a response (ACK or
TI:s to a read data command in the tuffer.

NAK)

and

Wr :.te continue Channel Proqram
Operation
~eaa

response

Address

Flaqs

Tp Code

count

LCE

SLI

OA

9

write continue channel
block of data (ACK-O,
ACK-1,
command.

Th~

proqram ChECks the response to the last
RVI)
and restarts on a write data

CBANNFL PROGRAMS FOR S/360 TO IBM 2770 DIAL

'Read Initial Channel Proqram
Operation
T)isable
'F.'nable
Read ID inquiry
Write ID (i f ID is
specifiEd)
T.o1ri te ACK-O
TIC

Address

Flaqs

Tp Code

LCB
List

CC,SLI
CC,SLI
SLI
CD,SLI

11
06
, 8

1
1
16
X

. CC, SLI

15

2

Table
Buffer

count

read initial channel proqram disablEs the line and enables the
control unit. The proqram then reads the inquiry (and writes the CPU
Tn~
if specifiEd). It then writes an ACK-O and chains tc a read text
command in the tuffer. X is the lenqth of the CPU ID.

~he

1232

~ead

Initial Channel Proqram witb Connecticn Established
Operation

Address

Read inquiry
Write ACK-O
"rIC

LCE
~able

Flaqs
CC,SLI

Tp Code,

count

OC

17

15

Buffer

The read initial channel pr~qram reads the inquiry, writes
and then chains tc a read data command.
~ead

an

~CK-O,

Initial Channel Froqram - CPU Yields the Riqht to Transmit
Operation

Address

Flaqs

Tp Code

r~ri te EOT
'Read inquiry
Write ACK-O
TIC

Table
LCB
Table
Buffer

CC,SLI

01
OC
15

CC,SLI

Count
1
11
2

read initial channel proqram writes an EOT character and then
reads the inquiry from the station. The read initial channel proqram
then writes an ACK-O and continues to read data from the station.

~he

~eaa

continue Channel Proqram
Operation

Address

Flaqs

Tp Code

Count

Write ACT< or NAK
TIC

Table
Buffer

CC,SLI

16

2

~he
read continue channel proqram writes a response (ACK or NAK) and
TICs to a read data command in the buffer.

Write Initial Channel Prcqram
Operation
Disable
Dialdiqits
Write CPU ID (if ID
is specified)
Write inquiry
~ead ID ACK-O
Write escape
sequence
'Read ACK-1

Address

Flaqs

Tp Code

count

T

entry
List

CC,SLI
CC,SLI
CD, 5L I

'1
'1
OB

X
y

Table
LCB
T entry

CC,SL1
5L1
CC,SLI

OD
1A

1
11

01

Z

08

9

LCB

,

The write initial channel proqram disables the line and dials the
station.
The proqram writes the CPU rD, if specified, and writes an
BNQ character. The response is checked~ The buffers are tposted to

Appendix D TCAM Channel Prcgrams and TP Operation Codes

1233

~~,
and the channel proqram restarts at the write escape sequence.
'l"he ACK-1 is read bv the proqram and then the program chains to 'a
write command. X represents the number of dial digits for a terminal,
Y
is the lenqth of the CPU ID, and Z is a' device dependent variable.

write continue Channel Proqram
Oneration
~ead

response

Address

Flaqs

LCB

SLI

Tp Code

Count
9

write continue channel proqram checks t~e response to the last
of data
(ACK-O, ACK-1, RVI)
and restarts on a write data
command.

'l"he

bloc~

~~AN~EL

PROGRAMS FOR S/360 TO IBM 2780 DIAL

"q ~ad Initial Channel Proqram
f)peration
Disable
abl e
~eaa ID inquiry'
write ID (if ID is
speci fied)
T.Tri t~ ACK-O
'fIlC

Address

Flaqs

Tp Code

LCB
List

CC,StI
CC,SLT
SLI
CD,StI

11
06
18

1
1
16
X

CC~SLI

15

2

~n

Table
Buffer

Count

~he read initial channel proqram disables the
line and enables the
control unit. The proqram then reads theinquirv ~nd writes the CPU
TD, if specified). It then writes an ACK-O and chains to a read text
command in the buffer.
Xis the lenqth of the CPU ID.

Pead Initial Channel Proqram with connecticn Established
)

Operation

Address

Flaqs

"qead inquiry
r>1ri te ACK-O
TIC

LCB
Table
Buffer

CC,SLI

Tp Code

Count

QC

17

15

2

The read initial channel prcqram reads the inquiry, writes an ACK-O,
and then chains tc a read data command.

1234

Read Initia'l Channel Proqram - CPU Yiel(is the Riqht to 'Iransmi t
Operation

Address

Flaqs

Tp Code

Trlrite EaT
Read inquiry
Write ACK-O
TIC

Table
LCE
Table
Buffer

CC,SLI

01
OC
15

CC,SLI

Count
1
17
2

read initial channel proqram writes an EaT character and then
reads the inquiry from the staticn.
The read initial channel proqram
then writes an ACK-O and continues to read aata from the station.
~he

~ead

continue Channel Proqram
Operation

Address

Flaqs

Tp Code

Count

write ACK or NAK
TIC

Table
Buffer

CC,SLI

16

2

~he

read continue channel proqram writes a response
TTCS to a read data command in the tuffer.

(~CK

or

NAK)

and

write Initial Channel Proqram
Operation
Disable
Dial diqits
Write CPU ID (if ID
is specified)
write inquiry
Read ID ACK-OWrite escapE
sequence
Read ACK-1

Address

Flaqs

Tp Code

Count

T entry
List

CC,SL1
CC, SL1
CD,SLI

11
11

X

OE

y

Table
LCE
T entry

CC, SL I
SLI
CC,SL1

OD
1A

1
9
Z

LCB

07

1

08

~he

write initial channel proqram
disables the line and dials the
station.
The proqram writes the CPU ID, if specified, and writes an
ENO character.
The response is checked.
The buffers are tposted to
MR, and the channel proqram restarts at the write escape sequence.
~he
ACK-1' is read by the proqram and tben the proqram chains to a
writ~ command.
X represents the number of dial diqits for
the
terminal:
Y represents the lenqth of the CPU ID specified in the
invitation list:
and Z represents the length of the addressing
sequence in the terminal entry.

ApFendix D TeAM Channel Programs and TP Operation Codes

1235

SPECIAL CHANNEl FBOGRAMS
In ESC on a read continue operation, when a temporary time delay (TTD)
sequence (STX ENOl is received the channel ~roqram is as follows:
Operation

Address

Flaqs

Tp Code

count

Write NAK
TIC

Table
Buffer

CC,SLI

16

2

When, in response to a text request, TCAM receives two RVIs in
succession, a WACK character (except for buffered terminals), or an
invalid response, TCAM qenerates the followinq channel proqram to
correct the prcblem.
Operation

Address

Flaqs

Write F,NO
Response

Table
LCE

CC,SI1

~ead

TP

5B

OA

Cod.e

Count
1
9

For two RVIs or an invalid response, TeAM retries this channel
nroqram seven times.
For a WACK character, TCAM performs no retry
operation.

1236

MESSAGE CONTROL PROGRAM

WTOR Inte·rpreter

INTRO Macro Expansion
•

Save the user's registers in a· save area pointed to by register 13.

•

Chain the program save areas together.

•

Set register 13 to point to the MCP save area, wh ich is the first 18 words of
the AVT. This establishes register 13 as the program base register.

•

Store register 1 of OS Job Management at AVTSPLPT in the AVT.

•

Link to the Link routine.

IEDQOB

•

If the pointer to .the TCAM Dispatcher at CVT+240 is not equal to zero,
return with an error code.

•

Conduct a conversation with Write-to-Operator-with-Reply (WTOR) to
override certain INTRO parameters that were set at assembly time.

OS
iEDQE6
IEDQOA
~

Next sequential instruction

(This should be user code to examine the return code: if the return
code is not equal to zero, terminate the MCPi otherwise, continue to
process the MCP.)

•

Link to WTOR Interpreter.

•

Interrogate the return code. If it is not zero, write the appropriate error
message and return immediatelYi otherwise continue.

•

Link to the Password Scrambler.

•

Link to the INTRO Getmain routine.

•

Examine the return code, as before.

•

Link to Termname Table Sort\ routine.

•

Examine the retvrn code, as before.

•

Link to the Attach routine.

•

Return to the INTRO macro expansion.

•

Scramble the input password and store the result at AVTPASWD in the AVT:

OS~
14=======;:;7 OS
INTRO Getmain Routine

::::::===••1·.

OS

IEDQOG

Examine the AVT and issue GETMAINs for main storage for buffers, CPBs, and
Trace Tables. Clear and format these areas according to AVT specifications.

IEDQOM

Open Message Queues DCB
(See Chart 2)
•

Sort the Termname Table entries into alphabetical order and adjust the AVT
offsets.

•

Perform val idity checking and corrections on the Terminal Table.

•

Set a return code in register 15 to indicate whether all functions were
successfully completed.

OS
LEGEND:

==I0S~

>

Control flow through
the Operating System (OS)
Control flow through a
branch or sequential. instructions
Attach Routine

Chart 1.

IEDQOS

•

Attach the Operator Control, On-Line Test, and FE Common Write tasks.

•

Load the System Delay subtask if the system delay interval is greater than
zero.

•

Load the Operator Awareness Message Router if the system console is not the
primary operator cpntrol terminal.

Initialization of a Messaqe Control Proqram

Method of Operation Charts

1237

MESSAGE CONTROL PROGRAM

INTRO
OPEN Message Queues DCB . =========!:~)I
OPEN Checkpoint DCB

System
Open
Executor

Dscrr

os

"

..

IGG01930

No. of extents

I

•
•

Calculate the number of extents on this data set from the Data Set Cantrol Block (DSCB).

•

Branch via on XCTL instruction to the next nonzero entry in the system Where-to-Go TableIGG01931.

..

.. ~EB

Obtain main storage for and initial ize the Data Extent Block (DEB).

.j~

+ TCB
+ next DEB
+ DCB
No. of extents

" l.OS

No. double words

+ UCB
IGGOl931

•

Complete the initial ization of the DEB and of any DEB extents.

•

Obtain and initialize main storage for an Input/Output Block (lOB) for each extent.

.....

• Branch via an XCTLinstruction ta the next nonzero entry in the system Where-to-Go TableIGG01934.

lOB

+"

ECB

+

DCB

- I.OS

...

IGG01934

• Load the TCAM Dispatcher I and place a pointer to the AVT address in the CVT.
•

load the EXCP Driver and Disk.End Appendage.

•

Load the Reusability-Copy subtask, if it is required.

• Branch via an XCTL instruction to the next nonzero entry in the system Where-to-Go Table.

LEGEND:

+

..

=lOS!=>

Pointer or address
Control Flow through OS
Data Reference

Chart 2.

Functions of Open Disk Messaqe Queues Data Set
~ethod

of Operation Charts

1239

MESSAGE CONTROL PROGRAM

IGG01941

Checkpoint Open Routine

INTRO
OPEN Messages Queues DCB
OPEN Checkpoint DCB
OPEN Line Group DCB
READY

Checkpoint Disk Allocation Routine

==tOS

IGG01949

•

Issue a GETMAIN for a checkpoint work area. The size is determined by the number of
CKREQ queues and environment checkpoint records specified in the AVT.

•

Scan-the TCAM tables to determine the size of the e~vironment checkpoint record and the numb~r of disk records to contain it.

•

Put the address of the checkpoint work area at AVTCKGET in the AVT.

•

Determine the number of tracks in the checkpoint data set.

•

Load the Checkpoint Disk End Appendage and put its address in the DEB.

•

Determine the size of the incident and CKREQ records.

•

Initialize the checkpoint work area by building an lOB and CONs in it.

•

Branch via an XCTL to the next nonzero entry in the system Where-to-Go Table - IGG01942.

•

Examine the JFCB to determine the disposition of the checkpoint data set.

OS

Cold Start or Old and Cold Restart======!==!.l

Old and Warm or Continuation Restart

Checkpoint/Restart from Environment Record R~utine

IGG01942

•

Initialize the disk checkpoint data set into specific areas for a control record, environment records, CKREQ records, and incident records.

•

Branch via an XCTL to the next nonzero entry in the system Where-to-Go Table - IGG0190S.

·IGG01943

•

Determine which environment checkpoint record to use to reconstruct the MCP
env ironmen t .

•

Read the environment record segments and fi II in the MCP tables.

•

Branch vio an XCTL to the next

non~ero

Checkpoint Disk Initialization Routine

entry in the system Where-to-Go Table -IGG01944.

Checkpoint/Restart from Incident and CKREQ Records Routine

IGG01944

•

Read the incident and CKREQ records from the checkpoint data set and update the
MCP tables.

•

If this is a continuation restart, set up to activate the Continuation Restart routine.
Issue anXCTL to IGGOJ945.

•

Branch via an XCTL to the next nonzero entry in the system Where-to-Go Table -IGG0190S.

Continuation Restart Routine

•

If this is a warm start with no scon of the message queues, locote the last message placed on each FEFO queue before the last checkpoint and zero the FEFO chain
field of all messages placed on the queue subsequent to that checkpoint; then issue an XCTL.

•

If this is an OS synchronized restart, scan the FIFO message queues for the specified process entry and recreate a tEFO queue in FIFO order to include all messages
placed on the FEFO queue after the last checkpoint. Otherwise, scan each FIFO message queue and recreate a FEFO queue in FIFO order of all complete,
unserviced, and uncanceled messages.

•

Update the sequence numbers and recreate the queue-back chain.

•

Branch via an XCTL to the next nonzero entry in the system Where-to-Go Table - IGG0190S.

EXCP Driver
•

Perform the disk I/O

IGGOl945 and IGGOl9Q8

LEGEND:

===lOS/==>

Control flow through OS

====::>

Control flow through branch instructions

Chart 3.

Functions of Checkpoint Open

Method of Operation Charts

1241

MESSAGE CONTROL PROGRAM
INTRO
OPEN Message Queues DCB
OPEN Checkpoint DCB
OPEN Line Group DCB
READY

IGG01935

==================================~~S~/==========================~
j
I

• 'Determine the number of lines in the line group by examining the Task I/O Tabl,e (TlOT).
•

For each line group, obtain main storage for a line Data Extent Block (DEB) and initialize it with the Unit Control Block address
from the TlOT.

•

Ascertain that there is graphics or telecommunications equipment on each line and that the devices are compatible with the options
specified in the UCB.

• Issue an XCTL to branch to the next nonzero entry in the system' Where-to-Go Table - IGG01936.

IGG01936
•

Provide the number of CCWs required for a minimum channel program for all devices on each line.

•

Provide for additional CCWs as determined by the optional feature bits in the UCB and a typical DCT entry for each device.

•

Obtain main storage for one LCB for eOFh line in the line group.

•

Place the Send Scheduler STCB in the STCB chain of the Destination QCB.

• Issue an XCTL to branch to the next nonzero entry in the system Where-to-Go Table - IGGOI937.

IGG01937
•

Initial ize an LCB for each' Iine in the line group.

•

Put the Send Scheduler STCB in the STCB chain of the LCB if send priority is specified.

•

Issue an XCTL to branch to the next nonzero entry in the system Where-to-Go Table - IGG01938.

IGG01938
•

Build channel programs in each LCB.

•

Reset the error tob in each UCB.

• Issue an XCTL to branch to the next nonzero entry in the system Where-to-Go Table - IGG01939.

IGGOJ939
•

Load the TCAM Dispatcher and place a pointer to the AVT address in the CVT. Update the OS Contents Directory usage count.

•

Load the appropriate receive schedulers, the Start-up Message routine (if requested), and the TSO Attention routine (if requested).

•

Issue an XCTL to branch to the next nonzero entry in the system Where-to-Go Table - IGG01940.

y
OS



Control flow through OS

•

Initialize any appropriate Cross Reference Table entries.

•

Ascertain that each line has an I/O interrupt to indicate that it is ready. If a line is not complete, observe a 28-second
delay and retest. If st; II not complete, send a message to the system console to indicate that this line is unavailable.

•

Issue an XCTL to branch to IGG01934, which transfers control to the READY macro expansion.

Chart

[J.

Functions of Line Group Open

Method of Operation Charts

1243

MESSAGE CONTROL PROGRAM

INTRO
OPEN
OPEN

"]

DCB
DCB

READY Macro Expansion
•

link to the Ready routine.

•

Put the address of AVTSAVE2 in register I. This establishes a parameter lIst for the TCAM Dispatcher.

•

Obtain the address of the Dispatcher from AVTSAVE2+68.

•

Turn on the "READY completed" bit (AVTBITI) in the AVT.

•

Branch to the TCAM Dispatcher.

Ready Rout i ne

IEDQND

•

Attach the Checkpoint Executor subtask if there is an open checkpoint DCB. An open checkpoint DCB is
indicated by the presence of an address in AVTCKGET in the AVT. Also, put a checkpoint request element .on
the ready queue so that an environment checkpoint will be taken when the Dispatcher is activated.

•

Put all incident checkpoint records (except Start and Stop Line) in the operator control work area for processing.
post the Operator Control ECB.

•

Put any Destrnation QCB that has the CLOCK= or INTVL= operand on the time delay queue.

•

)fOn-Line Test is spe~ified, ascertain that there is enough main storage available for the test functions to be
performed.

•

Return to the READY macro expansion.

OS J--.:::::::::==~~

OS
OS
TCAM Dispatcher

IGCOIIOD

•

Process the records in the work a rea.

•

Post the TCAM ECB.

LEGEND:
=:/OS/==:>

>

Control fl.ow through OS
Control flow through branch instructions or sequential flow

Chart 5.

Functions of the READY Macro Expansion and Routine
Method of Operation Charts

1245

Element X
QcB2

QCB I

t

Element X

Subtask A
•

Perform a tpost by putting the address of the new QCB in the RCB of the element.

•

Bronch to the TCAM Dispatcher at DSPPOST.

STCB A

t

t

TCAM Dispatcher
•

Put the address of the element into the ready queue chain by priority.

,

,,-

I
QCBJ

~------~'----------------',/
Element X

STCS A

I

;'

I

Element X

'J~

QC",

t

Link

I

t

Element Y

MCPL

Subtask A code

•

Merge the disabled onto the enabled ready queue by priority, if there are any element, on the
disabled ready queue.
Disabled Ready Queue
First Element
lost Element

•

Remove Element X from the. ready queue by placing its address in register 'J.

•

Update the ready queue by placing the link field of Element X in· the ready queue.

Ready Queue

QCB2
•

Examine the element pointed to by register J.
a.

If the QCB points -to an STCB that has on MCPL of X'OO'; there is no work to be done; therefore,
issue on as WAH.

b.

If the element represents on attached task (MCPL = X'02'), post the ECS for that task complete so
that the task can vie for control when a TCAM WAIT is issued.

c.

If the MCPL is neither X'OO' nor X'02', get the entry point for the highest priority subtask
represented on the STCB chain of the QCS. Branch to that subtask.

_- -

~LI_Re_9_i_st_er__J __________________~
QCS2

t

t

+

- - - -_ _ _--.0'1 Element

t

~----~--------------~

Link

sycs 2
STCB 2
MCPL

S~btask 2 code

LEGEND:

-=====:> Control flow

through
bronch commands

- - . Original data Iinkoge

- - - - ... Data movement

chart 6.

Summary of the

Dispatc~inq

Functions of the TeAM Dispatcher
Method of Operation charts

1247

READY
Macro
Expansion

TCAM Dispatcher

IGGOl9RS

Occur only during the first
pass through the Dispatcher

~

(
•

{

•

Save the user's registers in AVTSAVEI of the AVT.

•

Retrieve the data in AVTSAVE2 of the AVT and store it for
Dispatcher use.

•

Perfonn action according to the entry point designated by the
returning routine.

____________________________________________________________________~________~____~Jl~______~______________~--------------~--------------~--------------~~-------------1
DSPDISP
DSPLIST
DSPCHAIN
DSPWAIT
DSPSYPAS
DSPDLETE
DSPPOST (DSPPOSTR)
DSPTSTQ (DSPTSTQR)
DSPUNAV (DSPUNAVR)
DSPPRIO (DSPPRIOR)
DSPLIFO (DSPLIFOR)
Indicates that the
subtask return ing to the
Dispatcher has no
elements to add to the
ready queue.

•

RI

Indi cates that the
elements (RCBs) that
the return ing subtask
wishes to add to the
ready queue have
pointers stored in a
parameter I ist pointed
to by register I. The
high order byte of the
last pointer contains
X'80' to indicate the
end of the chain.

•

t
+ H=D

List

80

t
t

~

-..[IJ
~

•

Indicates that the
returning subtask
wishes 'to process an
element from the
element chain of the
QCB. If there is no
element present, the
subtask twa its for an
RCS to be tposted to
the element cha in.

•

2
,
QC~ (~

I

q=]

Delete the Start-up
Message routine and
then perform the
DSPCHAIN entry
point functions.

•

Indicates that the
subtask return ing to
the Dispatcher wishes
to have one element
tposted to the ready
queue. Register 1
conta ins the address
of the element
(RCB) to be tposted.

•

Indicates that the
subtask return ing to
the Dispatcher wishes
to see 'whether its
STCS is twaiting in
the STCS chain of a
QCS pointed to by
register 3. If it is
not, the Dispatcher
is to chain the STCS
into th:Jt QCS's
STCS chain.

•

Indicates that the
subtask return ing to
the Dispatcher
wishes to have its
STCS removed from
the QCB chain it is
in and placed in the
STCS chain of Q QCS
pointed to by
register 3.

•

Indicates that the
return ing subtask
wishes the Dispatcher
to place the RCS
pointed to by register
1 into a chain
painted to by'register
7. The item is to be
placed in the chain
by priority.

•

Indicates that the
return ing subtask
wishes the Dispatcher
to place the RCS
pointed to by register
I into the first spot
(in a chain pointed)
to by register 7.

I~ QCS

RCS

i

{.

-

I

RCBs

~

•

Indicates that the
Subtask returning to
the Dispatcher wants
the Dispatcher to
immediately process
the next STCS in the
STCS chain of the
QCS being examined.

RCS

RCSs

-,

+

Indicates that the
elements that the
return ing subtask
wishes to add to the
ready queue are
chained together, and
the first one is pointed
to by register I. The
link field of the last
item in the chain
contains X'XXOOOOOO'

QCB

I

I

I
0

,,

I
I

J

I

I

(f$RCB

I
I

I

I

,

~

STCB

QCS

J

,

,,

I

Link

I

I

,,
I

I

I

V

STCS

I

I

I

Subtask Code

C.

I

I

/

t STCBD,

I
I

I)

(.

I
I

~/I

0

\~Subtask Codel

~-----~------------------------~-----------------------------------y ~--------------------------------------------~----------------------------~--------------~)
•

If the return ing routine did not have an "R" as the lost letter of its
name, processing continues through the Dispatcher; otherwise,
control returns to the returning routine once the queue management
functions are complete.

•

Merge any elements on the disabled ready queue on to the enabled
ready queue by priority in FI FO order.

•

Remove the element from the top of the ready queue.

•

Examine the element just removed. If this is a "dummy" element with
an STCB MCPL field of zero, the ready queue is empty I so issue a
system WAIT. If the element is for on attached subtask,OS post
the attached task complete and branch bock to exam ine the next item
on the ready queue. If neither of the above situations applies, compute
the subtask entry point and exit to that subtask.

Chart 7.

Summary of the Queuinq Functions of the TeAM Dispatche'r
Method of Operation Charts

1249

MESSAGE CONTROL PROGRAM
Destination QCB
(Main Storage or Disk)

APPLICATION PROGRAM

Outgoing to Application
Program

MHR

Read-Ahead QCB

MHR

Line

-"OJ

L

Buffer

J- -.

..J

INHDR

Buffer

·-1

I

1

...

.I

OUTHDR

Buffer

l

if
Buffer

INBUF

INMSG

1\

Buffer

I

OUTBUF

I

OUTMSG

I~

Buffer

I~

Buffer

If

J- r&l

Work Area

J

I
I

~
\1\

0
ID
(0

VI

~.

0'':S"

~.

ID

Destination QCB

(Ma'"\O""'" 0'

LINE CONTROL

Di.k)

MHR

Line

~ -{

Incoming from Application
Program to MCP

Buffer

r-

BUFFERING

r-

MHR

H

Buffer

L

OUTBUF

Buffer

I

INBUF

OUTMSG

Buffer

I

INMSG

MHR

QUEUING

OUTHDR

~

I

INHDR

.-

J

MHR

Chart 8.

I

Buffer

r

~ Work AreaJ

BUFFERING

~CAM

Messaqe Flow

Method of Operation Charts

1251

IGG019Ql, IGG019RD, IGG019Rl, or IGG019R3

Receive Scheduler

•

Tpost the ERB to obtain buffer untis to the Bur"fer Request QCB .

Buffer Request Routine

IEDQGA

•

Obtain buffer units from the buffer unit pool. Allocate the buffers.

Buffer Association

•
•

Branch via a BALR instruction to Buffer Association.

I

I

• Build Read CCWs in the buffers.

Tpost the ERB with the buffers chained from the chain field of the ERB to the Activate QCB.

Activate-I/O Generator Subtask

•

IEDQGD

·•

IEDQKA, IEDQKB, IEDQKC, IEDQKD, or IEDQKE

Build the initial contact channel program to poll the invitation list.
Check the line and define the terminal to poll.
Issue EXCP to accept a message.

)V
os

1f

===========================1'/ as

I/O Interrupt - -

IGG019RO, IGG019Q2, IGG019Q3, IGG019Q4, or IGG019Q5

Line End Appendage

Yes

•

Tpost the buffers to the STARTMH QCB for message handling in an incoming subgroup . •

_ _ _ _•

STARTMH
Subtask
(I EOQAA)

No

•

Tpost the LCB to the Buffer Disposition QCB to have the buffers and the line freed.

LEGEND:

----Ill.

Buffer Disposition Subtask (lEDQBD)
Control flow through the TCAM Dispatcher

========:::> Control flow through a branch instruction

=::J' OS P

Control flow through

as

Chart. 9.

Functional Flow in a

~eceive

Operation

Method of Operation charts

1253

S~nd Scheduler

IGG019RD or IGG019R4

• Tpost the ERB to the Disk I/O QCB to get the buffers of a message from a message queue.

CPB Initialization Routine

IEDQFA

• Start getting the message from the message queue of the destination and tpost the ERB with the full buffers to the Activate QCB.

Activate-I/O Generator Sub task

IEDQKA, IEDQKB, IEDQKC, IEDQKD, or IEDQKE

•

Build a send channel program.

•

Issue EXCP to address the term ina I.

jJ,
·OS

I/O Interrupt

1f

=

~ 'OP"" "0'
~

OS

IGG019RO, IGG019Q2, IGG019Q3, IGG019Q4, or IGG019Q5

Line End Appendage

::::;=======C>.
Positive

LEGEND:

Tpost the buffers to the STARTMH QCB for outgoing message handling.

• Tpost the buffers with an error indicator to the STARTMH QCB in order to return control to the outgoing subgroup for error handling.
If there is a hardware error, initiate error recovery procedures.

- - - -...~ Control flow through the TCAM Dispatcher
===~:»

::::ontrol flow through a branch instruction

===/OSJ::=:==;>

Control flow through

as

STARTMH Subtask (IEDQAA)

Chart 10.

Functional Flow in a Send Operation
Method of Operation Charts

1255

Line Group Receive Operation

Buffer Unit Pool
Receive Scheduler

•

Get the ERB from the LCB.

•

Tpost the ERB to the Buffer Request QCB.
Receive Scheduler ERB
QCB

t

Buffer Request STCB

Register 1

Count

Count

ERB
QCB

+

Chain

i
Count

Buffer Request Routine

IEDQGA

•

Check the DCB to get the number of units in one buffer.

•

Get the units for the required number of buffers from the buffer unit pool. (If the units are not available, chain the
ERB by priority into the element chain of the Buffer Return QCB and exit. Otherwise, continue.)

•

Chain the units off the chain pointer in the third word of the ERB.

•

Reconstruct the buffer unit pool chain. (See Figure 25.)

• Branch via a BAL instruction to Buffer Associotion.
Buffer Associati on
•

Build a Read CCW and a TIC in each 12-byte unit control area and chain the units together by the TIC commands.
(See Figure 26.)

rr=====================================I============================~.
•

IEDQGD

Return via a BR 14 instruction.

Tpost the ERB to the Activate QCB. This is notification that the request has been satisfied and the system is ready to
~eceive.

Register 1
IEDQKA

Activate Subtask

•

t

Activate QCB

Establish initial contact with the line for a receive operation.
Chain

t
·STCB

t

LEGEND:

-----111..

Control flow through the TCAM Dispatcher

=====~> Control flow through a branch instruction
------I.~ Dato flow

Chart 11.

Functions of an Initial Buffer Request in a Receive
Operation
Method cf Operation Charts

1257

Line Group Send Operation
Send Scheduler

IGG019R4

Destination QCB

ERB
QCB

The Send Scheduler STCBis in the STCB chain of the Destination QCB for the line. This routine needs to get buffers in order
to read from the message queues data set to the line. The buffers must handled by outgoing MH and then set to the line.
•

Gain control of the line •

•

Tpost the ERB with a count of the required buffers to the Disk I/O QCB.

STCB

+

+
Count

Count
Send Scheduler STCB

STCB

t

CPB Initial ization STCB

CPB Initialization

Disk I/O QCB

IEDQFA

•

Refer to the line DCB to get the number of units per buffer.

•

Put the ERB on the no-CPB queue to get the CPBs from the CPB free pool.

•

Initialize the SCB with the address of the record to read from the message queues data set (SCBSCSEG).

•

Get the CPBs from the CPB free pool.

•

Build Seek Search Read CONs in the CPBs.

•

Chain the CPBs off the EXCP Driver input queue.

•

Branch to EXCP Driver.

STCB

ERB

+

QCB

t

Chain

+

r---------~------------~~
CPB Initial ization STCB

EXCP Driver

IGG019RC

X'02'

• Add Seek Search CCWs to the CPBs, if necessary, and chain the CCWs together.
•

Branch ";ia BAL to the MBBCCHHR Convert routine.

MBBCCHHR Convert Routine

II

I •

•

Place the CPB on the proper lOB input queue by CC priority.

•

Build command chain and chain data flags.

•

Issue an EXCP

•

Branch to the TCAM Dispatcher.

IEDQFP

Convert the message queues data set address to MBBCCHHR format.

I

Jc=======================~================F=====================~

comma~

to initiate channel activity.

LEGEND:
- - - -•• Control flow through the TCAM Dispatcher

TCAM Dispatcher

=======~> Control flow through a branch instruction
- - - - - - - I••

Data flow

Chart 12.

Functions of an Initial Buffer Request in a Send
Operation (Part 1 of 21
Method cf Operation Charts

1259

Channel End/Device End on a Disk Operation - 105 issues a BALR to Disk End Appendage

ts

~

Disk End Appendage
•

IGG019R2

locate the appropriate DEB.

• Move the CPBs that are on the EXCP queue (lOBSTART) to the Disk End queue.
• Tpost the CPB Cleanup QCB to itself and put it. on the disabled ready queue.
• OS post the TCAM ECB to indicate that the I/O operation is complete.
•

If there are no CPBs on the lOB retry queue, return to 105 with channel activity stopped; otherwise,
chain the CPBs onto the EXCP queue and return to channel restart in lOS.

t
105

CPB Cleanup QCB tposted to itself on top of the enabled ready queue

I

CPB Cleanup Routine

•
•

•

IEDQFQ

Process the CPBs on the input queue to return them to the CPB free pool.
Since these are read CPBs, for each CPB get a unit from the buffer unit pool, place it in the ERB buffer
chain, and move the CPB data to the unit.
Branch to CPB Initialization when the last CPB is processed.

CPB Initialization

IEDQFA

• Tpost the ERB with full buffers to the Activate QCB.

IEDQKA

Activate Subtask
• Build the initial contact channel program and issue an EXCP.
I/O Interrupt

~
OS

Line End Appendage
• Tpost the full buffers to the STARTMH QCB.

LEGEND:
TCAM Dispatcher

=I OSJ==!:> Control flow through OS
- - - -••~ Control flow through the TCAM Dispatcher

====:>:> Control

flow through a branch instruction

Chart 12.

?u nctions 0 f an Initial Buffer Fequest in a Send
Operation (Part 2 of 21
Method cf Operation charts

12 E1

ERB tposted to the Buffer Request QCB when there are no buffers available during an initial
request for a line, an application program request, or a PCI.

Buffer Request Routine

•

IEDQGA

Receive Operation:

Send Operation:

1.

At Buffer Disposition, unused buffers are tposted to the Buffer Return QCB.

After a buffer is sent on a line, PCI Appendage tposts the buffer to the Buffer Return QCB.

2.

At Line End Appendage, or PCI, buffers are deallocated (not freed) from the channel
program.

3.

When the buffer is tposted to the Destination QCS, the buffer is chained to the CPB and
the unit is tposted to the Buffer Return QCB.

Exit to DSPPRIO to put the ERB in the element chain of the Buffer Return QCB.

I
IEDQGB

Buffer Return Routine
•

Chain the buffer units off the element chain of the Buffer Request QCB - this is the buffer
unit pool.

Is there an
ERB waiting for
buffers?

No
•

Exit to DSPDISP in the TCAM Dispatcher.

Yes

•

High Priority ERB (initial request, first PCI, disk request) - complete the request as in an
initial buffer request by entering IEDQGA.

•

low Priority ERB (subsequent PCI) - enter Buffer Association (lEDQGD), which builds CCWs
in each buffer unit and includes the buffer in the channel program by including it in the
CCW chain for the LCB.

Is the
request completed?

No

~==========================~-

•

Rechain the ERB by priority into the element chain of the Buffer Return QCB.

•

Return to the TCAM Dispatcher.

Yes

•

Release the ERB to be used by another request.

•

Drop the ERB from the element chain of the Buffer Return QCB. Rely on PCls for additional
buffers.

•

Return to the TCAM Dispatcher.

TCAM Dispatcher

Chart 13.

Functions of Buffer Return

Method Of Operation Charts

1263

•

TCAM Dispatcher

1

Buffer Disposition Subtask

IEDOBD

)1:====*:::::>
Yes

•

•
STARTMH Subtask

IEDOAA.

•

Place the address of the buffer in the AVTADBUF field
of the AVT.

•

Place the number of reserved characters in the LCB and
in the buffer prefix.

•

•

•

Set up to execute the routine for the
next macro.

Get the routine address from an AVT
table of addresses.

Tpost the buHer to its
Destination OCB.

MH Functional Routine
No

Tpast any unused buffers
to the Buffer Return QCB.
Exam i ne the next user-coded
macro.

• Bra nch to the address in
LCBRCOCB =======t==~Routine "X"

•

•

Perform the
fonctions indicated
by the ma era •

•

If a reca lied header
buffer was not
required, tpost the
ERB to the Buffer
Disposition QCB
and exit to the
TCAM Dispatcher.

•

Tpost the buffer to
the Desti no tion
QCB.

•

Set LCBRCOCB to
point to Buffer

Tpost the LCB to the IEDOBD02 entry
point of Buffer Disposition.

No
•

~INMSG ----.. Incoming/Outgoing

INBUF

IEDOA4

message Delimiter Routine
•
No

The functional
routines indicated
by the user-coded
macros handle the
buffer.

Tpost the buffer
to the Buffer
Disposition OCB.

II
•

Tpost the buffer
to the' Disk I/o
OCB to be
marked serviced.

•

Tpast the ERB to the Disk
I/o OCB.

•

Set LCBRCOCB to point to
Buffer Disposition

•

Exit to the TCAM Dispatcher.

Disposition.

The functional routines and subroutines
ind i cated by the user-coded MH macros
hand Ie the buffer.

this a header>:===:>. The functional routines
buffer?
and subroutines indicated
by user-coded MH macros
handle the buffer.
No

•

Tpost the ERB to the Disk
I/O OCB to get a recalled
header •

•

Set LCBRCQCB to point to
the Multiple Routing subtask.

IBDOBD

No

CPB InitiC!lization

•
•

Tpost the LCB to
itself to free the
line.

•

Exit to the TCAM
Dispatcher.

=====t=======1l

IEDQFA

• Get a recalled header buffer.
IEDOA4
IEDQBA

Multiple Routing Subtask

• Branch to Buffer
Buffer Associatiort
Association in the Buffer
• Build CeNs a/1d TICs
Management module.====j:=~

•

Tpost buffer to the correct Read-Ahead OCB.

IEDOGD

•

Get the ERB,

•

Tpost the unused buffers to the Buffer Return OCB.

•

If the input elem'ent is an ERB, get the current buffer address .

•

Link to the Forward routine to scan for the destination name.

•

Tpost the ER B to the Bu Her
Disposition QCB and indicate
the end of a receive operation.

1S

•

Tpost the buffer to the Buffer
Return OCB. =======~F=====.J

~

•

Tpost the ERB to the Disk I/o
OCB to get another buffer.

•

Set LCBRCQCB to point to the
multiple Routing subtask.

os

TCAM Dispatcher

The message is sent.
I/O Interrupt

Line End Appendage
•
LEGEND:

====:::::>

1

At end of message, tpost the
buffer to the Buffer Disposition OCB.

----+-.

•

Tpost the buffer to the Destination
OCB to be sent .

•

Exit to the TCAM Disp,atcher,

The header is obta ined and
Disk End Appendage returns
to the Multiple Routing
subtask.

Control flow through a branch or sequential instructions

Control flow through the TCAM Dispatcher

==I OS,J:=::>

Control flow through OS

Chart 14.

Flow of Buffers throuqh a Messaqe Handler

Method of Operation Charts

1265

®-'-

Incoming MH Group

Addl)
"

--

6b

•

Tpost the first message segment to its Destination QCB .•
AVT

JJ./
Destination Scheduler

Locate the message queues data set address for the first unit by examining QCBDNHDR
in the Destination QCB.

///

2. Store this value of address in the buffer prefix (PRFCRCD) and in the SCB (SCBCHDR).

1/
3. Place the AVTNADDR value in the next-message field (QCBDNHDR) in the Destinati,on

I

QCB, in the buffer prefix (PRFNHDR), and in the SCB (SCBNHDR) to indicate the location for the
first buffer of the next message to be rece ived.

I

I

I

IF there are:
a.

c.

-----

f:\2

'\

1I

\\

\

\
'\

"

"

Yes

'

/'X'

,/",-. /---------

\\

/

I

.....

'... '-

I(uffer 1 Prefix

\,
",

Set up the queue-cack chain.

/

=====::> Control

flow through a branch
or sequential instructions

~Data flow

Use CPBs to write the buffer out on the disk message queues data set.

I

I

J

I

/

I

J

/

/

I
I

I

70

'/

/

/

/

.- , /

/

.--

...---

/

/

/

/

I

/

I

:

I
\
\

G

I

/ {uffer 2 Prefix

/1

Control flow through the
TCAM Dispatcher

I
I

\
I

PRFNTXT

-- --- ---...."
----- -- - - -,,/

,/

/

~

CPB Initial ization

\

I

PRFCHDR

,///

I
I

I

PRFNHDR

Put the address of the first unit of this message in the buffer prefix by placing
SCBCHDR in PRFCHDR.

\

(0

"PRFCRCD

"

\

'.-/

PRFXTRA

, , .....

\

,,/1

7b

I

\
\

c. Queue any additiolJal records, as in 5.

•

I

/\ '\

/

_-/\

/"

I

\

I

/

I

/

/

.-,-/
_-----

\

LEGEND

)

"/

,

,

I/o QCB.

'I

II
SCBCHDR

'

a. Assign SCBNTXT as the location· for the first unit of this segment by placing
SCBNTXT in PRFCRCD in the buffer prefix.

Tpost the buffer to the Disk

I

I

I
I

\

' ...

Sa

",

SCBNHDR
.... -

"

9.

I

.-

'...

'\

\

\\(0

SCBCRCD
"

"

8.

SCBNTXT

\

"

b.

\

...- - ....:. '.....

\

" ,

7.

6a

',,~
"~"~

"

...

\

8\ \

\

"

\
\,

\

......"

Update the AVT value of address by adding one.

\

\

"

\

,

\

\\

",

\\

~

b.

\

\

"

LCBSCBA

\

\

~

a. Assign the current AVT va lue of address as the next-buffer location by placing
the address value from PRFNTXT in the buffer prefix and in SCBNTXT in the SCB.

\

\\

I

\
\

"

"

II

1\

\ \
'\

Yes

'\

\

/~

"\ \

6.

\

,~

\.J "~\
\

LCB

II

1/
I

~\

L...-_ _ _ _ _ _ _--I

\

Update the AVT value of address by adding the total number of additional units.

I"

" '"
1 / " \

3

" '\...:J

\

'-,' . .

I

(0. //
~:'::::::"

-.. .-. . "

II

/

QCB

'- ..... .:'-....,

1\

...-/-;;"

\.V

QCBDNHDR

b. Assign contiguous va lues of address to the other un its unti I a II are queued.
The only pointer required to locate the additional records is the first unit.

_--------_

//

.............

1/ \\
II

- --

\

Place the AVT value of address in PRFTRA in the buffer prefix to queue
the first unit.

3

\

//

,/.-

~

5. Determine if there are more units (additional records) in the message segment.

.-__ - - - - -

t D~,inatiOn
I

~

-:'---0-

.--

~

I
I

-----

Add the number of
additional units

"""..:::,.--.. - ---- - - - -~\ ~-.
\\
-::..-- .....

IEDQHM

4. Update AVTNADDR by adding one.

0~

.- - _ _

AVTNADDR
1.

/

PRFXTRA

\
\

\

"

PRFNTXT
PRFCRCD

'\

IEDQFA

"'" "

- - - . Data movement.
Note: The numbers in the data
layout correspond to the numbers
in the Destination Scheduler box.

Chart 15.

PRFNHDR
PRFCHDR

Nonreusable Disk Queuinq Functions of the Destination
Scheduler Routine
Method of Operation Charts
1267

RECEIVE START - an LCB tposted to itself on top of the ready queue indicates that a line is free. At open time, the Receive Scheduler STCB has the highest priority on the STCB chain of the LCB.

Receive Scheduler

•
•
•
•

Recognize that there is a free line so that a receive operation can be skirted.
Refer to the DCB for the line to get the number of initial buffers requested.
Complete the ERB in the LCB by adding a count 6f the initial buffers requested.
Tpost the ERB to the Buffer Request QCB.

IEDQGA

Buffer Request Routine

•

Determine that this is an initial request by checking the ERB priority field.

•

Refer to the line DCB to determine the number of units per buffer.

•

Get the units for the required number of buffers from the buffer unit pool.

<>

•

Is
the buffer
request
satisfied?

•

•

0

II
IEDQGO

Buffer Association

•
•

BALR instruction to Buffer Association.

Build a Read CCN and TIC in each unit control area.
Return via a BR 14 Instruction.

II

~
Tpost the ERB to the Activate QCB.

Acti'vate Subtask

•
•

Build and chain buffers off the ERB until the request is satisfied by entering IEOQGA.

Chain the ERB into the element chain of the Buffer Return QCB
by priority. Exit to the TCAM Dispatcher.

No

Yes

Branch via

IEDQGB

Buffer Return

IEOQKA

Build the initial contact CCNs to poll the invitation list.
Refer to the OCT to get the channel characteristics.

•

Check the line to poll the terminal.

•

Issue EXCP to start receiving on the line.

~

TCAM Dispatcher
LEGEND:
Control flow through

as

Control flow through the TCAM Dispatcher

c=::=:=:=:::::>

COntrol flow through a branch or sequential instructions

Chart 16.

Functional Flow When Beceivinq from a Line (Part 1 of 4l
Method of Operation Charts

1269

Note: PCI Appendage is serviced first if channel end and PCI occur at the same time. If the response to poll is positive, PCI Appendage gains control.
Line End Appendage ga ins control from a negative response, that is, when an EaT is received.

First PC! Interrupt

J1
as

'" rr

PCI Appendage

Line End Appendage

IGG019RN

•

Tpost an ERB to the Buffer Request QCB to request buffers to fulfill BUFMAX.

•

as Post the TCAM MCP.

•

Branch via a BR 14 instruction to lOS.

•

Test for a positive response
to polling.

lOS

TCAM Dispatcher
The ERB from PCI Appendage is on top of the ready queue.

Buffer Request

IEDQGA

•

Determine that this is a first PCI request by checking the ERB priority field.

•

Get the units for the required number of buffers from the buffer unit pool.

IEDQGB

Buffer Return
•

•

Is
the buffer
request •
satisfied?

No

Build and chain buffers off the ERB until the request is satisfied by entering IEDQGA.

Chain the ERB into the element chain of the Buffer Return

~c:=======================~ QCB by pri ority. Exit to the TCAM Dispatcher. _ _ _ _ _ _ _ _ _...._ ..._ - -. .-

Yes
IEDQGD

Buffer Association

Branch via a BALR instruction to: Buffer Association. ======:================================================1:=======================~r-------""-------""""-----------------------'
• Build a Read-CCWand TIC in each unit control area.
•

Include the buffers in the CCW of the line LCB for a continuous operation.

•

Return via a BR 14 instruction.

Jj

•

Return to the TCAM Dispatcher.

,
TCAM Dispatcher

chart 16.

Functional Flow when Receivinq from a Line (Part 2 of 4)

Method of Operation Charts

1271

S~bsequent PCI or I/O Interrupt

JY

OS

" ...

•

Line End Appendage

IGG019RN

PCI Appendage

•

For BSC devices, branch to the Line End Appendage.

Initialize for transparent mode, if present.

• Return to 10 S •

•

Tpost the previous buffers to the STARTMH QCB.

•

Tpost the ERB to the Buffer Request QCB to request enough buffers to replace the buffers just freed.

•

OS post the TCAM MCP ECB.

•

Branch via BR 14 to lOS.

TCAM Dispatcher

lOS

.

Either the ERB or an RCB with a freed buffer from PCI Appendage is on top of the ready queue.

•

Which
element is on
the ready
queue?

ERB

RCB

IEDQAA

STARTMH
•

Process the INHDR subgroup, if appropriate.

•

Process the INBUF subgroup.
Buffer Disposition

•

Is
this the last
buffer of a
message?

.

Yes

•

Perform reta lied header processing.

• Tpost the buffer to the appropriate Destination QCB.
• Tpost any unused buffers to the Buffer Return QCB.

No

•
•

IEDQBD

Perform LOCK and multiple routing processing.

Tpost the buffer to the appropriate Destination QCB.

- OR Send Scheduler

•

If the Get Scheduler STCB is in the STCB chain, the QCB
is for an application program. If it is not the last buffer af a
message, return; otherwise, begin message retrieval.

Bypass control to the Destination Scheduler.

chart 1fi.

Functional Flow when Feceivinq from a Line (Part 3 of 4l
Method of Operation Charts

1273

Destination Scheduler

IEDQHM

•

Build chains in the buffer prefix.

•

Assign a value of disk relative record address to each unit.

•

Tpast the buffer to the Disk I/O QCB.

Send Scheduler

CPB Initialization

•

Move the Send Schedu ler STCB. from the STCB chain of the Destination QCB to that
of the LCB.

•

If the LCB is free, tpost the LCBto itself and place it on the ready queue via DSPPOSTR.

II

IDEQFA

•

Put the input element on the no-CPB queue in FIFO order.

•

Process the first element on the no-CPB queue - assume that this is the element just received.

•

Build CPBs for the units of the buffer.

•

Put the CPB on the input queue for the EXCP Driver.

•

Swap the CPB units and the buffer units. Tpost the freed buffer units to the Buffer Return QCB.

II

Branch to EXCP Driver.

EXCP Driver

IGG019RC

•

Complete the CPBs for the buffer.

•

Cha in the buffers together.

•

Branch to the MBBCCHHR Convert routine.=========================~================================:>1

IEDQFP

MBBCCHHR Convert Routine

I

•

Convert the record address to the absolute MBBCCHHR.

\I
•

Locate the lOB and put the CPBs on the lOB new queue.

•

Put at least one CPB on the retry queue.

• Issue an EXCP instruction to start channel activity.
I/O Interrupt

f

Disk End Appendage
• Put CPBs on the Cleanup queue.
•

IGG019R2

Tpost the CPB Cleanup QCB on the disabled ready queue.

~

lOS
TCAM Dispatcher

'\

CPB Cleanup
•

Put the CPBs back into the CPB free pool.

•

Branch to CPB Initialization.

I

.
IEDQFQ

Recycle to process any elements remaining on the no-CPB queue due to

Q

lack of CPBs.

Chart 16.

Functional Flow when Receivinq from a tine (Part 4 of 41
Method of Operation Charts

1275

SEND START - on LCB tpasted to itself on top of the ready queue indicates that a line is free. A send operation can be initiated when
the Send Scheduler STCB has top priority in the STCB chain of the LCB. At open time the Send Scheduler STCB is on the STCB chain of
the Destination QCB to await a full message. When the Receive Scheduler has no messages to receive, the Send Scheduler STCB is
moved to the STCB chain of the LCB. It remains on the LCB to send messages until there is no message free to'send. At this time, the
Send Schedu ler moves its STCB to the STCB chain of the Destination QCB.

Send Scheduler
• Refer to the line DCB to get the number of buffers to request.
• Build on ERB with a count of the required buffers.
• Tpost the ERB to the Disk

I/o QCB.

CPB Initialization

IEDQFA

• Put the ERB on the no-CPB queue in FI FO order to get the CPBs from the CPB free pool. (Assume that this is the element to process now.)
• Refer to the line DCB to get the number of units per buffer.
• Put in the SCB the address of the record to read from the message queues data set.
• Get the CPBs from the CPB free pool.
• Bui Id Seek Search Read CCWs in the CPBs.
• Cha in the CPBs off the EXCP Driver input queue.
• Branch to EXCP Driver.

EXCP Driver

IGG019RC

• Add Seek Search CCWs to the CPBs, if necessary, and chain the CPBs together.

MBBCCHH~Convert

Routine

IEOQFP

.1

• ~ochv~aML~iliuct~~~eM~cr~R~_ertro~~.=====~=====================*========~~I • ~_~~em~sa~~~~~~~~dre~~~eM~C~~~r~t.
~!

I

• Place the CPB on the pr2er lOB queue by CC priority.
• Build command chain and chain da~ flogs.
• Issue on EXCP command to initiate channel activity.

'LEGEND:

==;'OS A> Control flow through os

TCAM Dispatcher

_ _ _ _••~ Control flow through the TCAM Dispatcher
====:::;:::::> Control flow through a branch or sequential instrUCTions

Chart 11.

Functional Flow when Sendinq to a Line (Part 1 of 3)
Method of Operation charts

1271

Channel End/Device End on a Disk Operation - 105 issues a BALR to Disk End Appendage
Disk End Appendage

~

IGG019R2

• Locate the appropriate DEB.
Line End Appendage
• /llv:)ve the CPBs that are on the EXCP queue (lOBSTART) to the disk end queue.
•

• Check for a positive response to addressing.

Insert the CPB Cleanup QCB on the disabled ready queue by priority.

• If this is the initial message buffer for the line, tpost the buffer to the STARTMH QCB for outgoing message processing.

• OS post the TCAM ECB to indicate that the I/O operation is complete.
•

• Return to lOS

If there are no CPBs on the lOB retry queue, return-to 105 with channel activity stopped; otherwise t
chain the CPBs onto the EXCP queue and return to channel restart in 105.

105
105
CPB Cleanup QCB tposted to itself on top of the enabled ready queue

CPB Cleanup Routine

1

TCAM Dispatcher
-,
The RCB for the buffer that is to receive outgoing MH processing is on top of the ready queue:

IEDQFQ

I

• If these are write CPBs, process -the CPBs on the input queue to return them to the CPB free pool.
• If these are read CPBs, for each CRB get a unit from the buffer unit pool, place it in the ERB buffer
chain, and move the CPB data to the unit.
• Branch to CPB Initialization when the last CPB is processed.

IEDQAA

STARTMH Subtask

IEDQFA

CPB Initialization

•
•
•

Process the OUTHDR subgroup, if appropr iate.
Process the OUTBUF subgroup.
At the beginning of the OUTMSG subgroup -

...

•

If the ERB request is not satisfied, recycle from point A to complete the request. ===============I::====~>IJ"".

•

If the ERB request is satisfied, tpost the ERB with full buffers to the Activite QCB.

Is
this
buffer for an
application
program

Yes

Tpost the buffer to the Read-ahead QCB and exit to the TCAM Dispatcher.

=-

?
No
Branch to Buffer Association.

Activate Subtask

IEDQKA

• Build the initial contact channel program and issue EXCP.
IEDQBD

Buffer Association

OS

•
•
•
•

Build Write and Write idles CCWs in the CPBs.
Locate the lOB.
Put the CCWs in the activated channel program chain.
Exit to,-the TCAM Dispatcher.

TCAM Dispatcher

Chart 17.

~unctional

Flow when Sendinq to a Line (Part 2 of 3)
Method of Operation Charts

1279

First PCI

Subsequent PCI

Y
as

1f

PCI Appendage

Y
IGG019RN

4

PCI Appendage

IGG019RN

• Tpost the buffers to the Buffer Return QCB.

• Build the ERB with a count of the required buffers.

•

• Tpost the ERB to the Disk I/o QCB.

If more buffers are needed, build the ERB with a count of the required buffers.

• Tpost theERB to the Disk I/O QCB.

Repeat the cycle from point A to here u~til an EOM is sent.

105
lOS Channel End/Device End Interrupt
line End Appendage
• Tpost the la~t buffer to the Buffer Disposition QCB.

105
TCAM Dispatcher
The RCB for the last buffer is on the top of the ready queue.

Buffer Disposition

IEDQBD

• The message is completely sent; therefore, perform OUTMSG processing.
• Flag fhe message serviced.
• Tpost the LCB to itself.

Send Scheduler

•
Are
there more
messages for
this LCD?

Yes
Tpost the ERB to the Disk I/O QCB to process the next message.
STCS in the lCB STCB chain by priority.

leave the Send Scheduler

No

Free the Line. Move the Send Scheduler STCS to the STCS chain of the Destination QCS.

I'

TCAM Dispatcher

Chart " .

Functional Flow when Sendinq to a Line (Part 3 of 31

Method of Operation Charts

1281

Operator Control

Operator Control Control Module
•

fGCOllOD

Load the MCP Closedown Processing routine

•

Stop all active
lines in the TCAM
system.

INTRO
OPEN
READY
CLOSE

IEDQCO

MCP Closedown Processing Routine

Stop Line Routine IEDQCV

Message Control Program

•

Set closedown switches in the Address Vector Table.

•

Issue a WAIT macro to return control to the MCP.

•

Stop all active lines.

•

Issue a WAIT on the Operator Control ECB.

•

Check for any open DCBs in the application programs
by examining the PCB use counts.

•

~===t>

•

Close the application
program DCB.

•

Post the Operator'
Control ECB.

o Process all the elements
on the ready queue until
QEVENT appears
(QEVENT is the last
item on the STCB of an
LCB).

•

•

If the cI osedown switches ,
to say that Disk
I/O on the message
queues data set is
complete.

Tpost the environment checkpoint
request element to
the ready queue.

No
Dispatcher
•
Tpost the c1osedown
completion element to the
ready queue.

•

Return to Opera tar Control.

•

Operator Control issues a RETURN when it has no
other work to do.

•

Checks "Closedown" bit in the Address Vector Table. "

Chart 18.

Control flow through a branch or
sequential instructions
Control flow through OS

Functional Flow for MCPCLOSE and Closedown completion
Method of Operation Charts

1283

System Close
Module

MESSAGE CONTROL PROGRAM

jt

READY

~
CLOSE line Group

XCTL

Line Grc:>up Close Routine

IGG02035

•
Yes

.

>===============~. Schedule any active application programs for
an abend.

•

Issue EXCP on each line in the line group to perform OBR-SDR error recording.

r
v ERP Routines
===============================~=======tOS~/================='

r----------------------,
• Perform OBR-SDR error recording

os

Line Group Close Routine

XCTL

1f

IGG02036

•

Purge I/O requests associated with the DCB.

•

Disable the lines unless they are connected to a Type III adapter.

•

Free the LCBs.

•

Clear the associated Cross Reference Table entries.

•

Zero the AVT pointer to the DCB and free the Cross Reference Table when all DCBs are closed.

os;t===================~

CLOSE Checkpoint
XCTL

Checkpoint Close Routine

IGG02041

Normal

~================::>. Set a closedown indicator in the checkpoint
control record .
• Write the control record on disk.
•
•

Free the checkpoint work area.

•

Delete IGGOI9RA.

Free the checkpoint work area.

II

CLOSE Message Queue
XCTL
OS
Message Queues Close Routine

~

IGG02030

• Free the DEB, all lOBs, all CPBs, buffers, and any main storage message queues data sets.
•

Zero the AVT pointer to the DCB.

• Remove the AVT address pointer from the CVT.

RETURN-,
OS

'" J.- XCTL
OS

LEGEND:

tr

==IOSJ=::=;> Control flaw through OS
===::::::>~

System Clase
Module

Chart 19.

~unctional

Control flow through a
branch or sequential instructions

Flow of the DCB Closedown ?rocedure

Method of operation Charts

12E5

Message Control Program

Appl ication Program
OPEN DCB

============::::::::~~
~

GET/PUT and READ/WRITE Open Executor

•

Is
there an AVT
pointer in the
CVT?

IGG01946

No

Set an "unsuccessfu I open" flag in the DCB and exit to the OS Open modu Ie.

Yes

•

Get the "queuename" that was coded on the DD cord from the Job File Control Block in the DCB work area.

Binary Search
•

•

Issue a GETMAIN for on access method work area and a DEB.

•

Issue SVC 102 to tpost a special element that contains a pointer to the Terminal Table process entry to the Open/Close sub task in the MCP.

•

Check the status flag in the process entry for successfu I execution of the Open/Close subtask in the MCP.

IEDQAl

Use the "queue name " parameter to search the Termname Table for the corresponding process entry.

IEDQEU

Open/Close Subtask
•

Allocate main storage in the MCP for this application program: LCB, process entry work area, and one or more SCBs.

•

Increment the use count in the PCB by one. The use count is a count of the open DCBs for this PCB.

•

Load the appropriate scheduler (send or receive).

•

Link the scheduler to its Destination QCB.

•

Set the otgood open" flog in the process entry .

•

OS post the application program ECB complete.

No

Successful
execution? .>:=========~> Set an "unsuccessful open" flag in the DCB and exit to the OS Open modu"le.

Yes

II

•

Link the access method work area to the process entry work area and to the DCB.

•

Initialize the DEB and enqueue it on the TCB DEB chain.

•

Load the appropriate access method module for this DCB - GET/READ or PUT;WRITE.

•

Issue XCTL to IGGOI947.

•

If this is not on input DCB, exit; otherwise, continue.

IGG01947

No
Move the Get Scheduler STCB from Read-ahead QCB to the Destination QCB.

I/o

•

Initialize and tpost on ERB for message buffers to the Disk

•

If this is locate mode, get space for a work area and put its address in the DEB.

•

Set the "successfu I open" flag in the DCB.

•

Issue XCTL to the system Open module.

QCB in order to initiate the read-ahead process in the MCP.
LEGEND:
Control fiow through OS
- - - -...~

:>

Control flow through the TCAM Dispatcher
Control flow through a branch or sequential instructions

1J

System Open Module

Chart 20.

Initialization Functions in an Application Program

Method cf Operation Charts

12e7

Appl ication Program
CLOSE DCB

~OS~

GET/PUT and READ/WRITE Close Executor
•

IGG02046

Tpost a special element that contains the address of the Terminal Table process entry for this application program
to the Open/Close subtask in the MCP (via SVC 102).,

Open/Close Subtask

IEDQEU

•

Free the process entry work area and the SCB.

•

Decrement the use count in the PCB.

•

Unl ink and delete the scheduler.

•

Deactivate the Destination QCB for this application program.

• Turn off the opeq flag in the process entry.
•

Free the LCB if the PCB use count is equal to zero.

• OS post the application program ECB complete (via SVC 102).

r.=============================================~======~110~~/========================================~II

~
•

Free the DEB and the a ccess method work area.

• Free the locate mode work area, if one is present.
•

Delete any loaded GET/PUT modules.

•

Restore the DCB 10 its pre-open status; turn off the DCB open flag.

• Branch via an XCTL to IGG02047.

Jl,

as

GET/PUT AND READ/WRITE Close Executor
•

n

IGG02047

Find any LCB that is locked to the DeB being closed, unlock the associated line, and free the LCB
(via an SVC 102 Ipost).

• Branch via an XCTL to the next close module indicated in the Where-to-Go Table.

as

-JS
Next Close Module

LEGEND:

-==lOS P

Control Flow through

as

chart 21.

Termination Functions in an Application Proqram

Method of Operation Charts

1289

MESSAGE CONTROL PROGRAM

,

When the buffer of a message is tposted to the Destination QCB for an applicatian pragram, the Get Scheduler STCB precedes the
Destination Scheduler STCB in the STCB chain of the Destinatian QCB. Upon receiving control, the Get Scheduler bypasses control to
the Destination Scheduler.
Desti nation Scheduler

•
•

STARTMH Subtask
• 'Process the macros in the outgoing group for this application program.

IEDQHM

Queue the buffer on the message queues data set.

IEDQA4

Incoming/Outgoing Message Delimiter Routine
•

Last
buffer of the
message?

IEDQAA

Tpost the buffers to the Read-ahead QCB for this application program.

No
Exit to the TCAM Dispatcher.

Get Scheduler
•

IEDQEW

Enqueue the buffers on the element chain of the Read-ahead QCB.

Yes
Yes
~:::::===========::> Tpost the ERB to the Disk I/O QCB and reenter this processing cycle at A.
Pass control to the Get Scheduler.

U

Get Scheduler

•
•
•

No
Move the Get Scheduler STCB to the STCB cliain of the Destination QCB to wait for more buffers.

Move the Get Scheduler STCB to the Read-ahead QCB STCB chain.
Return control to the Destination Scheduler.

U

,

Destination Scheduler

•

IEDQEW

Build and tpost a special element to the Read-ahead QCB.

Exit to the TCAM Dispatcher.

TCAM Dispatcher
IEDQHM
APPLICATION PROGRAM
GET or READ macro
..

When the special element reaches the top of the ready queue , the TCAM Dispatcher activates the Get Scheduler.

GET/READ Routine
•

Get Scheduler
•

IGG019RG

.~----------------------~----------------------~
Examine the element chain of the associated Read-ahead QCB in the MCP.

IEDQEW

Recognize the special element and, as a result, tpost the ERB with a count of the required buffers for the last message to the Disk
I/O QCB.

CPB Initialization

•
No

IEDQFA

.~--------~--------------------~----------------~
• Read the message from the message queues data set and chain the full buffers off the ERB element chain. (This is a normal buffer
request in a send operation.)
•

Tpost the ERB to the Read-ahead QCB.

Get Scheduler

IEDQEW

•

Buffer Return

Tpost the empty buffers to the Buffer Return QCB. If one of
the buffers was an EOM, tpost the buffers from the pre-MH
queue to the STARTMH QCB, up to on EOM, and at EOM
turn off the MHOK flag.

ERB

•

Read buffers until either the application program work area is full, all the available buffers are read, or an EOM buffer is
encountered.

•

Build a special element that contains the number of buffers just read. This element is in the access methad work area.

•

Tpost (via SVC 102) the special element to the Read-ahead QCB in the MCP.

•

If one of the buffers read contains EOM, turn on the MHOK flag to indicate to the Get Scheduler that a complete message has
'been read by the application program and a new message can begin to be processed by outgoing MH in the MCP.

•
Yes

Pass control to the next sequential instruction in the application
program.

Put the buffers on the pre-MH queue. If the MHOK flog (bit 6 in PEWAFLG
in the process entry work area) is on, tpost the first messoge on the pre-MH '
queue (PECBUF in the process entry work area) to the STARTMH QCB and
turn off the flag.
OS post the MCP ECB to allow more buffers to be read. If the request is a GET, OS wait until enough buffers are available to
satisfy the re~uest. If the request is a READ, delay the wait until the CHECK macro, is encountered.
LEGEND:
•

If a buffer has just been tposted to the STARTMH QCB for outgoing processing, OS post the application program
GET/READ ECB to indicate that buffers are ready to be reaa. This allows the application program to gain control at B
when the MCP enters a wait state.

=/ OSj=O>
I
=====~>

Chart 22.

Control flow through OS
Control flow through the TCAM Dispatcher
Control flow through a branch or sequential instructions.

Functional ~low of How Data is Passed from the MCP
to an Application Proqram
Method of Operation Charts

1291

APPLICATION PROGRAM

MESSAGE CONTROL PROGRAM

When a special element that contains the address of data in an application program reaches the top of the
ready queue I the TCAM Dispatcher activates the Put Scheduler.

PUT or WRITE macro

PUT/WRITE Routine

IGG019RI

1

Put Scheduler

IEDQEC

Initialize the access method work area with data from the DCB/DECB.

•

Build an ERB ta request buffers to contain the application program data.

•

Build a special element (RCB) that has the address of the data in the application program work area.

•

Tpost the ERB to the Buffer Request QCB.

•

Use SVC 102 to tpost the special element to the Put Scheduler QCB in the MCP. SVC 102 also OS
posts the MCP ECB complete so that the MCP can regain control af the system.

•

Issue on OS WAIT to allow the MCP to regain contral for the Put Scheduler to empty the application
program work area.

•

Buffer Request Raut ine

IEDQGA

•

Get empty buffers from the buffer unit pool and chain the buffers aff the ERB. (This is the same as a
normal buffer request in a receive operatian.)

•

Tpost the ERB ta the Destination QCB for the appl ication program.

Put Scheduler

IEDQEC

•

Get the .address af the empty buffers on the ERB.

•

Get the application program work area address and fill the buffers with data from that work area.

•

Is
the work
area empty?

No

.)=======~Continue to fill buffers, one at a time,

until this decision has a YES answer.

Yes
•

Tpost the full buffers to the STARTMH QCB for this application program for incoming message processing.

•

Tpost any empty buffers to the Buffer Return QCB.

•

Use SVC 102 to OS post the application program ECB complete, so that the application program can
regain control at its next sequential instruction whenever the MCP enters the wait state.

IEDQAA

STARTMH Subtask
•

Process the buffers through the macros in the incaming group for this applicotion program.

Incoming/Outgoing Message Delimiter Routine
Destination Scheduler
•

Build chains in the buffer prefix.

•

Assign message queues values af address to queue the buffers.

•

Tpost the buffer to the Disk I/O QCB.

•

If the Send Scheduler STCB is in the STCB chain of this Destination QCB, the lasl buffer has been
handled by IEDQHM; so, branch to the Send Scheduler.

CPB Initial ization
•
•

•

IEDQHM

Exit to EXCP Driver for the actual I/O operation.

Yes

)I;=======~>Tpost the buffer to the Buffer Disposition QCB.

No

IEDQFA

Put the message buffers on the message queues data set.

Last
buffer of a
message?

IEDQA4

Tpost the buffer to the Destination QCB for the indicated destination
of the message.

Send Schedule.
•

Locate the LCB with the some relative line number as the Destination QCB.

•

If the line is free, tpost the LCB to itself to start a send operation.

•

Move the Send Scheduler STCB to the STCB chain of the LCB.

Buffer Dispostion Subtask

IEDQBD

•

Tpost any unused buffers to the Buffer Return QCB.

•

Examine and process the OUTMSG macros.

•

Tpost the buffer to the Destination QCB.

J

TCAM Dispatcher

Chart 23.

Functional Flow of How Data is Passeo from an
Application Proqram to the ~CP
Method of Operation Charts

1293

MESSAGE CONTROL PROGRAM

APPLICA nON PRO GRAM

MRELEASE
MCPCLOSE
STARTLN
STOPLN
CLOSEMC
RELEASEM

}

}

CQTAM only

The TCAM Dispatcher processes the elements on the ready queue until the CIB
that was tposted to the Operator Control QCBhas top priority .. At this point, the
Dispatcher relinquishes control to the Operator Control task.

The user issues one of these
macros to enter Operator
Control from the application
program.

Operator Control/Application Program
Interface Routine

Jl
OS

IEDQET

•

Initia Iize the Command Input Buffer (CIB) control block with the type of command and other pertinent data.

•

Set the SVC 102 parameters necessary to move the CIB to the Process Control Block (PCB) in the MCP.

•

Set up the SVC 102 parameters necessary to tpost the CIB to the Operator Control QCB.

•

Issue SVC 102 to move and tpost the CIB.

//

OPERATOR CONTROL
Operator Control Control Module

•
Is
closedown in
progress?

No
>====:::::;============::;> Issue an OS WAIT to allow the MCP
to gain control.=========~================..J

•

Process the operator control command indicated in the CIB.

•

Store a return code in register 15.

•

Use SVC 102 to OS post the ECB for the application program complete

Yes

I

<~============================================~================================~/OSt=========================================~
•

I

Continue processing the next sequentio I instruction in the oppl i cation program.

LEGEND:

=los;=:;> Control flow through as
====:> Control

flow through a branch instruction

Chart, 24.

Application Proqram Interface with Operator control
Method of Operation Charts

12S5

MESSAGE CONTROL PROGRAM

SYSTEM NUCLEUS

APPLICATION PROGRAM

Termname Table

TCOPY
ICOPY
QCOPY
TCHNG

J

/

The user issues one of these macros to initiate the application program network
control facil ities.

/'

~

/

..

/

CVT

r----- ------

X

/

0

I

\

I

/

/
/

I

Terminal Table

I

/

/

TCB
TlOT
,.-9']

I
/

(
\

/
/

..-----

I

DEB

'"

/

I

~

/

---

DDNAME

DCB

/

Invitation List

/

/
/
/
/
/

/
/

/
•

For TCOPY, QCOPY, TCHNG - locate the Termname Table and scan to locate the specified entry.

•

For ICOPY - locate the specified invitation list.

•

../

/

AQCTL SVC 102
TCHNG
Move data from the application program's work area to the
specified MCP location.
TCOPY
ICOPY
QCOPY
Read data from the specified MCP location into the applicati on program work area.

OS

IGC102

Move data from the application program work
area to the specified MCP location.

--~-~--------~--------~

I
I
I
I

I
I

I

I~================================*=========tosft===~

LEGEND:

I

I
I

-----+ Data Flow
====:;:> Control Flow through a branch instruction

Work Area

=IOS,.t=:> Control Flow through OS

Next sequential application program instruction.

chart 2S.

~pplication

Proqram wetwork Control Facilities
Method cf Operation Charts

1297

SOURCES OF OPERATOR CONTROL COMMANDS

OPERATOR CONTROL TASK

MESSAGE CONTROL PROGRAM

Link Routine
INTRO

IEDQOA

•••

================~

Attach Routine

Link to the Atta~h Routine.

•••
OPEN

I

IEDQOS

•Attach
• • the Operator Control task.
•• •

I

I

Operator Control Terminal

I
READY

I

Operator enters an Operator Control command.

-

.....

I

-

-

I
/
/

....... STARTMH

/
/

/

Operator Control Control Module

I

I

/

I

Translate Buffer Routine

I

Examine the commands on the Operator Control aCB, and
link to the processing routines. If the element is a
"dummy" CIB, enter a return code, tpost the CIB to the
Destination QCB for the application program and Post
the application program ECB complete. Otherwise, build
the response and tpost it to the Destination QCB.

•

After all commands have been processed, issue a WAIT
on the Operator 'Control ECB.

IEDQAW

• Translate the message buffer to EBCDIC.

/

Operator Control Interface Routine

Control

IEDQAQ

•

Examine the buffer to determine whether it is an Operator
Control command. If it is not, relrrn to MH.

•

If the buffer is Operator Control, tpost the buffer to the
Operator Control aCB.

Not Operator

STARTLN, STOPLN, MRELEASE, RELEASEM, ICHNG,
M!=PCLOSE, or CLO? macro:

•

CODE

/

User issues any regular Operator Control command
and puts it to a QCB in the MCP just Iike any other
message.

Examin~ the GIBs on the Communication Parameter List
CIB chain, & Iink to the processing routines. Issue a
respanse via WTO.

I

/
Application Program

•

I
INJDR

IGCOllOD

OS

Operator Control/Application Program
Interface Routirie
IEDQET
•

Build a "dummy" CIB.

•

Tpost the CIB to the Operator Control QCB.

•

Issue an OS WAIT.

TCAM Dispatcher
•

Recognize that the element is tposted to the aCB of an
attached task.

• Post the ECB for the attached task.

LEGEND:

=======:::> Control flow through a branch or sequential
instructions.

===r'o~ Control flow through OS
TCAM Command Scheduler

Operator enters an Operator Control
command.

--

__ -

IGC1303D

- - - - - -",Line Control

- . . . . Build a CIB and place it on the Communication Parameter
List CIB chain.
• Post the ECB for the Operator Control task.

Cha!:'t 26.

Functional Flow of Operator Control
Method of Operation Charts

1299

MESSAGE CONTROL PROGRAM

ENTRY POINTS:

I

Entry by an MCP condition
; Entry by a HALT operator control command
Entry by the INMSG or OUTMSG macro in the MCP
Entry by a VARY, MODIFY, HOLD, or RELEASE operator control
command
Entry by a TCHNG macro in an application program
Entry by the CKREQ macro in an application program
Entry by the MCPCLOSE macro in an application program

IEDQND
READY Routine

Reusabi Iity Copy Subtask

OPERATOR CONTROL

IEDQHG

8

Turn on a bit in the "total checkpoint request" element in the AVT to
indicate which module is requesting the checkpoint.

•

For all cases except READY, remove the "total checkpoint request"
element from the time delay queue.

•

Tpost the "total checkpoint request" element to the Che~kpoint QCB.

~

Environment Checkpoint· Routine

IEDQCO

MCP Closedown Processing Routine

osL-...

I

Tpost the "Operator Control checkpoint request" element to the Checkpoint QCB, which is in the AVT.

• Terminate Operator Control by issuing a RETURN.
L-______
~______~~~~~__________J_----~, OS~----"

INMSG
OUTMSG

•

1

CHECKPT = YES

Buffer Disposition Subtask

IEDQBD

•

Recognize that a checkpoint is requested at the end of the pro cessing
of a complete message.

•

Tpost the LCB, which is serving as the "checkpoint request" e lement
to the Checkpoint QCB.

~~6IFY1===::--.....
HOLD
RELEASE

I

Time Delay
Subtask

HALT=====~

•

•

...----,,',0

~

Build a Command Control Block.

•

Tpost the "Operator Control checkpoint request" element to the Checkpoint QCB and issue on OS WAIT.

•

Get the "checkpoint request" element from the Checkpoint QCB in the
AVT.

•

Build on environment checkpoint disk record.

•

lurn off the AVT "total checkpoint request" element bit that indicates
which module requested the checkpoint.

•

Tpost the "total checkpoint request" element to the time delay queue,
or if the request is from Operator Control, tpost the "clasedown
completion request"'element to the ready queue.

•
•

Write the checkpoint control record.
Issue on OS WAIT.

-

Incident Checkpoint for MH Routine
S I

~

•

IEDQNK

I

IEDQNG

•

Recognize that the request element is on LCB and build
checkpoi nt record for disk from the Opti on Table.

•
•

Tpost the LCB to the QCB for the Chain routine.

OJ;'l

incident
OS

Issue on OS WAIT.
--'

Incident Checkpoint for Operator Control Routine
IEDQNJ
• Recognize the "Operator Control checkpoint request" element and build

• ______________________- _______-1 OS)I_ _ _ _ _ _ _ _ _ _~

on incident record from the Command Control Block.

I

•

APPLICATION PROGRAM
..

TCHNG

~

Application Program/Checkpoint Interface Routine
•

•

•

IEDQNB

Build the "application program checkpoint request" element in the PCB
to indicate a TCHNG request.

..

I
/

Tpost this element to the Checkpoint QCB.

OS

CKREQ~====:::::::~
Build a CKREQ "application program checkpoint request" element in
the PCB.

•

Tpost this element to the Checkpoint QCB.

•

Branch to the next application program instruction.

MCPCLOSE
Operator Control/Appl ication Program Interface Routine
OS post theOperator Control ECB.

~------~----------

IEDQNH

•

Recognize the TCHNG "application program checkpoint request"
element and build on incid~ilt record from the Terminal Table
and Option Table •

•

OS post the application program ECB and wait.

~

IEDQNB

•

I.

Incident Checkpoint for TCHNG Routine

LEGEND:

Application Program/Checkpoint Intertace Routine

CD

OS post the Operator Control ECB and wait.

_N_o_. . . Place the offset of the No
Available Core routine in
register 15. ======I===~~

- If this is an environment checkpoint request from MCPCLOSE,
tpost the "closedown completion request" element to the ready
queue. If the request is not from MCPCLOSE, tpost the
"environment checkpoint request" element to the time delay queue. -t--------~---

Yes

Executor

• Place the offset of the
-Checkpoint Disk 1/0
routine in register 15.

If not the last segment of a checkpoint:

•

Issue an error message.

•

Place the offset for the Checkpoint
Notification and Disposition routine
in reg ister 15.

- Place the offset of the record building routine for the record
just written in register IS.

•

Place the offset of the Checkpoint Queue Manager in register 15.
Checkpoint Notification
•

Environment Checkpoint Routine

... Checkpoint

Build one segment of the environment checkpoint record.

•

..

•
~-----t--

•

- Remove the request element from Checkpoint QCB.

•

The environment checkpoint request element is on the
Checkpoint QCB.

and Disposition Routine

Remove the unsatisfied request element
from the Checkpoint QCB.

Checkpoint Disk
End Appendage
•

If the record just written is the last segment of
an environment checkpoint, rewrite the control
record.

Checkpoint Disk 1/0 Routine

Checkpoint Executor

OS
Checkpoint Queue Manager
•

Chain the checkpoint disk record on the checkpoint
disk I/o queue.

•

If the disk record is for an environment checkpoint,
free any incident records on the queue and turn on
"incident overflow" bit in any incident checkpoint
request element on the Checkpoint QCB.

Checkpoint Executor

LEGEND:
- - - -.......,,' Control flow through a branch or sequential instructions

====::::::::»

Control flow through the Checkpoint Executor

==t

OS ~ Control flow through OS

Chart 28.

control Flow of the Environment Checkpoint Routines
Method of operation Charts

1303

IGEOO04G
Start/Stop
ERP Control
Module

~

~

IGEOlO4G
Read/Write
Unit Check
and Unit
Exception
ERP Module

IGE0204G
Non-operational
Control Unit
ERP Module

~
IGE0304G
ynit Check
for Non-read,
Non-write,
and Non-poll
CCWs ERP
Module

I

I

1

IGE0004H
BSC ERP
Control
Module

~

.~

~

IGE0404G
Auto Poll
Unit Check
and Unit
Exception
ERP Module

IGE0604G
Unit Check
and Unit
Exception
on Read/Write
CCWs for Audio
and 2260 Local
Devices ERP
Module

IGE0804G
Start/Stop
Channel
Check ERP
Module

I

I

~

1

IGE0904G
Closedown
Terminal
Statistics
Recording
Module

Write
to
Opetator

IGE0204G
Non-operational
Control Unit
ERP Module

IGE0904G
Ctosedown
Terminal
Statistics
Recording
Module

I

IGE0504G
Error Post
and Second
Level CCW
Return
Module

-.

IGE0404G
Auto Poll
Unit Check
and Unit
Exception
ERP Module

IGE0304G
Unit Check'
for Non-read,
Non-write,
and Non-poll
CCWs ERP
Module

IGE0504G
Start/Stop Error Post
and Second Level
CCW Return
Module

I

~
OBR/SDR
Recording
Module

OBR/SDR
Recording
Module

Linkaqe amonq the Start-stop EBP Modules
chart 30.

Linkaqe amonq the ESC EPP Modules

Method of Operation charts

1305

GL{)SS.ll.I

Access-method- {ACSMETlll..-work area: a storage space in an ap1=lication
pr6qram.
This work area contains data necessary for the interface
between the a~~lication ~roqram and the MCP.
.
Additional-records: the units, other than the first unit, of a
that is beinq placed on a messaqe queue.

buffer

in reference to disk queuinq, this term refers to the dj.sk
relative record number used to queue a unit of a messaqe segment.
In
reference to main storaqe queuinq, the address is the actual location
of a unit ofa meEsaoe seqment.
A,ddr~.§.§:

Addres~'Vect0~-~atle-{AV~}:

in TCAM , a local constant area,

!..IUUicati.Q.!LJ2rcgram: a proqram that proceSSES the text portions of
messaqes.
APplication proqrams run asynchronously with the message
contrel proqram, and are usually located in another partition or
reqion.
lttached-task~. a unit of work that is created by another task b~ means

of the ATTACH macro and that compEtes independently for control of the
cpu.
In TCAM, Checkpoint, Operator Ccntr~l, On-line Test, and FE
Common Write are attached tasks.
Auto·Poll! a hardware feature or a TCUthat ~rocesses an invitation
list, pollinq the terminals in erder and handling neqative responses
to pollinq without interruptinq the CPU. At the end of the list,
pollinq is resumed~t the.beqinninq of the list.,
Billil.L....::...§ynch ronous· - JBSe} . line: a Ii ne on which' the data transmi ssion
or character synchronism is 6ontrolled by timinq signal~ qe~erated at
the sending and receiving stations.
Block!
that
pcrtion of a messaqe
characters, EOE, ITB, ETX, or EOT.

terminated

by

line

control

Buffer: a main stcraqe area into which a message segment is read or
from which a messaqe" seqment is written. A buffer is-a temporary
holdinq area that is used to compensate for a difference in the rate
of flow of information betwee~ input/out~utdevices and the cpu. The
size of the buffers is desiqnatedby the user. In ~CAM, a buffer is
made· up of one or more u~its, in which the total number of bytes
satisfy the user-specified buffer siz.e.,
Buffer·~refix! a control area at the ,beginning of
each buffer.
The
first buffer of a messaqe in ~CAM has a 30-byte prefix, while the·
prefix for each subsequent buffe.r of a messaqe is 23 bytes .long.
A
buffer prefix is contained within the·userspecified buffer length and'
TeAM places control information in the prefix.

Buffer unit: see unit.
Buffer uni~ool: a chain of all the tuffer units that are not
currently beinq used by TeAM. This chain is the element chain of the
Buffer Request OCE.
At assembly time, the tuffer unit pocl contains
the number of units that is equal to the sum of the integers specified
by the LNUNITS and MSUNITS operands of the INTRO macro~
Buffered -terminal~ a
terminal that has a hardware buffer. When the
user specifies the BFDELAY operand of a TERMINAL macro for a buffered
terminal, the MCP sends messaqes to that terminal, segment-by-segment.
After a seqment is sent, the MCP pauses to qllow.the terminal to empty
its buffer.
During this ~ause, the MCP may send message segments to
the other stations on the line.
Calli~:

a procedure by which a first party attempts to establish a
connection with a secend party through a central exchange.
Also
termed dialinq.

Cascade entr~:
a Terminal Table
associated with a cascade list.

block

of

information

that

is

£~~aae

list: a list of pointers to single, group, or process entries.
TCAM queues messaqe for the first valid entry with the fewest messages
queued for it in the list.

Chan.ll.§l~~nd

-Wcrd- ICCll: a doutleword definition of an operation to
be performed by the I/O channel.
One or more CCWs constitute a
channel proqram.

Channel-Program Elock~~~ a centrol area that contains an I/O
channel proqram and a pointer to the buffer that it is to process.
A
CPB is used in the transfer of data between buffer units and disk
message queues.
The CPB operand of the INTRO macro specifies the
number of CPBs in the TCAM system.
£heg!~int-data

set: a set cf checkpoint records that are maintained
and
stored
cn
a
direct
access
storaqe device.
When the
Checkpoint/Restart facility is used, TCA~ uses these records to
restructure the MCP environment after closedown or system failure.

Checkpoint--reguest record:
a checkpeint taken in response to the
issuance of a CKREQ macrc in an applicatien program.
This record
contains th~ status of a single destinaticn queue for the application
proqram issuing the macro.
Durinq restart TCAM uses the latest
checkpoint request record for a message queue .to start sendinq the
application proqram the message following the last message sent at the
time that the checkpoint request record was written.
Check~ointLRestar!: a TCAM facility that records
the status of the
telecommunications
network at designated intervals or following
certain events. Following system failure er c1osedown, this facility
uses the records it has taken to restart the system without loss of
messages.

1308

CKREQ-checkpoint-record:-see Checkpoint request
Cold-start: a
system.

TCA~

MCP

start-up

in

which

record~

TCAM

reinitializes

the

Command - - InEut - Eu ffer - - (eIB): a comm unication parameter list tha t is
used by Ope~ator central to process a command.
It describes the
command sent from the console and contains the command code, the
console-identification, and the data in the command.
communication-FarameterList: the interface between TeAM Operator
Control and the ~aster Scheduler fer commands entered from the system
console.
communication- Vector- 'I'able- (CVT): a part of the resident nucleus in
the Operating System (OS) that provides the means whereby nonresident
routines may refer to information in the nucleus of the control
program.
Com}?atible- -Q'I'AM:
under a TCAM MCF.

~he

ability

to operate,a QTAM application program

£omBonent: a point in a communications sys-tem at which data can enter
or leave; an input/output device. A component is always attached to
a terminal control unit.
continuation-restart~ a TCAM MCP restart that follows
termination of
- the MCP due to system failure. The TCAM Checkpoint/Restart facility
restores the MCF environment as nearly as pessible to its condition
before system failure.

Control- - record - - {checkpoinll: a disk checkpcint data set record that
contains information about the format of the checkpcint data set.
CPB-free-Eool~

a chain of the CPBs that are not currently

in

use

by

the TCAM MCF.
Cross-Eartition - data- movement: the situation in which data is moved
from one partition or reqion in main storage to another.
an area of main storage that serves as a
logical connector between the ~roblem program and a data set. The
data control.bleck can also be used to provide control information for
any transfer of data. In TCAM a DCB must be specified for each TCAM
data ~et except a main-storage message queues data set; a DCB macro is
used to create a DCB.

Data-control-Elcck~CB):

Data -Event - -Ccntrol- - Block - (DECE): a control block that contains
information about an input or an cutput operation requested by a READ
or WBITE macro instructien.
Data-Extent Block- SDEB): a control block that describes the extents of
the data set with which it is associated.

Glcssary

1309

Data ·Set- -Control ·Block- -(DSCB)! a collection of information that
describes the attributes-of a data set'in direct-access storaqe.
Dead-letter- -glleu.s: the destination queue for
the
station
or
application program named by the DLQ operand of the INTRO macro. If
TCAM detects an' invalid destinaticn in a meEsage header and no user
exit is specified in the FORWARD macro, TCAM sends the message to the
dead-letter queue.
Delimiter- -macrc -instruction~ a TeAM macro that classifies
and
identifies sequences of functicnal macrc instructions and directs
~ontrol to the appropriate sequence of functional macro
instructions.
Destination~
a ~lace to which a mesEage being handled by a TCAM
Messaqe Handler is to be sent. A destinaticn may be either a station
defined by a TERMINAL macro, a group of stations defined by a TLIST
macro, or an application pr~qram defined by a TPROCESS macro. One or
more destinaticnE may be specified in a message header, or a single
destination may b~ specified for all messages handled by an Inheader
Subqroup.

Destination-offset: a two-byte index to the Termname Table entry of a
destination .or station.
Q,g.§tinati..Q1L..9'u€ue:: a
a specific terminali
builds this queue
Incominq Group ~f an

chain of messaqe segmen.ts that are to be sent to
qroup of terminals, or application program. TCAM
after the messaqe segments are processed by the
MH.

Dev.iee Characteristics Table: ~n: a collection of entries that
describes the characteristics of the terminals (or devices) in the
system.
Dial=Qut-~~~:

a chain of OCBs each of which is for a dial terminal
to which a message has been tposted-when the line for the terminal is
unavailable.

.a chain of elements, in FIFO order, that are
be processed bv TeAM and that are from the disabled appendages.

Disabled-read.L...9'y~:

to

Disk- -gueuing~ the process of maintaining the TCAM message queues on a
direct access storaqe device.
the process of providinq' a routine with
qivinq the routine contrel to process the element!

Disy~tching:

DistributionJ1l.!n%· a Terminal Table
associated with a distribution list.

an

and

block of infcrmation that is

nistribution·list: a group of terminals, each of which is
any messaqe directed to the group.

1310

element

to

receive

Duplicate-header- message: a messaqe that is identical to,the one sent
previously, as in multiple routinq.
].lement: an individual part of
buffer.

a

system

Element--Reguest- -Block- {tRB}: a control
requests for tuffers for a line qrcup.

resource;

for

example,

a

area that is used to make

a chain of elements in priority-FIFO order that
processed by TeAM and that are from the enabled TCAM

EnaDl€a-ready-gue~:

are to be
modules.

Enabling-a-line: the process cf ccnditioning the transmission
unit to accept incominq calls on a· line.

control

En a - 0 f - a EHI. res s

1.

2.

(EQAL c h a ra c t e r :
A control character or characters transmitted on a line to
irtdicate the end of non-text characters (for example, ad~ressing
characters).
A TeAM character that must be ~laced in a message if the system is
to accomodate routinq cf that rressaqe to several destinations; the
character must immeoiately fo1lcw the last destination code in the
messaqe header, and must also be specified by the EOA cperand of
the FORWAEt macro for the messaqe.

"Environment- - chec kpoint - - record: arecoro that contains infcrma tion on
the total TeAM operating environment at a sinqle point in time.
At
restart time, ~CAM updates the environment record with the content$ of
more recent incident che~kpcint records in order to reccnstruct the
MCP environment . as it existed before closedcwn or system failure.
Err~~ReC~~PrcceGure

(ER~:

a set of TCAM routines that attempt to

recover from transmission errors.
the communication medium between the
various componen ts of the control proqram," as well as between
processinq proqrams and the·control proqram. An ECE is the sub;ect of
WAIT and POST macro instructicns.

Event-Control-Elcck--~ECB1~

EXCR: execute channel prcqram.
]XCP~~eu~:

ready
set.

for

a chain of one CPE for the cylinder that is currently
o~erations in one extent of a disk message queues data

I/O

FF,FG: first-ended-first-cut.
1:EFO-gueuj1!.9: a situation in which meS~:i.qes that ended (EOT received)
first are sent ref ore messaqes thatbeqan trans~ission first. TCAM
provides FEFO queuina within priority qrou~s.
That is, TeAM sends
hiqher-priority messaqes before lower-priority messages. When two
messaqes on a queue have equal priority, TeAM sends the message, the
last seqment of which was rece~ved first.

GloSsary

1311

lIFO: first-in-£irst-out.
the situation in which equal-priority messages on a
destination queue are sent out in the order in which their first
seqments arrived on the queue.

FIFQ~ueuing:

First· - buffer- . prefix:
a 30-byte control area at the beginning of the
first buffer of a messaqe.
Flush-closedown: a TCAM MCP closedown durinq which incoming message
traffic is suspended and queued outgoinq messages are sent before
closedown completed.
That is, unsent messages are "flushed" from the
messaqe queues.
Functional ·macro -instructions: TeAM macros that perform the specific
operations required for messaqes directed to the Messaqe Handler
(see
Qeli~j!er-macro instructions).
FunctiQna~~outi~:
a routine that is as~ociated with a specific MH
macro and that is activated from the expansion of that macro.

lunc1ional~~broutine~

a routine or subroutine that is activated by

a

functional routine.
"GOOG~ MOLnin~_"__·~essage:
a user-qenerated message (through an exit
specified in the FEADY macro)
to be sent to all or to selected
terminals
(user-determined) for celd starts.
This messaqe is used to
notify a terminal operator or operators that the TCAM system is up and
runninq.

gLou~

ent~:

with

a'

Header
header.

a ~erminal Tatle block of infcrmation that is associated
qroup of terminals that have the qroup-code hardware feature.

buffer~

a buffer that contains all or any

part

of

a

message

Held- terminal:
a terminal that cannot accept messaqes because of the
effect of a HelD macro.
Eold~~eu~:

a chain of messaqes sent to a terminal or terminals that
are not currently acceptinq messaqes because a HOLD macro was issued
in MH for this terminal.

19l~~character:

does not
terminal.

print

a character that is transroitted on a
line and that
or punch at the output component of the accepting

Incioent-checkHoint record: a disk checkpoint data set record of a
specific event or incident durinq TeAM operation~
An incident record
loqs a chanqe in station or line status or in the contents of an
option field.
At restart time, TeAM uses incident records to update
the information in the environment
checkpoint
record.
These
checkpoint records are written as a result of operator control
commands or TCHNG, ICHNG, or CHECKPT macros.

1312

Incoming-~rou~: that portion of a Messaqe Handler that is designed
to
handle messaqes arrivinq fer processinq by the message control program
(see Outqoing-Grou~).

Incoming message:
to the computer.

a messaqe that is beinq transmitted from a station

Ini1iEte-mode~ causes messaqe segments to te sent from
a destination
queue to the proper destinatien as soon as possible after they are
placed on the queue.
Normally the seqments are not sent until a full
messaqe is on the queue.
Initiate mode is provided by a functional
macro instruction in an incoming MH.

Input: of or related to a messaqe transmission that involves
data at a terminal or receiving data at the computer~

entering

In-source- -chain:- a chain off the QCBINSRC field of a Destination QCB
of all source LeBs that are currently sendinq initiate mode messages
to the associated station.
Invitation:
the process in which the coftputer makes contact with a
terminal in order to qive the terminal the cPFortunity to transmit a
messaqe
(if it has one ready).
Pollinq and enabling are forms of
invitation.
Invitation-characters: see Pollinqcharacters.
Invitation List: a sequence of pollinq characters or identification
sequences asscciated with the terminals on a line. The order in which
the characters are specified determines the order in which the
terminals are invited to enter a messaqe.
lLQ-Block-JIO]l: the com~unicaticn medium tetween a routine that
requests an I/O oFeratien and the I/O Supervisor.
All the information
required by the· I/O Supervisor to execute an I/O operation is
contained in the lOB, or is pointed to by the lOB.
ILO~~ervis~r

lIGS}: an·Operatinq System task that centrals
I/O operations in the system.
Job . Control- -Languag~__· {JeLl:
a collecticn of statements
identify a iot and its requirements to the Cperatinq System.

all

the

used to

Job-Pile-Control Eloc~JFCB1: a system centrol bleck constructed by
iob management routines to contain informatien about a specific data
set in the system. There is one JFCB fer each DCE that is opened.
The information in the JFCE may be modified during open time.
Line -control~ the scheme ef operating Frocedures and control signals
by which a telecommunications system is ccntrelled.
an area of main storage that contains
TCAM maintains one LCE
control informatien for operations on a line.
for each line in the system.

Line-Control-Eleck-11~:

Glossary

1313

Line - grou..12~ a set of one or more
type, ; over
which
terminals
communicate with the computer •

communications
with· similar

lines of the same
characteristics can

the manner in which a record is given to (or taken from)
the user's program where TCAM provides the work area for a work unit
and pas~es the address of the area to the user in register 1, and the
user may' work cn the work unit in ~lace.

.1.2g.:t~1!LQde·:

a collection of messaqes that prcvides a history of message
traffic; either messaqe seqments or complete messages can be loqged.

1Qg~

Logging: the process of recording messaqes on a storage medium to
maintain a histcry of message traffic for accounting or other
purposes.
Logical-buffe£: see buffer.
Log!~..12e- --entr~:
a Terminal Tarle block of informaticn
associated with a gueue for logging cemplete messages.

that

is

the assembler-qenerated output from an instruction in
a source lanquage.

]~~expansion:

Main-storage·gueuing: a situation in which
maintained in main storage.
Master· -QCE: the basic format
destination specific data.

cf

a

TCAM

messaqe

queues

are

Destination QCE - 40 bytes of

an STCB entry code field that identifies the type of STCB;
therefore, the method necessary to activate the corresponding subtask.

]CPL~

Message~
a
combination of
termination point is marked by:

letters~

digits,

and

symbols

whose

1. an end of transmission character (EOT) for start-stop devices;
2. an end of transmission seguence (ETX EOTl for ESC devices; or
3. if end-of-tlock checkinq is specified by the CONV operand of
the STABTMH macro, by an E~X, ETE, or EOB character.
Centrc! Progr~~(MC~l: a series of TCAM routines that identify
the telecommunications network to the System/360 Operatinq System,
establish line centrol, and handle and route messages.

~~~~~e

l1~.§.§~ge-data:

message.
A
messaqe data.

transmitted characters that are recorded as part of a
m~~sage~ datg~rea- is the area in a buffer that receives

Handler· {MH} l a sequence of user- specified macro instructions
that examine and process the control information in messaqe headers;
and perform fun~tions necessary to prepare message segments for
forward~nq to their destinations.
One Message Handler is required for
each line grou~ that has special message-handlinq requirements.

]~.s..9.,g

1314

Message· - header: the part of a messaqe containinq control 'information,
such as the destinaticn cede (as distinct from the text·· of the
messaqel •
Me.§..§.s~log
data set: a set of messaqes or message segments' that are
maintained on seccndary ~tcraqe for accountinq or other purposes.

Mess.s~~-:
a chain of messaqes fer a destination
terminal, application prcqram, or loqqinq medium).

(a,

line,

. data- -set: a collection of the chains of messaqes for
the destinations that are desiqnated to be queued in the same manner;
that is, on reusable disk, on nonreusable disk, or in main storaqew
1'1es.§.s.9.§~ueues·

Me~~~etrieval ·function: allcws the user to retrieve a previously
sent messaqe by specifyinq a combination of the messaqe destination
and the input (or output) sequence number of ·~the message. The
sequence number is assiqned by the SEQUENC! macro~

l1~.9~egment:

that portion of a messaqe that fits
data area of a tuffer.

in

the

"message

a telecommunications a~plicaticn in which a message
is
received at a central location, ~cssibly stored until the
appropriate time, and then transmitted to its destination.

~~.9~witching:

]FT: multiproqramminq with a fixed number of tasks.

Module -: a proqram uni t
(with one or mere entry pcints) tha t is
discrete and identifiable with respect te compilinq,combininq with
other units, and loadinq.the remainder after any division has been performed. In TeAM
the absolute record number modulo-the tctal number of records is equal
to the relative record number.

~odulQ:

Multidrop-terminal: a terminal on a

multi~cint

line

Multiple--routing: the method of sendinq a message where mdre than one
destination is specified in the header of the message.
l1ultiple-buffer-header: a messaqe
buffer.
]31'1':

hea~er

that occupies more

than

one

multiproqramminq with a variable number of tasks.

N~llork -control:
the manaqement of a series of points interconnected
by communications channels.

Next-buffer-lccatioRz the value of address (di~k relative record
to te used fer the first unit of the next buffer of the
messaqe that is currently beinq placed cn the related message queue.

~umberl

Glossary . 1315

the value of address (disk relative recor,d
number) to be used for the first unit of the first buffer of the next
messaqe received for the related messaqe queue.

Next-.IDess.,9;~-1Q£atio..!}:

a chain of CPBs for ail cylinders in an extent of a disk
messaqe queues data set other than the cylinder currently ready for
I/O and the cylinder 4ust after it.

N~~~g~~~~:

N~~~ifer-~~ue:
the chain of Channel Program Blocks (CPBs) for READ
operations when no buffers are in the tuffer pool •

the chain of elements that are' to be
initialization.

.NQ..='£'£LgJ!~:

processed

by

CPB

the situation in which each recerd of a disk
messaqe queues data set may be used only once.

]on~usabl~disk_gueuin~:

Operator--awareness message! an unsolicited status message from the
TCAM system to the primary operator contrel terminal operator.
This
is to make the operator aware of seme potential problem in TeAM.
a TCAM facility that allows the system operator to
issue
commands
to
examine
or
alter
the
status
of
his
telecommunications network.

OQ~£atQ~_~~ntrol:

Control Address Vector Table- {AVT): an MCP area that contains
parameters for the Operator Ccntrel control module.

g~erator

o~tio~able!
a collection
OPTIO~ macro instructions.

of

informatien provided by the user in

that portion of the message handler that processes
messaqes beine sent from the messaqe centrol prcqram to any of the
lines, line qroups, or application proqrams (see Incominq Group).

Q~!gQin~grou~:

a messaqe that is
control proqram to its destination.

gutgoin~message:

being

sent

from

the

messaqe

Qutput: of or related to a messaqe transmission that involves
acceptinq data at a terminal or sendinq data from the computer.
Path-switch: an cPtion field settinq used as a switch to indicate
order of or the cenditional execution of MH macros.

the

a flexible, systematic, centrally controlled method of
permittinq terminals to transmit without ccntending for the line. The
computer contacts terminals accordinq to the crder specified in the
invitation list; each terminal contacted is invited to send messaqes.
Polli~:

EQllingcharacters: a set of characters peculiar to a terminal and the
pollinq operaticn; response to these characters indicates to the
computer whether the terminal has a messaqe to enter.

1316

~os1:

a siqnal of the completion of an event in the

an area in which the queuinq data for a
level of a messaqe for a Destination QCE is stcred.

R~io~~~CE:

O~eratinq

qiven

System.
priority

Process- -Control Block (peEl: an MCP steraqe area for data that· is
necessary for cemmunication between the MCP and an application
proqram.
Process-· -ent~: a Terminal Table block
associated with an application proqram.

of

information

that

is

Process entry-work-area: a work area in the MCP.
It contains data
pertinent to the presence of an application interface with the MCP •.
Program-Controlled lnterru:gtion· (PCl) -: an interruption caused by the
channel when startinq the executicn of a ccw with the PCl flaq set.
This interruption is used in TCAM tc notify TCAM of pendinq or
completed data transfer between TCAM and a particular terminal or
terminals. This knowledqe is used for buffer and data handlinq.
Purg~li..Q:
an SVC issued
teleprocessinq lines.
Oueu~:

at close time tc remove all traffic from

a chain of items waitinq for service by the system.

Oueue~baGk
chain: a time sequential record of the sendinq and
receivinq messaqe traffic for the terminal or terminals cf a specific
Destination OCE.
Queue-Control-Eloc~QCB1:

a storaqe area uEed to

associate

elements

with appropriate subtasks.
Quick -closedown: a TCAM MCP clcsedown that entails stoppinq the
messaqe traffic orr each line as soen as any message beinq sent or
received at the time of the clcsedcwn request is transmitted.
the queue control cleek used by TCAM as an
intermediate step between the Destinaticn QCB for an application
proqram and an application proqram request for data. In TCAM it is
used to anticipate a request for data and to avoid the overhead
required in retrievinq the data from the Destination QCE at the time
of the request.
ReaG-ahea~_-_-~:

a -chain of elements
performed in the ~CAM system.

lL~aa.Y..::Ju!~ue:

that

represent

the

work

to

be

]ecall: a method· of retrievinq a particular messaqe or a part of a
messaqe in order to reprccess it er to redirect it.
Recalled-header tuffer: the first tuffer cf beader information
recalled messaqe

for

a

B.§.gicn Control 'Ia...§1L.jRCT1: a TSO task that determines which task is to
occupy a particular TSO reqion. There is cne ReT for each reqion.
The RCT is activated cy the TSIP SVC.
Glos sa r y

13 1 7

'Relative-line-number-lrl1!l: number 6f a
relative to all others in the line qroup.

line

in

the

line

qroup

ResO~~t
any system facility that is required by a iob or task; for
example, main storaqe, I/O devices, data sets, tuff€r pool.
B.~'§Qurce

-Contrel· Eleck - (FCB): an eiqht-byte prefix to an element.

Bestart: to restructure the execution of a routine
the data recorded at a checkpoint.

or

system~,

using

"'ReEtart--in--Progress U message: a user-qenerated message (throuqh an
exit specified cn the READY macro) to be sent to all or selected
terminals
(user-determined).
This message is used to notify a
terminal operator or operators that the TCA~ system is up and runninq.
the method of operation used during the time the GET
Scheduler is reeallinq buffers te satisfv a retri~ve request by the
application prcqram.

R~trieve~mode!

Ret.!:.!: an error recovery procedure in which the current blcck of
is re-sent a prescribed number of times or until atcepted.

data

Retry- gueue~ a chain of one CPB for the cylinder on which to have 1/0
in an extent ef a disk message queues data set after the CPEs on the
BXCP queue are precessed.
Re.Y.§.Sbl~·· dis_k_gueui.n..g: a si tua tion in which messages are queued to a
wrapped messaqe queues data set; that is, serviced messages are
overlaid by new messaqes enterinq the system.
PQllgutLRolliD--lPORI1: an optional feature of the ~VT centrol program
confiquration that enables an additional reqicn (or regions)
of main
storaqe to be temporarily reassiqned from cne job step to another.
Boutinet an ordered set of instructions with a single entry point.
a block of main storaqe that is used to hold certain data
(for example, reqister values) while the location in which the data
was oriqinally stored is used for ether pur~oses.
s~~~:

Secondary- -destination: a destination to which a message is to be sent
if the primary destination is unable to accept the messaqe.
~egment:

that pcrticn of a messaqe contained in a sinqle buffer •

.2election-:the process by which the computer makes contact with a
terminal in order to send it a message (includes addressing and, for
switched lines, calling).
Method (SA~: a proqram that performs 1/0 operations
on a data set one record at a time from teqinninqto end.

~eguential-Access·

Single-entr.!: a Terminal Table block of infcrmation that is associated
with one terminal or terminal component.
1318

1i.Q'y~ce...;..offset~

the index value intc the Termname Table for'the

source

terminal.
Special- -Characters -Table- (SCT1: a cellection of entries that contain
the special characters required for device I/O for each termi~al
tor
device) in the system.
S~art-sto~ine:
a line on which each character of data transmission
is preceded by a special control siqnal that indicates the beqinning
of the settuenceof data bits for a character~ Each character is
followed by ancther control siqnal that indicates the end of the data
bit sequence •
.§..t.atio.n~

a computer or a terminal.

station -~ontrol· -Block (SCE1:a loqical extension of the QCB for each
station. The SCE contains informaticn used by TCAM to control
bufferinq.
Subsequent· . buffe.!...:....;.J2refix: a 23-byte contrel area at the beginning of
each b~ffer of a messaqe after the first buffer.
Subtask-control Block~TCE} ~ a storaqe area used to
inf6rmation necessary to activate a particular routine.

contain

the

;

a task that is created by ancther task by means of the ATTACH
macro instruction.

~~btas~:

Tas~..:.-£on1rol~..Qck-..:...11CB}:

The consolidation of control information

related to a task.
Task - ILO - Table .(TIOT) -: a control block constructed by ;ob manaqeme.n t
to provide I/O suppcrt routines (OPEN, ClOSE, EOVl with pointers to
JFCBs and allccated devices.
ICAMLTSO·buffer: a buffer residinq in the TCAM region in which the
PRFTSEUF bit in the Buffer Prefix is en indicatinq that the buffer
contains a TSO messaqe.
.
Telecommunications: any transmissien or reception of signals, writing,
sounds, or intelliqence ef any nature, by wire, radio, visual methods,
or electromaqnetic systems.
Often
used
interchangeably
with
"communications." Synonym: teleprocessinq.
Telecommunicaticns Access- -Method· {TCAM1:a hiqh-level access method
that controls data transfer between main stcrage and remote stations.
Terminal: a point in a system at which data can enter, leave, or enter
and leave. A terminal can also be a control unit to which cne or more
input/output devices can be attached (see Comtcnent).
a sinqle block of device-dependent information in the
Terminal Table on a terminal, qroup of terminals, or application
proqram.

Ter~inal-~ntry:

Glossary

13·19

Termi~~-I/O- Coordinator - {TIO£):
the interface
subsystem and the version of TCAM that su~~orts TSO.

between the TSO

l~x~inal-Tabl~:

an ordered collection of information consistinq of
blocks of device-dependent inforrraticn cn each terminal from which a
messaqe can oriqinate, and on each terminal, qroup of terminals, and
application prcqram to which a messaqe can ce sent •

a table that contains the name of all the terminals in
the system in collatinQ sequence.

.!,g.I.!!!BE~Tabl.§:

that part of the messaqe of concern to the party ultimately
receivinq the messaqe (that is, the messaqe exclusive of the header or
control informaticn).

!~xt~

!~xt~~~t1~~:
~1£:

a cuffer that contains no

~art

of a messaqe header.

Transfer in Channel.

Time~delax:

a halt of a specific

o~eraticn

for a pre-specified

amount

of time.
a method of usinq a computinq system that allows a
numcer of users tc execute proqrams ccncurrently and to interact with
them durinq execution.
~1~_-_§haring:

an optional ccnfiquration of the Operating
System providinq conversational time sharing from remote terminals.

Ti~_-_-Sha~ing~~ion-jTS01:

TIOC~buf1er:

a cuffer residinq in the !SO reqion.

the technique in !CAM by which an element is ~assed from one
queue to anether.
The TCAM routines specify the element and the
queues and the !CAM Dispatcher actually performs the acticn •

TQos~:

.T ral1.§la tion ~.§:bl.§: a colleOction of the information
convert data frcm one transmission code to another.

necessary

to

T~~n§~.§:£~n1-_meg.§:
a mcde of ESC transmission in which all the data,
includinq norroally restricted data-link centrol characters,
are
transmitted enly as s~ecific bit patterns. Control characters that
are to be effective as such are preceded by a DLE character.

Twai1: the TeAM techniqUE in which a surtask waits for an element to
process by havinq the STCB for that subtask placed in the STCB chain
of the OCB to which the needed element will be tposted.
~~i1~

the basic cuildinq blocks from which TeAM
cuffers
are
constructed. All units in a specific TCAM system are the same length;
the user specifies this lenqth in the KEYLEN o~erand of the INTRO
macrc.
Unit control-area: a twelve-byte centrol area prefixed
buffer unit.

1320

to

each

TCAM

Uni! __ ~on1rol __ Bl~ck _(UCE1: a system control block that describes the
characteristics of the device to the I/O Su~ervisor and is used by the
;ob scheduler durinq allocation of the device.
~§e-count~

in a PCB, a count of the open

DCBs

associated

with

this

PCE.

leON!

V-type address constant used to reserve storaqe for the address
of an ~xternal sy~bol that is used for effectinq branches to other
proqrams.

Warm start: a restart in which TeAM reconstructs the environment that
existed before closedown.
Wri te-to-Operator -J.!'IQ1: an opt.ional user-coded service whereby a
messaqe may be written to the system conscle operator informinq him of
errors and unusual system conditions that roay need correcting.
Wri!~!o~O~rato£_ with ~~(WTOR1: an cptional user-coded service
whereby a messaqe may
be written to the system console operator
informinq him ~f errors and unusual ~ystem conditions that may need
correctinq.
~he operator must key in a res~onse to this message.

Zone - boundary-: the middle of a quarter
queues data set.

of

a

13-b~~refi~:

see subsequent buffer prefix.

lO-b~~e-p~efi~:

see first buffer prefix.

reusable

disk

G 1 C 5 sa r

message

y

13 2 1

INDEX
"qood morninq" messaqe 1312
"restart in proqress" messaqe 1318
access method work area (ACSMETHl 1307
activate-I/O qenerator subtask
cross reference table 10Q1
flowchart 668
library 1184
microfiche directory 902
module description '91
reqister usaqe 1145
activate-I/O qenerator subtask for a OTAM compatible system
cross reference table 1098
flowchart 6()8
library 1184
microfiche directory Q02
module description 194
reqister usaqe 1146
activate-I/O qenerator subtask for BSC lines
cross reference table '097
flowchart 668
library 1'84
microfiche directory 902
module descriPtion '92
reqister usaqe 1146
activate-I/O qeneratorsubtask for leased and start/stop
lines and no ~SO
cross reference table 1091
flowchart 668
library 1184
microfiche directory 902
module description 193
reqister usaqe 1146
activate-I/O qenerator subtask for start/stop lines
cross reference table 1097
flowchart 668
library 1184
microfiche directory 902
module description 193
reqister usaqe "46
additional records ·1307
address finder routine
cross reference table 1091
flowchart 444
library 1182
microfiche directory A98
module description 236
reqister usaq~ 1'25
address vector table (AVTl 1307
address vector table (AVTl 37
address '307
alphabetic csect name list xi
alter trace status routine
cross reference table '095
flowchart '509
Index

1323

library 1171
microfiche directory 900
module description 349
reqister usaqe 1136
Appendix A: list of TCAM modules by library 1171
Appendix B: list of TCAM queues and QCBs 1187
APpendix c: list of relative priorities in TeAM 1'95
Appendix D: TCAM channel proqrams and TP operation codes 1199
application proqram
assembly 30
definition 1307
execution 30
initialization 118
input furictions 120
linkaqe edit 30
network control facilities 128
output functions 120
processinq 117
termination functions 118
application proqram/checkpoint interface routine
cross reference table 1098
flowchart 707
library 1172
microfiche directory 902
module description 375
reqister usaqe 1147
ipplication proqram compatible QTAM routines 319
application proqram data areas
access method work area 996
data extent block for application proqram 995
process control block 992
process entry work area 1000
application proqram I/O routines 312
application proqram initialization and termination routines 307
a pplica tion proqram initialization an.d termination 118
application proqram messaqe retrieval 318
application proqram netwcrk control routines 323
application oroqram network control 128
application proqram processinq 117
application proqram processinq 55
AOC~L SVC 102 routine
cross reference table 1101
flowchart 532
functions 69
library 1177
microfiche directory 903
module description 178
reqister usaqe 1153
assemblinq and linkaqe editinq an application proqram 30
assembly and linkaqe editinq an MCP 28
attach routine
cross reference table 1'00
flowchart 740
Ii brarv ·1172

1324

microfiche directorY 903
module description 153
reqister usaqe 1150
attached task 1307
attention handler
cross reference table 1106
flowchart 844
library 1180
microfiche directory 906
module description 200
reqister usaqe 1162
attention routine
cross reference table 1092
flowchart 848
library 11'1'1
microfiche directory 898
module description 199
reqister usaqe 1127
attributes of modules 59
auto poll and read response to poll unit check and unit exception
ERP module
cross reference table 1102
flowchart 654
library 1178
microfiche directory g04
mo~ule description 385
reqister usaqe 1154
auto poll 1307
AVT (see address vector table or TCA~ control areas)
binary search routine
cross reference table 10Q3
·fldwchart 466
library '183
microfiche directory 899
module description 272
reqister usaqe 1129
binary synchronous (BSC) line 1307
binary synchronous communication (see BSC)
hlock 1307
BSC channel check ~RP module
cross reference table 1103
flowchart 667
library .1178
microfiche directory 904
module description 393
reqister usaqe 1155
ESC ERP control module
cross reference table 1102
flowchart 659
library 1178
microfiche directory 904
module description 388
reqister usaqe 1155
BSC BRP modulelinkaqe 140
Index

1~25

BSC error post module
cross reference table 1103
flowchart 666
library 1178
microfiche directory 904
module description 393
reqister usaqe 1155
BSC'lin~

130"7

ESC read/write data check, overrun, and command reiect ERP module
cross reference table 1102
flowchart 663
library 1178
microfiche directory 904
module description 391
reqister usaqe 1155
BSt read/write equipment check, lost data, intervention required,
and unit exception ERP module
cross reference table 1102
flowchart 661
library 11"78
microfiche directory 904
module description 390
reqister usaqe 1155
BSC second level ccw return module
cross reference table 1'03
flowchart 665
library 11"78
microfiche directory 904
module description 392
reqister usaqe 1155
buffer
header 78
loqical 7"7
text 78

huffer disposition subtask
cross reference table 1094
flowchart 478
library 1183
microfiche directory 899
module description 273
reqister usaqe 1132
buffer manaqement in an MC?
allocation 80
d,.eallocation 8U
functions of buffer association 83
functions of buffer return 84
requestinq buffers 80
buffer manaqement module
cross reference table 10Q7
flowchart 608
library 1184
microfiche directory 901
module description 207
reqister usaqe 1142
1326

buffer prefix 1307
buffer prefix 77
buffer step routine
cross reference table 10Q2
flowchart 462
library 1182
microfiche directory 899
module description 271
reqister usaqe 1128
huffer unit (see unit)
buffer unit pool 1308
buffer 1307
huffered terminal scheduler
cross reference table 1104
flowchart 792
library 1179
microfiche directory 90S
module description 189
reqister usaqe 1159
buffered terminal 1308
build CKBEO disk record routine
cross reference table 1099
flowchart 718
library 1172
microfiche directory 903
module description 379
reqister usaqe 1148
build incident record for MH routine
cross reference table 1099
~lowchart 712
library 1172
microfiche directory Q02
module description 375
reqister usaqe 1147
build incident record for TCHNG routine
cross reference table 1099
flowchart 713
library 1172
microfiche directory Q02
module description 377
reqisterusaqe 1147
callinq 1308
cancel messaqe function of an MH 113
cancel messaqe routine
cross reference table 1092
flowchart 452
library 1182
microfiche directory 898
module description 274
reaister usaqe 1127
cascade entry 1308
cascade list subtesk
cross reference table 1094
flowchart '482
Index

1327

library 1183
microfiche directory 899
module description 284
reqister usaqe 1132
cascade list 1308
c~" initialization routine
functions 108
CCW (see channel command wordl
chanqe control terminal routine
cross reference table 1095
flowchart 505
library 1171
microfiche directory 900
mJdule description 346
reqister usaqe 1136
chanqe interval type routine
cross reference table 1095
flowchart 521
library '17'
microfiche directory qoo
module description 360
reqister usaqe 1138
chanqe terminal routine
cross reference table 1095
flowchart 506
library 1171
microfiche directorY 900
module description 347
reqister usaqe '136
channel command word (CCWl 1308
channel proqram block (CPB' 38, 1308
channel proqrams 1199
check routine
cross reference table 1105
flowchart 806
library 1179
microfiche directory 905
module descri~tion 315
reqister usaqe 1160
checkpoint - no available core routine
cross reference table 1099
flowchart 726
library 1112
microfiche directory 903
module description "37q
reqister usaqe'1149
checkpoint - no incident records routine
cross reference table 1100
flowchart 727
library 1172
microfiche directory 903
module description 380
reqister usaqe ·114q
checkpoint close routine

1328

cross reference table 1108
flowchart 685
library 1181
microfiche directory 907
module description 306
reqister usaqe 1168
checkpoint continuation restart routine
cross reference table 1107
flowchart 700
library 1181
microfiche directory 906
module ~escription 161
reqister usaqe 1166
checkpoint continuation restart subroutine
cross reference table 1103
flowchart "782
library 1179
microfiche directory Q05
module description 163
reqister usaqe 1156
checKPoint oata areas
checkpoint disk records 1015
checkpoint elements 1008
checkpoint work areas 1009
checKPoint data set 1308
checkpoint disk allocation routine
cross reference table 1108
flowchart 703
microfiche directory 907
mo~ule description 157
reqister usaqe 1167
checKPoint disk end appendaqe
cross reference table 1103
flowchart '783
library 1179
microfiche directory 905
module ~escription 374
reqister usaqe 1156
checkpoint disk T/O routine
cross reference table 1099
flowchart 720
library 1172
microfi~he directory 903
mo~ule description 372
reqister usaae 1148
checkpoint disk initialization routine
cross reference table 1107
flowchart 691
Ii br a r y 11 81
microfiche directory 906
module description 158
reqister usaqe 1166
checkpoint executor
cross reference table 'OQ8
Index

1329

flowchart 711
functions 133
library 1172
microfiche directory 902
module description 369
reqister usaqe 1147
checkpointpotification and disposition routine
cross reference table 1099
flowchart 723
ll.brarv 1172
microfiche directory 903
module description 373
reqister usaqe 1148
checkpoint open routine
cross reference table 1107
flowchart 690
library 1180
microfiche directory 906
module description 155
reqister usaqe 1166
checkpoint queue manaqer
cross reference table 1099
flowchart 719
library 1172
microfiche directory 903
module description 372
reqister usaqe 1148
checkpoint request record 1308
checkpoint request routine
cross reference table 1093
flowchart 476
library 1183
microfiche directory 899
module description 265
reqister usaqe 1131
checkpoint/restart from environment record routine
cross reference table 1101
flowchart 693Ii br a r y 11 8 1
microfiche directory 906
module description '59
reqister usaqe 1166
checkpoint/restart frOm incident and C~FEQ records routine
Gross reference table 1107
flowchart 696
library 1181
microfiche directory 906
module description 160
reqister usaqe 1166
checkpoint/restart option ~1
chec~point/restart 1308
checkpoint routines 369
checkpoint. 132
CTB (see command input buffer or system control blocks)

1330

C~~EO

checkpoint record 1309

CKBRO checkpoint routines

introduction 139
close routines 117
checkpoint close routine 1285
line qroup close routines 1285
messaqe queues close routine 1285
closedown completion routines 116
closed own of an MCP (see MC~ closedow~
closedown processinq routines 116
closedown terminal statistics recordinq module
cross reference table 1102
flowchart 658
library 1118
microfiche directory 904
module description 388
reqister usaqe 1155
cold start 130Q
command input buffer (CTE) 1309
communication parameter list 1309
communication vector table ~VT) 1309
compatible Orr-AM
qet/put support 125
messaqe retrieval support 125
compatible QTAM routines for an application proqram 319
compatible QTAM 1309
component 1309
continuation restart 130Q
control areas for TCAM (see TCA~ control areas)
control block linkaqes for TCAM q13
control blocks (see ~vstem control blocks or TCAM control blocks)
control record (checkpoint' 1309
COpy held terminals routine
cross reference table '094
flowchart 501
library 1111
microfiche directory qOo
module description 342
reqister usaqe 1135
COpy invitation list entry routine
cross refer~nce table 1095
flowchart 502
library 1111
microfiche directory 900
module description 343
reqister usaqe 1135
COpy invitation list status routine
cross reference table 1095
flowchart 529
library 1172
microfiche directory 900
module description 365
reqister usaqe 1138
COpy tCB information routine
Index

1331

cross reference table 1094
flowchart 499
library 1111
microfiche directory 900
mo~ule ~escription 339
reqister usaqe 1135
COpy line information routine
cross reference table 1094
flowchart 497
library 1171
microfiche directory 900
module description 337
reqister usaqe 1134
COpy operator control terminal routine
cross reference table '095
flowchart 504
library 1171
microfiche directory 900
module description 345
reqister usaqe 1136
COpy OCB information routine
microfiche directory qOO
COpy OC~ information routine
cross reference table 1094
flowchart 500
library 1171
module description 341
reqister usaqe 1135
COpy terminal information routine
cross reference table 1094
flowchart 4qe
library 11-71
microfiche directory 900
module description 338
reqister usaqe 1134
counter routine
cross reference table 1093
flowchart 473
Ii brarv 1183
microfiche directory 899
module description 262
reqister usaqe 1131
CPR (see channel proqram block)
CPB cleanup
functions 111
rPB free pool 1309
C~B initialization
disk queuinq only
cross reference table 1097
flowchart 586
library 1184
microfiche directory 901
module description 293
reqister usaqe '142
CPB initialization - main storaqe queuinq only
1332

cross reference table 1096
flowchart 571
library 1184
microfiche directory 901
module description 292
reqister usaqe 1141
CUB initialization
cross reference table 1096
flowchart 547
library 1184
microfiche directory 901
module description 290
reqister usaqe 1141
create an error messaqe routine and subtask
cross reference table 1092
flowchart 458
library 1182
microfiche directory 898
module description 277
reqister usaqe 1127
cross-partition data movement 1309
cross reference table for TeAM modules 1088
cross reference table 1079
csect name module listinq xi
cutoff messaqe transmission routine
cross reference table 1092
~lowchart 459
lihrary 1182
microfiche directory 898
~odule description 246
reqister usaqe 1127
data area layouts
address vector table 915
application proqram data areas 992
buffer prefix 987
channel proqram block 969
checkpoint data areas 1008
data control block 973
data event control block 985
data extent block 982
device charactetistics table 948
oisK data area 991
element. request block 957
llne control block 957
lin~aqes from a TeAM buffer prefix 913
operator control data areas 1003
option characteristics table 947
option table 946
os T/n device characteristics table 986
queue control block 951
resource control block 951
special characters table 949
station control block 964
subtask centrol block 956
Index

1333

TCAM control block linkaqes 911
terminal table 940
termname table 945
data control block (DCB) 1309
data event control block (DECRl 1309
data extent block (DEB) '309
data set con t r 0 Ib 1 oc k ( DS CB) 1 3 1 0
data tables
option characteristics table layout 941
option table layout 946
parameter lists for MH macros 1024
termanme table layout 945
terminal table layout 941
nate and time provision routine
cross reference table 1090
flowchart 430
library 1182
microfiche directory 898
module description 219
reqister usaqe .1123
DCB (see data area layouts, data control block,
or system control blocks)
DC~
(see data area layouts, data tables, or device
characteristics table)
DC~ (see device characteristics table or data area layouts)
~ead-letter queue 1310
DEB (see data area layouts, data extent block, or system
control blocKs)
debuq service aid router
cross reference table 1095
flowchart 530
library 1172
microfiche directory qOo
module descr~ption 367
~eqister usaqe 1138
DECB (see data area layouts, data event control block,
or system controll
aelimiter macro instruction 1310
destination offset 1310
~estination OCB for ~ain storaqe queuinq with disk backup 105
destination queue 1310
destination scheduler - disk queuinq only
cross reference table 1097
.flowcha rt 641
library 1184
microfiche directory 902
module description 288
reqister usaqe 1145
destination scheduler - main storaqe queuinq only
cross reference table 1097
flowchart 633
library '184.
microfiche directorY 902
module description 287
1334

reqister usaqe 1145
destination scheduler
cross reference table 1097
flow.chart 623
library 1184
microfiche directory 902
module description 28~
reqister usaqe 1144
nest ina t ion 1 3 1 0
device characteristics table (neT) 1310
device characteristics table (DCTl 37
diaqnostic aids 1039
dial-out queue 1310
dial receive scheduler
cross reference table 1105
flowchart 838
library 1180
microfiche directory 906
module description 184
reqister usaqe 1161
disabled ready queue 1310
disabled 60
disk end appendaqe
cross ref.erence table "05
flowchart 840
functions 110
library 1180
microfiche directory 906
module description 297
reqister usaqe 1162
disk end appendage for a sinqle CPB
cross reference table 1105
flowchart 805
library 1179
microfiche directory 905
module description 298
reqister usaqe 1160
disk I/O manaqement routines '08
disk messaqe queue initializer
cross reference table 1101
flowchart 850
library 1172
microfiche directory 903
module description 145
reqister usaqe 1150
disk message queue initializer 62
aisk messaqe queues close routine
cross reference table 1108
flowchart 682'
library 1181
microfiche directory 907
module description 306
reqister usaqe 1167
disk messaqe queues open routines
Index

1335

cross reference table 1106
flowchart 671
1i bra rv 1180·
microfiche directory 906
module description 153
reqister usaqe 1162
disk queuinq 1310
dispatchinq 1310
distribution entry 1310
distribution list subtask
cross reference table 1093
flowchart 477
library 1183
microfiche directory 899
module description 284
reqister usaqe 1132
nistribution list 1310
DSCB (see data area layouts or data set control block}
duplicate-header messaqe that spans queue-type 104
~uplicate-header messaqes 98, 1311
nvnamic translation routine
cross reference table 1093
flowchart 468
library 1183
microfiche directory 899
module description 257
reqister usaqe 1129
~CB
(see event control blockl
element request block (EFBl 38, 1311
element 1311
elements of TeAM dispatcner 32
enabled ready .queue 1311
enabled f:;0
enablinq a line 1311
end-o~-address (EOAl
character 1311
environment checkpoint record 1311
environment checkpoint routine
cross reference table 1099
flowchart 715
library 1172
microfiche directory 902
module description 371
reqister usaqe 1148
environment 'checkpoint routines
introduction 134
BnA character 1311
FOB/ETB handlinq subtask
cross reference table 1094
flowchart 484
library 1183
microfiche directory 899
module description 266
EOB/ETB handlinq subtask reqister usaqe 1133
ERB (see element request block, data tables, data area layouts,

1336

or

control areas)
(see error recovery procedure)
error post and second level cei return module
cross reference table 1102
flowchart 655
library 1178
microfiche directory g04
module description 385
reqister usaae 1154
error recovery procedure (ERPl routines 381
error recovery procedures (F?P)
TC~~

E~P.

~efinition

131'

introduction 157
lin~aqe between the BSC modules 140
linkaqe between the start/stop modules 139
method of operation 13q
event con trol block (ECP 1 1311
~¥c'O driver
cross reference table 1104
flowchart 786
functions 109
1ibrary 1'-'9
microfiche directory g05
module description 29~
reqister usaqe 11S8
EYCP driver for a sinqle CPB
cross reference table 1104
flowchart 791)
library 1179
microfiche directory gOS
module description 296
reqister usaqe 1159
EXCP au~ue 1311

'Pxe p 1311
execution of an application proqram 30
execution of an MCP 2q
FEFO queuinq 98, 1311

1<'FFO 1311
FIFn queuinq 1312

FI1"() 1312
first buffer prefix 1312
flowchart.s 427
flus~ closedown 1312
~oldout charts xxii
formatted ~CAM dump 1045
forwar:d routine
cross reference table 1093
flowchart 4-'0
library 1183
microfiche directory 899
module description 256
reqister usaqe '130
functional macro instructions 1312
functional routine 1312
Index

1337

functional subroutine 13'2
functions of CPB cleanup 111
functions of CPB initialization '08
functions of TNTFO 63
functions of READY 64
functions of the checkpoint executor 133
functions of the disk end appendaqe 110
functions'of the EXC~ driver routine 109
functions of the network control facilities 128
functions of the Open routines 63
qeneration (see system qeneration)
qet compatible routine
cross reference table 1105
flowchart 800
library 1179
microfiche directory 905
module description 3'9
reqister usaqe 1159
qet/put and read/write close executor
cross reference table 1108
flowchart 688
iibrary 1181
microfiche directory Q07
module description 309
reqister usaqe 1169
qet/put and read/write open executor
cross reference table 1107
flowchart 686
librarv 1181
microfiche directory 906
module description 307
reqister usaqe 1167
qet/Lead routine
cross reference table 1105
flowchart 796
library 1179
microficne directory Q05
module description 313
reaister usaqe '159
qet scheduler
cross reference table 1096
flowchart 537
library '183
.microfich~ directory 901
module description 312
reqister usaqe 1140
qet scheduler FIFO routine
cross reference table 1096
flowchart 540
library 1184
microfiche directory 90'
module desc~iption 316
reqister usaqe 1140
qlossarv 1307
1338

qroup entry 1312
headeL buffer 1312
held terminal 1312
hold function of an MH 112
hold queues 101. 1312
hold/release terminal routine
cross reference table 1092
flowchart 453
library 1182
microfiche directory 898
module description 276
reqister usaqe 1127
I/O block (TOB) 1313
1/0 functions of an application proqram
input 120
output 120
T/O supervisor (IOS) 1313
TCH~G processinq routine
cross reference table 1095
flowchart 524
library 1172
microfiche directory qOO
module description 362
reqister usaqe 1138
leOPY service routine
cross reference table 1096
flowchart 544
library 1184
microfiche4irectory q01
m6dule description 32q
reqister usaqe 1140
idle character 1312
in-source chain 1313
inbuffer subqroup 87
incident checkpoint for operator control routine
cross reference table 1099
flowchart 714
library 1172
microfiche directory 902
module description 378
reqister usaqe 1148
incident checkpoint record 1312
incident checkpcint routines
incident checkpoint for MH 138
incident checkpoint for operator control 138
incident checkpoint for TCHNG 138'
introduction 116
incominq qroup of an MH
inbuffer subqroUp 87
inheader subqroup 86
inmessaqe subqroup 87
incominq qroup 1313
incominq messaqe 1313
incominq/outqoinq messaqe delimiter routine
Index

1339

cross reference table 1093
flowchart 469
lib~ary 1183
microfiche directory 899
module description 215
reqister usaqe 1130
inheader subqroup 86
initialization functions - application proqram 118
initialization of an MCP (see MCP initialization)
initialization routines 148
initiate function of an MH 115
initiate mode 1313
inmessaqe subqroup 87
input £unctions of an application proqram 120
input sequence number insertion routine
cross reference table 1091
flowchart 436
Ii brarv 1182
microfiche directory 898
module description 223
reqister usaqe 1124
input 1313
insert at offset routine
cross reference table 1093
flowchart 467
library 1183
microfiche directory 899
module description 254
reqister usaqe 1129
insert data routine
cross reference table 1090
flowcha rt. 433
library 1182
microfiche directory 898
module description 268
reqister usaqe 1124
TNTR0 qetmain routine
cross reference table '100
flowchart 738
library '172
microfiche directory 903
module description 15'
reqister usaqe 1150
INTRO macro 28, 63
introduction 25
invitation characters 1313
invitation list 31, 1313
invitation 1313
iob control languaqe (JCL1 1313
iob file control block (JFCBl 1313
LCB (see data arealavouts, line control
block, ~CA~ 'control areas, or TCAM control blocks)
GCB status bvte usaqe bV module 1043
leased receive scheduler

1340

line
line
line

line

line
line

line

line

line

line

cross reference table 1106
flowchart 841
library 1180
microfiche directory 906
module description 183
reqister usaqe1162
control block (LeE) 38. 1313
control characters
EOA 1311
idle 1312
control initialization routine
cross reference table 1093
flowchart 471
library 1183
microfiche directory 899
module description 260
reqister usaqe 1130
control insertion routine
cross reference table'1091
-flowchart 441
liDrarv 1182
microfiche directory 898
module description 232
reqister usaqe 1125
control 1313
end appendaqe
cross reference table 1105
flowchart ~24
library 1180
microfiche directory 905
module description 19~
reqister usaqe '161
end appendaqe for a O~~~ compatible system
cross reference table 1103
flowchart 771
library 1179
microfiche directory 905
module description 199
reqister usaqe 1156
end appendaqe for BSC lines
cross reference table 1103
flowchart 743
library. 1179
microfiche directory 904
module description 197
reqister usaqe 1156
end appendaqe for leased and, start/stop lines and no
cross reference table '103
flowchart 765
library '179
microfiche directory qO~
module description '98
reqister usaqe 11~6
ena appendage for start/stop lines

TSO

Index

134'

flowchart 756
cross reference table 1103
librar" 1119
microfiche director" 904
module description 197
reqister usaqe 1156
line qroup ~los€ routines
cross reference table 1108
flowchart 6B3
library 1181
method of operation 1285
microfiche director" 907
module description 304
reqister usaqe 1168
line qroup open routines
cross reference table 1106
'flowchart 674
library 1180
microfiche directory 906. 907
module description 164
reqisterusaqe 1164
line qroup 1314
line I/O interrupt trace routine
cross reference table 1103
flowchart 741
library 1178
microfiche director" 904
module description 200
reqister usaqe 1155
line I/O interru~t trace table 1078
line manaqement in an MCP
receive operation 74
senu operation 76
line queuinq optio~s 55
line transmission preparation 64
link routine
cross reference table 1100
flowchart 732
library 1172
microfiche director" 903
modUle description 148
reqister us'aqe 1149
linkaqe between the BSC ERP modules 140
linkaqe between the start/stop ERP modules 139
linkaqes betwe~n macro expansions and modules 1108
linkaqes from a TeAM buffer prefix 913
local receive scheduler
cross reference table 1103
flowchart 742
library 1179
microfiche directory 904
module description 186
reqisterusa~e 1156
locate mode 1314
1342

locate option field address routine
cross reference table 10QO
flowchart 432
library 1182
microfiche directory 898
module nescription 221
reqister usaqe 1124
lock function of an ~H 114
lock routine
cross reference table 1094
f.lowchart 480
Ii brarv 1183
microfiche directory 899
module description 283
reqister usaqe 1132
loq messaqeroutine
cross reference table 1094
flowchart 490
library 1183
microfiche directory 89g
moaule description 280
reqister usaqe 1133
10q scheduler routine
cross reference table 1094
flowchart 491
library 1183
microfiche oirectorv 900
module description 280
reqister usaqe 1134
loq seqment routine
cross reference table 1094
flowchart 489
library 1183
microfiche directory 899
module description 267
reqister usaqe 1133
100 13'4
loqqino OPtion
inbuffer 56
inheader 56
inmessaqe ·56
outhuffer 56
outheader 56
outmessaqe 56
loqqinq 1314
loqic of TC'aM 61
loqical buffer 77
loqtvpe entry 1314
lookup terminal eitrv routine
cross reference table 1092
flowchart 4f'O
library 1182
microfiche directory 898
moaule description 248
Index

1343

reqister usaqe 1128
macro definition 27
macro expansion 1314
main-line processinq op~rations xxiii
main storaqe queuinq 10~, 1314
master OCB 1314
MCP (see messaqe control proqram)
~CP buffer allocation 80
MCP buffer association functions 83
MCP buffer deallocation 84
M~P buffer manaqement (see buffer manaqement in an MCPl
MCP buffer requests 80
MCP buffer return functions 84
MCP closedown .
close routines "7
checKPoint close routine 1283
line qroup close routines '283
message queues close routine 1283
closedown completion routines 116
closedown processinq routines 116
~CP closedown processinq routine
cross reference table 1095
flowchart 522
library 1171
microfiche directory qoo
module description 303.
reqister usaqe 1'38
MCP initiali~ation
functions of INTRO 63
functions of READY 64
functions of the Open routines 63
preparation of lines for transmission 64
MCP messaqe handlinq (see messaqe handlinq in an MCPl
~C~ queue management (see queue management in an MCP)
MCP termination routines 302
MCP 1314
MCPL 1314
messaqe contrel proqram (MCP)
assembly 28
definition 1314
execution 28
initialization functions 120
linkaqe edit 28
termination functions 120
messaqe control proqram" initialization (see MCP initialization)
messaqe control proqram termination functions 120
messaqe control proqram termination routines 302
messaqe data 1314
messaqe flow summary '16
messaqe qeneration routine
cross reference table 1094
flowchart 483
library '183
microfiche directory 899

1344

monule description 279
reqister usaqe 1133
messaqe handler (~H) 1314
messaqe handlinq - line manaqement routines 183
messaqe handlinq - queue manaqement routines 285
messaqe handlinq (see also ~~l
messaqe handlinq-buffer disposition modules 273
messaqe handlinq-buffer manaqement modules 207
messaqe handlinq-control routines 211
messaqe handlinq-functional routines 219
messaqe handlinq-functional subroutines 268
messaqe handlinq in an ~CP
buffer manaqement 77
line manaqement 74
messaqe handlinq routines 84
queue manaqement 105
special messaqe handlinq functions 112
summary of messaqe flow 1251
roessaqe handlinq routines
incominq qroup of an MH 86
outqoinq qroup of an MH 87
STA~~MH 85
user interface routine 85
messaqe handlinq with time sharinq option support (see TSO
messaqe handlinql
messaqe header 1315
messaq~ limit routine
cross reference table 1091
flowchart 435
library 1182
microfiche directory R98
module description 222
reqister usaqe 1124
rnessaqe loq data set 1315
messaqe oriqins table 1080
messaqe queue 1315
messaqe queues close routine 117
messaqe queues data set 1315
messaqe queuinq options
main storaqe queuinq ~6
nonreusable disk queuinq 56
reusable disk queuinq 56
messaqe retrieval
QTAM 125
TeAM '21
messaqe retrieval for an application program 318
messaqe retrieval function 13'5
messaqe seqment 1315
messaqe switchinq 1315
messaqe 1314
method of operation 61
~F~ 1315
MH cancel messaqe function 1'3
MH hold function 112

Index

1345

MH

incomin~

qroup (see incominq group of an MHl
M~ initiate function 115
MH lock function 114
MH macro expansion parameter lists 1024
MH otttqoinq qroup (see outqoing qroup of an MHl
MH routines (see messaqe handling routine~
microfic~e directorY 897
modify intens~ routine
cross' reference table 1095
flowchart 519
library 1171
microfiche directory 900
module description 358
reqistet usage 1137
modify options routine
cross reference table 1094
flowchart 494
Ii bratv 1171
microfiche directory 900
module description 335
register usaqe'1134
modify poll routine
cross reference table 1095
flowchart 518
library 1171
microfiche directory 900
module description 357
reqister usaqe 1'37
module attributes 59
module list bv 1ibrarv 1171
module 1315
modulo 1315
multidrop terminal 1315
multiple arm support 112
multtple-buffer h~ader 1315
multiple insert at offset routine
cross reference table 1093
flowchart 474
library 1183
microfiche directory 8q9
module description 263
reqister usage 1131
, mUlt iple ins,ert/remove rout ine
cross reference table 1091
flowchart' 446
library 1'A2
microfiche directory 898
module description 238
reqister usaqe '126
multiple routinq subtask
cross reference table 1093
flowchart 475
library 1183"
microfiche directory 89q
1346

moaule aescription 281
reqister usaqe 1131
multiple routinq 1315
Mvrr 1315
network control facilities
application proqram 128
operator control interface 128
network control routines for an application proqram 323
network control 1315
new queue 1316
next-buffer location 1315.
next-messaqe location 1316
no-buffer queue 1316
no-C~B queue '316
non-operational control unit ERP module
cross reference table 1102
flowchart 652
library 1178
microfiche directory 904
module description 384
reqister usaqe 1154
nonresident closedown completion routine
cross reference table 1098
flowchart 706
library 1172
microfiche directory 902
module description 302
reqister usaqe 1147
nonreusable disk queuinq 1316
nonreusable disk queuinq 89
on-line test interface routine
cross.reference table 1095
flowclfart 527
library 1172
microfiche directory 900
module description 364
reqister usaqe 1138
open/close subtask
cross reference table 1096
flowchart 536
1 ibrary 1183
microfiche directory qO,
moaule description 310
reqister usaqe 113q
open error handler
. cross reference table 1106
flowchart 670
library 11~0
microfiche directory 906
module descriptiion 167
reqister usaqe 1163
open routines fUnctions 63
operation control options 55
operations

Index

1347

receive 74
send. 76
operator awareness messaqe router
cross reference table 1100
flowchart 729
library 1172
microfiche directory Q03
module description 275
reqister usaqe 1'49
operator awareness messaqe 1316
operator control/application proqram interface routine
cross reference table 1096
flowchart 535
library 1183
microfiche directory qO,
module description 323
reqister usaqe 1'39
operator control AVT 38, 1316
operator control/checkpoint interface 132
operator control control module - load 0
cross reference table 1'01
flowchart 889
library 1178
microfiche directory 903
module description 327
reqister usaqe 1151
operator control control module -load 1
cross reference table 1101
flowchart 89'
library 1178
microfiche directory 903
module description 330
reqister usaqe 1151
operator control control module - load 2
cross reference table '101
flowchart 892
library 1'78
microfiche direct.ory 903
module description 33'
reqister usaqe 1152
operator control control module - load 3
cross reference table 1101
flowchart 893
library 1178
microfiche directory 903
module description 332
reqister usaqe '152
operator control control module - load 4
cross reference table 1101
flowchart 894
library 1178
microfiche directory 903
module description 333
reqister usaqe 1153

1348

operator control control module - load 5
cross reference table 1101
flowchart 895
library 1178
microfiche directory 903
module description 333
reqister usaqe 1153
operator control data areas
command input buffer 1001
operator control AVT 1003
operator control interface routine
cross reference table 10Q2
flowchart 451
library '182
microfiche directory 898
module description 246
reqister usaqe 1121
operator control interface with network control facilities 128
operator contrel processinq
special application proqram commands 131
standard operator control commands 129
system console commands 130
operator control routines 328
operator control work area CSECT
library 1172
microfiche directory 907
module description 367
operator control 128
operator control 1316
option characteristics table 31
option table 1316
option table 31
orqanization and use of TCAM PLM xxiii
orqanization of TCAM PL~ xxiii
orqanization of the TCA~ proqram 145
oriqin routine
cross reference table 10Q'
flowchart 445
library "82
microfiche directory 898
module description 237
reqister usaqe 1126
os dispatcher relationship to TCAM 31
outbuffer subqroup 88
outqoinq qroup of an M~
outbuffer subqroup 88
outmessaqe subqroup 88
outheader subqroup 88
outqoinq qroup 13'6
outqoinq messaqe 1316
outheader subqroup 88
outmessaqe subqroup 88
output functions of an application proqram 120
output sequence number provision routine

Index

1349

cross reference table 1090
flowchart 43'
library 1182
microfiche directory 898
module description 220
reqister usaqe 1123
output 1316,
parameter lists for messaqe handlinq macro expansion 1024
password scrambler routine
cross reference table 1096
flowchart 545
library '172
microfiche directory 901
module description 328
reqister usaqe 1141
path switch 1316
PCB (see application proqram data areas, TCAM control areas, or
TCAM control block~
PCT appendaqe
cross referenc~ table 1105
flowchart 808
library 1179
microfiche directory 905
module description 210
reqister usage 1160
point routine
cross reference table 1105
flowchart 80'7
library 1179
microfiche directory 905
module description 318
reqisterusaqe 1160
pollinq characters 1316
pollinq 1316
post pendinq routfne
cross reference table 1105
flowchart. 823
library "79
microfiche directory 90~
module description 182
reqister usaqe 1161
post '31'1
preparation ,of communications lines for transmission 64
prior~tv of subtasks on a OCB 33
priority OCB 13,7
p~oblem proqram mode 60
process control block (PCBl 38, 1311
process entry work area (see also application proqram data areas)
process entry 131'1
processinq of an application proqram 117
proqram-controlled interruption (PC!l 1317
proqram orqanization 145
n u r q e I/() '" 3 1 7
-.
purpose of TCAM PLM 25

1350

put compatible routine
cross reference table '105
flowchart 804
library '119.
micr~fiche directory 90~
module description 320
register usaqe 1159
put scheduler
.1
cross reference table 109~
flowchart 533
library '183
microfiche directory 901
module description 317
reqister usaqe '139
put/write routine
cross reference table "05
flowchart 803
library '119
microfiche directory 905
module description 316
reqister us~qe 1159
O~B (see data area layouts, queue control block. TCAM control
areas, or TCAM control blocks\
OCB linkaqe 33
OCO~y service routine
cross reference table 1096
flowchart 542
library '184
microfiche directory 901
module description 325
reqister usaqe 1140
~TAM
(see compatible OTAM)
queue-back chain 13'7
queue-back chain 97
queue control block (OCB1 1317
queue control block (QCP' 38
queue manaqement in an MCP
disk I/O manaqement routines 108
main storaqe queuinq with disk backup '04
main storaqe queuinq 104
nonreusabl~ disk queuinq 89
queuinq manaqement routines 105
reusable disk queuinq 101
special queuinq considerations 104
queue manaqement in an MCP
multiple arm support 112
queues and QCBS list 1187
queues of TeAM dispatcher 32
queues 32, 13,7
queuing manaqement routines 10~
quick closedown 1317
~CB (see data area layouts, resource control block, TeAM control
areas, or TCAM control blocks)
read-ahead OCB 1317
Index

1351

read/write unit check and unit exception ERP module
cross reference table 1102
flowchart 6t;0
Ii brarv 1'78
microfiche directory 904
module des~ription 3~3
reqister usaqe 1154
~E~DY macro functions 64
readv queue
definition 1317
disabled 36
enabled 36
readv routine
cross reference table 1098
flowchart 709
library 1172
microfiche directory 902
module description 170
reqister usaqe 1147
recall 1311
recalled header buffer 1311
"redirect a messaqe routine
cross reference table 1092
fiowchart 464 .
library 1182
microfiche directory 899
module description 218
reqister usaqe "28
reentra nt 59
refreshable «=;9
reqion control task (FC~l 1311
reqister usaqe by module table 1115
relative line number (rln} 1318
relative priorities in TeAM 1195
remove at offset routine
cross reference table 1091
flowchart 449
library 1182
microfiche directorY 89A
module descriptibn 243
reqister usaqe '126
resident closedown completion routine
cross reference table '098
flowchart 10'5
library 1'84
microfiche directory 902
module description 302
reqister usaqe 1146
resident module generation 21
resident operator control module
cross reference table 1094
flowchart 493
library 1'83
microfiche directory 900

1352

module description 328
reqister usaqe '134
resident nO
resource control block (FCB)
definition 1318
element request block BCBs 51
queue control block ~CBs 51
reSOllrce 1318
restart 1318
retreive scheduler
cross reference table 10Q6
retrieve mode 1318
retrieve scheduler
cross reference table 1096
flowchart 546
library 1184
microfiche directorY Q01
module description 322
reqister usaqe 1141
retrieve service routine
cross reference table 1096
flowchart 53 U
library 1183
microfiche directory Q01
module description 321
reqister usaqe 1139
retrv queue 1318
retrY 1118
return interface routine
cross reference table 1098
flowchart 681
library 1184
microfiche directory 902
module description 212
reqister usaqe 1146
reusability-copy subtask
cross reference table 1'05
Flowchart 812
library 1179
microfiche directory 905
module description 298
reqister usaqe 1161
reusable disk queuina 1318
rollout/rollin (ROFT) 1318
routine 131A
save area manaqement 29
save area 1318
SCB (see data area lavouts r station control block, TCAMcontrol
areas r or TeAM control blocks)
~CB error word usaqe by module 103Q
screen routine
cross reference table 1092
flowchart 463
library 1182
Index

1353

microfiche directory 899
module description 251
reqister usaqe 1128
seT (see data area layouts. data tables, special characters table,
or ~CAM control areas)
secondary destination 1318
seqment 1318
selected options
appl~cation proqramprocessinq 55
checkpoint/restart 57
cross reference table 58
error recovery procedures 57
line queuinq 55
loqqinq 56
messaqe queuinq 56
operator control 55
startable TC~M procedure 57
subtask trace 58
TCAM in a multiprocessinq environment 58
time sharinq 5.9
send scheduler
cross reference table 1106
flowchart 842
library 1180.
microfiche directory 906
module description 187
reqister usaqe 1162
send scheduler for leased lines and no TSO
cross reference table 1103
flowchart 779
library 1'79
microfiche directory 905
module description 188
reqister usa~e 1156
send scheduler with no TSO
cross reference table 1103
flowchart 780
library 1179
microfiche directory 905
module description 189
reqister ~saqe 1156
sequential access method (SAM) 1318
seriallY reusable 60
sinqle entry 1318
skip backwar~ -routine
cross reference table 1092
flow·cha rt 465
library 1183
microfiche directory 899
module description 253
reqister usaqe '129
skip forward and"scan routine
cross reference table '09'
flowchart 437
1354

library 1182
microfiche directory 898
module description 225
reqister usaqe 1125
skip to character set routine
cross reference table '091
flowchart 440
library 1182
microfiche directory 898
module description 230
reqister usaqe 1125
source offset 1319
special charac~ers table (SeTl 37, 1319
special messaqe handlinq functions
cancel messaqe 113
hold 112
initiate 115
lock 114
special queuinq considerations 104
start line rou~ine
cross reference table 1095
flowchart 512
library 1171
microfiche directory 900
module description 352
reqister usaqe 1137
start/stop channel check ERP module
cross reference table 1102
flowchart 657
Ii brarv 1178
microfiche directory 904
module description 387
reqister usaqe 1154
start/stop EFP control module
cross reference table 1102
flowchart 648
library 11,8
microfiche directory Q03
module description 381
reqister usaqe 1~53
start/stop ERP m9dule linkaqe 139
start/stop line 1319
start-up messaqe toutine
cross reference table 1106
flowchart 845
library 1180
microfiche directory 906
module description 168
reqister usaqe"1162
STAFTMH subtask
cross reference table 1090
flowchart 427
library 1182
microfiche directory 898
Index

1355

module description 212
reqister usaqe 1123
STARTMH subtask for TCAM-TSO mixed
cross reference table 1089
flowchart 874
library '181
microfiche directory 897
module description 412
reqister usaqe 1118
STAP'r1'1H 8~
station control block (SCBl 38. 1319
station 1319
STCB (see data area layouts. subtask control block.
areas, or TCAM control b10cksl
STCB formats 68
stop line I/O subtask
cross reference table 1097
flowchart 622
library 1184
microfiche directory 902
module description 206
reqister usaqe 1144
stop line routine
cross reference table '095
flowchart 516
library 1171
microfiche directory qoo
module description 354
reqister usaqe 1137
stop/resume terminal transmission routine
cross reference tabl~ 1095
flowchart .511
library 1101
microfiche directory 900
module description 350
reqister usaqe 1136
subsequent buffer prefix 1319
subtask control block (STC13l 38. 75. 1319
subtask priority on a QCB 33
subtask trace option 58
subtask trace table 1077
subtask 1319
subtasks of ~CAM dispatcher 32
summary of message flow 116
supervisor mode 60
support module qeneration 27
system control (see system control functions'
system control blocks
command input buffer (CIBl 1007
data control block WCB, 973
data event control block (DECB} 985
data extent block (DEB'} 982
as I/O device characteristics table 986
system control functions
13S(

~CAM

control

SVC 102 routine 6q
TCAM Dispatcher 64
system control routines 171
system delav subtask
cross reference table '097
flowchart 620
library '112
microfiche directory 901
module description 204
reqister usaqe 1144
system qeneration
system nucleus modules 28
~C~M macro definitions 27
~C~M resident modules 27
TC~M support modules 27
TCAM transient modules 27
system nucleus module qeneration 28
system service routine (see disk messaqe queue initializer)
system st ruct ure
application proqram 36
messaqe control proqram 28
relationship of as dispatcher to TCAM 31
system qeneration 27
~CAM dispatcher 32
SIS1.LINT

International Business Machines Corporation
Data Processing Division
1133 Westchester Avenue, White Plains, New York 10604
(U.S.A.· only)
IBM World Trade Corporation
821 United Nations Plaza, New York, New York 10017
(International)



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                     : 2013:03:13 12:06:27-08:00
Modify Date                     : 2013:03:13 16:25:44-08:00
Metadata Date                   : 2013:03:13 16:25:44-08:00
Producer                        : Adobe Acrobat 9.52 Paper Capture Plug-in
Format                          : application/pdf
Document ID                     : uuid:b6462b3a-f041-460c-be21-6fb46c31fc5e
Instance ID                     : uuid:eaec7da0-5723-4c47-b0c3-2c63db5e7918
Page Layout                     : SinglePage
Page Mode                       : UseOutlines
Page Count                      : 1326
EXIF Metadata provided by EXIF.tools

Navigation menu