+ buf = (hdData != NULL ? &hdData[(lba * 512) + 0x40] : NULL);
+ bufPtr = 0;
+ }
+ // Handle "Write" (10) command
+ else if ((cmd[0] == 0x2A) && (cmdLength == 10))
+ {
+ WriteLog("HD: Received command WRITE(10) [%02X %02X %02X %02X %02X %02X %02X %02X %02X %02X]\n", cmd[0], cmd[1], cmd[2], cmd[3], cmd[4], cmd[5], cmd[6], cmd[7], cmd[8], cmd[9]);
+ REQ = false;
+ // Drive next phase
+ MSG = false, C_D = false, I_O = false;
+ devMode = DVM_DATA_OUT;
+ bytesToSend = ((cmd[7] << 8) | cmd[8]) * 512; // amount is set in blocks
+ uint32_t lba = (cmd[2] << 24) | (cmd[3] << 16) | (cmd[4] << 8) | cmd[5];
+ buf = (hdData != NULL ? &hdData[(lba * 512) + 0x40] : NULL);