DUART fix for counter mode making SC4 not assert (no whatsnew)

This commit is contained in:
Miodrag Milanovic 2012-05-15 10:11:12 +00:00
parent 07ee4afaba
commit ec64611f0a

View File

@ -275,34 +275,42 @@ static void duart68681_write_CSR(duart68681_state *duart68681, int ch, UINT8 dat
if ( BIT(ACR,7) == 0 )
{
duart68681->channel[ch].baud_rate = baud_rate_ACR_0[data & 0x0f];
if (ch == 0)
{
if ((data & 0xf) == 0xe)
{
duart68681->channel[ch].baud_rate = duart68681->duart_config->ip3clk/16;
}
else if ((data & 0xf) == 0xf)
{
duart68681->channel[ch].baud_rate = duart68681->duart_config->ip3clk;
}
}
else if (ch == 1)
{
if ((data & 0xf) == 0xe)
{
duart68681->channel[ch].baud_rate = duart68681->duart_config->ip5clk/16;
}
else if ((data & 0xf) == 0xf)
{
duart68681->channel[ch].baud_rate = duart68681->duart_config->ip5clk;
}
}
}
else
{
duart68681->channel[ch].baud_rate = baud_rate_ACR_1[data & 0x0f];
}
if (ch == 0)
{
if ((data & 0xf) == 0xd)
{
duart68681->channel[ch].baud_rate = duart68681->CTR.w.l;
}
else if ((data & 0xf) == 0xe)
{
duart68681->channel[ch].baud_rate = duart68681->duart_config->ip3clk/16;
}
else if ((data & 0xf) == 0xf)
{
duart68681->channel[ch].baud_rate = duart68681->duart_config->ip3clk;
}
}
else if (ch == 1)
{
if ((data & 0xf) == 0xd)
{
duart68681->channel[ch].baud_rate = duart68681->CTR.w.l;
}
else if ((data & 0xf) == 0xe)
{
duart68681->channel[ch].baud_rate = duart68681->duart_config->ip5clk/16;
}
else if ((data & 0xf) == 0xf)
{
duart68681->channel[ch].baud_rate = duart68681->duart_config->ip5clk;
}
}
if ( duart68681->channel[ch].baud_rate == 0 )
{
LOG(( "Unsupported transmitter clock: channel %d, clock select = %02x\n", ch, data ));