cdrom_set_signature() now does a sanity check on the CD-ROM drive ID, fixes random crashes on hard reset.
This commit is contained in:
@@ -306,6 +306,10 @@ void cdrom_reset_cdb_len(int id)
|
|||||||
|
|
||||||
void cdrom_set_signature(int id)
|
void cdrom_set_signature(int id)
|
||||||
{
|
{
|
||||||
|
if (id >= CDROM_NUM)
|
||||||
|
{
|
||||||
|
return;
|
||||||
|
}
|
||||||
cdrom[id].phase = 1;
|
cdrom[id].phase = 1;
|
||||||
cdrom[id].request_length = 0xEB14;
|
cdrom[id].request_length = 0xEB14;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -559,7 +559,7 @@ static void loadhd(IDE *ide, int d, const char *fn)
|
|||||||
|
|
||||||
void ide_set_signature(IDE *ide)
|
void ide_set_signature(IDE *ide)
|
||||||
{
|
{
|
||||||
uint8_t cdrom_id = atapi_cdrom_drives[cur_ide[ide->board]];
|
uint8_t cdrom_id = atapi_cdrom_drives[ide->channel];
|
||||||
ide->sector=1;
|
ide->sector=1;
|
||||||
ide->head=0;
|
ide->head=0;
|
||||||
if (ide_drive_is_cdrom(ide))
|
if (ide_drive_is_cdrom(ide))
|
||||||
|
|||||||
Reference in New Issue
Block a user