summaryrefslogtreecommitdiffstatshomepage
diff options
context:
space:
mode:
author Nigel Barnes <Pernod70@users.noreply.github.com>2018-12-21 14:00:18 +0000
committer Nigel Barnes <Pernod70@users.noreply.github.com>2018-12-21 16:34:11 +0000
commit284be7e18f732f6a73ef94754f6f337ab4eaba45 (patch)
tree3452660ff1cc1abb7e15d69684829365cc11a859
parent0f3eb00085210ade9751b69bf63e27c47eca816a (diff)
bbc: Added bus clocks for FDC (8MHz), 1MHz bus (1MHz), and Compact expansion port (8Mhz).
-rw-r--r--src/devices/bus/bbc/1mhzbus/1mhzbus.h6
-rw-r--r--src/devices/bus/bbc/1mhzbus/beebsid.cpp4
-rw-r--r--src/devices/bus/bbc/1mhzbus/ieee488.cpp2
-rw-r--r--src/devices/bus/bbc/exp/exp.h6
-rw-r--r--src/devices/bus/bbc/exp/mertec.cpp4
-rw-r--r--src/devices/bus/bbc/fdc/acorn.cpp4
-rw-r--r--src/devices/bus/bbc/fdc/ams.cpp2
-rw-r--r--src/devices/bus/bbc/fdc/cumana.cpp4
-rw-r--r--src/devices/bus/bbc/fdc/fdc.h6
-rw-r--r--src/devices/bus/bbc/fdc/microware.cpp2
-rw-r--r--src/devices/bus/bbc/fdc/opus.cpp8
-rw-r--r--src/devices/bus/bbc/fdc/watford.cpp4
-rw-r--r--src/mame/drivers/bbc.cpp8
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 <typename T>
- 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 <typename T>
- 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 <typename T>
- 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));