summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGravatarGravatar Olivier Galibert <galibert@pobox.com>2014-11-25 14:32:05 +0100
committerGravatarGravatar Olivier Galibert <galibert@pobox.com>2014-11-25 20:06:05 +0100
commit4be4f5e8c50e2558966b688265324ed255126e2b (patch) (github)
treec32946fe422f43398ce1d98796514764532a2ed5
parent64ee2411b65d466037e38f018c79f74f1151fb59 (diff)
downloadmame-4be4f5e8c50e2558966b688265324ed255126e2b.tar.bz2
mame-4be4f5e8c50e2558966b688265324ed255126e2b.zip
(nw)
-rw-r--r--src/emu/machine/i6300esb.c20
-rw-r--r--src/emu/machine/i6300esb.h4
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);
};