bus/isa: Preparation for supporting DACK handshake line (nw)

This commit is contained in:
AJR 2019-01-20 14:07:09 -05:00
parent d682a3c569
commit cfe9e4e854
12 changed files with 61 additions and 8 deletions

View File

@ -72,6 +72,11 @@ void isa8_fdc_device::dack_w(int line, uint8_t data)
return m_fdc->dma_w(data);
}
void isa8_fdc_device::dack_line_w(int line, int state)
{
//m_fdc->dack_w(state);
}
void isa8_fdc_device::eop_w(int state)
{
m_fdc->tc_w(state == ASSERT_LINE);

View File

@ -40,6 +40,7 @@ protected:
virtual uint8_t dack_r(int line) override;
virtual void dack_w(int line, uint8_t data) override;
virtual void dack_line_w(int line, int state) override;
virtual void eop_w(int state) override;
required_device<pc_fdc_interface> m_fdc;

View File

@ -378,12 +378,18 @@ uint8_t isa8_device::dack_r(int line)
return 0xff;
}
void isa8_device::dack_w(int line,uint8_t data)
void isa8_device::dack_w(int line, uint8_t data)
{
if (m_dma_device[line])
return m_dma_device[line]->dack_w(line,data);
}
void isa8_device::dack_line_w(int line, int state)
{
if (m_dma_device[line])
m_dma_device[line]->dack_line_w(line, state);
}
void isa8_device::eop_w(int channel, int state)
{
if (m_dma_eop[channel] && m_dma_device[channel])
@ -438,9 +444,15 @@ uint8_t device_isa8_card_interface::dack_r(int line)
{
return 0;
}
void device_isa8_card_interface::dack_w(int line,uint8_t data)
void device_isa8_card_interface::dack_w(int line, uint8_t data)
{
}
void device_isa8_card_interface::dack_line_w(int line, int state)
{
}
void device_isa8_card_interface::eop_w(int state)
{
}
@ -593,7 +605,7 @@ uint16_t isa16_device::dack16_r(int line)
return 0xffff;
}
void isa16_device::dack16_w(int line,uint16_t data)
void isa16_device::dack16_w(int line, uint16_t data)
{
if (m_dma_device[line])
return dynamic_cast<device_isa16_card_interface *>(m_dma_device[line])->dack16_w(line,data);
@ -647,6 +659,6 @@ uint16_t device_isa16_card_interface::dack16_r(int line)
return 0;
}
void device_isa16_card_interface::dack16_w(int line,uint16_t data)
void device_isa16_card_interface::dack16_w(int line, uint16_t data)
{
}

View File

@ -176,7 +176,8 @@ public:
DECLARE_WRITE8_MEMBER(io_w);
uint8_t dack_r(int line);
void dack_w(int line,uint8_t data);
void dack_w(int line, uint8_t data);
void dack_line_w(int line, int state);
void eop_w(int channels, int state);
void nmi();
@ -246,7 +247,8 @@ public:
void set_isa_device();
// configuration access
virtual uint8_t dack_r(int line);
virtual void dack_w(int line,uint8_t data);
virtual void dack_w(int line, uint8_t data);
virtual void dack_line_w(int line, int state);
virtual void eop_w(int state);
virtual void remap(int space_id, offs_t start, offs_t end) {}
@ -325,7 +327,7 @@ public:
DECLARE_WRITE_LINE_MEMBER( drq7_w );
uint16_t dack16_r(int line);
void dack16_w(int line,uint16_t data);
void dack16_w(int line, uint16_t data);
virtual void remap(int space_id, offs_t start, offs_t end) override;
// 16 bit accessors for ISA-defined address spaces
@ -370,7 +372,7 @@ public:
// construction/destruction
virtual ~device_isa16_card_interface();
virtual uint16_t dack16_r(int line);
virtual void dack16_w(int line,uint16_t data);
virtual void dack16_w(int line, uint16_t data);
void set_isa_device();

View File

@ -195,6 +195,11 @@ void mufdc_device::dack_w(int line, uint8_t data)
return m_fdc->dma_w(data);
}
void mufdc_device::dack_line_w(int line, int state)
{
//m_fdc->dack_w(state);
}
void mufdc_device::eop_w(int state)
{
m_fdc->tc_w(state == ASSERT_LINE);

View File

@ -47,6 +47,7 @@ protected:
// device_isa8_card_interface
virtual uint8_t dack_r(int line) override;
virtual void dack_w(int line, uint8_t data) override;
virtual void dack_line_w(int line, int state) override;
virtual void eop_w(int state) override;
private:

View File

@ -1285,6 +1285,11 @@ void omti8621_device::dack_w(int line, uint8_t data)
return m_fdc->dma_w(data);
}
void omti8621_device::dack_line_w(int line, int state)
{
//m_fdc->dack_w(state);
}
void omti8621_device::eop_w(int state)
{
m_fdc->tc_w(state == ASSERT_LINE);

View File

@ -56,6 +56,7 @@ protected:
virtual uint8_t dack_r(int line) override;
virtual void dack_w(int line, uint8_t data) override;
virtual void dack_line_w(int line, int state) override;
virtual void eop_w(int state) override;
void set_interrupt(enum line_state line_state);

View File

@ -236,6 +236,16 @@ void wdxt_gen_device::dack_w(int line, uint8_t data)
}
//-------------------------------------------------
// dack_line_w -
//-------------------------------------------------
void wdxt_gen_device::dack_line_w(int line, int state)
{
m_host->dack3_w(state);
}
//-------------------------------------------------
// wd1015_t1_r -
//-------------------------------------------------

View File

@ -52,6 +52,7 @@ protected:
// device_isa8_card_interface
virtual uint8_t dack_r(int line) override;
virtual void dack_w(int line, uint8_t data) override;
virtual void dack_line_w(int line, int state) override;
private:
DECLARE_WRITE_LINE_MEMBER( irq5_w );

View File

@ -300,6 +300,15 @@ WRITE8_MEMBER( wd11c00_17_device::io_w )
}
//-------------------------------------------------
// dack3_w -
//-------------------------------------------------
WRITE_LINE_MEMBER(wd11c00_17_device::dack3_w)
{
}
//-------------------------------------------------
// dack_r -
//-------------------------------------------------

View File

@ -39,6 +39,7 @@ public:
DECLARE_READ8_MEMBER( io_r );
DECLARE_WRITE8_MEMBER( io_w );
DECLARE_WRITE_LINE_MEMBER( dack3_w );
uint8_t dack_r();
void dack_w(uint8_t data);