HASP_II_Manual_Jun72 HASP II Manual Jun72
HASP_II_Manual_Jun72 manual pdf -FilePursuit
HASP_II_Manual_Jun72 HASP_II_Manual_Jun72
User Manual: HASP_II_Manual_Jun72
Open the PDF directly: View PDF
.
Page Count: 1274
| Download | |
| Open PDF In Browser | View PDF |
J> rog ram, Library
Japan, Ltd.
Systems Engineering Dept.
14,1 Choma Nagata-cho
Chiyoda-ku
Tokyo, Japan
Canadian Program Library
IBM Canada Ltd.
Department 960
5 Yorkland Boulevard
Willowdale, Ontario
Canada
European Program Library
IBM France
23, Allee-Maillasson
F.92-Bouiogne-Billancourt
France
Societe Anonyme Au Capital de
620.256.000 F-R.C.
(Seine 55B-11 846)
Program Information Dept.
IBM Corporation
40 Saw Mill River Road
Hawthorne, New York 10532
United States
South American
Program Library
IBM do Brasil, Ltda.
Avenida Presidente
Vargas 642, 4 Andar
Caixa Postal 1830-ZC-00
Rio de Janeiro, Brazil
South Pacific
Program Library
IBM Austraiia, Ltd.
Box 3318 G.P.D.
Sydney, N.S.W.
Australia
June 26, 1972
Memorandum to:
Users of the HASP II System (360D-05.1.0l4)
Subject:
Transmittal of Version 3, Modification Levell
of 360D-05.1.014
This letter transmits Version 3, Modification Level 1 of the
HASP II System, 360D-OS.1.014.
The program materials needed to update this program to Version 3,
Modification Level 1 are enclosed.
The Basic materials distributed with this letter are:
1.
An update to HASP II System Manual (replacement pages)
2.
A replacement Memorandum to Users for HASP II System
Manual
3.
A complete replacement of the Basic machine readable
material on one Distribution Tape Reel (DTR) recorded
at 9-track 800 or 1600 bpi, or one 7-track 800 cpi
(Data Conversion Feature required)
If you are a user of the Optional program material, it consists of:
1.
A complete replacement of' the Optional machine readable
material consisting of 138 - 96. column cards as a "starter
system" for a remote System!3.
This release of HASP corrects virtually every known problem in
Version 3, Modification Level 0 of HASP. This sytem includes all
PTFs applicable to HASP Version 3.0 through DPA5427. Following is
a list of the more significant maintenance items.
The restrictions prohibiting any extended use of the 3211
Forms Control Buffer have been removed.
Rotational Position Sensing for 3330 and 2305 devices is
now a HASPGEN option.
3M399A
Previously announced support for the 3505 Card Reader and
the 3525 Card Punch is included.
The restriction prohibiting operator control of HASP job
flow based on OS jobnames has been removed.
Multi-tasking jobs are no longer excluded from the execution
dynamic priority group.
The restriction prohibiting restart of the HASP execution
phase of a job has been removed.
The operator is no longer prohibited from changing a printer's
FCB or DCS when the printer is stopped for forms mounting.
For as controlled console support, the operator's replies to
WTORs are no longer omitted from the HASP System Log.
Optionally, the user can now define names other than SPOOLn
for HASP spooling volumes.
HASPGEN efficiently accepts both the IEBUPDTE and IEBUPDAT
formats of modification cards and sequence checks them.
HASP command authority has been extended to local input devices
and is controlled by the central operator.
An optional backspace character can now be defined to support
as controlled consoles with no backspace key.
HASP Remote Job Entry maintenance items:
The 3780 Data Communications Terminal is now supported by
HASP.
The Space Compression/Expansion feature of 2770 and 3780
terminals is supported.
Any of the three optional buffer sizes for 2770 terminals may
now be specified. Current 2770 users must respecify RMTnn
parameters prior to HASPGEN, according~the new definitions
on page 388.
HASP RMTGEN will optionally punch an 80-column card deck for
System/3 remote terminals without 5424 card readers.
This modification is supported on current
as
releases.
This memorandum should be added to your program package for future
reference.
The HASP II System has Programming Service Classification A.
Any discrepancy between the material received and the material
listed above, or any errors in reproduction, should be reported
to the Manager of the Program Library providing your programming
systems.
cc:
IBM Systems Engineering Managers (no enclosures)
IBM Field Engineering Managers (no encloures)
Program Information Department
I
Q. p~~g~~m
a
Library
M Japan, Ltd.
Systems Engineering Dept.
14, 1 Chome Nagata-cho
Chiyoda-ku
Tokyo, Japan
Canadian Program Library
IBM Canada Ltd.
Department 960
5 Yorkland Boulevard
Willowdale, Ontario
Canada
European Program Library
IBM France
23, Allee-Maillasson
F.92-Boulogne-Billancourt
France
Societe Anonyme Au Capital de
620.256.000 F-R.C.
(Seine 55B-11 846)
Program Information Dept.
IBM Corporation
40 Saw Mill River Road
Hawthorne, New York 10532
United States
South American
Program Library
IBM do Brasil, Ltda.
Avenida Presidente
Vargas 642, 4 Andar
Caixa Postal 1830-ZC-00
Rio de Janeiro, Brazil
South Pacific
Program Library
IBM Australia, Ltd.
Box 3318 G.P.O.
Sydney, N.S.W.
Australia
June 26, 1972
Memorandum to: Recipients of HASP II (360D-05. 1.014)
Subject
Replacement Memorandum for HASP II System
Manual
The attached memorandum replaces the memorandum currently
attached to the HASP II System Manual.
Attachment
Program Information Department
3H399C
.1I;p~ogr~m Library
'-1M
J~pan, Ltd.
Systems Engineering Dept.
14, 1 Chome Nagata-cho
Chiyoda-ku
Tokyo,Japan
Canadian Program Library
IBM Canada Ltd.
Department 960
5 Yorkland Boulevard
Willowdale, Ontario
Canada
European Program Library
IBM France
23, Allee-Maillasson
F.92-Boulogne-Billancourt
France
Program Information Dept.
IBM Corporation
40 Saw Mill River Road
Hawthorne, New York 10532
United States
Societe Anonyme Au Capital de
620.256.000 F-R.C.
(Seine 55B-11 846)
South American
Program Library
IBM do Brasil, Ltda.
Avenida Presidente
Vargas 642, 4 Andar
Caixa Postal 1830-ZC-00
Rio de Janeiro, Brazil
South Pacific
Program Library
IBM Australia, Ltd.
Box 3318 G.P.O.
Sydney, N.S.w.
Australia
June 26, ·1972
Memorandum to:
Recipients of HASP II (360D-05.l.0l4)
Subject:
Transmittal of Version 3, Modification Levell of
360D-05.l.0l4
The program materials you have ordered are enclosed. The .following
describes the contents of the Basic and Optional program packages.
Basic program material consists of:
1.
The enclosed HASP II System Manual.
2.
Machine-readable material on one 9-track 800 or 1600
bpi, or 7-track 800 cpi (Data Conversion Feature required)
Distribution Tape Reel (DTR).
For a description of the.
tape contents see the HASP II System Manual.
If you have ordered the Optional program material, it consists of:
1.
A deck of 138 - 96 column cards. This deck is a
"starter system" for the HASP MULTI-LEAVING Remote
Job Entry support for the IBM System/3 to allow a
customized workstation program to be transmitted to
the Remote System/3. See the HASP Remote Terminal
Operator's Guide for the System/3 for instruction on
the use of this deck.
Installations ordering this program to obtain the HASP MULTILEAVING workstation programs for use'with non-HASP systems should
refer to Section 10.4 of the HASP SYSTEM Manual for procedural
information.
The HASP-II SYSTEM has Programming Service Classification A. If,
in the future, a new release is made available for this program,
the period that Version 3, Modification Levell will remain "current"
for programming service purposes will be specified at the time of
the new release.
HASP, Version 3 Modification Levell incorporates all PTFs applicable to HASP Version 3 Modification Level 0 through DPA5427. No
PTF before and including DPA5427 should be applied to Version 3,
Modification Levell. Your local IBM representative will discuss
the standard error reporting (APAR) procedure.
This program has been registered by system type and is listed under
the name and address shown on your order. Program modifications,
as and when made by IBM will be sent to this same address. Should
there be a change in your system type or in your address, we would
appreciate your notifying your local IBM branch office.
Any discrepancy between the material received and the material ordered, or any errors in reproduction should be reported to the
Manager of the Program Library providing your programming systems.
Enclosures
Program Information Department
---- -- ---- ----
----- ------ ---- -_.-
~.
..... a p~og~am Library
~ Japan, Ltd.
Systems Engineering Dept.
14,1 Chome Nagata-cho
Chiyoda-ku
Tokyo,Japan
Canadian Program Library
IBM Canada Ltd.
Department 960
5 Yorkland Boulevard
Willowdale, Ontario
Canada
European Program Library
IBM France
23, Allee-Maillasson
F.92-Boulogne-Billancourt
France
Societe Anonyme Au Capital de
620.256.000 F-R.C.
(Seine 55B-11 846)
Program Information Dept.
IBM Corporation
40 Saw Mill River Road
Hawthorne, New York 10532
United States
South American
Program Library
IBM do Brasil, Ltda.
Avenida Presidente
Vargas 642, 4 Andar
Caixa Postal 1830-ZC-00
Rio de Janeiro, Brazil
South Pacific
Program Library
IBM Australia, Ltd.
Box 3318 G.P.O.
Sydney, N.SW.
Australia
June 26, 1972
Memorandum to:
Recipients of the HASP II System (360D-05.1.0l4)
Version 3, Modification Levell
Subject:
New and Replacement pages for the HASP II System
Manual
Attached are new and replacement pages for the "HASP II System
Manual. These pages have been reproduced in such a manner
as to easily replace their corresponding pages in the HASP II
System Manual.
Program Information Department
3M399B
THE
HAS P
SYST EM
FEBRUARY 26, 1971
TYPE III PROGR~lS WITH
SERVICE A CLASSIFICATION
Type III programs which were given Service A Classification, perform
functions which may be fundamental to the operation and maintainance
of the user's system. These programs have not been subjected to
formal test by IBM.
Until reclassified, IBM will provide for these Type III programs
the follovling: (a) Central Programming Service including design error
correction and automatic distribution of corrections; (b) Field
Engineering Programming Service including design error verification,
Authorized Programming Analysis Report (APAR.) documentation and
submission, and application of Program Temporary Fixes or development
of an emergency by-pass when required.
IBM does not guarantee service results or represent or warrant that
all errors will be corrected. The user is expected to make the final
evaluation as to the usefulness of these programs in his own
environment.
THE FOREGOING IS IN LIEU OF ALL WARRANTIES, EXPRESS OR IHPLIED,
INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRl~NTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
HAS P
PREFACE
This document contains complete instructions for the
generation and use of the HASP SYSTEM.
Also included is detailed
information concerning the internal structure and implementation
techniques of HASP to serve as an aid to systems programmers.
The various HASP OPERATOR'S GUIDES, intended for use as removable
sections, are included as Section 11 of this manual.
HAS P
MAGNETIC TAPE KEY
BASIC
This volume contains two files as described below.
File 1
- Assembled object decks and JCL necessary to perform
a HASPGEN (refer to Section 10 of this manual for
information concerning use of this tape).
Records - 428; Characters/block - 80;
Records/block - 1; Blocks/file - 428.
File 2
- Source decks for HASP-II, Version 3.1.
Records - 52,705; Characters/block - 1600;
Records/block - 20; Blocks/file - 2636.
*Optional
System/3 users only - 138 96-column cards. This deck is a
"starter system" for the HASP MULTI-LEAVING Remote Job Entry
support.
*Optional material will be forwarded only
requested.
whe~
specifically
HAS P
TABLE OF CONTENTS
Section
Page
1.0
- Introduction
1
2.0
- General Description
3
3.0
- HASP Structure
7
3.1
- Allocation of Main Storage
12
3.2
- Allocation of Direct-Access Space
17
3.3
- Allocation of Input/Output units
20
3.4
- Allocation of Central Processing unit Time
22
3.5
- Allocation of Programs
24
3.6
- Allocation of Jobs
26
3.7
- Allocation of Overlay Areas
29
4.0
- HASP Processors
31
4.1
- Input Service Processor
32
4.2
- Execution Control Processor
48
4.3
- Output Service Processor (Print and Punch)
62
4.4
- Purge Processor
76
4.5
- HASP Command Processor
77
4.6
- Operator Console Attention Processor
98
4.7
- Checkpoint Processor
99
4.8
- Asynchronous Input/Output Processor
101
4.9
- HASP Log Processor
102
4.10 - Operator Console Input/Output Processor
103
4.11 - Timer Processor
105
4.12 - Remote Terminal Processor (STR Model 20)
106
Table of Contents - Page i
..
HAS P
Page
section
4.13 - Remote Terminal Processor (System/360)
119
4.14 - Remote Terminal Processor (1130)
138
4.15'- Execution Task Monitor Processor
190
4.16 - Internal Reader Processor
193
4.17 - MULTI-LEAVING Line Manager
195
4.18 - Remote Console Processor
197
4.19 - Execution Thaw Processor
199
4.20 - Overlay Roll Processor
200
4.21 - HASP 5MB Writer
202
4.22 - Priority Aging Processor
204
4.23 - Remote Terminal Processor (System/3)
205
5.0
- HASP Control Service Programs
243
5.1
- HASP Dispatcher
244
5.2
- Input/Output Supervisor
246
5.3
- Job Queue Manager
247
5.4
- Buffer Manager
250
5.5
- unit Allocator
251
5.6
- Interval Timer Supervisor
252
5.7
- $WTO Processing Routine
254
5.8
- Direct Access Storage Allocator
255
5.9
- Disastrous Error Handler
257
5.10 - Catastrophic Error Handler
258
5.11 - Trace Effector
259
5.12 - WTO/WTOR Processing Routine
262
5.13 - Console Buffering and Queueing Routines
266
Table of Contents - Page ii
HAS P
Section
Page
5.14 - Input/Output Error Logging Routine
269
5.15 - Remote Terminal Access Method
272
5.16 - Overlay Service Routines
280
6.0
- Miscellaneous
287
6.1
- HASP Initialization
288
6.2
-. HASP Initialization SVC Routine
297
6.3
- HASP Overlay Build Utility
299
6.4
- HASP REP Routine
302
6.5
- HASP Accounting Routine
305
6.6
- HASP Dump Routines
306
7.0
- HASPGEN and RMTGEN Parameters
309
7.1
- HASPGEN Parameters
310
7.2
- RMTGEN Parameters for System/360 Model 20 STR
422
7.3
- RMTGEN Parameters for System/360 Model· 20 BSC
427
7.4
- RMTGEN Parameters for System/360
446
7.5
- RMTGEN Parameters for 1130
466
7.6
- RMTGEN Parameters for 1130 Loader
481
7.7
- RMTGEN Parameters for System/3
485
7.8
- RMTGEN Parameters for 2922
504
8.0
- HASP Control Table Formats
505
8.1
- HASP Communication Table Format (HCT)
506
8.2
- Processor Control Element Format (PCE)
521
8.3
- Buffer Format (IOB)
527
8.4
- Console Message Buffer Format (CMB)
544
8.5
- Device Control
8.6
- Job Queue Element Format (JQE)
~able
Format (OCT)
546
567
Table of Contents - Page iii
HAS P
Page
Section
8.7
- Job Information Table Element Format (JIT)
569
8.8
- Job Control Table Format (JeT)
570
8.9
- Track Extent Data Table Format (TED)
578
8.10 - Timer Queue Element Format (TQE)
579
8.11 - Overlay Table Format (OTB)
580
Data Definition Table Format (DDT)
582
8.13 - Partition Information Table Format (PIT)
585
8.14 - Message Allocation Control Block (MSA)
588
8.15 - Data Block Format (HOB)
589
8.12
9.0
- HASP Executor Services
591
9.1
- Buffer, Services
600
9.2
- unit Services
602
9.3
- Job Queue Services
604
9.4
- Direct-Access Space Services
613
9.5
- Input/Output Services
615
9.6
- Time Services
622
9.7
- Overlay Services
625
9.8
- Synchronization Services
632
9.9
- Debug Services
638
9.10 - Error Services
640
9.11 - Coding Aid Services
643
10.0
- HASP Maintenance Procedures
651
10.1
- Generating a H..Z\.SP System (HASPGEN)
652
10.2
- OS SYSGEN and Installing a HASP System
666
10.3
- Generating HASP Remote Terminal Programs
676
Table of Contents - Page iv
HAS P
Section
Page
10.4
- Remote Generation for non-HASP Users
687
11.0
- Operator's Guides
689
11.1
- HASP Operator's Guide
691
11.2
- HASP RTP Operator's Guide (STR Model 20)
849
11.3
- HASP RTP Operator's Guide (1978)
875
11.4
- HASP RTP Operator's Guide (1130)
907
11.5
- HASP RTP Operator's Guide (System/360)
935
11.6
- HASP RTP Operator's Guide (BSC Model 20)
963
11.7
- HASP RTP Operator's Guide (2780)
993
11.8
- HASP RTP Operator's Guide (2770)
1021
11.9
- HASP RTP Operator's Guide (System/3)
1051
11.~0
- HASP RTP Operator's Guide (3780)
12.0
- Appendices
1075
12.1
- Reference Listing of HASPJCL
1076
12.2
- HASP Storage Requirements
1080
12.3
- HASP Control Card Formats
1088
12.4
- HASP AC,counting Card Format
1097
12.5
- HASP Print and Punch ID Formats
1098
12.6
- HASP Coding Conventions
1101
12.7
- General HASP Restrictions
1103
12.8
- HASP JCL Processing Program
1106
12.9
- HASP /RJE 'Line Transmission Techniques (STR)
11'22
1074.1
12.10 - HASP Internal Reader
1,135
12.11 - MULTI-LEAVING
1139'
Table of Contents - Page v
HAS P
Section
Page
12.12 - HASP 2770 RJE Support
1155
12.13 - HASP Execution Batch Scheduling
1159
12.14 - HASP Overlay Programming Rules
1163
12.15 - HASP with OS Console Support
1167
12.16 - Multiple Devices on MULTI-LEAVING Remotes
1172
12.17 - 3211 Forms Control Buffer Additional Loads
1174
Table of Contents - Page vi
HAS P
1.0
INTRODUCTION
The HASP SYSTEM operates as a compatible extension to the MFT or
MVT options of the Operating System for System/360 and System/370
to provide specialized supplementary support in the areas of job
management, data management, and task management.
HASP appears as a transparent "front-end" processor to OS to,
via the SPOOLing functions normally associated with OS input
readers and output writers, act as an automatic scheduler
and operator of Os. Because of this relationship between HASP
and the Operating System, various other functional, performance
and operational benefits can be included in HASP.
The use of HASP offers an installation the following advantages:
•
IMPROVED PERFORMANCE - In many cases, because of the
singular, specialized use of resources by HASP, system
performance may be improved. Any improvement is dependent
upon the configuration and job mix and can only be determined by actual measurement.
(See Section 2 of this manual
for additional details.)
•
IMPROVED OPERATIONAL PROCEDURES - HASP acts as an automatic
interface between the operator and OS, to perform various OS
control functions previously done directly by the operator.
Readers, Writers and Initiators in OS are started and scheduled automatically by HASP. Also, many additional operator
commands for controlling job flow and device operation are
provided by HASP.
(See Section 11 of this manual for
additional details.)
•
INCREASED SYSTEM FUNCTION - The use of HASP provides certain
functions which are not otherwise available.
These include
dynamic task ordering based upon CPU - I/O characteristics
(see Section 2 for additional details); the inclusion of
relevant console messages in each job's output (see Section 7
for additional details); the capability of any job to introduce another job into the HASP queue via an internal reader
(see Section 12.10 for additional details); an execution
batching facility to pass jobs directly to a processing program such. as a one-step monitor (see Section 12.13 for addi~
tional details); many additional operational control functions
(~ee Section 11 for additional details); a priority aging
technique (see Section 4.22 for additional details); a preexecution volume fetch facility (see Section 11 for additional
details); and various other functional enhancements.
•
RESOURCE REDUCTION - Because of the dynamic direct-access
allocation techniques utilized by HASP; installations may, in
general, reduce the number of direct-access volumes required
Introduction - Page 1.0-1
1
II ASP
for SPOOLing functions as compared with a non-HASP SYSTEM.
The size of the OS SYSI.SYSJOBQE data set may also be
reduced since all job queueing is performed by HASP.
Certain installations may actually reduce system main storage
requirements (increase problem program space available) by
adding HASP to their system because of the OS functions
replaced by HASP.
In any case, the space required for the
HASP partition or region will be at least partially compensated for by the elimination of duplicate functions.
•
LOW-ENTRY, HIGH-PERFORMANCE REMOTE JOB ENTRY - For a nominal
increase in the size of HASP, an installation can utilize the
HASP RJE support for a wide variety of workstation devices.
Support for Binary-Synchronous, CPU workstations employs an
advanced technique called MULTI-LEAVING which provides for
simultaneous operation of all devices on a remote workstation.
A subset of the HASP operator command language is provided to
all remote sites. Workstation programs are supplied for all
supported CPU workstations.
(See Section 12.11 for additional details.)
•
TRANSPARENT OPERATIONS - HASP is, in general, transparent to
both the Operating System and to user programs. Although
a special SYSGEN is required, no actual modifications to as
are required to utilize HASP. Thus, the same generation of
OS may be interchangeably used with or without HASP. Because
of this transparency, HASP is generally independent of the
OS release level or options selected and can be used as a
stable base for local modifications to customize for local
operational requirements.
Most standard jobs which operate under as can be run with
absolutely no change in a HASP environment. Most installations
can, therefore, implement HASP with little or no changes to
current user programs.
Introduction - Page 1.0-2
2
HAS P
2.0
GENERAL DESCRIPTION
HASP is a specialized program which operates in the same CPU
with OS/360 to perform the peripheral functions associated with
batch job processing.
HASP is loaded as a normal OS/360 program and upon gaining
control enters the supervisor mode via a special SVC routine.
Control of all on-line unit record devices is assumed, the
designated intermediate storage direct-access device(s) are
initialized and job processing begins. The basic interface between HASP and OS/360 is through the Input-Output Supervisor (lOS).
The entry point of lOS is modified so that Input-Output requests
to unit record devices are diverted to HASP rather than being
physically executed by lOS. Jobs which have been previously read
from physical input devices by HASP can now be passed to OS by
simulating a successful completion of the intercepted I/O request.
In a similar manner, print and ~unch output from jobs being processed by OS/360 can be intercepted and queued on intermediate
storage for later transcription to unit record devices.
HASP has four major processing stages which account for its four
major external functions.
These are:
1.
INPUT STAGE - This stage reads jobs simultaneously from an
essentially unlimited number of various types of on-line
card readers, tapes and remote terminals into the system.
These jobs are then entered into a priority queue by job
class to await processing by the next stage.
2.
EXECUTION STAGE - This stage removes jobs based upon priority
and class from the queue established by the Input stage and
passes those jobs to OS/360 for processing.
Input cards are
supplied as required to the executing program and print and
punch records are received and written onto HASP intermediate
storage. This stage can simultaneously control an essentially
unlimited number of jobs being processed by OS/360. At the
completion of a job, it is placed in a queue to await processing by the next stage.
3.
PRINT STAGE - The purpose of this stage is to transcribe the
printed output generated by jobs in the previous stage to
printers. An essentially unlimited number of various types
of printers and remote terminals can be operated simultaneously.
4.
PUNCH STAGE - This stage transcribes the punch output generated
by jobs in the execution phase to punches. An essentially
unlimited number of various types of punches and remote
terminals can be operated simultaneously.
General Description - Page 2.0-1
3
HAS P
All of the these processes are controlled by re-entrable code
so that no additional code is required to support multiple,
simultaneous functions.
Since all of the above functions can
occur simultaneously and asynchronously, a continuous flow of
jobs may pass through the system.
Following are some of the more significant algorithms employed
by HASP to improve function and performance:
•
SPECIALIZED DIRECT-ACCESS STORAGE ALLOCATION
HASP, through the use of an allocation bit map in main
storage, dynamically allocates space for intermediate
storage on a record basis, within definable track groups,
for jobs. The use of this technique offers the following
advantages:
•
1.
Disk-arm motion and interference is minimized by
dynamically allocating space based upon the position
of the access mechanism.
2.
Disk area fragmentation is automatically eliminated
by allocation of the smallest possible increment of
space.
3.
The data for a single data set can be spread across
multiple direct-access volumes.
In addition to further
optimizing arm motion, this capability allows for the
simultaneous use of multiple selector channels to
increase the data rate for a given job.
4.
Since space is allocated only when required, there
will be no unused space as a result of over estimated
output requirements.
5.
The release of previously used space is accomplished
by a simple algorithm which requires no I/O operations.
UNIT RECORD DEVICE COMMAND CHAINING
While operating any reader, printer or punch, rather than
handling each record separately, HASP constructs a chained
sequence of channel command words to pass to the channel.
Thus, instead of the overhead of an EXCP and the ensuing
interrupts for each record transmitted, only one EXCP and
associated interrupt is required for a series of records.
For example, when reading a job into the system, HASP might
chain 40 commands together to instruct a card reader. This
General Description - Page 2.0-2
4
HAS P
would cause the next 40 cards to be read irito memory without
requiring the execution of any CPU instructions.
•
TRANSPARENT BLOCKING
All input, print and punch for every job is automatically
blocked by HASP to improve performance. Since all deblocking
is also done by HASP, any program even if designed to operate
with unblocked records can benefit from the blocking. Also,
because all blocking and deblocking is done by HASP, problem
programs require buffers only the size of a single card or
line.
This can reduce a program's partition or region requirement by several thousand bytes over normal full track blocking.
•
DYNAMIC BUFFER POOL
HASP maintains a dynamic area of memory which is allocated as
required.
This technique allows not only multiple data sets
of a job, but multiple jobs to share this area, thereby
insuring optimum use of storage.
•
EXECUTION TASK MONITOR
A significant item contributing to system performance is the
correct ordering of dispatching priorities of jobs in relation to their CPU-I/O utilization ratios.
It is obviously
straightforward to manually set the dispatching priorities
of two jobs, one of which is completely I/O-bound and the
other completely CPU-bound.
It becomes more difficult to
determine relative priorities of multiple jobs with varying
degrees of CPU-I/O ratios and impossible to determine priorites for multiple jobs which constantly change from CPU to
I/O bound or vice versa.
HASP provides a feature which, at frequent intervals, examines
each eligible job and dynamically re-orders the OS dispatching
chain based upon the measured CPU-I/O characteristics of the
jobs during the previous interval. This capability relieves
an installation of the responsibility of attempting to assign
job dispatching priorities while insuring the optimum ordering.
of jobs being processed by the Operating System.
General Description - Page 2.0-3
5
HAS P
(The remainder of this page intentionally left blank.)
6
HASP
3 .0 HASP STRUCTURE
The primary goal in the design of any execution support system such
as HASP must be the efficient manipulation of the various resources
required for processing.
The first design steps must then include the
determination of what resources will be required and the careful application
of sound programming design techniques to achieve an efficient and
consistent solution to the allocation of these resources.
A study would reveal that HASP requires the following resources:
1.
Main Storage
2 • Direct-Access Space
3 • Input/Output Units
4.
Central Processing Unit Time
5.
Input/Output Channel and Unit Time
6.
Programs
7. Jobs
8.
Interval Timer
Since these resources are essentially the basic facilities provided by
the Operating System
I
it would at first seem that these facilities would
be sufficient to meet the requirements of HASP.
Further studies show,
however, that the philosophie-s of the Operating System's services are not
always consistent with the deSign requirements of a system such as HASP.
HASP Structure - Page 3.0-1
7
HASP
For instance the main storage services provided by the Operating
I
System are very flexible and comprehensive but fail to meet the requirements of HASP in the following areas:
•
As requests for main storage are serviced
I
memory becomes
fragmented in such a way that eventually a request for
storage cannot be serviced for lack of contiguous memory
even though the total amount of storage available far
exceeds the requested quantity.
•
As the amount of available storage decreases
I
the
requestor becomes more susceptible to being placed in
an OS WAIT state or being ABENDed.
These conditions are
both intolerable to HASP.
•
The primary use of main storage in HASP is for buffering
space for input/output purposes. These input/output purposes require that an Input/Output Block be associated
with each segment of main storage which the Operating
System Main Storage Supervisor only naturally does not
I
I
provide. This means that HASP would have to construct
such a block for each main storage segment it required.
HASP Structure -Page 3.0-2
8
HASP
In a similar fashion the Direct-Access Device Space Manager
(DADSM) provides flexible and comprehensive services for normal
job processing requirements but fails to meet the requirements of
HASP in the following areas:
•
Because of the data set concept employed by DADSM,
the "hashing" or "fragmentation" problem described
above also impacts the allocation of direct-access
space.
•
The data set concept complicates the simultaneous
allocation of storage acros s many volumes (for
selector channel overlap).
•
The DADSM limit of extents per volume tends to cause
volume switching, and the as sociated time delays are
intolerable to HASP.
•
DADSM consists of non-resident routines which must
be loaded for each direct-access space allocation
service.
Because of the frequent allocation requirements,
the associated overhead involved in the loading of these
routines would degrade the performance of HASP to a
certain extent.
HASP Structure - Page 3.0-3
9
HASP
Since the unit-record input/output units which the scheduler
allocates to the jobs being processed in other partitions must be
available for use by HASP
I
HASP must be responsible for the allo-
cation of its own input/output units.
The Operating System Task Supervisor is responsible for the
allocation of Central Processing Unit (CPU) time to all tasks in the
system. The different functions of HASP (reading cards
I
printing
I
punching, etc.) could be defined as individual OS tasks except
for the following considerations:
•
Defining each function as a separate task would
prohibit HASP from being used with anything other
than a variable-task system.
•
Inter-task communication and synchronization is
many times more complex than intra-task communication and synchronization.
The Operating System Input/Output Supervisor is responsible
for the allocation of all input/output channel and unit time. It
completely meets all requirements and is used by HASP for all
input/output scheduling.
HASP Structure - Page 3.0-4
HASP
The Operating System Interval Timer Supervisor provides complete
interval timer management services but limits these services to one
user per task.
Since HASP has many functions which have simultaneous
interval timer requirements, an interface must be provided which will
grant unlimited access to the OS Interval Timer Supervisor.
The following sections describe, in detail, the allocation techniques
and algorithms used in HASP to provide the allocation of the resources
listed above.
HASP Structure - Page 3.0- 5
11
HAS P
3.1 ALLOCATION OF MAIN STORAGE
The main storage requirements of HASP are as follows:
•
Storage space for buffering card images and print lines
between intermediate direct-access storage devices
and unit-record devices.
•
Storage space for normally non-resident control tables
during times when they are resident in main storage.
•
Storage for console messages which have been queued
for output to or input from one or more operator consoles.
•
Storage for elements which reflect the status of all jobs
which are queued for any stage of processing by HASP.
•
Storage space for non-resident processing routines (overlays) during times when they are in main storage.
The HASP Buffer Pool
The first two requirements for main storage are provided for by the
HASP Buffer Pool, a group of buffers with the following basic format:
Allocation of Main Storage - Page 3.1-1
HAS P
Input/Output
Block
(IOB)
buffer control
information
buffer
work
space
Figure 3. 1 • 1 - The HASP Buffer
Since the use of this buffer always involves some input/output
activity
I
a standard Operating System Input/Output Block (lOB) is pro-
vided with each buffer for the purpose of being used to initiate this
input/output activity.
The "buffer control information
ll
area is an extension of the lOB used
by HASP for input/output synchronization.
The "buffer work space" is a fixed-length (set by HASPGEN) area into
which data is read and/or out of which data is written.
In addition to a fixed number of buffers (set in accordance with region
or partition size)
I
the buffer pool contains a one-word control field called
the Buffer Pool Control Block which contains the address of the first available buffer in the buffer pool.
Each available buffer contains the addres s
Allocation of Main Storage - Page 3. 1-2
13
HASP
of the next available buffer with the last available buffer containing a
zero address. If no buffers are available, the Buffer Pool Control
Block contains zero.
The above technique is called
.II
chaining, II the buffers are said
to be "chained," and the field containing the addres s of the next
element in the chain is referred to as the "chain field.
II
Chaining
is used throughout HASP for the maintenance of resources.
To obtain an available buffer from the buffer pool, the Buffer Pool
Control Block is tested for an available buffer. If one exists it is
removed from the available chain by moving its chain address into the
pool control block.
To release a buffer to the available chain, the contents of the
pool control block are moved to the chain field of the buffer and the
I
addres s of the buffer is placed in the pool control block.
The Console Message Buffer Pool
The third requirement for main storage is provided for by the
Console Message Buffer Pool. This buffer pool is organized similarly
to the HASP Buffer Pool except for the format of the buffers which is
as follows:
Allocation of Main Storage - Page 3.1-3
14
HASP
chain field
work
space
/
Figure 3.1.2 -
The Console Message Buffer
Since rOB's are provided for each console, it is not necessary to
provide such a control block with each buffer.
The length of the work space is consistent with the maximum
length of a console message.
Buffers in this buffer pool are obtained and released by exactly
the same procedure used in the HASP Buffer Pool.
The HASP Job Queue
The fourth requirement is provided for by the HASP Job Queue.
For more information about this facility see section 3.6.
Allocation of Main Storage - Page 3.1-4
15
The HASP Overlay Area Pool
The HASP Overlay Area is similar to the HASP Buffer in format;
however
I
the size of the "work space" is set to accommodate the
largest non-resident HASP control-section (CSECT). Although the
fixed number of overlay areas (set by HASPGEN) are chained together
I
control fields indicate the area status and contents for the purpose
of sharing areas containing the same CSECT or for selecting an area
to overlay with a new CSECT.
Allocation of Main Storage - Page 3. 1- 5
16
HAS P
3.2
ALLOCATION OF DIRECT-ACCESS SPACE
The direct-access allocation technique employed by HASP must
meet the following requirements:
•
It must use a minimum of CPU time.
•
It must not use an excessive amount of main storage.
•
It must not be susceptible to the "hashing" or
"fragmentation" problem.
•
It must be capable of allocating for any direct-access
device which is supported by Operating System/360.
•
It must be device transparent to the user.
•
It must be consistent with the checkpoint/restart
technique used by HASP.
The HASP Track Address
The standard Operating System track address is defined to be an
eight-byte field with the following format:
where:
M
BB
CC
HH
R
=
=
=
=
=
Module
Bin
Cylinder
Head
Record
Figure 3.2.1 - The Operating System Track Address Format
For the purpose of HASP, this track address can be reduced to a
four-byte field with the following format:
where:
M
TT
R
= Module
(DEB extent number)
True Track Number
= Record
=
Figure 3.2.2 - The HASP Track Address Format
Allocation of Direct-Access Space - Page 3.2-1
17
HAS P
The reduction in the length of the track address permits it to
be kept ina single word of storage or in a general purpose
register simplifying the handling of the track address.
The HASP Master Track Group Map
The HASP Master Track Group Map is a table which represents the
sum total of all track groups or logical cylinders available on
all HASP direct-access SPOOL volumes.
(A track group contains
one or more tracks which are considered a single resource.)
Each bit in the HASP Master Track Group Map represents a single
track group on one direct-access volume.
If the bit is one, it
indicates that the corresponding logical cylinder is available
for allocation; if the bit is zero, the logical cylinder is not
available to HASP or has already been allocated by HASP.
The HASP Job Track Group Map
The HASP Job Track Group Map is identical to the HASP Master Track
Group Map except that one word has been added to the front to save
the last track address which was allocated to the particular job
with which the map is associated.
The bits in the Job Track Group
Map represent the same track groups as the bits in the Master Track
Group Map except that a one bit indicates that the respective track
group has been allocated to the associated job and a zero indicates
that the group has not been allocated to the job.
last track address
track group
Figure 3.2.3 - The HASP Job Track Group
Two Job Track Group Maps are associated with each job. One represents the track groups used to contain the input data (SYSIN),
and the other represents the groups used to contain the output
data (SYSPRINT and SYSPUNCH).
Allocation of Direct-Access Space - Page 3.2-2
.18
HAS P
Direct-Access Space Allocation Procedures
When the direct-access space allocation subroutine is entered, it
first examines the first four bytes of the appropriate Job Track
Group Map to determine if a new track group is required.
A new
group is required whenever no tracks have been allocated to this
job (the last track address is zero) or if all of the tracks in
the last group allocated have been used.
If a new track group is not required, the record or head field of
the last track address is incremented to provide a new track
address.
If a new track group must be allocated, the Master Track Group
Map is scanned for an available group. When the next group to
be allocated is determined, the appropriate bit in the Master Track
Group Map is set to zero, and the corresponding bit in the Job
Track Group Map is set to one.
A track address is then constructed
to represent the first track in the new group, and this track
address is saved in the first four bytes of the Job Track Group Map.
When any direct-access input/output operation is initiated by HASP,
the HASP I/O interface saves the cylinder which was referenced
by module.
When a new track group must be allocated, the allocation routine first tries to allocate a group corresponding to
the last cylinder referenced on each module.
If these groups are
not available, the routine attempts to allocate within one cylinder
of the last references.
If track groups within these cylinders are
not available, the routine tries to allocate a group within two
cylinders, and so on, until the entire track group map has been
examined.
Direct-Access Space De-Allocation Procedure
To de-allocate the direct-access space allocated to a particular
function, it is necessary only to "OR" the track group map portion
of the Job Track Group Map associated with the particular function
into the Master Track Group Map.
This will reset to one all bits
in the Master Track Group Map which correspond to the track groups
which have been allocated to the particular function.
Allocation of Direct-Access Space - Page 3.2-3
19
HASP
3.3 ALLOCATION OF INPUT/OUTPUT UNITS
The HASP Device Control Table (DCT) is used by HASP to allocate
all input/output units. It has the following basic format:
status
device type
other
control
information
device name
work
space
Figure 3.3.1 -
The "status
II
The HASP Device Control Table (DCT)
field is used to indicate whether the device is available
and whether it is in use.
The "device type" field specifies whether this DCT represents a card
reader printer punch or other type of I/O device.
I
I
I
The "other control information" field contains such information as
the Data Control Block (DCB) address
operator commands
I
I
the chain address
I
indications of
and other fields for. synchronization purposes.
Allocation of Input/Output Units - Page 3.3-1
20
HAS P
The "device name" field contains an eight-byte EBCDIC device
name (such as READER1) which is primarily used for console messages.
The "work space" is a device dependent area used by some devices
for extended control of the device.
All DCT's are chained together for allocation purposes.
Theyare
initialized by the HASP initialization phase if the associated devices
are attached to the system.
Input/Output Device allocation consists of "running" the DCT
chain and looking for a DCT of the specified type which is available
and which has not been allocated.
If one is found, the" in use" bit
is set to one to indicate that the device has been allocated.
De-allocation consists of setting the
II
in use" bit to zero.
The Device Control Table is also used as a parameter list whenever
Input/Output activity is initiated through the HASP I/O interface.
Allocation of Input/Output Units - Page 3.3- 2
21
HASP
3 .4 ALLOCATION OF CENTRAL PROCESSING UNIT TIME
The Operating System controls the allocation of Central Processing
Unit (CPU) time to different tasks through the means of a Task Control
Block (TCB) chain. In a similar fashion, HASP controls the allocation
of CPU time to the different functions within HASP through the means
of a Processor Control Element (PCE) chain. The basic format of the
Processor Control Element is as follows:
as
save
area
event wait field
chain field
processor
work
space
Figure 3.4.1 -
HASP Processor Control Element (PCE)
Whenever a particular function is being processed, general purpose
register 13 always contains the address of the Processor Control Element
which is allocating the time to that function.
eighteen words of the PCE are a standard
For this reason the first
as register save
area.
Allocation of Central Proc'es sing Unit Time - Page 3.4'""1
22
HAS P
The "event wait field" is a two-byte field which describes the
dispatchability of the function under the control of this PCE.
If this
field is zero, the function is dis patchable. If this field is non- zero,
the function is not dispatchable and the bit which is one specifies
upon what event the function is "waiting ".
The "chain field" contains the addres s of the next PCE in the PCE
chain.
The" processor work space" is a variable length area which is used
by the program processing the function as a scratch area.
HASP searches the PCE chain looking for a PCE which is dispatchable.
When a dispatchable PCE is located, the general purpose registers are
loaded from the PCE/OS save area and control is passed to the location
specified in register 15.
When control is returned to the dispatching program
I
the general pur-
pose registers are saved in the PCE and the search for dispatchable PCEs
continues.
If a notable event occurred since the last PCE dispatch such
as the freeing of a common resource or the "posting" of a specific event,
the search starts at the beginning of the PCE chain; otherwise, it starts
with the PCE following the last dispatched.
The program returning control
to the dispatching program must set the return address in register 15 before
returning.
When no PCEs are found to be dispatchable
as
I
the HASP task enters an·
WAIT state to allow the Operating System to allocate CPU time to other
tasks.
Allocation of Central Processing Unit Time - Page 3.4-2
23
HAS P
3.5 ALLOCATION OF PROGRAMS
i
The programs of which HASP is composed can be divided into
the following classifications:
•
The Dispatcher
•
Processors
•
Control Service Programs
•
Miscellaneous Programs
The Dispatcher is the dispatching program described in Section
3.4. Its function is to distribute CPU time among the various processors
described below.
Processors are programs which control the execution of various HASP
functions such as reading cards
I
printing, punching, etc. With each
processor is always associated at least one Processor Control Element
which causes the dispatcher to give control to the-processor and allows
the processor to synchronize with various HASP events. The PCE work
space also permits the processors to be written re-enterably such that by
defining more than one PCE for a given processor, the processor can control
an essentially unlimited number of functions simultaneously.
For instance,
by defining ten PCEs for the Print Processor up to ten printers can be serI
viced simultaneously utilizing and requiring only one copy of the processing
program.
Allocation of Programs - Page 3.5-1
24
HASP
The Control Service Programs are subroutines used by the processors
in accomplishing their functions.
By using the peE/OS save area, the
control service programs can maintain the re-enterability of the
proces sors .
Miscellaneous Programs are those special purpose programs which
do not fall into any of the other thre.e categories
I
such as the HASP
Initialization Program. They are executed only once and need not be
considered in the normal HASP job flow .
Allocation of Programs - Page 3.5- 2
25
HASP
3.6 ALLOCATION OF JOBS
HASP maintains its job pointers in the HASP Job Queue, a table of
elements with the following basic format:
priority
type
job number
chain address
JCT track
Figure 3.6. 1 -
The HASP Job Queue Element
The "priority" represents the dynamic priority of the job within the
HASP system.
The "type" represents the function for which the element is queued
or the function in which the job is currently being processed.
The "job number" is the number sequentially assigned to each job
by HASP as it enters the system.
The "chain address" is the address of the next element in the chain.
Allocation of Jobs. - Page 3. 6-1
26
HASP
The" JCT track
II
is the track address of the HASP Job Control Table
described below.
Two chains are maintained in the Job Queue.
The first chain
represents those jobs which are currently awaiting processing or being
processed.
priority.
Elements in this chain are chained in the order of their
The second chain represents the inactive or unused queue
elements.
To add a job to the job queue
the inactive chain
I
I
a queue element is obtained from
initialized with the information shown in figure
3.6.1, and inserted into the active chain according to its priority.
To obtain a job from the job queue, the active chain is searched
for an element of the specified type. When found
I
the "type" field is
modified to reflect the fact that the job is now being processed
To return a job to the job queue
active chain to the inactive chain
here
I
c
I
8
the element is moved from the
Since the priority is of no concern
the element is placed at the head of the chain.
The HASP Job Control Table {JCTl
The HASP Job Control Table contains all of the information neces sary
to process the associated job in the following basic format:
Allocation of Jobs - Page 3.6-2
27
HAS P
data from
JOB Card
accounting
information
first input track
input job
track group map
output job
track group map
work space
output data
set tracks
Figure 3.6.2 - The HASP Job Control Table (JCT)
The HASP Job Control Table is normally resident on a direct-access
intermediate storage device.
obtained
I
Once the HASP Job Queue Element is
the "JCT track II in the element can be used to initiate a read
into a HASP Buffer.
Once this read has been completed
I
all information
necessary to process the job can then be obtained.
Allocation of Jobs - Page 3. 6- 3
28
HAS P
3.7
ALLOCATION OF OVERLAY AREAS AND NON-RESIDENT CONTROL SECTIONS
Portions of the various programs of which HASP is composed are
organized into non-resident control sections (CSECTs) and stored
in an overlay library (OLAYLIB) on a direct-access volume.
These
control sections contain HASP re-entrant subroutines and/or data
which may be requested for use by a Processor.
The user obtains an Overlay Area by requesting from the overlay
control service program for use of a non-resident CSECT.
If the
CSECT requested is in main storage, the user is allowed to use
the Overlay Area for processing.
If, however, the CSECT is not
already in an area, an area must be selected to hold the requested
CSECT.
The requesting Processor is made to "wait" until the
requested CSECT is read from direct-access into main storage.
The algorithms for Overlay Area allocation cause multiple users
of the same CSECT to use only one area, into which that CSECT is
read.
Competition for areas is resolved partially by the priority
associated with each overlay CSECT.
However, a "pre-empting"
(roll) algorithm prevents any Processor from being indefinitely
delayed, even if the system has only one Overlay Area.
The user releases an Overlay Area by requesting that overlay
services remove his PCE from association with the area.
Allocation of Overlay Areas - Page 3.7-1
'10
HAS P
(The remainder of this page intentionally left blank.)
30
HAS P
4.0
HASP PROCESSORS
This section contains detailed internal information about each of
the HASP Processors and is intended primarily for use by system
programmers.
HASP Processors -- Page 4.0-1
31
HAS P
4.1
INPUT SERVICE PROCESSOR
4.1.1
INPUT SERVICE PROCESSOR - GENERAL DESCRIPTION
The functions of the Input Service Processor are as follows:
To read card images from an input device.
To detect and scan JOB cards, extracting parameters for
job accounting, job control, and print and punch identification.
To detect and process other control cards such as the
PRIORITY, MESSAGE, ROUTE, SETUP, COMMAND, DD*, and DD
DATA cards.
To assign a unique HASP job number to each job.
To log jobs into the HASP System.
To assign job priority based upon PRIORITY card or JOB
card parameters.
To generate, from cards read, a JCL file and input data
files, and to record these files on direct-access storage
device(s) for later use by the Execution Control Processor
(see Section 4.2).
To generate HASP Job Control Tables, Job Queue Entries,
and other HASP control blocks required for later job processing.
To queue jobs for processing by the Execution Control
Processor.
The Input Service Processor is coded re-enterably in such a
way that it can accept jobs from a number of different input
devices (with different hardware characteristics) simUltaneously. The re-enterability is attained by retaining all
storage unique to a job in the Processor Control Element
(see figure 4.1.1) which must be unique for each input device.
4.1.2
INPUT SERVICE PROCESSOR - PROGRAM LOGIC
The Input Service Processor is divided into three phases, 13
subroutines, and three non-process exits. This section will
give a functional description of each of these phases, subroutines, and exits to aid the System Programmer in gaining
a working knowledge of the processor.
Input Service Processor - Page 4.1-1
32
H. ASP
PHASES
Phase 1 - Processor Initialization
The Initialization Phase, which is written as an overlay segment, begins by attempting to acquire an input device.
If
no input device is available, the processor is placed in a
HASP $WAIT state until a device is made available; whereupon
the entire procedure is repeated until an input device is
available. Upon acquiring an available input device the
processor continues by acquiring a Device Control Table (DCT)
for the direct-access device(s) and a HASP buffer for use as
an input buffer.
If the input device is not a remote terminal, a chain of
Channel Control Words (CCW's) is then constructed in the
input buffer which will be used to read 80-byte records from
the input device into the rest of the input buffer. These
CCWs are constructed in such a way that the input records
will be read into adjacent areas in the input buffer with as
many cards being read as the buffer will hold. The initialization of the PCE Work Area is then completed and control is
transferred to Phase 2.
If the input device is a remote terminal, transmission is
initiated by calling upon the Remote Terminal Access Method
to open the Remote Terminal Device Control Table. Control
is then passed to Phase 2.
Phase 2 - Main Processor
The Main Processor Phase reads cards from the input device,
scans each card to detect HASP control cards and processes
these cards as follows:
/*control card--The control card scan routine (HASPRCCS) is
called to process the control card and take any appropriate
action.
Job Card--The JOB card scan routine (HASPRJCS) is called to
terminate the previous job (if any), to scan the JOB Card,
and to initialize the PCE work area for the processing of
the following job.
DD* or DD DATA--A track address is obtained for the first
data block of the input data set. A dummy card is added to
the JCL file which contains the track address in columns 1-4.
Input Service Processor - Page 4.1-2
33
HAS P
This card is differentiated from other cards by setting the
control byte (see figure 8.15.1). The DD* or DD DATA statement is then added to the JCL file in normal fashion.
Control
is subsequently turned back to the main processor to process
the input data.
When a hardware end-of-file is detected on the input device,
or when "$DRAIN input device" command is entered by the operator, control is given to Phase 3.
Phase 3 - Processor Termination
Upon receiving control from the Main Processor, the Processor
Termination Phase, which is written as an overlay segment,
terminates the last job (if any), issues a rewind and unload
command to the input device if it is tape, frees the input
buffer, closes the input DCT if it is a Remote Device, releases
the input and direct-access devices, and returns control to
Phase 1.
SUBROUTINES
HASPRCCS -- Subroutine to Process HASP /* Control Cards
The HASPRCCS subroutine, which is written as an overlay segment, is called whenever the Main Processor Phase encounters
a /* control card. The control card type is first determined
and then processing continues as follows:
/*COMMAND Card -- The command is listed on the operator's console and then added to the Command Processor's
input command queue.
/*PRIORITY Card -- The previous job (if any) is terminated, the priority specified is converted to binary and
saved, and the scan is continued with the next card.
If the following card is not a JOB card, the message,
"device SKIPPING FOR JOB CARD", is written on the
operator's console, the effect of the /*PRIORITY Card
is nullified, and the input stream is scanned for
another /*PRIORITY or JOB card.
/*ROUTE Card -- The appropriate routing byte is set to
the value associated with the destination indicated.
If an invalid field is encountered, an appropriate message is issued, both to the .operator. and to the programmer,
and further job processing is bypassed.
Input Service Processor - Page 4.1-3
34
HAS P
/*SETUP Card -- The volumes to be mounted are listed on
the operator's console and the job is placed in "hold"
status.
/*MESSAGE Card -- Leading and trailing blanks are removed
and the message is routed to the operator's console.
If the control card type is not recognized, the card is ignored
and treated like any other /* card.
HASPRJCS--Subroutine to Scan and Initialize Job Control Information
The HASPRJCS subroutine, which is written as an overlay segment,
is called whenever the Main Processor Phase encounters a JOB card.
The previous job (if any) is terminated by calling the RJOBEND
subroutine. The master job number is incremented and its new
value is assigned to the current job. The job control information in the PCE Work Area (see figure 4.1.1) is initialized by
scanning the JOB card and extracting parameters relative to job
control. The first JCL block is initiated, and control is passed
to the Job Initialization Subroutine: HASPRJBI.
RSCAN - RSCANA -- Subroutine to Scan Parameters from JOB Card
This subroutine has two entry points; the entry point: "RSCAN"
is used to scan numeric parameters' from the JOB card, while the
entry point: "RSCANA" is used to scan alphameric parameters from
the JOB card. There are also two returns from the subroutine.
If return is made to the first byte following the Branch and Link
(the call) instruction, it indicates that the final parameter on
the JOB card was returned on the previous call and that there are
no more parameters.
If return is made to the fourth byte following the Branch and Link instruction, it indicates that parameter
register "RI" contains the next parameter, right-adjusted with
leading binary zeroes.
If the parameter was a "null" parameter,
"RI" will be zero.
If this subroutine detects an illegal character (such as a non-numeric character in a numeric field) or
more than four characters in a parameter, control is transferred
to the RBADJOBC subroutine.
RCONTNUE -- Subroutine to Validate Continuation Cards
This subroutine validates JCL continuation cards by ensuring
that columns I and 2 are punched with slashes and that column 3
is blank. The start of the continuation card is located and
Input Service Processor - Page 4.1-4
H. ASP
control is returned to the caller.
If an invalid continuation
card is discovered, control is passed to the illegal job card
subroutine for further processing.
REBCDBIN -- Subroutine to Convert from EBCDIC to Binary
This subroutine expects to find numeric EBCDIC characters with
leading binary zeroes in parameter register "RI". There are
two returns from the subroutine.
If return is made to the
first byte following the Branch and Link (the call) instruction,
it indicates that the parameter register now contains the binary
equivalent of the EBCDIC input.
If return is made to the fourth
byte following the Branch and Link instruction, it indicates
that the parameter register was zero (null parameter) and contained no EBCDIC to translate.
HASPRJBI -- Subroutine to Initialize Job Processing
This subroutine, which is written as an overlay segment, receives control from the JOB Card Scan Routine (HASPRJCS) and
completes the initialization of the various control blocks for
input job processing. A "job on" message is issued to the
operator, the job's priority is assigned based upon JOB card
or /*PRIORITY card parameters, and the job is queued in the
active input queue. Control is then returned to the Main Processor Phase.
RBADJOBC -- HASPRIJC -- Subroutine to Process Illegal Job Cards
This subroutine notifies the operator of an illegal JOB card,
calls the subroutine: "RJOBKILL" to delete the job, and returns
control to the Main Processor Phase.
RJOBEND -- Subroutine to Complete Job Input Processing
This subroutine tests whether the Input Processor is currently
processing a. job, and if it is not, returns control immediately.
The RJOBTERM subroutine is called to terminate the input processing of the job, and the job is queued for the Execution Control
Processor in the logical queue associated with the job's JOB
CLASS. Control is then returned to the calling program.
Input Service Processor - Page 4.1-5
36
HAS P
RGET -- Subroutine to Get Next Card from Input Buffer
This subroutine returns the address of the next card to be processed by the Input Service Processor in register "RPI".
If
the input buffer is empty or if all the cards in the input
buffer have been processed, an lOS read is staged from the input
device and the subroutine places the processor in a HASP $WAIT
state until the input buffer has been filled.
If the input
device is a remote terminal, a "call" is made on the Remote
Terminal Access Method to procure the next card.
If a permanent
error is detected on the input device, no action is taken until
after the last card has been processed and then the JOB currently
being processed is deleted with appropriate comments to the operator.
Processing then continues by scanning the input stream
for the next JOB card.
This subroutine also processes the operator commands n$STOP
input device" and "$DELETE input device" by entering the HASP
$WAIT state and calling the subroutine RJOBKILL to delete the
job, respectively.
There are two returns from the subroutine.
If return is made
to the first byte following the Branch and Link (the call) instruction, it indicates that the last card has been processed
and that an end-of-file has been ~ensed on the input device.
If return is made to the fourth byte following the Branch and
Link, it indicates that register "RPI" contains the address of
the next qard.
RPUT -- RPUTOLAY -- Subroutine to Add Card to Output Buffer
This subroutine accepts 80-byte card images and blocks them
into standard HASP Data Blocks (see section 8.15).
If the current output buffer is full, it is truncated and scheduled for
output, and a new HASP buffer is acquired and used as the next
output buffer.
If no output buffer exists upon entry, it indicates that the processor is skipping for a JOB card and the
subroutine returns without taking any action.
RJOBKILL -- Subroutine.to Delete Current Job
This subroutine tests whether the input processor is currently
processing a job, and if it is not, returns control immediately.
If a job is being processed, the operator is notified that the
job is being deleted, the RJOBTERM subroutine is called to terminate the input processing of the job, and the job is placed in
the Print Processor Queue for subsequent processing. Control i~
then returned to the calling program.
Input Service Processor - Page 4.1-6
37
HAS P
RJOBTERM-- Subroutine to Terminate Job
This subroutine terminates the last output buffer and schedules
it for output. It then acquires a HASP buffer, and from information kept in the PCE Work Area (see figure 4.1.1) constructs
the Job Control Table (JCT) and schedules it for output. Control is then returned to the calling program.
RGETBUF -- Subroutine to Initialize Output Buffers
This subroutine acquires a HASP buffer for an output buffer and
returns with the address of the buffer in register "Rl".
NON-PROCESS EXITS
The following routines are used to put the Input Service Processor in a HASP $WAIT state if a HASP resource is not available.
In all cases Reader Link Register 2 ("RL2") must have been set
to the ,restart address before the routine is entered.
RNOUNIT -- A HASP Unit was not available.
RNOCMB
A HASP Console Message Buffer was not available.
RNOJOB
The HASP Job Queue was full and a new entry
could not be added.
When the respective resource is available, the processor is
$POSTed and another attempt is made to acquire the resource.
Input Service Processor - Page 4.1-7
38
HAS P
Figure 4.1.1 -- INPUT SERVICE PCE WORK AREA FORMAT
Displacement
Hex.
Dec.
--
--
58
88
r-----------------------
92
96
I
Address of Input Device Control Table
RDADCT
RDRSW
60
----------------~-------1
RDRDCT
RCARDID
5C
4 bytes
I
Address of Direct-Access OCT
RBI END
Address of Last Card in Input Buffer
64
100
RBONEXT
Address of Next Card in Output Buffer
68
104
RBOEND
Address of End of Output Buffer
6C
108
RLSAVEl
Link Register Save Word 1
70
112
RLSAVE2
Link Register Save Word 2
74
116
RLSAVE3
Link Register Save Word 3
78
120
RSAVE:L
General Purpose Save Word 1
7C
124
RSAVE2
General Purpose Save Word 2
80
128
Input Service Processor - Paqe 4.1-8
39
HAS P
Figure 4.1.1 -- INPUT SERVICE PCE WORK AREA FO~T (CONTINUED)
Displacement
Hex.
Dec.
80
128
r-----------------------
4 bytes
------------------------1
RJCLTRAK
Track Address of Next JCL Block
84
RME$SAGE
132
........
B8
184
B8
184
Reader Message Area
1
RJOB
RQUEPRI
BC
188
192
Address of Job Queue Element
RQUETYPE
RQUEFLAG
Job Queue
Flags
co
r
RQUEJOBN
Job Number
RDRDLM
RESERVED
I.nput Data Set De11.miter
RQUETRK
Track Address of Job Control Table
I
C4
196
RQUEPRTR
Print Route
C8
RQUEFORM
Punch Route
RQUECLAS
-I
Print/Punch
Forms
200
Input Service Processor - Page 4.1-9
40
HAS P
Figure 4.1.1 -- INPUT SERVICE PCE WORK AREA FORMAT (CONTINUED)
Displacement
Hex.
Dec.
~-----------------------
4 bytes
------------------------.,
I
C8
200
I
RJCTJOBN
Job Number (Binary)
CC
204
RJCTPRIO
RJCTROUT
Priority
Input
Route Code
RJCTJOBE
RJCTPNAL
Job Number (EBCDIC)
DO
208
programmer's
Name Length
RJCTPNAM
Programmer's Name from Job Card
.........
....
'"
t:il
H
IJ:l
~
E4
228
~
RJCTJNAM
H
0
~
~
Job Name from Job Card
-
Z
0
U
IJ:l
0
~
>t
EC
236
~~
RJCTACTN
a
Job Accounting Number
FO
240
RJCTROOM
Programmer's Room Number
F4
244
RJCTETIM
Estimated Execution Time
F8
248
RJCTCARD
Current Input Card Count
FC
252
Input Service Processor - Page 4.1-10
41
HAS P
Figure 4.1.1 -- INPUT SERVICE PCE WORK AREA FORMAT (CONTINUED)
Displacement
Hex.
Dec.
FC
252
~-----------------------
4 bytes
------------------------~
RJCTESTL
Estimated Lines of Output
100
256
RJCTESTP
Estimated Number of Cards to be Punched
104
108
260
264'
RJCTLOG
RJCTLINC
RJCTCPYC
Lines
Per Page
Print
Copy Count
Log Option
Switch
RJCTDDCT
RJCTFLAG
RJCTFORM
Job Print Forms
lDC
268
Job Punch Forms
110
272
RJCTRDRO
Reader Sign-On Time
114
276
RJCTRDRT
Track Address of First JCL Block
118
280
RJCTCYMX
Maximum MTTR for Current Track Group
llC
284
RJCTMTTR
Last MTTR Allocated
120
288
Input Service Processor - Page 4.1-11
42
HAS P
Figure 4.1.1 -- INPUT SERVICE PCE WORK AREA FORMAT (CONTINUED)
Displacement ~_______________________ 4 bytes
Hex.
Dec.
120
288
I
1
------------------------~
RJCTCYMA
Variable Length Track Allocation Map
I
L-______________
~------
________________________________
1
1
Jl
~
1
RTPCARD
I
r'-------------..IJ
aD-Byte Remote Job Entry Input Card Image Area
Input Service Processor - Page 4.1-12
43
HAS P
Figure 4.1.1 -- INPUT SERVICE PCE WORK AREA FORMAT (CONTINUED)
Displacement
Hex. Dec.
58
88
Field Name
Bytes
RCARDID
1
Field Description
Type of card being processed -Hex.
Value
Meaning
00
03
04
13
Normal Card.
Internally Generated Card.
HASP Control Card.
Illegal Control Card.
Last JCL Card.
Dummy Track Address Record.
19
73
58
88
RDRDCT
4
Address of Reader, Tape, Internal
Reader, or Remote Device Control Table.
5C
92
RDRSW
1
Reader Switches -Bit
o
Name
Meaning
1
RJOBQUED Job has been Queued.
RSYSINSW Processing Internally Gener-
2
RXBJOBSW Processing XEQ Batch Class
3
4
5
ROSINSW
RJCLSW
RDREOFSW
RNOSCAN
RJFLUSH
ated DO
6
7
*
Card.
Job.
Processing O/S Input Data Set.
Processing JCL.
End of File Indication.
Not Scanning JCL (DO DATA) •
Job Flush Message has not
been issued.
SC
92
RDADCT
60
96
RBI END
4
Address of Last Card in Input Buffer.
64
100
RBONEXT
4
Address of Next Card in Output Buffer.
68
104
RBOEND
4
Address of End of Output Buffer.
6C
108
RLSAVEl
4
Link Register Save Word 1.
70
112
RLSAVE2
4
Link Register Save Word 2.
74
116
RLSAVE3
4
Link Register Save Word 3.
Address of Direct-Access Device Control
'fable.
Input Service Processor - Page 4.1-13
44
HAS P
Figure 4.1.1 -- INPUT SERVICE PCE WORK AREA FORMAT (CONTINUED)
Displacement
Hex. Dec.
Field Name
Bytes
Field Description
78
120
RSAVEl
4
General Purpose Save Word 1.
7C
124
RSAVE2
4
General Purpose Save Word 2.
80
128
RJCLTRAK
4
Track Address of Next JCL Block.
84
132
RMESSAGE
52
B8
184
RJOB
4
Address of Job Queue Element
(when Job has been Queued) •
B8
184
RQUEPRI
1
Job Queue Priority (Before Queueing)
Bits 0-3
Bits 4-7
Reader Message Area.
Priority (0-15).
Zero.
B9
185
RQUETYPE
1
Job Class - X'80' (Before Queueing).
BA
186
RQUEJOBN
2
Job Number (Before Queueing) •
BC
188
RQUEFLAG
1
Job Queue Flags
Bits
o
Name
Meaning
QUEHOLDl Job Held:
TYPRUN=HOLD
or Input Device Held.
Reserved.
1-7
1
Reserved.
RDRDLM
2
Input Data Set Delimiter
192
RQUETRK
4
Track Address of Job Control Table.
C4
196
RQUEPRTR
1
Print Routing:
0 = Local.
n = Remote n.
C5
197
1
Punch Routing:
0 = Local.
n = Remote n.
C6
198
RQUECLAS
1
Job Class - X'80'
C6
198
RQUEFORM
2
Job Print Forms
C8
200
RJCTJOBN
2
Job Number (Binary) •
CA
202
RJCTPRIO
1
Priority from /*PRIORITY Card.
BD
189
BE
190
co
(After Queueing).
(Before Queueing) •
Input Service Processor - Page 4.1-14
45
HAS P
' ' 1'T-1 -T"TTT14''n
, "'................
.. _--,,
I
Displacement
Hex. Dec.
Field Name
Bytes
Field Description
CB
203
RJCTROUT
1
Input Route Code:
CC
204
RJCTJOBE
3
Job Number (EBCDIC).
CF
207
RJCTPNAL
1
Programmer's Name Length.
DO
208
RJCTPNAM
20
E4
228
RJCTJNAM
8
Job Name from Job Card.
EC
236
RJCTACTN
4
Job Accounting Number.
FO
240
RJCTROOM
4
Programmer's Room Number.
F4
244
RJCTETIM
4
Estimated Execution Time.
F8
248
RJCTCARD
4
Current Input Card Count.
FC
252
RJCTESTL
4
Estimated Lines of Output.
100
256
RJCTESTP
4
Estimated Number of Cards to be Punched.
104
260
RJCTLINC
1
Lines per Page.
105
261
RJCTCPYC
1
Number of Copies of Print.
106
262
RJCTLOG
1
Log Option Switch.
107
263
RJCTDDCT
1
Count of Input Data Sets SPOOLed by HASP.
107
263
RJCTFLAG
1
JCT Flags.
108
264
RJCTFORM
4
Job Print Fonns.
10C
268
4
Job Punch Forms.
110
272
RJCTRDRO
4
Reader Sign-On Time.
114
276
RJCTRDRT
4
Track Address of First JCL Block.
118
280
RJCTCYMX
4
Maximum MTTR for Current Track Group.
11C
284
RJCTMTIR
4
Last MTTR Allocated.
0 = Local.
n = Remote n.
Programmer's Name from Job Card.
Input Service Processor - Page 4.1-15
46
HAS P
Figure 4.1.1 -- INPUT SERVICE PCE WORK AREA FORMAT (CONTINUED)
Displacement
Hex. Dec.
120
288
Field Name
Bytes
RJCTCYMA
RTPCARD
Field Description
Variable Length Track Allocation Map.
80
Remote Job Entry Input Card Image Area.
Input Service Processor - Page 4.1-16
A7
HASP
4.2 EXECUTION CONTROL PROCESSOR
4.2.1 Execution Control Processor -
General Description
The Execution Control Processor is responsible for the interface
between HASP and OS/360.
It presents jobs to the Operating System
for execution and communicates with the I/O supervisor to supply SYSIN
data for a job and to accept SYSPRINT and SYSPUNCH from a job for
later printing and punching.
This Processor is re-enterably coded and has the capability to
present any number of jobs to OS/360 for simultaneous execution by
maintaining unique INPUT/OUTPUT streams for each job. All storage
un"ique to a job is retained in the Processor Control Element (see
Figure 4.2.2) to provide re-enterability.
The Execution Control Processor is also responsible for monitoring
job limit excessions (such as time, line, or punched card estimates).
Jobs are selected for OS processing based on a logical partition structure
defined by HASPGEN. Each logical partition is controlled by a partition
information table (PIT) which indicates the eligibility of jobs for
execution by that logical partition. There is a direct correlation between
the HASP logical partition and the number of initiators active in the
system. Jobs thus selected for 08 processing are passed to a single
08/360 Reader/Interpreter which remains constantly STARTed to a
Execution Control Processor -
48
Page 4.2-1
HASP
HASP pseudo device which appears
a 2540 card reader.
ClS
Only the
Job Control Language statements of a job are passed to the R/I.
Input stream data sets
I
*
defined by DD
or DD DATA cards have been
previously transcribed to a SPOOL disk by the HASP input service
processor.
The JCL for a job is dynamically modified by HASP to
assign pseudo unit record devices to all SYSIN and SYSOUT data sets
to permit interception by HASP.
The job is interpreted by the R/I and
is placed in the OS job queue for immediate selection by an initiator.
At the completion of a job t s execution
I
it is placed in the OS SYSOUT
queue to be processed by an output writer.
Because of the assignment
of pseudo unit record devices to all SYSOUT files
I
the output
writer is required only to "print" the System Message Blocks from
SYSI SYSJOBQE.
These 5MB· s are intercepted by HASP and are stored
0
on the SPOOL disks as another print data set.
last 5MB
I
HASP terminates the XEQ phase
After receiving the
queues the job for the
I
HASP output processors and indicates that the logical partition requires
another job. All information concerning SYSIN and SYSOUT files
assigned to HASP pseudo devices is kept in Data Definition Table s
(DDT).
There is a DDT for each active file of a job which indicates
buffer addresses
I
file status
I
record count
I
etc. and is correlated with
the proper file through the HASP pseudo device address.
Execution Control Processor -
49
Page 4.2-2
HASP
4.2.2 Execution Control Processor -
Program Logic
The Execution Control Processor (XEQ) consists of the three
following logical phases:
PHASE 1
Job Control -
PHASE 2
Asynchronous I/O Handler -
Initiates and terminates job processing.
Interfaces with OS/360
via the Input/Output Supervisor (lOS) to perform
SYSIN/SYSPRINT/SYSPUNCH I/O requests.
PHASE 3 -
Synchronous I/O Handler -
Performs the SPOOL I/O
required by Phase 2.
_Figure 4.2. 1 indicates the relationship between these three phases and
OS/360.
An
as
execution is initiated by Phase 1 by obtaining a suitable job
from the HASP job queue and reading its Job Control Table from disk.
Job
limit parameters are initialized and the status of the OS/360 R/I is interrogated.
If the R/I is currently processing the input for another job, Phase 1
$WAITs until it has completed. A DDT describing the JCL file for the selected job is constructed and associated with the HASP pseudo 2540 used by
the R/I.
The dormant R/I is then POSTed to signal the availability of
Execution Control Processor -
50
Page 4.2-3
HASP
a job and control is trans ferred to Phase 3 to await I/O requirements
from Phase 2.
The OS/360 Supervisor call table has been modified by
HASP initialization so that all I/O requests are diverted to Phase 2 of
the XEQ processor ~
HASP pseudo device
If the I/O request thusly intercepted refers to a
I
it is processed by HASP; otherwise it is passed
to the Operating System Input-Output Supervisor for normal processing.
Since XEQ has the capability to control the simultaneous execution of
many jobs
I
the PCE for the job issuing the I/O request to a pseudo
device must be identifiable.
This is done by using a combination of
the JOB name and the TCB address (Job Step TCB for MVT).
PCE is located
I
Once the
the DDT for this particular pseudo device is found by
the pseudo device address from the UCB.
Phase 2 verifies that there
is a buffer still associated with the file and simulates the I/O request.
Each channel command word in the request is examined and
data select type is recognized
I
I
when a
the I/O operation is simulated by a
MOVE CHARACTERS to or from the current HASP buffer for that file.
Input requests are serviced by stripping (deblocking) the next card image
from the HASP
buffer and moving it as indicated by the CCW.
These
moves (only) are done while operating under the requesting program's
protect key to prevent an undetected protect violation by HASP
normally operates under protect key zero.
I
which
Requirements for I/O
Execution Control Processor -
51
Page 4.2-4
HASP
activities associated with Phase 2 processing are indicated by a series
of status bits in each DDT.
Requests to get buffers, read buffers and
write buffers, are indicated in the appropriate DDT, Phase 3 of the
XEQ processor is $POSTed and the HASP task is POSTed.
If the re-
quested activity must be completed before an I/O request can be
satisfied by Phase 2, the l/C requestor is made to WAIT.
by saving the current CCW location and using the
hold the requestor.
as
This is done
WAIT routine to
When the required I/O activity is complete, the
WAITing task is POSTed and the pseudo device I/O request is re-issued.
At the end of all successful I/O operations, the appropriate user
appendage (channel-end appendage, etc.) is entered, the I/O is
POSTed complete if required and a CSW is constructed to indicate the
normal I/O completion.
When Phase 3 of the Execution Processor is entered after initiation
of the job it immediately enters a HASP
from Phase 2.
$WAIT state to await direction
Upon being activated via a $POST from Phase 2 or by
a timer interrupt, this PHASE examines various status bits in the PCE
and DDT's to determine the required action.
This action may be either
the priming of an input buffer, writing and re-initialization of an output
buffer, or the notification to the operator of expiration of the estimated
time of the job. An input buffer is primed by obtaining the track address
Execution Control Processor -
52
Page 4.2- 5
HASP
of the next buffer from the current buffer and issuing a read for the record.
Status bits are set in the DDT to indicate that a read is in progress on
this buffer and are reset at channel end time to indicate that the record
is available. A full output buffer from Phase 2 is scheduled for transcription to disk and a new buffer is immediately obtained and initialized
for use. When the buffer is initialized a track address is acquired and
inserted as a forward chain in the buffer to be written.
for any reason unable to get a HASP buffer
Buffer-roll is invoked.
I
If Phase 3 is
a special service called
The function of Buffer-roll is to make a HASP
buffer currently being utilized by another file (in this or another job)
available to the requestor.
This is done by selecting a low frequency
. DDT which owns a buffer and forcing a
primary or secondary input buffer
I
II
free
II
of that buffer.
To free a
a switch is set in the DDT to force
a re-read of the buffer when the input file is next required.
Output
buffers are freed by terminating and writing the buffer to the SPOOL
disk.
Future references to this output file will cause a new buffer to
be obtained and chained to the partial bu ffer •
A count of the number of logical records contained in each output
buffer is maintained by the Phase 2 routine and is used by Phase 3
upon writing a buffer to maintain the total line and card count for this
job.
This accumulated figure is also compared
I
after each write
I
to
Execution Control Proces sor -
53
Page ,4.2 - 6
HASP
the estimated number of output records with the operator being notified
on its exces sion • If a job exceeds either cards, lines, or time, the
operator is so advised and a HASPGEN value is added to the original
estimate which will cause repeated excession messages as this new
estimate is reached.
The job continues through normal OS/360
processing until the end of execution is reached. The job, as part
of normal 08 job termination, is then placed in the OS 8Y80UT queue
for processing by an output writer.
Because of the dynamic modification
of all SYSOUT= cards to pseudo devices, the only data set to be
processed by the output writer is that contqining the System Message
Blocks.
The Output Writer therefore
II
prints
II
the
8MB's to a HASP pseudo device. When the last 5MB is received, Phase
3 is notified (via an OS POST) to return control to Phase 1 for HASP job
termina tion •
The job termination section of Phase 1 must now prepare the job
for passage to the print queue.
First, all partially filled output buffers
are truncated and written out, and all input bu ffers are freed.
The
timer interval for the job is cancelled and all job execution statistics
are added to the JCT. At this point the areas of the SPOOL disks used
to store the job input information are made available to be re-allocated
by HASP (Purged)
I
the JCT is written to disk and the job is passed to
Execution Control Processor -
54
Page 4.2-7
HASP
the print queue for printing.
If no priority card was present
I
the job
priority is recalculated as a function of the number of lines of print
generated before the job is placed in the print queue.
A branch is then made to the beginning of XEQ to begin another
job if available
I
or to display a message indicating that the logical
partition is idle.
The process of dynamic examination and modification of selected
JCL statements is accomplished by invoking the standard
as
Reader/
Interpreter exit list option which allows users to inspect all TCL encoded by the reader. A detailed discussion of the HASP processing
algorithm is contained in Appendix 12.8: HASP JCL Processing.
Execution Control Processor -
55
Page 4.2-8
HAS P
Figure 4.2.1 -- Execution Control - OS/360 Relationship
HASP JCL
PROCESSOR
(XJCLSCAN)
HASP
TASK
\
L----.,.._---'
\
\
\~
R/I
EXIT
LIST
POINTER
\~
\~
\
\
\
\
\
XEQ JOB
CONTROL
(PHASE 1)
\
\
START
OS/360
R/I
\ VIA PO T TASK
\~
~----------~
\~
\
\
$WAIT
~
\ 0
\~
\ ../
I/O REQUESTS
VIA lOS
\
\
\ r----...I.---"-'
SYNCHRONOUS
I/O
PROCESSOR
(PHASE 3)
$POST
ASYNCHRONOUS
I/O
PROCESSOR
(PHASE 2)
Execution Control Processor - Page 4.2-9
56
HAS P
Figure 4.2.2 -- EXECUTION CONTROL PCE WORK AREA FORMAT
Displacement ~_______________________ 4 bytes ________________________ . .
Hex.
Dec.
58
88
I
XPCEECB
Job Synchronization Event Control Block Chain
5C
92
XPCEJST
Address of User Task Control Block
60
96
XPCEJOB
Address of Job Queue Entry
64
100
XPCEWAIT
Reader Unit Allocation Event Control Block
68
104
XPCEJOBN
Job Name
I-
70
XPCEDCT
112
XPCESTAT
74
-
Address of Direct-Access OCT
I
XPCEDDB
116
Start of Data Definition Table Chain
78
XPCESTEP
120
-
80
. Step Name
-
128
Execution Control Processor - Page 4.2-·10
57
HAS P
Figure 4.2.2 -- EXECUTION CONTROL PCE WORK AREA FORMAT (CONTINUED)
Displacement
Hex.
Dec.
80
128
~-----------------------
-
88
136
4 bytes
------------------------~
Procedure step Name
-
XPCEPRT
Current Output Line Count
8C
140
Estimated Lines of Output
90
144
Line Estimate Excession Amount
94
148
EBCDIC Constant -- "LINE"
98
152
XPCEPUN
Current Output Card Count
9C
156
Estimated Punched Cards
AO
160
Card Estimate Excession Amount
A4
164
EBCDIC Constant -- "CARD"
A8
168
Execut£on Control Processor - Page 4.2-11
58
HAS P
Figure 4.2.2 -- EXECUTION CONTROL PCE WORK AREA FORMAT (CONTINUED)
Displacement
Hex.
Dec.
A8
168
~-----------------------
4 bytes
------------------------~
XPCEPIT
Address of Partition Information Table
AC
172
XSTQE
-
I-
Execution Timer Queue Element
-
t-
B8
184
XXSTIME
Time Estimate Excession Amount
BC
188
XPCEJSIB
Address of User JSTCB (MVT) or PIB (MFT)
CO
192
Execution Control Processor - Page 4.2-12
59
"
HAS
P
Figure 4.2.2 -- EXECUTION CONTROL PCE WORK AREA FORMAT (CONTINUED)
Displacement
Hex. Dec.
Field Name
Bytes
Field Description
58
88
XPCEECB
4
Job Synchronization Event Control Block
Chain.
5C
92
XPCEJST
4
Address of User Task Control Block.
60
96
XPCEJOB
4
Address of Job Queue Entry.
64
100
XPCEWAIT
4
Reader Unit Allocation Event Control Block.
68
104
XPCEJOBN
8
Job Name.
70
112
XPCESTAT
1
Status
Name
Bit
0-1
4
5
XPOSTBIT
XRDRACT
XEOJMES
XDUPBIT
6
XUCBDDB
7
XEOJBIT
2
3
Meaning
Reserved.
POST Request for XTHAW.
Reserved.
End Execution Message Sent.
Job with Duplicate Job Name
Waiting.
UCB/DDT Required by
Execution Interface.
End of Job Flag.
70
112
XPCEDCT
4
Address of Direct-Access DCT.
74
116
XPCEDDB
4
Start of Data Definition Table Chain.
78
120
XPCESTEP
8
Step Name.
80
128
8
Procedure Step Name.
88
136
4
Current Output Line Count.
8C
140
4
Estimated Lines of Output.
90
144
4
Line Estimate Excession Amount.
94
148
4
EBCDIC Constant --
98
152
4
Current Output Card Count.
9C
156
4
Estimated Punched Cards.
XPCEPRT
XPCEPLN
"LINE".
Execution Control Processor - Page 4.2-13
60
HAS P
Figure 4.2.2 -- EXECUTION CONTROL PCE WORK AREA FORMAT (CONTINUED)
Dis12lacement
Hex. Dec.
Field Name
B;ttes
Field DescriEtion
AO
160
4
Card Estimate Excession Amount.
A4
164
4
EBCDIC Constant --
A8
168
XPCEPIT
4
Address of Partition Information Table.
AC
172
XSTQE
B8
184
XXSTIME
4
Time Estimate Excession Amount.
BC
188
XPCEJSIB
4
MVT
MFT
12
"CARD".
Execution Timer Queue Element.
Address of Job Step Task Control Block.
Address of Partition Information Block.
Execution Control Processor - Page 4.2-14
61
HAS P
4.3
OUTPUT SERVICE PROCESSOR (PRINT AND PUNCH)
4.3.1
OUTPUT SERVICE PROCESSOR - GENERAL DESCRIPTION
The functions of the Output Service Processor are as follows:
To convert the print and punch output generated by the
Execution Control Processor to hard copy.
To provide for the unique identification of both print
and punch output to facilitate collection and delivery.
To provide for the routing of special data sets to printers
and punches reserved for special fOrms processing.
To produce multiple copies of print output upon request.
To count print lines and produce automatic page overflow.
To translate all illegal print characters to blanks (optional) •
To load the Universal Character Set Buffer (optional).
To load the Forms Control Buffer (optional).
To provide additional information for checkpoint which
allows print to continue in the event of a "warm start".
'To punch a Job Accounting Card (optional).
To process all printer and punch I/O errors with automatic
error recovery (no operator intervention).
To respond to all operator commands directed toward any
printer or punch.
To queue jobs for the next stage of processing when the
current print/punch function has been completed.
The Output Service Processor is coded re-enterably in such a
way that it can deliver output to a number of different output
devices simultaneously. The re-enterability is attained by
retaining all storage unique to a job in the Processor Control
Element (see figure 4.3.1) which must be unique for each output
device.
Output Service Processor - Page 4.3-1
62
HAS P
4.3.2
OUTPUT SERVICE PROCESSOR - PROGRAM LOGIC
The Output Service Processor is divided into three phases,
nine subroutines, and two non-process exits.
This section
will give a functional description of each of these phases,
subroutines, and exits to aid the system programmer in gaining
a working knowledge of the processor.
PHASES
Phase 1 -- Processor Initialization
The Initialization Phase begins by attempting to get an output unit.
If an output unit is not available, the processor
enters a HASP $WAIT state until a device is made available
and ,then the process is repeated.
Next, an output function is determined.
If the device acquired is a remote printer, the appropriate entry in the
Remote Message Table is examined to determine if any remote
messages have been queued, and if so processing continues.
The general purpose register:
"JCT" is set to zero to indicate that remote messages are being processed.
If the device is not a remote printer, or if there are no
messages queued, an attempt is made to obtain a job from the
Job Queue which matches the type, routing and special forms
of ' the device obtained.
If no jobs are queued which fit these
qualifications, the special forms processing type is checked
to see if the forms requirement can be dropped.
If so, another
attempt is made to obtain a job from the Job Queue which
matches the type and routing specifications only.
If a job cannot be found, then the output unit is released
and control is returned to the start of the Initialization
Phase.
If the output device is a remote terminal, output activity is
initiated by calling upon the Remote Terminal Access Method
(RTAM) to "open" the Remote Device Control Table.
The processor then acquires a direct-access Device Control
Table (OCT) and a HASP buffer into which the Job Control
Table (JCT) is then read. A message is sent to the operator
notifying him that a particular job is now on the respective
device and the initialization of the Processor Control Element
Work Area (see figure 4.3.l) is completed.
Output Service Processor - Page 4.3-2
63
HAS P
If the processor is processing prin~ output, and if the output:
is not a, data set which has been routed for special forms, .
the PRINTID subroutine is called to generate the print identi-~
fication header and control is 'transferred to Phase 2.
If the processor is processing punch output, and if the output
is not a dat'a set which has been 'routed for special forms,
the Punch ID Card is generated for later punching, and control
is transferred to Phase 2.
Phase 2 - Main Processor
The function of the Main Processor is to read the data blocks
which are produced by the Execution Control Processor and build
a channel program to print or punch the data. The PRDBUF and
PRDCHK subroutines are used to read the data blocks, thePPPUT
subroutine is used to construct the channel program and the
PPWRITE and PPCHECK subroutines are used to initiate and check
the execution of the channel program.
If the processor is processing print output, the "Control
Byte" fields of the' Data Block (see figure 8.15.1) are used
to build the CCW operation codes.' These control bytes are
also used to count the actual lines of paper spaced and when
:this line count exceeds the parameter JCTLINCT, an eject is
inserted to force a new page and the count is restarted.
If
an illegal control byte is encountered, or if the operator
has entered a n$T PRTn,C=l" command, a single-space CCW is
generated and used rather than the one provided in the data
block.
In such cases line counting continues and automatic
page overflow is still provided.
If the processor is processing punch output, a "Punch, Feed,
and Select Stacker P2" command is generated.
When the last data block has been printed or punched, control
is transferred to Phase 3.
Phase 3 - Processor Termination
The Processor Termination Phase first reads the Job Control
Table and scans the Peripheral Data Description Blocks (see
figure 8.8.1) for the next data set to be processed.
If
~nother data set is encountered, control is returned to Phase
2 for processing.
If no more data sets are to be processed,
the termination phase then proceeds depending upon the type of
output which is being processed.
Output Service Processor - Page 4.3-3
64
HAS. P
If the processor is processing print output, the "PrintCoP¥'
Count" field in the JCT (see figure 8. 8.1) is compared Vii tq .;
the current number of copies which have been printed.
If
more copies are" needed, control is transferred, to Phase 1 fOJ:" $
the production of another copy.
If no more copies are required,'
the PRINTID subroutine is called to generate the print idcintification trailer.
If the processor is processing punch output, the job acc6unting
subroutine is called, and the accounting-card is punched followed by a blank card to clear the punch and check the punching
of the Job Accounting Card.
The Job Control Table is then re-written, the Job Queue Element
is passed to the next proce~sor queue, the Device Control
Tables are released, and control is transferred to the start
of Phase 1.
SUBROUTINES
PLOADUCS -- Subroutine to Load the UCSBand FCB
This subroutine determines the Universal Character Set Type
from the Printer Device Control Table. The UCSB Table is then
searched and the corresponding ues image (if one is found) is
$LOADed and moved into a HASP buffer. The UCS Buffer is then
loaded using the PPPUT, PPWRITE, and PPCHECK subroutines.
If the output device type specifies a 3211 printer, then the'
Forms Control Buffer is loaded in a manner similar to the UC~
Buffer~
After loading the FCB, the FCB type is reset so that
no more FCB loads will occur until the operator specifies that
the buffer should be re-loaded.
PRINTID -- Subroutine to Generate Print Identification
This subroutine builds up the line image which is used to produce the Print Identification ~age from information in the Job
Control Table and information passed to the subroutine at the
time it is called. This line image is built up in the "Job
Accounting Storage" section of the Job Control, Table (see figure 8.8.1). The subroutine then builds a channel program
which starts with an eject command and follows with enough
print commands to completely fill a page with print identification lin~s. The channel program is then executed and checked
and contrpl is returned to the calling program. The PPPUT
subroutin~ is used to construct the channel program, and the
PPWRITE arid PPCHECK subroutines are used to initiate and check
the ~xecution of the channel program.
Output Service Processor - Page 4.3-4
65
HAS P
PPFORMCK -- Subroutine to Mount Forms
This subroutine compares the forms being requested with the
forms currently mounted on the associated device.
If a match
is found, the subroutine returns immediately. Otherwise, a
forms mount message is issued to the operator and the subroutine $WAITs for a "$Sdevice" command to be entered. The
DCT Forms field is then set to reflect the new forms type and
processing continues.
PRCOMENT -- Subroutine to Add Comment to Printer Output
This subroutine constructs and adds to the printer output
(using the PPPUT, PPWRITE, and PPCHECK subroutines) a comment
of the form:
PRINT xxxxxxxxx BY OPERATOR.
"xxxxxxxxx" is specified at subroutine entry by parameter
register "RI" and will be one of the following:
DELETED
RESTARTED
REPEATED
BACKSPACED
FWD-SPACED
SUSPENDED
PRDBUF -- Subroutine to Initiate Read from Direct Access Storage
This subroutine initiates a read from the track address specified by register "PNP" into the appropriate HASP buffer.
PRDCHK -- Subroutine to Check Read from Direct Access Storage
This subroutine checks the read initiated by the PRDBUF subroutine.
If the read is not complete, the processor is placed
into a HASP $WAIT state until the read is completed.
If an
I/O error is detected, a "$IOERROR" macro-instruction is issued
and the processing of the rest of the data set is deleted.
This subroutine also checks for any operator command which
would cause the Main Processing Phase to be completed and forces
any indicated completion by zeroing the chain track in the data
block just read.
Output Service Processor - Page 4.3-5
66
HAS P
PPPUT -- PPUTOLAY -- Subroutine to Build a Channel Program
This subroutine accepts a CCW from the calling program and,
if the output device is not a remote terminal, constructs a
channel program in the Processor Control Element Work Area
(see figure 4.3.1). Each command is examined and if it is an
immediate printer space or skip, and if the previous command
was a "Write, No Space", the two conunands are combined into
one. When the channel program storage area is full, this subroutine calls the PPWRITE subroutine to initiate the execution
of the channel program. Upon the next entry, the execution
of the channel program is checked by calling the PPCHECK subroutine.
If the output device is a remote terminal, the Remote Terminal
Access Method is "called" to process the output line or card.
Control is then given to the PPCHECK subroutine to test for
operator commands.
PPWRITE--Subroutine to Initiate Execution of the Channel Program
If the output processor is being deleted by operator action,
this subroutine returns immediately. Otherwise a write is
initiated on the respective output device, using the channel
program developed by the PPPUT subroutine.
PPCHECK--Subroutine to Check the Execution of the Channel Program
This subroutine checks for the successful completion of the
channel program execution initIated by the PPWRITE subroutine.
If the execution has not yet completed, the subroutine enters
the processor into a $WAIT condition until the output has
been completed,.
If an unsuccessful completion is detected,
the subroutine performs the error recovery described in the
paragraph below. This subroutine also interprets all operator
commands directed at the processor and initiates appropriate
action.
NON-PROCESS ·EXITS
The following routines are used to place the Output Service
Processor into a HASP $WAIT state if a HASP resource is not
available.
In bot;h cases the non-process register ("PNP")
must have been set to the restart address before the routine
is entered.
Output Service Processor - Page 4.3-6
67
HAS P
PNOUNIT -- A HASP unit was not available.
PNOBUF -- A HASP buffer was not available.
When the respective resource is made available, the processor
is $POSTed and another attempt is made to acquire the resource.
PRINTER "WARM START" LOGIC
When the Output Service Processor is successful in acquiring a
job from the print queue, the print checkpoint area is searched
for an available Print Checkpoint Element (see figure 4.3.2).
This element is thereafter used to record the job number, copy
count, and line and page counts.
In the event of a "warm start", the elements are searched and
each Print Checkpoint element is moved into the Job Control
Table for the job which it represents.
When the job is printed, the JCT is examined, and if the Print
Checkpoint Element is present, the processor continues printing
from the point when the last checkpoint was taken.
OUTPUT PROCESSOR BUFFER LOGIC
The buffer logic that the output processor employs is determined
by the HASPGEN parameters: $PRTBOPT, $PUNBOPT, $RPRBOPT, and
$RPUBOPT.
Buffer Option
=
1
One buffer will be obtained at the beginning of output processing and will be used through the entire processing of a job's
output. A read for the following data block will not be initiated until the current data block has completed its output.
Periods of high Input/Output activity could cause the printers
and punches to operate at less than their maximum rate when
this option is used.
Buffer Option
=
2
Two buffers will be obtained at the beginning of output processing and will be used through the entire processing ofa
job's output. A read for ~he following data block will be
output Service Processor - Page 4.3-7
68
HAS P
initiated as soon as the previous data block has completed
its output and will be performed while the current data block
is completing its output. This option represents the most
efficient utilization of the output devices.
PRINT AND PUNCH ERROR RECOVERY
Print Errors
The operator will be informed of all printer errors, but they
will be ignored by the Output Service Processor.
Punch Errors
The card which causes a punch check and the card following
this card are selected automatically into the reject stacker.
The Output Service Processor will attempt to punch these two
cards correctly until no error occurs or the operator deletes
the job. Since all normal punch output is selected to another
stacker, no operator intervention will be required to clear
tpe punch. Every error will be recorded on the operator's
console.
Output Service Processor - Page 4.3-8
69
HAS P
Figure 4.3.1 -- OUTPUT SERVICE PCE WORK AREA FORMAT
Displacement
Hex.
!2!£.
58
88
r------------------------
92
I
PDADCT
PDCTFLAG
60
------------------------~
PDCT
PPFLAG
SC
4 bytes
96
PJOB
I
Address of Print/Punch/Remote OCT
Address of Direct-Access OCT
Address of Job Queue Entry
64
100
PRCHKPTE
PUERRPT
68
104
Address of Print Checkpoint Element
Address of Punch Error CCW
PTIMEON
Print/Punch Sign-On Time
6C
108
PBUFSAVE
Address of Next Print/Punch Buffer
70
112
PCCWPT
Address of Last Print/Punch CCW Set Up
74
116
PCCWEND
Address of Last Possible Print/Punch CCW
78
PMESSAGE
120
....
1~_________________p_r_~_n_t_/_p_u_n_c_h_M
__
e_ss_a_g_e__A_r_e_a________________
8C
....,
~J
140
Output Service Processor - Page 4.3-9
70
HAS P
Figure 4.3.1 -- OUTPUT SERVICE PCE WORK AREA FORMAT
Displacement
Hex.
Dec.
8C
140
~_______________________
4 bytes ________________________ ~
I
'
PDDBSKIP
Count of Pages to Skip
90
144
PDDBDISP
148
PPRCFLAG
PPRCPYCT
Checkpoint
Flags
Copy Count
PDDBPGCT
Current PooB Displacement
94
(CONTINU~)
Current PoDB Page
Coun~
PPLNCDCT
Current Line or Card Count
98
152
PRPAGECT
Current Page Count
9C
PDEVTYPE
156
P:SUFOPT
AO
I
Print/Punch Device Type
PLSAVE
160
Link Register Save Word
A4
164
PRLINE~T
Maximum Lines per Page
A8
PCCWCHN
168
........
1~___________
v_a_r_1_a_b_l_e_,_L_e_n_g_th
___
p_r_1n
__
t_/p_u_n_C_h__C_C_W
___
Ch__
a_1n____________
~r
Output Service Processor - Page 4.3-10
71
H. ASP
::Figure 4.3.1 -- OUTPUT SERVICE PCE WORK AREA FORMAT (CONTINUED)
Displacement
Hex. Dec.
58
88
Field Name
PPFLAG
Bytes
1
Field Description
Print/Punch Synchronization Flags -Bit
Name
a
3
PPWSW
PPDELSW
PPNOJOB
PRDELSW
4
PRRSTSW
5
PPRDERR
1
2
6-7
Meaning
Write has been Initiated.
Function has been Deleted.
No Job is Active.
Print was Deleted by
Operator.
Print was Restarted by
Operator.
Function Terminated by
Read Error.
Reserved for Future Use.
58
88
PDCT
4
Address of Print/Punch/Remote
Device Control Table.
5C
92
PDCTFLAG
1
Print/Punch/Remote Operator Commands -Bit
Name
a
DCTSTOP
DCTDELET
DCTRSTRT
DCTRPT
DCTBKSP
DCTSPACE
1
2
3
4
5
2+4
6-7
Meaning
$Z ($STOP) Command.
$C ($DELETE) Command.
$E ($RESTART) Command.
$N ($REPEAT) Command.
$B ($BACKSPACE) Command.
$T ... ,C=l Command.
$1 Command.
Reserved.
5C
92
PDADCT
4
Address of Direct-Access Device Control
Table.
60
96
PJOB
4
Address of Job Queue Entry.
64
100
PRCHKPTE
4
Print Only:
Address of Print Checkpoint
Element.
64
100
PUERRPT
4
Punch Only:
Address of Punch Error CCW.
68
104
PTIMEQ\J
... 4
6C
108
PBUFSAVE
4
Print/Punch Sign-On Time .
Address of Next Print/Punch Buffer.
Output Service Processor - Page 4.3-11
72
HAS P
Figure 4.3.1 -- OUTPUT SERVICE PCE WORK AREA FORMAT (CONTINUED)
Displacement
Hex. Dec.
Field Name
Bytes
Field Description
70
112
PCCWPT
4
Address of Last Print/Punch CCW Set Up.
74
116
PCCWEND
4
Address of Last possible Print/Punch CCW.
78
120
PMESSAGE
20
8C
140
PDDBSKIP
2
Count of Pages to Skip.
8E
142
PPRCFLAG
1
Checkpoint Flags --
Print/Punch Message Area.
Bit
o
1
Name
Meaning
PRCHKUSE Checkpoint Element Assigned.
PRCHKJOB Job Active Indication.
Reserved.
2-7
8F
143
PPRCPYCT
1
Current Copy Count.
90
144
PDDBDISP
2
Current PDDB Displacement.
92
146
PDDBPGCT
2
Current PDDB Page Count.
94
148
PPLNCDCT
4
CUrrent Line or Card Count.
98
152
PRPAGECT
4
Current Page Count.
9C
156
PBUFOPT
1
Buffering Option
Value
1
2
Meaning
Single Buffering.
Double Buffering.
9C
156
PDEVTYPE
4
Device Type from UCB (UCBTYP).
AO
160
PLSAVE
4
Link Register Save Word.
A4
164
PRLINECT
4
Maximum Lines per Page.
A8
168
PCCWCHN
Variable Length Print/Punch CCW Chain.
output Service Processor - Page 4.3-12
73
HAS P
Figure 4.3.2 -- PRINT CHECKPOINT ELEMENT FORMAT
,Displacement
~. Dec.
o
0
l.----------------------I
4 bytes
PRCJOBNO
Checkpoint Job Number
4
4
PRCPDDBD
8
PRCFLAGS
PRCCPYCT
Checkpoint
Flags
Checkpoint
Copy Count
PRCPDDBP
Checkpoint PDDB Displacement
8
------------------------J
.I
Checkpoint PDDB Page Count
PRLINCT
Checkpoint Total Line Count
C
12
PRPAGCT
Checkpoint Total Page Count
10
16
output Service Processor - Page 4.3-13
74
HAS P
Figure 4.3.2 -- PRINT CHECKPOINT ELEMENT FORMAT (CONTINUED)
Dis12lacement
Hex. Dec.
Field Name
B:i tes
Field Descri12tion
0
0
PRCJOBNO
2
Job Number.
2
2
PRCFLAGS
1
Checkpoint Flags
Bit
0
1
Name
Meaning
PRCHKUSE Checkpoint Element in Use.
PRCHKJOB Job Active Indication.
Reserved for Future Use.
2-7
3
3
PRCCPYCT
1
Current Copy Count.
4
4
PRCPDDBD
2
Current PDDB Displacement.
6
6
PRCPDDBP
2
Current PDDB Page Count.
8
8
PRLINCT
4
Total Line Count.
C
12
PRPAGCT
4
Total Page Count.
Output Service Processor - Page 4.3-14
75
4.4.1
PURGE PROCESSOR - GENERAL DESCRIPTION
The Purge processor frees the job's acquired HASP direct-access
space and removes the Job Queue Element from the system.
4.4.2
PURGE PROCESSOR - PROGRAM LOGIC
The processor first acquires a Job Queue Element and issues the
$ACTIVE macro to inform the HASP Dispatcher that the processor
is active. Then a direct-access Device Control Table (DCT) and
a HASP buffer are acquired and initialized so that the job's
Job Control Table (JCT) may be read into the buffer from the
SPOOL disk.
If a DCT or buffer is not available this processor
will be placed in a HASP $WAIT state until a DCT or buffer can
be acquired.
If no permanent I/O errors occur while reading
the JCT, a $PURGE macro instruction is then issued to return
the job's direct access tracks.
If a permanent I/O error occurs
while the JCT is being read, the DISASTROUS error routine is
called and the $PURGE macro instruction is not executed. Next,
the Job Queue Element is removed from the HASP Job Queue and
the following message is issued to the operator:
JOB xxx IS PURGED
Finally, the buffer and DCT are freed, and the $DORMANT macro
instruction is issued to indicate to the HASP Dispatcher that
the processor is inactive and control is returned to the start
of the routine for the processing of the next job to be purged.
Purge Processor- Page 4.4-1
76
HAS P
4.5
HASP COMMAND PROCESSOR
4.5.1
HASP Command Processor - General Description
The HASP Command Processor receives all HASP commands entered
from acceptable local or remote HASP input sources.
The Processor
is responsible for decoding each command and performing the processing necessary to cause appropriate action to the operator's
request.
4.5.2
HASP Command Processor - Program Logic
The HASP Command Processor is initially entered at the beginning
of the Control Section (CSECT) HASPCOMM which is a part of the
resident portion of HASP.
Subsequent re-entrles are returns from
the various command sub-processors with optional requests for the
displaying of the "OK" message or other message contained in the
COMMAND area of the PCE. After displaying any requested replies
the HASP Console Message Buffer queue $COMMQUE is examined for
the presence of the next command to process.
If no buffer is
queued, the Command Processor waits on WORK. When $POSTed or if
a buffer is present upon entry, the Command Edit Routine is
entered via $LINK macro.
Command Edit Routine - HASPCOME
VERB CONVERSION - The Command Edit. Routine converts the command
text from the long form to the standard single character verb form.
The data portion of the Console Message Buffer up to the first
comma (,) or apostrophe (') is made upper case and non-blank
characters are shifted to the left. The resulting text is compared
against arguments in the VERB CONVERSION TABLE.
If a match is
found, the corresponding standard form of the command is substituted.
COMMAND EDIT AND BREAK OUT - The information in the HASP Console
Message Buffer is moved to the COMMAND field in the PCE work area.
The two bytes CMBFLAGS and CMBCONS of the buffer are moved to the
COMFLAGS and COMROUTE fields of the PCE workarea.These two
bytes when combined with the two succeeding bytes in the PCE form
the list form of the $WTO used for all responses to the operator
from the Command Processor.
--The COMMAND area of the PCE is primed with blanks and the buffer
is scanned.
~olid characters are ORed (moved with upper casing)
into the COMMAND area.
Blanks encountered in the buffer will
HASP Command Processor - Page 4.5-1
77
HAS P
normally be skipped (blank elimination); however, if an apostrophe
vis encountered, blanks will not be skipped until the next apostrophe.
Double apostrophe characters will cause the blank compression status to remain as previously set; however, the second
apostrophe of the pair will be eliminated.
As each comma is encountered an entry of the next available
character position is,made in the COMPNTER area of the PCE.
(The
first entry is the address of the character after the verb.
The
second is the address of the second operand, etc.)
When the
COMPNTER area is full, recording is discontinued.
Upon completion
of the scan, the buffer is released, the COMNULOP field in the
PCE is set to the address of the second character beyond the last
solid character (null operand), and the operand pointers are
shifted down adjacent to the COMMULOP field (see Figures 4.5.1
to 4.5.3).
Control registers are set as follows:
WD
WE
WF
=
=
=
address of the first operand pointer in the COMPNTER field
4
address of the last operand pointer in the COMPNTER field
SELECTING THE COMMAND SUB-PROCESSOR - The SELECTION TABLE is used
to determine the appropriate command sub-processor which must be
entered.
Starting with the first element, the SELECTION TABLE is
scanned for a matching verb. When the verb is located, the first
character of the first operand is then used for comparing.
If a
match is found on the operand or if the table entry contains an
X'FF.' for operand argument, the table entry for the command is
considered "located".
If the end of the entries is encountered
for the verb or table, the command is considered invalid and the
edit routine returns to the main processor with INVALID COMMAND
message in the COMMAND area for display.
(See $COMTAB macro in
Section 4.5.4 for format of the SELECTION TABLE element.)
VALIDATING THE SOURCE AND ENTERING THE SUB-PROCESSOR - Each entry
of the SELECTION TABLE may have restriction indicators as follows:
COMRMT
COMS
=
=
COMO
=
COMJ
=
1 - Reject remote sources
1 - Reject consoles which are restricted from
entering SYSTEM COMMANDS
1 - Reject consoles which are restricted from
entering DEVICE COMMANDS
1 - Reject consoles which are restricted from
entering JOB COMMANDS
The restriction indicators correspond with the restriction indicators which appear in the COMFLAGS field.
The COMFLAGS indicator
is previously set from the CMBFLAGS field,of the HASP Console
Message Buffer which in turn is set by other HASP processors as
follows:
1.
CMBFLAGS when set by the remote console processor or
remote reader processors will contain the remote
indicator. This indicator corresponds to COMRMT bit
in the SELECTION TABLE.
HASP Command Processor - Page 4.5-2
78
HAS P
2.
3.
CMBFLAGS when set by the local console support routines
will contain the restriction flags assigned to the
Console Device Control Table.
(Restriction is the
opposite of authority which is set by the operator
command $TCONn,A=authority or by the system programmer.)
CMBFLAGS when set by the OS console interface is
the OS authority indicators inverted with the
Exclusive Or Immediate (XI) instruction.
The restriction indicators are used as the second operand of a
Test Under Mask (TM) instruction.
If any restriction indicator
in the COMFLAGS field corresponds to any restriction indicator
in the SELECTION table entry, the command is rejected as invalid.
Otherwise Register 1 is set with the value in the SELECTION TABLE
entry COMTOFF field and control is passed to the CSECT indicated
by the Overlay Constant ($OCON) field of the SELECTION TABLE
element via the $XCTL macro.
Command Sub-Processor Control Sections
The Entry routine of each command sub-processor control section
will, if applicable, use the offset value in register 1 (set by
the edit routine) to determine the "relative" entry point for the
designated sub-processor. Normally the sub-processor is entered
directly by the special Command Processor macro: "Branch
Re-lative Register" on Rl ($BRR Rl). However, some control section
entry routines will pre-process the operands of the command prior
to entering the sub-processor. Each sub-processor performs the
desired functions and returns to the main command processor for
the next command.
HASP Command Processor - Page 4.5-3
79
HAS P
4.5.3
HASP Command Processor Organization
The HASP Command Processor is created by a single assembly with
multiple Control Sections (CSECT).
The main CSECT HASPCOMM is
the only portion of the Command Processor that is part of the
HASP resident load module.
It contains all V type address
constants required by the sub-command processors and all "BASE2"
service routines. The Command Edit Routine HASPCOME receives
control from the main processor and determines which COMMAND
SUB-PROCESSOR CSECT to enter for processing of the command entered.
One or more of the various COMMAND SUB-PROCESSOR CSECTs are used
in processing each HASP operator command. Although the physical
CSECTs are organized in accordance with the size of the overlay
work area, the logical organizational grouping is as follows:
JOB QUEUE COMMANDS
JOB LIST COMMANDS
MISCELLANEOUS JOB COMMANDS
DEVICE LIST COMMANDS
SYSTEM COMMANDS
MISCELLANEOUS DISPLAY COMMANDS
REMOTE JOB ENTRY COMMANDS
HASP Command Processor Workarea
The HASP Command Processor PCE workarea shown in Figure 4.5.1 is
the primary workarea for the processor and is the only area which
may be used to save information in the event a $WAIT is issued by
the processor or any of the "BASEl" service routines on behalf of
the processor.
The fields are generally used as described in the
following paragraphs.
COMFLAGS to COMCLASS - This field contains a list form of the $WTO
macro. The $WTO is referred to by a single execute form of the
$WTO located within the resident portion of the Command Processor
which is used for all operator messages generated by any routine
within the processor. The CMBFLAGS and CMBCONSfields of the HASP
Console Message Buffer for each command is inserted into the
COMFLAGS and COMROUTE cells and are used to provide correct route
codes for replies. The three low order bits of COMFLAGS are
restriction indicators and are set to zero prior to each $WTO reply.
COMEWORK - This field is used as a workarea and by function routines
identified by the macro instructions as follows:
HASP Command Processor - Page 4.5-4
80
HAS P
macro
contents upon exit from routine
$CFCVE
$CFDCTL
$CFJDCT
$CFJMSG
last character is blank
first four characters of requested device name
address of HASP job queue element for requested job
same as $CFCVE
COMDWORK - This field is aligned on a double word boundary and is
used as a workarea and by function routines identified by the macro
instructions as follows:
macro
contents upon exit from routine
$CFCVE
$CFDCTL
$CFJMSG
five character number in EBCDIC with leading blanks
last four characters of requested device name
same as $CFCVE
COMMAND - This field contains the compressed form of the operator
cqmmand with trailing blanks at the time each command sub-processor
is entered. The command is overlayed by the reply message text for
all $WTO messages issued by any Command Processor routine.
Some
command sub-processors use the area as scratch areas and in some
cases the right end for storage of critical information while
message replies are generated in the left end of the area.
COMPNTER-COMNULOP - These fields are set by the Command Edit
Routine and are used to locate the beginning of each of the
specified operands in the command currently being processed.
COMNULOP contains a pointer to the second character beyond the
last operand specified, i.e., points to a non-existant or "null"
operand. Operand 1 through n pointers are right adjusted in
COMPNTER so that operand n pointer is adjacent to the "null"
pointer (see Figures 4.5.2 and 4.5.3 for illustrations). Command
sub-processors use these areas for additional workspace after the
operand pointers are no longer needed. Examples of other uses
are listed as follows-:
1.
2.
3.
Job queue command $DN and $DQ commands place queue
scanning control elements in the COMPNTER area.
Job list commands place the job range numbers (j-jj)
in the corresponding operand pointer element area.
$DR uses the right end of the COMMAND area and
COMPNTER-COMNULOP area to hold the reply ID numbers.
HASP Command Processor - Page 4.5-5
81
II ASP
Figure 4.5.1
Displacement
Hex.
Dec.
58
88
HASP COMMAND PCE WORK AREA FORMAT
r-----------------------COMFLAGS
4 bytes
COMROUTE
------------------------~
COMLNGTH
COMCLASS
List Form of $WTO
5C
92
COMEWORK
Function Work Area
60
COMDWORK
96
Function Work Area
~
68
104
COMMAND
COMVER:B
COMOPRND
Message Area
Command Verb
First Operand
-
-
.....
..... :--
EO
224
Command Text and Message Area
......
...... ,..
COMPNTER
Address of n-4 Operand
E4
228
Address of n-3 Operand
E8
232
Address of n-2 Operand
EC
236
HASP Command Processor - Page 4.5-6
82
HAS P
Figure 4.5.1 -- HASP COMMAND PCE WORK AREA FORMAT (CONTINUED)
Displacement
Hex.
Dec.
EC
236
~-----------------------
4 bytes
------------------------.j
Address of n-l Operand
FO
240
Address of n Operand
F4
244
COMNULOP
Address of n+l Operand
F8
248
HASP Command Processor - Page 4.5-7
83
HAS P
Figure 4.5.2
COMMAND - COMNULOP Areas With Single Operand Command
COMMAND- $PPRTlbb
COMPNTER
- - - -
Upon exit of Edit Routine,
Registers WD, WE and WF
are set for testing
instructions:
not used
not used
not used
not used
WD,WF
COMNULOP
-+
- - - -
Figure 4.5.3
operand It t-null
BXLE WD,WE,loop
(for next operand)
BXH WD,WE,exit
(if no more)
t
COMPNTER -COMNULOP Areas With Five Operand Commands
COMMAND - $PPRTl,PRT2,PUNl,RDRl,RD2bb
COMPNTER - WD
-+
operand It
operand 2t
operand 3 t
operand 4t
WF
COMNULOP
NOTE:
-+
operand 5t
null
t
Upon exit of Edit Routine,
Registers WD,WE and WF
are set for testing
instructions:
b = blank character
BXLE WD,WE,loop
(for next operand)
BXH WD,WE,exit
(if no more)
HASP Command Processor - Page 4.5-8
84
HAS P
Coding Conventions
The symbols with the command processor conform to the following
conventions:
1.
All main processor, Edit Routine, and PCE workarea symbols
start with the characters "COM".
2.
All Function macro generated symbols start with "COF".
3.
All command sub-processors have entry point symbols
of the following form:
form
Cvo
example
CON
Cv
Cvxx
CB
C070
comments
v = the verb of the command
o = the first operand character
single character identifier
$B device
$O'jobname ' apostrophe is hexadecimal 70
command
$ON
4.
All symbols created for the support of the command will start
with characters which identify the entry point (CONxxxxx
identifies a location which was originally written for the
$ON command). Commands with no unique operand character
symbol have the character "x" as the third character.
(CBX ....• identifies a location which was originally written
for the $B device command.)
These conventions may be altered
in cases where the command identification characters are
redefined after original development.
5.
The main processor CSECT is HASPCO~~, all other CSECTs are
defined via the symbol field of the $COMGRUP macro; specified
starting with the characters "HASPC".
HASP Command Processor - Page 4.5-9
85
HAS P
Register Conventions
The Command Edit Routine passes control to the control section
(CSECT) which contains the appropriate command sub-processor.
At the point the Command group entry routine receives control,
the registers will contain the following:
reg
RO
Rl
WA
WB
WC
WD
WE
WF
BASE3
BASEl
BASE2
SAVE
LINK
RIS
contents
unpredictable
entry offset from the Command entry offset
unpredictable
unpredictable
unpredictable
first operand pointer (zero if no operand)
4
last operand pointer
base for CSECT
HCTDSECT address
beginning of main Command Processor
PCE address
unpredictable
unpredictable
If more than one command appears within the group, the value of
register Rl will be set by the $COMGRUP entry routine to a value
so that a $BRR Rl will enter the command sub-processor.
HASP Command Processor - Page 4.5-10
86
HAS P
4.5.4
HASP COMMAND PROCESSOR MACROS
To facilitate flexibility in the development and possible modification of the Command Processor a macro package is included
within the assembly source deck. This section is intended to
supplement the HASP Command Processor Source listings obtainable
from the HASP generation and assembly process in assisting the user
to understand the generated code as specifically used in the
current HASP as distributed.
Each HASP Command Processor macro may be dependent upon the
definitions contained within the Command Processor source deck as
well as other members of the HASP source library. These macros
are catagorized as follows:
ORGANIZATIONAL
Macros which.provide basic definitions and
are closely associated with the organization
of the processor.
BASE2 SERVICES
Macros which call upon the main Command
Processor to perform a service (display a
reply) •
CONDITIONAL IN-LINE FUNCTIONS - Macros which perform the function
in-line or links to a routine which performs
the desired function.
RELOCATABILITY AIDS - Macros which assist in keeping the overlay
CSECT relocatable around $WAIT or implied
$WAIT situations.
The macros which are supplied under each cateqory are summarized
in Table 4.5.4.
The following conventions are used in specifying
parameter requirements:
"parameter=** -"
keyword parameter is required
"parameter=text -"
the assumed value if the keyword parameter
is not specified
"parameter _"
the parameter is an optional positional
parameter
"parameter - Required" . . . the parameter is a required positional
parameter.
HASP Command Processor - Page 4.5-11
87
HAS P
Table 4.5.4
Command Processor Macro Summary
Op-Code
Definition
ORGANIZATIONAL:
$COMWORK
$COMGRUP
$COMTAB
COMMANDPROCESSORWPRKAREA (symbolic (iefinitions)
DEFINE GROUP OF COMMAND SUB-PROCESSORS
DEFINE COMMAND TA~LE ELEMENT
BASE2 S~RVICES:
$CRET
$CWTO
RETURN TO MAIN COMMAND PROCESSOR
WRITE TO OPERATOR
CONDITIONAL IN-LINE FUNCTIONS:
$CFCVB
CONVERT TO BINARY
$CFCVE
CONVERT TO EBCDIC
$CFDCTD
DEVICE CONTROL TABLE DISPLAY
$CFDCTL
DEVICE CONTROL TABLE LOCATE
$CFINVC
REPLY INVALID COMMAND
$CFINVO
REPLY INVALID OPERAND
$CFJDCT
FIND JOB'S DEVICE CONTROL TABLE
$CFJMSG
DISPLAY JOB INFORMATION MESSAGE
$CFJSCAN
SCAN JOB QUEUE ASSISTANCE
SELECT A ROUTINE BASED ON CHARACTER
$CFSEL
VERIFY CONSOLE CONTROL OVER JOB
$CFVQE
REL0C,ATIBILITY AIDS:
$ARR
ADD RELATIVE· REGISTER
$BRRBRANCH RELATIVE REGISTER
$SRR
SUBTRACT RELATIVE REGISTER
HASP Command processor - Page 4.5-12
88
HAS P
Organizational Macros
$COMWORK
- COMMAND PROCESSOR WORKAREA (symbolic definitions)
This macro adds to the PCEDSECT definitions for
fields located in the Command Processor PCE workarea.
Additional
symbolic constants for BASE2 services
and some externally defined parameters are defined.
$COMGRUP
- DEFINE GROUP OF COMMAND SUB-PROCESSORS
This macro defines the Command Processor overlay
control section via the $OVERLAY macro.
It provides
an optional entry point routine which locates the
command sub-processor for the commands which belong
to the group and sets register Rl to the relative
address.
(The symbol field must be specified for
this macro.)
n positionals - Each positional specifies the command
identification characters for the corresponding
command sub-processor located within the group.
Example:
specification
command
AA
$AA
DA
$DA
$B device
$C device
$p
$S
$D I jobname I
B
C
P40
S40
·D7D
sub-processor entry point name
CM
CDA
CB
CC
CP40
CS40
CD7D
PRTY=** - Priority of the HASP overlay defined by
the macro.
DELAY=NO - The sub-processor will be entered via
$BRR Rl macro instruction.
If "YES" is specified
Rl will contain the appropriate relative entry point
address and control will be given to the statement
following the macro statement.
(More than one positional must be specified if Rl is to be set or the
branch is to be executed.)
HASP Command Processor - Page 4.5-13
89
HAS P
$COMTAB·
l)EFlNECOMMAND TABLE ELEMENT
'rphiarntiloro defines an e:Lement in.the command
. SELECTION TABLE which is \1sedby the Command Edit.
Routine for identifyingle.gal cQmmands, eliminating
u~authorized input sources, . and entering the correct
. • command group CSECT".
.
verb- Required. - The .command identification
character(s) corresponding to the $COMGRUP positional
parameter. specific~t;.ionfor the command. No two
$COMTAB macro staternentsmay specify the same identificationcharacter string. All macro statements
creating entries for the same command verb will
appeaX' in consecut.i.y~ statements with the statement
which specifies a single identification character
last.
2roue -:-.Re9uir7d -.The exact c::haracters used in ~he
spec~f~cat~on ~n the sytnbolf~eld of the appropr~ate
$COMGRUP macro statement.
REJECT= - The command source rejection mask. One or
more of the following symbols may be specified as
follows:
"COMRMT" - reject command if entered from a
remote
.
"COMS"
- reject command if entered from a
console not authorized for SYSTEM
control
"COMO"
- reject command if entered from a
console not authorized for DEVICE
control
.
"COMJ"
- reject conunand if entered from a
console not authorized for JOB
control
Rejection of either a remote or a console not
authorized for SYSTEMappear$'as follows;
naEJECT=COMRM'r+COMS"
HASP
90
Command
~roQ~ssor
-Page 4.5-14
HAS P
Figure 4.5.5 - Selection Table Element
(variable)
COMTOFF
COMTFL
COMTVB
identifiers
overlay constant
COMTOFF
=
Offset for the overlay control section to
locate the command sub-processor entry point.
COMTFL
=
Rejection flags.
COMTVB
=
Command identification characters.
Verb with:
1.
First character of the first operand.
2. "
X' FF'
If X'FF' is specified all commands which
have not been specified by the previous
entries in the table will be considered
"selected" .
HASP Command Processor - Page 4.5-15
91
BASE2 Services
$CRET
.... RETURN TO MAINCOMMi\NP'PROCESSOR
"/:' ....:
. . ....
.'
'.:.':':<~'::';"':
MSG= .... "Addressu~i~~heIllesSage to be moved to
COMMAND area fordispl.ay,.(I,.::::Qperand, of a
non-register fOrrnis reqUi+ed.) uMSG=OK" indicates that themai:n.processori.st6display the
OK mes S. age • '
,
L= .... "Value" reptesen'tingthe len.gth of the message
that is to be mcrV'ed or has already been moved.
$CWTO
- WRITE TO OPERATOR
REGISTERS USED: RO,Rl, WA, LINK, Rl5
MSG:::: - "Address" of the message to be moved to
COMMAND area and d;L~pJ.C1yed. (L=operandof a nonregister form is required.)
L=** -,"Value" representing the length of the message that is to be moved or has a1re~dybeen moved.
HAst? Co~~ndProce$SQ):,'~
92
,Page 4.5 .... 16
HAS P
Conditional In-Line Functions
The HASP Command Processor as distributed provides for the
ability of the author of the command sub-processor to specify
whether or not the code which performs the function is in-line or
out of line.
If an out of line routine is used the name and
location of the subroutine must be defined. This is accomplished
with parameters standard for all function macro instructions
with the exception of $CFJSCAN as follows:
TYPE=CALL - The macro statement is not a definition form of
the macro.
"TYPE=DEF", the macro statement defines the
subroutine form of the function and return linkage must be
provided.
SYMBOL=address - The address of the "TYPE=DEF" version of
the macro instruction. This indicates that only linkage
to the "TYPE=DEF" version is to be provided.
If neither
"TYPE=DEF" or "SYMBOL=" parameters are specified the code
will be generated in-line with no return linkage.
$CFCVB
- CONVERT TO BINARY
This macro converts the numeric portion of a
command operand to one or two numeric values.
REGISTERS USED: RO, Rl, LINK, Rl5
RO - contains the last number converted.
Rl - contains the next to last number converted
(last number if the only one or the last is
smaller than the previous).
POINTER=(Rl) - The address of the COMPNTR field
which addresses the operand containing one or more
numerical values separated by dash (-).
.
NUM=2 - return two values.
"NUM=l", one value is
sufficient (Rl will be unpredictable on return) .
NOK=** - Address of the error exit routine if the
operand does not qontain a number or if the number
is too large.
$CFCVE
- CONVERT TO EBCDIC
This macro converts the number in register (RO) to
printable EBCDIC and sets the five resulting digits
in the first five characters of the PCE area
COMDWORK.
REGISTERS USED: RO, LINK
VALUE=(RO) - The positive binary half-word value
to convert to EBCDIC.
If the register form is not
used, the value is contained within the address~
half-word.
HASP Command Processor - Page 4.5-17
93
HAS P
$CFDCTD
'- DEVICE CONTROL TABLE DISPLAY
This macro di~playsthedevice name, unit address,
and status Of thfiiDCT"requested.
REGISTERS USED: RO,Rl, w~, LINK, Rl5
DCT=(RI) - The address of ,theDCT to displaYL
$CFDCTL
- DEVICE CONTROL TABLE LOCATE
This macro converts the abbreviated form of the
device name to the long form (if abbreviated form
is specified) and searches the OCT chain for a
matching device.
,
REGISTERS USED: RO,Rl, R15, LINK
RI - contains the'address of the DCT found or zero
if no DCT found.
POINTER =(RI) - The address of theCOMPNTER field
which addresses the operand containing the device
name (abbreviated).
$CFINVC
-REPLY INVALID COMMAND
This macro returns to the Main Command Processor and
causes the display "tNYJ\LID COMMAND".
$CFINVO
- REPLY INVALID OPERAND
This macro move:seight characters, starting with
the first character'of the "current" operand to
the COMMAND area and returns to the Main Command
Processor caus:i.ng the display of "operand INVALID
OPERAND"
OPERAND=(RI) -The address of the operand to display.
$DFJDCT
- FIND JOB'S DEVICE CONTROL TABLE
This macro searches the DCTchain for an active
printer, punch, or reader DCT which is assigned
to a procesor who~e PCE contains a pointer to the
HASP, job queue entry belonging to the desired job.
If the device is not found exit will be to. the
instruction inullediately follOwing the $CFJDCT statement(in-line codever~ion);otherwise, exit will be
to the instruction plus 4 "(NSI+4).
REGISTERS USED: aI, LINK, Rl5
JOBQE= (Rl) -< The address of the HASP job queue
entry for, the desired job.
HASP .Command Processor' - Paqe 4.5-18
94
HAS P
$CFJMSG
- DISPLAY JOB INFORMATION MESSAGE
This macro sets into the COMMAND area of the PCE
the information required for the JOB INFORMATION
MESSAGE and displays the message.
REGISTERS USED: RO, Rl, WA, LINK, R15
JOBQE=(Rl) - The address of the HASP job queue
entry for the desired job.
JDCT= - The address of the $CFJDCT TYPE=DEF macro
which may be used· to locate the job's DCT.
Register
form is prohibited~
CVE= - The address of the $CFCVE TYPE=DEF macro
which may be used to convert numeric information
to EBCDIC. Register form is prohibited.
JOB= - This parameter may be ignored by the macro~
however, if specified as "JOB=SET" the text "JOBj"
is assumed by the expanded routine to have been set
in the COMMAND area for the desired job.
OPT= - This parameter may be ignored by the macro~
however, if specified as "JOB=Q" all jobs given to
the macro expansion are queued (not active) or
if specified as "JOB=A" all jobs given to the
expansion are active.
$CFJSCAN
- SCAN JOB QUEUE ASSISTANCE
This macro is used to assist in scanning the job
queue. As each entry is located the user's PROCESS
routine is entered. The user examines the entry,
performs whatever function desired on the entry;
and returns to the symbol specified by the "NEXT="
operand. When the end of the queue is encountered,
control is given to the instruction following the
macro instruction. An optional feature of the macro
is to allow the PROCESS routine an "IGNORE' entry
to the generated code to indicate the current job
entry is not acceptable to the PROCESS routine.
If
the "IGNORE=" option is specified the corresponding
"EMPTY=", option is required.
Register 1 is the
scan register and is assumed to be unaltered by the
user PROCESS routine.
The "TYPE=DEF" option is not
permitted for this macro.
REGISTERS USED: Rl, BASE2
RI - scan register
BASE2 - found/not found switch (in addition to
processor base.
HASP Command Processor - Page 4.5-19
95
HAS P
PROCESS=** - Address of the user's job queue element
processing routine.
Register form prohibited.
IGNORE= - Symbol to be used to define the entry to
continue scan when the current job entry is not
of the desired type.
NEXT=** - The symbol to be used to define the entry
to continue scan when the current job entry is
of the desired type.
EMPTY= - The name of the user exit routine desired
to be entered when the job queue is found to be
empty of jobs of the desired type.
Register form is
prohibited.
$CFSEL
- SELECT A ROUTINE BASED ON CHARACTER
This macro matches the designated input character
against a list of arguments and transfers control to
the routine designated by the corresponding address.
If no match is found, the next sequential instruction
is entered.
REGISTERS USED: Rl, LINK, Rl5
n positionals of form: (character, address) - Each
positional "character" sub-parameter specifies an
argument to compare against.
The corresponding
address sub-parameter indicates the address of
the desired routine to enter if the character matches
the argument.
Regi'ster form is prohibi ted.
OPERAND=(Rl) - The address of the designated input
character to examine.
$CFVQE
- VERIFY CONSOLE CONTROL OVER JOB
This macro tests COMFLAGS field of the PCE to determine if the input source is a remote.
If the source
is a remote, the not OK routine will be entered
unless either the print or punch route codes for the
indicated job specify the remote. Otherwise the OK
routine will be entered.
REGISTERS USED: Rl, LINK
JOBQE=(Rl) - The address of the HASP job queue entry
for the desired job.
OK= - Address of the routine desired to be entered
if the console has control over the job. The
address may be the symbolic register containing the
address if specified as "OK=(register,BCR)" or
"OK=(relative register,$BRR).
HASP Command Processor - Page 4.5-20
96
HAS P
NOK= - Address of the routine desired to be entered
if the console does not have control over the job.
The address may be the symbolic register containing
the address if specified as ''NOK=(Register,BCR)" or
"NOK=(relative register,$BRR).
Either "OK=" or
"NOK=" parameters must be specified.
Relocatability Aids
$ARR
- ADD RELATIVE REGISTER
This macro instruction is used in conjunction with
$SRR to restore the specified register to refer to
the true address of relocated information.
register - Required - The symbolic register containing the address to be made true.
$BRR
- BRANCH RELATIVE REGISTER
This macro instruction is used in conjunction with
$COMGRUP to enter a sub-processor routine using the
offset provided by the $COMGRUP routine.
condition - Condition required to be met in order
to branch.
If this parameter is omitted, no comma
should be written to signify its omission.-"Condition code" may be specified by the character
strings:
(E, NE, H, L, NH, NL, Z, NZ, P, M,
NP, NM, 0 or NO) .
Register - Required - The symbolic register containing the offset.
$SRR
- SUBTRACT RELATIVE REGISTER
This macro instruction is used to make an addr~~s
pointer relative for possible relocation before
next referral to the information contained at
the address.
register - Required - The symbolic register containing the address to be made relative.
HASP Command Processor - Page 4.5-21
97
HAS P
4.6
OPERATOR CONSOLE ATTENTION PROCESSOR
This processor is included in HASP only if the value of the
HASPGEN variable &NUMCONS is greater than 0 (see section 7.1).
The HASP interface to OS Console Support if &NUMCONS=O, is
described in Appendix 12.15.
4.6.1
Operator Console Attention Processor - General Description
The function of this processor is to stage a read on a console
whenever an attention is received from that console.
4.6.2
Operator Console Attention Processor - Program Logic
During HASP initialization, the first three words of the OS Console
Attention Routine (IEEBA1) are overlayed with instructions which
cause lOS to enter the HASPATTN routine of this processor whenever an
attention interrupt occurs.
When an attention request is signalled by a console device, HASPATTN
saves the device address in the processor's PCE workarea, $POSTs
the PCE, and POSTs HASP.
When the Attention Processor is dispatched, it locates the physical console whose address is in the processor's PCE workarea and
links to the $WTO Processing Routine (see Section 5·.7) to queue
a read on. that console.
Console Attention Processor - Page 4.6-1
98
HAS P
4.7
CHECKPOINT PROCESSOR
4.7.1
CHECKPOINT PROCESSOR - GENERAL DESCRIPTION
The purpose of this processor is to write the necessary information onto disk to affect a subsequent restart of the system.
This processor will write the information at a predefined time
increment and at the completion of each stage of each job.
4.7.2
CHECKPOINT PROCESSOR - PROGRAM LOGIC
The first entry into the Checkpoint Processor is into a section which initializes the processor. This section issues a
&GETUNIT macro-instruction to obtain a DCT for a disk and
completes this DCT by inserting the event wait field address,
track to be written, and the buffer address.
The information to be checkpointed consists of the Job Queue
which contains the status of each job in the system, the track
allocation map which indicates the track groups of each disk
that have been assigned, a save area wh"ich contains added information as to the status of the system, the print checkpoint
table which is used to effect a warm start of the jobs being
printed, and (if generated) the Job Information Table which
contains additional information concerning each job in the
system. The Job Queue and the Job Information Table reside
within the checkpoint buffers, but the remaining fields must
be moved into these buffers.
The track allocation map is the first to be moved and the
track groups that have been reserved for the jobs that are
currently executing and reading in are returned to the track
allocation map to avoid loss of tracks in case of an emergency
restart. Next the write buffers are completed by moving the
save area and the print checkpoint tables. An :;iEXCP is issued
to write the checkpoint buffers and a $WAIT on I/O is initiated.
The Job Information Table (if generated) is written with CCW's
which are chained to the CCW's used to write the rest of the
checkpoint information. The Job Information Table is not
written with each checkpoint but only when the processor
which requests the checkpoint indicates that he wishes the
JIT to be written. This indication is made by setting the
"JITJCKPT" bit in the n$JITSTAT" field to one.
Checkpoint Processor - Page 4.7-1
99
HAS P
At the completion of the I/O operation, the HASP ECB is posted
and the timer is reset to a predefined time increment thqt was
specified as a HASPGEN parameter. A test is now executed to '
determine if the previous write was successful and if so, a
$WAIT macro-instruction is issued to place the processor into
an inactive state until the time increment has expired or a
stage of a job is completed.
If the previous write was unsuccessful, a message is issued
to indicate to the operator that a restart is needed and a
permanent HASP $WAIT state is entered so that no further checkpoint will be attempted.
Checkpoint Processor
100
~
Page
4.7~2
4.8
ASYNCHRONOUS INPUT/OUTPUT PROCESSOR
4.8.1
ASYNCHRONOUS INPUT/OUTPUT PROCESSOR - GENERAL DESCRIPTION
Since the completion of all HASP I/O operations are signalled
asynchronously with HASP operation via lOS channel-end appendages, these completions must be queued by the appendage
until all HASP processors can be synchronized to receive the
notification. The purpose, then, of the Asynchronous Input/
Output Processor ($ASYNC) is to, at non-interrupt time,
notify all processors of their I/O completions which were
indicated by the OS I/O supervisor at interrupt time.
4.8.2
ASYNCHRONOUS INPUT/OUTPUT PROCESSOR - PROGRAM LOGIC
The buffers (and respective lOBs) associated with I/O channelends are chained, by the HASP channel-end appendages, for
later processing by $ASYNC.
In addition to the POST of the
HASP task by lOS on any I/O completion, the channel-end appendages also $POST the Asynchronous Input/Output Processor to
initiate its processing when the HASP task receives control.
When $ASYNC receives control, it dequeues the first buffer
from its chain of work (operating disabled, for this operation
only, since its chain is updated at interrupt time).
The
Device Control Table entry (OCT) associated with this buffer
is located and the active I/O count for the device is reduced
by one. Next the user's EWF address is extracted from the
buffer and interrogated, and action is taken according to the
following algorithm:
EWF = 0
User does not want notification of completion
of I/O operation (always a write). The buffer will be returned to the HASP buffer pool
by $ASYNC.
EWF
>
0
$POST the !'1/O!! bit in the EWF specified and
take no further action.
EWF
<
0
Enter a user provided routine at the address
specified by the absolute value of the EWF
field.
Addressability for the processor
routine is established and the address given
is entered via the Branch and Link instruction
with the buffer address in register "Rl."
No further action is taken upon return by the
processor.
After performing the indicated action, $ASYNC returns to dequeue
the next buffer from its chain and the above procedure is repeated. When the end of the chain is reached, $ASYNC enters
the $WAIT state until additional I/O completions occur.
Asynchronous Input/output Processor - Page 4.8-1
101
HASP
4.9
HASP LOG PROCESSOR
4.9.1
HASP Log Processor - General Description
The function of the HASP Log Processor is to construct output
buffers for eventual processing as part of each Job's printed
output.
Input to the Log Processor is through a queue of CMBs
associated with the queue pointer $LOGQUE which is defined in
the HCT.
The nature of the information in the input queue, and
consequently the printed output, varies as a function of the
HASPGEN Parameters &NUMCONS and &WTLOPT.
4. 9 • 2
HASP Log Processor - Program Logic
Log processing of a message buffer is started by locating the
corresponding execution PCE. PCEs for output buffers are found
by using the job number in the buffer, and "reply" message PCEs
are located by using the TCB address which is placed into bytes
six through eight of the buffer by the Operator Console Input/
Output Processor's asynchronous exit.
Reply message processing
is valid only for &NUMCONS>O.
A test is made to ascertain if the message will fit in the HASP
buffer currently being used by the job for log output.
If space
is available, the message is placed in the HASP buffer and the
CMB is processed as follows:
If the CMB status bits indicate a
"read" or a "log only" condition, then the CMB is returned to
the free queue via the routine $FREEMSG. The IIlog onlyll condition is used when &NUMCONS=O.
"Read" and "Write" have meaning
only when &NUMCONS>O. If the status bits indicate a IIwrite ll
condition, then the CMB is queued for display via the $WQUEBUF
subroutine.
HASP
102
L~g
Processor - Page 4.9-1
HAS P
4.10
OPERATOR CONSOLE INPUT/OUTPUT PROCESSOR
This processor and associated routines are included in HASP only
if the value of &NUMCONS is greater than 0 (see Section 7).
The HASP interface to the OS console support which is included
if &NUMCONS=O, is described in Appendix 12.15.
4.10.1
Operator Console Input/Output Processor - General Description
The function of the Operator Console Input/Output Processor is to
process all I/O activity on all operator consoles. The processor
also processes all console errors, making a number of retries.
If the error continues, the message is ignored.
4.10.2
Operator Console Input/Output Processor - Program Logic
The Operator Console Input/Output Processor examines each entry
in the console message buffer I/O queue,$BUSYQUE. Each bit in
the console byte is tested for an available console.
If one is
found the appropriate operation is initiated with a $EXCP macroinstruction and testing of the queue is resumed. When all available consoles have been processed, the processor enters a $WAIT
condition until an I/O interrupt is received on one of the consoles,
or until another console message is added to the queue.
Console Input/Output Processor - Page 4.10-1
103
HAS P
4.10.3
Operator Console Input/Output Appendage - Program Logic
The Operator Console Input/Output Processor's asynchronous exit
is entered from the Asynchronous Post Processor following the completion of an I/O operation on a console device. The lOB completion
code is tested for abnormal end, and if an error exists, an error .
routine is entered to retry the operation.
If the completion is normal the appropriate physical console bit
is shut off and the console byte is tested to see if the operation
is complete on all consoles.
If any bits are still on the Operator
Console Input/Output Processor is $POSTed and an exit is taken.
If all bits are now off and the operation code is a write, a link
is made to $FREEMSG, the Input/Output Processor is $POSTed and an
exit is taken.
If the completed operation is a read, the response is processed
according to type.
If the buffer contains a HASP command (i.e.,
an input message whose first character is a dollar sign ($)), it
is chained to the end of a queue for the Command Processor
($COMMQUE), the processor is $POSTed, and an exit is made with a
$POST of the Input/Output Processor.
If the message is a "reply", the reply number is converted to
binary and the corresponding entry in $WTORQUE is located.
Using
the information in the entry, the message is moved to the WTOR's
reply area and the WTOR's ECB is POSTed. The reply queue entry
is merged into the free queue ($WTORFRE), and a link is made to
the Log Queuing Routine. The Input/Output Processor is $POSTed
and exit is made.
If the message is not a "reply" or a HASP command, it is assumed
to be an OS command.
The message buffer is set to the proper
format for the Master Command Routine and an SVC 34 is issued.
When control is returned from the Master Command Routine, the
buffer is released, the Input/Output Processor is $POSTed and an
exit is made.
Console Input/Output Processor - Page 4.10-2
104
HAS P
4.11
TIMER PROCESSOR
4.11.1
TIMER PROCESSOR - GENERAL DESCRIPTION
The function of this processor is to reset the OS interval
timer after a timer interrupt has occurred.
4.11.2
TIMER PROCESSOR - PROGRAM LOGIC
This processor calls the IPOSTIT and ISETINT subroutines in
the $STlMER/$TTlMER Control Service Routine (see Section 5.6),
which causes the expired TQEs to be POSTed and the time interval specified in the first TQE in the TQE chain to be set
into the OS interval timer. The processor then waits for
another timer interrupt to occur. When the next timer interrupt
is processed, the asynchronous exit routine $POSTs this processor and the above procedure is repeated.
Timer Processor - Page 4.11-1
105
HASP
4.12
REMOTE TERMINAL PROCESSOR (360/20-STR)
4. 12. 1
Remote Terminal Processor (360/20) - General Description
The Remote Terminal Processor (RTP), although not a part of HASP
proper, can be considered in the same catagory as other HASP processors.
RTP is created by HASPGEN to operate as an extension of HASP on a
System 360 Model 20 used as a remote terminal to HASP.
RTP, in
the Model 20, maintains constant communications with HASP at the
central computer site via severalclas se s of telephone line s to 1) encode
and transmit jobs submitted at the remote site to HASP for execution on
the central computer, and 2) print and/or punch the output from
jobs thus submitted as the output becomes available.
Various techniques
are utilized by RTP and HASP to obtain maximum performance of both
the Model 20 devices and the communication line s used.
RTP currently
requires an 8K Model 20 with any reader and printer attached.
The
program can be made to operate in a 4K environment at a somewhat
degraded performance, with reduced ease of operation.
RTP has been designed to allow the addition of "background" functions
to operate in a multiprogrammed environment with normal remote terminal
proces sing.
Remote T'erminal Processor (360/20) -
106
Page 4.12-1
HASP
4.12.2
Remote Terminal Processor (STR Model 20) - Program Logic
Upon completion of the loading of the RTP program deck, control is
transferred to the initialization phase of the program to prepare for job
processing. Initialization first checks the card reader for the presence
of patch (REP) cards and, if present, makes the appropriate patches
(the RTP REP card format is identical to the HASP REP card as described
in Section 6.4). Encountering a /*SIGNON card within the REP cards
I
will cause initialization to replace the default remote SIGN-ON identification
and password by the contents of the card. After loading REPs, or if no REP
cards are present the dynamic configuration card (which follows REPs if
I
present) is decoded and appropriate commands for the system punch
s.elected are established.
(The formats of the SIGN-ON and dynamic
configuration card are given in the Model 20 Operator's Guide-Section 11.2).
The final proces s of initialization is the dynamic construction of the buffer
pool.
Buffers are built, according to the HASPGEN parameter &TPBFSIZ
until the memory size of the machine is reached or the assembly parameter
&NUMBUFS is reached. Construction of the buffer pool ov·erlays the complete
initialization routine. Control is then passed to the processing section of RTP.
Remote Terminal Processor (360/20) -" Page 4.12-2
107
HASP
The processing phase of the program consists of four principal processors
and a communications adapter (CA) I/O supervisor.
Allocation of CPU
time to the various processors is accomplished via a commutator.
A
p.roce s sor is entered into contention for CPU time by changing its commutator entry from a NOP to a BRANCH command.
Through the use of the
WAIT macro, a processor may await the occurrence of a certain event
and be entered, via the commutator, below the wait instruction upon
completion of the event.
Remote Terminal Processor (360/20) - Page 4.12-3
108
HASP
PROCESSORS
Card Read Proce s sor
Upon initial entry, this proces sor checks the system card reader
for ready status.
If the device is not ready, HASP is notified, via a
SEND EOT, of the lack of jobs to transmit, the CA receive processor
is activated, the card read processor is deactivated, and entry is made
to the commutator.
If the card reader was ready, the transmission phase
is immediately begun.
Cards are read (double buffered) and are passed
to the ENCODE subroutine which compre s se sand tran slate s the card
for transmission.
The encoded card images are blocked in a buffer
obtained from the dynamic buffer pool until the capacity of the buffer is
reached.
The buffer is then chained into a queue of buffers awaiting
transmission by the CA transmission processor to HASP in the central
computer.
Another buffer, if available, is obtained from the buffer pool
and is processed in a like manner.
When, and if, the supply of buffers
is exhausted, the reader proce s sor enter s a WAIT state to await the freeing
of a transmitted buffer by the CA transmis sion proce s sor.
When the
last card of the job stack has been read, a SEND EOT (zero word count
buffer) is queued for transmission and the steps described previously
are done to terminate transmission and activate reception.
In order to
Remote Terminal Processor (360/20) - Page 4.12-4
109
minimize CPU utilization, the card read processor-compression routine
only compresses "n" or more blank characters (where I'n" is the value
of the assembly parameter &CCT).
The format of transmission records
to HASP is described in Section 12. 9. 3.
Remote Terminal Processor (360/20) - Page 4. 12-5
110
HASP
Communications Adapter Transmission Processor
The CA Transmission processor removes buffers from an ordered
queue, dynamically being built by the Card Read Processor, and transmits their contents to HASP in the central computer.
All transmissions
are via the Communications Adapter-I/O Supervisor (CAIOS) which provides for line re-instruct at interrupt time to make optimum use of the
line (See CAlOS description).
As posting of successfully completed
writes occurs, the buffers are returned to the free buffer chain for
reuse by another processor.
This processor continues to dequeue and
transmit buffers, as they become available, until a buffer with a transmission word count of zero is encountered.
An EOT is then sent to HASP
to indicate the end of the input stream, the CA T ransmis sion Proce s sor is
deactivated and return is m.ade to the comm.utator.
Remote Terminal Processor (360/20) -
III
Page 4.12-6
HASP
Communications Adapter-Receive Processor
The CA Receive Processor is activated by the Card Read Processor
when it is determined that no jobs are available to transmit to the central
computer.
Upon being entered, CA Receive establishes communication
with HASP in the central computer to await the output of a previously
submitted job.
The lack of jobs to transmit is indicated by HASP with an
immediate EOT signal to the Model 20.
When this EOT is received, the
CA Receive Processor deactivates itself and activates the Card Read
Proce s sor to again check for the pre sence of job s to send to HASP.
If a job is avialable to be printed or punched, the CA Receive
Processor activates the Print/Punch processor and immediately begins
reading transmittal records into buffers obtained from the dynamic
buffer pool.
Buffers, thus filled, are placed in an ordered queue to
await processing by the Print/Punch Processor.
All CA reads are
via the Communications Adapter I/O Supervisor (CAIOS) which provides
for line re -instruct at interrupt time to make optimum use of the line
(see CAlOS description).
Processing continues, as buffers and/or
transmittal records become available, until an EOT signal is received
from HASP indicating end-of-job.
A buffer with a word count of zero
is added to the queue to inform the Print/Punch processor of the endof-job.
Remote Terminal Processor (360/20) -
112
Page 4.12-7
HASP
Communication is then, once again, established with HASP to
ascertain if additional output for this
121>
is available
output of the job which has just completed printing).
(i. e. the punch
After the additional
output has been processed, or if none existed, the CA Receive Processor
is deactivated, the Card. Read Proce s sor is activated, and return is
made to the commutator.
Note that this logic, of acti~ating the Card
Read Processor prior to beginning processing output from the next job,
allows the Model 20 Operator to interrupt print/punch processing, at
a job boundary, to transmit a job to the central computer.
Remote Terminal Processor (360/20) -
113
Page 4. 12-8
HASP
Print/Punch Processor
When activated, the Print/Punch Proce s sor begins dequeuing and
processing buffers from the queue (being) created by the CA Receive
Processor.
Records to be punched are indicated by "carriage control"
characters of X'OFOF' and are routed to the punch section of the processor.
In order to minimize CPU requirements, the print processor
does not provide for 1-7/8 encoding of print characters (see Section 12.9).
The 16 4 of 8 character s normally re se rved for 1-7/8 encoding are redefined for print records only, as additional print characters, thus
yielding a 64 character print set.
After reconstructing and printing or punching all records in a buffer,
that buffer is returned to the buffer pool for use by another processor.
When a buffer with a zero word count is encountered in the queue (indicating end-of-job), the Print/Punch Processor is deactivated, unless
records from the next job have already been queued, and return is made
to the commutator.
If a dynamic configuration card described the system punch unit as
DUMMY, the punch section of the proce s sor is dynamically altered (by
initialization) to immediately free all punch buffer encountered in the
Print/Punch buffer queue.
This results in eliminating punched output;
however, punch records are still transmitted to the Model 20.
Remote Terminal Processor (360/20) -
114
Page 4. 12-9
HASP
By setting the assembly parameter &PUNCH to 0, all code concerned
with processing punched output will be eliminated from RTP.
The
appropriate HASPGEN must be done on the central system to force all
punch output for a "punchless ll terminal to be processed locally.
Remote Terminal Processor (360/20) -
115
Page 4.12-10
HASP
Communications Adapter I/O Supervisor
The primary purpose of CAIOS is to assure the maximum possible
communication line utilization by re-instructing the line at the earliest
possible moment after completion of a previous generation.
All requests to read and/or write the communication line are passed
to CAIOS for execution by the CA processors. Upon receipt of an I/O
request
I
CAIOS immediately initiates the operation if the line is dormant
I
or queues the request to await completion of the currently active operation.
The completion of a CA I/O operation causes an interrupt which
immediately transfers control to CAIOS. If the operation indicated as
complete by the interrupt was successful (error free)
I
any queued I/O
request is immediately initiated. The Event Control Block 6f the requestor of the just completed I/O operation is posted (with a X' 7F') to
indicate the successful completion of the request.
Return is then made
to the interrupted processor. CAIOS recognizes and attempts to
correct all transmission errors encountered on any CA I/O operation.
Since both CA processors are designed to double buffer I/O requests
I
CAIOS insures virtually total line utilization during transmission periods.
Remote Terminal Processor (360/20) -
116
Page 4.12-11
HASP
4. 12.3
Remote Terminal Processor (360/20)-Assembly Parameters
The following indicates the variable name and function of certain RTP
assembly parameters which can be of general use.
&TPBFSIZ
defines the size of the buffers used for
transmission to and from the HASP system.
(Since this variable must exactly agree with
the corre sponding variable s in the HASP
system, the value s of both are automatically
set at HASPGEN time.
&NUMBUFS
limits the number of CA buffers created
dynamically at initialization time.
Initial-
ization will create buffers until the capacity
of memory, or the value of &NUMBUFS is
reached.
It is suggested that this value be
made large enough to allow sufficient buffering
(hence line load-leveling) to occur.
&CCT.
represents the minimum number of consecutive
blank characters which will be compressed
by the Card Read Processor.
This value
should never be less than 4 and, significantly
Remote Terminal Processor (360/20) -
117
Page 4. 12 .. 12
HASP
reduces CPU requirements by the Card Read
Processor as it is increased.
A value of 80.
will effectively prevent all blank compre s sion
(except on totally blank cards).
The value of
&CCT may never exceed 80.
&PUNCH
controls the existance of code within RTF to
process punch output received from HASP.
If &Pu.NCH= 1, punching capabilitie s will exist
in RTP.
&PUNCH=O, no punching capabilities will be
created in RTP (NOTE: the HASPGEN of the
central computer system must agree with this
option. )
&MACHINE
defines the Model of SYSTEM/360 on which
RTP is to operate.
be set to 20.
This value must presently
This option can subsequently be
used to assemble RTP, at HASPGEN time, for
any Model of SYSTEM/360 being utilized as a
HASP remote terminal.
Although certain parts
of this feature are currently in RTP, it is
incomplete and totally unte sted.
Remote Terminal Processor (360/20) -
118
Page 4. 12·-13
HASP
REMOTE TERMINAL PROCESSOR (SYSTEM/360-BS~
4.13
The following sections outline the basic logic flow of the MULTI-LEAVING
Remote Terminal Processor program for System/360 (including Model 20)
workstations utilizing Binary Synchronous communications devices. The same
workstation program is utilized for both the Model 20 and System/360 workstations with generation parameters for the machine type.
4 • 13 • 1
General Description
The MULTI-LEAVING Remote'Terminal Processor program is created by
HASPGEN to operate as an extension of HASP on any Model of SYSTEM/360
.
~
used as a remote workstation for HASP. This terminal program maintains
constant communications with HASP at the central site via several classes
of telephone
line~
to (1) encode and transmit jobs submitted at the remote
site for OS/360 processing on the central computer
I
and (2) print and/or
punch the output from jobs thus submitted as the output becomes available.
Optionally
I
if an operator console is attached to the remote system
I
informational and control facilities are provided. All of the above functions
may occur simultaneously. Various techniques are utilized by HASP and
the workstation program to obtain maximum performance of the remote
devices and the communications line.
Figure 4. 13. 1 indicates the basic
information flow through the system.
Remote Terminal Processor (System/360) -
119
Page 4. 13-1
HASP
Figure 4.13.1 MULTI-LEAVING Information Flow Diagram
HASP
A
• $COMSUP
y
$COMSUP
..
$COMSUP
CBUFFER
r'
~~
$COMSUP
$OUTBUF
$BUFFER
Queue
Pool
.. ~
~~
$TPPUT
~,
OACTBUFF
$TPGET
-...$TPPUT
TCTBUFER
Queue
A
·
• $TPPUT
,
· $TPGET
Pool
oJ
• $RRTNl
• $WRTN:L
INPUT DEVICE
TCTTANK
$TPGET ..
$TANKPOL
Device
Tank
N.otes:
$PRTNl
$URTNl
$WRTNla
--
Queue
· $PRTNl
• $URTNl
• $WRTNl
,
OUTPUT DEVICE
Solid lines indicate buffer or decompression tank flow with or without data.
Broken lines indicate data flow only.
Line comments indicate
process~r
responsible.
Remote Terminal Processor (System/360) 120
Page 4.13-2
HASP
4.13.2
Program Logic
The MULTI-LEAVING Remote Terminal Processor consists of an initialization
section
I
four principal processors
I
three communications interface processors
and a communications INPUT/OUTPUT supervisor. Allocation of CPU time to
the various processors is accomplished through a basic program commutator.
A processor is entered into contention for CPU time by changing its commutator
entry from a NOP to a BRANCH command. A single control block
I
the Total
Control Table (TCT) is utilized by all processors to provide for synchroni'zatlon
of concurrent operations
I
processor status information1re-enterabllity and both
inter and intra processor communication.
The following sections discuss the basic logic flow of the various
components of the program.
Communications Interface Processor - Output ($TPPUT)
This processor serves as the interface between the various input processors
and the communications INPUT/OUTPUT supervisor. Its function is to compress
and encode records for subsequent transmission to HASP at the central site.
$TPPUT is utilized as a subroutine by the various input processors and relieves
the input routines of the responsibility of data compression and transmission
buffer management. As records are submitted for transmission
I
$TPPUT
compresses the records according to a compression type generation parameter
Remote Terminal Proces sor (Sys tem/3 60) 121
Page 4. 13- 3
HAS P
(&CMPTYPE) and add the encoded record to its current output buffer.
When the current buffer is filled or terminated, it is chained in
an ordered queue for transmission to. HASP by the communications
INPUT/OUTPUT supervisor and a new buffer obtained.
Details of the
compression and encoding technique utilized by $TPPUT are included
as an appendix to this manual.
Communications Interface Processor -.Input ($TPGET)
This proces'sor serves as the interface between the various output
processors (Print, Punch, Console, etc.) and the Communications
INPUT/OUTPUT processor.
Its function is to decode and uncompress
transmission buffers received from HASP and to queue the decompressed
records to the appropriate processor for processing.
$TPGET is en-
tered from the commutator and processes buffers from a ordered queue
of received buffers established by the Communications INPUT/OUTPUT
supervisor.
Records received are deblocked into "decompression
tanks" and passed to the appropriate processor.
Synchronization and
passage of the tanks to the processors is accomplished through the
Total Control Table (TCT) for each processor.
$TPGET additionally
is responsible for metering the flow of each type of record from
HASP.
This also is accomplished by utilizing the various buffer and
tank limits indicated in the TCT for each processor.
Control Record Processor ($CONTROL)
This processor provides synchronization between the various processing
Remote Terminal Processor (System/360) - Page 4.13-4
122
HASP
functions at the workstation and the HASP SYSTEM at the central site.
Records from HASP (i. e. Request to start a function
processor by the$TPGET processor.
record
I
transmits a response
I
I
Control
etc) are queued on this
$CONTROL then processes the control
if required, through $TPPUT and initializes the
required functional proces sor.
Communications INPUT/OUTPUT Supervisor (COMSUP)
COMSUP maintains communications with HASP in the central CPU at all
times and is responsible for the transmission of all data to and from the remote
site. The data processed by COMSUP is .always in compressed buffer form
and passes to and from COMSUP via ordered queues esta0lished by $TPPUT
and for $TPGET.
The communications I/O is primarily interrupt driven and is completely
maintained by COMSUP (i. e. COMSUP is both the initiator and executor
of communications I/O).
During periods requiring no data transmission
I
COMSUP maintains a ."handshaking" cycle with HASP at approximately 2
·second intervals to insure full bi-directional capabilities and to avoid
unprogrammed
II
time-outs
II
of the adapter.
In addition COMSUP maintains
I
verifies and corrects (if necessary)
the MULTI-LEAVING block sequence checking feature and detects
I
logs
and retries all communications errors •
Remote, Terminal Processor (System/360) -
123
Page 4.13-5
HASP
Initialization Processor
The Initialization Processor receives control from the loader and
initializes the remote terminal program as follows:
1.
If the CPU is not Model 20, general registers 1, 2, and 3
are loaded to establish 16 K addressability.
2.
Replacement (REP) cards are read from READER 1 for possible
modifications to the program. The format of the REP card
is as follows:
Col.
2-4
REP
Col.
9-12
Replacement address - hexadecimal address
of the first half word of storage to replace
(if blank the previous REP card is continued)
Col.
17-n
XXXX I
xxxx
I
•••
xxxx replacement data -
one or more half word groups of hexadecimal
data separated by commas
Col.
n+1
Col.
n+2 - 8 0 comments - any text
blank - terminator for the replacement data
Each REP card is printed on PRINTER 1 when read as a record of program
modification. REP reading is terminated when either a blank card (blank in
Col. 1-5) or a /*SIGNON card is encountered.
3.
The HASP ENVIRONMENT RECORDING ERROR PRINTOUT (HEREP)
is printed if the recording table is 1ntact from the last execution
Remote Terminal Processor (System/360) -
124
Page 4.13-6
HASP
of the program; otherwise, a new table is created for future
recording and print out.
4.
Interrupt PSW' s are set for non Model 20 CPU's.
5.
The communication adapter is enabled and communications
established with HASP as follows:
a. Write SOH-ENQ to HASP
b.
Read for DLE-ACKO from HASP
If I/O errors occur or HASP responses do not match the expected
sequence
6.
I
the sequence is repeated.
The proces sor constructs a buffer pool over itself and queues
the SIGN-ON record for transmission to HASP.
7.
I/O PSW' s are set (I/O old points to commutator) and control
is passed to the communication adapter interrupt routine.
Print Service Processor -
$PRTN1
The Print Service Processor's major functions are dequeuing decompression
tanks containing print information from the printer Total Control Table,
examining the sub-record control byte for carriage control information,
performing required carriage control, printing the information on the designated
printer, and releasing the used decompression tank to the pool. The processor
also provides event control upon dequeuing and releasing the "tanks". If
no console typewriter is attached to the system and the value of the user
option &PRTCONS is not zero, the processor will set status information
Remote Terminal Processor (System/360) 125
Page 4.13-7
HASP
at the end of each print data set which allows the console processor to queue'
operator messages for printing.
Input Service Processor -
SRRTNI
The Input Service Processor supports various card readers used for the
purpose of submitting job streams to HASP and in the case of Model 20
DUAL 2560 MFCM serves the functions of punch service processor. The
processor provides error analysis and recovery for supported devices.
Execution begins with the initial read routine which continuously attempts
to read cards from the designated card reader.
In the case of a DUAL 2560
control is passed to the punch routine if the primary feed is empty. If reader
is a DUAL 2520 or 1442 the routine will check the first card for blank and
if so pass control to the punch preparation routine; otherwise subroutine
$TPOPEN is called which sends a request to send a job stream to HASP.
When permission is received the job stream submission routine is entered
which reads cards into one of two decompression tanks calling the $TPPUT
processor which compresses the data and schedules transmission to HASP.
At end-of-file $TPPUT is used to signal HASP and control is passed to the
initial read routine.
The DUAL 2560 punch routine attempts to dequeue a decompression tank
from the Total Control Table. If successful the card image is punched and
the used "tank" is released to thp. pool.
The routine continues to dequeue
and punch for a maximum of 100 cards;
this time tests are made to determine
Remote Terminal Processor (System/3.60) 126
Page 4.13-8
HASP
the existance of cards in the primary feed.
The tests are also made in the
event of no tanks available for dequeuing.
If the tests are negative the
processor continues to punch cards; otherwise control is passed to the
read routine following the initial read.
The processor provides event control
upon dequeuing and releasing decompression tanks.
DUAL 2520/1442 punch preparation routine tests for:
1.
Operator Signal -
changing of the data dials, . SRI command,
or unsolicited device end.
2.
(Depends upon configurati6n).
Presence of Decompression tanks for punching.
If the operator signals, the routine passes control to the initial read
routine.
If a
II
tank
II
is queued to the device Total Control Table control
is passed to the Punch Service Processor ($URTNl).
Punch Service Processor -
$URTNI
The Punch Service Processor's major functions are dequeuing decompression
tanks containing print .:.rlformation from the punch Total Control Table
the information into cards on the designated punch
II
tanks
II
to the pool.
I
I
punching
and releasing the used
The proces sor also provide event control upon de-
queuing and releasing the "tanks
erroneous punching of data.
II
in addition to error recovery upon
If the device is a DUAL 2520 or 1442 control
is passed to the Input Service Processor ($RRTNl) after servicing output
"tank" .
Remote Terminal Processor (System/360) -
127
Page 4.13-9
HA,SP
Console Service Processor -
$WRTN1
If the remote terminal has an attached operator printer keyboard
..
the
I
console processor performs the following functions:
1.
Reads operator commands from the console keyboard.
2•
Examines the input for local commands (Model 20 only)
passing local commands to the command processor and
pas sing all other commands to HASP.
3.
Type operator messages contained in decompression tanks
queued to the console Total Control Table.
4.
Convert codes in the error mes sage log table to readable form
and type the resulting mes sages.
Execution begins with the processor testing for an operator command
in the console input
II
tank II waiting to be transmitted to HASP. If so the
console read in function is skipped and an attempt is made to send the
command to HASP. Control is passed to the console output routine which
tests for output messages.
the message
I
If so
I
the processor dequeues the tank
and releases the tank.
I
types
Control is then passed to the beginning
of the proces sor . If no output mes sages are pending the console logging
routine is entered 'which converts, types the message, and passes control
to the beginning of the processor. The console read routine tests for
operator requests and if so, reads the command from the keyboard
I
calls
the $TPPUT processor to compress the data and transmit the command to
HASP, and passes control to the console output routine. If the remote
Remote Terminal Processor (System/360) -
128
Page 4.13-10
HASP
terminal is a Model 20 the read routine tests for local commands and
calls the command processor which in case of ". S" command , posts. the
appropriate Service Processor and retur"ns.
Local commands are not
transmi tted to HASP.
The Console Service Processor without a console keyboard exists only
when the value of the user option &PRTCONS is not zero.
Execution begins
with a test for printer availability. If available, any console messages are
removed from the console output queue by the dequeue routine and attached to
the printer queue, allowing the Print Service Processor to print the message.
If no console messages are queued the processor will convert any log messages
into readable form, move the resulting message into a
II
tank II obtained from
the pool, queue it to the console output queue and pass control to the console dequeue routine. If the value of &PRTCONS is one and the printer is
not available console messages are allowed to accumulate to a maximum
queue limit. If the limit is reached prior to the printer becoming otherwise
available the printer is forced available and the messages are queued to the
printer with the sub-record control byte of the first message set to skip to
channel 1 before print. If the value of &PRTCONS is two and the printer
is not available to the console the processor will dequeue console tanks
and release them to the pool.
Remote Terminal Processor (System/360) -
129
Page 4.13-11
HASP
Total Control Table (TCT)
The Total Control Table is the major working storage area for the unit
record processors and is customized for each configuration and device supported
by the remote terminal program. Each basic TCT field may be referred to by using
symbols defined in the DSECT named TCTDSECT, however, each processor has
the option of uniquely referting to the fields directly by using the al terna te
three character prefix to each field name as follows:
TCT
=
General TC T prefix
CCT
=
Control record TCT
PCT
=
Printer TCT
RCT
=
Reader TCT
UCT
=
Punch TCT
WCT
=
Console TCT
Appropria te DSEC T' s are provided by generation macros in the event more
than one TCT of a given type is supported by the system. Basic control
fields appearing only in systems with model numbers above the Model 20
are as follows:
NAME
$pCTCOMn
DESCRIPTION
TCT addressability field - The commutator
branches to this field to give control to the
appropria te proces s or - the field contains a
BALR R7 ,0 instruction which sets up TCT
Remote Terminal Processor (System/360) 130
Page 4.13-12
HASP
NAME
DESCRIPTION
addressability for the processor - symbol
characters "p" and "n" uniquely identify the
TCT for the commutator
TCTSTRT
First two characters of unconditional branch
instruction
TCTENTY
.. S" type address constant pointing to the
appropriate proces sor - the field completes the
branch instruction which passes control to the
processor at the desired entry pOint
TCTRTN
Return to next entry in commutator - each
processor waits by branching to this field
of the TCT which in turn branches to the
commutator
TCTCCW
Actual CCW op-code used in last I/O on the
device - set by the processor and unit record
lOS
TCTDATA
Address of data area used for last I/O transfer
or address of input "tank" currently being
Remote Terminal Processor (System/360) 1 ') 1
Page 4.13-13
HASP
NAME
DESCRIPTION
compressed for transmission to HASP
TCTFLAG
CCW flags
TCTOPCOD
Op-code which will be inserted into the
TCTCCW field upon normal entry to unit record
IDS
TCTCCWCT
CCW count field - length of data last transferred or to be transferred
TCTSENSE
Sense information - set by unit record IDS
for error diagnostic purposes
TCTUCB
Device Address - contains hexadecimal
device address for SID and interrupt recognition
purposes - the high order bit of the field is set
on by the proces sor when wa.iting for HASP to
authorize job submission
TCTECB
Event Control Block - contains all bits stored
in CSW byte 4 since the last SID instruction for
the device - busy bit is set at SID and when
the processor desires to wait for unsolicited
Remote Terminal Processor (System/360) -
132
Page 4.13-14
HASP
NAME
DESCRIPTION
device end - busy bit is reset at device end
TCTALTOP
Alternate op-code for DUAL reader/punch
devices - processors requiring alternate opcodes have the option of setting the TCTCCW
field with the contents of this field prior to
entry to unit record lOS
TCTSAV1
Save area for the processor subroutine LINK
register
Basic fields which may appear in remote terminal programs for all
360 models are as follows:
TCTNEXT
Next TCT in the chain of TCTs
TCTFCS
Function Control Sequence Mask - used by
$TPGET processor to setup the FCS transmitted
to HASP for backlog control
TCTRCB
Record Control Byte - records from HASP which
have RCB bytes identical to this field will be
queued for output on the corresponding device
Remote Terminal Processor (System/360) 133
Page 4.13-15
HASP
NAME
TCTSTAT
DESCRIPTION
Status Flags - each bit has one or more meanings
which are dependant upon the processor
involved:
bit 0
=
TCTOPEN - always off indicating
device is in use by HASP output
(as appropriate)
bit 1
=
TCTACT - used by $TPGET to
determine which output devices
need more data - proces sors set bi t
1 when dequeuing output "tanks"
bit 2
=
TCTSTOP - device has been stopped
and is awaiting a· start command.
bit 3
=
TCT1052, TCT2152 - console
device identifier
bit 4 -
PCT only = TCT1403, TCT1443,
TCT2203, TCTPRTSW - indicates the
status of the corresponding printer if set the printer is available for
printing operator mes sages
bit 4 -
WCTonly
=:
TCTREQ - console request -
operator desires to enter a command
Remote Terminal Processor (System/360) -
134
Page 4.13-16
HASP
NAME
DESCRIPTION
bit 4 -
UCT only
= TCT1442
- the device is a
1442 with single stacker pocket
bit 5 -
RCT or UCT
= TCT2540
- TCT is for
a 2540
bit 5 -
WCT only
= TCTREL -
release requested -
an unsuccessful attempt has been made
to obtain a bu ffer for command transmission to HASP - the command is in
compressed form in the consoles "tank
waiting for a free buffer
bit 6 -
RCT/UCT = TCT14420, TCT25600 TCT is for a DUAL 1442 Reader Punch
or DUAL 2560 MFCM
bit 7 -
RCT/UCT
= TCT25200
- TCT is for a
DUAL 2520 Reader Punch device
TCTCOM
Pointer to corresponding commutator entry
TCTID
Optional field - two character identification
for local command processors
TCTINRCB
Optional field - exists when DUAL devices are
attached to the system - identifies the Input
Remote Terminal Processor (System/360) -
135
Page 4.13-17
ll
HASP
NAME
DESCRIPTION
Service Processor function as opposed to the
Punch Service Processor function identified by
TCTRCB - TCTINRCB is equated to TCTRCB if
no DUAL devices are attached
The following fields are normal device extensions and do not exist for
card reader devices when DUAL devices are not attached to the remote
terminal:
TCTTANK
Beginning of output "tank" queue - output records
appear in unit record image form
TCTBUFER
Beginning of output buffer queue - contains
records in compressed form
waiting for de-
compression into tanks
TCTTNKLM
Tank limit - maximum number of "tanks" which
may be placed in the "TCTTANK queue
TCTTNKCT.
Tank count - actual number of "tanks
II
queued
to the TCT
TCTBUFLM
Buffer limit - maximum number of output buffers
which may be placed in the TCTBUFER queue
Remote Terminal Processor (System/360) 136
Page 4.13-18
HASP
NAME
DESCRIPTION
before signalling HASP to suspend sending the
streams - limit is ignored for WCT
TCTBUFCT
Buffer count - actual number of buffers queued
to the TCT
Reader and console TCT's have extensions which are used as "tanks"
for records which are transmitted to HASP. These "tanks" belong to: the
device (2 for readers and 1 for the console) and are not released to the.
fltank~'
pool. The following field symbols are only defined for theTCT 's with.
prefix designators. RCT, WeT I and with DUAL devicesptJOT:
RCTTANK1, RCTTANK2
II
Tank" origin and working storage
RCTTRCB1, RCTTRCB2
Input RCB for HASP identification
RCTTSRC1, RCTTSRC2
Sub-record control byte = X'SO'
RCTTCT1, RCTTCT2
Count field - length of data portion
RCTTDTA1, RCTTDTA2
Data area - input card or operator command will be blank for the DUAL 2520 and 1442
while in output status
Remote Terminal Processor (System/360) -Page 4.13'"'!19
137
HASP
TABLE OF CONTENTS
PAGE
SECTION
4.14
Remote Terminal Programs (1130)
Introduction
4.14-1
4.14-1
4.14.1
Remote Terminal Processor (RTPl130)
Introduction
Commutator Processors
TPIOX - SCA I/O Control
TPGET ... TP Buffers From HASP
TPPUT - TP Buffers To HASP
RDTFO - 2501 Card Reader
RPFFT - 1442 Reader Punch
PRFOT - 1403 Printer
PRETT - 1132 Printer
CONSL - Console Keyboard/Printer
RTPET - Initializ.ation
System Subroutines
SGETQEL - Dequeue An Element
SPUTFQL - Enqueue A Free Element
SPUTAQL - Enqueue An Active Element
STPOPEN - Initiate Control Record
'8SRCHB - SearchUFCB Chain
SWTOPR - Type Message
SLOGSCA - Log SCA Error
SMOVE - Move A Variable Number Of Words
SXPRESS - Convert Card Code To EBCDIC
SXCPRNT - EBCDIC To Console Print
8XPPRNT - Convert EBCDIC To 1403 Print
SXCPNCH - Convert EBCDIC To Card Code
STRACE - Trace Machine Registers
SSDUMP - System Core Dump
Processor Subroutines
BSXIOS - SCA I/O Supervisor
DBLOCK - Deblock Data From HASP
TPCOMPR - Construct Output To HASP
DBUGSCAL - Trace SCA Interrupts
TPBUILD - Build TP Buffers·
4.14-3
4.14-3
4.14-4
4.14-6
4.14-6
4.·14 - 6
4.14-7
4.14-7
4.14-7
4.14-8
4.14-8
4.14-9
4.14-10
4.14-11
4.14-11
4.14-11
4.14-11
4.14-12
4.14-12
4 • 14 -12
4.14-13
4.14-13
4.14-13
4.14-13
4.14-13
4.14-13
4.14-13
4.14-16
4.14-17
4.14-17
4.14-18
4.14-18
4.14-20
HASP Remote Terminal Processor (1130) - Page 4.14-1
138
HASP
TABLE OF CONTENTS
(Continued)
SECTION
4.14.1
Continued
PAGE
Control Block And Data Formats
Chained List General Format
UFCB - Unit-Function Control Block
TPBUF - TP Buffer Format
Output Element (Tank) Format
Object Deck Format
REP Card Format
4.14-21
4.14-21
4.14-22
4.14-25
4.14-27
4.14-28
4.14-29
4.14.2
Remote Terminal Main Loader (RTPLOAD)
4.14-32
4.14.3
Remote Terminal Bootstrap (RTPBOOT)
4.14-33
4.14.4
Remote Terminal Program 360 Processing
(LETRRIP)
4.14-38
1130 Instruction Macros
4.14-39
General Information
Variable Internal Parameters
4.14-44
4.14-44
4.14.
4.14.5
4.14.6
HASP Remote Terminal Processor (1130) - Page 4. 14-ii
139
HASP
4.14
REMOTE TERMINAL PROGRAMS (1130)
Introduction
The 1130 MULTI-LEAVING terminal program is designed to operate on a
system with 8K words which contains the standard Binary Synchronous Communications Adapter.
The unit-record equipment supported may include any or all of the following
devices:
•
1442 Reader/Punch or Punch
•
2501 Reader
•
1132 Printer
•
1403 Printer
•
Console keyboard/Printer
Programs developed for the 1130 in conjunction with the HASP Remote Job
Entry feature are assembled using the OS/360 Assembler.
The 1130 instruction
set is generated thru the use of macro instructions (See Section 14.4.5) corresponding to the actual 1130 hardware commands. Additionally, pseudo (assembler)
operations are available to aid in the development of 1130 programs on the System
360.
The object decks produced by the
as Assembler are
subjected to further
processing by a program (LETRRIP) which condenses and changes the format of
the EBCDIC decks to facilitate 1130 loading ..
HASP Remote Terminal Processor (1130) - Page 4.14-1
140
HASP
The remote terminal system for the 1130 is composed of several programs
briefly described in the following paragraphs:
RTPBOOT - A bootstrap loader consisting of a single "load mode" format
card and several column binary and EBCDIC program cards.
The function
of RTPBOOT is to lib ootstrap" an EBCDIC format loader (RTPLOAD) into
1130 core.
RTPBOOT will load from either a 1442 or a 2501 card reader.
RTPLOAD - Loads into the upper segment of defined 1130 core and then
loads the main terminal program (RTP1130) into the lower extent of 1130
core. RTPLOAD also processes REP cards and performs the initial processing of /*SIGNON control cards.
RTP1130 - The main terminal processing program which provides the
MULTI-LEAVING support for the 1130.
The following sections provide more detailed information on the design
and implementation of the above programs.
HASP Remote Terminal Processor (1130) - Page 4.14-2
141
HASP
4.14.1
Remote Terminal Processor (RTP1130)
Introduction
The subsequent sections present the basic structure of the terminal program
for the 1130. Included, are descriptions of the commutator logic and associated
processors; system subroutines; processor subroutines; control block formats
and data block general formats.
The documentation presented is intended to be introductory in nature.
The user intending to modify the system should use the documentation in conjunction with a program listing which contains commentary in much greater detail.
HASP Remote Terminal Processor (1130) - Page 4.14-3
142
HASP
Commuta tor Proces sors
Distribution of CPU time to the processors concerned with the functions
necessary to support terminal devices is through programmed commutator
logic.
Each proces sor which needs CPU time and is dependent on external
I/O device rates is represented by a commutator entry.
The commutator
entry consists of the following basic elements:
•
A named commutator "gate" which takes the form of a branch to
the next commutator entry (gate closed) or a "NOP" if the entry
is active (ga te open).
•
A long form branch to the active commutator main ·':>utine used if
the gate is open.
•
A named return pOint for reference by the main commutator routine.
•
A named end to the commutator entry which is the address of the
next commutator entry.
The basic structure as defined may also contain register save-restore
sequences to be used for each entry-exit cycle through the commutator.
The processors entry from the commutator (gate open) usually provides
for a method of setting a variable entry to the segments of the processor
which are involved with waiting for I/O to complete or some system resource
to become available.
HASP Remote Terminal Processor (1130) - Page 4. 14-4
143
HASP
The general operation of the commutator involves the opening and closing
of processor gates
I
the setting of variable entry pOints within the processors
I
the initiation and associated wait period for I/O operations and the return to
the commutator to "share" the CPU during wait periods.
The last instruction
in the commutator is a branch to the "top" or first instruction in the commutator
which initiates the next cycle.
The current system does not provide for a
priority relationship among commutator processors.
The main commutator processors contained in the RTP1130 system and
briefly described in the following sections.
HASP Remote Terminal Processor (1130) -Page 4.14-5
144
HASP
TPIOX - SCA Input/Output Control Processor
Controls the transmission of data and/or control records between HASP
and RTPl130 via the SCAt All adapter I/O is initiated using the SCA I/O
Supervi Bor - BSXIOS.
TPGET - Processor for TP Buffers From HASP
Processes data received from HASP in the form of TP buffers or control
records preprocessed by TPIOX.
Control record processing is in the form
of "Request to start" or "Permission to send" functions.
Da ta buffers are deblocked, decompres sed, converted to appropriate
codes (1403 printer, 1442 punch, etc.) and queued for the specified comm·uta tor I/O proces sors •
Control information pertinent to the unique requirements of each data
type is provided through the associated UFCB.
TPPUT - Processor For Data Destined For HASP
Acquires a TP buffer from the free chain and collects data from defined
sources (card reader(s), console keyboard, etc.) to be processed (con,verted, truncated, compressed, etc.) and inserted into the buffer which is
queued for TPIOX transmis sion to HASP.
HASP Remote Terminal Processor (1130) - Page 4. 14-6
145
HASP
RDTFO - 2501 Card Reader Processor
A conditionally assembled processor which supports the 2501 card
reader as a job entry device.
The functions of monitoring for a 2501 "ready"
condition; reading cards; requesting permission to transmit to HASP; waiting
for permission to send; queueing data for TPPUT; transmitting "end-of-file"
conditions and device error recovery are contained in this processor.
RPFFT - 1442 Reader And/Or Punch Processor
A conditionally assembled processor which supports the 1442 - 5, 6 or 7
as a card reader, card reader/punch or as a card punch only.
The functions
to be performed are controlled by the assembly variables chosen and the use
of local operator commands, when applicable.
The reader sections of code
monitor for a "ready" condition; reads cards for transmission to HASP via
TPPUT; processes "end-of-file" communications and provide error recovery.
The punch sections of code wait for data to be punched through interrogation
of a queue developed by the TPGET processor and provide error recovery and
and punch termination procedures.
PRFOT - 1403 Printer Processor
A conditionally assembled processor which supports the 1403 printer
as a terminal output device.
The functions of monitoring for input to be
printed; simulating carriage control operations; processing
II
end-of-file"
HASP Remote Terminal Processor (1130) - Page 4. 14-7
146
HASP
. conditions; setting UFCB status information and error recovery are included
in this processor.
PRETT - 1132 Printer Processor
A conditionally assembled processor which supports the 1132 printer as
a terminal output device.
The functions of monitoring for input to be printed;
initialization of interrupt processing routines for the 1132 print scan operations; simulation of carriage control operations; processing "end-of-file"
conditions; setting UFCB status information and error recovery are contained in this processor.
CONSL - Console Keyboard/Printer Processor
Proces s es console keyboard input and prints on the typewriter mes sage s
originating from HASP or internal sources.
Keyboard input is initiated by activation of the "INT REQ" key and by
the interrupt routine which sets a flag and opens the console routine gate.
Note: The position of the "keyboard/console" switch is not interrogated and
input is assumed to be from the keyboard.
The value of the console entry keys
is read every communtator cycle and, if key
0
is on, stored in location
$ENTKEYS. All non-control character input is printed and the card code value
stored for investigation at EOF time.
If the first character of input is ".
II
(period) then the data is assumed to be a local command. All other data is
transmi tted to HASP for action as a HASP opera tor command.
HASP Remote Terminal Processor (1130) - Page 4. 14-8
147
HASP
Print input is obtained from a queue which originates locally and/or
from HASP.
Data to be printed may be EBCDIC or tilt-rotate code and
black or red ribbon.
RTPET - Initialization Processor
This special commutator processor is responsible for the initialization
functions necessary for the commencement of the 1130 terminal operation
ih conjunction with HASP.
The major functions performed are:
•
Sets the interrupt transfer vectors for RTPl130 operation.
•
Dynamically builds the TP buffer pool using the defined extent
of 1130 core; the end of the 1130 program and the defined TP
buffer si z e .
•
Builds a TP buffer containing the sign-on information processed by
RTPLOAD for transmission to HASP.
•
Establishes SCA communications with HASP and prepares TPIOX
for
II
sign-on II •
•
Opens the commutator gates for all SCA and input processors.
•
Disconnects ini tializa tion from the commutator.
•
Branches to commutator which initiates MULTI-LEAVING operation.
HASP Remote Terminal Processor (1130) - Page 4.14-9
, A 0
HASP
System Subroutines
The following are brief descriptions of the major subrou tines contained
in the RTPl130 program.
These subroutines are available for use by any
system commutator processor with the restriction that they; may not be used
at interrupt time.
input values
I
Detailed information concerning the calling sequences
I
etc. may be found in the listing of the RTPl130 program.
HASP Remote Terminal Processor (1130) - Page 4.14-10
149
HASP
SGETQEL - Dequeue An Element From a Chained List
Given the address of a chained list, SGETQEL returns the address of the
first element available in the list and removes the element and rechains the
list.
The chain field of the dequeued element is set to zero before returning.
If the chain is null, an indication is returned to the, us er.
SPUTFQL - Enqueue An Element In A Free Element Chain
Given the address of a free element chain pOinter and the address of an
element to be returned to the free chain
chain.
the element is returned to the free
I
The construction of the free chain is in random order depending on
system processor utilization of the free element chain.
SPUTAQL - Enqueue An Element In An Active Chained List
The address of an element supplied by the caller is used to build a
chained list in first-in, first-out order.
RTPOPEN - Initiate Control Record Transmission
Control record communications with HASP in the form of "Request to
start and IIPermission to send II sequences is the function of this routine.
ll
Input includes an indication of the control record type and a pOinter to the
UFCB for the device being processed.
HASP Remote Terminal Processor (1130) - Page 4.14-11
1
~
()
HASP
SSRCHB - Search UFCB Chain For Matching RCB
The RCB code supplied by the user is used to search the UFCB chain
for a UFCB with a matching RCB code. An indication of the status of the
search is returned to the caller.
SWTOPR - Type Message On Console Typewriter
The caller supplies the address of a message in EBCDIC and with
control information indicating red or black ribbon and the number of characters to be typed.
The addres s of a routine to be given control in the
event that the message cannot be processed immediately m'.lst also be
supplied.
-The message is queued for processing by the console typewriter
commutator routine.
SLOGSCA - Log SCA Error Messages On Console Typewriter
Error conditions associated with the SCA operation are logged on the
console typewriter for information and possible remedial purposes.
The
format of the message logged is:
SCA
LOG XXXXXXXX
Where the value of "XXXXXXXX is determined by the caller and is in
II
fact the contents of the ACC and EXT on entry to the routine.
An indication of the status of the request to log is returned to the caller.
HASP Remote Terminal Processor (1130) - Page 4.14-12
151
HASP
SMOVE - Move A Variable Number Of Words
This routine provides for the moving of a specified number of words
from a source block to a target block.
RXPRESS - Convert Card Code To EBCDIC
The card code (12 bit) input is converted to EBCDIC using a high
speed conversion algorithm in conjunction with a minimal conversion table.
Special consideration is given to "blank" conversion under the assumption
that most cards are dense with "blank" data.
SXCPRNT - EBCDIC To Console Printer Code Conversion
Converts a single EBCDIC character to the equivalent console printer
Tilt-Rotate code using a table look-up method.
SXPPRNT - EBCDIC To 1403 Printer Code Conversion
Converts a single EBCDIC character to the equivalent 1403 printer 6 bit
wi th parity code using a table look-up method.
SXCPNCH - EBODIC To Card Code Conversion
Converts a single EBCDIC character to the equivalent 12 bit card code
using a table look-up method and conversion algorithm.
HASP Remote Terminal Processor (1130) ... 4.14-13
IS?
HASP
STRACE - Trace Machine Registers
Stores the information shown below in a table of variable length.
entry is the result of the execution of the I inkage created by the
macro.
Each
STRACE
The trace table created at assembly time is circular.
Trace table entry:
Word
Description
1
Count of the number of entries for this $ TRACE
2
Location +1 of caller to $TRACE
3
Contents of ACC
4
Contents of EXT
5
Contents of XR1
6
Contents of XR2
7
Contents of XR3
The count of the number of entries is also stored in the STRACE
macro linkage.
The assembly of srRACE is a function of the variable &TRACE.
~SDUMP
- System Core Dump
A condition311y assembled subroutine which allows post-mortem or
dynamic dumps on either the 1132 or 1403 printer. SSDUMP is assembled if
&DEBUG SETA 1 is included in the RTP1130 source deck.
HASP
Remot~
153
Linkage to SSDUMP
Terminal Processor (1130) - Page 4.14
HASP
via location 0 is also established so that a post-mortem dump may be
taken by pressing system reset and start.
The linkage to use this subroutine dynamically is contained in the
system listing.
Note: The logic of the subroutine does not allow concurrent
operation of the selected printer and other devices.
HASP Remote Terminaf Processor (1130) - Page 4. 14 -15
1 '14
HASP
Processor Subroutines
The following are brief descriptions of the major subroutines which
may be used by commutator processors subject to the restrictions that these
routines are processor dependent in their operation. For example
I
the SeA
I/O Supervisor (BSXIOS) is used at initialization time and by the TP buffer
manager but cannot be simultaneously used by these commutator processors.
HASP Remote Terminal Processor (1130) - Page 4.14-16
155
HAS P
BSXIOS - Low Speed BSCA Input/Output Supervisor
Processes requests for transmit, receive or program timer functions
on the low speed binary synchronous communications adapter.
BSXIOS
initiates the requested function and prepares the interrupt programs for the
associated interrupt processing of the desired functions.
The status of the function performed by BSXIOS is contained in a communication cell which is addressed by a variable pOinter word. A communication cell is defined for both read (receive) and write (transmit) operations.
Various completion codes stored in the cells provide the status of the function
with respect to normal or abnormal termination.
BSXIOS expects the caller to provide the address of an appendage routine
to be entered at the termination (interrupt time) of every write operation.
The
purpose of the write end-of-operation appendage is to allow re-instruct (read
operation) of the communications adapter as soon as possible after the write
completion.
HASP Remote Terminal Processor (1130) - Page 4. 14-17
HASP
DBLOCK - Deblock, Decompress, Convert and Store Data From HASP
Locates a record (defined by RCB) in a TP buffer as specified by a
given UFCB, decompresses
area.
II
I
edits and moves data to a selected target
The target area must have the same format as described under
Output Element (Tank) Description
II •
The operation of DBLOCK includes the priming of the output tank
with an initialization value supplied by the user (usually the value of
a blank for the associated device); the updating of .control information in
the UFCB; the setting of control information in appropriate fields of the
output tank; the automatic entry to conversion and store routines unique
to the device associated with the UFCB supplied and the communication
of the status of the buffer being processed (end-of-file
I
end-of-block
conditions) •
HASP Remote Terminal Processor (1130) - Page 4.14-17.1
157
HASP
TPCOMPR- Construct Records For Insertion In TP Buffers
Constructs a logical record consisting of a physical input record ..
attached 1130 devices (card reader(s) I console I etc.).
The logical record
constructed consists of the original input after code translation, data truncation and/or compression (optionally) and attachment of the control bytes
necessary for HASP processing.
The control bytes are per the standard HASP
MULTI-LEAVING conventions.
The options listed below are set at assembly time to generate the
supporting code.
•
No compression or truncation
•
Trailing blank elimination only (truncation)
•
Blank and duplicate compression and blank truncation
The current version of TPCOMPR assumes card code input.
DBUGSCAL - Trace Routine For Low Speed SCA
This routine is conditionally assembled as a function of
II
&DEBUG II
and provides a trace of all SCAinterrupts in the form shown below. Entry
.is from BSXIOS .interrupt processing routines. External disabling of the SeA
trace function is provided through the entry keys.
The trace table 11mi ts are
preset to use the upper 8K of a 16K 1130 and must be changed either by
assembly or by the appropriate
II
REP " • See the program listing and refer to
locations DBUGSTRT and DBUGSTND •
. HASP Remote Terminal Processor (1130) - Page 4.14-18
158
HASP
The trace table format is:
Word
Description
1
Operation type (BSXIOPT)
2
DSW at interrupt time
3
BSXIOS Completion Code (BSXOPF)
4
Loca tion of interrupt
5
Data received/transmitted
6
Data transfer count
7
Read or write sequence index
8
Spare word
HASP Remote Terminal Processor (1130) - Page 4.14-19
159
HASP
TPBUILD - Constructs TP Buffers
Constructs TP buffers for TPIOX transmission to HASP.
inserted and length of insert are provided by user.
Data to be
TPPUT initializes this
routine by providing the buffer to be used and setting pointers and variables.
The data to be inserted is usually in the form a logical record as constructed by TPCOMPR.
HASP Remote Terminal Processor (1130) - Page 4.14-20
160
HASP
RTP 1130 Control Block And Data Formats
Chained List General Format
All
qu~ues
maintained within RTPl130 are of the chained list form and
consist of free queues and free queue pOinters and active queues and active
queue pointers. Free queues are chained in a random fashion while active
queues are maintained in a first-in, first-out order.
The general form of
a queue is:
QUEUE POINTER ...-__
Address of next element chain word.
Set to zero if no element.
ELEMENT CHAIN WaR
• • '. Variable length element.
ELEMENT CHAIN WORD
•
, • Variable length element •
•
• • La st variable length element
•
•
o
(Chain Word Set to zero).
Examples of chained lists are: TP buffers, console message tanks,
printer data tanks, punch data tanks.
The size and number of elements in
the queue is variable according to the nature of the queue.
HASP Remote Terminal Processor (1130) - Page 4.14-21
161
HASP
UFCB - Unit-Function Control Block Description
Each device which transmits data to or from HASP via the communications
adapter processors must be represented by a unit-function control block.
The general format of a UFCB is:
REFERENCE
WORD
DESCRIPTION
UFCBCNW
o
Chain word to next UFCB
UFCBNFO
1
Informa tion word •••
Input: Byte 0 = Reserved
Byte 1 = Input Code
= 0 for IBM Card
=1
for PTTC/8
= 2 for EBCDIC
UFCBSAR
2
Sta tus and RCB Code •••
B~eO=Sta~scluni~fuootioo
= X'90' if request to start sent from
input unit-function or if request to
start received for output unit-function
HASP Remote Terminal Processor (1130) - Page 4.14-22
162
HASP
= X'AO
I
If permission to start
received for input unit-function or
1f permission to start sent for output
uni t-function.
Byte 1 = RCB code associated with this UFCB
UFCBFCS
3
Function control sequence bit associated with this
UFCB (and RCB)
UFCBCOM
4
Address of commutator processor gate address for
processor associated with this UFCB
UFCBFQP
5
Tank free queue pointer for output devices or
address of input element for input devices
UFCBBFP
6
Queue pOinter for active TP buffers for output
deVices or end-of-file flag for input devices
UFCBBFC
7
Count of active TP buffers for associated device
UFCBBFL
8
Limit of active TP buffers for associated device
UFCBPBP
9
Buffer address of 'current buffer being processeca
by TPGET proces sor
UFCBPBA
10
Addres s of next RCB in buffer being proces s ed
HASP Remote Terminal Processor (1130) - Page 4.14-23
163
HASP
UFCBPBS
11
Position indicator for next RCB in buffer being
processed. Set to 0 if RCB right justified. Set
to 1 if RCB left justified.
UFCBPWD
12
Output device width
= 2*W/P where W = actual
width in characters and P
= 2 for
packed output
tanks or P = 1 for unpacked output tanks.
UFCBPRO
13
Address of data processing routine (usually a conversion program) for each character processed by $DEBLOCK .
UFCBSTO
14
Address of routine to store data processed by
"UFCBPRO" program.
HASP Remote Terminal Processor (1130) - Page 4.14-24
164
HASP
TPBUF - TP Buffer Element Description
All data transmitted to or from HASP is contained in variable length buffers
(variable at generation time) with the following general format:
REFERENCE
WORD
DESCRIPTION
TPBUFCW
0
Chain word to next TP buffer,
TPBUFST
1
Reserved
TPBUFCB
2
Buffer control word
Byte 0
=0
(Reserved)
Transmi t function •••
Byte 1
= Number of bytes
to be transmitted minus 2
for end sequence which is inserted bySSXI()S .•'
Receive function •••
Byte 1
=Number of bytes received"
Tim er function .•.
Byte 1 = Number of program tim$ 1ntenvpts processed
before ending timer operation
TPBUFDT
3
Start of data~rea of length d~f1ne4 QY .·;&TPStJF$~ti'
which includes •••
TPBUFHD
3
BSC header value indicating the function (Read,write,
timer) to be performed as defined bySCAfunCtion' indicators
HASP Remote Terminal Processor
165
-{l'l~ct
- Page 4.14-25
HASP
TPBUFBF
TPBUFFR
TPBUFSR
4
5
6
Controls equence •••
Byte 0
= BCB
Byte 1
= first
byte of FCS
Control sequence •••
Byte 0
= Second
Byte 1
= RCB
byte of FCS
Control sequence •••
Byte 0
= SRCB
Byte 1
= SCB
HASP Remote Terminal Processor (1130) - Page 4.14-26
166
HASP
Output Element (Tank) Description
Local terminal output devices (printers, punch, etc.) receive data via
elements or tanks which are built by the commutator routine responsible for
proces sing TP buffers transmitted by HASP.
The general format of thes e tanks
is described below.
REFERENCE
WORD
DESCRIPTION
TANKWRDA
0
Chain word to next tank
TANKWRDB
1
Reserved
TANKWRDC
2
Control wOlid
Byte 0 = Reserved for device use
Byte 1 = SRCB from record received
TAN KWRD D
3
Control word
Byte 0 = Reserved for device use
Byte 1 = Actual tank data count
TANKWRDE
4
Start of variable length data area determined at
generation time
Note:
The element chain word and the data area must start on even
1130 word boundaries.
HASP Remote Terminal Processor (1130) - Page 4.14-27
167
HASP
Object DeS(k Format
The following is the format of the object decks (RPT1130" RTPLOAD)
produced from OS/360 assembler output by LETRRIP.
Text Card
Qolumn(s)
Description
1
'T' for text card identification
2-3
Absolute 1130 load address
4
Word count of data field
5-72
Da ta field (maximum of 34 words)
73-74
Checksum of columns 1-72
75-76
Identifica tion
77-80
Sequence number
End Card
Columrt(s)
Description
1
1£' for end card identification
2-3
Entry point to program loaded
4-72
Reserved
73-74
Checksum of columns 1-72
75-76
Identification
77-80
Sequenc,e number
HASP Remote Terminal Processor (1130) - Page 4.14-28
168
HASP
REP Card Format
Column(s)
Description
1
Any legal EBCDIC punch
2-4
II REP II
5
Blank
6
Load address format field:
IIL" for listing option where the specified load address
corresponds to the OS/360 assembler listing.
"X" for absolute 1130 core addres s
7
Currently unused but usually punched "0 II for continuity
8-11
Load address for 'first data word and is incremented by 1
for each additional data word.
REP cards may be con-
tinued by leaving this field blank
12
Blank
13
Format field for data following.
Subject to same definition
as column 6.
14-17
Data field to be loaded in the location computed as a
function of columns 8-11
18
II
II
I
•
•
•
HASP Remote Terminal Processor (1130) - Page 4.14-29
169
HASP
Columns 19 through 78 in the same format as columns 13-18 with the
exception of column 78 which must be blank. A blank in columns 18, 24, ••• 72
terminates the scan of the card.
Note: The "L" option causes the specified data to be divided by 2
for conversion from 360 byte data to 1130 word data.
HASP Remote Terminal Processor (1130) - Page 4.14-30
170
HASP
Examples of REP Cards
1.
The following cards:
o
00
J,1,
],
56
23
RREP L02208 X4C00,L004E,X4400,XOOOF
RREP
X74FF,XOOOO,X7],0],
Would result in the code represented below starting in 1130 core
location 1104 (Hex):
2.
],],04
$B
39, ,L
J,1,06
$TSL
],5
],],08
$MDM
0,-]'
J,1,OA
$MDX
The following card:'
o
00
J,1,
],
56
23
RRER LO]'772 X4C],S,X],FFS
Would be ignored because columns 2-4 not equal to "REP"
HASP Remote Terminal Processor (1130) - Page 4.14-31
171
HASP
4. 14. 2
Remote Terminal Main Loader (RTPLOAD)
RTPLOAD is an EBCDIC format loader which is loaded by RTPBOOT
into the upper part of defined 1130 core.
The 1130 core definition (which
is a RMTGEN variable) is used to specify the origin of RTPLOAD.
The format
of RTPLOAD (and RTP1130) is given in Section 4.14.1 under Control Blocks
and Da ta Forma ts •
RTPLOAD also reads and processes "REP" cards as well as the optional
/*SIGNON control card.
The major functions of RTPLOAD are:
•
Clears core from location 0 to "&RTPLORG-1"
•
Tests for a 2501 or 1442 card reader and initializes the card
read routine for the appropriate device.
• .
Reads RTPl130 program cards
I
performing the conversion from
card code to EBCDIC and loading the data into the specified locations.
•
Sets up the entry to RTPl130 when the end card is processed.
•
Reads and processes REP cards
•
Reads
I
I
if they exist.
converts and stores/*SIGNON and sets indicator for
RTP1130 signalling existance if /*SIGNON encountered.
•
Transfers control to RTPl130
HASP Remote Terminal Processor (1130) - Page 4.14-32
172
HASP
4.14.3
Remote Terminal Bootstrap (RTPBOOT)
The bootstrap loader
distribut~d
in object form as shown in the
subseq~ent
pages is specifically constructed to "bootstrap" the EBCDIC main loader
(RTPLOAD) into the core locations defined by "&RTPLORG" at RMTGEN time.
RTPBOOT loads into lower 1130 core via the load-mode format first card and
following binary program cards and EBCDIC conversion table cards. RTPBOOT
will load from a 2501 or 1442 card reader which is wired for the load-mode
sequence initiated by Ule console "LOAD" button.
HASP Remote TeJrnina1 Processor (1130) - Page 4.14-33
173
HASP
Figure 4.14.3 -Remote Terminal Bootstrap Card Format
Card
Col.
1
2
3
4
5
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
32
33
34
35
36
37
38
39
40
Card No. 1
12-11-7
1-2-9
12-11-1-8
12-11-7-8-9
11-0-1-6-9
0-2-6
4-7-8-9
blank
4-6
0-1-2
blank
11-2-5
4-5-9
12-0-1-2-5-6
1-2-8
12-11-1-3-4-5-6-8-9
12-11-3-4-5-6-7
1-2-8-9
12-11-1-3-4-5-6-8
12-3-4-5-7-9
12-11-1-3-4-5-7
12-11-4-7
1-6
12-11-1-4-8
12-4-7-8
12-11-1-4-7-9
12-4-8
12-11-1-4-9
12-11-3-4-6-9
1-6-9
12-11-1-3-4-6
1-2-6
12-11-1-4-6-7-9
12-11-1-5-6-7-8
12-11-1-5-6-8-9
12-11-1-3-4-8
12-11-1-3-4-7-9
2-3-5-6-7-8
2-3-5-6-7-8-9
11-0-1-3-4-5-6-7-8-9
.
Card No 2
12
11-0-3-5
11
blank
5
11-0-1-5
12-11-0-1-2-4-5
12-11
blank
12-11-1-5
5
1-2
12-11-0-1-4-5
12-11-1
blank
12-11-3
5
blank
12-11-0-1-2-3-4-5
11-0-1-3
11-2-4-5
blank
12-11-3-4-5
11-0-1
2-3-4-5
11-0-1-3
11-2-4
blank
12-11-3
11-0-1
3-5
11-0-5
3-4-5
11-0-1-3
11-2-4
blank
blank
I
11-0~3-4
11-0-2-4-5
4
Card No. 3
12-11-1-2-3-4-5
blank
5
11-0-1-5
4
11-0-1-5
0-1-2-3-4
11
blank
12-11-1-4
5
11-0-1-4
12-11-0-1-2-3-4-5
11-0-1-4-5
12-11-0-1-2-4
11-0-1
12-3-4-5
12-11
12-0-3
11-0-1
blank
12-11-3
12-11-1-2-3
blank
blank
11-0-3-4-5
2-3-4-5
4
0-2-4
11
5
11-0-1
3-4
11-0-1
blank
11-0-3-4-5
12-11-0-1-5
5
0-3-5
11
Card No. 4
12-11-1
12
12-11-2-3-4-5
12-11-1
5
11-0-1-5
12-11-0~2-3~4-5
11-0-1
blank
11-0-3-5
0-3
5
blank
12-1-5
5
12-1-5
12-11-2
12-11-1
1-5
11
12-11-3-4
12-11-0-1
1-2
11-2-3
11-0-2-3-4-5
blank
12-11-0-1-2-3-4-5
11-0-1
5
11-0-1-4-5
12-11-0-1-2-3-4-5
11-0-1-4
12-11-0-2
11-0-1
12-11-0-1-2-3-4-5
11-0-1
5
blank
blank
12-11-0-1-4-5
HASP Remote Terminal Processor (1130) - Page 4.14-34
174
HASP
Figure 4.14.3 (C ON T) - Remote Terminal Bootstrap Card Format
Card
Col.
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
Card No. 1
9
2-3-4-8
12-11-3-5-6-7-8-9
12-8-9
12-11-1-3-5-6-7-9
2-3-5-6-7
11-2-3-4-5-6
9
11-0-1-3-4-5-6-7-8-9
9
12-11-6-7-9
12-3-4-5-6-8-9
12-11-1-6-8-9
12-11-6
12-3-4-5-6
12-11-1-8-9
12-3-4-5-7-8
12-11-1-7
3-7
blank
1-2-6
1-2
blank
1
blank
12-11-7-8-9
12-1-3-4-6-7
12-11-1-7-9
11-2-4
11-0-1-3-4-6-7
2-3-7-9
2-3
11-2-3-4-5-6
4-7-8-9
11-0-1-7
8
blank
blank
0
1
Card No. 2
1-3
11-0-1-3
2-3
blank
12-0-1
11-0-1-4
12-0-4-5
11-0-2-4
12-1-2-3-4
11-0-2-4
11-2-3-4-5
12-11
blank
12-11-1-4
12-11-0-1-2-3-4-5
11-0-1-5
12-0-1-2-5
11-0-1
1-2-4-5
11-0-1-3
11-2-4
blank
12-0-1-3-4
11-0-1
blank
11-0-3-5
12-11-1-2-3-5
blank
11-3-4
11
blank
12-11-1-5
12
11-0-3-4
12-11-1-2-3-5
blank
12
11-0-3-4-5
0
2
Card No. 3
12-11-0-1-4-5
11-0-1
11-2-3-4-5
11-0-1-3
12-0-2-5
blank
1
1-2
12-11-1-2-3-4-5
12-11-1
12-0-1-3-4
11-0-5
blank
12-11-3-5
0-3-4
5
blank
11-0-3-4-5
0-2-3
5
blank
11-0-3-4
blank
5
1-2
11
1-4-5
11-0-1
blank
12-11-3
4-5
blank
12-11-0-1-2
12-1
blank
12-11-1-3-5
0-3-4
5
0
3
Card No. -4
0
11-2-3
12-0-1-3-5
blank
5
11-0-1-3
12-0-2-3-4-5
blank
blank
12-11-0-1-4-5
12
11-2-3
12-0-2-3-4-5
blank
11-1
blank
blank
12-11-5
2
1
5
12-11-0-2-5
12
11-2-3
12-0-1-2
blank
blank
11-0-3-5
12-11-1-2-3-5
blank
12-11-0-1-3-4-5
11
5
12-11-1
blank
11-2-3
blank
blank
0
4
, HASP Remote Terminal Processor (1130) - Page 4. 14-35
175
HASP
Figure 4.14.3 (CONT) - Remote Terminal Bootstrap Card Format
Card
Col.
1
2
3
4
5
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
32
33
34
35
36
37
38
39
40
Card No. 5
0
1
2
3
4
5
6
7
8
9
12-11-0-2-8-9
12-11-0-3-8-9
12-11-0-4-8-9
12-11-0-5-8-9
12-11-0-6-8-9
12-11-0-7-8-9
blank
·
·
·
··
·
··
·
··
·
·
··
·
·
·
·
·
·
·
·
Card No. 6
11-0-1-8
11-0-1
11-0-2
11-0-3
11-0-4
11-0-5
11-0-6
11-0-7
11-0-8
11-0-9
11-0-2-8
11-0-3-8
11-0-4-8
11-0-5-8
11-0-6-8
11-0-7-8
12-11-0-1-8
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.... 2-8
12-11-0-3-8
12-11-0-4-8
12-11-0-5-8
12-11-0-6-8
12-11-0-7-8
12-0
12-1
12-2
12-3
12-4
12;"5
12-6
12-7
Card No. 7
12
12-11-1-9
12-11-2-9
12-11-3-9
12-11-4-9
12-11-5-9
12-11-6-9
12-11-7-9
12-11-8-9
11-1-8
11-2-8
11-3-8
11-4-8
11-5-8
11-6-8
11-7-8
11
0-1
11-0-2-9
11-0-3-9
11-0-4-9
11-0-5-9
11-0-6-9
11-0-7-9
11-0-8-9
0-1-8
12-11
0-3-8
0-4-8
0-5-8
0~6-8
0-7-8
12-11-0
12-11-0-1~9
12-11-0-2-9
12-11-0-3-9
12-11-0-4-9
12-11-0-5-9
12-11-0-6-9
12-11-0-7-9
Card No.8
12-0-1-8-9
12-1-9
12-2-9
12-3-9
12-4-9
12-5-9
12-6-9
12-7-9
12-8-9
12-1-8-9
12-2-8-9
12-3-8-9
12-4-8-9
12-5-8-9
12-6-8-9
12-7-8-9
12-11-1-8-9
11-1-9
11-2-9
11-3-9
11-4-9
11-5-9
11-6-9
11-7-9
11-8-9
11-1-8-9
11-2-8-9
11-3-8-9
11-4-8-9
11-5-8-9
11-6-8-9
11-7-8-9
11-0-1-8-9
0-1-9
0-2-9
0-3-9
0-4-9
0-5-9
0-6-9
0-7-9
HASP Remote Terminal Processor (1130) - Page 4.14-36
176
HASP
,"
Figure 4 .14.3 (CONT) - Remote Terminal Bootstrap Card Format
Card
Col.
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
Card No. 5
blank
··
··
·
·
··
·
··
·
·
·
··
·
··
·
··
··
··
··
··
··
·
·
··
··
blank
.
Card No 6
12-8
12-9
12-0-2-8-9
12-0-3-8-9
12-0-4-8-9
12-0-5-8-9
12-0-6-8-9
12-0-7-8-9
11-0
11-1
11-2
11-3
11-4
11-5
11-6
11-7
11-8
11-9
12-11-2-8-9
12-11-3-8-9
12-11-4-8-9
12-11-5-8-9
12-11-6-8-9
12-11-7-8-9
0-2-8
11-0-1-9
0-2
0-3
0-4
0-5
0-6
0-7
0-8
0-9
11-0-2-8-9
11-0-3-8-9
11-0-4-8-9
11~O-5-8-9
11-0-6-8-9
11-0-7-8-9
.
Card No 7
12-11-0-8-9
1-8
2-8
3-8
4-8
5-8
6-8
7-8
12-0-1-8
12-0-1
12-0-2
12-0-3
12-0-4
12-0-5
12-0-6
12-0-7
12-0-8
12-0-9
12-0-2-8
12-0-3-8
12-0-4-8
12-0-5-8
12-0-6-8
12-0-7-8
12-11-1-8
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-2-8
12-11-3-8
12-11-4-8
12-11-5-8
12-11-6-8
12-11-7-8
Card No. 8
0-8-9
0-1-8-9
0-2-8-9
0-3-8-9
0-4-8-9
0-5-8-9
0-6-8-9
0-7-8-9
12-11-0-1-8-9
1-9
2-9
3-9 '
4-9
5-9
6-9
7-9
8-9
1-8-9
2-8-9
3-8-9
4-8-9
5-8-9
6-8-9
7-8-9
blank
12-0-1-9
12-0-2-9
12-0-3-9
12-0-4-9
12-0-5-9
12-0-6-9
12-0-7-9
12-0-8-9
12-1-8
12-2-8
12-3-8
12-4-8
12-5-8
12-6-8
12-7-8
HASP Remote Terminal Processor (1130) - Page 4.14-37
177
HASP
Figure 4.14.3 (CONT) - Remote Terminal Bootstrap Card Format
CARD 1
I II 1111 1I1I1I I 1I11I
I
II I II I I II I 111I1
III
I
I
III
11I111I1
I I I I II
1
I III I I
I
000011000100010000000000000000000000000100000000100000ooooo~oooooooooloooolooolo
12345&189ro"UQ"B~O~"~~nn~~unu~~~n~~~~VD~~~~u«a«~~a~~~~~ ~~~~"~~~~M~~"~~ronnnMmnnnn"
111111 1 1 111 1 11111111111111111111111111 11 1 1 1 111 1 11 11 11 1 11 111111111 1111.111 1 1111
J
11
21222122212121122122222222222221222221122122211222222222222211222221121.12222222
33333333333313311311133333331313333111113113111313313313131333333313311113333333
44444414144414411411114111111414144114414144441414414414144444444414114411444444
55555555555111511511155555555555511551115515181515515515155555555555555515555555
6 6 6 6116 616 6 6 61611616 6 616 6 6 6 sllllilis 6111 6 sl 6111 61 6111116 6 6 6 61 6 6.66616 61s 616 6 6 6 6 66
17717717777117171771117711717177117711117717111117177777111771717111711711171777
8811s81S888t8S11811818811s1888888111a1118111888818sl.ssl18888888tl88888881al8888
a
sl911919 9 9 9 91991sIs19 9 99 919111991 91 919111sIIIs 91 1IIIs91s 9 9 9 9 9 S9 9.191.9919 919 9 9 9 9 9
1 2 3 4 5 6 7 8 9 to II 12 13 14 15 16 111819 20 21
[3i""'-tC'!'D
2t 23 24 25 26 27 2i 29 SO 31 ;'2 33 34 35363138394041 42 ~3« 454641 484950 51
~253
54 55 56 51 58.59 SCEl 62 63 S4
5~
06 61 68€g 70 11 12 13 74 15 16
n 78 1960
CARD 2
I
II
I
I
II I
II I
I
III I
II I
III II II I I I II
I I I
II
I
I II I
I
I
II
I I
I
0 0 0 II 0
I 11I111I1111I1 II I II
o I 0 0 0 II 0 0 0 0 0 I 0 00 0 0110 0 0 I 0I 0 0 01 0I 0I 0 0 0II 0 o. 0 0IIII 0I 00 0 0III1 0I 0 0110 I 0 0 0 0 0 0 0 I
123456189ro"U~"BqOq~~~nD~~uDn~~~n~~~~UD~~~~u«a~~~~~~~~~~$~~~~~~~U~~UMUMnnn~mnnnn"
1 1 1 1111 1 111111 1 1 1 JII 1 1 1111 111111 11 1 1 J 1 1111 1111 1 11 1 1 1 11111111 1 111 111 1 1 1 11 1 11111 1 1
2 2 2 2 221 22221 2 2 2 2 221212 2 2.1 212 2 2 2 2 2 21 2 2 212 2 212 2 2 21111 22 21.212!
21 2 2 2 2 212 2 2 2 2 2 212 2 2 21
31 3 3 3 3 3 333 33 3 3313 3113 31 3113 3131311. 3 3 31·3 311133 3331313 3313 33·31 3313311313 3 3 3113 313 3
44444414444414444414141414144444141441114444411111144114441414144444144441444144
515 51115 511515 5515151 51515555 51115 5 5 5 5155 55 5 5 515551 555.111515 5 5 5 5 51155 5515515 5155
6 6 6 6 6 6 6 6 6 6666 6 6 666 6 6666 6 66 6 66 6 6 6 66 66 66 6 6 66 6 6 66 6 6 666 6 686 6 66 66 6 6 66 6 6 6 66 6 6 6 6 6 6 6 66 6 6
777 1177 1 711 7J 1177 777177117777777 17 7 11 7 71 7 7777 7 7 77 171 711 7 1117 J 7 771177 177 11 7 7 7 17 7 7
8 8 8 8 8 8 8 8 88 8 8 8 8 8 8 8 88 8 8 8 8 8 8 8 8
a.
8 888 8 88 8 8 i 8 8 8 88 8 8 8 8 8 88 8 88 8.8 8 8 8 a88 8 8 8 88 888.8 8 88 8 8 8 88 I
999999999999999999999999999 9't9 9 99 9 9 9999999999999999999999999999999.99999999999999
1 2 3 4 5 • J 9 9 10 l1J213
Q:tEJillITJ •
14.1516 11 18 13 20 ~ 2hl2~ 252621 ZU930 31 n 3334 3536 U 38 3940 41 42 4344 45 4647 4849 5051 5~ 535455 565J 585t&0 61 62 SHHS SHI U 69 liHI n 73 74 1576 n
.
.
.
.
7.1910
.HASP Remote Terminal Processor (1130) ~Page4.14-37.1
178
HASP
Figure 4.14.3 (CONT) - Remote Terminal Bootstrap Card Format
CARD 3
I
I I III
I I I I I
11111
I
II
I I II I
I I I II
I
I
1I111
III I
II I I
I II I
I I I I I
I
I
00010110000111110011000001001001010110101101100000110010011001000001000010001010
1 2 3 4 5 6 1 I 9 10
11
12 13 14 15 16 11 18 19 2021 222324 25 26 21 2829 30 31 323334 35363138 394J 41 42 4344 45 46 47 48495051 525354 55
I 1 11 111 1 11 111111 1 1 11 1 11 1 1 1 1 1 1 1 11 11 1 11 1 1 111
~5 ~~ ~.:
5960 61
~2
63 64 &HUH8 E9 70 71
72
73 74 15 76 7111 19 10
11 1 111111 1 1 1 1 1 1 1 1 1 1 1 1 111 DI 1 1 1 111 111 1 1 1
12222212222212122222221222121222222222222212122112222222221222221222222212222222
13333313333313331313311331133333133133133311333313133113311331333333313333311331
14441414414111141444444441111444144144441414444414144414414441444414441444441444
15115155551511551555555551155515555111151515155515515151515155515515551555515155
66666666666666666666666666666666666666666666666666666666666666666666666666666666
77777777777777777777777777777777777777777777771777171711711711117177711771777117
8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8' 8 8 8 ! 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8 8
99999999999999999999999999999999999999999999999999999999999999999999~99999999999
1 2 3 4 5 6 1 8 9 10 11 12 13 14 15 15 11 18 192021
G~~~EJ
n 23 24252627 l8 29 3031 32333435363738394041424344 45 46 47 4849 SO 51 ~2 53 54 5: !.; :: ~ 5300616263 64 SHU) EH9 7J
i! 12 7l 74 75 )5 71 13 ;g 80
CARD 4
11I1
I
I II III I
I III II
I I I I
II III II II 1111111
I I I II I
I
I I I I I I I
I I I
I I· II II I I
II I
00000111011000000000010010110111111100011010011001001000000001001001001000000010
123456
7891011UUU~~n~"~21nn~~nnn~~~HD~§~V~~W~a044~~O«~~~~~~~~~~~W~~6364~~U~"ron1271U15nnnnR
11111111111111111111111111111111111111111111111111111111111111111111111111111111
.
22122212222222221222221112122212121222222122221222211222221221211222122222212222
.
33133313311333333333133113133313331333333113311333311333333333313331131333313333
44144414444444444444144414144111441444414444441441441444444444444444441444444441
55151115515151115515555515151115551515515515151551551555515511555551151515555555
66666666666666666666666666666666666666666666666666666666666666666666666666666666
11777777177177111777171771111177771777717777171177777777771771717777171777777177
888888888888888888888888888888888888888~8888888888888888888888888888888888888888
99999999999999999999999999999999999999999999999999999999999999999999999999999999
123456
1S91011UU~~~na"~~nn~~~n3~~~nD~§~V~~o~ao«~~o«~~~~~~~~~~~~~~~~~~uunron72n~~nnnn~
O~14 5uoD.
;HASP Remote Terminal Processor (1130) - Page 4.14-37.2
179
HASP
Figure 4.14.3 (CONT) - Remote Terminal Bootstrap Card Format
CARD 5
111III
111111
10000000001111110000000000000000000000000000000000000000000000000000000000000000
123456189W"~UK~~n~a~~nn~ll~n~n~~~nM~~~~~U.~Q«~~na~~~~~~ ~~~~~~~~~~~"~u~ronn»~~nnnn~
1I 1 1 lIt 1 1 1 1 I 1 1 1 1 1 1 1 1 1 1 1 1 1 .1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 tIt lIt 1 tIl 1 1 1 1 1 1 1 1 1 1 1 lIt
22122222221222222222222222222222222222222222222222222222222222222222222222222222
3331333333313333333333333333333333333333333333333333 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 333 3 3 3 3 3 3 3 3
44441444444414444444444444444444444444444444444444444444444444444444444444444444
55555155555551555555555555555555555555555555555555555555555555555555555555555555
6 6666 61 6 6 6 6 6 661 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 666 6 6 66 6 6 6 6 6 6 6 66 66 6 6 6 6 6 6 6 66 666 66 6
77777771177777711177177777777777777777777777777777777777777777777777777777777777
88388888181111118888888888888888888888888888888888888888888888888888888888888888
9 9 9 9 9 9 9 9 9 1IIIIII 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9 9
1 2 3 4 5 & 1 8 9 lr !1 12 13 14 15 16 11 18 192021 n 23 24252. 2728233031 323334353637383940414243« 45 464748495051 5253 S4 55 5657 58 ~9 6061626364 G5 €6 616a 6970 11 n 73 14 1576 n 131980
L<':'5_"-'lJ
CARD 6
III11I
III1II111IIIII111111111111111111
II11III1IIII1I11
I111IIIIII1I11I11111111111111111
I
IIII1I
111111110111111111111111111111111000000000111111100000oooooooooolllllllDDllllBl1
123456
789;0"UUM~~nmaW21nn~~~Vnn~~Hn~~~n~~~~~~«~~~~~~~~~~~~n~~ ro~~~M~~u~~mnnn~nnnnn~
11111111111111111111111111111111111111111111111111111111111111111111111111111111
22122222221222222212222222122222221222222212222222122222221222221212222222122222
333133333331333333313333333113333331333!3~31333333313333333133333331333333313333
44441444444414444444144444441444444414444444144444441444444414444444144444441444
55555155~55551555555515555555155555551555555515555555155555551555555515555555155
66666616666666166666661666666616666666166666661666666616666666166666661666666616
77777771717777717771777177171171717777717117717177777771777777717177777177777771
18888888181111111888888818111111888888881811111188888888181111111388888818111111
91999999919999999999999991999999999999999111111199999999911111119199999991111111
1 2 3 4 5 6 7 8 9 :0 11 12 13 14 15 16 17 1. 192021 222324252621 2829 3031 3233343536373839404142434445464148495051 52
L'.~·" ~~f!.'J
~3 ~
5S SCi 51 S3 59&: 61 €2 6;5$
6~ i:H16~
£970
n 72 il 74 i516 17 iB ;9 80
HASP Remote Terminal Processor (1130) - Page 4.14-37.3
180
HASP
Figure 4.14.3 (CONT) - Remote Terminal Bootstrap Card Format
CARD 7
11I1I1111
I
11111I1111111111 1111111 I
11II111I1
1I1111111
11111111111111111111111100110111
IIIIIIIIIBIIIDII
00000000000000000111111111011111111111111000000011111111111111110000000000000000
1 2 3 4 5 & 7 • • 10 1\ 12 13 14 15 16 17 18 19 20 21 222324 2!J 26 21 ;.:; 29 30 31 32 33 34
3~
3& :i1 3!
3~ 4~
41 42 4344 45 46 41 4a 49
~O ~l ~2
53
~4
55 56 51 sa 59 i;} f' t: 6364 t5 66 67 68 6910 n 72 7l 74 15 i6
n 111980
til t 1 t 11111111111111111111111111111111111111111111111111111111111111111111111111
22122222221222222212222222222222221222222212222222122222221222222212222222122222
33313333333133333331333333313333333133333331333333313333333133333331333333313333
44441444444414444444144444441444444414444444144444441444444~14444444144444441444
55555155555551555555515555555155555551555555515555555155555551555555515555555155
"
66666616666666166666661666666616666666166666661666666616666566166666661666666616
77777771777777717777777177117771717177711117777171777171771777717777717171771771
88888838111111118888888811811111888888881111111118888888181111111888888818111111
91111111199999999911111119999999911111111999999999999999919999999999999991999999
j.: "
n
1 2 3 4 5 6 1
~
9 10 11 12 13 14 15 16 11 18 192021 2:::3;,25262728 2S 30
!3"'-'.'·(;'!...1
~I
32 3334353637 :is 39 40 4142434445464748495051 525354555657 Sd 51
f2 £3 G4 65 66 61 LS 63 70
7<
Jj
,4751;; n 161980
CARD 8
I111III11I11I1111
1II1I1I1III111111
IIIIIIIIIBIIIII
I
I
10000000000000000000000000000000111111111111111110000000000000000111111110000000
1 2 3 4 5 & 1 8 9 10 1\ 12 13 14 1516 1118192:121 2223242526 2128 29 30 313233343535 37 ~ 3. 404142434445464748495051 525354 55 56 57 sa 5960 61 &2 63 646566 67 68 69 70 n 72 73 74 75 J5 n.ll 19 80
11111111111111111111111111111111111111111111111111111111111111111111111111111111
2 21 2 2' 2 2 2 2 21 2 2 2 2 2 2 21 2 2 2 2 2 2 21 2 2 2 2 2 2 21 2 2 2 2 2 2 21 2' 2 2 2 2 2 21 2 2 2 2 2 2 21 2 2 2 2 2 2 21 2 2 2 2 2 2 21 2 2 2 2 2
33313333333133333331333333313333333133333331333333313333333133333331333333313~33
44441444444414444444144444441444444414444444144444441444444414444444144444441444
55555155555551555555515555555155555551555555515555555155555551555555515555555155
6666661666666616666666166666661666666616666666166666661666666£166666661666666616
11111111177177717117777117117171117111717777717171771771717717117177777117777771
188888881111111118888888111111111888888~1111111118888888111111118888888811111111
11111111111111111111111111111111111111111111111111'111111111111119111111119999999
4.41 48 49
~o
51 525354 S5 565158 5.
5~
61
~
&5 6S 61 SS £3 ;: 11 J2 )) 74 7576 1118 79 80
HASP Remote Terminal Processor (1130) - Page 4.14-37.4
181
HASP
4.14.4
Remote Terminal Program 360 Processing (LETRRIP)
LETRRIP (Loader for Eleven-Thirty Relocatable Remote Interleaving Processor)
is a 360 program executed under OS/360 as part of the RMTGEN procedure.
The purpose of this program is to condense the object deck produced by the
360 assembler; relocate address constants according to the requirements of the
1130 and to produce a new object deck in the format as described in Section
4.14.1.
HASP Remote Term1nalProcessor (1130) - Page 4. 14-38
182
HAS P
4.14.5
1130 Instruction Macros
The OS/360 Assembler Macro instructions listed on the following
pages are used to assemble the RTPl130 and RTPLOAD programs as a
part of the RMTGEN process necessary to create the 1130 workstation
program.
The general format of the instructions to be assembled with the
macros is:
LABEL $OP ADDR,TAG,FMT,MOD
Where:
"LABEL" is the statement label subject to the OS/360 assembler
rules and restrictions.
n$OP" is a macro from the set listed at the end of this section.
"ADDR" is the address field of the 1130 instruction.
"TAG" is the index register (TAG) field of the 1130 instruction.
"FMT" is the format indicator for the 1130 instruction:
FMT=L for long form
FMT=I for long form indirect address
FMT=X for short form absolute address
FMT='blank' for short form relative address
"MOD" is the modifier bits field required for some 1130 instructions.
Listed below are some of the conventions which must be followed to
successfully use the macro package in producing a program for
operation on an 1130.
1.
All symbols starting with the character "$" are deemed to be
absolute in value.
2.
The symbols WA, WB and we are assumed to define absolute values.
Note: WA, WB and we cannot be used as the first two characters
of any relocatable symbols.
3.
All other symbols are assumed to be relocatable as defined by
the OS/360 assembler SRL.
4.
Parenthetical expressions are considered to be relocatable if
contained in an instruction, e~g.,
$AXT ( *- *) , WA , L
is considered relocatable, where.
$AXT *-*,WA,L
is considered absolute.
HASP Remote Terminal Processor (1130) - Page 4.14-39
183
HASP
1130 Instruction Macros
Macro Form
Description And Notes
$LD
ADD, TAG, FMT
Load ACC
$LDD
ADD,TAG,FMT
Load double (ACC, EXT)
$STO
ADD, TAG, FMT
Store ACC
$STD
ADD, TAG, FMT
Store double (ACC, EXT)
$LDX
ADD, TAG, FMT
Load index
$LXA
ADD, TAG
Load index from address. A variation of $LDX
with F= 1 and IA = 1.
$AXT
ADD, TAG, FMT
Address to index true. Identical to $LDX.
$STX
ADD,TAG,FMT
Store index
$STS
ADD, TAG, FMT
Store status
$LDS
ADD, TAG
Load status
$A
ADD, TAG, FMT
Add
$AD
ADD,TAG,FMT
Add double
$S
ADD, TAG,FMT
Subtract
$SD
ADD, TAG, FMT
Subtract double
$M
ADD, TAG, FMT
Multiply
$D
ADD,TAG,FMT
Divide
$AND
ADD,TAG,FMT
Logical AND
$OR
ADD, TAG, FMT
Logical OR
$EOR
ADD, TAG,FMT
Logical
Exclusiv~
OR
HASP Remote Terminal Processor (1130) - Page 4.14-40
184
HASP
Macro Form
Description And Notes
$SLA
ADD, TAG
Shift left ACC
$SLCA
ADD, TAG
Shift left and count ACC
$SLC
ADD, TAG
Shift left and count ACC and EXT
$SRA
ADD, TAG
Shift right ACC
$SRT
ADD, TAG
Shift right ACC and EXT
$RTE
ADD, TAG
Rotate right ACC and EXT
$BSC
ADD, TAG, FMT,MOD Branch/Skip on condition
$BOSC
ADD, TAG, PMT, MOD Branch/Skip and reset interrupt
$BP
ADD, TAG, PMT
Branch ACC positive (long)
$BNP
ADD, TAG, PMT
Branch ACC not positive (long)
'$BN
ADD, TAG, PMT
Branch ACC negative (long)
$BNN
ADD, TAG, PMT
Branch ACe not negative (long)
$BZ
ADD, TAG, FMT
Branch ACC zero (long)
$BNZ
ADD,TAG,FMT
Branch ACC not zero (long)
$BC
ADD, TAG, FMT
Bra nch on carry (long)
$BO
ADD,TAG,FMT
Branch on overflow (long)
$BOD
ADD, TAG, FMT
Branch ACC odd (long)
$SKPP
Skip ACC positive (short).
$SKPN
Skip ACC non-~ero (short)
$SKPZ
Skip ACC zero (short)
$SKPO
Skip overflow off (short) .
HASP Remote Terminal Processor (1130) - Page 4. 14-41
185
HASP
Macro Form
Description And Notes
$SKPC
Skip carry off (short)
$SKPX
Skip ACC not equal zero and carry off (short)
$B
ADD, TAG,FMT
Branch unconditionally. FMT = L or I generates
long form $BSC with MOD
FMT
=
= X or blank generates
0.
$MDX
$BSI
ADD, TAG, FMT,MOD Branch conditionally and store IAR
$TSL
ADD, TAG,FMT
ADD, TAG, FMT
Transfer and store location counter. Assembled
as a $BSI with FMT
= L, MOD =
° (long form
unconditional branch and store IAR).
$MDX
ADD, TAG, FMT
Modify index and skip
$STL
ADD,FMT
Store location counter. Assembles as $STX
ADD,O,FMT.
$MDM
ADD ,VALUE
$WAIT
·Modify memory.
Wai t for interrupt
$XIO
ADD, TAG, FMT
Execute I/O
$BSS
N,X
Block started by symbol
N = number of words.
X =E ..for even storage.
$BES
N,X
Block. ended by symbol
·~·.=='nUmbetof·words
iC==~Af6t
evens torage
:Btr'R~~~~:;·T.fiR.trial'W&cess()r (1130) -Page 4.14-42
~1$6;
HAS P
Macro Form
Description and Notes
$NULL
Null operation for symbol definition
$ADCON
ADDR
Address constant. Assembles as an
absolute 1130 address.
"ADDR" must
be a relocatable symbol by the
as
assembler definition.
$NOP
No operation. Assembles as $SLA 0
$ZAC
Clear ACC. Assembles as $SRA 16
HASP Remote Terminal Processor (1130) - Page 4. 14-43
187
HAS P
4.14.6
GENERAL INFORMATION
OS/360 ASSEMBLY OUTPUT
If the value of &FULLIST is set to 1 at the time of generation
of RTPl130 or RTPLOAD then the listing produced by the OS/360
Assembler will contain the following informatio~:
1.
The location counter value for each 1130 instruction or
storage location in terms of bytes. The actual 1130
location in terms of words can be determined by dividing
the displayed value by 2. The REP facility allows a
specification of either byte or word form.
2.
The 1130 instruction is printed in 1130 format. The long
form address is in terms of 1130 words and the short form
is true relative format.
VARIABLE INTERNAL PARAMETERS
The generation of the RTPl130 program using RMTGEN provides
the user with a simple and flexible means of changing common
parameters germane to the configuration of the 1130. Additional internal parameters may be varied by using the source
file update feature of the RMTGEN program.
Listed below are the major parameters, with a brief description of each, which the user might consider altering as a
function of hardware and software performance considerations.
VARIABLE
DESCRIPTION
&DEBUG
Conditionally assembles the RTPl130 internal
core dump program ($SDUMP) and the BSC adapter
trace routine (DBUGSCAL). Default value
inhibits the assembly of these debugging
programs.
&CNPSIZE
Maximum console printer message size.
value is 120 bytes per message.
&CONINSZ
Maximum console keyboard input buffer size.
Default value is 120 characters per command.
&PRFOTKL
Number of 1403 printer buffers (tanks) provided
at assembly time. Default value is 2. The
TPGETprocessor.will buildup to the value of
&PRFOTKL and then suspend operation for the l40J
until the count of buffers falls below &PRFOTKL
Default
HASP Remote Terminal Processor (1130) - Page 4.14-44
188
HAS P
VARIABLE
DESCRIPTtON
&PRETTKL
Number of 1132 printer buffers (tanks) provided
at assembly time. Default value is 2. See
&PRFOTKL for TPGET action.
&PUNFTKL
Number of 1442 punch buffers (tanks) provided
at assembly time. Default value is 2. See
&PRFOTKL for TPGET action.
&CONSTKL
Number of cons~le printer buffers (tanks) provided at assembly time. Default value is 5.
See &PRFOTKL for TPGET action.
&PRFOBFL
Maximum number of TP buffers containing data
destined for the 1403 printer which will be
accepted by TPIOX before setting the transmission suspension bit defined in the FCS for
the 1403. HASP will suspend transmission of
1403 print data until the FCS bit is reset
when the number of l4-03TP buffers becomes
less than the value of &PRFOBFL. Default value
is 2.
&PRETBFL
Same definition as &PRFOBFL except it applies
to the 1132 printer. Default value is2.
&PUNFBFL
Same definition as &PRFOBFL except it applies
to the 1442 punch. Default value is'2.
&CNSPBFL
Same definition as &PRFOBFL except it applies
to the console printer. Default value is 1.
&NPTFBFL
Maximum
devices
Default
of card
number of TP buffers allotted to input
collecting data to be sent to HASP.
value is one greater than the number
readers defined for RTP1l30.
HASP Remote Terminal Processor (1130) - Page 4.14-45
189
HAS P
4.15
EXECUTION TASK MONITOR
4.15.1
Execution Task Monitor - General Description
The Execution Task Monitor is a processor which periodically examines the CPU utilization of user tasks within a dynamic priority
group and rearranges the OS/360 task dispatching chain giving
higher priority to those tasks, within the group, which use the
least amount of CPU time. Tasks above and below the dynamic priority group are not affected by the rearrangement of the dispatching chain. Tasks with all of the following characteristics are
included within the dynamic priority group:
I
I
1.
The task belongs to a job scheduled by HASP.
2.
The current dispatching priority of the task is
3.
a.
equal to priority of the dynamic group as specified
by the value of the &XZPRTY parameter for MVT or
b.
not greater than the value &XZMFTH and not less than
the value of &XZMFTL for MFT.
The HASPGEN parameter &XZMULT is set to "YES n or if not
"YES" the task is a job step with no daughters.
The interval between the periodic examinations is controlled by the
value of the &MONINTV parameter. Setting &MONINTV value to a positive integer will cause the processor to be generated. OS/360 must
support Job Step Timing and must not have a Time Slicing Group Defined at the priority 1evel(s) cor;esponding to the priority range
of the dynamic group.
Users must not use TlME=1440 on Job or
Execute cards for jobs to be correctly adjusted within the dynamic
group.
Execution Task Monitor Processor - Page 4.15-1
190
HASP
4.15.2
Execution Task Monitor - Algorithm
The Execution Task Monitor determines the CPU utilization history (h t , n)
for each task within the dynamic priority group using the following formula:
h t n=cPUt, n +ht - 1 , n - Ht/N
I
= Total CPU counts observed for the N tasks being
monitored plus the sum of the previous history values.
N = The number of tasks being monitored at the end of
the time interval.
h t, n
= The history of CPU utilization for task (n) during
the current time interval.
ht - 1 , n
= The history of CPU utilization for task (n) taken at
the previous time interval.
New tasks, entering the monitored group, will be assigned a hi-story
value of zero and temporarily placed at the low priority end of the group.
Task with continuous low values of CPU counts will have (h) values. which
become increasingly negative. The (h) values will be prevented from falling
below the range of one time interval; thus providing responsiveness to
erratic changes in the corresponding task's CPU utilization.
Low values of h indicate the task (1) has not been able to utilize the
CPU time given to it because of waiting for events such as I/O or (2)
Execution Task Monitor Processor -
191
Page 4.15-2
HAS P
has not been given the opportunity to utilize the cpu. High values
of h indicate the task has had the opportunity and has utilized the
cpu. The Execution Task Monitor performs a partial sort and rechains
the monitored tasks, insuring that the task with the largest history
of cpu utilization will have the lowest effective priority within the
dynamic priority group during the next time interval. This will by
default raise the effective priority of other tasks in the group.
When HASPGEN parametsf:' &XZMULTis set to "YES" all tasks for a jobstep falling within the priority group are ordered as a single unit
allowing each task to maintain the same relative priority with
other monitored tasks within the jobstep. In MVT systems, a task
within the group that changes OS dispatching priority is removed
from the group.
In MFT systems, all monitored tasks are assigned an as dispatching
priority ~pecified by the &XZMFTL parameter. A CHAP or ATTACH that
specifies a change in priority will have the effect of changing
relative priority; however, as long as the task remains within the
range &XZMFTH and &XZMFTL the assigned priority will be changed to
&XZMFTL at the end of the monitor interval &MONINTV. A CHAP in an
MFT system may therefore not produce the intended result.
Execution Task Monitor Processor - Page 4.15-3
192
HASP
4 . 16
INTERNAL READER
4. 16 . 1
Internal Reader - General Description
The Internal Reader Processor is an Input Service Processor which
reads card images from any system or user task running under OS/3 60 .
The Internal Reader recognizes
Processor interface routines
I
I
through the use of Execution Control
an attempt by other tasks running under 08/360
to punch information into "cards" on pseudo 2520 punch devices
the function of the Input Service Processor on each card
I
I
performs
and via OS/360
POST macro signals completion of I/O to the submitting task.
4 . 16 .2
Internal Reader - Program Logic
The Internal Reader uses the code of the Input Service Processor with
modifications in the following areas.
1.
Processor Initialization -
The Internal Reader attempts to
obtain an internal reader device control table (DCT) which
contains an 80 byte buffer area rather than a normal
reader DCT. When a device is received the processor
continues by acquiring a direct-accessDCT and passes
. control to the main processor.
2•
Main Processor -
The Internal Reader RGET routine tests
for the existance of a submitting task punch channel program.
Internal Reader Processor 193
Page 4.16-1
HASP
If no channel program exists the Processor will wait for
WORK.
If a channel program exists RGET will simulate the
punching of one card into the 80 byte OCT buffer area (no
data chaining). If the channel command represents the
end of the channel program RGET posts completion of I/O
and resets channel program indicators.
RGET returns to
the main processor passing the card image for processing
or in the event the "card
lf
has If/*EOF" in columns 1 to 5
returns indicating end of file.
3•
Processor Termination -
Termination of the Internal Reader
involves terminating the last job (if any), rei.easing the
direct-access and internal reader device OCT's, and passing
control to the processor initialization routines.
The Internal Reader requires supporting routines in the Execution Control
Proces sor Asynchronous I/O Handler which perform the following functions:
1.
Recognize EXCP macro references to designated internal readers
as setup by HASP initialization.
2.
Make the internal reader available to the Input Service Processor
on first use.
3•
Set up the first channel command word and lOB pointers.
4.
Force the submitting task in the wait state if required.
5.
Post the Input Service Processor for WORK.
Internal Reader Processor -
194
Page 4. 16-2
HASP
4. 17
MULTI- LEAVING LINE MANAGER
4. 17. 1
MULTI- LEAVING Line Manager -
General Description
The function of this proces sor is to control all line activity with remote
terminals. This includes line initiation/termination, remote terminal
synchronization, line error recovery
I
and sign-on/sign-off processing.
This processor interfaces very closely with the Remote Terminal Access
Method described in section 5.15.
4. 17. 2
MULTI- LEAVING Line Manager -
Program Logic
When this processor receives control from the dispatcher it first
determines whether an I/O operation has completed.
If not, it then scans
each line (via the line Device Control Tables) to check for requested
processing. When all processing has been completed the processor then
returns control to the dispatcher ($WAIT ' s) until such time as more work
becomes available.
When a channel end is detected, the channel end routine determines
the sequence type of the Channel Command Word chain and branches to the
appropriate section to analyze the channel end and initiate any error
recovery procedures required.
The line Device Control Tables (DCT's) are scanned and when one is
found to be available the Line Initiation routine is entered which acquires
MULTI- LEAVING Line Manager -
195
Page 4. 17-1
HASP
the DCT, acquires a TP buffer, constructs an initial CCW chain and
I
initiates
I/o
on the line.
A single timer queue element is maintained by the Line Manager to
initiate delays in line processing. This facility provides the capability
of delaying a null response to a remote terminal and decreases the
associated degradation. Various other timer queue elements are maintained
by individual line processors to initiate other delays of varying intervals.
The code in this processor is assembled conditionally such that only
the instructions required to process a given configuration will be generated.
MULTI-LEAVING Line Manager 196
Page 4.17-2
HAS P
4.18
REMOTE CONSOLE PROCESSOR
4.18.1
Remote Console Processor - General Description
The function of this processor is to process all console
messages to and from remote terminals.
This routine
optionally saves messages to remotes which are not "signed
on" MULTI-LEAVING terminals for later printing on the
remote terminal printer.
4.18.2
Remote Console Processor - Program Logic
This processor receives control whenever a console message
is queued for a remote terminal or whenever a console message is received from a remote terminal.
The processor
first examines the output queue of messages and upon encountering a message queued for a remote terminal examines
the current status of the terminal.
If the terminal is
not an active BSC MULTI-LEAVING terminal the message is
purged (the console message buffer is returned to the
available queue) or the message is saved on the SPOOLI
volume if operator message SPOOLING is requested.
If the message is to be written, a Remote Console Device
Control Table is constructed for the specific remote terminal, the DCT is chained onto the other DCTs for this
remote, the DCT is "OPENed" by calling the Remote Terminal
Access Method, all messages which are queued are written
to the terminal, and the DCT is "CLOSEd" and unchained.
If the message to be written is for a currently inactive
or for a non-MULTI-LEAVING active remote and HASP operator
message SPOOLING space is specified (&SPOLMSG ~ 0), an attempt to save the message on the SPOOLI volume for later
printing at the remote by printer support routines is made.
The remote MESSAGE SPOOLING QUEUE ($MSPOOLQ) element for
the designated remote is examined for a queue HEADER entry
of zero.
If zero, a record is allocated from the MESSAGE
ALLOCATION ($MSALLOC) Table, and the corresponding MTTR for
the record is placed in both HEADER and TRAILER entries
for the remote.
(Non-zero but equal HEADER and TRAILER
entries signify that the queue exists; however, since the
last record of each remote element is always empty no data
is currently queued). A record is allocated from the
$MSALLOC table to represent the new end of message queue
and the associated MTTR is placed in the chain field of the
current HASP buffer. The HASP buffer is then filled with
the operator message and any more messages for the same
remote currently queued and· written on the SPOOLI volume
Remote Console. Processor - Page 4.18-1
197
HAS P
at the record location designated by the TRAILER MTTR for
the remote. Upon completion of I/O the chain field replaces
the TRAILER MTTR. The above process is repeated for additional buffers as required to empty the console message
queue for the remote.
In the process of allocating message records the $MSALLOC
table bit map is used. Each bit in the map when on represents a free record on the SPOOLI volume. Allocatron consists of finding the highest numbered bit that is on,
turning the bit off, and converting to a corresponding MTTR.
When all bits in the map are off indicating that no records
are available, the messages are purged.
If an input message is to be read, a Remote Console Device
Control Table is constructed and the Remote Terminal Access
Method is utilized to "GET" the message. The message is
written to the local console and then queued for the Command
Processor.
Remote Console Proc"essor - Page 4.18-2
198
HAS 'P,'
4.19
4.19.1
'EXECUTION THAW PROCESSOR
EXECUTION THAW PROCESSOR - GENERAL DESCRIPTION
XTHAW is a companion to the main Executionp'to:ces.~cjriIC)S;
interface routine called XFREEZE. XTHAW is,res:ponsible :fot
discovering which tasks have been forcibly placed iri '(in: 'OS
WAIT state by XFREEZE (frozen) and should 'now ,be activClted
(thawed) thru the OS POST ECB mechanism.
'
4.19.2
EXECUTION THAW PROCESSOR - PROGRAM LOGIC
XTHAW uses an lOB (HASP buffer) chain constJ:'ucte~'thrutn.e
XTHAW PCE or the Execution Processor PCE(s) ,in the 'XPCEECa
field of the PCE work area. The chain iscohstructedusing
the XTHAW or an Execution PCE depending on the reason fqr
invoking XFREEZE. If the lOS interface $ection J..s'~ntered
while an Execution processor is active, th~n, theXTHAW PCE
is used. If an I/O request cannot be, proc~$'sedClnd an
Execution processor is not active at the tiITl;~ 9f"1;.he'req'uest:"
then the PCE controlling the caller is used 'to' build the
chain.
XTHAW is activated ($POSTed) by the Execution Processor
whenever a Job or the HASP controlled OS ;Reader/Interpreter
is active and just prior to $WAITing f()r.wor~ •.
A spe¢~Cll
status bit (XPOSTBIT) in the XPCESTAT field., 'of ail ,Execution
PCE is used as the primary test for processingeh:~:\q~~Bcl'l.ail1.
This bit is not turned on when the OS ReaderlIIl~E!t"pr~'te'~ , .
is active and assigned to a PCE but does nothav~ajob to
process. This prevents unnecessary activ~ti~Il(th4~ing).of
the Reader/Interpreter when noJobsare.av~i~apl'c!'::~for,' j,.niti:ation.·
.. "
' ,
XTHAW performs the. following major
funci:i()~~::~~:';;
!;~': '::
(1)
(2)
(3)
.".
Examines theXPCEECB field of,the·Xw~w'pr()ceSl$or.
'
If this field ianon-zero, itiS'\ls~d·~,:'~p.e,.,~.q,;l.nt~r
to a chain of. ,lOBs (HASP b.tffers) Wl'li'?tl<:QQntr~~~i;::I:Ca'S
t9 be POSTed' (thawed) and the HASl?/(JS"'~cg~,+,).•:\ibi9.ij~ine
(WPOSTECB) is used ~o perform ,the .POS~4!?,:~'Tfle,i:cb~in
aSldress for ~he lOBs is contained'in.th@;.lOJa~,$W< £l~ld
which is set to zero for the last I013.-.,;:-" .,:~. ",,,,>.:
..
Next, . the ,Exepution PCEs are sea;r:',c;h~4::<';9.~,);;,tbex~o~~lJIT
condition ,and the XPCEECB field is, Pr.9~,~~(!d·as.d"e~:'
scribed inStep 1" if the XPOSTBITl.s.p~·'~·' . . . . '
XTHAW $WAlTs for ~~ork after processing:~a.J.J. PC$,s a§
described.'"
Execution
199
THAW.l'rocess().t~,~a9,e
4,.19-1
HAS P
4.20
OVERLAY ROLL PROCESSOR
4.20.1
Overlay Roll - General Description
This Processor operates in conjunction with the Overlay Service
Routines.
Description of them in Section 5.16 should be read to
provide proper background to understanding of Overlay Roll.
The
objective of this Processor is to prevent system lockout due to
$WAITs in overlay routine coding.
4.20.2
Overlay Roll - Program Logic
This Processor's peE is placed lowest on the HASP Dispatcher chain
and it $WAITs on ABIT when idle. This means that all Processors
with their requested overlay routine in an Overlay Area will have
at least one chance to execute code or otherwise use their overlay
routine before the Overlay Area containing that routine is taken
for other use.
Overlay Roll does not receive control unless all
other HASP Processors are in a $WAIT state, i.e., HASP is ready
to relinquish control to OS by WAIT.
Overlay Roil always receives
control, just before WAIT is executed.
Overlay Roll has local addressability provided in BASE2 and also
establishes the base address for Overlay Service in register we so
that its subroutines and tables may be used.
On each entry, the
Queue beginning with $WAITACE (see 5.16.2) of peEs waiting for an
Overlay Area is tested.
If empty, $WAIT ABIT is used to exit.
Otherwise, the following attempts are made to secure one or more
Overlay Areas and begin reading a requested routine into them.
For each group of one or more waiting PCEs requesting the same overlay routine, all Overlay Areas are searched to find a suitable one.
If a read operation to load an overlay routine is in process, the
area is never taken.
Users of that routine are allowed at least
one chance to execute after read completion is processed by Overlay
$ASYNC Exit (see 5.16.9).
For each Overlay Area which does not have read in process, the
OACEPRIO field is examined and the chain of all current users
(beginning at OACEPCE) is searched to determine if any user is
$WAITing on I/O.
This would be I/O other than an overlay read
operation, would be expected to complete "soonll, and would, therefore, make it less desirable to pre .... empt that area. The lowest
priority area with no user $WAITing I/O is chosen, if any, otherwise the lowest priority area is chosen.
Since an overlay routine is "refreshable" at $WAIT time, it is not
necessary to literally "roll", i.e-., write to disk, a pre-empted
Overlay Area.
Each PCE on the chain of current users (OACEPCE) is
Overlay Roll Processor - Page 4.20-1 .
200
HAS P
processed to prevent further use of the pre-empted area by it.
The re-entry address (PCER15) is "sized" to determine if it points
into the Overlay Area and if so is relativized by subtracting the
Overlay Area address. The peE is forced into a $WAIT OROL state,
in addition to the other $WAIT conditions present. When other
$WAIT conditions have been $POSTed, the Dispatcher (see 5.1.2)
detects the peE $WAITing OROL only and sets it to calIon Overlay
Service. OLOD subroutine (see 5.16.8) is eventually called to
refresh the routine, either directly, or if the PCE gets into the
$WAITACE Queue,· by OEXIT subroutine (see 5.16. 7) or by Overlay Roll.
The·area thus pre-empted is used to read in a new overlay routine,
to be used by the highest priority PCE group on $WAITACE. The OLOD
subroutine (see 5.16.8) is called to begin the read operation.
If there are more PCE groups on the $WAITACE Queue, the above actions
are repeated. When Overlay Roll finally exits by$WAIT ABIT, the
$WAITACEQueue is either empty or all Overlay Areas have an overlay
read operation started, to be posted by Overlay $ASYNC Exit.
Overlay Roll Processor ..... Page 4.20-2
2.01
HASP
4.21
4.21.1
HASP 5MB WRITER (HASPWTR)
HASP 5MBWriter - General Description
The primary function of this program is to read System Message
Blocks (SMBs) from the data set SYSl.SYSJOBQE and "pri'nt" them to
HASP. The process signals the end of the OS execution phase of a
job's processing and makes the messages (JCL, JCL diagnosis,
allocation/disposition, SMF, etc.) available to HASP, to be later
printed with print data sets of the job previously SPOOLed by HASP.
This program is used as an attached task, in the HASP region or
partition, if the HASPGEN parameter &WTRPART is set to "*". Otherwise, the standard OS Output Writer is used to fulfill the same
functions and is started by HASP in a separate partition, using a
procedure named HOSWTR. Therequeueing feature described below is
only available when using HASPWTR.
The program HASPWTR depends upon OS Queue Management structures
(QCR, LTH, 5MB, no-work ECB) as documented in OS/360 MVT Job Management PLM. Functions such as enqueue, dequeue or delete of a
job; ENQ/DEQ to control access to Queue Management resources; conversion of record addresses between NN, TTRO, and MBBCCHHR forms;
and computation of sector numbers when SYSl.SYSJOBQE is on an RPS
direct access device are all performed in a manner consistent with
that described for the standard OS Job Management modules.
Microfiche listings for IEFQDELQ, IEFQMDQQ, and IEFSD086 were consulted as examples during the development of HASPWTR. However, no
actual Job Management modules are executed by HASPWTR.
4.21.2
HASPSMB Writer - Program Logic
On initial entry after being ATTACHed, the program saves three addresses passed to it by HASP Initialization: memory address of
the pseudo 1403 UCB designated by the HASPGEN parameter &WTR, address of a HASP subroutine to be called to signal end-of-job, and
address of an ECB which will be posted by HASP if the operator enters the command $P HASP. After signalling HASP (via a POST) that
ATTACH was successful and setting up addressability to the dS Queue
Manager resident DCB and DEB for SYSl.SYSJOBQE, the program enters
its major processing loop.
The major processing loop is driven by inspection of a list of ECBs.
One is the $P HASPECB which, if posted, causes the program to terminate.as described below. All other ECBs are each part of an
eight byte no-work element. One such element is present for each
SYSOUT (MSGCLASS) to be processed, as indicated by the list of
HASP 5MB Writer (HASPWTR) - Page 4.21-1
202
HAS P
classes assigned to the HASPGEN parameter &WTRCLAS'. If an ECB is
posted, the Queue Control Record (QCR) for that class is read and
, a job is dequeued, if present. The dequeued job's last Logical
Track Header (LTH) must be read to perform the dequeue. The updated
QCR is re-written.
If there were no jobs to dequeue or the one
dequeued was the only one, the class ECB is cleared and the no-work
element is chained from the QCR before re-writing.
If a job was dequeued, its 5MBs are read, messages are formatted
into print lines, and the lines are "printed" to HASP using the
pseudo 1403 UCB.
If non-SMB blocks such as Data Set Blocks (DSBs)
are encountered, they are simply skipped. The data sets they
represent are not printed or scratched. When the end of the job
is reached, a small subroutine in HASP is called to signal end-ofjob to HASP.
The HASPGEN parameter &WCLSREQ controls the disposition of the job
after processing.
If the position in the list &WCLSREQ, corresponding to the position of the job's original class in the list &WTRCLAS,
is a valid SYSOUT class then the job is re-queued in the QCR for
that new class. Any tasks (e.g., other system writers for perhaps
CRBE, CRJE, TSO, CPS, etc.) whose no-work elements are chained from
that QCR are POSTed. The re-queue action always places the job in
the new QCR chains at highest priority.
If &WCLSREQ does not indicate re-queuing ("*" in a list position
instead of a class), the job's tracks in SY51.SYSJOBQE are released
by chaining them to the chain of free space beginning in the Master
QCR, POSTing any tasks waiting for Job Queue space, and re-writing
the Master QCR.
The major processing loop is repeated until no ECBs are found posted.
An OS multiple WAIT is executed and when any ECB is posted by another
task (usually an OS Job Terminator), the major processing loop is
resumed.
If the operator enters $P HASP, HASP will POST an ECB to signal
termination actions to this program. All QCRs for processed classes
(&WTRCLAS) are read, the no-work chain of each is zeroed, then the
QCR is re-written. HASPWTR exits with a zero completion code.
If permanent I/O errors occur during any I/O on the SYSl.SYSJOBQE
data set, an error message is always written to the operator. For
write operations, no further special action is taken and processing
continues. For read operations, an attempt is made to minimize
system damage. No input from an incorrect read is ever used for
processing. If the error occurs in reading a QCR or LTH while
attempting to de-queue a job" the ECB is set so that no further processing of that class will be attempted.
If there is an 5MB read
error, end-of-job is signalled to HASP and no further blocks on that
job's chain are read.
If a QCR read error occurs during are-queue
attempt, the job is deleted (tracks 'are released).
HASP 5MB Writer' (HASPwTR) - Page 4.21-2
203
HAS P
4.22
4.22.1
PRIORITY AGING PROCESSOR
Priority Aging Processor -- General Description
The function of the Priority Aging Processor is to regularly
increase the priority of a job in such a way that its position
in the HASP Job Queue is enhanced with the passage of time.
This is accomplished by regularly passing through the HASP Job
Queue and incrementing the priority field of all Job Queue
Elements whose priority falls between upper and lower limits.
These limits, as well as the time interval, are HASPGEN
parameters and can be specified to fit the needs of an
installation.
4.22.2
Priority Aging Processor -- Program Logic
When this processor is dispatched, it searches through the HASP
Job Queue until it encounters a Job Queue Element whose priority
field "QUEPRIO" (see figure 8.6.1) is less than the HASPGEN
parameter: &PRIHIGH. For that Job Queue Element and every Job
Queue Element after that (until the HASPGEN parameter &PRILOW
is reached), the priority field is incremented by one. The
Interval Timer is then reset and the processor enters a HASP
$WAIT until the timer interval expires.
Since the priority of the Job Queue Element is represented by
the four high-order bits of "QUEPRIO", adding one to this field
has no immediate effect on the priority. After repeating this
operation sixteen times, however, the actual value of the
priority will be increased by one. The value of the time
interval is actually only one-sixteenth of the interval implied
by the HASPGEN parameter: &PRIRATE. This effect tends to smooth
out the process of priority aging by creating less impact when
an interval expires.
In order to minimize CPU utilization, this processor discontinues
operation whenever the HASP Job Queue is empty and does not
continue until a new job enters the system.
Priority A9in9 Processor -- Page 4.22-1
204
HAS P
4.23
SYSTEM/3 REMOTE TERMINAL PROCESSOR PROGRAM LOGIC
The HASP System/3 Remote Terminal Program is assembled on a
System/360 or System/370 computer under OS, using Assembler F
(IEUASM).
The advantages of assembling under OS are:
the,
System/3 program can be assembled as part of a standard liASPGEN
or RMTGEN; a System/3 program can be customized to the particular
System/3 configuration and HASP System being generated, since
Assembler F can handle conditional assembly statements; and macros
can be used.
To allow assembly of System/3 code, a set of macros is included
as part of the System/3 source code, HRTPSYS3. Most of these
macros are designed to generate machine language code for the
System/3; a few additional macros, such as $WAIT and $FB, provide
for in-line functions and control blocks. The former macros will
be discussed first; they are called the machine-language macros.
The machine-language macros consist of a set of macros whose names
correspond to the mnemonic System/3 operation codes defined in the
publication "Card and Disk System Components Reference Manual"
(Order Number GA2l-9l03) and the extended System/3 assembler
mnemonics defined in the publication "Disk Syst8m Basic Assembler
Program Reference Manual" (Order Number SC2l-7509), with the following exceptions: each mnemonic operation code is prefixed by a
dollar sign; no macros are provided for the instructions ZAZ, AZ,
and SZ; additional extended mnemonics $NOPB and $NOPJ are provided;
and the form and order of the operands is such as to be convenient
to Assembler F.
When a machine-language macro refers to a location in core, the
operand is coded either "address" or "(displacement,register)".
Thus one might write "$MVC X'l234' ,(0,REG2) ,LENGTH" to move LENGTH
bytes to core location x'1234' (and succeeding lower-addressed
bytes) from the core location pointed to by REG2 (and succeeding
lower-addressed bytes).
There are ten forms of machine-language outer macros.
These are:
1.
The two-address form exemplified by "$MVC adrl,adr2,length".
The operands "adrl" and "adr2" are as explained above. The
operand "length" is assembled as "length-I" unless it is
omitted or is literally "*-*,, (in which case it is assembled
as zero) or the opcode is $MVX, in which case it is assembled
as "length". The opcodes $MVC, $ALC, $ED, ,', $ lTC, $CLC, and
$MVX belong to this form.
The extended mnemonics $l1ZZ, $MZN,
$MNZ, and $MNN may be used.
2.
The one-address form exemplified by "$L reg,adr" and includ.ing
$L, $A, $LA, and $ST.
'3.
The one-address form exemplified by "$MVI adr,irnm~diate" and
including $MVI, $CLI, $SBN, $SBF, $TBN, and $TBF.
System/3 Remote Terminal Processor- Page 4.23-1'
205
HAS P
4.
The Jump instruction, written as either "$JC adr,cc" or
"$Jxxx adr" , where $Jxxx is one of the extended mnemonics.
In this case, "adr" may not be specified as
"(displacement,register)" and must be within a positive displacement of 256 bytes from the last byte of the Jump
instruction.
5.
The Branch instruction, written as either "$BC adr,cc" or
"$Bxxx adr" where $Bxxx is one of the extended mnemonics.
6.
The one-address I/O forms, exemplified by "$LIO da,m,n,adr"
and including $LIO, $TIO, and $SNS.
7.
The instruction $SIO, written as "$SIO da,m,n,cc".
8.
The instruction $APL, written as "$APL da,m,n".
9.
The instruction $HPL, written as "$HPL cc", where each "c"
is either the actual character to be displayed as a halt code
or the character "*", indicating a byte of zeros.
For example, one might write "$HPL EJ".
10.
The assembler instructions $OC and $OS, ~here the statement
label (if any) is assigned the address of the last byte of
the last bperand specified.
In addition to the machine-language macros, a $USING and a $OROP
macro are provided to enable Assembler F OSECTs to be used more
easily.
The form of the $USING macro is "$USING expression,register" where "expression" is a one-to-eight-character expression
with the location counter reference symbol "*" either not used or
used as the first character '. and "register" is a one-to-eightcharacter absolute expression.
No more than two different
$USINGs (two $USINGs with different arguments "register") may be
outstanding at any time.
$USING works as follows:
from the time
the $USING is issued, for any address-type machine-language macro
which contains an address specification of "(displ,reg)", the
character string "reg" is compared with the string "register" of
each outstanding $USING.
If no·match is found, the displacement
is assembled as YLl(displ).
If a match is found, the displacement
is assembled as YLI(displ-(expression)), where "expression" is
taken from the corresponding $USING.
The form of $OROP is "$DROP register" where "register" is a character string that appeared as the second operand of a previous
and outstanding $USING.
The form "$DROP register,register" is
also allowable.
The assembly listing generated by Assembler F contains the macroexpansion for each macro used, in order to provide a printed copy
of the generated text of each machine instruction and the address
at which it will be loaded in System/3 storage.
The expansion
of each of the machine-instruction macros is typically contained
in one print line, and the text of the ~enerated instruction is
System/3 Remote Terminal Processor - Page 4.23-2
206
HAS P
always contained in hexadecimal on one print line.
The object deck produced by Assembler F is used as input to the
translation program SYS3CNVT, called -automatically by RMTGEN.
SYS3CNVT reads the object deck via either ddname SYSLIN, or
ddname SYSGO if SYSLIN is absent.
First, SYS3CNVT punches on
SYSPUNCH a System/3 one-card loader.
Then it reads from SYSLIN
or SYSGO, ignoring all but TXT cards and the END card. For each
TXT card, SYS3CNVT creates one System/3 96-column load-mode card
image, suitable for reading by the System/3 one-card loader.
Each
such 96-column card image contains 64 bytes of information as
follows:
•
•
•
bytes 1-5 contain a System/3 $MVC instruction of the form
"$MVC load-adr, (column-nwnber,l) ,length-l" where load-adr
is the absolute load address of the rightmost byte of text
on the corresponding 80-column Assembler F object deck TXT
card, column-nunmer is the number minus one of the 96-card
column in which appear the low-order six bits of the rightmost byte of text, the digit "1" refers to the System/3's
register 1, and length is the number of bytes of text on
the card;
bytes 6-61 contain a maximum of 56 bytes of text, starting
in column 6; and
bytes 62-64 contain a three-digit card sequence number .
. When the object deck's END card is detected, or when a TXT card
appears that was generated by the $END macro (whose optional keyword operand START= specifies the starting execution address of
a segment of text), a 96-column load-mode card image is constructed
whose 64 bytes are as follows:
•
•
bytes 1-4 contain a System/3 $B instruction of the form "$B
address" where address is either the first byte of the text
segment just loaded (if the $END macro does not specify
START=, or if the END card of the assembly has no operand) or
the address specified in the START= parameter of the $END
macro or the operand field of the END card;
bytes 62-64 contain a three-digit card sequence number.
After the object deck's END card has been processed, SYS3CNVT
creates a 96-column card image of which columns 2-4 are "EOR"
(this is the rep terminator card, End-of-reps) and columns 62-64
contain a three-digit c~rd sequence number.
Certain of these 96-column card images contain descriptive information in bytes 33-64: these are the one-card loader, which is
captioned "FIRST CARD"; the card created from a $END macro, which
is captioned "PSEUDO-END"i and the card created from an END card,
which is captioned "LAST CARD".
After it has created each 96-column card image (including that for
the one-card loader), SYS3CNVT breaks the image in half and punches
two aD-column cards from it. Each 80-column card punched by
System/3 Remote Terminal Processor - Page 4.23-3
207
HAS P
SYS3CNVT.contains the following fields:
•
•
•
•
•
columns 1-2 are blank;columns 3-50 contain the first (if column 80 is odd) or the
last (if column 80 is even) 48 bytes of a System/3 card
image;
columns 51-72 are blank;
column 73 contains the punch combination for X'80', an
indicator to any System/3 Remote Terminal Program generated
with &S396COL·=1 that two 80-column cards are to be combined
and punched as one 96-column card (the System/3 Starter System
is generated with &S396COL=1);
columns 74-80 contain the remote terminal identifier and card
sequence number, in the form "Rmmnnnn", where nnnn is 0001 on
the first card punched.
The punched output of SYS3CNVT may be routed directly to a System/3
which is running the Starter System or other suitable System/3 Remote Terminal Program; the resulting 96-column punched deck of
cards is immediately ready for loading into a System/3 of the
proper configuration. Alternatively, SYS3CNVT's punched output
may be punched on 80-column cards for later transmittal to a
System/3. Each 80-column card is suitable for data transmission
in either transparent or non-transparent mode.
System/3 Remote Terminal Processor- Paqe4.23-4
208
HAS P
The following pages constitute the Program Logic manual for the
System/3 Remote Terminal program.
The program consists of processors, interrupt routines, and system'"
subroutines.
There is a processor for each logical function to
be performed by the program; each processor is controlled by a
Function Block (somewhat analogous to a TCB in aS).
Interrupt
routines are provided for those devices (BSCA, 5471, and 5475)
which are capable of interrupting the CPU; other devices are
operated by processors.
For example, the MFCU processor operates
a hopper of the 5424 MFCUi it becomes associated with either a
logical reader processor or a logical punch processor, depending
upon the state of the hopper.
The various routines of the System/3 Remote Terminal program
are described in the order in which they appear in the listing.
System/3 Remote Terminal Processor - Page 4.23-5
209
HAS P
IHEREP - HASP Environmental Recording and Error Processor
IHEREP prints at program load time the error statistics gathered
from the previous running of the System/3 Remote Terminal program.
IHEREPis then overlaid and the Remote Terminal program
continue~ to load.
First, IHEREP loads the 5203 forms length register and selects
the correct print chain image according to the printer 1 s status
information.
Then it checks the log area for validity.
If the
log area is valid, the characters 'HASP' will appear immediately
before the log area.
If these characters do not appear, IHEREP
prints the message
HEREP COUNTERS HAVE BEEN ALTERED
and branches to zero to cause program loading to resume.
If the log area is intact, it contains eight two-byte counters
for each status byte which can contain unit check information
for a device.
IHEREP prints a title line and then, for each
status byte, a subtitle line and as many as eight detail lines.
A subtitle line contains device description and status byte number.
A detail line contains status bit description, bit number, and
count of bit occurrences in decimal.
Control of IHEREP resides in the table of subtitles and detail
descriptors, and control of the two-byte bit counters is by a
bit string (starting at symbol IHBITl) containing one-bits
for the counters to which correspond detail descriptors. The
table of subtitles and detail descriptors is made up of $IHMSG
macros; if the first operand of this macro is 'T', the macro
defines a subtitle, and if the first operand is an integer
between 0 and 7, it specifies a detail descriptor for the bit
whose bit number is the first operand. The table entries are
used in order, and a byte of zero defines the end of the table.
When the HASP Environmental Re~ording and Error Printout is complete, the counters are zeroed out and IHEREP branches to zero
to continue program loading.
System/3 Remote Terminal Processor - Page 4.23-6
21.0
HAS P
$COM - Commutator
The Commutator gives control in turn to the various processors
which comprise the System/3 Remote Terminal program, based upon
the status of the various Function Blocks (FBs).
If the Event Wait Field (FBEWF) of an FB has zeroes in the bit
positions defined by EWFALL, the function is said to be dispatchable.
$COM loads register one from field FBREGl of the FB (register two
points to the FB) and gives control to the associated processor by
loading the Instruction Address Register (IAR) from field FBENT.
When the processor has completed its work, it returns to the commutator with register two pointing to its FB.
It may return to
$COMRET, where $COM will save both the Address Recall Register (ARR)
as the processor's next entry point and the value of register one;
$COMRETA, where $COM will save the value of register one; or
$COMRETB, where $COM will assume that both the value FBENT and
the value FBREGl are correct.
Then $COM chains to the next FB (or starts again with the first
FB if the chain field FBNEXT is zero) and repeats the above process.
System/3 Remote Terminal Processor - Page 4.23.7
211
H A 8 P
$MFCU - 5424 MFCU Processor
$MFCU operates under two FBs and two Hopper Control Areas (HCAs) one for each MFCU hopper.
The routine contains four levels of
subroutines.
$MFCU begins by calling first-level subroutine HREAD to read a
card.
HREAD sets up a read $SIO instruction from information
in the HCA and calls second-level subroutine HEXCP. HEXCP calls
fourth-level subroutine HTIO, which returns condition code equal
if the hopper described by the HCA is ready and condition code
unequal if it is not.
If condition code unequal is returned;
HEXCP returns to the commutator; it will regain control again at
the call to HTIO.
If the hopper is ready, HEXCP calls third-level subroutine H8IO
to perform I/O on the hopper.
H8IO first checks for various
exceptional conditions.
If error recovery is in progress (for
the other hopper), H8IO returns immediately with condition code
unequal.
It returns similarly if the MFCU is busy reading,
printing, or punching.
If error recovery is not in progress and
the MFCU is not busy, H8IO tests the "hurry" switch (which is set
if one hopper is active and the other hopper becomes ready with
a read $810 pending for it).
If the hurry switch is set and the
current $SIO is not a read-only $810, H8IO returns condition code
'false.
If all the above tests are passed, H8IO checks the stacker request
associated with the current $810.
If the stacker request is different from that for the previous $810, the feed path is checked
to make sure it is clear.
If the feed path is not clear, H8IO
returns condition false; in addition, if the $810 is read-only,
it sets the "hurry" switch. But if the feed path is clear, H8IO
resets the hurry switch, sets the new stacker number, and proceeds
as if the stacker request for the current $810 were the same as
that for the previous $810.
If no stacker change is indicated, H8IO moves the current $810
to an in-line position from the HCA and examines it.
If the $810
indicates print (interpreting), H8IO attempts to select one of two
print buffers into which to move the punch information for the
$810.
If unsuccessful, HSIO returns condition code unequal.
But
if one of the print buffers is free (as indicated by the MFCU
print-buffer-busy status bits) H8IO copies 'the punch data into
the print buffer and modifies the $810 instruction to indicate
the print buffer being used.
Then, or if the $810 is read-only,
H8IO loads the MFCU's read and punch data address registers.
After a call to HTIO to insure that the hopper is still ready,
H8IO issues the $810 instruction, sets condition code equal, and
returns to its caller, HEXCP.
System/3 Remote Terminal Processor - Page 4.23.8
212
HAS P
HEXCP examines the condition code returned. to it.
If the con~ition
code is unequal, HEXCP non-process exits, exactly as it did for
HTIO above. But if the condition code is equal, HEXCP non-process
exits to be entered again at a $TIO which continues to non-process
exit until the MFCU ceases being busy; then HEXCP calls third-level
subroutine HSNS to determine the completion of the I/O operation.
HSNS calls HTIO to see if a unit check condition exists.
If that
is the case, HSNS reads the MFCU status bytes.
If all status bits
in the error status byte are off (or if no unit check condition
existed) HSNS returns condition code equal; if only the no-op status
bit is on, HSNS returns condition code unequal.
If other error status bits are on, HSNS calls system subroutines
$MSG and $LOG to add a message to the error trace table and to
count the error bits for HEREP, respectively. Then HSNS checks
the error bits further.
If the only error bits on are punch
invalid or print check, HSNS returns condition code equal; these
are regarded as user data errors (punch invalid) or trivial errors
(print check).
But if other error bits are on, HSNS sets the error-recovery-inprogress flag in HSIO (to prevent other $SIO instructions from
resetting the error bits) and non-process exits until a SNS instruction shows that all error bits (except no-op) have been reset
by the operator (who must do a non-process run-out on the MFCU).
Then HSNS returns condition code unequal.
HEXCP returns to its caller (which was HREAD in this case) the
condition code it received from HSNS.
HREAD examines the condition code returned to it by HEXCP.
If
unequal was returned, HREAD again calls HEXCP; otherwise firstlevel subroutine HREAD returns control to mainline $MFCU (in
this case, at its second instruction).
Having read the first card from its hopper, $MFCU now tests that
card for blanks, via first-level subroutilie HBLANK.
If the card
is blank, the hopper is assumed to contain blank cards to be
punched. Otherwise, the hopper is assumed to contain a job
stream and the MFCU awaiting-read routine HAR attempts to associate the hopper with a free logical reader FB, using subroutine
HGET. HGET returns condition code equal if it succeeds (it also
posts the logical reader's FB for UNIT), and condition code
unequal if the hopper becomes not ready (and therefore dormant
rather than awaiting-read); otherwise, HGET non-process exits
until one of the above two conditions happens.
If HGET returns condition code equal, the MFCU reading routine,
HRD, signals to the now-associated logical reader that the read
buffer for the associated hopper is busy; then HRD non-process
System/3 Remote Terminal Processor - Page 4.23.9
?11
HAS P
exi ts until t.he logical reader frees the read buffer. When the
read buffer is free, HRD checks the EOF flag, set by -the logical
reader when it encounters a /*EOF control card.
If the EOF flag
is on, HRD makes the hopper dormant by branching to the first
instruction of $MFCU; otherwise HRD calls first-level subroutine
HREAD as above to read the next card and, on return, again sets
the read buffer busy.
If on the other hand $MFCU finds a blank card in a dormant hopper
it gives control to HAP, the awaiting-punch routine, which tries
to find (via HGET) a logical punch FB of which HASP has requested
permission to send a punch stream. Having found such a logical
punch, HAP gives control to HPU, the MFCU punch routine.
HPU non-process exits until the associated logical punch processor
sets either the EOF flag or the punch-buffer-busy flag in the
flag byte of its hopper control area.
If the EOF flag is set,
HPU makes the hopper dormant.
But if the punch-buffer-busy flag is set, HPU punches and prints
a card and reads the next card (to insure that only blank cards
are punched).
HPU sets up a read-punch-print $SIO and calls
second-level subroutine HEXCP.
If HEXCP returns condition code
unequal and the MFCU status indicates any of the errors no-op,
punch check, hopper check, or feed check, the punch buffer is not
marked free; otherwise it is marked free and set to blanks.
The
MFCU status is checked again; if neither read check nor no-op is
indicated, the card is examined to determine if it is completely
blank. Otherwise, or if the card now in the wait station is not
blank, another card is read (via subroutine HREAD). When a blank
card has been read successfully,HPU again checks for punchbuffer-busy as above.
System/3 Remote Terminal Processor - Page 4.23.10
214
HAS P
$1442 - 1442 Card Reader - Punch Processor
The $1442 processor is assembled if RMTGEN parameter &S3l442 h~s"
been set to 1.
Its logic is similar to that of $MFCU but simpler,
since only one hopper need be controlled.
$1442 uses some of the
subroutines of $MFCU; for this reason, and since its interface to
the logical reader and logical punch is the same, the 1442 hopper
control area is similar to (but not identical with) the HCAs of
the MFCU.
$1442 starts by reading a card from the 1442 via entry point
GSIORD of subroutine GSIO.
If the card is blank, GAP (awaitingpunch) calls HGET just as does HAP in $MFCU; if the card is nonblank, GAR (awaiting-read) calls HGET just as does HAR in $MFCU.
When a logical reader or logical punch has been associated with
the 1442, GRD or GPU gains control and proceeds with I/O as indicated by the read-buffer-busy and punch-buffer-busy flags.
In
addition to recognizing the EOF flag set by the logical reader,
GRD also recognizes the last-card status bit from the 1442 and
sets the last-card flag, recognized by the logical reader.
Subroutine GSIO performs I/O on the 1442. Entry point GSIORU
sets a feed command in the $SIO and branches to common code.
Entry
point GSIORD sets a read-EBCDIC command in the $810 and loads the
.data address register; it branches to common code.
Entry point
GSIOPU sets up a punch-and-feed command, loads the data address
register and the punch count register, and falls through to
common code.
GSIO's common code non-process exits on a $TIO until the hopper
is ready.
Then it issues the constructed $SIO and non-process
exits until the 1442 is not busy.
If entry was from GSIORU,
GSIO returns condition code equal; otherwise it tests for unit
check (via subroutine HTIO) and reads the 1442 status bytes.
If
no unit check occurred, GSIO returns condition code equal.
But if the 1442 had a unit check or otherwise became not ready,
GSIO uses subroutines $MSG and $LOG to add a message to the
error trace table and to count the error bits for HEREP,
respectively; then it checks the status bytes.
If no error bit
is on, GSIO returns condition code equal; otherwise GSIO returns
condition code unequal.
System/3 Remote Terminal Processor - Page 4.23.11
215
H A 8 P
$5203 - 5203 Printer Processor
The 5203 Printer Processor non-process exits until another
processor has marked the printer data area busy. Then it completes the Q-byte and CC-byte of a $S10 instruction from an
8RCB furnished it by either $PRINTER or $CONP. After a $T10
shows that the 5203 is ready, $5203 loads the printer image
address register and the printer data address register and
issues the $810.
$5203 then non-process exits until the printer
is not busy.
When the printer operation has ended, $5203 checks for errors.
If any of the error incrementer failure check, hammer echo
check, or any hammer on check has occurred, $5203 attempts to
reprint the line. Otherwise it clears the print line to blanks,
shows the print buffer free, and again non-process exits until
a processor sets the print buffer busy.
Additionally, whenever a unit check occurs, $5203 calls subroutines $MSG and $LOG to produce an error message and to
count the one-bits in the printer status bytes.
System/3 Remote Terminal Processor - Page 4.23.12
216
HAS P
$READER - Logical Reader Processor
$READER waits for one of the physical reader routines to post it
for UNIT. When posted, it sends to HASP a request-permission
control sequence (via subroutine $REQ) and waits to be posted for
PERM by $BSCA when the system receives from HASP the appropriate
permission-granted sequence.
When it has received permission, $READER non-process exits unless
the read-buffer-busy flag is on, indicating a card is ready to be
processed. Then it examines the card. If the card's columns 1-5
are "/*EOF", $READER sends to HASP an end-of-file control sequence
(via subroutine $LEOF), which is merely a zero-length record.
It
then waits again for UNIT, and continues as above when posted.
The same end-of-file processing occurs if the reader is a 1442 and
the last-card flag was set by the 1442 physical reader routine.
1442 code is absent unless &S3l442=1.
If there is no end-of-file indication, $READER processes the card
further.
If object deck processing was not specified at RMTGEN
time, $READER transmits the first 80 columns of the card to HASP
by calling subroutine $CMPR. On return, $READER resets the readbuffer-busy flag of the appropriate hopper control area and nonprocess exits until the read-buffer-busy flag is again set by the
physical reader routine., Then it continues as above.
However, if object deck processing was indicated at RMTGEN time by
the specification &S30BJDK=l and if the physical reader device is a
5424, $READER first checks column 81 of the 96-column card image
for the character "1".
If ·the comparison is unequal, $READER
processes the card normally, as above. But if column 81 equals
"1", the card is the first card of a two-card hexadecimal image of
a full-EBCDIC 80-column card.
In this case, $READER compresses
the first 80 columns of the card into the first 40 bytes of the
same device's punch buffer, shows the read buffer free, and nonprocess exits until the read buffer is again busy. Then it checks
the new card image for a "2" in column 81.
If column 81 does not
contain a "2", $READER treats the newly-read card as a normal card,
and the previous card is lost.
If the new card contains a "2" in
column 81, $READER compresses its first 80 columns to the second
40 bytes of the same device's punch buffer and transmits the constructed card image to HASP, using subroutine $CMPR. Then it
resets the read-buffer-busy bit and non-process exits as above.
Subroutine RDSQUEZE performs the above-mentioned compression.
It
creates a single sink byte from a pair of source bytes each of
which is assumed, without validity-checking, to contain the
EBCDIC representation of one of the sixteen hexadecimal characters.
For example, it would compress the byte pair "FOC6" to the byte "OF".
System/3 Remote Terminal Processor - Page 4.23.13
217
HAS P
$PRINTER - Logical Printer Processor
$PRINTER waits for HASP to send a request-permission control
sequence. When $BSCA finds such a sequence, it posts $PRINTER
for permission.
$PRINTER then checks the printer availability
flag.
It non-process exits until this flag becomes zero; then it
sets this same flag to show that the printer is in use.
It sends
a permission-granted control record to HASP (via subroutine $PERM)
and then, if the print buffer is free, calls subroutine $DCOM to
request a print line be decompressed into the print buffer.
On return from $DCOM, $PRINTER recognizes two or three conditions:
normal return, end-of-file return, and (optionally) forms mount
message.
For the forms mount message case, the SRCB (carriage-control byte,
in the case of print records) will be X'SE'.
$PRINTER makes the
carriage control byte a print-and-space-three, shows the print
buffer busy, and non-process exits until the print buffer becomes
free; then it sets a carriage-control byte of space-three-irnrnediate
(so that the forms mount message will be visible on the printer
without operator intervention) and continues as in the normal case.
This code is assembled only if &S35471=0.
For the normal-return case, $PRINTER moves the SRCB returned by
$DCOM to the printer control area as the carriage control byte,
sets the print-buffer-busy bit, and non-process exits until the
print-buffer-busy bit is off.
Then it again calls $DCOM for the
next print line.
For the end-of-file case, $PRINTER resets the printer availability
flag and checks to see if HASP had again sent a request-permission.
If so, $PRINTER again sets the printer availability flag, sends to
HASP permission-granted (via subroutine $PERM) and continues as
above.
Otherwise $PRINTER waits for HASP to send request-permission.
System/3 Remote Terminal Processor - Page 4.23.14
218
HAS P
$PUNCH - Logical Punch Processor
$PUNCH waits for HASP to send a request-permission control sequence.
When $BSCA finds such a sequence, it posts $PUNCH for PERM, whereupon $PUNCH waits for UNIT. When posted for UNIT by a physical
device routine, $PUNCH sends a permission-granted control record
to HASP (via subroutine $PERM) and non-process exits until the
appropriate punch buffer is free.
Then it calls subroutine $DCOM
to decompress a card image into the punch buffer.
If $DCOM returned a card image (rather than end-of-file) the image
is processed in various ways, depending upon the type of the punch
device and options selected at RMTGEN time.
If the punch is a
1442, $PUNCH calculates the number of bytes to punch, subtracts it
from 128, places the difference in the 1442 hopper control area,
and shows the punch buffer busy.
It then non-process exits, as
above, until the punch buffer becomes free.
If the device is a 5424, $PUNCH first checks column 1 of the card
image.
If column 1 is X'6A ' , the card image is assumed to be a HASP job
separator card.
$PUNCH extracts the job number from columns 52,
62 and 72, ignores the rest of the image, and punches a card of
which columns 1-32 are:
**********
JOB
nnn
**********
It causes this card to be punched as usual, that is, by marking the
punch buffer busy; then it non-process exits until the punch buffer
becomes free.
If the device is a 5424 and RMTGEN specified &S396COL=1, $PUNCH
checks column 73 of the card image.
If that column is X'80',
$PUNCH checks column 80.
If column 80 is odd, $PUNCH saves in a
work area in its Function Block the 48 columns starting at column
3 and again calls $DCOM to get the next card, as above.
If column
80 is even, $PUNCH moves columns 3-50 of the card image to columns
49-96, moves the first 48 bytes from its work area to columns 1-48,
and causes the card to be punched.
If the device is a 5424 and RMTGEN specified &S30BJDK=1, $PUNCH
checks column 1.
If that column is X ' 02', $PUNCH saves the
rightmost 40 columns of the 80-column card image in its work area
and expands the leftmost 40 columns to 80 columns by substituting
for each byte two EBCDIC characters; for example X'02' becomes
C'02'.
It sets the character "I" in column 81 and causes the card
to be punched.
$PUNCH then repeats this process for the saved 40
columns, sets the character "2" in column 81, and causes the card
System/3 Remote Terminal Processor - Page 4.23.15
219
HAS P
to be pun,ched.
If none of the above situations apply, $PUNCH merely marks the
punch buffer busy, non-process exits until it becomes free again,
and then calls $DCOM to get the next card.
$DCOM ma,y return an end-of-file indication rather than a card
image. $PUNCH sets the end-of-file flag in the hopper control
area and checks for a subsequent request-permission from HASP.
If HASP has requested permission again, $PUNCH waits again for
UNIT, as above; otherwise $PUNCH waits for PERM, as above.
System/3 Remote Terminal Processor - Page 4.23.16
220
HAS P
5471 Console Interrupt Routine
CINT, the 5471 console interrupt routine, gains control upon an
interrupt from either the 5471 printer or the 5471 keyboard.
A
keyboard interrupt may occur due to the End key, the Return key,
the Cancel key, the Request key, or a Data key. A printer interrupt may occur either after completion of printing a character or
after a carriage return.
At an End key interrupt CINT starts a carriage return, posts the
console processor, and exits by starting the keyboard.
If a
request is pending, the Start-I/O instruction sets the request
light on and disables interrupts from all keys; otherwise it sets
both lights off and enables interrupts from the request key.
A Return key interrupt causes the same functions as an End key
interrupt.
A Cancel key interrupt causes CINT to print an asterisk and set a
flag which will cause a carriage return at the next printer interrupt.
CINT then resets the buffer pointer to point to the first
byte of the buffer and exits by issuing a SIO which leaves the
same lights on and interrupts enabled as before the interrupt.
At a Request key interrupt, CINT posts the console processor if
a~ inspection of the console status byte CCFLG shows that neither
input nor output is currently in process. In any case, it sets
the request-pending bit and exits by issuing a SIO which turns on
the request-pending light, disables request key interrupts, and
leaves the proceed light and. other key interrupt indicators as
they were before the interrupt.
For a Data key interrupt, CINT saves the keyed character in the
buffer byte pointed to by the buffer pointer; then it increments
the buffer pointer by one.
It issues a SIO to the printer so that
the keyed character will be printed.
If the buffer pointer now
falls outside the buffer, CINT turns on the carriage-return request
bit and performs all the functions of the End key except for issuing
a carriage return.
Otherwise it exits by issuing to the keyboard a
SIO which leaves the same lights on and interrupts enabled as
before the interrupt.
On a printer interrupt due to end of either printing or carriage
return, CINT tests the carriage return request bit.
If that bit
is on, CINT resets it and exits by issuing a SIO for carriage
return.
If there is no carriage return request pending, CINT tests the output-in-process bit.
If output is ·not in process, CINT exits by
disabling printer interrupts. But if output is in process, CINT
checks whether the final output character has been printed.
If so
it resets the output-in-process flag, posts the console processor,
and exits by starting a carriage return.
If not, it selects and
System/3 Remote Terminal Processor - Page 4.23.17
221
HAS P
loads the next character to print and exits by issuing a 810
to print that character.
Whenever CINT posts the console processor, it also turns on the
action-required flag, CFACT. This flag is tested and reset by
the console processor.
System/3 Remote Terminal Processor - Page 4.23.18
222
HAS P
5471 Console Processor
The 5471 console processor, $CON, non-process exits until posted;
then it checks to find what caused it to be posted.
If input is complete, $CON replaces in the MULTI-LEAVING buffer
pool the buffer it stole when it acknowledged the request key.
Then it sends the operator command to HASP by calling subroutine
$CMPR, unless the input length is zero.
In any case, it continues
by checking for request-pending.
If a keyboard request is pending, $CON first steals a buffer from
the MULTI-LEAVING buffer pool, to avoid a potential buffer lock-out
problem.
If no buffers are available, it leaves the request pending
and checks for queued buffers containing messages to print on the
5471 printer.
But if the MULTI-LEAVING buffer steal was successful
$CON resets the 5471 buffer pointer, resets the action-required and
request-pending flags, sets the input-in-process flag, and issues
a' SIO which turns on the proceed light and enables all keyboard
interrupts. Then it non-process exits until posted.
If $CON was not posted for the above reasons, it investigates output possibilities.
If either input or output is in process, it
cannot start output; it again non-process exits until posted.
But
if neither input nor output is in process, and if there is no endof-forms indication from the 5471, $CON checks for output. First
it checks the error message table, a circular table, to see if any
error messages are outstanding.
If so, it expands a four-byte coded
error message to the equiyalent eight-character hexadecimal representation in the 5471 buffer, sets the output-in-process flag, and
issues a SIO to start printing the first character; then it nonprocess exits until posted, while CINT prints the remaining characters.
If no error messages are outstanding, $CON checks for messages from
HASP.
If there are some, $CON calls subroutine $DCOM to decompress
a message.
In order not to be forced into a wait condition on subsequent calls to $DCOM, $CON then checks whether the MULTI-LEAVING
buffer from which the message was decompressed contains more
messages; if not, $CON frees it by calling subroutine $FREEBUF.
Then $CON initiates printing of the message by setting the outputin-process flag and issuing a SIO to print the message's first
character. Then $CON non-process exits until posted.
System/3 Remote Terminal Processor - Page 4.23.19
223
HAS P
5475 Console Interrupt Routine
Upon an interrupt from the 5475 Data Entry Keyboard, the 5475
Console Interrupt Routine (CINT) checks the cause of the interrupt. An interrupt may be caused by a data key, the field-erase
function key, the release function key, the error-reset function
key, any other function key or switch, or the multipunch key. A
mUltipunch key interrupt is treated as an error and requires the
operator to depress-the error-reset key; all function keys and
switches other than those mentioned are treated as no-operation
keys.
A data key interrupt causes CINT to place the keyed character in
the 5475 buffer. CINT then increments the buffer pointer by
one; if the buffer pointer now points outside the buffer, CINT
performs the release key function. Otherwise CINT adds one to the
column indicated and exits. The exit process consists of issuing
a LIO for the column indicators and a SIO for the keyboard.
An interrupt from the field-erase key causes CINT to reset the
buffer pointer, set the column indicators to display "01", and
exit.
An interrupt from the release key causes CINT to post the 5475
console processor for work, set the SIO in CINT to disable the
keyboard, and exit.
Any of several error situations causes CINT to turn on the error
light. It does this by setting its SIO to X'23', which also
locks all data keys. When an interrupt other than from the errorreset key occurs and the error light is on, CINT exits without
further processing. But if the interrupt was from the error-reset
key, CINT resets the SIO to its normal value of X ' 4F' and exits.
Conditions which cause the error light to come on are a multipunch
interrupt indication, no interrupt indication, or two or more of
the interrupt conditions data key, function key, and multipunch
key.
-
System/3 Remote Terminal Processor - Page 4.23.20
224
HAS P
5475 Input Console Processor
When posted for WORK by CINT, the 5475 Input Console Processor
($CON) sends the operator command to HASP by calling subroutine
$CMPR, unless the input length is zero.
In any case, it resets
the column indicator save area to "01", resets the 5475 buffer
pointer, and sets to X'4F' the SIO in CINT.
Then $CON turns
off the column indicator display (to avoid burning out the lights),
issues a SIO to unlock the keyboard and enable interrupts, and
again waits for WORK.
System/3 Remote Terminal Processor - Page 4.23.21
.225
HAS P
$CONP - 5203 Output Console Processor
When posted for WORK, $CONP checks the printer-availability flag.
This flag is on if $PRINTER is currently printing a job.
If the
flag is on and RMTGEN specified &PRTCONS=2, $CONP frees all
MULTI-LEAVING buffers currently queued on its Function Block
(using subroutine $FREEBUF) and again waits for WORK. But if
RMTGEN specified &PRTCONS=l, $CONP checks to see if it should
force messages to be printed on the 5203.
It does this by comparing the number of MULTI-LEAVING buffers currently queued on its
Function Block with a maximum number.
If the comparison is low,
it non-process exits until either the comparison is not low or
the printer-availability flag is off; if the comparison is not
low, it performs a page eject before starting to print messages.
To print messages, $CONP first prevents the logical printer routine
$PRINTER from using the 5203 simultaneously; to prevent this, it
sets the UNIT wait bit in $PRINTER's Function Block.
Then $CONP
attempts to find an outstanding four-byte coded error message; if
it finds one, it expands the message to eight bytes and causes it
to be printed.
If no error messages are outstanding, $CONP checks for messages
from HASP.
If there are some, it calls $DCOM to decompress a
message.
In order not to be forced into a wait condition on subsequent calls to $DCOM, $CONP then checks whether the MULTI-LEAVING
buffer from which the message was decompressed contains more messages; if not, it calls $FREEBUF to free the buffer. Then $CONP
causes the message to be printed, by marking the print buffer busy
and non-process exiting until it again becomes free. All messages
printed by $CONP are single-spaced.
Finally, if no messages remain to be printed, $CONP examines the
printer-available bit to determine if it interrupted a job to print
messages.
If so, $CONP does a page eject.
In any case, $CONP
resets the UNIT wait bit to unlock $PRINTER and waits for work
again.
System/3 Remote Terminal Processor - Page 4.23.22
226
HAS P
BSCINT - BSCA Interrupt Routine
The BSCA·Interrupt Routine, BSCINT, processes all interrupts and
performs all error recovery for the Binary Synchronous Communications
Adapter.
Processing is always initiated by one of three types of
op-end interrupts - end-of-transmit, end-of-receive, and 2-secondtimeout. :
For an end-of-transmit interrupt, BSCINT gains control at BSXOPE.
If no hardware errors have occurred, it starts a receive operation;
otherwise it uses subroutine BIDISCON to recover from a possible
disconnect and, on return, attempts to re-transmit.
For an end-of-receive interrupt, a great deal more is done. After
having computed the number of received bytes, BIRCV checks for
hardware errors; if any occurred, it uses subroutine BIDISCON and
then transmits a negative acknowledgment (NAK) to HASP.
If no hardware error occurred, the starting sequence is checked at
BCROK - it is valid if it is a NAK or a DLE-ACKO or if its second
byte is STX and the last byte received is ETB.
If none of these
is the case, BCROK sets up an error message of 03SSSS00 (where
SSSS is the starting sequence) and then transmits a NAK to HASP.
The section of code responsible for transmitting a NAK first checks
whether the wait-a-bit (WAB) sequence had been transmitted most
'recently; if so, it transmits the WAB sequence again rather than a
NAK.
If not, it determines if more than five bytes had been
received.
Since the buffer used for a receive is the same as that
used for a transmit, the receive operation may have overlaid some
or all of the transmitted data: since the starting or ending sequence was incorrect or a hardware error occurred, BSCINT has not
yet received a positive acknowledgment for the transmitted data.
To alleviate this problem, the first five bytes of the transmit
data were saved before the buffer was transmitted.
If the receive
operation overlaid more than these bytes, the buffer cannot again
be transmitted; the first two saved bytes are replaced with a
DLE-ACKO and the transmit ending address is set to the starting
address plus two. Then the routine transmits a NAK to HASP.
If the received starting sequence was a NAK, the interrupt routine
sets up an error message of 02000000 (NAK received), refreshes the
first five bytes of the buffer and the transmit ending address, and
re-transmits the buffer to HASP.
If the received sequence was DLE-ACKO, BSCINT sets flags to show
$BSCA that a transmit-receive operation has completed; then it
exits by starting a two-second timeout.
If the two-second timeout
completes before $BSCA has cancelled it, BSCINT sets the two-secondtimeout-complete flag and exits by disabling BSCA interrupts.
System!) Remote Terminal Processor - Page 4.23.23
227
HAS P
If the second byte of the received starting sequence was STX and
the ending byte was ETB, BSCINT validates the Block Control Byte
"", ,(a HASP control byte which contains a modulo-16 received-block
count) and saves the two-byte HASP Function Control Sequence. If
the BCB is as expected, interrupt processing concludes as for
DLE-ACKO. Otherwise the STX is changed to X'FF' as a signal to
$BSCA to throw the buffer away and the difference between the
received BCB and the expected BCB is examined. If the modulo-16
difference is -2 or -1, BSCINT tolerates the error; otherwise it
sets up an error message of 02rreeOO to display the received and
expected BCB's, and it builds and transmits to HASP a BCB-error
control sequence.
System/3 Remote Terminal Processor - Page 4.23.24
228
HAS P
$BSCA - Communications Adapter Processor
$BSCA non-process exits until BSCINT posts it with an indication
that either an error message awaits synchronous processing, a receive operation has completed without error, or a two-second timeout has occurred.
If an error message was produced by BSCINT, it must be placed in
the circular error message trace table by asynchronous processor
rather than an interrupt routine, since the $MSG subroutine is not
re-entrant.
$BSCA calls the $MSG subroutine to add the error message to the trace table.
If a receive operation has ended without error, $BSCA processes
the received buffer, which is always the first buffer on $BSCA's
buffer chain.
If the buffer does not contain text, $BSCA frees it
immediately. Otherwise $BSCA inspects the buffer's first RCB (or
first SRCB if the RCB indicates a MULTI-LEAVING control record) •
If the RCBis zero (typical when HASP sends wait-a-bit) $BSCA frees
the buffer. Otherwise $BSCA compares the RCB (or SRCB) with the
field FBRCB in all FB's eligible to receive buffers; if there is
no match, it frees the buffer. But if a match is found, $BSCA
again determines if the first record in the buffer is a control
record.
If so, it posts the subject FB for PERM and resets its
POST bit to indicate a possible early post (the POST bit is turned
on by subroutine $PERM); then it frees the buffer. But if the buffer contains data records, $BSCA dequeues the buffer from its own
FB and queues it onto the subject FB, in the proce.ss reducing its
own buffer count by one, increasing that of the subject FB by one,
and, if the subject FB's buffer count (FBBCT) becomes equal to or
greater than the subject FB's maximum buffer count· (FBBMX), resetting the appropriate.bit in the master Function Control Sequence
$FCS by using FBFCS.
If $BSCA turned off an FCS bit, it turns on flag BFCSOFF. Whether
or not. $BSCA turned off an FCS bit, it inspects the subject FB's
flags~ if flag BFCSON is on in FBFLG, $BSCA resets that flag and
its own BFCSON flag. Flag BFCSON expedites transmission of a response and flag BFCSOFF delays transmission. The effect of the
above manipulation is to avoid an unnecessary line tur.naround when
a printer or punch is temporarily at its buffer limit.
Having processed the received buffer, or if a two-second timeout
occurred, $BSCA determines what and when it is to transmit.
It
transmits a response immediately under any of the following
conditions:
•
Wait-a-bit was received from HASP
•
A text buffer (see Figure 4.23-1) is ready to send
System/3 Remote Terminal Processor - Page 4.23.25
229
HAS P
•
Flag BFCSON is set and there is a free buffer
•
Text was received from HASP, flag BFCSOFF is not set, and
there is a free buffer
•
Two seconds have passed since end-of-receive.
The response transmitted is one of the following:
•
Text, if a text buffer is ready to send
•
A Function Control Sequence, if there is a free buffer and
the FCS has changed
•
DLE-ACKO, if there is a free buffer and the FCS has not
changed from when it was last transmitted
•
Wait-a-bit (including FCS) if there are no free buffers.
Ptr to next buffer
Ptr to 3d-to-last byte (ETB-2 )
First RCB
!
$BSCA overlays these
5 bytes with DLE (SOH),
STX, BCB, FCSl, FCS2.
. ..
First SRCB
text
EOB (X'OO')
ETB (X'26')
&MLBFSIZ
Figure 4.23-1
ETB is not necessarily
the last byte.
Multi-Leaving Buffer
To get a free buffer $BSCA uses subroutine BSGBUF, which queues the
buffer on $BSCA's buffer chain (FBBUF) in iast-in, first-out fas~ion
and increments its buffer count (FBBCT) by one. Additionally, a
part of BSGBUF sets up the transmit starting address, receive starting address, and receive ending address, and mai be called separately
from BSGBUF.
System/3 Remote Terminal Processor - page 4.23.26
230
HAS P
$CMDSCAN - Local Command Subroutine
If RMTGEN parameter &S3CMDS is set to 1, code is assembled to provide a local command facility.
Code appears in four places:
•
$CMDSCAN, to process the commands
•
$CVB, used by $CMDSCAN to convert decimal command operands to
binaty
•
$MFCU, to allow $CMDSCAN to check non-blank cards from dormant
hoppers ($CMDSCAN returns condition code equal if a card contained a command; the hopper remains dormant)
•
$1442, with the same functions as $MFCU
$CMDSCAN receives a pointer to a card in index register 1. It examines the card for a valid command and branches to the proper command routine, or returns to its caller with condition code notequal.
Each command routine processes the command's operands as necessary,
and exits to one of three labels:
•
CMDEND (normal end) to print 'CODEOOOO'
•
CMDSYN (syntax error) to print 'CODEOOOl'
•
CMDOPD (operand error) to print 'CODE0002'.
A command routine may use the $CVB subroutine to convert an operand
from decimal to binary.
Index register 1 must point to the deci~
mal operand's high-order byte. If this byte is not numeric, $CVB
will branch to CMDSYN; otherwise, on return from $CVB, the binary
result will be right~justified in bytes $CVBANS and $CVBANS-l, and
index register 1 will point one byte past the low-order digit of
the decimal operand.
System/3 Remote Terminal Processor - Page 4.23.26.1
230.1
HAS P
(The remainder oT this page intentionally left blank.)
230.2
HAS P
$LEOF, $PERM, $REQ - Control Sequence Subroutines
These subroutines transmit to HASP certain control sequences
required for proper Dperation of HASP MULTI-LEAVING Remote Job
Entry:
logical end-of-file, permission-granted, and requestpermission.
.
$LEOF sends the sequence RCB, SRCB, SCB where RCB is taken from
the FB pointed to by register 2 (FBRCB), SRCB is X'80', and SCB
is X'OO' (a string control byte of X'OO' is an end-of-logicalrecord SCBi occurring immediately after an SRCB, such an SCB
indicates a zero-length record).
$PERM sends the sequence RCB, SRCB, EOB where RCB is X'AO' (permission-granted for function described in SRCB) , SRCB is taken
from FBRCB of the FB pointed to by register 2, and EOB is X'OO'
(a zero RCB indicating logical~end-of-transmission-block).
$PERM also sets the bit EWFPOST in the field FBEWFi this "earlypost" bit is reset by $BSCA when it finds any permission-type
control record whose SRCB matches FBRCB.
$REQ sends the sequence RCB, SRCB, EOB where RCB is X'90' (requestpermission for function described in SRCB) and SRCB and EOB are as
described for $PERM.
Code common to all three routines requests from $CKLEN three bytes
of space in a MULTI-LEAVING buffer, moves the three-byte sequence,
and calls $BFLUSH to truncate the buffer and queue it on $BSCA's
buffer chain.
System/3 Remote Terminal Processor - Page 4.23.27
231
HA S P
$DCOM - Decompression Subroutine
$DCOM is called by one of the output processors (such as$PRINTER)
to decompress a logical record from a MULTI-LEAVING buffer into
an area whose starting address is supplied by the caller.
(HASP
transmits all data records to MULTI-LEAVING terminals in a compressed and truncated format).
If decompression is successful,
$DCOM returns to the caller at an offset of three bytes; if $DCOM
recognized a logical-end-of-file, it returns at an offset of zero.
To decompress a logical record, $DCOM first examines the address
in FBCURL, a two-byte field in the caller's FB reserved for the
use of $DCOM.
If that field is non-zero, it has previously been
set by $DCOM to point to the RCB following the last-decompressed
logical record in the current buffer.
If that RCB is not X'QQ',
$DCOM decompresses to the caller's area (which must be two bytes
longer than the maximum record length) the record following the
RCB, moves the SRCB to FBSRCB, saves the address of the next RCB
in FBCURL, and returns to the caller as explained above.
But if FBCURL is zero, $DCOM checks if more buffers are queued on
the caller's FB.
(If FBCURL is non-zero but the RCB to which it
points is zero, $DCOM first frees the current buffer and then proceeds as if FBCURL were zero.)
It one or more buffers are queued, $DCOM selects the first buffer,
points to its first RCB, and decompresses a logical record as
above.
But if no buffers are queued, $DCOM waits for WORK, to be
posted by $BSCA when the next buffer for the same output device .
is received.
The output buffer's address is specified by the caller in field
FBAREA; on return, $DCOM replaces this field by the address of
the last-pIus-one output byte.
System/3 Remote Terminal Processor - Page 4.23.28
232
HAS P
$CMPR - Compression Subroutine
$CMPR compresses data from a user-specified input area to a local
workarea and transmits it to HASP by calling subroutine $CKLEN.
If
When called, $CMPR examines the status of its local workarea.
the workarea is busy, $CMPR has been called by some other processor and has in turn called $CKLEN~ $CKLEN is non-process exiting
until it can find sufficient bytes in a MULTI-LEAVING buffer to
allocate to $CMPR.
In this case, $CMPR non-process exits until
its workarea becomes free.
When the workarea is free, $CMPR compresses into it the text pointed
to by FBAREA. Compression consists of either full compression
and truncation, only truncation, or neither compression nor truncation, as selected by the setting of the RMTGEN variable &COMP=.
Once the record is compressed, $CMPR calculates its compressed
length and calls $CKLEN with a request for the number of bytes it
requires in a MULTI-LEAVING buffer. When $CKLEN returns, $CMPR
moves the compressed record, shows its workarea free, and returns
to the caller.
System/3 Remote Terminal Processor - Page 4.23.29
233
T
HAS P
$CKLEN - MULTI-LEAVING Buffer Allocation Subroutine
$CKLEN returns to its caller the address in a MULTI-LEAVING buffer
of the rightmost byte of an area whose length is specified by the
caller.
The caller specifies a length in register one.
If $CKLEN has a
current buffer, its current buffer pointer points to the lastallocated byte.
It adds to this the caller's specified length.
If the resultant address is lower than two bytes before the end of
the buffer, $CKLEN saves this address as its current buffer pointer
and returns this address to the caller in register one.
But if the
resultant buffer address is not lower than two bytes before the end
of the current buffer, $CKLEN truncates the buffer, queues it on
$BSCA's buffer chain, and posts $BSCA by turning on flag BFPOST
in byte BCFl. To truncate a buffer, $CKLEN moves the current buffer pointer to its first two bytes and the sequence EOB, ETB
(X'0026') to the two bytes after the byte pointed to by the current
buffer pointer.
After having truncated and queued the current buffer or if on entry
there was no current buffer, but not if entered via entry point
$BFLUSH (in which case $CKLEN returns immediately after truncation
and queuing), $CKLEN attempts to get another buffer to satisfy the
caller's request; if no buffer is free, it non-process exits until
one comes free.
It initializes the current buffer pointer to poin~
to what will eventually be the buffer's FCS2 byte.
It initializes
a pointer to the last byte available in the buffer, and it saves
the address of the buffer's chain word in a third pointer.
Then
it allocates space for ~he caller and returns, as above.
System/3 Remote Terminal Processor - Page 4.23.30
234
HAS P
$FREEBUF - MULTI-LEAVING Buffer Free Subroutine
$FREEBUF dequeues the first buffer from the buffer chain word FBBUF
of the FB addressed by register two upon entry; subtracts one from
FBBCT, the count of buffers enqueued upon that FBi and compares the
new count with FBBMX.
If the compare is low, $FREEBUF OR's the twobyte field FBFCS into the two-byte field $FCS, posts the $BSCA
processor, and sets flag BFCSON in both the subject FB's flags and
the BSCA flag byte.
(See the $BSCA processor description for a
discussion of BFCSON.)
In any case, $FREEBUF queues the just-dequeued buffer on chain word
$MLPOOL in last-in, first-out sequence. If the system was generated
for a 5471 console, $FREEBUF posts $CON, the console processor. Then
$FREEBUF returns to its caller.
System/3 Remote Terminal Processor - Page 4.23.31
235
HAS P
ABEND - Core Dump Subroutine
ABENDprGduces a core dump on the 5203 printer. The code for
ABEND is assembled only if the RMTGEN specification &DEBUG=1
has been used.
&DEBUG=1 also causes the generation of extra
debugging code throughout the terminal program; some of the
extra sequences of code generated contain conditional branches
to ABEND. ABEND may also be called from the CE panel of the
System/3 by setting the IAR to its address.
Each line produced by ABEND consists of a four-character address,
64 characters representing the 32 bytes starting at that address,
and their printable equivalent in 32 more characters, bounded at
the left and the right by a single asterisk; or four asterisks
in the address position followed by blanks, to indicate that all
of core up to the next line's address or the end of core would
have printed the same as the previous line. The ABEND dump routine requires a printer with at least 120 print positions; if a
96-print-position printer is used, not all of the EBCDIC portion
of the line will be printed.
The first six bytes of printed core contain the address recall
register, register one, and register two as of the time ABEND
gained control; the remainder of core is intact.
System/3 Remote Terminal Processor - Page 4.23.32
236
HAS P
$LOG - HASP Error Recording Subroutine
$LOG is a re-entrant subroutine which maintains in-core error
recording counters. Each counter is two bytes long and has a
maximum count of 65535. There are eight counters for each of the
following bytes:
1442
1442
BSCA
5203
5203
5424
Status
Status
Status
Status
Status
Status
Byte
Byte
Byte
Byte
Byte
Byte
2
1
2
2
1
1
(if &S31442=1)
(if &S31442=1)
The counters are captioned, printed, and reset by IHEREP at
program load time and thus form a permanent record of unit checks
associated with the above devices. Only those counters which
represent unusual unit checks are printed by IHEREP.
System/3 Remote Terminal Processor - Page 4.23.3:
237
HAS P
$MSG - Error Message Tracing Subroutine
$MSGadds the four-byte coded entry addressed by register one to
the circular trace table of error messages. This table is examined
by the 5471 console processor and under certain conditions by the
5203 output console processor; $MSG posts whichever of these processors has been generated.
The various error messages supplied to this routine by its callers
are explained in the System/3 Operator's Guide.
System/3 Remote Terminal Processor - Page 4.23.34
HAS P
$INIT -Initialization Routine
$INIT gains control when program loading is complete.
It sets
the print chain image, reads and processes REP cards, sets the
5203 forms length register, sets the 5424 print buffer register,
establishes communication, sets up buffers, and exits to the
commutator.
To set up the print chain image, $INIT reads the printer status
bytes.
If the 48-character-set bit is on, it moves the LC
image to the image area; otherwise it moves the PN image.
Then
$INIT starts processing reps.
The format of a REP card is
column
2
REP
9
17
addr rep-data
where "addr" must be a valid hexadecimal core address of exactly
four characters (or four blanks) and "rep-data" is a sequence of
one or more replacement groups with the last group terminated by
a blank and all others terminated by commas. A replacement group
is a string of 2n (n any integer) hexadecimal characters.
The
blank after the last replacement group may be followed by comments.
Starting at the address specified by "addr", the REP routine will
store bytes one at a time corresponding to byte pairs of the "repdata" taken from left to right.
If the "addr" specification is
blank, bytes will be stored starting at the first byte after the
byte last used by the preceding REP card (or at zero if there was
no preceding REP card). A REP card whose "rep-data" field contains no data is valid; its "addr" field (if any) specifies the
address of the first byte to be repped if the next REP card's
"addr" field is blank.
To process reps, $INIT reads a card from the primary hopper of the
MFCU; a read error will give an F3 halt.
If the card image contains "REP" in columns 2-4, it is processed according to the above
specifications, with absolutely no validity-checking, and $INIT
reads another card, as above.
If the card image contains "&MLBFSIZ=" starting in column 1, $INIT
converts to binary the specified decimal buffer size (which must
immediately follow the equal sign and be terminated by a blank)
and substitutes the result for the default buffer size.
Then $INIT
reads the next card, as above.
If the card image contains "/*SIGNON" starting in column 1, $INIT
overlays the default sign-on card with it and continues as if the
card were an EOR card.
System/3 Remote Terminal Processor - Page 4.23.3:
239
HAS P
If the card image contains "EOR" (end-of-reps) in columns 2-4,
$INIT terminates rep processing, loads the 5203 print forms length
register and the 5424 print buffer address register, and establishes
communications.
To establish communications, $INIT first disables and then enables
the BSCA. Next, it examines the sign-on card to see if dialing
information was specified.
If so, it determines the starting and
ending addresses for the telephone number (which is not checked
for validity) and loads these values into the current and stop
address registers after first ensuring that the data line is unoccupied.
(If the data line is occupied, $INIT assumes the operator
dialed and waits for the data set to become ready.) After starting
an auto-call operation and looping until an op-end interrupt occurs,
$INIT checks for timeout status; if so, the auto-call unit returned
an abandon-call-and-retry signal and a CA halt (call-aborted) occurs.
When the operator resets the halt, the entire logic starting with
disable-BSCA will be re-executed.
But if the timeout bit is off,
$INIT assumes the call was successful and loops until a datasetready indication occurs, as above.
When the data set becomes ready, $INIT transmits the two-byte
sequence SOH-ENQ, a sequence recognized by HASP as a request from
a MULTI-LEAVING terminal. 'If the receive part of this transmit/
receive command ends with timeout, the operation is repeated; if
it ends with any other abnormal status, one of two things occurs.
If the system was generated with &DEBUG=1 and the address knobs
on the System/3 console are set to any odd address, the System/3
halts; the halt indicators display a hexadecimal image of the
BSCA error status byte. Otherwise, and when the operator resets
the hal t, the entire logic, starting wi th disable-BSCA will be
re-executed.
If the receive operation ended normally, the two received bytes
should be DLE-ACKO.
If they are not, the transmit/receive operation is performed.
If DLE-ACKO was received correctly, the message "COMMUNICATION
ESTABLISHED" is printed on the 5203.
If a 5471 was specified when
the system was generated, its interrupts are enabled and the same
message is printed on it.
If a 5475 was specified, its interrupts
are enabled.
$INIT now performs buffer initialization.
Buffer initialization consists of three steps and overlays the
initialization code with MULTI-LEAVING buffers. As the first
step, the value of MULTI-LEAVING buffer size is set in the various
locations throughout the program that requires it; it may have
been changed by the &MLBFSIZ control card.
Step two moves the
actual buffer initialization code to low core, where it is executed
System/3 Remote Terminal Processor - Page 4.23.36
?LI.f"I
HAS P
as step three. Execution consists of chaining together all
buffers but the first buffer (which contains the sign-on record
and is afterward queued to the $BSCA proc.!3,ssor) with the chain
origin at $MLPOOL.
.
When buffer chaining is complete, the sign-on buffer is queued
as mentioned and control passes to the commutator. $COM gives
control in its turn to the $BSCA processor, which as a special,
first-time function transmits to HASP the buffer containing the
sign-on card image.
System/3 Remote Terminal Processor - Page 4.23.37
241
{The remainder of this page
intentionally~ieft
242
blank.}
HAS P
5.0
HASP CONTROL SERVICE PROGRAMS
This section contains detailed internal information about each of
the HASP Control Service Programs and is intended primarily for
use by systems programmers.
HASP Control Service Programs -- Page 5.0-1
243
HAS P
5.1
HASP DISPATCHER
5.1.1
HASP Dispatcher - General Information
The HASP Dispatcher is responsible for the allocation of the CPU
time used by the HASP Task to each of the HASP Processors.
5.1.2
HASP Dispatcher - Program Logic
The HASP Dispatcher receives control each time the HASP task is
dispatched by the Operating System and utilizes an ordered queue
of Processor Control Elements (PCE's) to distribute the CPU time
among the HASP Processors. The Event Wait Field (EWF) in each
PCE (see Figure 8.2.1) is a two byte field which is used to control
the dispatchability of the Processors. Any Processor or Control
Service Routine may issue a $WAIT macro-instruction at any time
which turns on a particular bit in the EWF corresponding to the
event $WAITed on and returns control to the HASP Dispatcher to
allow other processors to be dispatched. The Processor (or
Service Routine) will not be given control again until some other
system function issues a $POST to its EWF for the event $WAITed on.
The events reflected by the EWF fall into two categories:
the
-first of which is the synchronization of the use of common system
resources such as buffers, direct-access space, etc. With the
exception of the general $POST bit $EWFPOST, the bits in the first
byte of the EWF field are used to indicate the particular resource
being $WAITed on and corresponds exactly to the Event Completion
Field (ECF) in the Dispatcher. The ECF is $POSTed whenever a
resource becomes available and is propagated through all processor
EWF's by the Dispatcher. Thus, if a track becomes available on a
direct-access device, every processor (PCE) which has issued a
$WAIT for a track will be put in contention for CPU time to try
to obtain the track or tracks that have been released.
The second byte of the EWF is used to synchronize a processor with
respect to a specific event, applicable only to that processor,
such as a particular I/O completion. This section of the EWF must
be $POSTed directly by the system routine performing the required
function (additional details regarding $WAIT/$POST events may be
found in Section 9.8).
When scanning the PCE chain, the HASP Dispatcher, upon discovering
a zero EWF (no events being $WAITed on) , will enter the code
controlled by the PCE immediately below the prior $WAIT which had
returned control to the Dispatcher. All registers of a processor
which issues a $WAIT are preserved in the peE and are reloaded
prior to entering the processor (register "R15" is destroyed by
the $WAIT macro to provide the address of the $WAIT, i.e., the
resume point). A processor may return control to the Dispatcher
HASP Dispatcher - Page 5.1-1
?..1L1.
HAS P
only by means of the $WAIT macro.
In the event any $POST macro
was executed by the processor dispatched or by any of the HASP
asynchronous service routines the Dispatcher's ECF field will be
altered to reflect the $POST. The general $POST bit represents
a $POST of a specific processor (second byte of the EWF).
If the
ECF field indicates no $POST has occurred, the HASP Dispatcher
continues to scan down the PCE chain starting with the next PCE.
However, if the ECF field indicates $POSTs have occurred, the
$POST for the general $POST is removed and scanning is resumed
at the beginning of the PCE chain, after promulgating any remaining
ECF $POST indicators.
Upon reaching the end of the PCE chain, the Dispatcher examines the processor active count to determine if any
jobs are being processed.
If an active job is in the system
(active count ~ 0) an OS WAIT state is entered to wait for some
external event (I/O interrupt, etc.) to activate HASP again.
This
WAIT allows use of the CPU by other tasks in the system.
If no
jobs are active, the message
"ALL AVAILABLE FUNCTIONS COMPLETE"
is sent to all operator consoles and HASP is placed into the WAIT
state.
When scanning the PCE chain, the Dispatcher detects the special
case of a PCE which is not dispatchable (PCEEWF is not zero) but
is $WAITing only on the OROL bit. This situation is created when,
while the PCE was $WAITing on other event(s), the Overlay Area
being used by the PCE is preempted by the Overlay Roll Processor
for other use (see Section 4.20). Subsequently, the other event(s)
being $WAITed on are $POSTed allowing the Dispatcher to detect the
"OROL only". The Processor' in such a condition is not entered but
is made to call Overlay Service. The actions performed are identical to those described for $LINK Service in Section 5.16.2,
beginning with the fourth paragraph describing search of Overlay
Areas.
The Processor will be entered by Overlay Service if the
requested routine is in memory, or will be $WAITed on OLAY
allowing the Dispatcher to continue its peE scan.
HASP Dispatcher - Page 5.1-2
245
HAS P
5.2
INPUT/OUTPUT SUPERVISOR
5.2.1
Input/Output Supervisor - General Description
The HASP Input/Output Supervisor ($EXCP) is used to interface all
HASP Input/Output requests with the Operating System Input/Output
Supervisor. Through the use of$EXCP the HASP processors can
remain "device independent" through the wide range and number of
HASP direct-access devices. In addition, $EXCP also provides all
required I/O appendages for OS 105 and for the $POSTing of I/O
completions to each processor.
5.2.2
Input/Output Supervisor - Program Logic
The only interface between the HASP Input/Output Supervisor and
the using processors is the Device Control Table element (DCT) ,
which is passed via the $EXCP macro-instruction when I/O is
requested.
(Additional information concerning the DCT and the
$EXCP macro may be found in Sections 8.5 and 9.5 respectively.)
Upon entry to $EXCP the address of the buffer to be used is
obtained from the DCT and the lOB (appended to every buffer) is
initialized. The user's Event Wait Field (EWF) address is moved
from the DCT to the buffer and a pointer to the DCT is placed in
the buffer. If the OCT is a direct-access type, the coded track
address from the DCT is used to compute MBBCCHHR.
The lOB is now scheduled fo~ I/O through the use of the standard
OS Execute Channel Program macro-instruction (EXCP) and immediate
return is made to the caller. Each I/O request issued by HASP
has an I/O appendage list specified which causes the appropriate
channel end appendage in $EXCP to be entered upon termination of
the I/O. Since these appendages are entered asynchronously with
HASP operation, the buffer associated with the completed I/O is
scheduled for synchronous HASP processing by .the Asynchronous
Input/Output Processor. The HASP task is POSTed, and immediat.e
return is made to lOS.
(The action taken by the Asynchron0tls
Input/Output Processor is explained in Section 4.8.)
A separate channel end appendage is provided for remote terminal
operations. This appendage correlates the channel end conditions
with the commands executed and provides special processing of conditions unique to the teleprocessing.
.
Input/Output Supervisor - Page 5.2-1
?A.h
HAS P
If HASPGEN parameter &RPS was set to YES, addi tio'nal code is ineluded to support rotational position sensing.
RPS support causes each HASP EXCP to be analyzed at Start-I/O time.
If the EXCP was to a direct-access device with the RPS feature, a
SIO appendage will insert into the channel program a set-sector
command. The sector number supplied with this command will be extracte~ from a table on the basis of record number, extent number,
and the channel program's data length (in IOBCCW3) •
Assembled into the SIO appendage are CCW sets, one for each extent
of the HASP direct-access DEB.
(The last extent is always for the
overlay library.)
Each CCW set consists of a set-sector and a
·transfer-in-channel. The set-sector data address points to the
unused byte (byte 5) of the set-sector CCW; this byte is filled in
at SIO-appendage time. The transfer-in-channel data address is
filled in at SIO-appendage time, as follows:
starting at the address specified by the channel address word (CAW), CCWs are inspected until a TIC is found. These CCWs constitute the directaccess start-data-transferchannel program, and the TIC is to the
HASP channel program. The SIO appendage makes the start-datatransfer TIC point to the appropriate set-sector command and the
set-sector TIC point to the HASP channel program.
The last four bytes of the set-sector TIC, unused by the channel,
contain a pointer to set-sector values for the corresponding ~xtent,
indexable by record number. These sector number tables are built
by HASPINIT at the end of direct-access initialization, using the
resident sector convert routine, IECOSCR1, in ~henucleus, An extent's table is built only if that extent's UCB specifies the RPS
feature. Tables for the first &NUMDA extents are built on the basis
of a record length of &BUFSIZEj the last extent's table is based on
a record length of &OLAYSIZ.
RPS support for SYS1.SYSJOBQE in HASPWTR is described in Section
4.21.
Input/Output Supervisor - Page 5.2-1.1
2·46.1
HAS P
(The remainder of this page intentionally left blank.)
246.2
HAS P
5.3
JOB QUEUE MANAGER
5.3.1
Job Queue Manager - General Information
Jobs being processed or awaiting processing by a HASP phase are
represented in an ordered queue by a Job Queue Element (see
Figure 8.6.1).
The Job Queue Management routines are used by the HASP Processors
to insert, alter, locate, and remove Job Queue Elements.
The
Queue Elements are maintained in priority at all times with the
highest priority element at the top of the active chain.
There
are six Job Queue Element routines which are called by issuing
the following macros:
$QADD, $QREM, $QGET, $QPUT, $QLOC, and
$QSIZ
(see Section 9.3).
The Job Queue Elements are arranged
in two chains.
The active chain contains the Job Queue Elements
for all the jobs in the system at a given time.
The free chain
contains all the Queue Elements which are not in use.
5.3.2
$QADD Routine - Program Logic
The $QADD routine is called whenever a Queue Element is to be added
to the active queue.
If the Checkpoint Processor is waiting for
the checkpointed information to be written onto the SPOOLl disk,
this routine enters a HASP $WAIT state. Whenever the Checkpoint
Processor's I/O is complete, the free queue chain is tested to see
if any free Queue Elements are available.
If none are available,
control is returned to the caller with a condition code of zero.
If a Queue Element is available, the correct slot within the active
queue chain is located by comparing the priority of the element to
be added with the priorities of the elements in the active chain.
When the priority of the new element is higher than the priority
of the element in the active chain, the free Job Queue Element is
extracted from the free queue chain and inserted into the active
chain.
All the information for the new Job Queue Element is moved
from the location pointed to by register "Rl" into the new Job
Queue Element.
Then the HASP Dispatcher's Event Control Field is
$POSTed to indicate that a Job Queue Element is available.
The
Checkpoint Processor's PCE is also $POSTed so that i t will be given
control to write the updated Job Queue onto the SPOOLl disk.
The
.condition code is set non-zero and control is returned to the
caller.
Upon return, register '''RO u contains the address of the
associated Job Information Table Entry.
Job Queue Manager - Page 5.3-1
247
HAS P
5.3.3
$QREM Routine - Program Logic
The $QREM routine is entered to remove a Job Queue Element from
the active chain.
It will enter the calling Processor into a
HASP $WAIT state if the Checkpoint Processor's I/O is not complete.
When the Checkpoint Processor's I/O is complete, the Job Queue
Element that is to be removed is located by comparing its job
number with the job numbers of the queue elements in the active
chain.
If an equal comparison is not found, control is returned
to the caller with the condition code set to zero.
If a match
is found, the Job Queue Element is removed from the active chain
and added to the top of the free chain by updating all the chain
pointers. The Checkpoint Processor's PCE is $POSTed so that it
will be given control to checkpoint the Job Queue. Then control
is returned to the caller with the condition code set non-zero to
indicate that the Queue Element was successfully removed.
5.3.4
$QGET Routine - Program Logic
The $QGET routine is entered to acquire a Job Queue Element in a
specified queue so that the job may be processed.
The active queue
chain is searched for a Job Queue Entry of the specified type (e.g.,
execution, print, punch, or purge) which is not in hold status and
not presently acquired.
If such a job
is not present, control is
-returned to the caller with the condition code set to zero.
If
an acceptable queue element is found, the QENTBY bit is turned on
in the queue element to show that the element has been acquired,
and control is returned to_the caller with the condition code set
non-zero, register "RI" pointing to the job queue element that was
acquired, and register "RO" pointing to the associated Job Information Table Entry. Whenever the system is in a drained status,
this routine will be crippled such that control will 'always be
returned to the caller with the condition code set to zero to
indicate that no available Job Queue Elements are present.
5.3.5
$QPUT Routine - Program Logic
The $QPUT routine is entered to return a previously acquired Job
Queue Element to the active chain, but with a new queue type.
It
will enter the calling Processor into a HASP $WAIT state if the
Checkpoint Processor's I/O is not complete. When the Checkpoint
Processor's I/O is complete, the job number of the queue element
to be returned is compared with the job numbers of the queue elements in the active queue.
If the job number is not found, control
is returned to the caller with the condition code set to zero.
If
a match is found, the new queue type is set, the HASP Dispatcher's
Job Queue Manager - Page 5.3-2
: 248
HAS P
Event Control Field is posted to indicate that a Job Queue
Element is available to be acquired, and the Checkpoint Processor's PCE is $POSTed so that it will be given control to write
the updated Job Queue onto the SPOOLI disk. If the QUEPURGE bit
is on in the queue element (indicating that the job has been
deleted), the job queue element is placed in the punch queue by
moving the punch queue type into the queue element's QUETYPE
field. If the QUEPURGE bit is not on, the job queue element is
placed in the queue indicated by register "RO" upon entry to
this routine. The QENTBY bit is turned off to indicate that this
queue entry has been returned, the condition code is set non-zero,
and control is returned to the caller. Upon return, register "RI"
contains the address of the Job Queue Entry just returned and
register "RO" contains the address of the associated Job Information Table Entry.
5.3.6
$QLOC Routine - Program Logic
The $QLOC routine is entered to obtain the Job Queue Element address
when the job number is known. The job number is compared with the
job numbers in the active chain. If a match is not found, control
is returned to the caller with the condition code set to zero. If
a match is found, the condition code is set non-zero, and control
is returned to the caller with register "RI" containing the 10catedJob Queue Element's address and register "RO" containing the
"associated Job Information Table Entry address.
5.3.7
$QSIZ Routine - Program Logic
The $QSIZ routine is entered to obtain the number of Job Queue
Elements in·a given queue type, route, class, .and forms. The number of jobs of the specified type (excluding jobs in hold status)
are counted, and control is returned to the caller with register
"RI" containing this count. If register "RI" is non-zero, the condition"code is set non-zero, and if it is zero, the condition code
is set to zero. Whenever the system is in a drained status, this
routine is crippled so that control is always returned to the
caller with register "RI" zeroed, and the condition code set to
zero to indicate that no jobs are available in the specified job
queue.
Job Queue Manager- Page 5.3-3
249
HAS P
5.4
BUFFER MANAGER
Buffer Manager - General Description
The Buffer Management routines are responsible for the allocation
of the dynamic memory area (Buffer Pool) of HASP. Fixed-size buffers in this area are allocated and de-allocated to HASP Processors
and Routines via the $GETBUF and $FREEBUF macro-instructions (see
Section 9.1).
5.4.2
Buffer Manager - Program Logic
The $GETBUF routine consists of two programs which allocate HASP
Buffers or RJE Buffers respectively. Both programs function identically as follows: The appropriate free buffer pointer is tested,
and if no buffers are available, control is returned to the caller
with the condition code set to zero.
If a free buffer is present,
the free buffer pointer is updated to point to the next free buffer;
or, if this is the last available buffer, the pointer is zeroed.
Then, if the debug indicator is on, a buffer validity checking routine is entered to assure that the buffer is within the buffer chain.
If it is not in the chain, the catastrophic error routine is entered;
otherwise, control is returned to the $GETBUF routine. The condition
code is set non-zero and control is returned to the caller with th~
buffer address in register "Rl".
The $FREEBUF routine enters the buffer validity checking routine if
the debug indicator is on, the buffer to be freed is inserted back
into the appropriate free buffer chain (depending upon whether the
buffer is a HASP Buffer or anRJE buffer), and the IOBSTART field is
updated with the address of the buffer's channel program: IOBCCWI
(see Figure 8.3). The HASP Dispatcher's Event Control Field is
$POSTed to show that a buffer is available and control is returned
to the caller.
Buffer Manager - Page 5.4-1
250
HAS P
5.5
,5".5.1
UNIT ALLOCATOR
, Unit Allocator - General Description
The Unit Allocation routines are responsible for the allocation
and de-allocation of the Input/Output units which have been
assigned t6 HASP. Device Control Tables (OCTs) are allocated and
de-allocated to HASP Processors and Routines via the $GETUNIT and
$FREUNIT macro-instructions (see Section 9.2).
5.5.2
Unit Allocator - Prog;ram Locaic
The $GETUNIT routine scans the Device Control Table (OCT) chain
in an attempt to find an available DCT of the requested type. If
none are found, control is returned to the caller with the condition
code set to zero. If an available OCT of the requested type is
found, it is set "not available" and control is returned to the
caller with the condition code set non-zero. The address of the
OCT is returned in register "R1".
The $FREUNIT routine first examines the "Active Buffer Count" field
of the OCT (see Figure 8.5) to see if there are any buffers involved
in active I/O with the associated unit. If the "Active Buffer
Count".isnon-zero, the Processor is placed in a HASP $WAIT state
until this count is reduced to zero. When the count is zero, the
OCT is made available and cont.rol is returned to the caller.
Unit Allocator - Paqe 5.5-1
251
HAS P
5.6
INTERVAL TIMER SUPERVISOR
5.6.1
Interval Timer Supervisor - General Description
The Interval Timer Supervisor is used by the various HASP Processors to record the passage of a specified period of time and to
notify the requesting Processor upon expiration of the interval.
This routine uses the standard OS/360 timer features (STIMER &
TTIMER) but has the additional capability to simultaneously monitor
an unlimited number of intervals.
.
5.6.2
Interval Timer Supervisor -Program Logic
All uses of the Interval Timer Supervisor are through the HASP
macro-instructions $STIMER and $TTIMER which are described in Section 9.6. Each user of $STIMER is required to provide a 12-byte
(three-word) HASP Timer Queue Element (TQE) , passed via parameter
register "RI" (see Section 8.10). $STIMER maintains a chain of all
active TQEs in ascending order of interval magnitudes, with the
shortest requested interval (first TQE) set on the as STIMER queue
(via a normal STIMER macro). Upon being entered with a new interval
request, $STIMER first cancels the active as timer element with a
TTIMER CANCEL, and reduces the interval specified in all chained
TQEs by the elapsed portion of this interval. The requestor's TQE
is then, after converting the requested interval to as timer units
(26 usec units), inserted into the appropriate place on the TQE
chain using the first word ot the TQE as a chain field. The as
timer is now re-activated with the interval in the first TQE in the
chain and return is made to the caller.
When the current as interval elapses, the asynchronous exit routine
in $STIMER is entered to record the expiration. The asynchronous
routine first reduces the intervals of all queued TQEs by the size
of the just-elapsed interval, then $POSTs the TIMER Processor, POSTs
the HASP task, and returns to as. The TIMER Processor, when dispatched, will $POST the appropriate Processors and reset the as
Timer to the interval specified in the first TQE in the chain by
issuing an STIMER macro.
HASP Processors which have previously set an interval through
$STIMER may obtain the time remaining in the interval and optionally
cancel this interval through the use of the $TTIMER macro. When
entered, $TTIMER cancels the active OS interval and reduces all
queued TQE intervals by the elapsed portion of that interval. The
requestor's TQE is then located in the queue by comparing the address of the TQE passed by the macro in register "Rl" to each TQE
in the chain. When the correct TQE is found, the remaining time
Interval Timer Supervisor - Page 5.6-1
HAS P
in the interval is loaded in register "RO" for return to the
caller. The use of the CANCEL option on the $TTIMER macro,
which is indicated by register "RI" containing the complement of
the TQE address rather than the true address, causes the TQE
to be dequeued from the chain. The OS timer is re-activated
with the interval from the first TQE on queue and return is made
to the caller. NOTE: A $TTIMER for a TQE which is not active
has no effect and a zero value is returned in register "RO" as
the time remaining.
InterVat Timer Supervisor - Page 5.6-2
253
HASP
5.7 $WTO PROCESSING ROUTINE
5.7.1 $WTO Processing Routine -
General Description
This routine service s the $WTO macro-instruction (see Section 9. 5)
by queuing the associated message for the Operator Console Input/Output
Processor.
5. 7. 2 $WTO Proce s sing Routine -
Program Logic
This routine tests for a free message buffer.
If none are available,
it cause s the reque sting proce s sor to be placed in a $W AIT condition until
a message buffer is released.
Otherwise it links. to the Console Buffering
Routine to proce s s the me s sage.
$WTO Processing Routine -
254
Page 5. 7~1
HAS P
5.8
DIRECT ACCESS STORAGE ALLOCATOR
5.8.1
Direct Access Storage Allocator - General In£ormation
This routine allocates tracks for the SPOOL volumes that were
on-line at IPL time. The track information is stored in the Job
Control Table (JCT) and is also returned to the caller in register
"RI". The track allocation algorithm is designed to reduce seek
time as much as possible.
5.8.2
Direct Access Storage Allocator - Program Logic
The status of each SPOOL volume is recorded and maintained in
track group bit maps. A map is present for each module (available
SPOOL volume). Each bit in the track group bit map represents ~
track group.
If the bit is on, the track group is available to be
allocated, and if the bit is off, the track group has already been
allocated. Track group bit maps are also maintained in each JCT,
but the bit definitions are opposite. Thus, if a bit is on in
the JCT, the track group has been allocated to the JCT.
Track groups on the SPOOL volumes are allocated whenever the JCT
.has not previously acquired any tracks or whenever all the tracks
in the current track group which is allocated to the JCT have been
acquired.
If the JeT has already been allocated a track group,
but all the available tracks in that track group have not been
acquired, the next available sequential track in the track group
is allocated to the requestor. When this happens, the track
information in the JCT is updated and loaded into register "Rl" ,
and control is returned to the caller with the condition code set
to one. This track information is recorded in the JCT in the
following format: MTTR, where M is the module number (one byte) ,
TT is the track number relative to cylinder 0 track 0 (two bytes) ,
and R is the record number (one byte). The JeT track group bit
map is also updated whenever a new track group is acquired. The
update consists of ORing in the appropriate bit for the acquired
track group in the JeT track group bit map.
When a new track group has to be acquired, seek time is reduced
by searching for the nearest track group + or - eight track
groups from the last-used track group. The last-used track group
for each track group bit map is updated each time a $EXCP is
issued to the volume.
Each track group bit map is searched for
an available track group at the last-used track group. Then each
track group bit map is searched for an available track group one track group from the last-used track group, then + one from
the last-used track group and this progression continues until an
Direct-Access Storage Allocator - Page 5.8-1
255
HAS P
available track group is found or the + eight track group is
searched.
If an available track group is found, the JCT track
information is updated and loaded into register "RI", and control
is returned to the caller with the condition code set to one.
The JeT track group bit map is also updated.
If a track group is
not available within + or - eight of the last-used track group,
another search routine is entered which inspects each byte of the
track group maps, starting with the first byte. This search will
continue until an available track group is found or until all of
the active track group bit maps have been searched.
If an available
track group is found, the JCT track information is updated and
loaded into register "RI", and control is returned to the caller
with the condition code set to one.
The JCT track group bit map
is also updated.
If an available track group is not found, the
operator is notified of the out-of-track condition by the following message:
SPOOL VOLUMES ARE FULL
Then control is returned to the caller with the condition code set
to zero and register "RI" zeroed.
5.8.3
Direct Access storage Purge Routine - Program Logic
This routine frees all of the SPOOL volume tracks that the job has
acquired and informs the system that these tracks are available
to be re-acquired.
The track group bit m~p in the job's Job Control Table is ORed
into the main track group bit map to return the job's tracks back
to the system. Then the track group bit map in the JCT is zeroed
to indicate that this job does not have any tracks allocated to
it.
The HASP dispatcher's Event Control Field is posted to show
that tracks are available to be acquired, and control is returned
to the caller.
.
Direct-Access Storage Allocator - Page 5.8-2
256
HAS P
5.9
DISASTROUS ERROR HANDLER
5.9.1
Disastrous Error Handler - General Description
This routine is entered from a Processor whenever a critical SPOOL
disk error is detected. The operator is notified of the error, and
processing continues, although the operator should re-IPL the system with a cold start as soon as possible.
5.9.2
Disastrous Error Handler - Program Logic
When this routine is entered, a $WTO is issued to notify the operator
of the error, and control is returned to the calling Processor. The
message to the operator is as follows:
DISASTROUS ERROR - COLD START SYSTEM ASAP
Disastrous Error Handler - Page 5.9-1
257
HAS P
5.10
CATASTROPHIC ERROR HANDLER
5.10.1
Catastrophic Error Handler - General Description
This routine is entered whenever an unrecoverable error is discovered by HASP. The operator is informed of the error and given
an error code, and the system enters a one instruction disabled
loop. The error codes and their meanings are listed in the HASP
Operator's Guide (see Section 11). For more information, refer
to Section 9.10.1.
5.10.2
Catastrophic Error Handler - Program Logic
When this routine is entered, register "RO" cont,ains the address
of a four byte field containing the three character error code
left justified. After the system is disabled, the four byte error
code field is moved into the operator message. This message is
then written on the operator's console defined by the HASPGEN
parameter n$PRICONA":
$ HASP SYSTEM CATASTROPHIC ERROR.
CODE
=
xxx
After this message is typed, all registers are restored so that
they. will be intact, and a one instruction loop is executed.
Catastrophic Error Handler -- Page 5.10-1
258
HASP
5. 11 TRACE EFFECTOR
5. 11. 1 Trace Effector -
General De scription
The Trace Program is a debug facility used in HASP which is .completely
independent of the OS trace facility.
This program will insert the contents
of the general purpose registers into a special trace table (assembled into
the HASP module) each time it is called and thereby aid in the determination of HASP problems.
5. 11. 2 Trace Effector -
Program Logic
The Trace Program is called by any Routine or Processor in HASP
by the insertion of a $TRACE macro-instruction (see Section 9.9.1). If the
HASPGEN parameter "&TRACE" is set nOD-zero, the macro-instruction
will expand into an instruction which will cause a unique specification program interrupt.
All program interrupts are fielded by the HASP Trace
Program and the instruction which caused the interrupt is tested to determine if it is the unique instruction inserted by the $TRACE macro-instruction.
If the interrupt was caused by a true program interrupt, the reque st is sent
to the first level interrupt handler, to be handled in the normal way.
Otherwise a sixteen word trace entry is inserted into the HASP trace table.
T race Effector -
259
Page 5. 11-1
HASP
The sixteen word trace entry has the following format:
First Byte ••..••••••••••..•••• $ TRACE count
First Word ••••••••••••••••••• $ TRACE storage location
Second Word ••••••••••••••••• Register 0
Third Word ••••••••••••••••••• Register 1
Fourth Word ••..••••••••.••••• Register 2
Fifth Word ••••••••••••••••••• Register 3
Sixth Word ••••••••••••••••••• Register 4
Seventh Word ••••.•••••.•••••• Register 5
Eighth Word ••••.••••••••••••• Register 6
Ninth Word •••••••••.•••.•••.. Register 7
Tenth Word ••••••••••••••••••• Register 8
Eleventh Word •••••••.•••••••• Register 9
Twelfth Word ••••••••••••.• ~ •• Register 10
Thirteenth Word •••.••.•••.•••• Register 12
Fourteenth Word ••••••••••••••• Register 13
Fifteenth Word ••••••••••••••.• Register 14
Sixteenth Word •••••••••••••••• Register 15
After the trace table entry has been inserted and the pOinters updated
I
the count of the number of times this particular $TRACE macro-instruction
has been executed is inserted into the first byte of the first word of the
Trace Effector -
260
Page 5. 11- 2
HASP
the trace entry and also into the last half of the $TRACE II instruction. II
All registers are then restored and return is made by loading the Program
Old PSW which restores the condition code to its original value before
the $ TRACE macro- instruction was executed.
The symbolic location "$TRACETB" in HASP identifies a three-word
table with the following format: the first word is the addres s of the
last entry which was made in the trace table; the second word is the
address of the first byte of the trace table; and the third word is the
address of the last byte of the trace table + 1.
Trace Effector - Page 5. 11- 3
261
HAS P
5.12
WTO/WTOR PROCESSING ROUTINE
5.12.1
WTO/WTOR Processing Routine - General Description
The function of this routine is to process alIOS WTO's and WTOR's.
If a console buffer is not available for the message the requesting
task is placed in an OS WAIT state until a buffer becomes available
to process the request. This routine is not included if the HASP
interface to OS Console Support is generated (&NUMCONS=O, see
Appendix 12.15).
5.12.2
WTO/WTOR Pr.ocessing Routine - Program Logic
The WTO/WTOR Processing Routine is entered from the Execution Control Processor whenever an SVC 35 or optionally SVC 36 is issued.
The routine performs the following functions:
1.
HASP is forced dispatchable and a task switch is signalled
when appropriate.
2.
Standard HASP $WTO parameters are set up for OS and LOG
operator consoles.
If the entry is for SVC 36 the as and
LOG operator console request is deleted allowing only
logging to the HASP SYSTEM LOG. The number of output
lines desired is set to 1.
3.
If the SVC is for WTOR a check is made to insure that
both a Console Message Buffer and Reply Element are avail~
able before further processing occurs. When facilities
are available the parameter list is checked, the reply
number assigned to the Reply Element is assigned to the
message, the Reply Element filled out and queued, and
normal WTO processing is resumed at step 6 below.
4.
If the WTO is a multi-line WTO the format of the parameter list is determined (see Figure 5.12.3) and number of
output lines desired is set as specified in the parameter
list.
5.
The text of the message is examined for possible elimination and/or identification of the OSjobname for use in
step 6.
6.
as
control blocks are searched for the purpose of associating the message with a current HASP controlled job. If
an association is made the $WTO parameters will reflect
a request for the job number to appear with the message
and the HASP SYSTEM LOG is to contain a copy of the
message.
WTO/WTOR Processing Routine - Page 5.12-1
262
HAS P
7.
A check is made to insure that a Console Message Buffer
is available before continuing.
available at this point.)
(For WTOR one will be
8.
The parameter list is altered to show request not $WTO
and the Console Buffering and Queueing Routine is called
upon to queue ,the message.
9.
If the number of output lines was more than 1 additional
lines are set up for each succeeding line by re-executing
steps 7 to 8 above until all lines are queued.
10.
Upon completion of all lines, the routine returns to OS
via register 14.
A list of lines is terminated if a line length is zero, the first
line is eliminated by message type elimination, or the DE or Eline
type parameter is encountered. If facilities are not sufficient to
handle the SVC 35 or 36 request immediately and it is determined
that the task can not wait or there are no WTO/WTOR Task Wait Elements (Figure 5.12.1) available, the SVC 35 or 36 request is ignored.
MCS flags in the WTO/WTOR parameter lists are examined to determine
the format of the parameter list only. The acceptable formats and
MCS flag settings examined are listed in Figure 5.12.3.
WTO/WTOR Processing Routine - Page 5.12-2
263
HASP
Figure 5.12.1 -- WTO/WTOR TASK WAIT ELEMENT
Displacement
~.
o
~.
4 bytes ---~--------------------.t
I1.----------------------.
I
0
Address of Next Task Wait Element
4
8
C
4
X'FF'
if
Reply Wait
Address of User's WTO(R)
PCE ID
Address of Task Control Block
8
12
User Parameter List Save Area
10
16
WTO/WTOR Processing Routine 264
Page 5.12-3
HASP
Figure 5.12.2 -- WTOR REPLY ELEMENT
Displacement
Hel(. Dec.
o
1.----------------------- 4. bytes· ------------------------.
I
0
Address of Next WTOR Reply Element
4
8
C
10
4
Reply Number
Address of Event Control Block
PCE ID
Address of Task Control Block
Reply Length
Address of Reply Area
8
12
16
WTO/WTOR Processing Routine 265
Page 5.12-4
HAS P
Figure 5.12.3 -- WTO/WTOR PARAMETER LIST FOR HASP CONSOLE SUPPORT
Displacement
Hex.
Dec.
-8
-8
~----------------------- 4 bytes ----------------.--------. .
Reply Length
-4
Address of Reply Area
-4
Address of Event Control Block
o
0
Zero
4
Length of
Linel + 4
MCS Flags
4
..
Linel Text
"-
i'
Descriptor Codes
(optional)
Route Codes
(optional)
Message-Type Flags
(optional)
Line Type for Linel
Area Type
No. of Lines
WTO/WTOR Processing Routine -- Page 5.12-5
265.1
HAS P
.
Figure 5.12.3 -- WTO/WTOR PARAMETER LIST (CONTINUED)
~-----------------------
4 bytes
------------------------~
Zero
Length of
Line"n" + 4
~
Z
o
Q)
~
H·,-l
CfJH
Z
li::!r-t
E-t I'd
Line Type for Line "n"
:><:
~
Ii::! 0
.,-l
O+J
E-t
.,-l
~ro
'0
Ii::!~
Z
H...c::
H U
lL-________________
~- - -L-1-.n-e- '-'n- "-T-e-x-t- - - - - - - - - - - ~r ~~~
WTO/WTOR Processing Routine -- Page 5.12-6
265.2
HAS P
5.13
CONSOLE BUFFERING AND QUEUING ROUTINES
The following routines are responsible for the queuing and
de-queuing of all conso·le and log messages.
5.13.1
CONSOLE BUFFERING ROUTINE - PROGRAM LOGIC
The Console Buffering Routine is used to prepare a message
buffer with the information required to process a console
message. At entrance registers zero and one contain the information shown in figure 5.13.1.
The routine makes use of three tables comprised of one-byte
entries. The bits in each byte specify the physical consoles
which are to be used for the respective entry. In the first
($WCONTBL) each byte corresponds to one of eight consoles.
The bytes are ORed for each specified symbolic console to
set the physical byte for a write operation.
A second table ($WCLASTB) has an entry for each of the sixteen possible .message classes. The appropriate byte is ANDed
with the physical consoles byte to screen out consoles with
the class set too high.
In addition to setting the console routing byte, the Console
Buffering Routine supplies the other information shown in
figure 8~4.l. Prior to returning to the caller, the routine
places the message in the log queue (non-HASP messages with
a job number); or in the queue of messages to be processed
by the Console Input/Output Processor (all other output
messages and all reads).
5.13.2
CONSOLE QUEUING ROUTINE - PROGRAM LOGIC
This routine places a console buffer into a queue of messages,
according to priority, to be processed by the Operator Console
Input/Output Processor and $POSTs that processor.
5.13.3
LOG QUEUING ROUTINE - PROGRAM LOGIC
This routine places a console buffer at the end of the queue
of messages to be processed by the HASP Log Processor and
$POSTs that processor.
Console Buffering and Queueing Routines- Page 5.13-1
266
HAS P
5.13.4
CONSOLE BUFFER FREEING ROUTINE - PROGRAM LOGIC
This routine places the console buffer in the free queue.
The Attention Processor's PCE is examined to determine if
the Attention Processor is $WAITing for a console buffer,
and if it is, the Attention Processor is $POSTed and exit
is made. If the Attention Processor is not $WAITing, the
$WTORQUE is tested and the first ,task found is POSTed. If
no tasks are waiting, the HASP Event Control Field is $POSTed
and exit is made.
Console Buffering and Queueing Routines - Page 5.13-2
267
HAS P
Figure 5.13.1 -- CONSOLE BUFFERING ROUTINE PARAMETER REGISTERS
Displacement
Hex.
o
Dec.
0
r------------------------
4
Consoles
Specified
Message
Length
Priority
& Class
( RJ')
XI 00 I = $WTO
X ' 80 ' = WTO
8
------------------------~
(RO)
Flags
4
4 bytes
Message Address (or Zero for Read)
8
Console Buffering and Queueing Routines - Page 5.13-3
268
HASP
5.14
INPUT/OUTPUT ERROR LOGGING ROUTINE
5 . 14. 1
Input/Output Error Logging Routine -- General Description
This routine is entered whenever an unrecoverable Input/Output error
occurs on a HASP direct-access intermediate storage device
I
or whenever
line errors occur which may require the attention of the operator. A
message is generated describing the error and this message is routed to
the operator via the operator's console.
The routine then returns without
taking any further action.
5. 14.2
Input/Output Error Logging Routine -
When this routine is entered
I
Program Logic
register" RI" contains the address of
the Input/Output Block (lOB) which is as sociated with the Input/Output
operation in error. The channel status
information track address
I
I
I
channel command code
I
sense
and line status are retrieved from the lOB
and formatted; the unit address and volume serial are obtained from the
Unit Control Block (UCB); the device name (if applicable) is acquired
from the Device Control Table (DCT); and the message is written to the
operator's console.
The format of the message describing a direct-access error is as
follows:
Input/Output Error Logging Routine 269
Page 5.14-1
HASP
I/O ERROR ON SPOOLn
uuu, cc, ssss, iiii, bbcchhr
where:
n
-
identifies the SPOOL disk in error
uuu
-
unit address of disk
cc
-
channel command code being executed
ssss
-
channel status code
iiii
-
unit sense information
bbcchhr
-
track addre s s a s follows:
bb
bin (always -zero)
cc
cylinder
hh
head
r
record
The format of the message describing a line error is as follows:
I/O ERROR ON LINEm
uuu,cc,ssss,iirr,ttee
where:
m
-
line number
uuu
-
unit addres s of line
cc
-
channel command code being executed
ssss
-
channel status code
ii
-
unit sense information
Input/Output Error Logging Routine 270
Page 5.14-2
HASP
where:
rr
-
STR - sense information
sse tt
ee
-
terminal response
internal sequence and command code
STR - alway s blank
sse -
expected response
Input/Output Error Logging Routine 271
Page 5.14-3
HASP
5.15
REMOTE TERMINAL ACCESS METHOD (RTAM)
5.15.1
Remote Terminal Access Method -- General Description
The Remote Terminal Access Method provides an interface between the
HASP Processor and the Remote Terminal.
RTAM provides blocking/deblocking,
compression/decompression, and synchronization with the remote terminal
in such a way that the processor need not be concerned with the characteristics of the remote with which he is communicating.
The MULTI-LEAVING
Line Manager synchronizes very closely with RTAM through a series of
subroutines, the more important ones, of which, are briefly described
below .
. 5.15.2
Remote Terminal Access Method -- Program Logic
The Remote Terminal Access Method consists of four main sections
and some miscellaneous subroutines.
This section discusses the four
main sections: OPEN, GET, PUT, and CLOSE.
The primary subroutines
are discussed in Section 5.15.3 below.
OPEN
The OPEN routines convert the line from an idling mode of opera tion
to a transmit or receive mode of operation. In the case of the MULTILEAVING interface, this routine also generates the request or permission
to begin a new function.
Remote Terminal Acces s Method -- Page 5. 15-1
272
HASP
The GET routines convert data received from the line into EBCDIC
images suitable for processing by the HASP processors.
This conversion
includes deblocking, decompression, and conversion from line code to
EBCDIC.
The PUT routines convert data from EBCDIC into a form ready to be
transmitted to the remote terminal.
This conversion includes compression,
blocking, and conversion from EBCDIC to line code.
CLOSE
The CLOSE routines convert the line from a transmit or receive mode
of operation to an idling mode of operation.
5. 15. 3
Remote Terminal Acces s Method -- Subroutines
This section describes the primary subroutines used by the Remote
Terminal Access Method and the MULTI-LEAVING Line Manager.
MSIGNON -- Sign-On Card Processor
This subroutine is passed the address of a /*SIGNON card in register
"Rl". If the line from which the Sign-On Card was read was defined to be a
"leased" line, the Sign-On Card is ignored and the subroutine returns immediately. If the line is a "dial" line, the MABORT and MDISCON subroutines
are called to disconnect any other remote which may have been attached to
Remote Terminal Access Method -- Page 5. 15-2
273
HASP
this line.
The password is then checked and if not valid, an error message
is issued and the subroutine returns.
If the password is valid the specified
Remote Terminal's DC T' s are loca ted and examined.
If the specified remote
is already attached to another line or if the specified remote is not locatable,
the subroutine issues an error message and returns.
Otherwise, the specified
remote is attached to the line and a confirmation message is issued.
MCCWINIT -- Channel Command Word Sequence Setup Subroutine
This subroutine is passed a sequence type in bits 24-27 of register
"Rl".
The subroutine then constructs a CCW chain based upon this value
and returns.
Figure 5.15.1 depicts the various CCW sequences which can
be constructed by the subroutine.
MINITIO -- MULTI-LEAVING Input/Output Interface
This subroutine analyzes t}:le status of a MULTI-LEAVING Remote Terminal
and takes appropriate action to minimize degradation while insuring maximum
line throughput.
The subroutine first establishes the status of every pro-
cessor currently active on the MULTI-LEAVING line.
Then, based upon the
active input processor count, the active output processor count, the status
of the remote terminal, and the status of input and output buffers queued
wi thin HASP either transmits an ACKO to the terminal, transmits a text buffer
to the terminal, or initiates a one-second delay.
Remote Terminal Access Method -- Page 5.15-3
274
HASP
MEXCP -- Remote Terminal Input/Output Interface
This subroutine interfaces the Remote Terminal Access Method with
the standard HASP" $EXCP" Input/Output Interface.
I/O
I
In addition to initiating
this subroutine also provides the MULTI-LEAVING Block Control Byte
sequence count
I
and the BSC 2770/2780 parity check (ACKO-ACK1)
conversion.
Remote Terminal Access Method -- Page 5.15-4
275
HASP
Figure 5. 15. 1 -
HASP Remote Terminal CCW Sequences
STR Hardware Terminal Prepare Sequence (code = 4)
FLAGS
INTERNAL
CODE
0
60
40
1
LCBMCB
60
4:L
2
ENABLE
0
60
42
1
IOBCCW4
TEST SYNCH
0
60
43
15
IOBCCW5
SEND INQUIRY
0
20
4A
6
FLAGS
INTERNAL
CODE
0
60
50
1
LCBMCB
60
51
2
CCW
COMMAND
IOBCCW:L
DISABLE
IOBCCW2
SET MODE
IOBCCW3
DATA ADDRESS
BYTE COUNT
S TR CPU Terminal Prepare Sequence (code = 5)
CCW
COMMAND
IOBCCW:L
DISABLE
IOBCCW2
SET MODE
IOBCCW3
ENABLE
0
60
52
1
IOBCCW4
TEST SYNCH
0
60
53
15
IOBCCW5
SEND EOT
0
60
5B
6
IOBCCW6
PREPARE
0
60
57
1
IOBCCW7
READ
TPBUFST
20
54
STPBFSIZ
DATA ADDRESS
BYTE COUNT
'Remote Terminal Access Method -- Page 5. 15-5
276
HASP
Figure 5. 15. 1 (continued) -
HASP Remote Terminal CCW Sequences
S TR Read Sequence (code =0: Hardware; code =1: CPU)
CCW
CQ\1MAND
DATA ADDRESS
FLAGS
INTERNAL
CODE
BYTE COUNT
IOBCCW:L
TEST SYNCH
0
60
03/1.3
1.5
IOBCCW2
PREPARE
0
60
07/1.7
'1.
IOBCCW3
READ
TPBUFST
20
04/1.4
&TPBFSIZ
IOBCCW4
STEP COUNT
0
60
00/1.0
1
IOBCCW5
ERRCR
0
60
00/:L0
1
IOBCCW6
TIC
IOBCCW3
00
00/10
0
S TR Write Seguence (code =2: Hardware; code = 3: CPU)
CCW
COMMAND
DATA ADDRESS
FLAGS
INTERNAL
CODE
BYTE COl,J\JT
IOBCCW1.
TEST SYNCH
0
60
23/33
1.5
IOBCCW2
SEND INQUIRY
0
60
2A/3A
6
IOBCCW3
WRITE
TPBUFST
20
28/38
*-*
Remote Terminal Access Method -- Page 5.15-6
277
HASP
Figure 5.15. 1 (continued) -
HASP Remote Terminal
eew Sequences
Bse Prepare Sequence (code =C)
FLAGS
INTERNAL
CODE
0
60
CO
:L
LCBMCB
60
CJ,
:L
0
60
C2
:L
MBSCSYN
60
CA
4
IOBCCW5
NOP/WRITE MBSCENQ/MBSCEOT
60
CA
:L
IOBCCW6
READ
20
C6
2
CCW
CCl-1MAND
IOBCCWJ,
DISABLE
IOBCCW2
SET MODE
IOBCCW3
ENABLE
IOBCCW4
NOP
DATA ADIRESS
LCBRCB
BYTE COUNT
Bse MULTI-LEAVING Terminal Seguence (code =9)
FLAGS
INTERNAL
CODE
0
60
92
:L
MBSCSYN
60
99
4
WRITE
LCBRCB
60
99
2
IOBCCW4
READ
TPBUFST
20
94
&TPBFSIZ
IOBCCW5
NOP
MBSCSYN
60
98
4
IOBCCW6
WRITE
TPBUFST
60/AO
98
*-*
IOBCCW7
WRITE
METBSEQ
60
98
2
IOBCCW8
READ
TPBUFST
20
B4
&TPBFSIZ
CCW
COMMAND
IOBCCWJ,
ENABLE
IOBCCW2
NOP
IOBCCW3
DATA ADDRESS
BYTE COUNT
Remote Terminal Access Method -- Page 5.15-7
278
HASP
Figure 5. 15. 1 (continued) -
HASP Remote Terminal
eew Sequences
Bse Hardware Terminal Read Seguence (code =8)
FLAGS
INTERNAL
CODE
0
60
82
:L
MBSCSYN
60
89
4
WRITE
LCBRCB
60
89
2
READ
TPBUFST
20
84
&TPBFSIZ
FLAGS
INTERNAL
CODE
BYTE COUNT
0
60
A2
:L
CCW
COMMAND
IOBCCW:L
ENABLE
IOBCCW2
NaP
IOBCCW3
IOBCCW4
DATA ADDRESS
BYTE COUNT
Bse Hardware Terminal Write Sequence (code =A)
CCW
CO'1MAND
IOBCCW:L
ENABLE
IOBCCW2
Nap
MBSCSYN
60
AA
4
IOBCCW3
WRITE
MBSCENQ
60
AA
:L
IOBCCW4
READ
LCBRCB
20
A6
2
IOBCCWS
NaP
MBSCSYN
60
A8
4
IOBCCW6
WRITE
TPBUFST
60
A8
*-*
IOBCCW7
WRITE
METBSEQ
60
A8
2
IOBCCW8
READ
LCBRCB
20
AS
2
DATA ADDRESS
Remote Terminal Access Method -- Page 5.15-8
279
HAS P
5.16
OVERLAY SERVICE ROUTINES
5.16.1
Overlay Service - General Description
These routines, together with the Overlay Roll Pr6cessor described in Section 4.20, respond to calls from other HASP Processors
when the macros $LINK, $ LOAD , $XCTL, $ RETURN , and $DELETE are
executed in HASP coding.
This enables certain executable and table
portions of HASP coding (assembly control sections created by use
of the $OVERLAY macro) to be brought into main storage from their
normal direct access residence for use during HASP execution.
Major objectives of Overlay Service and Roll logic are:
to allow
multiple Processors to use a single copy of the same overlay routine
simultaneously, and to prevent any system lockout due to SWArTs in
overlay routine coding.
The overlay data set is constructed as part of HASP installation
by the HASP Overlay Build utility, described in Sections 10.2.2
and 6.3, and is referred to by the ddname OLAYLIB in the job which
invokes HASP.
All Overlay Service and Roll Processor coding is located in module
HASPNUC.
Service entry points are addressable by register BASEl
and are referenced by macro expansions through the HASP Communication Table.
Actions necessary to initialize HASP Overlay Service are contained
in module HASPINIT and are de~cribed in Section 6.1.2.
See Sections 8.3.3, 9.7, and 12.14 for descriptions of Overlay
Area(s) format, macros mentioned above, and coding rules relating
to use of overlay routines.
5.16.2
$LINK Service - Program Logic
On entry, register "RIS" contains the address of the next instruction after $LINK and register "LINK" contains the called routine's
Ocon. An Ocon is an index into the HASP Overlay Table, which is
the control section HASPOTAB created by the HASP Overlay Build
utility, whose individual entries are defined in OTBDSECT, created
by the $OTB macro.
The calling Processor's registers "RO-WC" are saved in the caller'$
PCE.
Overlay Service base address is established in register "WC".
Register "RIS" is saved in PCEORTRN.
"RIS" is set to the relative
displacement of the calJed routine entry point from the beginning
of an' Overlay Area lOB, i.e., OACEPROG-BUFDSECT.
The called
routine Ocon is saved in PCEOCON, then used to compute the address
of the Overlay Table entry for the called routine.
If &DEBUG is set
Overlay Service Routines - Page 5.16.1
280
HAS P
to YES, field OTBCALLS is incremented by one.
priority is moved to PCEOPRIO.
The called routine's
If the Overlay Table indicates that the called routine was made a
permanent part of the HASP Load Module at Overlay Build time,
register BASE3 is loaded with the address of a theoretical Overlay
Area containing the res~dent routine (BUFSTART-BUFDSECT bytes prior
to the routine itself), caller's "RO-WC" are reloaded, and control
is passed to the called routine at its entry point.
If the called routine is not permanently resident, a search is made
of all Overlay Areas in the system. If the called routine is found
in an area (PCEOCON equal to area's OACEOCON), the caller's PCE is
added to the chain of all active users of the area.
This chain
begins at OACEPCE and continues through PCEOPCE of each PCE, if
several user~ are on the chain, and ends with a zero chain word. A
test is made for illegal nested $LINK if &DEBUG is set to YES, see
Operator's Guide for error message.
If the called routine is in
process of being read into the area from direct-access, the calling
Processor is made to $WAIT on OLAY, to be later activated by the
Overlay $ASYNC Exit (see 5.16.9). Otherwise, caller's "RO-WC" are
reloaded and control is passed to the called routine entry point,
with register BASE3 containing the address of the Overlay Area lOB
for use as the overlay routine base address.
If the called routine is not found while searching all Overlay Areas,
the search attempts to find an Overlay Area which is not currently
in use. It may contain an overlay routine but may not have active
users (OACEPCE must be zero). The inactive area containing the routine of lowest priority (OACEPRIO) will be used, subroutine OLOD
(see 5.l6.8) will be called to start reading the called routine from
direct-access, and the calling Processor will be $WAITed on OLAY,
to be later activated by Overlay $ASYNC Exit (see 5.l6.9).
If no inactive areas are found, the calling PCE is placed on a Queue
waiting for an Overlay Area. The Queue be-gins at the word $WAITACE,
continues in descending priority order by PCEOPRIO using chain word
PCEBASE3, and ends with a zero chain word.
If several PCEs are on
the Queue requesting the same overlay routine (PCEOCONs equal), only
the first PCE is on the above chain, the others are chained from it
using word PCEOPCE. All PCEs in the Queue are $WAITed on OLAY.
This Queue is emptied by the Overlay Roll Processor, as described in
Section 4.20, or by the OEXIT subroutine, as described in 5.16.7.
Overlay Service Routines - Page 5.16.2
281
HAS P
5.16.3
$LOAD Service - Program Logic
$LOAD shares almost all logic with $LINK (see 5.16.2).
register conditions are identical to those for $LINK.
Entry
"R15" is not saved in PCEORTRN.
"R15" is not set to the relative
entry point of the called routine.
When the called routine is found in an Overlay Area or read into
one by later system actions, "R15" still contains the address of
the next instruction after $LOAD. subsequent use of "RI5" as an
absolute entry point results in control being returned to the caller
with the routine in an actual or theoretical area, addressable by
BASE3 as with $LINK.
5.16.4
$XCTL Service - Program Logic
$XCTL logic shares almost all logic with $LINK (see 5.16.2).
register conditions are identical to those for $LINK.
Entry
"R15" is not saved in PCEORTRN. $XCTL is legal only when it logically follows another $XCTL or an original $LINK. Subsequent
$RETURN uses PCEORTRN as stored by the original $LINK to return
control from Overlay Service to the original caller.
Before doing entry actions for the new called overlay routine, the
OEXIT,subroutine is called (see 5.16.7) to remove the calling
Processor's PCE from the cha~n of users of the current overlay
routine.
5.16.5
$RETURN Service - Program Logic
On entry, register LINK points to the next instruction after $RETURN
and also contains the condition code and program mask as set by a
BAL instruction. BASE3 points to an actual or theoretical area containing the current overlay routine.
Caller's "RO-We" are saved in the PCE.
is established in WC.
Overlay Service base address
The OEXIT subroutine is called (see 5.16.7) to remove caller's PCE
from the chain of users of the current overlay routine.
Returned condition code is re-established using an SPM instruction.
Caller's "RO-WC" are reloaded. Control is returned to the address
previously saved in PCEORTRN by $LINK.
Overlay Service Routines - Page 5.16.3
282
HAS P
5.16.6
$DELETE Service - Program Logic
$DELETE is nearly identical to $ RETURN , except that it is used to
release control of an overlay routine previously $LOADed.
On entry, register LINK points to the next instruction after $DELETE.
This is stored in PCEORTRN and all actions described for $RETURN
are performed.
5.16.7
OEXIT Subroutine - Program Logic
This subroutine is used by service routines for $XCTL, $RETURN, and
$DELETE to release use of the current overlay routine by the calling
Processor. On entry, register WA contains the subroutine return
address and register BASE3 contains the address of an actual or
t~eoretical (permanently resident routine) Overlay Area containing
the current overlay routine.
If the current overlay routine is permanently resident, OEXIT returns
immediately. Otherwise, the chain of all users of the area (beginning at OACEPCE and continuing through PCEOPCE) is searched and the
caller's PCE is removed.
If other Processors are still using the
area, OEXIT returns.
If the above actions result in the Overlay Area becoming inactive
(OACEPCE equal zero), the $WAITACE Queue (see 5.16.2) is inspected.
If PCE(s) are waiting, the top priority group of one or more requesting the same overlay routine i~ de-queued, the address of the first
such PCE is placed in register "RI", and OEXIT simply falls through
to 'the OLOD subroutine (5.16.8), which eventually returns to the
caller of OEXIT.
5.16.8
OLOD Subroutine - Program Logic
This subroutine is used by service routines for $LINK, $ LOAD , $XCTLi
by the Overlay Roll Processor (see Section 4.20); and indirectly
by users of the OEXIT subroutine (5.16.7).
Its purpose is to start
a read for a requested overlay routine from the direct-access device
containing the overlay data set. On entry, register WA contains the
subroutine return address, register BASE3 contains the address of an
actual Overlay Area to be used, and register "Rl" contains the address of the first of a group of one or more PCEs requesting the
same overlay routine, chained from the first PCE by PCEOPCE.
OACEPCE of the Overlay Area is pointed to the first PCE. OACEPRIO
and OACEOCON are set to indicate the routine which will reside in
Overlay Service Routines - Page 5.16.4
283
HAS P
the area.
The Overlay Table entry for the requested routine is
accessed and, if &DEBUG is set to YES, field OTBLODS is in~remented
by one.
The relative T and R in the overlay data set of the requested
routine is obtained from the Overlay Table.
The address of the
Overlay DCT is loaded into register "Rl".
If the overlay data set
is on any SPOOL volume (device type DA in the DCT} , an absolute
form of MTTR is computed and stored in DCTSEEK. This conforms to
$EXCP requirements for SPOOL volumes (see S.8) and allows $EXCP to
remember SPOOL arm positions.
If the overlay data set is on a
non-SPOOL direct-access volume, the standard OS form of MBBCCHHR
is computed and stored in IOBSEEK.
See Section 6.1.2 for initialization of the Overlay DCT and data set.
Hardware read operation is requested by using the $EXCP macro.
The
Overlay DCT specifies that when the read operation is complete,
Overlay $ASYNC Exit is to be entered. All PCEs chained from
OACEPCE are already $WAITing oLAY , to be later activated by Overlay
$ASYNC Exit (see S.16.9). OLOD then returns to its caller or caller
of OEXIT.
5.16.9
Overlay $ASYNC Exit - Program Logic
This routine is entered when under control of the Asynchronous Input/
Output Processor ($ASYNC) PCE (see Section 4.8) an overlay read opera.
tion (started by OLOD subroutine, see 5.16.8) is posted complete.
On entry, register "RI" points to the Overlay Area.
BASE2 is set
to the base value for the Oyerlay Roll Processor, which is used for
local addressability.
"RlS" contains the return address to $ASYNC.
The chain of all users of the overlay routine just read (begins at
OACEPCE, continues through PCEOPCE) is processed.
Each PCE's
re-entry address ("RlS", now stored in PCER15) is absolutized by
adding the address of the Overlay Area, if the value in PCERlS is
determined to be relative.
The address of the Overlay Area is also
stored in each PCEBASE3, to provide addressability when the Dispatcher activates each Processor.
The function $POST for OLAY is
performed on each PCE to make it dispatchable.
If OS lOS has posted the read complete with a permanent I/O error,
each PCE's (on OACEPCE chain) re-entry address (PCERlS) is pointed
to a routine which types the message "UNREADABLE OVERLAY
"
and enters a permanent $WAIT. The Overlay Area is freed for other
use.
If &OREPSIZ is set to zero, this Exit returns to $ASYNC. Otherwise, the Overlay REP storage area is examined to see if any REPs
were read during HASP Initialization (see 6.4) which may apply to
Overlay Service Routines -.Page 5.16.5
284
HAS P
this overlay routine.
REPs whose CSECT name (last four characters)
match OACENAME are applied. The assembly origin (OACEASMO) of the
routine is subtracted from the REP address and the BUFSTART address
of this Overlay Area is added, to determine the memory location to
be patched.
Return is finally made to $ASYNC to allow other processing to continue. The Dispatcher will enter each Processor using the overlay
routine just read.
Overlay Service Routines - Page 5.16.6
285
HAS P
(The remainder of this page intentionally left blank.)
286
H.A S 1)
6. ()
iv1ISCELLANEOUS
This section contains d.::tai.led internal inf·;rrnation about miscel1aneou:;
routine S 1nl.bedded in
0:1'
i.nvulved w'ith the HAS
primarily for use by sy ~·;tenH~
Sv
f3tern an(1
is intended
r,l :)grarnrner s.
Miscellaneous -_. Fag,
287
().
.l
HAS P
6.1
HASP INITIALIZATION
6.1.1
HASP Initialization - General Description
The purpose of HASP initialization is to initialize for HASP job
processing.
Initialization builds the required control blocks and
makes modifications to the Operating System nucleus which allows
HASP to monitor the execution of jobs.
HASP Initialization is designed to provide either a "cold" or "warm"
starting capability. A "cold" start is one which starts the system
anew.
Only those jobs which are entered after a "cold" start will
be processed. A "cold" start does not have any requirements as to
configuration except as defined in the HASP generation parameters.
A "warm" start is a restart.
Checkpointed information is read from
the SPOOLl volume and the queued jobs and data from the last processing are recovered.
This type of start requires, as a minimum,
that the SPOOL volumes that were used during the previous execution
be on-line. Extra SPOOL volumes, up to a total of &NUMDA volumes,
may be added.
6.1.2
HASP Initialization - Program Logic
Initialization begins with the issuing of the HASP Supervisor Call
which turns control over to the HASP Initialization SVC Routine.
On
return the HASP task will be in the Su~ervisor State with protect
key of zero.
Register I points to a 11st of resolved nucleus
addresses and a return point for resetting HASP to problem state.
These addresses are moved into the HASP Communication Table (HCT)
for later use by the system.
Since HASP Initialization resides in the same area as the main HASP
buffer pool as designated by the HASP parameter &NUMBUF and portions
of the initialization routines are executed from overlay control
sections, all HASP processors except those required for initialization and console processing are placed in the hold status. The
command processor peE is altered to tefer to the Root Segment of
HASP Initialization, which resides in the data portion of the
first buffer used for HASP SPOOLING. The HASP Initialization WTOR
is then displayed via OS WTOR facilities.
Initialization then waits
for the operator to respond with the desired options. The options
are then compared again'st the Initialization Options table and the
appropriate bits in the' $OPTSTAT field in the HCT are set or reset
in accordance with the options specified.
If any option is incorrectly entered, an error message is issued and the $OPTSTAT field
is set to the default option configuration.
(Refer to STARTING THE
HASP JOB Section of the HASP Operator's Guide.)
HASP Initialization - Page 6.1.1
288
HAS P
The HASP REP routine (described in Section 6.4) is entered for
optional alteration of the resident portions of the Operating
System or HASP (resident or overlay control sections)
a
Preparation Of. Overlay Service
The Overlay OCT is prepared by indicating that it is in use, usc,'
only for reading, that Overlay $ASYNC Exit is to be entered on
completion of any operation which was started by using Overlay
DCT, and that Overlay Roll Processor is the owner of the DCT.
The overlay data set is described by a DO card having ddname of
OLAYLIB.
DEVTYPE and OPEN macros are used to determine the number of tracks/cylinder of the overlay volume and data set extent.,
which is placed as the last (&NUMDA+l) extent in HASP's single
multi-extent direct-access DEB. The overlay data .set is closed,
since HASP uses its own constructed I/O control blocks.
The overlay data set ueB address is stored in a table used to
withdraw or abort HASP and the ueB is made allocated, permanently
resident, and private.
The number of tracks/cylinder and extent are used to compute a
beginning absolute TT of the overlay data set, which is stored
. in the Overlay OCT for later use by the OLOD subroutine (see
Section 5.16.8).
Locating Spool Volumes
AlIOS ueBs are searched via the DCB lookup table and direct-acee 2
volumes with volume serials of SPOOLx are examined for use for HASP
SPOOL volumes. As each device is examined, the ueB is allocated
by turning on the private, reserved, permanently resident, and
allocation indicators. The UCB locations and sixth volume serial
character are saved in a temporary workarea for later reference.
If during the ueB search multiple volumes with the same serial'
or too many SPOOLx volumes are found, an error message is displayed/
SPOOL volume ueBs are deallocated and the HASP job is terminated
Upon completion of a successful allocation of SPOOL volumes, control is passed to Direct-Access Initialization.
0
HASP Initialization - Page 6.1.2
289
HAS P
Direct-Access Initialization
Direct-Access Initialization (NGDAINIT) gains control after all
Spool devices have been found by initialization; initialization has
built a table of six-byte entries (NSPOOLLI) describing the directaccess devices upon which Spool disks are mounted, of which each
entry appears as follows:
o
1
I I
dev
vol
2
lueB
4
I
unused
where:
dev
is the low-order byte of the direct-access
device type;
vol
is the low-order byte of the volume serial
number; and
UCB
is the device1s UCB address.
Before checking for warm start, NGDAINIT establishes where the
checkpoint record is to be placed on SPOOL1. To do this, it first
calls the DEB/TED setup routine to establish certain statistics
about all mounted Spool volumes and then issues an OBTAIN macroinstruction for SYSl.HASPACE on SPOOLl. The checkpoint information
will reside on the first track of this data set (the first two
tracks if &JITSIZE is not zero); accordingly, NGDAINIT sets up
the necessary channel programs using the OBTAINed information.
WARM START
If the operator requested a warm start, NGWARM reads the checkpoint
information directly into the area from which the checkpoint
processor will write it; the information consists of the HASP job
queue, the track group map, printer checkpoint information, mis~
cellaneous status information (including direct access checkpoint
information) and, optionally, the job information table (JIT).
The direct access checkpoint information, $DACKPT, consists of
&NUMDA six-byte entries of the following form:
2
0
1
Idev
I vol Is s s s
4
Ie e e e
where:
dev
is the low-order byte of the direct-access device type;
vol
is the low-order byte of the volume serial number;
HASP Initialization - Page 6.1.3
290
HAS P
ssss is the starting absolute track number of data set
SYSI.HASPACE on the indicated SPOOL volume; and
eeee is the ending absolute track number of the first
extent of data set SYSI.HASPACE on the indicated
SPOOL volume.
For SPOOLl, the starting track number excludes the checkpoint
tracks.
NGWARM insures that each volume specified in the direct-access
checkpoint is mounted and, with the help of subroutine NGALLOC,
that its extents are unchanged.
If not all volumes are mounted,
or if any extents have been changed, or if a cursory check of
a volume shows that it is not properly formatted, NGWARM writes
a message and sets a quit switch to cause HASP to quiesce.
If all volumes specified by the direct-access checkpoint are
correct, NGWARM checks for (and formats if necessary) newlymounted volumes. Then it again calls subroutine NGDEBSET to
allow for the possibility that the order of Spool volumes in
NSPOOLLI (by unit address) may not have been the same as in $DACKPT;
the final order is that of $DACKPT.
Now NGWARM relocates the HASP job queue, if necessary. The job
queue as recorded in the checkpoint record contained main storage
addresses; if HASP does not now occupy the same core locations as
it did before, each main storage address in the HASP job queue (and
in pointers to the job queue) must be adjusted to reflect the current main storage location of the job queue.
After relocation, NGWARM scans the job queue to check the busy bit
of each active entry and to reset certain flags.
If a busy bit is
on, NGWARM turns it off and issues a WTO to inform the operator
that the job was reading,- executing, printing, or punching. Additionally, if the job was reading, NGWARM uses HASP queue management routine $QREM to delete the job's queue entry.
At the end of the job queue, NGWARM gives control to NGEXIT,
which assembles and format-writes the checkpoint information;
restores the HASP appendage table pointer in $DADEBl, the HASP
multi-extent direct access DEB; counts the number of allocated
track groups (one-bits) in the track group map; and gives control
to NINITWTO.
COLD/FORMAT START
If the operator specified cold or format start, NGCOLD first zeros
out the track group map. Then NGCOLD processes each mounted SPOOL
volume.
For each volume, NGCOLD uses subroutine NGALLOC to process the DSCB
for SYSI. HASPACE. This subroutine issues, the OBTAIN macro-instruction to retrieve the DSCB; if OBTAIN's return code is not zero, an
appropriate error message is printed via WTO.
If the return code is
HASP Ini tia'lization - Page 6.1.4
291
HAS P
zero, NGALLOC computes and saves lower and upper absolute track
numbers.
If NGALLOC operated normally, NGCOLD now tests for an operator
specification of COLD; if the test is positive, NGCOLD calls subroutine NGREADCT to read and validate the count field of the first
record of the last track of the first extent of SYSI.HASPACE on the
volume.
If the count field is invalid, or if the operator specified
FORMAT, NGCOLD calls NGFORMAT to format the first extent. NGFORMAT
issues an unconditional GETMAIN for core in which to build a formatting channel program and data, builds them, and formats each
track by calling NGEXCP, which merely issues an EXCP and a WAIT
and checks the post code.
After the volume has been inspected (and formatted if necessary),
NGCOLD calls NGMAP to calculate the number of track groups in this
volume and the track group number of the first track group. NGCOLD
increments the overall number of track groups available for allocation by the quantity returned from NGMAP and then calls NGBITMAP
which turns on in the master track group map the bits corresponding
to available track groups on this volume. Then NGCOLD processes
the next volume.
When all volumes have been processed NGCOLD refreshes certain
checkpoint information (the HASP job queue, the print checkpoint
information, and some miscellaneous checkp'oint information) and
gives control to NGEXIT, as above.
The DEB initialization subroutine, NGDEBSET, initializes certain
HASP and OS control blocks and allows a great degree of SPOOL
device independence.
When called, NGDEBSET first puts into $DADEBI the address of the
HASP TCBi it also changes the DEB appendage address to point to
the standard lOS appendage.
(The appendage address is restored
by NGEXIT.)
It checks for SPOOL I and quiesces HASP if SPOOL I is
not found. Then NGDEBSET processes the Spool volumes.
For each volume, NGDEBSET calculates number of records per track
using information from the device characteristics table IECZDTAB
in the OS nucleus and the formula given with the DEVTYPE macroinstruction in the OS System Programmer's Guide. Then it sets up
certain information in an entry of the Table of Extent Data (TED).
Then, after setting the UCB address in $DADEBI, NGDEBSET performs
the same functions for the remaining volumes and returns to the
caller.
HASP Initialization - Page 6.1.5
292
HAS P
Activation of Overlay
If the overlay data set is contained on a SPOOLx volume, the
Overlay Device Control Table is adjusted so that $EXCPs done by
the OLOD subroutine (see 5.16.8) will use MTTR addresses and M
which refers to the DEB extent for the SPOOLx volume rather
than the overlay data set extent. The first Processor Control
Element (PCE) in the HASP chain is connected to the as save area
chain and, with register 13 pointing to the first PCE, Initialization enters the HASP DISPATCHER as though the first processor
had executed a $WAIT macro.
The HASP DISPATCHER will run the PCE
chain and dispatch the Initialization ROOT segment.
The ROOT
segment will $LINK to the first overlay control section HASPIOVA~
Unit Record Initialization -HASPIOVA
The OS UCBs are scanned for unit record devices. Devices which
are on-line on a DUAL Processor Model 65 system, have OS
scheduled I/O activity, or answer positively to a TID instruction
are considered real devices. Otherwise the devices are considered pseudo devices.
PSEUDO DEVICE INITIALIZATION - Pseudo devices are initialized by
flagging the UCB for later identification by the HASP Execution,
Processor SVC 0 intercept routines and are varied on-line.
Pseudo 2540 reader, 1442 special forms punch, and 1443 special
forms printer devices are especially noted and counts are maintained
for the HASP Execution Processor Device Allocation Routine.
Pseudo
1403 Printer UCS feature is removed from the UCB. Pseudo 2520
devices are identified and matched with an internal reader INTRDR
Device Control Table which is initialized for processing.
REAL UNIT RECORD DEVICE INITIALIZATION - Each device is matched with
a corresponding Device Control Table which is initialized for processing.
If the device is allocated by as, the DCT will remain
in the drained status causing HASP not to use the device unless
the operator starts the device by command. Automatic starting
reader and (as appropriate) HASP console UCB attention index values
are set to four allowing HASP to recognize the readying of the
readers or the pressing of the enter key(s).
(At least one HASP
console device is reserved for a 1052 type of device.)
If more
real unit record devices of each particular type are found than
available DCTs, an error message is displayed and the additional
devices are ignored.
Control is then passed to the Remote Job Entry or console initialization routines as appropriate via a $XCTL macro.
HASP Initialization - Page 6.1.6
293
HAS P
. Remote Job Entry Initialization - HASPIOVR
LINE INITIALIZATION - The OS UCBs are scanned for Synchronous
Communication Adapter devices.
The UCBs found are first matched
with one or more DCT and corresponding line descriptions (LINEmm
HASP Generation Parameters). Any DCT with a line description
which specifically designates the UCB will be initialized for the
UCB.
If no line description designates the UCB, tests are made
to determine if the adapter is physically on-line and, if so,
a DCT with a line description with "***" specified will be located
and initialized. Line devices will not automatically be started.
REMOTE DEVICE INITIALIZATION - Remote Device Control Tables are
connected and initialized with information contained in the corresponding remote description (RMTnn HASP Generation Parameter).
Each
group of RMr.RDn, ... ,RMr.PRn, ... ,RMr.PUn, ... for a given remote
are chained together for control by the MULTI-LEAVING-line manager
and RTAM.
In addition the printer and punch DCTs are removed from
the chain of all HASP DCTs and reinserted directly behind the
reader DCT for the corresponding terminal.
The device description
is converted to internal flags and placed in each of the corresponding DCTs.
If the line number is designate·i in the description
the line DCT is located, DCTs are chained together, and flags are
set to indicate non-signon remote.
-The HASP Remote Job Entry Buffer Pool is initialized and control
is passed to the remote console initialization routine or console
(local) initialization routine as appropriate by $XCTL.
Remote Console Initialization - HASPIOVS
The Operator Message Space is allocated and control blocks are inilialized.
The Remote Console Processor PCE and a direct-access DCT
are connected (the OCT is flagged IN USE).
The origin of the first
available track in the SYSI.HASPACE data set of the SPOOLI volume
and the base track address for operator message record allocation
is set into the MSAMTTR field of the MESSAGE ALLOCATION ($MSALLOC)
Table in the form:
OTTI (TT is the first track available for
messages).
The number of records per track for the mounted SPOOLI
volume is inserted into the MSARPTRK field.
If "cold" start was
performed by direct-access initialization, the Cylinder map for
SPOOLl is altered to reflect the allocation of sufficient adjacent
track groups starting with the group of the base track. The number of the last group is saved in the checkpoint records for
future "warm" starts.
If a "warm" start was performed by directaccess initialization, a check is made against the checkpoint record
to insure that the space required is within the allocated space.
Control is given to the console (local) initialization routine
by $XCTL.
HASP Initialization - Page 6.1.7
294
HAS P
Console Initialization - HASPIOVB
OS CONSOLE INITIALIZATION - Information is extracted from the OS
UCM and the Console processor is made ready for interfacing with
OS.
HASP CONSOLE INITIALIZATION - The Console DCTs are initialized
for HASP console support.
Each DCT that was matched with.. a UCB
by the unit record initialization routine is initialized for I/O
processing.
The corresponding authorization for each console
is converted to console restrictions and set into the DCT.
The
operator command $S console is simulated.
Control is passed to the intercept initialization routine via $XCTL.
Intercepts Initialization - HASPIOVC
The following intercepts are made in accordance with the, type of
the HOST Operating System MVT or MFT and the HASP generation
options as follows:
-
EXCP interface used for control of user I/O
LINK interface used to recognize events within as
XCTL interface used to recognize events within OS
and to interface with OS console support
SVC 35 - WTO interface for console support
SVC 36 - WTL interface for write to log support.
SVC
SVC
SVC
0
6
7
start Initiator, reader, and writer (optional) commands are issued
which start the procedures contained on SYSl.PROCLIB.
The reader
will be directed to the pseudo device & RDR and the writer will be
directed (if started) to the pseudo device &WTR.
In the event the HASP writer is selected in lieu of the OS writer,
the HASP writer module "HASPWTR" is attached.
If OS console support is selected, the HASP communications task is attached, via the
attaching of module "HASPBRl" which enters the console processor.
Control is passed to the HASP buffer building routine via $XCTL.
HASP Initialization - Page 6.1.8
295
HAS P
Buffer Build - HASPIOVD
An OS variable GETMAIN is issued to obtain storage for the alternate
buffer pool from the hierarchy as designated by the &BUFHICH
generation parameter. The actual amount of core is reduced by the
amount of reserved core (&RESCORE*1024) and used to determine the
number of buffers which may be created in the alternate buffer
pool along with the actual amount of storage needed.
Extra core
if any is released via OS FREEMAIN. The number of buffers which
may be created in the alternate pool is compared against the
expression of generation parameters:
&MINBUF - &NUMBUF
where &MINBUF
~
&NUMBUF = number of buffers
in the main buffer
pool
If the alternate buffer pool will not contain at least the number
of buffers specified by the expression a warning is issued.
The origin of the main and alternate buffer pools are examined to
determine which has the lower storage address. The pool with the
lowest address is created and chained to the $BUFPOOL chain of
buffers. The pool remaining is then created and chained to the
end of the first.
The operator is then asked to ENTER HASP REQUESTS (optional) and
the ROOT segment of HASP INITIALIZATION is entered via the $RETURN
ma~ro.
Activation Of Normal Processing
The ROOT SEGMENT returns the PCE to the Command Processor and, if
the operator specified REQ in the WTOR, enters the Command Processor.
If NOREQ was specified by the operator, all HASP Processors
are $POSTed and the Command Processor is entered.
HASP Initialization - Page 6.1.9
296
HAS P
6.2
HASP INITIALIZATION SVC ROUTINE
6.2.1
HASP Initialization SVC Routine - General Description
This program is a Type-I SVC routine which resides in the Operating
System Nucleus and provides the following basic functions:
1.
For HASP:
•
•
•
To give HASP a zero storage protection key.
To place HASP in supervisor state.
To return the address of key symbols in the nucleus
which are required for HASP processing.
To guard against recursive entries in order to prohibit
mUltiple copies of HASP from being initiated.
To provide the address of an entry which will cause
the SVC routine to be reset for HASP withdrawal and
cause the PSW to be reset to its initial value.
•
•
2.
For the HASP Reader/Interpreter Appendage:
•
To place the HASP JCL Exit routine in supervisor
state.
To return the left half of the PSW which was in use
when the SVC was invoked.
•
3.
For the non-HASP program:
•
To give an indication to any other program as to
whether HASP is currently active or not.
6.2.2
HASP Initialization SVC Routine - Program Logic
This program is a Type-I OS SVC routine.
It must be link-edited
with the nucleus to resolve the external address constants required
for HASP processing.
Upon entry, register 1 is compared with the EBCDIC characters "HASplI.
If the register does not compare, a condition code is returned to
the user in register 15 as follows:
Rl5 = 0 - HASP has not been initiated and is not currently
active.
R15
~
0 - HASP has been initiated and is currently active.
HASP Initialization - Page 6.2.1
297
HAS P
If register I contains "HASP", a test is made to determine if
HASP has been invoked.
If not, then this switch is set to
indicate that HASP is now active and the left half of the PSW
is saved for the "reset entry".
If HASP has been invoked, the protect key of the caller is
interrogated.
If this protect key is non-zero, the caller
is ABENDed with an appropriate ABEND code.
The SVC OLD PSW is modified so that the return to HASP will
place HASP in the supervisor state and give HASP a zero storage
protection key.
Register I is then loaded with the address of
a table of address constants of key nucleus addresses and return
is made through the os SVC FLIH. At this time register 0 contains the left half of the PSW which was in use when the SVC
was invoked.
One of the addresses in the nucleus address table is the address
of the SVC reset routine. When this routine is entered, it
resets the switch to indicate that HASP is no longer active.
It
then returns to the user by loading a PSW constructed by concatenating the left half of the original PSW with register 14.
HASP Initialization - Page 6.2.2
298
HAS P
6.3
HASP OVERLAY BUILD UTILITY
6.3.1
HASP OVERLAY BUILD - GENERAL DESCRIPTION
The purpose of this program is to process the object deck
output from the ten primary HASP assemblies. Overlay CSECTs
are extracted and written (each as a single record) to the
sequential overlay data set (ddname OLAYLIB), all references
to overlays from resident and overlay routines are resolved,
and all resident CSECTs (even if programmed as overlayable)
are passed to the OS Linkage Editor in a sequential data set
(ddname SYSLIN). Optional control cards are processed which
allow changing the status of any overlayable CSECT from actual
overlay to permanently resident and vice-versa.
The use of this program to install HASP (control cards, listings produced, etc.) is described in section 10.2.2.3, which
should be read as background to this description. Overlay
sJicvices and Roll logic, and Overlay Programming Rules are
de~cribed in sections 5.16, 4.20, and 12.14 respectively.
6.3.2
HASP OVERLAY BUILD - PROGRAM LOGIC
On initial entry, the time is sampled. A truncated "timelike" value is saved. This value will be placed into one
resident CSECT and one overlay CSECT. During HASP Initialization, if these two values do not match, an error message
is produced and HASP terminates.
All data sets are OPENed and the listing title line is printed.
If the control card data set is present (ddname SYSIN), cards
are read, printed, and processed until end-of-file is encountered. Each card contains an overlayable CSECT name beginning
in column 1, which must begin with "HA$". A SYM table entry
is made for each such name. An Oeon (index into the Overlay
Table, HASPOTAB) is assigned and a priority, if present in
column 16 of the card, is remembered. This 'information is
later used to override the normal processing of that CSECT,
when encountered in the object decks. A listing header line
is printed at the end of control card processing.
All objects decks are p'rocessed as a single sequential input
data set (ddname SYSOBJ). Only the four object card types
ESD, TXT, RLD, and END; as documented in OS/360 Loader PLM,
Y28-6714, Figures 30-34; are processed. All other cards are
wiitten directly to SYSLIN. If an object card with a valid
ESID number greater than the program's table limits (internal
assembly variable &MAXESID) is encountered, the program abends
with a UOlOl code.
HASP Overlay Build Utility - Page 6.3.1
299
HAS P
ESO card processing is essentially the construction of two
Tables from ESO information. The SYM table contains the
names of and information about any external names under overlay control (i.e. beginning with "HA$"). It is a global
table covering all object decks together. A name is entered
when a reference to it or CSECT definition of it is first
encountered, or during control card processing as previously
described. An overlay name in an ESO card item is first
searched for in the SYM table, and if found, changes are
made to the'existing entry. An error message is produced
for each duplicate definition of a previously defined overlay CSECT name and only the first definition is used. An
Ocon is assigned to each entry. When a name becomes a defined CSECT, if the fourth character is "0", the overlay
routine is actually to be made disk resident, and storage
is assigned to load its text.
The ESIO table is cleared at the beginning of each object
deck and constructed as ESO items are encountered, under
control of SYM table contents.
It is a table of words, in
order by ESID number. TXT and RLD card processing access
this table only.
It contains relocation values, Ocons, and
flags controlling the disposition of text and RLD items.
ESO items, for references to overlays or for definitions of
overlay CSECTs which are to be disk resident or are duplicated, are eliminated from an ESO card when processed, before
the ESO card is written to SYSLIN. This elimination is done
by changing them to type NULL or, if type LO, by physically
removing them and compacting the card.
TXT card processing has "three possible results. Text belonging to an actual overlay is loaded into memory, subject
to relocation according to storage assigned by ESD processing. Text of any overlay CSECTwhich is a duplicate of one
encountered previously is discarded. Text of non-overlay
CSECTs or overlays being made permanently resident is written
un-altered to SYSLIN.
RLD card processing concerns individual RLO items, as follows.
If an item applies to a discarded duplicate overlay CSECT, it
is eliminated.
If an item references a non-overlay CSECT,
it is left un-altered. An overlay reference item describes
a 2 byte Q type constant assembled in the expansion of the
$LINK, $LOAD, $XCTL, and $OCON macros. The reference is
resolved by substituting the Ocon value assigned to the referenced overlay routine, and the item is eliminated.
If the
Q constant exists in an actual overlay routine, the Ocon value
is simply moved to the proper address of the text already loaded in memory.
If the Q constant exists in a non-overlay CSECT
or overlay being made resident, a new TXT card containing the
Ocon value is created and written to SYSLIN. Eliminated items
are physically removed and the RLD card compacted before.
writing to SYSLIN.
HASP Overlay Build Utility - Page 6.3.2
300
HA S P
END card processing is really end-of-object-deck processing.
The card is written unchanged to SYSLIN. The entire SYM table
is then scanned for selected processing. Each actual overlay
whose text was loaded from the most recent object deck is
written to OLAYLIB as a fixed length record of length &OLAYSIZ
(internal assembly variable set to 1024 bytes in unmodified
HASP). A listing line is printed for each overlay CSECT defined in the most recent deck, with its length and assigned
OCON value. Priority and disk address in two forms are printed
for actual overlays. An error message is printed if an actual
overlay length exceeds &OLAYSIZ~
Processing of multiple object decks continues as above until
end-of-file for SYSOBJ is signalled. The entire SYM table is
then processed to produce the Overlay Table, which is written
to SYSLIN as a new object deck (did not exist in the input)
containing a single resident CSECT, HASPOTAB •. An error message is printed for any name in the SYM table which is ·still
not defined as a CSECT.
Each entry in HASPOTAB is 4 bytes or, if &DEBUG is set to YES,
12 bytes. The last 4 characters 'of the CSECT name are included
if entries are 12 bytes, to facilitate identification in a memory dump. If a routine is actual overlay (disk resident), the
TR (relative form) of disk address and the priority are placed
into the table entry for that routine. If an overlay routine
was written to SYSLIN by previous processing (to become permanently resident in the HASP load module), aV type constant
is created in its table entry. An appropriate RLD item referencing the CSECT name is created.
I
When HASPOTAB is complete, an END card for it is written to
SYSLIN, all data sets are CLOSEd and the program terminates.
Completion code 0 is returned normally, 4 if duplicate CSECTs
were encountered, and 8 if any overlays were too long or
undefined.
HASP Overlay Build Utility - Page 6.3.3
301
HAS P
6.4
HASP REP ROUTINE
This routine gives the systems programmer the capability of
applying absolute or relocatable value patches to HASP, at
absolute or relocatable memory addresses, as part of the HASP
Initialization process.
6.4.1
REP Card Format
Columns
1
2-5
6
7-12
13-16
l7-blank
Contents
Any identification - ignored by REP routine
CSECT name, "REP", or "ABS"
Blank
Address at which to apply patch (6 hex digits)
or blank
Blank
Half word absolute value patches, 4 hex digits
each, separated by commas, patch data
terminated by first blank,
or one full word (8 hex digit) relocatable
-value patch, followed by a comma and the
name of the resident CSECT which defines the
relocatable part of the value
The above format allows patches to be applied at any absolute
memory location (by use of REP or ABS beginning in column 2) or
at addresses in HASP CSECTs (resident or overlay), subject to
relocation. Relocatable addresses should be taken directly from
a HASP assembly listing containing the CSECT to be patched. A
blank address field is interpretted as one greater than the last
address patched by the previous card, but the card will be used
only if columns 2-5 match those of the previous card.
The patches may be absolute values or one relocatable word per
card, whose value is relative to any resident HASP CSECT.
Relocatable values should be punched as if they were the assembled
value of an A type constant in the CSECT which defines the
referenced relocatable symbol.
Use of the term "CSECT name" in the above description means the
fifth and following characters of a HASP CSECT name, as taken from
the External Symbol Dictionary of a HASP assembly listing.
A deck of one or more REP cards should be terminated by a card
having "1*" punched in columns 1-2.
HASP REP Routine - Page 6.4.1
302
HAS P
6.4.2
REP Routine - Program Logic
REP cards, as described in Section 6.4.1, are read from the card
reader, whose address is given by the HASPGEN parameter $REPRDR,
immediately after the operator replys to HASP's initial WTOR, if
the operator specifies "REP" in the reply options. Each card is
listed on the printer, whose address is given by the HASPGEN
parameter $REPWTR, unless the operator specifies "NOLIST" in the
reply options. All I/O is performed using CPU instructions SIO
and TIO with the CPU disabled for all interruptions.
Cards are
read and processed until a card having "/*" in columns I and 2
is encountered or until the card reader signals unit exception.
The value or data portion of each card is processed first.
If
the value is relocatable (indicated by comma in column 25), eight
hex digits beginning in column 17 are converted to a binary, value.
The CSECT name (last four characters beginning in column 26) is
located in an internal table of standard resident module names.
A value is taken from this table which is the memory address at
which the resident module is loaded. This value is added to the
value taken from the card.
If the value portion is absolute, groups of four hex digits (separated by commas) beginning in column 17 are converted to binary
values until a blank is encountered instead of an expected comma .
. ~he values are concatenated to form a single variable length
binary value.
The address portion of the card is processed next.
If non-blank,
six hex digits beginning in-column 7 are converted to a binary
address. An attempt is made to locate the to-be-patched CSECT
name (last four characters beginning in column 2) in the standard
resident module name table.
If located, the loaded memory address
of the resident module is added to the address taken from the card.
If the CSECT name is not in the standard resident module name
table, the overlay table is searched to determine if the CSECT is
an overlay which was made permanently resident.
If so, the nonzero assembly origin of the overlay CSECT is subtracted from and
the loaded memory address is added to the address taken from the
card.
In both of the above cases, the patch value as previously
computed is applied by moving it to the memory address determined
by one of the two methods described.
If the CSECT name is not located by either search just described,
it is assumed to be an overlay CSECT which is not permanently resident.
The name, unrelocated address, and value are saved in a
reserved area, to be applied each time the overlay is read from
direct access during HASP operation.
If the address field of the card is blank, the to-be-patched CSECT
name is compared with that from the 'preceeding card.
If they are
not equal, the card is ignored. Otherwise, the card is considered
HASP REP Routine - Page 6.4.2
303
HAS P
to be a continuation of the preceeding card and the patch value
is applied at the next higher memory address or saved as appropriate.
If no area was reserved to save patch information for application
to non-resident overlays (HASPGEN parameter &OREPSIZ=O) or if the
capacity of the reserved space is exceeded, the operator message
"OVERLAY REPPING ERROR" is issued and HASP operation is abortively
terminated.
HASP REP Routine - Page 6.4.3
304
HAS P
6.5
HASP ACCOUNTING ROUTINE
6.5.1
HASP Accounting Routine - General Description
The Accounting Routine accumulates statistics for each job at the
completion of the Punch phase and produces the HASP Account Card
(see Section 11) which is punched by the Punch Processor.
This
feature is optional and may be deleted at HASPGEN time.
6.5.2
HASP Accounting Routine - Program Logic
The HASP Accounting Routine is a separately assembled overlay segment which gains control at the end of the Punch phase.
Its function is to construct an accounting card such that the Punch
Processer can punch this card upon return.
Upon entry, the following registers contain the following information:
Register 1 - Address of the HASP Job Queue Entry Priority Byte.
Register 2 - Address of the Accounting Card Image Area.
Register 10 - Address of the HASP Job Control Table.
Register 14 - Return Address.
All registers must be saved and restored before return to HASP.
This routine blanks out the Accounting Card Image Area and then
extracts information from the HASP Job Control Table and HASP Job
Queue Entry and constructs the Accounting Card Image in the Accounting Card Image Area.
Special consideration is made for the clock
passing midnight.
In such cases the elapsed time is negative and
a correction factor (24 hours) must be added.
The accounting card which is normally punched when this routine
returns to the punch processor may be deleted by setting the
condition code to zero before returning.
HASP Accounting Routine - Page 6.5.1
305
HAS P
6.6
HASP DUMP ROUTINES
HASP provides two dump routines which are optionally included as
debugging aids. The HASP Dump Routine for printer formatted dumps
and the HASP High Speed Dump to Tape Routine are discussed in the
following sections.
6.6.1
HASP Dump Routine - General Description
The $Dump routine is available as a debugging aid (effective only
if &DEBUG=YES) and will, when the console PSW RESTART key is depressed, dump memory according to specified limits.
6.6.2
HASP Dump Routine - Program Logic
This routine gains control via the PSW RES~ART key on the console.
Upon activation of the key, a specially formatted HASP PSW is loaded
from location HEX'O'. The format is HEX'0004000F' for the first
word; where· 0004 is the mask that allows only· a machine check interrupt, and OOOE is the address of the printer that is referenced in
the routine. The second word will contain the address of the $Dump
routine of HASP.
.
.once activated, $Dump will reference the low core address of HEX'34'
for its beginning limit. This limit defaults to a value that will
dump all of the memory unless the operator changes the limit prior
to pushing the PSW RESTART key. If· a change is desired, the limit
should be entered at its location in the following format:
HEX'OOXXXXXX'. Also, if an operator should care· to change the limit
while $Dump is activated, the routine will immediately note a change,
will immediately stop the previous dump, and will start dumping memory from the new limit. It should be noted at this point that a
machine check will destroy the limit values within their position
in core. To avoid undetected machine checks, however, the dump program is, at all times, enabled for machine check interrupts.
The routine also allows the operator to route the printing to a
printer with an address other· than HEX'OOE'. A change of the
printer address in the HASP preformatted PSW, prior to activation
of $Dump, will accomplish this.
At the normal end of the routine, the system will be placed in a
"wait" state via the LPSW command. At this point in time, the registers will have been restored back to their values prior to $Dump
and the default limits of $Dump will have been returned to their
respective values.
HASP Dump Routines - Page 6.6.1
306
HAS P
6.6.3
HASP HIGH SPEED DUMP TO TAPE ROUTINE - GENERAL DESCRIPTION
The High Speed Dump to Tape Routine, available as an optional
debugging aid, dumps all of main storage to tape for post
processing by the IBM System/360 Operating System Service
Aids program IMDPRDMP or an equivalent processor.
6 .6. 4
HASP HIGH SPEED DUMP TO TAPE ROU'l'INE - PROGRAM LOGIC
ENTRY TO IDMTAPE - If the system programmer sets the HASPGEN
parameter &DMPTAPE to the address of an attached magnetic tape
drive the High Speed Dump to Tape Routine (IDMTAPE) will be
created to write on the specified drive when entered. Initialization will display on the operator's console the message
"SET RESTART PSW TO 0004000000aaaaaa FOR TAPE DUMP" where
"aaaaaa" is the address of the entry point IDMTAPE. This
message not only verifies that the routine is present; it is
sufficient information for the operator to manually activate
the dump. Via the REP processing routine or via manual key
entries the system programmer or operator is able to insert
code within the system to detect errors and cause dumps by
program entry to the routine simulating the loading of the
requested PSW.
(Example: set program new PSW as directed to
dump on the first program check.)
IDMTAPE assumes that the device generated is an appropriate
tape drive to use, that the tape is at load point ready for
writing, and that the recording mode status is correctly set.
If these conditions are not true unpredictable results will
occur.
CHANGING THE TAPE ADDRESS - The halfword located in storage
at IDMTAPE-4 contains the address of the tape drive upon which
the routine will write when entered. This address may be
altered manually to any other tape drive address as appropriate
prior to executing the routine.
PROGRAM LOGIC - The general registers and selected fixed
storage areas are saved in location 84 hexadecimal to be
compatible with the OS Service Aids dump program.
HASP control section locator elements are moved into low
storage adjacent to the fixed area information. These elements
contain the last four characters of the "HASPxxxx" control
section names of basic assembly modules. Following each CSECT
identification is the address of the beginning of the identified CSECT.
(HASP control sections may then be easily located
in the dump after post processing.) Location 80 hexadecimal
HASP Dump Routines - Page 6.6.2
307
HAS P
is set to the negative of address 2048. Location 80 hexadecimal
for 4 bytes is written followed by 2048 bytes of storage (first
part of which contains saved data).
Each succeeding record is written by adding the address 2048
to the address in location 80 (hex), storing the memory protect
key in the high byte, "and writing 2052 bytes of storage (four
from location 80 (hex) and 2048 from the designated address) .
When the address is greater than zero the program new PSW is
set to provide an end of storage exit which, when entered,
will cause the writing of EOF, a rewind unload, and the loading
of a wait state PSW.
HASP Dump Routines- Page 6.6.3
308
HAS P
7.0
HASPGEN AND RMTGEN PARAMETERS
This section.describes the parameters used to specify
the HASP System,' HASP MULTI-LEAVING Remote Terminal
Programs, and the System/360 Model 20, STR Remote
Terminal Program.
Generation of the HASP System is. called HASPGEN, and
generation of the HASP MULTI-LEAVING Remote Terminal
Programs and the System/360 Model 20 STR Program
for HASP Remote Job Entry is called RMTGEN.
Both
generation processes are described in Section 10.
HASPGEN and RMTGEN Parameters - Page 7.0.1
309
H.
ASP
7.1
HASPGEN PARAMETERS
Generation of a HASP System invplves specification
of cer~ain parameters, called HASPGEN parameters.
With these parameters, the installatiqn system
p~ogrammer specifies the characteristics of the
System/360 or System/370 with which he will use
HASP and the optional HASP features he wishes to b~
included in the generated HASP System.
The following pages describe ~he HASPGEN parameters.
For each parameter there is an explanat~on, the default value, and frequently notes which expand upon
the explanation and refer to related HASPGEN
parameters.
The H~SPGEN parameters are given in alphabetical order
(neglecting the first character if it is & or $)
except for parameter $$x, which appears last.
HASPGEN Parameters - Page 7.1.1
310
&ACCTNG
HAS P
&ACCTNG
Explanation: Variable symbol &ACCTNG specifies the
HASP job accounting option. If it is specified as
YES, HASP will call the HASP accounting routine and
punch a HASP,accounting card for each job processed
by HASP. The specification must be either YES or NO.
Default:
&ACCTNG=YES
Notes:
1.
The HASP accounting routine and the HASP accounting card are dis6ussed in other sections
of this manual.
2.
If &NUMPUNS=O, parameter &ACCTNG should he
set to NO.
HASPGEN Parameters - Page 7.1.2
311
&AUTORDR
HAS P
&~UTORDR
Explanation: Variable symbol &AUTORDR specifies
the inclusion or exclusion of code in HASP to recognize automatically when a physical card reader
available to HASP becomes ready. The specification
must be either YES or NO.
Default:
&AUTORDR=YES
Notes:
1.
If &AUTORDR=NO, HASP's physical card readers
remain in the INACTIVE state when they become
ready; the operator must issue a $SRDRn command
to cause HASP to begin reading cards from
READERn.
HASPGEN Parameters - Page 7.1.3
312
&BSCCPU
HAS P
&BSCCPU.
Explanation: Variable symbol &BSCCPU specifies inclusion
or exclusion in the HASP Remote Terminal Access Method
of support for HASP MULTI-LEAVING Remote Job Entry.
Default:
&BSCCPU=NO
HASPGEN Parameters - Page 7.1.4
313
&BSC2770
HAS P
&BSC2770
Explanation: Variable symbol &BSC2770 specifies inclusion or exclusion in the HASP Remote Terminal Access
Method of Remote Job Entry support for the 2770 Data
Communication System. The specification must be either
YES or NO.
Default:
&BSC2770=NO
HASPGEN Parameters - Page 7.1.5
314
HAS P
&BSC2780
&BSC2780
E~lanation:
Variable symbol &BSC2780 specifies inc1u810n or exclusion in the 'HASP Remote Terminal Access
Method of Remote Job Entry support for the 2780 Data
Transmission Terminal. The specification must be
either YES or NO.
Default:
&BSC2780=NO
HASPGEN Parameters - Page 7.1.6
315
&BSC3780
HAS P
&BSC3780
Explanation: Variable symbol &BSC3780 specifies
inclusion or exclusion in the HASP Remote Terminal
Access Method of Remote Job Entry support for the
3780 Data Communications Terminal. The specification must be either YES or NO.
.
Default:
&BSC3780=NO
HASPGEN Parameters - Page 7.1.6.1
315.1
HAS P
&BSHPRES
&BSHPRES
Explanation: Variable symbol &BSHPRES specifies
inclusion or exclusion in the HASP Remote Terminal
Access Method of support for the Space Compression/
Expansion feature of 2770 and 3780 terminals. The
specification must be either YES or NO.
Default:
&BSHPRES=NO
Notes:
1.
This support must be included if any terminal
will transmit to HASP using the Space
Compression/Expansion feature.
2.
Use of this support for 'output to any terminal is controlled by specification in the
RMTnn parameter for that terminal.
HASPGEN Parameters - Page 7.1.6.2
315.2
&BSHPRSU
HAS P
&BSHPRSU
Explanation: Variable symbol &BSHPRSU specifies inclusion or exclusion of the HASP Remote Job Entry Printer
Interrupt feature for binary synchronous hardware
terminals. If this feature is included, the Remote
Terminal operator may interrupt printing to transmit
jobs or HASP commands to HASP. The specification
must be either YES or NO.
Default:
&BSHPRSU=YES
Notes:
1.
If &BSHPRSU=YES, HASP will recognize certain
control characters from the binary synchronous
hardware terminal which indicate that the printer
has stopped. The HASP Remote Terminal Operator's
Manual for hardware terminals contains more information.
HASPGEN Parameters - Page 7.1.7
316
HASP
&BSHTAB
&BSHTAB
Explanation: Variable symbol &BSHTAB specifies inclusion or exclusion in the HASP Remote Terminal
Access Method of support for the Printer Horizontal
Format Control feature of 2770, 2780, and 3780 terminals. The specification must be either YES or NO.
Default:
&BSHTAB=YES
Notes:
1.
Use of this support for any terminal is controlled by specification in the RMTnn parameter for that terminal.
HASPGEN Parameters - Page 7.1.7.1
316.1
HAS P
$BSPACE
$BSPACE·
Explanation: Ordinary symb.ol $BSPACE specifies the
character which will be interpreted as the 360 hardware defined hackspace character X'16'. The $BSPACE
character when entered on any OS controlled system
operator console will be removed from the command
text along with the previously entered character (if
any). Characters following the $BSPACE character
will be shifted ,left to replace the removed characters. The $BSPACE-edit is performed on all commands
entered via OS system operator command input sources
regardless of its position within the text of the
data entered. $BSPACE is active only for HASP Systems using the &NUMCONS=O option and does not apply
to HASP card reader or remote workstation sources.
$BSPACE is specified using the two hexadecimal digit
representation of the EBCDIC character.
Default:
$BSPACE=5F
Notes:
1.
The default specification indicates that the
EBCDIC character "~" is to be used to backspace command entry on OS controlled system
operator consoles.
2.
The character selected for the backspace function must be chosen with extreme caution since
it eliminates the use of that character (except
as a backspace operation) in all commands and
replies to WTORs.
HASPGEN Parameters - Page 7.1.7.2
316.2
HAS P
&BSVBOPT
&BSVBOPT
Explanation: Variable symbol &BSVBOPT specifies inclusion or exclusion in the HASP Remote Terminal Access
Method of code to recognize an EM (End of Media) punch
in card images transmitted nontransparently by the
2780 Data Transmission Terminal. The specification
must be either YES or NO.
Default:
&BSVBOPT=NO
HASPGEN Parameters - Page 7.1.8
317
&BUFHICH
HAS P
&BUFHICH
Explanation: Variable symbol&BUFHICH specifies the
storage hierarchy for which HASP initialization will
issue a GETMAIN in an attempt to get more than &NUMBUF
buffers for HASP. The specification must be either
o or 1.
Default:
&BUFHICH=l
Notes:
1.
&BUFHICH has meaning only with OS storage hierarchy support.
2.
See HASPGEN parameters &NUMBUF, &MINBUF and
&RESCORE for additional information concerning
the use of this parameter.
HASPGEN Parameters - Page 7.1.9
318
HAS P
&-8 UFS I ZE
&BUFSIZE
Explanation: Variable symbol &BUFSIZE specifies the
size in bytes of each HASP buffer. If the value
specified is not a multiple of eight, HASPGEN will
adjust it upward to a multiple of eight. The specification must be an integer not larger than the track
size of any SPOOL device and not smaller than the
number given by
300+2*&NUMDA*&NUMTGV/8+5*S+8*F
where S = maximum allowable number of SYSOUT
speci~ications per job, including
special' forms requests
F = maximum allowable number of special
forms requests per job.
Default:
&BUFSIZE=688
Notes:
1.
The above formula is. the approximate size of a
HASP control block called the JCT.
&BUFSIZE is
the data length of each physical record on the
portion of a SPOOL volume used by HASP, and
JCTs are written on SPOOL volumes. A JCT's initial size is about 300 + 2*&NUMDA*&NUMTGV/8; it
increases in size as a job is being executed.
When HASP recognizes a job step change, the JCT
is increased in size by five bytes for each n6nspecial-forms SYSOUT data set, or by thirteen
by~es for each speci~l-forms SYSOUT data set,
that was written upon since the previouslyrecognized step change. But if an increase of
five (or thirteen) bytes would cause the JCT
size to become greater than &BUFSIZE, HASP instead writes to operator the me'ssage
JeT OVERFLOW--OUTPUT LOST
for the SYSOUT data set, and its output is lost.
2.
The default &BUFSIZE of 688 is optimized for the2314 track size.
If &NUMTGV and &NUMDA are left
at their default values of 400 and 2, the
&BUFSIZE default allows a maximum of 37-- (no
speoia1 forms>' and a minimum of 14 (all special
forms) SYSOtiT data sets per job. A good value
of &BUFSIZE optimized for the 3330 would be 736.
3.
&BUFSIZE must be 416 or greater if &XBATCHC is
altered from its default null value.
4~
&BUFSIZE must be 536 or greater if 3211 printers
are used by HASP.
HASPGEN Parameters - Page 7.1.10
319
$CKPTIME
HAS P
$CKPTlME
Explanation: Ordinary symbol $CKPTIME specifies the
interval, in seconds, at which certain HASP information will be checkpointed for warm start purposes·.
Default:
$CKPTlME=60
Notes:
1.
The time interval specified is a maximum. Checkpoints are also taken when a job changes its
status in the HASP job queue.
2.
The section of this manual describing the HASP
checkpoint processor describes the checkpoint
information.
HASPGEN Parameters - Page 7.1.11
320
&CLS(n)
HAS P
&CLS(n)
Explanation: Subscripted variable symbols &CLS(n)
specify HASP job classes. The nth HASP logical
partition may select for OS execution a job from
the HASP job queue only if the job's class (specified
by the user in the CLASS=parameter of the JOB card,
or defaulted to A) is one of the characters specified
in the &CLS(n) parameter or specified by the operator
in the set command, $T Imm,list (where &PID(n)=mm).
Each specification must be a 1- to 8-character string
of valid HASP job classes. The same HASP job class
may be specified in two or more specifications.
Default:
&CLS(l)=A
&CLS(2)=BA
&CLS(3)=CBA
&CLS(4)=DCBA
&CLS(S)=EDCBA
&CLS(6)=FEDCBA
&CLS(7)=GFEDCBA
&CLS(8)=HGFEDCBA
&CLS(9)=IHGFEDCB
&CLS(lO)=JIHGFEDC
&CLS(ll)=KJIHGFED
&CLS(12)=LKJIHGFE
&CLS(13)=MLKJIHGF
&CLS(14)=NMLKJIHG
&CLS(15)~ONMLKJIH
Notes:
1.
Only the first &MAXPART specifications, &CLS(l)
through &CLS(&MAXPART), will be used.
2.
If &MAXCLAS is specified less than 8, only the
first &MAXCLAS characters of each specification
&CLS(n) will be used.
HASPGEN Parameters - Page 7.1.12
321
&CONAUTH
HAS P
&CONAUTH
Explanation: Variable symbol &CONAUTH specifies the
HASP command authorization of each of the eight possible
HASP physical consoles when HASP console support is
included in the generated HASP system. The specification must be a string of up to eight numeric digits,
each of which may range from 0 to 7 and is the sum
of the desired authorizations for its respective
console (leftmost digit for CONSOLE 1, next digit
for CONSOLE2, etc.) as follows:
1 - System Control (including OS) Commands
2 - Device Control Commands
4 - Job Control Commands.
Default:
&CONAUTH=77777777
Notes:
1.
Any HASP console's command authorization may be
changed from a console with System Control
Command authority.
2.
If &NUMCONS=O, parameter &CONAUTH is not used.
3.
All HASP consoles are authorized for the issuance
of Display Commands.
HASPGEN Parameters - Page 7.1.13
322
Ii ASP
&DEBUG
&DEBUG.
Explanation: Variable symbol &DEBUG specifies inclusion or exclusion of debugging code in the generated HASP system. The specification must be either
YES or NO.
Default:
&DEBUG=NO
Notes:
1.
The &DEBUG option is independent of the &TRACE
option.
2.
If &DEBUG is specified as YES, HASP includes,
in addition to other debugging code, a core
dump routine.
HASPGEN Parameters - Page 7.1.14
323
$DELAYCT
HAS P
$DELAYCT
I
Explanation: Ordinary symbol $DELAYCT specifies a
delay factor to be applied by the HASP Remote Terminal Access Method when transmitting to a Multi-Leaving
System/360 Model 20 Submodel 2 or 4 Remote Terminal
over a high-speed (19,200 baud or greater) teleprocessing line, to avoid the possibility of certain line
errors. The specification must be an integer greater
than zero. Recommended values for some central CPUs
are:
Model
Model
Model
Model
Model
Model
Model
Model
Model
Model
Model
195
91
85
165
75
65
155
50
145
135
40
-
8000
4000
3000
3000
500
256
256
100
100
50
1
Values for other CPUs may be interpolated based on
CPU speed.
Default:
$DELAYCT=256
HASPGEN Parameters - Page 7.1.15
324
&DMPTAPE
HAS P
&DMPTAPE
Exelanation: Variable symbol &DMPTAPE specifies a
un~t address to be used with the HASP dump program.
The specification must be a valid unit address.
If
the specification is not 000, the address is assumed
to be that ofa tape drive and the generated HASP
system will include a dump-to-tape program for that
tape drive. The tape produced by this program may
be printed using FE Service Aid IMDPRDMP.
Default:
&DMPTAPE=OOO
Notes:
1.
This parameter does not affect inclusion of the
HASP dump-to-printer program, which is always
assembled if &DEBUG=YES. To use the dump-to-tape
program the operator must set location 0 as indicated in an operator message produced by HASP
initialization, make the tape drive ready for
writing, and push PSW RESTART.
2.
This facility is provided as an aid to the
system programmer and may not operate correctly
in all environments or with other than the
IMDPRDMP program provided with Release 19 of
as. No maintenance will be provided for this
facility.
Installations unable to utilize this
support as distributed should utilize the service
aid IMDSADMP to produce dump tapes.
HASPGEN Parameters - Page 7.1.16
325
HAS P
$ESTIME
$ESTIME
Explanation: Ordinary symbol $ESTlME specifies
the default estimated execution time, in minutes,
for a job. The specification must be an integer
greater than zero.
Default:
$ESTlME=2
Notes:
1.
If a user does not specify in the accounting
field of his job card a value for estimated
execution time, the value $ESTIME is used.
2.
All timings performed by HASP are in real
time. The timing for estimated execution
time begins when HASP allows its OS Reader/
Interpreter to start reading the job.
HASPGEN Parameters - Page 7.1.17
326
HAS P
$ESTLNCT
$ESTLNCT
Explanation:
Ordinary symbol $ESTLNCT specifies
the default estimated print line count, in thousands of lines, for a job. The specification must
be an integer greater than zero.
Default:
$ESTLNCT=2
Notes:
1.
If a user does not specify in the accounting
field of his job card a value for estimated
print line count, the value $ESTLNCT is used.
HASPGEN Parameters - Page 7.1.18
327
HAS P
$ESTPUN
$ESTPUN
Explanation: Ordinary symbol $ESTPUN specifies
the default estimated punched card count, in cards,
for a job. The specification must be an integer
greater than zero.
Default:
$ESTPUN=lOO
Notes:
1.
If a user does not specify in the accounting
field of his job card a value for estimated
card count, the value $ESTPUN is used.
HASPGEN Parameters - Page 7.1.19
328
HAS P
&FCBV
&FCBV
Explanation: Variable symbol &FCBV specifies inclusion or exclusion of the 3211 Variable Forms
Control Buffer loading capability. If set to YES,
the "V" specified FCB image is generated and the
code to support the $TF ..• command is included.
The specification must be either YES or NO.
Default:
&FCBV=NO
HASPGEN Parameters - Page 7.1.19.1
328.1
HAS P
(The remainder of this page intentionally left blank.)
328.2
&INITSVC
HAS P
&INITSVC
Explanation: Variable symbol &INITSVC specifies the
SVC number of the HASP SVC. The specification must
·be an integer between 200 and 255, inclusive.
Default:
&INITSVC=255
Notes:
1. The specification for &INITSVC must correspond
to a use at SYSGEN time of the OS SYSGEN macroinstruction SVCTABLE. The HASP SVC is a type-l
SVC and must be included in the OS Nucleus before
HASP can be used. After HASPGEN has completed,
the object deck for the HASP SVC is member
HASPSVC of partitioned data set SYS1.HASPOBJ.
For further discussion, see the section on installing HASP.
HASPGEN Parameters - Page 7.1.20
329
&JITSIZE
HAS P
&JITSIZE
E~anation:
Variable symbol &JITSIZE specifies the
n
er of bytes per entry of the HASP job information
table. The specification must be an integerrgreater
than or equal to 8, or equal to 0, but never so large
that the value
&MAXJOBS*&JITSIZE
is greater than the track size of the device upon
which SPOOLI is mounted.
I
If &JITSIZE=O, the HASP commands with OS job names
as operands will be inoperative.
Default:
&JITSIZE=O
Notes:
1., The recommended specifications for &JITSIZE are
\ 0 and 8. If &JITSIZE is set greater than 8,
the additional space generated in the job information table will not be used by HASP.
2.
If &JITSIZE is specified greater than zero, the
job information table will be checkpointed on
SPOOLI whenever it changes.
HASPGEN Parameters - Page 7.1.21
330
$LINECT
HAS P
$LINECT
Explanation: Ordinary symbol $LINECT specifies the
default maximum number of lines to be printed per
page of a job's printed output.
Default:
$LINECT=61
Notes:
1.
If a user does not specify in the accounting
field of his job card a value for line count,
the value $LINECT is used.
2.
Setting $LINECT=O will cause automatic page
overflow, normally provided by HASP, to be suppressed unless overridden by the job card accounting parameter (see note 1) .
3.
If a print data set 1S generated without any
ejects (no skips to any channel in the carriage
tape), and if $LINECT=O or if the "linect"
parameter on the job card of the job producing
the data set is zero, then that data set will
be treated as one page when forward spaced,
backspaced, interrupted, or warm started while
printing.
HASPGEN Parameters - Page 7.1.22
331
LINEmm
HAS P
LINEmm
Explanation: Ordinary symbols LINEmm specify the
characteristics of teleprocessing lines to be used
by HASP Remote Job Entry. Lines must be defined consecutively, starting with LINEOI. Each specification
must be a 5-character string of the form
LINEmm=aaalc
where the letters represent the following:
Code Letters
nun
Range
01-99
aaa
OOO-FFF
1
0-5
Descript.ion
Line Number
STR or BSC Adapte'r Address (See Note 2)
Line Description as follows:
STR Lines
0 = Interface A
1 = Interface A
2 = Interface A
3 = Interface B
4 = Interface B
5 = Interface B
1
0-5
-
2 wire Half-Duplex
4 wire Half-Duplex
Full-Duplex
2 wire Half-Duplex
4 wire Half-Duplex
Full-Duplex
BSC Lines
0
1
2
3
4
5
= Interface
= Interface
= Interface
= Interface
= Interface
= Interface
A - Half-Duplex
baud) .
A - Full-Duplex
baud)
A - Full Duplex
k-baud)
B - Half-Duplex
baud)
B - Full-Duplex
baud)
B - Full-Duplex
k-baud)
(1200-9600
(1200-9600
(19.2-230.4
(1200-9600
(1200-9600
(19.2-230.4
Clock/Code as follows:
c
0-3
STR Lines
0 = Internal
1 = Internal
2. = Internal
3 = External
Clock X
Clock y
Clock Z
Clock
HASPGEN Parameters - Page 7.1.23
332
HAS P
Code Letters
Range
0-7
DescriEtion
BSC Lines
0
1
2
3
4
5
6
7
Default:
.- Code A - EBCDIC - No Transparency
=
=
=
=
=
=
=
Code
Code
Code
Code
Code
Code
Code
A
A
A
B
B
B
B
-
EBCDIC - Transparency
USASCII - No Transparency
USASCII - Transparency
EBCDIC - No Transparency
EBCDIC - Transparency
USASCII - No Transparency
USASCII - Transparency
LINEmm=***Ol
Notes:
1.
Parameter &NUMLNES must specify the number of
specifications LINEmm to be included in the generated HASP system.
2.
The unit address aaa may be specified as ***.
HASP initialization will assign unit addresses
to lines whose unit addresses are specified as
*** by scanning the OS UCBs. A teleprocessing
UCB whose device type field specifies a 2701
STR adapter, a 2701 BSC adapter, or a 2703 BSC
adapter will be recognized as a UCB defining a
line. If the unit address of such a UCB is not
specified explicitly in' any of the first &NUMLNES
line definitions LINEmm, HASP initialization
will assign the UCB to the first line number
whose unit .address is specified *** and will
change the *** to the EBCDIC address specified
in theUCB, unless no line definition remains whose
unit address is ***, or if (except for M65MP and
a2-CPU multiprocessor) a TIO shows the line riot
operational, or if (for M65MP and a 2-CPU multiprocessor) the UCB is marked off-line: in that
case HASP will not use the line.
3.
If a line specification LINEmm designates USASCII,
that line cannot be used with any but 2770 and
2780 USASCII terminals. HASP will translate each
record it receives into EBCDIC, and each record
it transmits into USASCII before transmission.
HASPGENParameters - Page 7.1.24
333
&LOGOPT
HAS P
&LOGOPT
Explanation: Variable symbol &LOGOPT specifies inclusion or exclusion of code to support the HASP
System Log feature. The specification should be
either YES or NO.
Default:
&LOGOPT=YES
Notes:
1.
The HASP System Log is a listing included in
each user's output of console messages that
were produced during processing of the job and
of replies to WTORs issued during processing
of the job.
2.
If &LOGOPT=YES, the HASP System Log may be
suppressed on an individual job basis through
a parameter in the accounting field of the
job card.
3.
If ·the HASP System Log is suppressed, the HASP
statistics information normally printed with
the job is also suppressed.
HASPGEN Parameters - Page 7.1.25
334
&MAXCLAS
HAS P
&MAXCLAS
Explanation: Variable symbol &MAXCLAS specifies
the maximum number of job classes which may be
specified via the HASP command $T In,list for a
HASP logical partition. The specification must
be an integer from 1 to 64, inclusive.
Default:
&MAXCLAS=8
Notes:
1.
If &MAXCLAS is specified as less than 8, then
no more than &MAXCLAS characters may be specified for each of the parameters &CLS(n).
HASPGEN Parameters - Page 7.1.26
335
HAS P
&MAXJOBS
&MAXJOBS
Explanation: Variable symbol &MAXJOBS specifies the
maximum number of jobs that can be in the HASP System
at any given time., The specification must be an
integer greater than zero.
Default:
&MAXJOBS=lOO
Notes:
1.
This variable does not affect the range of
HASP job numbers, which is 1 to 999.
2.
This variable strongly influences the size of
the HASP checkpoint record(s). The size of
the first checkpoint record is
16* (&MAXJOBS+&NUMPRTS+&NUMTPPR) +
&NUMDA*((&NUMTGV+7)/8)+40.
The size of the second checkpoint record is
&MAXJOBS*&JITSIZE.
If either checkpoint is longer than. the track
size of the device on which SPOOLl is mounted,
HASP will not warm start correctly.
HASPGEN Parameters - Page 7.1.27
336
H
~
S P
&MAXPART
&MAXPART
Explanation: Variable symbol &MAXPART specifies,
for both MFT and MVT, the number of HASP logical
partitions to be defined. The specification must
be an integer between 1 and 15, inclusive.
Default:
&MAXPART=&MAXXEQS
Notes:
1.
The nth logical partition is further defined
by the specifications &PRI(n), &OSC(n), and
&CLS(n) •
HASPGEN Parameters - Page 7.1.28
337
HAS P
&MAXXEOS
&MAXXEQS
Explanation: Variable symbol &MAXXEQS specifies
the maximum number of jobs which may concurrently
be active in the HASP Execution phase. The specification must be an integer greater than zero.
Default:
&MAXXEQS=3
Notes:
1.
See also &MAXPART, the variable which determines the number of HASP logical partitions.
HASPGEN Parameters - Page 7.1.29
338
HAS P
&MINBUF
&MINBUF
Explanation: This variable is provided to allow installations, which depend on the dynamic buffer construction
feature of HASP, to detect the condition where sufficient
buffers for proper operation cannot be obtained. The
specification should be an integer value representing
the minimum number of buffers determined as necessary
for the installation (see &NUMBUF).
Default:
&MINBUF= 3*&MAXXEQS+2*&NUMRDRS
+&NUMINRS+2*&NUMPRTS+&NUMPUNS
+&NUMTPBF
Notes:
1.
HASP wiil automatically attempt to utilize, via a
variable GETMAIN, any free space in its region or
partition (hierarchy indicated by &BUFHICH) as
additional buffers. If .the number of buffers so
obtained when added to the variable &NUMBUF is less
than the value of &MINBUFthe warning message
&MINBUF BUFFERS NOT AVAILABLE
will be issued during HASP initialization and processing will continue.
2.
Since the changing of HASPGEN options, local
modifications and/or OS changes can affect the
number of HASP buffers, proper setting of this
variable can prevent a possible undetected performance degradation.
3.
See the des.cription of HASPGEN parameters &NUMBUF,
&BUFHICH and &RESCORE for related information.
HASPGEN Parameters - Page 7.1.30
339
HAS' P
&MLBFSIZ
&MLBFSIZ
Explanation: Variable symbol &MLBFSIZ specifies the
size in bytes of each HASP Multi-Leaving buffer.
The specification for &MLBFSIZ must be a positive
integer no larger than &TPBFSIZ.
Default:
&MLBFSIZ=400
Notes:
1. The value specified for &MLBFSIZ automatically
becomes the Multi-Leaving buffer size in each
HASP Multi-Leaving Remote Terminal program.
2.
Satisfactory support of one device of each type
(reader, printer, punch, console) on 8K terminal CPUs is based on the assumption that
&MLBFSIZ=400 or less. If the supported terminals include any 8K CPUs, it is recommended
that &MLBFSIZ not be increased above 400, even
if support of a non-programmable terminal requires increasing &TPBFSIZ to 512.
HASPGEN Parameters - Page 7.1.31
340
&MONINTV
HAS P
&MONINTV
Explanation: Variable symbol &MONINTV specifies the
interval in seconds at which the HASP Execution Task
Monitor will examine CPU utilization characteristics
and, if necessary, modify dynamically the order in
the TCB chain, of all HASP-controlled job step tasks
which fit Execution Task Monitor criteria. The specification should be an integer between 0 and 10 inclusive. If &MONINTV is specified as zero, the Execution
Task Monitor is excluded from the generated HASP
system.
Default:
&MONINTV=5
Notes:
1.
See also parameters &XZPRTY (for MVT), &XZMFTL,
and &XZMFTH (for MFT).
2.
as Time Slice Groups must not be assigned to
the priority level or partitions monitored by
the Execution Task Monitor.
3.
Users must not specify TIME=1440 in job or
execute cards. Such specifications will cause
the jobstep TQE not to be created by OS thus
forcing the job HIGH in the dynamic group.
HASPGEN Parameters - Page 7.1.32
341
&NOPRCCW
HAS P
&NOPRCCW
Explanation: Variable symbol &NOPRCCW specifies the
maximum number of channel command words per channel
program for local printers.
Default:
&NOPRCCW=lS
HASPGEN Parameters - Page 7.1.33
342
HAS P
&NOPUCCW
&NOPUCCW
Explanation: Variable symbol &NOPUCCW specifies the
maximum number of channel command words per channel
program for local punches.
Default:
&NOPUCCW=lO
HASPGEN Parameters - Page 7.1.34
343
&NUMBUF
HAS P
&NUMBUF
Explanation: This variable symbol indicates the number
of INPUT/OUTPUT buffers to be included in the HASP
load module and should normally be set by each installation, according to the formulae below, to reflect the
total number of buffers required for proper operation
of HASP. However, since HASP will automatically utilize
free space in its region or partition to dynamically
construct additional buffers, there are circumstances
when &NUMBUF may be set to a value less than the actual
number of buffers required for proper HASP operation.
In this case, it is assumed that sufficient additional
buffers will be dynamically obtained from free storage
in the HASP region/partition to provide an adequate
total number of buffers (see &MINBUF and &RESCORE).
This facility could be used, for example, to allow
additional buffers to reside in a storage hierarchy
different from that of the HASP load module (see &BUFHICH)
or to provide a HASP whose size (and performance and
function) can be controlled by the ~etting of the region
or partition size.
Default:
&NUMBUF=IS
Notes:
1.
In order to utilize all the dynamic storage contained in the" HASP load module for the initialization
process, the value of &NUMBUF must never be less
than the value
1+6000/(80+&BUFSIZE)
2.
Since all HASP .buffers are maintained in a dynamic
pool until required by an active function, installation should determine the appropriate number of
buffers for HASP based on predicted simultaneity
of the various functions required at the installation. The following indicates the number of buffers
required for each logical function.
A defined
function which is inactive requires no buffers.
Each
Each
Each
Each
Each
Each
Each
Each
local input function
internal reader
Remote Input function
local print function
remote print function
local punch function
remote punch function
OS job execution
--2
--1
--1
--2
--1
--1
--1
--2
(I if $PRTBOPT=l)
(2 if $RPRBOPT=2)
(2 if $PUNBOPT=2)
(2 if $RPUBOPT=2)
(minimum value)
HASPGEN Parameters - Page 7.1.35
344
HAS P
For performance reasons, additional buffers must
be available to sustain periods of hiqh SYSIN/
SYSOUT activity by jobs being processed by os.
It is therefore recommended that additional buffers
(beyond the, requirements indicated above) be included corresponding to the value: l+&MAXXEQS.
3.
SEVERE PERFORMANCE AND/OR DEVICE DEGRADATION CAN
OCCUR IN A SYSTEM CONTAINING INSUFFICIENT BUFFERS
TO PERFORM THE REQUIRED FUNCTIONS.
To avoid a complete system failure caused by a
buffer "lock-out" condition, the number of available
buffers must never be less than the value
. &MAXXEQS+&NUMRDRS+&NUMTPES+l
+&NUMPRTS*($PRTBOPT-l)
+&NUMPUNS*($PUNBOPT-l)
+&NUMTPPR*($RPRBOPT-l)
+&NUMTPPU*($RPUBOPT-l)
HASPGEN Parameters - Page 7.1.36
345
HAg. P
&NUMCONS
&NUMCONS
Explanation: Variable symbol &NUMCONS specifies the
type of console support to be provided by HASP. Two
options are available: console support controlled
totally by HASP or a HASP interface to the standard
OS Console processors.
The specification &NUMCONS=n (n an integer between
one and eight) causes HASP to support directly as
many as n consoles. The devices which may be used
as consoles are 1052, 1053, 3210, 3215, 2260 and
1443. The 1053s and 2260s must be attached locally
via a 2848.
The specification &NUMCONS=O causes HASP to interface
with the OS console support, including the MeS option. All devices available with the OS console
routines are supported through this interface.
Default:
&NUMCONS=O
Notes:
1.
If &NUMCONS=O is specified, then all HASP functions with the exception of those listed below
are provided.
2.
a.
Non-HASP Message, e.g., problem program
WTOs, will appear on the console(s) without time tags or HASP Job numbers. A copy
of the message which includes the Job number and time tag is placed in the HASP
System Log.
b.
WTORs issued by the problem program will
be included in the HASP Log without the
OS assigned reply identification number.
c.
Only the first line of multi-line WTOs
isiued by pr6blem programs running under
HASP will be included in the HASP Systems
Log.
If OS Multiple Console Support or M65MP or the
Time Sharing Option have been SYSGENed and are to
be used with HASP, then &NUMCONS should be specified as -zero.
HASPGEN Parameters - Page 7.1.37
346
HAS P
3.
If &NUMCONS greater than zero is specified and if
HASP initialization finds more than &NUMCONS devices of the type supported then the message
MAXIMUM OF &NUMCONS CONSOLE(S) EXCEEDED
is issued and HASP uses as consoles the devices
with the lowest unit addresses starting with the
first 1052, 3210 or 3215 and continuing with the
next &NUMCONS-1 devices.
I
4.
2260 and 1053 support (&NUMCONS greater than
zero) is dependent on additional specifications
via the variables &SIZ2260 and &SPD2260.
5.
If &NUMCONS is specified greater than zero, HASP
will intercept and process all WTOs and WTORs,
ignoring all MCS information. In particular,
HASP will ignore all routing codes. Thus, for
example, a WTO with ROUTCDE=ll will be written
on HASP consoles and on the HASP System Log but
not in an as System Message Block.
6.
See parameter &CONAUTH, &WTLOPT and &LOGOPT for
additional information.
7•
See Chapter 12, Section 12.7.2, for other restrictions on &NUMCONS>O.
HASPGEN Parameters - Page 7.1.38
347
HAS P
&NUMDA
&NUMDA
Explanation: Variable symbol &NUMDA specifies
the maximum number of direct-access volumes which
may be mounted concurrently as SPOOL volumes. The
specification must be an integer greater than zero.
Default:
&NUMDA=2
Notes:
1.
All direct-access devices except 2321s are
eligible for use as SPOOL devices.
2.
Specifying &NUMDA greater than the default may
require increasing the value of &BUFSIZE.
3.
If HASP initialization finds mounted more than
&NUMDA direct-access volumes whose volume
serials begin with the characters SPOOL, it
will write to operator the message
MAXIMUM OF &NUMDA SPOOL VOLUME(S) EXCEEDED
and HASP will quiesce.
4.
This variable influences the size of the HASP
checkpoint record; see Note 2 of variable
&MAXJOBS.
5.
An associated variable is &NUMTGV.
HASPGEN Parameters - Page 7.1.39
348
&NUMDDT
HAS P
&NUMDDT
Explanation: Variable symbol &NUMDDT specifies the
number of Data Definition Tables (DDTs) to be assem-bled into HASP. The specification should be an
integer between 3 and 256, and equal to
2 + &MAXXEQS + A + B + C + D + E
where
A = number of pseudo-2540 readers defined at
SYSGEN time
B = number of pseudo-2540 punches defined at
SYSGEN time
C = number of pseudo-1403 printers defined at
SYSGEN time
D = number of pseudo-1442 punches defined at
SYSGEN time
E = number of pseudo-1443 printers defined at
SYSGEN time
Default:
&NUMDDT=20
Notes:
1.
Pseudo-units for &RDR and &WTR need not be
counted in &NUMDDT.
HASPGEN Parameters - Page 7.1.40
349
\>
&NUMINRS
HAS P
&NUMINRS
Explanation: Variable symbol &NUMINRS specifies
the number of 2520 pseudo-punches to be used by the
generated HASP System as internal readers.
Default:
&NUMINRS=O
Notes:
1.
If &NUMINRS is specified as or defaulted to
zero, code to support the HASP internal reader
feature will be deleted from the generated
system.
2.
If more than &NUMINRS 2520 pseudo-punches have
been specified at SYSGEN time, only the first
&NUMINRS 2520 pseudo-punches can be used.
It
is permissible to specify &NUMINRS greater
than the number of 2520 pseudo-punches specified at SYSGEN time.
3.
The count of 2520 pseudo-punches is not
included in HASPGEN variable &NUMDDT.
HASPGEN Parameters - Page 7.1.41
350
HAS P
&NUMLNES
&NUMLNES
Explanation: Variable symbol &NUMLNES specifies
the largest teleprocessing line identi·fication
number (nun in LINEmm) and thus the number of line
definitions which are to be used by the generated
HASP System.
The specification must be an integer
between Q and 99 inclusive.
The specification for
&NUMLNES automatically becomes the specification
for &NUMRJE, unless &NUMRJE is specified explicitly.
Default:
&NUMLNES=Q
Notes:
1.
See also the HASPGEN variable LINEmm.
2.
If &NUMLNES is set to or left at zero, all
other Remote Job Entry parameters should
be left at their default values.
HASPGEN Parameters - Page 7.1.42
351
HAS P
&NUMOACE
&NUMOACE
Explanation: Variable symbol &NUMOACE specifies the
. number of overlay areas to be provided for the standard
HASP Overlay feature. The specification must be an
integer greater than zero.
Default:
&NUMOACE=l
Notes:
1.
It is judged that more than two overlay areas
will benefit only a system with high performance
orientation (a ~ery fast CPU or a work load consisting of a large number of short jobs).
2.
See also parameter &OLAYLEV.
HASPGEN Parameters - Page 7.1.43
352
HAS P
&Nl1MPRTS
&NUMPRTS
Explanation: Variable symbol &NUMPRTS specifies th~
maximum number of physical printers HASP may use to
print the printed output of jobs. HASP supports 1403
and 3211 printers. Th:e specification must be an
integer greater than zero.
Default:
I
&NUMPRTS=2
Notes:
1.
If HASP initialization finds more than &NUMPRTS
1403 and 3211 printers, it writes to operator
the message
MAXIMUM OF &NUMPRTS PRINTER(S) EXCEEDED
and continues normally, using as printers only
the &NUMPRTS printers with lowest unit
addresses.
•
2.
Regardless of the number specified for &NUMPRTS,
HASP will use only those 1403 and 3211 printers
which are operational (as.shown by a TIO) or
on-line (for M65MP only) when HASP is started.
3.
Handling of special forms by printer, the optional 1403 UCS buffer, and the 3211 UCS and
Forms Control buffers are explained as part of
the $T operator command.
4.
This variable influences the size of the HASP
checkpoint record; see Note 2 of variable
·&MAXJOBS.
5.&BUFSIZE must be 536 or greater if 3211 printers
are used by HASP.
HASPGEN Parameters - Page 7.1.44
353
&N UMP UN S
&NUMPUNS
Explanation: Variable symbol &NUMPUNS specifies
the maximum number of physical punches which will
be used by HASP to punch the punched output of
jobs. HASP s~pports 3525, 2540, 2520, and 1442
card punches. The specification must be an integer
greater than or equal to zero.
Default:
&NUMPUNS=l
Notes:
1.
If HASP initialization finds more than &NUMPUNS
3525, 2540, 2520 and 1442 punches, it writes to
operator the message
MAXIMUM OF &NUMPUNS PUNCH(S) EXCEEDED
and continues normally, using as printers only
the &NUMPUNS punches with lowest unit addresses.
2.
Regardless of the number specified for &NUMPUNS,
HASP will use only those 3525, 2540, 2520 and
1442 punches which are operational (as shown by
a TIO) or on-line (for M65MP only) when HASP is
started.
3.
If &NUMPUNS=O, parameter &ACCTNG should be set
to NO.
HASPGEN Parameters - Page 7.1.45
354
&NUMRDRS'
HAS P
&NUMRDRS
I
Explanation: Variable symbol &NUMRDRS specifies the
maximum number of physical card readers HASP may use
to read OS job streams. HASP supports 3505, 2540
and. 2501 card readers. The specification must be an
integer greater than zero.
Default:
I
I
&NUMRDRS=l
Notes:
1.
If HASP initialization finds more than &NUMRDRS
3505, 2540 and ·2501 card readers, it writes to
operator the message
MAXIMUM OF &NUMRDRS READER(S) EXCEEDED
and continues normally, using as readers only
the &NUMRDRS readers with lowest unit addresses.
2.
Regardless of the number specified for &NUMRDRS,
HASP will use only those 3505, 2540 and 250l
readers which are operational (as shown by a
TIO) . or on -line (for M6 5r~p only) when HASP is
started.
l
HASPGEN Parameters - Page 7.1.46
355
HAS P
&NUMRJE
&NUMRJE
Explanation: Variable symbol &NUMRJE specifies the
largest remote terminal identification number
(nn in RMTnn) and thus the number of remote terminal
definitions which are to be used by the generated
HASP System. The specification must be an integer
bet~een 0 and 99 inclusive.
Default:
&NUMRJE=&NUMLNES
Notes:.
1.
See also the HASPGEN variable RMTnn.
2.
If this variable is not specified and if
&NUMLNES is specified as an integer greater
than zero, the first &NUMLNES remote terminal
definitions RMTnn are used by the generated
HASP System, whether they are specified
explicitly or by default.
HASPGEN Parameters - Page 7.1.47
356
&NUMTGV
HAS P
&NUMTGV
Explanation: Variable symbol &NUMTGV specifies the
number of units (track groups) into which each SPOOL
volume will be divided for HASP allocation purposes.
The specification must be a positive integer no
greater than the number of tracks on the SPOOL device
with the fewest tracks.
Default:
&NUMTGV=400
Notes:
1.
The user should decide upon the number of tracks
he requires in a track group and then divide by
that number the total number of tracks (except
alternate tracks) on a typical SPOOL device type
at the installation. For example, to obtain a
track group size of-five tracks on a 2311, the
division would yield a quotient of 400; the user
would specify &NUNTGV=400.
If the same installation occasionally used a 2314 as a SPOOL
device, the track group size for the 2314 would
automatically become ten tracks.
2.
Specifying a large &NUMTGV may require increasing
the value of &BUFSIZE.
3.
For each SPOOL volume it finds, HASP initialization calculates number of tracks per group by
dividing 'the total number of tracks on the volume
by &NUMTGV.
It then marks unavailable all track
groups which lie partially or wholly outside
the first extent of data set SYSl.HASPACE on
that volume. HASP initialization also computes
the number of HASP buffers of length &BUFSIZE
which will fit on a track of the SPOOL volume
for each SPOOL volume mounted.
HASPGEN Parameters - Page 7.1.48
357
,
(
&NUMTPBF
HAS P
&NUMTPBF
Explanation: Variable symbol &NUMTPBF specifies
the number of HASP Teleprocessing buffers for HASP
Remote Job Entry to be assembled into the generated
HASP system. The specification must be an integer
greater than or equal to zero.
Default:
&NUMTPBF=&NUMLNES
Notes:
1.
Each signed-on HASP Multi-Leaving terminal requires at least two HASP Teleprocessing buffers;
each other signed-on terminal requires at least
one buffer. If &NUMTPBF is specified too small,
HASP RJE may not work correctly.
2.
See also parameters &TPBFSIZ and &MLBFSIZ.
HASPGEN Parameters - Page 7.1.49
358
&NUMTPES
HAS P
&NUMTPES
Explanation: Variable symbol &NUMTPES specifies
the maximum number of tape drives HASP may use
simultaneously to read OS job streams.
The specification must be an integer greater than or equal
to zero.
Default:
&NUMTPES=l
Notes:
1.
If &NUMTPES=O is specified, code required to
support tapes as readers is omitted from the
generated HASP System.
2.
Since the operator specifies a unit address
when issuing the start command to a tape drive
(e.g., $S TPEl,182) , there is rarely a need to
specify for &NUMTPES a number greater than one.
3.
Tapes should be equivalent to the JCL specification LABEL=(1,NL),DCB=(RECFM=FB,LRECL=80 1
BLKSIZE=nnnnn) where nnnnn is not greater than
(lO*&BUFSIZE)/11.
For seven-track tape, use
the additional DCB specification DEN=2,TRTCH=C.
HASPGEN Parameters - Page 7.1.50
359
&NUMTPPR
HAS P
&NUMTPPR
Explanation: Variable symbol &NUMTPPR specifies the
maximum number of HASP Remote Terminal (including MultiLeaving) printed-output streams that can simultaneously
be active. The specification must be an integer greater
than or equal to zero.
Default:
&NUMTPPR=&NUMLNES
Notes:
1.
If any remote terminal is to receive printed
output, &NUMTPPR must not be zero.
HASPGEN Parameters - Page 7.1.51
360
HAS P
&NUMTPPU
&NUMTPPU
Explanation: Variable symbol &NUMTPPU specifies the
maximum number of HASP Remote Terminal (including
Multi-Leaving) punched-output streams that can
simultaneously be active. The specification must
he an integer greater than or equal to zero.
Default:
&NUMTPPU=&NUMLNES
Notes:
1.
If any remote terminal is to receive punched
output, &NUMTPPU must not be zero.
HASPGEN Parameters - Page 7.1.52
361
&NUMTPRD
HAS P
&NUMTPRD
Explanation: Variable symbol &NUMTPRD specifies the
maximum number of HASP Remote Terminal (including
Multi-Leaving) input streams that can simultaneously
be active. The specification must be an integer
greater than or equal to zero.
Default:
&NUMTPRD=&NUMLNES
Notes:
1.
If any remote terminal is to read cards (including
the /*SIGNON and /*SIGNOFF control cards) &NUMTPRD
must not be zero.
HASPGEN Parameters - Page 7.1.53
362
&NUMWTOQ
HAS P
&NUMWTOQ
Explanation: Variable symbol &NUMWTOQ specifies
the number of message buffers to be provided in
HASP. The specification must be an integer greater
than two.
Default:
&NUMWTOQ=15
Notes:
1.
If &NUMCONS is specified greater than zero
additional message buffers are needed.
'
2.
If Remote Job Entry is used, more message
buffers are needed.
This is especially true
with console support for MULTI-LEAVING
terminals.
3.
Serious system degradation can be caused by
specifying too few message buffers.
4.
During periods of high console activity, when
no message buffers are available, certain noncritical HASP messages will be discarded rather
than delaying the associated process. These
include certain RJE oriented messages (such
as communication line error messages), execution
time/line/card excession messages (continued
excession will be noted when a message buffer
becomes available), and certain I/O error messages on HASP-controlled devices. Additionally,
when no message buffers are available in a system in which &NUMCONS is greater than zero,
messages from the OS error task are queued only
to a depth of one which can result in the loss
of some of these messages.
HASPGEN Parameters - Page 7.1.54
363
&OLAYLEV
HAS P
&OLAYLEV
Explanation: Variable symbol &OLAYLEV specifies a
HASP overlay level to be used for assembly of the
various HASP control sections. Any potential overlay
code defined (by the $OVERLAY macro) with a residence
factor greater than &OLAYLEV will be assembled as
resident code rather than overlay code. The specification for &OLAYLEV must be an integer between
and
IS, inclusive.
°
Default:
&OLAYLEV=lS
Notes:
1.
HASP uses only residence factors 4, 8, 12 and (for
HASP initialization only) 0.
2.
If &OLAYLEV=lS, all potential overlay code will
be assembled as overlay code.
3.
If &OLAYLEV=O, all potential overlay code except
that in HASP initialization will be assembled
as resident code. HASP main storage requirements
will be increased by approximately 24K over
the case &OLAYLEV=IS.
4.
Regardless of the setting of &OLAYLEV, the installation systems programmer may use control cards
for the HASP Overlay Builder after the HASPGEN
process is .complete to specify that a particular
section of potential overlay code be made either
resident code or overlay code.
HASPGEN Parameters - Page 7.l.S5
364
&OREPSIZ
HAS P
&OREPSIZ
Explanation: Variable symbol &OREPSIZ specifies the
size in bytes of a table in HASP to be used to hold
REP data for true overlay code. The REPs associated
with a particular section of true overlay .code will
be applied to that code every time it is brought into
main storage from the HASP overlay library. The
specification for &OREPSIZ must be either 0 or an
integer not less than 10.
Default:
&OREPSIZ=O
Notes:
1.
Each entry in the HASP Overlay REP table consists
of 8+n bytes (2:::; n :::; 256) where n is the number
of contiguous bytes to be changed in a section
of overlay code.
2.
The table is used only if the operator specifies
to HASP initialization that REPs are to be used
and if some of the REPs are for sections of true
overlay code.
3.
If the HASP Overlay REP table is too small to
handle all true overlay REPs, HASP initialization
writes to operator the message
OVERLAY REPPING ERROR
and HASP quiesces.
4.
See also Sectio'n 6.4 of this manual.
HASPGEN Parameters - Page 7.1.56
365
&OSC(n)
HAS P
&OSC(n)
Explanation:
Subscripted variable symbols &OSC(n)
specify OS job classes. A job selected by HASP
logical partition n will be submitted to OS with the
job class &OSC(n). Each specification must be a
single unique letter between A and 0, inclusive.
No two specifications may be the same.
Default:
&OSC(l)=A
&OSC(2)=B
&OSC(3)=C
&OSC(4)=D
&OSC(5)=E
&OSC(6)=F
&OSC(7)=G
&OSC(8)=H
&OSC(9)=I
&OSC(lO)=J
&OSC(ll)=K
&OSC(12)=L
&OSC(13)=M
&OSC(14)=N
&OSC(15)=0
Notes:
1.
Only the first· &MAXPART specifications, &OSC (1)
through &OSC(&MAXPART) will be used.
2.
In an MVT system, HASP initialization issues
the &MAXPART commands
S INIT. HOSINIT&OSC (1) , , , &OSC (1)
3.
S INIT.HOSINIT&OSC(&MAXPART) ",&OSC(&MAXPART).
In an MFT system, HASP initialization issues the
single command
S INIT.ALL;
thus the classes of the MFT partitions to be
controlled by HASP must have already been defined.
Each such partition must be defined with only
one job class; that job class must match one and
only one of the &MAXPART job classes &OSC(l),
&OSC (&MAXPART) .
HASPGEN Parameters - Page 7.1.57
366
&OSINOPT
HAS P
&OSINOPT
I
Explanation: Variable symbol &OSINOPT specifies inclusion or exclusion of the HASP OS Input Spooling
option. The specification must be either YES or NO.
If &OSINOPT=YES and a DD * (or DD DATA) statement
specifies the DeB keyword, HASP will pass the DD
statement and the data following it to the OS Reader/
Interpreter; OS will perform input spooling.
If
&OSINOPT=NO, or if &OSINOPT=YES and no DeB parameter
is specified on the DD * (or DD DATA) statement, HASP
will SPOOL the input data as usual.
Default:
I
&OSINOPT=NO
Notes:
1.
If the DLM parameter is specified on a DD * (or
DD DATA) statement, HASP will SPOOL the input
data regardless of the setting of &OSINOPT or
the inclusion of DeB parameters.
HASPGEN Parameters - Page 7.1.58
367
HAS P
&OUTPOPT
&OUTPOPT
Explanation: Variable symbol &OUTPOPT specifies the
action to be taken when a job exceeds its estimated
print lines or punched cards of output. The specification must be one of the integers 0, 1 or 2. For
&OUTPOPT=2, output excession causes the job to be
cancelled with a dump. For &OUTPOPT=l, output excession causes the job to be cancelled without a
dump. For &OUTPOPT=O, output excession does not
cause the job to be cancelled.
Default:
&OUTPOPT=O
Notes:
1.
Regardless of the specification for &OUTPOPT,
output excession causes messages to be written
to the operator. See also Notes 1 and 2 of
$OUTXS.
2.
If &OUTPOPT=2 is specified, users should use
SYSUDUMP or SYSABEND DD cards if a storage dump
is desired on output excession.
3.
For &OUTPOPT=l or 2, the job will not be
cancelled if, at the time of output excession,
the calling task is normally or abnormally terminating. Therefore, if this terminating task
is not the job step task, job termination may
not occur unless provided for by the program
or unless the operator cancels the job.
HASPGEN Parameters - Page 7.1.59
368
$OUTXS
HAS P
$OUTXS
Explanation:
Ordinary symbol $OU'llXS specifies
the interval, in print lines/punched cards, at
which messages will be written to the operator
informing him that a job's print line count or
punch card count has been exceeded.
The specification must be an integer greater than zero.
Default:
$OUTXS=2000
Notes:
1.
The first print line excession message will
be written to the operator when the job's
estimated print line count has been exceeded.
2.
The first punched card excession message
will be written to the operator when the
job's estimated punched card count has been
exceeded.
HASPGEN Parameters - Page 7.1.60
369
&PID(n)
HAS P
&PID (n)
Explanation: Subscripted variable symbols &PID(n)
specify the identifiers to be used with the HASP
logical partitions. Each specification must be
a unique 1- or 2-character string.
Default:
&PID(l)=l
&PID(2)=2
&PID(3)=3
&PID(4)=4
&PID(S)=S
&PID(6)=6
&PID(7)=7
&PID(8)=8
&PID(9)=9
&PID(lO)=lO
&PID(ll)=ll
&PID(l2)=12
&PID(13)=13
&PID(14)=14
&PID(lS)=lS
Notes:
1.
Only the first &MAXPART specifications, &PID(l)
through &PID(&MAXPART), will be used.
2.
The identifiers &PID(n) are used in messages
to and commands from the operator. For example,
when an operator uses the set command $T Imm,list
he is referring not to logical partition rom but
to logical partition n, where &PID(n)=mm.
HASPGEN Parameters - Page 7.1.61
370
HAS P
&PRI(n)
Explanation: Subscripted variable symbols &PRI(n)
specify as job priorities. A job selected by HASP
logical partition n will be submitted to as with the·
job priority &PRI(n). Each specification must be
an integer between 1 and 15, inclusive.
Default:
&PRI(1)=7
&PRI(2)=7
&PRI (3) =7
&PRI(4)=7
&PRI(5)=7
&PRI(6)=7
&PRI (7) =7
&PRI(8)=7
&PRI(9)=7
&PRI(lO)=7
&PRI(II)=7
&PRI(12)=7
&PRI(13)=7
&PRI(14)=7
&PRI(l5)=7
Notes:
1.
The defaults are all the same as &XZPRTY. This
allows the HASP Execution Task Monitor to regulate all job steps under the control of HASP.
See also parameters &XZPRTY and &MONINTV.
2.
These parameters have no effect in MFT.
3.
The priorities defined by &PRI(n) affect only
as execution. The priority of a job in the
HASP Job Queue is determined by parameters
&RPRT(m), &RPRI(m), &XLIN(m), and &XPRI(m).
4.
Only the first &MAXPART specifications, &PRI(I)
through &PRI(&MAXPART), will be used.
HASPGEN Parameters - Page 7.1.62
371
HAS P
$PRICONA
$PRICONA
Ex~lanation:
Ordinary symbol $PRICONA specifies the
un1t address of a 1052, 3210, 3215, 1443, or 1403 to
which HASP will issue a SIO in the event of a catastrophic error. The message HASP writes to this device
is:
HASP CATASTROPHIC ERROR. CODE=xxx.
The specification must be a valid unit address.
Default:
$PRICONA=OlF
Notes:
1.
When HASP is operating with M65MP in a 2-CPU
multiprocessor environment, the device specified
by $PRICONA must be operational to both CPUs
when a HASP catastrophic error occurs.
HASPGEN Parameters - Page 7.1.63
372
HAS P
$PRIDCT
$PRIDCT
Explanation:. Ordinary symbol $PRIDCT specifies the
number of print lines to appear on each HASP job
separator page for local printers. The specification
must be an integer greater than or equal to zero.
If
the specification is zero, no separator page will be
produced on local printers.
Default:
$PRIDCT=6l'
Notes:
1.
The equivalent HASPGEN parameter for remote
terminal printers is $TPIDCT.
HASPGEN Parameters - Page 7.1.64
373
&PRIHIGH
HAS P
&PRIHIGH
Explanation: Variable symbol &PRIHIGH specifies a
HASP priority to be associated with the HASP Priority
Aging feature. A job will not be priority-aged if
its HASP priority is (or becomes) greater than or
equal to &PRIHIGH. The specification must be an
integer between 0 and 15, inclusive.
Default:
&PRIHIGH=lO
Notes:
1.
If &PRIRATE=O, parameter &PRIHIGH is not used.
2.
See also parameters &PRIRATE and &PRILOW.
HASPGEN Parameters - Page 7.1.65
374
HAS P
&PRILOW
&PRILOW
Explanation: Variable symbol &PRILOW specifies a
HASP priority to be associated with the HASP Priority
Aging feature. A job will not be priority-aged by
HASP unless its HASP priority is initially at least
&PRILOW. The specification must be an integer between
o and 15, inclusive.
Default:
&PRILOW=5
Notes:
1.
If &PRlRATE=O, parameter &PRILOW is not used.
2.
See also parameters &PRIRATE and &PRIHIGH.
HASPGEN Parameters - Page 7.1.66
375
&PRIRATE
HAS P
&PRlRATE
Explanation: Variable symbol &PRlRATE specifies the
amount by which a job's HASP priority will be incremented in 24 hours by the HASP Priority Aging feature.
For example if &PRIRATE=3 then a job's priority will
be incremented by one for every eight hours it remains
in the system. But a job's priority will not be incremented unless it is at least &PRILOW; nor will a job's
priority be incremented above &PRIHIGH. The specification must be an integer greater than or equal to
zero.
If zero is specified, Priority Aging is excluded
from the generated HASP system.
Default:
&PRIRATE=O
Notes:
1.
If &PRIRATE=O, parameters &PRILOW and &PRIHIGH
are not used.
2.
See also parameters &RPRT(n), &RPRI(n}, &XLIN(n),
and &XPRI (n) .
3.
If a job's priority is specified on the /*PRIORITY
control card, the job will be priority-aged if
its priority is eligible.
HASPGEN Parameters - Page 7.1.67
376
$PRTBOPT
HAS P
$PRTBOPT
Explanation: Ordinary symbol $PRTOPT specifies the
printer buffering option to be used for local HASP
printers.
The specification must be either 1 (for
single buffering) or 2 (for double buffering) .
Default:
$PRTBOPT=2
HASPGEN Parameters - Page 7.1.68
377
&PRTRANS
HAS P
&PRTRANS
Explanation: Variable symbol &PRTRANS specifies
translation for lines of print. The specification
must be either YES or NO.
Default:
&PRTRANS=YES
Notes:
1.
If &PRTRANS is specified as YES, each line to
be printed by HASP is first translated. Translation changes lower-case letters to upper-case
letters and characters invalid on a PN train to
blanks.
2.
If any print train is to be used on any HASPcontrolled pr-inter which has characters not
equivalent to those on a PN train or a Pll train,
&PRTRANS must be specified as NO.
HASPGEN Parameters - Page 7.1.69
378
&PRTUCS
HAS P
&PRTUeS
Explanation: Variable symbol &PRTUeS specifies the
name of the print chain or print train which HASP
initially assumes is mounted on every local 1403
printer SYSGENed with the ues feature, and on every
local 3211 printer. The ues identifier can be modified by the operator individually by printer. The
specification should be either AN, HN, PN, QN, RN,
UN, All, Hll, Pll, Ull, or O.
Default:
&PRTUeS=O
Notes:
1.
A specification of zero causes HASP to bypass
the ues loading procedure on all local printers
until the ues type of each printer is specified
by the operator.
.
2.
Only the first character of &PRTUeS is interrogated. That is to say, an AN specification is
equivalent to an All specification, an Hll
specification is equivalent to an HN specification, etc.
3.
If a ues specification is encountered which is
not valid for the type of printer being addressed,
the ues loading procedure will be bypassed.
4.
The UN and Ull specifications are provided for
installation use to support other type of print
chains.
HASPGEN Parameters - Page 7.1.70
379
$PUNBOPT
HAS P
$PUNBOPT
Explanation: Ordinary symbol $PUNBOPT ~ecifies the
punch buffering option to be used for local HASP
punches. The specification must be either 1 (for
single buffering) or 2 (for double buffering).
Default:
$PUNBOPT=l
HASPGEN Parameters - Page 7.1.71.
380
&RDR
HAS P
&RDR
Explanation: Variable symbol &RDR specifies the
unit address of a pseudo-2540 reader to be used with
HOSRDR to supply jobs to os.
The specification must
be a valid unit address which has been specified at
SYSGEN time as a pseudo-2540 reader.
Default:
&RDR=OFC
HASPGEN Parameters - Page 7.1.72
381
&RDRPART"
HAS P
&RDRPART
Explanation: Variable symbol &RDRPART specifies for
MFT systems the identifier field of an OS START
command issued by HASP initialization for the OS
reader/interpreter HOSRDR. The complete START command
is
S HOSRDR.&RDRPART,&RDR.
The specification must be a valid identifier field
for an OS START reader command, as described in the
OS Operator's Guide.
Default:
&RDRPART=S
Notes:
1.
If HASP initialization detects an MVT system,
this parameter is not used.
HASPGEN Parameters - Page 7.1.73
382
$REPRDR
HAS P
$REPRDR
Explanation: Ordinary symbol $REPRDR specifies the
unit address of a physical 2540 or 2501 card reader
from which HASP initialization will read REP cards
if requested by the operator. The specification
must be a valid unit address.
Default:
$REPRDR=OOC
Notes:
1.
When REP cards are to be read and HASP is
operating with M65MP in a 2-CPU multiprocessor
environment, the device specified by $REPRDR
must be operational to both CPUs.
HASPGEN Parameters - Page 7.1.74
383
$REPWTR
HAS P
$REPWTR
Exelanation: Ordinary symbol $REPWTR specifies the
un1t address of a physical 1403 or 1443 on which
each REP card read is to be printed, if printing
of REP cards is requested by the operator. The
specification must be a valid unit address.
Default:
$REPWTR=OOE
Notes:
1.
When REP cards are to be printed and HASP is
operating with M65MP in a 2-CPU multiprocessor
environment, the device specified by $REPWTR
must be operational to both CPUs.
HASPGEN Parameters - Page 7.1.75
384
HAS P
&RESCORE
&RESCORE
Explanation: Variable ·symbol &RESCORE specifies a
storage size, in multiples of 1024 bytes. HASP will
always issue a GETMAIN for additional storage for
HASP buffers; all such storage but &RESCORE*1024
bytes will be used for buffers.
The specification must be an integer greater than or
equal to zero.
Default:
&RESCORE=O
Notes:
1.
MFT users should set &RESCORE=l or larger if
80A or 804 abends occur during HASP operation.
This is normally not required for unmodified
HASP with MVT, because of its 2K block storage
management technics.
2.
&RESCORE only prevents HASP from using all
available storage for butfers. It will not
cure abends due to inadequate partition si2e.
HASPGEN Parameters - Page 7.1.76
385
HAS P
&RJOBOPT
&RJOBOPT
Explanation: Variable symbol &RJOBOPT specifies
whether or not an illegal HASP JOB card is to prevent
execution of the associated job. The specification
must be either YES or NO.
Default:
&RJOBOPT=NO
Notes:
1.
If &RJOBOPT=YES and HASP reads a JOB card whose
accounting field does not match the specifications required by HASP, the job 1S flushed by
HASP and an appropriate message is written to
the operator.
HASPGEN Parameters - Page 7.1.77
386
RMTnn
HAS P
RMTnn
Explanation: Ordinary symbols RMTnn specify the
characteristics of remote terminals to be used with
HASP Remote Job Entry. Terminals must be defined
consecutively, starting with RMTOI. Each specification must be a l4-character string of the form
RMTnn=mmooppiillwtdf
where the letters represent the following:
Code Letters
Range
Description
nn
01-99
Remote Number
mm
01-99
Line Number (**indicates /*SIGNON
assignment)
00
00-99
Print Routing (Remote Number)
pp
00-99
Punch Routing (Remote Number)
ii
00-15
Priority Increment for this Remote
11
00-15
Priority Limit for this Remote
w
0-6
Printer Width as follows:
o = 80 characters
1 = 100 characters
2 = 120 characters
3 = 132 characters
4 = 144 characters
5 = 150 characters
6 = 96 characters
t
0-6
Terminal
o =
1 =
2 =
3 =
4 =
Type as follows:
1009, 2770
1978, 2780, 7702
2922, 5360/20 Sub-Model 2, 4
System 360/20 Sub-ModelS, 6
System 360/22, 25, 30, 40,
etc.
5 = 1130
6 = System/3
7 = 3780
HASPGEN Parameters - Page 7.1.78
387
HAS P
d
0-4
Data Format as follows:
o = Unblocked fixed length
1 = Blocked fixed length
2 = Unblocked variable length
(Note ~ use this for basic
2770 terminals.)
3 = Blocked variable length
(Note - use this for all
3780, 2780,· and 1978 terminals, and for 2770 terminals with Buffer Expansion. )
4 = Programmable Interface
(Note - use this for all
STR 20 and BSC MULTILEAVING interfaces.)
Terminal Features as. follows:
f
0-9
3780 Terminal Features
f
Compress
EXEand
Horizontal
Format Control
Trans-
No
No
No
No
Yes
Yes
No
No
Yes
Yes
No
No
No
Yes
No
Yes
No
Yes
0
1
4
5
8
9
Earenc~
2770 Terminal Features
O-@
f
0
1
2
3
4
5
6
7
8
9
#
@
Compress
EX12and
No
No
No
No
No
No
No
No
Yes
Yes
Yes
Yes
Horizontal
Format
Control
No
No
No
No
Yes
Yes
Yes
Yes
No
. No
No
No
Additional
Buffer
EX12ansion
Transparencl
No
No
Yes
Yes
No
No
Yes
Yes
No
No
Yes
Yes
HASPGEN Parameters - Page 7.1.79
388
No
Yes
No
Yes
No
Yes
No
Yes
No
Yes
No
Yes
HAS P
0-7
2780 Terminal Features
Horizontal
Format
Control
f
No
No
No
No
Yes
Yes
Yes
Yes
0
1
2
3
4
5
6
7
0-3
Default:
Multiple
Record
Feature
TransEarency
No
Yes
No
Yes
No
Yes
No
Yes
No
No
Yes
Yes
No
No
Yes
Yes
MULTI-LEAVING Terminal Features
f
Console
SUEEort
0
1
2
3
No
No
Yes
Yes
TransEarenc~
No
Yes'
No
Yes
RMTnn=**nn0000153131
Notes:
1.
Parameter &NUMRJE must specify the number of
specifications RMTnn to be included in the
generated HASP system.
2.
No two specifications RMTnn may specify the
same line number (rom). If ** is specified instead of a line number for rom, the associated
remote terminal may connect to HASP via any
suitab1~ line.
HASP will logically connect
the terminal with the line when it recognizes
the /*SIGNON control card. If line number is
specified explicitly, the associated terminal
need not use a /*SIGNON card.
3.
The line number specification rom refers to line
specification LINEmm, which in turn specifies
the unit address of the line.
4.
For print and punch routing, a specification of
00 causes output from jobs submitted at the Remote Terminal to be printed/punched locally,
unless re-routed.
HASPGEN Parameters - Page 7.1.80
389
HAS P
5.
6.
7.
8.
9.
10.
Priority increment is the value to be added to
the priority of a job submitted from the Remote
Terminal.
Priority limit is the maximum value of priority
for any job submitted from the Remote Terminal.
If any Multi-Leaving work'station is to utilize
·more than one reader, printer or punch, see
Section 12.16 for additional information.
For a basic 2770 (128 byte buffers), Printer
Width must be specified as 120 characters or
less.
Printed and non-transparent punched output to
a basic 2770 will be variable-blocked up to the
limit of the 128 byte buffers, even though the
Data Format must be specified as variab1eunblocked.
The following table gives minimum values of
&TPBFSIZ required to support various nonprogrammable terminals:
Minimum
&TPBFSIZ
128
256
328
400
512
512
Terminal Type, Features
2770 basic
2770 with Buffer Expansion
1978
2780
2770 with Buffer Expansion
and Additional Buffer
Expansion
3780
See also parameters &TPBFSIZ and &MLBFSIZ.
HASPGEN Parameters - Page 7.1.80.1
389.1
HAS P
(The remainder of this. page intentionally left blank.)
389.2
HAS P
$RPRBOPT
$RPRBOPT
Exelanation: Ordinary symbol $RPRBOPT specifies the
pr1nter buffering option to be used for all printers
at HASP Remote Terminals. The specification must be
either 1 (for single buffering) or 2 (for double
buffering) •
Default:
$RPRBOPT=l
Notes:
1.
The specification refers to HASP regular buffers,
not to HASP Teleprocessing buffers.
HASPGEN Parameters - Page 7.1.81
390
HAS P
&RPRI(n)
&RPRI(n)
Explanation:
Subscripted variable symbols &RPRI(n)
specify tentative job priorities corresponding to
intervals defined by subscripted variable symbols
&RPRT(n).
If a user specifies in the accounting
field of his job card an estimated execution time
of t minutes, the job's tentative priority will
be &RPRI(n) where
&RPRT (n-l).< ts; &RPRT (n) .
Each specification must be an integer between 0 and
15 inclusive.
Default:
&RPRI(1)=9
&RPRI(2)=8
&RPRI(3)=7
&RPRI(4)=6
&RPRI(5)=5
&RPRI(6)=4
&RPRI(7)=3
&RPRI(8)=2
&RPRI(9)=1
Notes:
1.
The values &RPRI(n) will normally be in
opposite order from the subscripts n.
2.
See also Notes 1 and 2 for &RPRT(n).
HASPGEN Parameters - Page 7.1.82
391
HAS P
&RPRT(n)
&RPRT (n)
Explanation: Subscripted variable symbols
&RPRT(n) specify estimated execution times in
minutes.
If a user specifies in the accounting
field of his job card an estimated execution time
of t minutes, and if t satisfies the relation
&RPRT(n-l) lanation: Variable symbol &XZPRTY specifies a
value used by the HASP Execution Task Monitor
for MVT systems.
The Execution Task Monitor periodically analyzes each MVT HASP-controlled job step task,
without subtasks', whose dispatching priority is
&XZPRTY*16+ll.
In order to balance the CPU utilization characteristics of these tasks, the Execution
Task Monitor may re-order these tasks on the TCB
ready chain.
The specification for &XZPRTY must be
an integer between 0 and 15 inclusive, or the expression "0-1". The latter value should be used when the
Execution Task Monitor is to operate for MFT but not
for MVT.
pr~ority
Default:
&XZPRTY=7
Notes:
1.
If &MONINTV=O, the value of &XZPRTY is not used.
2.
If &XZPRTY is specified as 0-1 and &XZMFTH is
specified as 0, then &MONINTV must be set to O.
HASPGEN Parameters"; Page
419
7.1.11Q
$$x
HAS P
$$x
Explanation: Ordinary symbol $$x specifies the
destination for an output data set designated in the
user's JCL as SYSOUT=x. The specification for each
of these ordinary symbols must be one of the characters A, B, 1, 2, or *.
For $$x=A, associated SYSOUT data sets will be
printed with the user's job.
For $$x=B, associated SYSOUT data sets will be
punched with the user's job.
For $$x=l, associated SYSOUT data sets will be
added to the HASP special forms queue, to be printed
with other SYSOUT data sets requiring the same
forms.
For $$x=2, associated SYSOUT data sets will be
added to the HASP special forms queue, to be punched
with other SYSOUT data sets requiring the same
forms.
For $$x=*, associated SYSOUT data sets will be
processed entirely by OS.
In this case, HASP will
add the specification UNIT=SYSDA to the JCL, unless
the user has himself specified UNIT=information.
Default:
$$A=A
$$B=B
$$C=A
$$D=A
$$E=A
$$F=A
$$G=A
$$H=A
$$I=A
$$J=l
$$K=2
$$L=A
$$M=A
$$N=A
$$O=A
$$P=A
$$Q=A
$$R=A
$$S=A
$$T=A
$$U=A
$$V=A
$$W=A
$$X=A
$$Y=A
$$Z=A
$$l=A
$$2=A
$$3=A
$$4=A
$$5=A
$$6=A
$$7=A
$$8=A
$$9=A
$$O=A
HASPGEN Parameters - Page 7.1.111
420
HAS P
Notes:
1.
For any output class x, regardless of the value
specified for $$x, a four-digit special forms
number can be coded as the third positional
parameter of the SYSOUT=keyword.
The specification is converted to a packed number (unless
$$x=*) i that is, forms number 0001 is the same
as forms number 01.
2.
For an output class x for which $$x=*, the
SYSOUT=parameter may be coded as described in
the OS Job Control Language Reference manual.
3.
A user SYSOUT specification which includes the
second positional parameter (program name) will
be processed entirely by OS, regardless of
whether the associated $$ parameter was specified
as *.
4.
If a given output class x is one of the classes
assigned to &WTRCLAS, it must not be used in a
SYSOUT specification to be processed by OS
(caused if $$x=*, or if the second parameter
of SYSOUT is used), unless that class x is
subject to requeueing as described under the
parameter &WCLSREQ.
HASPGEN Parameters - Page 7.1.112
421
HAS P
7.2
RMTGEN PARAMETERS FOR SYSTEM/360 MODEL 20 STR
This section describes the parameters used in assembly
of the System/360 Model 20 STR Remote Terminal Program
for HASP Remote Job Entry. The parameters are used
during RMTGEN to specify hardware configuration and
software options.
For each parameter there is an explanation, the default
value, and frequently notes which expand upon the
explanation.
The parameters are listed in alphabetical order.
STR-20 RMTGEN Parameters - Page 7.2.1
422
&CCT
HAS P
&CCT
Explanation: Variable symbol &CCT specifies the
degree of text compression to be provided in the
program. For text transmission to HASP, the program
will compress strings of &CCT or more identical
characters. The specification must be an integer
between 3 and 80 inclusive.
Default:
&CCT=4
Notes:
1.
Low values of &CCT cause creation of highly
compact records, increasing effective line speed
at the expense of CPU
STR-20 RMTGEN Parameters - Page 7.2.2
423
&CORESIZ
HAS P
&CORESIZ
Explanation: Variable symbol &CORESIZ specifies the
amount of main storage available to the program in
K bytes. The specification must be "an integer greater
than O.
Default:
&CORESIZ=8.
STR-20 RMTGEN Parameters - Page 7.2.3
424
HAS P
&NUMBUFS
&NUMBUFS
Explanation: Variable symbol &NUMBUFS specifies the
maximum number of buffers to be used by the program.
The specification must be an integer greater than or
equal to 2.
Default:
&NUMBUFS=10
Notes:
1.
The length of each buffer is given by HASPGEN
parameter &TPBFSIZ.
STR-20 RMTGEN Parameters - Page 7.2.4
425
&PUNCH
HAS P
&PUNCH
Explanation: Variable symbol &PUNCH specifies inclusion(&PUNCH=l) or exclusion (&PUNCH=O) of support
for a card punch attached to the Model 20. The specification must be either 0 or 1.
Default:
&PUNCH=1
Notes:
1.
The program supports 1442, 2520, and 2560 card
punches interchangeably.
STR-20 RMTGEN Parameters - Page 7.2.5
426
11 ASP
7.3
RMTGEN PARAMETERS FOR SYSTEM/360 MODEL 20 Bse
This section describes the parameters used in assembly
of the System/360 Model 20 BSe Rempte Terminal Program
for HASP MULTI-LEAVING Remote Job Entry. The parameters
are used during RMTGEN to specify hardware configuration
and software options.
For each parameter there is an explanation, the default
value, and frequently notes which expand upon the
explanation.
The parameters are listed in alphabetical order.
BSC-20 RMTGEN Parameters - Page 7.3.1
427
&CCT
HAS P
&CCT
Explanatidn:Variable symbol &CCT specifies for all
text compression but trailing blank compression the
minimum number ox characters to be compressed. A
duplicate character string of fewer than &CCT characters will be treated as a string of non-duplicate
characters for compression purposes. The specification
m:ust be an integer between 3 and 31, inclusive.
Default:
&CCT=4
Notes:
1.
See also &CMPTYPE. The value of &CCT is not
used if &CMPTYPE=l.
2.
A smaller value of &CCT increases efficiency
of communication line usage at the expense of
compute time required for compression.
BSC-20 RMTGEN Parameters - Page 7.3.2
428
&CMPTYPE
HAS P
&CMPTYPE
Explanation: . Variable symbol &CMPTYPE specifies the
type of compression to be applied to all text transmitted from the Model 20 to the central computer.
The specification must be either 1, 2, or 3. The
value 1 specifies trailing blank compression: 2 specifies compression of leading, embedded, and trailing
blanks, and 3 specifies compression of all duplicate
character strings.
Default:
&CMPTYPE=2
Notes:
1.
See also &CCT.
BSC-20 RMTGEN Parameters - Page 7.3.3
429
HAS P
&CORESIZ
&CORESIZ
Explanation:
size of Model
1024 bytes).
between 8 and
Default:
Variable symbol &CORESIZ specifies the
20 main storage ,in Kbytes (1 Kbyte =
The specification must be an integer
32 inclusive.
&CORESIZ=8
BSC-20 RMTGEN Parameters - Page 7.3.4
430
HAS P
&ERRMSGN
&ERRMSGN
Explanation: Variable symbol &ERRMSGN specifies the
number of four-byte entrie,s to be assembled in the
Model 20 ~emote Terminal program as an error message
log table. The specification must be an integer not
less than 8.
Default:
&ERRMSGN=10
BSC-20 RMTGEN Parameters - Page 7.3.5
431
HAS P
&LINESPD
&LINESPD
Explanation: Variable symbol &LINESPD specifies the
speed, in baud, of the communication line to be used
between the Model 20 and the central computer. The
specification must be a positive integer.
Default:
&LINESPD=2000
BSC-20 RMTGEN Parameters - Page 7.3.6
432
&NUMBUFS
HAS P
&NUMBUFS
Explanation: Variable symbol &NUMBUFS specifies number
of teleprocessing buffers to be constructed by the
Model 20 Remote Terminal program. The specification
must be an integer no less than given by the formula
2*X+l
where
X=l if either a 2520 or a 2560 is to be used as
both a reader and a punch, or
o otherwise.
Default:
&NUMBUFS=8
Notes:
1.
The length of each buffer is &MLBFSIZ+5 bytes
(rounded up to the next full word); the value
of HASPGEN parameter &MLBFSIZ is automatically
propagated to RMTGEN.
2.
If &NUMBUFS specifies more buffers than can be
built in available storage, the Remote Terminal
program will build as many buffers as it can.
3.
It is recommended that at least two buffers be
furnished for each output device and for the
communication adapter.
BSC-20 RMTGEN Parameters - Page 7.3.7
433
&NUMTANK
HAS P
&NUMTANK
Explanation: Variable symbol &NUMTANK specifies the
number of decompression buffers ("decompression tanks")
to be assembled in the Model 20 Remote Terminal program.
The specification should be an integer not less than 2.
Default:
&NUMTANK=8
Notes:
1.
The length of each decompression tank is &PRTSIZE+6.
2.
It is recommended that at least two tanks each be
provided for the printer and the punch.
3.
For an 8K Model 20, specification of &NUMTANK
greater than 8 may cause the Remote Terminal
program to assemble larger than X'lFOO' bytes
(8K-256); the resultant program will fail to
load.
BSC-20 RMTGEN Parameters - Page 7.3.8
434
HAS P
&PDEV(l)
&PDEV (1)
Explanation: Subscripted variable symbol &PDEV(l)
specifies device type for the Model 20 printer. The
specification must be either 1403 or 2203.
Default:
&PDEV(1)=2203
BSC-20 RMTGEN Parameters - Page 7.3 .,g
435
HAS P
&PRTCONS
&PRTCONS
Explanation: Variable symbol &PRTCONS specifies the
degree of use of the printer as an output console
and is dependent upon the specifications used in the
generation of the HASP System pertaining to the handling of messages for the remote as follows:
1.
If HASP is told that the remote has a console
via the RMTnn HASPGEN parameter, &PRTCONS has
the following meanings:
&PRTCONS=O - Error logging and display will be
suppressed and operator messages
created while the remote is online to HASP will be discarded.
&PRTCONS=l - The printer will be used as an
output console when sufficient
operator messages from HASP have
been queued for output at the
remote. If the printer is busy
with job stream output, that output will be interrupted for the
printing of operator messages
from HASP and error messages from
the remote error log. When the
console queue is empty, job stream
output will continue.
&PRTCONS=2 - The printer will be used as an
output console but will not interrupt the printing of jobs. Operator messages received from HASP
while jobs are being printed will
be discarded.
2.
If HASP is told that the remote does not have
a console via the RMTnn HASPGEN parameter and
HASP does not have message SPOOLing capability
as determined by the &SPOLMSG HASPGEN parameter
&PRTCONS has the following meanings:
&PRTCONS=O - Error logging and display will be
suppressed and no operator messages
will be displayed.
&PRTCONS=l - Error log messages will be displayed
when the printer is free to print
them (no job interruptions).
&PRTCONS=2 - Same as &PRTCONS=l
BSC-20 RMTGEN Parameter - Page 7.3.10
436
HAS P
3.
If HASP is ·told· that the remote does not have
a console via the RMTnn HASPGEN parameter and
HASP does have message SPOOLing capability as
determined by &SPOLMSG HASPGEN parameter
&PRTCONS takes on the same meanings as 2 above
with the additional capability of printing operator messages queued for the remote by HASP
and transmitted to the remote when the printer
is free and is set to receive messages by the
$TRMr.PRl command.
Settings for &PRTCONS must be 0, 1, or 2.
Default:
&PRTCONS=O
Notes:
1.
If &WDEV(l) is not zero &PRTCONS should be set
to zero.
2.
See HASPGEN parameters RMTnn and &SPOLMSG.
3.
Regardless of the settings of the &WDEV(l) and
&PRTCONS parameters error messages resulting
from loggab1e errors detected by the remote
will be discarded when the errors occur at a
rate faster than the output device can display
them.
BSC-20 RMTGEN Parameter - Page 7.3.10-1
436.1
'H ASP
(The remainder of this page intentionally left blank.)
436.2
a
&PRTSIZE
ASP
&PRTSIZE
Exp.lanation: Variable symbol &PRTSIZE,specifies the
length in bytes of' the' text portion of each decompression tank. Each'tank must be long enough to hold a
maximum-length output record to either the printer,
the punch, or the operator console. The specification
must be an integer that is the largest of 80 (if &UDEV(l)
is not zero), 120 (if &WDEV(l) is not zero), and the
line width of the printer.
Default:
&PRTSIZE=120
BSC-20 RMTGEN Parameters - Page 7.3.11
437
&RADR(1)
HAS P
&RADR(l)
Explanation: Subscripted variable symbol &RADR(l)
specifies, the unit address of the Model 20 card
reader. The specification, must correspond to the
specification for &RDEV (1) as follows,:
&RDEV (1)
2501
2520
2560
Default:
&RADR(l)
1
2
2
&RADR(l)~l
BSC-20 RMTGEN Parameters - Page 7.3.12
438
&RDEV(1)
HAS P
&RDEV (1)
Explanation: Subscrip"ted variabl~ symbol &RDEV (1)
specifies device type for the Model 20 card reader.
The specification must be either 2501, 2520, or 2560.
Default:
&RDEV(1)=2501
Notes:
1.
See also &RADR(l)
BSC-20 RMTGEN Parameters - Page 7.3.13
439
&SUBMOD
HAS P
&SUBMOD
Explanation: Variable symbol &SUBMOD specifies the
Submodel number of the System/360 Model 20 for the
specified Remote Terminal. The specification must
be a valid System/360 Model 20 Submodel number.
Default:
&SUBMOD=2
BSC-20 RMTGEN Parameters - Page 7.3.14
440
HAS P
&UADR(1 )
&UADR (1)
Explanation: Subscripted variable symbol &UADR(l)
specifies· the unit address of the t-1odel 20 card punch.
The specification must correspond to the specification
for &UDEV(l) as follows:
&UDEV (1)
1442
2520
2560
o
Default:
&UADR(l)
3
2
2
not used
&UADR(1)=3
BSC-20 RMTGEN Parameters - Page 7.3.15
441
&UDEV(l)
HAS P
&UDEV(l)
Explanation: Subscripted variable symbol &UDEV(l)
specifies device type for the Model 20 card punch.
The specification must be either 1442, 2520, 2560,
or O. Specification 0 is used when the Model 20
does not include a card punch.
Default:
&UDEV(1)=1442
Notes:
1.
See also &UADR(l), unless &UDEV(l)=O.
BSC-20 RMTGEN Parameters - Page 7.3.16
442
HAS P
&WDEV(l)
&WDEV (1)
Explanation: Subscripted variable symbol &WDEV(l)
specifies device type for the Model 20 console.
The specification must be either 2152 (if a console
is present) or 0 (if no console is present).
Default:
&WDEV(l)=0
Notes:
1.
If &WDEV(1)=1, console support must be indicated
for this Remote Terminal at HASPGEN time. See
HASPGEN parameter RMTnn.
BSC-20 RMTGEN Parameters - Page 7.3.17
443
&WTOSIZE
HAS P
&WTOSIZE'
I
Explanation: Variable symbol &WTOSIZE specifies the
maximum length in bytes ofa HASP operator command
to be transmitted from the Model 20 to the central
computer. The specification must be a positive integer not greater than 120.
Default:
&WTOSIZE=120
Notes:
1.
If &WDEV (1) =0, this parameter ,is not used.
BSC-20 RMTGEN Parameters - Page 7.3.18
444
HAS P
&XPARENT
&XPARENT
Explanation: Variable symbol &XPARENT specifies presence
or absence of the text transparency feature.
If the
Binary Synchronous Communication Adapters at both the
Model 20 and the central computer have the text transparency feature, YES should be specified; otherwise NO
should be specified.
Default:
&XPARENT=YES
BSC-20 RMTGEN Parameters - Page 7.3.19
445
HAS P
7.4
RMTGEN PARAMETERS FOR SYSTEM/360 (EXCEPT MODEL 20) BSC
This section describes the parameters used in assembly
of the System/360 BSC Remote Terminal Program for HASP
MULTI-LEAVING Remote Job Entry. The parameters are
used during RMTGEN to specify hardware configuration
and software options.
For each parameter there is an explanation, the default
-va-l-ue-,-a-n-6.~r-re-(:rt1-e-nt-l-y--no-t-e-s-Vlhi-c-h---expana- upon the
explanation.
The parameters are listed in alphabetical order.
BSC-360 RMTGEN Parameters - Page 7.4.1
446
HAS P
&ADAPT
&ADAPT
Ex~lanation:
Variable symbol &ADAPT specifies the
unl.t address of the Binary Synchronous Communication
Adapter to be used by the System/360 Remote Terminal
to communicate with HASP at the central computer.
The specification must be a valid unit address.
Default:
&ADAPT=020
BSC-360 RMTGEN Parameters - Page 7.4.2
447
HAS P
&CCT
&CCT
Explanation: Variable symbol &CCT specifies for all
text compression but trailing blank compression the
minimum number of characters to be compressed. A
duplicate character string of fewer than &CCT characters will be treated as a string of non-duplicate
characters for compression purposes. The specification
must be an integer between 3 and 31, inclusive.
Default:
&CCT=4
Notes:
1.
See also &CMPTYPE. The value of &CCT is not
used if &CMPTYPE=l.
2.
A smaller value of &CCT increases efficiency
of communication line usage at the expense of
compute time required for compression.
BSC-360 RMTGEN Parameters - Page 7.4.3
448
HAS P
&CMPTYPE
&CMPTYPE
Explanation: Variable symbol &CMPTYPE specifies type
of compression to be applied to all text transmitted
from the System/360 Remote Terminal to the central
computer. The specification must be either 1, 2, or
3. The value 1 specifies trailing blank compression;
2 specifies compression of leading, embedded, and
trailing blanks, and 3 specifies compression of all
duplicate character strings.
Default:
&CMPTYPE=2
Notes:
1.
See also &CCT.
BSC-360 RMTGEN Parameters - Page 7.4.4
449
&CORESIZ
HAS P
&CORESIZ
Explanation: Variable symbol &CORESIZ specifies the
size of main storage for the System/360 Remote Terminal in K bytes (lK byte = 1024 bytes). The specification must be an integer between 8 and 32 inclusive.
Ifthe~SystemI36-0~is largerthan-32K bytes, &CORESIZ
must be specified as 32.
Default:
&CORESIZ=8
BSC-360 RMTGEN Parameters - Page 7.4.5
450
HAS P
&ERRMSGN
&ERRMSGN .
E~anation:
Variable symbol &ERRMSGN specifies the
n
er of four-byte entries to be assembled in the
System/360 Remote Terminal as an error message log
table. The specification must be an integer not less
than 8.
I
Default:
&ERRMSGN=lO
BSC-360 RMTGEN Parameters - Page 7.4.6
451
&LINESPD
HAS P
&LINESPD
Explanation: Variable symbol &LINESPD specifies the
speed, in baud, of the communication line to be used
between the System/360 Remote Terminal and the central
computer •. The specification must be a positive integer.
De£-ault:
&LINESP D= 2 0 00
BSC-360 RMTGEN Parameters - Page 7.4.7
452
HAS P
&MACHINE
&MACHINE
Explanation: Variable symbol &MACHINE specifies the
model number of the System/360to be used as a HASP
Remote Terminal. The specification must be a valid
System/360 model number for a System/360 which includes
the standard instruction set and the decimal instruction
set.
Default:
&MACHINE=30
BSC-360 RMTGEN Parameters - Page 7.4.a
453
11
l~
f:, P
&NUMBUFS
SiNUMI3UFS
Explanation: Variable symbol &NUMBUFS specifies number
of teleprocessing buffers to be constructed by the
System/360 Remote Terminal program. The specification
must be an integer no less than given by the formula
2*X+l
where
X=l if either a 2520 or a 1442 is to be used as
both a reader and a punch, or
o otherwise.
Default:
&NUMBUFS=8
Notes:
1.
The length of each buffer is &MLBFSIZ+5 bytes
(rounded up to a multiple of 4); the value of
HASPGEN parameter &MLBFSIZ is automatically
propagated to RMTGEN.
2.
If &NUMBUFS specifies more buffers than can be
built in available storage, the Remote Terminal
program will build as many buffers as it can.
3.
It is recommended that at least two buffers be
furnished for each output device and for the
communication adapter.
,)3SC-360 RMTGEN Parameters - Page 7.4.9
454
HAS P
&NUMTANK
&NUMTANK
Explanation: Variable symbol &NUMTANK specifies the
number of decompression buffers ("decompression
tanks") program. The specification· should be an integer not less than 2.
I
Default:
&NUMTANK=5
Notes:
1.
The length of each decompression tank is
&PRTSIZE+6.
2.
It is recommended that at least two tanks be
provided for each printer and each punch (3 for
a 2540 punch).
BSC-360 RMTGEN Parameters - Page 7.4;10
455
HAS P
&PADR(n)
. &PADR (n)
Explanation: Subscripted variable symbols &PADR(n)
specify unit addresses for the printe'rs defined by
&PDEV(~).
For each &PDEV(n) not specified as zero,
the corresponding symbol &PADR(n) must specify the
device's 3-character hexadecimal unit address.
Default:
&PADR(l)=OOE
&PADR(2)=OOF
&PADR(3)=FFF
&PADR(4)=FFF
&PADR(5)=FFF
&PADR(6)=FFF
&PADR(7)=FFF
-BSC-;;.-)-o-O---RMTGEN . -Parame-ters-------Page---7--.-4-.-i-l
456
HAS P
&PDEV(n)
&PDEV(n)
Explanation: Subscripted variable symbols &PDEV(n)
specify the existence and device types of the Remote
Terminal printers. Each specification must be either
1403, 1443, or O. A specification of 0 indicates that
the associated printer does not exist.
Default:
&PDEV(1)=1403
&PDEV(2)=0
&PDEV(3)=0
&PDEV(4)=0
&PDEV(5)=0
&PDEV(6)=O
&PDEV(7)=0
Notes:
1.
If &PDEV(n) is specified as a device type, then
&UDEV(8-n) must be specified as zero.
2.
If &PDEV(n+l) is specified as a device type, then
&PDEV(n) must be specified as a device type.
3.
If more than one printer is specified, a Device
Control Table (DCT) for each additional printer
must be added to the HASP System.
BSC-360 RMTGEN Parameters - Page 7.4.12
457
&PRTSIZE
HAS P
&PRTSIZE
Explanation: Variable symbol &PRTSIZE specifies the
length in bytes of the text portion of each decompression tank. Each tank must be long enough to hold a
maximum-length output record to either a printer, a
punch, or the operator console. The specification
must be an integer that is the larger of 120 and the
line width of the widest printer.
Default:
&PRTSIZE=132
BSC-360 RMTGEN Parameters - Page 7.4.13
458
HAS P
&RADR(n)
&RADR(n)
Explanation: Subscripted variable symbols &RADR(n)
specify unit addresses for the readers defined by
&RDEV(n). For each &RDEV(n) not specified as zero,
the corresponding symbol &RADR(n) must specify the
device's 3-character hexadecimal unit address.
Default:
&RADR(l)=OOC
&RADR(2)=FFF
&RADR(3)=FFF
&RADR(4)=FFF
&RADR(5)=FFF
&RADR(6)=FFF
&RADR(7)=FFF
BSC-360 RMTGEN Parameters - Page 7.4.14
459
&RDEV(n)
HAS P
&RDEV(n)
Explanation: Subscripted variable symbols &RDE"V (n)
specify the existence and device types of the Remote
Terminal readers. Each specification must be either
2540, 2501, 2520, 1442, or O. A specification of 0
indicates that the associated reader does not exist.
Default:
&RDEV(1)=2540
&RDEV(2)=0
&RDEV (3) =0
&RDEV(4) =0
&RDEV(5) =0
&RDEV(6)=0
&RDEV(7) =0
Notes:
1.
If &RDEV(n+l) is specified as a device type, then
&RDEV(n) must be specified as a device type.
2.
If more than one reader is specified, a Device
Control Table (DCT) for each additional reader
must be added to the HASP System.
BSC-360 RMTGEN Parameters - Page 7.4.15
460
&UADR(n)
HAS P
&UADR(n)
Explanation: Subscripted varlable symbols &UADR(n)
specify unit addresses for the punches defined by
&UDEV(n).
For each &UDEV(n) not specified as zero,
the corresponding symbol &UADR(n) must specify the
device's 3-character hexadecimal unit address.
Default:
&UADR(l)=OOD
&UADR(2)=FFF
&UADR(3)=FFF
&UARD(4)=FFF
&UARD(5)=FFF
&UARD(6)=FFF
&UARD(7)=FFF
BSC-360 RMTGEN Parameters - Page 7.4.16
461
&UDEV(n)
HAS P
&UDEV(n)
Explanation: Subscripted variable symbols &UDEV(n)
specify the existence and device types of the Remote
Terminal punches. Each specification must be either
2540, 2520, 1442, or O. A specification of 0 indicates
that the associated punch does not exist.
Default:
&UDEV(I)=2540
&UDEV(2)=0
&UDEV(3)=0
&UDEV(4) =0
&UDEV(5) =0
&UDEV(6)=0
&UDEV(7)=0
Notes:
1.
If &UDEV(n) is specified as a device type, then
&PDEV(8-n) must be specified as zero.
2.
If &UDEV(n+l) is specified as a device type, then
&UDEV(n) must be specified as a device type.
3.
If more than one punch is specified, a Device
Control Table (OCT) for each additional punch must
be added to the HASP System.
BSC-360 RMTGEN Parameters - Page 7.4.17
462
HAS P
&WADR(l)
&WADR (1)
Explanation: Subscripted variable symbol &WADR(l) specifies
the unit address of the 1052 operator console on the
System/360 Remote Terminal. The specification must
be a 3-character hexadecimal unit address.
Default:
&WADR(l)=OlF
BSC-360 RMTGEN Parameters - Page 7.4.18
463
&WTOSIZE
HAS P
&WTOSIZE
I
Explanation: Variable symbol &WTOSIZE specifies the
maximum length in bytes of a HASP operator command
to be transmitted from the System/360 Remote Terminal
to the central computer. The specification must be
a positive integer not greater than 120.
Default:
&WTOSIZE=120
BSC-360 RMTGEN Parameters - Page 7.4.19
464
&XPARENT
HAS P
&{(PARENT
Explanation: Variable symbol &XPARENT specifies
presence or absence of the text transparency feature.
If the Binary Synchronous Conununication Adapters at
both the System/360 Remote Terminal and the central
computer have the text trqnsparency feature, YES
.
should be specified: otherwise NO should be specified.
Default:
&XPARENT=YES
BSC-360 RMTGEN Parameters - Page 7.4.20
465
HAS P
7.5
RMTGEN PARAMETERS FOR 1130
This section describes the parameters used in assembly
of the ll30Remote Terminal Program for HASP MULTILEAVING Remote Job Entry. The parameters are used
during RMTGEN to specify hardware configuration and
software options.
For each parameter there is an explanation, the default
value, and frequently notes which expand upon the
explanation.
The parameters are listed in alphabetical order.
RTPll30 RMTGEN Parameters - Page 7.5.1
&CLOCK
II ASP
&CLOCK
Explanation: The varidLlc~IYIL ,. i &CLOCK is used to
specify the type of communication adapter clocking
qvailable on the 1130 to be used by the workstation
program. The specification of &CLOCK~O is interpreted
to mean that data set clocking is being used. The
value &CLOCK=l specifies internal (1130) clocking.
Default:
&CLOCK=O
Notes:
1.
The rate of insertion of the synchronous idle
sequence in the transmitted data is determined
by the variables &CLOCK, &LINESPD and &TRANPRN.
The relationship of these variables to the insertion rate is:
&CLOCK
o
o
1
1
2.
&TRANPRN
o
1
o
1
INSERTION EVERY:
&LINESPD/8
&LINESPD/8
70
&LINESPD/8
characters
characters
characters
characters
The equation used for the insertion rate is:
(&LINESPD/8)*T
where T is 1.00 second which is the nominal 2701
timer value.
RTPl130 RMTGEN Parameters - Page 7.5.2
At:"7
&CMPTYPE
HAS P
&CMPTYPE
Explanation: The variable symbol &CMPTYPE is used to
'specify the compression technique that is to be applied
to the data transmitted to the central HASP system.
The choices for &CMPTYPE are:
&CMPTYPE=Q
for no compression of duplicate characters or truncation of trailing blanks,
&CMPTYPE=l
for trailing blank truncation only.
&CMPTYPE=2
for full compression: trailing blank
truncation and encoding of duplicate
characters.
Default:
&CMPTYPE=2
Notes:
1.
The process of compressing input data offers optimum
performance with respect to efficient line utilization. However, the factors of line speed, CPU
availability, buffer size, line turn-around time,
nature of the data to be compressed, etc., are
variables which contribute to the overall operation
of the workstation program. Since compression and
truncation require considerable CPU time, the user
may decide, on the basis of the other variables,
to respecify the compression technique.
RTPl130 RMTGEN Parameters - Page 7.5.3
468
&DELAY
HAS P
&DELAY
Explanation: The variable symbol &DELJ\Y is used to
define the number of intervals of time that RTPl130
will delay, in transmitting a "handshaking" sequence
(DLE-ACKO) to the central HASP site.
The hardware
program timer ,clock is used to measure the delay and
'is assumed to be set to a nominal value of .35 seconds.
Default:
&DELAY=3
Notes:
1.
&DELAY=3 results in a delay of 1.05 seconds,
assuming a timer interval of .35 seconds.
2.
The purpose of the delay when "handshaking" is
to minimize CPU processing at the central HASP
computer when no dat~ is being transmitted.
3.
The value of &DELAY must not be set to such a
large increment that the delay will be greater
than the timeout period of the central sit~
2701/2703.
RTPl130 RMTGEN Parameters - Page 7.5.4
469
&FULLIST
H A 8 P
&FULLI8T
Explanation: The variable symbol &FULLIST is used
to specify the type of assembly listing which is produced by the 08/360 assembler during the RMTGEN process.
If the value of &FULLI8T is set to 0, then the assembly
listing produced will be according to the PRINT NOGEN
stipulation of the assembler.
If the value of &FULLI8T
is set to 1, the .listing will be produced according to
the PRINT GEN stipulation.
Default:
&FULLIST=l
Notes:
1.
since most of the code in RTPl130 and RTPLOAD
is created by Macro instructions, the specification of &FULLIST=O will essentially produce a
source listing (cross referenced) without the
1130 assembled instructions. Error messages
will not appear on the listing.
RTPl130 RMTGEN Parameters - Page 7.5.5
470
&LINESPD
HAS P
&LINESPD
Explariation: Th~.vari~ble symbol &LINESPD is used
to specify the baud rate for the communication line
interface to the workstation program. The value should
correspond to the selected setting of the baud rate
switch on the 1130 SCA control panel: 1200,2000, ... ,etc.
Default:
&LINESPD=2000
Notes:
~.
The rate"of insertion of the synchronous idle
sequertce (DLE~SYN or SYN-SYN) in the transmitted
data is determined by the variables &CLOCK,
&LINESPD and&TRANPRN. See note 1 of &CLOCK
description.
RTPl130 RMTGEN Parameters - Page 7.5.6
471
&MACHSIZ
HAS P
&MACHSIZ
Explanation: Variable symbol &MACHSIZ specifies the
amount of 1130 core to be ~sed by RTPl130. The value·
of &MACHSIZ is in ~nits of 1130 words.
Default:
&MACHSIZ=8192
Notes:
1.
The value of &MACHSIZ is interpreted to mean that
"&MACHSIZ" number of words, starting at locqtion
0, are available for the workstation program con~
sisting of RTPBOOT, RTPLOAD and RTPll30.
2.
The same variable symbOl must be defined for
RTPLOAD and should have the same value.
3.
The value of &MACH$IZ may be less than the actual
available storage but must not be greater.
RTPl130 RMTGEN Parameters - Page 7.5.7
472
HAS P
&PN1442
&PN1442
Explanation: The variable symbol &PN1442 is used to
define a 1442 pu'nch.
If the variable is set to 1,
thenRTPl130 will include support for punched card
output produced by jobs at the Central HASP site.
If the variable is set to 0, no support for the 1442
punch will be provided.
See &RD1442 for the definition of a reader function on the 1442.
Default:
&PN1442=1
RTPl130 RMTGEN Parameters - Page 7.5.8
473
&PRFOTLW
HAS P
&PRFOTLW
Explanation: The value of the variable symbo1&PRFO'I'LW
is used to define the line width of the 1403 printer
specified by &PR1403. The choices are 120 or 132
character lines.
Default:
&PRFOTLW=120
Notes:
1.
The definition of the line width for all printers
on a particular remote is a HASPGEN requirement.
See HASPGEN parameter RMTnn.
RTPl130 RMTGEN Parameters - Page 7.5.9
474
HAS P
&PRl132
&PRl132
Explanation: The variable symbol &PRl132 is used to
'define an 1132 printer.
If the variable is set to
1, then RTP1l30 will include support for the 1132 to
print job output.
If the variable is set to 0, no
support will be included in RTPl130 for the 1132.
Default:
&PRl132=0
RTPl130 RMTGEN Parameters - Page 7.5.10
475
&PR1403
HAS P
&PR1403
Explanation: The variable symbol &PR1403 is used to
define a 1403 printer for use as an output device.
If the value of &PR1403 is 1, then the 1403 function
will be included in RTPl130.
If the value is 0, the
function is deleted from RTPl130.
Default:
&PR1403=1
Notes:
1.
See &PRFOTLW for specifying the line width of
the 1403.
RTPl130 RMTGEN Parameters - Page 7.5.11
476
1I ASP
&RD1442
&RD1442
Explanation: The variable symbol &RD1442 is used to
define a 1442 as a card reader.
If the variable is
set to 1, then RTPl130 will be assembled with all
necessary control blocks and support routines to provide job input from the 1442.
If the variable is set
to 0, no support for the 1442 reader will be provided
in RTPl130.
See &PN1442 for a definition of the
punch function on the 1442.
Default:
&RD1442=1
Notes:
1.
If the variable &RD1442 is set to 1 and a 1442
reader does not exist then the operation of the
workstation program may be unpredictable.
RTPl130 RMTGEN Parameters - Page 7.5.12
477
&RD2501
HAS P
&RD2501
Explanation: The variable symbol &RD2501 is used to
define a 2501 card reader. If the variable is set
to 1, then RTPl130 will be assembled with all necessary
control block and subroutines to support the 2501 as
a job input device. If the variable is set to 0,
no support for the 2501 will be included in RTPl130.
Default:
&RD2501=0
Notes:
1.
If the variable &RD2501 is set to 1 and a 2501
does not exist then the operation of the workstation program will be unpredictable and usually
unproductive.
RTPll30 RMTGEN Parameters - Page 7.5.13
478
&RTPLORG
HAS P
&RTPLORG
Explanation: The variable symbol &RTPLORGdefines
the origin in 1130 storage of the program loader
RTPLOAD which is used to load RTPl130.
Default:
&RTPLORG=2*(&MACHSIZ-I024)
Notes:
1.
The value of the above expression, assuming
&MACHSIZ=8192, is 14336 (which is twice the
actual 1130 storage address because the value
is used in an ORG operation and must be in terms
of bytes not 1130 words.
2.
The RTPLOAD program must origin ih the storage
available between the end of RTPl130 (beginning
of buffer pool) and the end of defined (&MACHSIZ)
storage MINUS the length of RTPLOADs The default
value of &RTPLORG allows for an RTPLOAD of 1024
words in size.
RTPl130 RMTGEN Parameters - Page 7.5.14
&TRANPRN
HAS P
&TRANPRN
Explanation: The variable symbol &TRANPRN is used to
define the simulation of the Binary Synchronous
Transparency feature.
If the value of &TRANPRN is set
to 1, then RTPl130 will simulate the transparency
feature in the same manner as the 2701 SDA-II adapter
equipped with the transparency feature.
If the
variable is set to 0, no simulation will occur and
therefore data which contains transparent characters
cannot be properly processed by RTPl130.
Default:
&TRANPRN=1
Notes:
1.
If &TRANPRN=O is specified, the conversion of
card code data is monitored and all BSC control
characters are converted to hexadecimal O. This
prevents mispunched data from causing an infinite
error retrytt the central site does not have
transparency.
2.
See &LINESPD and &CLOCK for additional influence
of &TRANPRN.
3.
If &TRANPRN=l, the generated Remote Terminal
program will communicate only with a 2701 or 2703
adapter which has the text transparency feature.
RTPl130 RMTGEN Parameters - Page 7.5.15
·480
HAS P
7.6
RMTGEN PARAMETERS FOR 1130 LOADER
This section describes the parameters used in assembly of
RTPLOAD, the 1130 Loader Program.
RTPLOAD is used to load
the 1130 Remote Terminal Program.
RTPLOAD's three parameters
specify machine size, loader origin, and an assembler list
option.
For each parameter there is an explanation, the default value,
and frequently notes which expand upon the explanation.
The RMTGEN processes produce the object decks for RTPLOAD
and RTPl130. The bootstrap loader (RTPBOOT) cannot be produced on a System 360 and must be punched by keypunch as
indicated in Section 4.14.3.
The parameters are listed in alphabetical order ..
RTPLOAD RMTGEN Parameters - Page 7. 6 ..1
481
&FULLIST
HAS P
&FULLIST
Explanation: The variable symbol &FULLIST is used
to specify the type of assembly listing which is produced by the OS/360 assembler during theRMTGEN process.
If the value of"&FULLIST is set to 0, then the assembly
listing produced will be according to the PRINT NOGEN
stipulation of the assembler.
If the value of &FULLIST
is set to 1, the listing will be produced according to
the PRINT GEN stipulation.
Default:
&FULLIST=l
Notes:
1.
Since most of the code in RTPll30 and RTPLOAD
is created by Macro instructions, the specification of &FULLIST=O will essentially produce a
source listing (cross referenced) without the
1130 assembled instructions. Error messages
will not appear on the listing.
RTPLOAD RMTGEN Parameters - Page 7.6.2
482
&MACHSIZ
HAS P
&MACHSIZ
Explanation: Variable symbol &MACHSIZ specifies the
amount of 1130 core to be used by RTPLOAD. The value
of &MACHSIZ is in units of 1130 words.
Default:
&MACHSIZ=8192
Notes:
1.
The value of &MACHSIZ is interpreted to mean that
"&MACHSIZ" number of words, starting at location
0, are available for the workstation program consisting of RTPBOOT, RTPLOAD and RTP1130.
2.
The same ~ariable symbol must be defined for
RTPll30 and should have the same value.
3.
The value of &MACHSIZ may be less than the actual
available sto~age but must not be greater.
RTPLOAD RMTGEN Parameters - Page 7.6.3
483
HAS P
&RTPLORG
&RTPLORG
Explanation: The variable symbol &RTPLORG defines
the origin in 1130 storage of the program loader
RTPLOAD which is used to load RTPl130.
Default:
&RTPLORG=2*(&MACHSIZ-I024)
Notes:
1.
The value of the above expression, assuming
&MACHSIZ=8192, is 14336 (which is twice the
actual 1130 storage address because the value
is used in an ORG operation and'must be in terms
of bytes not 1130 words.
2.
The RTPLOAD program must origin in the storage
available between the end of RTPl130 (beginning
of buffer pool) and the end of defined (&MACHSIZ)
storage MINUS the length of RTPLOAD. The default
value of &RTPLORG allows for an RTPLOAD of 1024
words in size.
RTPLOAD RMTGEN Parameters - Page 7.6.4
484
HAS P
7.7
RMTGEN PARAMETERS FOR SYSTEM/3
This section describes the parameters used in assembly
of the System/3 Remote Terminal Program for HASP MULTILEAVING Remote Job Entry. The parameters are used
during RMTGEN to specify-hardware configuration and
software options.
For each parameter there is an explanation, the default
value, and frequently notes which expand upon the
explanation.
The parameters are listed in alphabetical order.
System/3 RMTGEN Parameters - Page 7.7.1
485
&COMP
HAS P
&COMP
Explanation: Variable symbol &CO~1P specifies degree
of text compression to be provided for all text transmitted from the System/3 to HASP. The specification
must be either 0, 1, or 2.
For &COMP=O, neither compression nor truncation is
performed.
For &COMP=l, trailing blanks are truncated from each
logical record before it is transmitted.
For &COMP=2, compression takes place after truncation.
Strings of from two to 31 blanks are compressed to a
single byte; strings of from three to 31 duplicate
characters are compressed to two bytes.
Default:
&COMP=2
System/3 RMTGEN Parameters - Page 7.7.2
486
&DEBUG
HAS P
&DEBUG
Explanation: Variable symbol &DEBUG specifies inclusion
or exclusion of certain validity tests and a core dump
program in the System/3 Remote Terminal Program. The
specification must be either 0 or 1.
Default:
&DEBUG=O
System/3 RMTGEN Parameters - Page 7.7.3
487
&DIAL
HAS P
&DIAL, &DIALI
Explanation: Variable symbols &DIAL and &DIALI specify
the telephone number to be used during the initialization process. The values will be included on the
default /*SIGNON card assembled into the System/3
Remote Terminal Program and preceded by the keyword
DIAL (unless the parameters are left at their defaults) .
Each specification is a string of from one to eight
decimal digits. If the telephone number is eight or
fewer digits long, it should be specified by &DIAL.
If the telephone number is longer than eight digits,
its leftmost eight digits should be specified by &DIAL
and the remaining digits by &DIALI.
Default:
&DIAL=[null string]
&DIALl=[null string]
System/3 RMTGEN Parameters - Page 7.7.4
488
HAS P
&MACHSIZ
&MACHSIZ
Explanation: Variable symbol &MACHSIZ specifies the
size of System/3 Core storage. The specification
should be either 8192, 12288, 16384, 24576, or 32768
for core storage sizes of 8K, 12K, 16K, 24K or 32K
respectively.
Default:
&MACHSIZ=8192
System/3 RMTGEN Parameters - Page 7.7.5
489
&PASSWD
HAS P
&PASSWD
Explanation: Variable symbol &PASSWD specifies a
password to be used during the SIGNON process. The
value will be included on the default /*SIGNON card
assembled into the System/3 Remote Terminal Program.
The specification must be a character string of from
one to eight characters.
If blanks are desired, no
specification may be made.
Default:
&PASSWD=[null string]
System/3 RMTGEN Parameters - Page 7.7.6.
490
"r
&PC(n)
HAS P
&PC(n)
Explanation: Subscripted variable symbols -&PC(n)
specify skip information for the 5203 printer. The
value to which &PC(n) is set will be the print line
number to which paper will be skipped when the System/3
Remote Terminal Program simulates the 1403" command
"Skip to Channel n". Each specification must be an
integer between 0 and &S3FORML, inclusive. A specification of 0 causes no forms movement.
Default:
&PC(l)=l
&PC(2)=0
&PC(3)=0
&PC(4)=0
&PC(5)=0
&PC(6)=0
&PC(7)=0
&PC(8)=0
&PC(9)=0
&PC(lO)=O
&PC(ll)=O
&PC(12)=&S3FORML-5
System/3 RMTGEN Parameters - Page 7.7.7
491
HAS P
&PRTCONS
&PRTCONS
Exelanation:
Variable symbol &PRTCONS specifies
ut~lization of the 5203 printer as an operator's
output console.
or 2.
The specification must be 0, 1,
For &PRTCONS=O, the 5203 printer will never be used
as an operator's output console.
For &PRTCONS=l, the System/3 Remote Terminal Program
will attempt to hold operator messages from HASP until a job has completed printing. However, if two
or more MULTI-LEAVING buffers are received containing HASP operator messages, the 5203 will eject a
page (skip to channell), print the HASP operator
messages, eject another page, and resume printing
its job.
For &PRTCONS=2, the System/3 Remote Terminal Program
will throwaway all operator messages while the 5203
is printing a job. While the 5203 is dormant, it
will print any received messages.
Default:
&PRTCONS=2
Notes:
1.
If &S3547l=1, the value of&PRTCONS is ignored
and assumed to be zero.
2.
Regardless of the setting of &PRTCONS, messages
temporarily saved on disk for a remote terminal
will be printed to the terminal as a job. Thus,
they will always appear on the printer, even if
another console exists. See also HASPGEN parameter.&SPOLMSG.
3.
If &PRTCONS is specified greater than zero,
MULTI-LEAVING console support should be specified in HASPGEN parameter RMTnn for this remote.
System/3 RMTGEN Parameters - Page 7.7.8
492
HAS P
&S3CMDS
&S3CMDS
Explanation: Variable symbol &S3CMDS specifies inclusion or exclusion, local to the System/3, of a
command facility and commands to assist the System/3
operator. The specification must be either 0 or 1.
Default:
&S3CMDS=O
Notes:
1.
Commands available with this facility are explained in the System/3 Operator's Guide.
System/3 RMTGEN Parameters - Page 7.7.8.1
492.1
HAS P
(The remainder of this page intentionally left blank.)
492.2
&S3FORML
HAS P
&S3FORML
Explanation: Variable symbol &S3FORML specifies the
number of print lines on a page of the continuous
forms which will be used in the 5203 printer. The
specification must be an integer not less than 6.
Default:
&S3FORML=66
System/3 RMTGEN Parameters - Page 7.7.9
493
HAS P
&S3NPUNS
&S3NPUNS
Explanation: Variable symbol &S3NPUNS specifies the
maximum number of jobs that can be punching simultaneously
at the System/3 Remote Terminal. The. specification must
be 1, 2, or 3.
(A value of 3 allows simultaneous operation of both 5424 hoppers and the 1442 hopper as punches.)
Default:
&S3NPUNS=1
Notes:
1.
If &S3NPUNS is set to 2 or 3, extra device control
tables must be added for the appropriate remote to
the HASP System at HASPGEN time.
System/3 RMTGEN Parameters - Page 7.7.10
494
&S3NRDRS
HAS P
&S3NRDRS
Explanation: Variable symbol &S3NRDRS specifies the
maximum number of job streams that can be reading
simultaneously from the System/3 Remote Terminal.
The specification must be 1, 2, or 3.
(A value of
3 allows simultaneous operation of both 5424 hoppers
and the 1442 hopper as readers.)
Default:
&S3NRDRS=l
Notes:
I.
If &S3NRDRS is set to 2 or 3, extra device control
tables must be added for the appropriate remote to
the HASP System at HASPGEN time.
System/3 RMTGEN Parameters - Page 7.7.11
495
&S30BJDK
HAS P
&S30BJDK
Explanation: Variable symbol &S30BJDK specifies inclusion of a facility to punch Operating System object
decks. Text transparency should be present. The
specification should be 0 or 1.
If &S30BJDK=1, each card of an OS object deck will be
expanded and punched into two 96-column cards. These
cards will be recognized when later read by a System/3
Remote Terminal program for which &S30BJDK=1, and for
each two 96-column cards read an OS object deck card
image will be transmitted.
Default:
&S30BJDK=O
System/3 RMTGEN Parameters - Page 7.7.12
496
&S3SIP
HAS P
&S3SIP
Explanation: Variable symbol &S3SIP specifies usage
of those bytes of System/3 core storage between X'lOO'
and X'IFF', inclusive. The specification must be either
O.or 1. For &S3SIP=l, the System/3 Remote Terminal
Program will not use the bytes; their values will be
preserved for the use of the System/3 Card System
Initialization Program.
Default:
&S3SIP=Q
System/3 RMTGEN Parameters - Page 7.7.13
497
&S3TRACE
HAS P
&S3TRACE
Explanation: Variable symbol &S3TRACE specifies the
number of four-byte entries in the System/3 Remote
Terminal Program's internal error message table. The
specification must be an integer greater than 1.
Default:
&S3TRACE=lO
System/3 RMTGEN Parameters - Page 7.7.14
498
&S3XPAR
HAS P
&S3XPAR
Explanation: Variable symbol &S3XPAR specifies presence
or absence of the EBCDIC text transparency feature.
The
specification should be 1 if both the central computer's
communications adapter and the System/3 BSCA have the
EBCDIC text transparency feature; otherwise the specification should be O.
Default:
&S3XPAR=O
System/3 RMTGEN Parameters - Page 7.7.15
AOO
&S31442
H A 8 P
&831442
Explanation: Variable symbol &831442 specifies inclusion or exclusion of support for the 1442 Card ReaderPunch (RPQ). The specification must be 1 for inclusion
and 0 for exclusion of 1442 support.
Default:
&831442=0
Notes:
1.
If &831442=1, the resultant 8ystem/3 Remote Terminal Program requires that a 1442 be present on
the 8ystem/3.
System/3 RMTGEN Parameters - Page 7.7.16
500
HAS P
&S35424
&S35424
Explanation: Variable symbol &S35424 specifies inclusion or exclusion of support for the' 5424 MultiFunction Card Unit. The specification must be 1
for inclusion or 0 for exclusion of 5424 support.
Default:
&835424=1
Notes:
1.
If &S35424 is specified as 0, then &S31442 must
be specified as 1.
2.
See Chapter 10.3 for RMTGEN considerations for
&S35424=0.
3.
See the System/3 Operator's Guide in Chapter
11.9 for program loading considerations for
&S35424=0.
System/3 RMTGEN Parameters - Page 7.7.16.1
.500.1
HAS P
(The remainder of this page intentionally left blank.)
500.2
&535471
H A 8 P
&835471
Explanation: Variable symbol &835471 specifies
presence or absence of a 5471 Printer-Keyboard on
the 8ystem/3. The 5471 will be used as an operator's
input/output console. The specification must be 1
if a 5471 is present; otherwise it must be O.
Default:
&835471=0
Notes:
1.
If console support is desired, HA8PGEN parameter
RMTnn for this remote must specify MULTI-LEAVING
console support.
2.
Regardless of the setting of &835471, messages
from HA8P can print on the printer. See RMTGEN
parameter &PRTCONS, note 2, and HASPGEN parameter &SPOLMSG.
System/3 RMTGEN Parameters - Page 7.7.17
501
HAS P
&535475
&S35475
Explanation: Variable symbol &S35475 specifies
presence or absence of a 5475 Data Entry Keyboard
on the System/3. The 5475 will be used as an operator's input console. The specification must be 1
if a 5475 is present; otherwise it must be O.
Default:
&S35475=0
Notes:
1.
If &S35471=1, this parameter is ignored.
2.
If console support is desired, HASPGEN parameter RMTnn for this remote must specify MULTILEAVING console support.
3.
For output console specification, see RMTGEN
parameter &PRT.CONS.
System/3 RMTGEN Parameters - Page 7.7.18
5.02
HAS P
&S396COL
&S396COL
Explanation: Variable symbol &S396COL·specifies inclusion or exclusion of the System/3 load-mode punch option.
The specification must be either 0 or 1. If &S396COL
is specified, the resultant System/3 Remote Terminal
Program will be capable of receiving correctly the
punched output of a System/3 RMTGEN.
Default:
&S396COL=O
System/3 RMTGEN Parameters - Page 7.7.19
503
HAS P
7.8
RMTGEN PARAMETERS FOR 2922
To generate a 2922 Remote Terminal Program for HASP MULTI-LEAVING
RJE, the parameters and procedures documented in Sections 7.3 and
10.3 for the System/360 Model 20 BSC should be used, subject to
the following discussion.
Some parameters should be specifically set.
They are:
&PDEV(l) =1403
&PRTSIZE=l32
&UDEV(l) =0
&WDEV(l)=2l52, if the optional typewriter console is installed
&XPARENT=NO, if optional transparency is not installed
&LINESPD=xxxx (the actual line speed used)
Some parameters should not be altered from their default values.
They are:
&CORESIZE
&SUBMOD
&RADR(l)
&UADR(l)
&RDEV(l)
All other Model 20 BSC parameter's may be allowed to default or may
be altered as desired, according to the description in Section 7.3.
2922 RMTGEN Parameters - Page 7.8.1
504
Ii ASP
8.0
HASP CONTROL TABLE FORMATS
Tllis sections contains block diagrams which depict the formats
of the HASP Control Tables which are not described in other
sections of this manual.
HASP Control Table Formats -- Page 8.0-1
505
HAS P
Figure 8.1.1 -- HASP COMMUNICATION TABLE FORMAT
Displacement
Hex.
Dec.
o
o
~-----------------------
4 bytes
------------------------~
$VERSION
-
HASP Version
8
8
SWAIT
Entry to HASP Dispatcher
C
12
SGETBUF
Entry to HASP Buffer "GET" Routine
10
16
$GETPBUF
Entry to HASP RJE Buffer "GET" Routine
14
20
$FREEBUF
Entry to HASP Buffer "FREE" Routine
18
24
$GETUNIT
Entry to HASP Unit "GET" Routine
lC
28
$FREUNIT
Entry to HASP Unit "FREE" Routine
20
32
$QADD
Entry to HASP Job Queue Element "ADD" Routine
24
36
$QGET
Entry to HASP Job Queue Element "GET" Routine
28
40
HASP Communication Table Format
506
-.~
Page 8.1-1
1I ASP
Figure 8.1.1 -- HASP COMMUNICATION TABLE FORMAT (CONTINUED)
Displacement
Hex.
Dec.
28
40
~-----------------------
4 bytes
------------------------~I
$QPUT
Entry to HASP Job Queue Element "PUT" Routine
2C
44
$QREM
Entry to HASP Job Queue Element "REMOVE" Routine
30
48
$QSIZ
Entry to HASP Job Queue "SIZE" Routine
34
52
$QLOC
Entry to HASP Job Queue Element "LOCATE" Routine
38
56
$QJITLOC
Entry to HASP JIT Element "LOCATE" Routine
3C
60
$TRACK
Entry to HASP Track Allocation Routine
40
64
$PURGER
Entry to HASP Track Purge Routine
44
68
$EXCP
Entry to HASP Input/Output Supervisor
48
72
SEXTPOPE
Entry to HASP RTAM Open Routine
4C
76
SEXTPGET
Entry to HASP RTAM Get Routine
50
80
HASP Communication Table Format -- Page 8.1-2
507
HAS P
Figure 8.1.1 -- HASP COMMUNICATION TABLE FORMAT (CONTINUED)
Displacement
Hex.
Dec.
50
80
1-----------------------
4
bytes
-----------------~------1
$EXTPPUT
Entry to HASP RTAM Put Routine
54
84
$EXTPCLO
Entry to HASP RTAM Close Routine
58
88
$RESTORE
Entry to HASP RTAM Restore Routine
5C
92
$ODEL
Entry to HASP Overlay $DELETE Routine
60
96
$ORET
Entry to HASP Overlay $RETURN Routine
64
100
$OLINK
Entry to HASP Overlay $LINK Routine
68
104
$OXCTL
Entry to HASP Overlay $XCTL Routine
6C
108
$OLOAD
Entry to HASP Overlay $LOAD Routine
70
112
$WTO
Entry to HASP Write-to-Operator Routine
74
116
$FREEMSG
Entry to HASP Console Message Buffer Free Routine
78
120
HASP Communication Table Format -- Page 8.1-3
J;()Q
II ASP
Figure 8.1.1 -- HASP COMMUNICATION TABLE FORMAT (CONTINUED)
Displacement
Hex.
Dec.
78
120
~-----------------------
4 bytes
------------------------~
$STIMER
Entry to HASP Set Interval Timer Routine
7C
124
$TTIMER
Entry to HASP Test Interval Timer Routine
80
128
$IOERROR
Entry to HASP Input/Output Error Logging Routine
84
132
$ERROR
Entry to HASP Catastrophic Error Routine
88
136
$DISTERR
Entry to HASP Disastrous Error Routine
BC
140
$SYSTYPE
System Type
MFT or MVT
90
94
98
144
148
152
$HASPECF
156
Initialization
Options
MHASPECB
HASP
Status
$XEQACT
RJE Event
Control Field
O/S Execution
Count
$ENBALL
$DISALL
$DISINT
Enable All
Mask
Disable All
Mask
Disable Int
Timer Mask
$PSRDRCT
$PSPRFCT
$PSPUFCT
Pseudo Printer
Count (1443)
Pseudo Punch
Count (1442)
$EXCPCT
RESERVED
$ACTIVE
Active
Count
RESERVED
RESERVED
$COMMCT
Active Command Count
Active I/O Count
AO
$STATUS
Master Event
Control Field
Pseudo Reader
(2540)
Count
9C
$OPTSTAT
160
HASP Cornmunicatiol1(Table Format -- Page 8.1-4
509
II ASP
Figure 8.1.1 -- HASP COMMUNICATION TABLE FORMAT (CONTINUED)
Displacement
Hex.
Dec.
AD
160
~-----------------------
4 bytes
$CKPTRAK
RES E R V E D
Checkpoint Track
A4
164
------------------------~
$HASPTCB
Address of HASP Task Control Block
A8
168
$PCEORG
Address of First HASP Processor Control Element
AC
172
$BUFPOOL
Address of First Available HASP Buffer
BO
176
$TPBPOOL
Address of First Available HASP RJE Buffer
B4
180
$DCTPOOL
Address of First HASP Device Control Table
B8
184
$JITABLE
Address of HASP Job Information Table
BC
188
$CYLMAP
Address of First HASP Cylinder Module Map
CO
192
$TEDADDR
Address of First Track Extent Data Table
C4
196
$DCBLIST
Address of HASP Direct Access DCB
C8
200
HASP Communication Table Format -- Page 8.1-5
510
HAS P
Fiqurc 8.1.1 -- HASP COMMUNICATION TABLE FORMAT (CONTINUED)
Displacement
Hex.
Dec.
C8
200
~-----------------------
4 bytes
------------------------~
$FREEQUE
Address of First Free HASP Console Message Buffer
CC
204
$BUSYQUE
Console Message Buffers Queued for I/O
DO
208
$LOGQUE
Console Message Buffers Queued for Log Processor
D4
212
$COMMQUE
HASP Commands Queued for Command Processor
D8
216
$PRCHKPT
Address of HASP Print Checkpoint Table
DC
220
HASP Communication Table Format
511
-~
Page 8.1-6
HAS P
Figure 8.1.1 -- HASP COMMUNICATION TABLE FORMAT (CONTINUED)
Displacement
Hex.
Dec.
DC
220
~-----------------------
4 bytes
------------------------~
$SVCRELT
Address of MFT SVC Relocation Table
EO
224
$SVCTABF
Address of MFT SVC Table
E4
228
$SVCTABV
Address of MVT SVC Table
E8
232
$IOSENT
Entry to O/S Input/Output Supervisor
EC
236
$ATTNENT
Entry to lOS Attention Appendage
FO
240
$XSMFENT
Entry to SMF EXCP Counting Routine
F4
244
$SVRSET
Entry to HASP SVC Reset Routine
F8
248
HASP Communication Table Format -- Page 8.1-7
512
II /\ S P
Figure B.l.l -- HASP COMMUNICATION TABLE FORMAT (CONTINUED)
Displacement \.. _______________________ 4 bytes ___________________ ~---- . .
Hex.
Dec.
FB
24B
I
$WAITENT
Entry to IGCOOl "(WAIT)
FC
252
$LINKENT
Entry to IGC006 (LINK)
100
256
$XCTLENT
Entry" to IGC007 (XCTL)
104
$TIMENT
260
Entry to IGCOll (TIME)
lOB
$SVCIOS
264
Address of EXCP SVC Table Entry
10C
$SVCLINK
268
Address of LINKSVC Table Entry
110
$SVCWTO
272
WTO/WTOR SVC Table Entry
114
$SVCWTL
276
WTL SVC Table Entry
IlB
$ATTNSAV
2BO
....
......
1~___________
1_2_-_B_y_t_e___A_t_t_e_n_t_1_o_n__A
__
p_p_e_n_d_a_g_e__S_a_v_e__A_r_e_a____________
124
~J __~~
292
HASP Communication Table Format
513
~-
Page 8.1-8
HAS P
Figure 8.1.1 -- HASP COMMUNICATION TABLE FORMAT (CONTINUED)
Di~placement
Hex.
Dec.
124
292
r------------------------
4 bytes
------------------------~
--~-
$JOBQPTR
Address of HASP Job Queue
128
296
$JQFREE
Beginning of Free Job Queue Element Chain
12C
300
$JQENT
Beginning of Active Job Queue Element Chain
130
304
$XEQTOTL
Cumulative Estimated Execution Time
134
308
$PRTTOTL
Cumulative Lines to be printed
138
312
$PUNTOTL
Cumulative Cards to be Punched
13C
316
$JOBNO
$MSGRPNO
HASP Job Number
140
320
Last Console Track
$DACKPT
1~_____________
v_a_r_l_a_b_l_e__L_e_n_g__
th
___
DA
___C_h_e_c_k_p_O_l_n_t__A_r_e_a____________
__
~r ~
HASP Communication Table Format -- Page 8.1-9
514
HAS P
Figure 8.1.1 -- HASP COMMUNICATION TABLE FORMAT (CONTINUED)
Displacement
Hex. Dec.
Field Name
Bytes
Field Description
.
0
0
$VERSION
8
HASP Version (" V v.m
8
8
$WAIT
4
Entry to HASP Dispatcher.
C
12
$GETBUF
4
Entry to HASP Buffer "GET" Routine.
10
16
$GETPBUF
4
Entry to HASP RJE Buffer "GET" Routine.
14
20
$FREEBUF
4
Entry to HASP Buffer "FREE" Routine.
18
24
$GETUNIT
4
Entry to HASP unit "GET" Routine.
lC
28
$FRELNIT
4
Entry to HASP Unit "FREE" Routine.
20
32
$QADD
4
Entry to HASP Job Queue Element "ADD" Routine.
24
36
$QGET
4
Entry to HASP Job Queue Element "GET" Routine.
28
40
$QPUT
4
Entry to HASP Job Queue Element "PUT" Routine.
2C
44
$QREM
4
Entry to HASP Job Queue Element "REMOVE"
Routine.
30
48
$QSIZ
4
Entry to HASP Job Queue "SIZE" Routine.
34
52
$QLOC
4
Entry to HASP Job Queue Element "LOCATE"
Routine.
38
56
$QJITLOC
4
Entry to HASP Job Information Table Element
"LOCATE" Routine.
3C
60
$TRACK
4
Entry to HASP Track Allocation Routine.
40
64
$PURGER
4
Entry to HASP Track Purge Routine.
44
68
$EXCP
4
Entry to HASP Input/Output Supervisor.
48
72
$EXTPOPE
4
Entry to HASP RTAM Open Routine.
4C
76
$EXTPGET
4
Entry to HASP RTAM Get Routine.
50
80
$EXTPPUT
4
Entry to HASP RTAM Put Routine.
54
84
$EXTPOPE
4
Entry to HASP RTAM Close Routine.
58
88
$RESTORE
4
Entry to HASP RTAM Restore Routine.
")
HASP Communication Table Format -- Page 8.1-10
II ASP
Fiqurc 8.1.1 -- HASP COMMUNICATION TABLE FORMArI' (CONTINUED)
Displacement
Hex.
Dec.
Field Name
Bytes
Field Description
SC
92
$oDEL
4
Entry to HASP Overlay $DELE'I'E Routine.
60
96
$oRET
4
Entry to HASP Overlay $RETURN Routine.
64
100
$oLINK
4
Entry to HASP Overlay $LINK Routine.
68
104
$oXCTL
4
Entry to HASP Overlay $XCTL Routine.
6C
108
$0 LOAD
4
Entry to HASP Overlay $ LOAD Routine.
70
112
$WTo
4
Entry to HASP Write-to-Operator Routine.
74
116
$FREEMSG
4
Entry to HASP Console Message Buffer
Free Routine.
78
120
$STIMER
4
Entry to HASP Set Interval Timer Routine.
7C
124
$TTIMER
4
Entry to HASP Test Interval ;rimer Routine.
80
128
$IoERRoR
4
Entry to HASP Input/Output Error Logging
Routine.
84
132
$ERRoR
4
Entry to HASP Catastrophic Error Routine.
88
136
$DISTERR
4
Entry to HASP Disastrous Error Routine.
8C
140
$SYSTYPE
1
System Type -Hex.
Value
10
14
20
8D
141
$oPTSTAT
1
Meaning
MVT
MPS
MFT
Initialization Options -Bit
Name
0
$oPTFMT
$oPTCOLD
$OPTREQ
$OPTREP
$OPTLIST
$OPTRACE
1
2
3
4
S
6-7
Meaning
FORMAT.
COLD.
REQ.
REP.
LIST.
TRACE.
Reserved for Future Use.
HASP Communication Table Format -- Page 8.1-11
516
HAS P
Figure 8.1.1 -- HASP COMMUNICATION TABLE FORMAT (CONTINUED)
Displacement
Hex.
Dec.
8E
142
Field Name
$STATUS
Bytes
1
Field Description
HASP Status -Bit
Name
o
1
$RDRPEND
$ALMSGSW
2
3
4
$DRAINED
$CKPTACT
$JITCKPT
5
$SYSEXIT
6-7
8F
143
90
144
$HASPECF
Reserved for Future Use.
1
Master Event Control Field
Bit
Name
o
2
$EWFPOST
$EWFBUF
$EWFTRAK
3
$EWFJOB
4
6
$EWFUNIT
$EWFCKPT
$EWFCMB
7
$EWF8
5
145
MHASPECF
O/S Reader is Pending.
ALL AVAILABLE FUNCTIONS
COMPLETE Message has been
Issued.
System has been $DRAINed.
Checkpoint is in Progress.
Job Information Table (JIT)
is to be Checkpointed.
HASP System is in termination
process.
Reserved for Future Use.
1
1
91
Meaning
1
Meaning
A PCE has been $POSTed.
A Buffer has been Released.
A Direct-Access Track has
been Released.
A Job Queue Element has
Changed Status.
A HASP Unit has been Released.
A HASP Checkpoint has Completed.
A Console Message Buffer has
been Released.
Reserved for Future Use.
Remote Job Entry Line Manager Event
Control Field
Bit
Name
0-2
3
$EWFJOB
4-7
Meaning
Reserved - Must be Zero.
A Job Queue Element has
Changed Status.
Reserved - Must be Zero.
HASP Communication Table Format -- Page 8.1·-12
517
HAS P
Figure 8.1.1 -- HASP COMMUNICATION TABLE FORMAT (CONTINUED)
Displacement
Hex. Dec.
Field Name
Bytes
Field Description
92
146
$XEQACT
1
Count of Jobs in O/S Execution Phase.
93
147
$ACTIVE
1
Count of Active Processors.
94
148
$ENBALL
1
$ENABLE ALL Mask (X'FF').
95
149
$DISALL
1
$DISABLE ALL Mask (XIOO').
96
150
$DISINT
1
$DISABLE INT Mask (X'FE').
97
151
1
Reserved for Future Use.
98
152
$PSRDRCT
1
Count of Pseudo 2540 Readers.
99
153
$PSPRFCT
1
Count of Pseudo 1443 Printers.
9A
154
$PSPUFCT
1
Count of Pseudo 1442 Punches.
9B
155
1
Reserved for Future Use.
9C
156
$EXCPCT
2
count of Active I/O Operations.
9E
158
$COMMCT
2
Number of Console Message Buffers which
are not Queued for the HASP Command Processor.
AO
160
$CKPTRAK
2
Checkpoint Track.
A2
162
2
Reserved for Future Use.
A4
164
$HASPTCB
4
Address of HASP Task Control Block.
A8
168
$PCEORG
4
Address of First HASP Processor Control
Element.
AC
172
$BUFPOOL
4
Address of First Available HASP Buffer.
BO
176
$TPBPOOL
4
Address of First Available HASP RJE Buffer.
B4
180
$DCTPOOL
4
Address of First HASP Device Control Table.
B8
184
$JITABLE
4
Address of HASP Job Information Table.
BC
188
$CYLMAP
4
Address of First HASP Track Allocation Map.
co
192
$TEDADDR
4
Address of First Track Extent Data Table.
HASP Communication Table Format -- Page 8.1-13
518
HAS P
Figure S.l.l -- HASP COMMUNICATION TABLE FORMAT ( CONTINUED)
Displacement
Hex.
Dec.
Field Name
Bytes
Field Description
C4
196
$DCBLIST
4
Address of HASP Direct Access DCB.
CS
200
$FREEQUE
4
Address of First Free HASP Console
Message Buffer.
CC
204
$BUSYQUE
4
Address of First Console Message Buffer
which is Queued for I/O.
DO
20S
$LOGQUE
4
Address of First Console Message Buffer
which is Queued for the Log Processor.
D4
212
$COMMQUE
4
Address of First Console Message Buffer
which is Queued for the Command Processor.
DS
216
$PRCHKPT
4
Address of HASP Print Checkpoint Table.
DC
220
$SVCRELT
4
Address of MFT SVC Relocation Table.
EO
224
$SVCTABF
4
Address of MFT SVC Table.
E4
22S
$SVCTABV
4
Address of MVT SVC Table.
ES
232
$IOSENT
4
Address of Entry to O/S Input/Output
Supervisor.
EC
236
$ATTNENT
4
Address of Entry to lOS Attention Appendage.
FO
240
$XSMFEMT
4
Address of Entry to SMF EXCP Counting
Routine.
F4
244
$SVRSET
4
Address of Entry to HASP SVC Reset Routine.
F8
248
$WAITENT
4
Address of Entry to IGCOOI (WAIT) .
FC
252
$LINKENT
4
Address of Entry to IGC006 (LINK) .
100
256
$XCTLENT
4
Address of Entry to IGC007 (XCTL) .
104
260
$TIMENT
4
Address of Entry to IGCOll (TIME) .
108
264
$SVCIOS
4
Address of EXCP SVC Table Entry.
10C
268
$SVCLINK
4
Address of LINK SVC Table Entry.
HASP COITnllunication Table Format --- Page 8.1-14
519
II ASP
Figure 8.1.1 -- HASP COMMUNICATION TABLE FORMAT (CONTINUED)
Displacement
Hex. Dec.
Field Name
Bytes
Field Description
110
272
$SVCWTO
4
WTO/WTOR SVC Table Entry.
114
276
$SVCWTL
4
WTL SVC Table Entry.
118
280
$ATTNSAV
12
124
292
$JOBQPTR
4
Address of HASP Job Queue.
128
296
$JQFREE
4
Beginning of Free Job Queue Element Chain.
l2C
300
$JQENT
4
Beginning of Active Job Queue Element Chain.
130
304
$XEQTOTL
4
Cumulative Estimated Execution Time.
134
308
$PRTTOTL
4
Cumulative Lines to be Printed.
138
312
$PLNTOTL
4
Cumulative Cards to be Punched.
l3C
316
$JOBNO
2
HASP Job Number.
13E
318
$MSGRPNO
2
Last Remote Console Message Queueing Track.
140
320
$DACKPT
Attention Appendage Save Area.
. Variable Length Direct Access Checkpoint Area.
HASP Communication Table Format -- Page 8.1-15
520
HAS P
Figure 8.2.1 -- PROCESSOR CONTROL ELEMENT FORMAT
Displacement
Hex.
o
Dec.
0
~-----------------------
4 bytes
------------------------~
PCESAVEA
RES E R V E D
4
4
PCEPREV
Address of Previous Processor Control Element
8
8
PCENEXT
Address of Next Processor Control Element
C
12
PCELINK
Processor Register 14
10
16
(LINK) Storage
PCER15
Processor Register 15 Storage
14
20
PCERO
Processor Register 0 Storage
18
24
PCER1
Processor Register 1 Storage
lC
28
PCEWA
Processor Register 2 (WA) Storage
20
32
PCEWB
Processor Register 3 (WB) Storage
24
36
PCEWC
Processor Register 4 (WC) Storage
28
40
Processor Control Element Format -- Page 8.2-1
521
HAS P
Figure 8.2.1 -- PROCESSOR CONTROL ELEMENT FORMAT (CONTINUED)
Displacement
Hex.
Dec.
28
40
~-----------------------
4 bytes
------------------------~
PCEWD
Processor Register 5 (WD) Storage
2C
44
PCEWE
Processor Register 6 (WE) Storage
30
48
PCEWF
Processor Register 7 (WF) Storage
34
52
PCEWG
PCEBASE3
Processor Register 8 (WG or BASE 3 ) Storage
38
56
PCER9
Processor Register 9 Storage
3C
60
PCEJCT
Processor Register 10 (JCT) Storage
40
64
PCEBASEJ.
Processor Register 11 (BASEl) Storage
44
68
PCEBASE2
Processor Register 12 (BASE2 ) Storage
48
72
PCEEWF
PCEID
Event Wait Field
4C
PCEOPRIO
76
RESERVED
50
Overlay
Priority
Processor Type
PCEOCON
Overlay Routine OCON
80
Processor Control Element Format -- Page 8.2-2
II ASP
Figure 8.2.1 -- PROCESSOR CONTROL ELEMENT FORMAT (CONTINUED)
Displacement
Hex.
Dec.
50
80
~-----------------------
4 bytes
------------------------~
PCEORTRN
Overlay Supervisor Register ,14
54
(LINK)
Storage
PCEOPCE
84
Chain of PCEs Using Same Overlay Routine
58
88
PCEWORK
,
Variable Length Processor Work Area
'
1________----'1
Processor Control Element Format -- Page 8.2-3
523
II ASP
Figure 8.2.1 -- PROCESSOR CONTROL ELEMENT FORMAT ( CONTINUED)
Dis12lacement
Hex.
Dec.
Field Name
Bytes
Field Description
0
0
PCESAVEA
4
Reserved.
4
4
PCEPREV
4
Address of Previous Processor Control
Element.
8
8
PCENEXT
4
Address of Next Processor Control Element.
C
12
PCELINK
4
Processor Register 14 (LINK) Storage.
10
16
PCER15
4
Processor Register 15 Storage.
14
20
PCERO
4
Processor Register 0 Storage.
18
24
PCERl
4
Processor Register 1 Storage.
1C
28
PCEWA
4
Processor Register 2 (WA) Storage.
20
32
PCEWB
4
Processor Register 3 (WB) Storage.
24
36
PCEWC
4
Processor Register 4 (We) storage.
28
40
PCEWD
4
Processor Register 5 (WD) Storage.
2C
44
PCEWE
4
Processor Register 6 (WE) Storage.
30
48
PCEWF
4
Processor Register 7 (WF) Storage.
34
52
PCEWG
PCEBASE3
4
Processor Register 8 (WG or BASE3)
Storage.
38
56
PCER9
4
Processor Register 9 Storage.
3C
60
PCEJCT
4
Processor Register 10 (JCT) Storage.
40
64
PCEBASEl
4
Processor Register 11 (BASEl) Storage.
44
68
PCEBASE2
4
Processor Register 12 (BASE2) Storage.
Processor Control Element Format -- Page 8.2-4
HAS P
Figure S.2.1 -- PROCESSOR CONTROL ELEMENT FORMAT (CONTINUED)
Displacement
Hex.
Dec.
4S
72
Field Name
PCEEWF
Bytes
2
Field Description
Event Wait Field -Hex.
Value
Byte 1
Byte 2
4A
74
PCEID
2
Byte 1
Name
40
20
$EWFPOST
$EWFBUF
$EWFTRAK
10
OS
04
$EWFJOB
$EWFUNIT
$EWFCKPT
02
$EWFCMB
01
$EWF8
SO
$EWFOPER
40
$EWFIO
20
10
OS
04
02
01
$EWFWORK
$EWFHOLD
$EWFDDB
$EWFOLAY
$EWF15
$EWFOROL
so
Meaning
Reserved.
Waiting for a Buffer.
Waiting for HASP
Direct-Access Space.
Waiting for a Job.
Waiting for a Unit.
Waiting for the completion
of a HASP Checkpoint.
Waiting for a Console
Message Buffer.
Reserved for Future Use.
Waiting for Operator
Response.
Waiting for the Completion
of I/O.
Waiting to be Re-directed.
Waiting for a $S Command.
Waiting for a DDT or UCB.
Waiting for an Overlay Area.
Reserved for Future Use.
Relinquished Overlay Area.
Processor Type
Bit
Name
0
1
2-4
PCEPRSID
PCEPUSID
S
PCEINRID
PCERJEID
PCELCLID
6
7
Meaning
Print Processor.
Punch Processor.
Reserved for Future Use.
Internal Reader Processor.
Remote Terminal Processor.
Local Processor.
Processor Control Element Format -- Page 8.2-5
525
HAS P
Figure 8.2.1 -- PROCESSOR CONTROL ELEMENT FORMAT (CONTINUED)
Displacement
Hex.
Dec.
Field Name
Bytes
Field Description
Processor Type (continued) -Hex.
Value
Byte 2
4C
76
4D
77
4E
00
01
03
04
05
07
08
09
OA
OB
OC
OD
OE
OF
Name
PCEASYID
PCERDRID
PCEXEQID
PCETHWID
PCEXZMID
PCEPRTID
PCEPUNID
PCEPRGID
PCECONID
PCEMLMID
PCETIMID
PCECKPID
PCEGPRID
PCEOROID
Meaning
ASYNCH Processor.
Input Service Processor.
Execution Service Processor.
Execution Thaw Processor.
Execution Task Monitor.
Print Processor.
Punch Processor.
Purge Processor.
Console Processor.
Line Manager Processor.
Timer Processor.
Checkpoint Processor.
Priority Aging Processor.
Overlay Roll Processor.
1
Reserved for Future Use.
PCEOPRIO
1
Priority of Current Overlay Routine.
78
PCEOCON
2
Overlay Constant (OCON) of Current Overlay
Routine.
50
80
PCEORTRN
4
Overlay Supervisor Register 14 (LINK) Storage.
54
84
PCEOPCE
4
Chain of PCEs Using Same Overlay Routine.
58
88
PCEWORK
Variable Length Processor Work Area.
Processor Control Element Format
526
--~
Page 8.2-6
HAS P
Figure 8.3.1 -- BUFFER FORMAT
Displacement
Hex.
Dec.
o
o
4
4
r----------------------10BFLAG:L
10BFLAG2
I/O Flags
I/O Flags
8
---------------------:.--1
IOBSENSO
10BSENSl
First
Sense Byte
Second
Sense Byte
10BECBPT
IOBECBCC
8
4 bytes
IOBFLAG3
Address of HASP Event Control Block
IOBCSW
I/O Flags
Channel Status Word
10
16
10BSTART
10BSI0CC
14
20
-
Address of Channel Program
10BDCBPT
Address of Data Control Block
18
24
IOBRESTR
IOBREPM
lC
28
Restart Address of Channel Program
10DINCAM
10BERRCT
Block Count Increment
20
32
10BXTENT
Error Count
10BSEEK
Extent Index
Seek Address {Direct-Access Only}
28
-
40
Buffer Format -- Page 8.3-1
527
HAS P
Figure 8.3.1 -- BUFFER FORMAT (CONTINUED)
Displacement
Hex.
Dec.
28
40
~-----------------------
44
Buffer Chain Field
I
BUFDCT
BUFTYPE
30
------------------------~
BUFCHAIN
BUFECBCC
2C
4 bytes
Address of Device Control Table
I
BUFEWF
48
Event Wait Field or Post Address
34
52
RES E R V E D
38
IOBCCWl.
56
f-
40
Channel Command Word 2
-
Channel Command Word 3
-
IOBCCW3
72
-
50
-
IOBCCW2
64
-
48
Channel Command Word 1
80
Buffer Format -- Page 8.3-2
528
HAS P
Figure 8.3.1 -- BUFFER FORMAT (CONTINUED)
Displacement
Hex.
Dec.
50
80
~-----------------------
4 bytes ------------------------ . .
1
~UFSTART
1
Variable Length Buffer
1L-.-_ _---'J
Buffer Format -- Page 8.3-3
529
11 ASP
Figure 8.3.1 -- BUFFER FORMAT (CONTINUED)
Displacement
Hex.
Dec.
Field Name
Bytes
Field Description
o
o
IOBFLAGl
1
standard OS/360 lOB Flag Byte.
1
1
IOBFLAG2
1
standard OS/360 lOB Flag Byte.
2
2
IOBSENSO
1
First Sense Byte (Device Dependent) .
3
3
IOBSENSl
1
Second Sense Byte (Device Dependent) .
4
4
IOBECBCC
1
Completion Code for I/O Event.
4
4
IOBECBPT
4
Address of HASP Event Control Block:
$HASPECB.
8
8
IOBFLAG3
1
I/O Supervisor Error Routine Flag Byte
(Device Dependent) .
9
9
IOBCSW
7
Low-Order Seven Bytes of the Last CSW
that Reflects the Status of the
Last Request.
10
16
IOBSIOCC
1
Condition Code Returned after Execution
of SIO Instruction for Last Request.
10
16
IOBSTART
4
Address of Channel Program to be
Executed.
14
20
IOBDCBPT
4
Address of Data Control Block Associated
with this lOB.
18
24
IOBREPM
1
Operation Code Used by I/O Supervisor
Error Routines for Repositioning
Procedures.
18
24
IOBRESTR
4
Restart Address of Channel Program Used
by I/O Supervisor Error Routines During
Error Correction.
lC
28
IOBINCAM
2
Value used to Increment Block Count
Field in DCB for Magnetic Tape.
IE
30
IOBERRCT
2
Used by r/o Supervisor Error Routines
to Count Temporary Errors during Retry.
20
32
IOBXTENT
1
The Number of the DEB Extent to be
Used for this Request.
Buffer Format -- Page 8.3-4
530
Figure 8.3.1 -- BUFFER FORMAT (CONTINUED)
Displacement
Hex.
Dec.
Field Name
Bytes
Field Description
21
33
IOBSEEK
7
Seek Address Required for this I/O
Request (Direct-Access Only).
28
40
BUFECBCC
1
Completion Code for I/O Event -Hex.
Value
00
7F
other
Meaning
The I/O Event has not Completed.
The I/O Event has Completed
Successfully.
The I/O Event has Completed
Unsuccessfully.
28
40
BUFCHAIN
4
Buffer Chain Field.
2C
44
BUFTYPE
1
Buffer Type -Hex.
Value
00
Name
HASPBUF
Meaning
HASP Buffer
2C
44
BUFDCT
4
Address of Device Control Table Associated
with this I/O Request.
30
48
BUFEWF
4
Event wait Field or Post Address.
34
52
4
Reserved for Future Use.
38
56
IOBCCWl
8
Channel Command Wo.rd 1.
40
64
IOBCCW2
8
Channel Command Word 2.
48
72
IOBCCW3
8
Channel Command Word 3.
50
80
BUFSTART
Variable Length Buffer.
Buffer Format -- Page 8.3-5
HAS P
Figure 8.3.2 -- REMOTE JOB ENTRY BUFFER FORMAT
Displacement
Hox.
o
4
Dec.
0
4
~----------------------IOBFLAG1
IOBFLAG2
I/O Flags
I/O Flags
------------------------~
IOBSENSO
IOESENS1
First
Sense Byte
Second
Sense Byte
IOBECBPT
IOBECBCC
8
4 bytes
Address of HASP Event Control Block
IOBCSW
8
RESERVED
Channel Status Word
10
16
IOBSTART
IOBSIOCC
14
20
Address of Channel Program
IOBDCBPT
Address of Data Control Block
18
24
IOBRESTR
Address of First
lC
28
32
36
Address of Last Remote Carriage Control
TPBFDATA
TPBRECNT
28
RES E R V E D
TBPLCCAD
TPBLCCC
24
in Channel Program
TPBMXREC
Maximum
Record Count
20
ccw
Remote nata Pointer
40
Buffer Formqt -- Page 8.3-6
HAS P
Figure 8.3.2 -- REMOTE JOB ENTRY BUFFER FORMAT (CONTINUED)
Displacement
Hex.
Dec.
28
40
~-----------------------
4 bytes
BUFCHAIN
Buffer Chain Field
BUFECBCC
2C
44
BUFDCT
Address of Line DCT
BUFTYPE
30
------------------------~
BUFEWF
48
Address of Event Wait Field
34
38
52
56
LCBMCB
LCBACK
Mode Byte
Next
Acknowledge
LCBRCB
Response Control Block
IOBCCWl
Channel Command Word 1
"-
-
MSEQTYPE
40
64
IOBCCW2
I-
48
-
Channel Command Word 3
-
IOBCCW3
72
r-
50
Channel Command Word 2
80
Buffer Format -- Page 8.3-7
533
HAS P
Figure 8.3.2 -- REMOTE JOB ENTRY BUFFER FORMAT (CONTINUED)
Displacement
Hex.
Dec.
50
80
~-----------------------
88
104
-
Channel Command Word 6
-
Channel Command Word 7
-
Channel Command Word 8
-
IOBCCW8
112
~
78
Channel Command Word 5
IOBCCW7
r-
70
-
IOBCCW6
96
-
68
Channel Command Word 4
IOBCCW5
r-
60
------------------------~
IOBCCW4
r-
58
4 bytes
120
Buffer Format -- Page 8.3-8
534
HAS P
Figure
8.3.2 -- REMOTE J"OB ENTRY BUFFER FORMAT
Displacement
Hex.
Dec.
78
120
~-----------------------
I
1
4 bytes
(CONTINUED)
-------------------------1
TPBUFST
Variable Length Buffer
J
Buffer Format -- Page 8.3-9
535
II ASP
Figure 8.3.2 -- REMOTE JOB ENTRY BUFFER FORMAT (CONTINUED)
Displacement
Hex. Dec.
Field Name
Bytes
Field Description
o
o
IOBFLAGl
1
Standard OS/360 lOB Flag Byte.
1
1
IOBFLAG2
1
Standard OS/360 lOB Flag Byte.
2
2
IOBSENSO
1
First Sense Byte (Device Dependent).
3
3
IOBSENSl
1
Second Sense Byte (Device Dependent) .
4
4
IOBECBCC
1
Completion Code for I/O Event.
4
4
IOBECBPT
4
Address of HASP Event Control Block:
$HASPECB.
8
8
1
Reserv'ed.
9
9
IOBCSW
7
Low Order Seven Bytes of the Last CSW
that Reflects the Status of the Last
Request.
10
16
IOBSIOCC
1
Condition Code Returned after Execution
of SIO Instruction for Last Request
10
16
IOBSTART
4
Address of Channel Program to be Executed.
14
20
IOBDCBPT
4
Address of Data Control Block Associated
with this lOB.
18
24
IOBRESTR
4
Address of Normal Channel Program to be
Executed.
lC
28
TPBMXREC
1
Maximum Output Record Count.
lD
29
3
Reserved for Future Use.
20
32
TPBLCCC
1
Last Output Channel Command Operation.
20
32
TPBLCCAD
4
Address of Last Remote Carriage Control.
24
36
TPBRECNT
1
Current Output Record Count.
24
36
TPBFDATA
4
Address of Next Data in Buffer.
28
40
BUFECBCC
1
Completion Code for I/O Event.
28
40
BUFCHAIN
4
Buffer Chain Field.
Buffer Format -- Page 8.3-10
HAS P
Figure 8.3.2 -- REMOTE JOB ENTRY BUFFER FORMAT (CONTINUED)
Displacement
Hex.
Dec.
2C
44
Field Name
BUFTYPE
Bytes
I
Field DescriEtion
Buffer Type -Hex.
Value
80
Name
TPBUF
Meaning
Remote Job Entry Buffer
2C
44
BUFDCT
4
Address of Line Device Control Table
Associated with this I/O Request.
30
48
BUFEWF
4
Address of Event Wait Field.
34
52
LCBMCB
I
Mode Byte Used to Set SDA Mode.
35
53
LCBACK
I
BSC:
STR:
Next Acknowledgement Character
(Expected or to be Sent).
Second Mode Byte.
Response Control Block.
Unused.
36
54
LCBRCB
2
BSC:
STR:
38
56
IOBCC\~l
8
Channel Command Word 1.
3D
61
MSEQTYPE
1
Sequence and Command Type,,--
Bits 0-3
Sequence Type
Bit
Name
0
MBSCSEQ
Value
0
1
1
MPREPSEQ
2
MWRITSEQ
0
1
0
1
3
MCPUSEQ
0
1
Meaning
STR Sequence.
BSC Sequence.
Text Sequence.
Prepare Sequence.
Read Sequence.
write Sequence.
Hardware Sequence.
CPU Sequence.
Buffer Format ._- Page 8.3-11
537
HAS P
Figure 8.3.2 -- REMOTE JOB ENTRY BUFFER FORMAT (CONTINUED)
Displacement
Hex.
Dec.
Field Name
Bytes
Fi~ld
Description
Sequence and Command Type (continued)
Bits 4-7
--
Command Type
Hex.
Value
0
1
2
3
4
5
6
7
8
9
A
B
Name
MDISCMD
MSETMCMD
MENBCMD
MTSYNCMD
MREADCMD
MRRSPCMD
MRREQCMD
MPREPCMD
MWRITCMD
MWRSPCMD
MWENQCMD
MSEOTCMD
Meaning
Disable Command.
Set Mode Command.
Enable Command.
Test Synch Command.
Read Text Command.
Read Response (Normal) .
Read Response (To ENQ) .
Prepare Command.
write Text Command.
write Response Command.
Send Inquiry Command.
Send EOT Command.
40
64
IOBCCW2
8
Channel Command Word 2.
48
72
IOBCCW3
8
Channel Command Word 3.
50
80
IOBCCW4
8
Channel Command Word 4.
58
88
IOBCCW5
8
Channel Command Word 5.
60
96
IOBCCW6
8
Channel Command Word 6.
68
104
IOBCCW7
8
Channel Command Word 7.
70
112
IOBCCW8
8
Channel Command Word 8.
78
120
TPBUFST
Variable Length Buffer.
Buffer Format -- Page 8.3-12
538
HAS P
Figure 8.3.3 -- OVERLAY AREA FORMAT
Displacement
Hex.
Dec.
o
o
4
4
~----------------------IOBFLAGl
IOBFLAG2
I/O Flags
I/O Flags
8
------------------------1
IOBSENSO
IOBSENSl
First
Sense Byte
Second
Sense Byte
10BECBPT
Address of HASP Event Control Block
10BECBCC
8
4 bytes
IOBFLAG3
IOBCSW
I/O Flags
Channel Status Word
10
16
10BSTART
Address of Channel Program
10BSI0CC
14
20
-
10BDCBPT
Address of Data Control Block
18
24
10BRESTR
IOBREPM
lC
Restart Address of Channel Program
I
IOBERRCT
28
RE S E R V E D
20
32
IOBXTENT
Error Count
IOBSEEK
Extent Index
Seek Address
28
-
40
Buffer Format -- Page 8.3-13
539
HAS P
Figure 8.3.3 -- OVERLAY AREA FORMAT (CONTINUED)
Displacement
Hex.
Dec.
28
40
~-----------------~----- 4 bytes ------------------------~
BUFCHAIN
Buffer Chain Field
BUFECBCC
2C
BUFDCT
44
Address of OLAY OCT
BUFTYPE
30
BUFEWF
48
Address of Overlay Service Asynchronous Exit
34
OACECHN
52
Overlay Area Chain Word
38
IOBCCWl
56
-
40
Channel Command Word I
-
IO:aCCW2
64
Channel Command Word 2
44
OACEPRIO
68
RESERVED
48
Overlay Call Constant
IOBCCW3
72
I-
50
Overlay
Priority
OACEOCON
Channel Command Word 3
-
80
Buffer Format -- Page 8.3-14
540
HAS P
Figure 8.3.3 -- OVERLAY AREA FORMAT (CONTINUED)
Displacement
Hex.
Dec.
50
80
r-----------------------
4 bytes
------------------------1
OACENAME
Name of Overlay Routine
54
84
OACEASMO
Assembly Origin of Overlay Routine
58
OACEPROG
88
Entry Point of Overlay Routine
5C
92
'"
Var1able Length Overlay Area
OACEPCE
Chain of peEs Using Overlay Area
Buffer Format -- Page 8.3-15
541
HAS P
Figure 8.3.3 -- OVERLAY AREA FORMAT (CONTINUED)
Displacement
Hex. Dec.
Field Name
Bytes
Field Description
o
o
IOBFLAGl
1
standard OS/360 lOB Flag Byte.
1
1
IOBFLAG2
1
standard OS/360 lOB Flag Byte.
2
2
IOBSENSO
1
First Sense Byte (Device Dependent) .
3
3
IOBSENSl
1
Second Sense Byte (Device Dependent) .
4
4
IOBECBCC
1
Completion Code for Overlay Read.
4
4
IOBECBPT
4
Address of HASP Event Control Block:
$HASPECB .
8
8
IOBFLAG3
1
I/O Supervisor Error Routine Flag Byte
(Device Dependent).
9
9
IOBCSW
7
Low Order Seven Bytes of the Last CSW
that Reflects the Status of the Last Read.
10
16
IOBSIOCC
1
Condition Code Returned After the Execution
of the SIO Instruction for the Last Read.
10
16
IOBSTART
4
Address of the Channel Program to be
Executed.
14
2Q
IOBDCBPT
4
Address of the Data Control Block Associated
with this lOB.
18
24
IOBREPM
1
Operation Code Used by I/O Supervisor
Error Routines for Repositioning Procedures.
18
24
IOBRESTR
4
Restart Address of Channel Program Used by
I/O Supervisor Error Routines During Error
Correction.
lC
28
2
Reserved.
IE
30
IOBERRCT
2
Used by I/O Supervisor Error Routines
to Count Temporary Errors During Retry.
20
32
IOBXTENT
1
The Number of the DEB Extent to be Used
for this Read.
21
33
IOBSEEK
7
The Seek Address for the Requested Overlay
Routine.
Buffer Format -- Page B.3-16
542
H l\ S P
Fiqure 8.3.3 -- OVERLAY AREA FORMAT (CONTINllliD)
Displacement
Hex.
Dec.
28
40
Field Name
Bytes
BUFECBCC
1
Field Description
Completion Code for Overlay Read --,
Hex.
Value
Meaning
00
7F
other
The Read,has not Completed.
The Read has Completed Successfully.
The Read has Completed Unsuccessfully.
28
40
BUFCHAIN
4
Buffer Chain Field.
2C
44
BUFTYPE
1
Buffer Type -Hex.
Value
40
,Name
OLAYBUF
Meaning.
Overlay Area.
2C
44
BUFDCT
4
Address of Overlay Device Control Table.
30
48
BUFEWF
4
Address of Overlay Service Asynchronous Exit.
34
52
OACECHN
4
Overlay Area Chain Word.
38
56
IOBCCWl
8
Channel Command Word 1.
40
64
IOBCCW2
8
Channel Command Word 2.
44
68
1
Reserved for Future Use.
45
69
OACEPRIO
1
Priority of Current Overlay Routine.
46
70
OACEOCQ\J
2
Overlay Constant (OeON)
Routine.
48
72
IOBCCW3
8
Channel Command Word 3.
50
80
OACENAME
4
Name of Overlay Routine.
54
84
OACEASMO
4
Assembly Origin of Overlay Routine.
58
88
OACEPROG
of Current Overlay
Entry Point of Overlay Routine.
Variable Length Overlay Area
OACEPCE
4
Chain of PCEs Using Overlay Area.
Buffer Format -- Page 8.3-17
543
HAS P
Figure 8.4.1 -- CONSOLE MESSAGE BUFFER FORMAT
Displacement
Hex.
o
Dec.
~-----------------------
0
4 bytes
------------------------~
CMBCHAIN
Address of Next Console Message Buffer
4
8
4
8
CMBFLAGS
CMBCONS
CMBMSGL
CMBPRIO
CMBCLASS
Flags
Consoles
Specified
Message
Length
Prio & Class
CMBMSG
CMBMARK
CMBTIME
Attention
Indicator
Start of
Message
C
-
12
Time of Day
f.-
10
16
14
20
CMBJOBNO
Job Number
I-
18
24
lC
28
CMBTEXT
......
1~
8C
_________________
-
......
l~
1_1_2__B_y_t_e__M_e_s_s_a_g_e___
T-ex--t--A-r-e_a_________________
140
Console Message Buffer Format -- Page 8.4-1
544
HAS P
Figure 8.4.1 -- CONSOLE MESSAGE BUFFER FORMAT (CONTINUED)
Displacement
Hex.
Dec.
Field Name
Bytes
Field Description
o
o
CMBCHAIN
4
Address of Next Console Message;Buffer.
4
4
CMBFLAGS
1
Console Buffer Flags -Bit
Name
o
WCMBFD
1
2
WCMBFH
WCMBFE
WCMBFF
WCMBFG
WCMBFA
WCMBFB
WCMBFC
3
4
5
6
7
Meaning
CMBCONS Contains
Consoles.
Operation Type.
Message for HASP
CMBCONS Contains
CMBCONSContains
Reserved for
Command
Processor.
Physical
Log Only.
UCMID.
Remote No.
5
5
CMBCONS
1
Console Specifications or Remote Number.
6
6
CMBMSGL
1
Message Length.
7
7
CMBCLASS
1
Message Class
Bits 0-3
Value
5
$TRIVIA
$NORMAL
$ACTI(J\J
7
$ALWAYS
1
3
CMBPRIO
Name
Meaning
Non-Essential Messages.
Normal Messages.
Messages Requiring
Operator Action.
Essential Messages.
Message Priority
Bits 4-7
Value
1
4
7
Name
$LO
$ST
$HI
Meaning
Low Priority.
Standard Priority.
High Priority.
8
8
CMBMSG
9
9
CMBMARK
1
Asterisk (*) if Message Class is 5 or More.
A
10
CMBTIME
9
Time of Day (HH.MM.SS ).
13
19
CMBJOBNO
8
Job Number (If Applicable) .
lB
27
CMBTEXT
132
112
Message Area.
Message Text Area.
Console Message Buffer Format -- Page 8.4-2
545
HAS P
Figure 8.5.1 -- DIRECT-ACCESS DEVICE CONTROL TABLE FORMAT
Displacement
Hex.
o
Dec.
0
~----------------------DCTPCE
Address of Processor Control Element
DCTSTAT
4
4
.J
4 bytes ------------------------- I
DCTBUFAD
Current Buffer Address
8
8
DCTSEEK
Current Track Address
C
12
DCTEWF
Event Wait Field or Post Address
10
16
DCTBUFCT
Active
Buffer Count
14
20
RESERVED
DCTDEVTP
DCTIOTYP
Device
Type
Input/Output
Request Type
DCTCHAIN
Address of Next Device Control Table
18
24
Device Control Table Format -- Page 8.5-1
546
1i i\ S P
Figure 8.5.1 -- DIRECT-ACCESS DEVICE CONTROL TABLE FORMAT (CONTINUED)
Displacement
Hex.
Dec.
o
o
Field Name
DCTSTAT
Bytes
1
Field Description
DCT Status -Bit
Name
o
DCTINUSE
1-7
o
Meaning
DCT is In Use.
Reserved.
DCTPCE
4
Address of Processor Control Element.
DCTBUFAD
4
Address of Current Buffer.
·DCTSEEK
4
Current Track Address.
4
4
8
8
C
12
DCTEWF
4
Event Wait Field or Post Address.
10
16
DCTBUFCT
1
Number of I/O Requests Outstanding.
11
17
1
Reserved for Future Use.
12
18
1
Device Type --
DCTDEVTP
Hex.
Value
00
13
19
DCTIOTYP
1
Bit
Name
o
DCTREAD
DCTWRITE
2-7
20
DCTCHAIN
4
DCTDA
Device Type
Direct~Access
Device.
Input/Output Request Type
1
14
Na:me
Meaning
Read Request.
Write Request.
Reserved for Future Use.
Address of Next Device Control Table.
Device Control Table Format -- Page 8.5-2
547
HAS P
Figure 8.5.2 -~ OVERLAY DEVICE CO~TROL TABLE FORMAT
Displacement
Hex.
o
Dec.
0
r-----------------------
4
------------------------1
DCTPCE
Address of Overlay Roll PCE
DCTSTAT
4
4 bytes
DCTBUFAD
Address of Current Overlay Area
8
8
DCTSEEK
Overlay Track Address
C
12
DCTEWF
Address of Overlay Service Asynchronous Exit
10
16
DCTBUFCT
Active
Buffer Count
14
20
RESERVED
DCTDEVTP
DCTIOTYP
Device
Type
Input
Request Type
DCTCHAIN
Address of Next Device Control Table
18
24
DCTDEVN
EBCDIC Device Name -- "OLAY"
lC
28
DCTOTC
DCTOTT
Number of Tracks/Cylinder
20
Overlay Extent Origin
32
Device Control Table Format -- Page 8.5-3
548
HAS P
Figure 8.5.2 -- OVERLAY DEVICE CONTROL TABLE FORMAT (CONTINUED)
Displacement
Hex.
Dec.
o
o
Field Name
DCTSTAT
Bytes
1
Field Description
DCT Status -Bit
Name
o
DCTINUSE
1-7
Meaning
DCT is In Use.
Reserved.
o
o
DCTPCE
4
Address of Overlay Roll PCE.
4
4
DCTBUFAD
4
Address of Current Overlay Area.
8
8
DCTSEEK
4
Overlay Track Address.
C
12
DCTEl.JF
4
Address of Overlay Service Asynchronous
Exit.
10
16
DCTBUFCT
1
Number of I/O Requests Outstanding.
11
17
1
Reserved for Future Use.
12
18
1
Device Type --
DCTDEVTP
Hex.
Value
13
19
DCTIOTYP
1
Name
00
DCTDA
01
DCTOLAY
Meaning
Overlay Data Set Resides
on SPOOL Disk.
Overlay Data Set does not
Reside on SPOOL Disk.
Input Request Type -Bit
o
1-7
Name
DCTREAD
Meaning
Read Request.
Reserved for Future Use.
14
20
DCTCHAIN
4
Address of Next Device Control Table.
18
24
DCTDEVN
4
EBCDIC Device Name -- "OLAY".
lC
28
DCTOTC
2
Number of Tracks per Cylinder on Overlay
Direct-Access Device.
lE
30
DCTOTT
2
Overlay Extent Origin.
Device Control Table Format -- Page 8.5-4
549
H A' S P
Figure 8.5.3 -- UNIT RECORD DEVICE CONTROL TABLE FORMAT
Displacement
Hex.
Dec.
o
o
~-----------------------
------------------------~
DCTPCE
Address of Processor Control Element
DCTSTAT
4
4 bytes
D.CTBUFAD
4
Current Buffer Address
8
DCTDCB
8
Address of Data Control Block
C
DCTEWF
12
Event Wait Field or Post Address
10
DCTNO
DCTBUFCT
16
Active
Buffer Count
14
Device
Type
Device
Type
Address of Next Device COllt::,Q.,l Table
DCTDEVN
24
-
20
DCTIOTYP
DCTCHAIN
20
DCTFLAGS
18
OCT
Number
DCTDEVTP
-
EBCDIC Device Name
32
DEVICES OTHER THAN PRINTERS AND PUNCHES
20
32
DCTPRINT
Print
Destination
24
DCTPUNCH
DCTPRINC
DCTPRLIM
Punch
Destination
Priority
Increment
Priority
Limit
36
Device Control Table Format -- Page 8.5-5
HAS P
Figure 8.5.3 -- UNIT RECORD DEVICE CONTROL TABLE FORMAT (CONTINUED)
Displacement
Hex.
Dec.
-- --
r-----------------------
4 bytes
------------------------1
PRINTERS AND PUNCHES
20
DCTFORMS
32
Current Forms Type (Packed)
Carriage Tape
UCS Type
I
24
36
INTERNAL READERS
24
RIDUC:B
36
Address of Internal Reader UCB
28
RIDFLAGS
40
RIDTJID
Synchronization Flags
2C
RESERVED
RIDEC:B
44
Address of Internal Reader ECB
30
RIDTC:B
48
Address of Internal Reader TCB
34
RIDDATA
52
80-Byte Internal Reader Data Area
84
L32
I
]
Device Control Table Format -- Page 8.5-6
551
HAS P
Figure 8.5.3 -- UNIT RECORD DEVICE CONTROL TABLE FORMAT (CONTINUED)
P
Di.S 1acement
Hex. Dec.
-
-
r----------~------------
4 bytes ------------------------,. .
PUNCHES
24
74
36
116
DCTWORK
1
I
SO-Byte Error Recovery Save Area
1
r
Device Control Table Format -- Page 8.5-7
552
HAS P
Figure 8.5.3 -- UNIT RECORD DEVICE CONTROL TABLE FORMAT (CONTINUED)
Displacement
Hex. Dec.
o
o
Field Name
DCTSTAT
Bytes
1
Field Description
DCT Status -Bit
o
1
2
Meaning
Nam~
DCTINUSE DCT is In Use~
DCTDRAIN DCT is Drained.
DCTHOLD DCT is Held.
Reserved.
3-7
o
o
DCTPCE
4
Address of Processor Control Element.
4
4
DCTBUFAD
4
Current Buffer
8
8
DCTDCB
4
Address of Data Control Block
for this Unit.
C
12
DCTEWF
4
Event Wait Field or Post Address.
10
16
DCTBUFCT
1
Number of I/O Requests Outstanding.
11
17
DCTNO
1
Device Number.
12
18
DCTDEVTP
1
Device Type -Hex.
Value
10
11
14
20
30
40
13
19
DCTIOTYP
1
Address~
Name
DCTRDR
DCTTPE
DCTINR
DCTPRT
DCTPUN
DeTCON
Device Type
Card Reader.
Input Tape.
Internal Reader.
Printer.
Punch.
Console.
Device Type and Console Restrictions
Bit
Name
0-1
2
3
4
5
6
7
DCT1053
DCT2260
DCTREJRM
DCTREJJB
DCTREJDV
DCTREJSY
Meaning
Reserved.
1053 Console.
2260 Console.
Reserved.
Job Command Restriction.
Device Command Restriction.
System Command Restriction.
Device Control Table Format -- Page 8.5-8
553
HAS P
Figure 8. 5 . 3 -- UNIT RECORD DEVICE CONTROL TABLE FORMAT (CONTINUED)
Displacement
Hex. Dec.
14
20
Field Name
Bytes
DCTFLAGS
1
Field Description
Operator Command Flags -Bit
o
1
2
3
4
Name
Command
DCTSTOP $Z ($STOP)
DCTDELET $C ($DELETE)
DCTRSTRT $E ($RESTART)
$N ($REPEAT)
DCTRPT
DCTBKSP $B ($BACKSPACE)
$F
5
DCTHOLDJ $T ••• ,H
DCTSPACE $T ••. ,C=l
$1
2+4
6-7
Reserved for Future Use.
14
20
DCTCHAIN
4
Address of Next Device Control Table.
18
24
DCTDEVN
8
EBCDIC Device Name.
20
32
DCTPRINT
1
Print Destination.
21
33
DCTPLNCH
1
Punch Destination.
22
34
DCTPRINC
1
Priority Increment.
23
35
OCTPRLIM
1
Priority Limit.
20
32
DCTFORMS
2
Current Forms Type (Packed).
22
34
1
Carriage Tape
Bit
o
1
2-7
23
35
1
Name
Meaning
DCTFSPEC Special Forms Routing.
DCTFOPER. Operator Controlled Forms.
Carriage Tape Type.
Universal Character Set -Bit
o
1
2-7
Name
Meaning
DCTIDSEP Generate Separator Page/Card.
DCTOPACT Operator Action Allowed.
UCS Type.
Device Control Table Format -- Page 8.5-9
554
HAS P
Figure 8.5.3 -- UNIT RECORD DEVICE CONTROL TABLE FORMAT (CONTINUED)
Displacement
Field Name
Bytes
Dec.
24
36
RIDUCB
4
Address of Internal Reader UCB.
28
40
RIDFLAGS
2
Synchronization Flags --
Byte 1
I
I
Field Description
Hex.
Bit
Name
o
RIDPOST
RIDBUSY
1
2-7
Meaning
User Waiting for POST.
I/O Simulation in Progress.
Reserved for Future Use.
Byte 2
Reserved for Future Use.
2A
42
RIDTJID
2
Reserved for Future Use.
2C
44
RIDECB
4
AddresS of Internal Reader ECB.
30
48
RIDTCB
4
Address of Internal Reader TCB.
34
52
RIDDATA
80
Internal Reader Data Area.
24
36
DCTWORK
80
~unch
Error Recovery Save Area.
Device Control Table Format -- Page 8.5-10
555
HAS P
Figure 8.5.4 -- LINE DEVICE CONTROL TABLE FORMAT
Displacement
Hex.
o
Dec.
r-----------------------
0
------------------------~
DCTPCE
Address of Line Manager PCE
DCTSTAT
4
4 bytes
4
DCTBUFAD
Address of Line RJE Buffer
8
DCTDCB
8
Address of Line Data Control Block
DCTPSTAT
C
12
MDCTOBUF
RJE Output ·Buffer Chain Field
MDCTOPCT
10
14
16
DCTBUFCT
MDCTATTN
DCTDEVTP
DCTPCODE
Active
Buffer Count
Attention
Indicator
Device
Type
Line
Type
DCTCHAIN
20
DCTFLAGS
18
DCTDEVN
24
32
-
EBCDIC Device Name
I-
20
Address of Next Device Control Table
MDCTCODE
Address of RJE Code Table
24
36
MDCTFCS
Function Control Sequence
28
MDCTERCT
DCTPLINE
Error Count
Mode Byte
40
Device Control Table Format -- Page 8.5-11
556
HAS P
Figure 8.5.4 -- LINE DEVICE CONTROL TABLE FORMAT (CONTINUED)
Displacement
Hex.
Dec.
28
40
~-----------------------
4 bytes
------------------------~
MDCTDCT
Address of First Remote DCT Attached to this Line
2C
30
44
48
MDCTRSEQ
MDCTTSEQ
Receive
Sequence
Transmit
Sequence
MDCTPSWD
Line Password
38
RES E R V E D
-
56
Device Control Table Format -- Page 8.5-12
557
II ASP
Figure 8.5.4
Displacement
Hex. Dec.
0
0
~-
LINE DEVICE CONTROL TABLE FORMAT (CONTINUED)
Field Name
B:ltes
DCTSTAT
1
Field Descri}2tion
DCT Status -Bit
0
1
2-7
Name
Meaning
DCTINUSE DCT is In Use.
DCTDRAIN DCT is Drained.
Reserved.
0
0
DCTPCE
4
Address of Line Manager PCE.
4
4
DCTBUFAD
4
Address of Line RJE Buffer.
8
8
DCTPSTAT
1
Line Flags
Bit
Name
0
1
2
DCTLOGAL
DCTLEASE
DCTETX
DCTSOFF
3
4-7
Meaning
Log Every Channel End.
Leased Line.
An ETX has been Received.
A /*SIGNOFF Card has been
Processed.
Reserved for Future Use.
DCTDCB
4
Address of Line Data Control Block.
12
MDCTOPCT
1
MULTI-LEAVING Terminal Open Count.
C
12
MDCTOBUF
4
RJE Output Buffer Chain Field.
10
16
DCTBUFCT
1
Number of I/O Requests Outstanding.
11
17
MDCTATTN
1
Line Attention Requests --
8
8
C
Bit
Name
0
1
2
MDCTIMER
MDCTPAWS
MDCT JOBl
MDCTJOB2
MDCTJOB
3
2+3
4-7
Meaning
Timed Action Requested.
Line Pause Requested.
Job Post Indicator 1.
Job Post Indicator 2.
Job Post Indication.
Reserved for Future Use.
Device Control Table Format -- Page 8.5-13
558
II ASP
Figure 8.5.4 -- LINE DEVICE CONTROL TABLE FORMAT (CONTINUED)
Displacement
Hex.
Dec.
12
18
Field Name
Bytes
DCTDEVTP
1
Field Description
Device Type -Hex.
Value
02
13
19
DCTPCODE
1
Name
DCTLNE
Device Type
Line.
Line Type -Bit
o
Name
Value
o
DCTPBSC
1
1
o
DCTPTRSP
1
2
DCTPASCI
3
4-5
6
DCTPHASP
o
1
o
DCTPWIDE
1
7
14
20
DCTFLAGS
1
o
DCTPHALF
DCTPFULL
1
Meaning
STR Line.
BSC Line.
No Transparency.
Transparency.
EBCDIC Code.
USASCII Code.
Reserved.
Reserved.
Low-Speed Line.
Wide-Band Line.
Half-Duplex Line.
Full-Duplex Line.
Operator Command Flags
Bit
Name
0-1
2
3-7
DCTRSTRT
Command
Reserved.
$E ($RESTART) -- Abort.
Reserved.
14
20
DCTCHAIN
4
Address of Next Device Control Table.
18
24
DCTDEVN
8
EBCDIC Device Name.
20
32
MDCTCODE
4
Address of RJE Code Table.
24
36
MDCTFCS
2
Last Function Control Sequence Received.
26
38
MDCTERCT
1
Line Error Count/Indicator.
27
39
DCTPLINE
1
SDA Mode Byte.
28
40
MDCTDCT
4
Address of First Remote DCT Attached to
this Line.
Device Control Table Format -- Page 8.5-14
559
HAS P
Figure 8.5.4 -- LINE DEVICE CONTROL TABLE FORMAT (CONTINUED)
Displacement
Hex.
Dec.
Field Name
B~tes
Field Description
2C
44
MDCTRSEQ
I
Receive Block Sequence Count.
2D
45
MDCTTSEQ
I
Transmit Block Sequence Count.
2E
46
2
Reserved for Future Use.
30
48
8
Line Password.
MDCTPSWD
Device Control Table Format -- Page 8.5-15
560
HAS P
Figure 8.5.5 -- REMOTE DEVICE CONTROL TABLE FORMAT
-----------------------~~
Displacement
Hex.
o
Dec.
r-----------------------DCTPCE
0
Address of Processor Control Element
DCTSTAT
4
4 bytes
4
DCTBUFAD
Address of Current RJE Buffer
8
DCTDCB
8
Address of Line Device Control Table
DCTPSTAT
C
DCTEWF
12
Address of Event Wait Field
10
16
DCTNO
RESERVED
14
Remote
Number
Device
Type
Remote
Code
Address of Next Device Control Table
DCTDEVN
24
20
DCTPCODE
DCTCHAIN
20
DCTFLAGS
18
DCTDEVTP
-
EBCDIC Device Name
32
REMOTE READERS AND REMOTE CONSOLES
20
24
32
DCTPRINT
DCTPUNCH
DCTPRINC
DCTPRLIM
Print
Destination
Punch
Destination
Priority
Increment
Priority
Limit
36
Device Control Table Format -- Page 8.5-16
561
HAS P
Figure 8.5.5 -- REMOTE DEVICE CONTROL TABLE FORMAT (CONTINUED)
Displacement
Hex.
Dec.
~-----------------------
4 bytes
------------------------~
REMOTE PRINTERS AND REMOTE PUNCHES
20
32
DCTFORMS
Current Forms Type (Packed)
24
Flags
36
ALL REMOTE DEVICES
24
36
MDCTFCS
DCTPRLEN
Function Control Sequence
28
40
44
Remote
Remote
Printer Width Characteristics
MDCTDCT
MDCTRCB
2C
DCTPLINE
I
Address of Next DCT for this Remote
Device Control Table Format -- Page 8.5-17
562
HAS P
Figure 8.5.5 -- REMOTE DEVICE CONTROL TABLE FORMAT (CONTINUED)
Displacement
Hex. Dec.
o
o
Field Name
Bytes
DCTSTAT
1
Field Description
OCT Status -Bit
Name·
o
Meaning
DCTINUSE OCT is In Use.
DCTDRAIN OCT is Drained.
DCTHOLD OCT is Held.
1
2
3-7
Reserved.
o
o
DCTPCE
4
Address of Processor Control Element.
4
4
DCTBUFAD
4
Address of Current RJE Buffer.
8
8
DCTPSTAT
I
Remote Flags -Bit
I
Name
0-2
3
4
DCTEOF
DCTSIN(]'tJ
DCTPOST
DCTABORT
DCTPBUF
5
6
7
Meaning
Reserved for Future Use.
An EOF has been Detected.
OCT is Attached to Line OCT.
I/O Complete Flag.
Transmission was Aborted.
Remote has Output Buffer.
8
8
DCTDCB
4
Address of Line Device Control Table.
C
, 12
DCTEWF
4
Address of Event Wait Field.
10
16
1
Reserved -- Must be zero.
11
17
DCTNO
1
Remote Number.
12
18
DCTDEVTP
1
Device Type -.Hex.
Value
12
22
32
42
Name
Meaning
DCTRJR
DCTRPR
DCTRPU
DCTRC(]\J
Remote
Remote
Remote
Remote
Reader.
Printer.
Punch.
Console.
Device Control Table Format -- Page 8.5-18
563
HAS P
Figure 8.5.5 -- REMOTE DEVICE CONTROL TABLE FORMAT (CONTINUED)
Displacement
Hex. Dec.
13
19
Field Name
Bytes
DCTPCODE
1
Field Description
Remote Code -Bit
Name
o
1
2
I
3
4
5
6
7
14
20
DCTFLAGS
1
DCTPTRSP
DCTPPRES
DCTPCON
DCTPMRF
DCTPTAB
DCTPROG
DCTPVAR
DCTPBLK
Meaning
Reserved.
Terminal Transparency.
Hardware Compress Feature.
Terminal Console.
Multiple Record Feature.
Buffer Expansion, Additional.
Horizontal Format Control.
Programmable Interface.
Variable Length Records.
Blocked Records.
Buffer Expansion Feature.
Operator Command Flags -Bit
o
1
2
3
4
5
Name
DCTSTOP
DCTDELET·
DCTRSTRT
DCTRPT
DCTBKSP
DCTHOLDJ
DCTSPACE
2+4
6-7
Command
$Z ($STOP)
$C ($DELETE)
$E ($RESTART)
$N ($REPEAT)
$B ($BACKSPACE)
$F
$T ••• ,H
$T ••• ,C=l
$I
Reserved for Future Use.
14
20
DCTCHAIN
4
Address of Next Device Control Table.
18
24
DCTDEVN
8
EBCDIC Device Name.
20
32
DCTPRINT
1
Print Destination.
21
33
DCTPLNCH
1
punch Destination.
22
34
DCTPRINC
1
Priority Increment.
23
35
DCTPRLIM
1
Priority Limit.
Device Control Table Format -- Page 8.5-19
564
HAS P
Figure 8.5.5 -- REMOTE DEVICE CONTROL TABLE FORMAT (CONTINUED)
Displacement
Hex •. Dec.
20
32
22
34
Field Name
Bytes
DCTFORMS
2
Current Forms Type (Packed).
2
Flags
Byte 1
Field Description
Bit
Name
o
DCTFSPEC Special Forms Routing.
DCTFOPER Operator Controlled Forms.
1
2-7
Byte 2
Reserved for Future Use.
Bit
Name
o
2-7
36
MDCTFCS
2
Meaning
DCTtDSEP Generate Separator Page/Card.
DCTOPACT Operator Action Allowed.
1
24
Meaning
Reserved for Future Use.
Function Control Sequence Mask -Bit
Meaning
Byte 1
0-3
4
5
6
7
Reserved.
Reader 1 or Printer 1.
Reader 2, Printer 2, or Punch 7.
Reader 3, Printer 3, or Punch 6.
Reader 4, Printer 4, or Punch 5.
Byte 2
o
Reserved.
Remote Console.
Reserved.
Reader 5, Printer 5, or Punch 4.
Reader 6, Printer 6, or Punch 3.
Reader 7, Printer 7, or Punch 2.
Punch 1.
1
2- 3
4
5
6
7
26
38
OCTPRLEN
1
Remote Printer width and Remote Input Size.
27
39
OCTPLINE
1
Remote Characteristics --
Bits 0-3
Adapter/Terminal Characteristics
Bit
Name
Value
o
DCTPBSC
1
DCTPTRSP
2
DCTPASCI
0
1
0
1
0
1
3
Meaning
STR Adapter.
BSC Adapter.
No Transparency.
Transparency.
EBCDIC Code.
USASCI I Code.
Reserved.
Device Control Table Format -- Page 8.5-20
565
HAS P
Figure 8.5.5 -- REMOTE DEVICE CONTROL TABLE FORMAT (CONTINUED)
Displacement
Hex. Dec.
Field Name
Bytes
Field Description
Remote Characteristics (continued) --
Bits 4-7
Terminal Type
Hex.
Value
6
8
A
40
MDCTRCB
1
o
1-3
4-7
Meaning
Always One.
Device Number.
Device Type -Value
1
2
3
4
5
40
MDCTDCT
4
2770, 3780, 1009.
2780, 1978.
360/20 Sub-ModelS, 6.
360/22, 25, 30, 40, etc.
360/20 Sub-Model 2, 4.
1130.
System/3.
Record Control Byte
Bits
28
Terminal Type
DCTP2770
DCTPHARD
DCTP20
DCTP360
DCTP20S2
DCTP:L:L30
DCTPSYS3
0
1
2
4
28
Name
Device Type
Output Console.
Input Console.
Reader.
Printer.
Punch.
Address of Next DCT for this Remote.
Device Control Table Format
566
~-
Page 8.5-21
HAS P
Figure 8.6.1 -- JOB QUEUE ELEMENT FORMAT
Displacement
Hex.
o
Dec.
0
r---- ---- ----------QUEPRIO
Priority
4
4
8
QUE TYPE
Queue Type
-~ --.--------- -- - - ,
QUEJOBNO
Job Number (Binary)
,
QUECHAIN
QUEFLAGS
8
-4 bytes -- --- --
Address of Next Job Queue Element
QUETRAK
Disk Address of Job Control Table
C
12
QUEPRTRT
Print Route
10
QUEPUNRT
Punch Route
QUECLASS
QUE FORMS
I
QUEREGSZ
16
Job Queue Element Format -- Page 8.6-1
567
HAS P
Figure 8.6.1 -- JOB QUEUE ELEMENT FORMAT (CONTINUED)
Displacement
Hex.
Pee.
o
o
Field Name
Bytes
Field Description
QUEPRIO
1
Queueing Priority
Bits 0-3
Bits 4-7
1
QUETYPE
1
Priority (O-lS).
Reserved.
Queue Type
Binary
Value
Name
1xxxxxxx
xlcccccc
QENTBY
$XEQ
xOlOOOOO
x0000100
xOOOOOlO
xOOOOOOO
$INPUT
$PRINT
$Pl,.NCH
$PURGE
Meaning
Queue Entry is In Use.
-cccccc = Job Class - X'CO'.
Input Queue.
Print Queue.
Punch Queue.
Purge Queue.
Ex~cution
2
2
QUEJOBNO
2
Job Number (Binary)
4
4
QUE FLAGS
1
Queue Flags -Bit
Name
o
QUEHOLDA
QUEHOLDl
QUEHOLD2
QUEPURGE
QUEUSECT
1
2
3
4-7
Meaning
Job Held ($H A)
Job Held (Single Job)
Job Held (Duplicate Job Name) .
Job Deleted.
Entry Use Count.
4
4
QUECHAIN
4
Address of Next Job Queue Element.
8
8
QUETRAK
4
Track Address of Job Control Table.
C
12
QUEPRTRT
1
Print Routing:
D
13
QUEPUNRT
1
Punch Routing:
0
n
0
n
= Local.
=
Remote n.
=
Local.
Remote n.
E
14
QUECLASS
1
Sub-Class -- Unused.
E
14
QUE FORMS
2
Forms Code (Packed).
F
15
QUEREGSZ
1
Region Size -- Unused.
Job Queue Element Format -- Page 8.6-2
568
HAS P
Figure 8.7.1
Displacement
Hex.
Dec.
o
o
~OB
INFORMATION TABLE ELEMENT FORMAT
I~~-----.----------------' ,
4 byte.s
.
-
8
Displacement
Hex. Dec.
o
.
JITJNAME
Job Name
8
,. '1
------------------------
o
Field Name
Bytes
JITJNAME
8
)
Field Description
Job Name.
Job Information Table Element Format .... - Page 8.7-1
569
HAS P
Fi9ure8~8~1
-~
JOB CONTROL TABLE FORMAT
Displac;:ement
Hex.
Dec.
50
80
r------------------------
84
JCTJOBNO
I
AdQress of Processor Control Element
Job Number (Binary)
58
------------------------~
JCTPCE
JCTID
54
4 bytes
88
JCTPRIO
JCTROUTE
Priority
Input
Route Code
JCTPNAML
JCTJOBEB
Job Number (EBCDIC)
5C
Programmer's
Name Length
JCTPNAME
92
-
-
-
Programmer's Name from Job Card
70
-
-
-
-
JCTJNAME
112
r-
78
Job Name from Job Card
-
120
Job Control Table Format -- Page 8.8-1
570
HAS P
Figure 8.8.l -- JOB CONTROL TABLE FORMAT (CONTINUED)
Displacement
Hex.
Dec.
78
120
~--------------------~--
4 bytes
-----~------------------1·
JCTACCTN
Job A9counting Number
7C
124
JCTROOMN
,.
Programmer's Room Number
80
128
JCTETIME
Estimated Execution Time
84
132
JCtCARDS
Number of Input Cards
88
136
JCTESTLN
Estimated Lines of Output
8C
140
JCTlINES
Current Lines of Output
90
144
JCTESTPU
Estimated Number. of Cards to be Punched
94
148
JCTPUNc'H
Current Output Card Count
98
9C
152
156
JCTlINCT
JCTCPYCT
Lines
Per PQge
Print
Copy Count
JCTlOG
Log Option
Switch
JCTFlAGS
Miscellaneous
Flags
..
JCTFORMS
Job Print Forms
AO
160·
Job Control Table Format -- Page 8.8-2
571
HAS P
Figure 8.8.1
Displacement
Hex.
Dec.
AO
160
JOB CONTROL TABLE FORMAT (CONTINUED)
~-----------------------
4 bytes
------------------------~
Job Punch Forms
A4
164
JCTPRTCT
Current Number of Lines Printed
A8
168
JCTPAGCT
Current Number of
AC
172
P~ges
Printed
JCTPUNCT
Current Number of Cards Punched
BO
176
JCTRDRON
Reader Sign-On Time
B4
180
JCTRDROF
Reader Sign-Off Time
B8
184
JCTXEQON
Execution Sign-On Time
BC
188
JCTXEQOF
Execution Sign-Off Time
CO
192
JCTPRTON
Printer Sign-On Time
C4
196
JCTPRTOF
Printer Sign-Off Time
C8
200
Job Control Table Format -- Page 8.e-3
572
HAS P
Figure 8.8.1 -- JOB CONTROL TABLE )~'ORMAT (CONT.I:NUED)
Displacement
Hex.' Dec.
C8
_I.----------_-~-----------
4 bytes ________________,___-_____
I"
200
..~".
.
J,
-I
. JCTPUNON
Punch Sign-On Time
CC
204
JCTPUNOF
Punch Sign-Off Time
DO
208
JCTPRC
Checkpoint
Copy Count
Checkpoint PDDB Displacement
Checkpoint PDDB Page Count
Checkpoint Total Line Count
Checkpoint Total Line Count
(continued)
Checkpoint Total Page Count
Checkpoint
Flags
D4
D8
212
216
"
DC
220
Checkpoint Total Page COunt
.,
(continued)
First Reader Track
JCTRDRTR
EO
224
' ....
.,
,
JCTCYSAV
I n p ut File T rae k Allo c a tion Bit Map S ave Area
' ...
JCTCYMXM'
Maximum MTTR for Current Track Group
. JCTMTTR
Last MTTR Allocated
Job Control
573
~~ble
Format -- Page 8.8-4
BAS P
Figure
8.8.~
Displacement
Hex.
Dec.
-- JOB CONTROL TABLE FORMAT (CONT1NUED)
~-----------------------
4 bytes
----------------~-------~
JCTCYMAP
1
1
Variable Length Track Allocation Bit Map
JCTACCT
l32-Byte Job Accounting Information Area
'r-
"~
JCTPDDB .
JCTLPDDB
HASP System Log PDOB
~
JCTSPDDB
System Message Block (SMB) PDDB
' ....
pe.-r_._l.p_h_e_r_a_l-. .D_a_t_a~D-e-f-1.-n-1.-t-1.-o-n_B_l_O_C_k
11...____
"
--'J
__
(P_D_D_B_)_A_r_e_a_ _ _
Job Control Table Format -- Page 8.8-5
574
l~
ASP
Figure 8.8.1 -- JOB CONTROL TABLE FORMAT (CONTINUED)
Displacement
Hex. Dec.
Field Name
Bytes
Field Description
50
80
JCTID
1
JCT Identification -- XfFF'.
5-0
80
JCTPCE
4
Address of Processor Control Element.
54
84
JCTJOBNO
2
Job Number (Binary).
56
86
JCTPRIO
1
Priority from /*PRIORITY Card.
57
87
JCTROUTE
1
Route Code of Input Device:
0
n
Local.
= Remote n.
58
88
JCTJOBEB
3
Job Number (EBCDIC).
5B
91
JCTPNAMl
1
Length of Programmer's Name.
5C
92
JCTPNAME
20
70
112
JCTJNAME
8
Job Name from Job Card.
78
120
JCTACCTN
4
Job Accounting Number.
7C
124
JCTROOMN
4
Programmer's Room Number.
80
128
JCTETIME
4
Estimated Execution Time.
84
132
JCTCARDS
4
Number of Input Cards.··
88
136
JCTESTLN
4
Estimated Lines of Output.
8C
140
JCTlINES
4
Generated Lines of Output.
90
144
JCTESTPU
4
Estimated Number of Cards to be Punched.
94
148
JCTPUNCH
4
Number of Output Cards Generated.
98
152
JCTlINCT
1
Lines per Page.
99
153
JCTCPYCT
1
Number of Copies of Print.
9A
154
JCTlOG
i
Log Option Switch --
Programmer's Name from Job Card.
EBCDIC
Va1~e
L
N
Meaning
Produce HASP SYSTEM LOG.
Do not Produce HASP SYSTEM LOG.
Job Control Table Format -- Page 8.8-6
,575
HAS P
Figure 8.8.1 -- JOB CONTROL TABLE FORMAT (CONTINUED)
Displacement
Hex. Dec.
9B
155
Field Name
Bytes
JCTFLAGS
1
Field Description
Miscellaneous Flags --
Bit
Name
o
JCTDSRT
1-7
9C
156
AO
160
A4
164
A8
JCTFORMS
Meaning
Processing Special Forms.
Count of Input Data Set$
SPOOLed by HASP.
4
Job Print Forms.
4
Job Punch Forms.
JCTPRTCT
4
Number of Lines Printed.
168
JCTPAGCT
4
Number of Pages Printed.
AC
172
JCTPUNCT
4
Number of Cards Punched.
BO
176
JCTRDRON
4
Reader Sign-On Time.
B4
180
JCTRDROF
4
Reader Sign-Off Time.
B8
184
JCTXEQON
4
Execution Sign-On Time.
BC
188
JCTXEQOF
4
Execution Sign-Off Time.
co
192
JCTPRTON
4
Print Sign-On Time.
C4
196
JCTPRTOF
4
Print Sign-Off Time.
C8
200
JCTPUNON
4
Punch Sign-On Time.
CC
204
JCTPUNOF
4
Punch Sign-Off Time.
DO
208
JCTPRC
DC
220
JCTRDRTR
EO
224
JCTCYSAV
14
4
Print Checkpoint Element.
First Reader Track.
Variable Length Input File
Track Allocation Bit Map Save Area.
JCTCYMXM
4
Maximum MTTR for Current Track Group.
JCTMTTR
4
Last MTTR Allocated.
JCTCYMAP
Variable Length Track Allocation Bit Map.
Job Control Table Format -- Page 8.8-7
576
HAS P
Figure 8.8.1 -- JOB CONTROL TABLE FORMAT (CONTINUED)
Displacement
Hex. Dec.
Field Name
JCTACCT
Bytes
Field Description
132
Job Accounting Information Area.
JCTPDDB
Peripheral Data Definition Block (PDDB) Area.
JCTLPDDB
5
HASP System Log PDDB.
JtTSPDDB
5
System Message Block (SMB) PDDB.
Job Control Table Format -- Page 8.8-8
577
HAS P
Figure 8.9.1 -- TRACK EXTENT DATA TABLE FORMAT
Displacement
Hex.
o
Dec.
0
~-----------------------
4 bytes
------------------------~
TNCH
MTTR For Most Recent $EXCP on this Module
4
4
TNTC
Number of Tracks per Cylinder on this Device
8
8
TNMD
TNRT
DEB Extent Number
(times 256)
C
10
12
16
Number of HASP
Buffers per Track
TNGE
TNTG
Number of Groups/Extent
Number of Tracks/Group
TNMO
TNMB
Offset of this Map
from First Map
14
Number of Bytes
in this Map
20
Displacement
Hex. Dec.
Field Name
Bytes
Field DescriEtion
0
0
TNCH
4
MTTR for Most Recent $EXCP on this Module.
4
4
TNTC
4
Number of Tracks per Cylinder on this Device.
8
8
TNMD
2
DEB Extent Number (times 256).
A
10
TNRT
2
Number of HASP Buffers per Track.
C
12
TNGE
2
Number of Track Groups per Extent.
E
14
TNTG
2
Number of Tracks per Track Group.
10
16
TNMO
2
Offset of This Map from First Map.
12
18
TNMB
2
Number of Bytes in This Map.
Track Extent Data Table Format -- Page 8.9-1
578
HAS P
Figure 8.10.1 -- TIMER QUEUE ELEMENT
DisPlacement~ _______________________
Hex.
o
Dec.
0
4
bytes
I
",.,
,
--~--~~-------------~--~
ICHAIN
Address of Next HASP Timer Queue Element
4
4
ITIME
Specified Interval
8
8
IPOST
Address of Event Wait Field to be Posted
C
12
Displacement
Hex. Dec.
Field Name
Bytes
Field Description
o
o
ICHAIN
4
Address of Next HASP Timer Queue Element.
4
4
ITIME
4
Timer Interval.
8
8
I POST
4
Byte 1
Flag Byte --
o
0
1
1-7
Bytes 2-4
Timer Interval has not Expired.
Timer Interval has Expired.
Reserved.
Address' of Event wait Field to be Posted.
Timer" Queue Element Format -- Page 8.10-1
579
HAS P
Figure 8.11.1 -- OVERLAY TABLE FORMAT
Displacement
Hex.
Dec.
~----------------------&DEBUG
o
o
OTBPRIO
o
0
------------------------~
= NO
OTBADDR
&DEBUG
4 bytes
Address of Resident Overlay Module
I
RESERVED
I
OTBTRAK
Relative TTR
YES
OTBNAME
Overlay Module Name (Last Four Characters)
4
4
OTBADDR
OTBPRIO
8
8
Address of Resident Overlay Module
I
RESERVED
Relative TTR
OTBLODS
OTBCALLS
Count of PCE Requests
C
OTBTRAK
Count of Times Loaded
12
Overlay Table Format -- Page 8.11-1
580
HAS P
Figure 8.11.1 -- OVERLAY TABLE FORMAT (CONTINUED)
Displacement
Hex.
Dec.
o
o
Field Name
Bytes
OTBADDR
4
Byte 1
Bytes 2-4
o
o
1
1
2
2
0
OTBPRIO
Field Description
Address of Resident Overlay Module'.
X'FF' .
Addressability Address of Resident
Overlay Module -- Assembly Origin - X'50'.
1
Priority of Overlay Module.
1
Reserved for Future Use.
OTBTRAK
2
Relati ve Track and Record Address o,f
Overlay Module.
a
OTBNAME
4
Last Four Characters of Overlay Module Name.
8
8
OTBCALLS
2
Number of Times This Overlay Module
was Requested.
A
la,
OTBLODS
2
Number of Times This Overlay Module
was Loaded.
Overlay Table Format -- Page 8.11-2
,581
HAS P
r
Figure 8.12.1 -- DATA DEFINITION TABLE FORMAT
Dise1acernent
Hex.
Dec.
.
--
--
o
0
4 bytes ------------------------~
.
DDBCHAIN
Address of Next Data Definition Table
4
DDBUNIT
DDBTYPE
4
unit Address
Data Set Type
8
DDBSTAT2
DDBSTATl
(XS)
8
Status Byte 1
C
Status Byte 2
(EBCDIC)
DDBUFPTR
Current Buffer Pointer
DDBPBUF
12
Address of Primary Buffer or TTR
10
DDBSBUF
16
Address of Secondary Buffer ( Input)
DDBFORMS
r-
Special Forms Type
18
24
28
32
(Input Data Sets)
(Output Data Sets)
DDBCOUNT
Output Record Count
20
-
DDBTTR
Next Track Address
First Track Address
1C
(Output)
RES E R V E D
DDBPCE
Address of Processor Control Element
24
36
Data Definition Table Format -- Page 8.12-1
582
HAS P
Figure 8.12.1 -- DATA DEFINITION TABLE .FORMAT.
Displacement
Hex.
Dec.
Field Name
Bytes
(CONTI~UED)
Field Definition
o
o
DDBCHAIN
4
Address of Next Data Definition Table.
4
4
DDBTYPE
1
Data Set Type -Hex.
Value
01
02
04
08
10
40
80
Name
XSPROUTE
XPRTDDB
XPUNDDB
XPLOTDDB
XLOGDDB
XNULLDDB
XINDDB
Data Set Type
Special Route SYSOUT.
Print.
Punch.
Plot.
Log.
Dummy (Null).
Input.
5
5
DDBLl'JIT
3
unit Address (EBCDIC).
8
8
DDBSTATl
(XS)
I
Status Byte 1
Bit
o
I
2
3
4
5
6
7
9
9
DDBSTAT2
I
Name
XSEOD
XSIOA
XSIO
XNSB
XPEOD
XPIOA
XPIO
XNPB
Meaning
End of Data on Secondary.
I/O Active on Secondary.
I/O Required on Secondary.
No Secondary Buffer.
End of Data on Primary.
I/O Active on Primary.
I/O Required on Primary.
No Primary Buffer.
Status Byte 2
Bit
o
I
2
3
4
5
6
7
Name
XACT
XLOGHEAD
XOPEN
XUCB
XIOC
XROLL
XTERM
Data Definition
583
Tab1~
Meaning
Action Required on This DDT.
Reserved for Future Use.
Log Title Switch.
DDT has been Used.
Allocatable UCB Exists.
I/O Error on Read.
Roll Output Buffer.
Terminate DDT.
For~at
-- Page 8.12-2
HAS P
Figure
8~12.1
Displacement
Hex.' Dec.
-- DATA DEFINITION TABLE FORMAT (CONTINUED)
Field Name
Bytes
Field Description
A
10
DDBUFPTR
2
Current Displacement of Data in
Primary Buffer.
e
12
DDBPBUF
4
Address of Primary Buffer -- Or TTR
if No Primary Buffer.
lO
16
DDBSBUF
4
Address of Secondary Buffer (Input Only) .
10
16
DDBFORMS
8
Special Forms Type (Output Only) .
18
24
DDBTTR
4
Input: Next Track Address.
Output: First Track Ad~ress.
Ie
28
DDBCOLI'JT
2
Output Record Count.
lE
30
2
Reserved for Future Use.
20
32
4
Add~ess
DDBPCE
of Processor
Cont~ol
Element.
Data Definition Table Format -- Page 8.12-3
584
HAS P
Figure 8.13.1 -- PARTITION· INFORMATION T.ABLE.' FORMAT
D:::~ac:::~t ~--"'---~--~--------~---~_4bYteS.--------------------"~--:
o
PITSTAT
0
PITICLAS
Status Byte
,
4
4
Ini tiator .'
Class
PITPATID
Logical' Parti tiort
Identification
, :> "
PITSIZE
PITPRIO
Logical Partition Size
Logical Partition PRTY
.
;
,
WITH EXECUTION JOB BATCHING
8
PITBECB
8
Batching Program Frozen ECB Chain
C
PITBJST
12
Address of Batching Program TCB
10
16
PITBCLAS
~ctive
Batching
Class
14
PITBUNIT
Batching Program Input Unit
PITBUCBA
20
PITCLASS
Batching Input UCB Address
-
"-
Var1able Number of Log1cal Part1t10n Classes
1
"
J
Parti tio.n Informati,on Table Format
5'85
-~
Page 8.13-1
Ii ASP
Fig~re
8.13.1 -- PARTITION INFORMATION TABLE FORMAT (CONTINUED)
. Rex.
Dec.
r----------------".-----WITHOU~
8
8j
EXECU~ION
4 l1ytes
---------,..--------------1
JOB BATCHING
PITCLASS
Vari~ble
Number of Logic?l Partition Classes
1
I
J
Pa~tition
Information Table Format -- Page 8.13-2
586
HAS P
Figure 8.13.1 -- PARTITION INFORMATION TABLE FORMAT (CONTINUED)
Displacement
Hex.
Dec.
o
o
Field Name
Bytes
PITSTAT
1
Field Description
Status Byte -Bit
Name
o
PITHOLDA
PITHOLDl
PITBUSY
PITIDLE
1
2
3
4-6
7
PITLAST
Meaning
PIT is Drained ($p I).
PIT is Drained ($p In).
Partition Busy Indicator.
PIT Idle Message Switch.
Reserved for Future Use.
Last PIT Indicator.
1
1
PITICLAS
1
O/S Initiator Class.
2
2
PITPATID
2
Logical Partition Identification.
4
4
PITSIZE
2
Logical Partition Size (Unused).
6
6
PITPRIO
2
Logical Partition PRTY.
8
8
PITBECB
4
Batching Program Frozen ECB Chain.
c
.12
PITBJST
4
Address of Batching Program TCB.
10
16
PITBCLAS
1
Active Batching Class.
11
17
PITBUNIT
3
Batching Program Input Unit.
14
20
PITBUCBA
2
Batching Input unit Control Block (UeB)
Address.
PITCLASS
variable Number of Logical Partition
Classes.
Partition Information Table Format -- Page 8.13-3
587
H 'A S P
Figure 8.14.1 -- MESSAGE ALLOCATION CONTROL BLOCK
Displacement
Hex.
Dec.
o
o
~-----------------------
4 bytes
------------------------~
MSAMTTR
Base SPOOL Record Pointer
4
MSARPTRK
4
MSABITS
Number of Records/Track
-
...
I
Dis}2lacement
Hex. Dec.
Variable Length Allocation Bit Map
J
Field Name
B:i tes
Field
De~criEtion
0
0
MSAMTTR
4
Base SPOOL Record Pointer.
4
4
MSAPTRK
2
Number of Records/Track.
6
6
MSABITS
Variable Length Allocation Bit Map.
Message Allocation Control Block Format -- Page 8.14-1
588
HAS P
Figure 8.15.1 -- DATA BLOCK FORMAT
Displacement
Hex.
Dec.
50
80
~-----------~-----------
4, bytes ---------.:..---"-----------.
HDBNXTRK
'Track Address of Next Data Block
54
HDBSTART
84
Record
Length
Control
Byte
,
...
Variable Length Data Area
"'"
'!'-
f-
Record
Length
Control
Byte
....
Var~able
Record
Length
Length Data Area
"
Control
Byte
....
....
Variable Length Data Area
. Block
Terminator
)
Unused
t
1L--,-_ _ _ _ _------lJ
Data Block Format -- ,Page 8.15-1
589
Ii
ASP
Figure 8.15.1 -- DATA BLOCK FORMAT (CONTINUED)
Displacement
Hex.
Dec.
Field Name
Bytes
'4
50
80
HDBNXTRK
.54
84
HDBSTART
Field Description
Track Address of Next Data Block.
Start of Data Block .
Record
Length
1
Length of Data Area (0-254).
Control
Byte
1
.Control Byte -Input Data Sets
Hex.
Value
00
03
04
13
19
73
Data
Area
Block
Terminator
Meaning
Normal Record.
Internally Generated Card.
HASP Control Card.
Illegal HASP Control Card.
Last JCL Card.
Dummy Track Address Record.
Print Data Sets
Carriage Control.
Punch Data Sets
Stacker Select.
Variable Length Data Area.
Record Length of 255 (X'FF').
Data Block Format -- Page 8.15-2
590
HAS P
9.0
HASP EXECUTOR SERVICES
The HASP Control Service Programs provide a comprehensive set of
services which aid the HASP Processors in performing their respective tasks in an efficient manner without burdening the processor
programmer down with endless detail.
These services are requested
by the processor through the use of HASP macro instructions.
The
services are subdivided in this publication, as follows:
•
Buffer Services, which provide for the acquisition and release
of HASP buffers.
•
Unit Services, which provide for the acquisition and release
of HASP Input/Output units.
•
Jqb Queue Servides, which provide the.processors. with an
interface with the HASP JobQueue~
•
Direct Access Space Services, which provide for the allocation
and de-allocation of HASP direct-access s·tor-age space.
•
Input/Output Services, which provide all communication with
the Operating System Input/Output Supervisor .
...
•
Time Services, which provide for the setting and interrogation
of the interval timer.
•
Overlay Services, which provide the capability to define and
utilize sections of HASP that may optionally be made resident
on direct-access storage and fetched into a dynamic area
within HASP whenever required.
•
Synchronization Services, which provide synchronization and
communication between HASP processors,the HASP dispatcher,
and the Operating System.
•
Debug Services, which provide' facilities for aid in debugging
HASP.
•
Error Services, which provide a uniform way of processing
detected errors.
•
Coding Aid Services, which provide the HA.SP progranuner with
coding aids not usually available in the Operating System,
but useful in coding HASP routines.
Some of the above services are provided by "in-line" code expansion
wherever the macro instruction is used.
The remainder of the services are provided by routines which are integral parts of the
Control Service Programs.
For more information about these routines refer to Section 5. These routines are "linked to" by code
generated wherever the macro instruction is used.
HASP Executor Services - Page 9.0-1
591
HAS P
At execution time, the macro-expansion passes information to the
control program ~outine to specify the exact nature of the service
to be performed., This information is broken down into parameters
and, in general, is passed to the routine through general purpose
registers called parameter registers.
The macro-expansion can contain load instructions (LA,L,LH,etc.)
that form parameters in parameter registers, and/or it can contain
instructions which load parameter registers from registers loaded
by the processor.
The processor can also load parameters directly.
Registers "RI" and "RO" are generally used as parameter registers.
Each parameter resulting from the expansion of a macro-instruction
is either an address or a value.
ADDRESS PARAMETER: An address parameter is a standard 24-bit
address.
It is always located in the three low-order bytes of a
parameter register.
The high-order byte in the parameter register
should ~ontain all zeros. Any exception to this rule will be stated
in the individual macro-instruction description.
An address parameter is always an effective ~ddress.
The Control
Service Programs is never given a 16-bit or 20-bit explicit address
of the form D(B) or D(B,X) and then required to form an effective
address. Whe·n an effective address is to be resolved, it is formed
either by the macro-expansion or before the macro-instruction is
issued.
VALUE PARAMETER:
A value parameter is a field of data other than
an address.
It is of variable length, and is usually in the loworder bits of a parameter register.
The value parameter will always
have a binary format.
The high-order unused bits in the parameter
register should contain all zeros. Any exception to this rule will
be stated in the individual macro-instruction description.
Certain value parameters can be placed in a register along with
another parameter, which can either be an address or a value
parameter.
In this case, a value parameter will be in other than
the low-order bits. Two or more parameters in the same register
are called packed parameters.
OPERANDS:
Parameters are specified by operands in the
macro-instruction. An address parameter can result from a relocatable expression or, in certain macro-instructions, from an
implied or explicit address. A value parameter can result from an
absolute expression or a specific character string. Address and
value parameters can both be specified by operands written as an
absolute expression enclosed in parentheses. This operand form is
called register notation.
The value of the expression designates
a register into which the specified parameter must be loaded by the
processor before macro-instruction is issued. The contents of this
register are then placed in a parameter register by the macro-expansion.
HASP Executor Services 592
Page 9.0-2
HAS P
Types of Macro-Instruction Operands
The processor programmer writes operands in a HASP macro-,instruction
to specify the exact nature of the service to be performed.
Operands
are of two types:
positional and keyword.
POSITIONAL OPERANDS:
A positional operand is written as a string
of characters. This character string can be an expression, an implied or explicit address, or some special operand form allowed in
a particular macro-instruction.
positional operands must be written in a specific order.
If a positional operand is omitted and another positional operand is written
to the right of it, the comma that would normally have preceded the
omitted operand must be written. This comma should be written only
if followed by a positional operand; it need not be written if it .
would be followed by a keyword operand or a blank.
In the following examples, EXI has three positional operands.
In
EX2, the second of three positional operands is omitted, but must
still be delimited by commas.
In EX3, the first and third operands
are omitted; n9 comma need be written to the right of the second
operand.
EXI
$ EXAMP
A,B,C
EX2
$EXAMP
A, ,C
EX3
$EXAMP
,B
KEYWORD OPERANDS:
A keyword operand is written as a keyword
immediately followed by an equal sign and an optional value.
A keyword consists of one through seven letters and digits, the.
first of which must be a letter.
It must be written exactly as
shown in the macro-instruciton description.
An optional value is written as a character string in the same way
as a positional operand.
Keyword operands can be written in any order, but they.must be
written to the right of any positional operands in the macro-instruction.
In the following examples, EXI shows two keyword operands.
EX2 shows
the keyword operands written in a different order and to the right
of any positional operands.
In EX3, the second and third positional
operands are omitted; they need not be delimited by commas, because
they are not followed by any positional operands.
HASP Executor Services -
Page 9·.0-3
HAS P
EXl,
$EXAMP
KWl=X,KW2=Y
EX2
$ EXAMP
A,B,C,KW2=Y,KWl=X
EX3
$ EXAMP
A,KWl=X,KW2=Y
REQUIRED AND OPTIONAL OPERANDS: Certain operands are required in
a macro-instruction, if the macro-instruction is to make a meaningful request for a HASP executor service. Other operands are optional,
and can be omitted. Whether an operand is required or optional is
indicated in 'the macro-instruction descriptions.
9.0.1
BASIC NOTATION USED TO DESCRIBE MACRO-INSTRUCTIONS
HASP macro-instructions are presented in this section by means of
macro-instruction descriptions, each of which contains an illustration of the macro-instruction format.
This illustration is called
,a format description. An example of a format description is as
follows:
[symbol]
$ EXAMP
namel-value mnemonic,name2-CODED VALUE,
KEYWDl=value
mnemonic,KEYW~2=CODED
VALUE
Operand representations in format descriptions contain the following
elements:
•
An operand name, which is a single mnemonic word used to
refer to the operand.
In the case of a keyword operand, the
keyword is the name.
In the case of a positional operand,
the name is merely a reference.
In the above format description, namel, name2, KEYWDl, and KEYWD2 are operand names.
•
A value mnemonic, which is a mnemonic used to indicate how
the operand should be written, if it is not written as a coded
value. For example, addr is a value mnemonic that specified
that an operand or optional value is to be 'written as either
a relocatable expression or register notation.
•
A coded value, which is a character string that is to be
written exactly as it is shown.
For example, RDR is a coded
value.
The format description also specifies when single operands and
combinations of operands should be written. This information is
indicated by notational elements called metasymbols.
For example,
in the preceding format description, the brackets around "symbol"
indicate that a symbol in this field is optional.
HASP Executor Services - Page 9.0-4
594
HAS P
Operand Representation
Positional operands are represented in format descriptions in one
of two ways:
•
By a three-part structure consisting of an operand name,
a hyphen, and a value mnemonic.
For example:
namel-addr.
•
By a three-part structure consisting of an operand name,
a hyphen, and a coded value.
For example: namel-RDR.
Keyword operands are represented in format descriptions in one of
two ways:
•
By a three-part structure consisting of a keyword, an equal
sign, and a value mnemonic.
For example: KEYWDl=addr.
•
By a three-part structure consisting of a keyword, an equal
sign, and a coded value.
For example: KEYWDl=RDR.
The most significant characteristic of an operand representation
is whether a value mnemonic or coded value is used; these two
cases are discussed below.
Operands with Value Mnemonics
When a keyword operand is represented by:
KEYWORD=value mnemonic
the programmer first writes the keyword and the equal sign, and
then a value of one of the forms specified by the value mnemonic.
When a positional operand is represented by:
name-value mnemonic
the programmer writes only a value of one of. the forms specified
by the value mnemonic.
The operand name is merely a means of
referring to the operand in the format description; the hyphen
simply separates the name from the value mnemonic.
Neither is
written.
The following general rule applies to the interpretation of operand
representations in a format description; anything shown in upper~
case letters must be written exactly as shown; anything shown in
lower-case letters is to be replaced with a value provided by the
programmer.
Thus, in the case of a keyword operand, the keyword
and equal sign are written as shown, and the value mnemonic is
replaced.
In the case of a positional operand, the entire
representation is replaced.
HASP Executor Services 595
Page 9.0-5
HAS P
VALUE MNEMONICS:
,The value mnemonics listed ,below specify most
of the ,allowable operand forms that can be written in HASP macroinstructions. Other value mnemonics, which are rarely used, are
defined in individual macro-instruction descriptions.
•
symbol
•
relexp
the operand can be written as a relocatable
expression.
•
addr
-- the operand can be written as (1) a relocatable
expression, or (2) register notation designating a register
that contains an address in its three low order bytes.
The
designated register must be one of the registers 2 through
12, unless special, register notation is used.
(Refer to
Section 9.0.2: Special Register Notation.)
•
addrx -- the operand can be written as (1) an indexed or
nonindexed implied or explicit address, or (2) register
notation designating a register that contains an address in
its three low-order bytes. An explicit address must be
written as in the RX form of an assembler language instruction.
•
adval -- the operand can be written as (1) an indexed or
nonindexed impl~ed or explicit address, or (2) register
notation designating a register that contains a value. An
explicit address must be written as in the RX form of an
assembler language instruction.
•
•
absex}2
the operand can be written as a symbol.
the operand can be written as an absolute expression.
the operand can be written as (1) an absolute expresor (2) register notation designating a register that contains a value in its three low-order bytes.
value
i
s~on,
•
text
-- the operand can be 'written as a character constant
as in a DC data definition instruction.
The format description
shows explicitly if the character constant is to be enclosed
in single quotation marks.
•
code
-- the operand can be written as one 'of a large set of
coded values; these values are defined in the macro-instruction
description.
Coded Value Operands
Some operands are' not represented in format descriptions by value
mnemonics.
Instead, they are represented by one or more upper-case
character strings that show exactly how the operand should be written.
These character strings are called coded values, and the operands
for which they are written are called coded value operands.
HASP Executor Services -- Page 9.0-6
596
HAS P
A coded value operand results in either a specific value pa.
or a specific sequence of executable instructions.
If a positional operand can be written as anyone of two or
coded values, all possible coded values are listed and are set
by vertical stroke indicating -that only one of the values is , address, and length of the record to'be
written.
If register notation is used, the appropriate address must
have been loaded into the designated register before the
execution of this macro-instruction.
Input/Output Services - Page 9.5-2
616
HAS P
OLAY~YES
must be specified if the $EXTP macro-instruction is coded
physically within an overlay segment.
Input/Output Services - Page 9.5-3
617
HAS P
9.5.3
$WTO - HASP Write to·Operator
The$WTO macro-instruction inifiates·output activlty on one or
more of the devices de.·signated as operator consoles.
Format Description - Standard Form:
[symbol]
$WTO
message-addrx}
{ (Rl)
{le.ngth-value}
'(RO)
YES] [ ' WA~T=NO.
YES] [ ' CONVERT=NO
YES]
[ . ' JOB=NO
. [,ROUTE=code] [,CLASS=code] [,PRI=code]
Format Description - Execute Form:
[symbol]
.
$WTO
{7~~)~ge-ad~rx}
[
len.
(RO)gth-value]
~.,1F-~ (E ,name )
,!
Formatqescription - List Form:
$WTO
[name]
[ , length-value,] HF=L
['JOB=~~S] [WAIT=~~S] [CONVERT=~~SJ
[ , ROUTE=code]
[, CLASS=code]
[, PRI=code]
message
specifies the address of a message which is to be written
on the designated console(s).
If register notation is used, the address must have been
loaded into the designated register before the execution
of this macro-instruction.
length.
specifies the length of the above message.
If register notation is used, the value must have been
load~d in~o the low-order byte of the designated register
before the execution of the macro-instruction. ·The rest
of the register must be zero unless the message is being
sent to·,a·
remote r terminal (see below) .
-'
~'
NOTE:. When using the Execute and List forms of the macroinstruction, the length can be specified on either form
but mus't not be specified on both.
Il1put/Output Services - Page 9.5-4
618
HAS P
JOB
specifies whether the characters "lJOB nnn" will be appended
to the start of the message as follows:
YES - The job number will be appended to the start of
the message.
NO -- The job number will not b~ appended to the
message.
If this operand is omitted, JOa=YES will be assumed.
CAUTION:
Unless JOB=NO is specified, the JCT register must
be loaded with the address of the Job Control Table before
the execution of this macro-instruction or the job number
printed will be unpredictable.
WAIT
specifies the action to be taken in the event no Console
Message Buffers are available as follows:
YES - Return will not be made until a Console Message
Buffer has become available and the message has
been queued.
NO - An immediate return will always be made with the
condition code set as follows:
CC=O - No Console Message Buffers were available. The message was not accepted
and the macro-instruction must be
re-issued.
CC~O - The message was accepted.
If this operand is omitted, WAIT=YES will be assumed.
NOTE:
Unless WAIT=NO is specified, the message to be issued
must be constructed in a re-e"nterable area of storage.
CAUTION: WAIT=NO must be specified if the $WTO macroinstruction is coded physically within an overlay s~gment.
CONVERT
specifies the type of consoles indicated as follows:
.
YES - Logical Consoles have been specified (e.g., $LOG)
and these must be converted to physical consoles
by the Control Service Program.
NO - Physical Consoles have been specified and no
conversion is necessary.
If this operand is omitted, CONVERT=YES will be assumed.
Input/Output Services - Page 9.5-5
619
HAS P
ROUTE
specifies the console or consoles on which the above
message is to be written.
The code consists of the
absolute sum of one or more of the Logical Console
designations in the' following list:
Designation
Console Specified
$LOG
System Log Console(s)
$ERR
Error Console(s)
SUR
unit Record operations area
$TP
Teleprocessing operations area
$TAPE
Tape operations area
$MAIN
Chief Operator's area
$OS
OS Message Console(s)
$ALL
All of the above Consoles
$ REMOTE
Remote Terminal Console
NOTE:
If "$REMOTE" is specified, no other consoles should
be specified, the register form of "length" must be
specified, and the remote terminal number must be loaded
into bits 16-23 of the register used to specify the length
before the execution of the macro-instruction.
Bits 0-15
of this register must be zero.
If no ROUTE is specified, the "$LOG" console will be assumed.
CAUTION:
The designation "$ALL" should not be used in
conjunction with any other console but should be specified
alone.
Failure to observe this rule will give unpredict~
able results.
CLASS
specifies the class of the message as one of £he following:
$ALWAYS- The message should always be written.
$ACTION - The message requires operator action.
$NORMAL - The message is considered essential to
normal computer operations.
$TRIVIA - The message is considered non-essential
to normal computer operations.
If no CLASS is specified, $NORMAL will be assumed.
Input/Output Services - Page 9.5-6
620
HAS P
PRI
specifies the priority of the message as one of
following:
,
$HI - High Priority.
SST - standard Priority.
$LO - Low Priority.
t~e
If no PRI is specified, $S1 priority will be assumed.
Input/Output Services - Page 9.5-7
621 .
HAS P
9.6
9.
6.~
TIME SERVICES
$TIME- Request Time
of~,
The $TIME macro-instruction obtains the time bf day and returns
this time in register "RO".
The time is returned as an unsigned
32-bi t binary number in' which the least significant bi t has :'a
value of 0.01 second.
Format Description:
[symbol]
$TIME
[OLAY=YES]
OLAY=YES
must be specified if the $TIME macro-instruction is coded
physically within an overlay segment.
The time returned is the time of day based on a 24-hour clock.
Time Services - Page 9.6-1
622 , ' ,
HAS P
9.6.2
$STIMER - Set Interval Timer
The $STIMER macro-instruction 'sets an interval into a pr'ogramrned
interval timer.
Format Description:'
[symbol]
$STIMER
loc-add rx
{ (Rl)
j-
[,OLAY=YES]
loc
specifies the address of a HASP Timer Queue Element.
Before this macro-instruction is executed, t~e Timer
Queue Element must be initialized as follows:
ITIME must be initialized with the interval to be
set in the following manner:
If "x" seconds are desired, then ITIME should
be set to "x"; OR
If "y" hundredth-seconds (0.01 seconds) are
desired, then ITIt-1E should beset to the
two's complement of "y".
IPOST must be initialized with the address of the
Event Wait Field to be posted.
If register notation is used, the address must have been
loaded into the designated register before the execution
of this macro-instruction.
For more information, refer to section 8.10: HASP Timer
Queue Element Format.
QLAY=YES
must be specified if the $STIMER macro-instruction is coded
phy~ically within an overlay segment.
PROGRAMMING NOTE: An unlimited number of independent $STIMER
time intervals can be active at any time provided that each
has been furnished with a unique HASP Timer Queue Element.
Time Services - Page 9.6-2
623
HAS P
9.6.3
$TTIMER - Test
.
-Interval Timer
The $TTIMER macro-instruction obtains the time remainipg in the
assoclated time interval that was previously set with a $STIMER
macro-instruction.
The value of the time interval ,remainder is
returned in register "RO" in seconds (rounded to the nearest
second).
The $TTIMER macro-instruction can also be used to cancel the associated time interval.
Format Description:
[symbol]
loc
$TTIMER
!
loc-addrx-}
(Rl)
[ ,CANCEL]
[, OLAY=YES]
specifies the address of the timer queue element.
If register notation is to be used, the address must have
been loaded into the designated register before the execution of this macro-instruction.
CANCEL
specifies that the interval in effect should be cancelled.
If this operand is omitted, processing continues with the
unexpired portion of the interval still in effect.
If the interval expired before the $TTIMER macro-instruction
was executed, the CANCEL operand has no effect.
OLAY=YES
must be specified· if the $TTIMER macro-instruction is coded
physically within an overlay segment.
Time Services - Page 9.6-3
624
HAS P
9.7
9.7.1
OVERLAY SERVICES
$OVERLAY·- Define ·Overlay Segment'
The $OVERLAY macro-instruction defines the. instructions which
follow it as an overlay segment and defines the name, priority,
and residence susceptibility factor of this' overlay segment'.
Format Description:
HASPname-symbol
$ OVERLAY
prio-value [,resfact-value]
HASP name
specifies the name to be assigned to the 'overlay segment.
The first four characters must be the characters "HASP".
The last four characters can be any unique combination of
alphameric characters.
prio
specifies the priority of the overlay segment as follows:
o
- Lowest P~iority
&LOW - Low Priority
&MED - Medium Priority
&HIGH - High Priority
res fact
specifies the residence susceptibility factor of the
overlay segment as follows:
o
- Never Resident
&LOW - Resident only if &OLAYLEV<4
&MED - Resident only if &OLAYLEV<8
&HIGH - Resident only if &OLAYLEV<12
If this parameter is omitted, a residence factor of 0 will
be used.
NOTE:
This parameter may be overridden at the time that
the overlay library is built.
Overlay Services - Page 9.7-1
625
HAS P
9 .7. 2
$OCON - Define Overlay Constant
The $OCON macro-instruction defines an overlay constant (aCON)
for use in conjunction with other overlay mqcro-instruct~ons.
Format Description:
[symbol]
$OCON
HASPname-symbol
HASP name
specifies the name of an overlay
segment~
Overlay Services - Page 9.7-2
626
HAS P
9.7.3
$L~NK-
Link to an Overlay Segment
The $LINK macro·-instruction is used to link to an overlay segment
from a non-overlay segment.
Format Description:
[symbol]
$LINK
HAspname-symbol}
{ (register)
HASPname
specifies the name of the overlay segment to which control
is to be transferred.
If register notation is used, the register specified must
be loaded with the qddress of an overlay constant (OeON)
which represents the overlay segment to which control is
to be transferred.
Overlay Services - Page 9.7-3
h?7
HAS P
9 .7. 4
$XCTL - Transfer Control to
A~other Ov~rlay
Segment
The $XCTL macro-instruction is used to transfer control from
one overlay segment to another.
Format Description:
[symbol]
$XCTL
!
HAspname-symbolj
(register)
HASPname
specifies the name of the overlay segment to which control
is to be transferred.
If register notation is used, the register specified must
be loaded with the address of an overlay constant (OCON)
which represents the overlay segment to which control is
to be transferred.
Overlay Services - Page 9.7-4
628
HA S P
9.7.5
$R~TURN
. . . Return from an.Overlay
Se
9.7.7
$DEL~TE
- De~ete a Loaded Over.~ Segment
The $PEL$TE ma~ro . . instruction is used to d~lete an ov~rlay
segment Which has been loaded with a $I..OADmacro-instruction.
Format Desqription:
[symbol]
$DELETE
Overlay Services - Page 9.7-7
631
HAS P
9.8
9.8.1
SYNCHRONIZATION SERVICES
$ACTIVE - Specify Processor is Active
The $ACTIVE macro-instiuction indicates to the' HASP Disp~tcher
that the associated processor is processing a job or task.
Format Description:
[symbol]
$ACTIVE
[R=register]
R
specifies the register which is to be used by the $ACTIVE
macro-instruction.
if R is omitted, register "Rl" will be used.
Synchronization Services - Page 9.8-1
632
HAS P
9.8.2
$DORMANT - Specify Processor is Inactive
The $DORMANT macro-instruction indicates to the HASP Dispatcher
that the associated processor has completed the processing of a
job or task and is now going into a "dormant" state.
Format Description:
[symbol]
$ DORMANT
IR=register]
R
specifies the register which is to be used by the $DORMANT
macro-instruction.
If R is omitted, register "RI" will be used.
CAUTION: The $DORMANT macro-instruction should never be executed
unless a corresponding $ACTIVE has been executed for the same
processor.
Synchronization Services - Page 9.8-2
633
HA S P
9.8.3
$WAIT - wait for a HASP Event
J
The $~AIT macro-instruction places the associated processor in
a HASP wait condition and specifies the event upon which the
processor is waiting in the Processor Control Element Event
Wait Field.
Format Description:
[symbol]
$WAIT
event-code [,ENABLE]
[,OLAY=YES]
event
specifies
as one of
BUF
TRAK
JOB
UNIT
CKPT
CMB
OPER
the event upon which the processor is waiting
the following:
- waiting for a HASP Buffer.
waiting for a direct-access track address.
waiting for a job.
waiting for a Device Control Table.
waiting for the completion of a HASP checkpoint.
waiting for a Console Message Buffer.
- waiting for an operator response.
10
waiting for the completion of an Input/Output
operation.
WORK
waiting to be re-directed.
HOLD
waiting for a $S operator command.
DDB
waiting for a Device Definition Table or Unit
Control Block.
ABIT - waiting for the next HASP dispatch.
ENABLE
specifies that the system mask in the PSW should be set to
all ones prior to returning to the HASP Dispatcher.
OLAY=YES
must be specified if the $WAIT macro-instruction is coded
physically within an overlay segment.
Synchronization Services - Page 9.8-3
634
HAS P
9.8.4
$POST - Post a HASP Event Complete
The $POST macro-instruction indicates a HASP event is complete
by turning off the specified bit in the indicated Event Wait
Field.
Format Description:
[symbol]
$POST
ewf-relexp,event-code
ewf
specifies the address of the event wait field which is to
be posted.
This operand can also be written in the form
D (B) •
event
specifies the event which is to be posted as one of the
following:
BUF - a HASP Buffer has been returned.
TRAK - direct-access space has been released.
JOB - a HASP Job Queue Element has changed status.
UNIT - a Device Control Table has been released.
CKPT - a HASP checkpoint has completed.
CMB - a Console Message Buffer has been returned.
OPER - an operator has responded.
10
- an Input/Output operation has completed.
WORK - a processor has been re-directed.
HOLD - an operator has entered a $S command.
DDB - a Device Definition Table or a Unit Control
Block has been released.
CAUTION:
The $POST macro-instruction should not be executed
unless addressability to the HASP Communication Table (HCT) has
been established.
Synchronization Services - Page 9.8-4
635
HAS P
9.8.5
$ENABLE - Enable Interrupts
The $ENABLE macro-instruction causes the specified interrupts
to be enabled.
Format Description:
[symbol]
$ ENABLE
mask-code [,OLAY=YES]
mask
specifies the interrupts to be enabled as follows:
ALL - Enable all interrupts.
JCL - Enable the interrupts which were enabled when
the Reader/Interpreter appendage was entered.
NOTE: This code can be specified only in the
Reader/Interpreter appendage.
OLAY=YES
must be specified if the $ENABLE macro-instruction is coded
physically within an overlay segment.
Synchronization Services - Page 9.8-5
636
HAS P
9.8.6
$D~SABLE
- Disable Interrupts
The $DISABLE macro-instruction causes the specified interrupts
to be disabled.
Format Description:
[symbol]
$DISABLE
mask-code [,OLAY=YES]
mask
specifies the interrupts to be disabled as follow~:
ALL - Disable all interrupts.
INT - Disable Interval Timer Interrupt.
OLAY=YES
must be specified if the $DISABLE" macro-instruction is 'coded
physically within an overlay segment.
Synchronization Services - Page 9.8-6
HAS P
9.9
9.9.1
DEBUG SERVICES
$TRACE - Make Entry in the HASP Trace Table
IThe $TRACE macro-instruction makes an entry in the HASP trace
table if the &TRACE option is set non-zero.
If the &TRACE
option is set to zero, this macro-instruction does not gerierate
any code.
Format Description:
[symbol]
$TRACE
P.ROGRAMMING NOTE:
The $TRACE macro-expansion and associated
Control Service Program preserve all registers and the condition
code. For more information concerning the HASP trace table,
refer to Section 5.11.
Debug Services - Page 9.9-1
638
HAS P
9.9.2
$'COUNT - Count Selected Occurrences
The $COUNT macro-instruction increments a counter every time
the macro-instruction is executed and can be used to determine
the number of times a particular event occurs or a particular
section of code is entered. The counter is a half-word counter
(modulo 65,536) which is located fourteen bytes deep in the macro
expansion (symbol+14).
Format Description:
[symbol]
$COUNT
[R=register]
R
specifies a register to be used in performing the counting
operation.
If this parameter is omitted, register "RI" will be used.
Debug Services - Page 9.9-2
639
HAS P
9.10
ERROR SERVICES
9.10.1
$ERROR - Indicate Catastrorhic
Er~or
The $ERROR macro-instruction is used to indicate that a catastrophic error has occurred, one that prevents any further processing
by HASP.
The macro-instruction causes the following message to
be printed out on the console specified by HASPGEN parameter
$PRICONA:
$ HASP SYSTEM CATASTROPHIC ERROR.
CODE
=
symbol
Format Description:
symbol
$ERROR
symbol
consists of a four-character symbol indicating the type
of error which occurred.
This operand usually consists of a letter, two digits; and
trailing blanks, and will be printed as the error code in
the message which is printed.
NOTE:
This operand must be present.
Error Services - Page 9.10-1
640
HAS P
9.10.2
$DISTERR - Indicate Disastrous Error
The $DISTERR macro-instruction is used to indicate that a
disastrous error has occurred.
The macro-instruction causes
the following message to be printed out on the $ERR and $LOG
consoles:
DISASTROUS ERROR - COLD START SYSTEM ASAP
Format Description:
[symbol]
$DISTERR
[OLAY=YES]
OLAY=YES
must be specified if the $DISTERR macro-instruction is coded
physically within an overlay segment.
Error Services - Page 9.10-2
641
HAS P
9.10.3
$IOERROR -Log Input/Output Error
The $IOERROR macro-instruction is used to log an Input/Output
Error on the operator's console.
Format Description:
[symbol]
$ IOERROR
!
buffer-addrx}
(Rl)
[,OLAY=YES]
buffer
specifies either a pointer to a HASP buffer or the address
of a buffer which has been associated with a HASP Input/
Output. error.
If "buffer" is written as an address then it represents the
address of a full-word which contains the address of the
buffer in error in its three low order bytes.
This word
must be located on a full-word boundary in core.
If "buffer" is written using register notation (either
regular or special register notation), then it represents
the address of the buffer in error.
If register notation is used, the address must have been
loaded into the designated register before the execution
of the macro-instruction.
OLAY=YES
must be specified if the $IOERROR macro-instruction is
coded physically within an overlay segment.
Error Services - Page 9.10-3
642
HAS P
9.11
9.11.1
CODING AID SERVICES
$GLOBAL - Define GLOBAL Symbols
The $GLOBAL argument on a COpy instruction causes all HASP
GLOBAL 'Symbols to be defined. This COpy instruction must be
the first instruction in an assembly (except for TITLE, EJECT,
and SPACE operations) to function correctly.
Format Description:
COpy
$ GLOBAL
Coding Aid Services - Page 9.11-1
643
HAS P
9.11.2
$HASPGEN - Define HASPGEN Parameters
The $HASPGEN argument on a COpy instruction causes all general
HASPGEN parameter values to be defined. This COpy instruction
may be placed anywhere in an assembly but must follow the
COpy $GLOBAL instruction.
Format Description:
COpy
$HASPGEN
Coding Aid Services - Page 9.11-2
644
HAS P
9.11.3
NULL - Define a Symbol
The NULL macro-instruction defines the symbol in the name field,
if any, as haVing the eurrent value of the lOcation counter
rounded ~p, if necessary, to a half-word boundary.
Format Description:
[symbol]
NULL
Coding Aid Services - Page 9.11-3
HAS P
9.11.4
$HASPCB - Generate HASP Control Blo
Jobs being processed (active):
JOB j
[name] {EXECUTING ClaSS} PRIO priority~OLDl
IS PURGING
~URGEJ
ON device name
HASP Operator's Guide - Page 12
705
HAS P
Where:
j
=
the HASP assigned job number
name
=
the OS job name assigned by the programmer
(displayed only if requested by the installation
at HASPGEN time)
class
=
the job class specified on the job card or set by
the operator with the $T JOB command
r
=
the remote terminal to receive the output for
which the job is queued (if r=O the job is queued
for local printing)
=
the device that is ready, printing or punching
data associated with the job.
If the operator has
repeated the output of a job, the lowest numbered
device will be listed.
priority
=
the HASP queueing priority
HOLD
=
the job is in HOLD status and must be released to
continue to flow through the system
PURGE
=
the job has been flagged for purge and will be
deleted from the system
DUPLICATE
=
the job is waiting for OS execution and another
job is currently executing with the same as job
name
device
na~e
HASP
706
Operator~s
Guide - Page 13
HAS P
Examples:
JOB
JOB
JOB
JOB
JOB
JOB
12
13
14
13
15
16
JOHNSJB
JOHNSJB
PUNCHJOB'
TESTOUT
ASMJOB
UNIQUE
EXECUTING A PRIO 9
AWAITING EXEC B PRIO 8 DUPLICATE
ON RMl.PUl PRIO 7
ON PRINTERI PRIO 8
AWAITING PRINT 1 PRIO 6'
AWAITING PUNCH 0 PRIO 6
HASP Operator's Guide - Page 14
707
· HAS P
STANDARD ERROR RESPONSES
The following standard messages will be returned in response to
invalid SYNTAX in command entry:
1.
xxxxxxxx
INVALID COMMAND - The command identified by the
eight characters displayed was not found in the
HASP command verb table.
No action has been taken.
2.
xxxxxxxx
INVALID OPERAND - The input stream identified by
the eight characters displayed was not recognized
as a valid operand. With exception of device list
commands no action has been taken.
In the case of
device list commands action has been taken on
operands preceding the INVALID OPERAND.
HASP Operator's
708
G~ide
- Page 15
HAS P
1.4
JOB QUEUE COMMANDS
Definition:
$A Ax •.•
Action:
Any jobs in the system held by the $HA command
will be released and processing allowed
Responses:
OK
- one or more jobs have been
released
QUElJE. No.T HELD
- no jobs have been released
RELEASE ALL JOBS
Examples:
1.
user
system
-
$A ALL
OK
2.
user
,system
-
$A A
3.
user
- $A.A
system -,; QUEUE· NOT. HELD ..
-.0:«
HASP Operator's Guide - Page 16
709
U
.M.
u
r
DISPLAY ACTIVE JOBS
Definition:
$D Ax ...
Action:
Job infor~ation for each active job in the
system will be displayed.
Responses:
Job information messages -
(see section
1.3)
NO ACTIVE JOBS
- no active jobs were
found
LIST INCOMPLETE
- the last job listed
was removed from the
HASP job queue while all
HASP WTO buffers were in
use.
Examples:
Comments:
1.
user
- $D A
system - JOB 3 ASSEMBLY EXECUTING A PRIO 5
2.
user
- $D ACTIVE
system - JOB 20 LISTALL ON PRINTER 2 PRIO 6
The LIST INCOMPLETE response shoul¢ be extremely
rare when s-q,fficient WTO buffers have been
generated to handle the message traffic.
HASP Operator's Guide - Page 17
710
HAS P
Definition:
$D, Fx ... [ , r-rr]
DISPLAY NUMBER OF JOBS QUEUED ON FORMS
Action:
The number of jobs queued for special forms printers
and special forms pu~ches will be summarized and
displayed for the local or remote workstations
specified by the route codes (r~rr).
If the route
code ranges are not specified, only the local queues
are displayed.
Responses:
jjj FORM ffff PRT rrr
,jjj FORM f f f f PUN rrr
- one response for each
form/route code combination
with jobs queued for special
f6rms printer output meaning:
jjj j6bs are queued for form
ffff at a printer located
at the local or remote station as indicated by rrr.
- one response for each
form/route code combination
with jobs queued for special
forms punch output.
Examples:
1.
user
- $D F
system - 4 FORM 0030 PRT 0
3 FORM 0132 PRT 0
1 FORM 0011 PUN 0
2.
user
$D F, 3-'4
system - 2 FORM 6431
1 FORM 7346
3 FORM 0563
1 FORM 7346
PRT
PRT
PRT
PRT
3
3
4
4
HASP Operator's Guide - Page 18
711
HAS P
Definition:
$D Nx ... f,{r-rr} [,queue]]
lqueue
DISPLAY JOB INFORMATION ON QUEUED JOBS·
Where:
queue = XEQ
- only jobs waiting for execution are
to be displayed in order by class
(A I B, C, etc.)
= XEQ class -
Ac~ion:
only jobs waiting for execution in
the designated class are to be
displayed
= PRT
- only jobs waiting for print are to
be displayed in order by route
code ( 0, I, 2, etc.)
= PUN
- only jobs waiting for punch are to
be displayed in order by route
code ( 0, I, 2, etc.)
=
- only jobs waiting for any activity
and in hold status are to be
displayed
HOLD
If routing and/or queue type restriqtions are not
specified, job information will be displayed for-all
jobs queued for execution (XEQ), print (PRT), and
punch (PUN); destined for output at local and all
remote terminal printer-punch unit record groups.
If the routing restriction is specified in operand 2,
only the jobs with output destined to the terminals
designated will be displayed.
If the queue type is
specified in operand 2 or 3, only jobs in the
selected queue with the appropriate routings will be
displayed.
In addition to displaying job information, the percentage of spool disk utilization will be displayed
following the search for queued jobs.
HASP Operatorts Guide - Page 19
712
HAS P
Responses:
Job information message
- , (see section 1. 3)
xx PERCENT SPOOL UTILIZAT.ION
- the last response
LIST
INCOMPLET~,
- the last job listed
prior to this message was removed from
the HASP job queue
while all HASP WTO
buffer~ere in use
Examples:
.1.
Comments:
user
- $D N,4 ,PRT
system - JOB 6 PRINTJOB AWAITING PRINT 4 PRIO 6
JOB 8 ASSEMBLY AWAITING PRINT 4 PRIO 5
25 PERCENT SPOOL UTILIZATION
2.
- $D N, 0-2, XEQ
1J.se1='
system - JOB 3 UNIQUE AWAITING EXEC A PRIO 9 DUPLICATE
,J.QB 6 JOHNSJB AWAITING EXEC A PRIO 9
JOB 2 BILLSJB AWAITING EXEC A PRIO 8
30 PERCENT SPOOL UTILIZATION
3.
user
- $D N,PUN
system - JOB 6 XYZJOB AWAIT:rNG PUNCH
JOB. 7 XYZJOB AWAITING PUNCH
JOB 12 JOBXYZ AWAITING PUNCH
JOB 15 JOBXYZ AWAITING PUNCH
JOB '5 JOBJOB AWAITING PUNCH
.35 PERCENT SPOOL UTILIZATION
9 PRIO 9
9 PRIO 8
1 PRIO 13
1 PRIO 8
3 PRIO 10
In exampl'e 1 the operator has requested that only jobs
with output to remote 4 and wait,ing for print to be
displayed.
.
In example 2 the operator has requested information
on jobs waiting for execution with output to local,
remote 1, or~rem6te 2 device~.
HASP Operator's Guide - Page 20
713
HAS P
Definition:
$D
QX •••
[{r-rr} [,queue]l
,queue
J
DISPLAY NUMBER OF JOBS QUEUED
Where:
queue
=
XEQ
=
XEQ class - only jobs waiting for execution
in the designated class are to
be counted and summarized
=
PRT
- only jobs wqiting for print are
to be counted and summarized in
order by route code (0, 1, 2, etc.)
=
PUN
only jobs waiting for punch are
to be counted and summarized in
order by route code (0, 1, 2, etc.)
== HOLD
Action:
- only jobs waiting for execution
are to be counted and summarized
in ordeT of class (A, B, C, etc.)
- only jobs waiting for any acti vi ty
and in ~old status are to be
displayed
If routing and/or queue type restrictions are not
specified, the number of jo.bs queued for execution
. (XEQ) , print (PRT) , and punch (PUN); destined for
output at local and all remote terminal printer~
punch unit record groups will be displayed.
If
the routing restriction ts specified in operand 2,
only the count of jobs with output destined to the
terminals designated will be displayed.
If the
queue type is specified in operand 2 or 3, only the
count of jobs in the selected queue with the appro~
priate routings will be displa¥ed.
In addition to displaying number of jobs queued,
the percentage of spool disk utilization will be
displayed following the search for queued jobs.
HASP Operator's Guide - Page 21
714
HAS P
Responses:
- number of jobs in
designated queue type-one line for each queue
type
nn queue type
xx
P~RCENT
SPOOL UTILIZATION - the last response
Examples:
Comments:
1.
user
- $D Q,4,PRT
system - 2 PRT 4
25 PERCENT SPOOL UTILIZATION
2.
user
- $D Q,O-2,XEQ A
system - 3 XEQ A
30 PERCENT SPOOL UTILIZATION
3.
user
- $D Q,PUN
system - 2 PUN 0
2 PUN 1
1 PUN 3
35 PERCENT SPOOL UTILIZATION
In example 1 the operator has requested that the
number of jobs with output to remote 4 and waiting
for print to be displayed.
In example 2 the operator has requested that the
number of jobs waiting for execution class A with output
to local, remote 1, or remote 2 devices
In example 3 the operator has requested that the
number of jobs waiting for punch be displayed. The
response shows two jobs waiting for punch at remote
1 (route code 1) ~ ~nd one job wa~ting for punch at
remote 3 (route code 3).
HASP Operator's Guide - Page 22
71S
HAS P
Definition:
$H Ax ...
HOLD ALL JOBS CURRENTLY IN THE SYSTEM
Action:
All jobs currently in the system will be placed in
the HOLD status and" further processing will be
prevented. Any new jobs entering the system subsequent to $HA command will not be held.
The
$A ALL command may be used to negate the effect
of the $HA command or the $A JOB command may be
used to negate the effects for specific jobs.
Response:
OK - all jobs currently in the system have been
placed in the hold status
Examples:
-
$H ALL
OK
-
$H A
OK
1.
user
system
-
2.
user
system
-
HASP Operator's Guide - Page 23
716
HAS P
1.5
JOB LIST COMMANDS
JOB LISTS
All job list commands accept requests for action for one or
moie jobs. The following format i~ used for entry of job list
commands:
Each operand requests action upon a range of job numbers;
i.e., if "1-300" were specified for an operand, action
would be attempted on jobs 1, 2, 3, ... 300.
If a single
job is desired, the "-jj" may be omitted or entered with
a value equal to the first value of the range.
If the
second value of the range is not greater than the first,
only the job corresponding to the second value will be
operated upon.
Limitations:
The maximum of five (5) range groups may be entered; any
entries beyond operand five will be ignored.
HASP Operator's Guide - Page 24
717
HAS P
Definition:
$A job list
RELEASE SPECIFIED JOB(S)
Action:
Specified jobs will be released from the HOLD
status if held by $H ALL, $H JOB, or JCL
TYPRUN=HOLD.
Response:
- one response for each job released
JOBj RELEASED
JOB(S) NOT FOUND - none of the specified job(s) were
found
JOBj NOT HELD
- one re$ponse for each job indicated
but not in the hold status
Examples:
Comments:
1.
user
- $A JOB 3
system - JOB 3 RELEASED
2.
user
- $A JOBS 4-6
system - JOB 4 RELEASED
JOB 6 NOT HELD
In example 2 job 5 was not found.
HASP Operator's Guide - Page 25
718
HAS P
Definition:
$C job list
Action:
Specified jobs will be flagged for PURGE, if NOT
in OS--execution will have its activity deleted
and be queued for purging. If the job is queued
for execution, or being read into the system it
will have its JCL queued for print prior to purging.
Limitations:
If the job is on an output device which has been repeated, multiple $C commands may be necessary to purge
the job.
Response:
Job information response - one response for each
job cancelled
JOB(S) NOT FOUND
- none of the specified
jobs were found
CANCEL SPECIFIED JOB(S)
Examples:
1.
user
- $C'JOB 7
system - JOB 7 YOURJOB AWAITING PUNCH 0
PRIO 7 PURGE
HASP Operator's Guide - Page 26
719
HAS P
Definition:
$D job list
DISPLAY JOB INFORMATION ON SPECIFIED JOB(S)
Response:
Job information response·
JOB(S) NOT FOUND
- one response for each
specified job found in
the system
- none of the specified jobs
were found
Examples:
1.
Comments:
user
- $D JOBS 1-10
system - JOB 2 YOURJOB
JOB 3 YOURJOB
JOB 6 ANOTHER
JOB 7 JOHNSJB
EXECUTING A PRIO 13
AWAITING EXEC A PRIO 13 DUPLICATE
ON PRINTERl PRIO 12
AWAITING PRINT 0 PRIO 12 HOLD
In example 1 jobs 1, 4, 5, 8, 9 and 10 were not found.
If the $D job list conunand is entered fre/m a remote
terminal, only those jobs belonging to the remote will
be displayed.
HASP Operator's Guide - Page 27
720
HAS P
Definition:
$E job list
Action:
Each specified job found in the system and currently
in OS execution will have its HASP execution controller flagged to restart the job. Upon completion
of OS execution (normal or abnormal) the controller
will place the job back on the HASP execution queue.
Note:
This command requires job and system command authority and is not available to HASP remote operators.
Response:
Job information response - one response for each
specified job in execution
which has been flagged for
re-execution
JOBj NOT RESTARTABLE
- one response for each
specified job found in the
system which cannot currently be restarted
JOB(S) NOT FOUND
-'none of the specified jobs
were found
RESTART EXECUTION OF SPECIFIED JOB(S)
Examples:
Comments:
1.
user
- $E J6
system - JOB 6 ANY EXECUTING A PRIO 8
2.
user
system
user
OS
-
$E J3
JOB 3 MYJOB EXECUTING A PRIO 6
C MYJOB
accepted message
In example 1 the operator desires to let job 6 run
to completion before requeueing for execution.
In example 2 the operator desires to abort current
execution of job 3 and requeue for execution.
HASP Operator's Guide - Page 27.1
720.1
HAS P
(The remainder of this page intentionally left blank.)
720.2
HAS P
Definition:
$H job list
Action:
Each specified job found in the system will
be placed in the HOLD status.
Response:
Job information response - one response for each job
held
JOB(S) NOT FOUND
- none of the specified jobs
were found
HOLD SPECIFIED JOB(S)
Examples:
1.
user
- $H J4
system - JOB 4 YOURJOB AWAITING PRINT 0
PRIO 4 HOLD
HASP Operator's Guide - Page 28
721
HAS P
Definition:
$p job list
STOP SPECIFIED JOB(S) AFTER CURRENT
ACTIVITY
Action:
Specified jobs will be flagged for PURGE and, if
not active, will be queued for purging.
Jobs
which are active will be queued for purging upon
completion of current activity. Jobs awaiting
execution will be queued for printing of JCL prior
to purging.
Response:
Job information response - one response for each
job which will be stopped
JOB(S) NOT FOUND
- none of the specified jobs
were found
Examples:
1.
user
- $p J7
system - JOB 7 JOHNSJB ON PRINTER2
PRIO 4 PURGE
HASP Operator's Guide - Page 29
722
HAS P
1. 6
MISCELLANEOUS JOB COMMANDS
Definition:
$A'jobname' RELEASE JOB SPECIFIED BY OS JOBNAME
Where:
'jobname'
Limitations:
This command is valid only if requested by the installation at HASPGEN time.
Action:
The HASP job queue is searched for the single job
with the specified job name and the action of the
$A job list command is performed as though that
command had been entered for the job. If the job
is not found or if more than one job with the specified name is encountered, no action is taken and
an appropriate diagnostic is displayed.
Response:
JOBj RELEASED
=
the OS job name appearing on the user's
job card enclosed by apostrophes. The
name may be upper or lower case alphameric characters, but must not contain
blanks.
- the job specified has
been released
jobname NOT FOUND
- the job named is not
in the system
JOBj NOT HELD
- the specified job was
not in hold status
MULTIPLE JOBS WITH jobname - more than one job with
the specified name is
in the system
- messages compatible
with $D 'jobname' will
follow
Examples:
1.
user
- $A'MYJOB'
system - JOB 4 RELEASED
HASP Operator's Guide - Page 30
723
HAS P
Definition:
$C'jobname' CANCEL JOB SPECIFIED BY OS JOBNAME
Where:
'jobname'
= the OS job name appearing.on the user's
job card enclosed by apostrophes. The
name may be upper or lower case alphameric characters, but must not contain
blanks.
Limitations:
This command is valid only if requested by the installation at HASPGEN time.
Action:
The HASP job queue is searched for the single job
with the specified job name and the action of the
$C job list command is performed as though that
command had been entered for that job. If the job
is not found or if more than one job with the specified name is encountered, no action is taken and
an appropriate diagnostic is displayed.
Responses:
Job information response
- response listing the
current status of the
job after command action
jobname NOT FOUND- the job named is not in
the system
MULTIPLE JOBS WITH jobname - more than one job with
the specified name is in
the system
- messages compatible with
$D'jobname' will follow
Example:
1.
user
- $C'YOURJOB'
system - JOB 82 YOURJOB AWAITING PRINT 0
HASP Operator's Guide - Page 30.1
723.1
HAS P
Definition:
$D'jobname' DISPLAY JOB INFORMATION ON JOB SPECIFIED
BY OS JOBNAME
Where:
'jobname' = the OS job name appearing on the 'user's
job card enclosed by apostrophes. The
name may be upper or lower case alphameric characters, but must not contain
blanks.
Limitations:
This command is valid only if requested by the installation at HASPGEN time.
Response:
Job information response - one response for each job
in the system with the OS
job name specified
LIST INCOMPLETE
- the last job listed was
removed from the HASP job
queue while all HASP WTO
buffers were-rn use
jobname NOT FOUND
- the job named is not in
the system
Examples:
user
- $0 'my job ,
system - JOB 4 MYJOB
JOB 5 MYJOB
JOB 6 MYJOB
JOB 7 MYJOB
ON PRINTER 1 PRIO 13
AWAITING PRINT 0 PRIO 13
EXECUTING A PRIO 13
AWAITING EXEC A PRIO 13 DUPLICATE
HASP Operator's Guide - Page 30.2
723.2
HAS P
Definition:
$E'jobname' RESTART EXECUTION OF JOB SPECIFIED BY
OS JOBNAME
Where:
'jobname' = the OS job name appearing on the user's
job card enclosed by apostrophes. The
name may be upper or lower case alphameric characters, but must not contain
·blanks.
Limitations:
This command is valid only if requested by the installation at HASPGEN time.
Action:
The HASP job queue is searched for the single job
with the specified job name and the action of the
$E job list command is performed as though that
command had\been entered for that job. If the job
is not found or if more than one job with the specified name is encountered, no action is taken and
an appropriate diagnostic is displayed.
Note:
This command requires job and system command authority and is not available to HASP remote operators.
Responses:
Job information response
Examples:
1.
- response listing the
current status of the
job (the job's execution
controller has been
flagged to restart the
job)
JOBj NOT RESTARTABLE
- the specified job is not
currently in execution
jobname NOT FOUND
- the job·named is not in
the system
MULTIPLE JOBS WITH jobname - more than one job with
the specified name is in
the system
- messages compatible with
$D'jobname' will follow
2.
Comments:
user
system
user
system
user
OS
-
$E 'ANY'
- JOB 6 ANY EXECUTING A PRIO 8
- $E 'MYJOB'
- JOB 3 MYJOB EXECUTING A PRIO 6
- C MYJOB
- accepted message
In example 1 the operator desires to let job "ANY"
run to completion before requeueing for execution.
In example 2 the operator desires to abort current
execution of job "MYJOB" and requeue for execution.
HASP Operator's Guide - Page 30.3
723.3
HAS P
Definition:
$H'jobname' HOLD JOB SPECIFIED BY OS JOBNAME
Where:
'jobname' = the OS job name appearing on the user's
job card enclosed by apostrophes. The
name may be upper or lower case alpha-meric characters, but must not contain
blanks.
Limitations:
This command is valid only if requested by the installation at HASPGEN time.
Action:
The HASP job queue is searched for the single job
with the specified job name and the action of the
$H job list command is performed as though that
command had been entered for the job. If the job
is not found or if more than one job with the specified name is encountered, no action is taken and
an appropriate diagnostic is displayed.
Responses:
Job information response
- response listing the
current status of the
job after command action
jobname NOT FOUND
- the job named is not in
the system
MULTIPLE JOBS WITH jobname - more than one job with
the specified name is in
the system
- messages compatible with
$D'jobname ' will follow
Example:
1.
user
- $H 'ANYJOB'
system - JOB 302 ANYJOB AWAITING EXEC A PRIO 4
HOLD
HASP Operator's. Guide - Page 30.4
723.4
HAS P
Definition:
$P'jobname' STOP JOB SPECIFIED BY OS JOBNAME
Where:
'jobname'
Limitations:
This command is valid only if requested by the installation at HAS~GEN time.
Action:
The HASP job queue is searched for the single job
with the specified job name and the action of the
$P job list command is performed as though that
command had been entered for the job. If the job
is not found or if more than one job with the specified name is encountered, no action,is taken and
an appropriate diagnostic is displayed.
Responses:
Job information response
=
the OS job name appearing on the user's
job card enclosed by apostrophes. The
name may be upper or lower case alphameric characters, but must not contain
blanks.
- the job specified has
been stopped
jobname NOT FOUND
- the job named is not
in the system
MULTIPLE JOBS WITH jobname - more than one job with
the specified name is
in the system
- messages compatible with
$D'jobname' will follow
Example:
1.
user
- $P 'UNIQUE'
system - JOB 31 UNIQUE ON PRINTER 2 PRIO 6 PURGE
HASP Operator's Guide - Page 30.5
723.5
HAS P
(The remainder of this page intentionally left blank.)
723.6
HAS P
~Tx ... j
Definition:
$T
.
Where:
priority = a numeric value 0 through 15 which indicates the HASP queuing priority desired
for the specified job.
, {p=priori ty } SE'T JOB CLASS OR PRIORITY
P=+priority
.
P=-priority
C=clas's
+priority = a numeric value which is to be added to
the present HASP queuing priority of the
specified job.
-priority
class
Action:
Limitation:
=
a numeric value which is to be subtracted
from the present HASP queuing priority of
the specified job.
=
a single character (A,B,C---Z,O,1---9)
representing the new execution class of
the specified job.
(Lower case characters
will be made upper case.)
1.
PRIORITY SETTING
The specified job's priority will be adjusted
as indicated; however, if the resulting priority
is outside the range 0-15, the final priority is
adjusted to 0 or 15 as appropriate.
2.
CLASS SETTING
The specified job's execution class will be set
to the indicated plass.
No action will be taken on a job that is currently
active.
If a job's class is execution batching (one of the
classes specified by HASPGEN parameter &XBATCHC) it
should not be changed to a non-batching class. Similarly,-a-non-batching class should not be changed
to a batching class. Such actions will cause the
job to execute incorrectly.
Responses:
Job information response--response for the job being
set.
Examples:
1.
user
- $TJ4,P=14
system - JOB 4 ANYJOB AWAITING EXEC A PRIO 14
2.
user
- $TJ6,C=Z
system - JOB 6 YOURS AWAITING EXEC Z PRIO 3
HASP Operator's Guide- Page 31
724
HAS P
Definition:
$T Jx ... n
Where:
n = the new base number for automatic job number
assignments.
Action:
The new base number will be set causing the next
job number assignment to be "JOB n" or the first
number beyond n that is not currently held by a job.
Responses:
OK - indicates that the.new job number base has
been set.
SET HASP INTERNAL JOB NUMBER
Examples:
Comments:
1.
user
- $TJl
system - OK
2.
user
- $TJOBIOO
system - OK
In example 1 assume that jobs 1, 3 and 4 are
currently in the system when the input service
processors read the next job. An attempt to
assign the value of "1" to the new job will fail;
however, the job will be assigned the value of "2".
Subsequent jobs will be assigned the value of 5, 6, 7 ...
If, however, the jobs 1, 3 and 4 are not in the
system, new jobs entering the system will receive
job number 1, 2, 3, 4 ...
HASP Operator's Guide - Page 32
725
HAS P
1.7
DEVICE LIST COMMANDS
Unless the format of the acceptable device list required by a command is explicitely specified, all device list commands accept entries of the following form:
$verb device ,device , ... ,device
l
2
n
Each operand specifies a single device that is to be acted upon by
the HASP System. The device may be specified by its full name or
abbreviated name as "follows:
CONSOLEn
INTRDRn
LINEn
PRINTERn
PRINTRn
PUNCHn
READERn
RMr .PRn·
RMr.PUn
RMr.RDn
TAPEn
-
CONn (abbreviation must be used)
RDIn (abbreviation must be used)
LNEn
PRTn
PRTn (used when more than 9 printers· are on the
system)
- PUNn (abbreviation must be used)
- RDRn
(no abbreviation)
(no abbreviation)
(no abbreviation)
- TPEn
Limitations:
A maximum of five (5) operands may be specified in a single
device list command. Operands which are in excess of the
maximum allowed will be considered part of the fifth operand.
HASP Operator's Guide - Page 33
726
HAS P
NOTES:
1.
Device list commands generally perform operations which occur
after the response to the command entered; i.e., the OK
response to a device list command signifies that the command
has been a~cepted and an attempt to perform the requested
action will be made for all devices listed.
Additional messages will be displayed on the operator's console when the action requested is either in process or has
been completed as appropriate.
See Messages and Codes
section of this manual for the format and meanings of these
messages.
2.
An error response to a device list command indicates that the
action requested by the previous operands will be attempted
but the operand in error and all following operands will be
ignored.
3.
Many commands will accept operands as being valid even though
the devices specified are unable to perform the function
requested.
Table 1.7~l identifies the devices affected by
each device list command.
HASP Operator's Guide - Page 34
727
HAS P
TABLE 1.7.1
DEVICES AFFECTED BY DEVICE LIST COMMANDS
$B
$C
$E
$F
$I
$N
y
LINE
$P
$S
$T
$Z
y·4
y
y7
y7
LOCAL READER
y2
Y
Y
y
Y
INPUT TAPE
y2
Y
Y
Y
Y
REMOTE READER
y2
y5
Y
Y
y
y2,3
y6
Y
y
y7
INTERNAL READER
LOCAL PRINTER
y
Y
Y
Y
Y
Y
Y
y
y
y
REMOTE PRINTER
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
LOCAL PUNCH
yl
Y
Y
yl
yl
y
y
y
y
Y
REMOTE PUNCH
yl
y
y
yl
yl
y
y
y
y
Y
Y
Y
Y
LOCAL CONSOLE
lRESTARTS FUNCTION
2DELETES CURRENT JOB
3SIMULATES EOF IF NO CURRENT EXCP
4DRAIN AFTER SIGNOFF OR $E IF REMOTE ACTIVE
5 DRAIN AT EOF AS OPPOSED TO END OF FUNCTION FOR CURRENT JOB
6AUTOMATICALLY STARTED BY USER PROGRAM
7COMMAND ACCEPTED BUT WILL HAVE NO EFFECT
HASP Operator's Guide - Page 35
728
HAS P
I
[
page~
Definition:
$B device
Where:
device = HASP printer device desired to perform the
backspace
pages = the number of pages (up to 9999) to backspace (optional for the last device of the
list, mandatory for the other devices)
DX ••• = backspace to beginning of data set
Action:
The designated printer will, if ACTIVE, back up the
designated number of pages in the current data set
and resume printing.
If the beginning of the data
set is encountered during the backspace process, the
printer will resume printing at the beginning of the
data set.
If the number of pages is not specified,
the count of one (1) will be assumed for the last
device in the list.
Note:
A $B directed to a punch will have the effect of restarting the current function.
Responses:
OK - the specified printer(s) will be backspaced
Examples:
1.
user
- $B PRT1,lO
system - OK
2.
user
- $B PRTl
system - OK
3.
user
Comments:
Dx ••
aACKSPACE DEVICE(S)
j
- $B PRTl,5,PRT2
In example 1 printer 1 is to be backspaced ten pages.
In example 2 printer 1 is to be backspaced one page.
In example 3 printer 1 is to be backspaced five
pages (the count for printer 1 must be specified),
and printer 2 is to be backspaced one page.
HASP Operator's Guide - Page 36
729
HAS P
Definition:
$C device list
Where:
device
Action:
The current activity on the designated devices will
be terminated.
In the case of printer and punch
devices, the highest priority job eligible for output on the device will be selected and printing or
punching will resume for the new job. In case of
input reader devices, the current job will be queued
for print and reading will continue.
In case of internal reader devices an end of file maybe simulated
based upon the instantaneous status of the device.
Note:
A $C directed to an internal reader should only be
used when the reader has been left active by a submitting task that has terminated (ie., the job that
submitted the input stream terminated without freeing
the internal reader).
Responses:
OK - the activity on the specified device(s) will
be cancelled.
Examples:
1.
=
CANCEL CURRENT ACTIVITY ON DEVICE(S)
HASP reader, printer, and punch devices
user
- $C PRTI
system - OK
HASP Operator's Guide - Page 37
730
HAS P
. Definition:
$E device list
=
RESTART CURRENT ACTIVITY ON DEVICE(S)
Where:
device
Action:
The current activity on the designated devices will
be terminated.
In case of printer/punch devices the
job will be returned to the appropriate print or punch
queue in order of priority and made eligible for
selection.
In case of remote job entry lines, the
HASP System will, upon completion of the current
line I/O, abort all activities on the line.
Response:
OK
Examples:
1.
user
$E PRTl,PRT2
system - OK
2.
user
- $E LNE2
system - OK
HASP line, printer, and punch devices
- the specified device will be restarted
-
HASP Operator's Guide - Page 38
731
HAS P
Definition:
$F device [pages]
DX .•.
Where:
device
pages
DX ...
I
FORWARD-SPACE PRINTER DEVICE (S)
=
HASP printer device desired to perform
the forward-space
= the number of pages (up to 9999) to
forward-space (optional for last device
of list, mandatory for the other devices)
= forward-space to end of data set
Action:
The designated printer will, if ACTIVE, skip forward
the designated number of pages and resume printing.
If the end of the data set is encountered during the
forward-space, printing will resume on the next data
set if present.
If the number of pages is not specified for the last device in the list, the count of
one (1) will be assumed.
Note:
A $F directed to a punch device will have the effect
of restarting the current function.
Responses:
OK - the specified printer(s) will be forward-spaced
Examples:
1.
user
- $F PRT1,999
system - OK
2.
user
$F PRT1,DS
HASP Operator's Guide - Page 39
732
HAS P
I
Definition:
$1 device list
-Where:
device
Action:
The current-activity on the designated printer(s)
will, if ACTIVE, be checkpointed and terminated.
The job will be returned to the HASP SYSTEM job
queue and made available for selection. Any printer
selecting the job for output will resume printing
the job after the backspacing of one (1) page.
Note:
A $Idirected to a punch device will have the effect
of restarting the current function.
Responses:
OK - the specified printer(s) will be interrupted
Examples:
1.
INTERRUPT CURRENT ACTIVITY ON
PRINTER DEVICE(S)
= HASP printer devices
user
= $I PRTl
system = OK
HASP Operator's Guide - Page 40
HAS P
Definition:
$N device list
Where:
device
Action:
The current activity on the designated printer and/or
punch devices will be repeated. This operation will
not terminate the activity in process but will place
the job back on the HASP job queue and make it available for otner devices to output. Once a device has
been repeated additional commands to repeat or interrupt the device will be ignored until the device has
completed operation on the ,current copy of the output. A restart,$E directed to a repeated device will
have the effect of cancelling the output.
Responses:
OK - the specified printer and/or punch device(s) will
be repeated if the device(s) are eligible
Examples:
1.
I
= HASP
REPEAT CURRENT ACTIVITY ON DEVICE(S)
printer and punch devices
user
- $N PRTI
system - OK
HASP Operator's Guide - Page 41
734
HAS P
DEVICE STATUS
A device controlled by the HASP System will be in one of four
status conditions as follows:
ACTIVE
- The device is actively performing a function.
INACTIVE
- The device is available to perform a function,
however, no jobs are available for the device.
DRAINING
- The device is actively performing a function,
but upon completion of that function will not
begin a new activity.
DRAINED
- The device is not performing a function and will
not do so until the operator starts the device.
The operator controls the ability of a HASP device to select jobs
for processing via the following commands:
$p
$S
- stop the device
- Start the device
HASP Operator's Guide - Page 42
735
HAS P
Definition:
$Pdevice list
STOP (DRAIN) DEVICE(S)
Action:
The specified devices will be prevented from
starting any new activity.
If a device is INACTIVE,
the device will be immediately stopped (DRAINED).
If a device is ACTIVE, the device status will be
DRAINING and will revert to the DRAINED status upon
completion of the current activity.
Responses:
OK
- the device(s) have been placed in the DRAINED
OR DRAINING status
1.
user
- $P PRTl,PRT2,PUNl
system - OK
Examples:
Comments:
When the device enters the DRAINED status, the HASP
message
"device IS DRAINED"
will be displayed on the operator's console.
If a VARY CPUx,OFFLINE command is to be issued to
stop a CPU in the Model 65 Multiprocessor configuration, the operator must first insure that ~ll
devices accessible only from the CPU to be varied
offline are in the HASP DRAINED status.
HASP Operator's Guide - Page 43
71f,;
HAS P
I
[,additional deVices] START DEVICE (S)
Definition:
$S
Note:
The explanation of this command is complex and is
separated into the definitions which follow.
device
line ,password
input tape,address
console
HASP Operator's Guide - Page 44
737
HAS P
Definition:
$S device list
Where:
device
Action:
The devices listed will be placed in the ACTIVE
or INACTIVE status.
If the device is INACTIVE,
an attempt to select and process a job will be
made. Each device started will be placed into
the OS off-line status to prevent inadvertent
OS alloGation of an active device.
Responses:
OK
=
START DEVICE(S)
HASP card reader, printer, and punch
devices
- the device(s) listed have been started
Examples:
1.
user
- $S PRTl,PRT2,PUNl,RDRl
system - OK
2.
user
- $S PRTI
system - OK
HASP Operator's Guide - Page 45
738
HAS P
Definition:
$S line,password
Where:
line
password
START DEVICE(S)
= HASP remote job entry line device
=
0 to 8 character security password
required for remote workstation SIGNON
Action:
The specified line(s) will be started unless
allocated by OS to another activity or the designated adapter is off-line. The password will be
set for the line and be used to reject unauthorized
terminals attempting to use the line without permission from the central installation.
If the line
is ACTIVE, the command has the effect of setting a
new password to be used for future terminal SIGNON.
Responses:
OK
- the specified line(s)
will be started
device name IN USE
- the line listed is
assigned by OS
device name INVALID OPERAND - the line listed, if
spelled correctly,
has not been assigned
a hardware address
Examples:
1.
user
- $S LNEl"LNE2
system - OK
2.
user
- $S LNEl,XZQ,LNE2,XZZ
system - OK
HASP Operator's Guide - Pagei 46
739
HAS P
Definition:
$S input tape, address
Where:
input
= HASP input tape device
address = three digit hardware address for the
device
Action:
The specified HASP input tape device will be made
ACTIVE and will read the input stream data from
the assigned tape unit.
Note:
The unit address is used for the purpose of assigning a physical device to the HASP logical device.
Once this assignment has been made succeeding $S
commands directed to the device should be made
omitting the unit specification and associated
comma.
Responses:
OK
Examples :.
1.
user
- $S TPEl,182
system - OK
2.
user
- $S TAPEl,TAPE2
system - OK
Comments:
START DEVICE(S)
- the designated tape(s) have
been started
device name IN USE - the device is currently ACTIVE
or the unit has been assigned
by OS
In example 2 the operator has previously set tapes 1 .
and 2 to place all jobs in the hold status and now
wishes to reverse that action.
HASP Operator's Guide - Page 47
740
H A 5 P
Definition:
$5 console
Where:
device
Action:
The specified HASP consoles will be started for
all logical console classes of messages with all
levels of importance (see CONSOLE SUPPORT for
classes and levels of messages) .
Responses:
OK
START DEVICE(S)
= HASP console device(s)
- the HASP console(s) have been started
Examples:
1.
user
- $5 CONl,CON2
system - OK
HASP
741
Operator'~
Guide - Page 48
HAS P
Definition:
$T
reader, /A=authorit y
Hx ...
printerl
/ punch
,C=
,F=
I
SET DEVICE
I~arriagel
! I
Rx ••.
Sx .••
Ax .••
n
,T=
{ train
}
,S=
/Yx •••
I
Nx ...
console
,level
,class [,class, •.. ]
!
, Rx. • •
I
.
,A=authority
CON,level,class[,class, ... ]
Note:
The explanation of this command is complex and is
separated into the definitions which follow.
HASP Operator's Guide - Page 49
742
HAS P
Hx. • ·
{ A=authority
l
Definition:
$T reader,
Where:
reader = HASP reader device
Action:
If Hx •.• is specified the designated reader will
be set to place all jobs subsequently read by the
reader into the execution HOLD queue. Jobs placed
into the HOLD queue may be released for execution
by use of the $AJOB command. A successful $S command directed to the reader will negate the effects
of the "$T reader,H" command causing the reader to
revert to normal reading and queueing of jobs~
J
SET DEVICE
If A~authority is specified the HASP command authority of the designated local, tape, or internal
reader is set to allow HASP command entry as follows:
o-
display only
1 - system control
2 - device control
4 - job control
Notes:
1.
2.
3.
4.
5.
6.
A reader may not be used to set the command
authority of a reader device.
See CONSOLE SUPPORT section of this manual.
See $TCON and $TCONn commands.
The $S command does not negate the effects of
the "$T reader, A=authority" command.
A=authority operand requires device and system
authority.
If a specification is in error, that specification and all succeeding specifications in the
command are rejected. Previous specifications
will be acted upon.
Responses:
OK - The specified reader has been set to HOLD subsequent jobs and/or its HASP command authority
has been set.
Examples:
1.
2.
3.
user
- $T RDRl,HOLD
system - OK
$T RDRl,H
user
system - OK
user
- $T RDRl,A=O
system - OK
-
HASP Operator's Guide - Page 50
743
HAS P
Definition:
$T
l
printer} ,C=
punch
;arriagel
,F= Rx ...
Sx ...
Ax ...
n
,T= train
,s=lyx ...
lNx .. ·
Where:
SET DEVICE
I
I
1
=
space the printer one line after each
print line; i.e., single space the printer
ignoring problem program carriage control
Rx ...
=
set the printer or punch to output jobs
using standard forms (STD.) allowing
changing of forms on a DEMAND basis
Sx ....
=
set the printer to print special forms
data sets using standard (STD.) forms
which the operator has loaded into the
device
Ax...
=
set the printer or punch to output jobs
using special forms under HASP AUTOMATIC
forms assignment
n
=
a one to four digit number specifying the
forms which the operator has loaded into
the device
train
=
the two character train or chain identification (AN, HN, PN, QN, RN, or UN).
carriage
=
the single character 3211 carriage tape
identification (6, 8, or U)
yx...
=
set the printer or punch to provide
HASP separator pages or cards between
data sets of different jobs.
Nx...
=
set the printer or punch not to provide
HASP separators and (in case of a nonconsole remote workstation) not to
provide operator messages on the printer.
HASP Operator's Guide - Page 51
744
HAS P
Action:
·The specified printer will be set to handle the
carriage control (C=), forms (F=), and train/chain
(T=) as specified or the specified eunch will be
set to handle the forms (F=) specif~ed.
If the
specified printer has the UCS feature installed,
the UCS buffer will be loaded with the print train/
chain image prior to the printing of each job.
Notes:
1.
The effect of C=l will be negated by entry of
a successful $S command directed to the printer.
2.
Multiple settings directed to the same device
using the same command entry are permitted.
3.
The specification F=R will cause the printer
to print the normal batch stream jobs using the
installation's standard forms. However, a job
requesting special forms in a data set to be
printed with the rest of the job will cause a
forms mount before printing the data set and a
forms mount to STD upon completion of printing this data set.
4.
The specification C=V should be used in conjunction with the $TF command discussed in the
SYSTEM COMMANDS section of this manual.
1.
The setting of forms, train/chain, or carriage
is valid only when the appropriate device is
not being used.
It is recommended that the operator enter "$P device name" and wait for it
to enter the DRAINED status. When HASP has issued a forms load and is waiting for the operator to enter $S for the device, the device may
be considered inactive for the purpose of setting train/chain or carriage for local printers.
2.
Train/chain settings directed to remote printers
or local printers without DCS will be ignored.
3.
The (T=) operand is defined only for local
printers. The remote CPU workstation operator
must load DCS buffers via means other than
through the HASP central system.
4.
The (C=carriage) operand is defined only for local printers. The remote CPU workstation operator must load the carriage buffers via means
other than through the HASP central system.
Limitations:
HASP Operator's Guide - Page 52
745
HAS P
Responses:
OK - the settings requested have been made
Examples:
1.
user
- $T PRTl,C=l
system - OK
2.
user
system
3.
user
- $T PUNl,F=4732
system - OK
4.
user
system
Comments:
-
-
$T PRTI,F=AUTO,T=PN
OK
$T PRT2,F=R,T=HN
OK
In example 1 the operator discovers the problem program is skipping to carriage tape channels which
violate the installation procedures. The entry of
$T PRTl,C=l causes the printer to single space after
each line printed to the end of the data set.
In example 2 the operator desires to use the printer
to print all jobs queued for special forms allowing
HASP to select the special forms to be mounted. The
printer has been loaded with a PNtrain to be used
with the special forms.
In example 3 the operator desires to use the punch
to punch only those data sets in the system which
have specified forms type '4732'.
In example 4 the operator desires to use the printer
to print the normal batch output using standard forms
and the HN print train.
HASP Operator's Guide - Page 53
746
HAS P
Definition:
$T console
!
,level
,class[,class, •.• ]
, Rx •••
SET DEVICE
,A=authority
Where:
console
level
class
Comments:
= HASP console device
= a number, 0-15, which specifies the
highest operator message level to
eliminate for the designated console.
A value of a will allow all messages for
the designated console to be displayed.
A value of 15 will eliminate all messages. The following list indicates the
general levels of messages displayed by
the HASP system:
1 - non-essential messages
3 - normal messages
4 - messages requiring operator action
7 - essential messages
= the logical console class of messages
the specified console is to display in
addition to current classes ..
Specify class as follows:
LOG
- log console messages
ERROR - error messages
UR
- unit record messages
TP
- HASP RJE line messages
TAPE - tape console messages
MAIN - main operator console messages
OS
- OS WTO messages
When using the VARY CPUx,OFFLINE command in a Model
65 Multiprocessor system with HASP Console Support,
the operator must first issue the HASP command
$T console,R
for the console on the CPU to be varied offline, and
wait until the console stops printing messages.
HASP Operator's Guide - Page 54
747
HAS P
Notes:
Rx •••
=
RESET--indicating the level value is to
be set to 15 to eliminate all output
based upon importance and the class
settings are to be reset to eliminate
all output based upon logical console
class.
Authority
=
a number, 0-7, representing one or more
command authority groups as follows:
o - display only console
1 - system control console
2 - device control console
4 - job control console
Under HASP mUltiple console support,
console authority may be set to allow
controlling commands to be entered from
consoles which have the authority to
control the designated function. Multiple
settings are accomplished by the operator
adding the authority group numbers together
and entering the result; i.e., 7 indicates
authority 1+2+4 (zero is assumed).
1.
2.
See CONSOLE SUPPORT section of this manual.
The entry console for A=authority operands
must be authorized for system control (authority
1, 3, 5 or 7)and the device specified must not
be the entry console.
HASP Operator's Guide - Page 55
748
HAS P
Action:
The specified console is set to the appropriate list
"level" logical console "class" and "authority" indicated by the operands. Each operand is handled individually and completely starting with the second
operand. If an operand is determined to be in error,
previous operands will take effect and the operand
in error, along with succeeding operands will be ignored. If the RESET operand is used, it is assumed
to be the last of the list.
Responses:
OK - the settings requested have been made
Examples:
1.
user
- $T CON1,15
system - OK
2.
$T CON1,4
user
OK
system -
3.
user
- $T CON1,RESET
system - OK
user
- $T CON1,O,MAIN
system - OK
4.
user
- $T CON 3 ,A=O
system - OK
f
Comments:
In example 3 all output to console 1 is turned off
(console level set to 15 and class set for no logical classes). Then the console is set to display all
messages for the MAIN console.
HASP Operator's Guide - Page 56
749
HAS P
Definition:
$T CON,level,class [,class, ... ]
Where:
CON
CON--indicating that HASP is to set the
level of message output for the logical
console classes passed to OS consoles.
level = a number, 0-15, which specifies the highest
operator message level to eliminate for the
designated logical console class specified
in the succeeding operands. A value of 0
will allow all H~SP messages for the designated logical console class to be displayed
on the OS console(s) assigned to display
the message class. A value of 15 will
eliminate all HASP messages of the specified
class. The following list indicates the
general levels of messages displayed by
the HASP system:
1 - non-essential messages
3 - normal messages
4 - messages requiring operator action
7 - essential messages
class = the logical console class of the messages
given to OS for display purposes.
Specify as follows:
LOG
- log console messages
ERROR - error messages
UR
- unit record messages
TP
- HASP RJE line messages
TAPE - tape console messages
MAIN - main operator console messages
Notes:
1.
See CONSOLE SUPPORT section of this manual.
2.
Responses to HASP commands will always be
displayed at the console of entry regardless
of the logical console class or level settings.
SET DEVICE
=
HASP Operator's Guide - Page 57
750
HAS P
Action:
The display "level" of the logical console classes
will be set to the level specified.
Each logical
console class is set independently from the others
starting with the first listed, operand 3.
If
an error is detected in the list, the operands
pre~eding
the operand in error will be acted
upon and the operand in error and all succeeding
operands will be ignored.
Responses:
OK
- the logical console classes have been
set to the display level specified.
Examples:
1.
user
- $T CON,4,MAIN,LOG
system - OK
HASP Operator's Guide - Page 58
751
HAS P
HALT (STOP) DEVICE
Definition:
$Z device list
Where:
device
Action:
The specified devices will be HALTED after the
current scheduled operations complete.
In case
of HASP consoles, all logical console classes and
levels of importance will be RESET so that, except
for direct responses to commands entered from
the console, no new messages will be directed to
the device. The effects of the $Z command may
be negated by use of the $S command.
Responses:
OK
= HASP reader,
printer, punch, and
console devices
- the device(s) has been set to HALT
operations
Examples:
1.
user
- $Z PRTl,PRT2,RDRl,PUNl
system - OK
HASP Operator1s Guide - Page 59
752
HAS P
1.8
SYSTEM COMMANDS
Syst,(~m commands control the abili ty of the HASP System to
process jobs through OS and may be broken down into two groups:
INITIATOR COMMANDS
HASP SYSTE.M COMMANDS
- those cornmandswhich control
the actual selection and submission of jobs from HASP to OS
for processing.
Those commands which control
the ability of the HASP System
to process jobs for 'any function.
In the following descriptions, a parameter lin" is referred to as
the initiator identification.
This identification is assigned
by the systems programmer during the HASPGEN process.
However,
it is assumed in this manual that the initiator identifications
are one or two character numeric digits 1, 2, 3, eo.; in MFT the
values correspond to the partition numbers.
HASP Operator's Guide - Page 60
753
HAS P
INITIATOR STATUS CONDITIONS
An initiator's ability to process jobs depends upon the availability
of jobs in the input queue of corresponding classes and t~e status
of the initiator.
These status conditions are as follows~~
I
ACTIVE
- the initiator is currently processing a job and ha$ the
ability to continue processing.
INACTIVE
- the initiator has the ability to process jobs but no
job of the initiator's current classes is ready for
execution.
DRAINING
DRAINED
the initiator is currently processing a job but will not
select another upon completion of the current job.
- the initiator is not processing a job and will not
attempt to select any job.
HASP Operator's Guide - Page 61
754
HAS P
JOB SELECTION FOR
as
EXECUTION
'~vhen the HASP Sys'tem completes reading card' images ctssociated wi th
an OS job, the job is placed into one of the HASP logical execution
queues.
The appropriate execution queue is selected based ~ppn the
job class as specified by:
CLASS=class
parameter on tti~ as job card submitted by
the prog-r amrner
$
$T ~JOBn,C=class HASP command entered by the' operator after
previous queueing based upon the job card.
"
:J "
CLASS=A
default specification in lieu of other
specifications~
Each job is placed in the appropriate execution queue in order by
priority so that higher priority jobs within the queue will be
selected for execution before jobs of lower priority and that jobs
of the same priority will be selected in order first in - first out.
J"on selection priority is determined from the following sources:
1"
The time and line estimate in the HASP accounting field of
the as job card:
Although the correlation of time
estimate with priority is determined
at HASPGEN time, it is normally set
to give the shortest running jobs
highest priority.
ca.rd "vhich may appear preceding the
job card.
This card overrides the
time and line estimate priority setting.
$T ,JOBn p
J.ority
HASP command entered by the operator
after previous queueing.
HASP Operator's Guide - Page 62
755
HAS P
When an initiator enters the INACTIVE status, it will attempt
to select ready jobs from the HASP job queue in a manner
directly controllable by the operator. An initiator will search
the logical ex~cution queues for jobs in order by class.
If
the operator has set the initiator to execute classes "ABX" in
that order, the initiator will initiate only Class A jobs
so long as there are Class A jobs ready for execution. When
there ar~ no Class A jobs ready, the initiator will initiate
only Class B jobs or, if no Class B jobs, Class X jobs. The
operator, therefore, by altering the initiation classes controls
the selection of jobs based upon the job class.
By appropriate
job classing and setting of initiator class selection lists,
jobs with complementary characteristics will tend to be in execution concurrently.
\
HASP Operator's Guide - Page 63
756
HAS P
Definition:
$D I[n]
Where:
n = the identification of the initiator to be
displayed
Action:
The status and eligible classes for the initiator(s)
indicated will be displayed. If n is not specified,
all initiators will be assumed. If an Execution
Batch Processing Program is in main storage under
control of a logical initiator, its as jobname will
also be displayed.
Responses:
INIT n
Examples:
1.
user
- $DIl
system - INIT 1 (ACTIVE)=ABCD
2.
user
- $OI
system - INIT
INIT
INIT
INIT
DISPLAY INITIATOR(S)
(I.
DRAINING
DRAINED
ACTIVE
INACTIVE
I)
1
2
3
4
= classes - one response for
each initiator requested
(ACTIVE)=ABCD
(ORAINING)=BCDA
( INACT lVE) =WDAB
(ORAINED)=DABC
$$$$$W3
HASP Operator's Guide - Page 64
757
HAS P
Definition:
$p I[n]
Where:
n
Action:
The designated initiator will be prevented from
selecting additional jobs for processing.
If a
specified initiator is actively processing a job
(ACTIVE), its status will be changed to (DRAINING)
until the current job terminates.
If a specified
initiator is not actively processing a job
(INACTIVE) or upon completion of processing, the
status of the initiator will be (DRAINED).
STOP (DRAIN) INITIATOR{S)
=
the identification of the initiator
to be stopped
If the optional identification is not specified,
all initiators will be stopped.
--If the system contains the Execution Batch Scheduling
feature (see section 12.13 of HASP Systems Manual),
this command will cause a batch program(s) under
control of the designated initiator(s) to be cancelled
when the initiator(s) becomes DRAINED, thereby releasing memory for other processing.
Responses:
OK
- the specified initiator(s) are or
will be stopped
Examples:
1.
user
- $PI3
system - OK
2.
user
- $PI
system - OK
"HASP Operator I s Guide - Page 65
758
HAS P
Def$n,ti..iQiJ;
.:f&<···.·.:t [n]
·Where:
n
Action:
:Response:S'l
STARTINITIATOR(S)
= the identification of the iriitiator
to be star1:~d
The designated initiator, will be allowed to select
jobs of :the appropriate job classes acceptable to
the initiator. It the identification "n" is
omitted, all initiators which were not stopped by
a $'PI command with the initiator specified will
be started. If the initiator is DRAINING, its
. status will become ACTIVE; if DRAINED, its status
will become INACTIVE and. an immediate attempt
to select a job will be made.
OK
- the specified· initiator(s) are started
Examples:
1>.
'u;se~
- $513
.ystem-.OK
~~
user
- $SI
s'yate. - OX
HAS P
Definition:
$T In,list
Where:
n
list
Action:
SET INITIATOR
C~ASSES
~
the identification of the initiator
to be set
= li~~ of acceptable job classes for
the ~pec~fie~ i~itiator.
Each class
is ,listed in order o£ selection
pr{oritydesi~ed~or. the initiator.
The maximuni length of the list is
specified by the system programmer
atHASPGEN time,.,
. The new clas~ list is".ins~rte(i' without inspection
into the sp~cified i1)i tiator'"s cl'ass selection
list. All future job ~election for the initiator
will be done based upon the new l+st.
~'. _"
Examples:
1.
user
- $TI1,ABC
system - OK
2.
user
- $TI2,~~A
system - OK
3.
user
- $TI3,CAB
system - OK
HASP Operator's Guide - Page 67
760
HAS P
Definition:
$p
Action:
All HASP job processing will be stopped. The
HASP initiators, printers, and punches will not
begin any new functions. The effects of $P
under normal conditions may be negated by the
$S command.
.
Responses:
OK
STOP SYSTEM
- current functions will be allowed to
complete and the system will become
dormant
Examples:
1.
user
- $p
system - OK
HASP Operator's Guide - Page 68
761
·H ASP
Definition:
$P HASP
STOP HASP
Action:
The $P command will be simulated and, if HASP is in
a dormant status (no job processing is in process,
and all HASP devices are DRAINED or INACTIVE), the
HASP SYSTEM will withdraw from control of the Operating System.
Note:
If the system contains the Execution Batch Scheduling
feature (see section 12.13 of HASP Systems Manual),
it is recommended (but not required) th~t the $F I
operator command be issued and system activity be
allowed to quiesce prior to issuing the $P HASP command. This will allow any batch programs to be
cleared from the OS Job Queue prior to withdrawal of
HASP.
Responses:
HASP NOT DORMANT - response when HASP is unable to
withdraw.
Note:
Since HASP loses control of the system during withdrawal, a response is not issued by HASP. However,
reader closed and initiator waiting for work may be
issued by OS as an indication of HASP job completion.
Examples:
1.
user - $P HASP
OS
- reader closed/initiator waiting for work
HASP Operator's Guide - Page 69
762 .
HAS P
. Definition:
$S
START SYSTEM
Action:
All HASP job processing functions which are
otherwise ready for activity will become ACTIVE.
If the system is already processing jobs, it will
continue to do so.
Responses:
OK
- the HASP System functions will begin
or continue.
Examples:
1.
user
- $S
system - OK
HASP Operator's Guide - Page 70
763
HAS P
Definition:
$TF .•. [ 6J
8 [,L=n
,c=list J
SET FCB IMAGE FOR 3211 CARRIAGE CONTROL C=V
Where:
6 = Indicator for six lines/inch (default if
six or eight omitted)
8 = Indicator for eight lines/inch
L=n = Number of lines per page (may be specified
only once per command)
Acceptable numeric values for n range from
2 to 180 (default settings L=66-for 6 lines/
inch and L=88 for 8 lines/inch)
c=list = Specifications for one or more printer
carriage control channels. The "c" specification may take values 1 through 12 representing the channel number. List items
identify the line(s) to which a corresponding printer skip command is to position
the page. List items are separated by
commas. No two list items within the commandmay designate the same line number.
Acceptable values for list items range from
2 to 180.
Notes:
Action:
1) The normal operand limit specified for
HASP commands does not apply with this
command.
2) List items are not inspected to insure
specified lines are within the L=n specification or the default if L is not
specified.
3) This command is defined only when selected by the installation at HASPGEN
time by &FCBV parameter.
The FCB image used for setting carriage control via
$T printer,C=V is reset and created in accordance
with the operands of the command. If the last character of the first operand is not "8", the image is
set for six lines/inch. If the L=n operand is omitted,
a default of 66 lines/page is assumed for six lines/
inch forms and" 88 lines/page is assumed for eight
lines/inch forms.
For each channel "c=list" specified, the carriage
channel is set so that a "skip to channel" command
addressed to the printer will cause the page to be
HASP Operator's Guide - Page 70.1
763.1
II ASP
positioned at the line indicated in the list items
(see 3211 component description manuals for hardware
details). If invalid characters, invalid lines· or
channel values, or mutually exclusive parameters are
specified, the image is reset and six or eight lines
per inch null parameters are as·sumed.· Carriage
channel 1 is always set for line 1 representing the
first print line on the page. This setting must not
appear as a list item for channell.
Starting at the bottom of the page for as many lines
as possible, channels which are omitted from the
specifications are assigned automatically.
Responses:
OK - the settings requested have been made.
Examples:
1.
2.
Comments:
user
system
user
system
-
$T FCB
OK
$T FCB8,L=40,2=20,4=10,30
OK
In example 1, the user desires the default six
lines/inch carriage control image of channel i at
line 1 with 66 lines/page.
In example 2, the user desires eight lines/inch with
40 lines/page. Channel 2·is to allow skipping to
line 20 while channel 4 is to allow skipping to line
10 and 30 on the page.
Notes:
1.
2.
This command requires console authority for
both device and system commands.
The null FCB image settings are as follows:
6 lines/inch
line channel
8 lines/inch
line channel
1
1
1
1
56
57
58
59
60
61
62
63
64
65
66
2
3
4
5
6
7
8
10
11
9
12
78
79
80
81
82
83
84
85
86
87
88
2
3
4
5
6
7
8
10
11
9
12
HASP Operator's Guide - Page 70.2
763.2
HAS P
1.9
MISCELLANEOUS DISPLAY COMMANDS
Definition:
$D Dx ...
Action:
The device addresses and volume serials of all online direct access storage devices will be
displayed.
Limitations:
The 2321 cell is not included.
Responses:
aaa serial - one message for each device found
Examples:
1.
user
- $D DISKS
system - 190 IPLRES
- 191 LNKRES
- 192 NO ID
- 193 SPOOLI
2.
user
- $DD
system - 190 IPLRES
- 191 LNKRES
193 SPOOLI
DISPLAY DIRECT ACCESS DEVICES
I
HASP Operator's Guide
764
~
Page 71
HAS P
Definition:
$D line
Where:
line
Action:
The status of the s~ecified line along with the
device address assignment will be
displayed.
If no address is assigned, the address
will be filled with n***".
If·the line is
ACTIVE and associated wi th a HASP .remote workstation, the HASP status of each device on the
remote terminal will be displayed.
See device
list commands for status definitions.
DISPLAY DEVICES ON RJE LINE
=
HASP RJE line devices (see device
list commands for specification)
hardwa~e
Responses:
LINEn
aaa status - status of the specified line
RMr.devn aaa status - one response for each device
associated with the line (aaa
is the address of the line}
LINEn
NOT FOUND - HASP has no record of the
line specified
Note:
Remote console devices will not be displayed.
Examples:
1.
2~
user
- $D LINEl
system - LINEl
031
- RM3.RDl 031
- RM3.PRl 031
- RM3.PUl 031
user
- $DLNE2
system - LINE2
ACTIVE
INACTIVE
ACTIVE
DRAINED
032 DRAINED
HASP Op.era.tor's Guide
765
""!'
Page 72
HAS P
Definition:
$D R
Action:
All outstanding WTOR reply identification numbers
will be displayed.
Note:
This command is not defined if OS
is being used-.- ---
Responses:
REPLY IDS: id,id, ..• id
DISPLAY OUTSTANDING REPLY IDS
con~ole
support
- one line for each 10
reply ids
- no reply ids were
found
NO OUTSTANDING REPLY IDS
Examples:
1.
user
- $0 R
system - REPLY IDS:
0,
1, 14, 11
HASP Operator's Guide - Page 73
766
HAS P
I
Definition:
$D RMx ... [r]
vJhere:
r = the number of the remote.
all remotes will be assumed.
Action:
If the designated remote is currently associated
with a HASP RJE line, the HASP status of the line
and devices attached to the remote will be displayed.
If the remote is not associated with a
line, only the HASP status of the devices attached
to the remote are displayed.
If the remote number
is not specified in the command, the HASP status.
of. all remote devices will be displayed.
Note:
If there are no HASP remote devices $DR command
will be assumed.
Responses:
LINEn
aaa status - status of the associated line
RMr.devn aaa status - status of each device on the
remote (aaa is the address of
the line)
Note:
Remote console devices will not be displayed.
Examples:
1.
2•
DISPLAY REMOTE(S)
user
system -
$D RM3
LINE 1
RM3.RDl
RM3.PRI
RM3.PUI
-
$D RMTS
RMl.RDl
RMl.PRl
RMl.PUl
RM2.RDI
RM2.PRI
RM2.PUl
RM3.RDl
RM3. PRI
RM3.PUl
user
-
031
031
031
031
If r is omitted,
ACTIVE
INACTIVE
ACTIVE
DRAINED
*** DRAINED
*** DRAINED
*** DRAINED
021
021
021
031
031
031
DRAINED
ACTIVE
INACTIVE
ACTIVE
ACTIVE
INACTIVE
HASP Operator's Guide - Page 74
767
HAS P
Definition:
$D Ux •••
Action:
The status of all HASP controlled, non-direct
access devices attached to the local system will
be displayed along with the corresponding hardware address of the device.
Note:
If HASP multiple consoles are present, the ACTIVE
'status message will also display console authority.
Responses:
device aaa status - one line for each HASP device
DISPLAY UNITS
Examples:
1.
user
- $D UNITS
system - READERI
- PRINTERI
- PRINTER2
- PUNCHI
- TAPEl
- CONSOLE
DOC
ODE
OOF
000
INACTIVE
ACTIVE
DRAINED
INACTIVE
*** DRAINED
OlF ACTIVE
HASP Operatorts Guide - Page 75
768
HAS P
1.10
REMOTE JOB ENTRY COMMANDS
Definition:
$D Mr-rr,message
Where:
r-rr
=
=
Notes:
(1)
(2)
DISPLAY MESSAGE AT REMOTE
TERMINAL(S)
range of remote terminals--all remote
terminals from r through rr are to
receive the message.
single remote number--the remote
specified by r is to receive the·message.
A remote specification of zero (0) indicates
that the message is to be displayed at the central
operator's console.
If a range of remote terminals is specified by
a remote terminal operator only the last remote
specified will receive the message.
message
=
the text of the message desired to be
displayed at the designated remote
terminals.
If the message is enclosed
by apostrophes, the message will be
upper cased and transmitted along with
the apostrophes to the remote terminals
indicated; otherwise, the text will be
made upper case and blanks removed.
Action:
The message will be transmitted to the indicated
remote terminal if the terminal is capable of
receiving the message.
Responses:
OK
- the message has been queued for
transmission to eligible remote
terminals.
HASP Operator's Guide - Page 76
769
HAS P
Examples:
1.
user
- $D M4,Jobs rema~n~ng after 5PM will be purged
at remote -0,JOBSREMAININGAFTER5PMWILLBEPURGED
2.
user
- $D M4,'Jobs remaining after 5PM will be purged'
at remote -0, 'JOBS REMAINING AFTER 5PM WILL BE PURGED'
Note:
The value zero (0) at the beginning of the message indicates
that the message originated at the central site.
If the
message originated from a remote the value would be the
remote number.
HASP Operator's Guide - Page 77
770
HAS P
Definition:
$R type,for-id,to-id
Where:
type
for-id
to-id
Notes:
ROUTE JOB(S) OUTPUT
=
ALL--all output for the specified
job(s) is to be routed
= PRT--print output for the specified
job(s) is to be routed
= PUN--punch output for the specified
job(s) is to be routed
= JOBj--the designated output for job j
is to be routed
--= LOCAL--the designated output for all
jobs currently in the system and routed
for LOCAL devices is to be routed
= device--the designated output for all
jobs currently in the system and routed
for this device is to be routed
= RMx ... r--the designated output for all
jobs currently in the system and routed
for remote r is to be routed
= LOCAL--job(s) are to be routed to local
devices
-= device--job(s) are to be routed to this
device
-= RMx ... r--job(s) are to be routed to
remote r
1 •.
It is possible to route a job to a remote that
does not exist.
2.
In an unmodified HASP System device routing has no
meaning and will be equivalent to specifying LOCAL
or RMTr as appropriate.
3.
RMTO is equivalent to specifying LOCAL.
HASP Operator's Guide - Page 78
771
HAS P
Action:
The routing for print and punch data sets will be
altered for the job specified or for all jobs
currently in the system and routed for the output
device group specified by the second operand to
the routing as specified by the third operand.
Responses:
OK
- the job output specified has been
routed
Examples:
1.
user
- $R ALL,J4,RMT6
system - OK
2.
user
- $R PUN,RM3,LOCAL
system - OK
HASP Operator t $
772
Guid~ -P~ge
79
HAS P
2.0
STARTING THE HASP SYSTEM
HASP runs as a job under OS 360 in the MVT or MFT environment.
Although jobs in the installation may be submitted to OS independently of HASP, it is assumed that all production jobs run
by OS
will be under the control of HASP
and that HASP and OS have been tailored during the generation
processes to minimize operator action required to start the system.
2.1
PREPARATION
The Operating System must be started and running correctly prior
to any attempt to start HASP. AlIOS readers, writers and initiators should be stopped.
If an OS "warm start" is performed,
messages which indicate that the HASP System has abnormally terminated should be ignored; these messag~s result from the cleaning
out of the OS queues from the last IPL of the system.
HASP requires that direct access volumes be mounted for the purpose of
queueing JCL cards along with input data awaiting OS execution and
for saving the job output for later output to the various printer
and punch devices.
One of these volumes will be labeled "SPOOLI".
The additional volumes, if present, will be labeled "SPOOLx" where
the last character "x" is an alphabetic character or numeric digit
(other than 1); no two volumes may have the same volume serial.
The maximum number of volumes to mount is determined by the installation during the generation of HASP.
If the volumes are on-line
and ready at OS IPL time and OS has not requested that they be
removed, the SPOOL volumes are ready for the starting of HASP.
However, if the above is not true, the operator should use the OS
mount command to insure all SPOOL volumes are known to OS.
If HASP is to be "warm started", the exact physical volumes which
we're used during the last running of the system should be mounted.
It is not necessary that the volumes be mounted on the same drives;
the criteria is that all of the volumes be present and that the
data set SYSl.HASPACE has not been altered. Additional SPOOL
volumes may be added if desired.
All unit record and console devices which are to be used by HASP
must be on-line to the CPU and should be in the ready status.
If
the unit record devices are not on-line at the time HASP is started,
they will be unusable for any purpose until the next starting of
HASP.
If HASP Remote Job Entry is to be used, the line adapters
should be on-line and ready with dial data sets on AUTO and non-dial
HASP Operator's Guide - Page 80
773
1! ~ -~ the ready condition.
(I f HASP has been generated wi th
the hardware addresses of,the line adapters, the adapt, ,..::led not be on-line until an attempt is made to use them.)
if
,~Lof
2.2
STARTING THE HASP JOB
With the operating system otherwise dormant and ready for job processing, the direct access SPOOL volumes mounted and known to the
operating system, the unit record, console, and line devices online, the operator starts the HASP job by' entering the OS command:
S .HASP
- MVT start command
S HASP.Pn - MFT start command where n is the partition number
of the HASP partition (normally 0)
S HASP.S - MFT start command if HASP partition is not large
enough to contain the MFT RDR.
The start command causes OS to read the procedure "HASP" from
SYSl.PROCLIB. The "HASP" procedure is an OS reader procedure which
reads the HASP job from a direct access data set and starts an initiator to class H. The initiator will load the HASP executable module into storage and pass control to HASP.
HASP will issue an initial WTOR requesting directions from the operator. The WTOR message will appear as follows:
fInn $ SPECIFY HASP OPTIONS -- HASP-id VERSION x.x"
The operator should respond to this message using the standard OS
reply format with the corresponding reply number "nn". The text
portion of the reply must be one or more options selected from
table 2.2.1. Each option may be entered in either upper or lower
case. A comma must be used to separate.the options. Blanks are
not permitted.
If two options are entered which are considered
opposite, the latter option overrides the former. The FORMAT option, when used, has the effect of COLD starting regardless of the
WARM/COLD specification.
WARM STARTING HASP
When HASP is "warm started", it will require that all SPOOL volumes
which were up during the last execution of HASP be present and
available. HASP will assume that the volumes are intact and that
no FORMATTING will be required to run with the volumes. If a new
HASP Operator's Guide - Page 81
774
HAS P
volume with a "SPOOLx" label is present, HASP will make a few.
basic checks to determine if it has been pre-formatted, and format
the volume if necessary.
It is recommended, however, that only
pre-formatted volumes be added at HASP warm start time.
Jobs which were in execution at the time the CPU was stopped will,
on a HASP "warm start", be scheduled for execution again .. For
this reason, the operator should enter as a reply to the HASP mOR:
ROO, ' WARM, REQ '
(assuming'OO is the current reply number)
HASP will list the activity in process at the time the CPU was
stopped and wait for the operatoi to enter requests. The wait for
HASP REQUESTS serves the following purposes:
1.
It allows OS to flush the interrupted jobs from the
OS queues.
2.
It allows the operator to examine each job listed to
determine whether or not:
A.
to allow the job to be automatically
re-executed by HASP
B.
to hold the job for further investigation
C.
to cancel the job allowing it to be purged
from the system
3.
It allows the operator to examine the activity on the
output devices to determine what action to take prior
to starting normal job processing.
4.
It allows the operator to change tqe default status of
HASP initiators and devices as well as modify the status
of jobs in the HASP queue.
HASP Operator's Guide - Page 82
775
H A 8 P
When the operator has determined that the system is ready for
job processing, he should enter "$8" on the console~
The following examples list the console messages and reply
sequence expected during HA8P initialization~
1.
2.
user
system
user
system
system
user
-
S HASP
00 $SPECIFY HASP OPTIONS -- HASP id VERSION
R 00, 'COLD ,FORMAT ,
SPOOL! IS BEING FORMATTED
ENTER HASP REQUESTS
$S
user
system
user
system
user
-
S HASP.PO
00 $SPECIFY HASP OPTIONS -- HASP id VERSION x.x
R OO,'U'
ENTER HASP REQUESTS
$S
x~x
HASP Operatorts Guide - Page 83
776
HAS P
TABLE 2.2.1
HASP INITIALIZATION OPTIONS
OPTION
OPPOSITE
FORMAT
NOFMT
NOFMT
FORMAT
COLD
WARM
WARM
COLD
REP
NOREP
NQREP
REQ
REP
NOREQ
NOREQ
REQ
LIST
NOLIST
NOLIST
TRACE
LIST
NOTRACE
NOTRACE
TRACE
NONE
U
Note:
MEANING
All SPOOL volumes are to be formatted.
No SPOOL volume is to be formatted
unless HASP determines necessary.
Any job data contained on the SPOOL
volumes is to be ignored.
HASP is to continue processing where
it left off during the previous IPL.
Replacement cards are to be used for
temporary modifications to HASP for
this IPL.
This option should be
specified only under the direct supervision of the system programmer
responsible for the replacement cards.
No replacement cards are to be used.
HASP is to stop and wait for a $S
command before beginning job processing
HASP is to begin job processing when
ready to do so.
HASP is to list on a designated printer
any replacement cards read.
HASP is not to list replacement cards.
Allow tracing of HASP internal execution; this option is not active ori a
system generated for production.
Cut off the tracing of HASP internal
execution.
Take all default options.
Take all default options.
The options underlined are the normal default options.
HASP Operator's Guide - Page 84
777
HAS P
3.0
ABBREVIATED WTOR
REP~¥
nn ,.' text'
..
,.
'oJ.•'.";,
"
.,':.
'";
2.
3.
nntext
nn,text
4.
"
.
The
a.
b.
nteJ[t!:.,t:::.:::;::·~;/:.;
n Itel(~ . . •. . ':'
n'text." . . ':.
n··,·t~~;"<:
·ij~SP Opex:a~pr;!,·Sli:";·G~i.;~"\~ ··~~.g:~;,··;85
778
HAS P
4.0
HASP MESSAGES AND CODES
The following sections list those messages originating from HASP
which are not direct responses to HASP operator commands.
4.1
HASP INITIALIZATION MESSAGES
All HASP Initialization Messages are displayed by OS WTO or WTOR
requests and are listed as follows:
CORRECT THE ABOVE PROBLEMS AND RESTART HASP
Explanation: This message occurs following one or
more messages which describe why HASP direct-access
initialization could not complete normally.
System action:
The HASP job will terminate.
Operator response:
Self-explanatory.
EXTENT ERROR ON SPOOLx
Explanation: The operator did a HASP warm start.
HASP has found that the first extent of data set
SYSl.HASPACE on SPOOLx is different from what it
was previous to the warm start. This could be due
to the wrong SPOOLx volume having been mounted, a
different HASP system havin~ been started, or
SYSl.HASPACE having been scratched and reallocated.
System action: After attempting to verify the remaining required SPOOL volumes, the HASP job
terminates.
I
HASP MFT SUPPORT REQUIRES RESIDENT SVC OPTION (TRSVC)
SPECIFICATION AT SYSGEN TIME - HASP TERMINATED
Explanation: The MFT System does not contain the
proper format SVC table (four byte entries) for
use with HASP. See HASP manual section 10.1.
System action:
The HASP job will terminate.
Operator response:
Notify System Programmer.
HASP Operator's Guide - Page 86
779
HAS P
HASP module ATTACH ERROR - code
Explanation: HASP has attempted to attach a
sub-task which is required for the running of the
system. The module name indicates the ECaDIC name
of the sub-task entry module and code is the as
completion code returned.
If the system is
allowed to continue processing, the results will
be unpredictable but will cause general malfunction
as follows:
Module HASPWTR
Jobs upon completion of as execution will remain on the as job queue arid HASP will
not become aware of the user job termination.
Module HASPBRl - HASP WTO message facility will be
inactive eventually causing HASP to become interlocked attempting to use the as console interface.
System action:
HASP will attempt to process jobs.
Operator response:
Probable user error.
Stop HASP,
refer to· the OS messages and completion codes manual,
and correct the problem as indicated.
INVALID UNIT RECORD DEVICE CONTROL TABLES
Explanation: An inconsistency has been detected in
the HASP control section HASPINIT. Unit record
device control tables have been improperly generated.
System action:
The HASP job will terminate.
System programmer response: Check the assembly of
HASPINIT for improperly applied modifications and
insure the correct HASP overlay data set corresponds
with the current HASP resident module.
Reassemble
HASPINIT, recreate the HASP overlay data set, and
LINKEDIT the HASP module as required.
HASP Operator's Guide - Page 87
780
HAS P
JOB j WAS
I
READING
EXECUTING
PRINTING
PUNCHING
!
Explanation: The operator did a HASP warm start.
At the time of system stop, the job numbered j
was in the process of reading, executing, printing,
or punching.
System action:
If the job was reading, it is now
purged.
If the job was executing, HASP will restart
its execution at the first job step.
If the job was
printing, HASP will restart its print phase back a
few pages. If the job was punching, HASP will restart its punching from the beginning.
Operator response:
If the job was reading, it
should be read in again. If the job was executing,
printing, or punching, no operator response is
necessary if the default HASP action is desired.
MAXIMUM OF n SPOOL VOLUME(S) EXCEEDED
Explanation: More direct-access volumes with labels
SPOOLx have been found ·on-line than HASP has been
generated to handle (x is any alphameric character).
System action:
The HASP job will terminate.
Operator response: Probable user error. Check the
volume labels of all direct-access volumes and
remove all but "n" volumes.. Restart HASP.
HASP Operator's Guide - Page 88
781
rI
ASP
MAXIMUM OF n device type EXCEEDED
Explanation:
HASP found more reader, printer, punch,
or console devices physically on-line to the CPU than
the installation indicated for HASP to support.
System action:
The first n devices of the specified
type will be used by HASP: the additional devices
of the specified type will be ignored.
System programmer actio~:
Check the OS generation
to insure that the hardware devices correctly reflect
the system configuration and that the additional
pseudo devices generated in as for HASP do not
address a HARDWARE device or control unit on the
system.
DUNT SPOOLx ON A yyyy
Explanation:
The operator did a HASP warm start.
HASP has found that not all SPOOL volumes are mounted
which were mounted prior to the warm start.
In the
message, x completes the SPOOL volume serial number
and yyyy is the device type upon which the volume
had been mounted.
System action: After attempting to verify the
remaining required SPOOL volumes, the HASP job
will terminate.
Operator response:
Probable user error. Mount the
required volume(s) on the required devices and do a
HASP warm start, or merely a HASP cold start.
This message could also mean that the wrong SPOOLl
volume was mounted.
HASP Operator's Guide - Page 89
782
HAS P
OBTAIN FAILED ON SPOOLx WITH CC nn
Explanation:
The operator did a HASP warm, cold,
or format start.
HASP used the OBTAIN supervisor
service to get information about data set
SYS1.HASPACE on volume SPOOLx, but OBTAIN did not
work as expected.
OBTAIN returned condition code
nn to indicate the problem.
•
nn =
4 - SPOOLx was not mounted.
should not occur.
This error
•
nn
=
8 - SYS1.HASPACE was not allocated on
SPOOLx.
•
nn
=
12 - A permanent input/output error was
found during OBTAIN processing.
•
nn
=
16 - This error should not occur.
•
nn
=
20 - This error should not occur.
System action: After attempting to verify the
remaining SPOOL volumes, the HASP job will
terminate.
Operator response:
Probable user error.
If nn = 8,
allocate a data set named SYS1.HASPACE on SPQOLx and
do a HASP warm start.
If nn = 12, use the IBM
utility program IEHDASDR or IBCDASDI to re-initialize
the SPOOLx volume and then follow the procedure for
nn = 8.
HASP Operator's Guide - Page 90
783
HAS P
OLAYLIB DOES NOT MATCH RESIDENT HASP
Explanation: The job used to start HASP (normally
in SYSl.PROCLIB when HASP is started by usual
method) referenced a load module (from SYSl.LINKLIB
or a JOBLIB or STEPLIB) which was not created from
the output of the same execution of HASPOBLD which
created the referenced OLAYLIB.
System action:
The HASP job will terminate.
Operator response: Probable user error. Verify that
the correct start command and direct-access volumes
which contain parts of the HASP System are being used.
Restart HASP.
If unsuccessful, notify system
programmer.
System programmer resEonse: Verify that procedures
HASP and STRTHASP (or their equivalents, see Section
10.1.4.2 of the HASP Manual) are correctly installed
in SYS1.PROCLIB and that data sets they reference
are cataloged and mounted, etc.
If difficulty persists, re-do the install HASP program actions (sample
job HASPHASP) as described in Section 10.1.4.3.
OPERATOR MESSAGE SPACE NOT AVAILABLE
EXElanation: HASP has attempted to reserve tracks
from SPOOLI volume for remote operator message
queuing and found:
1.
The first extent of SYSl.HASPACE was not large
enough for the requested number of spool records.
2.
During HASP "warm start" the SPOOLl volume was
found incompatible with the loaded copy of HASP.
System action:
The HASP job will terminate.
Operator response:
If HASP "warm start", match the
SPOOLl volume with the HASP load module used during
the "cold start". If "cold start" consult the system
programmer.
System programmer response:
Insure the HASP generation
parameter &SPOLMSG has been correctly applied to the
system and check the extents of SYSl.HASPACE on SPOOLl
for requested space.
HASP Operator's Guide - Page 91
784
HAS P
OVERLAY REPPING ERROR
Explanation:
REP card intended for resident CSECT
may be mispunched or REP card intended for overlay
CSECT cannot be processed because no space exists to
save it.
HASPGEN parameter &OREPSIZ was not set
large enough to hold amount of overlay REP information
currently being processed or &OREPSIZ was set to zero
which eliminates capability of applying REP cards to
overlay CSECTs.
System action:
The HASP job will terminate.
Operator response:
Probable user error.
Verify that
REP cards are those intended for the HASP System which
was started.
Restart HASP and attempt to use correct
REP cards.
If unsuccessful, notify system programmer.
System programmer response: Verify that REP cards
are punched correctly according to format described
in Section 6.4.1 of the HASP Manual and/or re-HASPGEN
with parameter &OREPSIZ set larger to reserve more
space for overlay REPs.
P~RM
I/O ERR ON SPOOLx WHILE FORMATTING
Explanation:
HASP was unable to complete formatting
the first extent of SYSl.HASPACE on SPOOLx.
This may
be because a hardware error occurred or because the
SPOOL volume is not properly initialized.
System action: After attempting to process the
remaining SPOOL volumes, the HASP job will terminate.
Operator response:
If the message was caused by a
hardware malfunction, have it corrected.
If not,
the SPOOL volume may need to be reinitialized;
reinitialize it using the IBM utility program
IEHDASDR or IBCDASDI.
HASP Operator's Guide - Page 92
785
HAS P
PERM I/O ERR READING HASP CKPT
Explanation: The operator did a HASP warm start.
HASP was unable to read the checkpoint record on
SPOOLI. This may be because the wrong SPOOLI was
mounted, a different HASP System was started, or
the checkpoint record had been destroyed.
System action:
The HASP job will terminate.
Operator response: Probable user error. Mount the
correct SPOOLI volume and do a HASP warm start using
a HASP System compatible with the old HASP checkpoint.
If this fails, do a HASP cold start.
PERM I/O ERR WRITING HASP CKPT
Explanation: HASP failed to format-write correctly
the HASP checkpoint record on SPOOLI. This could
be because of a hardware malfunction or because the
HASPGEN variables used to generate HASP created a
checkpoint record too long to be written on the type
of device upon which SPOOLI is mounted.
System action:
The HASP job will terminate.
Operator response:
If the message was caused by a
hardware malfunction, have it corrected.
If the
message was caused by too long a checkpoint record,
and if the installation has devices which can support
longer records, prepare a SPOOLI volume for one of
these devices. Otherwise it is necessary to do
another HASPGEN, specifying parameters which will
create a smaller checkpoint record.
HASP Operator's Guide - Page 93
786
HAS P
SET RESTART PSW TO 0004000000aaaaaa FOR TAPE DUMP
Explanation: The special tape dump feature
has been generated by the system programmer.
The entry point to the dump routine is indicated
by the hexadecimal address aaaaaa.
Operator Response: In the event a STAND ALONE
DUMP is necessary, the operator may use the HASP
tape dump feature by using the following procedures:
1.
Ready the designated tape drive with a scratch
tape at load point with ring in.
(The device
address is determined by the system programmer,
but may be altered by over storing the halfword aaaaaa-4 with the new tape address.)
2.
Stop the CPU and press system reset (this
sets the tape mode) .
3.
Store the displayed PSW in location 0-7.
4.
Press PSW RESTART
~.
IPL arunable system and execute IMDPRDMP as
prescribed by 08/360 SERVICE AIDS manual or
equivalent post processor.
HASP Operator's Guide - Page 94
787
HAS P
PREVIOUSLY-MOUNTED VOL SPOOLx IS UNFORMATTED
Explanation: The operator did a HASP warm start.
HASP has found that the length of the first record
of the last track of the first extent of
SYSI.HASPACE on SPOOLx is incorrect. This could be
due to its having been overwritten, a different
HASP system having been started, or the wrong
SPOOLx volume having been mounted.
System action: After attempting to verify the
remaining required SPOOL volumes, the HASP job
will terminate.
Operator response; Probable user error.
If the
wrong SPOOLx volume was mounted, mount the correct
volume and do a HASP warm start. Otherwise do a
HASP cold start; any SPOOL volumes that are not
correctly formatted . will automatically be re-formatted
on a HASP cold start.
SPOOL VOLUMES HAVE DUPLICATE LABELS
Explanation: Multiple direct-access volumes have
been found with identical SPOOLx labels (x is any
alphameric character).
System action:
The HASP job will terminate.
Operator response: Probable user error. Check the
volume labels of all direct-access volumes on the
system and remove the required volumes. Restart
HASP.
SPOOLx IS BEING FORMATTED
Explanation: The operator did a HASP warm, cold,
or format start. HASP detected an unformatted SPOOL
volume which it could format and is now formatting
the volume.
S¥stem action: H~.SP will format unformatted new SPOOL
volumes on a warm start, all unformatted SPOOL
volumes on a cold start, and all SPOOL volumes on a
format start.
HASP Operator's Guide - Page 95
788
HAS P
SPOOLI IS NOT MOUNTED
Explanation: The operator did a HASP warm, cold, or
format start, and HASP could not find a non-232l
direct-access UCB with" volume serial SPOOL. The
SPOOLI volume is required to be mounted and on-line
when HASP is started~
System action:
The HASP job will terminate.
Operator response: Probable user error. Make sure
that SPOOLI is mounted, ready, and on-line. Then
restart HASP.
I
n BUFFERS AVAILABLE
Explanation: HASP has
enough dynamic storage
of buffers required to
by the HASP generation
not been able to allocate
to build the minimum number
run the system as specified
parameter &MINBUF.
System action: An attempt will be made to run with
the available buffers.
Operator response: Probable user error. Take one
of the following actions depending upon installation
procedure:
1.
Stop enough HASP functions to allow running with
less than &MINBUF buffers.
2.
Stop the HASP System, change the HASP region or
partition size, and restart HASP.
nn $SPECIFY HASP OPTIONS--HASP-id, VERSION x.x
Explanation: HASP has been given control and is requesting instructions from the operator.
System action:
Wait for REPLY.
Operator response:" Read the section STARTING THE
HASP JOB and enter the desired options using the OS
reply format.
HASP Operator's Guide - Page 96
789
HAS P
nn $SYNTAX ERROR -- RESPECIFY OPTIONS
Explanation: HASP does not recognize one or more
of the initialization options entered by the
operator.
System action:
for REPLY.
Reset to default responses and wait
Operator response:
Probable user error.
Read the
section STARTING THE HASP JOB and carefully enter
the desired options.
HASP Operator's Guide - Page 97
HAS P
4.2
HASP SYSTEM CATASTROPHIC ERROR CODES
All HASP System catastrophic errors are considered so extremely
serious in nature that HASP is unable to continue processing.
The message will be displayed on a single 1052 console, designated
by the HASP generation parameter $PRICONA, using a hardware START
I/O instruction. HASP will then go into a single instruction loop.
SYSTEM PROGRAMMER RESPONSE
A storage dump should be taken by STAND-ALONE utility and saved
for later analysis. A careful check of the HASP generation process should be made to insure that HASP modules·are assembled
properly (modifications are correctly entered and no errors
occurred during assembly), that the overlay library has been
properly created, that the linkage editor created a correct HASP
resident module, and that the HASP execution JCL corresponds to
the data sets designated by the generation JCL.
If any doubt
exists that the HASP generation process is other than perfect, a
new complete HASP generation should be undertaken.
AOI
Explanation:
HASP has detected more channel end
indications for a device than expected.
Only one
channel end indication· should be received from lOS
for each Input/Output operation which HASP has
initiated.
System action:
Continuous Loop.
Operator response:
Take a STAND-ALONE DUMP and
notify system programmer.
BOI
Explanation:
Probable user error. Either (1) an
attempt has been maqe to return an invalid HASP
buffer to the buffer pool, or (2) the free buffer
chain has been destroyed.
System action:
Continuous Loop.
Operator response:
Take a STAND-ALONE DUMP and
notify system programmer.
HASP ope~ator's Guide - Page 98
791
HAS P
EOl
Explanation:
The total number of channel end
indications from lOS has exceeded the total number
of Input/Output operations which HASP has initiated
(i.e., the total number of outstanding Input/Output
operations has gone negative).
System action:
Continuous Loop.
Operator response:
Probable user error.
Take a
STAND-ALONE DUMP and notify system programmer.
KOl
Explanation:
The Checkpoint Processor has discovered that some track groups are both free and
allocated.
System action:
Continuous Loop.
Operator action: Take a STAND-ALONE DUMP and
notify system programmer.
MOl
Explanation:
HASP has detected more channel end
indications for an RJE line than expected.
Only
one channel end indication should be received from
lOS for each Input/Output operation which HASP has
initiated.
System action:
Continuous Loop.
Operator response:
Take a STAND-ALONE DUMP
notify system programmer.
M02
Explanation: An attempt has been made to initiate
an Input/Output operation on an RJE line before the
previous operation has completed.
System action:
Continuous Loop.
Operator response:
Take a STAND-ALONE DUMP and
notify system programmer.
HASP Operator's Guide - Page 99
792
HAS P
001
Explanation: A HASP Processor already logically
executing under overlay control has issued another
call ($LINK or $LOAD) to Overlay Service without
exiting from overlay control ($RETURN and $DELETE).
Test for this condition is performed only if the
HASPGEN parameter &DEBUG is set to YES.
System action:
Continuous Loop.
Operator response: Take STAND-ALONE DUMP and
notify system programmer.
System programmer response:
Probable user error.
Check any local modifications to HASP for the errors
described above. Consult IBM Customer Engineer if
problem remains undetermined.
VOl
Explanation: The Purge Processor has discovered
that some track groups to be freed were already
free.
System action:
Continuous Loop.
Operator response: Take a STAND-ALONE DUMP and
notify system programmer.
X03
Explanation: The Execution Processor routine
XTERMIN8 which deallocates DDBs discovered a
non-existent UCB entry in the DDB being deallocated.
System action:
Continuous Loop.
Operator response: Take a STAND-ALONE DUMP and
notify system programmer.
X04
Explanation: T~e Execution Processor DDB Service
routine (XDDBCONT) which maintains the DDB frequency
table was unable to match the action DDB with the
frequency table entry.
System action:
Continuous Loop.
Operator response: Take a STAND-ALONE DUMP and
notify system programmer.
HASP Operator's Guide - Page 100
793
HAS P
xos
Explanation:
The HASP Reader/Interpreter appendage
initialization routine (XJCLTEST) could not identify
the JCL keyword value provided on the first entry
to the appendage.
The first entry is presumed to
be a JOB statement and the keyword value must be
X'65' (Release 18 and prior releases) or X'B4'
(Release 19 and subsequent releases).
System action:
Continuous Loop.
Operator response:
Take a STAND-ALONE DUMP and
notify system programmer.
HOI
,Exelanation: A HASP Control Service Program function
WhlCh was not generated was requested by a HASP
processor.
System action:
Continuous Loop.
Operator response: Take a STAND-ALONE DUMP and
notify system programmer.
System programmer response: Probable user error.
Validate HASPGEN parameters for consistency across all
modules.
Verify local modification dependency on
HASPGEN parameters.
ABND
Explanation: The HASP abnormal exit (STAE) routine
has been entered, indicating that the HASP SYSTEM
has been abnormally terminated.
The OS code indicating
the reason for the ABEND may be found in the HASP
TCB completion code field.
System action:
Continuous Loop.
Operator response: Take a STAND-ALONE DUMP ,and
notify system programmer.
HASP Operator's Guide - Page 101
794
HAS P
4.3
HASP JOB PROCESSING MESSAGES
Messages displayed during HASP job processing 'reflect conditions
which range from informational to serious errors .and are listed
as follows:
ALL AVAILABLE FUNCTIONS COMPLETE
Explanation: All HASP job processors have become
dormant and no HASP RJE lines are active.
device BACKSPACED
Explanation: Output processing on the indicated
printer is being backspaced.
System Action: The requested number of pages are
backspaced. Then processing continues.
If the
start of the data set is encountered while backspacing, processing continues at the start of that
data set.
device command
Explanation: The displayed command has been entered
from the device indicated.
System Action: The command is passed to the command
processor for further action.
device DELETED
Explanation: Output processing on the indicated
device has been deleted.
System Action: 'The job being processed on the indicated device will be queued for the next processing
phase. Output processing will be terminated.
HASP Operator's Guide - Page 102
795
HAS P
device FWD-SPACED
Explanation: Output processing on the indicated
printer is being forward-spaced.
System Action: The requested number of pages are
skipped without printing. Then processing continues.
If the end of a data set is encountered while skipping, processing continues with the beginning of the
next data set.
device IS DRAINED
Explanation:
The operator has entered a $p device
command directed to the named device and the device
has entered the DRAINED status.
fdeVice) message
lJOB j
Explanation: The Input Service Processor has
detected a /*MESSAGE control card in the input stream.
System Action:
None
Operator Response: Observe the message and take any
action which may be appropriate.
device REPEATED
Explanation: Output processing on the indicated
device has been repeated.
System Action: Thejob being processed on the
indicated device will be re-queued.
Output processing will continue.
HASP Operator's Guide - Page 103
796
HAS P
device RESTARTED
Explanation: Output processing on the indicated
device has been restarted.
System Action: The job being processed on the
indicated device will be re-queued. Output processing for the job will be terminated.
device SKIPPING FOR JOB CARD
Explanation: The Input Service Processor is now
scanning the input stream for a Job Card.
System Action: The Input Service Processor will
continue to read the input stream until a Job Card
is encountered or until an end-of-data condition
is recognized.
device SUSPENDED
Explanation: Output processing on the indicated
printer is being interrupted.
System Action: The job. being processed on the indicated printer will be re-queued in suc~ a way that
when it is processed again, printing will begin one
page before the current point or at the beginning
of the data set, whichever is less. Output processing will be terminated.
HASP Operator's Guide - Page 104
797
HAS
r
DISASTROUS ERROR - COLD START SYSTEM ASAP
Explanation: A critical I/O error has occurred
on the SYSI.HASPACE data set. A corresponding I/O
error message will accompany this message giving
details of the error.
System Action: HASP will continue processing jobs
using unaffected facilities~
Operator Response: Prevent new jobs from entering
the system, prepare all jobs in the HASP execution
queue for resubmission when HASP is restarted, allow
HASP to complete all current jobs in execution and
all output activity depleting the output queues,
and stop HASP.
The cause of the error should be
determined before COLD starting HASP.
DISASTROUS ERROR DURING CHECKPOINT - RESTART ASAP
Explanation: An I/O error has occurred while
attempting to write checkpoint information, thus
preventing any possibility of performing a future
HASP WARM start. An associated I/O error message
will accompany this message.
System Action: HASP will discontinue the checkpointing
of critical information on direct access.
Operator Response: Prevent new jobs from entering the
system, prepare all jobs in the HASP execution queue
for resubmission when HASP is restarted, allow HASP
to complete all current jobs in execution and all
output activity depleting the output queues, and stop
HASP.
The cause of the error should be determined
before COLD starting HASP.
HASP Operator's Guide - Page 105
798
HAS P
HASPWTR - PERM I/O ERR OS JOBQ
Explanation: The separate l'oad module HASPWTR,
which retrieves OS System Messages for HASP before
the end of job execution, has received a permanent
error indication while attempting I/O on the data
set SYSI.SYSJOBQE, after all standard OS direct
access error recovery actions have been attempted.
System Action:
If the operation is a write, processing continues but later attempts to read the
record may fail or read incorrect information.
If
the operation is a read, HASPWTR does not use the
incorrect information. Processing of the single
job, whole sysout MSGCLASS, or re-queue action is
terminated (depending upon when the I/O error
occurred) and other processing continues.
Operator Response: Use the $p command to prevent
any new functions from starting. When all current
functions have completed (except perhaps one or
more jobs which may not finish execution if HASPWTR
has stopped processing a MSGCLASS), re-IPL the
system, cold start OS (this re-formats SYS1.SYSJOBQE
by writing every record on it), and if no errors are
indicated, warm start HASP to continue processing.
If unsuccessful, notify system programmer.
System Programmer Response: The direct access volume
containing SYS1.SYSJOBQE should be analyzed with an
appropriate utility and/or the direct access device
changed to localize possible machine malfunction.
The IBM customer engineer should be notified if
difficulties persist.
HASP Operator's Guide - Page 106
799
HAS P
I/O ERROR ON device uuu,cc,ssss,iiii,bbcchhr
Explanation: An INPUT/OUTPUT error has occurred
on the indicated HASP device where:
device = HASP device name or volume serial if
DIRECT ACCESS
uuu
= hardware address
= CCW op-code used at the time of error
cc
ssss
= CSW status code
iiii
= sense information
bb
= bin as appropriate
cc
= cylinder as appropriate
hh
= head as appropriate
r
= record as appropriate
Associated error messages may be displayed as a
result of the error. For direct access the following
could be causes of the error:
1.
The channel, control unit, or device is
malfunctioning. This may be determinable
by moving the volume (if movable) to a new
drive, control unit, or channel and restarting
HASP.
2.
The recording surface is bad. This may be
indicated by the nature of the error and
distribution of the bbcchhr information
(A reinitialization with assignment of
alternate tracks followed by HASP FORMAT
start may be desirable).
3.
The data set SYSl.HASPACE may have been overwritten by improper data set assignment and
protection procedures. This may be indicated
by wrong length record indications.
(A
HASP FORMAT start is required).
System action: HASP will continue job processing
and submit additional error messages indicating the
severity of the error to the system.
Operator response: Determine the cause of the error
and take appropriate action.
HASP Operator's Guide - Page 107
800
HAS P
I/O ERROR ON LINEn uuu,cc,ssss,iirr,xyee
Explanation: An error has been detected on the
indicated HASP RJE line or on a device attached
to that line wnere:
n = HASP RJE line number
uuu = line adapter address
cc = CCW op-code used at the time of error
ssss = CSW status code if no Block Sequence Check
= 0000 - Indicator for normal channel end
with a Block Sequence Check at the
central CPU
= FFFF - Indicator for normal channel end
with a Block Sequence Check at
the remote site
ii = sense information if ssss=OEOO
= last character received if ssss=OCOO
and xy=94 or B4
rr = additional sense information (if STR
and ssss=OEOO)
= remote device first response character
if BSC
x = HASP CCW internal sequence identification
y = HASP CCW internal sequence command type
ee = expected response if BSC
= blank if STR
Notes:
1.
This message may also occur as an informational
message when maintenance personnel have set
HASP internal flags to log all channel ends on
the line device.
2.
The appropriate IBM Component Description System
Reference Library manual describes the status
and sense information in detail.
HASP Operator's Guide - Page 108
801
HAS P
System Action: HASP will for most line errors attempt to recover and continue processing usin~ the
line.
Operator Responses: The console log should be saved
for maintenance personnel (even if recovery is successful). Additional responses depend upon the
nature of the problem.
Specific Messages and Explanations: For STR terminals, the "IBM 2701 Data Adapter unit Component Description" (GA22-6864) should be consulted for a
complete discussion of status and sense bit meanings.
For BSC terminals that employ the USASCII transmission code, the following substitutions should be
made in response fields:
Res}2onse
EBCDIC
EOT
NAK
ACKI
ACKO
37
3D
61
70
USASCII
04
15
31
30
In the following messages, conventions observed are
as follows:
UPPER CASE LETTERS AND NUMBERS--indicate fields
which will appear on the error log exactly as
described.
LOWER CASE LETTERS--indicate fields which have
not been described in any previous example exactly the way that they appear in the error
log.
ASTERISKS (**)--indicate fields which should be
ignored as they do not contribute to the meaning
of the message.
HASP Operator's Guide - Page 109
802
HAS P
I/O ERROR ON LINEn
uuu ,02 ,0000 ,00rr, {
~!
}ee.
Explanation: A block sequence error has been detected by HASP while communicating with a MULTILEAVING terminal. This indicates that one or more
transmission blocks have been lost.
"rr" indicates
the count received and "ee" indicates the count
expected.
System Action: Any job reading in will be deleted
and must be resubmitted.
Operator Action: This represents a very serious
error. Control records may have been lost which
could cause partial loss of terminal function.
The line should be drained ($P) and restarted ($S)
as soon as practical.
I/O ERROR ON LINEn
UUU
,02 ,oeoo ,0001 , {
~~
}**
Explanation: A 2770 or 2780 terminal has disconnected without signing off and a MULTI-LEAVING terminal has subsequently connected to the same line
and is attempting to sign on.
System Action: The previous terminal will be signed
off and the line disconnected.
Operator Action: The remote terminal operator must
re-dial and attempt to sign "on again.
HASP Operator's Guide -Page 110
803
HAS P
I/O ERROR ON LINEn
uuu ,02 ,oeoo ,003D.5
t
H\l. .
**
B4 '
Explanation: A NAK has been received from the remote terminal indicating an error was detected at
the terminal.
System Action:
.are invoked.
Normal error recovery procedures
I/O ERROR ON LINEn
UUU
,02 ,oeoo ,0061 , {
~~
} 70
I/O ERROR ON LINEn
UUU
,02 ,oeoo ,0070, {
~~
} 61
Explanation: HASP has received an incorrect acknowledgementfrom a 2770 or 2780 terminal. This may indicate that an output device (printer or punch) at
the remote terminal has become not ready. It may
also indicate that an output block has been lost.
System Action:
The last block is retransmitted.
Operator Action: The remote terminal operator should
check (to any extent possible) for missing or duplicate output and request a backspace or restart if the
output looks questionable.
I/O ERROR ON LINEn
uuu,02,OCOO,OOrr,84**
Explanation: Invalid data has been received from a
"rr" indicates the first significant
2770 or 2780.
byte received.
System Action:
invoked.
Normal error recovery procedures are
HASP Operator's Guide - Page I I I
804
HAS P
I/O ERROR ON LINEn
uuu,02,OCOG,OOrr,****
Explanation: An invalid response has been received
from the remote terminal.
"rr" indicates the first
significant byte of the response.
System Action:
invoked.
I/O ERROR ON LINEn
Normal error recovery procedures are
uuu,02,OCOO,;;
{~~}, {~!} **
Explanation: An invalid termination character was
received from a MULTI-LEAVING terminal. "ii" indicates the termination character received.
System Action:
invoked.
I/O ERROR ON LINEn
Normal error recovery procedures are
uuu,02,ODOO,0037,84**
Explanation: The card reader on a 2770 or 2780 has
become not ready. This may be caused by a card feed
error or by the failure of the remote operator to
activate the END-OF-FILE switch or button.
System Action: The system waits for the reader to
be made ready and transmission to continue.
Operator Action: The remote terminal operator should
correct the problem and ready the card reader (insuring that the END-OF-FILE switch or button is
activated) .
HASP Operator's Guide - Pagelll.l
804.1
HAS P
I/O ERROR ON LINEn
UUU
,02,0000 ,0037 ,{
.
Explanation:'
System Action:
invoked.
I/O ERROR ON LINEn
~:} **
. C6
HASP has received an unexpected EOT.
Normal error recovery procedures are
uuu,**,OEOO,ii**,****
Explanation: A Unit Check has been detected by HASP
on the Communications Adapter.
For more detailed
information concerning the exact nature of the error,
the "IBM 2701 Data Adapter Unit Component Description" (GA22 .... 6864) and/or the "System/360 Component
Description--2703 Transmission Control" (GA27-2703)
publications should be consulted. Table 4.3.1 gives
an explanation of the sense bits.
HASP Operator's Guide - Page 111.2
804.2
HAS P
I/O ERROR ON LINEn
UUU
,02 ,FFFF ,OOrr, {
~4
}ee
Explanation: A block sequence error has been detected by a MULTI-LEAVING terminal. This indicates
that one or more transmission blocks have been lost.
"rr" indicates the count that was received at the
remote terminal and "ee" indicates the count that
was expected.
System Action: Any job printing on the terminal will
be interrupted, and any job punching on the terminal
will be restarted.
Operator Action: This represents a very serious error. Control records may have been lost which could
cause partial loss of terminal function. The line
should be drained ($P) and restarted ($S) as soon as
practical.
I/O ERROR ON LINEn
uuu,cc,ssss,ii**,****
Explanation: ·An unusual channel end condi tion has
been detected by HASP on the Communications Adapter.
For more detailed information concerning the exact
nature of the error, the appropriate hardware component description manuals should be consulted.
System Action:
The line is automatically restarted.
HASP Operator's Guide - Page 111.3
804.3
HAS P
Table 4.3.1
HASP RJE Typical Sense Information on 2701
ii
Meaning
80
Command Reject--"Abortive Disconnect" option of the
2701/2703 has been selected and the remote terminal
has disconnected without signing off.
40
Intervention Required--Remote terminal has disconnected without signing off and abortive disconnect
is not selected.
20
Bus Out Check--Hardware error.
10
Equipment Check--Hardware error.
08
Data Check--Line error or hardware error.
04
Overrun--Hardware error or deficiency.
02
Lost Data--Synchronization error.
01
Timeout--Expected terminal response not received
by HASP.
Table 4.3.2
HASP BSC MULTI-LEAVING Data Stream Control Sequences
rr
sequence
comments
01
02
2D
3D
SOH-STX-data-ETB
DLE-STX-data-DLE-ETB
SOH;""ENQ
NAK
70
DLE-ACKO
non-transparent data transfer
transparent data transfer
initial sequence (prior to SIGN ON)
remote did not receive last transmission correctly
last transmission received correctly
but remote has no data to transmit
Note:
The display of control sequences has meaning only when
(ssss=OCOO) •
HASP Operator's Guide - Page 111.4
804.4
HAS P
Table 4.3.3
Command Codes utilized by HASP RJE
cc
command
01
02
03
06
07
08
17
23
27
2F
33
37
3B
WRITE
READ
NOP
PREPARE (STR only)
STEP COUNT (STR only)
TRANSFER IN CHANNEL
ERROR (STR only)
SET MODE
ENABLE
DISABLE
TEST SYNCH (STR only)
SEND EOT (STR only)
SEND INQUIRY (STR only)
Table 4.3.4
HASP RJE CCW Internal Sequence Identifiers
x
sequence identification
o
STR
STR
STR
STR
STR
STR
BSC
BSC
BSC
BSC
BSC
1
2
3
4
5
8
9
A
B
C
Table 4.3.5
Hardware Remote Read Sequence
CPU Remote Read Sequence
Hardware Remote Write Sequence
CPU Remote Write Sequence
Hardware Remote Prepare Sequence
CPU Remote Prepare Sequence
Hardware Remote Read Sequenc,e
CPU MULTI-LEAVING Remote Write-Read Sequence
Hardware Remote Write Sequence
CPU MULTI-LEAVING Remote Write-Read Sequence
Prepare Sequence
HASP RJE CCW Internal Sequence Command Types
~
command type
o
Disable
Set Mode
Enable
Test Synch
Read Text
Read Response (normal)
Read Response (to ENQ)
Prepare
Write Text
Write Response
Send Inquiry (Write ENQ)
Send EOT
HASP Operator's Guide - Page 112
1
2
3
4
5
6
7
8
9
A
B
805
HAS P
Explanation:
INIT/PART "i" is idle because the
Execution Processor discovered that no jobs of the
class (es) identified by "c ... " were available in the
HASP job queue.
System Action: The execution processor will activate
the INIT/PART when jobs of the class(es) become
available.
JOB DELETED BY HASP OR CANCELLED BY OPERATOR BEFORE EXECUTION
Explanation: The job was either deleted by the
Input Service Processor of HASP or cancelled by an
operator before OS Execution Processing.
System Action:
purged.
The JCL is printed and the job is
Note: This message appears only in the printed
output stream for the job.
JOB j
EXCESSIVE INPUT STREAM DATA SETS
Explanation: The Input Service Processor has detected
an excessive number of "DD *" or "DD DATA" JCL statements
for a single job. Either the total number of Pseudo 2540
Units or the number of HASP Data Definition Tables was
exceeded.
System Action: The job will be deleted.
Pro~rammer Response:
Divide the job into a number
of Jobs such that no one job contains too many input
stream data sets.
System Programmer Response:
Increase the number of
Pseu~o 2540 Units generated and/or increase the
number of HASP Data Definition Tables generated
(see HASPGEN Parameter
&NUMDDT).
HASP Operator's Guide - Page 113
806
HAS P
JOB j -- ILLEGAL JOB CARD
Explanation: The Job Card for the indicated job
was found to be invalid by the Input Service"
Processor.
System Action:
Input Service Proce?sing is
terminated for this job.
Programmer Response:
resubmit the job.
Correct the Job Card and
System Programmer Response: The HASPGEN Parameter
&RJOBOPT, if set to "NO", will allow jobs with
illegal job cards to be processed.
JOB j
ILLEGAL /*ROUTE CARD
Explanation: The Input Service Processor has
encountered an invalid /*ROUTE control card.
System Action:
Input Service Processing for the
job is terminated.
Programmer Response:
re-submit the job.
JOB j
jobname -- BEGINNING EXEC -
Correct the /*ROUTE card and
{;~~}
i-CLASS c
Explanation: Job" j ", named "j obname ", is
beginning the execution phase in the INIT/PART
"i" as a Class "e" job.
HASP Operator's Guide - Page 114
807
HAS P
JOB j AWAITING HASP ALLOCATION
Xx-lTafia-fic'-fi-:-rns-ufficfr-e-nrliASP~re-sfo,rrce-sfefre~avaTI
able to process the specified job (j). The Execution Processor is unable to find an available DDB or
UCB needed to service the indicated job's I/O
request.•
System Action: Processing of the specified job will
continue when a DDB or UCB becomes available. Note:
If insufficient DDBs or UCBs (pseudo devices) have
been defined for the system, a permanent lockout
condition can occur.
Operator Response: If a single job is being proc-.
essed by HASP, then a permanent lockout caused by
insufficient DDBs has occurred. Notify system programmer.
If multiple jobs are being processed under control
of HASP, then DDBs or UCBs can be made available by
OS cancelling a job which did not cause the
condition.
Sfistem Programmer Resaonse: Frequent occurrence of
t is message is an in ication of insufficient resources (ODBs or UeBs) for proper system performance.
See the HASP Manual, Sections 7.1 and 10.2 for guidelines on DDB and UCB definitions.
.
HASP Operator's Guide - Page 115
808
HAS P
JOB j
BUFFER ROLL UNSUCCESSFUL ••• VERIFY NUMBER OF BUFFERS
Explanation: An insufficient number of HASP buffers
is available to process the specified job.
The Execution Processor BUFFER GET/ROLL routine was
unable to find a DDB with a HASP buffer eligible
for the buffer roll process.
System Action: Processing of the specified job
will continue when a buffer becomes available from
another HASP processor.
Operator Response:
Notify system programmer.
System Programmer Response:
If this message appears
frequently, the number of buffers defined for HASP
is insufficient for proper performance.
Note: This message is eligible for output only if the
HASPGEN variable &DEBUG was selected at HASPGEN time.
JOB j DELETED
Explanation: The Input Service Processor has deleted
the indicated job.
System Action: Thejob is routed to the Print phase
for appropriate action~ then the job is purged.
JOB j DUPLICATE JOB NAME - JOB DELAYED
Explanation: The specified job was delayed for
execution because a job of the same name was already
executing.
System Action: The indicated job Tllill be executed
when the job with the same name terminate? execution.
JOB j END EXECUTION
Explanation: The specified
execution processing.
job has completed
System Action: The specified
by the Print/Punch Processor.
job is queued for action
HASP Operator's Guide - Page 116
809
HAS P
I JOB
j ESTIMATED
f
LINES
~ CARDS
lf EXCEEDED
BY xxxxxx
Explanation: The indicated job has exceeded its
estimated number of lines/cards by xxxxxx lines/
cards.
System Action: The action taken by the system is
dependent upon the HASPGEN variable &OUTPOPT. See
Section 7.2. Either the job will be cancelled (with
or without a dump) or no further action "will be
taken.
JOB j ESTIMATED TIME EXCEEDED BY xx MINUTES
Explanation: The indicated job has exceeded its
estimated real time in the HASP Execution Phase· by
xx minutes.
System Action: The action taken by the system is
dependent upon the HASPGEN variable &TIMEOPT. See
Section 7.2. The job will either be cancelld (with
or without a dump) or no further action will be
taken.
JOB j HELD
Explanation: The lndicated job has been placed in
HASP Hold Status for one of the following reasons:
1.
The Job Card specified "TYPRUN=HOLD".
2.
The device from which the job was read was
set to hold all jobs.
System Action:
None.
Operator Response: The reason why the job was placed
in HASP Hold Status should be determined and the job
should be released when appropriate for further
processing.
HASP Operator's Guide - Page 117
810
HAS P
JOB j HELD FOR THE FOLLOWING VOLUMES -text
Explanation: The job indicated has been placed in
HASP Hold Status pending availability of the volumes
indicated by "text".
System Action: The job is placed in HASP Hold
Status and input processing continues.
Operator Response:
Insure that the requested volumes
are available to be mounted and release the job.
JOB j IS PURGED
Explanation: HASP has completely finished
processing the designated job and all HASP facilities
belonging to the job are made available for reuse.
JOB j JCT OVERFLOW - OUTPUT LOST
Explanation: The indicated job generated more output
data sets than were provided for by HASPGEN.
See
Section 7.2. The Execution Processor discovered
that the JCT for the indicated job could not hold
another PDDB representing additional SYSOUT data.
System Action: The job will continue to process
nQrmally except those data sets in excess of the
maximum will not be printed or punched.
Operator Response:
condition.
Notify system programmer of
HASP Operatorts Guide - Page 118
811
HAS P
JOB j LOAD 'xxxx' FORMS IN device
1::'.. J.ana-t'lOn:
---L.IAp
meh 'J n d'
. 1"
~ \..
"
"
:.1.:_
lCa..J.-ed ~)-oS.J---re-q-U1res~w-!-a-t--'.'.-x-x-x-x
type forms be mounted in the indicated device before
output processing can continue.
I ... , , - ,
System Action: Output processing is halted on the
specified device until an appropriate operator
response is received.
Operator Response: The operator should load the
requested forms (or verify that the requested forms
are loaded) and enter a start ($S) command for the
indicated device.
If the operator does not wish to
continue processing at this time, either the restart
($E) command, the interrupt ($I) command, or the
delete ($C) command will be accepted at this time
and the output processor will assume that the requested forms have not been mounted.
JOB j ON device -- jobname programmername
Explanation: A Job Card has been detected in the
input stream from the indicated device and the
associated job has been assigned a HASP Job Number
of "j". The jobname and programmername displayed
are the job name and programmer name from the Job
Card.
System Action:
The previous job (if any) is queued
for the execution phase and input service processing
is initiated for the new job.
JOB j
PRINTINGj
,
{PUNCHING ON devlce
Explanation: The indicated job is now being processed by the Output Service Processor.
HASP Operator's Guide - Page 119
812
HAS P
JOB j TERMINATED
Explanation: A permanent I/O error, while reading
input from a SPOOL volume for the specified job,
was encountered. The nature of the error was displayed by a previous "I/O ERROR ... " message.
System Action:
automatically.
The indicated job is cancelled
Operator Response:
Notify system programmer.
LINEn -- INVALID PASSWORD
Explanation: A Remote attempted to sign-on the
specified line with an invalid password.
s!stem Action: The attempted sign-on is not
a lowed and the line is left in an inactive
status.
Operator Action: The remote operator should
determine the valid password and correct the
sign-on card to reflect this information.
LINEn -- INVALID SIGNON
Explanation: A Remote attempted to sign-on the
specified line with an invalid sign-on card. A
sign-on card may be invalid if:
1.
The Remote name is spelled incorrectly.
2.
The Remote specified has not been
generated.
3.
The Remote specified is attached to
another line.
4.
The remote name aoes not begin in column 16
System Action: The attempted sign-on is not
allowed and the line is left in an inactive
status.
Operator Action: The remote operator should verify
the spelling of the Remote.
If the Remote is
attached to another line, steps should be taken
to correct this conflict in Remote assignments.
System Programmer Action:
If the required Remote
has not been generated another HASPGEN will be
required to correct this situation.
HASP Operator's Guide - Page 120
813
HAS P
r, . message from operator
Explanation: The operator at a central console
(r=O) or at a remote terminal identified by the
value r has entered the displayed message via the
$DM (display message) command.
UNREADABLE OVERLAY--REBUILD OLAYLIB AND WARM START
Explanation: The HASP Overlay Service Routines have
received a permanent error indication while attempting to read from the data set whose ddname is
OLAYLIB, after all standard OS direct-access error
recovery actions have been performed.
System Action: The HASP Processor which requested
the overlay module is placed on a permanent $WAIT
state. Other processors continue to function.
Operator Response: Notify the systems programmer.
Enter $p to prevent new functions from starting.
System Programmer Response: Re-install HASP as described in section 10.2.2.3. Ask the operator to
warm start HASP to continue. processing.
HASP Operator's Guide - Page 121
814
HAS P
5. 0
CONSOLE SUPPORT
HASP provides the installation the option of allowing either HASP
or OS to control the local operator console devices.
Although the
format of the entry of OS and HASP commands is the same regardless
of the option selected by the installation, the physical control of
the devices differs. The section HASP CONSOLE SUPPORT provides sufficient information for the operator to control HASP console devices,
and the section OS CONSOLE SUPPORT provides sufficient supplementary
information to the OS Operator's Guide for control of OS consoles.
5.1
HASP CONSOLE SUPPORT
Up to eight locally attached devices may be used as HASP consoles.
The following devices may be used as consoles for the type of
input-output listed:
1052
1053
1443
2260
printer keyboard
printer (on local 2848)
printer
display (on local 2848)
-
input and output
output
output
input and output
Each console device will be assigned a HASP physical device identification which is used to reference the device via HASP commands;
the identifications are: CONI, CON2, •••.
The $DU (DISPLAY UNITS) command may be used to determine the HASP
physical device with the hardware address
assigned to the device.
HASP Operator-s Guide - Page 122
815
HAS P
CONTROLLING CONSOLE MESSAGE OUTPUT
When HASP is started, all local consoles will be set to display
all messages generated by OS, including problem program WTO and
WTOR messages, as well as those generated from within HASP.
Depending upon the system, it is possible for a large volume of
messages to be displayed upon the console devices. A large message
volume not only makes it difficult for an operator handling a part
of the operator work load to quickly identify messages intended for
his use, but it tends to tie up the system waiting on the speed of
the slowest console device.
HASP provides a means of classifying
messages so that each operator can cause only desired messages to
be displayed at his console. Each message has one or more logical
console classifications:
LOG
ERROR
UR
TP
TAPE""'
log console messages
error messages
unit record messages
HASP RJE line messages
tape console messages
MAINmain operator's console messages
OS
OS WTO messages
Each message will also have an associated level of importance:
1
3
4
7
non-essential messages
normal messages
messages requiring action
essential messages
HASP Operator's Guide - Page 123
816
HAS P
By appropriate setting of the output classifications of a given
HASP console, the operator is able to select only those messages
he desires to see. As an example, CONI is a 1052 and CON2
is a 1443. Because the 1443 is a high speed device, it is allowed
to display all ,messages generated within the system.
However, the
1052 is set to display only messages to the main operator, MAIN,
at a level of importance above 3.
The setting for the 1052 would
be accomplished using the following commands:
$T CONl,RESET
$T CONl,3,MAIN
- turn off all output
~
set level of importance and
logical console class
If it is desired to assign a console to more than one logical
console class, the following command sequences could be used:
1.
$TCONl,RESET
$T CONl,3,MAIN
$T CONI, ERROR
- turn off all output
- set level and logical class
- add an additional logical class
2.
$T CONl,RESET
$T CONl,3,MAIN,ERROR
- turn off all output
- set level and both logical classes
Setting the HASP console output characteristics applies equally well
with multiple or single console options. The only difference is the
flexibility achievable in
mUltiple console configurations.
Resetting a console although preventing console message output will
not, however, prevent responses to HASP commands from being displayed;
HASP command responses will always be displayed on the console upon
which the command was entered.
TABLE 5 .1.1 lists the classifications
for each message originating from HASP.
In addition to the $T command, the following commands may be used
to control console output:
$Z CONn
$S CONn
- turn off all output to console (same as RESET)
- turn on all output to console (same as level 0
and specifying all of the logical console
classes)
HASP Operator's Guide - Page 124
817
HAS P
TABLE 5.1.1
HASP MESSAGE CLASSIFICATIONS
LEVEL
MESSAGE
"ERROR" CONSOLE MESSAGES
ALL AVAILABLE FUNCTIONS COMPLETE
DISASTROUS ERROR - COLD START SYSTEM ASAP
DISASTROUS ERROR DURING CHECKPOINT - RESTART ASAP
I/O ERROR ON device uuu,cc,ssss,iiii,bbcchhr
I/O ERROR ON LINEn uuu,cc,ssss,iirr,xyee
7
7
7
7
7
"UR" CONSOLE MESSAGES
ALL AVAILABLE FUNCTIONS COMPLETE
SPOOL VOLUMES A~E FULL
JOB j LOAD 'xxxx' FORMS IN device
JOB j ON device -- jobname programmername
device BACKSPACED
device command (excluding remote console devices)
device DELETED
device FWD-SPACED
device REPEATED
device RESTARTED
device SKIPPING FOR JOB CARD
device SUSPENDED
JOB j HELD
device IS DRAINED
JOB j -- ILLEGAL JOB CARD
JOB j -- ILLEGAL /*ROUTE CARD
JOB j DELETED
JOB jlPRINTINGjON device
PUNCHING
JOB j PURGED
7
7
5
5
3
3
3
3
3
3
3
3
3
1
1
1
1
1
1
"TP" CONSOLE MESSAGES
ALL AVAILABLE FUNCTIONS COMPLETE
I/O ERROR ON device uuu,cc,ssss,iiii,bbcchhr
I/O ERROR ON LINEn uuu,cc,ssss,iirr,xyee
r, message from operator (at remote r)
device command
LINEn ~- INVALID PASSWORD
LINEn -- INVALID SIGNON
REMOTEr DISCONNECTED
REMOTEr STARTED ON LINEn
device IS DRAINED
7
7
7
7
3
3
3
3
3
1
HASP Operator's Guide - Page 125
818
HAS P
"TAPE" CONSOLE MESSAGES
ALL AVAILABLE FUNCTIONS COMPLETE
device} message
{ JOB j
JOB j HELD FOR THE FOLLOWING VOLUMES--
7
5
5
"MAIN" CONSOLE MESSAGES
ALL AVAILABLE FUNCTIONS COMPLETE
JOB j BUFFER ROLL UNSUCCESSFUL--VERIFY NUMBER OF BUFFERS
JOB j JCT OVERFLOW - OUTPUT LOST
JOB j TERMINATED
SPOOL VOLUMES ARE FULL
device} message
{ JOB j
INIT} i IDLE - CLASS = classes
{ PART
JOB j DUPLICATE JOB NAME - JOB DELAYED
JOB j ESTIMATED LINES} EXCEEDED BY xxxxxx
{ CARDS
JOB j ESTIMATED TIME EXCEEDED BY xx MINUTES
JOB j HELD FOR THE FOLLOWING VOLUMES-JOB j -- jobname -- BEGINNING EXEC - {INIT} i-class c
JOB j AWAITING HASP ALLOCATION
PART
JOB j HELD
JOB j -- EXCESSIVE INPUT STREAM DATA SETS
JOB j END EXECUTION
7
7
7
7
7
5
5
5
5
5
5
3
3
3
1
1
"OS" CONSOLE MESSAGES
ALL AVAILABLE FUNCTIONS COMPLETE
(alIOS and problem program WTO and WTOR requests)
HASPWTR - PERM I/O ERR OS JOBQ
UNREADABLE OVERLAY - REBUILD OLAYLIB AND WARM START
7
5
5
5
"REMOTE" CONSOLE MESSAGES
JOB j ON device--jobname programmer name
device SKIPPING FOR JOB CARD
JOB j LOAD 'xxxx' FORMS IN device
r, message from operator (at remote r)
"LOG" CONSOLE MESSAGES
(All messages routed to any other console)
HASP Operator's Guide - Page 126
HAS P
CONTROLLING COMMAND ENTRY
All correctly entered commands will be accepted for action when entered upon the central console of a single console system. However,
when multiple local input consoles are available, some of which are
accessible to large numbers or inexperienced personnel, it is desirable to limit the authority of one or more of the consoles to
control the various functions of the system. HASP consoles may,
therefore, be assigned one or more authority groups as follows:
o
1
2
4
display only
system control
device control
job control
Any console may be used to enter HASP display commands; these commands are not deemed to be harmful to the system. However, to control the system from a given console, that console must be authorized for entry of the command; if not, the entry will be rejected
with an INVALID COMMAND response or INVALID OPERAND if the command
is generally acceptable but use of the operand is unauthorized.
"System Control" authorization is required for the entry of any OS
command or any command which attempts to alter the authorization
of a console.
At HASP initialization each console is given 'a default authorization:
by use of the $DU (DISPLAY UNITS) command each console will be listed
and if ACTIVE the sum of the authorizations will be displayed (applicable only for multiple consoles).
If a console is eligible for full
control, the authorization value is 7 (1+2+4).
If a console is eligible for control of jobs and devices, the authorization value is
6 (2+4).,
I
Because HASP local readers (card, tape, and internal) may be used
for command entry, these devices have an associated command authority
with the default setting of 7 (full authority).
CHANGING CONSOLE AUTHORIZATION
I
An operator via a HASP local console or reader device authorized
for system control may alter the authority of any other local HASP ·
console in the system via the "$T CONn,A=value" command (value is
the sum of the desired authority group numbers). As long as authorization changes are made from HASP consoles, no combination of commands can be entered which will cause all consoles to be unauthorized
as a "system control" console.
HASP Operator's Guide - Page 127
820
HAS P
CHANGING READER AUTHORIZATION
An operator via an OS console or HASP local console with System and
Device authority may change the command authority of any local HASP
reader in the system via the "$T reader device, A=value" command.
The operator must not use an authorized reader to turn off the System authority of a HASP console while that console has sufficient
commands pending which will turn off the System authority of all
HASP readers and other consoles on the system. This sequence of
events will result in loss of operational control of the system.
HASP Operator's Guide - Page 127.1
820.1
HAS P
(The remainder of this page intentionally left blank.)
820.2
HAS P
HASP 2260 OPERATION
HASP 2260 consoles operate in "roll mode" such that available
messages replace displayed messages at a specified predetermined
rate.
In order to enter commands through 22605, the following
procedure must be used:
1.
Press SHIFT and ENTER
2.
When MI (Manual Input Symbol) appears at the beginning of
one of the display lines, the system is ready to accept
commands. The console is interlocked such that no
further display messages will be processed until the
command is entered.
3.
Enter the desired command through the 2260 keyboard.
4.
To send the command to the system, press SHIFT and ENTER.
The command will be read by HASP, the screen made available for display messages.
If mistakes are made during command entry, use the BKSP key and
re-type over the incorrect portions, space the cursor beyond the
last command character if necessary, then do step 4. To cancel
a command without entering it, backspace the cursor until it is
immediately to the right of the MI symbol, then do step 4.
The screen should not be cleared by use of the keyboard ERASE when
the MI symbol is on the screen. If this is done, the usual symptom
will be that the system will not respond with MI when ENTER is
pressed. The following special recovery procedure should be used:
1.
Re-clear the screen by pressing SHIFT and ERASE.
2.
Press SHIFT and START to manually produce the MI symbol.
3.
Continue as above from step 3 to enter a command.
HASP Operator's Guide - Page 128
821
HAS P
HASP 1052 OPERATION
HASP 1052 consoles normally operate in the output mode. The system
is free to print messages to the operator whenever a message is
ready. In order to enter commands through 1052s, the following
procedure must be used:
1.
Press the REQUEST key at the right end of the keyboard.
2.
When the PROCEED light located above the keyboard glows, enter
the desired command using the 1052 keyboard.
3.
Upon completion of command entry, enter EOB to indicate completion of entry.
(Press top row keys ALTN CODING and numeric
5 simultaneously for EOB)
If mistakes are made during entry, enter CANCEL and do steps 2 and
3 again.
(Press top row keys ALTN CODING and numeric 0 simultaneously for CANCEL). To cancel a command after one or more characters have been entered, enter CANCEL and then enter EOB when the
proceed light glows.
HASP Operator's Guide - Page 129
822
H'A S P
"5.2
OS CONSOLE SUPPORT
HASP utilizes standard OS facilities for displaying information on
the. OS controlled consoles and accepts HASP commands from OS by
monitoring the console inputs. All devices supported by OS continue
to. be supported when HASP is running in the system.
CONTROLLING CONSOLE MESSAGE OUTPUT
In the process of controlling devices and jobs, HASP originates
messages to be displayed on one or more OS consoles. Depending upon
the system, it is possible for a large volume of messages to be displayed upon the console devices. A large message volume not only
makes it" difficult for an operator handling
part of the operator
work load to quickly identify messages intended for his use, but
tends to tie up the system waiting on the speed of the slowest device.
HASP utilizes the OS Multiple Console Support and provides
to OS message group routing codes for each HASP originated message
(see OS Operator's Guide).
TABLE 5.1.1 lists all HASP originated
messages with the appropriate HASP logical console classifications.
The equivalent OS routing codes are as follows:
a
LOG
ERROR
UR
TP
TAPE
MAIN
-
MASTER CONSOLE INFORMATION
SYSTEM ERROR MAINTENANCE
UNIT RECORD POOL
TELEPROCESSING CONTROL
TAPE LIBRARY, DISK LIBRARY, TAPE POOL, DIRECT
ACCESS POOL
- MASTER CONSOLE ACTION, MASTER CONSOLE INFORMATION
Each HASP message will also have an associated level of importance:
1
3
5
7
-
non-essential messages
normal messages
messages requiring action
essential messages
By appropriate setting of the output routings of the console device,
the operator is able to select only the OS messages as well as HASP
messages desired.
The operator should refer to the OS 360 Operator's
Guide for correct use of the OS "VARY unit,CONSOLE" command.
The
HASP "$T" CON" command may be used to set the desired level of importance for HASP originated messages.
HASP Operator's Guide - Page 130
823
HAS P
CONTROLLING COMMAND ENTRY
In a system running with OS Multiple Console Support, consoles
may be physically available to unauthorized personnel. OS provides a facility by which each console is given authorization to
enter selected groups of commands.
HASP will, when accepting a
command from OS, examine the entry console authorization and
reject unauthorized entry as an INVALID COMMAND or INVALID OPERAND
as appropriate.
The OS command authority groups and the HASP
equivalents are as follows:
OS GROUP
HASP
o
DISPLAY ONLY
JOB CONTROL
DEVICE CONTROL
SYSTEM
1
2
3
INFO
SYS
IO
CONS
The OS "VARY unit,CONSOLE,AUTH" conunand may be used for the control
of the command entry authorization of the OS controlled consoles.
HASP Operator's Guide - Page 131
824
HAS P
6.0
READER SUPPORT
HASP supports numerous types of devices for entry of Operating
System commands, HASP commands, control cards, and user
jobs to be executed under control of the HASP/OS environment. Via
local attachment to the central CPU the following device types
are supported:
IBM 2501 Card Reader
IBM 2540 Card Reader
IBM 24xx Tape Drive (using non-labeled tape with maximum
block size set at HASP generation time--if seven
track tape written with 800 BPI, odd parity, data
convert on)
HASP provides an additional local reader interface enabling programs and system routines to submit commands, control cards, and
jobs to HASP as though submitted through a physical reader device.
This device-like interface is known as an internal reader (INTRDR)
and is controllable through OS and HASP commands in a manner
similar to 2540 reader devices. Devices which are connected
to HASP remote work stations and supported as readers allow
for entry of as commands, user jobs, and a subset of the HASP
commands.
HASP Operator's Guide - Page 132
825
HAS P
6.1
CONTROLLING HASP READERS
-'Ph~r-ough----t-h-e-us-e------o-f--HA-S-P-op-erator-command~s------t1re-op-e~rator-c-o~n-e-ro-Ts-trlE~
HASP reader devices. Operators at remote work stations may control
only those HASP readers which are attached to the remote work station.
Commands which control HASP readers are as follows:
Command
General Use
$C reader
Cancel the current job being read on the
reader thus causing the reader to skip for
the next job or HASP control card.
Stop HASP from using the reader device for
future job streams.
Start HASP use of the reader device for
future job stream input.
Set the reader device to place input jobs
in the HOLD status--reset by $S reader
Set the command authority for the local
reader device
Halt the reader device until $S reader is
entered
$P reader
$S reader
$T reader,HOLD $T reader,A=a
$Z reader
The formal definitions of these commands may be found in the HASP
OPERATOR COMMANDS section of this manual.
The following paragraphs discuss special methods of controlling local readers. The remote operator should refer to the operator's .
guide provided for the supported work station.
HASP LOCAL CARD READERS
Each 2540 or 2501 Card Reader on the system is assigned a HASP name
at HASP initialziation time; responses to the $DU command display
the HASP reader names along with the corresponding hardware addresses.
STARTING HASP LOCAL CARD READERS - There are three methods of causing
HASP to begin using a HASP card reader device:
1.
Enter the $S reader command when the device is halted,
drained, or inactive.
2.
Ready the reader with cards prior to replying to the initialization WTOR. This is equivalent to entering a $S
reader command.
3.
If the Automatic Starting Reader feature is selected by
the installation, ready the reader with cards at any time
unless the $P reader command has been entered.
HASP Operator's Guide - Page 133
826
HAS P
If OS has allocated the card reader for other functions when HASP
is initialized, there will be no attempt to use the reader for
reading jobs unless a $S reader command is entered.
To prevent
inadvertent OS allocation of the reader to other jobs, HASP simulates an OS vary off-line command prior to its initial use of the
device and when each $S reader command is entered.
SHARING HASP LOCAL CARD READERS WITH OS JOBS - Because HASP is a
long running job it is desirable for HASP not to prevent OS from
allocating the card reader devices to other jobs within the system.
The operator is then able to start OS readers to a HASP card reader
or enter jobs which require direct reading from a card reader.
The
operator should observe the following precautionary rules when
other jobs are to use HASP reader devices:
1)
Enter a HASP $P command for the device and allow the
device to become drained before varying the device
on-line or replying to OS allocation requests.
2)
Insure that the job has finished reading cards and will
not attempt to read more cards prior to entering a HASP
$S command for the device.
HASP INTERNAL READER
Although the HASP internal readers are not real devices on the
system, they may be controlled by the operator in much the same
way as real devices.
If the operator desires to prevent problem
program submission of jobs to HASP, he should enter the as command:
VARY
unit,OFFLINE
once for each internal reader.
Each unit specified is the
three digit address for an internal reader obtainable from HASP
when $DU command is entered. as will issue an allocation request
when a user job desires the unit. The operator then has the option
of cancelling the job or allowing the device to be assigned.
In addition to the control of as allocation, the operator can cause
all jobs submitted via the internal reader to be placed in the HOLD
status via the command:
$Tinternal reader,HOLD
This allows problem programs to submit jobs to HASP but prevents
the submitted jobs from executing until the operator specifically
releases them.
HASP Operator's Guide - Page 134
827
HAS P
To prevent the problem program from entering HASP commands via an
internal reader, the operator may restrict the command authority
of the device by entering:
$T internal reader,A=O
In order to prevent as commands from taking effect the system programmer must have properly restricted the as reader procedure used
by HASP to pass jobs to as.
HASP LOCAL TAPE READERS
HASP support of local tape readers differs from that of the card
reader devices in that the tape drive address assignment to a HASP
TAPE is specified by the operator by the command:
$S tape reader,unit
Because of speed and characteristics of tape drives HASP does not
allow sharing of the tape device with problem programs; therefore,
HASP will not start a tape that is allocated to another function
and will prevent as allocation while in use by HASP.
HASP Operator's Guide - Page 135
828
HAS P
6.2
HASP INPUT STREAM
The input job streams submitted to the Operating System via HASP
follow the conventions and format described in the OS/360 Job
Control Language manual. Within these conventions HASP requires
that some cards be specified in a particular manner and provides
for optional control cards which would appear as comments to the Operating System in systems without HASP.
This section discusses
the use, format, and placement of these cards.
HASP JOB CARD
The JOB card is a variable-field control card which defines the
beginning of a job (and, of course, the end of the previous job if
there is one) within the input stream.
In addition, certain parameters are passed to HASP and to the Operating System via fields
and subfields punched into the JOB card.
The format of the JOB card is basically as defined in the Job
Control Language Manual.
In particular, HASP requires that the
accounting information field be punched in the following format:
(pano,room,time,lines,cards,forms,copies,log,linect)
where:
pano
=
Programmer's accounting number. This subfield
MUST BE PRESENT and must consist of one to four
alphameric characters. (Example:
"4301 ,,-)- - - -
room
=
Programmer's room number. This subfield MUST BE
PRESENT and must consist of from one to four
alphameric characters.
(Example:---",E30~
time
=
Estimated execution time in minutes. This subfield
is optional and may consist of ~ to four numeric
digits.
If omitted, a standard value will be
assumed.
(Example:
" ,30" for 30 minutes)
lines
=
Estimated line count in thousands of lines.
This
subfield is optional and may consist of ~. to four
numeric digits.
If omitted, a standard number of
lines will be assumed.
(Example:
",5" for 5000 lines)
. cards
=
Estimated number of cards to be punched. This subfield is optional and may consist of up to four
numeric digits.
If omitted, a standard number of
cards will be assumed.
(Example:
",200" for 200
cards to be punched)
.
HASP Operator's Guide - Page 136
829
HAS P
forms
=
Special forms for printing entire job. This subfield is optional and may consist of ~ to four ~
meric characters. If omitted, standard forms "STD."
will be assumed.
(Example:
",5" for 5-part forms)
copies
=
Number of times the print output is to be printed.
This subfield is optional and may consist of ~ to
two numeric digits.
If omitted, one copy will be assumed.
(Example:
",2" for two copies) This count
applies only to data sets printed on job forms and
demand forms. Only one copy of data sets indicated
as specially routed data sets will be produced.
log
=
HASP System Log option. This subfield is optional
and may consist of one character. If this character
is an "N", the HASP System Log will not be produced.
If any other character, or if omitted, the log will
be produced.
linect =
Lines to be printed per page. This subfield is optional and may consist of ~ to two numeric digits.
If coded as "0" (zero) no automatic overflow will be
produced. If omitted, a standard value will be assumed.
(Example:
",34" for 34 lines per page)
I
The other fields on the JOB card are also interpreted for accounting
purposes and Job control.
The job card may be continued in accordance with the Operating System Job Control Language specifications.
To omit a specific subfield, the comma normally punched following
the subfield should be punched in the first column of the subfield.
To omit the remainder of the subfields, the closing right parenthesis should be punched following the last subfield entered.
The following would be a typical JOB card:
IIORBIT
II
JOB (7808,E305,,2,200),
CONTINUED
'J. Jackson' ,MSGLEVEL=l,CLASS=B
In this case:
pano
= 7808
room
= E305
time
= 2 minutes
(assumed value)
lines = 2000 lines
cards = 200 cards
HASP Operator's Guide - Page 137
830
HAS P
forms
=
standard forms
copies
=
1 copy (assumed value)
log
=
yes (assumed value)
linect
=
standard value (assumed)
(assumed)
HASP PRIORITY CARD
The PRIORITY card is a fixed-field control card used to aqsign
a set priority to a job. The format of the card is as follows:
Columns
1 - 10
11 - 15
16 - 17
18 - 80
/*PRIORITY
blank
p(left justified)
ignored
where "p" is either a number (between 0-15) or the character "*".
If "p" is a number, the value of "p" will be assigned as the priority
of the job following the PRIORITY card.
If "p" is the character
"*", or if the PRIORITY card is not present, the priority of the
job will then be determined by the estimated execution time and the
estimated lines on the JOB card.
The PRIORITY card must immediately precede the JOB card.
If it
does not, the PRIORITY card will be ignored and the input stream
will be flushed until a job card (or another PRIORITY card) is
found.
HASP ROUTE CARD
The ROUTE card is a fixed-field control card which allows the user to
specify the location to which his output is to be printed or punched.
The format of the card is as follows:
Columns
1 -
7
8 -
9
10 - 14
15
/*ROUTE
blank
PRINT or PUNCH
blank
HASP Operator's Guide - Page 138
831
HAS P
16 - 23
24 - 80
one of the following device
specifications:
LOCAL
Any local device
REMOTEn
Remote Terminal "n"
PRINTERn
Printer "n"*
PUNCHn
Punch "n"*
ignored
A single ROUTE card can be used to direct either the print or punch
routing but not both. If both print and punch are to be routed,
two cards must be used.
The ROUTE cards should be placed immediately after the JOB card.
*
NOTE:
The PRINTERn and PUNCHn specifications are the same
as LOCAL unless the specified printer or punch is
subject to local print/punch routing.
.
HASP MESSAGE CARD
The MESSAGE card is a fixed-field control card which permits the
user to send messages to the operator via the operator console at
HASP job input time. ·The format of the card is as follows:
Columns
1
10
12
72
- 9
- 11
- 71
- 80
/*MESSAGE
blank
message to be written
ignored
All leading and trailing blanks are removed from the message before
writing it on the console.
If MESSAGE cards are included as part of a job they should be
placed immediately following the JOB card (or after any ROUTE
cards). In such cases the· job number is appended on the front
,of the message(s).
If a MESSAGE card is not included within the boundaries of a job,
the input device name is appended on the front of the message.
HASP Operator's Guide - Page 139
832
HAS P
HASP SETUP CARD
The SETUP card is a variable-field control card which p_ermi ts the
. user to indicate the need for certain volumes during the execution
phase of his job. The format of the card is as follows:
Columns:
I
1 7
8 - 15
16 - 71
72 - 80
/*SETUP
blank
volume identifiers separated by commas
(i.e., vvvvvv, wwwwww, xxxxxx, .•. )
ignored
The volumes required are listed on the console at the time that the
job enters the system. The job is then placed in "hold" status
pending subsequent release by the operator when the required volumes
are available.
The SETUP card should be continued with MESSAGE cards and placed
with the ROUTE and other MESSAGE cards after the JOB card.
HASP COMMAND CARD
The COMMAND card is a "variable-field" control card used to enter
HASP operator commands into the system. The format of the card is
as follows:
Columns:
1 3
4 - 71
72
73 - 80
/*$
operator command verb and operands
If "N" the command will not be repeated
on the operator's console.
ignored
Restrictions concerning commands which can be entered from remote
terminals are listed under the HASP OPERATOR COMMANDS section of
this manual.
All COMMAND cards must be placed in the input stream prior to any
JOB card. COMMAND cards within jobs will be ignored.
HASP Operator's Guide - Page 140
833
HAS P
OS COMMAND CARD
The OS command card is a variable-field control card, the format
of which is described in the 05/360 Operator's Guide. This card,
if submitted through the HASP input stream, must fall within a job
of the input stream and is passed to OS at the time the job is submitted for OS execution. The acceptability of the OS COM}~ND CARD
is determined by the system programmer when creating the HASP
reader procedure on the SYSI.PROCLIB data set.
HASP Operator's Guide - Page 141
834
HAS P
6.3
LOCAL READER ERROR PROCEDURES
Unrecoverable ~rrors encountered. while. reading jobs and SPOOLING
the data to direct access de~ices Will result in an error message
to the operator and the deletion of the job being read.
The
operator should re-submit any job so deleted in its entirety to
HASP.
Errors on local readers such as read checks, feed stops, etc.
will be processed by the Operating System.
The operator should
follow the procedures described in the appropriate component description manual for the device as supplemented by the 08/360
Operator's Guide.
Since HASP selects cards read by the IBM 2540
in pocket 2, cards which are non-processed run out (NPRO) will
be separated from those read, the last card in pocket 2 being the
card in error on data and validity checks.
HASP Operator's Guide - Page 142
HAS P
7.0
PRINT AND PUNCH SUPPORT
HASP supports numerous printer and punch devices for the output
of HASP System Log messages, Operating System messages and
problem program SYSOUT data sets. Via local attachment to the
central CPU the following devices are supported as printer or
punch devices as appropriate:
IBM
IBM
IBM
IBM
IBM
1403
3211
2540
1442
2520
PRINTER
PRINTER
PUNCH
PUNCH
PUNCH
HASP Operator's Guide - Page 143
836
HAS P
7.1
CONTROLLING HASP PRINTER AND PUNCH DEVICES
Through the use of HASP operator commands the operator controls
the HASP printer/punch devices.
Operators at remote work stations
may control only those HASP printer/punch devices which are attached
to the remote work station.
Commands which are defined for direct
control of HASP printer/punch devices are as follows:
command
general use
$B printer
Backspace the printer the designated number of
pages or to the beginning of the current data
set.
$C device
Cancel the current job output on the indicated
printer or punch.
$E device
Restart the job output currently printing or
punching on the indicated device, placing the
job back on the corresponding queue for selection by the indicated device or other printer
or punch, as appropriate.
$F printer
Forward-space the indicated printer the designated number of pages or to the end of the
current' data set.
$I printer
Interrupt the current job output on the indicated
printer, allowing the output to be continued by
the indicated or other printer as appropriate.
$N device
Repeat the job output currently printing or
punching on the indicated device, placing the
job back on the corresponding queue for selection by the indicated device or other printer
or punch as appropriate while allowing the
current job output to continue.
$p device
Stop the printer or punch after completion of
the current job output.
$S device
Start the printer or punch device.
$T device
Set device characteristics.
$Z device
Halt the printer or punch device until $5
device is entered.
HASP Operator's Guide - Page 144
837
HAS P
The formal defin'i tions of these commands may be found in the HASP
OPERATOR COMMANDS section of this manual.
STR as well as non-MULTI-LEAVING BSC remote workstation operators
will find that for practical purposes only the $P, $S, and $T commands are available for direct control of printer or punch devices
from the workstation. Commands entered from these workstations can
only be entered when the printer and punch devices are not ACTIVE.
This is true even when the non-MULTI-LEAVING BSC workstation printer
is manually interrupted simulating the $I device command.
CONTROLLING HASP LOCAL PRINTER AND PUNCH DEVICES
Each printer and punch on the system is assigned a HASP name at
HASP initialization time; responses to the $DU command display the
HASP printer and punch device names along with the corresponding
hardware addresses.
STARTING HASP LOCAL PRINTER AND PUNCH DEVICES - There are two methods of causing HASP to begin using a HASP printer or punch device:
1.
Enter the $S device command when the device is halted or
drained.
2.
Ready the printer or punch device prior to replying to
the HASP initialization WTOR. This is equivalent to
entering a $S device.
If OS has allocated the device for other functions when HASP is
initialized, there will be no attempt to use the device for job
output unless a $S device command is entered. To prevent inadvertent OS allocation of the printer or punch to other jobs, HASP
simulates an OS vary off-line command prior to its initial use of
the device and when each $S device command is entered for the
printer or punch.
I
The operator should align printer forms setting printer FCB images,
non-standard UCB images, and non-standard forms via the $T command
prior to allowing HASP to begin job processing on printer devices.
SHARING HASP LOCAL PRINTER AND PUNCH DEVICES - Because HASP is a
long running job, it is desirable for HASP not to prevent OS from
allocating the printer or punch to other jobs within the system.
The operator is then able to start OS writers to a HASP printer '
or punch device or enter jobs which require direct output. The
operator should observe the following precautionary rules when
other jobs are to use HASP printer or punch devices:
HASP Operator's Guide - Page 145
838
HAS P
1.
Enter a HASP $P command for the device and allow the device to become drained before varying the device on-line
or replying to the as allocation requests. This may be
supplemented by the $I printer or $E device command to
insure rapid termination of the current job activity.
2.
Insure that the job has finished with the device and will
not attempt to output more data prior to entering a HASP
$S command for the device.
SETTING THE 3211 PRINTER FCB IMAGES - The 3211 printer carriage
control tape--Forms Control Block (FCB)--is internally set by HASP.
The installation system programmer creates several FCB images at
HASP generation time and will inform the operator which image should
be used on the various printers. The operator sets the FCB image by
entering the following command:
$T printer,C=x - where x is the installation defined image id
character.
Image char~cter "V" may be designated by the installation as a variable image and, if so designated, may be changed by the operator.
This single image may· then be used by operators to set desired
printer FCB images by the command:
$T printer,C=V
An operator may create the "V" image by entering the $TF command
from an as console, HASP local console, or reader with device and
system HASP command authority.
HASP Operator·'s Guide - Page 146
839
HAS P
7.2
HASP OUTPUT ROUTING
Under the standard HASP System, output routing has meaning only
when the HASP remote job entry feature is being used.
Under this
environment each group of printer or punch devices is considered
a pool of output devices identifiable by routing codes.
All local
printer and punch devices are assigned route code zero (0), all
printer and punch devices at work station REMOTEI (RMI.PRn,RMI.PUn)
are assigned route code one (1), etc.
A job which has its print
output destined to local printers will be printed on any of the
local printers.
Likewise, a job which has its print output destined
to remote 4 will be printed on any of the printers assigned to
REMOTE4 (RM4.PRI,RM4.PR2,etc.)
HASP will automatically assign print and punch output routings to
each job as it enters the system.
This assignment is determined
by the system programmer at HASP generation time.
Normally all
output for jobs entering local devices will be routed to the local
"device pool and all output for jobs" entering a remote reader will
be routed to the corresponding remote output devices.
This may be
altered so that, for example, remotes without~punch devices will
have punch data routed to the local punch pool or to a remote
convenient to the submitting work station.
Routing of print and punch output may be directly assigned by the
programmer via /*ROUTE control cards (see READER SUPPORT) or by
the operator after the job has entered the system via the $R
(ROUTE) command. Although the central operator has complete routing
control over jobs, the remote work station operator may only route
jobs which belong to the remote, i.e., jobs which have the print or
punch routings destined for Qutput at the remote.
The following
sample command sequence allows the operator to redirect the print
output for a job after printing of the data sets is in progress:
1.
$R PRT,JOB25,LOCAL
- Sets the print routing for job 25
to the central printer pool.
2.
One of the following (assume job 25 is printing on
remote 3 printer 1):
A.
$I RM3.PRI
- Interrupt print output and requeue
for continuing the print by a LOCAL
printer.
B.
$E RM3.PRI
- Restart print output and requeue
for printing by a LOCAL printer.
c.
$N RM3.PRI
- Repeat the print allowing a LOCAL
printer to print a copy.
HASP Operator's Guide - Page 147
840
HAS P
7.3
HASP SPECIAL FORMS ROUTING
At HASP initialization HASP assumes that the printer and punch devices are loaded with the standard forms paper or cards as appropriate. Normal operation of the devices calls for each printer or
punch device to select the highest priority job in the appropriate
print or punch queue and begin outputting. Assuming that the installation selects SYSOUT Class A to be standard print output and
SYSOUT Class B to be standard punch output, all "SYSOUT=A" data sets
will be printed on the standard forms paper and "SYSOUT=B" data sets
will be punched on the standard forms cards (see OS JOB CONTROL LANGUAGE manual for the meanings of SYSOUT=A or SYSOUT=B). Occasionally
the programmer will desire to have a data set printed or punched
using special forms and submits a "SYSOUT=(A"form#)" or "SYSOUT=
(B"form#)" parameters for the Data Definition (DD) card describing
the data set. When the data set is encountered during output HASP
will stop the printer or punch and display a forms load message on
the operator's console. This allows the operator to load the forms
desired and enter a $S device command to signify that the device is
ready. When output of the data set is complete, HASP will request
that standard forms be loaded and wait for the operator as before.
The normal mode of operation is therefore the loading of forms on a
DEMAND basis.
Occasionally the programmer will decide that all print data ~s to be
printed on special forms and instead of specifying the forms on ·the
"SYSOUT=A" parameter of the DD card, he specifies the forms in the
HASP accounting field of the JOB card (see HASP INPUT STREAM section
of this manual). This causes the forms designated to be made stand~
ard for the printing of the job.
SUBMISSION OF SPECIAL FORMS DATA SE.TS
Processing special forms on a DEMAND basis, while convenient when
occasional need for special forms exists, will cause poor printer
or punch utilization when a large number of data sets require special forms. Assuming that the installation selects SYSOUT Class J
to be special forms print and SYSOUT Class K to be special forms
punch, all "SYSOUT=(J"form#)" and "SYSOUT=(K"form#)" data sets
will not be printed or punched with the standard output for the
job. The programmer therefore designates special forms on theappropriate DD cards in the job input stream. HASP will print the
normal print data sets and queue the job for the printing of the
first special forms data set. When this data set has been printed
the job will be queued for the printing of the next special forms
data set (if any). This process will continue until all special
forms data sets have been processed. The data sets will be queued
in the order of the collating sequence of the special forms designations. After the special forms printer(s) complete all special forms
printing, the job will proceed to special forms data set punching
(again in collating sequence), and then, if appropriate,.to standard
job punching.
HASP Operator's Guide - Page 148
841
HAS P
ASSIGNING SPECIAL FORMS TO A PRINTER OR PUNCH
The operator may determine the number of jobs with output for
special forms by entering the command:
Display Number of Jobs Queued
on Forms
$0 F
When sufficient output is awaiting special forms, the operator
may choose to activate one of two types of special forms control
by command as follows:
$T device,F=AUTO
Activate printer or punch special
forms allowing HASP to determine
which special forms should be
loaded
Activate printer or punch special
forms using the forms indicated and
loaded by the operator (operatorcontrolled)
If the device is a printer, special forms jobs (forms indicated
in the JOB card) along with data sets which have been disassociated
from other jobs will be selected for printing. If a normal SYSOUT
class (SYSOUT=A as described previously) with a special forms
specification is encountered a DEMAND load for the forms is
requested, requiring the operator to cancel the print or load the
forms and enter $8 device.
Printing and punching of output will proceed until the queue for
the forms indicated by the operator or asked for by HASP is empty.
If AUTO was indicated by the operator HASP will select jobs awaiting another special forms for the device, ask for the loading of
the new forms, and attempt to exhaust the queue of the new forms
upon receiving the appropriate $S device command.
The operator may cause the device to revert to standard output
by entering:
$T device,F=RESET
NOTES:
1.
The command $T device,S=YES or $T device,8=NO
may be used to indicate separator pages or cards
between job output on the device.
HASP Operator's Guide - Page 149
842
HAS P
2.
The non-MULTI-LEAVING remote workstation operator
will find that the $S command may not be entered
from the remote to signal that forms have been loaded
and that no messages to the operator will be printed
on a printer set to output special forms. Therefore
the following rules are recommended:
a.
Use only operator-controlled special forms.
b.
Prevent users from requesting DEMAND loading
of forms.
c.
After exhausting a special forms queue enter $T
device, S=Y (if required), enter a $DF command
and, after receiving all messages, set to the
next forms type desired.
3.
For safe forms changing operations when using operator controlled forms, the operator should stop the
device ($P device), load the new forms, tell HASP
($T device), and then start the device ($S device).
4.
The operator is permitted to change carriage tapes
and print trains/chains while HASP is waiting for
the $S command following a request for forms load.
This change may be activated by entering $T device
operands C=carriage or T=train as appropriate.
HASP Operator's Guide - Page 150
843
HAS P
7.4
HASP PRINT AND PUNCH OUTPUT FORMATS
HASP PRINT FORMAT
The format for standard print output for each job stream is as
follows:
1.
2.
3.
4.
5.
6.
HASP START JOB SEPARATOR PAGE
HASP SYSTEM LOG (OPTIONAL)
HASP STATISTICS
OPERATING SYSTEM MESSAGES
DATA SETS CREATED BY T.HE JOB
HASP END JOB SEPARATOR PAGE
HASP START JOB and END JOB separator pages consist of a single
line of information duplicated a number of lines as specified
by each installation.
The format of the information line is as
follows:
columns
contents
1 - 17
18 - 22
23 - 31
HASP identification
periods (.)
START JOB
.CONT JOB
.. END JOB
job number assigned by HASP
periods (.)
32 - 35
36 - 40
41 - 51
52
62
66
70
75
79
87
91
116
61
65
69
74
'78
- 86
- 90
-115
-132
-
time of printing the page in form: hh.mm.ss AM
PM
date of printing the page in form: day month year
periods ( )
ROOM
room number
periods (.)
as jobname
periods (.)
programmers name padded with trailing periods (.)
HASP identification
.
The HASP statistics is a single printed line which contains the
following information:
1.
2.
3.
4.
cards read
lines printed
cards punched
execution time (real time)
HASP Operator's Guide - page 151
844
HAS P
ijASP PUNCH FORMAT
The format for standard local IBM 2540 punch output for each
job stream is as follows:
1.
2.
3.
4.
HASP PUNCH ID CARD - in pocket 2
DATA SETS CREATED BY JOB - in pocket 2
HASP JOB ACCOUNTING CARD - in pocket 3
BLANK CARD - in pocket 1 (also will contain error cards)
HASP JOB ACCOUNTING CARD FORMAT
Columns
Mode
Contents
Programmer's name
EBCDIC
21 - 24
Room number
EBCDIC
25 -
Spares
N/A
28 - 31
P. A. number
EBCDIC
32
Job priority number
BINARY
33 - 35
Job input time in hundredths of a second
BINARY
36 - 38
Job output time in hundredths of a second
BINARY
39 -
40
Number of cards read in
BINARY
41 -
43
Number of output lines
BINARY
44 - 45
Number of output cards
BINARY
46 -
Total reader time in hundredths of a second
BINARY
1 - 20
27
48
49 - 51
52
54
Total execution time in hundredths of a second BINARY
Total print time in hundredths of a second
BINARY
55 - 57
Total punch time in hundredths of a second
BINARY
58 - 65
Job name
EBCDIC
66 - 71
Sp~res
N/A
72
Identifier (X'FF')
BINARY
73 - 74
Year
EBCDIC
75 - 77
Days
EBCDIC
78 -
Job number
EBCDIC
80
HASP Operator's Guide - Page 152
845
HAS P
HASP PUNCH 10 CARD FORMAT
Each job's punch output will be preceded by an identification card
containing the programmer room number Clnd interIlal job nUlJlPer.
To make the card easy to identify, it has an ll-pun~hand a
l2-punch punched in all 80 columns. To make the room nu.~ber
and job number easy to read, each digit is ext$ndedoverten
columns. Alphabetic characters are converted to digits as
follows:
AlEhabetic Characters
A or J
B, K, or S
C, L, or T
0, M, or U
E, N, or V
F, 0, or W
G, P, or X
H, Q, or y
I, R, or Z
Numeric Punch
1
2
3
4
5
6
7
8
9
Below is an example of the punch ide.ntification card which would
precede a deck punched, for eXClmple, for a programmer residing in
Room E305, and having an internal job number of 129.
111111111111111111111111111111111111111'1111111111111111"1111111111111111111111
1111111111111111111111111111111111111I111111I11111111II1I1I11I11I1I111I111111111
DOD 0 0 0 III 0 a DII 0 0 II II 111111111'11' I • II • III '1 80 I • II'" I. 811 .1•• , 11118 I t I.• I ••• 8 •• III
2 J4S.' ••
••
• • • UU_ • • U •••
• • p ••••• UN • • p ••
I , I ; 1 1 I Itt I Itt I 1 1 11 I 1 I 1 11 I I 11 1 I I • 11 I III 1 I II 1 I 1 I. ','111:1111111 • 11 1 11 I I I 1 , .. I I , I I I
, 7 2 1 1 2 2 2 2 7 2 2 2 Z 2 2 2 2 2 2 2 I , 22 2 2 2 2 2 , 2 2' '2 2 22 2 2 22 2 2 2 2 2 , 2t' 22 2 2 2 2 2 , '1111'1111 2 J 2 22 2 7 2 7 2
13333333333111111113333333333333333333333333333333J33333333333333133333333333333
I
~"nQ"qq"qq.ftftft~a.Daa.~.»~
P~
fl.N~
_nn~H~~n~~.
t
•• , 4 , •• 4 4 •• 4 4 •• 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 4 • 4 44. 4 4 4 44 4 4 4 4 4 4 4 4 4 4
.4 . 4 4•• 4. 4 4 4 4 ••••••
t'.
~ •••••••••••
5111111115 55 5 5 5 55 5 5 5 5 5 5 5 55 5 55 $ 5'111"11" ~ 5 5 5 5 5 5 5 5 5 5 5 5 55 51'"' $,i5 ~5.J 5 $ t~ 5 5 5 5 5·5 •
& I I 6 I I I • • I I &. I I I I I & I 6 I • • &• It • I •• • , II • ,'1 • • 6 • II • • && I • II II .: •• I'>'fll' " II'
I .1 II • I
'1 •
, 1 1 1 I 1 I , , 1 1 1 , , 7 7 J 7 J 7 J J 7 7 J J 1 J J .1 , JI 11 J r J1J J J 7 7 17 J 77 J " J J lJ J J 1 JJ fJ 7 J r J r J , J 1J J J J 1 J } 7
I I II I • II • I ••• 1,11, ••••• I I. I" •• '1 ., "" ••••• , • I.
"11," •,••• ,,1'1',"
9 ~ ! 9 I I I I I ! It' I 9 ! I t 99 9 9 9 I • , It I '9' II I 9 8 •• I, 9 9 9 9 9 t 9 ttl • ttt It J
, J ,
4 5 1 ~D'- :0:'" II II 14 15
tI" "192'&2122
n24
,t
I •• "I •• , I 8 •••
1*, .••. . .ft'
•• , 9 t 111111119
.,.4\t ...IJlU':4.$...:, ......
. . . ••• JI'ln U
111111.
.2I17I1",JUt. M• • 3J . . . . . a414441 ••
~
141$11
HASP Operator'sGu.i4e....Page 153
846
HAS P
7.5
LOCAL PRINTER AND PUNCH ERROR PROCEDURES
All job printing and punching for local devices is accomplished
through Operating System facilities. OS will attempt to recover
from printer and punch errors and provide appropriate error messages to the operator. In the case of permanent errors the followi~g procedures apply:
PRINTER - Permanent errors will be ignored and output will
continue. Since the accuracy of the output is determined by the presence or lack of error messages,
the operator should react in accordance with the
severity of the problem.
PUNCH
- Error cards are dropped in pocket 1 and punching
continues starting with the record detected to be
in error.
The appropriate hardware SRL (e.g., GA21-9033 for
the 2540, GA21-9124 for the 3525) should be consulted for correct operator procedures in response
to indicator lights and sense bits displayed when
the punch stops and requires intervention.
HASP Operator's Guide - Page 154
847
HAS P
(The remainder of this page intentionally left blank.)
848
HASP
11.2
HASP REMOTE TERMINAL PROCESSOR (MODEL 20/STR)
OPERATOR'S GUIDE
The following section contains detailed instructions for operating a
360/20, equipped with a Synchronous Transmit-Receive (STR) communication
adapter, as a remote terminal system under HASP. Although intended for
use as a separate operational manual, it has been included into the HASP
SYSTEMS Manual to achieve completeness.
HASP Remote Terminal Operator's Guide (Model 20) - Page 11.2-1
849
HAS P
(The remainder of this page intentionally left blank.)
850
HASP
HAS P
REMOTE TERMINAL PROCESSOR
FOR
STR·COMMUNICATIONS
MODEL 20 OPERATOR1S GUIDE
851
HASP
Page
Section
1.0
Introduction
1. 0-1
Section
2.0
Operating Procedure s
2. 0-1
2. 1
Initial Program Load
20 1-1
2.2
Establishment of Communications Line
2.2-1
20 3
Initiating Proce s sing
2. 3-1
3.0
Error Recovery
3. 0-1
3. 1
Communications Adapter Errors
3. 1-1
3.2
Unit Record Device Errors
3.2-1
3. 3
Model 20 Restart
3. 3 - 1
Section
4.0
Dynamic Configuration Specifications
4.0-1
Section
5.0
Central Computer Control
5. 0-1
Section
6.0
Operational Hints
6. 0-1
Section
Table of Contents -
852
Page i
HASP
1. 0 INTRODUCTION
The HASP System· is an automatic
spooling, priority scheduling system which, while operating in conjunction with OS/360, operates an unlimited number of peripheral
device s simultaneously with normal job execution, to perform the
functions normally associated with off line support computers.
function of HASP has been extended to operate,
v~a
The
several classes
of telephone lines, peripheral devices located remotely from the
central computer complex.
Through the use of the HASP Remote Job Entry feature, a user,
located perhaps thousands of miles from a particular System/360
installation, can utilize the capabilitie s of that installation much as if
it were in the local computer room.
The unit record devices at a
remote station are logically operated by HASP as if they were local
readers, printers and punchers, so that HASP can simultaneously,
while operating all local unit record devices, read jobs from several
remote readers into the queue of jobs awaiting processing and upon
completion of the processing, can print and punch the results at the
remote site.
Although a variety of devices may be utilized as remote terminals,
this document discusses only the use of a System/360 model 20 as a
remote statioh.
HASP Remote Terminal Operator's Guide (Model 20) - Page 1.0-1
853
HASP
A special program has been written tor the model 20 which can
be considered as a logical extension of the HASP SYSTEM.
This
program, called the HASP Remote Terminal Processor (HASP /RTP)
performs the following functions:
A.
INPUT
1.
Reads cards from the card reader attached to the
model 20.
2.
Compresses, blocks and encodes the card images
for transmission, over telephone lines, to the
central computer facility.
3.
Maintains synchronization and communication with
HASP for transmission.
B.
PRINT AND/OR PUNCH
1.
E stablishe s and maintains synchronization and
communication with HASP to receive transmissions
of job output.
2.
Decodes and decompresses print and/or punch records
received.
3,.
Interprets and executes carriage control information in
the case of print.
4.
Prints and / or punche s the received data.
HASP Remote Terminal Operator's Guide (Model 20) - Page 1.0-2
854
HASP
HASP /RTP may either Read, Print orPut;lc,hbut may notperf:o~m
any two operations simultaneously.
Due to the use of blocking and character compre s sion to minimize
line transmission time, the speed at which the model 20'c;tevices are
operated is dependent on the data being transmitted.
Certain jobs,
because of their data characteristics, will enable HASP /RTP;.to
operate the model 20 devices at full rated speed.
Other jobs, with
less advantageous data characteristics, may cause the devices to
operate at Ie s s than full speed.
HASP Remote Terminal Operator's Guide (Model 20) - Page 1.0-3
855
HASP
2.0 OPERATING PROCEDURES
The following pages provide
s~fficient
information for initiating
and operating the HASP/Remote Terminal Program.
HASP Remote Terminal Operator's Guide (Model 20) - Page 2 . 0-1
856
HASP
2.1 INITIAL PROGRAM LOAD
1.
Ready the HASP/RTP deck in a reader on the m.odel 20.
The deck should include as the last card an appropriate
"configuration" card as described in Section 4. O.
2.
If the model 20 has multiple readers, the reader select
switch on the console should be set to indicate the reader
containing the RTP deck.
3.
Ready the system printer and punch (if present).
4.
Set the TIME SHARING key to the on (down) position.
5.
Set the BINARY /BCD switch on the comm.unications
adapter to the BINARY position.
6.
Set. the LINE SPEED key to the appropriate speed.
7.
Set the AUTO-CALL key to the OFF position.
8.
Verify the setting of the full duplex (FD) - half duplex
(HD) switch inside the CE console.
9.
Turn the communications adapter switch to the NORMAL
positiono
10.
Set the DATA KEYS to 009C.
11.
Set the MODE switch to PROCESS.
12.
Press the I/O CHECK RESET,' SYSTEM RESET and LOAD
key on the m.odel 20 consoleo
HASP Rem.ote Terminal Operator's Guide (Model 20) - Page 2.1-1
857
HAS P
13.
If the Model 20 has less than 16,000 bytes of
memor~
a program stop will occur after the loading of the
first card.
When this occurs, press only the LOAD
key again to initiate loading.
14.
Press the START key on the communications adapter
while the HASP/RTP deck is being loaded into memory.
15.
Establish the communications line (see Section 2.2).
16.
The program should now begin processing in accordance
with the algorithm given in Section 2.3.
HASP Remote Terminal Operator's Guide (Model 20) - Page 2.1-2
858
HASP
2. 2 EST ABLISHMENT OF COMMUNICATIONS LINE
1.
Advise the ope rator of the central computer location
that job transmis sion is to be initiated.
(The central
computer operator must authorize HASP to proces s
jobs from a given remote terminal.
This authorization
must be given only once per terminal. )
2a.
Leased (or private transmission lines) - place the data
set in the DATA mode.
2b. Dial-up transmis sion line s - Pre s s the TALK button
on the data switch and dial, exactly as in a normal call,
the number of the appropriate data set at the central
computer.
After the "ringing" sound, a shrill sound
indicates that the phone has been answered.
Immediately
upon hearing this sound, press the DATA button on the
data set and hang the telephone up.
3.
The CHARACTER PHASE light on the communications
adapter should appear to indicate synchronization of the
two computers.
NOTES on communication line establishment:
a.
A "busy" signal indicates that the called data set is in use.
HASP Remote Terminal Operator's Guide (Model 20) - Page 2.2-1
859
HASP
b.
A line may be established by a call from the central
to the remote site.
(~om-p-uj;_e_r
To receive such a call, normal initializa-
tion procedures should be followed but rather than dialing,
the AUTO button should be pre s sed and the phone hung up to
await the call.
c.
On a two-wire half-duplex telephone line, a period of
several seconds may be registered to synchronize the
two computer s.
d.
On the establishment of a connection other than the first,
a period of several seconds may be required to begin
transmis sion of print and/ or punch data.
HASP Remote Terminal Operator's Guide (Model 20) - Page 2.2-2
860
HASP
2.3 INITIATING PROCESSING
In order to allow the remote computer operator to select the
function the Model 20 is to perform (i. e., input or output), the
transmission of jobs to the central computer site is given priority.
At the end of the print and punch for a job,HASP /RTP te sts the system
card reader for ready status and, upon finding it ready, immediately
begins the transmission of all jobs in the reader to the HASP job
queue in the central computer.
If no print or punch jobs are
available to be processed, the program maintains communications
with HASP in the central computer to await a job.
During this
dormant period, the reader is tested every several seconds for
the availability of a job to transmit.
Thus, the Model 20 operator
by merely placing a job (or jobs) in the card reader can cause transmission to the central cOITlputer at the next "end of job" (or within
several seconds if no processing is active).
The lack of jobs in the
reader will therefore cause all print and punch output froITl the central
computer to be processed as it becoITles available.
HASP Remote TerITlinal Operator's Guide (Model 20) - Page 2.3-1
861
HASP
3.0 ERROR RECOVERY
The following sections list some of the more common error
•
conditions that may arise and indicate a solution to each.
HASP Remote Te rminal Ope rator I s Guide (Model 20) - Page 3. 0 - 1
862
HASP
3.1 COMMUNICATION
ADAPTER ERRORS
Any errors concerned with data transmission are indicated by
the communications adapter on the Model 20 by halting (stop light on),
sounding the audible alarm, and displaying a combination of error
indicators.
Normally, an error stop indicates a line transmission
failure (after three retries).
By pressing start, the transmission will
be retried thre e additional time s.
If a failure still re suIt s afte r
several retries, the computing system and the telephone line should
be checked.
A detailed description of the meaning of various error
indicators is given in the IBM Reference manual A26-5847.
NOTE: occasionally certain error lights on the communications
adapter will flash on for brief periods of time.
No action should be
taken until the CA stop key is lighted.
HASP Remote Terminal Operator's Guide (Model 20) - Page 3. 1-1
863
HASP
3.2 UNIT RECORD DEVICE ERRORS
All error conditions on unit record devices will be indicated by
the illumination of the appropriate ATTENTION light on the Model 20
console and a program stop in the Model 20 with an indicative number
displayed in the ESTR Register.
When the error condition has been
cleared (as described subsequently), the START key on the console
should be pressed to resume operation.
The following sections
de scribe the error identification halt codes and the specific actions
neces sary to correct an error condition on all supported devices.
HASP Rem.ote Terminal Operator's Guide (Model 20) - Page 3.2-1
864
HASP
3. 2. I
1403/2203 Printer
SYNC CHECK/PRINT CHECK/FORMS CHECK- All printer checks
will be effectively ignored by HASP /RTP.
The error co'nditi.on should be
reset and the printer put into READY status to continue printing.
If
the malfunction caused the loss of print lines, the central computer
operator should be contacted and advised to BACKSPACE* or RESTART*
the print to recover the lost line s.
*
See the HASP SYSTEM Operator's Guide
HASP Rem.ote Terminal Operator's Guide (Model 20) - Page 3.2-2
865
HASP
,3.2.2
2501, 2560, 1442, 2520 CARD READERS
All card reader checks are indicated by a program halt code of
0001.
To retry the faulty read, the cards should be run out of the
reader and the last two cards in the receiving stacker should be placed
back into the reader.* Frace s sing may then be re sumed by depre ssing
the START keys on both the card reader and the model 20 CPU.
If
the read check condition persists after several retries, the validity
of the card should be checked.
Feed Stops and other mechanical problems on card readers are
indicated by the illumination of an error light on the reader console
(along with the appropriate ATTENTION indicator on the Model 20
CPU).
This condition may be corrected by running out the reader,
correcting the cause of the stop, and replacing the cards into the
reader.
Note that no cards are removed from the receiving
stacker.
Pressing the START key,on the card reader will cause
processing to resume.
The occurrence of both type s of error, conditions simultaneously
should be corrected by following the procedure for reader checks.
*
In the case of the 2560 (primary stacker) the last THREE cards should be
placed back in the read hopper.
HASP Remote Terminal Operator's Guide (Model 20) - Page 3.2-3
866
HASP
3.2.3 2560, 1"442, 2520 CARD PUNCHES
All punch checks will be indicated by a program halt code of 0002.
To repunch the card in error, the cards in the punch should be run out
and the last two cards in the receiving stacker discarded.
Blank cards
should be placed into the punch and START depressed on the punch console.
The pre s sing of the START key on the CPU will cause proce s sing to
resume.
Punch STOPS and other mechanical problems will be indicated by
an indicator light on the punch {and by the appropriate ATTENTION
indicator on the CPU console}.
These conditions sho.uld be corrected
by clearing the punch and discarding all non-processed cards.
will re sume when the punch is re-readied.
Processing
The occurrence of both type s
of the above errors simultaneously should be corrected by following the
punch check correction procedure.
HASP Remote Terminal Operator's Guide (Model 20) - Page 3.2-4
867
HASP
3.3
MODEL 20 RESTART
In the event of an untimely interruption of Model 20 operation such
as a machine, program, communication line, or environmental failure,
the following procedures should be utilized to resume processing:
A.
Model 20 transmitting at failure -
HASP/RTP should be
reloaded with the complete job which was being sent at
the time of the failure immediately behind the HASP /RTP
. deck.
Due to the sometimes extensive buffering of cards
by the Model 20, doubts concerning which job was being
transmitted at the time of the failure should be resolved
by contacting the operator at the Central site.
The central
operator should also be advised to enter the HASP RESTART
RMT n command to delete this partially complete job from
the HASP job queue. After normal initialization procedures
I
processing should resume.
B.
Model 20 RECEIVING AT FAILURE -
HASP/RTP should be
reloaded with NO input jobs in the card reader to force it
into the receive mode again.
Since a system failure will
normally result in the loss of some amount of data, the
central computer operator should be advised to BACKSPACE or
RESTART the function in progress as required by the amount
of data lost.
HASP Remote Terminal Operator's Guide (Model 20) - Page 3.3-1
868
HASP
4.0
DYNAMIC CONFIGURATION SPECIFICATION
The HASP/Remote Terminal Processor can utilize any of the types
of peripheral I/O equipment that can normally be ordered with the
Model 20. At program load
I
HASP/RTP either determines or is
instructed by the operator what devices to use.
I
Either the 2203 or
1403 printer will automatically be used and need not be indicated.
The card reader utilized will be the one from which the RTP deck is
loaded.
The punch to be used must be indicated by the following card
which must follow the program deck:
_ _ _ _ CARD COLUMNSu--_ _ _ _ _ _ _ _ _ __
o
1
1
2
1
6
8
o
/ /SYSPUNCH DD
UNIT=XXXX
DUMMY
where
xxxx
=
=
=
2560S
2520
1442
(MFCM Secondary station)
If the variable field contains the word DUMMY, all punch output
received from the central computer will be ignored with no indication
to the Model 20 operator.
HASP Remote Terminal Operator's Guide (Mode120) - Page 4.0-1
869
HASP
5 .0
CENTRAL COMPUTER CONTROL
Certain of the control cards recognized by HASP can be introduced
from the remote terminal site.
Following is a list and meaning of these
control cards.
71
12
Any Message
1
/*MESSAGE
The data punched into columns 12-71 of this card will be displayed
on the central computer operator's console at the time the job is being
read into the system.
special instructions
I
This may be used to identify certain jobs, give
etc.
The /*MESSAGE card may be placed anywhere
within the input job stream.
If this card appears within a job, the HASP
number assigned to that job will be appended to the message before
displaying it, otherwise the remote station ID. will be appended.
1
/*ROUTE
16
10
PRINT
PUNCH
LOCAL
This card, when included anywhere within a job being submitted to
the central computer, will cause the print or punch output (as indicated
in column 10) to be processed on local unit-record equipment.
This
card may be used to divert large volumes of print or punch to local high
s peed devices to avoid terminal congestion.
Both print and punch may
HASP Remote Terminal Operator's Guide (Model 20) - Page 5.0-1
870
HASP
be routed locally by including two
1
/*PRIORITY
/*ROUTE cards in a job.
16
nn
This card may be used to force the assignment of priority linn'!
to the job which immediately follows.
from 0-15.
linn!! may be any digit or digits
This control card when read locally by HASP is interrupted
as an absolute priority assignment to a job.
However, when read from
a remote station the card is regarded as a priority assignment to this
job relative to other jobs from the same station.
Thus a remote
operator can, via the /':~PRIORITY card order the sequence of jobs
submitted from only his station, for example, a
/~:~PRIORITY
15
(where 15 is the highest priority) would cause its job to be the next
job from that remote station to be processed, although not necessarily
the next job to be processed by the central computer.
The relative
position of the priority structure of a remote terminal with re spect
to the overall system priority structure is determined at HASPGEN
by central computer personnel.
The /*PRIORITY card must imm.ediately precede the 08/360 JOB
card of the job to which it refers.
HASP Remote Terminal Operator's Guide (Model 20) - Page 5.0-2
871
HASP
25
1
/*SIGNON
Password
This card appears at the end of the HASP/RTP program deck in front of
the //SYSPUNCH configuration card and is used to override the remote
identification number normally assigned to the HASP/RTP program deck.
For DIAL lines the /*SIGNON card may be used to submit a password which
I
if correct will allow the remote terminal acces s to the HASP system for
I
remote job stream processing. The value" n" must match the remote identification number assigned to the remote station by central computer personnel.
The value of the "password" must match the password assigned to the line
by the central computer operator when the communication line is .. started" .
1
/*SIGNOFF
This card is used to inform the central system that the remote terminal
operator desires to terminate a remote job stream processing session. When
submitted to the central system
I
HASP will, at the completion of the current
print and/or punch streams, disconnect the terminal from the system and
prepare the line for other remote stations to SIGN-ON.
1
/*command
Selected HASP commands may be submitted to the central system through
the remote terminal card reader. Commands submitted in this manner must
HASP Remote Terminal Operator's Guide (Model 20) - Page 5.0-3
872
HASP
be the first cards of a job stream (in front of the first job submitted).
which can be submitted are listed in the HASP operator' s
in column 3 of the card
1
/*SETUP
t
guide'~Hid
Commands
must start
i. e. the first 3 columns will be "/*$".
12
volume-serlt volume-ser2
71
t ••• t
volume-sern
The volume serials punched in columns 12-71 of the card will be
displayed on the central system console and the associated job will be placed
in HOLD status (not be scheduled for execution) until released by the central
operator. The /*SETUP card appears in the corresponding job input deck between
the OS
JOB card and the first EXEC card.
To continue a /*SETUP card t a
/*MESSAGE card should be used.
HASP Remote Terminal Operator's Guide (Model 20) - Page 5.0-4
873
HASP
6. 0 OPERATIONAL HINTS
1.
It is suggested that the remote terminal operator become
familiar with normal HASP operating procedures at the
central computer site.
The HASP OPERATOR'S GUIDE
is contained as section 11. 1 in the HASP SYSTEM
MANUAL
2.
During dormant periods, the Model 20 should be allowed
to maintain communication with HASP at the central
computer site so that printing (and/ or punching) may
begin as it becomes available.
3.
The communications line may be disconnected at any
time, which will cause HASP to hold all jobs awaiting
the terminal until the line is again established.
This
will allow the Model 20 to be used for other purpose s
during long dormant periods.
HASP Remote Terminal Operator's Guide (Model 20) - Page 6.,0-1
874
HASP
11.3
HASP/REMOTE TERMINAL (1978) OPERATOR'S GUIDE
The following section contains detailed instructions for operating
an IBM 1978 used as a remote terminal station with the HASP SYSTEM.
Although intended for use as a separate operator l s manual, it has been
included in the HASP SYSTEMS Manual to achieve completene s s.
HASP Remote Terminal Operator l s Guide (1978) - Page 11. 3-1
875
HAS P
(The remainder of this page intentionally left blank.)
876
HA~P
THE
HASP
SYSTEM
IBM 1978 REMOTE STATION OPERATOR'S GUIDE
877
HASP
TABLE OF CONTENTS
Page
Section
1. 0
Introduction
1. 0-1
Section
2.0
Operating Procedure s
2.0-1
2. 1
Initiating Processing
2. 1-1
2.2
Establishment of Communications Line
2.2-1
3.0
Error Recovery
3. 0-1
3. 1
Send Operation Error Stops
3. 1-1
3.2
Receive Operation Error Stops
3.2-1
Section
4.0
Central Computer Control
4.0-1
Section
5.0
Operational Hints
5.0-1
Section
T able of Contents - Page i
878
HASP
The HASP System is an automatic
spooling, priority scheduling system which, while operating in conjunction with OS/360, operates an unlimited number of peripheral
devices simultaneously with normal job execution, to perform the
functions normally associated with off line support computers.
The
function of HASP has been extended to operate, via several classes
of telephone line s, periphe ral device s located remotely from the
central computer cOIT1plex.
Through the use of the HASP Remote Job Entry feature, a user
located perhaps thousands of miles from. a particular System/360
installation can utilize the capabilitie s of that installation much as
if it were in the local cOITlputer room.
The unit record device s at a
reITlote station are logically operated by HASP as if they were local
readers, printers and punches, so that HASP can siITlultaneously,
while operating all local unit record devices, read jobs from several
reITlote readers into the queue of jobs awaiting processing and upon
com.pletion of the processing, can print and punch the results at the
remote site.
Although a variety of devices may be utilized as remote terminals,
this document discusses only the use of an IBM 1978 as a rem.ote station.
HASP Remote Terminal Operator's Guide (1978) - Page 1.0-1
879
HASP
Due to the use of blocking and variable length "data:'to minimize
line transmission time, the speed at which the 1978 devices are
operated is dependent on the data being transmitted.
Certain jobs,
because of their data characteristics, will enable the 1978 to operate
unit record devices at full rated speed.
Other jobs, with less
advantageous data characteristics, may cause the devices to operate
at Ie s s than full speed.
HASP Remote Terminal Operator's Guide (I978) - Page 1.0-2
880
HASP
2 .0
OPERAT1NG PROCEDURES
The following pages provide sufficient information for initiating
and operating the IBM 1978 as a HASP Remote Terminal.
HASP Remote Terminal Operator's Guide (1978) ~ Page 2.0-1
881
HASP
2.1 INITIATING PROCESSING
2. 1. 1 Transmission to the Central Computer
1.
Establish the communication line (see Section 2.
2.
Verify that the M/D and CHAR PHASE indicator
o. 2).
,lights are on 2.nd that the REC T /P light is off.
3.
Set the operation mode switch to the SEND BINARY
mode (see Note 1).
4.
Set the mode switch to the BINARY Position.
5.
Press START on the printer paneL
6.
Load the cards to be transmitted into the feed
hopper.
7.
Press the FEED key on the Reader /Punch.
8.
Press the START key on the Reader/Punch.
9.
Cards will be transmitted until the reader hopper
is emptied, at which tim.e the audible alarm will
sound and the feed check light on the Reader will
COll1.e on.
Additional cards may be transmitted at
this point by, beginning with step 6 again.
If there
are no more cards to be transmitted. . .
HASP Remote Terminal Operator's Guide (1978) - Page 2. 1-1
882
HASP
10.
Press the STOP key on the Reader Punch and signal
HASP in the central computer of the end of input by
pre s sing the EOT key.
NOTE 1:
Certain installations may, if all input card characters
are of the 64 BCD character set, direct the setting of the ope ration
mode switch to the SEND 1 st CHAR position, in order to improve
the transmis sion rate.
HASP Remote Terminal Operator's Guide (1978) - Page 2. 1-2
883
HASP
2.1.2 Reception from Central Computer
1.
Establish the communications line (see Section 2.2).
2.
Verify that the MID and CHAR PHASE indicator lights
are on and that the REC T
3.
Ip light is off.
Set the operation mode switch to the REC 1 st CHAR
position.
4.
Set the mode switch to the BINARY position.
S.
Load blank cards into the feed hopper of the Reader IPunch.
6.
Pre s s the FEED key twice on the Reade r IPunch ( only
if punching is to be done).
7.
Press START on the printer panel.
8.
Press START on the Reader /Punch (for punch).
9.
Jobs will, as available, begin printing (and optionally
punching).
HASP Renlote Terminal Operator's Guide (1978) - Page 2. 1 -3
884
HASP
2. 1. 3
Change of Operational Mode
In order to allow the 1978 operator to select the mode of operation
HASP provides the following feature:
At
the end of the output for each job (punch or print if
no punching i!!l done), HASP will automatically pause
for 28 seconds to allow the 1978 to be switched to the
send mode.
To initiate the sending of a job during
this interval, the operator should follow the procedure
outlined in part 2. 1. 1, beginning with step 3.
If the
1978 is not !witched to the send mode, the printing of
the next job, if available, will automatically begin
after the expiration of the 28 second period.
Should
no job be ready for printing, the 1978 will enter a
dorm.ant state to await either the receipt of print or
an' operator switch to the send mode.
Switching modes
while a transmission is occurring can only be done by
instructing the control computer operator to RESTART
the r,emote station.
HASP Remote Terminal Operator's Guide (1978) - Page 2. 1-4
885
HASP
2.2 ESTABLISHMENT OF COMMUNICATION
1.
LINE
Advise the operator of the central computer location
that job transmis sion is to be initiated.
(The central
computer operator must authorize HASP to process
jobs from a given remote term.inal.
This authorization
must be given only once pe r terminal. )
2a.
Leased (or private transmission lines) - place the
data set in the DATA mode.
2b.
Dial-up transmission lines - Press the TALK button
on the data switch and dial, exactly as in a normal call,
the number of the appropriate data set at the central
computer.
After the "ringing" sound, a shrill 'sound
indicates that the phone has been answered.
Immediately
upon hearing this sound, press the DATA button on the
data set and hang the telephone up.
3.
The CHAR PHASE light on the controlpanel should appear
to indicate synchronization of the terminal and the central
computer.
NOTES on communication line ,e stablishment:
a.
A "busy" signal indicates that the called data set is in use.
HASP Remote Terminal Operator' sGuide (1978) -Page 2. 2-1
886
H A.SP
b.
A line may be established by a cal1 from the central computer
to the remote site.
To receive such
a call, normal initializa-
tion procedures should be followed but rather than dialing, the
AUTO button should be pressed and the phone hung up to await·
the call.
c.
On a two-wire half-duplex telephone line, a period of several
seconds may be registered to synchronize the two computers.
d.
On the establishment of a connection other than the fir st, a
maximum time of 28 seconds may be required to begin
transmission of print and/or punch data.
e.
If the data set at the central computer is not in the AUTO
position, the operator may answer the call and, after talking
may press the DATA key.
An ensuing shrill sound indicates
the computer connection has been established.
HASP Remote Terminal Operator's Guide (1978) - Page 202-2
887
HASP
3.0 ERROR RECOVERY
This section indicates most possible error conditions, their
probable cause s and procedures neces sary for correction.
HASP Remote Terminal Operator's Guide (1978) - Page 3.0-1
888
HASP
i'
3.1 Slt'ND OPERATION ERROR STOPS
Figure 3.1. 1 illustrates possible .errors wh~cp may occur while
transmitting jobs from the 1978 to the central computer.
HASP Rem.ote Terminal Operator 1s Guide (1978) - Page 3.1-1
889
HASP
Figure 3.1. 1 Send Operation Error Stops
Error and
Indication
Validity
Check
1. Alarm
sounds.
2. SRP light
is on.
3. Validity
light is
on.
4. Card
check
light
may be
on.
Po s sible Cau se s
Correction Procedures
1. Invalid card
code character.
2. Card skew.
1. Remove cards from stacke r.
2. Remove cards from hoppe r.
3. Pre ss feed key and stop key
simultaneously twice to clear
machine of cards. First card
in stacker is the error card.
4. If ne c e s s a ry , cor r e ct e r ro r card or set mode switch at
prope r po sition (must be
BINARY). Other records may
have been sent incorrectly if
this switch was not set correctly.
5. (a) If the Cd/Pnt Bfr light is
on, generate a machine reset
by momentarily changing the
operation switch to another
position.
NOTE: this procedure may
result in a record check at the
central compute r which will be
ignored by HASP.
(b) If the Cd/Pnt Bfr light is
off, press the check start key
to reset the error condition.
6. Place the error card and the
card following it in front of
cards removed from hopper.
7. Follow normal start procedure
HASP Remote Terminal Operator's Guide (1978) - Page 3.1-2
890
HASP
Figure 3. 1. 1 Send Operation Error Stops (Continued)
Error and
Indication
Card
Check
l. Alarm
sounds.
2. Card
light is
on.
Possible Causes
Correction Procedures
1. Buffe r input
address error.
2. More or fewe r
than 80 colum.ns
read from card
(without Transmit Variable
Length Records
special feature).
l. Remove cards from stacke r ~
2. Remove cards f~om hoppe r.
3. Pre s s feed and stop key s
simultaneously ~wice to clear
machine of cards.
4. (a) If the Cd/Pnt Bfr light is
on, place the last card in the
stacker into the hopper.
(b) If the Cd/Pnt Bfr light
is off, place both of the cards
in the stacker into the hopper.
5. Replace the cards previously
removed from the hopper.
6. Pre s s check start button to
reset the error indication.
Follow
normal start procedure
7.
HASP Remote Terminal Operator's Guide (1978) - Page 3.1-3
891
HASP
Figure 3.1. 1 Send Operation Error Stops (Continued)
Error and
Indication
--
Input/
Output
Check
l. Alarm
sounds.
2. I/O
check
light
is on.
3. CTR
light
is on.
Possible Causes
Correction Procedures
1. Buffe r output
address error.
1. Note card count in input
counter lights to determine
number of cards stored in
buffer
2. Remove cards from hopper.
3. Remove cards from stacker
except the number indicated
by the input counter.
4. Press feed and stop keys
simultaneously twice to clear
machine of cards.
5. Place cards left in stacke r
into the hopper.
6. Replace cards removed from
hopper.
7. Gene rate a machine re set by
momentarily changing to
another position with the
ope ration switch.
8. Follow normal start procedure.
NOTE: This procedure may
result in a record check at the
central computer, which will be
ignored by HASP.,
HASP Remote Terminal Operator's Guide (1978) - Page 3.1-4
892
HASP
Figure 3. 1. 1 Send Operation ErrorStops
Error and
Indication
CR Check
l. Alarm
sounds.
2. CR light.
is on.
(Continu~d)
Possible Causes
,Correction Procedures
l. Bad character
out, of translator.
1. Remove cards from stacke r.
2. Remove cards from hopper.
3. Pre ss feed and stop keys
simultaneously twice to clear
cards from machine.
4. Place second card in stacker
into the hopper .
5. Replace cards removed from
hopper.
6. Pre ss check start button.
7. Follow normal start procedure
8. If the error occur s the second
time, perform steps 2 and 3
above again.
9. Generate a machine re set by
momentarily changing the
operation switch to another
position.
NOTE: This procedure may
result in a record check, at the
central compute r, which will be
ignored by HASP.
.
IO.Place both cards in the stacker
into the hopper. Replace the
cards removed from the
hopper.
II.Follow normal start procedure.
'
"
HASP Remote Terminal Operator's Guide (1978) - Page 3. 1-5
893
HASP
Figure 3. 1. 1 Send Operation Error Stops (Continued)
Error and
Indication
Corre ction Procedure
Possible Causes
Feed Check
1. Alarm
sounds.
2. SRP
light on.
3. Feed
check
light on.
1. Hoppe r empty
2. Card jam.
3. Failure to
register card
at one of
stations in
transport.
4. Misfeed at
hopper area.
S. Misfeed at
stacker area.
Ctr
1. Alarm
sounds.
2. Ctr
light
is on.
1. Input check.
0
1. Determine cause of feed check~
2. If hopper empty, put in more
cards and pre s s feed key
unle s sat end of operation, in
which ca s e pre s s the stop key
and the EOT key.
3. If a misfeed and no cards are
in machine, reshuffle cards
in hopper and check for a
nicked card which should be
replaced. Put cards back in
hopper and press the feed key.
4. If a card jam exists, follow
the misfeed correction procedure to remove it.
5. Repair any damaged cards if
necessary.
6. Place into hopper all cards
that have not as yet passed
the read station.
7. Press the feed key.
1. Depress card read-punch key.
HASP Remote Terminal Operator's Guide (1978) - Page 3.1-6
894
HASP
3.2 RECEIVE OPERATION ERROR STOPS
Figure 3.2.1 illustrates possible error stops which may occur while
receiving print (and/ or punch) from the central computer.
HASP Remote Terminal Operator's Guide (1978) - Page 3.2-1
895
HASP
.
-
Figure 3.2.1 Receive Operation Error Stops
Error and
Indication
Input/
Output
Check
l. Alarm
sounds.
2. I/O
light
is on.
3. CTR
light
is on.
4. Output
light
is on.
Possible Causes
Correction Procedure
The 1978 requests
retransmission of
an error record
two time s from the
transm.itting terminal. After the
three trie s the
machine stop s
and the error
indicator is
turned on.
1. Overflow of
data (exceeding the 7 subrecord limit).
2. Loss of an
addre SSe
3. Overflow of
buffer (card
check light is
also on). Maximum. of 329
characters.
4. RM/GM Check
also turns on
this light (see explanation of RM/
GM to indicate
wrong length
record.
l. Pre s s start key on card readpunch (printe r on Model 3) for
three more attempts at
transmis sian.
2. If card check light is on,
follow procedure for
correction of a card check.
3. If the error persists, the
System should be checked.
HASP Remote Terminal Operator's -Guide (1978) - Page 3.2-2
896
HASP
Figure 3. 2. 1 Receive Operation Error Stops (Continued)
Error and
Indication
Punch
Check
(Model 2
Only)
1. Alarm
sounds.
2. SRP
light
is on.
3. Punch
Check
light
is on.
Pos sible Cause s
Correction Procedure
1. Error in punching of a card.
2. Failure of card-:feed latch at the
of a feed cycle.
1. Flag last card in stacker.
2. Force feed one card by pressing stop and feed key simultaneously. Operation will
continue until all sub - records
remaining in MBS at time of
error have been punched, and
then it will stop. The card in
the stacker immediately after
the last card stacked before
stop, is the error card. If
error did not occur in the last
column to be punched, the
error card has been repunched
and the corrected card follows
the error card in the stacker.
The error card can then be
. thrown away. If the er~or
occurs in the last column to be
punched the entire card will
have been punched (if not, the
columns past the error column
will be left blank), arid the last
column of the card should be
checked and corrected if necessary, by manual methods.
3. If the error was due to a clutch
failure, the entire error,.card
will be blank and should. be·
discarded. In this case, the
flagged card should be che·cked
for scattered punching, and if
so, discarded and manually
corrected.
4. Pre s s start to re sume norrnal
operation. NOTE: The central
computer operator rnay be
notified to BACKSPACE or
RESTART the punch to retry.
~errninal
Operator1s Guide (1978) - Page 3.2-3
HASP Remote
897
HASP
Figure 3.2.1
Error and
Indication
Receive Operation Error Stops (Continued)
Possible Causes
Correction Procedure
Card
Check
l. Alarm
sounds.
2. Card
light
is on.
3. Other
lights
may be
on.
1. Address overflow of buffer
(transmittal
record too
long).
2. Address read
check (loss of
an address).
3. An invalid
character
in the translator or from
the line.
Punch Operation Only (Model 2
Only)
(a)
If
Cd/Pnt
Bfr
indicator
is
l.
on, remove all the cards from
the stacke r except one fewe r
than the nUITlbe r indicated by
the output counters.
(b) If Cd/Pnt Bfr indicator is
off, remove all the cards from.
the stacker except the nUITlber
indicated by the output counte r s.
2. Force feed one card by pre ssing the stop key and the feed key
simultaneously. Discard the
cards in the stacker.
3. Pre s s the check start key.
4. If Cd/Pnt Bfr indicator was on,
the first card entering the
stacker must also be discarded.
Character
Check
1. Alarm
sounds.
2. Character check
light
is on.
3. CTR
light
is on.
1. The mode switch
is not in the
BINARY position.
2. Caused by the
transITlis sion
line. (directly
or indirectly).
Three trie shave
been made to
obtain correct
information
before the
stop and error
condition occur s.
l. Verify the setting of the ITlode
switch.
2. Pre ss start on card read-punch
(printer on Model 3) for three
ITlore atteITlpts at transrnis sion.
3. If error per sists, the transmis sion line should be changed,
or the ITlode of the two ITlachine s
should be compared.
HASP Remote Terminal Operator's Guide (1978) - Page 3.2-4
898
HASP
Figure 3.2. 1 Receive Operation Error Stops (Continued)
Error and
Indication
Possible Causes
Correction Procedure
Record
Check
l. Alarm.
sounds.
2. Record
light is
on.
3. Output
light
is on.
l. Loss of a
record.
2. Duplication
of a record.
l. Flag the deck or printed report
to indicate the approximate
location for future reference
if necessary.
2. Pre s s the check start button.
3. The central computer operator
may be notified to BACKSPACE
or RESTART the job.
CR Check
l. Alarm
sounds.
2. CR light
is on.
l. Bad character
out of translator.
10 Follow procedure set up for
l. Receiving 1978
l. Follow procedure for Input/
RM/GM
l. Alarm
sounds.
2. RM/GM
light is
on.
3 0 I/O
light is
on.
correction of a card check.
has not received
a RM/GM at
proper position
in sub transmittal
record.
Output check.
HASP Remote Terminal Operator's Guide (1978) - Page 3.2-5
899
HASP
Figure 3. 2. 1 Receive Operation Stops (Continued)
Error and
Indication
Output
Check
1. Alarm
sounds.
2. Output
light is
on.
3. Other
check
lights
may be
on.
(Chipbox Full
Model 2
Only)
1. Alarm
sounds.
2. SRP
light on.
3. Chipbox
light on.
SYNC Check
1. Sync check
light is
on.
2. Ready
light is
off.
3. Run light
is off.
Possible Causes
Correction Procedure
1. I/O check.
2. Card check.
3. Record check.
1. Follow the procedure indicated
by the other check lights that
are on.
Z. If no other lights are on, press
the start key to re SUITle ope ration.
1. Full chip box.
1. Open door on lower rear panel.
2. Remove chipbox and empty.
3. Replace chipbox and close
cover.
4. Pre ss start on card read punch
to resume operation.
1. Typehar is
not inserted
correctly.
2. Printer
ribbon is
out of line.
10 Determine cause of error.
2. Correct according to 1443
procedure.
3. Press reset key.
4. Pre s s start on printe r (and
card read-punch on Models 1
and 2) to re sume ope ration.
HASP Remote Terminal Operator's Guide (1978) - Page 3.2-6
900
HASP
Figure 3.2.1 Receive Operation Error Stops (Continued)
Error and
Indication
Parity
Check
1. Parity
check
light
is on.
2. Ready
light
is off.
3. Run
light
is off.
Possible Causes
Correction Procedure
1. Invalid character
has been sent to
printer.
1. Press reset key.
2. Press check start button.
3. Pre s s start on printer '(and
card read-punch on Models 1
and 2) to resume operation.
Form Check
1. Forms in printer
1. Form check
are out of line.
light on.
2. Ready
light
off.
3. Run
light
is off.
1. Realign forms in printer
according to 1443 procedures.
Pre
s s the re set key.
2.
3~ Pre ss start on printer (and
card read-punch on Models 1
and 2) to resume operation.
4. The print may be BACKSPACED
or RESTARTed at the central
computer to recover lost time.
HASP Rem.ote Terminal Operator's Guide (1978) - Page 3.2- 7
901
HASP
Figure 3.2.1
Receive Operation Error Stops (Continued)
-
Error and
Indication
Possible Causes
Correction Procedures
End of
Form
l. End of
form
light on.
2. Ready
light off.
3. Run
light
is off.
1. Out of printe r
forms.
1. Insert new printer forms
according to 1443 procedure s.
2. Pre ss start on printe r (and
card read-punch on Models 1
and 2) to resume operation.
Carriage
Interlock
l. Carriage
interlock
light is
on.
2. Ready
light
is off.
1. Carriage brushes
are in a raised
position.
2. 6 or 8 line linch.
belt cover is
raised. '
l. Correct condition.
2. Press start on printer (and
card read-punch on Models 1
and 2) to resutne operation.
HASP Remote Terminal Operator's Guide (1978) - Page 3.2 - 8
902
HASP
Figure 3.2.1 Receive Operation Error Stops (Continued)
Error and
Indication
Possible
Feed
Check
(Model 2
Only)
1. Alarm
sounds.
2. SRP
light
is on.
3. Feed
Check
light
is on.
1.
2.
3.
4.
S.
Causes
Hopper empty.
Card Jam
Failure to
register a card
at one of the
station s in the
transport.
Misfeed at
hopper area.
Misfeed at
stacker area.
Correction Procedure s
Determine cause of feed check. If
the hopper is empty, follow normal
start procedure. Otherwise:
1. Remove cards from stacke r.
2. Remove cards from hopper.
3. If a card jam, follow misfeed
correction procedure to remove
cards.
4. If not a card jaITl, pre s s feed
and stop keys siITlultaneously
twice to clear cards from
machine.
S. Examine cards cleared frorn
machine in steps 3 or 4 and
discard any damaged cards, or
any that are incorrectly or in.completely punched. T4e
da:.:naged cards from a card
jam will have to be duplica,ted
manually, the othe r will be
repunched. (NOTE: The.
Central Computer Operator
may be notified to BACKSPACE
or RESTART the job to recover
damag8d cards.
6. Replace cards removed from
hopper.
7. Follow normal start procedure.
HASP Remote Terminal Operator's Guide (1978) - Page 3.2-9
903
HASP
4. 0 CENTRAL COMPUTER CONTROL
Certain of the control cards recognized by HASP can be introduced
from the relTIote terminal site.
Following is a list and lTIeaning of the se
control cards.
71
1
12
/;~MESSAGE
Any Message
The data punched into columns 12 -71 of this card will be displayed
on the central cOlTIputer operator's console at the tilTIe the job is being
read into the systelTI.
This may be used to identify certain jobs, give
special instructions, etc.
The
within the input job stream.
/~cMESSAGE
card lTIay be placed anywhere
If this card appears within a job, the HASP
number assigned to that job will be appended to the message before displaying i.t,
otherwise the relTIote station ID will be appended.
1
/~: : .'O) is intended
primarily for standard WTO and WTOR support and may not function
properly under certain conditions. For example, HASP console
support may not function properly when:
•
REPLYs to WTORs are erroneously left pending .
•
A non-HASP (e.g., Z EOO) command issues a WTO or a WTOR,
unless it is operating under a separate task.
See HASPGEN parameter &NUMCONS for other restrictions. These
functional restrictions may be removed by using OS console
support (&NUMCONS=O).
C.
HASP will not operate correctly if two or more jobs being simultaneously processed by OS have identical job names. While HASP
will protect against this circumstance for jobs under its control, it is the responsiblity of the user to insure that no job,
submitted outside of HASP control, has the same job name as any
job being controlled by HASP.
O.
Because of the HASP/OS interface techniques and the total system
control status of HASP, no provision has been made to allow
processing to continue after a HASP failure. Any abnormal termination of HASP is considered a system failure and requires a
re-IPL.
E.
All unit-record devices of the type utilized by HASP must be attached to the system (appear as physically existent) at the time
HASP is invoked if they are to be subsequently utilized.
F.
If any SYSOUT data set contains more than 65,535 pages (or skips
to any channel in the carriage tape), then print positioning
(either forward/backward spacing or warm start spacing) will not
function after the 65,535 page (or skip) is reached.
General HASP Restrictions - Page 12.7-3
1105
HAS P
G.
While HASP makes an attempt to enter every WTO and WTOR in the
HASP System Log of the job associated with the message, there
are certain messages (e.g., DDR and MFT I/O Error messages)
which are not readily associated with any given job and may
not be logged.
H.
While HASP is programmed to recover from most catastrophic
Input/Output errors in such a way that the impact on the installation will be minimal, it is conceivable that multiple
unusual errors might occur in a time relationship such that
loss of data is inevitable and complete recovery by HASP is
impossible.
General HASP Restrictions - Page 12.7.3-1
1105.1
HAS P
(The remainder of this page intentionally left blank.)
1105.2
HASP
12 .8
JeL PROCESSING
The HASP philosophy of providing. an interface to OS/360 which is
essentially transparent to the user is supplemented by the collection of
HASP routines which examine and alter JCL statements during system
operation. Since the HASP routines have access to every JCL statement
destined for the
as
scheduler, it is unnecessary to provide a special
Procedure Library (SYSI. PROCLIB) for HASP operation. In addition,
HASP features such as priority and job class scheduling can be easily
realized by including or changing the appropriate "CLASS" and "PRTY"
fields on the JOB JeL statements.
HASP requirements for input stream
(DD*, DD DATA) and output stream (SYSOUT) correspondence to user
defined pseudo I/O units is a maj or function of the JCL routines.
Access to the JeL routines is provided thru the standard OS/360
Reader/Interpreter "exit list" feature which allows the user to specify
a routine to be given control whenever a JeL statement has been
encoded and is ready for individual statement analysis. The encoding
scheme used is described in the MVT Job Management PLM.
JeL Processing - Page 12.8-1
1106
HASP
12.8.1
JCL PROCESSING OS/360 INTERFACE
XNEXRCON - NEL Exit List Reconstruction
The Exit List Reconstruction program receives control from the HASP
LINK/XCTL interface routine when a LINK to the Reader/Interpreter
initialization module (IEFVH1) is intercepted.
The NEL (Interpreter
Entrance List) and associated Exit List is examined for a Special Access
method entry which indicates that the Reader/Interpreter is being used
as a subroutine to process "In-core" JCL. If the Reader/Interpreter is
being used to process jobs, a test is made for the HASP Reader identified
by the default SYSOUT device name of "SPOOL" in the HASPRDR Proclib
Procedure. When the HASP Reader is identified, the Exit List is modified
to include linkage to the main HASP JCL program (XJCLSCAN) from the
Reader/Interpreter after each JCL statement is encoded.
JCL Processing - Page 12.8-2
1107
HAS P
12.8.2
JCL PROCESSING MAIN PROGRAMS
XJCLSCAN - JCL Scan and Control
The JCL Scan and Control Program is entered from the Reader/
Interpreter module IEFVFA as a result of the Exit List linkage
established by the HASP routine XNEXRCON.
The following major
functions are performed:
1.
A return PSW is constructed from the IEFVFA return register
(R14) and the left half of the current PSW provided by entry
to the HASP initialization SVC routine.
This special use
of the initialization SVC allows the JCL routines to operate
disabled when necessary.
2.
The Reader/Interpreter internal text pointer is obtained and
saved for subsequent text processing. A test is made on the
first word of the text to determine if an extensive JCL
statement has caused overflow to SYSl.JOBQUE.
If this condition exists, HASP is unable to process the statement.
3.
The first JCL key in the Reader/Interpreter internal text is
tested for "JOB", "EXEC" and "DD" values and control passed
to the corresponding HASP processor as indicated below:
KEY VALUE
JOB
EXEC
DD
4.
HASP PROCESSOR
XJCLJBPR
XJCLXQPR
XJCLDDPR
All JCL processors terminate by passing control to XJCLEXIT
in the Scan and Control routine.
The termination function is
accomplished by restoring saved registers and issuing a LPSW
using the PSW constructed when the control routine is entered.
Control is returned to IEFVFA.
XJCLJBPR - JOB Statement Routine
The JOB statement routine examines and changes all JOB statements
processed by the Reader/Interpreter.
The major functions performed
are:
1.
A new JOB internal text string is constructed in a HASP workarea.
The new text consists of the original text with "CLASS",
"PRTY"; "TYPRUN" and "MSGCLASS" entries deleted if they were
specified by the user.
JCL Processing - Page 12.8-3
1108
HAS P
2.
A new CLASS entry is produced by extracting the "PITCLAS"
field from the PIT (Partition Information Table) associated
with the job being processed by the Reader/Interpreter.
3.
A new "PRTY" entry is produced by extracting the "PITPRIO"
field from the PIT.
4.
A MSGCLASS value corresponding to the first class given in
the parameter &WTRCLAS is entered into the text unless the
originally specified MSGCLASS corresponded to any class
given in &WTRCLAS.
5.
This newly constructed text is then moved to the Reader/
Interpreter text area.
XJCLXQPR - EXEC Statement Routine
The EXEC statement routine does not examine the associated internal
text if the Execution Task Monitor has not been selected
(&MONINTV=O).
If the Execution Task Monitor has been selected,
then XJCLXQPR performs the following functions:
1.
The value of the Monitor priority represented by the &XZPRTY
is compared with the PIT priority field associated with the
Job being interpreted.
If the values are not equal, then no
further action is taken on the EXEC statement.
2.
If the priorities are equal, the internal text is examined
for the key value of "DPRTY=".
If this parameter has not been
coded, no further action is taken.
3.
If "DPRTY" has been coded under the circumstances cited, it
is removed from the internal text and therefore not processed
by os.
The overall purpose of the action taken by XJCLXQPR is to prevent
circumvention of the function of the Execution Task Monitor by
coding the "DPRTY" field.
XJCLDDPR - DD Statement Routine
The DD statement Routine examines all DD statements for SYSOUT or
DD*, DD DATA Specifications and performs the following major
functions:
1.
The key content of the statement is determined by use of the
XINTSCAN routine.
2.
If the statement does not contain a SYSOUT specification, control goes to the DD*/DD DATA test routine XJCLDDDT.
JCL Processing - Page 12.8-4
1109
HAS P
3.
If a SYSOUT entry exists, the class is saved for possible
translation to a HASP pseudo unit. The class-pseudo unit
translation table (XTRTABLE) entry corresponding to the
SYSOUT class is examined for the values "*", "1", or "2".
If "*" is found, HASP processing is terminated for the DD
card.
If "1" or "2" is found (indicating special routing),
the card will be processed as if special forms were speci~
fied.
If the card was a simple SYSOUT=x, control goes to
the new internal text string build processor.
4.
If the SYSOUT entry includes a special output writer specification, control goes to XJCLDDWR.
5.
If the SYSOUT specified includes a forms field but not a
special writer, the forms field is extracted for later
processing.
6.
The DDNAME, if it exists, is moved to the HASP text buffer
where internal text for UNIT=x is constructed.
7.
If the forms field was detected, then control goes to
XJCLDDFR, otherwise the SYSOUT class is used to translate
to a HASP pseudo unit and the completed UNIT=x text is moved
to the Reader/Interpreter text buffer. Control returns to
the Reader/Interpreter via XJCLEXIT.
JCL Processing - Page 12.8-5
1110
HASP
12 .8.3
TCL PROCESSING INPUT STREAM PROGRAMS
XICLDDDT - DD*
I
DD DATA Test Routine
This routine tests for a DD* or DD DATA specification and goes to
XJCLDDDA if either is found.
*
If the DD statement does not contain an
or DATA, control returns to the Reader/Interpreter via XJCLEXIT.
,
NOTE: The positional parameters "*" and "DATA" are coded as "$"
and "CATA" by the HASP Card Reader Service Main Processor and are
recognized in these formats by XJCLDDDT.
XICLDDDA - DD*
I
DD DATA Processing Routine
This section of XJCLDDDT processes the DD* and DD DATA statements
in the following manner:
1.
The execution PCE for the current job is
est~blished
using
the XESTBPCE subroutine.
2•
The DDNAME (if it exists) and the internal text for
II
UNIT=xxx"
is constructed in the HASP text area.
TCL Processing - Page 12.8-6
, , , 1
HASP
3.
The execution DDT chain is searched for an unassigned DDT.
The EBCDIC unit is extracted from the first available DDT and
inserted in the "xxx" sub field of the "UNIT=xxx" text.
4.
If DCB parameters exist control goes to XJCLINDB, otherwise
I
the HASP default BLKSIZE (defined by &IBLKSZE) and RECFM=F
are added to the constructed text.
5.
Control goes to the termination section of XJCLDDPR where the
new internal text is moved to the reader text bu ffer and proce s sing is completed.
XICLINDB - DD*« DD DATA and DCB Processing Routine
Input stream statements (DD* I DD DATA) with DCB parameters are
processed by this routine in the following manner:
1•
The DCB preservation routine (XJCLDECB) is invoked to
extract and then delete user BLKSIZE and LRECL specifications
while preserving all other DCB parameters.
2•
The HASP maximum/default input stream BLKSIZE (defined by
&IBLKSZE) is moved to a test location (XDEFOBXX) for further
analysis by XJCLSHFL.
JeL Processing - Page 12.8-7
1112
HASP
3.
The BLKSIZE
4.
Control goes to the termination section of XJCLDDPR.
I
LRECL analysis routine XJCLSHFL is entered.
TeL Processing - Page 12.8-8
1113
HASP
12.8.4
TCL PROCESSING OUTPUT STREAM PROGRAMS
XICLDDCB - SYSOUT/DCB Routine
Output stream statements (SYSOUT) with DCB parameters are processed
by this routine as follows:
1.
The DCB preservation routine (XJCLDECB) is invoked to extract
and then delete user BLKSIZE and LRECL specifications while
preserving all other DCB parameters.
2.
The HASP maximum/default output stream BLKSIZE (defined by
&OBLKSZE) is moved to a test location (XDEFOBXX) for further
analysis by XJCLSHFL.
3.
The BLKSIZE, LRECL analysis routine XJCLHSFL is entered.
4.
Control goes to the termination section of XJCLDDPR.
XICLDDWR - SYSOUT with Special Writer Routine
DD statements with a SYSOUT specification which includes a special
writer entry are processed by this routine:
JCL Processing - Page 12.8-9
1114
HASP
1.
A test is made for a UNIT specification in the statement containing
the SYSOUT disposition.
If UNIT has been specified
I
control returns
to the Reader/Interpreter via XJCLEXIT.
2.
If UNIT is not specified
I
the text for UNIT=SYSDA is added to the
Reader/Interpreter text and processing is terminated via XJCLEXIT.
This addition is made to overcome the HASPRDR procedure default
SYSOUT unit of SPOOL.
XICLDDFR - SYSOUT with Forms Routine
This routine processes a forms specification in conjunction with a SYSOUT
disposition:
1.
A test is made to determine if the current job has depleted the special
forms pseudo devices (1442 for punch
I
1443 for print) and the forms
specification is ignored if so.
2.
The Execution Processor PCE for the current job is established using
the XESTBPCE subroutine.
3.
The Execution Processor .routine XGETDDB is used to get a DDT.
DDT is not available
I
It a
control goes to XJCLWAIT to place the Reader/
Interpreter task in an OS wait state pending the availability of a DDT.
4.
The Execution Processor routine XGETUCB is used to get the appropriate
pseudo device UCB.
If a UCB of the correct type is not available
I
control goes to XJCLWAIT.
JCL Processing - Page 12.8-10
1115
HASP
5.
The DDBTYPE entry in the acquired DDT is set to indicate the output
type according to the SYSOUT clas s specified (print, punch, special
routing print, or special routing punch).
6.
The DDBSTATI entry in the acquired DDT is set to indicate no primary
buffer.
7.
The DDBSTAT2 entry in the acquired DDT is set to indicate an allocatable DCB exists.
8.
The EBCDIC unit address from the DDBUNIT field of the DDT is moved
to the UNIT=xxx internal text establishing the HASP pseudo unit for
forms processing.
9•
10.
The extracted forms field is moved to the DDBFORMS field of the DDT.
The UNIT=xxx text is moved to the HASP text buffer and control goes
to the DCB test section of XJCLDDPR.
JCL Proces sing - Page 12. 8- 11
1116
HASP
12 .8.5
JCL PROCESSING SUBROUTINES
XTCLSHFL - BLKSIZE!LRECL Subroutine
This routine is used to analyze BLKSIZE and LRECL values, if specified,
for both input stream (DD* I DD DATA) and output stream (SYSOUT) statements.
1•
Processing proceeds as described below:
The key status word (XSTATUS) is tested for both BLKSIZE and
LRECL specifications and control goes to the section (XJCLBOTH)
which processes this case.
XJCLBOTH compares the user
LRECL with the maximum/default HASP BLKSIZE (&OBLKSZE or
&IBLKSZE).
If the specified LRECL is greater than the HASP
maximum BLKSIZE, both LRECL and BLKSIZE are set to the value
of the HASP maximum/default BLKSIZE (SOBLKSZE OR &IBLKSZE)
and processing is terminated.
2•
If both BLKSIZE and LRECL have not been specified, a test is
made for BLKSIZE only.
If BLKSIZE has not been specified, the
HASP default BLKSIZE (&OBLKSZE or &IBLKSZE) is used and proces sing is terminated.
3.
If BLKSIZE alone is specified, it is
u~sed
as is and processing
is terminated.
JCL Processing - Page 12.8-12
1117
HASP
XICLDECB - DCB Preservation Subroutine
The purpose of this routine is to investigate DCB parameters specified
on input stream (SYSOUT) and output stream (DD* I DD DATA) statements
and to perform the following functions:
1•
Locates the position of the DCB substring in the Reader/Interpreter
internal text by use of the XINTSCAN subroutine.
2•
Examines all DCB subparameters in the DCB substring.
BLKSIZE
and LRECL specifications are extracted by the XJCLXTRC Routine
for analysis by XTCLSHFL.
3.
All user DCB subparameters, except BLKSIZE and LRECL, are
moved to the HASP text buffer for retention.
4.
When the end of the DCB substring is reached, control returns
to the caller.
XICLXTRC - BLKSIZE!LRECL Data Extractor Subroutine
This routine is used to extract the user specified BLKSIZE or LRECL
data fields from the Reader/Interpreter internal text for later analysis
by XJCLSHFL.
Processing is as follows:
JCL Processing - Page 12.8-13
1118
HASP
1.
The address of the target field for the extracted data is contained
in Register WD.
2•
This field, is set to decimal zeros.
The maximum field length, defined by XJCLMXLT, is used to
extract the low order XJCLMXLT bytes from the Reader text for
insertion into the target field.
3•
Control returns to the caller.
XESTBPCE - Execution Processor PCE Search Subroutine
This routine finds the Execution Processor PCE associated with the
job being processed by the Reader/Interpreter.
1.
The current (Reader/Interpreter) TCB address is found via the
as
2.
Communication Vector Table.
The Execution Processor PCEI s are searched for the peE
corresponding to the current TCB.
3.
The correct PCE address is returned to the caller in the SAVE
Register.
JCL Processing - Page 12.8-14
1119
HASP
XINTSCAN - Internal Text Scan Subroutine
This routine provides two major functions.
The contents of the
Reader/Interpreter internal text with respect to the key values encoded
from the users original TCL statement can be determined.
The position of
a particular key value in the text string can be determined. The general
program logic is:
1.
The pointer to the first key in the internal text is obtained from
XINTKEYS which is set when XJCLSCAN is entered for each JCL
statement.
2•
A test is made on the contents of Register RO. If RO contains
the value of XJSENDKE (a special key value indicating the end
of the text string) then control goes to the section of XINTSCAN
which determines the key contents of the text. Any other value
in RO is as sumed to be a
reques~
to find that particular key in
the text string.
3.
When a particular key search is specified, the subroutine
XFINDKEY is used to obtain successive keys from the internal
text until the requested key is found or until the end of the
string is reached. A successful search is flagged by setting
RO non- zero and placing the pointer to the requested key location in Rl and returning to the caller. If the search is
JCL Processing - Page 12.8-15
HASP
unsuccessful, RO is set to zero before returning.
4.
The key contents of the internal text string is reflected by the
final disposition of the XSTATUS word. XSTATUS bits are set
on as dictated by the key values in the text and the selected
key values defined by the table XSTATDEF • Whenever an
internal text key is found which matches an entry in the
XSTATDEF table, a corresponding bit is turned on in the XSTATUS·
word. Using this scheme, the entire internal text string is
examined and the selected key values, if they exist in the
string, are reflected by XSTATUS.
5.
After the setting of XSTATUS, the address of the end key of the
text string is saved in XINTENDK and the length of the. text is
calculated and saved in XINTEXTL.
XSTATUS is placed in Rl
and control returned to the caller.
XFINDKEY - Next Key Byte Search Subroutine
This routine is used to find the position of the next key byte in the
internal text given the position of the preceding key byte.
Rl points to
the preceding (current) key byte on entry. Rl points to the next key byte
on exit.
JCL Processing - Page 12.8-16
1121
HASP
12.9
HASP/RJE LINE TRANSMISSION TECHNIQUES
The following sections discuss, in detail, the line transmission tech-
niques utilized by HASP to communicate with remote terminals which have
program.ming capabilities.
Transmission formats to mechanical terminals,
such as the IBM 1978, follow the specifications as outlined in the manuals
fa r tho se te rtninals.
HASP/RJE Line Transmission Techniques -
1122
Page 12.9-1
I-IASP
12.9. I
1-7/8 of 8 Encoding
In order to support the entire EBCDIC character set from a remote
station, with no unnecessary degradation of line transmission, a new
encoding technique, inadaquately named 1-7/8 of 8, was devised.
1-7/8
of 8 is (obviously) based on the standard STR-4 of 8 encoding and operates
in the following manner:
The standard 4 of 8 character encoding has been entirely re-defined
such that, the logically highest 48 characters of the 4 of 8 set have been
defined as the 48 most common EBCDIC (BCD) characters.
The rell'laining
16 4 of 8 characters have been reserved for use as 1-7/8 characters to
represent the remaining EBCDIC characters.
These 16 characters are
defined as the hexadecimal digits "0" - llF" so that any of 256 character
combinations ll'lay be repre sented with two (2) 1-7/8 character s.
Since
1-7/8 character s repre sent the nUll'lerically lowe st characte r s of both
the 4 of 8 character set and the EBCDIC character set, the receiving
program may detect 1-7/8 encoding (either before or after 4 of 8 trans1ation) by a single logical compare instruction.
This, then allows for
the intermixing, within a single record, of norm.al character encoding
(1 for 1) and 1-7/8 (2 for 1) with no additional control inform.ation.
Any
character repre sented by 1-7/8 encoding may be reconstructed with a single
MOVE WITH OFFSET instruction in the receiving program.
HASP/RJE Line Transm.ission Techniques -
1123
Page 12.9-2
HASP
Since a very high percentage of all characters contained in a prograIn
source deck are of the 48 character set, normal transmission of jobs
from a remote site will be in a I for 1 character representation with
an occasional "unusual" character represented by 1-7/8 encoding.
This feature also allows the random interspersing of 08/360
object decks in an input stream.
Figure 12. 9. I shows the 1-7/8 of 8
definitions for the 4 of 8 character set.
HASP/RJE Line Transmission Techniques -
1124
Page 12.9-3
HASP
Figure 12.9.1
Graphic
(1-7/8
(1-7/8
(1-7/8
(1-7 /8
(1-7/8
(1-7/8
(1-7/8
(1-7/8
(1-7/8
(1-7/8
(1-7/8
(1-7/8
(1-7/8
(1-7/8
(1-7/8
(1-7/8
0
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
of
of
of
of
of
of
of
of
of
of
of
of
of
of
of
of
1-7/8 of 8 -
EBCDIC
8)
8)
8)
8)
8)
8)
8)
8)
8)
8)
8)
8)
8)
8)
8)
8)
00
01
02
03
04
05
06
07
08
09
OA
OB
OC
OD
OE
OF
FO
Fl
F2
F3
F4
F5
F6
F7
F8
F9
Cl
C2
C3
C4
C5
C6
4 of 8 Conversion Table (48 characters)
4 of 8
OF
17
1B
ID
IE
27
2B
2D
2E
36
3A
3C
47
4B
4D
4E
56
5A
5C
63
65
66
69
6A
6C
71
72
74
78
87
8B
8D
Graphic
EBCDIC
G
H
C7
C8
C9
Dl
D2
D3
D4
D5
D6
D7
D8
D9
E2
E3
E4
E5
E6
E7
E8
E9
4B
4D
4E
50
5C
5D
60
61
6B
7D
7E
40
I
J
K
L
M
N
0
P
Q
R
S
T
U
V
W
X
y
Z
(
+
&
..
~,
I'
)
-
/
,
,
=
(blank)
HASP/RJE Line Transmission Techniques
1125
-
4 of 8
Page 12.9-4
8E
93
95
96
99
9A
9C
A3
A5
A6
A9
AA
AC
Bl
B2
B4
B8
C3
C5
C6
C9
CA
CC
D1
D2
D4
D8
E1
E2
E4
E8
FO
HASP
12.9.2
Character Compression Techniques
HASP
I
when communicating with a remote terminal with programming
capabilities (as indicated at HASPGEN)
I
optionally utilizes a duplicate
character compression algorithm to improve transmission line efficiency.
This algorithm breaks each logical record into one or more character
strings, prefaced by a pair of string control bytes (BCSs) to indicate the
type and extent of the character string.
sess are in the form - IT KL
where:
JL
=
a count describing the extent of the character string.
This count is obviously derived by combining the low
order digit of both SCBs.
Counts on records created
by HASP are one less than actual, while the count on
substrings received by HASP are expected to represent
the actual count.
I
=
a HEX digit which identifies the type of character
string as follows:
I=X'Q' - indicates a normal character string.
(i. e. the
number of characters described by • JL' should be inserted intact when reconstructing the record image.
I=X' F' - indicates that' JL' blank characters should
appear in the reconstructed record image.
Note that no
additional characters are required with this type of
string.
HASP/RJE Line Transmis s ion Techniques
1126
Page 12.9-5
HASP
,,
I=X 4
"
or X C
- indicates that the character
immediately following the SCB s should be
duplicated 'JL' times and inserted into the
image being reconstructed.
K
=
a HEX digit to additionally describe a character substring.
IS
K
presently 0 in all cases but is reserved for future expansion.
Any character in a normal character string or the sample character in non ,blank compre s sion may be encoded in a 1 for 1 repre sentation or in 1-7/8
representation (2 for 1).
The count indicated by 'JL' is a character count,
rather than a byte count, so that a character represented by 2 bytes (1-7/8)
cause s only a count increment of 1.
A logical OUTPUT record from HASP, which may consist of several
SCBs and associated character strings, is terminated by the special SCB
of X'FOFO'.
(This record terminator is not used on records sent to HASP
since a reconstructed record length of 80 may be assumed).
A physical
record, which may consist of several logical records, is terminated by
the special SCB of X'FOFO' immediately following the last logical record.
(Again in the case of input records to HASP the X'FOFO' is notused to
terminate the buffer)
The following examp1e illustrates each of the HASP encoding techniques.
Assume the record below is to be encoded by HASP for trans-
mission to a remote terminal as punched output.
HASP /RJE Line Transmission Techniques
1127
-
Page 12.9-6
HASP
o
00
33
8
55
44
44
o
67
56
43
78
23
******bbbbb ... bbAbTE8T? bbbbb? ? ? ? ? ? ? bbbb .... b
1
Where
b=BLANK=X'40',? =NON 48 Character Set Character=X'6F'
This record, after compression and before 4 of 8 translation, would appear
as below (with 8CB s underlined):
4005 5CF 1 OC0006C ~ 40E 3C5E2E 3060FF0044006060F~
Note that trailing blanks are not encoded by HASP.
After translating to 4 of 8
characters the record would be:
---
-
F02 7D25A4 70F2B 72FOB 18BACB 12B4E 56 IE F02B2B4E5656
- - -----
Note that 8CB characters are encoded, as required, in 1-7/8.
HASP/RJE Line Transmission Techniques
1128
Page 12.9-7
HASP
12.9.3
HASP Transmission Block Encoding
The following pages describe the format of physical records transmitted by HASP to a programmable remote terminal and the format of
phy sical records expected by HASP from such a terminal.
All value s are
indicated in EBCDIC (rather than 4 of 8) for simplicity.
HASP/RJE Line Transmission Techniques
1129
-
Page 12.9-8
HASP
PRrnT RECORD
The first two bytes of a logical print record are used to indicate
carriage control requirements to the remote terminal program.
The
following list indicates all current carriage control characters and their
meaning.
BYTE 1
BYTE 2
=
X'04'
Space immediate "N" spaces
=
X'05'
Skip immediate to channel "N"
=
x'o6'
Space "N" afte r print
=
X'07'
Skip to channel "N" after print
=
X'08' - Suppre s s space
=
X'Ol'
X'03'
=
X'Ol'
X'OF' - "N"
=
X'OO'
if suppress space is indicated above.
- "N"
as described in space commands above.
as described in skip commands above.
Immediately after the carriage control bytes, any number of character
strings constituting the line to be printed may follow, ended by a SCB of
X'FOFO' to indicate the end of record.
(In the case of carriage control only,
the X'FOFO' may immediately follow the carriage control information).
The
above sequence may be repeated as many times as buffer space permits,
followed finally by another X'FOFO' to indicate end-of-buffer.
HASP/RJE Line Transmission Techniques
1130
-
Page 12.9-9
HASP
NOTE:
In order to minimize CPU requirements at the remote terminal,
HASP does not utilize 1-7/8 encoding on print records.
The
16 characters normally utilized for 1-7/8 encoding are defined as
additional print characters, thus yielding a 64 character print
set. An attempt to print a character which is not in this character set results in the substitution of a blank for that character.
Figure 12.9.3 indicates the 4 of 8 definitions for the 64 character
print set. Although data characters are not encoded in 1-7/8
carriage control and String Control bytes may be encoded in
1-7/8 as required.
HASP/RJE Line Transmission Techniques -- Page 12.9-10
1131
I
HASP
Figure 12.9.3
Graphic
~
<
I
!
$
,
l
%
>
?
#
@
II
EBCDIC/4 of 8 Conversion Table (64 characters)
EBCDIC
4A
4C
4F
5A
5B
5E
5F
6C
6D
6E
6F
7A
7B
7C
7F
I-
EO
a
1
Fa
F1
F2
F3
F4
F5
F6
F7
F8
F9
C1
C2
C3
C4
C5
C6
2
3
4
5
6
7
8
9
A
B
C
D
E
F
4 of 8
OF
17
IB
ID
IE
27
2B
2D
2E
36
3A
3C
47
4B
40
4E
56
5A
5C
63
65
66
69
6A
6C
71
72
74
78
87
8B
8D
Graphic
EBCDIC
G
C7
C8
C9
D1
D2
03
D4
D5
D6
D7
D8
09
E2
E3
E4
E5
E6
E7
E8
E9
4B
4D
4E
50
5C
5D
60
61
6B
7D
7E
40
H
I
J
K
L
M
N
0
P
Q
R
S
T
U'
V
w
X
Y
Z
(
+
&
• W
','
)
/
,
I
=
(blank)
HASP /RJE Line Transm.ission Techniques -
1132
4 of 8
8E
93
95
96
99
9A
9C
A3
A5
A6
A9
AA
AC
Bl
B2 ~I~
B4
B8
C3
C5
C6
C9
CA
CC
Dl
D2
D4
D8
E1
E2
E4
E8
Fa
Page 12.9-11
HASP
PUNCH RECORD
A punch record generated by HASP for transmission to a terminal
has exactly the same format as a print record.
The punch record is so
identified by "carriage control" bytes of X·OFOF·.
In order to support
the punching of OS/360 object decks at the remote site, 1-7/8 encoding
is utilized as required.
HASP/RJE Line Transmission Techniques -
1133
Page 12.9-12
HASP
INPUT RECORD
Input records to HASP from a remote te rminal consist only of character strings and their associated SCBs.
Note that no end-of-record
characters are used to separate card images.
The end-of-logical-record
condition is assumed by HASP upon expanding the 80th character of a card
image.
The end-of-buffer condition will be detected by HASP for the byte
count of the data transmitted.
1-7/8 encoding is utilized when required.
HASP/RJE Line Transmission Technique
1134
-
Page 12.9-13.
HASP
12.10
HASP INTERNAL READER
A procedure exists in HASP to allow the introduction of jobs directly
into the HASP job stream from any other program operating in the system.
The following sections describe techniques to accomplish this.
HASP Internal Reader -
1135
Page 12.10-1
HAS P
12.10.1
PROCEDURE FOR USING THE HASP INTERNAL READER
The method of passing jobs to HASP through the internal reader
is by writing "cards" to a pseudo 2520 card punch device.
Standard
OS/360 QSAM put or BSAM WRITE macros may be used to write the "cards"
to the pseudo punch.
The information which would be physically
punched into a real 2520 card punch will be passed to the normal HASP
reader for insertion into the HASP Job Queue.
The last "job" must be
followed by a "card" with an end of file indicator (/*EOF in columns
1-5).
The end of file "card" is used to free the last job a110wirig
it to be scheduled for execution.
12.10.2
I
JCL CONSIDERATIONS
Since any resident (non-swappab1e) system or user task may utilize the HASP internal reader, the method of allocation and controlling the use of the device is via OS/360 Job Control Language.
Fig-
ure 12.10.1 shows an example of an OS/360 IEBGENER utility run which
reads Job Control Language card images from a disk data set passing
the jobs to HASP.
The program that created the data set inserted
the end of file card at the end of the data.
12.10.3
OS/360 - SYSGEN CONSIDERATIONS
Pseudo 2520 punch units must be specified at OS/360 SYSGEN time.
The device addresses selected as pseudo punches must be legal System/
360 addresses but must not be recognized by the physical devices
HASP Internal Reader - Page 12.10-2
1136
HAS P
or control units attached to the System/360.
One device should be
generated for each internal reader allocated at any given time and
I
should correspond to the value of the HASPGEN parameter &NUMINRS.
The following card might be used to generate an appropriate Unit
Control Block.
IODEVICE
I
UNIT=2520,ADDRESS=30l,MODEL=B2
The devices should be descriptively named for ease of allocation.
The following card might be used to name three internal
readers:
UNITNAME
12.10.4
unit=(30l,302,303) ,NAME=INTRDR
DELETION OF CURRENT JOB ON READER
If the submitting task determines that the previous JCL and/or
data of the job currently being punched into the internal reader is
incorrect a deletion card (/*DEL in columns 1-5) may be punched.
This will cause the job currently on the device to be deleted as
though cancelled by the operator.
HASP Internal Reader - Page 12.10-3
1137
HASP
Figure 12.10.1
Sample Use of HASP Internal Reader
IIPASSJOB JOB (OOOQ,OOOO) ,'PASS JOB STREAM',MSGLEVEL=l
IICOPY
IISYSIN
EXEC PGM=IEBGENER
DD DUMMY
IISYSPRINT DD SYSOUT=A
IISYSUTl
DD DSNAME=DAYSWORK,DISP=SHR
IISYSUT2
DD UNIT=INTRDR,DCB=(RECFM=F,BLKSIZE=80,LRECL=80)
1138
HASP
12 . 11
MULTI-LEAVING
"MULTI-LEAVING" is a term which describes a computer-to-computer
communication technique developed for use by the HASP SYSTEM.
gross sense
I
In a
MULTI-LEAVING can be defined as the fully synchronized
pseudo-simultaneous
I
bi-directional transmission of a variable number of
I
data streams between two or more computers utilizing binary synchronous
communications facilities.
The following section describes
of MULTI-LEAVING.
I
in general terms
I
the basic structure
Section 12.10.2 describes the detailed specifications
of the MULTI-LEAVING control information and Section 12.10.3 discl:lsses
the application of MULTI-LEAVING to the HASP BSe/RIE support.
12. 11.1 MULTI-LEAVING Philosophy
The basic element for MULTI-LEAVED
string:.
tr~nsmission
is the character
One or more character strings are formed from the smallest external
element of transmission - the phsyical record. These phsyical records are
input to MULTI-LEAVING and may be any of the classic record types (card
images
I
printed lines
I
tape records
I
etc).
For efficiency in transmission
I
each of these data records is reduced to a series of character strings of two
basic types. These two types are (1) a variable length nonidentical s,eries
of characters and
I
(2) a variable number of identical characters.
of the high frequency occurrance of blank characters
I
a special case is
MULTI-LEAVING 1139 '
Because
Page 12.11-1
HA8P
:made in 2 above when the duplicate character is a blank. An eight bit
control field
I
termed a String Control Byte (8CB)
I
precedes each character
string to identify the type and length of the string.
Thus a string as in 1
above is represented by an 8CB followed by the nonduplicate characters.
A string of consecutive
I
duplicate
I
nonblank characters (as in 2 above)
can be represented by an 8GB and a single character (the 8GB indicates the
duplication count and the character following indicates the character to be
duplicated).
In the case of an all blank character string
I
only an 8GB is
required to indicate both the type and number of blank characters. A data
record to be transmitted is therefore segmented into the optimum number of
character strings (to take full advantage of the identical character compression)
by the transmitting program. A special SGB is utilized to indicate the grouping
of character strings which compose the original physical record.
The receiving
program can then reconstruct the original record for processing.
In order to allow multiple physical records of various types to be grouped
together in a single transmission block
I
an additional eight bit control field
precedes the group of character strings representing the original phys ical
record.
This field
I
the Record Control Byte (RCB)
I
identifies the general
type and function of the physical record (input stream
I
print stream
I
data set
etc). A particular RCB type has been designated to allow the passage of
control information between the various systems. Also, to provide for
. simultaneous transmission of similar functions (i. e. multiple input streams
1140
I
I
HAS P
etc) a stream identification code is included in the RCB. A second 8 bit
control field, the Sub- Record Control Byte (SRCB) is also included immediately
following the RCB.
This field is utilized to supply additional information
concerning the record to the receiving program.
For example, in the trans-
mis sion of data to be printed, the SRCB can be utilized for carriage control
inf orma tion .
For actual MULTI-LEAVING transmission, a variable number of records
may be combined into a variable block size, as indicated previously (i. e.
(RCB SRCB, SCB1, SCB2 , ... SCBn, RCB, SRCB, SCBl , •.• etc).
I
Th~ MULTI-
LEAVING design provides for two (or more) computers to exchange transmission
blocks, containing multiple data streams as described above
leaved fashion.
I
in an inter-
To allow optimum use of this capability, however, a system
must have the capability to control the flow of a particular data stream while
continuing normal transmission of all others'.
This requirement becomes
obvious if one considers the case of the simultaneous transmission of two
data streams to a system for immediate transcription to physical I/O devices
of different speeds (such as two print streams) .To
provid~
for the metering
of the flow of individual data streams, a Function Control Sequence (FCS)
is added to each transmission block.
The FCS is a sequence of bits, each
of which represent a particular transmission stream.
The
receiv~r
of several
data streams can temporarily stop the transm.issionof a particular stream by
setting the corresponding FCS bit OFF in the next transmission to the sender
of that stream.
The stream can subsequently be resumed by setting the bit
ON.
MULTI-LEAVING -
1141
Page 12.11-3
HASP
Finally, for error detection and correction purposes, a Block Control
Byte (BGB) , is added as the first character of each block transmitted.
The
BCB, in addition to control information, contains a modulo 16, block sequence
count. This count is maintained and verified by both the sending and
receiving systems to exercise a positive control over lost or duplicated transmis sion blocks.
In addition to the normal binary synchronous text control characters
(STX, ETR, etc), MULTI-LEAVING utilizes two of the BSC control characters -ACKO and NAK. ACK 0 is utilized as a "filler" by all systems to maintain
communications when data is not available for transmission. NAK is used
as the only negative response and indicates that the previous transmission
was not successfully received.
Figure 12. 11 . 1 indicates the format of
a typical MULTI-LEAVING transmission block.
MULTI-LEAVING -
1142
Page 12.11-4
HASP
Figure 12.11.1 -
Typical MULTI-LEAVING Transmission Block
bytes
DLE
BSC Leader (SOH if no trans parency feature)
STX
BSC START-OF-TEXT
BCB
Block Control Byte
FCS
Function Control Sequence
FCS
Function Control Sequence
RCB
Record Control Byte for record 1
SRCB
Sub- Record Control Byte for record 1
SCB
String Control Byte for record 1
DATA
Character String
SCB
String Control Byte for record 1
DATA
Character String
SCB
Terminating SCB for record 1
RCB
RCB for record 2
SRCB
SRCB for record 2
SCB
SCB for record 2
DATA
Character String
SCB
Terminating SeB for record 2
RCB
Transmission Block Terminator
DLE
BSe Leader - (SYN if no transparency feature)
ETB
BSe Ending Sequence
MULTI-LEAVING -
1143
Page 12.11-5
HASP
12.11.2 MULTI-LEAVING Control Specification
The following pages indicate the bit-by-bit definitions of the various
MULTI- LEAVING control fields and notes concerning their utilization.
-MULTI::-L-EAVING -
1144
Page 12. 11- 6
HASP
String Control Byte (SCB)
10
K L
J J J J JI
o
7
Usage:
Control field for data character strings
Bit Meanings:
o
0 =
End of record (K L J J J J J = 0)
a
1
=
All Other SCB's
K =
0
=
Duplicate Character String
L
=
0 =
Duplicate Character is blank
L
=
1
Duplicate Character is non blank
(and follows SC B)
=
=
JJJJJ
K =
1
::t:
Duplication count
Nonduplicate Character String
=
LJJJJJ
=
Character String Length
NOTES:
1.
If KLJJJJJ
=0
and 0
= I,
SCB indicates record is continued in next
transmission block.
2.
Count units are normally 1 but may be in any other units.
The units
utilized may be indicated as function control sign-on or dyqamically
in the SRCB.
MULTI-LEAVING
1145
~
Page 12.11-7
HASP
Re?ord Control Byte (RCB)
10IIITTTTI
o
7
Usage:
To identify each record type within a transmission block
Bit Meanings:
o =
0
=
End of transmission block (I I ITT T T
o =
1
=
All Other RCB s
= 0)
I
III
=
Stream identifier - used to identify streams of
multiple identical functions (i. e. multiple print
streams to a multiple printer terminal, etc.)
III
=
Control information if TTTT
=
000
=
Reserved for future expansion
=
001
=
Request to initiate a function transmission
(Prototype RCB for function in SRCB)
=
010
=
Permission to initiate a function transmission
(RCB for function contained in SRCB) •
TTTT
= 011 =
Reserved
=
Reserved
100
=
=0
(control record)
= 101 =
Available for local modification
= 110 =
Available for local modification
=
III
General Control Record (type indicated in
SRCB)
=
Record type identifier
=
0000
=
=
= 0001 =
Control record
Operator message display request
MULTI-LEAVING -
1146
Page 12.11-8
HASP
TTTT = 0010 = Operator command
=
0011
= , Normal
=
0100
=
Print record
=
0101
=
Punch record
=
0110
=
Data set record
=
0111
=
Terminal mes sage routing request
=
1000
1100
=
= 1101
1111
= Available for local modifications
input record
Reserved for future expansion
MULTI-LEAVING -
1147
Page 12.11-9
HASP
Slib-Record Control Byte (SRCB)
10
o
8 8 8 8 8 8 81
7
Usage:
To provide supplemental information about a record
Bit Meanings:
a
SSSSSSS
=
1
(Must always be ON)
=
Additional record information - actual content
is dependant on record type. Several examples
are listed below --
SRCB for General Control Record
(character)
o
7
Usage:
To identify the type of generalized control record
Bit Meanings:
character
=
A
=
Initial terminal SIGN-ON
:c
B
=
Final terminal SIGN-OFF
=
C
=
Print initialization record
=
D
=
Punch initialization record
=
E
=
Input initialization record
=
F
=
Data set transmission initialization
= G
=
System configuration status
MULTI-LEAVING -
1148
Page 12.11-10
HASP
=
H
=
=
I
R
=
Reserved
=
S
Z
=
Available for local modification
Diagnostic control record
SRC B for Print Records
10
M C C C C
eel
o
7
Usage:
To provide carriage control information for print records
Bit Meanings:
o
=
1
(Must always be ON)
M
=
0
=
Normal carriage control
= 1 = Reserved for future use
CCCCCC =
Carriage control information
=
1000NN =
Space immediately NN spaces
=
IINNNN =
Skip immediately to channel NNNN
=
OOOONN =
Space NN lines after print
=
01XXXX
= Skip to channel NNNN after print
=
000000
= SUPPRESS SPACE
MULTI-LEAVING -
1149
Page 12.11-11
HASP
SRCB for Punch Records
IOMMBRRssl
o
7
Usage:
To provide additional information for punch records
Bit Meanings:
o
=
1
SS
=
Punch stacker select information
B =
M
(Must always be ON)
0
=
Normal EBCDIC card image
=
1 =
Column Binary card image
=
00 =
SCB count units =
1
=
01
=
SCB count units -
2
=
10 =
SCB count units =
4
=
11
RR =
=
Reserved
Reserved for future expansion
SRCB for Input Record
IOMMBRRRRI
o
7
Usage:
To provide additional information for input records
MULTI-LEAVING -
1150
Page 12.11-12
HASP
Bit Meanings:
o =
M =
RRRR
1
(Must always be ON)
00 =
8CB count units =
1
=
8CB count units =
2
8CB count units =
4
=
01
=
10 =
=
11
=
Re served
=
Reserved
, SRCB for Terminal Message Routing Record
IOTTTTTTT
o
7
Usage:
To indicate the destination of a terminal message
Bit Meaning s:
o =
1
(Must always be ON)
TTTTTTT
=
Remote system number (1 ~ T ~ 99)
TTTTTTT
=
Remote system group
TTTTTTT =
0 =
I
as HASPGENed (100 ~, T ~ 127)
Broadcast to all remote systems
MULTI-LEAVING -
1151
Page 12.11-13
HASP
Function Control Sequence (FCS)
loS
R R ABC Dr 0 T R R W X Y Z
o
7
8
I
15
Usage:
To control the flow of individual function streams
Bit Meanings:
a = 1 (Must always be on)
S = 1 = Suspend all stream transmissfon :(WAIT-A-SIT)
0
Remote console stream identifier
R
=
=
ABCD ... WXYZ
=
Various function stream identifiers (oriented only to
.recipient)
-
Normal print (or
-
Normal punch streams
-
Other functions
T
NOTE
-
=
Normal state
=
Reserved· for future expansion
input)~
A, B', C, ...
=
Z Y X, .••
I
I
=
a bit on =
continue function transmis sion
bit off'
suspend function transmission
=
MULTI"'LEAVING -
1152
Page 12.11-14
HASP
Block Control Byte (BCB)
10
X X X C C
ccl
a
7
Usage:
Transmis sion block status and sequence count
Bit Meanings:
o
=
1
(Must always be ON)
ecce =
Modulo 16 block sequence count
xxx =
Control information as follows --
=
000
=
Normal Block
=
001
=
Bypass sequence count validation
=
010
=
Reset expected block sequence count to
=
011
=
Reserved
=
100
= Reserved
::;::
101
= Available for user modification
= 110
= Available for user modification
=
= Reserved for future expansion
III
MULTI-LEAVING -
1153
ecce
Page 12.11-15
HASP
12.11.3 MULTI-LEAVING In BSC/RIE
The p~evious sections have grossly outlined the specifications of a
comprehensive, MULTI- LEAVING communications system. While the HASP
support for programmable BSe workstations
the MULTI-LEAVING design
I
iscompl~tely
consistent with
it does not utilize certain of the features
provided in MULTI-LEAVING. These features not utilized include:
1.
The transmission of record types other than print, punch,
input
2.
I
console and control is not supported.
The only general control record type utilized is the terminal
SIGN-ON control.
utilized~
3.
Only SeB count units of 1 are
4.
No support is included for column binary cards .
MULTI-LEAVING -. Page 12.11-16
1154
HAS P
12.12
HASP 2770 AND 3780 RJE SUPPORT
12.12.1
2770 Configuration
The basic 2770 with standard keyboard and either EBCDIC or USASCII
code is supported.
Optional supported devices are the 2502 Card Reader,' 2213 Printer,
2203 Printer, and 545 Output Punch. The printer must be attached
to OUTPUT PRINTER. The card punch must be attached to OUTPUT 2.
EBCDIC Transparency, Printer Horizontal Format Control, Space
Compression/Expansion, and any of the three buffer sizes (128, 256,
512) are supported by HASP programming. The Multipoint Data Link
Control feature and Identification features must not be present.
All other devices and features may be attached, but are either not
affected by programming or not supported.
I
12.12.2
I/O Formats
Although HASP formally supports only the keyboard, card, and printer
I/O devices listed previously in Section 12.12.1, the basic design
of the IBM 2770 (i.e., media formats independent of transmission format) may make it possible for individual installations to use other
I/O devices. This must be done only after careful analysis, design
and testing by the customer and local IBM Representative to establish the feasibility of the proposed device usage in the customer's
environment. Refer to the SRL GA27-30l3, especially pages 2772-9,
CU-2,3 and appropriate device sections. Also, the following descriptions of HASP's handling of input and output transmission blocks from
and to the 2770 will aid in analysis of other device usage possibilities.
Input
Input blocks to HASP from any device on the 2770 are transformed
into 80 character records of an as job stream, according to one of
the following two rules:
1.
If the block is non-transparent, it is interpreted as
one or more records of 80 or less data characters, each
ended by an IRS character which does not become part of
the record processed by as. Compressed blanks, indicated
by the IGS characters, are detected and expanded prior to
processing by OS, if the HASPGEN parameter &BSHPRES=YES.
HASP 2770 RJE Support - Page 12.12-1
1155
H A"-'S P
I
I
I
2.
If the block is transparent, it is interpreted as one or
more records of exactly 80 data characters. No record
ending characters are recognized.
,"Transparent and non-transparent input blocks may be mixed, in any
order, in any job or series of jobs transmitted to HASP. Proper
handling of compressed blanks in non-transparent input blocks and
proper handling of transparent input blocks are not dependent upon
the setting of the RMTnn HASPGEN parameter describing the particular
terminal.
Therefore, to' use other input devices, the input medium and device
must conform to the above. The device may be connected to any INPUT
position as long as that position is switched on before transmission
is initiated. Input which does not conform to these rules will cause
unpredictable deblocking when received by HASP and probably error
messages or incorre"ct results when processed by OS or the user's
program.
If the input medium/device cannot produce an IRS record ending character or if control characters are used as data, then the transmission must be unblocked and/or possibly transparent. The processing
program must handle as data any record ending character other than
IRS which the medium/device may produce."
An input medium other than cards may not be suitable for the preparation and transmission of OS JCL cards (e.g., //ANY JOB ••• up to
//SYSIN DD *) which are required preceding data in an OS input job
stream. The keyboard may be used to transmit such cards, followed
by data from the other device, using an operational procedure similar to that described for the keyboard and card reader on page 11
of the 2770 Operator's Guide.
Output
Output from HASP to the 2770 is in two forms: one intended for
printing~ the other for punching cards.
These outputs are produced
during OS execution of jobs by using the disposition SYSOUT= on DD
cards. The decision to produce printed or punched output from a
given SYSOUT class is controlled for the entire system by the
HASPGEN parameters $$x, as described in Section 7.
I
Output block maximum length is 128, 256, or 512 bytes, as indicated
the RMTnn HASPGEN parameter. Output records do not span transmission block boundaries. Each printed or punched output job is ended
by an EOT transmission.
HASP 2770 RJE Support - Page 12.12-2
1156
HAS P
Printed Output
Printed output is always sent as non-transparent blocks. All data
characters less than X'40' are translated to X'OO', or if the
&PRTRANS parameter is set to YES, all non-printing characters are
translated to X'40'. The first block ofa job contains the component selection character DC1. One or more variable length records
are sent in each block. Each record begins with the two character
ESC x carriage control sequence, has data characters up to the maximum specified for Printer Width in the RMTnn parameter, and ends
with the IRS character.
If indicated by parameter RMTnn (and supporting settings of &BSHTAB
and &BSHPRES) , blanks are compressed and encoded using either the
HT or IGS characters. Encoding by HT sets electronic tabs, every
10 columns beginning at column 11. This can be changed by altering
internal assembly variable &HTDIST.
The listing content for each job is the same as for all jobs printed
by HASP: beginning and ending separator pages (number of separator
lines controlled for all remotes in the system by the $TPIDCT parameter) , HASP System Log, OS System Messages (JCL, etc.) and any
printed SYSOUT data sets.
It is probably not very practical to direct printed output to another
device for output data purposes, because of the inclusion of separator
pages, messages, etc. The material could be directed to another medium (e.g., paper tape) for later listing offline or on another machine; however, because only the printer can be attached to the OUTPUT PRINTER position, HASP would have to be modified to use other than
DCl for print component selection. This would be a trivial one card
modification if all 2770s in the system were configured and used the
same way, but more difficult if not.
Punched Output
Punched output is sent as transparent blocks if the RMTnn parameter
indicates that the Transparency feature is present. In this case,
the component selection character DC2 is sent alone in a non-transparent block, at the beginning of the job. All other blocks are
transparent and contain one or more records of exactly 80 data characters, without any record ending characters.
I
I
If Transparency is not indicated by the RMTnn parameter, all punched
output data characters less than X'40' are translated to X'OO'. Only
non-transparent blocks are sent, with the DC2 in the first block.
Each block contains one or more variable length records. Blanks are
compressed and encoded using the IGS character, if indicated by RMTnn
(and supporting &BSHPRES). Each record contains 80 or less data
characters and ends with the IRS character.
HASP 2770 RJE Support - Page 12.12-3
-1157
HAS P
Punch job content is: separator card (described in Section 12.5.1),
punched SYSOUT data sets, and one blank card at the end of the job.
_,Blank cards may be produced at the end of each SYSOUT data set by .
.some OS access methods, but these are simply transmitted as data by
HASP. A second blank card at the end of each job is produced at the
545 Output Punch by a mechanical eject when EOT is received.
Punched output, except for separator and terminal blank cards, is
pure data output whose content is controlled completely by the application program execution. Therefore, it may be practical to direct
punched output to another device connected to the OUTPUT 2 position,
or other positions if HASP is appropriately modified to use other
than DC2 for punch component selection. If the non-transparency,
variable length record, form of punched output described above is
considered more desirable for the output device in question, HASP
may be forced to produce it by omitting Transparency in the RMTnn
parameter, even if the 2770 has the Transparency feature. This will
not prevent the 2770 from transmitting transparent input blocks to
HASP.
12.12.3
3780 Support
The previous description of 2770 support applies to the 3780 also,
with minor exceptions: The 3780 is assumed to have standard 512
byte buffers, card reader, printer, but no keyboard or card punch.
Component selection characters are not sent to the 3780. Although
features Transparency, Horizontal Format, and Compression are
standard; use of them for output is controlled by the RMTnn parameter, as with 2770.
HASP 2770 RJE Support - Page 12.12-4
1158
HAS P
12.13
HASP EXECUTION BATCH SCHEDULING
This feature is a modification of normal HASP scheduling of jobs
into logical partitions for execution by OS. The purpose is to allow the system to realize performance improvement by avoiding unnecessary OS Job Management overhead between "jobs" or "transactions"
processed by an appropriate batch processing program; while maintaining the flexibility of having these "jobs" or "transactions" submitted
to HASP independently, coming from possibly differing input sources,
having differing printed and punched output routing, and with separate
accounting for each job.
12.13.1
Batch Processing Program Characteristics
The processing programs to be used with the Batch Scheduling Feature
of HASP may cover a wide variety of application areas such as:
•
•
•
Compile and go debugging compilers
File inquiry programs
Hardware or software system emulators
However, a particular program to be used in the batch scheduling
mode must have certain characteristics:
•
It must read all user input from a single sequential
data set.
•
It must recognize a standard OS JOB card or its own control card to determine the beginning of a "job".
•
It must recognize a standard OS null JCL card (/1 followed
by 78 blanks) or its own control card to determine the
ending of a "job".
If it is necessary that the batch processing program have a WTOR
outstanding past the ending of one of its "jobs", the HASPGEN option &NUMCONS=O must be used.
The batch processing program will receive an actual end-of-file condition when a card having $$ in columns 1 and 2 is read while processing a "job". The program may continue to the next logical subfile by a variety of techniques.
It may simply reset appropriate
bits in as I/O control blocks and continue reading or it may CLOSE
the data set. The data set may then be re-OPENed to continue reading at the card following the $$ card.
It is desirable that the program process "jobs" or "transactions" of
relatively short duration.
If not, the saving in as Job Management
overhead between successive jobs may not be a large enough percentage
of total job execution time to justify use of this feature.
HASP Execution Batch Scheduling - Page 12.13-1
1159
HAS P
12.13.2
Submission Of Batch Jobs
To use a batch processing program under the Batch Scheduling
Feature of HASP, the user simply constructs jobs as follows:
The first card of each 'should be a standard HASP/OS JOB card,
which includes a CLASS=x parameter, where x is the class (installation defined) indicating which batch program is to process the
job.
The accounting field is interpreted by HASP just as for
non-batch jobs.
No other JCL is used. All other cards should be control cards,
source cards,~ata cards, etc., as required by the batch program.
These will be read by the batch program just as if they had been
placed in a DO * data set and the batch program had been invoked
by standard JCL.
If the batch program requires it, each logical
sub-file should be terminated by a card having $$ in columns 1
and 2.
12.13.3
Batch Scheduling Process
Special actions take place when HASP recognizes that a batch job
has been selected for execution.
If the batch program is not already active in the logical partition
for which the job was selected, then HASP generates and sends to
the OS R/I an internal job which uses JCL from proclib (see 12.13.4)
to invoke the program.
The entire user job as submitted (JOB card,
all other user input) followed by two null JCL cards added by HASP
is allocated as an input data set to the batch program.
If the batch program is already active and simply waiting for
another job, then HASP makes the input data set allocation as above
and processing begins immediately, without any use of OS Job
Management.
Job termination is detected by the batch program when it reads its
own ending control card or one of the null JCL cards added by HASP.
After writing any remaining SYSOUT data for the completed job, the
batch program simply attempts to read ahead in its input file for
another job. HASP detects this condition, temporarily forces the
batch program into a wait state, and does its job termination actions
for the job (flush output buffers, release input SPOOL space, queue
job for printing, etc.).
The batch program remains in the logical
partition.
When a batch program is waiting in a logical partition, HASP job
selection is altered.
Instead of scanning for all classes eligible
to execute in that partition, HASP first tries to start another job
of the same class as the batch program still in the partition.
If
HASP Execution Batch Scheduling - Page 12.13-2
1160
HAS P
successful, processing can begin immediately as described above.
If no more jobs of the same class are available to execute, then
all other job classes of the partition are scanned in order.
If
a job is found, HASP internally cancels the batch program and
normal scheduling takes place using OS Job Management.
If no jobs
of the other classes are found, then the partition remains idle
awaiting availability of a job in any of its classes.
If a job
becomes available in the class of the batch program still in the
partition, processing begins immediately.
If a batch program ends (abend or normal return to OS) ,HASP
detects this as a non-batch termination in the partition. OS Job
Management will be used to re-invoke the batch program when another
job for its class is selected.
Use of the operator commands $PI or $PIn will cause HASP to cancel
an idle batch program when the partition(s) becomes drained.
12.13.4
Installing Batch Scheduling
The Batching feature is included in HASP by setting the &XBATCHC
HASPGEN parameter equal to a list of job classes to be processed
by the rules described above.
The &XBATCHN parameter should also
be set (see descriptions of these two parameters in Section 7).
Each batch class should be used to represent one batch processing
program. Each batch class should be made eligible to execute in
one or more logical partitions, by setting the &CLS(n) HASPGEN
parameters or by use of the $T operator command.
The batch processing program for each class must be available in
loadable form somewhere in the system.
For each combination of batch class and logical partition in which
it may execute, there must be a procedure in SYSl.PROCLIB whose
name is "nnnnncid"j where nnnnn are the five characters assigned
to &XBATCHN, c is the particular batch job class (one of the list
assigned to &XBATCHC), and id is the one or two character logical
partition identification set by the parameters &PID(n). These
procedures actually call the batch processing programs for each
class and define all data sets other than the user input data set.
The procedures may either be single step or may have preliminary
steps before the single step which processes the user jobs. That
step must have a stepname of GO.
The processing program invoked
by this step must read its input from a ddname SYSIN or the procedure must refer to OONAME=SYSIN on a DO card whose name is the
one used for input by the processing program.
It is recommended
HASP Execution Batch Scheduling - Page 12.13-3
1161
HAS P
that the DCB parameter BUFNO=l be included on any SYSOUT data sets
in a procedure. This will help to insure that HASP has actually received all output produced by the batch program for a job or transaction, when the program is suspended while trying to read ahead to
the next job.
The special forms field in SYSOUT must not be used in any batching
procedure. If OS output spooling Ii1Usea-with any SYSOUT (see
HASPGEN parameter $$X), the output is not queued for the OS writer
until the batch processing program terminates, which is not necessarily when any batch job terminates.
If a given batch class is eligible to execute in more than one logical partition,- the requirement for a separate procedure name for
each class-partition combination may be satisfied by alias names of
a single procedure, or by actual separate procedures which may specify different region sizes, work files, etc.
The following example shows the internal job which HASP would generate to initially load a program to process batch class X jobs, in a
partition whose &PID(n)=3, assuming the default setting for &XBATCHN.
JOB 1,SYS,MSGLEVEL=1
IIFAKE EXEC $$$$$X3
IIGO.SYSIN DD DATA,DCB=BUFNO=l
11$$$$$X3
II
This job would call a procedure as shown. The following is an example of a procedure which an installation might use for a simple file
inquiry program which reads inquiry input from SYSIN, interrogates a
file, and prints responses to SYSPRINT.
IIGO EXEC PGM=FINDPART
IISYSPRINT DD SYSOUT=A,DCB=(BLKSIZE=12l,BUFNO=1)
IIPARTFILE DD DSN-PARTFILE.MASTER,DISP=SHR
IISYSUDUMP DD SYSOUT=A
This procedure would be placed in SYSl.PROCLIB with the name $$$$$X3.
HASP Execution Batch Scheduling - Page 12.13-4
1162
HAS P
12.14
HASP OVERLAY PROGRAMMING RULES
The following comments summarize the rules for coding and using
"overlayable code" in HASP. All rules apply to use of any control
sections created by use of the $OVERLAY macro, even if the code so
produced is optionally made permanently resident as part of the
overlay build process. HASP Overlay does not use any overlay
facility defined elsewhere in OS/360 documentation. More precise
details of Overlay Macros syntax, Overlay Build process, Overlay
Service and Overlay Roll internal logic are given in Sections
9.7, 10.2.2.3, 4.20 and 5.16.
12.14.1
Creating Overlay Control Sections
The beginning of a portion of HASP executable coding or tables to
be made overlayable is indicated by the $OVERLAY macro.
By convention, the name field begins with "HASP" and continues with up
to four more characters. The fifth character (first after "HASP")
usually indicates the Processor of which the overlayable code is
a part~ e.g., R for read, X for execution, P for print/punch, etc.
A specific example is "HASPXJI1", the name of the first of two
overlays used by the HASP Execution Processor for job initiation
actions. The name coded with $OVERLAY will be defined at the first
location coded by the programmer after the $OVERLAY and will be
used to derive a name for the control section created.
The operands of $OVERLAY specify the priority for use of overlay
resources and, in conjunction with the HASPGEN parameter &OLAYLEV,
whether the code created is to be actually disk or main memory
resident during HASP operation.
The $OVERLAY macro is a functional replacement for CSECT, USING,
and BALR or L when creating a HASP overlayable control section.
$OVERLAY creates an actual assembly control section and indicates
local addressability in register BASE3. Overlay Service and Roll
functions insure that the proper base value is loaded into BASE3
when an overlay section is being used.
An overlay control section's coding may be terminated and all
effects of a previous $OVERLAY cancelled in one of two ways.
Another overlay may be begun by a new $OVERLAY macro. Non-overlay
coding may be resumed by DROPing register BASE3 and re-establishing
an appropriate CSECT.
If it is desired to add more coding to a previously terminated
overlay section, the actions in the following example must be performed.
&xyz is a properly declared variable symbol. HASPabcd. is
the overlay name chosen by the programmer. Other·symbols are
defined in standard HASP assemblies. The second statement must
be placed after the $OVERLAY defining the overlay section to be
resumed, before another $OVERLAY is used.
HASP OVERLAY Programming Rules - Page 12.14-1
1163
HAS P
HASPabcd
&xyz
$OVERLAY 12,0
SETC '&OSECT'
&xyz
CSECT
'USING
12.14.2
Calling
(original definition)
(later additional code)
HASPabcd-OACEPROG+BUFDSECT,BASE3
Ov~rlay
Routines
The three executable macros $LINK, $XCTL, and $LOAD cause an overlay routine to be made available for use in addressable memory.
The single operand of each of these macros gives the name of the
overlay to be used, either directly or by providing (in register
form) the address of a $OCON macro which gives the name. The name
referenced is that used with a $OVERLAY macro to create the overlay
routine.
The overlay control section ($OVERLAY and following code)
may be in the same or a different HASP assembly as a macro which
calls it.
The $LINK and $LOAD macros must be physically placed in non-overlay
CSECTs and executed only when no other overlay routine is being
used, i.e., nested calling of overlays is not defined. With $LINK,
program control is eventually passed to the first instruction after
$OVERLAY of the called routine. The address of the caller's next
~nstruction is saved for later return.
$LOAD returns control to
the next instruction after $LOAD when the routine is available in
memory.
$XCTL relinquishes use of an overlay routine, previously called by
$LINK or $XCTL, and calls a new overlay routine which is entered
as if called by $LINK. Return address saved by the original $LINK
is not altered.
$XCTL must always be executed when an overlay is
in use, but may physically be in an overlay routine or in non-overlay
coding, subject to the requirements of 12.14.3.
$RETURN and $DELETE both relinquish use of an overlay routine, which
must be in use when they are executed.
These macros have no
operands; the routine released is the only one in use at the time.
$RETURN causes control to pass to the next instruction after the
$LINK previously executed by the Processor from non-overlay code.
$RETURN, like $XCTL, may physically reside anywhere.
$DELETE must
physically reside in non-overlay code and is valid only after a .
routine was previously called by $LOAD. Control continues following
$DELETE, after use of the overlay routine has been released.
Overlay routines may be called only by HASP Processors operating
under the primary HASP TCB, HASP Dispatcher, and PCE control (see
Section 5.1). Overlay routines may not be called in exits from
the Asynchronous Post Processor (see Section 4.8).
HASP OVERLAY Programming Rules - Page 12.14-2
1164
HAS P
12.14.3
Coding While Using Overlay Routines
On entry to an executable overlay by $LINK or $XCTL or after loading
an overlay with $ LOAD , the caller's registers RO-R7 and R9-R13
are preserved.
However, registers BASE3 (same as R8 or WG in unmodi·fied HASP)·, LINK, R15 and the condition code are destroyed and are
not later restored.
While an overlay routine is being used (after
the execution of $LINK or $LOAD but before the execution of $RETURN
or $DELETE), the program must not alter the value of register BASE3.
Coding in an overlay routine is "covered" by local addressability
provided by $OVERLAY. Coding physically outside an overlay but
referring to it (usual case after a $LOAD) must be "covered" by a
USING like that in the example in 12.14.1. Other addressability
(e.g., BASEl, BASE2) remains in effect if not dropped and may be
used.
Program control may be transferred out of or into an overlay routine
and its storage may be retrieved, as long as overlay control of that
routine is in effect (has not been released by $RETURN, $DELETE,
or $XCTL to a new routine) and proper addressability is maintained.
References to locations in an overlay routine from physically
outside the overlay at any other time are illegal.
Relocatable valued A or V type constants must not be physically
coded in overlay routines.
Such constants may be coded in non-overlay CSECTs and referenced from overlay routines.
Relocatable A or
V type literals may be coded if the literal pool containing them
is not physically in an overlay routin~. An A or V constant or
Ii teral containing an "un-paired" ·(see As sembly Language SRL)
reference to a symbol defined in an overlay routine is always
illegal, regardless of location.
When use of an overlay routine is released by $RETURN or $DELETE,
only the LINK and BASE3 registers are destroyed. All other registers
and the conditi~n code are preserved as set prior to the execution
of these macros.
Total size of all coding in an overlay routine must not exceed the
value of the internal assembly variable &OLAYSIZ, currently set
at 1024 bytes in unmodified HASP. An error message will be produced
during the Overlay Build process for each routine which violates
this restriction.
HASP OVERLAY Programming Rules - Page 12.14-3
1165
HAS P
12.14.4
Overlay Location Independent Coding
Whenever a HASP Processor which is using an overlay routine
executes $WAIT, regardless of the physical location of the
$WAIT, the Overlay Roll Processor may pre-empt the Overlay Area
for other ·use. When control is returned to the Processor following the $WAIT, the overlay routine may have been re-read from
direct access, destroying all self-modification or temporary
storage in the overlay, and may be in a different Overlay Area,
making all address values relative to the overlay routine's
location invalid (in registers or elsewhere).
The first effect above (destruction of temporary storage) is
similar to the effect on single (non-re-entrant) temporary
storages in non-overlay coding used by multiple Processors when
$WAIT is executed.
The effect on overlay storage may take place
when only one peE is using an overlay routine.
Re-entrant
temporary storage (e.g., in a PCE workarea) or re-construction
from known values after $WAIT will avoid errors due to this possible "re-freshing" of overlay routines.
The second effect (changing overlay location) is, of course,
peculiar to use of overlay routines.
System Overlay Service and
Roll logic automatically makes proper adjustments to registers
BASE3 (overlay routine base value) and RIS ($WAIT re-entry
address), if the $WAIT is physically in the overlay routine.
Other address values relative to an overlay routine are usually
created in registers by use of instructions such as LA (with
BASE3 as base), BAL, or BALR (the last two if physically in an
overlay routine).
These registers should be "relativized" prior
to $WAIT by "SLR n,BASE3" instruction(s) and "absolutized" after
$WAIT by "ALR n,BASE3" instruction(s). Equivalent techniques may
be created for other coding situations.
Certain HASP macros which call services subroutines represent a
"hidden" possible $WAIT. They must be treated as equivalent to
$WAIT in all cases previously described.
Specifically, any macro
for which the keyword parameter OLAY=YES is defined (see Section 9)
represents a hidden $WAIT, regardless of physical location.
The
OLAY=YES is coded only if the macro physically exists in an overlay
routine. Macro expansion and service subroutine exit coding handle
possible adjustment of the LINK register.
The services subroutines
assume that all parameter address values (in RO, Rl, or RlS) are
not relative to an overlay routine. Other addresses rel~tive to
an overlay routine must be adjusted before and after the service
macro call by the caller.
The $WTO macro is a special case.
It represents a hidden $WAIT
unless WAIT=NO is coded.
If coded physically in an overlay
routine, WAIT=NO must be coded.
It may be coded physically outside
an overlay routine without WAIT=NO, but then registers must be
treated as for macros which have OLAY=YES defined.
HASP OVERLAY Programming Rules - Page 12.14-4
1166
HAS P
12.15
HASP WITH OS CONSOLE SUPPORT
The following sections describe the HASP routines which are provided for the OS console support interface selected by specifying
the HASPGEN parameter &NUMCONS=O (see Section 7.1).
12.15.1
General Description
The functions included in HASP to provide an interface with the
OS console support are in the following major areas:
Initialization procedure
SVC 34 processing
SVC 35/36 processing
WTO subtask
Each of these areas is described in greater detail in the remaining
sections of this appendix.
The combined overall functions of the interface is to allow operator
commands (both OS and HASP) to be entered from any OS supported
console input device without special operator action and to
display the commands and associated information in accordance to
a combined OS and HASP criteria.
In addition, the unique HASP
features of abbreviated replies to WTORs and the HASP System
Log of WTO messages as part of the programs printed output are
included (subject to the restrictions noted in the description
of the &NUMCONS variable in Section 7.1).
12.15.2
Initialization Procedure
Preparation for the &NUMCONS=O option at the time HASP is invoked
includes the following functions in the INIT modules:
1.
Information concerned with the UCM base is extracted and
stored in the resident CON module.
Included are:
address
of UCM save area; TCB address of communication task; address
of UCM base fields containing address of first UCM entry,
size of each UCM entry, address of last UCM entry; contents
of Mode flag byte from UCM base.
The source of this information is OS release dependent.
See the OS MVT Supervisor
PLM for additional information on the UCM.
2.
The address of the HASP TCB is stored in CON to facilitate
OS POSTing of the HASP task.
HASP With
1167
as
Console Support - Page 12.15-1
HAS P
3.
The servicing of SVC 35 and, conditional on the HASPGEN parameter &WTLOPT, SVC 36 by OS is diverted to HASP by changing the
contents of the SVC table to enter the XEQ modules lOS interface
section and, subsequently, the CON module code $WTOSVC. If the
OS System is MFT, the SVC table is changed to indicate a Type 3
resident routine. If the OS System is MVT, the SVC table is
changed to indicate a Type 2 SVC. In both cases the original
SVC table contents are saved in the HCT prior to the indicated
changes. Note: The SVC table for MFT must contain four byte
entries in order to indicate a Type 3 resident SVC.
4.
An ATTACH is issued to the BRI module which executes a branch
to the address contained in register 1. Prior to the ATTACH,
register 1 is set to the entry point of the HASP WTO subtask
($HASPWTO). Register WA is set to the address of an ECB
($WTOECB) which is used to coordinate the activities of HASP
with the subtask. See Section 12.15.5 for further details.
5.
An error message, indicating the completion code provided by
the return from ATTACH, is issued if the ATTACH was unsuccessful. Control is passed to the HASPIOVD segment of INIT to
continue processing.
12.5.3
SVC 34 Processing
$MGCRSVC, a section of code contained in the CON module, is entered
whenever an XCTL to IGC0403D is detected by the HASP LINK/XCTL interface. The functions performed by $MGCRSVC are:
I
1.
Immediate return to perform,the XCTL if the SVC 34 was issued
by HASP.
2.
Performs backspace editing of the command in accordance with the
HASPGEN parameter "$BSPACE". Tests for possible HASP format abbreviated reply to outstanding WTOR. If the first character is
numeric, the abbreviated reply process is invoked to expand the
HASP form to a form acceptable to OS. The SVC 35/36 Processing
routine is entered for possible logging of the expanded reply on
the HASP SYSTEM LOG. Control is returned to process the XCTL
with expanded reply.
3.
If the first character is non-numeric, an explicit test is made
for a "$" which identifies HASP commands. Control is returned
to process the XCTL if the first character is non-numeric or
not a "$".
4.
If the first character is a "$", a test for at least one CMB
which is not being used to process HASP commands is performed
using a counter ($COMMCT) maintained in the HCT. If all CMBs
(except one) are being used to process commands or if no CMBs
are available, then control is returned to process the XCTL.
The command is subsequently
I
HASP With OS Console Support - Page 12.15-2
1168
HAS P
rejected by OS as invalid.
5.
If MCS is being used in the OS system, the authorization code
for the device indicated by the UCMID contained in the low
order byte of RO is extracted from the ucr1 and converted to
the HASP restriction level. Reference the HASP COMM Processor for additional information on the OS authorization code
and HASP restriction level relationship.
6.
The contents of the input buffer are copied to the acquired
HASP CMB and the CMB is queued for the HASP command processor
using the $COMMQUE pointer in the HCT. The command processor
is $POSTed for work and HASP is as POSTed.
7.
The resume PSW in the SVRB of the issuer of the XCTL to
IGC0403D is changed to point to CVTEXIT in the CVT. The current SVRB is terminated by issuing an SVC 3 which eventually
causes the whole process to be ignored by OS.
12.15.4
SVC 35/36 Processing
$WTOSVC, a section of the CON module, is entered from the SVC
SLIH via the Execution Processor lOS interface routine whenever
an SVC 35 or, optionally, SVC 36 is encountered. This section of
code operates as a Type 2 SVC and accomplishes the following
functions:
1.
XCTLs to the real first load of SVC 35 (IGC0003E) if the WTO
was issued by the HASP subtask ($HASPWTO).
2.
Saves registers in the current SVRB extended save area and
tests input for WTO or WTOR.
3.
If WTOR, adjusts input pointer (Rl) to beginning of message
and proceeds as follows (WTO processing):
4.
An internal table is used to compare the first eight bytes of
the input message and, if a match occurs, special processing
is invoked through a corresponding routine. The usual function
of the special processing is to bypass the display of redundant
system messages.
5.
A search of the Execution Processor PCEs is made to locate the
JCT for the job issuing the SVC 35 or 36. The TIQT and associated job name is used for the search.
If a match is not
found, control goes to the real first load of the SVC 35/36.
HASP With OS Console Support - Page 12.15--3
1169
HAS P
6.
If a CMB is available, the subroutine HASPCBUF is entered to
copy the message to the HASP Log for the particular job; HASP
is OS POSTed and control passed to the appropriate OS module:
IGC0003E or IGC0003f for SVC 35 or 36 respectively.
7.
If a CMB is not available, the caller is forced into an OS
WAIT .condition. The forced WAIT is conditional:
the Communication Task, DAR and SIRB controlled routines are
excluded.
In addition, if no PQE (used to retain the TCB
and define an ECB for the routine $FREEMSG to OS POST) is
available, the caller is not forced into a WAIT condition
and the message is not entered into the HASP Log.
12.15.5
HASP WTO Subtask
The HASP OS WTO interface ($HASPWTO) which operates as an ATTACHed
subtask to HASP is responsible for the processing of all WTO
messages generated by HASP processors as the result of $WTO macros.
$HASPWTO is implemented as a subtask in order to allow the normal
OS function of delaying the execution of a task due to predetermined
buffer limits. The "delaying" of the task, under these circumstances,
is in the form of an ENQ and WAIT procedure which causes the task
to be non-dispatchable until sufficient resources (buffers) are
available to process the WTO.
It is undesirable for HASP proper
to be forced into a WAIT state but it is tolerable for the $HASPWTO
subtask to be subjected to a forced WAIT.
$HASPWTO is assembled as part of the CON module and is executed as
a task via an ATTACH issued at HASP initialization. The overall
logic of this task is:
1.
The initial entry establishes local and HASP addressability,
POSTs a synchronization ECB for INIT and then WAITs for
work using a communication ECB which is POSTed by the CON
module routine $WQUEBUF.
2.
When the communication ECB ($VJTOECB) is posted, $HASPWTO
examines the CMB active queue ($BUSYQUE) for messages to be
sent to the OS console routines via a WTO. All messages on
the queue except those flagged for remote processing are processed by $HASPWTO.
If the queue is empty, $HASPWTO WAITs
for the next POST of $WTOECB.
3.
If the message selected from the active queue contains a UCMID
byte, then the MCSFLAGS field of the WTO calling sequence is
set to indicate RO contains the UCMID and, eventually, RO is
loaded with the UCMID.
This feature allows responses to HASP
commands to be returned to the indicated console.
HASP With OS Console Support - Page 12.15-4
1170
HAS P
4.
The routing code field of the WTO calling sequence is used
for non-UCMID CMBs. The HASP logical console bit indicators
(contained in the CMB) are used to translate to the equivalent as routing codes based on the following table:
HASP
as
LOG
ERROR
UR
TP
TAPE
MAIN
MASTER CONSOLE INFORMATIONAL
SYSTEM/ERROR MAINTENANCE
UNIT RECORD POOL
TELEPROCESSING CONTROL
TAPE, DISK LIBRARIES TAPE, DA POOLS
MASTER CONSOLE, ACTION AND INFORMATIONAL
Function
5.
The message is copied from the CMB to an internal buffer
corresponding to the WTO format.
If routing codes are being
used, the description code field is set to indicate a system
status message.
6.
The CMB is returned to the available CMB queue ($FREEQUE)
using the $FREEMSG subroutine. If $FREEMSG returns with a
condition code = 0, than an OS POST is issued to the
HASP ECB ($HASPECB), otherwise no POST is given.
7.
The WTO is issued for the copied CMB using either the UCMID
or the routing and descriptor code options. The procedure
described starting at step 2 is repeated.
HASP With
as
1171
Console Support - Page 12.15-5
HAS P
12.16
MULTIPLE DEVICES ON MULTI-LEAVING REMOTES
If a HASP System includes MULTI-LEAVING RJE support (&NUMLNES >0
and &BSCCPU=YES) and if any remote terminal to be supported has
multiple .devices (i.e., more than one reader, printer or punch),
then the following considerations should be reviewed before performing HASPGEN and RMTGEN for that configuration.
12.16.1
RMTGEN Considerations
The appropriate parts of Section 7 describe how to specify support
for a second (or third, etc.) reader, printer, or punch when
performing RMTGEN for the various types of MULTI-LEAVING remote
workstation programs.
12.16.2
HASP Processor Considerations
It may be necessary to increase the value{s) of the HASPGEN
parameters &NUMTPPR, &NUMTPPU, and &NUMTPRD to allow concurrent
operation of all remote devices in the total system.
For example, if &NUMLNES=3 and the default value &NUMTPPR=&NUMLNES
is taken, then the HASP System can only support three concurrent
remote print operations.
If all three lines are active and one
of the three active remotes has two printers, then unless &NUMTPPR
is increased to four, one of the four possible concurrent remote
print operations may be delayed until a print operation on
another remote comes to the end of a job.
The decision to increase these parameters and by how much, depends
on the total remote configuration and an estimate of how many
active remotes will usually be doing the same stage of job
processing.
12.16.3
HASP Remote Device Considerations
HASP generates a Device Control Table (OCT) for one of each type
of device (reader, printer, and punch) on each remote terminal known
to HASP (RMTOI through RMTnn where &NUMRJE=nn).
If a remote terminal has more than one of each type of device,
then a OCT for each such additional device must be generated.
Multiple Devices on MULTI-LEAVING Remotes - Page 12.16-1
1172
HAS P
Each additional DCT must be specified on a card of the following
format:
$RMTDCT type,device
-serial-
Values for the above card should be chosen from the following
table:
readers
printers
punches
~
device
serial
RJR
RPR
RPU
RMnn.RDm
RMnn.PRm
RMnn.PUm
N0730nnm
N0732nnm
N0736nnm
where linn" is the remote number (same as in the RMTnn HASPGEN
parameters but with a leading ~ omitted in device) and "m"
is the device number which must be 2 or greater, up to a maximum
of 7.
All the above cards describing additional devices for all remotes
in a system must be placed in ascending order by serial number
and added to the source module HASPINIT using the HASPGEN Update
facility described in Section 10.1.3. The following example
shows how to generate a second printer DCT for remote 2 and a
second reader DCT for remote 5.
Columns
1
./
10
16
CHNGE HASPINIT
$RMTDCT. RJR,RM5.RD2
$RMTDCT RPR,RM2.PR2
73
80
N0730052
N07'32022
Multiple Devices On MULTI-LEAVING Remotes - Page 12.16-2
1173
HAS P
12.17
3211 FORMS CONTROL BUFFER ADDITIONAL LOADS
Installations using HASP with 3211 printers may want to add carriage
tape images to HASP in addition to the images provided. Each such
image is named by a letter or a number, but the number 'I' is reserved to allow the operator to force single-spacing and the letter
'V' is reserved for the operator-variable FCB load. Of the 34 remaining alphanumerics, HASP supplies images for '6', '8', and lUI.
12.17.1
Adding and Changing FCB Loads
The mechanism for defining Forms Control Buffer loads in HASP is
the $FCB macro, defined in Chapter 9. To add or change an FeB
image, the installation system programmer
•
codes a $FCB macro for each image
•
assigns it a card sequence number from the numbers shown in
Section 12.17.3.
•
includes it in his HASPGEN modification deck
•
does a HASPGEN to create new source for HASPPRPU
•
re-assembles HASPPRPU
•
executes HASPOBLD to create a new HASP load module and overlay
library.
12.17.2
FCB Loads Provided by HASP
HASP provides three FCB loads, callable by the characters '6', '8',
and 'U'.
The '6' image is designed for 11-inch-10ng forms. Channell is
punched at line I, channel 2 at line 7, channel 3 at line 13, and
so on to channel 8. Channel 10 is at line 49, channel 11 at line
55, channel 12 at line 61, and channel 9 at line 63. The $FCB
macro is
FCB6 $FCB 6,66,1-1,2-7,3-13,4-19,5-25,6-31,7-37,8-43,10-49,
11-55,12-61,9-63
The '8' image is designed for 8-l/2-inch-long forms, at 8 lines
per inch. The punches are the same as for the '6' image, except
that channel 9 is at line 64. The $FCB macro is
FCB8 $FCB 8,68,1-1,2-7,3-13,4-19,5-25,6-31,7-37,8-43,10-49,
11-55,12.-61,9-64
3211 Forms Control Buffer Additional Loads - Page 12.17-1
1174
HAS P
The 'u' image specifies only carriage channell at line 1; other
carriage channels are filled in by the $FCB macro to prevent forms
runaway. The $FCB macro is
FCBU $FCB 6,66,1-1
12.17.3
Recommended Card Sequence Numbers
It is recommended that additional FCB images be assembled using
the following card sequence numbers:
Image
Name
A
B
C
D
E
F
G
H
I
J
K
L
M
N
o
P
Q
R
S
T
U
W
X
Y
Z
o
2
3
4
5
7
9
First
Sequence Number
P3458000
P3460000
P3462000
P3464000
P3466000
P3468000
P3470000
P3472000
P3474000
P3476000
P3478000
P3480000
P3482000
P3484000
P3486000
P3488000
P3490000
P3492000
P3494000
P3496000
P3540000
P3502000
P3504000
P3506000
P3508000
P3510000
P3514000
P3516000
P3518000
P3520000
P3524000
P3528000
Continuation
Sequence Numbers
P3458100-P3459900
P3460100-P3461900
P3462100-P3463900
P3464100-P3465900
P3466100-P3467900
P3468100-P3469900
P3470100-P3471900
P3472100-P3473900
P3474100-P3475900
P3476100-P3477900
P3478100-P3479900
P3480100-P3481900
P3482100-P3483900
P3484100-P3485900
P3486100-P3487900
P3488100-P3489900
P3490100-P3491900
P3492100-P3493900
P3494100-P3495900
P3496100-P3497900
P3540100-P3541900
P3502100-P3503900
P3504100-P3505900
P3506100-P3507900
P3508100-P3509900
P3510100-P3511900
P3514100-P3515900
P3516100-P3517900
P3518100-P3519900
P3520100-P3521900
P3524100-P3525900
P3528100-P3529900
3211 Forms Control Buffer Additional Loads - Page 12.17-2
1175
HAS P
(The remainder of this page intentionally left blank.)
1175.1
Source Exif Data:
File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.3 Linearized : No XMP Toolkit : Adobe XMP Core 4.2.1-c043 52.372728, 2009/01/18-15:56:37 Create Date : 2013:03:21 10:50:02-08:00 Modify Date : 2013:03:21 14:10:24-08:00 Metadata Date : 2013:03:21 14:10:24-08:00 Producer : Adobe Acrobat 9.52 Paper Capture Plug-in Format : application/pdf Document ID : uuid:341ccc38-09a4-4c13-8942-ba917599ca17 Instance ID : uuid:00ae6f4b-4008-47b7-ad60-e22171e16476 Page Layout : SinglePage Page Mode : UseOutlines Page Count : 1274EXIF Metadata provided by EXIF.tools