diff options
author | 2020-10-16 18:12:48 +0700 | |
---|---|---|
committer | 2020-10-16 18:12:48 +0700 | |
commit | b1784c8e3fa1335ddd3c8d3b9f26f33cae75431c (patch) | |
tree | 2e93e78303f62ebd9ab37cf95f59bf57b0d0b309 | |
parent | 03ee6c490a70690f2a10d696e8b80727705717a5 (diff) |
driver housekeeping
* eliminated interpro, jazz, jensen and mips driver headers
* wrapped same drivers in anonymous namespace
-rw-r--r-- | scripts/target/mame/mess.lua | 4 | ||||
-rw-r--r-- | src/mame/drivers/interpro.cpp | 588 | ||||
-rw-r--r-- | src/mame/drivers/jazz.cpp | 117 | ||||
-rw-r--r-- | src/mame/drivers/jensen.cpp | 67 | ||||
-rw-r--r-- | src/mame/drivers/mips.cpp | 235 | ||||
-rw-r--r-- | src/mame/includes/interpro.h | 409 | ||||
-rw-r--r-- | src/mame/includes/jazz.h | 122 | ||||
-rw-r--r-- | src/mame/includes/jensen.h | 72 | ||||
-rw-r--r-- | src/mame/includes/mips.h | 240 |
9 files changed, 896 insertions, 958 deletions
diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index 2951a968659..42b0c54b16b 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -2173,7 +2173,6 @@ files { MAME_DIR .. "src/mame/machine/dc305.cpp", MAME_DIR .. "src/mame/machine/dc305.h", MAME_DIR .. "src/mame/drivers/jensen.cpp", - MAME_DIR .. "src/mame/includes/jensen.h", MAME_DIR .. "src/mame/drivers/pdp11.cpp", MAME_DIR .. "src/mame/drivers/vax11.cpp", MAME_DIR .. "src/mame/drivers/rainbow.cpp", @@ -2657,7 +2656,6 @@ files { createMESSProjects(_target, _subtarget, "interpro") files { MAME_DIR .. "src/mame/drivers/interpro.cpp", - MAME_DIR .. "src/mame/includes/interpro.h", MAME_DIR .. "src/mame/machine/cammu.h", MAME_DIR .. "src/mame/machine/cammu.cpp", MAME_DIR .. "src/mame/machine/interpro_ioga.h", @@ -2697,7 +2695,6 @@ files { createMESSProjects(_target, _subtarget, "jazz") files { MAME_DIR .. "src/mame/drivers/jazz.cpp", - MAME_DIR .. "src/mame/includes/jazz.h", MAME_DIR .. "src/mame/machine/mct_adr.cpp", MAME_DIR .. "src/mame/machine/mct_adr.h", } @@ -2879,7 +2876,6 @@ files { createMESSProjects(_target, _subtarget, "mips") files { MAME_DIR .. "src/mame/drivers/mips.cpp", - MAME_DIR .. "src/mame/includes/mips.h", MAME_DIR .. "src/mame/machine/mips_rambo.h", MAME_DIR .. "src/mame/machine/mips_rambo.cpp", } diff --git a/src/mame/drivers/interpro.cpp b/src/mame/drivers/interpro.cpp index 64385787b0f..ac679e9e809 100644 --- a/src/mame/drivers/interpro.cpp +++ b/src/mame/drivers/interpro.cpp @@ -227,7 +227,37 @@ #include "emu.h" -#include "includes/interpro.h" +#include "cpu/clipper/clipper.h" +#include "machine/cammu.h" + +#include "machine/interpro_ioga.h" +#include "machine/interpro_mcga.h" +#include "machine/interpro_sga.h" +#include "machine/interpro_arbga.h" + +#include "imagedev/floppy.h" +#include "machine/ram.h" +#include "machine/28fxxx.h" +#include "machine/mc146818.h" +#include "machine/z80scc.h" +#include "machine/upd765.h" +#include "machine/i82586.h" + +#include "machine/ncr5390.h" +#include "machine/nscsi_bus.h" +#include "bus/nscsi/cd.h" +#include "bus/nscsi/hd.h" + +#include "bus/rs232/rs232.h" + +#include "bus/interpro/sr/sr.h" +#include "bus/interpro/sr/sr_cards.h" +#include "bus/interpro/keyboard/keyboard.h" +#include "bus/interpro/mouse/mouse.h" + +#include "formats/pc_dsk.h" +#include "softlist.h" + #include "machine/input_merger.h" #include "debugger.h" @@ -237,6 +267,350 @@ #define VERBOSE 0 #include "logmacro.h" +namespace { + +class interpro_state : public driver_device +{ +public: + interpro_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_maincpu(*this, "cpu") + , m_ram(*this, "ram") + , m_mcga(*this, "mcga") + , m_sga(*this, "sga") + , m_fdc(*this, "fdc") + , m_scc1(*this, "scc1") + , m_scc2(*this, "scc2") + , m_rtc(*this, "rtc") + , m_scsibus(*this, "scsi") + , m_eth(*this, "eth") + , m_ioga(*this, "ioga") + , m_eprom(*this, "eprom") + , m_softlist(*this, "softlist") + , m_diag_led(*this, "digit0") + { + } + + required_device<clipper_device> m_maincpu; + required_device<ram_device> m_ram; + + required_device<interpro_mcga_device> m_mcga; + required_device<interpro_sga_device> m_sga; + required_device<upd765_family_device> m_fdc; + required_device<z80scc_device> m_scc1; + required_device<z80scc_device> m_scc2; + required_device<mc146818_device> m_rtc; + required_device<nscsi_bus_device> m_scsibus; + required_device<i82586_base_device> m_eth; + required_device<interpro_ioga_device> m_ioga; + required_region_ptr<u16> m_eprom; + + required_device<software_list_device> m_softlist; + + void init_common(); + + virtual u32 unmapped_r(address_space &space, offs_t offset); + virtual void unmapped_w(offs_t offset, u32 data); + + enum error_mask : u16 + { + ERROR_BPID4 = 0x0001, + ERROR_SRXMMBE = 0x0002, + ERROR_SRXHOG = 0x0004, + ERROR_SRXNEM = 0x0008, + ERROR_SRXVALID = 0x0010, + ERROR_CBUSNMI = 0x0020, + ERROR_CBUSBG = 0x00c0, + ERROR_BG = 0x0070, + ERROR_BUSHOG = 0x0080 + }; + u16 error_r(); + + void led_w(offs_t offset, u16 data, u16 mem_mask = ~0); + + enum status_mask : u16 + { + STATUS_YELLOW_ZONE = 0x0001, + STATUS_SRNMI = 0x0002, + STATUS_PWRLOSS = 0x0004, + STATUS_RED_ZONE = 0x0008, + STATUS_BP = 0x00f0 + }; + u16 status_r() { return m_status; } + + virtual u16 ctrl1_r() = 0; + virtual void ctrl1_w(offs_t offset, u16 data, u16 mem_mask = ~0) = 0; + virtual u16 ctrl2_r() = 0; + virtual void ctrl2_w(offs_t offset, u16 data, u16 mem_mask = ~0) = 0; + + u8 nodeid_r(address_space &space, offs_t offset); + + DECLARE_FLOPPY_FORMATS(floppy_formats); + + void ioga(machine_config &config); + void interpro_serial(machine_config &config); + void interpro(machine_config &config); + static void interpro_scsi_adapter(device_t *device); + static void interpro_cdrom(device_t *device); + void interpro_boot_map(address_map &map); + void interpro_common_map(address_map &map); + +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + + output_finder<> m_diag_led; + emu_timer *m_reset_timer; + + u16 m_error; + u16 m_status; + u16 m_led; +}; + +class emerald_state : public interpro_state +{ +public: + emerald_state(const machine_config &mconfig, device_type type, const char *tag) + : interpro_state(mconfig, type, tag) + , m_d_cammu(*this, "cammu_d") + , m_i_cammu(*this, "cammu_i") + , m_scsi(*this, "scsi:7:host") + , m_bus(*this, "slot") + { + } + + void error_w(u8 data) { m_error = data; } + + enum ctrl1_mask : u16 + { + CTRL1_FLOPLOW = 0x0001, // 3.5" floppy select + CTRL1_FLOPRDY = 0x0002, // floppy ready enable? + CTRL1_LEDENA = 0x0004, // led display enable + CTRL1_LEDDP = 0x0008, // led right decimal point enable + CTRL1_ETHLOOP = 0x0010, // ethernet loopback enable? + CTRL1_ETHDTR = 0x0020, // modem dtr pin enable? + CTRL1_ETHRMOD = 0x0040, // remote modem configured (read)? + CTRL1_CLIPRESET = 0x0040, // hard reset (write)? + CTRL1_FIFOACTIVE = 0x0080 // plotter fifo active? + }; + u16 ctrl1_r() override { return m_ctrl1; } + void ctrl1_w(offs_t offset, u16 data, u16 mem_mask = ~0) override; + + enum ctrl2_mask : u16 + { + CTRL2_PWRUP = 0x0001, // power supply voltage adjust? + CRTL2_PWRENA = 0x0002, // ? + CTRL2_HOLDOFF = 0x0004, // power supply shut down delay + CTRL2_EXTNMIENA = 0x0008, // power nmi enable + CTRL2_COLDSTART = 0x0010, // cold start flag + CTRL2_RESET = 0x0020, // soft reset + CTRL2_BUSENA = 0x0040, // clear bus grant error + CTRL2_FRCPARITY = 0x0080, // ? + + CTRL2_WMASK = 0x000f + }; + u16 ctrl2_r() override { return m_ctrl2; } + void ctrl2_w(offs_t offset, u16 data, u16 mem_mask = ~0) override; + + required_device<cammu_c3_device> m_d_cammu; + required_device<cammu_c3_device> m_i_cammu; + required_device<ncr53c90a_device> m_scsi; + required_device<srx_bus_device> m_bus; + + void emerald(machine_config &config); + void ip6000(machine_config &config); + void interpro_82586_map(address_map &map); + void emerald_base_map(address_map &map); + void emerald_main_map(address_map &map); + void emerald_io_map(address_map &map); + +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + +private: + u16 m_ctrl1; + u16 m_ctrl2; +}; + +class turquoise_state : public interpro_state +{ +public: + turquoise_state(const machine_config &mconfig, device_type type, const char *tag) + : interpro_state(mconfig, type, tag) + , m_d_cammu(*this, "cammu_d") + , m_i_cammu(*this, "cammu_i") + , m_kbd_port(*this, "kbd") + , m_mse_port(*this, "mse") + , m_scsi(*this, "scsi:7:host") + , m_bus(*this, "slot") + { + } + + void error_w(u8 data) { m_error = data; } + + enum ctrl1_mask : u16 + { + CTRL1_FLOPLOW = 0x0001, // 3.5" floppy select + CTRL1_FLOPRDY = 0x0002, // floppy ready enable? + CTRL1_LEDENA = 0x0004, // led display enable + CTRL1_LEDDP = 0x0008, // led right decimal point enable + CTRL1_ETHLOOP = 0x0010, // ethernet loopback enable? + CTRL1_ETHDTR = 0x0020, // modem dtr pin enable? + CTRL1_ETHRMOD = 0x0040, // remote modem configured (read)? + CTRL1_CLIPRESET = 0x0040, // hard reset (write)? + CTRL1_FIFOACTIVE = 0x0080 // plotter fifo active? + }; + u16 ctrl1_r() override { return m_ctrl1; } + void ctrl1_w(offs_t offset, u16 data, u16 mem_mask = ~0) override; + + enum ctrl2_mask : u16 + { + CTRL2_PWRUP = 0x0001, // power supply voltage adjust? + CRTL2_PWRENA = 0x0002, // ? + CTRL2_HOLDOFF = 0x0004, // power supply shut down delay + CTRL2_EXTNMIENA = 0x0008, // power nmi enable + CTRL2_COLDSTART = 0x0010, // cold start flag + CTRL2_RESET = 0x0020, // soft reset + CTRL2_BUSENA = 0x0040, // clear bus grant error + CTRL2_FRCPARITY = 0x0080, // ? + + CTRL2_WMASK = 0x000f + }; + u16 ctrl2_r() override { return m_ctrl2; } + void ctrl2_w(offs_t offset, u16 data, u16 mem_mask = ~0) override; + + required_device<cammu_c3_device> m_d_cammu; + required_device<cammu_c3_device> m_i_cammu; + required_device<interpro_keyboard_port_device> m_kbd_port; + required_device<interpro_mouse_port_device> m_mse_port; + required_device<ncr53c90a_device> m_scsi; + required_device<cbus_bus_device> m_bus; + + void turquoise(machine_config &config); + void ip2000(machine_config &config); + void interpro_82586_map(address_map &map); + void turquoise_base_map(address_map &map); + void turquoise_main_map(address_map &map); + void turquoise_io_map(address_map &map); + +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + +private: + u16 m_ctrl1; + u16 m_ctrl2; +}; + +class sapphire_state : public interpro_state +{ +public: + sapphire_state(const machine_config &mconfig, device_type type, const char *tag) + : interpro_state(mconfig, type, tag) + , m_mmu(*this, "cammu") + , m_scsi(*this, "scsi:7:host") + , m_arbga(*this, "arbga") + , m_flash_lsb(*this, "flash_lsb") + , m_flash_msb(*this, "flash_msb") + { + } + + virtual u32 unmapped_r(address_space &space, offs_t offset) override; + virtual void unmapped_w(offs_t offset, u32 data) override; + + enum ctrl1_mask : u16 + { + CTRL1_FLOPLOW = 0x0001, // 3.5" floppy select + // unused + CTRL1_LEDENA = 0x0004, // led display enable + CTRL1_LEDDP = 0x0008, // led right decimal point enable + CTRL1_MMBE = 0x0010, // mmbe enable + CTRL1_ETHDTR = 0x0020, // modem dtr pin enable + CTRL1_ETHRMOD = 0x0040, // 0 = sytem configured for remote modems + CTRL1_FIFOACTIVE = 0x0080 // 0 = plotter fifos reset + }; + u16 ctrl1_r() override { return m_ctrl1; } + void ctrl1_w(offs_t offset, u16 data, u16 mem_mask = ~0) override; + + enum ctrl2_mask : u16 + { + CTRL2_PWRUP = 0x0003, // power supply voltage adjust + CTRL2_HOLDOFF = 0x0004, // power supply shut down delay + CTRL2_EXTNMIENA = 0x0008, // power nmi enable + CTRL2_COLDSTART = 0x0010, // cold start flag + CTRL2_RESET = 0x0020, // soft reset + CTRL2_BUSENA = 0x0040, // clear bus grant error + CTRL2_FLASHEN = 0x0080, // flash eprom write enable + }; + u16 ctrl2_r() override { return m_ctrl2; } + void ctrl2_w(offs_t offset, u16 data, u16 mem_mask = ~0) override; + + required_device<cammu_c4_device> m_mmu; + required_device<ncr53c94_device> m_scsi; + required_device<interpro_arbga_device> m_arbga; + required_device<intel_28f010_device> m_flash_lsb; + required_device<intel_28f010_device> m_flash_msb; + + void sapphire(machine_config &config); + + void interpro_82596_map(address_map &map); + void sapphire_base_map(address_map &map); + void sapphire_main_map(address_map &map); + void sapphire_io_map(address_map &map); + +protected: + virtual void machine_start() override; + virtual void machine_reset() override; + +private: + u16 m_ctrl1; + u16 m_ctrl2; +}; + +class cbus_sapphire_state : public sapphire_state +{ +public: + cbus_sapphire_state(const machine_config &mconfig, device_type type, const char *tag) + : sapphire_state(mconfig, type, tag) + , m_kbd_port(*this, "kbd") + , m_mse_port(*this, "mse") + , m_bus(*this, "slot") + { + } + + void cbus_sapphire(machine_config &config); + + void ip2500(machine_config &config); + void ip2400(machine_config &config); + void ip2700(machine_config &config); + void ip2800(machine_config &config); + +protected: + required_device<interpro_keyboard_port_device> m_kbd_port; + required_device<interpro_mouse_port_device> m_mse_port; + required_device<cbus_bus_device> m_bus; +}; + +class srx_sapphire_state : public sapphire_state +{ +public: + srx_sapphire_state(const machine_config &mconfig, device_type type, const char *tag) + : sapphire_state(mconfig, type, tag) + , m_bus(*this, "slot") + { + } + + void srx_sapphire(machine_config &config); + + void ip6400(machine_config &config); + void ip6700(machine_config &config); + void ip6800(machine_config &config); + +protected: + required_device<srx_bus_device> m_bus; +}; + void interpro_state::machine_start() { m_diag_led.resolve(); @@ -538,7 +912,7 @@ void interpro_state::interpro_common_map(address_map &map) map(0x7f000600, 0x7f000600).w(m_rtc, FUNC(mc146818_device::write)); // the system board id prom - map(0x7f000700, 0x7f00077f).rom().region(INTERPRO_IDPROM_TAG, 0); + map(0x7f000700, 0x7f00077f).rom().region("idprom", 0); map(0x7f0fff00, 0x7f0fffff).m(m_ioga, FUNC(interpro_ioga_device::map)); } @@ -565,7 +939,7 @@ void emerald_state::emerald_base_map(address_map &map) map(0x7f000300, 0x7f000300).w(FUNC(emerald_state::error_w)); - map(0x7f000600, 0x7f00067f).rom().region(INTERPRO_NODEID_TAG, 0); + map(0x7f000600, 0x7f00067f).rom().region("nodeid", 0); } void emerald_state::emerald_main_map(address_map &map) @@ -574,8 +948,8 @@ void emerald_state::emerald_main_map(address_map &map) emerald_base_map(map); - map(0x00000000, 0x00ffffff).ram().share(RAM_TAG); - map(0x7f100000, 0x7f13ffff).lr16([this] (offs_t offset) { return m_eprom[offset]; }, INTERPRO_EPROM_TAG); + map(0x00000000, 0x00ffffff).ram().share("ram"); + map(0x7f100000, 0x7f13ffff).lr16([this] (offs_t offset) { return m_eprom[offset]; }, "eprom"); } void turquoise_state::turquoise_base_map(address_map &map) @@ -600,7 +974,7 @@ void turquoise_state::turquoise_base_map(address_map &map) map(0x7f000300, 0x7f000300).w(FUNC(turquoise_state::error_w)); - map(0x7f000600, 0x7f00067f).rom().region(INTERPRO_NODEID_TAG, 0); + map(0x7f000600, 0x7f00067f).rom().region("nodeid", 0); } void turquoise_state::turquoise_main_map(address_map &map) @@ -609,8 +983,8 @@ void turquoise_state::turquoise_main_map(address_map &map) turquoise_base_map(map); - map(0x00000000, 0x00ffffff).ram().share(RAM_TAG); - map(0x7f100000, 0x7f13ffff).lr16([this] (offs_t offset) { return m_eprom[offset]; }, INTERPRO_EPROM_TAG); + map(0x00000000, 0x00ffffff).ram().share("ram"); + map(0x7f100000, 0x7f13ffff).lr16([this] (offs_t offset) { return m_eprom[offset]; }, "eprom"); } void sapphire_state::sapphire_base_map(address_map &map) @@ -645,13 +1019,13 @@ void sapphire_state::sapphire_main_map(address_map &map) sapphire_base_map(map); - map(0x00000000, 0x00ffffff).ram().share(RAM_TAG); - map(0x7f100000, 0x7f11ffff).lr16([this] (offs_t offset) { return m_eprom[offset]; }, INTERPRO_EPROM_TAG); + map(0x00000000, 0x00ffffff).ram().share("ram"); + map(0x7f100000, 0x7f11ffff).lr16([this] (offs_t offset) { return m_eprom[offset]; }, "eprom"); map(0x7f180000, 0x7f1fffff).rw(m_flash_lsb, FUNC(intel_28f010_device::read), FUNC(intel_28f010_device::write)).umask32(0x00ff00ff).mask(0x3ffff); map(0x7f180000, 0x7f1fffff).rw(m_flash_msb, FUNC(intel_28f010_device::read), FUNC(intel_28f010_device::write)).umask32(0xff00ff00).mask(0x3ffff); // HACK: for SRX bus Sapphire only - //map(0x8f007f80, 0x8f007fff).rom().region(INTERPRO_IDPROM_TAG, 0); + //map(0x8f007f80, 0x8f007fff).rom().region("idprom", 0); } void emerald_state::emerald_io_map(address_map &map) @@ -715,7 +1089,7 @@ void interpro_state::interpro_serial(machine_config &config) * RS-232 signal; possibly it should be DSR? */ // scc1 channel A (serial port 1) - rs232_port_device &port1(RS232_PORT(config, INTERPRO_SERIAL_PORT1_TAG, default_rs232_devices, nullptr)); + rs232_port_device &port1(RS232_PORT(config, "serial1", default_rs232_devices, nullptr)); port1.cts_handler().set(m_scc1, FUNC(z80scc_device::ctsa_w)); port1.dcd_handler().set(m_scc1, FUNC(z80scc_device::dcda_w)); port1.rxd_handler().set(m_scc1, FUNC(z80scc_device::rxa_w)); @@ -724,7 +1098,7 @@ void interpro_state::interpro_serial(machine_config &config) m_scc1->out_wreqa_callback().set(m_ioga, FUNC(interpro_ioga_device::drq_serial1)).invert(); // scc1 channel B (serial port 2) - rs232_port_device &port2(RS232_PORT(config, INTERPRO_SERIAL_PORT2_TAG, default_rs232_devices, nullptr)); + rs232_port_device &port2(RS232_PORT(config, "serial2", default_rs232_devices, nullptr)); port2.cts_handler().set(m_scc1, FUNC(z80scc_device::ctsb_w)); port2.dcd_handler().set(m_scc1, FUNC(z80scc_device::dcdb_w)); port2.rxd_handler().set(m_scc1, FUNC(z80scc_device::rxb_w)); @@ -735,7 +1109,7 @@ void interpro_state::interpro_serial(machine_config &config) m_scc1->out_int_callback().set(scc_int, FUNC(input_merger_device::in_w<0>)); // scc2 channel B (serial port 0) - rs232_port_device &port0(RS232_PORT(config, INTERPRO_SERIAL_PORT0_TAG, default_rs232_devices, nullptr)); + rs232_port_device &port0(RS232_PORT(config, "serial0", default_rs232_devices, nullptr)); port0.cts_handler().set(m_scc2, FUNC(z80scc_device::ctsb_w)); port0.dcd_handler().set(m_scc2, FUNC(z80scc_device::dcdb_w)); port0.ri_handler().set(m_scc2, FUNC(z80scc_device::syncb_w)); @@ -762,8 +1136,8 @@ void interpro_state::interpro_scsi_adapter(device_t *device) adapter.set_clock(24_MHz_XTAL); - adapter.irq_handler_cb().set(":" INTERPRO_IOGA_TAG, FUNC(interpro_ioga_device::ir0_w)); - adapter.drq_handler_cb().set(":" INTERPRO_IOGA_TAG, FUNC(interpro_ioga_device::drq_scsi)); + adapter.irq_handler_cb().set(":ioga", FUNC(interpro_ioga_device::ir0_w)); + adapter.drq_handler_cb().set(":ioga", FUNC(interpro_ioga_device::drq_scsi)); } void interpro_state::interpro_cdrom(device_t *device) @@ -779,8 +1153,8 @@ void interpro_state::ioga(machine_config &config) // ioga dma and serial dma channels //m_ioga->dma_r_callback<0>().set(unknown); // plotter - m_ioga->dma_r_callback<1>().set(INTERPRO_SCSI_DEVICE_TAG, FUNC(ncr53c90a_device::dma_r)); - m_ioga->dma_w_callback<1>().set(INTERPRO_SCSI_DEVICE_TAG, FUNC(ncr53c90a_device::dma_w)); + m_ioga->dma_r_callback<1>().set("scsi:7:host", FUNC(ncr53c90a_device::dma_r)); + m_ioga->dma_w_callback<1>().set("scsi:7:host", FUNC(ncr53c90a_device::dma_w)); m_ioga->dma_r_callback<2>().set(m_fdc, FUNC(upd765_family_device::dma_r)); m_ioga->dma_w_callback<2>().set(m_fdc, FUNC(upd765_family_device::dma_w)); m_ioga->serial_dma_r_callback<0>().set(m_scc2, FUNC(z80scc_device::db_r)); @@ -819,20 +1193,20 @@ void interpro_state::interpro(machine_config &config) // scsi bus and devices NSCSI_BUS(config, m_scsibus, 0); - nscsi_connector &harddisk(NSCSI_CONNECTOR(config, INTERPRO_SCSI_TAG ":0", 0)); + nscsi_connector &harddisk(NSCSI_CONNECTOR(config, "scsi:0", 0)); interpro_scsi_devices(harddisk); harddisk.set_default_option("harddisk"); - nscsi_connector &cdrom(NSCSI_CONNECTOR(config, INTERPRO_SCSI_TAG ":4", 0)); + nscsi_connector &cdrom(NSCSI_CONNECTOR(config, "scsi:4", 0)); interpro_scsi_devices(cdrom); cdrom.set_default_option("cdrom"); cdrom.set_option_machine_config("cdrom", interpro_cdrom); - interpro_scsi_devices(NSCSI_CONNECTOR(config, INTERPRO_SCSI_TAG ":1", 0)); - interpro_scsi_devices(NSCSI_CONNECTOR(config, INTERPRO_SCSI_TAG ":2", 0)); - interpro_scsi_devices(NSCSI_CONNECTOR(config, INTERPRO_SCSI_TAG ":3", 0)); - interpro_scsi_devices(NSCSI_CONNECTOR(config, INTERPRO_SCSI_TAG ":5", 0)); - interpro_scsi_devices(NSCSI_CONNECTOR(config, INTERPRO_SCSI_TAG ":6", 0)); + interpro_scsi_devices(NSCSI_CONNECTOR(config, "scsi:1", 0)); + interpro_scsi_devices(NSCSI_CONNECTOR(config, "scsi:2", 0)); + interpro_scsi_devices(NSCSI_CONNECTOR(config, "scsi:3", 0)); + interpro_scsi_devices(NSCSI_CONNECTOR(config, "scsi:5", 0)); + interpro_scsi_devices(NSCSI_CONNECTOR(config, "scsi:6", 0)); // ethernet @@ -853,7 +1227,7 @@ void emerald_state::emerald(machine_config &config) m_maincpu->set_addrmap(0, &emerald_state::emerald_main_map); m_maincpu->set_addrmap(1, &emerald_state::emerald_io_map); m_maincpu->set_addrmap(2, &emerald_state::interpro_boot_map); - m_maincpu->set_irq_acknowledge_callback(INTERPRO_IOGA_TAG, FUNC(interpro_ioga_device::acknowledge_interrupt)); + m_maincpu->set_irq_acknowledge_callback(m_ioga, FUNC(interpro_ioga_device::acknowledge_interrupt)); CAMMU_C3(config, m_i_cammu, 0); m_i_cammu->exception_callback().set(m_maincpu, FUNC(clipper_device::set_exception)); @@ -875,8 +1249,8 @@ void emerald_state::emerald(machine_config &config) m_fdc->drq_wr_callback().set(m_ioga, FUNC(interpro_ioga_device::drq_floppy)); // connect a 3.5" drive at id 3 - //FLOPPY_CONNECTOR(config, INTERPRO_FDC_TAG ":2", "525hd", FLOPPY_525_HD, true, interpro_state::floppy_formats).enable_sound(false); - FLOPPY_CONNECTOR(config, INTERPRO_FDC_TAG ":3", "35hd", FLOPPY_35_HD, true, interpro_state::floppy_formats).enable_sound(false); + //FLOPPY_CONNECTOR(config, "fdc:2", "525hd", FLOPPY_525_HD, true, interpro_state::floppy_formats).enable_sound(false); + FLOPPY_CONNECTOR(config, "fdc:3", "35hd", FLOPPY_35_HD, true, interpro_state::floppy_formats).enable_sound(false); // serial controllers and ports SCC85C30(config, m_scc1, 4.9152_MHz_XTAL); @@ -884,11 +1258,11 @@ void emerald_state::emerald(machine_config &config) interpro_serial(config); // scsi host adapter - nscsi_connector &adapter(NSCSI_CONNECTOR(config, INTERPRO_SCSI_TAG ":7", 0)); - adapter.option_add_internal(INTERPRO_SCSI_ADAPTER_TAG, NCR53C90A); - adapter.set_default_option(INTERPRO_SCSI_ADAPTER_TAG); + nscsi_connector &adapter(NSCSI_CONNECTOR(config, "scsi:7", 0)); + adapter.option_add_internal("host", NCR53C90A); + adapter.set_default_option("host"); adapter.set_fixed(true); - adapter.set_option_machine_config(INTERPRO_SCSI_ADAPTER_TAG, interpro_scsi_adapter); + adapter.set_option_machine_config("host", interpro_scsi_adapter); // ethernet controller I82586(config, m_eth, 10_MHz_XTAL); @@ -919,7 +1293,7 @@ void turquoise_state::turquoise(machine_config &config) m_maincpu->set_addrmap(0, &turquoise_state::turquoise_main_map); m_maincpu->set_addrmap(1, &turquoise_state::turquoise_io_map); m_maincpu->set_addrmap(2, &turquoise_state::interpro_boot_map); - m_maincpu->set_irq_acknowledge_callback(INTERPRO_IOGA_TAG, FUNC(interpro_ioga_device::acknowledge_interrupt)); + m_maincpu->set_irq_acknowledge_callback(m_ioga, FUNC(interpro_ioga_device::acknowledge_interrupt)); CAMMU_C3(config, m_i_cammu, 0); m_i_cammu->exception_callback().set(m_maincpu, FUNC(clipper_device::set_exception)); @@ -941,7 +1315,7 @@ void turquoise_state::turquoise(machine_config &config) m_fdc->drq_wr_callback().set(m_ioga, FUNC(interpro_ioga_device::drq_floppy)); // connect a 3.5" drive at id 3 - FLOPPY_CONNECTOR(config, INTERPRO_FDC_TAG ":3", "35hd", FLOPPY_35_HD, true, interpro_state::floppy_formats).enable_sound(false); + FLOPPY_CONNECTOR(config, "fdc:3", "35hd", FLOPPY_35_HD, true, interpro_state::floppy_formats).enable_sound(false); // serial controllers and ports SCC85C30(config, m_scc1, 4.9152_MHz_XTAL); @@ -958,11 +1332,11 @@ void turquoise_state::turquoise(machine_config &config) m_mse_port->state_func().set(m_ioga, FUNC(interpro_ioga_device::mouse_status_w)); // scsi host adapter - nscsi_connector &adapter(NSCSI_CONNECTOR(config, INTERPRO_SCSI_TAG ":7", 0)); - adapter.option_add_internal(INTERPRO_SCSI_ADAPTER_TAG, NCR53C90A); - adapter.set_default_option(INTERPRO_SCSI_ADAPTER_TAG); + nscsi_connector &adapter(NSCSI_CONNECTOR(config, "scsi:7", 0)); + adapter.option_add_internal("host", NCR53C90A); + adapter.set_default_option("host"); adapter.set_fixed(true); - adapter.set_option_machine_config(INTERPRO_SCSI_ADAPTER_TAG, interpro_scsi_adapter); + adapter.set_option_machine_config("host", interpro_scsi_adapter); // ethernet controller I82586(config, m_eth, 10_MHz_XTAL); @@ -993,7 +1367,7 @@ void sapphire_state::sapphire(machine_config &config) m_maincpu->set_addrmap(0, &sapphire_state::sapphire_main_map); m_maincpu->set_addrmap(1, &sapphire_state::sapphire_io_map); m_maincpu->set_addrmap(2, &sapphire_state::interpro_boot_map); - m_maincpu->set_irq_acknowledge_callback(INTERPRO_IOGA_TAG, FUNC(interpro_ioga_device::acknowledge_interrupt)); + m_maincpu->set_irq_acknowledge_callback(m_ioga, FUNC(interpro_ioga_device::acknowledge_interrupt)); // FIXME: 2400/6400 should be C4T cammu? CAMMU_C4I(config, m_mmu, 0); @@ -1008,7 +1382,7 @@ void sapphire_state::sapphire(machine_config &config) m_fdc->drq_wr_callback().set(m_ioga, FUNC(interpro_ioga_device::drq_floppy)); // connect a 3.5" drive at id 1 - FLOPPY_CONNECTOR(config, INTERPRO_FDC_TAG ":1", "35hd", FLOPPY_35_HD, true, interpro_state::floppy_formats).enable_sound(false); + FLOPPY_CONNECTOR(config, "fdc:1", "35hd", FLOPPY_35_HD, true, interpro_state::floppy_formats).enable_sound(false); // srx arbiter gate array INTERPRO_ARBGA(config, m_arbga, 0); @@ -1019,11 +1393,11 @@ void sapphire_state::sapphire(machine_config &config) interpro_serial(config); // scsi host adapter - nscsi_connector &adapter(NSCSI_CONNECTOR(config, INTERPRO_SCSI_TAG ":7", 0)); - adapter.option_add_internal(INTERPRO_SCSI_ADAPTER_TAG, NCR53C94); - adapter.set_default_option(INTERPRO_SCSI_ADAPTER_TAG); + nscsi_connector &adapter(NSCSI_CONNECTOR(config, "scsi:7", 0)); + adapter.option_add_internal("host", NCR53C94); + adapter.set_default_option("host"); adapter.set_fixed(true); - adapter.set_option_machine_config(INTERPRO_SCSI_ADAPTER_TAG, interpro_scsi_adapter); + adapter.set_option_machine_config("host", interpro_scsi_adapter); // ethernet controller I82596_LE16(config, m_eth, 20_MHz_XTAL); @@ -1048,8 +1422,8 @@ void turquoise_state::ip2000(machine_config &config) m_kbd_port->set_default_option("lle_en_us"); m_mse_port->set_default_option("interpro_mouse"); - CBUS_SLOT(config, INTERPRO_SLOT_TAG ":0", 0, m_bus, cbus_cards, "mpcb963", false); - CBUS_SLOT(config, INTERPRO_SLOT_TAG ":1", 0, m_bus, cbus_cards, nullptr, false); + CBUS_SLOT(config, "slot:0", 0, m_bus, cbus_cards, "mpcb963", false); + CBUS_SLOT(config, "slot:1", 0, m_bus, cbus_cards, nullptr, false); m_softlist->set_filter("2000"); } @@ -1104,8 +1478,8 @@ void cbus_sapphire_state::ip2400(machine_config &config) m_kbd_port->set_default_option("lle_en_us"); m_mse_port->set_default_option("interpro_mouse"); - CBUS_SLOT(config, INTERPRO_SLOT_TAG ":0", 0, m_bus, cbus_cards, "msmt070", false); - CBUS_SLOT(config, INTERPRO_SLOT_TAG ":1", 0, m_bus, cbus_cards, nullptr, false); + CBUS_SLOT(config, "slot:0", 0, m_bus, cbus_cards, "msmt070", false); + CBUS_SLOT(config, "slot:1", 0, m_bus, cbus_cards, nullptr, false); m_softlist->set_filter("2400"); } @@ -1122,8 +1496,8 @@ void cbus_sapphire_state::ip2500(machine_config &config) m_kbd_port->set_default_option("lle_en_us"); m_mse_port->set_default_option("interpro_mouse"); - CBUS_SLOT(config, INTERPRO_SLOT_TAG ":0", 0, m_bus, cbus_cards, "msmt070", false); - CBUS_SLOT(config, INTERPRO_SLOT_TAG ":1", 0, m_bus, cbus_cards, nullptr, false); + CBUS_SLOT(config, "slot:0", 0, m_bus, cbus_cards, "msmt070", false); + CBUS_SLOT(config, "slot:1", 0, m_bus, cbus_cards, nullptr, false); m_softlist->set_filter("2500"); } @@ -1139,8 +1513,8 @@ void cbus_sapphire_state::ip2700(machine_config &config) m_kbd_port->set_default_option("lle_en_us"); m_mse_port->set_default_option("interpro_mouse"); - CBUS_SLOT(config, INTERPRO_SLOT_TAG ":0", 0, m_bus, cbus_cards, "msmt070", false); - CBUS_SLOT(config, INTERPRO_SLOT_TAG ":1", 0, m_bus, cbus_cards, nullptr, false); + CBUS_SLOT(config, "slot:0", 0, m_bus, cbus_cards, "msmt070", false); + CBUS_SLOT(config, "slot:1", 0, m_bus, cbus_cards, nullptr, false); m_softlist->set_filter("2700"); } @@ -1157,8 +1531,8 @@ void cbus_sapphire_state::ip2800(machine_config &config) m_kbd_port->set_default_option("lle_en_us"); m_mse_port->set_default_option("interpro_mouse"); - CBUS_SLOT(config, INTERPRO_SLOT_TAG ":0", 0, m_bus, cbus_cards, "msmt070", false); - CBUS_SLOT(config, INTERPRO_SLOT_TAG ":1", 0, m_bus, cbus_cards, nullptr, false); + CBUS_SLOT(config, "slot:0", 0, m_bus, cbus_cards, "msmt070", false); + CBUS_SLOT(config, "slot:1", 0, m_bus, cbus_cards, nullptr, false); m_softlist->set_filter("2800"); } @@ -1168,10 +1542,10 @@ void emerald_state::ip6000(machine_config &config) emerald(config); // default is 6040 with EDGE-1 graphics - SRX_SLOT(config, INTERPRO_SLOT_TAG ":1", 0, m_bus, srx_cards, nullptr, false); - SRX_SLOT(config, INTERPRO_SLOT_TAG ":2", 0, m_bus, srx_cards, nullptr, false); - SRX_SLOT(config, INTERPRO_SLOT_TAG ":3", 0, m_bus, srx_cards, nullptr, false); - SRX_SLOT(config, INTERPRO_SLOT_TAG ":4", 0, m_bus, srx_cards, "mpcb828", false); + SRX_SLOT(config, "slot:1", 0, m_bus, srx_cards, nullptr, false); + SRX_SLOT(config, "slot:2", 0, m_bus, srx_cards, nullptr, false); + SRX_SLOT(config, "slot:3", 0, m_bus, srx_cards, nullptr, false); + SRX_SLOT(config, "slot:4", 0, m_bus, srx_cards, "mpcb828", false); m_softlist->set_filter("6000"); } @@ -1184,14 +1558,14 @@ void srx_sapphire_state::ip6400(machine_config &config) m_mmu->set_cammu_id(cammu_c4i_device::CID_C4IR0); // default is 6450 with GT II graphics - SRX_SLOT(config, INTERPRO_SLOT_TAG ":1", 0, m_bus, srx_cards, nullptr, false); - SRX_SLOT(config, INTERPRO_SLOT_TAG ":2", 0, m_bus, srx_cards, nullptr, false); - SRX_SLOT(config, INTERPRO_SLOT_TAG ":3", 0, m_bus, srx_cards, nullptr, false); - SRX_SLOT(config, INTERPRO_SLOT_TAG ":4", 0, m_bus, srx_cards, "mpcbb68", false); + SRX_SLOT(config, "slot:1", 0, m_bus, srx_cards, nullptr, false); + SRX_SLOT(config, "slot:2", 0, m_bus, srx_cards, nullptr, false); + SRX_SLOT(config, "slot:3", 0, m_bus, srx_cards, nullptr, false); + SRX_SLOT(config, "slot:4", 0, m_bus, srx_cards, "mpcbb68", false); // EDGE-2 graphics (6480) - //SRX_SLOT(config, INTERPRO_SLOT_TAG ":3", 0, m_bus, srx_cards, "mpcb030", false); - //SRX_SLOT(config, INTERPRO_SLOT_TAG ":4", 0, m_bus, srx_cards, "mpcba63", false); + //SRX_SLOT(config, "slot:3", 0, m_bus, srx_cards, "mpcb030", false); + //SRX_SLOT(config, "slot:4", 0, m_bus, srx_cards, "mpcba63", false); m_softlist->set_filter("6400"); } @@ -1205,10 +1579,10 @@ void srx_sapphire_state::ip6700(machine_config &config) m_mmu->set_cammu_id(cammu_c4i_device::CID_C4IR2); // default is 6780 with EDGE-2 Plus graphics - SRX_SLOT(config, INTERPRO_SLOT_TAG ":1", 0, m_bus, srx_cards, nullptr, false); - SRX_SLOT(config, INTERPRO_SLOT_TAG ":2", 0, m_bus, srx_cards, nullptr, false); - SRX_SLOT(config, INTERPRO_SLOT_TAG ":3", 0, m_bus, srx_cards, "msmt094", false); - SRX_SLOT(config, INTERPRO_SLOT_TAG ":4", 0, m_bus, srx_cards, "mpcb896", false); + SRX_SLOT(config, "slot:1", 0, m_bus, srx_cards, nullptr, false); + SRX_SLOT(config, "slot:2", 0, m_bus, srx_cards, nullptr, false); + SRX_SLOT(config, "slot:3", 0, m_bus, srx_cards, "msmt094", false); + SRX_SLOT(config, "slot:4", 0, m_bus, srx_cards, "mpcb896", false); m_softlist->set_filter("6700"); } @@ -1222,22 +1596,22 @@ void srx_sapphire_state::ip6800(machine_config &config) m_mmu->set_cammu_id(cammu_c4i_device::CID_C4IR2); // default is 6880 with EDGE-2 Plus graphics - SRX_SLOT(config, INTERPRO_SLOT_TAG ":1", 0, m_bus, srx_cards, nullptr, false); - SRX_SLOT(config, INTERPRO_SLOT_TAG ":2", 0, m_bus, srx_cards, nullptr, false); - SRX_SLOT(config, INTERPRO_SLOT_TAG ":3", 0, m_bus, srx_cards, "msmt094", false); - SRX_SLOT(config, INTERPRO_SLOT_TAG ":4", 0, m_bus, srx_cards, "mpcb896", false); + SRX_SLOT(config, "slot:1", 0, m_bus, srx_cards, nullptr, false); + SRX_SLOT(config, "slot:2", 0, m_bus, srx_cards, nullptr, false); + SRX_SLOT(config, "slot:3", 0, m_bus, srx_cards, "msmt094", false); + SRX_SLOT(config, "slot:4", 0, m_bus, srx_cards, "mpcb896", false); m_softlist->set_filter("6800"); } ROM_START(ip2000) - ROM_REGION32_LE(0x80, INTERPRO_NODEID_TAG, 0) + ROM_REGION32_LE(0x80, "nodeid", 0) ROM_LOAD32_BYTE("nodeid.bin", 0x0, 0x20, CRC(a38397a6) SHA1(9f45fb932bbe231c95b3d5470dcd1fa1c846486f)) - ROM_REGION32_LE(0x80, INTERPRO_IDPROM_TAG, 0) + ROM_REGION32_LE(0x80, "idprom", 0) ROM_LOAD32_BYTE("mpcb962a.bin", 0x0, 0x20, CRC(e391342c) SHA1(02e03aad760b6651b8599c3a41c7c457983ee97d)) - ROM_REGION16_LE(0x40000, INTERPRO_EPROM_TAG, 0) + ROM_REGION16_LE(0x40000, "eprom", 0) ROM_SYSTEM_BIOS(0, "ip2000", "InterPro/InterServe 20x0 EPROM") ROMX_LOAD("mprgm530e__26_apr_91k.u171", 0x00001, 0x20000, CRC(e4c470cb) SHA1(ff1917bfa963988d739a9dbf0b8f034fe49f2f8c), ROM_SKIP(1) | ROM_BIOS(0)) ROMX_LOAD("mprgm540e__06_may_91k.u172", 0x00000, 0x20000, CRC(03225843) SHA1(03cfcd5b8ae0057240ef808a40108cb5d082eb63), ROM_SKIP(1) | ROM_BIOS(0)) @@ -1245,127 +1619,129 @@ ROM_END ROM_START(ip2400) // feature[0] & 0x02: C4I cammu if set - ROM_REGION32_LE(0x80, INTERPRO_IDPROM_TAG, 0) + ROM_REGION32_LE(0x80, "idprom", 0) ROM_LOAD32_BYTE("msmt0470.bin", 0x0, 0x20, CRC(498c80df) SHA1(18a49732ac9d04b20a77747c1b946c2e88abb087)) - ROM_REGION16_LE(0x20000, INTERPRO_EPROM_TAG, 0) + ROM_REGION16_LE(0x20000, "eprom", 0) ROM_SYSTEM_BIOS(0, "ip2400", "InterPro/InterServe 24x0 EPROM") ROMX_LOAD("mprgw510b__05_16_92.u35", 0x00000, 0x20000, CRC(3b2c4545) SHA1(4e4c98d1cd1035a04be8527223f44d0b687ec3ef), ROM_BIOS(0)) - ROM_REGION(0x20000, INTERPRO_FLASH_TAG "_lsb", 0) + ROM_REGION(0x20000, "flash_lsb", 0) ROM_LOAD_OPTIONAL("y225.u76", 0x00000, 0x20000, CRC(46c0b105) SHA1(7c4a104e4fb3d0e5e8db7c911cdfb3f5c4fb0218)) - ROM_REGION(0x20000, INTERPRO_FLASH_TAG "_msb", 0) + ROM_REGION(0x20000, "flash_msb", 0) ROM_LOAD_OPTIONAL("y226.u67", 0x00000, 0x20000, CRC(54d95730) SHA1(a4e114dee1567d8aa31eed770f7cc366588f395c)) ROM_END ROM_START(ip2500) - ROM_REGION32_LE(0x80, INTERPRO_IDPROM_TAG, 0) + ROM_REGION32_LE(0x80, "idprom", 0) ROM_LOAD32_BYTE("msmt1000.bin", 0x0, 0x20, CRC(548046c0) SHA1(ce7646e868f3aa35642d7f9348f6b9e91693918e)) - ROM_REGION16_LE(0x20000, INTERPRO_EPROM_TAG, 0) + ROM_REGION16_LE(0x20000, "eprom", 0) ROM_SYSTEM_BIOS(0, "ip2500", "InterPro/InterServe 25x0 EPROM") ROMX_LOAD("ip2500_eprom.bin", 0x00000, 0x20000, NO_DUMP, ROM_BIOS(0)) - ROM_REGION(0x20000, INTERPRO_FLASH_TAG "_lsb", 0) + ROM_REGION(0x20000, "flash_lsb", 0) ROM_LOAD_OPTIONAL("y225.u76", 0x00000, 0x20000, CRC(46c0b105) SHA1(7c4a104e4fb3d0e5e8db7c911cdfb3f5c4fb0218)) - ROM_REGION(0x20000, INTERPRO_FLASH_TAG "_msb", 0) + ROM_REGION(0x20000, "flash_msb", 0) ROM_LOAD_OPTIONAL("y226.u67", 0x00000, 0x20000, CRC(54d95730) SHA1(a4e114dee1567d8aa31eed770f7cc366588f395c)) ROM_END ROM_START(ip2700) // feature[0] & 0x04: supports RETRY if clear - ROM_REGION32_LE(0x80, INTERPRO_IDPROM_TAG, 0) + ROM_REGION32_LE(0x80, "idprom", 0) ROM_LOAD32_BYTE("msmt1280.bin", 0x0, 0x20, CRC(32d833af) SHA1(7225c5f5670fe49d86556a2cb453ae6fe09e3e19)) - ROM_REGION16_LE(0x20000, INTERPRO_EPROM_TAG, 0) + ROM_REGION16_LE(0x20000, "eprom", 0) ROM_SYSTEM_BIOS(0, "ip2700", "InterPro/InterServe 27x0 EPROM") ROMX_LOAD("mprgz530a__9405181.u35", 0x00000, 0x20000, CRC(467ce7bd) SHA1(53faee40d5df311f53b24c930e434cbf94a5c4aa), ROM_BIOS(0)) - ROM_REGION(0x20000, INTERPRO_FLASH_TAG "_lsb", 0) + ROM_REGION(0x20000, "flash_lsb", 0) ROM_LOAD_OPTIONAL("y225.u76", 0x00000, 0x20000, CRC(46c0b105) SHA1(7c4a104e4fb3d0e5e8db7c911cdfb3f5c4fb0218)) - ROM_REGION(0x20000, INTERPRO_FLASH_TAG "_msb", 0) + ROM_REGION(0x20000, "flash_msb", 0) ROM_LOAD_OPTIONAL("y226.u67", 0x00000, 0x20000, CRC(54d95730) SHA1(a4e114dee1567d8aa31eed770f7cc366588f395c)) ROM_END ROM_START(ip2800) - ROM_REGION32_LE(0x80, INTERPRO_IDPROM_TAG, 0) + ROM_REGION32_LE(0x80, "idprom", 0) ROM_LOAD32_BYTE("msmt1450.bin", 0x0, 0x20, CRC(61c7a305) SHA1(efcd045cbdfda8df44eaad761b0ba99367973cd7)) - ROM_REGION16_LE(0x20000, INTERPRO_EPROM_TAG, 0) + ROM_REGION16_LE(0x20000, "eprom", 0) ROM_SYSTEM_BIOS(0, "ip2800", "InterPro/InterServe 28x0 EPROM") ROMX_LOAD("ip2800_eprom.bin", 0x00000, 0x20000, CRC(467ce7bd) SHA1(53faee40d5df311f53b24c930e434cbf94a5c4aa), ROM_BIOS(0)) - ROM_REGION(0x20000, INTERPRO_FLASH_TAG "_lsb", 0) + ROM_REGION(0x20000, "flash_lsb", 0) ROM_LOAD_OPTIONAL("y225.u76", 0x00000, 0x20000, CRC(46c0b105) SHA1(7c4a104e4fb3d0e5e8db7c911cdfb3f5c4fb0218)) - ROM_REGION(0x20000, INTERPRO_FLASH_TAG "_msb", 0) + ROM_REGION(0x20000, "flash_msb", 0) ROM_LOAD_OPTIONAL("y226.u67", 0x00000, 0x20000, CRC(54d95730) SHA1(a4e114dee1567d8aa31eed770f7cc366588f395c)) ROM_END ROM_START(ip6000) - ROM_REGION32_LE(0x80, INTERPRO_NODEID_TAG, 0) + ROM_REGION32_LE(0x80, "nodeid", 0) ROM_LOAD32_BYTE("nodeid.bin", 0x0, 0x20, CRC(a38397a6) SHA1(9f45fb932bbe231c95b3d5470dcd1fa1c846486f)) // feature[0] & 0x01: 1/4 bus clock if clear // feature[0] & 0x02: configurable console port if clear - ROM_REGION32_LE(0x80, INTERPRO_IDPROM_TAG, 0) + ROM_REGION32_LE(0x80, "idprom", 0) ROM_LOAD32_BYTE("mpcb765b.bin", 0x0, 0x20, CRC(6da05794) SHA1(fef8a9c17491f3d3ceb35c56a628f47d49166b57)) - ROM_REGION16_LE(0x40000, INTERPRO_EPROM_TAG, 0) + ROM_REGION16_LE(0x40000, "eprom", 0) ROM_SYSTEM_BIOS(0, "ip6000", "InterPro/InterServe 60x0 EPROM") ROMX_LOAD("mprgg360f__04_may_90v.u336", 0x00001, 0x20000, CRC(9e8b798b) SHA1(54412e26a468e038fb44ffa322ed3ddfae423c17), ROM_SKIP(1) | ROM_BIOS(0)) ROMX_LOAD("mprgg350f__04_may_90v.u349", 0x00000, 0x20000, CRC(32ab99fd) SHA1(202a6082bade8a084b8cd25109daff8443f6a5c7), ROM_SKIP(1) | ROM_BIOS(0)) ROM_END ROM_START(ip6400) - ROM_REGION32_LE(0x80, INTERPRO_IDPROM_TAG, 0) + ROM_REGION32_LE(0x80, "idprom", 0) ROM_LOAD32_BYTE("msmt046b.bin", 0x0, 0x20, CRC(3e8ffc77) SHA1(719a3f8b01bb506c9cb876506d63d167550bcd0a)) // FIXME: use 2400 eprom until we have a 6400 dump - ROM_REGION16_LE(0x20000, INTERPRO_EPROM_TAG, 0) + ROM_REGION16_LE(0x20000, "eprom", 0) ROM_SYSTEM_BIOS(0, "ip6400", "InterPro/InterServe 64x0 EPROM") ROMX_LOAD("ip6400_eprom.bin", 0x00000, 0x20000, BAD_DUMP CRC(3b2c4545) SHA1(4e4c98d1cd1035a04be8527223f44d0b687ec3ef), ROM_BIOS(0)) - ROM_REGION(0x20000, INTERPRO_FLASH_TAG "_lsb", 0) + ROM_REGION(0x20000, "flash_lsb", 0) ROM_LOAD_OPTIONAL("flash.lsb", 0x00000, 0x20000, CRC(46c0b105) SHA1(7c4a104e4fb3d0e5e8db7c911cdfb3f5c4fb0218)) - ROM_REGION(0x20000, INTERPRO_FLASH_TAG "_msb", 0) + ROM_REGION(0x20000, "flash_msb", 0) ROM_LOAD_OPTIONAL("flash.msb", 0x00000, 0x20000, CRC(54d95730) SHA1(a4e114dee1567d8aa31eed770f7cc366588f395c)) ROM_END ROM_START(ip6700) - ROM_REGION32_LE(0x80, INTERPRO_IDPROM_TAG, 0) + ROM_REGION32_LE(0x80, "idprom", 0) ROM_LOAD32_BYTE("msmt127b.bin", 0x0, 0x20, CRC(cc112f65) SHA1(8533a31b4733fd91bb87effcd276fc93f2858629)) - ROM_REGION16_LE(0x20000, INTERPRO_EPROM_TAG, 0) + ROM_REGION16_LE(0x20000, "eprom", 0) ROM_SYSTEM_BIOS(0, "ip6700", "InterPro/InterServe 67x0 EPROM") ROMX_LOAD("mprgz530a.u144", 0x00000, 0x20000, CRC(467ce7bd) SHA1(53faee40d5df311f53b24c930e434cbf94a5c4aa), ROM_BIOS(0)) - ROM_REGION(0x20000, INTERPRO_FLASH_TAG "_lsb", 0) + ROM_REGION(0x20000, "flash_lsb", 0) ROM_LOAD_OPTIONAL("y225.u117", 0x00000, 0x20000, CRC(46c0b105) SHA1(7c4a104e4fb3d0e5e8db7c911cdfb3f5c4fb0218)) - ROM_REGION(0x20000, INTERPRO_FLASH_TAG "_msb", 0) + ROM_REGION(0x20000, "flash_msb", 0) ROM_LOAD_OPTIONAL("y226.u130", 0x00000, 0x20000, CRC(54d95730) SHA1(a4e114dee1567d8aa31eed770f7cc366588f395c)) ROM_END ROM_START(ip6800) - ROM_REGION32_LE(0x80, INTERPRO_IDPROM_TAG, 0) + ROM_REGION32_LE(0x80, "idprom", 0) ROM_LOAD32_BYTE("msmt127b.bin", 0x0, 0x20, CRC(cc112f65) SHA1(8533a31b4733fd91bb87effcd276fc93f2858629)) - ROM_REGION16_LE(0x20000, INTERPRO_EPROM_TAG, 0) + ROM_REGION16_LE(0x20000, "eprom", 0) ROM_SYSTEM_BIOS(0, "ip6800", "InterPro/InterServe 68x0 EPROM") ROMX_LOAD("mprgz530a__9406270.u144", 0x00000, 0x20000, CRC(467ce7bd) SHA1(53faee40d5df311f53b24c930e434cbf94a5c4aa), ROM_BIOS(0)) - ROM_REGION(0x20000, INTERPRO_FLASH_TAG "_lsb", 0) + ROM_REGION(0x20000, "flash_lsb", 0) ROM_LOAD_OPTIONAL("y225.u117", 0x00000, 0x20000, CRC(46c0b105) SHA1(7c4a104e4fb3d0e5e8db7c911cdfb3f5c4fb0218)) - ROM_REGION(0x20000, INTERPRO_FLASH_TAG "_msb", 0) + ROM_REGION(0x20000, "flash_msb", 0) ROM_LOAD_OPTIONAL("y226.u130", 0x00000, 0x20000, CRC(54d95730) SHA1(a4e114dee1567d8aa31eed770f7cc366588f395c)) ROM_END +} + /* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ COMP( 1990, ip2000, 0, 0, ip2000, 0, turquoise_state, init_common,"Intergraph", "InterPro/InterServe 20x0", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) COMP( 1992, ip2400, 0, 0, ip2400, 0, cbus_sapphire_state, init_common,"Intergraph", "InterPro/InterServe 24x0", MACHINE_NOT_WORKING | MACHINE_NO_SOUND_HW) diff --git a/src/mame/drivers/jazz.cpp b/src/mame/drivers/jazz.cpp index 88909d5bab0..53eb96edd66 100644 --- a/src/mame/drivers/jazz.cpp +++ b/src/mame/drivers/jazz.cpp @@ -56,7 +56,43 @@ #include "emu.h" -#include "includes/jazz.h" +#include "cpu/mips/r4000.h" + + // memory +#include "machine/ram.h" +#include "machine/nvram.h" +#include "machine/28fxxx.h" + +// various hardware +#include "machine/mct_adr.h" +#include "machine/dp83932c.h" +#include "machine/mc146818.h" +#include "machine/ins8250.h" +#include "machine/ncr5390.h" +#include "machine/upd765.h" +#include "machine/at_keybc.h" +#include "machine/pc_lpt.h" +#include "machine/i82357.h" + +// video +#include "screen.h" +#include "video/ims_cvc.h" + +// audio +#include "sound/spkrdev.h" +#include "speaker.h" + +// busses and connectors +#include "machine/nscsi_bus.h" +#include "bus/nscsi/cd.h" +#include "bus/nscsi/hd.h" +#include "bus/rs232/rs232.h" +#include "bus/pc_kbd/pc_kbdc.h" +#include "bus/pc_kbd/keyboards.h" + +#include "imagedev/floppy.h" +#include "formats/pc_dsk.h" +#include "softlist.h" #include "debugger.h" @@ -65,6 +101,83 @@ #define VERBOSE 0 #include "logmacro.h" +namespace { + +class jazz_state : public driver_device +{ +public: + jazz_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_cpu(*this, "cpu") + , m_ram(*this, "ram") + , m_vram(*this, "vram") + , m_mct_adr(*this, "mct_adr") + , m_scsibus(*this, "scsi") + , m_scsi(*this, "scsi:7:ncr53c94") + , m_fdc(*this, "fdc") + , m_rtc(*this, "rtc") + , m_nvram(*this, "nvram") + , m_flash(*this, "flash") + , m_kbdc(*this, "kbdc") + , m_net(*this, "net") + , m_screen(*this, "screen") + , m_cvc(*this, "g364") + , m_ace(*this, "ace%u", 0) + , m_lpt(*this, "lpt") + , m_isp(*this, "isp") + , m_buzzer(*this, "buzzer") + , m_softlist(*this, "softlist") + , m_led(*this, "led0") + { + } + +protected: + // driver_device overrides + virtual void machine_start() override; + virtual void machine_reset() override; + + // address maps + void cpu_map(address_map &map); + void mct_map(address_map &map); + + // machine config + void jazz(machine_config &config); + + void led_w(u8 data); + +public: + void mmr4000be(machine_config &config); + void mmr4000le(machine_config &config); + + void init_common(); + + DECLARE_FLOPPY_FORMATS(floppy_formats); + +protected: + // devices + required_device<r4000_device> m_cpu; + required_device<ram_device> m_ram; + required_device<ram_device> m_vram; + required_device<mct_adr_device> m_mct_adr; + required_device<nscsi_bus_device> m_scsibus; + required_device<ncr53c94_device> m_scsi; + required_device<n82077aa_device> m_fdc; + required_device<mc146818_device> m_rtc; + required_device<nvram_device> m_nvram; + required_device<amd_28f020_device> m_flash; + required_device<ps2_keyboard_controller_device> m_kbdc; + required_device<dp83932c_device> m_net; + required_device<screen_device> m_screen; + required_device<g364_device> m_cvc; + required_device_array<ns16550_device, 2> m_ace; + required_device<pc_lpt_device> m_lpt; + required_device<i82357_device> m_isp; + required_device<speaker_sound_device> m_buzzer; + required_device<software_list_device> m_softlist; + + output_finder<> m_led; +}; + void jazz_state::machine_start() { m_led.resolve(); @@ -395,6 +508,8 @@ ROM_START(mmr4000le) ROM_LOAD64_BYTE("mips_g364.bin", 0x000000, 0x020000, CRC(be6a726e) SHA1(225c198f6a7f8445dac3de052ecceecbb5be6bc7) BAD_DUMP) ROM_END +} + /* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ COMP(1992, mmr4000be, 0, 0, mmr4000be, 0, jazz_state, init_common, "MIPS", "Magnum R4000 (be)", MACHINE_NO_SOUND) COMP(1992, mmr4000le, 0, 0, mmr4000le, 0, jazz_state, init_common, "MIPS", "Magnum R4000 (le)", MACHINE_NO_SOUND) diff --git a/src/mame/drivers/jensen.cpp b/src/mame/drivers/jensen.cpp index 691669a5652..cb90a892268 100644 --- a/src/mame/drivers/jensen.cpp +++ b/src/mame/drivers/jensen.cpp @@ -24,14 +24,77 @@ */ #include "emu.h" -#include "includes/jensen.h" +#include "cpu/alpha/alpha.h" #include "cpu/alpha/alphad.h" + // memory +#include "machine/ram.h" +#include "machine/xc1700e.h" +#include "machine/intelfsh.h" + +// various hardware +#include "machine/i82357.h" + +// busses and connectors +#include "bus/rs232/rs232.h" +#include "bus/pc_kbd/pc_kbdc.h" +#include "bus/pc_kbd/keyboards.h" + #include "debugger.h" #define VERBOSE 0 #include "logmacro.h" +namespace { + +class jensen_state : public driver_device +{ +public: + jensen_state(const machine_config &mconfig, device_type type, const char *tag) + : driver_device(mconfig, type, tag) + , m_cpu(*this, "cpu") + , m_ram(*this, "ram") + , m_srom(*this, "srom") + , m_feprom(*this, "feprom%u", 0) + , m_isp(*this, "isp") + { + } + + // machine config + void jensen(machine_config &config); + + void d2k300axp(machine_config &config); + void d2k500axp(machine_config &config); + void dpcaxp150(machine_config &config); + + void init_common(); + +protected: + // driver_device overrides + virtual void machine_start() override; + virtual void machine_reset() override; + + // address maps + void local_memory(address_map &map); + void local_io(address_map &map); + void eisa_memory(address_map &map); + void eisa_io(address_map &map); + +private: + // devices + required_device<alpha_device> m_cpu; + required_device<ram_device> m_ram; + required_device<xc1765e_device> m_srom; + required_device_array<intel_e28f008sa_device, 2> m_feprom; + + required_device<i82357_device> m_isp; + + // machine state + u8 m_hae; + u8 m_sysctl; + u8 m_spare; +}; + void jensen_state::machine_start() { } @@ -242,6 +305,8 @@ ROM_START(dpcaxp150) ROMX_LOAD("001z5__bl07.vff", 0x00000, 0x100000, CRC(99238153) SHA1(ce543bd11937bdf24c4d9e898e917438c2163a20), ROM_BIOS(3)) ROM_END +} + /* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ COMP( 1993, d2k300axp, 0, 0, d2k300axp, 0, jensen_state, init_common, "DEC", "DEC 2000 Model 300 AXP", MACHINE_IS_SKELETON) COMP( 1993, d2k500axp, 0, 0, d2k500axp, 0, jensen_state, init_common, "DEC", "DEC 2000 Model 500 AXP", MACHINE_IS_SKELETON) diff --git a/src/mame/drivers/mips.cpp b/src/mame/drivers/mips.cpp index d6766ac8499..af8fcd37f1a 100644 --- a/src/mame/drivers/mips.cpp +++ b/src/mame/drivers/mips.cpp @@ -200,7 +200,44 @@ #include "emu.h" -#include "includes/mips.h" +// processors and memory +#include "cpu/mips/mips1.h" +#include "cpu/nec/v5x.h" +#include "machine/ram.h" + +// i/o devices (common) +#include "machine/at_keybc.h" +#include "machine/z80scc.h" +#include "machine/upd765.h" +#include "machine/am79c90.h" + +// i/o devices (rx2030) +#include "machine/mc146818.h" +#include "machine/z8038.h" +#include "machine/aic6250.h" + +// i/o devices (rx3230) +#include "machine/timekpr.h" +#include "machine/ncr5390.h" +#include "machine/mips_rambo.h" + +// busses and connectors +#include "machine/nscsi_bus.h" +#include "bus/nscsi/cd.h" +#include "bus/nscsi/hd.h" + +#include "bus/pc_kbd/pc_kbdc.h" +#include "bus/pc_kbd/keyboards.h" +#include "bus/rs232/rs232.h" + +// video and audio +#include "screen.h" +#include "video/bt45x.h" +#include "video/bt459.h" +#include "sound/spkrdev.h" +#include "speaker.h" + +#include "formats/pc_dsk.h" #include "imagedev/floppy.h" @@ -215,12 +252,202 @@ namespace { +class rx2030_state : public driver_device +{ +public: + rx2030_state(machine_config const &mconfig, device_type type, char const *tag) + : driver_device(mconfig, type, tag) + , m_cpu(*this, "cpu") + , m_iop(*this, "iop") + , m_ram(*this, "ram") + , m_rom(*this, "rx2030") + , 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_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") + { + } + + // 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 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); + + u16 lance_r(offs_t offset, u16 mem_mask = 0xffff); + void lance_w(offs_t offset, u16 data, u16 mem_mask = 0xffff); + + u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, rectangle const &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<r2000a_device> m_cpu; + required_device<v50_device> m_iop; + required_device<ram_device> m_ram; + required_region_ptr<u16> m_rom; + + // 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<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_shared_ptr<u32> m_vram; + + // machine state + u16 m_mmu[32]; + + u8 m_iop_interface; +}; + +class rx3230_state : public driver_device +{ +public: + rx3230_state(machine_config const &mconfig, device_type type, char const *tag) + : driver_device(mconfig, type, tag) + , m_cpu(*this, "cpu") + , m_ram(*this, "ram") + , m_rom(*this, "rx3230") + , m_rambo(*this, "rambo") + , m_scsibus(*this, "scsi") + , m_scsi(*this, "scsi:7:ncr53c94") + , m_net(*this, "net") + , m_scc(*this, "scc") + , m_tty(*this, "tty%u", 0U) + , m_rtc(*this, "rtc") + , m_fdc(*this, "fdc") + , m_kbdc(*this, "kbdc") + , m_kbd(*this, "kbd") + , m_buzzer(*this, "buzzer") + , m_screen(*this, "screen") + , m_ramdac(*this, "ramdac") + , m_vram(*this, "vram") + { + } + + // machine config + void rx3230(machine_config &config); + void rs3230(machine_config &config); + void rc3230(machine_config &config); + + void rx3230_init(); + +protected: + // driver_device overrides + virtual void machine_start() override; + virtual void machine_reset() override; + + // address maps + void rx3230_map(address_map &map); + void rs3230_map(address_map &map); + + u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, rectangle const &cliprect); + + u16 lance_r(offs_t offset, u16 mem_mask = 0xffff); + void lance_w(offs_t offset, u16 data, u16 mem_mask = 0xffff); + + template <u8 Source> WRITE_LINE_MEMBER(irq_w); + +private: + // processors and memory + required_device<r3000a_device> m_cpu; + required_device<ram_device> m_ram; + required_region_ptr<u32> m_rom; + + // i/o devices + required_device<mips_rambo_device> m_rambo; + required_device<nscsi_bus_device> m_scsibus; + required_device<ncr53c94_device> m_scsi; + required_device<am7990_device> m_net; + required_device<z80scc_device> m_scc; + required_device_array<rs232_port_device, 2> m_tty; + required_device<m48t02_device> m_rtc; + required_device<i82072_device> m_fdc; + required_device<at_keyboard_controller_device> m_kbdc; + required_device<pc_kbdc_slot_device> m_kbd; + required_device<speaker_sound_device> m_buzzer; + + // optional colour video board + optional_device<screen_device> m_screen; + optional_device<bt459_device> m_ramdac; + optional_device<ram_device> m_vram; + + enum int_reg_mask : u8 + { + INT_SLOT = 0x01, // expansion slot + INT_KBD = 0x02, // keyboard controller + INT_SCC = 0x04, // serial controller + INT_SCSI = 0x08, // scsi controller + INT_NET = 0x10, // ethernet controller + INT_DRS = 0x20, // data rate select + INT_DSR = 0x40, // data set ready + INT_CEB = 0x80, // modem call indicator + + INT_CLR = 0xff, + }; + + enum gfx_reg_mask : u8 + { + GFX_H_BLANK = 0x10, + GFX_V_BLANK = 0x20, + GFX_COLOR_RSV = 0xce, // reserved + }; + + u8 m_int_reg; + int m_int0_state; + int m_int1_state; +}; + FLOPPY_FORMATS_MEMBER(mips_floppy_formats) FLOPPY_PC_FORMAT FLOPPY_FORMATS_END -} // anonymous namespace - void rx2030_state::machine_start() { save_item(NAME(m_mmu)); @@ -1043,6 +1270,8 @@ ROM_END #define rom_rc3230 rom_rx3230 #define rom_rs3230 rom_rx3230 +} + /* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ COMP(1989, rc2030, 0, 0, rc2030, 0, rx2030_state, rx2030_init, "MIPS", "RC2030", 0) COMP(1989, rs2030, 0, 0, rs2030, 0, rx2030_state, rx2030_init, "MIPS", "RS2030", 0) diff --git a/src/mame/includes/interpro.h b/src/mame/includes/interpro.h deleted file mode 100644 index 9b90fd28fc6..00000000000 --- a/src/mame/includes/interpro.h +++ /dev/null @@ -1,409 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Patrick Mackinlay - -#ifndef MAME_INCLUDES_INTERPRO_H -#define MAME_INCLUDES_INTERPRO_H - -#pragma once - -#include "cpu/clipper/clipper.h" -#include "machine/cammu.h" - -#include "machine/interpro_ioga.h" -#include "machine/interpro_mcga.h" -#include "machine/interpro_sga.h" -#include "machine/interpro_arbga.h" - -#include "imagedev/floppy.h" -#include "machine/ram.h" -#include "machine/28fxxx.h" -#include "machine/mc146818.h" -#include "machine/z80scc.h" -#include "machine/upd765.h" -#include "machine/i82586.h" - -#include "machine/ncr5390.h" -#include "machine/nscsi_bus.h" -#include "bus/nscsi/cd.h" -#include "bus/nscsi/hd.h" - -#include "bus/rs232/rs232.h" - -#include "bus/interpro/sr/sr.h" -#include "bus/interpro/sr/sr_cards.h" -#include "bus/interpro/keyboard/keyboard.h" -#include "bus/interpro/mouse/mouse.h" - -#include "formats/pc_dsk.h" -#include "softlist.h" - -#define INTERPRO_CPU_TAG "cpu" -#define INTERPRO_MMU_TAG "cammu" -#define INTERPRO_MCGA_TAG "mcga" -#define INTERPRO_SGA_TAG "sga" -#define INTERPRO_FDC_TAG "fdc" -#define INTERPRO_ARBGA_TAG "arbga" -#define INTERPRO_SCC1_TAG "scc1" -#define INTERPRO_SCC2_TAG "scc2" -#define INTERPRO_SERIAL_PORT0_TAG "serial0" -#define INTERPRO_SERIAL_PORT1_TAG "serial1" -#define INTERPRO_SERIAL_PORT2_TAG "serial2" -#define INTERPRO_KEYBOARD_PORT_TAG "kbd" -#define INTERPRO_MOUSE_PORT_TAG "mse" -#define INTERPRO_RTC_TAG "rtc" -#define INTERPRO_SCSI_TAG "scsi" -#define INTERPRO_SCSI_ADAPTER_TAG "host" -#define INTERPRO_SCSI_DEVICE_TAG INTERPRO_SCSI_TAG ":7:" INTERPRO_SCSI_ADAPTER_TAG -#define INTERPRO_ETH_TAG "eth" -#define INTERPRO_IOGA_TAG "ioga" - -#define INTERPRO_NODEID_TAG "nodeid" -#define INTERPRO_IDPROM_TAG "idprom" -#define INTERPRO_EPROM_TAG "eprom" -#define INTERPRO_FLASH_TAG "flash" - -#define INTERPRO_SLOT_TAG "slot" - -class interpro_state : public driver_device -{ -public: - interpro_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) - , m_maincpu(*this, INTERPRO_CPU_TAG) - , m_ram(*this, RAM_TAG) - , m_mcga(*this, INTERPRO_MCGA_TAG) - , m_sga(*this, INTERPRO_SGA_TAG) - , m_fdc(*this, INTERPRO_FDC_TAG) - , m_scc1(*this, INTERPRO_SCC1_TAG) - , m_scc2(*this, INTERPRO_SCC2_TAG) - , m_rtc(*this, INTERPRO_RTC_TAG) - , m_scsibus(*this, INTERPRO_SCSI_TAG) - , m_eth(*this, INTERPRO_ETH_TAG) - , m_ioga(*this, INTERPRO_IOGA_TAG) - , m_eprom(*this, INTERPRO_EPROM_TAG) - , m_softlist(*this, "softlist") - , m_diag_led(*this, "digit0") - { - } - - required_device<clipper_device> m_maincpu; - required_device<ram_device> m_ram; - - required_device<interpro_mcga_device> m_mcga; - required_device<interpro_sga_device> m_sga; - required_device<upd765_family_device> m_fdc; - required_device<z80scc_device> m_scc1; - required_device<z80scc_device> m_scc2; - required_device<mc146818_device> m_rtc; - required_device<nscsi_bus_device> m_scsibus; - required_device<i82586_base_device> m_eth; - required_device<interpro_ioga_device> m_ioga; - required_region_ptr<u16> m_eprom; - - required_device<software_list_device> m_softlist; - - void init_common(); - - virtual u32 unmapped_r(address_space &space, offs_t offset); - virtual void unmapped_w(offs_t offset, u32 data); - - enum error_mask : u16 - { - ERROR_BPID4 = 0x0001, - ERROR_SRXMMBE = 0x0002, - ERROR_SRXHOG = 0x0004, - ERROR_SRXNEM = 0x0008, - ERROR_SRXVALID = 0x0010, - ERROR_CBUSNMI = 0x0020, - ERROR_CBUSBG = 0x00c0, - ERROR_BG = 0x0070, - ERROR_BUSHOG = 0x0080 - }; - u16 error_r(); - - void led_w(offs_t offset, u16 data, u16 mem_mask = ~0); - - enum status_mask : u16 - { - STATUS_YELLOW_ZONE = 0x0001, - STATUS_SRNMI = 0x0002, - STATUS_PWRLOSS = 0x0004, - STATUS_RED_ZONE = 0x0008, - STATUS_BP = 0x00f0 - }; - u16 status_r() { return m_status; } - - virtual u16 ctrl1_r() = 0; - virtual void ctrl1_w(offs_t offset, u16 data, u16 mem_mask = ~0) = 0; - virtual u16 ctrl2_r() = 0; - virtual void ctrl2_w(offs_t offset, u16 data, u16 mem_mask = ~0) = 0; - - u8 nodeid_r(address_space &space, offs_t offset); - - DECLARE_FLOPPY_FORMATS(floppy_formats); - - void ioga(machine_config &config); - void interpro_serial(machine_config &config); - void interpro(machine_config &config); - static void interpro_scsi_adapter(device_t *device); - static void interpro_cdrom(device_t *device); - void interpro_boot_map(address_map &map); - void interpro_common_map(address_map &map); - -protected: - virtual void machine_start() override; - virtual void machine_reset() override; - - output_finder<> m_diag_led; - emu_timer *m_reset_timer; - - u16 m_error; - u16 m_status; - u16 m_led; -}; - -class emerald_state : public interpro_state -{ -public: - emerald_state(const machine_config &mconfig, device_type type, const char *tag) - : interpro_state(mconfig, type, tag) - , m_d_cammu(*this, INTERPRO_MMU_TAG "_d") - , m_i_cammu(*this, INTERPRO_MMU_TAG "_i") - , m_scsi(*this, INTERPRO_SCSI_DEVICE_TAG) - , m_bus(*this, INTERPRO_SLOT_TAG) - { - } - - void error_w(u8 data) { m_error = data; } - - enum ctrl1_mask : u16 - { - CTRL1_FLOPLOW = 0x0001, // 3.5" floppy select - CTRL1_FLOPRDY = 0x0002, // floppy ready enable? - CTRL1_LEDENA = 0x0004, // led display enable - CTRL1_LEDDP = 0x0008, // led right decimal point enable - CTRL1_ETHLOOP = 0x0010, // ethernet loopback enable? - CTRL1_ETHDTR = 0x0020, // modem dtr pin enable? - CTRL1_ETHRMOD = 0x0040, // remote modem configured (read)? - CTRL1_CLIPRESET = 0x0040, // hard reset (write)? - CTRL1_FIFOACTIVE = 0x0080 // plotter fifo active? - }; - u16 ctrl1_r() override { return m_ctrl1; } - void ctrl1_w(offs_t offset, u16 data, u16 mem_mask = ~0) override; - - enum ctrl2_mask : u16 - { - CTRL2_PWRUP = 0x0001, // power supply voltage adjust? - CRTL2_PWRENA = 0x0002, // ? - CTRL2_HOLDOFF = 0x0004, // power supply shut down delay - CTRL2_EXTNMIENA = 0x0008, // power nmi enable - CTRL2_COLDSTART = 0x0010, // cold start flag - CTRL2_RESET = 0x0020, // soft reset - CTRL2_BUSENA = 0x0040, // clear bus grant error - CTRL2_FRCPARITY = 0x0080, // ? - - CTRL2_WMASK = 0x000f - }; - u16 ctrl2_r() override { return m_ctrl2; } - void ctrl2_w(offs_t offset, u16 data, u16 mem_mask = ~0) override; - - required_device<cammu_c3_device> m_d_cammu; - required_device<cammu_c3_device> m_i_cammu; - required_device<ncr53c90a_device> m_scsi; - required_device<srx_bus_device> m_bus; - - void emerald(machine_config &config); - void ip6000(machine_config &config); - void interpro_82586_map(address_map &map); - void emerald_base_map(address_map &map); - void emerald_main_map(address_map &map); - void emerald_io_map(address_map &map); - -protected: - virtual void machine_start() override; - virtual void machine_reset() override; - -private: - u16 m_ctrl1; - u16 m_ctrl2; -}; - -class turquoise_state : public interpro_state -{ -public: - turquoise_state(const machine_config &mconfig, device_type type, const char *tag) - : interpro_state(mconfig, type, tag) - , m_d_cammu(*this, INTERPRO_MMU_TAG "_d") - , m_i_cammu(*this, INTERPRO_MMU_TAG "_i") - , m_kbd_port(*this, INTERPRO_KEYBOARD_PORT_TAG) - , m_mse_port(*this, INTERPRO_MOUSE_PORT_TAG) - , m_scsi(*this, INTERPRO_SCSI_DEVICE_TAG) - , m_bus(*this, INTERPRO_SLOT_TAG) - { - } - - void error_w(u8 data) { m_error = data; } - - enum ctrl1_mask : u16 - { - CTRL1_FLOPLOW = 0x0001, // 3.5" floppy select - CTRL1_FLOPRDY = 0x0002, // floppy ready enable? - CTRL1_LEDENA = 0x0004, // led display enable - CTRL1_LEDDP = 0x0008, // led right decimal point enable - CTRL1_ETHLOOP = 0x0010, // ethernet loopback enable? - CTRL1_ETHDTR = 0x0020, // modem dtr pin enable? - CTRL1_ETHRMOD = 0x0040, // remote modem configured (read)? - CTRL1_CLIPRESET = 0x0040, // hard reset (write)? - CTRL1_FIFOACTIVE = 0x0080 // plotter fifo active? - }; - u16 ctrl1_r() override { return m_ctrl1; } - void ctrl1_w(offs_t offset, u16 data, u16 mem_mask = ~0) override; - - enum ctrl2_mask : u16 - { - CTRL2_PWRUP = 0x0001, // power supply voltage adjust? - CRTL2_PWRENA = 0x0002, // ? - CTRL2_HOLDOFF = 0x0004, // power supply shut down delay - CTRL2_EXTNMIENA = 0x0008, // power nmi enable - CTRL2_COLDSTART = 0x0010, // cold start flag - CTRL2_RESET = 0x0020, // soft reset - CTRL2_BUSENA = 0x0040, // clear bus grant error - CTRL2_FRCPARITY = 0x0080, // ? - - CTRL2_WMASK = 0x000f - }; - u16 ctrl2_r() override { return m_ctrl2; } - void ctrl2_w(offs_t offset, u16 data, u16 mem_mask = ~0) override; - - required_device<cammu_c3_device> m_d_cammu; - required_device<cammu_c3_device> m_i_cammu; - required_device<interpro_keyboard_port_device> m_kbd_port; - required_device<interpro_mouse_port_device> m_mse_port; - required_device<ncr53c90a_device> m_scsi; - required_device<cbus_bus_device> m_bus; - - void turquoise(machine_config &config); - void ip2000(machine_config &config); - void interpro_82586_map(address_map &map); - void turquoise_base_map(address_map &map); - void turquoise_main_map(address_map &map); - void turquoise_io_map(address_map &map); - -protected: - virtual void machine_start() override; - virtual void machine_reset() override; - -private: - u16 m_ctrl1; - u16 m_ctrl2; -}; - -class sapphire_state : public interpro_state -{ -public: - sapphire_state(const machine_config &mconfig, device_type type, const char *tag) - : interpro_state(mconfig, type, tag) - , m_mmu(*this, INTERPRO_MMU_TAG) - , m_scsi(*this, INTERPRO_SCSI_DEVICE_TAG) - , m_arbga(*this, INTERPRO_ARBGA_TAG) - , m_flash_lsb(*this, INTERPRO_FLASH_TAG "_lsb") - , m_flash_msb(*this, INTERPRO_FLASH_TAG "_msb") - { - } - - virtual u32 unmapped_r(address_space &space, offs_t offset) override; - virtual void unmapped_w(offs_t offset, u32 data) override; - - enum ctrl1_mask : u16 - { - CTRL1_FLOPLOW = 0x0001, // 3.5" floppy select - // unused - CTRL1_LEDENA = 0x0004, // led display enable - CTRL1_LEDDP = 0x0008, // led right decimal point enable - CTRL1_MMBE = 0x0010, // mmbe enable - CTRL1_ETHDTR = 0x0020, // modem dtr pin enable - CTRL1_ETHRMOD = 0x0040, // 0 = sytem configured for remote modems - CTRL1_FIFOACTIVE = 0x0080 // 0 = plotter fifos reset - }; - u16 ctrl1_r() override { return m_ctrl1; } - void ctrl1_w(offs_t offset, u16 data, u16 mem_mask = ~0) override; - - enum ctrl2_mask : u16 - { - CTRL2_PWRUP = 0x0003, // power supply voltage adjust - CTRL2_HOLDOFF = 0x0004, // power supply shut down delay - CTRL2_EXTNMIENA = 0x0008, // power nmi enable - CTRL2_COLDSTART = 0x0010, // cold start flag - CTRL2_RESET = 0x0020, // soft reset - CTRL2_BUSENA = 0x0040, // clear bus grant error - CTRL2_FLASHEN = 0x0080, // flash eprom write enable - }; - u16 ctrl2_r() override { return m_ctrl2; } - void ctrl2_w(offs_t offset, u16 data, u16 mem_mask = ~0) override; - - required_device<cammu_c4_device> m_mmu; - required_device<ncr53c94_device> m_scsi; - required_device<interpro_arbga_device> m_arbga; - required_device<intel_28f010_device> m_flash_lsb; - required_device<intel_28f010_device> m_flash_msb; - - void sapphire(machine_config &config); - - void interpro_82596_map(address_map &map); - void sapphire_base_map(address_map &map); - void sapphire_main_map(address_map &map); - void sapphire_io_map(address_map &map); - -protected: - virtual void machine_start() override; - virtual void machine_reset() override; - -private: - u16 m_ctrl1; - u16 m_ctrl2; -}; - -class cbus_sapphire_state : public sapphire_state -{ -public: - cbus_sapphire_state(const machine_config &mconfig, device_type type, const char *tag) - : sapphire_state(mconfig, type, tag) - , m_kbd_port(*this, INTERPRO_KEYBOARD_PORT_TAG) - , m_mse_port(*this, INTERPRO_MOUSE_PORT_TAG) - , m_bus(*this, INTERPRO_SLOT_TAG) - { - } - - void cbus_sapphire(machine_config &config); - - void ip2500(machine_config &config); - void ip2400(machine_config &config); - void ip2700(machine_config &config); - void ip2800(machine_config &config); - -protected: - required_device<interpro_keyboard_port_device> m_kbd_port; - required_device<interpro_mouse_port_device> m_mse_port; - required_device<cbus_bus_device> m_bus; -}; - -class srx_sapphire_state : public sapphire_state -{ -public: - srx_sapphire_state(const machine_config &mconfig, device_type type, const char *tag) - : sapphire_state(mconfig, type, tag) - , m_bus(*this, INTERPRO_SLOT_TAG) - { - } - - void srx_sapphire(machine_config &config); - - void ip6400(machine_config &config); - void ip6700(machine_config &config); - void ip6800(machine_config &config); - -protected: - required_device<srx_bus_device> m_bus; -}; - -#endif // MAME_INCLUDES_INTERPRO_H diff --git a/src/mame/includes/jazz.h b/src/mame/includes/jazz.h deleted file mode 100644 index f774608e62f..00000000000 --- a/src/mame/includes/jazz.h +++ /dev/null @@ -1,122 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Patrick Mackinlay - -#ifndef MAME_INCLUDES_JAZZ_H -#define MAME_INCLUDES_JAZZ_H - -#pragma once - -#include "cpu/mips/r4000.h" - -// memory -#include "machine/ram.h" -#include "machine/nvram.h" -#include "machine/28fxxx.h" - -// various hardware -#include "machine/mct_adr.h" -#include "machine/dp83932c.h" -#include "machine/mc146818.h" -#include "machine/ins8250.h" -#include "machine/ncr5390.h" -#include "machine/upd765.h" -#include "machine/at_keybc.h" -#include "machine/pc_lpt.h" -#include "machine/i82357.h" - -// video -#include "screen.h" -#include "video/ims_cvc.h" - -// audio -#include "sound/spkrdev.h" -#include "speaker.h" - -// busses and connectors -#include "machine/nscsi_bus.h" -#include "bus/nscsi/cd.h" -#include "bus/nscsi/hd.h" -#include "bus/rs232/rs232.h" -#include "bus/pc_kbd/pc_kbdc.h" -#include "bus/pc_kbd/keyboards.h" - -#include "imagedev/floppy.h" -#include "formats/pc_dsk.h" -#include "softlist.h" - -class jazz_state : public driver_device -{ -public: - jazz_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) - , m_cpu(*this, "cpu") - , m_ram(*this, "ram") - , m_vram(*this, "vram") - , m_mct_adr(*this, "mct_adr") - , m_scsibus(*this, "scsi") - , m_scsi(*this, "scsi:7:ncr53c94") - , m_fdc(*this, "fdc") - , m_rtc(*this, "rtc") - , m_nvram(*this, "nvram") - , m_flash(*this, "flash") - , m_kbdc(*this, "kbdc") - , m_net(*this, "net") - , m_screen(*this, "screen") - , m_cvc(*this, "g364") - , m_ace(*this, "ace%u", 0) - , m_lpt(*this, "lpt") - , m_isp(*this, "isp") - , m_buzzer(*this, "buzzer") - , m_softlist(*this, "softlist") - , m_led(*this, "led0") - { - } - -protected: - // driver_device overrides - virtual void machine_start() override; - virtual void machine_reset() override; - - // address maps - void cpu_map(address_map &map); - void mct_map(address_map &map); - - // machine config - void jazz(machine_config &config); - - void led_w(u8 data); - -public: - void mmr4000be(machine_config &config); - void mmr4000le(machine_config &config); - - void init_common(); - - DECLARE_FLOPPY_FORMATS(floppy_formats); - -protected: - // devices - required_device<r4000_device> m_cpu; - required_device<ram_device> m_ram; - required_device<ram_device> m_vram; - required_device<mct_adr_device> m_mct_adr; - required_device<nscsi_bus_device> m_scsibus; - required_device<ncr53c94_device> m_scsi; - required_device<n82077aa_device> m_fdc; - required_device<mc146818_device> m_rtc; - required_device<nvram_device> m_nvram; - required_device<amd_28f020_device> m_flash; - required_device<ps2_keyboard_controller_device> m_kbdc; - required_device<dp83932c_device> m_net; - required_device<screen_device> m_screen; - required_device<g364_device> m_cvc; - required_device_array<ns16550_device, 2> m_ace; - required_device<pc_lpt_device> m_lpt; - required_device<i82357_device> m_isp; - required_device<speaker_sound_device> m_buzzer; - required_device<software_list_device> m_softlist; - - output_finder<> m_led; -}; - -#endif // MAME_INCLUDES_JAZZ_H diff --git a/src/mame/includes/jensen.h b/src/mame/includes/jensen.h deleted file mode 100644 index bb253c49353..00000000000 --- a/src/mame/includes/jensen.h +++ /dev/null @@ -1,72 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Patrick Mackinlay - -#ifndef MAME_INCLUDES_JENSEN_H -#define MAME_INCLUDES_JENSEN_H - -#pragma once - -#include "cpu/alpha/alpha.h" - -// memory -#include "machine/ram.h" -#include "machine/xc1700e.h" -#include "machine/intelfsh.h" - -// various hardware -#include "machine/i82357.h" - -// busses and connectors -#include "bus/rs232/rs232.h" -#include "bus/pc_kbd/pc_kbdc.h" -#include "bus/pc_kbd/keyboards.h" - -class jensen_state : public driver_device -{ -public: - jensen_state(const machine_config &mconfig, device_type type, const char *tag) - : driver_device(mconfig, type, tag) - , m_cpu(*this, "cpu") - , m_ram(*this, "ram") - , m_srom(*this, "srom") - , m_feprom(*this, "feprom%u", 0) - , m_isp(*this, "isp") - { - } - - // machine config - void jensen(machine_config &config); - - void d2k300axp(machine_config &config); - void d2k500axp(machine_config &config); - void dpcaxp150(machine_config &config); - - void init_common(); - -protected: - // driver_device overrides - virtual void machine_start() override; - virtual void machine_reset() override; - - // address maps - void local_memory(address_map &map); - void local_io(address_map &map); - void eisa_memory(address_map &map); - void eisa_io(address_map &map); - -private: - // devices - required_device<alpha_device> m_cpu; - required_device<ram_device> m_ram; - required_device<xc1765e_device> m_srom; - required_device_array<intel_e28f008sa_device, 2> m_feprom; - - required_device<i82357_device> m_isp; - - // machine state - u8 m_hae; - u8 m_sysctl; - u8 m_spare; -}; - -#endif // MAME_INCLUDES_JENSEN_H diff --git a/src/mame/includes/mips.h b/src/mame/includes/mips.h deleted file mode 100644 index a4c0c9e0462..00000000000 --- a/src/mame/includes/mips.h +++ /dev/null @@ -1,240 +0,0 @@ -// 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/mips1.h" -#include "cpu/nec/v5x.h" -#include "machine/ram.h" - -// i/o devices (common) -#include "machine/at_keybc.h" -#include "machine/z80scc.h" -#include "machine/upd765.h" -#include "machine/am79c90.h" - -// i/o devices (rx2030) -#include "machine/mc146818.h" -#include "machine/z8038.h" -#include "machine/aic6250.h" - -// i/o devices (rx3230) -#include "machine/timekpr.h" -#include "machine/ncr5390.h" -#include "machine/mips_rambo.h" - -// busses and connectors -#include "machine/nscsi_bus.h" -#include "bus/nscsi/cd.h" -#include "bus/nscsi/hd.h" - -#include "bus/pc_kbd/pc_kbdc.h" -#include "bus/pc_kbd/keyboards.h" -#include "bus/rs232/rs232.h" - -// video and audio -#include "screen.h" -#include "video/bt45x.h" -#include "video/bt459.h" -#include "sound/spkrdev.h" -#include "speaker.h" - -#include "formats/pc_dsk.h" - -class rx2030_state : public driver_device -{ -public: - rx2030_state(machine_config const &mconfig, device_type type, char const *tag) - : driver_device(mconfig, type, tag) - , m_cpu(*this, "cpu") - , m_iop(*this, "iop") - , m_ram(*this, "ram") - , m_rom(*this, "rx2030") - , 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_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") - { - } - - // 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 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); - - u16 lance_r(offs_t offset, u16 mem_mask = 0xffff); - void lance_w(offs_t offset, u16 data, u16 mem_mask = 0xffff); - - u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, rectangle const &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<r2000a_device> m_cpu; - required_device<v50_device> m_iop; - required_device<ram_device> m_ram; - required_region_ptr<u16> m_rom; - - // 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<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_shared_ptr<u32> m_vram; - - // machine state - u16 m_mmu[32]; - - u8 m_iop_interface; -}; - -class rx3230_state : public driver_device -{ -public: - rx3230_state(machine_config const &mconfig, device_type type, char const *tag) - : driver_device(mconfig, type, tag) - , m_cpu(*this, "cpu") - , m_ram(*this, "ram") - , m_rom(*this, "rx3230") - , m_rambo(*this, "rambo") - , m_scsibus(*this, "scsi") - , m_scsi(*this, "scsi:7:ncr53c94") - , m_net(*this, "net") - , m_scc(*this, "scc") - , m_tty(*this, "tty%u", 0U) - , m_rtc(*this, "rtc") - , m_fdc(*this, "fdc") - , m_kbdc(*this, "kbdc") - , m_kbd(*this, "kbd") - , m_buzzer(*this, "buzzer") - , m_screen(*this, "screen") - , m_ramdac(*this, "ramdac") - , m_vram(*this, "vram") - { - } - - // machine config - void rx3230(machine_config &config); - void rs3230(machine_config &config); - void rc3230(machine_config &config); - - void rx3230_init(); - -protected: - // driver_device overrides - virtual void machine_start() override; - virtual void machine_reset() override; - - // address maps - void rx3230_map(address_map &map); - void rs3230_map(address_map &map); - - u32 screen_update(screen_device &screen, bitmap_rgb32 &bitmap, rectangle const &cliprect); - - u16 lance_r(offs_t offset, u16 mem_mask = 0xffff); - void lance_w(offs_t offset, u16 data, u16 mem_mask = 0xffff); - - template <u8 Source> WRITE_LINE_MEMBER(irq_w); - -private: - // processors and memory - required_device<r3000a_device> m_cpu; - required_device<ram_device> m_ram; - required_region_ptr<u32> m_rom; - - // i/o devices - required_device<mips_rambo_device> m_rambo; - required_device<nscsi_bus_device> m_scsibus; - required_device<ncr53c94_device> m_scsi; - required_device<am7990_device> m_net; - required_device<z80scc_device> m_scc; - required_device_array<rs232_port_device, 2> m_tty; - required_device<m48t02_device> m_rtc; - required_device<i82072_device> m_fdc; - required_device<at_keyboard_controller_device> m_kbdc; - required_device<pc_kbdc_slot_device> m_kbd; - required_device<speaker_sound_device> m_buzzer; - - // optional colour video board - optional_device<screen_device> m_screen; - optional_device<bt459_device> m_ramdac; - optional_device<ram_device> m_vram; - - enum int_reg_mask : u8 - { - INT_SLOT = 0x01, // expansion slot - INT_KBD = 0x02, // keyboard controller - INT_SCC = 0x04, // serial controller - INT_SCSI = 0x08, // scsi controller - INT_NET = 0x10, // ethernet controller - INT_DRS = 0x20, // data rate select - INT_DSR = 0x40, // data set ready - INT_CEB = 0x80, // modem call indicator - - INT_CLR = 0xff, - }; - - enum gfx_reg_mask : u8 - { - GFX_H_BLANK = 0x10, - GFX_V_BLANK = 0x20, - GFX_COLOR_RSV = 0xce, // reserved - }; - - u8 m_int_reg; - int m_int0_state; - int m_int1_state; -}; - -#endif // MAME_INCLUDES_MIPS_H |