diff options
Diffstat (limited to 'src/mame/drivers/mmm.cpp')
-rw-r--r-- | src/mame/drivers/mmm.cpp | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/src/mame/drivers/mmm.cpp b/src/mame/drivers/mmm.cpp index e0cdb2121e6..8028066b8df 100644 --- a/src/mame/drivers/mmm.cpp +++ b/src/mame/drivers/mmm.cpp @@ -19,6 +19,7 @@ public: mmm_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), + m_ctc(*this, "ctc"), m_inputs(*this, "IN%u", 0) { } @@ -27,8 +28,11 @@ public: DECLARE_WRITE8_MEMBER(ay_porta_w); void mmm(machine_config &config); + void io_map(address_map &map); + void mem_map(address_map &map); private: required_device<cpu_device> m_maincpu; + required_device<z80ctc_device> m_ctc; required_ioport_array<8> m_inputs; u8 m_strobe; }; @@ -53,18 +57,18 @@ WRITE8_MEMBER(mmm_state::ay_porta_w) logerror("Writing %02X to AY-3-8910 port A\n", data); } -static ADDRESS_MAP_START( mem_map, AS_PROGRAM, 8, mmm_state ) +ADDRESS_MAP_START(mmm_state::mem_map) AM_RANGE(0x0000, 0x3fff) AM_ROM AM_RANGE(0x4000, 0x40ff) AM_RAM ADDRESS_MAP_END -static ADDRESS_MAP_START( io_map, AS_IO, 8, mmm_state ) +ADDRESS_MAP_START(mmm_state::io_map) ADDRESS_MAP_GLOBAL_MASK(0xff) AM_RANGE(0x00, 0x00) AM_WRITE(strobe_w) AM_RANGE(0x03, 0x03) AM_DEVWRITE("aysnd", ay8910_device, address_w) AM_RANGE(0x04, 0x04) AM_DEVWRITE("aysnd", ay8910_device, data_w) AM_RANGE(0x05, 0x05) AM_DEVREAD("aysnd", ay8910_device, data_r) - AM_RANGE(0x06, 0x06) AM_SELECT(0x30) AM_DEVREADWRITE_MOD("ctc", z80ctc_device, read, write, rshift<4>) + ;map(0x06, 0x06).select(0x30).lrw8("ctc_rw", [this](address_space &space, offs_t offset, u8 mem_mask){ return m_ctc->read(space, offset >> 4, mem_mask); }, [this](address_space &space, offs_t offset, u8 data, u8 mem_mask){ m_ctc->write(space, offset >> 4, data, mem_mask); }); AM_RANGE(0x07, 0x07) AM_READ(inputs_r) ADDRESS_MAP_END |