diff options
Diffstat (limited to 'src/mame/drivers/bfcobra.cpp')
-rw-r--r-- | src/mame/drivers/bfcobra.cpp | 43 |
1 files changed, 21 insertions, 22 deletions
diff --git a/src/mame/drivers/bfcobra.cpp b/src/mame/drivers/bfcobra.cpp index 4025c0d7ac1..f406329a2cd 100644 --- a/src/mame/drivers/bfcobra.cpp +++ b/src/mame/drivers/bfcobra.cpp @@ -1638,28 +1638,29 @@ INTERRUPT_GEN_MEMBER(bfcobra_state::vblank_gen) update_irqs(); } -MACHINE_CONFIG_START(bfcobra_state::bfcobra) - MCFG_DEVICE_ADD("maincpu", Z80, Z80_XTAL) - MCFG_DEVICE_PROGRAM_MAP(z80_prog_map) - MCFG_DEVICE_IO_MAP(z80_io_map) - MCFG_DEVICE_VBLANK_INT_DRIVER("screen", bfcobra_state, vblank_gen) +void bfcobra_state::bfcobra(machine_config &config) +{ + Z80(config, m_maincpu, Z80_XTAL); + m_maincpu->set_addrmap(AS_PROGRAM, &bfcobra_state::z80_prog_map); + m_maincpu->set_addrmap(AS_IO, &bfcobra_state::z80_io_map); + m_maincpu->set_vblank_int("screen", FUNC(bfcobra_state::vblank_gen)); - MCFG_DEVICE_ADD("audiocpu", MC6809, M6809_XTAL) // MC6809P - MCFG_DEVICE_PROGRAM_MAP(m6809_prog_map) - MCFG_DEVICE_PERIODIC_INT_DRIVER(bfcobra_state, timer_irq, 1000) + MC6809(config, m_audiocpu, M6809_XTAL); // MC6809P + m_audiocpu->set_addrmap(AS_PROGRAM, &bfcobra_state::m6809_prog_map); + m_audiocpu->set_periodic_int(FUNC(bfcobra_state::timer_irq), attotime::from_hz(1000)); NVRAM(config, "nvram", nvram_device::DEFAULT_ALL_0); /* TODO */ - MCFG_SCREEN_ADD("screen", RASTER) - MCFG_SCREEN_REFRESH_RATE(50) - MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500) /* not accurate */) - MCFG_SCREEN_SIZE(512, 256) - MCFG_SCREEN_VISIBLE_AREA(0, 512 - 1, 0, 256 - 1) - MCFG_SCREEN_UPDATE_DRIVER(bfcobra_state, screen_update_bfcobra) + screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER)); + screen.set_refresh_hz(50); + screen.set_vblank_time(ATTOSECONDS_IN_USEC(2500) /* not accurate */); + screen.set_size(512, 256); + screen.set_visarea_full(); + screen.set_screen_update(FUNC(bfcobra_state::screen_update_bfcobra)); - MCFG_PALETTE_ADD("palette", 256) + PALETTE(config, m_palette).set_entries(256); ramdac_device &ramdac(RAMDAC(config, "ramdac", 0, m_palette)); // MUSIC Semiconductor TR9C1710 RAMDAC or equivalent ramdac.set_addrmap(0, &bfcobra_state::ramdac_map); @@ -1669,8 +1670,7 @@ MACHINE_CONFIG_START(bfcobra_state::bfcobra) AY8910(config, "aysnd", M6809_XTAL / 4).add_route(ALL_OUTPUTS, "mono", 0.20); - MCFG_DEVICE_ADD("upd", UPD7759) - MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 0.40) + UPD7759(config, m_upd7759).add_route(ALL_OUTPUTS, "mono", 0.40); /* ACIAs */ ACIA6850(config, m_acia6850_0, 0); @@ -1684,12 +1684,11 @@ MACHINE_CONFIG_START(bfcobra_state::bfcobra) m_acia6850_2->txd_handler().set(FUNC(bfcobra_state::data_acia_tx_w)); m_acia6850_2->irq_handler().set(FUNC(bfcobra_state::m6809_data_irq)); - MCFG_DEVICE_ADD("acia_clock", CLOCK, 31250*16) // What are the correct ACIA clocks ? - MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(*this, bfcobra_state, write_acia_clock)) + clock_device &acia_clock(CLOCK(config, "acia_clock", 31250*16)); // What are the correct ACIA clocks ? + acia_clock.signal_handler().set(FUNC(bfcobra_state::write_acia_clock)); - MCFG_DEVICE_ADD("meters", METERS, 0) - MCFG_METERS_NUMBER(8) -MACHINE_CONFIG_END + METERS(config, m_meters, 0).set_number(8); +} /*************************************************************************** |