LY20 2228 1_Special_Real_Time_Operating_System_Logic_Manual_Aug83 1 Special Real Time Operating System Logic Manual Aug83

LY20-2228-1_Special_Real_Time_Operating_System_Logic_Manual_Aug83 manual pdf -FilePursuit

LY20-2228-1_Special_Real_Time_Operating_System_Logic_Manual_Aug83 LY20-2228-1_Special_Real_Time_Operating_System_Logic_Manual_Aug83

User Manual: LY20-2228-1_Special_Real_Time_Operating_System_Logic_Manual_Aug83

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

DownloadLY20-2228-1_Special_Real_Time_Operating_System_Logic_Manual_Aug83 LY20-2228-1 Special Real Time Operating System Logic Manual Aug83
Open PDF In BrowserView PDF
Licensed Material - Property of IBM
L Y20-2228-1

Systems

IBM System/370
Special ·Real,Time
Operating System
Prograin",ing RPQ Z06751
Systems Logic Manual
Program Number 5799-AHE
This publication describes the internal logic and metllod
of operation of the Special Real Time Operatinr: System.
The purpose of this publication is to provide information
for systems analysts, programmers, systems engineers. and
maintenance personnel to facilitate making modifications,
diagnosing error situations, and performing maintenance.

--..------ ---- ---- -- ---- ---~

-~-

..

-

Second Edition (August 1983)
This is a reprint of LY20-2228-0 incorporating changes released in Technical Newsletter
LN20-3622 (dated 31 August 1976). This edition applies to Version 1, Modification 1 of
the Special Real Time Operating System PRPQ (programming Request for Price Quotation)
number 5799-AHE, Version 1, Modification 1, and to all subsequent versions and modifications until otherwise indicated in new editions or Technical Newsletters.
References in this publication to IBM products, programs, or services do not imply that IBM
intends to make these available in all countries in which IBM operates.
Changes are periodically made to the specifications herein; before using this publication in
connection with the operation of IBM systems, consult the latest System/370 Bibliography
(GA22-6822) for the editions that are applicable and current.
The PRPQ described in this manual, and an licensed materials available for it, are provided
by IBM on a special quotation basis only, under the terms of the License Agreement for IBM
Program Products. Your local IBM branch office can advise you regarding the special
quotation and ordering procedures.
A form for readers' comments has been provided at the back of this publication. If the form
has been removed, address comments to IBM Corporation, Dept. 824, 1133 Westchester Ave.,
White Plains, New York 10604. IBM may use or distribute whatever information you supply
in any way it believes appropriate without incurring any obligation to you.

© Copyright International Business Machines Corporation 1976

CONTENTS
section
1

2

Page
INTRODUCTION ••••••••••••••••••••••••••••••••••••••••• 1-1
System Environnlent •••••••••••••••••••••••••••••• 1-2
Special Realtime Operating System Overview •••••• 1-2
Online Execution •••••••••••••••••••••••••••••••• 1-2
Offline Execution ••••••••••••••••••••••••••••••• 1-3
LOGIC DESCRIPTION •••••••••••••••••••••••••••••••••••• 2-l
How to Read HIPO Diagrams.e ••••••••••••••••••••• 2-l
Initialization ••••••••••••••••••••••••••••• 2-8
Task Management •••••••••••••••••••••••••••• 2-43
Time Management •••••
2-84
Data Base Management ••••••••••••••••••••••• 2-l06
Message Handlero •••••••••••••••••••• _~ ••••• 2-140
Input Message Processing ••••••••••••••••••• 2-l52
Report Data Output ••••••••••••••••••••••••• 2-l60
Data Recording and Playback •••••••••••••••• 2-l64
Duplicate Data Set Support ••••••••••••••••• 2-l80
Supplementary Services ••••••••••••••••••••• 2-258
High-Level Language Interfaces ••••••••••••• 2-290
Two CPU Operations ••••••••••••••••••••••••• 2-346
Offline utility •••••••••••••••••••••••••••• 2-375
Data Base Compress ••••••••••••••••••••••••• 2-471
Playback Routine ••••••••••••••••••••••••••• 2-497
SYSGEN Utility ••••••••••••••••••••••••••••• 2-50l
Sample Programs •••••••• ·••••••••••••••••••••••••• 2-505
g

3

••••••••••••••••••••••

PROGRAM ORGANIZATION DESCRIPTION ••••••••••••••••••••• 3-1
OOMICEXT ••••••••••••••••••••••••••••••••••• 3- 3
OOMIRBT •••••••••••••••••••••••••••••••••••• 3-3
OOMIRCMN •••••••••••••' •••••••••••••••••••••• 3-5
OOMIRCPY ••••••••••••••••••••••••••••••••••• 3-5
OOMIRFLV ••••••••••••••••••••••••••••••••••• 3-6
DOMIRFL2 ..................................... 3-7
DOOIRINT ••••••••••••••••••••••••••••••••••• 3-8
~I~IP . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .

OOOIRPRB ••••••••••••••••

II • • • • • • • • • • • • • •

• 3-9
3-10

••••

OOMIRWT •••••••••••••••••••••••••••••••••••• 3-11
OOMISVC1 ••••••••••••••••••••••••••••••••••• 3-11
OOMISVC2 .................................... 3-11
OOMISVC4 ••••••••••••••••
3-12
DOMXS'I'GI ••••••••••••••••••••••••••••••••••• 3-12
DPCALCF' 1 ••••••••• '0 ............................ 3-13
DPCTIME1 ••••••••••••••••••••••••••••••••••• 3-13
DPCTIME2 ••••••••••••••••••••••••••••••••••• 3-13
DPCTSVCl •••••••••••••••••••••••••••••••• '••• 3-13
DPCTSVC2 ••••••••••••••••••••••••••••••••••• 3-14
o ••••••••••••••••••

LICENSED MATERIAL - PROPERTY OF IBM

iii

DPCTSVC3 •••••••••••••••••••••••••••••••• 3-15
DPCTSVC4 ••••••••••
3-16
DPCUPCF1 ••••••••••••••••••••••••• ~ •••••• 3-16
DPCUPCF2 •••••••••••••••••••••••••••••••• 3-16
DPCUPCF3 •••••••••••••••••••••••••••••••• 3-17
DPCUPCF4 •••••••••••••••••••••••••••••••• 3-17
DPIDBAS1 •••••••••••••••••••••••••••••••• 3-18
DPIDBAS2 •••••••••••••••••••••••••••••••• 3-18
DPIDBAS3 ••••••••••••••••••••••••••••••.•• 3-18
DPINIT01 •••••••••••••••••••••••••••••••• 3-19
DPINI'I'C>2 •••••••••••••••••••••••••••••••• 3-21
DP I NI TO 3 ••••••••••••••••
~ 3 - 25
DPINIT04 ••••••••••••••••••••• o • • • ~ • • • • • • 3-27
DPINITOS •••••••••••••••••••••••••••• s • • • 3-32
DPINIT06 ••••••••••••••••••••• ~ •••••••• 5.3-33
DPINIT08 •••••••••••••••••••••••••••••• &~3-34
DPINITl ••••••••••••••••••••••••••••••••• 3-35
DPINIT11 •••••••••••••••••••••••••••••••• ]-36
DPINIT2 ••••••••••••••••••••••••••••••••• 3-37
DPINIT3 ••••••••••••••••••••••••••••••••• 3-38
DPINITS ••••••••••••••••••••••••••••••••• 3-39
DPPCALCF •••••••••••••••••••••••••••••••• 3-40
DPPCPTIM •• " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-41
DPPCTIME •••••••••••••••••••••••••••••••• 3-42
DPPCTSVC .................................... 3-42
DPPCUPCF •••••••••••••••••••••••••••••••• 3-42
DPPDARAY . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-43
OPPOBLOK •••••••••••••••••••••••••••••••• 3-46
DPPDBSIF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-47
DPPDFREQ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-47
DPP[)(;ETL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-47
DPPDITEM •••••••••••••••••••••••••••••••• 3-48
DPPDPUTL •••••••••••••••••••••••••••••••• 3-S2
DPPDRIFT •••••••••••••••••••••••••••••••• 3-53
OPPDSUB2 ...................... •-1• • • • • • • • • • • • 3-54
DPPDUMPL ••••••
3- 5 5
DPPDUPDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-56
0

•••••••••••••••••••••

II

II

••••••••••••••

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

DPPDWRST . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 - 5 7

DPPFAONC •••••••••••••••••••••••••••••••• 3-58
DPPFIXFR •••••••••••••••••••••••••••••••• 3-59
DPPIDBAS . . . . . . . . . . . . . . . . .
3-60
OPPI IRB ••••••••••••••••••••••••••••••••• 3-60
OPP I LOGN . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-61
DPPINIT ••••••••••••••••••••••••••••••••• 3-62
DPPINITO •••••••••••••••••••••••••••••••• 3-64
DPPINIT1 •••••••••••••••••••••••••••••••• 3-66
DPPIPFIX . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-69
OPPIPFRE ......................... ~ .......... e .3-71
DPPISTAE ................." •••••••••••••••• 3-71
DPPITIMl ••••••••••••••• o • • • • • • • • • • • • • • • • 3-72
DPPMINIT .................................... 3-73
DPPMMSG ..................................... 3-74
DPPMMSGV .................................... 3-75
0

•••••••••••••••

0

LICENSED MATERIAL - PROPERTY OF IBM

iv

...........

DPPMMSGl •••••••••••••••••••••••••••••••• 3-76
.3-77
DPP'ARM •• , • , ••••••
.3-79
DPPPIF •••••••••••
DPPSAMP 1 •••••••••••••••••••••••• , •••• , •• 3 - 84
DPPSASOC ••••••••••••••••••••• , •••••• , ••• 3-84
DPPSBFST •••••••••••••••••••••••••••••••• 3-84
DPPSBFl. ••••
, •• e , • • , • " , • , , e , • • • • • • 3-86
.3-86
DPPSCHCK ••••
• 3-88
DPPSCHK2 ••••• G • • • • • • • • • • • • • • • • • • , ,
.3-89
DPPSCHK3 .............. .
DPPSCHK4 ••••••••••••••
· ..••..••.... . 3-90
DPPSCHPR •••••••••••••••••••••••••••••••• 3-90
DPPSCLUP •••••••••••••••••••••••••••••••• 3-91
DPPSCLI ••••••••••••••••••••••••••••••••• 3-92
•• 3-93
DPPSCMPR ••••••••
..3-95
DPPSCP2B ••••••••••••••
..3-96
DPPSCRBK ••••••••••••••
DPPSC'r2T ••••••••
3-97
DPPSDDSX ••••••••••••••••• , ••••••• , ••• , •• 3-101
DPPSINIT ••••••••• , ••••• , •••••••••••••••• 3-102
DPPSINI2 ••••••••
.3-103
DPPSINI3 •••••••• e , • • • • • • • • • • • • • • • • • • • ,.,3-104
DPPSINI4 ••••••••••••••••••••••••• , •••••• 3-105
DPPSINIS ••••••••••
3-106
DPPSINI6 ••••••••••••••••• , •••• , ••••••••• 3-106
DPPSLOCK •••••••••••••••••••••••••••• , ••• 3-107
DPPSMSGI •••••••••••••••••••••••••••••••• 3-107
DPPSMSGO •••••••••••••••••••••••••••••••• 3-109
DPPSNOTE •••••••••••••••••••••••••••••••• 3-110
DPPSNTPT •••••••••••••••••••••••••••••••• 3-110
DPPSOPCL •••••• ~o • • • • • • • • • • • • • • • • • • • , • • • • 3-111
DPPSOP1 ••••••••••••••••••••••••••••••••• 3-112
DPPSOP2 ••••••••••••••••••• e • • • • • • • • • • • • • 3-113
DPPSPNTF . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-115
DPPSRCIO .................................... 3-115
DPPSRDWT •••••••••••••••••••••••••••••••• 3-116
DPPSRDW2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-117
DPPSRLSE . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-117
DPPSRSRV .................................... 3-118
DPPSRSTR . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3-118
DPPSRTCP •••••••••••••••••••••••••••••••• 3-119
DPPSSHAR ....................................... 3-120
DPPSSRCH .................................... 3-120
DPPSSTl ••••••••••••••••••••••••••••••••• 3-120
.DPPSSWCH •••••••••••••••••••••••••••••••• 3-121
DPPSTBOS ..................................... 3-121
DPPSUNLK .................................... 3-122
DPPSUNSH •••••••••••••••••••••••••••••••• 3-123
DPPSWRST •••••••••••••••••••••••••••••••• 3-124
DPPSXTCB ................................... 3-125
DPPTCBGT .................................... 3-126
DPPTCSVC ••••••••••••••••••• o . . . . . . . . . . . . . . 3-127
DPPTD~P ............... '. . . . . . . . . . . . . . . . . . . . . 3-127
DPPTDSVC ...................................... 3 -130
DPPTETXR ... , ................................ 3-131
•

•

•

•

•

•

•

•

•

•

2

••••••••••••••••

·........... .

..........

·...... .

G

•••••••••••••••••••••••

.......................
<)

••••••••••••••••••

,

••

LICENSED MATERIAL - PROPERTY OF IBM
v

DPPTGWFW •••••••••••••••••••••••••••••••• 3-133
DPPTIMPS •••••••••••••••••••••••••••••••• 3-134
DPPTPMON •••••••••••••••••••••••••••••••• 3-136
DPPTPSVC •••••••••••••••••••••••••••••••• 3-138
DPPTPWQE •••••••••••••••••••••••••••••••• 3-140
DPPTOIMP •••••••••••••••••••••••••••••••• 3-141
DPPTRGt"zA •••••••••••••••••••••••••••••••• 3-142
DPPTRSVC ••••••••••••••••••••••••••••_•••• 3-143
DPPTSMON •••••••••••••••••••••••••••••••• 3-144
DPPTSTAE •••••••••••••••••••••••••••••••• 3-146
DPPTWODL •••••••••••••••••••••••••••••••• 3-148
DPPTWSVC •••••••••••••••••••••••••••••••• 3-1S0
DPPUMSG ••••••••••••••••••••••••••••••••• 3-152
DPPUMSG1 •••••••••••••••••••••••••••••••• 3-1S2
DPPUMSG2 •••••••••••••••••••••••••••••••• 3-152
DPPXDBAS ••••••••••••••••••••••••••• ~ •••• 3~lS3
DPPXDBAT ••••••
3-160
DPPXDBCP··.· •••••••••••••••••••••••••••• 3-169
DPPXDBDA· ••• • ••••••••••••••••••••••••••• 3-174
DPPXDBIN.· •••••••••••••••••••••••••••••• 3-179
DPPXDBLG· ••••••••••••••••••••••••••••••• 3-180
DPPXDEFL.· •••••••••••••••••••••••••••••• 3-182
DPPXDPB •••• • •••••••••••••••••••••••••••• 3-183
DPPXDRC···.· •••••••••••••••••••••••••••• 3-184
DPPXDRCX ••• •• ••••••••••••••••••••••••••• 3-186
DPPXIMPp.·.· ••••••••••• ~ •••••••••••••••• 3-186
DPPXIMPW •••••••••••••••••••••••••••••••• 3-187
DPPXKILL.· •••••••••••••••••••••••••••••• 3-187
DPPXLOCK······ •••••••••••••••••••••••••• 3-187
DPPXNRTI.·.· •••••••••••••••••••••••••••• 3-188
DPPXPCON.··· •••••••••••••••••••••••••••• 3-189
DPPXRDR······ ••••••••••••••••••••••••••• 3-189
DPPXRINT •••••••••••••••••••••••••••••••• 3-190
DPPXRPRT •••••••••••••••••••••••••••••••• 3-191
DPPXSVCP·.· ••••••••••••••••••••••••••••• 3-191
DPPXUTIL.··· •••••••••••••••••••••••••••• 3-192
DPPZSAMP •••••••••••••••••••••••••••••••• 3-201
DPTCSVC1 •••••••••••••••••••••••••••••••• 3-202
DPTDLMP1 •••••••••••••••••••••••••••••••• 3-203
DPTDLMP2 •••••••••••••••••••••••••••••••• 3-204
DPTDLMP3 ••• • •••••••••••••••••••••••••••• 3-20S
DPTDLMP4·· •••••••••••••••••••••••••••••• 3-20S
DPTPLMPS •••••••••••••••••••••••••••••••• 3-20S
DPTDSVC1 •••••••••••••••••••••••••••••••• 3-206
DPTPMON1 •••••••••••••••••••••••••••••••• 3-208
DPTPMON2· ••••••••••••••••••••••••••••••• 3-210
DPTPMON3 •••••••••••••••••••••••••••••••• 3-211
DPTPMON4 •••••••••••••••••••••••••••••••• 3-213
DPTPMONS •••••••••••••••••••••••••••••••• 3-214
DPTPMON6 •••••••••••••••••••••••••••••••• 3-214
DPTPSVCl· ••••••••••••••••••••••••••••••• 3-21S
DPTPSVC2 •••••••••••••••••••••••••••••••• 3-216
0• • • • • • • • • • • • • • • • • • • • • • • • • •

LICENSED MATERIAL - PROPERTY OF IBM

vi

DPTPSVC3 ••••••••••••••••••••••••••••••••
DPTPSVC4 ••••• ~ ••••••••••••••••••••••••••
DPTPSVC5 •••••••••••••• ~ •••••••••••••••••
DPTSMONl •••••••••••••••••
..•..•.•... .
DPTWSVC1 . . . . . . . . . . . . . . . . . .
. .•..•.••.. .
DPTWSVC3 ••••• ~ ••••••••••••••••••••••••••
DPXDBIN1 ••••••••
••••••••••••••.•••.•
DPXDBtN2 ••••••••
• •••••••••••

3-217
3-~19

3 - 2 21
3-221

3- 222
3-222
3-223
3-223

OPXDBtN3 •••••••••••••••••••••••••••••••• 3-224
npXDBIN4 •••••••••••• o • • ~ • • • • • • • • • • • • • • • • 3-225
DPXDB1N6 •••••••••••••••••••••••••••••••• 3-225
APPENDIX A.
APPENDIX B.
APPENDIX C.

APPENDIX D.

01 RECTORY •••••••••••••••••••••••••••••••••••• A-l
STORAGE ALLOCATION ••••••••••••••••••••••••••• B-1
DATA AREAS ••••••••••••••••••••••••••••••••••• C-1
1 NTF. RNAL M.P.CROS •••••••••••••••••••••••••••••• 0-1

LICENSED MATERIAL - PROPERTY OF IBM

vii

LICENSED MATERIAL -

PROPERTY OF IBM

PREFACE

Scope and Objectives
This publication describes the internal logic and method of operation of
the Special Real Time Operating System. The purpose of the publication is
to provide information to systems analysts, programmers, system engineers,
and maintenance personnel to facilitate making modifications, diagnosing
error situations, and performing maintenance work.
All of the general functions and services provided by the Special Real
Ti.me Operating System are described in the DOM, as well as the details and
requirements for installi.ng, operating, and customizing this PRPQ. However,
very little emphasis is given to individual programs that comprise these
services or to the overall organization of these programs. The SLM contains
the detailed material pertaining to the design and coding of the Special
Real rime Operating System. While the DOM concentrates on the services and
how to use them, the SLM concentrates on the load modules ana how they perform their functions. The SLM is not intended to replace or duplicate any
information found in the DOM; it supplements the DOM with information for
diagnosing error situations, or maki.ng modifications.
This publication contains three sections:
1.

Section 1.
o
o

o

2.

o

o

viii

summarizes general information about the Special Real Time
Operating System
describes the relationship between the functional operationsoriented information contained in the Special Real Time
Operating System Description and Operations Manual (51120-1773)
and the detailed program-oriented information contained in this
manual
describes the relationships between the various sections and
appendixes of this manual

Section 2.
o

Introduction

Logic description

summarizes the organization of the various functional areas
that compose the Special Real Time Operating System
defines the format of the diagram and the symbols used to
describe the individual programs that comprise the various
functional areas
provides a visual description of the major logical processes
for the individual programs through use of Hierarchy Input
Process Output (HIPO) diagrams

LICENSED MATERIAL -

3.

Section 3.
o

PROPERTY OF IBM

Program Organization

provides a detailed listing of the organization of the individual programs and defines the major processes of those programs
through the use of Program Design Language (PDL)

This publication contains four appendixes:
1.

Appendix A.
o
o
o
o

2.

3.

o

Storage Allocation

contains information concerning the amount of storage required
to execute the Special Real Time Operating System

Appendix C.
o

4.

contains cross-references of the Special Real Time Operating
System CSECT names to the source members that comprise that
CSECT
contains cross-references from CSECT name to the appropriate
HIPO and PDL information
contains cross-references from Special Real Time Operating
System macro names to CSECT name
contains cross-references from CSECT name to the functional area

Appendix B.
o

Directory

Data Areas

contains charts describing the relationships between various
Special Real Time Operating System control blocks and data areas
contains detailed description of each Special Real Time Operating
System control block used by multiple modules

Appendix D. Internal Macros - Contains Macros used internal to the
Special Real Time OPerating System

The page numbering structure of this manual is designed so that the first digit
is the section and the remaining digits are the page numbers. For example, 2-34
means you are in Section 2 on page 34.
The references within the logic diagrams are references to other figure numbers
not page numbers.
The reader must have a general knowledge of the concepts of Program Design
Language and must understand the concepts and techniques involved in using HIPO
function. Section 1 Introduction, can help in using this manual effectively.
In addition, the reader must have a thorough understanding of the concepts and a
knowledge of the terminology used in OS/VSl.

ix

LICENSED MATERIAL -

PROPERTY OF IBM

PREREQUISITE PUBLICATIONS
The reader should be familiar with the concepts presented in the following
publications:
Special Real Time Operating System Description and Operations
Manual rSH19-0080)
IBM System/J7G Principles of Operation (GA22-7000)
OS/VSl Planning and Use Guide (GC24-5090)
IBM System/370 System Summary (GA25-700l)
RELATED PUBLICATIONS
OS/VSl Debugging Guide (GC24-S093)
OS/VSl Supervisor Logic (SY24-Sl55)

x

LICENSED MATERIAL -

PROPERTY OF IBM

Section 1.

INTRODUCTION

The Special Real Time Operating System PRPQ is a group of programs that augments the services of OS/VSl to support realtime applications. Additional
services provide for lower supervisor overhead; new capabilities; and increased flexibility in the areas of task management, time management, data
base, message handling, duplicate data set support, data recordings and
playback, failover/restart, and other supplementary services.
The services provided by OS/VSl are still available to a program or system
of programs utilizing the Special Real Time Operating System. However, in
some cases, the Special Real Time Operating System may act as an interface
between OS/VSl and user programs.
The Special Real Time Operating System is designed to enhance areas that are
critical to a realtime operation and to provide a stable operating environment which will minimize the impact of an abnormally terminating program.
SYSTEM ENVIRONMENT
The Special Real Time Operating System executes as an application program
under the contr~ of OS/VSl. There are two distinct modes of operation,
either an online job step which executes in conjunction with user programs
and/or other program products in a realtime environment, or an offline job
step which creates and/or modifies tables, data sets, etc., that are essential for the proper execution of the online job step.
The online job step includes supervisor call instruction (SVC) and contains
non-SVC routines which may attain supervisor state and/or supervisor protect
key while executing as application load modules. Any other program products
and user programs are executed as subtasks to the online job step task. In
this environment, all the Special Real Time Operating System services
described in the Description and Operations Manual (DOM) are available to
the user programs, Special Real Time Operating System routines, and/or other
program products.
The offline job step (e.g., offline utility) executes as a separate independent job step from the online (or realtime) job step and, in this environment, the Special Real Time Operating System services, as such, are not
available.

1-1

LICENSED MATERIAL - PROPERTY OF IBM

SPECIAL REAL TIME OPERATING SYSTEM OVERVIEW
The Special Real Time Operating System is separated into two modes of operation: online excution and offline execution. Each mode of operation is
composed of one or more functional areas as shown in Figure 2-4.
Note: When referring to an overview chart, the numbers following the description (usually found in the lower right corner of the boxes), refer to
either the figure number of another overview chart or the figure number of
the detailed HIPO diagram that describes the routine that is given control.
Each of the functional areas that comprises the Special Real Time Operating
System is represented in this section by a brief narrative of that function,
an overview chart, where applicable, followed by detailed HIPO charts of
the modules involved.
ONLINE EXECUTION
Online execution of the Special Real Time Operating System is initiated
through standard OS/VSl Job Control Language (JCL) statements with the
EXEC card specifying PGM=DPPINIT. The JCL defines to the Special Real Time
Operating System the data sets which have been created by the offline utility
and the Special Real Time Operating System SYSGEN procedures (described in
the Description and Operations Manual).
The JeL also defines the devices which are to be used by the online routines.
The module DPPINIT is responsible for initializing most of the functional
areas for online execution.
Once the basic initialization has been completed, the Special Real Time
Operating System performs meaningful processing only when its services are
requested, either by user programs executing user macro calls in a realtime
environment or by user interfaces such as Input Message Processing
commands and/or PATCH statements in the SYSINIT input stream. Figure 2-5
shows the relationships between the user macros and the functional areas.
The number following the macro name is the figure number of the HIPO diagram that describes the module that receives control in response to a
particular macro call.
Figure 2-6 shows the input message processing operator commands that are
recognized by the Special Real Time Operating System. It also shows the
entry point names that can be specified on a PATCH statement in the SYSINIT
input stream that result in processing by the Special Real Time Operating
System.

1-2

LICENSED MATERIAL - PROPERTY OF IBM

During normal execution, or as a result of a user request, the Special
Real Time Operating System may execute one or more internal macro calls, as
well as the user macro calls. Use of these internal macro calls is restricted by the Special Real Time Operating System because they may be used
to obtain supervisor state, page fixing, etc. which, without strict controls, could jeopardize the performance or the integrity of the operatina
system. Figure 2-7 shows the internal macros used by the Special Real Time
Operating System. Appendix D contains a list of these macros and their
calling sequences.

OFFLINE EXECUTION
The offline functions of the Special Real Time Operating System are executed
through the use of standard OS/VSI Job Control Language (JCL). These functions are the offline utility, data base BDAM data set compress, playback
of recorded data, and stage I of the system generation procedure.

1-3

LICENSED MATERIAL - PROPERTY OF IBM

Section 2.

LOGIC DESCRIPTION

HOW TO READ RIPO DIAGRAMS
The RIPO diagrams illustrate the functions performed by the Special Real
Time Operating System. Each major functional area has a set of diagrams.
The first figure in each set is a visual table of contents for that functional area.
The HIPO diagrams are read left to right, top to bottom, and illustrate the
input, the processing steps, and the output for each function performed.
The input to the function appears on the left and the output of the function
appears on the right. The processing is divided into a series of steps.
If further explanation of a processing step is needed, that step is numbered and the explanation appears in the Extended Description for that
diagram. The Extended Description also contains segment names, so that the
reader can refer to the proper PDL segment or pertinent code in the program listing.
Arrows are used to signify data movement, data reference, and processing
flow. The arrow conventions are shown in Figure 2-1. Other conventions
used in the RIPO diagrams are illustrated in Figures 2-2 and 2-3.

Primary Flow of Control

Secondary F low of Control

----->

Data Movement

Data Pointer

------' - .....
Figure 2-1.

Data Reference

RIPO Arrow Conventions

2·1

Figure 2-04 (1 Of 2)
Title Or Module function -

~

Djagram Number
Indicates Where Control Came From.
If It Is A Special Real Time Operating
S~ Module And Can Be Uniquely
Identified, An Off Page Connector
Will Be Used.

2 -04 -

f)

~rowMay B~r

Sample Diagram

SAMPLE -

Diagram Number

Module Name

From INIT Macro Call

rAddress Of CB

o
m

CB

Register 1

L

Z

I..---_---'r

en
m
C

3:

---~-- Subroutine Block Within

ProC1!SSing

Block Indicatf1S Subroutine Contained
In Same Module (Module Name Is
'Internal Routine' And Title Is
'Find Ir')

Indicatf1S Only

2·19

XYZlsMoved

~
m
:D

l>
r
t
-g

:D
Subroutine Block Not Within
Processing Block IndiC61l!S
Subroutint! Not In Same
Module (Module N~ Is
'External Routine' And
Titk Is 'Record Change')

Record Change

Record Change

2-08 ~t-----------f-- Iridicatf1S Diagram Number .
.......- - - . , , - - - - '
Of 'R«:ord Change'

~

m
:D

-f

-<

o
."

-

OJ

s:

L./n(Ji,cafl'!S Both XDA TA
And YDATA Tables Are
Moved. May be A Bracker
Rather Than A Box

(lor

0:)

Figure 2·2 . Sample HIPO Diagram

Return To Caller

~~-===;;;::=======:'-..-- An Offpage Connector To Indicate
fndicatf1S When' Control Is To Be
GhN!rI. If It IsA Special RtJal·Time

OpHating System Module And Can
Be Uniquely Identified. An Offpage
Connector Will Be I.hed.
(ArrowMqBe
Or . . . . . . 1

t

a..........

That ProcH:sing Continues On AnothK
Diagram (246). ERROR Is The Modilh
Name.

,-Oiagram Number
D..", Number ~

2-04

Figure 2-04 (2 Of 2)
Step

Exptll1tded o.cription
With ProcIIG
Step 1 • Mq Include
D«Iillnfonnation About
Input Or Output As Well
AsProct!a.
~

POS
Segment

Extended Desaiption
Notes For Step 1

SAMPLE 1

Notes For Step 2

SAMPLE3

Notes For Step 3

ABEND 004

SAMPLE4

PDL Segment Name
Corresponds To Segment
Name In Listing

r

n
m
Z

en
m
o
3:

...

l>
m
::0

l>

r

Figure 2·3 . Sample Extended Description

Special Real Time Operating System

Offline Execution

2·152
Offline Utility

" " ' . . . Bund

Task Mgt.

2.,.1

2·153

I

.ro-

o

m
Z

en

Time Mgt.

m

2·30 1

o

-User Utilities
Data Base

Message Handler

2441

I

D." ....

Compn,.

2·161

I

2·58 ,

3:

»
-f

m

-

:lJ

»
roI
."

:lJ

o
"'0

m

:lJ
-f

-<
o
."

m
-Related Programs Or PRPQ's May Receive Control From The
Offline Utility. These User Utility Routines Will Be Documented
In The R elated Programs System And Logic Manual.

Figure 2-4 - Special Real· Time Operating System Overview

3:

Special Real Time Operating System User Macro Calls
Subroutine

Subroutine
(Continued)

Supervisor Call

1

Data Record And
Playback

Task Mgt.

PURGEWa

".1

I

Task Mgt.

2.691

RECORD

2711

PATCH

2211

m

I

2.571
2491
GETBLOCKI
PUTBLOCK

GETLOG

REPATCH

Duplicate Data Set
Support

Data Base

1
1

Hal

r

'0,,1

I

2.761

DDSOPEN

2231

»-f

I
!
DDSFIND

m

-»
~

2... 1

r
I

2.851

-,;,
~

I
DDSSTOW

'0,,1

I

0-,;,
m

2-8.1

~

I
DDSBLDL

Message Handler 2·58

uol

:>J

-f

I

DEFLOCK

I

LOCK

Continued

1

2-1151
I

•

I

GETWA/FR~EWA

Figure 2-5 - Special Real Time Operating System Macro Calls

'0",1

<

0
-n

-3:
OJ

2·10

'0.. 1

1 MESSAGE

2851

Supplementary Services

DUMPLOG

m

3:

2-8,1

DDSCLOSE

z

en
C

CHAIN
PUT LOG

r(")

'0".1
2·108

J

User Interface
PATCH Statements

Operator Commands

Data Base
DPPDUPDL Data Base Refresh

247

r

Message Handler

2·58
MSGRC

2~1

n
m
Z

(I)

m

C

~

Input Message Processor

~

2-63

CANCEL
2-66

STOP

I

2~1

m

:0

»

rI

-0

::D

0

-0

m

REPORT

2~1

:0

~

0
-n
CD

3:

Duplicate Data Set
Support
2.76

DDSCNTRl

Figure 2-6 - User Interface

2-89

I

Special Real Time Operating System Internal Macro Calls

Subroutine

I

Task Mgt.

I~QDEL

Supervisor Call

I

I J

Two CPU Operation

2.141

225J

2·140

I

WTFAILD6

r-

,.,.21
~

J

Z

J

-.I

(I)

m

Supplftnef1tary Services

C

,I

2-107

l

~ Routines Gain Control By Expending The

Linkages Internally Rather Than Executing A Macro

Call.

I
I
I

I

Figure 2-7 - Special Real Time Operating System Internal Macro Calls

o

m

3:

·GETMORE

2.,J
I

SETPSW

r-

2J

2.1171
I

CBGET/CBFREE

~
m

~

I
~

2J

2.1121

~
m

2-1131

-4

I

2J

DPPFIX

I
DPPFREE

2.1141
I

<

o"11

-

I

LICENSED MATERIAL - PROPERTY OF IBM

Initialization
The Special Real Time Operating System's initialization module, DPPINIT,
is assembled during the SYSGEN procedure and contains the SYSGENed values
as data constants. rhis module receives control from the OS/VSl initiator
whenever an EXEC statement specifying PGM=DPPINIT is executed.
The module DPPINIT references the SYSGENed values (data constants) and
the SYSINIT input stream and initializes the realtime job step accordingly.
Once the basic initialization has been completed by DPPINIT, control is
transferred (XeTL) to the Special Real Time Operating System's system
monitor routine, DPPTSMON, and the realtime job step is ready for processing to begin. Figure 2-8 provides an overview of the modules executed
during the initialization process.

Special Reai Time Operating System Initi"ization

DPf'INIT Processing Flow

2·9

!:
o

m
Z

en
m

C

3:

»-I

m

::u

...»DPPITIMI Initialize Time Mgt.

Routines
DPf'ILOGN Initialize Data Base
logging Routines

I
."

~
."

m

::u
-I

DPPXIMPW Initialize Input Message
Processor Routines 2-64

Continued

Figure 2-8 - Special Rea.-Time Operating System Initialization Overview

<

o."

-

~

DPPINIT

OSNS1 Initiator

Input

o

Process

Output

CVT

HEX '10'

CVTTCBP

r(')

m
2
m
C

Verity That This

Is The Job Step

(I)

Task. If Not Abend With User

30.

s:
»
-4

m

[!J

:0

CALL CARD

l>
r-

READ ROUTINE

I
Card Read
Routine 2·11

Input Conlrol
Statements

~

:0

o

~

m
:0
-4

-<

UMAINBL OK

MAINTcas
MAINCBCR
MAIN # GSZ

o
."
Override SYSGEN
Values (TCa,
GETWA, CBGET)

Figure 2-9 (1 Of 12) - Special Real Time Operating System Initialization

aJ

3:

Figure 2·9 (2 Of 12)
Step

1

2

3

Extended Description

Special Real Time Operating System initialization must run under the
job step TCB. It cannot be an attached task. The CVT - new/old
pointers are used to get the TCB address under which initialization
is running. The TCB address is compared to the TCBFTJST address to
find if it is the job step task. If it is not, the job is ABENDed
with a code 30.

Messages and
ABEND Codes POL Segment

USER 30

DPPINIT

,..
(")

Program DPPINITO is branched to in order to have the input stream
read. See Figure 2-11 for detail.

DPPINIT

Override SYSGEN values for number of advance TCBs and GETWA.
Override CBGET value.

DPPINIT

m
2

en
m

o

3:

»
-t

m

::rJ

,..»
."

::rJ

o"'0

m

::rJ

-t

-<

o

."

OJ

3:

From Figure 2·9
(1 Of12)

DPPINIT
Input

Output

Process

Calculate Core Requiremenu For
XCVT And SCVT Plus Block
Identifiers

r-

ei

m
Z

(I)

m

Get SP253 Core And Initialize
XCVT

o

3:
»
-t
m

l:J

Initialize SCVT

»

rI
""D

l:J

o

Link To DOMIRINT If Failover
Restart Or External Time Source
Has Been SYSGEN'ed.

."

m

l:J

-t

-<

External Interrupt
Handler Initializa·
tion
2.142

Initialize TMCT

Storage And Control BlocksrBl
Figure 2·9 (7 Of 12)
"'/

Figure 2-9 (3 Of 12) - Task Management Control Block Initialization

o
."

Figure 2-9 (4 Of 12)
Messages and
ABEND Codes POL Segment

Step

Extended Description

1

The core required for the XCVT and SCVT is calculated by (XCVTLNTH
+ IDLNTH + SCVTLNTH + IDLNTH). The ID is an 8-byte control block
identifier which precedes the control block in core and makes it
easy to locate the control block in a core dump.

DPPINIT

2

The core for both the XCVT and the SCVT is obtained by one GETMAIN
from subpool 253. The XCVT identifier is put ahead of the control
block and then XCVT fields .are initialized in the fullowing order:
XCVTSVCl - An executable type 1 SVC instruction (OAXX)
XX = SVC number
XCVTSVC2 - An executable type 2 SVC instruction (OAXX)
XX = SVCnumber
XCVTSVC4 - An executable type 4 SVC instruction (OAXX)
XX = SVC number
XCVTSBOP - Initial flags set (XCVTPRS, XCVTIPL, XCVTCPU)
XCVTPGSZ - Size of page 2K - VSl
XCVTCVTS - Pointer to SCVT

DPPINIT

r-

n

m
2
en
m

o

3:

»
-f
m

::D

»
r~

::D

3

4

The SCVT ID is placed ahead of the control block. The SVCT fields
are then initialized in the following order:
SCVTLOGI }
SCVTLC~2
If logging is SYSGENed
SCVTLOG3
SCVTTlBR - Type 1 SVC branch table address
SCVTT2BR - Type 2 SVC branch table address
SCVTPIHI - Partition high address
SCVTPILO - Partition low address
SCVTTMCT - Pointer to Task Management Control Table

DPPINIT

If either failover/restart or external time source has been
SYSGENed, a link to routine DOMIRINT will be generated.

DPPINIT

o
-0

m

::D
-f

<

o

."

Figure 2-9 (5 Of 12)
~--~~-----------------------------------------------------------------------r------------~--------~

Step

Extended Description

5

A GETMAIN for the TMCT and GFMB. The TMCT ID is put ahead of the
TMCT. The TMCT fields are then initialized in the following order:
TMCTEFWD
GETWA Type = PC dummy GFBE
TMCTEBKW
TMCTGFMB - Pointer to the first GFMB
TMCTXCVT - Pointer to the XCVT

Messages and
ABEND Codes PDL Segment

DPPI~ITI

r
n
m
:2
en

m
0

3:
l>

-f

m

:ll

.

l>

r

"'0

:ll

0
-0
m

:ll

-f

-<

0

"TI

OJ

S

I
I

'---_~l...--_ _ _ _ _--_-----------------------------------------------------L -_______

-___ "--________--:

LICENSED MATERIAL - PROPERTY OF IBM

Intentionally Blank

Figure 2-9 (6 of 12)
2-15

From Figure 2·9
(3 Of 12)

DPPINIT

Process

Input

[D
SYSGEN Values
(May Be Overridden
At Initialization)

""-

~
-y

Output

Calculate The
Amount Of Storage
Required For
GElWA Control
Blocks And GETMAIN.

r-

es
m

ABEND Job ~~~.
GFMB

rn

Not Met

Z

...

INITIALIZE
GFMB's

I!I

GFMB# BlK

~

..

Initialize GFCS's And
GFBE's And Get The
GETWA Core
Turn On The Initial
Allocation Flag

>

(I)

m

~

C

~~
.... , ...... '

n ..

r.~CRI

.6.c:T

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

.. ..

3:
Block Of Subpool
Zero Core

I

)

."

::D

o
."

m

~
IX)

::D

-t

'"

-<

o"T1

Block Of SP

253 Core

SCVT

[!]
~

Get CBGET Core
And Initialize
PSCB's

/

.........

...

./

:>LV

UNX

~VIL}t'HV

I

..)
~

C

Figure 2·9 (7 Of 12) . Initialize GETWA And CBGET Storage And Control Blocks

m

::D

>
r-

.....

II..

.

»-I

TCBX Create
Figure 2·9 (9 Of 12)

'";)~" ·~N I

I

I'SGBNf:X
r.i\;;tn

PSCBIO

lEV

to

~

Figure 2·9 (8 Of 12)
~----~------------------------------------------------------------------------.----------~~-----------

Step

1

Extended Description

Messages and
ABEND Codes POL Segment

The amount of protected storage required for GETWA control block
USER 46
storage is calculated (number of sizes x GFCBLNTH) + (total number of
blocks x GFBELNTH). The storage required is GETMAINed from subpool
253. If a GETWA size of at least 1024 bytes is not requested, the job
step is ABENDed with a code 46.

DPINITl

r

2

3

The following fields are initialized in the GFMB
GFMBSIZE - Size of GETWA blocks
GFMBFCNT - Free count of GETWA blocks
GFMB#BLK - Initial number of blocks requested
GFMBGFCB - Pointer to corresponding GFCB
GFMBID
- ID (0, 1, 2, 3 ..• 31) maximum 31
The GFCB is initialized in the following manner
GFCBGFMB - Pointer to corresponding GFMB
GFMBGFBE - Pointer to first GFBE (free queue)
- All GFBEs are then queued to this free queue.
GFCBFRST - Low address of associated SP zero core
GFCBLAST - High address of associated SP zero core

DPINITl

The amount of CBGET core is calculated if no value is given at initialization time (CBGET statement) and core is obtained from subpool 253. A
Protected Storage Control Block (PSCB) is built in the first 12 bytes
of obtained core and is backward (PSCBREV) and forward (PSCBNEXT)
chained to the dummy PSCB in the SCVT. The number of 32 byte blocks
available is calculated from the number stored in the PSCBFCNT field.

m
Z

(I)

m

o

3:

»
-f
m

:D

DPINITl

»

r"'0

:D

o
"'0

m

:D
-f

The initial allocation flag (GFCBINIT) is turned on.

4

(")

<

DPINIT2

o
."
OJ

3:

DPPINIT
Input

.. m
Load Task Management
Routinel DPPTETXR,
DPPTPMON, And
DPPTSMON

r
Ci
m

Tce

Z

TC8X

en
m
C

~

»
-t
m

TCe~tr~S~t~

______~-L________~~

Or SYSGEN V.'ues

::D

>
r
..,::DI

Create TCBX - Tca Pool
And Olain The Free Pool
To The TMCT

..,m

rn ation,
If two1>artition oper·
synchronize

0

the two partitions

"""

--

..

.

:c
-t

DPINJT5

-<

Two-Partition
Synctl 2·10

0

"T1
OJ

rn LINK To Functional

3:

Area Initialization
Modules

ATTACH

ATTACH DPPINITl

• • • • •~ PATCH

Processor

2·12

Figure 2-9 (9 Of 12) - Create TCaX . Tea Pool

Figure 2-9 (11 Of 12)
Step

5

Extended Description

Special Real Time Operating System subroutines are loaded or linked
in the following order:
LOAD
LOAD
LOAD
LOAD
LOAD
LINK
LOAD
LOAD
LOAD
LOAD
LOAD
LINK
LINK
LINK
LINK

DPPTSTAE
DPPTPWQE
DPPXDEFL
DPPTGWFW
DPPXLOCK
DPPSINIT
DPPSOPl
DPPSCLl
DPPSBFl
DPPSSTl
DPPXDRCX
DPPIDBAS
DPPMINIT
DPPITIMI
DPPILOGN

ATTACH DPPXIMPW
LOAD DPr'IPFRE
LOAD DPPISTAE
6

DPINIT 3

-

Store address in SCVTSTAE
Store address in SCVTPWQE
Store address in SCVTDEFL - LOCK
Store address in SCVTGWBS
Store address in SCVTLOCK - DE FLOCK
If DDS SYSGENed
If DDS SYSGENed
If DDS SYSGENed
If DDS SYSGENed
If DDS SYSGENed
Store address in SCVTREC - Data recording
Link to data base initialization
Link to message handler initialization
Link to time management initialization
Link to logging initialization if
SYSGENed
- Input message processor
- Store address XCVTPFRE
- Job step STAE routine
-

Initialization is complete so the PATCH stream processor (DPPINITl)
is attached, then control is passed (XCTL) to the system monitor
(DPPTSMON) •
ATTACH DPPINTl
XCTL DPPTSMON.

Messages and
ABEND Codes PDL Segment

r(")

m
Z

en

m

o

3:

»-f

m

:0

»

r-

."

:0

o."
m

:0

-f

-<

o
DPPINIT

"

~

Figure 2-9 (10 Of 12)

o
Step

Extended Description

1

The Special Real Time Operating System task management routines are
brought into virtual storage via the LOAD macro.
LOAD DPPTSMON
LOAD DPPTETXR, store ETXR address in TMCTETXR
LOAD DPPTPMON, store interface entry point in SCVTPMON.

2

A TCBX is created and initialized and chained to the job step task
TCB. The TCBX fields are initialized as follows:
TCBXPRTY - TCB's dispatching priority
TCBXTFWD {Dummy GETWA type at GFBE
TCBXTBKW TCBXQFWD {DUmmy GETWA type at GFBE
TCBXQBKW TCBXDCVT - Pointer to the XCVT

Messages and
ABEND Codes POL Segment

DPINIT3

USER 33

DPINIT3

m

Z

CI)

m

o

s:

l>
-I
m
JJ

l>
r-

If enough CBGET storage cannot be obtained, the job step task is
terminated with a code j3.
3

4

r(")

A TCB pool is created by ATTACHing DPPTPMON for the number of
advance TCBs. A TCBX is created for each TCB (as in step 2) and the
free chain is chained to the TMCTFREE chain.

DPINIT3

The two partition flags in the MAINBLOK are tested (MAINMSTR,
MAINSLAV); if either is on, the two partitions are synchronized
(see Figure 2-10).

DPINIT5

"
o

JJ

"

m

:g
-i

-<

o
-n

OJ

s:

LICENSED MATERIAL - PROPERTY OF IBM

Intentionally Blank

Figure 2-9 (12 of 12)

2-21

N

N

Call From DPPINIT

DPPINIT

(Figure 2-9,9 Of 12)

Input

N

Process

Output

MAINBLOK

~---

Check For A TwoPartition Run

r-

n
m
Z
en

m

Check For
RESTART On
SLAVE If Yes
Else

rn

m

o

3:

»
~
m

:xJ

If This Is Initial
Start Check For
Other Partition
Started

»rI

If Other Not
Started Wait And
Issue Message
If Other Is Started,'
Find Other And

POST Him

-0

:xJ
PARTN 1

SCVT2PTS

...

_.~rn
If This Is Restart I-_ _ _ _ _ _-L._---l
On SLAVE, Find ~------~-_....J
MASTER And

Synchronize

TCBt

I

TIOT

t-CJ

Figure 2·10 (1 Of 2) • Two Partition Synchronization

SCVTP2LO
SCVTP2HI

xc~x

o
-0

m

::u

SCVT

X'IO'

Synchronize Two
Partitions

PARTN 2

~
I

I

-t
SCVT2PTS
SCVTP2LO
SCVTP2HI

ml-__X_C_VT2_PT_X_~
I
I

-<
o."

Figure 2-10 (2 of 2).

Step

Extended Description

Messages and
ABEND Codes PDL Segment

1

The MAIN BLOCK MAINMS flags are checked for the presence of a MASTER
or SLAVE statement in the input stream. If none exists t the
synchronization routine is bypassed.

DPINITS

2

An ENQ for MASTER jobname - MASTER jobname is issued t if the resource
is available, this is an initial start. If it is not available, this
is a restart of a SLAVE partition, processing continues at step S.

DPINITS
r
(")

m

3

4

An ENQ is issued on MASTER jobname - SLAVE jobname to find if the
other partition is started. If the resource is available the other
partition has not started, a message is issued and the partition
WAITs. If the resource is not available, the other partition has
started and it is WAITing. The TCB ready queue is searched, looking
for the jobname in the TCB's TIOT; when the other job is found, its
XCVT is posted with this partition's XCVT address.

DPP046I

DPINIT5

Z

en
m

o

~

»
-t

m

:XJ

»
r

Each partition gets the other's low and high partition addresses and
puts these in his own SCVT, and gets the other's SCVT address and
puts it in his own SCVT.

DPINITS

."

:XJ

o."
m

S

If this is a restart on a SLAVE, the MASTER is located via the TCB
ready queue and if he is not currently ABENDing and does not already
have a SLAVE partition, he is given the SLAVE's low and high pa!tition
boundaries, and the SLAVE's SCVT and XCVT address. The SLAVE gets
the MASTER's low and high partition boundaries, and the MASTER's
SCVT and XCVT addresses, the two partition bit is set on in each
XCVT, and the resync bit is set on in the MASTER's XCVT and
initialization continues.

USER 36

USER 42
43
44

USER
USER

DPINITS

:XJ

-t

-<

o

"

DPPINITO

Call From DPPINIT
(Figure 2·9, 1 Of 12)

Inpllt

~

Process

Output

MAINBlOK

OJ

r

I

~

...

MAINFLAr.
MAINFIGS

A Control Statement

rn

...

~

r-

~~

OR

L~ting

>~

I

Print The Input Statement

...
...

10

...

Member

r

Build A MAINBLOK
Set 2 Partition Flag If
SYSGENed Turn On
DBREF YES Flag

All Continuations

J

;::

Operation
Field

c:D

Identify Control Statement
Operation Type And Pr~
Control Statement. (See
Figure 2·11 (3 Of 12) For
More Detail)

.>

..

@]

IFrom Fi!J.lre 2·11
(70112)

MAINBlOK

.1'.

...>

Exit From READ LOOP
WIlen END'()F·FI LE
(EODAD)

m

-

tvJ

From
Figure 2·11
(11 Of 12)

Figure 2-11 (1 Of 12) - Statement Read Routine

ABEND If Control
Statement Error Detected
Otherwise Return Control
To DPPINIT MAINBLOK
Address In Register 1

[]

OR

Modified

Created

MAINBLOK

To
Figure 2·11
(3 Of 12)

Return To CaIIe1'

s:

~

:0

»

rI

."

:D

Q
m
-<

~
./

Modified
Chain

"

INlTCB

To
Figure 2-11
(11 Of 12)

o

:D
-C

...

~ ~

II]]
~

~~

Build WAIT LlST/5)
See Figure 2-11 (11 Of 12)
For More Detail)

INITCB

IN/TCB

,..

.....>

Z
m

(I)

m

MAINRlOK

~
.~

One Complete
Control Statement

o
m

\

INITCB

o"TI

Figure2-11 (2 of 121.

Step

Messages and
ABEND Codes PDL Segment

Extended Description

I

A MAINBLOK is built in subpool O.

2

A read loop is established to read control statements. The only exit
from the read loop is end-of-file (EODAD) on SYSINIT. The label is
moved to the work area. If column 1 is nonblank and if the data in
column 1 is an asterisk (*), the statement is a comment statement, it
is written to the INITLIST data set and the next card is read. If it
is not a comment statement, the operation is moved to the work area,
then the operands are moved to the work area. All comments and blanks
used as delimeters are removed, and only meaningful information is
moved to the ~ork area. Blanks within the PARAM field are kept. A
flag is set to indicate continuation if column 72 is nonb1ank or the
last data column contained a comma. If column 72 was nonb1ank and the
last data column was not a comma, a flag is set to indicate that no
more operands are expected. If an error is found in control statement,
issue an error message.

3

4

DPPINITO
DPP836I
DPP8001
DPP801I
DPP802I
DPP822I
USER 40
DPP045I

r-

n

m
Z
C/'J
m
C

3:
l>
-t
m
:IJ

l>
r

DPPINITO

The input control statement is written to the SYSLIST data set.
Continuation cards are read until there are no more continuations
expected. If the maximum number of operands is not exceeded, the
operands are moved to the work area.

DPPINITO
DPINIT06

DPP804I
DPP822I

DPINIT03

."
~

o
."

m

:IJ

-t

<

o-n

5

The control statement operation type is identified.
(3 of 12) for detail.)

6

At end-of-fi1e, control is passed to program label BLDWTLST.

DPINITO

7

See Figure 2-11 (11 of 12) for description of Build Wait List routine
(BLDWTLST).

DPINIT05

8

If any errors were detected during control statement processing, the
job step is ABENDed with a code 34; otherwise, control is returned
to DPPINIT.

(See Figure 2-11

USER 34

DPINIT05

From Figure 2·11
(1 Of 12)

DPPINITO

Input

Procas

MAINBLOK
MAINBLOK

MAINBLOK

MAINBLOK

r

n
m
2
m

Control Statement

en
MAINBLOK

C

3:
l>
-t
m

::D

l>
r

MAINBLOCK

I
"'0

INITCB

::D

Q

m
::D
-i

-<

o

"C»

3:

Figure 2·"

(3 Of 121 . Identify Control Statement Operation Routine

c:v

To Figure 2-11 (7 Of 121

Figure 2-11 (4 of
Step

12~.

Messages and
ABEND Codes POL Segment

Extended Description

1

Ensure TCB field contains all decimal data.
value in MAINTCBS.

Convert data and store

2

Ensure CBGET field contains all decimal data.
storage value in MAINCBGT.

3

Ensure all decimal GETWA input and number suboperands do not exceed
32. Move the converted data to the MAINBLOK and sort the entries by
GETWA size. Ensure that the number of blocks is not greater than
4095 and the size is not greater than 30760. Ensure blocks which are
greater than 2K are 2K mUltiples.

Convert data and

DPP834I
DPP8051

DPINIT04

DPP8291
DPP805I

DPINIT04

DPP0371
DPP0381
DPP039I
DPP0401
DPP04l1
DPP0421
DPP0431

I
(")

m

2

CI)

m

o

3:

»-f

m

4/5

DPINIT04

If two partition SYSGENed, accept MASTER or SLAVE statements. If
MAINMSTR and MAINSLAV are both off, no previous MASTER or SLAVE statement has been encountered in the input stream. The MASTER= or
SLAVE= operand is verified and if it is valid, the job name is moved
to the MAINNAME field and the appropriate flag (MAINMASTR if MASTER
or MAINSLAV if SLAVE) is turned on.

DPP8061
DPP8l31
DPP8301
DPP8451

If DBREF NO request, turn off the refresh flag (MAINRIMT) in the
MAINBLOK. If YES, the flag is left alone as it is already set.

DPP8021
DPP80S1

DPINIT04

7

Build an INITCB, chain it on the chain, and turn on the INITWAIT flag
to identify this is a WAIT control block, locate the INITCB with the
given label and verify that it is a PATCH block. If it is, calculate
the address of the PATCH blocks INITECB field and put it in the WAIT
blocks ECB field.

DPP8071

DPINIT04

8

Build an INITCB. chain it on and turn on
this as an ABEND control block. If DUMP
INITDUMP flag. If a time was specified,
INITECB field, otherwise put the default
INITECB field.

the INITABND flag to identify DPP833I
was requested, turn on the
DPP832I
convert it and put it in the DPP83lI
time (30 seconds) in the

PPINIT04

6

::D

»
I
"lJ

::D

o
'"V

m

::D
-f

-<

o
."

~

~

Figure 2·11(5 of 12).
Step

Messages and
ABEND Codes POL Segment

Extended Description

9

Build and chain an INITCB and turn on the INITWRST flag to identify
this as a RESTART control block if no previous RESTART WRITE
statement has been read. Set WRITE, PROBE, CMON, and CANCEL flags
as required.

10

See following pages for detailed description of PATCH statement
processing.

DPP805I
DPP808I

DPINIT04

r(")

m

11

12

13

Build QPBK from data on OP statement and chair.
chair.

Add to main QPBK

Build QHBK from data on OR statement and add to main QHBK chair.

Build STAX BX from data on STAEX statement and add to main STBK
chair.

DPQ8051
DPP8l3I
DPP814I
DPP8281
DPP8481
DPP8491
DPP8521
DPP853I
DPP8541
DPP857I

DPINITOA

DPP80lI
DPP8ll1
DPP813I
DPP8481
DPP8521
DPP8561

DPINITOA

2

en

m

C

s:

l>

-i

m

:0

l>

r-

."

:0

o

DPP801I
DPP8131
DPP849I
DPP853I
DPP854I
DPP855I

."

m
jJ

-i

-<

o

"CD

s:

LICENSED MATERIAL - PROPERTY OF IBM

Intentionally Blank

Figure

2~11

(6 of 12)

2·29

From Figure 2-11
(3 Of 12)

DPPINITO

Output

Process

Input

INITCB

){w

...

I
I
I

CREATE INITCS

..::>

INITFLGS
INITCS

-::1
">1

m

...)

I

I

r-

INITCS

rn

~

One Complete Input
Control Statement

...

I

=

If Keyword EP

I

~w

If Keyword TASK

..

I

=

n
m

.. )

I

I

2
m

en

INITCB

=

If Keyword QL

o

.

I

3:

...>

I

1

~

PROSl

If Keyword ID

::XJ

....

I
I

=

m

l>

./

I

rI

INITCB

>F

I

-

~

From
Figure 2-11
(9 Of 12)

INITCB

If Keyword PARAM

I

CREATE PROBl

I

1

~

I

Check For EP

I

Reset Flags

To Figure 2-11
(1 Of 12)

C

::XJ

o"'0

...-<
::XJ

I

To

m

'1'1

m

r

Figure 2-11
(9 Of 12)

-V

:.vl't'!

SUPPRTYV

..

=

--..

I@

Figure 2-11 (6 Of 12) PATCH Statement Processing

... . /

I

....

::1[1J

..

I

If Keyword PRTY =

PROBL

...
...

)

o

."

Figure 2-11 (8 of 12).
Step

Extended Description

1

Create and chain an INITCB. Turn on the INITPTCH flag to identify
this as a PATCH control block and move control statement label to
INITLABL.

2

If no EP=keyword previously processed for this PATCH statement, turn
on the PTCHEP flag and move the EP name to the SUPL. The SUPL is
part of the INITCB.

3

4

Messages and
ABEND Codes POL Segment

DPINIT02

DPP8091
DPP8l71

DPINIT02
r-

If no TASK=keyword previously processed for this statement, turn on
the PTCHTASK flag and move the TASK name to the SUPL.

DPP8l01
DPP8l7I

DPINIT02

If no QL=keyword previously processed for this statement, turn on the
PTCHQL flag. Validity check the QL data, convert it, and put the converted value in the SUPL.

DPP8261
DPP8l11
DPP8l7I

DPINIT02

n

m
Z

(I)

m

o

3:

»
-f
m

:0

5

If no ID=keyword previously processed, turn on the PTCHID flag.
Validity check the ID value, convert the value, and save it to
be moved later to the PROBL.

DPP8271
DPP8l21
DPP8171

6

If no PRTY=keyboard previously processed, the PTCHPRTY flag is turned
on. If the first character of the operand is a left parenthesis, the
operand is of the format (job name, prty). The job name is moved to
the SUPL and the priorty value is validity checked, converted, and
moved to the SUPL. If the first character is not a left parenthesis,
the operand is of the format JOBSTEP-n. The priority reference value
is validity checked, converted, and moved to the SUPL.

DPP814I
DPP8151
DPP828I
DPP8161
DPP817I

DPINIT02

DPINIT02

7

See Figure 2-11 (9 of 12) for processing description of PARAM.

DPINITOI

8

If no PROBL exists (no PARAM=keyword), create a PROBL. Move the ID to
the PROBL.

DPINIT02

9

Check PTCHFLGS for PTCHEP flag to ensure EP=specified.

10

Reset PTCHFLGS.

DPP8351

DPINIT02

DPINIT02

»

r-

DPPINITO

Output

Process

From Figure 2·11 (7 Of 12)

Input

PROSl

m

'Donoc, r..

~~b~~d

IPRnRI

...

Check For No
Previous PARAM =

T~

....., C 'ABC'
F 'ZV'
X '120'

.....

Build

i
[II

....

.,;> Data Identifier = 'X'!

...

")

....

Converted

Hexadecimal
Data

~

r

o
m
Z

en
m

c

3:

~

m

::D

);
....
")
....

One Complete Input
Control Statement

!!I

...

./

Data Identifier = 'F'

Converted

Fullword
Data

r
I

-a

::D

Q
m

:D

.,..

/

....

. (9 Of 12)
Figure 211

. Build Walt

....

;;>

Data Identifier '" 'C'

To Figure 2·11 (7 Of 12)

List Routine

-4

rn

F

<

Character
Data

o

"

Figure 2-11 (10 of 12).
Messages and
ABEND Codes PDL Segment

Step

Extended Description

1

If no previous PARAM=keyword has been processed, turn on the
PTCHPRAM flag. The first data character is checked,' If it is a left
parenthesis, the operand is scanned, and the quote characters are
counted. If the quotes are balanced (even number), a PROBL is
created. If no right parenthesis, then issue error message.

DPP824I
DPP822I
DPP828I

DPINITOl

2

If data type is X, validity check the data, convert it, get storage
for the data, and move the converted data to the storage area. The
address of the converted data is then placed in the PROBL along with
the data length.

DPP8l81
DPP8l91

DPINITOl

If the data is F, four bytes of main storage is obtained, and the data
is checked to see if a sign was specified. The data is converted,
and if a minus sign was specified, the data is complemented. The
converted data is placed in the obtained storage, and the address and
length are placed in the PROBL.

DPP8181

If the data type is C, storage is obtained and the character data is
moved to the storage. The address and length of the storage are
placed in the PROBL.

DPP8201
DPP82l1
DPP8181

3

4

I'
("')

m
Z

en

DPINITOI

m
C
S
l>
-f
m

:c
l>

r-

DPINITOI

."

:c

o-0

m

:c
-f

-<

o."

DPPINITO

From Figua 2·11 (1 Of 12)

Input!

Process

OutpUt

MAINBLOK
MAINBLOK

OJ
Joo.

.

MAINERR

"'" Check For Control
Statement Erfon

INITeB

MAINBLOK

ill
~
..

1t4IT~

r(;
m
Z
(I)
m

Modified
o.ain

Build A Wait List
For The Write
Block

o

INITeB

3:

»
~

J-,.

m
:c

1m

INITeB

A Wait Block
~ !13uild
Following The Last

»

INITeB

rI

INITCB

."

:c

o
."

m

INITeB

:c
~

-<

MAINBLOK
MAINOHBK
MAINOPBK

hi

m

QH~

J

I

r

1

-

Q~

I

r
J

Put Addr Of QPBK
Into OHBK And
Addr Of OHBK
Into OPBK

MAINOHBK
MAIf'!ClPBK

[]]

1

Oleck For Errors
In OPBK/QHBK
Cross Reference

-"

~

_Q!,BK
OPBKOHCT
QJ>BKOHAD

l

QP~

I

_gl'BK

")

F

Figure 2·11 (11 Of 12)

QHBK

I

Q[£

QHBK

J

o
"T1

MAINBlOK

To Figure 2·11 (1 Of 121

'
OHBKOPCT

.

OHBK

I

,

Figure 2-11 (12 of 12).
r-----~------------------------------------------------------------------------------------~----------_.------------

Messages and
ABEND Codes PDL Segment

Step

Extended Description

1

If the MAINERR flag is on, a control statement error was detected and
the job step is ABENDed with code 34, otherwise, the wait list(s) are
built.

DPINITOS

2

A count is made of the number of PATCH blocks. If there are no PATCH
blocks, the job step is ABENDed with a code 40. If a WRITE block
exists, the PATCH blocks preceding the WRITE block are counted, and a
wait list is created pointing to the INITECB field of each PATCH block.
The wait list address is placed in the WRITE blocks INITECB field, and
the count of entries in the wait list is placed in the INITWTCT field.

DPINITOS

All PATCH blocks following the WRITE block (or all PATCH blocks if no
WRITE blocks exist) having the PARAM= (with greater than 8 bytes for a
PROBL length) parameter are counted and a wait list entry is created
for each. An INITCB is created and chained to the end of the INITCB
chain, the INITWAIT and INITWLST flags are turned on. The new block
is pointed to the wait list by the INITECB field, and the count of the
number of entries in the wait list is put in the INITWTCT field.

DPINITOS

3

4

The address of the QH blocks reference by each QP block is stand into
the QP block and the addr. of the QP block is stored into the QH block.
If more than 21 connections to any QH block, or referenced QH name not
found, output message and seter for flag.

5

If any errors found in DIan QP/QH cross reference check, abend code 34.

r

n

m
Z

en

m
C

s
»
-t
m

JJ

»

r

DPP846I
DPP847I
DPP8S7I

OPINITOS

From DPPINIT

DPPINIT1

Via ATTACH
(Figure 2-9,9 Of 12)

In put

Output

Proceu

~

Register 1
Address Of
MAINBLOK

.. [ill
-/ Initial Processing
r-

n
m

1AINBLOK

Z

en
m

o

(
~

3:

»
-I
INITCS

PATCH Block

m

:D

. 1m PATCH Block

...

./

.../

Program PATCHed

~

r
I

."

:D

Q

m

INITCS

WAIT Block

.~

1m

..)

WAIT Block

-../

:D
PATCHed Program
Waited On

~

o

"

INITCB

..
ABEND Block

./

[!]

Figure 2-12 (3 Of 4)

Figure 2·12 (1 Of 4) . Initialization Subsystem PATCHor

.

..)

ABEND Block

A

Job Step ABENDed
User 22

Figure 2-12 (2 of 4).
Step

Messages and
ABEND Codes PDL Segment

Extended Description

1

Register conventions, get the XCVT address.
PATCH processing has begun.

2

Get the PROBL and SUPL addresses from INITCB and issue the PATCH.
If PARAM= was coded, PATCH is issued with ECB option. Also if the
PATCH precedes a RESTART statement, the PATCH is issued with ECB
option; otherwise, no ECB option is specified. If PATCH return code
is nonzero, ABEND the job step with a code 31.

3

Issue message to indicate

The INITWLST flag is checked to see if the WAIT is on a list of ECBs.
If it is, the INITWTCT is obtained, and a WAIT is issued on the list.
If no wait list, the WAIT is issued on a single ECB with the ECB being
the INITECB field of the PATCH INITCB. When the ECB is posted, the
completion code is checked, and if no error occurred processing continues. If an error ~OST ·code nonzero) occurs, an error message is
issued and the nonzero POST code is zerod. If the bad POST was for a
PATCH prior to the RESTART, the task ABENDs with a code 35.

DPP04l1

DPPINITl

USER 31

DPPINIT1
r

n

m
Z

DPP0441

DPPINIT1

en
m
o
3:

»
-i

USER 35

m

l:J

»r

\J

4

The program issues a STlMER WAIT for the specified time.
time expires, the job step is ABENDed with a code 22.

When the

USER 22

DPPINITl

l:J

o."

m
lJ

-i

<

o
."

From Figure 2-12

DPPINIT1

(10f4)

Output

Input
Register 1

Address Of

MAINBLOK
MAINBLOK
Failover Data Set

r-

nm
Z

en
m

RESTART

BLOCK

C

3:

IRB

~

m

:JJ

»

rI

-a

:D

o-a

LINK To DPPIIRB

m

:JJ

-t

-<

o
."

All Control Block
Storage Freed
If CANCEL,
Job Step

Figure 2·12 (3 Of 4) . Initialization Subsystem PATCHor

Figure 2-12 (4of4).
Step

1

Extended Description

Messages and
ABEND Codes POL Segment

DPPINITI

If RESTART request
A
B

C
D

Link to DPPIIRB (Data Base Create IRB Routine)
A WAIT is issued on all previous PATCHes. The failover
restart data set is then written and then the restart flags
are propagated to all PATCHes following the RESTART block.
The flags are stored in the PROBL. If it is a SLAVE
partition that has been restarted, the WRITE RESTART is
bypassed and an error message is issued.
Link to DDS failover restart routine (DPPSRSTR)
Link to DPPIIRB

DPP0541

.(")

m

Z

(I)

m
C

3:
~

-4

2

A
B
C
D
E
3

DPPINITI

If PROBE request

Nonzero POST codes will cause an error

4

All control block storage is FREEMAINed.

5

ABEND job step with a code 45.

»

r-

Create IRB for the time function
PATCH DOMIRPWT (PROBE Routine)
Link to DPPIIRB
Link to DPPSRSTR
Link to DPPIIRB

All ECBs are checked.
message to be issued.

m

:JJ

~

:JJ

o
-0

m

DPP044I

DPPINITI

:JJ
-4

<
o

-n

DPPINITI
USER 45

DPPINITI

OJ

3:

N

~

o

DPPISTAE

OSNS1 ABEND
Output

~

Input

XCVT

jll]

t--;;;:;;;;:;;;~-1-_-1._-__--1.-_-_~
..

~..::~~~;v'..::..:..I"'.:..."'·lti:.:.IIt:==-...}-_ _r - - - _ -_ _'-----v".,- I

Calf The Page Free Routine DPPIPFRE

I

...

t----...,-------'Y./)

UNFIX Pages
Previously Fixed
By DPPIPFIX

DPPIPFRE

-or-

Page Free
Routine

m
Z

2-114

en
m

XCVT

r--;~~~V;;';:
:»tll~UI':--}--L.-_-_-L~_ _"...Jrn

1

C

If External Interrupts Were
Initialized, Cleat' FLAGS

3:

»
-I
m

:D

XCVT

I\~V I~'

-\:

~m
../. . . .

----

.------r---~

L-__I..---l_ _ _

I

I
-0

:D

XCVT (Masterl

~'''........ i[!) If This Is A Slave Partition

.--__~--r-----../')I
..

»
r-

If This Is A Single Partition
Operation

Turn Off The Two Partition
Flag In The Master Partition

..

o
-0

m

:D
-I

-<

o

'""

If This Is A MASTE R
PARTITION, Find The
Slave And ABEND It

..

Figure 2-13 (1 Of 2) - Job Step Task STAE Routine

OS/VS1 ABEND

tD

3:

Figure 2-13 (2 of 2).
Step

Extended Description

Messages and
ABEND Codes PDL Segment

1

The page free (unfix) routine, DPPIPFRE, is branched to unfix any
pages fixed by the initialization routine.

DPPISTAE

2

If external interrupts have been initialized at initialization time,
the flags (XCVTSBOP) are reset.

DPPISTAE

If this is a single partition run, control is returned to ABEND
with register 15 cleared to indicate no retry.

DPPISTAE

If this is a SLAVE partition in a two partition run, the MASTER
partition's XCVT is found, and the two partition flag (XCVTF2PT) is
turned off, and control returned to ABEND with register 15 zero to
indicate no retry.

DPPISTAE

3

4

5

If this is a MASTER partition in a two partition run, the SLAVE
partition's job step task TCB is located, and the SLAVE job is
ABENDed with a code 41. Control is then returned to ABEND with
register 15 zero to indicate no retry.

.o

m
Z

en
m

o

~

»
-t

m

::D

USER 41

DPPISTAE

»
r~

::D

o

~

m

:D
-t

<

o
."
CJJ

3:

Special Real Time Operating SyStem Task Management

MonitOf" Routines

~

I

Supervisor Call Routine

I

DPPTMON
PATeN Monitor

Subroutines

1

DPPTPSVCPATCH SVC

f

2·T6

I

1

2-211

I

DPTMONJ
User Interface

2·17

DPTPMON2
HlL Entry

2·18

I

1

DPTMON6
OH/OP Interface 2·18.1

2-2J

I

I

DPPTPWOE PURGEWO Call

I
DPPTWODl WODEl Call

DPPTRSVC REPATCH SVC

I

I

DPPTDSVC DPATCH SVC

1

J

0"."." Com~"'"

I
2-241

2-251

I
I
I

2-2J

I

DPPTDlMP DlMP Command
Processor

I
DPPTIMPS STAE Command
Processor

I

2-261

r-

n
m

2-271

Z
CI)
m

51

3:

DPPTST
AE Routine
STAE
Exit
For
DPPTPMON

2-28

C

~

-I

m

DPPTSMON System Monitor

:D
2-201

I

I

J

DPPTETXR End Of Task Exit
2.19
Routine
J

);
rI
"'V

~
"'0

m

~

<

o

"

Figure 2-14 (1 of 2) Special Real Time Operating System Task Management Overview

LICENSED MATERIAL - PROPERTY OF IBM

Task Management
The Special Real Time Operating System's task management services are an
extension of the OS/VSl tasks supervisor to make more efficient use of systems resources in a real time processing system. These additional services
are provided by the Special Real Time Operating System through the use of
SVC routines, monitor routines, operator commands, and service subroutines
as shown in Figure 2-14.
The PATCH monitor routine and the system monitor routine, DPPTPMON and
DPPTSMON respectively, receive control from the Special Real Time Operating System initialization module, DPP!NIT, and form the heart of task
management. DPPTSMON executes under the job step task and performs the
services required by the real time system as a whole (i.e., create new
subtasks, LOAD reentrant modules, etc.). DPPTPMON executes under each
subtask created by DPPTSMON and interfaces with the user routines as required on a PATCH macro call. The relationship between the user program
and the task management routines is shown in Figure 2-15.
The task management routines provide most of the communication between
partitions in a two-partition environment. This is done internally to
each routine and does not affect the overall logic flow or the function of
that routine.

SVC/Service
Routines

User Program
PATCH

-- II -

REPATCH

POST _

-

...

I

--

I
I

DPPTPSVC

.......

- I --- J

--

DPPTSMON

,+

POST

POST __

....

I

DPATCH

Service
Subroutines

Monitor Routines

POST_

....

DPPTPMON

--

DPPTWODL

.......

DPPTDSVC

I
PURGEWO

Figure 2-15.

-

I -....
I

DPPTPWOE

Task Management-User Program Relationships

2-43

ATTACHed By OPPTSMON
(Figure 2-18)

DPPTPMON

Input

~

Output

ocess

TCB

CD
........

TCBUSER

....

Wait On TCBUSER For
TCBX Address

TCBX

TCBX

...
TCBXRSTB

rigur~

m
>

r-

Resource Table

If No Resource Table
Present Issue GETMAIN

-y

TCBXRSTB

~
BBytes

16

1
1

nm
Z

en
m
C

s:

00

l>
-t

Issue STAE To Gain
Control Whenever Task
Abends

•

TCBX

TCBXWQ

'\;D""Vnu

\\

,1
l

WOE

l

l

0

~

l
1

_EX:

ill

l

1 1

QE

DPPINIT Wait On
~~~~~CB For Firit

l

[

0

t

....

m

I

.......CAL~

1

Tr"RYI' LAG2

Prooess WOE's On
Cleanup Work Oueue

DPTPMON6
OP/OH
Interface 2.B1.'

1I

....-

~

....

WOE
Processor

l

If No DPATCH FLAG
SET Else And Not
Held Else

A

~\

WONEXT

2-'7

.. 10

V

TCBXWa
TCBXCUWO

If No DPATCH Occurred
-y"). Wait
On TCBXECB For
Next PATCH Or DPATCH

~181

Figure 2-16 (1 Of 4) - PATCH Monitor

TCBX

1
...

I

::D
.....
-<
o
."

1

DP11'MONJ

1

TCBX

::D

o
"1:1

I@J

Q

"1:1

If TCBX Is A
aBEVE Processor

C":AI

~EXT WO£~

I

If TCBUSER Posted By

... )I

h

::D

l>
r-

~l!J
WOE

m

To Figure 2-16 (3 Of 4)

J~

CD

3:

FiQurtt 2-" (2 of 4)
Step

Extended Description

Messages and
ABEND Codes POL Segment

I

The PATCH monitor is attached by DPPINIT during Special Real·Time
Operating System initialization or by the system monitor DPPTSMON
thereafter. The address of the TCBX is put into the TCBUSER field
via POST by the mother task.

DPPTPMON

2

It is checked if a resource table address is present in the TCBX and
if not, a resource table plus work area are obtained through GETMAIN
and the address stored into TCBXRSTB.

DPPTPMON

r-

o

m
Z

en

3

The STAE specifies DPPTSTAE as the exit routine.

DPPTPMON

m

4

If DPPINIT posted TCBUSER, this is an initial TCB on the FREE chain
(TMCTFREE), and the PATCH monitor waits here on TCBXECB for the first
PATCH.

DPPTPMON

»-I

If TCBX is a queue processor (QP), then segment DPTPMON6 is used to
select work from one of the queue holders associated with this QP.

DPPTPMON

5

o

3:

m

:D

»
r"'0

6

If any WQEs are on the cleanup work queue TCBXCUWQ they are dechained,
DPPSCLUP is called and the WQE-DELETE routine is invoked through a
branch entry to delete the. WQE. Then the top WQE is dequeued from
the TCBXWQ chain, it becomes the "current" WQE and its address is
kept in TCBXCWQ. Each WQE is processed as. long as WQEs are present
on the queue and no DPATCH TYPE = U (unconditional) is received.

DPPTPMON

7

If no DPATCH occurred, indicating that the queue is empty, the PATCH
monitor waits here for a next PATCH or DPATCH.

DPPTPMON

8

If no DPATCH flag is set (TCBXFLG2) and not HELD (TCBFLG3), control
goes back to step 5 for processing of the received PATCH. Otherwise t
if a DPATCH was received, control goes to A. (Figure 2-16 (3 of 4».
If task is being HELD, the PATCH monitor WAITs until released before
processing additional work queues.

DPPTPMON

:D

o"'0

m

l:J
-I

<

o-n

O:J
~

DPPTPMON

From Figure 2·16 (1 Of 4)

Input

Process

Output

TCBX
TCBX

WOE
r\;tI~uwu

~

0

IT!

....

)

TMCT

~

TCBX
TCBXNEXT

(

).

DPTPMON3

TCBX
TCBXNEXT

\

...

If DPATCH wa Not
Empty Process WOE
OnDWO

~

~

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

,

r

o

WOE Processor

2·17

rn
LCB

LCB

LCBNEXT ~

0

""-/

~

TCBXLCB

m
2
en
m

TCBX
TMCT

Clean Up The TCBX;
Delete All LCB's;
Delete All WOE's;
FREEWA AT - Type
Areas; DECHAIN TCBX

/'j

TCBXNEXT

o

...

3:

).
.....

TCBX

TCBXWa

Active Chain

1l1li

WOE
WON EXT

\

'}-Pl

WOE
0

Llrr'! VYUUL

...
,.

TCBX

Modified
Active
Chain

...

....

WOE Delete

TCBX

EJ

0

2·25

0

l>

-I

m

:D

l>

rI

"1:J

jJ

If DDS Specified,

Then

.... ~N_K ...

.....

o"1:J

nP~IIIP

m

DDS Cleanup

jJ

--".

2·78

rn

TCBX

TMCT

TCBX

0

(7/

TCBXNEXT

TMCTFREE

EJ

TMCT#FRE

i...,---

....>

Oleck #FREE TCBX's;
If Low Make TCBX
Look 'INITIAL'
CHAP TASK To ZERO
PRTY; CHAIN TCBX
To FREE CHAIN

o

ELSE FREEMAIN
Resource Table

I

'~

SVC EXIT

I

TCBX

TMCT

(1

...

0

~~
2·16

(1 Of

41

Retum To OSNS

TCBX
TMCTFHEE

r+

I

TCBXNEXT

-<

o

"

~ TCBXNEXT

To Figure

I~

Figure 2-16 (3 Of 4) - PATCH Monitor

-I

~

Figure 2-16 (4 of 4).
Step

Extended Description

1

If the DPATCH work queue TCBXDWQ is not empty, that WQE is dechained
and its address is kept in TCBXCWQ. The WQE is processed like any
other WQE.

2

The TCBX will then be cleaned up. DPPSCLUP is called to clean up
DDS. Remaining WQEs are deleted by using the WQDL routine. AT-Type
GETWA areas are freed using the special entry to FREEWA. Remaining
LCBs are deleted. If there is a corresponding LCB on the T~~T-LCB
chain, that LCB's use-count is decremented. If it goes to zero, the
flags LCBFDEL and TMCTLCBD are set to cause DPPTSMON to delete the
program. If the program was not reentrant, it is deleted here. Then
the TCBX is dechained from its active independent or dependent task
chain, TMCTAIND or TMCTADEP, respectively.

Messages and
ABEND 'Codes PDL Segment

DPPTPMON

DPP0161

DPTPMONI
r-

n

m
Z
en
m
C

3:

»
-t

m

:JJ

3

A check is made for the number of TCBXs on the TMCTFREE chain. If it
is low, the TCBX is further cleaned up t~ look "initial" (TCBXNAME,
TCBXPARM, TCBXFLGs), the task is CHAP'ed down to zero priority, and
the TCBX is chained to the FREE chain. Control now goes back to
step 4 of Figure 2-16 (1 of 4), where the PATCH monitor will wait
for a new "first" PATCH.

DPTPMONI

»r-

"
o

:JJ

"

m

:JJ

4

If the limit number of free TCBXs is already reached, the flag
TCBXlTRM is set, and FREEMAIN of resource table plus work area is
done. Then SVC EXIT is issued to terminate the task.

DPPTPMON

-t

-<
o
-n
aJ

3:

CALL From DPPTPMON
Fi.,re 2-16.(1 Of 4) Or
Figure 2-16 (3 Of 4)

DPTPMON3

Input

TCBX

TCBX-LCB

LCB

TCBXLCB

~

TCBxcwa

~

WOE

r

LCBEPNAM

Output

Procell

~
_~~ind

The Program

1

m

If Program
NONREENTRANT
load Program

WOlCB

r-

ei

m

TMCT
TMCT
TMCTSMON

TCBX

TCBX

~

1/

)
0

ITCBXSMON

TCBX

Irn IfREENTRANT
Program Is

~

Chain TCBX To
TMCTSMON Chain
Post System Monitor
Wait On TCBXLECB

TCBX

D

Z
m
(I)

TMCTSMON I)IJI
TMCTSECB
TCBXSMON

TCBX

TCBX

It

TCaXSMON

It

o

TCBXLECB

3:
l>

0

m

-t

lJ
Wait On
TC8XLECB

TMCTSECB
Posted

l>
r
I
~

..')

TCBX
WOE

fliJ

~

TCBXCWa

:D
IF Not 10 255
• Load Parameter
-Transfer GETWA
Area
• Execute User's
Program

...

....)

WOlD
J.WOPARAM

Register 1
..... CALL ...

,

-..

TCBX

-.

f=I (';IHI.LJ(';VI

I~

TCBX-LCB

~

WOE

TCBXLCB

r!

1

I

PROBl·

TCBX

I

Resource Table
rCBXRSTB ........1
I

TI"'D'"''''

User's Program
Return

o"0

XCVT

PROBl

-

LCa

I

l

[]} If DELETE Was
Spec. And If PGM
NON REENTRANT,
Delete User's Program
TCBX

1111

lCBEPNAM

WalCB

TCBXCWa

...

...).

[!]

Clean Up WaE
FREEWA AP·Type
Areas, Delete The
WaE

.......,

..

!TCBXLC8

r---. TCBX-LC8 Chain

/'

Figu At 2·17 10f 2) - WOE Processor

Return To Caller

m

:0

-t

-<

o

"

Figure 2·17 (2 of 2)

Step

Extended Description

I

If the pu~ge flag is set in the LCB pointed to by the current WQE,
DPPTPMON waits for dynamic load module PURGE to complete. If the
LCB is unresolved, a search is made to find the program on the
TMCT-LCB chain. If found, the TCBX-LCB is pointed to the TMCT-LCB,
the user count is incremented, and the EP address is copied. If not
found on the chain, a BLDL is "issued to locate the program.

2

3

4

If the program is non-reentrant, it is LOADed and its EP address kept
in the LCB. If it is a Queue Processor task build a duplicate LCB
for this Q Proccessor Reentrant programs are task oriented and the CB
for the QH is not.
If the program is reentrant, flags LCBFLOAD and TCBXILCB are set, and
the TCBX is chained to the TMCTSMON chain a Then the system monitor is
POSTed (TMCTSECB) and the PATCH monitor waits on TCBXLECB.
The address of the PROBL is stored into TCBXPARM. If ID is not 255,
the address of TCBXDCVT is loaded into register I and the user's
program is given control via BALR 14, 15.

Messages and
ABEND Codes PDl Segment

DPPOl4I
DPPOl5I

DPTPMON3

r

DPTPMON3

n
m
2

en

m

DPTPMON3

o

3:

»-f

m

:XJ

DPTPMON4

:t>
r

-c

DPTPMON4

:XJ

o
-c

m

5
6

The user's program will return here. If the program is nonreusable or
if it is reusable and DEL was specified, it is DELETEd.
If the purge flag is set and an ECB address was supplied by
DPPTDLMP. the ECB is POSTed. If any AP-type GETWA area is chained
to TCBXOFWD. FREEWA is executed (via the branch entry of FREEWA.)
Then the WQDL routine is invoked via branch entry to delete the
WQE.

:XJ

DPTPMON5

-f

-<
o
"T1

OJ

~

~

(J'l

o

CALL From DPPPARM

DPTPMON2

(Figure 2·139, 3 Of 10)

Input

~

WOE

11L;Ij.l\.L;VYU

lCB

~
I
WOlCB
WaF PATCH

TCBXlCB
TCBXWO
TCBXCWO

.>

~

1
~-;1
l'-

-

WONEXT "
Wales

~
~

1\

WQPARAM

IT]

...

lCBFLAGS

~

TCBX

Output

PrOClSl

lCB

lCBEPNAM

If PURGE FLAG SET
Or If DELETE Was
Spec. Set NZERO
Return Code

~Ier

E

--

"..,! To

TCBX IsA
Oueue Processor

TCBX

~

TCBXLCB ~_
TCBxwa I"'"
TCBXCWO

DPTPMON6

....
~

~

OP/OH
Interface 2.18.1

walCB
WOFREElN
WaFREEAD

")I~f Next WOE ReQuests

J

The Same Program,
FREEWA AP·Type
Areas. Invoke WOE DELETE RTN. Get
Next WOE, Load
Parameters, Zero
RETURN Code

0

~

,

+

PROBl

D

./

TCBX
TCBXlCB
TCBXWO
TCBXCWO

/1
~

"

WOE
WONEXT
WOlCB

TCBX
TCBXFlG2

lCB
0
~
lCSEPNAM

(

~

WOE
0
walCB

.0

...")
...

If Next WOE
Requests Another
Program, Set
NZERO RETURN
Code

WOE

I)
WQPARAM

:D

m

»

r
I

-0

:D

o

"m

:xl
-I

t.o

-<

....
v

~····I

I

User's ECB Posted

ON TCBXECB

TCBX
Upon Return:
Register 15

161

TCBXWa
"-

)

-v

If NO DPATCH FLAG
SET, ELSE Set NZERO
RETURN Code

Return To Caller

Figure 2-18 (1 Of· 2) - PATCH Monitor· High level language Entry

»

-I

RetumTo

!catl«

If No WOE On Chain.
~ Post
U~r's ECB, WAIT

3:

walCB

I......

rn

Z

m

Caller
lCa
lCBNEXT
LCBEPNAM

LCBEPNAM

r

n
m
o

"----'"

TCBXPARM

lea

en

iI""

\

!-

WOE

WOE

WOlCS

__

I

Return Code

I

o

"

Figure 2·18 (2 Of 2)
Step

Extended Description

Messages and POL Segment
ABEND Codes

This part of the Patch Monitor is entered only from the high level
language interface programs (DPPPARM for PL/I or DPPFPRM for
FORTRAN).
1

If the purge flag is set or if DEL was specified, return to caller
with a nonzero return code.

DPTPMON2
r(')

2

3

If TCBX is a queue processor (QP) then segment DPTPMQN6 is used to
select work from one of the queue holders associated with this ~P.

DPTPMON2

A check is made if the next WQE requests the same program. If yes,
the old WQE is cleaned up; AP-Type GETWA areas are freed and the old
WQE deleted via branch entry to the WQDL Routine. Then the new WQE
is scheduled, and the PROBL address loaded into TCBXPARM. If ID is
not 255, the return code is set to zero and control returned to the
caller. If ID is 255, no return is performed; but the routine
continues to check the next WQE while WQEs are present on TCBXWQ and
no DPATCH flag is set.

DPrPMON2

If the next WQE requests a different program, the current control is
passed back to the caller with a nonzero return code.

5

6

m
Z

(I)

m

o

3:

l>
m
-4

::D

l>
r""0

::D

o
""0

m

DPTPMON2

::D
-4

<

o

If no WQE is on TCBXWQ, the user's ECB is posted to indicate that
processing of this work queue is completed, the ECB address is
cleared from the WQE, and the Patch Monitor waits on TCBXECB for a
next PATCH or DPATCH.

DPTPMON2

After TCBXECB is posted and if no DPATCH flag is set in TCBXFLG2,
the routine continues processing with step 2. If a DPATCH occurred,
the return code is set nonzero and control returns to the caller.

DPl'PMON2

"OJ

3:

CALL From OPPTPMON
(Figure 2·16, 1 Of 9) And
OPTPMON2 (Figure 2·18.

1Ft

DPTPMON6
Input

I
TCBXOCT

TCBXOADA

TCBXCUWO

~

tr.
I

TCBXWO

....

~

WOE

~

m

Find A WOE One One Of
The Associated OH's Work
Queue Chair (TCBXWO)
And Move It To The OP's
Work Oueue Chair.

r
I

TCBX-OPl

B

A

~

-I

Move WOE's on the OH's
Oean-Up Chair (TCBXCUWO)
To The QP's Clean-Up Chair.

TCBXCUWO

WOE

WOE

TCBXCUBWO

IT]

TCBX-OH2

TCBXCUMO
TCBXQADR

TCBX-OPl

TCBX-OHl

TCBX-OPI

Output

Process

WOE
WONEXT
C

I

WOE

0
B

WOB

~ D

I

I

r-

nm

2
m

C'I)

o

3:

»
-I

m

C

:xl

WOE

."

»
rI

TCBX-OPl

TCBXWO
TCBXOADDR

J

:D

A

TCBX-OH2

TCBX-OP2

TCBXECB
TC8X-QP3

l

')llIJlf This OP Has Not Selected
A WOE From The OH That
POSTed Him Or From The
OH That It Selected The
Previous WOE, The POST
Another QP To See If Additional Work Can Be Performed.

TCBXOCT

o."
TCBX-QP2

m
::D

-I

TCB£ECB

-<
o"TI
OJ

TCBXQAOR

3:

TCBXQAOR

Figure 2-18.1 (1 Of 2) - OP/OH Interface

Return To Caller

Figure 2-18.1 (2 Of 2).

Step

Extended Description

Messages and
ABEND Codes POL Segment

1

The address of each associated QH TCBX is contained in the TCBX for
that QP. Since a QH is not associated to an QS task the clean-up
work queue for the WHs are moved to the TCBX for the QP.

DPTMONG

2

The chain of QHs is searched looking for and available work queue (is
a work queue on the work queue chain of a QH the QH is not HELD, and
the QH is not sequential with another work queue currently being
processed by another QP).

DPTPMONG

3

I
(")

m

Z

(I)

The chain of QPs associated with the QH that the work queue was
selected from is searched looking for a available QP (Le. a dormant
QP that is not HELD and has not been previously posted).

m

o

3:

»
-t

m

:D

»

I

"'tJ

:D

o-0

m

:D

-t

-<

o

"OJ

3:

DPPTETXR

From OSNSl Task

Termination

Input

LOCKCBLKs

SCVT
•

LOCKNEXT ~ LOCKNEXT

II

~

0

TCB

~

Process

SCVT

...

LOCKCBLKs

T~

II

-:> 1m

...."'>

SCVTLKCB

Output

">
...

Release All Locks
For This TCB

0

If

r-

!SCVTLKCB

C')

..

Register 1

/

m
Z
en
m
C
3:
l>
~
m

TCB

TCBUSER

::XJ

»
r-

TCBX
TCBX
WOE
TCBXWO
TCBXCWA

-

WONEXT

i--P'

TCBXWO

:, illIf Task ABENDED

WOE

WOE

0

I\w~

"'-

.>

...

TCBXCWO

r-.

WONEXT

o
I TCB)(C'lIwn

...

WOE

"m

:0
-i

<

o
on

..... 1m

If NORMAL
TERMINATION
Free The TCBX

l

>10

Free CB·GET
Storage

~

TCa

....

"

-

I
::XJ

rCBX

Figure 2 19 (1 Of 2)

0

-0

..-:>

Write Message,Chain
WOE To Clean Up
Work Oueue. POST
System MonitClr For
A New TeB

WOE

f+

- End Of Task

EXit Routme

CL------

@]
DET ACH The TCB
That Abended

Return To OSNS1

~~D
v-v--

Free Stor~

Figure 2-19 (2 of 2).
Step

Extended Description

Messages and
ABEND Codes POL Segment

The End of Task Exit routine is specified when the PATCH monitor is
attached by the Special Real Time Operating System initialization or
the system monitor and it executes as an asynchronous exit routine of
OS/VSl task termination.
1

2

DPPTETXR

The SCVTLKCB chain is searched for any LOCKCBLK referring to the
ABENDing TCB and if found, an UNLOCK is issued. If it is not a
daughter of the job step task, ABEND with a code 64.

USER 64

r-

"enm
Z

DPPTETXR

DPPOlOI
DPPOllI
DPPOl2I
DPP013I
DPPOl8I

If the task ABENDed (TCBCMP nonzero), a message is issued. If flag
TCBX1TRM is not set, the WQE is chained to the TCBXCUWQ cleanup work
queue. The flags TCBX1TCB and TCBXlCHP are set, and the TCBX is
chained to the system monitors request chain TMCTSMON. Then the
system monitor is posted (TMCTSECB).

m

0

3:
»
-t
m
:::D

3

If the task terminated normally (TCBX1TRM is set), the TCBX is freed.

DPPTETXR

4

The ABENDing task's TCB is detached to remove it from the OS/VSl TCB
chains and release its storage from fixed PQA. Then the routine
returns to OS/VSl.

DPPTETXR

»
r-

"

:D

0
""0
m

:D

-t

-<
0

-n
aJ

3:

I
I

I

!

DPPTSMON

from DPP .NIT
(figure 2-9,9 Of 12)
Via XCTL

Input

TMCT

1)If

TCBX

TCBX

TCBX

It

TMCTSMON

TCBXSMON

TCBXSMON

1I

0

..

~
..') OJ

..

Output

PrDcess

TCBX
DECHAIN TCBX
From CHAIN

TCBXSMON

It

0

r(")

TMCT
LeB
TMCTLCBA

D

TMCTSMON

")

TCBX

TCBX

TMCT

f-4'

TCBX1LCB
..') OfIf FLAG
TCBXFLGl Set.

(}

lCBEPNAM

...

lCBEPNAM

Search TMCT-lCB
CHAIN. If Not
Found Build And CHAIN
LCB. LOAD Program.
POST TCBXLECB

LCB

TCBX

I.""

/

)

LCB
LCB
• LCBNEXT ~ LCBNEXT

TMCTLCBA

LCB

1-'9"

0

7

LCBEPAD

11

rn

-fcsXI=LG1
Tl;BXPR

TCB

...

If FLAG TCBXlTCB
Of TCBXFLGl Set
ATTACH PATCH
Monitor, POST
TCBUSER With TCBX

")

...

L:>

l~ti)l.t'tiIY

rCBX

."

~

lJ

~

TCBXTCB

m

lJ

-f

-<
o."

TCB

~

TCBXTCG
TCBXFLGl

TCBUSER

TeB

3:

l>
rI

TCBXFLGl
. TCBX

o

lJ

LCBLCBA
LCBEPAD

TCBXLCB
TCBXLECB

en
m

!fm

TCBX

LCBEPNAM

TCBXLCB

m
Z

TMCT

rn

LCB

LCBNEXT ~

TCBX

...

.../

TCBUSER

/'

-

TCBXECB

to

3:

I@] While TCBX's ON
REO CHAIN

TMCT

ITMCTLCBA
iTMCTFLGl

•

_CB
LCBNEXT

rP

LCB
-LCBNEXT
I('RS::

LCB

~

I

TMCT

0

.Il.roc

TMCT
·-TMCTECB

..

If FLAG TMCTLCBD
Set,DECHAIN LCB.

~~~~TCc~rogram.

/)m
WAIT On TMCTSECB

Figure 2·20 (1 Of 4) • System Monitor

LCB

LeB

")I@
...

,..

,...~ITMCTLCBA

•

LCBNEXT

V-

0

Figure 2-20 (2 Of 4)
Step

Extended Description

Messages and
ABEND Codes PDL Segment

The System Monitor is entered via XCTL from the Special Real Time
Operating System initialization and executes under the job step task
TCB in a never ending loop as long as the real time system is running.
1

2

3

4
5

The first TCBX is dechained from the TMCTSMON chain, the system
monitors request chain, and the flag byte TCBXFLGl is inspected for
the kind of service requested.
If flag TCBXlLCB is set, the TMCT-LCB chain is searched for a program
with the same name. If found, the TCBX-LCB is pointed to the
TMCT-LCB, the EP address is copied, and the use count is updated.
If not found, a new LCB is built from CB-GET storage and chained, the
program is loaded, and the EP address stored in both LCBS. However,
if CB-GET storage for a new LCB is not available, the program is
treated nonreentrant, loaded and its EP address stored in the
TCBX-LCB only. Then the waiting PATCH monitor is posted (TCBXLECB).

DPPTSMON
r-

n

DPPOl7I

DPTSMONl

m
Z
en
m
C

3:

....l>m

::0

l>
r-

If flag TCBXlTCB is set, a new patch monitor is attached with the
specified priority, the TCB address is stored into the TCBX, and the
TCBUSER field of the TCB is posted with the TCBX address.

DPPTSMON

If flag TCBXlCHP is set, the requesting task is CHAPed to the proper
priority, and the waiting patch monitor is posted (TCBXECB).

DPPTSMON

While more TCBXs are chained to TMCTSMON, the system monitor continues
to service these requests (step 1 above).

DPPTSMON

-0

::D

o

"
:D

m

....

<
o

-n

~

Figure 2-20 (3 Of 4)
Messages and
ABEND Codes PDL Segment

Step

Extended Description

6

If flag TMCTLCBD is set, the TMCT-LCB chain is searched for LCBs
that are requesting a DELETE service (LCBFDEL). The LCBs are dechained, the programs deleted and the LCBs are freed. If any LCB had
the purge flag set, DPPTDLMP is posted.

DPPTSMON

7

After the system monitor has serviced all requests, he waits on
TMCTSECB, and a POST for further service will pass control back to
step 1.

DPPTSMON

r-

n

m

Z
m

Cf)

C
~

»-«

m'
JJ

»
r-

LICENSED MATERIAL - PROPERTY OF IBM

Intentionally Blank

Figure

2~20

(4 of 4)

2..59

DPPTPSVC

From PATCH Macro Call

nput

~

SCVT

SCVTP1LO
SCVTP1HI
SCVTP2LO
SCVTP2HI

Reg 0
PROSL
PROBLNTH

-..

")

..")

.-

....
)
-'"

...

TMCT
IM~IAINU

I--r1M'"

. .>

Validity Check Input
Addresses
• PROSL
• SUPL
• SUPECB
• SUPTC8X
• SUPFREEA
If Invalid Set Return
Code And Exit

...

')

J;f

IReturJ. Caller

ill

.

It Task Name Specified
Search For TCBX On
Independent Task Chain

C

m

::D

.. .-

Cb

P

WOE

~.

WOTCBX
WOFLAGS

TCSXLOL
TCBXCQL

1-10

...

)

nur"~'''''

..

.."') rn
..
--,...

PROBLNTH
·PROBID

.. ':>

YWUtl.QAU

''''DAr

...

.

Lca

LCB

._.

I rIU::D":AU

1-+

0
LCBI'PNAM

..........

.

Build A waE

l
TCSXLCB

~

~

"'>lCB~

If Task Has No LCB For
The Requested Load
Module Build An LCB
And Chain It To TCBX

-..

J

LCBNEXT

LCBFLAGS

LCBEPNAM

. PATCH SVC Routine

A

To Figure 2-21
(3 Of 4)

rI

"lJ

::D

o

m

::D
-4

<

o-n

TCBX

[!J

LCBREQCT

. (1 Of 4)
Figure 221

IA/QF~EE~foI

. "')

...') I(!}
".

WOPTCS

..

l>

."

WOlD

If No Task Specified Or
If Not Found On Chain
Get A TCBX

~

lCBNEXT

m

:i:
l>

.,.,.

I

-

Z

..

PROSL

TCBXLCB

m

(I)

-f

~-ut.J..:.~I~

TCBX

rn

Address Of Existing
TCSX With The
Specified Name
TCSX

TCBX

II.

- -

Retum Code
2 . TCBX Invalid
12· PROSL Invalid
14 . SUPL Invalid
18 • Free = Invalid

Mee

l\l

r

Reg 15

SUPL

SUPTASK
SUPEP
SUPPRTYN
SUPFI AG
SUPOL
SUPPRTYV
SUPECB
SUPFREEL
SUPFREEA
SUPTCBX

T""~'

Output

... ill
l...-

PROBID
PROBPARM
\Reg1

Process

f-----

-

Figure 2-21 (2 of 4).

Step

1

Extended Description

The Problem Parameter List (PROBL) and Supervisor Parameter List
(SUPL) addresses passed to PATCH are checked, both must be nonzero.
ECB. TCBX, and FREE addresses may be specified; if so,the specified
addressees) are also checked. The addresses must be within the
partition in a single partition environment or within either the
MASTER or SLAVE partition in a two-partition environment.

Messages and
ABEND Codes POL Segment

DPTPSVCl

r

If a task name was specified, the PATCH is for an independent task.
The independent task chain (TMCTAIND) is searched for the name given.,

DPPTPSVC

If no task name was specified (the PATCH is for a dependent task). or
if a TCBX with the given name does not exist, a free TCBX is taken
from the FREE chain (TMCTFREE) or if none is available, CB-GET
storage is obtained and a new TCBX is built. Transfer GETWA area
if required.

DPTPSVC4

4

A work queue element (WQE) is built from CB-GET storage.

DPTPSVC3

5

The TCBXLCB chain is searched for an LCB with the given EP name.
If none i~ found, an LCB is built from CB-GET storage and chained
to the TCBX.

DPTPSVC3

2

3

n
m
2
m

en

o

3:

»
-t

m

~

»
r

rv

en
rv

From Figure 2·21

DPPTPSVC

(1 Of 4)

Input

Output

Process

TCBX

TCBX
LCB
TCBXLCB

~

LCB

Yf'[

IA1

I-L _ _ _-L_r...
..."')
~---__-../....

TCBXlCB

illPoint WOE To LCB

"

And Chain WOE T9
TCBX As Requested

1

0

"I
\

WOE

WOE

EJ

0

LeB

~

~

TCBXWO

WOE

WOE

\WOE

0

I

J

TCBXWO

LeB

LCB

LCB

WOE

0

WONEXT

1'1

r-

WOlCB

I

_______L

m
Z

en
m

TCBX

rCBX
I-=:-:-:--::--::-~

n

_ _ _l...."'''''

ill

TCBXFLGl
~~~~-r--------'r----...--..\-'>/

...

If TCBX Was On
Active Chain-POST
DPPTPMON

..:>

TCBXECB

C
3:

Posted

~

m

»-r

:Xl

Active Chain
TMCT

0

TMCTAIND

TMCTSMON

TMCT

TCBX

@]

. ')

"""-Ii TCBXNEXT
-

,
TCBX

-

...

Else - TCBX Was
Built,Chain TCBX To
DPPTSMON's Request
Chain,POST
DPPTSMON,Chain
TCBX To Active
Chain

~

Modified

TMCTAIND

~Active
Chain
~

I .\

,

TMCTSMON

)
Posted

TMCTSECB

TCBX

1

'0'" R.."re, 1

Figure 2-21 (3 Of 4) -PATCH SVC Routine

J___

I

RotumTo~

...

Register 1

Register 15

I
I

:Xl

o

m

TCBX Address

Return Code

:Xl

'DO

TC~MON
,\

TCBXSMON

Load TCBX Address

."

........

I
[1]

I

TCBXNEXT

."

~ .....

DPPTSMON's
Request Chain
Modified

0

TCBXNEXT

"4 TCBX
DPPTSMON's
Request
Chain

TCBX

r

~
I
I

-

-f

-<

o'T1

Figure 2-21 (4 of 4).
Messages and
ABEND Codes PDL Segment

Step

Extended Description

1

Point the WQE to the LCB and chain the WQE to the TCBX as requested
in the QPOS operand of PATCH.
LAST
- chain to the end of the TCBXWQ chain
- chain at the top of the TCBXWQ chain. In this case,
FIRST
if the limit queue length is already reached, the
bottom WQE is dechained and chained to the cleanup
work queue TCBXCUWQ instead ..
DPATCH - chain this WQE to TCBXDWQ (one WQE only can be chained
to the DPATCH work queue). QPQS-DPATCH is invaluable
for queue holders and queue processors.

DPTPSVC3

If the TCBX was on the active chain (flag TCBXlCHP in TCBX is zero,
for no CHAP is necessary in this case), the Patch monitor DPPTPMON is
posted (TCBXECB). For PATCH is to queue holders the first inactive
available queue processor for that queue holders is posted.

DPTPSVC3

Otherwise the TCBX is chained to the system moni~or DPPTSMON's request
chain (TMCTSMON - TCBXSMON), and DPPTSMON is posted (TMCTSECB).

DPTPSVC4

Also, the TCBX is chained to the top of the proper active chain in
the TMCT.
TMCTAIND - if task name specified
TMCTADEP - if no task name given

DPPTPSVC

r(")

m
2
en
m

o

3:

2

3

»
-f

m

::D

»
I
."

::D

o
."

m

::D
-f

-<

o."
OJ

3:

The DPATCH=W flag TCBX2DPW in the TCBX is set also in case it is a
dependent task to stop processing in DPPTPMON upon completion of this
work request.
4

The return code is loaded into register l~ and if it is less than or
equal to 8, the TCBX address is loaded into register 1; otherwise, it
is cleared. Then the routine returns to the caller.

DPPTPSVC

From DPATCH Macro Call

DPPTDSVC

~

Input

Register 0

Output

Process

,

Register 1

I

I

DPATCH Type Code

I

I I

PTNI Address Of
TCBX Name
Flags

..---

--v>

OJ Validity Check
Inputs If Invalid

Register 15
Return Call

"".....

22 . Invalid PTN=
24 . Invalid Parameters

r-

Return To
Caller

n
m

TCBX
TMCT
TMCTAIND

TCBX

r.

TCBX

TCBX

TCBXNEXT ~
1+ TCBXNAME

0

I

... ill Find TCBX On
v >

.>

2
m

...

Active C"ain And
Set DPA TCH Flag
In TCBX

(J)

-/

TrR'lt'J:lr.?

o

3:

l>
-f
m

:xl
TCBX

»
r-

.. ') mlf DPATCH
v

..
,;>

TCBXTCB

I

Type = I
ABTERM That
Task With User
ABEND Code 65

....

l

[IJElse

POST

~

~

.....

"o
m
"
:xl
:xl

TCBX

TCBXECB

Posted

....

-<

UI'I'I I'MU'i

o
."

Register 15

Set Return Code

Figure 222
- (1 Of 2)

- DPATCH SVC

L

Return To Caller

Routine

.....

.....

Code
4 ·DEPATCHed . W
8 -DEPATCHed . U
12 . No! Dormant
16 . Not Removed
20 . No TC8X Found
22 ·SLAVE PTN not
active
24 ·Invalid ~V,g, ""'V'
28 ·QH or OP task and
not TYPE I or A

-s:
OJ

Figure 2-22 (2 of 2).
Step

1

Extended Description

Messages and
ABEND Codes POL Segment

°

The ~ontents of register
and 1 are checked. If register 1 is zero,
the DPATCH is for the issuing task itself, in this case the TCBUSER
field is checked. It must be within partition boundaries. If
register 1 is nonzero, its content is the address of a storage field
with the TCBXNAME that is to be DPATCHed. The address must be within
partition boundaries. Register
must contain a valid TYPE code (0,
4, 8 or 12 corresponding to Type U, C, W, A, or I). Note: All type
DPATCHs to queue holders are invalid and only DPATCH type A or I is
valid for queue processors.

DPTDSVCl

If register 1 is nonzero, the ~fCTAIND active task chain is searched
for a TCBX with the specified name. A return code is loaded into
register 15 if it cannot be found.

DPTDSVCl

°

r
(')

m
en
Z

m

o
»

;:

-t
m

::D

»
r

The DPATCH - Flag corresponding to the DPATCH TYPE is set in the
TCBX. If the same or another flag was already set, a return code in
register 15 will indicate this.

."

::D

3

If DPATCH TYPE = I (i~uediate) was specified, the OS/VSl ABTERM
routine is invoked through a branch entry to ABTERM that task with
a USER ABEND code of 65.

USER 65

DPPTDSVC

o
."

m

::D

-f

eo(

4

Otherwise DPPTPMON is posted (TCBXECB).
The DPATCH SVC routine returns to the caller with a return code in
register 15.

DPPTDSVC

o

."

DP PTRSVC

From REPATCH
Maero Call

~

Input

Register 0

Register 1

I REPATCH Type Code I

r

Process

Output

Register 15

->

REPl - ADDR

ill

I

Validity O1eck
Inputs
If
Invalid

"

I

y

Return Code
32 - Invalid
Parameters

>

REPl

,

SUPTASK
SUPEP
SUPPRTYN
SUPFLAG

SUPOL
SUPPRTYV
SUPECB
SUPFREEL
SUPFREEA
SUPTC8X
REPl.PARM
REPLPROB
REPLAO

ill

~

Reg 1

TMCT

CAll

TMCTREPL

~

REPlAD
REPLCHN

II

s:
»
-t

DPPTPSVC

m

:Il

PATCH
Routine 2·21

»

~

mitIssueTYPEFREEMAIN
=PURGE

-0

.. .:>

To Process User's
FREE =·Request

:Il

Free

....

o"'0

Virtual
Storage

m
:0

~u.•
REPL

TMCT
REPLAD
REPL

IA

-t

<

User's
REPL

REPLAD
REPlCHN

rI

~

~REPL

REPl

(")

."-....-,

I
..

m
2
(I)
m

o

..
..~

Usen
Area

r-

If TYPE = EXEC
Invoke PATCH
SVC RTN

~

~

Ir

Return To
Caller

->
...

ICil Get
REPl
DECHAIN From
TMCT - REPl
CBFREE The
REPl

TMCTREPl

~

I\

REPLAD
REPLCHN

Figure 2-23 (1 Of 2) - REPATCH SVC Routane

REPLAD

Return To Caller

REPl

REPl'

REPLAD
REPLCHN

~

REPLAD
REPLCHN

o

."

Figure 2-23 (2 of 2).
Step

1

Extended Description

Messages and
ABEND Codes PDL Segment

The contents of register 0 and 1 are checked. Register 0 must be 0
or 1, and register 1 must be a valid address of a REPL. Addresses
are checked against partition boundaries of the own partition and if
outside and two-partition operation boundaries also. If invalid, a
return code of 32 is loaded into register 15, and the routine returns
to the caller.

DPPTRSVC

If register 0 is zero (TYPE=EXEC), the input registers for the
PATCH SVC routine are set up, and DPPTPSVC is invoked via branch
entry. Any return code received upon return will be in turn passed
to the caller of REPATCH.

DPPTRSVC

If register 0 is 1 (TYPE=PURGE) and a FREE= request was specified
on the original PATCH, the FREEMAIN is issued.

DPPTRSVC

r
("')

2

3

4

The address of the Special Real Time Operating System - supplied REPL
is obtained and the REPL is dechained from the TMCT - REPL chain
and freed.
The REPATCH SVC routine returns to the caller with a return code in
register 15.

m

2
en
m
C
~

»

-I

m

:D

»

DPPTRSVC

r

o"

:JJ

"

m

:D
-I

<

o
."

DPPTPWQE

From PURGEWa
Macro Call

~

nput

Register 1
A(PWOE)

1m
")

PWOE
PWOETASK
PWOEEP
PWOEECB
PWOELNTH
PWOEADDR
PWOEPTN
PWOEID

Output

Process

Register 15

Validity Check Inputs
• Task Name Address
• EP Name Address
• ECB Address
• FREE Address
If Invalid Set
Return Code And
Return

....

./

I
1~

Return To
Caller

24-lnvalid PTN
2a-lnvalid
Parameters

!C~)(
1\,;1:SJl.l.WU
I ..... DJl.UWU

TCBX
TMCT

I

I

TMCTAfND
TMCTADEP

1j

TCBX

TCBX

D
n=J

~

Locate TCBX
Requested

l

...

1m

Remove Specified
WO's From TCBX
And Put It On The
Cleanup Work Queue,
TCBXCUWa

V-

"-.....

l
Code To X' 46'
If ECB=Was
Specified On
PATCH

[[if Set The

1L

Free Address
And Length If Specified
On The PURGEWO

- PU R GEWO Macro Call Routme

I

Return To Caller

...

I

I

.

I

./

.. )

WOE

Z
m
C

~WOE

»
-f

~

D

")

TCBX

Set The POST

Fi9ure 2-24 1 Of 2

...

Vo

r

o
m

6

(I)

3:

m

:0

»
r
I

-u

:0

o

woe

v

....

... )

,>{

."

m

:0
wm:CBOD
WOFREELN

-t

-<

o
."

Figure 2-24 (2 of 2).
Step

Extended Description

1

The PWQE address is passed in register 1. The task name address
(PWQETASK), entry point name address (PWQEEP), ECB address (PWQEECB),
FREE address (PWQEADDR), and the requested partition are validity
checked to determine if the addresses are within the partition (or
within either the MASTER or SLAVE partition in a two-partition
environment).

Messages and
ABEND Codes PDl Segment

DPPTPWQE

r(")

2

3

4

The TMCT independent task chain (TMCTAIIID) and dependent task chain
(TMCTADEP) are scanned to locate the specified TCBX.

DPPTPWQE

The EP name and ID are used to identify which work queue elements are
to be removed and placed in the cleanup work queue. The work element
may be on the current work queue chain (TCBXCWQ), the DEPATCH work
queue chain (TCBXDWQ), or the active work queue chain (TCBXWQ).
For queue holders the associated queue processors must be scanned
for active work queues.

DPPTPWQE

The free address and length specified on the PURGEWQ are moved into
the work queue element (WQFREEAD and WQFREELN) to be FREEMAINed when
the work queue is detected.

DPPTPWQE

m
Z

(J)

m

o

3:

~

-f

m

JJ
~

r-

"'0

JJ

o
."
m

JJ
-f

-<
o

."

Dl

3:

From WaDEL Call - DPPTPMON

Figure 2·16

OPPTWQOL

.

Process

npu

Output

l

I

REPL

Reg 1

/woe

Address

1

J WOE

...... LCe

If WOE Was Pushed
Out Of Oueue And
If Repatch Option
Was Specified
Construct Repatch
List (REPL) From
CB·GET Storage

~

WaLCe
I--P
WOTCBX
WOFPATCH
TCeXNAME
WOECBAD
WOFREELN
WOFREEAD
TCBXLOL
WOPARAM
TCBXPRTY

r

rm

LCBEPNAM

~

SUPTASK
SUPEP
SUPPRTYN
SUPFLAG
SUPOL
SUPPRTYV
SUPECB
SUPFREEL
SUPREEA
SUPTCBX
REPLPARM
REPLPROB
REPLAC
REP LAD

..

_ _ _~...L..._ _ _-L_-""--.

.... ")

~

\

Else Proce$$ Free
Request

r-

n
m
Z

en

m
C
~

»-f

m

::0

»
r-

WOE

...
WOECBAD

...

WOE

§

...

... ~ ... I I

ECB Was Specified,
POST User's ECB

Posted

"')
..

Jo.

....

lIDDecrement Request

I

~
LeB

>
..
D

Count In LCB If
Request Count Zero
And If Delete Was
Specified Free The
LCe

I[§J

~

Free
ET Storage
['-/"'v--WOE
Free The WOE

I

"-

...")

D

~

Return To Caller

Figure 2·25 (1 Of 2 . WOOL Call Routme

User's ECB

Free CB·GET Storage

Lce

LceREOCT

rn

") If Addrm Of User's

I

1

-U

::0

o"'0

m

::0
-I

-<
o-n

Figure 2-25 (2 of 2).

Messages and
ABEND Codes POL Segment

Step

Extended Description

1

If the WQE was pushed out of the queue (another PATCH with QPOS=FIRST
was issued and the queue was full) and REPATCH option was
specified (SUPFRPTH), a repatch list is constructed from CB-GET
storage, and the parameters necessary for REPATCH are copied from
TCBX, WQE, and LCB into the REPL.

DPPTWQDL

2

Otherwise, if a FREE= request was specified at PATCH time. it is
processed and a FREEl-lAIN SVC is issued to free the user's area.

DPPTWQDL

r

n

m
Z

(I)

3

If an ECB address was specified, the ECB is posted with the REPL
address if step 1 above was executed; otherwise the completion code
is obtained from the WQE.

DPPTWQDL

The request count in the LCB is decremented. If DELETE was specified
and the module is reentrant, the use count in the corresponding LCB
on the TMCT - LCB chain is also decremented. If it goes to zero,
flags LCBFDEL and TMCTLCBD are set and DPPTSMON is posted. If DELETE
was specified and the request count in the LCB is zero, the LCB is
dechained and freed.

DPPTWQDL

m

o

3:
l>
-t

m

4

:IJ

»
r
."

:IJ

o."

m

5

The WQE must be dechained already at entry to the WQDL routine and
it is freed before the routine returns to the caller.

DPPTWQDL

:IJ

-t

-<

o"T1

DPPTDLMP

PATCHed By IMP As Result
Of DlMP

Comm~

Input

TCBX
Register 1

I

r-

PROBL

TT

....
TCBXOCVT
TCBXRSTB
TCBXPARM

L
10
A(TIME)

If

"-y

Process

Output

IILLCheck Time Specified

.~

If Not OK

A(NAME1)
A(NAME2)

mI,,~

,..lJ

1

;t'

,t'

TIME
MODULE NAME1
MODULE-

LOCKCBLK

Return To

OSNSl

...'>
~

LOCK

I

DLMP

Lock Is Set For
OLMP To Serialize
PURGE Requests

r-

nm
Z

m

en

m

o

Issue STIMER

~

......

TMCT

r'lt.

TCBX

r6E

TCBXLCS ' .

TcBXWa

LCBNEXT

WQNEXT

"(~

LCB

I

r4
I

s:
»
-t

n

n

m

LCB
"-

.>

~

"-

... >

:0

ill
Scan All TCBX - LCB
CHAINS For The
Specified Module And
Set The Purge Flag

LCBECSAD

">

LCSFLAGS

...

PURGE FLAG Set (X'tO')

»
rI
-g

:0

o"'CJ

m
:D

-t

<

LCB
TMCT

TMCTLCBA

V

LCB
LCBNEXT

L..--

~

.n

L..--

....

>

....

~n TMCT -

LCB
CHAIN For The
Specified Module And
The PURGE FLAG

....

"T1

')

set

ilrRFLAGS

[§]
WAIT For Current
Users To Finish
Executing The Module
Or For STIMER To
Expire

o

.....

ECBLlST
A{ECB-1)

...,

... /

r

PURGE FLAG Set (X'l0')

ECS's

~

"EcBil

r

I

1
1
1

ECB's Waited ON

Figure 2-26 (1 Of 4) - Dynamic Load Module Purge

To Figure Z-26 (3 Of 4)

Figure 2-26 (2 of 4).
Step

Extended Description

Messages and
ABEND Codes PDl Segment

Dynamic Load Module Purge is entered as a result of 'a DLMP operator
command through the input message processing interface.
1

A check is made if the specified time value exceeds the maximum
allowed (20 minutes); and if yes,message DPP019 is issued.

DPP019I

DPPTDLMP

2

A LOCK is issued to serialize Load Module Purge requests and message
DPP020 is issued.

DPP020I

DPPTDLMP

r

n

m
2:

(I)

3

4

A STIMER macro is i~sued with the specified time or a default of 2
seconds, if not specified.

DPPTDLMP

All TCBXs on both the independent and the dependent task chain are
scanned for LCBs which reference the module names received in the
purge request. If a match is found, the purge flag is set in the LCB,
and if the LCB is referred to by the current WQE, an ECB is built and
its address stored into the LCB.

DP TDLMP 1

m

o

3:

»
-I

m

:%J

,»
r
"tJ

:%J

5
6

The TMCT-LCB chain is scanned for the module names received in the
purge request. If a match is found, the purge flag is set in the LCB.

DPPTDLMP

The program waits on an ECB list for all current users of one of the
modules to complete (DPPTPMON will POST the ECB) or for the STIMER
issued in step 3 to expire.

DPPTDLMP

o"tJ

m

:%J
-I

<

o
,-n
OJ

3:

:'

r-D_P_P_T_D_L_M~P____

f_:...o;, ::-

ln..;.p_ut_ _ _ _ _ _ _ _ _

.:..TC=.:B:.:.X.:-_~
~____~

;:
L::
_~L~CB~·~__~

' \ LCBNEXT . . ~_ _- ;

TCBXLCB

___
Process
_________

Output

I~STIMER
Expired
Else TTIMER
iCANCEL

~

LCa

2~

Module(s} Deleted

~~~:~~Elt:~N,...'E_D__...:L;:.;:C..:;.B.....

.. IrnCause"

~------...L...J"....>

Modules
In PURGE To Be ~_ _ _---I._ _ _L.-.--lL.-._ _--.l"'~

.>
...

Deleted By The
Task Which Issued

-v

LCBEPAD

From LCB And

UnresolV'ed
FLAG SET

r-

I LCBFLAGS J
I LCBEPAD I

C;

m
Z

The LOAD

(I)

m
C

1m WAIT For All

I

.~

ECBLlST

AIECOI)

...

DELETE's To
Complete

Ii

~

ECB's

I

ECB's Waited On

~

...

TMCT
TMCTAIND
TMCTADEP

I'-..... TCBX

All TCBX's
And POST
.. 1m Scan
DPPTPMON If

TCBX

TCBX

>

....

1\

TCBXPECB

1 \

TCBX

~----~

TCBXPECB

~:~~I~~

... .....,

...

:D

o
""0

m

-<

I[[]

I
I~_ _ _-

-a

o
."

TCBXPECB

DLMP

>
r-

~

TCBX
~~~--~

LOCKCBLK

m

:D

I
TCBX

TCBXPECB

TCBXPECB

>
-4

_ _----;-...,...v"'>

Figure 2-26 (3 Of 4) - Dynamic Load Module Purge

~~e ~NE~~E

Return To OSNS 1

~il
'---------'

Figure 2-26 (4 of 4).
Step

Extended Description

1

If the STIMER has expired issue an error message and give control
to step 4 below; otherwise TTIMER CANCEL is issued.

2

The modules to be purged must be deleted by the same task that issued
the LOAD. The program scans all TCBX-LCBs for both the purge flag
set and loaded by DPPTPMON. For each task with this condition an IRB
and ECB are built and the asynchronous delete routine DPTDLMP5 issues
the DELETE, clears the purge flag, and posts the ECB. Also the
TMCT-LCB ch'ain is scanned, and modules with the purge flag set are
also flagged for delete, aqd DPPTSMON is posted to process the
DELETE.

3

DPPTDLMP waits on an ECB list for all scheduled DELETE operations to
complete. A message is issued to indicate successful execution.

Messages· and
ABEND Codes POL Segment
DPP022I

DPPTDLMP
DPTDLMP2
r
(')

m

Z

en
m

o

DPP023I

DPPTDLMP

3:
~
-t

m

::XJ
~

4

5

Both the independent and the dependent task chain are then scanned for
any DPPTPMON waiting on TCBXPECB. If waiting, TCBXPECB is posted so
that DPPTPMON will resume execution.
Messages are issued and UNLOCK is done, then the program returns to
the caller.

DPTDLMP3

r

-0

::XJ

DPP0211

DPPTDLMP

o
-0
m

::XJ

-t

<
o
."

DPPTIMPS

PATCHed By IMP As Result
Of ST AE Operator Command

Input

Output

Process

Verify Option Specified. If Invalid Issue
24 And Exit

DPP024

M~S5age

Return To

r-

OSNSl

[!]

STAEBlK
SCVT

Verify load Module Names Specified. If
Any Are Invalid Issue Message 25 For
Each Invalid Name.

I----'-------'-----..J',

Scan For STAEBlK With This Name. If
One Is Found, Reset Option To Option
Specified On STAE Command, Else Build r--~-----.L----...r_....
New STAEBlK With Option Specified
STAE Command And Chain Onto

SCVTDCHN
STAEBlK

n
m
DPP025

Z

(I)

m

0

STAEBlK
STAENEXT
STAEABND
STAEMAXD
STAEDPNO
STAElNAM
STAENAME

s:
»
-f

m

:rJ

»
r
I
'"V

:rJ

0

'"V

m

:rJ
-f

-<

0
-n

-i:

OJ.

Return To OSNSl

Figure 2·27 (1 of 2) STAE Command Processor· DPPTIMPS

Figure 2-27 (2 of 2).
Step

Extended Description

Messages and
ABEND Codes PDL Segment

The STAE command processor is entered as a result of a STAE operator
command through the Input Message Processor (IMP) interface.
1

The valid options are DUMP, NODUMP, ONEDUMP, STEP, or OPTION.

DPP024I

DPPTIMPS

2

The load module name must be alphameric or one of the special
characters $, #, or @. The first character must not be numeric.

DPP025I

DPPTIMPS

3

The STAEBLKs are chained in collating sequence.

r
(')

DPPTIMPS

m
2

C'I)

m

o

3:

l>
-t
m

::u
l>
r
"'U

::D

o"'U
m

:0

-f

<
o
."
CD

:s:

OS!VS1 Abend

DPPTSTAE

Input

~

TCB

~

Register 15

I

TGBRBP
TCBCMP

----------

f-

----- --+

RB

RB

J

.... 1

XRBNM

Output

Process

1

I

XRBNM

1

~.

IW

_...J

:1

If Abend Is A Step Abend Or User
Abend Then Zero Register 15 And
Return To Abend

0
RB

Search For PRB Of Abending
Module.

V
~

I
1

Return To
Abend
TCBX

LCB
J

~

TCBXCWa

l
1

wa

"l
A

~-

I
I

WalGB

LCBEPNAM

I

lCB

v

"'

>

STAEXBK

1

STAEXBK

1

1

STAEBLK

1.
STAENAME

:.

STAEBLK

I

STAENAME

l

I

~1°

3:

I

l

User
Routine

1m

Q
m

STAEBLK

I

./l

~

v

")

STAEMAX
STAEOPNO

Figure 2-28 (1 Of 2) - ST AE Exit Routine For Subtask

Return To

:D

~
o
-n

ii
3:

TCB
Suppress Dump If NOOUMP Option
Or If ONEOUMP Option And
Number Of Dumps Greater Than
One. Force Job Step Abend If
Option Is STEP.

»

"V

I
Or

~

rI
:D

....

Search For Dump Control Block
(STAEBlK) For Thil Module Name.
If Not Found Then Return To
Abend.

Z
m

en

!4m

STAEX BK

I

nm
o

RlTO
Abend

STAEBLK

STAEABNO

l

~

SCVT

~

Or

Search For User Exit
Routines For This
Module Name. If
Found Execute
User Routine.

t

STABKNXT

SCVTDCHN

I

Return To
Abend

1m

1

Search For LCB Of Abending
Module. If Not Found. Then
Return To Abend.

1

SCV·
SCVTUSRX

1m

~

...

J
lCBEPNAM

r-

LCB

I

,. l

./l

L

1
TCBCMP

I

1

Figure 2-28 (2 of 2).
Step

Extended Description

Messages and
ABEND Codes PDL Segment

1

The TCB request block chain (RB) is scanned to find the first PRB
whose load module name is not DPPTPMON. This is to identify any
routine that has been LINKed or SYNCHed to.

DPPTSTAE

2

The work queue (WQE) load control block chain (LCB) is used to locate
the entry point name of the module "given control from DPPTPMON. If it
is not a Special Real Time Operating System task, control is returned
to ABEND processing.

DPPTSTAE

3

,o
m
Z

en
m

Using the PRB module nane (if found in step 1) or the LCB entry
point nane from step 2 as the name of the ABEND module, the user
STAE exit control block (STAESBR) chain is scanned to determine if a user exit routine was specified for that module. If
so, the user exit routine, register 15 will contain zero if normal
SRTOS STAE processing is to continue zer~ if normal SRTOS is a
plus for value,if OS retry is requested and a negative four value
to by pass normal SRTOS STAE processing and OS retry.

C

3:

»
-f
m

::0

»
,'"0

4

5

::0

Using the PRB load module name (if found in step 1) or the LeB entry
point name from step 2 as the name of the ABENDing module, the STAE
control block (STAEBLK) chain is scanned to determine if any special
processing has been requested for that module. If not, control is
returned to ABEND processing.

DPPTSTAE

The option flags in the STAE control block (STAEABND) is used. to
determine the processing requested on a previous STAE command.

DPPTSTAE

o
'"0

m

::0
-f

<

o

"OJ

3:

PATCHed By IMP
As A Result Of

as

Operator Command
Input

Output

Process

Internal Work Space

Register 1
Move Input Parameters
To Internal Work Space.

P3

PATCH Probl

Examine P1 And Build Mask
Byte To Select TCBX's To
Be Affected By Command.
If Specific TCBX Name
Specified, Save It.

c:

n
m
Z

ID

(I)

m
0

L

A (P2)

L

A (P3)

Internal Work Space

Examine P2 And Build Mask
Byte To Modify Selected
TCBX's. To Change Status.

!::!
l>
-t

m
:J:J

:;
rI

Examine P3, Must Contain
Blanks Or 'PURGE'.

~

:J:J

0

~

m
:n

P1
P2
P3

-t

If Any Errors Detected,
Output Error Message
And Exit.

<

0

.."

CD
~

Return To
Caller

Figure 2-28.1 (1 Of 4) - DPPTQIMP

2-28.1 (3 Of 4)

Figure 2-28.1 (2 Of 4).
Messages and
ABEND Codes POL Segment

Step

Extended Description

I

Standard save entry conventions are observed and space is GETMAINed
for internal work space.

DPPTQIMP

2

PI can contain
QPnn
ALLQP
ALLQH
ALL
-

DPPTQIMP

name
3

P2 can contain
SEQ
NONSEQ HOLD
REL
NOPATCH
PATCH
STATUS
XREF

4

5

any of the following:
one specific queue processor to be affected
all queue processors to be affected
all queue holders to be affected
all queue processors, queue hclders and independent
tasks to be affected
- one specific task or queue holder to be affected

-

r

n

m
Z

en
m

o

any of the following:
set selected TCBX(s) to sequential state
set selected TCBX(s) to non sequential state
do not allow work to be started from work queue of
this TCBX
release hold state
do not accept PATCHes to selected TCBXs
accept PATCHes to selected TCBXs
report status of above conditions without change
report status as above plus connections between queue
holders and queue processors.

P3 can be omitted or contain the characters 'PURGE'.
thing else will be an error condition.

DPPTQIMP

m

:XJ

'j;
r
-0

:XJ

o
-0

m

:xJ

-t

<

Any-

Any errors detected processing PI, P2, or P3 will cause the remaining
processing to be bypassed. The parameter that is in error is inserted into the message.

3:

»
-t

DPPTQIMP

o."
OJ

3:
DPP8641

DPPTQIMP

2-28.1 (1 Of 4)
Input

Process

Output
Internal Work Space

Loop Through TCBX Chain
And Modify Selected TCBX's
And Save Data From Each
For Message.
Int~rnal

Message
Data

Work Space

r("')

Loop Through Message Data That
Was Saved.
P3

If 'PURGE' Was Specified Purge
Work For Selected TCBX's.

Message

Output Status Messages For

Data

Selected TCBX's.

Messages
862 And 863

m
Z
tn
m
C

3:

»
~

m

:D

;

rI

"V

:D

o
"V

m
:D
~

-<

o'"T1

m

s:

Return To Caller

Figure 2-28.1 (3 Of 4) - DPPTQIMP

Figure 2-28.1 (4 Of 4).

Step

Extended Description

I

All TCBXs are examined to determine if they are to be affected, based
on the mask byte and/or name. Those selected are modified if requested and a message data block in the internal work space built for
each selected TCBX.

2

The data collected in the message data block(s) is formatted into
message DPP862I. If XREF was specified, message DPP863I is output
one or more times for each selected queue holder and queue processor.
It contains the names of the TCBX(s) that are connected to the selected TCBX.

Messages and
ABEND Codes PDL Segment

DPPXQIMP

DPP8621
DPP863I

DPPTQIMP

r(")

m
2
en
m

o

~

»
-t
m

:D

»
r-

LICENSED MATERIAL - PROPERTY OF IBM

Time Management
The Special Real Time Operating System time management services fall into
two major categories. First, the Special Real Time Operating System time
and date are maintained independently of the OS/VSl time and date.
Second, the capability of issuing PATCHes on a cyclic-time interval is
provided through the PTlME macro call. This is accomplished by two subtasks created during initialization by DPPITIMI and the PTIME SVC,
DPPCTSVC. The time update routine, DPPCTlME, is responsible for updating
the time and date in the Special Real Time Operating System data base
array, DPPCTIMA, and for posting the PTIM monitor routine, DPPCPTIM,
whenever one or more PATCHes are to be issued.
The user communicates with the time management routine through a PTlME
macro call. This is shown in Figure 2-29.
At initialization, or at midnight, or whenever it is determined that the
time maintained by the Special Real ~ime Operating System is not correct, a
time management routine,DPPCALCF, is called to calculate a new correction
factor to be added to the time-of-day clock value to obtain the corrected
time. Another routine, DPPCUPCF. is called to update the correction factor.
Serial use of the array, and this PTQE chain by the time management
routines is via the use of LOCK requests specifying the resource
name 'TIME'.

PTIME

...

....

I
I
I

I

I

I
I
I
I
I

Figure 2-29.

2-84

Data Areas
DPPCTIMA

SVC Routine

User Program

..

...-

14----

C
.A.

Array

<"

Time
Update
Routine

DPPCTSVC

.....:>

Tasks
DPPCTIME

PTOE

--- ......
'I

Control Block
.A.

....r

~

Post
.,DPPCPTI M

K===~
,..

--

POST

Time Management-User Program Relationship

--..

--

PTIME
Monitor
Routine

Special Real Time Operating System Time MlNgemlnt

Monitor Routines

1

DPPITIMITime Initialization
Routine

Supervisor Call Routine

I

DPPCTSVC PrIME SVC

Time Alteqtjon
Routines

OPPCALCF Calculate Correction

2-341

F.:tor
2-31

I

2·32

I

I
2-35

I

fI)

Factor
2-40

J
2-36

r-

n
m
Z
m

DPPCUPCF Update Correction

OPCTSVC2ADD Option

DPPCPrIM PriME Monitor Routine

2·33

2-39

OPCTSVCl RET Option

DPPCTIME Time Update Routine

J

I
C

3:

~

m

I

::0

5>

DPCTSVC3 MOD Option

2-37

I

rI

-V

::0
DPCTSVCA
DEL Option
2-38

t

I

~
:u

m

~

o-n

ii
~

Figure 2-30 (1 of 2) Special Real Time Operating System Time Management Overview

N

00
0')

DPPITIMI

LINK From OPPINIT Figure 2-9 (9 Of 12)
Input

~

DPPCTIMA

fIT]
1-_ _ _ _ _-1-_ _ _ _-1-.1"--.
....,
./
...

Output

P-.

..

Locate And Initialize Time Array
(DPPCTIMA) If Unable, ABEND
Jobstep With User Code:
'001' -Invalid TCBX
'002' - Invalid SCVT or XCVT
'003' - DPPCTIMA Not Defined

SCVT

>

(r

;J

rnCalculate Time
Correction Factor
If Time Of Day Cloc~
Not Operational
ABENDJobstep With
User Code '003'

...

:;CVTTIME

r-

DP?CTIMA
TIMEECB
TIM~LOCK

IIMt:I"KIY
IIMt:~Ht:U

TIMEUPD

'-DPPCA.LCJ:
~

LINK

•

",.

Calculate t ' •
Factor 2-39

..,

1m Update Time

Correction Factor
In DPPCTIMA, Set
Time and Date

==>.

TIMEHS
TIMETOD
IIMETOAY
TIMEEBC
IIMt:I:SUAY

(;
m
Z

en

m
C

s:
»
-t

m
::tJ

~

rI

"'0

:0

~

..

LINK

",.

.....

DPPCUDCI:
Update Correction
Factor 2-40

~
m

:IJ

-t

-<

0

rm
Establish PTIME
Monitor Task

.

ATTACH

.

[[!]
Establish Time
Update Task

ATTACH

.....

Return To OPPINIT

Figure 2·31 (1 of 2) Time Management Initialization· DPPITIMI

..

DPPCPTIM

"

OJ

PTIME Monitor
Task 2-33

urn-IIMt:
Time Update
Task 2-32

s:

Figure 2-31 (2 of 2).
Step

Extended Description

Messages and
ABEND Codes PDL Segment

I

A GETARRAY macro call is used to obtain the address of the time array,
DPPCTlMA. This address is stored into the SCVT.

USER I
USER 2
USER 4

DPPITIMI

2

Module DPPCALCF is entered via a LINK SVC to calculate a time correction factor. The condition code is tested after a "store clock"
instruction to determine if the TOD clock is operational.

USER 3

DPPITIMI

r
n
m
2
m
0

3

Module DPPCUPCF is entered via a LINK SVC to update the time correction factor and set the current time in the time array.

DPPITIMI

CIJ

4

Module DPPCPTIM is attached to create the PTIME monitor task.

DPPITIMI

s:
»
-f

5

Module DPPCTIME is attached to create the time update task.

DPPITIMI

:D

m

»
r
-0

:D

0

-0

m

:D
-f

-<

0
-n
to

s:

DPPCTIME

Input

SCVT
SCVTTIME

r

o

m

oPPCTIMA
TIMECFAC
TlMEINTl

}---

-r
I
I
L

DPPCTIMA

C

s:

~

mUpdate Time

In oaU Base
Array oPPCTIMA

mitError,
There Has Been A Time·
Recalculate Correctio

m

-»

:%J

~

-

-

-

r
I

-0

Factor

:0

1
•••~
.....

Update Correction
Factor
2-39

If Tnere Has Been A Time
Error Or If Time Exceeds
24 Hours, Update Time
Correction Factor

o-0

m

:D
-4

-<

m

~ -

LINK

@]
POST oPf'CPTIM (EeS Is
TIMEECB In DPPCTIMA)
If There Are PTOE's

Note: This Routine Will Not
Complete. It Is In An
Infinite Loop.

Figure 2·32 (1 Of 2) • Time Management Time Update Routine

Z
en
m

f':\
\J

-

-

Update Correction
Factor
2-40

o-n

Figure 2-32 (2 of 2).

Step

1

,.-

2

3

4

Messages and

Extended Description

A STlMER WAIT
all processing
of the program
ed in the time

ABEND Codes PDL Segment

is issued specifying the SYSGENed time interval. After
has been completed, DPPCTlME branches back to the top
and reissues the STlMER. The time interval is containarray, DPPCTIMA, which was defined during SYSG~N_.

DPPCTIME

DPPCTIME

The OS/VSl time-of-day c1ock-varue-and the time correction value are
used to calculate the current time of day.

r

If the Special Real Time Operating System time is less than or greater
than the expected time by a predefined tolerance value, DPPCTIME
links to DPPCALCF to recalculate the correction factor. Message 38 is
issued to inform the user of this condition.
If the Special Real Time Operating Sys tern time is greater than 24 hours
a 24-hour value is subtracted from the correction value, and DPPCTlME
- links to DPPCUPCF to update the Special Real Time Operating System
time array DPPCTIMA with the new correction factor, time, and date.

t

DPP0381

DPCTIME2

The TIMEECB ECB is posted. Module DPPCPTIM WAITs on this ECB.
posted t DPPCPTIM processes all PTQEs in the time interval.

When

m
Z

(I)

m

C

~

DPCTIMEI

l>
-f
m
::JJ

l>
r
~

If the Special Real Time Operating System time was found to be in
error in step 3, DPPCTIME LINKs to DPPCUPCF to update the Special
Real Time Operating System time array with the new correction factor.
time, and date.
5

o

::JJ

o

~

m

:D
-f

DPPCTIME

-<
o

"

DPPCPTIM

ATTACH From DPPITIMI Figure 2-31 (1 Of 2)
Process

Input

Output

SCVT
A

SCVTTOET
SCVTTIME

Establish A Loop To Be Activated
By A POST From Either DPPCTSVC
Or DPPCTIME.

eou •
WAIT ECBLlST

S

B

A

SCVT
DPPCTIMA

--.--

TIMEECB2

I

PTOE

I
I

r-

n
m

If TIMEECB2 Has Been POSTed By
DPPCTSVC, Process All PTOe's
Marked To Be Deleted (j.e., Remove
The PTOe From The PTOe

.1

I

o

3:

I

~

I

L __________ L __ _

Z
m

(I)
PToe

I
I

m

:xJ

---'

»

rI

SCVT
SCVTTOET
SCVTTIME

""0

:xJ

DPPCTIMA

--.--

TIMEECB

I
I

PToe

SCVT
If TIMEECB Has Been POSTed By
DPPCTIME, PrOCl$SAIf PTOE's That
Have expired During This Time
Interval BV PATCHing The Specified
User Routine.

:xJ

~

o."

I

I

CD

I

3:

I
1

L __________ ...lI _ _ _

Q
m

I

_--1

PATCH

Note: This Rout.ine Will
Not Complete_ It Is In
An Infinite Loop.

Figure 2-33 (1 Of 2) - Time Management PTIME Monitor Routine

User Routine

\9
A

Figure 2-33 (2 of 2).
, - - - . . - - - r - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - , - - - ---------,-------,
Messages and
Step
Extended Description
ABEND Codes POL Segment
I

DPPCPTIM waits on an ECBLIST (TIMEECB & TIMEECB2). After all processing has been completed, DPPCPTIM branches back to the top of the
program and reissues the WAIT.

DPPCPTIM

2

Bit 7 of the PTQEFLGI is used to determine if the PTQE is to be
deleted. A DPATCH is issued if the user had requested it. The PATCH
ECB is posted with an X'4F' if the user had supplied an ECB. The
problem parameter list (if any) is then freed. The PTQE is removed
from the PTQE chain and the CBGET core is freed.

DPPCPTIM

3

All PTQEs with a time of next PATCH value (PTQETIME) less than the
current Special Real Time Operating System time plus the SYSGENed time
interval are processed. That is, a PATCH is issued specifying the
TASK as defined in the PTIME macro. If this is the last PATCH
requested or if the PATCH return code is greater than 8, a DPATCH is
issued if the user had requested it. The PATCH ECB is posted with an
X'4F' if the user had supplied an ECB. The problem parameter list
(if any) is then freed. The PTQE is removed from the PTQE chain and
the CBGET core is freed. If the PATCH return code is greater than 8,
an error message is issued.

r-

n

m

Z

en
m
C

DPP06II

DPPCPTIM

3:

»
....
m

:J)

»

r-

."

:IJ

o
"V
m

:J)

....
<

o-n
OJ

~

N

-

cO

DPPCTSVC

Input

PTIME SVC
Macro Call

Output

Reg 0
Reg 0

DPCTSVC1

ill
If 'Ret' Option,
Then Calculate
Current Time

Option Flags:
0= Ret
4 ~ Add
8=Mod
12 z Del

.LCAl..L ...

"""

...

":.>

'Ret' Option
Routine 2·35

Current TIme

~

r

'--~

" ')

r-rv"

...

Reg 1

n

A(OPPCTIMA)

en

m
Z

m

0

Reg 1
A(PTIMEL)
If Not 'Ret'
Option

3:

rn

OPCTSVC2

If 'Add' Option,
Then Build PTOE

l..&
~

CALL.

.

'Add' Option
Routine 2-36

@]
If 'MO~' Option,
Then Modify
Existing PIOE

mIf 'DEL' Option,
Then Delete
Existing PTOE

CALL ....

"""

.

'Mod'Option
Routine 2·37

~

SCVT

r-~

m

::0

t:,

PTQENEXT

Ut"\,;I:SVIA

l>
r

SCvnOET

I

v?-

"V

PIOE

L

...

"V

m

::0

-t

-<

0

.. CALL ...

..

::0

0

'Del' Option
Routine 2·38

-3:
."

aJ

Reg 15

Set Return Code In r------......L-----'-----r-...""'Register 15
"./

Retum To Caller

F!9Ure 2-34 (1 Of 2) - Time Mangement PTIME SVC

!Return Code
o = Successful
4 = Invalid Interval
8 = PTOE Not Found
12= Task Or EP Name Invalid
16= No CBGET Core

Figure 2-34 (2 of 2).

Step

Extended Description

Messages and
PDL Segment
ABEND Codes

I

Call subroutine DPCTSVci to calculate current time.

DPPCTSVC

2

Call subroutine DPCTSVC2 to build a new PTQE.

DPPCTSVC

3

Call subroutine DPCTSVC3 to modify an existing PTQE.

DPPCTSVC

4

Call subroutine DPCTSVC4 to delete an existing PTQE.

DPPCTSVC

,...
n

m
2

en
m
C

3:
l>

-t

m

::D

l>
,...
~

::D

o
~

m

::D

-t

-<

o."
OJ

3:

DPCTSVC1

Call From DPPCTSVC
(Fi!JJre 2-34)

npu

Output

Process

~

Req 0

Current Time
DPPCTIMA

TIMECFAC
TIMEJDAY

m

}

....
v

>

Calculate Current
Time

r-

n
m

';>

Z

v

Reg 1

en
m
C

Address Of
DPPCTIMA

3:

~

m
::1J

»
rI
."

::1J

~
m

::0

-t

<

o

-n

F19ure 235
- (1 Of 2) - Time Management RET " Option
II

Return To Caller

Figure 2-35 (2 of 2).
Step

Extended Description

1

On entry to DPPCTSVC, general purpose register 1 contains 0 to
indicate a RET PTIME option request. The Special Real Time Operation
System correction factor is subtracted from the OS TOD clock value
to obtain the current Special Real Time Operation System time.

Messages and
POL Segment
ABEND Codes

DPCTSVCl

r-

n

m
2

(I)

m

o

3:.

»
-t

m

::IJ

»

r-

"
o
'"0
:J:J

m

::IJ

-t

-<
o
-n

g,

3:

Call From OPPCTSVC (Figure 2-34)
Process

Output

PTQE

PTQETIME
PTQEINVL
PTQECNT
PTQEFLGl
PTQEFLG2
PTQETASK
PTQEPREF
PTQEEP
PTQEFLAG
PTQEQL
PTQEPRTY
PTQEECB
PTQEFREL
PTQEFREA
PTQETCBX
PTQEPRBL
PTQEQRGS

t--.------

~ lill
~--L-..J':>i
....---,--........./

Obtain CBGET Storage And
Initialize PTQE

PTIMEL
PTIMSFLG
PTIMSTRT
PTIMIFLG
PTIMINTL
PTIMEFLG
PTIMSTOP
PTIMPTCH
PTIMPARM

v

SUPL

r-

o

m
Z

en

m

C

3:

~

m
:D

»
r-

SUPTASK
SUPEP
SUPPRTIN
SUPFLAG

I

-a

Add The PTQE To PTQE Chain

Z

PROBL

PROBID

:D

o
-a

SCVT

I

PTQENEXT

SCVTIQET

m·

::D
~

r

I

1
~

New PTQE
Return
PTQEID
Reg 1
PTQEID

Figure 2-36 (1 Of 2) - Time Management "ADD" Option

Retum To Caller

-<

PTQE

1

o
."

Figure 2-36 (2 of 2).
Step

1

Extended Description

On entry to DPPCTSVC, general purpose register 0 contains 4 to
indicate an ADD PTIME option request, and register 1 contains the
address of the PTIME input parameter list, PTIMEL.

Messages and PD L Segment
ABEND Codes

DPCTSVC2

If the PROBL length is less than 8, it is saved in the PTQE.
r-

The SYSGENed time interval is the minimum acceptable value for the
start, stop, or interval times. The user is informed of this condition through a return code in register 15. (See Figure 2-34.) If
neither a stop time nor a count value is specified, the PTIME is
assumed to be infinite.

(")

m
Z
en
m
C
~

:t>

2

3.

The newly created PTQE is added to a
call. This PTQE chain is ordered in
the value in the PTQETIME field. If
then the storage address of the PTQE

chain of PTQEs via a CHAIN macro
ascending sequence according to
a PTQE ID was not specified,
is used for the PTQE ID.

The PTQE ID is returned to the caller in register 1.

DPCTSVC2

-f
m
:IJ

:t>

r-

Call From DPPCTSVC
(Figure 2-34)

DPCTSVC3
Input

Output

Process

~

SCVT

SCVTTIME
SCVTTOET

I

....

PTOE

•

PTOENEXT
PTOETASK
PTOEEP
..

y

PTOE

Locate The Requested

r-

nm

And Remove From
""" PTOE
PTOE Chain

PTOENEXT
PTOETASK
PTOEEP

-

PTOE

m

...
...

~

~ Update the PTOE

Z

en

rI

....

K
'"

m
C

PTOE

~

3:
~
-t

I" ut: 1M

PTOEINVl
PTOECNT

m

PTQEFLG1
PTIMEL
PTIMSFLG
PTIMSTRT
PTIMIFLG
PTIMINTL
PTIMEFLG
PTIMSTOP
PTIMPTCH
PTIMPARM

:D

iUt:I'AHM

PTOEFLG2

~

I'IUt:I"I1t:t

r
I

PTQEFLAG

-g

Ut

I~"

PTQEEP

J1-

SUPL
SUPTASK
SUPRTYN
SUPFLAG

l:J

PTQEQL

o
-g

I"IUt:I'HIY

m

PTQEECB
PROBL

I

PROBIO

~

lucrrH:L.

I

ucr- II:I-'<

o
."

PTnS:PRRI

K....

IT]

<

I" Ut:I\';!:iJl.

..

_

IUt:

,,~

Replace The PTOE
On The PTOE

.JI'

Chain

SCVT

"')I

I

SCVTTOET

r .~
I

Figure 2-31 (1 Of 2) - Time Management "MOD" Option

Return To Caller

PTQE
PTQENEXT
PTQE

I
I

Figure 2-37 (2 of 2).
Step

I

Extended Description

On entry to DPPCTSVC, general purpose register a contains 8 to
indicate a MOD PTIME option request, and register I contains the
address of the PTIME input parameter list PTIMEL.

Messages and
ABEND Codes POL Segment

DPCTSVC3

The PTQE chain is searched in order to locate the correct PTQE (or
PTQEs). Either the task name and/or entry point must have been
specified in the PTIME maeyo. All PTQEs containing the specified task
name, and/or entry point name, and/or ID are modified. If a PTQEID
is not specified. If a PTQEID is supplied then only that PTQE is
modified.

DPCTSVC3

o

2

The PTQEs are rebuilt from this information contained in the PTIMEL.

DPCTSVC3

3

The update PTQEs are added to a chain of PTQEs via a CHAIN macro call.

l>
-t
m

r-

n

m
2

(I)

m
3:

:D

l>
r
."

::D

o
."

m

:D
-t

<
o
'TI
CD

3:

-oo
~

CALL From DPPCTSVC

DPCTSVC4

(Figure 2-34)

Input

Output

~
SCVT

SCVT

...

SCVTTIME
SCVTTOET

1"

PTOE

PTOENEXT
PTOETASK
PTOEEP

1m

..")

Locate Requested
And Set A
Delete Flag In Each

.. ':> PTCE{s)

/r

'(

PTOE

(;

m

PTOE

~

PTOENEXT
PTOETASK
PTOEEP

.~

DPPCTIMA

...
TIMEECB2

\

rm
">

PTOENEXT
PTOEFLG1

DPPCTIMA

~

>
.

POST DPPCPTIM

,...

SCVTTIME
SCVTTOET

TIMEECB2

PTOE

V

PTOENEXT
PTOEFLG1

Z

en
m
C

s:
»-t

m
:D

»
,...
I
"1:J

:D

o"1:J

m
:D

-t

-<
o'TI
a:J

3:

Fi 9ure 2-38 (1 Of 2) • Time Mana 9ement

Return To Caller

Figure 2-38 (2 of 2).
Step

1

Extended Description

On entry to DPPCTSVC, general purpose register 0 contains 12 to
indicate a DEL PTIME option request, and register 1 contains the
address of the PTIME input parameter list PTIMEL.

Messages and
ABEND Codes PDL Segment

DPCTSVC4

The PTQE chain is searched in order to locate the correct PTQE (or
PTQEs). Either the task name and/or entry point must have been
specified in the PTIME macro. All PTQEs containing the specified
task name, and/or entry point name, and/or ID are modified (i.e., bit
7 of the PTQEFLGI is turned on to indicate that this PTQE is to be
deleted), if a PTQE IO is not specified. IF a PTQE IO is supplied
then only that PTQE is modified.

r-

n

m
Z

en

m

o
OPCTSVC4

2

The TIMEECB ECB is posted. ~lodu1e OPPCPTIM waits on this ECB. When
posted, OPPCPTIM removes all PTQEs with bit 7 of the PTQEFLG1 set to
one.

3:

»
-t

m

:0

»'
ro"

:0

"m

:0
-f

-<
o

"

DPPCALCF

LINK From
DPPITIMI (Figure 2·31) or

_------~~~-------D-PPCTIME (Figure

Output

OJ
Calculate External
Time.

r-

r;

m
Z

(I)

m

rn

c

Calculate SY$tcm
Real Time.

3:

»
-t
m

:D

»
r

rn
Calculate
Correction Factor.

I
."

::D

0
."
m
:D

-t

<

0
-n
OJ

3:

Return To Caller

Figure 2-39 (1 Of 2) - Time Management· Calculate Correction Factor

Figure 2-39 (2 of 2).
Step

1

Extended Description

Register 1 contains the address of a 3-word parameter area. The time
and date obtained from the external time source is stored in CALTIME
and CALDATE, respectively. The time is binary in 10 millisecond units.
The date is a Julian date of the form "OOYYDDDF" where YY is the last
two digits of the year and DDD is the day of the year.
NOTE:

2

Messages and
ABEND Codes POL Segment

DPCALCFl

r-

The default external time source is the standard as time
routine. Segment DPCALCFl may be replaced by a user written
interface program to support another time source.

C')

m
en
m
2

DPPCALCF

A PTIME macro call with the RET option is used to obtain the current
time.

C

3:

»
-f

m

3

The time is subtracted from the time provided by the external time
source to provide an algebraic sum to be added to the current
correction factor.

DPPCALCF

JJ

»
r-0

JJ

o-0

m

:D
-f

-<
o"T1

I

DPPCUPCF

LINK From DPPITIMI (Figure 2-31)
Or DPPCTIME (Figure 2-32)

nput

process

~

Output

DPPCTIMA
Parameter Area

...

. ") OJUpdate Time
. Correction

A(XCVTl

)

...

r

n
m

TIMECFAL;

Z
m

en
CALDSECT

1mUpdate
Time Of Day

C

3:

.-'l

K....

. "')

»-f

OPPCl "IMA

m

:D

j;

SCVT

/~

r
I

OPPCTIMA

rn

~L;VIIIME

Update
Date

SCVllUt:1

....
~

"'0
OPPCTIMA

....
"""

:D

o"U

TIMEJDAY

m

IIMt:~UAY

:D
-f

TIMEMDAY
PTOE
t"IUt:Nt:)1.I

V~

-<
o
-n

PTOE
t'lUt:Nt:XI

... ill
")

.. -...,

;::

Update PTOEs

~

.. :>

Figure 2-40 (1 Of 2) - Time Management - Update Correction Factor Routine

SL;VTlUt:T

V~

PTOE

t"IUt:Nt:XT

I'TOENEXI

PTOEINVL

PTOEINVL

PTOECNT

PTOECNT

t"IUt:IIMt:

Return To

SCVT

Figure 2-40 (2 of 2).
Step

Extended Description

Messages and
ABEND Codes POL Segment

1

Register 1 contains the address of a 3-word parameter area. The
CALTIME field contains an algebraic sum to be added to the current
correction factor.

DPPCUPCF
DPCUPCFl

2

The current time is updated based on the new correction factor.

DPCUPCF2

3

The date stored in the CALDATE field is stored into the time array
as the current date.

DPCUPCF3

4

If the time is adjusted backward, then the time and count values in
the PTQEs are reset (back to the original start time if necessary).
If the time is adjusted forward, then it is assumed that the intervening time intervals were skipped.

r-

n

m

Z

DPP039I

DPCUPCF4

en

m

o

3:

»-I

m

:D

NOTE:

Message 39 is issued to inform the user that the time correction factor has been updated.

»

r~

:J:J

o

~

m

:D
-I

<

o."
to

3:

LICENSED MATERIAL-PROPERTY OF IBM

Data Base Management
The Special Real Time Operating System data base is designed to fulfill the
needs of data storage and access of a realtime operating sys tem. The
Special Real Time Operating System data base subroutines provide the user
with an interface to the information contained in the data base. Through
the use of these subroutines, datal may be retrieved from or replaced in the
data base. In addition, sections of the data base may be copied to a direct
access device to provide a historical log.
During a normal start, i.e., when the job is initially started through
standard OS/VS Job Control statements with the EXEC card specifying
PGM=DPPINIT, the data base initialization programs will read in the initial
data for all VS resident arrays that specified "INIT=YES" on the ARRAY
macro in the offline utility phase. Those VS arrays for which "INIT=YES"
was not specified have VS storage space allocated, but no data is moved
into the space.
During a refresh start, i.e. t when the job is reinitialized from a restart
data set, or during a normal start when the SYSINIT input stream does not
contain a "DBREF NO" control statement, the data base initialization program will refresh all VS resident arrays that specified "REINIT=YES"
and that requested logging in the offline utility phase with the last
logged copy 'of that array. The log arrays are initialized to resume logging with the last logged copy of each loggable VS resident array.
The Data Base Initialization program, DPPIDBAS, is responsible for the
initial load of the VS resident data base, building the data base control
blocks, and loading the data base subroutines (DPPDBLOK (GETBLOCK/PUTBLOCK),
DPPDITEM (GETITEM/PUTITEM), and DPPDARAY (GETARRAY /PUTARRAY») • These subroutines are independent with little or no communication with each ocher
and provide the user interface with the data contained in the data base
as shown in Figure 2-41.
The Data Base Logging Initialization program, DPPILOGN, is responsible for
loading the logging subroutines (DPPDGETL (GETLOG), DPPDPUTL (PUTLOG), and
npPDUMPL (DUMPLOG), initiating time-driven logging (DPPDFREQ), and re~
freshing user-specified VS resident arrays (DPPDUPDL). The three logging
subroutines are also independent of each other but use GETBLOCK, PUTBLOCK,
etc. to actually retrieve the requested data as shown in Figure 2-42.
Data base is the only functional area that requires special routines used
primarily for communications between partitions in a two-partition environment. Since the OS/VSl I/O control blocks used to read snd write data
from the DA resident data base exist only in the MASTER partition, any
data base request must be executed by a task in the MASTER partition.
This is accomplished by a SLAVE partition interface routine, DPPDSUB2,
which receives control in the SLAVE partition as the result of a user
macro call (i.e., GET BLOCK , PUTLOG, etc.) DPPDSUB2 PATCHes a MASTER partition interface routine, DPPDBSIF, in the MASTER partition. DPPDBSIF then
b~anches to the appropriate subroutine (i.e., DPPDBLOK, DPPDPUTL, etc.) ~to
perform the requested service as shown in Figure 2-43.

2·106

LICENSED MATERIAL-PROPERTY OF IBM
Data Base
Subroutines

User Program

I

I
1.-

I

DPPDITEM

1-

I

I

_1

-I

-I
~I

I

I

GETITEM
PUTITEM

1-

_I
-.

Figure 2-41.

-

..

-- I -1

DPPDGETL

•

"-

-

VS
Resident
Blocked
Array

or
~

---

-1
I

.

DPPDPUTL

I

---- ~

I
I

Figure 2-42.

I

-.
I

I

•

I
I

I

I

VS
Resident
Non Blocked
Array

--

I
1

Data Base
Subroutine

....-

DPPDUMPL

-- I I

Data Base

I
DPPDBLOK
(GETBLOCK)

DPPDBLOK
(PUTBLOCK)

I

I ..

J

DUMPLOG

DA
Array

I

Data Base Logging
Subroutine

I

---

-

Data Base Subroutines

I

PUT LOG

Vs
Resident
Array

<: - ::::-

-- II

-.

User Program

GET LOG

--

I

DPPDARAY

Data Base

-'

---.

I

-I

I
1__

_

'-

I
_I

I

I1

Composite
Items
Data Set

I

DPPDBLOK

I-

GETARRAY
PUTARRAY

--

~

I

I
GETBLOCK
PUTBLOCK

I<: -

DPPDBLOK
(GETBLOCK)

J_

---

---

I
I __

~

-

DA
Array

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

-

-"""

l-

or

I. ..

G

-- I

I

~

I -

1-

I

. Array

Data Base Logging Subroutines

2-107

LICENSED MATERIAL-PROPERTY OF IBM
User Routine

Slave Partition

~

DPPDSUB2

I
I
PATCH __
•

I

Data Base
Macro Call
(i.e.,
GETBLOCK,
PUTLOG,
etc.)

Data Base
Subroutine

Master Partition

--

DPPDBSIF

---

Data Base
Subroutine
(i.e.,
DPPDBLOK, .
DPPDPUTL,
etc.)

-~
~

r--+

I

DA
Array

..........

I

or

I

--

Data Base

~

I
-.l

Array

I

I
I

~--------------~~-------------/I~~-------------------,,~-----------------------)
SLAVE

Figure 2-43.

2-108

MASTER

Data Base Two Partition Operation

Special Real Time Operating System Data Base

-n

r-

Initialization

m
Z
en
m
DPPILOGN Data Base Logging
Initialization
246

OPPOBSIF
Master Interf.c:e

i:
~

OPPOUMPL OUMPLOG Routine

OPPOUPOL -

Refresh Array

2·54
OPPOFREQ Time Driven Logging

2·55

CI

-4

rn
::D

-

:,....

-

CD

~

-.&

o

CO

Figure 2-44 . Special Real Time Operating System Data Base Overview

DPPIDBAS

o

LINK From DPPINIT

(F;,"", 2.9, 9"Of~

Input

Output

Process

SCVT
If Master Partition Initialization
Data Base Initialization

m

...
...

"

m

...

SCVTALOC

Verify Control Blocks
If Invalid, Issue ABEND
Read Data Base Control
Blocks Into Storage
If Invalid Issue ABEND

~

DBALTPRI

nR41 T?Nn

...

-

V

DBALTSEC

nDAITlra

rom

DBALTDD

{
......... DBLOGCB

DBDADD

...

..

o

)

3:

SCVT

Irn

Build Page Boundary Table

Z

en
m

....

5CVJAt'tsl

v

SCVTALOC

")

...

DBALTPRI
DBALT2ND

DBPBT

V1(
'

UDI"D

NAM

DBPBTALT

-'=

DBALTSEC

V

DBALTPaT

:r>

-I

m

::IJ
~

rI
"'0

:lJ
1'-.._/

r-..._ ........

...

DBINIT

v

1---_......

)

rrn

Read In Initial Data For
VS Resident Arrays And
OPEN DA Resident Arrays!

~'~I~~~~lid DCB,

-

.....

)

-Vj

(

...

...
LOAD The Data Base Access
Routines, DPPDBLOK,
DPPDITEM, And oPPDARA Y
Else, If Slave Partition Initialization LOAD The Slave Partition Interface Routine
DPPDSUB2

naAI TPDI

....

...)

·DBALTDD
DBALTDTA

:)(.;VIl>1:11

-<

o

SCVTPUTB

Ut't'UI1I:M

~
Pl

m

-I

oPPoARAY

SCVT
SCVTGETA
SCVTPUTA

o
"'0

::D

DBooDCB

~VI\.1l:lts

Figure 2-45 (1 Of 2) - Data Base Initialization

V

DBoAoo

SCVTPUTI

Return To

VS Array

n••n.,n.

"

CJl
~

Figure 2-45 (2 Of 2)
Step

Extended Description

Messages and

ABEND Codes PDL Segment

1

If there is an invalid XCVT, SCVT, or TCBX, job step.

USER 10
USER 11

2

The partitioned data set referenced through the DBINIT DD card contains the four primary data base control blocks (the Primary Array
Locator Table, the Secondary Array Locator Table, the Data Base
Logging Control Block, and the Data Base DD name table). These were
built by the offline data base utility program DPPXDBIN. If there is
not an @INIT member, ABEND job step. If unable to locate log array,
ABEND job step.

USER 13
USER 54

DPPIDBAS
DPIDBASI
r
(')

m
Z
en
m
C

3:

NOTE:
3

l>
-of
m

The DBALTPRI and DBALTSEC are read into supervisor storage,
and DBLOGCB and DBDADD are read into user storage.

:D

The DBPBT contains the name of the last array in each page of the
DBALTSEC. This will allow the data access routines to locate the
requested array with a minimum number of page faults to the DBALTSEC.

DPIDBAS2

l>
r
."

:D

4

The data £or VS resident arrays is read into storage from the partitioned data set referenced through the DBINIT DD card. All data sets
containing the direct access resident arrays are opened. If unable
to open, ABEND job step.

USER 12

DPIDBAS3

o
."
m

:D
-of

<

o."
O:J

3:

....~....

....

DPPILOGN
Input

LINK From DPPINIT
(FIgure 29 9 Of 12)

Process

~

Output

DPPDGETL
SCVT

XCVT
}I.~~-'~_V~

I

"I..VI;)D~

_.... CD

If It Is Pre-restart, LOAD
Logging Routines.

r

SCVTGLOG
~_V.IP~C3_

SCVTDLOG

(
~

V

'-.

nppn.JMPI

IJ

SCVT

If It Is Pre-restart, Build A
PUTLOG Array Number List
For Each Logging Frequency

~

V

.A

....
-'"

SCVT

)

r

.~VT..AhQQ

r-

DBALTPRI

/

DBALTLCB

I
...

~

..>
[1J

DBLOGCB
DBLGNUM
nRIr.J:ROO
DBLGFR01
nRI r.~Rn?
nRI r.~RO~

A-

If It Is Pre-restart, Initialize
First Log Copy Of Each Log
Array

SCVT

o
m
Z

en

m
C
3:
~

-i

m
::D
~

rI

"
o

l:J
SCVTLOGt
SCVTLOG2
SCVTLOG3

J.

..

~

rrn

lf It .Is Pre-restart, Initiate
Time Driven Logging For Each
Non-Zero Logging Frequency

V

PTIME

..A

~

"::D

m
-i

-<

o."

[i] If

It Is A Restart Or If
REFRESH Is Requested,
Refresh The Data Base And
Resume Logging With The
Last Log Copy For Each Array
OPPDUPDl

~ LINK ..
~

.,

Return To Caner

Figure 2-46 (1 Of 2) - Logging Initialization

Refresh Routine

247

Figure 2-46 (2 of 2).
Step

Extended Description

Messages and
ABEND Codes POL Segment

1

Logging routines DPPDGETL, DPPDPUTL, and DPPDUMPL are loaded into
storage and their addresses are stored in the SCVT.

DPPILOGN

2

A PUTLOG macro call is issued for each log frequency (0, 1, 2, and 3)
using the array number list as input.

DPPILOGN

3

A PTIME macro call is issued for log frequencies 1, 2, and 3 specifying TASK and EP name DPPDFREQ if the SYSGENed time interval for that
particular log frequency is nonzero. Log frequency 0 is used for
arrays that are to be logged on a demand basis only.

DPPILOGN

If an array has been defined as refreshable during the data base
offline compilation, it will be refreshed from the last logged copy
of that array following a restart or if data base refresh had been
specified through the use of a DBREF statement in the SYSINIT input
stream during a normal start. In addition, logging will be resumed
with last logged copy for all logging arrays.

DPPILOGN

4

,..
o

m

Z

(I)

m
C

3:

l>
~
m

:D

,..

l>

-0

:D

o-0

m

:D
~

<

o-n
OJ

3:

,
......w

~

DPPDUPOL

LINK F,.m DPPILOGN IF...,. ~

Input

Output

~

PAL T .@REFRSH

rL--ru;Ai"TnTA-1...
___-..~DA
I
"'OAI T"'T"
-=-1~~_HBaseesIClenl't,

...
----r-----r~/
...

~

r-

IITJ

Read The Refresh Array,@REFRSH,
Into Storage
L -_ _ _ _ _ _ _ _ _ _ _ _ _ _

...

... ~

I

@REFRSH
Array # I Blk #
Array #1 Blk #

~

ILld...

LID ..... I LI I ' "

~--~----,

~

GETBLOCK

DDDDBLOK

•

..

GETBLOCK/
PUTBLOCK
Routine 2-48
Array #

I

r-

o

I
I
I

Blk #

m
2
(I)
m
C
~

SCVT

DBAl TPRI - Origin

~
SCVTALOC
SCVTPBT

~

DBPBT

"

DBPBTALT

DBALTNAM

VS Resident Data Base

DBAlT2ND

CMLnEC~ri';'

~

"
...

1m

Locate The Data Address For Each
VS Resident Array To Be Refreshed
L-____________________

..

......'-.----~-----~

~--

~

..

~

l>
-t
m

:D
Array 1

l>

rI

-0

:0

o-0

DBPBTNAM

m

:0

-t

-<

~

"

IDA Res-i·dJ-e·rn-tJ---------------L--------L-.J'.....:>
...

iLog Array

I~

o
"Tl
Read The Last Log Copy Into The
VS Resident Data Bi$e

~

~

GETBLOCK

..

.

Return To Caller

Figure 2-47 (1 Of 2) - Data Base Refresh Routine

GETBlOCKI
PUTBLOCK
Routine 2-48

Figure 2-47 (2 of 2).
Step

Extended Description

Messages and
ABEND Codes PDL Segment

I

A GETARRAY macro call is used to find the size and number of blocks
in the refresh array, @REFRSH. Then a GETBLOCK macro call is used
to retrieve the array.

DPPDUPDL

2

The Page Boundary
used to calculate
number is used as
DBALTPRI contains

DPPDUPDL

Table and the Secondary Array Locator Table are
the array number for the named arrays. The array
an index into the Primary Array Locator Table. The
the address of the VS resident array.

r

nm

Z

(I)

m

3

A GETBLOCK macro call is used to read the last log copy into the VS
resident data base.

DPPDUPDL

C

s:
»
-t
m

::D

»

r

."

::D

o
."

m
::D

-t

-<

o."
\JJ

3:

DPPDBLOK

Entry Via A GETBLOCKIPUTBLOCK
Macro Call

Input

,

Output

Process

I

I
I
I
SCVT
SCVTJ

I

SCVTPBT

(
1.

~

• ~r VS Resident Ar.ray

DBAlTPRI

DBPBT

ill

Ul3rl3l NAM

DBPBTALT

Locate Array Data Area

Or TTR Address

I

~.,...---'--------lU' >~-------tV i
Array Data
..
, A r r a y Data
.........

~---_r_----- ~...

I

........

DBALTPRI
nRAIT?Nn

nRA

~

~F'(,

DBALTPBT

I
I
I

:::\

II
LOCK Data Base If
PROTECT = YES
Requested

DBALT"4A~

I
I

I

DA
Resident

f-----/ Anay
~
Array Data
Array Dau

~

, -- .----I

. . 1m

~_---JL--_ _ _-J"""")

Move (Or READ) Data
Into User Area If
GETBLOCK Request

T

1.----..-----"'-"""
...
....

~-----..._--~:.:.:._:_:.-:..:.:.-:..:.-:..:_
......
)
,...

[!J

Z

en
m
C

3:

»

-I
m

»
r-

Array Data
Array Data

I
"'0

User Data Block
User Data
User Data

n
m

:::rJ

User Data Block

'--_'--___-J"".:>

r-

Move

(Or WRITE) Data

Into Array Block!s) If
PUTBLOCK Request

"A'"'--_ _-'-_ _ _ _-L.._ _ _ _ _ _ _ _ _ _ _ _---l

K. .~.--_.,...-----,_------:;:=__=__:__;__:_;;__--.J
.
I . . . VS Resident Array

~---~-------~------~)
L-____________-r------r--,

:::rJ

o"'0
m

:::rJ

r

-I

User Data
User Data

-<

o
."
Or
UnlOCK Data Base If
PROTECT = YES
Requested

~

L-...-L-_ _ _ _ _ _ _....
,......, ~

1.-_

Return To Call..

Figure 2-48 (1 Of 2) - GETBLOCK/PUTBLOCK Routine

_ _ , . - - - - - - - - ,.......
)

User Data

~

DA
Resident
Array

Figure 2-48 (2 Of 2)
Messages and
ABEND Codes POL Segment

Step

Extended Description

1

The DBPBT and the DBALTSEC are used to calculate the array number for
the named arrays. The array number is used as an index into the
DBALTPRI and·DBALTPRI contains the address of the data for VS
resident arrays or the relative track address of the data for DA
resident arrays.

DPPDBLOK

2

If protect=YES is specified, the entire VS resident data base is
locked for VS resident arrays or one Direct Access data set is locked
for that DA resident array.

DPPDBLOK

3

Only the user specified blocks of the array are accessed or modified
on GETBLOCK and/or PUTBLOCK requests.

JPPDBLOK

r(")

m
Z
en
m
C

and

4

s:
»
-t

m

::D

»
r-

DPPDITEM

From User Via GETITEM
Or PUTITEM Macro

Input

Output

~
1m Convert Input
To
> OPtions
Internal Format

~

II
GPR 15\ Opt. FLAG

GPR

'1

r

I

I
I

Address Namesl Address

I

Internal Work Source

1m Item
If User Supplied
Names

r

r

~ypel Disp

I

- Convert Item
Names To
Array 10 And
Displacement
Specifications

-":>

r

r-

.'"....,
1\ RPT

n
m
im
C

NAMESOLV

...

...

r

3:

~

Resolve Item
Names 2-50

m

:0

r@J
GPR

Address Users Area

I
I
I

"-

.....)

»
r-

A

If User Requested
Item Specifications
-Move

K

"I

I

Specifications

."

To User's Area

~lfUser

Requested
Data Or
eConvert
Specifications
To Data
Addresses

:0
A

""

Internal Work Space

!~ User Requested
.... Data Addresses
)
...

If User Requested
~-') Data
• Move Data To
Or From
User's Area

...

I

I

Item Address

:>

User's A~ea

>

.......

K...
.A

K.

::IJ

~

.,.,o

-

::
r

... )

Return To Caller

Figure 2-49 (1 Of 2) - Access Data Base Items

Item
LEN

..

- Move Data
Addresses To
User's Area

![§j

~

I

Q
m

Data Base

I

Figure 2-49 (2 of 2).

Step

Extended Description

Messages and
ABEND Codes POL Segment

1

This program may be entered for GETITEM or PUTITEM processing. The
user may supply the name of a single item for which data is to be
processed or a list of items.

DPPDITEM

2

Program segment NAMESOLV converts item names to internal format.

DPPDITEM

3

Program segment MOVESPEC will move the specification data to the user's
area.

DPPDITEM

r(')

m

Z

4
5
6

(I)

Program segment CONVSPEC will convert the specification data to
addresses.

DPPDITEM

m

Program segment MOVEADDR will move the item addresses to the user's
area.

DPPDITEM

3:
~
-t

Program segment MOVEDATA will move the item data to the user's area
if a GETITEM is being processed or from the user's area to the data
base if a PUTITEM is being processed.

DPPDITEM

C

m

:lJ
~

r-

"'0

:lJ

0
"'0
m

:D

-t

-<

0

-n

OJ

3:

.

N

....
....
co

DPPDITEM

From OPPOITEM
(Figure 2-49)

Input

Process

~

Output

Segment
NAMESOLV
Allocate Work
"'I Space And Move
Addr~s Of
Item Names To It. ,

Jo.

rUser Supplied
List Of Item
Names

">
..-

(")

Sort Name
....
Addresses Based
I(
Upon Name
Represented

m
Z

~

Internal Work Space

en

m
C

..
'----""

Joo.

...

@lCIDS
Array

.)

Joo.

.)

---./

I[DScan each Block
Of Array OCIDS
10 Retrieve The
~ification

"'I

I

I

I I I

3:

~
m

::D

,........

»
r-

~

Dna For .Each
Item In The
List

I
."

::D

o

.

."

m

Sort Work Space
Entries Back To
Original Sequence

::D

~
o

I

I

."

@CIDS
Index Table

iii

3:

If Arty Item
Names Not
Found, Set
Return Code
To 4

Return To Caller

Figure 2-50 (1 Of 2) . Access Data Base Items (NAMESOLV)

Registe! 15

J

Figure 2-50 (2 of 2).
Step

Extended Description

1

The array named @CIDS contains the item specifications for every item
defined to the system.

2

The @CIDS index table is used to locate the block of the DA resident
array that contains the specified item name, if it exists. This
reduces the number of I/O operators required to locate this item name.

Messages and

ABEND Codes

POL Segment
•

DPPDITEM

,..

n
m
Z

en

m

C

3:

»
....
m

:a

,..»

-~

N

DPPDARAY

From User Via GETARRAY
Or PUTARRAY Macro

Input

~
>jm

User Request
Parameters
Addr Of Array Name Or
Number Or List Of Array
Names Or Numbers
RO Addr Of Area Or List Of
Address To Which Data
Is To Be Moved
R15 Byte Zero Contains Option
Code

Output

Process

Trlnslate Input OptiOFl$ To
Bit Masks

Rl

m
rrn·
~

Array Locator Tables

./

I

I

If PROT£CT .. YES And
TYPE" DATA Or PUTARRAY,
Set Data Base Lock

r-

n
m
Z

(I)

If Array Name(s) Or Number{sl
Supplied
• Resolve Name!s) Or Number(s)
To Array 10
• If TYPE" ADDR, Move Array
Address Dau To User's

m

o

3:

~
m

Area

• If TYPE .. SPEC, Move Array
Spec Data

.....
......

.....
......

:u
);

SPECMOVE
Code Segment To
Retrieve Item
Specifications
2·51 (5 of 61

rI

."

::XJ

--

Q
m
::D

If TYPE = DATA, Move Array
Data

....
..-

1m
VS Resident Data Base

~

........

~

-

Code Segment To
Move Array Data
2·51 (3 of 6)

I
USER AREA

If Array Addresses Were
Supplied, Move Array Data To
Or From User's Area

r

V"r-... ,

If Lock Was Set, Release lock

Retum To Caller

Figure 2·51 (1 01 6) - GETARRAY /PUTARRA Y Processor

o-n

MOVEOATA

...
V

~

Data To Be Moved To
Or From Data SiI$e

Figure 2-51 (2 of 6).
Messages and
ABEND Codes POL Segment

Step

Extended Description

1

The processing for GETARRAY or PUTARRAY is identical with the exception
of the direction of the data movement if TYPE=DATA.

DPPDARAY

2

The protect function disallows a user from moving data into or out of
the data base until previous users have completed their data moves.

DPPDARAY

3

The user may specify a single array name, number or address or a list
of array names, numbers or addresses. In either case, the processing
is similar with the exception that the program loops through this logic
if lists are supplied.

DPPDARAY

Array addresses may be resolved and passed to this program to bypass
name resolution on each use of a list. The addresses passed are used
as the address of the array_

DPPDARAY

4

r

o

m
Z
(I)
m

o

3:

...»
m

:IJ

»
r

DPPDARAY

From DPPDARAY
(Figure 2·51. 1 Of 6)

npu

Output

~

Primary Array
Locator Table

D----~- -,I
.....

I

I
I

Secondary Arr-v
Locator Table

0----

I

Base

A

...

.......

2
m

I

C'I)

I
I

~

--1

I
IL __

VS Retident Data

r-

n
m
o

~

m

:D
f----~

)
~v

);

1m MOVEDATA
• If Array Is D.A.
Set RETURN
CODE - 4
Or Else
• Calculate Site
And Address Of
Array

User Area

V

....

...

• Move Data To
Or From Datlt

Base

..

.;>

Data To Be Moved
To Or From Data
Base

rI

-0

::D

~
m
::u

~

o.".

Return To Caller

Figure 2-51 (3 Of 6) - GETARRAY/PUTARRAY Processor (MOVEDATA)

Figure 2-51 (4 of 6).
Step
1

Extended Description

GETARRAY and PUTARRAY processing is identical with the exception of
the direction of the movement of data if TYPE=DATA.

Messages and
POL Segment
ABEND Codes

DPPDARAY

r-

o

m

2
en
m

o

3:

)-

-4

m

:D
)-

r-

o"

:D

"m

:D

-t

<

o-n
m

3:

From OPPOARA Y
(Figure 2-51(1 Of 6})

DPPDARAY

Process

SPECMOVE

DBINIT
Data
Set

GETMAIN Storage For
Save Area

r-

n
m

Set Lock For OBI NIT
Data Set

Z

en
m

Read Item Definition
Record For Selected
Array Into User's Area

C

3:

~

Release Lock Of DBINIT
Data Set
FREEMAIN Save Area

m
::D

Repeat Of Above
For Each Item
Defined In Array

>
rI
"V

::D

~
m

::D

-t

-<
o

""

Return To Caller

Figure 2-51 (5 Of 6) - GETARRAY/PUTARRAY Processor (SPECMOVE)

Figure 2·51 (6 of 6).

Extended Description

Step

1

The DBINIT data set contains a logical record for each array which
consists of a 16-byte entry for each item defined for the array.

Messages and
POL Segment
ABEND Codes

DPPDARAY

,-'
n
m
Z

(I)

m

o

s:
»
-f
m

-

:D

»
,-

"
o

:D

"

m

::D.
-f

<

o."

,

DPPDGETL

Entry From A GETLOG
Macro Call

npu

Output

Process

~

VS DBALTPRI

DBAl TPRI - Origin

SCVT
~

DBALT2ND

SCVTALOC
SCVTPBT

DBPBT

(

~ •••• __

/~

DBALTS"C DBALTPBT

...

"'i~n

...)

m

..........

Locate The Logable Array
PAlT, Logheader, And Data
Addresses

DBALTDTA

VS R.esident ArrO!)

t".....

-v

Logheader
Data

r-

n
m

DBPBTA~n••'~~

Z

en
m

.A

,r-.,

""SCV'T
SCVTALOC

Log DB4.L TPAI

DBAlTPRI - Origin

V;

....

...

DBALTLCB

")

-v

m

...

Locate The Log Array PALT
And Logging Control Block

?
DBALTNDX

o

3:

»
-I
m

II

»
r-

A

,

no t::t'o,v

DBLGFTIM
OSLGLTIM

v

t
\. DBLOGCB - Ori, pn

lO!! DBLOGCB
DBLGCTIM

......

I
"0

::D

ill

o
"0

Search For Requested Log Copy
Bv GETBLOCK Macro Call

..

-

m

:D

..

-I

nppnRLOK

-<

o

GETBLOCKI
PUTBLOCK 248

-3:"
OJ

User Area

. ') 10

.

....
.,

Figure 2-52 (1 Of 2)· GETLOG Routine

..)

.

Read In Requested Log CoPV
Into User Area By GETBLOCK
Maao Call

...

nppnRI.OK
GETBLOCKI
PUTBLOCK 248

R_mT.~~

User Area

Figure 2-52 (2 of 2).

Messages and
ABEND Codes POL Segment

Step

Extended Description

1

The DBPBT and the DBALTSEC are used to calculate the array number for
the named arrays. The array number is used as an index into the
DBALTPRI. The DBALTPRI contains the address of the VS resident array.
The logheader precedes the array data in storage.

DPPDGETL

2

The VSarray logheader contains the array number for the associated
log array. The log array number is used as an index into the
DBALTPRI. The DBALTPRI for the loggable array contains an index into
the data base logging control block.

DPPDGETL

r-

n
m
2

en
m
C

3

4

The time fields in the DBLOGCB are used to reduce the search for the
requested log copy. GETBLOCK subroutine is used to read the 10gheader from the log copies until the correct log copy is found.

DPPDGETL

GETBLOCK subroutine is used to read the entire log copy into the user
provided area.

DPPDGETL

3:

»
-I
m

::D

»
r."

:u

o"'V

m

:u
-I

-<

o
."
OJ

3:

.r:->
w
o

DPPDPUTL

Entry From A PUT LOG
Macro Call

Input

~

~

SCVT

OutpUt

DBALT2ND

(:"~.T DML~
V
SCVTAlOC

[]

..

....

locate Array DBAL TPRI,

-v~

~ader,

...

And Data

.PBALTDTA
..

LOg~eader·

~

,

TA

Addresses

II

(

.0IIII

VS Resident Array

DBALTPRI

nRAITPAI

'\

DBALTPBT
DBALTNAM

Utst'tslI'fAM

~DBPBTALT

nm

--~R Loa Copy
Logheader

v

)

ill

Z
m

en

o

If LOGHDR Is Specified,
Issue PUTBlOCK On Number
List Built Based On User
Specified Logheade~

3:

»-t

nppnRI n ....

......

.....

USER Block List

rn
y

.)

If BLKLIST Is Specified,
Issue PUTB.LOCK On Number
List Built Based On Current
VS
And User
Supplitld Block Numbef5.

m

GETBLOCKI
PUTBLOCK 248

..... ....

J:J

»
rI
"'0

....

::D

o"'0

nppnR. n ....

......-....

Logheader
\

......

. VS Resident Array

'{

{{

....

m

GETBLOCKI
PUTBlOCK 248

..

...~

@J

DATA

Array
Data

~

k==

If Neither lOGHDR Or
BLKLIST Are Specified,
Update VS Logheader And
Log Control Block.

Issue PUTBlOK On
Number list Built Based
On Updated VS Logheader
If Last Log Copy, PATCH
User Routine (If Any)

[)PpDB ..n ....

- .....
...... ....

......

Return To

Figure 2-53 (1 Of 2) - PUTLOG Routine

VS Resident Array

DBALTPRI

LOG DBAL TPRI

n.'"'A,n /

r-

GETBLOCKI
PUTBLOCK
2-48

Ca"~

DBlHCTIM

cc:
....

DBALTDTA

"-

lOG-DBAl TPR I
-nR41TNnv

nDl-Ui'nAV
"'-Dlural ....

"

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

DBLHPTIM

OBcHPOAY
nRI-iWRI ....

DBlCB
DBLGCTIM
DBLGCDAY
nalr-rDt'"
DBlGFTlM
DSLGl:Dl'v
oa-lGI..TIM

DBLGLI>AY

=t
<

o

"

Figure 2-53 (2 of 2).
Step

Extended Description

1

The DBPBT and the DBALTSEC are used t.o calculate the array number for
the named arrays. The array number is used as an index into the
DBALTPRI. The DBALTPRI contains the address of the VS r~sident array.
The logheader precedes the array data in storage •

.

2

3

The LOGHDR option is used to replace a log copy in the log array.

Messages and
ABEND Codes POL Segment

DPPDPUTL

DPPDPUTL

The BLKLIST option is used to update blocks within the current log
copy of the Log Array.

DPPDPUTL

The logheader and Log Control Block are modified to point to the next
log copy.

DPPDPUTL

r

nm
2:

(J)

m

0

4

3:
l>

-I

m

5

Normal logging copies the current VS resident array and its log header
into the next log copy. If it is determined that wraparound will occur
with the next PUTLOG request, the user defined wraparound processor
(if any) is patched.

DPPDPUTL

::D

l>
r
~

::D

0

."

m

::D
-I

-<

0

."

OJ

3:

......

~
W

DPPDUMPl

Entry From A DUMPLOG
Macro Call

Input

()utput

p~

~

DUMPLOG Data Set

User DUMPLOG DCB

.....
)

_

OJ

...

Position DUMPLOG Data
Set For Next Output

...

...>

JFCB For OlIMPI OG

0

Or

0

r(;

m
Z

en

m

SCVT
SCVTALOC

(
.J

VI

SCVTPB~

DBPBT
... ~, ~ ' •• ~~

~~ALT

(

/

DBj\LT2~

~AmEC~~~"

/

... ill
...;>

.)

Locate Logable Array
DBALTPRI And Logheader

...

Logheader
~_AL.:rDTA

~

Data

C

s:

l>
-f
m
::JJ

>

..

;>

rI

.A

I]]
.....

locate The Log Array
DBAlTPRI And Logging
Control Block

"-...
Log DBALTPRI

-")

.

DBALTNDX

nRAI TPR I - Ori~ in

. //

VS Resident Array

VS DBALTPRI

DBALTPBT
DBAlTNAM

SCVT
SCVTALOC

DBAlTPRI- Origin

I'

Log DBLOGCB

."

DBLGCTIM

o."

Nt: r.r.RIK

DBl(JFTIM
nAI

TiLt

DBAlTL~

m

Read In Requested Logcopy
By GETBLOCK Macro Call

::JJ

m

::JJ
-I

-<

o"TI

A

K

'"

DBLOGCB- Origin
"'l1lI
~

,

..
..

CD

s:

DPPDBLOIC'
GETBLOCK/
PUT~LOCK

2-48
DUMPLOG Data Set

1m Write
This Log Copy To The
DUMPLOG Data Set

Return To Caller

Figure 2-54 (1 Of 2) - DUMPLOG Routine

,..

...'"

0

Or

0

Figure 2-54 (2 of 2).

Messages and
ABEND Codes POL Segment

Step

Extended Description

1

The user supplied DD name defines the DUMPLOG data set. This data set
is opened and positioned according to the options specified on the
DUMP LOG macro.

DPPDUMPL

2

The DBPBT and the DBALTSEC are used to calculate the array number for
named arrays. The array numbers used as an index into the DBALTPRI.
The DBALTPRI contains the address of the data for the VS resident
array, and the 10gheader immediately precedes the array data in storage.

DPPDUMPL

The VS array logheader contains the array number for the associated
log array. The log array number is used as an index into the
DBALTPRI. The DBALTPRI for the loggable array contains an index into
the data base logging control block.

DPPDUMPL

3

4

The requested log copy is read into VS storage.

5

The log copy is then written to the DUMPLOG data set using variable
blocked spanned records.

r-

o

m

Z

en
m

o

3:

»
-t
m

:lJ

»r-

"
m
"
:lJ

:lJ

o

-t

-(

o"TI
CXJ

3:

DPPDFREQ

Entry Via A PATCH

Input

Output

~
OBlOGCB

If 10 Is Nonzero Then

OBLGS:~QO

. . OBlGFRQl
~--~~~----~--------L----~------~~~CO l~~PUTLOGNum~r Itr-------~------~~--~>nRIr.s:Rn?

C

I r-r--_ _

".OBL I

''---------i
""---il

(

I

V

I

•

U~

J

...

I

~~

nRI r.J:Rn3

j

10

II~TP4AU
-,

PUTLOG M_

r'-------,r--------r---------'

~------------~

.... SCVT
SCVTAlOC

\.XCVT

I

r-

C;
m

Z
m

(I)

C

1.......~PUTlOG Routine
2.53

~
~

"'III....",

-f

>-

,0BALTPRr
OBALTLCB

Else

v

•

OBLOGCB

. .1'[1)

I---r-------r---~/

OBREFRSH
Build A Table Of Current
LOg Copies

ll----..L...-------IL-...-..J~"')

J

..

OBREAID
OBREBlK

m
:D

-r~

I
~

:D

o

~

Update The Refresh Array
Via A PUTBLOCK Macro
Call

m

I
.
po

::u
-f

-<

nppnRIOK

GETBlOCK/
PUTBLOCK
Routine

2-48

Return To Caller

Figure 2-55 (1 Of 2) - Time Driven Logging

o
-n

Figure 2-55 (2 of 2).

.Step

Extended Description

Messages and
ABEND Codes POL Segment

The ID passed through the PATCH macro (4, 8, or 12) is used as an index
into the table of. PUTLOG· number lists contained in the Log Control
Block •. The patch is the result of the PTIME SVCs issued by DPPILOGN
during initialization.

DPPDFREQ

2

The DBLOGCB tables are used to build the DBREFRSH table which contains
the current block number for each log array.

DPPDFREQ

3

GETBLOCK macro call is used to write the DBREFRSH table into the
refresh array, @REFRSH.

DPPDFREQ

rn
m
Z

(I)

m
o

3:

>

-I

m

:D

>
r."

:D

o."
m

:D
-I

<

o

"

....

·N

lit

DPPDSUB2

Jnput

FromO' ......... CIII
(GETARRAY. GETtTEM,
GETaOCK. GETLOG,
PUTARRAY. PUTlTEM,
PU1BLOCK. PUTLOG,
OrDUMPLOG)

r

nm

Z

en
PROBL
~Ic:u"

PATCH

I-_~

_ _----,_ _--L_ _ _ _ _ _ _L..-_ _

m
C
3:

»
~

~

m

PanmetIra

Reg 0

Reg 1

::u

»
rI
-0

2J

[!J
.

~
m

PATCH The
~R.tnamc.

Routine DPPOBSIF

::D

To Pwfonn Semce

~

<

1
.... • • •~.

Fi..re 2·56 (1 Of 2) . Data Base SLAVElnt..f~

o

M8ster
RoutineInteff8ce
1-57

."

Figure 2-56 (2 of 2).
Step

Extended Description

Messages and

ABEND Codes POL Seg_ment

I

Each macro call in the SLAVE partition branches to a unique location in
load module DPPDSUB2. The location is used to determine· correct
subroutine to be executed in the MASTER partition.

DPPDSUB2

2

The PATCH parameter list consists of the address (in the MASTER partition) of the data base subroutine to be executed and registers 0 and I
as passed to DPPDSUB2 by the user as the result of the macro call.

DPPDSUB2

DPPDBSIF is patched in the MASTER partition to branch to the subroutine
DPPDSUB2 WAITS until the PATCH has completed.

DPPDSUB2

3

r
(')

m
Z
en
m

C

~

l>
-I
m

:D

l>
r
~

:::0

o
~
m

:D

-I

-<

o"n
OJ

~

I\,)

•
w
....,

-

From DPPDSUB2
(Figure 2-57)
Via PATCH

~

w

co

DPPDBSIF

Input

Output

..

Register 1

(

-4
m

Move Message Data Set DeB To MDT
(Message DeB Table).

:0

>
r-

XCVTSBOP

rn

I
Open Message Data Set. If Data Set
Not Opened ISSUE ABEND

."

:0

0

."

m

:0

-4

-<

If Pre-restart Flag in XeVT Is ON,
Set MOATFLAG Flag to Pre-restart

0

-n

ELSE If Pre-restart Flag is Off
Set MOATFLAG Flag to Post-restart

to

:s':

[[]
Move Message DCB Address to MOAT

Figure 2-59 (3 Of 4)

Figure 2-59 (1 Of 4) - Message Handler Initialization

Figure 2-59 (2 of 4).

Step

Extended Description

1

The message handler initialization routine, DPPMINIT, will create a
Special Real Time Operating System task with task name DPPMMSGI for
the message output task (DPPMMSGl).

2

The address of the message routing code table (array DOMXSMRC) will
be obtained from the data base. If the array cannot be found~ ABEND
23 will be issued.

3

4

Messages and
ABEND Codes POL Segment

DPPMINIT

USER 23

DPPMINIT
r

o

m

The contents of the message data set will be moved to the message
DCB table (MDT).
The message data set pointed to by the MSGDS DD card will be
opened as a BPAM input data set. If the data set cannot be opened,
ABEND 20 will be issued.

DPPMINIT

Z

(I)

m

o
USER 20

DPPMINIT

3:

»
-4
m

:D

»

r

5

The MDAT flag is a one bit flag in the message address table (MDAT).
This flag will be turned off (set to 0) if the pre-restart flag
(XCVTSBOP) in the XCVT is on. The flag will be turned on (set to 1)
if XCVTSBOP is post-restart.

DPPMINIT
."

:D

o
\J

m

:D

6

The address of the message DCB will be placed in the MDAT.

DPPMINIT

-4

<

o

."

OJ

3:

From Figure 2-59 (1 Of 4)

DPPMINIT

Process

Array DOMXSMRC

If Output Data Set Specified In
Array OOMXSMRC
Move All Output DCBS
To MDT

Open All Output Data Sets

r-

o

If Data Set Not Opened
Issue Error Message

m
Z

(I)

m

Move Address Of All
Output DCB's to MOAT

o

3:

»
-t

m

illLoad OPPMMSG In Storage And Move
Address To location SCYTMSGH In The
SCYT.

Move MOAT Address To location
SCYTMWA In The SCVT.

:Xl

~

______-J,

F-:=-=-:'~I

I

l.
[!)BUild Lock Control Block For
DPPMMSG And Place Address In MOAT 1----,....,,.....,..---1

l
I

'---- ...J

»
rI
."

:Xl

o."

m

:Xl
Build lock Control Block For
OPPMMSG1 And Place Address In
MOAT

Move Address Of Array DOMXSMRC
To MOAT

Return To Caller

Figure 2-59 (3 Of 4) - Message Handler Initialization

-4

-<
o'TI

Figure 2-59 (4 of 4).
Step

1

Extended Description

When message output data sets DD names are specified in Array
- DOMXSMPC, DPPMINIT will do the following:
A.

Move all message output data sets neBs to MDT.

B.

Open message output data sets DCBs as QSAM output data sets.
If any message output data set is not opened, error message
DPP 89'8 will be issued.

C.
2

Messages and
ABEND Codes POL Segment

Place address of all message output data sets in MDAT.

DPPMINIT

r-

DPP8981

(')

m

Z

en
m
DPPMINIT

The MESSAGE macro processor (DPPMMSG) will be loaded into core and its
address will be placed in the SCVT.

DPPMINIT

3

The address of MDAT will be placed in the SCVT.

DPPMINIT

4

A Special Real Time Operating System lock control block will be built
for DPPMMSG and it's address will be placed in MDAT.

DPPMINIT

A Special Real Time Operating System lock control block will be built
for DPPMMSGl, and its address will be placed in MDAT.

DPPMINIT

The address of array DOMXSMRC will be placed in MDAT.

DPPMINIT

5
6

0

3:

»
-f

m

:a

»
r

"
"m
:a
:a
0

-f

<

0
-n
to

3:

DPPMMSG

From User Via a
Message Maero Call
Input

~

Register 1

1

./
Message Macro
Expansion
Address,

Output

Process

Return Codes

~

2

I

")

4

)

", ./

8

1

~

....

I

[]

,

... fIl
.../
Number of
Routing Codes
Number of
Variables

Save Address Of MESSAGE Macro
Expansion.

Find Address Of The SCVT And
From The SCVT Get The Address
Of The MOAT And From The MOAT
Get The Address Of The lock Control
Block For DPPMMSG. LOCK
DPPMMSG.

...

..1'>

1

..;)

12

r('")

m

2
m

(I)
Message Number

10

Message Action
Code
Message Return

[~ MOAT.
Got Add,~ Of M""- DCB F,=

C

3:

')~ Find Specified Message On Message

~

Data Set.

Address

If Message Not Found. Set Return
Code To 8.

m

r---J-.

:D

»
r-

Message Routing
Codes
If Variable Count In Message Macro
Expansion less Than Defined
(OEFMSG MACRO I Message Set
Return Code To 4

Message Variables

r-------"-

~

Message
Data
Set

@

f[!f

SCVT

rn

-----Joo..

":Dm
~

Format Message With Time AndlOr
Date, Action Code And All User
Variables.

If User Message Return Area Specified
Pass Message To User.

o
."
I

"....

I

OIeck Routing Codes For Validity.
If Routing Codes Not Valid'
Set Return Code To 12

MOAT

-

Else PATCH DPPMMSG1 (Message
OutpUt Routinel

~

,~

.,,~

o"

:D

Else If Variable Count In Message
Macro Expansion Greater Than
Defined Message. Set Return
Code To 2.

~

I

...

~I

I

MUl"l11VlVvD

Rerum to

Figure 2-60 (1 Of 2) - Message Macro Processor

il

1

Message Output
2-61

I

C"~

1~~~~!'!.~.HH:MM:SS:t

IMessage Text

Figure 2-60 (2 of 2).

Step

Extended Description

Messages and
ABEND Codes PDL Segment

I

On entry to DPPMMSG, register I will contain the address of the
MESSAGE macro expansion.

DPPMMSG

2

A Special Real Time Operating System LO~K macro will be issued for
DPPMMSG with the lock control block found at location MDATLCK in the
MDAT.

DPPMMSG

3

4

r

Save address of the message data set DCB found at location MDATMDCB
in the MDAT.

DPPMMSG

If the specified message is found in the message data set, it will be
read into virtual storage.
If the message is not found, the return
code will be set to 8.

DPPMMSG

n

m
Z

en

m

o

3:

»
-f
m

::D

5

The specified message will be formatted with all variables converted
to EBCDIC. The time is converted to (HH:mm:SS.t, HH-Hours, MMMinutes, SS-seconds, t-tenths of seconds), and if requested the date
(DD/MMM/YY, DD-DAY, MMM-Month, YY-year) and the action code
(I-information, A-action, D-decision).

DPPMMSG

If the address of a user return area is specified in the MESSAGE
macro expansion, the message will be moved into the area.

DPPMMSG

If no routing codes are passed in the MESSAGE macro expansion, the one
on the defined (DEFMSG) message will be used. The routing codes are
checked against the valid routing codes in the DOMXSMPC array (RCT
message routing code table) in the data base. If the routing codes
are not valid, the return code is set to 12. If the routing codes
are valid, the message will be passed to DPPMMSGl via a PATCH macro.
Routing code 255 is a no operation (DPPMHSGl is not patched).

DPPMMSG

»

r

o"

::D

"

m

6

7

::D
-f

<

o
."

DPPMMSG1

PATCHed By DPPMINIT
(Figure 2-59) Or By
DPPMMSG (Figure NiO)

Input

~

f

Output

Process


-i
m

;xl

rf the MDATFLG flag is on (flag set to post-restart), find the specified
codes in RCT (Array DOMXSMRC). The formatted message is then
putput to the devices specified in the table.
~outing

l>

r-

o"

;xl

"m

;xl

-i

<

o-n

DPPMMSGV
Input

PATCHed By IMP As Result
Of MS~RC Operator Command

Process

Output

Save Passed Parametel"$ Address

.

m

r-

Save Address Of RCT

1

n
m
2

If Alternate Route Code Not Active
Issue Error Message 33
Set Error Flag

en
m

o

3:

»
-I
m

:D
If Routing Code = Alternate RQute Code
Then Issue Error
34

»rI

Set Error Flag

-U

:D

o
-U
If Error Flag Not Set

m

:D

-I

-<

o
."

Routing Code
IN/OUT/STATUSI t-------~'"
STATALL

[§]

If Invalid Parameter Passed Issue Error
Message 35

Alternate
Routing Code
RCT

~========:

Return To Caller

Figure 2-62 (1 Of 2) - Message Routing Code Status Change Facility

Figure 2-62 (2 of 2).

Step

1
2

Messages and PDL Se ment
ABEND Codes
g

Extended Description

Save the address of the passed parameters.

DPPMMSGV

Save the address of the ReT (message routing code table array

DPPMMSGV

DOMXSMRC) •

3

4

If an alternate routing code is passed which is not active, issue error DPP033I
message 33 and set the error flag in the register save area used by
DPPMMSGV pointed to by register 13.

DPPMM8GV

If the routing code = alternate route code, issue error message 34
and set th~ error flag in the register save area used by DPPMMSGV
pointed to by register 13.

DPPMMSGV

DPP034I

r-

n

m
2
(I)
m

o

3:
l>

-f

m

5

::D

If the error flag is not on:

l>

rPlace the routing code in service if in-parameter passed.
parameter passed, place routing code out-of-service.

If the out."

::D

If the STATUS or STATALL parameter passed, display status of routing
cOde(s) via system messages 29 through 32.

6

...
...
~
0"1

DPP029I
DPP0301
DPP03lI
DPP032I

o
."

m
:0
-f

<
o
"T1

If invalid parameters passed, issue error message 35.

DPP035I

LICENSED MATERIAL - PROPERTY OF IBM

Input Message Processing
The Special Real Time Operating System provides a facility to allow for
operator - Special Real Time Operating System communication or for the
operator to communicate with a subsystem. This facility is th'e Input
Message Processor. The Special Real Time Operating System, during initialization, issues a WTORand leaves the reply outstanding. At a later time,
the operator may reply with a predefined IMP command. The Input Message
WTOR routine, DPPXIMPW, recrives control and a~ the result of this reply
patches the input message processing routine, DPPXIMPP. DPPXIMPP is responsible for validating the operator command and patching the specified
user routine.

2-152

Spec;ial Re,a! Time Operating System Input Message Processing

Input Message Processing
WTOR (OPerator
Command) Routine

Input Message Processing
CANCEL Command

Inwt Message Processing

Cornmll'ld Processor

r

EJ
2-64

1

EJ
2~

1

EJ
2~

1

n

m

Z

en
m
C

3:
»-t

m

::D

»

r
I

."

:a

o."

m

~

-<
o,..

-3:
OJ

Figure 2-63 - Special Real Time Operating System Input Message Processing Overview

DPPXIMPW
Input

From370/7f

Proc:ea

Output

DPPXIMPW wrOR

Special Real Time
Operating System Input
Message Processing
(IMP) Command

IW

....

Issue DPPXIMPW
WTOR And Wait
On IMP Command

"")

.>

-y

Input Message
Processing Awaiting
Reply

r-

n
m

[!)

Z
m

If STOP IMP
Command ABEND
JOBSTEP With
222 Code

C'I)

C

3:
~

-I

!!~IMP
To
......

..>

PATCH

.....

~::Uing·

m

:D
IMP Command

~

rI

DPPXIMPP

."

Input Message
Process Routine

o
"'0

PATCH ..

..

:D

2~5

m

:D

-t

H]

...

Issue Diagnostic

Input Message

) Processing
..... Command Accepted

Message

-<
o
."
CD

s:

..

Figure 2-64 (1 Of 2)· Input Message WTOR Routine

Figure 2-64 (2 of 2).
Step

Extended Description

Messages and
ABEND Codes POL Segment

1

The System/370 operator will issue an IMP Command to a WTOR issued by
DPPXIMPW. INPUT MESSAGE PROCESSING AWAITING REPLY.

2

If the STOP command is entered, ABEND job step with dump code
222.

3

The IMP command will be passed to DPPXIMPP via PATCH.

DPPXIMPW

4

DPPXIMPW will issue a diagnostic WTO message to the System/370
operator. INPUT MESSAGE PROCESSING COMMAND ACCEPTED.

DPPXIMPW

DPPXIMPW
USER 222

DPPXIMPW
r-

n'
m
2

(I)

m

o

3:

»
-4

m

:rJ

»
r."

:D

o

."

m

:D
-4

<

o.."
OJ

3:

~

C1I
C1I

From DPPXIMPW (Figure 2-&t) Via
A PATCH Macro c.n Or From A
PATCH Statement In SYSINIT

DPPXIMPP

I nput StremI

Input

.....

~

RegiIt8f 1

Translate end
Test Tlb/e

lID

.nnnnn

)j

Buikl Translm And Test Tlble

1

nn'Jnft

r-

PATCH
PARAMETERS
ADDRESS
~

Il1l

R...·TIme
Opeming Sys1IIm
Input "'-Ie
"-ing (IMp)
Command

Retrieft IMP

~ And Mow

ei
m

WOf1t Are.

I

. :>I

To DPPXIMPP WOf1t Azea PoInted
ToBy Regliner13

Spede/

.. III

C

»
-t

Find ~ Of IMP (Input ,.....
ProcnIing T. . . Array DPPXIMP)

m

::u
~
r
I

SeIn:h IMP Telll, For The Passed
IMP c:omn..nd

-0

li¥stlllm Mesege

If IMP Commend Invelld laue System
Mesuge 26, 70. 19

Input . . . . .

I

>I

PrOCIIIIing (IMP)
T"'C~

DPPXIMP)

i

m
3:

[!J

l.tJle

IMP Commend'
IMPCommInd

Z

en

I

I

I

-

~

-<

The IMP Command Plnmeten P-s
To DPPXIMPP Wdl Be eonv.rted To
FuI~. Heudec:imel, or EBIDIC
Formet. The ForlNU Are Specified
In The IMPT. . .

If!)
~

o

"

'PIa eor-ted IMP Commend

.........,. To

Pr-mg

~

.. :>

Specified In IMP Table Vie A

PATCH Mec:to Cell

..
PATCH

User Routine

~mTOCalI"

Figure 2-65 (1 Of 2) - Input Message Processing Routine

o-0

m

m

~

::u

Converted IMP
Commend

I'Iremeters

Figure 2-65 (2 of 2).
Step

1

.2
3

Messages and
I
ABEND Codes PDl Segment!

Extended Description

A 255 byte translate and test table will be built where byte 0 is 1
and byte 107 is 2 and the other 253 bytes are set to o.

DPPXIMPP

Register 13 points to a work area used by DPPXIMPP.
will be moved to this area.

The IMP command

DPPXIMPP

will be obtained via a

DPPXIMPP

The address of the IMP table (array DPPXIMP)
GETARRAY nacro.

r(")

m
Z

C/)

4

A search is made of the

Th~

table for the passed IMP command.

If the command is invalid, system message 26, 70, 72, or 79 will be
issued.
5

The IMP table contains the parameter format for the passed IMP
Command paramete~s. The parameters will be converted to fullword,
hexadecimal, or EBCDIC format.

DPP026I
DPP070I
DPP072I
DPP079I

DPPXIMPP

m

o

~

l>
m

-t
:D

DPPXIMPP

l>
r."

:D

6

The IMP table contains the name of the processing programs for all
IMP commands. The IMP command converted parameters will be passed to
the processing program via a PATCH macro to either the MASTER or
SLAVE partition.

DPPXIMPP

o
"tJ

m

:D

-t

<
o
-n

DPPXKILL

Input

From DPPXIMPP (Figure 2·65)
Via A PATCH

Process

Output

Register 1

r
Patch Parame\ers
Address

("l
Save Passed Parameters

m

Z

(I)

m

Cancel Input
Message Processing (lMPJ
Command
Parameters

o

If Operator Comments Passed With CANCEL
IMP Command Parameters. Output Operator
Comments Via System Message 60.

DUMP/
NODUMP

3:

»-4

m
::D

»

Operator
Comments

r
I

."

::D

o."
m

::D

-4

_ Invalid Action Specified. Issue Error
Message 27.

Figure 2-66 (1 Of 2) - Cancel Routine

<'
o
-n

Figure 2-66 (2 of 2).
Step

Extended Description

Messages and
ABEND Codes PDL Segment

DPPXKILL

1

Save address of the CANCEL Input Message Processing (IMP) command
parameters.

2

If operator comments passed with the CANCEL IMP parameter, output the
operator comments via message 60.

DPP060I

DPPXKILL

3

If the DUMP parameter is passed, issue ABEND macro with the dump
option and a completion code of 122.

USER 122

DPPXKILL

If the NODUMP parameter is passed, issue ABEND macro without the
dump option and a completion code of 222.

USER 222

If action requested is not DUMP or NODUMP, an error message is
issued.

DPP027I

4

r

n

m
2
en
m
C

3:
l>

DPPXKILL

-f

m

:D

»

r

~

:D

o

."

m

:D
-f

<

o"T1
to

3:

LICENSED MATERIAL - PROPERTY OF IBM

Report Data Output
The report data output facility provides the capability of transferring
user-generated data from one or more user-defined sequential data sets to
a single user-defined sequential data set. The report data output facility
is invoked through a REPORT input message processing command.

2-160

Special Real Time Operating System Report Data Output Facility

REPORT Input Message
Processing Command
Processor

EJ1
Of'I'XRPRT

..

2-68

rn
m
Z
en
m
C

3:

»
-f

m

:D

»rI
-0

:D

o
-0

m
.~

-<
o-n

-3:

OJ

Figure 2-67 Special Real Time Operating System Report Data Output Facility Overview

DPPXRPRT

From OPPXIMPP (Figure 2-85)
Via A PATCH Macro Call

Input

Process

Output

Register 1

PATCH
Parameters
Address

Save Passed REPORT IMP Commands
Parameters

r-

Report Input
Message
Processing (IMP)
Command
Parameters

0m
OPEN Output Data Set DCB.
Not OPENED Issue System
Message 53 And Exit

Z
m
C

'(I)

If DCB

s:
~

Return To

Output Data Set

:JJ

Caller
If NEW Parameter Passed Position
Output Data Set To Beginning Of
Output Data Set

Input Data Sets

00

~:----:~
I

I
1

-----

l..,

[J

OPeN Input Data Set. If Input Data
Set Not OPEN Issue System
Message 53 And Exit

Move Data From Input Data Sets To
Output Data Sets

I
I
I

,)

Figure 2-68 (1 Of 2) - Report Data Output Facility

-f

m
~

rI
."

:JJ

0

."

m

::D

0

-f

<

0

on

CD

3:

Figure 2-68 (2 of 2).
Step

Extended Description

I

Save the address of the passed REPORT IMP command parameters.

2

OPEN the passed output data set.
issue system message 53.

3

If the NEW parameter was passed with the REPORT IMP command, theoutput data set will be"positioned at the beginning of the output
data set.

4
5

Open the passed input data set.
system message 53.

If the data set was not opened t

If the data set was not opened, issue

All data in the input data sets is moved into the output -data set.
The output data set must be large enough to contain the data.

Messages and
ABEND Codes POL Segment

DPPXRPRT
DPP0531
DPPXRPRT

r0

m

Z

DPP0531

DPPXRPRT

(I)

m

C

3:

DPPXRPRT

»-4

m
:u

»r-

"
m
"
:u

:u

0

-4

-<

0

."

aJ

3:

LICENSED MATERIAL - PROPERTY OF IBM

Data Recording and Playback
Data recording and playback enable the user to record data in a realtime
environment and to play it back at "a later time either in a realtime
environment or in an offline envir0nment.
Data recording is enabled (or disabled) by DPPXRINT as the result of a DREC
operator command. When data recording is enabled DPPXDRC receives control
from the user via a RECORD macro call and is responsible for formatting
and recording the requested data. When data recording is disabled a stub
routine. DPPXDRCX, replaces DPPXDRC. DPPXDRCX sets a return code and
returns to the user without recording any data.
Data playback is initiated in the online system by a PATCH to module
DPPXPCON. This routine is responsible for converting the input playback
parameters to a form acceptable to the playback routine, DPPXDPB. DPPXDPB
gains control from DPPXPCONby a LINK macro call and is responsible for
playing back the requested data.
Data playback is initiated in the offline "system by executing module
DPPXNRTI on an EXEC statement specifying PGM-DPPXNRTI. This routine is
responsible for building a parameter list in a form acceptable to
DPPXPCON and then linking to that routine. Once DPPXPCON receives control.
the playback operation is the same as for the online system previously
described.

2-164

Special Real TIme Operating System Data Recording And Playbeck
DREC Input Message
Procasing Command
PrClCeSling

Data PlaybKk Routines

RECORD Macro Processor

DPPXRINT
Data Recording
Initialization

DPPXDRC
Data Recording Routine

2-71

2·70
I

DPPXNRTI·
Data Playback Non-Real
TIme Initialiution
2-162

I

I
DPPXORCX
Dummy Data Recording
Routine
2·72
I

DPPXPCON··
Data Playback Parameter
Con~on Routine
2-73

en
m
C

3:
l>
m

OPPXOPS··
Oeta Playback Routine
2-74

::D

»rI

I

"V

OPPXRDR-Hex Dump Routine

2-74.1

J

m

Z

~

I

·Offline Execution
··Online Or Offline Execution

r-

o

::D

o"'0

m

::D
~

-<
o
."

·69 - Special Real Time Operating System Data Record And Playback Overview

From OPPXIMPP

OPPXRINT

(Figure 2-65)
Via A PATCH Macro

Input

Call

RegisterJ

0
4

8

~
~ITJ
...

PATCH
Parameters
Address

L

Save Address Of The REPORT Input
Message Processing Command
Data Recording
Lock Control
Block

Report Input
Message

Processing

~

0

4

Command

lIJ.
. I Real-r lme Operating
. System,
Build Specla

f

Parameter
Address
,~

Parameter
Address

1
Parameter
Address

~

:-+

,

ENABLE!
DISABLE

r--- r+ rn

r\

I

It

3

I

I

\

ADD/DEUALL

\r\o

~

.- - .... --tI

I!!J

I
I

I

10
~.

I

I
I
I

L_..;.

P

-1m

If ENABLE Parameter Passed

~
Data
Recording
Data Set
(DRECOUT
DO Card)

:~~~~ Set
If DCB
50 And Exit

OPEN Data
Not Opened ISSUE

I

I

ft-oad

::D

l>
r-

1

.;,
v

I

lsi

Store Address Of The Time Array
(DPPCTIMEI At Location SCVTTIME
In Program DPPXDRc..

Figure 2-70

Figure 2·70 (1 Of 4) . Data Recording Initialization Routine

A

::D

o
~

Data
Recording
Data Set

m

<

,.,0

DRT

-:

DRTTIME

;;

B3

t

>

~

::D
-I

Build Data Recording Table (DRTI And
Store Address In SCVT At Location
SCVTRWA.

ORTAB In PrOQAm DPPXDRC.

I

~

Q0

Data Ilecording Routine DPPXDRC
And Place Address In SCVT At Location
SCVTREC

~ Store Address Of DRT At Location

m

v

I

>[1_

»
-I

...

I
10

3:

.2

::
...>

II

T"

LOAD DPPXDRCX (Dummy Data
Recording Routine) And Store
DPPXDRCX Address In SCVT At
Location SCVTREC

Z
m
C

~ ...... 4

or

n
m
en

SCYT

0

II

,.,

~]

I

...

If DISABLE Parameter Passed

I

r-

.....

Lock Control Block For Data Recording
(RECD), L~ ~l\.t1m

0

'"

Output

Process

DRTID
DRTDCB

16

.....

"

.?d

R
~~

I::
I

Ut1I\ovUN I

Dlta Recording
Routillf! DPPXORC

,.,

~

o

."

DRTAB
LOCK

~

,.......

,r-

OSAMBUF
~VIIIM~

Figure 2-70 (2 of 4).
Step

Extended Description

Messages and
ABEND Codes POL Segment

I

When DPPXRINT is entered, the address of the REPORT input message
processing command will be saved.

DPPXRINT

2

A Special Real Time Operating System DEFLOCK macro will be issued to
build a LOCK control block (RECD) for data recording rout"ines
(DPPXRINT and DP.PXDRC). A LOCK macro will be issued" to lock DPPXRINT.

DPPXRINT

If the DISABLE parameter was passed.

DPPXRINT

3

rn

m
Z

(f)

m

A•. Clear location SCVTRWA in the SCVT.
B.

C.
4

»
~

Issue a LOAD ma.cro for DPPXDRCX (dummy data recording
routine) and the address of DPPXDRCX will be stored at
location SCVTREC in the" SCVT.

m

:D

»r-

Close the data recording data set.

If ENABLE parameter was passed.

A.

o

3:

DPP0501

DPPXRINT

~

:D

o

OPEN data recording data set.
message 50.

If DCB is not opened, issue

B.

Issue a LOAD macro for DPPXDRC (data recording routine).

C.

Build data recording table (DRT) and store addres·s at location
SCVTRWA in the SCVT.

D.

Store address of DRT at location DRTAB in program DPPXDRC (the
first 36 bytes of DPPXDRC are used as a control table).

E.

The Special Real Time Oper~ting System time array (DPPCTIME)
address will be stored at location SCVTTIME in program
DPPXDRC(see 4-D).

~

m

:D
~

-<

o

"

DPPXRINT

-i

Input

ill

F~ FI.,:: (1 Of 41
Output

If ENABLE Parameter Passed

~

0

../'

Move Data Recoroing (RECD) Lock Control
Block Name To Location LOCKNAME In
Program OPf>XDRC

...

4

p

Store Address Of Dati Rec:ording Lock
Control Block At Location LOCK In
Program DPf>XORC.

1

It£]

)

Z

m

LOCKNAME
asAMBUF

~,

SCUTTIME

C
3:
l>
-t
m

rI

-

If ADO Parameter Passed

10 I~)[f]
..

3

AOO/OEUALL

"V

:D

... [[J
./

Store Passed 10's In ORT

----

If ALL Parameter Passed

,...

I

..... lID
;)

...

(0

51
==:J

C;S

....
IV

Retum To Caller

Figure 2-70 (3 Of 4) - Data Recording Initialization Routine

"-

..../
~
/'

I--

DRT

o"V

m

:D

ORTTIME

-t

ORTCOUNT

o
."

2s

..

If DEL Parameter Passed
Delete The 10's From DRT

0

;)

Set 10 Count In ORT To 255

:

en

l>

1"-)

10

LOCK

Move Copy Of Time Array 10PPeTIME)
To DRT.

ENABLE/
DISABLE

4

n
m

@
8

2

.";,.,

ORTAB

:D

REPORT Input
Message Proc·
essing Command

0

)
~6
)

...

Get Address Of OSAM Output Buffer And
Store Address At Locatiori OSAMBUF In
Program OPf>XORC.

0

r-

8

[]]

0

Dati Recording
Routine
(DPf>XORC)

<

ORTID

Figure 2-70 (4 of 4).

Step

I

Extended Description

If the ENABLE parameter passed:

A.

Move data recording (RECD) lock control block name to location
LOCKNAME in program DPPXDRC (see Figure 2-70 (2 of 4) 4-D).

B.

~tore

C.

D.

data recording (RECD) lock control block address at location lock in program DPPXDRC (see Figure 2-70 (2 of 4) 4-D).

A GET macro will be issued for the address of an output buffer.
The address of the output buffer will be stored at location
QSAMBUF in program DPPXDRC (see Figure 2-70 (2 of 4) 4-D).
A copy of the time array (DPPCTlME) will be moved to location
DRTTIME in the DRT.

E.

If the ADD parameter passed, all passed IDs will be moved to
the DRT at location DRTID.

F.

If the ALL parameter passed, the lD count (DRTCOUNT) in the
DRT will be set to 255.

Messages and
ABEND Codes POL Segment

DPPXRINT

,...
o

m

2

en
m

o

3:
l>
-t
m

:0.

l>
,...
."

:0

o

."

m

:0

G.

If the DEL parameter passed, all passed IDs will be deleted
from the DRT.

.

-t

<

o

"OJ

3:

":V

'-J

0

From RECORD
Macro Call

DPPXDRC

nput

~

Pr0C8IS

Output

OAT

0

....

RECORD Macro
Expansion

.

ICD

ORTTIME

--->

Retrieve Record Macro Expansion

Register 0
Record
10

l~ili_1
To Record

...

[l]
)

r-

n
m

Validity Check ID In RECORD Macro
Expansion, If Invalid

Z

en
Register 1

)

Address of Data
To Record

J

1°

I

Build Data Recording/PIaybaek Data Set

Om

-

C

..
..

If Date In Data Recording Table· (DRn
Not Current Date. Move Copv of Current
TIme Array (DPPCTIME) To DRT

I

"'-

m

m

!:
J>
-I
m

::D

Or

I

[ID

..

If Data Recording Task (OPPXRINT) Has
An I/O Error. Program Cleek, Or Any Other
Error. IIIUt System Message 895 DiAbIe

'----"'"

)

...

»
rI

"::D0

"

m
::D

-t

<

0

"11

~~~
Return To Caner

Figure 2·71 (1 Of 2) - Data Recording Routine

OJ

3:

Figure 2-71 (2 of 2).
Step

Extended Description

Messages and
ABEND Codes PDL Segment

1

When,DPPXDRC is entered, register 0 will contain in bits 0-15 the ID
to be affixed to the data and in bits 16-31 the length of the data.
Register 1 will contain the address of the data to record.

DPPXDRC

2

Contained in the Data Recording Table (DRT) are the IDs that may be
used for data recording. The ID passed to data recording will be
checked against this table. If the passed ID is in DRT or if the
enable all flag is on, the data will be recorded, otherwise the return
code is set to 8, and no further processing is performed.

DPPXDRC

When the time in the DRT is not current timet DPPXDRC will replace
the time array contained in DRT with an updated copy.

DPPXDRC

3

r-

n

m

:2

(I)

m
C

3:

l>
m

-f

4

5

DPPXDRC

The Data Recording/Playback data set built by DPPXDRC is a sequential
QSAM data s,et that may be on a tape or a disk volume.
The data set
consists of three types of records: date records, pad records, and
user records. A date record consists of the time array. The date
record is written each time the DRT is updated. A pad record is
written whenever the QSAM output buffer, used by DPPXDRC, contains
less than 50 but more than zero bytes of data. A user record consists
of the data that the user requested to be recorded.
If there is any error in the data recording task (DPPXRINT), message
DPP895 will be issued and data recording will be disabled.

:n
l>

r

."

:n

o
."
m

:n
-f

DPp89S1

DPPXDRC

-<

o

~

OJ

3:

DPPXDRCX

From RECORD Macro
Input

r-

ei

m
Z

en

m

Regitter 15

To Zero

»
~

ill
Set Register 15
(Return Code)

C
3:

Zero

m

:D

»
rI
"'V

:D

0
"'V
m

:D
~

-<
'0
-n

CD

3:

Figure 2-72 (1 Of 2) - Dummy Data Recording Routine

Figure 2-72 (2 of 2).
Step

1

Extended Description

DPPXDRCX is a dummy data recording routine that sets register 15 to
return code 4. The RECORD macro will branch to DPPXDRCX until the
. actual data recording routine (DPPXDRC)is initialized through the
DREC IMP command.

Messages and
PDL Segment
ABEND Codes

DPPXnRCX

r
(")

m
2
(I)
m

o

s:
»
-t

m

::D

»
r
~

::D

o

~

m

:D

-t-- ---

<
o

"T1

OJ

s:

-

Nt

~

W

LINK From OPPXNRTI (Figure 2-162)

DPPXPCON

Input

For Offline Execution PATCHed
For Onrme E
-

x~

Output

Process

Register 1

Address Of
Playback Parameters

... 1m
r

)

Retrieve Address Of
Playback Parameters
Converted Playback
Parameters

0

rn
Playback Parameters

0
9

START DATE

START DATE
to..

.....

r

START TIME

STOP TIME
Load Module Name

40
42

46

o

3:
l>

Load Module Name

36

38
10

40

10 Count

.

10

·
··

"

OPPXOPB
Data Playback
2-74

··

·

-I

m

:u
l>
rI

-a

::D

o"'0
m

:u
-I

-<
o-n

Return To Caller

Figure 2·73 (1 Of 2) - Data Playback Parameter Conversion Routine

10 Count
10

LINK To OPPXOPB
(Data Playback
Routine)

10

44

STOP DATE

34

rn

en
m

STOP TIME
26

STOP DATE

32

13

START TIME

22

16
25

Z

9

Convert Playback
Parameters To
EBIOIC Or Hexadecimal Format

r-

n
m

Figure 2-73 (2 of 2).

Step

Extended Description

Messages and
ABEND Codes PDL Segment

DPPXPCON

1

When DPPXPCON is entered, register 1 will contain the address of
the playback parameters to process.

2

The playback parameters pointed to by register 1 will be moved to
a work area for processing.

3

The start and stop dates and LOAD module will be converted to
EBCDIC. The start and stop times will be converted to decimal data,
and the ID count and IDs converted to hexadecimal data.

DPPXPCON

The converted playback parameters will be passed to DPPXDPB via a
link.

DPPXPCON

4

DPPXPCON

r-

(=)
m
Z

en
m

o

~

»

~

m

::D

'»r"'V

::D

o
"'V

m

::D
~

<
o

"OJ

:i:

Nf

.....,

(J1

From DPPXPCON

DPPXDPB

(Figure 2-73)

Input

~

Register

.. m

Plnmeter Address

~------'r-----,---,"".../1

(,-------,

r-

o
m

Playblck Parameters

\

"-.

START DATE
START TIME
STOP DATE
STOP TIME
f-LOAD MODULE NAME J I-----'-r...-j ! - - 10 COUNT
38 10
3B 10
40
L.....J~--J'....
")
42 ' - - - - - ! - - - - '
..

0
9
13
22
26
34

Z

If Offline Job Issue ABEND And Exit

en
m

If Online Job Issue SYSTEM

C

Message 51

. <=100=------------"
Playback Requ~ Data From Data

Playback DIU Set.

~m

3:

To

Ca''''_

...

___'''';,
I---.----r--------,.........
I-_--L.._.--!:.!!:!:~~~~

Playback Data Is
In The Fonn Of
A Data Record
On The DatI
Reoording PIr(back Data Set

!im
:D

i>

rI

-0

l:J

Q
m

Data Playback

o

DataSet

Specified loed
Module

:0
-f

-<
o
."

Or

If Playback Parameters Are Invalid
Issue Message 893, 894, 896, Or 897

...

Return To Caller

Figure 2-74 (1 Of 2) - Data Playback Routine

DPP893
DPP894
DPP896
DPP897

Figure 2-74 (2 of 2).
Step

Extended Description

Messages and
ABEND Codes POL Segment

1

When DPPXDPB is entered, register 1 will contain the address of the
playback parameter.

DPPXDPB

2

The data recording/playback data set is a sequential QSAM data set
built by DPPXDRC. The data set can be a tape or disk data set.

DPPXDPB

3

The data recording/playback data set is opened for input. If the data
set is not opened and DPPXDRC is running offline (non-Special Real
Time Operating System), DPPXDRC will ABEND. If. DPPXDRG is runnIng
under Special Real· Time Operating System, and the dataset is not
opened, DPPXDRC will issue message 51. In either case, no further
processing is performed.

4

DPP05lI

DPPXDPB

USER 71

r-

nm
Z

en
m
C

3:

....»

When the data was recorded, it was time tagged (date and time ,of day
was added) • In the playback parameters a time and ID range is speci-·
fied. All data on the data recording/playback data set that falls .
within the specified time and ID range will be read in.

DPPXDPB

m
:u

»
r
-0

5

The data played back will be passed to a routine for processing. The
data will be passed to a user routine if one is specified. If no
user routine is specified, the data is passed to Special Real Time
Operating System hexadecimal dump routine (DPPXRDR).

DPP893I
DPP894I
DPP896I
DPP8971

DPPXDP8

:u

o-0

m

:XJ

-I

<

o-n

CD

3:

~

....,
......

Input

Register 1
Address Of
Playback Data

2·74)

o

Process

Output

Convert Data To EBCOIC
And Build Print Line

Print

om

r-

n
m
Z

PI-vbIck Oata

fI)

m

C

3:

~

m
:u

l>

rI

'"0

:D

~

m

:D

~
o'"II

i

Figure 2-74.1 (1 Of 2)

Figure 2·74.1 (2 Of 2)
Step

1

Extended Description

The Data Is Converted From Hexadecimal To EBIDIC For Printing.
A Print line Will Be Built In The Same Format As An OSNS
ABEND Dump line.

Messages And
ABEND Codes

POL Segment

DPPXROR

r-

orn
Z

fn

m
2

The Data When Printed Will Resemble An OS/VS ABEND DUmp.

OPPXRDR

o

~

»
-I
m

2J

);
r-

LICENSED MATERIAL - PROPERTY OF IBM

Duplicate Data Set Support
One of the capabilities of the Special Real Time Operating System is to
have a higher degree of direct access data reliability by duplicating some
of the data sets. This functional area, called Duplicate Data Set (DDS)~
is a S\SGENed . 1ption
.
and al10ws a limited deatee

\)f

lH\.\

h\e data

~rlt

switching.
During initialization. the frequently used DDS load modules are loaded
into core and their addresses are saved within the DDS control table
header.
The DDS data areas are constructed at DDS initialization time also, and
DDS chains are established. There are ,four pasic DDS data areas: The
DDS control header (DDSCTLHD), the DDS control area (DDSCTLA), the DDS
input/output area (DDSlOA) with its related DDS DECBs, and the DDS extension task chain (DDSXTCBC).
There are six logical chains in the DDS system which, along with the data
areas, are graphically demonstrated in Figure 2-75.
The Systems Communication Vector Table (SCVT) has two pointers in it
pertinent to DDS. The first pointer (SCVTDDSE at displacement 00) is to the
DDSCTLHD, which is followed serially by all of the DDSCTLAs. Each
DDSCTLA will point to a DDS lOA if a DDSDCB is currently DDS opened against
this DDS.
The second pointer in the SCVT (SCVTDDSX at displacement 20410) is to the
first DDSXTCBC. Each DDSXTCBC will point to the next one, the last one
pointing to zero. Examining the DDSXTCBCs will tell which tasks are using
DDS in which ways.
The DDS routines can be divided into four major areas: control routines,
subroutines. operator commands, and internal subroutine.
The control routines are responsible for initializing DDS, cleaning up
open Data Control Blocks (DCBs) etc. at task termination, and ensuring
that the proper data sets are in service, out-of-service, following a
failover/restart.
The DDS subroutine provides the user interface with DDS during realtime
execution while the DPS operator commands provide the operator communications and control over the DDS data sets (e.g •• CREATE a back up, etc.).
The DDS internal subroutines provide the subservices required by each of
the other three areas. They function as subroutines and may be called by
one or more of the other routines in a number of different logical combinations.

2-180

LICENSED MATERIAL - PROPERTY :OF IBM

COMPOSITE PICTORIAL DESCRIPTION OF ALL DDS CHAINS

. DDSCTLHD

+O .....-------~~----.,
SCVTDDSE

......

'

LEca
...............
•••••• ····~.....- - -....
'+-N-E-XT-illil ......
,
'-----,.'-0-«1--0--0000---,

'J---------~.-.----~

/

...... - .....

I+NE~ ~,~----~------~

.'.... .......,~--+----~-I. *,,"

I

/

SECB

....
1· - - - - '....
+-N-EX-T-S-E-C8j--, .;;-

f

:!

i

,
I

; ........,...--,-~-r~~-=-1

I

!,: I.',' ..-a...---+.--'----~.J

.i

....----....______ ~ •••••••'"
,+ NEXT LECBI ,....--=---r--:-()J-:-::oo:70:::-:::0Q0-:-:oo~

It....................

:i,.
\Ii

: ,II I

'-------'------'

••.•

:

~

1'00000000

,I

i

J+

. ' NEXT SECar

, ,

i -,

....... ::I,-,- ... ....

DDSIOA

: I.

ii'
: .I

"

.

", DDSINIO~ ,

OOOOOOOO ,

J

I

,,, .
/.' .
:: ...

.r~~~r-----~./·

......, I
'.I
"

~

I;'

DDSXNTCB

...--

DDSDTCBN

I+DDSDRCBN

(~

I
I

/'

I
I
I
I

.. I. ~
/

r-----r:D:-=D-:::SX::-:-L-::OC-:-:I(~ •••••••

ODSIOA

•••••••••• - •• --.~{ DDSIRCBP.

i: I

: II
:

.. - ......

OOOOOOOO

--..

---

DDSDTCBN

~ OOOOOOOO
I

FFFFFFFF

J

I

I
FFFFFFFF'I

,,*"
DDSXSHAA

~

- - - - - DOSX Chain
•• - - •••••••• _. DDSIOA By Talk Chain
- - - - DDSSECB By Ta.k Chain
.__ ••••••• -.... DDSDECB By DDSIOA Chain
••••••••••••••. DDS Lock Chain
•• _ . -

•-

DDS Shue Cheln

Figure 2·75 (1 Of 2) - Composite Pictorial Description Of All DDS Chains

2-181

LICENSED MATERIAL

PROPERTY OF IBM

Descri ptions

DDSX CHAIN

The SCVTDDSX Word Points To The First OOSXTCBC,
Which Points To The Next DDSXTCBC, Etc. Each
ObSXTCBC Consists Of Pointers Pertaining ToA Different
Task Using DDS.

DDSIOA By
TASK CHAIN

All Of The DDSIOA's Opened By A Task Are Chained
Together Via The DDSINIOA Word In The DDSIOA. The
First DDSIOA Is Pointed To By The DDSXIOA Word
In The DDSXTCBC For This Task.

DDSDECB By
TASK CHAIN

Each DDSDECB Reserved By A Task Is Chained Through
The DDSDTCBN Word Of The DDSDECB. The First
Such DDSDECB Is Pointed To By The DDSXDECB Word
Of The DDSXTCBC For That Task.

DDSDECB By
DDSIOA CHAIN

Each Reserved DDSDECB For A DDSIOA Is Chained
By The DDSD RCB.N Word Of The DDSDECB. The
First Reserved DDSDECBls Pointed To By The
DDSIRCBP Word Of The DDSIOA.

DDS LOCK
CHAIN

Each Talk Waiting To Lock A DDS Is Chained
Together Via Its LECB. The First LECB Is Pointed
To By The DDSCLECB Word Of The DDSCTLA.
If A Talk Has A ODA Locked, Its DDSXLOCK
Word Of Its DDSXTCBC Will Point To The
DDSCTLA.

DDS SHARE
CHAIN

Each Task Waiting-To-Share A DDS Is Chained

Off That DDS Via An SECB. The First SEeB Is
Pointed To By The DDSCSECB Word Of The

oDSCTLA. If A Task Is Currently Sharing A
DDS, Its DDSXSHAR Word Of Its DDSXTCBC
Points To The DDSCTLA.

Figure 2·75, 2 Of 2

2-182

Special Real Time Operating System Duplicate Data Set Support

DOS Subroutines

I

OPPSCHCK DOS Chec:tt ROUti~-80 - -

DDS - - <;ommondo

I
I

OPPSMSGI - OOSCNTRL
IMP Command Proces1or
2_

I
1

DPPSTBOS TAKE Processor

I

r-

2~1

I =:""~I
I
2·4n

DPPSBF1 DO$ BLOL/FINO

1

DPPSCRBK
-. . .! 1
CREATE
Procesaor
2-92

I

2-85

I

'OPPSCL1 DDS Close Routine
2-88

II

DPPSCMPR Processor
COMPARE
2-93
I

I

n

m
Z
en
m

OPPSCHPR Determine Primary
DDSDECB

2.95

o

DPPSLOCK Lode A DOS Data Set
2-96

~

DPPSMSGO
DDS. O\Itput -Message .. 1
Processor
2-97

I

I
OPPSOPCL ()pen/CIose PRI/BACKUP
2-98

-v

2-87

=:,.,

1

DPPSRCIO Recreate 10

ROO"-;...

I

OPPSRTCP A'TCOPY IMP
Command Processor
2-93.1

»

rI

::D

I
DPPSOP1 DDS Open Routine

I~DDS~_~

~
m

::D

2-99

J

Q
m
~

~

o

"CD

~

~

00
eN

Figure 2·76 Special Real Time Operating System Duplicate Data Set Support Overview

DPPSINIT

From DPPINIT
(Figure 2·9 9 Of 12)
Proc:as

Input

~-----r

Input cards

Output

~
--r--

mRead And Interpret
---~

I

The

DOSCTLIN Input Control
Stream. If Invalid,
Issue Abend.

-o

I
I

~ - -- - -- - ----

r-

I

m

-~

m
Z

DDSCTLHO

Establish A DDS Control
Header Table And Create
(With Initial Values) One
DDS Control Area Per DDS

r---

.;;

Declared

!

en
m

1

3:

C

~

m

lJ

STEPLIB
With DDS
Load Modules

tr::
........

....

....""l

_./

j;

DDSCTLA

[!]
Load All In-Core DDS Load
Modules And Save Their
Entry Point Address In The
DDS Control Header

h-!

~

~

....

i·
, ,
!

,
I

,

rI
~

"lJo
-g

m

:rJ

I

SCVT

~----. ---- ----+
....

SCVT

(!J
Connect The DDS Control
Header To The SCVT And
Write The DDSTATUS
Record

Return To

Figure 2-77 (1 Of 2) - DDS Initialization

.. )

-yo

+DDSCTLHD

:!

o

"

i

Figure 2-77 (2 of 2).
Messages and
ABEND Codes PDL Segment

Step

Extended Description

I

Normally, each card represents a DDS declaration (DDSNAMES card). If
the first card is REFRESH or REAOONLY, read the DDSTATUS data set to
determine the DDS declarations. If errors occur in conjunction with
the DDS input control stream, ABEND with a decimal code of 80.

2

The DDS control header (DDSCTLHD) and DDS control areas (DDSCTLA) will
will be GETMAINed from subpool O. A Special Real Time Operating System define lock will be needed for each DDSCTLA.

USER 80

DPPSINIT

DPPSINIT

r-

n

m
Z

3

4

(I)

Except for the pseudo-SVC routines (DDSOPEN, DDSCLOSE, DDSFIND/BLDL,
DDSSTOW)., all other DDS load modules will be loaded and their entry
points saved at predetermined slots in the DDSCTLHD.
Using the CHAIN function, the DDSCTLHD shall connect
to the SCVT.
This provides a pathway to the DDSCTLHD from the job step TCB through
the TCBX, XCVT, SCVT.
The DDSTATUS data set will keep the DDS declarations up to date.
message will be output if the DDSTATUS cannot be updated.

A

DPPSINIT

m
C

3:

»
-t

DPP88lI

m

::D

»

r-

."

::D

o

."

m

"::D .
-t

<

o

"OJ

3:

-.
f\)

CD

U1

From OPPTPMON

OPPSCLUP

Output

(Figure 2 16)

~

Input

Register 1

..

.

~

r-

n

m

SCVTOOSX

400Sl0A

Z

DDSCTLA

OOSXTCBC

-,

ill Unlock And UOJhare Any
~

DOS Which May Have Been
Left "Locked' Or 'Shwed'
By The Terminating T. .

...

en
I

.. ~

I
I

;

I

):at

...

I

r-

. y~

I

I

,

DOSOECB"s

~

~.

I

3C

>
-I

::D

DOSIOA

I

t

o

m

I

, t

m

-a

I

3J

:f2l~ Any .......,~ ..

----I-L -r..
I
I

From This DDSX T_ Chain
And OtherTask's DOSDECB's
From ~ DDSIOA QI8in
For This . .

u.r, DC8

....

..

o

.

..)

;

"m

:D

-t

-<

I

o"'II

I

a:J

I
f

1-_

- ,...,

-3:

m

Disconnec:t Any Of This
Task's DDSIOA's From
Their DDSCTLA's, Restore
1l1e AIsoc:i1Ited lJIer's ""''''',
And F. . 1l1e Con For
Thole DDSIOA's

Return To CIIIIIr

Figure 2-78 (1 Of 2) - DDS Task-End Cleanup

Figure 2·78 (20f 2).
Step

Extended Description

Messages and
ABEND Codes POL Segment

1

Those DDSs which were left shared or locked, if any, will be in the
DDSX task chain for this task, which can be located from the pointer
to the DDSXTCBC within the SCVT.

DPPSCLUP

2

Sihce each reserved (unchecked) DDSDECB is logically part of two
chains, the task chain and the DDSIOA chain,each must be de-chained
from both chains if there are any for this task, or for any DDSIOA
for this task.

DPPSCLUP
r(")

m
Z

en
3

Any DDS opened DDSDCB will still be pending if they were not
disclosed; therefore, these user DCBs must be restored to their
preopen status. The OS/VSI system will close the DCBs within the
DDSIOA, which will.also be freed •.

DPPSCLUP

m

o

s:

»-f

m

:JJ

»

r-

"'0

:lJ

o
."

m

:0

-f

-<

o

~

-.

N

0.....,
0

DPPSRSTR

From OPPINIT1 (Figure 2·12)

~

Input

Output

Process

OOSCTlHD

ODSCTLHO

~---

1----

.....IDlf

....

This Is A Write Restart In
READONL Y Mode, Return
Directly To OPPINIT

-:>

:
I

I

~u~ Off The

r

n
m
Z

READONLY
Rag And Abend My Task
Which Has Outstanding DDS

(I)

m

o

Requesu

3:

ODSCTLA',

t-----1DDSTATUS

o.ta Set

....

~
The DDSTATUS Data
Set And Read In The DDS

~

....

..:>

~

m

...)

XI

»
r

Status Record, Updating Each
IrM:ore DDS Control Area
Repmented In The
DDSTATUS Record

I
"'0

XI

o
"'0

A Message (If
!"equl~-' Indicating Any

I .. In..t"" ..

...

..

")

Incorw DOS ControIArea Not
Found In "The DDSTATUS
Record Or Any DDS On· 'The
Status
And

m

K....

"ecord
Incore

XI
~

Messages

~

A Message Indicating
Restart Is Complete

Return To Caner

Figure 2-79 (1 Of 2) • DDS Failover/Restart

»-I

>L:::J

-I

<

o

"'"

Figure 2-79 (2 of 2).
Step

Messages and
ABEND Codes POL Segment

Extended Description

writ~

1

Failover/restart processing is not required at
time in read only mode.

2

Those tasks which have outstanding DDS requested, as noted in the
DDSX task chains, will ABEND with code decimal Bl.

3

restart data set

If the DDS TAT US data set cannot be opened or if the DDS status record
cannot be read, output the appropri~te messages.

DPPSRSTR
USER Bl
DPPB901

DPPSRSTR
DPPSRSTR

(I)

m
C

DPP8B2I

5

m
Z

DPPB9lI
DPPB921

4

rn

Messages indicating that the DDS status data set has too many or not
enough declarations alert the operator to these conditions.

DPP886I
DPP887I

DPPSRSTR

The 'DDS restart is complete' message indicates that the DDS
aspect of Failure/Restart (updating in-core DDS control tables)
is completed.

DPPB88I

DPPSRSTR

3:
l>
-i
m
::D

l>

r-

"
o

::D

"m

::D

-t

-<

o."
CD

3:

-oco
~

CHECK Macro Call

DPPSCHCK

Output

Determine That The User's
OECB Is Connected To A
Reserved ODSOECB If

r

om

Invalid Exit

Z
m

(I)
Return To

(!]
...

C

Caller

Share The DDS And Call

3:

OPPSCHPR To Determine
Which Half Of The
DDSDECB Is Primary And

~

Which Half Is Backup

m

- ..

::xJ

DPPSCHPR

>

r
I

Primary DOSDECB
Determinator 2-95

If UMble To Determine

-0

::D

o
-0

Perform Actual Check On The . . . . . . . , - - - - - - r - - - - - - y - - - - - - V 1-----,..,....,......,.....,
Primary ODSOECB Half, And,
When Appropriate, On The
Badcup DDSDECB Half

<

User's OECB

Available

Reserved
Flag X 'FF'

"_~lIDRelease The DOSOECB For
Future Use And Unshare
The DDS

Return To

Figure 2-80 (1 Of 2) - DDS CHECK Module

m
:u
-I

o

-ms:"

Figure 2-80 (2 of 2).
Messages and
ABEND Codes POL Segment

Step

Extended Description

I

This determination is made by comparing the user's DECB pointer in the
DDSDECB with the address of the user's DECB. The availability/
reserved flag (DDSDAVAL) within the DDSDECB should be X'FF' to indicate a READ/WRITE operation has been executed. If this condition is
not satisfied, the user's SYNAD is taken. and control is returned to
the user following his CHECK macro (bypassing steps 2-5).

DPPSCHCK

The module DPPSCHPR will return the address of the primary half of
DDSDECB and the backup half. If the DDSDECB is not properly organized
and such a determination cannot be made, the user's SYNAD will be
taken and control will proceed directly to step 5.

DPPSCHCK

2

3

r-

n

m

m
C
~
~

.~

After initially checking on the primary half DDSDECB.the backup half
is checked if both the backup is in-se,!=,vice and the DCB Js opened
for update or output.

DPPSCHCK

~

<0

m

:J3

l>
r-

If SYNAD occurs on the primary DDSDECB and indicates a hardware
failure, switchover will occur automatically if the backup is inservice. If SYNAD occurs·during the backup CHECK,the backup is taken
out~of-service.
If SYNAD occurs and there is no backup or no hardware
failure, the user's SYNAD is taken.

--

Z

(I)

4

The user's DECB will contain the correct ECB code and pointers to the
primary DDSDECB data (lOB, etc.). When running in update mode and
the check is for a prior read operation, the backup lOB address is
saved in the us.er' s DECB in the low-order three bytes of his ECB.

DPPSCHCK

5

The availability flag is set ·to X'OO' and the DDSDECB is taken off
its DDSIOA reserved and TASK reserved chains.

DPPSCHCK

DPPSNTPT

r-

o

m
Z

en

Call The Approprim Routine

OOSIOA

User's OCB

D
U1er Options

D

DOS NOTE
Processor 2-82

OOSPOINT/FIN
(Type C)

Processor 2-83

D
User's Note List

D

m
C

3C
l>

-t
m

:0

l>
rI

-a

:0

o-a

m
:0

-t

<

o"TI

CD

3C

Figure 2-81- DDS NOTE/POINT Sending Interface

LICENSED MATERIAL - PROPERTY OF IBM

Intentionally Blank.

2-193

DPPSNOTE

DPPSNOTE

Process

ODSCTLA

User's DCB

r

OOSIOA

I

---- ---I

r-I

I

I
I

I
I

I
I

I

,

+ OOSCTLA

-----

.J

nm
2

(I)

m
0

~

I1J
Execute The NOTE Macro
On The Primary DCB

m
::D

..,I

f

:u

I

L

»-f
»,...

I

I

ODSCSECB

,...

I
I
I
I
I
I

OOSCTLA

+ OOSOC81

Share This DOS

0

UnshaIe This DOS

"

m

::D

....

-<

0

"-aJ

~

Figure 2-82 (1 Of 2) - DDS NOTE Internal

Figure 2-82 (2 of 2).

Messages and
PDL Segment
ABEND Codes

Step

Extended Description

1

The DDS share function is used to prevent a lockout of this DDS during
the note operation.

DPPSNOTE

2

The primary DCB is used since there is no output, and the backup need
not be inspected.

DPPSNOTE

This DDS is released for other tasks to lock.

DPPSNOTE

3

r-

n

m
Z

(I)

m

o

3:

»
-t

m

:u

»

r."

:D

o

."

m

:0

-t-

-<

o

~

....~

DPPSNPNTF

Input

From DPPSNTPT (Figure

Output

(0
(l)

DDSCTLA

DOSCSECB

~---

SNre This ODS

-r-

OOSCSECB

I
I

I
I

I
I
I

r-

n
m

II]

Z

Eumine CIIJerIs PNwious
InstNCtions To Dmrmine

fI)

m
C
3C

TheTypeOf~

J

»-I

If This Is A POINT
Request, Then laue
POINT For The Prinwy
DC8 (And a.ckup DC8
If The Bckup I. InService

m

-»r-

:D
DDSIOA

I
."

:D

a.cIwp

DC8
If This Is A FIND
(TYPE-C) Request. Then
..... FIND(TYPE-C)
MKro For The Prinwy
DC8(And a.ckup DCa If
The BIdwp Is In-Semce,

0

."

m
:u
-I

-<

,..

0

-3C

OJ
1..._

Figure 2-83 (1 Of 2) - DDS POINT Or FIND (Type-C)

Unsha,. The DDS

Figure 2-83 (2 of 2).
r-----r-------------------------------------------------------------------------~----------_.--------------

Step

Extended Description

Messages and
ABEND Codes POL Segment

1

The share function will be used to prevent a lockout of this DDS until to POINT or FIND is completed.

DPPSPNTF

2

The indexing on the BALR instruction within the macro indicates the
type of macro (no index = POINT, index = FIND (TYPE = C».

DPPSPNTF

3

The POINT should be executed to the backup also if the backup is
in-service.

DPPSPNTF

4

5

The FIND (TYPE
is in-service.

= C) should be executed for the backup when the backup

The share function will release this DDS for locking.

,n

DPPSPNTF

m
Z
m

DPPSPNTF

»-i

CI)

o

3:

m

::D

»
,o"

::D

"

m

::D

-i

-<

o
."

DPPSRDWT

Input

ODSCTLA
ODSCHRON

J

If REAOONL Y And This
Is A WRITE. Return To
Without Starting I/O

~-----r-­

I

rm

•I
User OEca

c=J----

(;

I

I
I

---

~

...

Z

(I)

III

m

Allocate An Available

C

DOSDECBA

3:

DOSIOA

o

»~

m

:Il

Primary DCB

Backup DCB

»
rt
."

OOSOECB

::u
0

."

L __
I

OOSDECBS

__ .JI

m

ITE OrREAO Update • ...-._ _--L-.....

I/O For The

Backup DCB

~-----r-----r-----V

:Il

-t

<
0

~----

."

CD

~

Return To

Figure 2-84 (1 Of 2) - DDS READ/WRITE Module

Figure 2-84 (2 of 2).

Messages and
ABEND Codes PDL Segment

Step

Extended Description

1

Output operations are invalid when running in read only mode.
Returning to user without starting I/O will cause a SYNAD if he should
try the related check, so a meaningful return code is given.

DPPSRDWT

2

Should no DDSDECBA be available for I/O the user will be given a
meaningful return code.

DPPSRDWT

r

n

m
Z

When an available DDSDECBA is found, it is marked reserved and
connected to the user's DECB.

en

m
0

3:

3

The I/O is started against the primary DCB by branching to the
appropriate OS/VSl routine.

DPPSRDWT

l>
-f
m

4

The I/O needs to be started against the backup if in UPDATE mode so
that the subsequent write update can be done for the backup also.

DPPSRDWT

l>
r

::D

-0

::D

0
-0
m

::D
-f

-<

0

-n

OJ

3:

DPPSBFl

Output .

Input

R~14

--,
I
Previous Macro
Instructions
L--

SR&ALR 14,15

I
I

-t
I
I

I

L

,..
nm

Examine Previous
Instructions In
Macro

Z

en
m

rn

C

IF Previaw Instructions
Indicate DDSFIND (TYPE-O)

Macro Type Indicator

m

:XJ

~
THEN
~1

!:
»-t

• Set The Type Indicator For

DDSFIND (TYPE-D)
• Recornplement The IJser's

DeB Pointer

User's DCB Pointer

,..~
I
-0

:u
o
-0

lher's DCB

m
ELSE
• B1, Set l'h4! Type Indicator
For DDSBLDL
• B2, Set The User's DCB
Pointer As Is

~

-<
o"TI
CD

3:

Register 0

Call The External Routine
DPPSBFST To Execute The
Actual BLDL/FIND(TYPE-O)
Request
Macro Parameter(s)
Execute SLOLI
. . . . . . .~ FINO(O) Or STOW
2·100

Figure 2-85 (1 Of 2) - BLDL/FIND (Type-D) Formatter

Figure 2-85 (2 of 2).
Messages and
ABEND Codes POL Segment

Step

Extended Description

1

The previous instructions generated by the DDSBLDL or DDSFIND (Type-D)
macros indicate which type 6f macro was issued (an LCR 1, 1 instruction would indicate DDS FIND instead of DDSBLDL).

DPPSBFl

2

The type indicator (used as input to DPPSBFST) is 0 for BLDL and 4
for FIND (TYPE-D).

DPPSBFl

m
Z
(I)
m

The user's DCB pointer will have been complemented (negative value) by
the macro instructions for DDS, FIND (TYPE-D).
•
3

The external routine DPPSBFST executes the actual BLDL or FIND and
expects as input the user's DCB, the macro parameter, and the type.
The return code from DPPSBFST is not altered when returning to the
user.

r-

n

C

DPPSBFl

3:

l>
~

m

::D

l>

r-

"
o
-v

:D

m

::D
~

<

o

-n

CD

3:

DPPSCLl

Input

Dose

LOSEMa.o~

Output

Procea

OJ

--- --- .....

Usar's 008

If The User's DCB Is Not
For A DOS, Issue The r.1 ~
SVC Against The User's OCS
And Return Directly To The
User

..
....

""J

r-

n
m
DDSlOA

.
r

-

I

---.

)

CLOSE The Primary DCB ~,
If OPENed,cLOSEThe BackuJ:
DCB

l~
....

ig}Restore The User's DC8 To

I

.J.
I

-

- - -+

I
I
I

L

Its Pre-OPEN Status, And
Remowe The DDSIOA And

»

DOSIDC82

m

•• +
...

...>

--OOSOECB's ...

t • t

~

~--

..

The Core For The DDSIOA,
And UnshaI'e The DDS

~

:u

»
rI
"V

::D

o
"V

OOSCTLA

~isconnec:t
The DDSIOA
From The DDSCTLA, F,.

i:

DDSIOCS1

DOSDECS's From Their
DDS TASK Otains.

...
"

m

::D
~

""J

DDSCIOA

-<

o

'""
iii
3:

--.

Ratum To c.Ier

Figure 2-86 (1 Of 2) - Close A DDSDCB

C

Jo..

I
I

m

....

1m

Z

(I)

Figure 2-86 (2 of 2).
Messages and
ABEND Codes POL Segment

Step

Extended Description

1

If the user did not declare this DDS during initialization, it will
be running in single mode, and the user's DCB will be closed. Steps
2 through 4 should be omitted, and contr~l returned directly to the
user.

DPPSCLI

2

The DDS must be shared and both the primary DCB (within the DDSIOA)
and the backup DCB should be closed, if the backup had been inservice at open time.

DPPSCLI .

r-

o

m
Z

(J)

m

3

4

Those fields of the user's DCB (DDSIOA, DDS READ/WRITE, DDS CHECK ,
DDSNOTE/POlNT, DCBOFLGS) which were altered at DDSOPEN time will be
restored to their pre-open status. The DDSIOA and any unchecked
DDSDECB for this DDS lOA will be removed from their DDSX task chain
(DDSXTCBC) which is _created the fi-rst time a task uses DDS.

DPPSCLI

The DDS lOA pointer in the DDSCTLA will be zeroed and the core for this
DDSIOA will be FREEMAlNed, the FREEMAIN parameters having been saved
at DDSOPEN time. This DDS will be unshared.

DPPSCLI

o

3:

»
-t

m

::D

»
r-

"
o

::D

"m

::D

-t

-<

o-n
OJ

s:

DPPSOPl

Input

User's DCB

D-----f--~-

rm

ei
Z

(I)

m

C
OPEN The Primary And
s.ckup DCB's

3:

DDSIDC81

~
m

DDSIDCB2

o

f t

DOSCTLA

DDSDECBA'J

~-+­

•

I
I
I
I

i

:D

l>
rI
"V

:D

Q
m

:II

~

I

L_

0

'"TI

-3:
CD

Initialize All DDSDECBA's
As Available For I/O
f'..I----..--\

Figure 2·87 (1 Of 2) - DDS OPEN Routine

Figure 2-87 (2 of 2).
Step

Messages and
ABEND Codes PDL Segment

Extended Description

1

The DDS lOA will be GETMAINED from subpoo1 0 and the FREEMAIN
parameters saved. The NCP operand (default = 1) of the user's DCB
will determine how many DDSDECBpairs are generated.

DPPSOPI

2

If the primary OPEN fails, automatic switching will be performed
if the backup is in-service. If the OPEN On the backup fails, take
backup out-of-service will become automatic.

DPPSOPI
r(")

m

Z

3
4
5

The DDSCTLA should point to the DDSIOA and vice versa.
DCB should point to the DDSIOA and vice versa.

The user's

DPPSOPI

en

m

0

~

The DCBOFLGS must beset and the addresses of DDSREAD/WRITE,
DDSNOTE/POINT, and DDSCHECK must be set in the user's DCB.

DPPSOPl

Each DDSDECBA will be initialized and available for use in I/O
requests. There will be a serial chain of available DDSDECBs minus
the reserved DDSDECBs.

DPPSOPI

»
-f

m

::xJ

»
r-0

::xJ

0

-0

m

:0

....
<

0

."

to

3:

DPPSST1

.Input

Register 14

Previous Macro

Instructions

}---

r-

(;
m

BALR 14,15

Macro Type
Indicator

m

C

Register 1
-'I-1~L=

User's DeB

Z

fI)

3:

Set The Type Indicator
Accoroing To The Previous t--------o.-~
Instructions And, If
Needed, Rec:ornpIiment The

Parameter Registers

User's DC8 Pointer

~
m
::D

l>
rI
'"a

:D

o'"a
m

Register 0

:0

-t

Call The External Routine
DPPSBFST To Execute The
Actual STOW Request

<

o

Macro Parameter(s)

."

OJ

-1
... ....~

RetUrn To Macro Caller

Figure 2-88 (1 Of 2) - DDS STOW Formatter

ExecuteMKro
STOW

3:

Figure 2-88 (2 of 2).

Messages and
PDL Segment
ABEND Codes

Step

Extended Description

1

The previous instructions of the STOW macro indicate which types of
STOW macro is being issued.

DPPSSTl

2

Set up type indicators by complementing registers as follows:

DPPSSTl

Macro Type
STOW
STOW
STOW
STOW
3

r-

Register to Complement

n

m
Z

(R)

1

CJ)

(D)
(C)

0
0 and 1

o

(A)

none

The external routine DPPSBFST will execute the actual STOW macro to
both primary and backup (if in service) and returns the proper return
code for the macro caller.

m

3:.

....m~

DPPSSTl

::n
~

r-

."

::n

o
."

m

::n

-I

<
o
."

From Special Rell-Time ap.ating
System Input , . . . . . Proceaor

D~P_P_SM
____S_G____I ________I~nprt
________________~v.~.~APATcH~
Reginar 1

r-

TcaX

I
I

TcaXDCVT
TCBXRSTB
TCBXPARM

r

n.
m
z

I

en

m

I

XCVT

C

I

XCVTCVTS

~

»
~

I

I

:xJ

l

SCVT
SCVTDDSE

I
I

I
I

I

DDSCTLHD

t
DDSCTLA's

m

----

•
---

>
r
rnUse The

I
Appr~

prim Proc:eaor
To H.ndIe The
PIrticuIar Request

-I

U

-0

:xJ

Q
m
::D

~

-<

I
I

0
-n

I
I

OJ

_J

- - - - -~

Figure 2-89 (1 Of 14) - DDS. Input Message Processor Main Segment

3:

Figure 2-89 (2 of 14).
Messages and
POL Segment
ABEND Codes

Step

Extended Description

1

The message DDS NOT DECLARED will be output when the DDSNAME is not
declared in the DDSCTLAs.

DPP0631

DPPSMSGI

2

Valid requests are STATUS, TAKE, CREATE, COMPARE, REPLACE, and
SWITCH. The default is STATUS, and if the code is none of these,
output the message DDS REQUEST NOT UNDERSTOOD.

DPP0711

DPPSMSGI

3

There is a processor HIPO chart for each internal processor:

r-

DPPSMSGI

nm

Z

(I)

m

TAKE

(see Figure 2-89 (3 of 14) )

STATUS

(see Figure 2-89 (5 of 14) )

»
-t

SWITCH

(see Figure 2-89 (7 of 14) )

:0

CREATE

(see Figure 2-89 (9 of 14»

REPLACE

(see Figure 2-89 (11 of 14»

COMPARE

(see Figure 2-89 (13 of 14»

o

3:

m

»
r-

"
o

:0

"m

:0
-t

-<

o

-n

OJ

3:

~

DPPSMSGI (Take)

From Main Segment (Figure 2-89, 1 Of 14)

Input

I1J
rI

LOCK This DOS

r-

I

DDSCTLA

I
I

Z

(I)

m

I
DDSCTLA

~---

I
I
~---t

I
I

0
3:

ill

~
m

Call External
Routine
OPPSTBOS To
Take The Backup

:D

Out-Of-Service

I

Take Backup OutOf-Service2«l

I

l>
rI
."

::D

I

Q
m

I

I
L_

nm

rn

::0

~

UNLOCK This DDS

0

-"3:
OJ

Return To
Segment

(Figure 2-89, 1 Of 14)

Figure 2-89 (3 Of 14) - Take Backup Out-Of-Service Processor

FIgUre 2-89 (4 of 14).

Step

Extended Description

Messages and
PO.l Segment
ABEND Codes

1

Use the internal DDS LOCK function to inhibit the use by other tasks
of this DDS until the function is completed.

DPPSMSGI

2

·The routine DPPSTBOS will cause the backup to be taken out-of-service
(if not already) and will set the DDSCTLA as such.

DPPSMSGI

3

Use the interna'l DDS UNLOCK function to release the LOCK on this DDS.

rDPPSMSGI

esm

Z
(I)
m
C

3:

»
-t

m

:D

»
r-0

:II

O.
'"'G
m
:D
-t

-<

o

."
Q)

3:

DPPSMSGI(Status)

From Main s.gm.rt (Figure 2., 1 Of 14)

Input

r-I
DOSCTLA

If The BKkup Is Out-Of·SeMce. Output
A Mesuge Which Indates The Primary And t---y----,
BKkup DO N.mei With The Indication That
The Backup Is Out-Of·Service

Backup

F'-9

-----_.-

C

3:

I

~

--;

L__

I

Z

en
m

I
I
I

Out-Of-8ervice

r-

n
m

If The Backup Is In-Service. Output A
Message Indic:fting The PriINr( And
Backup DO Names And The Indication

That The Backup Is In&vice

m

:D

»
rI
."

:D

Q
m

:D

~

o

."

Figure 2-89 (5 Of 14) DDS Status Message Processor

Figure 2-89 (6 of 14).
Step

Extended Description

Messages and
POL Segment
ABEND Codes

1

The message indicating the DDSNAME, the primary DDNAME, and the
backup DDNAME will also have the message OUT-OF-SERVICE.

DPP0561

DPPSMSGI

2

Ths message indicated in step 1 will be standard (indicating the
backup is in service).

DPPS0561

DPPSMSGI

r(')

m

Z

(I)

m

C

~

»
-4
m

:xl

»
r."

:xl

o."

m

::IJ
-4

<

o
."
OJ

3:

....~w

From Main

DPPSMSGI (Switch)

Proc:aor (Figure 2-89, 1 Of 14)
Process

Input

~
ill

r- f-+

LOCK This DDS

I
I

(")

I

~---

Ir

m

I

DDSCTLA

I

Call OPPSSWCH
(External Routine)

I

To Perform Switth
Function

I

f---1

~

...-

I
I

J

....

..)

DDSCDDNt

en

DDSCDDN2

C

m

~Jo..

.

/'

m
2

3:

I

--

-

....
.~

...=>

J

~I~(,A

»
-I
m

-»r::XJ

Switch Primary
And Backup 2-91

I

I

rn

I

Metuge

..)

If· a.dtup Was Not
Alreldy In-Service,
Output Appropriate
&ror Mesuge

I
I

...

I

DPP082

~

-0

.::XJ

o
"V

m

:D
-I

-<

o-n

I

I

L_

r-

DDSCTLA

[i)
i+

IUNLOCK This DDS

Return To Main
Segment
(Figure 2-89, 1 Of 14)

Figure 2-89 (7 Of 14) - Switch Backup To Primary Processor

Figure 2-89 (8 of 14).

Step

Extended Description

Messages and
ABEND Codes PDL Segment

I

The DDS LOCK function is invoked to prevent other tasks from interfering with the SWITCH operation.

DPPSMSGI

2

The internal routine DPPSSWCH will accomplish the switching of the
DDNAMES and restart the I/O if necessary.

DPPSMSGI

3

Switching cannot be done if the backup was not already in service;
if this is not true, output a message indicating that the switch
could not be accomplished.

4

The DDS LOCK function will be released to allow other tasks to continue processing this DDS.

DPP0621

DPPSMSGI

rn
m
Z

en

m

DPPSMSGI

C

3:
~

-i

m

::u
~

r."

::D

o
."

m

:xJ

-i

<
o
."
OJ

3:

DPPSMSG I (Create)

From Main Segment. (Figure 2-89, 1 Of 14)

I :=~ ~
Only
Flag

Output

~-

Input

-

-

-

- f- -

-

- I --.

W
nuoo

I.

RE~NLY

Mode, Output The Appropria~ ~-------.r----.....,
Error Message And Return
Directly To The Main Segment

r(")

m
Z

en

m
C

link To The External

3:
l>
-t

Routine DPPSCRBK To
Perform The Function Of
Creating A Backup Copy

m

..

::u

Create A Backup
Copy 2-92

»rI

."

:0

o
."

!IJ

If Create Was Successful,
Output The Status Message
And Update The DOSTATUS
OaU Set, Return To Main
Segment

m

::u
-f

-<

o
."
m
3:

If Create Was Unsuccessful,
Output The Appropriate
Error Message

Figure 2-89 (9 Of 14) - Create Backup Processor

Return To Main Segment
(Figure 2-89, 1 Of 14)

Figure 2-89 (10 of 14).
Step

Extended Description

is

1

CREATE function

2

The·external module DPPSCRBK will direct the actual COpy operation
and bring the backup in-service.

3

The DDSTATUS data set contains the latest information concerning the
DDS declarations. The status message indicates the CREATE completed
successfully.

4

prohibited in the read only mode.

Either the backup was already in
unsuccessful.

s~rvice

or the COpy operation was

Messages and
ABEND Codes POL Segment

DPP8891

DPPSMSGI
DPPSMSGI

DPP0561

DPPSMSGI

r-

om
Z

DPP0641
DPP0591

DPPSMSGI

en
m

o

3:

»-I

m

:u

»r-

DPPSMSG I (Replace)

From Main Segment (Figure 2-89, 1 Of 14)
Process

Input

s-

1m

DDSCTlHD

DOSCH RON

_____

I- _

_

_

""

___ ..

If A User Task Is Already
Using This DDS, Then
Output The Approprim
Error Message And Return

r

nm

. . . . . . . . . To The Main Segment

Z
m

(I)

DDSCTLA

[1J

DOSCTlA

-.J----"'..)

r------~----~L-..

t-[UIDsLJ:jro~UUi5i"NN:12i----'
,1"'--'----...---.----.----""1..,./
----'

I

Set That Backup DDNAME
To Be The New Prirn..-y
DDNAME And Set The New
......... ~-%5~~~Primary DDNAME To Be
t----y---~---.----,l
Y
The 3rd Parameter Entered
_ _.1'00..
.. ......
(Or The Old Backup
- -........//~-----_,
DONAMEI

[

o

~

l>

-f

m~

:D

l>
rI
"V

:a

Turn The Backup-OutOf-Service Flag Off
~

DDSCTLA's

~-

~

m

~

i[1]

::>
....)
r----....---__
----.-----yv

Output The New Status

""-=:J
MeIuges
0

L

_ _ _ _.........

AndWRITEThe DOSTATUS.....
Record

- - - - - - - - - -..................

.--

I

:

~

~--~----~:'~I~

RMum To M.in SegmMt

Figure 2·89 (11 Of 14) - Replace Primary DDS Processor

(Figure 2-89, 1 Of 14)

:D
-f

-<

o-n

Figure 2-89 (12 of 14).
Step

Extended Description

I

The REPLACE function is invalid if a DDSDCB is already opened against
the DDS.

2

If the user did not enter a third parameter, the default will be to
change the old backup to the new primary. In either case, the old
primary will become the new backup.

3

4

Messages and
ABE N 0 Codes PO L Segment

DPP065I

DPPSMSGI
r

The REPLACE function automatically sets the backup in service. (This
is consistent since the old primary will be the new backup - the user
can bring the backup out-of-service with a subsequent TAKE connnand.)
The new status will be output and the current DDS declarations (as
changed by the REPLACE request) will be recorded on the DDSTATUS data
set.

DPPSMSGI

DPPSMSGI

n

m
Z

(I)

m

o

DPP057I

DPPSMSGI

~

»
-f
m

:0

»

r

."

:0

o

."

m

:0
-f

-<

o

""OJ

3:

N
N
N

DPPSMSGI (Compare)

o

rm

ei

Z
en
m
C

3:

»
-t

j------------t______i -______~rnSet The Default Compere

m

::D

DDNAMES To ThIIt Of The
Primary And Backup

DDNAME List

1>
rI
"1:J

:xi

m

o
"1:J

If The User Specified His
Own DDNAMES, Set Those
As The CoInf*8 DDNAMES

m

::D

-t

-<

o

"

III

LINK To The External
Routine OPPSCMPR To
Perform Actual Compare

DDS Compare

Routine 2-93

Figure 2--89 (13 Of 14) - DDS Compare Processor

Figure 2-89 (14 of 14).
Step

Messages and
POL Segment
ABEND Codes

Extended Description

1

The default for the COMPARE request is the compare to
set against the backup.

2

The user can specify his own DDNAMES and effectively compare any two
data sets of like DSORG.

3

The external DDS routine DPPSCMPR will direct the actual compare and
the messages.

primary data

DPPSMSGI
DPPSMSGI
r,r

DPPSMSGI

n
m
Z
en

m

o

3:

»
-f

m

:IJ

»
r
~

:IJ

o
~

m

:IJ
-f

<

o
."
OJ

3:

.

OPPSTBOS

From A DDS Module

Input

~

Output

Process

DDSCTLA

~_D_DSC_D_D_N_l_-l }

__ _

DDSCDDN2
DDSCBOSF

~---

I

I
I
I
I
I

r-

- I..... m

L -

(")

m
Z
en
m

If The Backup Is Already Out·
Of-Service. Return Directly To
The Caller With The Proper
Return Code.

C

3:

...

DDSCTLA

ill

»
-t
m

Set The Out-of-Service Flag
On In The DDS Control Area

....

:2J

And Output A Message Indieating The kkup Is Being
Taken Out-of-5ervice

v

);

:>

...
I
-U

DDSIOA

...

III

.":>

Use The OPEN/ClOSE Half
DOS Routine DPPS OPel To
CLOSE The s.ckup DCB

....

.,

Figure 2-90 (1 Of 2) - DDS Take Backup Out-Of-$ervice

:2J

o
-U

m

:2J

-t

...

Return To Caller

[)PPS()PCL
()pen/Close Half
ADDS 2-98

-<
o

"

Figure 2-90 (2 of 2).

Step

Extended Description

1

Another request may have taken the backup out-of-service before this
module gains control. .

2

This message will indicate that the backup was taken out-of-service
successfully, as requested.

3

The backup DCB will be closed (asynchronously if opened by a different
TCB) and the DDS status will be updated to reflect the change in
serviceability of the backup.

Messages and
ABEND Codes PDL Segment

DPPSTBOS
DPP0561

DPPSTBOS
DPPSTBOS

r
(")

m
Z

(I)

m

C

3:

»
-I

m

:IJ

»

r

."

:IJ

o

."

m

:IJ
-I

-<

o

~

CD

3:

DPPSSWCH

Input

r-

ei
DOSCTLA

~---.~-

rn There
If

m

Z

Is All Opened

DDSDCB Which Had Been

Opened For Input, Then Call 1--_ _ _ _ _....1.-_.....

ECB's

DPPSRCIO To Re-Create The L..-_ _ _ _ _ _ _-------.-----~
To The

en
m

o

3:
»
-t

m

Recreate I/O To
The Backup 2·99

::D

»
rI
o DSCT LA

Switch The Primary AIld
Backup DO Names As Well
As The DCB Pointers

DDSCDDN1

-a

::u

o-a

m

::D

-t

-<

o

"

Return To Caller

Figure 2-91 (1 Of 2) - DDS Switch Backup To Primary

Figure 2·91 (2 of 2).
Step

Extended Description

Messages and
ABEND Codes PDL Segment

1

Switching is not possible if the backup is not already in service.

DPPSSWCH

2

When a DDSDCB is opened for input, these I/O requests will not have
been issued for the backup. This needs to be accomplished since the
backup will become the primary data set.

DPPSSWCH

3

The DDNAME within the DDS control area indicates which is primary data
set and which is backup for the CONTROL and COPY functions. The backup will be automatically taken out-of-service as part of the switch
over function.

DPPSSWCH

,...
n
m
Z
en
m
C

3:

»
-I

m

:IJ

»

r."

:IJ

o."

m

:IJ
-t

-<

o
."
OJ

3:

~
N

N

U'I

DDS Create A Backup

Dr-""P_P_S_C_R_B_K
___ln_pu_t_ _ _ _ _ _--..;F~ro...,~ ~:)~MSGI

(Figure 2-89)

-,

OJ

Process

Output

BackuJ:. Data Set

Update The Backup's DseB As Per
The Primary's DseB

I

I

I
IL ___

[lJ

r

EXCP DCB's

,.

Establish Two OPENed EXCP DCB's

n
m

With Proper Disk Start Address

Z
en
m

INPUT
(Primary)

OUTPUT
(Beckup)

C

3:

~

-I

ill

m

:D

Acquire A Buffer large Enough For One
Full Track And C9\>y The Primary To
The Backup,
Release The Buffer

-,

Then

l>

r

I

I
I

I

I

r-I

I
I

Beckup
Dataset

[!)
If The DDS Is Not In Use Or If In Use
As Output By A User Task, Update The
Last Record Field Of The Backup DseS's

I
'"'0

:D

0

'"'0

m

:D

-I

<
last Record
F"eeid

[ID

."

-

CD

3=:

If The DDS Is In Use By A User T_,
AsynchrOllOUSJy OPEN The s.dwp DCB
And Re-create The 110 For The Badcup
OA

Figure 2-92 (1 Of 2) - DDS Create Backup

0

Figure 2-92 (2 of 2).
Step

Messages and
ABEND Codes PDL Segment

Extended Description

1

The following fields will be updated in the backup DSCB:
RECFM, OPTCD, KEYLEN, BLKSIZE, and LRECL.

DSORG, RECF

2

The primary EXCP will be opened for input, the backup EXCP will be
opened for output, and the extents will be acquired from examining the
Data Extent Block built by the OPEN.

DPPSCRBK

The buffer size will be found using the DEVTYP macro and the COpy
operation will be track-to-track for every track in the extent.

DPPSCRBK

DPPSCRBK

.o

3

4

5

m
Z

(I)

m

The last record field of the backup EXCP DCB (which would be pointing
to the end of the extents as a result of the COpy operation) will be
updated so that during the CLOSE the backup DSCB will be correctly
updated.

DPPSCRBK

Each unchecked reserved DDSDECB for output or READ update will have to
be restarted for the new backup.

DPPSCRBK

o

3:

l>

-I

m

::D

.-l>
o"

::D

"m

::D
-I

-<
o
."
OJ
~

DPPSCMPR

From DPPSMSGI (Figure 2-89 (13 Of 14))
Process

nput

~

Register 1

I

- tI

....

Input List
DDSCTLA
DDNAM

t

I- -

-r--

t--_..J

- -- r----.

I
DDSCTLA

---- -- - --

-.

DDNAMEl

I

~

1

_Joo

...)

I

J

1
I

I

OJ
Read The JFCB's For The
Two DDNAME& Specified
If Invalid Exit

r

I1J Build The Input Control

.",

~

Cards For OS/VS1 System
Utility IEBCOMPR If
Unabie To OPEN, Exit

...

r-----

n
m

~

(I)

Z

m

DDSCMPIN

C

~

3:

»
~
m

!II

I

--"

Set Up The DDNAME List

...

For The Utility IEBCMPR

:D

l>

r
I

-0

::D

J
Message

[!]

~L::J

LINK To IEBOMPR For
The Actual Compare And
Issue Message 75

o-0

m

::D

~

-<

o

."
IEBCOMPR

~

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

Compare

Messages

>LJ

~
Output The Appropriate
Message Indicating Results

Return To Caller

Figure 2·93 (1 Of 2) • DDS Compare

Figure 2-93 (2 of 2).
Step

1

Extended Description

Messages and p"-;L Segment
ABEND Codes

If either of the JFCBs could not be read, output the message UNABLE
TO READ JFCBs and return to DPPSMSGI.

DPP073I

If the DSORGs are not the same type, output message NOT SAME TYPE
and return to DPPSMSGI.

DPP074I

If the control card data set DDSCMPIN cannot be opened and written
successfully, output message DDS COMPARE CONTROL CARD ERROR and return
to DPPSMSGI.

DPP078I

-:JPPSCMPR

r

nm
Z
m

(I)

C

3

4

5

J;PPSCMPR

The two compare DDNAMES should be supplied by DPPSMSGI, DDSCMPIN will
replace SYSIN, and COMPRINT replaces SYSPRINT.
The DDS will be locked during the execution of IEBCOMPR

~

»
-t

m

::D

DPP075I

»

Dy'?PSCMPR

One of the following three messages will result:

D;9~PSCMPR

r."

COMPARE ENDED, DATA SETS ARE EQUAL

DPP036I

COMPARE ENDED, DATA SETS ARE UNEQUAL

DPP076I

::D

COMPARE RESULTS ARE ON COMPRINT.

DPP077I

-<
o

::D

o."

m
-t
."

aJ

3:

From DPPXIMPP
(Figure 2-65)

I\..)

~
W

DPPSRTCP

a

-.

Input

Register 1

J[!]

($1)

XCVT
RESTBL

0

Output

Process

Interrogate The Command
Parameters

Update The DSeB For
The 'TC' Data Set

l

DseB

r(')

PROBL

0
DD1

002

I

GJ

)

Establish Two Opened EXCP
DCB's With Proper Extents

m
Z

en
m

1
From
DeB

Acquire A Buffer Large Enough
For One Full Track And
Perform The Copy Operation
(Track By Track)

I

C

3:

>
~
m

:D

fm

>
rI

Update The Last Record
Pointer In The 'TO' OSCB
And Close The EXCP DCB's

"'V

:D

o"'V
m

DSCB~.-/• • • • • • • • • •

~

-<

o-n
CD

3:

Figure 2-93.1 (1 Of 2) DDS Real Time Copy
Return To Caller

....... 2-93.' (2 Of 2)
Step

Extended Description

Messages and PO L Segment
ABEND Codes

1

The DDNAMEs of the 'from' and 'to' data sets should be in the TIOT.

865
866
867

DPPSRTCP

2

The following fields will be updated:
BLKSIZE, and LRECL •

868
869
870
871

DPPSRTCP

3
4
5

DSORG, RECFM, OPTCD, KEYLEN,

The 'from' EXCP DCB will be opened for input, the 'to' for output,
and the extents will be obtained from the DEBs.

r(")

m

2
en
m

DPPSRTCP

0

s:

l>

The buffer size will be determined using the DEVTYP macro and the
copy operation will be track-to-track.

DPPSRTCP

The lost record field of the 'to' DSCB will be set according to that
of the 'from' DCB.

DDSRTCP

-f

m

:D

l>
r-0

:D

0

-0

m

:D
-f

-<

0

."

ClJ

3:

I\)
I

-

I\)

·w

DPPSASOC

From OSNSl

D_~

.lnPIJt.

~

Process

Regi~eI' 1

C

DDS~

ill
Jo,

...)

DDSIPARM

Set The Parameter Register
For An SVC

...

~1
I

...

1

DDSI

....

~

r-

o

m

,

..

-----

~

Jo,

I

r

.;

Execute The Predetermined
SVC

I

I
I

L. __

---

....

Z

DDSIOA

,m

[j]
POSTThe ECB At
DDSIAECB

..

15
.....

..~

Ji

(I)

m

DDSDCBl

C

DDSDCB2

»-t

~

m

:D

nn<::LII.~l"R

»
rI
"'0

:D

o"'0

m

::D

-f

-<

o

"

Return To System

Figure 2-94 (1 Of 2) - Asynchronous OPEN Or CLOSE

Figure 2-94 (2 of 2).
Step

Extended Description

Messages and
AB END Codes PO L Segment

1

The parameters DDSIPARM and DDSIASVC are set by DPPSOPCL which builds
an IQE and causes this routine to be dispatched via a related IRB.
The task under which the IRB is running should be the same as the tasl<
that opened this DDS (this determination is made by DPPSOPCL).

DPPSASOC

2

The particular request (OPEN or CLOSE) will have been set already by
the module that had called DPPSOPCL. The SVC instruction code will
be in the input parameter DDSIASVC. Either DDSDCBl or DDSDCB2 will
be opened or closed, depending ort the inputs.

DPPSASOC

The ECB at DDSIAECB is the one the task for DPPSOPCL is waiting on.
This results in a RETURN TO CALLER through the IRB path.

DPPSASOC

·3

r("')

m
Z
C/)
m

o

3:

»

-i

m

:0

»
r"lJ

:0

o
"lJ

m

:0
-i

<
o
.,.,

m
3:

From DPPSCHCK (Figure 2-80)

DPPSCHPR

Process

Input

Output

Register 1

,--

Input List

t
t

DDSDECB
Primary DCB

___ JI
I

____

t
t

DCBA
DCBB

I
I
I

r-

---~

I
I

If DCB Pointer In
DDSDECB1 Equals T'le
Primary DCB Pointer In
The input List, Then Set
Outputs To indicate
DDSDECB 1 is Primary
And DDSDECB2 Is
Backup

J--II

I
lI

I
I
I
I

I
I

I

I

I
I

I

I

m
C

If DCB Pointer In
DDSDECB2 Equals The
Primary DCB Pointer In
The Input List, Then Set
Outputs To Indicate
DDSDECB2 Is Primary
And DDSDECBl Is
Backup

I

L

Figure 2-95 (1 Of 2) - Primary DDSDECB Determinator

3:

~

m

::D

>
rI
""0

::D

~

J.

L_~

r-

n
m
(I)

I

I

Primary Or 0

Z

I
I

-I-~

I

Register 15

If Neither DCB Pointer For
DDSDECBl N
,..
I

I

."

I
I

I
I

L_

:D

o

."

m

:D

Set The DDS Control
Area's Address In The
DD5X Lock Word For
This Task

:;!
o

-3:"
CD

OutPUt A Message
Indicating That This
DDS Is LOCKed

Figure 2-96 (1 Of 2) - Lock A DDS

Return To Caller

DPP075

Figure 2-96 (2 of 2).
r-----r---------------------------------------------------------.----------------~-----------~------------

Step

Extended Description

Messages and
ABEND Codes POL Segment

1

The Special Real Time Operating System LOCK (defined by DPPSINIT) will
be used while adding this LECB to the chain.
•

DPPSLOCK

2

The LECB will be posted when all previous DDS LOCKS are released and
all current users unshare this DDS.

DPPSLOCK

3

The DDSX task chain is used to indicate that this DDS is locked out
in case this task should be prematurely terminated.

DPPSLOCK

r-

n

m

Z

(I)

4

The message DDSNAME IS LOC.KED will be outp·ut to inform the operator
of the LOCK condition.

DPP057I

DPPSLOCK

m

o

3:

»
-of

m

:JJ

»
r~

:JJ

o
~

m

:JJ
-f

<
o

."

N
N•

~

DPPSMSGO

From Calling DPS

Input

Process

Output

m

CVT

Follow The Chain Of
Pointers (From 10 HEX)
To Get The Address Of
The SCVT.

CVTTCBP

r(")

m
Z

en
o

m
TCB

~

If the Message Handler

Has Been Initialized

TCBUSER

Issue The Output Via
The Message Macro.

~.

m

JJ

l>

TCBX

r-

TCBXDCVT

I

XCVT

Q

"JJ

m

JJ
~

XCVTCVTS

<

o-n
--1
I
Reg 1

I

____ J

A(Last PARM)

Figure 2-97 (1 Of 2) - DDS Output Message Processor

Figure 2-97 (2 of 2).

Step

Extended Description

Messages and
ABEND Codes PDL Segment

I

This chain will give the address of the SCVT from which it can be
determined whether or not the Special Real Time Operating System
message handler has been initialized.

DPPSMSGO

2

The number of variables in the message has been predefined with the
offline utility DPPXUTIL. This message macro passes the maximum
number of variables for DDS (5).

DPPSMSGO

r-

n

m
2

C/)

m

o

s:
.»
-f

m
:IJ

»
ro"

:0

"m
:0
-f

-<

o"TI
o:J

3:

DPPSOPCL

From A DDS Module Call.

Input

Process

Output

DDSIOA

III
~ Opener TCB

r-

---+

If This Module Is Running
Under The Opener TCB,
Then Execute The SVC
Directly And Return To
The Caller

r
C')

m
ASYNC SVC

Z

r-

en

m

ill
-

-

-

...

C

~~I~d~:eS~a~~eer ~:ner

3:

JOB STEP TCB
IRB

~
m

:xJ

»
ro-

Get An IRB From The
OSNSI System

I
"'0

:JJ

0

"'0

m

Establish An IOE For The
SVC Parameters

:JJ

-I

-<

0

"

Call The Stage 2 Exit
Effector To Schedule
The IRB

OJ

3:

IEAOEFOO
Schedule
IRB

DDSIOA

Wait On The Asynchronous
ECB In The DDSIOA

Figure 2-98 (1 Of 2) - DDS OPEN/CLOSE For Primary/Backup

Figure 2-98 (2 of 2).
Step

Extended Description

Messages and
ABEND Codes POL Segment

1

The SVC to be executed and the address of the task requesting the
service are both in the DDSIOA input.

DPPSOPCL

2

The validation algorithm assumes that the priority of the task requesting the service is less than or equal to the priority of the job
step TCB.

DPPSOPCL

3

The IRB is obtained using the CIRB macro.

DPPSOPCL

4

The IQE contains the parameters for the subsequent routine DPPSASOC
which will be entered asynchronously.

DPPSOPCL

5
6

,..
n
m
2
en
m
0

3:

The stage 2 exit schedules the IQE in step 4 to be executed at the
next task switch.

DPPSOPCL

The WAIT causes a task switch yielding control to DPPSASOC under the
IRB of step three. DPPSASOC posts the ECB in the DDSIOA when completed.

DPPSOPCL

»
-i

m

:0

»
,..
~

:0

0

"U

m

:0
-i

-<

0

-n

aJ

3:

N,
N

~

DPPSRCIO

From A DDS Module
Input

Process

~

Output

DDSIOA

DDSIOA

~------4

ITJ
- - ~-, - - +

I

If This Is BPAM Or BSAM,
Point The Backup DCB
According To The First
Unchecked DDSDECB

Jo.

:>

Backup DCB

r-

I

o

m
Z

I
DDSDECBS

I

en

u------~

m

o

3:

I1J

~

Exit If There Are No
Unchecked DDSDECBs

m

:0

l>
rI
"'0

:0

L

1-

..

---'

DDSDECBs

[]]

~

m

For Each Unchecked
DDSDECB. Start The Same
I/O To The Backup DCB
For The Backup DDSDECB

.,>

::D

~

o"TI

-

I

Retum To Caller

Figure 2-99 (1 Of 2) - Recreate I/O To A DDS Backup

Figure 2-99 (2 of 2).
Step

Extended Description

Messages and
ABEND Codes PDL Segment

1

The OPEN parameters determine if POINT is allowed. The correct TTR can
be obtained using the OS/VSl conversion routine for CCHHR to TTR
against the primary DDSDECB lOB.

DPPSRCIO

2

Unchecked DDSDECB require no I/O restart.

DPPSRCIO

3

Each unchecked DDSDECB is chained sequentially according to the time
that the I/O was issued, so the same order can be used for the backup
DDSDECB.

DPPSRCIO

r(")

m
en
Z

m

o

3:

»
-t
m

:D

»
r-g

:::0

o-g

m

:D

-t

<

o

."

From DPPSBF1 (Figure 2-85)
Or DPPST1 (Figure 2-88)

DPPSBFST

Input

e

Register 1

lL..--------'

User's DCB

Input List
User'~

DCB

t Macro PARAM
Macro Type

1-

DDSIOA

I
I

m

Return To

I
L

r(1

- I ---,
I
I

User's DCB

If The Dataset In Question
Is Not Duplicate, Then Issue f - - - - - - - r - - - - - r - - - - - ' V ' "
The Desired Macro Against
The User's DCB

2

Caller

(I)

m

If A STOW Request Is Made . . . . . . . . . . ..
In READONL Y Mode, Return ..
The Appropriate Return Code
To The User

C

s:
~.
-t

Return To
Caller

-1

m

:0

~

DDSIOA

rI

-a

DDSIOA

t

Execute The Desired Macro
Against The Primary DCB And,
When Appropriate, Against

Primary DCB

The Backup DCB

t

Backup DCB

DOSI DCB 1
DDSIDCB2

:0

0

-a
m
:xJ

-l

<

0

."

m

3:

Return To Caller

Figure 2-100 (1 Of 2) - BlDl, FIND (Type-D), Stow Executer

Figure 2-100 (2 of 2).
Step

Extended Description

Messages and
ABEND Codes POL Segment

1

The chain of DDS control areas is searched for one whose DDSIOA
pointer matches the input (user's DCB DDSIOA pointer). Finding a
match signifies that the data set is a DDS.

DPPSBFST

2

No output is allowed in read only mode (backup computer).

DPPSBFST

3

The DDS is shared during the executions of the macro. If a CONTROL
function is needed (switchover if an error occurs on the primary, or
take backup out-of-service if ~n error occurs on the backup of output), an interim DDSLOCK is placed on the DDS until the CONTROL function is completed.

DPPSBFST

r
(")

m
Z

en

m
C

s:
»
-f

m

JJ

»r
."

JJ

o
."

m
JJ
-f

-<

o-n

DPPSSHAR

From A DDS Module

Input

~

p rocess

Output

OJ Lock The DDS Share Chain
And Clear The Input Share

DDSCTLA
OOSClECB
DDSCSECB

~

ECB

-,I

I

I

I
I

-,
_... _1
I

I
I

I
I

DOSCTLA
--'"

1m
Ilf Thn DDS Is Locked Out.
Add This Share ECB To The
DDS Share Olain. Unlock
DDS Share Chain. And Wait
On The Input Share ECB

~

r(')

:>

m
Z
en
m

C

3:

I

L J_

.

m'f

l>

-f

m

This DDS Is Not Locked

Out. Increment The Share

-+

:D

Counter For This DDS And
UnIodc Thn DDS Share

l>

O\ain
DDSXTCSC

iHJ Atea
Record This DDS's Control
In This Task's DDSX

...

')

rI

o"

:D

~~.~

"

TC8C Share Word

m

:D

-f

-<

o"II

Return To

Figure 2-101 (1 Of 2) - DDS Sh8e Routine

Figure 2-101 (2 of 2).
Messages and
ABEND Codes PDL Segment

Step

Extended Description

1

The share chain must be locked while additions or modifications are
being made to it.

DPPSSHAR

2

The LOCKING task will post all share ECBs waiting to share when it
releases the DDS LOCK.

DPPSSHAR

3

When this task unshares the DDS the share count will be decremented.

DPPSSHAR

4

If this task should ABEND, the DDS cleanup routine could unshare this
DDS by examining the DDSXTCBC chain.

DPPSSHAR

r
C')

m
Z
en
m

o

3:

»
-i

m

:D

»

r

DPPSSRCH

From A DDS Module

Input

~
I

t
t

!

I

Input List

t

Otput
u

,

Register 1

~

p rocess

CD

r

Start Of Table

nm

End Of Table

CI)

Input Argument

'>

Until All Entries In The
Table Are Checked, DO

Z

m

Length Of Each Entry

@

Relative Key Position
Key Length

o

Compare The Key Of
The Input Argument
With The Key Of Thi~
Entry In The Table

3:

!

>
-i
m

::0

l>

r
I

([) Exit If They Are Equal

"'0

::0

(£]

o
"'0

Get Next Entry In The
Table

m
::0

-i

Return Register 15

m

If A Match Was Found, Pass
That Address Back To Caller;
Otherwise. Return Zeroes To
Indicate No Match Found

Figure 2-102 (1 Of 2) - DDS Search Routine

Return To

...

:>

<

o

"

Figure 2-102 (2 of 2).
Step

Extended Description

Messages and

ABEND Codes POL Segment

1

Each entry in the table should be checked, starting with the first
and proceeding serially until the last entry.

DPPSSRCH

2

The caller will be notified by the contents of return register 15
if a match was found. Zero indicates that the argument has no match
in the table, while a nonzero value will be the address of the entry
matching the input argument.

DPPSSRCH
I

o

m

Z

en

m

C

3:

»
-t

m

:D

»
I
o"

:D

"m

:D

-t

-<

o-n

OJ

3:

DPPSUNLK
r---------------

From A DDS Module

Input__________________~

Out

DDSCTLA

DDSCTLA

DDSCSECB
DDSCLECB

-

OJ

-,
I
I

I
I
L_

LOCK The DDSLECB Chain
And Remove This LECS
From The Chain

DDSCLECB
DDSCSECB

If There Is Another LECB
'Waiting To Lock', Set The
Lock Flag On And POST
LECS; Otherwise, POST All
SECS's That Are 'Waiting To
Share' And Set The Share
Count Accordingly - Clear

r
(")

[1]

m
2
m

(I)

C

r----.,.....--..J

3:
l>
-t

m
~

l>
r

Register 1

I

If The 'Hold' Input Is Not
On, Then Unlock The
DDSLECB Chain And
Output The Unlock Message

"
o."

:rI

m

:rI

-t

-<

DDSXTCBC

Clear The Lock Word In The
DDSX Task Chain

Figure 2·103 (1 Of 2) ,. Unlock A DDS

t-----,--------,r------~

I-------~

o
."

Figure 2-103 (2 of 2).
Step

Extended Description

I

Use the Special Real Time Operating System LOCK to inhibit other
tasks from acc'essing the DDSLECB chain while being modified by this
task.

2

A task that is waiting to LOCK a DDS takes precedence over all tasks
waiting to share that same DDS.

3

The caller has the option of holding the DDSLECB chain in LOCK (by
setting the high-order bit of register 1 on) so he may use other
DDS modules to make further modification to the chain. The message
indicates that the DDS LOCK has been released.

4

The UNLOCK function should erase the LOCK pointer in this task's DDSX
chain.

Messages and
ABEND Codes POL Segment

DPPSUNLK

DPPSUNLK
DPP0581

DPPSUNLK

r

n

m
Z
en
m
C

DPPSUNLK

~

»

-f

m

:D

»
r
"'0

:D

o"'0

m

:D
-I

<
o

"01
~

N

N
c.n

-

From A ODS Module

DPPSUNSH

Input

~

DDSCTLA
DDSCLECS

~

DDSCSECB

~

-,

OJ
Lock The DDS SECS Chain

Decrement The Share
- ----. And
Counter By 1

I
I

r-

I
I
I

L_

DDSCTLA

ill

- - --

--

n
m
2

If The Share Counter Went
IT. Zero.POSTThe First ~.
IWaltlng To Lock. If Any, ""' ....
ISet The Lock Flag On

..
to.

)

DDSCLECB

...
...)

DOSCSECB

en
m
C

~

~

-f

m
::rJ

Register 1

~-----

L - -_ _

-

---.

»
r-

@]
If The Hold Input Is Off,
Then Unlock This DOS
SECS Chain

I

-a

::rJ

o-a

m

10
Clear The Share Word In
This Task DOSX TCB Chain

Return To Caller

Figure 2-104 (1 Of 2) - Unshare A DDS

...

)
....

DDSXTCBC

::rJ
-f

DDSXSHAR

o
."

-<

Figure 2-'04 (2 of 2).
Step

Extended Description

Messages and
ABEND Codes POL Segment

I

Use the Special Real Time Operating System LOCK to prevent other
tasks from using the DDSSECB chain while it's being modified.

DPPSUNSH

2

Only after all current users are finished with a DDS can it be
locked.

DPPSUNSH

3

The caller could have specified HOLD (setting the high-order bit of
register Ion) for further modifications.

DPPSUNSH

r(")

m
Z

(/)

4

The share pointer to this DDS control area in this task's DDSX chain
·should be zeroed.

DPPSUNSH

m

C

3:

»
-f

m
;x,

l>

rI

"'0

;x,

o"'0

m
;x,

-f

-<

o

."

CXJ

3:

N

N
U'I
w

DPPSWRST

From A DDS Module
Input

Process

rDDSCTLHD

DDSCTLA's

l
I

-

....

Set The DDS STATUS DCB
Blocksize And OPEN The
DCB For Output

r-

I

om

--'

(I)

Z

m

I

I

CLOSE The DDS STATUS

DeB And Output A Message
Indicating DDS STATUS

C
t-----,r------r------

Updated

3:

»
-f

m

:D

»

rI

o"

:D
Clilculate The DDSTATUS
Record's Length And WRITElr-----.J~-----'-----~
The Complete DDS Control t-----,r------r------..../!

Areas

"

m

:D
-I

-<

o

"OJ

3:

Figure 2-105 (1 Of 2) . Write DDS Status Record

Figure 2-105 (2 of 2).
Step

Extended Description

Messages and
ABEND Codes POL Segment

I

If this is read only mode, output a message indicating that DDSTATUS
WRITE cannot be executed, and if OPEN failed, output a message indicating such.

DPP884I
DPP880I

DPPSWRST

2

Each DDS control area (DDSCTLA) should be output to contain all DDS
declarations. If SYNAD occurs, output message indicating unable to
update DDSTATUS.

DPP8811

DPPSWRST

rn
m

3

The message DDSTATUS HAS BEEN UPDATED will notify the operator that
the DDS declarations have changed.

DPP885I

DPPSWRST

Z

en
m

o

3:
l>

-t

m

:xJ

l>

r

~

:xJ

o
~

m

:xJ

-t

<
o
."
OJ

3:

DPPSXTCB

.From A DDS Module

Output

Process

Input

DDSlI:TCBC

~---.

[!J
-

Search Through DDSX Chain
..... For A DDSX TASK Chain
Whose TCBX Is Same As This
Task's

r-

n
m
Z

en
m

o

DDSXTCBC
If No Match Is Found.
Allocate A New DDSX Task

1 - - - - , . - - - - - , - - - - -......

Olain And Olain It To The
DDSX

~

_ _~_~

3:

>

-I

m
::D

l>
rI
-0

::D

o-0
m

Return The Address Of
The OOSX Task Chain
In Register 1

::D
-I

<

o

-"
CD

3:

Return To Caller

Figure 2-106 (1 Of 2) - DDS Task Chain Locater

Figure 2-106 (2 of 2).
Messages and
PDL Segment
ABEND Codes

Step

Extended Description

1

The DDSXTCBCs are chained together and each one contains the address
of its TCBX.

DPPSXTCB

2

Allocation of a DDSXTCBC is obtained only once per task, and it is
initialized at allocation time.

DPPSXTCB

3

The address of the DDSXTCBC, either found or recently allocated, is
returned to the user.

DPPSXTCB

rC')

m
2

(I)

m

o

~

»
-I

m

::u

»
r-0

:JJ

o-0
m

:JJ
-I

-<

o

"OJ

3:

LICENSED MATERIAL..;;. PROPERTY OF IBM

Supplementary Services
The Supplementary Services functional area is composed of individual subroutines each of which is entered by a macro call. These routines are not
logically associated with any of the other functional areas but are used as
subroutines by most of the functional areas.

2-258

Special Real Time ()perating System Supplirnentary Services

Subroutines

OPPIPFRE Page Unfix

DPPXDEFL -

OPPTWSVC - .

Branch Entry

I

Define Lock

2-110

a-

n
m
Z

(I)

m

C

3:

~

m

-»r:D

I
."

~

."

m

...-<
2J

o-n

Figure 2-107 Special Real Time Operating System Supplementary Services Overview

From GETWAIFREEWA

~~I~

Input

I
I

Register 0

Register 1

I
I

Output

Procell

_1 W

ItsueGETWASVC

~

n
m
Z

I

~OO

r

FREEMAIN Services
Required

tI)

.~GrnvA
_ _ "j
..
FreMi

I

m

C

~

»
....
m

~ t

ra

..-

~

SeMces'i~~;:iad,

rrnGETMAlN
A New GFCB Is Built,
And Added To The GFMB And
TMCT Chilins. The Additionll
GEl:\YA Core Is Gotten V ..
GETMAIN.

Return
To
Caller

);

...

..

~
~

""""'-.

I

\

. . fffi

Normal Completion

Return To Cal_

Figure 2-108 (1 Of 2)

- GETWA!FREEWA Branch Subroutine

:JJ

TMCT

GFMB

GFCB

I
."

I

:JJ

I

m

~

o
"V

GFC8

~

t

GFCB

:JJ
....
-<
o-n

CD
~

Figure 2-108 (2 of 2).
Step

Extended Description

Messages and
ABEND Codes POL Segment

1

A GETWA SVC is issued.

DPPTGWFW

2

FREEMAIN services are indicated by register 15 being negative and
equal to register 1. Register 1 contains the complement of the
address to be freed, and register 0 contains the length. The
FREEMAIN is issued and then control is returned to the user.

DPPTGWFW

3

GETMAIN services are indicated by register 15 being negative and not
equal "to register 1. The high-order byte of register I contains
012 3

!

r-

DPPTGWFW

m
Z
CI)
m

o

456 7

3:

-...--~

GETWA

o

»
-C

In of GFMB needing expanding

m

:zJ

TYPE

»
r-

00 - A.p
01 - AT
10 - PC

"U

:zJ

o
"U

Additional GETWA space is obtained, a GFCB is created and initialized,
and the GETWA is retried. If CBGET core could not be obtained, the
GETWA storage is freed, and return code 8 is passed to the user.

4

If register 15 is not negative, return is passed to the caller.

m

:zJ

-t

DPPTGWFW

<

o

"aJ

3:

DPPTWSVC

From SVC Call By
DPPTGWFW (Figure 2·108)

Input

I

Reg 0

I

~
to.

and

f

I

)

Output

Process

ill

I

~
..

GETWA Function

r - - r+

TMCT

~----

I

...

I

--I

......

.....-

I

A Block of Virtual
Storage Is Allocated
To The Requester

DPPTWSVC
A Block Of

GETWA
2·109
(3 Of 6)

Subpool Zero

Virtual Storage

I

I

GFMB

~-- -- -+I
I

ill

.Jo-...

FREEWA
Function

f--+

.

I

I

GFCB
~----

...,.,

....
-.

---

~-+- r-+

I

I
"0

1m
t.......
~

Branch Entry
(Used By SRTOS
Task Management)

..

I
I

.......

""'

All Virtual Storage
Allocated To The
Requester Is
RetUrned

::J:J

o
"0

m

~
-<

o"TI

DPPTWSVC

Branch Entry
2·110(lOf 2)

I

I

----- _-.J

Return To Caller

Figure 2-109 (1 Of 6) - GETWA/FREEWA

3:

r-

I

I

C

l>

I

Blocks Of Subpool
Zero, Virtual Storage

m
Z
en
m

::J:J

FREEWA
2·109
(5 Of 6)

I

I

(;

~
m

OPPTWSVC

I

GFCBGFBE

GFBE'

..L

I
-~

Or A Block Of
'Virtual Storage
Is RetUrned

r-

Figure 2-109 (2 of 6).

Messages and
ABEND Codes POL Segment

Step

Extended Description

1

The function (GET or FREE) is determined by register 1. If negative,
the request is a GETWA. If positive, it is a FREEWA. A detailed
description of the GETWA function is shown in Figure 2-109 (3 of 6).

DPPTWSVC
DPTWSVCl

2

A detailed description of FREEWA is shown in Figure 2-109 (5 of 6).

DP;pTWSVC
DPTWSVCl

3

The branch entry to GETWA is used by Special Real Time Operating
System task management only (DPPTPMON). It is used to free all AP and
AT type GETWA storage allocated to a· task. A detailed description of
the branch entry function is shown on Figure 2-110.

DPTWSVC3

r-

n
m
Z

(I)

m

o

3:

»
-t

m

::D

»r-

"
o

::D

"m

:D
-of

<

o."
CD

3:

OPPTWSVC

From DPPTWSVC .
(F.".. 2·109, 1 Of 6)

~

I

I

Reg 0

~
Validity Oleck
'" .:> ~
Request, If Invalid

r

And

Register 15

Set Return Code,
Then Exit

TMCT

.~

-n

r-

GFMB

....

~

TMCT~Z

00

......

V
....

~

."'~

-

1-

1---'"

m
Z

Find GFMB For Large Enou!tt
Block Size And See If There
Is Any Available -

en
m

"''''

L~C8

C

==
~.

rrn
.:>

.....

.....

Allocate Core To

... )

User

(

TCBX

(!J
If No Blocks Are Available
Set Up Code For Branch
Subroutine (DPPTGWFW)

TCBXTGWA

m
:a

Register 1 =
Pointer T c Core
For User

»
rI

GFBE

~

I
I

Type

0, AT

GFBE Type - AP
TCBXQGWA

J

I---.f

I

Block Of Subpool
Zero Core

I

Or
TMCT

TMCTEXGW

---1

GFBE

Type" PC

I
A Block Of
Subpool Zero Core

I
Figure 2.,109 (3 Of 6)

- GETWA Function

Return To Caller

Register 1

r-1

I

."

:a

o."

m

::0

-I

-<

o
-n
ell

==

Figure 2-109 (4 of 6).
Step

Extended Description

Messages and
ABEND Codes POL Segment

1

The size of the request is validity checked to ensure that the
request is riot for zero bytes. A zero request will not be honored,
and a return code of 4 will be returned.

DPPTVSVC

2

Each GFMB is checked to see the block size it represents. If the
blocksize (GFMBSIZE) is equal to or greater than the requested size,
the number of blocks available (GFMBFCNT) is checked. If there is a
block available, a GFCB for the size with available blocks is located
(GFMBGFCB) and a GFBE is taken from the free chain (GFCBGFBE). The
core address for the core represented by this GFBE is calculated.

DPTWSVCl

3

The GFBE for
TCBXTCWA
TCBXQGWA
TMCTEXGW

the
for
for
for

core being allocated is then chained to the user
Type = AT
Type = AP
Type = PC

The core address is placed in register 1. If a positive return code
is being passed to the requestor, register 1 will be set to negative
1.
4

If no core is available, register 15 is made negative and the highorder byte of register 1 is set up with a code for the type and size
as follows:
High-order byte bits
0

1

2

~

0 = AP
1 = AT
2 = PC

345 6 7

-

GFMB ID for size

r(")

m
Z
en
m
C

DPTWSVCl

3:
l>
-I

m

:D

l>
r-

DPPlWSVC

From~VC

(Figure 2·109, 1 Of 6)

Input

~
[III

,

I

to.

...;>

I
..J

TMCT

~

........ ' .....

~''''-

- --r:~"'1l1

'

R..,

...

..

15

r-

.)f

Validity Check
Request. If Im.leI.

GFCB
~'

~

Output

(;
m
Z

ISet'Return Code
IThen Exit.

(I)

:>

m

ACT

C

g.

»
-t

m

-, ._._-

:D

»rI

TCB

""U

:D

(

TCBUSER
GFBE
TCBX

,,,aJ\luw~

o""U

GFCB

!

:D

[~]

..

...

")

r

Type,.
GFBE

m

-t

<

GFCBGFBE

Calculate The GFBE
Address For The
Core Being Freed

o"TI

•

~T

TYIII • AP

)

~

...

..>

GFBE's
TMCT

IM""!.!:J\""

.....

GFBE

....

~

:>

l!l
Free The Core

Return The GFBE To The
Free Q\ein (GFCBGFBG)

Type· PC

F'.gure 2.109 (5 Of 6)

. FREEWA

Function

Retum To

c.u.

J

Figure 2-109 (6 of 6).
Step

1

2

Extended Description

Messages and
ABEND Codes POL Segment

The GFCB that represents the storage to be freed (address falls
within GFCBFRST-GFCBLAST) is located. If the address is not
represented by a GFCB, it is invalid. The GFMB is then located,
and the address is checked to ensure it falls on a block boundary
for the blocksize (address/GFMBSIZE with no remainer). If it is not
on a block boundary, it is invalid.

DPPTWSVC

The GFBE is located for the specified core.

DPPTWSVC

rn

m
Z

(I)

3

If the allocated bit is on in the GFBE, the GFBE is dechained from
its existing chain and added in to the GFCB free chain (GFCBGFBE).
If the allocated bit is not on, it is an invalid free request and
the requestor is given a return code 4. If all blocks in the GFCB
are now free, the GFCB is moved to the end of the GFMB chain. If.
the GFCB is not the initial allocation and all blocks are free and
the total free count is larger than irtitial allocation and free count
for this GFCB, the GFCB is de chained and freed. The compliment of
the GETWA address is placed in registers 1 and 15 so that the branch
subroutine (DPPTGWFW) will FREEMAIN the GETWA storage.

DPPTWSVC

m

o

3:

>
-f

m

::D

>
r."

::D

o
."

m
::D
-I

-<
o

-n

g,

3:

DPPTWSVC

From DPTPMON3
(Figure 2·17)

GFCB
GFCBGFCB

TCBX

GFCBGFBE

Free All AT And
AP Core Allocated
By This Talc

~

_ _ _ _ _ _~---, _ _- -.......

(

r\
iJ

m
Z
en
m

GFCB
GFCBGFCB

(

co

C
3:

GFCBGFBE

~

m

:xl

».
rI
~

GFCB

(

:xl

GFCBGFBE

)

Q
m

:xl
-f

-<

,,,o
TCBX
TCBXTGWA
TCBXQGWA

Figure 2·1' 10 (1 Of 2) • GETW A Branch Entry

OJ

3:

Figure 2-110 (2 of 2).
Step

I

Extended Description

The GFBE is dechained from its existing chain. The GFBE ID field
is used to calculate the GFMB which represents the core size.
The GFCB address is obtained (GFMBGFCB), and the GFCBowning the
block is located and the GFBE returned to the GFCB free chain
(GFCBGFBE). The address of the chain to be processed is'passed to
the branch entry by DPPTPMON in register 1. The processing terminates
when this address points to itself (all GFBEs are removed from the
chain). If all blocks in the GFCB are now free, the GFCB is mould
to the end of the GFMB chain. If the GFCB is not the initial allocation and all blocks are free and the total free count is larger than
initial allocation and free count for this GFCB, the GFCB is dechained
and freed. The storage represented by this GFCB is then FREEMAINed.

Messages and
ABEND Codes PDL Segment

DPTWSVC3

r-

n

m

Z

en

m

o

3:

l>
-t
m

::D

l>

r-

o"

::D

"

m

::D

-t

-<

o

."

CD

3:

lJPPTRGWA

From DPPTPSVC (Figure 2-21)
Or DPPTPMON (Figure' 2-16) Process

npu

Output

~

GFBE

[]

..
...

1m
Reg 0

o Or A(TCBX)

J'...->

Locate GETWAIFREEWA Control
Block' And Dechain It.

K....

m
Z

en
m

o

....

... )

TMCT

I

I ..

Place Control Block On PC Chain

.

)-

~

Reg 1

TMCTEXGW

I

A(GETWA Area)
GFCB

TMCT

r(")

I!

A

If Register 0 Is Zero

I

I

/I

!m

GFCBNEXT

.....

./

TCBX
Else If AP Request Place Control
Block On AP Chain

l .....

...;)

TMCTGFCB

I

TCBXTGWA

TCBX

..

10

... ~

.
Figure 2110.1
(1 Of 2) . GETWA Control Block Transfer

Lo.

Else Place Control Block On AT
Chain

1./

Return To Caller

I

TCBXQGWA

n

n
n

3:

GFBE

~

I

m.
:lJ

l>
rI
~

GFBE

:D

I

o
~

m

:D

-I

-<

o.."

GFBE

I

Figure 2-110.1 (2 of 2).
Step

Extended Description

1

The GFCBs are scanned to locate which one controls the GETWA area
passed in register 1.

2

A zero in register
the PC chain.

3

A 4 in the high-order byte of register 1 indicates that the area is
to be placed on the AP chain.

o indicates

that this area is 'to pe placed on

Messages and
POL Segment
ABEND Codes

DPPTRGWA
DPPTRGWA
r-

DPPTRGWA

n

m
Z

en
4

An 8 in the high-order byte of register 1 indicates that this area is
to be placed on the AT ·chain.

DPPTRGWA

m

C'

s:

}>

-I

m

::D
}>

r~

:IJ

o

~

m

:0
-I

-<
o

-n

NI
N

....,

-

DPPTCSVC

From CHAIN Macro CIIII

Input

~

SCVT

rm

SCVTP1LO
~VTP1HI
J.

SCVTP2LO

..

_~HI

~~

Procea

~

Validity Check Chain
List Addreaes:
• CHAINORG
• CHAINBLK
• CHAINECB

r-

Register 1
Chain List

nm

I

Z
m

U)

C

O1ain Ust
~

r.t..IAINAI

I(

...

rm

..;;
~

'I

,

Add Or Remove The

Block (CHAINBLK)
From ll1e Users OIlin
(CHAINORG)
Depending On The
FIIgi (CNAINFLG)

s:

Modified Users Chain

~
m

... r

../I

:0

l>

Ip

rI
User Control Block Chlln

":0

l

~

m

....:0
-<

OIlin Ust
J.

CHAINCC

..)

rID

POST Users ECB
(CHAINECB) With
Specified Completion
Code (CHAINCC)

\ ../

I

JECB

Return To Caller

Figure 2-111 (1 Of 2) • CHAIN SVC

.
....

POSTed ECB

-

J

o-n

Figure 2·111 "(2 of 2).
Step

Extended Description

Messages and
ABEND Codes POL Segment

1

The addresses passed to CHAIN in the chain list (CHAINORG, CHAINBLK,
CHAINECB) are checked. They must be within the partition (SCVTPlHI,
SCVTPlLO). If two partition operation, they must be within either
partition (SCVTP2HI, SCVTP2LO).

DPPTCSVC

2

The block passed (CHAINBLK) is added to or removed from the specified
chain (CHAINORG). If the first and add flags are on, the new block
is added at the origin. If the add flag is on, the chain is scanned,
and the new block is added to the end. If the order flag is on, the
new block is inserted in the chain in ascending order by the value in
the CHAINORD field. The chaining pointers in the blocks are displaced in the blocks by the value in CHAINNDX. If the add flag is
off, the block is removed from the chain.

DPTCSVCl

3

The specified ECB is posted with the specified completion code from
the chain list (CHAINECB) if the operation completed successfully,
otherwise, the user is given a nonzero return code.

r
(")

m
Z

en
m

o

3:

»
-I
m

:xl

»r

"
o

:xl

"

m

:xl

-I

-<

o

"T1

DPPTCBGT

From CBGET Macro Call

Input

1_____
Reg_O---,I

and

l

Register

l

Output

,!rfl
.......... 1l..!.J Determine If
Request Is
CBGET Or
CBFREE

SCVT

SCVT

r-

.SCVTPLST_
~v

(;
m

UUMY

,I

Z

(I)

t

/
../

m

C

PSCB
Chain

3:

~

CBGET

m

:D

.

PSCB

Modified

OPPTCBGT

PSCB
Chein

OBGET
2-112
(3 Of 6)

,...);
I
."

:D

J

Q

m

:D

-t

PSCB

~________-r-----r------~~Y~/

CBFREE

•

-<
o'TJ

1

~_ _~_ _ _ _ _ _ _ _~_ _ _~~_~....., _ _ _1_.--J
OPPTCBGT

I

I

CBFREE
2·112
(5 Of 6)

SUBPOOL
253
(PQA)

Con

Return To

Figure 2-112 (1 Of 6) - CBGET SVC

c.ler

Figure 2-112 {2 of 6).

Messages and
ABEND Codes POL Segment

Step

Extended Description

1

Register 1 is checked to determine if the request is a CBGET or
CBFREE. If register 1 is negative, the request is CBGET; if positive,
the request is CBFREE.

DPPTCBGT

2

Blocks of protected storage (PQA Subpool 253) are allocated to the
requestors in 32-byte multiples (i.e., a request for 50 bytes will
allocate 64). The requestor can have any PSW protect key; however,
if he does not have zero, he will get a protection interrupt when he
attempts to store in the allocated storage. The core will be cleared
to zeros before it is allocated to the requestor.

DPPTCBGT

3

Blocks are returned to the pool of PQA by the CBFREE function. The
freed core will be combined with any adjacent free core at the time
it is freed.

r

o

m
Z

en
m

C

s:
»
-f

m

::D

»r
~

::D

o"'V

m

::D
-f

<
o

."

m

s:

From DPPTCBGT
(F.... 2-112, 1 Of 6)

DPPTCBGT
Input

I
I

Register 0

Register 1

0uIput.

~
..~IITICllculate The Number

I
I

Of

32 Byte Blocks Required
To Satisfy The RIqUISt

SCVT

rei
m

...

...)l

Z

SCVT

.. ......

SCVTPLST
SCVTOUMY

PSC8 Chlin

:.-

1mSIerch PSCB Loop To
Find A PSC8 WIth

Enough Free Core To
Satisfy The RequlSt

\
(I
~

(

~DI'"\,;NI

0

._ ... ,.

_.- .....

~

...
....)

1m
....

If The PSCB Is Not FOI'
The Euct Amount Of
Core Required Crute A
New PSCB And Put It In
The OIain

...

Modified

PSC8
O\ain

~

(
(

~

0

RItUm
Addnss To Requester
Subpooi253
St
-I
m

:JJ

l>
r~

II

o."

m

:JJ
-I

-<

o"'T1

DPPTCBGT

From DPPTCBGT
(Figure 2-112. 1 Of 6)

"PUt

I

1

I

Register 0

~
I

[1]

:")
~

Register 1

Calculate Number
Of 32-8vte Blocks
Being Freed

...n

Validity Check
Address

m

I

z

PSCBID

(I)

m

} PSCB

C

"III

Sl~{
To Be

~

PSCBFCNT Will Have A
Number Representing The
Number Of Free 32-8vte

Freed

>
-t

m

Bloc'" \

::D

1m

1~1$r-~NII

~

jo.

..>

Free The Storage

...>

I

I
"'D

::XJ

o."
SCVT

II]]
~HNI:Jt

r ...... r

''''

~
...

PSCS's

(

Lj
~

Return To Requester

Figure 2·112 (5 Of 6)· CBFREE Function

SCVTPLST
;)\.,Yluvm

Modified
PSCB
Chain

)

::D

-t

~

Attempt To
Combine The Freed
PSCB With Any
Adjacent Free

m

<

o
."

Figure 2·112 (6 of 6).
Step

Extended Description

Messages and
ABEND Codes POL Segment

1

The address passed to be freed (in register 1) is backed up by the
PSCBLNTH value (a PSCB is built immediately preceding the core it
represents). A check is made for the PSCBID field (hexadecimal
'C9C4'~ If the ID is valid, the address to be freed is valid.

DPPTCBGT

2

The storage being freed by this request is freed by storing the
number of blocks being freed in the PSCBFCNT field.

DPPTCBGT

3

The next PSCB in the circular chain (PSCBNEXT) is interrogated to
determine if it represents free: core (PSCBFCNT nonzero). If it does,
the number of blocks it represents is added to the.current PSCB and
the PSCBNEXT PSCB is removed from the circular chain. If it represents allocated core (PSG.BFCNT =.0), the chain is not modified.
The previous PSCB (PSCBPREV) in the circular chain is then checked
to see if it represents free core. If it does, the number of free
blocks in the current PSCB is added to the number of free blocks in
the previous, and the current PSCB is removed from the circular chain.
If the previous PSCB represents allocated core, the chain is
unmodified.

r-

om
Z

en
DPPTCBGT

m

o

s:

....l>rtI
:D

l>

r-

"'0

:D

o"'0

m

:D

....
-<
o"T1

DPPIPFIX
From OSMI

Procea

~

Input

..~m

~

I

Get Array DPPXFIX
If Invalid, Exit

. 1m
....

ArrlY OPPXFIX

L

l

I

I

...
r

Requested Pages
'Fixed' In Real
Storage

L

Load Module Name

.. l@l
N

Item Type 'L' - Load
Module Fix Request

r-

.. /I

Array Number

om
Z

PFIXLOAO PFIXHIAD

en
m
C

~

Item Type 'N' ~ Numbered I
Array Fix Request
}

»

PFIXLOAO PFIXHIAD

N

.-4

m

:II
A

>lrn

Array Name

Item Type' A' - Named
Array Fix Request

~

I
I

I

C

[!]

FFFFFFFF

Item Type 'c'
Control Block Fix Request

1
}

PFIXLOAO PFIXHIAD

A
{BGET
GETWA

1 PFIXLOAD

rI

PFIXHIAD

."

:II

o
."

FFFFFFFF
Array DPf>XFIX

m

:II
-I

-<
o
."

--'"

o:J
~

1°

Fiure2-113
lOf 2)
9

- Page

FIX

Routme

Issue Ending
Status Message

I

OSNS1

Figure 2-113 (2 of 2).
Step

Messages and
ABEND Codes POL Segment

Extended Description

1

Array DPPXFIX (VS array) is located by the GETARRAY macro.
array cannot be found, the FIX routine terminates.

2

If the

DPP047I

DPPIPFIX

A BLDL is issued for the load 7"mOdulej if it is found, the module is
loaded. If a fix length is specified, the length is added to the
entry point address to get the fix length. If no length was
requested, the module length as returned by the LOAD is added to the
entry point. In either case, the address range is fixed via the
DPPFIX routine. If the FIX is successful, the addresses -are stored
in the DPPXFIX array (PFIXLOAD and PFIXHIAD).

DPP042I
DPP043I

DPPIPFIX

The numbered array is located via GETARRAY. If a length was
requested, it is added to the start address to get the range to be
fixed; if not, the entire array is fixed. If the FIX is successful,
the fixed address range is put in the array DPPXFIX.

DPP043I
DPP048I

Same as 3, for 'named' arrays.

DPP043I
DPP048I

DPPIPFIX

DPP043I

DPPIPFIX

r
(')

m
Z

en

m

C

~

3

4
5

6

The control block to be fixed is specified in the name field where
'CBGET' is a request for the CBGET storage & 'GETWA' is a request for
the GETWA storage. If a length was requested it is added to the
start address to get the range to be fixed, if not the entire control
block is fixed. If the FIX is successful the FIXed address range is
put in the array DPPXFIX.

l>
-f
m

::D

l>
r-a

::D

o
-a

m

::D
-f

-<

o
."

A message is issued stating whether or not all arrays and load modules DPP049I
were fixed successfully. A user ABEND will result if an invalid
DPP052I
address range is specified.

DPPIPFIX
DPPIPFIX

USER 32

DPPIPFIX

DPPIPFRE X19

OSNS1
Input

~

Output

Process

Array DPPX F IX

l

PFIXHIAD

PFIXLOAD

IT]

"')

~

N

PFIXlOAD

PFIXHIAD

'"

..'">

UNFIX Previously
Fixed Address

Ranges

Page Fix Count
Reduced For

Address Range

r(;
m
Z

en
m
C

~
A

PFIXLOAD

»-I

m

PFIXHIAD

:xJ

»
r-

FFFFFFFF

I
-0

:xJ
-

-- -

o
-0

m

:xJ
-I

-<
o

"

-

Figure 2 114 (1 Of 2)

- Page

Unfix Routane

OSNS1

Figure 2-114 (2 of 2).
Step

I

Extended Description

Array DPPXFIX is located with GETARRAY. A loop is set up to process
each item in the array_ If the PFIXHIAD is nonzero, the address
range (PFIXLOAD - PFIXHlAD) is used with routine DPPFREE to unfix all
previously fixed virtual storage.

Messages and
PDL Segment
ABEND Codes

DPP047I

DPPIPFRE

r-

n

m
Z

en

m
C

s:

l>

-I

m

:D

l>

r-

~

-

:D

o

~

m

:D
-I

<

o."
OJ

s:

DPPXDEFl
DEFLOCK Mecro c.l1

Input

~

Register 0

l

Resource Neme

l

LOCKCBLK

:~m

I

,

SCVTLKCB

I

A

...

Irn

LOCKCBLK

~

LOCKNEXT
LOCKNAME

..:>
..

r-

_

Requests

LOCKCBLK
LOCKNEXT
LOCKNAME

..)

I

If DEFLOCK MlQ"o W.
A TYPE-GET And A
PrwIousIy Defined LOCK
Control Block W. Found,
Increment Count Of

SCVT

I

Se.-d1 For A Previously
Defined LOCK Control
Block

....

..)

LOCKCBLK

n
m

LOCKCNT

fI)

Z

m

C

!:

»
-t

SCVT
If DEFLOCK Macro W.
A TYPE-GET And No
Previously Defined LOCK
Control Block W. Found;
Build, Initillize, And Add
A New LOCKCBLK Onto
The Chain Of LOCKCBLKs

-""

....7>

m

LOCKCBLK
LOCKhcJl.I

SCVTLKCB
~

:D

»r-

L\A;".II.\oY
LOCKCNT

I

I Clr.KCRLK

"V

:D

~

m

Joo.

...7>

. :>

If DEFLOCK MlQ"o W. A
TYPE-REL And A Prwiously
DefIned LOCK Control Block
W. Found, Decrements Count
To Requests

'rn IfRemove
Count Is Leu ThIn One,
LOCKCBLK From
~nAncl

...

SCVT

-t

SCVTLKCB

o

<

I

I

A

("

Free It

"'

I

.
..'"
...
..)

:D

LOCKCBLK
LOCKCNT

i------l}
LOCKCsLK

I

LOCKCNT
I
I
I
L _______ -'I

0eIe1ed

R.tum To c.tler

Figure 2·115 (1 Of 2) • DEFLOCK Function

-~"

Figure 2-115 (2 of 2).
Step

Extended Description

Messages and
PDL Segment
ABEND Codes

,

I

On entry to DPPXDEFL t register o contains the resource name.

DPPXDEFL

2

A CHAIN macro call is used to add the LOCKCBLK to the chain of
LOCKCBLKs.

DPPXDEFL

3

A CHAIN macro call is used to remove the LOCKCBLK from the chain of
LOCKCBLKs.

DPPXDEFL

r

n

m

Z

(I)

m

o

s:

:t>

-t
m
::D

:t>
r

~

::D

o

~

m

::D

-t

<

o

-n

DPPXlOCK

...~

LOCK M

nput

Call

Process

Output

Register 0

Resource Name

">

Y

.)

m
Validate LOCK Control Block
Address

LOCKCBLK

..
t'"

A

.....

r
Register 1
LOCKCBLK
A(Lock Control
Block)

m
Z

...

If It Is A LOCK Request And
The Resource Is Available,
Set LOCKFLAG

n

lor.KFLA(;

...

en
m

o

s:

l>

SCVT
LOCKCBLK

I

SCVTLKCB

LOCKNEXT
LOCKNAME

rnIf It Is A LOCK Request And The

-f

m

.A

~

:::0

.....

Resource Is Not Available, CHAIN
A WAIT Control Block To The
LOCKCBLK And WAIT

..

IDr.Kr.RIK

.

LOCKWAIT

LOCKCBLK

»
r
I
"V

~

:::0
LOCKNEXT
LOCKNAME

WAITCBLK

.........,

...

WAITNEXT

If It Is An UNLOCK Request And
Another Task Is WAITING On This
Resource; UnCHAIN TIle First
WAITCBLK And POST The Task
That Is Waiting

K"....

-<

~

LOCKCBLK
"-

')

-v

I}~
:
WAITCBLK
L______ -'

I

I

Return To Caller

:::0
-f

o

WAITCBLK
r-----'
I

Figure 2-116 (1 Of 2) - LOCK Function

o
"V

m

Figure 2-116 (2 of 2).
Step

Extended Description

Messages and
PDL Segment
ABEND Codes

1

The resource name in register o must match the resource name in the
LOCK control block pointed to by the address in register 1.

DPPXLOCK

2

The CHAIN macro is used to add the WAIT control block to the bottom
of the WAITCBLK chain.

DPPXLOCK
r-

n

m

Z

(I)

m

C

3:

»
~

m

:D

»
r\J

:xl

o\J

m

:D
~

-<
o
."

OJ

3:

DPPXSVCP
From SETPSW MIICrO c.l1

Input

I

~
Joo

Register 1

Output

I

...)

rm

Validate Input Option Flags

I"'"

rn

TCB

J

.

Build Current PSW Output
Option Flags

I

...

Z

(I)

m

TCBJSCB

o

.

JSCB
"II1II

n
m

..

rn

"

~

m

~

Set Authority Bit In Job
Step Control Block

. ">

3:

JSCB

JSCBOPTS

::D

>
I"'"

[iJ

I

"::Do
"m
::D

Branch To MODESET

IGC107

I.

I

I

Mode Set

-4

I

<
o
."

A

[!J

...
JSCB

Reset Authority Bit In JSCB
"l

...

Figure 2·117 (1 Of 2) - SETPSW SVC

Return To

JSCBOPTS

to
3:

Figure 2-111 (2 of 2).
Step

Extended Description

Messages and
ABEND Codes POL Segment

1

The input option flag in register 1 is used to indicate the desired
PSW setting. This flag must conform to the bit settings that the
MODESET PSW recognizes. (See OS/VSl Supervisor Logic SY24-5l55.)

DPPXSVCP

2

DPPXSVCP builds an option flag based on the PSW setting at entry to
DPPXSVCP. The user can then reset the PWS back to the original PSW
by using these option flags as input option flags on another
SETPSW SVC.

DPPXSVCP

3

Bit 7 of the JSCBOPTS field in the Job Step Control Block is set to
allow this task to branch to the MaDESET routine.

4

MODESET is used to change the old PSW setting.

r-

n

m

Z

en
m

o

3:
l>
-I
m

::IJ

l>

5

Bit 7 of the JSCBOPTS field in the JSCB is reset to the state it was
in at entry to DPPXSVC.

r-

-0

::IJ

o-0

m

::IJ
-I

<

o
."
to

3:

LICENSED MATERIAL -

PROPERTY

OF

IBM

High-Level Language Interfaces
The Special Real Time Operating System routines provide an interface to
allow pL/I and FORTRAN users to use most of the services provided by the
Special Real Time Operating System. The interface routines are independent of the compiler level or the optimizing compilers. Figure 2-118
lists the Special Real Time Operating System macros supported by the interface routines for PL/I. The macros in the following tabI'e are also supported for FORTRAN, but there are no default structures.
PL/I
Macro Name

ID
Structure Name

PATCH
PATCH Param
PTIME
PTIME
DPATCH
REPATCH
GETARRAY
GETITEM
GETBLOCK
PUTARRAY
PUTITEM
PUTBLOCK
MESSAGE
PUTLOG
GETLOG
DUMPLOG
RECORD
PATCH WAIT
Figure 2-118.

0
0
4
4
8
12
16
20
24
16
20
24
40
44
48
52
56
60

PATCHSTR
PARMSTR
PTlMESTR
PTIMRSTR
DPACHSTR
REPCHSTR
ARRAYSTR
ITEMSTR
BLOCKSTR
ARRAYSTR
ITEMSTR
BLOCKSTR
MESAGSTR
PTLOGSTR
GTLOGSTR
DPLOGSTR
RECRDSTR
WAITSl'R

Member Name
PATCHDEF
PARMDEF
PTlMEDEF
PTIMRDEF
DPACHDEF
REPCHDEF
ARRAYDEF
ITEMDEF
BLOCKDEF
ARRAYDEF
ITEMDEF
BLOCKDEF
MESAGDEF
PTLOGDEF
GTLOGDEF
DPLOGDEF
RECRDDEF
WAITDEF

Macro Supported by FORTRAN-PL/T Interface Routines

All interface routines are invoked as shown in Figure 2-119. The parameters are passed using standard linkage conventions to the assembler
language interface routine. The interface routine adjusts the parameter
list and then issues an execute form of the appropriate macro to invoke·
the desired service. After the service routine has completed execution,
the interface routine stores the return code for use by the calling program and returns to the caller.

2-290

LICf-\lSED MATERIAL - PROPERTY OF IBM

BAL
PUI Or FORTRAN

CALL X (PARAM)

-..

....

X Special Real Time Operating
System Macro MF = E. Save
Return Code. RETURN

SVC/BAL

--..

....

Special Real Time
Operating System
Service. RETURN

Figure 2-119 FORTRAN - Pl/I Interface Structure

2-291

Special R... Time Operltlng System High-Level

lM9J. . InllrllClS

,...

nm

Z

en
m
C

3:
-t

DPPPIF
DEPATCH Int.rftee
2-124

l>

rn

-,...

:D

l>

PLl1 Optimizing Compiler
Initializing Program

DPPPLIO

High-Lev.1 unguage
PATCH Macro Interftee
Parameter Build Routine

2"30

.l

I
-a

:D

o"'0
rn

DPPPARM

2.301

~

.-(

·0
'TI

-O3:J
Figure 2-120 (1 of 2) Special Real Time Operating System High-Level Language Interface Overview

LICENSED MATERIAL.- PROPERTY OF IBM

Intentionally Blank

2-293

DPPPIF
Input

Calling Program
SAVEAREA

From PL/I Or
FORTRAN Program

~
!III

Joo.
or

Output

~

........

Begin Macro

~

-v

OPPIF
SAVEAREA
And
STAECORE
WORKAREA

r-

o

Registert

A(Parameters)

-"

;;

-

PJ

m
Z

Load
Parameter
Address

en
m
C

STAECORE
STAE
WORKAREA

::i

...

1m
)

..)

Issue STAE
And Cancel
SPIE

A~(';UHt

A(PICA)

s:

l>

-4

m

::D

l>

rI

eVT
A(New/Old TeS)

"::Do
"m
::D

I(

\

-4

-<

Jl

o
"T1

1m
Locate XCVT

CCB

(I

A(T~BX)

TCBX

~
Fi~re 2 -121 (3 Of 8)

\9
A

Figure 2·121 (1 Of 8) . High-level Language Macro Service Interface Main Segment

Figure2-121 (20f8).

Step

Extended Description

1

A combination 72 byte save area and 12 byte STAECORE work area is
obtained after the caller's registers are saved in the save area
pointed to by register 13. The save .areas are chained together
with register 13 becoming the base for the SAVEEM DSECT.

2

Load parameter address.

3

4

Messages and PO L Se ment
ABEND Codes
9

DPPPIF

DPPPIF

(")

m
Z
en

The high-level language SPIE exit is canceled and the address saved
for the return logic. A STAE is issued to provide a means for
freeing core should an ABEND occur due to an error in the user
parameter list.
The address of the Special Real Time Operating System XCVT will be
located.

I

m

o

3:

»
-I
DPPPIF

m

:xJ

»

I

o"

:XJ

"

m

:XJ
-I

-<

o

"aJ

3:

From Figure 2·121
(1 Of 8)

DPPPIF
Input

Output

Process

(f Parameter (0 = 0

r---"'l""L~ CALL PATCH

R

J-._~

r

Macro Interface

nm

Parameter
Address

Z

(I)
Parameter (0
CALL PTIME
Macro Interface
(f

=4

DPPPIF
~

.......

.....

PTIME
Interface

2·123

m

C

3:

~

m

4

-»

:D
Macro

Intemce

If Parameter 10 '" 8
CALL OEPATCH
Macro Interface

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

~

[)f)PPIF
OEPATCH
Interface

2·124

r
I

~

:D

Q
If Parameter 10 '" 12
CALL REPATCH
Macro Interface

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

f Parameter 10 ,. 16
CALL GETIPUT
ARRAY
........-.r""
Macro Interface

.... .....

OPPPIF
REPATCH
Interface
2·125

OPPPIF

~~1'~~T
Interface

2·126

Figure 2·121

rBl

(5 Of 8)

"'../"

Figure 2-121 (3 Of 8) - High-Level Language Macro Service Interface

m

:D

....
-<
o
."
m
3:

Figure 2-121 (4 of 8).
Step

Extended Description

1

Based on the value of the 10, one of the following interface segments
in OPPPIF will be entered:

Messages and
POL Segment
ABEND Codes

OPPPIF

ID Interface Segments

o-

PATCH

4 - PTIME

r-

n
m
,

Z

en
m

8 - OEPATCH

o

12 - REPATCH

»~

16 - GET/PUT ARRAY

:D

3:

m

»

r-

o"

:D

"m

:D
~

<

o

"OJ

3:

DPPP1F
Input

Register 1

Parameter Address

r

Parameter

IF Parameter 10"'24
CALL GETIPUT
BLOCK MacrOi
Interface

...............
~

OPPPIF
GETIPUTBLOCK
Interface 2·128

n
m
Z

en
m

o

Macro Interface

...........

IF Parameter 10-40
CALL MESSAGE
""'III""'"
Macro Interf8ce

..........

IF Perameter 10-44
CALL PUT LOG
"".........
Macro Interface

IF Parameter 10-48
CALL GETLOG
Macro Interface

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

OPPPIF
MESSAGE
Interfece
2·129

OPPPIF
PUTLOG
Interface
2·130

OPPPIF
GETLOG
Interface
2·131

~

~

m
:xJ

~

r
I

-0

:xJ

Q
m

:xJ

~

o."

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

IF Parameter 10-52
CALL OUMPLOG
"",......,...
Macro Interface

IF Parameter 10-56
CALL RECORD
Macro Interface

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

FiFre 2·121
(7 Of 8)

OPPPIF
OUMPLOG
Interface
2·133

OPPPIF
RECORD
Interfece
2·132

r7l.
V

Figure 2-121 (5 Of 8) - High-Level Language Macro Service Interface Main Segment

Figure 2-121 (6 of 8).
-

Step

1

Extended Description

Messages and
PDL Segment
ABEND Codes

Based on the value of the 10, one of the following interface segments
in OPPPIF will be entered:
10 Interface

Se~ment

20 - GET/PUT ITEM

24 - GET/PUT BLOCK

r-

n
m
Z

en
40 - MESSAGE
44 - PUTLOG
48 - GETLOG
52 - DUMPLOG
56 - RECORD
60 - PATCH/WAIT

m

o

s:

l>
m
-f

::D

l>

r-

"

::D

o
."

m

:XJ
-I

-<

o."

I\.)

w
o

!iF,omFiguN2 121

DPPPIF

0

(SOfS)

Input

o

PrOc.s

Output

PUI Parameters

Parameters
10

I

RC

Service Parameters

....

!

II] Store

Service Routing
Return Code In
Register t5 Into RC
Field Of The Parameter
Ust

')

-~

rn

.. )
..

10

I~

Service
Parameten

r-

n
m

Issue A STAE Cancel
To Restore PUI STAE

Z

en
m
C

STAECORE
A(PUIPICAI

...

3:

!~

~
m

Load A(PUt PICA) And
Issue A SPIE To Restore
PUI SPIE Interface

..")

:D

PUI SAVEAREA

- DPflPlF SAVEAREA

...

A(SAVE)

..

')

I~
Exit Maao

...

')

.....

5>
rI
-0

:D

o-0

m

SAVEAREA

:D

-t

<

o
."

iii

3:

Return To Caller

Figure 2-121 (7 Of 8) - High-Level Language Macro Service Interface

Figure 2-121(8 of 8).

Step

Extended Description

1

The EXIT macro frees the DPPPIF save area obtained by GETMAIN, marks
the save area to indicate DPPPIF is done, reloads registers, and
returns to the program via register 14.

Messages and
POL Segment
ABEND Codes

DPPPIF

r("')

m

Z
m

en

o

3i:

»
...f
m

::JJ
:

»
r."

::JJ

o."

m

::JJ
...f

-<

o

"OJ

3i:

DPPPIF
From Figure 2·121 (3 Of 8)

I
\

PATCH Parameters
RC
It)
I
A(Parms)
Task Name
EP Name
PRTY Name
Queue LNG I PRTY CHNG
A(ECB)

... I(!J

The Addresses Of The PATCH
Supervisor And Problem
Parameters Are Loaded

GETPROBL

PATCH Parameten

-'0

.

Problem Parameters
Length
PATCH 10

I

0
0
Flag

~

XCVT

I

I

r
r

...

AITCBxJ

I

m

t'

:0

I

RC

-

--

Task~

EPName
Supervisor Parameters

r

....

...)

Store The Address Of The
TCBX Block Of The
PATCHed Task In The
Callers PATCH Parameters.
Restore The Queue length
Field

Return To Caller

Figure 2-122 (1 Of 2) - High-Level Language PATCH Interface

l>

o"V
A(P,nTIS)

I

~

:0

ID

I

3:

"V

1

PATCH Parameters

[

C

rI

I

..

en
m

:0

-~

A

Issue PATCH SVC

-

m
Z

m

.... New/Old Problem ParametJlrs
)I
~
PATCH 10

I

o

.-- -

(

• Else Retum Old Address

r

User Parameters

I

-.

• If Problem Parameters
Longer Than 8 Bytes,
Move To GETMAIN
Core. Set Free PROSL
Flag And Point Register
To New Problem Parameter List

r-

-

RC
A(Parms)
fISk Name
EP NaIY1e
./
PRTY Name
-Flag raue-OiN IPRTYCii",~
A(ECB)

• Move Supervisor Flags

0
0
A(TCBX)

FI~ I

Output

~

~

Input

....
v

~

PATY Name
~
\PRTYCHNG
A(EC~
0
0
MTCBX)

FiagT

.-

-4

-<

o

."

Figu re 2-122 (2 of 2).
Step

1

Extended Description

The PATCH Supervisor Flags are relocated to their correct position in
the parameter list,. If the problem parameters are longer than 8
bytes, they are moved to GETMAIN core, and the SUPFREEP bit is set to
indicate the core is to be freed; otherwise, no move is performed.
·The addresses of both the old and new problem parameters are
returned.

Messages and
POL Segment
ABEND Codes

DPPPIF

r-

n
m
Z

(I)

m

C
3:
~

-t

m

:D
~

r-

"'0

:D

o"'0

m

:D
-t

-<
o

"TI'

GJ

3:

DPPPIF

From Figure 2-121 (3 Of 8)

Input

Output

PTIME Parameters

PTIME Parameten

10

10

RC

I

RC

Type

Start

Is Zero laue

~=====~In~~alc======t::::::~::::::::~~:::::~~
t~_n
.-----r-------../)

fA--

.........
A(PATCH)

If Type SVC For Current
PTIME
Time And Store In
Parameter List

..

F1'

Start

t:::::~==~::=====~~_~F2_1~_~lnte~~al
...

I

F3

Stop

___~~
~

A(PATCHl

F)3"""1-~

Z

FIT'""-I-FA2";"'(PaT'""-,rms...,.;.-

t

en

m

.. IlIl Load

o

The Addresses Of The
PATCH And Problem Parameten And Move The PTIME

L..~:::::::;:::::::~_-:c/~""'"
....

3:

»
~

Flags.

m
:c

PATCH Parameten

PATCH Parameters
T_ Name

PfI

r-

n
m

U]

rv flilme

Task Name
EP Name
Move Supervisor Flags. If
Problem Parameters. Longer
Th.an 8 Bytes, Move To
GETMAIN Core And Point
Register To New Problem
Parameter List
Else Retum Old Address

Flag

PRTYName
PRTY CHG

I Queue

»

rI
-0

:c

o-0

m

:c

..

Problem Parameters
LNG
PATCH 10

User Parameters

r
r

r-----~X~CVT~------~------1---------JL------~..
I
..

laue PTIME SVC

New/Old Problem Parame1ers
LNG

PATCH ID

User Para neters

r:

L--________________- - - i

PAT'/-

PTIME

RC

10

Task

~me

EP Nam>e
~----------------~

K........- -.......
A

Restore The Altered PL/I
Par.rneters To Their Original
Condition

----I

Start

PRTY 'fJIIme
Oueue LNG i ~TY CHG

Interval
Stop
A(PATCH)
A(Parms)

Fl 'F2

F3

Al~}

I
Flag

1

Problem
LENG
I PATCH::
User Parameters

Figure 2-123 (1 Of 2) - High-Level Language PTIME Interface

Return To Cal...

~

-<

o
-n

Figure 2-123 (2 of 2).

Messages and
ABEND Codes POL Segment

Step

Extended Description

1

The TYPE field determines the kind of PTIME SVC and the structure of
the parameter list. For TYPE=O, a PTIME TYPE=RET is issued to
obtain the current time of day and the address of the Special R~al
Time Operating System time array.

DPPPIF

2

The PATCH Supervisor Flags are relocated to their correct position in
the parameter list. If the problem parameters are longer than 8
bytes, they are moved tv GETMAIN core, and the SUPFREEP bit is set to
indicate the core is to be freed; otherwise, no move is performed.
The addresses of both the old and new problem parameters are returned.

DPPPIF

r-

n

m
Z
en

m

C

3:

»
-I

m

:xl

»

r-

DPPPIF

Output

Input

OEPATCH Parlftleten
OEPATCH Parameten

load Purge Option And
Address Of The Task

tame

r-

n
m

Z
m

en
C
XCVT
Issue OEPATCH SVC

3:
»
-t

m

-»r:0

I
"V

:0

o
"V

m

~

-<

o-n

Figure 2-124 (1 Of 2) - High-Level Language DEPATCH Interface

Figure 2-124 (2 of 2).
Step

Extended Description

Messages and
PDL Segment
ABEND Codes

1

Load the DEPATCH purge option and the address of the task name.

DPPPIF

2

Issue a DEPATCH SVC with passed DEPATCH parameters.

DPPPIF

r(')

m
2

(Jl

m

o

!S:

»

-f

m

::D

»

rI
"'C

::D

o
-0

m

::D
-f

-<

o"T1

Dl

!S:

DPPPIF
Input

From Figure 2·121 (3 Of 8)

~

Procass

Output

REPL

REPATCH hramettrs

I

10

RC

...")

...

Address Of
REPATCH Block

m

....)
...

Lo.d Address Of Rt:PATCH
Control Block And laue
REPATCH SVC.

REPATCH
Block

,..
Ci
m

XCVT

2

(I)

Pl)l REPATCH

Plrameters

100

..

Move Retum Code From

-

REPATCH To RC Field
In Pl)l REPATCH

REPL

-

ParMllten

~

C

s:
»
....

m
::iJ

»
,..

prASK

:P
"!'!
LAG

I

Si

."

::zJ

II TV

~

o

Sl. flEC
!i:I

....~

m

~A

rl

."

1=1

I:DI

"

CDI

nD

m

::zJ

....
-<

~u

o-n

:EPLAO

-

I

Alrtum To Cal_

Fagure 2-125 (1 Of 2) - High-Level Language REPATCH Interface

Figure 2·125 (2 of 2).

Step

Extended Description

Messages and
PDL Segment
ABEND Codes

1

Load the address of the REPATCH control block (REPL) and issue
REPATCH SVC.

DPPPIF

2

The return code in register 15 (REPATCH return code) will be stored
in the REPATCH parameters.

DPPPIF

""

rC')

m
Z
en
m

o

s:

l>

-I

m

::D

l>

r~

::D

o
-0

m

::D
-I
~

o-n
OJ

s:

r-..J

W
o

DPPPIF
Input

From Figure 2·121 (3 Of 8)

0u1put

~

~

GET/PUT Arrey
Parlmeters

10

.') 1m
..

I

Load The Parameters Into
Re9sten And Issue A
GETARRAY Or
"UTA'''lA MlCf'o

r-

n
m

Add

Z

fI)

m

XCVT

GET/PUT ARRAY
Parameters

m
Move Return Code From
GET/PUT ARRAY To RC
Field In GETIPUT ARRAY
Parameten

...
... -"

RC

C

3C

»
....
m
::D

»
rI
"'D

::D

o"'D

m

::D

....
<

o
."
OJ

3:

.
Return To Caller

Figure 2-126 (1 Of 2) - High·Level Language GEl1PUTARRAY Interface

Figure 2-126 (2 of 2).
Step

Extended Description

Messages and
POL Segment
ABEND Codes

1

Load the address of GETARRAY/PUTARRAY parameters and issue the
GETARRAY-PUTARRAY macro.

DPPPIF

2

The return code in register 15 (GETARRAY/PUTARRAY return code) will
be stored in the GETARRAY/PUTARRAY parameters.

DPPPIF

r-

n
m
Z

CI)

m
C

s:
»
-t

m

:D

»
r-0

:D

o-0

m

:D

-t

<

o

'~

to

s:

r-..,)

w

DPPPIF
Output

GET/PUT ITEM
Paremtten

Load The Parameters Into
Reglsten And Issue A
GETITEM Or
PUTITEM Macro

r(")

m

2
m

(I)

GETIPUT ITEM
Parameters

XCVT
Move Return Code From GET-t------''-------'------J'o......
ITEM To RC Field In
/PUT ITEM Patameters

RC

o

3:

»
-I
m

:ll

»

rI

."

:D

o"0

m

:D
-I

-<

o

"

Figure 2-127 (1 Of 2) - High-Level Language GETIPUTITEM Interface

Figure 2-127 (2 of 2).
Step

Extended Description

Messages and
POL Segment
ABEND Codes

1

Load the address of GETITEM/PUTITEM parameters and issue
a GETITEM/PUTITEM macro.

DPPPIF

2

The return code in register 15 (GETITEM!PUTITEM return code)
will be stored in the GETITEM/PUTITEM parameters.

DPPPIF
r-

om
Z

C/)

m
C

3i:

»
-t

m

:::0

»

r-

."

:::0

o

"

m

:::0
-t

<
o

."

a:J

3i:

N

-

W
w

DPPPIF
Input

•
(5 Of 8)
From 19ure 2121

Output

PrOC*S

~

GETIPUT BLOCK
Parameters

I

...

")

...

mLoed
The ParMneters Into
Registers And Issue A

r(;
m

GETBLOCK Or
PUTBLOCK Macro

I

Z

en

m
C

XCVT

GETIPUT BLOCK
P.... meters

00
Move Return Code From
GET/PUT BLOCK To
RC Field In GET/PUT
BLOCK Parameters

»

-I

....

)
....

3:

RC

m

:XJ

»
rI

"V

:XJ

o."

m

:XJ
-f

-<

o

."

Return To Caller

Figure 2-128 (1 Of 2) - High-Level Language GET/PUTBLOCK Interface

Figure 2-128 (2 of 2).

Step

Extended Description

Messages and
PDL Segment
ABEND Codes

1

Load the address of GETBLOCK/PUTBLOCK parameters and issue a
GETBLOCK macro.

DPPPIF

2

The return code in register· 15 (GETBLOCK/PUTBLOCK return code)
will be stored in the GETBLOCK/PUTBLOCK parameters.

DPPPIF
r(")

m
Z

(I)

m

o

3:
l>
-t

m

:D

»
r"'0

:D

o"'0

m

:D

-t

-<

o
."

From FI..... 2·121

DPPPIF

(6

Input

M. . . .

ID

Mta.-

Of 8)
Output

ProoIa

~

Message Parameten

p.,.mttm
I

MIg.#

ActlW,FLG

0
AlA rl.l

-.{

WV# R#

..

ACt I

.

Ac:tIon. Walt
... I~vt
FIll. And MIlage

..

Cod..

RC

10

RC

~

.r

Act

I

MAreaI

....
....

Number To Correct

Location In Plrem-

~~1)

Lilt

IN

Mig. ~

A(Veriable 2)

}=

r

o

m
Z

en

m
C

3:

Add......

!im

Of
Varlabl••

-»

:D

A(V.riible 10)

r
I

"V

:D

~

m

)(CVT

....

')

ill
I... MESSAGE
Mecto

...
v

:D
-4

<
o
."

-

i

ReIum To c.l1w

Figure 2·129 (1 Of 2) . High-Level Language Message In1Brface

Figure 2-129 (2 of 2).
Extended Description

Step

Messages and
POL Segment
ABEND Codes

I----

I

Move action, wait flag, and message number to correct location
in the message parameter.

DPPPIF

2

Issue a MESSAGE macro.

DPPPIF

rC')

m
2

en
m
o
~

l>

-4

m

:0

l>

r-

-g

:0

o-0

m

:0
-4

-<
o"T1

...

DPPPIF
Input

From F;gu.. 2.121!SF-l

Output

PUT LOG Parameters

I

.. IOJ

Ir --~==---t====~=:::::::=:::===).....,
Load Parameten
All
.....---y-------,..V'~ PUTLOG
Macro. And

Issue A

r-

11

n
m

BLK AI?D

Z

(I)

m
C

PUTLOG Parameters

XCVT
Move Return Code From
PUT LOG To RC Field In
PUTLOG Parameten

RC
I------~

3:

~
m
::XJ

l>
rI
"'0

::XJ

o

"'0

m

::XJ

-t

-<

o
."

Return To Caller

Figure 2-130 (1 Of 2) - High-Level Language PUTLOG Interface

Figure 2-130 (2 of 2).
Step

Extended Description

Messages and
PDL Segment
ABEND Codes

1

Load parameters and issue a PUTLOG macro.

DPPPIF

2

The return code in register 15 (PUTLOG return code) will be
stored in the PUTLOG parameters.

DPPPIF

r
(")

m
Z

(I)

m

o

3:

l>

-I

m

::0

l>
r
~

:D

o

~

m

::0

-I

-<

o"T1

DPPPIF

From Figure 2·12· (6 Of 8)
nput

Output

~

GETLOG Parameters

GETLOG Paramet.rs

I

I I
AIArIl)

....
')
~

...

If Name W.. Specified,
Then Move The Address
To Th. First Word.

....:>

I

I

AIAreal

Step No.

Step No.

AI LoghNCltt')

AI Logheader)

AINam./

A(Name)

f-~

r(")

m
Z

en

m

o

3:

>
-t

m

:0

>
rXCVT

..

I

.... CD
"

.)0'

."

~

Issue A GETLOG Macro
Using Vfhichever Form Of
~=~ter List Is

.....

:0

o
."
m

:D

-t

-<
o

"

Return To Caller

Figure 2-131 (1 Of 2) - High-level language GETlOG Interface

Figure 2-131 (2 of 2).
Step

1

Extended Description

Load parameters and issue a GETLOG macro.

Messages and
POL Segment
ABEND Codes

DPPPIF

r-

n

m
2

en
m

C

3:

»

-I

m

::D

»
r~

::D

o
~

m

::D
-I

-<
o

"aJ

3:

DPPPIF
Input

from figure 2·121 (5 Of 8)

PrO«*S

~

Output

Record Parameters

I
I

Length

,..

. 1m
.

~

o

Lold Parameters And Issue
A RECORD Macro

m

Z
en
m

I

C

~
XCVT

Record Parameters

[1]

~

m

Move Return Code To RC
Field Of RECORD
Parameters

::D

....

.. ')

RC

,..»
I
~

::D

o

~

m

::D

~

o."

Return To Caller

Figure 2-132 (1 Of 2) - High-Level Language Record Interface

Figure 2-1 J2 (2 of 2).
Step

Extended Description

Messages and
POL Segment
ABEND Codes

1

Load parameters and issue a RECORD macro for the parameters
specified.

DPPPIF

2

Move RECORD return code to the return code field of the
of the RECORD parameters.

DPPPIF

rn

m
Z

en
m

o

3:

»-f

m
JJ

»

r-0

JJ

o-0
m

:0
-f

-<

o-n

DPPPIF
Input

1'\, 'UD,

From Figure 2·121
(6 Of 8)

Output

Proc.

~

DUMPLOG Parameters

nt; F".mllten

I

..")

Type

If Either Lilt Of Arrey. Or
Arrey Namll Is Specified,
Relocate The Add .....

-A

v =>

I

I
A(Name Ust)

A(Start Time)

I--I----

r-

A(Stop Time)

A(Stop Time)

o
m

AIU.r Dlta)

A(U1er Data)

en

A(Start

-v

DO Name

DO NI .....

A(Name Lilt)

A(NI ...../Lilt)

Z
m
C

s:

~

m

::D

»
r"

XCVT

...")
)0'

I
-a

m

Issue A DUMPLOG MICrO
Lilting Using The Comet
Parlmeter Lilt

.A

p;..

::D

Q
m

::D

~

o

."

m

3:

R..... m ToCIII_

Figure 2 133 (1 Of 2) - High-Level Language DUMPLOG Interface
e

Figure 2·133 (2 of 2).

Step

1

Extended Description

Issue a DUMPLOG macro for the parameters specified.

Messages and
POL Segment
ABEND Codes
DPPPIF

r-

n
m
Z

rn
m

o

3:

»
-f
m

:0

»
ro"

~

"m

:0
-f

<

o-n
OJ

3:

DPPPIF

From Fitalre 2·121 (5 Of 8)
I n put

~

PATCHIWAIT
Parameters
10

I

Out put

RC

r(;

m

. ") m
Issue A WAIT On

Z

(I)

The ECB

...

m
C
;:

ECB

~
m
::D

»r-

ID
Post
Flags

I
Fp.

...
CodE

PATCHIWAIT
Parameters

rn

PATCHIWAIT
Parameters

'"

iWhen ECB 15 Posted
IPick
Post Flags
IFrom
As A
jReturn Code And
~Iear
Flags

'"

./

ID

I

I
""0

RC

::D

o""0

m
::0

-t

-<

o

"6i

3:

Return To Caller

Figure 2-134 (1 Of 2)- High-Level Language PATCH/WAIT Interface

Figure 2-134 (2 of 2).

Step

Extended Description

Messages and
POL Segment
ABEND Codes

1

An OS/VSl WAIT macro will be issued on the ECB passed.

DPPPIF

2

When the ECB is posted, pick up the post flags from ECB as
a return code, and clear the post flags.

DPPPIF

r-

n

m

Z

(I)

m

o

3:

»
-I
m

:D

»

r-

~

:D

o
~
m

:D
-I

-<

o
."
CO

3:

DPPFAONC Entry
Point Copy
F....

Input

FORTR~

Output

Process

Re9ister 1

(
)jj
j

Address Of
FORTRAN
Parlmeter
Address

tIl
,/

I

I~

Z
m

Address Of To

r

l rn

,...

ToAru

Load Address Of To Area Addresses Into

Register 4.

Area
~

From Area
Contenu

Address Of To

C

3:

~

m

::D

Area

.

,;>

»
r-

rn

Move ContenU Of From AnI. To Corres·

ponding To Area.

To Area

.')

...

I

I
-V

From Area
ContenU

::D

Q
m

::D

~
o

I

.....
Address Of From

~

r-

n
m
en

Address Of From
Area Addrea

I

~

!.oed Addrea Of From Are. Addresses Into
Register 2.

"

Area

OJ

3:

Addrea Of From
Area

.

I

From Area

I

I
Return To Caller

Figure 2-135 (1 Of 2)- FORTRAN Interface Copy Routine

Figure 2-135 (2 of 2).
Step

'Extended Description

Messages and
POL Segment
ABEND Codes

1

Load the address of 'from area addresses' into register 2.

DPPFAONC

2

Load the address of 'to area addresses' into reg,ister 4.

DPPFAONC

3

Move the contents of the 'from area' to the corresponding
'to area' contents.

DPPFAONC
r-

n

m
Z

(I)

m
C

3:

»
~

m

::D

»
r-0

:D

o
-0

m

:D
~

-<

o"T1

I'V

W
w
o

DPPFAONC Entry
Point ORBIT

From FORTRAN Program

I nput

Process

~

Register 15

Register 1
Aadress Of
FORTRAN

...

/

OJ

L.oKt Into Register 15 Address
Of Byte To OR.

Address

0

L

1

....)

.

Address Of Byte
To OR

r-

Register 1

~rn

Aadress Of Byte
To OR

1.

1

Address Of 0 R
Flags

loIId Into Register 1 Address
Of OR FI8gL

...

I
I

. :>

n
m
Z

(I)
Address

Of OR

Flags

m
C
3:

»
.....
m

:0

»
r-

n

'"

FORTRAN Byte
To OR

I
-0

T

~

:0

0

1

...-

f[iJ

Set OR Byte To

R~

OR

Flags.

II
J

OR Flags

1

Return To c.I"

Figure 2·136 (1 Of 2) . FORTRAN Interface Or Bit (OR) Routine

.. ')

..

1

ORe Regi.,., 15 Addr.a

I

\:

!

Add.... Of Bytw
To AND

Of Bytw To AND.

I[

-"

Addrwa Of Byte

To AND

O'

rrn

Of AND

,R

FORTRAN Byt.
To AND

[!J
~

Set AND Byte To
Requemd MD
Fl.

1

\

.,

L.oed Into RegilUr
Add,.. Of AND
FIIIII

FIIIII

\

Z
en
m
C

Regjmr 1
Add~

,...

n
m

-I

.

....~

.

3:
l>
:D

MOed Byte

..,I
:D
o
..,m

0

--..~
1

m

Add.... Of AND
Fl •

;
,...

~

-<
o."
o:J

AND FIIIII

1

Figure 2·137 (1 Of 2) • FORTRAN Interface And Bit (AND) Routine

3:

Figure 2-137 (2 of 2).
Step

Extended Description

Messages and
PDL Segment
ABEND Codes

1

Register 15 will be loaded with the address of the byte
to AND.

DPPFAONC

2

Register 1 will be loaded with the address of the AND flags.

DPPFAONC

3

The byte to be
AND flags.

DPPFAONC

~~ed

will be ANDed with the user-supplied

r

n

m

Z

(Jl

m

o

s:
»
-f

m

:D

»

r

-0

:D

o
~

m

:D
-f

<

o

-n

DPPFAONC Entry
Point IADDR

npu

From FORTRAN Program

Output

~

R89ister 1
Register 0

Address Of

FORTRAN
PIIr.meter Add~ss

')IflIT Load
Into
Register 0 The
Address Of The
FORTRAN
Parameter

.

FORTRAN
./ Parameter Address

r-

o
m
Z

en

m

o

V!

FORTRAN
Parameter
Address

3:

Register 15

"

rrnSet Register 15
(Return Codel to 0

...>
'"

»
......
m

0

::JJ

»rI
."

::JJ

FORTRAN
Parameter

o
."
m

II

......

-<

o

"

Return To Caller

Figure 2·138 (1 Of 2) • FORTRAN Interface Address (IADDR) Routine

Figure 2-138 (2 of 2).
Step

Extended Description

Messages and
POL Segment
ABEND Codes

1

The address of the FORTRAN parameter address pointed to by
register 1 will be loaded into register O.

DPPFAONC

2

On exit from the program, register 15 will be set to return
code O.

DPPFAONC

.("')

m
Z

en

m

o

s:
»
-t

m

:0

.-»
~

:0

o."

m

:0

-t

-<

o
."

DPPPARM

From Pl/1 Or
FORTRAN Program
Input

Calling Program
SAVEAREA

~

Output

Procea

DPPPARM SAVEAREA

.. 1m
~

..

BEGIN Macro

./

-v"

STAECORE

Register 1

io

Problem parameters

~

...
A(Parameten)

...

R~tryl

RC

A(XCVT)

load Parameter
Address

-v

A(OId Probl)

,..

n
m
Z

en
m

o

SfAECORE

STAECORE

....

")

1mIssue SfAE And

...

....

cancel SPIE

~~I_C~

3:

>
-I
m

::JJ

,..>
I
."

::JJ

CVT
A(NewlOld TCB)

o."

(

m

::JJ
-I

,

-<

o

""

A(Current TCB)

(

....
TCB

)

locate The PATCH
PROBl Parameters

A(TCBX)
TCBX

Figure 2-139 (3 Of 10)

A

Figure 2-139' (1 Of 10) - Hi~-Level Language PATCH Macro Interface Parameter Build Routine

Figure 2-139 (2 of 10).
Step

Extended Description

Messages and
ABEND Codes POL Segment

1

As part of the BEGIN macro, the name DPPFPM is defined as an external
name with an entry point equal to the CSECT name DPPPARM. In addition, an 84 byte combination save area/work area (STAECORE) is obtained for use during execution of this routine. Register 13 is the
base for this area.

DPPPARM

2

The high-level language error exits are temporarily overridden to
ensure that the save area/work area obtained above is freed. The
STAE routine forces a recovery to permit the subsequent entry of the
high-level language STAE routine.

DPPPARM

r-

n
m
Z

(I)

m

C

3:

»
-t

m

::XJ

»r."

::XJ

o-0

m

::XJ
-t

<
o
-n

g,

3:

N

tv

DPPPARM

From Figure 2·139 (1 Of 10)

w
co

Output

Process

Input

PATCH Input Parameters

PATCH Input Parameters

I

(

")
..

,~

ovu ..... ,

A(Old Probl)

m

XCVT

....

(

>
...

Test and Set The
Re-entry Flag

-.

A In

1

(D

m
2

If The Re-entry
~la9

r(")

CJ)

m

Was On:

o

SCVT

...

.>

~

s:
»-f

Locate The Address
Of DPPTPMON
Entry Point
DPTPMON2

m

::0

»

rI

Ut'It'MUN2

Branch And Link
To DPPTPMON
Entry Point.

~.-.....

..... .,...

."

::0

PATCH Monitor

o

2·18

."

m

::0

-f

-<
o
."

EIs,e Set Register
15 Zero.
PATCH Input Parameters

PATCH Input Parameters

I

~

')

A(XCVT)

AlOld

II

.

Store The Return
Code In Register 1;..
To RC Field And
Move Parm
Addresses To
Parameter List.

.>

1
(XCVTI
A( Resource)
,(Old

B

Figure 2·139 (5 Of 10)

Figure 2-139 (3 Of 10) - High-Level Language PATCH Macro Interface Parameter Build Routine

I)

CD

3:

Figure 2-139 (4 of 10).
Step

Extended Description

Messages and
PDl Segment
ABEND Codes

I

Test and set the reentry flag.

DPPPARM

2

If the reentry flag was on, locate the address of DPPTPMON entry
point DPTPMON2 from SCVT at location SCVTSBI8.

DPPPARM

r(')

m

Z

(I)

m

o

3:

»
-f

m

:IJ

»
r'lJ

:0

o'lJ

m

:IJ
-f

<

o
."

DPPPARM

From Figure 2-139
(3 Of 10)

Output

Input

1m
Register 1

r

r

..

r--~-----'''''')
..

DPPPARM SAVEAREA

If ABEND P-.ed A
Workarea, Loed
A(DPPPARM
SAVEAREA) And
Move In The ABEND
Code

-",

)

--v

I------~

rm

ei
Z

STAE WOR~J!EA
..,... ...n .... SAVEl

I

L - i . - ' - L -_ _ _ _~..

L-.""T'""I'__._----""
..
J
..........,

~-----t-------I--~

Ehe Store ABEND
Code From
RegisUr 1 To
DPPPARM
SAVEAREA Pointed
To By Register 2

en
m
C

s:
»
-4
m

::xJ

»r-

DPPPARM
SAVEAREA

I
Return To ABEND
With RETRY
(Register 15·4)
~To

DPARMRCV.

."

::xJ

o
."
m
::xJ

-t

<

o

"

Figure 2-139
(7 Of 10)

r7l
"V

Figure 2-139 (5 Of 10) - Hi!ll-Level language PATCH Macro Interface Parameter Build Routine

Figure 2-139 (6 of 10).
Step
1

Extended Description

If ABEND passed a work area, load address of DPPPARAM save area and
move in the ABEND code from the STAE work area; otherwise store the
ABEND code from register 1 to DPPPARM save area pointed to by
register 2.

Messages and
POL Segment
ABEND Codes

DPPPARM

r

n

m
Z

en
m

o

3:

»
-I

m

:xJ

»r"'V

:xJ

o
""0

m

::D
-I

-<
o
-n
OJ

3:

N

~
....

DPPPARM
Input

From Figure 2·139 (5 Of

Output

STAE WORKAREA
If There Is A Workarea
From ST AE. Load The
DPPPARM SAVEAREA
Addreu And The ABEND
Code. Free 1 he Workarea.

r-

n
m
Z

en
m
C

Else Search For
DPPPARM SAVEAREA.

3:

~

m

::c

»
rt
~

::c

o

~

m

::c
Load A(PICA), Issue
SPIE.

Free DPPPARM
SAVEAREA

Reload Registers

Figure 2-139 (9 Of 10)

\V

Figure 2-139 (7 Of 10) - High-Level Language PATCH Macro Interlace Parameter Build Routine

-I

-<
o
-n

Figure 2-139 (8 of 10).

Step
1

Extended Description
If there is a work area from STAE t load the DPPPARM save area address
(register 13). Free the work ,areas; otherwise search for DPPPARM
save area.

Messages and
POL Segment
ABEND Codes

DPPPARM

r(5

m
Z
en
m

o

3:

»
-4
m

:0

»
r-g

:0

o

~

m

:0
-4

-<

o

-n
O:J

3:

From 2-139
(7 Of 10)

DPPPARM
Input

Output

Process

If

Issue A STAE
Cancel To Restore
High level La~age
STAE Exit.

STAECORE
A(PICA)

...

...

OPPPARM SAVEAREA

J

A(SA1

~

Load A(PICAI And
Issue SPIE To
Restore Hi91 Level
Languege

........, 1m
...
EXIT MKro

I

\

SAVEAREA

Retum To Caller

Figure 2-139 (9 Of 10 ) - High-Level Language PATCH Macro Interface Parameter Build Routine

.
.)

SAVEAREA

FF

I

Figure 2-139 (10 of 10).
Step

1

Extended Description

The EXIT macro FREE MAINs the save area obtained at entry, marks
the previous save area to indicate DPPPARM has completed, reloads
the caller's registers, and returns via register 14.

Messages and
PDL Segment
ABEND Codes

DPPPARM

r

n
.r:::.

en
m

o

~

l>
-i

m
::0

l>

r

."

::0

o."

m
::0

-i

-<

o-n

I
I

DPPPLIO
In"ut

If

ISASIZE

[

"mgth of

IS":, area

I

r

output

Procell

-.

.. >

..:>

rttJ.
BUild Argument
list tor call

A(AAGlISTI
A{lSALENGI

I

0
0

r
(;

0
BOIA(DPPPlIEOI

m

ISALENG

en
m

Z

length of ISA

)

APLlIST

lao I

0

I

c

i:

~

m
:xJ

~

DPPPlIEO
Execution OPtions

);
r
I

"'0

::D

o

"'0

m
:xJ
-t

-<

.0
."'11

Branch and
link to PLICALLB
entry point

-

Figure 2-344.1 (1 Of 2) - PL/1 Optimizing Compiler Initialization

...

-

PLII
main
program

Figure 2-139.1 (2 of 2)
Step

1

Messages and PDL Segment
ABEND Codes

Extended Description

DPPPLIO

If "ISASIZE" external symbol exists and if it is not zero then use the value at ISASIZE,
rounded to a double word, and place at ISALENG. If "ISASIZE" external symbol does
not exist then use default size.

_."

(ii"
m

o

-3:
l>
-t
m
:D

l>
,...
"V

:D

o
"V

m

:D

-t

<

o

"CJJ

3:

--~

tv

I
l;)

,r::,.
V1

---

LICENSED MATERIAL

·.

PROPERTY OF IBM

Two CPU Operations
The Special Real Time Operating System has facilities to allow for execution in a two-CPU configuration where a job in the backup CPU monitors the
performance of the online CPU. When either CPU recognizes that a failure
has occurred, that 8PU can request a failover, and the backup CPU becomes
the online CPU. Failover can also be initiated by program request to
facilitate scheduled maintenance or changes to the operational environment.
Failover/restart operates by copying the contents of virtual storage, the
OS/VSl job queue, and the SWADS for the one or two partitions tha.t encompass the realtime job, into a disk data set. This is initiated by a
WTFAILDS macro call from DPPINITl. The write failover data set SVC routine, OOMIRFLV. is responsible for ensuring that both partitions in a twopartition environment have iss~ed the WTFAILDS macro. Then DOMIRFLV
writes the failover data set.
This data set can then be IPLed to accomplish the restart.
The effect of IPLing this volume is to ~eturn the System/370 to the identical state it was when the RESTART WRITE card was encountered in the
SYSINIT Special Real Time Operating System initialization stream.
The failover/restart bootstrap program, DOMIRBT, is responsible for restoring
the virtual storage, the job queue data set. and one or two SWADS data sets
to the identical state they were in when the restart was written.
The continuous monitor feature of the Special Real Time Operating System
is available in all systems having the failover/restart feature.
The continuous monitor is started by patching a task with EP=DOMIRCMN.
This can be done by a user program, by a PATCH card in the SYSINIT input
stream, or by the CMON parameter on the RESTART card.
The probe functions, DOMIRPRB, operates in ,the backup CPU and tests the
online CPU (the continuous monitor) 'and is responsible for recommending
failover when it gets a Continuous Monitor Recommended Failover signal or
if the continuous monitor fails to change the bits on the static signal
lines at the specified rate.
Upon a system restart, any data base data sets supported by DDS must be
closed and opened to account for any changes in the status of primary and
backup DDS data sets. This is accomplished by an IRB scheduled under the
job step task by DPPIIRB. This IRE executes program DPPDWRST, whichcloses
and re-opens the data sets.

2-346

Special Real Time Operating Systems Two CPU Operation

r(')

m

Z

en

m

o

3:

~
....

m

:D
~

rI
~

:D

o
~

m

:D

IPl Failover DIU Set

....
-<

o
."

Figure 2-140 - Special Real Time Operating System Two CPU Operation Overview

From WTFAllDS Macro

rm

S~lSY~BQO

Synchronize Maner/Slave
Partitions

I
~

SYS1.PAGE
SYS1.SYSWADS
SWADS

~rn

Write Failover/Restart Data

Set

...

I

...")

I

f

...

J@f Restore Read Storage And
1
~

Data Sets

r-

FailO'ler/
Reuan
Data Set
(OPPFAIL)

n

m
Z
(I)
m

I

IPL Of F /R Data Set

All Of Real Storage

Restart
BOOTSTRAP
(DOMIRBT)

Output

Process

~

Input

A

'"

o

3:

~

m

:xJ

.

Return To
Caller
SVC3

...")

.

0

SYS1.SYSJOBOf
SYS1.PAGE
SYS1.sYSWADS
SWADS

All Of RMI Storagt

:t>
rI
"V

:2J

~

m

:2J

~

o

"'"

Figure 2-141 - FailoverIRestart Process Overview

Figure 2-141 (2 of 2).

Step

Extended Descrjption

I

The MASTER (SLAVE) partition delays until the SLAVE (MASTER) partition
issues theWTFA1LDS macro. Execution then continues under the
MASTER SLAVE partition.

2

All of real storage, the protect keys, the SYSI.SYSJOBQE data set(s),
the SYS1.SYSWADS data set, the active entries in the SYSl.PAGE data
set(s), and one or two SWADS (MASTER and SLAVE) data sets are copied
to the DPPFAIL data set. The 1PLl and 1PL2 records on track zero
are modified to read in module DOMIRBT when the disk is 1PLed.

3

When the disk containing the data set named in the DPPFAIL DD card
is IPLed, DOMIRBT receives control and restores real storage, the
protect keys, SYSI. SYSJOBQE, SYSl.SYSWADS and the active SYSl.PAGE
entries. SYSl.SYSPOOL is not restored. Control is returned to the
MASTER and SLAVE partitions just as it was when the original WTFA1LDS
was issued except that return code 4 is placed in register-IS and the
restart flags in the XCVT are set to reflect an 1PL of the failures/
restart data set on the same or a different CPU.

Messages and
ABEND Codes POL Segment

r-

n

m
Z

en
m
o
~

»
-f

m

JJ

»r"'tJ

JJ

o"'tJ

m

JJ
-f

<

o

~

I\.)

tv

(]l

o

DOMIRFLV

From WTFAllDS Macro
Input

~

O---r

Output

Process

XCVT

-

---+

I

OJ

...

Two-Partition Operation
NO

y

::>

XCV TSBUt'

,...

YES Wait FOf Other Partition
To Issue WTFAILDS

n

I

m

I
I
I
I

en

L - --

Z

m

C

3:

.... m

»
-t

Slave Partition

m

NO

:lJ

,...~

YES Wait For Master To Write
Restart Data Set

, r
To load 2
(Page 2-143)

I
"'0

::D

Q
m
::D

-t

-<
o
."

Figure 2-142 (1 Of 2) - Failover/Restart SVC - Load 1

Figure 2-142 (2 of 2).

Step

I

Extended Description

The SCVTFLGI field is tested for two-partition operation. ABEND
37 is issued if the other partition cannot be located. ABEND 38 is
issued if another WTFAILDS is still in progress. ABEND 39 is issued
if a realtime initialization has not been performed. An ENQ is
issued on QNAME 'DPPINIT', and RNAME of the MASTER realtime jobs
to determine if the other partition has reached its WTFAILDS yet.
If it has, its ECB (in the SVRB) is posted; otherwise, this partition
waits on an ECB in th6 SVRB that the other partition will post.

Messages and
ABEND Codes PDL Segment

USER 37
USER 38
USER 39

OOMIRFLV

.("')

m
Z
m

en
2

The SLAVE partition waits on an ECB in the SVRB which the MASTER
partition will post when the restart is completed.

OOMIRFLV

o

3:

~

-f

m

:D
~

.."

:D

o."

m

:D
-f

-<
o-n

DOMIRFL2

From Load 1 (Figure 2-142)

Via XCTl

~

Input

Output

Process

)

Input Panns
Rev 3 .. 5 6 7 -

CVT
TCB
SVRB
XCVT
SCVT Or
POST Code If

1----

-----

1m
~---+

Is Restart Allowed And Is This
The Mater Partition?

T~

NO

Stave

XCVT, SCVT, Paging
Supervisor Tables,
UGS rabies

2-143
(3 of 4)

II]
~

..')

Load Necessary Modules And
Page Fix Them

r-

nm

A

or

:>

DOMIRNIP LC»ded
DOMI RWT Loaded
DOMIRBT Loaded
Workarea Obtained
DOMIRBT Header
(DOMBOOTHI Updated

Z
en
m
C

s:
»
-t

m
TCSS

TCB Ready Queues

UCBs

....

m

...")

...

....')

Set All TCBs Nondiapatchable.

TCBFLGS5

~

»
rI

Loop Until All I/O Stops.

."
~

o
."

m

m
~

Invoke DOMIRWT To Write
Restart.

..,
00

-t

...

Reset Not Ready, Busy
Bits In UCBS

NO

Invoke OOMIRCPY To
M.ke Copes Of F /R

")

- ....

Figure 2-143 (1 Of 4) - Faiiover/Restart SVC - Load 2

A

"

..,

Dati Set

,

o

ResurtlWrite
2-144

On Restarted CPU?

YES

To Figure 2-143 (3 Of 4)

-<

DOMlllWT

...

,.~

A FIR Data

.-t

~

2·145

UCBS
UCBFl1

Figure 2-143 (2 of 4).
Step

Extended Description

Messages and
ABEND Codes POL Segment

1

If this is the SLAVE partition or if this job does not own restart/
write eligibility (CINFD table)t control is passed to step 1, Figure
2-143 (3 of 4).

DOMIRFL2

2

A work area the size of the maximum blockage of the device containing
the failures/restart data set is obtained. Modules DOMIRWT (restart/
write), DOMIRBT (restart bootstrap), and DOMIRNIP (re-NIP) are
loaded and page-fixed. The DOMIRBT header DOMBOOTH is initialized.

OOMIRFL2

3

4

r

n

m

All TCBs except the one under which DOMIRFL2 is executing are set
nondispatchable using the TCBSYS bit. A loop is entered to test
for all I/O complete by testing the UCBPST and UCBBSY bits of all
UCBs.

OOMI RFL 2

DOMIRWT is invoked via BALR to write the failures/restart data set.

OOMIRFL2

Z

(I)

m

o

3:

»
-t

m

:D

»

r

5

The return code from DOMIRWT
IPL of the failures/restarts
a restarted CPU, DOMIRCPY is
any) of the failures/restart

is tested. Code 4 indicates that an
data set has occurred. If this is not
loaded and BALRed to make copies (if
data set.

OOMIRFL2
."

:D

o

."

m

:D

-t

-<
o
-n

to

s:

DOMIRFL2

From Figure 2-143 (1 Of 4)
Output

~

Input

IOJPrint Message
Indicating Restart
Status

.

.."

Message To

Routing Code 5

r-

n
m
Z

(I)

m

o

XCVT, SCVT

- I~

There A SI_
") Partition?
Yes - POST It

...

..

")

FL's In Slaves
SURB

s:
»
-4

m

:D

•»I
"V

m
Return To Ca"er
With Correct Post
Code

::D

o"V

m

::D

-4

-<
o
-n
CD

s:

Return To Caller Of
DOMIRFLV Via SVC3

Figure 2·143 (3 Of 4) - Failover/Restart SVC - Load 2

Figure 2-143 (4 of 4).

Step
1

Extended Description

A message to indicate the success or failure of the failures/restart
write is printed.

Messages and
POL Segment
ABEND Codes

DPP080A

DOMIRFL2

~PP081A

~PP082A
~PP083A

DPP084A
IDPP085A
r-

~PP086A

n
m

~PP087A

OPP0901
DPP09l1
DPP092A
DPP0931

Z

(I)

m

o

3:

2

If a SLAVE partition is waiting, its ECB is posted.

DOMIRFL2

3

The caller of DOMIRFLV is returned to via EXIT (SVC3).

DOMIRFL2

»
-i

m

:D

»
r."

:D

o
."

m

:D
-i

<

o."

DOMIRWT

From DOMIRF.l2 (Figure 2-143)
Via BAlR

Output

~

~

nput

.

Input Parms
Reg 12 . Addr Of
DOMIRBT ~-

'--

--

1m

I--

r

Set Up Disaster Recover(

-

F

Write All Of Real Storage To
The F/R Data Set

I

:: "'"
;>

PSA (Low Corel

1

r

L

f-----"
Jo..

.

rOO Copy The Active Entries In

The Plging DIU Set To The
FIR Data Set

r

~
~

...

..

") FIR Data
Set

n
m
Z
en

m

o

3:

[!} Copy

»
-t

The SYS 1.SYSJOBQE

m

Data Setls}, The SYS1.SYSWADS
And One Or Two SWADS Data
Sets To The FIR Data Set

::D

~
r
I

roo The
DOMIRBT Program 14K)
And The Protect Keys Are

o"

Written On The First Track Of
The FIR Data Set

roo

.

--..

::D

"m::D

The IPL 1 And IPL2 Records On
Track Zero Of The Disk Are
Adjusted To Read In The
DDMI RBT Program

mOSNS
Return To DOMIRFL2 With
Environment Re-

-t

<

o."
r

established

From
OOMIRBT
VielPSW (On
Restored CPU)
[(Figure 2-146)

To DOMIRFl2 Via BR14

Figure 2-144 (1 Of 4) - Failover/Restart WRITE

Figure 2-144 (2 Of 4)

Step

Extended Description

Messages and
ABEND Codes PDL Segment

I

As a non-OS/VSI environment exists (standalone I/O) during DOMIRWT's
execution, certain precautions are taken to ensure that it can finish
execution. The program check new PSW and machine check·new PSW are
saved and replaced with PSWs that point to recovery routines within
DOMIRWT. The DAT box remains on throughout the execution of
DOMIRWT. The control registers are saved in the DOMIRBT header.

DOMIRWT

2

All of real storage from location 0 to the end (as determined from
the CVT) excepting the 4K occupied by DOMIRBT and the first 2K of the
work area are written to the failures/rest~rt data set starting with
the second track. The protect key of each block is saved and restored across each I/O operation to avoid changing the reference
bit.

DOMIRWT

The active entries on the paging data set(s) (those which could
possibly be paged in) as preserved on the failures/restart data set.
An LRA instruction is issued for all address space (2K at a time) defined in the PDDT. A paging data set entry is copied to the failures/
restart data set if either of the following conditions occurs on the
LRA:

DOMIRWT

j"

3.

(")

m
Z

(J)

m

o

!i:
»
-t
m
:D

»

j"

."

:D

o-0

m
:D

a.
b.

The LRA indicates a page exception and the "valid bit"
(bit 15) is set in the page table entry.
The LRA indicates a valid translation and the change bit
is off in the frame.

-t

-<

o"T1

Figure 2-144 (3 Of 4)

Messages and
ABEND Codes POL Segment

Step

Extended Description

4

The entire contents of the JOBQUEUE and SYSWADS are copied to the
failover/restart data set. Unless the partition is using SWA, the
SWADS data set(s) are also cDpied.

·OOMIRWT

5

The two 2K blocks of DOMIRBT are written as one record on track
zero of the failover/restart data set. The protect keys for all of
real storage are saved and written as the second record on track
zero of the data set.

OOMIRWT

The IPLl and IPL2 records are adjusted to read DOMIRBT into the same
real storage locations it was written from during the disk IPL.
The PSW placed in the 1PLl record points to the first byte after
the DOMIRBT header (real address).

DOMIRBT

The PSA is restored and control is returned to DOMIRFL2. A code of
zero is passed in register 15 if the restart/write was successful.
A code of 12 is passed if an error occurred with a sub code in
register zero. If this is a restarted CPU, DOMIRBT will have
entered DOMIRWT at location RESUME after restoring the environment
as it was at restart/write. In this case, code 4 is returned to

DOM1RBT

r-

om
2

6

7

OOMIRFL2.

en

m

o

3:

l>
-i
m
::D

l>

r-

LICENSED MATERIAL - PROPERTY OF IBM

Intentionally Blank

Figure 2-144 (4 of 4)

2-369

ENTRY From DOMIRFL2 (Figure 2-143)

DOMIRCPY

Or PATCH Card

~----------~~~-----------,

Process

~------~------------~

r-

(;
m
Z
(I)
m

o

3:

~

m
Copied FIR
Data Set

Failover/Restart
Data Set
Adjust DOMIRBT
Header In Output
Data Sets And IPL 1

And IPL2 Records

:JJ

»rI

"'0

:JJ

o
"'0
m

:JJ

-t

-<

o"T1
aJ

3:

Return To Caller Via BR14

Figure 2-145 (1 Of 2) - Failover/Restart Data Set Copy

Figure 2-14
Step

(2 of 2).
Extended Description

Messages and
ABEND Codes PDl Segment

I

A list of the output volumes (DPPFAILx) is constructed. All must be of DPP089A
the same device type and only one failover/restart data set can
exist on a volume. In addition, a failover/restart data set cannot
reside on the system residence volume that contains SYSI.NUCLEUS.

DOMIRCPY

2

The data set is copied, track for track, using EXCP from the
DPPFAIL volume to each DPPFAILx volume.

DOMIRCPY

DPP088A

r(")

3

The DOMIRBT header is adjusted on each output volume for new
absolute disk addresses. The IPLI and IPL2 records are also adjusted.

OOMIRCPY

m
Z

en

m

o

~

....m»

::D

»
r""C

::D

o""C

m

....::D
<

o"T1

OOMIRBT

Entry Via

Input

-~

Output

~.

1m Set Up

,...

Temporary
Environment

t!"'-.......,

r-------Fa/loverl
Restart
Data Set

~
./

./

!m

:,

Reload R..I
Storage

r

Temporwy
Page Tables

r-

Real Storage

nm
2

en

m
C

[l)

~

~

Adjust Oirect
A.cceu UCS's

m

...

.

....

:D

);

r-

ReNIP
Routine 2-147

I
("'"-~

rn

.

Restore The Pal'"I
Data Set, Job
c:uu., And
SWAD',

-------

.... 'J, Job Queues
./ And

SWAO's

...... _ /

."

:D

~

m

:xJ

~

o

"m
3:

Enter OOMIRWT Via lPSW
(Figure 2-144)

Figure 2-146 (1 Of 2) - Failover/Restart Bootstrap

Figure 2-146 (2 of 2).

Step
1

Extended Description

A check is made to determine if this CPU has enough real storage.
If not, a X'18' ·wait occurs. A set of page tables is constructed
with 8K of valid address space: The first 2K of the PSA, the 4K of
the DOMIRBT module, and the first 2K of the work area. Control
register 0 and 1 are initialized, and the DAT box is turned on. A
machine check in the restart bootstrap causes a X'E2' wait state.
An unexpected program check causes a X'18' wait state or a X'19'
wait state. The location of the Format #1 DSCB for the failover/
restart data set is read in and if the data set no longer exists, a
X'F' wait state occurs.

Messages and
ABEND Codes POL Segment

"Failover/
Restart in
Progress"
on a 3210
or 3215.

DOMIRBT

r

n

m
Z
en
m
C

2

3

All of real storage is reloaded from the failover/restart data set.
After real storage has been reloaded, the control registers are
restored to their values at the time the failover/restart data set
was written.
DOMIRNIP is invoked via a BALR to check for disks mounted on addresses
different than they were at time the failover/restart data set was
written. If DOMIRNIP indicates that a needed disk is missing, a
X'd' wait state occurs.

DOMIRBT

s:
»
-f

m

:0

»

DOMIRBT

r

-0

:0

o
-0

m

4

The paging data set(s), SYSI.SYSJOBQE, and SYSI.SYSWADS are restored.
The SWADS data sets (MASTER and SLAVE) are restored unless SWA was
used.

DOMIRBT

:0
-f

<

o-n

DOMIRNIP

BALR From DOMIRBT

(FIgUre 2146)

Reg 12

Output

Process

-~

Input

I
~----

-- --

DOMIRBT Header

---+

f[IT

.

."

.

Read The Volume Label For
Each Direct Access Device In
The OSIVS System. Build
Conflict Element For Devices
Which Are Not The Same

.)

Conflict
Elements

r-

n
m
2-Byte UCB Lookup
Table
UCB's
Logical Channel
Queues

...)
.-

Remove All ROE's From Logical
Channel Oueu~ And Place On
Common Internal Oueue

r--

. .)
y

Z
m

en
Internal
LCH Oueue

C

3:

~

1m

m
Using The Conflict Elements.
Resolv;) As Many As Possible
By Exchanging UCB Locations
And 2-Byte UCB Lookup Entries

V

'"

"

..

UCBS
2 Byte-Table

::D

5>

r
I

."

::D
Place ROE's Awaiting Execution
As Correct Logical Channel
Queue.

K ...

--"

.)

Logical
Olannel
Queue

o

."

m
::D

-t

-<

m

Return A Code Of 4 If Critical
Disks Missing

Return To DOMIRWT
Via BR14

Figure 2-147 (1 Of 2) - ReNIP Routine

o

."

Figure 2-1417 (2 of 2).
Step

Extended Description

Messages and
ABEND Codes POL Segment

I

Conflict elements built for volumes which have moved to a different
device address are built into the failover/restart work area.

DOMIRNIP

2

Conflicts are resolved by swapping the location of the UCBs and
their pointers in the 2-byte lookup table. Thus, DEBs and other
UCB pointers throughout OS/VSI still point to the same vnlume and lOS
can still find the correct UCB based on device address. Device related fields, e.g., UCBLCI, go with the UCB to the new location.
Volume related fields, e.g., UCBDMCT, remain in the old location.

DOMIRNIP

r("')

m

Z

C/)

m

3

A critical disk is one that is permanently resident and allocated.

DOMIRNIP

C

3:

»

-t

m

:tJ

»
ro"

:tJ

"

m

:tJ

-t

-<

o

"

~

W
0'>
0'>

DOMIRCMN

Entry Via PATCH

ill

·

Data Base
locations To Test

Output

Process

~

Input

·

...
,-~

Send Signal To Backup
Computer Via Direct Control

Backup Computer
And Status Panel

r-

ill

nm
Z

Delay For SYSGENed Time
Interval. Did Restart Signal

en
m

Occur

o

!.IV'"

YES

nr no

3:

~

..

.....

PROBE Function

~

m

::D
~

·

rI

") ill Test SYSGENed Data Base

·

Locations. See If All Have
Changed. Have All Changed?
Send Failover Signal If Not

YES

ill
YES

Wait Until All Locations
Change Again

NO

•..
NO

.-

Return To Caller

Figure 2-148 (1 Of 2)- Continuous Monitor

"::Do

"

m

::D
~

<

o
."

Figure 2-14·8 (2 of 2).
Step

Extended Description

I

If the continuous monitor is operating in duplex mode (no other continuous monitor or probe), a signal is sent to the backup computer
via the direct control static data lines. The computer status panel
is also driven (ready light).

2

Delay is via STIMER. If a failover request external interrupt occurs,
it is interpreted as a restart signal, and an XCTL is executed to
OOMIRIPL (within DOMIRPRB) to cause the failover/restart data set to
be IPLed.

3

If any of the participating data base locations have failed to change
during two time intervals, failoveris recommended to the backup
computer by sending X'F' on the static data lines.

Messages and
ABEND Codes POL Segment

DPP099I

OOMIRCMN

DOMIRCMN
r(")

m
Z

CI)

DPP098A

OOMIRCMN

m
C

3:

»
-f
m
jJ

4

If the data base locations start to change again, the sampling
process is restarted.

OOMIRCMN

»
r-

DOMIRPRB

Entry Via PATCH Or ATTACH
(DOMIRPWT And DOMIRPLX Entri.)

Entry Via PATCH Or XCTL (DOMIRIPL)
Output

Input

ITJ

Is Another Continuous Monitor
Or A Probe Running Or This

YES

CPU Or Is The DPPFAIL DO
Card Missing

Exit (BR14)
With RC = 0
Direct Control Static
Data Lines From
Primary CPU

r

nm
2

CI)

m

C

3:

>
-t
m

:xJ

);
r
I

-a

:xJ
• • • • • •~ @

Status Panel Interrupt
IPL The Failover/Restart Data
Set (DOMIRPLK Entry) Or
Return (DOMIRPWT Interrupt)

o
-a

m
:xJ
-t

-<

o
• • • •~ FIR BOOTSTRAP

Exit (BR14)
With RC· 4

s:

00

Figure 2-149 (1 Of 2) - Probe Function

"a:J

Static Lines Started To Change
Again

Figure2-149 (2 of 2).
Step

Extended Description

Messages and

ABEND Codes PDL Segment

1

An ENQ is issued to test for the presence of another continuous
monitor or probe. The module terminates if another one is present.

tooMIRPRB

2

The ready light on the status panel is driven J and a delay for the
SYSGENed time interval is instigated via the STlMER function.

DOMIRPRB

3

The static lines are tested via READ-DIRECT. If they have changed,
the STIMER loop is reissued. If they have failed to change for two
STIMER cycles, the fai10ver recommend signal is sent to the computer
status panel.

tooMIRPRB

4

The fai10ver confirmed signal from the status panel can occur in
response to the failover recommend signal or asynchronously at any
time. If the probe was entered at DOMIRPLK J it simulates a hardware
IPL to the fai10ver/restart data set. If the probe was entered at
OOMIRPWT, it returns with code 4 in register 15. The IPL of the
fai1over/restart data set can also be entered (from DOMIRCMN) at
OOMIRIPL.
If the static data lines start to change again while awaiting the
fai10ver confirmed interrupt J the STIMER loop is reentered.

r(")

m
Z

(I)

m

o

OOMIRPRB

3:

l>
-i
m
JJ

l>

r-

~

JJ

o

~

m

JJ
-i

<

o-n

DPPIIRB

Input

From DPPINIT1
(Figure 2 12)

.~

Procea

Output

Regilt.r 1
to.

OPEN/CLOSE FIIIII

...:>

1m

S.ve OPEN/CLOSE Flag
To P•• To The OPEN/
CLOSE Routine
(DPPDWRST)

r-

esm
Z

(I)

m

I1J

OSNSIRB

C

Crelle D$NS I RB For
DPPOWRST To Run Under

....

...:>

3:
l>

-t

m

OSNS IRS

rn

....
':>

Schedule IRB To Run Under
Job Step T.k And Wilt Until
OPPOWRST Completes
Execution

::D

};

r
I

."

::D

o."
m

(!J

::D
-f

LINK To OPPOWRST

-...
I

POST OPPIIRB ECB

--

I

RlltUm To Cllier

Figure 2·150 (1 Of 2) . Data Base Create IRB Routine

..

-<

Write Restart
2·151

o-n
OJ

3:

Figure 2-150 (2 of 2).
Messages and
ABEND Codes POL Segment

Step

Extended Description

1

When entered, register 1 will contain an OPEN/CLOSE flag. If register 1 contains a 0, all data base data sets are closed, and if
register I contains a one, all data base data sets are opened.

DPPIIRB

2

A CIRB macro will be executed to create an OS/VSI IRB under which
the OPEN/CLOSE routine (DPPDWRST) can run.

DPPIIRB

3

The IRB will be scheduled under the job step task to facilitate the
opening or closing of the data base data sets because the initialization task under which DPPIIRB runs, terminates at the end of initialization. DPPIIRB will wait for the OPEN/CLOSE routine to' complete.

DPPIIRB

When the CIRB macro is executed, it points to a segment in DPPIIRB
which links to the OPEN/CLOSE routine. On return from the link,
this segment will post the ECB that DPPIIRB is waiting on.

DPPIIRB

4

r(")

m
2

CI)

m

o

3!

»
-f

m

::D

»
r~

::D

o

~

m

::D
-f

-<

o"'T1

flo)

w

.........

DPPDWRST

From OPPIIRB (Figure 2-150)

Input

~

r--::__-t-L---.-l.----...L---...I..."
...

ill
Retrieve Passed Parameters

Data Base Data Sets
........

.,.f----'"

..)

r(=;
m
Z
(I)
m

o

3:

»
-t

m

::D

'---_.&.-_ _--J-r-..........,
~------r---,

~

~_r-_ _--...
..../.r

I
I

OPEN Or CLOSE All Data
Base Data Sets

Il

»
r-

v

I

I
I

I

-0

::D

I
I
I
I

I I

.... - -

f----~

I

I

~ ---- ~ -=- =-=. ----:.-~

D=========JJ

I

I

l ......

o-0

m

!

::D

I

o
."

I

_---", J

-t

-<

m

Issue System Message 9 If
Pre-Restart And Post-Restart ~---.l.-----.&.-_---"~
Or Pre-Probe And Post-Probe ~---..------r----Data Bases Are Different

..
...""""'-"

Return To Caller

Figure 2-151 (1 Of 2) - Data Base OPEN/CLOSE

3:
OPP0091

Figure 2·151 (2 of 2).

Step

Messages and
ABEND Codes PDL Segment

Extended Description

1

When DPPDWRST is entered, register 1 will point to a
The first word contains an ECB which is being waited
and the second word contains an OPEN/CLOSE flag. If
is 1, all the data base data sets are opened, and if
is 0, all the data base data sets are closed.

2

All the data base data sets in the system are opened or closed according to the OPEN/CLOSE flag pointed to by register 1.

double word.
on by DPPIIRB,
the second word
the second word

DPPDWRST

DPPDWRST

r
C')

m
Z

3

A BLDL will be executed to retrieve the @INIT data base directory
entry. If the DBDIBUPD field in the @INIT entry is different from
the DBDIBUPD field in the Data Base DDNAME Table, message 9 will be
issued.

DPP0091

DPPDWRST

en
m

o
S

l>

-f

m

:D

l>
r

LICENSED MATERIAL - PROPERTY OF IBM

Intentionally Blank

2-374

LICENSED MATERIAL - PROPERTY OF IBM

Offline Utility
The offline utility is primarily designed to control the offline maintenance of the data base, message, and user-associated data sets used
during online execution. Through an interface with the OS/VSl utility,
IEBUPDTE, source data sets, which serve as input to the online data set
build, may be updated by the offline utility. Online data sets are updated through an interface which will invoke the appropriate final phase
processor for the area (data base, messages, or user) being modified.

2-375

Offline Execution

I

Offline Utility

Data Base Compress

J

Playbeck

OPPXOBCP Main Control Routine
Figure 2-161

OPPXUTlL Main Control Routine
Figure 2·154

Figure 2·154 (13 of 30)

I

SYSGEN

OPPXNRTI Playblck Routine
Figure 2·162

Get Compress Control
Table
Figure 2·161 (9 of 24)

Control Card Validity
Check

I

.-

DPPXPCON PleybKk Conversion
Routine
Figure 2·73

I

Input Processing Routine
Figure 2·154 (19 of 301

r-

n

Read Data Base POS
Directory
Figure 2·161 (11 of 24)

I

m
Z

I

IEBUPOTE Interface
Figure 2·154 (23 of 30)

(I)

m
C

Read OA Control Records
Figure 2·161 (13 of 241

I

3:
l>

I

-C

m

Sort Compress Control

Input Read/Write
Figure 2·154 (25 of 30)

:D

Table
Figure 2·161 (15 of 24)

i>

rI

I
Move Direct Acceu
Arrays
Figure 2·161 (17 of 24)

Assembler/Loader/Final
Phase Processor Interlece
Figure 2·154 (27 of 30)

Read/Write Direct Acceu
Records
Figvre 2·161 (23 of 24)

OPPXOBAS Data Base Build
Figure 2·153

OPPUMSG Message Definition
Figure 2·159

I
·User Utilities

"'0

:D

o
"'0

/

m

:D
-C

-<

o
."

I

I

1

DOMXSTG1 Stage I SYSGEN Utility
Figure 2·163

I

I

DPPXDBIN Build Initialization Array
Figure 2·160

·User Associatad Programs

Figure 2-152 - Special Real Time Operating System Offline Execution Overview

Data Base Build

Data Base Final Phase
Processor - First Load

Write Direct Access
Arrri Data

Data Base Final Phase
Processor - Second Load

DPPXDBAT Main Control Routine
Figure 2·156

DPPXDBAS Main Control Routine
Figure 2·155
ADD Arrays
Figure 2·155 (11 of 24)

DPPXDBDA
Figure 2·157

Update Initialization
Array
Figure 2·156 (7 of 22)

DPPXDBLG Format Logging Arrays
Figure 2·158

I
Update Array ID Table
Figure 2·156 (9 of 22)

Figure 2·155 (17 of 24)

I

I
DPPXDBAT Data Base Final Phase
Processor - Second Load
Figure 2·156

.

I

I
Update Refresh Array
Figure 2·156 (11 of 221

m
Z
en
m
C

3:

::rJ

»

rI
"'V

::rJ

o
"'V

m
Update Composite Items
Array
Figure 2·156 (15 of 22)

I
Update PDS Directory
Figure 2·156 (21 of 22)

Figure 2-153 - Data Base Build Overview

r-

n

m

Read Data Base PDS
Directory
Figure 2·156 (19 of 22)

I

DELETE ''''Y'

DPPXDBLG
Figure 2·158

»-I

I
DPPXDBDA Write Direct Access Arrays
FigUre 2·157

Format Logging Arrrf

:D
-I

-<
o

-3:"
tD

DPPXUTll

~

Inp,I!

~

WAREA

....)

PJ

Regiltii' 1

..

GETMAIN And Clear Work Area

~

I

l.eng1tI

.... ~

J

PARMS

..... ;;<

:r

WAREA

Sot E"""" Co..........

"".om

I
I

-

...)

NOGENFLG

Z
m

...)

INPARM

3:

...
...

...:)

.... WAREA

WAREA
Joo.
p

III]

~

....

...

Initialize Work Area

,..
nm

)

en
C

~
m

:u

»,..
I

"V

::D

~

m

:u

-l
-(

m

o

I

laue STAE SVC

1

Figure 2·154
(3 Of 30)

Figure 2·154 (1 Of 30) . Main Control Routine

A

"

Figure 2-154 (2 of 30).

Messages and
ABEND Codes PDL Segment

Step

Extended Description

1

GETMAIN is used to obtain a storage area for register save area and
for work space. The area is cleared to contain all binary zeros.

DPPXlITIL

2

The execute card parameters may specify the use of assembler H or
the OS/VSl assembler and may specify that input to the assembler be
preceded by a PRINT GEN or a PRINT NOGEN. Default options are the
OS/VSl assembler and PRINT NOGEN. Specifying invalid options will
result in setting the default options and a parameter error flag.

DPPXlITIL

Initialize read buffers. IEBUPDTE parm list. assembler parm list.
loader parm list, sequential input DCB, and PDS input DCB areas of
the work area.

DPPXurIL

Issue STAE SVC to prepare for cleanup processing in case of an

DPPXUTIL

3

4

ABEND.

r
(')

m
Z

en
m
C

~
~

-t
m

:D
~

r

\J

:D

o\J

m

:D

-t

-<

o'TI

DPPXUTIL

SYSPRINT
DCB OPENED

NT
OPEN SYSPRINT And SYSIN DCB

r(')

m
Z

en
m

SYSPRINT

~-----------

--r-

C

SYSPRINT Not OPEN

3:

»
-I

I

I
I

\D

I

I

I
IL __

Figure 2·154
(11 of 30)
SYSPRINT OPEN

m

:.0

»
rI

o"

:.0

"

m

WAREA

~------------

:.0
Execute Card Plrlmeter Error

-<

o-n

Figure 2·154 (5 Of 3O)

Figure 2·154 (3 Of 30) • Main Control Routine

-I

c:v

Figure 2-154 (4 of 30).
Step

Extended Description

Messages and
ABEND Codes POL Segment

1

The SYSPRINT and SYSIN data sets are opened.

DPPXUTIL

2

If SYSPRINT does not open, register 15 is set to 16, and error exit
processing is performed.

DPPXUTIL

3

If SYSPRINT is open, the DPPXUTIL header message is written to
SYSPRINT.

DPPXUT22I

If errors were found in the execute card parameters, a message
indicating that default options are used is written to SYSPRINT.

DPPXUT25I

4

DPPXUTIL

r(")

DPPxtITIL

m
Z

en

m

o

3:

l>
-i
m

:c
l>

r-

."

:c
o
."
m

:c
-i

-<

o
."

DPPXUTIL

Output

SYSIN

§----- -----..--~L__ =_SY~S~IN~OC~B~N~o~t~OP~E=N~

J··fIIl

__

r

om
Z

Start Of

Loop

(I)

m
WAREA

Get A Card From SYSIN

C

3:
»
-t
m
:::c

»
r
I
"'0

:::c

o"'0

m

Write Card To SYSPRINT

:::c
-t

-<

o
"TI

Fiiure 2-154
(7 Of 30)

Figure 2·154 (5 Of 30) . Main Control Routine

r7l
'\./

Figure 2-154 (6 of 30).

Step

Extended Description

Messages and
ABEND Codes POL Segment

1

If the SYSIN DeB is not open, a missing DD statement message is
written to SYSPRINT, return code 12 is set in register 15, and error
exit processing is performed.

DPPXUTOlI

DPPXUTIL

2

The input buffer is checked for a control card. If no control card
is present, a GET is issued to obtain the first card from SYSIN.
When the end-of-file is read from SYSIN, the message SYSIN END-OFFILE is written to SYSPRINT.

DPPXUT201

DPPXUTIL

3

The card now residing in the input buffer is written to SYSPRINT.

I'
("')

DPPXUTIL

m
Z
en
m
C

3:
l>
-f

m

:xJ

l>

r-

."
~

o
."
m

:xJ
-f

-<
o

."

Ol

3:

DPPXUTIL

Output

Input

r

WAREA

~--

If Not Control
Card

I

I

I
I
L

C

3:
DO

..

.,

~

Control Card
Validity Check
Figure 2-154
(13 of 30)

m

::D

»
r-

WAREA

INVALID

~

--,

--t-

I
."

::D

o

If Valid Control
Card

."

m

I
I

Figure 2-154
(9 of 30)

I

L

Figure 2-154 (7 Of 30) - Main Control Routine

Z

(I)

m

If Control Card,
Validity check
Operandi

....

~

n
m
WAREA

DPPXUTLl

BYPASS

r-

End of
Load
Figure 2·154
(11 of 30)

--1

If Not A Valid
Control Card

::D

~

o
.."

Figure 2-154 (8 of 30).

Step

Extended Description

Messages and
ABEND Codes PDL Segment

1

If the card in the input buffer is not a control card, print a
message that the first card must be a control card. Read and flush
cards from SYSIN until a control card or an end-of-file is reached.

2

If the card in the input buffer is a control card, go to the control
card validity check routine.

3

If the control card 'is valid, the CONTROL CARD ACCEPTED message is
written to SYSPRINT.

DPPXUT99I

If the control card is not valid, the SKIPPING FOR NEXT CONTROL CARD
message is written to SYSPRINT.

DPPXUT211

DPPXUT02I

DPPXUTIL

DPPXUTIL
r

4

DPPXUTIL

n
m

DPPXUTIL

en
m
o

Z

s

»-I

m

::D

»

r

~

::D

o

~

m

::D

-I

-<

o-n
to

:s:

Figure 2·154

DPPXUTIL

(7 Of 30)

Output

PrOC*S

Input

SVSUT4

... 1m
....... IOPEN SVSUT4 DCB

SYSUT4

....

DCB
OPENED

')

v

DCBOFLGS

~----- ~-I

I

I __
L

ill
f-+

Register 15

..":>

If DCB Not OPEN

~

12

II

~1y!Figure 2·154
(11 of 301

Nnr.~t.II:1

r.:

....,

~-----

~...1..

~~

AREA

I. . . .

1

1

T I

J

T

roo

___

~-----

....

..:>

..":>

...
~

ERRE
BAD

......

~-----

....

......

Dati

~

m
::D

»
rI
."

::D

o

."

m

-t

-<
o

OPPXUTL2
Input Processing
Routine
Figure 2-154
(19 Of 301

"OJ

3:

rID

Source Om Set
UpdIte Operation

...... 00 .....

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

DPPXUTL4
IEBUPDTE
Interf.ce Routine
Figure 2-154
(23 Of 301

F

Figure 2-154 (9 Of 30) . Main Control Routine

OSAM

3:

::D
.. DO ...

----

~

Set

...

WAREA

DPPX UTO 1

SVSUT4

Online Om Set
Build Operation

m

Z
en
m

o

')i

WAREA

r-

o

Figure 2·154 (11 Of 30)

Figure 2·154 (10 of 30).
Step

Extended Description

Messages and
ABEND Codes POL Segment

DPPXUTIL

1

The utility data set described by the SYSUT4 DD statement is opened.

2

If the SYSUT4 DeB does not open, a missing DD statement message is
written to SYSPRINT, return code 12 is set in register 15, and error
exit processing is performed.

3

If the NOGENFLG is set, a PRINT NOGEN card is written to SYSUT4. An
area definition macro card is constructed from the input control card
and written to SYSUT4. If the operation is an online data set build,
control is passed to the input processing control routine for online
data set build.

DPPXUTIL

If the operation is a source data set update, control is passed to
the IEBUPDTE interface routine for source data set update.

DPPXUTIL

DPPXUTOlI

DPPXUTIL

r
(")

m
Z

en

m

o

3:

4

»
-I

m

:D

»

r

-0

:D

o
-0

m

:D
-I

-<
o

-n

OJ

3:

•

DPPXUTIL
Input

WAREA

~-----

No End-Of-File Reached On SYSIN

Figure 2-154
(5 of 30)

r(")

m

SYSPRINT

Z

SYSPRINT

DCB

(I)

m

~_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _L -_ _ _ _ _ _L-~Im

SYSIN

CLOSE SYSIN And SYSPRINT

C

3:
DCB
CLOSED

~

~

m

::D

~

rI

~-------

-0

::D

If Data Base Operation Performed

0

-0

m

::JJ
-I

.....
iiii• •~ tion
Build DB Initializa""'II
Array
Figure 2-160

GJ

Free Work Area

Return To Schedular

Figure 2·154 (11 Of 30) • Main Control Routine

."

Ol
~

WAREA

C]-·------f-1

-<

0

Figure 2-154 (12 of 30).
Step

Extended Description

1

If end-of-file has not been reached on SYSIN, go back and process next
control card.

2

If end-of-file has been reached on SYSIN, write the UTILITY ENDED
message to SYSPRINT, CLOSE SYSPRINT and SYSIN, and set return code
o in register 15.

3

If a data base operation was performed, link to DPPXDBIN to build
the data base initialization array, @INIT.

4

Free the gotten work area.

Messages and
ABEND Codes POL Segment

DPPXUTIL
DPPXUT23I

DPPXUTIL

DPPXUTIL

rn

m
Z

en
m

DPPXUTIL

o

3:

»

-I

m

:::D

»r."

:::D

o
."
m

:::D
-I

<
o

-n

DPPXUTIL

Process

Input

WAREA

WAREA

ITl
If Not Valid Operation On Control Card

--iI
I

r-

I
I

nm

I

I

,I

... -

rn

WAREA

C

Validity Check Control Card Format

I
I

3:

~
m

I

I
I

I

t--

rn

::D

l>
r-

Break Out Keywords And Operands

I

I

I

I
I

,
I

I

Z
en
m

-V

rn

::D

0
-V
m

If Online Data Set Build Operation

::D
~

<

Q
III

0

"CD
g

If Source Data Set Update Operation

\9
{!J
Mark Control Card Checked

Return To Figure 2·154
(70130)

Figure 2-154 (13 Of 30) - DPPXUTL 1 - Control Card Validity Check

WAREA

Figure 2-154 (14 of 30).
Step

Extended Description

1

The control card is checked for a valid operation field. A message
is written to SYSPRINT if the operation is omitted or incorrect. Set
bypass if message written to SYSPRINT.

2

The control card is checked for proper format and continuation.
Messages are written to SYSPRINT for:

Messages and
PDL Segment
ABEND Codes

DPPXUT18I
DPPXUT19I

DPPXUTIL

DPPXUTIL
r

PARAMETER OR CONTINUATION MARK MISSING
EXPECTED CONTINUATION NOT RECEIVED
COLUMNS 1-15 MUST BE BLANK
CONTROL CARD TEXT BEYOND COL 71.

(')

DPPXUT03I
DPPXUT04I
DPPXUT05I
DPPXUT06I

m

Z

en
m
0

3:

Set bypass if message written to SYSPRINT.

DPPXUTIL

3

Break out keyword operands into separate fields.

DPPXUTIL

4

Validity check keywords and operands on online data set build control
card.

DPPXUTIL

Validity check keywords and operands on source data set update control card.

DPPXUTIL

Mark control card to indicate completion of validity checking.

DPPXUTIL

»
-I
m
~

»
r
."
~

5

6

0

."

m

:IJ
-I

<

0

"OJ

3:

DPPXUTIL

Process

Output

WAREA

WAREA

OJ
Validity O1eck AREA
Keyword And Operand

r
Validity Check OPTION
Keyword And Operand

nm
Z
m

en

o

3:
Validity O'Ieck lNPUT
Keyword And Operand

~
m
~

Validity Check TYPE
Keyword And Operand

i>
rI
-0
~

~

m

::D
-I

-<
o

"

Retum To Figure 2-1
(13 Of 30)

Figure 2-154 (15 Of 30) - DPPXUTL 1 - Control Card Validity Check

Figure 2-154 (16 of 30).
Step

Extended Description

Messages and
PDL Segment
ABEND Codes

1

The operand specified for AREA is validity checked. *

DPPXUTIL

2

The operand specified for OPTION is validity checked.*

DPPXUTIL

3

The operand specified for INPUT is validity checked.*

DPPXUTIL

4

The operand specified for TYPE is validity checked.*

DPPXUTIL

r
(")

m
Z

en
m

o

3:

~
~

m

::D
~

r

*Messages written as a result of this validity checking are:
WRONG PARAMETER
MULTIPLE KEYWORD
PARAMETER IN ERROR
RIGHT PARENTHE~IS MISSING, TREATED AS VALID
WRONG KEYWORD
INPUT SPECIFICATION MISSING
AREA SPECIFICATION MISSING
NO OPERAND FOUND

DPPXUT07I
DPPXUT08I
DPPXUT09I
DPPXUTIOI
DPPXUTIlI
DPPXUT12I
DPPXUT13I
DPPXUT17I

Figure 2·154 (13 Of 30)

DPPXUTIL

Ou1put

Process

Input

WAREA

WAREA

....
I

....

.;

IITJ

....

Validity Cleek NEWSET
Keyword

v

")

INVALID

,
r-

n
m
Z

en
m

II]
....
y

)

C

Validity Cleek OLDSET
Keyword

3:
»
-t

m

::0

»

rI

""0

:D

o""0

m
::0

-t

-<

o

"

l

Figure 2-154 (17 Of 30) - DPPXUTL 1 - Control Card Validity Check

Return To
F~re 2·154
(1 Of 30)

Figure 2·154 (18 of 30).
Step

Extended Description

Messages and
PDL Segment
ABEND Codes

1

The operand specified for NEWSET is validity checked.*

DPPXUTIL

2

The operand specified for OLDSET is validity checked. *

DPPXUTIL

r
(')

m

Z

en

m

o

3:

»
-f

m

:D

»

r

."

:D

o
."

m
JJ

-f

-<

o"T1

*Messages written as a result of this validity checking are:
WRONG PARAMETER
MULTIPLE KEYWORD
PARAMETER IN ERROR
WRONG KEYWORD
NEWSET SPECIFICATION MISSING
OLDSET SPECIFICATION MISSING

DPPXUT071
DPPXUT08I
DPPXUT09I
DPPXUTllI
DPPXUT15I
DPPXUT16I

Figure 2·154

OPPXUTIL

(9 Of 30)

Input

WAREA

~
....

Input

Output

Process

rill

,/

IF Input From
SYSIN

DPPXUTLJ

..... DO...... Input READ/WRITE
Fig 2·154
(25 Of 301

.......- .....

To ERREXIT

v

DPPXUTLJ

..... 00....

....

Input READ/WRITE
Fig 2·154
(25 Of 30)

r-

(;

m
Z
en
m

.....

1':>1m
IF Input From
I.,,> Sequential
Data Set
......

SEQINDCS

..... --'

:\:V

C

3:

»-I

Fig 2·154
(9 Of 30)

m

:0

»r-

WAREA

I

Input

"'0

:0

JFCB

~
...

rn

o"'0

Member

:0
-I

m

.....

~ERREXIT

IF Input From
Partitioned Data Set

DPPXUTL3
PDSINDCB

JFCS

...... 00.... Input READ/WRITE

......--..-

Fig 2·154
(25 Of 30)

Figure 2-154 (21 Of

Figure 2·154 (19 Of 30) - DPPXUTl2 - Input Processing Control

3O)~

...

)

.~

Fig 2·154
(9 Of 301

-<

o
."
.. ", ... u ...., , "

...

.

')

aJ

3:

Figure 2-154 (22 of 30).
Step
1

Extended Description

Perform external interfaces with assembler, loader, and final phase
processor.

Messages and
PDL Segment
ABEND Codes

DPPXUTIL

,..
o

m
Z
m

(I)

C

3:

»
-f

m
::D

»
r."

::D

o

."

m

::D
-f

-<

o

"OJ
3:

DPPXUTIL

Figure 2-154 (23 Of 30)

Input

OJ
Do Input
READ/WRITE

OPPXUTIL
Output

Process

.....00.....

.... ....

r-

o
m

DPPXUTL3
Input
READ/WRITE
FIgUre 2·154

Z

en
m

(25 Of 30)

C

3:

»-4

m

-»r:D

LINK
Do IEBUPDTE
Processing

Update Source
Data Set

I
"'0

:D

o"'0
m

:D

-4

-<

..,o
OJ

3:

Figure 2·154 (23 Of 30) - DPPXUTL4 . IEBUPDTE Interface Routine

Figure 2·154 (24 of 30).
Step

Extended Description

Messages and
POL Segment
ABEND Codes

1

Control is passed to the input READ/WRITE routine.

DPPXUTIL

2

Link to IEBUPDTE to update the source data set.

DPPXUTIL

r-

n

m
Z
en
m
C

3:

»
-i
m

:Il

»

r"'0

JJ

o
"'0

m

JJ
-i

<:

o
'T1
to

3:

N

8....

Fi~re 2-154 (19 Of 30)
Figure 2-154 (23 Of 30)

DPPXUTIL

Output

Process

~

Input

SYSUT4

...

/

..."

/

("~'

From SYSIN

IT]
REAO/WRITE
Input

...

./

..
I-

i------"
Input
From
SYSIN

>
,_/

~

r-

n
m
Z

(I)

m

C

3:

:t>

-4

m

1J

WAREA

l>

1m
OPERATN

"')

Online Data Set
Build Operation

rI
'"'0

1J

o
'"'0

m

1J
-4

-<

o
."

-~

Return To Caller

Figure 2-154 (25 Of 30) - DPPXUTL3 - Input ReadIWrite

Figure 2-154 (26 of 30).
Extended Description

Step
1

input from SYSIN and WRITE input cards to SYSUT4. The message
END-OF-FILE ON INPUT DATA SET is written to SYSPRINT when the endof-file is read on the input data set.

2

If online data set build operation, write appropriate area definition
END macro to SYSUT4.

p~

Messages and
PDL Segment
ABEND Codes
DPPXUT24I

DPPXUTIL

DPPXUTIL
r-

n

m
2
en
m

o

s:
»
-4
m

II

»r"'tJ

::D

o"'tJ
m

II
-4

-<

o

"

DPPXUTIL

M

If Assembler H Specified

r-

LINK
Assembler H

om
Z

SYSUT4

CI)

m
C

3:
»
-t

If OS/VS Assembler Specified

m

::D

»
r-

LINK

I
"'V

::D

o
"'V

m

If Assembler Return Code Greater Than
16. ABEND

::D

-t

-<

o."
If Assembler Return Code Is 8 Or
Greater

Figure 2·154
(29 Of 30)

Figure 2.154laJ
(29 Of 30)

""'V

Figure 2-154 (27 Of 30) - DPPXUTL5 - ASM/Load/FPP Interface

Figure 2-154 (28 of 30).
Step

Extended Description

Messages and
ABEND Codes POL Segment

1

If Assembler H was specified, the input cards on SYSUT4 are assembled
by the Assembler H.

DPPXUTIL

2

If the OS/VSl Assembler is specified, the input cards on SYSUT4 are
assembled by the OS/VSl Adsembler.

DPPXUTIL

3

If the assembler return code in register 15 is greater than 16,
DPPXUTIL ABENDs with ABEND code 55.

4

If the assembler return code in register 15 is 8 or greater, the
PROCESSING ABORTED DUE TO BAD RETURN CODE FROM ASSEMBLER message is
written to SYSPRINT.

USER 55
DPPXUT26I

DPPXUTIL
DPPXUTIL

r-

o

m
Z
m

C'I)

o

3:

»
-4

m

:D

»
,...
~

:D

o

~

m

:D

-4

<
o

."

tJl

3:

Figure 2·154
(27 Of 30)

N

.i::.
o

DPPXUTIL

m

(

Assembled
Object Deck

Output

Process

Input

W

...

....)

m

load Object Deck Into Storage

r-

..
...

CALL

.

......

I-II=WlnAnA

nm

.)

Loader

...

Z

Loaded
Assembler

(I)

Output

C

m

3:

~

Register -l5

.

m

Return Code

v

:XJ

»

Register 15

~

Return Code

Loaded
Assembler
Output

I
I

rI

... rID
... :> If loader Return Code Is 8 Or Greater

.
..

rm

Loaded
Assembler
Output
Interface With Final Phase Processor

..
"

LINK

...

.

1
Final
Phase
Processor

!

~

'\

Register 1

A(lnput Load Module)
Input L M. Size
DO)

SYSPRINT line ~"t
~Y'

Return To
Figure 2·154 (21 Of 30)

Figure 2-154 (29 Of 30) - DPPXUTL5 - ASM/Load/FPP Interface

-a
:XJ

~

m
:XJ
-4

-<
o
"T1

Figure 2-154 (30 of 30).
Step

Messages and
ABEND Codes PDL Segment

Extended Description

1

The assembled object deck is loaded into storage by the LOADER.
return code is returned in register 15.

A

2

If the return code is 8 or greater, the PROCESSING ABORTED DUE TO BAD
RETURN CODE FROM LOADER message is written to SYSPRINT.

3

A link is performed to the final phase processor for online data set
build. The name of the final phase processor is not known. The
address of a program name is contained in the loaded assembler output.

DDPXUTIL
DPPXUT26I

DPPXUTIL
DPPXUTIL

r
(")

m
Z

en

m
C

3:

»
-f

m
~

»
r"'0

~

o"'0

m

~

-f
eo(

o

."

OJ

3:

N

.t::-

DPPXDBAS

Entered Via link From DPPXUTI L
Figure 2-154 (29 Of 30)

Input

O

~

ex>

::1[1]

Register 1

Output

Process

WAREA

":>
...

GETMAIN SaveIWork Area

W

"~ID

, .....

WAREA
DBINPARM
A(lnput L.M.)
L.M. Size
,.1 DCB)
II;)';:)'

C

I[I]

TnPut

~

I

Load DPPXDBDA And
DPPXDBLG

1l

SYSPRINT Line
Count

")0

.)
...

WALMDBDA
WALMDBLG

-n
r-

m
Z

(I)

m

C

3:

Loaded
Assembler
Output

DBINIT

DBINIT

....

DCB

....

1[2]
OPEN Data Base PDS

-)

L

~

DCB
(OPENED)

»
-t

m

:Jl

»

rI
-0

DBINIT

r

r

I

DCB
DCBOFLGS

I

I

------ 1------

....

....

111]
If Data Base PDS Not OPENED

~

Figure 2·155 (1 Of 24) - Main Control Routine

A

:Jl

o-0
m

:0

ERREXIT ALL
Figure 2-155
(9 Of 24)

Figure 2-155 (3 Of 24)

Register 15

-t

-<
o

"

rF~ig~u~re~2-~1~5~5_(=2~o_f_2~4~)~__________________________________________________,-_________-.________ ___

Step

Extended Description

Messages and PO L Segment
ABEND Codes

1

GETMAIN is used to obtain a register save area and work area. The
address of the input parameter list is saved in the work area.

DPPXDBAS

2

The data base final phase processor branch routines are LOADED into
storage.

DPPXDBAS

3

The DATA BASE FINAL PHASE PROCESSOR ENTERED message is written to
SYSPRINT and the data base PDS is OPENed.

DPPXDB01I

DPPXDBAS

r(")

m
Z

(I)

4

If the OPEN fails, the UNABLE TO OPEN DATA BASE PDS message is
DPPXDB071
written to SYSPRINT, register 15 is set to 16, and error exit processing is performed.

DPPXDBAS

m

o

s:
»
-t

m

:c

»
r"0

:c

o
'"'0

m

:c

-t

<

o."

DPPXDBAS

Input

Figure 2·155 (1 Of 24

Outpu-,!

Process

WAREA
DBINIT

1m GETMAIN

DCB
DCBBLKSI

1------ ~

- -- r-.

J..,,:

Input/Output
Buffel"l

./

II

~

WAICBBUF
WAOLDCID

~

New Dir

WAREA
L.M.

[1]

~

DBDFNOAR

V

l'

... ~~rt:""11 r-~

GETMAIN New
Directory Buffer

~
.....

rn

o

~

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

ADDARRAY
Add Arrays
To Data Base
Figure 2·155
(11 Of 24)

m

:0

~
...

rI
."

:0

o

"'"

:0
-i

(IJ
If Option Is
Delete

~

.....----..-

DELARRAY
DELET Arrays
From Data Base
Figure 2·155
(17 Of 24)

Figure 2·155 (3 Of 24~

Figure 2-155 (3 Of 24) - Main Control Routine

8

s:
»
-i
~

~

-

Register 15

-::>

If Option Is
Add

Z

m

Figure 2·
(9 Of 24)

-

m
CI)

~

DBDFOPTN

rn

B

-<
o
"T1

Figure 2·155 (4 of 24).
Step

Messages and
ABEND Codes PDL Segment

Extended Description

1

GETMAIN is used to obtain buffers for input and output.
addresses of the buffers are saved in the work area.

2

If arrays have been defined in the input load module, GETMAIN is
used to obtain storage for new directory entries. Otherwise, the
message NO ARRAYS DEFINED is written to SYSPRINT, register 15 is
set to return code 8, and error exit processing is performed.

DPPXDBAS

The
DPPXDB05I

DPPXDBAS

rn

3

If the processing option is ADD, go to the ADD {irray routine.

DPPXDBAS

4

If the processing option is DELETE, go to the DELETE array routine.

DPPXDBAS

m
Z

en
m

o

3:

»-f
m

::D

»r-c

JJ

o-c
m

::0
-f

<

o
."

.........

N

DPPXDBAS

Input

Fig 2·155 (3 Of

WAREA

LM.

......
UDUr-Vr-11'4

.~

Process

m

J-.>
-

IF Option Is
REPLACE

./

DO

....-

..

WAREPL

DELARRAY

r-

Delete Arrays
From Data Base
Fig 2·155 (17 Of 24)

C')

m

2
m
C

(I)

3:
DO

....-

..

~

ADDARRAY

m

Add Arrays To
Data Base
Fig 2·155
(110f24)

:0

l>

r-

WAREA

1m
J'..)

-

.Joo.

IF Option Is
TEST

)

WATEST

:0

o

."

m

DELARRAY
DO

....

..
.

Delete Arrays
From Data Base
Fig 2·155
(17 Of 24)

ADDARRAY

..
....-

DO

...

Figure 2·155 (7 Of 24)

Figure 2-155 (5 Of 24) - Main Control Routine

I
."

Add Arrays To
Data Base
Fig 2·155
(11 Of 24)

c

:0
-I

-<

o

"

Figure 2·155 (6 of 24).
Step

--

Extended Description

Messages and
PDL Segment
ABEND Codes

1

If the processing option is REPLACE, set the replace flag in the work
area, go to the DELETE array routine, and go to the ADD array routine.

DPPXDBAS

2

If the processing option is TEST, set the test flag in the work area,
go to the DELETE array routine, and go to the ADD array routine.

DPPXDBAS

,CO)

m

Z
m

CI)

o

3:

»-I

m

:D

»
,"'0

:D

o"'0

m

:D
-I

-<

o

"'T1

DPPXDBAS

Figure 2·155
(5 Of 241

Input

WAREA

lM

UDU ·Ut

Output

Process

[[IT
N

.."'>

. ")I

IF Invalid Option
Default To TEST

...
"'

DO _..
r

WATEST

,...

DELARRAY
De1ete Arrays
From Data Base
Fig 2·155
(17 Of 24)

(")

m
Z

en
m
C

..
"'

ADDARRAY
DO ...

...

3:

»
~

Add Arrays
From Data Base
Fig 2-155
(11 Of 24)

m
::xJ

>
,...
I
Register 1

A(WAREA)

-0

"'>

....

::xJ

i[]]Data Base Final
Phase Processor
(Second Load)

Q
m
::xJ

WAREA

...

...
.

LINK

~

,....

...,....

Data Base FPf'
Second load
Fig 2·156

~

o

"T1

OJ

3:

Figure 2·155 (9 Of 24)

Figure 2-155 (7 Of 24) - Main Control Routine

0

Figure 2·155 (8 of 24).

Step

Extended Description

1

If the processing option is invalid, the test mode flag is set in the
work area, and the message, INVALID OPTION-TEST ASSUMED, is written
to SYSPRINT. DELETE array and ADD array processing is performed.

2

The second load of the data base final phase processor is entered via
a LINK SVC to complete data base processing.

Messages and
ABEND Codes POL Segment

DPPXDB04I

DPPXDBAS

DPPXDBAS
r

o

m
Z
en
m

C

3:

»
-t

m

::D

»

r

."

::xJ

o."

m

::D
~

<
o
."

OJ

3:

DPPXDBAS

Figure 2·155 (7 Of

Inputs

24~

~

Process

OutputS

DBINPARM

m

Set Data Base Processed Indicator

-">
.

r-

n
m
2

en
m

C

s:

ERREXIT
ALL

WAREA

CU

•

~

m

.
...

..-:>

[l]
FREEMAIN SaveMork Area

.

-">

"Y

Register 15

:D

Return Code

rI

»
-a

:D

o-a

m
::D

-I

-<

o
."

Return To DPPXUTIL
Figu re 2·155 29 Of 30

Figure 2-155 (9 Of 24) - Main Control Routine

F·'_9 ure 2.155 (10 0 f 24)
Step

Extended Description

1

Set data base processed indicator in the input parameters to tell
DPPXUTIL that data base processing was performed.

2

The DATA BASE FINAL PHASE PROCESSOR COMPLETED message is written to
SYSPRINT, the save work area is freed, and the return code is set
in register 15.

Messages and
PDL Segment
ABEND Codes

DPPXDBAS
DPPXDB031

DPPXDBAS
r
('")

m
Z

CI)

m

o

3:

»
-t
m

::D

»

r

"0

::D

o
"0

m

::D

-t

<

o"TI

Figure 2-155 (3 Of 24)
Figure 2-155 (5 Of 24)
Figure 2-155 (7 Of 24)

DPPXDBAS

Process

Output

~------------~~--------------~

lM

ill

----

BALR

Format logging
Array
Fig 2-158

IF logable Array

r-

n
m
Z

en
m
0

3:

»
---4

lM

----

IF Virtual
Storage
Resident Array

Add Array
To PDS
Fig 2-155
(13 Of 241

m

:ll

l>
rI
."

:ll

0

."

m

lM

:ll
IF Direct Access
Resident Array

Add Array To
Direct Data Set
Fig 2-155
(15 Of 24)

---4

-<

0

."
gJ

3:

Figure 2-155 (11 Of 24) - ADDARRAY - Add Arrays To Data Base

Figure 2·155 (12 of 24).

Step

Extended Description

Messages and
POL Segment
ABEND Codes

1

If the array being processed is a loggable virtual storage resident
array, BALR to the logging array formatter.

DPPXDBAS

2

If the array is a virtual storage resident array, go to the routine
to ADD arrays to the data base PDS.*

DPPXDBAS

3

If the array is a direct access resident array, go to the routine
to ADD arrays to the data base direct data set.*

DPPXDBAS

I
("')

m

Z

(I)

m
C

~

l>
-t
m

::c
l>

I

."

::c

o

."

m

::c
-t

<

o

."

*These messages may be written to SYSPRINT:
DUPLICATE ARRAY NAME
DUMMY BIT SET
BLDL I/O ERROR MESSAGE

DPPXDB061
DPPXDB171
DPPXDB181

Figure 2-155
(11 Of 24)

DPPXDBAS
npu

~

LM

noAD. nt',i

Output

------

~
~---

rm

r--.

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

IF Blocked
Array

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

WRITEBL-'(
Write Blocked
Array Data
Fig 2-155
(19 Of 24)

r-

n
m
Z

LM

~
..

nOAD nt' ...

rrn

~----~---~

WHIII:UTA

I F Unblocked
Array

~

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

Write Unblocked
Array Data
Fig 2-155
(21 Of 24)

en
m

o

3:
~

-I

m

::xJ
~

rI

WAREA

-0

WADBDIR

::xJ

.)
..

STOWDIR

rOO

STOW Directory
Entry

~

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

STOW Array
Directory Entry
Fig 2-155
(23 Of 24)

L M

o-0

m

::xJ
-I

-<

o
."

Return To
Figu re 2-155 (11 Of 24 )

Figure 2-155 (13 Of 24) - ADDARPDS - Add Arrays To Data Base PDS

Figure 2-155 (14 of 24).
Step

Extended Description

Messages and
PDL Segment
ABEND Codes

1

If the array is blocked, go to the routine to write blocked array
data to the data base PDS.

DPPXDBAS

2

If the array is unblocked, go to the routine to write unblocked
array data to the data base PDS.

DPPXDBAS

3

STOW is used to write a dummy directory entry and an end-of-file at
the end of the PDS array data. The real directory entry is moved
to the new directory buffer.

DPPXDBAS

r(")

m

Z

(I)

m

o

3:

»
-f

m

:0

»
r"'0

:0

o"'0

m

:0
-f

-<

o

-n

Figure 2-155
(11 Of 24)

DPPXDBAS

~

Input

Output

Process

LM

..) [IT]Write Array Data
.. To Direct Data Set

WAREA

.... nn

....

...

BALR

,

~

"LlULI

Write Array
Data
Fig2-1S7

r-

ei

m
Z

WAI MnRnA
-~

(J)

m
C

3:

WAREA

~
.

WADABUF

1m Write Direct
Access Control
Record

YVMII t:UIA

~

..... ..,...

Write Unblocked
Array Data
Fig 2-155
(21 Of 24)

>
-f

m

:7l

»
rI
~

WAREA

:xJ

o

"

m

WAD8[)IR

r;
LM

f[lJ.
~

. ./

STOW
Directory Entry

."J5"". .

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

STOWDiR
Stow Array
Directory Entry
Fig 2-155
(23 Of 24)

Return To

Fi re 2-156
(1fOf 24)

Figure 2-155 (15 Of 24) - ADDARDDS - Add Arrays To Data Base Direct Data Set

~

<
o

"

,Figure 2-155 (16 of 24).
Step

Extended Description

Messages and
PDL Segment
ABEND Codes

1

BALR to DPPXDBDA to write array data to the data base
direct data set.

DPPXDBAS

2

Go to the routine to write unblocked array data-to write
the direct access control record to the data base PDS.

DPPXDBAS

3

STOW is used to write a dummy directory entry and an end-offile at the end of the PDS array data. The real directory
entry is moved to the new directory buffer.

r-

. DPPXDBAS

n
m
Z

en
m

o

3:

»-4

m

:D

»

r-0

:u

o
-0

m

::D

-4

-<

o

."

OJ

3:

Figure 2-155 (3 of 24)
Figure 2-155 (5 of 24)
Figure 2-155 (7 of 24)

DPPXDBAS
Input

~

WAREA

LM.

...
~.~~

vuv

.~

.v

Output

Process

...

)

1m

~"
.)

GETMAIN Delete Table

WADEL TAB

DBARNAME

r

o

m
DELTAB

..)

rIl
BLDL On Array Name

v

-"

.)

Array Name

Z

en
m
o
3:

»
-4
m

:D

»

DELTAB

DELTAS

..")

v

@]
--"

Sort Delete Table By Array
Name

y

)

(Sorted)

r
I

"'0

:D

o
"'0
m

:D
-4

-<

o
"T1

Return To Caller

Figure 2-155 (17 Of 24) - DElARRAY - Delete Array From Data Base

Figure 2-155 (18 of 24).
Extended Description

Step

Messages and
ABEND Codes POL Segment

1

GET MAIN is used to obtain storage for the DELETE table.

DPPXDBAS

2

BLDL is used to determine if the array exists. If the array
is found on the data base PDS directory, the array name is
saved in the DELETE table.*

DPPXDBAS
r("')

3

DPPXDBAS

The DELETE table is sorted in ascending sequence by array
name.

m
Z

(I)

m

o

3:

»-t

m

::D

»
r."
:l)

o
."

m

:l)

-t

-<

o
."
*These messages may be written to SYSPRINT.
ARRAY DELETED
ARRAY NOT FOUND
DUMMY BIT SET
BLDL I/O ERROR

DPPXBD12I
DPPXDBlSI
DPPXDB171
DPPXDB181

Figure 2-155
( 13

DPPXDBAS

Of~

Input

Output

Process

l.M.

l.M.

.. OJ
~

")

,~-

r-WAREA

~-

I-'~

...

If Array Block Size Greater Than Data Set
Block Size, Truncate.

)
~

I

,~~

,--

.,:)

I

I
I

_.J

WAREA

r

L.M.

""")
....

1-------------- f------- 1--.

[lJ
If Data Size Greater Than Array Block Size,
Truncate.

J

NEWCID

..

[l]
Save New Composite Item Entries

"
l.M.

I

~

I

~

..,,, ,CIA,r-ln

r-

om
Z

(I)

m

o

s:

l>
~

m

:D

I

l>
rI
"V

"-

~
Write Array Data To Data Base PDS

"

.=>
....

f---../
Data Base
PDS

WAREA

WARIk'NIIM

I

o"V

m

:D
~

-<

L.M.

~----------- ---,L__

:D

o
-n
WAREA

--.,.
.. []J
...')

If Number Of Blocks Greater Than Array
Block Count. Truncate

Retum To Figure 2(13 Of 24)

Figure 2-155 (19 Of 24) - WRITEBLK - Write Blocked Array Data To PDS

..
-/

OJ

3:
WARIk'NIIM

Figure 2-155 (20 of 24).
Step

Extended Description

Messages and
ABEND Codes POL Segment

1

If the array blocksize is greater than the data set blocksize,
set the array blocksize equal to the data blocksize. Write the
ARRAY BLOCKSIZE TRUNCATED message to SYSPRINT.

DPPXDBlOI

DPPXDBAS

2

If the array data size is gr€ater than the array blocksize,
truncate the excess data and write the DATA TRUNCATED message
to SYSPRINT.

DPPXDB09I

DPPXDBAS

rC')

m

3

4

5

Move the item control blocks for all named items into the
new composite items buffer.

DPPXDBAS

Z

(I)

m

o

Write blocked array data to the data base PDS. If assigned
block numbers are out of sequence, default to the next sequential
block number. Write the BLOCK NUMBER ERROR message to SYSPRINT.

DPPXDB20I

If the number of blocks of array data written exceeds the array
block count, truncate the excess blocks. Write the ARRAY BLOCK
COUNT EXCEEDED message to SYSPRINT.

DPPXDBl6I

DPPXDBAS

3:

»
-4
m

::0

l>

DPPXDBAS

r-

."

::0

o-g

m

::0

-4

<

o-n

DPPXDBAS

nput

Figure 2-155 (13 Of 24)
Figure 2 155 (15 Of 24)

Output

Process

~

~

ill

Register 5

...

PDS BlK Size

...)

Register 6

....
Data Length

y

v

Data Base

~ .PDS

WAREA

WAN EWCI D

NEWCID

....
~

Save New Composite Items
Entries

Z

(I)

m

Write last Record Or
Single Data Record

I~

r-

n
m

m

~

Register 7

AIData Start)

...

If Array Data Size Greater
Than PDS Block Size,
Write Multiple Records

...

,)

C

s:
»
-I
m

::xJ

l>
rI

y

-0

L.M.

::xJ

o-0
m

::xJ

-I

-<

o
."

Return To

Figure 2-155 (21 Of 24) . WRITEDTA . Write Unblocked Array Data To PDS

Figure 2-155 (22 of 24).
Step

Ext-ended Description

Messages and
ABEND Codes PDL Segment

1

If the array data size is greater than the data base PDS
blocksize, write PDS blocksize records until the size of the
remaining data is less or equal to the PDS blocksize.

DPPXDBAS

2

Write one data record to the PDS which is less than or equal
to the size of the data base PDS blocksize.

DPPXDBAS
r(")

3

Move the item control blocks for all named items into the new
composite items buffer.

DPPXDBAS

m

2
m

(I)

C

s:
»-4

m

:lJ

»

r-

"'0

:tJ

o"'0

m

:tJ

-4

<

o

""

DPPXDBAS

Figure 2·155 (13 Of 24)
Figure 2·155 (15 Of 24)
nput

Ou tput

p rocess

~

WAREA

L. M.

.."')

v

OJ

....

Construct Directory Entry
With Dummy Array Name

....

")

WADBDIR

r

f------"

WAREA

...
v

Data

[l]
")

)

STOW Directory Entry

Base

PDS
Directory

o
m
Z
en
m

o

~

»-4

m

WAREA

WANEWDIR

....

...

@]
Save Directory Entry In
New Directory Table With
Real Array Name

:JJ

»
rI
."

NEWDIR

11

...
-v

::D

o."

m

::D

-4

-<

o."

Return To Caller

Figure 2-155 (23 Of 24) - STOWDIR - Stow PDS Directory Entry

Figure 2-155 (24 of 24).
Extended Description

Step

1

Construct a new data bap- array directory entry with a dummy
al"ray name. *

2

STOW the directory entry into the data base PDS directory.
This will cause an end-of-file to be written at the end of the
array data.

3

Messages and
POL Segment
ABEND Codes

DPPXDBAS

r-

n

m

The real array name is moved into the directory entry and the
directory entry is saved in the new directory entry buffer.

Z

CI)

m

o

3:

l>
-f
m

::IJ

l>
r-

*These messages may be written to SYSPRINT:
ARRAY ADDED
ARRAY REPLACED
ARRAY TESTED
DUPLICATE ARRAY NAME
N

b
....

DPPXDBllI
DPPXDBl3I
DPPXDBl4I
DPPXJ)Bl9I

DPPXDBAT

Entered Via Link From OPPXOBAS
Figure 2-155 (7 Of 24)

Input

~

Register 1

~UpDilN/T

[!]

~
-....

A(WAREAI

Output

Process

Update
Initialization
Array

......00......

...... .....

Update
Initialization
Array
Fig 2-156 (7 Of 221

OBI NIT

r-

~

WAREA

o
m

Initia/i·
zation
Array

Z

en

m

C

AlDTA8

WAREA

WAREA

rrn
.,,>

....

~~

...

...:>

GETMA/N For
Array 10 Table

VYAAIUIAH

~

s:

~

m

::D

»rAIDTA8

....
... >

I

rn
Update Array
ID Table

~

UPDAID

~

Update Array

~

10 Table

o

::D

Fig 2·156 (9 Of 221

DBINIT

~
.....

Data Base
PDS
Directory

-y

ill
READ Data
Base Directory

~
~

::D
-I

READD/R
READ Data
Base PDS
Directory
1~!l2.156 (19 Of 221

A/DTAB

.,....-.......,
DB/N/T2

F------'
Refresh
Array

1- ..

')

I

m
Update Refresh
Array

;

~

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

...

Figure 2-156 (1 Of 22) - Main Control Routine

~

Update
Refresh Array
Figure 2·156
(11 Of 221

A

~

m

Figure 2-156 (3 Of 22)

-<

o
."

Figure 2-156 (2 of 22).
Step

Extended Description

Messages and
POL Segment
ABEND Codes

1

Branch to the routine to update the initialization array.

DPPXDBAT

2

GETMAIN is used to obtain storage for the array ID table.

DPPXDBAT

3

Branch to the routine to update the array ID table.

DPPXDBAT

4

Branch to the routine to read the data base directory.

DPPXDBAT

5

Branch to the routine to update the refresh array, @REFRSH

DPPXDBAT

r-

n

m
en
Z

m

o

3:

l>
-i
m

:lJ

l>
r"'0
~

o
"'0

m

:lJ

-i

-<
o
."

DPPXDBAT

Figure 2-156
(1 Of 22)

Output

Process

Input

NEWCID

NEWCID

1m
.,)

~

Sort New
Composite
Items Area

...

(Sorted)

r-

n
m
Z

en
m

o

3:

»
~

m

NEWCID

...

-,/

1m

:D

»
r-

Update
Composite
Items Array

I
DBINIT

re=:=::::

...

-

DO

..
--..

UPDCIDS
Update Composite
Items Array
Fig 2-156
(15 Of 22)

-0

:D

o
-0

m

:D

Composite
Items
Array

~

-<

o
-n
to

3:

Figure 2-156 (5 Of 22)

Figure 2-156 (3 Of 22) - Main Control Routine

Figure 2-156 (4 of 22).

Step

Extended Description

Messages and
POL Segment
ABEND Codes

1

Sort the new composite items table in ascending sequence by
item name.

DPPXDBAT

2

Branch to the routine to .update the composite items array.

DPPXDBAT
rn

m

:z

(I)

m

o

3:

~
~

m

:IJ

»r."

:IJ

o
."

m

:IJ
~

-<

o

."

Ol

3:

DPPXDBAT

Output

Input

NEWDIR

ill

r

Update Date Base
PDS Directory

o

m

Z

DBINIT

..
"'

DO

...
r

UPODIR
Update Data Base
PDS Directory
Figure 2-156
(21 Of 221

(I)

m

C

3:

»
-I
m

-

::D

»
r
I
-0

::D

o
-0
m

::D
-I

-<

o-n

Retum To DPPXDBAS
Figure 2-155 (7 Of 24)

Figure 2-156 (5 Of 22) - Main Control Routine

Figure 2-156 (6 of 22).
Step

1

Extended Description

Branch to the routine to update the data base PDS directory.

Messages and
PDL Segment
ABEND Codes

DPPXDBAT

r-

es

m
Z

(I)

m

o

3:

l>
-t
m

:D

l>

r-

~

:D

o

~

m

:D

-t

-<
o

"

DPPXDBAT

Figure 2-156

I1ru~

Input

Output

Process

WAREA

WAREA

-m

BlDl On Initialization Array Name

...
...)I

I

Register 15
~

Return Code
y

,..
(")

m

DBINIT
Register 15
Return Code

I
I

-... rn

~

...')

If Return Code Is 4, WRITE New
Initialization Array

'----""
Data
Base
PDS

WAREA

'wAINTBuf

Register 15
~

Return Code

I

Z

(I)

rn
':>l If Return Code Is Zero, READ Existing
Initialization Array

ct

m

C

3:

~
m

:0

WAREA

,..»
I

">

"V

...

::D

Q

m

DBINIT

::D

f----.-/

~
o

Data

Base
PDS

.."

NIT

~

m

WAREA
~

..)

WRITE Update To Existing Initialization
Array

..

.

Return To
(1 Of 22)

Figure 2·156 (7 Of 22) . UPD@INIT - Update Initialization Array

Fi~re

2-1

..')

Data
Base
PDS

OJ

3:

Figure 2·156 (8 of 22).

Step

Extended Description

Messages and
POL Segment
ABEND Codes

1

BLDL is used to locate the data base initialization array on
the data base PDS.

DPPXDBAT

2

If the BLDL return code is 4, no initialization array exists
on the data base, and a new initialization array is written
to the data base.

DPPXDBAT

If the BLDL return code is 0, the existing initialization
array is read from the data base.

DPPXDBAT

(I)

DPPXDBAT

s:
»
-i

3

4

The initialization array data is updated and written back to
the data base PDS.

r-

n
m
Z

m

o

m

:xJ

»

r-

-0

:xJ

o
-0

m

:xJ
-i

-<
o-n
OJ

s:

DPPXDBAT

Fig 2·156(1 Of 22)

npu

~
NEWDIR

NEWDIR

.)
v

[I]

,)

Sort New Directory Table

(Sorted)

r-

~

DIRBUF

..") III

Data
Base

..

PDS

Z

.

(I)

m

-./

Read Old Directory Entries

(=;
m
C

3:

~
m

:D

»
r-

AIDTAB

1

I

I

I
NEWDIR
I

I

I

I
DELTAB

!

I

I

AIDTAB

I
I

...

... )

m

....

.....)

Build Array 10 Table

:D

Q
m

:D

~

I

o
."

Return To
Figure 2·156
(1 Of 22)

Figure 2-156 (9 Of 22) - UPOAIO - Update Array 10 Table

I
."

Figure 2-156 (10 of 221.

Step

Extended Description

Messages and
PDl Segment
ABEND Codes

1

Sort the new directory table in ascending sequence by array
name.

DPPXDBAT

2

The data base PDS directory is read from the data base data set
and saved in the directory buffer.

DPPXDBAT

3

The contents of the array ID table are constructed.

DPPXDBAT

,....
C')

m
Z
en
m
C

s:

l>

-t

m

:IJ

l>
,....
~

:IJ

o
~

m

:IJ

-t

<
o
"TI

DPPXDBAT

Figure 2-156

Output

Process

(10F~

Input

WAREA

WAREA

IITJ

....

BLDL On Refresh
Array Name

....

WADBDIR

... )I

.. ">

Register 15

l

Return Code

r

"'>

WAREA

m
If Return Code Is 4.
Build New Refresh Array

I

l-

AIDTAB

m
.... > If Return Code Is O•
....
DELTAB

Return Code

...

NEW DIR

~

,...

Register 15

...

1

WADBDIR

Z

en
m
C

3:

~
m
::XJ

NEWREF

»
,...

~

I

":>

."

...

Update Old Refresh Array

WANEWREF

1

n
m

::XJ

o."
m

::D
~

-<
o
."

OLD DIR

DBINIT2

~
Refresh
Array

Figure 2-156

(13 Of 22)

Figure 2-156 (11 Of 22) - UPREFRSH - Update Refresh Array

0

Figure 2-156 (12 of 22).
Step

Extended Description

Messages and
PDL Segment
ABEND Codes

1

BLDL is used to locate the refresh array on the data base PDS.

DPPXDBAT

2

If the BLDL return code is 4, the refresh array does not exist,
and a new refresh array is constructed.

DPPXDBAT

3

If the BLDL return code is 0, the existing refresh array is read
from the data base PDS and updated.

DPPXDBAT

r

n

m

Z

en
m

o

~

l>
-t
m

::c
l>
r
."
~

o
."

m

::c
-t

-<
o

"

Figure 2-156
(11 Of 22)

DPPXDBAT

Output

Process

Input

NEWREF

.

...

CD

...)

L

Sort Refresh Array

NEWREF

(Sorted)

r-

"'>

nm

~

o

...

BALR

....

WAREA

..) rn

...

Z

en
m

WRITE New Refresh Array

..

..

STOW Refresh Array Directory Entry

...

3:

'

~
m

.... w ...

Write Array Data
Figure 2· 157

:r:J

>
r-

.. )
...

DBINIT

I

~

"0

Data Base
PDS
Directory

:r:J

o
."

m

:r:J

-t

-<

o

."

Return To Figure 2-1
(1 Of 22)

Figure 2-156 (13 Of 22) - UPREFRSH - Update Refresh Array

Figure 2-156 (14 of 22).

Step

Extended Description

Messages and
POL Segment
ABEND Codes

1

The refresh array is sorted in ascending sequence by array ID.

DPPXDBAT

2

BALR to DPPXDBDA to write the new refresh array to the data base
direct access data set.

DPPXDBAT

3

STOW the refresh array directory entry to the data base PDS.

DPPXDBAT

r-

o

m
Z

en
m

o

3:

»
-i
m

::0

»

-

r'"'0

::0

o'"'0
m

::0
-i

<

o

."

o:J

3:

DPPXDBAT

Figure 2·156

(3 Of 22)

npu

Process

~

Output

WAREA

NEWCID
L. M.

....
')

[w

..

WAf'll nf'ln

....

New Composite Item
Entries To Buffer

...

')

r-

o.

Data
Base
PDS

....>

n
m
Z
m

OLDCID

m

en

.."'"')

READ Old Complete
Items

C

3:

»~
WAREA
ICBBUF
A/DTAB

...

')

1m

....

.

Update Composite Items

')

~

WAII"DDIU:

m

:::rJ

»rI

-a

:::rJ

o
-a

DELTAB

m
:::rJ
~

-<

o
."

NEWCID

-3:
CD

OLOCIO

E

Figure 2·156 (15 Of 22) . UPDCIDS - UJXlate Composite Items Array

Figure 2·156
(17 Of 22)

Figure 2-156 (16 of 22).
Step

Extended Description

Messages and
PDL Segment
ABEND Codes

1

Move new composite items to new composite items buffer.

IDPPXDBAT

2

READ the existing composite items array from the data base PDS.

IDPPXDBAT

3

Update the composite items. If any duplicate item names exist,
WRITE the DUPLICATE ITEM NAME message to SYSPRINT.

DPPXDB081

IDPPXDBAT
r(")

m
Z

en
m

o

s:

l>
m

-..

:ll

l>
r-

o"

:ll

"
-..<

m

:ll

o

."

Figure 2-156
(15 Of 22)

Input

Output

Process

DBINIT

ICBBUF

r-

WRITE New Composite Items Array

nm
Z

(I)

m

BALR

WRITE Array
Figure 2-157

DBINIT2

C

3:

»-t
m

:lJ

»
rI

-v

DBINIT

:lJ

o-v

m

WAREA

:lJ
STOW Composite Items Array Directory / - - - - ' - - - - - - - ' - - - - - - - - - " .
Entry

Retum To Figure 2(3 Of 22)

Figure 2-156 (17Of 22) - UPDCIDS - Update Composite Items Array

-t

<
o
."

Figure 2-156 (18 of 22).
Step

-Extended Description

Messages and
'PDL Segment
ABEND Codes

1

WRITE the new composite items array to the data base PDS.
BALR to DPPXDBDA to WRITE the composite items array to the
data base direct access data set.

DPPXDBAT

2

STOW the composite items array directory entry to the data
base PDS directory entry.

DPPXDBAT
.-'

r-

n

m
2

en
m

o

s:

l>
-of
m

::D

l>
r-0

::D

o-0

m

::D

-of

-<

o

"

I\J

.~

DPPXDBAT

Figure 2 156 (1 Of 22)

o

WAREA

output

Process

~

Input

(Jl

WAREA

m
"

.

WA1NPARM

,AI ''''DAD''
j>,

FREEMA1N loaded
Assembler Object Module

)

DBINlMAD

...
...')

DBINlMSZ

v

l.M.

r-

n
m
WAREA
RR

...

')

WANUMBlK

Z
m
C

en

WAREA

[l]

-")

If Number Of Arrays Is
Greater Than Number of
Available Directory Entries,
Enter Test Mode

v

WATEST

3:

WAREA

»
-I
m

::D

DIROUT

WAREA

WANUMARR

..')

y

ill
GETMAIN Directory Output
Buffer

...

0
I

... -"

I

»
rI
."

:D

o
"'0

m
::D

DIRIN

I~
")
-y

GETMAIN Directory Input
Buffer

DBINIT

~

_

Data Base
PDS

......

..')
...

~

-I

-<

o

."

aJ

"-.,

.. ..)

m

3:
ijEAD Data Base PDS
Directory

...

Return To Figure 2-156
(1 Of 22)

Figure 2-156 (19 Of 22) - READDIR - Read Data Base PDS Directory

Figure 2-156 (20 of 22).
Step

Extended Description

1

FREEMAIN the input load module storage area, zero the address,
and zero the size in the input parameter list.

2

If the number of arrays to be added to the data base exceeds
the number of available data base PDS directory. entries, enter
test mode and WRITE the INSUFFICIENT DIRECTORY SPACE-ALLOCATED
message to SYSPRINT.

Messages and
ABEND Codes PDL Segment

DPPXDBAT
DPPXDB02I

DPPXDBAT
r
(')

m

3

GETMAIN is used to obtain storage space for the data base PDS
directory output buffer.

DPPXDBAT

4

GETMAIN is used to obtain storage space for the data base PDS
directory input buffer.

DPPXDBAT

5

READ the data base PDS directory from the data base PDS.

2

en
m
C
3:

»

-4

m

JJ

DPPXDBAT

»
r
."

JJ

0
."
m

JJ
-4

-<
0

."

OJ

s:

DPPXDBAT

Figure 2-156

(50f2~

Input

Output

Process

NEWDIR

.. OJBuild New Data Base PDS
..) Directory

DIROUT

...

1

v

r-

o
m

DIRIN

2

en
m
o
3:

AIDTAB

~

....m
::D

DBINIT

~
DIROUT

....

.)

00
WRITE New Directory To
Data Base PDS

..)
~

Data Base
PDS
Directory

»rI

"'0

::D

o"'0

m

::D

....

WAREA
REF

-<
o"T1

T

,-~~~.

1

I
I

I

I

I

I

1

I

I

wARIDTA~

..") m

--v

FREEMAIN Storage Gotten
For Tables

\AlA'f'DD''':

Retum To Figure 2-156
( 50f22)

Figure 2-156 (21 Of 22) - UPDDIR - Update Data Base PDS Directory

Figure 2-156 (22 of 22).
Step

Extended Description

Messages and
PDL Segment
ABEND Codes

1

Build a new data base PDS directory in the directory output
buffer.

DPPXDBAT

2

WRITE the new data base PDS directory to the data base PDS.

DPPXDBAT

3

FREEMAIN all storage obtained for all tables that are no
longer required.

DPPXDBAT

r
("')

m

Z

(J)

m

o

~

l>
-f
m
jJ

l>
r
-g
jJ

o-g

m

jJ

-f

-<
o

"

DPPXDBDA

En...s Via BALR From DflPXDBAS
And· DflPXDBOA
Figure 2-156 (15 Of 24)
F...... 2-'68 (13 Of 22)
Figure 2-158 (17 Of 22)
Input

~

R.,.,'

(

Oucp .

P.-

A(Wor1< Area)

WAREA

r-

om

nRIII.!1 UAn

J

I

Z

en
LM

DA DCB

...

..;

IUJMove DDNAME

...

C

3:
l>
~
m

.:>

To DCB And
OPEN Data Sa.
BDAM Data Set

m

:D

DA DCB

§----

1-----

1---

1m IF DCB Not

...

OPENed, Enter
Test Mode

WAREA

i>
r-

·WATEST

."

I
:D

o
."

m

:D
LM

~-- - ---- ...

~

-<

1m IF Array Not

o
."

Blocked, Enter
Test Mode

WAREA

jB"J

).

WRITE Array
To Dati Set

n.~.

....

:.

~

WRDDSCTL
WRITE ArrlY
Control Routine
Figure 2·157
(3 Of 6)

Return To Caller

Figure 2-157 (1 Of 6) - Main Control Routine

Figure 2-157 (2 of 6).
Step

Extended Description

1

Move the DDNAME of the direct access data set to the direct
access DCB and OPEN the DA DCB.

2

If the DCB does not open, enter test mode and write the
UNABLE TO OPEN DDNAME message to SYSPRINT.

Messages and PDL Segment
ABEND Codes

DPPXDBDA
DPPXDB50I

DPPXDBDA
r
('")

3

4

If the direct access array is not blocked, enter test mode
and WRITE the message, NOT A BLOCKED ARRAY, to SYSPRINT.
WR.ITE array data to the direct access data set.

DPPXDB51

DPPXDBDA

m
Z

en

m

DPPXDBDA

C

s:
»
-t
m

JJ

»

r

~

JJ

o

~

m

JJ

-t

<

o
."

DPPXDBDA

Figure 2 157 (1 Of 6)

Output

Process

~

Input

WAREA
L.M

WABlKDDS

....

)

l. M

--

m

...

If Array Block Size Greater
Than Data Set Block Size,
Truncate

y

)

-_._-

--

r
(')

m
Z

.--~

en

.....

m
C

3:

»
-t

m

::D

ill
L.M

...

)

»

If Data Size Greater Than
Array Block Size, Truncate

L.M

...

..

rn

...
y

~

."
)

::D

o."
m
::D

If Block Numbers Out Of
Sequence, Use Default
Numbers.

-t

-<
o."

A

Figure 2-157 (3 Of 6) - WRDDSCTL - Write Array Data Control Routine

r
I

Figure 2-157 (5 Of 6)

Figure 2-157 (4 of 6).

~~--~-----------------------------------------------------------------------------------~----------~-----------.

Step

Extended Description

Messages and
ABEND Codes PDL Segment

1

If the array blocksize is greater than the data set blocksize,
use the data set blocksize as the array blocksize. The message,
ARRAY BLOCKSIZE TRUNCATED, is written to SYSPRINT.

DPPXDB52I

2

If the data size is greater than the array blocksize, truncate
the data to the array blocksize. The message, DATA TRUNCATED,
is written to SYSPRINT.

DPPXDB53I

If a block number is defined out of sequence, default the block
number to the next sequential block number. The message, BLOCK
NUMBER ERROR, is written to SYSPRINT.

DPPXDB55I

3

r(")

m
Z
en
m

o

3:

l>
m

-I

:Xl

l>
r-c

:Xl

o

-c
m
JJ

-I

<

o
."
OJ

3:

DPPXDBDA

Figure 2·157 (3 Of 6)

Output

Process

Input

L.M.
.....

ill

...

...)

WRITE Array Data
To Direct Access
Data Set

r-

~

n
m

Direct
Access
Arrays

en

Z
m
C

s:
»
-I
m

:xJ

»
rI
'"0

L.M

:xJ

DBARBKCT
WAREA

....

WAREA

rn

....

If Number Of
Blocks Is Greater
,....)I Than
Block Count.
Truncate

,....)I

0
'"0
m
:xJ
-I

<

WANUMARR

0

"-a:J

s:
WANUMARR

Retum To Figure 2·157 (1 Of 6)

Figure 2-157 (5 Of 6) - WRDDSCTL - Write Array Data Control Routine

Figure 2-157 (6 of 6).
Step

Extended Description

1

WRITE the direct access array data to the direct access
data set.

2

If the number of blocks written is greater than the array
block count, truncate all excess data blocks. The message,
BLOCK COUNT EXCEEDED, is written to SYSPRINT.

Messages and
ABEND Codes PDL Segment

DPPXDBDA
DPPXDB541

DPPXDBDA
r(')

m
Z

(I)

m

o

s:
»
-4
m

:0

»

r-

."

:tJ

o."

m
~

-4

-<
o
~

DPPXD6 LG

I n put

Entered Via BALR From DPPXDBAS
FIgure 2155 ( 11 Of 24)

Process

~

Otpt
u u

Register 1

(...

WKAREA

CD
WKINPARM

I

C

o
m

>

GETMAIN Work Area

r-

...

DRDAI MAn

Z
m

en
L. M.

DBARDDNM

..

....
)

1m

..

Logging Array DD Name
To DA DCB

~

DA DCB

C

DCBDDNAM

»
~

3:

m

l:J

DA DCB

@J
....
')

..')

OPEN DA DCB

...

DA DCB

»
r-

(OPENed)

-0

I
l:J

o-0

WAREA

DA DCB

...

DCBOFLGS

...>

m

:D

0

~

....

->

If DA DCB Not OPENed

WATEST

-<

o."

-s:
OJ

Figure 2-158 (3 Of 4)

Figure 2-158 (1 Of 4) - Data Base Logging Array Formatter

A

Figure 2·158 (2 of 4).
r-----r--------------------------------------------------------------------------~----------~------------

Step

Extended Description

Messages and
ABEND Codes POL Segment

1

GETMAIN is used to obtain a register save area and work area.

DPPXDBLG

2

The DDNAME of the logging array data set is moved to the
direct access DCB.

DPPXDBLG

3

The direct access DCB is opened.

DPPXDBLG

r(")

m

4

If the direct access DCB does not open, test mode is entered,
and the UNABLE TO OPEN DDNAME message is written to SYSPRINT.

DPPXDB25I

DPPXDBLG

Z

en
m
C

3:

»
-f
m

JJ

»
r""C

JJ

o""C

m

JJ

-f

<

o
."

Figure 2·158 (1 Of 4)

DPPXDBLG

Output

Procas

Input

l

l. M.

DBARBKCT
.~"

,~~

I

I

.. =:>

rm

.J

)

Calculate Logging Array Block Count

~

I

:1

I

~

M.

DBARBKCT

")

nDAnnv ... ~

")

nDA ..... ,,, ...

·~"v_

• ~ 'v

1
h

WAREA

I

W.I!.RI J("n()c::

:f C.I~I'"

Logging Array

BI~k ~,.

2
m

(I)

C

r

~

~

m

"l>

l.M

h>frD
RRn4RI

r-

o
m

I
I(

nRn.l!.RIIO::7

I

J

:

rI

Calculate Logging Array Block Per Copy

--/

\J

::J:J

o\J

DA DCB

DA DCB

:f

CLOSE DA DCB

Return To Caller

Figure 2-158 (3 Of 4) . Data Logging Array Formatter

r

"

)
-10-'

m

::J:J

-4
(CLOSed)

-<

o
."

Figure 2-158 (4 of 4).

Step

Extended Description

Messages and
POL Segment
ABEND Codes

1

Calculate the block count of the logging array.

DPPXDBLG

2

Calculate the blocksize of the logging array.

DPPXDBLG

3

Calculate the number of logging array blocks required to contain one
copy of the loggable array.

DPPXDBLG

4

CLOSE the opened direct access DCB.

I
(")

m
Z

en
m

o

3:

»
-i

m

::D

»
I
o"

::D

"

m

::D
-i

-<
o
,.,

DPPUMSG

Entered Via Link From DPPXUTI L
F19ure 2 154 (27 Of 30)

Input

~

~

Outpu t

Process

""'---_/
Address Of
Parameters
From DPPXtJTll

""'-,../

OJ

Retrieve DEFMSG (Define Message)
Parameters From DPPXUTIL.

r-

n

n
Address Of DEFMSG
Macro Expansions

-;>

m

If Messages Are To Be Deleted

~
~

L

m
Z

">
...

Delete Requested Messages From
Message Data Set.

Message

Data Set
(MSGDSDD
Card)

length Of DEFMSG
Macro Expansions

I

C

31:

l>
-i
m
::xJ

rrn

8
Address Of QSAM
Output (Print) DCB

en
m

"")

If Messages Are To Be Added And If
Messages Found In Message Data Set
Print Error Message.

~

....::>

Message DataSet
Already Contains
DPPnnn

»
rI
~

::xJ

12

Q

"")
...

0

Print Input Messages And Old Copy Of
Messages If Message Is To Be Replaced .

...::>

Input Message
DPPnnn

-<

DE FMSG Macro
Expansions

"') rID

o'TI
If Messages To Be Added Or Replaced

~

..">
Add Message To Message Data Set .

. Return To DPPXUTll
Figure 2-154 (29 Of 30)

Figure 2-159 (1 Of 2) - Message Final Phase Processor

m

::xJ
-i

Old Message
DPPnnn

Figure 2-159 (2 of 2).
Step

Extended Description

Messages and
ABEND Codes PDL Segment

1

The address of the parameters passed by the offline utility (DPPXUTIL)
will be retrieved from register 1.

DPPUMSG

2

if messages are to be deleted, delete the requested message from the
message data set.

DPPUMSG
DPPUMSGI

3

When messages are requested to be added to the existing message data
set, an error message, MESSAGE DATA SET ALREADY CONTAINS DPPnnn, will
be printed.

DPPUMSG2

All entered messages (DEFMSG expansions) will be printed. If a
message is to be replaced and it already exists on the message data
set, the old copy of the message will be printed.

DPPUMSG2

The ADD and REPLACE options cause all entered messages (DEFMSG expansions) to be added to the message data set.

DPPUMSG2

4.

5

r("')

m
Z
m

Cf)

C

3:

»-f

m

:c

»r

""'0

:c

o""'0

m

:c
-f

<

o

"

DPPXDBIN

nput

Entered Via Link From OPPXUTI L
Figure 2-154 (11 Of 30)

~

Output

Proceu

PDS Directory BLOCKS

rm
"'... >

I

A(NEXT BLOCK)

OPEN Data Set Described By DBJNIT DO
Statement And READ PDS Directory Blocks
Into Storage. If Unable To OPEN Data Set
Issue Abend 50.

>' I

r
DBDIRR

n

I

m
Z

en
m

o

\

~

s:
I

...

.. ~

DBDlRR

~

I

m
::D

»
r

DBTITEMR

rrn

I
...

READ @INIT Member Into Storage. If
Unable To Locate @INIT Member Issue
Abend 54

)l

-v

"::D
"m::D

@lINIT
Data

o

DBALTPRI

m

DBDlRR

.,.

DBDIRNAM
DBDIRICB
DBDIRC
DBDIRDTA
DBOIQNUM
DBDIRBAS
DBDIRUSE

....

... )

Build The Following Data Base Control
Blocks To Be Used In Real~Time Execution.
• DBAl TPRI - Primary Array Locator
Table
• DBAlTSEC • Secondary Array
Locator Table
• DBDADD • Direct Access DCB
Table
• OBLOGCB • logging Control Block

""
,.>

Figure 2-160 (1 Of 4) - Build Data Base Initialization Array

1

1

DBLOGCB

DB DADO
DBDDLOCK
OBOODCB

If A Log AmlV Can Not
Be Found For A Loggable
Array, Issue ABEND

A

DBALTSEC
DBALTNAM
DBALTICB
DBALTIRS
DBALTUSE
DBALTlOG

DBALTDTA
DBALTBCT
DBALTBAS
DBALTBFT
DBALTBOT
DBALTNDX

~
~-

Figure 2-160 (3 Of 4)

DBLGANAM
DBLGLNAM
OBLGAID
OBLGLAID
DBLGWNAM

~

o

"

Figure 2-160 (2 of 4).
Step

Extended Description

Messages and
ABEND Codes POL Segment

I

The user-defined partitioned data set defined by the DBINIT DD
statement contains data base arrays as members.

USER 50

DPXDBIN6

2

The @INIT member must have been built previously by the data base
final phase processor, DPPXDBAT.

USER 52

DPXDBINI

3

The information from the directory entries of the members (arrays)
and the data associated with each directory is used to construct the
Primary and Secondary Array Locator Tables for each array, the Direct
Access DCB Table for each direct access array, and a Logging Control
Block for each loggable array. If a log array cannot be located for
each loggable array, the job step is ABENDed with code 53.

USER 53

DPXDBIN2

r
(")

m
Z
CI)
m

o

3:

»

-f

m

:xJ

»

r"lJ

::D

o

-v
m

:xJ
-f

-<
o
."

Figure 2·160 (1 Of 4)

DPPXDBIN

Output

PrOC8S$

Input

DBALTPRI

DBALTPRI
DBRES
DBALIGN
DBMIN
DBALTUSE

Sort The VS Re$ident Arrays By ~Use
Code And Boundary Ali!1lment ReQue$ts

1---r----~----vL/)

~

r-

o

m
Z

en
m
C

3:

~

DBALTPRI

m

DBALTSEC

DO
DBLOGCB

00

:xl

»

rI
WRITE The Data Base Control Blocks To I---L----.......J.----"""'-~I
OBI NIT As Data Portion Of @INIT
Member And STOW @INIT Directory
Entry. If Non-Zero. Return
Code From STOW. Issue ABEND

.;>

~

:xl

o

~

m

:xl

~

o-n
Gi

!:

m To DPPXUTIL

Figure 2·154 (11 Of 30)

Figure

2~ 160

(3 Of 4)

~

Build Data Base Initialization Array

Figure 2-160 (4 of 4).

Step
1

2

Extended Description

Messages and
ABEND Codes PDL Segment

The VS resident arrays are arranged by a use code (1 to 7), for paging consideration. Within each use code, the arrays that require a
page boundary are sorted. Then the arrays that request minimum
boundary crossovers and the other arrays are filled into the slots
left by the arrays with page boundary requests to prevent core
fragmentation.
The relative displacement of each array is placed
in the Primary Array Locator table.
The data base control blocks are written to the DBINIT data set. The
Secondary and Primary Array Locator Tables are grouped together to
be read into protected storage during real-time execution and the
Directed Access DCB table and the Logging Control block are grouped
together to be read into user storage.
If the STOW receives a nonzero return code, the job step is ABENDed.

DPXDBIN3

r-

n
m
USER 51

DPXDBIN4

2
m

(I)

C

3:

»
~

m

:::D

»
r-

"
o

:::D

"

m

:::D
~

<
o

."

aJ

3:

LICENSED MATERIAL - PROPERTY OF IBM

Intentionally Blank

2-470

LICENSED MATERIAL - PROPERTY OF IBM

Data Base Compress
The data base BDAM data set compress program is used to regain direct access
space rendered unusable through the normal process of updating the data
base through the offline utility. All usable data is moved from a data
base BDAM data set into a utility data set. Then, starting at the front
of the data base data set, the data is moved back into the data set, in
contiguous records, compressing out unused space.

2-471

DPPXDBCP
WKAREA

GETMAIN And Clear Work Area

SYSPRINT
SYSPRINT
DCB

DCB
(OPENed)

OPEN SYSPRINT And DBINIT
DBINIT
DeB
(OPENed)

m
Z

en

m

C

s:

l>
-t
m

SYSPRINT

8-----

r-

n

::D

l>

SYSPRINT Not OPEN

rI

-0

::XJ

ERREXIT
Figure 2(7 Of 24)
DBINIT

§-------

m
::D

-t

-<

o."

DBINIT Not OPEN

ERREXIT ALL
Figure 2(7 Of 24)

Figure 2-161 (1 Of 24) - Main Control Routine

o."

Figure 2-161 (2 of 24).
Step

Extended Description

Messages and
ABEND Codes PDL Segment

1

GETMAIN is used to obtain storage area for register save area and
for work space. The area is cleared to contain all binary zeros.

DPPXDBCP

2

The SYSPRINT and DBINIT data sets are opened.

DPPXDBCP

3

If SYSPRINT does not open, register 15 is set to 16, and error exit
processing is performed.

DPPXDBCP

r-

n

m

4

If DBINIT does not open, register 15 is set to 12, the message
UNABLE TO OPEN DBINIT is written to SYSPRINT, and error exit processing is performed.

DPPXDB35I

DPPXDBCP

2

(I)

m
C

s:
»
-4

m

JJ

»r-

~

JJ

o

~

m

JJ
-4
to(

o

."

CD

s:

N

.i:.

-....J

DPPXDBCP

F~N2.~

(1 Of 24)

Input

Process

~

[IT
SYSPRINT And
DBINIT opened

Register 15

~
DBINIT

Data
Base
POS

~------------------~--------~--------~:/~~

....

... )

1(1]

,...
(=;

m
Z

BLDL For
Initialization Array

en
m
C

3:

rrn

...

..

Jo,

)

r

IF BLOL Return
Code Is 4

Return Code

v

....

IF BLOL Return
Code Is 8

m

:u
I

ERREXIT ALL
Figure 2·161
(7 Of 24)

m
"),

....»
»-,...

...
~

Register 15

~

illNIT Array
Directory Entry

."

:u

o."

.....

...

m

::0

...

rrn·
-:>

....

ERREXIT ALL
FilJlre 2·161
(7 Of 241

-<

o
."

IF BLOL Retum
Code Is Zero
CNTLTABL
CNTLTABL

DO.
-.

Get Control
Table Storage
Figure 2·161
(9Ot 241

Fiqure 2-161 (5 Of 24)

Figure 2·161 (3 Of 24) • Main Control Routine

r;--,
"'V'

to.

.)

-3:
CD

Figure 2-161 (4 of 24).

Step

Extended Description

Messages and
ABEND Codes PDL Segment

1

If SYSPRINT and DBINIT are successfully opened, the DATA BASE COMPRESS DPPXDB401
STARTED message is written to SYSPRINT.

DPPXDBCP

2

BLDL is used to locate the data base initialization array to determine if DBINIT defines a valid data base PDS. A return code is
returned in register 15.

DPPXDBCP

3

4

5

.-

Return code 4 indicates that the initi~lization array could not be
DPPXDB361
found. The INVALID DATA BASE DATA SET message is written to SYSPRINT,
and error exit processing is performed.

DPPXDBCl'

Return code 8 indicates an I/O error from BLDL. The PERMANENT I/O
ERROR message is written to SYSPRINT, and error exit processing is
performed.

DPPXDBCP

Return code 0 indicates that DBINIT is a valid data base PDS. The
CNTLTABL routine calculates the size and GETMAINs the storage for
the Compress Control Table.

DPPXDB37I

n

m
Z

en

m

o

3:

»
-t
m

:0

DPPXDBCP

.-»
"'tJ

:0

o"'tJ

m

:0

-t

-<

o"T1

Figure 2-161
(3 Of 24)

DPPXDBCP

Output

Input

CNTLTABL

[IT
.--_--LJ,..."'")
- - -....
~~

READDIR

READ Directory
Entries

Entries
READ
Directory
Fig 2·161

(11 Of 24)

~lr=~===C====~"'E=fiUH~IUA~\'~1

t3

..;

tl

....

r-

n
m
2
m

(I)
Data

C

Base

PDS
.......

_/

'--_L.r-......

L..-_--.-...........
")

Il'f READ Direct
Access Control

Records

...------4
nC"UvI'fIL

nn

~

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

READ DA Control
Records
Fig 2·161

CNTLTABL
~

...........>t-_~~~~BID~A,·IT:;;:;:~;-i
~ll~3~0~f~2~4~)_~~-r-------~---------~~/
UDUAD~II
UDI-'A~

s:
»
-t

m

:XJ

»
rI

CNTLTABL

CNTLTABL

;:)UtlIIAHL

Sort Compress
Control Table
Figure 2·161
115 Of 24)

(Unsorted)

~~

______ ______
~

~~/>

(Sort~)

-a

:D

o-a

m

:XJ

-t

-<

o

MVVAt'lAr:>

1m
Data
Base

~

____________~_______-'-,r...,
....:)

Mave Arrays

~

FIgure 2 161 (7 Of

Figure 2-161 (5 Of 24) - Main Control Routine

Move DA Arrays
Figure 2·161
(17 Of 24)

BDAM
Data
Set

24~

t--'-________-'-______-.J'O", ~:~=d

t-,---------r----------~~/")

BDAM
Data Set

-"~

Figure 2-161 (6 of 24).
Step

Extended Description

Messages and
ABEND Codes POL Segment

1

Directory entries are read from the data base PDS. Data is moved to
the Compress Control Table from the directory entry for each direct
access resident array.

DPPXDBCP

2

The direct access control record for each direct access resident
array is moved into the Compress Control Table entry that contains
dir€ctory data for that array.

DPPXDBCP

The Compress Control Table entries are sorted by the DDNAME contained in the direct access control record portion of the Compress
Control Table.

DPPXDBCP

3

4

Data base BDAM data sets are compressed by moving direct access
resident arrays.

.-

n
m
Z

(I)

m

o

3:

DPPXDBCP

»-..

m

JJ

.-»
~

JJ

o

~

m

-..

JJ

-<
o
"T1

DPPXDBCP

Process
ERREXIT AL

SYSPRINT

Register 15

DCB

o

CLOSE SYSPRINT And DBINIT

SYSPRINT
DCB
(Closed)

DeB
(Closed)

r-

n

m
2
en
m

C

3:

»
-f

WAREA

m
FREEMAIN Compress Control Table

::D

»

rI
-a

0------

::D

o""0

WAREA

.--L_ _ _
-I,Ill.
FREEMAIN Work Area

m
----l

::D
-f

<

o

"

Return To Schedular

Figure 2·161 (7 Of 24) - Main Control Routine

Figure 2-161 (8 of 24).
---

Step

Extended Description

Messages and
POL Segment
ABEND Codes

1

The DATA BASE COMPRESS COMPLETED message is written to SYSPRINT,
return code a is set in register 15, and SYSPRINT and DBINIT DCBs
are closed.

2

The Compress Control Table area of storage is freed.

DPPXDBCP

3

The work area and the register save area are freed.

DPPXDBCP

DPPXDB41

DPPXDBCP

r
CO)

m

Z

(I)

m

o

3:

l>

-I

m

:D

»
r-0

:D

o-0

m

:D
-I

-<
o
~

DPPXDBCP

F~ra 2-161
(3 Of 24)

~

Input

Output

Process

~:~o~rr:~try

WKAREA

-

IJJ

--1

DBDIBICB

READ Data Base Initialization Array

....

... )

I

WKINTBUF

r-

DBINIT

ei
m

~

en
m

2

C

illNIT
Arrav

3:

»
-I

~

m

WKAREA
.~

DBIITEMR

1
I

r

I

T

[00

.

)

If No Direct Access Resident Arrays
In Data Base

L

IER~ALL

...-

Register 15

I
"'0

:0

o

"'0

m

:0
-I

CNTLTABL

Return To
Fi9Jre 2-161
(3 Of 24)

Figure 2-161 (9 Of 24) - CNTL TABL - Get Compress Control Table

~

r-

Figure 2-161
(7 Of 241

... ITT Calculate Size, GETMAIN, And Clear
..../ Compress Control Table Storage

:0

...

...">

-<

o-n

Figure2-161 (120f24).
Step

Extended Description

Messages and
ABEND Codes PDL Segment

I

READ directory blocks from data base PDS into a directory block
buffer.

DPPDXDBCP

2

The directory entries in each directory block are searched for direct
access resident arrays.

DPPXDBCP

3

The direct access control record TTR, the array block count, and
the array blocksize are moved from the directory entry to the Compress Control Table.

. DPPXDBCB

r(")

m
Z

en
m
C

3:

»-I

m

:D

»

r-

o"-0

:D

m

:D
-I

<

o."
Ol

3:

DPPXDBCP

figure 2·161 (5 Of 24)
Input

Output

Process

~

CNTLTABL

IOJ
DBDATTR

"""

...

Register 0

...

Get Direct Access Control

Record TTR

TTR

¥

r-

o
m

CNTLTABL

Z
m

DBDANAME

!:

DBDATTR

m

C'I)
DBINIT

~
Data
Base

PDS

C

...

)

~v

.. rooREAD Direct Access Control

....---' Record

1

..

l

..

l

....

.. .;

..

~

..../

»
-I
:xJ

DBDABKT1
DBDABKOT

i=
rI
."

:xJ

o

."

m

:xJ

-I

<
o
."

Return To

Figure 2·161 (5 Of 24)

Figure 2-161 (13 Of 24) - READCNTL - Read Direct Access Control Records

Figure 2-161 (14 of 24).
Step

Extended Description

Messages and
POL Segment
ABEND Codes

I

Get the direct access cQntrol record TTR from the Compress Control
Table.

DPPXDBCP

2

READ the direct access control record from the data base PDS and
put it into the Compress Control Table.

DPPXDBCP
r-

n

m
Z

en
m
C

3:

»
~
m

:xJ

»

r."

:D

o."

m

:xJ
~

-<

o

"

DPPXDBCP

Input

Process

CNTLTABL
(Sorted)

CNTLTABL

~---------

Sort Compress Control Table f-----L.-----'-----Jo......

r-

n
m
Z
m

(I)

C

~

l>
-t

m

::0

l>

rI
~

::0

o

~

m

::0

-t

-<

o

"

a:J

3:

Return To Figure 2·'
(50124)

Figure 2·161 (15 Of 24) . SORTTABL . Sort Compress Control Table

Figure 2-161 (16 of 24).
--

Step

1

Extended Description

The Compress Control Table entries are sorted in ascending alphanumeric sequence on the DDNAME field (DBDANAME).

Messages and .
PDL Segment
ABEND Codes

DPPXDBCP

r
(")

m

Z

(I)

m
C

3:

l>
m

-f
::IJ

l>

r

"'tJ

JJ

o"'tJ

m

::IJ
-f

<

o

"'T1

DPPXDBCP

Figure 2·161

Input

CNTLTABL

(5 Of 24)

(0

~
.m
....")

.... f t ....

Output

Process

DADCB

...

.---

...")

Move DO Name To Direct Access DCB

'"
DA DCB

DA'OCB

D

I~

OPEN Direct Access DCB

EJ

I

r(;

m

2

en

m

C

3:

.

DA DCB

Irn
...
----_.
~-------.
~-

-v

If Direct Access DCB Not Opened

..;

0

SYSUT1

. m
.

DCB

.. ")

[

Open SYSUT1 DCB

...

-:J
-

• __~~PXDB42

»
-I

m

::xJ

»

rI
-a

SYSUT1

::xJ

DCB
(OPENed)

-a
'm

o

::xJ
-I

-<

o
-n

SYSUT1
DCB
DCBOFLGS

\-------- r------ ~-

...

Register 15

IffiJ
If SYSUT1 DCB Not Opened

.~

1

I

B

ERREXIT All
Figure 2·161
(7 Of 24)

--

Figure 2·161
19 Of 24

Figure 2·161 (17 Of 24) . MOVARAYS . Move Direct Access Arrays

G

Figure 2-161 (18 of 24).
Extended Description

Step

Messages and
ABEND Codes POL Segment

1

The DDNAME is moved from the Compress Control Table to the direct
access DCB.

DDPXDBCP

2

The direct access DCB is opened.

DPPXDBCP

3

If the OPEN of the direct access DCB is not successful, the UNABLE
TO OPEN DD STATEMENT message is written to SYSPRINT. Processing will
continue with the next Compress Control Table entry with a different
DDNAME.

4

The SYSUTI DCB is opened.

5

If the OPEN of the SYSUTI DCB is not successful, the UNABLE TO OPEN
SYSUTI message is written to SYSPRINT, return code 8 is set in
register 15, and error exit processing is performed.

DPPXDB42I

DPPXDBCP

rC')

m
Z

en

m

DPPXDBCP

C

3:
~

DPPXDB351

DPPXDBCP

-i

m

::D
~

r-

o"

::D

"

m

::D
-i

-<

o

'TI

to

3:

DPPXDBCP

Figure 2·161
(17 Of 24t

~

~
...

Direct
Access
Data
Set

0u1put

Process

Input

1mREAD/wRITE

...
.. )

~

Data Records

f----"
SYSUTl
Data
Set

READWRIT

CNTLTABL

DO ..

....

CNTLTABL

READ/WR ITE DA
Data Records
Fig 2-161(23 Of 24)

...

...")

r-

nm
Z

(I)

m

o

CNTlTABl

3:

DA DCB

::xJ

...
...')

DA DCB

1m
"-

:>

~
rI

Exchange
DO Names

SYSUTl DCB

."

::xJ

~
m

...
... ""

SYSUT1 DCB

~
m

::xJ

~

o

"TI

r------'

1m.
F-..._ .....
SYSUT 1
Data
Set

)

~

Aa::ess
Data

Set

..
CNTLTABL

~

READ/WRITE DA
Data Reocrds

Direct

READWRIT

DO .....

~

CNTLTABL

READIWRITE DA

Data Records
Fig 2·161(23 Of 24)

....

./

tCV
H

FIgUre 2 161 (2 1 Of 24

Figure 2-161 (19 Of 24) - MOVARAYS - Move Direct Access Arrays

Ol

3:

Figure 2-161 (20 of 24).
----

-Messages and
POL Segment
ABEND Codes

Step

Extended Description

1

READ direct access array data from the DA data set and WRITE the data
to the SYSUT1 data set.

DPPXDBCP

2

The DDNAMEs in the DA DCB and the SYSUT1 DCB are exchanged.

DPPXDBCP

3

READ direct access array data from the SYSUT1 data set and WRITE the
data to the DA data set.

DPPXDBCP

r
C')

m
Z
en
m

o

3:

»

~

m

:JJ

»
r-

DPPXDBCP

Figure 2-161
(19 Of 24)

Input

Output

Process

~

CNTL TABL

.... IT]
n"n.ll."I.Il."~

I

>-

)

....
)

WRITE Direct Access Conuul
Record

..

Data Base
PDS

r-

DBDABKT1

n
m

DBDABKOT

Z

en
m

o

3:

DA DCB

DA DCB

(Closed)

..
)

SYSUT1
DCB

;

rI

')

~y

. III

~
m

:D

""0

CLOSE DA DCB And
SYSUT1 DCB

SYSUT1
DCB

... /

(Closed)

:D

o""0

m

:D

-t

-<

o

~

Return To Figure 2-1
(5 Of 24)

Figure 2-161 (21 Of 24) - MOVARAYS - Move Direct Access Arrays

Figure 2-161 (22 of 24).
Step

Messages and
PDL Segment
ABEND Codes

Extended Description

1

WRITE the updated direct access control data from the Compress Control
Table to the data base PDS direct access control record.

2

CLOSE the direct access data set DCB and the SYSUTl DCB.
SET COMPRESSED message is written to SYSPRINT.

The DATA

DPPXDBCP
DPPXDB391

DPPXDBCP

rn

m

Z

en
m

o

3:
»
-t
m

:lJ

»
r'"0

:D

o

"

m
::0
-t

<

o

"

DPPXDBCP

Figure 2-161
Input

119~

CNTLTABL

....
v

Output

Process

WKAREA

rrrr

....

READ Direct Access Array
Data From Direct Access
DCB Data Set

.>

WKDATABF

....

r(')

m

Z

(I)

m
~

~

DADCB
Data Set

....

SYSUTl

DCB Data
> Set

-y

'-'"

o

s:
»-I
m

::D

>
rI

WKAREA

WKDATABF

CNTLTABL

TIJ
....
....

...

WR ITE Direct Access Array
Data To SYSUTl DCB
Data Set

I
I

I

K-,/
v

m

)

:::

::D
"Q

~~~

~,

UDU,"\D"

::D
-I

-<
o
."
OJ

s:

Return To Figure 2-1
Of 24 )

( 19

Figure 2-161 (23 Of 24) - READWRIT - Read/Write DA Data Records

Figure 2-161 (24 of 24).

Step

Extended Description

Messages and
PDL Segment
ABEND Codes

1

Control Data is taken from the Compress Control Table and used in
reading direct access array data from the data set defined by the
DA DCB.

DPPXDBCP

2

The direct access array data is written to the data set defined
by the SYSUTl DeB. Direct access control data is updated in the
Compress Control Table.

DPPXDBCP
r

n
m
2
en
m
C

3:

»
-I

m

:D

»
r
~

::D

o
."

m

:D
-I

<
o

"OJ

s:

LICENSED MATERIAL - PROPERTY OF IBM

Intentionally Blank

(

2-496

LICENSED MATERIAL - PROPERTY OF IBM

Playback Routine
The playback routine is used in an offline environment to convert, format,
and print data recorded during online execution. The data played back was
created using the RECORD facility of the Special Real Time Operating
System.

2-491

DPPXNRTI

EntenId From

SCHEOi~

Input

Output

Procea

Register 1

.-Address Of Playback Parameters

I

...

I

ITITRetrieve Address Of Playback
Parameters

Work Area

r

Playback Parameters
0
START DATE
9
START TIME
16
STOP DATE
25
STOP TIME
34
Load Module Name
42
ID COUNT
44
ID
46
10
48

....

... )

rn

...

.. )

Move Playback Parameters To
A Work Area And Load
Register 1 With The Address
Of The Work Area_

0
9
16
25
34
42

44
46
48

00
LI N K To Date Playback Conversion Routine (DPPXPCON)_

.

n
m
Z

en
m

C

s:

~

m

:rJ

»
r
I

.....

...

Playback Parameters
START DATE
START TIME
STOP DATE
STOP TIME
LOAD Module Name
10 COUNT
10
10

LINK

...

...

.....,

Parameter
Conversion
Routine
Figure 2-73

"'0

:rJ

o
"'0

m
:rJ

~
o."
6i

3:

Return To

SCHEDULAR

Figure 2-162 (1 Of 2) - Data Playback Non-Real Time Initialization Routine

Figure 2-162 (2 of 2).
Step

Extended Description

Messages and
POL Segment
ABEND Codes

1

Retrieve the address of playback parameters from register 1.

DPPXNRTI

2

All playback parameters will be moved into a work area built by
DPPXNRTI. The address of the work area will pe stored in register 1.

DPPXNRTI

3

An OS/VSl LINK macro will be issued to' the data playback conversion

DPPXNRTI

routine (DPPXPCON) •

r

o

m
Z
CJ)
m

o

3:

»
....
m

:Jl

»

r

."

:D

o

."

m

:D

....

<

o

en

LICENSED MATERIAL - PROPERTY OF IBM

Intentionally Blank

2-500

LICENSED MATERIAL - PROPERTY OF IBM

SYSGEN Utility
The stage I SYSGEN Utility uses software option and hardware configurations
specifications as input. The output is a printed listing and the job
stream for stage II of SYSGEN. The job stream. when executed creates a
Special Real Time Operating System.

2-501

DOMXSTG1

Process

Input

Register 1
A(Parameter ADDR)

A(Parameters)

,..

ITl
Obtain Assembler Type
(H Or Fl. Assembler Parameter
(SYSPARM=l, And CPU 10
From Parm Field.

nm

Z

(I)

m

C

Parameters

3:

~

m

:l:J

SOFTOPT
Data Set

»
,..

Obtain Current Member(s)
From CONFG Data Set
And Correct Member From
SOFTOPT Data Set·To
SYSIN Data Set. Error In
Above Process? NoInvoke The Correct
Assembler

I
'"0

:l:J

0

'"0

m

:l:J

~

Assembler

0

-"
CD

!:

Yes - Exit

Figure 2-163 (1 Of 2) - Stage 1 SYSGEN Utility

Figure 2-163 (20f2).
------------------~-----------.-------------

Step

Extended Description

Messages and
ABEND Codes PDL Segment

1

The CPU ID is of the form System/370xx or System/7xx where xx is any
decimal number from 01 to 99. If an error is detected, issue message
INVALID PARM FIELD.

DOMXSTGl

2

The correct members are:

DOMXSTGI

A.

The member of the configuration data set named in the PARM
field.

rn
m
Z

(J)

B.

C.

All other configuration members named in the first or
subsequent configuration member(s) CONFIGH child parameters *.
The member of the SOFTOPT data set named 1n the PARM field.

m
C

3:

l>
-i
m

:0

l>

*Multiple CONFGH members will be used only if the SYstem/370 Energy
Management System Program Product (5740-Ull) is being generated.

r"C

:0

o"C
m

:0
-i

<

o

"

LICENSED MATERIAL - PROPERTY OF IBM

Intentionally Blank

2-504

LICENSED MATERIAL -

PROPERTY OF IBM

SAMPLE PROGRAMS.
The Special Real Time Operating System sample programs provide a minimal
test of the functioning of the Special Real Time Operating System. The
primary program, DPPZSAMP, exercises the following functional areas:
Task Management
Time Management
Data Base Management
Message Handler
The secondary program, DPPSAMPI, is used to substantiate the functioning of
test management and time management routines by issuing message 66 whenever
entered as the result of PATCH or PTIME macro call.

2-505

Special Real nme Operating System Sample Prognm

Sample Program

.

Semple Program

PATCH ENTRY Progrwn

r(')

EJ
J

m

Z

C'I)

m

o

3:

...
»

m

::rJ

»
rI
."

::rJ

o
-0
m

...-<
::rJ

Figure 2-164 (1 of 2) Special Real Time Operating System Sample Program Overview

o
-n

LICENSED MATERIAL - PROPERTY OF IBM

Intentionally Blank

2-507

DPPZSAMP

Input

Entry Via A PATCH Macro Call
Process

Output

If PATCH Successfully Issued
Issue System Message 68
Data Base

r(")

GETARRAY for DPPZSAMP Array.
If Array Retrieved Display Array
Contents Via System Message 66

Sample Program
Array (DPPZSAMP)

@

Item DPPSAMP2

Log Out Array DPPZSAMP ,

m

Logged Sample
Program Array
(DPPZSAMP)

If Array Logged Out Issue System
Message 68

2

en

m

0

3:

Logged Array
Data Set

»
-f

Log In Array DPPZSAMP

m

If Array Logged In Display Array
Contents Via System Message 66

»
r-

::x:J

I

"::x:J

If PUTARRAY Issued Issue System
Message 68

0

"'0

m

@]

::x:J
-f

GETITEM For Item DPPSAMP2

-<

Issued Issue System

0

'"T1

o::J

3:

If PUTITEM Issued Issue System
Message 68

[!J

Issue PTIME For DPPSAMPl
If PTIME Macro Successful Issue
System Message 68
DPPQ69

Figure 2-165 (1 Of 2) - Special Real Time Operating System Sample Program

Figure 2-165 (2 of 2).
Extended Description

Step

Messages and
ABEND Codes POL Segment

I

The sample program will PATCH task DPPSAMPI at entry point DPPSAMPI

DPP068I

DPPZSAMP

2

Array DPPZSAMP will be retrieved from the data base by a GETARRAY
macro.

DPP066I

DPPZSAMP

A.

Array DPPZSAMP will be logged out by the PUTLOG macro.

DPPQ68I

B.

Array DPPZSAMP, contents of the array logged, will be logged
in by a GETLOG macro.

DPP066I

Array DPPZSAMP, contents of the array logged, will be placed
back in the data base by a PUTARRAY macro.

DPP068I

C.
3

DPPZSAMP

Item DPPSAMP2 contents retrieved by the GETITEM in step 3
will be placed in the data base by a PUTITEM macro.

A PTIME macro will be issued to cause task DPPSAMPl, at entry point
DPPSAMPI, to be patched three times at I-second intervals.

n

m
Z

en
m

o

~

»
-i

m

Item DPPSAMP2 will be retrieved from the data base by a GETITEM macro. DPP069I
A.

4

,...

::D

DPP068I

DPPZSAMP

DPP068I

DPPZSAMP

»,...
o"

::D

"m

::D
-i

-<

o

"

DPPSAMPl

Input

ITJ
Issue System Mesuge 28

r

o

m

:2

(I)

m

o

3:

~
m

:lJ
~

r
I

"o:lJ
m
"

~
<
o
."

Figure 2-166 (1 Of 2) - Sample Program PATCH Entry Routine

Figure 2·166 (2 of 2).
Step
1

Extended Description

Issue message 28 to indicate the sample program has been entered.

Messages and
ABEND Codes

I DPP0281

POL Segment

DPPSAMPl

r
(')

m
Z

Cf)

m

C

3:

~

-f

m

::D
~

r

."

::D

o

."

m

::D
-f

-<

o

"

LICENSED MATERIAL -

PROPERTY OF IBM

Section 3.

PROGRAM ORGANIZATION DESCRIPTION

TIle Program Organization section of the System Logic Manual describes the
method of implementation of the functions described in Section 2.
This is done through Program Design Language (PDL) representation
of ,each member of source code that comprise the Special Real Time Operating System. PDL provides a more detailed insight into the logic flow of
the individual programs and closely resembles the actual program structure.
This section is intended to be an intermediary step and to aid in the
transition from the functional overview of the logic descriptions (Section
2) to the program listings themselves. The HIPO charts in Section 2 can
be used to tie a function in question to one or more program segments. The
PDL charts in this section can then be used to pinpoint the area of concern within the referenced segment(s). Neither the HIPO charts nor the
PDL charts are intended to be a subset of the other; nor is either a oneto-one mapping of the other. They support each other and should be used
together to fully understand the logic flow of the program.
In some cases, several members of source code are combined, by use of COPY
statements, into one assembly. A cross-reference of source members that are
COPYed into base CSECTs is provided in Appendix A. A cross-reference of
module names to HIPO and PDL charts is provided in Appendix C. A
cross-reference of ABEND codes and message numbers to module names can be
found in the Description and Operations Manual. All ABEND codes and message
numbers used (directly or indirectly) by a module are defined in the extended description of the HIPO chart for that module. The actual ABEND
code or message number issued by a particular segment (e.g., a common subroutine) may, in some cases, be ascertainable only in realtime execution.
Therefore, not all PDL segments will reference a specific ABEND code or
message number.
For ease of use, the following PDL charts have been arranged in alphabetical order.

3-1

LICENSED MATERIAL - PROPERTY OF IBM

Intentionally B+ank

3-2

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-1. DOMICEXT

MAIN SEGMENT
INCLUDE DPPICINF
EXTA NUMERIC 1* VALUE FOR lPPS EXT'
EXTB NUMERIC I*VAlUE fOR fAIL SELECT EXT.I
1* THIS MODULE IS ENTERED IN PLACE OF T~E as EXT fllH*1
IF EXTA IS ON THEN
IF 'TIME SYNC OPTION IS SELECTED IN A JOB STEP' THEN
'POST TIME SECTION'
ENDIF
ENDIF
IF EXTB IS ON THEN
IF 'PROBE FUNCTION (S RUNNING' THEN
'POST PROBE'
ENOlf
ENOIF
'PASS CTL TO OS/VS EXT FlIH'
ENpSEGMENT DOMtCEXT

OC~lCEXT

01
01

01
01
01
02
03

02

01
01
02
03

02

01
01

Figure 3-2 (1 of 2). DOMIRBT

01
01
01
01
02
02
03
03

02
02

02
03
02
02
01
02
01

OOMIRBT ENTERED VIA HARDWARE IPl
SET UP TEMP AOOR TRANS TABLE
TURN eN OAT BOX
WAIT STATE CODE' F' IF oseB FO~ fiR GATA SET NOT THERE
IF CONSCLE AODR FURNISHED
WRITE OUT MESSAGE T~AT RESTART HAS OCCURED
ENOlf
UNlil TC ENe Of REAL STORAGE
IF READ AOOR NOT FIRST PART BOOT
If ~ED NOT SECC"D PART BOOT
IF NOT AOOR WORK AREA
R~AO 8LOCK ( f REAL STOR~GE
IF fIRST BLeCK REAL
S~VE PC ~EW/MC NEW
PUT WAIT STATE PSWS AT PC AND Me
E~OIF

GET AMT READ
IF BLOCKS NCT 2K MULT
QUIT-DROP DEAD WAIT
ENOIF
GET NEXT READ ADOR
ELSE
UP REAC AODR 2K
ENDIf
ENDOO
ALL REAL STORAGE IN--GET FULL CTl REGS
READ PROTECT KEYS
UNTIL END OF REAL STORAGE
3--3

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-2. (2 of 2). DOMIRBT

01

01

01
01
01
01
02
02

03
03
02
01
01

01
02
03
03

03
03
03

03
03

04
03

02
01

3-4

SET KEY IN REAL STORAGE
ENDDO
TO RENIP TO AOJLST ue8 S
IF CRITICAL DISK MISSING
CODE 3 WAIT STATE
ENDIF
DO COpy FOR PAGING [ATA SETS
UNTIL All JOeQ,SWADS PROt
COpy AN EXTENT OF JOSQ,SWAOS,SYSWADS
SET NEXT EXTENT PTR
ENODO
IF OS/VS CLOCK eMP SUPPORT
IF CLeCK SET OR
IF CLOCK ~CT SeT
ADJUST CLeeK CMP RESTQRE VAL
WHILE TQE- S Re~AIN
ADJUST TOX IN TOE
GET NEXT TQE
ENDeo
ENDIF
SET CPU TIMER AND CLUCK eMP
ENDIF
RESTORE PC AND ~C NEW PSWS
RETURN TO OCMIRWT AS THOUGH RESTART JUST
BGNSEG COpy SEGMENT-COPY A DATA SET
IF ACTUAL OSET IMAGE THERE
UNTIL E~D OF INPUT ON FIR OSET
RElOC REAC CHAN PROG
GET AMT T~EAD IN
BUILD OUTPUT CHAN PROG
GET DEVICE AOOR
WRITE IT CUT
UP INPUT OISK ADDR
If END CYl ON INPUT
ADJUST ~H AND CC
ENDIF
ENDDO
END IF
ENDSEG COpy

~RITTEN

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-3. DOMIRCMN

MAIN SEGMENT
THtS SEGMENT IS PATCHED ON A CYCLIC BASIS TO
~ONITOR THE EMS SYSTEM--IT CONVERSES WITH THE
BACKUP CPU VIA DIRECT eTL *1
INCLUDE D1~RCMN
SAVESTAT UNDEFINED
I*SAVELOCS FOR crRS*1
LISTARVS CHARACTER 1* LIST OF ARRAYS TO CHECK.I
FIRSTENT BOOLEAN
1*INITIAl ENTRY SW ./
GOOOVAl BOOLEAN
If FIRSTENT=YES T~EN
FIRSTENT=NO
'TURN OfF LTFREQ AND LTSELT'
'ALLOCATE SAVESTAT'
GOaOVAl=TRUE
ENCIF
DO 'FOR ALL VALUES IN LIST'RYS' WHILE GOODVAl=TRUE
IF 'LISTARYS VAlUE-=SAVED VALUE IN SAVESTAT' THEN
IF 'lIST'RYS VALUE NE ZERO' THEN
GOODVAl=FAl SE
ENOIF
ELSE
SAVESTAT(XJ=lISTARYSeX)
ENDIF
ENCDO
IF GOODVAL=TRUE T~EN
'SET BTOC TO NEW CONFIG'
'TURN ON lTC~L AND LTRDY'
ELSE
'SET BTOC TO 'F"
INDICATES FAIlOVER REg*1
ENDIF
ENOSEGMENT DCMIRCMN

'*

OC~tRCMN

01
02
02

01
01
01
01
01
01

02
02
02
02
01
01
02
03
04
03
02
03
02
01

Ot
02
02
01

02
01

'*

Figure 3-4. DOMIRCPY

01
01
01
01
01

OO~IRCPY MAIN SEGMENT
DOMIRCPY IS eRANC~EO TO BY DOMIRFLV TC MAKE MULTIPLE
COPIES OF THE FAILOVER/REST'RT [AT A SET.
BUILD ceNTROl SLCCKS FOR ALL CPPfAll DC CARCS
COpy All OF FIR DATA SET EXCEPT FIRST TRACK
WRITE BOOTSTRAP AND P~OTECT KEYS ON EACH TRACK
READ Rl AND R2 fROM DISK TRACK ZERO AND COpy
READ IPl 1 ANC IPl2
~RITE OUT IPl1 AND IPL2 TO EACH OPPfAtlX
CLOSE CCBS,RElEASf BUFFERS
ENOSEG~ENT

OC~IRCPY

3-5

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-5. DOMIRFLV

01
01
01
01
02
01
02
01

01

DOMIRFLV SYNCHRONIZES WITH THE SLAVE(MASTER) PARTITION
(If ANY) ANC PREPARES TO WRITE THE RESTART
ABEND NOT A REAL TIME JOB
ABFND IF ANOTHER WTFAILOS GOING
IF 2 PA~T OP
ABEND IF CANT LOCATE OTHE~ PARTITION
GET TeB ADDR (THER PARTITION
ENe eN MASTER JOB JOB NAME
IF E GOT RESOURCE
WAIT FOR OTHER PARTITION
ELSE
POST OTHER PARTITION
ENOIF
ENOIF
IF IS SLAVE PARTITICN
WAIT fOR MASTER TO WRITE RESTART
ENDIF

3-6

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-6. DOMIRFL2

01

02
03
03
04
04
04
04
04
04
04
05
06
05

DOMIRFL2 PREPARES TO WRITE THE RESTART
If MASTER PART.
IF RESTART IS ALL(WEO
IF DPPFAIL OOCARD FOUND
IF NOT SYSRES (IPl VOL)
IF VALID DEVICE
LOAD RESTART BOOTSTRAP
LCAD RENIP
LOAD RESTART WRITE
PUT EXTENT INFO FOR JOBCUEUE AND SkADS IN BCOT HDR
IF SWAOS NOT SWA
ENDIF
IF TWO PARTITION OPERATION
IF SWADS NOT SWA
PUT EXTENT INFC FeR SWADS Of SLAVE P~RTITION IN BOOT HDR
E~DIF

04
04
04
04
04
04
04

ENDIF
GET lID WORK AREA
PUT CONSOLE ADCR IN BCT rDR
FIX BCOT,RNIP,WORK AREA, AND RESTART WRITE IN REAL STORAGE
LOOP Til 110 STOPS
GO TO DOMIRWT TO WRITE RESTART
IF ON RESTARTED CPU
05
RESET NR,CUB,BSY eN ALL UCBS
04
ENOIF
04
UNFIX ITEMS FIXED
03
ELSE
04
SET INVALID DOCARD FETURN
03
ENDIF
02
ELSE
03
SET NO COCARO RETURN
02
ENDIF
02
tF RESTART WRITE OK
03
GC TO DG~IRCPY Te COpy DPPFAIL
02
ENOIF
O l E LS E
02
MAKE LOCK AS IF RESTART WENT OK
01
ENDIF
01
ISSUE APPROPRIATE MESSAGES
01
POST OTHER PARTITION IF EXIST
ENDIF
qETURN TO CALLER

3-7

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-7. DOMIRINT

01
01
02
03
J4

DCMIRINT MAI~ SEGME~T
INCLUDE DPPICINF
1* THIS MODULE IS LINKED TO BY SYSINIT IF FAIlOVER/RESTART
AND OR EXT INT. HANDLING WAS SYSGENED *1
IF ~OT SLAVE PART
ENQ ON NAME REPRESENTING FAllOVER/EXT I~T GO WITH THIS JOB
IF ENQ CK
IF CAN ~AVE EXT
IF EXT FllH NOT PREV INIT
SET uP SUeSTITUTE EXT FllH

03

E~OIF

~3

04

IF EXT TI~E STND EXT INT IN SYS
ATTACH TIME DRIFTER CORRECTOR TASK -

03

E~DIF

f-NDIF
fLSF
02
SET NC RESTART/EXT INT THIS JOB
01
fNDIF
ELSE SLAVE PART
01
5ET FXT/INT RST OFF
ENOIF
O~

01

ENDSfG~ENT

O(~IRINT

DPPDRIFT

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-8. DOMI RNIP

ot
02
03
03
04
04
05
04
03

04
04
05
04
03
02
01

01

01
02
02

02
02
03

03
03
02

03
02
03
02
01
02
01

DCMIPN(P MAIN SEGMENT
FORMAT BOOTSTRAP WORK AREA FOR CONFLICT ELEMENTS
WHILE NOT AT END uce LOOK UP
IF NOT FILLER ENTRY
IF DIRECT ACCESS DEVICE
READ VOLUME LABEL
IF UNABLE TC READ LABEL
IF DEVICE CNLINE BEFORE
IF REAL VClSER
CREATE CONFLICT EL~
ENDIF
ELSE WAS ABLE TO READ VOL LABEL
IF DEVICE WAS OFFLINE OR
If V(lSER IS DIFFERENT
CREATE CFLICT ELM
ENDIF
ENDIF
ENDIF
ENDlf
BGNWHIlE
GET NfXT UCB AODR
ENDDO
REMOVE POE S FRC~ LOGICAL C~ANNEL QUEUES AND CHAIN TOGETHER
WHILE CFLICT ELMS STill TO BE CHECKED
IF A NO~ VClEPS EXISTS IN THIS ELM
SET UP TO SeA ~ (THE R' CFll CT ELMS
STRTSRCH EL~S TC CHECK
EXITIF NOW Of ONE EQLS eLO OF ANOTHER ~ND
EXITIF SAME DEVTYP
INTERCHANGE UCB S
RESWAP VOLUME RELATED INFO
UNCHAIN CFllCT ELM
ORElSE
NEXT TO CC~PARE AGAINST
ENDLOOP
GET NEXT TO C~ECK FOR VALID NOW VOlSER
ENDSRCH
ELSE
GET NEXT TO CHECK FOR VALID NOW VOlSER
ENDIF
ENDDO
PUT RQE S BACK CN ceRRECT lCH
SET RETURN CODE IF CRITICAL DISK MISSING
ENOSEGMENT DCMIRNIP

3-9

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-9. DOMIRPRB
OCMI~P~B

MAIN SEGMENT

01

1* THIS SEGMENT RUNS ON A CVCllC BASIS IN THE

02

CFFLINE CPU--IT TESTS THE ONLINE CPU VIA DIRECT CTL
INCLUDE D1MRCMN
INCLUDE DPPICINF
ECe( 2 JUNO EFIN ED I • , 1 J IST.I ME, C2) I SEX TIN T */
GOODY BOOLEAN
'SAVE INFO IN OOMICINF FOR E~T INT'
GOOOY=TRUE
'SET ECBtl) POSTED'
DO INDEFINITELY
'WAIT fOR ECE(l) OR EC8(2) TO BE POTEO'
IF 'ECB(l) IS POSTED' THEN
'SET ECB(1) NOT POSTEO'
• READ BT ec'
IF BlOC I S ZERO THEN
GOOOY=TRUE
ELSE
IF eTDC EQ 15 THEN
GOODY=FAlSE
ELSE
IF 'BTDC IS THE SAM AS LAST TIME' T~EN
GOODY=FAlSE
ENDIF
ENOIF
ENDIF
ENOIF
IF' EC B , 2 I I spa S TED' THEN
GOODY=FALS E
ENDIF
'SET lTRDY ON'
'SET STIMER FOR NEXT ENTRY'
IF GOOOY=FAlSE THEN
If 'ECB(2) IS NOT POSTED' THEN
'SET lTFREQ ON'

01
01
01

01
01
01
01

01
02
02
03
03
03

04
03
04
05

04
05
06
05
04
03

02
02
03
02
02
02
02
03
04

03
04
04

04
03

02
01

3-10

ELSE

'SET lTFREQ AND lTSElT ON'
'SET BT2q14 AND DELAY'
'FORCE IPl OF fAll/RST CATA SET' l*eXIT.,
EONI F
.
ENDIF
ENOOO
ENDSEGMENT DOMIRPRe

*'

LICENSED MATERIAL - PROPERTY OF IBM

Figure 10. DOMI RWT

DOMIRWT IS ERANCHED TO BY COMIRFl2 TO WRITE THE fAllOVER/RST
DATA SET. IT RETURNS AfTER DOING SO.
SAVE GEN REGS IN BOOT HOR
SAVE CTl REGS I~ BOOT HDR
I NClUOE DOMI RSIO
SAVE eLK CMP fOR RESTART READ
PUT RESUME PSW IN eCOT HEADER
DUMP ALL OF REAL STORAGE EXCEPT FIRST 2K WORK AREA AND BOOT'
3 2 K BLOC KS I N ALL.
COpy ACTIVE ENT~IES FROM PAGING DATA SET TO ODPFAll
COpy SYSl.SVSJOSQU AND SYSl.SVSWADS
COpy SW~DS FO~ MASTER PARTITICN
COpy SWADS fOR SLAVE PARTITION If EXIST
WRITE PROTECT KEYS AND BOOTSTRAP
WRITE TRACK ZERC IPl RECORDS
RETRUN TO DI~IRFlV
Figure 3-11. DOMISVC1

01
01
01
02
03

DOMISVCl MAIN SEGMENT
1* TYPE 1 SVC ROUTER *1
I~CLUDE

DOMISVCO

03

IF 'SUBSVC VALID' THEN
CASENTRY SUBS~C
CAS E 1
CALL
1* NO RET DISABLE SVC*I
CASE 2
CALL
1* NO RET CHAIN SC *1
ENDCASE

02

ELSE

04
03

04
03

02
01

'AREND USING SVCNO'
END IF
ENCSEG~E~T DCMISVCl

Figure 3-12. DOMISVC2

01
01
01
02
03
04
03

02
03

02
01

DOMISVC2 MAIN SEGMENT
1* TYPE 2 SVC ROUTER *1
I ~c LUDE DOM IS veo
IF 'SUBSVC VALID' THEN
CASENTRY SUBSVC
CAS E 1
CALL
1* PATCH-NO RETURN*I
ENCCASE
ELSE
'ABEND USI~G SVCNO'
ENOIF
ENDSEG~ENT DCMISVC2

3-11

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-13. DOMISVC4

01
01
01
02
03

04
03
02
03

02
01

OOMISVC4 MAIN SEGMENT
1* TYPE 4 SVC ~OUTER *1
INCLUDE DOMISV(O
IF 'SUBSVC VALID' THEN
CASENTRY SUBSVC
CASE 1
CALL DOMIRFlV
ENOCASE
ELSE
'ABEND USING SVCNO'
ENDIF
ENOSEGMENT 00MISVC4

1* NO RETURN*I

Figure 3-14. DOMXSTGl

01
01
01
01
01
01
01
01
01
02
02
02
02
03
03

04
04
04
03

04
03

02
02
03

02
03
02

02
02
03
02

01
3-12

OCMXSTGI MAIN SEGMENT
VAlIO_SW BOOLEAN
CONFG
FILE
SOFTOPT
FILE
OUTPUT
fILE
SYSPRINT
FILE
HIEARCHY_CHAIN UNDEFINED '*PTR AND LIST OF PAR/CHIlO*:
PARM_FIELD CHARACTER 1* PARM FILED FRCM EXEC CARO*I
'OBTAIN PARM_FIElD'
DO 'FOR EACH CPU IN PARM_FIElO'
'OPEN CONFG,SOFTOPT, AND OUTPUT FILES'
VAL IO_SW=TRUE

'SET HIERARCHY_CHAIN TO 1 STATED CPNFG MEMBER'
DO WHilE VAlIO_SW =TRUE UNTIL 'H[EARC~Y_CHAIN AT
'READ CONFIGH ~ACRO F~OH CURRNET MEMBER'
IF 'CCNGIGH MACROS VALID' THEN
'INSTALL CHILDREN IN HJEARCHY_CJAIN'
'COpy CCNFG MEMBER TO OUTPUT FILE'
'SET FOR NEXT MEMBER~IF ANY'
ELSE
VALID_SW=FALSE
ENCIF
ENOOa
If VAlID_SW=TRUE THEN
'CGPY SOPFTOPT MEMBER TO (UTPUT'
ELSE
PUT SYSPRINT 'INVALID CONFIGH'
ENDIF
CLeSE OUTPUT
IF VALIO_SW=TRUE THEN
CAll 'ASSEMBER'
ENDIF
ENDOO
ENOSEGMENT DOMXSTGl

E~[­

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-15. DPCALCF1

01
01

DPCALCFI-INClUDED SEGMENT
OPPCALCF
TIME AIN
GET as TIME
STORE TI~E AND CATE IN PARAMETER AREA
ENDSEGr-tENT

AND

DATE

Figure 3-16. DPCTIME1

SEGMENT
CPPCTIME
IF CURRENT TIME GREATER THAN 24 HOURS
SET CCRRECTION FACTOR TO ~INUS 24 HOURS
LINK DPPCUPCF
UPCATE TIME
ELSE
CALCULATE TIME IN HDURS-MIN-SEC-DECISECONDS
STORE TI~E IN HOURS-MIN-SEC-OEC[SECONDS IN TIME ARRAY
STORE TIME IN B(N~RY DECISECONDS IN lIME ARRAY
ENOIF
ENDSEGMENT

DPCTI~E1-INClUDED

01
02
02
01

02
02
02
01

Figure 3-17. DPCTIME2

SEGMENT
MESSAGE 'TI~E CHANGED'
LINK DPPCALCF
LI~K
DPPCUPCF

DPCTI~E2-I~CLUDED

01
01
01

DPPCT

I~E

CALCULATE NEW CORRECTION FACTOR
lJPCATE TIME

E~OSfGMENT

Figure 3-18. DPCTSVC1

01
01
01

CPCTSVC1-INCLUDED SEGMENT
RET OPTION REQLEST
READ TOO CLeCK
CALCULATE CURRENT TIME
RETURN TIME IN REG a ANt ADDRESS OF TIME ARRAY IN REG 1
EI\OSEGMENT

3-13

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-19. DPCTSVC2

01
01

01

01
02
03
02
01

02
o3
O?

03
04

03
02
01
01
02

03
02
03

04
05
04

03

02
02
03

02
02
01
02
03
01
01

01
01
01

01

3-14

CPCTSVC2-INCllJDED SEGMENT
ADD OP1ICN REQUEST
CBGET PTOE ceNTROl BLOCK
INITIALIZE PTQE ~ITH DATA IN PTIME [~PUT P~RAMETER-PTIMEl
IF PRrBL IS LESS THAN 8 BYTES LONG AND
IF PQOBL IS ~CT TO BE FREEr BY PTIME
MCVE PROSL INrc THE PT'E
ENDIF
IF Tce SPECIFIED
IF START TIME LESS THAN CURRENT TIME
SET START TI~E AHEAD BY 1 CAY
ENQIF
ELSE
IF REL SPECIFIED
ACDC UR R EN TTl ~ ETa S TAR T T IJ.,IE
ELSE
ASSUME ADJ SPECIFIED
WHILE START TIME lESS TH~N CURRENT TIME
ADO INTERVAL TO START TIME
ENO~O

ENOIF
ENDIF
IF STOP TI~E SPECIFIEO
IF REL SPECIFIED
ADD CURRENT TIME TO STOP TIMl
El S E

IF ACJ SPECIFIED

WHILE STOP TIME LFSS T~AN CURRENT TIME
ADD INTERVAL TO STOP TIME
ENODO
ENDIF
ENDIF
WHilE STOP TIME LESS THAN START TI~E
ADD 24 HCUR VALUE TO STOP TIME
ENDOO
CALCULATE THE NUMBER OF INTERVALS
ELSE
IF ZERO CCLNTS SPECIFIED
SET INFINITE PTI~E FLAG
E~DIF

ENOIF
SAVE CCUNT VALUE
LOCK eN TIME ARRAY
CHAIN PTQF. TO PTOf ChAIN
UNLOCK TIME ~RRAY
Ef\CSEGMENT

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-20. DPCTSVC3

01
01
02
03
03
02
02

03
02
03
04
C5
04
03

04

05
04
05
06
05
04

03
03
04

05
04

C5
06
01
06
05
04

04

05
04
04
03

04
05

04
03
O~

03
02
01
Ot

OPCTSVC3-INCLUDED SEGMENT
MOO SPECIFIED
LOCK (~ TIME ARRAY
WHILE ~C~E PTQE'S ON CrAIN DO FOR ALL PTCE'S
IF THIS IS A PTQE TO BE MODIFIED
CHAIN RE~OVE PTCE fPOM PTOE CHAIN
RESET PTQE WITH INFORMATICN IN PTIME INPUT PARAMETER-PTI~EL
IF PROBL IS LfSS TrAN 8 eYTES LONG AND
IF PROBL IS ~OT TO BE FREED BY PTI~E
~OVE
PROBL INTO THE PTQE
ENOIF
IF Teo SPECIFIED
IF START TIME lESS THAN CURRENT TIME
SET START TIME AHEAD BY 1 CAY
ENOIF
EL SE
IF REl SPECIFIED
ADD CURRENT TIME TO START TIME
ELSE
ASSUME ACJ SPECIFIEO
WHILE START Tl~E LESS THAN CURRENT TIME
ADD INTERVAL TO START TIME

ENcca
ENOIF
ENDIF
IF STOP TIME SPECIFIED
IF REL SPECIFIED
ADD CURRENT TIME TO STOP TIME
ELSE
IF ADJ SPECIFIED
WHILE STOP TIME LESS THA~ CURRENT TIME
ADD INTERVAL TO STOP TI~E
ENDDO
ENOIF
E~DIF

wHILE STOP TIME LFSS THAN START TIME
ADD 24 HOUR VALUE ·TO STOP TIME
ENODO
CALCULATE THE ~UMBER OF INTERVALS
ELSE
IF ZERO COUNTS SPECIFIED
SET INFINITE PTIME FLAG
ENCIF
ENDIF
SAVE COUNT VALUE
CHAIN ADD THIS PTQE TO PTQE CHAIN
ENDIF
ENCOC
UNLCCK TIME ARRAY
ENOSEGMENT
3-15

LICENSED MATERIAL - PROPERTY OF IBM

F igu re 3-21. DPCTSVC4
r.PCTSVC4-I~CLUOEO

J1

LeeK

CH
O?

~HILE

C~

SEGMENT

DEL SPECIFIED

ARRAY

Tr~E

~CRE prOE'S ON CHAIN DO fOR
!F TbIS IS A PTQE Te EE DELETED
SET PURGE FLAG

tJ -i

~LL

PTCE'S

f~OIF

02
01
01
01

fNCOr.

POST

DPPCPTI~

UNlCCK TIME

TO REMGVE PTQE FRCM PTQE CHAIN

~RRAY

ff\OSEGMF~T

Figure 3-22. DPCUPCFl

SEGMENT
CPPCUPCF
crNVERT INPUT CORRECTION FACTOR TO TOO COUNTER UNITS
IF
TIMF IS FAST T .... EN
ACC CCPRECTICN FACTOR TO CURRENT CCNVERSICN FACTOR

npClJPCFI-INCllJD~D

J1
O?

03
O?

FL SE

SUHTRACT crRRECTICN FACTeR FROM CURRENT CCNVERSI(N FACTOR

O~

O?

Jl
01
07

Er-.:OIF

*
*

T~[ CCNVERSICN FACTOR IS SUBTRACTED FRCM TAE
Tno cnUNTER VALUE TO OBTAIN THE TIME
STCRE NEw CONv[RSION FACTOR INTO TIME ~RRAY

NeTF:

F"JOSfGME~T

01

Figure 3-23. DPCUPCF2
DOC t JP C F2--

RFAC

INC LlJ 0 t D Sf. GMEN T

TOO

CCU~TER

CP PC UP CF

VALUE

SUPTRACT CCRRECTlnN FACTOP Ff«M TeO COUNTER VALUE
( -J ,,! VFRTTl M E Cr FFER ENe f TO 10M II LIS ECO" 0 UN ITS
STClPF
PIf\AI VARIABLE CCUNT IN
DEFINED MESSAGE THEN
SET RETURN CODE TO 2
ENDIF
ENCIF
CONVERT ALL USER DATA(VARIABLES) TO EBIDIC INTO MESSAGE
AO[ TIME TO MESSAGE
IF DATE FLAG c~rN DEFINED MESSAGE
ADD CATE Te ~ESSAGE
Ef\DIF
IF ACTICN CODE SPECIFIED IN PARAMETER LIST ThEN
MOVE ACTICN CODE-TO MESSAGE

OPPMMS~

01
01
01,
O~

01
01
01
02
01

02
03

02
01

02
03

02
01

01
01

ENOl F
IF USER MESSAGE RETURN

~REA SPECIFIED THEN
PASS MESSAGE TO USER SPECIFIED AREA
ENDIF
IF ROUTE CODE NOT EQUAL TO 255 T~EN
RETRIEVE ROUTING CODE TABLE FRCM CATA BASE
IF ROUTE CODES IN PARAMETER lIST NCT FOUND IN
ThEN
SET RETURN CCDE Te 12
ELSE
PATC~ MESSAGE OUTPUT ROUTINE
ENOIF
ENDIF

01

01
01
02
01
01

ENOl F

UNlCCK

OPF~""SG

ENDSEG~fNT

3-74

DPP~~SG

~OUTING

CODE TABLE

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-76. DPPMMSGV

OPPMMSGV MAIN SEGMENT
01

01
02
03
03
02
01
01
01

01

02
03
04
03

03
04
04
03
03
04

*

SYSTEM MESSAGE ROUTING CODE MANIPULATIGN
ROUTINE *
~ETRIEVE PASSEC PARAMETERS
RETRIEVE MESSAGE ROUTING CODE FRCM CATA BASE
IF ALTERNATE RCUlE CODE PASSED T~EN
CO UNTIL ALTERNATE RCUlE CODE COMPARED AGAINST ROUTE CODE TABLE
IF ALTERNATE ROUTE CODE OUT OF SERVICE THEN
ISSUE ERROR MESSAGE
SET ERROR FLAG
ENDIF
ENODO
ENCIF
IF PASSED PRIMARY ROUTE CODE = AlTER~ATE ROUTE CODE THEN
SET ERROR FLAG
ISSUE ERROR ~ESSAGE
ENDIF
IF ERROR FLAG OFF T~EN
DO UNTIL ENO CF ROUTE (OCE TABLE
IF P~IMARY ROUTE CeDE FOUND IN RCUlE CODE TABLE THEN
IF ALTEP~ATE ROUTE SPEClflEC T~EN
MCVE ALTERNATE ROUTE CODE TO ROUTE CODE TABLE
ENDIF
IF ROUTE (ODE CUT Of SERVICE TrE~
SET QUT-Of-SERVICE FLAG IN ~(UTE CODE TABLE
DISPLAY STATUS Of ROUTE CODE
E~DIF

04

IF ROUTE CODE IN SERVICE THEN
SET IN~SERVICE FLAG IN ROUTE CODE TABLE
DISPLAY STATUS OF ROUTE CODE
ENDIF
IF STATUS OF ROUTE ceDE ~E'UESTEC THEN
DISPLAY STATUS OF ROUTE CODE
ENDIF
ELSE
IF STATUS OF ALL ROUTE CODES IN SYSTEM REQUESTED THEN
DISPLAY STATUS OF ROUTE CaCE(S)

03
02

ENCIF

04
03

03
04
03

02
03

01

01

E~DIF

ENDDO

ENCIF
IF 8AD PARAMETER PAS SEC THEN
ISSUE ERROR ~ESSAGE
ENCIF
ENDSEGMENT DPP~~SGV

3-75

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-77. DPPMMSG1

MAIN SEGMENT *REAL TIME MESSAGE HANDLER OUTPUT ROUTINE *
GET FORMATTED ~ESSAGE AND ROUTE CODES FRCM MESSAGE FORMATTER ROUTINE
GET ADDRESS OF MESSAGE ADDRESS CONTROL BLOCK FROM seVT
LOCK DPP~~SGI
IF PRE-RESTART FLAG SET IN MESSAGE AODRESS ceNTROl BLOCK THEN
OUTPUT MESSAGE TO SYSTEM CCNSOlE
ELSE
IF peST-RESTART
RETRIEVE MESSAGE ROUTING CODE TABLE FROM DATA BASE
DO U~TIl MESSAGE HAS BEEN ROUTED TO All SPECIFIED ROUTE CODES
IF ROUTE crOE FCUND IN ROUTING CODE TABLE THEN
OUTPUT MESSAGE TO SPECIFIED DEVICE IN ROUTING CODE TABLE
IF MESSAGE ~OT OUTPUTTED TO PRIMARY ROUTE T~EN
OLTPUT MESSAGE TO ALTERNATE ROUTE CODE
ENDIF
ENDIF
Ef\OOO
ENDIF
UNLOCK DPPMMSGI
ENOSEGMENT CPP~MSGI

DPPM~SGI

01
01

01
01

02
01
02

02
03

04
04

05

04
03

02
01

01

3-76

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-78 (1 of 2). DPPPARM

01
01
01
01
01
01

01
02
02
01
02
01
01
01
01
02
02
02
02
02
02

A(PA~A~ETER TABLE)
CANCFl THE PL/I SPIE AND STAE EXIT ACROSS INTERfACE ROUTINE
LOAD A(STAE RE~OTE LIST)
SAVE A(PL/l PICA)
A(CVT)
A(NEW/ClD TeB ACCRESSES)
A( CUR REN T TCB)
A(TCBX)
A(PATCH PAR~ TABLE)
IS THIS THE FIRST ENTRY
If *: NO
LOAD A(XCVT)
LOAC A(SC~T)
LOAD A(SEC. EP DPPTPMON)
LOAD POST CeDE FOR PMON TO PATCH
GO GET AN(T~E~ WORK QUEUE
ELSE
CONTINUE RETURN CODE
ENDIF
FILL THE PARAMETER TABLE
STORE RETURN CODE
RESTO~E PL/1 SPIE AND STAE PRIOR TO RETURNING
RESTORE PL/1 STAE
LOAD A(PL/l PICA)
RESTORE Pl/l SP[E EXIT
STAE S~BRCUTINE TO PERMIT RECOVERY TO FREE CORE AND.ENTER
PL/1 STAE
BGNSEG
IF THERE IS A WCRKAREA
LeAt A(DPPPARM SAVEAREAl
SAVE ABEND ceDE FeR RECOVERY
ELSE
SAVE ABENe CODE faR RECOVERY
ENOl F
A(DPPPARM STAE RETRY ROUTINE)
REQUEST A RETRY
ENOSEG CPARP'STA
BGNSEG
IF T~ERE IS A WCRKAREA
LOAD AIOPPPARM SAVEAREA)
LOAD CO~PLETICN CODE
LOAD STAE WORKAREA LENGTH
FREE THE STAE WORKAREA
SETUP A(OPPPARM SAVEAREAI
LeAD ACPL/l SAVEAREA)

3-77

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-78 (2 of 2). DPPPARM
01

02
02
02

ELSE

SAVE T~E CCMPlETICN CODE
lOAC ADDRESS OF DPPPARM
lOAC A(CVT)
lOA[ AlrCS NEW/OLD POfNTERS)
LeAD A(CURRENT lCB)
LCAD A(FIRST SAVEAREA)
STRTSRCH NEXT (5 NCT ZE~O
EXI1IF NEXT IS DPPPARM SAVEAREA
lCAC A(OPPPARM SAVEAREA)

02
02
02
02
02
03
02
E~ClOOP
02
ENDSRCH
ot
ENDIF
O i l OA C A ( PL /1 PIC A)
01
LOAD SAVEAREA LENGTH
01
fREE T~E SAVE AREA
01
SETUP TO RESTORE Fl/l SPIE
01
RESTCRE Pl/l SPIE EXIT
01
COMPlETICN CODE TO REG. 1
01
SETUP Pl/l SAVEAREA REG.
01
~ESTORE PL/l REGS 2 TO 12
01
GO TO Pl/l STAE EXIT
ENDSEG OPARMRCV

3-78

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-79 (1 of 5). DPPPI F

01

01
02

02
01
02
01
01

01

01
01
02
02
02
ot
02

02
02

02
02
02
03
03
02
02
o1

A(FIRST PARAMETER LIST)
OVERRIDE PL/I STAf EXIT DURING CALLS FOR SERVICE
LOAD A(STAE REMOTf lIST)
CANCEL Pl/I SPIE FXIT CUqtNG CAllS FeR SERVICE
SAVE td PL/I PICA)
A «( VT )
A(~EW/(lD Tee ACCRESSES)
A(ClH<.REf\T TCB)
A{JnRSTEP TCB)
A(TCBX)
A{XCVT)
~nVf FRROR ~SG SKELETCN Tn CS
IF MACR( NO. IS MULTIPLE OF 4 AND
IF ITS NnT NEG"TIV~ ANI)
IF ITS t\OT GT LIST, THFN
EXEC. I~TERFACE CODE
ENOIF
STCRF RETURN CrOF./P(ST fLAGS
RESTORE Pl/I STAE
LOAD ~(Pl/I PICA)
RESTrRE PL/I SPIE EXIT
THIS SLBW(UTINE SAVES T~E CCMPLETI(~ ceDE IN THE INTERFACE
RnlTINE SAVEARfA ~ND REQUESTS T~E RETRY OPTlrN.
dGNSfG
IF ~OPKAREA THFN
LCAC A(OPPPIF S~VEAREA)
MOVE CO~PlET[(t\ TC FI~ST WORC
[L SE
STORE C(~PlETI(f\ COOE
ENDIF
A(STAE RETRY ROUTINE)
REQUEST A REr~Y
FNOSEG CPIFSTAE
THIS RnUTINE FRE~S THF STAF WURKAREA, T~E SAVEAREA nBTAINED HY
THf BEGIN ~ACRC ANn FORCES A PLfl STAE ENTRY.
AGNSEG
~AKE FNTRY T~E EASE
IF REGISTER 1 C(~TAINS A(WORKAREA)
SAVF STAf WORKAREA ACCRFSS
lOAC ~«(NTERFACE SAVEAREA)
P(I~T TO ADRESS OF ABE~C
fLSE NO WCRKAREA - FIND SAVEAREA FRCM TCB
A(C\iT)
A(t\EW/ClO reB ACCRESSES)
A(CURRENT reB)
A{FIPST SAVEAREA)
ST~TSRCH TO "'REV SAVEAPEA
EXI1IF PRrV. SAVF.AREA fCUNO
lCAC A( It\TERFACE SAVEAREA)
NO ABEN[ ADDRESS
ENDLOCP
E~DSRCH

END I F

3-79

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-79 (2 of 5). DPPPIF

Jl
01

01
01
01
01
01
:")1
01
01
Ot

02
O?
02
01

01
J1
01
01
01
01
\) 1

01
01
01
01
01

FCINT TC CCMP. CeDE FOR MSG
LA~GUAGE S~VEAREA ACCRESS
LeAD ~f)CR OF PARAMETER ACCR
LeAD AOOR CF ~ERVICE ID FC~ MSG
LnAC CVT ADOR
LnAC NEw/eLO TCR AOCR
LOAC CURRENT TeB AOOR
LOAC JOeSTfP TCB AOOR
LOAC TCRX ACCR
LOAr XCVT AOOR
IF A STAf ~CRKAREA WAS PROVIDED THEN
LnAD WCRK~REA SIZE,
l CAD 'riCRKAR EA ACORESS At\C
FQEE STAE WCRKAREA
FNOIF
SAVE COMPlETlr.N CODE FCR ~BEND
lnAC SAVfAREA ACDR FOR FREE
LCAD Fl/I-FCRT SAVEAREA
tOAD A(Pl/I PICA)
Ln~c SAV[ARfA SIZE FOR FREEMA(N
FREE T~f SAVEARfA
SF TUP F n R R t: S T() KING PL I I S PIE
PESTOPF r~E Pl/[ SPIE EXIT
CC~PlFTIC~ COCE Te REG. 1
SAVEAPEA AODR~SS TO REG. 13
RESTORF Pl/I REGS 2 TO 12
GO TC Pl/I STAE EXIT
FNOSF( CPIFRCVY
THE FCLLCWING C0Df ~ANOlES Pl/I PATCH REQUESTS
l8A[

f~GNSEG

()l

01

01
01
01
01

A(Pr.;CPL)
SETUP RASE T~ SUPl
IF N~EDEO - SFTUP NEW PPCHl
ISSUE PATCH
STORE A(TCB EXTF~S(CN)
(LFAR FLAGS F~CM FL/I HALF-WORD
ENDSEG CPP I FCD
~GNSEG

01
JL
()~
J~

07
a~

O?
0?
02
o.?

02
3-80

FLAGS TO SUP LIST FLAGS
MUST EE O~TAIN[O
SETUP FrR GFT~AIN
GFT T~E cnRF
roPY A(NFW PROBL)
A{NE~ PRnRl FeR MOVE)
lE~CT~ Cf MCVf
cnpy A(CLC PRO~L)
lE~CTH CF Mr.VE
MC'vE PRORl
TELL SUPERVISOR TO FRF.E PRCAl

~OVE

IF

CO~F

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-79 (3 of 5). DPPPI F

01
02
01

01

02
02
02
01

02

02
02
02
02

02
02
02

02
02
02

02
02
02
02

01

01
01

01

01
01
02
02
02
02
02
02
01
02

02
02
02
01

ELSE
PETURN ~(OlD PReSL)
ENDIF
ENOSEG GETPROBL
THE FCllCWING CODE ~ANDlES PL/I PTIME REQUESTS
BGNSEG
IF *: TYPE = RETU~N TIME
GET CURRENT TIME
STORE TI~E AND A(TIME A~RAY)
ZERC RETURN CODE
ELSE
A(PTIME PARAMETER lIST)
MCVE ST~RT FLAG
~OVE PURGE FLAG
MCVE STOP FLAG
A(PATCH AND PReBl)
If NEEDED - SETUP NEW P~OBL
A(P~OBL) BEING PASSED
SETUP PARAMETER REGISTE~S
FCR CALLING PTIME
ISSUf
RESTORE
CLEAR FLAGS
FRCM Pl/l
FIXED PCINT
FIELDS
ENDIF
ENDSEG DPPIF04
THE FCLlOWING COCE ~ANDLES PL/I DPATCH REQUESTS
BGNSEG
LOAD PURGE OPTION
A(TASK ~AME)
ISSUE DPATCH SVC
ENDS EG DPP I Foa
THE FOLLOWING CODE ~ANOLES PL/I REPATCH REQUESTS
BGNSEG
lOAC A(REPL.
IF REt. TYPE (S ZERO, THEN
MOVE REPL TO USER CORE
RELOCATE SUPL FLAGS
"MAK E QUEUE LE~GTH A HALFWORO
AND COMPUTE ITS ADDRESS AND
REPLACE A(REPL)
SETUP A ZERO RETURN CODE
ELSE
RESTORE SUPL fLAGS
CLEAR TEMP. fLAGS LOCATION
COMPUTE RfPL (RETRY/PURGE) OPTION
EXECUTE REPATCH SVC
ENOIF
3-81

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-79 (4 of 5). DPPPI F

01
01
01
01

01

01
01
01
01

01

01
01
01
01

01
01

01
01
01
01
01
01
02
01
02
02
02
02
01

01
01
01
01

01
01

ENOSE( OPPIF12
THE FOLLOWING CeDE ~ANOLES PL/l GET/PUTARRAY REQUESTS
BGNSEG
LOAD A(~A~E LIST)
INSERT NA~E INCREMENT
LOAD A(OATA LIST)
INSERT DATA INCREMENT
CALL SERVICE
ENDSEG DPPIF16
THE FCLLOWING CODE rANDLES PL/1 GET/PUTITE~ REQUESTS
BGNSEG
LOAC A(~AME LIST)
INSERT ~AME INCREMENT
LOAD A(DATA LIST)
INSERT DATA INCREMENT
CALL SERVICE
ENDSEG OPPIF20
THE FOLLOWING CODE ~ANDlES PL/I GET/PUT8l0CK REQUESTS
BGNSEG
lOAt A(tAlA LIST)
PICKUP DATAL 1ST l~CREMENT
LOAD A(ARRAY ~AME LIST»
CAll SERVICE
ENOSEG OPPIF24
THE fOLLOWING CODE HANDLES PL/I MESSAGE REQUESTS
BGNSEG
BUILD FIRST WORD OF MESSAGE
PARAMETERS TO CONTAIN
NO. ~AR AtRS/ROUTES AND ~SG NC.
PLACE ACTICN ceDE
LOAD ST~RTING AODP. FOR SEARCH
LOAD INCREMENT FOR FULLWORDS
LQAC END CF SEARCH ADDRESS
STRTSRCH UNTIL END OF VARIABLES 00
TEST VARIABLE ACDRESS FC~ ZERO
EXITIF A ZERO VARIABLE ADDRESS (S FOUND
lOAD START ADDRESS
CO~PUTE Ne. CF BYTES SE~RC~EO
COMPUTE ~C. OF WORDS SEARCHED
RESET NC. OF VARIABLES COUNT
ENOLOOP
ENOSRCH
INSERT T"'E WA IT FLAG
AtMESSAGE PAR~ LIST)
CALL SUPPORT ROUTINE
CLEAR WAIT FLAG
CLEAR ACTION coDe
ENOSEG CPPIF40

3-82

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-79 (5 of 5). DPPPI F

01
01
01
02
01
01

01
02
01
01
01
01
02
01

01
01
02
01

01
01
01
02
01

THE FOLLOWING CODE hANDLES Pl/l PUTlOG RECUESTS
BGNSEG
LeAC A(ARRAY ~AME/NUMBER/lIST)
LOAD A(LOGHEACER/BLOCKLIST)
IF REG 0 CCNTAI~S A(BLOCKLISTJ
LOAC INCREMENT VALUE
ENDIF
CALL SERVICE
ENDSEG OPPIF44
THE FOLLOWING CODE ~ANDlES PL/I GETLOG RECUESTS
BGNSEG
IF ITS AN ARRAY NA~E
MOVE NAME AOOR TO lIST
ENOIF
LOAD A(GETlOG PARAMETER LIST)
CALL SERVICE
IF ITS AN ARRAY NAME
CLEAR ACDRESS F~CM lIST
ENOIF
ENOSEG DPPIF48
THE FClLOWI~G CeDE ~ANOlES Pl/1 CUMPlOG REQUESTS
BGNSEG
IF A LIST OF NA~ES OR NUMBERS OR
IF A NAME IS SPECIFIED
MOVE ~DCR TO lIST
ENOIF
LOAD A(DUMPlOG PARAMETER llSTI
CAll SERVICE
If A liST AODR
CLE~R ADDRESS FROM LIST
ENDIF

ENOSEG CPPIF52
THE FOLLOWING CODe HANDLES PL/I RECORD RECUESTS
RGNSEG

01
01
01

01

01

01
01

01
01

PICKUP LENGTH
INCLUOE 10
AlCAlA)

CALL suppeRT RGUTJNE
ENDSEG OPPIF56
THE FOLLOWING CODE ~ANOLes Pl/l PATCH WAIT REQUESTS
BGNSEG
AIEtS Te BE POSTEC)
WAIT FOR' SINGLE EVENT
lERO THE REGISTER
LOAD POST FLAGS AS RETURN CODE
CLEAR POST FLAGS FRCM COMP. CODE
ENOSEG DPPIF60

3-83

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-80. DPPSAMP1

OPPSAMPl MAIN SEGMENT 'SAMPLE PROGRAM PATCH ENTRY ROUTINE'
ISSUE SYSTEM MESSAGE 28
ENDSEGMENT OPFS.~Pl

01

Figure 3-81. DPPSASOC

, DOS ASYNCH~C~IS OFEN OR CLOSE'
GET ADDRESS OF INPUTS
INPUTS = ~({OAJ,WHICH CONTAINS OPEN/ClOSe SVC & PARMS
FUNCTICN = ASYNCHRONOUSLY OPEN/Close HAlf A DOS
GET ADDRESS OF PARM FOR OPE~/ClOSE
EXECUTE OPEN/CLOSE SVC
POST THE ASVNCH ECB
RETURN TO CALLER

Figure 3·82 (1 of 2). DPPSBFST

01

ot
01
02
01

01
01
Ot
02
0)
03
03
03
04

03
02

, BlDl/FINOCTVPE-O/STOW FOR A Des'
INPUTS: (A(UOCB),AIPARAMJ,ITYPE»)
IF THIS ODS IS Nor DUPLICATED, THEN
CALL THE APPROPRIATE SEGMENT FOR USER'S as DeB
ELSE
If T~IS IS READC~LY, ANO
IF STOW IS REQUESTED,THEN
SET RETURN CODE TO 32 ANO RETURN TO USER
END IF
SHARE THIS DOS
CALL THE AFPROPRIATE SEGMENT FOR THE PRIM~RY CDSDCB
If A~ ERRCR ON THE PRIMARY, TtEN
IF BACKUP IS IN-SERVICE, THEN
LOCK THIS Des
SWITC~ PRIMARY WITH BACKUP
U~lOCK & SH~RE THIS CCS
IF THE SWITCHCVER WAS GOOD, THEN
EXECUTE SVC FOR THE NEW PRIMARY
ENDlf

01

3-84

E~DIF

ELSE

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-82 (2 of 2). DPPSBFST

02
02
03
03
04
03
02
01

01

01
01
02
01
01
01
02
01
01
01
02
01

IF IT IS NOT BLOL, AND
IF BACKUP IS I~ SERVICE
PERFORM SVC ON BACKUp·DCB
IF AACKUP fAILED, THE~
TAKE BACKUP OUT-OF-SERVICE
ENDIF
ENDIF
ENDIF
UNS~ARE THIS DDS
ENDIF
RETURN TO T~E CALLER
BGNSEG
ISSUE A BLOl
IF THE BLOL FAILED, THEN
SET PROPER RETURN CODE
END I F
ENOSFG BlDL
BGNSfG
ISSUE fINO (TYPE 0 )
IF FIND FAILED, THEN
SET PROPER RETURN CODE
FNDIF
ENOSfG FIND
BGNSEG
I SSUE STO~ ( TYPE A )
IF STOW FAILED, THEN
SET PRCPER RETU~N CODE
ENDIF
E~DSEG

01
01
02
01
01
01
02
01

01
01
02
01

STO~~

BGNSEG
ISSUE STOW ( TYPE R •
IF STOW FAILED, THEN
SET PROPER RETURN CODE
ENDIF
ENOSEG STOWR
BGNSEG
ISSUE STOW (TYPE C )
IF STOW FAILEC, T~EN
SET PROPER RETURN CODE
END IF
ENDSEG STOWe
BGNSEG
ISSUE STOW ( TYPE C )
IF STOW FAILED, THEN
SET PROPER RETURN CODE
fNOIF
ENDSEG STowe

3-85

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-83. DPPSBF 1

, BLDl/FINO(TVPE-D) FOR A ODS'
INPLTS = $l=A(UCCB), $O=A(PARAM), $13=AISAVE-AREA)
IF FIND (TYPE-D) t THEN
01
RECC~PlEMENT UOCB PO(NTE~
Et\DIF
CAll INTERNAL BUllOl/FINO/STOW ROUTINE - DPPSBFST
RETURN TO CALLER
Figure 3-84 (1 of 2). DPPSCHCK

• DOS CHECK MODULE'

INPUTS: AtUSER'S OECB. - OECCCBAO FIELD POINTS TO
RESERVED DOSOECB
SEE IF USER'S OECS AND DDSOECB POINT TO

EAC~

OT~ER

IF THE UDECB IS C(N~eCTED TO THE
DDSOECB, AND
IF THIS DDSDECB IS RESERVED,
01
THEN
01
01
01

OOSS~ARE

THIS DOS

01
01

01
01
01
02
02
02
02
02
02
02

SEE IF THIS OOSDECB IS ATTATCHED TO THE
PRIMlRY DCB
IF THIS DDSOECB IS ATTATCHED TO
T~E

PRIM~RY

eta,

T~EN

,CAll OPPSCHK2 TO PERFOR~ AC1UAl C~ECK
RETURN PARM 1 PCI~TS TO UPCATED PRIMARY OEca
RETURN PARM 15 INDICATES NORMAL(3), EOOC1I, OR SYNADIO)

02

02
02
02
03
02
03

02
02
02
03
02
3-86

MOVE PRIMARY OECB TO USER'S
IF OSORG=CA
MCVE IN BCAM CECB
ELSE
MOVE IN BSAM CECB
ENDIF
IF OPENED FOR UPCATE, A~O
IF THIS IS A READ, THEN
GET AOCRESS OF BACKUP lOB
ENO,IF

oece

AREA

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-84 (2 of 2). DPPSCHCK

01
02
01
01

ELSE
ZERO RETURN CODE
ENDIF

01
01
01

RELEASE T~IS: CDSDt;C8

01
01

DOSUNSHARE

01

ELSE
ZERO
ENDIF

RETURN

THIS DOS

caOE

RETURN AS PER INDICATED IN
NCRMAL

ReTU~N

CODe TVPE-SYNAD,EOD, OR

IF EOD OR SYNAO TAKEN
If eCDT AKEN
SET RETURN ADDRESS FOR EOD
01
EL S E
02
SET RETURN ADDRESS FOR SVNAC
01
02

01

ENDIF

ENDIF
RETURN TO CALLER

3-87

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-85. DPPSCHK2

, CHECK A COSOECB - INTERNAL '
INPUTS = ( A(UCECB), A(PRIMARY DECBat A(IOA), A(CTLA1,
A(8ACKUP DECS»)
IF 110 WAS ST~RTED, THEN
01
01

SET SYNAO & EOO fCR CHECK

01

01
01

BRANCH TO OS/VS

ChECK PCUTINE

01

01
01
01

SEE IF SYNAO WAS TAKEN
IF SYNAO

kAS

TAKE~

01

02
02
02
01
01

02
02
02
02

CALL THE SYNAD UPDATE ChECK RCUTI~E
RETURNS ACDRESS OF PRIMlRY CECS IN $1 & RETURN CODE IN $15

T~EN

ELSE
SEE IF NCRMAl RETURN - I.E., NO EOo
IF ~rpMAl RETURN
IF BACKUP IS IN-SERVICE, THEN

02

03
03
02

THEN CAll

CHECK UPDATE ON BACKUP

END IF
ENOIF
ELSE
01
SET RETURN (DCE TO INDICATE SYNAD
ENOIF
RETURN TO CALLER

01

3-88

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-86. DPPSCHK3

, SYNAD RCUTINE FOR DOS C~ECK'
INPUTS =(A(PRIM~RY DECB), A(IOA), A(CTlA), A(BACKUP DECS))
IF BACKUP IS IN-SERVICE

THEN

SEE If ERROR WAS A DISK FAILURE

IF ERFCR IS ~ UNIT CHECK, OR
IF ERROR IS A C~ANNEl DATA CHECK,
01
A CHANNEL CONTRO~ C~ECKt CR
01
AN INTERF~CE CCNT~Cl CHECK,
01
THEN
/
01
IF ERROR IS BUS aUT PARITY,
01
EQUIPMENT CHECK,
01
DATA CHECK, OR
01
aVE RRUN, OR
01
IF ERROR IS PERMANENT ERROR, THEN
01
02
NCT A USER ERRCR SO SWITCH eVER IS CALLED FOR.
02
02
02
UNS~ARE l~E DOS
02
LeeK T~E ODS
02
02
02
02
02
02
02

SWITCH

PRIM~RY

WITH BACKUP

UNLOCK JHIS DOS

02

02

S~ARE

T~E

Des

02
02

02
03

IF 1/0 STARTED FOR NEW PRIMARY
THEN CHECK OECB(PRI)

03

03
03

SET

SY~AD

& EOO

AOC~ESSES

03

03
03
02
01

BRANCH TO 051 VS CliECK ROUT .INE
ENOIF
ENDIf
ENDIf

RETURN TO

CALLE~

3-89

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-87. DPPSCHK4

01

01
02
01

INPUTS = (A(fACKUP DECB),A(IOA),ACCTLA»
'CHECK A eACKUP DECB'
IF 110 "AS ST~RTED~ T~EN
CAll CS/VS CHECK ROUTINE
IF EeD OR SYNAD TAKEN, THEN
TAKE BACKUP GUT OF SERVICE
ENDIF
ENDIF
RETUPN TO C~lLER

f·\ 'ure 3-88. DPPSCHPR

'SET A(PRIMARY CECB) AND A(fACKUP DECS.·
INPUTS

=

(A(CCSCECB),A(PRIMARY [CBIJ

OUTPUTS = S15 = A(PRIMARV DECB) OP ZERO
SO = ACeA(KUP DECal OR MEANINGLESS
OECBl IS PRIMARY
SET PACKUP ADCRESS TO DECBZ
ELSE
IF DECB2 [S PRIMARY
SET BACKUP ~DCRESS TO DECBI
ELSE
INDICATE NO PRIMARY CECf
END IF
ENDIF
IF

01
01

02
01
02
01

3-90

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-89. DPPSCLUP

'DDS CLEA~ UP ~OUTINE'
INPUTS: REGISTER
CONTENTS
o
-~(TCeX)
IF ENTERED F~CM DPPTPMON
-A(TCS) IF ENTERED FROM PORJECTED OIS ETXR ~OUTINE
1
A(XCVT»
2-12 NCT EXAMINED, SAVED & RETU~NED
13
C~LlER'S SAVE AREA
14
CALLER'S RETUPN AOCRESS
15
THIS ROUTINES ENTRY PCINT
FUNCTICN: CLEAN UP THE DDS FUNCT[ONS LEFT OUTSTANDING
BY THIS TASK

01

01
02
01
01
01

01
Ot
02
02
01
01
01
01

GET lS'T TC BC
STRTSRCH
EXITIF
ORELSE
ENDlOCP
ENDSRCH
IF THIS TASK HAS A OOSLOCK, T~EN
RELEASE T~E ODSLOCK
ELSE
IF THIS TASK SH~RES A DOS
U~SHARE THAT CDS
ENDIF
ENOl F
WHILE T~ERE ARE MeRE DDSOECBS T-CHAINED
REMOVE THESE OOSOECBS FROM THEIR lOA CHAINS
REMOVE THESE CDSOECS'S FRCM T~EIR T-CHAIN
ENDOO
WHILE T~ERE ARE MORE lOA'S FOR THIS TASK
FROCESS TER~I~ATr(~ CF THESE lOA'S
WHILE THERE ARE MORE RSRVD DCSDECBS
FOR THIS IrA
~EMCVE THESE COSOECBS F~OM THE T-CHAIN CF THE CWNER TASK
ENODO
DrSCC~NECT'THIS ICA FRCM THE eTLA
RESTORE USFR'S DCB TO PRE-ODSCPEN STATUS
FRFE T~E CORE FOR THIS IDA
ENDDO

CLEAR THIS TASKS

IC~

CHAIN CRIGIN

3-91

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-90. DPPSCL 1

CLOSE A DeS I
INPUTS
$1 - (A(UDCB))
SAVE INPUTS
GET ACCRESS OF USERS DeB
SEE IF THIS IS A DDS
IF NOT /J CDS
RESTORE REG1
ISSUE CLOSE SVC
ELSE THIS IS A DDS
GET A(DOSICA)
IF PRIMARY DCB OPENED, THEN
CleSE DCB1
I

01

01
01
01
02
01
01
02

01
01
01
01
01
01
·01
01
01
02
02
02
01
01

3-92

ENDIF
IF BACKUP DCB IS OPENED, THEN
CLOSE CC82

ENDIF
PREPARE
STAlLS
RESTORE
RESOTRE
RESTORE
RESTORE
STATUS

TO RESTORE UOCB TO PRE/OPEN
UDCB
UCCS
UDCB
UDCB

BUFCB WORD
OFLAGS WORD
CPTICN CODE WORD
NGTE/POINT/CNTL WORD

UNTIL

All ODSOECBS ARE CfECKEC
IF THIS CDSDECB RESERVD,THEN
ENDIF
ENDOO
FREE UP ThE DOS lOA SPACE
ENDIF
RETURN TO CALLER

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-91 (1 of 2). DPPSCMPR

• CCMPARE FOR DeS'
- TO INVCKE THE IEBCCMPR MODULE TO PERFORM
A CC~PARE (~ A COS
INPLTS - $1 POINTS TO A(eTlA), A(DDNAME1), A(ODNAMEZ.
OUTPUTS - MESSAGES INDICATING C(MPARE STATUS
ROUTINES CALLEe - LINKS TO IEBCCMPR
RETURN ceDE - NeT SET
PRERECU(SITES - REQUIRES A COSCMPIN 00 CARC IN ThE JeL
TO HOLe IEBCCMPR'S INPUT
FUNCTIC~

MOVE T~E DC~AMES FR(~ THE INPUT OSECT TO
FOR IEBCOMPR AND TO THE RDJFCB DeBS
ESTABLISH T~E AOCRESSES Fap
IN THE ROJFCR DCBS

T~E

T~E

OOhAME LIST

EXIT LIST AND JFCB AREAS

READ THE JFCBS

IF

01
01

THE RETURN CODE IS NZERO, EXIT WITH THE
'UNABlE TO ACCESS OATASETS'
ENDIF

E~ROR

MESSAGE:

MOVE T~E DSCRG (PS CR PO) Te T~E TYPORG ceNTROl CARD FOR
IEBCOMPR, OPEN ODSCMPINt PUT THE CONTPOl (~PO RECORD, AND
CLOSE AND FREEPOOL DOSCMPIN
NOTE: IF T~E TYPCRG'S ARE NCT E'UAL EXIT hlTH
THE ERROR MESSAGE:
'CATA SETS NCT THE SAME TYPE'
IF THE DDSCMPIN DCB CANNOT BE CPENED EXIT
WITH THE ERROR MESSAGE:
• NO DDSCMPIN DC CARD'
If

BPA~

01

SET TVPORG TO PO
ELSE
01
SET TYPEORG TO PS
ENDIF
IF DSORGS NOT EQUAL
01
EXTT ~ITH ERROR MESSAGE
ENDIf
IF NO DDSCMPIN 00 CARD
01
EXIT ~ITH E~POR M~SSAGE
ENDIF
3-93

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-91 (2 of 2). DPPSCMPR

OUTPUT MESSAGE: 'ODS COMPARE IN PROGRESS'
LOCK THE CDS
LINK TO THE

IEBCG~P~

MODULE

SAVE THE RETURN CeDE AND UNLOCK TNE DOS
EXAMINE THE IEBCC~PR RETURN CODE AND EXIT WITH THE APPROPRIATE
MESSAGE:
RC=O - 'CCMPA~E ENDED OATASETS EQUAL'
RC NE 0 - 'CCMPARE ENDED - [ATASETS NOT E~UAL'

*: T~E ceNCODE IS ZERO, THEN
PRINT CCMPARE EQUAL MSSGE
ELSE
IF *: IF ceNCODE GREATER THAN 8, THEN
PRINT STAT~S UKNOWN
ELSE
PRINT UNEQUAL MESSAGE
IF

01
01
02

01
02
01

ENOIF

ENDIF

3-94

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-92. DPPSCP28

• COpy A ODS PRIMARY TO BACKUP'
INPUTS = 'FRCM' START, 'FRCM' STOP, 'TO' START.
A(OPENED INPUT DCBI,
A(CPENEO OUTPUT OCB),A(DDNAME»)
GET A BUfFER LARGE ENOUGH TO HOLD A CCMPlETE TRACK, 13600 BlTES
GET

T~E

1ST FROM & TO TRACKS

STRTSRC~

01
01

T~ERE

ARE

~(

MORE TKS

COpy TRACK TO TRACK:
TO DCB, A(BUFFER)

PARMS = fROM CCHH, FROM OC8, TO CCHH,

01
01

01

EXIT IF COpy WAS UNSUCCESfUL

01

EXITIF COpy WAS NOT SUCCESSFUL
QRElSE
01

GET NEXT FRCM & TO TRACK

01

ENOLOCP
01

SET

T~E

RETURN eOCE TO

ZE~O

01

ENDSRCH
FREE THE TRACK BUFfER
RETURN TO CALLER
BGNSEG !14 HAS CCHH TO BE I~CREMENTED
01
IF NEED TO GO TO ~EXT CYLINDER
02
GO TO NEXT CYLINDER
01

ENotF

ENOSrG BMPTRK

$14 rAS INCREMENTED CCHH

3-95

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-93. DPPSCRBK

01
01
01
01
01
01

01
01
01
01
02
02
02
02

02
02
02
02
02
02
03
02
01
01
01

01
02
02
02
02
02
02
01
01
02

'CREATE A DOS BACKUP'
INPUTS = (A(CTlA))
IF BACKUP IS CUT-OF-SERVICE.
UPDATE THE BACKUP OSCB
SET A(ARJFCBJ IN PRIMARY rCB
SET A(JFCB) IN ARJFCB
SET A(JFCB) IN CAMllST AS OSNAME
SET A(VOl SER NO WITHIN JFCB) IN CAMLIST
SET A(OSCB) IN CA~LIST
MOVE IN PRIMARY OONAME
MOVE IN eACKUP CCNAME
READ THE JFCA
IF JFCB READ IN O. K.
GET THE PRI~ARY OSCB
MOVE IN DSORG
MOVE IN RECFM
~CVE IN CPTCD
MOVE IN KEYLEN
MCVE (N elOCK SIZE
MOVE IN RECORD LENGTH
OPEN AND CleSE FOR OUTPUT T~E BACKUP
Dce SO AS TO UPDATE THE osee
IF
SET MACRF TO WI
ENDIF
ENDIF
CALL OPPSCP2B TO CCPY PRIMARY TO BACKUP
IF THIS DOS [S ~CT OPEN, CR
IF IT IS NOT OUTPUT, THEN
GET THE ADDRESS OF THE VOLID OF PRIMARY IN $9
MOVE lHE CCHHR OF THE PRIM'RY osee TO THIS PROGRAM'S WORK AREA

01

02
03

03
04
04
05
04
03

CAll DPPSCSC8 TO UPDATE THE BACKUP OSCB TO HAVE THE
CURRENT TTRLl I" OSlLST~R (LAST RECORD PC1NTER AND NO. BYTES
LEFT ON THIS TRACK)
END IF
IF COpy FAILED, THEN
SET RETURN ceDE AS SUCH
ELSE
IF THERE IS AN ICA, THEN
C~Ll OPPSGPCl TO ASYNCHRONOUSLY OPEN THE BACKUP DCB
IF OCR NCT OPENED FOR INPUT,
CALL OPPSRCIC TO RECREATE T~E 1/0 ON THE BACKUP
IF 8PAM DATASET
SET eACKUP DCB1S ~E~8ER TTR TO PRIMARY'S
ENDIF
E~DIF

02
01

ENDIF
END IF
ELSE
01
UNABLE TO
ENDIF
3-96

CC~PlY,

PRINT

B~CKUP

IS IN-SERVICE

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-94 (1 of 4). DPPSCT2T

, Cnpy TRACK TO TRACK '
INPUTS= 'FRCM' CC ...... , 'TO' CCHH, INPUT CCBIOPENEO),
OCTPUT OCB(OPENEO), A(BUFfEP) TO HOLD TRACK

01

THE fIELDS IN

T~E

'FRCM' 108

*

CC~PLETE

*

SET CATA ADDRESS IN EACH CCW OF THE CHANNEL PROGRAM

******
****

UNTIL THE LAST CCw IS SET
SET ACDRESS IN CCW
ENCDO

*** •••

THE ECa

*

CLE~R

*•

READ INTO CORE THE COUNT FIELDS FOR All RECORDS
(EXECUTE 'FROM' IDe CHANNEL PROGRAM)

*
*

WAtT ON THE ECB

**.*.*

SEE IF THE CHANNEL PROGRAM TERMINATED WITH 'RECORD
NOT FOUND'

*

IF COMPlET{CN CODE IS UNSUCCES
IF SENSE BYTES INDICATE RNF
. If UNIT CHECK IN CSW
SEE IF RECORD 0 WAS READ IN; IE; IS 1S T CCW COMPLETE

01
01

*

01

IF RECORD

~O

W~S

READ

I~T(

CORE

01
02

02
02
02
02

*

*

•

TURN OFF CCMMAND CMAINING FLAG FOR CCW PRIOR TO
fAILING CCW
C~ANGE ALL CHAINED READ COUNT COMMANDS TO READ
CCUNT, KEY, & tATA COMMANDS

02
02
02

*

02

CALCULATE FOR ALL CHAINED READ COUNT ((hS T~E COLNT
VALUES AND CATA ADtRESS VALUES FROM THE CORRESPONDING
COUNT FIELDS READ INTO (ORE.

02
02
02

02
03
03
03
03

02

WHilE Tt-E CCW IS CHAINED
SET NEW CO~~AND CODE & DATA ACORESS
CALCULATE NEW DATA AOtRESS FOR NEXT tCW
SET COUNT FOR THIS CCW
GET NEXT CCW
E"ODO

3-97

LICENSED MATERIAL - PROPERTY OF IBM

=igure 3-94 (2 of 4). DPPSCT2T

02
02
02
02
02

03
03

03
03
03
03
03
03
03
03
03

03
03
03
03
03
02
03
03
03
03
04

STRTSRCH NEXT CCW ISN'T CHAINED

*

CLEAR THE EeB

•

REBUILD THE lOB

*•

READ IN ALL CATA FROM TRACK UP TO EOD; IE; EXECUTE
CHANNEL PROGRAM

*

WAIT ON THE EeB

*•

SEE IF CHA~NEl P~OGRAM TERMINATED WITH EOD.
IF NOT, EXIT THE SEARCH

EXITIF NOT UNIT EXCEPTICN
IF NOT PERMANENT ERROR
GET CURRE~T CCW ADDRESS
IF NOT EOD - POSITIVE DATA LENGTH
SEE IF

*

04

IF NCT,

04
03
04

E~ROR

CHA~NEl

PRCGRAM COMPLETED SUCCESSFULLY

EXIT

O~ELSE

04
04

04
04

*

CHANNEL PROGRAM ENDED CN AN EOD

*

SET ADCRESS OF NEXT CCW IN DATA FIELD OF 2ND TIC CC

*

SET AotRESS OF CGUNT DATA IN DATA FIELD OF SEARCH I

*

RESET START POINTER FOR 108 REBUILC TO SEARCH 10 CC

04

04
04
04
04
04
04

SEE IF NEXT CCW IS CHAINED

:)4

04
03

Ef\DlOCP
fNDSRCH

J3

03

la98

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-94 (3 of 4). DPPSCT2T

03
03
03
03
03
03
03
03
03
04
04
04

03
03
03
03
03
03
03
03
03
03
03
03
03
03
03
03
03
03
03
03
03
03
03

03
04
04
04
03

04
04
04
03
03

03
03
03

•

COMPLETE TRACK SHOULD NeW BE IN BUFFER

CHANGE ALL CHAINED READ COUNT, KEY, & DATA CCWS
TO ~RITE COU~T, KEY, £ CATA,
•
AND SET THE 'TO' ACDRESS IN THE CYLINDER ADDRESS OF
*
EACH SUCH CCW.
THIS CCW IS CHAINED
SET THE CCM~~ND CODE TO WRITE CK&CATA
MOVE IN 'TO' CYLINDER ACDRESS
GET r.,EXT CCW
Er.,OCO
~HILE

T~E CYLINDER ADDRESS OF RO C(UNT AREA
TO THE 'TO' ADDRESS

C~ANGE

*

COMPLETE THE lOB FOR THE WRITE EXCP

SET UP THE WRITE

CHA~NEL

PROGPAM AS FOLLOWS:

(1) SEARCH 10 EQUAL O~ THE COUNT FIELD OF RO.
IF NO CArA IS TO BE WRITTEN
EXCEPT FOR RO, THEN SKIP TO (4)
(2) WHEN FOUND, TIC Te T~E 1ST WRITE COUNT, KEY,
& DATA CCW, WHICH (S ALREADY CHAINED TO ThE
NECESSARY STRING OF SUC~ CCWS.
(3) C~AIN T~E LAST CHAINED WRITE CGU~T, KEY, &
tAT A CCW TO SEARCH 10 EQUAL ON THE COUNT FIELD
(1.1)

Of RO.
(4) W~EN THE SEARCH IS SATISFIED, TIC TO THE LAST

CCW, WHICH

S~CUlD

BE

~

WRITE CATA FOR RC.

IF AT LEAST CNE
NGN-RO D~TA RECORD
IS Te BE WRITTEN, ThEN
SET UP 2ND SEARCH 10 GN RO
ELSE
GET ACWRITE RO) TO BE BUILT
SET THAT ADDRESS AS TIC ADDRESS
AFTER SEARCH (D ON ~O IF GOOD
E~DIF

•

CLEAR TrE ECB

3-99

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-94 (4 of 4). DPPSCT2T

03
03

•

WRITE OUT THE TRACK; IE; EXECUTE THE CHANNEL PROGRAM

*

WAIT eN THE ECB

*
*

SEE

*

IERC THE RETURN CODE

03
03
03

03
03
03

03
03
03
03
03
02
03
02

01
02
02

01
01

IF

T~E

C~ANNEL

PROGRAM CCMPLETED SUCCESSFULLY

IF NOT, ERROR EXIT

ELSE

UNABLE TO READ RECCRD 0 - SET RETURN CODE TO 12
ENCIF
ELSE
UNABLE TO READ THE COUNT FIELDS - SET RETURN ·CODE

*

ENDIF
RETURN TO CALLER

3-100

=8

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-95. DPPSDDSX

01
01
01

02
01
01
01

'SEARCH FOR AN leA FROM A GIVEN UCCS'
INPUTS =(A(UDCB»
GET ST~RT & STOP OF CTLAS
STRTSRCH
WHILE THERE ARE STILL ODSCTlAS, DO
EXITIF
IF CORRESPONDING lOA FOUND
ORElSE
GET NEXT CTLA
ENOlCOP
ENCSRCH
RETURN TO CALLER

3-101

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-96. DPPSINIT

01
01
02

01
01

01
01

01
02
01

01

01

'INITIALIZE THE DOS SYSTEM'
ADDRESS OF XCVT
FILL CUT TEMPORARY
DR 846 *
CTLA ~ITH
DR 846 *
DCNAMES AS PER CTlIN STREAM
(F UNABLE TO OPEN
DR 846 •
DDSTATUSt OR
DR 846 *
SET FLAG FOR NOSTAT MESSAGE
IF *: ThERE ARE NO CEClARATIONS
SET END = START
ELSE
IF ERROR IN CTlIN STREAM
ABEND WITH CODE = 80
ENDIF
DETERMINE THAT EACH DDS
OECLARAT[CN IS COAREeT
WRT JCl
IF BAC DDS DECLARATION
ABENO WIT~ CODE = 80
ENDIF
ENOIF
ALLOCATE DCSCTLA t MOVE
TEMPORARY eTLA INTO IT.
SET T~E ooseTLA AOO~ESS
IN THE SCVT
IF ERRO~ IN DOSCTlA ALlOCATICN
ABEND WITH CODE = 80
ENDIF
CALCULATE MAX BLKSlE DR 846 *
SET ~AX BlOCKSIZE IN DDSCTl~D FOR WRST
IF THIS (S READONlY
DR 846 *
MODE, T~EN
OR 846 •

01

01

CR 846 •

TURN eN READCNlY BIT
DR 846
ELSE DR 846 *
01
CAll TO WRITE DDSTATUS
END IF DR 846 •
IF NOSTAT MESSAGE REQUIRfD, THEN
01
OUTPUT THE ~ESSAGE
ENDIF
RETURN TO CALLER

3-102

*

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-97 (1 of 2). DPPSINI2

01
01
01
01
01
01
01
01
01
01
01
02
02
02
02
03
03

03
03
03
03
03
03
03
03
03
03
03
03
03
03

04
03

02
03
02

01
02
03
03
02
01

'PROCESS THE (TLIN STREAM'
INPUTS = (A(CTLA),MAXDDS)
OPEN T~E INPUT STREAM
IF *: INPUT STREAM SUPPLIED,
GET LENGT~ OF EACH CTLA
OR 846 •
MULTIPLY BV ~AX NC. CTLA'S TO GET
DR 846 •
MAX BlOCKSIZE FOR DDSTATUS
DR 846 *
SET IN DDSTATUS DCB
OP 846 •
GET THE 1ST CARD
DR 846 *
GET 1ST PARM
DR 846 •
SET READONLY FLAG ON
OR E46 •
IF ',OR READONLY WAS
DR 846 *
SELECTED, OR
OR 846 *
SET REAOONlV BIT CFF
IF REFRESH ~AS,
DR 846 •
SELECTED, THEN DR 846 •
SET UP THE CaSCIlA'S AS PER DDSTATUS CATASET
OPEN DDSTATUS DR 846 *
If CDSTATUS OPE~ED
OR 846 •
CK, T~EN
DR 846 *
CHECK T~E REAC
DR 846 •
GET ADDRESS OF lOB
DR 846 •
GET MAX BLOCK SIZE
DR 846 •
SUBTRACT BYTES NOT READ TO
OR 846 •
GET ACTUAL ODSTATUS RECORD
OR 846 *
LENGTH
OR E46 •
SET ADDRESS OF END OF. DDSCTLA'S DR 846 *
CLOSE DDSTATUS
DR 846 •
CLOSE T~E INPUT STREA~
OR 846 •
INDICATE NOR~Al RETURN CDCE
DR 846 •
SET RETURN REG 1 TO ADDRESS OF
CR 846 *
END OF CTlA'S
DR 846 *
INDICATE REfRESH IN RETREG 0
OR 846 *
IF REAOCNlY SPECIFIEC,T~EN DR 846 •
INDICATE READCNLY IN RETREG 0
DR 846
ENDIF DR 846 •
ELSE OR 846 *
INDICATE UNABLE TO OPEN OCSTATUS
DR 846 •
ENOIF OR 846

DR 846 •

*

*

ELSE DR 846 *
UNTil *: ~AXIMU~ CHECKED
PROCESS THIS CARD
tET NEXT SLOT IN eTLA
ENODO
ENDIF

3-103

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-97 (2 of 2). DPPSINI2

01
02
02
02
01
01

01
01
01

BGNSEG
ClCSE THE INPUT STREA~
ACCRESS OF END OF CTlA
INDICATE STANCARD START MODE
DR 84~ *
ENDSEG CARDEOD
ELSE
RETURN WITH CCNCCDE = 4
END IF
RETURN TO CALLER
BGNSfG DR 846 *
THIS SEGMENT RETU~NS THE PROPER RETURN CODE O~ SYNAD OR EOD DR 846
OFF ODSTATUS READ
DR 846
CLOSE DOSTATUS
ENDSfG SVNEOD
DR 846 *

Figure 3-98. DPPSINI3

01
01
01

01

01
01

Ol

'VALICATE EAC~ COS DECLARATION WRT Jel'
INPUTS = (A(CTlA),A{CTLAENO)
SET T~E ADDRESSES FOR READ JfCBS
WHILE THERE ARE MO~E eTLA'S
MOVE IN DDNAMEl
MOVE IN OC~AME2
R EAC THE JFCB S FeR EACH DCB
ERROR IF NC CO CARD
INSEPT OTHER JFCB VALIDITY C~ECKS HERE
CLEAR THE JFCBS
GET NEXT eTLA ENTRY
ENDDO
DOS OECLARATICNS PASS VAL C~ECK
RETURN TO CALLER

3-104

*

*

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-99. DPPSINI4

'AlLOCATF AND INITIALIZE

PE~MANENT

CDSCTlA'

GET ACCRESS OF seVT
CALCULATE LE~GTH CF CTLA
SET LENGTH OF DCSCTl

FOR GETMAIN
ALLOCATE COSCTLA SPACE
SAVE CDSCTLA START ADDRESS
CLEAR CCSCTLHD IN ITS ENTIRETY
GET ACC~ESS OF 1ST ENTRY
IN ODSCTL
ADDRESS OF END OF ooseTlA
STORE THESE TWO ADDRESSES IN DDSCTlA MDR
LOAD 1/0 ROUTINES & SAVE TrEIR ADDRESSES
GET ADDRESS OF OPPSNTPT
GET ODS NOTE ~CUTINE
SAVE ADDRESS IN NTPT
GET POINT/FINCCTVPE C) ROUTINE
SAVE ADDRESS IN NTPT
GET DOS SHARE ROUTINE
SAVE ADDRESS IN CTL~D
GET DOS UNSHARE RCUTINE
SAVE ADDRESS IN CTL~D
GET DOS LOCK ~OUTINE
SAVE AOCRESS IN CTlHO
GET DDS UNLOCK ~CUTINE
SAVE ACCRESS IN CTl~D
ADORE SS OF
ODSeTLA IN
SCVT
RESET START eTlA ADDRESS
IF

01
01

ANY DeS' WERE DECLARED, THEN
MOVE eTLA INTO DDSCTLA

ENOIF
RETURN TO CALLER

3-105

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-100. DPPSINI5
'DEFORM~T T~E CTLIN CARD'
INPUTS=(A(C~ROt~A(E~O)tA(CTlA)1

01
01
01

01
02
02
01

01
01

CLEAR THE DDNAMES
ZERO REMAINDER OF CTLA ENTRY
FIND 1ST NON-8lA~K CHARACTE~
IF *: A USER DONAME WAS ENTERED
GET T~E USE~S DCNAME
MOVE IN USER'S DO~AME
FIND NEXT NCN-BlA~K CHARACTER
ENDIF
START OF DOS PAIR ~AMES
GET NEXT NON-BLA~K CHARACTER
GET T~E 1ST DO~AME
MOVE IT TO, THE CTlA
IF ',THEN MCVE IT TO UOON ALSO
ENOIF
GET 2 NO DDNAM,E
If BACKUP IS OUT-OF-SERVICE
If ',THEN
THE REQUEST IS FORMATTED WRCNG, T~EN
ERROR EXIT
ENOlf
SET BACKUP OUT-Of-SERVICE FLAG ON
ELSE
ERROR EXIT IF NCT FORMATTED CORRECTLY
ENOIF
BGNS EG

01

SET RETURN REG TO ADDRESS Of NEXT DEllMETER
ENOSEG FINOP

Figure 3-101. DPPSINI6
'OEfI~E

LOCKS FOR

E~CH

INPUTS
01

=

CTLA'
A(CTlHO),A(XCVTJ

WHILE THERE ARE MeRE CTLAS
DEFINE A LOCK FOR THIS DOS & CLEAR THE
ENDDO

3-106

lOCK/S~AR

WORDS

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-102. DPPSLOCK

• LCCK A CDS •
GET ACORESS OF,eTLA
GET ACtRESS OF ECB
CLEAR THIS lECB
WHILE THERE ARE MORE lECBS
BGNWHllE
01
GET ~EXT LECB
ENDDD

PUT T~IS LEce IN CrAIN
IF THERE ARE SECBS, OR
IF THERE IS A PRIOR LOCK
01
WAIT ON THIS ECB
ELSE
01
lET CALLER ~AVE ceNTROl NOW
END IF

Figure 3-103 (1 of 3). DPPSMSGI

01
ot

01
01
02
03
02
01
01
02
01
01
02
01
02
01

'OOS INPUT MESSAGE FROCESSOP'
INPUTS = (A(XCVT),A(RESTBL),AIPPCBLa)
PReSL = (CLG"IO),(L,AI1ST-FAPM», ••• ,(l,A(lAST-PARM»))
IF THERE IS A PARM 1, THEN
MOVE IN THE 1ST P~RM
END IF
IF OSNA~E CODED, T~EN
SKIP eVER KEYWORD
ENDIF
IF THIS DOS NOT DECLARED, THEN
E~ROR MESSAGE
ELSE
IF A 2ND PARM WAS ENTERED
IF A 2ND PARM, THEN
MCVE IN THE 2~D PARM
END IF
ENOIF
IF ',THEN NC PAR~2 ENTERED
DEFAULT TO STATUS
ENDIF
IF RE~UEST NCT UNDERSTCOO, THEN
ERROR MESSAGE - REQUEST NOT UNDERSTOOD
ELSE
PROCESS THE REQUEST
ENOIF
ENOtF
BGNSEG

3-107

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-103 (2 of 3). DPPSMSGI

01
Ot
01
02
01

02
03
03

03
02
03
04

03
04

03

02
01
01
02
02
01
02
01

01
02

02

01
01
02
02
02
02

03
02
03

TAKE THE BACKUP OUT-OF-SERVICE
ENOSEG lAKE
BGNSEG
ATTE~PT TO CREATE T~E BACKUP
IF T~IS IS REACCNlV MODE
OLTPUT NO COpy MESSAGE AND RETURN
ELSE
IF

THE CREATE wAS SUCCESSFUL, THEN
PRINT MESSAGE INDICATING SUCCESSFUL CREATE
UPDATE DDSTATUS RECORD
ELSE
IF BACKUP IN SRVICE,T~EN
PRINT MESSAGE INDICATING BACKUP ALREADY IN-SERVICE
ELSE
PRINT MESSAGE INDICATING BAC CREATE
E"DIF
ENDIF
END IF
ENDSEG CREATE
BGNSEG
IF
T~E BACKUP [S IN SERVICE, THEN
PRINT A MESSAGE FOR eOT~ CATA SETS
ELSE

PRINT A ~ESSAGE FOR PRIMARY OATASET- eACKUP=OUT-OF-SERVICE
ENDIF
ENOSEG STATLS
BGNSEG
IF
T~E BACKUP IS NCT IN SERVICE, T~EN
PRINT A ~ESSAGE INDICATING SWITCH NOT PCSSIBlE
ENDIF
ENDSEG SWITCH
BGNSEG
IF NO OPENED DCSCCB'S
SEE IF A THIRD DO NAME kAS SPECIFIED
STRTSRCH T~REE BlA~KS ENCOUNTERED
EXITIF NC REPLACEMENT SPECIFIED
ORElSE
C~ECK NEXT PARM

04

04
03

3-108

E~DLOCP

IF
THE REPLACEMENT OONAHE EXCEEDS 8 CHARACTERS, THEN
LIMIT ~EPlACEMENT OCNAME SIZE TO 8 CHARACTERS
ENDIF

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-103 (3 of 3). DPPSMSGI

03
02
02
02
01
Q2
02
01

01
02
02
01
01
02
02

03
02

02
03
03
04

03

02
01

01

M(VE IN REPLACEMENT OCNAME
ENDSRCH
SET T~E NEW OCNAMES IN THE CTLA
UPD~TE CCSTATUS RECORD
EL SE
PRINT A MESSAGE INDICATING REPLACE REQUEST IS PRECLUDED BY AN
OPEN Dosecs
FND IF
ENOSEG REPl ACE
BGNSEG
IF
A P~RAMETER CAN EXIST, THEN
SEARCH fOR A BLANK, WHICH GETS THE PARAMETER
END IF
ENDSEG FINDP
BGNSEG
IF ANOTHER PARftI ENTERED
IF THIS PARM IS NOT NULL, AND
IF ',THEN 1ST CHARACTER NOT A BLANK
MCVE IN USER SPECIFIED DOl
ENDIF
IF ANCTHER PARM ENTERED
(F PARM IS NOT NULL
IF ',THE~ 1ST CHARACTER NOT A BLANK
MOVE IN USER SPECIFIED 002
ENOIF
ENDlf
ENDIF
LtNK TO CC~PARE ROUTINE
ENDSEG CCMP~RE

Figure 3-104. DPPSMSGO

'DOS MESSAGE OUTPUT PROCESSCR'
INPUTS : (IC,~{PAR~l), ••• ,A(lAST PARM)I
(F

01
01

MAX=5

t

THE OUT MESSAGE PROCESSOR IS INITIALllEC, THEN
ISSUE THE APPROPRIATE MESSAGE MACRO
ENDIF

3-109

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-'105. DPPSNOTE

NOTE ON A CDS •
INPUTS $1 = A(UDCB)
SAVE $1
GET A[CRESS Cf IDA
ISSUE NCTE CN PRIM~RY DeB
'PERFC~~

Figure 3-106. DPPSNTPT

• NOTE OR PCINT FOR ODS'
CALL THE NOTE OR POINT ROUTINE FOR PROCESSING

3-110

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3·107. DPPSOPCL
OPE~/ClCSE HALF nF A ODS'
INPUTS = (A(IOA))
SAVE INPUTS
GET ADDRESS CF lOB
GET ACCRESS OF CVT
GET ACCRESS OF CURRENT TCH
GET ADDRESS OF CPENER TCR
IF THIS IS CPENER TeB
EXECUTE THE CPE~/CLCSE SVC FRCM lOA
SET ZERO RETURN CCDE
ELSE
SAVE RESU~E PSW
VALICATF THAT OPENER reB IS STILL DEFINED UNDER THIS JOB STEP
GET JUA STEP rCB
THIS ~ALICATICN ALGORITHM ASSUMES THAT
THF JOB STEP TASK PRIORITY IS GE
TO r~E ~IG~[sr PR[CRITY CF ALL CAUGHTER
TASKS
STRTSRC~ T~fRE IS A LOWER TCB
EXITIF OPE~ER TCB FOUND
IF rCB 1\40T IN SA,"1E JOR STEP
SFT RTN Cr,OE AS BAC
Ef\D IF
ORELSE
GET NEXT LCWER TCB
ENOLDOP
ENOSRCH
IF OPENER Tce IS STILL VAllO
GET ADDRESS OF ODS ASYNCHRCNYS
UPEN/CLCSE RCUTING
CREATE IRS FeR CLOSE
SAVF THE IRS AOORESS
GET ACDRESS OF WORK AREA (IOE)
CLEAP T~F ICE
PUT AOOQESS CF lOA IN ICE
PUT ACDRESS rF IRB IN ICE
PUT AOCRESS OF CPENER TeB IN IQE
CLEAR T~E ~ECB
CALL ST~CF2 EXIT EFFECTOR
RESET ThF PS~
WAIT ON ASYNCb ECB
SET IERC RETURN CODE
ELSE
RESFT r~f PSW
SET PETU~N CODE FOR UNABLE TO CeMPlY
ENDIF
ENOIF
t

01
01
01
01
01
01
01

Ot
01
01
01
02
03
02
01
02
01
01
01
O~

02
02
02
02
02
02
O?

02
02

02
02
02
02
01

02
02
01

3-111

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-108. DPPSOP1

• CPEf\; A CoSCC8'
INPLTS
SEE

A(CfEN

PARt~ETfRS)

=

«((PTION BYTE1,Al3(USER'S DeB))

IF THIS IS A CECLARED DOS

IF THIS

01

=

IS

PERFORM

~CT

A .DE(lARfO COS
CS/VS OPEN

ST~NDARr

01

01
Ot
02

ELSE
IF

T~IS IS REACr.NlY MonE, AND
OPEN FCR CUTPUT, T~EN
REILPN TO USER ~ITHCUT tPEN
ENO(F
I~

01
01

01

DDS LOCK THIS DDS

J1

01

IF

02

T~IS (TLA
CONNfCTEO

~AS

NCT YET BEEN

O~

CALL rp2 TO

02

C(~PlETE

THE CUAl OPEN

02

07

A(CFTIC~

02
01
01

fNOIF

01

ODS UNlCCK

01

01
ENDIF

3-112

tJYTE),~(USER'S

T~IS

Des

DCB),A(CTlA),A(CTLHO)

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-109 (1 of 2). DPPSOP2

'OPEN A OEClAREC DeS'
INPUTS

GET
01

T~E

= A«(PT[CN

~AIN

01

01
01
01

CCRE FeR THE leA TO BE BUILT

IF NCP SHCULB BE 1
SET NCP VALUE TO 1
ENDIF
INITIALIZE

01
01

BYTE), A(USER'S OCBI, A(CTLAa, A(CTlHOJ

T~E

DDSICA

UNTIL
THE ENTIRE AREA [S CLEARED
CLEAR THE NEXT 256 BYTE PORTION
ENDOO
IF STILL MORE BYTES TO CLEAR
CLEAR THOSE BYTES
ENOIF
IF THIS IS A BPAM OS, OR
IF THIS I S A BSAM OS, AND
IF THIS IS NCT CRE~TE BCAM,
FORCE T~E PCI~T CPT ION
ENDIF
UNTIL ALL ODSOECBS ~RE CONNECTED
CONNECT THIS COSOECB
GET NEXT DOSOECB
ENDDO
CONNECT THE eTLA WITH THE IDA
ATTEMPT TO OPEN PRIMARY CCB

IF DCBl OPE ~ED OK
01
01
02

IF BACKUP IS IN SERVICE

ATTEMPT TO

OPE~

BACKUP DCB

02

02
02

IF DCB2 FAILED TO OPEN

02

3-113

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-109 (2 of 2). DPPSOP2

03
03
03

TAKE BACKUP

CUT-OF-SE~VICE

ENOIF
ENDIF

02

01
01

ELSE

01
01
01

OCBl FAILED TC (PEN
ERROR If BACKUP
OUT-Of-SERVICE

*:

01
01
01

SWITCH PRIMARY WITH BACKUP & TAKE BACKUP QUT-Of-SERVICE

01
01
01

01
01

01
01

ATTEMPT TO OPEN PRIMARY DCB
ERROR IF ece
FAILED TO OPEN
ENDIF

*:

ceNNECT USER'S
FREE

T~E

ece

kITH THIS OOSIOA

lOA CORE

DISCONNECT THE CTLA FRCM THE lOA

3-114

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-110. DPPSPNTF

01
01
02
01
01
01
02
01

, PERFORM POINT/FINC(TYPE C) eN A ODS'
INPLTS: $1= AleCB) so = A(LIST) t $13
SAVE PARAMO
SAVE PARAM1
GET CALLER'S SAVE AREA
GET REUTRN ADDRESS
POINT TO PREVIOUS I~STRUCTICN
GET ADDPESS OF lOA
IF POINT REQUESTED
PCINT FOR P~IM~RY DCB
IF BACKUP IN SERVICE
POINT FeR BACKUP DCB
ENDIF
ELSE TYPE C FIND RECUESTEC
FIND FOR THE PPIM~RY
If BACKUP IN SERVICE
FIND fOR ThE BACKUP
ENDIF
ENDIF

=

A(SAVE AREA)

Figure 3-111. DPPSRCIO

'RECREATE I/O FeR A DDS HALF'
INPUTS = ~(CTlA), A(IDA), A(fROM-DCS), AITO-DCB)
GET ADDRESS OF 1ST UNChECKED OOSOECB
If THERf IS AT LEAST ONE UNCHECKED
01
DOSOfCB, THEN
01
IF OSORG IS BSAM CR BPA~t ThEN
02
GET THE PRIMARY OECB
02
02
POINT 'TO-DCB' TC TTR Of 'FROM-DCS'S' 1ST UNCHECKED DECS'S lOS'S
02
SEEK ADDRESS
02
01
ENDIF
01
wHILE THEPE ARE MORE OOSOECBS
01"
BGNWHllE
02
PREPARE TO-CECB NAlF FOR I/O AND CALL CS/VS REAblWRITE
02
GET THE NEXT UNCHECKED [DSCECS, IF ANY
01
ENDea
ELSE
01
IF CSORG IS BSA~ CR BPAM. T~EN
02
POINT THE RECRE~TEO DATASET AS PER OLD DCB'S DISK ADDRESS
01
ENDIF
ENCIF
BGNS EG
01
CAll THE OS ROUT(~E TO CCNVERT MBBCCHRR TO TTR
ENOSEG CNVRT
3-115

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-112. DPPSRDWT

,

RF~C/~RITE

INPUTS
GET

T~E

=

MODULE FOR DOS'

A(USER'S CECS)

ACDRESSES OF THE USER'S DCB,

T~E

leA, AND THE elLA.

A(CCSCTl"O)
IF THIS rs REAO(NLY, THEN
IF THIS (S BOA~t THEN
IF THIS IS A WRITE, THEN
RETURN TO USER WITHOUT DCING WRITE
ENDIF
ELSE
T~IS IS BSAM/BPAM
IF TH IS IS A WR ITE, THEN
RETURN TO USER WITHOUT DOING WRITE

GET

01

02
03
02
01
02

02
03
02

01

END IF

ENDIF
ENDIF
DOS SHARE T .. e ODS
RESERVE AN AVAILABLE OOSDEce - EXIT IF NONE AVAILABLE

IF A

ces hAS RESERVED, THEN

CALL RDW2 FOR ACTUAL READ/WRITE

01
01

01

ELSE
SET CODE FCR NO DOSOECBS
ENDIF
DDS

3-116

UNS~ARE

THIS ODS

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-113. DPPSRDW2

'ACTUAL READ/WRITE FOR A DDS'
INPUTS: (A(COSOECB), AeIOA), A(CTlA), ACUSER'S DECB»)
P~EPARE

DCSCECBl FGR 110

BRANCH TO OS/VS REAC/WRITE

~aUTINE

IF NOT GPENED FOR INPUT, ANC
IF BACKUP IS Ih-SERVICE
01

PREPARE DCSCECB2 FOR 1/0

01

01
01
02
01

IF CPENO FOR UPCATE, AND
IF T~IS IS A WRITE, THEN
GET A(BACKUF ICBl FROM USER'S OEca
ENOIF

01

01

eRANCH TO OS/VS READ/WRITE

~CUTINE

01

01
ENOIF

Figure 3-114. DPPSRLSE

'RflEASE
INPUTS =
DE-CHAIN
DE-CHAIN

A COSDECB'
(A(IOA),A(ODSDECB))
THIS OCSDECB FRCM ITS TCBX-ODS-C~AIN
THIS OOSOECB FROM ITS OOSIOA CHAIN

3-117

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-115. DPPSRSRV

01
01
01
01

'RESERVE A CDSOECS'
INPUTS = (A(IOA),A(CTLAJJ
RESERVE AN AVAILABLE ODSOeCB
STRTSRCH ALL CDSDECBS HAVE
BEEN CHECKED
EXITIF tHIS aoSOECB IS AVAILABLE
CHAIN THIS CDSDECB TO ITS IDA AND ITS TCB-DoS-CHAIN
ORELSE
GET NEXT DOSDECS
ENDLOCP
INDICATE NO OOSDECB AVAILABLE
ENDSRCH

Figure 3-116 (1 of 2). DPPSRSTR

01

01
01
01
01
01
01

GET AIXCVT)
GET AISCVT)
GET A(OOSeT lHO I
IF THIS IS READCNlY MODE, AhO
IF THIS IS WRITE RESTART, THEN
RETURN TO T~E USER
END.IF
TURN CFF REAC C~LY BIT
CALL DPPSTKCK TO C~ECK TASKS
FOR DOS VIOlATICNS
GET A(DCSCTlA'S)
SET MAX DDSTATUS BLCCKSIlE
OPEN DDSTATUS fOR INPUT
If OPEN FAILED, T~E~
OUTPUT N( OPENCINPUT) MESSAGE
SET RETURN CODE Te 8 AND ~ETURN TO CALLER
CLOSE DDSTATUS
OUTPUT SYNAD ON RSTR
CLOSE DCSTATUS
UTPUT EotAD eN RSTR
ENDlf
RfAO T~E OOSTATUS RECORD AND CHECK THE RE~D
CALCULATE THE DoSTATUS RECORD LENGTH
GET A(IOB)
GET RESIDUAL COUNT
GET ~AX BlCCKSIZE
GET ACTUAL ~C. BYTES READ
CALCULATE A(END OF ODSTATUS RECORDa
CLOSE DDSTATlJS
WHILE T~IS IS NCT END OF IN-CORE eTlA

3-118

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-116 (2 of 2). DPPSRSTR

01
01
02
02
02
02
03
03
03

02
03
02
02

01
02
01
01
01

01

SEARCr ThROUGH ODSTATUS RECORD fOR THIS ENTRY.
IF THIS eTlA IS I~ ODSTA1US
UPC~TE INCORE DOSCTLA
MeVE IN PRIMARY DDNAME
MOVE IN BACKUP OONAME
IF DOSTATUS BACKUP IS IN-SERVICE,
THEN
SET BACKUP OUT-Of-SERVICE fLAG ON
IN IN-CORE CDsellA
ELSE
SET BACKUP GUT-Of-SERVICE FLAG OFF
ENOlf
UPO~TE IN-CORE USED CCUNTER
ELSE
UPCATE IN-CORE fLAG COUNTER
END IF
GET NEXT INCORE DoseTLA
ENDOO
IF MISSING OOSTATUS DDSNAME
OUTPUT 'SMALLER'
MESSAGE
ENOl f

CALCULATE N OOS~AMES IN OOSTATUS
IF MISSING DDSNAMES IN CORE
01
OUTPUT 'LARGER'
01
MESSAGE
ENDIF
OUTPUT • RES TART
COMPLETEO' MESSAGE
CALL DPPSWRST TO WRITE THE NEW
OOSTATlJS RECORD

FIGURE 3-116.1. DPPSRTCP

DPPSRTCP - REALTIME COpy
01 READ THE PRIMARY JFCB
01 IF JFCB READ WAS SUCCESSFUL
02
OBTAIN THE PRIMARY DSCB
02
OPEN PRIMARY DCB
02
OPEN SECONDARY DCB
02
CALL DPPSCP2B TO COpy PRIMARY TO BACKUP
02
CALL DPPSDSCB TO UPDATE THIS BACKUP DSCB
02
CLOSE PRIMARY DCB
02
CLOSE SECONDARY DCB
01 ENDIF
01 IF ERROR OCCURRED
02
SET RETURN CODE
02
ISSUE ERROR MESSAGE
01 ELSE
02
ISSUE COPY COMPLETED MESSAGE
01 ENDIF

3-119

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-117. DPPSSHAR

01
02
01

01
01
01
01

01

'SHARE A DDS'
GET ACCRESS OF CTLA
GET ACCRESS OF ECB
CLFAR THIS SECA
IF THIS DDS IS LOCKED OUT
WHILE THE~E ARE MeRE SECBS
GET NEXT SEes
ENOOO
ADO THE SEea TO T~E CHAIN
WAIT eN T~IS ECB
ELSE
GET S~ARE COUNTER
INCREASE IT BY 1
PUT BACK I~ SHARE COUNTER
ENDIF

Figure 3-118. DPPSSRCH

'SEARCH A FIXED LENGTH TABLE FOR AN ENTRY W~OSE
X
MATCHES THAT Of AN ARGUMENT',PSECT=NO
STRTSRCH
WHIL f THE RE ,6 REM 0 RE ENT RIE SIN T~ ETA BLE
EXITIF ENTRY fCUND.
SET RETURN REGISTER TO CORRESPONDING ENTRIES ADDRESS
ORElSE
GET NEXT ENTRY IN THE TABLE
ENDLOCP
SET RETURN REGISTER TO ZERC~ INDICATES NO ENTRY FOUND
ENOSRCH

KEY

01
01
01
01

Figure 3-119. DPPSST1

STOW FOR A DOS'
= Sl=A(UCCBt, $O=A(P~RAM), S13=AISAVE AREA)
IF THIS IS TYPE-C, THE~
SET TYPE INDICATOR & RECC~PlIMENT BOTH INPUTS
ELSE
IF THIS IS TYPE-D. THEN
SET TYPE INDICATOR & RECCMPlIMENT IN PARAM
ELSE
IF THIS IS TVPE-R. THEN
SET TYPE INDICATOR & RECC~PLIMENT A(uteBt
ENOIF
ENOIF
ENOlf
CALL THE INTERNAL 8LOL, FIND, STOW ROUTINE
t

INP~TS

01
01
02
01

02
03
02
01

3-120

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-120. DPPSSWCH

01
02
03

03
03
03

02
02
01
01
01
at

Ot

'SWITCH PRIMARY-TO-BACKUP FOR A ODS'
INPUTS ~(A'CTlAI)
IF BACKUP IS IN-SERVICE, THEN
IF THERE IS AN lOA, THEN
• I F THE CCSCCB WAS CPENED FOR
INPUT, THEN
RECREATE
THE 1/0 ON THE
BACKUP DCB
ENOIF
SWITCH ADDRESSES OF P~IM~RY & BACKUP [CBS IN THE lOA
END IF
S~ITC~ CDNAMES IN THE eTLA
TAKE THE BACKUP CUT-Of-SERVICE
SET RETURN CODE Te ZERO
ELSE
SET RETURN CODE TO 4
ENOlf

Figure 3-121. DPPSTBOS

'TAKE A

BACKUP

GUT-Of-SERVICE'

INPUTS = (A(CTlA))
SEE IF BACKUP IS ALREACY OUT-Of-SERVICE
01

01
01
01
01
01
ot
01
01
02

IF BACKUP IS OUT-OF-SERVICE
SET RETURN CODE TO INDICATE BACKUP-ALREADY OUT-Of-SERVICE
ELSE
SET OUT-Of-SERVICE FLAG FOR BACKUP DCB
SEE IF
IF

T~ERE

T~ERE

SEE IF

IS A DOSIOA

IS AN IDA
eACKUP

DCB IS OPEN

02

02
C3

IF BACKUP DCB IS OPEN
ASYNCHRONOUSLY CLOSE THE BACKUP DeB

03

03
02

01
01

ENDIf
ENOIF
UPCATE COSTATUS RECORD
ENOIF

3-121

liCENSED MATERIAL - PROPERTY OF IBM

Figure 3-122. DPPSUNLK

01

01
01
01
01
02

02
02
01
01
01
01

• UNlCCK A ODS I
GET ADDRESS Of CTLA
IF CALLED F~OM ETXR. THEN
GET A(eTlA)
ENOlf
GET CURRE~T lECS
GET NEXT LECB
STORE I~ eTlA
IF THERE IS ANOTHER lEeS
POST THAT LECB
ELSE
GET 1ST SEeB, IF ANY
ZERO SHARE COUNTER
WHILE THERE ARE MORE SEcas
POST THAT SECS
INCREMENT SHARE COUNTER
GET, NEXT SECS, IF ANY
ENODC
SET S ECB WORD (W I TH ,SHARE COUNT ER)
ENDIF
IF DDS HeLD IS OfF, THEN
SRTOS UNLOCK THAT DOS LOCK/SHARE CHAIN
ENDIF
IF CALLED FROM ETXR,THEN
GET ~(TCBC) DIRECTLY
ELSE

01

CALL OPPSAOOX TO GET A(TCBC)
ENDIF

3-122

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-123. DPPSUNSH

01

01
01

01
01
01

'UNSHARE A ODS'
GET ACtRESS OF CTLA
IF CALLED FPOM ETXR, THEN
GET ACCTLA)
ENOIF
GET SHARE crUNTER
DECREMENT SHARE COUNTER BY 1
IF NO MORE SECaS
IF LOCK IS WAITING
SET LeeK FLAG ON
POST THE WA 1'1 I NG LOCK
ENDIF
IF DDS ~OLO IS CFf, THEN
SRTOS UNLOCK THAT DDS LOCK/SHARE CHAIN
ENOlf
IF CALLED F~OM ETXR,THEN
GET AtTest) DIRECTLY
ELSE
CAll CPPSADCX TO GET A(TeBC)
ENDIF

3-123

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-124. DPPSWRST

ot
01
Ol
02
02
02
02
02
02
02
02
01

02
02
01
01
01

GET DOSCTLHD
IF MODE IS NOT REAOONlY, THEN
SET ~AX BLOCKSIZE FOR DOSTATUS
OPf~ DDSTATUS
IF OPEN WENT O. K. , ThEN
ESTABLISH SYNAO ADDRESS
CALCULATE ODSTATUS RECORD LENGTH
WRITE T~E CTlA'S
C~ECK THE ~RITE
CLOSE DOSTATUS
OlJTPUT MESSAGE INDICATING
GeeD UPDATE
ZERO THE RETURN CODE
ElS E
OUTPUT DDSTATUS NOT OPE~ MESSAGE
SET RETURN CODE TO 8
ENOIF
ELSE
OUTPUT RE~C(~LY MESSAGE
SET RETURN ceDE Te 4
ENDIF
RETURN TO T~E USER
ENTER SYNAD PROCESSI~G HERE
CLOSE ODSTATUS
OUTPUT SYNAC MESSAGE
SET RETURN ceDe Te 16
RETURN TO TrE USER

3-124

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-125. DPPSXTCB

01
01
01
01

01

FUNCTION: TO SEE IF THE INPUT(CURRENT) TeB HAS A OOSXTCBC, AND
IF YES, RETURN ITS ADDRESS IN S1, OR IF NCT,
ALLOCATE, INITI~LIZE, ~NO CHAIt-.. A NEW DDSXTCBC AND
RETURN ITS ADDRESS IN S1. ALL DOSXTCBC'S ~RE CHAINED
OFF TrE SCVT.
[NPUTS: PTR TO ( 0 OR INPUT TCB), IF Q,GET CURREN rCB FROM THE
CVT-TCB-SCVT PATH.
OUTPLTS: $1 WILL CG~TAIN THE ACDRESS OF T~E DDSXTCBC FOR THE
INPUT TASK
'LOCATE/ALLOCATE A CDSXTCBC FOR AN INPUT TASK'
IF
THE TCBX [S NCT INPUT,THEN GET THAT ADDRESS VIA CVT-JSTCB
ENDIF
IF SRTCS JOB STEP,T~EN
GET A( TCBX) INSTEAD OF TCB
ENDIF
STRTSRCH
WHILE THEPE ARE MORE TeBC'S
GET NEXT Tesc
BGNWHILE
EXITIF FOUND ODSXTCBC FOR INPUT TASK
ORElSE
ENDLOOP
GET CORE FOR A NEW Tese AND C~AIN IT TO T~E OTHERS
ENDSRCH

3-125

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-126. DPPTCBGT

DPPTCeGT - TYPE 1 SVC ROUTINE FOR CGNTPOL BLOCK GET
IF THIS IS A CBGEl ~EQUESl
01
CALC N OF BLKS NEEDED - LNTH/32
01
GET LAST USED PSCB
01
*
PSCB=PROTECTED STORAGE CTRl BLOCK
01
SET STOP INO FOR CIRCULAR CHAIN
01
STRTSRC~ SE~RCH PSCB CHAIN TIll STOPIND
01
EXITIF STOP WHEN PSCB WITH ENUF CORE FOUND
02
IF N FREE NE N AVAIL-A PSCB MUST BE
03.
CREATED
03
CALC kHERE TO PUT NEW psce
OJ
PUT PSCBIO IN NEW PSCB
03
AOD NEW PSCB TC CIRCULAR CHAIN
02
ENDIF
02
CO~PLIMENT T~E fLOCK COUNT
02
PUT COMPLIMENTED COUNT IN BLOCK
02
PUT GOTTEN CORE ADDR IN REG 1
02
TURN OFF STOP IND
02
UPDATE LAST USED PTR
01
ORElSE
02
GET ACOR OF NEXT PSCB
02
C~ECK FOR STOP IND
01
ENDlOOP
02
SET NC COPE AVAIL RET CeDE
01
ENDSRCH
01
IF eSGET CORE WAS AVAILABLE
02
CLEAR GOTTEN CORE TO ZEPOS
02
RETURN
01
ENDIF
ELSE
01
CHECK ADDR FOR VALIDITY
01
IF A PSCB - A VALID ADDRESS
02
*
~AS PASSED TO BE FREED
02
C(~PLIMENT T~E FREE COUNT
02
DEALLOCATE BY RESTORING FREE CNT
02
GET NEXT PSCB
02
IF IT HAS FREE fLOCKS
03
ACD THEM TO CURRENT PSCB
03
REMOVE OTHER PSCB FROM CHAIN
02

Ef\,C IF

02
02
03
03
02
02

GET PREVIOLS PSCB
IF IT HAS FREE BLOCKS
ADO CURRENT fREE TO P~EV FREE BLKS
REMCVE THIS PSCB FRCM PSCB CHAIN
ENOIF
RESET LAST USED PTR
01
ELSE
02
SET I~VAlID AOOR RETURN CODE
01
ENDlf
ENOIF
RETURN

3-126

*

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-127. DPPTCSVC

DPPTCSVC - TYPE 1 SVC ROUTINE FOR CHAIN
IF
ENDIF
VALIDITY C~ECK INPUT ADDRESSES: MUST BE WITHIN PARTITION'S) •
•
CHECK BYPASSED IF PROGRAM •
•
ISSUE ING S VC HAS Pt<=C OR
•
*
SUPVR STATE
•

•

Figure 3-128 (1 of 3). DPPTDLMP

•• **** •••• *****.*****.****.** ••••••••••••••••••••••••••••• ** •••••••••

•*

MODULE NAME

*•

DESCRIPTIVE NAME - TASK MANAGEMENT

•*••• ***.** •• ~**

01
01
02

01
01
01
02
01
02
03
04
04
03

02

02
02
03
03
03
03

03
03

••

- DPPTOLHP

* CVNAMIC LOAO MODUlE PURGE *•
••••• ** •• *•••••••• *••**.* •••••••••••••••••*•••••••••••*

GET INPUT PARAMETERS
IF NO TOME SPECIFIED
DR N5192
TAKE DEFAULT OF 2 SECS
DR '5192
ELSE D~ 1#5192
IF NO TIME WAS SPECIFIED
TAKE DEFAULT CF 2 SECGNDS
ENDIF
ENOIF DR '51Q2
IF TIME VALUE GT ~AX
ISSUE MESSAGE DPP019
ELSE - IF TIME VALUE VALID
IF ~C MODULES WERE PASSED
DR #5192
ISSUE MESSAGE 22
DR '5192
ELSE OR 1#5192
UNTIL SEARCH ENTIRE LIST
DR 1#5192
IF VAlID MODULE NAME AOCR
DR N51G2
IF THIS IS FIRST VALID ADOR
OR '~192
ENOIF DR #51q2
E~DIF DR 1#5192
ENCCO OR
DR N5192
IF NO VALID ADORS
OR #51~2
ELSE OR '5192
DEFINE LeeK
LOC-< OTHER DLMP-REQUES·TS OUT
ISSUE MESSA(E DPP020
SET ECB COUNT TO ONE
ISSUE STIMER
GET (NDEPENDENT TASK ChAIN ORIGIN

3-127

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-128 (2 of 3). DPPTDLMP

03
03
03
03
03

04
C5

C6
05
04
03

04
01
03
03

04
04
05

05

04
03

04
03

03
04
03
03
03

03
03
03
03

C3
04
05
06
06
05
04

05
04
03
04
03

03
04

05
05
05

04
3-128

00 DPTDLMPI - TCBX-LCB LSER SCAN
GET DEPENDENT TASK CHAIN ORIGIN
CO DPTOlMPl - TCBX-lCe USER SCAN
GET TMCT-lCB CHAIN ORIGIN
WHILE MeRE leB'S ARE CHAINED
UNTIL All ~GDULE NA~ES EXAMINED
IF NA~E ECUAL TO LCBEPNAH
SET FLAG MODULE PURGE REQUESTED
ENDlf
ENOOC UNTIL BXlE
BGNWHIlE
GET AoOR OF NEXT lce IN CHAIN
ENDoa WHILE Lce
TURN OFF STIMER FLAG
~HIlE EeB COUNT DOES NOT GO TC ZERO
WAIT FOR X EVENTS OUT OF LIST
IF STIMER EXPIRED
SET S1IMER FLAG
CAUSE EXIT OF BCT-LOOP
Ef\oIF STIMER
BGNWHllE
INCR NUMBER OF EVENTS TO WAIT FOR
ENOoO WHILE BCT
IF ALL POSTS RECEIVED IN TIME
CA~CEl THE CUTSTANDING STIMER
ENDIF
GET INDEPENDENT TASK CHAIN ORIGIN
DO DPTDl~P2 - TCBX-LCB PURGE SCAN
GET DEPENDENT TASK CHAIN ORIGIN
DO DPTDl~P2 - TCBX-LCB PURGE SCAN
TURN CFF [~TE~~AL DELETE FLAG
GET TMCT-LCB CHAIN ORIGIN
~HILE MORE Lee's ARE e~AINEO
IF STIMER HAS NOT EXPIRED
IF PURGE REQUESTEC
SET FLAG DELETE REQ BY SHON IN Lea
SET I~TERNAL DELETE FLAG
ENOIF
ELSE - IF STIMER HAS EXPIRED
TURN OfF PURGE FLAG IN THE LCB
ENOIF STI~ER EXPIREC
BGNWHIlE
GET AOOR OF NEXT lee IN CHAIN
ENDDO
IF STIMER HAS NOT EXPIRED
IF INTERNAL DELETE fLAG SET
CLEAR T~E ECB
SET FLAG DELETE REQ BY SHON IN TMeT
POST DPPTSMON FOR DELETE SERVICE
ENDIF

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-128 (3 of 3). DPPTDLMP

04
05
04
03
03
03
03

03
03
04
04
05
06

01
01
06

05
04
04

03
04
03

03
03
03
02

01

(F ANY ECB wAS SET UP
WAIT eN T~E EeB LIST
ENOIF
ENDIF STIMER EXPIRED
GET [NDEPENDE~T TASK CHAIN ORIGIN
00 DPTDLMP3 - TCBX POST SCAN
GET DEPENDENT TASK CHAIN ORIGIN
00 OPTDL~P3 - TCBX POST SCAN
IF STIMER EXPIRED
GET ADDR OF FIRST EeB
UNTIL All ECB'S EXAMINED
If ECB wAS NOT POSTED
IF MODULE ~AME PRESENT
ISSUE MESSAGE DPP021
CLEAR GUT MODULE NAME
ENDIF
ENOIF Eee NOT POSTED
ENDDG UNTIL BXLE
LOAC MSG N FOR PURGE ABANDONED
ELSE - IF STIMER HAD NOT EXPIRED
LOAD MSG 'FOR PURGE CCMPlETE
ENOIF STIMER EXPIRED
ISSUE MESSAGE
U~LOCK - ~E A~E THROUGH
RELEASE THE LGCK DEFINITION
ENOIF TIME VALID
ENOIF NO V'IIC ~CDULE NAMES
ENDIF INVALID PARM liST - NC NAMES SUPPLIED
RETURN
COpy OPTOlMPl - TCBX-LCB USER SCAN
COpy OPTOLMP2 - TCBX-LCB PURGE SCAN
COpy CPTDLMF3 - TCBX POST SCAN
COpy DPTDl~P4 - STI~ER EXIT ROUTINE
COpy OPTDLMP5 - AS~NC DELETE ROUTINE

OR '5192
DR '5192

3-129

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3·129. DPPTDSVC

•• *••• *** •••• **.*.** •• ******.* •••••••••••• *.* ••••••••••••••••••••• *.*

••

MOOULE NAME

- DPPTDSVC

*•

*
•
* DESCRIPTIVE NAME - TASK MANAGEMENT. DPATCH TYPE 1 SVC ROUTINE •
****** •••••••• *••••••••••••••••••••••••• ****.*****.**** •••••••• *** ••• **

01

02
01
02

03
03
03

03
02

03
04
03
03
04
03

03
04
05
04
05
06
05
06

07
08

07
08

07

06
07
06
05
04
04

04
05
06
05
04
03
02
01

LOAD DPATCH TYPE CODE
LOAC ACCR CF T(eX~AME FIELD
COpy OPTDSVCl - VALIDITY CHECK
IF RETU~N CODE lOW
IF DPI fLAG IS SET
SET RC FOR TASK BEING REMOVED
ELSE
IF THIS WAS DPATCH=I
SET FLAGS DP[ + DPU IN TCBX
GET AeENC CODE
GET ADOR OF ABTERM FRCM CVT
ABTERM T~E CPATC~ED TASK
ELSE

IF DPW FLAG IS SET
SET RC FOR ALREADY DPATCHEO=W
E~DIF DPW
IF DPU fLAG IS SET
SET RC FOR ALREADY CPATCHEO=U
ENDIF CPU
IF RETURN CODE LOW
IF THIS WAS DPATCH=U
SET OPU FLAG
ELSE
IF THIS WAS DPATCH=W
SET DPW FLAG
El S E
IF THIS WAS DPATCH=C
IF TASK DORMANT FLAG SET
SET OPC FLAG
ELSE
SET RC TASK NOT DORMANT
ENDIF TASK DORMANT
ELSE
SET RC INVALID INPUT PARMS
ENDIF CPATCH C
ENOIF DPAICH W
ENDIF DPATCH U
IF RETURN CeDE LOW ~NO
IF NO DPPTSMON REQ PENDING
IF OPPTPM(N NOT POSTEC
POST DPPTPMON
ENOIF POSTBIT
ENDIF RC LOW AND NO SMON REQ
E~D[F RC lOW
ENDIF OPATCH I
ENDIF OPI SET
ENDIF RC ZERO
RETURN
COpy DPTPSVC2 - ADDRESS CHECK
3-130

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-130 (1 of 3). DPPTl!TXR

*

*
•* DESCRIPTIVE NAME - TASK MANAGEMENT • ENC-OF-TASK-E~IT ROUTINE ***
•.* ••• $ • • • • • • • • • • • • • • • • • *•••••• **.* ••***** ••••••••••• *•••••• **** •• ** ••*

•

01

01
02
02
01
01
01
01
01
01
02
03
03
02
02
01

01
01
02

03
03
04

04
03
04
03
02
02

03
03
04
03

MODULE NAME

- OPPTETXR

LOAD ADDR OF TCa WE'RE RUNNING UNDER
IF IT'S NOT JOaSTEP = SMON'S Tee
ISSUE ABEND USER CODE 64
ENDIF
GET XCVT ADCR FROM DPPTSMON'S Tcax
GET ACDR OF FIRST LeCK CONTROL fLOCK
WHILE MORE lOCKCBlK'S ARE CHAINED
IF EXITING TASK HAS CCNTRCl OF THIS RESOURCE
CHA~GE THE TCB ADDR TO SMON'S TCB
UNlCCK THE RESOURCE
ENDIF
GET AODR CF NEXT lOCKCBlK ON CHAIN
ENDDO
IF THIS PARTITION IS SLAVE PARTN
GET MASTER PARTN XCVT ADDR
GET ~ASTER PARTN SCVT ADDR
GET ADDR OF FIRST LOCKCBLK ON CHAIN
"HIlE MORE lCCKCBlK'S ARE CH~INED
IF EXITING TASK HAS CNTRl CF THIS RESOURCE
C~ANGE THE Tce ADOR TO SMON'S Tca
U~lCCK THE RESOURCE
ENDIF
GET ADOR OF NEXT LOCKCBlK (~ CHAIN
ENDDO
ENDIF
IF TCBXOC~T-FIELC WITHIN PARTITION
GET XCVT ADeR FRC~ EXITING TASK'S TCBX
IF XCVT ADDRESSES MATCH
IF CURRENT WQE PRESENT
IF cwe ADCR OUTSIDE PARTITION OR
IF WOE DOES NOT POINT BACK TO TCBX
ISSUE MESSA(E DPPOIO
CLEAR WOE ADDR
ELSE - CURRENT WQE AOCR VALID
lOAC AOCR OF leB FRCM WQf
ENDIF
ENDIF CURRENT WQE
If TCB CCMPlETICN CODE flElC NZERO
• TASK TER~INATED ABNORMALLY
IF IT WAS MSG OUTPUT TASK
ISSUE ~TO MSG OPPOll
ENOIF MSG OUTPUT TASK

3-131

LICENSED MATERIAL - PRORERTV OF IBM

Figure 3-130 (2 of 3). DPPTETXR

03
04
03

04
03
03
02
03

04
03
02
02
03

04
05
05
05
04
04

04
04
04

05
05
05

05
06
05
06
05
05
05
04

05
04
03
03
03

03
03
03
04

03
03

03
03

03
02
03
02
3-132

If

CU~PENT ~Qf PRESENT
MOVE EP-NAME INTO MSG TEXT
ELSE
CLEAR ~SG TEXT AREA WIT~ BLANKS
ENOIF CURRENT WQE
ISSUE MESSAGE DPP012
ELSE - TeB CC~PlETICN CODE FIElC ZERO
IF EXIT NOT C~USED BY DPPTPMCN
ISSUE MESSAGE DPP018
ENDIF
ENDIF ceMPL CODE
IF EXIT NOT CAUSED BY DPPTP~CN
IF CURRENT ~CE PRESENT
IF MCDULE W~S LOADED BY ABENOING TASK
* IT WILL BE DELETED BY
* TaSK TERMINATIC~ OF CS/~S
SET LeA UNRESOLVED
fNDlf
GET C(MPLET(~N CODE fRCM TCB
SET ECB CC FOR ABNCRMAl TERMINATION
STORE ECB C(MPlETIC~ COCE INTO WQE
IF WQE ABENDED FLAG ZERO
* THIS WQE DID NOT CALSE ABEND BEFORE
SET FLAG ~QE ABENCED
GET CLEANUP WORK QUEUE ORIGIN
WHILE MORE WQE'S ~RE CHAINED
KEEP AODR OF THIS WOE
BGNWHllE
GET ADOR OF NEXT hQE
ENODO
C~AIN OUR WOE TO END OF CLEANUP-WQ
CLEAR CHAl~ WORD IN OUR WQE
ELSE - WQE CAUSED ABEND 8EFORE
EXEC WQE-DELETE SVC ROUTINE
ENDIF weE ASENDEO
ENDIF CURRE~T WQE
RESET WQ ACTIVE FLAG IN T(BX
SET FLAGS TCB + CHAP REQUIRED
CLEAR SMON C~AIN WORD IN TCBX
GET TMCTSMON CHAIN CRIGIN
~HILE MORE TCBX'S ARE CHAINED
GET ADOR OF ~EXT TCBX ON CHAIN
Et\DDO
C~AIN TCBX TO OPPTSMON'S REQUEST CHAIN
CLEAR ACOR OF DEAD TCB FRCM TCBX
CLEAR POSTBIT
POST DPPTSMCN FOR SERVICE
ELSE - EXIT WAS CAUSED BY DPPTPMON
CBFRE E Tt1E Te BX
ENDlf PMON CAUSED EXIT

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-130 (3 of 3). DPPTETXR

02
01
02
02
01

CLEAR REG 15
ELSE - XCVi ACDR OON'T MATCH
* CANNOT TR~ST TCBX
LCAD ~EG 15 NZEPO
ENDIF XCVT AOOR MATCH
ELSE - TCBXOCVT FIELD OUTSIDE PARTITION
01
LOAC REG 15 NlERO
ENDIF
IF REG 15 NlERO - eAD TCBX ADDRESS
01
ISSUE MESSAGE DPP013
ENDlf
DElAC ... (EAD TCB
RETURN
Figure 3-131. DPPTGWFW

- eRANCH SUBROUTlNE fOR GETWA/FREEWA
ISSUE A GElWA SVC
IF RETURN CODE IS PLUS
RETURN TO CALLER
ELSE
IF FREEMAIN SERVICES REQUIRED
FREE THE EXTRA GETWA CORE
ZERO RETURN CODE
RETURN TO CALLER

DPPTG~FW

*

ELSE

GET ACCRESS OF GFMB TO BE EXPANDED
GET LENGTH REQUIRED FOR GETMAIN
GEl ADDITIONAL KEY 0 STORAGE fOR SIZE OF GETWA REQUIRED
GET CONTROL BLOCK STCRAGE
IF CBGET CORE NqT AVAILABLE
FREE THE STORAGE GOTTEN FOR GETWA
FREE THE SAVE AREA
SET RETURN COOE=12
RETURN 10 CALLER
ELSE
PUT GETWA LOW ADDRESS IN THE GFCB
PUT GETWA HI ADDRESS IN THE GfCB
POINT NEW GFCS1rO ITS GfMB
POINT GFCe TO FIRST GFBE
PUT INIT , OF SLeCKS IN GFCS
PUT INIT FREE COUNT IN GfCB
UPDATE TOTAL. FREE BLKS IN GFMB
ADD NEW GFCB TO CHAIN OFF TMCT
ADO GFCB TO GFMB CMAIN
~ETURN TO EP (DPPTGWFWa TO RETRY GETWA
ENOIF
ENCIF
ENDIF
ENOIF
3-133

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-132 (1 of 2). DPPTIMPS

DPPTIMPS - CUMP/NO CUMP FACILITY IMP INTERFACE
DEFINE A RESCURCE FeR LOCK
LOCK RESOURCE
IF NO SYSTEM DUMP CONTROL BLCCK,THEN
01
GET~AIN FOR DUMP CNTl BLOCK
01
ENTER SUPSTATE
01
SAVE A(DUMP Cf\Tl BLOCK) IN seVT
01
EXIT FROM SUPSTATE
ENDIf
IF PARA~S WERE PASSEO,THEN
01
GET CPTION PARAM ADDRESS
01
IF OPTION PASSEC,THEN
02
~CVE IN REQUESTED OPTION
02
UNTIL ALL OPTIONS CHECKED,DO
03
BLMP TO NEXT VALID aPTIO~
02
Ef\OOC '
02
IF NOT NORMAL CPTION,TrEN
03
SET ERRCR MESSAGE
02
ELSE
03
MCVE OPTICf\S INTO DEFAULT
02
END IF
01
ENDIF
Ot
IF ~AlID OPT OR DEFAULT SEL,T~EN
02
IF LOAD MODULES,THEN
03
C~lC AND SAVE NUM LOAD MODULES
03
UNTIL All LOAD ~ODULES PROCESSEOtDO
04
IF VAllO l~ ADOR,THEN
05
MOVE NAME INTO WORK AREA
05
IF INVALID LM NAME,THEN
06
ISSUE ERROR MESSAGE
05
ELSE
06
SAVE ~A~E lEf\GTH
06
WHILE NOT END OF CHAIN,AND
06
WHILE NA~E lOWtOO
07
INCR DUMP CNTl BLOCK PTR
06
ENODO
06
If NOT END Of C,,"AIN,AND
06
I F ~A ME F GUNO, THEN
07
RESET FLGS
06ElSE
07
GET NEW DUMP CNTL BLOCK
07
CHAIN IN NEW DUMP CNTL BLeCK
06
ENDIF
E~DIF

05

04
03
02

ENDIF
E~DDO

Ef\DIF
01
ENDIF
ENDIf

3-134

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-132 (2 of 2). DPPTIMPS

01
02
02
02
03
02
02
01

02

01
01

If VALID OPTION,THEN
IF DEfAULT C~ANGEOtTHEN
RESET DEfAULT FlGS
ZERO T~E C~AIN PCINTER FROM SYSBlOCK
WHILE NOT END OF CHAIN,DO
FREEMAIN DUMP CNTl BLCCK
ENDDO
ISSUE MESSAGE
ELSE
ISSUf MESSAGE
ENDIF
ELSE
ISSUE MESSAGE
ENOIF
UNLOCK RESOURCE
RETURN

3-135

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-133 (1 of 2). DPPTPMON

**** ••• ***********.*******.***********.****** ••• **.******************
** MfDULE NA"'E
**
- DPPTPMON

**
** DESCRIPTIVE NAME - TASK MANAGEMENT * PATCH MCNITOR ROUTINE
***** ••••••••••• ****.******.*** •• *******.*******.**********************
WAIT FOR THE TCBX ADDR TO BE FIllED IN BY
ThE MCTHER TASK (OPPINIT OR DPPTSMGN)
IF NO RESOURCE TABLE PRESENT
GET VIRT STORAGE FOR RESTSl AND WCRKAREA
CLEAR WCRKAREA PLUS RESOURCE TABLE
STO~E RESOURCE TAElE ADDR INTO TCBX
ELSE
GET ADDR CF wORK AREA
ENDIF NO RESOURCE TABLE
IF STAE TO BE ISSUED
PRFN166
ENDIF PRFN166
UNTIL TASK TERMINAT~ REQUIREC
IF THIS T~SK ATTACHED BY OPPINIT
WAIT FOR FIRST PATCH
ENDIF
~AKE IT LeeK liKE ATTAC~ED BY DPPINIT
UNTil ANY DPATCH DO
WHILE weE'S CHAINED TO TCBXWQ AND
WHilE NO DPATCH=U
TOP wQE BEC(MES THE CURRENT
CECHAIN TOP weE
IF CURRENT QUEUE LENGTH NCT ZERO
DECREMENT CURRENT QUEUE LENGTH
ENDIF cel NZE~O
DO DPTPMON3 - LOAD USER'S ROUTINE
DO DPTPMON4 - EXEC LSER'S PROGRAM
DO OPTFMCN5 - PERFO~M weE-CLEANUP

*
01
01
01
01

01
02
01

01
01
02
02
03
03
03
04
03
03
03
03
02

BGNkHllE

03
04

weE'S CHAINED TC TCBXCUWQ
TOP weE BECCMES CURRENT
DECHAIN TOP WOE
IF ODS WAS INVOKED
EXEC ODS CLEANUP ROUTINE
ENOIF
00 DPTP~ON5 - PERFO~M WQE CLEANUP
E~DOO WHILE TCBXCUWQ NlERO
IF QP TCBX THEN
DO DPTP SELECT WQ FROM QH
ENDDO
ENDDO WHILE TCBX WQ AND NO DPATCH U
~HllE

04

04
05
04
04
03

02
03
02
02

3-136

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3·133 (2 of 2). DPPTPMON

02
03
03
03
03
03
02
01

01
01
02
02
02
02
02
01

01
01

IF NO OPATCH CF ANY KINO
CLEAR CWQ POINTER
CLEAR POSTBll BEFORE WAIT
SET FLAG TASK DCRMANT
~AIT FOP NEXT PATCH, CPATCH OR REPATCH
TURN OfF TASK DORMANT FLAG
ENCIF
ENDOO UNTIL ANY OPATCH
SET FLAG TASK IS BEI~G REMOVED
IF DPATCH WORK QUEUE (S NCT EMPTY
OPATCH WQE BECC~ES THE CURRENT
CLEAR OW, POINTER
00 DPTPMON3 - LeAD USER'S ROUTINE
00 OPTPMON4 - EXEC USER'S PROGRAM
DO OPTPM(N5 - PERFO~M WQE-CLEANUP
ENOIF

CLEAR CWQ POINTER
COpy DPTPMONl - TCBX-CLEANUP AFTER CPATC~
ENDDO UNTIL TASK TE~MINATION REQ
FREEMAIN WORK AREA AND RESOURCE TSl
CLEAR RESOURCE TABLE ADOR FPOM TCBX
ISS UE SVC EXI T
COpy DPTPMON2 - HI lEVEL LA~G INTERFACE
COpy OPTPMON3 - USER ROUTINE LOAD
COpy DPTPMON4 - USER ROUTINE EXEC
COpy DPTPMON5 - WQE-CLEANUP
COPY

DPTPtv1ON6

- QP/QH INTERFACE

3-137

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-134 (1 of 2). DPPTPSVC

••• ~* •• ~ •••••• ***.*************.***** •• ** •• ******.* •• *•••*****.*** •• *
*•
** MOCULE ~AME
- DPPTPSVC
** DESCRIPTIVE NAME - TASK ~ANAGEMENT * PATCH TVPE 1 SVC ROUTINE
**
*** ••• *** ••••• ** ••• *•••• *** ••• ** •• **.*** •••••*•••• **.**** ••••••• *******

01

02
03
02

03
03
02
01
01
02
03
04
04
04
04
04

05
05
05
04
05
04
C5
04
04
05
05
06

05
06
C5
04
03
03
04
04
05
04

LOAD AOOR OF PROBLEM PARM LIST
LeAD ActR OF SUPERVISOR PARM LIST
COpy OPTPSVCl - VALIDITY CHECK
IF INPUTS ARE VAlIC
IF TC8X WAS SPECIFIED
IF GIVEN NAME S~ME AS IN Tcax
00 OPTPSVC3 - BUILD WQE AND Lca
ELSE
SET RC FOR INVALID Tcax ADDRESS
ZERO TCBX= AOCR TO CAUSE C~AIN SRCH
ENDIF GIVEN NAME SAME
ENDIF TCBX SPECIFIED
IF NC TCBX ADDRESS SPECIFIED
IF TCBXNAME SPECIFIED (INOEP TASK)
UNTIL FINO-lOCP COUNTER ZERO
OECRE~ENT leop COUNT
RESET rCBXNAME NCT FCUNO FLAG
GET ORIGI~ CF INDEP TASK CHAIN
STRTSRCH WHILE MORE TCBX'S CHNO
EXITIF TCBXNAME FCUND
·00 0 P TP S V(3 - au IlD WQE A''0 l CB
TURN OFf FINO FLAG
SET LOOP eTR IERG - CAUSE EXIT
ORElSE
GET NEXT TCBX IN CHAIN
ENDLC(P - NCT fOUND
SET TCBXNAME NOT FOUND FLAG
ENDSRCH
IF F[~D WAS SPECifIED
SEE IF OTHER PTN IS STIll ACTIVE
IF
TURN. OFF FIND FLAG
ELSE
SWITCH PARlITIONS
ENDIF
ENDIF
E~ODO UNTIL FI~D-lOOP
IF TCBXNAME NCT FOUND FLAG SET
DO DPTPSVC4 - BUILD Tcax
IF RETURN ceDE LOW
CHAI~ TO INDEP TASK CHAIN
ENDIF
3-138

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-134 (2 of 2). DPPTPSVC

03
02

01

ENDIF NCT FOUND ON CHAIN
ELSE - NO TCBXNAME SPEC (DEPENDENT)
00 DPTPSVC4 - BUILD TCBX
IF RETURN CeDE LOW
SET DPATCH ~ FLAG TO CAUSE
• OPPTPMON TO DELETE THE TASK AFTER ONE EXEC
CHAIN TO DEPENDANT TASK CHAIN
ENDIF
ENDIF TCBXNAME SPEC
ENDIF TCaX NOT SPEC
ENOIF INPUTS VALID
IF INDEPENDENT TASK AND
IF RETURN CODE LE 8
TEll USER T~E T(aX-ADDRESS IN REG 1

01

ELSE
CLEAR REG 1

03

03
04
04
04
03

02
01

ENDIF
RETURf\
COpy DPTPSVC2 - ADDRESS C~ECK
COpy OPTPSVC3 - BUILD WQE AND lee
COpy OPTPSVC4 - BUILD Ttax

3-139

LICENSED MATERIAL - PROPERTY OF IBM

Figure 3-135. DPPTPWQE

01
01
02
01

02
OJ
02
03

02
02
03
02
03
04
03

04
05
04
04

os

05

04
04
05
06

06
05

04
04
05
04
03
02
01

BGNSEG DPPTPWQE - PURGE wORK CUEUE ROUTINE
VERIFY INPUT PARAMETER ADDRESSES
IF /J~Y ARE It\VAlIO
SET PETURN CODE
ELSE
IF TASK~AME [S ZERO
USE CURRENT TASK'S TCBX
ELSE
SEARCH FOR TCBX OF SPECIFIED TASK NA~E
ENDIF
IF CPATC~ IN PPOGRESS FOR TASK
SET RETURN CeDE
ELSE
IF TASK IS DORMINANT
SET RETURN CODE
ELSE
IF CURRENT WQ IS CNE CF T~E WO'S TO BE DELETED
FLAG TO BE PURGED
ENOIF
IF DPATCM WQ (S ONE Of THE WO'S TO BE DELETED
REMOVE WQ
CMAIN eN CLEANUP WQ
ENDIF
UNTIL ALL wQ'S ON WQ CHAIN HAVE BEEN PROCESSED
IF we IS CNE OF THE ~Q'S TO BE DELETED
REMOVE WQ
CHAIN eN CLEANUP WO
ENDIF
ENOOO
IF FREE SPECIFIED ON PURGE~Q
SET LE~GTH AND ADDRESS IN LAST WQ TO BE PURGED
ENOIF
ENOIF
EJ\DIF
ENOIF
ENOSEG OPPTPWQE

3-140

LICENSED MATERIAL - PROPERTY OF IBM

FIGURE 3-135.1. OPPTQtMP

.. ________ ~i> TQ IMP _.y_~JJ_G...R_A f_.J~___ f~_C ~J_~_~_'-~_~~_~!~_~~§__~~ E-B._~_ L_ -~ t ~9_~ ~.!_I~ ~__._______.__
GET~AIN ~CFK SPACE
IF PAT CHI c . -.l..s.._~___ ._
._-----------------_._-------_._-----IF PROBl LEN IS 12 OR l~
~OVE USEP SUPPLIEC PARAMETERS Te WORK SPACE
-----------SET- ~ A S 1 T'-S- --TCSEl-E-C'f'-l c --'R E'DIsTEc----e Y-F I-R S t- P-A"RAfJerrR--- .- -- - - SET MASK eITS TO CHANGE FLAGS AS REQUESTED SY 2ND PARA~ETER

K-a

ex

.- --'--IFTHIR-C'-p ~R A-~ ET E-Ji- Ei\T-E-Rrf---~s '-', PUf< f E'-CR-- tfM-1 TTE""b----·--·----·---···-----

__ . __.__ _
DISABLE SYSTEM TC PREVENT ERCKEN C~AIN5
___._._--.hl:t_l_U_IC B1.Nf ~1.tJ~_,_~l.IB..~___ .e_~~ ~~U~_l(~}__ .~ _t~J.~ __________ ._ _
IF Tcax OF l~PE SELECTEe
CHANGE FLAG elTS ACCCRCI~G lC MASK5
. -----SA-V E
K--'--S P Aff-------------- --.-.-----.----.-.-------..--- _.-. -.--.-.--.----_____ ENJJl£_._.---.
_____ .__________ _
ENDCC
E NA Bl E S ~ S.J.J1!.________ ._______________ _
._--_..
._--- - - IF SELECTEC TCBX FOLNO
CNTIL ALL SAVEC TC8X A[[~'S PROCESSfC
._ _ IF NO ERRC_R S ._12_t;_I~C T~J~______

____

-TCBi--~oD'-R~---~(-R

__

---'--1 F --PUR G-E-- ~ A' S----EN-fERE-C---· --------.-------.-------.----.- -

------------ -.-- --------.---

CISA8LE SYSTEM
-·----PURG
E WO fP[iGE T L

COPPECTIQN FACTOR

[;PCALCFl

TIM~

Ml~lJ

0 PT ION

oE: L t 1 t u tJT ION
UPLATl CURRECTIPN FACTnR
UPCA1~ COk~ECTION FACTOR
UPDATl TIME
U~OATE:: DATE
liP(.Alt prOF S
GET PLTARAY PROCESSQP
G~T PUT bLOCK ~URRnUTIN~
lWO PARTITION INTEPFACE For GATA ·fASlCM)
cyeL Ie ,LOGG ING P fltfTI NE
Gl:TlUl, ROUTINE

A-3

LICENSED MATERIAL - PROPERTY OF IBM

(,~r.Ll

(,Lf-'lE[~

NA~[

~t. t)~H, ~T

[;~PuIT!:M

DPPLPUll
LPPGkl .. l::
()PPL,kl FT
DfJPu~Uh2

[;PPDUMPl
DPPDLPUl

OFPU1'JEM
G.... PuPUTl

LEI

~l.JTITE:M

PR(1C~S~rf)

PLJTLeC RUUTINE
LUMMV INIT.TIME ~fTTFR
TIMt ukl~T CORRECTION

CPP[:klf-l
[JPf.'iJf 1f-1
(.l P P LJ S l; b ~

~ L AVl

PAL T 1 T 1 Q N IN T F P FAr E P C' l! TIN L

LPPl,UMF'l

DUMP lUG RULJTINF.-

GPPLwkST
CPPFAUf.. C

UL
DPPGWkSl
('.PPFAuNC

UATA lASl CPfN/ClOSE ON

LJPPFI>'f-k

l) .... Pf-IXt-k

DPFIDlAS

DF P l[;eAS

OPPl,uf

['ATA bA~t.

DPINIT2
LPINll:'

lRE:ATE ADVANCF Tep s

(jPINIT~

!;,YNChRUNIZf FOR TWP PAPIITJf1N

()~'lGRASf.

DfJPILCLN
LJPPINIT

{)PPINIT(I

[JPPINITU

INI11~LIlE:

LF-lt-JITC,::'
uPlr~11\,.4

LON1~(jL

LJPINIT('~

(, P I r~ 110 "I

bLILD WAll lI~T RnUTYNF
RLUllNE TU HANDLE ~lANKS IN PA~AM
L~Nl~UL blOCK EUIlD A~r (~AI~
~~kU~ M~SSAGE WFITff

GPINIT,-,A

~P/~H

uF-I~~IT06

u. . lNITGt
P PIN 1 T 1
LJPINITII

[;PINIT12
uf.'If'..IT13
LIP Ir~l T 14

PAGE:

LPPI~TAt

J t, b

uPPllI~l

Df'PITIMI
DPPMINIT

ldJPMMSb

r pPMM~r,

DPPMM~LV

DP"'MM~GV

uPPMM~Gl

[i

LPPPAkM

LPPPAkM

UPPPlf

LJPP!>AMPI

DPPPIF
[IPP SAMP 1

l.JPFJ~A~[tC

L P f·<.1 A~ (1 L

INTE~RUP1S

UNFIX
P'(ll'TIN~
S T A[= P OLJ TIN F

fkE-[

TIMl INITIALIZATION
1~111ALIZ~ TIMf IN 11~r AFFAY
HANUL[~

~VSTcM

INITJAlI7~TJn~

MfS~AGE

FnR~ATTrR

~Y~T~M

M~~SAGE

~YSllM

ME~SAG[

RnUTING CODf C~A~G~
OUTPUT pnUTINt

PL/I
~ L/

l~TEkFAcr

r

RnUTINF

J. NT t k f ~. C F RflU TIN F
~ AM~j L t P f...UCP,AM -P" TCH f:' Ot 'T1 N~.
[I l: S A :.-, Y1\1 Lh F, n N1 S n p r: N n p (ltl S ~_
U(j~D~tC.T

A-4

PATlhll~

~ T E PTA S K

M~G

PPMMSG 1

PQOCF~SO~
SURSYSTF~1

MESSAGE ROUTINE
Pf\Obl INTl F~FACE
tu~11NUOUS MCNITQR INTFFFAt~
PkUbl/liME IRR T~ SUPPRES~ TIML
J; ~ () ~ ...·1 X R UUT IN F

DPPI~\Fkt

[;~lTI~ll

PRC1CrSSrp

~kk0k

uPPI~TAE

GPPIPt-lX

CAf~[:

~TAfX CARD
It.JITIhlllA11ClN

LJPPlpf-lX
DPPIPFPE.

[j PPM 1 r-ll T

CB("FT

CARD rfA~ RUUTINl
f'Af.,AM KEVWORD PfU)CESSOR.
PA1CH CAkD PROCESSOP
LC 1\41 1 ,... UATIll N CAP f) P Rr. CF S SO F'

LJPINITO~

~.,

R~AU

1~11IALIZA110N

uPINITCl

LP P It-d T 1

INITIAlIZ~TJn~J

Lt-llt\I11

DPlut:AS~

tJPPILUlN
[;PPINIT

W~ITt/~F~TAFl

Ub TAbLES INTO VS STnRAL~
INIlIALlZ~ DF TAPlFS
f..l:AD VS ~ESIDlNT APRAV~ JN10 STr'fIut.A~l

[JPf.'llk.E

~:

l uGC,lNG

USELl

U~

UGS (ONTPOL AREA

LICENSED MATERIAL - PROPERTY OF IBM

CSE::CT

MAIN

~AME:

Sl::Gf'H:NT

L f- P ~ f t-!J T

C P P ~ J I- ~. 1

(.CH· 1 E.l'
S t. Gf"It: Nl
b l. U l \
0~~~S[C'

uPP~P>F

J.

t' ~,l 1-. CK

DP f' !:. C. h (, K

~PPSCHK2

LPP~ChK~

U[ 1~ L/!:> L (, T

LPPSChK3

GPPSChK3

LJPPSLhK4

DPF ~Cht,4

LJ P fJ !:. C h t-F.

L; P P SCH ... ~

ChECK A

LPPSCMPk

L~PSCMPk

[)PP~CP~b

OPP~CP2b

Df-PSCklK

DPP!:.CkP.1\

(: S E L" 0 F

LD~GSECl

Ct-'ECt\ A bACKUP DECR
USEeT Uf- DDS CONTROL AREA
~ [T

UO~GS~(T

l.JfJPSDDSX

DPpSD[;~X

~PPSINll

DPPSINIT

DPPSIN12

LPP~I~l~

DPPSIN13

OPP~IN13

[) P PSI 1\ 1 4

D... P S ll-.J 1 4·

DPPSLUlK

~PPSMSGI

OPPSMS~I

~~PSMSGU
UPP~NulE

DPPSMSG()

O~llT

~,fA"CH

~LSLSbCl

DPPSLUCK

L~ECT UF (j[:~ CONTRnl ~pr- t,
CLUSE A UDS
O~E(l UF DDS CONTROL AREA
COMPAkb FUk DDS
DSEel ~F DDS CONTROL AREA
COpy A DUS PRIMARY Tn. RACKUP

l~ECl

lJUSNTPT

~~P~I~Ib

A PkIM ARY 0 E CbAN r) A [~ A C K U P [, F C ~,

USECl UF DOS CONTROL AREA

~O~U~E(l

LJ [J S £. is EC T

~PPSlNlb

ARE t~

LOSDS~Cl

UD~US~Cl

OPPSIN15

CON 1 R0 l

uF ou~ CONTROL AREA
tuPY TRACK TO TRACK
DSlCT O~ ODS CONTROL ARfA

UU~DS~tT

UPPSIN15

(j [,1 S

CREATI:: A U[IS PACKl'P
OUSU~~CT

GPP~CT2T

UF LJlIS

LJu£ CLr.AN UP ROUTINE

DOS~SECl

OPPSC1~T

INTFPNAl
CONTROL ARF A
kUUTINf FOP DDS CHECK

L't; S [j!'; t. C T

u(/~()SE(.l

DPP~CLI

UD~LECB

[is E. C,
~Y~AL

DPP~C.l.up

DPPSCLI

for A DD~.
Uf- [I [" S CON T P n l AR~' It
D [) !;, C I- E:: C. K MUD t; LE
L ~ EC, U F- Uuse ON T' RaL AF'~ E A

u~ tel

GUS U SE C T

u~SUSECT

['''-PSCLUP

r I N L: T Y P E D S Tn w F 0 f' ,. tJ [; ~,
UF UD~ CONTROL ARFA

LLUl flNLI TYPE n

LJPP!:.bt-l

L 1..1 ~ l. S 1: t 1
~ 1-'

u~ELl

DD~GSE(l

DDSUSECT
UDSDSEtl

DDSLSEtT
UUSLSlCT

AN

IDA FROM A GIVEN l'DCP

[I f- [J D !:. C(I N T R 0 l. A R f:. A
ALL (j CAT tAN [I I N r T I ALI Z F P f p, MAN t· NT 0 () S C 1 L A
CLPY LUut: FOR NOTE POINT f',KANC .. :

f.; !:. E. C 1

GSECl UF GDS
DlFOkMAT lH~
D~LLl Uf ODS
DtFIN~ LOCKS

CONTROL AREA
CTlIN CARr
CONTRCl APFA
FOR FACH ellt

DSECl UF

CONTROL

orJs

Ar::.F~,

LOCK A DDS
DSELl OF DDS CONTROL ARFA
GUS IN~UT MESSAGE PPOCESSOk
OSleT Of DDS CONTROL APEA
MlS~AGE nUTP~T PRnrf5S0R
fEkF8RM NOTE ON A DOS
GSEel LF LUS CONTROL ARFA

~DS

DPP~NUTt

fO ....

UF UD~ CONTROL AREA
INITIALIZE THf nrs SVSTfM
~S~CT Uf DDS CONTROL APEA
PRuCE~~ Th~ (TLIN STREAM
D~~Cl Uf LD~ CONTROL AREA
VAlIOAT~ EACH DD~ DEClAFAlION Wfl JeL

LICENSED MATERIAL - PROPERTY OF IBM

C~t:L.T

MAIN

CUf-'IELI

NAMl

SE:G~iEf\JT

~EGMEl\iT

[)~PSNTPT

UPP~NTPT

() J-i f-'

~OP

CL

OPP~OPCl
DD~{;!)tCT

LJPP~UPI

UPPSOPI

LJPPS(JP2

DPPSuP,2

l.JPf-'SP~TF

LPP!:.PNTF

[JDSUSEC T
DDSGSE-CT
D[JSUSE CT

LJPPSkCIC

Df-'PSkClu

()PPSkDWT

DPPSRLWT

[;PPS~~CW2

uPP S kLIW 2

LJPPSRLS[

L;PPSkLSl:

UPPSRSRV

(jPPSRSk V

DI-'P!:.kS1E

[)PP~k~Th

LJ[)!:.uSECT
D[j~(j~LCT

UU~O~ECT

DDSDS[CT
DDSDSl.CT
DPPS~TCP

()PPSf~TCf-'

[IPPSSHAK

[;PPSS~AR

h CUDl- FOF NOTF Dr I Nt
cuPV C.00l FOR NnTE pnJNT rrA~CH
OPE~ tlO~~ ~ALF OF A GDS
(j~E- CT OF L(IS CONTROL A r ~ A
(lPtN A LJUSLCP
G~~Cl Uf 0GS (ONTROL APFA
DPlI'>4 A (jlC LAFEP ~~DS
DSELT OF DD~ CONTROL AP~A
PERFUKM P(JINT ~lND TYPf C ON A
DSECT Of lOS CONTR0L APFA
k~C~lATL I U FOR A ro~ ~AlF
(}SE:C"f uf [Hl$ CONTROL ARFA
~(t Al) Wk 1 TE MODUL E FeR no S
DSEeT OF DD~ CDNTROL APfft
AL.1LAl kEAG WRITf FOR A ro~
D~ECT G~ DGS CONTRPL Ar~A
klLtASE A urSOECP
u~ECT uF DDS (ONTROl APfA
kbSt:~V~ A ULSDECR
LS~CT UF DOS (ONTPOl AfFA
GDS FAILOVFP/RfSTART
DDS kEAL lIME COpy
~'hAf\;C.

()[;~;N1Pl

S~~AhE

O[JSGSt:C T

LL ~~

A

eStlT Uf GDS CONTROL AREA

LJPPS~kCH

DPPSSRC~

~t:ARCH

uPP~STl

DPPSSTl

STOW fOR A [iDS

DPPSSWCH

Df'PSShCh

DPPSTbOS

LPPSTUOS

l;PPSUNlK

DPPSUNlK

l.JLISUS[C 1

LJD!:.uSE:LT
uuSu~I:.CT

DPPSLNSH

DPPSltNSH

(;PPSWf.-ST
uPPSXTCE

GPP!:>Wf<.Sl

[;PPTlBGT

DPPTCSVC

lJPf'TLLGl
DPfJTCSVC

[JPPTDlMP

GJ.;PTiJLMP

DI.JSLSl:Cl
DPPSX1CA

T~bLf:

FC~,

AN £NTkY wt-J ()

(;SECl UF nDS C(lNTROL AFfA
SWITC.H PF,1r-1ARY TO BACKUP FPR A [.'DoS
LS~LT OF 80S CONTROL AR[A
lAKE A bACKUP OUT f1F srRVICF
ll~t:CT CF 0US CONTPOl AFF A
uO~,

LStCl OF GDS CONTRnl

Ar~~

GSELT UF ~US CONTROL APfA
L[;S wRITL STATUS
lL(AT~ AlLUCATE A nOSXTCBC Fnk AN INPUT
LSlCl O~ DOS CONTROL Apr~
(EG~l TYPf 1 SVC RnUTINf
Ct-';AIN TYPE. 1 SVC ROUTINf
VALlf 11'(

[;PTCS\tC 1

Ct-;Ali'-4 FUl"CTION

['PPTUlMP
DPTDLMf.'l

LUAD MUGUlE PUPGE
RFfNTRANT
TLEX LCD U5f SCAN
TtbX LCb PUkGE SCAN
TtLX PO~l SCAN
~TIMEk t:XIT RTN

DPTLlMP~

DPTDlMP4
CPP1DSVC

lENGT~

UNSHAt-\E A DDS

uPTLJLf'I,P2

uPPTDSVC

A FIXED

UNlU( K A
f..;D~uSfLl

[IL'~'

IJPTfJlf
-"""
Copy 1

~-.--- .. }
Copy 2

Logging
Array
Copies

r---..-. _------

'-

--"

:- DBDADD

Figure C-8. VS Resident Loggable Array/DA Resident Log Array Relationship

C-11

LICENSED MATERIAL - PROPERTY OF IBM

DBINIT DO ...

r...........

-"~

DBINIT

Data Set

r---.

-"

PDS Directory Entry
Member Name

Item Control
Record

Data Record

t DBlltEMR
DBII#ARY{N)

DBAl TSEC HDR

DBII #LCB(M)

DBALTSEC #1

DBII#DDN(L)

DBIIRES2

DBALTSEC #(N-l)

DBflDARY

DBAl TPRI HDR
DBALTPRI

'1

DBALTPRI #(N-l)
DBlOCCB HDR
DBLOGCB #1

DBLOGCB #(M-l)
DON HDR
DON #1

DON #(L-l)

Figure (-9. DB Initialization Array PDS Directory Entry

C-12

LICENSED MATERIAL - PROPERTY OF IBM

DBINIT DD ...

PDS Directory Entry
Member Name

Item Control
Record

Data Record

Array Data

Figure C-10. VS Resident Array PDS Directory Entry

C-13

LICENSED MATERIAL -

PROPERTY OF IBM

DBINIT DO ...

PDS Directory Entry
Member Name

Item Control
Record

Data Record

DBLOGHDR
OBLHANAM
OBLHWNAM
DBLHCOPY
DBLHFREQ
DBLHBKCP

Array Oata

Figure C-ll. VS Resident Array with Logging PDS Directory Entry

C14

LICENSED MATERIAL - PROPERTY OF IBM

DBINIT DO ...

PDS Directory Entry
Member Name

Item Control
Record

Data Record

DBDACNTL
DBDATIR
DBDABKTl
DBDABKOT

Figure

c- )2.

DA Resident Array PDS Directory Entry

C15

LICENSED MATERIAL - PROPERTY OF IBM

VS Resident Data Base

SCVT

TIMED Array

---

SCVTTIME
SCVTTOET

:-

PTOE

PTOENEXT
PTOEINVL

Repeat for
}

Figure C-13. Time Management Control Blocks

C-16

each unique
PTIME request

LICENSED MATERIAL -

PROPERTY OF IBM

SCVT

SCVTLKCB

--------------~.L9CKCBLK

LOCKNEXT
LOCKWAIT

}

Repeat for
each unique
resource

WAtTCaL~

Wait Next
Wait

ECB
Repeat for
each task
wait for
} this resource

Figure (-14. LOCK-DEFLOCK Control Blocks

C-17

LICENSED MATERIAL -

PROPERTY OF IBM

The data recording and playback data set is a QSAM sequential data set
which contains the data collected as a result of the RECORD macro. It is
made up of fixed length physical records which contain variable length
logical records. The size of each physical record is specified through
the BLKSIZE=parameter of the DRECOUT nn card when recording the data.
Any given logical record may span two or more physical records.
The data set consists of three types of logical records:
pad records, and data records.

date records,

A date record is written at the beginning of the data set and whenever the
date in the Special Real Time Operating System Time Array changes.
A pad record is written at the end of a physical record whenever there are
less than 50 but more than 0 unused bytes in a physical record.

A data record is written as the result of a RECORD macro.
Whenever a date or data record spans more than one physical record, the
data that is not on the initial physical record is preceded by a subheader
on each physical record until the end of the logical record.
The format of each logical record is described in Figures C-15 through
C-17.

C-18

LICENSED MATERIAL -

0

4

2

1

length

time

..:>b

-I..

array _._.L::"~

flag

40

42

ID

I ID

10

8

5

I

I fla~_j:~~:,-~-:: I
10

PROPERTY OF IBM

I I

length

header

44

.-.

Bytes

Field
Name

----

Field Description, Meaning, Contents

4 bits

flag

Flag 4 is specified.

2

length

The entire length of the data.

4 bits

flag

o-

Date record contained entirely within
one physical record.

1 - Date record spans two or more
physical records.

2

length

Length is 0 if flag is O. Length is the
number of bytes of the logical record
contained on the physical record if
flag is 1.

28

time a.rray

A copy of the Special Real Time Operating

System time array contained in the data
base.
2-92

ID, Ii) ~ ID,...

Valid three-digit hexadecimal numbers
that may be used in recording data.

Figure C- 15. Date Record

C-19

LICENSED MATERIAL - PROPERTY OF IBM

o
Flag

End of physical record

1

Unused

Bytes

Field
Name

4 bits

flag

Figure C-16 Pad Record

C·20

Field Description, Meaning, Contents
This field contains a flag of 6 which
indicates that the remaining data on
this physical record is invalid.

LICENSED MATERIAL -

o

2

8

4

I

,---f_l_a_g---l_~_llengt h I time

PROPERTY OF IBM

10

length]

header

End

10

Bytes

Field
Name

Field Description, Meaning, Contents

4 bits

flag

o-

Data contained entirely within one
physical record.

1 - Data spans two or more physical
records.
12 bits

ID

Three-digit hexadecimal ID supplied
during data recording (RECORD macro).

2

length

The length of the entire data record.

4

time

Time contained in the Special Real
Time Operating System time array when
the data was recorded, measured in
decimal 10 milliseconds units HHMMSSth.

2

length

If flag is 0, length is O.
Length is the number of bytes of the
logical record contained in the
physical record if flag is 1.

Figure C-17

Data Record

C-21

LICENSED MATERIAL -

PROPERTY OF IBM

The message data set is a partitioned data set. The data set contains
variable length records, the maximum size is 291 bytes. Each message
is identified by a unique three-digit number. To avoid duplication of
numbers. each subsystem of the Special Real Time Operating System will
be assigned a unique set of numbers (this is by convention only) for its
message.

1.

Directory Entry:

o

B

!DPpnnnlllW

14

12
TTRC

I

Size

nnn

Message number
Blank spaces
Relative track position
Message length

~~

TTRC
Size
2.

1

0

I

Member:

Flag

I

RC

3

4

lAC

I

5

Lgth

luv

10

6

LI CONV I SN I DISP

IL]

291
fText

There will be a L, CONV, SN, DISP field for each variable specified.
Flag
RC
AC
Lgth

Figure C-lB

C-22

Flag byte in hexadecimal
o - do not affix date to message
1 - affix date to message
routing code in hexadecimal
action code in character
length of message in hexadecimal

Message Data Set Format

LICENSED MATERIAL - PROPERTY OF IBM

The CINFD table is placed in the OS/VSl nucleus during the Special
Real Time Operating System SYSGEN. In systems without External
Interrupt Handling, it resides in the pageable nucleus; otherwise, in
the fixed nucleus. The SETPSW routine returns the address of this
table in register 1.

CINFD
+0

Contain the constant C'CINF'
CINFDTIT

+4

Address of the Type I SVC Branch Table in
(DPPTYPlT)
module DOMISVCl
CINFDT2T

+8

+12

Figure C-19

Address of the Type II SVC Branch Table in
module DOMISVC2
(DPPTYP2T)
CINFDPRB

CINFDFRC

Nonzero if
continuous
monitor or
PROBE
active

Failoverl
restart
writes can
be done if
zero.

CINFD Without External Interrupt Handling

C-23

LICENSED MATERIAL - PROPERTY OF IBM

The remainder of the CINFD table exists only in systems with external
interrupt handling.
+12

I

CINFDPSW

10

CINFDPSW
Save OS/VSl EXT.NEW PSW
CINFDPSW

CINFDTPE

RESERVED

External time
standard period
In seconds

+2°10

CINFDPSS
+24

10

Address of substitute external FLIH (DOMICEXT)
CINFDEBI

+28

10

ECB for Failover confirmed external interrupt
CINFDTCI
Addr of TCB that is waiting on CINFDEBI
CINFDEB2

+36 10

ECB for External Time sync interrupt
CINFDTC2
Addr of TCB that is waiting on CINFDEB2
CINFDCLK

+44

10

TOD clock value when external time sync received

+48 10
+52

10

Figure C-20

C-24

CINFDCLK
POST
Eligibili ty
Bits
(Note 1)

CINFDFLI
X'OO'Substitute
Ext.FLCH
not initialized

CINFDCC
Condition
code from
STCK instruction
(Bits 2-3
of Byte)

CINFDGEN
Feature Bytes
(Note 2)

CINFD with ExternaL Interrupt Handling

LICENSED MATERIAL -

PROPERTY OF IBM

The remainder of the CINFD table exists only in systems with Special
Real Time Operating System clock comparator support.
CINFDEB3
+56

ECB for clock comparator interrupt

10

CINFDTC3
+6010

Addr of TCB that will wait on above

Note 1
CINFDECI

lxxx

h,{XX

CINFDEBI can be posted

CINFDEC2

xlxx xxxx

CINFDEB2 can be posted

CINFDEC3

xxIx xxxx

CINFDEB3 can be posted

CINFDBTM

lxxx xxxx

Ext. time standard SYSGENed

CINFDBSW

xlxx xxx x

Failover confirmed
interrupt SYSGENed

CINFDBCP

xxIx xxxx

Special Real Time Operating
System clock comparator
support SYSGENed

CINFDEC4

xxxI xxxx

Set when failure confirmed
signal received

Note 2

Figure C-2l

CINFD with Clock Comparator Support

C-25

LICENSED MATERIAL -

PROPERTY OF IBM

This section describes the first 620 bytes of the failover/restart
bootstrap module (Module DOMIRBT).
DOMBVADl
Virtual address of first 2K of bootstrap
DOMBRADl

+4

Real address of first 2K of bootstrap
DOMBVAD2
Virtual address of second 2K of bootstrap

+8

DOMBRAD2
+12

10

Real address of second 2K of bootstrap
DOMBVAD3
Virtual address of DOMIRNIP
iJOMBRAD3
Real address of DOMIRNIP
DOMBVWK
Virtual address of work area
DOMBRWK (64 bytes)

+28

10

Up

to 16 real addresses of work area (32K maximum)
DOMBWKL

+92

10

Length of work area (32K maximum) (Note 1)
DOMBCHRS
CCHH of start of real storage dump on failover/re$tart

Figure C-22

C-26

DOMBOOTH

--Failover/Restart Bootstrap Header (Page 1 of 6)

LICENSED MATERIAL -

PROPERTY OF IBM

DOMBCHRE
+1°°10

CCHH of end of Real Storage dump on fai1over/restart
data set
DOMBCHPS
CCHH of start of paging data sets copy on fai1over/
restart data set
DOMBCHPE
CCHH of end of paging data sets copy on fai1over/
restart data set
DOMBCHJQ

+112

10

CCHH of start of SYS1.SYSJOBQE dump on fai1over/
restart data set
DOMBCHJQ

+116

10

CCHH of end of SYS1.SYSJOBQE dump or fai1over/
restart data set
DOMBC2JQ

+12°10

CCHH of start of first SYSl.SYSJOBQE data set
DOMBC2JQ

+124
+128

10

10

CCHH of end of first SYSl.SYSJOBQE data set
DOMBC3JQ
Addr of UCB containing
first SYSl.SYSJOBQE
data set.

DOMBCHJ2 (162 Bytes)
CCHHCCHH/
CCHHCCHH & UCB for next 9
SYSl.SYSJOBQE data sets if any

DOMBCHSW
CCHH of start of SYSl.SYSWADS dump on failover/restart
data set
DOMBSCHSW
CCHH of end of SYSl.SYSWADS dump on failover/restart
data set

Figure

C-22

DOMBOOTH--Failover/Restart Bootstrap Header (Page 2 of 6)

C-27

LICENSED MATERIAL -

PROPERTY OF IBM

Do:t·1BC2SW
+300

10

CCHH of start of SYS1.SYSWADS data set
DOMBC2SW

+304 10

CCHH of end of SYS1.SYSWADS data set

+308

10

DOMBC3SW
UCB addr for
SYS1.SYSWADS

10

Data set (MASTER
partition)

DOMBCHS1
CCHH of end of ,SWADS dumper on

Data set (MASTER
partition)

DOMBC2S1
CCHH of start of SWADS1 data set

(MASTER partition)

DOMBC2S1
CCHH of end of SWADSI data set

+312

+324

DOMBCHS1
CCHH of start of SWADS dump on
fai1over/restart

fa11overrr~C!f"!!I"f"

DOMBC3S1
UCB address of SWADS data set

10

DOMBCHS2
CCHH of start of SWADS2 dump on failover/restart
data set (SLAVE Partition)
DOMBCHS2
+332

10

CCHH of end of SWADS2 dump on failover/restart
data set (SLAVE Partition)
DOMBC2S2
CCHH of start of SWADS2 data set (SLAVE Partition)
DOMBC2S2
CCHH of end of SWADS2 data set
DOMBC3S2
UCB address SWADS2
data set

Figure C-22

C-28

(SLAVE Partition)

DOMBCHSP
Reserved

DOMBOOTH--Failover/Restart Bootstrap Header (Page 3 of 6)

LICENSED MATERIAL -

PROPERTY OF IBM

Reserved
+348

+352

10
10

Reserved

Reserved
DOMBTCBU

Address of MASTER RT Job Step TCB
DOMBTCBO
Address of SLAVE RT Job Step TCB or zero
DOMBWTOA
Address of a 3210
or 3215 console

Reserved
DOMBCTLR

Control registers 0-15 (64 bytes)
DOMBGPR
Registers 0-15 for reserve (64 bytes)
DOMBRPSW
Resume PSW (8 bytes)
DOMBRPSW
+500

10
DOMBCPUI

+504

10

Target for a STIDP instruction
DOMBCPUI

DOMBCKC
Clock comparator value at restart write

Figure C-22

DOMBOOTH--Failover/Restart Bootstrap Header (Page 4 of 6)

C-29

LICENSED MATERIAL - PROPERTY OF IBM

DOMBCKC
+516

10
DOMBCK

,

TOD clock value at restart write
DOMBCK

DOMBPT
CPU timer at restart write
DOMBPT

DOMBSTE
+536

10

Real storage size
DOMBTYP
UCBTYP field of failover/restart data set

+544

10

DOMBMAXB
Maximum blocksize of device containing failover/
restart data set
DOMBCC
Number cyl of device
containing failover/
restart data set

DOMBHH
Tracks/cyl of device
containing failover/restart
data set
DOMBFACT

+552

10

Device dependent information
DOMBTOL

+556

10

Figure C-22

C-30

Device dependent information

DOMBOOTH--Failover/Restart Bootstrap Header (Page 5 of 6)

LICENSED MATERIAL - PROPERTY OF IBM

DOMBDSCB

+560

10

DSNAME (44 bytes) and BBCCHHK of format 1
DSCB of failover/restart data set (52 'bytes)
DOMBTIME
Registers 0 and 1 from TIME macro at restart write
DOMBTIME

+616

10

Note 1:

Figure C-22

The length of the work area "is the same as the
maximum blocksize of the device where the
failover/restart data set is allocated.

DOMBOOTH--Fai1over/Restart Bootstrap Header (Page 6 of 6)

C-31

LICENSED MATERIAL -

PROPERTY OF IBM

CONTROL BLOCKS
The following pages contain reference information about content and
format of Special Real Time Control Blocks. The control blocks
described here are used by more than one module of the system. The
block descriptions appear in this section in the order that they appear
in this index.
DSECT

DESCRIPTION

MACRO CALL

DBALTPRI
DBALTSEC
DBARRAYD
DBBLOCKD
DBDACNTL
DBDADD
DBDEFD
DBDIRB
DBDIRR
DBDMPHDR
DBITEMD
DBLOGCB
DBLOGHDR
DBPBT
WAREA
BRTI
BRT2
DRT
GFCB
GFBE
IMP
LCB
LOCKCBLK
WAITCBLK
RCT
MDT
MDAT
PTIMEL
PTQE
PWQE
REPL/SUPL
PROBL
SCVT

Primary Array Locator Table
Secondary Array Locator Table
Array Macro Expansion
Block Macro Expansion
DA Array Control Header
DA DDNAME Table
DBDEF Macro Expansion
Data Base Directory Entry - BLDL
Data Base Directory Entry - READ
DUMPLOG Header Record
Item Macro Expansion
Data Base Logging Control Block
Data Base Logging Header
Data Base Page Boundary Table
Data Base Offline Work Area
Type I SVC Branch Table
Type 2 SVC Branch Table
Data Recording Table
GETWA/FREEWA Control Block
GETWA/FREEWA Block Entry
Input Message Processing Table
Load Control Block
LOCK Control Block
WAIT Control Block
Message Pointing Code Table
Message DCB Table
Message Address Table
PTlME Parameter List
PTIME Queue Element
PURGEWQ Parameter List
PATCH/REPATCH Parameter List
User Parameter List
Special Real Time Operating System
Communications Vector Table
STAE Command Control Block
STAE User EXIT Interface
TCB Extension
Time Array DSECT
Task Management Control Table
Work Queue Element
Subsystem Communication Vector Table

DBALTPRI DSECT
DBALTSEC DSECT
DBARRAYD DSECT
DBBLOCKD DSECT
DBDACNTL DSECT
DBDADD DSECT
DBDEFD DSECT
DBDIRB DSECT
DBDIRR DSECT
DBDMPHDR DSECT
DBITEMD DSECT
DBLOGCB DSECT
DBLOGHDR DSECT
DBPBT DSECT
DBWAREA
DPPXBRT
DPPXBRT
DRECBLKS
DPPXBLKS GFCB=Y
DPPXBLKS GFCB=Y
IMPBLKS
DPPXBLKS LCB=-Y
DPPXBLKS LOCK=Y
UPPXBLKS LOCK=Y
MSGBLKS
MSGBLKS
MSGBLKS
DPPXBLKS PTlMEL=Y
DPPXBLKS PTQE=-Y
PWQE
DPPXBLKS REPL=Y
DPPXBLKS REPL=Y
DPPXBLKS SCVT=-Y

STAEBLK
STAEXBK
TCBX
TIMED
TMCT
WQE
XCVT

C-32

STAEBLK
STAEXBK
DPPXBLKS
DPPXBLKS
DPPXBLKS
DPPXBLKS
DPPXBLKS

TCBX=Y
TIMED=PTlME
TMCT=Y
WQ=Y
XCVT=Y

LICENSED MATERIAL - PROPERTY OF IBM

Figure C-23 (1 Of 2). DBAL TPRI

•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
•
PRIMARY ARRAY LOCATOR TABLE
•
••
•
.................................... ................................ .
• FUNCTIO" - CONTAIN
•
USAGE
FOR LOCATING AND lSING •
••
A CATA BASE ARRAY.
•
•
• REFERENCED BY - CONTROL BLOCK
- LABEL = SCVTALOC
•
•
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
~

HIG~

INFO~~ATICN

a

SC~T

000 OBALTPRI OSECT

••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
••
•• THESE LABELS DESCRIBE
CATA IN
FIRST ENTRY
0) CF
•
Tf-!E TABLE. ENTRY 0 CeNTA INS CONTROL INFORMAT ION AND PO IN TER S.
•
•
•
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
T~E

000
000
004
008

OBALTBG1
OBAlT2NO
OBAlTLCB
OBAlTCC
ooe DBALTEN1
08AlTSZ1

OS
OS
OS
OS
OS
EQU

T~E

(E"TR~

OF
f

A(SECCNOARY ALT)
ACLOGGING CONTROL BLOCK TABLE)
ACCA ODNAME TABLE)

OF
OeAlTENl-[BAlTBGl

PRIMARY AlT ENTRY SIZE

F

F

••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
••
••
LABELS OESCRI8E
[ATA IN ALL SUBSEQUENT ENTRIES Of
T~ESe

•

ooe

l~E

THE TABLE.

81T
OS
ORG
BIT
OS
ORG
BIT

000 D8ALIGN
004
.OBMIN

OS
ORG
BIT

000
008

OS
ORG
elT

•

•
•DBMIN

.OBINIT

000

•

•
•
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
ORG
OBAlTBGl

*OBRES
000 DARES
001
·OBBLOCK
000 C8BlOCK
002
.08All GN

000
010

THERE IS ONE ENTRY fOR EACH DATA BASE ARRAY.

•
•D81NIT

OS
ORG
·C8RE[NT 8[T

••
•

08~EINT

OS

7
ON - CA RESIDENT
OFF - VS RESIDENT
XlCB'OOOOOOOl')
.-B'OOOOOOOl'
6
ON - BLOCKED
--- OFF - UNBLOCKED
Xl(B'OOOOOOlO')
.-8'00000010'
5
ON - VS PAGE BOUN[ARY ORIGIN
OFF - VS DOU8LEWCRO 80UNCARY OR'GIN
XlCS'OOOOOlOO')
*-B'00000100'
4
eN - ALIGN TO OCCUpy MINIMUM NUMBER OF ~S
PAGES - VALID ONLY IF 81T 5 IS OFf
OFF - USE BIT 5 TO DETERMINE BOUNDARY
XLC8'OOOOlOOO'.
.-8'00001000'
3
eN - INITIALIZE ARRA~ tAlA TO ~S - VALID
ONLY IF 81T 7 IS OFf
OFF - DO NOT INITIALIZE ARRAY DATA TO ~S
XlC8'OOOlOOOO'.
.-8'00010000'
2
ON - AFTER RESTART, REINITIALIZE VS ARRAY
FROM LOG OA1A SET - VALID ONLY IF
81T 1 IS OFF
OFF - 00 NOT REINITIAlIZE ARRAY
XLCS'OOlOOOOO'.

C-33

LICENSED MATERIAL - PROPERTY OF IBM

Figure C·23 (2 Of 2). DBALTPRI

020
*08LOG
*
*
000 OBLOG
040
*OBOUMMY
*
*
000 080UMMY
080
000 OBALTFlG
DBAL TeTA
001
004 DBALTBCT
006 OBAl TBAS
008 OBAlT8FT
009 OBAlTBOT
OOA CBAL TNOX

C-34

ORG
81T
OS
eRG
BIT
OS
ORG
DC
eQU
OS
OS
OS
OS
OS
OS

.-8'00100000'
1
ON - LOGABLE VS 'RRAY - VALID ONl Y IF
BIT 1 IS OFF
OFF - 'RRAY IS NCT lOGABlE
XL(B'01000000')
*-B' 01000000'
eN - DUMMY ARRAY - NO INITIALIZATION OR
a
P~OCESSING ~ILL BE PERFCRMEO
OFF - REAL ARRAY
XLCB'lOOOOOOO'.
·-8'10000000'
X'OO'
OBAlTFLG
CATA ACCRESS/TTR
All
BLOCK CCUNT
H
H
8LOCK SIZE/'RRAY SIZE
BLOCKS ON FIRST TRACK
XL 1
BLeCKS eN OTHER TRACKS
XLi
H
OAOO/lOGC8 TABLE INDEX

LICENSED MATERIAL - PROPERTY OF IBM

Figure C-24. DBAl TSEC

........... ..................•...............••......................
••
•
SEC(NOARY ARRAY LOCATOR TABLE
•
••••••••••••••••••••••••••••••••••••••••••••••••••• 4 ••••••••••••••••••••
•
••
•
LOW LSAGE
FOR LOCATINC AND LSING
~

FU~CTICN

••

CC~TAIN

REFERENCED ey -

•
000

ceNTROL SLaCK
CONTROL BLOCK

•

= CBALTPRI
= OBPBT

••

- LABEL : [BALT2~O
- LABEL = C8PBTAlT

•

••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
OBALTSfC OSEeT
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
•• THESE LABELS CESCRI8E TrE CATA IN
••
FIRST ENTRY (ENTRY 0) CF
*

000
000
002
004
008
OOC
010

I~FOR~ATIC~

A CATA BASE jRRAY

•

T~E

TrE TABlf:.

ENTRY

a CONTAINS CONTROL (NFORMATION AND POINTERS.

•

••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
CBAlTBG2 OS
OF
CBALT.NO OS
OBAlTNLM OS
O~AlTP8T OS
OBAlTPBS DS
OBALTUNS OS
OBALTE~2 OS
OBAlTSl2 EQU

H
H
f

NUMBER OF NUMBEREC ARRAYS PlLS
OF ARRAYS PLUS ONE
A{PAGE eOU~CARY TABLE
SIZE Of PAGE BOUNCARY TABLE
UNUSED

OF
CBALTEN2-DBALTBG2

SECCNCARY ALT ENTRY SIZE

•

TrERE IS ONE ENTRY FOR EACH OATA BASE ARRAY.

C~E

NU~BEREO

F
F

••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
•• TrESE LABELS DESCRIBE THE
••
IN ALL SLBSECUENT ENTRIES OF
O~TA

000
008
OOC
OOE
OaF

•

•
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
OR G
a e Al T BG2

•

a 10

Tt"E TABLE.

CBAlTNAM
OBAlTICB
CBAL1IRS
OBAlTUSE
OBALTLCG
OPAlTREC

as
OS
OS
OS
as
EQU

Cl8
F
H

Xll
XLl
2048

ARRAY ~AME
ITEM CONTROL BLOCK TTR
NUMBER OF ITE~ CC~TRCL BLGC~S
ARRAY ~SE CODE
ARRAY lCG FRECUENCY CODE
ITEM CONTROL BLeCK RECORD SIZE

C-35

LICENSED MATERIAL - PROPERTY OF IBM

Figure C-2S. DBARRAYD
•••••••••• 4 •••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

•
•
ARRAV MACR( eXPANSION OSECT
•
•
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
OBARRAVO OSECT

000
000 ceARSTRT
000 OBARN~ME
008 OBARBKCT
OOA OBAR8KSZ
OOC CBARCC~M
0140BARES
015
014 08ABLOCK
016
014 OBAALIGN
018
014DBAMIN
01C
014 OBAINIT
024
014 OBAREINT
034
014 08ALCG
054
014 OBAOUMMY
094
014 OBARFLGS
015 08ARUSE
016 OAAOALCG
096
016 DBARFLG2
011 CBARUNUS
01A OBARUPD
OlA C~ARUNS2
OlC CAARICBS
020 OAARIC8P
024 CBARCTAS
028 OBAROTAP
02C 08ARNOIT
030 CAARNOBK
034 CBARSTOP
ceA~SIZ~

C-36

DS
OS
OS
OS
OS
OS
ORG
os
ORG
OS
r.~G

os
ORG
OS
ORG
OS
ORG
OS
ORG
OS
nRG
CC
OS
CS
C~G

DC
OS
OS
CS
OS
OS
OS
OS
OS
OS
OS
eQU

OF
CL8
H
H
eL8
Xl(B'00000001'»
+-8'00000001'
XLce'OOOOOOlO'.
+-e'OOOOOOlC'
XL(S'00000100'.
+-B'00000100'
XL(e'OOOOlOOO'.
+-B'00001000'
XL(S'00010000')
*-8'00010000'
XL(R'00100000'J
.-B'00100000'
XL(S'OlOOOOOO'.
.-R'01000000'
XL(S'10000000')
+-8'10000000'
X'OO'
X
XLCB'lOOOOOOO')
+-8'10000000'
X'OO'
X
h
H
~

V
V
V
A
A
OF
OBARSTOP-CB~RSTRT

ARRAY NAME
BLOCK C(UNT
BLOCK SIZE
CA/LO( 00 NAME

USE CODE

UNUSEC
UPCATE lEVEL
UNUSEC
A(ITEM CONTRCL BLeCK START)
A(ITE~ CCNTRCL BLeCK STOP)
ACITEM CATA START)
A(ITE~ CAlA STOP)
NUMBER CF ITEMS
NUMBER OF ~lOCK CCNTROL 8LeCKS

LICENSED MATERIAL - PROPERTY OF IBM

Figure C-26. DBBLOCKD

••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

••
••
BLeCK MACRO EXPANSION OSECT
•••••••••• *•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
000
000
000
002
004
OC8
OOC
010
014

CBBLCCKO OSECT
CBBKSTRT OS
OF
ORBKSNUM OS
H
CSBKP~UM OS
H
CPBKBKIS OS
V
OBAKAK(P OS
V
OPBKAKDS OS
V
OBBKAKCP OS
V
ORAKSTOP D~
OF
CSBKSIZE f-QU
ceeKSTOP-DB8KSTRT

START BLOCK ~UMBER
STOP BLOCK ~U~BER
'A(SLOCKED ICB START)
A(PLO(KED ICB END)
AfBLOCKfD ITEM DATA START.
A(BLOCKED ITE~ CATA END)

Figure C-27. DBDACNTL

•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
••
•*
DA
CONTROL
•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
~RRAY

000
000
000
008
OOC
000
OOE
010
010
014
016
alB

OeCACNTl
OPCABGN
OBOANAHE
OBOATTR
CBCABKTl
D80ABKCT
CeCAUNUS
OBOAE~O

OPCASllE
OBDACTTR
DBOABKCT
OBOABKSl
OBCASTCP
OBCAlN1H

OSECT
OS
OS
OS
OS
OS
OS
OS
EQU
OS
os
OS
os
EQU

"EACH~

OF
CLa
OA ARRAY NAME
414
RELATIVE TTR ON CA DATA SET
XLt
RECORDS WRITTEN eN FIRST DA TRACK
XLl
RECORDS WRITTE~ CN OTHER DA T~ACKS
XL2
UNUSED
OF
DBCAENO-OBOABGN
Xl4
OB[AC~Tl RECORD TTR eN POS
Xl2
CA ARRAY BLeCK COUNT
XL2
OA ARRAY SLeCK SIZE
OF
DBDASTOP-DBCABGN

C-37

LICENSED MATERIAL - PROPERTY OF IBM

Figure C-28 (1 Of 3). DBDADD

.......... .......................................................... .
•
•
DIRECT ACCESS OOhAME TABLE
•
*•
•
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
~

••

FUNCTION -

•

•

A OCB FOR EACH CATA BASE,CATA SET. EAC~
•
BOAM OC8 IS PRECEEOEO BY T~E AOOR OF A LOCK CNTL BLOCK.
CC~TAINS

•
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••

••

REFERENCEO BY -

000 080AOO

CeNTROL BLOCK

= CBALTPRI

- LABEL: C8AlTOO

•

OSECT

••••••••••••••••••••••••••••• *•• •••••••••••••••••••••••••••• *••••••••

••

~

HEACER

F(~

DC~A~E

*

*

TABLE

•••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••*

000 OBODBG~
000 OADD~UM
004 OBDOUPD
006

008

OOC
OOC
OIC

OS
OS'
OS
OS
OS

OF
F
H
H
F

DC

ACO)

NUMBER CF ENTRIES
CURRENT UPCATE LEVEL
SPARE
SPARE

••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
•
• DATA BASE PARTITIONED C'TA SET eCB
•
••
*
••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
DATA ceNTROl BLOCK
•
•
ORIGIN CN WORD eOUNDARY
DC
OF'O'
DIRECT
ACCESS
OEVICE
INTERFACE
•
FOAD,D'JT8L
DC
8l16'0'

020

OBoDI~IT

•

021
024

026
028

02C
OZD

•

030

031

014
OlC
OlD
03E

040
041
044
048
04A
OftC

C-38

•

•

DC
DC
DC
DC
DC
DC
DC
DC
DC
DC
DC
DC
DC
-DC
DC
DC
DC
OC
DC

KEYLE,OEVT,TReAL
COMMeN ACCESS METHOD INTERfACE
8UFNO
AlICO.
Al](l)
BUFCB
AlleO)
8UFl
OSORG
BlZ'OOOOOOlCOCOOOOOO'
A(1)
IOBAD
FOUNCATION EXTENSICN
BFTEK,Bflh,HIARCHY
Rll'OOCOOOOC'
AL3(l)
ECOAo
RECfM
BLl'OOOOOOOO'
Al3(O)
EXlST
FOUNCATION BLOCK
Cle'OBINIT'
DDNAME
OflGS
Bll'OOOOOOlO'
8l1'OOOOOOOO'
IFLG
MACR
BlZ'OOlOOlOCOOlOOIOO'
8SAM-BPAM-QSAM INTERFACE
BL1'OOOOOOOO'
Al3Cl)
et-eCf<, GERR, PERR
Aill
SYNAD
H'O'
CINOI, CIN02
Al2COJ
BlI< 51 IE
WCPQ, wePt, CFfS~, OFfSW
F'O'

RERI

LICENSED MATERIAL - PROPERTY OF IBM

Figure C-2a (2 Of 3). DBDADD
050
054
055

C58
05C

DC

A( 1 )

DC

AllfO.
Al3(lJ

DC

•

DC
DC
05E
DC
060
DC
C64 OBOOENOI 0 S
DBDOl~

064
064

074
018
019
07C
01E

080
084

I

08C

•

•

•

A(D)

DC
DC
DC
DC
DC
DC
DC
DC

DC
DC

095

096

09C
OAO
OAZ
OA4
OA8
OAC
OAD

DC

DC
DC

OQ4

09A
Q99

fQU

0'
AlZ(O)
A «1 )
OF
CBODENDI-CBCDINIT

H'

••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
•• DC e FOR REA CI NG COM P0 sIr E I TEMS ARRAY
••
•
•••••••••••••••••••••••••••••••••••••••••• *••••••••••••••••••••••••••••
•
DATA CCNTROL BLOCK
•DBCDCIDS DC OF'O'
ORIGIN eN WORD BOUNCARY
DIRECT ACCESS DE\/ICE INTERFACE
•
DC
BLl6'0'
FCAO,D'JTBL

C85
088
089

A C1 )

IceA
NCP
ECeR, EOBAD
BSAM-ePAM INTERFACE
EOBW
o (RCT
lRECl
C~TRl, NOTE, POINT

DC

*

DC

DC
DC
DC
DC

•

aBO
OR4
OBb
OBB
OBC DB DOENDZ
OBDDlN2
OBC DBDDHEND
OBDOt-DRS

•

DC
DC
DC
DC

A( 1 »

AL 1 (0)
Al3(1)

DC
DC

H'O'

DC
DC
OS

AlZeO)
lRECl
A(la
OF
DBDDEND2-DBCDCIDS
OF
DBOCHEND-CBCDBGN

fQU

OS
EQU

KEYlE,DEVT,TRBAl

COMMON ACCESS METHOD INTERFACE
AlIIO)
8UFNC
Al3 (l )
BlJFCB
AL2(O)
BUFL
BlZ'OlOOOCCCOCOOOOOO'
DSORG
A( 1 )
IOBAD
FOUNCATION EXTENSION
Bll'OOOCOOOO'
BFTEK,BFlN,HIARCHY
Al3(1)
EOCAD
BlI'OOOOOOOO'
RECFM
Al3(O)
EXl ST
FCUNDATION BLOCK
ClS'OBCIOS'
OCNA~E
BLl'OOOOOOlO'
OflGS
BlIIICCOCOOOO'
IflG
9lZ'OOlCOOOCOOIOOOOO'
MACR
BSAM-BPAM-QSAM INTERfACE
Bll'OOOOOOOO'
Al3(l)
CI-ECK, GERR, PERR
AU)
S'rNAD
H'O'
CINDI, CINDZ
Al2(0)
BU.U,.."'lG CS

lA4 WANE"-QEr

0<)

188 WANREFSl ns
l8C WA~XTREF 1)5

190 WAFSTCTA OS
r")~G
210
190

wADElETE OS
ORG
CS
eRG
WA~ROlET OS
ORG
WAFSTIC8 OS
ORG
WANE"-PDS OS

180
190 WATFST
lAO

190
198
190
194

190

192
ORG
190 WAOIRECF 05

191

ORG

190 WAFlG1

DC

191 WAPEPL

OS
nRG

211

191

WAOTRFNO as
nRG
WAPRTBU< CS
ORG
WAINCCIR OS
nRG
WAFSTCIC OS
rqG
WANFSCiO OS
ORG
~AWRC I CS OS
ORG
WAENO,cIO as

192

O~G

191
101

191
1131

191
1Al
191
199

L91
195
191
193

11)1 WAF lG2

DC
192 WATSTERR OS
212
192
102
1 92
182
192
1A2
192

O~G

WAPR tNT
WA SN TK R0

WARC04

WAFlAG3
198 WAPACI(
lAO WAPOSCCB

C-50

OS
ORG

OS
ORG
OS
ORG

nc
os
os

tdOECE STORAGE)
SIZE OF GETMAIN FOR AID TABLE
A(AIo UPDATE TABLE)
~(lERO AID IN AID TABLFt

F

SF
F
F
4F
F

F
F
F

r=

Xl(S' lecoaoco')
*-A'1CCOOOCC'
Xl(P.'OOlOOOOO')
*-8'0010COOC'
Xl(B'OOOlOOOO')
*-P'OOOlJOOO'
Xl(B'OCCOI000')
*-P'00001000'
Xl(S'COOOOIOO')
*-A'OuOOO}OO'
Xl(8'OOOOOOlO' )
*-6'00000010'
XlC8'COOu0001')
*-R'JOOOOOOl'
X'OO'
Xl(f:"100008CO' »
*-A'lCCOOOOO'
XlCB'OlCOOOOO')
*- R' 01000000'
Xl(B' 00100000')
*-8'0010000C'
Xl ( B• 000 10 0 0 0 • »
*-B'oaOlCOOO'
Xl(P.'C0001000'j
*-8'00001000'
Xl(fPOOCOOIOO')
*-B'0000010C'
Xl(8'OOOOOOlO')
*-""OOOOOOlO'
Xl ( P. ' C0000001 ' )
*-8'00000001'
X'OO'
Xl(B'lOOOOOOO')
*-8 'lCOOOOOO'
Xl(R'CIOOOOOO')
*-8'01000000'
Xl(B'001000CO')
*-A'0010000C'
Xl(B'00010000')
*-B'00010000'
)C'OO'

A(CPPXCeCA)
A ( 0 P P )C 0 8l G'
OA CNTl RECORD BUFFER

OF OLD LCGA8lE ARRA~S
OF NEW lOGABlE ARRA~S
A(NEW REFRF.S~ TABLE)
SIZE CF NEW REFRFSH TABlF.
A(NEXT REFRESh TABLE ENTRY'
~UMBER
NU~AfR

o

F

A(CBASPCS DCB)

LICENSED MATERIAL - PROPERTY OF IBM

Figure C-37 (3 Of 3). WAREA
\oj AR ece R
05
lA8 WADECBRD OS
lAC WAtoo1FSAGf 0')
lRO ~ADE~TYP OS
1 C8 WA[ACNTR OS
1 DO iliA S Tnp
os
WAS I 1£
E OU
11)0 WAUt\E
os
250 APEASTnp os
APFASIIE EOU

144

F

A«(8ASPCSR eC81

F
F

A(CECel~TUI

~F

OF~lVP

fa PRINT)
RETURN AREA
CA ARRAY COUNTFR

A(~ESSACE

F

OR

~203

00

",AsrOP-WASTART
Cll21

... OLOS 1

Ll~E

FOR 5YSPRINT

00
~REASfOP-AREASTRT

Figure C-38, BRT'

•

•
•

GENERATE CSECTS FOR eRA~CH TABLES uSEC TO OBTAIN
E~TRY POINT ~F SRTns SVC ROUTINES FeR BRA~C~ ENTRY

•

CSE(T
DC
A' 0 I
A (0)
BRTIPSV( CC
SR Tl CS v( DC
A 10 I
p,RTICSVC DC
A (0 J
E\RTlIIIS\( CC
A COl
A(O)
ARTlSV(P DC
AIO)
All TlCBeT CC

•
•

000 AP Tl

000
004
008

DOC
010
Ol4
018

Figur~

•

10=04
ID=CS
10=12
10= 16
I D: 20
10=24

•
•
•
•

•

X'04'

x'oa'

NC-NC
PATCI-

UNU Sf 0

ep ATC'"

EP=OPPTDSVC

X'OC'

(!-Alt-,

X' 10'
X' 14 I
X • IS'

GETIFREWA
SETPSw

EP-=OPP1PSV(

FP=OPP1CSVC
EP=OPP TWSVC
EP -= 0 P Px SVC P
C8-( ET /FRE E P 0 P P TC ~G T

=

C-39. B RT2

•
•

•

oSECT
A (0) •
DC
A(O) •
004 tHH2PT I~ DC
008 BRTlPr,FX CC
A10 I •
A(O) •
OOC BRT2PGFIl DC
A (0)> •
010 BI

•

GFBEL~Tn

C-52

feU

ALLOCATED

GF~flD

A(O)
*-GFBE

(~

CIRCl;L~R

LICENSED MATERIAL - PROPERTY OF IBM

Figure C-43. IMP
000

000
002
OOA
012
OlA
OlB
OlC

010

I~P
DSECT
INPUT MESSAGE PROCESSING TABLE
•
H-E INPUT ~ESS4GE PROCESSING TAALE( I'1P) IS AN INCORE TABLE WHICH •
•
• CONTAINS THE VALID SRTOS SYSTEM OPERATCR COCES.T~E I~P CONTA(~S
INFCPMATIO~ UTILIZED BY THE SRTOS INPUT MESSAGE ~(~TINES.IT IS
*
•
•
I~CLUOED AS ARRAY DPPXI~P I~ THE CAlA BASE AT SYSTEM BUILD TI~E
•
IMPCNT
DC
XL2'O'
~U~BER OF E~TRIES IN IMP
* THE FOLlCWING PARAMETERS CCNSTITLTE AN ENTRY.
I~PC~DE
DC
ClS"
T~E E~TRY CODE
IMPTASK DC
ClB"
TASK~A~E OF TASK TO BE PATC~EC
IMPLM
CC
ClS"
fNTRY POINT NAME OF THE LM TO PATCH
IMPID
OC
Xll'O'
10 ASSIGNED LOAD MODULE WHEN PATCHED
IMPLGTH DC
XL1'O'
NU~BER CF BYTES IN E~TRY
* T~f ~U~AER OF PARAMETER CONVE~SICN COCES ~ LENGTHS IS EQUAL TO THE
• NUMBER OF PARA~ETERS THAT MAY BF PASSED TO THE SPECIFIED lOA( MODULE
t~PCCN
DC
CLl"
CONVERSION CODES CF THE PARAMETERS
•
THAT MAY BE PASSED TO THE LOAD
*
MODULE. C-CHARACTER (ATA
X-HEXADECIMAL DATA F-FULL~O~D DATA
•
I~PAR~LN DC
XLl'O'
LENGT~ OF THE PASSED PARAMETER

Figure C-44.

Lea
OSECT

000 L CB

•••

Lce

•
L CBN EX T

LOAC CONTROL BLOCK - CHAINED TO TCBX

P(INTfR TO NEXT LCB I~ CrlAI~
000
CC
A' 0) •
004 LCRLCAA DC
A(O)
ADDRESS OF ASSOCIATED Lce eN TMCT-lCB RE~T CH
008 lCBFLAGS DC
X'O·.
FLAG BIT S
ATTRIBUTES MCVEC l~ F~CM POS2ATRl AFTER BLOL
OOq LCBATRl DC
X' O' •
USE CO~NT FOR Lce ON TMCT-Lce RENT CHAIN
OOA LCBUSFCT DC
H'O'
OOC
oqG
LCB~SECT
OOA LCBREQCT OC
H'O'
REQUEST CCUNT FCR LCB C~ TCBX-LCB CHAIN
ENTRY POINT ADDRESS
OOC LCBEPAC CC
A(O'
ENTRY POI~T NAME
010 LCBEPNA~ DC
CLS"
018 lCBBlDL
DC
A(O • •
ADDRESS OF BLOL TABLE FOR LCAC BY DPP1SMON
ADDRESS nF ECR T~Al DPPTDLMP wAITS ON
OlC LCBEceAC DC
A(O'
LENG TH OF L( e
LCBLNTH EQU
*-lCR
•
lCBFl~GS EQU'S
LCAfUNRS EQU
X'Ol'
LCH UNRESOLVEC B[T
LCBFTMCT fOU
X'04'
THIS LCq IS CHAINED TO A TMCT-lCB CHAI~
LCBfLOAD FQU
X'OR'
LOAD P~OCESSING BY DPPlSMCN RECUESTED
LCRFOEL feu
X'lO'
DELETE PPCCESSING BY CPPTSMCN PEOUESTEO
LCAFLMP Eeu
X'20'
LOAD MCDULf PURGE REQUESTED
•
LCRATRl feu's
- T~fSE ATTRI8UTES ~RE MOVEC IN FRCM PDS2ATRl
LCBARENT EQU
X'BO'
REENTERABLE
LCAAREUS Eeu
X'40'
REUSAHLE
lCBAOVlY fOU
X'20'
IN OVERLAY STRUCTURE
lCBAOl
fOU
X'CS'
C~LY LOACABLE
LceAEXEC EOU
X'02'
EXECUTABLE

C-53

LICENSED MATERIAL- PROPERTY OF IBM

Figure C-45. LOCKCBLK
000 lOCKCBlt< DSECT

•••
•

.*.

LOCK C("TROl BLOCK

000 lOCKNEXT DC
004 lCCK~AME DC
008 l(lCKFLAG DC
ORG
009
008 lrCKTC8A DC

OOC L OCKNFlG DC
ORG
000
OOC LOCKWAIT DC
010 LOCKXCVT DC
Ot4 LnCKCNT DC
018 LOCK E~O
OS
lrCKlNTH EQU

A(O.
Cl4 • •
X'OO'
lOCKFLAG
A(O)
X'O'
LOCKNFLG
Ala)
A(e)
H'O'

ADDRESS OF NEXT LCC~CBlK
RESOURCE f\AME
RESOURCE RESERVE FLAG
ACCRESS OF TASK CeNTROL I NG RESCURCE
ADDRESS OF WAIT ceNTROL BLeCK
A(XCVT)
NO.OF DEFLOCK'S FOR THIS RESOURCE

00

lOCKENO-LOCKCBLK

Figure C-46. WAITCBLK
000 WAITCBLK DSECT
000 WAITFLAG DC
X' 0'
WAfTFLAG
001
ORG
A(OI
000 ~AI TNEXT DC

004 WAITECB
"AITH~O

DC

Feu

WAITLNTH EQU

C-54

F'O'

•

WA IT ENO-WA (TCBL K

RESOURCf RESERvE FLAG
NEXT ~A(T ceNTRaL BLeCK
WAIT ECB

LICENSED MATERIAL - PROPERTY OF IBM

Figure C-47. RCT

000 RCT

oSECT

~ESSAGE

ROUTING CODE TABLES

••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
•
ROUTING COOE TABLE(RCT) IS AN INCCRE TABLE
•
T~E

•
•
•

WHIC~

CONTAI~S

T~E

CeDES OF THE VALID SYSTEM ~ESSAGfS DE~ICES.T~E ROLTI~G CODE TAeLf •
C('NTAINS (NFCRt-1ATION UTILIZEC BY T~E SRT(~S PEAL TIMF MESSAGE
•
HA~DLFR. IT IS INCLUOED AS ARRAY DC,.,XSMPC IN ThE [ATA BASE
•

••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
WTO DESCRIPTOR AND
CODES

000 RCT~TO
OC
Xl4'O'
004 RClCNT
rJC
XLZ'O'
006 RCTDCCNT DC
XL2'O'
008 RCTEPCNT DC
XL2'O'
• l~f F.NTRY PARA"'ETERS ARE
• RCTAlTRC PARAMETERS.
OOA R(TRC
OC
XLI'O'
OaR RCTGROUP cr.
XLI'O'

ROUT(~G

T~E

NlJ,..BER CF F.~TRIES IN TARLE
NUMBER CF OCNAMES IN TABLE
NU"'BER OF E~TRY PCI~T NAMES IN TABLE
RCTRC RCT~RCUP RCTUNIT RCTDEVCE ANC THE

•
•
•
•

•

OOC RCTUNIT

DC

XLl'O'

000

DC

XLI'O'

•
•
•RCTCEVCf
•
•

FLAG.I-FU~CTICNAL

•
•
•

•
•
•RCTfP
•

OOE RCTALTRC DC
OOF
011

R(Tct~A'"

ROUTING CODE ASSIGNEe TO A CEVICE
FOR A DISPLAY DEV[CE AN ACCESS AREA
IS ASSIGNED.FOR AN CS DEVICE AN
INDEX INTO ThE DO~A~E FIELD IS
ASSIGNED.FOR A LOAD ,..OOULE A~ INDEX
INTO T~E ENTRY PCI~T FIELD IS
ASSIGNED.
THIS FIELD (NLY HAS "'EANING fCR A
DISPLAY DEVICE.(T IS SET TC ZERC FOR
ALL OT~ER DEVICES.T~E FUNCTICNAL
AREA CF A DISPLAY IS ASSIGNED.
AITS 0-3 DESIGNATES A
FUNCTlrNAL CR NCN-FU~CTIONAL DEVICE

XLl'O'

CC

ClS' ,

DC

CL8' ,

O-NO~-FUNCT(C~Al

AITS I6-31DESIGNATES THE DEVICE
I-SYSTE~ CONSOLE 2-0S DEVICE
3-DISPLAY DEVICE 4-RESERVED
5-LOAC MODULE
AN ALTER~ATE ROuTE CODE TO ~HICH
MESSAGf CAN BE PASSED
OS DEvlCF DCNAME TO kHICH MESSAGE
CA~ BE ASSIGNED.
ENTRY POINT OF A LOAD ,..ODULE TO
WHICH MESSAGES CAN RE PASSED

Figure C-48. MDT
000 MDT

DSECT

~ESSAGE

••••••••••••••• * ••••

•
•
•
•
000

OSE
OBF.
lIE
l1E

**~

CCB TABLE

••••••••• *•••••••••••••••••••• * ••••••••••• * ••••

T~F MESSAGE CCB TABLE(MCT) IS AN INCORE TABLE wHICH CONTA(NS H"E
OPENfD OCR'S USED AY THE SRTOS MESSAGf HA~DLER. ~DT IS BUILT BY
T~E ~ESSA(E ~ANOLER INITIALIZATION PRCGRA,... T~E TABLE IS PCl~TEO
TO BY THE ~ESSAGE ADDRESS TABLE PHAT».

•
•

••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
OPENED MESSAGE CCB

MOTMSG
DC
Cl94 1 •
• ANY NUMBER CF CSAM CUTPUT eCB'S
MOTQSAMI DC
Cl96"
MDTQSA~2 DC
CL96"
MDTQSAM3 DC
Cl96"
MCAQS,,..4 DC
CL96"

BE SPECIFIED.
OPENFD CSAM OUTPUT
OPENED CSAM OUTPUT
OPENED QSAM OUTPUT
OPfNED CSAM OLTPLT

•
•

CA~

DCB
DCB
DCB
CCB

C-55

LICENSED MATERIAL - PROPERTY OF IBM

Figure C-49. MOAT

000 MOAT

DSECT

~ESSAGE

ADDRESS TABLE

••••••••••••••••••••••••••••••••••••••••••••• *••••••••••••••••••••••••

•
•
•
•
•
000
001

T~E MESSAGE ADDRESS TABLE(MDAT) IS AN INCORE TABLE WHICH CONTAI~S •
THE ACDRESS'S CF LeCK C(NT~Ol BLOCKS,~SG RCT, OPENED DCB'S AND
*
OTHER INFCRMATION UTILIZED ev THE SRTOS REAL TIME ~ESSAGE HANDLER.
IT IS RUILT BY THE MESSAGE HANDLER INITIALIZATICN ~OUTINE.
•
THE TABLE IS PCINTED TO BY THE SCVT AT LGCATICN SCVTMWA.
•

••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••
NUMBER OF CSAM(OS DEVICE)DCB
DC
Xll'O'
ADDRESS'S SPECIFIED
•MDATFLG DC XLl'O'
RESTART FLG
0- PRE RESTART 1- POST
•MDATRES DC XlZ'O'
RFSER\lE BYTE
MDATC~T

~ESTART

002
004

DC

A(O)

ACDRESS SRTGS LOCK CONTROL BLCCK
UTILIZED BY MESSAGE ~ACRC P~CCfSSOR

DC

A(O)

ADDRESS SRTOS LCCK CONTROL BLCCK
UTILIZED BY MESSAGE CUTPUT ~OUTINE

DC

A(O)

010 MCATMCCB DC
014 MC'ATOOCB DC

A(O)
A(O)

ACDRESS OF MESSAGE RCUTING CODE
TABL E
ACDRESS nPENED MESSAGE DATA SET CCB
ADDRESS OF OPENED CSAM OUTPUT DCB

008

~OATLCK

•
•MDATlCKO
•
•

OOC MDATRCT

•

(DPP~"'SG)

(DPPr-'~SG1)

Figure C-50. PTIMEL
000 PTIMEL

***

•

uSECT
PTIME INPUT PARAMl:TERS

*lit

REG 1

•

RE'~

(;

= ADDR.OF

=

.*.*
>9-

=

000 PTIMSflG DC

00(,

ORC

009 PTIMCNT

DC

XLI'O'
Al)(v)
XLl'O'
Al3(O)
XLl'O'
AL3(O)
PTIMSTUP
Al3(O)

oac PTIMPTCH

0(,

AlO)

PT IMSTRT
PT IMIFLG
PTIMINTL
PTIMEFLG
FTIMSTOP

DC.
lJC

DC
DC
DC

010 PT IMPARM DC
014 P1IMPTQE DC
PT IMLNGH E.CoU

*PIIMFPR()

f'-:U

PTIMFDPC EQU
PTIMFDPW EQU
PTIHFADR EwU

*PTIMCfG

EQU
EClU
EQU

PTIMREL
PTI"tOD
PTIMADJ E~U
PTIHAODR EClU
PT IMLN
E~U
C-56

> ZERO)

= 4 => AOD OPTION
= L ::;) M(JO UPTl(IN

*

001
004
005
008
009

SUPERVISOR LIST (IF REG 0

(. => RET OPTION

lL=-) lH:L OPTION

ACO)
ACO)
*-PTIMfL
PURGE OPTION FLAGS
X'ul'

X'OZ'
X'04'
X'40'

TIME OPTION FLAGS
X'OS'

TIME OPTION FLAG
START TIME VAlUffOR ADDRESS)
PURGE OPTION FL~G
INTERVAL TIME VALUE COR ADDRESSt
liME OPTION FLA~
STOP TtMf VAlUf.fOR AGORESS)
COUNT VAlur
PATCH SUPERVISOR LIST
PATCH PROBLEM PARAMETeR LISl
PTOf AOOR FOR MOD OR DEL
PURGf OPATCH : U
PURGE DPATCH = C
PURGE OEPATCH = W
PTOE 10 INCLUDED

X'Ol'

THIS FIELD CONTAINS COljNT VALUE
RELATIVE TIME

X'OZ'

100 TIME

X'P4'
X'80·
*-PTIMEL

ADJUSTED TIME
THIS FIFlO CONTAINS TIME ADDRESS

•••*
•
•*"
•

...
**

LICENSED MATERIAL - PROPERTY OF IBM

Figure C-51. PTOE

COO PTOE

•••
•
•
•
•

000
004
008
OOC
OOE
OOF
010
014
OIC
024
02C
020
02E
010
034
018
Ole

OSECT

PTOf = PTIMER QUEUE

*P TQEt\ EXT

A PTOf IS CREATED IN RESPCNSE TC A PTIME MACRO CALL.
T~E

DC

P TQ F TIM E CC

PTOF It\Vl
P TOE CNT
PTQFFLGl
PTQFFlG2
PTOE P ~ RM
PTOFT~SK

PTQFEP
PTQFPREF
PTOEFl AG
PTQFCL
PTOFPRTY
PTOfECA
PTQFFREL
PTQEFREA
PTQFTCAX
040 PT Of PR Bl
048 PTQFORCS

•••
•PTQEDEl

DC
OC
CC
DC
0C
DC
DC

•PTOEOPU

CHAI~

A(

OF PTOE'S IS POINTED Te AY

a)

ACO)
ACO,

H'O'
X'O'
X'O'
A(O)
C lA'

,

DC

CUP'
C LB' ,

DC
DC
DC
DC

X'O'
t-<. 0'
~ lO »

OC

,CC
DC
DC
DC

PTOE

Eeu
PTOFFREE EQU
PTQEINF FOU

•••

ELf~ENT

PTOE

EOU
PTOFOPC EQU
PTOFOPW FOU
PTOElt\TH Eeu

X'D'

A(O)
A(O)
A (0)

2F'O'
F'O'

T~E

SC~T

(SC~TTOETJ.

-) NEXT PTOE IN CHAIN
- > TIM E 0 F NEXT PAT CH (10M IL uN ITS )
INTERVAL FOR REPEATING PTOES
CCUNT VALUE (. PATC~ES UNTIL STOP)
FLAG BYTE I
fLAG PYTE 2
-) PRCBLEM PARAMETERS
PATCH T4SK NAME
ENTRY POINT t\AME
P~TY REFFRENCE t\AME
PATe ... FLAGS
QUEUE LENGTH
PRTY VALUE
ECA
FREE LENGTH
FREE ADDRESS
TCAX
PATCH PR08L(IF lESS THAN 8 BYTES)
ORIGINAL START TIME

FLAG BYTE 1 FLAGS
X'Ol'
X'02'
X'CIt'

DELETE THIS PTOE
FREE PARM LIST
INFINITf prIME FLAG

FLAG BYTE 2 FLAGS
X'OI'

[PATC ~=U

X'02'
X'04'
*-PTr.ENEXT

DPATC~=C

=,.

DPATC ...
LENGTH OF prOE

C-57

LICENSED MATERIAL - PROPERTY OF IBM

Figure C-52. PWQE

000 P""OE

•••
•
•••
P"OETASI<

000
004 PWOEEP
008 P~OEF(B

•
•PWOElNTH

OSECT
PWOE -CSECT USfD TO DESCR(BE INPLT PARAMETERS TO
DC
DC
DC

ooe
DC
010 P .. OfACCR DC
Ol4 P~OEPTN DC

015

•
•
•
•PWOEUNUS

OL6

PWOEID

C-58

A(O)
A(O)
A« a »
A (0 )

A fa)

X'O'

A(TAS~

DC
DC

(R

lE~O(SELF)

A(ENTPV PCINT NAME)
ACfCB) TO BE POSTEC - OPT=(FOST,ECBl
ZERO
- OPT=NOPCST
X' 8 COO 0 0 00'
-0 P T: ft AIT
FREE= LENGTH
FREE: ACDR
PARTITtCN FLAGS
X'OO' -

SUPFPTNS
SUPFPTNM

~A~E)

PURGE~C

PTN,::(~N

X'O'

X'20' - PTN=SLAVE
X'40' • PTN=MASTER
X'60' - PTN=FINO
UNUSED

H'O'

WOE

10

LICENSED MATERIAL - PROPERTY OF IBM

Figure C-53. REPL/SUPL

* PATCH INPUT PAPAMETERS :
**
*
REG 1 AOCR 0F SUPERVISOR PARAMfTER LIST -SUPL
*
REG 0 AOOR OF PROBLE~ PARAMETER LIST -PROBL
*

** REPATCH tNPUT PARAMETERS
*
REG 1 ADOR OF REPATCH PARAMETER LIST
•
~FG a
TYPE INDICATION

•

•• SUPERVISOR

000
000
000
000
008
010
018
019
01A
OlC
020
024
028

*
REPL
SUPl
SUPTASK
SUPEP
SUPPfHYN
SUPfLAG
SUPQL
Sl;PPRTYV
SUPECB
SUPFREEL
S~PFREEA

SUPT(R)(
SUPLl~TH

OSEC T
OS
OS
DC
DC
DC
DC
DC
DC
DC
DC
DC
CC
EOU

• EXTENSICN
•RE Pl
DC

•

02C
PA~M
030 RFPLPROB
C3R R f. Pl A(
RF Pl LNTH
03C REPLCHN
C40 RFPLXC'VT
Rf Pl S 11

••

E~U'S

•SUPFOEL

PARA~ETER

nc

E OU

REPATC~

PARAMETER LIST FCRMAT

OF
Of
C La'
C La'

,
,

CLB' ,
X'OO'
X' ClO'

H'O'
A(

0»

Ala)
A(O)
A(O)
*-SUPL

TO SlJfl

DC
DC
Eeu
CC

lIST I

-REPL

AIO)
XL8'O'
A (0.

*-REPL
A CO)
A(O)
*-PEPL

TASK NAME
ENTRY PO INT NAME
PATCH ONLY - PRTY REFERENCE
FLAG eYTE - SEE Eeu's BELOW
eUEUE LENGTt1
PFTY RELATIVE VALUE
ECB AC CR ESS
FREE LENGTH
F RE E A CDR ES S
T(AX

NA~E

TO FCRM REPATCH PARAMETER LIST:
ACDR OF PROBL ASSec WITH THIS REPL
PROBL MOVED t1ERE IF lE 8 BYlES LONG
ACCR CF REPL
LENGTH OF REPL TO ~E USED BY PROBLEM PROGRA~S
CHAI~ WORD FOR SUPPLIEC REPL'S (~lY
ACOR CF XCVT IN PTN W~ERE REPL IS BUilT
SIZE OF REPl FOR INTERNAL USE

FeR FLAG BYTE SUPFlAG

FQU •
SUPFOPTH Eeu
SUPF I RS T feu
SUPFRPTH Eeu
SUPFREEP Eeu
SUPFPT~S Feu
SU PF PT t\M feu
SUPNfREf feu

•

X' a I'
X'OZ'
X'04'
X'CS'
X'10'
X'20'
X'40'
X'80'

EP DELETE OPTION
CPOS=DPATCH
C;;PCS:::FIRST
fCB REPATCH OPTICN
FREE=P
PTN=SlAVE
PTf'I:=MASTER
DC NOT FREE P OR wOPK

~REA

(PTIME)

Figure C-54. PROBL

•

PPoeLEM

•PROBL

fAR~METER

000
CSECT
000 PRCRLNTH DC
002
DC
003 PROBle
rc
004 PROAPAPM CC

H'It'
X' O·

X'O'
F'O'

lIST FORMAT
LENGTH OF PROSl INCLUDING THIS WORD
RESERVED FOR TASK MGMT
10 'VALUE CMAX=25S)
PARAM VALUES (VARIABLE NUMBER)

(MI~=4)

C-59

LICENSED MATERIAL - PROPERTY OF IBM

Figure C-55 (1 Of 3). SCVT

<.;OG

USECT

~CVT

.....

CUMMUNICATIONS VECTOR TABLE
- THE SeVT IS POINTED TO BY THE XCVT (XCVTCVTS)
- THE SCVT CONTAINS SU8SYSTEM CONTROL INFORMATION

*
~C 'IT

o vO

LlOSt. uC

004 Sf. '11 Xc. 'IT DC

03&
03C

S(VTlFLG DC
uRG
SeVTlOGl Dc..
SeVTlOG2 DC
SCVTLOG3 DC
~C VTTMeT )C
SCVT1I ... E DC
SeVTT~ET DC
StVTfLGl DC
SCVTRSV DC
SCVTPIlO DC
!:.tVTPlhl DC
SC VTP2LO DC
SC 'IT P2H I DC
~C VTRWA
u(
'slVTf'L!:.T DC
SCVTDUMY DC

C4b

ORG

OOb

009

ooe
OOe
010
o 14

018
Olt
vL0

021
024

028
OlC
0.30
(, 3 ..

(3C SC.VT[JFC1 OC
03E ~CVTOID DC
040 SCVTOFlG DC
041
ORG
04(, SCVTDNXl DC
044 SLVTCfJRV DC
u48 SCVTGWLO DC.
04( SC VTGwtH DC.
050 SCVTTlbR DC
054 SCVTT2SR DC
(j~8 SCVTMWA
DC
O~c. 5CVTALOC IJC
(,b(J ~CVTt.PBT DC
064 ~CVTDSTR [)(
068 ~CVIO~NO DC

AtO)
AeO)
X'CJO'
SCVTLFlG
AI 0)

A(O)

X'o'

AL3(O)
ACC)
Aeu)
ACO)
AeO)
ACO)
ACCd

3f'O'
SCVTDUMY
H'O·

h''''
x·o·

SCVTOFLG
AC(;)
AtO)
ACO)

AfO)
Ido)

Ae OJ
A(O)
ACO)
AU; )
A(u)

A(O)
AIO)

010 SeVTALc.a DC

ACO)

~CVTlJSRX

US

018 5CV1S800 0(,

07C SCvTSSOl DC
Cleo ~CVTSt()£ DC
0L4 ~C \;1 SBO:' oc.
uSB SCVTSB04 DC.
OBC sc.vTSB05 DC.
090 SCVTSBOb DC
094 SCVTS601 DC.
098 SCVTS608 DC
09( SCVT~809 DC
CAG ~CVT~BIO DC
(;A4 SCVT~ell DC.
C-60

•

AlO) •
At 0) •

06(. !>CVTlKCB DC

0'14

•

A(O) •
ACO) •

A

A(O)
ACO)
ACO)
A(O)

ACO)
A(O)
ACO)
ACO)
A(OI
ACO)
AIO)
ACO)

ODS ADDRESS OF EXTENSION LIST
POINTER BACK TO XCVT
DATA BASE FLAGS
DATA BASE LOG FREQUENCIES

-> TASK MANAGEMENT CONTROL. TABLE
-> TIME AND DATE IN DATA BASE
-) T IHE MANAGEMENT

T'ABlE

FLAG BYTES
RESERVED
LO ADDR OF
HI ADDk OF
La A~DR OF
HI AODR OF

FIRST OR ONLY (THIS) PARTITION
fIRST OR ONLY (THIS) PARTITION
OTHER (MASTER OR SLAVE) PARTITION
OTHER (MASTER OR SLAVE) PARTITION
ACRECOROER DCB)
PIR TG LAST USED PSCR
DUMMY PSLb

DUMMY FREE COUNT
PSCB ID
PSCbFLAG

NEXT psce
PREVIOUS PSCB
Of GETWA CORE
OF GETWA CORE
•
TYPE 1 SVC BRANCH TABLE
TYPE 2 SVC BRANCH TABLE
•
•
MSG HANDLEP OCB
Db
ACPRIMARY ARRAY LOCATOR TABLE)
08
ACPAGE POUNOARY TABLf)
Db
A'VS RESIDENT DATA BASE-START)
ACVS RESIOENT CATA BASE-END)
LOCK CONTROL BLOCK CHAIN
AIDEFLOCK-LOCK CONTROL BLOCK)
CHAIN OF MOOULlS REOUFSTING STAE USER EXIT ROUTIN~S
ACGETARRAY)
AfPUTARRAY)
ACGETITEM)
A(PUTITEM)
ACGET8LOCK)
ACPUl8LOCK)
ACMESSAGE HANDLER)
ACDEFLOCI()
ACLOCK)
A CP.ECORO)
ODSOPEN
ENTRY POINT
uO~C.LOSE
ENTRY POINT
POINTER TO
POINTER TO
LO ADDRESS
HI ADDk~SS
AuDRES~ OF
ADDRESS UF
ADDRESS OF

LICENSED MATERIAL - PROPERTY OF IBM

Figure C-55 (3 Of 3). SCVT

nCB HlU
tl!L;
S(VTuCHN EQU

~L

VT

:'lVT~lAt

~C.VTGWBS

EQlJ

EOU
SC VTTWA
HtU
::'C.V1OTCB EOU
~c.vr~pwo

..SCVTlNTH

EQU
NUH

_VT f-2f'1 EOU

~

~(.VHMPT

E~U

SC VTFSPT H1U

SCVlS~~~
TI~E Tep ADDRESS rDPPCTIMl;)
SC.VTSB23
ACDPPTSTAE)
PRF.166
SCVTSBZ4
CHANIN OF DMP/NOMP MODULES
PRF'166
SCVTSB25
A(DPPTGWFW)
5(VT5826
A(PURGEWOJ
SCVTSB21
A(DPPTRGWAJ - TRANSWA ROUTINE
SCVTSB29
A'OTHER PTN·S JS T(5)
.-SCVT
LfNGTH OF TASLE
SCVTFlGl DEFINITIONS
Iht ~(VTFLGI ANU THl XlVT2PFG MUST Pf THl ~AME
X'~('
TWU PARTITION OPFRATION FLAG
X'4C'
MASTER PARTITION FLAG
X'ZO'
SLAVE PARTITION FLAG

•..

SCVTLFLG DEFINITIONS

*
S( VTRINT

HIU

~C.VTROOT

DATA BASE REINITIAlIZE (REFRESH) FLAG
DA DATA BASE READ ONLY-TEMPORARILY
UA DATA BASE READ ONLY-PERMANENT

X'SO'
X'40'

SCVTRDOP EQU

X'2u'

lQU

•

Hl USlCT NAMED 'SCVT

I~

~TOWEDt

Cc=os

Figure C-56. STAEBLK

•••

...
...

•

•••

STAfRLK

I)')t)

nSf( T

os

STAfNFXT nc
STAr AI'HHJ DC
')0<, STo\FI>IAXO DC
I) 'X, <; TAff.n-,r. rc
))7 STAftr-.A,.. DC
)0H '>TAfNA~E CC
C I 'J '>TAFF~C
OS
STAfLl\TH Eeu
()

(

)r)

1

)4

•••

'"

•••
') TAF DU"'P
•')TAfSTEP
•

•

uSl-n Hl OES(RIRE TH OUMF/NO I)U~P (ONHOL
Kl()CK5. FAef- PLOCK IS f'lJILT 1/1; qESPCNSE Tn A'STAE'
I~P COM~ANC AND
IS USrD TO DESCRIAE Tf-F: CPTIONS I~
FFF tC r FOR A SPECIF lEO LeAD MCOULF
rJS~(T

•...
j')f)

..*

STAfPlK

•••

I)[)

AIOI
X'O'

STAEBlKI OR ZERO
STAE/ABENO CPTleN FLAGS
"'AX.N(.CF DUMPS TO PE TAKEN
NO.OF CU~PS TAKE~
lENGTf- CF LM N~ME

~INEXT

X'I}'

X'O'
X' 0'

CUlt
OD

~n[ll)LF.

STAEEI\O-ST~[RLK

STAEAeNO - FlAC OESCRIPTICN
rCll

•

•
•
•

X'90'

~AMF:

•••
•
•••

A DUIoIP IS RECUESTFD
TO TCBCRFQ (TCPClJMPI FLAGS I~ TCRCMP FIElD
X'40'
A STEP ABFNC HAS BEEN RECUESTFC
Cr.RPfSPONDS TO TCBCSTEP (TCASTEP) FLAG') IN TCBCMP ~lflO
C[lRRfSPC~O<;

Eeu

Figure C-56.1. STAEXBK
000 STAE:XBK DSE:CT
A(O)
000 STABKNXT OC
004 S TABKLEN DC
H'O'
006

S TABKC T

DC

STABKEPA DC
STASKL ... N DC

H'O •
(lS'
A(O)
CLS'

STACKM~Z

1024

008 STABKEPN [;C
(;10
014

C-62

..*

E-QU

,
,

ADDRESS OF NEXT BLOCk OR ZERO
SIZE OF THIS 8lOCK
COUNT OFl M NAMES IN THIS BLOCK
ENTRY POINT NAME OF EXIT ROUTINE
ADDRESS OF ROUTINE
NA· ... ES OF LOAD MODULES FOR WHICH THIS
EXIT ROUTINE IS TO BE PASSED CONTROL
If- THEY ABEND
MAXI ... UM SIZE OF ATAEXBK

LICENSED MATERIAL - PROPERTY OF IBM

Figure C-S7. TCBX
vl.O

T c.t.X

•••
•

TC.&X

USE:(.T
Teb

lXl~~~luN

-

AUUkl~~t~

bY rrBUSER

FrEl~

OF TCB

- TH~ TC8X IS POl~TED TC BY THE TCB (TCBUSlRa
- THE TCBX (O~TAINS TASK RELATED INFORMATION

*It:

000 TCBXNEXT DC
AtO).
POINTER TO NEXT TCeX ON THIS CHAIN
004 TCbXNAH~ DC
(LS"
TA~K NAME IF INDEPENDENT - BLANKS OTHERWISE
OoC TCBXLCB UC
A(O).
lCb CHAIN ORIGIN
010 TCBXWQ
DC
A(Oa.
WO CHAIN ORIGIN
~14 TCbXCWQ
DC
A(O).
CURR~NT WOE IN PROCESS (AlPEADY DECHAINED)
016 TtexuwQ DC
ACG).
OPAICh WO CHAIN
DIC TCBXTGWA OS
2f
TASK (AT) GETWA (HAIN ORIGIN 'OUMMY GFBE)
024
ORG
TC8XTGWA
OIC TCbX1FWD DC
AID)
uUMMY Gr6~ FORWARD POINTER
020 TCBXT8KW DC
ACO)
UUMMY ~r8l BACKWARD POINTER
024 TCBX~GWA OS
2F
WQ tA~) GETWA CHAIN ORIGIN (DUMMY GFBl)
02C
ORG
TCBxQGWA
024 TCBXQFWO DC
A(O)
DUMMY &FBE FORWARD POINT[~
Ola TCBX08KW OC
A(O)
DUMMY GFBl BACKWARD POINTER
02C TCbXQCVT DC
A(O).
POINTEk TO D~PXCVT
030 lCBXRSTB DC
ACC).
POINTlR TO RESOURCE TA~LE
03~ TC6XPARM uL
A(u)
PuI~TER TO PROBLEM PARAHETtR$
036
ORG
TCBXPARM
034 TCBXSMON DC
A(O)
CHAIN WORD ~OR TMCTSMON CHAIN
u38 TCbXTCb DC
AIO)
POINTER TO TCB
03e TCBXtCB
DL
ACOl.
ECb OPPTPMON WAITS ON FOR POST BY DPPTPSVC
04G TCbXLECb DC
AtO).
EeB uPPTPMON WAITS ON FOR POST BY OPPTSMON
044 TCBXFLGl DC
X'O'.
FLAt BVTl 1
045 lCBXFLG2 DC
X'O'.
FLAG bYTt 2
040 TCbXL~L DC
X'V·.
LIMIT ~uEUE LENGTH
041 TCbXCOl DC
X·O·.
CURRENT QUEUE LENGTH
048 TCbXHWQL DC
X'C·.
HIGH kAltR ~UEUE LENGTH
G~4 TCBXfLG3 UC
X'O'
fLAG bYTE 3 QUEue ~OlDfR/PRU(ES~UR fLAGS
04A TCbXPRTY £JC
PRIOklTY
(.4C TCbXlUWQ DC
ACO).
CLEAN-UP we
C~v TCbXPECo UC
Ale).
ECB DPPT~MON WAITS ON FOR POST BY DPPTDlMP
TClXLNTH EOU
*-lCBX
LENGTH Uf TCBX
•
FLAG 1 DEFINITIONS
TCBXIDOk tQU
X'04'
TASK DORMANT, WQ IS EMPTY
TCBXICHP lQU
X'OS'
NtW TCBX REQUIRFS CH~P
TCBXITCS tOU
X'lu'
TCB N~ELEO - USEO BY DPPTSMON
TC8XIlCB EQ~
X'2v'
~ENT EP ADDRESS NEEDED - USED BY DPPTSMON
lCbXlTRM E~U
X'~u'
TASK TERMINATION REQUIRED
TCbXIACT cou
x'ao'
CUkRtNT WQ ACTIVE
* FLAG 2 OEFINITlUNS
TCBX20Pl E~U
X'll'
DPATCH - IMMEDIATE
TCBX2DPU EQU
X'O~'
DPATCH - UNCONDITIONAL
TCbX2DPw E~U
X'C4'
DPATCH - WHENEVER (NEXT TIME TASK IS DORMANT)
TCbXlOPC ~~u
x'oe'
DPATCH - CONDITIONAL (IF TASK IS DORMANT NOW)
TCBX2DP EOU
lCBX2UPI+1CbX20PU+TCbX20PC+TCBX2DPW
* FLAG 3 D~fINITIONS
TCbX3QH EQU
X'SU'
THI~ IS A QUfUE HOlDFR
T(BX3QP EQU
X'40'
THIS IS A QUEUE PROC~SSOR
TCBX3SEQ tQU
X'ZO'
QHUlDlk IS DEFINED SEQUENTIAL
TCBX3~~l t~U
X'lO'
~HOLulk IS SfOUENTIAL AND SELECTED
TCbX3hL~ E~U
X·OS'
QH OR ~p IS HElO.OO NOT START NEW WORK
Tl~X~NO~ tOU
X'04'
QH - uU NUT ACCfPT PATCHFS
•
QUEUE HOLDER/QLEUE PROCESSOR EXPANSION TO TC8 EXTENSIUN.
•
PRESENT ONLY IF fLAG 3 61T TCBX3QH OR TCbX3QP IS ON
054
ORG
TC8XPEC8+4
05~ TC6XQ'T
DC
H'O'
NUMb~R UF ENTRI~S IN ADDRESS TABLE
056 lL8X~UlT DC
h'O'
U~~ LUUNT. NUMAFR OF Woes PPOCfSSfD BY QUEUE
NUMH" Uf WI" 'S R [MOVFO FROM QH
05& TC8XQLUk Ll
If Ch, AUDR OF LAST QP TO TAKE WORK
IF OP, ADOR OF OH WORK WAS TAKEN FROM LAS
RESERVED
05C
DC
F'O'
TCBXI.JMAX E:CU
21
MAXIMUM NO. OF CONNECTED BlOCKSCQP-QH XREF
AlO)
060 TC6XQALR LC
UP TO ~l ADDRESSES OF CONNECTED BLOCKS.
IF QH, AODR OF OP'S THAT CAN TAKE WORK
IF QP, AUOR OF OH'S FROM WHICH WORK CAN BE

M·"·.

•
•

•
*

TAKt~

C-6:

LICENSED MATERIAL - PROPERTY OF IBM

Figure C-58. TIMED
000

000
004

TIMED

•••
•
•••
TIMEHS
lIMETOC

OSEe T
TIMF ARRAY OSECT

DC
DC
DC

OOH TJ~fJCAY
OOC "q MEMC AY DC
010 1I"4£E8C
CC
alA TIMEBCAY DC
OlC TIMEfC8 DC
020 TIMECFAC OC
02A TIMERClK DC
030 T{MELOCK DC
Ol4 TIMEIt\TL DC
038 TIMEECB2 DC
OlC TIMEPRTY DC
03E TIMEFRF.Q DC
" 03f TIMEFUPO DC
040 TIMEENe CS
TlfI1ELNGH Eeu

C-64

F'O'
f:'O'
F • O'
FtO'

CllO'
H'O'
FlO'
0'0'

0'0'
A(O.

F'O'
F'O'

!-l'O'

x'o·

X'v'

•

TOC I~ 10 MIL UNITS
Tee IN DECIMAL 10 ~Il UNITS-HHM~SSTH
JUlIA~ CATE-CCYYDCCC
CAY Of MONTH CATE-O~MDeyyC
fPCCIC CATE- DD/MMM/YY
DAY Cf YEAR - el~ARY
PTIME EeB
CCNVfRSICN FACTOR
AREA TC STORE CLCCK
A(TIME LOCK BLOCK)
SYSGE~ priME INTERVAL
DELETE EeA
P TIM Eel S P 4 TC HI NG P Rlo.n TY
TI~E FAILCVER FREe
TIME FAIlOVE~ UPDATE
00
T(MEE~C-TIMED

LICENSED MATERIAL - PROPERTY OF IBM

Figure C.-59. TMCT

000 TMC T

•••
•
•
••
''''CTAINO

OSEeT

T~CT:

000
004 TMC TAD EP
008 TMCTF~EE
DOC T"'CTSMON
OLO
014
OL6
018
OLA
OlC
010
,)lE

•TMCTSEce
T~CT'ACT

YASK

MA~AGEMENT

DC

DC
DC
DC
DC

nc

AIO) •
A(O) •
AlO) •
A(O)

AIO).
H' 0' •

TMCT'FRE OC
r'O'.
DC
H'O'
TMCT'HIX DC
~'O'
TMCTFLGt DC
x'O'.
TMCTRSVI DC
X, 0' •
TMCTLMP DC
H'O'.
T~CTL~PO EQU
3.
020 TMCTLCPA OC
AlO).
07.4 T~CTCCVT DC
AIO)
028 TMCTTMCB DC
AIO).
02C TMCTEXGW OS2F
034
OPG
TMCTEXGW
02C TMCTEF~O DC
AIO)
030 TMCTEBK~ DC
ACe)
0~4 T~CTFTXP DC
A(O).
038 TMCTCFMR OC
AtO)
03C
ORG
*-4
038 T~CT'GSZ DC
X'OO'
0)9
ORG
*+3
03C TMCT(F(~ CC
6(0.
040 TMCTREPL or
AIO)
044 T~CTPECB DC
A(O).
TMCTlNT~ fOU
*-T~CT
• TMCTfLGl DEFINITICNS
TMCTLCP.D EOU
X'SO'
TMC TFL"'P E CU
X' 40'
000 GFM8
OSECT

•

000
002
004
008
Ooq
008

•

GET~A/fREEWA

GFMBFCNT
GFMB,eLK
GfMASIIE
GFMBIC

DC
DC
DC
DC

CRG
GFM BGF CB DC
Gf~RLNTH EQU

•

T~BLE

-

PCI~TEO

TO BY THE SC\T

- THE 'MCT IS P(l~TED TC BY TrE SCVT (SC~lTMCT.
- T~~ TMCT CO~TAINS TASK ~A~AGE~E~T INFCRMATION

T~CT'TCB

••
••
•

CCNT~OL

CHAIN ORIGIN FOP INDEPENDENT TC8X'S
CHAtN ORIGIN FOP OEPENOENT TCBX'S
C~AIN ORIGIN fOR fREE TC8X'S
C~AIN ORIGIN OF TCAX'S REQUIRING SMC~ SERVICES
(CHAINEC R~ TCRXS~CN ~ORn)
Ece CPPTSMON WAITS CN FCR POST BY PMCN c~ SVC
CURRENT NUM8EP CF ACTIVE TCRX'S
CURRF~T NUMBERCF
FREE T(8X'S
~UMRER OF TCBX'S GeTTEN AT INIT TIME
HI~ATfR NLMBER OF TCRX'S IN SYSTEM
fLAG BITS
RESERVFO
~tG~EST POSSIBLE L[MIT PRTY FOR AN~ OPP1FMON
DIFFE~ENCE BETWEEN OPPTS~CN'S LMP AND T~CTLMP
CHAI~ ORIGIN FOR TMCT-LCR C~AIN
ADD~fSS OF CPPX(VT
POINTER TC TIME crNT~CL BLOCK
EXCLUSIVE (PC) CETwA CHAI~ CRIGIN (DU~MY (FBE)
GFAE FOR~ARC PCINTER
GFBE BACKWARD PCINTER
ACCRESS OF ETXR LSED ~ITH ATTACH OF FMe~
4CORFSS OF FIRST (ETW4/FREE~A ~AIN BLOCK
~UMMY

OU~MY

~L~6ER

OF GETWA SIZES

AC(RFSS OF FIRST GFCB eN CHAIN
CHAIN ORIGIN FOR REPATCH LIST'S
Eca DPPTCLMP WAITS CN FeR peST BY OPP1SMON
LENGTH OF T~CT - SUBSYSTEM AND GETWA TABLES
REeUEST FOR LCB-CELETE PReCESSING BY CPPTSMON
INCICA1ES ONE T"'CT-lCB HAD LCBFlMP + LC8FOEL

MAIN BLOCK - CNE FOR EAC~ POSSIBLE GET~A SIZE
- WILL BE APPENDED CN END OF TMCT
- CHAIN P(INTfC TO BY TMCT (TMCTGFMB)
~'O'

H'O'

CURRENT NUMBER CF FREE BlCCKS
I~ITIAL NUMAER OF BLOCKS ALLOCATED
SIZE OF BLOCKS I~ THIS FOOL
[0 FIELD TO ASSCCIATE GfBE'S TC A GFMB

F'O'
X'OO'
GFMAIO
ACe) AODRESS CF GFCB FOR
*-GFMB
LENGTH Of GFMB

T~IS

SIZE BLOCK

C-SE

LICENSED MATERIAL - PROPERTY OF IBM

Figu re C-60. WOE

000 WOE

•••

DSEeT
~CE

•NCN£XT

= wORK QUEUE ELEMENT - CHAINED TO Teex

(e
ACO).
DC
ACO).
DC
ACO).
DC
X'O·.
WCFPATC~ DC
X'O'
WOFRESV DC
X'OO'
wele
DC
X'OO'
010 WQEceAD DC
ACO.
014 WCPTCB
DC
ACO).
01S WQFREELN DC
ACO).
OlC WOFRfEAD DC
A(O).
020 WQECBCOD DC
ACO).
024 WCPA~.~ DC
ACO).
02S
ORG
WQPARAM
024 WQPROeL tc
XLS'O'
02C
O~G
WQPR(BL
024 WCPR(BLN DC
H'O'
026
DC
X'O'
021 WQPR(BID DC
X'O'
02S WOPROBPA DC
F'O'
WQL~TH
EOU
*-wOE
WO
feU
WOE
• WOF LAGS Eeu' S
weFlFR~p EQU
x'Ol'
WQFLPAR~ E~U
X'04'
WOFLARND Eeu
X'OS'

000
004
OOS
OOC
OOD
OOE
OOF

WQLCe
WOTcex
WQFLAGS

C-66

POINTER TO NEXT ~QE IN CHAIN
POINTER TO LCB F(R E~TR~ POINT
PCINTER TO TCBX ~~ERE we IS CH.I~EO TO
FLAG RITS
FLAGS FROM PATC~ PARAMETER LIST
RESERVED
PReBLEM P.PA~ETER Ie VALUE
ADDRESS OF fCB SPECIFIED IN ECB= OPERAND
PATCHING TASK'S TCB ACORESS
FREEMAIN= OPERA~D LENGTH
FREEMAIN= OPERA~C ADDRESS
cn~PLETICN TO POST USER'S ECB WITH
P(INTER TO PROBLE~ PA~AMETERS
PRoeL wILL BE

~(~ED

INTO WOE .F LE S BYTES

LENGTH OF PRceL I~CLUDI~G THIS weRD
RESERVED FOR TASK MG~T USE
It-VALUE (MAX=255)
PARAMETER VALUE
LENGTH OF WOE
FREE=P ~AS SPECIFIED
PROBL PARMLIST ~O~ED INTO wOE
ABEND OCCURRED WHILE PROCESSING THIS

'MI~.4)

~OE

LICENSED MATERIAL - PROPERTY OF IBM

Figure C-61. XCVT
000 xc VT

•

••

•

DSECT
OPPXCVT

*
*
000
004
008
OOC
010
014
OlC
020
021
020
024
028
OlC
C30
C34
038
03C
040

=

CCMMUNICATIO~S

VECTOR TABLE

- THE XCVT IS PCI~TEO TC EY EACH TCBX (TCBXDCVT)
- T~F XCVT CO~TAIN5 CCNT~GL INFOR~AT((N FC~ SRTOS

*XCvTRESv

DC
AIO).
RESERVED WORD - ~LST BE ZEPO
XCVTSVCl DC
Ale).
TYPE 1 SVC INSTRUCTION
XC'4TSVC2 f)C
ACe).
TYPE 2 SVC I~STRUC1ICN
XCVTS~C4 DC
A(O).
TYPE 4 SVC INSTRUCTIO~
XCVTP(SI DC
A(O)
PAGF SIZE
XCvTSROT DC
eLS"
CATE GF LAST SYSTEM BUILD
XCVTSAOP DC
ACO)
H1-ORDFR BYTE = SYSTE~ BUILD (PTICN FLAGS
*
3 LC-ORDER BYTFS = RESERVED - FAllOVER/RESTART
XCVT2PFG OS
x
2 P~RTITION FLAGS
ORG
XCVT2PFG
XCVTCvTS DC
AIO)
-) CPPXCVTS
CvT
XCvTSS~l DC
A(O).
SUBSYSTEM VECTOR TABLE PCINTERS
XCVTSSV2 DC
ACO)
DISPLAY MGMT CVT POINTER
XC~TSS~3 CC
ACO)
ENERGY MGMT CVT POINTER
XCVTSSV4 DC
A(O)
DATA ACQ CVT POINTER
X(~TSSV5 DC
A{O).
XC~TSSV6 DC
A(O).
XCVT2PTX DC
A(Ot
ADDR OF THE OT~ER PARTN XCvT - T~O PA~TN CPERN
XCVTPfRF DC
A(O)
ADDRESS OF THE PA(E FREE (UNFIX) ROLT(~E
X(VTDP~
EQU
XCVTSSV4
XCVTECVT ECU
XCVTSSV3
XC~TCCVT ECU
X(VTSSV2
SYSTE~ AUILC OPTICN FLAGS
*
XCVTFDCS fCU
X'Ol'
DUPLICATE tATA SET suppeRT FLAG
XCVTFFAl Eeu
X'02'
FAll(VER RESTART FLAG
xCVTFEXT FCU
X'04'
EXTERNAL INTERRLFT HA~DLER FLAG
XCVTINTF EQU
X'08'
fNO OF INITIALIZATION FLAG
X(vTPRS EQU
X'lO'
PRE-RESTART FLAC
xCvT,IPL ECU
X'20'
I~ITIAL [PL FLAG
XCVTCPU FCU
X'40'
SA~F. CPU AS IPL FLAG
XCvTPR08 fCU
X'SO'
PRF-PRC8E FLAG
•
X(VT2PFG DEFINITIONS
•
NOTE THE XCVT2PfG ~ND THE SCVTFLGl MLST RE T~E SAME
XCVTF2PT ECU
X'SO'
TWO PAPT[TICN OPERATION FLAG
XCVTFMPT ECU
X'40'
~ASTEP PARTITI(~
XCVTFSPT feu
X'20'
SLAVE PARTITIG~
xeVTRSNC ECU
X'lO'
SLAVE ~TN HAS BEE~ RE-SYNC'ED
XCVTLNTH FCU
*-XCVT
LENGTH OF TABLE

C-67

LICENSED MATERIAL -

PROPERTY OF IBM

Appendix D.

INTERNAL MACROS

This section contains a list of internal macros and their calling sequences. These macros are restricted to use by the Special Real Time
Operating System.

0-1

LICENSED MATERIAL -.; PROPERTY OF IBM

CBFREE
The CBFREE macro releases control of a work area in protected storage. This
area must have been previously obtained by executing a CBGET macro call.

Symbol

AD~={ad!~!SS}

CBFREE

[{: DC:::: ~ l::!~!SS} }]

Where 'r' is a general-purpose register, 2-12
_.L

ADDR=
Indicates the address of the protected storage area to be freed. If
'r' is specified, the register contains the address of the work area
as returns to the caller after a CBGET macro execution. If an address
is specified, it is the label of a fullword that contains the address of the work area as returned to the caller after a CBGET macro
execution.
DCVTR=r
Where 'r' is the general-purpose register (2-12) that contains the
address of the XCVT.
DCVTLOC=r
Where 'r' is the general~purpose register (2-12) enclosed in parenthe-.
ses having the address of a 4-byte core location that contains the
address of the XCVT.
DCVTLOC=address
Where 'address' is the label of a 4-byte core location that contains
the address of the XCVT.

0-2

LICENSED MATERIAL -

PROPERTY OF IBM

CBGET
The CBGET macro is used to obtain a protected storage area to be used as a
work area by the Special Real Time Operating Systems routines. The address
of the storage area is returned in register 1.

Symbol

CBGET

Where 'r' is a general-purpose register, 2-12
I

length=
is the length of the requested work area that can be specified in any
RX-type format or in a general-purpose register.
DCVTR=r
Where 'r' is the general-purpose,register (2-12) that contains the
address of the XCVT.
DCVTLOC=(r)
Where 'r' is the general-purpose register (2-12) enclosed in parentheses having the address of a 4-byte core location that contains the
address of the XCVT.
DCVTLOC=address
Where 'address' is the label of a 4-byte core location that contains
the address of the XCVT.

0-3

LICENSED MATERIAL -

PROPERTY OF IBM

DPPFIX
The DPPFIX macro provides the facility for fixing pages in a virtual storage environment.
r-----------------r--------------,----------------------------------~

Symbol

(r)

}

(r)

}

. HGIIADDR= { address

DPPFIX

LOWADDR= { address

[(.~::::::{::~;~ss}l]
Where 'r' is a general-purpose register, 2-12
I

HGHADDR=
is the address of the upper boundary of a virtual storage area that
is to be page fixed. This address will be rounded up to the next
page boundary, if required. If 'r' is specified, the register contains the upper boundary address. If an address is specified, it is
a label of a fullword that contains the address of the upper boundary.
LOWADDR=
is the address of the lower boundary of a virtual storage area that
is to be page fixed. This address will be rounded down to the previous
page boundary, if required. If 'r' is specified the register contains the lowerJJoundary address. If an address is specified, it is
a label of a fullword that contains the address of the lower boundary.
DCVTR=r
Where 'r' is the general-purpose register (2-12) that contains the
address of the XCVT.
DCVTLOC=(r)
Where 'r' is the general-purpose register (2-12) enclosed in parentheses having the address of a 4-byte core location that contains the
address of the XCVT.
DCVTLOC=address
Where 'address' is the label of a 4-byte core location that contains
the address of the XCVT.

0-4

LICENSED MATERIAL -

PROPERTY OF IBM

DPPFREE
The DPPFREE macro provides the facility for freeing pages in a virtual
storage environment that have been page fixed as the result of a DPPFIX
macro call.
Symbol

J

DPPFREE

(r)

I
I

HGHADDR- \ address ,

I

(r)

[(~::: f::;;;:: II]
Where 'r' is a general-purpose register, 2-12
I

HGHADDR=
is the address of the upper boundary of a virtual storage area that
is to be page freed. This address will be rounded up to the next
page boundary, if required. If 'r' is specified, the register contains the upper boundary address. If an address is specified, it is
a label of a fu11word that contains the address of the upper boundary.
LOWADDRis the address of the lower boundary of a virtual storage area that
is to be page freed. This address will be rounded down to the previous page boundary, if required. If f r ' is specified, the register contains the lower boundary address. If an 'address' is specified, it is
a· label of a fullword that contains the address of the lower boundary.
DCVTR=r
Where 'r' is the general-purpose register (2-12) that contains the
address of the XCVT.
DCVTLOC=(S)
Where 'r' is the general-purpose register (2-12) enclosed in parentheses having the address of a 4-byte core location that contains the
address of the XCVT.
DCVTLOC=address
Where 'address' is the label of a 4-byte core location that contains
the address of the XCVT.

0-5

LICENSED MATERIAL - PROPERTY OF IBM

SETPSW
The SETPSW macro provides the Special Real Time Operating System with the
capability of changing the current program status word (PSW) to alter the
storage protect ke~ mode, and/or system mask. On return, register zero
will contain a parameter that will enable the user to restore the PSW the
previous status (i.e., status immediately prior to the execution of the
SETPSW macro)
Symbol

SETPSW

·[

KEY-1T~B}] [.sTATE=lp~l]

[{ ,:::::r)
}]
DCVTLOc-l (r ) I
'

[. INT-l~l] ,
I

address

Where 'r' is a general-purpose register, 2-12
KEY=
is used to set the storage key in the PSW. '0' provides the user with
the supervisor storage key and 'TCB' sets the protect key to the task
protect key.
STATE=
is used to set the mode in the PSW. 's' puts the CPU in a supervisor
mode and 'pp' puts the CPU in a problem program mode.
INT=
is used to set the system mask in the PSW. 'D' disables all I/O and
external interrupts. 'E '~nables all I/O and external interrupts.
REG=
is used to restore the PSW to the previous status. The register
specified must contain the parameter that is returned in register
zero as the result of a previous SETPSW macro call. The 'REG='
parameter and either the 'KEY=', 'STATE=', or 'INT=' parameters are
mutually exclusive.
DCVTR=r
Where 'r' is the general-purpose register (2-12) that contains the
address of the XCVT.
DCVTLOC=(r)
Where 'r' is the general-purpose register (2-12) enclosed in parentheses having the address of a 4-byte core location that contains the
address of the XCVT.

0-6

LICENSED MATERIAL - PROPERTY OF IBM

DCVTLOC=address
Where 'address' is the label of a 4-byte core location that contains
the address of the XCVT.

0-7

LICENSED MATERIAL - PROPERTY OF IBM

WTFAILDS
The WTFAILDS macro writes the failover/restart data set.
Symbol

WTFAILDS

[

f

. \

.DCVTR=(r)
• DCVTLOCk

Iad~:~SS

I]I

Where 'r' is a general-purpose register, 2-12
DCVTR=r
Where 'r' is the general-purpose register (2-12) that contains the
address of the XCVT.
DCVTLOC=(r)
Where 'r' is the general-purpose register (2-12) enclosed in parentheses having the address of a 4-byte core location that contains the
address of the XCVT.
DCVTLOC=address
Where 'address' is the label of a 4-byte core location that contains
the address of the XCVT.

D-8

READER'S COMMENT FORM
IBM System/370 Special Real Time Operating System

L Y20-2228-1

Programming RPO Z06751
Systems logic Manual

Please comment on the usefulness and readability of this publication, suggest additions and
deletions, and list specific errors and omissions (give page numbers). All comments and suggestions become the property of IBM. If you wish a reply, be sure to include your name and address.
LICENSED MATERIAL - PROPERTY OF IBM

COMMENTS

fold

fold

fold

fold

• Thank you for your cooperation. No postage necessary if mailed in the U.S.A.
FOLD ON TWO LINES, STAPLE AND MAIL.

L Y20-2228-1

Your comments, please ...
This manual is part of a library that serves as a reference source for systems analysts.
progrc:..nmers, and operators of IBM systems. Your comments on the other side of this
(rrm will be carefully reviewed by the persons responsible for writing and publishing
tills material. All ~omments and suggestions become the property of IBM.

Fold

..

~

..

..

Fold
~

..

..

. . . . . . .. . . . . .. . . . . . . . . . . . . . ., . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .. . . . .. . . . . . .. .

III I

NO POSTAGE
NECESSARY
IF MAILED
INTHE
UNITED STATES

-

'BUSINESS REPLY MAIL
FIRST CLASS

PERMIT NO. 40

ARMONK, N.Y.

POSTAGE WILL. BE PAID BY ADDRESSEE:

International Business Machines Corporation
1133 Westchester Averiue
White Plains, New York 10604

Att: Technical Publications/Systems - Dept. 824

.............................................................................................................................................
LICENSED MATERIAL - PROPERTY OF IBM
Fold

==-=
=®
-- ------

--- -- -- ----~-.-

Fold

LY20-2228-01

IBM System/370 Special Real Time Operating System Programming RPO L.uti751 Systems logic Manual Printed in U.S.A. LY20-2228-1

~

m

u.

0

>-

to:

W
0-

0

a:

0-

I
.J
e(

a:

w
te(

:E

c
w
en
Z

w

U

::J
@)

11111111

lUI.

1111111
.....

00
N
N
N

6

N

>.....J

11:11:11
11111111



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                     : 2014:04:16 09:02:38-08:00
Modify Date                     : 2014:04:16 09:28:26-07:00
Metadata Date                   : 2014:04:16 09:28:26-07:00
Producer                        : Adobe Acrobat 9.55 Paper Capture Plug-in
Format                          : application/pdf
Document ID                     : uuid:ba8efde2-a3f6-6647-9137-dd3f00d32f29
Instance ID                     : uuid:881bdb0f-9c7a-f94e-8e83-7059801cbd57
Page Layout                     : SinglePage
Page Mode                       : UseOutlines
Page Count                      : 839
EXIF Metadata provided by EXIF.tools

Navigation menu