(nw) spc1000 : fixed cassette save

This commit is contained in:
Robbbert 2019-06-07 01:24:23 +10:00
parent d0d95fb05b
commit 4162b349b2

View File

@ -222,11 +222,14 @@ WRITE8_MEMBER( spc1000_state::cass_w )
{ {
attotime time = machine().scheduler().time(); attotime time = machine().scheduler().time();
m_cass->output(BIT(data, 0) ? -1.0 : 1.0); m_cass->output(BIT(data, 0) ? -1.0 : 1.0);
if (BIT(data, 1) && (time - m_time).as_attoseconds()/ATTOSECONDS_PER_MICROSECOND > 100) if (BIT(data, 1) || (((time - m_time).as_attoseconds()/ATTOSECONDS_PER_MILLISECOND) < 1000))
{ {
m_cass->change_state((m_cass->get_state() & CASSETTE_MASK_MOTOR) == CASSETTE_MOTOR_DISABLED ? CASSETTE_MOTOR_ENABLED : CASSETTE_MOTOR_DISABLED, CASSETTE_MASK_MOTOR); m_cass->change_state(CASSETTE_MOTOR_ENABLED, CASSETTE_MASK_MOTOR);
m_time = time; m_time = time;
} }
else
m_cass->change_state(CASSETTE_MOTOR_DISABLED, CASSETTE_MASK_MOTOR);
m_centronics->write_strobe(BIT(data, 2) ? true : false); m_centronics->write_strobe(BIT(data, 2) ? true : false);
} }