diff --git a/scripts/src/bus.lua b/scripts/src/bus.lua index 500a076a142..d8cf7dc80f7 100644 --- a/scripts/src/bus.lua +++ b/scripts/src/bus.lua @@ -1495,12 +1495,10 @@ if (BUSES["VME"]~=null) then MAME_DIR .. "src/devices/bus/vme/vme.h", MAME_DIR .. "src/devices/bus/vme/vme_mzr8105.cpp", MAME_DIR .. "src/devices/bus/vme/vme_mzr8105.h", - MAME_DIR .. "src/mame/includes/mzr8105.h", - MAME_DIR .. "src/mame/machine/mzr8105.cpp", MAME_DIR .. "src/devices/bus/vme/vme_mzr8300.cpp", MAME_DIR .. "src/devices/bus/vme/vme_mzr8300.h", - MAME_DIR .. "src/mame/includes/mzr8300.h", - MAME_DIR .. "src/mame/machine/mzr8300.cpp", + MAME_DIR .. "src/devices/bus/vme/vme_mvme350.cpp", + MAME_DIR .. "src/devices/bus/vme/vme_mvme350.h", } end diff --git a/scripts/target/mame/mess.lua b/scripts/target/mame/mess.lua index de0066198c9..bd9b3ca18f1 100644 --- a/scripts/target/mame/mess.lua +++ b/scripts/target/mame/mess.lua @@ -3338,7 +3338,6 @@ files { MAME_DIR .. "src/mame/drivers/ms9540.cpp", MAME_DIR .. "src/mame/drivers/mstation.cpp", MAME_DIR .. "src/mame/drivers/mt735.cpp", - MAME_DIR .. "src/mame/drivers/mvme350.cpp", MAME_DIR .. "src/mame/drivers/mx2178.cpp", MAME_DIR .. "src/mame/drivers/mycom.cpp", MAME_DIR .. "src/mame/drivers/myvision.cpp", diff --git a/src/devices/bus/vme/vme.cpp b/src/devices/bus/vme/vme.cpp index 9f0ad5ea2d1..a28e0e45b52 100644 --- a/src/devices/bus/vme/vme.cpp +++ b/src/devices/bus/vme/vme.cpp @@ -70,6 +70,7 @@ #include "vme.h" #include "bus/vme/vme_mzr8105.h" #include "bus/vme/vme_mzr8300.h" +#include "bus/vme/vme_mvme350.h" #define LOG_GENERAL 0x01 #define LOG_SETUP 0x02 @@ -107,7 +108,6 @@ vme_p1_slot_device::vme_p1_slot_device(const machine_config &mconfig, const char ,m_vme_p1_slottag(nullptr) ,m_vme_j1_callback(*this) { - LOG("%s %s\n", tag, FUNCNAME); } vme_p1_slot_device::vme_p1_slot_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : @@ -137,7 +137,10 @@ void vme_p1_slot_device::device_start() { device_vme_p1_card_interface *dev = dynamic_cast(get_card_device()); LOG("%s %s - %s:%s\n", tag(), FUNCNAME, m_vme_p1_tag, m_vme_p1_slottag); - if (dev) device_vme_p1_card_interface::static_set_vme_p1_tag(*dev, m_vme_p1_tag, m_vme_p1_slottag); + if (dev) + { + device_vme_p1_card_interface::static_set_vme_p1_tag(*dev, m_vme_p1_tag, m_vme_p1_slottag); + } // m_card = dynamic_cast(get_card_device()); } @@ -174,13 +177,18 @@ WRITE8_MEMBER(vme_p1_slot_device::write8) // if (m_card) m_card->write8(space, offset, data); } +/* The following two slot collections be combined once we intriduce capabilities for each board */ +/* Usually a VME formware supports only a few boards so it will have its own slot collection defined */ +// Controller capable boards that can go into slot1 ( or has an embedded VME bus ) SLOT_INTERFACE_START( vme_p1_slot1 ) SLOT_INTERFACE("mzr8105", VME_MZR8105) SLOT_INTERFACE_END +// All boards that can be non-controller boards, eg not driving the VME CLK etc SLOT_INTERFACE_START( vme_p1_slots ) SLOT_INTERFACE("mzr8105", VME_MZR8105) SLOT_INTERFACE("mzr8300", VME_MZR8300) + SLOT_INTERFACE("mvme350", VME_MVME350) SLOT_INTERFACE_END // diff --git a/src/mame/drivers/mvme350.cpp b/src/devices/bus/vme/vme_mvme350.cpp similarity index 58% rename from src/mame/drivers/mvme350.cpp rename to src/devices/bus/vme/vme_mvme350.cpp index 624cdad5d00..1c1b0df9d44 100644 --- a/src/mame/drivers/mvme350.cpp +++ b/src/devices/bus/vme/vme_mvme350.cpp @@ -2,8 +2,7 @@ // copyright-holders:Joakim Larsson Edstrom /*************************************************************************** * - * Motorola MVME-350 6U Intelligent Tape Controller driver, initially derived - * from hk68v10.c + * Motorola MVME-350 6U Intelligent Tape Controller driver * * 31/08/2015 * @@ -68,17 +67,8 @@ * || * * History of Motorola VME division (https://en.wikipedia.org/wiki/VMEbus) - *--------------------------------- - * When Motorola released the 68000 processor 1979 the ambition of the deisgners - * was also to standardize a versatile CPU bus to be able to build computer - * systems without constructing PCB:s from scratch. This become VersaBus but the - * boards was really too big and the computer world already saw the systems shrink - * in size. Motorola's design center in Munich proposed to use the smaller and - * already used Euroboard form factor and call it Versabus-E. This later became - * VME which was standardized in the VITA organization 1981 - * - * Misc links about Motorola VME division and this board: - * http://bitsavers.trailing-edge.com/pdf/motorola/_dataBooks/1987_Microcomputer_Systems_and_Components.pdf + *------------------------------------------------------------------------ + * See mvme147.cpp * * Description * ------------ @@ -110,6 +100,8 @@ * 0x040000 PIT device? * 0x060000 RAM? * 0x080000 PIT device? + * 0xffff5000 MVME350 - Streaming Tape Controller CLUN $04 - From MVME-166 installation manual + * 0xffff5100 MVME350 - Streaming Tape Controller CLUN $05 probably base of shared RAM * -------------------------------------------------------------------------- * * Interrupt sources MVME @@ -123,17 +115,13 @@ * * ---------------------------------------------------------- * - * DMAC Channel Assignments - * ---------------------------------------------------------- - * Channel M10 V10 - * ---------------------------------------------------------- - * - * * TODO: * - Dump the ROMs (DONE) * - Setup a working address map (STARTED) * - Get documentation for VME interface * - Add VME bus driver + * - Hook up the PITs correctly + * - Add a configurable shared memory window between local CPU and the VME bus * - Hook up a CPU board that supports boot from tape (ie MVME-162, MVME 147) * - Get a tape file with a bootable data on it. * @@ -142,116 +130,139 @@ #include "emu.h" #include "cpu/m68000/m68000.h" #include "machine/68230pit.h" +#include "vme_mvme350.h" -#define LOG(x) x +#define LOG_GENERAL 0x01 +#define LOG_SETUP 0x02 +#define LOG_PRINTF 0x04 -class mvme350_state : public driver_device -{ -public: -mvme350_state(const machine_config &mconfig, device_type type, const char *tag) : - driver_device (mconfig, type, tag), - m_maincpu (*this, "maincpu"), - m_pit(*this, "pit") -{ -} +#define VERBOSE 0 //(LOG_PRINTF | LOG_SETUP | LOG_GENERAL) -//DECLARE_READ16_MEMBER (vme_a24_r); -//DECLARE_WRITE16_MEMBER (vme_a24_w); -//DECLARE_READ16_MEMBER (vme_a16_r); -//DECLARE_WRITE16_MEMBER (vme_a16_w); -virtual void machine_start () override; -virtual void machine_reset () override; -protected: +#define LOGMASK(mask, ...) do { if (VERBOSE & mask) logerror(__VA_ARGS__); } while (0) +#define LOGLEVEL(mask, level, ...) do { if ((VERBOSE & mask) >= level) logerror(__VA_ARGS__); } while (0) -private: - required_device m_maincpu; - required_device m_pit; +#define LOG(...) LOGMASK(LOG_GENERAL, __VA_ARGS__) +#define LOGSETUP(...) LOGMASK(LOG_SETUP, __VA_ARGS__) -}; +#if VERBOSE & LOG_PRINTF +#define logerror printf +#endif -static ADDRESS_MAP_START (mvme350_mem, AS_PROGRAM, 16, mvme350_state) -ADDRESS_MAP_UNMAP_HIGH - AM_RANGE (0x000000, 0x01ffff) AM_ROM /* 128 Mb ROM */ - AM_RANGE (0x020000, 0x03ffff) AM_RAM /* 128 Mb RAM */ -#if 1 - AM_RANGE(0x040000, 0x040035) AM_DEVREADWRITE8("pit", pit68230_device, read, write, 0x00ff) /* PIT ?*/ - AM_RANGE(0x060000, 0x06001f) AM_RAM /* Area is cleared on start */ - AM_RANGE(0x080000, 0x080035) AM_DEVREADWRITE8("pit", pit68230_device, read, write, 0x00ff) /* PIT ?*/ +#ifdef _MSC_VER +#define FUNCNAME __func__ +#else +#define FUNCNAME __PRETTY_FUNCTION__ +#endif + +//************************************************************************** +// GLOBAL VARIABLES +//************************************************************************** + +const device_type VME_MVME350 = &device_creator; + +#define MVME350_CPU_TAG "mvme350_cpu" +#define MVME350_ROM "mvme350_rom" + +static ADDRESS_MAP_START( mvme350_mem, AS_PROGRAM, 16, vme_mvme350_card_device ) + ADDRESS_MAP_UNMAP_HIGH + AM_RANGE(0x000000, 0x01ffff) AM_ROM AM_REGION(MVME350_ROM, 0) + AM_RANGE(0x020000, 0x03ffff) AM_RAM + +#if 0 + AM_RANGE(0x040000, 0x040035) AM_DEVREADWRITE8("pit", pit68230_device, read, write, 0x00ff) /* PIT ?*/ + AM_RANGE(0x060000, 0x06001f) AM_RAM /* Area is cleared on start */ + AM_RANGE(0x080000, 0x080035) AM_DEVREADWRITE8("pit", pit68230_device, read, write, 0x00ff) /* PIT ?*/ #endif //AM_RANGE(0x100000, 0xfeffff) AM_READWRITE(vme_a24_r, vme_a24_w) /* VMEbus Rev B addresses (24 bits) - not verified */ //AM_RANGE(0xff0000, 0xffffff) AM_READWRITE(vme_a16_r, vme_a16_w) /* VMEbus Rev B addresses (16 bits) - not verified */ ADDRESS_MAP_END -/* Input ports */ -static INPUT_PORTS_START (mvme350) -INPUT_PORTS_END +//------------------------------------------------- +// machine_config_additions - device-specific +// machine configurations +//------------------------------------------------- -/* Start it up */ -void mvme350_state::machine_start () +MACHINE_CONFIG_FRAGMENT( mvme350 ) + /* basic machine hardware */ + MCFG_CPU_ADD (MVME350_CPU_TAG, M68010, XTAL_10MHz) + MCFG_CPU_PROGRAM_MAP (mvme350_mem) + /* PIT Parallel Interface and Timer device, assuming strapped for on board clock */ + MCFG_DEVICE_ADD("pit", PIT68230, XTAL_16MHz / 2) +MACHINE_CONFIG_END + +ROM_START( mvme350 ) + ROM_REGION (0x20000, MVME350_ROM, 0) + ROM_LOAD16_BYTE ("mvme350U40v2.3.bin", 0x0001, 0x4000, CRC (bcef82ef) SHA1 (e6fdf26e4714cbaeb3e97d7b5acf02d64d8ad744)) + ROM_LOAD16_BYTE ("mvme350U47v2.3.bin", 0x0000, 0x4000, CRC (582ce095) SHA1 (d0929dbfeb0cfda63df6b5bc29ee27fbf665def7)) +ROM_END + +machine_config_constructor vme_mvme350_card_device::device_mconfig_additions() const { - LOG (logerror ("machine_start\n")); + LOG("%s %s\n", tag(), FUNCNAME); + return MACHINE_CONFIG_NAME( mvme350 ); } -void mvme350_state::machine_reset () +const tiny_rom_entry *vme_mvme350_card_device::device_rom_region() const { - LOG (logerror ("machine_reset\n")); + LOG("%s\n", FUNCNAME); + return ROM_NAME( mvme350 ); +} + +//************************************************************************** +// LIVE DEVICE +//************************************************************************** + +vme_mvme350_card_device::vme_mvme350_card_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : + device_t(mconfig, type, name, tag, owner, clock, shortname, source), + device_vme_p1_card_interface(mconfig, *this) +{ + LOG("%s %s\n", tag, FUNCNAME); +} + +vme_mvme350_card_device::vme_mvme350_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, VME_MVME350, "Motorola MVME-350 Intelligent Tape Controller", tag, owner, clock, "mvme350", __FILE__), + device_vme_p1_card_interface(mconfig, *this) +{ + LOG("%s %s\n", tag, FUNCNAME); +} + +void vme_mvme350_card_device::device_start() +{ + LOG("%s %s\n", tag(), FUNCNAME); + set_vme_p1_device(); + + /* Setup r/w handlers for shared memory area */ +#if 0 + /* From MVME166 Single Board Computer Installation Guide: + + Controller Type First board Second board + CLUN Address CLUN Address + --------------------------------------------------- + MVME350 - Streaming $04 $FFFF5000 $05 $FFFF5100 + Tape Controller + --------------------------------------------------- + */ + uint32_t base = 0xFFFF5000; + m_vme_p1->install_device(base + 0, base + 1, // Channel B - Data + read8_delegate(FUNC(z80sio_device::db_r), subdevice("pit")), write8_delegate(FUNC(z80sio_device::db_w), subdevice("pit")), 0x00ff); + m_vme_p1->install_device(base + 2, base + 3, // Channel B - Control + read8_delegate(FUNC(z80sio_device::cb_r), subdevice("pit")), write8_delegate(FUNC(z80sio_device::cb_w), subdevice("pit")), 0x00ff); +#endif + +} + +void vme_mvme350_card_device::device_reset() +{ + LOG("%s %s\n", tag(), FUNCNAME); } #if 0 -/* Dummy VME access methods until the VME bus device is ready for use */ -READ16_MEMBER (mvme350_state::vme_a24_r){ - LOG (logerror ("vme_a24_r\n")); - return (uint16_t) 0; +READ16_MEMBER (vme_mvme350_card_device::read16){ + LOG("%s()\n", FUNCNAME); + return (uint8_t) 0; } -WRITE16_MEMBER (mvme350_state::vme_a24_w){ - LOG (logerror ("vme_a24_w\n")); -} - -READ16_MEMBER (mvme350_state::vme_a16_r){ - LOG (logerror ("vme_16_r\n")); - return (uint16_t) 0; -} - -WRITE16_MEMBER (mvme350_state::vme_a16_w){ - LOG (logerror ("vme_a16_w\n")); +WRITE16_MEMBER (vme_mvme350_card_device::write16){ + LOG("%s()\n", FUNCNAME); } #endif - -/* - * Machine configuration - */ -static MACHINE_CONFIG_START (mvme350, mvme350_state) - /* basic machine hardware */ - MCFG_CPU_ADD ("maincpu", M68010, XTAL_10MHz) - MCFG_CPU_PROGRAM_MAP (mvme350_mem) - /* PIT Parallel Interface and Timer device, assuming strapped for on board clock */ - MCFG_DEVICE_ADD("pit", PIT68230, XTAL_16MHz / 2) - -MACHINE_CONFIG_END - -/* ROM definitions */ -ROM_START (mvme350) -ROM_REGION (0x1000000, "maincpu", 0) - -ROM_LOAD16_BYTE ("mvme350U40v2.3.bin", 0x0000, 0x4000, CRC (bcef82ef) SHA1 (e6fdf26e4714cbaeb3e97d7b5acf02d64d8ad744)) -ROM_LOAD16_BYTE ("mvme350U47v2.3.bin", 0x0001, 0x4000, CRC (582ce095) SHA1 (d0929dbfeb0cfda63df6b5bc29ee27fbf665def7)) - -/* - * System ROM information - * - * The ROMs known commands from different sources: - * - * It communicates with the master through data buffers in shared memory and VME bus interrupts - * as desribed in - * http://bitsavers.trailing-edge.com/pdf/motorola/_dataBooks/1987_Microcomputer_Systems_and_Components.pdf - * - * The board is pretty boring as stand alone, it initializes everything and then executes a STOP instruction - * awaiting a CPU on the VME bus to request its services. However, it enables boot from tape devices, we just - * need a MVME-131 and a dump of a VersaDOS or Motorola UNIX System V system tape and some work. - */ -ROM_END - -/* Driver */ -/* YEAR NAME PARENT COMPAT MACHINE INPUT CLASS INIT COMPANY FULLNAME FLAGS */ -COMP (1984, mvme350, 0, 0, mvme350, mvme350, driver_device, 0, "Motorola", "MVME-350", MACHINE_NO_SOUND_HW | MACHINE_TYPE_COMPUTER ) diff --git a/src/devices/bus/vme/vme_mvme350.h b/src/devices/bus/vme/vme_mvme350.h new file mode 100644 index 00000000000..b7cfbdb98f2 --- /dev/null +++ b/src/devices/bus/vme/vme_mvme350.h @@ -0,0 +1,32 @@ +// license:BSD-3-Clause +// copyright-holders:Joakim Larsson Edstrom +#ifndef VME_MVME350_H +#define VME_MVME350_H +#pragma once + +#include "bus/vme/vme.h" + +extern const device_type VME_MVME350; + +class vme_mvme350_card_device : + public device_t + ,public device_vme_p1_card_interface +{ +public: + vme_mvme350_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); + vme_mvme350_card_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); + + // optional information overrides + virtual machine_config_constructor device_mconfig_additions() const override; + virtual const tiny_rom_entry *device_rom_region() const override; + + // Shared memory methods to be exported to the VME bus +// virtual DECLARE_READ16_MEMBER (read16) override; +// virtual DECLARE_WRITE16_MEMBER (write16) override; +protected: + virtual void device_start() override; + virtual void device_reset() override; +private: +}; + +#endif // VME_MVME350_H diff --git a/src/devices/bus/vme/vme_mzr8300.cpp b/src/devices/bus/vme/vme_mzr8300.cpp index f6d27379994..2ff7b605c95 100644 --- a/src/devices/bus/vme/vme_mzr8300.cpp +++ b/src/devices/bus/vme/vme_mzr8300.cpp @@ -1,9 +1,91 @@ // license:BSD-3-Clause // copyright-holders:Joakim Larsson Edstrom +/*************************************************************************** + * + * Mizar VME8300 rev G 3U VME slave slot device + * + * 23/09/2015 + * + * This device was drycoded based on OS9 boot strap code on a Mizar mz8105 board + * which expects to find a SIO on the VME bus + photos of a Mizar 8300 board on Ebay + * I have found no formal documents for this board so far, so needs verification. + * + * || + * || + * || + * || + * ||____________________________________________________________ ___ + * \+++====|| U2|AM26LS32| | NEC | |74LS04N||74LS645 ||_| | + * \=/- o|| +--------+ | D7201C | ++-----+++----------+| | | + * | | || +-------+ +--------------------+ | | |SN74LS374N|| | | + * | | || U1| xxx | ____________________ | | +----------+| | | + * | | || +-------+ | NEC | |AMD | |SN74LS374N|| | | + * | | || | 7201C | |AM9513++----------+| | | + * | | || K10 +--------------------+ | APC ||PAL14L8 || |VME| + * | |==|| +-------+ K5 _______ | |+-----------+| | | + * | |==|| |MC1488P| K4 |SN74S38|| STC ||PAL20L8 || |P1 | + * | | || ++-------+--------+-+------++| |+-----------+| | | + * | | || K2 |AM26LS32|AM26LS32| 74S74 | |_____| |SN74LS244N|| | | + * | | || +--------+--------+--------+_______ +----------+| | | + * | | || | 74S74 | 74F85 | | | | + * | | || +-------+--------++-------++-------+ +----------+| | | + * /=\- o||J1 K1 U4| xxx | xxx | 74LS164| K6 |AM25LS2521|| | | + * /+++====|| J2 +-------+--------+--------+--------+ +----------+|_| | + * ||Rev G U3| MC1488| MC1488 | 74LS161| 74F85 | K8 | |___| + * ||-----------+-------+----------------------------------------- + * || + * || + * + * + * Misc links about this board: + * http://www.ebay.com/itm/MIZAR-INC-8300-0-01-REV-J-INTERFACE-CONTROL-BOARD-W-RIBBON-AND-PLATE-/231508658429?hash=item35e6fdc8fd + * + * Description + * ------------ + * The Mizar mz8300 is a Quad Serial board. + * + * - Single High (3U) VME Slave board + * - Two upd7201 SIO Serial Input/Ouput + * - One AM9513 STC System Timing Controller + * + * Address Map (just guesses based on driver software behaviours) + * -------------------------------------------------------------------------- + * Local VME Decscription + * ------------------------------------------------------------------------- + * n/a 0xff0000 0xff0003 mzr8105.c Bootstrap expects to find a + * UPD7201 serial device here - configurable! + * -------------------------------------------------------------------------- + * + * Interrupt sources MVME + * ---------------------------------------------------------- + * Description Device Lvl IRQ VME board + * /Board Vector Address + * ---------------------------------------------------------- + * On board Sources + * + * Off board Sources (other VME boards) + * + * ---------------------------------------------------------- + * + * DMAC Channel Assignments + * ---------------------------------------------------------- + * Channel + * ---------------------------------------------------------- + * + * TODO: + * - Setup a working address map (STARTED) + * - Get documentation for the board + * - Add VME bus interface + * - Hook up a CPU board that supports this board (mzr8105.c) + * - Get terminal working through this device over the VME interface + * + ****************************************************************************/ #include "emu.h" #include "vme_mzr8300.h" #include "machine/z80sio.h" +#include "bus/rs232/rs232.h" +#include "machine/clock.h" #define LOG_GENERAL 0x01 #define LOG_SETUP 0x02 @@ -33,13 +115,41 @@ const device_type VME_MZR8300 = &device_creator; -vme_mzr8300_card_device::vme_mzr8300_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VME_MZR8300, "Mizar 8300 SIO serial board", tag, owner, clock, "mzr8300", __FILE__), - device_vme_p1_card_interface(mconfig, *this) +/* These values are borrowed just to get the terminal going and should be replaced + * once a proper serial board hardware (ie MZ 8300) is found and emulated. */ +#define BAUDGEN_CLOCK XTAL_19_6608MHz /* fake */ +#define SIO_CLOCK (BAUDGEN_CLOCK / 128) /* This will give prompt */ + +MACHINE_CONFIG_FRAGMENT( mzr8300 ) + MCFG_UPD7201_ADD("sio0", XTAL_4MHz, SIO_CLOCK, SIO_CLOCK, SIO_CLOCK, SIO_CLOCK ) + + MCFG_Z80SIO_OUT_TXDB_CB(DEVWRITELINE("rs232p1", rs232_port_device, write_txd)) + MCFG_Z80SIO_OUT_DTRB_CB(DEVWRITELINE("rs232p1", rs232_port_device, write_dtr)) + MCFG_Z80SIO_OUT_RTSB_CB(DEVWRITELINE("rs232p1", rs232_port_device, write_rts)) + + MCFG_RS232_PORT_ADD ("rs232p1", default_rs232_devices, "terminal") + MCFG_RS232_RXD_HANDLER (DEVWRITELINE ("sio0", upd7201N_device, rxb_w)) + MCFG_RS232_CTS_HANDLER (DEVWRITELINE ("sio0", upd7201N_device, ctsb_w)) + + MCFG_Z80SIO_ADD("sio1", XTAL_4MHz, 0, 0, 0, 0 ) +MACHINE_CONFIG_END + +//------------------------------------------------- +// machine_config_additions - device-specific +// machine configurations +//------------------------------------------------- + + +machine_config_constructor vme_mzr8300_card_device::device_mconfig_additions() const { - LOG("%s %s\n", tag, FUNCNAME); + LOG("%s %s\n", tag(), FUNCNAME); + return MACHINE_CONFIG_NAME( mzr8300 ); } +//************************************************************************** +// LIVE DEVICE +//************************************************************************** + vme_mzr8300_card_device::vme_mzr8300_card_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : device_t(mconfig, type, name, tag, owner, clock, shortname, source), device_vme_p1_card_interface(mconfig, *this) @@ -47,6 +157,13 @@ vme_mzr8300_card_device::vme_mzr8300_card_device(const machine_config &mconfig, LOG("%s %s\n", tag, FUNCNAME); } +vme_mzr8300_card_device::vme_mzr8300_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : + device_t(mconfig, VME_MZR8300, "Mizar 8300 SIO serial board", tag, owner, clock, "mzr8300", __FILE__), + device_vme_p1_card_interface(mconfig, *this) +{ + LOG("%s %s\n", tag, FUNCNAME); +} + void vme_mzr8300_card_device::device_start() { LOG("%s %s\n", tag(), FUNCNAME); @@ -69,19 +186,7 @@ void vme_mzr8300_card_device::device_reset() LOG("%s %s\n", tag(), FUNCNAME); } -//------------------------------------------------- -// machine_config_additions - device-specific -// machine configurations -//------------------------------------------------- - -MACHINE_CONFIG_EXTERN( mzr8300 ); - -machine_config_constructor vme_mzr8300_card_device::device_mconfig_additions() const -{ - LOG("%s %s\n", tag(), FUNCNAME); - return MACHINE_CONFIG_NAME( mzr8300 ); -} - +#if 0 READ8_MEMBER (vme_mzr8300_card_device::read8){ LOG("%s()\n", FUNCNAME); return (uint8_t) 0; @@ -90,3 +195,4 @@ READ8_MEMBER (vme_mzr8300_card_device::read8){ WRITE8_MEMBER (vme_mzr8300_card_device::write8){ LOG("%s()\n", FUNCNAME); } +#endif diff --git a/src/devices/bus/vme/vme_mzr8300.h b/src/devices/bus/vme/vme_mzr8300.h index 7f8ae0922ae..8cb59348de0 100644 --- a/src/devices/bus/vme/vme_mzr8300.h +++ b/src/devices/bus/vme/vme_mzr8300.h @@ -15,11 +15,12 @@ class vme_mzr8300_card_device : public: vme_mzr8300_card_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); vme_mzr8300_card_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - // optional information overrides + // optional information overrides virtual machine_config_constructor device_mconfig_additions() const override; - virtual DECLARE_READ8_MEMBER (read8) override; - virtual DECLARE_WRITE8_MEMBER (write8) override; + +// virtual DECLARE_READ8_MEMBER (read8) override; +// virtual DECLARE_WRITE8_MEMBER (write8) override; protected: virtual void device_start() override; virtual void device_reset() override; diff --git a/src/mame/drivers/mzr8105.cpp b/src/mame/drivers/mzr8105.cpp index 539dab9d4f3..5d1a9e0fb55 100644 --- a/src/mame/drivers/mzr8105.cpp +++ b/src/mame/drivers/mzr8105.cpp @@ -1,12 +1,187 @@ // license:BSD-3-Clause // copyright-holders:Joakim Larsson Edstrom - +/*************************************************************************** + * + * Mizar VME8105 rev D 3U SBC board driver + * + * 19/08/2015 + * + * I baught this board from http://www.retrotechnology.com without documentation. + * It has a Motorola 68000 CPU @ 10MHz and two 27128 EPROMS with OS9 DEBUG labels + * and not much more except 16 or so TTLs, 2 PALs and a VME P1 connector. It is a + * 2 layered pcb so it shold be possible to trace the schematics quite easily. + * There is a date on the P1 Connector: "Feb 20 1987" + * + * || + * || + * || + * || + * ||____________________________________________________________ ___ + * || --------------K2|U6-7432|U7-7474|U14-7405|U21-74645 | |_| | + * || | 2764 - low |-+-------+-------+--------+-----------+ | | | + * || | OS9 DEBUG U4| +---------+ +--------+---------+ | | | + * || -------------- | | |U13-7474|U20-74645| | | | + * || ______________ | | +--------+---------+ | | | + * || | | | | ______________K4____ | | | + * || | U3| | | |U12-7438|U19-74244| | |VME| + * || -------------- | |+------K6---------K3---+ | | | + * || ______________ | ||U11-PAL20L10|U18-74244| | |P1 | + * || | 2764 - high | | |+-----021102-+---------+ | | | + * || | OS9 DEBUG U2| |MC68000L10+------------+---------+ | | | + * || |______________| | ||U10-PAL14L4 |U17-74244| | | | + * || | |+-----021001-+---------+ | | | + * || -------------- | |+----+_______|U16-74244|+--+| | | + * || | | | |XTAL |U9-7410+---------+| || | | + * ||K1 | U1| | |FOX100-------+---------+|K5||_| | + * || -------------- |_________|10MHz|U8-7404|U15-74148|| || |___| + * ||--||--------------------------------+----+-------+---------++--+ + * ||--|| + * || + * + * PAL:s + *------ + * The board has two PAL:s, a PAL20L10 and a PAL14L4. + * + * _____ _____ + * OD/CLK 1 |* \_/ | 20 VCC + * CPU A13 I0 2 | | 19 O0/LR A23 + * U9 7410p12 I1 3 | | 18 O1/A0 A22 + * CPU *AS I2 4 | | 17 02/A1 U2/U4 2764p22 *OE + * GND I3 5 | | 16 03/A2 U11 PAL20L10p6 I4 + * CPU A14 I4 6 | U10 | 15 A0/O0 U11 PAL20L10p7 I5 + * CPU A15 I5 7 | PAL14L4 | 14 A1/O1 U19 74LS244p11 I0b + * CPU A16 I6 8 | | 13 A2/O2 A18 + * CPU A17 I7 9 | | 12 LR/O3 A20 + * GND 10 |_____________| 11 CLK/OD A21 + * + * _____ _____ + * OD/CLK 1 |* \_/ | 24 VCC + * I0 2 | | 23 O0/LR + * CPU *AS I1 3 | | 22 O1/A0 + * U10 PAL14L4p3 I2 4 | | 21 02/A1 + * I3 5 | | 20 03/A2 + * U10 PAL14L4p16 I4 6 | U10 | 19 04/NC + * U10 PAL14L4p15 I5 7 | PAL20L10 | 18 NC/O0 + * I6 8 | | 17 A2/O1 + * I7 9 | | 16 A1/O2 + * I8 10 | | 15 A0/O3 + * I9 11 | | 14 LR/O4 + * GND 12 |_____________| 13 CLK/OD + * + * Trace is not fully completed and validated. + * + * History of Mizar + *------------------- + * Mizar was one of the first companies that released VME boards in 1982-3 together with + * Force Computers and Motorola. Their systems was often supported by OS9/68000 from Microware. + * In 1993 Mizar discontinued their OS9/CPU board product range and focused entirely on DSP + * boards. RTSI was founded by Mizar employees preserving the knowledge in OS9 as consultants. + * In 1998 Blue Wave resulted from the merger of Mizar and Loughborough Sound Images. + * Not much tech information availabe but I found some quotes about Mizar on the internet: + * + * From http://archive.org/stream/68micro-vol-11-num-02/V11N02_Feb1989_djvu.txt : + *-------------------------------------------------------------------------------- + * " Mizar provides complete OS-9 solutions for the VMEbus. Mizar's VME CPUs + * offer (he functions and performance your application demands. Our single + * height (3U) VME processors are uniquely configurable computing engines, + * Through Mizar's unique MXbus expansion interface, standard and custom side + * modules can be added to basic processors to create double-height (6U) boards + * tor specific applications, 3U CPU options include 68010, 66020, and 63030 + * microprocessors, up to one MB of DRAM, serial I/O, real-time clock, and + * mailbox interrupt support. Standard MXbus side modules include additional DRAM. + * SRAM, and I/O. + * + * Mizar's standard double- height (6U) processors provide additional features such + * as a high-speed cache to enhance 68030 performance, floating, point coprocessor + * support, up to four MB dual ported DRAM, VSB memory interface, Ethernet, and SCSI. + * + * Mizar also supports OS-9 with completely configured OS9 development systems and + * OS-9 application server systems. For more information, call Mizar today + * + * 800-635-0200 MIZAR 1419 Dunn Drive CarrolHon, TX 75006 214-446-2664" + * + * Known boards from Mizar: + * + * MZX 414 + * MZ 7122 + * MZ 7132 + * MZ 7300 Serial I/O Board (Z8530) + * EMX 7320 Serial I/O Board + * MZ 7400 Disk Controller Board (WD 2010; WD 1772) + * MZ 7500 IEEE-488 (GPIB) Interface Board + * EMX 7550 Ethernet Controller Board (AMD 7990 Lance) MAC: 00:80:F8 MIZAR, INC. + * MZ 7772 + * MZ 7810 I/O Expansion Module (6681 DUART) + * MZ 7831 SCSI Expansion Module (WD 33C93A) + * MZ 7850 Ethernet Expansion Module (WD 83C690) + * MZ 8000 ?? + * MZ 8105 3U 68000 CPU board + * MZ 8115 + * MZ 8300 3U serial board, 2 NEC 7201 and 1 AMD CTS9513 5 x 16 bit Counter/Timer + * MZ 8310 timing module 2 x AM9513 + * MZ 8505 IEEE-488 (GPIB) Interface Board" + * + * From http://www.megalextoria.com/forum2/index.php?t=msg&goto=73945& + *-------------------------------------------------------------------- + * Aug 20 1984 a report by James Jones from the OS/9 conferance in Des Moines: + * "... + * Mizar: is selling VME bus 68010 boards, running OS-9/68000; they also make + * various memory and I/O boards, disk controller boards, and and a NEC 7220-based + * graphics controller board...." + * + * Misc links about Mizar: + * http://www.vita.com/History + * http://www.verycomputer.com/154_e272024804bbe203_1.htm + * https://www.aihitdata.com/company/00814595/RTSI/overview + * + * Address Map + * -------------------------------------------------------------------------- + * Address Range Description/Assumption + * -------------------------------------------------------------------------- + * 0x000000 0x01ffff ROM because of fixed vectors + * 0x020000 0x03ffff RAM because bootvector stack starts at 0x21000 + * -- VME adresses--- + * 0xff0000 0xff0003 Bootstrap expects to find a UPD7201 serial device here + * -------------------------------------------------------------------------- + * + * Interrupt sources + * ---------------------------------------------------------- + * Description Device Lvl IRQ VME board + * /Board Vector Address + * ---------------------------------------------------------- + * On board Sources + * TBD + * Off board Sources (other VME boards) + * TBD + * ---------------------------------------------------------- + * + * TODO: + * - Dump the ROMs (DONE) + * - Setup a working address map (DONE) + * - Add VME bus driver (Faked one) + * - understand what other device is expected in VME space ff0011-13 + * + ****************************************************************************/ #include "emu.h" -#include "includes/mzr8105.h" +#include "bus/vme/vme.h" #include "bus/vme/vme_mzr8300.h" +#include "bus/vme/vme_mvme350.h" #include "cpu/m68000/m68000.h" #include "machine/clock.h" +class mzr8105_state : public driver_device +{ +public: +mzr8105_state(const machine_config &mconfig, device_type type, const char *tag) : + driver_device (mconfig, type, tag) + ,m_maincpu (*this, "maincpu") + { + } + +private: + required_device m_maincpu; +}; + static ADDRESS_MAP_START (mzr8105_mem, AS_PROGRAM, 16, mzr8105_state) ADDRESS_MAP_UNMAP_HIGH /* The ROMs contains an OS9 bootloader. It is position independent but reset vector suggests that it sits flat on adress 0 (zero) */ @@ -23,6 +198,7 @@ INPUT_PORTS_END static SLOT_INTERFACE_START(mzr8105_vme_cards) SLOT_INTERFACE("mzr8300", VME_MZR8300) + SLOT_INTERFACE("mvme350", VME_MVME350) SLOT_INTERFACE_END /* diff --git a/src/mame/includes/mzr8105.h b/src/mame/includes/mzr8105.h deleted file mode 100644 index 6b597ff4e25..00000000000 --- a/src/mame/includes/mzr8105.h +++ /dev/null @@ -1,30 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Joakim Larsson Edstrom -/******************************************************************************** - * - * mame/includes/mzr8105 - * - ********************************************************************************/ - -#ifndef MZR8105_H -#define MZR8105_H -#pragma once - -#include "bus/vme/vme.h" - -class mzr8105_state : public driver_device -{ -public: -mzr8105_state(const machine_config &mconfig, device_type type, const char *tag) : - driver_device (mconfig, type, tag) - ,m_maincpu (*this, "maincpu") - { - } - - virtual void machine_start() override; -private: - required_device m_maincpu; -}; - - -#endif // MZR8105_H diff --git a/src/mame/includes/mzr8300.h b/src/mame/includes/mzr8300.h deleted file mode 100644 index 1ae01af38c2..00000000000 --- a/src/mame/includes/mzr8300.h +++ /dev/null @@ -1,35 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Joakim Larsson Edstrom -/******************************************************************************** - * - * mame/includes/mzr8105 - * - ********************************************************************************/ - -#ifndef MZR8300_H -#define MZR8300_H -#pragma once - -#include "emu.h" -#include "bus/vme/vme.h" -#include "machine/z80sio.h" - -class vme_p1_mzr8300_device : public device_t, public device_vme_p1_card_interface -{ -public: - // construction/destruction - vme_p1_mzr8300_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); - vme_p1_mzr8300_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source); - - // optional information overrides - virtual machine_config_constructor device_mconfig_additions() const override; - -protected: - // device-level overrides - virtual void device_start() override; - virtual void device_reset() override; -private: - required_device m_sio0; -}; - -#endif // MZR8300_H diff --git a/src/mame/machine/mzr8105.cpp b/src/mame/machine/mzr8105.cpp deleted file mode 100644 index 4e645c3acf5..00000000000 --- a/src/mame/machine/mzr8105.cpp +++ /dev/null @@ -1,192 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Joakim Larsson Edstrom -/*************************************************************************** - * - * Mizar VME8105 rev D 3U SBC board driver - * - * 19/08/2015 - * - * I baught this board from http://www.retrotechnology.com without documentation. - * It has a Motorola 68000 CPU @ 10MHz and two 27128 EPROMS with OS9 DEBUG labels - * and not much more except 16 or so TTLs, 2 PALs and a VME P1 connector. It is a - * 2 layered pcb so it shold be possible to trace the schematics quite easily. - * There is a date on the P1 Connector: "Feb 20 1987" - * - * || - * || - * || - * || - * ||____________________________________________________________ ___ - * || --------------K2|U6-7432|U7-7474|U14-7405|U21-74645 | |_| | - * || | 2764 - low |-+-------+-------+--------+-----------+ | | | - * || | OS9 DEBUG U4| +---------+ +--------+---------+ | | | - * || -------------- | | |U13-7474|U20-74645| | | | - * || ______________ | | +--------+---------+ | | | - * || | | | | ______________K4____ | | | - * || | U3| | | |U12-7438|U19-74244| | |VME| - * || -------------- | |+------K6---------K3---+ | | | - * || ______________ | ||U11-PAL20L10|U18-74244| | |P1 | - * || | 2764 - high | | |+-----021102-+---------+ | | | - * || | OS9 DEBUG U2| |MC68000L10+------------+---------+ | | | - * || |______________| | ||U10-PAL14L4 |U17-74244| | | | - * || | |+-----021001-+---------+ | | | - * || -------------- | |+----+_______|U16-74244|+--+| | | - * || | | | |XTAL |U9-7410+---------+| || | | - * ||K1 | U1| | |FOX100-------+---------+|K5||_| | - * || -------------- |_________|10MHz|U8-7404|U15-74148|| || |___| - * ||--||--------------------------------+----+-------+---------++--+ - * ||--|| - * || - * - * PAL:s - *------ - * The board has two PAL:s, a PAL20L10 and a PAL14L4. - * - * _____ _____ - * OD/CLK 1 |* \_/ | 20 VCC - * CPU A13 I0 2 | | 19 O0/LR A23 - * U9 7410p12 I1 3 | | 18 O1/A0 A22 - * CPU *AS I2 4 | | 17 02/A1 U2/U4 2764p22 *OE - * GND I3 5 | | 16 03/A2 U11 PAL20L10p6 I4 - * CPU A14 I4 6 | U10 | 15 A0/O0 U11 PAL20L10p7 I5 - * CPU A15 I5 7 | PAL14L4 | 14 A1/O1 U19 74LS244p11 I0b - * CPU A16 I6 8 | | 13 A2/O2 A18 - * CPU A17 I7 9 | | 12 LR/O3 A20 - * GND 10 |_____________| 11 CLK/OD A21 - * - * _____ _____ - * OD/CLK 1 |* \_/ | 24 VCC - * I0 2 | | 23 O0/LR - * CPU *AS I1 3 | | 22 O1/A0 - * U10 PAL14L4p3 I2 4 | | 21 02/A1 - * I3 5 | | 20 03/A2 - * U10 PAL14L4p16 I4 6 | U10 | 19 04/NC - * U10 PAL14L4p15 I5 7 | PAL20L10 | 18 NC/O0 - * I6 8 | | 17 A2/O1 - * I7 9 | | 16 A1/O2 - * I8 10 | | 15 A0/O3 - * I9 11 | | 14 LR/O4 - * GND 12 |_____________| 13 CLK/OD - * - * Trace is not fully completed and validated. - * - * History of Mizar - *------------------- - * Mizar was one of the first companies that released VME boards in 1982-3 together with - * Force Computers and Motorola. Their systems was often supported by OS9/68000 from Microware. - * In 1993 Mizar discontinued their OS9/CPU board product range and focused entirely on DSP - * boards. RTSI was founded by Mizar employees preserving the knowledge in OS9 as consultants. - * In 1998 Blue Wave resulted from the merger of Mizar and Loughborough Sound Images. - * Not much tech information availabe but I found some quotes about Mizar on the internet: - * - * From http://archive.org/stream/68micro-vol-11-num-02/V11N02_Feb1989_djvu.txt : - *-------------------------------------------------------------------------------- - * " Mizar provides complete OS-9 solutions for the VMEbus. Mizar's VME CPUs - * offer (he functions and performance your application demands. Our single - * height (3U) VME processors are uniquely configurable computing engines, - * Through Mizar's unique MXbus expansion interface, standard and custom side - * modules can be added to basic processors to create double-height (6U) boards - * tor specific applications, 3U CPU options include 68010, 66020, and 63030 - * microprocessors, up to one MB of DRAM, serial I/O, real-time clock, and - * mailbox interrupt support. Standard MXbus side modules include additional DRAM. - * SRAM, and I/O. - * - * Mizar's standard double- height (6U) processors provide additional features such - * as a high-speed cache to enhance 68030 performance, floating, point coprocessor - * support, up to four MB dual ported DRAM, VSB memory interface, Ethernet, and SCSI. - * - * Mizar also supports OS-9 with completely configured OS9 development systems and - * OS-9 application server systems. For more information, call Mizar today - * - * 800-635-0200 MIZAR 1419 Dunn Drive CarrolHon, TX 75006 214-446-2664" - * - * Known boards from Mizar: - * - * MZX 414 - * MZ 7122 - * MZ 7132 - * MZ 7300 Serial I/O Board (Z8530) - * EMX 7320 Serial I/O Board - * MZ 7400 Disk Controller Board (WD 2010; WD 1772) - * MZ 7500 IEEE-488 (GPIB) Interface Board - * EMX 7550 Ethernet Controller Board (AMD 7990 Lance) MAC: 00:80:F8 MIZAR, INC. - * MZ 7772 - * MZ 7810 I/O Expansion Module (6681 DUART) - * MZ 7831 SCSI Expansion Module (WD 33C93A) - * MZ 7850 Ethernet Expansion Module (WD 83C690) - * MZ 8000 ?? - * MZ 8105 3U 68000 CPU board - * MZ 8115 - * MZ 8300 3U serial board, 2 NEC 7201 and 1 AMD CTS9513 5 x 16 bit Counter/Timer - * MZ 8310 timing module 2 x AM9513 - * MZ 8505 IEEE-488 (GPIB) Interface Board" - * - * From http://www.megalextoria.com/forum2/index.php?t=msg&goto=73945& - *-------------------------------------------------------------------- - * Aug 20 1984 a report by James Jones from the OS/9 conferance in Des Moines: - * "... - * Mizar: is selling VME bus 68010 boards, running OS-9/68000; they also make - * various memory and I/O boards, disk controller boards, and and a NEC 7220-based - * graphics controller board...." - * - * Misc links about Mizar: - * http://www.vita.com/History - * http://www.verycomputer.com/154_e272024804bbe203_1.htm - * https://www.aihitdata.com/company/00814595/RTSI/overview - * - * Address Map - * -------------------------------------------------------------------------- - * Address Range Description/Assumption - * -------------------------------------------------------------------------- - * 0x000000 0x01ffff ROM because of fixed vectors - * 0x020000 0x03ffff RAM because bootvector stack starts at 0x21000 - * -- VME adresses--- - * 0xff0000 0xff0003 Bootstrap expects to find a UPD7201 serial device here - * -------------------------------------------------------------------------- - * - * Interrupt sources - * ---------------------------------------------------------- - * Description Device Lvl IRQ VME board - * /Board Vector Address - * ---------------------------------------------------------- - * On board Sources - * TBD - * Off board Sources (other VME boards) - * TBD - * ---------------------------------------------------------- - * - * TODO: - * - Dump the ROMs (DONE) - * - Setup a working address map (DONE) - * - Add VME bus driver (Faked one) - * - understand what other device is expected in VME space ff0011-13 - * - ****************************************************************************/ -#include "emu.h" -#include "includes/mzr8105.h" -#include "cpu/m68000/m68000.h" -#include "machine/clock.h" - -#define VERBOSE 0 - -#define LOGPRINT(...) do { if (VERBOSE) logerror(__VA_ARGS__); } while (0) -#define LOG(...) LOGPRINT(__VA_ARGS__) - -#if VERBOSE >= 2 -#define logerror printf -#endif - -#ifdef _MSC_VER -#define LLFORMAT "%I64%" -#define FUNCNAME __func__ -#else -#define LLFORMAT "%lld" -#define FUNCNAME __PRETTY_FUNCTION__ -#endif - -/* Start it up */ -void mzr8105_state::machine_start() -{ - LOG("%s()\n", FUNCNAME); -} - diff --git a/src/mame/machine/mzr8300.cpp b/src/mame/machine/mzr8300.cpp deleted file mode 100644 index 9d1541a05ee..00000000000 --- a/src/mame/machine/mzr8300.cpp +++ /dev/null @@ -1,165 +0,0 @@ -// license:BSD-3-Clause -// copyright-holders:Joakim Larsson Edstrom -/*************************************************************************** - * - * Mizar VME8300 rev G 3U VME slave slot device - * - * 23/09/2015 - * - * This device was drycoded based on OS9 boot strap code on a Mizar mz8105 board - * which expects to find a SIO on the VME bus + photos of a Mizar 8300 board on Ebay - * I have found no formal documents for this board so far, so needs verification. - * - * || - * || - * || - * || - * ||____________________________________________________________ ___ - * \+++====|| U2|AM26LS32| | NEC | |74LS04N||74LS645 ||_| | - * \=/- o|| +--------+ | D7201C | ++-----+++----------+| | | - * | | || +-------+ +--------------------+ | | |SN74LS374N|| | | - * | | || U1| xxx | ____________________ | | +----------+| | | - * | | || +-------+ | NEC | |AMD | |SN74LS374N|| | | - * | | || | 7201C | |AM9513++----------+| | | - * | | || K10 +--------------------+ | APC ||PAL14L8 || |VME| - * | |==|| +-------+ K5 _______ | |+-----------+| | | - * | |==|| |MC1488P| K4 |SN74S38|| STC ||PAL20L8 || |P1 | - * | | || ++-------+--------+-+------++| |+-----------+| | | - * | | || K2 |AM26LS32|AM26LS32| 74S74 | |_____| |SN74LS244N|| | | - * | | || +--------+--------+--------+_______ +----------+| | | - * | | || | 74S74 | 74F85 | | | | - * | | || +-------+--------++-------++-------+ +----------+| | | - * /=\- o||J1 K1 U4| xxx | xxx | 74LS164| K6 |AM25LS2521|| | | - * /+++====|| J2 +-------+--------+--------+--------+ +----------+|_| | - * ||Rev G U3| MC1488| MC1488 | 74LS161| 74F85 | K8 | |___| - * ||-----------+-------+----------------------------------------- - * || - * || - * - * - * Misc links about this board: - * http://www.ebay.com/itm/MIZAR-INC-8300-0-01-REV-J-INTERFACE-CONTROL-BOARD-W-RIBBON-AND-PLATE-/231508658429?hash=item35e6fdc8fd - * - * Description - * ------------ - * The Mizar mz8300 is a Quad Serial board. - * - * - Single High (3U) VME Slave board - * - Two upd7201 SIO Serial Input/Ouput - * - One AM9513 STC System Timing Controller - * - * Address Map (just guesses based on driver software behaviours) - * -------------------------------------------------------------------------- - * Local VME Decscription - * ------------------------------------------------------------------------- - * n/a 0xff0000 0xff0003 mzr8105.c Bootstrap expects to find a - * UPD7201 serial device here - configurable! - * -------------------------------------------------------------------------- - * - * Interrupt sources MVME - * ---------------------------------------------------------- - * Description Device Lvl IRQ VME board - * /Board Vector Address - * ---------------------------------------------------------- - * On board Sources - * - * Off board Sources (other VME boards) - * - * ---------------------------------------------------------- - * - * DMAC Channel Assignments - * ---------------------------------------------------------- - * Channel - * ---------------------------------------------------------- - * - * TODO: - * - Setup a working address map (STARTED) - * - Get documentation for the board - * - Add VME bus interface - * - Hook up a CPU board that supports this board (mzr8105.c) - * - Get terminal working through this device over the VME interface - * - ****************************************************************************/ -#include "emu.h" -#include "includes/mzr8300.h" -#include "machine/z80sio.h" -#include "bus/rs232/rs232.h" -#include "machine/clock.h" - -#define LOG_GENERAL 0x01 -#define LOG_SETUP 0x02 -#define LOG_PRINTF 0x04 - -#define VERBOSE 0 // (LOG_PRINTF | LOG_SETUP | LOG_GENERAL) - -#define LOGMASK(mask, ...) do { if (VERBOSE & mask) logerror(__VA_ARGS__); } while (0) -#define LOGLEVEL(mask, level, ...) do { if ((VERBOSE & mask) >= level) logerror(__VA_ARGS__); } while (0) - -#define LOG(...) LOGMASK(LOG_GENERAL, __VA_ARGS__) -#define LOGSETUP(...) LOGMASK(LOG_SETUP, __VA_ARGS__) - -#if VERBOSE & LOG_PRINTF -#define logerror printf -#endif - -#ifdef _MSC_VER -#define FUNCNAME __func__ -#else -#define FUNCNAME __PRETTY_FUNCTION__ -#endif - -/* These values are borrowed just to get the terminal going and should be replaced - * once a proper serial board hardware (ie MZ 8300) is found and emulated. */ -#define BAUDGEN_CLOCK XTAL_19_6608MHz /* fake */ -#define SIO_CLOCK (BAUDGEN_CLOCK / 128) /* This will give prompt */ - -MACHINE_CONFIG_FRAGMENT( mzr8300 ) - MCFG_UPD7201_ADD("sio0", XTAL_4MHz, SIO_CLOCK, SIO_CLOCK, SIO_CLOCK, SIO_CLOCK ) - - MCFG_Z80SIO_OUT_TXDB_CB(DEVWRITELINE("rs232p1", rs232_port_device, write_txd)) - MCFG_Z80SIO_OUT_DTRB_CB(DEVWRITELINE("rs232p1", rs232_port_device, write_dtr)) - MCFG_Z80SIO_OUT_RTSB_CB(DEVWRITELINE("rs232p1", rs232_port_device, write_rts)) - - MCFG_RS232_PORT_ADD ("rs232p1", default_rs232_devices, "terminal") - MCFG_RS232_RXD_HANDLER (DEVWRITELINE ("sio0", upd7201N_device, rxb_w)) - MCFG_RS232_CTS_HANDLER (DEVWRITELINE ("sio0", upd7201N_device, ctsb_w)) - - MCFG_Z80SIO_ADD("sio1", XTAL_4MHz, 0, 0, 0, 0 ) -MACHINE_CONFIG_END - -const device_type VME_P1_MZR8300 = &device_creator; - -machine_config_constructor vme_p1_mzr8300_device::device_mconfig_additions() const -{ - return MACHINE_CONFIG_NAME( mzr8300 ); -} - -vme_p1_mzr8300_device::vme_p1_mzr8300_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : - device_t(mconfig, VME_P1_MZR8300, "Mizar 8300 quad channel SIO board", tag, owner, clock, "vme_mzr8300", __FILE__) - ,device_vme_p1_card_interface(mconfig, *this) - ,m_sio0(*this, "sio0") -{ -} - -vme_p1_mzr8300_device::vme_p1_mzr8300_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, uint32_t clock, const char *shortname, const char *source) : - device_t(mconfig, type, name, tag, owner, clock, shortname, source) - ,device_vme_p1_card_interface(mconfig, *this) - ,m_sio0(*this, "sio0") -{ -} - -//------------------------------------------------- -// device_start - device-specific startup -//------------------------------------------------- - -void vme_p1_mzr8300_device::device_start() -{ -} - -//------------------------------------------------- -// device_reset - device-specific reset -//------------------------------------------------- - -void vme_p1_mzr8300_device::device_reset() -{ -} diff --git a/src/mame/mame.lst b/src/mame/mame.lst index 176886b00b1..7bf23ce4aa5 100644 --- a/src/mame/mame.lst +++ b/src/mame/mame.lst @@ -27687,9 +27687,6 @@ mustachei // (c) 1987 IG SPA @source:mvme147.cpp mvme147 // (c) 1989 Motorola -@source:mvme350.cpp -mvme350 // - @source:mw18w.cpp 18w // 653 (c) 1979 Midway 18w2 // 653 (c) 1979 Midway diff --git a/src/mame/mess.flt b/src/mame/mess.flt index ee9d760fba5..d839ed106ff 100644 --- a/src/mame/mess.flt +++ b/src/mame/mess.flt @@ -373,7 +373,6 @@ mtx.cpp multi16.cpp multi8.cpp mvme147.cpp -mvme350.cpp mx2178.cpp myb3k.cpp mycom.cpp