mirror of
https://github.com/holub/mame
synced 2025-06-07 13:23:50 +03:00
rz1: Add MIDI ports
This commit is contained in:
parent
d6e8a43b81
commit
f04b5e9f23
@ -23,12 +23,13 @@
|
|||||||
|
|
||||||
TODO:
|
TODO:
|
||||||
- Metronome
|
- Metronome
|
||||||
- MIDI
|
|
||||||
- Make audio input generic (core support needed)
|
- Make audio input generic (core support needed)
|
||||||
|
|
||||||
***************************************************************************/
|
***************************************************************************/
|
||||||
|
|
||||||
#include "emu.h"
|
#include "emu.h"
|
||||||
|
#include "bus/midi/midiinport.h"
|
||||||
|
#include "bus/midi/midioutport.h"
|
||||||
#include "cpu/upd7810/upd7811.h"
|
#include "cpu/upd7810/upd7811.h"
|
||||||
#include "formats/trs_cas.h"
|
#include "formats/trs_cas.h"
|
||||||
#include "imagedev/cassette.h"
|
#include "imagedev/cassette.h"
|
||||||
@ -67,7 +68,8 @@ public:
|
|||||||
m_led_pattern(*this, "led_pattern"),
|
m_led_pattern(*this, "led_pattern"),
|
||||||
m_led_startstop(*this, "led_startstop"),
|
m_led_startstop(*this, "led_startstop"),
|
||||||
m_port_a(0),
|
m_port_a(0),
|
||||||
m_port_b(0xff)
|
m_port_b(0xff),
|
||||||
|
m_midi_rx(1)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
void rz1(machine_config &config);
|
void rz1(machine_config &config);
|
||||||
@ -112,6 +114,7 @@ private:
|
|||||||
|
|
||||||
uint8_t m_port_a;
|
uint8_t m_port_a;
|
||||||
uint8_t m_port_b;
|
uint8_t m_port_b;
|
||||||
|
int m_midi_rx;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -388,6 +391,7 @@ void rz1_state::machine_start()
|
|||||||
|
|
||||||
void rz1_state::machine_reset()
|
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->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_in_cb().set(FUNC(rz1_state::port_c_r));
|
||||||
m_maincpu->pc_out_cb().set(FUNC(rz1_state::port_c_w));
|
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->an0_func().set(FUNC(rz1_state::analog_r));
|
||||||
m_maincpu->an1_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));
|
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]->data_callback().set(FUNC(rz1_state::upd934g_b_data_r));
|
||||||
m_pg[1]->add_route(ALL_OUTPUTS, "speaker", 1.0);
|
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)
|
// mt (magnetic tape)
|
||||||
CASSETTE(config, m_cassette);
|
CASSETTE(config, m_cassette);
|
||||||
m_cassette->set_formats(trs80l2_cassette_formats);
|
m_cassette->set_formats(trs80l2_cassette_formats);
|
||||||
|
Loading…
Reference in New Issue
Block a user