mirror of
https://github.com/holub/mame
synced 2025-10-06 17:08:28 +03:00
r9751: Fix race condition in PDC device. Multi disk load now possible.
This commit is contained in:
parent
1243bb8d96
commit
e1c13a3f5e
@ -449,6 +449,8 @@ WRITE8_MEMBER(pdc_device::p0_7_w)
|
||||
case 4: /* Port 4: FDD command completion status low byte [0x5FF030B0] */
|
||||
if(TRACE_PDC_FDC) logerror("PDC: Port 0x04 WRITE: %02X\n", data);
|
||||
reg_p4 = data;
|
||||
if(TRACE_PDC_FDC) logerror("PDC: Resetting 0x38 bit 1. This causes the PDC to stop looking for a command.\n");
|
||||
reg_p38 &= ~2; // Clear bit 1
|
||||
break;
|
||||
case 5: /* Port 5: FDD command completion status high byte [0x5FF030B0] */
|
||||
if(TRACE_PDC_FDC) logerror("PDC: Port 0x05 WRITE: %02X\n", data);
|
||||
@ -477,8 +479,8 @@ WRITE8_MEMBER(pdc_device::fdd_68k_w)
|
||||
{
|
||||
case 0x21: /* Port 21: ?? */
|
||||
if(TRACE_PDC_FDC) logerror("PDC: Port 0x21 WRITE: %02X\n", data);
|
||||
if(TRACE_PDC_FDC) logerror("PDC: Resetting 0x38 bit 1\n");
|
||||
reg_p38 &= ~2; // Clear bit 1
|
||||
//if(TRACE_PDC_FDC) logerror("PDC: Resetting 0x38 bit 1\n");
|
||||
//reg_p38 &= ~2; // Clear bit 1
|
||||
reg_p21 = data;
|
||||
break;
|
||||
case 0x23: /* Port 23: FDD 68k DMA high byte */
|
||||
@ -547,15 +549,15 @@ WRITE8_MEMBER(pdc_device::p50_5f_w)
|
||||
switch(data)
|
||||
{
|
||||
case 0x00:
|
||||
if(TRACE_PDC_FDC) logerror("PDC: FDD (all) Motor off.\n");
|
||||
if(TRACE_PDC_FDC) logerror("PDC: FDD (all) Motor off. PC: %X\n", space.device().safe_pc());
|
||||
m_fdc->subdevice<floppy_connector>("0")->get_device()->mon_w(1);
|
||||
break;
|
||||
case 0x80:
|
||||
if(TRACE_PDC_FDC) logerror("PDC: FDD (all) Motor on.\n");
|
||||
if(TRACE_PDC_FDC) logerror("PDC: FDD (all) Motor on. PC: %X\n", space.device().safe_pc());
|
||||
m_fdc->subdevice<floppy_connector>("0")->get_device()->mon_w(0);
|
||||
break;
|
||||
default:
|
||||
if(TRACE_PDC_FDC) logerror("PDC: Port 0x52 WRITE: %x\n", data);
|
||||
if(TRACE_PDC_FDC) logerror("PDC: Port 0x52 WRITE: %x\n PC: %X\n", data, space.device().safe_pc());
|
||||
}
|
||||
break;
|
||||
case 0x53: /* Probably set_rate here */
|
||||
@ -565,7 +567,7 @@ WRITE8_MEMBER(pdc_device::p50_5f_w)
|
||||
switch(data)
|
||||
{
|
||||
case 0x00:
|
||||
if(TRACE_PDC_FDC) logerror("PDC: FDD 1 Motor off.\n");
|
||||
if(TRACE_PDC_FDC) logerror("PDC: FDD 1 Motor off. PC: %X\n", space.device().safe_pc());
|
||||
m_fdc->subdevice<floppy_connector>("0")->get_device()->mon_w(1);
|
||||
break;
|
||||
case 0x80:
|
||||
|
Loading…
Reference in New Issue
Block a user