diff options
author | 2023-11-25 10:03:22 -0500 | |
---|---|---|
committer | 2023-11-26 02:03:22 +1100 | |
commit | b46f3beddcf5ae7692bed06afd7c91c5eb959712 (patch) | |
tree | 5ca3c45358902993f84ca9ba389a7190f3a4c519 /src/devices/machine/msm6200.h | |
parent | f690048664c3df8fe8c45712d658bec87f3d23bf (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.h | 40 |
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 |