diff options
Diffstat (limited to 'src/mame/drivers/primo.cpp')
-rw-r--r-- | src/mame/drivers/primo.cpp | 92 |
1 files changed, 45 insertions, 47 deletions
diff --git a/src/mame/drivers/primo.cpp b/src/mame/drivers/primo.cpp index 803f97bcb58..01d473632fe 100644 --- a/src/mame/drivers/primo.cpp +++ b/src/mame/drivers/primo.cpp @@ -248,89 +248,87 @@ static const struct CassetteOptions primo_cassette_options = { MACHINE_CONFIG_START(primo_state::primoa32) /* basic machine hardware */ - MCFG_DEVICE_ADD( "maincpu", Z80, 2500000 ) - MCFG_DEVICE_PROGRAM_MAP( primo32_mem) - MCFG_DEVICE_IO_MAP( primoa_port) + 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); /* video hardware */ - 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)) + 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)); PALETTE(config, "palette", palette_device::MONOCHROME); /* sound hardware */ SPEAKER(config, "mono").front_center(); - WAVE(config, "wave", "cassette").add_route(ALL_OUTPUTS, "mono", 0.25); + WAVE(config, "wave", m_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", 0) - MCFG_QUICKLOAD_ADD("quickload", primo_state, primo, "pp", 0) + MCFG_SNAPSHOT_ADD("snapshot", primo_state, primo, "pss") + MCFG_QUICKLOAD_ADD("quickload", primo_state, primo, "pp") - 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) + 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); /* floppy from serial bus */ - MCFG_CBM_IEC_ADD(nullptr) + cbm_iec_slot_device::add(config, m_iec, nullptr); /* cartridge */ - 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") + GENERIC_CARTSLOT(config, m_cart1, generic_plain_slot, nullptr, "bin,rom"); + GENERIC_CARTSLOT(config, m_cart2, generic_plain_slot, nullptr, "bin,rom"); MACHINE_CONFIG_END -MACHINE_CONFIG_START(primo_state::primoa48) +void primo_state::primoa48(machine_config &config) +{ primoa32(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(primo48_mem) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &primo_state::primo48_mem); +} -MACHINE_CONFIG_START(primo_state::primoa64) +void primo_state::primoa64(machine_config &config) +{ primoa32(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_PROGRAM_MAP(primo64_mem) -MACHINE_CONFIG_END + m_maincpu->set_addrmap(AS_PROGRAM, &primo_state::primo64_mem); +} -MACHINE_CONFIG_START(primo_state::primob32) +void primo_state::primob32(machine_config &config) +{ primoa32(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(primob_port) + m_maincpu->set_addrmap(AS_IO, &primo_state::primob_port); MCFG_MACHINE_RESET_OVERRIDE(primo_state, primob) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(primo_state::primob48) +void primo_state::primob48(machine_config &config) +{ primoa48(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(primob_port) + m_maincpu->set_addrmap(AS_IO, &primo_state::primob_port); MCFG_MACHINE_RESET_OVERRIDE(primo_state, primob) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(primo_state::primob64) +void primo_state::primob64(machine_config &config) +{ primoa64(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(primob_port) + m_maincpu->set_addrmap(AS_IO, &primo_state::primob_port); MCFG_MACHINE_RESET_OVERRIDE(primo_state, primob) -MACHINE_CONFIG_END +} -MACHINE_CONFIG_START(primo_state::primoc64) +void primo_state::primoc64(machine_config &config) +{ primoa64(config); - MCFG_DEVICE_MODIFY("maincpu") - MCFG_DEVICE_IO_MAP(primob_port) + m_maincpu->set_addrmap(AS_IO, &primo_state::primob_port); MCFG_MACHINE_RESET_OVERRIDE(primo_state, primob) -MACHINE_CONFIG_END +} ROM_START( primoa32 ) ROM_REGION( 0x14000, "maincpu", ROMREGION_ERASEFF ) |