summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
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
commit04cd6a61b7c293a21065375574083cdb9a339cd5 (patch)
treef21fa3914ecb3ed1faf2977fe42b0ab7168f5680
parent3b4af26559d2f04294232506b0e52d6cf32b9434 (diff)
drw80pkr.cpp: device_finder (nw)
-rw-r--r--src/mame/drivers/drw80pkr.cpp74
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