summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/pinball/mephistp.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/pinball/mephistp.cpp')
-rw-r--r--src/mame/pinball/mephistp.cpp20
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));