Пример #1
0
void smc91c9x_device::device_reset()
{
	memset(m_reg, 0, sizeof(m_reg));
	memset(m_regmask, 0, sizeof(m_regmask));
	m_irq_state = 0;
	m_alloc_count = 0;
	m_fifo_count = 0;
	m_sent = 0;
	m_recd = 0;

	m_reg[EREG_TCR]          = 0x0000;   m_regmask[EREG_TCR]          = 0x3d87;
	m_reg[EREG_EPH_STATUS]   = 0x0000;   m_regmask[EREG_EPH_STATUS]   = 0x0000;
	m_reg[EREG_RCR]          = 0x0000;   m_regmask[EREG_RCR]          = 0xc307;
	m_reg[EREG_COUNTER]      = 0x0000;   m_regmask[EREG_COUNTER]      = 0x0000;
	m_reg[EREG_MIR]          = 0x1212;   m_regmask[EREG_MIR]          = 0x0000;
	m_reg[EREG_MCR]          = 0x3300;   m_regmask[EREG_MCR]          = 0x00ff;
	m_reg[EREG_BANK]         = 0x3300;   m_regmask[EREG_BANK]         = 0x0007;

	m_reg[EREG_CONFIG]       = 0x0030;   m_regmask[EREG_CONFIG]       = 0x17c6;
	m_reg[EREG_BASE]         = 0x1866;   m_regmask[EREG_BASE]         = 0xfffe;
	m_reg[EREG_IA0_1]        = 0x0000;   m_regmask[EREG_IA0_1]        = 0xffff;
	m_reg[EREG_IA2_3]        = 0x0000;   m_regmask[EREG_IA2_3]        = 0xffff;
	m_reg[EREG_IA4_5]        = 0x0000;   m_regmask[EREG_IA4_5]        = 0xffff;
	m_reg[EREG_GENERAL_PURP] = 0x0000;   m_regmask[EREG_GENERAL_PURP] = 0xffff;
	m_reg[EREG_CONTROL]      = 0x0100;   m_regmask[EREG_CONTROL]      = 0x68e7;

	m_reg[EREG_MMU_COMMAND]  = 0x0000;   m_regmask[EREG_MMU_COMMAND]  = 0x00e7;
	m_reg[EREG_PNR_ARR]      = 0x8000;   m_regmask[EREG_PNR_ARR]      = 0x00ff;
	m_reg[EREG_FIFO_PORTS]   = 0x8080;   m_regmask[EREG_FIFO_PORTS]   = 0x0000;
	m_reg[EREG_POINTER]      = 0x0000;   m_regmask[EREG_POINTER]      = 0xf7ff;
	m_reg[EREG_DATA_0]       = 0x0000;   m_regmask[EREG_DATA_0]       = 0xffff;
	m_reg[EREG_DATA_1]       = 0x0000;   m_regmask[EREG_DATA_1]       = 0xffff;
	m_reg[EREG_INTERRUPT]    = 0x0004;   m_regmask[EREG_INTERRUPT]    = 0x7f00;

	m_reg[EREG_MT0_1]        = 0x0000;   m_regmask[EREG_MT0_1]        = 0xffff;
	m_reg[EREG_MT2_3]        = 0x0000;   m_regmask[EREG_MT2_3]        = 0xffff;
	m_reg[EREG_MT4_5]        = 0x0000;   m_regmask[EREG_MT4_5]        = 0xffff;
	m_reg[EREG_MT6_7]        = 0x0000;   m_regmask[EREG_MT6_7]        = 0xffff;
	m_reg[EREG_MGMT]         = 0x3030;   m_regmask[EREG_MGMT]         = 0x0f0f;
	m_reg[EREG_REVISION]     = 0x3340;   m_regmask[EREG_REVISION]     = 0x0000;
	m_reg[EREG_ERCV]         = 0x331f;   m_regmask[EREG_ERCV]         = 0x009f;

	update_ethernet_irq();
}
Пример #2
0
void smc91c94_reset(void)
{
    void (*saved_handler)(int) = ethernet.irq_handler;
    memset(&ethernet, 0, sizeof(ethernet));
    ethernet.irq_handler = saved_handler;

    ethernet.reg[EREG_TCR]			= 0x0000;
    ethernet.regmask[EREG_TCR]			= 0x3d87;
    ethernet.reg[EREG_EPH_STATUS]	= 0x0000;
    ethernet.regmask[EREG_EPH_STATUS]	= 0x0000;
    ethernet.reg[EREG_RCR]			= 0x0000;
    ethernet.regmask[EREG_RCR]			= 0xc307;
    ethernet.reg[EREG_COUNTER]		= 0x0000;
    ethernet.regmask[EREG_COUNTER]		= 0x0000;
    ethernet.reg[EREG_MIR]			= 0x1212;
    ethernet.regmask[EREG_MIR]			= 0x0000;
    ethernet.reg[EREG_MCR]			= 0x3300;
    ethernet.regmask[EREG_MCR]			= 0x00ff;
    ethernet.reg[EREG_BANK]			= 0x3300;
    ethernet.regmask[EREG_BANK]			= 0x0007;

    ethernet.reg[EREG_CONFIG]		= 0x0030;
    ethernet.regmask[EREG_CONFIG]		= 0x17c6;
    ethernet.reg[EREG_BASE]			= 0x1866;
    ethernet.regmask[EREG_BASE]			= 0xfffe;
    ethernet.reg[EREG_IA0_1]		= 0x0000;
    ethernet.regmask[EREG_IA0_1]		= 0xffff;
    ethernet.reg[EREG_IA2_3]		= 0x0000;
    ethernet.regmask[EREG_IA2_3]		= 0xffff;
    ethernet.reg[EREG_IA4_5]		= 0x0000;
    ethernet.regmask[EREG_IA4_5]		= 0xffff;
    ethernet.reg[EREG_GENERAL_PURP]	= 0x0000;
    ethernet.regmask[EREG_GENERAL_PURP]	= 0xffff;
    ethernet.reg[EREG_CONTROL]		= 0x0100;
    ethernet.regmask[EREG_CONTROL]		= 0x68e7;

    ethernet.reg[EREG_MMU_COMMAND]	= 0x0000;
    ethernet.regmask[EREG_MMU_COMMAND]	= 0x00e7;
    ethernet.reg[EREG_PNR_ARR]		= 0x8000;
    ethernet.regmask[EREG_PNR_ARR]		= 0x00ff;
    ethernet.reg[EREG_FIFO_PORTS]	= 0x8080;
    ethernet.regmask[EREG_FIFO_PORTS]	= 0x0000;
    ethernet.reg[EREG_POINTER]		= 0x0000;
    ethernet.regmask[EREG_POINTER]		= 0xf7ff;
    ethernet.reg[EREG_DATA_0]		= 0x0000;
    ethernet.regmask[EREG_DATA_0]		= 0xffff;
    ethernet.reg[EREG_DATA_1]		= 0x0000;
    ethernet.regmask[EREG_DATA_1]		= 0xffff;
    ethernet.reg[EREG_INTERRUPT]	= 0x0004;
    ethernet.regmask[EREG_INTERRUPT]	= 0x7f00;

    ethernet.reg[EREG_MT0_1]		= 0x0000;
    ethernet.regmask[EREG_MT0_1]		= 0xffff;
    ethernet.reg[EREG_MT2_3]		= 0x0000;
    ethernet.regmask[EREG_MT2_3]		= 0xffff;
    ethernet.reg[EREG_MT4_5]		= 0x0000;
    ethernet.regmask[EREG_MT4_5]		= 0xffff;
    ethernet.reg[EREG_MT6_7]		= 0x0000;
    ethernet.regmask[EREG_MT6_7]		= 0xffff;
    ethernet.reg[EREG_MGMT]			= 0x3030;
    ethernet.regmask[EREG_MGMT]			= 0x0f0f;
    ethernet.reg[EREG_REVISION]		= 0x3340;
    ethernet.regmask[EREG_REVISION]		= 0x0000;
    ethernet.reg[EREG_ERCV]			= 0x331f;
    ethernet.regmask[EREG_ERCV]			= 0x009f;

    update_ethernet_irq();
}