final int bytesInBuf = bufLength - bufPosition;
final int toCp = (int)(bytesInBuf < left ? bytesInBuf : left);
if (gridOut != null)
gridOut.writeBytes(currBuf + bufPosition, toCp);
else {
byte[] buff = new byte[toCp];
mem.readBytes(currBuf + bufPosition, buff);