From f04b5e9f23a618b8274d82a6c427d1aed2bfc7bc Mon Sep 17 00:00:00 2001 From: Dirk Best Date: Wed, 12 Oct 2022 17:40:45 +0200 Subject: rz1: Add MIDI ports --- src/mame/casio/rz1.cpp | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/src/mame/casio/rz1.cpp b/src/mame/casio/rz1.cpp index 0f0a50d0b82..4a2eff1f45c 100644 --- a/src/mame/casio/rz1.cpp +++ b/src/mame/casio/rz1.cpp @@ -23,12 +23,13 @@ TODO: - Metronome - - MIDI - Make audio input generic (core support needed) ***************************************************************************/ #include "emu.h" +#include "bus/midi/midiinport.h" +#include "bus/midi/midioutport.h" #include "cpu/upd7810/upd7811.h" #include "formats/trs_cas.h" #include "imagedev/cassette.h" @@ -67,7 +68,8 @@ public: m_led_pattern(*this, "led_pattern"), m_led_startstop(*this, "led_startstop"), m_port_a(0), - m_port_b(0xff) + m_port_b(0xff), + m_midi_rx(1) { } void rz1(machine_config &config); @@ -112,6 +114,7 @@ private: uint8_t m_port_a; uint8_t m_port_b; + int m_midi_rx; }; @@ -388,6 +391,7 @@ void rz1_state::machine_start() void rz1_state::machine_reset() { + m_midi_rx = 1; } @@ -404,6 +408,8 @@ void rz1_state::rz1(machine_config &config) m_maincpu->pb_out_cb().set(FUNC(rz1_state::port_b_w)); m_maincpu->pc_in_cb().set(FUNC(rz1_state::port_c_r)); m_maincpu->pc_out_cb().set(FUNC(rz1_state::port_c_w)); + m_maincpu->rxd_func().set([this]() { return m_midi_rx; }); + m_maincpu->txd_func().set("mdout", FUNC(midi_port_device::write_txd)); m_maincpu->an0_func().set(FUNC(rz1_state::analog_r)); m_maincpu->an1_func().set(FUNC(rz1_state::analog_r)); m_maincpu->an2_func().set(FUNC(rz1_state::analog_r)); @@ -443,6 +449,15 @@ void rz1_state::rz1(machine_config &config) m_pg[1]->data_callback().set(FUNC(rz1_state::upd934g_b_data_r)); m_pg[1]->add_route(ALL_OUTPUTS, "speaker", 1.0); + // midi + midi_port_device &mdin(MIDI_PORT(config, "mdin", midiin_slot, "midiin")); + mdin.rxd_handler().set([this](int state) { m_midi_rx = state; }); + mdin.rxd_handler().append("mdthru", FUNC(midi_port_device::write_txd)); + + MIDI_PORT(config, "mdout", midiout_slot, "midiout"); + + MIDI_PORT(config, "mdthru", midiout_slot, "midiout"); + // mt (magnetic tape) CASSETTE(config, m_cassette); m_cassette->set_formats(trs80l2_cassette_formats); -- cgit v1.2.3