Execution of DIAGNOSE code X'OC' causes CP to store four doublewords of
time information in the user's virtual storage. The register specified
as Rx contains the address of the 32-byte area where the time information is to be stored. The address must be on a doubleword
boundary.
The first eight bytes contain the month/day-of-month/year. The next
eight bytes contain the time of day in hours:minutes:seconds.
One-hundredths of seconds are not returned. The last 16 bytes contain
the virtual and total processor time used by the virtual machine that
issued the DIAGNOSE. These times are expressed as doubleword, unsigned
integers, in microseconds. No completion code is returned, and the
condition code reaains unchanged. Pages of virtual storage can be released by issuing a DIAGNOSE code X'10'. When a page is released, it is considered all zero. The
register specified by Rx contains the address of the first page to be
released, and the Ry register contains the address of the last page to
be released. Both addresses must be on page boundaries. 1 page
boundary is a storage address whose low-order three digits, expressed in
hexadecimal, are zero. No completion code is returned, and the
condition code remains unchanged. !Qte: DIAGNOSE code X'10' is not to be used to release discontiguous
storage. See DIAGNOSE code X'64' for releasing discontiguous storage.
Execution of DIAGNOSE code X'14' causes D!KDRDER to perform input spool
file manipulation. Depending upon the value of the function subcode,
the register specified as Rx contains a buffer address, a copy count, or
a spool file identifier. The Ry register, which must be an even
register, contains either the virtual address of a spool input card
reader or, if Ry.1 contains X'OFFF', a spool file ID number. Ry+1
contains a hexadecimal code indicating the file manipulation to be
performed. The codes are:
Code 0000 0004 0008 OOOC 0010 0014 0018 001C 0020 OFFF Function Read:n;xt spool buffer (data record)
Read next print spool file block (SFBLOK)
Read next punch spool file block (SFBLOK)
Select a file for processing
Repeat active file nn times
Restart active file-at beginning
Backspace one record
Read next monitor spool file block
Read next monitor spool record Retrieve subsequent file descriptor CP Introduction 1-53
On return Ry+1 may contain error codes that further define a returned
condition code of 3.
Condition
__ __ Ry".! 0 Data transfer successful
1 End of file
2 File not found
3 4 Device address invalid
3 8 Device type invalid
3 12 Device busy
3 16 Fatal paging I/O error
3 20 Page already locked for I/O Scbcca.e X'OOOO' Rx = start address of fullpage virtual buffer
Ry = virtual spool reader address
The specified device is checked for a file already activated via
DIAGNOSE and, if there is one, the next fullpage buffer is made available to the virtual machine via a call to DftKRPAGT. If no file is
active via DIAGNOSE, the chain of reader files is searched for a file
for the calling user and connected to the virtual device for further
reading. If no file is found, virtual condition code 2 is set. When the
end of an active file is reached, the device status settings are tested
for "spool continuous."' If not set, virtual condition code 1 is set,
indicating end of file. If the device is set for continuous input, the
active file is exaained to deter.ine whether or not it is a
aultiple-copy file. If it is, reading is restarted at the beginning of
the file. If it is not, the file is closed via D!KVSPCR and the reader
chain is searched for another input file. If no other file is found,
virtual condition code 1 is set. A specific DIAGNOSE X'14' Subcode X'OOOO' must be issued to get the first spooled page again.
Subcode X'0004' Rx = virtual address of a 12-doubleword buffer
Ry = virtual spool reader address
If the specified device is in use via diagnose, the VSPLCTL block is
checked to see whether or not this is a repeated call for printer
SFBLOKs. If it is, then the chain search continues froa the point where
the last SFBLOK was given to the virtual aachine. In this case, cc = 1
is set when there are no aore print files. If this is the first call for
an SFBLOK, or if there have been intervening calls for file reading, the
spool input chain is searched froa the beginning, and cc=2 is set if no
files are found. !Qt!: The virtual buffer specified via Rx must not cross a page boundary
or a specification exception will result.
1-54 IBM VM/370 System Logic and Problem Deteraination--Voluae 1
Previous Page Next Page