(nw) px4 : fixed crash with invalid year

This commit is contained in:
Robbbert 2017-11-02 04:53:57 +11:00
parent c435ebb6ad
commit 4c1a07b26a

View File

@ -593,18 +593,24 @@ WRITE8_MEMBER( px4_state::sior_w )
switch (m_clock_state++) switch (m_clock_state++)
{ {
case 1: case 1:
{
if (data < 10)
{ {
int year = dec_2_bcd(m_time.local_time.year); int year = dec_2_bcd(m_time.local_time.year);
year = (year & 0xff0f) | ((data & 0xf) << 4); year = (year & 0xff0f) | ((data & 0xf) << 4);
t->tm_year = bcd_2_dec(year) - 1900; t->tm_year = bcd_2_dec(year) - 1900;
} }
}
break; break;
case 2: case 2:
{
if (data < 10)
{ {
int year = dec_2_bcd(m_time.local_time.year); int year = dec_2_bcd(m_time.local_time.year);
year = (year & 0xfff0) | (data & 0xf); year = (year & 0xfff0) | (data & 0xf);
t->tm_year = bcd_2_dec(year) - 1900; t->tm_year = bcd_2_dec(year) - 1900;
} }
}
break; break;
case 3: t->tm_mon = bcd_2_dec(data & 0x7f) - 1; break; case 3: t->tm_mon = bcd_2_dec(data & 0x7f) - 1; break;
case 4: t->tm_mday = bcd_2_dec(data & 0x7f); break; case 4: t->tm_mday = bcd_2_dec(data & 0x7f); break;