cs4031: added read handler for sysctrl port. Fixes booting the kernel on the Red Hat 7.2 install CD. (no whatsnew)

This commit is contained in:
mahlemiut 2013-08-01 06:31:54 +00:00
parent c90dee83ca
commit cc3c0b4996
2 changed files with 13 additions and 1 deletions

View File

@ -210,6 +210,7 @@ cs4031_device::cs4031_device(const machine_config &mconfig, const char *tag, dev
m_refresh_toggle(0),
m_iochck(1),
m_nmi_mask(1),
m_sysctrl(0),
m_cpureset(0),
m_kbrst(1),
m_ext_gatea20(0),
@ -316,7 +317,7 @@ void cs4031_device::device_start()
m_space_io->install_write_handler(0x0070, 0x0073, write8_delegate(FUNC(cs4031_device::rtc_w), this), 0x000000ff);
m_space_io->install_readwrite_handler(0x0070, 0x0073, read8_delegate(FUNC(mc146818_device::data_r), &(*m_rtc)), write8_delegate(FUNC(mc146818_device::data_w), &(*m_rtc)), 0x0000ff00);
m_space_io->install_readwrite_handler(0x0080, 0x008f, read8_delegate(FUNC(cs4031_device::dma_page_r), this), write8_delegate(FUNC(cs4031_device::dma_page_w), this), 0xffffffff);
m_space_io->install_write_handler(0x0090, 0x0093, write8_delegate(FUNC(cs4031_device::sysctrl_w), this), 0x00ff0000);
m_space_io->install_readwrite_handler(0x0090, 0x0093, read8_delegate(FUNC(cs4031_device::sysctrl_r), this), write8_delegate(FUNC(cs4031_device::sysctrl_w), this), 0x00ff0000);
m_space_io->install_readwrite_handler(0x00a0, 0x00a3, read8_delegate(FUNC(pic8259_device::read), &(*m_intc2)), write8_delegate(FUNC(pic8259_device::write), &(*m_intc2)), 0x0000ffff);
m_space_io->install_readwrite_handler(0x00c0, 0x00df, read8_delegate(FUNC(cs4031_device::dma2_r),this), write8_delegate(FUNC(cs4031_device::dma2_w),this), 0xffffffff);
}
@ -785,6 +786,8 @@ WRITE8_MEMBER( cs4031_device::sysctrl_w )
if (LOG_IO)
logerror("cs4031_device::sysctrl_w: %u\n", data);
m_sysctrl = data;
m_fast_gatea20 = BIT(data, 1);
a20m();
@ -798,6 +801,13 @@ WRITE8_MEMBER( cs4031_device::sysctrl_w )
m_cpureset = BIT(data, 0);
}
READ8_MEMBER( cs4031_device::sysctrl_r )
{
if (LOG_IO)
logerror("cs4031_device::sysctrl_r: %u\n", m_sysctrl);
return m_sysctrl;
}
//**************************************************************************
// MISCELLANEOUS

View File

@ -139,6 +139,7 @@ public:
DECLARE_WRITE8_MEMBER( portb_w );
DECLARE_WRITE8_MEMBER( rtc_w );
DECLARE_WRITE8_MEMBER( sysctrl_w );
DECLARE_READ8_MEMBER( sysctrl_r );
DECLARE_READ8_MEMBER( dma_page_r ) { return m_dma_page[offset]; }
DECLARE_WRITE8_MEMBER( dma_page_w ) { m_dma_page[offset] = data; }
DECLARE_READ8_MEMBER( dma2_r ) { return m_dma2->read(space, offset / 2); }
@ -239,6 +240,7 @@ private:
int m_refresh_toggle;
int m_iochck;
int m_nmi_mask;
UINT8 m_sysctrl;
// keyboard
at_keyboard_controller_device *m_keybc;