diff options
Diffstat (limited to 'src/mame/drivers/primo.cpp')
-rw-r--r-- | src/mame/drivers/primo.cpp | 92 |
1 files changed, 47 insertions, 45 deletions
diff --git a/src/mame/drivers/primo.cpp b/src/mame/drivers/primo.cpp index 01d473632fe..803f97bcb58 100644 --- a/src/mame/drivers/primo.cpp +++ b/src/mame/drivers/primo.cpp @@ -248,87 +248,89 @@ static const struct CassetteOptions primo_cassette_options = { MACHINE_CONFIG_START(primo_state::primoa32) /* basic machine hardware */ - Z80(config, m_maincpu, 2500000); - m_maincpu->set_addrmap(AS_PROGRAM, &primo_state::primo32_mem); - m_maincpu->set_addrmap(AS_IO, &primo_state::primoa_port); + MCFG_DEVICE_ADD( "maincpu", Z80, 2500000 ) + MCFG_DEVICE_PROGRAM_MAP( primo32_mem) + MCFG_DEVICE_IO_MAP( primoa_port) /* video hardware */ - SCREEN(config, m_screen, SCREEN_TYPE_RASTER); - m_screen->set_refresh_hz(50); - m_screen->set_vblank_time(ATTOSECONDS_IN_USEC(2500)); /* not accurate */ - m_screen->set_size(256, 192); - m_screen->set_visarea(0, 256-1, 0, 192-1); - m_screen->set_screen_update(FUNC(primo_state::screen_update_primo)); - m_screen->set_palette("palette"); - m_screen->screen_vblank().set(FUNC(primo_state::vblank_irq)); + MCFG_SCREEN_ADD("screen", RASTER) + MCFG_SCREEN_REFRESH_RATE( 50 ) + MCFG_SCREEN_VBLANK_TIME(ATTOSECONDS_IN_USEC(2500)) /* not accurate */ + MCFG_SCREEN_SIZE( 256, 192 ) + MCFG_SCREEN_VISIBLE_AREA( 0, 256-1, 0, 192-1 ) + MCFG_SCREEN_UPDATE_DRIVER(primo_state, screen_update_primo) + MCFG_SCREEN_PALETTE("palette") + MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, primo_state, vblank_irq)) PALETTE(config, "palette", palette_device::MONOCHROME); /* sound hardware */ SPEAKER(config, "mono").front_center(); - WAVE(config, "wave", m_cassette).add_route(ALL_OUTPUTS, "mono", 0.25); + WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25); SPEAKER_SOUND(config, "speaker").add_route(ALL_OUTPUTS, "mono", 0.50); /* snapshot/quickload */ - MCFG_SNAPSHOT_ADD("snapshot", primo_state, primo, "pss") - MCFG_QUICKLOAD_ADD("quickload", primo_state, primo, "pp") + MCFG_SNAPSHOT_ADD("snapshot", primo_state, primo, "pss", 0) + MCFG_QUICKLOAD_ADD("quickload", primo_state, primo, "pp", 0) - CASSETTE(config, m_cassette); - m_cassette->set_formats(primo_ptp_format); - m_cassette->set_create_opts(&primo_cassette_options); - m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED); + MCFG_CASSETTE_ADD( "cassette" ) + MCFG_CASSETTE_FORMATS(primo_ptp_format) + MCFG_CASSETTE_CREATE_OPTS(&primo_cassette_options) + MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_SPEAKER_ENABLED) /* floppy from serial bus */ - cbm_iec_slot_device::add(config, m_iec, nullptr); + MCFG_CBM_IEC_ADD(nullptr) /* cartridge */ - GENERIC_CARTSLOT(config, m_cart1, generic_plain_slot, nullptr, "bin,rom"); - GENERIC_CARTSLOT(config, m_cart2, generic_plain_slot, nullptr, "bin,rom"); + MCFG_GENERIC_CARTSLOT_ADD("cartslot1", generic_plain_slot, nullptr) + MCFG_GENERIC_EXTENSIONS("bin,rom") + MCFG_GENERIC_CARTSLOT_ADD("cartslot2", generic_plain_slot, nullptr) + MCFG_GENERIC_EXTENSIONS("bin,rom") MACHINE_CONFIG_END -void primo_state::primoa48(machine_config &config) -{ +MACHINE_CONFIG_START(primo_state::primoa48) primoa32(config); - m_maincpu->set_addrmap(AS_PROGRAM, &primo_state::primo48_mem); -} + MCFG_DEVICE_MODIFY("maincpu") + MCFG_DEVICE_PROGRAM_MAP(primo48_mem) +MACHINE_CONFIG_END -void primo_state::primoa64(machine_config &config) -{ +MACHINE_CONFIG_START(primo_state::primoa64) primoa32(config); - m_maincpu->set_addrmap(AS_PROGRAM, &primo_state::primo64_mem); -} + MCFG_DEVICE_MODIFY("maincpu") + MCFG_DEVICE_PROGRAM_MAP(primo64_mem) +MACHINE_CONFIG_END -void primo_state::primob32(machine_config &config) -{ +MACHINE_CONFIG_START(primo_state::primob32) primoa32(config); - m_maincpu->set_addrmap(AS_IO, &primo_state::primob_port); + MCFG_DEVICE_MODIFY("maincpu") + MCFG_DEVICE_IO_MAP(primob_port) MCFG_MACHINE_RESET_OVERRIDE(primo_state, primob) -} +MACHINE_CONFIG_END -void primo_state::primob48(machine_config &config) -{ +MACHINE_CONFIG_START(primo_state::primob48) primoa48(config); - m_maincpu->set_addrmap(AS_IO, &primo_state::primob_port); + MCFG_DEVICE_MODIFY("maincpu") + MCFG_DEVICE_IO_MAP(primob_port) MCFG_MACHINE_RESET_OVERRIDE(primo_state, primob) -} +MACHINE_CONFIG_END -void primo_state::primob64(machine_config &config) -{ +MACHINE_CONFIG_START(primo_state::primob64) primoa64(config); - m_maincpu->set_addrmap(AS_IO, &primo_state::primob_port); + MCFG_DEVICE_MODIFY("maincpu") + MCFG_DEVICE_IO_MAP(primob_port) MCFG_MACHINE_RESET_OVERRIDE(primo_state, primob) -} +MACHINE_CONFIG_END -void primo_state::primoc64(machine_config &config) -{ +MACHINE_CONFIG_START(primo_state::primoc64) primoa64(config); - m_maincpu->set_addrmap(AS_IO, &primo_state::primob_port); + MCFG_DEVICE_MODIFY("maincpu") + MCFG_DEVICE_IO_MAP(primob_port) MCFG_MACHINE_RESET_OVERRIDE(primo_state, primob) -} +MACHINE_CONFIG_END ROM_START( primoa32 ) ROM_REGION( 0x14000, "maincpu", ROMREGION_ERASEFF ) |