From 4be4f5e8c50e2558966b688265324ed255126e2b Mon Sep 17 00:00:00 2001 From: Olivier Galibert Date: Tue, 25 Nov 2014 14:32:05 +0100 Subject: [PATCH] (nw) --- src/emu/machine/i6300esb.c | 20 ++++++++++++++++++-- src/emu/machine/i6300esb.h | 4 +++- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/src/emu/machine/i6300esb.c b/src/emu/machine/i6300esb.c index acbf15a59e8..843195c9f5c 100644 --- a/src/emu/machine/i6300esb.c +++ b/src/emu/machine/i6300esb.c @@ -77,8 +77,10 @@ DEVICE_ADDRESS_MAP_START(internal_io_map, 32, i6300esb_lpc_device) AM_RANGE(0x004c, 0x004f) AM_READWRITE8(siu_data_port_r, siu_data_port_w, 0xff000000) } - AM_RANGE(0x80, 0x83) AM_WRITE8( nop_w, 0x000000ff) // POST/non-existing, used for delays by the bios/os - AM_RANGE(0xec, 0xef) AM_WRITE8( nop_w, 0x0000ff00) // Non-existing, used for delays by the bios/os + AM_RANGE(0x0060, 0x0063) AM_READWRITE8( nmi_sc_r, nmi_sc_w, 0x0000ff00) + + AM_RANGE(0x0080, 0x0083) AM_WRITE8( nop_w, 0x000000ff) // POST/non-existing, used for delays by the bios/os + AM_RANGE(0x00ec, 0x00ef) AM_WRITE8( nop_w, 0x0000ff00) // Non-existing, used for delays by the bios/os ADDRESS_MAP_END @@ -117,6 +119,7 @@ void i6300esb_lpc_device::device_reset() mon_fwd_en = 0; memset(mon_trp_rng, 0, sizeof(mon_trp_rng)); mon_trp_msk = 0; + nmi_sc = 0; } void i6300esb_lpc_device::reset_all_mappings() @@ -635,6 +638,19 @@ WRITE8_MEMBER (i6300esb_lpc_device::siu_data_port_w) logerror("%s: siu config write port %02x, %02x\n", tag(), siu_config_port, data); } +READ8_MEMBER (i6300esb_lpc_device::nmi_sc_r) +{ + nmi_sc ^= 0x10; + return nmi_sc; +} + +WRITE8_MEMBER (i6300esb_lpc_device::nmi_sc_w) +{ + nmi_sc = data; + logerror("%s: nmi_sc = %02x\n", tag(), nmi_sc); +} + + WRITE8_MEMBER (i6300esb_lpc_device::nop_w) { } diff --git a/src/emu/machine/i6300esb.h b/src/emu/machine/i6300esb.h index e0d21ee2397..400e13b6670 100644 --- a/src/emu/machine/i6300esb.h +++ b/src/emu/machine/i6300esb.h @@ -38,7 +38,7 @@ private: UINT8 pirq_rout[8]; UINT8 acpi_cntl, tco_cntl, gpio_cntl, serirq_cntl, d31_err_cfg, d31_err_sts, gen_sta, back_cntl, rtc_conf; UINT8 lpc_if_com_range, lpc_if_fdd_lpt_range, lpc_if_sound_range, fwh_dec_en1, fwh_dec_en2, siu_config_port; - UINT8 gen_pmcon_3, apm_cnt, apm_sts, mon_fwd_en; + UINT8 gen_pmcon_3, apm_cnt, apm_sts, mon_fwd_en, nmi_sc; int siu_config_state; DECLARE_WRITE8_MEMBER (nop_w); @@ -130,6 +130,8 @@ private: DECLARE_WRITE8_MEMBER (siu_config_port_w); DECLARE_READ8_MEMBER (siu_data_port_r); // 4f DECLARE_WRITE8_MEMBER (siu_data_port_w); + DECLARE_READ8_MEMBER (nmi_sc_r); // 61 + DECLARE_WRITE8_MEMBER (nmi_sc_w); void map_bios(address_space *memory_space, UINT32 start, UINT32 end, int idsel); };