summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/drivers/indy_indigo2.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/drivers/indy_indigo2.cpp')
-rw-r--r--src/mame/drivers/indy_indigo2.cpp35
1 files changed, 28 insertions, 7 deletions
diff --git a/src/mame/drivers/indy_indigo2.cpp b/src/mame/drivers/indy_indigo2.cpp
index 0c874c8d582..8814f4137a9 100644
--- a/src/mame/drivers/indy_indigo2.cpp
+++ b/src/mame/drivers/indy_indigo2.cpp
@@ -12,7 +12,7 @@
* Memory map:
*
* 00000000 - 0007ffff Alias for first 512kbyte of RAM
-* 00080000 - 0008ffff EISA I/O space (pullups on Indy)
+* 00080000 - 0008ffff EISA I/O space (VINO on Indy)
* 00090000 - 0009ffff EISA I/O space Alias (pullups on Indy)
* 000a0000 - 07ffffff EISA Memory
* 08000000 - 17ffffff Low System Memory
@@ -63,6 +63,7 @@
#include "machine/nscsi_cd.h"
#include "machine/nscsi_hd.h"
#include "machine/sgi.h"
+#include "machine/vino.h"
#include "sound/cdda.h"
@@ -79,6 +80,7 @@ public:
, m_mem_ctrl(*this, "memctrl")
, m_scsi_ctrl(*this, "scsibus:0:wd33c93")
, m_hpc3(*this, "hpc3")
+ , m_vino(*this, "vino")
, m_gio(*this, "gio")
, m_gio_gfx(*this, "gio_gfx")
, m_gio_exp0(*this, "gio_exp0")
@@ -93,11 +95,10 @@ public:
protected:
virtual void machine_reset() override;
- DECLARE_READ32_MEMBER(eisa_io_r);
-
DECLARE_WRITE64_MEMBER(write_ram);
void ip22_map(address_map &map);
+ void ip22_base_map(address_map &map);
void wd33c93(device_t *device);
@@ -108,6 +109,7 @@ protected:
required_device<sgi_mc_device> m_mem_ctrl;
required_device<wd33c93b_device> m_scsi_ctrl;
required_device<hpc3_device> m_hpc3;
+ optional_device<vino_device> m_vino;
optional_device<gio_device> m_gio;
optional_device<gio_slot_device> m_gio_gfx;
optional_device<gio_slot_device> m_gio_exp0;
@@ -126,12 +128,16 @@ public:
void ip244415(machine_config &config);
private:
+ DECLARE_READ32_MEMBER(eisa_io_r);
+
void wd33c93_2(device_t *device);
+ void ip24_map(address_map &map);
+
required_device<wd33c93b_device> m_scsi_ctrl2;
};
-READ32_MEMBER(ip22_state::eisa_io_r)
+READ32_MEMBER(ip24_state::eisa_io_r)
{
return 0xffffffff;
}
@@ -155,10 +161,9 @@ WRITE64_MEMBER(ip22_state::write_ram)
COMBINE_DATA(&m_mainram[offset]);
}
-void ip22_state::ip22_map(address_map &map)
+void ip22_state::ip22_base_map(address_map &map)
{
map(0x00000000, 0x0007ffff).bankrw("bank1"); /* mirror of first 512k of main RAM */
- map(0x00080000, 0x0009ffff).r(FUNC(ip22_state::eisa_io_r));
map(0x08000000, 0x0fffffff).share("mainram").ram().w(FUNC(ip22_state::write_ram)); /* 128 MB of main RAM */
map(0x1f000000, 0x1f9fffff).rw(m_gio, FUNC(gio_device::read), FUNC(gio_device::write));
map(0x1fa00000, 0x1fa1ffff).rw(m_mem_ctrl, FUNC(sgi_mc_device::read), FUNC(sgi_mc_device::write));
@@ -167,6 +172,18 @@ void ip22_state::ip22_map(address_map &map)
map(0x20000000, 0x27ffffff).share("mainram").ram().w(FUNC(ip22_state::write_ram));
}
+void ip22_state::ip22_map(address_map &map)
+{
+ ip22_base_map(map);
+ map(0x00080000, 0x0009ffff).rw(m_vino, FUNC(vino_device::read), FUNC(vino_device::write));
+}
+
+void ip24_state::ip24_map(address_map &map)
+{
+ ip22_base_map(map);
+ map(0x00080000, 0x0009ffff).r(FUNC(ip24_state::eisa_io_r));
+}
+
void ip22_state::machine_reset()
{
// set up low RAM mirror
@@ -236,6 +253,8 @@ void ip22_state::ip225015(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &ip22_state::ip22_map);
SGI_HPC3(config, m_hpc3, m_maincpu, m_scsi_ctrl);
+
+ VINO(config, m_vino);
}
void ip22_state::ip224613(machine_config &config)
@@ -248,6 +267,8 @@ void ip22_state::ip224613(machine_config &config)
m_maincpu->set_addrmap(AS_PROGRAM, &ip22_state::ip22_map);
SGI_HPC3(config, m_hpc3, m_maincpu, m_scsi_ctrl);
+
+ VINO(config, m_vino);
}
void ip24_state::wd33c93_2(device_t *device)
@@ -264,7 +285,7 @@ void ip24_state::ip244415(machine_config &config)
R4400(config, m_maincpu, 50000000*3);
//m_maincpu->set_icache_size(32768);
//m_maincpu->set_dcache_size(32768);
- m_maincpu->set_addrmap(AS_PROGRAM, &ip24_state::ip22_map);
+ m_maincpu->set_addrmap(AS_PROGRAM, &ip24_state::ip24_map);
NSCSI_BUS(config, "scsibus2", 0);
NSCSI_CONNECTOR(config, "scsibus2:0").option_set("wd33c93", WD33C93B)