diff options
Diffstat (limited to 'src/devices/bus/isa/isa.cpp')
-rw-r--r-- | src/devices/bus/isa/isa.cpp | 254 |
1 files changed, 129 insertions, 125 deletions
diff --git a/src/devices/bus/isa/isa.cpp b/src/devices/bus/isa/isa.cpp index 92ead5df95b..f212f61d3d7 100644 --- a/src/devices/bus/isa/isa.cpp +++ b/src/devices/bus/isa/isa.cpp @@ -107,10 +107,10 @@ isa8_device::isa8_device(const machine_config &mconfig, const char *tag, device_ isa8_device::isa8_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, type, tag, owner, clock), device_memory_interface(mconfig, *this), - m_mem_config("ISA 8-bit mem", ENDIANNESS_LITTLE, 8, 24, 0, address_map_constructor()), - m_io_config("ISA 8-bit I/O", ENDIANNESS_LITTLE, 8, 16, 0, address_map_constructor()), - m_mem16_config("ISA 16-bit mem", ENDIANNESS_LITTLE, 16, 24, 0, address_map_constructor()), - m_io16_config("ISA 16-bit I/O", ENDIANNESS_LITTLE, 16, 16, 0, address_map_constructor()), + m_mem_config("mem8", ENDIANNESS_LITTLE, 8, 24, 0, address_map_constructor()), + m_io_config("io8", ENDIANNESS_LITTLE, 8, 16, 0, address_map_constructor()), + m_mem16_config("mem16", ENDIANNESS_LITTLE, 16, 24, 0, address_map_constructor()), + m_io16_config("io16", ENDIANNESS_LITTLE, 16, 16, 0, address_map_constructor()), m_memspace(*this, finder_base::DUMMY_TAG, -1), m_iospace(*this, finder_base::DUMMY_TAG, -1), m_memwidth(0), @@ -125,6 +125,7 @@ isa8_device::isa8_device(const machine_config &mconfig, device_type type, const m_out_drq1_cb(*this), m_out_drq2_cb(*this), m_out_drq3_cb(*this), + m_write_iochrdy(*this), m_write_iochck(*this) { std::fill(std::begin(m_dma_device), std::end(m_dma_device), nullptr); @@ -151,22 +152,22 @@ device_memory_interface::space_config_vector isa16_device::memory_space_config() }; } -READ8_MEMBER(isa8_device::mem_r) +uint8_t isa8_device::mem_r(offs_t offset) { return m_memspace->read_byte(offset); } -WRITE8_MEMBER(isa8_device::mem_w) +void isa8_device::mem_w(offs_t offset, uint8_t data) { m_memspace->write_byte(offset, data); } -READ8_MEMBER(isa8_device::io_r) +uint8_t isa8_device::io_r(offs_t offset) { return m_iospace->read_byte(offset); } -WRITE8_MEMBER(isa8_device::io_w) +void isa8_device::io_w(offs_t offset, uint8_t data) { m_iospace->write_byte(offset, data); } @@ -222,19 +223,6 @@ void isa8_device::device_config_complete() void isa8_device::device_resolve_objects() { - // resolve callbacks - m_write_iochck.resolve_safe(); - - m_out_irq2_cb.resolve_safe(); - m_out_irq3_cb.resolve_safe(); - m_out_irq4_cb.resolve_safe(); - m_out_irq5_cb.resolve_safe(); - m_out_irq6_cb.resolve_safe(); - m_out_irq7_cb.resolve_safe(); - m_out_drq1_cb.resolve_safe(); - m_out_drq2_cb.resolve_safe(); - m_out_drq3_cb.resolve_safe(); - m_iowidth = m_iospace->data_width(); m_memwidth = m_memspace->data_width(); } @@ -256,7 +244,7 @@ void isa8_device::device_reset() } -template<typename R, typename W> void isa8_device::install_space(int spacenum, offs_t start, offs_t end, R rhandler, W whandler) +template <typename R, typename W> void isa8_device::install_space(int spacenum, offs_t start, offs_t end, R rhandler, W whandler) { int buswidth; address_space *space; @@ -276,24 +264,35 @@ template<typename R, typename W> void isa8_device::install_space(int spacenum, o fatalerror("Unknown space passed to isa8_device::install_space!\n"); } - switch(buswidth) + switch (buswidth) { case 8: - space->install_readwrite_handler(start, end, rhandler, whandler, 0); + space->install_read_handler(start, end, rhandler, 0); + space->install_write_handler(start, end, whandler, 0); break; case 16: - space->install_readwrite_handler(start, end, rhandler, whandler, 0xffff); + space->install_read_handler(start, end, rhandler, 0xffff); + space->install_write_handler(start, end, whandler, 0xffff); break; case 32: - if ((start % 4) == 0) { - if ((end-start)==1) { - space->install_readwrite_handler(start, end+2, rhandler, whandler, 0x0000ffff); - } else { - space->install_readwrite_handler(start, end, rhandler, whandler, 0xffffffff); + if ((start % 4) == 0) + { + if ((end - start) == 1) + { + space->install_read_handler(start, end + 2, rhandler, 0x0000ffff); + space->install_write_handler(start, end + 2, whandler, 0x0000ffff); } - } else { + else + { + space->install_read_handler(start, end, rhandler, 0xffffffff); + space->install_write_handler(start, end, whandler, 0xffffffff); + } + } + else + { // we handle just misaligned by 2 - space->install_readwrite_handler(start-2, end, rhandler, whandler, 0xffff0000); + space->install_read_handler(start - 2, end, rhandler, 0xffff0000); + space->install_write_handler(start - 2, end, whandler, 0xffff0000); } break; default: @@ -301,42 +300,56 @@ template<typename R, typename W> void isa8_device::install_space(int spacenum, o } } -template<typename R, typename W> void isa8_device::install_memory(offs_t start, offs_t end, R rhandler, W whandler) -{ - install_space(AS_ISA_MEM, start, end, rhandler, whandler); -} - -template<typename R, typename W> void isa8_device::install_device(offs_t start, offs_t end, R rhandler, W whandler) -{ - install_space(AS_ISA_IO, start, end, rhandler, whandler); -} - template void isa8_device::install_space<read8_delegate, write8_delegate >(int spacenum, offs_t start, offs_t end, read8_delegate rhandler, write8_delegate whandler); +template void isa8_device::install_space<read8_delegate, write8m_delegate >(int spacenum, offs_t start, offs_t end, read8_delegate rhandler, write8m_delegate whandler); +template void isa8_device::install_space<read8_delegate, write8s_delegate >(int spacenum, offs_t start, offs_t end, read8_delegate rhandler, write8s_delegate whandler); +template void isa8_device::install_space<read8_delegate, write8sm_delegate >(int spacenum, offs_t start, offs_t end, read8_delegate rhandler, write8sm_delegate whandler); +template void isa8_device::install_space<read8_delegate, write8mo_delegate >(int spacenum, offs_t start, offs_t end, read8_delegate rhandler, write8mo_delegate whandler); +template void isa8_device::install_space<read8_delegate, write8smo_delegate>(int spacenum, offs_t start, offs_t end, read8_delegate rhandler, write8smo_delegate whandler); + +template void isa8_device::install_space<read8m_delegate, write8_delegate >(int spacenum, offs_t start, offs_t end, read8m_delegate rhandler, write8_delegate whandler); template void isa8_device::install_space<read8m_delegate, write8m_delegate >(int spacenum, offs_t start, offs_t end, read8m_delegate rhandler, write8m_delegate whandler); +template void isa8_device::install_space<read8m_delegate, write8s_delegate >(int spacenum, offs_t start, offs_t end, read8m_delegate rhandler, write8s_delegate whandler); +template void isa8_device::install_space<read8m_delegate, write8sm_delegate >(int spacenum, offs_t start, offs_t end, read8m_delegate rhandler, write8sm_delegate whandler); +template void isa8_device::install_space<read8m_delegate, write8mo_delegate >(int spacenum, offs_t start, offs_t end, read8m_delegate rhandler, write8mo_delegate whandler); +template void isa8_device::install_space<read8m_delegate, write8smo_delegate>(int spacenum, offs_t start, offs_t end, read8m_delegate rhandler, write8smo_delegate whandler); + +template void isa8_device::install_space<read8s_delegate, write8_delegate >(int spacenum, offs_t start, offs_t end, read8s_delegate rhandler, write8_delegate whandler); +template void isa8_device::install_space<read8s_delegate, write8m_delegate >(int spacenum, offs_t start, offs_t end, read8s_delegate rhandler, write8m_delegate whandler); template void isa8_device::install_space<read8s_delegate, write8s_delegate >(int spacenum, offs_t start, offs_t end, read8s_delegate rhandler, write8s_delegate whandler); +template void isa8_device::install_space<read8s_delegate, write8sm_delegate >(int spacenum, offs_t start, offs_t end, read8s_delegate rhandler, write8sm_delegate whandler); +template void isa8_device::install_space<read8s_delegate, write8mo_delegate >(int spacenum, offs_t start, offs_t end, read8s_delegate rhandler, write8mo_delegate whandler); +template void isa8_device::install_space<read8s_delegate, write8smo_delegate>(int spacenum, offs_t start, offs_t end, read8s_delegate rhandler, write8smo_delegate whandler); + +template void isa8_device::install_space<read8sm_delegate, write8_delegate >(int spacenum, offs_t start, offs_t end, read8sm_delegate rhandler, write8_delegate whandler); +template void isa8_device::install_space<read8sm_delegate, write8m_delegate >(int spacenum, offs_t start, offs_t end, read8sm_delegate rhandler, write8m_delegate whandler); +template void isa8_device::install_space<read8sm_delegate, write8s_delegate >(int spacenum, offs_t start, offs_t end, read8sm_delegate rhandler, write8s_delegate whandler); template void isa8_device::install_space<read8sm_delegate, write8sm_delegate >(int spacenum, offs_t start, offs_t end, read8sm_delegate rhandler, write8sm_delegate whandler); -template void isa8_device::install_space<read8mo_delegate, write8mo_delegate >(int spacenum, offs_t start, offs_t end, read8mo_delegate rhandler, write8mo_delegate whandler); -template void isa8_device::install_space<read8smo_delegate, write8smo_delegate>(int spacenum, offs_t start, offs_t end, read8smo_delegate rhandler, write8smo_delegate whandler); +template void isa8_device::install_space<read8sm_delegate, write8mo_delegate >(int spacenum, offs_t start, offs_t end, read8sm_delegate rhandler, write8mo_delegate whandler); +template void isa8_device::install_space<read8sm_delegate, write8smo_delegate>(int spacenum, offs_t start, offs_t end, read8sm_delegate rhandler, write8smo_delegate whandler); -template void isa8_device::install_memory<read8_delegate, write8_delegate >(offs_t start, offs_t end, read8_delegate rhandler, write8_delegate whandler); -template void isa8_device::install_memory<read8m_delegate, write8m_delegate >(offs_t start, offs_t end, read8m_delegate rhandler, write8m_delegate whandler); -template void isa8_device::install_memory<read8s_delegate, write8s_delegate >(offs_t start, offs_t end, read8s_delegate rhandler, write8s_delegate whandler); -template void isa8_device::install_memory<read8sm_delegate, write8sm_delegate >(offs_t start, offs_t end, read8sm_delegate rhandler, write8sm_delegate whandler); -template void isa8_device::install_memory<read8mo_delegate, write8mo_delegate >(offs_t start, offs_t end, read8mo_delegate rhandler, write8mo_delegate whandler); -template void isa8_device::install_memory<read8smo_delegate, write8smo_delegate>(offs_t start, offs_t end, read8smo_delegate rhandler, write8smo_delegate whandler); +template void isa8_device::install_space<read8mo_delegate, write8_delegate >(int spacenum, offs_t start, offs_t end, read8mo_delegate rhandler, write8_delegate whandler); +template void isa8_device::install_space<read8mo_delegate, write8m_delegate >(int spacenum, offs_t start, offs_t end, read8mo_delegate rhandler, write8m_delegate whandler); +template void isa8_device::install_space<read8mo_delegate, write8s_delegate >(int spacenum, offs_t start, offs_t end, read8mo_delegate rhandler, write8s_delegate whandler); +template void isa8_device::install_space<read8mo_delegate, write8sm_delegate >(int spacenum, offs_t start, offs_t end, read8mo_delegate rhandler, write8sm_delegate whandler); +template void isa8_device::install_space<read8mo_delegate, write8mo_delegate >(int spacenum, offs_t start, offs_t end, read8mo_delegate rhandler, write8mo_delegate whandler); +template void isa8_device::install_space<read8mo_delegate, write8smo_delegate>(int spacenum, offs_t start, offs_t end, read8mo_delegate rhandler, write8smo_delegate whandler); -template void isa8_device::install_device<read8_delegate, write8_delegate >(offs_t start, offs_t end, read8_delegate rhandler, write8_delegate whandler); -template void isa8_device::install_device<read8m_delegate, write8m_delegate >(offs_t start, offs_t end, read8m_delegate rhandler, write8m_delegate whandler); -template void isa8_device::install_device<read8s_delegate, write8s_delegate >(offs_t start, offs_t end, read8s_delegate rhandler, write8s_delegate whandler); -template void isa8_device::install_device<read8sm_delegate, write8sm_delegate >(offs_t start, offs_t end, read8sm_delegate rhandler, write8sm_delegate whandler); -template void isa8_device::install_device<read8mo_delegate, write8mo_delegate >(offs_t start, offs_t end, read8mo_delegate rhandler, write8mo_delegate whandler); -template void isa8_device::install_device<read8smo_delegate, write8smo_delegate>(offs_t start, offs_t end, read8smo_delegate rhandler, write8smo_delegate whandler); +template void isa8_device::install_space<read8smo_delegate, write8_delegate >(int spacenum, offs_t start, offs_t end, read8smo_delegate rhandler, write8_delegate whandler); +template void isa8_device::install_space<read8smo_delegate, write8m_delegate >(int spacenum, offs_t start, offs_t end, read8smo_delegate rhandler, write8m_delegate whandler); +template void isa8_device::install_space<read8smo_delegate, write8s_delegate >(int spacenum, offs_t start, offs_t end, read8smo_delegate rhandler, write8s_delegate whandler); +template void isa8_device::install_space<read8smo_delegate, write8sm_delegate >(int spacenum, offs_t start, offs_t end, read8smo_delegate rhandler, write8sm_delegate whandler); +template void isa8_device::install_space<read8smo_delegate, write8mo_delegate >(int spacenum, offs_t start, offs_t end, read8smo_delegate rhandler, write8mo_delegate whandler); +template void isa8_device::install_space<read8smo_delegate, write8smo_delegate>(int spacenum, offs_t start, offs_t end, read8smo_delegate rhandler, write8smo_delegate whandler); +void isa8_device::install_bank(offs_t start, offs_t end, uint8_t *data) +{ + m_memspace->install_ram(start, end, data); +} -void isa8_device::install_bank(offs_t start, offs_t end, const char *tag, uint8_t *data) +void isa8_device::install_bank(offs_t start, offs_t end, memory_bank *bank) { - m_memspace->install_readwrite_bank(start, end, 0, tag ); - machine().root_device().membank(m_memspace->device().siblingtag(tag).c_str())->set_base(data); + m_memspace->install_readwrite_bank(start, end, bank); } void isa8_device::unmap_bank(offs_t start, offs_t end) @@ -344,16 +357,15 @@ void isa8_device::unmap_bank(offs_t start, offs_t end) m_memspace->unmap_readwrite(start, end); } -void isa8_device::install_rom(device_t *dev, offs_t start, offs_t end, const char *tag, const char *region) +void isa8_device::install_rom(device_t *dev, offs_t start, offs_t end, const char *region) { if (machine().root_device().memregion("isa")) { uint8_t *src = dev->memregion(region)->base(); uint8_t *dest = machine().root_device().memregion("isa")->base() + start - 0xc0000; memcpy(dest,src, end - start + 1); } else { - m_memspace->install_read_bank(start, end, 0, tag); + m_memspace->install_rom(start, end, machine().root_device().memregion(dev->subtag(region).c_str())->base()); m_memspace->unmap_write(start, end); - machine().root_device().membank(m_memspace->device().siblingtag(tag).c_str())->set_base(machine().root_device().memregion(dev->subtag(region).c_str())->base()); } } @@ -369,18 +381,23 @@ bool isa8_device::is_option_rom_space_available(offs_t start, int size) return true; } +void isa8_device::unmap_readwrite(offs_t start, offs_t end) +{ + m_memspace->unmap_readwrite(start, end); +} + // interrupt request from isa card -WRITE_LINE_MEMBER( isa8_device::irq2_w ) { m_out_irq2_cb(state); } -WRITE_LINE_MEMBER( isa8_device::irq3_w ) { m_out_irq3_cb(state); } -WRITE_LINE_MEMBER( isa8_device::irq4_w ) { m_out_irq4_cb(state); } -WRITE_LINE_MEMBER( isa8_device::irq5_w ) { m_out_irq5_cb(state); } -WRITE_LINE_MEMBER( isa8_device::irq6_w ) { m_out_irq6_cb(state); } -WRITE_LINE_MEMBER( isa8_device::irq7_w ) { m_out_irq7_cb(state); } +void isa8_device::irq2_w(int state) { m_out_irq2_cb(state); } +void isa8_device::irq3_w(int state) { m_out_irq3_cb(state); } +void isa8_device::irq4_w(int state) { m_out_irq4_cb(state); } +void isa8_device::irq5_w(int state) { m_out_irq5_cb(state); } +void isa8_device::irq6_w(int state) { m_out_irq6_cb(state); } +void isa8_device::irq7_w(int state) { m_out_irq7_cb(state); } // dma request from isa card -WRITE_LINE_MEMBER( isa8_device::drq1_w ) { m_out_drq1_cb(state); } -WRITE_LINE_MEMBER( isa8_device::drq2_w ) { m_out_drq2_cb(state); } -WRITE_LINE_MEMBER( isa8_device::drq3_w ) { m_out_drq3_cb(state); } +void isa8_device::drq1_w(int state) { m_out_drq1_cb(state); } +void isa8_device::drq2_w(int state) { m_out_drq2_cb(state); } +void isa8_device::drq3_w(int state) { m_out_drq3_cb(state); } uint8_t isa8_device::dack_r(int line) { @@ -407,6 +424,11 @@ void isa8_device::eop_w(int channel, int state) m_dma_device[channel]->eop_w(state); } +void isa8_device::set_ready(int state) +{ + m_write_iochrdy(state); +} + void isa8_device::nmi() { // active low pulse @@ -428,8 +450,8 @@ void isa8_device::nmi() //------------------------------------------------- device_isa8_card_interface::device_isa8_card_interface(const machine_config &mconfig, device_t &device) - : device_slot_card_interface(mconfig, device), - m_isa(nullptr), m_isa_dev(nullptr), m_next(nullptr) + : device_interface(device, "isa"), + m_isa(nullptr), m_isa_dev(nullptr) { } @@ -485,28 +507,7 @@ isa16_device::isa16_device(const machine_config &mconfig, const char *tag, devic { } -//------------------------------------------------- -// device_start - device-specific startup -//------------------------------------------------- - -void isa16_device::device_start() -{ - isa8_device::device_start(); - - // resolve callbacks - m_out_irq10_cb.resolve_safe(); - m_out_irq11_cb.resolve_safe(); - m_out_irq12_cb.resolve_safe(); - m_out_irq14_cb.resolve_safe(); - m_out_irq15_cb.resolve_safe(); - - m_out_drq0_cb.resolve_safe(); - m_out_drq5_cb.resolve_safe(); - m_out_drq6_cb.resolve_safe(); - m_out_drq7_cb.resolve_safe(); -} - -void isa16_device::install16_device(offs_t start, offs_t end, read16_delegate rhandler, write16_delegate whandler) +template<typename R, typename W> void isa16_device::install16_device(offs_t start, offs_t end, R rhandler, W whandler) { int buswidth = m_iowidth; switch(buswidth) @@ -523,7 +524,7 @@ void isa16_device::install16_device(offs_t start, offs_t end, read16_delegate rh m_iospace->install_readwrite_handler(start, end, rhandler, whandler, 0xffffffff); } } else { - // we handle just misalligned by 2 + // we handle just misaligned by 2 m_iospace->install_readwrite_handler(start-2, end, rhandler, whandler, 0xffff0000); } @@ -533,72 +534,75 @@ void isa16_device::install16_device(offs_t start, offs_t end, read16_delegate rh } } -READ16_MEMBER(isa16_device::mem16_r) +template void isa16_device::install16_device<read16_delegate, write16_delegate >(offs_t start, offs_t end, read16_delegate rhandler, write16_delegate whandler); +template void isa16_device::install16_device<read16s_delegate, write16s_delegate >(offs_t start, offs_t end, read16s_delegate rhandler, write16s_delegate whandler); +template void isa16_device::install16_device<read16sm_delegate, write16sm_delegate >(offs_t start, offs_t end, read16sm_delegate rhandler, write16sm_delegate whandler); +template void isa16_device::install16_device<read16smo_delegate, write16smo_delegate>(offs_t start, offs_t end, read16smo_delegate rhandler, write16smo_delegate whandler); + +uint16_t isa16_device::mem16_r(offs_t offset, uint16_t mem_mask) { return m_memspace->read_word(offset<<1, mem_mask); } -WRITE16_MEMBER(isa16_device::mem16_w) +void isa16_device::mem16_w(offs_t offset, uint16_t data, uint16_t mem_mask) { m_memspace->write_word(offset<<1, data, mem_mask); } -READ16_MEMBER(isa16_device::io16_r) +uint16_t isa16_device::io16_r(offs_t offset, uint16_t mem_mask) { return m_iospace->read_word(offset<<1, mem_mask); } -WRITE16_MEMBER(isa16_device::io16_w) +void isa16_device::io16_w(offs_t offset, uint16_t data, uint16_t mem_mask) { m_iospace->write_word(offset<<1, data, mem_mask); } -READ16_MEMBER(isa16_device::mem16_swap_r) +uint16_t isa16_device::mem16_swap_r(offs_t offset, uint16_t mem_mask) { - uint16_t rv; - mem_mask = (mem_mask<<8) | (mem_mask>>8); + mem_mask = swapendian_int16(mem_mask); - rv = m_memspace->read_word(offset<<1, mem_mask); + uint16_t rv = m_memspace->read_word(offset<<1, mem_mask); - return (rv<<8) | (rv>>8); + return swapendian_int16(rv); } -WRITE16_MEMBER(isa16_device::mem16_swap_w) +void isa16_device::mem16_swap_w(offs_t offset, uint16_t data, uint16_t mem_mask) { - mem_mask = (mem_mask<<8) | (mem_mask>>8); - data = (data<<8) | (data>>8); + mem_mask = swapendian_int16(mem_mask); + data = swapendian_int16(data); m_memspace->write_word(offset<<1, data, mem_mask); } -READ16_MEMBER(isa16_device::io16_swap_r) +uint16_t isa16_device::io16_swap_r(offs_t offset, uint16_t mem_mask) { - uint16_t rv; - mem_mask = (mem_mask<<8) | (mem_mask>>8); + mem_mask = swapendian_int16(mem_mask); - rv = m_iospace->read_word(offset<<1, mem_mask); + uint16_t rv = m_iospace->read_word(offset<<1, mem_mask); - return (rv<<8) | (rv>>8); + return swapendian_int16(rv); } -WRITE16_MEMBER(isa16_device::io16_swap_w) +void isa16_device::io16_swap_w(offs_t offset, uint16_t data, uint16_t mem_mask) { - mem_mask = (mem_mask<<8) | (mem_mask>>8); - data = (data<<8) | (data>>8); + mem_mask = swapendian_int16(mem_mask); + data = swapendian_int16(data); m_iospace->write_word(offset<<1, data, mem_mask); } // interrupt request from isa card -WRITE_LINE_MEMBER( isa16_device::irq10_w ) { m_out_irq10_cb(state); } -WRITE_LINE_MEMBER( isa16_device::irq11_w ) { m_out_irq11_cb(state); } -WRITE_LINE_MEMBER( isa16_device::irq12_w ) { m_out_irq12_cb(state); } -WRITE_LINE_MEMBER( isa16_device::irq14_w ) { m_out_irq14_cb(state); } -WRITE_LINE_MEMBER( isa16_device::irq15_w ) { m_out_irq15_cb(state); } +void isa16_device::irq10_w(int state) { m_out_irq10_cb(state); } +void isa16_device::irq11_w(int state) { m_out_irq11_cb(state); } +void isa16_device::irq12_w(int state) { m_out_irq12_cb(state); } +void isa16_device::irq14_w(int state) { m_out_irq14_cb(state); } +void isa16_device::irq15_w(int state) { m_out_irq15_cb(state); } // dma request from isa card -WRITE_LINE_MEMBER( isa16_device::drq0_w ) { m_out_drq0_cb(state); } -WRITE_LINE_MEMBER( isa16_device::drq5_w ) { m_out_drq5_cb(state); } -WRITE_LINE_MEMBER( isa16_device::drq6_w ) { m_out_drq6_cb(state); } -WRITE_LINE_MEMBER( isa16_device::drq7_w ) { m_out_drq7_cb(state); } +void isa16_device::drq0_w(int state) { m_out_drq0_cb(state); } +void isa16_device::drq5_w(int state) { m_out_drq5_cb(state); } +void isa16_device::drq6_w(int state) { m_out_drq6_cb(state); } +void isa16_device::drq7_w(int state) { m_out_drq7_cb(state); } uint16_t isa16_device::dack16_r(int line) { |