diff --git a/src/mame/drivers/prof80.cpp b/src/mame/drivers/prof80.cpp index 2ed8d80a146..4ff164c48b3 100644 --- a/src/mame/drivers/prof80.cpp +++ b/src/mame/drivers/prof80.cpp @@ -40,8 +40,8 @@ void prof80_state::motor(int mon) { - if (m_floppy0->get_device()) m_floppy0->get_device()->mon_w(mon); - if (m_floppy1->get_device()) m_floppy1->get_device()->mon_w(mon); + if (m_floppy[0]->get_device()) m_floppy[0]->get_device()->mon_w(mon); + if (m_floppy[1]->get_device()) m_floppy[1]->get_device()->mon_w(mon); m_motor = mon; } @@ -71,7 +71,7 @@ WRITE_LINE_MEMBER(prof80_state::motor_w) // trigger floppy motor off NE555 timer int t = 110 * RES_M(10) * CAP_U(6.8); // t = 1.1 * R8 * C6 - timer_set(attotime::from_msec(t), TIMER_ID_MOTOR); + m_floppy_motor_off_timer->adjust(attotime::from_msec(t)); } else { @@ -79,7 +79,7 @@ WRITE_LINE_MEMBER(prof80_state::motor_w) motor(0); // reset floppy motor off NE555 timer - timer_set(attotime::never, TIMER_ID_MOTOR); + m_floppy_motor_off_timer->adjust(attotime::never); } } @@ -114,7 +114,7 @@ WRITE_LINE_MEMBER(prof80_state::mstop_w) motor(1); // reset floppy motor off NE555 timer - timer_set(attotime::never, TIMER_ID_MOTOR); + m_floppy_motor_off_timer->adjust(attotime::never); } } @@ -176,7 +176,7 @@ READ8_MEMBER( prof80_state::status_r ) data |= m_rs232b->cts_r() << 7; // floppy index - data |= (m_floppy0->get_device() ? m_floppy0->get_device()->idx_r() : m_floppy1->get_device() ? m_floppy1->get_device()->idx_r() : 1) << 5; + data |= (m_floppy[0]->get_device() ? m_floppy[0]->get_device()->idx_r() : m_floppy[1]->get_device() ? m_floppy[1]->get_device()->idx_r() : 1) << 5; return data; } @@ -431,6 +431,9 @@ void prof80_state::machine_start() m_rtc->cs_w(1); m_rtc->oe_w(1); + // create timer + m_floppy_motor_off_timer = timer_alloc(TIMER_ID_MOTOR); + // register for state saving save_item(NAME(m_motor)); save_item(NAME(m_ready)); diff --git a/src/mame/includes/prof80.h b/src/mame/includes/prof80.h index 7cb7c35cfe7..b938acbc631 100644 --- a/src/mame/includes/prof80.h +++ b/src/mame/includes/prof80.h @@ -38,8 +38,7 @@ public: , m_rtc(*this, UPD1990A_TAG) , m_fdc(*this, UPD765_TAG) , m_ram(*this, RAM_TAG) - , m_floppy0(*this, UPD765_TAG":0") - , m_floppy1(*this, UPD765_TAG":1") + , m_floppy(*this, UPD765_TAG":%u", 0U) , m_ecb(*this, ECBBUS_TAG) , m_rs232a(*this, "rs232a") , m_rs232b(*this, "rs232b") @@ -58,8 +57,7 @@ private: required_device m_rtc; required_device m_fdc; required_device m_ram; - required_device m_floppy0; - required_device m_floppy1; + required_device_array m_floppy; required_device m_ecb; required_device m_rs232a; required_device m_rs232b;