summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/machine/i6300esb.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/emu/machine/i6300esb.c')
-rw-r--r--src/emu/machine/i6300esb.c130
1 files changed, 130 insertions, 0 deletions
diff --git a/src/emu/machine/i6300esb.c b/src/emu/machine/i6300esb.c
index bd29cf3c7c4..1899d6faf52 100644
--- a/src/emu/machine/i6300esb.c
+++ b/src/emu/machine/i6300esb.c
@@ -39,6 +39,16 @@ DEVICE_ADDRESS_MAP_START(config_map, 32, i6300esb_lpc_device)
AM_RANGE(0x88, 0x8b) AM_READWRITE8 (d31_err_cfg_r, d31_err_cfg_w, 0x000000ff)
AM_RANGE(0x88, 0x8b) AM_READWRITE8 (d31_err_sts_r, d31_err_sts_w, 0x00ff0000)
AM_RANGE(0x90, 0x93) AM_READWRITE16(pci_dma_cfg_r, pci_dma_cfg_w, 0x0000ffff)
+ AM_RANGE(0xa0, 0xa3) AM_READWRITE16(gen_pmcon_1_r, gen_pmcon_1_w, 0x0000ffff)
+ AM_RANGE(0xa0, 0xa3) AM_READWRITE16(gen_pmcon_2_r, gen_pmcon_2_w, 0xffff0000)
+ AM_RANGE(0xa4, 0xa7) AM_READWRITE8 (gen_pmcon_3_r, gen_pmcon_3_w, 0x000000ff)
+ AM_RANGE(0xac, 0xaf) AM_READWRITE (rst_cnt2_r, rst_cnt2_w)
+ AM_RANGE(0xb0, 0xb3) AM_READWRITE8 (apm_cnt_r, apm_cnt_w, 0x00ff0000)
+ AM_RANGE(0xb0, 0xb3) AM_READWRITE8 (apm_sts_r, apm_sts_w, 0xff000000)
+ AM_RANGE(0xb8, 0xbb) AM_READWRITE (gpi_rout_r, gpi_rout_w)
+ AM_RANGE(0xc0, 0xc3) AM_READWRITE8 (mon_fwd_en_r, mon_fwd_en_w, 0x000000ff)
+ AM_RANGE(0xc4, 0xcb) AM_READWRITE16(mon_trp_rng_r, mon_trp_rng_w, 0xffffffff)
+ AM_RANGE(0xcc, 0xcf) AM_READWRITE16(mon_trp_msk_r, mon_trp_msk_w, 0x0000ffff)
AM_RANGE(0xd0, 0xd3) AM_READWRITE (gen_cntl_r, gen_cntl_w)
AM_RANGE(0xd4, 0xd7) AM_READWRITE8 (gen_sta_r, gen_sta_w, 0x000000ff)
AM_RANGE(0xd4, 0xd7) AM_READWRITE8 (back_cntl_r, back_cntl_w, 0x0000ff00)
@@ -96,6 +106,16 @@ void i6300esb_lpc_device::device_reset()
etr1 = 0x00000000;
siu_config_port = 0;
siu_config_state = 0;
+ gen_pmcon_1 = 0;
+ gen_pmcon_2 = 0;
+ gen_pmcon_3 = 0;
+ rst_cnt2 = 0;
+ apm_cnt = 0;
+ apm_sts = 0;
+ gpi_rout = 0;
+ mon_fwd_en = 0;
+ memset(mon_trp_rng, 0, sizeof(mon_trp_rng));
+ mon_trp_msk = 0;
}
void i6300esb_lpc_device::reset_all_mappings()
@@ -256,6 +276,116 @@ WRITE16_MEMBER(i6300esb_lpc_device::pci_dma_cfg_w)
logerror("%s: pci_dma_cfg = %04x\n", tag(), pci_dma_cfg);
}
+READ16_MEMBER (i6300esb_lpc_device::gen_pmcon_1_r)
+{
+ return gen_pmcon_1;
+}
+
+WRITE16_MEMBER(i6300esb_lpc_device::gen_pmcon_1_w)
+{
+ COMBINE_DATA(&gen_pmcon_1);
+ logerror("%s: gen_pmcon_1 = %04x\n", tag(), gen_pmcon_1);
+}
+
+READ16_MEMBER (i6300esb_lpc_device::gen_pmcon_2_r)
+{
+ return gen_pmcon_2;
+}
+
+WRITE16_MEMBER(i6300esb_lpc_device::gen_pmcon_2_w)
+{
+ COMBINE_DATA(&gen_pmcon_2);
+ logerror("%s: gen_pmcon_2 = %04x\n", tag(), gen_pmcon_2);
+}
+
+READ8_MEMBER (i6300esb_lpc_device::gen_pmcon_3_r)
+{
+ return gen_pmcon_3;
+}
+
+WRITE8_MEMBER (i6300esb_lpc_device::gen_pmcon_3_w)
+{
+ gen_pmcon_3 = data;
+ logerror("%s: gen_pmcon_3 = %02x\n", tag(), gen_pmcon_3);
+}
+
+READ32_MEMBER (i6300esb_lpc_device::rst_cnt2_r)
+{
+ return rst_cnt2;
+}
+
+WRITE32_MEMBER(i6300esb_lpc_device::rst_cnt2_w)
+{
+ COMBINE_DATA(&rst_cnt2);
+ logerror("%s: rst_cnt2 = %08x\n", tag(), rst_cnt2);
+}
+
+READ8_MEMBER (i6300esb_lpc_device::apm_cnt_r)
+{
+ return apm_cnt;
+}
+
+WRITE8_MEMBER (i6300esb_lpc_device::apm_cnt_w)
+{
+ apm_cnt = data;
+ logerror("%s: apm_cnt = %02x\n", tag(), apm_cnt);
+}
+
+READ8_MEMBER (i6300esb_lpc_device::apm_sts_r)
+{
+ return apm_sts;
+}
+
+WRITE8_MEMBER (i6300esb_lpc_device::apm_sts_w)
+{
+ apm_sts = data;
+ logerror("%s: apm_sts = %02x\n", tag(), apm_sts);
+}
+
+READ32_MEMBER (i6300esb_lpc_device::gpi_rout_r)
+{
+ return gpi_rout;
+}
+
+WRITE32_MEMBER(i6300esb_lpc_device::gpi_rout_w)
+{
+ COMBINE_DATA(&gpi_rout);
+ logerror("%s: gpi_rout = %08x\n", tag(), gpi_rout);
+}
+
+READ8_MEMBER (i6300esb_lpc_device::mon_fwd_en_r)
+{
+ return mon_fwd_en;
+}
+
+WRITE8_MEMBER (i6300esb_lpc_device::mon_fwd_en_w)
+{
+ mon_fwd_en = data;
+ logerror("%s: mon_fwd_en = %02x\n", tag(), mon_fwd_en);
+}
+
+READ16_MEMBER (i6300esb_lpc_device::mon_trp_rng_r)
+{
+ return mon_trp_rng[offset];
+}
+
+WRITE16_MEMBER(i6300esb_lpc_device::mon_trp_rng_w)
+{
+ COMBINE_DATA(&mon_trp_rng[offset]);
+ logerror("%s: mon_trp_rng[%d] = %04x\n", tag(), 4+offset, mon_trp_rng[offset]);
+}
+
+READ16_MEMBER (i6300esb_lpc_device::mon_trp_msk_r)
+{
+ return mon_trp_msk;
+}
+
+WRITE16_MEMBER(i6300esb_lpc_device::mon_trp_msk_w)
+{
+ COMBINE_DATA(&mon_trp_msk);
+ logerror("%s: mon_trp_msk = %04x\n", tag(), mon_trp_msk);
+}
+
READ32_MEMBER (i6300esb_lpc_device::gen_cntl_r)
{
return gen_cntl;