its address and that of entry DMSBTPLM are stored in ABATABND and the ABATLIftT respectively, in the NUCON area of the CftS nucleus. If the ABEID entry point is not found in the tables, error message is typed and the batch console returns to the CMS interactive
environment.
The BATLOAD flag is set off to show that DftSBTP has been loaded, the BATNOlX flag is set on to prevent user job execution until DMSBTP encounters a /JOB card and finally, control is returned to the command processor DftSINT. If an error message is issued, DMSERR is called to type the message,
and the BATRUN and BATLOAD flags are set off before control is returned
to CMS. This allows the normal CMS interaction to resume. The processoL .ouule DMSBTP simulates the of the CftS console read module DMSCRD. This is accomplished by issuing reads to
the virtual card reader, formatting the card-image record to resemble a
console record and returning control to CMS to process the command (or
data) request. DMSBTP also performs reads to the console stack if the
stack is not eapty, checks for and processes the /JOB card, ensuring
that it is the first record in the user job, traps all CP co •• ands to
.aintain system integrity and performs job initialization, cleanup, and
job recovery_ Upon receiving control, DMSBTP checks the BATCPEX flag in NUCON. If
the flag is set on, control was received from DftSCPF and a branch is
.ade to the CP trap routine to verify that the command is allowable
under batch. The function of that routine is described later. If the BATCPEX flag is off, control was received from DftSCRD (console read module) and DMSBTP checks for finished reads in the real batch console
stack. If the number of finished reads is not zero, control is returned
to DMSCRD to process the real console finished (stacked) reads. If the
nuaber of finished reads is zero, a record is read from the batch
virtual card reader into the CARD buffer via an SVC call to CARDBD (tMSCIO). The record in CARD buffer is typed on the console via the iRTERft macro. If the BATMOVE flag is set on (MOVEFILE executing from
the console), the records in the file are not typed on the console.
The record in the reader buffer is scanned to compute its length with
trailing blanks deleted. It is then aoved to the CftS console read
buffer and the computed length is stored in the original DftSCRD parameter list, whose address is passed by DftSCRD when it initially
passes control to DMSBTP. If the first user record is not a /JOB card, error message DMSBTP10SE is typed and normal cleanup is performed with the BATTERft flag set on.
This flag prevents another initial program load, since it is not needed
at this time. Reads to the card reader are then issued until the next /JOB card is found.
If the first record is a /JOB card, DMSBTP branches to its /JOB card
processing routine which calls DMSSCNN via a EALB. A check is made fer
the existence of the userid and account number on the card. If the
fields exist, a CP DIAGNOSE X'4C' is issued to start accounting
recording for that userid and account number. If an error is returned froa CP denoting an invalid userid, or if the userid or account number fields were missing on the /JOB card, error message DMSBTP106E is typed
and nor.a! cleanup is performed with the BATTERft flag set on. 2-150 IBft Vft/370 System Logic and Program Determination--Volume 2
The jobname, if provided on the /JOB card, is saved and a message is
issued via SVC to inform the source userid that the job has started.
The spooling devices are closed and respooled for continuous output, a CP QUERY FILES command is issued for information purposes and the
implied CP function under CKS is disabled and the protection feature set
off via SVC calls to SET (DKSSET). The BATPROF EXEC is executed via an SiC to EXEC. The BATHOEX flag, which is set by to suppress user
job execution until the /JOB card is detected, is set off. The BATUSEX flag is set on (for DKSCPF) to signal the start of the actual user job,
and a branch is taken to read the next card from the reader file (user
job).
After reading the /JOB card, DMSBTP continues reading and checks for
a /* card, a /SET card, or a CP command. If a card is none of these, DMSBTP passes control back to the command processor DMSINT for
processing of the command (or data) If a 1* card is read and it is the first card of the new job, it is
assume to te a precautionary measure and thus ignored by DMSBTP Which then reads the next card. If it is not the first card a check is made for the BATMOVE flag. If the flag is on, the /* card indicates an
end-of-file condition for the MOVEFILE operation from the console
(reader) and is consequently translated to a null line for the MOVEFILE command. If the BATMOVE flag is not on, the /* card is and end-of-job
indicator and an immediate branch is taken to the end-of-job routine for
cleanup and reloading of CMS batch. When a CP command is encoutered DMSBTP branches to a routine that
first checks a table of CP commands allowable in batch. If the command is allowed, a check is made for a reader or other spool device in the command line. If the CP command is allowed but would alter the status
of the batch reader or any spooling device or certain disks, or if the
command is not allowed at· all, error message DMSBTP107E is typed, and
the next card is read.
If the CP command is LINK, the device address is stored in a table so
that DMSBTP can detach all user disk devices at the end of the job.
A CP DETACH command is examined for a device address corresponding to
the system disk, the IPL disk, the batCh 195 work disk or any spool
device. If the device to be detached is any of these, error message DMSBTP107E is displayed and the next card is read. Otherwise, DMSBTP returns control to DKSINT (or DMSCPF is the EATCPEX flag is set on) for
processing of the command. When a /SET control card is encountered, the card is checked fer
valid keywords, valid integer values (less than or equal to the
installation default values), and if an error is detected, error message DMSBTP108E is typed. An abnormal termination message is also sent to
the source userid and the job is terminated with normal cleanup
performed. If the control card values are valid, the appropriate fields
are updated in the user job li.it table DMSBTPLM and the next card is
read.
If DMSBTP detects a "not ready" condition at the reader, a message is
typed at the console stating that batch is waiting for reader input. DMSBTP then issues the WAITD macro to wait for a reader interrupt. When first detecting the empty reader, DMSBTP calls the CP accounting
routines via a CP diagnose '4C' to charge the wait time to the hatch userid. CMS Method of Operation and Program organization 2-151
Previous Page Next Page