There have been a few posts in this thread that more or less stated that only complete physical blocks could be read into storage from a device.
This is not strictly true. There is the obvious case of truncation, where the number of bytes the device has been requested to transfer is less than the actual physical size of the block. For CCW types of I/O operations (as opposed to TCW types) there is also the possibility of exploiting the "Skip" feature of the channel. Bit 35 (format-0 CCWs) or bit 11 (format-1 CCWs) of the CCW is referred to as the Skip Flag Bit. When this bit is one, the channel suppresses the transfer of data into storage. This flag bit is valid ONLY for read, read-backward, sense ID, or sense operations. Note that the storage device still engages with the data transfer to the channel and all of the data error checking functions (such as ECC) still occur. It is the channel that suppresses the storage of data into memory. When combined with Data Chaining this can be used to store subsets of a data block into potentially discontiguous areas of memory. I do not believe that any of the access methods exploit this, however. OPEN/CLOSE/EOV at one time used this feature when processing Standard User Label tapes. The interesting portion of the channel program was a Read with the Skip Bit on, command chained to a Transfer In Channel back to the Read. When no errors occurred, the channel program ended with Unit Exception status when the Tape Mark at the end of the label set was encountered. Bob