summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/machine/gt64xxx.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/machine/gt64xxx.h')
-rw-r--r--src/devices/machine/gt64xxx.h71
1 files changed, 37 insertions, 34 deletions
diff --git a/src/devices/machine/gt64xxx.h b/src/devices/machine/gt64xxx.h
index 1488c058cd5..d1962514177 100644
--- a/src/devices/machine/gt64xxx.h
+++ b/src/devices/machine/gt64xxx.h
@@ -12,36 +12,8 @@
#include "pci.h"
#include "cpu/mips/mips3.h"
-// Supports R4600/4650/4700/R5000 CPUs
-#define MCFG_GT64010_ADD(_tag, _cpu_tag, _clock, _irq_num) \
- MCFG_DEVICE_ADD(_tag, GT64XXX, _clock, _cpu_tag, _irq_num) \
- downcast<gt64xxx_device &>(*device).set_ids_host(0x11ab0146, 0x03, 0x00000000);
-
-// Supports the following 32-bit bus CPUs:
-// IDT RC4640 and RC4650 (in 32-bit mode)
-// QED RM523X
-// NEC/Toshiba VR4300
-#define MCFG_GT64111_ADD(_tag, _cpu_tag, _clock, _irq_num) \
- MCFG_DEVICE_ADD(_tag, GT64XXX, _clock, _cpu_tag, _irq_num) \
- downcast<gt64xxx_device &>(*device).set_ids(0x414611ab, 0x10, 0x058000, 0x00000000);
-
-#define MCFG_GT64XXX_SET_BE_CPU(_be) \
- downcast<gt64xxx_device &>(*device).set_be(_be);
-
-#define MCFG_GT64XXX_IRQ_ADD(_irq_num) \
- downcast<gt64xxx_device &>(*device).set_irq_info(_irq_num);
-
-#define MCFG_GT64XXX_SET_CS(_cs_num, _map) \
- downcast<gt64xxx_device &>(*device).set_map(_cs_num, address_map_constructor(&_map, #_map, this), this);
-
-#define MCFG_GT64XX_SET_SIMM(_index, _size) \
- downcast<gt64xxx_device &>(*device).set_simm_size(_index, _size);
-
-#define MCFG_GT64XX_SET_SIMM0(_size) \
- downcast<gt64xxx_device &>(*device).set_simm0_size(_size);
-
-#define MCFG_GT64XX_SET_SIMM1(_size) \
- downcast<gt64xxx_device &>(*device).set_simm1_size(_size);
+DECLARE_DEVICE_TYPE(GT64010, gt64010_device)
+DECLARE_DEVICE_TYPE(GT64111, gt64111_device)
/*************************************
* Structures
@@ -49,14 +21,14 @@
class gt64xxx_device : public pci_host_device {
public:
template <typename T>
- gt64xxx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, T &&cpu_tag, int irq_num)
- : gt64xxx_device(mconfig, tag, owner, clock)
+ gt64xxx_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock, T &&cpu_tag, int irq_num)
+ : gt64xxx_device(mconfig, type, const char *tag, owner, clock)
{
set_cpu_tag(std::forward<T>(cpu_tag));
set_irq_num(irq_num);
}
- gt64xxx_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ gt64xxx_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
virtual void reset_all_mappings() override;
virtual void map_extra(uint64_t memory_window_start, uint64_t memory_window_end, uint64_t memory_offset, address_space *memory_space,
@@ -187,6 +159,37 @@ private:
address_space* dma_decode_address(uint32_t &addr);
};
-DECLARE_DEVICE_TYPE(GT64XXX, gt64xxx_device)
+// Supports R4600/4650/4700/R5000 CPUs
+class gt64010_device : public gt64xxx_device {
+public:
+ template <typename T>
+ gt64010_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, T &&cpu_tag, int irq_num)
+ : gt64010_device(mconfig, tag, owner, clock)
+ {
+ set_ids_host(0x11ab0146, 0x03, 0x00000000);
+ set_cpu_tag(std::forward<T>(cpu_tag));
+ set_irq_num(irq_num);
+ }
+ gt64010_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : gt64xxx_device(mconfig, GT64010, tag, owner, clock) {}
+};
+
+// Supports the following 32-bit bus CPUs:
+// IDT RC4640 and RC4650 (in 32-bit mode)
+// QED RM523X
+// NEC/Toshiba VR4300
+class gt64111_device : public gt64xxx_device {
+public:
+ template <typename T>
+ gt64111_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock, T &&cpu_tag, int irq_num)
+ : gt64111_device(mconfig, tag, owner, clock)
+ {
+ set_ids(0x414611ab, 0x10, 0x058000, 0x00000000);
+ set_cpu_tag(std::forward<T>(cpu_tag));
+ set_irq_num(irq_num);
+ }
+ gt64111_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : gt64xxx_device(mconfig, GT64111, tag, owner, clock) {}
+};
#endif // MAME_MACHINE_GT64XXX_H