summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/machine/sgi.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/machine/sgi.h')
-rw-r--r--src/mame/machine/sgi.h25
1 files changed, 15 insertions, 10 deletions
diff --git a/src/mame/machine/sgi.h b/src/mame/machine/sgi.h
index c66c81f5c32..634c286ba2d 100644
--- a/src/mame/machine/sgi.h
+++ b/src/mame/machine/sgi.h
@@ -13,12 +13,17 @@
#pragma once
+#include "machine/eepromser.h"
+
class sgi_mc_device : public device_t
{
public:
- sgi_mc_device(const machine_config &mconfig, const char *tag, device_t *owner)
+ template <typename T, typename U>
+ sgi_mc_device(const machine_config &mconfig, const char *tag, device_t *owner, T &&cpu_tag, U &&eeprom_tag)
: sgi_mc_device(mconfig, tag, owner, (uint32_t)0)
{
+ m_maincpu.set_tag(std::forward<T>(cpu_tag));
+ m_eeprom.set_tag(std::forward<U>(eeprom_tag));
}
sgi_mc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
@@ -26,6 +31,8 @@ public:
DECLARE_READ32_MEMBER(read);
DECLARE_WRITE32_MEMBER(write);
+ void set_cpu_buserr(uint32_t address);
+
protected:
// device-level overrides
virtual void device_start() override;
@@ -35,10 +42,12 @@ protected:
static const device_timer_id TIMER_RPSS = 0;
private:
- // internal state
+ required_device<cpu_device> m_maincpu;
+ required_device<eeprom_serial_93cxx_device> m_eeprom;
+
emu_timer *m_rpss_timer;
- uint32_t m_cpu_control0;
- uint32_t m_cpu_control1;
+
+ uint32_t m_cpu_control[2];
uint32_t m_watchdog;
uint32_t m_sys_id;
uint32_t m_rpss_divider;
@@ -47,8 +56,7 @@ private:
uint32_t m_gio64_arb_param;
uint32_t m_arb_cpu_time;
uint32_t m_arb_burst_time;
- uint32_t m_mem_config0;
- uint32_t m_mem_config1;
+ uint32_t m_mem_config[2];
uint32_t m_cpu_mem_access_config;
uint32_t m_gio_mem_access_config;
uint32_t m_cpu_error_addr;
@@ -78,14 +86,11 @@ private:
uint32_t m_dma_mode;
uint32_t m_dma_count;
uint32_t m_dma_running;
+ uint32_t m_eeprom_ctrl;
uint32_t m_semaphore[16];
int m_rpss_divide_counter;
int m_rpss_divide_count;
uint8_t m_rpss_increment;
-
- void update();
- TIMER_CALLBACK_MEMBER(update_callback);
- void timer_init();
};
DECLARE_DEVICE_TYPE(SGI_MC, sgi_mc_device)