diff --git a/src/mame/sinclair/beta_m.cpp b/src/mame/sinclair/beta_m.cpp index 09fec6be5c58c..0013cde772ae9 100644 --- a/src/mame/sinclair/beta_m.cpp +++ b/src/mame/sinclair/beta_m.cpp @@ -173,6 +173,14 @@ void beta_disk_device::data_w(uint8_t data) } } +void beta_disk_device::turbo_w(int state) +{ + if (m_betadisk_active == 1) + { + m_wd179x->set_clock_scale(1 << (state & 1)); + } +} + void beta_disk_device::fdc_hld_w(int state) { m_wd179x->set_force_ready(state); // HLD connected to RDY pin @@ -206,6 +214,7 @@ void beta_disk_device::floppy_formats(format_registration &fr) static void beta_disk_floppies(device_slot_interface &device) { device.option_add("525qd", FLOPPY_525_QD); + device.option_add("35hd", FLOPPY_35_HD); } diff --git a/src/mame/sinclair/beta_m.h b/src/mame/sinclair/beta_m.h index f809f12a0577b..2e37b22c73318 100644 --- a/src/mame/sinclair/beta_m.h +++ b/src/mame/sinclair/beta_m.h @@ -36,6 +36,7 @@ class beta_disk_device : public device_t void track_w(uint8_t data); void sector_w(uint8_t data); void data_w(uint8_t data); + void turbo_w(int state); int is_active(); void enable(); diff --git a/src/mame/sinclair/sprinter.cpp b/src/mame/sinclair/sprinter.cpp index d1aeb1b08b252..e5d747559ba4c 100644 --- a/src/mame/sinclair/sprinter.cpp +++ b/src/mame/sinclair/sprinter.cpp @@ -686,6 +686,8 @@ void sprinter_state::dcp_w(offs_t offset, u8 data) m_beta->param_w(data); break; case 0x16: + case 0x17: + m_beta->turbo_w(dcpp & 1); if (data & 2) m_beta->disable(); else