mirror of
https://github.com/holub/mame
synced 2025-04-21 07:52:35 +03:00
ns32081: avoid link failure due to inline virtual functions
* also use correct name for /SPC output
This commit is contained in:
parent
58b826f9ea
commit
3706f0602c
@ -35,11 +35,10 @@ namespace ns32000
|
||||
class ns32000_slave_interface : public device_interface
|
||||
{
|
||||
public:
|
||||
auto out_scb() { return m_out_scb.bind(); }
|
||||
auto out_spc() { return m_out_spc.bind(); }
|
||||
|
||||
ns32000_slave_interface(machine_config const &mconfig, device_t &device)
|
||||
: device_interface(device, "ns32000_slave")
|
||||
, m_out_scb(*this)
|
||||
: ns32000_slave_interface(mconfig, device, "ns32000_slave")
|
||||
{
|
||||
}
|
||||
|
||||
@ -68,11 +67,11 @@ public:
|
||||
protected:
|
||||
ns32000_slave_interface(machine_config const &mconfig, device_t &device, char const *type)
|
||||
: device_interface(device, type)
|
||||
, m_out_scb(*this)
|
||||
, m_out_spc(*this)
|
||||
{
|
||||
}
|
||||
|
||||
devcb_write_line m_out_scb;
|
||||
devcb_write_line m_out_spc;
|
||||
};
|
||||
|
||||
class ns32000_fpu_interface : public ns32000_slave_interface
|
||||
|
@ -653,7 +653,7 @@ void ns32081_device_base::execute()
|
||||
}
|
||||
}
|
||||
|
||||
if (!m_out_scb.isunset())
|
||||
if (!m_out_spc.isunset())
|
||||
m_complete->adjust(attotime::from_ticks(m_tcy, clock()));
|
||||
|
||||
m_state = STATUS;
|
||||
@ -680,8 +680,8 @@ u16 ns32081_device_base::status(int *icount)
|
||||
|
||||
void ns32081_device_base::complete(s32 param)
|
||||
{
|
||||
m_out_scb(0);
|
||||
m_out_scb(1);
|
||||
m_out_spc(0);
|
||||
m_out_spc(1);
|
||||
}
|
||||
|
||||
ns32081_device::ns32081_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock)
|
||||
@ -736,6 +736,21 @@ void ns32081_device::reg_set(unsigned const reg, unsigned const op_size, u64 con
|
||||
m_f[reg ^ 1] = u32(op_value >> 32);
|
||||
}
|
||||
|
||||
u16 ns32081_device::slow_status(int *icount)
|
||||
{
|
||||
return status(icount);
|
||||
}
|
||||
|
||||
u16 ns32081_device::slow_read()
|
||||
{
|
||||
return read<u16>();
|
||||
}
|
||||
|
||||
void ns32081_device::slow_write(u16 data)
|
||||
{
|
||||
write<u16>(data);
|
||||
}
|
||||
|
||||
ns32381_device::ns32381_device(machine_config const &mconfig, char const *tag, device_t *owner, u32 clock)
|
||||
: ns32081_device_base(mconfig, NS32381, tag, owner, clock)
|
||||
, ns32000_slow_slave_interface(mconfig, *this)
|
||||
@ -792,3 +807,33 @@ void ns32381_device::reg_set(unsigned const reg, unsigned const op_size, u64 con
|
||||
else
|
||||
m_l[reg & 6] = (m_l[reg & 6] & 0xffff'ffff'0000'0000ULL) | u32(op_value);
|
||||
}
|
||||
|
||||
u16 ns32381_device::slow_status(int *icount)
|
||||
{
|
||||
return status(icount);
|
||||
}
|
||||
|
||||
u16 ns32381_device::slow_read()
|
||||
{
|
||||
return read<u16>();
|
||||
}
|
||||
|
||||
void ns32381_device::slow_write(u16 data)
|
||||
{
|
||||
write<u16>(data);
|
||||
}
|
||||
|
||||
u32 ns32381_device::fast_status(int *icount)
|
||||
{
|
||||
return status(icount);
|
||||
}
|
||||
|
||||
u32 ns32381_device::fast_read()
|
||||
{
|
||||
return read<u32>();
|
||||
}
|
||||
|
||||
void ns32381_device::fast_write(u32 data)
|
||||
{
|
||||
write<u32>(data);
|
||||
}
|
||||
|
@ -67,9 +67,9 @@ public:
|
||||
virtual void state_add(device_state_interface &parent, int &index) override;
|
||||
|
||||
// ns32000_slow_slave_interface implementation
|
||||
virtual u16 slow_status(int *icount = nullptr) override { return status(icount); }
|
||||
virtual u16 slow_read() override { return read<u16>(); }
|
||||
virtual void slow_write(u16 data) override { write<u16>(data); }
|
||||
virtual u16 slow_status(int *icount = nullptr) override;
|
||||
virtual u16 slow_read() override;
|
||||
virtual void slow_write(u16 data) override;
|
||||
|
||||
protected:
|
||||
// device_t implementation
|
||||
@ -97,14 +97,14 @@ public:
|
||||
virtual void state_add(device_state_interface &parent, int &index) override;
|
||||
|
||||
// ns32000_slow_slave_interface implementation
|
||||
virtual u16 slow_status(int *icount = nullptr) override { return status(icount); }
|
||||
virtual u16 slow_read() override { return read<u16>(); }
|
||||
virtual void slow_write(u16 data) override { write<u16>(data); }
|
||||
virtual u16 slow_status(int *icount = nullptr) override;
|
||||
virtual u16 slow_read() override;
|
||||
virtual void slow_write(u16 data) override;
|
||||
|
||||
// ns32000_fast_slave_interface implementation
|
||||
virtual u32 fast_status(int *icount = nullptr) override { return status(icount); }
|
||||
virtual u32 fast_read() override { return read<u32>(); }
|
||||
virtual void fast_write(u32 data) override { write<u32>(data); }
|
||||
virtual u32 fast_status(int *icount = nullptr) override;
|
||||
virtual u32 fast_read() override;
|
||||
virtual void fast_write(u32 data) override;
|
||||
|
||||
protected:
|
||||
// device_t implementation
|
||||
|
Loading…
Reference in New Issue
Block a user