final long partLbaStart = devOffset / SECTOR_SIZE;
final int partSectorCount = Math.min(length / SECTOR_SIZE, maxSectorCount);
final int partLength = partSectorCount * SECTOR_SIZE;
final IDERWSectorsCommand cmd = isWrite ?
new IDEWriteSectorsCommand(primary, master, is48bit, partLbaStart, partSectorCount, buf) :
new IDEReadSectorsCommand(primary, master, is48bit, partLbaStart, partSectorCount, buf);
try {
log.debug("bus.exAndWt" + (isWrite ? "W" : "R") + " dev=" + dev.getId() + " start=" + partLbaStart +
" sectors=" + partSectorCount + " len=" + partLength);
bus.executeAndWait(cmd, IDE_DATA_XFER_TIMEOUT);