summaryrefslogtreecommitdiffstatshomepage
path: root/src/mame/includes/mips.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/mame/includes/mips.h')
-rw-r--r--src/mame/includes/mips.h100
1 files changed, 100 insertions, 0 deletions
diff --git a/src/mame/includes/mips.h b/src/mame/includes/mips.h
new file mode 100644
index 00000000000..0fb9ee547ee
--- /dev/null
+++ b/src/mame/includes/mips.h
@@ -0,0 +1,100 @@
+// license:BSD-3-Clause
+// copyright-holders:Patrick Mackinlay
+
+#ifndef MAME_INCLUDES_MIPS_H
+#define MAME_INCLUDES_MIPS_H
+
+#pragma once
+
+// processors and memory
+#include "cpu/mips/r3000.h"
+#include "cpu/nec/v53.h"
+#include "machine/ram.h"
+
+// i/o devices
+#include "machine/am79c90.h"
+#include "machine/at_keybc.h"
+#include "machine/mc146818.h"
+#include "machine/ncr5390.h"
+#include "machine/upd765.h"
+#include "machine/wd33c93.h"
+#include "machine/z80scc.h"
+
+// busses and connectors
+#include "bus/pc_kbd/pc_kbdc.h"
+#include "bus/pc_kbd/keyboards.h"
+#include "bus/rs232/rs232.h"
+
+// video
+#include "screen.h"
+#include "video/bt45x.h"
+
+#include "formats/pc_dsk.h"
+
+class rx2030_state : public driver_device
+{
+public:
+ rx2030_state(const machine_config &mconfig, device_type type, const char *tag)
+ : driver_device(mconfig, type, tag)
+ , m_maincpu(*this, "cpu")
+ , m_iop(*this, "iop")
+ , m_ram(*this, "ram")
+ , m_rtc(*this, "rtc")
+ , m_kbdc(*this, "kbdc")
+ , m_kbd(*this, "kbd")
+ , m_scc(*this, "scc")
+ , m_tty(*this, "tty%u", 0U)
+ , m_fdc(*this, "fdc")
+ , m_scsi(*this, "scsi")
+ , m_net(*this, "net")
+ , m_screen(*this, "screen")
+ , m_ramdac(*this, "ramdac")
+ , m_vram(*this, "vram")
+ {
+ }
+
+ // machine config
+ void rx2030(machine_config &config);
+ void rs2030(machine_config &config);
+ void rc2030(machine_config &config);
+
+ void rx2030_init();
+
+protected:
+ // driver_device overrides
+ virtual void machine_start() override;
+ virtual void machine_reset() override;
+
+ // address maps
+ void cpu_map(address_map &map);
+ void iop_program_map(address_map &map);
+ void iop_io_map(address_map &map);
+
+ u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
+
+private:
+ // processors and memory
+ required_device<r2000_device> m_maincpu;
+ required_device<v53_device> m_iop;
+ required_device<ram_device> m_ram;
+
+ // i/o devices
+ required_device<mc146818_device> m_rtc;
+ required_device<at_keyboard_controller_device> m_kbdc;
+ required_device<pc_kbdc_slot_device> m_kbd;
+ required_device<z80scc_device> m_scc;
+ required_device_array<rs232_port_device, 2> m_tty;
+ required_device<wd37c65c_device> m_fdc;
+ required_device<wd33c93_device> m_scsi;
+ required_device<am7990_device> m_net;
+
+ // optional video board
+ optional_device<screen_device> m_screen;
+ optional_device<bt458_device> m_ramdac;
+ optional_device<ram_device> m_vram;
+
+ // machine state
+ u16 m_mmu[32];
+};
+
+#endif // MAME_INCLUDES_MIPS_H