Usage: Diagnose X'18' checks that the byte count from the user's read or write
CCW does not exceed 4096 bytes. If the byte count exceeds 4096 bytes, CP flags
it as an error. If the byte count is less than or equal to 4096 bytes, Diagnose X'18'
makes an additional check for valid CMS standard blocksizes. The standard CMS blocksizes are 512,800, 1K, 2K, or 4K bytes. The latter check is necessary and
only pertinent in the event that the user's channel program is directed to a device
that is capable of executing extended count-key-data channel commands (for
example, a 3380 attached to a 3880 Control Unit equipped with the Speed Match­
ing Buffer Feature).
CP converts user's channel programs to the extended count-key-data (CKD) for­
mat when they:
Are directed to a 3380 attached to a 3880 Control Unit equipped with the Speed Matching Buffer (Feature #6550) Or are directed to a 3375 attached to a 3880 Control Unit equipped with the Speed Matching Buffer (Feature #6560) And contain READ or WRITE CCW's with valid CMS blocksizes
And contain no READs chained to READs or WRITEs which are, themselves,
chained to WRITEs.
An example of a channel program converted to an extended count-key-data chan­
nel program is shown below. DIAGNOSE X'18' must not be used to read or write record-overflow-formatted
data.
A typical CCW string to read or write two 800-byte records is as follows:
SEEK,A,CC,6 SET SECTOR (not used for 2314/2319)
SRCH,A+2,CC,5 TIC,*-S,O,O RD or WRT,DATA,CC+SILI,SOO SEEK HEAD,B,CC,6 (omitted if HEAD number unchanged) SET SECTOR SRCH,B+2,CC,5 TIC,*-S,O,O RD or WRT,DATA+SOO,SILI,SOO A SEEK and SRCH arguments for first RD/WRT
B SEEK and SRCH arguments for second RD/WRT
If you are reading from or writing to either a 3380 or 3375 attached to a 3880 Control Unit equipped with the respective Speed Matching Buffer, the above sam­
ple channel program would be converted to the following extended count-key-data
CCWs: DIAGNOSE Instruction in a Virtual Machine 233
DEFINE EXTENT,C,CC,16 LOCATE RECORD,D,CC,16
RD OR WRT,DATA,CC+SILI,SOO LOCATE RECORD,E,CC,16
RD OR WRT,DATA+SOO,SILI,SOO C DEFINE EXTENT argument
D LOCATE RECORD argument for first RD/WRT
E LOCATE RECORD argument for second RD/WRT
Note: The second LOCATE RECORD CCW shown in this example is not gener­
ated in all cases. That is, LOCATE RECORD CCWs, after the first one, are gen­
erated only when one of the following is encountered: A READ is followed by a WRITE, or vice versa, with the normal SEEK, SET SECTOR, SRCH in between them.
The length of a READ or WRITE is not the same as the length of the preced­
ing READ or WRITE.
The READ or WRITE that follows a previous READ or WRITE is not for the
next sequential record on the track.
Condition and Completion Codes: The codes returned are as follows:
cc=o I/O complete with no errors
cc= 1 Error condition. Register 15 contains one of the following:
R 15 = 1 Device not attached
R15=2 Device not 2319,2314,3330,3340,3350,3375, or 3380 R15=3 Attempt to write on a read-only disk
R15=4 Cylinder number not in range of user's disk
R 15 = 5 Virtual device is busy or has an interrupt pending
R15=6 Device halted; I/O mayor may not have completed.
cc=2 Error condition. Register 15 contains one of the following:
234 VM/SP System Programmer's Guide
R15=5 Pointer to CCW string not doubleword-aligned.
R15=6 SEEK/SEARCH arguments not within range of user's storage.
R15=7 CCW is not a SEEK, SEEK HEAD, SET SECTOR, SEARCH ID, TIC*-8, READ, or WRITE or an invalid CCW string was
submitted.
R15=8 READ/WRITE byte count=O R15=9 READ/WRITE byte count greater than 4096 R15=10 READ/WRITE buffer not within user's storage /"
Previous Page Next Page