diff --git a/src/disk/mo.c b/src/disk/mo.c index 44f68effa..ed1ab2472 100644 --- a/src/disk/mo.c +++ b/src/disk/mo.c @@ -951,6 +951,8 @@ mo_blocks(mo_t *dev, int32_t *len, UNUSED(int first_batch), int out) if (out) { if (fwrite(dev->buffer + (i * dev->drv->sector_size), 1, dev->drv->sector_size, dev->drv->fp) != dev->drv->sector_size) fatal("mo_blocks(): Error writing data\n"); + + fflush(dev->drv->fp); } else { if (fread(dev->buffer + (i * dev->drv->sector_size), 1, dev->drv->sector_size, dev->drv->fp) != dev->drv->sector_size) fatal("mo_blocks(): Error reading data\n"); @@ -1069,6 +1071,8 @@ mo_erase(mo_t *dev) fwrite(dev->buffer, 1, dev->drv->sector_size, dev->drv->fp); } + fflush(dev->drv->fp); + mo_log("MO %i: Erased %i bytes of blocks...\n", dev->id, i * dev->drv->sector_size); dev->sector_pos += i; diff --git a/src/disk/zip.c b/src/disk/zip.c index 764dc1f53..a948cab2f 100644 --- a/src/disk/zip.c +++ b/src/disk/zip.c @@ -1134,6 +1134,8 @@ zip_blocks(zip_t *dev, int32_t *len, UNUSED(int first_batch), int out) if (out) { if (fwrite(dev->buffer + (i << 9), 1, 512, dev->drv->fp) != 512) fatal("zip_blocks(): Error writing data\n"); + + fflush(dev->drv->fp); } else { if (fread(dev->buffer + (i << 9), 1, 512, dev->drv->fp) != 512) fatal("zip_blocks(): Error reading data\n"); @@ -2125,6 +2127,8 @@ zip_phase_data_out(scsi_common_t *sc) if (fwrite(dev->buffer, 1, 512, dev->drv->fp) != 512) fatal("zip_phase_data_out(): Error writing data\n"); } + + fflush(dev->drv->fp); break; case GPCMD_MODE_SELECT_6: case GPCMD_MODE_SELECT_10: