901764H_Batch_Processing_Reference_Man_Sep78 901764H Batch Processing Reference Man Sep78

901764H_Batch_Processing_Reference_Man_Sep78 901764H_Batch_Processing_Reference_Man_Sep78

User Manual: 901764H_Batch_Processing_Reference_Man_Sep78

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

Download901764H_Batch_Processing_Reference_Man_Sep78 901764H Batch Processing Reference Man Sep78
Open PDF In BrowserView PDF
Xerox Control Program-Five (CP-V)
Xerox 560 and Sigma 5/6/7/9 Computers

Batch Processing
Reference Manual

~IO

17 64H-1 (9178)

CAL1-TO-FUNCTION INDEX

Call

FPT
Code

-

-

CAll, 1

CAll, 2

Function
M:DCB
M:PT
M:DDCB The diagnostic routine associated with this procedure determines which of the three procedures (M:DMO[)#,
M:DPART, or M:DRET) was called.
@

These procedures are described in detai I in the CP/SM Reference Manual, 90 1674.

-

-

-

-

-

-93
-

-

--

93

-90
-

-

--

XEROX

XEROX CONTROL PROGRAM-FIVE (CP-V)
Xerox 560 and Sigma 5/6/7/9 Computers

Batch Processing
Reference Manual

90 17 64H

90 17 64H-1
September 1978

FileNo.: 1X13
XL89A, Rev. 0
© Xerox Corporation, 1974, 1975, 1976, 197El
~

197a, Honeywell InfoCMneion syseems Inc.

Printed in U.S.A

REVISION
This publication documents the FOO version of Control Program Five (CP-V). The publication consists of the
H edition of this manual (90 17 64H, dated November 1976) and the revision package numbered 90 17 64H-1
(dated September 1978). Vertical lines in the margins of pages labeled 90 17 64H-l (9;78) indicate technical
changes that reflect the FOO version of CP-V. Vertical lines in the margins of other pages indicate changes
that occurred in a previous release of the system.

RELATED PUBLICATIONS
Title
Xerox
Xerox
Xerox
Xerox
X'::!fOX

Xerox
Xerox
Xerox
Xerox
Xerox
Xerox
Xerox
Xerox
Xerox
Xerox
Xerox
Xerox
Xerox
Xerox
Xerox
Xerox
Xerox
Xerox
Xerox
Xerox
Xerox
Xerox
Xerox
Xerox
Xerox
Xerox
Xerox
Xerox
Xerox
Xerox
Xerox
Xerox
Xerox

Publication No.
Sigma 6 Computer/Reference Manual
Sigma 7 Computer/Reference Manual
Sigma 9 Computer/Reference Manual
560 Computer/Reference Manual
Remote Batch Terminal/Reference Manual
Remote Batch Terminal/Operator's Manual
Control Program-F ive (CP-V)/fs Reference Manual
Control Program-Five (CP-V)/OPS Reference Manual
Control Program-Five (CP-V)/SM Reference Manual
Control Program-Five (CP-V)/SP Reference Manual
Control Program-F ive (CP-V)/fS User's Guide
Control Program-Five (CP-V)/RP Reference Manual
Control Program-F ive (CP-V)!T P Reference Manual
Control Program-F ive (CP-V)/Common Index
EASY/LN, OPS Reference Manual
BASIC/LN, OPS Reference Manual
Meta-Symbol/LN, OPS Reference Manual
Assembl y Program/Reference Manua I
Extended FORTRAN IV/LN Reference Manual
Extended FORTRAN IV/library Technical Manual
Extended FORTRAN IV/OPS Reference Manual
FORTRAN Debug Package (FDP)/Reference Manual
F LAG/Reference Manual
ANS COBOL/LN Reference Manual
ANS COBOL/OPS Reference Manual
ANS COBOL/On-line Debugger Reference Manual
Report Program Generator (RPG )/Reference Manual
APL/LN, OPS Reference Manual
Manage/Reference Manual
Sort-Merge/Reference Manual
General Purpose Discrete Simulator (GPDS)/Reference Manual
Data Management System (DMS)/Reference Manual
SL-1/Reference Manual
1400 Series Simulator/Reference Manual
Mathematical Routines/Technical Manual
CIRC-AC/Reference tv\anual
eIRC-DC/Reference Manual
CIRC-TR/Reference Manual

90 17 13
900950
90 1733
903076
90 1602
90 1626
900907
90 1675
90 1674
90 31 13
90 1692
903026
9031 12
903080
90 18 73
90 15 46
900952
903000
900956
90 15 24
90 11 43
90 1677
90 1654
90 1500
90 15 01
903060
90 1999
90 1931
90 16 10
90 11 99
90 1758
90 1738
90 1676
90 15 02
900906
90 1698
90 1697
90 1786

Manual Content Codes: BP - batch processing, LN - language, OPS - operations, RP - remote processing,
RT - real-time, SM - system management, SP - system programming, TP - transaction
processing, TS - time-sharing, UT - uti lities.

The specifications of the software system described in this publication are subiect to change without notice. The availability or performance of some features
may depend on a specific configuration of eouipment such as additional tape units or larger memory. Customers should consult their 1111.. reprelllntative for details.

ii

90 17 64H-' (9/78)

CONTENTS
PREFACE
':OMMAND SYNTAX NOTATION
jlOSSARY

1.

2.

viii
ix
x

INTRODUCTION

1

Operating System _ _ _ _
Philosophy of Operation __
Batch Processing
Time-Shared Processing _.
Remote Processi ng _ _ _
Real-TIme Processing __
Transaction Processing __
Processors
Command Processors ___
Language Processors ___
Execution Control Processors
Servi ce Processors _ _ _
Application Processors
User Processors
Monitor
System Commands _ _ _ _

I
I

10

FILES AND FilE USAGE

15

Introduction
File Organization _ _ _ _
Keyed Files
Consecutive Fi les
Random Fi les
File Function and Fi Ie Disposition
File Access
Direct Access
Sequential Access
Simultaneous File Usage _ _ Requirements for Multiple Access to a
Single File
Tape Files
Disk Files
Coordinating Multiple Access to a
Single File
Protocol Requi rements
Extensions to M:DCB, M:OPEN,
ASSIGN and SET _
Hashing Queue Names _.
Data Encryption
Fi Ie Storage Dev ices
Disk Storage
labeled Tape
Physical Devices _ _ _ _
Formatted Data Records ..
M:READ
M:WRITE
M:WEOF
M:ClOSE (output mode)
M:ClOSE (input mode)
Direct Data Records __
M:REAI)
M:WRITE
M:WEOF
M:ClOSE
Synonymous Fi les
Opennext
Exp Ii ci t Open

15
15
15
18
19
19

90 1164H-l (9,118)

3.

2
2
2
2
3
3
3
4
6
7

8
9
9

20
20

21
22
22
22
22
23.1
23.1
23.2
23.2
24
24
24
25
27

27
27
28
28
28
.28
28
28
28
28
28
28
28
28

4.

MONITOR CONTROL COMMANDS

29

Introduction
System Control Commands·
JOB
LIMIT
STEP
POOL
MESSAGE
TITLE
ASSIGN
SET
LDEV
XEQ
Input Control Commands
BIN
BCD
DATA
EOD
FIN
Utility Control Commands
PFIL
REW
WEOF
SWITCH

29
30
30
31
32
32
33
33
33

55
55
55

SYS TEM PROCE DURES

56

44

51
53
54
54

54
54
54
54
54
54

56
Introduction
57
General-Purpose Procedures
57
Set FPT Protection Type
57
M:PT
Load Overlay Segment
57
M:SEGLD
57
58
Link to a Load Module
58
M:L1NK
59
Load and Transfer Control
59
M:LDTRC
60
Give Time and Date
60
M:TIME
60
Type a Message
M:TYPE
}
60
M:MESSAGE
61
Request a Key-In
61
M:KEYIN
62
Write to Listing log·
62
M:PRINT
62
Suspend Program
62
M:WAIT
,.,
Exceptiona I Condi tion Control Procedures _ _ _ 62
63
Set Traps
63
M:TRAP
64
Simulate a Trap
64
M:STRAP
64
Set Interval Timer
65
M:STIMER
65
Test.Interval Timer
65
M:TTIMER
65
Connect Console Interrupt
65
M:INT
iii

Exit Control
M:XCON
Exits to the Wtonitor
M:EXIT
M:ERR
M:XXX
Exit from Trap, Interrupt, Timer or Exit
Control Routine
M:TRTN
Monitor Error Control
M:MERC
Data Memory Management
Get Common Limits
M:GL
Get Dynamic Data Limits
M:GDDL
Get Common Pages
M:GCP
Free Common Pages
M:FCP
Get Dynamic Pages
M:GP
Free Dynamic Pages
M:FP
Get Virtual Page
M:GVP
Free Virtual Page
M:FVP
Set Memory Protect
M:SMPRT
Change Virtual Map
M:CVM
Enqueue/Dequeue Resources
M:ENQ
M:DEQ
Other CP-V Service Calls
Adjust DCB CAL
Spec ify Logical Device I/O Streams
M:LDEV
Read and Write Assign/Merge Record
M:RAMR
M:WAMR
Report System Load Parameters
M:DISPLAY
Release Resource CAL
SAVE CAL
GET CAL
Enter Master Mode
M:SYS
M:CAL
M:MASTER
Enter Slave Mode
M:SLAVE
Associate or Disassociate Public Library _ _
Check Event Control Block(s) for
Completion
M:CHECKECB
Initiate Ghost Job
Execute Privileged Instructions
M:EXU
On-Line and Batch Differences
Exit Return (M:EXIT)
Error Return (M:ERR)
Abort Return (M:XXX)
iv

66
66
68
68
70
70·
71
71
71
71
72
72
72'
72
72
73
73
73
73
73
73
74
74
74
74
74
74
75
75
75
75
75
77
78
79
79
84
84

87
87
89
89
89
89
89
90

90
90
90
90
90
90
90
91
91
93
93
93
93
93
93
94

94
94

Type a Message (M: TYPE)
Request Key-In (M:KEYIN)
Connect to Interrupt or BREAK
Key (M:INT)

5.

94

I/O P~OCEDURES

95

Introduction
File Maintenance Procedures
Create a Data Control Block
M:DCB
Open a File (Initialize a DCB)
M:OPEN
Close a File (Terminate I/O Through a DCB)_
M:CLOSE
Set Error or Abnormal Address
M:SETDCB
Check I/O Completion
M:CHECK
Declare a Temporary File
M:TFILE
Data Record Manipulation
Read a Da ta Record
M:READ
Wri te a Data Record
M:WRITE
Copy A II Da ta Records
M:MOVE
De Iete a Da ta Record
M:DELREC
Truncate Blocking Buffer
M:TRUNC
File Manipulation
Position n Records
M:PRECORD
Position File
M:PFIL
Close Volume
M:CVOL
Rewind
M:REW
Write End-of-File
M:WEOF
Insert or Delete Symbiont File
M:JOB
Special Device Procedures
M:DEVICE
Set Listing Tabs
Skip to Top of Form
Set Number 'of Printable Lines
Set Line Spacing
Specify Direct Formatting
Specify Vertical Format Control
Specify Page Count
Change Output Form
Change Deyice Wtode or Record Size
Specify Beginning Column
Specify Output Header
Specify Card Punch Sequencing
Number of Lines Remaining
Check Correspondence of DCB Assignments _ .

95
96
96
,96
102
102
110
110
112
112
113
113
113
113
114
114
114
116
116
118
118
119
119
119
119
119
119
119
120
120
120
J2Q
121
121
121
121
121
121
123
123
123
123
124
124
124
125
125
126
126
127
127
127
128
128

90 17 64H-l (9/78)

6.

PROGRAM LOAD AND EXECUTION
Introduction _
Load Processor
Contro I Commands
LOAD, OVERLAY, OLAY
TREE
PTREE _
INCL
RUN
MODIFY
Libraries
Types of Libraries ___
Public libraries ___
User Libraries
Diagnostic Messages
LYNX Processor
LYNX_
Command Continuation
Command File Input
LYNX Commands
Mapping Existing Load Modules
:TREE
LYNX Example
Error Messages
Link Processor
Link Contrc>1 Commands
Link
Load Module Structure
Symbol Tables
Diagnostic Messages
LEMUR Processor
Calling LEMUR
LEMUR Concepts
LEMUR Commands
LIBRARY
BUILD
DELETE
COpy
CARRY
END
Error Messages
Command Summary____
Task Control Block
Data Control Blocks
Memory Protection
Virtual Memor>,
Virtual Memory Layout __
Load Maps
Accounting

7.

129
129
129
129
129
134
135
135
136
136
137
137
137
137
139
143
143
143
143
143
147
147
148
148
150
150
150
151
153
153
154
154
155
155
155
155
156
156
157
157
158
159
160
161
162
. 163
163
163
i 166

PROGRAM DEBUGGING AI[)S

170

Introduction
Postmortem Dumps
PMD
Snapshot Dumps
SNAP
SNAPC
IF
AND
OR
COUNT
Debug Error Messages

170
170
172
172
173
174
174
176
176
176

In

8.

PREPARING THE PROGRAM DECK

179

Introduct ion
179
179
Symbol ic Deck to Program Listing
Compressed Deck Update
179
Symbolic Deck to Binary Deck
179
Symbolic Deck to Binary File on Disk
179
Process, Load, and Execute
180
180
Create Fil e for Use by Another Program
Update File, Object fv4odule, and load
180
Module of User's Program
Execute Program from User's Account, Using
181
Debug Feature
181
Create and Execute a Temporary Program
1
! 181
Create a Fil e with Password
181
Create a File Having Privileged Read Access
Read a File Having Privileged Read Access _ _ _ 181

9.

PROCESSORS

182

In troduct ion
Processor Control Commands
Peripheral Conversion language
Introduct ion __
Syntax Conventions
Source and Destination Specification
Capabil ities
Mode Option Compatibility
File COpy Command
Account COpy Command
Control File COpy Command
Other Commands
DELETE
DELETEALl
LIST
REVIEW
PRINT
ERRORS
SPF, SPR
SPE
WEOF
REW
REMOVE
TABS
Termination of PCL
PCL Error Messages
PCL Command Summary
Botch Processor
Introduction
Data Replacement
Command Continuation
Botch Commands
BATCH
DEFAULT
EOF
EXEC
EOF EXEC
Botch Error Messages
Show Processor
DEFCOM Processor
S YMCON Processor
Int roduct ion
Convent ions

182
182
182
182
182
183
185
185
186
191
194
195
195
195
196
197
198
198
198
198
198
198
199
199
199
199
199
204
204
204
205
205
205
206
206
206
207
207
208
208
209
209
209

v

Calling SYMCON
SYMCON Commands
LIST
DELETE
KEEP
RETAIN
CHANGE
BUILD
DISCARD
END
S YMCON Error Messages

209
210
210
210
210

FIGURES
1.

Operating System

2.

CP-V Operating System

3.

Example of Multilevei Index Structure

16

4.

Labeled Tape Format for Variable-Length
Blocked Records

26

5.

TCB Stack Contents on Exceptional Condition_

63

6.

Memory AII oca ti on

72

7.

Basic FPT

80

8.

Device-Oriented FPT

81

9.

Task Control Block Format

III

211
1211
211
i
211
211
i

INDEX

APPENDIXES
A.

DATA CONTROL BLOCK FORMATS

213

File DCB
Device DCB
Xerox Labeled Tape DCB
ANS Label ed Tape DC B

213
227
234
247

10. DCBTAB (Name Table)

161

11. Virtual Memory Layout

163

12.

B.

MONITOR ERROR MESSAGES

250

250
Introduction
262
Xerox Labeled Tape Error Handling
Enqueue/Dequeue Abnormal and Error Codes __ 262

13.
14.
15.
16.

C.

D.

E.

I F.
vi

XEROX STANDARD SYMBOLS, CODES
AND CORRESPONDENCES

264

Xerox Standard Symbols and Codes
Xerox Standard Character Sets
Control Codes
Special Code Properties

264.
264
264
264

USE OF TEMPORARY STORAGE BY LIBRARY
ROUTINES

274

COOPERA TIVES AND SYMBIONTS

275

Cooperative
Symbionts
Symbiont-Cooperative Housekeeping
Symbiont Buffers

276
276
'Z16
277

Deleted

279

160

User Virtual Memory Layout, Load
Processor

164

User Virtual Memory Layout, Link
Processor

165

Sample load Map Printout for the Link
Processor

16

Sample Load Map Printout for the Load
Processor

167

Format of a Dump Printout

171

A-l. Format of File DCB

213

A-2. Format of FPARAM Table

225

A-3. Format of Device DCB

228

A-4. Format of Xerox Labeled Tape DCB

235

A-5. Format of ANS Labeled Tape DCB

243

E-l. Inforrnqtion Flow through Cooperative
and Symb ionts

275

E-2. Symbiont File Buffer Format

278

TABLES
1.
2.

Simultaneous File Usage - Keyed or
Consecuti ve

2:'

Standard Operational Labels, Device Types,
and Physical Device Name

41

90 .764.... 1(9,h8)

3.

Operational Label Conventions

41

35.

Record Sequencing Options - COpy Command_ 189

4.

Line Printer Format Controll Codes ______ 43

36.

Account Options - COpy Command_

189

5.

DCB Assignment Codes - Set Command

45

37.

ANS Tape Options - COpy Command

190

6.

Device Options - Set Command

46

7.

File Options - Set Command

47

38.

Valid Option Combinations

192

8.

Exits to the Monitor ___

67

39.

PC L Error Codes

200

9.

Register Contents for Exit Control

69

40.

PC L Command Summary

202

10.

Variable length Parameter List

81

11.

Storage of Service Functions

88

41.

Batch Processor Error Messages

207

12.

Standard

42.

S YMCON Error Messages

212

13.

lOP Designation Codes __

95

14.

Device Designation Codes.

96

15.

File Defaults

16.

I/O

Device Type Codes

95

A-1. Variabl e Length Parameter Codes

223

104

A-2. Variabl e Length Parameter Codes for
A NS Label ed Tapes

249

17.

Tape Positioning for Output, Update,
and Scratch Tapes __
Standard Load Module Format

111
129

B-1. Abnormal Codes - Insufficient or
Confl icting Information

250

18.

Library Dictionary Format._

138

19.

Library Load fv40dule Format

138

20.

Library ROM Module Format

B-2. Abnormal Codes - Device Failure or
End-of-Data

138

254

21.

Mon i tor Errc:>r Messages __

139

22.

load Error Messages

140

23.

lYNX Error Messages

148

24.

Link Error Messages ___

25.
26.

B-3.

Error Codes - Insufficient or Confl icting
Information

255

153

B-4. Error Codes - Device Failure or
End-of- Data

257

lEMUR Error Messages

158

B-5.

258

LEMUR Command Summar)'

159

Other fv4onitor Error Codes

B-6. Enqueue/Dequeue Abnormal Codes

263

27.

Data Control Block Size __

162

B-7. Enqueue/Dequeue Error Codes

263

28.

Accounting Printout for Batch Jobs

168

C-1. CP-V 8-Bit Computer Codes (EBCDIC)

265

29.

Debug Error Messages ___

178

C-2. CP-V 7-Bit Communication Codes (ANSCII) _ _ 266

30.

PCl Device Types _____

183

C-3. CP-V Symbol-Code Correspondences

267

31.

PCl Organization Types __

183

C-4. ANSCII Control-Character Translation.
Table

271

32.

Data Codes

187

33.

Data Formats

187

C-5. Substitutions for Nonexistent Characters
on 2741 Keyboards

273

34.

Mode Codes - COpy Command

188

E-1. Cooperative and Symbionts Descriptions

276

vii

PREFACE
Control Program-Five (CP-V) is a general-purpose system that operates on a Xerox 560 or Sigma 5, 6, 7, or 9
computer and a variety of peripheral devices. The system provides for five concurrent modes of operation.

•

Batch processing

•

Time-sharing

•
•
•

Remote processing
Real-time processing
Transaction processing

This manual is the principal source of reference information for the batch processing features (i.e., job control commands, system procedures, I/O procedures, program loading and execution, debugging aids, and service processors).
The purpose of the manual is to define the rules for using the batch processing features. Manuals describing other
features of CP-V are outlined below.
•

The CP-V Time-Sharing Reference Manual, 90 09 07, is the principal source of information for the timesharing features. It defines the rules for using the Terminal Executive Language and other terminal processors.

•

The CP-V Time-Sharing User's Guide, 90 16 92, describes how to use the various time-sharing features. It
presents an introductory subset of the features in a format that allows the user to learn the material by using
the features at a terminal as he reads through the document.

•

The CP-V System Programming Reference Manual, 9031 13, describes the CP-V features that are designed
to aid the system programmer in the development, maintenance, and modification of the CP-V system.

•

The CP-V System Management Reference Manual, 90 16 74, is the principal source of reference information
for the system management features of CP-V. It defines the rules for generating a CP-V system (SYSGEN),
authorizing users, maintaining user accounting records, maintaining the file system, monitoring system performance, and other related functions.

•

The CP-V Operations Reference Manual, 90 1675, is the principal source of reference information for
CP-V computer operators. It defines the rules for operator communication (i. e., key-ins and messages),
system start-up and initialization, job and system control, peripheral device handling, recovery, and file
preservation.

•

The CP-V Remote Processing Reference Manual; 90 30 26, is the principal source of information about the
remote processing features of CP-V. All information about remote processing for a" computer personnel
(local and remote users, system managers, remote site operators, and central site operators) is included in
the manual.

•

The CP-V Transaction Processing Reference Manual, 9031 12, provides information about dynamically
modifying and querying a central database in a transaction processing environment. Tha manual is addressed
to system managers, database administrators, applications programmers, and computer operators.

•

The CP-V Common Index (9030 80) is an index to all of the above CP-V manuals.

Information for the language and application processors that operate under CP-V is also described in separate manuals. These manuals are listed on the Related Publications page of this manual.

viii

90 17 64H-1(9/18)

COMMAND SYNTAX NOTATION
Notation conventions used in c()mmand specifications and e)(amples throughout this manual are listed below.
Notation

Description

lowercase Ietters

Lowercase letters identify an element that must be replaced with a
user-se Iected va Iue.
CRndd

CAPITAL LETTERS

Capital letters must be entered as shown for input, and will be printed as
shown in output.
DPndd

[]

means "enter DP followed by the values for ndd".

An element inside brackets is optional. Several elements placed one under
the other inside a pair of brackets means that the user may select anyone or
n'one of those elements.
[KEYM]

{}

could be entered as CRA03.

means the term "KEYM" may be entered.

Elements placed one under the other inside a pair of braces identify a required choice.
{ ~}

means that either the letter A or the value of id must be entered.

The horizontal ell ipsis indicates that a previous bracketed element may be
repeated, or that elements have been omitted.
name [, name]. • •
means that one or more name va Iues may be
entered, with a c()mma inserted between each name value.
The vertical ellipsis indicates that commands or instructions have been
omitted.
MASK2 DATA,2 X ' 1EF '
BYTE
Numbers and
speciQI characters

DATA,3 BA(L(59))

means that there are one or more statements omitted between the two DATA
directives.

Numbers that appear on the line (i.e., not subscripts), special symbols, and
punctuation marks other than dotted lines, brackets, braces, and underlines
appear as shown in output messages and must be entered as shown when input.
(value)
means that the proper value must be entered enclosed in
parentheses; e. g. f (234).

Subscripts

Subscripts indicate a first, second, etc., representation of a parameter that
has a different value for each occurrence.
sysidl,sysid2,sysid3
means that three successive values for sysid
should be entered separated by commas.
j,

ix

1. INTRODUCTION
OPERATING SYSTEM

The operating system is self-contained and requires operator intervention only under exceptional conditions.

The CP-V monitor functions as the major control element in
an installation's operating system. The operating system
consists of the monitor and a number of processing programs:
language processors, execution control processors, service
processors, appl ication processors, and user processors. In
genera I, the monitor governs the order in wh i ch programs
are executed and provides common services to all of them
. (see Figure 1).
The number~ types and versions of the programs in an operating system vary, depending upon the exact requirements
at a particular installation. Each operating system consists
of a selection of monitor routines and processing programs
thatare closely integrated for a giv(m range of applications.
The operating system required for a ·particular installation is generated through use of the System Generation
programs, which are described in the CP-V/SM Reference
Manual, 90 16 74.·
As the requirements of an installation increase, the operating system can easily be enlarged, modified, or updated.
The ability to adapt conveniently to new requirements is
inherent in the system design. Once a system is generated,
it can be quickly expanded to include user's programs,
data, and system I ibraries. User's programs and the standard system processors are equ i va lent in that they are
stored, cataloged, and referred to within the system in the
same way. They are also written using the same conventions for communicating with the monitor.

r

.Operator

--

Job Input

I
---L

Job Output

PHILOSOPHY OF OPERATION
The monitor uses sophisticated techniques for efficient
machine operation in:a production environment. The abi I ity
to process a continuous series of jobs with little or no operator intervention is one of the most important features of the
system. By reducing the need for operator participation,
the operating system ensures faster throughput, and operations are less subject to error. For the most part, the operator should only have to perform routine tasks such as loading
and unloading tape reels.
Complete and easy-to-use I/O services are avai lable to
user programs, thus relieving the programmer of many coding chores. Device assignment is general and automatic,
enabl ing the user's program to exploit the complete flexibiity of peripheral units.
I/O service is comprehensively organized to simplify programming and make machine utilization effici.ent. I/O
transfers are automatically buffered, and I/o peripherals
are serviced on a queue basis (by job). Jobs can thus be
executed sequentially even though they might normally be
I/O-bound and delay use of the CPU or other I/O devices.
The job scheduler permits selective job operation based on
job type or administrative priority to maximize throughput
efficiency or environmental needs. The computer operator

Monitor

r-------- ------ ----,

Processing Programs
r-----------,

System Control

Language
Translator

Job Scheduler

Service

Batch User

Symbionts

1..---------- _.;.., _______ _

Time-Sharing
Users
____________ J

Figure 1. Operating System

Introduction

GLOSSARY
addend value
a hexadecimal constant to be added to
the value of a reJocatable address. The constant is
expressed as a signed integer appended to the address;
e.g., START+12 or HERE-Flo
address resolution code
a two-bit code that specifies
whether an associated address is to be used as a byte
address or is to be converted (by truncating low order
bits) to a halfword, word, or doubleword address.
a tape that has labels written in American
ANS tape
National Standard format.
batch job
a job that is submitted to the batch job stream
through the central site card reader, through an online terminal (using the Batch processor), or through
a remote terminal.
bi"nary input
input from the device to which the BI (binary input) operational label is assigned.
common page
a' page of core storage that is available
to the user's program and in which stored data is retained until the current job is terminated or until the
page is released by the user's program.
concatenation
a process whereby a number of files with
the same fi Iename and format e treated as one log ical file. Concatenation is only applicable to ANS
tapes.
a refere .ce to a symbolic name
conflicting reference
that has more than one definition.
control command
any control message other than a
key-in. A control command may be input via any device to which the system command input function has
been assigned (normally a card reader).
control command interpreter (CCI)
a monitor routine
that interprets control commands.
control function
any monitor function initiated by a
control command or control key-in.
control key-in
a control message of the type that must
be input from the operator's console.
control message
any message received by the monitor
that is either a control command or a control key-in.
cooperative
a monitor routine that transfers information
between a user's program and disk storage (also see
"symbiont" ).
data control block (DCB)
a table in the user's program
that contains information used by the monitor in the
performance of an Vd operation.

x

disk pack
a secondary storage system of removable rotating memory.
dummy section
a type of program section that provides
a means by which more than one subroutine may reference the same data (via an external definition used as
a label for the dummy section).
element fi Ie
a user's fi Ie consisting of program elements,
such as relocatable object modules or library load
modules.
error severity level code
a four-bit code indicating the
severity of errors noted by the processor. This code is
contained in the final byte of an object module.
external definition
a load item that assigns a specific
value to the symbolic name associated with a particular external definition name number. An external definition allows the specified symbolic name to be used
in external references (see below).
external reference
a reference to a declared symbolic
name that is not defined within the object module in
which the reference occurs. An external reference
can be satisfied only if the referenced name is defined
by an e.xternal load item in another object module.
fi Ie extension
a convention that is used when certain
system output DCBs are open.ed. Use of this convention
causes the fi Ie (on RAD, tape, disk pack, etc.) connected
to the DCB to be positioned to a point just following
the last record in the file. When additional output is
produced through the DCB, it is added to the previous
contents of the file, thereby extending the file.
fi Ie management routines
monitor routines .that interpret
and perform I/O functions.
function parameter table (FPT)
a table through which a
user's program communicates with a monitor function
(such as an I/O function).
ghost job
a job that is neither a batch nor an online program. It is initiated and logged on by the
monitor, the operator, or another job and consists
of a sing Ie job step. When the ghost program exits, the ghost is logged off.
global symbol
a symbolic name that is defined in one
program module and referenced in another.
GO file
a temporary secondary storage file consisting
of relocatable object modules formed by a processor.
granule
a block of disk sectors large enough to contain
512 words {a page, or 2048 bytes) of stored information.

job control language (JCL)
a language consisting of
control commands that provide job specifications to
the mon i tor.
job information table (JIT)
a table associated with each
active job. The table contains accounting, memory
mapping, swapping, terminal DCB (M:UC), and temporary monitor information.
job step
a subunit of job process.ing such as compilation, assembly, loading, or eXlecution. Information
from certain commands (JOB, LIMIT, and ASSIGN)
and all temporary files created during a job step are
carried from one job step to thEl next but the steps are
otherwise independent.
key

a data item that uniquely identifies a record.

key-in
information entered by the operator via a
keyboard.
library load module
a load module that may be combined with relocatable object modules, or other library load modules, to form a new executable load
module.
linking loader
a program that is capable of linking and
loading one or more relocatablo object modules and
load modules.
load information
information (i. e., control information, data, and instructions) generated by a processor
and contained in one or more modules capable of being linked to form an executable program.
load location counter
a counter established and maintained by the monitor to contain the address of the
next location into which information is to be loaded.
load map
a listing of loader output showing the location or value of all global symbols entering into the
Joad. Also shown are symbols tlhat are not defined or
have multiple definitions.
load module (LM),
an executable program formed by
the linking loader, using relocatable object modules
(ROMs) and/or load modules (LMs)as input information.
logical device
a peripheral device that is represented
in a program by an operational label (i. e., BIor PO)
rather than by specific physical device name.
an information stream that may
logical device stream
be used when performing input from or output to a symbiont device. At SYSGEN, up to 15 logical device
streams are defined. Each loglical device stream is
given a name (e.g., L1, P1, C1), each is assigned
to a defau It physical device, and each is given default attributes. The user may' perform I/o through
a logical device stream with the default physical device and attributes or· he may change the physical
device and/or attributes to satiisfy the requirements
of his job.

monitor
a program that supervises the processing loading,
and execution of other programs.
object language
the standard binary language in which
the output of a processor is expressed.
object module
the series of records 'containing the load
information pertaining to a single program or subprogram (i. e., from the beginning to the end). Object modules serve as input to the Load processor or the
link processor.
operational label
a symboli c name used to identify a
logical system device.
option
an elective operand in a control command or
procedure call, or an elective parameter in a func ...
tion parameter table.
overlay loader
a monitor routine that loads and I inks
elements of overlay programs.
overlay program
a segmented program in which the element (i .e., segment) currently being executed may
overlay the core storage area occupied by a previously
executed element.
parameter presence indicator
a bit in word 1 of a function parameter table that indicates whether a particular parameter word is present in the remainder of
the table.
physi cal device
a peripheral d'evice that is referred to
by a name specifying the device type, I/o channel,
and device number (also see "logical device").
postmortem dump
a listing of the contents of a specified area of core memory, usually following the abortive execution of a program.
program product
a compiler or application program that
has been or will be released by Xerox. A program product is not required by all users and is therefore made
available by Xerox on an optional basis. Program products are provided only to those users who execute a
License Agreement for each applicable installation.
protective mode
a mode of tape protection in which only
ANS expired tapes may be written on through an ANS
DCB; no unexpired ANS tape may be written on through
a non-ANS DCB; all ANS tapes must be initialized by
the Lqbel processor; no tape serial number specification
is allowed at the operator's console; specification of an
output serial number in an ANS DCB forces processing
to be done only on a tape already having that serial
number; tapes mounted as IN may not be written; and
tapes mounted as other than IN must have a write ring.
(See "semiprotective mode II • )
pseudo fil'e name
a symbolic name used to identify a
logical device in a user's program.

xi

public library
a set of library routines declared during
system generation to be public (i.e., to be used in
common by all concurrent users).

shared processor
a program (e.g., FORTRAN) that is
shared by a II concu rrent users. Shared processors must
be establ ished at SYS GE N.

rapid access data (RAD) storage system
age system of rotating memory.

source language
a language used to prepare a sourc
program suitable for processing by an assembler or
complier.

a secondary stor-

reentrant
an attribute of a program that allows the program to be shared by several users concurrently. Shared
processors in CP-V are map reentrant. That is, each
instance of execution of the single copy of the program's instructions has a separately mapped copy of
the execution data.

special shared processor
a shared processor that may be
in core memory concurrently with the user's program
(e.g., Delta, TEL, or the FORTRAN library).
specific allocation
al location of a specific page of
unallocated virtual memory to a user program.

relative allocation
allocation of virtual memory to a
user program starting with the first unallocated page
available.

SR 1, SR2, SR3, and SR4

relocatable object module (ROM)
a program or subprogram in object language generated by a processor
such as Meta-Symbol or FORrRA~.

star file
a file created by the system containing temporary user context. The system may create up to five
star files for each batch job or on-line session. These
files are transparent to the user, are not cataloged in
the File Directory, and always cease to exist at the
end of the batch job or on-line session.

relocating loader
a program capable of loading one or
more object modules and linking them to form an
executable program.

remote processing
an extension of the symbiont system that provides flexible communication between
CP-V and a variety of remote terminals.

see "system register", below.

static core module
a program module that is in core
memory but is not being executed.
symbiont
a monitor routine that transfers information
between disk storage and a peripheral device independent of and concurrent with job processing.

resident program
a program t lat has been loaded into
a dedicated area of core n. :mory.

symbolic fnput
input from the device to which the 51
(symbolic input) operational label is assigned.

response time
the time between the completion of terminal input and the first r ogram activation.

symbolic name
an identifi er that is associated with some
particu lar source program statement or item so that symbol ic references may be made to it even though its
value may be subject to redefinition.

scheduler
a monitor routine that controls the initiation
and termination of all jobs, job steps, and time slice
quanta.
secondary storage
any rapid-access storage medium
other than core memory (e. g., RAD storage).
segment loader
a monitor routine that loads overlay
segments f~om disk storage at execution time.
semi-protective mode
a mode of tape protection in which
a warning is posted to the operator when an ANS DCB
attempts output on a non-ANS tape or an unexpired
ANS tape, when a non-ANS DCB attempts output on
an unexpired ANS tape, or when a tape mounted as
INOUr has no write ring. The operator can authorize
the overwriting of the tape or the override of INOUT
through a key-in (OVER and READ). ~ ANS tapes may
be initialized by the Label processor (,r may be given
labels as the result of an operator key-in; tape serial
number specification is allowed at the operator's console; and specification of an output seria I number in an
ANS DCB forces processing to be done only on a tape
already having that serial number unless the operator
authorizes an overw.rite. (See "protective mode". )

xii

SYSGEN

see IIsystem generation", below.

system generation (SYSGEN)
the process of creating an
operating system that is tailored to the specific requirements of an installation. The major SYSGEN steps include: gathering the relevant programs, generating
specific monitor tables, loading monitor and system
processors, and writing a bootable system tape.
system library
a group of standard routines in objectlanguage format, any of which may be incorporated
in a program being formed.
system register
a reigster used by the monitor to communicate information that may be of use to the user
program (e.g., error codes). System registers SR 1,
SR2, SR3, and SR4 are current general registers 8, 9,
10, and 11, respectively.
task control block (TCB)
a table of program control
information bui It by the loader when a load module
is formed. The TCB is part of the load module and
c~ntains the data required to allow reentry of library

rountines during program execution or to allow entry
to the program incases of traps I breaks, etc. The
TCB is job-step assiciated.

TEXT format
an EBCDIC character string that begins and
ends at word boundaries. The character string is leftjustified in the field and is padded with trailing blanks.

TEXTC format
a character string preceded by a byte that
contains the number of characters in the character
string. (The count byte does not include itself in the
count.) For many CP-V functions, the character string
need not consist of printabl e characters.

TSS temp stack
a push-down stack establ ished by the
monitor for use by an executing program (unless NOTCB
was specified for the load modul e.)
unsatisfied reference
a symbol ic name that has been
referenced but not defined.
user-identification banner
an identifying prescript and/or
postscript for output through a logical device stream.
Line printer and card punch device streams are given useridentification banners; other device streams are not. A
punch stream receives a one-card prescript. A printer
stream receives a one-page prescript and, provided that
it has not been given a FORM name, a one-page postscript. A prescript card and each I ine of a prescript
page contains the user's account number and name.

xiii

maintains complete control over the job stack on secondary
storage. Jobs can be suspended or initiated on a priority
. basis.
Rapid access data (RAD) and disk pack (DP) storage devices
are used for secondary storage. Secondary storage management is essential to efficient operation of the monitor, since
such storage is fully exploited in various ways. It is used
for system storage to overlay portions of the monitor, minimizing core memory residency. Service processors (compi lers, assemblers, etc.) are contained on secondary storage
for immediate access and they, too, capitalize on rapid
overlay techniques to minimize core memory requirements
at execution time. Scratch storage for service processors
and user programs is available on secondary storage. Finally,
the secondary storage accommodates permanent and tempo~ary user fi Ies.
User files may be stored on public RAD or disk packs or on
private disk packs or magnetic tape. Three file structures
are available: random (direct), consecutive, and keyindexed (indexed-sequential). Access may be either direct (keyed) or sequential. Programs coded to access the
simpler consecutive fi les may correctly access the more
complex keyed files sequentially without program change.
Fi Ies are protected from unauthori zed use by passwords and
byexplicit lists of users authorized to read or to update them.
User programs can avai I themselves of the secondary storage and the overlay servi ce of the monitor, With these
faci lities, user programs that require more operating core
memory storage than is physicall,' Nai lable can be easi Iy
segmented and controlled so thClt unly part occupies available core memory at anyone time The monitor accepts
the overlay stp 'dur~ of the user's program and ensures
proper sequencing and transfer .1g of program elements.
It also detects inconsistencies in the logical overlay structure and log .. them as a diagnosti c message to the user.
The monitor provides for complete accounting of user,
job activity on the computer. Because of the system's
multiusage capabi lity, the accounting information indicates both elapsed time and actual machine faci lity uti lization of each job.

The full multiuse capabi Iity of the monitor provides for five
concurrent modes of operation:

1.

Batch processing.

2.

Interactive time-shared processing.

3.

Remote process ing •

4.

Real-time processing.

5.

Transaction processing.

BATCH PROCESSING
Batch jobs may be submi tted to the batch job stream through
the central site card reader, through an on-I ine terminal
(using the Batch processor), or through remote processing.
Batch processing faci Iities are described in this document.

TI ME-SHARED PROCESSING
CP-V allows multiple on-line terminal users to concurrently
create, debug, and execute programs. Although some faci lities and processors are reserved for on-I ine use and others
for batch use, the two classes of service are complementary.
Generally speakin'g, anything that can be done in batch
mode can be done on-line, although sometimes in a curtailed manner. In particular, compilers and assemblers are
compatible across the two classes of service at source and
relocatable" levels. For example,

1.

Processors for Extended FORTRAN IV, ANS COBOL,
and Meta-Symbol are available both in batch and online mode.

2.

Programs compi led or assembled in batch can be linked
with those produced on-line and can be run and debugged on-I i ne.

3.

Programs compiled or assembled on-line can be linked
and run in batch mode.

(Reference: CP-V/TS Reference Manual, 900907.)

REMOTE PROCESSING
The monitor provides job accounting and validation of
each user's job activity:
•

Validity or authorization checks are made on the user's
name and account number combination. Jobs are
aborted where the name and account number are not
previously validated by the installation manager.

•

A discrete accounting record is written at the terminati on of each batch job.

•

Standard accounting can be supplemented by the user
supplying initiation and termination routi~es for a job.

The remote processing system is an extension of the CP-V
symbiont system. Its purpose is to provide for very flexible
communication between CP-V and a variety of remote terminals. These terminals can range from a simple card reader
and line pr inter combi nati on to another computer system
with a wide variety of peripheral devices. Any CP-V user
(batch, on-line, or ghost) can communicate with any number
of devices at one or several remote sites. (Reference:
CP-V/RP Reference Manual, 903026.)
I

REAL-TIME PROCESSING
The monitor's loader function relocates user programs into
the currently avai lable core memory space, satisfies all
library subroutine references, and links all program elements called for by the user. In addition, run-time debugging calls are recognized and established for the binary
programs.
2

Phi losophy of Operation

The real-time services provided by CP-V allow users to
connect interrupts to mapped programs, control the state of
interrupts (e. g., trigger, arm/disarm, enable/disable),
clear interrupts either at the time of occurrence or upon
completion of processing, and disconnect interrupts no

The transactions are processed immediately, as they are
received, by appl ication programs written especia Ily for
the particular installation. (Reference: C P-V/TP Reference Manual, 90 31 12.)

longer required. Users may also request that a mapped
program.be held in core in order to reduce the time required
to respond to an external event (via an interrupt) or to
allow various forms of special I/o to occur. Programs may
be connected to one of the monitor's clocks such that after
a specified period of time, a specified routine is entered.
In addition, dedicated foreground memory may be used as
inter-program communication buffers or as dedicated memory
for unmapped, master mode programs which may be directly
connected to external interrupts or real-time clocks.
(Reference: Cp-V/Sp Reference Manual, 9031 13.)

PROCESSORS
The CP-V system is illustrated in Figure 2 at two levels.
The upper level represents the monitor and its various routines. The lower level lists the various processors. These
processors are described in the fo IIowi ng paragraphs.

TRANSACTION PROCE:SSING
The transaction processing feature of CP-V is an efficient
and economical approach to centralized information processing and is a generalized package that is designed to
meet the requirements ofa variety of business applications.
Transaction processing faci Iities provide an environment ih
which several users at remote terminals may enter business
transactions, simultaneously utilizing a common data base.

COMMAND' PROCESSORS
The four processors in this group are: LOGON/LOGOFF,
EASY, TEL, and CCI. The first of these processors is available to on-line and batch users, the second and third are
available to on-line users only, and the last is available
to batch users on Iy.

Monitor
Basic Control
Scheduling and Swapping
Memory Management
Jab Step Control
Terminal I/O
Symbionts and Cooperatives
File Management

I

I

Command·
Processors

System
Manogement
Processors

LOGON/
LOGOFF (OB)
TEL (0)
EASY (0)
CCI (B)

Note: 0

Super (OBG)
Control (OBG)
Rates (0)
FILL (OG)
FSAVE (OB)
FRES (OB)
Fix (OBG)
VOLIN IT (OBG5)
Label (B)
STATS (OBG)
Summary (OB)
SYSCON (OG)
GAC(OBG)
DEVDMP (S)
ONLIST (OBG)
PPS (G)

System Integrity
Initialization and St9rt-Up
Operator Communication
Batch Debugging
System Debugging
Lood and Link
Public and System Libraries

I
languoge
Processors
ANS FORTRAN (OB)
FORTRAN IV (OB)
Meta-Symbol (OB)
AP (OB)
BASIC (OB)
FLAG (OB)
ANS COBOL (OB)
APL (OB)
RPG (B)
SL-l (OB)+

Executio"
Control
Processors

----Link (OB)
Load (B)
LYNX (OB)
Delta (0)
FOP (OB)
COBOL
On-Line
Debugger (0)

I

I

Service
Processors

Application
Processors

Edit (OG)
PCL (OB)
LEMUR (OB)
SYSGEN (OB)
DEFCOM (OB)
SYMCON (OB)
ANLZ (OBG)
Batch (OBG)
DRSP (OB)
ELLA (OBG)
Show (OB)

Sort/Merge (B)
EDMS (B)t
GPDS (B)t
CIRC (OB)t
Manage (OB)t
Transaction Processing (OB)

I
User Processors
(OBG)

on-line
botch

G

ghost
stand-alone

t

Prog~am

product (see glossary),

Figure 2. CP-V Operating System

Processors

3

LOGON/LOGOFF

ANS FORTRAN

LOGON admits on-line users to the system. LOGOFF
disconnects a user (on-line or batch) from the system and
does the final cleanup and accounting.

The ANS FORTRAN compi ler is compatible with most
features of the forthcomong (new) American National
Standard Institute FORTRAN language, which includes
many extensions to the 1966 ANS FORTRAN Standard
Language. It is operable under CP-V as a shared
processor, offering services to both the batch user and
the on-line user. The user may request, as an option,
that the compiler produce either ROM
output or program execution (LOAD and GO)

EASY
EASY is a shared processor that enables the user to 'create, .
edit, execute, and delete program files written in BASIC or
FORTRAN. EASY also al lows the user to create and manipulate EBCDIC data fi les. Although intended primari Iy for
Teletype operations, EASY can be used with any type of
on-I i ne termi na I supported by C P-V • (Reference: EASY/
LN, OPS Reference Manual, 90 18 73.)

TERMINAL EXECUTIVE LANGUAGE
TEL is the defaul t command processor for time-sharing and
serves as the terminal user's interface to the various services
of CP-V. TEL is functionally equivalent to the batch mode
Control Command Interpreter. Some of the functions performed by TEL are:'

1.

Ca"ing user programs and system processors.

2.

Changing the log-on password.

3.

Assigning I/O de'vices and DLB parameters.

4.

Requesting -xte"'ded memory mode.

5.

Determining on-line user status.

6.

Changing terminal platen size.

7.

Sending messages to the operator.

8.

Logging off.

(Reference: CP-V/TS Reference Iv\anual, 900907.) -

CONTROL COMMAND INTERPRETER
The Control Command Interpreter is the batch counterpart
of TEL. It provides the batch user with control over the
processing of batch programs just as TEL provides on-line
users with control over the processing of on-line programs.

Advantageous features of the ANS FORTRAN compiler are:
•

Compiler speed on the order of2K-3K lines per minute.

•

Compressed input/output capabil ity.

•

Addition of INCLUDE (system) capabil ity.

•

Conversational characteristics for time-sharing_

•

New ANS FORTRAN compatibility:
CHARACTER variables
Expanded READ/WRITE capabilities
OPE Nand CL OSE statements

(Reference: ANS FORTRAN;\.N Reference Iv\anual,
9032 00, aod the ANS FORTRAN/OPS Reference
Iv\anual, 90 32 01.)
XEROX EXTENDED FORTRAN IX'
The Xerox Extended FORTRAN IV language processor consists
of a comprehensive algebraic programming language, a
compiler, and a large library of subroutines. The language is a superset of most avai lable FORTRAN languages,
conta i n i ng many extended language features to fac iii tate
program development and checkout. The compi lar is ~e­
signed to produce very efficient object code, thus reducing
execution time and core requirements, and to generate extensive diagnostics to reduce debugging time. The library
contains over 235 subprograms and is avai lable in a reen. trant version. Both the compiler and run-time library are
reentrant programs that are shared among all concurrent
users to reduce the utilization of critical core resources •.
(Reference: Extended FORTRAN IV/LN Reference Manual, 90 09 56, and Extended FORTRAN IV/OPS Reference
Manual, 90 11 43.)

META-SYMBOL

LANGUAGE PROCESSORS
Language processors translate high-level source code into
machine object code. Nine processors of special importance
are described below. Eightof these (Extended FORTRAN IV,
Meta-Symbol, BASIC, FLAG, ANS COBOL, APL, Manage,
and SL-l) can be used in both on-line and batch modes.
The other one (RPG) can be used in batch mode only.

4

Processors

Meta-Symbol is a procedure-oriented macro assembler. It
. has services that are avai lable only in sophisticated macro
assemblers and a number of spec ia I features des igned to per. mit the user to exercise dynamic control over the parametric
'environment of assembly. It provides users with a highly
flexible language with which to make full use of the available Xerpx560and Sigmahcirdwar~ c~Pabilities. (Reference:
M~ta-Symbol/LN,OPS Reference Manual, 9009 52.)

AP

FLAG

Assembl y Program (AP) is'O four-phclse assembler that reads
source language programs and converts them to object
language programs. AP outputs the obiec~ language program, an assembly I isting, and ,a cross reference (or concordance) listing. AP is available in both the on-line and
batch modes.

FLAG (FORTRAN Load and Go) is an in-core FORTRAN
compi ler that is compatible with the FORTRAN IV-H class
of compilers. It can be used in preference to the other
FORTRAN compi lers when users are in the debugging phase
of program development. FLAG is a one-pass compi ler and
uses the Extended FORTRAN IV library. Inc Iuded in the
basic external functions are the Boolean functions lAND
(AND), IEOR {exclusive OR}, and lOR (OR), which give
the FORTRAN user a bit manipulation capabi Iity.

The following Iist summarizes AP's more important features
for the programmer:
•

Self-defining constants that facilitate use of hexadecimal, decimal, octal, floating-point, scaled fixedpoint, and text string val ues.

•

The facil ity for writing large programs in segments
or modules., The assembler will provide information
necessary for the loader to c()mplete the Iinkage between modules when they are loaded into memory.

•

The label, command, and argument fields may contain
both arithmetic and logical expressions, using constant
or variable quantities.

•

Full use of Iists and subscripted elements is provided.

•

The DO, DOl, and GOTO directives allow selective
generation of areas of code, with parametric constants
or expressions evaluated at assombly time.

•

Command procedures allow the capability of generating
many units of code for a given procedure call line.

•

Function procedures return val lies to the procedure call
line. They also provide the cClpability of generating
many units of code for a given procedure call line.

.,

Individual parameters on a procedure call line can be
tested both arithmetically and iogically.

•

Procedures may call other procedures, and may call
procedures recursively.

(Reference: Xerox Assembl y Prog"] m/Reference Man9030 OO.)

ua,

BASIC
BASIC is a compi ler and programming language based on
Dartmouth BASIC. It is, by design, easy to teach, learn,
and use. It allows individuals with little or no programming
experience to create, debug, and execute programs via an
on-line terminal. Such programs are usually small to medium size applications of a computational nature.
BASIC is designed primari Iy for on-line program development and execution, or on-line development and batch
execution. In addition, programs may be developed and
executed in batch mode. (Reference: BASIC/LN,OPS
Reference Manual, 90 15 46. )

If several FLAG jobs are to be run sequentially, they may
be run in a sub-job mode, thus saving processing time normally needed for the Control Command Interpreter (CC I) to
interpret the associated control cards. In this mode, FLAG
wi II successively compi Ie and execute any number of separate programs, thereby reducing monitor overhead.
The FLAG debug mode is a user-selected option that generates extra instructions in the compiled program to enable
the user, during program execution, to detect errors in program logic that might otherwise go undetected or cause unexplainable program failure. (Reference: FLAG/Reference
Manual, 90 16 54.)

ANS COBOL
The Xerox ANS COBOL compi ler offers the user a powerful
and convenient programming language facility for the implementation of business or commercial applicati,ons. The
language specifications fully conform to the ANSI standard
for the various functional processing modules. The compi ler's design takes full advantage of the Xerox 560 and
Sigma unique hardware features, resulting in rapid compilation of source code, rapid execution of the resulting object code, and the generation of compact programs. The
result is a highly efficient programming system requiring
a minimum amount of storage. (Reference: ANS COBOL/
LN Reference Manual, 90 15 00. )
RPG
Xerox RPG (Report Program Generator) is a convenient
means of preparing reports from information available in
computer-readable forms, such as punched cards, magnetic
tape, and magnetic disks. In addition, it is a means of
establishing and updating files of information, usually in
conjunction with preparation of reports.
RPG provides its capabilities through generation (compilation) of object programs, each of which is tailored to
produce' a different set of reporting results and/or file
processing desired by the user. The RPG object programs
are capable of accepting input data, retrieving data from
existing fi les, performing calculations, changing formats of
data, updating existing fi les, creating new files, comparing
data values to one another and to specified constants to determine appropriate handling, using user-defined processing
subroutines, using system library subroutines, and printing
reports derived from the input and file data.

Processors

5

Xerox RPG has several advantages over the more traditional
methodofwritingobjectprograms in a symbolic programming
language. The RPG language is oriented toward the user's
problem, describing reporting requirements, rather than
toward the mechanics and manipulations of computer usage.
The language and specification techniques are easily
.
learned. A user can become proficient in RPG after writing only a few programs, whereas an equal facility in
symbolic programming would require considerable experience. (Reference: RPG/Reference Manual, 90 19 99. )
APL
Xerox APL (A Programming Language) is a processor and
programming language based on Kenneth Iverson's APL. It
. is an interpretive, time-sharing, problem-solving language.
As an i nterpreti ve language, A PL interprets each line of
input as it is entered and produces code that is immediately
executed. As a problem-solving language, APL requires
minimal computer programming knowledge.
Because APL is powerful, concise, easy to learn, and easy
to use, it is widely used by universities, engineers, statisticians, and businessmen. One of APL's major strengths is
its ability to manipulate vectors and multidimensional
arrays as easily as it does scalar values.
Xerox APL has been designed to be compatible with
competitive APL systems. In addition, it ha;, many salient
features not generally found in other APL systems. Some of
these features are: both on-line ar batch operation, operation from terminals w:thout APL ,;haracters, fast formatted output, fi Ie input/output, ompound statements,
unequally spacer! tab settings, and so on. (Reference:
APL/LN, OPS Reference Manual, ;0 1931.)
SIMULA TIO". LANGUAGE (PROGRAM PRODUCT)
The Simulation Language (SL-1) is a simpl Hied, problemoriented digital programming language designed specifically for digital or hybrid simulation. SL-1 is a superset
of CSSL (Continuous System Simulation Language), the standard language specified by Simulation Councils, Inc., for
simulation of continuous systems. It exceeds the capabilities of CSSL and other existing simulation languages by
providing hybrid and real-time features, interactive debugging features, and a powerful set of conditional translation features.
SL-1 is primarily useful in solving differential equations, a
fundamental procedure in the simulation of parallel, continuous systems. To perform this function, SL-l includes
six integration methods and the control logic for their use.
In hybrid operations, SL-1 automatically synchronizes the
problem solution to real-time and provides for hybrid input
and output.
Because of the versatility of Xerox 560 and Sigma computing systems and the broad applicability of digital and hybrid simulation techniques, applications for SL-1 exist across the real-time spectrum. The library concept of SL-1
allows the user to expand upon the Xerox supplied macro
set and facilitates the development of macro libraries
oriented to any desired application. (Reference: SL-1/
Reference Manual, 90 1676.)

6

Processors

EXEcunON CONTROL PROCESSORS
Processors in this group control the execution of object programs. Load can be used in batch mode only. Link and FDP
can be used in either batch or on-line mode. Delta and
the COBOL On-Line Debugger can only be used in the
on-line mode.
LINK
Link is a one-pass linking loader that constructs a single
entity called a load module, which is an executable program formed from relocatable object modules (ROMs). Link
is designed to make full use of mapping hardware. It is not
an overlay loader. If the need for an overlay loader exists,
the overlay loader (Load) must be called byentering the job
in the batch stream. (Reference: C P- V/TS Reference Manual, 90 09 07, and Chapter 6 of this manual. )
LOAD
Load is a two-pass overlay loader.

The first pass processes

1.

All ,relocatable object modules (ROMs).

2.

Protection types and sizes for control and dummy sections of the ROMs.

3.

Expressions for definitions and references (primary,
secondary, and forward references).

The second pass forms the actual core image and its relocation dictionary. (Reference: Chapter 6. )
LYNX
LYNX is a load processor that is available in both the online and batch modes. LYNX has most of the capabilities
of the Load loader and also provides the same control over
internal and global symbol table construction which is available in the Link loader. LYNX may be viewed as a preprocessor for the Load loader. After it analyzes the user's
commands, it constructs a table of loader control information
which it then passes to the Load loader. It is the Load
loader which actually performs the loading processor. (Reference: Chapter 6. )
DELTA
Delta is designed to aid in the on-line debugging of pro-·
grams at the assembly-language or machine-language levels.
It operates on object programs and tables of internal and
global symbols used by the programs but does not require
that the tables be at hand. With or without the symbol tables, Delta recognizes computer instruction mnemonic
codes and ·can assemble machine-language programs on an
instruction-by-instruction basis. (Reference: CP-V/TS Reference Manua I, 90 09 07. )
FORTRAN DEBUG PACKAGE
The FORTRAN Debug Package (FDP) is made up of special
library routines that are called by Xerox Extended FORTRAN IV object programs compiled in the debug mode.
These routines interactwith the program to detect, diagnose,
and in many cases, repair program errors.

The debugger can be used in batch clnd on-line modes. An
- extensive set of debugging commands is avai lable in both
cases. In batch operation, the debugging commands are
included in the source input and are used by the debugger
during execution of the program. In on-line operations,
the debugging commands are entered through the terminal
keyboard when requested by the debugger. Such requests
are made when execution starts, stops, or .restarts. The debugger normally has control of such stops. (Reference: FDPI
Reference Manual, 90 1677.)

LEMUR
LEMUR (Library Editor and Maintenance Util ity Routine)
is a processor that builds and manipulates ROM and load
module libraries. The libraries thus built are accessed by
LYNX or Load when constructing user load modules which
. require library routines. LEMUR is available in both onIine and batch modes. (Reference: Chapter 6 and CP-VITS
Reference Manual, 90 09 07. )

COBOL ON-LINE DEBUGGER

DEFCOM

The COBOL On-Line Debugger is designed to be used with
Xerox ANS COBOL. The debugger is a special COBOL
run-time library routine that is called by programs compi led
in the TEST mode. This routine allows the programmer to
monitor and control both the execution of the program and
the contents of data items during on-line execution. The
debugger also allows the COBOL s()urce program to be examined and modified.

DEFCOM makes the DEFs and their associated values in one
load module available to another load module. It accomplishes this by using a load module as input and by producing another load module that contains only the DEFs and
DEF values from the input module. The resultant load mod- ,
ule of DEFs can then be combined with other load modules. DEFCOM is used extensively in constructing the
CP-V monitor and the shared run-time libraries. (Reference: Chapter 9.)

The debugger can only be used during on-line execution;
however, programs that have been compi led for use with the
debugger may be run in the batch mode. This is not recommended, though, because of the increased program size
when the TEST mode is specified. (Reference: ANS COBOLI
On-Line Debugger Reference Manual, 90 3060.)
I

SERVICE PROCESSORS
The processors in this group perform :such functions as editing
and transferring data between RAD storage 'and central site
peripheral devices. Four of the processors (SYSGEN,
ANLZ, DRSP, and ELLA) are for sY$tem management or system programming use only and are not described in the following paragraphs.
EDIT
The Edit processor is a Iine-at-a-tirne context editor designed for on-line creation, modification, and handling
of programs and other bodies of information. All Edit
data is stored on disk storage in CI keyed file structure
of sequence numbered, variable I(~ngth records. This
structure permits Edit to directly (lccess each Iine or record of data. (Reference: C P-VITS Reference Manua I,

SYMCON
The Symbol Control Processor (SYMCON) provides a means
of controlling external symbols in a load module and of
building a global symbol table. Its .primary function is to
gi ve the programmer a means of preventi ng doubl e defi n itions of external symbols. It may also be used to reduce
the number 6f external symbols. For example, if certain
load modules cannot be combined because their control
tables are too large, the tables may be reduced in size by
deleting all but essential exter~al symbols. (Reference:
Chapter 9.)
BATCH
The Batch processor is used to submit a fi Ie or a series
of fi les to the batch queue for execution. Through
Batch processor commands, the following capabilities are
available:

1.

A file may be inserted into a file being submitted for
execution, thus bringing together more than one file
to create a single job.

2.

Selected strings and fields existing in files being sub~
mitted for execution may be replaced by new strings
and fields.

3.

The results of string and field replacements can be
examined before the 'job is submitted to the batch
stream.

4.

Files to be submitted for execution may reside on tape
or on private disk pack.

5.

Jobs may be submitted to run in an account other than
the account from which the job is submitted.

90 09 07.)
PERIPHERAL CONVERSION LANGUAGE
The Peripheral Conversion Language (PCL) is a utility
processor designed for operation in a batch or on-line environment. It provi des for i nforma'~i on movement among
card devices, line printers, on-line terminals, magnetic
tape devices, disk pack, and RAD storage.
peL is controlled by single-line commands supplied through
on-I ine terminal input or through command card input in the
job stream. The command language provides for single or
multiple fi Ie transfers with options for selecting, sequencing, formatting, and converting data records. Additional
fi Ie maintenance and uti lity commands are provided. '(Reference: Chapter 9.)

The Batch processor may be called in either the on-I ine or
batch mode. (Reference: Chapter 9.)

Proc essors 7

SHOW
- The Show processor allows the user to display his current
maximum system services and resources, the peripheral devices that he has been authorized to use, and several other
system user para meters. (Reference: Chapter 9. )

APPLICATION PROCESSORS
The processors in this group perform such functions as sorting, simulation, and data management. They all operate
in the batch mode only.

computer to generate and update files, retrieve useful
d«;lta, and generate reports without having a knowledge
of programming.

Manage consists of four subprograms: Dictionary, Fileup,
Retrieve, and Report. The Dictionary subprogram is a data
file and is the central control element in the Manage system. It consists of definitions and control and formatting
parameters. that precisely describe the characteristics of a
data file. The Fileup subprogram initially creates and then
maintains a data file. The Retrieve subprogram extracts data
from a data base file according to user-specified criteria.
The Report subprogram automatically prepares printed reports
from data extracted by the Manage retrieval program. (Reference: Manage/Reference Manual, 90 16 10.)

SORT/MERGE
The Xerox Sort/Merge processor provides the user with a
fast, highly efficient method of sequencing a nonordered
fi Ie. Sort may be called as a subroutine from within a user's
program or as a batch processing job by control cards. It
is designed to operate efficiently in a minimum hardware
environment. Sorting can take place on from one to sixteen
keys and each individual key field may be sorted in ascending or descending sequence. The sorting technique used is
that of replacement selection tournamen! -Jnd offers the user
the flexibility of changing the blocking and logical record
lengths in' explicitly structure'-' fi les to different values
in the output file. (Referent!: Sort-Merge/Reference
Manual, 90 11 99.)

TRANSACTION PROCESSING
Transaction Processing is designed for applications that require the entry and processing of on-I ine transactions. It
is a collection of general-purpose components and supporting monitor services available under the CP-V operating
system. Transaction Processing (TP) enables business to move
from cyclic batch processing to remote on-line operations,
where transactions are entered directly from their point of
origin. The Xerox system consists of
•

The CP-V monitor and standard processors such as
COBOL, Meta-Symbol, and FORTRAN.

•

Terminal Interface Controller.

The General Purpo$e Discrete Simulator provides engineers
and administrators, whose programming experience is minimal, with a system for experimenting with and evaluating
system methods, processes, and designs. Providing a means
for developing a broad range of simulation models, it allows
organizing, modeling, and analyzing the structure of a system, observing the flow of traffic, etc. (Reference: GPDS/
Reference Manual, 90 1758.)

•

Util i ty processors tho t crea te fi Ies for externa I system
control.

•

Transaction Processing Controller.

•

Extended Data Management System (EDMS).

EDMS (PROGRAM PRODUCT)

(Reference: CP-V/TP Reference Manual, 9031 12.)

GPDS (PROGRAM PRODUCT)

EDMS is a genera Ii zed data management system that enabl es
the user to create an integrated data base. It is designed to
be used with COBOL, FORTRAN, and Meta-Symbol processors. It simpl ifies programming by performing most of the I/O
logic and data base management for'the appl ication programmer. (Reference: EDMS/Reference Manual, 90 30 12.)

MANAGE (PROGRAM PRODUCT)
Manage is a general i:z;ed file management system. It
is designed to allow decision makers to make use of the

8

Processors

CIRC .(PROGRAM PRODUCT)
CIRC is a set of three computer programs for electronic
circuit analysis on Xerox 560 and Sigma 5-9 computers:
CIRC-DC for dc circuit analysis, CIRC-AC for ac circuit
analysis, and CIRC-TR for transient circuit analysis. The
. programs are designed for use by a circuit engineer at the
installation, and require I ittle or no knowledge of programming 'for execution.

eIRC can be executed in any of three modes of operation:
conversational (on-line) mode, terminal batch entry mode,
and batch processing mode. The system manager wi" determine which of these modes are avai lable to the engineer,
based on type of computer instal/aHon and other installation decisions.

•

•

The on-line mode offers several advantages since it
provides true conversational interaction between the
user and computer. Following C IRC start-up procedures,
C IRC requests a control message from the user. After
the control message is input (e.g., iterate a cycle of
calculations with changed parameters) the computer
responds (via CIRe) with detailed request for application data. These requests are sufficiently detailed to
virtually eliminate misunderstandings by the engineer.
This mode is highly useful in a highly interactive environment that produces a low volume of output and requires limited CPU time.

The terminal batch entry mode aliows efficient handling of high volume output and Iclrge CPU time requirements whi Ie preserving the advantages of the terminal
as an input device. Two fi les am required: one containing all CIRC input including a circuit description
and control messages, and the other directing the execution of C IRC. The job is entered from the term i na I
into the batch queue and treated like a batch job.

MONITOR
The monitor responds to the moment-by-moment requirements of controlling machine operation, switching between
programs requiring service, and providing services at the
explicit request of the user's program. The monitor processes that perform these functions are Iisted below:

1.

Basic Control.

2.

Scheduling and Swapping.

3.

Memory Management.

4.

File Management.

5.

Multibatch Job Scheduling.

6.

Job Step Control.

7.

Terminal I/O Handling.

8.

Symbionts and Cooperatives.

9.

System Integrity.

10. Initialization and Start-Up.
•

The batch mode should genera IIy be used for jobs involving large volumes of computations and outputs. It
enables the user to concentrate em data preparation
with virtually no involvement in programming considerations. The system manager can provide a set of
start-up cards that never change, and these wi II constitute the entire interface between user and executive
software. However, the batch mode offers less flexibility in experimenting with a cirt:uit and slower turnaround time in obtaining answers.

(Reference: CIRC-AC/Reference Manual and User's Guide,
90 16 98, CIRC-DC/Reference Manual and User's Guide,
90 16 97, and C IRC- TR/Reference Manual and User's
Guide, 90 17 86. )

11. Operator Communications.

12. Batch Debuggi ng.
13. Load-and-Link.
14. System Debugging.
The basic control system is an I/o interrupt service and
handling routine. It includes trap and interrupt handlers,
routines that place requests for I/O in a queue, and basic
device I/O handling routines.
The scheduling and swapping module makes the decision to
swap, selects the users to swap in and out, sets up the I/O
command chains for swap transfers, and selects the next
user(s} for execution. Italso ensures that any associated, but
not currently resident, shared processors are brought in with
each user. Specia I a Igorithms control I/O schedul i ng and
the balance of machine use between on-line and batch.

USER PROCESSORS
Users may write their own processors and add them to CP-V
or replace CP-V processors. The rules governing the creation and modification of processors are described in the
CP-V/SP Reference Manual, 9031 13.

The memory management module controls the use of core
and disk storage. Specifically, it controls the allocation
of physical core memory, maintains the map and access
. images for each user, services the "get" and "free" service
calls for memory pages, and manages the swapping disk
space.

Monitor

9

File management routines control the content and access to
physical files of information. These routines perform such
functions as indexing, blocking and deblocking, managing
of pools of granules on RADs and disk packs, labeling, label
checking and positioning of magnetic tape, formatting for
printer and card equipment, and controlling access to and
simultaneous use of a hierarchy of fi les.

!~~~Iti-b~tch job scheduling routines select jobs to be
run from the waiting input queue depending on priority, position in queue, and r3sources available within partitions
defined by the installation.

Operator communication routines provide for communication between the monitor and the operator. They transmit
messages to the operator and process key-ins received
from the operator.

Batch debugging routines provide batch programs with debugging capability through the use of procedure calls.
Any batch program may take a snapshot dump of a specified
segment of memory, either on an unconditional or a conditional basis.

System debugging routines provide debugging services to
system programmers.
Job~ control routines are entered between major segments of a job or an on-line session. They perform the
monitor functions required between job steps such as
1.

Processing error, exit, and abort CALs.

2.

Handling monitor aborts.

3.

Processing interpretive exits to associate shared processors or to load program modules.

4.

Merging DCB assignments for execution.

Terminal I/O handling routines pe orm read-writ~ buffering
and external interrupt handling for T/O directed to user terminals. These routin ~s also translate character codes, insert
page headers onel VFc. control chr .Jcters, simulate tabs,
and perform other formatting tasks.

Symbiont routines transfer data from the card reader to disk
storage and from disk storage to the card punch or line printer. Input cooperati ves intercept card read commands in
user programs and transfer data from disk storage where it
has been stored by the symb iont routi nes. Output cooperative routines intercept output directed from a user program
to a Iine printer or card punch and transfer the data to disk
storage.

System integrity faci lities provide error detection and recovery capabilities. This includes security to user files
and automatic high-speed restart in case of system failure.
Sufficient information is recorded to isolate errors and
fai lures caused by hardware or software.

Load-and-link routines give batch programs three types of
loading and linking capability. Through the use of procedure ca II s, a ba tch program may:
1.

Load an overlay segment into core storage.

2.

Store the calling program on disk storage, load the
called program into core storage, and transfer control
to the ca II ed program.

3.

Load a program into core storage, transfer control to
the called program, and release the core area used
by the calling program.

CP-V has two FORTRAN libraries.< One is a public library
and the other is a system library. In the standard release of
CP-V, the public library contains two sets of programs. One
set (Pl) contains a useful set of Extended FORTRAN IV runtime I ibrary routines, the other set (PO) contains Pl and the
FORTRAN Debug package. These two libraries are so constructed that a single copy is shared among all concurrent
users. The system library contains a collection of routines
that are less frequently used than the publ ic Iibrary routines. They are in Iibrary load module form and are loaded
only with programs that reference them.

SYSTEM COMMANDS
Control Command Definitions
Control
Command

Initialization and start-uE-routines are stored on tape
and are booted into core storage. After they are in core,
they load the monitor root into core and turn control
over to the root. The monitor root then completes the
initialization of the monitor by starting and running the
program called GHOSTl which completes the patching
of the system and the initialization of the swapping disk
and hardware.

10

System Commands

Definition

ASSIGN

Relates an operational label or a pseudo file
name to a device. A pseudo file name may be
assigned to an operational label.

INCL

Directs the overlay loader to allocate public
I ibrary routines in a segment.

Control
Command

Definition

Control
Command

Definition

JOB

Signals the completion of a previous job
and the beginning of a new one. All jobs
must have a JOB control command.

TITLE

Causes the specified-title to be output at
the beginning of each logical page of output on the LO device.

LDEV

Attaches an information stream to a physical device (ident'ified by a logical device
stream name) and defines attributes of the
physical device.

TREE

Specifies the symbolic representation of
the overlay structure.

XEQ

Initiates processing of control commands from a command fi Ie.

LIMIT

LINK

LOAD

Estimates the system job parameters (i .e.,
number of pages of output, number of
cards to be output,. time job is to run,
etc. ) for the job.

Directs the Load loader to form a relocatable load module and enters it in the
user's element file if a load module name
is specified.

Causes the speci fi E!d message to be typed
to the operator at 'the time that it is encountered by the system.

OLAY

Equivalent to LOA.D control command.

OVERLAY

Equivalent to LOA.D control command.

POOL

Tells the monitor the number of core pages
to be allocated for buffers and tables associated with I/O operations.

processor
name

Tells the monitor which processor is to operate and what options the processor is
to execute.

PTREE

Tells the monitor that a tree control command is to be read from the user's fi Ie.

RUN

Tells the monitor to transfer control to
the user's program"

SET

Performs the same function as the
ASSIGN control command.
Provides conditional execution of job
steps.

Definition

AND

Causes a specified test to be made at a
specified location. Only if the condition
is true and the spec i fi ed test i denti fi er is
set does it remain set; otherwise, it is reset (see SNAPC control command).

COUNT

Specifies the range and the steps within
the range where the test identiHer is set
(see SNAPC control command).

IF

Causes a speci fied test to be made at a
specified location. The specified test
identifier is set only if the condition
is true; otherwise, the identifier is reset
or remains reset (see SNAPC control
command).

MODIFY,

Allows the user to insert a modification
into a user program before execution.

OR

Causes a specified test to be made at a
specified location (if a .specified test identifier is reset).
If the condition is true,
the specified test identifier is set; otherwise, it remains unchanged (see SNAPC
control command).

PMD

Causes the monitor to dump the selected
area of memory, in hexadecimal form, if
an error occurs duri ng executi on.

PMDE

Causes the monitor to dump (in addition to
the information obtainable by PMD) the
PSD, registers, etc.

PMDI

CausE:s tha monitor to dump the selected
area of memory, in hexadecimal form,
regardless of whether errors have been
detected.

Directs the Link loader to form a relocatable load module and enters it in the
user's element file if a load module name
is specifi ed.

MESSAGE

STEP

Debug
Control

System Commands

11

Debug
Control
SNAP

Causes a snapshot of the spec i fi ed memory
and registers at the location specified to
be performed.

SNAPC

SWITCH

Input
Control

Causes a snapshot of the spec ified memory
and registers at the location specified to
be performed on I y when the spec i fi ed test
ide,ltifier is set.

M:CHECK

Checks type of I/O completion.

M:CHECKECB

Checks for the completion of an event
a set of events.

M:CLOSE

Terminates all I/O associated with a given
Data Control Block (DC Bl.

M:COUNT

Specifies the range and the steps within
the range where a specified test identifier is set b~e M:SNAPC procedure).

M:CT

Changes termi nal type.
(This procedure
is for ot,-line use only and is described
in the CP-V/TS Reference Manual,

BIN

Informs the monitor that the information to
follow is binary.

DATA

Informs the monihr that the information to
follow is data.

EOD

C"luses an end-oi -data abnormal return to
Ttlt monitor, incl:cating the end of a series
of data records.

FIN

Specifies the end of a stack of jobs.

NCTL

Allows noncontrol input files to be entered
from the card reader.

PFIL

Position n fi les on unlabeled magnetic tape.

01

90 09 07.)

Definition
Serves as a terminator for a binary input
source.

M:CVM

Changes Virtual Map.

M:CVOL

Causes the control program to advance to
the next vol ume of a data set before
the physical end of the current volume
is detected. This call is meaningful only
for tapes.

M:DCB

Defines a Data Control Block.

M:DELREC

Specifies that a data record is to be deleted from the file.

M:DEQ

Dequeues resources.

M:DEVICE

Allows the user to set special device
procedures.

M:DISPLAY

Reports system load parameters.

M:ENQ

Enqueues resources.

M:ERR

Returns control to the monitor and the
monitor honors all PMD and ASSIGN
control commands whi Ie ignoring all
other control commands unti I it encounters a FIN, JOB, or a processor name
control command.

M:EXIT

Returns control to the monitor which then
honors all output control commands of the
form I PMDI.

M:EXU

Requests that the monitor execute a privi leged instruction for the user.

Rewinds the specified tape.
Writes a physical end-of-fi Ie on magnetic
tape.

WEOF

Pro~edure

M:AND

12

Definition

Produces the initial settings of the pseudo
sense swi tches.

BCD

REW

Procedure
Definition

Defi n i.tions

Causes a specified test to be made at a
specified location. Only if the condition is true and the specified test identifier is set does it remain set; otherwise,
it is reset or remains reset (see M:SNAPC
procedure).

System Commands

Definition

Procedure

Definition

Frees page of main storage owned by a
given task.

M:MASTER

Allows a special processor to operate in the
master (and master protected) mode.

M:FCP

Frees common page.

M:MERC

Allows the user to have the monitor process any system abnormal or error code,
overriding an ABN or ERR exit.

M:FVP

Frees virtual page.

M:GCP

Gets common page:).

M:MESSAGE

Writes the specified message on the Opera tor Conso Ie.

M:GDDL

Gets dynamic data limits.

M:MOVE

Copies a file, record by record.

M:GL

Gets common limits.
M:OPEN

Causes the spec ified fi Ie associated with
the speci fi ed DC B to be opened for use.

M:GP

Allocates pages of main storage to the
requesting task.
M:OR

Causes a spec ifi ed test to be made at
a specified location (if a specified test
identifier is reset). If the condition is
true, the specified test identifier is set;
otherwise, it remains unchanged (see
M:SNAPC procedure).

M:PC

Sets prompt character. (This procedure
is for on-line use only and is described
in the CP-V/TS Reference Manual,

Procedure
- M:FP

M:GVP

Gets virtual page.

M:IF

Causes a speci fi eel test to be made at
a specified location. Only if the specified test condition is true is the test
identifier set; otherwise, it is reset or
remains reset (see M:SNAPC procedure).

900907. )
M:INT

Connects a console interrupt.

M:JOB

Inserts a fi Ie into or deletes a fi Ie from
an existing symbiont fi Ie.

M:KEYIN

Writes the specified message to the operator on the operator's consol e and returns the operator's reply to the program
issuing the procedure.

M:LDEV

M:LDTRC

M:LlNK

Attaches an information stream to a
physical device (identified by a logical device name) and defines attributes
of the physica I device.

Loads the specified load module if a reenterable copy is not avai lable in memory,
de letes the ca II i ng modu Ie, and transfers
control to the loaded load module.

Loads the specified load module if a reenterable copy is not available in memory and links to it.

M:PT

Allows the user to generate FPTs in either
protected or unprotected storage.

M:PFIL

Causes the specified tape to be positioned past the number of end-of-fi les
specified and in the direction specified.

M:PRECORD

Causes the tape spec i fi ed by the DC B to
be positioned in the direction specified by
the specified number of records.

M:PRINT

Writes the specified message on the listing
log (LL) output media.

M:RAMR

Reads the assign/merge record.

M:READ

Causes the next data record to be read
into the location specified by the user.

M:REW

Rewinds a tape specified by the DCB.

System Commands

13

Procedure

Definition

Procedure

Definition

M:SEGLD

Loads a specified overlay segment into
memory.

M:TRAP

Sets and resets the traps to go to a user rC""tine or the standard system routine. Als'
sets and resets the maskable traps.

M:SETDCB

Sets error or abnormal addresses in a
spec i fi ed DC B.

M:TRTN

Restores control to the executing program
from a trap or timer routine.

M:SLAVE

Allows any master mode program to return to the slave mode.

M:TRUNC

Causes the blocki ng buffer reserved for a
specified DCB to be released.

M:TTIMER

Gives the time remaining in the interval
that was previously set by M:STIMER procedure and optionally cancels the interval
in effect.

M:TYPE

Wri tes the spec i fi ed message to the operator on the operator's console.

M:WAIT

Suspends program.

M:WAMR

Wri tes the ass i gn/ merge record.

M:WEOF'

Writes an end-of-file mark on an unlabeled
tape specified by the DCB.

M:SMPRT

M:SNAP

M:SNAPC

Sets memory protection.

Causes a snapshot of the reg isters and memory specified to be performed.

Causes a snapshot of the registers and memory spec i fi ed to be performed if the spec i fi ed
test identifier is set. Whether the test identifieris setor not is dependent on theM:IF,
. M:AND, M:OR, and M:COUNTprocedures.

M:STIMER

Sets the interval timer with a specified
interval.

M:STRAP

Simulates a tr . . ,p.

M:SYS

Allows spec i r: processors to use pri vileged services.

M:WRITE

Causes the contents of a specified buffer to
be transmitted to an output device or file.

M:TFILE

Causes a specified DCB to be closed,
on return to the user's program, and
the associated fi Ie to be registered as
a scratch fi Ie.

M:XCON

Allows a program to regain control after
termination.

M:XXX

Causes the monitor to terminate the job
and not honor any further commands until it reads another JOB or FIN control
command.

M:TIME

14

Communicates the time of day and the
current date to the executing program.

System Comn:tands

2. FILES AND FILE USAGE
INTRODUCTION
A general understanding of fi les and the way that the
monitor deals with them will help the user to obtain the
high level of performance available.
A file is an organized collection of information. This collection of information may consist of one or more programs,
one or more sets of data, or some combi nati on of programs
and data. UnderCP-V, a user always accessesfiles through
the monitor - never directly. An option does exist, however, that allows a user to deal with a fi Ie (e. g., a nonstandard set of data on an unlabeled/magnetic tape) as
though he were accessing it directly.
A fi Ie has one base name but may have other names synonymous with it. Information is retrieveel from a file by spec!fying the file name (or its synonym), its password and
account, and the desired record wit'hin the file.
The monitor maintains a directory of accounts having file's
maintained between jobs. This is called an Account
Directory, and contains, with each account number, an
address of a directory of fi les (termed a Fi Ie Directory) for
that account. A Fi Ie Directory contains, with each fi Ie
name, an address of a table containing file attributes and
disk locations for that file. The table is called a File
Information Table. To'Summarize, the monitor has a single
Account Directory, which in turn points to a File Directory
for each account. Each File Directory,; in turn, points to
a File Information Table (FIT) for each file. t
Each file has associated with it (in the FIT) information
controlling who may access the file and how it may be
accessed. This information can include hoth a password
and a I ist of which accounts may read or update the file.
To access a file, a user must be running under an account
which is authorized to access the file and provide the
proper password. In addition to access control information,
the FIT also contains the file's creation date, date of last
modification, date of last access, and expiration date.
A fi Ie may be shared among several users if none of them
updates the file or attempts to replace the file. A job
cannot, however, create a file in an account other than
its own.
Three prime concerns of the user in regard to fi les are

2.

The methods that a user can apply to find, extract, insert or delete information from a file.

3.

The way that a file is stored on specific devices.

FILE ORGANIZATION
Each file is identified by a file name. In addition, access to
each fi Ie is controlled by the account number of the user
who created it and a password, if he chose to include one.
The information contained in a file may be structured in
one of three ways. It may be a keyed, consecutive, or
random fi Ie.

KEYED FILES
Keyed fi les are those in which each record has an identifying key associated with it. A key consists of a byte string,
the first byte of which states the number of bytes in the string.
The contents of each byte may be a binary number or a character. A key may consist of up to 31 characters.
As the file is being created, a master index is also created
with an entry for each keyed record in the file. The entry
contains such information as the key, disk address of the
record, size of the record, and position of the record withi n
the blocking buffer.
The records are automatically packed into blocking buffers
with the last portion of the last record extending into another buffer as necessary. If the record is large, it is written
directly from the user's area instead of being packed into a
buffer. Keyed files may be accessed by direct or sequentia I
access.
Keyed files have a multilevel index structure. A multilevel
index structure is a collection of hierarch ical levels of index
blocks, where the entries in a higher level point to index
blocks at the next lower level and the entries in the lowest
level (called level 0) point to data records. This is best'illustrated by an example as shown in Figure 3. The multilevel structure is initially built during a CLOSE if a keyed
fi Ie has more than three level 0 index blocks.
In the example shown in Figure 3, the keyed file has

1.

Fi Ie organization - the way in which a fi Ie is logica lIy constructed.

tFor each batch job and on-line session, the syste'm may
create up to five special files contclining temporary user
context. These fi les, known as "star fi les", are transparent
to the user, are not cataloged in the File Directory, and
always cease to exist at tHe end of the batch job or on-line
session.

•

31, 150 records and the keys at level 0 point to these
data records. Based on an I1-byte maximum key
length, there are 80 keys in each level 0 block and
127 keys in each higher-level block.

•

390 index blocks at level 0, four index blocks at
levell, and one index block at level 2. The next
hig~er-Ievel is built if the last level has more than
three index blocks.

Files and File Usage

15'

Level 0
390 Index Blocks
~

KEY 1
KEY2

I---

Level 1
4 Index Blocks
Data Blocks
KEY 1

Record 1

KEY 80
Key 81

~

I----

I

FIT

-----....

KEY 10081

--..

Level 2

Record 2

t

U

KEY 81

Record 3

~

KEY 82

r--

Record 4

KEY 10161

U

1 Index Block
KEY 1

KEY 10241

-

Record 5
KEY 160

KEY 10161

t

KEY 20241

KEY 161

KEY 20161
KEY 30321

r

---,

r

----

----

KEY 1~2

+

Record 81

I

KEY 20241

~

KEY 20321

~

Record 82

I

KEY 30241

I

t

I

Record 31120

KEY 30321

I

Record 31121

KEY 30401

I

I

I
I
KEY 31121

-

•

KEY 31121

Record 31122
~

-

KEY 31122

~
Figure 3.

16

Fi Ie Organization

Example of Multi level Inde'x Structure

I
Record 31123

Each entry in a higher-level index block contains the disk
- address of an index block at the next lower level, and the
key of the first key in that block.
The mu Iti level index structure can considerably speed up
the direct access of a large keyed file, at only a small
cost of secondary storage space. Since the keys are
ordered in ascendi ng sequence, ot most it wou Id take
three index block accesses to locate a data record as
shown in the example. Without the higher-level struct'ure, it could take up to 390 index block accesses.
The user has control over the initial creation of the multilevel index structure and he can specify when and if the
higher-level structure shou Id be rebui It. This can be
specified by using the NEWX option on the ASSIGN
control command or the M:OPEN and M:DCB procedures.

3.

Each higher-level index entry occupies KEYM plus
five bytes.

The following formu las can be used to estimate the disk
space requirement of keyed and consecutive fi les. The
first formula calculates the number of keys per index block
at level 0 '(KL). The second formula calculates the total
di sk storage in g ranu Ies .

N

= number

of records in the fi Ie.

R =: record si ze in bytes.

SS

= spare space expressed as a decimal number (e. g. ,
20% == .2).

The space required to hold a given fi Ie can be estimated
by applying the following ru les:
Data Blocks

1.

Each data block contains 2048 bytes.

2.

Each data granule contains one data block.

3.

Each data block is compact, except that all records
start on word boundaries.

4.

Each record or record segment (if a record resides in
more than one data b lock) has a level 0 index entry
associated with it.

.Level 0 Index Blocks
1.

2.

3.

K = key length in bytes.
_ 2048*(1-SS)-12
KL 14+K

Total disk storage (in granules) =

2~;~ + (K~ ) +

Note that:
N*R
2048 is the number of data granu les.

(~L)

is the number of Level 0 Index granules .

Each index block contains 2048 bytes.

Each index block is compact except that 12 bytes are
preempted and spare space may be reserved at user
request.

Each index entry occupies key size (KEY M) plus
14 bytes.

is the number of Levell Index
granules.

The following two examples show the cost to bui Id the
multi level index structure, i. e., disk accesses to bui Id
it and disk storage required to contain it, and the saving
in time when accessing it.

Example 1
Higher-Level Index Blocks
1.

2.

= 40,000

Number of records

N

Record size

R = 60 bytes

Key si ze (KEYM)

K = 3 bytes

Each higher-level index block contains 2048 bytes.

Each higher-level index block is compact except that
12 bytes are reserved.

File Organization

17

Spare space

SS = 10% (= .1)

Item

Keys/Level 0 Index block (KL) =

2048*(1-SS)-12 ==
14+K

Number of data records.

2048 * (1-.1 )-12 = 108

14+3

7232 RAD

7242 Disk Pocks

6144-

24000

Level 0 granules.

88

343

Level 1 granules.

1

4
1

Level 2 granules.
N *R
Data granu les = 2048

=

40,000*60
2048

1172
The cost to build the multilevel structure in the 7242
example is 348 device accesses. Without the mu Itilevel structure a random fetch cou Id take 344 device
accesses in the worst case; with it, four accesses are
required.

N) = (40000)
Level oIndex granules =( Kl
~ = 371

Level 1 Index granu les

= (~L)(;;3~) =
(

40,000) ( 5+3 ) = 2
108 . 2036

CONSEcunVE FILES

This file requires a total of 1545 (1172 + 371 + 2) granules
of storage of which two are required to store the multilevel index. It wou Id cost 373 disk accesses to bui Id the
structure when the fi Ie is closed. With the multi level
structure, each random record fetch requires 3-1/2 device accesses, whereas without it each fetch would be
186 accesses.

Example 2
Number of data records = maximum for each device
(see be low).

Record size

R

Key size (KEYM)

K

Spare space

SS = 0

1024 bytes

=

15 bytes

Keys/Level 0 Index block (KL)

14+15

Level 0 Index granules

= (~L)

=( ~O)

Level 1 Index granules

= (~L)

(2~~~) =

(5+15)
(li)
70
2036
File Organization

The principal benefit of consecutive fi les to system operation is a. reduction in the number of granules required
for the fi les' on disk and RAD and a consequent reduction
in the time required to process the files. This is most
dramati c for fi Ies contai n i ng short records. A fi Ie of
1000 eighty-character records requires 49 granu les for
keyed files. For consecutive fi les, this requirement is
reduced to 42, a savings of over 14 percent. For twentycharacter records, the requirement of 1000 records drops
from 19 to 12 granu les, a reduction of over 36 percent.
For large records there is sti II a small reduction. For
example, 1000 2048-byte records requi res 1002 granu les
for consecutive fi les as opposed to 1009 for keyed fj les.
Traversing a file of 1000 2048-byte records requires 1002
disk reads for consecutive fi les as opposed to 1017 disk
reads for keyed files. For 1000 eighty-character records,
the reduction is from 57 reads to 42 reads (over 26 percent). For 1000 twenty-character records, the drop is
from 27 to 12 reads (a 55 percent reduction).

2048*(1-SS)-12 _
14+K
2048*(1-0)-12 _

18

Consecutive fi les are fi les whose records are organized in
a consecutive manner; i. e., the user is aware of no identifying keys associated with the records. The records may
only be accessed sequentially.

- 70

20N
142,520

A" position operations for consecutive fi les is done without
I/O. Positioning operations are PRECORD, PFIL, and
OPEN with extension. The positioning is on Iy effected
when a data transfer operation is about to take place. At
that time; there wi" be three known points in the file that
can be used as a starting point (beginning of fi Ie, end of
fi Ie, and the position reflected by the DCB). The starting
position chosen will be the one that requires the fewest
record skips to be made.

For cons~cutive fi les, the FIT is maintained in words 4
through 83 of the first granule of the fi Ie.

RANDOM FILES

If there is no violation, the user may proceed
to read (unless opened OUT) or write (unless
opened IN). If the fi Ie is opened OUT or
aUTIN, the function is changed to IN OUT.
Note that the user may write in a granule in
which he has already written, and may also
read a granule in which he has not written.
A random file that is in existence may not be
replaced or extended by reopening that file.
If the user wishes to replace or extend an existing file, the existing version must be released prior to such action.

Random files provide an organization for those users
desiring to manage their own files or who do not wish to
incur the overhead imposed by system file management.
Random organ i zat ion differs from keyed and consecut i ve
organ ization as follows:
1.

2.

A random file is simply a collection of contiguous
granul es on the specified device type. The number of granules is specified at the time the file is
created (and may not be expanded after it has been
created). If the requested number of granul es are
not available contiguously, an abnormal code (major code X'O 1', subcode X'OS') is returned to the
user and the fi Ie is not opened.
The user must speci fy a relat ive starting granu Ie number with each read or write and
byte count (the
defau It byte count in the DCB may be used). If the
starting granu Ie number does not fall between 0 and
the total number of granu les a! located at "OPEN "-1,
inclusive, an error code of X'42' is then returned to
the user. If the byte count exceeds granule size,
the operation wi II continue in the next contiguous
granule(s) until all requested bytes have been transferred. The system wi II return the next available
relative granu Ie number to the user (in the KBUF
fi eld of the DCB) at the completion of each read/
write. If there are not sufficient granules to accommodate the specified byte count, an error code
(major code X '57', subcode X '44') is returned to
the user and the actual number of bytes transmitted
is placed in the RWS and ARS fields of the DeB.

5.

If a file is opened OUT and a file of the same name
already exists, an I/O abnormal code 14-00 will occur
if one but not both of the files is random.

6.

If a random fil e is opened OUT, and a random fil e of
the same name al ready exists, the mode of the open
will be changed to INOUr. This change occurs even
if the open specifies an RSTORE value that is different
from the size of the existing file.

7.

If a file is opened OUT on private pack and a fil e of
the same name already exists on the pack, an I/O abnormal 14-00 will occur if both fil es do not have the
same organ izat ion.

a

3.

Each write/read consumes the entire specified granu Ie.
The contents of the granule include no system information. Management of the user's data is the responsibiity of that user.

4.

Function has the following meaning for random fi les:
when any random file is opened it is first checked for
existence.

Thus, the monitor provides allocation of granul es, security
checks and nQrmal I/O queuing service and cI ean up. The
user is responsible for record management.

FILE FUNCTION AND FILE DISPOSITION
A fi Ie may be opened in one of four modes: two of these,
IN or input and INOUT or update, access a file that existed
prior to this open; the other two, OUT or output and OUTIN
or scratch, create a new data aggregate that had not existed
prior to this open. There are three possible specifications
for the file disposition option: REL or release, SAVE, and
JOB. Anyone of the three may be specified at open time
and either REL or SAVE may be specified at close time. The
impact of each of these options and several significant combinations of them is described below.

•

If the fi Ie does not exist and fun~tion is I N or
INOUT, an abnormal code of X'03' is given. If
the file does not exist and OUT or OUTIN is
specified, a new random file is allocated unless
the associated account number differs from the
user's account number (in this case, the fi Ie wi II
not be opened and an abnormal code of X'14'
will be returned).

To create a new file, specify OUT or OUTIN. If the REL.
disposition option is used or implied (see below) with such an
open, it indicates that the file to be created must be released when it is closed; thus, it is an obvious error to combine OUT with REL, and such an open is rejected with an
abnormal 14-07. The other combination, OUTI N with REL,
results in a true scratch file which is never to be entered
into the file directory and thus has no identification other
than the device control block with which it is associated.
Storage space requirements for such a file are accounted for
against the user's temporary granule authorization.

•

If the file does exist, the user is checked for
appropriate access permissi()n (read/write account numbers, password), and an abnormal
code X'14' is returned if there is a violation.

If a file opened OUT or OUTIN is closed with an explicit
'specification of SAVE, it will be entered into the file directory unless the open process failed to explicitly specify
SAVE or J.OB, in which case the file is unconditionally

File Function and File Disposition

19

-released at close time and the file directory contents are
not altered. If an explicit SAVE specification is not made
when an OUT or OUTI N file is closed, again the file is
released and the fil e directory contents are not al tered.
Note that when a job step is completed, all open device
control blocks are closed with no explicit disposition specification, and so all open output files are released at that
time. The only exception to this is M: DO, which is closed
with explicit SAVE in order to ensure that diagnostic output
will be received.

type of access and each mode in which a fi Ie may be
opened.

Consider the cases of files opened OUT or OUTIN with
either SAVE or JOB disposition. All such combinations
indicate the intent to create a new file which will probably
be entered into the file directory. (See the above paragraph
for a discussion of how to overcome this intent.) Unless a
job is executing at a high privilege level of X'CO' or greater
it cannot create a new file in an account other than the
one under wh ich the job is logged on with one exception.
If a file already exists with the same identification as that
desired for the new file; if, further, the al ready existing
file permits WRITE access to the user in question; and if,
finally, the already existing file is not currently open, then
the user may create a new copy of such a file. When an
OUT or OUTIN file with SAVE or JOB is closed with explicit
SAVE, the name is entered into the file directory; and any
previously existing file with the same identification is released. In addition, if JOB has been specified on the open,
the fi Ie identification is given the sr ne treatment as though
it had been mentioned in a M:TFILl procedure call. All
files which have had their identifica"ion mentioned in such
a procedure call are released when the creating user logs
off. A JOB file may only be accer-;ed by the creating user
or a user with at least X'CO' privilege. Storage space requirements for JOB files are again accounted for against
the user's temporary gr~nule authorization. All storage space
requirements for files other than true scratch or JOB files
are accounted for against the user's permanent granule
authorization.

OUTPUT FILES (OUT)

The file disposition option at open time for input and update
opens is essentially insignificant and the disposition is completely controlled by the specification on the close. (There
is a name substitution option available for locating JOB
files which is only operative in the event of explicit JOB
disposition specification at open time.) If the specification
is explicitly REL, the file is released and the identification
is erased from the file directory; otherwise, the file is retained and no change is made to the file directory. When
an existing JOB file is reopened in the update mode, the
disposition in the device control block is forced to JOB so
that granule accounting may be correctly handled.

DIRECT ACCESS
For consecutive fi les, the only effect of direct access
is to inhibit read-ahead. For keyed files, the following rules apply.

When a WRITE is given, a key must be specified. The keys
do not need to be given in a sorted order. They will be
ordered as they are stored on disk.
j

Unlike sequential output fil es, a WRITE never causes forward
information to be deleted.
Reading is not allowed.

SCRA TCH FI LE S (OUTIN)
A scratch fi Ie is identical to an output fi Ie, except that
reading is permitted before the fi Ie i's closed. As for output files, ak!!y must be specified on each WRITE. The
keyed record is merged into the fi Ie.

A READ mayor may not specify a key. If a key is specifi ed, a search is made of the fi Ie unti I the key is found
and the record is then read. If the key is not found, an
error return is executed. If a key is not specified, the
next sequential record is read.

The FWD and REV options apply on read operations not
specifying a key. If a key is specified, these options are
ignored. PRECORD operations are performed in the same
way as for sequential output fi les. A WRITE does not
cause forward information to be deleted. A READ before
the first WRITE returns an X'061 abnormal code.

INPUT FILES (IN)
Records may only be read; writing is not allowed. The
READ function is the same as that for scratch fi les. PRECORD operations are allowed.

FILE ACCESS
Records may be accessed within a file by either of two
means, direct or sequential access. The interaction of
the type of access used for a given operation and the
mode in which the fi Ie is opened results in some rules,
or limitations. These rules are listed below for each

20

File Access

UPDATE FILES (INOUT)
The READ -function is the same as for scratch fi les.
CORD operations are allowed.

PRE-

The WRITE function mayor may not have a key specified. If a key i~) not specified, the WRITE function
Ylust have been preceded by a _READ. If it is, the rec..>rd just read is updated; if not, an X'15' abnormal code
is signaled.

New records may be added to the fi Ie. The NEWKEY
or ONEWKEY opt-ion must be specified, and Q search
of the keys wi II be made to locate the proper place to
merge the new key. If the key already exists, and the
NEWKEY option only was specified, an abnormal code
X'16' is returned.

Records may also be replaced. The NEWKEY option must
not be specified in this case. Thus, the NEW KEY option
is used when adding new records to the fi Ie and notifi cation
of an attempted duplication of a key is desired.

The ONEWKEY option is used when adding new records
and replacing old records. No notification is given when
an existing record is replaced by a new record with the
same key.

The absence of either a ONEWKEY or NEWKEY parameter
implies that the record to be written already exists and is
to be replaced. If the record does not already exist, an
abnormal notification wi" be given and the record wi"
not be written.

The DELETE function may be used. If a key is specified,
a search of the di rectory is made to find the specifi ed key.
The record is then deleted. If a key is not specified, the
DELETE operation must have beel1l preceded by a READ,
and the key just read wi I I then be deleted.

respectively, and then writes a record with key B, the
record will not be written and an X'18' error return will
be executed.

The PRECORD FWD (position record forward)and PRECORD
REV (positi on record backward) operations are a IIowed on
both keyed and consecutive fi les. A BOF is given when
the beginning-of-fi Ie is reached, and an EOF is given
when the end-of-fi Ie is reached. Otherwise, for keyed
fi les, the pointer to the current entry in the master index is
decremented or incremented. For consecuti ve files, a
directional count of records to skip from the current position
is established. Positioning wi II not occur unti I the next
read, write, or delete operation. A WRITE operation following PRECORD causes all forward records to be deleted.

When closing the file, the SAVE option must be specified
in both an explicit CLOSE statement and in the OPEN
sfatement if the fi Ie is to be saved.
SCRATCH FILES (OUTI N)
The same ru les that apply to output fi les also apply to
scratch fi les, except that reading is allowed, following a
write. Reading may be directional; either forward or
reverse. A READ with REV implies that the record preceding the current position is to be read. If no direction is specified, FWD is assumed. A READ order issued
prior to the first WRITE will result in an X'06' abnormal
return.
When reading a keyed fi Ie, a key mayor may not be specified. If a key is specified, a search is made for the specified key. The FWD and REV options are ignored when a
key is specified. If a key is not specified, READ FWD implies that the next record in sequence is to be read. READ
with REV implies that the record immediately preceding the
current record is to be read. Whenever a keyed fi Ie is
read, the KBUF field of the DCB contains ,the address at
which the key of the record just read is stored.

SEQUENTIAL ACCESS
Sequential access may be used when accessing records
with keyed or consecutive organization.

Reading a consecutive file is the same as reading a keyed
file without specifying a key.
A WRITE deletes all forward information.

OUTPUT FILES (OUT)

INPUT FILES (IN)

When a file is opened in the OUT mode, records may only
be written; reading is not allowed,. If the fi Ie has been declared a keyed file, a key must bEl given with each write
operation and this key must be a new key (i. e., it must
not have been used before). If the key has already been
used, no information is written and! an abnormal X'16' is
returned. The keys must be given in a sorted order. For
example, if the user writes records with keys A, C, and D,_

Th is is the same as for direct access input fil es.

UPDATE FILES (INOUT)
For a keyed fi Ie, this is the same as for direct access update files. For a consecutive file, a WRITE deletes all
forward information.
File Access

21

SIMULTANEOUS FILE USAGE

REQUIREMENTS FOR MULTIPLE ACCESS TO A SINGLE FILE
Under some conditions, a fi Ie may be accessed by more
than one DC B at the same time.

TAPE FILES
Single-fi Ie Tapes. Only one DCB may be open to the fi Ie
at a time. If an attempt is made to open a tape fi Ie that is
already referenced by another DCB, an abnormal return
wi II be executed.
Multi-File Tapes. Only one DCB may be opened to the
tape at a time. The user may not reference another fi Ie on
the tape unti I the previous fi Ie is closed. To do so wi II
cause an abnormal return.
DISK FILES
Random Files (SHARE mode not specified). Any number of
DCBs can be opened to the same fil e in the input mode.
Only one DCB may be opened to a file in the update mode.
However, one update DCB and one or more input DCBs may
be open to the same file at the same time. The order in
which DCBs are opened or closed, when sharing the same
file, does not make any difference. Only one DCB may be
opened in the output or scratch mode and it may only be
opened if no file of the same name already exists.
.Keyed and Consecutive Files (SHARE mode not specified).
Several users may simultaneously access a file. Some kinds
of simultaneous uses are allowed and some are not. The
rules governing such usage are described below and are summarized in Table 1.
If a fi Ie exists, it may be opened once in output mode and
any number of times in input mode. Furthermore, the user
must open the fi Ie for output first. A II referencing DCBs in
input mode must be closed before the output DCB may be
closed. (If the input DCBs are not closed first, the output
fi Ie wi II be discarded.)

A fi Ie opened as OUT or OUTIN with a sove disposition
does not replace an already existing file of the same name
until the former is saved via a CLOSE operation. Thus, tw'
files of that name exist during the crea.tion of the newer
one.
Several DCBs may be simultaneously opened to the same
file if the proper protocol is observed, as follows. A file
may be opened as OUT, INOUT, or OUTIN only if not
already open. If a fi Ie is already open as IN, OUT, or
aUTIN, it may be opened again as IN only. No simultaneous usage of an IN OUT file is allowed. A file opened
as OUT or OUTIN may be closed and saved only if it is
not also open as IN. If the above protocol is violated, an
abnormal code is returned from the OPEN or CLOSE operation. In the latter case (CLOSE), the OUT or .OUTIN
fi Ie is released, also.
Since a file may be opened up to 127 times in the input mode, a user may attempt to release it upon closing
if he is unaware of other usage. If this occurs, the request
is not honored.
An OUTIN file that has been opened without a specific
save disposition is a scratch fiI e. Operations on a scratch
file are always local to the DCB and are unaffected by the
operations of any job on files with the same name. Any
attempt to open a file in INor INOUT mode with a release
disposition is the same as if the M:OPEN has specified a
save disposition. Table 1 summarizes the rules for opening
and closing fil es with the same name. It also shows the
error codes generated.
To open an OUT fi Ie with a release disposition
and wastefu I •

i~

useless

Random and Keyed Files (SHARE mode specified). Up
to 127 updaters and up to 127 readers may simultaneously
have access to a keyed or random file. In this case, all
DCBs must specify the SHARE mode. The order of opening is not significant in this case and there are no restrictions on the order of closing. When the last DCB
which has a shared keyed file open is being closed, the
mode is switched to EXClusive to assure that a file information table is posted before the fi Ie is reopened. A
close with release is treated as a close with save for
DCBs opened in the SHARE mode.

A scratch fi Ie is not considered an output fi Ie in the
above sense. Since the scratch attribute (OPEN, aUTIN,
REL) is declared at the time a file is opened and all file
information is local to the using DCB, mu Itiple scratch
fi les of the same name may be open. Remember, however,
that scratch fi les are automatically released at the end
of each job step or when the DCB is closed, whichever
is sooner.
If a file is successfully opened for output, the effect is
that no other users may have the fi Ie open in any mode
(except scratch) and they will not be allowed access until
it is finally closed.
Simultaneous File Usoge

90 17 MH-1 (9/18)

Table 1. Simultaneous Fi Ie Usage - Keyed or Consecutive

Result

New File Operation

Open-File Status (different DCB)

Mode

Operation

Disposition

In

Outin
Out

Inout

SAVE

V

V

E(14/01)

V

V

I

V

I

OPEN
REll
IN
SAVE
CLOSE
does not REL

REt
SAVE

E(14/01 )

E(14/01 )

E(14/01 )

REL3

L

L

L

REL

I

I

= SAVE

V

I

I

= REL

L

L

L

E(14/01 )

E(14/01 )

E(14/01)

SAVE

I

I

I

REL.

I

I

I

OPEN
OUT
OUTIN

SAVE
CLOSE

2

OPEN
REI.
OPEN
SAVE

OPEN
REt
INOUT
(UPDATE)

1

---CLOSE

Notes:

1.

When IN and INOUT fi les are opened, SAVE is forced.

2.

SAVE must have been specified when the fi Ie was opened.

3.

If mode is OUTIN and disposition is REL, the file is a scratch file and is local to the opening DCB. The file is released at the end of the job step and is never shared. If mode is OUT, REL is illegal and I/O error 14-07 results.

If not, REL is forced.

Fi Ie Status Letters
E

indicates an error or abnormal operation and is followed by an error code (Appendix B) in parentheses.

I

indicates an impossible ~iituation.

V

indicates an allowed operation.

L

indicates the file is local and the operation is allowed.

Simultaneous File Usage

23

COORDINATING MULTIPLE ACCESS TO A SINGLE FILE

2.

The SHARE mode feature extends the use of keyed and
random files by permitting simultaneous access to a file by
up to 127updaters and up to 127 readers. Thus several user
programs executing concurrently in separate jobs may be
generating reports from a data file while other user programs
are concurrently modifying data items within the file.

Exact read - the process of reading with the assurance
that the current record and possibly other application
associated records are not in the process of an update
which is only partially complete.

3.

Update - changing the data content of a record or a
group of application associated records.

4.

Positioning - execution of M:PRECORD, M:PFIL, or
sequential (not specifying a key) M:READ CALs.

Responsibility for coordinating concurrent update activity is
divided into two parts, one controlled and provided by the
operating system and the other by the application programs
via use of the system's enqueue/dequeue services. The operating system guarantees the physical integrity of the file so
that it remains properly connected regardless of the update
activity and also assures that readers are provided with the
most up-to-date information in response to their requests.
Coordinating and guaranteeing logical integrity of the fi Ie
(primarily the data content) is the responsibility of the appi ication programs, since for the keyed file organization any
connection of the data in one record of a file with that in
another record of the same or another file is carried in the
application program, not in the fi Ie itself. A single example
will se rve to i" us tra te th is.
Suppose that a file contains records recording a parts inventory - each containing the available number of bolts,
washers, nuts, etc., in various sizes. Without any special
coordination, the number of any given item can be determined by querying the file even in the face of additions and
removals by a concurrent updater. If, however, the application needs to first determine the available number and
then remove a quantity from stock, then the record must be
locked between the read and the update to preclude the
possibility of the stock being taken by another updater.
More elaborate record locking requirements may exist depending on the application. For example if a fastener must
be made up of a bolt, a nut and a lock washer, then these
three records must be acquired and locked prior to making
the needed upda tes •
Applications use the system's enqueue/dequeue facility to
gain exclusive access to the records. Enqueue/dequeue is
a generalized service and guarantees exclusive or shared
access to named items as required and requested. It is the
responsibility of all us~rs of the service to agree on the
meaning of the names - for example the names of the records containing inventory count of nuts, bolts, and washers.

PROTOCOL REQUIREMENTS
In a shared update envi ronment, there are four broad
classes of operation to be considered (some have interesting variations):
1.

23.1

Statistical read - the process of reading without concern as to whether the current record, or other records
associated with the current record because of application considerations are being updated.

Simultaneous File Usage

To accomplish a statistical read or to execute a M:PFIL
CAL, there are no special protocol requirements; however,
for the other operations above, it is necessary to obtain
some protection from other use of the record{s) in question.
The enqueue/dequeue facility has been provided for this
purpose.
In order to process an ~ read, it is necessary to obtai n
shared use of the record(s} in question, whi Ie, to process an
update, exclusive use is a requirement. It is notanticipated
that M:PRECORD CALs specifying more than a single record
move wi II be a common occurrence in the shared update
mode; but if they are required, then a shared use of the entire file is required. Sequential reads and one position
moves can be accompl ished wi thout protection if they are
for statistical purposes only. If any other use is required
though, the key presented in KBUF (in the DCB) after the
move shou Id be enqueued appropriate Iy. It is suggested
that sequential reads be effected with a zero length buffer
and then a reread can be accomplished after the enqueue
has been accomplished.
In addition, once an operation has been completed, the enqueued items should be dequeued promptly. It is essential
that all users conform to the above described protocol or inefficient operations and data damage may ensue. CP-V does
not enforce a correct enqueue/dequeue sequence, but only
assures that:

1.

The master index structure of a keyed file will not be
modified so as to produce a permanent process error
(75-02) si tuation.

2.

The processing of an M:WRITE or M:DELREC CAL for a
shared keyedfi Ie wi II not proceed unti I the completion
of any other such CAL on the same file, if any, is in
progress.

3.

If a 75-02 error is about to be reported on a shared
keyed file during the processing of an M:READ or
M:PRECORD CAL because of the failure to pass a specified link test, a check will be made to see if any modification has been made to the master index linking
structure since the inception of processing of the CAL
in question. If so, the operation will be terminated
with a 15-01 abnormal; and no error log entry will be
made •.

90 17 MH-l(9/78)

EXTENSIONS TO M:DCB, M:OPEN, ASSIGN AND SET
Th. function option of the M:OPEN, M:DCB procedures and
of the ASSIGN and SET commands include the following
options:
IN

rt {SHARE}]
EXCL

INOUT

rt {SHARE}]
EXCL

(for readers)

(for updaters)

where EXCL guarantees exclusive access to the fi Ie and
SHARE permits sharing. If neither is specified, the option
used Is that from the DCB - either from the M:DCB process
or remaining from a previous operation on the DCB. If no
specification is then made by M:DCB, ASSIGN, or M:OPEN,
then EXCL results.
The SHARE option'is: valid only for keyed and random files
and permits updaters and readers to have the file open
concurrently.
As a final note on processing, when the final user of a
shared update keyed file is closing the file, the CFU mode
is changed to exclusive during the close process of finding
and updating the File Information 'Table. Thus, unti I the
close is completed, any attempt to reopen the file will result in an 14-01 abnormal. In addition, for shared keyed
files, a release specification on a M:CLOSE CAL will be
treated as no release. To delete a keyed file, it is necessary to open the file in the exclusive mode and then issue
a M:CLOSE CAL with the REL specification.

HASHING QUEUE NAMES
Examples in the Enqueue/Dequeue Resources section of
Chapter4 Illustrate a common technique which an application may use to ensure data integrity: Enqueue for the file
and subqueue for the record or rec()rds of i nteres t by name.
'The queueing may IUse the actual file name and account
and the actual record keys or some agreed upon abbreviation for them, however, it must be unique.
Since there is the possibility of an extensive monitor data
area for enqueue tables if long naMes are used, it is appropriate to compress the queue and subqueue names by hashing

90 17 MH-1 (9/78)

techniques. The EDMS routines use a hash of the file
identifier which results in a 24 bit value for any file name/
account pair (because ENQ/DEQ carries names in TEXTC
and rounds up to full words). The following program displays the hashing algorithm used. Tests on several large ftle
sets indicate an incidence of duplicate hashes of considerably less than one percent.
BA(FILENAME)
LI,l
LI,3
LB,2
0,1
'':TEXTC COUNT
STI
AI,l
1
0,1
LB,4
AW,3
4
6
SCS,3
BDR,2
STI
BA(ACCT)
LI,l
LI,2
8
*8 CHARACTERS IN AN ACCT
0,1
ST2
LB,4
AW,3
4
SCS,3
6
AI,l
1
BDR,2
ST2
*REGISTER 2 CONTAINS ZERO
DW,2
PRIME
STW,2
HASH
*REMAINDER IS HASH VALUE

°

PRIME

DATA

16777213

It is suggested that this algorithm can be used effectively
and that a similar hashing technique be used on keys when
the key max for the fi Ie is greater than three.
Whether hashing techniques are used or not, it should be
emphasized that the above described protocol must be followed by all shared update users of a keyed file to obtain
desired results. Also, If hashing is used by any shared update user for his calls to enqueue/dequeue, the identical
hashing algorithm must be used by all users of the file.
When using any hashing technique, the user must be prepared for the X'3101' and X'3102' abnormal returns from an
enqueue CAL since more than one element may produce
identical hash values.

Simultaneous File Usage

23.2

DATA ENCRYPTION
A data encryption facility is provided for keyed and consecutive files. This service is not designed to provide facilities
sufficiently secure for highly secret and classified material,
but rather is designed to make sensitive information not readily
readable (i .e., to put it into ciphered form). For ,example,
buffers of data from encrypted fi les that appear in dumps
taken by system analysts will not be understandable without
a non-trivial code cracking exercise. In this manner, fi les
which contain information such as employee salaries can be
lfotected.
To initiate data encryption for keyed and consecutive files,
the user must issue an M: SETDCB for the file's DCB after
it has been opened to the file. An option of the M:SETDCB
procedure allows the user to specify the address of a location
which contains a data encryption seed or to specify that data
encryption is to be turned off. The seed is used by a pseudo
random number generation process for both data encryption or
decryption. (Even if the content of the location is zero,
encryption/decryption wi" occur.)
It is very important to note that the seed( s) for data encryption
process are not carried in the file, nor anywhere else within
the file system. Thus, even users with high privilege who do
not know the seed(s} are unable to read anything but gibberish
without a significant code cracking process. The other side of
this coin is that a user who forgets or cannot reconstruct the
encryption seed(s) that were used has essentially lost the
encrypted fj Ie.

A private disk pack device has any number of dismountable
volumes that can be recognized by the monitor. The operating system requin~s that only those volumes needed
for execution of the user's job be made available and
be mounted.
STORAGE ALLOCATION UNITS
For allocation purposes a disk pack device is partitioned
into logical units, either granule or cylinder. RADs are
partitioned and allocated in granule units only. A granule
unit equals 512 words and is equivalent to two sectors.
FILE ALLOCATION
Keyed and consecutive fiI e space is allocated on a demand
basis as the file is being created or updated. Therefore the
file does not necessarily exist in contiguous areas on a
RAD or disk pack device and can exist on many different
physical devices. Random file space is contiguous and
is allocated when the file is opened.
A public fi Ie resides on a public device (RAD and/or
disk pack); a private fi Ie resides on private disk pack
volumes.
A public file can be allocated in granule
or cylinder units; a private fi Ie is always allocated in
cylinder units.

FILE STORAGE DEVICES

Fi les on Public RAD and Disk Pack. Allocation of
space for fi les on RAD and/or disk pack follows a set
of rules that may be altered and controlled by both
the user for individual files and by the system manager
on an account or system-wide basis. The scheme provides for best system performance, in absence of specification by the user or system manager, or for good
performance of individual jobs by careful selection of
disk pack (DP) or RAD (DC) to optimize the program's
performance.

The three general types of storage media avai lable for user
files are (1) disk, (2) labeled magnetic tape, and (3) other
physical devices (e. g., cards, unlabeled magnetic tape,
etc. ).

Although the ru les stated below control the preferred
allocation, the system will continue to look for space
on other devices on request as long as the user-allowed
limit is not exceeded and the space physically exists.

Data encryption is different for keyed and consecutive files,
as the keys are used in the encryption process. If an
encrypted keyed file is stripped of its keys, the file cannot
be decrypted .

DISK STORAGE
Both RAD and disk pack devices are used for secondary
storage. Any combination of these devi ces can be defined at SYSGEN time. A disk pack device has dismountable volumes and can be declared either a public
or private device at SYSGEN time, while a RAD device,
not having dismountable volumes, can only be declared
a public device.
A publ ic disk pack device has onl y one volume that can
be recogn ized by the mon itor and that vol ume must be
mounted at all times whil e the system is active.

24

Data Encryption/Fi Ie Storage Devices

In the absence of other specifications, the monitor uses the
following rules to determine the placement of files on RAD
or disk pack:

1.

All permanent files (opened INOUT or OUTIN end
SAVE) prefer disk pack.

2.

All temporary files (opened OUT or OUTIN and
RELease) prefer RAD.

3.

All account directories (AD), file directories (FD),
and file information tables (FIT) prefer RAD.

4.

All star files (system temporary files for ROMs, LMs,
debuggers, etc.) prefer RAD.

90 17 MH-l (9/'18)

Two methodsareavailable to thesystem managerfor control
of file space allocation.
j.

2.

Using ANLZ and its subcommand DELTA, the system
cell RADIST may be set nonzero. In this case, the
normal preference is overridden and all space requests
(except expl i cit CYLI NDER u"ocat ion) prefer RAD.
Using SUPER, the system manager may separately limit
the amount of $pace on RAD or on disk pack available
to an individuul user. For example, by setting the
disk pack allowance to zero, all files of that user will
be forced to RAD. An error ~o the user program results
if no RAD space is available.

A user program or job may control the allocation of files
to RAD or nisk pack using either ASSIGN control commands or the M:OPE N program procedure. The required
specifications are NOSE P and DEVICE, DP or DEVICE,DC
for preferring disk pack or RAD, respectively. If CYLINDER is specified, cylinder-a"ocated disk packs are
preferred.

tape labe Is are described in the UTS Fi Ie Management Teclinical Manual, 90 1989. (Xerox tape labels are currently
referred to as UTS tape labels in the technical manual.)

XEROX LABELED TAPE
A Xerox labeled tape is given standard Xerox 'abe's when
I/o is first performed on the tape. No tape initialization
is requ ired.

For labeled tapes, record blocking is performed simi larly
to blocking disk records. In BACKSPACE or FORESPACE
operations, the correct tape positioning is accomplished by
reading each block and determining the number of records
within the block (see Figure 4).

ANS LABELED TAPE

,
I

Public Random Fi let- A public random file is allocated
,on a public device by the default rules or by the type
specified, either RAD (DC) or disk pack (DP). If di.sk pack
was specified, the monitor attempts to allocate in cylinder
units before allocating in granule units.

l'rivate Files. All the index and data blocks of a keyed
or consecutive private fi Ie are allocated from one or more
private disk pack volumes. A keyed, consecutive, or random file can extend beyond volume boundaries.

An ANS labeled tape is given standard ANS format labels
either through the ANS tape initialization processor (Label)
or as the resu It of an operator key-in.

Important features of ANS labeled tapes include
1.

RECORD BLOCKING
The system wi" automatic911y block records for keyed
and consecutive fi les in 512-word blocks to provide more
effi cient use of disk space. The user has no knowledge
of this blocking and, when reading, wi II receive the
appropriate record within the block and not the entire
block.
When updating a keyed fi Ie,' the user may rewrite a record
in a size larger or smaller than the! original record size. If
necessary, the monitor wi" allocaire additional disk space
to accommodate the larger size.
A write with a 0 byt'e count to a keyed file will result in a
master index entry for the record with fields in the entry
pertaining to disk address, record size, and displacement
into the blocking buffer all set to zero. A write with a
o byte count toaconsecutive or random file will be ignored.

LABELED TAPIE
CP-V handles two t'ypes of 'abel.~d tape, Xerox labeled
tape and ANS 'abeled tape. Xerox tape labels and ANS

90 17 MH-l (9/18)

, 2.

When an input operation is performed, files may be
processed by fi lename and volume sequence number,
thereby eliminating the requirement of having enough
serial number storage space in the DCB for a" volumes
to be processed.
The nondestruction of an unexpired tape can be, to
some extent, guaranteed. There are two modes of
tape protection that are applicable to ANS tapes:
The protective mode, in which only ANS expired tapes
may be written on through an ANS DCB, no unexpired
ANS tape may be written on through a non-ANS DCB,
a" ANS tapes must be initialized by the Label processor, no tape serial number specification is allowed
at the operator's console, specification of an output
serial number in an ANS DCB forces processing to be
done only on a tape already having that serial number,
tapes mounted as IN may not be written, and tapes
mounted as other than I N must have a write ri ng.

The semi-protective mode, inwhicha warning is posted
to the operator when an ANS DCBattempts output on a
non-ANS tape or an unexpired ANS tape when a
non-ANS DCB attempts output on an unexpired ANS

File Storage Devices

25

5

6

7

8

15 16

23 24

PBS

NKY

SKEY1

KEY1

~---

RWS

RECORD

1

1

SKEY 2

KEY2
RWS 2
RECCRD2

etc.

Inter-record gap
PBS

NKY
KEY

SKEY3

3

Inter-record gap
RECORD 3
(unblocked)
PBS contains previous block size.
NKY contains number of entries in block.
SKEY contains size of key (maximum = 31).
KEY contains key.

= 1 means record
P3 = 0 means record
P3

is unblocked.
is blocked.

P2 = 1 mean's record continued into next block.
P2 = 0 means not continued.
P1
Pl

= 1 means first part of record.
= 0 means not first part.

RWS contains size of record in block.

Figure 4.

26

File Storage Devices

labeled Tape Format for Variable-Length Blocked Records

31

3.

tape, or when a tape mounted as INOUT has no write
ring. Theoperator can authorize the overwrit ing of the
tapeor theoverrideofINOUTwith the OVER and READ
key-ins. ANS tapes may be initial ized by the Label
processor or may be given I(lbels as the result of an operator key-in. Tape serial number specification is allowed at the operator's console, and specification of
an output serial number in an ANS DCB forces processing to be done onl yon a tape 01 ready having that serial number unless the operator authorizes an overwrite.

Multifile Tapes. Once a user has opened a file on a
multifi Ie tape, no other user may access the tape unti I
the original user has closed the fi Ie. If the REW option
is specified, the tape is rewound and a message is typed
requesting the operator to dismount the reel. Otherwise,
the tape remains at the current position and, if a DCB is
opened using tape, one of two actions occurs:

1.

On input or update, the tape is scanned forward fo:
the desired file.

The mode of ANS tape protection is determined at
SYSGEN.

2.

On output, the tape is positioned to the end of the
current fi Ie and the new fi Ie is written at that
position.

A number of fi les with the same fi lename and format
may be treated as one logical file. This process is
known as concatenation of files. Files may be concatenated in either of two ways.

a.

The number of fi les to be concatenated is specified using the CONCAT keyword and the serial
numbers are specified, in order, using the SN
keyword.

PHYSICAL DEVICES
On physical devices (unlabeled magnetic tape, punched
cards, and typewriter output) it is frequently desirable for
an operating system to intersperse certain control information with user data, to maintain system control, device independence (to user), etc. On the other hand, users
occasionally desire to control a specific device entirely
as if they were doing the I/O themselves.
These requirements give rise to the need for several formats
for external media.

b.

The number of fi les to b,e concatenated is specifi ed
using the CONCAT keyword but no serial numbers
are specified. In this case, exactly n files will
be processed regardless of volume serial numbers.
(The value n is specified following the CONCAT
keyword.) The fi les wi" be concatenated in the
order in which they are mounted.

The concatenation feature is highly useful in situations
where several portions of one logical fi Ie have been
generated asynchronously, but the effect is transparent
for input operations.

The user should be aware of the f()lIowing restrictions for
ANS labeled tapes~

1.

FORMATTED DATA RECORDS
These records are formatted and/or interpreted by the
monitor. The mode is specified by the NODRC option of
the M:DCB procedure. Exact actions are listed below.
1.

Cards - Each binary record is represented on one card.
An EBCDIC record can be represented as one or two
cards. When the mode is changed (between two records), a mode control card is interjected (IBCD signals
that an EBCDIC card follows; ! BIN signals that a binary card follows). End-of-data is signaled by an
lEaD card.

2.

Typewriter - Each record is made up of data of a specified size and terminated by an NL (1516) byte. Endof-data is signaled by an !EOD record.

3.

Unlabeled Magnetic Tape - Records do not contain
any formatted information. End-of-data is signaled
by a physical EOF mark.

Tape cataloging is not available in CP-V. Therefore,
Generation Data Groups are not applicable.

2.

Blocking and deblocking is the responsibility of the
user or the run-time subroutines of the processors.

3.

M.J Itifi Ie tape sets are processed via serial number only.

EXCLUSIVE USE OF TAPE FILES
Single-File Tapes. Once a user has opened a file, no
other user may access the file until the original user
closes it.

The actions resu Iting from various monitor
as follows:

I/o

requests are

M:READ
Read the next record and transfer either the
byte count requested or the number of bytes in the record,
whichever is smaller, eliminating the format information.
Set the'mode in the DCB according to the mode of the record. Position to read the following record.
File Storage Devices

27

M:WRITE

M:WEOF
Output a physical EOF mark, if unlabeled
tape; an IEOD, if card punch or typewriter; and a top-ofform, if I ine printer.
M:CLOSE
(output mode) If unlabeled tape, output two
physical EOF marks and position the tape between them.
If card punch, output an ! EOD.
M:CLOSE

(input mode)

No action.

DIRECT DATA RECORDS
These records are not formatted. Direct is specified by the
DRC option of the M:DCB procedure. The user's I/O request is performed exactly as if he had control of the device. The data records are represented exactly as user
specified in all cases. End-of-data is signaled by a physical EOF mark on magnetic tape and by ! EOD on cards or
typewriter. The C device cannot be read with DRC
specified.
The actions resulting from various mon itor I/O requests
are as follows:
M:READ

1.

2.

3.

OPEIIEXT

Write the specified record as formatted data.

Reads as follows:

When an attempt is made to open a synonymous file in an
opennext operation, an abnormal return with cade X'OS' is
made. The file parameters are returned if requested and are
indeed those of the synonymous file itself. Only the X'Ol'
(name) and X'OB' (parent name) variable length parameter
fields are present. If 'TEST FILE' is specified, the return is
not abnormal, and if there is an X'l1' variable length parameter field in the DCB, its data word has bit 17 set.
To copy the file, theoutput DCBshould be opened with these
file parameters and then immediately closed since there are
no records to read. It is imperative that the parent file (the
file the synonymous file is synonymous to - the name in the
X'OB' field) exist where the file is being copied to, and the
usual technique is to make two passes of opennext - the first
ignoring synonymous files, and the second copying only them.

EXPLICIT OPEN
When a synonymous file is opened by name, noabnormal return is given, but the file that is opened is the parent rather
than the synonym. The file parameters returned to the user
are those of the parent while the nome field in the DCB is
that of the synonym. The X'OB' field in the DCB is not filled
in with the parent name. If it is necessary to copy the synonym
rather than the parent, several steps are required.
1.

First it is necessary to detect whether the file that was
opened is synonymous or not. The best way to do this is
to compare the fi I e name used in the open to the one
returned in the file parameters. If they differ, the file
is synonymous.

2.

In order to copy a synonymous file once it is detected,
a special open FPT is necessary. Fl should be set, and
there should be at least ),('01' (name) and X'OB' (parent
name) variable length parameter fields. For example:

Unlabeled Magnetic Tape - Read the next record or the
specified number of bytes, whichever is smaller. Posit i on to read the fo II ow i ng record. The spec ifi ed
number of bytes is limited to 32767.
Cards - Read the next card in the mode specified by
the DCB (EBCDIC or binary)and transfers either the entire record or the number of bytes requested, whichever is small er.

OPENSYNON

Typewriter - Read the specified number of bytes.

M:WRITE
Output the specified record intact. If punched
cards, use mode specified in the DCB.

PARENT
SYNONYM

M:WEOF
Output a physi,caI EOF mark, if unlabeled
magnetic tape; an I EOD, if punched card or typewriter;
and a top-of-form, if I ine printer.
M:CLOSE

Synonymous files are null files used to connect several
names to one file. They are used in practice almost exclusively by the loader to handle libraries. System and utility
processors that copy file to file should be able to handle
these files, which exhibit unusual characteristics when they
are opened or read. Here is how they work.

28

Synonymous Fi les

X'14',M:EO

X'41000001 ,
ABN
ABN
4
INOUT
X '01000808'
8
X'OB010808'
8

3.

To copy the file, the name field from the file parameters should be moved to PARENT and the name field
from the DCB to SYNONYM. The output DCB should.
be opened with this FPT and then closed since there
are no records to read. Th is comples the copy.

4.

Once the synonymous file has been created, the
S YNON name must be turned off in the DCB in order
to output non-synonymous fil es through that DCB. This
can be accomplished by including X'OBOOOOO1' in the
variable parameters list of the open or adjust DCBFPT.

No action.

SYNONYMOUS FILES

GEN,8,24
DATA
DATA
DATA
DATA
RES
DATA
RES

Again it should be remembered that the parent must be present
in the account to which the synonym is being copied. It may
be necessary.to copy the file whose name is in the original file
parameters before proceeding with the synonymous file copy.

. 90 17 64H-l (9/18)

I

3. MONITOR CONTROL COMMANDS
control command or a control key-in function. No
spaces, however, are allowed between! and JOB
or any of the input control commands. Note that
to avoid problems, any processor control command
or continuation to a monitor control command whose
first few characters match any of the input control
commands or JOB should be used with spaces following! and preceding the term.

INTRODUC'TlON
The operating system is directed Iby means of a job control
language (JCL) consisting of control commands. These commands control the construction and execution Of programs
and provide communication between a program and its environment. The environment includes the monitor and processors (such as Meta-Symbol, COBOL, and FORTRAN IV),
the operator, and the peripheral equipment.
Monitor control commands discussed in this manual may be
categorized as follows:
System

Input

Uti lity

JOB
LIMIT
STEP
POOL
MESSAGE
TITLE
ASSIGN
LDEV
XEQ

BIN
BCD
DATA
EOD
FIN

PFIL
REW
WEOF
SWITCH

Prog ram Load
and Execution

Debug

LINK
LOAD
LYNX
OVERLAY
OLAY
INCL
TREE
PTREE
RUN
MODIFY

PMD
PMDE
PMDI
SNAP
SNAPC
IF
AND
OR
COUNT

System, Input, and Utility control commands are described
in this chapter. Program Load and Execution control commands are described in Chapter.6, and Debug control commands are described in Chapter 7.
The term "alphanumeric" when us'ed in conjunction with any
of the following control command:!i is defined as any combination of the following characters:

is the mnemonic code name of a control
mnemonic
function or the name of a processor. If it is
the name of a processor, it may consist of up to
eight alphanumeric characters with no embedded
blanks. If it is the name of a function, it must
be spelled exactly as shown in this manual, with
no embedded blanks.
specification
is a listing of required or optional
specification subfields. This may include keyword operands (shown in this manual in uppercase letters), labels, or numeric values appropriate
to the specific command. The specification field
may begin one or more spaces after the mnemonic
field, but spaces (blanks) may not be embedded
within options.
The required or optional specifications of a command function are identified in this manual in the following ways.
Commas are used to separate fields and subfields and are
required where shown, as in
DEVICE, name
Parentheses are used to indicate the subfield groupings and
are required, as in
(SN, value, value)
Brackets are used to indicate selective options. They are
not to be used in the control command and the operations
shown need not appear in any particular sequence relative
to each other in a specific control command. For example:
[(option 1)J[, (option 2)] ••• [, (option n)]

A-Z a-z 0-9 -

$ * '0/0 : II @ - +

except where explicitly noted otherwise.
Monitor control commands have the general form
!mnemonic specification

where
in column I, optionally followed by none or one
or more spaces, identifi'es the beginning of a

Braces are used to enclose options vertically, thus indicating a choice can be made, as in

I

J

LOAD
J OVERLAY •••
o LAY
Single quotations are used in the specification field as
constant delimiters (see Meta-Symbol/LN, OPS Reference
Manual, 900952), and are to be used when shown. For
example:
'ALL' or 'value '
Mon i tor Control Commands

29

A period may be used after the specification field (or after
the mnemonic field if the command is one with no specifications) as an explicit command terminator. A period is not
required if no comment is to follow the specification field.
A period may also be used in place of the mnemonic field
(i. e., in column 2) to indicate that the "command" contains a comment only.
A semicolon is used as a continuation indicator for the
specification field or for comments to be continued from
one record to the next. (Processor calls cannot be continued.) For example:

!fication

I mnemon i c speci;

The form of the JOB control command is
I JOB account ,name[(ext. actg. }] [,priority ~wsn
C[,;ossword

JJ]

where
account
specifies an authorized batch processing
account number of from one to eight characters.
name
identifies the user. The name may consist of
from one to more than 12 alphanumerk characters,
but only the first 12 will be used.
ext. actg.
identifies the user's accounting information as a subset of the user's name. It may consist
of from one to more than 24 characters, but only
the first 24 will be used. Legal values are any
alphanumeri c characters except commas (,) and
parentheses (0).
priority
specifies the priority of the job.
values are

Note the! in column 1 of the continuation card. Annotational comments detailing the specific purpose of a command may be written following the command terminator.
(Generally a period is used as the command terminator.
However, if the command consists of a mnemonic alone,
one or more blanks may be used as the command termi nator. )
Comments in a control command record may not contain a
semicolon (except as a continuation character).
Communi cation between the operator and the monitor is
accomplished through control commands, key-ins, and messages. Control key-ins are always input through the operator's console. Control commands are usually input to the
monitor via punched cards; however, any input device{s)
may be designated for these functions (see "ASSIGN ",
below). All control commands and monitor messages are
listed on the output device designated as the listing log
(normally a line printer). In this manner, the monitor keeps
the operator informed about the progress of each job.

SYSTEM CONTROL COMMANDS
JOB

==:J

Legal

o

(hold in job queue unti I priority is
changed by a PRIORITY key-in).

l-F16

(lowest to highest priority).

The defaul t value is 1.
specifies a workstation name ond is only applicable to remote processing (see the CP-V/RP
Reference Manual, 90 30 26). If the workstation
name is present and valid, the job's output will be
. assigned to the specified workstation. If it is not
present, the job's output is returned to the workstation at which the job originated.

wsn

password
specifies a user password which may consist of one to eight characters and is onl y appl icable
to remote batch or locally submitted batch jobs.
The printing of the password is suppressed when the
JOB control command is listed.
Example:

Signals the beginning of a new job.
!JOB C6400314,SMITH-1234(3211-XYZ}, F.3211,3291

•

Must be the first control command in each job.

•

No spaces are allowed between! and JOB.

•

May not be continued from one record to the next.

•

Subfields must be separated by a comma.

•

Must specify a legal account and name combination
and (optionally) a priority authorized for that user.

30

System Control Commands

This example specifies that the account number of the job
is C6400314, the user is SMITH-1234 with extended accounting 3211-XYZ (employee" 1234 named Smith with extended accounting information specifying 3211-XYZ), and
the job has priority F (the highest possible). The period
following the specification fields indicates that the remainder of the record consists of comments.

90 17 64H-l (9/78)

.LIMIT
Specifies (in decimal integers) maximum values
for various system resources required by the job.
•

LIMIT control commands arlS! optional, and, if included,
must follow the JOB control command.

•

Job aborts when Ii mi t for any system resource is exceeded.

•

LIMIT commands cannot be continued. However, multiple LIMIT c:ommands are allowed in a job.

rMIT

ORDER
specifies this job is to be run only after all
previously entered jobs with the same account
number have been run.
PDISK,value
specifies, in decimal, the maximum
number of publ ic (disk pack) storage granules that
are to be allocated for permanent files by the current job.
PO,value
specifies the maximum numberof punched
cards that may be produced in the current job. The
maximum value that may be specified is 32,767.

The form of the LIMIT control command is
(option)[,(option)i ••.

PSTORE,value
specifies, in decimal, the maximum
number of publ ic (RAD) storage granules that are
to be allocated for permanent files by the current
job.

where the parameter options are
ACCOUNT
specifies tholt no other batch job with this
account is to be run concurrently. The defaul t is to
allow the execution of concurrent batch jobs under
the same account. Specification of ACCOUNT
has no effect on on-line jobs.
CORE,value
specifies, ;in K units where K = 1024
words, the maximum amount of core required for
the user's data, DCBs, and procedure. The core
space fOil" shared processor procedure called by the
user and context items required by the monitor (such
as JITs and buffers) is not included in this limit.

RERUN
requests that in the event of a system failure wh i Ie the job is runn ing, the job be rerun
after the recovery. The request will be honored
unless the job is suspected (by the system) of
causing the failure. Note that RERUN is not appropriate for all jobs. For example, it could be
disastrous to rerun an interrupted job that updates
a data base.
resource name,value
specifies the maximum number
of resources, where resource name is a system management defined label such as

DO,value
specifies the rnaximum number of printed
pages that may be outplut for diagnosti cs in the cur-'
rent job. (Output is viI) the M:DO DCB.) The maximum value that may be specified is 32,767. Note
that ~ PMD output is not subj ect to thi~ limitation.
LO,value
specifies the maximum number of printed
pages (excluding diagnc)stic output) that may be
Ii sted by shared processors for the current job. The
maximum value that may be specified is 32,767.

{xn']}

[ {XP']}

]

MOUNT,( S[i[] ,sn, ••• ) ,( SO[] ,sn, ••• ) •••

specifies which packs are required an~ whether
they are to be shared 011" are to have exclusive
use, where
X

indicates that the referenced disk packs
are not to be shared (i. e. I they are to
have exclusive use).

S

indicates tha~ the referenced disk packs
are to be shared.

sn

specifies the serial number of the disk
pock.

ij

specifies the type of disk pack, such as
SP. If ij is omitted, the type is assumed
to be SP.

NORDER
specifies that this job is not dependent
upon the outcome of any previously submitted
jobs.

90 17 MH-l(9/18)

9T

in which case the value specifies
the maximum number of 9-track tape
drives.

7T

in which case the value specifies
the maximum number of 7-track tape
drives.

SP

in which case the value specifies the
maximum number of spindl es required exclusively for disk pack use. This value
determines which partitions are available
for the current job. Shared spindles are
not counted for partition fit and are not
included in the SP count.

For example, (9T,S)declares that a maximum
of five 9-track tapes are required for the
current job.
TDISK,value
specifies, in decimal, the maximum
number of publ ic (disk pack)storage granules that
are to be allocated for temporary files by the current job.
TIME,value
specifies, in minutes, the maximum execution time for the current job.
TSTORE,value
specifies, in decimal, the maximum
number of public (RAD) storage granules that are
to be allocated for temporary fil es by the current
job.
System Control Commands

31

UO,value
specifies the maximum number of printed
pages that may be output byan executing user program (nonshared processor) in the current job. The
maximum value that may be specified is 32,766.

LE - less than or equal to
N E - not equal

Example:

specifies the hexadecimal value to be compared
with the SCC.

I LIMIT (TIME, 10),{LO, 100), (PO,2500),{DO,50),(UO,75)
v2
The above example specifies that the current job may require
no more than 10 minutes of execution time, 100 pages of object listings, 2500 object cards, 50 pages of diagnostics output, and 75 pages of output produced by the execution
program.

STEP
Provides conditional execution of job steps. It
operates on and tests the value of the step condition code
(SCC), a monitor item that is located in the JIT. At the
beginning of a job, the SCC is set to zero. During the job,
the SCC may be modified in one of two ways:
1.

The SCC may be set at the end of a job step to refl ect
the manner of completion. The following values are
used:

specifies the hexadecimal value (in the range O-F)
used to reset the SCC.

If the logical expression (SCC op vI) is true, the next job
step is executed and the SCC is set to the value specified
by V2. (If v2 is not specified, the SCC remains unchanged. )
If the logical expression is false and the current value of the
SCC is less than 2, control commands are skipped up to the
next STEP control command (or to the end of job if there is
not a subsequent STEP control command) and the SCC is set
to indicate that the step was skipped.

The STEP control command may be placed anywhere in a
job except in the middle of debug control commands. The
STE P contro I command wi II not be honored and the entire
job wi II be aborted if any of the following conditions is
encountered:

2 - the step was skipped

1.

Invalid JOB or LIMIT control command (e.g., invalid
syntax in command).

2.

Operator abort key-in.

3.

Violation of values specified in LIMIT control command
(e. g., specified execution time exceeded).

4 - the step was errored
6 - the step was aborted
The SCC will only be set if the job step did not execute
successfully and if the new value is greater than the current
value in the SCC.
2.

The SCC may be set as the result of a STEP control
command to any hexadecimal value in the range O-F.
The value is specified in the STEP control command
and is only used to set the SCC under certain conditions (described below).

Example:

(

STEP LE,2, 0

The STEP control command has the form

(STEP

op,vl~v2]

where
op

specifies the type of comparison to be made.
Possible specifications are
G T - greater than
LT - less than
EQ - equal to
GE - greater than or equal to

32

The above example tests the results of previous job steps
as recorded in the SCC. If the SCC is less than or equal
to 2, the SCC is set to 0 and the next job step is executed.
Otherwise, the SCC remains unchanged and all control commands are skipped up to the next STEP control command or
unti I the end of job.

System Control Commands

POOL
specifies the number of buffers to be allocated to
the monitor for file indexes and file data. A POOL control
command may appear anywhere except between the JOB and
LIMIT commands or within a series of debug commands.
If POOL is not specified, system limits are assumed. The
maximum number of buffers allocated wi" never exceed
available storage.

The form of the POOL control command is

TITLE

inserts a heading at the beginning of each
logical page listed on the LO device.

!POOL (FPOOL,value)

where va Iue spec ifi es the number of 512-word buffers to be
allocated for file management. The value specification
must be in the range 4 to 22. For opti mum performance,
each DCB open to a labe led tape or disk fi Ie shou Id have
the following number of buffers:
labeled tape

•

May not continue from one record to the next.

•

Has no effect if a header has been specified for LO
output (see M:DEVICE procedure under IISpecify Output Header ll ), or if LO output is not assigned to a
I isting type device.

•

Within a job, the most recent TITLE control command
is in effect, and page numbering begins at 1 when
each TITLE control command occurs.

consecutive disk fi Ie
The form of the TITLE control command is
keyed disk file

2

(!TITLE title string
random disk file

o

If fewer than the optimum number of buffers are available,
the buffers wi" be shared.

where title string specifies the title that is to appear on
each page.

Legal values are all characters, including blanks.
sends a message I~o the operator console
(OC device) and listing log (Ll. device) at the time that
it is encountered by the monitor.

MESSAGE

•

May not continue from one record to the next.

•

More than one MESSAGE control command in succession is permissible.

Example:
ITITLE*STRESS-ENERGY TENSOR ANALYSIS*

The above example causes the title string to be output at
the top of each logical page listed on the LO device by
the exec uti ng program.

The form of the MESSAGE control command is
IMESSAGE message string

where message string specifies the message to be typed.

'ASSIGN
An ASSIGN control command can be used to
assign a user's logical I/O device to a system logical
or physical device. A logical device in a user's program
is controlled by a data control block and is referred to
symbolically by a name beginning with the characters IIF: II
or 11M: II.

Legal values are all characters, including blanks.

Example:
IMESSAGE SEND ALL SAVE TAPES TO BEN NEVIS

The above examp~e causes the following message to be output on the LL and OC devices.
·id: MESSAGE SEND ALL SAVE TAPES TO BEN NEVIS
where id specifies the user's job identification.

If a DCB contains all necessary information when assembled into the load module of the user's program, then no
ASSIGN command is needed. However, if the DCB is
incomplete or if the user wishes to use an ASSIGN command to alter one or more of the parameters, this may
be done at any time in the job prior to execution of the
program containing the DCB. Any parameters altered in
this way will remain altered throughout execution of the
user's program unless explicitly changed by a call to a
system function (see "M:OPEN II and IIM:CLOSE II procedures). If a series of ASSIGN commands is given specifying the same DCB name, each successive command cancels all effects of the previous one. The DCB parameters then reflect the explicit options of the most recent

System Control Commands

33

ASSIGN command for that DCB; parameters not included
in the most recent command revert to the values of the
DCB established when the userls program was assembled.

The total number of words (the assign/merge information)
required to express ASSIGNs (or SETs) for a job, whether
on-line or batch, may not exceed 512 words (an error message results if it does). Each assignment requires a minimum of four words, plus the number of words in the DCB
name, plus the number of words in the open FPT for the
requested assignments. Assignments may be replaced or
deleted during the course of the job.

The parameters required in a DCB depend on the types
of I/O operations to be performed and the types of devices
and/or fi les to which the DCB may be assigned. In general, a DCB must contain at least the following parameters
at the ti me that II0 is to be done:
1.

Device or fi Ie name defining the assignment of the
DCB.

2.

Fi Ie function (IN, OUT, etc).

3.

Buffer address (if data is to be read or written).

4.

Number of bytes to be transferred (if data is to be
read or wr itten ).

The above parameters may be assembled into the DCB via
the M:DCB procedure or may be specified in an M:OPEN
procedure call. The first two may also be specified by an
ASSIGN command, and the last two may be specified in
an M:READ or M:WRITE procedure ca II.

Output to a labeled tape or disk fi Ie through a monitor
DCB such as M:BO, M: LO, etc., wi II exist as a single
file provided that the DCB is not reassigned between job
steps via an ASSIGN control command or an M:OPEN
procedure ca II.

in place at all times whi Ie the system is active. A fi Ie
residing on a public device (or devices) is called a public
fi Ie. The dismountable volumes on a private disk pack device are used in much the same way that tape reels are used.

A file residing on a private volume is called a private file.
A private volume-set is defined as a collection of removable volumes that the user has grouped together containing
any number of fi les with any type of organization (consecutive, keyed, or random).

A private volume-set is identified by the volume serial
numbers specified in the SN option of the ASSIGN command when the first file is written on the set. Volumes
may be added to the set by the addition of a new volume
serial number in the SN list, but a volume may not be
removed. The system bui Ids both an Account Directory and
a Fi Ie Directory (containing information about all fi les in
the account) on each private volume-set so that a set of
volumes is a self-contained entity and can be transported
from one computer site to another.

There are four general types of assignments that can be
made via the ASSIGN control command: disk fi les, Xerox
labeled tape fi les, ANS labeled tape fi les, and fHes on
other devices. Described below are four types of ASSIGN
control commands, one for each type of assignment. In
each case, only the options that are normally appropriate
to the specific type of assignment are listed. Deleting
assignments is discussed after the description of the four
types of ASSIGN commands.
DISK FILE ASSIGN COMMAND
The form of the ASSIGN control command for disk fi les is
IASSIG N dcb name,(FILE,name [,account]) ~

L[, (option)] ...

where
Note:

The following restriCtions exist. The M:C DCB,
i.e., the C device, is normally assigned to the
card reader. I t cannot be reassigned wi th the
ASSIGN control command. In addition, the following system DCBs cannot be reassigned with the
ASSIGN control command: M:=, M:*, F:CF, and

M:OC.
When the M:GO DCB is assigned to a file, that file
is automatically deleted at job termination.
Disk pack devices are declared either public or private at
SYSGEN time. The volume on a public disk pack device
becomes part of the system IS secondary storage and must be

System Control Commands

dcb name
specifies the name (not exceeding
31 characters in length) of the DCB to be referenced. This must be the first subfield following
ASSIGN, and must be followed by the FILE keyword. The first two characters of a userls DCB
name must be "F:" (e.g., F:PRINT or F:BI). The
first two characters of a monitor DCB' name are
"M:" (e.g., M:LO).
FILE,name&account]
specifies the name of the
public or private disk fi Ie that is to be assigned
to the DCB. The name may consist of up to
31' alphanumeric characters. The named fi Ie
will be maintained on RAD or DP storage. If

90 17 64H-1 (9/18)

the file belongs to a different account than that
of the current job, the file's account number must
be given. Otherwise, the file's account number
is defaulted to the user's account. If the file is
private, the SNoption must be used to specify the
serial number{s} of the private volume-set.

Access (one of the two access means given below)
SEQUEN
specifies that records in the fi Ie are to be
accessed in the order in which they appear within the
file. This is the default if neither SEQUEN nor
DIRECT (see below) is specified.

The options are as follows:
DIRECT
specifies that the next record to be accessed is
to be determ i ned by a key.
Physical Device
DEVICE,name
specifies the type of physical device to
be used for file storage {e.g., DC, DP}. Name may
be any disk device which was declared at SYSGEN.
Use of the DP device type COluses the system to request
the default disk type that was defined at SYSGEN.
The DEVICE option on an ASSIGN command is normally used only when ASSIGNing a file on a private volume set.

If device type is not specified for public files, space
for the file will be allocated on any available RAD
and/or public disk pack devices. Otherwise, space
for the file will only be allocated on the type of device specified ..

Function (one of the four modes given below)
IN [SHARE]
,EXCL

specifies the input mode. This is the default if function is notspecified. SHARE
specifies share mode for the DCB which allows more
than one IN and/or INOUT user to access the fi Ie
concurrently. EXCL ~pecifies exclusive mode for the
DCB which means that the user must have exclusive
use of the file. The default is EXCL.

OUT

IN OUT [,SHAREl
,EXCL

specifies the input and output mode
{i. e., the update mode}. SHARE
specifies share mode for the DCB which allows more
than one IN and/or INOUT user to access the file
concurrently. EXCL specifies exclusive mode for the
DCB which means that the user must have exclusive
use of the fi Ie. The default is EXCL.

J

Organization {one of the three types given below}
CONSEC
specifies that the records in the file are
consecutively organized and each record is to be
processed in order. This is the default if no organization is specified.

If a private fi Ie has consecutive organization, the
system only requires that one volume in the private
volume-set be mounted at any time. As another volume is required, the system wi II request that it be
mounted.
KEYED
specifies that the loca'~ion of each record in
the file is determined by an explicit identifier (key).
If a private fi Ie has keyed organization, all volumes
in the set must be mounted when the file is opened and
remain mounted unti I the fi Ie is closed.

RANDOM
specifies that the data in the file is to be
written in contiguous areas of a random access device and accessed by specifying the starting block
number. If device type is not specified, the file
wi II be allocated on RAD or disk pack, whichever
is available.

specifies the output mode.

OUTIN
specifies the output and input mode (i. e., the
scratch mode).

Fife Disposition (one of the two specifications given below;
meaningful only for OUT or OUTIN files).
REL

specifies that the secondary storage allocated to
this file is to be released when the file is closed.
See FILES, in the discussion of M:CLOSE.

SAVE
specifies that the secondary storage allocated to
this file is not to be released when the file is closed,
unless specified otherwise by an M:CLOSE procedure
call. If SAVE is not also specified in the M:CLOSE,
the secondary storage allocated to this file will be
released.
JOB

specifies that the file is temporary. It is to be
saved across job steps but is to be released when the
job ends.

Other Options
If a private fi Ie has random organization, all volumes
in the set must be mounted when the file is opened and
remain mounted until the file is closed.

90 1764H-l(9/78}

CYLINDER
specifies that the public file is to be allocated from publ ic devices having cyl inder allocation
units. If CYLINDER is not specified, the public file

System Control Commands

35

is allocated from public devices having granule alloIn either case, the file will only be
allocated on the type of device specified with the
DEVICE option. If the DEVICE option is not specified,
the system looks for space on public disk packs first
and RADs last. If space is not available in the units
requested, the file will be allocated in the available
units from publ ic devices of the type requested.
CYLINDER only has meaning for public files.
cation units.

EXECUTE[,value). .•
specifies the account numbers
of those accounts that may execute the fi Ie. Up to
eight account numbers may be specified. The value
All may be used to specify that any account may
execute the file. The value NONE may be used to
specify that no other account may execute the file.
This option is valid only for OUT and OUTIN files.
If no value is specified, all execute account entries
in the DCB are reset.

I

mm,dd,yYI
EXPIRE, ddd
specifies either an explicit expiNEVER
ration date (mm,dd,yy), the number of days to retain the file (ddd), or that the file
is never to expire (NEVER). If not specified, the default value as established in the authorization record for the user will determine the expiration date.
Files will be automatically purged from the public
file system if they have expired whenever secondary
storage space passes below a SYSGEN-established
threshold.

The value specified may not exceed the maximum expiration period authorized for the user. If the maximum expiration period is exceeded or unspecified, the
default expiration period authorized for that user wi II
be used. If this option is omitted from the M:DCB
procedure call it will not appear in the DCB and, consequently, may not be used in an ASSIGN control command or M:OPEN procedure call referencing the DCB.
If EXPIRE is specified but no value given in the
M:DCB call, two words are reserved for the value
(to be inserted via an ASSIGN control command or
M :OPEN procedure ca II).

KEYM,value
specifies the maximum length, in bytes,
of the keys associated with records within the file. A
key may consist of up to 31 characters. The default
value is 11.

NEWX, slides[, consecutive slides]
allows the user to
specify "when II and "if" a keyed fi leis higher-level
index structure should be built (or rebuilt). Unless otherwise specified, the higher-level index
structure is bui It for the first time when a keyed
file that has more than three level 0 index blocks
is closed.

36

System Control Commands

slides
specifies the number of blocks that can be
added to the fi leis index since the current higherlevel index structure was built; if the specified
value is exceeded, the higher-level index structure will be rebuilt when the file is closed. If
a value of 255 is specified, the higher-level index structure will not be built (or rebuilt). If
NEW>< is not specified, the value 254 is used in
default.

consecutive sl ides
specifies the number of contiguous blocks that can be added to the filels index
since the current higher-level index structure was
created; if the specified number is exceeded, the
higher-level index structure will be rebuilt when
the fi Ie is closed. If the number is not specified,
2 is used in default.

NOSEP
specifies that the index blocks of a public fi Ie
are to be allocated in the same way that the data
blocks are allocated. (Note that only keyed files
have index blocks.) If NOSEP is not specified, the
index blocks of a public fi Ie are allocated from public devices having granule allocation units. In either
case, the file will only be allocated on the type of de~
vice specified with the DEVICE option. If the DEVICE
option is not specified, the system looks for avai lable
granules on public disk packs first and RADs last. If
space is not avai lable in granule units, the system looks
for space on public disk packs with cylinder allocation
units. NOSEP only has meaning for public fi les with
keyed or consecutive organization.

PASS,name
specifies the password that wi II allow access to a password protected fi Ie {after any other
security checks have been made}. The password may
be from one to eight characters in length and wi II be
omitted from the listing of the ASSIGN commands.

READ[,value]. • •
specifies, for OUT or OUTIN files
only, the account number of those accounts that may
read but not write the file. The value All may be
used to specify that any account may read the file
(e.g., READ,All). The value NONE may be used
to specify that no other account may read the file. If
no value is specified, or if READ (and WRITE, see below) is omitted, Allor NONE, as specified in the
authorization record for that user, is assumed by default. The total number of accounts explicitly specified in the READ and WRITE options must not exceed 16.
READ is applicable to OUT or OUTIN files only.
Also see WRITE and EXECUTE.

RECl,value
specifies the default record length, in
bytes. The greatest value that may be specified
is 32,767. If RECl is not specified, a standard value
(appropriate to the type of device used) wiH apply.
90 17 64H-1 (9;78)

The value specified in an ASSIGN command will
override that assembled into the DCB but will not
override the RECl specifi'cation of an M:OPEN call
or the SIZE specification of an M:READ or M:WRITE
procedure co II.

RSTORE,limit
specifies, in decimal, the number of
granules to be allocated to a RANDOM fi Ie. RSTORE
is only honored when the fi Ie is first created.
SN[,serial numbed. .•
specifies the serial numbers of
the private disk pack volumes that are to be used for
file input 011' output. The serial number may be from
one to four alphanumeric characters and a maximum of
three serial numbers may be specified for system DCBs.
If SN is not specified (by ASSIGN, M:DCB or
M:OPEN), the file is assumed to be on public devices.
If no serial number is specified, all serial number
entries in the DCB are resE,t.

For a file on a private volume-set:

1.

When the first fi Ie on a private volume-set is
created, all serial numbers in the set must be
specified and the first volume in the set wi II become the primary volume

2.

If the private vol ume-'set has been established,
only the serial number of the primary volume need
be specified. The primary volume contains a list
of a II seri a I numbers in the set.

3.

If one or more volumes are to be added to the set,
the serial numbers of the new volume(s) must be
specified following thE! primary volume.

The SN option must be specified in the M:DCB procedure call for it to appear in the DCB so that it may
be used by the ASSIGN c:ontrol command or the
M:OPEN procedure call. When SN is specified in
the M: DCB procedur~ call but no serial numbers are
given, three words are reserved for the serial numbers
which can be inserted through ASSIGN or M:OPEN.

specified or is zero, it is set to 102 bytes by default.
This spare space is used so that additional keys can be
inserted in a minimum time when updating the file with
direct access (as in EDIT). If the fi Ie wi II never be
updated with direct access, a spare value of one should
be specified.

TRIES,value
specifies the maximum number of recovery
tries to be performed for any I/O operation. The
greatest value that may be specified is 255. The
default value is 10.

WRITE[,value]. • •
specifies, for OUT or OUTIN files
only, the account number of those accounts that may
have both read and write access to the file. The values
All and NONE maybe used, as'with the READoption;
and, if a conflict exists between READ and WRITE
specifications, those of the WRITE option take precedence. NONE is assumed by default.

The READ and WRITE option must be specified in the
M:DCB procedure call for it to appear in the DCB so
that it may be used by the ASSIGN control command
or the M:OPEN procedure call. When READ or
WRITE are specified in the M:DCB procedure call but
no account numbers are given, 16 words are reserved
for either READ or WRITE and can subsequently be
filled by ASSIGN or M:OPEN.
UNDER[,name}
specifies the name of the only processor
that may access this file if the user does not own the
file. The name may be from one to ten characters.
The processor may be any shared processor or any load
module in the :SYS account. If EXECUTE accounts
are specified and UNDER is not specified, the file is
presumed to be a load module and UNDER, FETCH is
implied by default. FETCH is the name of the monitor routine that places a program into execution. If
no name is specified, the processor entries in the
DCB are reset.
XEROX LABELED TAPE ASSIGN COMMAND
The form of the ASSIGN control command for Xerox labeled
magnetic tape fi les is
IASSIGN dcb name, (LABEl,name(,account]) - - ,

L[, (option)] ..•
The INSN and OUTSN opt:ions used in the previous
version of the monitor were replaced with the SN option. For compatibility, the INSN and OUTSN options are acceptable in lieu of SN.

SPARE,n
specifies in bytes the amount of spare space to
be left unused at the end of each index block whi Ie a
keyed file is being created or updated with sequential
access. The value specified may not exceed 255 bytes;
if it does, it is treated modulo 256. If SPARE is not

90 17 64H-l (9/78)

where
dcb name
specifies the name (notexceeding31 characters in length)of the DCB to be referenced. This
must be the first subfield following ASSIGN, and
must be followed by the LABEL keyword. The first
two characters of a user's DCB name must be "F: II
(e.g., F:PRINT or F:BI). The first two characters
of a monitor DCB name are "M: II (e.g., M:lO).

System Control Commands

37

LABEl,name[,account]
specifies the name of the
magnetic tape fi Ie that is to be assigned to the
DCB. The name may consist of up to 31 alphanumeric characters. If the fi Ie belongs to a different account than that of the current job, the
file's account number must be given. Otherwise,
the file's account number is defaul ted to the user's
account. If the file is to be input, the SN option
must be used to specify th e tapes containing the file.
The options are as follows:
Physical Device
DEVICE,name
specifies the type of tape drive to be used
for fi Ie input or output. Name may be any tape device
whi ch was declared at SYSGEN.
The standard tape devi ces are:
7T

= 7 -track

9T

= 800

tape dri ve.

bpi 9-track tape drive.

BT = 1600 bpi 9-track tape drive.
MT = installation dependent (see below).
Use of the MT device type causes the system to request
the default tape type that was defined at SYSGEN.

Organization (one of the two types given below)
CONSEC
specifies that the records in the fi Ie are
consecutively organized and each record is to be processed in order. This is the default if no organization
is specified.
KEYED
specifies that the location of each record in the
fi Ie is determined by an explicit identifier (key).

Access {one of the two access means gi ven be low}
SEQUEN
specifies that records in the file are to be
accessed in the order in which they appear within the
fi Ie. This is the default if neither SEQUEN nor
DIRECT (see below) is specified.

INOUT

specifies the input and output mode (i. e., the
update mode).

OUTIN

specifies the output and input mode (i. e.
scratch mode).

IN

specifies the input mode.

OUT

speci fi es the output mode.

38

System Control Commands

the

Other Options
KEYM,value
specifies the maximum length, in bytes
of the keys associated with records within the fj Ie. A
key may consist of up to 31 alphanumeric characters.
The default value is 11.
PASS,name
specifies the password that wi II allow access
to a password protected fi Ie (after any other security
checks have been made). The password may be from
one to eight characters in length and wi" be omitted
from the listing of the ASSIGN command.
READ[,value] . . .
specifies the account numbers of
those accounts that may read but not wri te the fi Ie.
The value All may be used to specify that any account
may read the fi Ie (e. g., READ,All). The value NONE
may be used to specify that no other account may read
the fi Ie. If no value is specified, or if READ (and
WRITE, see below) is omitted, Allor NONE, as specified in the authorization record for that user, is assumed by default. The total number of accounts
explicitly specified in the READ and WRITE options
must not exceed 16. READ is applicable to OUT or
OUTIN files only.
RECl,value
specifies the default record length, in
bytes. The greatest value that may be specified is
32,767. If RECl is not specified, a standard value
(appropriate to the type of device used) will apply.
The value specified in an ASSIGN command wi II
override that assembled into the DCB but wi II not
override the RECl specification of an M:OPEN call
or the SIZE specification of an M:READ or M:WRITE
procedure call.
SN[,serial number).
specifies the serial numbers of
the tape reels that are to be used for fi Ie input or
output. The serial number may be from one to four
alphanumeric characters and a maximum of three serial
numbers may be specified for system DCBs.
For a file on labeled tape:

1.

Serial numbers must be ordered in the proper sequencefor a file to be opened in the IN or INOUr
mode. If SN is not specified (by ASSIGN, M: DCB
or M:OPEN), the DCB is not opened and an abnormal code of X'14' is returned.

2.

The fi Ie wi" be written in the order in which the
serial numbers are specified for a fi Ie to be opened
in the OUT or OUTIN mode. If SN is not specified (by ASSIGN, M:DCB or M:OPEN), available
scratch tape{s) of the type specified in the DEVICE
option (or by default, any type available)will be
used.

DIRECT
specifies that the next record to be accessed
is to be determined by a key.

Function (one of the four modes given below)

I

90 17 64H-l(9/78)

The INSN and OUTSN options used in the previous
versions of the monitor were replaced with the SN option. For compatibility, the INSN and OUTSN options are acceptable in lieu of SN. If no serial number
is specified, serial number entries in the DCB are
reset.

ANSLBL,name
speci fies the name of the magnetic
tape fi Ie that is to be ass igned to the DC B. The
name may consist of up to 17 characters. If the
fi Ie name contains special characters, it must be
enclosed by single quotation marks. When a
single quotation mark is to be used as part of the
fi Ie name, it must be coded as two successive
quotation marks. There should be no blanks between the last character and the terminating quotation mark.

TRIES,value
specifies the maximum number of recovery
tries to be performed for an:v I/o operation. The
greatest value that may be specified is 255. The default value is JO.
VOl,value
specifies which tape reel in the SN list is to
be used initially. A value of 1 designates the first (in
the list), a value of 2 designates the second, etc. If
VOL is omitted, a value of 1 'is assumed by default.
WRITE['value] . . •
specifies the account number of
those accounts that may have both read and write
access to the file. The values ALL and NONE may
be used, as with the READ option; and, if a conflict
exists between READ and WRITE specifications, those
of the WRITE option take precl~dence. NONE is assumed by default. WRITE is cfpplicable to OUT or
OUTIN files only.
The READ or WRITE option mu:st be specified in the
M:DCB procedure call for it t() appear in the DCB so
that it may be used by the ASSIGN control command
or the M:OPEN procedure calli. When READ or WRITE
is specified in the M:DCB proc:edure call but no account numbers are given, 16 words are reserved for
either READ or WRITE and can subsequently be filled
by ASSIGN or M:OPEN.
DEN,value
specifies the density at which a magnetic
tape is to be read or written. Only values of 800 or
1600 are acceptable.
ASCII
specifies that conversion of code between
EBCDIC in core and ASCII on tl:llpe is to be performed.
ASCII is legal on~ y for tape drives having this feature.
EBCDIC
specifies that no conversion of code is to take
place (see ASCn above) and that the tape is to be
read and written in EBCDIC.
ANS LABELED TAPE ASSIGN COMMAND
The form of the ASSIGN con,trot command forANS labeled
magnetic tape fi les is
IASSIGN dcb name, (ANSLBL,name)[, (option)] •••

The options are as follows:
Physical Device
DEVICE,name
specifies the type of tape drive to be used
for file input or output. Name maybe any tape device
which was declared at SYSGEN.
The standard tape devices are:

9T

800 bpi 9-track tape drive.

BT

1600 bpi 9-track tape drive.

Use of the MT device type causes the system to request
the default tape type that was defined at SYSGEN.
Function (one of the four modes given below)
IN

specifies the input mode.

OUT

specifies the output mode.

INOUT

specifies the input and output mode (i. e., the
update mode).

OUTIN

specifies the output and input mode (i. e., the
scratch mode).

Other Options
ABCERR
specifies that block count errors (inconsis:'encies
between the tape-specified and the system-accumulated
block counts}are not to result in program abortion.
BLKL,value
specifies block size in bytes. The value may
be in the range 1 to 32,767. If a value less than 18
bytes is specified, 18 bytes are written.
CONCAT,value
specifies the number of identically named
fi les that are to be read as one logical fi Ie (concatenated). The value may be in the range 2 through 255.

{~~,dd,yy}

specifies either an explicit expirationdate (mm,dd,yy)or the number of days to refain the file (ddd). If not specified,
the default value as establ ished in the authorization
record for the user will determine the expiration date.
Fi les wi II be automatically purged from the publ ic fi Ie
system if they have expired whenever secondary storage passes below a SYSGEN-established threshold.

EXPIRE,

90 17 64H-l (9;78)

7-track tape drive.

MT = installation dependent (see below).

where
dcb name
specifies the name of the DCB to be referenced. This must be the first subfield following ASSIGN, and must be! followed by the
ANSLBL keyword. The first two characters of a
user's DCB name must be "F:" (e.g., F:PRINT or
F:BI). The first two characters of a monitor DCB
name are "M: II (e. g., M:LO).

7T

System Control Commands

39

The value specified may not exceed the maximum
expiration period authorized for the user. If the maximum expiration period is exceeded or unspecified, the
default expiration period authorized for that user will
be used. If this option is omitted from the M:DCB procedure call it will not appear in the DCB and, consequently, may not be used in an ASSIGN control
command or M:OPEN procedure call referencing the
DCB. If EXPIRE is specified but no value given in the
M:DCB call, two words are reserved for the value
(to be inserted via an ASSIGN control command or
M:OPEN procedure call).
FORMAT,character
specifies the record formats.
character may be

variable specified in decimal.

v-

variable specified in binary.

U - undefined.
LRECL,value
specifies the logical record size in bytes.
The value may be in the range 1 to 32,767.
SN[, serial number1. • •
specifies the serial numbers of
the tape reels that are to be used for file input or
output. The serial number must consist of six alphanumeric characters (blanks are permissible) and a
maximum of three serial numbers may be specified by
system DCBs. If blanks are used, the serial numbers
must be enclosed within quote marks. ANS serial
numbers are stored in encoded format so that they wi"
fit within 32 bits.
The INSN and OUTSN options used in the previous
versions of the monitor were replaced with the SN
option. For compatibility, the INSN and OUTSN
options are acceptable in lieu of SN. If no serial
number is specified, serial number entries in the DCB
are reset.
TRIES,value
specifies the maximum number of recovery
tries to be performed forany I/o operation. The greatest value that may be specified is 255. The defau It
value is 10.
VOL,value
specifies which tape reel in the SN list is
to be used initially. A value of 1 designates the first
(in the list), the value 2 designates the second, etc.
If VOL is omitted, a value of 1 is assumed by default.
DEN,value
specifies the density at which a magnetic
tape is to be read or written. Only values of 800
or 1600 are acceptable.
ASCII
specifies that conversion of code between EBCDIC
in core and ASCII on tape is to be performed. ASCII
is legal only for tape drives having this feature.

40

System Control Commands

JOURNAL ASSIGN COMMAND
The form of the ASSIGN control command for a common
journa I fi Ie is
IASSIGN dcb name, (JRNL,name[,account])

The

F - fixed length.
D-

EBCDIC
specifies that no conversion of code is to take
place (see ASCII above) and that the tape is to be
read and written in EBCDIC.

where
dcb name
specifies the name (not exceeding
31 characters in length) of the DCB to be referenced. This must be the first subfield following
ASSIGN, and must be followed by the JRNL keyword. The first two characters of a user's DCB
name must be "F:" (e.g., F:PRINTorF:BI). The
first two characters of a monitor DCB name are
"M:" (e.g., M:LO).
JRNL,name&account]
specifies the name of the
common journal that is to be assigned to the DCB.
The name may consist of up to 31 alphanumeric
characters. If the file belongs to a different account than that of the current job, the file's account number must be given.

DEVICE ASSIG N COMMAND
The form of the ASSIGN control command for devices other
than disk or labeled magnetic tape file is
IASSIG N dcb name, (DEVICE,name)[, (option)] •••

where
dcb name
specifies the name (not exceeding
31 characters in length) of the DCB to be referenced. This must be the first subfield following
ASSIGN, and must be followed by the DEVICE
keyword. The first two characters of a user's DCB
name must be "F: II (e.g., F:PRINT or F:BI). The
first two characters of a monitor DCB name are
"M:" (e.g., M:LO).
DEVICE,name
specifies the system physical device
name, device type, operational label, or logical
device stream that is to be assigned to the DCB.
These labels are defined by the installation man
a'ger at SYSGEN. Tables 2 and 3 list the standard assignments.

90 17 64H-1(9/78)

Table 2. Standard Operational Labels, Device Types, and Physical Device Name
Type

Code

Description

Operational Label

BI, BO, C, CI, CO,
DO, EI, EO, LL, LO,
OC, PO, 51, SL, S0,
UC (see Table 3).

When the DCB is assigned to one of the system
operational labels, the actua I device connected
to the DCB is that impl ied by the operationa I
label, if any, for the batch mode.

NO

No assignment, i.e., no default, is to be appl ied.
Read operations through th is DCB will return an
end-of-fi Ie. Write operations will be ignored.

CP

Card punch

CR

Card reader

LP

Line printer

TY

Typewriter

Standard Device Types

Physical Device Name

.9T

9-track tape

7T

7-track tape

BT

1600 bpi 9-track tape

MT

Default magnetic tape type (defined at SYSGEN)

DP

Default disk type (defined at SYSGEN)

yyndd

yy specifies the device type as indicated above.

(the ndd portion is
ignored but is allowed
for compatibility with
previous versions of
the system)

n

specifies the lOP letter (A-H corresponding to
unit address 0-7).

dd specifies the device number in hexadecimal,
where:

00:5 dd

~

7F

80 $. dd $. FF

Logical Device Stream

Ll

Li ne pri nter

C1

Card reader

P1

Card punch

Refers to a device number.
Refers to a device controller number (8-F)
followed by a device
number.

(and others defi ned
at SYSGEN)

Table 3.

Operational Label Conventions
Typi ca I Batch Devi ce
Assignment t

Label

Reference

Comments

BI

Binary
input

Binary coded input wi II be recei ved from the devi ce
to which this label is assigned.

CR

BO

Binary
output

Binary coded output wi II be transmitted to the device to which this label is assigned.

CP

C

Control
input

Input from the device to which this label is assigned
will be monitored, so that all control commands will
be recognized by the monitor.

CR

System Control Commands

41

Table 3. Operationa I Label Conventions (cont.)
Typical Batch
Device Assignment t

Label

Reference

Comments

Cl

Compressed
input

Compressed symbol ic input will be received from the device to
which this label is assigned.

CR

CO

Compressed
output

Compressed symbolic output will be transmitted to the device to
which this label is assigned.

CP

DO

Diagnostic
output

Diagnostic program dumps will be output on the device to which
th is label is ass igned.

LP

EI

Element
input

Element file input will be received from the device to which
this label is assigned.

CR

EO

Element
output

Element file output will be transmitted to the device to which
this label is assigned.

CP

LL

Listing
log

All control commands and system messages, including accounting
information for the job, will be output on the device to wh ich
th is label is ass igned.

LP

LO

Listing
output

Source and object I istings for assembl ies and compilations will
be output on the device to which this label is assigned.

LP

OC

Operator's
console

All JOB, ".AESSAGE, and FIN control commands, and all job
terminat;;:,,, messages will be output on the device to which this
labe is assigned. OC may not be assigned to another operational
, Jbel, but may be assigned to another physical device.

TY

PO

Punch
output

FCD or binary coded output will be transmitted to the device to
which this label is assigned (normally a card punch).

CP

SI

Source
input

Symbol ic (source language) input will be received from the device to which this label is assigned.

CR

SL

Source
listing

A listing of symbolic (source language) input will be transmitted
to the device to which this label is assigned.

LP

SO

Source
output

Symbolic (source language) output will be transmitted to the
device to which this label is assigned.

CP

UC

User's
console

This is for on-line use (see the CP-V/TS Reference Manual,
900907). The batch mode defaults to OC (operator's console).

TY

--

tThese device assignments are standard in CP-V but may be changed at SYSGEN.

The options are as follows:

Format Control (one of the following two options)

Function (one of the four modes given below)

VFC

IN
OUT

specifies that the first character of each record is
a format-control character for printing (see Table 4).

specifies the input mode.
specifies the output mode.

NOVFC
specifies that the records do not contain formatcontrol characters.

INOUT
specifies the input and output mode (i. e., the
update mode).

Mode {any of the following seven options for a device I/O
mode}

OUTIN
specifies the output and input mode (i. e., the
scratch mode).

BCD

specifies that EBCDIC mode is to be used.

BIN

specifies that the binary device mode is to be used.

42

System Control Commands

Table 4.

I

Line Printer Format Control Codes

Code
(hexadeci ma I)

Action

CO, 40

Space no addi tiona I lines.

Notes:

FBCD causes conversion from the FORTRAN
BCD set to EBCDIC on reading from CR or
7T and the opposite conversion when writing
to CP or 7T.

r---------

60, EO

lnhibi t space after printing.

C1

Space 1 addi ti ona I line before
printing.

BIN/BCD controls the mode of writing to CP
or 7T, and reading from 7T. It also controls
the mode of reading from CR if DRC has been
specified.

PACK/UNPACK specifies packed or unpacked
binary on 7T if BIN is also specified.
If no mode is specified, the current mode established
for the Data Control Block (DCB) is used.

C2

Space 2 additional lines before
printing.
,Other Options

C3

Space 3 additional lines before
printing.

CF

Space 15 additional lines before
printing.

FO

Skip to Channel 0 (bottom of
page) before printing.

F1

Skip to Channel 1 (top of page)
before printin!~.

F2

Skip to Channel 2 before printing.

FF

Skip to Channel 15 before printing.

RECl,value
specifies the default record length, in bytes.
The greatest value that may be specified is 32,767. If
RECl is not specified, a standard value (appropriate to
type of device used) will apply. The value specified
in an ASSIGN command wi II override that assembled
into the DCB but will not override the RECl specifications of an M:OPEN call or the SIZE specification of
an M:READ or M:WRITE procedure call.
TRIES,value
specifies the maximum number of recovery
tries to be performed for any I/O operation. The
greatest value that may be specified is 255. The
default value is 10.
The following options are device-dependent and wi II be
ignored by the monitor if not applicable to the device type
used.
COUNT,tab
specifies that a page count is to appear at
the top of each page, beginning in the co lumn specified by "tab ll • If COUNT is specified for the lO device and a TITLE control command is also specified,
the page count will be superimposed on the title line.
Example:

FBCD
specifies that FORTRAN BCD conversion is to be
used. Note that this does not preclude use of the
binary mode.
NOFBCD
specifies that FORTRAN BCD conversion is
not to be used.
PACK
specifies that the packed binary mode (7-track
tape) is to be used. PACK is not valid unless BIN is
specified.
UNPACK
specifies that the unpacked binary mode
(7-track tape) is to be used. Ut"-lPACK is not valid
unless BIN is specified.
l

specifies that a listing-type devH ce is to be used
(FORTRAN programs).

COUNT,60
The above example specifies that the most significant
digit of the page count is to appear. in column 60 at'
the top of each page.
DATA,col
specifies that output is to begin on each page
(or card, if EBCDIC) in the column specified by "col".
LINES,value
specifies the number of printable lines per
logical page. The greatest value that may be specified
is 32,767. If LINES is not specified, the value established at SYSGEN time wi" apply.
SEQ[,id]
specifies that the punched output is to have
decimal sequencing in columns 77-80. If id is specified, it wi" appear in columns 73-76 of the punched
output. Sequencing begins with 0000.

System Control Commands

43

SN,serial numberGserial number)...
specifies the serial
numbers of tape reels that are to be used for file input
or output. The serial number may be from one to four
alphanumeric characters and a maximum of three serial
numbers may be specified for system DCBs.
The SN option must be specified in the M:DCB procedure call for it to appear in the DCB so that it may be
used by the ASSIGN control command or the M:OPEN
procedure call. When SN is specified in the M:DCB
procedure call but no serial numbers are given, three
words are reserved for the serial numbers which can
be inserted through ASSIGN or M:OPE N.
The IN SN and OUTSN options used in the previous
versions of the monitor were replaced with the SN option. For compatibi lity, the INSN and OUTSN options are acceptable in lieu of SN.
SPACE,value
specifies the spacing between lines. A
value of one indicates that lines are to be singlespaced. The greatest value that may be specified
is 15.
.
TAB,value[,value)...
specifies the values of up to
eight tab settings for an output device. The values
must be in ascending order.
DEN,value
specifies the density at which a magnetic
tape is to be read or written. Only values of 800 or
1600 are acceptable.
ASCII
specifies thut conversion of code between EBCDIC
in core and ASCII on tape is .0 be performed by the
system. A scq is legal only for drives having this
feature.
EBCDIC
specifies that no conversion of code is to take
place (see ASCII above) and that the tape is to be
read and written in EBCDIC.
Example:

DCB assignments may also be made through the SET
command in much the same manner as the ASSIGN command.
The batch mode SET command has the same format as the
on-I ine mode SET command.

SET

ASSIGNING

DELETING AN ASSIGNMENT
The form of an ASSIGN command used to delete an assignment is
( ASSIGN dcb name

[0)

where dcb name specifies the name (not exceeding 31 characters in length) of the DCB for wh ich the assignment is to be
deleted.
, 44

System Control Commands

DEVICES AND DCB PARAMETERS

The system retains all information supplied by SET commands
in a permanent table associated with each user. This table
is called the assign/merge table and is stored on disk. At
each job step (i. e., each time a new user program or processor is loaded), the information in the assign/merge tabl e
is merged into the DCBs associated with the program. An
entry for a DCB that is currently in the assign/merge table
may be deleted by the command
SET dcb [OJ
This allows the default assignment (if any) for the specified
DCB to take effect.
DCB assignments are either to a device or to a file. If a
DCB that has already been assigned to a device is assigned
to a file, the new information replaces the old information
in the assign/merge table. The same procedure applies to
device assignments for DCBs currently assigned to files. Ead
DCB assignment requires an entry in the assign/merge table.
The total number of DCBs that may be assigned is limited
to 12.
Changes to device parameters are added to DCBs assigned to
devices. Changes to device parameters for DCBs assigned to
files yield an error message.
The several formats of the SET command are:
SET dcb [OJ

SET ·deb [~~~~~:I.

stream-Id
tapecode [tapeidJ

!ASSIGN F:OUT,(DEVICE,LO),(SEQ,OUT)

This example specifies that the user's DCB name F:OUT is
to be assi gned to the output devi ce to wh i ch the operationa label LO is assigned (normally a line printer).
Sequence numbers are to be printed in columns 77-80 and
the identification "OUT" is to be printed in columns 73-76
of each record.

I/o

1

[;doptJ ..•

1
J'

SET dcb [[t?peCOde [tapeidJ[-rtJ]/fid [·fo t
fdecode [-rtJ
P

SET dcb JR/fid
where
dcb

identifies a DCB and is in the form M:x or F:x
where x is 1 to 31 characters. (Assignments of
M:C, M:UC, M:OC, and M:XX are not allowed.)

oplabel
specifies an operational label (BI, C, CI,
etc.). (See Table 5.)
device
specifies a device code (CP, PL, LP, etc.).
(See Table 5.)

stream-id
specifies the name of a logical device
stream (Cl, Ll, Pl, etc.). (See Table 5.)
tapecode
or FT).

name

specifies a magnetic tape code (L T, AT,
(See Tab Ie 5.)

If not preceded by a tapecode or fi Iecode, /fid
implies public disk storage by default.

filecode
specifies a secondary storage code (DP).
(See Table 5.)
tapeid
if followed by /fid, specifies a serial number for a labeled tape and has the form #serial
number. The tape is accessed with the serial
number applying as both (m INSN and an OUTSN.
(Serial numbers may cont(lin alphanumeric characters. Xerox labeled tape serial numbers are 1-4
characters in length. ANS labeled tape serial
numbers must be six charclcters in length.) If not
followed by /fid, it specifies an external reel
number for free-form tape.
JR

dopt

specifies a device option.

fopt

specifies a file option.

specifies the 2-character identifier of a mountable device that was defined at SYSGEN to be a
resource (e.g., 7T, 9T, SP, etc.).

Ifid

specifies the name of a file on tape or
secondary storage. A maximum of 11 characters
is allowed. The form is

Table 5.

(See Table 6.)

(See Table 7.)

Spaces may be arbitrari Iy used in a SET command between
numbers, 'words, and identifiers but may not be embedded
within them.
Example:
1.

Assume that the monitor DCB for I isting output is to be
assigned to disk storage fi Ie N under account A with
password P.
J..SET M:LO/N.A.P. 0'r'

specifies a common journal. (Refer to the
CP-V/TP Reference Manual, 90 31 12.)

rt

J

.account
. a~count. password
[ .. password

1
2.

Assume that F:IN 1 (a user constructed DCB) is to be
assigned to file M on a Xerox labeled tape with the
serial number 4003.
ISET F:IN 1 LT#4003/M €I'

1.

DCB Assignment Codes - SET Command

Type

Codes

Description

Operational Label

B./, BO, C, CI, CO, DO, EI,
EO, LL, LO, OC, PO,
SI, SL, SO, UC (see Table 3)
(and others defined at SYSGEN)

When the DCB is assigned to one of the system operational
labels, the actual device connected to the DCB is that implied by the operational label, if any, for on-line mode.

NO

No assignment, i. e., no defaul t is to be appl ied.

Device

CP
LP
PL
(and others defined at SYSGEN)

Card punch.
Line printer.
Plotter.

Logical Device
Stream

L1
C1
P1
(and others defined at SYSGEN)

Line printer.
Card reader.
Card punch.

Magnetic Tape

LT
AT
FT

Xerox labeled tape.
ANS labeled tape.
Fre~ form tape.

Secondary

DP

Disk pack storage. This requests the default disk device
type defined at SYSGEN if the rt field is not specified.

System Control Commands

/,...~.

45

3.

Assume that the monitor DCB for compressed input
(M:CI) is to be assigned to file JJ on an ANS labeled
tape with the serial number B12345. Also, the tape
was recorded at 1600 bpi on a device known to the
system as BT and the BT device was defined at SYSGE N to be a resource.
ISET M:CI AT#B12345-BT/JJ

DCB ASSIGNMENT CODES
A device assignment is made whenever a SET command
contains an expression with an operational label or device
code, or a tapecode/tapeid not followed by a file identification. For each assignment, an assign/merge table entry
is made or an existing entry is modified. DCB assignments
are specified by the two-letter codes in Table 5.
DEVICE OPTIONS

4.

Assume that tab positions 27,38,47, and 75 are to be
added to the Iisting output DCB. In addition, the first
character of each record of the I isting is to control
vertical format and the Iisting is to be double spaced.

SET commands specifying device options may be issued only
between job steps. The device options take effect on subsequent input or output through the DCB. The options are
then in effect from job step to job step unti I reset.

l.SET M:lO;TAB=27, 38,47, 75;VFC;SPACE=2
The device options allowed for the SET commands are listed
in Table 6. Options corresponding to the M: DEVICE options
PAGE, FORM, SIZE, and HEADER are not provided.

1.

5.

If the M: LO DC B is not assigned when the above changes
are made, an error message will be sent to the term i na I.

FilE OPTIONS

Assume that DCB F: 1 is to be assigned to an output file
XXXX which spans private disk volumes A2, A3, and
A4. An expiration date of NEVER is to be assigned.

When a DCB is assigned to a disk file, Xerox labeled tape,
or ANS labeled tape, any options that are val id for the
ASS IGN command are also val id for the SET command.
Table 7 contains the list of file options.

lSET F:1 DP#A2/XXXX;OUT;SN=A3,A4;

AI ternatively, PCl compatible keywords (as shown in Table 6)
may also be used. As an example, FORMAT is a valid ANS
labeled tape option in the ASSIGN command and the SET
command wi II honor either the keyword FORMAT or the PCl
form of the keyword FMT •

RD=F 14, F22X;EXPIRE=NEVER
or the equivalent

1 SET

F: 1 Dp# A2/XXXX; OUT;EXPIRE=NEVER,;;;

ISET F: 1;SN=A3,A4;RD=F14, F22X

Table 6.

Device Options - SET Command

Format

Description

ASC[II]

ASC[II] specifies code conversion (between ASCII on tape and EBCDIC in core).

EBC[DIC]

EBC[DIC] specifies no code conversion. EBDIC is assumed by default and ASCII is legal
on Iy for tapes hav ing th is feature.

BCD, BIN

Controls the binary-BCD mode for device read and write operations.
tion with DRC will invoke the transparent mode.

COUNT

= value

DATA = value

J

46

However, the keyword PASSWORD is not recognized by the
SET command because the password is obtained from the filename. a ccou nt . password fi e Id .

BIN used in conjunc-

Turns on page counting and specifies the column number at which the page number is to be
printed.
Controls the beginning column for printing or punching and is a decimal value.
mum value is 144.

The maxi-

800!
DEN-11600

Specifies the density that will be used on a dual density tape device.

DRC, NODRC

Turns the special formatting of records on and off. DRC specifies that the monitor is not to
do special formatting of records on read or write operations. NODRC specifies the monitor
is to do special formatting. If neither DRC nor NODRC is specified, NODRC is assumed by
default. DRC used in conjunction with BIN will invoke the transparent mode.

System Control Commands

Table 6.

r

Device Options - SET Command (cont.)

Format

Description

FBCD, NOFBCD

Controls the automatic conversion between external Hollerith code and internal EBCDIC
code (FORTRAN BCD conversion). NOFBCD is assumed by default.

IN
OUT
INOUT
OUTIN

Specifies
Specifies
Specifies
Specifies

the
the
the
the

input mode.
output mode.
input and output mode (i. e. , the update mode).
output and input mode (i. e. , the scratch mode).

--.---Identiifies the device type. l specifies that the devi ce must be I isting type.
that it need not be listing type. NOl is assumed by default.

l, NOl

--

NOl specifies

LINES = value

Specifies the number of printable lines per page and is a single decimal value.
value is 255.

PACK, UNPACK

Controls the packed or unpacked mode of writing 7-track tape.

RECl

= value

-The maximum

PACK is assumed by default.

Specifies the default record length, in bytes. The greatest value that may be specified is
32,767. If RECl is not specified, a standard value (appropriate to the type of device used)
wi II apply. The value specified in a SET command will override that assembled into the
DCB but will not override the RECl specification of an M: OPEN call or the SIZE specification
of an M:READ or M:WRITE procedure call.

SEar = value]

Specifies that sequence numbers are to be punched in col umns 77-80 of punched output.
Four characters of nonblank sequence identification may be given for columns 73-76. Fewer
than.4 characters are left-justified and blank filled.

SN[= value ~valueh

Specifies the serial numbers of volumes that are to be used for input or output. The serial
number may be from 1 to 4 characters except for ANS labeled tape serial numbers which must
be 6 c:haracters. A maximum of 3 serial numbers may be specified. If a serial number is
specified with., the tapeid, it is included in the 3 allowed. An existing I ist of serial numbers
may be removed by specifying the SN option with no arguments.

y,value] ]

Specifies the number of lines of space after printing and is a single decimal value.
of 0 or 1 result in single spacing. The maximum value is 255.

SPACE = value

Values
""-

TAB

= tab [, tab]

.••

Specifies simulated tab stops and is followed by a list of up to 16 decimal numbers, separated
by commas, giving the col~mn position of the stops. If all 16 stops are not specified, the
stops given are assigned to the first ~tops and the remainder are reset.
The

TRIES = "value

Specifies the maximum number of recovery tries to be performed for any I/O operation.
greatest value that may be specified is 255. The default value is 10.

VFC, NOVFC

Controls the formatting of printing by using the first character of each record. VFC specifies
.that the first character of each record is a format-control character. NOVFC specifies that
records do not contain a format-control character. NOVFC is assumed by default.

r

Table 7. File Options - SET Command

I

Type

Format

Organization

CONSEC
KEYED
RANDOM

Disk
X
X
X

Xerox
Tape
X
X

ANS
Tape

Description
Consecutive record organization.
Keyed record organization.
Contiguous relative-sector addressed
organ i zat i on •

System Control Commands

47

Table 7. File Options - SET Command (cont.)

Type

Format

Access

SEOUEN
DIRECT

Function

IN [

Record length

Disk

Xerox
Tape

ANS
Tape

Description

X
X

X
X

X

X

X

File is read only. SHARE specifies the share
mode for the DCB which allows more than
one IN user of the file. EXCl specifies the
exclusive mode for the DCB which prohibits
more than one IN user of the file. EXCl
is assumed by default.

OUT

X

X

X

File is write only.

INOUT [ jSHAREt]
, EXCl ~

X

X

X

File is to be updated. SHARE specifies the
share mode for the DCB which allows more
than one INOUT user of the file. EXCl
specifies the exclusive mode for the DCB
which prohibits more than one INOUT
user of the file. EXCl is assumed by
default .

OUTIN

x
x

X

x

File is scratch.

~~HAREl]

, lEXCl ~

RECl

= value

lRECll
j REC {

Records will be accessed sequentially.
Records will be accessed by key.

Specifies the default record length, in bytes.
The greatest value that may be specified is
32,767. If RECl is not specified, a standard
value (appropriate to the type of device used)
wi" apply. The value specified in a SET
command will override that assembled into
the DCB but will not override the RECl
specification of an M:OPEN call or the
SIZE specification of an M :READ or
M : WR ITE procedure call.

X

x

= value

Specifies the logical record size in bytes.
The value may be in the range 1 through

32,767.

48

x

Specifies block size in bytes. The value may
be in the range 1 through 32,767. If a value
less than 18 bytes is specified, 18 bytes are
written.

x

Specifies in decimal the maximum number
of recovery tries to be performed for any
I/O operation. The greatest value that may
be specified is 255. The default value is 10.

Block Size

BlK [l] = value

Recovery'Tries

TRIES

Disposition

REl

x

OUT or OUTIN file is to be released on
closing.

SAVE

X

OUT or OUTIN file is to be saved on closing.

JOB

X

Temporary file persisting across job steps .

= value

System Control Commands

x

x

90 17 64H-l(9/78)

I

Table 7.

File Options - SET Command (cont.)
Xerox
Tape

ANS
Tape

Type

Format

Size

RSTORE = value

X

Specifies the number of granules allocated
to the RANDOM file. The value must be in
the range 1 through 16,777,215 (224 - 1).

Storage Control

CYLIN DER

X

Specifies that the data blocks of a public
file are to be allocated from public disk
packs having cylinder allocation.

Key Length

KEYM = value

X

Key Storage

NOSEP

X

Specifies that index blocks of a public file
are to be allocated in the same manner as
data blocks. (Disk pack if possible; otherwise RAD.)

Additional
Key Space

SPARE = val ue

X

Specifies in bytes the amount of spare space
to be left unused at the end of each index
block while a keyed file is being created or
updated with sequential access. Value may
not exceed 255 and the default is 102 bytes.

Expiration

( mm,dd,yYI
EXP ORE] = j ddd
! NEVER

X

Index
Structure

NEWX =slides-~
_Yconsecutive slides]

X

Disk

X

Description

Specifies the maximum length, in bytes, of
the keys associated with records within the
file. A key may consist of up to 31 characters, The default value is 11.

X

Specifies either an expl icit expiration date,
the number of days to retain the file, or that
the fi Ie is never to expire.
The "si ides" argument specifies the number
of blocks that can be added to the fi Ie's
index since the current higher-level index
structure was built; if the specified value is
exceeded, the higher-level index structure
will be rebuilt when the file is closed. If a
value of 255 is specified, the higher-level
index structure will not be built (or rebuilt).
If NEWX is not specified, the value 254 is
used in default.
The "consecutive slides" argument specifies
the number of contiguous blocks that can be'
added to the file's index since the current
higher-level index structure was created; if
the specified number is exceeded, the higher
level index structure will be rebuilt when the
file is closed. If the number is not specified,
2 is used in defaul t.

Execute
Accounts

EX [ECUTE][

=

acct [,acct
ALL
NONE

J.".

J

X

Specifies the account numbers of the accounts
that may execute the load module. A maxi ..
mum of 8 accounts may be specified. The
value ALL may be used to specify that any
account may execute the file. The value
NONE may be used to specify that no other
account may execute the file. In all of the
above cases, READ, NONE is implied in the
absence of any READ specification. This
option with no arguments resets all previous
execute account entries in the DCB.
System Control Commands

49

Table 7.

Type

Format

Read
Accounts

R[EAJD [. jacctr,acct] ...
= ALL
NONE

File Options - SET Command (cont.)

Disk

J

Write
Accounts

50

[=

L, value]]

Xerox
Tape

ANS
Tape

Description

X

X

Specifies the account numbers of those accounts that may read but not write the fi Ie.
This option is appJ icable to OUT and OUTIN
files. A maximum of 8 read accounts may
be specified. The value ALL may be used
to specify that any account may read the
file. The value NONE may be used to
specify that no other account may read the
file. This option with no arguments resets
all previous read account entries.

X

X

Specifies the account numbers of those accounts that may have both read and write
access to the file. This option is appl icable
to OUT and OUTIN files. A maximum of 8
write accounts may be specified. The value
ALL may be used to specify that any account
may have write access to the file. The value
NONE may be used to specify that no other
account may have write access to the file.
This option with no arguments resets all previous write account entries.

X

X

X

Specifies the serial number of volumes that
are to be used for input or output. The
serial number may be from 1 to 4 characters,
except for ANS labeled tape serial numbers
which must be 6 characters. A maximum of
3 serial numbers may be specified. If serial
number is specified with tapeid, it is included in the 3 allowed. An existing list of
serial numbers may be removed by specifying the SN option with no arguments.

X

X

ASCII specifies code conversion between
ASCII on tape and EBCDIC in core. EBCDIC
specifies no code conversion. EBCDIC is the
default. ASCII is legal only for tapes having
the code conversion feature.

X

X

Specifies the density that wi II be used on the
dual density tape device.

X

X

Specifies which tape reel in the SN list is
to be used initially. A value of 1 designates
the first, a value of 2 the second, etc. If
VOL is omitted, a value of 1 is assumed.

Volume Serial
Number

SN

Code
Conversion

ASC rll]
EBC[DIC]

Recording
Density

.
_ ~ 800
DEN - /1600 ~

Initial
Volume

VOL

Concatenate
Tape Files

[CON]CAT=value

X

Specifies the number of identically named
files that are to be read as one logical file
(concatenated). The value may be in the
range of 2 through 255.

Tape Format

FMT
~
j'FORMATt

X

Specifies the record format. The character
may be: F = fixed length; D = variable
specified in decimal; V = variable specified
in binary; or U = undefined.

value[ , value]

t

= value

System Control Commands

= character

Table 7.

File Options - SET Command (cont.)

Disk

Type

Format

Block Count
Errors

ABCERR

Execution
Vehicle

UN[DERJ!=name]

Xerox
Tape

ANS
Tape
X

Description
Specifies that block count errors for ANS
labeled tapes are not to resul t in an unconditional abort .

,--- -'_.-'

.

X

Specifies the name of the only processor
that may access this file if the user doe~
not own the fil e. The name may be from
one to ten characters. The processor may
be any shared processor or any load module
in the: SYS account. If EXECUTE accounts
are specified and UNDER is not specified,
the file is presumed to be a load module and
UNDER = FETCH is implied by default.
FETCH is the name of the monitor routine
that places a program into execution.

lDEV

A logical device stream is an information stream
that may be attached to any symbiont de vi ce that the user
specifies. (Symbiont devices include devices such as the
line printer, card reader, card punch, plotter, and all
devi ces at remote si tes that are accessed vi a remote processing.) At SYSGEN, up to 15 logical device streams
may be defined. Each is given a name (e. g. I C 1, L1, Pl),
each is assigned to a default physica I device, and attribtues
are defined for the physical device. The user may perform
I/o through a logical device stream with the default phy:;ical device and attributes or he may change the physical device and/or attributes to satisfy the requirements of his job.
He makes any necessary changes through use of the LDEV
command or the M: LDEV procedure. Information about the
logical device stream is stored
a cooperative contey.t
block, providing for centralized information about the physical device even though I/o to that device may arise
through more than one DCB within a job.

,n

The LDEV control command can a:lmost be viewed as another
level of the ASSIGN control command. If the DCB has
been ASSIGNed to a logical device stream, the LDEV
command can be used to attach the logical device stream
to a physical device (if the default physical device for the
stream is inappropriate). ASSIGN stores information in a
DCB, while LDEV stores information in a cooperative context block.

The lDEV control command has the form
IlDEV stream-id~ (option)] ...

where
stream-id
specifies the two-character name of the
stream to be referenced. This must be the name

'90 1764H-l(9/78)

I

of one of the logical device streams defined during
SYSGEN (for example, C 1, L1, Pl).
options
specify the devi ce streams attributes, such
as device type, stream direction, form, format
control, workstation name, etc. The options are
as described below; they may appear in any order,
Options
AIN IT
speci fies that the attributes for the stream are to
be initialized with the attributes specified on this LDE\,
command and that system defaults are to be supplied
wherever an attribute is not specified. Any attribute~
specified for the stream on a previous LDEV command
are to be ignored. AINIT is the default for the AIN [~(
ASAVE, and AREL options.
ARE L
specifies that the system table contai ning the attributes of this stream (whi ch may have been set as the
result of previous LDEV commands) is to be releasedaf"~d
thatthe attributes are not to be reini tialized. Anyother
options specified (except DELETE) in this command wi I r
be ignored.
ASAVE
specifies that the attributes for the stream are t·o
be set only by options explicitly specified on this LDE\!
command. Other lDEV-specifiable attributes (whi ch
may have been set as the result of previous LDEV com~
mands) are not to be changed. ASA VE cannot be used
for the LABEL option. DEV and WSN are subject to the
I restrictions noted in the Remote Processing Reference
1 Manual 90 30 26.
COPIES,value
specifies the number of times the file is
to be processed to produce multiple copies. The value
can be any integer from 1 to 255 inclusive. The default value is 1.
COUNT,tab
specifies that page counting is to be done
and specifies the column in which the most significant
System Control Commands

51

digit of the page count is to be listed. The value of
"tab" must be appropriate for the particular device.
(Note that if COUNT is specified for the LO device
and a TITLE control command is also specified, the page
count wi II be superimposed on the title line.) The default is no page counting.
DELETE
specifies that if output currently exists for this
stream but has not yet been dispatched for processing,
it is to be deleted. (If such a stream exists and
DE LETE is not specified, the output for the stream is
dispatched for processing.) If an input stream with
the same name currently exists, any part of the stream
that has not been read wi II automatically be deleted
whether or not DELETE is specified.
DEV,type
specifies the device type where type is the
two-character mnemonic of the device to be associated with the stream. Valid mnemonics are either
type mnemonics of the central site or of a remote
workstation. Central site menmonics are those defined for symbiont devi ces during SYSGEN (for example, CR, LP). Remote mnemonics are those specified
when defining a workstation with Super (for example, OC, CR).
ORC

requests that monitor logical record formatting
implied by the DEV option not be performed. Any
record formatting necessary wi II be supplied by the
user. If DRC is not specified, the monitor wi" perform logical record formatting.

FFORM,name
specifies the future form name (as below,
with FORM) of the form to be used when the form
change procedure {M:DEVICE (FORM/FNAME» is specified in the program for the stream. When M:DEVICE
(FORM/FNAME) is encountered, the stream wi" be
dispatched for processing and restarted with the name
as the stream form. The default is none.
FORM,name
specifies the one- to four-character name
of an installation-determined paper form or card stock
and is used in output scheduling for the device. The
default is to have no special scheduling (i. e., the operator wi II determine which form to use). If used on
input, name specifies the one- to four-character name
of a noncontrol input fi Ie. (FORM and NAME may be
used interchangeably. )
FPC,name
specifies the one- to four-character name of
an installation-determined form overlay and is used in
output schedul ing for the Xerox 1200 or a similar device. The default is to have no special scheduling
(i. e., the operator will determine which overlay to
use if any).
IN and OUT
specifies the direction of the stream. The
default is OUT.
J DE,value
specifies the job descriptor entry to be used
in output schedul ing for the device. The value must
be in the range 0-89 and specifies an installation

52

System Control Commands

defined procedure describing printer setup attributes
(e.g., VFC tape).
LABEL, text specifies a text string to be appended
to the stream's user- identification banner lines
(see "user-identification banner" in glossary).
The text may not include period, semicolon, or
right parenthesis characters. Up to 255 characters
of text may be specified. H;wever, the length
of the text that will be used is limited by the
size of a line on the dev ice •
LINES, value
specifies the number of printable lines
per logical page. The greatest value that may be
specified is 255 I ines per page. If this option is not
specified, the value established at SYSGEN time
will apply.
NOBAN NER
specifies that no user-identification
banner is to be associated with output for this
stream. A FORM name must also be specified for
NOBANNER to be operative.
NAME,name
specifies the one- to four-character name
of a noncontrol input file (see below, "Noncontrol
Input Files "). If used on output, name specifies
the one- to four-character name of an installationdetermined paper form or card stock and is used in
output scheduling for the device. (NAME and FORM
may be used interchangeably.)
NOVFC
OUT

see VFC below.
see IN above.

SEQ [,id]
specifies that punched output is to have decimal sequencing in columns n-80. If a user-defined
id is specified, it will be punched in columns 73-76
of each card. Sequencing begins with 0000.
SPACE,value(,top]
specifies the spacing between lines
(value) and between the top of each page and the first
line printed. A value of 0 or 1 results in single spacing. The greatest value that may be speCified is 15.
The default is single spacing.
SRCB
specifies that the user will supply a' devicedependent control byte as the first byte of each
record if this is an output stream, or that he wishes
to receive it as the first byte of records if this is
an input stream. This option is used only for remote processing.
VFC and NOVFC
specifies whether or not vertical for~at control characters are to be used. (These two ophons are legal only for line printers.) VFC requests
that a default vertical format control charocter be
added to all records. NOVFC requests that the format
character be stripped from the record if present. The
default is VFC.
CONCURR
places the symbiont output stream in con ..
current output mode, a mode in which output is broken
into groups ("chunks ") and released to the symbiont
stream for output. Once this stream has been selected

by the symbiont for printil1g or punching, then the
particular device is held unti I all output produced by
the job has been processed, except as otherwise directed
by an operator key-in. If CONCURR is not the only
option specified, then alrteady prepared output will
be packaged for printing in its entirety and a newly
bannered stream will be c reeted for subsequent output.
The COPIES option may not be specified when CONC~RR is specified.

specifies the workstation name of the
remote device that is to receive the
stream, where name can be from one to eight alphanumeric characters. The default is local output. If
a dollar sign ($) is specified, the name of the workstation on the JOB command (if one is specified) effectively replaces the dollar sign. If no workstation
name was sped fi ed on the JOB command or if no
JOB command was used, the name of the workstation
from which the job was submitted effectively replaces
the dollar sign. (The dollar sign option allows a job
to be run from more than one workstation without necessitating respecification of the workstation name on
the LDEV command.)

The following command requests association of L1 with
the local line printer and specifies that the number of
printable lines per page is to be 60. All other attributes are to be supplied by default.
ILDEV L1,(DEV,LP),(UNIES,60)

2.

A file created in this manner must be accessed via the
LDEV command or M:LDEV procedure using any logical
device stream except C 1. If the user specifies a name
or requests the operator to do so, the user can access
the fi Ie using the NAME, xxxx or FORM, xxxx option.
(The operator gives the file a name using the key-in
Syyndd, F'xxxx' where xxxx must be identical to xxxx
on the FORM or NAME option.) If the file is not
given a name by the operator, the n~xt noncontrol file
in the queue that has no name wi II be returned to the
user.
XED
The XEQ command inItiates the execution of
control commands read from a keyed or consecutive file
called a command file. It provides a convenie'nt method
of executing a frequently used sequence of commands.
The format of the command is

(

!XEa (FILE ,name[,account( ,password]])[, (REC, value)]

where

Examples:
1.

In this case, the input deck is read until a IFIN is encountered. If any job control cards exist in the deck,
they are treated as noncontrol information. That is, the
entire deck is simply read into the input symbiont. This
feature provides, among other things, a mean. of inputting
jobs that are to be run at a later time.

The following command requests association of L5 with
the line printer at remote workstation LAX. All other
attributes are 11'0 be supplied by default.

(LDEV L5,(WSN ,LAX ),(DEV ,LP)

FILE,name [,account [,password)] specifies the comnlOnd
file. The name cannot exceed 11 characters in length.
REC, value
specifies an optional starting record number.
The records are (logically) numbered consecutively
beginning with 1 for purposes of this command. (Even if
the record has Edit keys, for example, the keys do not
apply when specifying the beginning record number.)
If a record number is not specified, command execution
begins with the first record of the command file.

As each command in the file is executed, it is output on
the Iine printer preceded by its record number.
Example:
!XEa (FILE,ABJOB)

****

ABJOB EXECUTED AT RECORD 0001

****

0001 - ASSIGN F:IN,(FILE,PAYROLL)
NONCONTROL INPUT FILES
There are two types of symbiont input: that which is a job
control stream and that which is not. Card readers are
usually defined to be control-type devices and are used to
input job control streams. However, noncontrol input
streams may be entered from the card reader if the first
card of the input deck is
--

(1lNcn

[name]

where name specifies the one- to four-character name of
the noncontrol input stream.

90 17 64H-l (9/18)

0009 - ASSIGN F: 11, (FILE, EMPS)
****ABJOB TERMINATED AT RECORD 0009 ****
Upon termination of command file processing, the system
resumes reading control. commands from the card reader.
Command files executed by XEa must consist of val id
control commands with a ! character in the first
position of the record. The! character is not printed on
the line printer, however. Also, the user must provide
assignments for all DCBs through which the program
or processor will read data. Note that M:C cannot be
assigned in the batch mode.
System Control Commands

53

Command file processing will be terminated when any of
the following conditions occur:
1. An end-of-file occurs for the command file.
2. A EOD or

The DATA control command has the form

(DATA

FIN command is encountered.

3. A syntax error occurs while processing a command
in the command fi Ie.
4. An illegal command is encountered. There are
three illegal commands: JOB, BIN, and BCD.
5. Another XEQ command is encountered within the
command file. The second XEQ terminates the
current command file and processes the newly
specified commC!r'ld file.

EOD

The EOD (i. e., end of data) control command may
be used to define data blocks in a data deck. This is accomplished by inserting EOD control commands at the end
of each block of data. When an EOD command is encountered, the monitor returns an abnormal code of 05 in
SR3 (if the user has specified an abnormal address in the
M:READ procedure).
The EOD control command has the form

INPUT CONTROL COMMANDS
Input control commands must not have any spaces between
the exclamation character and the mnemonic. Input
control commands are not listed on the LL device.

BIN
The BIN control command informs the monitor
that the information to follow will be in binary. Thetermination of the binary information is specified by a BCD control command {see "BCD", below}.
The form of the BIN control command is

rEOD
Any number of EOD control commands may be used in a job.

FIN
The FIN control command is used to inform the
mon i tor that there are no more jobs to be processed.
The FIN control command has the form

(FIN

On encountering a FIN control command, the monitor automatically suspends symbiont activity for that input device.

Binary decks punched by monitor processors are identified
as binary by means of a code in the first column of each
card. Therefore, such decks need not be preceded by a
BIN command. However, all user-formatted binary decks
must be identified as binary by means of the BIN control
command; otherwise, read-check errors may cause the job
to be aborted.

BCD
The BCD control command is used as a terminator
for binary input, i. e., it causes the monitor to revert to its
normal EBCDIC input mode.
The form of the nCD control command is

UTILITY CONTROL COMMANDS
The util ity control commands described below allow the
user to manipulate magnetic tape files. These commands
are only valid when used with library DCBs (of the form
M:xxx),

PFIL
The PFIL (i.e., position file) control command
may be used to cause a designated number of physical files
on unlabeled tape to be moved (i .e., skipped) in a specified direction. For unlabeled tape, the tape will be positioned after the end-of-file in the direction skipped.
The form of the PFIL control command is
IPFIL dcb name~(BACK)][,(files)]

DATA
The DATA control command is used to inform the
monitor that no more debug control commands are to follow.
It is required immediate Iy after the last debug command
following a RUN control command (or after the RUN command itself if there are no debug commands) unless no data
deck is to be read from the C device (in which case the
monitor assumes that no debug commands are to follow).
54

Input Control Commands/Utility Control Commands

where
dcb name
specifies the name of the DCB associated
with the files to be skipped.

90 17 MH-l(9/78)

BACK
specifies that skipping will take place in
the reverse direction (the default option is skipping in the forward direction).
files

specifies the (decimal) nlJmber of files to be
skipped. If the files option is not specified, 1 is
assumed.

REW
The REW control command may be used to cause the
tape associated with a specified DCB to be rewound.
The form of the REW control command is

( ' REW deb name

where dcb name specifies the name of the DCB associated
with the tape to be rewound.

WEOF
The WEOF control command may be used to
cause a physical end-oF-file to be written on unlabeled
tape (see M:WEOF procedure).
The form of the WEOF control command is

(IWEOF deb name

where dcb name specifies the name of the DCB associated
with the tape on which the end-of-file is to be written.

RESET,value
specifies which pseudo sense switches
are to be reset. The "value" may be from 1 to 6,
and more than one va lue may be spec ified. If
ALL is specified, all pseudo sense switches wi II
be reset.
If a confl ict exists between the SET and RESET options, the
last setting specified in the command will apply, since
the monitor processes the options in sequence (i.e., left
to right).
Three library routines (L:TSS, L:SSS and L:RSS) are also
provided to allow processors and user programs to set, reset,
and test specified pseudo sense switches. The entire sense
switch simulation is based on the use of a pseudo sense
switch register contained in a Task Control Block (TCB)
established and maintained by the monitor. The first
two words of the TCB comprise a Stack Pointer Doubleword (SPD), and the subsequent words contain additional
information used by the monitor to control the current task.
When the mon itor transfers contro I to a user's program (or
a processor), it places the word address of the TCB in
general register O.

When a user's program calls any of the sense switch library
routines, general register 0 must contain the word address
of the TCB. General register 6 is used for passing the number of the specified sense switch. The link register is
general register 11, and general registers 6-10 are volatile
(not preserved by the I ibrary routine).
The linkage
BAL,l1

SWITCH

Any of six pseudo sense switches may be set
or reset by means of the SWITCH control command.

L:TSS

causes the sense switch specified in general register 6 to be
tested. If the switch is set, the condition codes are all set
(to 1); otherwise, the condition codes are reset (to 0).

The form of the SWITCH control command is
The linkage
ISWITCH [(SET,value[,value] ••• ):~

L_ [,(RESET,va lue [,value1· .. )J
where
SET ,va lue
specifies which pseudo sense switches are
to be set. The "value" may be from 1 to 6, and
more than one value may be specified. If ALL is
specified, all pseudo sense switches will be set.

BAL,11

L:SSS

causes the sense switch specified in general register 6 to be
set. If the number of the specified switch is not within the
range 1-6, the routine will ignore the request.
The linkage
BAL,l1

L:RSS

causes the sense switch specified in general register 6 to be
reset. If the number of the specified switch is not within
the range 1-6, the routine will ignore the request.

Utility Control Commands

,z.

55

4. SYSTEM PROCEDURES
INTRODUCTION'
Monitor procedures enable the userls symbolic Meta-Symbol
program to request a variety of monitor functions. When
a procedure call is encountered during the processing of a
program, the processor responds by retrieving a symbolic
calling sequence from the procedure library, modifying it
according to the parameters specified in the procedure
call, and inserting the modified symbolic code into the
user IS source program (to be translated into object code
during a subsequent processing phase).

Example:
SYSTEM BPM
M:OPEN F:ANS, IN

Generate OPE N CA Land
OPEN FPT.

The execute form results in only executable code generated
during procedure expansion with the argument field interpreted as the FPT address.
Example:

At execution time, the calling sequence calls an appropriate monitor routine that, in turn, performs the desired
function. In this manual, the monitor routine called at
execution time, as the end result of a procedure call
having a command mnemonic of the form M:XYZ, is referred to as monitor routine XYZ.

M:OPEN, E OPENFPT

Generate OPEN CAL using
OPENFPT.

The list form results in only FPT generation during procedure expansion.
Example:

When using Meta-Symbol, the monitor procedure library
is invoked via the directive
SYSTEM BPM
This directive defines all of the monitor procedures. The
Sigma computer instruction set is inv >ked by the directive
SYSTEM SIG7[F][D] [pl
where F specifies the floating point option, D specifies
the decimal oFtion, and P specifies privileged instructions.
The Xerox 560 arid Sigma 9 computer instruction sets are
invoked by the directive

OPENFPT M:OPEN, L F:ANS, IN

Generate
OPENFPT.

Often it is desirable to be able to symbolically reference
the parameter list associated with a particular procedure.
The second element of the label field list is used for this
purpose.
For example, assume the user wanted to use the label RD
to identify the address of the CAL generated for the read
function on the C device, and also wanted to use the label
RDFPT to identify the address of the Function Parameter
Table (FPT) for the same function. He could do so by means
of the following Meta-Symbol procedure reference in his
program:
Label

Command

Argument

RD, RDFPT

M:READ

M:C, (BUF, ALPHA)

WR

M:WRITE

arglst

,OPNFPT

M:OPEN

arglst

-j

SYSTEM SIG9[P]
Examples:
where P specifies the privileged instruction set.
Thus, both the SYSTEM BPM and the SYSTEM SIG directives should be used. When the SYSTEM BPM directive is
processed, two control sections are declared for use in
generating function parameter lists for monitor procedures
subsequently used. Normally, FPTs are generated in unprotected storage (protection type 0). The M:PT procedure
allows the user to generate FPTs in either unprotected storage (protection type 0) or protected storage (prot!ection
type 1).
BPM procedures are of three forms: standard, list, and
execute. The standard form results in both executable code
and FPT generation during procedure expansion with FPTs
being placed in an internal CSECT exclusive to System
BPM.

56
."'

System Procedures

. In the first example, above, the label WR identifies the
address of the CAL generated for the write function specified by the argument list (represented here by lIarglstll).
In the second example, the label OPNFPT identifies the
address of the first word of the FPT generated for the OPEN
function specified by the argument list (the associated CAL,
in this example, is not given a label; hence, the comma
preceding OPNFPT).
Because code generated for system procedures is placed in
a different control section than the userls program, the $
symbol should not be used in procedure calls to represent the IIpresent location II.

The format conventions used by ~h. procedure calls is of
the lOme form as previously defined for control commands
(M. Chapter 3). In addition, an alt.risk (*) is used in proc ...... calls to denote indirect addr.ssing (* address) or to
.hew that the indirect addressing technique can be used
wh.. a variable (* value or * limit) is the address of a
location containing the variable .. The terms SR1, SR2, and
SR3 are used to refer to system regi sters 1, 2, and 3 (wh i ch
are more commonly knownasgeneral registers 8, 9, and 10).
Each procedure call described in this chapter shows the
Function Parameter Table (FPT) it generates. In the formats
given, an asterisk in bit one of a word indicates that indirect addressing may be used. (Indirect addressing will be
used if the bit is sc~t to one.)

GENERAL-PURPOSE PROCEDURES
! SET FPT PROTECmoN TYPE

M:PT
Normally, FPTs are generated in unprotected
storage (protection type 0). The M:PT procedure allows
the user to generClte FPTs in either unprotected storage
(protection type 0) or protected storage (protection type 1).
The procedure has the form

llabellJ[,[Iabel2J['label3JJ

M:PT

type

where
label
is set to the current val ue of the location
counter ($).

and M:READ are protected (type 1) and the FPT generated
by M:CLOSE, along with all FPTs generated until the next
M:PT, is unprotected (type 0).
The M:PT procedure does not generate an FPT or any executable code.
Caution: Through the use of the Meta-Symbol USECT direc- - - tive together with the label field of the M:PT
procedure, the user can direct generation of code
into the control section intended for the exclusive
use of the BPM system procedures. Thiscan lead to
unpredictable results and is therefore discouraged.

LOAD OVERLAY SEGMEIT
M:SEGLD
The monitor routine SEGlD causes a specified overlay segment to be loaded into core storage. If
an I/O error occurs in executing the SEGlD routine, or if
the specified segment is not founa, the job is aborted. The
routine brings in both the data and procedure segments,
unless they are already resident in core.

I

The M:SEGLD procedure ca II has the form
M:SEGLD
where

I

[*Jaddress
'segment name'

oddress
specifies the oddress of the first word of a
byte string containing the name (in TEXTC format)
of the overlay segment to be loaded.
'segment name'
specifies the name of the overlay
segment to be loaded.
Calls generated by the M:SEGLD procedure have the form

label2
is set to the address of the beginning of the
protection type 0 (unprotected) control section
used for generating SYSTEM BPM FPTs.
label3
is set to the address of the beginning of the
protection type 1 (protected) control section used
for generclting SYSTEM BPM FPTs.
type

sets the new protection type (0 or 1) to be
used when generating SYSTEM BPM FPTs in all
subsequent procedure reference lines unti I the
next M:PT is encountered.

CALl,8

fpt

where fpt points to word 0 of the FPT shown below.
word 0

Caution: If bit 8 is not set, control returns to the word following the FPT, rather than the word following
the CAL.
word 1

Example

SYSTEM
, PTO, PT1 M:PT
DEF
M:OPEN
M:READ
M:PT
M:CLOSE

BPM
1
PTO, PI1
M:EI
M:EI, (BUF, X)

o

M:EI

in this example PTO is the address of the beginning of the
unprotected control section and PT 1 is the address of the
beginning of the protected control section used for generating SYSTEM BPM FPTs. The FPTs generated by M:OPEN

90 17 64H-l(9;78)

If 'segment name' is specified in the procedure call, the
following words are also generated as partof the FPT. They
contain the segment name in TEXTC format. The address in
word 1 points to word 2 in this case.
word 2

word n

Genera 1-Purpose Procedures

57

LINK TO A LOAD MODULE

The M :LIN K proced ure ca II has the form
M:LlNK

M:LlNK
The monitor LINK routine causes the calling
load module's core information (i. e., program and data,
except common dynamic data) to be saved in disk storage.
The calling module's core area is made avai lable to the
called module. The called module is then loaded into
core storage (overlaying the calling program) and control
is transferred to it. If there is no transfer address assoc iated with the called module, the job is aborted. The
user's temporary and permanent load module I ibraries are
searched for the specified load module. If it is not found
or an I/o error occurs in executing the LIN K routine, the
job is aborted. A return to the calling module may be
effected in one of two ways:

1.

The called module may return explicitly by making use
of the monitor's M:LDTRC procedure.

2.

The EXIT or ERROR options may be used in M:LlN K by
the calling program, causing the called module to return impl icitly when it exits, errors, or aborts.

4.

If exit control has been established in the calling program, the issuing of an M:LlN K procedure will cause
control to be passed to the effective exit control routine
(see M:XCON). Specifying EXIT or ERROR on the M:LlNK
procedure has no effect on either the exit control that'
may have" been established in the calling program or
any exit control that may be establ ished by the called
program.

58

General-Purpose Procedures

~(~~~~R)J

'name'
specifies the name of the load module to
which control is to be transferred. The name is
limited to 11 characters not including the quotes.
'account'
specifies the account from which the
load module is to be obtained.
'password'
specifies the password associated with
the load module.

I

CMD, [[*}addr}
is the address of a TEXTC string to be
passed (via J:CCBUF, the control command buffer
contained in the JIT) to the called program. When
in the on-line mode, the text string begins in
I
byte zero of J :CCBUF and has a carriage return
character (X'OD') appended to it. The character
count of the resu Iting string is passed in JB:CCARS.
In the batch mode, byte zero of J:CCBUF is a
blank (X'40'), the string begins in byte one, and
the remainder of J:CCBUF is blank filled. Text
strings are limited to 79 characters. If longer
strings are given, they are truncated to 79 characters. If CMD is specified but addr is not specified, then 'name' is placed in J:CCBUF following
the above conventions. If CMD is not specified,
J:CCBUF is not altered.

The monitor-ossigned file name of the calling program is
contained in SR 1, allowing the called module to return to
the calling location + 1 (via M:LDTRC, returning control
to the overlaid program). If a program is entered via a
RUN command, however, SR 1 is set to zero. (Remember
that SR1 is system register 1, or general register 8.)

Pages obtained by M:GVP must have been freed before an
M:LlNK or M:LDTRC is issued or an error will result.
Pages released from the user's assembled data area must
have been restored before ,an M:LlNK or M:LDTRC is issued or an error will result. That is, the virtual memory
area that includes assembled data, program, and dynamic
data must be continuous. Note that when DELTA has not
been associated by "START .•• UNDER", the pages required
for DELTA's symbols are acquired via M:GVP and must be
released by ;k under DELTA.

(CMD. [ [*Jadd,] J]

where

Any communication between the calling and called load
modules must be accomplished through the general registers
or common dynamic storage.

Programs to be linked to or transferred to must have been
loaded by Load or LYNX, but not by Link. M:LlN K cannot
be used to link to a command processor.

'name'[,[,account'][, 'password']]--,

EXIT

specifies that return should be made to the
calling program following the M:LlNK CAL when
the linked-to program exits normally.

ERROR
specifies that return should be made if the
linked-to program errors or aborts (via M:ERR or
M:XXX). ERROR also implies EXIT.
Calls generated by the M:LlN K procedure have the form
CAll, 8

fpt

where fpt points to word 0 of the FPT shown below.
word 0

word

word n

90 17 64H-l (9/18)

word n + 1

Any communication from the calling module to the called
module must be accomplished through the general registers
or common dynamic storage.
Programs to be linked to, or transferred to, must have been
loaded by Load or LYNX, but not by Link .

word n +2

.,:.

,

word n +3
first word of password (password is in TEXT format)
10 11112 13 14 1311& 1

word n +4

I, ,,

,I • • • ,:,

word n +5

Pages obtained by M:GVP must have been freed before an
M:LINK or M:LDTRC is issued or an error will result.
Pages released from the user's assembled data area must
have been restored before an M:LlN K or M:LDTRC is issued
or an error will result. That is, the virtual memory area
that includes assembled data, program, and dynamic data
must be continuous. Note that when DELTA has not been
associated by "START .•• UNDER", the pages required for
DELTA's symbols are acquired via M:GVP and must be
released by ik under DELTA.
If exit control has been established in the calling program,
the issui ng of an M:LDTRC procedure wi II cause control
to be passed to the effective exit control routine (see
M:XCON).

1:1",1"":,,

No special shared processors other than publ ic libraries
may be associated with the programatthe timean M:LDTRC
is issued.

where

S

is set if CMD was specified and the command
string address was NOT specified.

E

is set if ERROR was specified.

Shared processors may use M:LDTRC; however, special
shared processors may not use M:LDTRC. M:LDTRC may
also be used to initiate the processing of a TEL or CCI
command (~XEQ) file. No special options need be specified
on the M:LDTRC procedure call. If the following conditions are met, the system will terminate the current
program and simulate an '.XEQ command:

x

is set if EXIT was specHied.

1.

C

is set if CMD was specified.

The file specified in the M:LDTRC procedure call must
be either unkeyed (consecutive) or Edit keyed
(KEYM = 3).

A

is set if the account wen specified.

2.

The program issuing the M:LDTRC must not have been
loaded by an M:LlNK, either directly or indirectly.

P

is set if the password was specified.

3.

Command fi Ie processing must not be in effect at the
time of the M:LDTRC.

This feature may be disallowed by the installation manager,

LOAD J'ND TRANSFER CONTROL
M:LDTRC
The monitor routine l.DTRC loads a specified
load module (either one that had been partially executed
and then saved as the result of an M:LINK procedure call,
or else a "new" one), releases the core area used by the
calling module, and transfers control to the starting address of the called module. If the called module was a
previously saved program, it will be entered at a point
immediately following the original M:LINK call, provided
that the monitor-assigned file name of the previously
saved program (communicated to the user via SR 1) was
stored into word 1 of the FPT assodated with the M:LDTRC
call prior to executing the M:LDTRC call.
The user's temporary and permanent load module libraries
are searched for the specified load module. If it is not
found or an I/O error occurs in executing the LDTRC routine, the job is aborted.
90 17 64H-1 (9/78)

The M:LDTRC procedure call has the form
M:LDTRC

'name'[, ['account'] ,'password']

where
'name'
specifies the name of the load module or
command file to which control is to be transferred. The name is limited to 11 characters
not including quotes.
'account'
specifies the account from which the
load module is to be obtained.
•password ,
specifies the password associated with
the load module.
Calls gen'erated by the M:LDTRC procedure have the form
CAL 1,8

fpt
General-Purpose Procedures

59

where fpt points to word 0 of the FPT shown below.

minute, and number of 2-millisecond units since
lost thousandth of a minute, and SR3 wi" contain
thousandths of a minute since lost minute, as:

word 0
SRI

I, ,,,I. , .Y~r,
where A, P, and the subsequent words of the FPT are of the
some form as shown previously for M: LIN K.

GIVE nME AID DATE

" .. I" " ..

,,I. ". "I"" ,,~~;."" "I" ~. J

SR2
...-------II--------t-------I-------,

SR3

M:TIME
The monitor TIME routine gives the time of
day and the current dote.
The M: TIME procedure co" has the form

where

M: TIME [*:.1address[,TMS]
where
address
specifies the address of a four-word block
where the time and dote are to be stored. The
four-word block where the time and the dote are
to be stored cannot lie within registers. (I/O
buffers cannot lie within general registers and
space for the time and the dote is considered on
I/O buffer.) The (EBCDIC) byte format of this
block is shown below.

is the Jul ion day of year represented
in binary; for example, September 14 is
represented as X ' l0 1'.

1>

is the hour of day (0-23).

Min

is the minute of hour (0-59).

Sec

is the second of minute (0-59).
isthenumberoftwo millisecond units
since the lost 1/1000 of a minute (0-29).

m

1/1000 min
is the thousandths of minute
since last minute. This is suppl ied
because the monitor records time in
1/1000 minutes as the smallest increment
in job accounting.

word 1
m

o

word 2

Call s generated by the M: TIME procedure have the form
-t;

n

Day

TMS
h

m

is a binary value, for example, 1970
is represented as X'46 1 •

Hour

word 0
h

Year

d

d

CAll, 8

word 3

fpt

where fpt points to word 0 of the FPT shown below.
y

y

word 0

where

TMS

60

hh

is the hour (00:s hh:s 23).

mm

is the minute (00:s mm ~ 59).

mon

is the month (standard 3-letter abbr. ).

dd

is the day (01 :s dd

yy

is the year (00 s yy S 99).

s

TYPE A MESSAGE

31).

indicates that the dote and time (including
resolution down to basic timer units) are to be retiJrned in binary. If TMS is specified, SRI wi"
contain the year and Julian days, SR2 will contain the hour of day, minute of hour, second of

Genera 1- Purpose Procedures

If TMS is specified, bit 8 is set to 1

M:TYPE
}
tM:MESSAGE

The monitor TYPE and MESSAGE routines
output a specified message to the operator, on the operator's console typewriter. In botch operations, the two routines are equivalent.
The M:TYPE and M:MESSAGE procedure calls hove the
form
90 17 64H-I (9/78)

M:TYPE
}
{M:MESSAGE

SIZE, value
specifies the maximum number of
alphanumeric characters to be accepted from the
operator's key-in and stored. If SIZE is not
specified, c size of 60 characters is assumed.

(MESS, [*] 0) but none used in the current call (number of significant
words = 0). Such an entry will cause the number of significant words in the corresponding DCB entry to be set to zero.
An entry number of zero can be used to cause an entry to
be ignored.

THE EFFECT OF ASSIGN OPTIONS ON THE ADJUST
DCB FPT
'Because of the similarity of this CAL to M:OPEN and
M :DEVICE, and because the user must generate the FPT
without a system PROC, the following three lists show all

options allowed, and the effect of each option on the
Adjust DCB FPT. Options are grouped by the part of the
FPT they affect, and are given in the form used in M:OPEN
and M:DEVICE CAL. Names of the FPT items set are those
given in Figures 7 and 8.

1.

Basic FPT Options
Option

FPT Items Set

ABCERR

Word 0, Bit 11 = 1

RECL,value

P4=1; MAX RECORD LENGTH
= vafue

Option

FPT Items Set

SPARE, value

P18=1; percent of spare space=value

CONCAT, value

P1B=1; number of concatenated
fi les=va lue

RESTORE, value

P20=1; RESTORE=value

LRECL, value

P20=1; LRECL=value

DEN,

BLKl,value

P4=1; BLOCK SIZE = value

TRIES,value

P5=1; MAX, RECOV TRIES = value

CONSEC

P6=1; ORG = 1

KEYED

P6=1; ORG = 2

RANDOM

P6=1; ORG = 3

FORMAT,
character

P6=1; FORMAT = value

SEaUEN

P7=1; ACC = 1

DIRECT

P7=1; ACC = 2

IN~SHAREJ
,EXCl

P8=1. MODE = 1 [;P=I; S = IJ

OUT

PB=l; MODE = 2

2.

e:~}

INOUT~SHARE]
P8=I·
, EXCl'

;P=l; S = 0

MODE =4

t

P
=I; S = 11

;P=l; S = 0

OUTIN

PB=l; MODE = B

REl

Pl0=1; REL/SAVE = 1

SAVE

Pl0=1; REl/SAVE = 2

FPARAM

Pll=l; address of buffer for file
pa rame ters

TLABEl

P12=1; addr,ess of tape label buffer

KEYM, value

P13=1; MAX KEY lENGTH
=va I 'lie (1-31)

P22= 1; CSF=O

ASCII

P22= 1i CSF= 1

NXTF

F2=1

Variable Parameter Options
Option

FPT Items Set

FilE,

V=l; ASN=l

name

create entry 01; subentry=name

[,account]

create entry 02; subentry=account

Pl4=l; OP-l.ABEL=X; Fl1=1;
F12=:1

[, L]

see Fi gure 8 for L

BTD, value

P15=1; BTD=:value

VOL, value

P16=1; VOlUME=value

N EWX, sl ides

P17=1; SLIDES=value

[, consecutive
slides]

consecutive slides=value

V=l; ASN=2

name

create entry 01; subentry=name

~account]

create entry 02;
subentry=account

PASS, password

V=l; create entry 03;
subentry=password

READ,

V=l;

account ,·· •
1
WRITE
account 1,·· •
INSN,

DEVICE, X

DSF={~}

EBCDIC

lABEL

'

P21=1;

create entry 05 for each account;
n
subentry =account
n
n
V=l;
create entry 06 for each account;
subentry =account
n
n
n
V=l;

seria I no. 1' •.. create entry 07 for each serial no ;
n
subentry =serial
n
n
OUTSN,

V=l;

seria I no 1' ..• create entry OB for each serial no ;
subentry =serial no
n
n
n
EXECUTE,
account 1' ••.

UNDER,
account

V=l;
create entry 14 for each account;
n
subentry =account
n
n
V=l;
create entry 15;
subentry=processor or load module
name

Other CP-V Service Calls

83

3.

SPECIFY LOGICAL DEVICE I/O STREAMS

Device Oriented FPT Options
Option

FPT Items Set

TAB,value1'...

D=1; Q1=1; for each value n ,
TABn =value n (16 max.)

SEQ

see below

[, id]

D=1; Q2=1; SEQUENCE ID=id

DATA ,value

D=1; Q3=1; DATA TAB=value

COUNT ,value

D=I; Q4=1; COUNT=value

HEADER,

D=I, Q5=1

value,

HEADER TAB=value

(*]address

HEADER ADDRESS = [*]address

LINES,
value
SPACE,
value

D=l; Q6=1;
LINES PER PAGE=value
D=I; Q7=1;
SPACE=value

DRC

D=I; Q8=1; PDRC =1; DRC =1

NODRC

D=I; Q8=1; PDRC=I; DRC=O

BIN

D=l; Q8=1; PBIN=I; BIN=1

BCD

D=I; Q8=1; PBIN=I; BIN=O

PACK

D=I; Q8=1; PPACK=I; PACK=1

UNPACK

D=l; Q8=1; PPACK=I; PACK=O

SEQ

D=I; Q8=1; PSEQ=I; SEQ=1

M:LDEV
The monitor LDEV routine attaches a logical
device stream to a physical device and defines attributes of
the logi·cal device stream. LDEV stores the information in a
cooperative context block, providing for central ized information about the physical device even though I/O to that
device may arise through more than one DCB within a job.
A logical device stream is an information stream that may be
attached to any symbiont device that the user specifies.
(Symbiont devices include devices such as the line printer,
card reader, card punch, plotter, and all devices at remote
sites that are accessed via remote processing.) At SYSGEN,
up to 15 logical device streams may be defined. Each is
given a name (e. g., C 1, L1, PJ), each is assigned to a physical device, and attributes are defined for the physical device. The user may perform I/O through a logical device
stream with the default physical device and attributes or he
may change the physical device and/or attributes to satisfy
the requirements of his job. He makes any necessary changes
through use of the LDEV command or the M: LDEV procedure.
The M: LDEV procedure call has the form
M: LDEV 'stream-id'[, (option)].
where
stream-id
specifies the two-character name of the
stream to be referenced. This must be the name of
one of the logical device streams defined during
SYSGEN (for example, Cl, Ll, Pl).
options
specify the attributes of the device, such as
device type, stream direction, form, format control, etc. The options are as described below;
they may appear in any order.
Options

[, id]

see above

NOSEQ

D=I; Q8=1; PSEQ=I; SEQ=O

FBCD

D=I; Q8=1; PFBCD=I; FBCD=1

NOFBCD

D=1.; Q8=1; PFBCD=I; FBCD=O

VFC

D= 1; Q8=1; PVFC =1; VFC =1

NOVFC

D=I; Q8=1; PVFC=I; VFC=O

L

D=I; Q8=1; PL=l; L=1

NOL

D=I; Q8=1; PL=I; L=O

DEVICE,X

see Figure 7 for OP-LABEL
D=I; Q8=1; PL=J; L=l

Also see Table 11, this chapter, for storage of some
of the Adjust DeB options.

84

Other CP-V Service Call s

I.

AINIT
specifies thatthe attributes for the stream are
to be initialized with the attributes specified in this
M: LDEV procedure and that system defaults are to
be supplied wherever an attribute is not specified.
Any attributes specified for the· stream in a previous
M: LDEV procedure are to be ignored. AINIT is the
default for the AINIT, ASAVE, and AREL options.
AREL
specifies that the system table containing the
attributes of this stream (which may have been set
as the result of previous M: LDEV procedures) is to
be released and that the attributes are not to be
reinitialized. Any other options specified (except
DELETE) in this procedure will be ignored.
ASAVE
specifies that the attributes for the stream
are to be set only by options explicitly specified
in this M:LDEV procedure. Other M:LDEVspecifiable attributes (which may have been set as
the result ofprevious M:LDEV procedures) are not
to be changed. ASA VE cannot be used for the
LABEL option. DEV and WSN are subject to restrictions noted in the Remote Processing Reference
Manual, 90 30 26.
90 17 64H-l (9/78)

COPIES,value
specifies the number of times the
file is to be processed to produce multiple copies.
The value spedfied can be em integer from 1 to
255 inclusive. The default value is 1.
COUNT ,tab
specifies that page counting is to be
done and specifies the column in which the most
significant digit of the page count is to be listed.
The value of "tab" must be appropriate for the
particular device. (Note that if COUNT is specified for the LO device and a TITLE control command is also specified, the page count wi II be
superimposed on the title line. ) The default is no
page counting.
DELETE
specifies that if output, currently exists for
this stream but has not yet been dispatched for
processing, it is to be deleted. (If such a stream
exists and DELETE is not specified, the output for
the stream is dispatched for processing. ) If an input stream with the same name currently exists,
any part of the stream that has not been read will
automatically be deleted whether or not DELETE
is specified.
DEV, 'type l
specifies the device type, where type
is the two-character mnemoniic of the device to
be associated with the stream . Valid mnemonics
are type mnemonics of the cfmtral site (that is,
mnemoni cs defined for symbiont devices during
SYSGEN - for example, CR, LP).
JRC

requests that monitor logical record formatting
implied by the DEV option not be performed. Any
record formatting necessary wWI be suppl ied by the
user. If DRC is not specified l the monitor will
perf~m logical record formatting.

FFORM, 'name l
specifies the future form name (as
below, with FORM) of the form to be used when
the form change procedure M:DEVICE(FORM/
FNAME) is specified in the program for the stream.
When M:DEVICE(FORM/FNAME) is encountered,
the stream will be dispatched for processing and
restarted with tht: designated name as the stream
form. The defaul t is none.
FORM,lnamel
specifies the one- to four-character
name of an installation-determined paper form or
card stock and is used in outpult scheduling for the
device. The def(lult is to have no special scheduling (i. e., the operator will determine which form
to use). If used on input, name specifies the oneto four-character name of a noncontrol input file.
(See "Noncontrol Input Files" below.)
FPC, 'name I
specifies the one- to four-character
name of an installation-determoned form overlay
and is used in output schedul ing for the Xerox 1200
or a similar device. The defaul t is to have no
special schedul ing (i. e. I the operator wi II determine which oveday to use if any).

90 17 604H-l (9/78)

IN and OUT
specifies the direction of the stream.
The defaul t is OUT.

JDE, value
specifies the job descriptor entry to be
used in output schedul ing for the device. The
val ue must be in the range 0-89 and specifies an
installation defined procedure describing printer
setup attributes (e. g., VFC tape).
LABEL, [*Jaddress
specifies the address of a 'TEXTC
string to be appended to the stream's useridentification banner lines (see "user-identification
banner" in glossary).
specifies the number of printable lines
LINES, value
per logical page. The greatest value that may be
specified is 255 lines per page. If this option is not
specified the value established at SYSGEN time
will apply.
NOBANNER
specifier that no user-identification
banner is to be associated with output for this
stream. A FORM name must a Iso be speci fi ed for
NOBANNER to be operative.
NOVFC
OUT

see VFC below.
see IN above.

SEQ, ['id']
specifies that punched output is to have
decimal sequencing in columns 77-80. If a userdefined id is specified, it will be punched in columns 73-76 of each careL Sequencing begins
with 0000.
specifies the spacing between
SPACE, value[, top]
lines (value) and between the top of each page and
the first line printered (top). A value of 0 or 1 results in single spacing. The greatest value that
may be specified is 15. The default is single
spacing.
VFC and NOVFC
specifies whether or not vertical
format control characters are to be used. (These
two options are legal only for line printers.) VFC
requests that a defaul t vertical format control
character be added to all records. NOVFC requests that the format character be stripped from
the record if present. The default is VFC.
places the symbiont output stream in
CONCURR
concurrent output mode, a mode in which output
is broken into groups ("chunks") and released to
the symbiont stream for output. Once this stream
has been selected by the symbiont for printing or
punching, then the particular device is held until
all output produced by the job has been processed,
except as otherwise directed by an operator
Other CP-V Service Calls

85

key-in. If CONCURR is not the only option specified, then already prepared output will be packaged for printing in its entirety and a newly
bonnered stream will be created for subsequent
output. The COPIES option may not be specified
when CONCURR is specified.

option IN/OUT (P4)

option LINES (P5)

NONCONTROL INPUT FILES
There are two types of symbiont input: that which is a iob
control stream and that which is not. Card readers are
usually defined to be control-type devices and are used to
input iob control streams. However, noncontrol input
streams may be entered from the card reader if the first card
of the input deck is
--

(

option COUNT (P6)

option SPACE (P7)

INeTL [nome]

where name specifies the one- to four-character name
of the noncontrol input stream.

option JOE (P8)

In this case, the input deck is read until a IFIN is encountered. If any lob control cards exist in the deck, they
are treated as noncontrol information. That is, the entire
deck is simply read into the input symbiont. This feature
provides, among other things, a means of inputting iobs
that are to be run at a later time.

option COPIES (P9)

,A file created in this manner must be accessed via the LDEV
'command or M:LDEV procedure using any logical device
stream except C1. If the user gives the file a name or requests the operator to do so, the user can access the file
using the FORM, xxxx option. (The operator gives the file
a name using the key-in Syyndd, F'xxxx' where xxxx must
be identical to xxxx on the FORM option.) If the file is not
given a name by the operator, the next noncontrol file in
the queue that has no name will be returned to the user.

Calls generated by the M:LDEV procedure have the form
CALl,8

option SEQ (Pl0)

option FPC (P11)

option FORM (P12)

fpt

where fpt poi nts to word 0 of the FPT shown below.
word 0

option FFORM (P13)

word 1

option

stream-id (P1)

option SPACE (P19) suboption top

{~~VFC} (Pl7)

option DEV (P2)

86

Other CP-V Service Calls

90 17 64H-1(9/78)

where
P1 through P?O (in word 1)
specify wh.ich of. the
succeedllllg words are present; that IS, which
of certain options have !been specified (1 means
the word is present, 0 means the word is not
present). For example, a 1 in bit 11 of word 1
indicates that the word for the FORM option (see
word P12) is present.
fO through f7 (in word 1)
specify whether the
DELETE, AREL, ASAVE r and DRC options are
present (0 means the option is not present,
1 meons it is):

record location assigned to each user by the log-on procedure that places the disk storage address of the assign/
merge record in JIT.
.
Special procedures are used to read (M:RAMR) and write
(M:WAMR) this record. Use of M:RAMR and M:WAMR is
governed by the following rules:
1.

Any program may read on assign/merge record.

2.

Only command processon and processon with JIT
access may write on assign/merge record.

3.

The buffer size should be 2048 bytes.

fO

is for the NOBANNER option.

4.

The DCB must be closed and at least 8 words long.

f1

is for the DELETE option.

5.

f2

is for the AREL option.

Error codes are set to report to the address set in the
DCB, os described in Appendix B. Erron in the call
may be os follows:

f3

is for the ASAVE option.

Code

f4

is for the CONCURR option.

X'06'

f"]

is for the ORe option.

For example, a 1 in bit
DRC option.

m of word

X'57'
X'2E'

1 specifies the

Code
X'4A'

fcn (in word P4)
specifie~1 the directionof the stream
(0 means RN, 1 means OUT).
specifie:s vertical format control
fc (in word P1?)
override (0 means VFC, 1 means NOVFC).
If an inconsistency is detected in ~he FPT parameter, return
is mode to CAL +1 with CC 1 set and the error code in SR3
(see Appendix B, Table B-5). Otherwise CC 1 is reset.
Table 11 I ists most of the service functions (i. e., options)
that apply to logiccel device streams and indicates, for each
requesting method, the place where the function information
is stored - Data Control Block (DCB) or Stream Context
Block (SCB). Null table entries indicate that the particular
service option is not allowed for ~hat request method. If
the table entry specifies DC B, then presence or absence of
the request is stored in the DCBand only operations through
that DCB receive the service. If the table entry specifies
SCB, then the presence or obsence of the request is stored
in the SCB and will affect all operations on that stream
through any DCB. The importance of Table 11 lies in the
fact that when I/O is performed fc)r a logical device stream
and the DCB conflicts with the SCS, the DCB takes precedence. Also, when conflicting options are specified for
the same DC B or for the same SC B, the last one encountered
during execution is used.

READ AND WRITE ASSIGN/MERGE RECORD
Throughout a job or on-line session, I/o service and file
assignment information is retained and merged into user or
processor DCBs at each job step. This information is maintained in an assign/merge record cm disk storage, with one

90 17 64H-l (9/78)

Meaning
No record exists (read operation).
No granule can be obtained (write
operation).
The DCB is open.

6.

Meaning
The buffer address is outside the user's data
area or the size is greater than 2048 bytes.
X'14'
A write has bee'; attempted by a processorthat
is not a command processor or doesn't have
special JIT access.
If a read or wri te error was encountered when accessing the assign/merge record, the user is aborted and
logged off the system with the following error code.
Code
Meaning
X'A9'

Error on read or write of assign/merge record.

The M:RAMR and M:WAMR procedures are described in the
following paragraphs.

M:RAMR
The RAMR routine reads the assign/merge
record and has the following format:
M:RAMR
[*] DCB name [, (option)] •••
The options are as follows:
BUF,

SIZE,

[*] address

specifies the address of the user's
buffer into which the record is to be read. An
asteri sk may be used to i ndi cote that the address
is the address of a location containing the buffer
address.

[*] value

spedfies the size in bytes of the
user's buffer. The buffer should be 2048 bytes.
An asterisk may be used to indicate that the value
is the address of a location containing the buffer
size.

Calls generated by the M:RAMR procedure have the form
CALl,,1
fpt
where fpt points to word 0 of the FPT shown below.

Other CP-V Service Calls

87

Table 11. Storage of Service Functions
Request Method
Servic~

88

Function

M:DEVICE

Adjust DCB

M:DCB

ASSIGN

M:lDEV

lDEV

BCD

DCB

DCB

DCB

DCB

-

-

BIN

DCB

DCB

DCB

DeB

-

-

COPIES

-

-

-

-

SCB

SCB

COUNT

DCB

DCB

DCB

DeB

SCB

SCB

DATA

DCB

DCB

DCB

DCB

-

-

DEVor DEVICE

-

Both

Both

Both

Both

Both

DRC

DCB

DCB

DCB

-

SCB

SCB

FBCD

DCB

DCB

DCB

DCB

-

-

FFORM

-

-

-

SCB

SCB

FORM

SCB

-

-

-

SCB

SCB

FPC

-

-

-

-

SCB.

SCB

HEADER

SCB

SCB

SCB

-

-

-

IN

Both

Both

Both

Both

Both

JOE

-

-

-

-

SCB

SCB

LINES

SCB

SCB

SCB

SCB

SCB

SCB

NLINES

SCB

-

-

-

-

-

NODRC

DCB

DCB

DCB

-

SCB

SCB

NOFBCD

DCB

DCB

DCB

DCB

-

-

NOVFC

DCB

DCB

DCB

DCB

SCB

SCB

OUT

-

Both

Both

Both

Both

Both

PAGE

DCB

-

-

-

-

-

SEa

DCB

DCB

DCB

DCB

SCB

SCB

SPACE

DCB

DCB

DCB

DCB

SCB

SCB

SRCB

-

-

-

-

-

SCB

TAB

DeB

DCB

DCB

-

-

-

VFC

DCB

DCB

DCB

DCB

SCB

SCB

WSN

-

-

-

-

-

SCB

Other CP-V Service Calls

word 0

RELEASE RESOURCE CAL

word

- - - ':

. '

10 11112 13 14 11116 17 Ifl 1912<' :1 22

n124

oJ
25 26

1'128

There is one CA L that is used to release job resources back
to the operating system under program control. It may be
used, for example, to release tape drives used in the first
job step of a stream, but not required for the rest of the
job. Its format is

29 )031

CAll, 8

word 2

fpt

where fpt points to the FPT shown below

LX
o ;

&.lifer :Size
M:WAMR
The WAMR routine~ writes the assign/merge
record and has the following format:
[*] DCB name L (option)] •.•
M:WAMR
The options are as follows:
BUF,

[*]

address
speci fi es the' address of the user's
buffer into wh i ch the record is to be read. An
asterisk may be used to indi,cate that the address
is the address of a location containing the buffer
address.
SIZE, [*] value
specifies the size in bytes of the
user's buffer. The buffer sh()uld be 2048 bytes.
An asterisk may be used to indicate that the value
is the address of a location ,:ontaining the buffer
size.

2

l

15

1

)c-t-1-:-4"""'5--:-6~""""""-:-::-""",.

where
resource #
is the resource type index and may be
obtained from the type field in the DCB (right
seven bits of byte 2 of word 1). (See Appendix A.)
text resource name
isthe name of the resource being
rei eased. The I,ame corresponds to the name
specified on the LIMIT card (for example, 9T, DP).
In addition, the user must specify in SR 1 the number of resources to be re leased.
The following error conditions are possible:

CC1::: 1

If resources released exceed amount originally allocated or remaining allocated
(none are released).

CC2 = 1

If an odd number of core pages is specified
for release, and no pages are released.

=1

If an index is outside the range of the
Resource Allocation Table.

Calls generated by the M:WAMR procedure have the form
CAL 1, 1

fpt

where fpt points to word 0 of the FPT shown for M:RAMR
with the exception that the code in the first byte of word 0
is X'2E' instead of X'2D'.

CC3

REPORT SYSTEM LOAD PARAMETERS
M:DISPLAY
The DISPLAY routine returns the current
va lues of three system load paramElters. The three system
load parameters are

1.

The execution time mul tipl ication factor (ETMF).

2.

The median value of terminal Iresponse time in seconds.

3.

The current number of active users.

Integer values for these parameter's are returned in registers 5, 6, and 7, respectively. ETMF and response time
values apply to all operations during the last full minute
of system usage.

SAVE CAL
The SAVE CAL stores in the user's JIT the current values of
the user's tables for the following: associated processor
root, associated processor overlay, associated spec ial
processor, associated debugger, and user flags. This information is stoted as follows:
J:CPROCS

J:CFLGS

The procedure M:DISPLAY has no parameters and generates
a CAL of the form
CALl,8

fpt

(UH:FLG)

The format of the SAVE CAL is

where fpt poiots to the FPT shown below
CALl,4

fpt

where fpt points to the FPT shown below.
Other CP-V Service Calls

89

The M:CAL procedure has the form
(lA, addr) ,pb •••

M:CAL
There are no restrictions on the use of the SAVE CAL.
always returns with CC 1 = O.

It

where

lET CAL

addr

specifies either 0 or the user handler address,
above JBUPVPA.

pb

specifies a two character identifier for various
PSD bits. The options are listed below.

The GET CAL can be invoked only by TEL or CCI. If TIC
(TEL-in-control flog) is not set, the return is to CAL + 1
with CC 1 set to one. Otherwise, the debugger-associated
and debugger-in-control bits from the saved flags (J:CFLGS)
are stored in the user's current flags and the saved processor values are transferred from J:CPROCS to the appropriate user tables. The return in this case is to CAL + 1
with CCI =O.

CI
TI
EI
FS
FZ
FN
OM
AM
MM
MP

The format of the GET CAL is
CAll,4

fpt

Counter interrupt group inhibit
Input/output interrupt group inhibit
External interrupt inhibit
Significance trap mask
Zero ,trap mask
Normalize trap mask
Decimal arithmetic fault trap mask
Fixed-point arithmetic overflow trap mask
Set master mode, wri te key = 0
Set master protect mode, write key = 1
(Sigma 9 and 560 only)

where fpt points to the FPT shown below

The CALI,5 that is generated points to word 0 of the
following FPT:
word 0

EITEl IlAlTEI • •E
JM:5YS
The M:SYS procedure allows processors that
have a sufficient privilege level (CO or higher) to operate in master mode with a write key of O. The call ing
program is also given the addresses of the monitor's I/O
routines, in system-communication registers SR1-SR3. M:SYS
does not set the Sigma 9 or Xerox 560 master-protected bit.

The M:SYS procedure has no parameters, and generates a
CA L of the form
CAll,6

fpt

where fpt points to the FPT shown below.

On return from this procedure, the calling program is operating in moster mode with a write key of O. Register SRI
will contain the address of QUEUE, the monitor routine
for I/O through a DCB with no end-action; SR2 the address
of QUEUE 1, for I/O through a DC B with end-action; and
SR3 the address of NEWQ, for I/O with no DCB. (User
programs generally may not specify end action. End action
routines must be in the resident monitor.) If the caller's
privilege level is not sufficient, return is to CAL+l with
CCI set.
The M:CAL procedure allows user control over
the CAL3 trap, thus allowing the user to specify a target
Program Status Double word (PSO) for the CAL3 trap.
Ability to modify the bits in the PSD is controlled by privilege level. The user with less than CO privilege can alter
the instruction address (which will be entered slave mapped),
as well as the arithmetic and floating mask bits. The user
with CO or greater privi lege can alter any portion of the
PSD with the exception of the register block, the write
key, or the map bit.

,M:CAL

90

Other CP-V Service Calls

10 - - - - - - - - - - 0 I

X'06'

o 1 23 4 5 6 7 8

31

words 1 and 2
New PSD

o

31

Upon issuing the CAL 1, the following CC bits are returned
to the user:
CCI

SET - bad address given, no action taken.
RESET - connect request satisfied.

CC2

SET - user not privileged to specify MM, MP,
or inhibit bits.

M:MASTER
The M:MASTER procedure allows a user
with sufficient privilege level (CO or higher) to operate in
the master mode (master-protected mode if running on a
Sigma 9 or Xerox 560) with a write key of 1. The format
of the procedure call is

M:MASTER
Calls generated by the M:MASTER procedure have the form
CALl,5

fpt

where fpt points to the FPT shown below.

If the caller's privilege level is not sufficient, return is to
CAL+l with CCI set.

90 17 64H-l (9/78)

ENTER SlAVIE MODE

word 1

M:SLAVE

The M:SLAVE procedure allows any master
(and master-protected) mode pmgram to return to the slave
mode. The formclt of the procedure call is
M:SLAVE

Calls generated by the M:SLAV[ procedure have the form
CAL 1, 5

fpt

where fpt points to the FPT shown below.
X'O?'

}

:'-10-I-d-12-'3-" ,,: .. ;, "

I, t , ,n,~

.. 1,

,0

t~'~' " t. J. ,. ":~~ """I,. ",. :t;' "• .J

where

"I~ "I" "" ~~,I
" "

word 2

code

"I" "

is X'04' for associate and X'05' for disassociate.

count

is the number of characters in the name.

ASSOCIATE OR DISASSOCIATE PUBLIC LIBRARY
ni
Two CAls allow the user to control the association of shared
public libraries with his program. Both CAls are of the form
CAll,4

fpt

where fpt points to word 0 of the fpt shown below.
word 0
Code

90 17 64H-1 (9/78)

are the characters in the name of the publ ic
library. Names are limited to ? characters and
must have trail ing blanks.

If no Iibrary with the specified name can be found, CC 1
is set and no further action is taken. An attempt to disassociate when there is no association will cause CC2 to be
set. If assoc iation of one library requ ires disassociation of
a current library, both disassociation and association will
take place and CC3 will be set. If either the virtual core
or the physical core is not available, CC4 is set and no
further action is taken.

Other CP-V Service Calls

90.1

(This page intentionally left blank.)

90.2

Other CP-V Service Calls

90 17 64H-1(9/78)

CHECK EVENT CONTROL BLOCK(S) FOR COMPtETION
M:CHECKECB
The M:CHECKECB procedure allows c
user program to check for the completion of an event or of
a set of events and, if necessary f to enter the W(1 it state to
await the completion of the event(s).

The settings of the bits EC~P, EDBW, and ECBI are m'.'p;
exclusive. That is, only one of these bit,: '11ay be se~ !
one at any given time. Since the ECB eXI
withi'~ th
user program's virtual storage, the state of rr, .... [CB 'l'u~'
be examined at any time by the user program.

The format of the M:CHECKECB procedure call is
There are two event-driven services in C P-V, enqueue
(M:ENQ) and dequeue (M: DEQ). When one of these services
is requested, the user program may allocate a two-word
block to be used as an event control block (EC Bl. The access
protection for the EC B must be 00 - all access. When the
address of the event control block is specified in the service
call, it is saved by the monitor. Upon entry to the service
procedure, the system initiates the required action, sets the
event control block toan 'in-use' status, and returns control
to the user program. More than one event-driven service
may be in action at the same time. The user program continues to process until it requires that the action(s) requested
be completed. At this time the lJser program may issue the
M:CHECKECB procedure call which, if necessary, will place
the user program in a wait state until the action(s) specified
within the M:CHECKECB procedure call have completed.

An event control block consists of two words:
word 0

M:CHECKECB (option)[, (option)] ...
where the options are:

ECB,[*]address[, [*Jvalue]
specifies the addre~~ ::
set of contiguous event control blocks. Vaiu( S~,
c ifies the number of contiguous event contro! b~ :'''.'
The default for value is 1. A value of zero :1;(.
cifies that the set of ECBs is null.

ECBL, (*]address ,[*]value
specifies the add;-I%s ;.'
the first word of a list of words, each of whif,:"
contains a pointerto an event control block. \:(;!~ [c.
specifies the number of words containing eve",
control block pointers. The default for value i$ :'.
A value of zero specifies that the set of polnterl>
to ECBs is nul I.

EVENTS, (*]value
specifies the number of event
control blocks that must be posted complete befor~
control is returned to the user program. The default is 1.

word

where
ECBP

is set to one when the event has completed.

TIME, [*Jun its
speci fies the number of 1. 2-second
time units that may elapse before control b returned to the user event if the value spec ifiet-i fOl"
EVENTS has not been satisfied. The maXlllium
number of units that may be specified is 65,.5:15.
If this option is not specified, then time is not f.I
factor in the completion of the procedure caH.

ECBW
is set to one when the event has been referenced in an M:CHECKECB request.

ECBI

is set when the ECB has been assigned to an
action to be completed by an enqueue or dequeue
service. ECBI indicates that a read or write has
been issued and is waiting for completion of nonenqueue/dequeue operations.

90 17 64H-l(9/78)

At least one occurrence of ECB or ECBl must be pre~"lt in
the specification of M:CHECKECB. ECB and ECBL r.'(ll oe
stated a multiple number of times to combine nonconi TABi-1, data may be
lost by being overlapped in the output buffer.
Example:
The procedure call
M: DEVICE

M: LO, (TAB, 5,20,35)

would result in the following entries in word 15 of the associated DCB:
TAB1
TAB2
TAB3
TAM

=5
= 20
= 35

= unchanged

With these tab settings, the EBCDIC (hexadecimal) string
05C3D6D3E4D4D540F105C3D6D3E4D4D540F2
would result in the following typeout:
(col. 5)

1

COLUMN 1

(col. 20)

!

COLUMN 2
SKIP TO TOP OF FORM

Th is call allows the user's program to cause the printer or
typewriter associated with a specified DCB to skip to the
top of a new physical page. If the printer is already
positioned at the top-of-form, no action takes place.
Special Device Procedures

123

The procedure co II is of the form
M:DEVICE

option LINES (P1)

[*]dcb name, (PAGE)

where
dcb name
specifies the name of the DCB associated
with the device that is to be positioned.
PAGE
specifies that the device associated with the
specified DCB is to skip to the top of the next
page.
Calls generated by the M:DEVICE (PAGE) procedure have
the form
CAll, 1

SET LINE SPACING
This call allows the user's program to set the number of
spaces between Iines and the number of spaces between
the page header and the first line printed. It is val id
only for Iisting devices. Between-I ines spacing takes
effect only if the VFC flag in the DCB is O.
The procedure call is of the form

fpt

M:DEVICE

where fpt points to word 0 of the FPT shown below.

[*] dcb

word 0

name, (SPACE,

[*] value 1 [, [*] value 2])

where
dcb name
specifies the name of the DCB associated
with the device for which the I ine spacing is to
be set.

SET NUMBER OF PRINTABLE LINES
This call allows the user's program to set the number of
printable lines per page, for the listing device associated
with a specified DC B.

value 1
specifies the number of lines to be
spaced after printing a Iine. (A value of either 0
or 1 results in single spacing.)
value 2
specifies the I ine number (with the header
line number being 0) of the firlt line.
Calls generated by the M:DEVICE (SPACE) procedure have
the form

The procedure call is of the form

~*]dcb name, (LINES, value)

M:DEVICE

CAL 1, 1

fpt

where
where fpt points to word 0 of the FPT shown below.
dcb name
specifies the name of the DCB associated
with the device for which the number of printable
Iines is to be set.

word 0

LINES, value
specifies the number of printable
I ines per page. A maximum of 32,767 lines per
page may be specified. The value includes any
header and after-header spacing. A blank header
Iine is used if no header is specified.

word 1

Calls generated by the M:DEVICE (LINES) procedure have
the form

P1 must be equal to 1.
option SPACE (P 1)

CAll, 1

fpt

where fpt points to word 0 of the FPT shown below.
opti on SPACE (P2)

word 0

word 1

~~ , ,I. , • j: .. '" "I" " .. ":M " " "I~" ,,:~
n

P1 must be equal to 1.
1?4

Special Device Procedures

" .. vi"

~ ~ ~,I

SPECIFY DIRECT FORMATTING
This call allows the user's program to specify whether or not
special record formatting is to be done by the monitor.

90 17 64H-1(9/18)

The procedure ca II is of the form
M:DEVICE

l*J dcb

{(DRC)}
name, (NODRC)

NOVFC
specifies that the user has not inserted a
control character in his print image.
Calls generated by the M:DEVICE (VFC/NOVFC) procedure
have the form

where

CAL1,1

dc b name
spec i fi es the name of the DC B assoc iated
with the device for which the special formatting
is or is not to be done.
DRC

specifies that no special record formatting is
to be done for the device associated with the
designated DCB (inhibit monitor formatting).

fpt

where fpt points to word 0 of the FPT shown below.
word 0

word

NODRC
specifies that the normal mode of monitor
formatting is to be reinstated for the device associated with the designated DCB.
Calls generated by the M:DEVICE (DRC/NODRC) procedure have the form
CAll, 1

Flag

Signi fi cance

f1

o means

no vertical format control is to be
performed.

fpt

1 means vertical format control is to be
performed.

where fpt points to word 0 of the FPT shown below.
word 0

SPECIFY PAGE COUNT

~"'I"":'
Flag

Significance

f1

o means

monitor formatting is not to be
inhibited.

1 means monitor formatting (for card devices) is
to be inhibited.

This call allows the user's program to request that the
monitor count output pages, and also to specify to which
column this count is to be listed on the output device.
The page count wi II appear at the top of the form, if no
header has been specified (see IIS pec ify Output Header II);
otherwise, the page count wi II appear on the same I ine as
the header. The count will be expressed in decimal form,
from 1 to 9999.
The procedure call is of the form
[*]dcb name, (COUNT, tab)

M:DEVICE
where

SPECIFY VERTICAL FORMAT CONTROL
This call allows the user's program to specify whether or
not the monitor is to interpret the first character of each
output image as a vertical format control character.
The procedure ca II is of the form
M:DEVICE

[~,dcb

{(VFC)}
name, (NOVFC)

COUNT. tab
'specifies the column in which the
most significant digit of the page count is to be
listed. The va lue of IItab II must be appropriate
for the physical device associated with the DCB.
Calls generated by the M:DEVICE (COUNT) procedure have
the form
CAll, 1

where
dcb name
specifies the name of the DCB associated with the I isting device that is (or is not)
to operate under verti ca I format contro I .
VFC

dcb name
specifies the name of the DCB assowith the I isting device on which the page count
is to be listed.

fpt

where fpt points to word 0 of the FPT shown below.
. word 0

specifies that the user has inserted a control
character in his print image.

(:.. Special Device Procedures

125

-word

CHANGE DEVICE MODE OR RECORD SIZE

P1 must be equal to 1.

Th is call allows fhe userls program to change the mode of
the device associated with a specified DCB, or to change
the logical record size entry (RSZ) in the specified DCB.

option COUNT (Pl)

The procedure call is of the form
[*]dcb name, (option)

M:DEVICE

where dcb name specifies the name of the DCB associated
with the device for which the change in mode or record
size is to be made.
The options are

CHANGE OUTPUT FORM
This ca" allows the user IS program to request a change in the
form used on the output device (e.g., card punch, typewriter,
lineprinter, ett.). The monitor informs the operator of the
chahge that is to be made. When the operator has changed
the form, he informs the monitor by an appropriate key-in.

BCD

spec ifies the EBCDIC mode.

BIN

specifies the binary mode.

F BCD

PACK
specifies the packed binary mode (7-track
tape) Is to be used. PACK is not valid unless
BIN is specified.

The procedure call is of the form
'M:DEVICE

[1dcb name, (option)

UNPACK
specifies the unpacked binary mode
(7-track tape) is to be used. UNPACK is not
valid unless BIN is specified.

where
dcb name
specifies the name of the DC B associated
with the device for which the change of form is to
be requested.
FORM, [*]address
specifies the address of the message (that is to be output to the operator) concerning a change of cards or paper. The first byte
of the message must specify the number of bytes in
the message.

specifies FORTRAN BCD conversion.

SIZE, value
bytes.

specifies the default record size, in

Calls generated by this procedure have the form
CAll, 1

fpt

where fpt points to word 0 of the FPT shown below.

FNAME, Iname I
specifies the one- to four-character
name of an installation-determined form or card
stock. If INONE I is specified for Inamel, the defau It form or card stoc k of th e i nsta II at i on is requ ired.
Calls generated by the M:DEVICE (FORM/FNAME) procedure have the form
CAL 1, 1

fpt

where fpt points to word 0 of the F PT shown below.

option SIZE (P1)

word 0

word 1
Flag

Signifi cance

f1

o means

BCD mode.

1 means binary mode.

opHon FORM (P 1)
f2

o means

no FBCD.

1 means FBCD.
option F NAME (P2)

f3

o means

packed.

1 means unpacked.

126

Specia I Devi ce Procedures

SPECIFY BEGllllltS COLUMI
This call allows the user's program to specify that all data
output by the card punch (EBCDIC only), typewriter, or other
sting device associated with a designated system DCB is to
oJegin in a specified column.

word 0

word

The procedure call is of the form
M:DEVICE

l*Jdcb name, (DATA, tab)
P and P must be equal to 1.
1
2
option HEADER address (P1)

where
dcb name
specifies the n,ame of the DCB associated
with the output device for which the beginning
column is to be specified.
DATA, tab
specifies the <:olumn in which the first
character of the data output is to appear.

option HEADER column (P2)

Calls generated by the M:DEVICI: (DATA) procedure have
the form
CAll, 1

fpt

SPECIFY CARD PUNCH SEQUENCING

where fpt points to word 0 of the fPT shown below.

This call allows the user's program to specify that sequence
numbers are to be punched on cards output by the card
punch associated with a designated DCB.

word 0

The procedure ca II is of the form
word

M :DEVICE

[*]dcb name, (SEQ [,'id'])

where
dcb name
specifies the name of the DCBassociated
with the card punch that is to output cards with
sequence numbers.

P1 must be equal to 1.
option DATA (Pl)

SEQ [,'id']
specifies that sequence numbers are to
be punched in columns 77-80 of each card. If a
user-defined id is specified, it will be punched in
columns 73-76 of each card.

SPECIFY OUTPUT HEADER
This call allows the user's program to specify an output
header (heading) that is to appear at the top of each form.
The procedure call is of the form
M:DEVICE

l*Jdcb name,(HEADER,tab,[*]address)

Calls generated by the M:DEVICE (SEQ) procedure have
the form
CAL 1, 1

fpt

where fpt points to word 0 of the FPT shown below.
word 0

where
dcb name
specifies the nome of the DCB associated
with the dlevice on which the header is to appear.
HEADER, tab, ~*~address
specifies the column number (tab) at which the header is to begin, and the
address of the header. The first byte of the header
must spedfy the number of bytes it contains.
Calls generated by the M:DEVICE (HEADER) procedure
ave the form
CAll, 1

word

option SEQ (Pl)

fpt

where fpt points to word 0 of the FPT shown below.

~

5

6

7

8

Special Device Procedures

127

CHECK CORRESPONDENCE OF DCB ASSIGNMENTS

NUMBER OF LINES REMAINING
This call allows the user's program to determine the number
of printable lines remaining on a page.

This call allows the user's program a means of determining
if two DCBs have been assigned to the same physical device. Both DCBs must have been opened.
M:DEVICE

The procedure call is of the form
M:DEVICE

[*]dcb name, (NUNES)

where
dcbJname
specifies the name of a DCB which is to
be checked for assignment correspondence with
dcb2 name.

where
dcb name
specifies the name of the DC B associated
with the device for which the number of I ines remaining on a page is to be obtained.
NUNES
keyword designating what the procedure
call is requesting.

dcb name,(CORRES,dcb name)
2
1

CORRES,dcb name
specifies the name of a DCB
2
which is to be checked for assignment correspondence with dcbJname.
Calls generated have the form
CAll, 1

Calls generated have the form

fpt

where fpt points to the FPT shown below.
CAll, 1

fpt

word 0

where fpt points to the FPT shown below.
word 0
word

Upon return to the caller, SRl contains 0 if not applicable.
SRl contains the number of lines remaining on the current
page only if the user indicated top of page and set the
value of LVA with M:DEVICE [*] dcbname, (LlNES,value).

128

Special Device Procedures

If the assignments of the two DCBs correspond, a J is
returned in SR1; otherwise, a 0 is returned.

90 17 64H-l (9/78)

8a PROGRAM LOAD ·AND EXECUTION:
IfTRODUCTION
There are three processors that can be used in the batch
mode to control loading and execution of object programs:
the Load processor, the LYNX processor, and the link
processor.
Load is a two-pass overlay loader. The first pass processes
not only ROMs but previously formed load modules or a
combination of both (For example, Load processes dummy
sections from library load modules as well as from ROIv\s.)
The first pass also processes expressions for defin itions and
references (pri mary , secondary, and forward references).
The second pass forms the actual core image and its relocation dictionary.
LYNX has most of the capabil ities of the overlay loader,
Load, and also provides the samE~ control over internal and
global symbol table construction which is available in the
linking loader, Link. LYNX may be viewed as a preprocessor for the Load loader. After it analyzes the user's
commands, it constructs a table of loader control information
which it then passes to the Load loader. It is Load which
actually performs the loading pmcess.
Link is a loader that is now supplied only for compatibil ity
with previous versions of CP-V. Although Link is described
in full detail in this manual, it is recommended that the
LYNX loader be used.
The LEMUR processor is also desc:ribed in this chapter
although it is not a loader. LEMUR (Library Editor and
fv4.aintenance Util ity Routine) is 0 processor that builds and
manipulates ROM and load module libraries. The libraries
thus built are accessed by LYNX or Load when constructing
user load modules.
The final sections of this chapter describe task control
blocks, data control blocks, memory protection, virtual
memory, and job OIccounti ng.

LOAD PROCESSOR
The purpose of the Load processor is to translate and u'nite
its input (ROMs and I ibraries) into such a form that its output (a load module) may be executed under the CP-V
operating system. The TREE, PTREE, and INCL control
commands are used to provide overlay information to the
loader. Program execution is initiated by the RUN command, which is described below after the description of
the Load processor. The accountiing summary generated at
the end of each job is described ot the end of this chapter.
The loader performs the followingl functions:
•

Process relocatable object modules (ROMs) producing
continuous sections of data, procedure, and DCBs (or
static data) ensuring a page boundary for the three
protection types (00, 01, 'and 10, respectively).

•

Satisfy REFs among the ROMs.

•

Access libraries to satisfy PREFs.

•

Build Data Control Blocks (DCBs).

•

Sui Id a DCB name table for monitor use.

•

Build Task Control Blocks (TCBs).

•

Produ ce a load map pri ntou t for a new Iy bu i It or previously formed load module.

The loader produces a load module, which is a keyed file
having the format shown in Table 17.
Table 17.

Standard Load Module Format

Key

Record Contents

C'HEAD'
C'TREE'

Basic load module information
Tree Table
REF/DEF stack
Expressi on stack
00 Relocation Di ctionary
00 Control Sections
01 Relocation Dictionary
01 Control Sections
10 Relocation Di ctionary
10 Control Sections

".

x'oo'

X'01'
LMN name
X'02'
concatenated X'03'
with
X'04'
X'05'
X'06'
X'07'

"

A loader control command norma IIy follows a processor
command (and is read after all specified inputs have been
received and processed) so that the processor's output will
be translated into an executable load module.
The object modules or load modules may be input to the
loader from one or more BI files, GO files, element files,
or libraries.
Note that if the first few characters of any continuation to a
LOAD, OVERLAY, OLAY, or TREE command match any of
the input control commands or JOB, those commands must
have at least one blank between ! and the first alpha
character.

CONTROL COMMANDS
LOAD,OVERLAY,OLAY

The loader which is invoked
by a LOAD, OVERLAY or OLAY control command processes
relocatable object modules, previously formed load modules,
or a combi nation of both. The resulting load module is a
keyed file which is placed in the user's account. Execution
of the load module is triggered by the RUN control command
which brings the load module into core storage and transfers
control to it. (A load module may also be called internally
by an executing program via the M:LINK procedure.)
The special characteristi cs of the Overlay Loader are as
follows:

Program Load and EXE"cution

129

1.

Overlaid programs. The overlaid program is one that
has only one segment resident in core permanently.
The other segments are called for by the M:SEGLD
procedure call and brought in as needed. They may
reside (at different times) in the same core area, thus
reducing the amount of core storage required to house
the entire program.
Since a program may consist of three areas (protection
types), each beginning on a page boundary, the Overlay Loader has the ability to create the three structures, each beginning on a page boundary.

2.

Reference Loading. If the user does not choose to
maintain responsibility for calling in the segments of an
overlaid program (by explicitly using the M:SEGLD),
he may direct the loader to insert the M:SEGLD code
into his program by specifying REF or BREF on the
LOAD command. This code is built wherever there is
a branch type instruction to a DEF in a higher segment
(BREF mode) or wherever there is an expression involving a DEF from a higher segment (REF mode).

3.

Load Module libraries. It is desirable to maintain
libraries of frequently used routines that are themselves
already in load module form, since subsequent inc/usion of a library module is faster than "processing the
original ROM language. library load modules are of a
less general nature since they must be of one protection type, relocatable, and not overlaid.

4.

Relocatable Load Modules. The loader creates a relocation dictionary that allows subsequent placement
of the load module into a core area other than the
one at which it was originally biased. This is required
for library load modules.

There is no functional difference between the LOAD, OLAY,
and OVERLAY commands. The load parameters must be
specified in either a LOAD, OVERLAY, or OLAY command and the overlay structure must then be specified
in a TREE control command.

is assumed by default.

Normally, the BI and

C operational labels are both assigned to the same
device. If a control command is read, the monitor generates an end-of-fi Ie code and terminates
the binary input.
"
GO
specifies that data from the user's temporary
GO fi Ie is to be included in the root of the load
module (see TREE). If GO has been assigned to
a labeled file, the GO option cannot be used to
load the program (see the liEF" option below).
EF, (name (,account [,passwordJ]) [, .•. ]
spec ifies
that the named modules (either object or load)
from an element fi Ie of the designated account
are to be included in the load module. If no account number is specified, that of the current job
is assumed. .If a password is associated with a
named module, it and the account number must be
included in this option. More than one module
may be specified in an EF option. An invalid
password wi II cause the job to be aborted. The
named elements wi II be loaded in the order in
which they are specified (if no TREE control command is used). The element file name must not be
greater than 10 characters.
UNSAT, (account [, password']) [, (:Pn)] [, (account
[, password])[, (:Pn}][, ... J specifies that the
libraryof the designated account is to be searched
for external definitions required for the load module (i. e., corresponding to primary external references). N-ore than one account may be specified
in an UNSAT option. The I ibrary password (if any)
for each account must be included, although I isting of the password is suppressed. The total numberof accounts must not exceed eight. :Pn may be
used to specify a public I ibrary in the :SYS account.
(See note 18 under overlay Loader Restrictions.)
NOSYSlIB
specifies that the system library is not
to be searched. If NOSYSlIB is omitted, the system library will be searched to satisfy any external
references that are unsatisfied after loading has
been accomplished from all other specified sources.

LM N,name[, password]
The forms of the loader control commands are

I
I

"

LOAD
I OVERLAY [l .••
OLAY

specifies the name of a previously formed load module fi Ie which is to be
mapped only. If this option is used to denote
input, the only acce"ptable options are MAP, LIB,
UDEF, LDEF, RDEF, VALUE, and NAME (see
below).

Options affecting future access to the load module fi Ie
where the options are as follows:
Options that determine input to the loader
Bf

130

specifies that the Bf input device is to be used to
read unspecified relocatable object modules. Object modules wi" be loaded from the BI device
unti I either two end-of-data codes (05) or one endof-fi Ie code (06) is encountered. If neither BI,
EF, nor GO are specified as input sources, BI

Load Processor

LMN,name[,password]
specifies the name that is to
be given to the load module. The name may consist of from 1 to 10 alphanumeric characters (except for shared processor names which may only
have up to eight alphanumeric characters). If no
name is specified for a load module, it is considered temporary, even if PERM is specified. A password to be associated with the load module may
be specified.

90 17 64H-1 (9/78)

If PERM and LIB are specified, the password
specified for the first library load module entered
in the library becomes the password of the library.
Any subsequent load modules to be added to the
account's library must specify the same password.
The library password mCIY be changed only by deleting files : LIB and :DJC and then reentering load
modules with a new password.
PERM
specifies that the load module is to be retained
on the disk as a permanEmt element fi Ie. If PERM
is omitted, and LIB (see below) is not specified, the
load module wi II be a temporary fi Ie. If a previously formed load module of the same name (see
LMN, above) exists, it wi" be replaced by the
newly formed one. If PERM and LIB are specified,
any external definitions or external references in
the load module wi II be added to the account's
library table of externa!1 definitions and the lood
module will be inserted into the account's element file library (:LlB). If LIB is specified, the
load module must comprise a single control
section of uniform memory access type. (See
Note 18 under Overlay Loader Restrictions.)
LIB

specifies that the input is a library load module.
If LIB is specified in conjunction with the MAP option and PERM is omitted, the loader will print the
DEF and DSECT names only. (See note 18 under
Overlay Loader Restrictions.)

READ[,value]...
specifiE~s the account numbers of
those accounts that may read but notwrite the file.
The value ALL may be used to specify that any account may read but not write the file (e.g., READ,
ALL). The value NONE may be used to specify
that no other account may read the file. If no value
is specified, or is READ and EXECUTE is omitted,
ALL or NONE as specified in the user's authorization record is assumed by default. The total
number of accounts expliicitly specified in a READ
or WRITE specification must not exceed eight.
WRITEGvalue]. • .
specifiE~s the account numbers of
those accounts that may Ihave both read and write
access to the file. The values ALL and NONE may
be used, as with the READ option (see above); and,
if a confl iet exists between READ and WRITE specifications, those of. the WRITE option take precedence. NO NE is assumed by defau It.

I

mm, dd, yYI
EXPIRE, ddd

specifies either an explicit
expiration date (mm, dd, yy),
the number of days to retain the fi Ie (ddd), or that
the fi Ie is never to expire (NEVER). If not specified' the default value a!) established in the authorization record for the user wi II determine the
expiration date. Fi les wii II be automatically
purged from the public fi lie system if they have
expired whenever secondcJlry storage space passes
below a SYS GEN establhihed threshold.
NEVEI~

90 17 MH-1 (9/78)

The value specified may not exceed the maximum
expiration period authorized for the user. If the
maximum expiration period is exceeded or unspecified, the default expiration period authorized
for that user wi" be used.
EXECUTE,value[,value]. . .
specifies the account
numbers of those accounts that may execute the
fi Ie. Up to eight account numbers may be specified. The va lue A Ll may be used to specify that
any account may execute the file. The value
NONE may be used to specify that no other account may execute the fi Ie. In a" of the above
cases, READ, NONE is implied in the absence of
any READ specification.
UNDER,name
specifies the name of the only processor that may access this fi Ie if the user does
not own the fi Ie. The name may be from one to
ten characters. The processor may be any shared
processor or any load module in the :SYS account.
If EXECUTE accounts are specified and UNDER is
not specified, the fi Ie is presumed to be a load
module and UNDER, FETCH is implied by default.
FETCH is the name of the monitor routine that
places a program into execution.

Qptions affecting the location of the program at execution
time

BIAS, value
specifies (in hexadecimal) the load
bias, in word locations. If the value is not
a page boundary, the next lower page boundary
is used. If no bias is specified, the program will
be loaded at location X'AOOO'.

CORELIB
specifies that when the load module is
brought into core for execution, virtual core is to
be allocated with the special shared processor
area held in reserve. This permits the association
of a core library at run time and linkage (via
M:L1NK/M:LDTRC) to another load module that
is associated with a core library.
CSEC 1
specifies that the load module is to be
formed with a protection type of 01, except
for the TCB and blank COMMON (which have
a code of 00) and except for any type 10 control
sections input in load module form (including library input).
M 10

specifies that each control or dummy section is
to be loaded at the next greater multiple of 1° 16 .

M100
same as M10, above, except that loading
starts'at the next greater multiple of 10° 16 •

Load Processor

131

Options determining how overlay segments wi II be brought
into core at execution time
SEG

specifies that the overlay structure is to be
set up for the segment loading mode. In this
mode, it is the user's responsibility to explicitly
load each segment from disk storage to core storage (e.g., by means of the M:SEGLD procedure)
before it is referenced by the executing program.
This mode is faster in operation than the reference
mode (see below) but less convenient.

REF[,num]
specifies that the overlay structure is to
be set up for the reference loading mode. In this
mode, the execution of any instruction referencing
an external definition in another segment on a
lower overlay level wi II cause that segment and
all its backward path (see "TREE" command) to be
loaded if not already in core (even if the reference is an unsatisfied conditional branch). The
external reference must not be in an instruction
that may be changed or replaced during program
execution.
The decimal value "num", if present, specifies
the maximum number of interbranch references
within the program. If "num" is absent or zero,
the Ioade r w ill reserve a to ta I of 22 words per segment (four words are required for each interbranch
reference) in its reference loading table.
BREF [,num]
specifies that the overlay structure is to
be set up for the branch referencing loading mode.
In this mode, any permissible branching reference
(in another segment of the program) to an external
definition within a given segment wi II cause that
segment and all its backward path to be loaded, if
it is not already in core storage. If a nonbranch
reference is made to an external definition within
a given segment, the BREF mode will assume that
segment to be in core. BREF should be used for all
overlaid FORTRAN or COBOL programs. A branch
reference causes register 0 to be changed.
The optional value "num" has the same meaning
as for the reference loading mode (see "REF",
above). If "num" is absent or zero, a total of
11 words per segment Ore reserved in the reference
loading table (two words per reference).
If neither REF, BREF, nor SEG is specified, SEG is assumed.
Only one may be specified.
Options concerning the loader-built Task Control Block
TSS,size
specifies the maximum size, in hexadecimal number of words, of the Temporary Storage
Stack (TSS) for the Cllrrent job. If TSS is omitted,
the maximum size is set at X'40' words. The
greatest size that may be specified is limited to
available core storage and may not exceed 7FFF
words regardless of core size.

132

Load Processor

ERTABLE,size
specifies the size, in hexadecimal
number of words, of the library error table (see
the Mathematical Routines/Technical Manual,
90 09 06). The default. is ten words.
ERSTACK,size
specifies the size, in hexadecimal
number of words, of the library error stack. The
default is ten words.
NOTCB
specifies that no Task Control Block (TCB)
is to be created by the loader. This option should
not be used for FORTRAN jobs, since FORTRAN
requires a TCB.
Options concerning symbol tables
NI

specifies that internal symbol tables are not to
be built. (They are normally built by default. )

G

specifies that a global symbol table is to be
built for this load module. A global symbol table
contains all symbols which were declared external
(via a DEF) in one module to be referenced in another (via a REF).

Additional options
ABS

specifies that a relocation dictionary is not to
be formed for the load module.

REL

specifies that a relocation dictionary is to be
formed for the load module, and the load module
will be treated as "semiabsolute" (i .e., executable
but capable of being relocated).
If neither ABS nor REL is specified, ABS is assumed.
Only one may be specified.

MAP[,NAME] [,VALUE]
specifies that a complete
listing of external references and definitions for
the load module is to be output on the LL device.
VALUE specifies that the DEFs {and control sections} within each segment are to be sorted by
value. NAME specifies that the OEFs within each
segment are to be sorted by name, and that the
control sections are to be sorted separately by
value.
MAPONLY[,NAME][,VALUE]
specifies that an existing load module is to be mapped. The output
is the same as that described for MAP above.
LDEF
is used in conjunction with the MAP option
and requests that a listing be produced that includes all the used library DEFs for the load
module.
UDEF
is used in conjunction with the MAP and
LDEF options and requests that a listing be produced. that includes all the library DEFs defined
in the load module.

90 17 64H-1(9/78)

RDEF
specifies that all unused DEFs are to be removed from the load module's REF/DEF stack. A
shortened REF/DEF stack is created for the load
module.

SL, value
specifies the error severity level that will
be tolerated by the loader in forming a load module. The value may range from 0 through F. The
default value is 4.

PAGE
specifies that those portions of the load module that will be loaded into core at execution time
are to be developed in page-size records. The
load module formed fs called a paged load module.
The load module is formed in extended memory
mode. More time is mquired to form the load
module, but since uninitialized pages do not get
written as part of the load module, programs
that have large areas of uninitialized data will
occupy fewer granules.

OSP

specifies that any cc>ntrol sections of protection type 00 in an overlay segment should be
forced to the root of the load module. This option
is intended primari Iy for loading overlaid shared
processors written in FORTRAN and is only valid
for programs having one level of overlay structure.

DREF
when used in conjunction with the LIB option,
causes all dummy section definitions to be changed
to PREFs. This allows a library to be built in which
all references to a particular named DSECT will
be linked to a single copy of that DSECT (e.g., a
FORTRAN BLOCK DATA subprogram). Such initial ized dummy sections should be contained in
the only library load module loaded without the
DREF option.

Overlay Loader Restrictions
1.

A load module acceptable for combination with ROMs
to form a new load module must be of one protection
type, relocatable, and not overlaid. DSECTs in such a
load module are allowed only if the entire load module consists of one DSECT. Note that library load
modules are subject to these restrictions.

2.

If a DEF in a library load module is >11 characters,
the corresponding entry in the :DIC file is forced to
11 characters. (The DEF entry in the library load module itself is not changed. )

3.

The REL option will be overridden and the load module
wi" be set ABS under any of the following conditions:

- processor accounting. (Execution time
is to be tall ied as processor rather than
user execution time in the accounting
record. )

J

- special JIT access.

M - maximum memc,ry protection.

b.

The program contains a relocatable field not
ending on a halfword boundary.

c.

It contains an expression of mixed resolution.

d.

The program is loaded in the extended memory
mode. The loader enters this mode when it does
not have enough core to build the core image of
each segment in its entirety.

Segments may communicate with each other via REFs
and DEFs only if they lie in the same path.

5.

Load items of a DSECT are placed in the corresponding
DSECT of the root segment. That is, there must be a
DSECT by the same name in the root. The following
case is not permitted.

A
A

.

DSECT
RES

DSECT
DATA

0
1,2,3

0
3

L

Root

6.

MODIFY control cards will be ignored if a I ibrary load
module is being formed or if extended memory mode is
entered.

7.

If a low segment references a DEF name that is both in
a higher segment and a library, the library DEF will be
used.

8.

A program containing a relative address preceded by a
minus sign (e. g., -BA(ADDR» is not relocatable.

X - execute M:S YS CALs.
These flags have no meaning unless the load module resides in the :S YS ac:count.

REF or BREF has been specified on the LOAD card.

4.

PRIV L ~[,J] (, M] Lx]
seh the privileged processor
flags for the load module. One to four flag letters
may be specified in any order. The flag letters
have the foilowing meanings:
P

a.

Load Processor

133

9.

The load module name and input file names must be no
greater than 10 characters in length. The element fi Ie
names must be no greater than 8 characters in length.

I (TSS, 3E8),(BIAS, 10000),(BI),(M100)

10. No two segments on the TREE control command may
begin with the same ROM name, since the first ROM
named in a segment becomes the name of that segment.

I (LMN, MOD), (PERM), (WRITE, NONE), (SL, 2);

11. If a low segment common to two or more paths references a DEF name that is in a higher segment of more
than one path, that name wi II be doubly defined. The
following case is not permitted:

! LOAD (EF, (FIL, ACCT123, PAS)), (UNSAT, (1235)), ;

DEF A
This example specifies that

.

REF A

1.

No load information is to be taken from the GO fi Ie,
since GO is not specified.

2.

Element FIL, having the password PAS associated with
it, is to be loaded from the account ACCT123.

12. If extended memory mode is entered, the load module
being built must have no more than 256 segments.

3.

13. Programs loaded in branch reference loading mode
(see the BREF option) cannot contain BA Ls on register 0
because the loader uses register 0 in the BREF code
which it supplies.

The library of account 1235 is to be searched for external definitions corresponding to unsatisfied primary
references (if any exist after loading has been accomplished from a" other specified sources).

4.

14. A library dummy section containing multiple defined
locations must be loadep in a segment of an overlaid
program below any segment referencing those locations.

The name MOD is to be associated with the load
module.

5.

The load module is to be a permanent fi Ie in the user's
account.

15. Library DCBs may not be referenced solely from overlay
segments.

6.

Assuming that the user was authorized with a default
read access of 'ALL', any account may read the load
module, but none may write into it.

7.

Errors of severity level 2 are acceptable.

17. Under certain rare conditions, it is not possible for the
loader to accurately predict its core requirements by
the end of its first pass. This may result in situations
in which the loader wi" not automatically enter extended memory mode to produce a large load module,
resulting in the IIlnsufficient Physical Memory" error
message following the loader's allocation summary. The
use of the PAGE option to force extended memory mode
wi" alleviate this situation.

8.

Up ·to 3E816 words of temporary storage may be used.

9.

A relocation bias of 1000016 is to be used.

18 . LYNX and lEMUR a "ow the assignment of a library
name to the library that is being built. This is
accomplished in lEMUR with the LIBRARY command
and in lYNX with the (UB, libname) option.
Omission of either of these wi" default to the
name :lIB for both library creation and usage. A
library other than :UB must be created by lYNX
or lEMUR. Usage of a library other than :lIB must
be invoked through LYNX (not lOAD).

12. Each control section or dummy section is to be loaded
starting at a multiple of 10016.

I

Root

DEF A

16. DEFCOM output may not be included in a library load
module.

Examples
(!LOAD
This example specifies that loading is to be accomplished
from the BI device. Default conditions are assumed.

134

load Processor

10. No load map is to be output.
11. Re locatable object modules are to be loaded from the
BI device.

TREE
If a program is to be overlaid, a TREE control command must be the next control command following the associated OVERLAY (OLAY or LOAD) command. It must
specify the overlay structure of the load module to be formed
as a result of the preceding OVERLAY, OLAY, or LOAD
command, so that the logi ca I segments of the program wi II
be loaded from secondary storage into core storage as required. It is the user's responsibil ity to plan the relationship of these segments. If BI relocatable object modules
(ROMs) are to be loaded from the C-devi ce, they must be
placed after the lOAD, OVERLAY, or OLAY command
and must precede the TREE command.

90 17 64H-l(9/78)

- The relationship of the segments thot comprise an overlay
program can be represented graphically by means of a tree
diagram, as in the example shown below. The horizontal
coordinate of the diagram denotes increasing core storage
(address) allocation, from left to right. The vertical coordinate denotes overlays. The leftmost segment, or "root", is
that portion of the program that resides in core storage
through program execution. A "path II of an overlay consists of those segments that may occupy core storage at the
same time. The portion of a path that extends from the
start of the program (i. e., the root) to a given segment is
termed the "backward pa th II of thai' segment.
The following example consists of four paths, anyone of
which may be present in core storage at any given time.
Segment A, below, is the root of the program and is never
overlaid by another segment. Any path may be loaded into
core storage and overlaid as many I'imes as required by the
program. All segments of the lood modu Ie are saved in
disk storage and, when a segment that has been overlaid is
called again by the executing program, the original copy
is loaded from the disk. Therefore, any communication
between two overlay segments (e.g., D and E, below) must
be done in a part of the backward path common to both.

indicates that two segments are to overlay one
another (i. e., begin at the same core storage
location).
()

indicates a new (lower) level of overlay.

No two segments may begin with the same EF name, since
the name of the first EF becomes the name of the segment.
Example:
!TREE A - (C - (E, D), B - (G, F))
The above example is a symbol ic representation of the overlay structure of the preceding graphic example.

PTREE

A PTREE control command may be used to obtain
a TREE control command from the user1s file (useful in jobs
involving COBOL programs).
The form of the PTREE control command is

! PTREE (name[,account[,passwordJJ)

Example:
where

E~

name
specifies the name of the file containing the
TREE control command.

C
account
specifies the account contarning the designated file.

D

I

I

A

G

]

B
F

~

password
specifies the password associated with the
designated file. If the file has an associated password, both it and the account number must be
given in the command.

INCL
An INCL (include) control command may be used,
following a TREE or PTREE command, to include a named
library routine in a specified overlay segment (e. g., to
satisfy a secondary external reference).
The form of the' INCL control command is

The form of the TREE control commclnd is

(!I

NC L,seg-nent name [,name] ...

! TREE specification
where

where specification specifies the trt~e structure by use of
the symbology given below.
name
specifies the name of an element file. The
name (1-10 characters) must not contain any spec ia'i
delimiters (e.g., -) embedded in it.
indicates that two named relocatable object modules are to be contiguous in core storage.

segment
specifies the name of the segment to which
the named library load module 'or ROM is to be
appended. Each segment takes the name of the
first element file named in the segment specified
on the TREE card.
name
specifies the name of a I ibrary load module
or ROM that is to be appended to the specified
segment.
Any number of library load modules and/or ROMs may be
specified in a single INCL command.

Load Processor

135

Example:

The form of the RUN control command is

An example of the control card sequence used to specify
the structure of an overlay program is given below.

!RUN [(option)][,(option)]. ..

!TREE DEF - (GHI, JKL - ABC)
where the options are as follows:

1234), (WRITE, NONE), (BI), (REF), (MAP)

(1236), (1237)), (LMN, FILEX), (PERM), (READ,;

lOVERLAY (EF, (ABC), (DEF), (GHI), (JKL)), (UNSAT,;

The above example specifies that
1.

Elements ABC, DEF, GHI, and JKL are to be loaded
from the element fi Ie of the present account.

2.

The Iibrari es of accounts 1236 and 1237 are to be
searched if unsatisfied primary references exist after
loading has been accomplished for all other sources
specified.

LMN,name [,account[,passwordJJ
specifies the name
(account number and associated password, if any)
of the load modu Ie that is to be executed. The
name may consist of from 1 to 10 alphanumeric
characters (except for shared processor names wh ich
may only have up to 8 characters). If this option
is omitted, the job's most recently formed load
modul e wi II be executed.
START,address
specifies the location at which program execution is to beg in. The "address" may be
either an external definition (optionally followed
by a hexadecimal addend value) or a signed absolute hexadecimal address. This address overrides
that specified in the load module. The external
definition must not contain any embedded
addend value (e.g., plus (+) or minus (-)).
If no start address is specified in the RU N command or in the load modu Ie, the program is entered
at its lowest core location, which is register 0,
and causes a trap and the job to abort.
XSL,value
specifies a value to be placed in the
Task Control Block (TCB) for examination at executi on ti me by the user or run -ti me library routi nes.
The default value is 8. XSL is used as the "current abort severity" by the FORTRAN IV run-time
routines.

3.

The name FILEX is to be associated with the load module being formed.

4.

The load module is to be a permanent file in the user's
account.

MODIFY

Account 1234 may read the load module, but no account (other than that of the current job) may write
into it.

The form of the MODIFY control command is

5.

6.

Relocatable object modules are to be loaded from the
BI input device and placed in the root segment.

7.

The overlay structure is to be set up for loading in the
reference mode.

8.

A load map is to be output.

9.

The system library is to be searched for externa I definitions corresponding to unsatisfied primary external
references (if any).

10. The overlay program is to consist of 3 segm.ents, namely
DEF, GHI, and JKL.

RUN
The RUN control command specifies that a designated program (or the program most recentl y formed by the
loader or Link) is to be executed, provided that the execution error sever.ity level (see XS L option) has not been
exceeded by the program (i. e., the load module).

136

Load Processor

The MODIFY control command allows the
user to insert or modify words of a program in core storage.
Library load modules cannot be modified by this command.

lMODIFYGsegment] loc,wordGword] ...

where
segment
specifies the name of an overlay segment.
This parameter is omitted if the load module is not
overlaid.
loc

specifies a relative hexadecimal location (i. e.,
an external definition followed by an optional
hexadecimal addend value) or a signed positive
absolute hexadecimal address where the modification is to be made. If an external definition is
used, and the modification is to be made to an
overlay segment, the definition must not have been
referenced in a "lower" segment of the overlay
tree. This restriction applies only if the MODIFY
command appears after the OVERLAY, LOAD, or

OLA Y control commond. The total number of
locations to be modifiedl cannot exceed 255.
The external definition must not contain any
embedded addend val ue (e. g. , pi us (+) or
minus (-».
word

spec Hies the word to be inserted (right- justified)
at the designated location (see "Ioc", above). The
word must be expressed as an unsigned hexadecimal (i.e., value + name). If it is desired to specify an address resolution for the external definition
(following the value), the name of the external
definition must be enclosed in parentheses (i.e.,
value + res (name)).
res

Resolution

BA

Byte

HA

Halfword

WA

Word

DA

Doubleword

--

If no resolution is specified, word resolution is
assumed.
The MODIFY control command may be used either following
a LOAD command or a RUN command. If used following a
LOAD command, the inserted words become a permanent
part of the program; otherwise, they are a temporary "patch II
'sed only during the current execution of the program. If
rhe load module is overlaid and the patch is to be permanent, the MODIFY command musl' follow the TREE command.

A user Iibrary is a keyed file residing in an account. The
file contains several modules, each of which is a named
collection of routines. A library module becomes a permanent part of a user's program; consequently each user
has a separate copy of a pertinent module. Collecting
these modules into a single file (rather than making each
module a separate file) minimizes the number of opens
and closes that the loader must perform to process several
such modules from one account.
PUBLIC LIBRARIES
The loader associates a public library with a program provided one of the following conditions exists:
1.

The program contains an unsatisfied PREF to a
module in the publ ic library.

2.

The public library (:Pn) is named in the UNSAT
list on the LOAD card.

Either of these conditions causes the loader to allocate
the public library's context area at the beginning of the
user's virtual memory (normally X'AOOO').
To illustrate: the FORTRAN library subroutines reside in
publ ic libraries: PO (FORTRAN Iibrary with FDP), : PI
(FORTRAN library without FDP), and :P4 (FORTRAN realtime library). A FORTRAN program contains an unsatisfied
PREF to 91NITIAL or 9DBINIT which causes the loader to
associate: PI or : PO, respectively. If the real-time version
of FORTRAN is required, :P4 is named in the UNSAT list.
(The real-time system account, e.g., :SYSRT, must also
be named.)
USER LIBRARIES

Example:
IMODIFY LOC'I+Al,1234E

This example specifies that the hexadecimal value 1234E is
to be inserted at a location whose address is 161 words
higher than that of LOC 1.

LlBRARIE:S
The purpose of a library is to col/leet frequently-used
routines in a form that expedites t'heir inclusion into other
programs.
TYPES OF LIBRARIES
There are basically two types of libraries: public and user.

6. public library can be viewed as, code that resides in a
fixed part of memory for usage by many concurrent users;
it does not need to be loaded. Public library routines do
not become a permanent part of a user's program.
90 17 64H-l (9/78)

User Iibraries are formed by LYN X, Load, or LEMUR. The
creation of a user library is triggered by the presence of
the LIB option when LYNX or Load is used, or by the
BUILD command when LEMUR is used. The name of the
library is supplied by one of two methods: 1) by the
LIBRARY command in LEMUR, or 2) by the secondary
option libname, with LIB in LYNX. If neither of these
are used, or if LOAD is used, the default library
name is :L1B. If the named I ibrary does not exist in
the running account, the "skeleton" of the file is
created by opening to the library name.

STRUCTURE OF A USER LIBRARY
A user library can be viewed as having two sections: the
dictionary section and the library module section. The first part of a library is the dictionary section, comprising all the DEF names defined in that library and the
names of the library modules in which those DEFs occur.
The key of a dictionary record is a DEF name prefixed by
a blank (X'40') to ensure its primary placement within the
file. The dictionary record is the TEXTC name of the module within which the DEF occurs. (Table 18 shows the dictionary format.) The DEF is limited to 15 characters; the
module name is limited to 10 characters.

Load Processor

137

The second part of the library contains the library modules,
in either I ibrary load module or ROM form (as shown in
Tables 19 and 20 respectively). The keys and records of a
I ibrary load module are identical to those of a nonlibrary
load module except that the keys HEAD and TREE are concatenated with the TEXT load module name to ensure the
uniqueness of the record.

USER LIBRARY MODULES
Library modules are in library load module form if built by
the overlay loader (via Load, LYNX, or LEMUR) or they
are left as ROMs if bui It by LEMUR with the ROM option
specified. The load module form offers the advantage that
the userls target program can be built faster since the loader
can process an input file in load module form much faster
than in ROM form. Library load modules must be nonoverlaid, relocatable, and of one protection type. The
ROM module form does not have a restriction on protection
type; the user may therefore include any ROM in a library
without regard to protection type.
The loader creates I ibrary load modules by opening the
I ibrary with llfile name = LMN name" (where LMN name
is the name of the I ibrary load module) and "synonym =
library name". This synonymity allows inclusion of a
I ibrary load module via explicit mention of its name in the

element file list, rather than implicit inclusion via an unsatisfied reference.
When LEMUR is used to create a library ROM module, the
name of the ROM module is supplied by the name field of
the BUI LD command. ROM modules are not synonymous to
the library name.
Assuming the library does not already contain a module with
the same nome as the module being created, the loader or
LEMUR writes a dictionary record for each DEF encountered
in the new module. Depending on I ibrary type, this involves a scan of the REF/DEF stack (for load modules) or the
ROM codes (for ROM modules). The library module records are then written.
If a module with the same name as the new one already
exists within the library, the loader or LEMUR deletes all
old dictionary entries containing DEFs that occurred in the
old version. This is done by scanning the old versionls
REF/DEF stack (loader) or dictionary records (LEMUR). The
new version (dictionary and module records) is then
written.
(Determination of whether a module exists within a library
is made by attempting to read a module record from the
library usi ng the name of the new modu Ie. )

Table 18. Library Dictionary Format
Key

Record Contents

X 140 1 {text of DEF ~

textc name of I ibrary module

Table 19. Library Load Module Format
Record Contents

Key

,..
C'HEAD'
C'TREE'
LMN name
X '00'
concatenated < X 1011
with
X'Onl
I X 'O(n + 1)1

Basic information
Tree Table
REF/DEF stack
Expression stack
00, 01, or 10 Relocation Dictionary
00, 01, or 10 Control Sections
(same protection type as relocation dictionary)

Table 20. Library ROM Module Format

J38

load Processor

Key

Record

X '0000'
X '00011
module name
from LEMUR I
<
BUILD
concatenated I
with
, X IFFFFI

library ROM module records

.I f a pre-existing module with a different name contains a
DEF identical to a DEF in the new module being added or
replaced, the dictionary record corresponding to th is DEF
is replaced by a record pointing to the new module. Thus,
there is only one dictionary record per DEF, and it contains
the name of the library modul e most recently entered that
defi nes the corresponding DE F.

Note:

Individual library modules cannot be accessed by
PCl, since a library module is really a logically
related set of records within a file. Functions
such as copying and deleHng Iibrary modules must
be performed by lEMUR, not PCL.

when bringing a program into core storage for execution
(running a load module).

Table 21.

Monitor Error Messages

Message

Description

ABS CANNOT REL

The monitor cannot relocate program because it is absolute.

STACK OVERFLOW

The program will not fit in core.

10 ERROR or 10 ABN An I/o error or abnorma I condition has occurred.
NO LOAD MODULE

USER LIBRARY REFEkENCE PROCESSING
The loader associates a library module with the program the
loader is processing if that module contains a DEF that
satisfies an undefined PREF in the program. To accomplish
this, the loader performs a library search by doing a keyed
READ to the dictionary, using the n.Jme of an unsatisfied
PREF as the key; a successful READ returns the name of the
library module defining the PREF. The loader then reads
the library module records into core and merges them with
the program.
For an overlay program, the loader conducts a library
search each time it finishes processing the external references in an entire segment. The segments are processed in
the order specified in the following illustration:

Seg 3

lOAD DIAGNOSTIC MESSAGES
The Load processor uses a keyed fi Ie prov ided by the Error
Message File Write program (ERRMWR) for its error message
records. Upon finding a load error, the Load processor
obtains a message record from an ERRMSG file using an
error-key.
The message record, the error-key, and additional information are printed according to the following format:
Line 1 error key

message record

Line 2 INPUT FILE

SEQ NO.

CODE/SIZE/SL

Line 3 fiI e name

number

var. data

where

Seg 1

Seg 4

Seg 0 (root)

The load module named is not
available.

Seg 2

Note that the loader attempts to sCltisfy all the PREFs in a
lower segment before processing the DEFs to a higher segment, so that if a low segment has a PREF whose corresponding DEF is located in both a higher segment and one of the
libraries specified in the UNSAT I:ist, the library DEF will
be used. (Otherwise, the hi gh segment and an its backward path would be brought into cc)re each time the lower
segment needed that DEF.)

file name
specifies the name of the last input file
processed by the loader.
number
specifies the hexadecimal sequence number
of the last binary record read.
var. data
specifies variable information, the
meaning of which depends on the particular error
that occurred. When the contents of the variable
data field is SR3, the message is preceded by the
mon itor error/abnormal code and its mean ing.

The message records, their corresponding error-keys, and
the significance of the CODE/SIZE/Sl field are shown in
Table 22.

If for any reason access to a message record is denied
DIAGNOSTIC MESSAGES
Diagnostic (error) messages are output on the II device.
Table 21 I ists the messages that are produced by the monitor

the loader, the following message is printed.
xxxxxx BAD ERROR MESSAGE FILE
where xxxxxx is a hexadecimal number for the key.

load Processor

..

~

.

139

Table 22.

Load Error Messages

Key

Message

Description

CODE/SIZE/SL Field

020001

UNEXPECTED EOF

An end-of-fi Ie was encountered before the end
of an object module was reached (incomplete
object module).

SR3

020002

ILLEGAL RECORD I. D.

The type of record read was ne i ther X '3C I nor
X'1C ' (object module) nor X '81 1 , X ' 82 1 , or
X'83 1 (load module).

Record 1. D.

020003

SEQUENCE ERROR

The cards of an object module were out of
sequence.

(None)

020004

ILLEGAL RECORD SIZE

The number of bytes in an object module card
was less than fi ve or greater than X '6(' .

Record Size

020005

CHECKSUM ERROR

A bit (or bits) was dropped in punching or
reading the object module.

(None)

020006

ABNORMAL I/O

An abnormal return was encountered while
reading a I ibrary load module or ROM.

SR3

020007

CANNOT OPEN E. F.

An element fi Ie could not be opened.
not exist, it has a password, etc.)

020008

STACK OVERFLOW

Insuffi cient memory in whi ch to load. If no
map has been partially printed, the module is
too large. If a map has been partially printed,
some unsatisfied primary references have caused
th~ stack to grow to excessive size.
(See messages with keys 020015 through 020023.)

SR3

020009

BIAS TOO LARGE

At the given bias, the load module wi II exceed
131 K of memory.

Bias

02000A

ILL. ROM LANGUAGE

The object language in a relocatable object
module was not translatable (assembler or
compi ler error).

Object module control
byte

02000B

BAD START ADDRESS

A start address was given which is either not on a
word boundary or is not within the load module.

Start address

02000C

UNEXPECTED ROM END

Module end was given on some card of the object
module other than the last card (assembler or
compi ler error).

(None)

02000D

REPEAT LOAD IS ZERO

An assembler or compi ler generated a repeat load
item with a 0 count (assembler or compi ler error).

(None)

02000E

IMPROPER BOUND

A 'short- or long-relocatable item was not on a
word boundary.

Byte address of load
relocatable item

02000F

ILLEGAL ORG

An origin was gen~rated having no resolution or
was not within the load module (assembler or
compi ler error or violation of loader DSECT
restri cti ons).

SR4 (for debugging
purposes)

140

(It does

SR3

Load Processor
-

,

"
"

Table 22. Load Error Messages (cont.)
Key

Message

Descri pti on

CODE/SIZE/SL Field

020010

BAD I/o RETURN FROM
M:LM DCB

The load modu Ie fi Ie cou Id not be opened.

SR3

020011

SEV. LEV. EXCEEDED

The severity level specified in the LOAD card was
less than that encountered in some object module
or that generated by the Loader (a DDEF yields a
severity level of 4, a PREF yields 7).

Computed severi ty
level

020012

ILL. LIB. LOAD MOD.

(PERM) and (LIB) were specified and the load
module had one of the following:

(None)

1.

More than one protection type.

2.

No relocation dictionary (ABS was specified
or forced by the Loader due to nonstandard
relocatable fields).

3.

More than one segment.

020013

NO ROOM TO ROUND DCBs
TO PAGE BOUNDARIES.
TRY FORCING XMEM .

The DCBs and DCB Name Table exceed
1024 words.

High address of DCBs

020014

ILL. DSECT

Two dummy sections having the same name but
different protection types were encountered.

First 4 characters of
DSECT name

020015

ROOT SEGMENT TOO
LARGE TO LOAD

020016

TOO MANY CORE
LIBRARIES

020017

CANNOT ENTER XMEM.
STACKS TOO LARGE

Number of words that
stacks exceed available core

020018

NOT ENOUGH ROOM TO
CONCATENATE XMEM
PAGES

Number of words exceeding avai lable
core

020019

NO ROOM TO READ LIBRARY
CORE IMAGE

Size of library
Imn's core image

02001A

NO ROOM TO READ LIBRARY
RE LOCA nON DICTIONARY

Size of relocation
dictionary

02001B

NO ROOM FOR NEW
EXPRESSION

(None)

02001C

NO ROOM TO BUILD DCB
TABLE. TRY FORCING XMEM.

(None)

N umber of words
exceeding avai lab Ie
core
Only one core library (named :PO,:P1, :P2,
etc.) is permitted.

(None)

Load Processor

141

Table 22.
Message

Key

Load ErrQr Messages (cont.)
CODE/SIZE/SL Field

Description
I

020010

NO ROOM TO BUILD DCB

Size of DCB table

02001E

LIBRARY LOADMODULE REF/
DEF STACK TOO LARGE TO
UPDA TE

(None)

02001F

INSUFFICIENT PHYSICAL
MEMORY

020020

BAD ASSIGN/MERGE
RECORD

SR3

020021

NO ROOM TO ADD LIBRARY
LOAD MODULE TO ROM
TABLE

Top of REF/DEF Stack

020022

NO ROOM TO READ LIBRARY
REF/DEF STACK

Si ze of library Imn IS
REF/DEF Stack

020023

NO ROOM TO UPDATE
LIBRARY

REF/DEF Stack si ze of
old version of this Imn.

020024

INVALID KEY SUPPLIED FOR
DELETE RECORD ON M:DIC

Cannot update :DIC for this library load
module.

Key size

020025

10 ERROR ON M:DIC IN
WRITESEG

Cannot update :DIC for this library load
module.

SR3

020026

ILLEGAL LIBRARY LOAD
MODULE NAME

The name is

020028

INVALID DECLARA nON
NUMBER REFERENCE (BAD
ROM)

An expression in a relocatable object module
contains a reference to an unassigned declaration name number (assembler or compiler error).

The bad declaration
number

020029

INVALID KEY SUPPLIED
FOR WRITE RECORD ON
M:DIC

A DEF name in a library load module was not in
the lega I range of 1-63 characters.

Key size

02002A

ILLEGAL LOADER TRAP

Loader error. When such errors occur, the loader
takes memory snapshots for use in identifying the
error.

Register 0

02002B

ABNORMAL I/O IN
WRITELIB

The: LIB fj Ie could not be opened.

SR3

02002C

CANNOT FIND REF/DEF
NAME IN STACK

The loader encountered a new REF/DEF name
during its second pass.

Byte count and first
3 characters of name

02002D

LIB. LOAD MODULE TOO
BIG - CANNOT USE
EXTENDED MEMORY

Extended memory mode has been entered (because
the core image is too la rge to be formed in
one piece) and the load module has been forced
ABS (i"egal for library Imnls).

(None)

142

Load Processor

See" Stack Overflow" description
(Key 020008),

> 12

characters.

RO (for debugging)

Number of characters
in name

Table 22.

Load Error Messages (cont.)

Key

Message

Description

CODE/SIZE/SL Field

02002F

ABNORMAL I/O READING
LIB LMN

An abnorma I return was encountered whi Ie reading
a library load module during the loader's second
pass.

SR3

020030

PAGED LMN MUST NOT
HAVE MORE THAN
256 SEGMENTS

020031

LMN'S SIZE TOO BIG

The size (in doublewords) of a protection type of
the load module does not fit in the halfword allowed for it in the tree.

(None)

020032

THAT'S NOT A (MAPPABLE)
LOAD MODULE

Specified file has no 'HEAD' or 'TREE' record.

Byte count and first
three characters of nome

020033

BAD ENTRY IN LIBRARY
REF/DEF STACK

The loader detected a mal formed library
REF/DEF stack. (The user may have violated
rules for library load modules. )

(None)

020034

BAL TO AN OVERLAY ON
REGISTER ZERO DETECTED
WHILE IN BREF MODE

BAL,O to an overlay segment is not allowed
in BREF mode.

(None)

Number of segments
specified

LYNX PROCESSOR
LYNX is a load processor that is ovailable in both the
online and botch modes. LYNX has the capabilities
of the overlay loader, Load, and also provides the same
control over internal and global symbol table construction
which is available in the linkin~J loader, Link. LYNX is
speed-competitive with the Link loader, and in many cases
will run faster than Link. In addition, on-line load maps
are formatted taking into account the platen width of
the terminal.
LYNX may be viewed as a preprocessor for the Load loader.
After it analyzes the user's commands, it constructs a table
of loader control information which it then passes to the
overlay loader. It is the Load loolder which actually performs the loading process. Therefore LYNX is a load
module as shown in Table 1'7.

COMMAND FILE INPUT
In order to have LYNX read its commands from a fi Ie, the
following command should be given:
!L YNX

fid

where fid identifies the file.
LYNX will examine the indicated file to determine whether
or not it is a ROM. If the fi Ie is not a ROM, it wi" be
treated as input commands for LYNX. If the file is a ROM,
it will be loaded, creating (as in the case of Link) a temporary load module file which can then be run using the
!START $
command in the on-line mode, or the
!RUN
command in the batch mode.

The botch made LYNX processor recognizes two commands, LYNX and :TREE. Since the LYNX command
is a control command which calls the LYNX processor,
it must be preceded by a ! character. These two commands wi II be descri bed in detail later.

COMMAND CONTI~IUATION
The presence of a semicolon as the last character on an
input I ine indicates that the command is to be continued.
LYNX will perform another read of the 51 device, prompting the user with a > character if 51 is assigned to an onI ine terminal.

90 17 MH-l (9/78)

LYNX COMMANDS
LYNX
The LYNX command has a syntax which is generally compatible with that of the LINK command. This permits a LINK command to be run under the LYNX processor
by simply changing the command name from LINK to LYNX.
However, there are some restrictions. These are lish:dbelow:
1.

ROM names may not be enclosed in parenthesis to merge
their internal symbol tables. If the construction of internal'symbol tables is specified (via the I option), one
table will be built for each ROM.
LYNX Processor

143

2.

The D and ND options concerning the displpying of
undefined symbols will not be mean ingful. Undefined
symbols will always be displayed.

3.

The C and NC options concern ing the displaying of
conflicting internal symbols will not be meaningful since
internal symbol tables cannot be merged. Conflicting
(doubly defined) external symbols will always be
displayed.

4.

The options Ji, Pi, FDP, and NP options for associating
or not associating publ ic Iibraries will not be necessary.
The libraries will automatically be associated in the
case of PO and Pl. For JO, J 1, and J2, the load modules :JO, :J1, and :J2 from :S YS can now be specified
as element files. However, the presence of either JO,
J 1, or J2 as an option will produce the desired results
(i. e., loading of the appropriate I ibrary module with
the other element files). Note that if a load module
using any of these Iibraries is overlaid, the appropriate
module name{s) must appear on the :TREE command.

specified anywhere in the command except between
a preposition and its object. For convenience they
are shown immediately following the commond verb.
All options must be specified within parentheses.

As with the LINK command, the options may actually
appear anywhere in the command string and must be preceded by a left parenthesis or enclosed within parentheses.
The options are described below.

Options that determine input to the loader
BI

specifies that the BI input device is to be used to
read unspecified relocatable object modules.
Object modules will be loaded from the BI device
until either two end-of-data codes (05)or one endof-file code (06) is encountered.

L

specifies that the system library is to be searched.
(L is assumed by default if Nl is not specified.)

NL

spec ifies that the system Iibrary is not to be
searched.

JO

specifies that :JO (which contains all JIT definitions) is to be included as an element file.

J1

specifies that the monitor's REF/DEF stack is to
be included as an element file.

The general format of the LYNX command is:

: LYNX

)I

ell,ell. · .[ g~ER 1m" options)

J

[[;[libname] [. (libacct] [. password])].
where
ef

Imn

may be the file identification (fid) of a ROM, a
Iibrary load module, a DEFCOM-build load module, or a SYSGEN-built load module, or simply a
dollar sign (S).

(load module name) specifies where the load
is to be placed and may be a file identification (fid) or dollar sign. If Imn is omitted, the resulting load module is placed in a special file and is
available.for subsequent execution via the RUN
command.
mo~ule

libname
specifies the name of a library. :LlB.:SYS is
the default library if no library name, account, or
password is specified and if the NL option is not specified. If liI:)Qcct is specified, but Iibname is not
specified, then the default libname is :LlB.
I ibacct
specifies the account from which the library
is to be obtained. If libname is specified but no
I ibacct is specified, the default account is :SYS.

password
exists.

T

specifies that the named load module is to be
created as a temporary file.

LI B [, Iibname] specifies that a library load module is to
be built (provided that the T option is not specified).
If LIB is specified, any external definitions or external
references in the load module will be added to the
library's table of external definitions and the load
module will be inserted into the account's element
file library (Iibname). If UB is specified, the load
module must consist of a single control section of
uniform memory access type.

specifies the password for the library if one

options
specify loading pnd linking options. These
options are described below. Most options may be

144

Options affecting future access to the load module file

LYNX Processor

NOIC
prevents modification of the library's dictionary
tables. This option may only be used in conjunction
with the LIB option.

90 17 MH-1 (9/78)

RD[, value]. . .
specifies the account numbers of
those ac counts that may read but not' wr i te the fi Ie.
The value ALL may be used to specify that any'
account may read but not write the file (e. g. ,
RD, ALL). The value NONE may be used to
specify that no other account may read the file.
If no value is specified, or if RD is omitted, ALL
or NONE as specified in the user's authorization
record is assumed by defaul,t. The total number of
accounts expl icitly specified in a RD specification
may not exce.-ed eight.

WR[,value]...
specifies the account numbers of
those accounts that may have both read and write
access to the file. The values ALL and NONE
may be used as described fol' the RD option above,
except that NONE is assumed by default. If a
confl ict exists between RD CJJnd WR specifications,
those of the WR option take precedence. The total
number of accounts explicitly specified in a WR
specification may not exceed eight.
EX, value [, value]. . .
specifies the account numbers of those accounts that may execute the fi Ie.
Up to eight account numb~~rs may be spec ified.
The value ALL may be used to specify that any
account may execute the file. The value NONE
may be used t'o spec i fy that no other account may
execute the file. In all of the above cases,
RD, NONE is implied in the absence of any RD
specification.
mm,dd,yy}
ddd
specifies either an explicit
{
NEVER
expiration date (mm,dd,yy),
a life in days (ddd), or that the file is never to
expire (NEVER). The default value is that in the
user's authorization record. The val ue specified
may not exceed the maximum expiration period
authorized for the user. If the maximum expiration period is exceeded or if EXP is not specified,
the default expiration periocl authorized for the
user will be used.

C1

specifies that the load module is to be formed
with a protection type of 01, except for the TCB
and blank COMMON (which have a code of 00)
and except for any type 10 control sections input
in load module form.

M 10

specifies that each control or dummy section is
to be loaded at the next greater multiple of 10 16 ,

M 100
specifies that each control or dummy section
is to be loaded at the next greater multiple of
100 16 ,
Options concerning the loader-built Task Control Block
TSS, size
specifies (in hexadecimal) the maximum
size, in words, of the load module's Temporary
Storage Stack. If TSS is omitted, the maximum
size is set at X'40' words. The greatest size that
may be specified is limited to available core storage and may not exceed 7FFF words regardless of
core size.
ERT, size
specifies the size, in hexadecimal number
of words, of the library error table. The default is
ten words.
ERS, size
specifies the size, in hexadecimal number
of words, of the Iibrary error stack. The defau It is
ten words.
specifies that no Task Control Block is to be
NTCB
created by the loader.

EXP,

Options concerning symbol tables
specifies that an internal symbol table is to be
built for each ROM which was assembled or compiled to contain internal symbol tables.
NI

specifies that internal symbol tables are not to
be built. NI is the default if neither I nor NI is
specified.

G

specifies thata global symbol table is to be built
for this load module. A global symbol table contains all symbols which were declared external
(via a DEF) in one module to be referenced in another (via a REF). This is the default if neither
G nor NG is specified.

Options affecting the location. of the program at execution
time
LS, value
specifies the load bias (as a hexadecimal
word location). If the value is not a page boundary,
the next lower page boundclry is used. If no bias
is specified, the program will be loaded at location X'AOOO'.
CL

specifies that when the load module is brought
into core for execution, virt'ual core is to be allocated with the special shared processor area held
in reserve. This permits thEI association of a core
library at run time and linkage (via M:LINK/
M:LDTRC) to Clnother load module that is associated
with a core library.

NG

specifies that a global symbol table is not to
be built for this load module.

Options determining how overlay segments will be brought
into core at execution time
specifies that the overlay structure is to be set
·up for the segment loading mode. In this mode, it
is the user's responsibility to explicitly load each

LYNX Processor

145

segment from disk storage to core storage (e. g. ,
by means of the M:5EGLD procedure) before it is
referenced by the executing program. This mode
is faster in operation than the reference mode (see
below) but less convenient.
OR} [,num]
specifies that the overlay structure is'to
{SEG
be set up for the reference loading mode. In this
mode, the execution of any instruction referencing
an external defin ition in another segment on a
lower overlay level will cause that segment and
all its backward path (see the :TREE command) to
be loaded if not already in core (even if the reference is on unsatisfied conditional branch). The
external reference must not be in on instruction
that may be changed or replaced during program
execution.
The decimal value "num", if present, specifies
the maximum number of interbranch references
within the program. If "num" is absent or zero,
the loader will reservea total of 22words per segment (four words are required for each interbranch
reference) in its reference loading table.
'OB } [,num]
specifies that the overlay structure is to
{ BREF be set up for the branch referencing loading mode.
In this mode, any permissible branching reference
(in another segment of the program) to on external
definition within a given segment will couse that
segment and all its backward path to be loaded, if
it is not already in core storage. If a nonbranch
reference is mode to on external definition within
a given segment, the OB mode will assume that
segment to be in core. OB should be used for 0/1
overlaid FORTRAN or COBOL programs. A
branch reference causes register 0 to be changed.
The optional value "num" has the same meaning
as for the reference loading mode (see OR, above).
If "num" is absent or zero, a total of 11 words per
segment are reserved in the reference loading table
(two words per reference).
One of these options must be specified if the load module
being formed is to be overlaid. The presence of one of these
options in the command string will couse LYNX to read the
SI device one more time foHowing the end of the LYNX
command string, looking for a :TREE command.

Additional options
A

speci fies that no relocation dictionary is to be
formed for the load module (i. e., the load module
is absolute).

R

specifies that a relocation dictionary is to be
formed for the load module, and the load module
will be treated as semiabsolute (i. e., executable
but capable of being relocated). If neither A nor R
is specified, A is assumed.

M(N]
specifies that a load mop is to be output on
the LL device and that the DEFs within each segment are to be sorted by nome.
MV

{MVN}
specifies that a load mop is to be output on
MNV the lL device and that the DEFs within each segment are to be sorted by nome and value.
NM

specifies that no load mop is to be output. NM
is assumed if neither MN, MV, nor MNV is
specified.

MO

specifies that only a mop of on existing load
modul e is to be produced. The mop is to be sorted
by nome.

MOV
specifies that only a mop of an existing load
module is to be produced. The mop is to be sorted
by value.
MOVN}
{ MONV

specifies that only a mop of on existing
load module is to be produced. The mop is to be
sorted by nome and vol ue.

LDEF
is used in con junction with the M or MO option and requests that a listing be produced that
includes all the used library DEFs for the load
module.
UDEF
is used in conjunction with the M or MO
option and the LDEF option and requests that a
listing be produced that includes all the library
DEFs defined in the load module.
RDEF
specifies that all unused DEFs are to be removed from the load module's REF/DEF stock. A
shortened REF/DEF stock is created for the load
module.
SS

lYNX Processor

specifies that a size summary for each segment
detail ing the memory allocation for each protection type is to be output. 5S is assumed if any
type of load mop is requested.

SL, value
specifies the error severity level that will
be tol erated by the loader in form ing a load module. The value may range from 0 to F. The default is 4.
PA

146

specifies that a load mop is to be output on the
LL device and that the DEFs within each segment
are to be sorted by value.

specifies that those portions of the load module
that will be loaded into core at execution time
are to be developed in page-size records. The
load module formed is called a paged load module.
The, load module is formed in extended memory
mode. f'v4ore time is required to form the load

90 17 64H- 1(9/78)

module, but since uninitBalized pages do not get
written as part of the load module, programs that
have large areas of unin iHalized data will occupy
fewer granules.
NBS

specifies that the loader is not to use a sort table
to speed up stack searches. The core required for this
table is then available for creating very large core
images (>40K) without using extended memory mode.
NBS and MNV cannot both be specified.

OSP

specifies that any controll sections of protection type 00 in an overlay segment should be
forced to the root of the load module. This option
is intended primarily for 10(lding overlaid shared
processors written in FORTRAN and is only val id
for programs having one Ievel of overlay structure.

DREF
when used in conjunction with the LIB option,
causes all dummy section def'in itions to be changed
to PREFs. This allows alibrary to be builtin which
all references to a particular named DESECTwili be
linked to a single copy of that DSECT (e.g., a
FORTRAN BLOCK DATA subprogram). Such initial ized dummy sections should be contained in
the only library load module loaded without the
DREF option.
PRIV [, p] [, J] [, M][, X]
sets the privi leged processor
nags for the load modul e. One to four flag letters
may be specified in any order. The flag letters
have the following mean ings:
P

J

- processor accounHng. (Execution time
is to be tall ied as processor rather than
user execution time in the accounting
record. )

- spec ia I J IT access.

M - maximum memory allocation.
X - execute M:SYS CALs.
These flags have no mean ing unless the load module
resides in the :S YS account.
LOR, name [. [account] [. password]]
directs LYNX
to be a preprocessor for a loader other than
LOADER. :SYS;. The default account is :SYS. The
function performed by this option can also be performed by assigning the F:LOADER DCB to the desired
loader.
NASN
instructs the loader to ignore any F:number
DCB assignments specified via ISET or IASSIGN
commands when constructing DCBs for the load
module being built; i. e. f any such DeBs will not
be included in the load module if NASN is
specified.
MAPPING EXISTING LOAD MODULES
In order to produce a map of an existing load module, the
format of the LYNX command must' be:

90 17 64H-l (9/78)

f LYNX

fid

1~~g~) I
(MONV)

where fid specifies the file identification of the load module.
The LDEF and UDEF options are also valid in this context.
All other options will be ignored.
, :TREE
If a program is to be overlaid, a :TREE command
must be the next command following LYNX command. It
must specify the overlay structure of the load module to be
formed, so that the logical segments of the program will be
loaded from secondary storage into core storage as required.
It is the user'sresponsibil ity to plan the relationshipof these
segments. If BI relocatable object modules (ROMs) are to
be loaded from the C-device, they must be placed after the
LYNX command and must precede the :T REE command.
The relationship of the segments that comprise an overlay
program can be represented graphically by means of a tree
diagram, as in the example shown below. The horizontal
coordinate of the diagram denotes increasing core storage
{address} allocation, from left to right. The vertical coordinate denotes overlays. The leftmost segment, or "root", is
that portion of the program that resides in core storage
through program execution. A "path" of an overlay consists of those segments that may occupy core storage at the
same time. The portion of a path that extends Tom the
start of the program (i. e., the root) to a given segment is
termed the "backward path" of that segment.
The following example consists of four paths, anyone of
which may be present in core storage at any given time.
Segment A, below, is the root of the program and is never
overlaid by another segment. Any path may be loaded into
core storage and overlaid as many times as required by the
program. All segments of the load module are saved in
disk storage and, when a segment that has been overlaid is
called again by the executing program, the original copy
is loaded from the disk. Therefore, any communication
between two overlay segments (e. g., D and E, below) must
be done in a part of the backward path common to both.
Example:

1

E

e

I

0

I

A

I

G
B
F

1
LYNX Processor

147

This example specifies that an overlaid load module 'LMS'
is to be produced from element files X, Y, and Z in the
running account. A map sorted by name is desired, internal
and global symbol tables are to be built, and overlaying
will be done explicitly within the program via M:SEGLD
CALs. The default I ibrary in ACCNTl will be searched to '
satisfy any pdmary external references (PREFs). The load
module will have the tree structure:

The form of the :TREE commCl1d is
:TREE specification
where specification specifies the tree structure by use of
the symbology given below.
name
specifies the name of an element file (EF).
The name (1-10 characters) must not contain any
special delimiters (e.g., -) embedded in it.

( )

indicates that two named relocatable object modules are to be contiguous in core storage.

Y

indicates that two segments are to overlay one
another (i. e., begin at the same core storage
location).

Z

indicates a new (lower) level of overlay.

The load module can be executed by one of the following
two commands in the on-line mode:

No two segments may begin with the same EF name, since
the name of the first EF becomes the name of the segment.

!START LM5

Example:

!LMS.

:TREE A - (C - (E, D), B - (G, F»
The above example is a symbol ic representation of the overlay structure of the preceding graphic example.

It can be executed by the following command in the batch
mode:
! RUN (LMN, LMS)

LYNX EXAMPLE
ERROR MESSAGES

The following is an on-line example of LYNX usage.

! LYNX X, Y, Z OVER LMS(M)(I)(G);

Error messages are output on the terminal in the on-I ine
mode and on the LL device in the batch mode. They are
preceded by a portion of the command line, ending at the
point of error detection. The LYNX error messages are
listed in Table 23.

~(OS); . ACCNTl

>:TREE X-(Y, Z)

Table 23.

148

LYNX Error Messages

Message

Description

*** BAD: TREE COMMAND

LYNX is completely unable to make sense of the: TREE command,
or the: TREE command is missing but an overlay option was
specified on the LYNX command.

*** CONFLICTING OPTIONS

The user specified two conflicting options (e.g.
same option twice.

*** ELEMENT FILES IN E. F. LIST NOT IN TREE

The user specified element files in the LYNX command which
did not appear anywhere in the :TREE command.

*** ELEMENT FILE IN TREE NOT IN E. F. LIST

An element file appeared in the: TREE command which was not
specified in the element file list.

*** FILE NAME IS TOO LONG

The file name must be no more than 10 characters in length.

LYNX Processor

I

I, NI)or the

Table 23.

LYNX Error Messages (cont.)

Message

Description

*** ILLEGAL DECIMAL NUMBER

An il legal decimal digit was detected in one of the LYNX
options.

*** ILLEGAL HEXADECIMAL NUMBER

An illegal hexadecimal digit was detected in one of the LYNX
options.

*** INSUFFICIENT MEMORY AVAILABLE

The user's core allocation is so low that LYNX is unable to
obtain the memory it requires for constructing tables.

*** NOT BACK TO LEVEL 0 OF TREE

At the conclusion of scanning the :TREE command, it was
apparent that the overlay structure has not been completely
defined. The user probably omitted a closing parenthesis
somewhere.

*** NUMBER TOO LARGE

The numerical value specified on an option is beyond the legal
range.

*** 10NI ILLEGAL -- LOAD MODULE EXISTS

The user attempted to use the ON preposition to build a load
module which already exists.

***

The user misplaced a parenthesis or misused the :TREE
specification.

ROOT WOULD BE OVERLAID-BAD TREE
STRUCTURE

*** SYNTAX ERROR

The user made a syntactical error in the LYNX command about
which LYNX is unable to be more specific.

*** TOO MANY ACCESS ACCOUNTS

M()re than eight read accounts, write accounts, execute
account s, or I ibraries have been specified.

*** UNABLE TO COpy BI INPUT

An error other thon end-of-data or end-of-file has occurred
while reading M:BI for the BI option.

***

UNBALANCED PARENTHESIS - BAD TREE
STRUCTURE

The user probably supplied an unexpected or superfluous closing
parenthesis.

***

UNEXPECTED END OF COMMAND

A closing parenthesis is absent, or an expected final field in
the LYNX command is missing.

***

UNRECOGN IZED OPTION

The user specified an option which LYNX is unable to identify.

90 17 64H-l (9;78)

LYNX Processor

149

1 to 10 alphanumeric characters, except for shared
processor names which may only have up to 8 alphanumeric characters.) The dollar sign designates
the most recent compilation or assembly. Parentheses enclosing roms cause merge of symbol table~

LINK PROCESSOR
The link Processor operates in the batch mode or in the
on-line mode. It constructs a single entity called a load
module (LM) which is an executable program formed from
relocatable object modules (ROMs). Link also provides the
necessary data space and program linkages for the association of public libraries. Program execution is initiated by
the RUN command described below under "Control Commands". (Note: The batch-mode RUN command has a different format than the on-line RU N command used to initiate
execution. The batch mode RUN command is described in
the Load processor description. However, it may be used
to execute a load module formed by either the Link or Load
processors. The accounting summary generated at the end
of each job is described at the end of th is chapter.

Imn

(load module name) specifies where the load
module is to be placed and may be a file idei1tification (fid) or dollar sign. (The name portion of
the fid may consist of from 1 to 10 alphanumeric
characters, except for shared processor names whi ch
may only have up to 8 alphanumeric characters.)
If Imn is omitted, the resulting load module is
placed in a special fi Ie and is avai lable for subsequent execution.

lid

specifies a library file identification. Unsatisfied
external references are resolved by specifying the
order and identification (I id) of Iibraries to be
searched after the input modules have been linked.
A Iist of library identifications (I id), separated by
commas, is appended to the Iist of modules in the
LINK command and is separated from the module
list by a semicolon.

As previously mentioned, Link is a one-pass linking loader
that makes fu" use of mappi ng hardware. It is not an overlay loader. The load processor must be used if an overlay
loader is needed.
The access protection types provided by Sigma 6, 7, or 9
hardware are
00

read, write, and execute access permitted
(data).

01

read and execute access permitted (pure
proc edure ).

02

read access permitted {static data}.

03

no read or write permitted (no access).

The final program resulting from a Iinking operation has
three protection types, one for data, one for pure procedure,
and one for DCBs. Static data and nonaccess information,
if specified, are loaded with the pure procedure.

are optional codes used to specify a library
codes
search, a display, or inclusion of a symbol table.
The optional codes are described below; they may
be entered anywhere in the command except between a preposition and its object.

Options specifying I ibrary search
(l)

specifies that the system library is to be searched to
satisfy externa I references that have not been satisfied
by the program. (This is a default option.)

(Nl)

specifiesthata system library search is not required.

LINK CONTROL COMMAND

LINK

The loader that is invoked by a LINK control
command processes relocatable object modules. The resulting
load module is a keyed file that is placed in the user's
account. Execution of the load module is triggered by the
RUN control command (described below) which brings the
load module into core storage and transfers control to it.
(A load module may also be called internally by an executing program via the M:LINK procedure.)
The LINK control command has the form

! L1NK[optio"s]rom[,rom] •••
L[,lid).

[g~ER 1m"] [;lid-=:J

0') [UNDER FDP)

where
rom

150

specifies a relocatable object modu Ie and may
be either a file identification (fid)or a dollar sign.
(The name portion of the fid may consist of from

li nk Processor

(Pi)(J i)
specifies that the ith public core Iibrary is to be
associated with the program to satisfy external references. Only one public library of each type (J or P)
may be associated with a program. PO, P1, and P4
are supplied by Xerox; Pl contains a subset of the
FORTRAN Iibrary subroutines; PO includes P1 and the
FORTRAN Debug Package; P4 includes P1 and the
FORTRAN real-time features. JO contains JIT definitions and J 1 contains the monitor definitions. (These
two Iibraries are generally only used by system analysts.) Additional public libraries must be named P2,
P3, P5-P9, and J2-J9. (P1 is a default option.)
(FDP)
(NP)

equivalent to (PO).
specifies that a public core library is not required.

The sequence of the Iibrary search is as follows: User Iibraries are searched first, the public library is associated,
and the system library is searched. In the absence of any
other specifications, public library P1 is associated with
the load module to satisfy external references, and the system (ROM) Iibrary is searched if necessary.

Options affecting end actions and error displays
(D)

! LINK (D,A), (NI)B, C ON F;G, H

specifies that all unsatisfied internal and external
symbols are to be displayed a~ the completion of the
linking process (including library searches, if specified). The unsatisfied symbols are identified as to
whether they are internal or E~xternal and to which
module they belong. (This is a default option.)

3.

(ND)
specifies that the unsatis.fied internal and external
symbols are not to be displayed.
(C)

(M)

Options affecting inclusion of the symbol table.

(NI)

4.

include symbol table with LM.
do not include symbol table with LM.
default option. )

Assume the same conditions as in the second example
except that no I ibraries are to be searched.
! LINK (NL)(NP)(D,A),(NI)B,C ON F

specifies that the load map is to be displayed upon
completion of the linking process. The symbols are
displayed by source with type resolution and value.

(NM)
specifies that the load map is not to be displayed.
(This is a default option.)

(1)

! LINK (L)(P2)(D,A), (NI)B,C ON F;G, H

specifies that all conflicting internal and external
symbols are to be displayed. The symbols are displayed
with their source (module name) and type (internal or
external). (This is a default option.)

(NC)
specifies that the confl icting symbols are not to
be displayed.

Assume the same prob lem as in the previous example
except that the system library is to be searched for external references and public library P2 is to be associated with the load module.
.

5.

Assume there are two relocatable object modules. The
internal symbols for the first module (MFL 1) are to be
left out of the resulting load module, but the internal
symbols for the second module (MFL2) are to be
included. The resulting load module is called LM 1.
!LINK (NI) MFLl,(I) MFL2 ON LM1

(This is a

Option affecting execution of the load module
(EX,acct [,acct] •• 0)
specifies those accounts whi ch may
execute this Imn. Up to 8 accounts may be specified.
The value ALL may be used to specify that any account
may execute the Imn (This is the default when no EX option is specified). The value NONE may be used to
,specify that no other account may execute the Imn.

If the Link processor needs additional information, the
job wi II be aborted with the appropriate message output
to the line pri nter. For instance, us i ng the same example, suppose that Link cannot find MFL2 because it
was supposed to be MFL3. The job wi II be aborted
and the following message wi II be output to the line
printer:
CANT FIND: RETYPE MFL2

Examples
CONTINUED COMMANDS
1.

Assume that a load module, F, is to be created from
ROMs A, B, C, and D. The interna I symbo Is for fi les D
and A are to be merged. The internal symbols for Band
C are not to be included in load module F.

The LINK command may be continued from one card to the
next by putting a 'less than' symbol «) in column 80 of the
card to be continued. This symbol cannot be embedded
within a word or between a preposition and its object.

! LINK (A,D), (NI) B,C ON F

'2.

Assume that a load module, F, is to be created from
files A, B, C, and D. Internal symbols for files Band
C are not to be included in the load module; internal
symbols for fi les D and A are to be merged. Two user
libraries, G and H, are to be searched to satisfy external references'. Public library P1 is to be associated
with the load module but no search of the system library is required.

LOAD MODULE STRUCTURE
A load module formed by Link is composed of three parts:
'program, global symbol table, and internal symbol table.
Each of these parts is described in the following sections.
Link Processor

151

names in the system account and are used to link programs to them. See the CP-VjSP Reference Manual,
90 31 13, for more detai led information on the structure
and creation of public libraries.

PROGRAM
A program may be sectioned into six parts: pure procedure,
data, commOli, DCBs, publ ic I ibraries, system library.
1•

Pure Procedure

On Iy one block of core memory is required for the
public library no matter how many users are using it.
However, use of just one routine in the public library
requires core for the entire package. The reentrant
portion of each library is shared among users (on-line
and batch), thus saving physical core memory and
allowing for more efficient system operation. Userdependent data storage for each library routine is allocated by Link at a fixed virtua I address. Thus, each
public library is constructued in two parts: reentrant
procedure and direct access data. By forming the
library in this manner, a speed advantage of from 5 to
20 percent over push-down storage reentrrlncy is
obtained.

This section of code contains machine instructions and
is generated by compi lers and assemblers with protection type 01 (read and execute access). Sections with
a nondata protection type (static data and no access)
are also included here.
2.

Data or Program Context
This section is generated by the compilers and assemblers with protection type 00 (read, write, and execute
access).

3.

Common

Four public libraries are available: PO, P1, P4, and JO
(only the first three are of general interest). Library
P1 contains the most commonly required routines from
the Extended FORTRAN IV run-time and mathematical
library (about 60 routines). Library PO includes library
P1 plus the FORTRAN Debug Package (FDP). Library
P4 includes library P1 plus the FORTRAN rea I-time
features. These three Iibraries will satisfy the requirements of the majority of users for program execution,
debugging, and real-time services, respectively. (The
remainder of the run-time and mathematical routines
comprising the entire Extended FORTRAN IV subprogram library reside on the system library, described
below.) Public library JO contains the user-JIT Definition Package. (See the CP-Vjsp Reference Manual,
90 31 13 also for more detailed descriptions of libraries
PO, P1, P4, and JO.) Additional public libraries created by a user-installation may be names P2, P3, or
P5 through P90

This blank common storage is generated by compilers
and assemblers as a dummy section with the name
F4:COM. The size of blank common storage is determined by the first size declared. All subsequent
F4:COM declarations must be less than or equal to
that size.
4.

DCBs
A data control block (DCB) is a table containing the
information used by the monitor in performance of an
I/O operation. At the end of a link operation, Link
constructs a DCB corresponding to each outstanding external reference with names beginning with F: and M:.
Output is via the M:LO DCB. If the program being
tinked does not contain a reference to M:DO, a reference to it is supplied by Link, since diagnostic output
is generally written via this DCB. If the user does not
want this DCB to be constructed due to space considerations, he can explicitly reference M:DO and satisfy
the reference (vacuously) within his program. (Some
diagnostic output is likely to be lost.) All the DCBs
cannot exceed two pages when the Link processor is
used.
A DCB name of the form M:ab, where ab corresponds
to an operational label, is considered a reference to a
standard system DCB. The standard system DCBs are
dis'cussed in terms of operational labels and default
assignments later in this chapter under "Data Control
Blocks ".

5.

Public Libraries
Any CP-V installation can define a set of subroutines
that constitute a public library. The installation may
specify several different public libraries containing
collections of routines that are useful in various environments. Only one library of type Ip i and one of
type IJ I may be associated with an executing program.
DEF stacks for public libraries are stored under special

152

Use of the real-time public library, P4, requires specification on the LINK command of the file :BLIB in the
real-time system account (e.g., :SYSRT) as a library
file identification. This library file will be searched
before the public library is searched.

6.

System Library
The system library consists of approximately 190
FORTRAN IV library routines in ROM form, in file
:BLIB in the :SYS account. Searching of this library
is implied by the defau It Iibrary-search code L in a
LINK command. This library is always searched last if
any unsatisfied references remain unless the NL option
is specified. Routines that are obtained from the system library become part of the user program and are
not shared. Thus, core is required for each system library routine. The speed advantage is sti II maintained
since each routine includes any necessary data.

Link Processor
'(r'
/

J

I

GLOBAL SYMBOLS
While performing the linking process, link constructs a
global symbol table. This table is a list of correspondences
between symbolic identifiers (labels) used in the original
source program and the values or virtual core addresses that
have been assign(!d to them by Link. The global symbols
define (DEF) objects within a module that may be referenced (REF) in other modules. This table is available to
Delta for use in debugging.
INTERNAL SYMBOLS
An internal symbol table is a list of correspondences similar
to the global symbol table but applies only to symbols
defined within the module. Each internal symbol table constructed by link is associated with a specific input fi Ie and
is identified by its name. This, table is also avai lable
to Delta for debugging.
When an interna I symbol is equated to an external symbol
with on addend, and the module containing the external
definition is in a different file from the module containing
the external reference, the file contain.ing the definition
must appear on the LINK command before the file containing the external reference. Fur~hermore, an internal symbol should not be E!quated to an Elxternal reference with an
addend satisfied from a library.

formed by loaders, together wi th the tables of global and
internal symbols, are operated on in a code similar to assembly language symbolic code.

Global and internal symbol tables, as formed by link and
used by Del ta, consist of three word entries. Symbolic
identifiers (labels) are Iimi ted to seven characters. Symbo Is
originally longer than seven are truncated, leaving the initia I seven characters, a Ithough the orig ina I count is reta ined.
Thus, symbols that are identical in their first seven characters and are of equal length occupy one position in the symbol table. The value retained for multi-defined symbols is
the first one encountered during the linking process. Each
symbo.1 entered into the table has an internal resolution and
a type classification. Internal resolutions are: byte, halfword, word, doubleword, and constant. Symbol types are:
instruction, integer, EBCDIC text, short floating-point, long
floating-point, decimal, packed decimal, and hexadecimal.

Object language code produced by CP-V assemblers and
compilers provide internal symbols with internal resolution
and type classification. The loaders retain this information
in processing object language code.

No internal symbo~ table is generated for a named library
(one with a fid).

SYMBOL TAIBLES
Delta makes it possible to reference both global and internal symbols at the time programs I:lre debugged. Programs
Table 24.

DIAGNOSTIC MESSAGES
Diagnostic (error) messages are output on the LL device.
Table 14 lists the messages that are produced by the monitor
during a I ink operation. Some of these messages are for
syntax errors, and others are for errors arising out of the
link operation. Most of these errors terminate the link operation prematurely.
link Error Messages

Message

Description

CANT FIND :RETYPE rom

The specified relocatable object module cannot be found.

CARD CKS/COMPUTED

CKS/cd/cp/

This message is sent to the LL device along with the CHECKSUM
ERROR message. It specifies the card checksum (cd) and the
computed checksum (cp).

CHECKSUM ERROR

A checksum error has occurred. The CARD C KS/COMPUTED
CKS/cd/cp/ message specifies the difference.

CORE LIBRARY OVERLAPS PURE PROCEDURE

There is insufficient virtual memory to contain the pure procedure and the core library REF/DEF stack.

DATA LIMIT EXCEEDED

The data area is so large that it overlays the pure procedure.

DONT TRY TO USE TWO J OR TWO P LIBRARIES
AT ONCE

Only one library of each type is allowed.

DUMMY SECTION LARGER THAN PREVIOUS DEF

The dummy section initia lIy defined was not the largest dummy
section.

link Processor

153

Table 24.

Link Error IYessoges (cont.)

Messoge

Description

GLOBAL SYMBOL TABLE OVERLAPS PURE
PROCEDURE

There is insufficient virtual memory to contain the pure procedure and the symbol tables.

ILLEGAL DATA FORMAT

Input modules did not contain ROM data.

ILLEGAL LOAD ADDRESS

An attempt was made to load outside the limits of the program.

ILLEGAL LOAD ITEM TYPE

ROM input data is illegal (e. g., it is load module data instead).

INSUFFICIENT PHYSICAL MEMORY TO CONTINUE

A request for a m~mory page has been refused.

I/O ERROR LINKING SYSTEM LIBRARY

This message usually indicates there is no system library.

I/O ERROR OPENING OUTPUT FILE

An I/O error occurred during the opening of an output fi Ie.

I/O ERROR READING ASSIGN MERGE RECORD

This message usually indicates there is no assign/merge record.

I/O ERROR READING CORE LIBRARY

This message usually indicates there is no core library.

MODULE II/SEQUENCE#/md/sq/

This message accompanies most other messages. It identifies the
module number (md) and sequence number (sq) of the last card
before the error. Both numbers start at zero.

MORE THAN 2 PAGES REQUESTED FOR DCBS

This message indicates that the limit of two pages for DCBs has
been exceeded.

NO PROGRAM START ADDRESS

The program has no start address. The load module is sti" formed.

ON FILE fid ILLEGAL

ON was specified and the output file (fid) already exists.

SEQUENCE ERROR

A sequence error has occurred.

STAC K OVERFLOW

An internal storage overflow has occurred.

UNEXPECTED END OF ROM DATA

EOF encountered before last card of ROM.

Note: All errors, except CANT FIND and NO PROGRAM START ADDRESS cause abnormal termination of Link.

LEMUR PROCESSOR
LEMUR (library Editor and Maintenance Utility Routine) is
a processor that builds and manipulates ROM and load module libraries. The libraries thus built are accessed by
LYNX or Load when constructing user programs (load modules) that require library routines. LEMUR is available in
both on-I i ne and botch modes.

•

Delete a specified partion of a I ibrary and all references to that portion in the dictionary.

•

Delete a library.

•

Copy a I ibrary module from one I ibrary to another.

•

Copy a library to another library.

LEMUR allows the user to

CALLING LEMUR
•

•

•

154

Construct a library ROM module out of specified
ROMs.
Construct a library load module out of specified
ROMs. (A library load module must be of one protection type.)
Have more than one I ibrary per account.

Lemur Processor

LEMUR is invoked in the batch mode by the control
command
fLEMUR
All commands are read through the M: SI DCB and output
is through the M:LL DCB.

90 17 MH-1 (9/78)

Commands are relatively free-format; i. e., blanks are
_ ignored except as delimiters. If (] semicolon is encountered
in a command line, all subsequent characters in that line
are ignored and the next input Iine is treated as a continuation line. A command I ine beginning with an asterisk (*) is treated as a comment.

The BUILD command constructs a library module
and enters it into the destination library. The Iibrary module constructed may either be a load module or a ROM
module, depending on specifications with in the command.
The format of the command is

BUILD

BUILD name FROM rom-id[,rom-id] •••

LEMUR CONCEPTS

[(option)J(option)J ••• J
where

The following conventions are used in LEMUR:

1.

name
specifies the name of the library module
to be constructed. If the module name already
exists in the destination library, it is deleted and
the new version is constructed and entered.

Names of library modules and DEFs consist of a string
of any of the following characters:

A-Z a-z 0-9

$*%:@#

rom-id
specifies the name of a ROM to be used in
the construction of the load module or ROM
I ibrary module.

They may also consist of a string of the above characters enclosed within single quotes. A library load
module name cannot exceed '10 characters. A DEF
cannot exceed 14 characters.

2.

A file identification has the standard format with the
exception that the name, acc,ount, or password may be
a string of characters enclosed within single quotes.
The name portion of a file identification cannot exceed
10 characters if it identifies CI ROM which is to be part
of a library load module.

3.

A rom-id is the file identification of a ROM.

4.

A lib-id is the file identificaf'ion of a library.

5.

The term "destination Iibrary" is defined to be the
library specified by the LIBRARY command. This is the
library on which the user wishes to work.

6.

The term "default library" implies the :L1B library.
If library name is missing from a command in which
lib-id is optional, then :L1B is assumed by default.
AI so, if the LI BRARY command is not used in a
LEMUR session, the default and the destination
library are the same (:L1B).

7.

If the name already exists, all old dictionary entries which
point to it are deleted. New dictionary entries are then
made for each symbol within the new version of the module
specified by name. If a dictionary entry for a symbol defined in name al ready exists in the dictionary (because it is
DEFed in some other module with a different name), the
entry is changed to point to name.
A I ibrary module is either a ROM module (one or more
ROMs) or a library load module. The option (ROM) or its
absence specifies the type. If the (ROM) option is specified, the module being constructed wi II consist of the
ROMs specified by the rom-id's in ROM form. This allows
subroutines with more than one protection type to be included in the library accessed by the loader. Omission of
the (ROM) option implies that the library module is to be
a load module. In case, LEMUR invokes the loader to
perform the load using the specified ROMs as element files

Options for the BUILD command

The term "I ibrary module" refers to a named collection
of one or more ROMs or a load module which has been
entered into the library via a BUI LD or a CARRY command. The module gets its "name" when it is entered
in th is manner.

ROM module options:
The following options are used if the module being constructed is to be a ROM module. (Load module options
have no meaning for ROM modules and will cause an error
message if used.)
r

(ROM)
specifies that the module is to be a ROM module consisting of the ROMs specified on the BUI LD
command.

LEMUR COMMANDS
LIBRARY
The library command specifies the destination
library (i .e., the library on which the user wishes to work).
The format of the command is

LI BRARY

tam~ [[account] [paSSWOrd]

(M) or
(MN)
produces a list of REFs and DEFs in the module,
sorted by name.

]

where name, account and password have their usual
meanings. If name is omitted, the default is :L1B. If
account is omitted, the default is :rhe user's account.

,

(SL, value)
specifies the ROM severity level that is to
be tolerated by LEMUR in forming the library module.
The value may range from 0 to F. The default is 7.
(The severity level is presented by the ROM.)

Lemur Processor

155

Load module options:

lLEMUR
LI BRARY LI B5
BUI LD LR1 FROM
BUILD LR2 FROM
BUILD LR3 FROM
BUILD LR4 FROM
END

"The following options are used if the module being constructed is to be a I ibrary load module.
(Cl)

specifies that the library load module is to be
formed with protection type 01, regardless of the
protection type specified in the ROM.
2.

(M) or
(MN)
specifies that a load map is to be output on the
LL device and that the DEFs are to be sorted by name.

Assume that the user is logged on in account A55 and
that the user wishes to replace LR3 in t~.c example
above with a load module rebuilt from R4. OTHERACT:
ILEMUR
LI BRARY LI B5
BUILD LR3 FROM R4. OTHERACT(SL,4)(C 1)
END

(MV)
specifies that a load map is to be output on the
LL device and that the DEFs are to be sorted by value.
(MNV)
specifies that a load map is to be output on the
LL device and that the DEFs are to be sorted by both
name and va Iue •
(SS)

specifies that a size summary detailing the amount
of memory allocated is to be output.

(SL, value)
specifies the ROM severity level that is to
be tolerated by LEMUR in forming the library load
module. The value may range from 0 to F. The
default is 7. (The severity level is presented by the
ROM.)
(DREF)
specifies that all dummy section definitions
should be changed to PREFs. This allows a library
to be built in which all references to a particular
named DSECT will be linked to a single copy of that
DSECT (e.g., a FORTRAN BLOCK DATA subprogram).
Such initialized dummy sections should be contained
in a I ibrary ROM module or in a I ibrary load module
loaded without the DREF option.
(X)

specifies that LEMUR should abort if any error
is detected in creating the load module. If (X) is
not specified in the batch mode, a warning message
is issued and LEMUR executes the next command.
(Note: The (X) option is meaningful only for running
LEMUR in the batch mode. If specified in the on-line
mode, the (X) option is ignored.)

DelETE
The DELETE command deletes either the
destination library (i .e., the library named on the
LIBRARY command or :L1B by default) or deletes one or
more named modules from the destination I iprary. In the
latter case, all entries in the dictionary that point to the
deleted module are removed. The format of the command is

DELETE [nameGnamell ..
where name specifies the name of a library module. If
no name is specified, the entire destination library is
deleted.
Examples:
1.

Assume that the user is logged onto account A55 and
wishes to delete modules X, Y, and Z from the
library :L1B.A55 and to delete module A from the
library L1B6.A55.
I LEMUR
DELETE X, Y,Z
LIBRARY L1B6
DELETE A
END

2.

Examples:
1.

Rl (ROM) (M)
R2, R3 (ROM)
R3 (SL,4) (Cl)
R5, R6 (SL,4) (M)

Assume that the user is logged onto account A55
and wishes to delete the library :L1B.A55.
1 LEMUR
DELETE
END

Assume that the user is logged on in account A55 and
that the user wishes to:

The COpy command copies the source library
to the destination library. The format of the command is

COpy

•

Create a new library called L1B5 in account A55.

•

Include Rl as a ROM module.

•

Include R2 and R3 as one ROM module.

•

Include R4 as a load module.

•

Include R5 and R6 as one load module.

(All these modules are in account A55.)

156

Lemur Processor

COpy lib-id
where Iib-id specifies the source library. (The destination
I ibrary was either specified on a LI BRARY command or is
: LI B by defau It. )
The source and destination libraries must be different
(i. e., different accounts or different I ibrary names in
the same account).

· Examples:

1.

Examples:

Assume that the user is logged onto account A55 and
wishes to copy the library LlBA from account 1234
to library LI BB in account A55.

1. The user wishes to carry module ZAP from NEWLI B.:SYS
to ZAP in NEWLI B. A55.

!LEMUR
LI BRARY LI BB
COpy L1BA. 1234
END

2.

(In all these examples, assume that the user is logged onto
account A55.)

!LEMUR
LI BRARY N EWLI B
CARRY ZAP FROM NEWLIB.:SYS
END

Assume that the user is logged onto account A55 and
wishes to copy library LIB from account B36 to the
: LI B I ibrary in account A55.

(Omission of the source module name (name2) impl ies
that ZAP is the source module name.)

!LEMUR
COPY.B36
END
2.
CARRY
The CARRY command copies a library module
from one library (source library) to another library (destination library). The format of the command is

CARRY name 1 FROM

!LEMUR
LI BRARY LI B2
CARRY MAP FROM LlB2.ACN2/ZAP
END

lib-idp'name~

where

The user wishes to carry module ZAP from LI B2 .ACN2
to module MAP in LlB2.A55.

3.

The user wishes to carry module SORT from :LlB.:SYS
to SORT in :LlB.A55.

name1 specifies the module name in the destination
library.
! LEMUR
CARRY SORT FROM .:SYS
END

Iib-id'
specifies the source library. (The destination
I ibrary was either spec ified on a LI BRARY command or is : LI B by default.)

(Omission of a LI BRARY command impl ies that the
destination library is to be :LlB.A55 by default.
Omission of the source library name implies :LlB by
default. )

name2
specifies the module name in the source
library. If it is omitted, l·he source module name
is assumed to be the same ·as name1 by default.

The source and destination libraries must be different
(i .e., different accounts or different library names in the
same account).

If a module with the name specified by name1 already exists
in the destination library, then the original name1 module
records and dictionary records wh ich point to it are deleted
from the destination library, with all name2 module and
dictionary records being copied from the source library
and entered into the destination library.

If a symbol in the name2 module already exists as a dictionary entry in the destination library and it points to a
module other than name2, it will be replaced by the new
entry pointing to name l'

4.

The user violates the rul e that the source and destina~
tion libraries must be different.

!LEMUR
CARRY ZAP FROM :LlB/MAP
END

An error message is issued and the command is aborted.

END
The END command terminates LEMUR and returns
'control to CCI. The format of the command is

END

Lemur Processor
'Jt

.I

.".- •

~,

4 -:-

157

ERROR MESSAGES

Error messages for LEMUR are listed in Table 25.

Table 25. LEMUR Error Messages

158

Message

Meaning

11)" MISSING AFTER OPTION

Self-explanatory.

ACCOUNT NAME TOO LONG

The account name exceeds ei ght charac ters.

BAD FILE I.D.

Self-explanatory .

BAD QUOTE STRING

An illegal character occurred with a string.

CAN'T CREATE LIBRARY

An I/O error occurred when trying to create a new library.

CAN'T OPEN FILE

Either the ROM id doesn't exist, the module doesn't exist
(DELETE), or the source module doesn't exist (CARRY).

CAN'T OPEN LIBRARY

An I/O error occurred when trying to open an existing library.

COMMAND TOO LONG

A command (including continuations) is too long for LEMUR's
command buffer of 256 characters.

EH?

A command is malformed.

FI LE NAME TOO LONG

A file name exceeds ten characters.

GARBAGE AT END OF LINE

A command contains unrecognizable characters.

I/O ERROR

Self-explanatory.

ILLEGAL CONTINUATION LINE

Self-explanatory .

ILLEGAL LIBRARY FORMAT

A reference to a file which is supposed to contain a library
was made in a LEMUR command, but the file is not in
library format.

ILLEGAL OPTION FOR THIS COMMENT

Self-explanatory .

ILLEGAL ROM LANGUAGE

The ROM is malformed.

ILLEGAL ROM RECORD HEADER

The ROM is malformed.

I LLEGAL ROM RECORD LENGTH

The ROM is malformed.

LIBRARY NAME MISSING

A required library name is missing in a command.

LIBRARY NAME TOO LONG

A library load modu'le name exceeds 10 characters.

MALFORMED OPTION

Self-explanatory .

MAXIMUM SEVERITY LEVEL EXCEEDED

The severity level specified by the SL option has been exceeded.

Lemur Processor

)

: .....('"'''1

Table 25.

LEMUR Error Messages (cont.)

Message

Meaning

MISSING FILE NAME

A required file name is missing in a command.

MODULE NAME MISSING

A required module name is missing in a command.

NOT ENOUGH CORE

There is insufficient common or virtual memory to satisfy the
requirements for I/O buffers used in the COpy and CARRY
commands.

NOT ENOUGH SYMBOL SPACE

The space requ ired by LEMUR to construct the dictionary is
insufficient.

PASSWORD TOO LONG

The password exceeds eight characters.

SOURCE SAME AS DESTINATION
LIBRARY

The requirement that the source and destination I ibraries be
different on the COpy and CARRY commands has been
violated.

UNEXPECTED END OF ROM

The ROM is malformed.

UNKNOWN COMMAND

Self-explanatory.

UNKNOWN OPTION

Self-explanatory.

YOU USED THE SAME OPTION TWICE

Self-explanatory •

--

COMMAND SUMMARY
The LEMUR commands are summarized in Table 26.

Table 26. LEMUR Command Summary
Function

Command'
BUILD

na~

FROM rom-id

~rom .. idJ. ..

[(option)[, (option] •••
CARRY name1 FROM

lib~idrnarne2]

Creates and enters a ROM module or library load module into
the destination library.
,
..

~~

--

Copies a library module from a source library to the destination
library.

COpy lib-id

Copies a source library to the destination library.

DELETE

Deletes either the entire destination library or one or more
modules from the destination library.

END

Terminates LEMUR.

LI BRARY [

*

nam~ [. [ accounj [

Pc]SSword]

Defines the destination.
Indicates that the I ine is a comment line.

Lemur Processor

159

TASK CONTROL BLOCK

TSA

The format of the Task Control Block (TCB) generated by a
. loader for the user's program is shown in Figure 9.

is the address of the temp stack used by the
library error package.

TSASIZ
indicates the size, in words, of the temp
stack used by the library error package.

The fields of the TCB are as follows:
is the address of the current top of the
TSTAC K
user's temp stack.

ERTSIZ
indicates the size, in words, of the error
table used by the I ibrary error package.

TSS

ERT

indicates the size, in words, of the user's temp
stack (maximum size is 7FFF).

o

0/

TSTACK-l

0

0

is the address of the error table used by the
library error package.

Stack Pointer
Doubleword (SPD)
0 }

/0

TSS

2

3

For use by GL-1 (Graphics Language)

4
These words for use by a processor

5

6 0

0

TSA-l

7

TSASIZ

8

ERTSIZ

ERT

9

ERTSIZ-2

TSA

0

/0

10 0

0

11 0

0

DCBTAB
TREE

01

12 0

13

For use by a processor

14

XSL specified on RUN control command

15

For use by Mon i tor

TSA

Library error temp stack

ERT

Library error table

TSTA~K

o

Task Control Block

:1

14 1516

Figure 9.

160

1

User's temp stack
1

Task Control Block Format

SSW

}

TSASIZ

~}

ERTSIZ

f

}

1

2526

31

TSS

list which satisfied this REF. The load processor does
not search libraries of accounts in the UNSAT list to
satisfy PREFs to M: and F: names. To include a library
DCB in the output load module built by the LOAD processor, put the library load module name containing
the DCB in the EF list.

DC BTAB
is the address of a tab Ie of names and
addresses of all of the user's DCBs. This table has
the form shown in Figure 10.
TREE

is a pointer to the ~ocation of the user's overlay structure.

SSW

contains the user's sense switch settings
(bits 26-31 contain the settings of switches 1-6).

On transferring control to a user's program or to a processor, the monitor communicates the TCB address through
general register O.

The loader constructs DCBs to be included in the load modules. The Load and Link processors build a DCB only if any
PREFs exist that begin with either M: or F:. DCBs are not
built, however, if the LIB option was specified in the LOAD
command. Specifically, the Link and Load processors build
DCBs when
•

The Control Card Interpreter (CCI) assign/merge record
contains an F: (for example, F: 108) entry.

•

The user has a REF DCB name and has no relocatable
object modules (ROMs) or libraries in the element file

I---

•

An M:SEGLD is generated if a TREE control command
is present.

The detailed format of DCBs for files, devices, and labeled
tape is shown in the appendix titled "Data Control Block
Formats".
All loader generated system DCBs are 51 words long. The
first 22 words (0 through 21) are standard and allocated for
the fixed portion of the DCB. Each variable length parameter (words 22 through 40) is preceded by a control word,
three words for fi Ie name, two words for account, two words
for password, two words for an expire date, three words for
INSN (SN), and three words for OUTSN (SN). Words 41-48
are reserved.

~

r----

r---+

.~

entry 1

entry 1

entry 1

ent'rY2

entrY2

entrY2

entrYi

entrYj

~~.

L1NK;DR

1.

An M:DO DCB is generated in the absence of a
NOTCB option. (The Link processor wi II always bui Id
an M:DO DCB.)

Library DCBs are summarized in Table 27 together with
the composition of DCBs generated by the loader and by
COBOL.

DATA CONTROL BLOCKS

DCBTAB~

•

~

Each entry contains a variable length DCB
name and DCBLOC word as follows:
TEXTC
f-.-------Name of DCB

1----------

LINKADR

~

0

O~

2.

LINKADR is the location of another block of
the DCB name table. If LINKADR contains
zero, the current b lock is the last one of the
DCB name table.

3.

DCBLOC is the address of the first word of the
DCB.

DCBLOC
Figure 10.

DCBTAB (Name Table)

Data Control Blocks

161

Table 27. Data Control Block Size

DCB

Expiration Read
Write
SynonyKey
Device Name Account Password Date
Accounts Accounts INSNs OUTSNs mous Name Buffer

Total
Words

M:C

22

22

M:OC

22

22

M:BI

22

9

3

3

3

4

8

52

M:CI

22

9

3

3

3

4

8

52

M:SI

22

9

3

3

3

4

8

52

M:EI

22

9

3

3

3

4

8

61

M:BO

22

9

3

3

3

17

17

8

86

M:CO

22

9

3

3

3

17

17

4

8

86

M:SO

22

9

3

3

3

17

17

4

8

86

M:PO

22

9

3

3

3

4

8

52

M:LO

22

9

3

3

3

4

8

52

M:LL

22

9

3

3

3

4

8

52

M:DO

22

9

3

3

3

4

8

52

M:GO

22

9

3

3

3

8

48

M:EO

22

9

3

3

3

8

45

M:SL

22

4

3

3

3

8

43.

M:AL

22

4

3

3

3

8

43

Loader

22

4

3

3

3

8

51

COBOL 22

9

3

3

3

8

99

17

17

If the user requires a DCB with any field larger than those
constructed by a loader, he must use the LOAD processor.
He can then either construct the DCB with an M:DCB procedure call or, if it is an M: type DCB, request it explicitly from the :SYS account by including the DCB name as
an element file in a LOAD, OVERLAY, or OLAV control
command. For example:
(EF ,(M:EO,:SYS ),(M:LL,:SYS))
Total space for DCBs and buffers for a single job step is
limited to 10,752 words (21 pages) including a one-word
link for the DCBname chain and enough words to carry the
DCBnames. Each DCBmust be contained entirely within one
page to faci litate unmapped access. This usually results in
less space due to "breakage". However, the amount of space
provided is adequate in nearly all situations. When the
allocated space is insufficient, the job is aborted with
a code of XICOI.

162

Memory Protection

4

17

17

9

4

4

4

4

4

9

9

If a file is opened in the output mode through a system DCB,
a flag is set in the Job Information Table (JIT). If the DCB
is not reassigned before the DCB is opened again in the output mode for the same job, all records output through thi~
DCB are appended to the end of this file.

M~MORY

PROTECTION.

Monitor pages and unallocated virtual pages are protected
against access by user programs with the map access protection. Thus, programs that either deliberately or inadvertently access the monitor (by reading it or branching
into it) will trap. The same restriction also applies to other
areas of the machine that were not owned by the program
(e. g., read access to unobtained common or dynamic data
pages). The first page of core memory is an exception to
these rules; its access is always set to read only. A trap

will occur on a conditional branch command for whJcih the
condition is not satisfied and the address of the br;l~ch is
indirect through a protected memory address.
"'

VIRTUAL MEMORY
The user1s 96K words ofvirtual space are divided as follows:
1.

8K words for monitor overlays and user context (JITs
and buffers).

2.

88K words for user procedure, DCBs, and data unless
the user program requires the use of a special shared
processor or a publ ic library. In this case, the user
area is 72K words and the special processor area is
16K words.

With the exception of a fixed minimum requirement of six
pages for monitor overlays, one page for JIT, and three
pages for the fi Ie buffers, the 96 K words of user area is
demand allocated.
The Link and Load loaders place ROM data, including any
data overlays, in memory beginning at 40K then directly
follow this with the DCBs, procedure, and procedure overlays. When a BIAS is specified, the load module is created
at the specified location even though it may not be possible
to run the load module there.
Load modules are constructed from ROMs composed of control sections. A control section is of type 00, 01, or 10.
All control sections of type 00 are gathered together by the
loader and designated as DATA. Simi larly, all control secti ons of type Oland type 10 are gathered together and designed as PROCEDURE and STATIC DATA, respectively.
Except for DCBs, DSECTs or CSECTs with value 2 or 3 are
changed to 1. That is, no-aCCe!iS and read-only data are
loaded with pure procedure. Any DSECT that has a name
beginning with M: or F: is assumed to be a DCB and is removed to the DCB area and listed in the DCB table.

Interna I symbol tables are generated for use by a debug
processor (e.g., Delta) if a program is assembled with the
SD option. An internal symbol table is built for each load
'module and is included in the load module as a keyed
record consisting of the element fi Ie name appended with
an X 11 0 1• A symbol table can be loaded by a debug processor for an overlay or a nonoverlay program by specifying
its element fi Ie name. If the element fi Ie conta ins more
than one ROM then only the symbol table for the last ROM
is produced. A symbol table that is generated during a load
from the GO fi Ie cannot be accessed by a debug processor.
No internal symbol tables are generated for library load
modules.

VIRTUAL MEMORY LAYOUT
Figure 11 gives the layout of virtua I memory for a program
loaded by Load or Link. Ordinary shared processors follow
this layout.
Figures 12 and 13 show the actual background memory layout at execution time for the Load and Link processors.

LOAD MAPS
If a listing of a load map is specified - MAPopl'ion of LOAD
(OVERLAY or OLAY) control command or M option of LINK
control command - a listing of external references and definitions for the load modules is output on the l.L device.
A general allocation summary, indicating the total amount
of memory a IIocated to each protection type for the enti re
program, appears after the LOAD or LIN K control command.
Next appears the severity level for this load module if it is
nonzero. This severity level is actually the maximum of
any severity levels inherited from the ROMs and those generated by the loader. Internal loader-generated severity
levels are as follows:

DCBs and the DCB name table are a IIocated in the user context area (10 protection) rather than in the root procedure
area (01 protection). Because of the differences in a IIocation (DCBs) and the HEAD format, load modules formed
under the BPM overlay loader wi II not execute (RUN) under
CP-V and vice versa.

o

32K

User Context:
Monitor iJ ITs, buffers and
jmonitor overlays

40K
Public
library
context
(if any)

Type

Severity

PREF

7

DDEF

4

REF or BREF load table exceeded

F

Nonbranching REFs found while
in BREF mode

3

Load or Link

User data
root and
overlays

User
DCBs

User program
root and
overlays

112K

Dynamic

Common

--+-

~

Data

Data

128K

Special Shared
Processors:
TEL, LIN K, Delta
Pu b Ii c Li bra ry
FDP
(if required)

Figure 11. Virtual Memory Layout

Vertual Memory/Load Maps

163.

Beginning of user's
- - - virtual memory (X'AOOO')

..,

Public Library's Context Area

Blank COMMON
Root
TCB
DATA (00)

Access protection of 00
Root Control Sections of type 00

,"
Overlay Control Sections of type 00

unused
----/ Page Boundary
Control Sections of type 10

}

DeBOO)

,..JPage Boundary

'"
TREE Tables

Root

REF/BREF Tables (l page)

PROCEDURE (01)
Root Control Sections of type 01

..

Access protection of 01
Overlay Control Sections of type 01

unused
- - Page Boundary

}

Debug Tables (1 page)

_

Page Boundary

Global and internal symbol tables
Access protection of 00
(may be changed by
M:SMPRT)

M:GP
User's Dynamic Data

!

t

M:GCP

___ - End of user virtual
memory (X'1 BFFF'
or X l 1 FFFF')

t Formed by monitor when load module is brought' into core.
ttAcquired for symbol tables when associated with Delta.
Fi gure 12. User Vi rtua I Memory Layout, Load Processor'

164

Load Maps

;'
(

/

Beginning of user's
- - - vi rtua I me mory (X IAOOO I)
Pub lie Li brary' s Context Area

Blank COMMON

TeB
Access protecti on of 00
Data (00)
M:GP
User's Dynamic Data

j

1
M:GCP

...
Access protection of 10 {

Access protection of 01

DCBs

J

(XI 16COO')
DCB(10)

-.;

Program Pure Procedure

(X'17000')

.. Procedure (01)

...
Global Symbol Table

t

Access protection of 00

~

t

t

Internal Symbol Table

•

End of user virtua I
memory (X'1 BFFF')

t Acquired for symbol tables when associated with Delta.

Figure 13. User Virtual Memory Layout, Link Processor

. Load Maps

165

Figures 14 and 15 show sample load map printouts for the
Linkand Load processors respectively. The sample Link processor load map (Figure 14) is simple and self-explanatory.
_ The sample Load processor loa,d map (Figure 15), however,
is more complex and requires further explanation.

un less L'DEF and/or UDEF are specified on the command
in conjunction with the MAP option. For the (MAP, VALUE)
option, the DEFs and control sections are listed in the order
of increasing value, with the information for each control
section serving as a header for the DEl=s within that section.
Control sections are presented in the format
value

!LINK LINKBO,VDCB (M) OVER LMN
LINKING LINKBO
SEVERITY 0
LINKING VDCB
SEVERITY 0
'PI' ASSOCIATED.
YOU DO NOT NEED
PI
PREF
J:CCBUF
PREF
J:AMR
PREF
J:JIT
8C2D 0
DEF
M:UC
16COO 0
DEF
VDCB
16COO 0
DSEC
F:LINK
DEF
16C28 0
M:DO
DEF
16CSC 0
F:LINKIN
DEF
16C90 0
M:GO
DEF
16CC4 0
M:LO
16CF8 0
DEF
M:C
16C2C 0
DEF
M:LL
DEF
A400 0
VLC
A400 0
UDEF
DATA ORG
AS2E 0
DSEC
LINK
A730 0
UDEF
DATA MAX(TCB ORG)
DEF
17000 0
VPP
17000 0
DSEC
PLSECT
UDEF
17000 0
PURE PROC ORG
17044 0
DSEC
PPLINK
17DD9 0
UDEF
PURE PROC MAX
lCOOO 0
DEF
VDP

type

prot. type

'where
value
specifies the hexadecimal address of the beginning of the section.

type

specifies LDCB (loader-built DCB), DSECT,
or CSECT.

prot. type
specifies
2 (Static).

°

(Data), 1 (Procedure), or

For DEFs, the format is
value

byte disp.

name

where
value

specifies the hexadecima I value of the DEF.

byte disp.
specifies the byte displacement (0, 1,
2, or 3) for relocatab Ie DEFs only.'
name

specifies the symbolic name of the DEF.

All addresses (and control section sizes) are expressed in
word resolution.

Figure 14. Sample Load Map Printout
for the Link Processor

ACCOUNTING
For the Load processor, the load map for each segment starts
ona new page. The map consists of a header, an allocation
summary for this segment, and a series of lists of external
definitions and control sections. Separate Iists of PREFs,
SREFs, DDEFs, and ADEFs (absolute DEFs) are generated
only if such items exist in th is segment. Then the relocatable DEFs (i.e., an external DEF whose value is an address
as opposed to a constant) and control sections are J isted. If
(MAP) or (MAP ,NAME) was specified on the LOAD card,
the control sections (and the first DEF in each section)
are listed first, then the relocatable DEFs are generated
in alphanumeric order. Library DEFs will not be li~ted

166

Accounting

A comprehensive accounting summary is generated at the
end of each job. This summary includes both a detai led
Iist of faci Iity usage and an item called "Charge Units",
which is a weighted sum of the other accounting variables,
(e.g., total CPU Time, Cards Read, etc.). The weighting
for each accounting variable are installation dependent and
can be set or modified by the installation manager. I/o
wait operations are not charged to the user, nor are they
accrued as part of the time specified on a LIMIT control
command. Table 28 shows the accounting summary for
.batch jobs. Items for which the value is zero are not
printed in the summary.



'serial no. [#serial noJ ... ['serial no.]
vol ume{s) created, or to be created, in job
account.
'serial no. [#serial noJ ... [#serial noJ. account
volume{s) created in specific account.

The # is a syntactic identifier used to introduce the serial
number, e. g. ,
NMEFA
#MEF l NMEF2. C7308300
The optional serial numbers are used to indicate a multivolume file or set of fi les. A maximum of 50 serial numbers is allowed.
In general, a job cannot create files on a labeled tape or
disk pack in a different account than that in which it is
executing. However, it may read tapes or disk packs that
were created in different account.
Therefore, in subsequent command descriptions, the following convention is adopted. If a volume identifier is used in
an input sense, where either of the above representations is
valid, then it will be symbolized as lI#reel-id
However,
if it is used in an output sense, where only a serial number
is valid, then lI#serial no. II will be used explicitly. In
either case, up to 50 serial numbers may be specified if
a multi-volume file is involved. Free form tape (FT) only
needs to be identified by a serial number.
lt

•

Scratch Tapes. Although it is not shown in the syntax descriptions of the PCl commands, a volume identifier is never
actually required for any command. The absence of a volume
identifier on a labeled tape or free form tape specification
implies that a scratch tape is to be used. If a scratch tape
is used for the fi rst ti me in an input sense, an II0 error is
reported. If a scratch tape has been written, a command
in the same PCl session that specifies a tape without a
volume identifier, in either an input or output sense, is
interpreted by PCl as referri ng to the same scratch tape.
PCl must be reentered if a second scratch tape is needed.

tAn ANS tape file identifier consists of a name only.
tt Note that most on-line processors allow a maximum of
10 characters for a fi Ie nome. ANS tape fi Ie names ore
I imited to 17 characters.
184

Peripheral Conversion language

Default Disk Pack. Although it is not shown in the syntax
descriptions 'of the pel commands, a volume identifier is
not required if the organization type code is DP. If the file

90 17 MH-l(9/18)

is random, the absence of a reel identifier on a disk pack
specification indicates that the public disk pack is to be
used. For other types of files, the absence of a volume
identifier causes the DP organization type code to be
treated the same as DC.

5.

A user wishes to list the disk pack in example 4. The
pack was created in account F65426Ql, which is
not the user's account.
DPNpAK 1. F65426Ql - DA

CAPABILITIES
RESOURCE TYPE
The resource type must be a valid 2-character mnemonic for
a device which was defined at SYSGEN to be a resource.
Resource type is a qualifier to thE~ organization type and is
necessary in order to uniquely identify the device. It is
needed only for devices with mountable volumes when more
than one type of device of the same organization type are
present on the system. Thus, when a system has only
800 bpi 9-track tape drives, the organization type l T, FT,
or AT uniquely identifies the device type and the resource
type specification is unnecessary. However, if the system
has, for example, both 9-track and 7-track tapes, then the
resource type must be specified.

The following is a I ist of available functions in PCL defined
in terms of the actual command verbs:
COpy device(s) and/or file(s) TOt or INTO device or
new file.
-COpy device(s) and/or file(s) OVER or INTO device
or existing file.
-- -COPYALL files in specified account on RAD or disk
pack TO labeled tape(s) or to a device.
COPYALL files in specified account on RAD or disk
pack TO job account on RAD.
COPYALL files on labeled tape(s) TO RAD or disk pack.
COPYALL files on labeled tape(s) TO files on labeled
tape(s) or to a device.

SPECIFICATION EXAMPLES
The following examples illustrate simple and complex
specifications. The user should remember that a source or
destination specification requires only the minimum information necessary to uniquely identify the source or
desti nati on.

COPYSTD copy control file and all files indicated
within the control file.
DELETE specified files on RAD or disk pack.
DElETEAlL deletes all or a portion of the user's RAD
files on RAD or disk pack.
ERRORS SAVE/REL controls the disposition of output
files when errors occur during copying commands.

1.

A file called MYFIlE in the user's account with the
password SECRET.

LIST a file directory for RAD, tape, or disk pack.
PRINT sends any waiting output for symbiont devices
to them.

DC/MYFIlE .. SECRET

REVIEW user's file directory on RAD or disk pack.
In most cases, II DC/" is not needed to identify the
file. However, it is required when specifying a file
name which could be confused with a PCl or CP-V
reserved name. Thus, DC/lP is a file; lP is a line
printer.

SPF space file ±n files on free form (unformatted) magnetic tape.
SPR skip records ±n records on free form (unformatted)
magnetic tape.
WEOF write end-of-file on current output device.

2.

A file called MYFIlE contained on a two-volume
Xerox labeled tape set whose volume ids are 123 and
456. The tapes are 1600 bpi 6 and the tape devi ce
identification was SYSGENed as BT.

The same fi Ie as 2 above, on

(lin

SPE space to end of last file on tape.
REM remove designated tape or disk pack.
TABS define tab settings for tab expansion.

LT#123#456 - BT/MYFIlE
3.

REW rewind designated tape.

ANS tape.

MOUNT causes designated tape or disk pack to be
mounted .

MODE OPTION COMPAnalLin
In the current version PCl, 7T and 9T are resource types
and are no longer used as mode options. However, for
4.

The same fi Ie on a private disk pack whose device
identification was SYSGENed as DA.
Dp#PAK 1 - DA/MYFIlE

90 1764H-l(9/78)

tWherever TO is specified, ON may be substituted.

Peripheral Conversion Language

185

compatability with previous versions of PCl, 7T and 9T
may still be :.pecified as mode options in all of the commands for which they were previously applicable. If 7T or
9T is specified as mode options, it will be treated exactly
as though it had been specified as a resource type.

File extension may also be accompl ished by using the
INTO preposition in the command.
COpy COMMAND FORMAT (SPECIFIC)
The specific format of the COPY command is
-..- - - - - Source 1

FILE COpy COMMAND
The file COpy command permits single or multiple file
transfers to take place between peripheral devices or between fi Ie storage and peripheral devices. Options are
included for selecting, formatting, and converting data
records. When more than one keyed flle is copied to a
single file, PCl can either merge or concatenate the files
(see" Record Sequencingll below).

C[OPY] sd [(s)][/fid
- ...
1----

[(5)][, fid[(s)]] ...J

Source 2 - - - - - l____

[isdl(s)][ /fid [(s)] [, fid[(s)]] ...
...

J] ...

Destination

COpy COMMAND FORMAT (GENERALIZED)
The COpy command is of the form

J[~~ER destination]

COpy source[, source .••

where

sd

INTO
where
source
may be an input device such as card reader
(CR), a RAD file (e. g., ALPHA), a file on
private disk pack, or a fi Ie on Xerox or ANS
labeled tape or free form tape. File concatenation or merging may be performed by specifying
more than one source device or file.
destination
may be an output device such as card
punch (CP), a public disk file, a file on private
disk pack, or a fi Ie on Xerox or ANS labeled tape
or free form tape. Absence of a desti nati on
specification is allowed and will normally cause
fi Ie extensi on to occur.

If the purpose of the COpy is to replace a RAD or disk fi Ie
currently existing in the user's account directory, PCl
requires that the preposition OVER be used in the command.
That is, COpy TO, OVER, or INTO creates a file, but
for the user's protection only COpy OVER can replace an
existing fi Ie. After this check, PCl opens the source devices and fj les one at a time in the order given, and copies
them to the destination device or file. Source files are
closed after they have been copied. The destination device
or fi Ie is closed at the same time.
Note that the TO or OVER command preposition and the
destination are optional. If the COpy command contains
only a source specification, PCl uses the destination device or file defined on the most recently issued COpy
command containing a destination specification. (This is
illustrated in the sixth COpy example.) It should be noted
that file extension wi II occur in this case. Any PCl command except COPYAlL may be used between the COpy
defining the destination specification and the COpy with
this specification omitted, since the output specification
will not be changed by these commands.

186

Peripheral Conversion language

represents the device portion of a source specification and may bean input device type (Table 30),
a logical device stream-id, an operational label,
or one of the following:
DP
DC
DP#serial no. [-rtJ
IT#serial no. [-rtl
AT [#serial no.] [-rt]
FT#serial no. [-rt]
where rt is the 2-character identifier of a device
that was defined at SYSGEN to be a resource.

/

fid

separates a PCl identificati on code from the associated file specifications. The slash is only required if both device (sd or dd) and fi Ie (fid) specifications are given.
represents file identification and has the form

~

name . L:raccountJ. password]]
. account
The DC identification code is optional on a COPY
command referencing a RAD or public disk file.
For example, RAD file A may be specified in one
of two formats: DC/A or A. However, this flexibility makes the codes in Table 30 reserved words.
For example, file CR must be referred to as DC/CR
or 'CR', never simply as CR. The fid is not optional for ANS tapes.
separates fi les on the same device.
separates devices. (Interpreted as a conti nuati on
character if it is the last nonblank character of a
card. )
(s)

represents specifications for data encoding:
data codes (Table 32), formats (Table 33), modes

90 17 64H-1 (9/78)

(Table 34) I record sequencing (Table 35), accounts (Table 36), ANS tape options (Table 37),
expiration time, and re·eord selection. It has the
form

4.

Assume that fi les Band C from 1600 bpi labeled tape
No. 57 are to be copied, in that order, to a new RAD
storage file called B.. PASS.
C IT#57-BT/B,C TO B.. PASS

(option [, option) ••. )

5.

Assume file A from labeled tape No.5, file D from
RAD storage, and all fi les on free form tape No. 8 up
to the next double end-of-file are to be copied to
file A on labeled tape Nos. 6 and 7. Tape No.7 is to
be used only if No. 6 overflows.

6.

Assume three successive sets of files, each separated
by a double end-of-file, are to be punched in cards
from free form tape No. 7236. Two I EODs are written when the output device is closed.

Specifications given at the device level apply to
all fi les on that device. Those given at the fi Ie
level apply to that fi Ie only and have precedence
if a conflict occurs between levels.
Data encoding is discussed in detail below.
dd

represents the device portion of a destinati on
specification and may bEl an output device type
(Table 29), a logical device stream-id, an operational label, or one of the following:
DP
DC
DP#serial no. [-rtJ
l T[#serial no.J [-rtJ
AT[# seri al no.l [-rtJ
FTl#serial no.Jl-rt]

C FT#7236 TO CP
C FT#7236
C FT#7236
or
C FT#7236;FT#7236;FT#7236 TO CP

where rt is the 2-character identifier of a device
that was defined at SYSGEN to be a resource.
Examples:

1.

Assume that three consecutive files, each terminated
by a double I EOD mark, are to be copied from a card
reader to an existing RAD storage file called ALPHA.
(This would only be allowed in batch.) The PCl
command would be:
.

DATA ENCODING
The COPY command may contain various codes and specifications which either describe certain characteristics of
input and output files or devices, or which request various
types of data conversion or format changes in the output to
be produced. Partial files may be copied by use of record
selection and output records may have sequence identification inserted or deleted.

COpy CR;CR;CR OVER ALPHA

A description of the available codes and specifications
follows:

COPY CR OVER ALPHA

Data Codes. Data codes (Table 32) describe the source or
destination data types to be expected or produced for devices only.

or

COPY CR

Table 32.

COpy CR
2.

Assume that a Meta-Symbol SOlUrce program fi Ie, co II ed
SOURCE, is to be copied from RAD storage to the line
printer. The command, could be coded as

Data Codes

Code

Meaning

E

EBCDIC (default data code)

H

Hollerith (FORTRAN BCD conversion)

COpy SOURCE TO lP
This command could also be written as

Data Formats. Data formats (Table 33) descri be the source
or desti nation record formatting to be expected or produced.

C SOURCE TO lP
Assume that successi ve cards are to be cop ied from the
card reader to a new RAD storage file with the fIJI/owing fi Ie identification: KD. 2024. PLEASE. (This would
only be allowed in batch processing.) Two IEODs are
used to signal the end of the cCird fi Ie. The COpy
command would be:
C CR TO KD. 2024. PLEASE

90 17 64H-1 (9/78)

Table 33.

Data Formats

Code

Meaning

X

Hexadecimal dump

C

Meta-Symbol compressed

CRPT
(seed)

Encryption seed

Peripheral Conversion Language

187

The X option produces a single-spaced dump on the line
printer or terminal. The presence of an asterisk following
the word count in the dump indicates that omitted lines are
identical to the preceding line.

Table 34.
Mode

Description

FA,NFA

Fi Ie attributes. These codes specify whether
or not the attributes (i .e., variable-length
parameter list except name, account, and
password) of the source fi Ie are to be carried over to the destination file. If the file
name remains the same from source to
destination and neither FA nor NFA is specified, the attributes are copied. If the names
of the source and destination files are different, the attributes are not norma Ily
copied; information specified in ASSIGN
or SET commands takes effect.

DEaD

Double end-of-file. Multiple source files
are copied into a single output file. Thus,
while COpy FT copies files including
single end-of-file marks up to a double endof-fi Ie, COpy FT (DEaD) copies files to
a double end-of-fi Ie without copying the
single end-of-fi Ie marks.

K

Print keys. If the file has a 3-byte key, the
listing is not to be in hexadecimal form and
the destination is a printer or terminal; the
file is assumed to be an Edit format file. The
use of the K option on output causes the key
to be decoded as an Edit Iine number in the
form xxx x . xxx and to be pri nted on the some
line with the record contents (Edit listing
format). A record sequence number precedes the key. For other types of keyed
files, the key is not decoded and prints on
the line preceding the record contents. If
the file is not keyed, only the record sequence number preceds the record contents.

DEN(800)

Dual density drive is to be written at
800 bpi.

A C option on an input specifi cation indicates that input is
in compressed format and is to be decompressed on output.
A C option on an output specification indicates that input
is in symbolic form and is to be compressed on output.
The CRPT option is followed by from one to eight hexadecimal characters which specify the seed for data encryption for keyed and consecutive files. Separate algorithms
are employed for keyed and consecutive fi les. A keyed
fi Ie that is encrypted cannot be decrypted if its keys are
stripped. Data encryption is described in Chapter 2.
Modes. Mode codes dictate the control modes for the
specified fi les or devi ces. They are shown in Table 34.

Table 34. Mode Codes - COpy Command
Mode

Description

BCD,BIN

Binary-coded decimal or binary mode.
These codes are valid for cards, paper tape,
and magnetic tape.

PK,UPK

7 -track bi nary tape packed or unpacked.

SSP,DSP,
VFC

Single, double or variable format controlled spacing on line printer or terminal.

NC

No carriqge return. Removes carriagecontrol character (X'lS' or X'OD'), if
present, from each record on output. This
mode is the default mode if input is from
the termina I.

NB

No trailing blanks. Removes trailing blanks
(X'40'), if present, from each record on
output. This operation is performed after
NC, if specifi ed.

VOl(n)

Volume number. The va lue n specifies the
volume to use for a mu Iti -volume tape set.

CR

Retains carriage return. Must be specified
if carriage returns are to be retained when
copying 'ME' to a file or device.

TX

Tab expansion. Va lues specified on a PCl
TABS command are used. If a PCl TABS
command was not issued, the tab values in
the M:UC DCB are used. If no tab va lues
are specified, single spaces replace tabs on
output.

lC.UC

Translate alphabetic characters to lower
(LC) or upper (UC) case.

NF

188

No formatting. PCl does not produce any
output that is not in the input data (e. g. ,
file name to lP or separation of files to
LP/UC).

Peripheral Conversion Language

Mode Codes - COpy Command (cont.)

DEN(1600) Dual density drive is to be written at
1600 bpi.
ASCI

Conversion of code between EBCDIC in
core and ASCII on tape is to be done.

EBCD

No code conversion is to toke place.
EBCDIC code is used on tape.

JOB

Specifi es that the fi Ie is temporary; it is to
be kept across JOB steps but released at
job termination. If the second and third
characters of the file name are colons (e.g.,
A::AFILE), the double colons are replaced
by the user's sysid.

Examples:
l.

Assume that fi Ie A is to be copied to labeled tape
No.4 on a dual density drive at 1600 bpi with
exactly the same attributes it had on RAD storage.
C A TO LT#4/A (DEN(1600»

90 17 64H-l (9/78)

2.

Assume that RAD storage file A is in compressed form
and is to be converted to symboli c and listed on the
printer with double spacing.
C A(C) TO LP(D SP)

j.

Assume that Iine images are to be read from RAD storage file A, converted from EBCDIC to Hollerith, and
written on a 7-track scratch tope in BI N mode.
C DCjA TO FT-7T (BIN,H)

4.

Assume that a source file, SOURCE, containing tab
characters was created on-line ':lnd is to be punched
with tab characters expanded and carriage return
characters removed.

neither LN nor NLN) is specified for the output file, a
merge will occur. In this case, if records with duplicate
keys exist, the record from the first specified input file
wi II be replaced (in the output fi Ie) with the record from
the next specified input file. Thus the sequence in which
the input files are specified will determine which of the
identically keyed records appears in the output file. When
concatenating a keyed fi Ie and a consecutive (unkeyed)
file, the.LN or NLN option should be used.
Examples:
1.

C SOURCE TO CP(TX, NC)
Record Sequencing. Insertion or deletion of ·sequence
identification for output data record~; is accomplished by
using record sequencing specifications (Table 35). These
specifications are avaHable only as output options. All of
these options are mutually exclusive ..
Table 35. Record Sequencing Options - COPY Command

C LT#25jSORC TO CP (CS(SRCE, 1, 1))
2.

Description

CS[(id[,n,k])]

Card sequencing in columns 73-80.

3.

Assume that two keyed fi I es A and B, are to be concatenated into fi Ie C and assigned new keys. Default
keys are to be assigned.

4.

Assume that files A and B are to be merged into a new
keyed file C with the output records alternately coming
from A and B.

id is identificcltion
(0-4 characters)
n is initial value
k is increment'
The odentification (id) is left-justified
in the field (73-80) and is followed by
the sequence numb~~r, which is rightjustified in the some field. The identifi cation may be written as a character
string containing one to four characters;
e. g., ' •. XY'. Precedence is given to
the sequence numb«~r if overlapping
occurs. The default values for id, n,
and k are null, 0, and 1, respectively.
No c:ard sequencin~J. This specifi cation
strips columns73-80 from each output
dota record.
~------+--- ..- - - - - - - - . - - - - - - - - - I
line numbering. Sets organization to
LN[(n,
keyed. The fi Ie stmts at n and continues
in sequential steps iQf k. line number
and increment formats are as in the Edit
processor. li ne numbers mus~ be between
1 and 9999. Increments may range from
.001 through 100.000. The default
va lues for both nand k are 1 •
NCS

k»

No line numbering.
to consecutive.

Sets organization

PCl can either merge or concatenate keyed files. If the
LN option is specified for the output fi Ie, concatenation
wi II occur with the new keys as specified in the IN option.
If the NlN option is specified for the output fi Ie, concatenation will occur with the output file being a consecutive
(not keyed) fi Ie. If no record sequencing option (i. e. ,

90 17 64H-l (9;78)

Assume that PC Lis to read suc cessi ve records from free
form tape #73, to assign line numbers starting at 5 in
increments of 5, and to write the records on RAD storage file A.
C FT#73 TO A(LN(5, 5))

Code

NlN

Assume that a file called SORC on labeled tape #25 is
to be sequenced and punched into cards. The card
identification is SRCE, the initial value is 1, and the
increment is 1. Thus, logical records are to be given
sequential identification as follows: SRCE0001,
SRCEOO02, SRCEOOO3, etc.

C A, B TO C(LN)

C A TO C(LN( 1,2))
C B INTO C(LN(2,2))
Assignment of Accounts. A combined list (not to exceed
16 entries) of read accounts, write accounts, execute accounts, and the name of a processor under which the file is
to be run, may be added as attr ibutes of th e output fil es as
shown in Table 36.
Table 36. Account Options - COpy Command
Code
RD(ac 1 (, ac , ...
2

Descri pti on

J)

Adds read account(s) on output.
ALL or NONE may be specified
in place of an account.

J)

Adds write account(s) on output.
ALL or NONE may be specified
in place of an account.

WR(cic 1[, ac , ...
2

Specifies the account numbers of
those accounts that may execute
the fi Ie. The value ALL may be
used to spec ify that any account
may execute the file. The value
NON E may be used to specify that
no other account may execute the
file. In all of the above cases,
RD(NONE) is implied in the
absence of any RD specification.

Peripheral Conversion Language

189

Table 36. Account Options - COpy Command (cont. )
Descri ption

Code
UN(name
[,name] ... )

Specifies the name(s} of the processor(s} that may access this file if
the user does not own the file. The
name may be from one to ten characters in length. The processor may
be any shared processor or any load
module in the :SYS account. If
EXecute accounts are specified and
UN is not specified, the file is presumed to be a load module and may
be executed by any user running
under an EXecute account but not
under Delta.

Table 37. ANS Tape Options - COpy Command (cont.)
Code

Description

BlK(n}

Block size. The value n specifies the maximum block size to be built for FMT(F), FMT
(D), and FMT(V), where l~n ~ 32,767
bytes. The default is 2048 and if n is less
than 18, 18 will be used. The default for
ANS input is the value from the input file.

REC(n)

Record size. The value n specifies the
size of records for FMT(F) only, where
1 ~ n ~ 32,767 bytes. Records will be
truncated or padded to conform, but padding
with blanks will extend only for 140 bytes.
The default is 128 except for ANS input
with F format I for whi ch the va Iue from the
input file is used. The block size must be a
multiple of the record size.

CAT(n)

Input option that causes n files of the
specified name on ANS tape to be concatenated to produce a sing Ie output fi Ie or
to be output to the named device. (All
of the input fi les must have the same format.) The value for n may range from 2
to 128.

Examples:
1.

Assume that A is to be copied to labeled tape No.4
with the same attributes it had on RAD storage plus the
addition of read accounts ONE and TWO.
C A TO IT*4/A(RD(ONE, TWO»

2.

Assume that read account ALPHA, write accounts X
and Y, execute accounts ONE, TWO, and THREE,
and the name of a load modu Ie BETA under wh i ch the
fi Ie SRCE is to be run are to be added as attributes of
fi Ie SRCE.
C SRCE OVER SRCE(RD(ALPHA},WR(X,Y),;
EX (ONE, TWO, THREE),UN(BETA»

ANS Tape Options. Special options for ANS tapes are described in Table 37. These options pertain to blocking,
concatenation of files, and changing the record formats.
Unblocking is always performed when copying from an
ANS input tape. FMT, BLK, and REC may be specified for
any input or output device to perform ANS-type blocking.!
deblocking. REC alone causes a" records to be truncated
or padded (with blanks up to 140 characters) to the
specified length.

Examples:

1.

720.

Table 37. ANS Tape Options - COpy Command
Code

Description

FMT(f)

Output format. The value of f must be:

Assume that a card deck is to be copied to fi Ie X
on ANS tape number 123456. The tape is to be on
a BT drive. Only the first 72 characters of each
card are to be copied and the block size is to be

C CR TO AT#123456-BT/X(FMT(F),i
BLK (720), REC(72»

F - fixed-length records, blocked.
D - variable length records, decimal
size word, blocked.
V - variable length, binary size halfword, blocked.

U - unblocked.

2.

Assume that four files named A are to be copied from
ANS tape numbers 1, 2, 3, 4, and 5 into a single
RAD file B. (Unblocking is performed if the input
is blocked.)

The default is U unless input is from ANS
tape, in which case the input's format is
used.

190

Peripheral Conversion Language

90 17 MH-l(9;78)

Expiration Option. The expiration option specifies an
expiration time for t'he output file of the COpy command.
It has the format

EXP

(l

mm, dd,
ddd
NEVER

the monitor. If an invalid combination is found, an error
message is produced. Execution of the com'T1and mayor
may not conti nue, dependi ng on the severi ty of the error
encountered (see Error Messages).

YYI)

where
mm, dd, yy
spec ifies a particular date: mm is month
and may be one or two digits with a value from
1 to 12; del is day and may be one or two digits
with a value from 1 to 31; yy is year and may be
one or two digits with a value from 0 to 99. (The
format mm, dd, yy may also be written mm/dd/yy.)
ddd

specifies the number of days to retain the fi Ie.
It may be from one to three digits in length with
a value from 1 to 999.

NEVER
specifies that the file is never to expire
(i. e., it is to have the maximum expiration period
as specified at SYSGEN).
Record Selection. This specification permits selection of
the logical records to be copied by giving the sequential
position of the records within the file. The specification
has the form

ACCOUNT COpy COMMAND
This command allows
fi Ies, in the current
to be copied from a
or disk pack) to any
general form

COPYALL[files][TO device]
where
files

x (-y]

All records within the file that have a position, n, satisfying the condition x ~ n :5 y are sE~lected. Multiple selections may be specified if separated by commas (e. g., 1-5,
10, 20-21). Selections do not have to be in sequential
order (but nonsequential selection iis very slow for tape operations). The maximum number of selections is ten for each
input fi Ie

all fi les, or a specified subset of
account or some other account
file-type device (RAD, labeled tape,
valid output device. It has the

i ob

may be one of the following:
[DP] [.acct] [(s)]

[/r]

[DC] [. acctJ[(s)][ /r]
DP#reel-id [-rt] [(s)][/r]
LT#reel-id[-rt][(s)][/r]
If 'fi les' not specified, DC is assumed.
device
may be one of the following:

DPl(a)]
DC [(a))
DP#serial no. [-rt] [(a)]

Example:

LT[#serial no.] [-rt] [(a)]
Assume that sections 'of two files, "'1 and N2, are to be
combined to form a third fi Ie, N3. Records 20-30 and
40-100 of N 1 followed by records 50-75 of N2 are to be
copied, in that order, to N3. The job account is assumed
for fi les N 1 and N3; N2 is from account 34 under password PA.

FT[#serial no.] [-rtJ[(a))
LP
ME
CP
L1, P1, or any other logical device stream name
defined at SYSGEN

C Nl (20-30,40-100), N2. 34. PA(50-75);
TO N3
Valid Option Combinations. Not all combinations of source
and destination devices, data typ.es, formats, modes, or
sequencing codes are valid. TablE~ 38 shows the valid
combinations, the invalid combinations, and the default
provisions for the various possible combinations that are
checked by PCL. Other combinatkms are allowed, particularly for resource types, and are checked for val idity by

90 17 MH-l(9/18)

If 'device' is not specified, DC is assumed. Device must be specified if options are specified.

In the above specification,
s

may be KEY to copy keyed fi les only; or SEQ
to copy sequential files only; or RAN to copy
Peripheral Conversion Language

191

Table 38. Valid Option Combination
Sou rce Dev i ce

Destination Device

Option

Codes

CR

PR

DC

IT

DP

FT

AT

ME

DC

IT

DP

FT

AT

ME

lP

CP

PP

Dota codes

E

d
x

x

d

d

d

d

d

d

d

d

-

d

-

-

d
x

d

-

d
x

d

-

-

-

d
x

x

-

-

-

-

-

-

-

-

X

X

x

-

x
x

x

x

-

x
x

-

-

d

d

-

d

H
Dota formats

M,,des

-

X
C
CRPT

-

-

-

-

-

-

x

x

x

-

-

x
x

x

-

x
x

None
BCD
BIN
7Tt
9Tt
PK
UPK
SSP
lC
DSP

-

d

d

d

-

-

-

-

-

x
d
x
d
d
x

x
d
x
d
d
x

VFC
UC
NC
NB
NF
CR
Val
K
FA
NFA
TX
DEaD
ASCI
EBCD
DEN
JOB
Sequencing

-

None
CS
NCS
IN
NlN

d
x

-

-

-

-

-

- -

-

-

-

-

-

-

-

-

-

-.
-

-

-

-

-

-

-

d
x
d
d

-

-

x

-

-

-

- -

x
d

-

-

-

-

x

-

-

-

-

-

-

- - - - - - - - - - x
- - - - - x
- x
- d
- x

-

-

-

x

-

-

-

x

-

x
d

-

-

- - - - -

-

-

-

-

-

-

-

-

-

-

d
x
d
d

-

-

-

x
x

-

x

x
x

-

-

-

-

x

x
x
x

x
x
x

)(

x

-

-

x
d
x

-

-

-

x

x

-

-

x
x
x

x
x
x

-

d
x
x

d
x
x
x
x

d
x
x

-

d
x
x
x
x

x
x
x
x

x
x
x
x

x
x
x
x

-

Expiration

EXP

-

-

-

-

-

-

-

-

x

x

Selection

x-y

x

x

x

x

x

x

x

x

-

-

-

-

x

-

-

d

-

x
x

-

d
x
x
x
x
x
x
x
x

d
x
x

d
x
x
x
x

-

-

-

d
x
x
x
x
x
x
x
x

-

-

x

x

- - -

- -

-

x

-

x
d
x

x

-

-x

-

-

x

-

x
d
x

x
-

-

-

-

-

-

x
-

-

x

-

- = error,

-

x
d
x
d
d
x

-

-

x = optional

-

-

x

-

= default

-

-

x
d
x
d
d
x

x
x
x

-

d

-

x
x
x

- - - -

legend:

~

x
x
x

-

-

-

-

-

x

-

-

-

- - x
x
- - -

RD
WR
EX
UN

Accounts

-

-

-

-

-

x
-

x
x
x

x
x
x

x

x

x
-

-

-

x
x
-

x
-

-

d
x
x

d
x
x

d
x
x

-

-

-

-

-

-

x

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

-

x

-

x

- -

-

-

-

-

-

-

-

-

not available, unreasonable

tFor compatibility with previous versions of PCL.

192

Peripheral Conversion language

90 17 64H-l (9/18)

random files only; and/or PHY to copy in physical
order from tope. All input options valid for COpying from DC, l T / or DP care also permitted here.

conditions are met. A parent file of a synonym file within
the range is not copied unless it is also within the range.
If fi les are copied by organization (KEY, SEQ, or RAN
option), synonym files are not copied.

may be b, e; or b; or ,e"

If files are being copied to the line printer, each file copy
is preceded by the name of the file.

where
b

is a fid (see COpy command) representing the beginning of a range of files
to be copied.

e

is a fid (see COPY command) representing the end of a range of files to be
copied.

Both bond e are used as sort keys only and generally do not have to nome on existing file. They
may be written in character string or hexadecimal
notation (e.g., A, IAI, or X ICl' all represent A).
The e field must be equal to or greater than the b
field. Files on tope are assumed to be in alphanumeric order unless the PHY option is used.
If PHY is specified, the bond e fields define a
physical range of files on tope instead of on alphanumeric range and therefore must be file names.
If the b field is null, copying begins wherever the
tope is positioned. If the e field is null, copying
continues ~o end of tape. If the file in the b field
does not exist, the comm(Jlnd is aborted. If the fi Ie
in the e field does not exht, copying continues to
end of tape.

Each of the PCl identifi c:ation codes listed in
Table 31 is a reserved word and may not be
used as a range specification unless it is
enclosed in single quotes or unless a DC or
DP identification is specified in the command. For example, key' DC may be legally
specif~ed CIS "DC, DC/DC, DP/DC,
DC/ABC/DC, etc., but never simply as DC.

If there are no files present in the specified account, the
following message prints:
NO FILES IN DIRECTORY
As each file is copied, its name is listed through M:ll. If
a file cannot be copied, the file nome is followed by on
error or abnormal code and subcode.
PCl indicates completion of the command by printing a
message of the form
. . nnnnnn FilES COPIED
•• ssssss FilES SKIPPED
where nnnnnn is the number of files copied during execution of the command and ssssss is the number of files that
could not be copied.

Examples:

1.

COpy ALL TO LT*3#4
Note that RAD or disk storage space previously occupied by this account can be released for other use after
the fj les have been copi ed.
2.

Note: The introductory ~Iash V) is optional if no
codes or options precede it.
rt

is the 2-character identHier of a device that was
defined at SYSGE N to bE! a resource.

a

may be any output option valid for the COPY
command.

Assume that all files listed in the userls account
directory are to be copied to labeled tape Nos. 3
and 4. Tope No. 4 is to be used only if No. 3
overflows.

Assume that fi les are to be restored on RAD storage
under the job account from labeled tope Nos. 3 and 4,
created under account :SYSGEN.
COpy ALL LT#3#4. :SYSGEN

3.

Assume that on exact copy of labeled tape No. 3 is
to be written on tape No.4. The record size must
fit the allowable installation-set allocation of core to
a single job.
COPYALL LT*3 TO LT#4

pel copies all fi les from the input device to the output
device. Files protected by passwords cannot be copied
with th is command unless the correct password is specified
in the range specification.

4 •. Assume that all keyed files on disk pack *5 are to be
written to a scratch tape.

A synonym fi Ie is copied to RAD or disk pack only if
the parent fi Ie was copied or previously existed on the
destination device. A synonym fi Ie is always copied to
tope regard less of whether the parent fj Ie is present on
the tape. If a range is specified on the command, the
synonym fi les within the range are copied if the above

5.

90 17 64H-l (9/78)

COPYALL DP#S (KEY) TO LT
Assume that a" fi Ies on RAD between the sort keys C
and L are to be copied to the line printer. Each file
nome will print before the file copy. It is assumed
that records are in BCD format.
COPYALL C, l TO LP

Peripheral Conversion Language

193

6.

Assume that all fi les on RAD ar~ to have read accounts 123 and X100C61 and wri te account XY added
as attr i bu tcs.
COPYAll TO DC(RD(123, X I00C6 1),;
WR(XY))

CONTIlOL fiLE COpy COMMAND
The control file copy command allows the copying of fi les
whose identifiers appear in a control file. The command
is called" copy standard" and has the form
COPYSTD input [TO output]
where

The initial character is unused in the copy operation. If
no account is specified, then the source account for the
fi Ie is assumed to be the same as the account of the control
file itself. Commentary may appear on each record.
Files named within the control file may be from labeled
tape, disk pack, or RAD; in fact all variations allowed for
the input specification field of a COpy command are valid
for these devices except that options are not allowed. Device codes and accounts present in the record override
the one present on the COPYSTD command.
When files are copied from tape, their names should be
listed in the control file in the same order as the files are
stored on f'he tape. Otherwi se, rewi nds wi II occur between fi Ies.
If fi les are being copi ed to the line printer, each fi Ie copy
is preceded by the name of the fi Ie.

input specifies the control file and may be one of the
following:

[DP/]

As each file is copied its name is listed through M:ll. If a
file cannot be copied, the file name is followed by an error
or abnormal code and subcode.

[DC/]fid
DP#serial no.[-rt]/fid

PCl indicates completion of the COPYSTD command by
printing a message of the form

l T# serial no. [-rt]/fid
output may be one of the following:
DP
DC
DP#serial no. [-rt]
IT[#serial no.][-rt]

•• nnnnnn FILES COPIED
.• ssssss FILES SKIPPED
where nnnnnn is the number of the filed copied during
execution of the command including the control file itself I
and ssssss is the number of files that could not be copied.

FT[#serial no.] [-rt]
lP
ME
CP

1.

ll,Pl, or any other logical device stream name
defined at SYSGEN.
rt

Assume that all files listed in file STDF on labeled
tape No. 5 are to be copied to RAD storage. The format of fi Ie SrDF is

is the 2-character identifier of a device that was
defi ned at SYSGEN to be a resource.

*A

PCl opens the control file named in the input specification
and unless this fi Ie is a RAD or disk fi Ie in the user's account and the output device is IDe', the file will be copied
to the specified output device. Subsequently, the files
named in the control file are copied to the output device
usi ng the job account and the same fi Ie names as appear in
the control fi Ie for output.

*C

The format of a control file record is an initial character
followed by name, account, and password separated by
periods. For example:
*NAME. ACCT. PASS

194

COMMENTARY

*B

The command to be used is
COPYSTD l T#5/STDF
On completion of the command, the fi les STDF, A, B,
and C, wi II have been cop i ed from tape No. 5 to the
userls RAD account.
2.

Assume that all files listed in the file ST in the user's
RAD account are to be copied to his account. The format of fi Ie ST is

*NAME. ACCT

. ALPHA. ACCT. PASS, BETA. :SYSGEN

*NAME

:IT#5/B, C

Peripheral Conversion language

90 17 64H-1(9/18)

is printed on the LO device following execution of the
command.

The command to be used is
COPYSTD ST
On completion of the command four files will have
been copied: ALPHA, BETA, B, and C.
3.

Assume that all files listed in file :STD in account
:SYSGEN are to be copied to the I ine printer. The
fi les listed are all in account :SYSGEN. The format
of fi Ie :STD is
=AlPHA, BETA, GAMMA

DELETEALL
Another delete command deletes all fi les,
or a specified range of fi les, in the job account. The form
of the command is

DElETEAl[L]

I

fDP/l
[DC/1
DpHserial no.[-rt1/

I

[range]

where

The command to be used is
COPYSTD :STD. :SYSGEN TO lP
On completion of the command, files :STD, ALPHA,
BETA, and GAMMA will havE~ been copied from account :SYSGEN to the printer.

OTHER COMMANDS
This group of commands provides file deletion, file positioning, and other manipulation and maintenance functions.

DELETE
The DELETE command deletes complete files
and has the form
DlElETEJ

[DP/]
[DC/]
I DpHserial no. [-rt1/

Ifid[, fid] ..•

rt

is the two-character identifier of a device that
was defined at SYSGEN to be a resource.

range

specifies a range of files to be deleted
and is described in detail for the COPYAll command.

Each of the pel identification codes listed in Table 3i is
a reserved word for this command and may not be used as a
range specification unless it is enclosed in single quotes or
unless a DC or DP identification is specified in the command. For example, key DC may be legally specified as
'DC', DC/DC, DP/DC, DC/ABC, DC, etc., but never
simply as DC.

The commands

where
DElETEAll DC
rt

is the 2-character identifi er of a device that was
defined at SYSGEN to be a resource.

fid

specifies the identification of the file to be deleted. Each of the PCl identification codes listed
in Table 31 is a reserved word for this command
and may not be used as a fid unless it is enclosed
in single quotes or unless a DC or DP identification is specified i~ the command. For example,
file DC may be specified as 'DC, DC/DC, DP/DC,
DC/ABC, XYZ, DC, etc:., but never simply as
DC.

and

DElETEAlL DP

delete all the user's files from public storage. The
command DElETEAlL DP with a serial number specified deletes all the user's files on the specified private
disk pack.

If there are no files in the job account. PCl responds to
the command with the following message:

Example:
Assume that RAD storage file SOURCE is to be deleted.
This file is assumed to have been set up under job account
wi th password PLEASE.

NO FILES IN DIRECTORY

o SOURCE •. PLEASE
The message

1 FilES DELETED, 2 TOTAL GRANULES

90 17 64H-1 (9/78)

As each file is deleted, its name is listed through M:ll. If
a file cannot be deleted, the file name is followed by an
error or abnormal code and subcode.
.

Peripheral Conversion language

195

Device option (s) may be A, EA, Cn, or R (separated
by commas).

After the delete function is performed, the following
message is printed:
• .nnnnnn FILES DELETED
• .55555 s FILES SKIPPED
• • t tt tt t TOTAL GRANULES

PCl scans the tape or private pack and lists the names of
all files contained on it. If option A has been requested,
the attributes of each file are also listed. These attributes include for l T and DP:

The count (nnnnnn) does not include synonym fi les whi ch
were deleted .

Size in granules.

Examples:

Record count.

1.

Assume that all fi les in the job account are to be
deleted.

Organization (keyed, random, or consecutive).
Read accounts, if other than 'ALL' •

DElETEAll

Write accounts, if other than' NONE' •
Modification time and date.

A message such as

Parent name of synonyms.

8 FILES DE lET ED

Maximum key length (for keyed files only).
is printed on the lO device following execution of
the command.

Execute accounts (i f other than 'ALL').
Read accounts (if other than 'ALL').
Execute vehicles (if present).

Assume that all fi les in the inclusive range B through H
are to be deleted.

2.

If option EA (extended attributes) has been requested,
the following attributes are listed in addition to those
described above:

DE lETEAll B, H

Expi ration date.

A message such as

Creati on date.
Backup date.
Last access date.

4 FILES DELETED
is printed on the lO device following execution of the
command.
-

For ANS tape (AT), options A and EA are equivalent
and list:
Format (F, D, V, or U)

LIST

The LIST command is of the form

Block length
Record length (F format)
Block count
Fi Ie sequence number

{~~} reel-id(-rt][(s)][rongel

The Cn option controls the list format for a name-only
list. CO indicates that each name is to be listed on a
separate line. The value 1~ n~9 specifies the number
of four-character columns to be occupied by each
name. The default is C3. Names longer than the
allotted space wi II occupy more than one space.

[DCl[. acctJ[ (s}][range J
l[IST]

{~~} serial no. (-rtJ[(s)l/fid((s)J[,fid((s)JJ ...
fid[ (s) J[, fid[ (s) 11. ~ .
FT#serial no. [-rt]((s)J

The R option specifies that a range specification wi II
be given in the command.

All listed output goes through the M:LO DCB.
The first two formats of this command allow a range specification, which designates a range of files to be listed. The
format of the range specification is the same as for the
COPY ALL command. If a range is specifi ed, R must be
specified in the S specification.

1.

{r~} *reeHd( -rtJ[(s)]

2.

rDC](. acctJ[(s)]

(list file directory)

Device option (s) may be A, EA, Cn, or R (separated
by commas).
(list fi Ie directory)

Resource type (rt) is the 2-character identifier of a device that was defined at SYSGEN to be a resource.
196

If a file requires a password or account and none is
given, this will be noted.

Periphera I Conversion language

PCl scans the user's RAD or public disk pock file
directory and lists the names of all files. If device
options have been specified, the files are
listed as in 1.

90 17 64H-1(9/78)

· . xxxxxx TOTAL GRANULES
· .xxxxxx TOTAL RECORDS
· .xxxxxx TOTAL BLOCKS

(DC or DP)
(LT)
(AT)

Examples:

3.

a~

1.

}

H.ericl no.! -rl][ (.)]/fid!{.)][ .rid! (.)]] •..

2.

(iist file attributes)
This is a request for the attributes of the indicated files.
Resource type (rt) is the 2-chcnacter identifier of a device that was defined at SYSGE N to be a resource.
File options (s) may be A or EA. If an account is required, it must be included in the file identifier. PCL
prints an attribute summary for each fi Ie, as in 1.

4.

fid[(s)][, fid[(s)]J. •.

Assume that all files on RAD under the current job
account are to be listed.

L
Assume that fi les on 7-track labeled tape Nos. 3 and 4
are to be listed. These tapes were created under the
account :SYSGEN.
L LT#3#4. :SYSGEN-7T

3.

Assume that the attri butes of files ALPHA and BETA on
RAD are to be listed. The attributes listed have the
following meaning:
ORG

C = consecutive, Knn = keyed file
(nn specifies the maximum key
length)
R = random file.

GRAN

Number of granules of RAD space
(1 granule = 512 words).

REC

Number of records in file.

LAST
MODIFIED

Modification time and date.

Name

File name.

(I ist HIe attributes)

This is a request for the attributes of the one or more
RAD or public disk pack fi les named. Option (s) may be
A or EA. PCL. prints an attribute summary for each
fi Ie, as in 1.

Read and write accounts print on a separate line if
necessary and wi II print only if they have other
than default values.

5.

FT'serial no. [-rt][(s}}
Resource type (rt) is the 2-character identifier of a device that was defined at SYSGEN to be a resource.
Serial no. can be a fake. If the tape conforms to Xerox
labeling conventiop.s, PCL prints the serial number,
account, and contents (fi Ie names) of the tape.
Option (s) may be A, EA, en, or R (separated by
commas).

If only the command LIST is given, and no specification
follows, then the command executes as though it were LIST
DC. LIST (A) and LIST. acct are aho valid commands. All
output, except for completion messages, is wriften through
the M:LO DCB.
PCL indicates completion of the command by printing a
message of the form
.• nnnnnn FILES LISTED

L ALPHA, BET A
4.

Assume that the extended attributes of file ABC on disk
pack No.2 ore to be listed. This file has had write
account 123 assigned previously.
L Dp#2/ABC(EA)

5.

Assume that a tape requires identification.
serial no. X is used in the command.

6.

Assume that the files A through B of account X are to
be listed with attributes.

The fake

L (R,A) A. X,B

REVIEW
In the batch mode, this command functions
identically to LIST. The format of this command is:

where nnnnnn is the I,umber of fi les listed during execution
of the command.

~I

If attributes of all files in a directory are listed, one of the
following messages also prints:

90 17 MH-l (9/78)

REV[IEW]

rb~~~rial no.[-rt1/] [(s)][range]
L·account
Peripheral Conversion Language

197

where

+

rt

is the two-character identifier of a device that
was defined at SYSGEN to be a resource.

range
specifies a range of files to be reviewed
and is described in detail for the COPY-All
command.

specifies forward direction.
specifies backward direction.

n

is the number of files or records to be skipped.

If the direction is not given, forward direction is assumed.
If an error condition is encountered prior to completion,
an error message is sent to the terminal. If n is not specified, the value 1 is assumed.

may be either A or EA (as in LIST command).
Example:
Example:

Assume that free form tape No. 2076 is to be posiLioned
forward two files.

;{EV N,X
SPT FT#2076,2
Each file name within the inclusive range N through X is
listed .
If 0 fi Ie has a password or is open by another user, this is
noted by an appropriate message.

PRINT
This command causes output accumulated for
symbiont devices to be placed in the output queue to be
output immediately. (Normally, the output destined for
symbiont devices is not output until the user logs off or
issues a TEL PRI NT command.) The format of the command
is
PRINT

f.RRORS
The ERRORS command controls the disposition
of output files when a fatal error occurs during a copy operation. It has the form

ERR[ORS]

SAV[E1
}
{ REL[EASE1
hhhhhh

where
SAVE
causes all subsequent output fi les to be saved
even if a fatal error occurs during their creation.
RELEASE
causes all subsequent copy operations
which abort to release the output file. RELEASE
is in effect when PCl is first entered.
hhhhhh
is a hexidecimal error code whose value
is to be printed.

SPF
SPR
These command(s) position free form tape forward
or backward a designated number of fi les (SPF) or records
(SPR). The form of the command is
SPF}
{ SPR
FTNserial no.[-rtJ[,±Jn

198

SPE

nu

'.e,ial no.[-,I)

where rt is the 2-character identifier of a device that was
defined at SYSGEN to be a resource.
Prior to issuing this command, the user must make sure that
the tape is not write protected, i.e., the operator must be
informed to insert a ring in the tape if it is a saved tape.
If on error occurs on the command, PCl aborts the job after f
printing the message
PCl ABORT
Example:
Assume that labeled tape No.5 is to be positioned past the
last file on the tape so that additional files may be added.
SPE l TN5

WEOF
WEOF writes an end-of-fi Ie. This is an end-of-I
file mark for free form tape units, !EOD for card or paper
tape punches, or top-of-form for the line printers. The
form of the command is

WEO[F]

FTN serial no. l-rtJj
lP
[ CP
PP

(Note that only one output will be open at a time.)
If no output device is specified, the current output device
is used.

REW . This command rewinds the specified magnetic tape
reel. I~ has the form

where
rt

SPE
This command skips to the position following the
last fi Ie on (Xerox) labeled, free form, or ANS labeled
tape. The form of the command is

is the 2-character identifier of a device thot was
defined at SYSGEN to be a resource.
Peripheral Conversion language

RE~{ [~~]'seriol no.

[-,II

}

,,~ T[Nserial no.] [-rtJ Vfi lenamel

90 17 64H-1 (9/78)

where rt is the 2-character identifier of a devi ce that was
defined at SYSGEN to be a resource.

Example:

Example:

Assume that tabs are to be set for expansior, in the standard
Meta-Symbol list format.

Assume that magneti c tape reel No. 205 is to be ,·ewound.

TABS

10,19,37

REW#205

TERMINATION OF PCl

MOUNT

This command mounts a magnetic tape or disk
pack. The form of the command is:

[~;J# serial no. [-rt]
MOU[NT]

A T# serial no. [-rt1[/fi lename]
Dp# serial no.[-rtH.account]

PCl operations are terminated by the END command. This
command returns control to the monitor. The form of the
command is

[(RING»)

where rt is the 2-character identifier of a device that was
defined at SYSGEN to be a resource and RING specifies
that the device is to be mounted with write access.

When PCl is terminated by an END command, the following
message is output
PCl PROCESSING TERMINATED

Example:

PCl ERROR MESSAGES

Assume that a tape reel #2075 is to be mounted with a write
ring.
MOUNT #2075 (RING)

REMOVE
This command rernoves a magnetic tape or
disk pack no longer needed, thus releasing the drive or
spindle for other purposes. The form of the command is

[~~l#seria' no.[-rt]
REM[OVE]

I

AT[#serial no.] [-rt]Vfilename]
DP#serial no. [-rt][-account]

I

PCl reports two types of error conditions. One type consi sts
of the I/O error and abnormal conditions as listed in Appendix B. The other type consists of errors arising out of
the use of PCL commands. These conditions are defined
in Table 39.
A severity level of 1, 2, 3, or 4 is attached to each error
and has the following effect on the execution of the command in question:

1.

PCl continues execution. The message wi /I be printed
only if a higher error severity level occurs during execution of a command.

where rt is the 2-choracter identifier of a device that was
defined at SYSGEN to be a resource.
If a tape is removed, the tape is rewound and a dismount
message is sent to the computer operator. If a disk pack is
removed, the user's interest in that spind Ie is released;
however, no message is sent to the operator.

Warning

2.

Invalid Syntax or I/O Error
This level terminates execution of the command but
continues the syntax edit of the command for both online and batch operations.

Example:

3.
Assume that magnetic tape reel No. 2075 is to be rewound
and removed.

Format Error
This level terminates the command.
In the case where a command is terminated (severity
level 2 or 3), PCL reverts to the command state if the
error occurs during on-line operations; it reads the
next command card if the error occurs during batch
operations.

4.
TABS
This command sets tab values to be used in conjunction with the TX (tab expansion) option. As rnanr as
16 values may be specified. The form of the command IS
TAB[S] s [, s).

. .

where 5 is a column position to be used in expanding a
line. The maximum value for s is 255.
90 17 64H-1 (9/78)

Fatal Error
This revel causes PCl to abort the job.

PCl COMMAND SUMMARY
Table 40 is a summary of PCL commands. The left-hand
column gives the command formats. The right-hand column
gives the command function and options.
Peripheral Conversion Language

199

Table 39.

Hexadecimal
Code

PCL Error Codes
Severity
Level

Message

10100

ARGUMENT GREATER THAN 31 CHARACTERS.

2

10200

ILLEGAL IDENTIFICATION CODE.

2

10300

INVALID REEL NUMBER SPECIF ICATION.

2

10400

ILLEGAL FILE NAME SPECIFICATION.

2

10500

ILLEGAL ACCOUNT NUMBER SPECIFICATION.

2

10600

ILLEGAL PASSWORD SPECIFICATION.

2

10700

TOO MANY FIELDS IN A FILE IDENTIFICATION SPECIFICATION.

2

10800

INVALID FILE RANGE SPECIFICATION.

3

10900

MORE THAN TEN RS FIELDSt.

2

10AOO

VOLUME NUMBER BEYOND END OF SNS

2

lOBOO

ILLEGAL DECIMAL NUMBER

2

lOCOO

CS ID-FIELD GREATER THAN FOUR CHARACTERS.

2

10DOO

ERROR ON N OR K VALUE OF CS OPTION.

2

10EOO

IMPROPER TERMINATION WITHIN RS, LN, OR CS OPTION.

3

10FOO

) ) MUST TERMINATE RS I LN I OR CS OPTION.

3

11000

SPECIAL ARGUMENTS MUST HAVE) AS TERMINATION CHARACTER.

3

11100

EH?

3

11200

UNDEFINED COMMAND.

2

11300

ILLEGAL INPUT DEVICE.

3

11400

NO DEFINED OUTPUT DEVICE.

3

11500

ILLEGAL OUTPUT DEVICE.

2

11600

REEL NUMBER SPECIFICATION NOT VALID.

2

11700

FILE SPECIFICATION NOT VALID.

2

11800

DATA CODE SPECIFICATION NOT VALID.

2

,
11900

M,ODE SPECIFICATION NOT VALID.

2

"

11AOO

SE.QUENCE SPECIFICATION NOT VALID.

2

11BOO

REC,'JRD SELECTION SPECIFICATION NOT VALID.

2

t RS signi fies record' \elec "on.

,

200

"

Peri phera I Conversi on langJ\,1e
\'

I
\'1

J

90 17 64H-l (9/78)

--Hexadecimal
Code

Table 39. PCl IError Codes (cont.)
Severity
level

Message

---"

llCOO

PK/BIN/7T COMBINATION NOT VALID.

2

11000

NULL ARGUMENT (TWO DELIMITERS IN A ROW).

2

11EOO

IMPROPER TERMINATION OF THE COMMAND.

llFOO

ONE REEL NUMBER MUST BE SPECIFIED ON THIS COMMAND.

2

12000

'TO', 'INTO' OR 'OVER' NOT SPECIFIED.

3

12100

RECORD SIZE EXCEEDS AVAILABLE MEMORY.

3

12200

INVALID DEVICE TYPE FOR THIS COMMAND.

3

12300

TOO MANY REEL NUMBERS SPECIFIED.

3

12400

'TO' FilE EXISTS

3

12500

INVALID DIRECTION INDICATOR.

3

12600

INPUT RECORD SIZE LARGER THAN 32767 BYTES.

3

12700

INVALID OPTION FOR THIS COMMAND.

2

12800

TOO MANY SN, RD, WR, EX, UN SPECIFICATIONS.

3

12900

RS SPECifiCATION BEYOND END OF FilE.

2

12AOO

ERROR IN COMPRESSED INPUT.

3

12BOO

PCl NEEDS AT lEAST TWO DATA PAGES TO RUN.

4

12COO

TOO MANY ERRORS - PROCESS ABORTED.

4

12000

INVALID TAB SPECIFICATION.

3

12EOO

OVERFLOW ON EDIT LINE NUMBER.

3

12FOO

ZERO INCREMENT ON CS OR IN OPTION.

2

13000

TX OPTION USED WITHOUT TABS COMMAND.

2

13200

CONFLICTI NG OR DUPLICATE OPTION.

2

13300

MORE THAN 16 TAB VALUES.

2

13500

TOO MANY CHARACTERS IN THE COMMAND.

3

13600

INVALID VALUE FOR ANS OPTION.

2

13900

TAPE DENSITY SPECIFICATION IS IN ERROR.

2

90 17 64H-l (9/78)

Peripheral Conversion language

201

Table 40. PCl Command Summary
Descri pti on

Command

Copies file{s) between devices or between public storage and devices.
Options:
sd

may be DC, CR, ME, operational label, stream-id, or:
DP'serial no. [-rt]

[

l T'serial no. [-rt]

dd!(s))Vfid[(s))) ]

AT[' seri a I no.] [ -rt]
FT'serial no. J-rt]
where rt identifies a device that was defined at SYSGEN to
be a resource.
s

dd

may be a data code (E,H); a data format (X,C); a mode
(BCD, BIN, PK, UPK, SSP, DSP, VFC, NC, CR, FA, NFA,
lC, UC, NF, TX, DEOD, ASCI, EBCD, DEN); a sequence
(CS, NCS, IN, NlN); an account (RD, WR, EX, UN);
an ANS tape option (BlK, REC, FMT, CAT); an expiration
time (EXP, JOB); or selection (x-y).
may be DC, CP, lP, ME, operational label, stream-id or:

r

DP'serial no. -rtJ
l T['serial no.] [-rt]
AT['serial no.] [-rt]
FT['serial no.] [-rt]

I

where rt identifies a device that is defined to be a resource.

[DCl [. acct][(s)][/r]
C OPYALl DP(,.eel-id[-rt][{s)][lr] - - - - - .
lTHreel-id[-rt]U_(s)]_[/I_r]_ _

Copies fi les from RAD, labeled tape, or disk pack to any output
device.

[J

Options:

TO

....

I

DC rea)]
Dpl"serial no.[ -rt] [(a)]
LT[Hserial no~ ~ -rt][(a»
FT[Hserial no.] [-rt] [(a)]
lP
ME
CP
stream-id

[DCI Jfid
COPYSTD IT'serial no. [-rt]/fid
DP'serial no. [-rt]/fid

1

' - - TO

202

DC
DpHserial no. [-rt]
IT[Hserial no.][-rt]
FT[Hserial no.][-rt]
lP
ME
CP
stream-id

--J

may be KEY, SEQ, RAN, PHY, and COpy input options.

r

is a range specification.

rt

identifies a device that is defined to be a resource.

a

may be COpy output options.

-

I ------.1
-

s

Copies a control file and all files named within the file.
Option:
rt is the 2-character identifier of a device that was defined at
SYSGEN to be a resource.

-

Peripheral Conversion language

90 17 64H-l (9/78)

Table 40. PCL Command Summary (cont.)
~.----------.----.--.----.--------------~---------------------------------------------------,

Command

Descri pti on

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

D[ELETE)

{

fid[, fid] •.•
D[Dp~/1sena• I no. [til}
-r

Deletes the specified fites
Option:
rt

is the 2-character identifier of a device that was defined
at SYSGEN to be a resource.

Deletes all files or a specified range of files.

[DC/]
}
DELETEAl[L] { Dp# sena
• I no. [ -rt ]1 [range)

Option:
rt

is the 2-character identifier of a device that was defined
at SYSGEN to be a resource.

E[ND]

Returns control to the monitor.

ERR[ORS] {SAV[E)
}
REL[EASE)
hhhhhh

Controls the disposition of aborted copy output. The default is
RELEASE. The hhhhhh option is a hexadecimal error code whose
va lue is to be printed.

LT#reel-id[ -rtJ( (s)][range]
[DCJ( .acct)[(s)][range]
DP#reel-id[ -rtJ[ (s)][range]
L[lST] o P#seria I no. [-rtJlfid[ (s)J[, fid[ (s»)] •••
LT# seri a I no. [ -rt)[ (s))/fid (s))[, fid[ (s)J] .••
fid[ (s)J[, fid[ (s)J] .••
FT#serial no.[-rt)[(s)]

list file names and, optionally, attributes from the account
directory, tape, or disk pack.

I'"

Options:
rt

s

I [~D* .erial no.[-rll
/

s~rial no.[-rt].".
[/fllenamel
I
DP# serial no. [-rt]. " •
[ .account)

MOU[NT]/AT

t

"

'>

is the 2-chal'acter identifier of
at SYSGEN to be a resource.

01

device that was defined

may be A, EA, R, or Cn.

Mounts a magnetic tape or disk pack.
[(RING)]

Options:
rt

is the 2-character identifier of a device that was defined
at SYSGEN as a resource.

RING
specifies the device is to be mounted with write
access.
PRINT

[~~J#serial no.[-rtl

REM[OVE)

I

AT[ serial no.] [-rt) [filename]
DP#!lerial no. [-rt]

90 17 64H-l (9;78)

I

Sends accumulated symbiont output to the output device.

Removes a magnetic tape or disk pack.
Option:
rt

is the 2-character identifier of a device that was defined
at SYSGEN to be a resource.

Peripheral Conversion Language

203

Table 40. PCl Command Summary (cont.)
Description

Command

REV[IEW]

]
[DCI1
oP*seria I no.[-rt]j [(s»)[range]
[ .account

Reviews all or a specified range of files.
Option:
rt

REW ~ [~n'se'ial no.[-,II

l

AT[Nserial no.][ -rt)[filename]

I

Rewinds tape reel.
Option:
rt

SPE

{~~

} 'seriol no.[-,II

is the 2-character identifier of a device that was defined
at SYSGEN to be a resource.

is the 2-character identifier of a device that was defined
at SYSGEN to be a resource.

Spaces to the end of the last file on (Xerox) labeled, free form, or
ANS labeled tape.
Option:
rt

SPFt FT*serial no.[-rt),[± n]
{ SPR~

is the 2-character identifier of a device that was defined
at SYSGEN to be a resource.

Positions free form tape forward or backward a designated number of
files (SPF) or records (SPR).
Option:
rt

Sets tab values for tab expansion.

TAB[S] s[,s). ••

WEO[FI

[~se'ial

nO.[-'lll

x

203.1

is the 2-character identifier of a device that was defined
at SYSGEN to be a resource.

Writes an end-of-file on the specified output device.

Returns control to the monitor.

Peripheral Conversion Language

90 17 64H-l (9/78)

(This page intentionally left blank.)

90 17 64H-1 (9/78)

203.2

BATCH PROCESSOR

are described in Chapter 3 of CP-V/TS Reference Manual, 90 09 07.

IITRODUCTIOI
The Batch processor is used to submit a file or a series of
files to the batch queue for execution. Through Batch processor commands, the following capabilities are available:

I.

Fi Ies may be inserted into a fi Ie be i ng subm i tted for
execution, thus bringing together more than one file
to create a single job.
Selected strings and fields existing in files being submitted for execution may be replaced by new strings
and fields.

3.

The ,esults of string and field replacements can be
examined before the job is submitted to the batch
stream.

4.

Fi les to be submitted for execution may reside on tape
or pri "ate disk pack.

5.

Jobs may be submitted to run in an account other than
the account from which the job is submitted.

The Batch processor may be called in the on-line, batch,
or ghost mode. The file to be submitted must include all
appropriate batch control commands that would be needed
for normal batch job submission. However, the specification field on the JOB control command may optionally be
left blank and the Batch processor wi II supply the missing
subfields before submitting the job to the batch queue.
Each record in the fi Ie must not exceed 80 characters.

DATA REPLACEMEIT
There are five Batch processor commands. Three of the five
commands allow the user to request data replacements. As
each record from the input file is read, it is examined to
see if any data replacement requests apply to it. If so, tJ,e
appropriate substitutions are made and the resulting record
is placed in the job stream (except when the" test" mode
has been requested).
Data replacement requests have the same format regardless
of which command they appear in. The general format of
data replacement specifications is discussed in the following paragraphs. The specific effect of data replacement
requests is discussed in the descriptions of the individual
commands.
There are two types of data that may be replaced: fields
and strings.
A field is defined to be a contiguous set of nondelimiters
bounded on either side by a delimiter or by the left or right
record boundary. The nondelimiters are:
A-Z

0-9
II
@

$
Any user wi th at Ieast CO pri vi Iege may enter jobs to run
in accounts other than the account through which the job
is submitted.
When a job is submitted through the Batch processor, the
system responds by assigning the job a job identification
(jid) and sending one of the following messages to the
terminal or p"rinter (via M:LL):
10

= jid

SUBMITTED time-date

WAITING: n TO RUN
or
10

= jid

SUBMITTED time-date

RUNNING

If the user is an on-line user, he may check the status
of the job by using the JOB command or may cancel the
job using the CANCEL command. These two commands

204

Botch Processor

In the following two lines, the fields are underscored.
AB+44+(XYZ, :ABC} ~ THE FABIT#
IASSIGN F:INPUT,(LABEL,MYTAPE,ACCT#6},(SN,IN}
A string is defined to be part of a field or of a set of
contiguous fields. Any part of a record may be treated as
a string. In fact, the entire record may be treated as one
string. The only limitation on string replacement is that
the string may not contain a quote character (because a
quote character is used to specify a string in a data replacement specification).
The general format of a data replacement specification
is:
field } {field
}
{'string' = 'lstringl
'
The left side specifies what is to be replaced and the righf
side specifies the replacement. The format allows fields
and strings to replace each other interchangeably. It also
allows a replacement string to be a null string.

Examples:
In the examples below, the replac:ement specification will
be applied to the following record::

When a command is continued in the on-line mode, the
Batch processor prompts for a continuation line with a
dollar sign ($).
Example:

I ASSIGN F:IN, (LABEL, A 123" ACCT#6)
!BATCH FILE 1, FILE2, i 8
Each exampl e is to be regarded as independent of the other
examples.
Replacement Specification

l P1 =224, i 8
.!'XXX, VVV'=FFF

e

Result

o.

A 123=8456

!!ASSIGN F:IN, (LABEL,
8456, ACCT# 6)

b.

'IN'='INPUT'

tASSIGN F:INPUT,
(LABEL, A 123,
ACCT#6)

As will be seen later, the blank after FILE2 is mandatory.
The user must ensure that such blanks are not left out when
continuing a command from one line to the next.

BATCH COMMAIOS
There are five Batch processor commands.

c.

'A 123, ACCT#6'=NEWTAPE

tASSIGN F:IN, (LABEL,
NEWTAPE)

They are:

BATCH
DEFAULT

d.

',ACCT#6'="

IASSIGN F:IN, (LABEL,
A123)

The last example illustrates that siTing data replacement
requests can be used to eliminate characters.
Note that the user must specify data replacement requests
very carefully. For example, the specification 'A' = 'C'
would have the following effect:
!~SSIGN F :IN, (L~BEL, ~123,.sCCT#6)

The request ACCT=ACCOUNT would have no effect because in this example ACCT is not a field by itself. To
change ACCT to ACCOUNT, the specification might be
'ACCT' =' ACCOUN T' •
The following restrictions are placed on data replacement
specifications. No more than 50 data replacement requests may be made for one file. There may be no more
than 470 characters in the data replacement requests for
one file (including the left and right sides, the equal sign,
and quote characters).

EOF
EXEC
EOF EXEC
The BATCH command is a control command that (among
other things) calls the Batch processor. The remaining commands must be embedded within the file being submitted for
execution. Their location within the file determines what
portion of the file they affect.
All Batch processor commands begin with an exclamation
point, even those that appear within the input deck.

BATCH
The BATCH command calls the Batch processor,
specifies the files that are to be submitted for execution,
specifies Batch processor options to be used, and specifies
data replacement. The format of the command is:
I BA TCH [([p] [E][S] [T])

where
P

specifies the "print" mode. In this mode, every
record that is submitted for execution is printed
through the F:BATCH DCB. (The F:BATCH DCB
is discussed briefly in the section "Batch Error
Messages. ")

E

specifie's that EXEC commands are to be honored.
An EXEC command is a Batch processor command
and is described below. If E is not specified,
EXEC commands are treated simply as data records.

S

spec ifi es that the input fi lei s not named on the
BATCH command. Instead, the user has issued a
SET or ASSIGN command that has assigned the
M:EI DCB to the input file. For example:

Precedence of data replacement requests is in the order of
appearance within the Batch processor commands. When
replacement of the SClme field or string is requested more
than once, only the first request is honored •.

COMMAND CONnNIlAnON
Due to data replacement specificati'ons, Batch processor
commands can sometimes be quite I~mgthy. Any Batch processor command can be conti nued from one card or line to
the next simply by using a semi-colon at the end of the
card or Iine to be continued. If a semi-colon is present
on a card or line, the first character of the next card or
line effectively overlays the semicolon. A command cannot exceed 255 charOlcters in length.

90 17 MH-l (9/78)

[fid][, fid] .••] [rep[, rep] •..]

ISET M:EI/INFILE

(on-line mode)

lASSIGN M:EI, (FILE, INFILE)

(batch mode)

Batch Processor

205

T

specifies the II test II mode. In this mode, the
Botch processor prints (through the FiBATCH
DCB) each record it alters because of data replacement requests and does not submit the job
to the batch queue for execution. This allows
the user to examine the effects of data replacement requests before submitting the job for execution. The original file is not modified, thus
allowing the user to experiment.

fid

The DEFAULT and EOF command functions may be considered to operate in pairs. This is shown schematically as
follows:
!DEFAULT
data record(s)

C~~~~ULT

data record(s)

IEOF

identifies a file in one of the formats below

!DEFAULT
data record(s)

name
name. account
name .. password
name. account. password
rep

C~~~~ULT

data record(s)

is a data replacement specification in the format described previously.
.

IEOF
IEOF

Example:
Assume that the following fi Ie (FILEA) exists in swap
storage:

data record(s)

!EOF

The EOF command does not affect data replacement requests that were made on the BATCH command. The format
of the EOF command is:

!JOB MYNAME, MYACCT(SUBACCT#88)
!ASSIGN M:LO, (DEVICE, LP), (VFC)

and that the following BATCH command is used to submit
FILEA:

IEOF

EXEC
The EXEC command allows the user to insert
one file within another file. The EXEC command has the
followi ng format:
I EXEC fid [rep(,rep] •••J

!BATCH FILEA '88 1 ='89', VFC=NOVFC
where
The following changes would be made:
fid
!JOB MYNAME, MYACCT(SUBACCT#89)
!ASSIGN M:LO, (DEVICE, LP), (NOVFC)

DEFAULT

The DEFAULT command allows data replacement requests to be made within the input file. The
DEFAULT command may appear any number of times and
anywhere within the fi Ie being submitted and is effective
on subsequent records of that fi Ie. If a data replacement
request on a DEFAULT command is made fora field or string
for which a data replacement request was also made on
the BATCH command, the BATCH request overrides the
DEFAULT request. The format of the DEFAULT command is

! DEFAULT rep[,rep) •••
where rep is a data replacement spec ification in the format
described previously.

EOF

The EOF command specifies that all data replacement requests made on the previous DEFAULT command
are not to be effective on subsequent records of the fi Ie.

206

Batch Processor

identifies the fi Ie to be inserted in one of the
formats below:
name
name. account
name •. password
name. account . password

rep

is a data replacement specification in the format described previously.

The EXEC command is replaced by the entire file named on
the EXEC command. The EXEC command can appear any
number of times and anywhere within the user's fi Ie. If the
E option is not specified on the BATCH command, the EXEC
commands are treated as ordi nary data records andare moved
to the job stream. EXEC commands within EXEC fi les are
also treated as ordinary data records and are moved to the
job stream; however, their presence in the file will cause
an error at a later time.
The data replacement requests on the EXEC command apply
only to the EXEC fi Ie. All previous data replccement
requests on the BATCH command or on DEF AUL T commands
do not apply to the EXEC file. (Such dcta replacement
requests resume their effect after the EXEC fi Ie has been
completely inserted. ) However, it is important to note that an

EXEC command is subjected to data "eplacements specified
on the BATCH command and on previous DEFAULT commands
before the EXEC command is process!9d.

requests that were made on a DEFAULT command.)
format of the command is:
IEOF EXEC

DEFAULT and EOF commands within the EXEC fi Ie apply
only to that file and function as previously described.

EOF EXEC

The EOF EXEC command specifies that
all data replacement requests made on either the BATCH
command or an EXEC command (if i·he EOF EXEC command appears within an EXEC file) are not to affect subsequent records of the fi Ie. The EOF EXEC command may
appear anywhere within the user's file. (It does not affect

Tabl e 41 .

The

BATCH ERROR MESSAGES
Error cond itions that may be en countered and reported by
the Batch processor are I isted in Tabl e 41. These messages
are output through the F:BATCH DCB. In addition to these
error messages, there are several self-explanatory messages
which may be issued by the monitor's file management routines to report such things as the file does not exist or the
file has a password which was not specified.

Batch Processor Error Messages

Message

Descri ption

BATCH QUEUE FULL

~~o more symbiont space is available or the queue is full.

BATCH WHAT?

No file was specified on the BATCH command and the M:EI DCB was not assigned to
a file.

BLANK NOT ALLOWED
IN XACCT FIELD

A blank is not allowed in the extended accounting field on the JOB command.

*****CAN'T GET
DYNAMIC PAGE

There is a problem in the system.

COMMAND REJECTED

The file contains a BIN or FIN control command.

*****COMMAND TOO
L.ONG

A BATCH, DEFAULT, or EXEC command (with its continuations) has exceeded 255 bytes.

DATA LOST ON RECORD
nnnn

The job expects card image input: 80 characters-per-record maximum, EBCDIC;
120 characters-per-record maximum, binary.

EH? @n

A syntax error exi sts at character n.

ILLEGAL ACCOU NT

The account on the JOB control command must match the user log-on account.

ILLEGAL NAME

The name on the JOB control command must match the user log-on name.

ILLEGAL PRIORITY

The terminal-batch job priority may not exceed the user's maximum on-I ine priority.
This maximum value is contained in the user's job information table (JIT).

***** JOB ABORTED

Due to syntax errors listed previously, the job was aborted.

*****JOB NOT SUBMITTED
BECAUSE OF ERRORS

Due to syntax errors listed previously, the remainder of the file was processed for
syntax errors (without data replacement) but the job was not submitted for execution.

MISSING JOB COMMAND

The first record of the job must be a JOB control command.

Notify the system analyst.

The BIN or FIN command was ignored.

Batch Processor

207

Tabl e 41.

Batch Processor Error Messages (cont. )

Message

Description

*****MODIFIED DATA
RECORD EXCEEDS
80 BYTES

.Data replacement for the record listed below this message has caused the length of the
record to exceed 80 bytes. The remainder of the file is processed for syntax errors
(without data replacement) but the job is not submitted for execution.

NO REPLACEMENT
MADE

The user specified replacement requests but no matches were found. The job is submitted for execution unless the "test" mode is specified.

H***SYNTAX ERROR IN
ABOVE LINE

Self-explanatory. The remainder of the fil e is processed for syntax errors (without
data replacement) but the job is not subm itted for execution.

*****TOO MANY
RE PLACEME NT REQUESTS

Either more than 50 data replacement requests have been made for one fi Ie or the
number of replacement requests for one fi Ie exceeds 470 characters.

*****WHILE PROCESSING
FILE fi lename

The above errors occurred while processing this file.

XACCT FIELD NOT
TERM. BY RT. PAREN.

Either a comma or a left parenthesis in an extended accounting field. (The extended
accounting field must be terminated by a right parenthesis or the end of the command. )

SHOW PROCESSOR
The Show processor allows the user to display his current
maximum system services and resources, the peripheral devices that he has been authorized to use, and several other
system user parameters. Show is called by a !SHOW command or by CCI when a job is aborted for exceeding a limit.
The values displayed by Show are the maximum values that
a user can Iega II y request on a ! LIMIT command.

M:xx
or F:xx

displays the individual DCB requested in SET
command format.

ALL

displays all of the information requested by
the USER, PRIV, and DCBS options and is
assumed if no options are specified.

If for any reason SHOW is not able to access the system
default tables, only the user specific values are displayed
and the message

The form of the SHOW command is:
SHOW[option[,optionJ •.•J

CAN'T GIVE YOU SYSTEM DEFAULT VALUES

The legal options are:
is output. Show's output is directed through the M:LO DCB.
USER

displays the log-on account, name, autocall processor, and user accumulated space
on both RAD and di sk •

PRIV

displays the user accumulated space on both
RAD and disk, the default and maximum file
retention periods, the extended accounting
field, service limits, resource lifits, and
device and feature authorization for both
batch and on-I i ne operati on.

DCBS

208

displays all the user DCB assignments in SET
command format.

Show Processor/DEFCOM

DEFCOM PROCESSOR
The DEFCOM processor provides users a means of accessing
core resident data and routines in one load module by another load module. This is accomplished by using a specified load module as input and producing another load module
that contains only the DEFs and their values, which can
then be combined with other load modules to give them
access to core resident data and routines.

Thus the DEFCOM processor may be used to provide the user
with a common data pool or library. This can be done in the
following way. A load module consisting of DEFs for the
data or the actual routines is produced by the loader, and
the DEFCOM processor is run usin~~ the load module as
input, producing another load module which contains only
the DEFs and the DEF values of the input load module.
When other load modules are created by the loader, the
load module containing only the DEFs can be inc! uded by
specifying the name of the DEF load module on the EF option of the LOAD control command.

Another use of SYMCON is to reduce external symbols. If
certain load modules cannot be combined because their
tables of control information are too large, the tables may
be reduced in size by deleting all but the essential external symbols.
SYMCON may also be used to provide the load module
with a global symbol table in Delta symbol table format
for use by Delta during a run. Conversely, a global symbol
table may be discarded from a load module.
Printed output from SYMCON goes to the LO device.

The format of the control command is

rDEFCOM

CONVENTIONS

The input load module name is specified by assigning the
DCB of M:EI to the fi Ie containing the load module. The
name of the load module to be formed by DEFCOM is
specified by assigning the DCB of M:EO to a file with
that name.

Blanks may be used within SYMCON commands but may not
be embedded within a command verb or symbol. A command
is terminated by the end of the input record or by a period,
and may be conti nued from record to record by use of a
semicolon, in which case the continuation record begins
wi th the fi rst character.

Example:

CALLING SYMCON
lASSIGN
lASSIGN
!DEFCOM

M:EI, (FILE, M:MON)
M£O, (FILE, MONSTK)

SYMCON is called by the following processor control
command.

(ISYMCON
The input load module must not contain any REFs or dummy
sections and must not have been generated with the PERM,
LIB option in the LOAD command used to generate it.
However, before SYMCON can be called, the load module
file must be assigned to the element input DCB. This is
done by an ASSI G N control command.
lASSIGN M:EI, (FILE, Imn), (INOUT)

INTRODUCTION
The Symbol Control Processor (SYMCON) provides a means
of controlling the external symbols in a load module. Its
primary function is to give the programmer a means of preventing double definitions of external symbols. A programmer
who is working on one section of a large system need be
concerned only with the external symbo!s that will eventua II y be used to communi cate wi th other sections of the
system. He need not be concerned with symbols internal
to a group of ROMs once they have been loaded together.
If someone else uses the same name in another section,
ei ther one or both of the programmers can delete the name
with SYMCON before the sections (Jre combined.
Thus, with the aid of SYMCON, a programmer need only
decide what symbols are to be referenced by external programs. Then except for these symbols, he may use any
symbols he wants in the various relocatable object modu les
that make up the load module.

where
M:EI
Imn
INOUT

specifies the element input DCB.
is the name of the load module.
specifies file use in the update mode.

SYMCON reads the load module, processes each command
independently, then rewrites the load module, providing
no major errors are encountered. Note that the old load
module is overwritten unless an abort occurs.
SYMCON may be used as an on-line processor by including
it in the :SYS account. When used in this way, it may be
entered with a SYMCON command in response to a TEL
prompt. When entered, SYMCON will type SYMCON
. HERE and accept commands from the terminal, prompting
for each with an asterisk. The identify of the load module
: SY MCON Processor

209

is establ ished prior to call ing S YMCON, with a SET command
of the form
!SET M:EI DC/lmn

DELETE
This command deletes the specified symbols. Any DEF symbol in the module load map may be deleted unless it enters
into the definition of a DEF symbol or a forward reference
that is not yet completely defined.

The END command terminates SYMCON.
The general form of the DELETE command is
DE LETE name [, name] ...

SYMCON COMMANDS
There are eight S YMCON commands: LIST, DELETE, KEEP,
RETAIN, CHANGE, BUILD, DISCARD, and END. The
function of these commands is to

where name is the name of a symbol to be deleted.

Example:

1.

Produce a load map (LIST).

2.

Delete specified symbols (DELETE).

3.

Delete all symbols but those specified (KEEP).

4.

Delete all but a specified range of symbols (RETAIN).

5.

Rename a symbol (CHANGE).

6.

Build a Delta-format global symbol table (BUILD).

7.

Discard a Delta-format global symbol table (DISCARD).

8.

Exit from SYMCON (END).

Assume the following Meta-Symbol code.

The execution of each command is independent of any
other command. Thus, after the configuration of the load
modul e after the execution of one command is what is acted
on by the next command. This serial nature of operation is
useful for certain kinds of symbol manipulation, such as that
for the DELETE command.

DEF

A, B

REF

C

A

EQU

B+C

B

EQU

2

If the external reference C is not satisfied when the load
module is formed, then A is not completely defined. Thus
any attempt to delete B will be ignored and an error message will result.

If A can be deleted, the DELETE B will work because A no
longer exists after the DELETE A has been executed.

KEEP
Five SYMCON commands - LIST, DELETE, KEEP, RETAIN,
CHANGE - do not operate on the global symbol table built
by the BUI LD command. Hence a BUILD command must be
- executed after a DELETE, KEEP, RETAIN, or CHANGE
command is executed in order for the global symbol table
to accurately reflect the load module.

This command deletes all DEFed symbols except those that
fall into the following categories.

1 ."

DE Fs Iisted in the command.

2.

DEFs that help define the symbols I isted in the command.

3.

DEFs defined in terms of unsatisfied references (and
used).

LIST

This command I ists the external symbols of the Iqad module
in the same format as the load map. The orderi~g of items
will usually be somewhat different from that produced by
the loader and there may be some additional control sections (CSECs) I isted corresponding to items (such as DCBs)
obtained from the library. Forward references do not appear in the load map. The LIST command has the form
LIST

210

SY MC ON Processor

The form of the KEEP command is
KEEP name[, name] •..
where name is the name of a DEF symbol to be deleted.

Example:

CHANGE

Assume two ROMs are loaded to form a load module.
are

A
B
C

DEF
REF

A, B,C
D, E, F

EQU
EQU
EQU

297
E+3
F- 1

They

This command renames symbols. Unl ike DE LETE and KEEP,
the CHANGE command may be used to operate on any item
with a name (DEF, SREF, PREF, DSEC). The form of the
command is

where
is the name of the symbol to be changed.,
name2
is the name to be given to the symbol identified by name ,
1

and

D
E

DEF
REF

D,E
A,C

EQU
EQU
LW, R7

A

6

The only restriction is that name 1 must be in the module
and name must not.
2

BUILD

C

This command builds a Delta-format global symbol table.
The form of the command is
After these ROMs are in the form of a load module, the,
fol lowing command is issued.

BUILD

[(LIB)]

If the (LIB) option is specified, library DEFs are included
KEEP

B, A

DEF symbols A and B are listed in the command, E is used to
define B, and C is defined in unsatisfied terms (namely F).
Thus, A, B, C, and E are not deleted but Dis. DEFs in
the unsatisfied reference category are not deleted if they
help define a core location in the object code (i. e., they
are used)but are deleted otherwise. In the above example,
C would have been deleted had if' not been used in the
LW instruction.

in the global symbol table along with the load module DEFs.
Since Delta symbols are truncated to seven characters in
length, any set of symbols that are alike in the first seven
characters are treated as a multiple DEF and only the one
that appears first is retained in the Delta symbol table. The
Delta symbol table type associated with the symbol is "con stant" for DEFs with constant values and is "instruction address II for all others.

DISCARD

This command is used to discard a Delta-format global symbol table from a load module that includes one. The form
of the command is

RETAIN

This command deletes all but a specified range of DEFed
symbols with the constraints specified for KEEP. The form
of ,the RETAIN command is
RET AI N

name 1f name

2

The symbols name 1 and n'ame2 del imit a range of symbols
as they appear within the load module's REF/DEF stack.
Note that they do n()t refer to an alphabetical range of
symbols, but rather to the actual physical order in which
symbols appear with in the REF/DEF stack.

DISCARD

END

This command terminates SYMCON.
mand is

The form of the com-

END

SYMiCON ERROR MESSAGES

Note:

This command is intended primarily for use in system development and modification and should be
used with caution.

SYMCON checks for a number of error conditions. Table42
lists SYMCON error messages.
SY Me ON Processor

211

Table 42. SYMCON Error Messages
Message

Description

name ALREADY IN STAC K, CHANGE NOT MADE

An attempt was made to change the name of an item to a name
currently used by another item.

name APPEARS AS TYPE OTHER THAN DEF, NO
ACTION

The symbol was a PREF, SREF, or DSEC and could not be
deleted.

CAN'T USE SYMCON ON LINK OR LIBRARY
LOAD MODULES

An attempt was made to use SYMCON on a load module library
or a Link-built load module.

COMMAND CONTAINS ILLEGAL CHARACTER

The command contained a character not in the character set
defined for Meta-Symbol. The job is aborted.

DELTA SYMBOL TABLE ALREADY IN LOAD
MODULE, NO ACTION TAKEN

A BUILD command was given and a global symbol table is already
included in the load module. The command is ignored.

EH?

SYMCON does not recognize the command.

ILLEGAL OPTION

An option other than (LIB) was specified on a BUILD command.

ILLEGAL SYNTAX

Command syntax was incorrect. The job is aborted.

INCOMPLETE COMMAND LOAD MODULE
UNCHANGED

Th is mess.age indicates that a continuation was specified (with
a semicolon) but the end of the file was encountered when an
attempt was made to read another card. The job is aborted.

INPUT M:EI FILE IS NOT A LOAD MODULE

The M:EI file is either not keyed or is not a properly formed
load module.

M:EI I/O ERR: xxxx xxxx

An I/O error occurred accessing M:EI. The content of SR3 is
displayed following this message.

NO DELETIONS RESULTED FROM THIS
COMMAND

None of the symbols listed caused any deletions. The load
module is unchanged.

NO DELTA SYMBOL TABLE TO DISCARD, NO
ACTION TAKEN

A DISCARD command was given, but there is no global symbol
table included in the load module. The command is ignored.

NO SYMBOLS FOR DELTA SYMBOL TABLE,
TABLE NOT BUILT

A BUILD command was given, but there are no nonlibrary DEFs
in this load module, hence no Delta symbol table can be built.
The command is ignored.

name NOT FOUND IN REF/DEF STACK

The identified symbol did not exist as an external symbol in the
load module.

OVERLAY PROGRAM, DELTA SYMBOL TABLE
BUILT FOR ROOT ONLY

A symbol table was built only for the root of the overlay.

REQUIRED CORE SPACE NOT AVAILABLE

This message indicates that the M:GP procedure failed to supply
enough operating space for the processor. The job is aborted.

THESE SYMBOLS WERE DELETED
name, name ... name

This message includes all deleted symbols, including deletions
caused by other del etions.

name USED IN UNEVALUATED EXPRESSION,
NOT DELETED

This message indicates that the symbol was used to define an
item that depended on an external reference. The item may
have been a DEF, a forward reference, or a core location of
the object code.

212

SY MC ON Processor

APPENDIX A. DATA CONTROL BLOCK FORMATS
This appendix contains the formats for the three kinds of DCBs created by the monitor: files, devices, and labeled
tape. Following each format, the parameter fields of the DCB are described in alphabetical sequence by their
mnemonic. All referenced addresses have word resolution unless otherwise specified.

FILE DeB
Figure A-l shows the format of the DCB for consecutive, keyed, and random files. All single fields are applicable
to the three kinds of files. Fields shown with a heavy border depict differences between consecutive, keyed, and
random. Shaded fields are not used by the DCB.
Word 0

F W
C A

ASN

EOP

:c

1

D T
28 29 30 31

10 11 12 13

Word 1

CFUA
13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

IWoord122

3NrRA4~~~~~~~~T~Y~C~~~~~~:~~~~~~~~BU~F~~~~~~~I~~~~
5

6

7

8

9

10 11112 13 14 15116 17 18 19120 21 22 23124 25 26 27 28 29 30 31

Word 3

RSZ

o
Word

ERA

231456718

4

91011i12131415116171819120212223124252627128293031

,

I

I
I

ARS

I

ABA
I

0

2

3 14

5

6

7 18

E

N
A

T

N

T
R

C

9

I

I

10 111 12 13 14 151 16 17 18 19120 21 22 23124 25 26 27128 29 30 31

Word 5

FIll
0

0 N
N
W W
K K
2

3

x

N

D

4

U

R X
T
N F

5

6

p

7

RAX

RNDEV
I

8

9

I

ORG

ACS

10 11112 13 14 15 16 17 18 19120 21 22 23 24 25 26 27 28 29 30 31
Figure A-I.

Format of File DC B

Appendix A

213

Word 6

.
1

BlK

o

1

2

3 I4

2

3

FlP

5

6

7 I 8

9

5

6

7: 8 9

10 11 I 12 13 14 15 I 16 17 18 191 20 21 22 23 I 24 25 26 271 28 29 30 31

Word 8

o

1

I4

10 11112 13 14

Word 9

1

17 18 19120 21 22 23: 24 25 26 27128 29 30

J

~

VSND
0

~i:6

2

AGE
5

6

7

345

6

7

3 14

I

8

9

I
I

I

BUFX

I

I

1
I
10 111 12 13 14 151 16 17 18 19 I 20 21 22 231 24 25 26 27128 29 30 31

Word 10

VDeT

o

1

2

31

Word 11

ove

VNO

FPARAM

.1

0

1

2

3 14

5

6

8

7

9

10 111 12 13 14 15116 17 18 19120 21 22 23124 25 26 27 I 28 29 30 31

Word 12

KEYM

elK
.

o

1

2

3 I4

5

6

Word 13

7

8

9

I

10 11 I 12 13 14 15 I 16 17 18 19 I 20 21 22 23 I 24 25 26 27 I 28 29 30 31

I

RWS or TeFU

o

J

1

2

3 I4

I

5

6

7 I8

9

10 11112 13 14 15116 17 18 19120 21 22 23124 25 26 27128 29 30 31

Figure A-l.
. -

214

Appendix A

Format of File DeB (cont.)

Word 14
CRECNO or ADDER
012

9

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Word 15
BCOA
012

6

7: B

9

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Word 17
SCR
0

1

2

3 14

5

6

Je

DESC
(for private files)

PAT
PkT
DESC

9

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

I

Word 18

c;o
012 . 3

I4

KAD
I

5

6

7: 8

Word 19

~

RDLO

I

I

9 10 11112 13 14 15116 17 18 19120 21 22 23124 25 26 27128 29 30 31

SPARE

LRDLO

LSLlDES
PRECNO

012

5

6

Word 20

o

1

2

7

8

9

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

C~D
3

I4

5

6

7; B

PBD

or RSTORE

9· 10 111 12 13 14 15 16 17 1B 191 20 21 22 231 24 25 26 271 28 29 30 31

Word 21
FLD
DC BCDAM
11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Words 22 - n are used for variable length parameters.

Figure A-l.

Format of Fi Ie DCB (cont.)

Appendix A

215

In the following field descriptions, the Control column signifies who specifies the contents of the field - the monitor
(M) or the user (U).
Field

Description

ABA

Contains the address of the user's routine that will handle abnormal conditions
resulting from insufficient or conflicting information. (The mon itor returns to
ABA in the FPTif the abnormal condition is the result of a device abnormality.)

ACD

ACS

Word

Control

4

U

Contains the word displacement to the user's account number in the DCB relative
to the start of the variable length parameters. (FLP+ACD = FWA of the EBCDIC
account number.) (Meaningful only during an open or close. )

21

M

is the file access indicator (0 = none specified and is treated as sequential,
1 = sequential, 2 = direct). ACS is only meaningful when a file is first written
in the OUT or OUTIN mode. If a file has keyed organization and sequential
access is specified, the keys written must be in ascending order. However, if
the organization is keyed and direct access is specified, the keys can be written
in any order (the mon itor sorts them into ascending order).

5

U

ACS is not used by random files.
ADDER

contains the size of a single entry in the master index structure or directory for
operations on keyed files or directories.

14

M

AGE

is used to measure the most recent activity on the DCB so that buffer truncation
can be made more efficiently.

9

M

ARS

contains

4

U,M

1.

the actual number of data bytes transferred to or from the user following a
read or write.

2.

the number of records remaining to be skipped following a PRECORD operation that has terminated due to an end-of-file or a beginning-of-file condition.

ASN

indicates the assignment type currently in effect for the DCB (0 = null, 1 = fi Ie,
2 = Xerox labeled tape, 3 = device, X'AI = ANS labeled tape).

o

U

BBUD

indicates whether or not the blocking buffer (BUF1) has been changed since it
was last read or initialized (0 = unchanged, 1 = changed). This flag is used to
determine whether or not BUF1 needs to be written out to the data granule specified in BCDA before truncating the buffer.

16

M

15

M

6

M

16

M

BBUD is not used by random fi les.
BCDA

contains the disk address of the data granule currently in the blocking buffer (BUF1).
BCDA is not used by random files.

BLK

BRS

contains
1.

the byte count of the record segment pointed to by either CBD or PBD, depending upon the point in time. Not applicable to random files.

2.

the number of bytes to :be transferred by the I/O routines whenever called.

indicates whether or not the record segment pointed to be CBD or PBD, depending
upon the point in time, is blocked (0 = unblocked, 1 = blocked).
BRS is not used by random fiI es.
During an open BRS, indicates whether the ITEST' option was indicated in the
open FPT (0 = not test, 1 = test).

216

Appendix A

Field

Description

BUF

contains the address of the user's buffer where the data record is to be read or
written.

2

U

BUFX

contains three 5-bit subfields used to index into the table of pooled buffers
available to the file management system. These indexes have varying significance depending on the current operation being performed.

9

M

CBO

contains the current byte displacement within the blocking buffer (BUF 1). CBD
specifies where the record segment associated with the key pointed to by CMD
begins. When writing on the file, CBD = 0 if a data granule other than the last
is being updated.

18

M

8

M

Word

Control

CBD is not used by random files.
COA

contains

1.

the disk address to be used by the I/O routines whenever called.

2.

a counter indicating the number of records to skip.
random fi I es.

Not applicable to

CFUA

contains the address of the CFU associated with the file. During open or close
operations, CFUA contains the address of the ACNCFU and FIlCFU.

ClK

contains

CMD

CRECNO

1.

the net number of data and Master Index granules allocated to or released
from the file during this OPEN. Applicable to keyed and consecutive files.
The field is a 23-bit signed integer with a guard bit 8 that is used to prevent overflow into the KEYM field.

2.

the number of granules allocated to the file.

12

M

20

M

14

M

Applicable to random files.

contains

1.

the byte displacement to the current key entry in the Master Index Buffer
(BUF2) for keyed files. CMD, along with TRN and DCBCDAM, points to
the current position in the file. For consecutive files, CMD contains a
word position in the granule pointed to by DCBCDAM. None of this is
appl icablE~ to random files.

2.

the byte displacement to the current entry in the Account Directory or
File Directory index buffer (BUF2) when the file is being opened or closed.

contains the current record number.

M

It is set to

1•

0 if at the beginning of the fi Ie.

2.

the number of records in the file (obtained from TDA in the CFU) if at the
end of the file.

3.

the sequential record number of the record most recently read or written.

CRECNO is only used for consecutive files.
CRPT

specifies the address of a word to be used as the seed for a data encryption
process. This field appl ies to keyed and consecutive fi les only.

16

U

CYL

specifies whether the file assigned to the DCB is to be allocated by granules or
cylinders (0 = granule allocation, 1 = cylinder allocation). Only meaningful
for publ i c files.
,

o

M

Appendix A

217

Word

Control

Field

Description

DCBCDAM

is used when CFUA points to a user CFU for keyed or random files and contains
the disk address of the current index granule in the Master Index Buffer (BUF2).
If CFUA points to the Account or File Directory CFU, CDAM in FILCFU or
ACNCFU contains the disk address of the current granule in BUF2. For consecutive files, DCBCDAM contains a disk address of a granule, reflecting (in conjunction with CMD) the location in the file at which the most recent data transfer
operation took place.

21

M

DESC

is used as storage for file descriptors.

17

M

DIR

indicates the direction of the read operation (0 = forward, 1 = reverse).

0

U

o

M

o

M

For private files, DESC resides in bits 8-14.

DIR is not used by random files.
EGV

is the event-given flag and indicates whether or not the completion code posted
in the TYC field has been communicated to the user's program by the CHECK
routine (0 = no, 1 = yes).
The CHECK routine is called either directly by the user or indirectly by the
monitor, depending upon the WAIT, ERR, and ABN options in the FPT.

EOP

is the ending operation indicator (0 = other, e.g., rewind, 1 = read, 2 = write).
Specifies the type of I/O operation currently or last performed.
EOP is not used by random files.

ERA

contains the address of the user's routine that will handle error conditions resulting from insufficient or confl icting information. (The mon itor returns to the
ERA in the FPT if the error condition is the result of a device failure. )

3

U

EXT

is the file extension flag and indicates whether OPEN is to position to the
beginning or end of a specified file (0 = beginning-of-file, 1 = end-of-file).

o

M

EXTRND

is set to one if the RAX field is to be logically appended to the RSTORE field
(RAX being the most significant field) for a random file. Otherwise, it is set
to zero.

5

M

FCD

indicates whether the DCB is opened or closed (0 = closed, 1 = opened).

o

M

FC}

indicates whether the DCB has ever been closed. This flag is set when the DCB
is first closed and then never reset (0 = DCB has never been closed, 1 = DCB has
been previously opened and closed).

o

M

FCN

indicates the current number of I/O operations that have been initiated but not
completed, for this DCB.

7

M

FIll

indicates the file option last specified (0 = none specified and is treated as
release, 1 =release,'2=save, 3=JOB).

5

U

FLD

contains the word displacement to the file name in the DCB relative to the start
of the variable length parameters (FLD + FLP = FWA of the EBCDIC file name).
(Meaningful only during open and close.)

21

M

FLP

contains the address of the start of the variable length parameters in the DCB
(called the file list-pointer).

6

M

FPARAM

contains the receiving address of the user's 90-word buffer to which the variable
length parameters from the file's FIT are to be' passed.

11

U

FUN

indicates the file mode function (0= null, 1 = IN, 2 = OUT, 4 = INOUT,
8 = OUTIN).

"
218

Appendix A

U

Field

Description

HBTD

is the I/O handler's byte displacement indicator and is used whenever the I/O
routines are called to specify the byte displacement within QBUF into which the
data transfer is to begin.

KAD

contains

KBUF

Word

Control

o

M

18

].

the address of the key specified by the user in the read or write FPT.

U

2.

the address of the account number or filename when opening or closing the file.

M

contains
].

the address of the buffer contain ing the key most recently accessed in the
Master Index or File Directory. The field is set up by the M:DCB procedure
and points to an 8-word buffer following the VLPs. Not applicable to random files except during open.

2.

the address of the word buffer containing the relative granule number of the
first sector to be used in the I/O transfer. Applicable to random files only.

3.

the address of an 8-word buffer in the DCB that contains the TEXTC key of
records reCld sequentially from a keyed file.

10

U

KEYM

contains the mClximum length, in bytes, of ,the keys in the file pointed to by the
DCB. Applicable to keyed files. Maximum value is 31.

12

U

LRDLO

contains the I irniting number of contiguous index granules that can be allocated
in level 0 and not be reflected in level 1 before the flag, which signals CLOSE
1'0 reconstruct the higher level index structure, is set (i. e., before SLIDES in
t-he CFU is set equal to 255).

19

U

19

U

LRDLO is only used for keyed files.
LS LIDES

only has meaning if a multilevel index exists and contains
1.

the limiting number of index granules that can be allocated in level 0 and
not be reflected in level 1 before the flag, which signals CLOSE to reconstruct the higher I eve I index structure, is set.

2.

the value 255, which means that once a higher level index structure exists,
it is not to be reconstructed.

lSLIDES is only used for keyed files.
MIUD

indicates whether or not the Master Index Buffer (BUF2) has been changed since
it was last read or initialized (0 = unchanged, 1 = changed). This flag is used
to determine whether or not BUF2 needs to be written Ol:Jt to the granule specified in either DCBCDAM or CDAM in FIL.CFU or ACNCFU before truncating
the buffer.

16

M

NACUP

indicates whether the file's descriptors indicate that the last access date is not
to be updated (0 = may be updated, 1 = may not be updated).

5

M

NLR

indicates whether or not the record segment pointed to by CBD is the first record
in a continued data record (0 = second or nth record segment, 1 = first or only
record segment). NLR is only meaningful duri.ng a WRITE operation.

16

M

NOSEP

specifies whether or not granul es are to be allocated from RAD (0 = no, 1 = yes).
Normally, granules are allocated on DP. However, if all the devices of the normally allocated type are saturated, the system attempts to allocate on an alternate
device. The order of allocation is DP and RAD if the NOSEP flag is reset. If the

o

U

Appendix A

219

Field

Description

NOSEP
(cont. )

NOSEP flag is set, granules will be allocated from RAD if DEVICE, DC was
specified. This flag has no meaning for private files.

Word

Control

NOSEP is not used by random files.
NRA

indicates the number of recovery tries that may be attempted before a device
error message is to be logged.

2

U

NWK

indicates whether or not NEWKEY was specified in the M:WRITE FPT (0 = replace
an existing key, if the key does not exist, take an abnormal return; 1 = write a
new key, if the key already exists, take an abnormal return). If ONWK is set,
the NWK flag is ignored.

5

U

NWK is only used for keyed files.
NXTA

is the next account indicator and specifies whether this account (i. e., the
account number in the DCB/JIT) or the next account in the Account Directory
(i. e., the one following the account named in the DCB) is to be assigned to the
DCB at OPEN (0 = this account, 1 = the next account). If an account number
is not specified in the DCB and the NXTA indicator is set, the first account in
the Account Directory is put in the DCB and noth ing more is done unless NXTF
is also set. After a file is open, the bit is set to 1 if the DCB is open to a star
file (see Glossary); otherwise, it is set to O.

16

U

NXTF

is the next file indicator and specifies whether th is file (i. e., the file named in
the DCB/FPT) or the next file in the File Directory (i. e., the one following the
file named in the DCB) is to be assigned to the DCB at OPEN. If a file name is
not specified (in either the DCB or FPT), the first name in the File Directory is
put in the DCB and assigned (0 = this file, .1 = next file).

5

U

ONWK

indicates whether or not ONEKEY was specified in the M:WRITE FPT (0 = check
NWK flag, 1 = if the key already exists, replace the corresponding record,
otherwise write a new record).

5

U

5

U

11

M

ONWK is only used for keyed files.
ORG

is the file organization indicator (0 = none specified and is treated as consecutive,
1 = consecutive, 2 = keyed, 3 = random).

OVC

is the open volume count and only has meaning for private files.
1.

for consecutive private files, OVC indicates whether or not the volume
pointed to by VNO is opened or not (0 = no, 1 = yes).

2.

for keyed or random private files, OVC contains a count of the numbers of
vol umes that have been opened.

PAT

contains the allocation table address of the private vol~me pointed to by VNO.
Only has meaning for private files.

17

M

PBD

is the previous buffer displacement indicator, specifying at which byte in the
blocking buffer (BUF1) the previous record segment begins.

20

M

19

M

PBD is not used by random fil es.
PRECNO

contains the direction (+ or -) and the number of records that must be skipped
from the position indicated in CRECNO prior 'to a data transfer operation (read,
write, or delete).
PRECNO is onl y used for consecutive files.

220

Appendix A

Word

Field

Control

PRIV

indicates whether the file assigned to the DCB is public or private (0 = public,
1 = private)., Public files reside on public devices and private files reside on
private volume sets.

o

M

OBUF

contains

7

M

1.

the buffer address to be used by the I/O routines whenever called.

2.

the address within the user's buffer where the next record segment begins.

OBUF, 2 is not applicable to random files.
RAX

controls read' ahead. If set to X'FF', no read ahead is possible. If set to zero,
no read ahead is in progress. Otherwise, RAX contains an index into read
ahead tables"

5

M

RBBI

is the releasEI blocking buffer inhibit flag and indicates whether or not the
blocking buffer (BUFI) should be released during end-action after the data
granule has been read into (BUFI) and the record segment has been transferred
to the user's buffer. (0 = release BUFI, 1 = do not release BUFI. )

16

M

19

M

5

u

20

U

3

U

13

M

7

u

17

M

RBBI is not used by random files.
RDLO

contains a tally (up to 255) of the number of index granules that are read or
inserted at level 0 to locate the position of a user-specified key entry at level O.
If RDLO is greater than LRDLO, the flag, which signals CLOSE to reconstruct
the higher level index structure, is set.
RDLO is only used for keyed files.

RNDEV

contains the type of device requested for file allocation (0 = none specified and
for private filles gets changed to X'B', 7 = RAD, and X' B' = DP).

RSTORE

contains the number of granules to be allocated to the file.
RSTORE is used by random files only. If RSTORE value is zero when a random
file is created, an abnormal return is made with a code of X'14'. Bits 8-15 of
word 5 are used by random files as a high order extension of this field if the
EXTRAND bit us set.

RSZ

indicates the default record size, in bytes."

RWS

indicates
1.

the requested number of bytes to be read or written from the user's buffer
(BUF). DlIJring the I/O operation, RWS is decremented by the value in BLK
each time that a record segment is either output or blocked. At the termination of the I/O operation, RWS is set equal to ARS. Applicable to keyed
and consecutive files.

2.

the requested number of bytes to be read or written from the user's buffer
(BUF). At the termination of the I/O operation, RWS is set equal to ARS.
ApplicablE! to random files.

S

contains the value of the S field from the mode specification in the Open Cal FPT.
S = 1 means SHARE; S = 0 means EXCLUSIVE.

SCR

indicates the byte length of the key portion of the entries in the Master Index
currently referenced by the DCB. This can be the Master Index for the Account
Directory, the File Directory, or the user's file.

Appendix A

221

Word

Field

Description

SPARE

contains the number of spare byte positions to be left unused in the end of the
current index granule in the event that the key to be added is the last key in
the file.

Control

19

U

o

M

SPARE is only used for keyed files.
SWXV

is the switch volume flag and indicates whether or not the current volume is to
be switched to the next volume after all updated buffers have been output to the
current volume (0 = no, 1 = yes). Only used for consecutive private files.

TBT

not meaningfully used for files; however, the flag does get set and reset.

16

M

TCFU

contains the address of the user CFU during CLOSE.

13

M

TRN

indicates, for keyed files, whether the file is positioned before or after the
data record whose key entry is po inted to by CMD (0 = after, 1 = before). For
consecutive files, this bit is set only if the most recently executed operation
on the file was a read backwards.

5

M

TYC

indicates the type of completion of an I/O operation.

2

M

TYC Code

o

222

Corresponding Error/
Abnorma I Code

Meaning

o

normal without device I/O transfer

o

normal with a device I/O transfer

2

7

lost data

3

lD

beginning-of-tape

4

4

beginning-of-file

5

lC

end-of-reel

6

5

end-of-data

7

6

end-of-file

8

41

read error

9

45

write error

A

57

publ ic devices/private volume-set
saturated

B

o

SLIDES is 255

C

o

partial higher level index built

UBTD

is the byte displacement indicator, specifying at which byte in the user's buffer
(BUF) the data record begins.

o

U

USR

indicates whether the JOB account number is the same as the account number
specified in the DCB (0 = yes, 1 = no).

o

M

VDCT

contains the DCT index of the device on which the volume (in a private volume
set) pointed to by VNO is mounted. Only meaningful for private files .

10

M

Appendix A

90 17 64H-1 (9/78)

Field

Description

Word

VNO

contains the volume number of the private volume currently being referenced
via the DCB. Volume number is the position (starting with one) of a volume
within the DCB's SN list. The S N Iist in the DCB has a fixed order and comes
from the serial number table on the primary volume of a private volume set.
Only meaningful for private files.

11

M

VSND

contains the word displacement to the serial number table of the private volume
set (i. e., the SN list) in the DCB relative to the start of the Variable Length
Parameters (FLP + VSND = the control word of the SN list).

9

M

WAT

is the wait flag and indicates whether or not WAIT was specified in the FPT
(0 = no, 1 = yes).

0

U

XUP

indicates whether or not a higher level index structure is in the process of being
reconstructed or constructed (0 = either that there is no higher Ievel index or
that the higher I,evel index is complete, 1 = that the higher level index is being
built). Only meaningful for keyed files.

0

M

VARIABLE LENGTH PARAMETERS

Control

22-n

Each variable length parameter entry is preceded by a contTol word of the following form:
Byte 0

=a

Byte 1

= code

Byte 2

= number of significant data words

Byte 3

= total

code number (see Table A-1) identifying the parameter which follows.
for the entry position (00

= more

= last

parameter entry).

in the parameter entry.

number of words reserved for the entry, not including the control word (that is, maximum entry length).

Table A-1.
Code

parameter entries to follow, 01

Variable Length Parameter Codes

Parameter Type

01

FiI,e name (in TEXTC format).

02

Ac'count number.

03

Password.

04

Expiration date.

05

READ ~ccount numbers.

06

WRITE account numbers.

07

SN/INSN serial numbers.

08

OUTSN serial numbers.

09

File information (see Figure A-2).

OA

Modification date.

OB

SYNON name.

Appendix A

223

Table A-1.

Variable Length Paramet.er Codes (cant.)

Parameter Type

Code
OC

File information (see Figure A-2).

OD

File size.

OE

Creation date.

OF

Last access date.

10

Backup date.

11

The X' 11 1 VLP is used to control disk file status. It consists of one data word. The
meanings of the bits are:
Bit
8

Meaning
If set, bits 12-15 will be moved from the data word into the file
descri ptor.

12

If set, the file has been modified since last backed up by Fill.

13

If set, the file has been modified since the last INCREMENTAL.

14

If set, the file has been modified since the last SAVEALL.

15

If set, the file has been modified since the last FILL.

20

If set, the file is not to be backed up.

21

If set, the access date is not to be updated.

22

If set, the file is not to be deleted by the PURGE operation of Fill.
Th is bit is only looked at if the user has a privilege that is greater
than or equal to X'AO' or is a ghost.

23

Must be set if bits 20-22 are to be looked at.

12

On line diagnostics; used to hold user's I/O command list.

14

Execute account numbers.

15

Names of the processors that may access th is fil e. The names are in TE XTC format.
Each name begins three words beyond the beginning of the previous name.

FIT FILE PARAMETERS (FPARAM TABLE)
The format of the file parameters that are passed from the FIT to the memory location specified by the FPARAM parameter of M:OPEN is given in Figure A-2, "Format of the FPARAM Table". A description of the fields of the table
follows. Note that each variable length parameter is preceded by a control word of the form described in the section
above, "Variable Length Parameters".

224

Fie Id

Description

ACN

is an account number. There can be a maximum' of 16 total Read and Write ACNs. Each ACN is an
eight-byte EBCDIC entry with trailing blanks. If there is no Read ACN entry, any ACN can read the
file. If there is no Write ACN entry, no one can write in the file except the ACN that created the file.

Appendix A

X'Ol'

}

I

I

9

0

9

(8 words) FNE (in TEXTC format)

W%f}ff~

*
X'03'
X'15'

0

I

0

2
Password (2 words)
NDW

I

I

2

I

NAW

TEXTC name of processor that can access this file (up to three words)
X'14'

I

I

0

I

NAW

I

NAW

I

NAW

2

I

2

2

I

2

2

I

2

2

I

2

3

I

3

1

I

1

7

I

7

NDW

These coded entries
are optiona I; presence
of the entry is indicated by the byte 0
hex code.

Execute ACNs (2 words each)
X'05'

I

{

I

0

NDW

Read ACNs (2 words each)
X'06'

f

I

0

NDW

L

Write ACNs (2 words each)
X'04'

I

0

X'OF'

I

0

I

-?

Expiration Date

X'10'

Access date

I

0

Backup date
X'OE'

I

0
Creation date

X'OA'

0
Modification date

X'OD'

I

0

File size
X'OC'

0
FDA

NGAVAL

TDA

I

GAVAL

O~

CCBD

SLIDES

0
SREC
LDA

=

X'09'

1

ORG

KEYM

3

3

~~INOSEPlcYL

LSLIDES
NSF

I .

LRDLO

I

SPARE

. DESC

*For synonymous fi les opened via the NXTF option, the nine words immediately following the unused tenth word
contain an X'OB' entry specifying the name of the primary file ..
Figure A-2. Format of FPARAM Table

Appendix A

225

Field

Description

CCBD

contains, for keyed fil es, either the byte displacement to the next available byte in the last data granule
of the file (SREC), which means that the blocking buffer was truncated; or 0, which means that the last
data granule in the file (SREC) contains 512 words.

CYL

specifies whether the file assigned to the DCB is to be allocated by granules or cylinders (0
location, 1 = cylinder allocation). It is only meaningful for public files.

Date

is of the form mmddhhyy, where
mm

is numerical month.

dd

is day of month.

hh

is hour of day.

yy

is last two digits of the year, all in EBCDIC bytes.

= granule al-

Expiration date may contain the word NEVER followed by three blanks, which indicates that the file
does not have an expiration date.
The modification date contains three words. The third word is of the form hhmm, where
hh

is a repeat of the hour.

mm

is the minute.

DESC

contains the settings of the file descriptions.

FDA

contains the disk address of the file's first index granule at level O.

File size

contains the current number of 512-word granules allocated to the file.

FNE

is the EBCDIC name of the file in TEXTC format.

GAVAL

contains the disk address of the next available granule in the last cylinder allocated to the file; zero if
none.

KEYM

contains
1.

the maximum length, in bytes, of the keys in the file. Applicable to keyed files. Maximum value
is 31.

2.

the type of device that the random file is to be allocated on (0 = allocate on either RAD or DP,
X'7' = allocate on RAD, X'B' = allocate on DP). Applicable to random files.

LOA

contains the disk address of the file's last index granule at level O.

LRDLO

contains the limiting number of contiguous index granules that can be allocated in level 0 and not be
reflected in level 1 before the flag, which signals CLOSE to reconstruct the higher level index structure,
is set (i. e., before SLIDES in the CFU is set equal to 255).
LRDLO is only used fo~ keyed files.

LSLIDES

has mean ing only if a multi level index exists and contains

1.

the I imiting number of index granules that can be allocated in level 0 and not be reflected in level 1
before the flag, which signals CLOSE to reconstruct the higher level index structure, is set.

2.

the value 255, which means that once a higher level index structure exists, it is not to be
reconstructed.

I

I

LSLIDES is only used for keyed files.
NAW

226

is the number of available words in the entry (not including the control word).

Appendix A

Field

Description

NDW

is the number of significant data words in the entry (not including the control word).

NGAVAL

is the number of (lvailable granules in the las't cylinder allocated to the file.

NOSEP

specifies whether or not granules are to be allocated from RAD (0 = no, 1 = yes). Normally, granules
are allocated on DP. However, if all the devices of the normally allocated type are saturated, the
system attempts fe) allocate on an alternate device. The order of allocation is DP and RAD if the NOSEP
flag is reset. If the NOSEP flag is set, granules will be allocated from RAD if DEVICE, De was specified. This flag has no meaning for private files.
NOSEP is not used by random files.

NSF

is ,the number of fi les synonymous with this fi Ie.

o

is a level 1 flag indicating whether or not a level 1 index exists in a keyed file (O = no, 1 = yes).

ORG

is the file organi:z:ation indicator (0
2 =: keyed, 3 = rcrndom).

Password

is an eight-byte EBCDIC entry with trailing blanks.

SLIDES

contains, for keyed files, either

SPARE

= none

specified and is treated as consecutive, 1

= consecutive,

1.

a tally of the number of index granules allocated at level 0 since the current multilevel index
structure was created, or if none exists, since the file was first opened.

2.

a tally of the number of index granules allocated at the current level while the multilevel index
structure is be i ng {re )created.

3.

the value 255, which means that a new multilevel index structure should be built when the file is
closed (unless LSLIDES in the DCB equals 255 and a level-l index exists).

contains the number of spare byte positions to be left unused in the end of the current index granule
in the event that the key to be added is the last key in the file.
SPARE is only used for keyed fi les.

SREC

contains the disk address of the last data granule in the file. It is only used in the output mode.

TDA

contains, for keyed files, either
1.

the disk add:ress of the first index granule at the top of the multilevel structure, if one exists.

2.

the disk address of the middle index granule, if there are three level-O index granules and
the fi Ie is keyed.

3.

0, which means that either the file is consecutive, or that the file is keyed and there are at the
most two i nd'ex granu Ies.

For consecutive files, TDA contains the number of records in the file.

DEVICE DCB
Figure A-3 shows the format of the DeB for a device.

Shaded fields are not used by the DeB.
Appendix A

227

H

U

T
D

T
D

B

B

ASN = 3

24 25 26 27

30 31

29 30 31
Word 2

.
Tye

NRA

BUF

I

1

0

2

3 14

5

6

7

8

9

10 11112 13 14 15116 17 18 19120 21 22 23124 25 26 27 128 29 30 31

Word 3
1

RSZ
0

1

Word

2

3 14

5

6

7 18

4

ERA
9

10 11112 13 14 15116 17 18 19120 21 22 23124 25 26 27128 29 30 31

1

ABA

ARS
1

0

1

2

3 14

5

6

7 18

9

1

10 11112 13 14 15116 17 18 19120 21 22 23124 25 26 27128 29 30 31

16 17 18 19

Word 6

.. 1
I

FlP

BlK

I

o

1

Word

2

3 14

5

6

7 18

9

10 11

I 12 13 14 15 I 16 17 18 19 I 20 21 22 23 I 24 25 26 27 128 29 30 31

7
QBUF

FeN

o

1

1

2

314

I

5

6

7

8

9

Figure A-3.

228

Appendix A

I

1

10 11112 13 14 15116 17 18 19120212223124252627128293031

Format of Device DeB

28 29 30 31

Word 10
I

KBUF

. LVA

o

1

2

3 I 4

5

6

7 I 8

I

Word 1:05 or C15

o

1

2

314

5

9

PKTC

I:

6

7

~8

10 11 I 12 13 14 15 I 16 17 18 19 I 20 21 22 23 I 24 25 26 27 I 28 29 30 31

9

AD:R.l

1

10 11112 13 14 15'16 17 18 19120 2122 23

ACCTG

~4

I

25 26 27128 29 30 31

ClK

19 20 21 22 23 24 25 26 27 28 29 30 31

Word 14

csc
29 30 31

Figure A-3.

I

Format of Device DC B (cont.)

. Appendix A

229 .

Word 15

"

TAB1
0

1

2

3 14

TAB2
5

6

7

8

9

TAM

TAB3

10 111 12 13 14 15 16 17 18 19120 21 22 23 24 25 26 27 128 29 30 31

Word 16

TAB6

TAB5
J

1

0

2

TAB8

TAB7

I

I

3 14

5

6

7

8

9

10 11112 13 14 15 16 17 18 19120 21 22 23 24 25 26 27128 29 30 31

Word 17
TAB10

TAB9

TAB12

TAB11

I

0

1

2

314

5

6

7

8

9

I

10 111 12 13 14 15 16 17 18 19120 21 22 23 24 25 26 27128 29 30 31

Word 18

TAB13

TAB14

TAB15

TAB16
I

0

1

2

3 14

5

6

8

7

9

10 11112 13 14 15 16 17 18 19 120 21 22 23 24 25 26 27 128 29 30 31

Word 19
DSC
0

1

2

3 14

SVA
5

6

8

7

9

HLC

10 11112 13 14 15116 17 18 19120 21 22 23124 25 26 27 128 29 30 31

.

Word 20
HSC
0

1

2

314

FVA
5

6

Word 21

7

8

9

CVA or SQS

10 111 12 13 14 '15116 17 18 19 120 21 22 23 124 25 26 27 128 29 30 31

.

.
SID or VAL:l

o

I

1

2

3 I4

5

6

7 I 8

9

I

10 11112 13 14 15116 17 18 19120 21 22 23124 25 26 27128 29 30 31

Words 22 - n are used for variable length parameters

Figure 'A-3.

230

Appendix A

I

Format of Device DCB (cont.) ,

In the following field descriptions, the Control column signifies who specifies the contents of the field - the monitor
(M) or the user (U).
Field

Description

ABA

contains the addrress of the user's routine that' will handle abnormal conditions
resulting from insufficient or conflicting information. (The monitor returns to
ABA in the FPT if the abnormal condition is the result of a device abnormality.)

ACCT

Word

Control

4

U

contains an index signifying the accounting type of the DCB corresponding to the
service I imit options on the J LIMIT command. (0 - no accounting, 1 - DO, 2 - PO,
3 - UO, 4 - lO.)

12

M

ADR:1

contains an address used internally by the monitor in transaction processing.

11

M

ADR:2

contains an address used internally by the mon itor in transaction processing.

14

M

AGE

is a field common to all DCBs and contains J :CAlCNT/4 which determines how
recently the user used this DCB.

9

M

AGV

is the abnormal niven flag and indicates whether or not an end-of-file completion
code has been returned to the user because a control command was encountered
when reading from the C device, (0 = no, 1 = yes).

0

M

ARS

contains the actual number of data bytes transferred to or from the user in the
I/O operation.

4

M

ASN

indicates the assignment type currently in effect for the DCB (0 = null, 1 = file,
2 = Xerox labeled tape, 3 = device, X'A' = ANS labeled tape).

0

U

ASNE

is an ASN extension bit and is used internally by the monitor in transaction
process ing .

0

M

BlK

contains the number of bytes to be transferred by the I/O routines whenever call ed.

6

M

BUF

contains the address of the user's buffer where the data record is to be read or
wrritten.

2

U

BUEX

is a field common to all DCBs and is cleared to zero by the monitor for device DCBs.

9

M

CCF

specifies whether code conversion is to take place between ASCII on tape and
EBCDIC in core (0 = no, 1 = yes).

5

U

CIS

contains the relcltive position of the serial number (in the SN list) of the magnetic
tape reel used for current file input. When ,the DCB is open, this field is always
zero if not assigned to tape.

11

M

ClK

fer a nonsymbiont device, contains O. For a symbiont device, contains the accounting type in bits 20-23 (0 = none, 1 = DO, 2 = PO, 3 = UO, 4 = lO) and
the logical device index in bits 24-31.

12

M

COS

contains the relative position of the serial number (in the SN list) of the magnetic
tape reel used for current file output. When the DCB is open, this field is always
zero if not assigned to tape.

11

M

CSC

indicates the number of the column at which the page count is to begin (for printer
or typewriter). The most significant digit of the count will be printed in this column
on the page.

14

U

CVA

indicates the currrent value of the page count (for printer or typewriter).

20

M

DEV

contains the Dcr index of the device assigned to the DCB.
if DEVF equals 'I.

DEV is only meaningful

M

. Appendix A

231

232

Field

Description

DEVF

indicates whether the DCB is assigned to a device or an operational label
(0 = operational label, 1 = device).

DIAG

signifies that the DCB is being used for diagnostic purposes.

D1R

indicates the direction of the read operation (0

DRC

is the format control flag and indicates whether or not the monitor is to do special
formatting of records on read or write operations (0 = yes, 1 = no).

DSC

indicates the column number at which the output record is to begin (for a card
punch, typewriter, or printer).

EGV

Word

Co.ntrol

M
5

M

o

U

o

U

19

U

is the event-given flag and indicates whether or not the completion code posted
in the TYC field has been communicated to the user's program by M:CHECK
(1 = yes, 0 = no). M:CHECK is called either directly by the user or indirectly
by monitor, depending upon the WAIT, ERR, and ABN options in the FPT.

o

M

EOP

is the ending operation indicator (0 = other, e.g., rewind, 1 = read, 2
Specifies the type of I/O operation currently or last performed.

= write).

o

M

ERA

contains the address of the user's routine that will handle error conditions resulting from insufficient or conflicting information. (The monitor returns to the ERA
in the FPT if the error condition is the result of a device failure. )

3

U

FBCD

is the FORTRAN BCD flag and indicates whether or not BCD is to be converted to
EBCDIC on input, or EBCDIC is to be converted to BCD on output. (O=no conversion, 1=conversion.) On write operations, conversion is performed in the user's
buffer.

o

U

FCD

indicates whether the DCB is opened or closed (0

o

M

FCI

indicates whether the DCB has ever been closed. This flag is set when the DCB
is first closed, and then never reset (0 = DCB has never been closed, 1 = DCB has
been previously opened and closed).

o

M

FCN

indicates the current number of I/O operations that have been initiated but not
completed, for this DCB.

7

M

FLP

contains the address of the variable length parameters in the DCB (called the file
I ist-pointer) or zero if no space was reserved.

6

U

FUN

contains the file mode function (0
4 = INOUT, 8 = OUTIN).

FVA

indicates the first I ine on which printing is to begin (for ~rinter or typewriter).

HBTD

= null,

= forward,

= closed,

1 = reverse).

1 = opened).

1 = IN, 2 = OUT, 3

= IN

and OUT,

U

20

U

is the I/O handler's byte indicator and is used whenever the I/O routines are
called to specify the byte displacement within QBUF into which the data transfer
is to begin.

o

M

HLC

contains the address of the user's page header that is to be output at the beginning
of each I isting page (the first byte of the page header contains the byte count).

19

U

HSC

indicates the column number at which the user IS page header is to begin (for
printer or typewriter).

20

U

KBUF

contains the address of buffer for the DCB wh ich is reserved beyond the end of
the variable length parameters (8 words). If no space was reserved, KBUF contains zero.

10

U

Appendix A

Field

Word

l

indicates whether or not the user specified that the DCB was assigned to a listing
type device. (0 = no, 1 = yes.) This flag is only used by the FORTRAN I/O
rOlJtines. The monitor automatically sets this flag when the DCB is assigned to a
I isting type device (such as the line printer).

lVA

indi cates the number of printable lines per logical page (for printer or typewriter).
The value =: 0 if the st.eam default is selected.

MBG

MOD

Control

u

10

u

is the monitor buffer-flag and indicates whether or not a 34-word outplJt buff.::!'
has been a"ocolted to the DCB from the monitor's buffer pool. (0 = the actual
I/O operation will take place directly from the user's buffer, 1 = the output
record will be fTansferred from the user's buffer to the monitor's buffer and that
the actual I/O operation will take place using the monitor's buffer.)

o

M

is the mode f/~, and indicates the device mode to be used in the I/O operation.
(0 = EBCDIC, 1 = binary.) This flag is only used when

o

U

1.

the DCB is assignf.!d to a card punch or 7-track magnetic tape.

2.

the DCB is assigned to a card reader and DRC has been specified.

NRA

indicates the number of recovery tries that may be attempted before a device
error message is to be logged.

2

U

NVA

contains a coun'ter indicating the number of records to skip on magnetic tape. It
is also used as an indicator. If NVA is negative, the last operation performed
was a rewind.

8

M

PKTC

is used internally by the monitor to handle line cornering and unit record devices.
line cornering is the simulation of a typewriter wherein one record is broken into
small records which fit on the platen.

11

M

PUN

indicates whetht~r a 7-track tape is to be read or written in the packed or unpacked
mode (0 = unpacked, 1 = packed). PUN is only mean ingful when MOD is set.

o

U

QBUF

contains the buffer address to be used by the I/O routines whenever called.

7

M

RNDEV

same as TYPE fiEdd.

5

U

RSZ

indicates the default record size, in bytes.

3

U

RWS

indicates the requested number of bytes to be read or written from the user's
buffer (BUF).

13

M

SEQ

is the sequence option flag and indicate whether or not punched output is to have
sequencing in co~umns 77-80 (0 = no, 1 = yes).

5

U

SJDF

1.

if the DCB is not assigned to tape, SIDF is the sequence identification (ID)
flag and indicates whether or not punched output is to have sequence identification in c:olumns 73-76 (0 = no, 1 = yes).

5

U

2.

if the DCB is assigned to tape, SIDF is the density selection flag for dual
density tape drives (0 = 1600 bpi, 1 = 800 bpi).

SID

contains the 4-byte EBCDIC identification to be output in the sequencing identification field (columns 73-76) of punched card output.

21

U

SQS

indicates the ne)(t sequence number to be output in columns 77-80 (for punched
card output).

20

M

90 17 MH-1 (9/78)

Appendix A

233

Word

Field

Description

SVA

indicates the number of lines to be spaced between printed lines (for typewriter
or printer). A 0 means SPACE was not specified; the output will be single spaced.

TAB 1-16

Control

19

U

indicates the column numbers for the tab-stop settings (for output devices).

15-18

U

TOF

is used by the mon itor to remember that the last operation through th is DCB
occurred at the top-o f-page.

o

M

TOLF

if 1, bits 16-31 of DCB are TEXT OPLABEl. If 0, DEVF is meaningful.

TYC

indicates the type of completion of an I/O operation.

TYC Code

Corresponding Error/
Abnormal Code

2

normal without device I/O transfer

o

normal with device I/O transfer

2

7

lost data

3

10

4

4

5

1C

end-of-reeI

6

5

end-of-data

7

6

end-of-file

8

41

read error

9

45

write error

beginning-of-tape
beginning-of-file

TYPE

contains the device-type code assigned to the DCB. This field is set whether the
DCB is assigned directly to a device or indirectly through an operational label.

UBTD

is the type displacement indicator, specifying 9t which byte in the user's buffer
(BUF) the data record begins.

VAL:1

contains a value used internally by the monitor in transaction processing.

VFC

is the vertical format control-flag and indicates whether or not the first byte of
the output is a format control character (0 = no, 1 = yes). This flag is only used
for printer output.

o

U

WAT

is the wait flag and indicates whether or not WAIT was specified in the FPT
(0 = no, 1 = yes).

o

U

VARIABLE LENGTH PARAMETERS

U

o
21

22-n

Each variable length parameter entry is preceded by a control word of the form shown for File DCB and in
Table A-l.

XEROX LABELED TAPE DCB
Figure A-4 shows the format of the DCB for Xerox labeled tape files.
234

M

Meaning

o

o

U

Appendix A

Shaded fields are not used by the DCB.

U

M

ASN = 2
28 29 30 31

TYPE

DEY

20 21 22 23 24 25 26 27 28 29 30 31

Word 2

NRA

I

012

I

1

R~Z
2

3 14

:

10 11112 13 14 15: 16 17 18 19120 21 22 23 24 25 26 27128 29 30 31

3 14

Word 3

o

BU~

TYC

5

6

Word 4

7

8

I

ERA
I

9

10 11112 13 14 15116 17 18 19120 21 22 23124 25 26 27128 29 30 31

A;S
ABA

o

I

1

2

3

1

4

5

6

7

8

9

10 111 12 13 14 15116 17 18 19120 21 22 23124 25 26 27128 29 30 31

17 18 19
Word 6

o

1

2

314

5

6

:~K8

30 31

F
9 10 11112 13 14 15116 17 18 19120 21 22 ::124 25 26 27128 29 30 31

Word 7

Figure A-4.

Format of Xerox Labeled Tape DCB

, Appendix A

235 ,

Word 8
NVA
I

o

I

1 23145671891011112131415116171819120212223124252627128 293031

Word 9
CYO or CVI

AGE
30 31

12 13 14 15

KBUF
22 23 24 25 26 27 28 29 30 31

FPAR;~

COS or CIS

o

1

2

345

6

17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Word 12
SND or DEVICE
20 21 22 23 24 25 26 27 28 29 30 31

Word 13
I

I

I

RWS
I

o

1

2

314

5

6

718

9

I

Word 14

Figure A-4.

236

Appendix A

I

_.

10-111121314 15116 17 18191202122231242526271282930 31

Format of Xerox Labeled Tape DCB (cont~ )

Word 15
BeDA

I0

1

2

3 145

6

7: 8

9

10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Word 16

Word 17

o

KAD

28 29 30 31

Word 19

Word 20

o

1

2

9 . 10 11112 13 14

J

PBD:

16 17 18 19120 21 22 23 24 25 26 27128 29 30 31

Word 21

FLO
I

o

9

10 11112 13 14 15 16 17 18 19120 21 22 23124 25 26 27128 29 30 31

Words 22 - n are used for variable length parameters.

Figure A-4.

Format of Xerox Labeled Tape DeB (cont.)

Appendix A

237

In the following field descriptions, the Control column signifies who specifies the contents of the field - the monitor
(M) or the user (U).

238

Field

Description

ABA

contains the address of the user's routine that will handle abnormal conditions
resulting from insufficient or conflicting information. (The monitor returns to
ABA in the FPT if the abnormal condition is the result of a device abnormal ity. )

ACD

contains the word displacement to the users account number in the DCB relative
to the start of the variable length parameters. (FLP + ACD = FWA of the EBCDIC
account number. )

ACS

Word

Control

4

U

21

M

is the file access indicator (0 = none specified and is treated as sequential, 1 =
sequential, 2 = direct). If a file has keyed organization, the keys written must
be in ascending order regardless of the access specified.

5

U

AGE

is used to measure the most recent activity on the DCB so that buffer truncation
can be made more efficiently.

9

M

APF

contains the ANS post flag. If set, it indicates that post processing of a block
accessed record has not yet been done.

16

M

ARS

contains

4

U,M

o

U

1.

the actual number of data bytes transferred to or from the user following a
read or write.

2.

the number of records remaining to be skipped following a PRECORD operation that has terminated due to an end-of-file or a beginning-of-file condition.

ASN

indicates the assignment type currently in effect for the DCB (0 = null, 1 = file,
2 = Xerox labeled tape, 3 = device, X'A' = ANS labeled tape).

BBUD

indicates whether or not the blocking buffer (BUF1) has been changed since it
was last read or initialized (0 = unchanged, 1 = changed). The monitor uses this
flag to determine whether or not BUFl needs to be written out to the data granule
specified in BCDA before truncating the buffer.

16

M

BCDA

contains the number of either the current or last accessed entry in the blocking
buffer (BUF1), depending upon the point in time. An entry in a Labeled Tape
block consists of a key, control information, and the associated record segment.
Entries are numbered from 1 to n.

15

M

BLK

contains

6

M

2

U

9

M

1.

the byte count of the record segment pointed to by either CBD or PBD, depending upon the point in time.

2.

the number of bytes to be transferred by the I/O routines whenever called.

BUF

contains the address of the user's buffer where the data record is to be read or
written, or where user trailer labels are to be read.

BUFX

contains the index of the blocking buffer.

CIS

contains the relative position of the serial number (in the SN list) of the magnetic
tape reel used for current file input.

11

M

CMD

contains the byte displacement to the current entry in the blocking buffer (BUF1).
An entry in a Labeled Tape block consists of a key, control information, and the
associated record segment.

20

M

I

Appendix A

Field

Description

cos

contains the relative position of the serial number (in the SN list) of the magnetic
tape reel used for current file output.

11

M

CVI

indicates the relative volume number of the current input tape within the current
file. CVI is taken from the beginning-of-file sentinel, which appears at the beginn ing of fi Ie Clnd at the beginning of each reel, if the fi Ie is continued on more
than one reel.

9

M

CVO

indicates the relative volume rumber of the current output tape with respect to
the current file. CVO is recorded in the beginning-of-file sentinel which is
written at the beginning of the file and at the beginning of each reel, if the file
is continued on more than one reel.

9

M

DEV

contains the DCT index of the device assigned to the DCT. DEV is only meaningful if DEVF =: 1. When DEVF = 0, the field is defined as OPLB.

u

DEVF

indicates whether the DCB is assigned to a device or an operational label.
(0 = operational label, 1 = device. )

u

DEVICE

contains the EBCDIC name specified on the DEVICE option in the M:OPEN call.
This use is only transient, and the field is later overlaid by SND.

DIR
DSF

Word

Control

12

u

indicates the direction of the read operations (0 = forward, 1 = reverse).

0

u

indicates whether a dual density tape drive is to be written at 1600 bpi or 800 bpi.

5

u

(0

= 1600,

1 = 800. )

EGV

is the event-given flag and indicates whether or not the completion code posted
in the TYC field has been communicated to the user's program by the CHECK
routine (0 = no, 1 = yes). The CHECK routine is called either directly by the
user or indirectly by the monitor, depending upon the WAIT, ERR, and ABN options in the FPT.

0

M

EIC

indicates whether or not the last block read from a consecutive file was. in error
and that a validity check on the control information revealed inconsistencies
(0 = no, 1 = yes).

5

M

EOP

is the ending operation indicator (0 = other, e. g., rewind, 1 = read, 2 = write).
Specifies the type of I/O operation currently or last performed.

0

M

16

M

EOT

indicates whether or not the physical end-of-tape mark has been encountered
(0 = no, 1 = yes).

ERA

contains the address of the user's routine that will handle error conditions resulting from insufficient or conflicting information. (The monitor returns to the ERA
in the FPT if the error condition is the result of the device failure. )

3

u

EVC

indicates whether or not the last block read from a consecutive file was in error
bllt a val idity checkon control information revealed no inconsistencies (0 =no, 1 = yes).

5

M

EXT

is the file extension flag and indicates whether OPEN is to position a tape at the
beginning or end of a specified file (0 = beginning-of-fiIe, 1 = end-of-file).

0

M

FCD

indicates whether the DCB is opened or closed (0· = closed, 1 = opened).

0

M

FCI

indicates whether the DCB has ever been closed. This flag is set when the DCB
is first closed and then never reset (0 = DCB has never been closed, 1 = DCB has
been previously .open and closed).

0

M

Appendix A

239

Word

Field

Description

FCN

indicates the current number of I/O operations that have been initiated but not
completed, for this DCB.

FIL 1

indicates the file option specified when the DCB was last opened (0
specified, 1 = release, 2 = save).

FLD

contains the word displacement to the file name in the DCB relative to the start
of the variable length parameters (FLD + FLP = FWA of the EBC DlC file' name).

FLP

contains the address of the variable length parameters in the DCB (called the file
list-pointer).

FPARAM

contains the receiving address of the user's 90-word buffer to which the variable
length parameters from the file's FIT are to be passed.

FUN

indicates the file mode function (0

= null,

1 = IN, 2

= OUT,

= none

Control

7

M

5

U

21

M

6

M

11

U

4 = INOUT,

U

8 = OUTIN).

240

HBTD

is the I/O handler's byte indicator and is used whenever the I/O routines are
called to specify the byte displacement within QBUF into which the data transfer
is to begin.

o

M

KAD

contains the address of the key specified by the user in the read or write FPT. If
a consecutive file is being written, KAD points to the dummy key. If a consecutive file is being read, KAD contains O.

18

U

KBUF

contains the address of the buffer containing the key associated with the data
record last accessed in the blocking buffer.

10

M

KEYM

contains the maximum length, in bytes, of the keys in the fi Ie pointed to by the
DCB. Only meaningful for keyed files. Maximum value is 31.

12

U

NLR

indicates whether or not the record segment pointed to by CMD is the first record
in a continued data record (0 = second or nth record segment, 1 = first or only
record segment). NLR is only meaningful during a write and is reset to zero when
the first record segment is output.

16

M

NRA

indicates the number of recovery tries that may be attempted before a device error
message is to be logged.

2

U

NXTF

is the next file indicator and specifies whether this file (i. e., the file named in
the DCB/FPT) or the next file in the File Directory (i.e., the one following the
file named in the DCB) is to be assigned to the DCB at OPEN. If a file name is
not specified (in either the DCB or FPT), the first name in the File Directory is
put in the DCB and assigned (0 = this file, 1 = next file).

5

U

NVA

contains a counter indicating the number of records to skip. It is also used as an
indicator. If NVA is negative, the last operation performed was a rewind.

8

M

ORG

is the file organization indicator (0 = none specified, and is treated as consecutive,
1 = consecutive, 2 = keyed). :

5

U

PBD

contains

20

M

1.

a counter used by M:OPEN to determine how many volumes remain to be
searched for the specified file.

2.

the number of bytes in the previous labeled tape block. PBD is only mean ingful on a read operation and is taken from the PBS field of a labeled block.

Appendix A

Word

Control

Field

Description

PUN

indicates whethE~r a 7-track tape is to be read/written in the packed or unpacked
mode (0 = unpac:ked, 1 = packed).

o

U

QBUF

contains

7

M

1.

the buffer address to be used by the I/O routines whenever called.

2.

the address within the user's buffer where the next record segment begins.

RBBI

indicates whethE~r or not the blocking buffer should be released at end-action
(0 = release bloc:king buffer, 1 = do not release blocking buffer because the buffer
will be reused to read in the next block). RBBI is set during a read operation when
a data record is continued and more than one read request will be initiated.

16

M

REV

indicates whether the Labeled Tape block currently in the blocking buffer (BUF1)
was read in the forward or reverse direction (0 = forward, 1 = reverse).

16

M

RNDEV

contains the type of device specified (0
X'A' = MT).

5

U

RNR

is a trans ient fl ag used by the system to defer error report ing for a tape bloc k
read by the mon itor in anticipation of a read not yet. requested by the user
(0 = user requested read, 1 = user read not requested).

16

M

RSZ

indicates the default record size, in bytes.

3

U

RWS

indicates the requested number of bytes to be read or written from the user's
buffer (BUF). At the termination of the I/O operation, RWS is set equal to ARS.

13

M

SCR

indicates the byf'e length of the key portion of the entries in the Labeled Tape block.

17

M

SND

contains the word displacement to the tape serial number (SN list) in the DCB
relative to the start of the variable length parameters (FLP + SND = FWA of the
EBCDIC serial numbers).

12

M

TBT

indicates whether or not the Labeled Tape blocking buffer has been truncated
(0 = no, 1 = yes). Truncation means that monitor has taken the blocking buffer
and, if necessary, written the block on tape.

16

M

TLB

contains the address of a user's label that is to be written on a tape file when
the file is output.

14

U

TRN

indicates whether the file is positioned before or after the data record whose key
entry is pointed to by CMD (0 = after, 1 = before).

5

M

TYC

indicates the type of completion of an I/O operation.

2

M

TYC Code

= none specified,

Corresponding Error/
Abnormal Code

8

= 9T,

9

= 7T,

Meaning

0

0

normal withQut device I/O transfer

1

0

normal with a device I/O transfer

2

7

lost data

3

1D

4

4

5

1C

end-of-reel

6

5

end-of-data

7

6

end-of-file

8

41

read error

9

45

write error

beginning-of-tape
beg i nn ing-o f-fi Ie

-

Appendix A

241, -

Field

Description

TYPE

contains the device-type code for the tape assigned to th is DCB.

UBTD

is the byte displacement indicator, specifying at which byte in the user's buffer
(BUF) the data record begins.

0

U

ULBL

indicates whether or not the ULBL option was specified in the FPT of M:READ
(0 = no, 1 = yes).

5

U

USR

indicates whether or not the job account number is the same as the account
number specified in the DCB (0 = yes, 1 = no).

0

M

WAT

is the wait flag and indicates whether or not WAIT was specified in the FPT
(0 = no, 1 = yes).

0

U

Word

Control
U

22-n

VARIABLE LENGTH PARAMETERS

Each variable length parameter entry is preceded by a control word of the form shown for File DCB and in Table A-1.

ANS LABELED TAPE DCB
Figure A-5 shows the format of the DCB for ANS Labeled Tape files.

Shaded fields are not used by the DCB.

In the following field descriptions, the Control column signifies who specifies the contents of the field - the monitor
(M) or the user (U).

242

Field

Description

ABA

contains the address of the user's routine that will handle abnormal conditions
resulting from insufficient or conflicting information. (The monitor returns to
ABA in the FPT if the abnormal condition is the result of a device abnormality.)

4

U

ABCERR

indicates whether or not block count errors are to be accepted; i. e., whether
or not processing is to continue in the case of inconsistency between the tapespecified and system-accumulated block counts (0 = no, 1 = yes).

o

U

ACS

is the file access indicator (only 3, block, is possible for ANS tape).

5

M

APF

contains the ANS post flag. If set to 1, it indicates that ANS post-processing
of an I/O operation has not yet been done.

16

M

ARS

contains

4

U,M

Word

1.

the actual number of data bytes transferred to or from the user following
a read or write ..

2.

the number of records remaining to be skipped following a PRECORD operation that has terminated due to an end-of-file or a beginning-of-file condition.

Control

ASN

indicates the assignment type ;currently in effect for the DCB (0 = null, 1
2 = Xerox labeled tape, 3 = device, X'A' = ANS labeled tape).

= file,

o

U

BCERR

indicates whether or not a block count error has been detected during EOF/EOT
processing (0 =no, 1 = yes). Always cleared before returning to user.

o

U

BLK

contains the number of bytes to be transferred by the I/O routines whenever called.

6

M

BLKCNT

specifies the number of blocks in the file.

17

u

Appendix A

ASN = X'A '
28 29 30 31

8

9

10 11

DEV

TYPE

FUN

22 23 24 25 26 27 28 29 30 31

12

Word 2

I

0

1

2

3 14

ru~

Tye

NRA

567189

I

:

10 11112 13 14 15: 16 17 18 19120 21 22 23 24 25 26 27128 29 30 31

I

Word 3
ERA

BLKSZ
0

1

2

3 14

5

6

7 18

9

10 11 1 12 13 14 15 1 16 17 18 19 I 20 21 22 23124 25 26 27 I 28 29 30 31

Word 4

I

A;S
0

1

2

3 14

5

6

7

8

ABA
9

10 11112 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31

Wor

C
RNDEV

C

I

FMT

ACS

F
25 26 27 28 29 30 31

16 17 18 19 20 21 22 23
Word 6

I

FLP

BLK
I

0

1

2

3 14

5

6

7 18

9

I

10 11112 13 14 15116 17 1819120 21 22 23124 25 26 271 28 29 30 31

Figure A-5.

Format of ANS Labeled Tape DeB

: Appendix A

243

Word 9

cva or CVI
o

1 2

345

6

7

COS or CIS

o

456

1

Word 12
SND or DEVICE

Word 13

10

2

3 14

5

6

7: 8

9

10 11112 13 14

~i~6

17 18 19120 21 22 23: 24 25 26 27128 29 30

Word 14
CONCAT

TlB

Figure A-5. Format of ANS labeled Tape DCB (cont.)
244

Appendix A

J

Word 15

Word 17
:

"

.

BLKCNT
31

Word 18

Word 19

Word 20

Word 21

Words 22 - n are used for variable length parameters.

Figure A-5. Format of ANS Labeled Tape DCB (cont.)

Appendix A

245

Field

Description

BLKSZ

specifies the block size in bytes.

BUF

contains the address of the, user's buffer where the data record is to be 'read or
written, or where user trailer labels are to be read.

CCF

specifies whether, code conversion is to take place between ASCII on tape and
EBCDIC in core (0 = no, 1 = yes).

CIS

contains the relative position of the seria'! number (in the SN list) of the magnetic
tape reel used for current file input.

11

M

CMD

contains the number of tape marks that may be possed during an OPEN while
searching the last tape of a set.

20

M

CONCAT

specifies the number of identically named files that are to be read as one logical
file (concatenation.)

14

U

COS

contains the relative position of the 'serial number (in the SN list) 'of the magnetic
tape reel used for current fi Ie output.

11

M

CVI

indicates the relative volume number of the current input tape within the current
file. CVI is taken from the beginning-of-file sentinel, which appears at the
beginning of file and at the beginning of each reel, if the file is continued on
more than one reel.

9

M

CVO

indicates the relative volume number of the current output tape with respect to
the current file. CVO is recorded in the beginning-of-file sentinel wh ich is
written at the beginning of the file and at the beginning of each reel, if the file
is continued on more than one reel.

9

M

DEV

contains the DCl index of the device assigned to the DCT. DEV is only meaningful if DEVF = 1. When DEVF = 0, the field is defined as OPLB.

U

DEVF

indicates whether the DCB is assigned to a device or an operational label.
(0 = operational label, 1 = device. )

U

DEVICE

contains the EBCDIC name specified on the DEVICE option in the M:OPEN call.
This use is only transient, and the field is later overlaid by SND.

DIR
DSF

3

Control.
U

u
5

12

U

indicates the direction of the read operations (0 = forward, 1 = reverse).

o

U

indicates whether a dual density tape drive is to be written at 1600 bpi or· 800 bpi

5

U

(0

246

Word

= 1600,

1 = 800).

EGV

is the event-given flag and indicates whether or not the completion code posted
in the TYC field has been communicated to the user's program by the CHECK
routine (0 = no, 1 == yes). The CHECK routine is called either directly by the
user or indirectly by the monitor, depending upon the WAIT, ERR, and ABN
options in the FPT.

o

M

EOP

is the ending operation indicator (0 = other, e. g., rewind, 1 = read, 2
Specifies the type of I/O operation currently or last performed.

o

M

EOT

indicates whether or not the physical end-of-tape mark has been encountered
(0 = no, 1 = yes).
.

16

M

ERA

contains the address of the user's routine that will handle error conditions resulting from insufficient or conflicting information. (The monitor returns to the ERA in
the FPT if the error condition is the result of the device failure.)

3

U

FCD

indicates whether the DCB is opened or closed (0

o

M

Appendix A

= closed,

1 = opened).

= write).

Word

Field

Description

FCI

indicates whether the DCB has ever been closed. This flag is set when the DCB
is first closed and then never reset (0 = DCB hCls never been closed, 1 = DCB has
been previously open and closed).

o

M

FCN

indicates the current number of I/O operations that have been initiated but not
completed, for this DCB.

7

M

FIll

indicates the file option specified when the DCB was last opened (0
specified, 1 = release, 2 = save).

5

U

FLD

contains the word displacement to the file name in the DCB relative to the start
of the variable length parameters (FLD + FLP =: FWA of the EBCDIC file name).

21

M

FLP

contains the address of the variable length parameters in the DCB (called the
file list-pointer).

6

M

FMT

indicates the record format, where

5

U

16

U

1

= F (fixed

2

= D (variable,

3

=V

4

= U (undefined)

= none

length)
expressed in decimal)

(variable, expressed in binary)

FSN

specifies the file sequence number.

FUN

indicates the file mode function (0
8 = OUTIN).

HBTD

is the I/O handler's byte indicator and is used whenever the I/O routines are
called to specify the byte displacement within QBUF into which the data transfer
is ,to begin.

LRCSZ

specifies the logical record size in bytes.

NRA

indicates the number of recovery tries that may be attempted before a device
error message is to be logged.

PBD

contains

QBUF

RNDEV

RWS

= null,

1

= IN,

2

= OUT,

4

= INOUT,

1.

a counter used by .M:OPEN to determine how many volumes remain to be
searched for the specified file.

2.

the block count according to EOF1 or EOVl.

contains
1.

the buffer address to be used by the I/O routines whenever called.

2.

the address within the user's buffer where the next record segment begins.

c()ntains the type of device specified (0

X'A'

Control

= MT).

= none specified,

8

= 9T,

9

= 7T,

indicates the requested number of bytes to be read or written from the user's buffer
(BUF). At the termination of the I/O operation, RWS is set equal to ARS.

U

o

M

18

U

2

U

20

M

7

M

5

M

13

M

Appendix A

247

Field

Destl'iption

sel1D

specifi;es the file set' i"den'tifitation.

19

U

SND

contains the word displacement to the tape serial number (SN Hst) in the DCB
reldtive to fhe starf of the variable length parameters (FLP + SND = FWA of the
EBCDIC serial numbers).

12

M

SNFN

indicates the access method (0

0

M

TLB

contains the address df a user's label that is to be written on a tape file when
the fiie is output.

14

U

TYC

indicates the type of completion of an I/O operation.

2

M

TYC Code

Word

=serial

number, 1

Corresponding Error/
Abnormal Code

= fi rename).

Meaning

0

normal without devi ce I/O transfer

0

normal with a device I/O transfer

2

7

lost data

3

1D

4

4

5

1C

end-of-reel

6

5

end-of-data

7

6

end-of-file

8

41

read error

9

45

write error

0

Control

beginning-of-tape
beg inn ing-of-fil e

TYPE

contains the device-type code for the tape assigned to this DCB.

UBTD

is the byte displacement indicator, specifying at which byte in the user's buffer
(BUF) the data record begins.

0

U

ULBL

indicates whether or not the ULBL optio!,,! was specified in the FPT of M:READ
(0 = no, 1 = yes).

5

U

WAT

is the wait flag and indicates whether or not WAIT was specified in the FPT
(0 = no, 1 = yes).

0

U

M

22-n

VARIABLE LENGTH PARAMETERS

Each variable length parameter entry for ANS labeled tapes is preceded by a control word of the following form:
Byte 0

=a

code number (see Table A-2) identifying the parameter which follows.

Byte 1 = code for the entry position (00

= more

parameter entries to follow, 01

= last

parameter entry).

Byte 2 = number of significant data words in the parameter entry.
Byte 3

248

= total

number of words reserved for the entry, not including the control word (that is, maximum entry
length).

Appendix A '

Table A-2. Variable Length Parameter Codes for ANS Labeled Tapes
Code

Parameter Type

01

File name (the first byte of which contains the number of characters in the name).

04

Expiration date.

07

SN/INSN serial numbers.

08

OUTSN serial numbers.

(ANS serial numbers are encoded to fit in 32 bits. )

(ANS serial numbers are encoded to fit in 32 bits. )

Appendix A

249

APPENDIX B. MONITOR ERROR MESSAGES
INTRODUCTION
Four groups of monitor error codes are defined in this
section. They are I/O error and abnormal codes {Tables B-1
through B-4), other monitor codes (Table B-5), and Enqueue/
Dequeue abnormal and error codes (Table 8-6 and 8-7). In
all cases, a message is printed only if the monitor has control. If the user asks for confrol, the error codes are returned
to him. Otherwise, the monitor takes unilateral action and
prints the message corresponding to the code or the code itself if no message is in the ERRMSG file. Users who have
taken control may return it for monitor disposition by using
M:MERC.
The error and abnormal addresses specified in a function
parameter table (FPT) for a Read, Check, or Write function
are temporary and are not retained by the monitor between
calls. Those addresses specified in an FPT for an Open
function are retained in the specified data control block
(DCB) •

I/o error and abnormal conditions fall into two general
categori es :
1.

Those associated with insufficient or conflicting
information.

2.

Those associated with device failures or end-of-data
conditions.

The monitor responds to conditions of the first category by
honoring the error and abnormal addresses in the associated

DCB. The monitor responds to conditions of the second
category by honoring the error and abnormal addresses in
the FPT for the associated Read, Check, or Write functions.
The error and abnormal codes for insufficient or conflictin~
information are listed in Tables B-1 and B-3. Those for
device fai lure or end-of-data are listed in Tables B-2 and
B-4.
The monitor communicates the error or abnormal code and
the DCB address in SR3, and the address following the instruction which caused the CAL 1 trap is in SR 1 ~ The code
is contained in byte 0 of the word in SR3, a subcode is contained in bits 8-14, and the DCB address is contained in the
rightmost 17 bits.
SR3

Note that the subcode field contains seven bits and an error
code of 75/13 would appear as X'7526' in bits 0-15. (The
first digit of the subcode is contained in bit positions 8,9,
and 10. Hence, it may have a value of 0-7.) Theprevious
contents of SR 1 and SR3 are lost. The meaning of each
error and abnormal code is shown in Tables B-1 to B-4.

Certain errors are a Iso reported in the TYC field of the
DCB. The correspondence between error/abnormal codes
and TYC codes is given in Appendix A.

Table B-1. Abnormal Codes - Insufficient or Conflicting Information
AbnorCode

Subcode

Originating
Monitor
Routi ne

Mean i ng of Code

01

00

OPEN

An attempt was made to open a DCB with insufficient information.

01

OB

OPEN

A number of contiguous granules (in random files) has been requested, but they are not
available.

02

00

OPEN

An attempt was made to open the next file with NXTF specified in the DCB but there
are no more fi les.

02

01

OPEN

The end of all accounts has been enco~ntered, and NXTA is specified in the DCB.

03

00

OPEN

The input or update fi Ie does not exist.

08

00

OPEN

An attempt was made to open the next file but the name of the next fi Ie is a synonym
for the primary name of the fi Ie.

09

00

09

01

RDERLOG

09

02

!RDERLOG

mal

RDERLOG
i

I An

attemp~ was made to close and return a device which was not partitioned or a
; device within a partitioned controller.

The device referenced in the Diagnostic DCB is a nonexistent device.
i
I

250

Appendix B

The device referenced in the Diagnostic DCB is currently in use.
-

Table B-·1. Abnormal Codes - In\ufficient or Confl icting Information (cont.)
Abnormal
Code

Subcode

Originating
Monitor
Rout ine

Meaning of Code

09

03

RDERLOG

The device referenced in the Diagnostic DCB is currently in use by a symbiont.

09

04

RDERLOG

The Diagnostic DCB does not contain a command list.

09

05

RDERLOG

The command list was invalidated by a swap.

09

06

RDERLOG

There are more than 121/0 command doublewords (IOCDs).

09

07

RDERLOG

The I/O command list is invalid. This includes invalid flags, inval id TIC address, invalid command list address specified by user, or insufficient room in the DDCB for the
command list.

09

08

RDERLOG

Error during BLIST CAL. An inval id page found during PTV or VTP conversion, the
status address is in error, the byte count is illegal in the IOCD, or an 10CD overlaps
a page boundary.

09

09

RDERLOG

A buffer crosses a page boundary.

09

OA

RDERLOG

The user's ID does not match the I D specified on the last operator DIAG key-in or the
user privilege level was less than AD.

09

OB

RDERLOG

The amount of core is not sufficient to allow the diagnostic program to lock itself in
core.

09

OC

RDERLOG

The requested controller is not partitioned.

09

OD

RDERLOG

The device specifically requested on open is not partitioned.

09

DE

RDERLOG

A MAP CAL error due to an inval id page number during a PTV or VTP conversion.

09

OF

RDERLOG

Cannot get MPOOL for use in processing command list or MPOOL is less than 13 words
long.

09

10

RDERLOG

A TIO, TDV, or HIO was requested with an invalid FPT.

09

11

RDERLOG

A CHAN option on an M:OPEN to a device type or op label is illegal.

OA

00

CLOSE

An attempt was made to close a DCB that is already closed.

OA

01

CLOSE

Illegal VLP code on M:CLOSE CAL.

OA

02

CLOSE

Not enough room in FIT for requested change.

OA

08

CLOSE

Illegal file name.

OA

09

CLOSE

New file name already exDsts.

OA

OA

CLOSE

Can It modify a synonymous file.

OB

00

OPEN, READ
CVOl

Unrecognized sentinel on labeled tape.

OC

00

OPEN

Illegal SYNON operation.

OD

00

OPE N

Insufficient room exists in the variable length parameter section of the DCB for the
private pack serial number.

Appendix B

251

Table B-1. Abnormal Codes - Insufficient or Confl icting Information (cont.)
Abnormal
Code

Subcode

Originating
Monitor
Routine

Meaning of Code

OD

01

OPEN

The private pack serial number list cannot be moved to the DCB because of an I/O error.

OE

00

OPEN

127 DCBs are open to the fi Ie.

13

00

DELREC or
WRITE

The specified key was not found for an update file and the option is not NEWKEY.

14

00

OPEN

Access has been denied for one of the following reasons: (1) password missing or incorrect, (2) the file is execute-only and the wrong execute vehicle is accessing it, (3) there
is a read or write account restriction, (4) a tape or private pack is being accessed with
the wrong account in the DCB, (5) an attempt is being made to create a file in an
account different from the log-on account, (6) an open OUT or OUTIN was attempted
for an existing fi Ie on a private disk pack and the organization of the file is different
from the organization in the open FPT or DCB, or (7) the first non-input open to tape
did not occur at load point.

OPEN

An attempt was made to open a file for output and another user or DCB has the file open
for input or output.

14

Access is denied.

14

02

OPEN

Bad FPARAM location.

14

03

OPNL

The BREAK key was depressed or CONTROL Y was entered while waiting for a mount
to be completed. The open was not performed.

14

04

MOVECAL
(RDL)

User escape from random file cleaning operation on a M:MOVE CAL.

14

05

OPND

Invalid op label in DCB.

14

06

OPND

Conflicting or missing DCB information.
file name TEXTC count is illegal.

14

07

OPND

Cannot open file DCB OUT with REL.

14

08

OPEN

Illegal private pack device type.

14

11

OPEN

Code conversion was requested for a tape drive not having that feature.

14

12

OPEN

800 bpi was requested for a tape drive not having the dual density feature.

14

13

OPEN

Code conversion option requested for an ANS tape not at the load point or code conversion requested for Xerox labeled tape.•

14

14

OPNF

Access has been granted to an execute-only fi Ie because of the execute authorization.

15

00

DELREC or
WRITE

An improper sequence of operations has been requested for an update Ii Ie, or the

Probably either no file name is specified or the

FPARAM address did not belong to the user. For example, a WRITE or DELREC was
issued for a keyed file and there is no key given on the WRITE or DELREC.

15

01

READ or
PRECORD

Improper operation sequence on a shared keyed file.

16

00

WRITE

The NEWKEYoption was specified, but the key already exists.

17

00

WRITE

The NEWKEYoption was not specified for an output or scratch file.

18

00

WRITE

An attempt was made to write a keyed file sequentially with an out-of-order key.

252

Appendix B

90 17 64H-l (9/78)

Table Bl.
Originating
Nionitor
Routine

Abnormal Codes - Insufficient or Confl icting Information (cant. )

Abnormal
Code

Subcode

19

00

OPEN/
CLOSE

Illegal operation on M:UC DCB.

lA

00

MOVECAl
(RDl)

No error or abnormal address specified in the MOVE CAL FPT.

lA

01

MOVECAl
(RDl)

The output DCB is missing.

lA

02

MOVECAl
(RDl)

One or both DCBs are not open.

lA

03

MOVECAl
(RDl)

The input DCB is not open IN or the output DCB is not open OUT.

lA

04

MOVECAl
(RDL)

The MOVE CAL is not allowed for device or ANS DCBs.

lA

05

MOVECAl
(RDl)

The MOVE CAL was aborted by BREAK I yC, or operator abort.

lA

42

MOVECAl
(RDl)

KMAX of input DCB is greater than KMAX of output DCB.

lA

4A

MOVECAl
(RDl)

The specified buffer does not belong to the user.

20

01

READ

A private pack is locked out.

20

02

READ

An attempt was made to use a private pack that is for exclusive use of another user.

20

03

READ

A private pack was not properly requested.

20

04

OPEN

An on-line user has requested a spindle which is down but which was previously allo-

Meaning of Code

cated to him and was not in use.
20

05

OPEN

A private pack set contains multiple primary volumes.

21

00

OPEN/
CLOSE

Private pack consistency check failure.

22

00

OPEN

An error occurred on a private pack while trying to open an existing file.

2E

00

OPEN

.An attempt was made to open a DCB that is already open.

30

01

lBlT

The user label is bad. All ANS labels must be 80 bytes in length. User header labels
must begin with UHl1 and user trailer 'abe's must begin with the characters UTL 1. (The
byte count is not part of the label because all ANS labels are 80 bytes long; however,
it is automatically restored in the first byte of the label buffer when a label is read.)

30

03

lBLT

The file name is greater than 17 characters in length or is equal to zero.

30

04

lOlT

EXPIRE, NEVER was specified.

30

05

LBLT

The format code is illegal.

3F

35

JOBENT

The user tried to enter a job with an illegal account or priority.

3F

36

JOBENT

Job entry has been disallowed by the operator.

90 17 64H-1 (9,178)

Appendix B

253

Table B-1. Abnormal Codes - Insufficient or Confl icting Information (cont.)
Abnormal
Code

Subcode

Originating
tv'Ion itor
Routine

Meaning of Code

3F

37

JOBENT

The user is not allowed to use the service he requested.

3F

38

JOBENT

A function inconsistency exists.

3F

39

JOBENT

The id requested for deletion is not valid.

3F

3A

JOBENT

It is too late to delete job. Either the job is scheduled to run, is running, or has been
completed.

3F

3B

JOBENT

No more symbiont space is available or the queue is full.

3F

3C

JOBENT

The user is not allowed to use job entry service.

3F

3D

JOBENT

The sydem is nonsymbiont, or the LL device is not a symbiont printer or is not defined
as a symbiont device.

3F

3E

JOBENT

A DCB has been specified and it is already open.

3F

3F

JOBENT

The specified buffer address is not in the user's program.

Note: In all of the above cases, return is made to the user's program for continuation of execution if no abnormal address
is specified in the DCB.

Table B-2. Abnormal Codes - Device Fai lure or End-of-Data
Abnormal
Code

Subcode

Originating
Monitor
Routine

Meaning of Code

04

00

PRECORD or READ

The beginning-of-file has been encountered.

05

00

PRE CORD or READ

The end-of-data has been encountered.

06

00

READ

The end-of-fi Ie has been encountered (or first read of I card).

07

00

READ

Data has been lost because the buffer was smaller than the record read,
or a parity error was detected.

1C

00

READ, WRITE or PRECORD

The end-of-tape has been encountered.

1C

01

WRITE

The end-of-tape has been encountered on a common journal.

1D

00

READ or PRECORD

The beginning-of-tape has been encountered, a bad command has been
sent to the terminal, or a 0 byte COC read has been issued.

1F

00

WRT/lOD/lORT

BIN (or VFC) is not valid for this device.

23

00

COC

On-line terminal read timed out.

24

00

coe

On-line conditional read issued with no type-ahead.

Note: In all of the above cases, return is made to the user's program for con,tinued execution if no abnormal address is
specified in the I/O CAL FPT.

254

Appendi x B

90 17 64H-l (9/18)

"rable B-3. Error Codes - Insufficient or Conflicting Information
~----~----.--r---.-------------------~----------------------------------------------------------'

Error
Code

Subcode

Originating Monitor Routine

Meaning of Code

40

00

READ

A request was made to read an output file.

42

00

READ I WRITE or RANDOM

The key was not va lid. The key Iength was zero or greater than the key
maximum for the file or a random file granule number is out of legal
range.

42

01

STPNR

Illegal buffer size on assign/merge read or write.

43

00

READ

No record having the specified key was found.

44

00

WRITE

A request was made to write in an input file.

46

xx

READ

The DCB contains insufficient information to open a closed DCB on a
Read operation. Subcodes corresponding to the OPEN abnormal codes
above describe why the implicit OPEN foiled.

46

21

READ or WRITE

A private disk pack logic inconsistency exists.

46

22

READ or WRITE

A private disk pack error occurred trying to open an existing file.

46

48

READ

On-line user is not allowed to access the card reader.

47

xx

WRITE

The DCB contains insufficient information to open a closed DCB on a
Write operation. Subcodes corresponding to the OPEN abnormal codes
above describe why the implicit OPEN failed.

47

2B

OPEN

Invalid Op label in DCB.

47

48

WRITE

The symbi ont use flag was not set for on-Ii ne user.

48

00

OPEN

The symbiont use flag was not set for the given device.

48

01

OPEN

On-line user is not allowed to access the card reader.

49

00

PV

The user's peripheral use flags do not permit the use of tapes.

49

01

OPEN

No tape drives or disk spindles are available (on-line maximum exceeded or all drives or spindles in use). This error only occurs for
on-line or ghost jobs.

49

02

OPEN

The user's tape drive or disk spindle limit from LIMIT card is exceeded.

49

03

OPEN

There is insufficient DCB space for the requested serial numbers.

4A

00

READ I WRITE, or ENQ

Either the specified buffer or the indirect address in FPT does not belong
to user.

4A

01

IOCHECK

Time parameter too large on M:CHECKECB.

4A

02

IOCHECK

ECB in wrong state.

4A

03

IOCHECK

Infinite wait condition.

4A

04

IOCHECK

No moni tor work space.

4A

05

rOCHECK

Wrong access code for ECB address.

4B

00

An attempt was made to open a file that the user already has opened.

4C

00

READ or WRITE
READ or WRIl'E

40

00

CLOSE

An attempt was made to close and release a file that someone else is
reading.

4E

00

ARDl

ANS block count error and no ABCERR specified.

4E

01

READ or CVOL

A volume sequence number error occurred on an ANS tape.

4E

04

lBlT

A BOF encountered on ANS tape with no block count error.

4E

05

READ or CVOIL

An ANS block count error exists and end of tape and end of file has been
encountered.
.

4E

07

READ or CVOl

An ANS block count error exists and end of fi Ie has been encountered.

I

90 17 64H-1 (9/78)

An attempt was made to open a file that another user already has opened.

Appendix B

255

Table B-3.

Error Codes - Insufficient or Confl icting Information (cont.)

Error
Code

Subcode

Originating Monitor Routine

Mean ing of Code

51

00

CLOSE

The file is still open in the input mode through another DCB.
being closed is deleted.

52

00

OPEN

Insufficient privilege to use this CAL.

54

00

READ

The user has tried to read a control command via the control input (C)
device more than once through the same DCB.

55

00

OPEN

Too many files are open simultaneously (the monitor's file-use tables
cannot handle that many files).

56

00

CLOSEorCVOL

The system is unable to complete a tape volume switch because the reel
number has not been specified or an error occurred opening the new
volume.

75

00

CLOSE

The free sector pool contains erroneous information.
appears only in ERR-LOG.)

75

01

READ

Data records were lost due to a bad disk address in master index.

75

02

READ

The master index is inaccessible due to bad disk address in preceding
master index.

75

03

OPEN

The entire file is inaccessible due to bad disk address in file directory
or bad information in file information table.

75

04

OPEN or CLOSE

One or more files are inaccessible due to an error in the file directory.

75

05

OPEN

All files in account were lost due to bad disk address in account
directory.

75

06

OPEN

A bad disk address link to next account directory exists.
account and other accounts are gone.

75

07

OPEN

An error exists in the pyramid.

75

4x

75

7D

OPEN

An error has been detected while trying to perform a fast open.
open will be retried. (This message only appears in ERRLOG.)

75

7E

RDF

Error in main directory granule. The dual granule will be read.
message only appears in ERRLOG.)

75

7F

RDF

File inconsistency corrected by software.
in ERRLOG.)

The file

(This message

The current

(This message only appears in ERRLOG.)

75/40 - 75/47 are the same as 75/00 - 75/07 except that in addition, a
hardware error has been dete~ted.
The

(This

(This message only appears

Note: In all of the above cases, the job is aborted if no error address is specified in the DCB. In batch mode, the
monitor skips to the next job; in on-line mode, control is returned to TEL which prints the message and awaits
further user commands. For error code 54, the job is aborted in all cases.

256

Appendix B

90 17 64H-1 (9/78)

Table 8-4. Error Codes - Device Failure or End-of-Data
Error
Code

Subcode

Originating
Mont tor Routl ne

Meaning of Code

41

00

READ

An i rrecoverab Ie read error has occurred.

41

01

COOP

A bad disk address was detected by the input cooperative when reading the input
symb iont fi Ie.

41

02

READ

Labeled tape reae error encountered on block in which requested record was contained. 8yte 0 of SRI contains the number of records in the block.

41

03

READ

Labeled tape read error encountered on block in which requested record was contained. Requested record not transmitted to the user.

41

04

READ

Partial record transmitted following Error 41/03.

45

00

WRITE

An irrecoverable write error has occurred.

45

01

WRITE

An irrecoverable write error has occurred on a common journal.

4F

00

WRITE

There was an unrecoverable error after the reflector on a tape.

Sl

00

READ or WRITE

Publ ic secondary storage is exhausted, or the user has exceeded h is secondary
storage authorization.

Sl

44

RANDOM

There has been a Write request with a specified byte count, and not enough
granules remain in a random fi Ie to satisfy the Write request, or the beginning
relative granule number on a Read request is valid but the specified byte count
extends beyond the end-of-fi Ie.

Note: In all of the above cases, the job is aborted if no error address is specified in the I/o CAL FPT. In batch mode,
the monitor skips to the next job; in the on-line mode, control is returned to TEL which prints the message and
awaits further user commands.

Appendix 8

257

Table 8-5. Other Monitor Error Codes

Error
Code

Subcode

Originating
Monitor
Routine

Meaning of Code

7F

10

INITRCVR

Single user abort due to software check 10.

7F

21

INITRCVR

Single user abort due to software check 21.

7F

22

INITRCVR

Single user abort due to software check 22.

7F

31

INITRCVR

Single user abort due to software check 31.

7F

32

INITRCVR

Single user abort due to software check 32.

7F

49

INITRCVR

Single user abort due to software check 49.

7F

60

TEL

TEL couldn't get a page.

7F

61

INITRCVR

Single user abort due to software check 61.

7F

6A

INITRCVR

Single user abort due to software check 6A.

7F

79

INITRCVR

Single user abort due to software check 79.

7F

7C

INITRCVR

Single user abort due to software check 7C.

7F

7E

INITRCVR

Si ng Ie user abort due to software check 7E.

AO

00

ASP

An attempt was made to RUN under an invalid debugger name, or a request for an invalid
debugger through TEL.

A1

00

ASP

An attempt was made to associate a debugger with a shared processor.

A1

01

ASP

An attempt was made to debug an execute-only load module.

A1

02

ASP

Conflict between library's overlays and debugger's data.

A2

00

ASP

An attempt was made to access a processor for which the user is not authorized (e.g., on
on-line call to CCI).

A2

01

STEP

Access to non-system processor deni ed •

A2

02

STEP

Access to processor denied by processor restriction list.

A2

xx

STEP

Access to processor denied. (xx is the error code indicating why the system processor
restriction file could not be read and is one of the error/abnormal codes given in
Tables 8-1 through 8-5.

A3

00

TRAP

Trap control cannot be given to the user because his task control block (TCB) does not
exist or is full, or his pointer has been destroyed.

A3

01

TRAPC

A3

02

TRAPC

A4

00

A4

01

TRAP

Trap 40 - Nonexistent i nstructi on.

A4

02

TRAP

Trap 40 - Nonexistent memory reference.

258

Appendix B

!

No env ironment present for return.
User should not simulate that trap.
User is trapped.

90 17 64H-l (9/78)

Table B-5. Other Monitor Error Codes (cont.)

Error
Code

Subcode

Originating
Monitor
Routine

Meaning of Code

A4

03

TRAP

Trap 40 - Privilege instruction.

A4

04

TRAP

Trap 40 - Memory protect violation.

A4

05

TRAP

Trap 41 - Unimplemented instruction.

A4

06

TRAP

Trap 42 - Stack overflow.

A4

07

TRAP

Trap 43 - Fixed point overflow.

A4

08

TRAP

Trap 44 ... Floating point fault.

A4

09

TRAP

Trap 45 - Decimal arithmetic fault.

A4

OA

TRAP

Trap 46 - Watchdog timer.

A4
A4

OB
OD

TRAP
CSEHAND

Trap 47 - Programmed trap.
Trap 4D - Instruction exception trap.

AS

00

STEP

User's load module exceeds user limit or available core.

AS

02

STEP

Virtual core is not available for special shared processor.

AS

04

STEP

While in the extended memory mode, the current job step was aborted so that TEL could
be accessed.

AS

06

STEP

Current speciaJ shared processor

AS

07

STEP

Procedure overlaps currently allocated common pages.

AS

08

STEP

Physi cal core is not avai lable for special shared processor.

AS

09

STEP

Either virtual core or physical core was not available to obtain a buffer for a cooperative
file.

AS

51

STEP

Bad data bias for core library. The load module is pre-BOO.

A6

03

STEP

Specified load module does not exist.

A6

14

STEP

lood module access denied.

A6

30

STEP

Bod DCBs or DCB table.

A6

31

STEP

Bad head record.

A6

32

STEP

load modu Ie bias not on page bounda ry •

A6

33

STEP

Pure procedure not on page boundary.

A6

34

STEP

DCBs not on page boundary.

A6

35

STEP

Head record is incomplete.

A6

36

STEP

Tree record is incomplete.

A6

37

STEP

No debugs. allowed with link-built lMNs.

A6

38

STEP

Program too big for user area.

A6

39

STEP

Fi Ie not keyed, not a lMN.

A6

3A

STEP

DCB links bad or circular,

A6

3B

STEP

TCB address is not within the data area.

A6

42

STEP

The module exists but it is not a load module.

A6

43

STEP

The module exists but it is not a load module.

A6

50

STEP

The DCBs are biased below the user area. The load module is pre-BOO.

A6

51

STEP

PMD/SNAP/MODIFY not allowed with an execute only load module.

90 17 64H-l (9/78)

'NOS

aborted so that TEL could be accessed.

Appendix 8

259

Table 8-5.

Other Mmitor Error Codes (cont.)

Error
Code

S u bcode

Originating
Iv\on i tor
Routine

A6

xx

STEP

The xx subcode specifies the reason the DCB could not be opened and will be the
abnormal/error codes given in Tables BI-85.

A8

00

STEP

An error or abort CAL was issued.

A9

00

UCAL

An error on a read or write of the assign/merge record occurred.

AA

00

STEP

A request was made for core I ibrary that does not exist.

AD

00

STEP

Extending processing limits were exceeded.

AE

00

CALPROC
ALTCP

The user issued a CAL with unknown codes.

AF

00

CALPROC

A CAL 1 instruction referenced a non-DCB.

BO

00

DUMP

The program specified snapshot dumps but did not have an M:DO DCB.

SO

01

DUMP

The program attempted snapshot dump of inaccessible or nonexistent memory.

BO

02

DUMP

Inaccessible flag address given on conditional debug command.

SO

03

DUMP

Illegal parameter in DEBUG CAL.

Bl

00

SEGLOAD

Monitor cannot find the segment named in the user M:SEGLD DCB.

Bl

01

SEGLOAD

Bad tree table.

Bl

02

SEGLOAD

Circular tree table encountered.

Bl

03

SEGLOAD

Data size specified in tree is too large.

Bl

04

SEGLOAD

Procedure size specified in tree is too large.

!31

05

SEGLOAD

Overlay limits as defined in TREE area lie outside of limits defined in HEAD record.

81

06

SEGLOAD

Unabl e to get a page for segloading.

Bl

07

SEGLOAD

Page obtained by M:CVM procedure encountered.

81

08

SEGLOAD

The paged load module is greater than 255 segments.

B2

00

ENTRY

The user issued a CAL2, CAL3, or CAL4.

83

00

WRTD

limit exceeded.

B3

01

WRTD

Punch limit. (PO)

B3

02

WRTD

Printer page I imit for processor.

B3

03

WRTD

Printer page I imit for user.

B3

04

WRTD.

Printer page limit for debugging.

B3

08

WRTD

Execution time limit.

B4

00

STEP

Exit.

B4

01

STEP

User issued M:ERR.

B4

02

STEP

User issued M:XXX.

B4

03

STEP

Operator E (error) key-in.

B4

04

STEP

Operator X (abort) key- in or user abort.

B5

xx

lDlNK

See STEP (error code A5 and A6) subcodes and I/O error codes.

AC

260

Meaning of Code

(RNST bits are also set. )

An attempt was made to read the card reader by an on-I i ne user.

Appendix B

(System error. )

(LO)

(UO)
(DO)

90 17 64H-l(9;78)

Table B-5. Other Monitor Error Codes (cont.)

-,

Error
Code

Subcode

Or ig inat ing
Monitor
Routine

B5

62

LDLNK

M:LINK and M:LDTRC are not permitted when a shared processor is associated with the
user program.

B5

63

LDLNK

The program must not be loaded with Link.

B5

64

LDLNK

The user must own all memory from data through dynamic data.

B5

65

LNKTRC

Page aquired by CVM encountered.

B5

66

LNKTRC

Out of pages.

B5

67

LDLNK

A logically impossible exit to Load and Link has occurred.

B5

68

LDLNK

HI legal information supplied in transfer file.

B5

69

LDlNK

A Load and Link cleanup occurred without a previous Load and Link operation.

B5

6A

LNKTRC

Load and Link to command pll"Ocessor not allowed.

B5

6B

STEP

A load and link to a linked program is not allowed.

B5

6C

STEP

A load and Iink to a special shared processor is not allowed.

85

6D

LNKTRC

Insufficient physical core exists for core library following LNKTRC.

B5

6E

lNKTRC

M:LlNK/LDTRC illegal for programs with transaction processing CALs outstanding.

B5

6F

lNKTRC

M:LDTRC attempt to execute a previously executed load module.

B5

70

LNKTRC

M:LlNK/M:lDTRC illegal for programs with real-time ICBs associated.

B6

00

STEP

M:LINK: Not SEGLOAD DCB.

B6

01

STEP

The DCB name chain must be in the DCB record.

B6

02

STEP

The DCB name chain may not be I inked.

B6

03

STEP

The DCB name chain is irregular.

B6

04

STEP

The DCB has no name.

B6

05

STEP

A user cannot have more than 509 DCBs.

B6

06

STEP

The DCB is outside of the buffer.

B6

07

STEP

A DC B may not cross a page boundary.

B6

08

STEP

A DCB must be at least 22 words long.

B6

09

STEP

KBUF must lie within the DC8.

B6

OA

STEP

FLP must lie within the DCB.

B6

OB

STEP

The FLPs overlap into KBUF.

B6

OC

STEP

M:SEGLD DCB needs 10 words for variable length parameters.

B7

00

OIPNLD

Unrecognized stream-id.

B7

01

OPNlD

Unrecognized DEV specification.

B7

02

OPNlD

The function specified (IN or OUT) is not legal for this device.

OPNlD

A. nonzero workstation name is spec i fied for an unauthori zed user (i. e., the processor is

B7

03

Mean ing of Code

(System error. )

nlOt a shared processor and the privilege level of the user is less than XICOI).
B7

04

OPNlD

The peripheral use flag is not set for this DCB.

B7

05

OPNLD

Multiple copies are not allowed in concurrent output mode.

B7

06

OPNLD

Concurrent output mode is illegal for an IRBT.

B7

07

OPNLD

User is not authorized for concurrent output mode.

90 17 64H-1(9/78)

Appendi x B

261

Table B-5. Other Monitor Error Codes (cont.)

Error
Code

Subcode

Originating
Monitor
Routine

Meaning of Code

B8

01

RTROOT

M:Q FI was attempted when no ICBs were associated with the user.

B8

02

RTROOT

M:INTRTN was attempted and there were no active interrupts associated with the user.

88

03

RTROOT

A real-time user has issued a restricted CAL after having locked himself in core (with
M:HOLD).

88

04

RTNR

A real-time user provided an illegal interrupt address or an unknown interrupt label.

B8

05

RTNR

A real-time user provided an FPT that is illegal because it is missing a required
parameter.

B8

06

RTNR

The user did not specify a time value on an M:CLOCK request.

B8

07

T:JOBENT/
GRAN

A real-time user has requested a service from a system ghost job after having blocked the
ghost job by locking himself in core (with M:HOLD).

B9

01

ALTCP/
RTROOT

User has insufficient privilege to issue this CAll,S.

B9

02

RTROOT

The device specified via M:IOEX doesn't exist or is not preempted, or the specified DCB
is not opened properly.

B9

04

ALTCP

The effective address of an M:EXU CAL is in protected memory.

89

05

ALTCP

The instruction to be executed via M:EXU has an invalid op code.

XEROX LABELED TAPE ERROR HANDLING
After a block is read from labeled tape and an error (after
normal retries) is encountered, the tape remains positioned
after the last record read. The :noni tor then performs a
consistency check on the record control information in
the block. If the record control information is judged
valid, the record is transferred to the user's buffer, as
requested, and an error code 41/02 is returned. Byte 0
of SR1 will contain the number of records in the block.
These records, although of questionable quality, are available to the user if he requests them. If the record control
information is invalid, the user will receive an error return
41/03 and no information from the block is transmitted.

If after error condition 41/03 the following read causes a
partial record {continuation of a record whose first part was
contained in the block error} to be transmitted, an error return of 41/04 is given.

I 262

Appendix B

ENQUEUE/DEQUEUE ABNORMAL AND ERROR CODES
When an abnormal condition is encountered, return is made
to the instruction following the CAL if no ABN address was
supplied. If an ABN address was supplied, return is made
to the ABN address and the user's register 10 is set to the
appropriate abnormal code (see Table B-6). In either case,
when an ECB address is supplied, the ECB is set to reflect
the queue state.
When an error condition is encountered, the program is
aborted if no ERR address was supplied. If an ERR address
was supplied, return is to the ERR address and the user's register 10 is set to the appropriate error code (see Table 8-7).
In the latter case, when an EC8 address is supplied, the
EC8 is set to reflect the queue state.

If an M:ENQ or M:DEQ procedure call is issued in a system
that was' generated without these services, the user is aborted
with the error code as defined In Table 8-7.

90 17 64H-l (9/78)

Table B-6. Enqueue/Dequeue Abnormal Codes
Abnormal
Code

Subcode

Originating
Monitor
Routine

Meaning of Code

31

00

ENQ

A dequeue was attempted on a resource/element for which the user was not queued.

31

01

ENQ

An enqueue was attempted on resource/element for which the user was already queued.
If eln ECB address was given, the ECBP bit is reset to 0 if the user is still waiting for the
res()urce/e lement or is set to 1 if the user has contro I of the resource/e lement.

31

02

ENQ

An enqueue SHARE was attempt'ed on a resource/element for which the user was already
queued as EXCLusive. The SHARE request is ignored and the EXCLusive request remains
in the queue. If an ECB address was given, the ECBP bit is reset to 0 if the user is sti II
waiting for the resource/element or is set to 1 if the user had control of the resource/
element.

31

03

ENQ

The requested resource/element is not presently avai lable on an enqueue TEST or enqueue
NOWAIT request. If it is an enqueue NOWAIT request, the user is queued for the
resource/element. The ECB is reset to O.

31

04

ENQ

The enqueue request was aborted by a BREAK or CONTROL Y. The request is not
queued.

Table B-7. Enqueue/Dequeue Error Codes

Error
Code

Subcode

Originating
Monitor
Routine

4A

00

ENQ

An address in the FPT is not in the user's area or some other inconsistency was detected
in the FPT.

58

00

ENQ

Tho request would result in a deadlock. Not only is the request rejected, but the user
should dequeue all elements to allow other users to complete their operations, thus
freeing the elements.

58

01

ENQ

Me'an i ng of Code

ThE~re

are no more empty entries in the monitor's enqueue tables.

Not only is the re-

qU(~st rejected, but the user should dequeue all resource/elements to permit other users

to proceed.

58

02

ENQ

The enqueue request is for ALL and the user has sub-queues other than NULL, thus
creating a deadlock~

58

03

ENQ

Thl~

AE

00

CALPROC

An M:ENQ or M:DEQ procedure call was issued in a system that does not include the
en(~ueue/dequeue optional feature. The job step is aborted.

user is not authorized to use the enqueue service.

Appendix B

263

APPENDIXC. XEROX STANDARD SYMBOLS, CODES AND CORRESPONDENCES
2.

XEROX STANDARD SYMBOLS AND CODES

64-character set: uppercase letters, numerals, space,
and! " $ % & I ( ) * +
/ \

The symbols I isted here include two types: graph ic symbols
and control characters. Graphic symbols are displayable
and printable; control characters are not. Hybrids are SP
(the symbol for a blank space), and DEL (the delete code)
which is not considered a control command.
Two types of code are also shown: (1) the a-bit Xerox Standard Computer Code, i. e., the Xerox Extended BinaryCoded-Interchange Code (EBCDIC); and (2) the 7-bit American National Standard Code for information Interchange
(ANSCIl), i. e., the Xerox Stdndard Communication Code.

ANSCIl

: =<

>?

(a)_[]A

#1"':

95-character set: same as above plus lowercase letters
and

t } : '" \

CONTROL CODES
In addition to the standard character sets listed above, the
Xerox symbol repertoire includes 37 control codes and the
hybrid code DEL (hybrid code SP is considered part of all
character sets), These are listed in the table titled CP-V
Symbol -Code Correspondences.

XEROX STANDARD CHARACTER SETS
1.

SPECIAL CODE PROPERTIES

EBCDIC
57-character set: uppercase letters, numerals, space,
and & - /
• < > ( ) + I $ * : ;

%

#

@

I

=

63-character set: same as above plus rj

"

..,

Appendix C

1•

AI I control codes, and only the control codes, have
their two high-order bits equal to "00". DEL is not
considered a control code.

2.

No two graphic EBCDIC codes have their seven loworder bits equal.

?

89-character set: same as 63-character set plus lowercase letters

264

The fonowing two properties of all Xerox standard codes
wi" be retained for future standard code extensions:

Table C-1. CP-v 8-Bi t Computer Codes (EBCDIC)
Most Significant Digits
T

Hexadecimal

a

2

1

4

3

5

6

A

9

8

7

B

C

D

E

F

f-----

Binary

a
1

2

3
4
5

0000 0001 0010 0011 0100 0101 0110 0111

ESC
LF
(lUL DLE only F

0000

SOH X-ON FS

0001

STX

0010

DC2

EOT

0100

DC4

.~

....c: -

6

ACK

0110
0111

'c0> 8

1000

Vi

VI

0

9

1001
1010

B

1011

C

J

1100

ESC

(

- - - --

)

FS

D

1101

CR

GS

E

1110

SO

RS

F

1111

SI

US

IF

A

/

..

r

-

FF
a

k

b

1 s

I

d

1
1

u

1

[
]

-

SP
1

}

t

m

e

{

s

- --

T

E

\

i

c

ESC
Z

L

X-ON

LF ESC
only R
ESC
SUB CR

__

~~-JJ'~~

,W

0

)

HT X-OFF

~---A

3

0
0

ESC

/

SYN

FF

ESC

J.

ESC
1\
BEL ETB
T
EOM
ESC
=
BS CAN
S
CR ESC
ENQ EM only
E
ESC
NAK SUB EOT C
ESC
VT ESC BS
a

-l

A

ESC
X
ESC
P
ESC
U
ESC

-

&

1

a

A

J

B

K

S

2

C

L

T

3

D

M

U

4

E

N

V

5

1

n

v

0

w

NUL F

0

W

6

g

p

x

G

P

X

7

h

q

Y

H

Q

Y

8

i

r

z

I

R

Z

9

-----

1---

t;:

Q)

EM
8

7

0

u

US

LF
NL

HT

0101

VI

0

GS

ETX X-OFF RS

0011

CAN

SP

lESe

1000 1001 1010 1011 1100 1101 1110 1111

2:

f

:)

f:,.

I

I

V

2

;" 1

!

)

+

;

I

2

%

x

+

fa

[
]

I

-

-, 2

______

:
#

I

*

(

1
--

$

<

--

~

>

=

?

"

______

~/'~--

4~

6
____

~

I

6
6

Lost6
Data
-,6

DEL

_______

[J

The characters /". \ { }
are ANSCII characters that do not appear in any of the Xerox EBCDIC-based
character sets, though they are shown in the EBCDIC table.
2

The characters i I -, appear in the Xerox 63- and 89-character EBCDIC sets but no.t in either of the Xerox
ANSCII-based sets. However, Xerox software translates the characters i I --, into ANSCII characters as
follows:
EBCDIC

"
I

ANsell

, (6-0)
\ (7-12)
,..., (7-14)

3

The EBCDIC control codes in columns 0 and 1 and their binary representation are exactly the same as those
in the ANSCII table, except for two interchanges: IF/N l with NAK, and HT with ENQ.

4

Characters enclosed in heavy lines are included only in the Xerox standard 63- and 89-character EBCDIC sets.

5

These characters are included only in the Xerox standard 89-character EBCDIC set.

6

The EBCDIC codes in column 3 are used by
to perform specia I functions. The EBCDIC codes in
column 2 and positions AF and BC through BF are used by
for output only.

cae

cac

APl characters (and some ESC sequences) are assigned EBCDIC values that fall within the shaded area of the CP-V
code set. These assignments are for APL internal use and are only reflected in 2741-APl translation tables.
S

Placing a SYN code as the last position of a nontransparent message will prevent the transmission of the SYN and
the normal message appendage of the CR/LF pair. This allows a user to continue writing more than one message
on the same line without affecting the carrier position. The EBCDIC SYN code is translated to an idle (IL) on
output to 2741 terminals,.

Appendix C

265

Table C-2. CP-V 7-BitCommunication Codes (ANSCn)
Most Significant Digits
Decimal
(rows)

(col's.)-

!

Binary

0

0000

0

1

2

3

4

5

6

7

. XOOO xOOl xOlO x011 xl00 x101 xll0 x1l1
·SP

NUL DLE

!

SOH DCl

5

0

@

p.

1

A

2

\

P

Q

a

q

B

R

b

r

1

0001

2

0010

. STX

DC2

3

0011

ETX

DC3

#

3

C

S

c

s

4

0100

EaT DC4

$

4

D

T

d

t

5

0101

ENQ NAK

%

5

E

U

e

u

6

0110

ACK SYN

&

6

F

V

f

v

7

G

W

g

w

t--II

VI

'0>
Ci

c·
0

7

0111

BEL

ETB

'c0>

8

1000

BS

CAN

(

8

H

X

h

x

....
0

9

1001

HT

EM

)

9

I

Y

i

Y

10

1010

IF
Nl

SUB

*

:

J

Z

j

z

11

1011

VT

ESC

+

;

K

k

{

12

1100

FF

FS

,

<

L

I

I
I

13

1101

CR

GS

-

=

M

m

}

14

1101

SO

RS

>

N

n

-4

15

1111

SI

US

?

a

0

DEL

~

,

Vi
Q)

-'

/

4 [ 5

\
4] 5
4 ....... 5

-

4

4

J

Most significant bit, added for 8-bit format, is either 0 or an even-parity bit for the remaining 7 bits.
2

Columns 0-1 are control codes.

3

Columns 2-5 correspond to the Xerox 64-character ANSCII set.
Columns 2-7 correspond to the Xerox 95-character ANSCII set.

4

On many current teletypes, the symbol
'"
_
'"
}

is t (5-14)
is-(5-15)
is
ESC or ALTMODE control (7-14)
is
ESC or AL TMODE control (7-13)

and none of the symbols appearing in columns 6-7 are provided. Except for the four symbol differences
noted above, therefore, such ;teletypes provide all the characters in the Xerox 64-character ANSCII set.
(The Xerox 7015 Remote Keyboard Printer provides the 64-character ANSCII set also, but prints A as A.
It also interprets the [ ] characters as I -, . )

5

On the Xerox 7670 Remote Batch Terminal, thesymbol

! is I
[ is i

(2-1)
(5-11)

] is ! (5-13)
'" is --, (5-14)

and none of the symbols appearing in columns 6-7 are provided. Except for the four symbol differences noted
above, therefore, this terminal PJovides all the characters in the Xerox 64-character ANSCII set.

266

Appendix C

Table C-3 .. CP-V Symbol-:Code Correspondences
EBCDICt
Hex. Dec.

Symbol

Card Code

ANSCll tt

Meaning

Remarks

0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

NUL
SOH
STX
ETX
EOT
HT
ACK
BEL
BS or EOM
ENQ
NAK
VT
FF
CR
SO
SI

12-0-9-8-1
12-9-1
12-9-2
12-9-3
12-9-4
12··9-5
12-9-6
12-9-7
12-9-8
12-9-8-1
12-9-8-2
12-9-8-3
12-9-8-4
12-9-8-5
12-9-8-6
12-9-8-7

0-0
0-1
0-2
0-3
0-4
0-9
0-6
0-7
0-8
0-5
1-5
0-11
0-12
0-13
0-14
0-15

null
start of header
start of text
end of text
end of transmission
hori zonta I tab
acknowledge (positive)
bell
backspace or end of message
enquiry
negati ve acknow ledge
verti co I tab
form feed
carriage return
shift out
shift in

00 through 1 F are control codes.
On 2741 terminals, SOH is PRE.
On 2741 terminals, STX is BY.
On 2741 terminals, ETX is RES.

12
13
14
15
16
17
18
'19
1A
1B
lC
1D
1E
1F

16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31

DLE
DCl
DC2
DC3
DC4
LF or NL
SYN
ETB
CAN
EM
SUB
ESC
FS
GS
RS
US

12-11-9-8-1
11-9-1
11-9-2
11-9-3
11-9-4
11-9-5
11-9-6
11-9-7
11-9-8
11-9-8-1
11-9-8-2
11-9-8-3
11-9-8-4
11-9-8-5
11-9-8-6
11-9-8-7

1-0
1-1
1-2
1-3
1-4
0-10
1-6
1-7
1-8
1-9
1-10
1-11
1-12
1-13
1-14
1-15

data link escape
devi ce control 1
device control 2
device control 3
device control 4
line feed or new line
sync
end of transmission block
cancel
end of medi um
substi tute
escape
fi Ie separator
group separator
record separator
un it separator

20
21
22
23
24
25
26
27
28
29
2A
2B
2C
2D
2E
2F

32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47

11-0-9-8-1
0-9-1
0-9-2
0-9-3
0-9-4
0-9-5
0-9-6
0-9-7
0-9-8
0-9-8-1
0-9-8-2
0-9-8-3
0-9-8-4
0-9-8-5
0-9-8-6
0-9-8-7

1-5
1-12
1-13
1-14
1-15
1-9
2-15
5-14
3-13
0-13
0-4
0-8
2-9
0-9
1-5
1-10

line feed only

30
31
32
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F

48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63

00
01
02
03
04
05
06
07
08
09
OA
OB
OC
OD
OE
OF

00, 06, 07, 09-0B, and OE-OF
are idles for 2741 terminals.
EOM is used only on Xerox Keyboard/
Printers Models 7012, 7020, 8091,
and 8092.

CR outputs CR and LF.

1--.

'10

n

On Teletype terminals, DC1 is X-ON.
On 2741 terminals, DC2 is PN.
DC3 is RS on 2741s and X-OFF on
Teletypes.
On 2741 terminals, DC4 is PF.
LF outputs CR and LF.
On 2741 terminals, ETB is EOB.

Replaces characters with parity error.

10, 11, 16, 18, 19, and lS-1E are
idles for 2741 terminals.

---~--

LF only
FS
GS
RS
US
EM

,

/

=

CR only
EaT
BS
}
HT
LF only
SUB

20 through 2F are used by COC for
output only. These codes are
duplicates of the label entries
that caused activation. The
20-2F entries output a single code
only and are not affected by any
special COC functional processing.

carri age return on Iy

tab code only
line feed only
-

ESC F
CANCEL
ESC X
ESC P
ESC U
ESC (
ESC)
ESC T
ESC S
ESC E
ESC C

ESCO
X-ON
X-OFF
ESC R
ESC CR

12-11-0-9-8-1
9-1
9-2
9-3
9-4
9-5
9-6
9-7
9-8
9-8-1
9-8-2
9-8-3
9-8-4
9-8-5
9-8-6
9-8-7

end of fj Ie
delete all input and output
delete input line
toggle half-duplex pape~ tape mode
toggle restri ct upper case
upper case shift
lower case shift
toggle tab simulation mode
toggle space insertion mode
toggle echo mode
toggle tab relative mode
toggle backspace edit mode
start paper tape
stop paper tape
retype
line continuation

30 through 3F cause COC to perform
special functions.

tHexadecimal and decimal notation.
tt Decimal notation (column-row).

Appendix C

267

Table C-3. Cf'-V Symbol-Code Correspondences (cont.)

Hex. Dec.

Symbol

Card Code

ANSClItt

Meaning

40
41
42

SP

blap~<.

2-0

ESC J

12-0··1}-1

1

12-0-9-2
12-0-9-5

blank
toggle insert mode
decode
line continuation
minimum
epsi Ion

12-0-9-6
l2-0-9-7
12-0-9-8
12'-8-1
12-8-2
12-8-3
t2-8-4
12-8-5
12-8-6
12-8-7

6-0
2-14
3-12
2-8
2-11
7-12

delto
index
cent or accent grave
period
less than
left parenthesis
plus
vertica I bar or broken bar

2-6

ampersand

·43
.44

45
46
47
48
49
4A
46
4C
·4D
4E
4F

64
65
66
67
68
69
70
71
72
73
74
75
76

ESC LF
L

t::,.

I

lor'

<

77

(

78
79

I or :

50
51
52
53
54
55
56
57
58
59
5A
58
5C
5D
5E
5F

80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95

60
61
62
63
64
65
66
67
68
69
6A
68
6C
6D
6E
6F

96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111

70
71
72
73
74
75
76
77
78
79
7A
78
7C
7D
7E
7F

112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127

&

ESC D

o

ESC Z
T

o
I
$

-or,

12-0-9-3
12-0-9-4

12
12-11-9-1
12-11-9-2
12-11-9-3
12-11-9-4
12-11-9-5
12-11-9-6
12-11-9-7
12-11-9-8
11-8-1
11-8-2
11-8-3
11-8-4
11-8-5
11-8-6
11-8-7

11

/

r
I

,
%

>
?

"

v
@
I

0-1
11-0-9-2
11-0-9-3
11-0-9-4
11-0-9-5
11-0-9-6
11-0-9-7
11-0-9-8
0-8-1
12-11
0-8-3
0-8-4
0-8-5
0-8-6
0-8-7
12-11-0
12-11-0-9-1
12-11-0-9-2
12-11-0-9-3
12-11-0-9-4
12-11-0-9-5
12-11-0-9-6
12-11-0-9-7
12-11-0-9-8
8-1
8-2
8-3
8-4
8-5
8-6
8-7

tHexadecimal and decimal notation.
ttDecimal notation (column-row).

268

Appendix C

request re-read
quad
toggle input ignore mode
encode
circular

2-1
2-4
2-10
2-9
3-11
7-14

exclamation point
dollars
asterisk
right parenthesis
semicolon
ti Ide or logi cal not

2-13
2-15

minus, dash, hyphen
slosh
maximum

Remcrks

46 and 47 are unassigned.
42, 44, 45, 48, and 49 are APL
characters

Accent grave used, for left single
quote. On Model 7670,' not
available, and I '" ANSCII 5-11.
On 2741 APL, lise (subset).
On Model 7670, : not available,
and I = ANSel1 2-1.
On 2741 APL, & is n (intersection).
51,57,58, and 59 are
unassigned.
53, 55, and 56 are APL characters.

On Model 7670, ! is I. On 2741
APL, I is 0 (degree). On 2741
APL, $ is U (union).

On Model 7670, ~ is not available,
and,= ANSCII 5-14.

62, 64, 66, and 67 are APL characters.

down arrow

5-14
2-12
2-5
5-15
3-14
3-15

omega
superset

63, 65, 68, and 69 are unassigned.

circumflex
comma
percent
underline
greater than
question mark

On Model 7670 A is-,. en Model
A
7015 is" (caret). On 2741 APL,
Ais 1. On 2741 APL, % is P.
Underline is sometimes called "break
character"; may be printed along
bottom of character line.

APL
APL quote mark
overscore

70-72, 74, 76, and 79 are APL
characters.

Iess than or equa I

73, 75, 77, and 78 are unassigned.

greater than or equal

3-10
2-3
4-0
2-7
3-13
2-2

down delta
colon
number
at
apostrophe (right single quote)
equals
quotation mark

Table C-3. CP-V Symbol-Code Correspondences (cont.)
EBCDICt
Hex. Dec.
80
81
82
83
84
85
86
87
88
89
8A
8B
8C
8D
8E
8F

128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143

90
91
92
93
94
95
96
97
98
99
9A
9B
9C
9D
9E
9F

144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159

AO
Al
A2
A3
A4
A5
A6.
A7
A8
A9
AA
AB
AC
AD
AE
AF

160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175

BO
Bl
B2
B3
B4
B5
B6
B7
B8
B9
BA
BB
BC
BD
BE
BF

176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191

Symbol

a
b
c
d
e
f
g
h
i

j

k
I
m
n
0

p
q
r

CCird Code
12-0-8-1
12'-0-1
12'-'1-2
12-0-3
12-0-4
12-0-5
12-0-6
. 12-0-7
12-0-8
12-0-9
12-0-8-2
12-0-8-3
12-0-8-4
12-0-8-5
12-0-8-6
12-0-8-7
12-11-8-1
12-11-1
12-11-2
12-11-3
12-11-4
12-11-5
12-11-6
12-11-7
12-11-8
12-11-9
12-11-8-2
12-11-8-3
12-11-8-4
12-11-8-5
12-11-8-6
12-11-8-7

ANSCll tt

Meaning

Remarks
80 is unassigned.
81-89, 91-99, A2-A9 comprise the
lowercase alphabet. Available
only in Xerox standard 89- and 95character sets.

6-1
6-2
6-3
6-4
6-5
6-6
6-7
6-8
6-9

'"
8A through 90 are unassigned.

6-10
6-11
6-12
6-13
6-14
6-15
7-0
7-1
7-2
9A through Al are unassigned.

!-------

s
t
u
v
w
x
y
z

I
FF

\

{
}
[
]
NUL

[
]
lost data

-,

11-0-8-1
11-0-1
11-0-2
111-0-3
11!-0-4
1 ]-0-5
1 ]-0-6
11-0-7
11-0-8
1 ]-0-9
1] -0-8-2
1~ -0-8-3
1]-0-8-4
11-0-8-5
111-0-8-6
11-0-8-7

12-11-0-8-1
12-11-0-1
12-11-0-2
12-11-0-3
12-11-0-4
12-11-0-5
12-11-0-6
12-11-0-7
12-11-0-8
12-11-0-9
12-11-0-8-2
12-11-0-8-3
12-11-0-8-4
12-11-0-8-5
12-11-0-8-5
12-11-0-8-7

7-3
7-4
7-5
7-6
7-7
7-8
7-9
7-10
AA through AE are unassigned.

logical and

0-12
5-12
7-11
7-13
5-11
5-13

form feed
backs lash
left brace
right brace
left bracket
right bracket

0-0

null

left bracket
right bracket
lost data
logical not

AF is used by COC for output of
an ANSCII 7-12 code orly.

On 2741 terminals, { is output as (.
On 2741 terminals, } is output as ).
On Model 7670, [ is /.. On Model
7015, [is I.
On Model 7670, ] is I. On Model
7015, ] i5-,.
BO and B7through BB are unassigned.

BC, BD, and BF are Llsed by COC for
output of ANSCII 5-11, 5-13,. and
7-14, respectively.
On 2741 Selectri c and EBCD Standard
Keyboards, [ is output as (and ]
is output as ).

tHexadecimal and decimal notation.
tt Decimal notation (column-row).

Appendix C

269

Table C-3. CP~V Symbol-Code Co~respond~nces (cont. )
EBCDIC t
Hex. Dec.

--

---.~

Symbol

Cord Code

ANSCIItt

Meaning

SP
A

12-0

2-0
4-1-

blank

B

1( ·2
12-3
12-4
12-5
12-6
12-7
12-&1
12-9
12-0-9-8-2
12-0-9-8-3
12-0-9-8-4
12-0-9-.8-5
12-0-9-9-6
12-0-9-8-7

CO
C1
C2
C3
C4
C5
C6
C7
C8
C9
CA
CB
CC
CD
CE
CF

192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207

DO
D1
D2
D3
D4
D5
D6
D7
D8
D9
DA
DB
DC
DD
DE
DF

208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223

EO
E1
E2
E3
E4
E5
E6
E7
E8
E9
EA
EB
EC
ED
EE
EF

224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239

-

FO
F1
F2
F3
F4
F5
F6
F7
F8
F9
FA
FB
FC
FD
FE
FF

240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255

0
1
2
3
4
5
6
7
8
9
X

C
D
E
F
G

H
I

J
K
L
M
N

0
P
Q

R

S

T
U
V
W
X

Y
Z

1~-1

-DEL

tHexadecimal and decimal

270

Appendix C

4-3
4-4

4-5
4 ..6
4-7.
4-8
4-9

DO is unassigned.
4-10
4-11
4-12
4-13
4-14
4-15
5-0
5-1
5-2
DA through DF are unassi<)'led.

2-13

minus

Output only.

E1 is unassigned.

5-3
5-4
5-5
5-6
5-7
5-8
5-9
5-10
EA through EF are unassigned.

..

-~---

0
1

2
3
4
5
6
7
8
9
12-11-0-9-8-2
12-11-0-9-8-3
12-11-0-9-8-4
12-11-0-9-8-5
12-11-0-9-8-6
12-11-0-9-8-7

not~ti'on.

I
I
CA through CF are unassigned.

0-8-2
11-0-9-1
0-2
0-3
0-4
0-5
0-6
0-7
0-8
0-9
11-0-9-8-2
11-0-9-8-3
11-0-9-8-4
11-0-9-8-5
11-0-9-8-6
11-0-9-8-7

ttDecimal nototion (column-row),

Output only.
C1-C9, D1-D9,E2:-E9 comprise the
uppercase olphabet.

4-2

11-0
11-1
11-2
11-3
11-4
11-5
11-6
11-7
11-8
11-9
12-11-9-8-2
12-11-9-8-3
12-11-9-8-4
12-11-9-8-5
12-11-9-8-6
12-11-9-8-7

--~

Rem"lrks

' .

--~---

~-----

3-0
3-1
3-2
3-3
3-4
3-5
3-6
3-7
3-8
3-9
multiply
divide
right arrow
left arrow
delete

FA through FF are APL characters

F,E is not assigned.
Special - neither graphic nor
contro.1 symbol.

Table <:-4.

ANSCII Control-Character Translation Table

Input

ANSCII

TTY
Key

Echoed

NUL (00)

pcs

SOH (01/

A

STX (02/

C
B

EXT (03/

C

EOT (04)t

I

Output
Prog. Rece i ves
(EBCDIC)

Process

EBCDIC

None

None

None

NUL. (00)

Noth i ng (end of
output message)

SOH

SOH

None

SOH (01)

SOH

STX

STX

None

STX (02)

STX

ETX

ETX

None

ETX (03)

ETX

DC

EOT

EOT

Input Comp Iete.

EOT (04)

EOT

E.NQ (OS/

C
E

ENQ

ENQ (09)

None

HT (OS)

Space(s) if tab
simulation on, or
HT (09) if not.

ACK (06)t

C
F

ACK

ACK

None

ACK (06)

ACK

BEL (07)

G

BEL

BEL

None

BEL (07)

BEL

BS

BS

None

BS (08)

BS

Space to tab stop
if tab simulation
on, or 1 space if
not.

Spaces to tab stop,
None
or one space, or tab
(OS) depending on
space insertion mode.

ENQ (09)

ENQ (OS)

CR and LF

LF (lS)

Input Complete:.

NAK (OA)

NAK (lS)

VT

VT

None

VT (OB)

VT

C

C

C

C

BS (08)

H

HT (09)

I

LF/NL {OA)

NL

C

C

Transm i tted
(ANSCII)

VT (OB)

K

FF (OC)

L

None

FF

Page Header and
Input Complete.

FF (OC)

Page Header

CR (OD)

CR

CR and LF

CR (OD)

Input Complete.

CR (OD)

CRand LF (OA)

SO (OE)

N

SO

SO

None

SO (OE)

SO

SI (OF)

OC

SI

SI

None

SI (OF)

SI

DLE (10/

pC

DLE

DLE

None

DLE (10)

DLE

DCl (11) ,

QC

DCl

None

Paper Tape On.

DCl (11)

DCl

~C2 (12)

C
R

DC2

DC2

None

DC2 (12)

DC2

DC3 (13)

SC

DC3

None

Paper Tape Off.

DC3 (13)

DC3

DC4 (14/

T

DC4

DC4

None

DC4 (14)

DC4

NAK (lS)t

U

NAK

NAK (OA)

None

LF/NL (lS)

CR and LF (OA)

C

C

C
C

i

tThese characters are communication control characters reserved for use by hardware. Any other use of them risks incompatibility with future hardware developments and is done so by the user at his own risk.

.Appendix C

271

Table

C-4. ANSell Control-Character Translation Table (cont.)
Input

Output

I

Echoed

Prog. Receives
(EBCDIC)

Process

EBCDIC

SYN (16/

SYN

SYN

None

t
SYN (16)

HB (17)t

ETB

ETB

None

ETB (17)

ETB

CAN (18)

Back-arrow
and CR/LF

None

Cancel input
or output
message.

CAN (18)

CAN

ANSCII

TTY
Key

Transmitted
(ANSCll)
SY N (not transmitted if last
character in
user's buffer).

EM (19)

yC

Back-arrow
and CR/LF

None

Monitor Escape/
Control to TEL

EM (19)

EM

SUB (1A)

ZC

SUB

SUB

Input Complete

SUB (1A)

# (A3)

ESC (1 B)

K

None

None

Initiate escape
sequence mode.

ESC (1 B)

ESC

FS

FS

Input Complete

FS (IC)

FS

GS (1D)

GS

Input Complete.

GS (1 D)

GS

RS (lE)

RS

Input Complete

RS (l E)

RS

US (IF)

US

Input Complete

,US (1 F)

US

CS

ESC
PREFIX
FS (lC)

Lcs

} (7D)

ALTMODE

} or None

} or None

} if model 37; as
ESC if model 33,
35, or 7015.

HB3)

}(7D)

",(7E)

ESC
(7015)

""or None

-or None

"'if model 37;as
ESC if model 33,
35, or 7015

.(5F)

-(7E)

DEL (7F)

Rubout

None

Rubout last
character.

DEL (FF)

None

\

All ANSCII upper and lower case alphabetics are translated on input into the
corresponding EBCDIC graphics as shown i~ Tables C-1 and C-2. All special
graphics map as shown, allowing for Table C-1, Note 2, and the exceptions
above for model ~3 and 35. Lower case alphabetics map into corresponding
EBCDIC upper case if the ESC U mode is set. Upper case alphabetics map
into corresponding EBCDIC lower case if ESC) is set.

Alphabetic and symbol output translation is also as shown in Tables C-1
and C-2; for Models 33 and 35, and
7015 terminals, however, lowercase
alphabetics areautomatically translated to upper case.

tThese charaCters are communication control characters reserved for use by hardware. Any other use of them risks incompatibility with future hardware developments and is done so by the user at his own risk.

272

Appendix C

Table C-5.
EBCDIC
Character

Substitutions for Nonexistent Characters on 2741 Keyboards

APL
Keyboard

Selectric
Keyboard

EBCD
Keyboard

>

>

, (upper case)

>

<

<

(upper case)

<

A

t

¢

I

I

0

--,

'"

±

--,

#

f

#

#

0/0

P

0/0

0/0

¢

c

I

I

@

a

@

@

II

V

II

II

¢
(degree)

I

I

0

I

I

&

n

&

&

$

u

$

$

Appendix C

273

APPENDIX D. USE Of TEMPORARY STORAGE BY LIBRARY ROUTINES
All s~andat;dsy,stem library ro.utines. QJe enter,ed, by a BA~
instructi on, using current general register 1.1. as a link reg,ister. Arguments are passed to the library routine through
currept g~neral reg;isters 6 throuQ;h 9. ClJrr:ent general, r~g;­
ister 0 contains. a poiryter to a Task Control Block (TCB)
established alJ,d maintairied by the monitor. The first t,wo
word~ of a TCB comprise a stack pointer doubleword, qnd
the subsequent words. conto},n add~tional informatiolJ used
by the monitor to cOr,ltrol the current tQ,sk.
The IJbrary routine can make register contents avai lable
for use by pushing. them i~to the temp stock set by the
mon,itor for the current job. Other kinds Of ternporarydata
also can be sgved in the t,emp stack (e. g., trap return
information).
One meafls of storing data in the t.~mp stack is. to push the
data into the stack, by means. of push i nstructi ons (PSM and
PSW); another is to set aside a block of storage in the stack,
by using an MSP instruction, so that data can then be stored
in the block by the use of store instructions.
All storage used in the temp stack must, be released before
the assoc:iateq routine exits. Storage can be release~ bya
pull (PLM or PLW) or MSP instruction. All registers except
those used to return output information must, remain unchanged. Note that all push, pull, and MSP instructions
must be done indirectly, through current general register O.
The following examples show two different methods of
plac:ing data in temporary storage,.

. 274

Appendix D· .

RO
R6

EQU
EQU

LCI
PSM, R6

o
6

4
*RO

The preceding example causes the contents, of current g,enera I registers 6, 7, 8, and 9 to be. pushed into the temp stack.
R7
BLOCKl

EQU
EQU

7
100

LI, R6
MSP,R6
LW,R7

BLOCK1
*RO
*RO

The preceding;e.xample reserves a lOO-word. block in the
temp stack. lheaddress of the topof the block is contained
in R7. When the b lock has been reserved, data can then be
stored in it, using the method illustrated below.
R3,
BLW1

EQU
EQU

3
-99

STW,R3

BLW1, R7

In the example given above, the contents of current general
register 3 are stored in the first word of the reserved block.
The area reserved .for use by the temp sta,ck is estab Ii shed
by a LOAD control command TSS specifi cation or is set at
64 words by default.

APPENDIX E:. COOPERATIVES AND SYMBIONTS
In CP-V the routines to perform pE~ripheral operations for
unit-record peripherals operate concurrently with the jobs
being run. The peripheral system is composed of a "COOperative II and a "symbiont II or symbionts. The cooperative
is a monitor routine called as result of a user's Vo request, whereas a symbiont is a monitor routine that is initiated either by the action of the cooperative or by operator
command from the system console. The cooperative is used
to transfer information between the user's program and
secondary (disk) storage, and symbionts are used to transfer

information between secondary storage and peripheral devices
(see Figure E-l and Tabl e E-l).

The symbiont-cooperative system provides for complete buffering between VO devices and the user's program. Therefore, a user's program never has to wait for an I/o device to
complete an action. Also, the current job may be running
whi Ie the output of the previous job and the job fj Ie for the
following job are being handled by symbiont operation.

/

I

I

Card Reader
or RBT

KEYIN Ghost

JIT

IS t

2

I
IS t

-

Buffer

I~
trol

IS t
4

1

I
~

II

Input
Symbiont

I

IS t

3

w

RBBAT Ghost (W/MBS)

JIT

_ IC 1t

1

-

IC t

Secondary
~torage

3

Resident
Monitor

+

IJIT
IC t

t

2

I I I I

Batch User (or on-line, output only) I

LIC4t~

OC t

1

1

OC t

OC t

2

3

I

+
RBBAT Ghost 0N/MBS)

JIT"

OS t

OS t

,

I

Output
Symbiont

2

1

Il

I

Buffer

J

~
trol·

OS t

3

CP
LP
PL
PP

I

Output
devices

RBT
tThis item

IS

explained

In

Table E-l.
Figure E-l.

Information Flow Through Cooperative and Symbionts

Appendix E

275

Table E-l. Cooperative and Symbionts Descriptions
Name In
Figure E-l

type

Description

IS 1

Input Symbiont

'Input symbiont activcited by KEVIN Or RBBAT via resident tables.

IS

Input Symbiont

Card images read into symbiont buffer.

In'put Symbiont

When buffer is full, contents are written to secondary storage and Iinked to
previous blocks of the same file.

IS 4

Input Symbiont

Continues untir end-of-file or IFIN, then notifies RBBAT and terminates.

IC

Input Cooperative

RBBAT/MBS seleds job to run by putting job information into resident tables. '

Input Cooperative

When JOB card read, job information is transferred to JIT.

Input Cooperative

Input symbiont file blocks are read into user's cooperative buffer.

Input Cooperative

Records are transferred, one at a time, in response to user reads.

Output Cooperati ve

User symbiont output is intercepted and put into cooperative buffers.

Output Cooperative

When buffer is full, contents are written to secondary storage.

Output Cooperative

User issues 'superclose' and file is queued by RBBAT.

OSl

Output Symbiont

RBBAT initiates output symbiont.

OS2

Output Symbiont

Output symbiont blocks are read into symbiont buffer.

OS3

Output Symbiont

Records are transferred, one at a time, to output device. Continues processing blocks until end-of-file, then starts another fi Ie or terminates.

IS

2
3

IC
IC
IC

1
2
3
4

OC
OC
OC

1
2
3

COO'PERATIVE
A single cooperative is provided for handl ing both user input and output files. It is reenterable and can handle any
number of devi ce-type fi les (printer, punch, etc.) per job.

SYMBIONTS
A symbiont is a small, reenterable routine that controls the
action of a symbiont dedicated I/O device having a lower
transfer rate than secondary storage. Core storage as well
as secondary storage wi II be used by the symbiont to produce a continuous flow of information fo or from these devices. Symbionts wi" transfer information from a peripheral
device to thediskand from the disk toa peripheral device.

operation is complete. The symbiont regains control by
stipulating an I/O end-action return to itself.
Since symbionts are reenterable, a single symbiont may
drive several types of devices. For example, the same
symbiont may be used to drive many printers and card
punches. All the peripheral-dependent information is contained in a context buffer. The location of this buffer is
made known to the symbiont whenever it is operating on
the associated device.
Two symbionts are provided in the monitor system: one for
driving all standard input devices, and one for driving all
standard output devices.

SYMBIONT-COOPERATIVE HOUSEKEEPING
Unlike the user's program, which is directed primarily by
control commands, symbionts - once initiated - receive
all their control from the operator's console. An input
symbiont device can be initiated only by the console operator, while an output symbiont device can be initiated
either by the operator or the cooperative.
For each device, a symbiont performs only one I/O operation at a time (chaining is not used) and is inactive from
the time that it initiates a request for I/O unti I the I/O

276

Appendix E

Two monitor subroutines are provided for automatic maintenahce of core storage. One is used to release a core
buffer after use by the symbionts, and the other is used to
obtain a core buffer.
Ifa core buffer is requested by a symbiont and none is
available, an entry is made in a symbiont core-buffer queue.
When one becomes avai lable for symbiont use, control is
returned to the requesting symbiont.

As each buffer is emptied, either by reading from or storing
into secondary storage, it is released. This procedure allows
for efficient utilization of core buffers.
The symbiont routines themselves will be executed in resident monitor space. After starting an I/o operation on a
peripheral device, with an end-action return specified, the
symbiont rei inquishes control to the monitor system.
An area of secondary storage is set' aside for symbiont files.
The size of this area is an installation variable set up at
System Generation time. A secondary storage allocation
table is maintained by the monitor to indicate which disk
areas are avai lable. Two monitor subroutines are also provided for maintenance of secondary storage. One of these
requests storage; the other re Ieases it. If secondary storage
is requested and none is avai labl e r an entry is made in a
symbiont secondary storage queue" Where subsequent I/o
information is read by the cooperative or a symbiont (operating on another device), secondary storage is released and
control is returned to the symbiont requesting secondary
storage.
Secondary storage holds the files produced by, or committed
to a peripheral device. Each disk block of secondary storage contains the disk address of the next disk block in the
fj Ie, and a table of job fi les is maintained by the monitor.
Monitor subroutines are provided for symbiont input and
output fi Ie maintenance. One removes a file; the other
inserts a new fi Ie into the fi Ie table.
When preparing to output a fi Ie, the output cooperative
places an appropriate entry in the fi Ie directory.

SYMBIONT BUFFERS

(RCC) which defines the record.
ing values:

o= a

RCC may have the fQllow-

BCD record (e. g., card).

1 = an EOD record (e. g., I EOD).
2 = a binary record (BIN).
4 or 5 = a PRINT record without a vertical format control character.
6 or 7 = a PRINT record, the first byte of which is a
vertical format control character.
X'40' = a block ending control string (e.g., no more
records this block).
X'86' = a nonbatch banner. (The record will usually
be repeated enough times to fi II two print pages.)
When the RCC value is X'86' the symbiont file buffer
has three additional fields that are not shown in Figure E-l. They are each one byte in length and are:
RPTC
specifies the number of times this record
is to be printed plus one.
SVFC
specifies the secondary VFC character.
The character is used for the second and each
succeeding repeated print (e. g., X'C l' for
doublespace).
PVFC
specifies the primary VFC character
to be used on the first print (e.g., X'Fl' for
top-of-form).
For Example:

There are two symbiont fi Ie buffers:
1.

Input symbiont fi Ie buffer.

2.

Output symbiont fi Ie buffer.

In CP-V, both input and output symbio~t fi Ie buffers have
the same format (Figure E-2). EClch such block contains
256 words, and two blocks reside in a granule of fi Ie storage. Word 0 of the block is used for the forward link address that is inserted by the system when the fi Ie is created.
A value of zero implies no forward address (i. e., end of
fi Ie). Word 255 is used for the backward link address, again
inserted when the fi Ie is created. A va lue of zero implies
no backward address (that is, begonning of fi Ie). Each record in the block is preceded by four bytes of control information. Neither the rec;:ord nor the control information
need start on a word boundary except the first control string.
Each control string must immediately follow the preceding
record. The first two bytes of a control string are the byte
count (BC) of the following record. BC must be greater
.. han zero and less than 1008. N() record may be split between blocks. If a block does not have space remaining
for a block end control string, a record control string, and
a record, the next record must begin in a new block. The
third byte of a control string is the record control character

RCC=X'86'

BC
RPTC

I

SVFC

SK=3

PVFC

Other values for RCC are reserved for future enhancement
and should not be used. The fourth byte of a control string
is the skip byte (SK) defined for the convenience and efficiency of the block encoder. SK may have the value 1
through 4 inclusive.
The next SK-l bytes following the control sequence have
no significance and are skipped before the start of data.
The skipped bytes are provided to allow a byte-aligned
MBS instruction (the most efficient execution) to move
. the bytes into the symbiont block or to allow placement
of the record on a word boundary for record construction
ease. The final control string of a block must have BC=O,
RCC=X'40', and SK=O.

Appendix E

277

o

78

1516

31

2324

Forward li nk Di sk Address
RCC

BC

SK=l

Record 1

BC
RCC

SK=2

Unused

Record 2

Record n-1
BC
BC

RCC

SK=3

Unused

Unused

Record n

0
0

0

Backward Link Disk Address

End of data thi s buffer
If forward link disk address = 0, this is EOF.

If not, fi Ie is continued at forward link.
Records are never split between blocks.

Figure E-2.

278

Appendix E

Symbiont Fi Ie Buffer Format

Appendix F has been deleted. Information regarding simultaneous
file usage is contained in Section 2, Files and File Usoge.

90 17 64H-l(9/78)

Appendix F

279

(This page intentionally left blank.)

90 17 64H-1 (9/78)

Appendix F 280

INDEX
Note: For each entry in this index, the number of the most significant page is listed first. Any pages thereafter are listed in
numerical sequence.
2741 terminal,
substitutions for nonexistent characters, 273

A
A Programming language, 6
abnormal address, setting, 112
abnormal codes
device failure or end-of-data, 254
enqueue/dequeue, 263
insufficient or conflicting information, 250
abort return, 70,94
account, user, 30
account di rec tory, 15
accounting, 166,2
accounting output, 168
addend value, x
address resolution code, x
adjust DCB CAL, 79
AND control command, 176
ANS COBOL, 5
ANS labeled tape, 25,x
DCB format, 242
ANS FORTRAN, 4
ANSCII,266,264,271
AP, 5
APl, 6
applicatiQn processors, 8
Assembly Program, 5
ASSIGN control command, 33,82
ANS labeled tape, 39
device, 40
disk file, 34
journal, 40
Xerox labeled tape, 37
assign/merge table, reading and writing, 87
authorization checks, 2

B
banner XIII
BASIC, 5
Ba tc h (processor), 204,7
Batch, command continuation, 205
Batch, commands, 205
BATCH, 205
DEFAULT, 206
EOF, 206
EOF EXEC, 207
EXEC, 206
Batch, data replacement, 204
Batch, error messages, 207

BATCH command, Batch, 205
batch job, x
batch processing, 2
BCD control command, 54
beginning column, specifying, (M:DEVICE), 127
BIN control command, 54
binary input, x
blocking buffer, truncating, 119
BREAK key, connecting to, 94
BUilD command, SYMCON, 211

c
card punch sequencing, specifying, (M:DEVICE), 127
CCI, 4,x
CHANGE command, SYMCON, 211
character sets, 264
CIRC, 8
close a file, 110
close a volume, 120
COBOL, 5
COBOL On-Line Debugger, 7
codes and correspondences, 264
column, specifying beginning, (M:DEVICE), 127
command processors, 3
command syntax notation, ix
commands, contro I, (see contro I commands)
common limits, obtaining, 72
common pages, x
freeing, 73
obtaining, 73
common storage, 152
concatenation, 189,x
conflicting information,
a bnorma I codes, 250
error codes, 255
conflicting reference, x
consecutive files, 18
console interrupts, connecting to, 65
control codes, 264
control'commands, 29,x, 10
AND, 176
ASSIGN, 33,82
BCD, 54
BIN, 54
COUNT, 176
DATA, 54
EOD,54
FIN, 54
IF, 174
INCl, 135
JOB, 30
lDEV, 51
LIMIT, 31
Index

281

Note: For each entry in this index, the number of the most significant page is listed first. Any pages thereafter are listed in
numerical sequence.
LINK, 120
lOAD, 129
MESSAGE, 33
MODIFY, 136
OlAY, 129
OR, 176
OVERLAY, 129
PFll, 54
PMD, 172
PMDE, 172
PMDI, 172
POOL, 32
PTREE, 135
REW, 55
RUN, 136
SET, 44
SNAP, 173
SNAPC, 174
STEP, 32
SWITCH, 55
TITLE, 33
TREE, 134
WE OF , 55
XEQ,53
control function, x
control key-in, x
con tro I message, x
cooperative, 275,x
COpy command, pel, 186
COpyAll command, PCl, 191
COPYSTD command, PCl, 194
COUNT control command, 176
CP-V operating system, 1

o
DATA control command, 54
data encryption, 24
data memory management, 72
data record manipulation, 114
date, obtaining, 60
DC B, 96, x, 17, 22, 25, 123, 161, 213
assignments, checking correspondence' of,
(M:DEVICE), 128
closing, 110
creating, 96
formats,
ANS labeled tape, ~42
device DCB, 235
file DCB, 213
Xerox labeled tape, 234
initializing, 102
opening, 102
size, 161
DCBTAB (Name Table), 161
debug error messages, 178, 177
debugging aids, 170
(see FDP)
(see Delta)
282

Index

DEFAULT command, Batch, 206
DEFCOM, 208,7
DE LE TE command,
PCl, 195
SYMCON, 210
DElETEAll command, PCl, 195
Delta, 6
dequeue resources, 78
device DCB format, 227
device designation codes, 96
device failure abnormal codes, 254
device failure error codes, 257
device mode, changing, (M:DEVICE), 126
device names, 95
device type codes, 95
device-oriented FPT, 81
direct a,ccess of files, 20
direct formatting, specifying, (M:DEVICE), 124
DISCARD command, SYMCON, 211
disk storage, 24
dummy section, x
dumps, postmortem, 170,xi
dumps, snapshot, 172
dynamic data limits, obtaining, 72
dynamic pages,
freeing, 74
obtaining, 73

E
EASY, 4
EBCDIC, 265,264
ECB, checking for completion, 91
Edit (processor), 7
EDMS, 8
element file, x
encryption, 24
END command,
PCl, 199
SYMCON, 210
end-of-data abnormal codes, 254
end-of-clata error codes, 257
end-of-file, writing, 121,55
enqueue/dequeue abnormal and error codes, 263
enqueue/dequeue resources, 75,279
EOD control command, 54
EOF command, Batch, 206
EOF EXEC command, Batch, 207
error address, setting, 112
error codes,
device failure or end-of-data, 258
enqueue/dequeue, 254
insufficient or conflicting information, 255
miscellaneous, 258
Xerox labeled tape, 254
error control , monitor, 71
error messages,
Batch processor, 207
debug, 178, 177

!'Jote: For each entry in this index, the number of the most significant page is listed first. Any pages thereafter are listed in
nu mer i co I sequen ce
0

Link, 153
load, 139
lYNX, 148
mon i tor, 250
Pel, 200, 199
SYMCON, 212,211
error return, 70,93
error severity level code, x
ERRORS command, Pel, 198
event control blocks, checking for completion, 91
exceptional condition control procedures, 62
EXEC command, Batch, 206
execution control processors, 6
exit control, 66
exit from trap, interrupt, timer, or exit control routine, 71
exit return, 85,68,93
exits to the monitor, 68
explicit open, 28
extension of output files (see filEIS, extension)
external definition, x
external reference, x

F
FOP, 6
fid (see files, identification)
fi Ie DCB format, 213
file directory, 15
file function and disposition, 19
File Information Table (see FIT)
file maintenance procedures, useII', 96
file management routines, x
file manipulation procedures, 12()
files,
access, 20
consecuti ve, 18
defaults, 104
direct access, 20
extension, x
iden fifi cation, 184
keyed, 15
manipulation, 120
multiple access to a single file, 22
noncontrol input, 86,53
organization, 15
posi tion i ng , 120
random, 19
sequential access, 21
simultaneous usage, 22
storage devices, 24
structure, 15
synonymous, 28
FIN control command, 54
FIT, 15
FIT file parameters, 224
FLAG, 5
formatting, specifying direct, (M:DEVICE), 124

90 17 64H-1 (9/78)

forms, changing, (M:DEVICE), 126
FORTRAN, 4
FORTRAN Debug Package, 6
FORTRAN load and Go, 5
FPARAM table, 224
FPT, 80,x,56
setting protection type, 57
function parameter table (see FPT)

G
General Purpose Discrete Simulator, 8
GET CAL, 90
ghost job, x
ghost job, initiating, 93
global symbol, 153,x
GO file, x
GPDS, 8
granule, x

H
header, specifying, (M:DEVICE), 127

I/O completion, checking, 113
I/O devices, assigning, (see ASSIGN command)
I/O procedures, 95
IF control command, 174
INCl control command, 135
index structure, 15
input control commands, 54
insufficient information, abnormal codes, 250
insufficient information, error codes, 255
internal symbols, 153
interrupt, connecting, to, 65,94
interval timer, setting, 64
interval timer, testing, 65
lOP designation codes, 95

J
JCl, 29
JIT, xi
JOB control command, 30
job decks, sample, 179
job step, xi
Index

283

Note: For each entry in this index, the number of the most significant page is listed first. Any pages thereafter are listed in
numerical sequence.

K
KEEP command, SYMCON, 210
key, xi
keyed files, 15
key-in, xi
requesting, 61,94

L
labeled tape, 25
(see ANS labeled tape)
(see Xerox labeled tape)
la nguage processors, 4
LDEV control command, 51
LE MU R (processor), 154, 8
calling LEMUR, 154
commands,
BUILD, 155
CARRY, 157
COPY, 156
DE LETE, 155
END, 157
LIBRARY, 155
concepts, 155
error messages, 158
:UB file, 134
libraries, 137, 10
routines, 274
library load module, xi
LIMIT control command, 31
limits, obtaining common, 72
line printer format control codes, 43
line spacing, setting (M:DEVICE), 124
lines, determining number remaining (M:DEVICE), 128
Iines, setting number of printable (M:DEVICE), 124
lin k (processor), 150,6
link, commands,
LINK, 150
link, error messages, 153
LINK command, link, 150
link to a load module (M:lINK), 58
I inking loader, xi
LIS T command,
PCL, 196
SYMCON, 210
listing log, writing to, 62
Load (processor), 129,6
Load, commands,
INCL, 135
LOAD, 129
MODIFY, 136
OLAY, 129
OVERLAY, 129
PTREE, 135
RUN, 136
TREE, 134

284

Index

Load, error messages, 139
load, restrictions, 133
load and transfer control, 59
LOAD control command, 129
load information, xi
load location counter, xi
load map, 163,xi
load modu Ie ,
linking to, 58
structure, 151
logica I device stream, 51 ,xi, 84
logical device, xi
LOGON/LOGOFF, 4
LYNX (processor), 143,6
command file input, 143
error messages, 148
example, 148
LYNX command, 143
mapping existing load modules, 147
:TREE command, 147

M
M:AND, 1'76
M:CAL,9O
M:CHECK, 113
M:CHECKECB, 91
M:C LOSE, 110
M:COUNT, 177
M:CVM, 75
M:CVOL, 120
M:DCB, 97,96
M:DE LREC, 119
M:DEQ,78
M:DEVICE, 123
M:DISPLAY, 89
M:ENQ, 77
M:ERR, 70,93
M:EXIT, 68,93
M:EXU, 93
M:FCP,73
M:FP, 74
M:FVP, 74
M:GCP,73
M:GDDL,72
M:GL, 72
M:GP, 73
M:GVP,74
M:IF, 175
M:INT, 65,94
M:JOB, 121
M: KEY IN, 61,94
M:LDEV,84
M:LDTRC, 59
M:lINK, 58
M:MASTER, '90
M:MERC,71
90 17 64H-l (9/78)

Note: For each entry in this index, the number of the most significant page is listed first. Any pages thereafter are listed in
numerical sequence.
M:MESSAGE, 60
M:MOVE, 118
M:OPEN, 102
M:OR, 176
M:PFll, 120
M:PRECORD, 119
M:PRINT, 62
M:PT, 57
M:RAMR, 87
M:READ, 114
M:REW, 121
M:SEGlD, 57
M:SETDCB, 112
M:SlAVE, 90.1
M:SMPRT, 75
M:SNAP, 174
M:SNAPC, 174
M:STlMER, 65,64
M:STRAP, 64
M:SYS, 90
M:TFllE, 113
M:TlME, 60
M:TRAP, 63
M:TRTN, 71
M:TRUNC, 119
M:TIMER, 65,64
M:TYPE, 60,94
M:WAIT, 62
M:WAMR,89
M:WEOF, 121
M:WRITE, 116
M:XCON,66
M:XXX, 70,94
magnetic tapes (see tape)
Manage, 8
master mode, enter ing, 90
memory allocation, 72
memory management, 72
memory protect, setting, 75
memory protection, 162
memory, virtual, 163
MESSAGE control command, 33
messages (see error messages)
messages to operator, 60
Meta-Symbo I, 4
MODIFY control command, 136
mon itor, 9, 1, x i
monitor error control, 71
mon i tor error mesSCIges, 250
monitor routines, 9
multilevel index structure, 15

N
name, user, 30
11 NCTl command, 86,53
noncontrol input file, 86,53
90 17 64H-1 (9/78)

o
object language, xi
object module, xi
OLAY control command, 129
open a file, 102
open, explicit, 28
opennext operation, 28
operational label, 41,xi
operator, messages to (from users), 33,60
option, xi
OR control command, 176
output form, changing, (M:DEVICE), 126
output header, specifying, (M:DEVICE), 127
OVERLAY control command, 129
overlay loader, (see load processor)
overlay segment, load ing, 57

p
page count, specifying, (M:DEVICE), 125
pages, free i ng, 72
pages, obtaining, 71,72
parameter presence indicator, xi
PCl, 182,7
PCl, capabilities, 185
PC l, command summary, 203, 199
PCl, commands,
COPY, 186
COpyAll, 191
COPYSTD, 194
DELETE, 195
DElETEAll, 195
END, 199
ERRORS, 198
LIST, 196
PRINT, 198
REMOVE, 199
REVIEW, 197
REW, 198
SPE, 198
SPF, 198
SPR, 198
TABS, 199
WEOF, 198
PCl, device types, 183
PCl, disk pack default, 184
PC l, error messages, 200, 199
PCl, file identification, 184
PCl, mode option compatibility, 185
PCl, organization types, 183
PCl, resource type, 185
PCl, scratch types, 199
pel, source and destination specification, 183
PCl, specification examples, 185
PCl, syntax conventions, 182
PCl, termination of, 199
Index

285

Note: For each entry in this index, the number of the most significant page is listed first. Any pages thereafter are listed in
numerical sequence.
PCl, volume identification, 184
Peripheral Conversion language (see PCl)
peripheral device (see device)
PFll control command, 54
physical device, 27,xi
PMD control command, 172
PMDE control command, 172
PMDI control command, 172
POOL control command, 32
pos ition fi Ie, 120
postmortem dumps, 170,xi
PRINT command, PCl, 198
privileged instructions, executing, 93
procedures, 56, 12
exceptional condition control, 62
file maintenance, 96
file manipulation, 120
genera I purpose, 57
I/o, 95
M:AND, 176
M:CHECK, 113
M:CHECKECB, 91
M:ClOSE, 110
M:COUNT, 177
M:DVM,75
M:CVOl, 120
M:DCB, 97,96
M:DElREC, 119
M:DEQ,78
M:DEVICE, 123
M:DISPLAY, 89
M:ENQ, 77
M:ERR, 70,93
M:EXIT, 68,93
M:EXU,93
M:FCP, 73
M:FP, 74
M:FVP, 74
M:GCP,73
M:GDDl,72
M:Gl, 72
M:GP,73
M:GVP,74
M:IF, 175
M:INT, 65,94
M:JOB, 121
M:KEYIN,61,94
M:lDEV, 84
M:lDTRC,59
M:LlNK, 58
M:MASTER, 90
M:MERC, 71
M:MESSAGE, 60
M:MOVE, 118
M:OPEN, 102
M:OR, 176
M:PFll, 120
M:PRECORD, 119
M:PRINT,62
M:PT, 57

286

Index

M:RAMR, 87
M:READ, 114
M:REW, 121
M:SEGlD, 57
M:SETDCB, 112
M:SlAVE, 90
M:SMPRT, 75
M:SNAP, 174
M:SNAPC, 174
M:STIMER, 65,64
M:STRAP, 64
M:SYS,90
M: TF I lE, 113
M:TIME, 60
M:TRAP,63
M:TRTN, 71
M:TRUNC, 119
M:TTlMER, 65,64
M:TYPE, 60,94
M:WAIT,62
M:WAMR,89
M:WEOF, 121
M:WRITE, 116
M:XCON,66
M:XXX, 70,94
on-line and batch differences, 93
special device, 123
processor control commands, 182
processor name control command, 182
processors,
application, 8
command, 3
execution control, 6
language, 4
service, 7
user, 9
program decks, samples, 179
program load and execution, 129
program product, xi
protective mode, 25,xi
pseudo file name, xi
PTREE control command, 135
public library, 137,xii,9O
public library, associate or disassociate, 90

R
RAD, 24,xii,2
random fi les, 19
real-time processing, 2
record, deleting, 119
record, manipulation, 114
record, reading, 114
record, size,
changing, (M:DEVICE), 126
record, writing, 116
records, copying all, 118
records, formatted, 27

Note: For each entry in this index, the number of the most significant page is listed first. Any pages thereafter are listed in
numerica I sequence.
records, positioning, 119
reentrant, xii
relative allocation, xii
release resource CAL, 89
relocatable object module (ROM), xii
relocating loader, xii
remote processing, 2,xii
REMOVE command, PCl, 199
Report Program Generator, 5
resident program, xii
response time, xii
RETAIN command, SYMCON, 211
REVIEW command, pel, 197
REW command, PCl, 198
REW control command, 55
rewind, 121,55
ROM, xii
RPG, 5
RUN control command, load, 136

s
SAVE CAL, 89
schedu ler, xii
secondary storage, 2, xii
segment loader, xii
semi-protective mode, 25,xii
sequencing, specifying, (M:DEVICE), 127
sequential access of files, 21
service processors, 7
SET command, 44
shared processor, xii
Show processor, 208
Simulation language, 6
simultaneous file usage, 22
S l-1, 6
slave mode, entering, 90
SNAP control command, 173
SNAPC control command, 174
snapshot dumps, 172
Sort/Merge, 8
source language, xii
SPE command, PCl, 198
specia I shared processor, xii
specific allocation, xii .
SPF command, PCl, 198
SPR command, PCl, 198
SR1, SR2, SR3andSR4, xii
star file, xii
static core module, xii
S TE P con tro I command, 32
storage devices, 24
SWITCH control command, 55
symbiont, 275, xii
symbiont file, inserting or deleting, 121

symbol tables,
global, 153
internal, 153
symbol-code correspondences, 267
symbolic input, xii
symbolic name, xii
symbols (symbol ic identifiers), 153
symbols, graphic, 264
SYMCON, 209,7
SYMCON, commands,
BUI lD, 211
CHANGE, 211
DELETE, 210
DISCARD, 211
END, 211
KEEP, 210
LIST, 210
RETAIN, 211
SYMCON, error messages, 212,211
synonymous files, 28
SYSGE N, xii
SYSTEM BPM, 56
system load parameters, listing, 89
system register, xii
SYSTEM SIG7, 56
SYSTEM SIG9, 56

T
tab stops (M:DEVICE), 123
tape,
(see ANS labe led tape)
(see Xerox labe led tape)
labeled, 25
positioning (M:C lOSE), 110
types of, 25
updating (M:C lOSE), 110
task control block (TCB), 160,xii ,63
TEL, 4
temporary file, declaring, 113
TEXT format, xiii
TEXTC format, xiii
time, obtaining, 60
time-sh~ring, 2
timer, setting, 64
timer, testing, 65
TITLE control command, 33
top of form skipping to, (M:DEVICE), 120
transaction processing, 3,8
traps, setting, 63
traps, simu lating, 64
:TREE command, lYNX, 147
TREE control command, 134
TSS temp stack, xiii
TYC codes, 222,234,241,248
Index

287

Note: For each entry in th is index, the number of the most significant pag6 Is listed first. Any pages thereafter dre Iisted iii
numerical sequence.

u
Unsati sfied reference, xiii
user processors, 9
user-identification banner, xiii
utility control commands, 54

x

y'
voriable length parameters, 81,223,248
vertical format control, specifying, (M:DEVICE), 125
virtual map, changing, 75
virtual memory, 163
virtual memory layout,
Link processor, 164
Load processor, 165
virtua~ po.ge, freeing, 74
virtual page, obtaining, 74
volume, closing, 120
volume, identification, 184

288

WEO~ command, pel; 197
WEOF control command, 55
write end-of-file, 116,55

Index

XE Q con tro I command, 53
Xerox lobe led tape, 25
DC B format, 234
errOr' hdndl ing, 254
Xerox s·tanddrd symbols, codes', and corre'spondences, 264

y
yyndd, 95

XEROX

Publication Revision Sheet
September 1978

CORRECTIONS TO CP-V/BATCH PROCESSING REFERENCE MANUAL
PUBLICATION NO. 90 17 64H-1(9/78)

The attached pages contain changes which reflect the FOO version of Control Program-Five (CP-V). Pages in the
H edition (11/76) of the manual that are to be replaced are: title page/ii, iii through viii, 21/22,23/23. 1, 23.2/24,
25 through 40, 47/48, 51 through 54, 57 through 62, 65/66, 75/76, 83 through 90, 91 through 108, 111/112,
115 thro~gh 118, 121 through 124, 127 through 134, 137/138, 143 through 150, 153/154, 183 through 202,
203/203. 1, 203.2/204, 205/206, 221/222, 233/234, 251 through 262, 279/280, and 283 through 286. (Pages
23. 1, 23.2, 203. 1, and 203.2 are new pages.)
Pages that are to be inserted are:: 90. 1/90.2.
Revision bars in the margins of rElplacement pages identify changes.

Pages without the publ i cation number

90 17 64H-1(9/78) at the bottom are included only as backup pages; revision bars appearing on such pages
identify changes made in a previous revision. A revision bar adjacent to a page number indi cates that the
material on the page has been reorganized without the content being changed.

23408

File No.: 1 X 13

1579
Printed in U.S.A.
XEROX"

is a trademark of XEROX CORPORATION

X L89A, Rev. 0

90 17 64H-1 (9/78)

XEROX
Reader Comment Form

I

I

We would appreciate your comments and suggestions for improving this publication
Publication No.

~.V.

Le,,:, T-;tI.

Current Date

i

How did you use this publication;>

!I
I

D
D

Learning

D

Installing

Reference

D

Mainta inin 9

Is the material presented effectively?
D

Sales

D

Operating

D

Very Poor

What is your overall rating of this publication?
D

Very Good

D

Fair

D

Good

D

Poor

1

o

Fully Covered

DWell Illustrated

D

Well organized

D

Clear

What is your occupation?

Your other comments may be entered here. Please be specific and give page, column, and line number references where
applicable. To report errors, please use the Xerox Software Improvement or Difficulty Report (1188) instead of this form.
1---

I
--

I

~

Your name & Return Address

Thank You For Your Interest

(fold & fasten as shown on back, no postage needed If mailed

In

USA)

w

z

::i

CJ

z

o

..J

<

I-

::>

u

I
I
I
I
I
I ~
I ~
I CJ
I Z

PLEASE FOLD AND TAPENOTE: U. S. Postal Service will not deliver stapled forms

~g

<
o
..J

III II I

NO POSTAGE
NECESSARY
IF MAILED
IN THE
UNITED STATES

o

u..

BUSINESS REPLY MAIL
FIRST CLASS PERMIT NO. 59153 LOS ANGELES,CA 90045
POSTAGE WILL BE PAID BY ADDRESSEE

HONEYWELL INFORMATION SYSTEMS
5250 W. CENTURY BOULEVARD
LOS ANGELES, CA 90045

ATTN: PROGRAMMING PUBLICATIONS

w
Z

~

CJ
Z

~o
..J

<

o
..J

o

u..

Honeywell

Honeywell Information Systems
In the U.S.A.: 200 Smitfl Street, MS 486, Waltham, Massachusetts 02154
In Canada: 2025 Sheppard Avenue East, Willowdale, Ontario M2J 1W5
In the U. K.: Great West Road, Brentford, Middlesex TWa 90H
In Australia: 124 Walker Street, North Sydney, N.S.w. 2060
In Mexico: Avenida Nuevo Leon 250, Mexico 11, O. F.
27994, 3.5C880, Printed in U.S.A.

XL89, Rev. 0



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
Producer                        : Adobe Acrobat 9.13 Paper Capture Plug-in
Modify Date                     : 2009:09:20 01:02:47-07:00
Create Date                     : 2009:09:20 01:02:47-07:00
Metadata Date                   : 2009:09:20 01:02:47-07:00
Format                          : application/pdf
Document ID                     : uuid:f0a7310e-96b8-4091-b02c-27ea7ff006b5
Instance ID                     : uuid:476be18b-940f-4535-8265-9efcfac4ac3a
Page Layout                     : SinglePage
Page Mode                       : UseOutlines
Page Count                      : 313
EXIF Metadata provided by EXIF.tools

Navigation menu