From cfe9e4e854dba0327a302f1d080235a6634e3ea0 Mon Sep 17 00:00:00 2001 From: AJR Date: Sun, 20 Jan 2019 14:07:09 -0500 Subject: bus/isa: Preparation for supporting DACK handshake line (nw) --- src/devices/bus/isa/fdc.cpp | 5 +++++ src/devices/bus/isa/fdc.h | 1 + src/devices/bus/isa/isa.cpp | 20 ++++++++++++++++---- src/devices/bus/isa/isa.h | 10 ++++++---- src/devices/bus/isa/mufdc.cpp | 5 +++++ src/devices/bus/isa/mufdc.h | 1 + src/devices/bus/isa/omti8621.cpp | 5 +++++ src/devices/bus/isa/omti8621.h | 1 + src/devices/bus/isa/wdxt_gen.cpp | 10 ++++++++++ src/devices/bus/isa/wdxt_gen.h | 1 + src/devices/machine/wd11c00_17.cpp | 9 +++++++++ src/devices/machine/wd11c00_17.h | 1 + 12 files changed, 61 insertions(+), 8 deletions(-) diff --git a/src/devices/bus/isa/fdc.cpp b/src/devices/bus/isa/fdc.cpp index f31b0f5f9dd..9c9f52d7a1d 100644 --- a/src/devices/bus/isa/fdc.cpp +++ b/src/devices/bus/isa/fdc.cpp @@ -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); diff --git a/src/devices/bus/isa/fdc.h b/src/devices/bus/isa/fdc.h index 7a1781cdc69..cec5f7dd06e 100644 --- a/src/devices/bus/isa/fdc.h +++ b/src/devices/bus/isa/fdc.h @@ -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 m_fdc; diff --git a/src/devices/bus/isa/isa.cpp b/src/devices/bus/isa/isa.cpp index 417e354180c..93420f62f02 100644 --- a/src/devices/bus/isa/isa.cpp +++ b/src/devices/bus/isa/isa.cpp @@ -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(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) { } diff --git a/src/devices/bus/isa/isa.h b/src/devices/bus/isa/isa.h index 3dc15c9df59..95aaefc9df6 100644 --- a/src/devices/bus/isa/isa.h +++ b/src/devices/bus/isa/isa.h @@ -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(); diff --git a/src/devices/bus/isa/mufdc.cpp b/src/devices/bus/isa/mufdc.cpp index 8930a080d8f..3e40653e175 100644 --- a/src/devices/bus/isa/mufdc.cpp +++ b/src/devices/bus/isa/mufdc.cpp @@ -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); diff --git a/src/devices/bus/isa/mufdc.h b/src/devices/bus/isa/mufdc.h index 4d042a58834..2fa000757e4 100644 --- a/src/devices/bus/isa/mufdc.h +++ b/src/devices/bus/isa/mufdc.h @@ -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: diff --git a/src/devices/bus/isa/omti8621.cpp b/src/devices/bus/isa/omti8621.cpp index 9eebabb188f..bea87f420ee 100644 --- a/src/devices/bus/isa/omti8621.cpp +++ b/src/devices/bus/isa/omti8621.cpp @@ -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); diff --git a/src/devices/bus/isa/omti8621.h b/src/devices/bus/isa/omti8621.h index 070ae2dbe70..1258af71854 100644 --- a/src/devices/bus/isa/omti8621.h +++ b/src/devices/bus/isa/omti8621.h @@ -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); diff --git a/src/devices/bus/isa/wdxt_gen.cpp b/src/devices/bus/isa/wdxt_gen.cpp index 690bc161f7f..57dec00af89 100644 --- a/src/devices/bus/isa/wdxt_gen.cpp +++ b/src/devices/bus/isa/wdxt_gen.cpp @@ -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 - //------------------------------------------------- diff --git a/src/devices/bus/isa/wdxt_gen.h b/src/devices/bus/isa/wdxt_gen.h index 89d3aa5774f..d909b7bd155 100644 --- a/src/devices/bus/isa/wdxt_gen.h +++ b/src/devices/bus/isa/wdxt_gen.h @@ -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 ); diff --git a/src/devices/machine/wd11c00_17.cpp b/src/devices/machine/wd11c00_17.cpp index 499601c943f..b0d58034f6d 100644 --- a/src/devices/machine/wd11c00_17.cpp +++ b/src/devices/machine/wd11c00_17.cpp @@ -300,6 +300,15 @@ WRITE8_MEMBER( wd11c00_17_device::io_w ) } +//------------------------------------------------- +// dack3_w - +//------------------------------------------------- + +WRITE_LINE_MEMBER(wd11c00_17_device::dack3_w) +{ +} + + //------------------------------------------------- // dack_r - //------------------------------------------------- diff --git a/src/devices/machine/wd11c00_17.h b/src/devices/machine/wd11c00_17.h index e109c548202..0b375f61e67 100644 --- a/src/devices/machine/wd11c00_17.h +++ b/src/devices/machine/wd11c00_17.h @@ -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); -- cgit v1.2.3