summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Vas Crabb <vas@vastheman.com>2023-08-02 05:24:58 +1000
committer Vas Crabb <vas@vastheman.com>2023-08-02 05:24:58 +1000
commit5ab956906bcb0e6ba41303e92ca4ba363b1ca8fd (patch)
tree513beb53c54e5064137f347c1bd58071e0e152a5
parent4d67f1e52d82d15597f1c06db5a6123b40eba83a (diff)
-emu/devcb.h: Removed set_log and append_log.
* These helpers were unintuitive and inflexible. In particular, set_log on a write handler would only log when the value is non-zero, which doesn't appear to be the desired behaviour for several uses. -util/options.cpp: Always leave a space between option and description in usage messages (fixes GitHub #11438).
-rw-r--r--src/emu/devcb.cpp5
-rw-r--r--src/emu/devcb.h187
-rw-r--r--src/emu/image.cpp9
-rw-r--r--src/lib/util/options.cpp11
-rw-r--r--src/mame/acorn/aa310.cpp28
-rw-r--r--src/mame/misc/unktop.cpp30
-rw-r--r--src/mame/namco/quickncrash.cpp16
-rw-r--r--src/mame/skeleton/dmv.cpp8
8 files changed, 57 insertions, 237 deletions
diff --git a/src/emu/devcb.cpp b/src/emu/devcb.cpp
index 25a0006b4e9..b6e08f13b45 100644
--- a/src/emu/devcb.cpp
+++ b/src/emu/devcb.cpp
@@ -257,7 +257,6 @@ template class devcb_write8::creator_impl<devcb_write8::latched_inputline_builde
template class devcb_write8::creator_impl<devcb_write8::ioport_builder>;
template class devcb_write8::creator_impl<devcb_write8::membank_builder>;
template class devcb_write8::creator_impl<devcb_write8::output_builder>;
-template class devcb_write8::creator_impl<devcb_write8::log_builder>;
template class devcb_write16::creator_impl<devcb_write16::delegate_builder<write8s_delegate> >;
template class devcb_write16::creator_impl<devcb_write16::delegate_builder<write16s_delegate> >;
@@ -277,7 +276,6 @@ template class devcb_write16::creator_impl<devcb_write16::latched_inputline_buil
template class devcb_write16::creator_impl<devcb_write16::ioport_builder>;
template class devcb_write16::creator_impl<devcb_write16::membank_builder>;
template class devcb_write16::creator_impl<devcb_write16::output_builder>;
-template class devcb_write16::creator_impl<devcb_write16::log_builder>;
template class devcb_write32::creator_impl<devcb_write32::delegate_builder<write8s_delegate> >;
template class devcb_write32::creator_impl<devcb_write32::delegate_builder<write16s_delegate> >;
@@ -297,7 +295,6 @@ template class devcb_write32::creator_impl<devcb_write32::latched_inputline_buil
template class devcb_write32::creator_impl<devcb_write32::ioport_builder>;
template class devcb_write32::creator_impl<devcb_write32::membank_builder>;
template class devcb_write32::creator_impl<devcb_write32::output_builder>;
-template class devcb_write32::creator_impl<devcb_write32::log_builder>;
template class devcb_write64::creator_impl<devcb_write64::delegate_builder<write8s_delegate> >;
template class devcb_write64::creator_impl<devcb_write64::delegate_builder<write16s_delegate> >;
@@ -317,7 +314,6 @@ template class devcb_write64::creator_impl<devcb_write64::latched_inputline_buil
template class devcb_write64::creator_impl<devcb_write64::ioport_builder>;
template class devcb_write64::creator_impl<devcb_write64::membank_builder>;
template class devcb_write64::creator_impl<devcb_write64::output_builder>;
-template class devcb_write64::creator_impl<devcb_write64::log_builder>;
template class devcb_write_line::creator_impl<devcb_write_line::delegate_builder<write8s_delegate> >;
template class devcb_write_line::creator_impl<devcb_write_line::delegate_builder<write16s_delegate> >;
@@ -337,7 +333,6 @@ template class devcb_write_line::creator_impl<devcb_write_line::latched_inputlin
template class devcb_write_line::creator_impl<devcb_write_line::ioport_builder>;
template class devcb_write_line::creator_impl<devcb_write_line::membank_builder>;
template class devcb_write_line::creator_impl<devcb_write_line::output_builder>;
-template class devcb_write_line::creator_impl<devcb_write_line::log_builder>;
devcb_base::devcb_base(device_t &owner)
diff --git a/src/emu/devcb.h b/src/emu/devcb.h
index 0ad02589a7f..be62d8b6365 100644
--- a/src/emu/devcb.h
+++ b/src/emu/devcb.h
@@ -361,28 +361,6 @@ private:
T m_builder;
};
- class log_creator : public creator
- {
- public:
- log_creator(device_t &devbase, std::string &&message) : creator(0U), m_devbase(devbase), m_message(std::move(message)) { }
-
- virtual bool validity_check(validity_checker &valid) const override { return true; }
-
- virtual func_t create() override
- {
- return
- [&devbase = m_devbase, message = std::move(m_message)] (offs_t offset, std::make_unsigned_t<Result> mem_mask)
- {
- devbase.logerror("%s: %s\n", devbase.machine().describe_context(), message);
- return Result(0);
- };
- }
-
- private:
- device_t &m_devbase;
- std::string m_message;
- };
-
template <typename Source, typename Func> class transform_builder; // workaround for MSVC
class builder_base
@@ -775,40 +753,6 @@ private:
return set_ioport(std::forward<Params>(args)...);
}
- template <typename... Params>
- void set_log(device_t &devbase, Params &&... args)
- {
- set_used();
- if (!m_append)
- m_target.m_creators.clear();
- m_target.m_creators.emplace_back(std::make_unique<log_creator>(devbase, std::string(std::forward<Params>(args)...)));
- }
-
- template <typename T, typename... Params>
- std::enable_if_t<emu::detail::is_device_implementation<std::remove_reference_t<T> >::value> set_log(T &devbase, Params &&... args)
- {
- set_log(static_cast<device_t &>(devbase), std::forward<Params>(args)...);
- }
-
- template <typename T, typename... Params>
- std::enable_if_t<emu::detail::is_device_interface<std::remove_reference_t<T> >::value> set_log(T &devbase, Params &&... args)
- {
- set_log(devbase.device(), std::forward<Params>(args)...);
- }
-
- template <typename... Params>
- void set_log(Params &&... args)
- {
- set_log(m_target.owner().mconfig().current_device(), std::forward<Params>(args)...);
- }
-
- template <typename... Params>
- void append_log(Params &&... args)
- {
- m_append = true;
- set_log(std::forward<Params>(args)...);
- }
-
auto set_constant(Result val) { return set([val] () { return val; }); }
auto append_constant(Result val) { return append([val] () { return val; }); }
@@ -2013,100 +1957,6 @@ private:
}
};
- class log_builder : public builder_base, public transform_base<std::make_unsigned_t<Input>, log_builder>
- {
- private:
- class wrapped_builder : public builder_base
- {
- public:
- template <typename T, typename U> friend class first_transform_builder;
-
- using input_t = Input;
-
- wrapped_builder(log_builder &&that)
- : builder_base(std::move(that))
- , m_devbase(that.m_devbase)
- , m_message(std::move(that.m_message))
- {
- that.consume();
- that.built();
- }
- wrapped_builder(wrapped_builder &&that)
- : builder_base(std::move(that))
- , m_devbase(that.m_devbase)
- , m_message(std::move(that.m_message))
- {
- that.consume();
- that.built();
- }
-
- bool validity_check(validity_checker &valid) const { return true; }
-
- auto build()
- {
- assert(this->m_consumed);
- this->built();
- return
- [&devbase = m_devbase, message = std::move(m_message)] (offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
- { if (data) devbase.logerror("%s: %s\n", devbase.machine().describe_context(), message); };
- }
-
- private:
- wrapped_builder(wrapped_builder const &) = delete;
- wrapped_builder operator=(wrapped_builder const &) = delete;
- wrapped_builder operator=(wrapped_builder &&that) = delete;
-
- device_t &m_devbase;
- std::string m_message;
- };
-
- friend class wrapped_builder; // workaround for MSVC
-
- log_builder(log_builder const &) = delete;
- log_builder &operator=(log_builder const &) = delete;
- log_builder &operator=(log_builder &&that) = delete;
-
- device_t &m_devbase;
- std::string m_message;
-
- public:
- using input_t = Input;
-
- log_builder(devcb_write &target, bool append, device_t &devbase, std::string &&message)
- : builder_base(target, append)
- , transform_base<std::make_unsigned_t<Input>, log_builder>(DefaultMask)
- , m_devbase(devbase)
- , m_message(std::move(message))
- { }
- log_builder(log_builder &&that)
- : builder_base(std::move(that))
- , transform_base<std::make_unsigned_t<Input>, log_builder>(std::move(that))
- , m_devbase(that.m_devbase)
- , m_message(std::move(that.m_message))
- {
- that.consume();
- that.built();
- }
- ~log_builder() { this->template register_creator<log_builder>(); }
-
- template <typename T>
- std::enable_if_t<is_transform<input_t, input_t, T>::value, first_transform_builder<wrapped_builder, std::remove_reference_t<T> > > transform(T &&cb)
- {
- return first_transform_builder<wrapped_builder, std::remove_reference_t<T> >(this->m_target, this->m_append, wrapped_builder(std::move(*this)), std::forward<T>(cb), this->exor(), this->mask(), DefaultMask);
- }
-
- bool validity_check(validity_checker &valid) const { return true; }
-
- auto build()
- {
- assert(this->m_consumed);
- this->built();
- return
- [&devbase = m_devbase, message = std::move(m_message), exor = this->exor(), mask = this->mask()] (offs_t offset, input_t data, std::make_unsigned_t<input_t> mem_mask)
- { if ((data ^ exor) & mask) devbase.logerror("%s: %s\n", devbase.machine().describe_context(), message); };
- }
- };
-
class binder
{
public:
@@ -2295,38 +2145,6 @@ private:
return set_output(std::forward<Params>(args)...);
}
- template <typename... Params>
- log_builder set_log(device_t &devbase, Params &&... args)
- {
- set_used();
- return log_builder(m_target, m_append, devbase, std::string(std::forward<Params>(args)...));
- }
-
- template <typename T, typename... Params>
- std::enable_if_t<emu::detail::is_device_implementation<std::remove_reference_t<T> >::value, log_builder> set_log(T &devbase, Params &&... args)
- {
- return set_log(static_cast<device_t &>(devbase), std::forward<Params>(args)...);
- }
-
- template <typename T, typename... Params>
- std::enable_if_t<emu::detail::is_device_interface<std::remove_reference_t<T> >::value, log_builder> set_log(T &devbase, Params &&... args)
- {
- return set_log(devbase.device(), std::forward<Params>(args)...);
- }
-
- template <typename... Params>
- log_builder set_log(Params &&... args)
- {
- return set_log(m_target.owner().mconfig().current_device(), std::forward<Params>(args)...);
- }
-
- template <typename... Params>
- log_builder append_log(Params &&... args)
- {
- m_append = true;
- return set_log(std::forward<Params>(args)...);
- }
-
void set_nop()
{
set_used();
@@ -2705,7 +2523,6 @@ extern template class devcb_write8::creator_impl<devcb_write8::latched_inputline
extern template class devcb_write8::creator_impl<devcb_write8::ioport_builder>;
extern template class devcb_write8::creator_impl<devcb_write8::membank_builder>;
extern template class devcb_write8::creator_impl<devcb_write8::output_builder>;
-extern template class devcb_write8::creator_impl<devcb_write8::log_builder>;
extern template class devcb_write16::creator_impl<devcb_write16::delegate_builder<write8s_delegate> >;
extern template class devcb_write16::creator_impl<devcb_write16::delegate_builder<write16s_delegate> >;
@@ -2725,7 +2542,6 @@ extern template class devcb_write16::creator_impl<devcb_write16::latched_inputli
extern template class devcb_write16::creator_impl<devcb_write16::ioport_builder>;
extern template class devcb_write16::creator_impl<devcb_write16::membank_builder>;
extern template class devcb_write16::creator_impl<devcb_write16::output_builder>;
-extern template class devcb_write16::creator_impl<devcb_write16::log_builder>;
extern template class devcb_write32::creator_impl<devcb_write32::delegate_builder<write8s_delegate> >;
extern template class devcb_write32::creator_impl<devcb_write32::delegate_builder<write16s_delegate> >;
@@ -2745,7 +2561,6 @@ extern template class devcb_write32::creator_impl<devcb_write32::latched_inputli
extern template class devcb_write32::creator_impl<devcb_write32::ioport_builder>;
extern template class devcb_write32::creator_impl<devcb_write32::membank_builder>;
extern template class devcb_write32::creator_impl<devcb_write32::output_builder>;
-extern template class devcb_write32::creator_impl<devcb_write32::log_builder>;
extern template class devcb_write64::creator_impl<devcb_write64::delegate_builder<write8s_delegate> >;
extern template class devcb_write64::creator_impl<devcb_write64::delegate_builder<write16s_delegate> >;
@@ -2765,7 +2580,6 @@ extern template class devcb_write64::creator_impl<devcb_write64::latched_inputli
extern template class devcb_write64::creator_impl<devcb_write64::ioport_builder>;
extern template class devcb_write64::creator_impl<devcb_write64::membank_builder>;
extern template class devcb_write64::creator_impl<devcb_write64::output_builder>;
-extern template class devcb_write64::creator_impl<devcb_write64::log_builder>;
extern template class devcb_write_line::creator_impl<devcb_write_line::delegate_builder<write8s_delegate> >;
extern template class devcb_write_line::creator_impl<devcb_write_line::delegate_builder<write16s_delegate> >;
@@ -2785,6 +2599,5 @@ extern template class devcb_write_line::creator_impl<devcb_write_line::latched_i
extern template class devcb_write_line::creator_impl<devcb_write_line::ioport_builder>;
extern template class devcb_write_line::creator_impl<devcb_write_line::membank_builder>;
extern template class devcb_write_line::creator_impl<devcb_write_line::output_builder>;
-extern template class devcb_write_line::creator_impl<devcb_write_line::log_builder>;
#endif // MAME_EMU_DEVCB_H
diff --git a/src/emu/image.cpp b/src/emu/image.cpp
index ee228b051c1..3839a57549b 100644
--- a/src/emu/image.cpp
+++ b/src/emu/image.cpp
@@ -58,15 +58,24 @@ image_manager::image_manager(running_machine &machine)
// try as a softlist
if (software_name_parse(startup_image))
+ {
+ osd_printf_verbose("%s: attempting to load software item %s\n", image.device().tag(), startup_image);
result = image.load_software(startup_image);
+ }
// failing that, try as an image
if (result.first)
+ {
+ osd_printf_verbose("%s: attempting to load media image %s\n", image.device().tag(), startup_image);
result = image.load(startup_image);
+ }
// failing that, try creating it (if appropriate)
if (result.first && image.support_command_line_image_creation())
+ {
+ osd_printf_verbose("%s: attempting to create media image %s\n", image.device().tag(), startup_image);
result = image.create(startup_image);
+ }
// did the image load fail?
if (result.first)
diff --git a/src/lib/util/options.cpp b/src/lib/util/options.cpp
index f08e97b7985..a111c211f0e 100644
--- a/src/lib/util/options.cpp
+++ b/src/lib/util/options.cpp
@@ -1091,13 +1091,16 @@ std::string core_options::output_help() const
// loop over all items
for (auto &curentry : m_entries)
{
- // header: just print
if (curentry->type() == option_type::HEADER)
+ {
+ // header: just print
util::stream_format(buffer, "\n#\n# %s\n#\n", curentry->description());
-
- // otherwise, output entries for all non-deprecated items
+ }
else if (curentry->description() != nullptr)
- util::stream_format(buffer, "-%-20s%s\n", curentry->name(), curentry->description());
+ {
+ // otherwise, output entries for all non-deprecated items
+ util::stream_format(buffer, "-%-19s %s\n", curentry->name(), curentry->description());
+ }
}
return buffer.str();
}
diff --git a/src/mame/acorn/aa310.cpp b/src/mame/acorn/aa310.cpp
index 6af374e30b7..fb25a0b3b96 100644
--- a/src/mame/acorn/aa310.cpp
+++ b/src/mame/acorn/aa310.cpp
@@ -1095,7 +1095,7 @@ void aa500_state::aa500(machine_config &config)
//m_ioc->gpio_r<2>().set("rtc", FUNC(pcf8573_device::min_r));
//m_ioc->gpio_r<3>().set("rtc", FUNC(pcf8573_device::sec_r));
m_ioc->gpio_r<4>().set([this] { return m_selected_floppy ? m_selected_floppy->dskchg_r() : 1; });
- //m_ioc->gpio_w<5>().set_log("Sound Mute");
+ //m_ioc->gpio_w<5>().set([this] (int state) { logerror("%s: Sound Mute %d", machine().describe_context(), state); });
ACORN_VIDC1(config.replace(), m_vidc, 24_MHz_XTAL);
m_vidc->set_screen("screen");
@@ -1188,9 +1188,9 @@ void aa310_state::aa310(machine_config &config)
m_ioc->gpio_w<0>().set("i2cmem", FUNC(pcf8583_device::sda_w));
m_ioc->gpio_w<1>().set("i2cmem", FUNC(pcf8583_device::scl_w));
m_ioc->gpio_r<2>().set([this] { return m_selected_floppy ? !m_selected_floppy->ready_r() : 0; });
- //m_ioc->gpio_r<3>().set_log("Reserved");
- //m_ioc->gpio_r<4>().set_log("Aux IO connector");
- //m_ioc->gpio_w<5>().set_log("Sound Mute");
+ //m_ioc->gpio_r<3>().set([this] () { logerror("%s: Reserved", machine().describe_context()); return 0; });
+ //m_ioc->gpio_r<4>().set([this] () { logerror("%s: Aux IO connector", machine().describe_context()); return 0; });
+ //m_ioc->gpio_w<5>().set([this] (int state) { logerror("%s: Sound Mute %s", machine().describe_context(), state); });
m_ram->set_default_size("1M");
@@ -1470,12 +1470,12 @@ void aa4000_state::aa3010(machine_config &config)
m_maincpu->set_clock(72_MHz_XTAL / 6); // ARM250
m_ioc->baud_w().set("upc:serial1", FUNC(ns16450_device::clock_w));
- m_ioc->peripheral_r<1>().set_log("IOC: Peripheral Select 1 R");
- m_ioc->peripheral_w<1>().set_log("IOC: Peripheral Select 1 W");
+ m_ioc->peripheral_r<1>().set([this] () { logerror("%s: IOC: Peripheral Select 1 R", machine().describe_context()); return 0; });
+ m_ioc->peripheral_w<1>().set([this] (int state) { logerror("%s: IOC: Peripheral Select 1 W %d", machine().describe_context(), state); });
m_ioc->peripheral_r<2>().set("econet", FUNC(archimedes_econet_slot_device::read));
m_ioc->peripheral_w<2>().set("econet", FUNC(archimedes_econet_slot_device::write));
- m_ioc->peripheral_r<3>().set_log("IOC: Peripheral Select 3 R");
- m_ioc->peripheral_w<3>().set_log("IOC: Peripheral Select 3 W");
+ m_ioc->peripheral_r<3>().set([this] () { logerror("%s: IOC: Peripheral Select 3 R", machine().describe_context()); return 0; });
+ m_ioc->peripheral_w<3>().set([this] (int state) { logerror("%s: IOC: Peripheral Select 3 W %d", machine().describe_context(), state); });
m_ioc->peripheral_r<5>().set(FUNC(aa4000_state::ioeb_r));
m_ioc->peripheral_w<5>().set(FUNC(aa4000_state::ioeb_w));
m_ioc->gpio_r<0>().set(m_i2cmem, FUNC(pcf8583_device::sda_r));
@@ -1485,7 +1485,7 @@ void aa4000_state::aa3010(machine_config &config)
m_ioc->gpio_r<3>().set("idrom", FUNC(ds2401_device::read));
m_ioc->gpio_w<3>().set("idrom", FUNC(ds2401_device::write));
m_ioc->gpio_r<4>().set_constant(1); // Sintr
- //m_ioc->gpio_w<5>().set_log("Sound Mute");
+ //m_ioc->gpio_w<5>().set([this] (int state) { logerror("%s: Sound Mute %d", machine().describe_context(), state); });
m_ram->set_default_size("1M").set_extra_options("2M");
@@ -1554,12 +1554,12 @@ void aa5000_state::aa5000(machine_config &config)
m_maincpu->set_copro_type(arm_cpu_device::copro_type::VL86C020);
m_ioc->baud_w().set("upc:serial", FUNC(ns16450_device::clock_w));
- m_ioc->peripheral_r<1>().set_log("IOC: Peripheral Select 1 R");
- m_ioc->peripheral_w<1>().set_log("IOC: Peripheral Select 1 W");
+ m_ioc->peripheral_r<1>().set([this] () { logerror("%s: IOC: Peripheral Select 1 R", machine().describe_context()); return 0; });
+ m_ioc->peripheral_w<1>().set([this] (int state) { logerror("%s: IOC: Peripheral Select 1 W %d", machine().describe_context(), state); });
m_ioc->peripheral_r<2>().set("econet", FUNC(archimedes_econet_slot_device::read));
m_ioc->peripheral_w<2>().set("econet", FUNC(archimedes_econet_slot_device::write));
- m_ioc->peripheral_r<3>().set_log("IOC: Peripheral Select 3 R");
- m_ioc->peripheral_w<3>().set_log("IOC: Peripheral Select 3 W");
+ m_ioc->peripheral_r<3>().set([this] () { logerror("%s: IOC: Peripheral Select 3 R", machine().describe_context()); return 0; });
+ m_ioc->peripheral_w<3>().set([this] (int state) { logerror("%s: IOC: Peripheral Select 3 W %d", machine().describe_context(), state); });
m_ioc->peripheral_r<5>().set(FUNC(aa5000_state::ioeb_r));
m_ioc->peripheral_w<5>().set(FUNC(aa5000_state::ioeb_w));
m_ioc->gpio_r<0>().set("i2cmem", FUNC(pcf8583_device::sda_r));
@@ -1569,7 +1569,7 @@ void aa5000_state::aa5000(machine_config &config)
m_ioc->gpio_r<3>().set("idrom", FUNC(ds2401_device::read));
m_ioc->gpio_w<3>().set("idrom", FUNC(ds2401_device::write));
m_ioc->gpio_r<4>().set_constant(1); // Sintr
- //m_ioc->gpio_w<5>().set_log("Sound Mute");
+ //m_ioc->gpio_w<5>().set([this] (int state) { logerror("%s: Sound Mute %d", machine().describe_context(), state); });
m_ram->set_default_size("2M").set_extra_options("4M");
diff --git a/src/mame/misc/unktop.cpp b/src/mame/misc/unktop.cpp
index 27d06ac8c9a..b3705dd24e3 100644
--- a/src/mame/misc/unktop.cpp
+++ b/src/mame/misc/unktop.cpp
@@ -63,21 +63,21 @@ void unktop_state::unktop(machine_config &config)
{
HD6303X(config, m_maincpu, 4_MHz_XTAL); // HD63B03XP
m_maincpu->set_addrmap(AS_PROGRAM, &unktop_state::program_map);
- m_maincpu->in_p1_cb().set_log("P1 read");
- m_maincpu->out_p1_cb().set_log("P1 write");
- m_maincpu->in_p2_cb().set_log("P2 read");
- m_maincpu->out_p2_cb().set_log("P2 write");
- m_maincpu->in_p3_cb().set_log("P3 read");
- m_maincpu->out_p3_cb().set_log("P3 write");
- m_maincpu->in_p4_cb().set_log("P4 read");
- m_maincpu->out_p4_cb().set_log("P4 write");
- m_maincpu->in_p5_cb().set_log("P5 read");
- m_maincpu->out_p5_cb().set_log("P5 write");
- m_maincpu->in_p6_cb().set_log("P6 read");
- m_maincpu->out_p6_cb().set_log("P6 write");
- m_maincpu->out_p7_cb().set_log("P7 write");
- m_maincpu->out_sc2_cb().set_log("SC2 write");
- m_maincpu->out_ser_tx_cb().set_log("serial TX");
+ m_maincpu->in_p1_cb().set([this] () { logerror("%s: P1 read", machine().describe_context()); return u8(0); });
+ m_maincpu->out_p1_cb().set([this] (u8 data) { logerror("%s: P1 write %02X", machine().describe_context(), data); });
+ m_maincpu->in_p2_cb().set([this] () { logerror("%s: P2 read", machine().describe_context()); return u8(0); });
+ m_maincpu->out_p2_cb().set([this] (u8 data) { logerror("%s: P2 write %02X", machine().describe_context(), data); });
+ m_maincpu->in_p3_cb().set([this] () { logerror("%s: P3 read", machine().describe_context()); return u8(0); });
+ m_maincpu->out_p3_cb().set([this] (u8 data) { logerror("%s: P3 write %02X", machine().describe_context(), data); });
+ m_maincpu->in_p4_cb().set([this] () { logerror("%s: P4 read", machine().describe_context()); return u8(0); });
+ m_maincpu->out_p4_cb().set([this] (u8 data) { logerror("%s: P4 write %02X", machine().describe_context(), data); });
+ m_maincpu->in_p5_cb().set([this] () { logerror("%s: P5 read", machine().describe_context()); return u8(0); });
+ m_maincpu->out_p5_cb().set([this] (u8 data) { logerror("%s: P5 write %02X", machine().describe_context(), data); });
+ m_maincpu->in_p6_cb().set([this] () { logerror("%s: P6 read", machine().describe_context()); return u8(0); });
+ m_maincpu->out_p6_cb().set([this] (u8 data) { logerror("%s: P6 write %02X", machine().describe_context(), data); });
+ m_maincpu->out_p7_cb().set([this] (u8 data) { logerror("%s: P7 write %02X", machine().describe_context(), data); });
+ m_maincpu->out_sc2_cb().set([this] (int state) { logerror("%s: SC2 write %d", machine().describe_context(), state); });
+ m_maincpu->out_ser_tx_cb().set([this] (int state) { logerror("serial TX %d", state); });
SPEAKER(config, "mono").front_center();
diff --git a/src/mame/namco/quickncrash.cpp b/src/mame/namco/quickncrash.cpp
index c204e42630b..66020410d63 100644
--- a/src/mame/namco/quickncrash.cpp
+++ b/src/mame/namco/quickncrash.cpp
@@ -83,14 +83,14 @@ void qncrash_state::qncrash(machine_config &config)
// basic machine hardware
KL5C80A12(config, m_maincpu, 20_MHz_XTAL);
m_maincpu->set_addrmap(AS_PROGRAM, &qncrash_state::main_program_map);
- m_maincpu->in_p0_callback().set_log("p0 in");
- m_maincpu->out_p0_callback().set_log("p0 out");
- m_maincpu->in_p1_callback().set_log("p1 in");
- m_maincpu->out_p1_callback().set_log("p1 out");
- m_maincpu->in_p2_callback().set_log("p2 in");
- m_maincpu->out_p2_callback().set_log("p2 out");
- m_maincpu->in_p3_callback().set_log("p3 in");
- m_maincpu->out_p3_callback().set_log("p3 out");
+ m_maincpu->in_p0_callback().set([this] () { logerror("%s: p0 in", machine().describe_context()); return u8(0); });
+ m_maincpu->out_p0_callback().set([this] (u8 data) { logerror("%s: p0 out %02X", machine().describe_context(), data); });
+ m_maincpu->in_p1_callback().set([this] () { logerror("%s: p1 in", machine().describe_context()); return u8(0); });
+ m_maincpu->out_p1_callback().set([this] (u8 data) { logerror("%s: p1 out %02X", machine().describe_context(), data); });
+ m_maincpu->in_p2_callback().set([this] () { logerror("%s: p2 in", machine().describe_context()); return u8(0); });
+ m_maincpu->out_p2_callback().set([this] (u8 data) { logerror("%s: p2 out %02X", machine().describe_context(), data); });
+ m_maincpu->in_p3_callback().set([this] () { logerror("%s: p3 in", machine().describe_context()); return u8(0); });
+ m_maincpu->out_p3_callback().set([this] (u8 data) { logerror("%s: p3 out %02X", machine().describe_context(), data); });
tmpz84c015_device &dotcpu(TMPZ84C015(config, "dotcpu", 24'000'000 / 2)); // unknown D24OP8I XTAL, but TMPZ84C015BF-12 is rated for max 12 MHz, so guessed
dotcpu.set_addrmap(AS_PROGRAM, &qncrash_state::dot_program_map);
diff --git a/src/mame/skeleton/dmv.cpp b/src/mame/skeleton/dmv.cpp
index 875875edec4..69237aa5400 100644
--- a/src/mame/skeleton/dmv.cpp
+++ b/src/mame/skeleton/dmv.cpp
@@ -837,10 +837,10 @@ void dmv_state::dmv(machine_config &config)
m_dmac->out_eop_callback().set(FUNC(dmv_state::dmac_eop));
m_dmac->in_memr_callback().set(FUNC(dmv_state::program_r));
m_dmac->out_memw_callback().set(FUNC(dmv_state::program_w));
- m_dmac->in_ior_callback<0>().set_log("Read DMA CH1");
- m_dmac->out_iow_callback<0>().set_log("Write DMA CH1");
- m_dmac->in_ior_callback<1>().set_log("Read DMA CH2");
- m_dmac->out_iow_callback<1>().set_log("Write DMA CH2");
+ m_dmac->in_ior_callback<0>().set([this] () { logerror("Read DMA CH1"); return u8(0); });
+ m_dmac->out_iow_callback<0>().set([this] (u8 data) { logerror("Write DMA CH1 %02X", data); });
+ m_dmac->in_ior_callback<1>().set([this] () { logerror("Read DMA CH2"); return u8(0); });
+ m_dmac->out_iow_callback<1>().set([this] (u8 data) { logerror("Write DMA CH2 %02X", data); });
m_dmac->in_ior_callback<2>().set(m_hgdc, FUNC(upd7220_device::dack_r));
m_dmac->out_iow_callback<2>().set(m_hgdc, FUNC(upd7220_device::dack_w));
m_dmac->in_ior_callback<3>().set(m_fdc, FUNC(i8272a_device::dma_r));