summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/bbc.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/bbc.cpp')
-rw-r--r--src/mame/drivers/bbc.cpp53
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");