diff options
Diffstat (limited to 'src/mame/drivers/tek410x.cpp')
-rw-r--r-- | src/mame/drivers/tek410x.cpp | 48 |
1 files changed, 26 insertions, 22 deletions
diff --git a/src/mame/drivers/tek410x.cpp b/src/mame/drivers/tek410x.cpp index 17fbbbe9dfd..c70f2a6fec4 100644 --- a/src/mame/drivers/tek410x.cpp +++ b/src/mame/drivers/tek410x.cpp @@ -30,15 +30,17 @@ class tek4107a_state : public driver_device { public: tek4107a_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) { } + : driver_device(mconfig, type, tag) + { } void tek4109a(machine_config &config); void tek4107a(machine_config &config); -private: +protected: virtual void machine_start() override; - virtual void video_start() override; + +private: uint32_t screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect); void tek4107a_io(address_map &map); void tek4107a_mem(address_map &map); @@ -95,30 +97,32 @@ void tek4107a_state::machine_start() /* Machine Driver */ -MACHINE_CONFIG_START(tek4107a_state::tek4107a) +void tek4107a_state::tek4107a(machine_config &config) +{ /* basic machine hardware */ - MCFG_DEVICE_ADD(I80188_TAG, I80188, 21000000) - MCFG_DEVICE_PROGRAM_MAP(tek4107a_mem) - MCFG_DEVICE_IO_MAP(tek4107a_io) + i80188_cpu_device &maincpu(I80188(config, I80188_TAG, 21000000)); + maincpu.set_addrmap(AS_PROGRAM, &tek4107a_state::tek4107a_mem); + maincpu.set_addrmap(AS_IO, &tek4107a_state::tek4107a_io); /* video hardware */ - MCFG_SCREEN_ADD(SCREEN_TAG, RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ - MCFG_SCREEN_UPDATE_DRIVER(tek4107a_state, screen_update) - MCFG_SCREEN_SIZE(640, 480) - MCFG_SCREEN_VISIBLE_AREA(0, 640-1, 0, 480-1) - - MCFG_PALETTE_ADD("palette", 64) - MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_tek4107a) -MACHINE_CONFIG_END - -MACHINE_CONFIG_START(tek4107a_state::tek4109a) + screen_device &screen(SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ + screen.set_screen_update(FUNC(tek4107a_state::screen_update)); + screen.set_size(640, 480); + screen.set_visarea(0, 640-1, 0, 480-1); + + PALETTE(config, "palette").set_entries(64); + GFXDECODE(config, "gfxdecode", "palette", gfx_tek4107a); +} + +void tek4107a_state::tek4109a(machine_config &config) +{ tek4107a(config); + /* video hardware */ - MCFG_DEVICE_MODIFY("palette") - MCFG_PALETTE_ENTRIES(4096) -MACHINE_CONFIG_END + subdevice<palette_device>("palette")->set_entries(4096); +} /* ROMs */ |