示例#1
0
文件: mb87078.c 项目: Eduardop/mame
void mb87078_device::data_w( int data, int dsel )
{
    if (m_reset_comp == 0)
        return;

    if (dsel == 0)  /* gd0 - gd5 */
    {
        m_latch[0][m_channel_latch] = data & 0x3f;
    }
    else        /* dcs1, dsc2, en, c0, c32, X */
    {
        m_channel_latch = data & 3;
        m_latch[1][m_channel_latch] = data & 0x1f; //always zero bit 5
    }
    gain_recalc();
}
示例#2
0
void MB87078_data_w(int which, int data, int dsel)
{
    struct MB87078 *c = chip + which;

    if (c->reset_comp==0) return;

    if (dsel==0)
    {   /*gd0-gd5*/
        c->latch[0+c->channel_latch] = data & 0x3f;
    }
    else
    {   /*dcs1,dsc2,en,c0,c32,X*/
        c->channel_latch = data & 3;
        c->latch[4+c->channel_latch] = data & 0x1f; //always zero bit 5
    }
    gain_recalc(which);
}
示例#3
0
void MB87078_reset_comp_w(int which, int level)
{
    struct MB87078 *c = chip + which;

    c->reset_comp = level;

    /*this seems to be true, according to the datasheets*/
    if (level==0)
    {
        c->latch[0] = 0x3f;
        c->latch[1] = 0x3f;
        c->latch[2] = 0x3f;
        c->latch[3] = 0x3f;
        c->latch[4] = 0x0 | 0x4;
        c->latch[5] = 0x1 | 0x4;
        c->latch[6] = 0x2 | 0x4;
        c->latch[7] = 0x3 | 0x4;
    }
    gain_recalc(which);
}
示例#4
0
文件: mb87078.c 项目: Eduardop/mame
void mb87078_device::reset_comp_w( int level )
{
    m_reset_comp = level;

    /*this seems to be true, according to the datasheets*/
    if (level == 0)
    {
        m_latch[0][0] = 0x3f;
        m_latch[0][1] = 0x3f;
        m_latch[0][2] = 0x3f;
        m_latch[0][3] = 0x3f;

        m_latch[1][0] = 0x0 | 0x4;
        m_latch[1][1] = 0x1 | 0x4;
        m_latch[1][2] = 0x2 | 0x4;
        m_latch[1][3] = 0x3 | 0x4;
    }

    gain_recalc();
}