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.h55
1 files changed, 42 insertions, 13 deletions
diff --git a/src/mame/includes/mips.h b/src/mame/includes/mips.h
index 8fc51841f48..d7df4116618 100644
--- a/src/mame/includes/mips.h
+++ b/src/mame/includes/mips.h
@@ -12,22 +12,28 @@
#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/z8038.h"
+#include "machine/at_keybc.h"
#include "machine/z80scc.h"
+#include "machine/upd765.h"
+#include "machine/aic6250.h"
+#include "machine/am79c90.h"
// busses and connectors
+#include "machine/nscsi_bus.h"
+#include "machine/nscsi_cd.h"
+#include "machine/nscsi_hd.h"
+
#include "bus/pc_kbd/pc_kbdc.h"
#include "bus/pc_kbd/keyboards.h"
#include "bus/rs232/rs232.h"
-// video
+// video and audio
#include "screen.h"
#include "video/bt45x.h"
+#include "sound/spkrdev.h"
+#include "speaker.h"
#include "formats/pc_dsk.h"
@@ -36,17 +42,20 @@ 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_cpu(*this, "cpu")
, m_iop(*this, "iop")
, m_ram(*this, "ram")
, m_rtc(*this, "rtc")
+ , m_fio(*this, "fio")
, 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_scsibus(*this, "scsi")
+ , m_scsi(*this, "scsi:7:aic6250")
, m_net(*this, "net")
+ , m_buzzer(*this, "buzzer")
, m_screen(*this, "screen")
, m_ramdac(*this, "ramdac")
, m_vram(*this, "vram")
@@ -66,35 +75,55 @@ protected:
virtual void machine_reset() override;
// address maps
- void cpu_map(address_map &map);
+ void rx2030_map(address_map &map);
+ void rs2030_map(address_map &map);
+
void iop_program_map(address_map &map);
void iop_io_map(address_map &map);
+ u16 mmu_r(offs_t offset, u16 mem_mask = 0xffff);
+ void mmu_w(offs_t offset, u16 data, u16 mem_mask = 0xffff);
+
u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, const rectangle &cliprect);
private:
+ enum iop_interface_status_mask : u8
+ {
+ FPU_ABSENT = 0x01, // clear if FPU installed
+ DBG_ABSENT = 0x02, // clear if debug board installed
+ IOP_IRQ = 0x04, // set when CPU interrupts IOP
+ VID_ABSENT = 0x10, // clear if video board installed
+ IOP_IACK = 0x40, // set when IOP acknowledges CPU interrupt
+ IOP_NERR = 0x80, // clear when IOP receives parity error
+ };
+
// processors and memory
- required_device<r2000_device> m_maincpu;
- required_device<v53_device> m_iop;
+ required_device<r3000_device_base> m_cpu;
+ required_device<v50_device> m_iop;
required_device<ram_device> m_ram;
// i/o devices
required_device<mc146818_device> m_rtc;
+ required_device<z8038_device> m_fio;
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<nscsi_bus_device> m_scsibus;
+ required_device<aic6250_device> m_scsi;
required_device<am7990_device> m_net;
+ required_device<speaker_sound_device> m_buzzer;
// optional video board
optional_device<screen_device> m_screen;
optional_device<bt458_device> m_ramdac;
- optional_device<ram_device> m_vram;
+ optional_shared_ptr<u32> m_vram;
// machine state
u16 m_mmu[32];
+
+ u8 m_iop_interface;
};
#endif // MAME_INCLUDES_MIPS_H