summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2019-02-19 20:19:15 +1100
committer Vas Crabb <vas@vastheman.com>2019-02-19 20:19:15 +1100
commit798368509692350152e06a5c4eedce05b1bac7ca (patch)
treeddcdb7186df66795ffb3fb9335bbd8b41ca88d0a
parent4f049026f6c76f531f6bd1faeaa06d1d97db274b (diff)
(nw) clean up trivial stuff - the device delegate boilerplate is ugly, I will address it ASAP
-rw-r--r--src/devices/bus/coco/cococart.h30
-rw-r--r--src/devices/bus/compis/hrg.cpp4
-rw-r--r--src/devices/bus/isa/num9rev.cpp2
-rw-r--r--src/devices/bus/wangpc/tig.cpp4
-rw-r--r--src/devices/machine/i2cmem.cpp47
-rw-r--r--src/devices/machine/i2cmem.h2
-rw-r--r--src/devices/video/upd7220.h43
-rw-r--r--src/emu/devfind.cpp27
-rw-r--r--src/lib/netlist/devices/nld_7448.cpp6
-rw-r--r--src/lib/netlist/plib/pstring.h8
-rw-r--r--src/lib/netlist/plib/ptypes.h2
-rw-r--r--src/lib/netlist/solver/nld_solver.cpp7
-rw-r--r--src/lib/netlist/solver/nld_solver.h8
-rw-r--r--src/mame/audio/nichisnd.cpp4
-rw-r--r--src/mame/drivers/a5105.cpp4
-rw-r--r--src/mame/drivers/apc.cpp4
-rw-r--r--src/mame/drivers/applix.cpp4
-rw-r--r--src/mame/drivers/armedf.cpp20
-rw-r--r--src/mame/drivers/atari_s2.cpp4
-rw-r--r--src/mame/drivers/dmv.cpp4
-rw-r--r--src/mame/drivers/if800.cpp2
-rw-r--r--src/mame/drivers/mz3500.cpp4
-rw-r--r--src/mame/drivers/mz6500.cpp2
-rw-r--r--src/mame/drivers/pc9801.cpp4
-rw-r--r--src/mame/drivers/qx10.cpp4
-rw-r--r--src/mame/drivers/rainbow.cpp2
-rw-r--r--src/mame/drivers/vt240.cpp2
-rw-r--r--src/mame/video/mikromik.cpp2
28 files changed, 148 insertions, 108 deletions
diff --git a/src/devices/bus/coco/cococart.h b/src/devices/bus/coco/cococart.h
index cae4f333529..c559a2eea53 100644
--- a/src/devices/bus/coco/cococart.h
+++ b/src/devices/bus/coco/cococart.h
@@ -187,36 +187,26 @@ protected:
// cartridges (e.g. - Orch-90, Multi-Pak interface) for their control registers, independently
// of the SCS or CTS lines
address_space &cartridge_space();
- template<typename R> void install_read_handler(u16 addrstart, u16 addrend, R rhandler)
+ template <typename R>
+ void install_read_handler(u16 addrstart, u16 addrend, R &&rhandler)
{
address_space &space(cartridge_space());
- space.install_read_handler(addrstart, addrend, rhandler);
+ space.install_read_handler(addrstart, addrend, std::forward<R>(rhandler));
}
- template<typename W> void install_write_handler(u16 addrstart, u16 addrend, W whandler)
+ template <typename W>
+ void install_write_handler(u16 addrstart, u16 addrend, W &&whandler)
{
address_space &space(cartridge_space());
- space.install_write_handler(addrstart, addrend, whandler);
+ space.install_write_handler(addrstart, addrend, std::forward<W>(whandler));
}
- template<typename R, typename W> void install_readwrite_handler(u16 addrstart, u16 addrend, R rhandler, W whandler)
+ template <typename R, typename W>
+ void install_readwrite_handler(u16 addrstart, u16 addrend, R &&rhandler, W &&whandler)
{
address_space &space(cartridge_space());
- space.install_read_handler(addrstart, addrend, rhandler);
- space.install_write_handler(addrstart, addrend, whandler);
+ space.install_read_handler(addrstart, addrend, std::forward<R>(rhandler));
+ space.install_write_handler(addrstart, addrend, std::forward<W>(whandler));
}
- void install_read_handler(u16 addrstart, u16 addrend, read8_delegate rhandler) { install_read_handler<read8_delegate>(addrstart, addrend, rhandler); }
- void install_write_handler(u16 addrstart, u16 addrend, write8_delegate whandler) { install_write_handler<write8_delegate>(addrstart, addrend, whandler); }
- void install_read_handler(u16 addrstart, u16 addrend, read8m_delegate rhandler) { install_read_handler<read8m_delegate>(addrstart, addrend, rhandler); }
- void install_write_handler(u16 addrstart, u16 addrend, write8m_delegate whandler) { install_write_handler<write8m_delegate>(addrstart, addrend, whandler); }
- void install_read_handler(u16 addrstart, u16 addrend, read8s_delegate rhandler) { install_read_handler<read8s_delegate>(addrstart, addrend, rhandler); }
- void install_write_handler(u16 addrstart, u16 addrend, write8s_delegate whandler) { install_write_handler<write8s_delegate>(addrstart, addrend, whandler); }
- void install_read_handler(u16 addrstart, u16 addrend, read8sm_delegate rhandler) { install_read_handler<read8sm_delegate>(addrstart, addrend, rhandler); }
- void install_write_handler(u16 addrstart, u16 addrend, write8sm_delegate whandler) { install_write_handler<write8sm_delegate>(addrstart, addrend, whandler); }
- void install_read_handler(u16 addrstart, u16 addrend, read8mo_delegate rhandler) { install_read_handler<read8mo_delegate>(addrstart, addrend, rhandler); }
- void install_write_handler(u16 addrstart, u16 addrend, write8mo_delegate whandler) { install_write_handler<write8mo_delegate>(addrstart, addrend, whandler); }
- void install_read_handler(u16 addrstart, u16 addrend, read8smo_delegate rhandler) { install_read_handler<read8smo_delegate>(addrstart, addrend, rhandler); }
- void install_write_handler(u16 addrstart, u16 addrend, write8smo_delegate whandler) { install_write_handler<write8smo_delegate>(addrstart, addrend, whandler); }
-
// setting line values
void set_line_value(cococart_slot_device::line line, cococart_slot_device::line_value value);
void set_line_value(cococart_slot_device::line line, bool value) { set_line_value(line, value ? cococart_slot_device::line_value::ASSERT : cococart_slot_device::line_value::CLEAR); }
diff --git a/src/devices/bus/compis/hrg.cpp b/src/devices/bus/compis/hrg.cpp
index 6049be0adcd..e9898709097 100644
--- a/src/devices/bus/compis/hrg.cpp
+++ b/src/devices/bus/compis/hrg.cpp
@@ -89,7 +89,7 @@ void compis_hrg_device::device_add_mconfig(machine_config &config)
UPD7220(config, m_crtc, 2252500); // unknown clock
m_crtc->set_addrmap(0, &compis_hrg_device::hrg_map);
- m_crtc->set_display_pixels_callback(FUNC(compis_hrg_device::display_pixels), this);
+ m_crtc->set_display_pixels(FUNC(compis_hrg_device::display_pixels));
m_crtc->set_screen(SCREEN_TAG);
PALETTE(config, m_palette, palette_device::MONOCHROME);
@@ -108,7 +108,7 @@ void compis_uhrg_device::device_add_mconfig(machine_config &config)
UPD7220(config, m_crtc, 2252500*2); // unknown clock
m_crtc->set_addrmap(0, &compis_uhrg_device::uhrg_map);
- m_crtc->set_display_pixels_callback(FUNC(compis_uhrg_device::display_pixels), this);
+ m_crtc->set_display_pixels(FUNC(compis_uhrg_device::display_pixels));
m_crtc->set_screen(SCREEN_TAG);
PALETTE(config, m_palette, palette_device::MONOCHROME);
diff --git a/src/devices/bus/isa/num9rev.cpp b/src/devices/bus/isa/num9rev.cpp
index 6137ed580a7..16aab8762fe 100644
--- a/src/devices/bus/isa/num9rev.cpp
+++ b/src/devices/bus/isa/num9rev.cpp
@@ -64,7 +64,7 @@ void isa8_number_9_rev_device::device_add_mconfig(machine_config &config)
UPD7220(config, m_upd7220, XTAL(4'433'619)/2); // unknown clock
m_upd7220->set_addrmap(0, &isa8_number_9_rev_device::upd7220_map);
- m_upd7220->set_display_pixels_callback(FUNC(isa8_number_9_rev_device::hgdc_display_pixels), this);
+ m_upd7220->set_display_pixels(FUNC(isa8_number_9_rev_device::hgdc_display_pixels));
m_upd7220->set_screen("screen");
}
diff --git a/src/devices/bus/wangpc/tig.cpp b/src/devices/bus/wangpc/tig.cpp
index 966cc023b6c..4d3827ad21a 100644
--- a/src/devices/bus/wangpc/tig.cpp
+++ b/src/devices/bus/wangpc/tig.cpp
@@ -127,12 +127,12 @@ void wangpc_tig_device::device_add_mconfig(machine_config &config)
UPD7220(config, m_hgdc0, XTAL(52'832'000)/28);
m_hgdc0->set_addrmap(0, &wangpc_tig_device::upd7220_0_map);
- m_hgdc0->set_draw_text_callback(FUNC(wangpc_tig_device::hgdc_draw_text), this);
+ m_hgdc0->set_draw_text(FUNC(wangpc_tig_device::hgdc_draw_text));
m_hgdc0->set_screen(SCREEN_TAG);
UPD7220(config, m_hgdc1, XTAL(52'832'000)/28);
m_hgdc1->set_addrmap(0, &wangpc_tig_device::upd7220_1_map);
- m_hgdc1->set_display_pixels_callback(FUNC(wangpc_tig_device::hgdc_display_pixels), this);
+ m_hgdc1->set_display_pixels(FUNC(wangpc_tig_device::hgdc_display_pixels));
m_hgdc1->set_screen(SCREEN_TAG);
}
diff --git a/src/devices/machine/i2cmem.cpp b/src/devices/machine/i2cmem.cpp
index b48085687e6..b16003764f2 100644
--- a/src/devices/machine/i2cmem.cpp
+++ b/src/devices/machine/i2cmem.cpp
@@ -58,7 +58,7 @@ static inline void ATTR_PRINTF( 3, 4 ) verboselog( device_t *device, int n_level
//**************************************************************************
// device type definition
-DEFINE_DEVICE_TYPE(I2CMEM, i2cmem_device, "i2cmem", "I2C Memory")
+DEFINE_DEVICE_TYPE(I2CMEM, i2cmem_device, "i2cmem", "I2C Memory")
DEFINE_DEVICE_TYPE(I2C_X2404P, i2c_x2404p_device, "x2404p", "X2404P I2C Memory")
DEFINE_DEVICE_TYPE(I2C_24C01, i2c_24c01_device, "24c01", "24C01 I2C Memory")
DEFINE_DEVICE_TYPE(I2C_24C02, i2c_24c02_device, "24c02", "24C02 I2C Memory")
@@ -75,8 +75,15 @@ DEFINE_DEVICE_TYPE(I2C_24C64, i2c_24c64_device, "24c64", "24C64 I2C Memory")
// i2cmem_device - constructor
//-------------------------------------------------
-i2cmem_device::i2cmem_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, int page_size, int data_size)
- : device_t(mconfig, type, tag, owner, (uint32_t)0),
+i2cmem_device::i2cmem_device(
+ const machine_config &mconfig,
+ device_type type,
+ const char *tag,
+ device_t *owner,
+ uint32_t clock,
+ int page_size,
+ int data_size) :
+ device_t(mconfig, type, tag, owner, clock),
device_nvram_interface(mconfig, *this),
m_region(*this, DEVICE_SELF),
m_slave_address(I2CMEM_SLAVE_ADDRESS),
@@ -93,45 +100,47 @@ i2cmem_device::i2cmem_device(const machine_config &mconfig, device_type type, co
m_shift(0),
m_byteaddr(0)
{
+ // these memories work off the I2C clock only
+ assert(!clock);
}
-i2cmem_device::i2cmem_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : i2cmem_device(mconfig, I2CMEM, tag, owner, 0, 0)
+i2cmem_device::i2cmem_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ i2cmem_device(mconfig, I2CMEM, tag, owner, clock, 0, 0)
{
}
-i2c_x2404p_device::i2c_x2404p_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : i2cmem_device(mconfig, I2C_X2404P, tag, owner, 8, 0x200)
+i2c_x2404p_device::i2c_x2404p_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ i2cmem_device(mconfig, I2C_X2404P, tag, owner, clock, 8, 0x200)
{
}
-i2c_24c01_device::i2c_24c01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : i2cmem_device(mconfig, I2C_24C01, tag, owner, 4, 0x80)
+i2c_24c01_device::i2c_24c01_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ i2cmem_device(mconfig, I2C_24C01, tag, owner, clock, 4, 0x80)
{
}
-i2c_24c02_device::i2c_24c02_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : i2cmem_device(mconfig, I2C_24C02, tag, owner, 4, 0x100)
+i2c_24c02_device::i2c_24c02_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ i2cmem_device(mconfig, I2C_24C02, tag, owner, clock, 4, 0x100)
{
}
-i2c_24c08_device::i2c_24c08_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : i2cmem_device(mconfig, I2C_24C08, tag, owner, 0, 0x400)
+i2c_24c08_device::i2c_24c08_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ i2cmem_device(mconfig, I2C_24C08, tag, owner, clock, 0, 0x400)
{
}
-i2c_24c16_device::i2c_24c16_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : i2cmem_device(mconfig, I2C_24C16, tag, owner, 8, 0x800)
+i2c_24c16_device::i2c_24c16_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ i2cmem_device(mconfig, I2C_24C16, tag, owner, clock, 8, 0x800)
{
}
-i2c_24c16a_device::i2c_24c16a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : i2cmem_device(mconfig, I2C_24C16A, tag, owner, 0, 0x800)
+i2c_24c16a_device::i2c_24c16a_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ i2cmem_device(mconfig, I2C_24C16A, tag, owner, clock, 0, 0x800)
{
}
-i2c_24c64_device::i2c_24c64_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : i2cmem_device(mconfig, I2C_24C64, tag, owner, 8, 0x2000)
+i2c_24c64_device::i2c_24c64_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ i2cmem_device(mconfig, I2C_24C64, tag, owner, clock, 8, 0x2000)
{
}
diff --git a/src/devices/machine/i2cmem.h b/src/devices/machine/i2cmem.h
index 528987c753a..fb28c278379 100644
--- a/src/devices/machine/i2cmem.h
+++ b/src/devices/machine/i2cmem.h
@@ -55,7 +55,7 @@ public:
protected:
// construction/destruction
- i2cmem_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, int page_size, int data_size);
+ i2cmem_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, int page_size, int data_size);
// device-level overrides
virtual void device_start() override;
diff --git a/src/devices/video/upd7220.h b/src/devices/video/upd7220.h
index 6a9837d90eb..43748f7fa63 100644
--- a/src/devices/video/upd7220.h
+++ b/src/devices/video/upd7220.h
@@ -62,8 +62,47 @@ public:
// construction/destruction
upd7220_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- template <typename... T> void set_display_pixels_callback(T &&... args) { m_display_cb = display_pixels_delegate(std::forward<T>(args)...); }
- template <typename... T> void set_draw_text_callback(T &&... args) { m_draw_text_cb = draw_text_delegate(std::forward<T>(args)...); }
+ // FIXME: these should be aware of current device for resolving the tag
+ template <class FunctionClass>
+ void set_display_pixels(void (FunctionClass::*init)(bitmap_rgb32 &, int, int, uint32_t), const char *name)
+ {
+ m_display_cb = display_pixels_delegate(init, name, nullptr, static_cast<FunctionClass *>(nullptr));
+ }
+ template <class FunctionClass>
+ void set_display_pixels(void (FunctionClass::*init)(bitmap_rgb32 &, int, int, uint32_t) const, const char *name)
+ {
+ m_display_cb = display_pixels_delegate(init, name, nullptr, static_cast<FunctionClass *>(nullptr));
+ }
+ template <class FunctionClass>
+ void set_display_pixels(const char *devname, void (FunctionClass::*init)(bitmap_rgb32 &, int, int, uint32_t), const char *name)
+ {
+ m_display_cb = display_pixels_delegate(init, name, devname, static_cast<FunctionClass *>(nullptr));
+ }
+ template <class FunctionClass>
+ void set_display_pixels(const char *devname, void (FunctionClass::*init)(bitmap_rgb32 &, int, int, uint32_t) const, const char *name)
+ {
+ m_display_cb = display_pixels_delegate(init, name, devname, static_cast<FunctionClass *>(nullptr));
+ }
+ template <class FunctionClass>
+ void set_draw_text(void (FunctionClass::*init)(bitmap_rgb32 &, uint32_t, int, int, int, int, int, int), const char *name)
+ {
+ m_draw_text_cb = draw_text_delegate(init, name, nullptr, static_cast<FunctionClass *>(nullptr));
+ }
+ template <class FunctionClass>
+ void set_draw_text(void (FunctionClass::*init)(bitmap_rgb32 &, uint32_t, int, int, int, int, int, int) const, const char *name)
+ {
+ m_draw_text_cb = draw_text_delegate(init, name, nullptr, static_cast<FunctionClass *>(nullptr));
+ }
+ template <class FunctionClass>
+ void set_draw_text(const char *devname, void (FunctionClass::*init)(bitmap_rgb32 &, uint32_t, int, int, int, int, int, int), const char *name)
+ {
+ m_draw_text_cb = draw_text_delegate(init, name, devname, static_cast<FunctionClass *>(nullptr));
+ }
+ template <class FunctionClass>
+ void set_draw_text(const char *devname, void (FunctionClass::*init)(bitmap_rgb32 &, uint32_t, int, int, int, int, int, int) const, const char *name)
+ {
+ m_draw_text_cb = draw_text_delegate(init, name, devname, static_cast<FunctionClass *>(nullptr));
+ }
auto drq_wr_callback() { return m_write_drq.bind(); }
auto hsync_wr_callback() { return m_write_hsync.bind(); }
diff --git a/src/emu/devfind.cpp b/src/emu/devfind.cpp
index d66c59a3f6f..4128123e0f2 100644
--- a/src/emu/devfind.cpp
+++ b/src/emu/devfind.cpp
@@ -314,23 +314,26 @@ bool finder_base::validate_addrspace(int spacenum, u8 width, bool required) cons
bool finder_base::report_missing(bool found, const char *objname, bool required) const
{
- if (required && (strcmp(m_tag, DUMMY_TAG) == 0))
+ if (required && (DUMMY_TAG == m_tag))
{
osd_printf_error("Tag not defined for required %s\n", objname);
return false;
}
-
- // just pass through in the found case
- if (found)
+ else if (found)
+ {
+ // just pass through in the found case
return true;
-
- // otherwise, report
- std::string const region_fulltag(m_base.get().subtag(m_tag));
- if (required)
- osd_printf_error("Required %s '%s' not found\n", objname, region_fulltag.c_str());
+ }
else
- osd_printf_verbose("Optional %s '%s' not found\n", objname, region_fulltag.c_str());
- return !required;
+ {
+ // otherwise, report
+ std::string const region_fulltag(m_base.get().subtag(m_tag));
+ if (required)
+ osd_printf_error("Required %s '%s' not found\n", objname, region_fulltag.c_str());
+ else if (DUMMY_TAG != m_tag)
+ osd_printf_verbose("Optional %s '%s' not found\n", objname, region_fulltag.c_str());
+ return !required;
+ }
}
@@ -339,7 +342,7 @@ void finder_base::printf_warning(const char *format, ...)
va_list argptr;
char buffer[1024];
- /* do the output */
+ // do the output
va_start(argptr, format);
vsnprintf(buffer, 1024, format, argptr);
osd_printf_warning("%s", buffer);
diff --git a/src/lib/netlist/devices/nld_7448.cpp b/src/lib/netlist/devices/nld_7448.cpp
index c95af08778f..25d3ba5d108 100644
--- a/src/lib/netlist/devices/nld_7448.cpp
+++ b/src/lib/netlist/devices/nld_7448.cpp
@@ -5,11 +5,11 @@
*
*/
-#include <array>
-
-#include "nld_7448.h"
+#include "nld_7448.h"
#include "nlid_truthtable.h"
+#include <array>
+
namespace netlist
{
namespace devices
diff --git a/src/lib/netlist/plib/pstring.h b/src/lib/netlist/plib/pstring.h
index c490ffa019e..bc056424531 100644
--- a/src/lib/netlist/plib/pstring.h
+++ b/src/lib/netlist/plib/pstring.h
@@ -42,14 +42,14 @@ public:
using string_type = typename T::string_type;
using traits_type = typename T::traits_type;
- pstring_const_iterator() noexcept : p() { }
+ constexpr pstring_const_iterator() noexcept : p() { }
explicit constexpr pstring_const_iterator(const typename string_type::const_iterator &x) noexcept : p(x) { }
pstring_const_iterator& operator++() noexcept { p += static_cast<difference_type>(traits_type::codelen(&(*p))); return *this; }
- const pstring_const_iterator operator++(int) noexcept { pstring_const_iterator tmp(*this); operator++(); return tmp; }
+ pstring_const_iterator operator++(int) noexcept { pstring_const_iterator tmp(*this); operator++(); return tmp; }
- bool operator==(const pstring_const_iterator& rhs) const noexcept { return p == rhs.p; }
- bool operator!=(const pstring_const_iterator& rhs) const noexcept { return p != rhs.p; }
+ constexpr bool operator==(const pstring_const_iterator& rhs) const noexcept { return p == rhs.p; }
+ constexpr bool operator!=(const pstring_const_iterator& rhs) const noexcept { return p != rhs.p; }
reference operator*() const noexcept { return *reinterpret_cast<pointer>(&(*p)); }
pointer operator->() const noexcept { return reinterpret_cast<pointer>(&(*p)); }
diff --git a/src/lib/netlist/plib/ptypes.h b/src/lib/netlist/plib/ptypes.h
index 5e0f8d49fe3..a3b11b65e74 100644
--- a/src/lib/netlist/plib/ptypes.h
+++ b/src/lib/netlist/plib/ptypes.h
@@ -108,7 +108,7 @@ namespace plib
operator E() const {return m_v;} \
bool operator==(const ename &rhs) const {return m_v == rhs.m_v;} \
bool operator==(const E &rhs) const {return m_v == rhs;} \
- const std::string name() const { \
+ std::string name() const { \
static char const *const strings = # __VA_ARGS__; \
return nthstr(static_cast<int>(m_v), strings); \
} \
diff --git a/src/lib/netlist/solver/nld_solver.cpp b/src/lib/netlist/solver/nld_solver.cpp
index 9ed380020f4..6ce9a093c84 100644
--- a/src/lib/netlist/solver/nld_solver.cpp
+++ b/src/lib/netlist/solver/nld_solver.cpp
@@ -31,10 +31,6 @@
#pragma GCC optimize "ivopts"
#endif
-#include <algorithm>
-#include <cmath> // <<= needed by windows build
-#include <memory>
-
#include "../nl_lists.h"
#include "../plib/pomp.h"
@@ -58,6 +54,9 @@
#include "nld_ms_sor_mat.h"
#include "nld_ms_w.h"
+#include <algorithm>
+#include <cmath>
+
namespace netlist
{
namespace devices
diff --git a/src/lib/netlist/solver/nld_solver.h b/src/lib/netlist/solver/nld_solver.h
index 1ba15fed64a..247abc9097b 100644
--- a/src/lib/netlist/solver/nld_solver.h
+++ b/src/lib/netlist/solver/nld_solver.h
@@ -8,14 +8,14 @@
#ifndef NLD_SOLVER_H_
#define NLD_SOLVER_H_
-#include <map>
-#include <memory>
-#include <vector>
-
#include "../nl_base.h"
#include "../plib/pstream.h"
#include "nld_matrix_solver.h"
+#include <map>
+#include <memory>
+#include <vector>
+
//#define ATTR_ALIGNED(N) __attribute__((aligned(N)))
#define ATTR_ALIGNED(N) ATTR_ALIGN
diff --git a/src/mame/audio/nichisnd.cpp b/src/mame/audio/nichisnd.cpp
index e4291b41342..405f5017aac 100644
--- a/src/mame/audio/nichisnd.cpp
+++ b/src/mame/audio/nichisnd.cpp
@@ -102,8 +102,8 @@ void nichisnd_device::device_add_mconfig(machine_config &config)
DAC_8BIT_R2R(config, "dac2", 0).add_route(ALL_OUTPUTS, "speaker", 0.37); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
- vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT);
- vref.add_route(0, "dac2", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac2", -1.0, DAC_VREF_NEG_INPUT);
+ vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT).add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT);
+ vref.add_route(0, "dac2", 1.0, DAC_VREF_POS_INPUT).add_route(0, "dac2", -1.0, DAC_VREF_NEG_INPUT);
}
diff --git a/src/mame/drivers/a5105.cpp b/src/mame/drivers/a5105.cpp
index 72b72c97549..f9f2d38e97d 100644
--- a/src/mame/drivers/a5105.cpp
+++ b/src/mame/drivers/a5105.cpp
@@ -585,8 +585,8 @@ MACHINE_CONFIG_START(a5105_state::a5105)
/* Devices */
UPD7220(config, m_hgdc, XTAL(15'000'000) / 16); // unk clock
m_hgdc->set_addrmap(0, &a5105_state::upd7220_map);
- m_hgdc->set_display_pixels_callback(FUNC(a5105_state::hgdc_display_pixels), this);
- m_hgdc->set_draw_text_callback(FUNC(a5105_state::hgdc_draw_text), this);
+ m_hgdc->set_display_pixels(FUNC(a5105_state::hgdc_display_pixels));
+ m_hgdc->set_draw_text(FUNC(a5105_state::hgdc_draw_text));
z80ctc_device& ctc(Z80CTC(config, "z80ctc", XTAL(15'000'000) / 4));
ctc.intr_callback().set_inputline(m_maincpu, 0);
diff --git a/src/mame/drivers/apc.cpp b/src/mame/drivers/apc.cpp
index 398ddb225f1..a1311fbc024 100644
--- a/src/mame/drivers/apc.cpp
+++ b/src/mame/drivers/apc.cpp
@@ -995,11 +995,11 @@ MACHINE_CONFIG_START(apc_state::apc)
UPD7220(config, m_hgdc1, 3579545); // unk clock
m_hgdc1->set_addrmap(0, &apc_state::upd7220_1_map);
- m_hgdc1->set_draw_text_callback(FUNC(apc_state::hgdc_draw_text), this);
+ m_hgdc1->set_draw_text(FUNC(apc_state::hgdc_draw_text));
UPD7220(config, m_hgdc2, 3579545); // unk clock
m_hgdc2->set_addrmap(0, &apc_state::upd7220_2_map);
- m_hgdc2->set_display_pixels_callback(FUNC(apc_state::hgdc_display_pixels), this);
+ m_hgdc2->set_display_pixels(FUNC(apc_state::hgdc_display_pixels));
/* sound hardware */
SPEAKER(config, m_speaker).front_center();
diff --git a/src/mame/drivers/applix.cpp b/src/mame/drivers/applix.cpp
index 4e6ad739e47..018fbd589e6 100644
--- a/src/mame/drivers/applix.cpp
+++ b/src/mame/drivers/applix.cpp
@@ -882,8 +882,8 @@ MACHINE_CONFIG_START(applix_state::applix)
DAC0800(config, "rdac", 0).add_route(ALL_OUTPUTS, "rspeaker", 1.0); // 74ls374.u20 + dac0800.u21 + 4052.u23
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
- vref.add_route(0, "ldac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "ldac", -1.0, DAC_VREF_NEG_INPUT);
- vref.add_route(0, "rdac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "rdac", -1.0, DAC_VREF_NEG_INPUT);
+ vref.add_route(0, "ldac", 1.0, DAC_VREF_POS_INPUT).add_route(0, "ldac", -1.0, DAC_VREF_NEG_INPUT);
+ vref.add_route(0, "rdac", 1.0, DAC_VREF_POS_INPUT).add_route(0, "rdac", -1.0, DAC_VREF_NEG_INPUT);
WAVE(config, "wave", m_cass).add_route(ALL_OUTPUTS, "lspeaker", 0.50);
diff --git a/src/mame/drivers/armedf.cpp b/src/mame/drivers/armedf.cpp
index 6a79b51b97f..4bd8243be03 100644
--- a/src/mame/drivers/armedf.cpp
+++ b/src/mame/drivers/armedf.cpp
@@ -1268,8 +1268,8 @@ void armedf_state::terraf_sound(machine_config &config)
DAC_8BIT_R2R(config, "dac2", 0).add_route(ALL_OUTPUTS, "speaker", 0.8); // 10-pin SIP with 74HC374P latch
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
- vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT);
- vref.add_route(0, "dac2", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac2", -1.0, DAC_VREF_NEG_INPUT);
+ vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT).add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT);
+ vref.add_route(0, "dac2", 1.0, DAC_VREF_POS_INPUT).add_route(0, "dac2", -1.0, DAC_VREF_NEG_INPUT);
}
MACHINE_CONFIG_START(armedf_state::terraf)
@@ -1347,8 +1347,8 @@ MACHINE_CONFIG_START(armedf_state::terrafjb)
DAC_8BIT_R2R(config, "dac2", 0).add_route(ALL_OUTPUTS, "speaker", 0.8); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
- vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT);
- vref.add_route(0, "dac2", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac2", -1.0, DAC_VREF_NEG_INPUT);
+ vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT).add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT);
+ vref.add_route(0, "dac2", 1.0, DAC_VREF_POS_INPUT).add_route(0, "dac2", -1.0, DAC_VREF_NEG_INPUT);
MACHINE_CONFIG_END
void armedf_state::terrafb(machine_config &config)
@@ -1428,8 +1428,8 @@ MACHINE_CONFIG_START(armedf_state::armedf)
DAC_8BIT_R2R(config, "dac2", 0).add_route(ALL_OUTPUTS, "speaker", 0.5); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
- vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT);
- vref.add_route(0, "dac2", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac2", -1.0, DAC_VREF_NEG_INPUT);
+ vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT).add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT);
+ vref.add_route(0, "dac2", 1.0, DAC_VREF_POS_INPUT).add_route(0, "dac2", -1.0, DAC_VREF_NEG_INPUT);
MACHINE_CONFIG_END
MACHINE_CONFIG_START(armedf_state::cclimbr2)
@@ -1475,8 +1475,8 @@ MACHINE_CONFIG_START(armedf_state::cclimbr2)
DAC_8BIT_R2R(config, "dac2", 0).add_route(ALL_OUTPUTS, "speaker", 0.4); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
- vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT);
- vref.add_route(0, "dac2", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac2", -1.0, DAC_VREF_NEG_INPUT);
+ vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT).add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT);
+ vref.add_route(0, "dac2", 1.0, DAC_VREF_POS_INPUT).add_route(0, "dac2", -1.0, DAC_VREF_NEG_INPUT);
MACHINE_CONFIG_END
MACHINE_CONFIG_START(armedf_state::legion_common)
@@ -1514,8 +1514,8 @@ MACHINE_CONFIG_START(armedf_state::legion_common)
DAC_8BIT_R2R(config, "dac2", 0).add_route(ALL_OUTPUTS, "speaker", 0.4); // 10-pin SIP with 74HC374P latch
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
- vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT);
- vref.add_route(0, "dac2", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac2", -1.0, DAC_VREF_NEG_INPUT);
+ vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT).add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT);
+ vref.add_route(0, "dac2", 1.0, DAC_VREF_POS_INPUT).add_route(0, "dac2", -1.0, DAC_VREF_NEG_INPUT);
MACHINE_CONFIG_END
MACHINE_CONFIG_START(armedf_state::legion)
diff --git a/src/mame/drivers/atari_s2.cpp b/src/mame/drivers/atari_s2.cpp
index 219e52392b4..7f90dcdbfd9 100644
--- a/src/mame/drivers/atari_s2.cpp
+++ b/src/mame/drivers/atari_s2.cpp
@@ -495,8 +495,8 @@ void atari_s2_state::atari_s2(machine_config &config)
DAC_3BIT_BINARY_WEIGHTED(config, m_dac1, 0).add_route(ALL_OUTPUTS, "speaker", 0.15); // r18-r20 (100k,47k,100k)
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
vref.set_output(5.0);
- vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
- vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT); vref.add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT);
+ vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT).add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
+ vref.add_route(0, "dac1", 1.0, DAC_VREF_POS_INPUT).add_route(0, "dac1", -1.0, DAC_VREF_NEG_INPUT);
/* Video */
config.set_default_layout(layout_atari_s2);
diff --git a/src/mame/drivers/dmv.cpp b/src/mame/drivers/dmv.cpp
index 0932855f1ca..0e3098ec7b9 100644
--- a/src/mame/drivers/dmv.cpp
+++ b/src/mame/drivers/dmv.cpp
@@ -805,8 +805,8 @@ void dmv_state::dmv(machine_config &config)
// devices
UPD7220(config, m_hgdc, XTAL(5'000'000)/2); // unk clock
m_hgdc->set_addrmap(0, &dmv_state::upd7220_map);
- m_hgdc->set_display_pixels_callback(FUNC(dmv_state::hgdc_display_pixels), this);
- m_hgdc->set_draw_text_callback(FUNC(dmv_state::hgdc_draw_text), this);
+ m_hgdc->set_display_pixels(FUNC(dmv_state::hgdc_display_pixels));
+ m_hgdc->set_draw_text(FUNC(dmv_state::hgdc_draw_text));
AM9517A(config, m_dmac, 4_MHz_XTAL);
m_dmac->out_hreq_callback().set(FUNC(dmv_state::dma_hrq_changed));
diff --git a/src/mame/drivers/if800.cpp b/src/mame/drivers/if800.cpp
index fe36af9d1e7..fe117e36e4d 100644
--- a/src/mame/drivers/if800.cpp
+++ b/src/mame/drivers/if800.cpp
@@ -100,7 +100,7 @@ MACHINE_CONFIG_START(if800_state::if800)
// PIC8259(config, "pic8259", 0);
UPD7220(config, m_hgdc, 8000000/4);
m_hgdc->set_addrmap(0, &if800_state::upd7220_map);
- m_hgdc->set_display_pixels_callback(FUNC(if800_state::hgdc_display_pixels), this);
+ m_hgdc->set_display_pixels(FUNC(if800_state::hgdc_display_pixels));
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/mz3500.cpp b/src/mame/drivers/mz3500.cpp
index e34b883647e..134ed18d7cd 100644
--- a/src/mame/drivers/mz3500.cpp
+++ b/src/mame/drivers/mz3500.cpp
@@ -836,12 +836,12 @@ MACHINE_CONFIG_START(mz3500_state::mz3500)
UPD7220(config, m_hgdc1, MAIN_CLOCK/5);
m_hgdc1->set_addrmap(0, &mz3500_state::upd7220_1_map);
- m_hgdc1->set_draw_text_callback(FUNC(mz3500_state::hgdc_draw_text), this);
+ m_hgdc1->set_draw_text(FUNC(mz3500_state::hgdc_draw_text));
m_hgdc1->vsync_wr_callback().set(m_hgdc2, FUNC(upd7220_device::ext_sync_w));
UPD7220(config, m_hgdc2, MAIN_CLOCK/5);
m_hgdc2->set_addrmap(0, &mz3500_state::upd7220_2_map);
- m_hgdc2->set_display_pixels_callback(FUNC(mz3500_state::hgdc_display_pixels), this);
+ m_hgdc2->set_display_pixels(FUNC(mz3500_state::hgdc_display_pixels));
/* video hardware */
MCFG_SCREEN_ADD("screen", RASTER)
diff --git a/src/mame/drivers/mz6500.cpp b/src/mame/drivers/mz6500.cpp
index f0aa02bf4f7..3fcf897c971 100644
--- a/src/mame/drivers/mz6500.cpp
+++ b/src/mame/drivers/mz6500.cpp
@@ -168,7 +168,7 @@ MACHINE_CONFIG_START(mz6500_state::mz6500)
/* Devices */
UPD7220(config, m_hgdc, 8000000/6); // unk clock
m_hgdc->set_addrmap(0, &mz6500_state::upd7220_map);
- m_hgdc->set_display_pixels_callback(FUNC(mz6500_state::hgdc_display_pixels), this);
+ m_hgdc->set_display_pixels(FUNC(mz6500_state::hgdc_display_pixels));
UPD765A(config, m_fdc, 8000000, true, true);
FLOPPY_CONNECTOR(config, "upd765:0", mz6500_floppies, "525hd", floppy_image_device::default_floppy_formats);
diff --git a/src/mame/drivers/pc9801.cpp b/src/mame/drivers/pc9801.cpp
index eb7e2be3743..08cfafde863 100644
--- a/src/mame/drivers/pc9801.cpp
+++ b/src/mame/drivers/pc9801.cpp
@@ -2367,12 +2367,12 @@ void pc9801_state::pc9801_common(machine_config &config)
UPD7220(config, m_hgdc1, 21.0526_MHz_XTAL / 8);
m_hgdc1->set_addrmap(0, &pc9801_state::upd7220_1_map);
- m_hgdc1->set_draw_text_callback(FUNC(pc9801_state::hgdc_draw_text), this);
+ m_hgdc1->set_draw_text(FUNC(pc9801_state::hgdc_draw_text));
m_hgdc1->vsync_wr_callback().set(m_hgdc2, FUNC(upd7220_device::ext_sync_w));
UPD7220(config, m_hgdc2, 21.0526_MHz_XTAL / 8);
m_hgdc2->set_addrmap(0, &pc9801_state::upd7220_2_map);
- m_hgdc2->set_display_pixels_callback(FUNC(pc9801_state::hgdc_display_pixels), this);
+ m_hgdc2->set_display_pixels(FUNC(pc9801_state::hgdc_display_pixels));
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/drivers/qx10.cpp b/src/mame/drivers/qx10.cpp
index 949d11abe90..009917ce16c 100644
--- a/src/mame/drivers/qx10.cpp
+++ b/src/mame/drivers/qx10.cpp
@@ -801,8 +801,8 @@ MACHINE_CONFIG_START(qx10_state::qx10)
UPD7220(config, m_hgdc, MAIN_CLK/6); // unk clock
m_hgdc->set_addrmap(0, &qx10_state::upd7220_map);
- m_hgdc->set_display_pixels_callback(FUNC(qx10_state::hgdc_display_pixels), this);
- m_hgdc->set_draw_text_callback(FUNC(qx10_state::hgdc_draw_text), this);
+ m_hgdc->set_display_pixels(FUNC(qx10_state::hgdc_display_pixels));
+ m_hgdc->set_draw_text(FUNC(qx10_state::hgdc_draw_text));
m_hgdc->set_screen("screen");
MC146818(config, m_rtc, 32.768_kHz_XTAL);
diff --git a/src/mame/drivers/rainbow.cpp b/src/mame/drivers/rainbow.cpp
index f51d0f6248a..3b3e769e4c1 100644
--- a/src/mame/drivers/rainbow.cpp
+++ b/src/mame/drivers/rainbow.cpp
@@ -3233,7 +3233,7 @@ MACHINE_CONFIG_START(rainbow_state::rainbow)
m_hgdc->vsync_wr_callback().set(FUNC(rainbow_state::GDC_vblank_irq)); // "The vsync callback line needs to be below the 7220 DEVICE_ADD line."
m_hgdc->set_addrmap(0, &rainbow_state::upd7220_map);
- m_hgdc->set_display_pixels_callback(FUNC(rainbow_state::hgdc_display_pixels), this);
+ m_hgdc->set_display_pixels(FUNC(rainbow_state::hgdc_display_pixels));
m_hgdc->set_screen(m_screen2); // set_screen needs to be added after 7720 device in the machine config, not after the screen.
MCFG_PALETTE_ADD("palette2", 32)
diff --git a/src/mame/drivers/vt240.cpp b/src/mame/drivers/vt240.cpp
index c70774e41f0..c2d9295884b 100644
--- a/src/mame/drivers/vt240.cpp
+++ b/src/mame/drivers/vt240.cpp
@@ -667,7 +667,7 @@ void vt240_state::vt240(machine_config &config)
UPD7220(config, m_hgdc, XTAL(16'097'280) / 16); // actually /8?
m_hgdc->set_addrmap(0, &vt240_state::upd7220_map);
- m_hgdc->set_display_pixels_callback(FUNC(vt240_state::hgdc_draw), this);
+ m_hgdc->set_display_pixels(FUNC(vt240_state::hgdc_draw));
m_hgdc->vsync_wr_callback().set_inputline(m_i8085, I8085_RST75_LINE);
m_hgdc->blank_wr_callback().set_inputline(m_i8085, I8085_RST55_LINE);
m_hgdc->set_screen("screen");
diff --git a/src/mame/video/mikromik.cpp b/src/mame/video/mikromik.cpp
index bcadbfc954a..f66a3af4e21 100644
--- a/src/mame/video/mikromik.cpp
+++ b/src/mame/video/mikromik.cpp
@@ -150,6 +150,6 @@ void mm1_state::mm1m6_video(machine_config &config)
UPD7220(config, m_hgdc, XTAL(18'720'000)/8);
m_hgdc->set_addrmap(0, &mm1_state::mm1_upd7220_map);
- m_hgdc->set_display_pixels_callback(FUNC(mm1_state::hgdc_display_pixels), this);
+ m_hgdc->set_display_pixels(FUNC(mm1_state::hgdc_display_pixels));
m_hgdc->set_screen(SCREEN_TAG);
}