From 284be7e18f732f6a73ef94754f6f337ab4eaba45 Mon Sep 17 00:00:00 2001 From: Nigel Barnes Date: Fri, 21 Dec 2018 14:00:18 +0000 Subject: bbc: Added bus clocks for FDC (8MHz), 1MHz bus (1MHz), and Compact expansion port (8Mhz). --- src/devices/bus/bbc/1mhzbus/1mhzbus.h | 6 +++--- src/devices/bus/bbc/1mhzbus/beebsid.cpp | 4 ++-- src/devices/bus/bbc/1mhzbus/ieee488.cpp | 2 +- src/devices/bus/bbc/exp/exp.h | 6 +++--- src/devices/bus/bbc/exp/mertec.cpp | 4 ++-- src/devices/bus/bbc/fdc/acorn.cpp | 4 ++-- src/devices/bus/bbc/fdc/ams.cpp | 2 +- src/devices/bus/bbc/fdc/cumana.cpp | 4 ++-- src/devices/bus/bbc/fdc/fdc.h | 6 +++--- src/devices/bus/bbc/fdc/microware.cpp | 2 +- src/devices/bus/bbc/fdc/opus.cpp | 8 ++++---- src/devices/bus/bbc/fdc/watford.cpp | 4 ++-- src/mame/drivers/bbc.cpp | 8 ++++---- 13 files changed, 30 insertions(+), 30 deletions(-) diff --git a/src/devices/bus/bbc/1mhzbus/1mhzbus.h b/src/devices/bus/bbc/1mhzbus/1mhzbus.h index ceabd85ed4b..ad435876bf0 100644 --- a/src/devices/bus/bbc/1mhzbus/1mhzbus.h +++ b/src/devices/bus/bbc/1mhzbus/1mhzbus.h @@ -92,8 +92,8 @@ class bbc_1mhzbus_slot_device : public device_t, public device_slot_interface public: // construction/destruction template - bbc_1mhzbus_slot_device(machine_config const &mconfig, char const *tag, device_t *owner, T &&slot_options, const char *default_option) - : bbc_1mhzbus_slot_device(mconfig, tag, owner) + bbc_1mhzbus_slot_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock, T &&slot_options, const char *default_option) + : bbc_1mhzbus_slot_device(mconfig, tag, owner, clock) { option_reset(); slot_options(*this); @@ -101,7 +101,7 @@ public: set_fixed(false); } - bbc_1mhzbus_slot_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock = 0); + bbc_1mhzbus_slot_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock); // callbacks auto irq_handler() { return m_irq_handler.bind(); } diff --git a/src/devices/bus/bbc/1mhzbus/beebsid.cpp b/src/devices/bus/bbc/1mhzbus/beebsid.cpp index 1906914840b..c0e6ea62c46 100644 --- a/src/devices/bus/bbc/1mhzbus/beebsid.cpp +++ b/src/devices/bus/bbc/1mhzbus/beebsid.cpp @@ -26,10 +26,10 @@ DEFINE_DEVICE_TYPE(BBC_BEEBSID, bbc_beebsid_device, "beebsid", "BeebSID") void bbc_beebsid_device::device_add_mconfig(machine_config &config) { SPEAKER(config, "speaker").front_center(); - MOS8580(config, m_sid, 16_MHz_XTAL / 16); + MOS8580(config, m_sid, DERIVED_CLOCK(1, 1)); m_sid->add_route(ALL_OUTPUTS, "speaker", 1.0); - BBC_1MHZBUS_SLOT(config, m_1mhzbus, bbc_1mhzbus_devices, nullptr); + BBC_1MHZBUS_SLOT(config, m_1mhzbus, DERIVED_CLOCK(1, 1), bbc_1mhzbus_devices, nullptr); m_1mhzbus->irq_handler().set(DEVICE_SELF_OWNER, FUNC(bbc_1mhzbus_slot_device::irq_w)); m_1mhzbus->nmi_handler().set(DEVICE_SELF_OWNER, FUNC(bbc_1mhzbus_slot_device::nmi_w)); } diff --git a/src/devices/bus/bbc/1mhzbus/ieee488.cpp b/src/devices/bus/bbc/1mhzbus/ieee488.cpp index 15f7f573ec2..383ceef537b 100644 --- a/src/devices/bus/bbc/1mhzbus/ieee488.cpp +++ b/src/devices/bus/bbc/1mhzbus/ieee488.cpp @@ -78,7 +78,7 @@ MACHINE_CONFIG_START(bbc_ieee488_device::device_add_mconfig) MCFG_IEEE488_REN_CALLBACK(WRITELINE(m_tms9914, tms9914_device, ren_w)) MCFG_IEEE488_SLOT_ADD("ieee_dev", 0, cbm_ieee488_devices, nullptr) - BBC_1MHZBUS_SLOT(config, m_1mhzbus, bbc_1mhzbus_devices, nullptr); + BBC_1MHZBUS_SLOT(config, m_1mhzbus, DERIVED_CLOCK(1, 1), bbc_1mhzbus_devices, nullptr); m_1mhzbus->irq_handler().set(DEVICE_SELF_OWNER, FUNC(bbc_1mhzbus_slot_device::irq_w)); m_1mhzbus->nmi_handler().set(DEVICE_SELF_OWNER, FUNC(bbc_1mhzbus_slot_device::nmi_w)); MACHINE_CONFIG_END diff --git a/src/devices/bus/bbc/exp/exp.h b/src/devices/bus/bbc/exp/exp.h index 198904d20ce..5269deb3900 100644 --- a/src/devices/bus/bbc/exp/exp.h +++ b/src/devices/bus/bbc/exp/exp.h @@ -56,8 +56,8 @@ class bbc_exp_slot_device : public device_t, public device_slot_interface public: // construction/destruction template - bbc_exp_slot_device(machine_config const &mconfig, char const *tag, device_t *owner, T &&slot_options, const char *default_option) - : bbc_exp_slot_device(mconfig, tag, owner) + bbc_exp_slot_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock, T &&slot_options, const char *default_option) + : bbc_exp_slot_device(mconfig, tag, owner, clock) { option_reset(); slot_options(*this); @@ -65,7 +65,7 @@ public: set_fixed(false); } - bbc_exp_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock = 0); + bbc_exp_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); // callbacks auto irq_handler() { return m_irq_handler.bind(); } diff --git a/src/devices/bus/bbc/exp/mertec.cpp b/src/devices/bus/bbc/exp/mertec.cpp index ffa7f76cc0b..8f896da0359 100644 --- a/src/devices/bus/bbc/exp/mertec.cpp +++ b/src/devices/bus/bbc/exp/mertec.cpp @@ -46,7 +46,7 @@ const tiny_rom_entry *bbc_mertec_device::device_rom_region() const void bbc_mertec_device::device_add_mconfig(machine_config &config) { - PIA6821(config, m_pia, 16_MHz_XTAL / 16); + PIA6821(config, m_pia, DERIVED_CLOCK(1, 8)); //m_pia->readpb_handler().set("userport", FUNC(bbc_userport_slot_device::pb_r)); //m_pia->writepb_handler().set("userport", FUNC(bbc_userport_slot_device::pb_w)); //m_pia->irq_handler().set("irqs", FUNC(input_merger_device::in_w<0>)); @@ -65,7 +65,7 @@ void bbc_mertec_device::device_add_mconfig(machine_config &config) //m_userport->cb2_handler().set(m_pia, FUNC(via6522_device::write_cb2)); /* 2mhz bus port */ - BBC_1MHZBUS_SLOT(config, m_2mhzbus, bbc_1mhzbus_devices, nullptr); + BBC_1MHZBUS_SLOT(config, m_2mhzbus, DERIVED_CLOCK(1, 4), bbc_1mhzbus_devices, nullptr); m_2mhzbus->irq_handler().set(DEVICE_SELF_OWNER, FUNC(bbc_exp_slot_device::irq_w)); m_2mhzbus->nmi_handler().set(DEVICE_SELF_OWNER, FUNC(bbc_exp_slot_device::nmi_w)); } diff --git a/src/devices/bus/bbc/fdc/acorn.cpp b/src/devices/bus/bbc/fdc/acorn.cpp index 718296641a6..dd5d8f28559 100644 --- a/src/devices/bus/bbc/fdc/acorn.cpp +++ b/src/devices/bus/bbc/fdc/acorn.cpp @@ -91,7 +91,7 @@ ROM_END void bbc_acorn8271_device::device_add_mconfig(machine_config &config) { - I8271(config, m_fdc, 16_MHz_XTAL / 8); + I8271(config, m_fdc, DERIVED_CLOCK(1, 4)); m_fdc->intrq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::intrq_w)); m_fdc->hdl_wr_callback().set(FUNC(bbc_acorn8271_device::motor_w)); m_fdc->opt_wr_callback().set(FUNC(bbc_acorn8271_device::side_w)); @@ -102,7 +102,7 @@ void bbc_acorn8271_device::device_add_mconfig(machine_config &config) void bbc_acorn1770_device::device_add_mconfig(machine_config &config) { - WD1770(config, m_fdc, 16_MHz_XTAL / 2); + WD1770(config, m_fdc, DERIVED_CLOCK(1, 1)); m_fdc->set_force_ready(true); m_fdc->intrq_wr_callback().set(FUNC(bbc_acorn1770_device::fdc_intrq_w)); m_fdc->drq_wr_callback().set(FUNC(bbc_acorn1770_device::fdc_drq_w)); diff --git a/src/devices/bus/bbc/fdc/ams.cpp b/src/devices/bus/bbc/fdc/ams.cpp index ef9cb63a46a..02af01be5c5 100644 --- a/src/devices/bus/bbc/fdc/ams.cpp +++ b/src/devices/bus/bbc/fdc/ams.cpp @@ -43,7 +43,7 @@ ROM_END void bbc_ams3_device::device_add_mconfig(machine_config &config) { - I8271(config, m_fdc, 16_MHz_XTAL / 8); + I8271(config, m_fdc, DERIVED_CLOCK(1, 4)); m_fdc->intrq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::intrq_w)); m_fdc->hdl_wr_callback().set(FUNC(bbc_ams3_device::motor_w)); m_fdc->opt_wr_callback().set(FUNC(bbc_ams3_device::side_w)); diff --git a/src/devices/bus/bbc/fdc/cumana.cpp b/src/devices/bus/bbc/fdc/cumana.cpp index 7cec0c2e391..23cecd3ebcf 100644 --- a/src/devices/bus/bbc/fdc/cumana.cpp +++ b/src/devices/bus/bbc/fdc/cumana.cpp @@ -61,7 +61,7 @@ ROM_END void bbc_cumana1_device::device_add_mconfig(machine_config &config) { - MB8877(config, m_fdc, 16_MHz_XTAL / 16); + MB8877(config, m_fdc, DERIVED_CLOCK(1, 8)); m_fdc->intrq_wr_callback().set(FUNC(bbc_cumanafdc_device::fdc_intrq_w)); m_fdc->drq_wr_callback().set(FUNC(bbc_cumanafdc_device::fdc_drq_w)); m_fdc->hld_wr_callback().set(FUNC(bbc_cumanafdc_device::motor_w)); @@ -72,7 +72,7 @@ void bbc_cumana1_device::device_add_mconfig(machine_config &config) void bbc_cumana2_device::device_add_mconfig(machine_config &config) { - MB8877(config, m_fdc, 16_MHz_XTAL / 16); + MB8877(config, m_fdc, DERIVED_CLOCK(1, 8)); m_fdc->intrq_wr_callback().set(FUNC(bbc_cumanafdc_device::fdc_intrq_w)); m_fdc->drq_wr_callback().set(FUNC(bbc_cumanafdc_device::fdc_drq_w)); m_fdc->hld_wr_callback().set(FUNC(bbc_cumanafdc_device::motor_w)); diff --git a/src/devices/bus/bbc/fdc/fdc.h b/src/devices/bus/bbc/fdc/fdc.h index 2b61b881e1a..0cc256961ee 100644 --- a/src/devices/bus/bbc/fdc/fdc.h +++ b/src/devices/bus/bbc/fdc/fdc.h @@ -26,8 +26,8 @@ class bbc_fdc_slot_device : public device_t, public device_slot_interface public: // construction/destruction template - bbc_fdc_slot_device(machine_config const &mconfig, char const *tag, device_t *owner, T &&slot_options, const char *default_option) - : bbc_fdc_slot_device(mconfig, tag, owner) + bbc_fdc_slot_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock, T &&slot_options, const char *default_option) + : bbc_fdc_slot_device(mconfig, tag, owner, clock) { option_reset(); slot_options(*this); @@ -35,7 +35,7 @@ public: set_fixed(false); } - bbc_fdc_slot_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock = 0); + bbc_fdc_slot_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock); // callbacks auto intrq_wr_callback() { return m_intrq_cb.bind(); } diff --git a/src/devices/bus/bbc/fdc/microware.cpp b/src/devices/bus/bbc/fdc/microware.cpp index ab67c911082..29489af382c 100644 --- a/src/devices/bus/bbc/fdc/microware.cpp +++ b/src/devices/bus/bbc/fdc/microware.cpp @@ -55,7 +55,7 @@ ROM_END void bbc_microware_device::device_add_mconfig(machine_config &config) { - WD2793(config, m_fdc, 16_MHz_XTAL / 16); // Replay advert suggests Type R8272 UDM DFS + WD2793(config, m_fdc, DERIVED_CLOCK(1, 8)); // Replay advert suggests Type R8272 UDM DFS m_fdc->intrq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::intrq_w)); m_fdc->drq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::drq_w)); m_fdc->hld_wr_callback().set(FUNC(bbc_microware_device::motor_w)); diff --git a/src/devices/bus/bbc/fdc/opus.cpp b/src/devices/bus/bbc/fdc/opus.cpp index 9f5f0463d6c..f25de315c58 100644 --- a/src/devices/bus/bbc/fdc/opus.cpp +++ b/src/devices/bus/bbc/fdc/opus.cpp @@ -95,7 +95,7 @@ ROM_END void bbc_opus8272_device::device_add_mconfig(machine_config &config) { - I8272A(config, m_fdc, 16_MHz_XTAL / 2, true); + I8272A(config, m_fdc, 20_MHz_XTAL / 5, true); m_fdc->intrq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::intrq_w)); FLOPPY_CONNECTOR(config, m_floppy0, bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true); @@ -104,7 +104,7 @@ void bbc_opus8272_device::device_add_mconfig(machine_config &config) void bbc_opus2791_device::device_add_mconfig(machine_config &config) { - WD2791(config, m_fdc, 16_MHz_XTAL / 16); + WD2791(config, m_fdc, DERIVED_CLOCK(1, 8)); m_fdc->drq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::drq_w)); m_fdc->hld_wr_callback().set(FUNC(bbc_opusfdc_device::motor_w)); @@ -114,7 +114,7 @@ void bbc_opus2791_device::device_add_mconfig(machine_config &config) void bbc_opus2793_device::device_add_mconfig(machine_config &config) { - WD2793(config, m_fdc, 16_MHz_XTAL / 16); + WD2793(config, m_fdc, DERIVED_CLOCK(1, 8)); m_fdc->drq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::drq_w)); m_fdc->hld_wr_callback().set(FUNC(bbc_opusfdc_device::motor_w)); @@ -124,7 +124,7 @@ void bbc_opus2793_device::device_add_mconfig(machine_config &config) void bbc_opus1770_device::device_add_mconfig(machine_config &config) { - WD1770(config, m_fdc, 16_MHz_XTAL / 2); + WD1770(config, m_fdc, DERIVED_CLOCK(1, 1)); m_fdc->drq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::drq_w)); FLOPPY_CONNECTOR(config, m_floppy0, bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true); diff --git a/src/devices/bus/bbc/fdc/watford.cpp b/src/devices/bus/bbc/fdc/watford.cpp index 9c5c6bf4524..b888840314f 100644 --- a/src/devices/bus/bbc/fdc/watford.cpp +++ b/src/devices/bus/bbc/fdc/watford.cpp @@ -67,7 +67,7 @@ ROM_END void bbc_weddb2_device::device_add_mconfig(machine_config &config) { - WD1772(config, m_fdc, 16_MHz_XTAL / 2); + WD1772(config, m_fdc, 8_MHz_XTAL); m_fdc->intrq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::intrq_w)); m_fdc->drq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::drq_w)); @@ -77,7 +77,7 @@ void bbc_weddb2_device::device_add_mconfig(machine_config &config) void bbc_weddb3_device::device_add_mconfig(machine_config &config) { - WD1770(config, m_fdc, 16_MHz_XTAL / 2); + WD1770(config, m_fdc, DERIVED_CLOCK(1, 1)); m_fdc->intrq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::intrq_w)); m_fdc->drq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::drq_w)); diff --git a/src/mame/drivers/bbc.cpp b/src/mame/drivers/bbc.cpp index 3f604d04141..30f09247c97 100644 --- a/src/mame/drivers/bbc.cpp +++ b/src/mame/drivers/bbc.cpp @@ -962,7 +962,7 @@ void bbc_state::bbcb(machine_config &config) centronics.set_output_latch(latch); /* fdc */ - BBC_FDC_SLOT(config, m_fdc, bbc_fdc_devices, "acorn8271"); + BBC_FDC_SLOT(config, m_fdc, 16_MHz_XTAL / 2, bbc_fdc_devices, "acorn8271"); m_fdc->intrq_wr_callback().set(FUNC(bbc_state::fdc_intrq_w)); m_fdc->drq_wr_callback().set(FUNC(bbc_state::fdc_drq_w)); @@ -985,7 +985,7 @@ void bbc_state::bbcb(machine_config &config) m_analog->lpstb_handler().set(FUNC(bbc_state::lpstb_w)); /* 1mhz bus port */ - BBC_1MHZBUS_SLOT(config, m_1mhzbus, bbc_1mhzbus_devices, nullptr); + BBC_1MHZBUS_SLOT(config, m_1mhzbus, 16_MHz_XTAL / 16, bbc_1mhzbus_devices, nullptr); m_1mhzbus->irq_handler().set(m_irqs, FUNC(input_merger_device::in_w<3>)); m_1mhzbus->nmi_handler().set(FUNC(bbc_state::bus_nmi_w)); @@ -1459,7 +1459,7 @@ void bbcm_state::bbcm(machine_config &config) BBC_ANALOGUE_SLOT(config, m_analog, bbc_analogue_devices, nullptr); /* 1mhz bus port */ - BBC_1MHZBUS_SLOT(config, m_1mhzbus, bbcm_1mhzbus_devices, nullptr); + BBC_1MHZBUS_SLOT(config, m_1mhzbus, 16_MHz_XTAL / 16, bbcm_1mhzbus_devices, nullptr); m_1mhzbus->irq_handler().set(m_irqs, FUNC(input_merger_device::in_w<3>)); m_1mhzbus->nmi_handler().set(FUNC(bbc_state::bus_nmi_w)); @@ -1707,7 +1707,7 @@ void bbcm_state::bbcmc(machine_config &config) config.device_remove("cart_ls_m"); /* expansion ports */ - BBC_EXP_SLOT(config, m_exp, bbc_exp_devices, nullptr); + BBC_EXP_SLOT(config, m_exp, 16_MHz_XTAL / 2, bbc_exp_devices, nullptr); m_exp->irq_handler().set(m_irqs, FUNC(input_merger_device::in_w<3>)); m_exp->nmi_handler().set(FUNC(bbc_state::bus_nmi_w)); -- cgit v1.2.3