diff options
Diffstat (limited to 'src/mame/pinball/mephistp.cpp')
| -rw-r--r-- | src/mame/pinball/mephistp.cpp | 20 |
1 files changed, 11 insertions, 9 deletions
diff --git a/src/mame/pinball/mephistp.cpp b/src/mame/pinball/mephistp.cpp index ecd49a09c6a..23f2cb5a276 100644 --- a/src/mame/pinball/mephistp.cpp +++ b/src/mame/pinball/mephistp.cpp @@ -7,7 +7,7 @@ PINBALL - Mephisto - Cirsa Sport 2000 -Serial communication with the sound board is handled by a 8256 MUART (not emulated yet). +Serial communication with the sound board is handled by a 8256 UART. Status: @@ -28,7 +28,7 @@ ToDo: #include "cpu/i86/i86.h" #include "cpu/mcs51/mcs51.h" #include "machine/i8155.h" -//#include "machine/i8256.h" +#include "machine/i8256.h" #include "machine/nvram.h" #include "sound/ay8910.h" #include "sound/dac.h" @@ -44,6 +44,7 @@ public: mephisto_state(const machine_config &mconfig, device_type type, const char *tag) : genpin_class(mconfig, type, tag) , m_maincpu(*this, "maincpu") + , m_uart(*this, "m_uart") , m_aysnd(*this, "aysnd") , m_soundbank(*this, "soundbank") //, m_io_keyboard(*this, "X%d", 0U) @@ -76,6 +77,7 @@ private: virtual void machine_start() override ATTR_COLD; virtual void machine_reset() override ATTR_COLD; required_device<cpu_device> m_maincpu; + required_device<i8256_device> m_uart; required_device<ay8910_device> m_aysnd; required_memory_bank m_soundbank; //required_ioport_array<8> m_io_keyboard; @@ -132,7 +134,7 @@ void mephisto_state::mephisto_map(address_map &map) { map(0x00000, 0x07fff).rom().region("maincpu", 0).mirror(0x8000); map(0x10000, 0x107ff).ram().share("nvram"); - map(0x12000, 0x1201f).noprw(); //.rw("muart", FUNC(i8256_device::read), FUNC(i8256_device::write)); + map(0x12000, 0x1201f).rw("m_uart", FUNC(i8256_device::read), FUNC(i8256_device::write)); map(0x13000, 0x130ff).rw("ic20", FUNC(i8155_device::memory_r), FUNC(i8155_device::memory_w)); map(0x13800, 0x13807).rw("ic20", FUNC(i8155_device::io_r), FUNC(i8155_device::io_w)); map(0x14000, 0x140ff).rw("ic9", FUNC(i8155_device::memory_r), FUNC(i8155_device::memory_w)); @@ -146,7 +148,7 @@ void mephisto_state::sport2k_map(address_map &map) { map(0x00000, 0x0ffff).rom().region("maincpu", 0); map(0x20000, 0x21fff).ram().share("nvram"); - map(0x2a000, 0x2a01f).noprw(); //.rw("muart", FUNC(i8256_device::read), FUNC(i8256_device::write)); + map(0x2a000, 0x2a01f).rw("m_uart", FUNC(i8256_device::read), FUNC(i8256_device::write)); map(0x2b000, 0x2b0ff).rw("ic20", FUNC(i8155_device::memory_r), FUNC(i8155_device::memory_w)); map(0x2b800, 0x2b807).rw("ic20", FUNC(i8155_device::io_r), FUNC(i8155_device::io_w)); map(0x2c000, 0x2c0ff).rw("ic9", FUNC(i8155_device::memory_r), FUNC(i8155_device::memory_w)); @@ -210,20 +212,20 @@ void mephisto_state::mephisto(machine_config &config) /* basic machine hardware */ I8088(config, m_maincpu, XTAL(18'000'000)/3); m_maincpu->set_addrmap(AS_PROGRAM, &mephisto_state::mephisto_map); - //m_maincpu->set_irq_acknowledge_callback("muart", FUNC(i8256_device::inta_cb)); + //m_maincpu->set_irq_acknowledge_callback("m_uart", FUNC(i8256_device::inta_callback)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); /* Video */ //config.set_default_layout(layout_mephistp); - //i8256_device &muart(I8256(config, "muart", XTAL(18'000'000)/3)); - //muart.irq_handler().set_inputline(m_maincpu, INPUT_LINE_IRQ0); - //muart.txd_handler().set_inputline("audiocpu", MCS51_RX_LINE); + i8256_device &m_uart(I8256(config, "m_uart", XTAL(18'000'000)/3)); + m_uart.int_callback().set_inputline(m_maincpu, INPUT_LINE_IRQ0); + //m_uart.txd_handler().set_inputline("audiocpu", MCS51_RX_LINE); I8155(config, "ic20", XTAL(18'000'000)/6); //i8155_device &i8155_1(I8155(config, "ic20", XTAL(18'000'000)/6)); - //i8155_1.out_to_callback().set("muart", FUNC(i8256_device::write_txc)); + //i8155_1.out_to_callback().set("m_uart", FUNC(i8256_device::write_txc)); I8155(config, "ic9", XTAL(18'000'000)/6); //i8155_device &i8155_2(I8155(config, "ic9", XTAL(18'000'000)/6)); |
