mirror of
https://github.com/holub/mame
synced 2025-05-28 08:33:05 +03:00
(nw) well that was dumb - fix crashing ATA devices, slightly modernise some code
This commit is contained in:
parent
cecad654da
commit
27d0cb90ff
@ -251,17 +251,17 @@ void abstract_ata_interface_device::device_start()
|
||||
{
|
||||
if (i == 0)
|
||||
{
|
||||
dev->m_irq_handler.set_callback(DEVCB_WRITELINE(*this, abstract_ata_interface_device, irq0_write_line));
|
||||
dev->m_dmarq_handler.set_callback(DEVCB_WRITELINE(*this, abstract_ata_interface_device, dmarq0_write_line));
|
||||
dev->m_dasp_handler.set_callback(DEVCB_WRITELINE(*this, abstract_ata_interface_device, dasp0_write_line));
|
||||
dev->m_pdiag_handler.set_callback(DEVCB_WRITELINE(*this, abstract_ata_interface_device, pdiag0_write_line));
|
||||
dev->m_irq_handler.bind().set(*this, FUNC(abstract_ata_interface_device::irq0_write_line));
|
||||
dev->m_dmarq_handler.bind().set(*this, FUNC(abstract_ata_interface_device::dmarq0_write_line));
|
||||
dev->m_dasp_handler.bind().set(*this, FUNC(abstract_ata_interface_device::dasp0_write_line));
|
||||
dev->m_pdiag_handler.bind().set(*this, FUNC(abstract_ata_interface_device::pdiag0_write_line));
|
||||
}
|
||||
else
|
||||
{
|
||||
dev->m_irq_handler.set_callback(DEVCB_WRITELINE(*this, abstract_ata_interface_device, irq1_write_line));
|
||||
dev->m_dmarq_handler.set_callback(DEVCB_WRITELINE(*this, abstract_ata_interface_device, dmarq1_write_line));
|
||||
dev->m_dasp_handler.set_callback(DEVCB_WRITELINE(*this, abstract_ata_interface_device, dasp1_write_line));
|
||||
dev->m_pdiag_handler.set_callback(DEVCB_WRITELINE(*this, abstract_ata_interface_device, pdiag1_write_line));
|
||||
dev->m_irq_handler.bind().set(*this, FUNC(abstract_ata_interface_device::irq1_write_line));
|
||||
dev->m_dmarq_handler.bind().set(*this, FUNC(abstract_ata_interface_device::dmarq1_write_line));
|
||||
dev->m_dasp_handler.bind().set(*this, FUNC(abstract_ata_interface_device::dasp1_write_line));
|
||||
dev->m_pdiag_handler.bind().set(*this, FUNC(abstract_ata_interface_device::pdiag1_write_line));
|
||||
}
|
||||
|
||||
dev->write_csel(i);
|
||||
|
@ -784,7 +784,7 @@ private:
|
||||
std::enable_if_t<is_read_method<T>::value, delegate_builder<delegate_type_t<T> > > set(U &obj, T &&func, char const *name)
|
||||
{
|
||||
set_used();
|
||||
return delegate_builder<delegate_type_t<T> >(m_target, m_append, m_target.owner().mconfig().current_device(), devcb_read::cast_reference<delegate_device_class_t<T> >(obj), std::forward<T>(func), name);
|
||||
return delegate_builder<delegate_type_t<T> >(m_target, m_append, m_target.owner(), devcb_read::cast_reference<delegate_device_class_t<T> >(obj), std::forward<T>(func), name);
|
||||
}
|
||||
|
||||
template <typename T, typename U, bool R>
|
||||
@ -2141,7 +2141,7 @@ private:
|
||||
std::enable_if_t<is_write_method<T>::value, delegate_builder<delegate_type_t<T> > > set(U &obj, T &&func, char const *name)
|
||||
{
|
||||
set_used();
|
||||
return delegate_builder<delegate_type_t<T> >(m_target, m_append, m_target.owner().mconfig().current_device(), devcb_write::cast_reference<delegate_device_class_t<T> >(obj), std::forward<T>(func), name);
|
||||
return delegate_builder<delegate_type_t<T> >(m_target, m_append, m_target.owner(), devcb_write::cast_reference<delegate_device_class_t<T> >(obj), std::forward<T>(func), name);
|
||||
}
|
||||
|
||||
template <typename T, typename U, bool R>
|
||||
|
Loading…
Reference in New Issue
Block a user