From 19e9e38dc7ae93663be7f8129a8cdc2092bfd73c Mon Sep 17 00:00:00 2001 From: AJR Date: Thu, 4 Oct 2018 09:54:53 -0400 Subject: [PATCH] sbrain: Fix floppy (nw) --- src/mame/drivers/sbrain.cpp | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/src/mame/drivers/sbrain.cpp b/src/mame/drivers/sbrain.cpp index 76a96942bd8..53a63ae7843 100644 --- a/src/mame/drivers/sbrain.cpp +++ b/src/mame/drivers/sbrain.cpp @@ -263,20 +263,19 @@ void sbrain_state::disk_select_w(u8 data) { m_port10 = data | 0xc0; - m_fdc->set_floppy(nullptr); + floppy_image_device *floppy = nullptr; for (int d = 0; d < 4; d++) - { if (BIT(m_port10, d + 1)) { - floppy_image_device *floppy = m_floppy[d]->get_device(); - if (floppy && floppy->exists()) - { - m_fdc->set_floppy(floppy); - floppy->ss_w(BIT(m_port10, 5)); + floppy = m_floppy[d]->get_device(); + if (floppy) break; - } } - } + + m_fdc->set_floppy(floppy); + + if (floppy) + floppy->ss_w(BIT(m_port10, 5)); } u8 sbrain_state::ppi_pa_r() @@ -349,7 +348,7 @@ void sbrain_state::ppi_pc_w(u8 data) m_subcpu->set_input_line(INPUT_LINE_RESET, BIT(data, 3) ? ASSERT_LINE : CLEAR_LINE); if (BIT(data, 3)) { - m_fdc->reset(); + //m_fdc->reset(); // wd_fdc doesn't like this for some reason disk_select_w(0); } m_subcpu->set_input_line(Z80_INPUT_LINE_BUSRQ, BIT(data, 5) ? ASSERT_LINE : CLEAR_LINE); // ignored in z80.cpp @@ -734,6 +733,7 @@ MACHINE_CONFIG_START(sbrain_state::sbrain) brg.ft_handler().set(FUNC(sbrain_state::internal_txc_rxc_w)); FD1791(config, m_fdc, 16_MHz_XTAL / 16); + m_fdc->set_force_ready(true); MCFG_FLOPPY_DRIVE_ADD("fdc:0", sbrain_floppies, "525dd", floppy_image_device::default_floppy_formats) MCFG_FLOPPY_DRIVE_SOUND(true) MCFG_FLOPPY_DRIVE_ADD("fdc:1", sbrain_floppies, "525dd", floppy_image_device::default_floppy_formats)