summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/msm6200.h
diff options
context:
space:
mode:
author Devin Acker <d@revenant1.net>2023-11-25 10:03:22 -0500
committer GitHub <noreply@github.com>2023-11-26 02:03:22 +1100
commitb46f3beddcf5ae7692bed06afd7c91c5eb959712 (patch)
tree5ca3c45358902993f84ca9ba389a7190f3a4c519 /src/devices/machine/msm6200.h
parentf690048664c3df8fe8c45712d658bec87f3d23bf (diff)
casio/cz1.cpp: Added driver for Casio CZ-1 and MZ-1 prototype. (#11779)
* casio/ra3.cpp: Added support for software list ROM cartridges. * sound/upd933.cpp: Clear pending interrupt flag when read. * sound/upd933.cpp: Implemented presumed pitch modulator register. New working systems -------------------- Casio CZ-1 [Mastropiero, Devin Acker] New working clones -------------------- Casio MZ-1 (prototype) [Mastropiero, Devin Acker] New working software items (cz1_cart.xml) ------------------------------------ Orchestra (RC-10) [Edward d-tech] Organ / Synth. Sound / Sound Effect (RC-30) [Edward d-tech] Piano / Guitar / Percussion (RC-20) [unknown]
Diffstat (limited to 'src/devices/machine/msm6200.h')
-rw-r--r--src/devices/machine/msm6200.h40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/devices/machine/msm6200.h b/src/devices/machine/msm6200.h
new file mode 100644
index 00000000000..034950d10e7
--- /dev/null
+++ b/src/devices/machine/msm6200.h
@@ -0,0 +1,40 @@
+// license:BSD-3-Clause
+// copyright-holders: Devin Acker
+/***************************************************************************
+ OKI MSM6200 keyboard controller (HLE)
+***************************************************************************/
+
+#ifndef MAME_MACHINE_MSM6200_H
+#define MAME_MACHINE_MSM6200_H
+
+#pragma once
+
+class msm6200_device : public device_t
+{
+public:
+ msm6200_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0);
+
+ auto irq_cb() { return m_irq_cb.bind(); }
+
+ void write(offs_t offset, u8 data);
+ u8 read();
+
+protected:
+ virtual void device_start() override;
+ virtual void device_reset() override;
+
+private:
+ optional_ioport_array<38> m_keys;
+ optional_ioport m_velocity;
+
+ devcb_write_line m_irq_cb;
+
+ u8 m_cmd, m_row, m_key_data;
+ u8 m_key_state;
+ u8 m_last_state[38];
+};
+
+// device type definition
+DECLARE_DEVICE_TYPE(MSM6200, msm6200_device)
+
+#endif // MAME_MACHINE_MSM6200_H