diff options
author | Ivan Vangelista <mesgnet@yahoo.it> | 2018-05-31 17:30:15 +0200 |
---|---|---|
committer | Ivan Vangelista <mesgnet@yahoo.it> | 2018-05-31 17:30:15 +0200 |
commit | 04cd6a61b7c293a21065375574083cdb9a339cd5 (patch) | |
tree | f21fa3914ecb3ed1faf2977fe42b0ab7168f5680 | |
parent | 3b4af26559d2f04294232506b0e52d6cf32b9434 (diff) |
drw80pkr.cpp: device_finder (nw)
-rw-r--r-- | src/mame/drivers/drw80pkr.cpp | 74 |
1 files changed, 43 insertions, 31 deletions
diff --git a/src/mame/drivers/drw80pkr.cpp b/src/mame/drivers/drw80pkr.cpp index 074d406eee8..d3f8fbb1edc 100644 --- a/src/mame/drivers/drw80pkr.cpp +++ b/src/mame/drivers/drw80pkr.cpp @@ -41,8 +41,18 @@ public: drw80pkr_state(const machine_config &mconfig, device_type type, const char *tag) : driver_device(mconfig, type, tag), m_maincpu(*this, "maincpu"), - m_gfxdecode(*this, "gfxdecode") { } + m_gfxdecode(*this, "gfxdecode"), + m_aysnd(*this, "aysnd"), + m_mainbank(*this, "mainbank") { } + void init_drw80pkr(); + void drw80pkr(machine_config &config); + +protected: + virtual void machine_start() override; + virtual void video_start() override; + +private: tilemap_t *m_bg_tilemap; uint8_t m_t0; uint8_t m_t1; @@ -56,28 +66,30 @@ public: uint8_t m_pkr_io_ram[0x100]; uint16_t m_video_ram[0x0400]; uint8_t m_color_ram[0x0400]; + + required_device<cpu_device> m_maincpu; + required_device<gfxdecode_device> m_gfxdecode; + required_device<ay8912_device> m_aysnd; + required_memory_bank m_mainbank; + DECLARE_WRITE8_MEMBER(p1_w); DECLARE_WRITE8_MEMBER(p2_w); DECLARE_WRITE_LINE_MEMBER(prog_w); DECLARE_WRITE8_MEMBER(bus_w); - DECLARE_WRITE8_MEMBER(drw80pkr_io_w); + DECLARE_WRITE8_MEMBER(io_w); DECLARE_READ_LINE_MEMBER(t0_r); DECLARE_READ_LINE_MEMBER(t1_r); DECLARE_READ8_MEMBER(p1_r); DECLARE_READ8_MEMBER(p2_r); DECLARE_READ8_MEMBER(bus_r); - DECLARE_READ8_MEMBER(drw80pkr_io_r); - void init_drw80pkr(); + DECLARE_READ8_MEMBER(io_r); + TILE_GET_INFO_MEMBER(get_bg_tile_info); - virtual void machine_start() override; - virtual void video_start() override; DECLARE_PALETTE_INIT(drw80pkr); - uint32_t screen_update_drw80pkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); - required_device<cpu_device> m_maincpu; - required_device<gfxdecode_device> m_gfxdecode; - void drw80pkr(machine_config &config); - void drw80pkr_io_map(address_map &map); - void drw80pkr_map(address_map &map); + uint32_t screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect); + + void io_map(address_map &map); + void map(address_map &map); }; @@ -87,7 +99,7 @@ public: void drw80pkr_state::machine_start() { - machine().device<nvram_device>("nvram")->set_base(m_pkr_io_ram, sizeof(m_pkr_io_ram)); + subdevice<nvram_device>("nvram")->set_base(m_pkr_io_ram, sizeof(m_pkr_io_ram)); } /***************** @@ -113,7 +125,7 @@ WRITE_LINE_MEMBER(drw80pkr_state::prog_w) { m_active_bank = m_active_bank ^ 0x01; - membank("bank1")->set_entry(m_active_bank); + m_mainbank->set_entry(m_active_bank); } } @@ -122,7 +134,7 @@ WRITE8_MEMBER(drw80pkr_state::bus_w) m_bus = data; } -WRITE8_MEMBER(drw80pkr_state::drw80pkr_io_w) +WRITE8_MEMBER(drw80pkr_state::io_w) { uint16_t n_offs; @@ -188,11 +200,11 @@ WRITE8_MEMBER(drw80pkr_state::drw80pkr_io_w) // ay8910 control port if (m_p1 == 0xfc) - machine().device<ay8910_device>("aysnd")->address_w(space, 0, data); + m_aysnd->address_w(space, 0, data); // ay8910_write_port_0_w if (m_p1 == 0xfe) - machine().device<ay8910_device>("aysnd")->data_w(space, 0, data); + m_aysnd->data_w(space, 0, data); } } @@ -225,7 +237,7 @@ READ8_MEMBER(drw80pkr_state::bus_r) return m_bus; } -READ8_MEMBER(drw80pkr_state::drw80pkr_io_r) +READ8_MEMBER(drw80pkr_state::io_r) { uint8_t ret; uint16_t kbdin; @@ -326,7 +338,7 @@ void drw80pkr_state::video_start() m_bg_tilemap = &machine().tilemap().create(*m_gfxdecode, tilemap_get_info_delegate(FUNC(drw80pkr_state::get_bg_tile_info),this), TILEMAP_SCAN_ROWS, 8, 8, 24, 27); } -uint32_t drw80pkr_state::screen_update_drw80pkr(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) +uint32_t drw80pkr_state::screen_update(screen_device &screen, bitmap_ind16 &bitmap, const rectangle &cliprect) { m_bg_tilemap->draw(screen, bitmap, cliprect, 0, 0); @@ -393,7 +405,7 @@ GFXDECODE_END void drw80pkr_state::init_drw80pkr() { - membank("bank1")->configure_entries(0, 2, memregion("maincpu")->base(), 0x1000); + m_mainbank->configure_entries(0, 2, memregion("maincpu")->base(), 0x1000); } @@ -401,14 +413,14 @@ void drw80pkr_state::init_drw80pkr() * Memory map information * *************************/ -void drw80pkr_state::drw80pkr_map(address_map &map) +void drw80pkr_state::map(address_map &map) { - map(0x0000, 0x0fff).bankr("bank1"); + map(0x0000, 0x0fff).bankr("mainbank"); } -void drw80pkr_state::drw80pkr_io_map(address_map &map) +void drw80pkr_state::io_map(address_map &map) { - map(0x00, 0xff).rw(this, FUNC(drw80pkr_state::drw80pkr_io_r), FUNC(drw80pkr_state::drw80pkr_io_w)); + map(0x00, 0xff).rw(this, FUNC(drw80pkr_state::io_r), FUNC(drw80pkr_state::io_w)); } /************************* @@ -445,9 +457,9 @@ INPUT_PORTS_END MACHINE_CONFIG_START(drw80pkr_state::drw80pkr) // basic machine hardware - MCFG_DEVICE_ADD("maincpu", I8039, CPU_CLOCK) - MCFG_DEVICE_PROGRAM_MAP(drw80pkr_map) - MCFG_DEVICE_IO_MAP(drw80pkr_io_map) + MCFG_DEVICE_ADD(m_maincpu, I8039, CPU_CLOCK) + MCFG_DEVICE_PROGRAM_MAP(map) + MCFG_DEVICE_IO_MAP(io_map) MCFG_MCS48_PORT_T0_IN_CB(READLINE(*this, drw80pkr_state, t0_r)) MCFG_MCS48_PORT_T1_IN_CB(READLINE(*this, drw80pkr_state, t1_r)) MCFG_MCS48_PORT_P1_IN_CB(READ8(*this, drw80pkr_state, p1_r)) @@ -457,7 +469,7 @@ MACHINE_CONFIG_START(drw80pkr_state::drw80pkr) MCFG_MCS48_PORT_PROG_OUT_CB(WRITELINE(*this, drw80pkr_state, prog_w)) MCFG_MCS48_PORT_BUS_IN_CB(READ8(*this, drw80pkr_state, bus_r)) MCFG_MCS48_PORT_BUS_OUT_CB(WRITE8(*this, drw80pkr_state, bus_w)) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", drw80pkr_state, irq0_line_hold) + MCFG_DEVICE_VBLANK_INT_DRIVER("screen", drw80pkr_state, irq0_line_hold) // video hardware @@ -467,10 +479,10 @@ MACHINE_CONFIG_START(drw80pkr_state::drw80pkr) MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(0)) MCFG_SCREEN_SIZE((31+1)*8, (31+1)*8) MCFG_SCREEN_VISIBLE_AREA(0*8, 24*8-1, 0*8, 27*8-1) - MCFG_SCREEN_UPDATE_DRIVER(drw80pkr_state, screen_update_drw80pkr) + MCFG_SCREEN_UPDATE_DRIVER(drw80pkr_state, screen_update) MCFG_SCREEN_PALETTE("palette") - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_drw80pkr) + MCFG_DEVICE_ADD(m_gfxdecode, GFXDECODE, "palette", gfx_drw80pkr) MCFG_PALETTE_ADD("palette", 16*16) MCFG_PALETTE_INIT_OWNER(drw80pkr_state, drw80pkr) @@ -479,7 +491,7 @@ MACHINE_CONFIG_START(drw80pkr_state::drw80pkr) // sound hardware SPEAKER(config, "mono").front_center(); - MCFG_DEVICE_ADD("aysnd", AY8912, 20000000/12) + MCFG_DEVICE_ADD(m_aysnd, AY8912, 20000000/12) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.75) MACHINE_CONFIG_END |