summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/atom.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/atom.cpp')
-rw-r--r--src/mame/drivers/atom.cpp141
1 files changed, 71 insertions, 70 deletions
diff --git a/src/mame/drivers/atom.cpp b/src/mame/drivers/atom.cpp
index 5a46cf62aaa..7e3588e92d3 100644
--- a/src/mame/drivers/atom.cpp
+++ b/src/mame/drivers/atom.cpp
@@ -220,7 +220,7 @@ WRITE8_MEMBER( atomeb_state::eprom_w )
READ8_MEMBER( atomeb_state::ext_r )
{
if (m_ext[m_eprom & 0x0f]->exists())
- return m_ext[m_eprom & 0x0f]->read_rom(offset);
+ return m_ext[m_eprom & 0x0f]->read_rom(space, offset);
else
return 0xff;
}
@@ -232,9 +232,9 @@ READ8_MEMBER( atomeb_state::ext_r )
READ8_MEMBER( atomeb_state::dos_r )
{
if (m_e0->exists() && !BIT(m_eprom, 7))
- return m_e0->read_rom(offset);
+ return m_e0->read_rom(space, offset);
else if (m_e1->exists() && BIT(m_eprom, 7))
- return m_e1->read_rom(offset);
+ return m_e1->read_rom(space, offset);
else
return 0xff;
}
@@ -663,7 +663,7 @@ void atom_state::machine_start()
m_baseram[0x0b] = machine().rand() & 0x0ff;
if (m_cart.found() && m_cart->exists())
- m_maincpu->space(AS_PROGRAM).install_read_handler(0xa000, 0xafff, read8sm_delegate(FUNC(generic_slot_device::read_rom), &*m_cart));
+ m_maincpu->space(AS_PROGRAM).install_read_handler(0xa000, 0xafff, read8_delegate(FUNC(generic_slot_device::read_rom), &*m_cart));
}
/*-------------------------------------------------
@@ -710,22 +710,22 @@ FLOPPY_FORMATS_END0
MACHINE_CONFIG_START(atom_state::atom)
/* basic machine hardware */
- M6502(config, m_maincpu, X2/4);
- m_maincpu->set_addrmap(AS_PROGRAM, &atom_state::atom_mem);
+ MCFG_DEVICE_ADD(SY6502_TAG, M6502, X2/4)
+ MCFG_DEVICE_PROGRAM_MAP(atom_mem)
/* video hardware */
- SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER);
+ MCFG_SCREEN_MC6847_PAL_ADD(SCREEN_TAG, MC6847_TAG)
- MC6847_PAL(config, m_vdg, XTAL(4'433'619));
- m_vdg->input_callback().set(FUNC(atom_state::vdg_videoram_r));
- m_vdg->set_screen(SCREEN_TAG);
+ MCFG_DEVICE_ADD(MC6847_TAG, MC6847_PAL, XTAL(4'433'619))
+ MCFG_MC6847_INPUT_CALLBACK(READ8(*this, atom_state, vdg_videoram_r))
/* sound hardware */
SPEAKER(config, "mono").front_center();
- SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 1.00);
+ MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
/* devices */
- TIMER(config, "hz2400").configure_periodic(FUNC(atom_state::cassette_output_tick), attotime::from_hz(4806));
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("hz2400", atom_state, cassette_output_tick, attotime::from_hz(4806))
via6522_device &via(VIA6522(config, R6522_TAG, X2/4));
via.writepa_handler().set("cent_data_out", FUNC(output_latch_device::bus_w));
@@ -741,22 +741,23 @@ MACHINE_CONFIG_START(atom_state::atom)
I8271(config, m_fdc, 0);
m_fdc->intrq_wr_callback().set(FUNC(atom_state::atom_8271_interrupt_callback));
m_fdc->hdl_wr_callback().set(FUNC(atom_state::motor_w));
- FLOPPY_CONNECTOR(config, I8271_TAG ":0", atom_floppies, "525sssd", atom_state::floppy_formats).enable_sound(true);
- FLOPPY_CONNECTOR(config, I8271_TAG ":1", atom_floppies, "525sssd", atom_state::floppy_formats).enable_sound(true);
+ MCFG_FLOPPY_DRIVE_ADD(I8271_TAG ":0", atom_floppies, "525sssd", atom_state::floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
+ MCFG_FLOPPY_DRIVE_ADD(I8271_TAG ":1", atom_floppies, "525sssd", atom_state::floppy_formats)
+ MCFG_FLOPPY_DRIVE_SOUND(true)
- CENTRONICS(config, m_centronics, centronics_devices, "printer");
- m_centronics->ack_handler().set(R6522_TAG, FUNC(via6522_device::write_ca1));
- m_centronics->busy_handler().set(R6522_TAG, FUNC(via6522_device::write_pa7));
+ MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer")
+ MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(R6522_TAG, via6522_device, write_ca1))
+ MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(R6522_TAG, via6522_device, write_pa7))
- output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
- m_centronics->set_output_latch(cent_data_out);
+ MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG)
- CASSETTE(config, m_cassette);
- m_cassette->set_formats(atom_cassette_formats);
- m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED);
- m_cassette->set_interface("atom_cass");
+ MCFG_CASSETTE_ADD("cassette")
+ MCFG_CASSETTE_FORMATS(atom_cassette_formats)
+ MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED)
+ MCFG_CASSETTE_INTERFACE("atom_cass")
- MCFG_QUICKLOAD_ADD("quickload", atom_state, atom_atm, "atm")
+ MCFG_QUICKLOAD_ADD("quickload", atom_state, atom_atm, "atm", 0)
/* utility rom slot */
MCFG_GENERIC_CARTSLOT_ADD("cartslot", generic_linear_slot, "atom_cart")
@@ -767,9 +768,9 @@ MACHINE_CONFIG_START(atom_state::atom)
RAM(config, RAM_TAG).set_default_size("32K").set_extra_options("2K,4K,6K,8K,10K,12K").set_default_value(0x00);
/* Software lists */
- SOFTWARE_LIST(config, "rom_list").set_original("atom_rom");
- SOFTWARE_LIST(config, "cass_list").set_original("atom_cass");
- SOFTWARE_LIST(config, "flop_list").set_original("atom_flop");
+ MCFG_SOFTWARE_LIST_ADD("rom_list","atom_rom")
+ MCFG_SOFTWARE_LIST_ADD("cass_list","atom_cass")
+ MCFG_SOFTWARE_LIST_ADD("flop_list","atom_flop")
MACHINE_CONFIG_END
/*-------------------------------------------------
@@ -783,10 +784,11 @@ MACHINE_CONFIG_END
MACHINE_CONFIG_START(atomeb_state::atomeb)
atom(config);
- m_maincpu->set_addrmap(AS_PROGRAM, &atomeb_state::atomeb_mem);
+ MCFG_DEVICE_MODIFY(SY6502_TAG)
+ MCFG_DEVICE_PROGRAM_MAP(atomeb_mem)
/* cartridges */
- config.device_remove("cartslot");
+ MCFG_DEVICE_REMOVE("cartslot")
MCFG_ATOM_ROM_ADD("rom_a0", ext_load<0x0>)
MCFG_ATOM_ROM_ADD("rom_a1", ext_load<0x1>)
@@ -813,25 +815,24 @@ MACHINE_CONFIG_END
MACHINE_DRIVER( atombb )
-------------------------------------------------*/
-void atom_state::atombb(machine_config &config)
-{
+MACHINE_CONFIG_START(atom_state::atombb)
/* basic machine hardware */
- M6502(config, m_maincpu, X2/4);
- m_maincpu->set_addrmap(AS_PROGRAM, &atom_state::atombb_mem);
+ MCFG_DEVICE_ADD(SY6502_TAG, M6502, X2/4)
+ MCFG_DEVICE_PROGRAM_MAP(atombb_mem)
/* video hardware */
- SCREEN(config, SCREEN_TAG, SCREEN_TYPE_RASTER);
+ MCFG_SCREEN_MC6847_PAL_ADD(SCREEN_TAG, MC6847_TAG)
- MC6847_PAL(config, m_vdg, XTAL(4'433'619));
- m_vdg->input_callback().set(FUNC(atom_state::vdg_videoram_r));
- m_vdg->set_screen(SCREEN_TAG);
+ MCFG_DEVICE_ADD(MC6847_TAG, MC6847_PAL, XTAL(4'433'619))
+ MCFG_MC6847_INPUT_CALLBACK(READ8(*this, atom_state, vdg_videoram_r))
/* sound hardware */
SPEAKER(config, "mono").front_center();
- SPEAKER_SOUND(config, m_speaker).add_route(ALL_OUTPUTS, "mono", 1.00);
+ MCFG_DEVICE_ADD("speaker", SPEAKER_SOUND)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 1.00)
/* devices */
- TIMER(config, "hz2400").configure_periodic(FUNC(atom_state::cassette_output_tick), attotime::from_hz(4806));
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("hz2400", atom_state, cassette_output_tick, attotime::from_hz(4806))
via6522_device &via(VIA6522(config, R6522_TAG, X2/4));
via.writepa_handler().set("cent_data_out", FUNC(output_latch_device::bus_w));
@@ -844,73 +845,73 @@ void atom_state::atombb(machine_config &config)
ppi.in_pc_callback().set(FUNC(atom_state::ppi_pc_r));
ppi.out_pc_callback().set(FUNC(atom_state::ppi_pc_w));
- CENTRONICS(config, m_centronics, centronics_devices, "printer");
- m_centronics->ack_handler().set(R6522_TAG, FUNC(via6522_device::write_ca1));
- m_centronics->busy_handler().set(R6522_TAG, FUNC(via6522_device::write_pa7));
+ MCFG_DEVICE_ADD(m_centronics, CENTRONICS, centronics_devices, "printer")
+ MCFG_CENTRONICS_ACK_HANDLER(WRITELINE(R6522_TAG, via6522_device, write_ca1))
+ MCFG_CENTRONICS_BUSY_HANDLER(WRITELINE(R6522_TAG, via6522_device, write_pa7))
- output_latch_device &cent_data_out(OUTPUT_LATCH(config, "cent_data_out"));
- m_centronics->set_output_latch(cent_data_out);
+ MCFG_CENTRONICS_OUTPUT_LATCH_ADD("cent_data_out", CENTRONICS_TAG)
- CASSETTE(config, m_cassette);
- m_cassette->set_formats(atom_cassette_formats);
- m_cassette->set_default_state(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED);
- m_cassette->set_interface("atom_cass");
+ MCFG_CASSETTE_ADD("cassette")
+ MCFG_CASSETTE_FORMATS(atom_cassette_formats)
+ MCFG_CASSETTE_DEFAULT_STATE(CASSETTE_STOPPED | CASSETTE_MOTOR_ENABLED | CASSETTE_SPEAKER_MUTED)
+ MCFG_CASSETTE_INTERFACE("atom_cass")
/* internal ram */
RAM(config, RAM_TAG).set_default_size("16K").set_extra_options("8K,12K");
-}
+MACHINE_CONFIG_END
/*-------------------------------------------------
MACHINE_DRIVER( prophet2 )
-------------------------------------------------*/
-//void atom_state::prophet2(machine_config &config)
-//{
+//static MACHINE_CONFIG_START( prophet2 )
// atom(config);
// /* basic machine hardware */
-// m_maincpu->set_addrmap(AS_PROGRAM, &atom_state::prophet_mem);
+// MCFG_DEVICE_MODIFY(SY6502_TAG)
+// MCFG_DEVICE_PROGRAM_MAP(prophet_mem)
//
// /* fdc */
-// config.device_remove(I8271_TAG);
-// config.device_remove(I8271_TAG ":0");
-// config.device_remove(I8271_TAG ":1");
+// MCFG_DEVICE_REMOVE(I8271_TAG)
+// MCFG_DEVICE_REMOVE(I8271_TAG ":0")
+// MCFG_DEVICE_REMOVE(I8271_TAG ":1")
//
// /* internal ram */
-// subdevice<ram_device>(RAM_TAG)->set_default_size("32K");
+// MCFG_RAM_MODIFY(RAM_TAG)
+// MCFG_RAM_DEFAULT_SIZE("32K")
// /* Software lists */
-// config.device_remove("rom_list");
-// config.device_remove("flop_list");
-//}
+// MCFG_SOFTWARE_LIST_REMOVE("rom_list")
+// MCFG_SOFTWARE_LIST_REMOVE("flop_list")
+//MACHINE_CONFIG_END
/*-------------------------------------------------
MACHINE_DRIVER( prophet3 )
-------------------------------------------------*/
-//void atom_state::prophet3(machine_config &config)
-//{
+//static MACHINE_CONFIG_START( prophet3 )
// atom(config);
// /* basic machine hardware */
-// m_maincpu->set_addrmap(AS_PROGRAM, &atom_state::prophet_mem);
+// MCFG_DEVICE_MODIFY(SY6502_TAG)
+// MCFG_DEVICE_PROGRAM_MAP(prophet_mem)
//
// /* internal ram */
-// subdevice<ram_device>(RAM_TAG)->set_default_size("32K");
+// MCFG_RAM_MODIFY(RAM_TAG)
+// MCFG_RAM_DEFAULT_SIZE("32K")
// /* Software lists */
-// config.device_remove("rom_list");
-//}
+// MCFG_SOFTWARE_LIST_REMOVE("rom_list")
+//MACHINE_CONFIG_END
/*-------------------------------------------------
MACHINE_DRIVER( atommc )
-------------------------------------------------*/
-//void atom_state::atommc(machine_config &config)
-//{
+//static MACHINE_CONFIG_START( atommc )
// atom(config);
// /* Software lists */
-// SOFTWARE_LIST(config, "mmc_list").set_original("atom_mmc");
-// config.device_remove("flop_list");
-//}
+// MCFG_SOFTWARE_LIST_ADD("mmc_list","atom_mmc")
+// MCFG_SOFTWARE_LIST_REMOVE("flop_list")
+//MACHINE_CONFIG_END
/***************************************************************************
ROMS