Revision d6c1a327

b/hw/fdc.c
1213 1213
            len = fdctrl->data_len - fdctrl->data_pos;
1214 1214
            if (len > FD_SECTOR_LEN)
1215 1215
                len = FD_SECTOR_LEN;
1216
            bdrv_read(cur_drv->bs, fd_sector(cur_drv),
1217
                      fdctrl->fifo, len);
1216
            bdrv_read(cur_drv->bs, fd_sector(cur_drv), fdctrl->fifo, 1);
1218 1217
        }
1219 1218
    }
1220 1219
    retval = fdctrl->fifo[pos];
......
1321 1320
        fdctrl->fifo[fdctrl->data_pos++] = value;
1322 1321
        if (fdctrl->data_pos % FD_SECTOR_LEN == (FD_SECTOR_LEN - 1) ||
1323 1322
            fdctrl->data_pos == fdctrl->data_len) {
1324
            bdrv_write(cur_drv->bs, fd_sector(cur_drv),
1325
                       fdctrl->fifo, FD_SECTOR_LEN);
1323
            bdrv_write(cur_drv->bs, fd_sector(cur_drv), fdctrl->fifo, 1);
1326 1324
        }
1327 1325
        /* Switch from transfer mode to status mode
1328 1326
         * then from status mode to command mode

Also available in: Unified diff