diff options
Diffstat (limited to 'src/mame/includes/mips.h')
-rw-r--r-- | src/mame/includes/mips.h | 55 |
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 |