New turbo floppy poller, should be a bit faster than before.

This commit is contained in:
OBattler
2017-07-26 00:16:54 +02:00
parent 562a138ec8
commit 02f5d663d0
10 changed files with 382 additions and 8 deletions

View File

@@ -938,6 +938,9 @@ void img_seek(int drive, int track)
d86f_reset_index_hole_pos(drive, 0);
d86f_reset_index_hole_pos(drive, 1);
d86f_zero_bit_field(drive, 0);
d86f_zero_bit_field(drive, 1);
if (!img[drive].xdf_type || img[drive].is_cqm)
{
for (side = 0; side < img[drive].sides; side++)
@@ -980,6 +983,11 @@ void img_seek(int drive, int track)
img[drive].sector_pos_side[side][sr] = side;
img[drive].sector_pos[side][sr] = (sr - 1) * ssize;
current_pos = d86f_prepare_sector(drive, side, current_pos, id, &img[drive].track_data[side][(sr - 1) * ssize], ssize, img[drive].gap2_size, img[drive].gap3_size, 0, 0);
if (sector == 0)
{
d86f_initialize_last_sector_id(drive, id[0], id[1], id[2], id[3]);
}
}
}
}
@@ -1039,6 +1047,11 @@ void img_seek(int drive, int track)
ssize = (128 << id[3]);
current_pos = d86f_prepare_sector(drive, side, xdf_trackx_spos[current_xdft][array_sector], id, &img[drive].track_data[buf_side][buf_pos], ssize, img[drive].gap2_size, xdf_gap3_sizes[current_xdft][!is_t0], 0, 0);
}
if (sector == 0)
{
d86f_initialize_last_sector_id(drive, id[0], id[1], id[2], id[3]);
}
}
}
}
@@ -1108,6 +1121,7 @@ void d86f_register_img(int drive)
d86f_handler[drive].side_flags = img_side_flags;
d86f_handler[drive].writeback = img_writeback;
d86f_handler[drive].set_sector = img_set_sector;
d86f_handler[drive].read_data = img_poll_read_data;
d86f_handler[drive].write_data = img_poll_write_data;
d86f_handler[drive].format_conditions = img_format_conditions;
d86f_handler[drive].extra_bit_cells = null_extra_bit_cells;
@@ -1116,4 +1130,5 @@ void d86f_register_img(int drive)
d86f_handler[drive].index_hole_pos = null_index_hole_pos;
d86f_handler[drive].get_raw_size = common_get_raw_size;
d86f_handler[drive].check_crc = 1;
d86f_set_version(drive, 0x0063);
}