o 78 3132 3940 4748 63
Command Code 1111 0011 X/F3'
Function
Data Address Flags Not Used Count
(Decimal)
Specifies the main Used at the 4
+
N. See thestorage location of the discretion of the description first byte of diagnostic programmer below for the
control parameters value of N.
The Diagnostic Control command transfers a minimum of four bytes of diagnostic control parameters from the channel to the storage director.
Chaining Requirements
Status
Description
The Diagnostic Control command must be preceded by a Define Extent command that allows diagnostics or the command is rejected with channel end, device end, and unit check status.
Initial status is normally zero. See the following description for ending status presentation.
The first four bytes of diagnostic control parameters transferred by this command have the following format:
Byte
o
1 2 and 3
Description
Subcommand identification
Subcommand identification modifier bits
Additional number of bytes to be transferred (N)
After the first four bytes have been transferred, the storage director checks the validity of the subcommand identification code and verifies that bytes 2 and 3 specify the correct number of additional bytes required for that subcommand. If an invalid parameter is detected, the Diagnostic Control command is terminated with channel end, device end, and unit check status.
If the parameters are valid, the channel transfers the additional number of bytes (specified in bytes 2 and 3) to the storage director.
If the CCW count is less than 4
+
N, the command is terminated with channel end, device end, and unit check status. If the CCW count is greater than 4+
N, only 4+
N bytes are transferred.Subcommands
Byte 0 specifies the subcommand to be performed. The following subcommands can be executed by the storage director:
Subcommand Binary Hexadecimal
Trace Dump 00000000 X'OO' Format ID 00000100 X'04' Space ID and
Read Data 00000110 X'06' Read ID. 0000 1010 X'OA' Displace ID 0000 1111 X'OF'
The Trace/Dump subcommand is executed to prepare the storage director for a subsequent Diagnostic Sense/Read command that is to transfer the contents of the trace/dump buffer to the channel. The Trace Dump subcommand shown below is used for diagnostic purposes only.
Byte 0 1 2 3
Command Modifiers Additional Bytes
Code Required
X'OO' X'OO' X'OOOO'
The Format ID subcommand can be used for flagging an alternate block as defective, for flagging an alternate block as unused, or for formatting a normal block. Execution of this subcommand (shown below) causes the storage director to rewrite the block ID of the block specified by bytes 8 through 11 of the parameter list. Only one block is affected, and the block count specified in bytes 4 and 5 is ignored.
Byte 0 1 2 3
Command Modifiers Additional Bytes
Code Required
X'04' X'OO' X'0008'
,
" .
...
---" .
,.,
---,.,
---...
-...
,... -....
,.
9 10 11-- __Byte 4 5 6 7 8
Block Flags Cylinder Head Block
count address address number
Bit 0 of byte 6 is the alternate area flag bit; bit 1 is the defective-block flag bit; bits 2, 3, and 4 are not used and must be set to zero; and bits 5, 6, and 7 are used as follows:
3-26 IBM 3880 Storage Control Description
Bits 5, 6, and 7 000
001 010
Description ID not displaced ID displaced once ID displaced twice
All other combinations are invalid. Byte 7 is not used and must be set to
o.
Bytes 8 through 11 contain the physical address and block number.
At the end of data transfer, the storage director checks the parameters for validity. The command is terminated with channel end, device end, and unit check status if any of the following conditions are detected:
• The Define Extent command inhibits format write operations.
• The device is in read-only mode.
• Bytes 8 through 11 contain a physical block address that is invalid for the addressed device.
• The Define Extent command mask byte (byte 0, bit 4) is off and bytes 8 through 11 address a block not in the data area.
• The Define Extent command mask byte (byte 0, bit 4) is on and bytes 8 through 11 address a block not in the CE area.
• The flag byte indicates a prime area (byte 6, bit 0 = 0) but the addressed block is not in the primary area.
• The flag byte indicates an alternate area (byte 6, bit 0 = 1) but the addressed block is not in the alternate area.
• Bytes 6 and 7 contain an invalid flag byte.
• The defective-block flag bit (byte 6, bit 1) or one of the displaced ID bytes (byte 6, bit 6 or 7) is on but byte 6, bit 0 does not indicate an alternate area.
If all of the parameters are valid, the storage director initiates an access to the block and presents channel end status. When access to the block is completed, the storage director verifies correct orientation and writes the block ID. (The block ID is internally generated by the storage director.) If the addressed block is in the alternate area, the alternate flag bit is set in the block ID field. If the defective-block flag bit is on (byte 6, bit 1), the block is flagged as defective with a null alternate/defective pointer and is written at a position indicated by bits 5 through 7 of byte 6. No data field is written for this operation and device end status is presented at the completion of the operation. The Space ID and Read Data subcommand can be used to recover the data field of a block when the block ID has a permanent data check. Execution of this subcommand prepares the storage director to space over the block ID field and read the data field of the block specified in bytes 8 through 11 of the parameter list. Only one block is read and the block count in bytes 4 and 5 is ignored.
Byte 0 1 2 3 Command Modifiers Additional Bytes
Code Required
X'06' X'OO' X'0008'
- ---- -- ---- ---- --
...6 7 8 9 10 --11 ...
Cylinder Head Block
Block count
Flags (See
Note) address address address
Note: Bit 0 of byte 6 indicates either prime area (bit off) or alternate area (bit on). All other bits in bytes 6 and 7 are unused and must be zero.
At the end of data transfer, the storage director checks the parameters for validity. If any of the following conditions are detected, the command is terminated with channel end, device end, and unit check status.
• Bytes 8 through 11 contain a physical address that is invalid for the addressed device.
• The Define Extent command mask byte (byte 0, bit 4) is off and bytes 8 through 11 address a block not in the data area.
• The flag byte (byte 6, bit 0) indicates an alternate area and the addressed block is not in the alternate area, or the flag byte indicates prime area and the block is not in the prime area.
• The Define Extent mask (byte 0, bit 4) is on and bytes 8 through 11 address a block not in the CE area.
If all the parameters are valid, the storage director initiates an access to the block and presents channel end status. When access to the block is completed, device end status is presented.
The actual operation of spacing over the block ID field and transferring the read data is performed by a subsequent Diagnostic Sense/Read command.
The Read ID subcommand is used to generate a defective block map for a device. Execution of this subcommand (shown below) prepares the storage director to read one or more block IDs. The number of block IDs to be read is determined by the block count in bytes 4 and 5.
3-28 IBM 3880 Storage Control Description
Byte 0 Command
Code X'OA'
. / '
,...
1 2
Modifiers Additional Bytes Required X'OQ' X'0008'
,
Byte 4 5 6 7 8
"""'- ...
"""'-
...
-9 10 ... 11 ...
Block count
Flags (See Note)
Cylinder Head Block
address address address
Note: Bit 0 of byte 6 indicates either prime area (bit off) or alternate area (bit on). All other bits in bytes 6 and 7 are unused and must be zero.
At the end of data transfer, the storage director checks the parameters for validity. If any of the following conditions are detected, the command is terminated with channel end, device end, and unit check status.
• The blocks specified are not within the limits of the addressed device.
(Also, if the flag bit indicates prime area, the block addressed must be in the prime area; and if the flag bit indicates alternate area, the block addressed must be in the alternate area.)
• The Define Extent command mask byte (byte 0, bit 4) is off and bytes 8 through 11 address a block not in the data area.
• The Define Extent command mask byte (byte 0, bit 4) is on and bytes 8 through 11 address a block not in the CE area.
If all the parameters are valid, the storage director initiates an access to the block and presents channel end status. When access to the block is completed, device end status is presented.
The actual operation of reading the block IDs and transferring data to the channel is performed by a subsequent Diagnostic Sense/Read command.
The storage director transfers five bytes of data to the channel for each block ID processed. The format of these five bytes is identical to the five bytes of block ID field written on the device. The block IDs processed are logically continuous either in the prime area or in the alternate area.
The Displace ID subcommand is executed to prepare the storage director for a subsequent Locate command with an operation code specifying a format defective block. During execution of the format defective block operation, the ID of the defective block is written in the position indicated by the modifier bits in the Displace ID subcommand. The format for the Displace ID subcommand is shown below.
Command Modifiers Additional Bytes
Code Required
X'OF' I X'OOOO'
"
--
--X'lO' = Write ID of defective block in normal position.
X'20' = Write ID of defective block in displaced position.
--X'40' = Write ID of defective block in extended displaced position.
3-30 IBM 3880 Storage Control Description