mirror of
https://github.com/86Box/86Box.git
synced 2026-02-22 09:35:32 -07:00
The side processed by poller is now correctly selected by the FDC's HDSEL parameter rather than the H field of the requested sector ID.
This commit is contained in:
@@ -1185,7 +1185,7 @@ void d86f_poll_format(int drive, int side)
|
||||
void d86f_poll()
|
||||
{
|
||||
int drive = d86f_drive;
|
||||
int side = d86f[drive].req_sector.id.h;
|
||||
int side = fdd_get_head(drive);
|
||||
|
||||
if (d86f[drive].state == STATE_FORMAT)
|
||||
{
|
||||
|
||||
@@ -322,13 +322,14 @@ void fdi_poll()
|
||||
{
|
||||
int tempi, c;
|
||||
int bitcount;
|
||||
|
||||
int side = fdd_get_head(drive);
|
||||
|
||||
for (bitcount = 0; bitcount < 16; bitcount++)
|
||||
{
|
||||
if (fdi_pos >= fdi[fdi_drive].tracklen[fdi_side][fdi_density])
|
||||
if (fdi_pos >= fdi[fdi_drive].tracklen[side][fdi_density])
|
||||
{
|
||||
fdi_pos = 0;
|
||||
if (fdi[fdi_drive].tracklen[fdi_side][fdi_density])
|
||||
if (fdi[fdi_drive].tracklen[side][fdi_density])
|
||||
fdc_indexpulse();
|
||||
else
|
||||
{
|
||||
@@ -340,7 +341,7 @@ void fdi_poll()
|
||||
}
|
||||
}
|
||||
}
|
||||
tempi = fdi[fdi_drive].track_data[fdi_side][fdi_density][((fdi_pos >> 3) & 0xFFFF) ^ 1] & (1 << (7 - (fdi_pos & 7)));
|
||||
tempi = fdi[fdi_drive].track_data[side][fdi_density][((fdi_pos >> 3) & 0xFFFF) ^ 1] & (1 << (7 - (fdi_pos & 7)));
|
||||
fdi_pos++;
|
||||
fdi_buffer <<= 1;
|
||||
fdi_buffer |= (tempi ? 1 : 0);
|
||||
@@ -352,7 +353,7 @@ void fdi_poll()
|
||||
}
|
||||
if (!fdi_inread && !fdi_inreadaddr)
|
||||
return;
|
||||
if (fdi_pos == fdi[fdi_drive].trackindex[fdi_side][fdi_density])
|
||||
if (fdi_pos == fdi[fdi_drive].trackindex[side][fdi_density])
|
||||
{
|
||||
fdi_revs++;
|
||||
if (fdi_revs == 3)
|
||||
|
||||
@@ -277,7 +277,7 @@ int disc_sector_reset_state(int drive)
|
||||
|
||||
int disc_sector_find_sector(int drive)
|
||||
{
|
||||
int side = disc_sector_side[drive];
|
||||
int side = fdd_get_head(drive);
|
||||
int i = 0;
|
||||
for (i = 0; i < disc_sector_count[drive][side]; i++)
|
||||
{
|
||||
@@ -373,7 +373,7 @@ void disc_sector_poll()
|
||||
sector_t *s;
|
||||
int data;
|
||||
int drive = disc_sector_drive;
|
||||
int side = disc_sector_side[drive];
|
||||
int side = fdd_get_head(drive);
|
||||
int found_sector = 0;
|
||||
int b = 0;
|
||||
|
||||
@@ -582,7 +582,7 @@ void disc_sector_poll()
|
||||
found_sector = disc_sector_find_sector(drive);
|
||||
// pclog("Found sector: %i\n", found_sector);
|
||||
cur_sector[drive] = found_sector;
|
||||
last_sector[drive] = &disc_sector_data[drive][disc_sector_side[drive]][found_sector];
|
||||
last_sector[drive] = &disc_sector_data[drive][side][found_sector];
|
||||
cur_rate[drive] = last_sector[drive]->rate;
|
||||
if (!(disc_sector_can_read_address(drive))) last_sector[drive] = NULL;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user