Disc function pointers cleared when disc ejected.
Read address on an ejected disc now times out. Write protect bit in ST3 now set correctly (Sense Drive Status command). Fixes discs on Windows 95.
This commit is contained in:
parent
b7947bd68b
commit
de6369b82f
2 changed files with 8 additions and 2 deletions
|
|
@ -104,6 +104,12 @@ void disc_close(int drive)
|
|||
if (loaders[driveloaders[drive]].close) loaders[driveloaders[drive]].close(drive);
|
||||
drive_empty[drive] = 1;
|
||||
discfns[drive][0] = 0;
|
||||
drives[drive].poll = NULL;
|
||||
drives[drive].seek = NULL;
|
||||
drives[drive].readsector = NULL;
|
||||
drives[drive].writesector = NULL;
|
||||
drives[drive].readaddress = NULL;
|
||||
drives[drive].format = NULL;
|
||||
}
|
||||
|
||||
int disc_notfound=0;
|
||||
|
|
@ -189,8 +195,6 @@ void disc_readaddress(int drive, int track, int side, int density)
|
|||
{
|
||||
if (drives[drive].readaddress)
|
||||
drives[drive].readaddress(drive, track, side, density);
|
||||
else
|
||||
disc_notfound = 1000;
|
||||
}
|
||||
|
||||
void disc_format(int drive, int track, int side, int density)
|
||||
|
|
|
|||
|
|
@ -517,6 +517,8 @@ void fdc_callback()
|
|||
fdc.res[10] = (fdc.params[0] & 7) | 0x28;
|
||||
if (!fdc.track[fdc.drive])
|
||||
fdc.res[10] |= 0x10;
|
||||
if (writeprot[fdc.drive])
|
||||
fdc.res[10] |= 0x40;
|
||||
|
||||
fdc.stat = (fdc.stat & 0xf) | 0xd0;
|
||||
paramstogo = 1;
|
||||
|
|
|
|||
Loading…
Reference in a new issue