From 59a9abe3eb018c37af27864a261ae9cf54555f98 Mon Sep 17 00:00:00 2001 From: Michael Zapf Date: Thu, 24 Apr 2025 22:07:25 +0200 Subject: [PATCH] ti99: Fixed crash with Corcomp floppy controller when accessing a drive that is not connected. --- src/devices/bus/ti99/peb/cc_fdc.cpp | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/src/devices/bus/ti99/peb/cc_fdc.cpp b/src/devices/bus/ti99/peb/cc_fdc.cpp index 88fa46d2aa3..7663abe04d8 100644 --- a/src/devices/bus/ti99/peb/cc_fdc.cpp +++ b/src/devices/bus/ti99/peb/cc_fdc.cpp @@ -367,8 +367,10 @@ void corcomp_fdc_device::select_dsk(int state) if (m_floppy[m_selected_drive-1]->get_device() != nullptr) { m_wdc->set_floppy(m_floppy[m_selected_drive-1]->get_device()); - m_floppy[m_selected_drive-1]->get_device()->ss_w(m_tms9901->read_bit(tms9901_device::INT15_P7)); + side_select(m_tms9901->read_bit(tms9901_device::INT15_P7)); } + else + LOGMASKED(LOG_WARN, "No drive connected as DSK%d\n", m_selected_drive); } } @@ -377,8 +379,13 @@ void corcomp_fdc_device::side_select(int state) // Select side of disk (bit 7) if (m_selected_drive != 0) { - LOGMASKED(LOG_DRIVE, "Set side (bit 7) = %d on DSK%d\n", state, m_selected_drive); - m_floppy[m_selected_drive-1]->get_device()->ss_w(state); + if (m_floppy[m_selected_drive-1]->get_device() != nullptr) + { + LOGMASKED(LOG_DRIVE, "Set side (bit 7) = %d on DSK%d\n", state, m_selected_drive); + m_floppy[m_selected_drive-1]->get_device()->ss_w(state); + } + else + LOGMASKED(LOG_WARN, "No drive connected as DSK%d\n", m_selected_drive); } }