summaryrefslogtreecommitdiffstatshomepage
path: root/src/emu/bus/imi7000
diff options
context:
space:
mode:
author Miodrag Milanovic <mmicko@gmail.com>2015-09-13 08:41:44 +0200
committer Miodrag Milanovic <mmicko@gmail.com>2015-09-13 08:41:44 +0200
commitf88cefad27a1737c76e09d99c9fb43e173506081 (patch)
tree2d8167d03579c46e226471747eb4407bd00ed6fa /src/emu/bus/imi7000
parente92ac9e0fa8e99869894bea00589bbb526be30aa (diff)
Move all devices into separate part of src tree (nw)
Diffstat (limited to 'src/emu/bus/imi7000')
-rw-r--r--src/emu/bus/imi7000/imi5000h.c478
-rw-r--r--src/emu/bus/imi7000/imi5000h.h89
-rw-r--r--src/emu/bus/imi7000/imi7000.c101
-rw-r--r--src/emu/bus/imi7000/imi7000.h132
4 files changed, 0 insertions, 800 deletions
diff --git a/src/emu/bus/imi7000/imi5000h.c b/src/emu/bus/imi7000/imi5000h.c
deleted file mode 100644
index ff57b942f17..00000000000
--- a/src/emu/bus/imi7000/imi5000h.c
+++ /dev/null
@@ -1,478 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Curt Coder
-/**********************************************************************
-
- IMI 5000H 5.25" Winchester Hard Disk Controller emulation
-
- Used in Corvus Systems H-Series drives (Model 6/11/20)
-
-**********************************************************************/
-
-#include "imi5000h.h"
-
-
-
-//**************************************************************************
-// MACROS / CONSTANTS
-//**************************************************************************
-
-#define Z80_TAG "u70"
-#define Z80CTC_TAG "u45"
-#define Z80PIO_0_TAG "u25"
-#define Z80PIO_2_TAG "u64"
-#define Z80PIO_3_TAG "u73"
-
-
-
-//**************************************************************************
-// DEVICE DEFINITIONS
-//**************************************************************************
-
-const device_type IMI5000H = &device_creator<imi5000h_device>;
-
-
-//-------------------------------------------------
-// ROM( imi5000h )
-//-------------------------------------------------
-
-ROM_START( imi5000h )
- ROM_REGION( 0x1000, Z80_TAG, 0 )
- ROM_LOAD( "c 7.63.u62", 0x0000, 0x1000, CRC(822aac68) SHA1(ab3ad7726ab20dd1041cb754d266e2f191fa3ec3) )
-
- ROM_REGION( 0x320, "proms", 0 )
- ROM_LOAD( "8152323-2a.u52", 0x000, 0x100, CRC(b36bc7e1) SHA1(de00b5bc17ff86b66af3e974dfd9b53245de12bd) )
- ROM_LOAD( "8152323-4a.u53", 0x100, 0x100, CRC(016fe2f7) SHA1(909f815a61e759fdf998674ee383512ecd8fee65) )
- ROM_LOAD( "8152323-1a.u54", 0x200, 0x100, CRC(512f1f39) SHA1(50c68289a19fdfca3665dbb0e98373608458c5d8) )
- ROM_LOAD( "8152323-3a.u71", 0x300, 0x020, CRC(b1092f02) SHA1(646c5a3e951535a80d24d9ce8764a3f373c508db) )
-ROM_END
-
-
-//-------------------------------------------------
-// rom_region - device-specific ROM region
-//-------------------------------------------------
-
-const rom_entry *imi5000h_device::device_rom_region() const
-{
- return ROM_NAME( imi5000h );
-}
-
-
-//-------------------------------------------------
-// ADDRESS_MAP( imi5000h_mem )
-//-------------------------------------------------
-
-static ADDRESS_MAP_START( imi5000h_mem, AS_PROGRAM, 8, imi5000h_device )
- ADDRESS_MAP_UNMAP_HIGH
- AM_RANGE(0x0000, 0x0fff) AM_MIRROR(0x1000) AM_ROM AM_REGION(Z80_TAG, 0)
- AM_RANGE(0x4000, 0x47ff) AM_MIRROR(0x1800) AM_RAM
- AM_RANGE(0x6000, 0x63ff) AM_MIRROR(0x1c00) AM_RAM
- AM_RANGE(0x8000, 0x83ff) AM_MIRROR(0x1c00) AM_RAM
- AM_RANGE(0xa000, 0xa3ff) AM_MIRROR(0x1c00) AM_RAM
-ADDRESS_MAP_END
-
-
-//-------------------------------------------------
-// ADDRESS_MAP( imi5000h_io )
-//-------------------------------------------------
-
-static ADDRESS_MAP_START( imi5000h_io, AS_IO, 8, imi5000h_device )
- ADDRESS_MAP_UNMAP_HIGH
- ADDRESS_MAP_GLOBAL_MASK(0x9f)
- AM_RANGE(0x00, 0x03) AM_DEVREADWRITE(Z80PIO_0_TAG, z80pio_device, read, write)
- AM_RANGE(0x08, 0x0b) AM_DEVREADWRITE(Z80PIO_2_TAG, z80pio_device, read, write)
- AM_RANGE(0x0c, 0x0f) AM_DEVREADWRITE(Z80PIO_3_TAG, z80pio_device, read, write)
- AM_RANGE(0x10, 0x13) AM_MIRROR(0x03) // BEGRDY
- AM_RANGE(0x14, 0x14) AM_MIRROR(0x03) // HSXCLR
- AM_RANGE(0x18, 0x18) AM_MIRROR(0x03) // XFERSTB
- AM_RANGE(0x1c, 0x1f) AM_DEVREADWRITE(Z80CTC_TAG, z80ctc_device, read, write)
-ADDRESS_MAP_END
-
-
-//-------------------------------------------------
-// z80_daisy_config z80_daisy_chain
-//-------------------------------------------------
-
-static const z80_daisy_config z80_daisy_chain[] =
-{
- { Z80PIO_0_TAG },
- { Z80CTC_TAG },
- { Z80PIO_2_TAG },
- { NULL }
-};
-
-
-//-------------------------------------------------
-// Z80CTC
-//-------------------------------------------------
-
-WRITE_LINE_MEMBER( imi5000h_device::ctc_z0_w )
-{
- m_ctc->trg1(state);
-}
-
-WRITE_LINE_MEMBER( imi5000h_device::ctc_z1_w )
-{
- m_ctc->trg2(state);
- m_ctc->trg3(state);
-}
-
-WRITE_LINE_MEMBER( imi5000h_device::ctc_z2_w )
-{
- //m_memory_enable = state;
- m_maincpu->set_input_line(INPUT_LINE_NMI, state);
-}
-
-//-------------------------------------------------
-// Z80PIO 1
-//-------------------------------------------------
-
-READ8_MEMBER( imi5000h_device::pio0_pa_r )
-{
- /*
-
- bit description
-
- 0 -SEEK COMPLETE
- 1 -SECTOR SIZE 2 (UB4:4)
- 2 -SECTOR SIZE 1 (UB4:1)
- 3 -SECTOR SEL
- 4 CRC ERROR
- 5 WRITE FAULT
- 6 -INDEX SEL
- 7
-
- */
-
- return 0;
-}
-
-WRITE8_MEMBER( imi5000h_device::pio0_pa_w )
-{
- /*
-
- bit description
-
- 0
- 1
- 2
- 3
- 4
- 5
- 6
- 7 ACTIVITY LED
-
- */
-}
-
-READ8_MEMBER( imi5000h_device::pio0_pb_r )
-{
- /*
-
- bit description
-
- 0 -READY
- 1
- 2
- 3
- 4
- 5
- 6
- 7
-
- */
-
- return 0;
-}
-
-WRITE8_MEMBER( imi5000h_device::pio0_pb_w )
-{
- /*
-
- bit description
-
- 0
- 1 DIRECTION IN
- 2 -HSXSTB
- 3 STEP
- 4 HEAD SEL 2^0
- 5 HEAD SEL 2^1
- 6 HEAD SEL 2^2
- 7 REDUCE WR CURRENT
-
- */
-}
-
-//-------------------------------------------------
-// Z80PIO 2
-//-------------------------------------------------
-
-READ8_MEMBER( imi5000h_device::pio2_pa_r )
-{
- /*
-
- bit description
-
- 0
- 1
- 2
- 3
- 4
- 5
- 6 -SYNC
- 7 -DRV.ACK
-
- */
-
- return 0;
-}
-
-WRITE8_MEMBER( imi5000h_device::pio2_pa_w )
-{
- /*
-
- bit description
-
- 0 BUS DIR
- 1 -DRV.ACK
- 2 -ALT SEL
- 3 -HSXFER
- 4 PIO RDY
- 5 -COMPL
- 6
- 7
-
- */
-}
-
-READ8_MEMBER( imi5000h_device::pio2_pb_r )
-{
- // command bus
- return 0;
-}
-
-WRITE8_MEMBER( imi5000h_device::pio2_pb_w )
-{
- // command bus
-}
-
-//-------------------------------------------------
-// Z80PIO 3
-//-------------------------------------------------
-
-READ8_MEMBER( imi5000h_device::pio3_pa_r )
-{
- /*
-
- bit description
-
- 0 -TIMEOUT DISABLE (UB4:8)
- 1 -UNIT SELECT 1 (UB4:7)
- 2 -UNIT SELECT 2 (UB4:6)
- 3 SYSTEM/-DIAG (UB4:5)
- 4 -RXD
- 5
- 6 -TRACK 00
- 7
-
- */
-
- return 0;
-}
-
-WRITE8_MEMBER( imi5000h_device::pio3_pa_w )
-{
- /*
-
- bit description
-
- 0
- 1
- 2
- 3
- 4
- 5 TXD
- 6
- 7 -WRITE DISABLE
-
- */
-}
-
-READ8_MEMBER( imi5000h_device::pio3_pb_r )
-{
- /*
-
- bit description
-
- 0
- 1
- 2 6MB1
- 3 -WRITE PROTECT (W2)
- 4 -FORMAT ENABLE
- 5 6MB2
- 6 12MB1
- 7 12MB2
-
- */
-
- return 0;
-}
-
-WRITE8_MEMBER( imi5000h_device::pio3_pb_w )
-{
- /*
-
- bit description
-
- 0 -DRV 1 SEL
- 1 -DRV 2 SEL
- 2
- 3
- 4
- 5
- 6
- 7
-
- */
-}
-
-//-------------------------------------------------
-// MACHINE_DRIVER( imi5000h )
-//-------------------------------------------------
-
-static MACHINE_CONFIG_FRAGMENT( imi5000h )
- MCFG_CPU_ADD(Z80_TAG, Z80, XTAL_8MHz/2)
- MCFG_CPU_CONFIG(z80_daisy_chain)
- MCFG_CPU_PROGRAM_MAP(imi5000h_mem)
- MCFG_CPU_IO_MAP(imi5000h_io)
-
- MCFG_DEVICE_ADD(Z80CTC_TAG, Z80CTC, XTAL_8MHz / 2)
- MCFG_Z80CTC_INTR_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
- MCFG_Z80CTC_ZC0_CB(WRITELINE(imi5000h_device, ctc_z0_w))
- MCFG_Z80CTC_ZC1_CB(WRITELINE(imi5000h_device, ctc_z1_w))
- MCFG_Z80CTC_ZC2_CB(WRITELINE(imi5000h_device, ctc_z2_w))
-
- MCFG_DEVICE_ADD(Z80PIO_0_TAG, Z80PIO, XTAL_8MHz/2)
- MCFG_Z80PIO_OUT_INT_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
- MCFG_Z80PIO_IN_PA_CB(READ8(imi5000h_device, pio0_pa_r))
- MCFG_Z80PIO_OUT_PA_CB(WRITE8(imi5000h_device, pio0_pa_w))
- MCFG_Z80PIO_OUT_ARDY_CB(DEVWRITELINE(Z80PIO_0_TAG, z80pio_device, strobe_a))
- MCFG_Z80PIO_IN_PB_CB(READ8(imi5000h_device, pio0_pb_r))
- MCFG_Z80PIO_OUT_PB_CB(WRITE8(imi5000h_device, pio0_pb_w))
- MCFG_Z80PIO_OUT_BRDY_CB(DEVWRITELINE(Z80PIO_0_TAG, z80pio_device, strobe_b))
-
- MCFG_DEVICE_ADD(Z80PIO_2_TAG, Z80PIO, XTAL_8MHz/2)
- MCFG_Z80PIO_OUT_INT_CB(INPUTLINE(Z80_TAG, INPUT_LINE_IRQ0))
- MCFG_Z80PIO_IN_PA_CB(READ8(imi5000h_device, pio2_pa_r))
- MCFG_Z80PIO_OUT_PA_CB(WRITE8(imi5000h_device, pio2_pa_w))
- MCFG_Z80PIO_OUT_ARDY_CB(DEVWRITELINE(Z80PIO_2_TAG, z80pio_device, strobe_a))
- MCFG_Z80PIO_IN_PB_CB(READ8(imi5000h_device, pio2_pb_r))
- MCFG_Z80PIO_OUT_PB_CB(WRITE8(imi5000h_device, pio2_pb_w))
-
- MCFG_DEVICE_ADD(Z80PIO_3_TAG, Z80PIO, XTAL_8MHz/2)
- MCFG_Z80PIO_IN_PA_CB(READ8(imi5000h_device, pio3_pa_r))
- MCFG_Z80PIO_OUT_PA_CB(WRITE8(imi5000h_device, pio3_pa_w))
- MCFG_Z80PIO_OUT_ARDY_CB(DEVWRITELINE(Z80PIO_3_TAG, z80pio_device, strobe_a))
- MCFG_Z80PIO_IN_PB_CB(READ8(imi5000h_device, pio3_pb_r))
- MCFG_Z80PIO_OUT_PB_CB(WRITE8(imi5000h_device, pio3_pb_w))
- MCFG_Z80PIO_OUT_BRDY_CB(DEVWRITELINE(Z80PIO_3_TAG, z80pio_device, strobe_b))
-
- //MCFG_HARDDISK_ADD("harddisk1")
-MACHINE_CONFIG_END
-
-
-//-------------------------------------------------
-// machine_config_additions - device-specific
-// machine configurations
-//-------------------------------------------------
-
-machine_config_constructor imi5000h_device::device_mconfig_additions() const
-{
- return MACHINE_CONFIG_NAME( imi5000h );
-}
-
-
-//-------------------------------------------------
-// INPUT_PORTS( imi5000h )
-//-------------------------------------------------
-
-static INPUT_PORTS_START( imi5000h )
- PORT_START("LSI-11")
- PORT_DIPNAME( 0x01, 0x00, "LSI-11" )
- PORT_DIPSETTING( 0x01, "Normal" )
- PORT_DIPSETTING( 0x00, "LSI-11" ) // emulate DEC RL01 and RL02
-
- PORT_START("MUX")
- PORT_DIPNAME( 0x01, 0x00, "MUX" )
- PORT_DIPSETTING( 0x01, "Single" )
- PORT_DIPSETTING( 0x00, "Multiplexer" ) // Corvus Multiplexer Network
-
- PORT_START("FORMAT")
- PORT_DIPNAME( 0x01, 0x00, "FORMAT" )
- PORT_DIPSETTING( 0x01, "Normal" ) // read controller firmware from cylinders 0 and 1
- PORT_DIPSETTING( 0x00, "Format" ) // drive ready after self-test, allow format
-
- PORT_START("RESET")
- PORT_BIT( 0x01, IP_ACTIVE_HIGH, IPT_OTHER ) PORT_NAME("RESET")
-
- PORT_START("UB4")
- PORT_DIPUNKNOWN_DIPLOC( 0x01, IP_ACTIVE_LOW, "UB4:1" )
- PORT_DIPUNKNOWN_DIPLOC( 0x02, IP_ACTIVE_LOW, "UB4:2" )
- PORT_DIPUNKNOWN_DIPLOC( 0x04, IP_ACTIVE_LOW, "UB4:3" )
- PORT_DIPUNKNOWN_DIPLOC( 0x08, IP_ACTIVE_LOW, "UB4:4" )
- PORT_DIPUNKNOWN_DIPLOC( 0x10, IP_ACTIVE_LOW, "UB4:5" )
- PORT_DIPUNKNOWN_DIPLOC( 0x20, IP_ACTIVE_LOW, "UB4:6" )
- PORT_DIPUNKNOWN_DIPLOC( 0x40, IP_ACTIVE_LOW, "UB4:7" )
- PORT_DIPUNKNOWN_DIPLOC( 0x80, IP_ACTIVE_LOW, "UB4:8" )
-INPUT_PORTS_END
-
-
-//-------------------------------------------------
-// input_ports - device-specific input ports
-//-------------------------------------------------
-
-ioport_constructor imi5000h_device::device_input_ports() const
-{
- return INPUT_PORTS_NAME( imi5000h );
-}
-
-
-
-//**************************************************************************
-// LIVE DEVICE
-//**************************************************************************
-
-//-------------------------------------------------
-// imi5000h_device - constructor
-//-------------------------------------------------
-
-imi5000h_device::imi5000h_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
- device_t(mconfig, IMI5000H, "IMI 5000H", tag, owner, clock, "imi5000h", __FILE__),
- device_imi7000_interface(mconfig, *this),
- m_maincpu(*this, Z80_TAG),
- m_ctc(*this, Z80CTC_TAG),
- m_lsi11(*this, "LSI-11"),
- m_mux(*this, "MUX"),
- m_format(*this, "FORMAT"),
- m_ub4(*this, "UB4")
-{
-}
-
-
-//-------------------------------------------------
-// device_start - device-specific startup
-//-------------------------------------------------
-
-void imi5000h_device::device_start()
-{
-}
-
-
-//-------------------------------------------------
-// device_reset - device-specific reset
-//-------------------------------------------------
-
-void imi5000h_device::device_reset()
-{
- m_maincpu->reset();
- m_ctc->reset();
-}
diff --git a/src/emu/bus/imi7000/imi5000h.h b/src/emu/bus/imi7000/imi5000h.h
deleted file mode 100644
index 2577293ae20..00000000000
--- a/src/emu/bus/imi7000/imi5000h.h
+++ /dev/null
@@ -1,89 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Curt Coder
-/**********************************************************************
-
- IMI 5000H 5.25" Winchester Hard Disk Controller emulation
-
- Used in Corvus Systems H-Series drives (Model 6/11/20)
-
-**********************************************************************/
-
-#pragma once
-
-#ifndef __IMI5000H__
-#define __IMI5000H__
-
-#include "emu.h"
-#include "imi7000.h"
-#include "cpu/z80/z80.h"
-#include "cpu/z80/z80daisy.h"
-#include "machine/z80ctc.h"
-#include "machine/z80pio.h"
-
-
-
-//**************************************************************************
-// TYPE DEFINITIONS
-//**************************************************************************
-
-// ======================> imi5000h_device
-
-class imi5000h_device : public device_t,
- public device_imi7000_interface
-{
-public:
- // construction/destruction
- imi5000h_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
-
- // optional information overrides
- virtual const rom_entry *device_rom_region() const;
- virtual machine_config_constructor device_mconfig_additions() const;
- virtual ioport_constructor device_input_ports() const;
-
- DECLARE_WRITE_LINE_MEMBER( ctc_z0_w );
- DECLARE_WRITE_LINE_MEMBER( ctc_z1_w );
- DECLARE_WRITE_LINE_MEMBER( ctc_z2_w );
-
- DECLARE_READ8_MEMBER( pio0_pa_r );
- DECLARE_WRITE8_MEMBER( pio0_pa_w );
- DECLARE_READ8_MEMBER( pio0_pb_r );
- DECLARE_WRITE8_MEMBER( pio0_pb_w );
-
- DECLARE_READ8_MEMBER( pio2_pa_r );
- DECLARE_WRITE8_MEMBER( pio2_pa_w );
- DECLARE_READ8_MEMBER( pio2_pb_r );
- DECLARE_WRITE8_MEMBER( pio2_pb_w );
-
- DECLARE_READ8_MEMBER( pio3_pa_r );
- DECLARE_WRITE8_MEMBER( pio3_pa_w );
- DECLARE_READ8_MEMBER( pio3_pb_r );
- DECLARE_WRITE8_MEMBER( pio3_pb_w );
-
-protected:
- // device-level overrides
- virtual void device_start();
- virtual void device_reset();
-
-private:
- enum
- {
- LED_FAULT,
- LED_BUSY,
- LED_READY
- };
-
- required_device<cpu_device> m_maincpu;
- required_device<z80ctc_device> m_ctc;
- required_ioport m_lsi11;
- required_ioport m_mux;
- required_ioport m_format;
- required_ioport m_ub4;
-};
-
-
-// device type definition
-extern const device_type IMI5000H;
-
-
-
-#endif
diff --git a/src/emu/bus/imi7000/imi7000.c b/src/emu/bus/imi7000/imi7000.c
deleted file mode 100644
index b67c980c466..00000000000
--- a/src/emu/bus/imi7000/imi7000.c
+++ /dev/null
@@ -1,101 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Curt Coder
-/**********************************************************************
-
- International Memories Incorporated IMI 7000 Series bus emulation
-
-**********************************************************************/
-
-#include "imi7000.h"
-
-
-
-//**************************************************************************
-// MACROS / CONSTANTS
-//**************************************************************************
-
-#define LOG 0
-
-
-
-//**************************************************************************
-// DEVICE DEFINITIONS
-//**************************************************************************
-
-const device_type IMI7000_BUS = &device_creator<imi7000_bus_device>;
-const device_type IMI7000_SLOT = &device_creator<imi7000_slot_device>;
-
-
-
-//**************************************************************************
-// DEVICE INTERFACE
-//**************************************************************************
-
-//-------------------------------------------------
-// device_imi7000_interface - constructor
-//-------------------------------------------------
-
-device_imi7000_interface::device_imi7000_interface(const machine_config &mconfig, device_t &device)
- : device_slot_card_interface(mconfig, device)
-{
-}
-
-
-
-//**************************************************************************
-// LIVE DEVICE
-//**************************************************************************
-
-//-------------------------------------------------
-// imi7000_slot_device - constructor
-//-------------------------------------------------
-
-imi7000_slot_device::imi7000_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
- device_t(mconfig, IMI7000_SLOT, "IMI 7000 slot", tag, owner, clock, "imi7000_slot", __FILE__),
- device_slot_interface(mconfig, *this)
-{
-}
-
-
-//-------------------------------------------------
-// device_start - device-specific startup
-//-------------------------------------------------
-
-void imi7000_slot_device::device_start()
-{
-}
-
-
-
-//**************************************************************************
-// LIVE DEVICE
-//**************************************************************************
-
-//-------------------------------------------------
-// imi7000_bus_device - constructor
-//-------------------------------------------------
-
-imi7000_bus_device::imi7000_bus_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock) :
- device_t(mconfig, IMI7000_BUS, "IMI 7000 bus", tag, owner, clock, "imi7000", __FILE__)
-{
-}
-
-
-//-------------------------------------------------
-// device_start - device-specific startup
-//-------------------------------------------------
-
-void imi7000_bus_device::device_start()
-{
-}
-
-
-//-------------------------------------------------
-// SLOT_INTERFACE( imi7000_devices )
-//-------------------------------------------------
-
-#include "imi5000h.h"
-
-SLOT_INTERFACE_START( imi7000_devices )
- SLOT_INTERFACE("imi5000h", IMI5000H)
-SLOT_INTERFACE_END
diff --git a/src/emu/bus/imi7000/imi7000.h b/src/emu/bus/imi7000/imi7000.h
deleted file mode 100644
index 257ad0c562c..00000000000
--- a/src/emu/bus/imi7000/imi7000.h
+++ /dev/null
@@ -1,132 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Curt Coder
-/**********************************************************************
-
- International Memories Incorporated IMI 7000 Series bus emulation
-
-**********************************************************************
-
- GND 1 2 GND
- SPARE 3 4 SPARE
- -SEL UNIT ADDR 3 5 6 -SEL UNIT ADDR 2
- +R/W DATA 7 8 -R/W DATA
- -SEL UNIT ADDR 1 9 10 -SEL UNIT ADDR 0
- +SYS CLOCK 11 12 -SYS CLOCK
- GND 13 14 GND
- -SECTOR 15 16 -INDEX
- -SEEK COMPLETE 17 18 -FAULT
- -CMD STROBE 19 20 -CMD R/W
- -CMD SELECT 0 21 22 -CMD SELECT 1
- SPARE 23 24 SPARE
- -CMD ACK 25 26 SPARE
- -CMD BUS 6 27 28 -CMD BUS 7
- -CMD BUS 4 29 30 -CMD BUS 5
- -CMD BUS 2 31 32 -CMD BUS 3
- -CMD BUS 0 33 34 -CMD BUS 1
-
-**********************************************************************/
-
-#pragma once
-
-#ifndef __IMI7000_BUS__
-#define __IMI7000_BUS__
-
-#include "emu.h"
-
-
-
-//**************************************************************************
-// CONSTANTS
-//**************************************************************************
-
-#define IMI7000_BUS_TAG "imi7000"
-
-
-
-//**************************************************************************
-// INTERFACE CONFIGURATION MACROS
-//**************************************************************************
-
-#define MCFG_IMI7000_BUS_ADD(_def_slot1, _def_slot2, _def_slot3, _def_slot4) \
- MCFG_DEVICE_ADD(IMI7000_BUS_TAG, IMI7000_BUS, 0) \
- MCFG_DEVICE_ADD(IMI7000_BUS_TAG":0", IMI7000_SLOT, 0) \
- MCFG_DEVICE_SLOT_INTERFACE(imi7000_devices, _def_slot1, false) \
- MCFG_DEVICE_ADD(IMI7000_BUS_TAG":1", IMI7000_SLOT, 0) \
- MCFG_DEVICE_SLOT_INTERFACE(imi7000_devices, _def_slot2, false) \
- MCFG_DEVICE_ADD(IMI7000_BUS_TAG":2", IMI7000_SLOT, 0) \
- MCFG_DEVICE_SLOT_INTERFACE(imi7000_devices, _def_slot3, false) \
- MCFG_DEVICE_ADD(IMI7000_BUS_TAG":3", IMI7000_SLOT, 0) \
- MCFG_DEVICE_SLOT_INTERFACE(imi7000_devices, _def_slot4, false)
-
-
-
-//**************************************************************************
-// TYPE DEFINITIONS
-//**************************************************************************
-
-class imi7000_slot_device;
-class device_imi7000_interface;
-
-
-// ======================> imi7000_bus_device
-
-class imi7000_bus_device : public device_t
-{
-public:
- // construction/destruction
- imi7000_bus_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
-
- void add_device(imi7000_slot_device *slot, device_t *target);
-
-protected:
- // device-level overrides
- virtual void device_start();
-
- imi7000_slot_device *m_unit[4];
-};
-
-
-// ======================> imi7000_slot_device
-
-class imi7000_slot_device : public device_t,
- public device_slot_interface
-{
-public:
- // construction/destruction
- imi7000_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock);
-
-protected:
- // device-level overrides
- virtual void device_start();
-
- device_imi7000_interface *m_card;
-};
-
-
-// ======================> device_imi7000_interface
-
-class device_imi7000_interface : public device_slot_card_interface
-{
- friend class imi7000_slot_device;
-
-public:
- // construction/destruction
- device_imi7000_interface(const machine_config &mconfig, device_t &device);
- virtual ~device_imi7000_interface() { }
-
-protected:
- imi7000_slot_device *m_slot;
-};
-
-
-// device type definition
-extern const device_type IMI7000_BUS;
-extern const device_type IMI7000_SLOT;
-
-
-// slot interface
-SLOT_INTERFACE_EXTERN( imi7000_devices );
-
-
-
-#endif