diff options
Diffstat (limited to 'src/mame/drivers/bbc.cpp')
-rw-r--r-- | src/mame/drivers/bbc.cpp | 53 |
1 files changed, 33 insertions, 20 deletions
diff --git a/src/mame/drivers/bbc.cpp b/src/mame/drivers/bbc.cpp index 581ccc03efe..3452810516c 100644 --- a/src/mame/drivers/bbc.cpp +++ b/src/mame/drivers/bbc.cpp @@ -907,10 +907,14 @@ void bbc_state::bbca(machine_config &config) m_via6522_0->irq_handler().set(m_irqs, FUNC(input_merger_device::in_w<1>)); /* eprom sockets */ - BBC_ROMSLOT16(config, m_rom[0x0c], bbc_rom_devices, nullptr); /* ic101 */ - BBC_ROMSLOT16(config, m_rom[0x0d], bbc_rom_devices, nullptr); /* ic100 */ - BBC_ROMSLOT16(config, m_rom[0x0e], bbc_rom_devices, nullptr); /* ic88 */ - BBC_ROMSLOT16(config, m_rom[0x0f], bbc_rom_devices, nullptr); /* ic52 */ + GENERIC_SOCKET(config, m_rom[12], generic_linear_slot, "bbc_rom", "bin,rom"); /* ic101 */ + m_rom[12]->set_device_load(device_image_load_delegate(&bbc_state::device_image_load_romc, this)); + GENERIC_SOCKET(config, m_rom[13], generic_linear_slot, "bbc_rom", "bin,rom"); /* ic100 */ + m_rom[13]->set_device_load(device_image_load_delegate(&bbc_state::device_image_load_romd, this)); + GENERIC_SOCKET(config, m_rom[14], generic_linear_slot, "bbc_rom", "bin,rom"); /* ic88 */ + m_rom[14]->set_device_load(device_image_load_delegate(&bbc_state::device_image_load_rome, this)); + GENERIC_SOCKET(config, m_rom[15], generic_linear_slot, "bbc_rom", "bin,rom"); /* ic52 */ + m_rom[15]->set_device_load(device_image_load_delegate(&bbc_state::device_image_load_romf, this)); /* software lists */ SOFTWARE_LIST(config, "cass_ls_a").set_original("bbca_cass"); @@ -946,7 +950,7 @@ void bbc_state::bbcb(machine_config &config) m_via6522_1->irq_handler().set(m_irqs, FUNC(input_merger_device::in_w<2>)); /* adc */ - UPD7002(config, m_upd7002, 16_MHz_XTAL / 16); + UPD7002(config, m_upd7002, 0); m_upd7002->set_get_analogue_callback(FUNC(bbc_state::get_analogue_input), this); m_upd7002->set_eoc_callback(FUNC(bbc_state::upd7002_eoc), this); @@ -1046,7 +1050,7 @@ void bbc_state::bbcb_us(machine_config &config) FLOPPY_CONNECTOR(config, "i8271:1", bbc_floppies, "525qd", bbc_state::floppy_formats).enable_sound(true); /* software lists */ - SOFTWARE_LIST(config, "flop_ls_b_us").set_original("bbcb_flop_us"); + SOFTWARE_LIST(config, "flop_ls_b_us").set_original("bbcb_cass_us"); } @@ -1129,11 +1133,16 @@ void bbcbp_state::bbcbp(machine_config &config) FLOPPY_CONNECTOR(config, "wd1770:1", bbc_floppies, "525qd", bbc_state::floppy_formats).enable_sound(true); /* eprom sockets */ - BBC_ROMSLOT32(config, m_rom[0x02], bbc_rom_devices, nullptr); /* ic35 */ - BBC_ROMSLOT32(config, m_rom[0x04], bbc_rom_devices, nullptr); /* ic44 */ - BBC_ROMSLOT32(config, m_rom[0x06], bbc_rom_devices, nullptr); /* ic57 */ - BBC_ROMSLOT32(config, m_rom[0x08], bbc_rom_devices, nullptr); /* ic62 */ - BBC_ROMSLOT32(config, m_rom[0x0a], bbc_rom_devices, nullptr); /* ic68 */ + GENERIC_SOCKET(config, m_rom[2], generic_linear_slot, "bbc_rom", "bin,rom"); /* ic35 */ + m_rom[2]->set_device_load(device_image_load_delegate(&bbc_state::device_image_load_rom23, this)); + GENERIC_SOCKET(config, m_rom[4], generic_linear_slot, "bbc_rom", "bin,rom"); /* ic44 */ + m_rom[4]->set_device_load(device_image_load_delegate(&bbc_state::device_image_load_rom45, this)); + GENERIC_SOCKET(config, m_rom[6], generic_linear_slot, "bbc_rom", "bin,rom"); /* ic57 */ + m_rom[6]->set_device_load(device_image_load_delegate(&bbc_state::device_image_load_rom67, this)); + GENERIC_SOCKET(config, m_rom[8], generic_linear_slot, "bbc_rom", "bin,rom"); /* ic62 */ + m_rom[8]->set_device_load(device_image_load_delegate(&bbc_state::device_image_load_rom89, this)); + GENERIC_SOCKET(config, m_rom[10], generic_linear_slot, "bbc_rom", "bin,rom"); /* ic68 */ + m_rom[10]->set_device_load(device_image_load_delegate(&bbc_state::device_image_load_romab, this)); config.device_remove("romslot12"); config.device_remove("romslot13"); config.device_remove("romslot14"); @@ -1401,7 +1410,7 @@ void bbcm_state::bbcm(machine_config &config) m_acia_clock->signal_handler().set(FUNC(bbc_state::write_acia_clock)); /* adc */ - UPD7002(config, m_upd7002, 16_MHz_XTAL / 16); + UPD7002(config, m_upd7002, 0); m_upd7002->set_get_analogue_callback(FUNC(bbc_state::get_analogue_input), this); m_upd7002->set_eoc_callback(FUNC(bbc_state::upd7002_eoc), this); @@ -1470,9 +1479,12 @@ void bbcm_state::bbcm(machine_config &config) m_cart[1]->set_device_load(device_image_load_delegate(&bbc_state::device_image_load_cart2, this)); /* eprom sockets */ - BBC_ROMSLOT16(config, m_rom[0x08], bbc_rom_devices, nullptr); /* ic27 */ - BBC_ROMSLOT32(config, m_rom[0x04], bbc_rom_devices, nullptr); /* ic41 */ - BBC_ROMSLOT32(config, m_rom[0x06], bbc_rom_devices, nullptr); /* ic37 */ + GENERIC_SOCKET(config, m_rom[8], generic_linear_slot, "bbc_rom", "bin,rom"); /* ic27 */ + m_rom[8]->set_device_load(device_image_load_delegate(&bbc_state::device_image_load_rom8, this)); + GENERIC_SOCKET(config, m_rom[4], generic_linear_slot, "bbc_rom", "bin,rom"); /* ic41 */ + m_rom[4]->set_device_load(device_image_load_delegate(&bbc_state::device_image_load_rom45, this)); + GENERIC_SOCKET(config, m_rom[6], generic_linear_slot, "bbc_rom", "bin,rom"); /* ic37 */ + m_rom[6]->set_device_load(device_image_load_delegate(&bbc_state::device_image_load_rom67, this)); /* software lists */ SOFTWARE_LIST(config, "cass_ls_m").set_original("bbcm_cass"); @@ -1674,13 +1686,14 @@ void bbcm_state::bbcmc(machine_config &config) config.device_remove("cartslot2"); /* eprom sockets */ + GENERIC_SOCKET(config, m_rom[2], generic_linear_slot, "bbc_rom", "bin,rom"); /* ic23 */ + m_rom[2]->set_device_load(device_image_load_delegate(&bbc_state::device_image_load_rom2, this)); + GENERIC_SOCKET(config, m_rom[3], generic_linear_slot, "bbc_rom", "bin,rom"); /* ic17 */ + m_rom[3]->set_device_load(device_image_load_delegate(&bbc_state::device_image_load_rom3, this)); + GENERIC_SOCKET(config, m_rom[0], generic_linear_slot, "bbc_rom", "bin,rom"); /* ic38 */ + m_rom[0]->set_device_load(device_image_load_delegate(&bbc_state::device_image_load_rom01, this)); config.device_remove("romslot4"); config.device_remove("romslot6"); - config.device_remove("romslot8"); - BBC_ROMSLOT16(config, m_rom[0x03], bbc_rom_devices, nullptr); /* ic17 */ - BBC_ROMSLOT16(config, m_rom[0x02], bbc_rom_devices, nullptr); /* ic23 */ - BBC_ROMSLOT32(config, m_rom[0x00], bbc_rom_devices, nullptr); /* ic38 */ - BBC_ROMSLOT16(config, m_rom[0x08], bbc_rom_devices, nullptr); /* ic29 */ /* software lists */ SOFTWARE_LIST(config, "flop_ls_mc").set_original("bbcmc_flop"); |