summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/amiga/keyboard/mitsumi.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/amiga/keyboard/mitsumi.cpp')
-rw-r--r--src/devices/bus/amiga/keyboard/mitsumi.cpp90
1 files changed, 80 insertions, 10 deletions
diff --git a/src/devices/bus/amiga/keyboard/mitsumi.cpp b/src/devices/bus/amiga/keyboard/mitsumi.cpp
index 36837410cc4..0e6f219192d 100644
--- a/src/devices/bus/amiga/keyboard/mitsumi.cpp
+++ b/src/devices/bus/amiga/keyboard/mitsumi.cpp
@@ -106,13 +106,13 @@ ROM_END
class mitsumi_keyboard_base : public device_t, public device_amiga_keyboard_interface
{
public:
- virtual WRITE_LINE_MEMBER(kdat_w) override
+ virtual void kdat_w(int state) override
{
m_kdat_in = state ? 0x01U : 0x00U;
- m_mcu->pa_w(machine().dummy_space(), 0, m_meta->read());
+ m_mcu->pa_w(m_meta->read());
}
- READ_LINE_MEMBER(kdat_r)
+ int kdat_r()
{
return m_kdat_in ^ 0x01U;
}
@@ -128,7 +128,7 @@ public:
return (result >> 2) ^ 0x3fU;
}
- READ_LINE_MEMBER(reset_r)
+ int reset_r()
{
return m_ctrl_a_a;
}
@@ -209,8 +209,8 @@ protected:
{
mitsumi_keyboard_base::device_start();
- m_wd_timeout = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(mitsumi_watchdog_keyboard_base::wd_timeout), this));
- m_wd_pulse = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(mitsumi_watchdog_keyboard_base::wd_pulse), this));
+ m_wd_timeout = timer_alloc(FUNC(mitsumi_watchdog_keyboard_base::wd_timeout), this);
+ m_wd_pulse = timer_alloc(FUNC(mitsumi_watchdog_keyboard_base::wd_pulse), this);
m_pd7 = 0x01U;
@@ -230,7 +230,7 @@ protected:
}
private:
- WRITE_LINE_MEMBER(pd7_w)
+ void pd7_w(int state)
{
if (bool(state) != bool(m_pd7))
{
@@ -284,7 +284,7 @@ protected:
{
mitsumi_watchdog_keyboard_base::device_start();
- m_reset_pulse = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(a500_keyboard_base::reset_pulse), this));
+ m_reset_pulse = timer_alloc(FUNC(a500_keyboard_base::reset_pulse), this);
m_reset_active = 0U;
@@ -344,7 +344,7 @@ protected:
{
mitsumi_keyboard_base::device_start();
- m_reset_pulse = machine().scheduler().timer_alloc(timer_expired_delegate(FUNC(a600_keyboard_base::reset_pulse), this));
+ m_reset_pulse = timer_alloc(FUNC(a600_keyboard_base::reset_pulse), this);
m_reset_trigger = 0U;
m_reset_active = 0U;
@@ -366,7 +366,7 @@ protected:
}
private:
- WRITE_LINE_MEMBER(reset_trigger)
+ void reset_trigger(int state)
{
if (bool(state) != bool(m_reset_trigger))
{
@@ -665,6 +665,8 @@ public:
: a500_keyboard_base(mconfig, A500_KBD_US, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(fullsize_us); }
};
@@ -676,6 +678,8 @@ public:
: a500_keyboard_base(mconfig, A500_KBD_DE, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(fullsize_de); }
};
@@ -687,6 +691,8 @@ public:
: a500_keyboard_base(mconfig, A500_KBD_FR, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(fullsize_fr); }
};
@@ -698,6 +704,8 @@ public:
: a500_keyboard_base(mconfig, A500_KBD_IT, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(fullsize_it); }
};
@@ -709,6 +717,8 @@ public:
: a500_keyboard_base(mconfig, A500_KBD_SE, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(fullsize_se); }
};
@@ -720,6 +730,8 @@ public:
: a500_keyboard_base(mconfig, A500_KBD_ES, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(fullsize_es); }
};
@@ -731,6 +743,8 @@ public:
: a500_keyboard_base(mconfig, A500_KBD_DK, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(fullsize_dk); }
};
@@ -742,6 +756,8 @@ public:
: a500_keyboard_base(mconfig, A500_KBD_CH, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(fullsize_ch); }
};
@@ -753,6 +769,8 @@ public:
: a500_keyboard_base(mconfig, A500_KBD_NO, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(fullsize_no); }
};
@@ -764,6 +782,8 @@ public:
: a500_keyboard_base(mconfig, A500_KBD_GB, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(fullsize_gb); }
};
@@ -780,6 +800,8 @@ public:
: a600_keyboard_base(mconfig, A600_KBD_US, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(compact_us); }
};
@@ -791,6 +813,8 @@ public:
: a600_keyboard_base(mconfig, A600_KBD_DE, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(compact_de); }
};
@@ -802,6 +826,8 @@ public:
: a600_keyboard_base(mconfig, A600_KBD_FR, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(compact_fr); }
};
@@ -813,6 +839,8 @@ public:
: a600_keyboard_base(mconfig, A600_KBD_IT, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(compact_it); }
};
@@ -824,6 +852,8 @@ public:
: a600_keyboard_base(mconfig, A600_KBD_SE, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(compact_se); }
};
@@ -835,6 +865,8 @@ public:
: a600_keyboard_base(mconfig, A600_KBD_ES, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(compact_es); }
};
@@ -846,6 +878,8 @@ public:
: a600_keyboard_base(mconfig, A600_KBD_DK, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(compact_dk); }
};
@@ -857,6 +891,8 @@ public:
: a600_keyboard_base(mconfig, A600_KBD_CH, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(compact_ch); }
};
@@ -868,6 +904,8 @@ public:
: a600_keyboard_base(mconfig, A600_KBD_NO, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(compact_no); }
};
@@ -879,6 +917,8 @@ public:
: a600_keyboard_base(mconfig, A600_KBD_GB, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(compact_gb); }
};
@@ -906,6 +946,8 @@ public:
: a1000_keyboard_base(mconfig, A1000_KBD_DE, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A1000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(a1000_de); }
};
@@ -917,6 +959,8 @@ public:
: a1000_keyboard_base(mconfig, A1000_KBD_FR, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A1000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(a1000_fr); }
};
@@ -928,6 +972,8 @@ public:
: a1000_keyboard_base(mconfig, A1000_KBD_IT, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A1000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(a1000_it); }
};
@@ -939,6 +985,8 @@ public:
: a1000_keyboard_base(mconfig, A1000_KBD_SE, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A1000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(a1000_se); }
};
@@ -950,6 +998,8 @@ public:
: a1000_keyboard_base(mconfig, A1000_KBD_DK, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A1000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(a1000_dk); }
};
@@ -961,6 +1011,8 @@ public:
: a1000_keyboard_base(mconfig, A1000_KBD_GB, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A1000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(a1000_gb); }
};
@@ -988,6 +1040,8 @@ public:
: mitsumi_watchdog_keyboard_base(mconfig, A2000_KBD_DE, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(fullsize_de); }
};
@@ -999,6 +1053,8 @@ public:
: mitsumi_watchdog_keyboard_base(mconfig, A2000_KBD_FR, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(fullsize_fr); }
};
@@ -1010,6 +1066,8 @@ public:
: mitsumi_watchdog_keyboard_base(mconfig, A2000_KBD_IT, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(fullsize_it); }
};
@@ -1021,6 +1079,8 @@ public:
: mitsumi_watchdog_keyboard_base(mconfig, A2000_KBD_SE, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(fullsize_se); }
};
@@ -1032,6 +1092,8 @@ public:
: mitsumi_watchdog_keyboard_base(mconfig, A2000_KBD_ES, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(fullsize_es); }
};
@@ -1043,6 +1105,8 @@ public:
: mitsumi_watchdog_keyboard_base(mconfig, A2000_KBD_DK, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(fullsize_dk); }
};
@@ -1054,6 +1118,8 @@ public:
: mitsumi_watchdog_keyboard_base(mconfig, A2000_KBD_CH, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(fullsize_ch); }
};
@@ -1065,6 +1131,8 @@ public:
: mitsumi_watchdog_keyboard_base(mconfig, A2000_KBD_NO, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(fullsize_no); }
};
@@ -1076,6 +1144,8 @@ public:
: mitsumi_watchdog_keyboard_base(mconfig, A2000_KBD_GB, tag, owner, clock)
{ }
+ static auto parent_rom_device_type() { return &A2000_KBD_US; }
+
protected:
virtual ioport_constructor device_input_ports() const override { return INPUT_PORTS_NAME(fullsize_gb); }
};