summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/isa
diff options
context:
space:
mode:
author andreasnaive <andreasnaive@gmail.com>2019-03-25 23:13:40 +0100
committer andreasnaive <andreasnaive@gmail.com>2019-03-25 23:13:40 +0100
commitb380514764cf857469bae61c11143a19f79a74c5 (patch)
tree63c8012e262618f08a332da31dd714281aa2c5ed /src/devices/bus/isa
parentc24473ddff715ecec2e258a6eb38960cf8c8e98e (diff)
Revert "conflict resolution (nw)"
This reverts commit c24473ddff715ecec2e258a6eb38960cf8c8e98e, reversing changes made to 009cba4fb8102102168ef32870892438327f3705.
Diffstat (limited to 'src/devices/bus/isa')
-rw-r--r--src/devices/bus/isa/3c503.cpp13
-rw-r--r--src/devices/bus/isa/3c505.cpp4
-rw-r--r--src/devices/bus/isa/adlib.cpp14
-rw-r--r--src/devices/bus/isa/aga.cpp25
-rw-r--r--src/devices/bus/isa/aha1542.cpp200
-rw-r--r--src/devices/bus/isa/aha1542.h54
-rw-r--r--src/devices/bus/isa/aha1542b.cpp126
-rw-r--r--src/devices/bus/isa/aha1542b.h57
-rw-r--r--src/devices/bus/isa/aha1542c.cpp323
-rw-r--r--src/devices/bus/isa/aha1542c.h95
-rw-r--r--src/devices/bus/isa/aha174x.cpp160
-rw-r--r--src/devices/bus/isa/aha174x.h61
-rw-r--r--src/devices/bus/isa/bt54x.cpp201
-rw-r--r--src/devices/bus/isa/bt54x.h74
-rw-r--r--src/devices/bus/isa/cga.cpp43
-rw-r--r--src/devices/bus/isa/cl_sh260.cpp93
-rw-r--r--src/devices/bus/isa/cl_sh260.h64
-rw-r--r--src/devices/bus/isa/dcb.cpp70
-rw-r--r--src/devices/bus/isa/dcb.h43
-rw-r--r--src/devices/bus/isa/dectalk.cpp1
-rw-r--r--src/devices/bus/isa/ega.cpp45
-rw-r--r--src/devices/bus/isa/ega.h2
-rw-r--r--src/devices/bus/isa/eis_sad8852.cpp11
-rw-r--r--src/devices/bus/isa/fdc.cpp5
-rw-r--r--src/devices/bus/isa/fdc.h1
-rw-r--r--src/devices/bus/isa/finalchs.cpp9
-rw-r--r--src/devices/bus/isa/gus.cpp22
-rw-r--r--src/devices/bus/isa/gus.h43
-rw-r--r--src/devices/bus/isa/hdc.cpp32
-rw-r--r--src/devices/bus/isa/hdc.h9
-rw-r--r--src/devices/bus/isa/ibm_mfc.cpp17
-rw-r--r--src/devices/bus/isa/isa.cpp92
-rw-r--r--src/devices/bus/isa/isa.h26
-rw-r--r--src/devices/bus/isa/isa_cards.cpp23
-rw-r--r--src/devices/bus/isa/lbaenhancer.cpp7
-rw-r--r--src/devices/bus/isa/mc1502_fdc.cpp12
-rw-r--r--src/devices/bus/isa/mda.cpp57
-rw-r--r--src/devices/bus/isa/mufdc.cpp5
-rw-r--r--src/devices/bus/isa/mufdc.h1
-rw-r--r--src/devices/bus/isa/ne1000.cpp13
-rw-r--r--src/devices/bus/isa/ne2000.cpp13
-rw-r--r--src/devices/bus/isa/np600.cpp76
-rw-r--r--src/devices/bus/isa/np600.h39
-rw-r--r--src/devices/bus/isa/num9rev.cpp21
-rw-r--r--src/devices/bus/isa/omti8621.cpp5
-rw-r--r--src/devices/bus/isa/omti8621.h1
-rw-r--r--src/devices/bus/isa/p1_fdc.cpp15
-rw-r--r--src/devices/bus/isa/p1_hdc.cpp26
-rw-r--r--src/devices/bus/isa/p1_sound.cpp20
-rw-r--r--src/devices/bus/isa/pc1640_iga.cpp4
-rw-r--r--src/devices/bus/isa/pds.cpp7
-rw-r--r--src/devices/bus/isa/pgc.cpp33
-rw-r--r--src/devices/bus/isa/sb16.cpp6
-rw-r--r--src/devices/bus/isa/sblaster.cpp37
-rw-r--r--src/devices/bus/isa/sc499.cpp7
-rw-r--r--src/devices/bus/isa/ssi2001.cpp2
-rw-r--r--src/devices/bus/isa/stereo_fx.cpp5
-rw-r--r--src/devices/bus/isa/svga_cirrus.cpp28
-rw-r--r--src/devices/bus/isa/svga_s3.cpp56
-rw-r--r--src/devices/bus/isa/svga_trident.cpp16
-rw-r--r--src/devices/bus/isa/svga_tseng.cpp16
-rw-r--r--src/devices/bus/isa/vga.cpp16
-rw-r--r--src/devices/bus/isa/vga_ati.cpp53
-rw-r--r--src/devices/bus/isa/wd1007a.cpp7
-rw-r--r--src/devices/bus/isa/wdxt_gen.cpp10
-rw-r--r--src/devices/bus/isa/wdxt_gen.h1
66 files changed, 724 insertions, 1949 deletions
diff --git a/src/devices/bus/isa/3c503.cpp b/src/devices/bus/isa/3c503.cpp
index 34202e2246d..424ce8bb082 100644
--- a/src/devices/bus/isa/3c503.cpp
+++ b/src/devices/bus/isa/3c503.cpp
@@ -5,13 +5,12 @@
#define SADDR 0xcc000
-void el2_3c503_device::device_add_mconfig(machine_config &config)
-{
- DP8390D(config, m_dp8390, 0);
- m_dp8390->irq_callback().set(FUNC(el2_3c503_device::el2_3c503_irq_w));
- m_dp8390->mem_read_callback().set(FUNC(el2_3c503_device::el2_3c503_mem_r));
- m_dp8390->mem_write_callback().set(FUNC(el2_3c503_device::el2_3c503_mem_w));
-}
+MACHINE_CONFIG_START(el2_3c503_device::device_add_mconfig)
+ MCFG_DEVICE_ADD("dp8390d", DP8390D, 0)
+ MCFG_DP8390D_IRQ_CB(WRITELINE(*this, el2_3c503_device, el2_3c503_irq_w))
+ MCFG_DP8390D_MEM_READ_CB(READ8(*this, el2_3c503_device, el2_3c503_mem_r))
+ MCFG_DP8390D_MEM_WRITE_CB(WRITE8(*this, el2_3c503_device, el2_3c503_mem_w))
+MACHINE_CONFIG_END
DEFINE_DEVICE_TYPE(EL2_3C503, el2_3c503_device, "el2_3c503", "3C503 Network Adapter")
diff --git a/src/devices/bus/isa/3c505.cpp b/src/devices/bus/isa/3c505.cpp
index 37cd5ef346a..71548dcbdaa 100644
--- a/src/devices/bus/isa/3c505.cpp
+++ b/src/devices/bus/isa/3c505.cpp
@@ -1644,9 +1644,7 @@ READ16_MEMBER(threecom3c505_device::read)
// omit excessive logging
if (data == last_data)
{
- // FIXME: space.device().state().pcbase() will crash mame with SIGSEGV (since mame0197)
- uint32_t pc = 0; // space.device().state().pcbase();
-
+ uint32_t pc = space.device().state().pcbase();
if (pc == last_pc)
{
return data;
diff --git a/src/devices/bus/isa/adlib.cpp b/src/devices/bus/isa/adlib.cpp
index 6a900b0e09d..814fdeaaf58 100644
--- a/src/devices/bus/isa/adlib.cpp
+++ b/src/devices/bus/isa/adlib.cpp
@@ -20,7 +20,7 @@ READ8_MEMBER( isa8_adlib_device::ym3812_16_r )
uint8_t retVal = 0xff;
switch(offset)
{
- case 0 : retVal = m_ym3812->status_port_r(); break;
+ case 0 : retVal = m_ym3812->status_port_r( space, offset ); break;
}
return retVal;
}
@@ -29,8 +29,8 @@ WRITE8_MEMBER( isa8_adlib_device::ym3812_16_w )
{
switch(offset)
{
- case 0 : m_ym3812->control_port_w(data); break;
- case 1 : m_ym3812->write_port_w(data); break;
+ case 0 : m_ym3812->control_port_w( space, offset, data ); break;
+ case 1 : m_ym3812->write_port_w( space, offset, data ); break;
}
}
@@ -44,11 +44,11 @@ DEFINE_DEVICE_TYPE(ISA8_ADLIB, isa8_adlib_device, "isa_adlib", "Ad Lib Sound Car
// device_add_mconfig - add device configuration
//-------------------------------------------------
-void isa8_adlib_device::device_add_mconfig(machine_config &config)
-{
+MACHINE_CONFIG_START(isa8_adlib_device::device_add_mconfig)
SPEAKER(config, "mono").front_center();
- YM3812(config, m_ym3812, ym3812_StdClock).add_route(ALL_OUTPUTS, "mono", 3.00);
-}
+ MCFG_DEVICE_ADD("ym3812", YM3812, ym3812_StdClock)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "mono", 3.00)
+MACHINE_CONFIG_END
//**************************************************************************
// LIVE DEVICE
diff --git a/src/devices/bus/isa/aga.cpp b/src/devices/bus/isa/aga.cpp
index e1c26328c44..9aa2810431b 100644
--- a/src/devices/bus/isa/aga.cpp
+++ b/src/devices/bus/isa/aga.cpp
@@ -273,13 +273,12 @@ MC6845_UPDATE_ROW( isa8_aga_device::aga_update_row )
}
-void isa8_aga_device::device_add_mconfig(machine_config &config)
-{
- screen_device &screen(SCREEN(config, AGA_SCREEN_NAME, SCREEN_TYPE_RASTER));
- screen.set_raw(XTAL(14'318'181), 912, 0, 640, 262, 0, 200);
- screen.set_screen_update(AGA_MC6845_NAME, FUNC(mc6845_device::screen_update));
+MACHINE_CONFIG_START(isa8_aga_device::device_add_mconfig)
+ MCFG_SCREEN_ADD( AGA_SCREEN_NAME, RASTER )
+ MCFG_SCREEN_RAW_PARAMS( XTAL(14'318'181),912,0,640,262,0,200 )
+ MCFG_SCREEN_UPDATE_DEVICE( AGA_MC6845_NAME, mc6845_device, screen_update )
- PALETTE(config, m_palette).set_entries(/* CGA_PALETTE_SETS * 16*/ 65536);
+ MCFG_PALETTE_ADD( "palette", /* CGA_PALETTE_SETS * 16*/ 65536 )
MC6845(config, m_mc6845, XTAL(14'318'181)/8);
m_mc6845->set_screen(AGA_SCREEN_NAME);
@@ -288,7 +287,7 @@ void isa8_aga_device::device_add_mconfig(machine_config &config)
m_mc6845->set_update_row_callback(FUNC(isa8_aga_device::aga_update_row), this);
m_mc6845->out_hsync_callback().set(FUNC(isa8_aga_device::hsync_changed));
m_mc6845->out_vsync_callback().set(FUNC(isa8_aga_device::vsync_changed));
-}
+MACHINE_CONFIG_END
/*************************************
@@ -690,7 +689,7 @@ READ8_MEMBER ( isa8_aga_device::pc_aga_mda_r )
/* return last written mc6845 address value here? */
break;
case 1: case 3: case 5: case 7:
- data = m_mc6845->register_r();
+ data = m_mc6845->register_r(space, offset);
break;
case 10:
data = m_vsync | 0x08 | m_hsync;
@@ -707,10 +706,10 @@ WRITE8_MEMBER ( isa8_aga_device::pc_aga_mda_w )
switch( offset )
{
case 0: case 2: case 4: case 6:
- m_mc6845->address_w(data);
+ m_mc6845->address_w( space, offset, data );
break;
case 1: case 3: case 5: case 7:
- m_mc6845->register_w(data);
+ m_mc6845->register_w( space, offset, data );
break;
case 8:
m_mda_mode_control = data;
@@ -741,7 +740,7 @@ READ8_MEMBER ( isa8_aga_device::pc_aga_cga_r )
/* return last written mc6845 address value here? */
break;
case 1: case 3: case 5: case 7:
- data = m_mc6845->register_r();
+ data = m_mc6845->register_r( space, offset);
break;
case 10:
data = m_vsync | ( ( data & 0x40 ) >> 4 ) | m_hsync;
@@ -792,10 +791,10 @@ WRITE8_MEMBER (isa8_aga_device:: pc_aga_cga_w )
if ( m_mode == AGA_COLOR ) {
switch(offset) {
case 0: case 2: case 4: case 6:
- m_mc6845->address_w(data);
+ m_mc6845->address_w( space, offset, data );
break;
case 1: case 3: case 5: case 7:
- m_mc6845->register_w(data);
+ m_mc6845->register_w( space, offset, data );
break;
case 8:
m_cga_mode_control = data;
diff --git a/src/devices/bus/isa/aha1542.cpp b/src/devices/bus/isa/aha1542.cpp
new file mode 100644
index 00000000000..8e260347eee
--- /dev/null
+++ b/src/devices/bus/isa/aha1542.cpp
@@ -0,0 +1,200 @@
+// license:BSD-3-Clause
+// copyright-holders:Darkstar
+/**********************************************************************
+ *
+ * Adaptec AHA-1542{,C,CF} SCSI Controller
+ *
+ **********************************************************************/
+
+/*
+ PCB layout
+ ----------
+ Floppy SCSI
+ +-----------+ +------------------+ +-
+ +-----+-----------+-+------------------+--+
+ | |
+ | DIPSW DS1 |\
+ | +-----+ | |
+ | | | Y1 +---+ TRM TRM | |
+ | | U3 | |U5 | |S|
+ | U8 +-----+ +---+ |C|
+ | +---+ +------+ +-------+ |S|
+ | |U13| |U15 | Y2 | | |I|
+ | +---+ +------+ | | | |
+ | |U16 | |U17 | | |
+ | +------+ +-------+ |/
+ +-----------------------------------------+
+ ||||||||| ||||||||||||||||||||||||| |
+
+
+ DIPSW sw1 - sw8
+ U3 Intel chip labelled "AHA-1542CF/552800-01 D/9346", probably FDC (82077)
+ U5 Z84C0010VEC
+ U8 EEPROM(?) labelled 545120A
+ U13 CXK5864CM-10LL (64kbit SRAM)
+ U15 M27C256B labelled "ADAPTEC INC/553801-00 C/MCODE 563D/(C) 1993"
+ U16 M27C256B labelled "ADAPTEC INC/553601-00 C/BIOS C38D/(C) 1993"
+ U17 AIC-7970Q
+ Y1 XTAL SRX4054 93-38
+ Y2 XTAL SRX4053 93-40
+ TRM Dallas DS2107AS (SCSI termination)
+ DS1 LED
+
+*/
+
+/*
+ * The PCB has a couple of DIP switches:
+ *
+ * sw1 on enable termination
+ * off software-controlled termination
+ *
+ * sw2 sw3 sw4 I/O Port
+ * off off off 0x330 - 0x333 (default)
+ * on off off 0x334 - 0x337
+ * off on off 0x230 - 0x233
+ * on on off 0x234 - 0x237
+ * off off on 0x130 - 0x133
+ * on off on 0x134 - 0x137
+ * off on on reserved
+ * on on on reserved
+ *
+ * sw5 on disable floppy interface
+ * off enable floppy interface
+ *
+ * sw6 sw7 sw8 BIOS base address
+ * off off off 0xdc000 (default)
+ * on off off 0xd8000
+ * off on off 0xd4000
+ * on on off 0xd0000
+ * off off on 0xcc000
+ * on off on 0xc8000
+ * off on on reserved
+ * on on on BIOS disabled
+ *
+ * source: http://download.adaptec.com/pdfs/installation_guides/1540cfig.pdf
+ */
+
+#include "emu.h"
+#include "aha1542.h"
+#include "cpu/z80/z80.h"
+
+// I/O Port interface
+// READ Port x+0: STATUS
+// WRITE Port x+0: CONTROL
+//
+// READ Port x+1: DATA
+// WRITE Port x+1: COMMAND
+//
+// READ Port x+2: INTERRUPT STATUS
+// WRITE Port x+2: (undefined?)
+//
+// R/W Port x+3: (undefined)
+
+// READ STATUS flags
+#define STAT_STST 0x80 // self-test in progress
+#define STAT_DIAGF 0x40 // internal diagnostic failure
+#define STAT_INIT 0x20 // mailbox initialization required
+#define STAT_IDLE 0x10 // HBA is idle
+#define STAT_CDFULL 0x08 // Command/Data output port is full
+#define STAT_DFULL 0x04 // Data input port is full
+#define STAT_INVCMD 0x01 // Invalid command
+
+// READ INTERRUPT STATUS flags
+#define INTR_ANY 0x80 // any interrupt
+#define INTR_SRCD 0x08 // SCSI reset detected
+#define INTR_HACC 0x04 // HA command complete
+#define INTR_MBOA 0x02 // MBO empty
+#define INTR_MBIF 0x01 // MBI full
+
+// WRITE CONTROL commands
+#define CTRL_HRST 0x80 // Hard reset
+#define CTRL_SRST 0x40 // Soft reset
+#define CTRL_IRST 0x20 // interrupt reset
+#define CTRL_SCRST 0x10 // SCSI bus reset
+
+// READ/WRITE DATA commands
+#define CMD_NOP 0x00 // No operation
+#define CMD_MBINIT 0x01 // mailbox initialization
+#define CMD_START_SCSI 0x02 // Start SCSI command
+#define CMD_BIOSCMD 0x03 // undocumented BIOS conmmand (shadow RAM etc.)
+#define CMD_INQUIRY 0x04 // Adapter inquiry
+#define CMD_EMBOI 0x05 // enable Mailbox Out Interrupt
+#define CMD_SELTIMEOUT 0x06 // Set SEL timeout
+#define CMD_BUSON_TIME 0x07 // set bus-On time
+#define CMD_BUSOFF_TIME 0x08 // set bus-off time
+#define CMD_DMASPEED 0x09 // set ISA DMA speed
+#define CMD_RETDEVS 0x0a // return installed devices
+#define CMD_RETCONF 0x0b // return configuration data
+#define CMD_TARGET 0x0c // set HBA to target mode
+#define CMD_RETSETUP 0x0d // return setup data
+#define CMD_ECHO 0x1f // ECHO command data (NetBSD says it is 0x1e)
+
+// these are for 1541C only:
+#define CMD_RETDEVSHI 0x23 // return devices 8-15 (from NetBSD)
+#define CMD_EXTBIOS 0x28 // return extended BIOS information
+#define CMD_MBENABLE 0x29 // set mailbox interface enable
+
+DEFINE_DEVICE_TYPE(AHA1542, aha1542_device, "aha1542", "AHA1542 SCSI Controller")
+
+#define Z84C0010_TAG "u5"
+
+READ8_MEMBER( aha1542_device::aha1542_r )
+{
+ logerror("%s aha1542_r(): offset=%d\n", machine().describe_context(), offset);
+ return 0xff;
+}
+
+WRITE8_MEMBER( aha1542_device::aha1542_w )
+{
+ logerror("%s aha1542_w(): offset=%d data=0x%02x\n", machine().describe_context(), offset, data);
+}
+
+//-------------------------------------------------
+// ROM( aha1542 )
+//-------------------------------------------------
+
+ROM_START( aha1542 )
+ ROM_REGION( 0x8000, "aha1542", 0 )
+ ROM_LOAD( "553601-00.u16", 0x0000, 0x8000, CRC(ab22fc02) SHA1(f9f783e0272fc14ba3de32316997f1f6cadc67d0) ) /* Adaptec 1540CF/1542CF BIOS v2.01 */
+
+ ROM_REGION( 0x8000, Z84C0010_TAG, 0 )
+ ROM_LOAD( "553801-00.u15", 0x0000, 0x8000, CRC(7824397e) SHA1(35bc2c8fab31aad3190a478f2dc8f3a72958cf04) ) /* ADAPTEC, INC MCODE */
+ROM_END
+
+void aha1542_device::z84c0010_mem(address_map &map)
+{
+ map(0x0000, 0x7fff).rom().region(Z84C0010_TAG, 0);
+ map(0x8000, 0x800f).noprw(); // something is mapped there
+ map(0x9000, 0xafff).ram(); // 2kb RAM chip
+ map(0xe000, 0xe0ff).ram(); // probably PC<->Z80 communication area
+ map(0xb000, 0xb000).noprw(); // something?
+}
+
+const tiny_rom_entry *aha1542_device::device_rom_region() const
+{
+ return ROM_NAME( aha1542 );
+}
+
+MACHINE_CONFIG_START(aha1542_device::device_add_mconfig)
+ MCFG_DEVICE_ADD(Z84C0010_TAG, Z80, XTAL(12'000'000))
+ MCFG_DEVICE_PROGRAM_MAP( z84c0010_mem )
+MACHINE_CONFIG_END
+
+aha1542_device::aha1542_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
+ device_t(mconfig, AHA1542, tag, owner, clock),
+ device_isa16_card_interface(mconfig, *this)
+{
+}
+
+void aha1542_device::device_start()
+{
+ set_isa_device();
+ m_isa->install_rom(this, 0xdc000, 0xdffff, "aha1542", "aha1542");
+ m_isa->install_device(0x330, 0x333, read8_delegate(FUNC( aha1542_device::aha1542_r ), this),
+ write8_delegate(FUNC( aha1542_device::aha1542_w ), this) );
+}
+
+
+void aha1542_device::device_reset()
+{
+}
diff --git a/src/devices/bus/isa/aha1542.h b/src/devices/bus/isa/aha1542.h
new file mode 100644
index 00000000000..cc84c2ea55b
--- /dev/null
+++ b/src/devices/bus/isa/aha1542.h
@@ -0,0 +1,54 @@
+// license:BSD-3-Clause
+// copyright-holders:Darkstar
+/**********************************************************************
+ *
+ * Adaptec AHA-1542{,C,CF} SCSI Controller
+ *
+ **********************************************************************
+
+
+
+ **********************************************************************/
+
+#ifndef MAME_BUS_AHA1542_H
+#define MAME_BUS_AHA1542_H
+
+#pragma once
+
+
+#include "isa.h"
+
+//*********************************************************************
+// TYPE DEFINITIONS
+//*********************************************************************
+
+// ====================> aha1542_device
+
+class aha1542_device : public device_t,
+ public device_isa16_card_interface
+{
+public:
+ static constexpr feature_type unemulated_features() { return feature::DISK; }
+ // construction/destruction
+ aha1542_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ DECLARE_READ8_MEMBER( aha1542_r );
+ DECLARE_WRITE8_MEMBER( aha1542_w );
+
+protected:
+ // device-level overrides
+ virtual void device_start() override;
+ virtual void device_reset() override;
+
+ // optional information overrides
+ virtual const tiny_rom_entry *device_rom_region() const override;
+ virtual void device_add_mconfig(machine_config &config) override;
+
+private:
+ void z84c0010_mem(address_map &map);
+};
+
+// device type definition
+DECLARE_DEVICE_TYPE(AHA1542, aha1542_device)
+
+#endif // MAME_BUS_AHA1542_H
diff --git a/src/devices/bus/isa/aha1542b.cpp b/src/devices/bus/isa/aha1542b.cpp
deleted file mode 100644
index e0073cbbd68..00000000000
--- a/src/devices/bus/isa/aha1542b.cpp
+++ /dev/null
@@ -1,126 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:AJR
-/***************************************************************************
-
- Adaptec AHA-1540/42A and AHA-1540/42B SCSI controllers
-
- The alternate BIOSes using port 334h instead of 330h are provided due
- to certain MIDI cards requiring the 330h port.
-
-***************************************************************************/
-
-#include "emu.h"
-#include "aha1542b.h"
-
-#include "cpu/i8085/i8085.h"
-#include "machine/aic6250.h"
-#include "machine/nscsi_bus.h"
-#include "machine/nscsi_hd.h"
-
-
-DEFINE_DEVICE_TYPE(AHA1542A, aha1542a_device, "aha1542a", "AHA-1542A SCSI Controller")
-DEFINE_DEVICE_TYPE(AHA1542B, aha1542b_device, "aha1542b", "AHA-1542B SCSI Controller")
-
-
-aha154x_device::aha154x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock)
- : device_t(mconfig, type, tag, owner, clock)
- , device_isa16_card_interface(mconfig, *this)
- , m_fdc(*this, "fdc")
- , m_bios(*this, "bios")
-{
-}
-
-aha1542a_device::aha1542a_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
- : aha154x_device(mconfig, AHA1542A, tag, owner, clock)
-{
-}
-
-aha1542b_device::aha1542b_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
- : aha154x_device(mconfig, AHA1542B, tag, owner, clock)
-{
-}
-
-void aha154x_device::device_start()
-{
-}
-
-void aha154x_device::i8085_map(address_map &map)
-{
- map(0x0000, 0x3fff).rom().region("mcode", 0);
- map(0x8000, 0x800f).m("scsi:7:scsic", FUNC(aic6250_device::map));
- map(0xe000, 0xe7ff).ram();
-}
-
-static void aha154x_scsi_devices(device_slot_interface &device)
-{
- device.option_add("harddisk", NSCSI_HARDDISK);
- device.option_add_internal("scsic", AIC6250);
-}
-
-void aha154x_device::scsic_config(device_t *device)
-{
- device->set_clock(20'000'000);
- downcast<aic6250_device &>(*device).int_cb().set_inputline("^^localcpu", I8085_RST65_LINE);
-}
-
-void aha154x_device::device_add_mconfig(machine_config &config)
-{
- i8085a_cpu_device &localcpu(I8085A(config, "localcpu", 10'000'000));
- localcpu.set_addrmap(AS_PROGRAM, &aha154x_device::i8085_map);
-
- NSCSI_BUS(config, "scsi");
- NSCSI_CONNECTOR(config, "scsi:0", aha154x_scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsi:1", aha154x_scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsi:2", aha154x_scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsi:3", aha154x_scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsi:4", aha154x_scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsi:5", aha154x_scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsi:6", aha154x_scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsi:7", aha154x_scsi_devices, "scsic", true)
- .set_option_machine_config("scsic", [this] (device_t *device) { scsic_config(device); });
-
- DP8473(config, m_fdc, 24_MHz_XTAL);
-}
-
-
-ROM_START(aha1542a)
- ROM_REGION(0x4000, "bios", 0)
- ROM_LOAD("b_9700.bin", 0x0000, 0x4000, CRC(35f546e9) SHA1(f559b08f52044f53836021a83f56f628e32216bd))
-
- ROM_REGION(0x4000, "mcode", 0)
- ROM_LOAD("m_e7bc.bin", 0x0000, 0x4000, CRC(985b7a31) SHA1(bba0d84fa1b67ea71905953c25201fa2020cf465))
-ROM_END
-
-ROM_START(aha1542b)
- ROM_REGION(0x4000, "bios", 0)
- ROM_SYSTEM_BIOS(0, "v310", "AT/SCSI BIOS Version 3.10")
- ROMX_LOAD("adaptec_inc_420412-00_b_bios_bc00_1990.bin", 0x0000, 0x4000, CRC(bd3f74e7) SHA1(c38d82fd50e5439812fa093e0d4f5fd136c63844), ROM_BIOS(0))
- ROM_SYSTEM_BIOS(1, "v310a", "AT/SCSI BIOS Version 3.10A (port 334h)")
- ROMX_LOAD("154xp334.bin", 0x0000, 0x4000, CRC(4911f232) SHA1(2e24ce380c6f7694c45484019857cb919e2a9965), ROM_BIOS(1))
- ROM_SYSTEM_BIOS(2, "v311", "AT/SCSI BIOS Version 3.11")
- ROMX_LOAD("bios_c900.u13", 0x0000, 0x4000, CRC(4660d0c1) SHA1(a581291de96836b6f6cc0b6244b8fa1ee333346a), ROM_BIOS(2))
- ROM_SYSTEM_BIOS(3, "v320g", "AT/SCSI BIOS Version 3.20 (> 1 GB support)")
- ROMX_LOAD("b_bd00.bin", 0x0000, 0x4000, CRC(2387197b) SHA1(703e1fe1ba924c02d617ac37ec7a20e12bef1cc7), ROM_BIOS(3))
- ROM_SYSTEM_BIOS(4, "v320gt", "AT/SCSI BIOS Version 3.20 (extended timeout)")
- ROMX_LOAD("b_b300.bin", 0x0000, 0x4000, CRC(4c5b07d8) SHA1(692e824f916f55519c9905839f5f6609f5e8c0a5), ROM_BIOS(4))
- ROM_SYSTEM_BIOS(5, "v320a", "AT/SCSI BIOS Version 3.20Alt (port 334h)")
- ROMX_LOAD("b_ac00.bin", 0x0000, 0x4000, CRC(becd6d08) SHA1(b5e7cbdeb241c1ff57602291e87c58ac0ee72d54), ROM_BIOS(5))
-
- ROM_REGION(0x4000, "mcode", 0)
- ROMX_LOAD("adaptec_inc_434108-00_a_mcode_fc8a_1990.bin", 0x0000, 0x4000, CRC(6801f89e) SHA1(33d36bc93734105b950414e7c433a283032838e9), ROM_BIOS(0))
- ROMX_LOAD("adaptec_inc_434108-00_a_mcode_fc8a_1990.bin", 0x0000, 0x4000, CRC(6801f89e) SHA1(33d36bc93734105b950414e7c433a283032838e9), ROM_BIOS(1)) // assumed compatible with v310a BIOS
- ROMX_LOAD("firmware_62d3.u12", 0x0000, 0x4000, CRC(6056ca33) SHA1(8dd4aaffcb107dbcc85ac87d878fa6093b904a20), ROM_BIOS(2))
- ROMX_LOAD("m_3054.bin", 0x0000, 0x4000, CRC(461b1885) SHA1(50dc49b0fd88b116b83e3c71f58c758b618d1ddf), ROM_BIOS(3))
- ROMX_LOAD("m_5d98.bin", 0x0000, 0x4000, CRC(f7d51536) SHA1(5ad1bb4bde3e8c30380b05d32ac273c781ab12a8), ROM_BIOS(4)) // also provided with v320g BIOS
- ROMX_LOAD("m_3054.bin", 0x0000, 0x4000, CRC(461b1885) SHA1(50dc49b0fd88b116b83e3c71f58c758b618d1ddf), ROM_BIOS(5))
-ROM_END
-
-const tiny_rom_entry *aha1542a_device::device_rom_region() const
-{
- return ROM_NAME(aha1542a);
-}
-
-const tiny_rom_entry *aha1542b_device::device_rom_region() const
-{
- return ROM_NAME(aha1542b);
-}
diff --git a/src/devices/bus/isa/aha1542b.h b/src/devices/bus/isa/aha1542b.h
deleted file mode 100644
index 95e379cb137..00000000000
--- a/src/devices/bus/isa/aha1542b.h
+++ /dev/null
@@ -1,57 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:AJR
-/***************************************************************************
-
- Adaptec AHA-1540/42A and AHA-1540/42B SCSI controllers
-
-***************************************************************************/
-
-#ifndef MAME_BUS_ISA_AHA1542B_H
-#define MAME_BUS_ISA_AHA1542B_H
-
-#pragma once
-
-#include "isa.h"
-#include "machine/upd765.h"
-
-class aha154x_device : public device_t, public device_isa16_card_interface
-{
-protected:
- aha154x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock);
-
- virtual void device_start() override;
- virtual void device_add_mconfig(machine_config &config) override;
-
- void i8085_map(address_map &map);
- void scsic_config(device_t *device);
-
- required_device<upd765_family_device> m_fdc;
- required_region_ptr<u8> m_bios;
-};
-
-class aha1542a_device : public aha154x_device
-{
-public:
- aha1542a_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
-
- static constexpr feature_type unemulated_features() { return feature::DISK; }
-
-protected:
- virtual const tiny_rom_entry *device_rom_region() const override;
-};
-
-class aha1542b_device : public aha154x_device
-{
-public:
- aha1542b_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
-
- static constexpr feature_type unemulated_features() { return feature::DISK; }
-
-protected:
- virtual const tiny_rom_entry *device_rom_region() const override;
-};
-
-DECLARE_DEVICE_TYPE(AHA1542A, aha1542a_device)
-DECLARE_DEVICE_TYPE(AHA1542B, aha1542b_device)
-
-#endif // MAME_BUS_ISA_AHA1542B_H
diff --git a/src/devices/bus/isa/aha1542c.cpp b/src/devices/bus/isa/aha1542c.cpp
deleted file mode 100644
index efb8181061c..00000000000
--- a/src/devices/bus/isa/aha1542c.cpp
+++ /dev/null
@@ -1,323 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Darkstar
-/**********************************************************************
- *
- * Adaptec AHA-1542{C,CF,CP} SCSI Controller
- *
- **********************************************************************/
-
-/*
-Hardware info by Guru
-
-Adaptec 1993
-
-PCB Layout
-----------
-
-Adaptec AHA-1542CF/1542CF
-FCC ID: FGT1542CF
-FAB 545107-00 REV C
-ASSY 545106-00
-
-|-------|---------------|---|-------------------|--|
-| J1 | FLOPPY34 | | SCSI50 | |
-| |---------------| |-------------------| |
-| S1 DS1 |
-| |
-| |------| DS2107AS DS2107AS |--|
-| |PC8477| 24MHz Z84C0010 | |
-| PAL |BV-1 | |S |
-| | | |----------| | |
-| |------| | | |C |
-| 93C46.U11 20MHz | | | |
-| UM6264 MCODE.U15 |ADAPTEC | |S |
-| |AIC-7970Q | | |
-| BIOS.U16 | | |I |
-| | | | |
-| |----------| |--|
-| |
-|-| |--| |----|
- |--------------| |-------------------------|
-
-Notes:
- J1 - 4-position header for drive activity external LED connection
- S1 - 8-position DIP Switch (See Table A)
- PC8477BV-1 - National Semiconductor PC8477BV-1 'SuperFDC' Advanced Floppy Disk Controller (PLCC68)
- This is software compatible with NEC uPD765 and pin compatible with Intel 82077AA
- Labelled "AHA-1542CF/552800-01 F/9513"
- Clock input 24.000MHz
- SCSI - 50-pin Centronics style external SCSI connector (DDK 57AE-40500-21D)
- Z84C0010 - Zilog Z84C0010VEC Z80 CPU. Clock input 20/2 [10.000MHz] sourced from AIC-7970Q (PLCC44)
- 93C46.U11 - Atmel 93C46 128b x8-bit / 64b x16-bit (1kB) EEPROM labelled '545120A' (SOIC8)
- 6264 - Unicorn Microelectronics UM6264BM-10L 8k x8-bit Static RAM (SOJ28)
- MCODE.U15 - ST Microelectronics M27C256B 32k x8-bit EPROM labelled 'ADAPTEC INC 553801-00 E MCODE 4B81' (DIP28)
- BIOS.U16 - ST Microelectronics M27C256B 32k x8-bit EPROM labelled 'ADAPTEC INC 553601-00 E BIOS 7600' (DIP28)
- BIOS 0x7600h is revision 2.10
- PAL - AMD PALCE16V8H-15JC/4 PAL (SOJ20)
- AIC-7970Q - Adaptec AIC-7970Q Fast SCSI Controller IC. Clock input 20.000MHz (QFP144)
- DS2107AS - Dallas DS2107AS SCSI Active Terminator (SOIC16)
- DS1 - Internal Drive Activity LED
- SCSI50 - 50-pin Right Angled Flat Cable Connector With Support For Up To 7 SCSI Drives
- FLOPPY34 - 34-pin Right Angled Flat Cable Connector With Support For Up To 2 Floppy Drives (360kb,720kb,1.2MB,1.44MB)
-
-
-Table A - S1 DIP Switch Description
------------------------------------
-
-Default: All DIP Switches OFF (i.e. Settings changed via BIOS and saved in EEPROM)
-Software Defaults = *
-----------------------+-----+-----+-----+-----+-----+-----+-----+-----+
- | SW1 | SW2 | SW3 | SW4 | SW5 | SW6 | SW7 | SW8 |
-----------------------|-----+-----+-----+-----+-----+-----+-----+-----+
-Termination Enabled | ON | | | | | | | |
- Set In BIOS*| OFF | | | | | | | |
-----------------------+-----+-----+-----+-----+ | | | |
-I/O Port 330H*| | OFF | OFF | OFF | | | | |
- 334H | | ON | OFF | OFF | | | | |
- 230H | | OFF | ON | OFF | | | | |
- 234H | | ON | ON | OFF | | | | |
- 130H | | OFF | OFF | ON | | | | |
- 134H | | ON | OFF | ON | | | | |
- Reserved | | OFF | ON | ON | | | | |
- Reserved | | ON | ON | ON | | | | |
-----------------------+-----+-----+-----+-----+-----+ | | |
-Enable Floppy Yes*| | OFF | | | |
- No | | ON | | | |
-----------------------+-----------------------+-----+-----+-----+-----+
-BIOS Address DC000H*| | OFF | OFF | OFF |
- D8000H | | ON | OFF | OFF |
- D4000H | | OFF | ON | OFF |
- D0000H | | ON | ON | OFF |
- CC000H | | OFF | OFF | ON |
- C8000H | | ON | OFF | ON |
- Reserved | | OFF | ON | ON |
- BIOS Disabled | | ON | ON | ON |
-----------------------+-----------------------------+-----+-----+-----+
-
-Documentation:
-Adaptec AHA-1540CF/1542CF Installation Guide
-http://download.adaptec.com/pdfs/installation_guides/aha1540cf_ig.pdf
- */
-
-#include "emu.h"
-#include "aha1542c.h"
-#include "cpu/z80/z80.h"
-
-// I/O Port interface
-// READ Port x+0: STATUS
-// WRITE Port x+0: CONTROL
-//
-// READ Port x+1: DATA
-// WRITE Port x+1: COMMAND
-//
-// READ Port x+2: INTERRUPT STATUS
-// WRITE Port x+2: (undefined?)
-//
-// R/W Port x+3: (undefined)
-
-// READ STATUS flags
-#define STAT_STST 0x80 // self-test in progress
-#define STAT_DIAGF 0x40 // internal diagnostic failure
-#define STAT_INIT 0x20 // mailbox initialization required
-#define STAT_IDLE 0x10 // HBA is idle
-#define STAT_CDFULL 0x08 // Command/Data output port is full
-#define STAT_DFULL 0x04 // Data input port is full
-#define STAT_INVCMD 0x01 // Invalid command
-
-// READ INTERRUPT STATUS flags
-#define INTR_ANY 0x80 // any interrupt
-#define INTR_SRCD 0x08 // SCSI reset detected
-#define INTR_HACC 0x04 // HA command complete
-#define INTR_MBOA 0x02 // MBO empty
-#define INTR_MBIF 0x01 // MBI full
-
-// WRITE CONTROL commands
-#define CTRL_HRST 0x80 // Hard reset
-#define CTRL_SRST 0x40 // Soft reset
-#define CTRL_IRST 0x20 // interrupt reset
-#define CTRL_SCRST 0x10 // SCSI bus reset
-
-// READ/WRITE DATA commands
-#define CMD_NOP 0x00 // No operation
-#define CMD_MBINIT 0x01 // mailbox initialization
-#define CMD_START_SCSI 0x02 // Start SCSI command
-#define CMD_BIOSCMD 0x03 // undocumented BIOS conmmand (shadow RAM etc.)
-#define CMD_INQUIRY 0x04 // Adapter inquiry
-#define CMD_EMBOI 0x05 // enable Mailbox Out Interrupt
-#define CMD_SELTIMEOUT 0x06 // Set SEL timeout
-#define CMD_BUSON_TIME 0x07 // set bus-On time
-#define CMD_BUSOFF_TIME 0x08 // set bus-off time
-#define CMD_DMASPEED 0x09 // set ISA DMA speed
-#define CMD_RETDEVS 0x0a // return installed devices
-#define CMD_RETCONF 0x0b // return configuration data
-#define CMD_TARGET 0x0c // set HBA to target mode
-#define CMD_RETSETUP 0x0d // return setup data
-#define CMD_ECHO 0x1f // ECHO command data (NetBSD says it is 0x1e)
-
-// these are for 1541C only:
-#define CMD_RETDEVSHI 0x23 // return devices 8-15 (from NetBSD)
-#define CMD_EXTBIOS 0x28 // return extended BIOS information
-#define CMD_MBENABLE 0x29 // set mailbox interface enable
-
-DEFINE_DEVICE_TYPE(AHA1542C, aha1542c_device, "aha1542c", "AHA-1542C SCSI Controller")
-DEFINE_DEVICE_TYPE(AHA1542CF, aha1542cf_device, "aha1542cf", "AHA-1542CF SCSI Controller")
-DEFINE_DEVICE_TYPE(AHA1542CP, aha1542cp_device, "aha1542cp", "AHA-1542CP SCSI Controller")
-
-#define Z84C0010_TAG "z84c0010"
-
-READ8_MEMBER( aha1542c_device::aha1542_r )
-{
- logerror("%s aha1542_r(): offset=%d\n", machine().describe_context(), offset);
- return 0xff;
-}
-
-WRITE8_MEMBER( aha1542c_device::aha1542_w )
-{
- logerror("%s aha1542_w(): offset=%d data=0x%02x\n", machine().describe_context(), offset, data);
-}
-
-
-ROM_START( aha1542c )
- ROM_REGION( 0x8000, "aha1542", 0 )
- ROM_SYSTEM_BIOS( 0, "v101", "AHA-1540C/1542C BIOS v1.01" )
- ROMX_LOAD( "adaptec_inc_534201-00_d_bios_144c_1993.u15", 0x0000, 0x8000, CRC(35178004) SHA1(2b38f2e40cd02a1b32966ead7b202b0fca130cb8), ROM_BIOS(0) )
- ROM_SYSTEM_BIOS( 1, "v102", "AHA-1540C/1542C BIOS v1.02" )
- ROMX_LOAD( "b_91c5.bin", 0x0000, 0x8000, CRC(076ac252) SHA1(d640b980e85d07029d8ce11a52fa26ba0f93c5de), ROM_BIOS(1) )
-
- ROM_REGION( 0x8000, Z84C0010_TAG, 0 )
- ROMX_LOAD( "adaptec_inc_534001-00_d_mcode_a3c2_1993.u5", 0x0000, 0x8000, CRC(220dd5a2) SHA1(4fc51c9dd63b45a50edcd56baa706d61decbef38), ROM_BIOS(0) )
- ROMX_LOAD( "m_866a.bin", 0x0000, 0x8000, CRC(ef09053a) SHA1(ae7900653357d5f32a2734bc13d9ec63bd805597), ROM_BIOS(1) )
-ROM_END
-
-ROM_START( aha1542cf )
- ROM_REGION( 0x8000, "aha1542", 0 )
- ROM_SYSTEM_BIOS( 0, "v201", "Adaptec 1540CF/1542CF BIOS v2.01" )
- ROMX_LOAD( "adaptec_inc_553601-00_c_bios_c38d_1993.u16", 0x0000, 0x8000, CRC(ab22fc02) SHA1(f9f783e0272fc14ba3de32316997f1f6cadc67d0), ROM_BIOS(0) )
- ROM_SYSTEM_BIOS( 1, "v210", "Adaptec 1540CF/1542CF BIOS v2.10" )
- ROMX_LOAD( "adaptec_inc_553601-00_e_bios_7600_1994.u16", 0x0000, 0x8000, CRC(8f3a2692) SHA1(b9dbd49baeec55098195131d0ed1a9bfe8463640), ROM_BIOS(1) )
- ROM_SYSTEM_BIOS( 2, "v211", "Adaptec 1540CF/1542CF BIOS v2.11" )
- ROMX_LOAD( "adaptec_inc_553601-00_g_bios_b402_1995.u16", 0x0000, 0x8000, CRC(fddd0b83) SHA1(aabd227cb338d8812e0bb5c17c08ea06c5aedd36), ROM_BIOS(2) )
-
- ROM_REGION( 0x8000, Z84C0010_TAG, 0 )
- ROMX_LOAD( "adaptec_inc_553801-00_c_mcode_563d_1993.u15", 0x0000, 0x8000, CRC(7824397e) SHA1(35bc2c8fab31aad3190a478f2dc8f3a72958cf04), ROM_BIOS(0) )
- ROMX_LOAD( "adaptec_inc_553801-00_e_mcode_4b81_1994.u15", 0x0000, 0x8000, CRC(dd651476) SHA1(cda508281302be53ebdcf8daa61754c89ad12111), ROM_BIOS(1) )
- ROMX_LOAD( "adaptec_inc_553801-00_g_mcode_2cde_1995.u15", 0x0000, 0x8000, CRC(896873cd) SHA1(6edbdd9b0b15ef31ca0741cac31556d2d5266b6e), ROM_BIOS(2) )
-ROM_END
-
-ROM_START( aha1542cp )
- ROM_REGION( 0x8000, "aha1542", 0 )
- ROM_LOAD( "adaptec_inc_908501-00_d_bios_a91e_1995.u7", 0x0000, 0x8000, CRC(0646c35e) SHA1(3a7c2731abd8295438cfa1f2a525be53e9512b1a) )
-
- ROM_REGION( 0x8000, Z84C0010_TAG, 0 )
- ROM_LOAD( "908301-00_f_mcode_17c9.u12", 0x0000, 0x8000, CRC(04494022) SHA1(431dfc26312556ddd24fccc429b2b3e93bac5c2f) )
-ROM_END
-
-
-u8 aha1542c_device::local_status_r()
-{
- return m_eeprom->do_read() << 7;
-}
-
-void aha1542c_device::local_latch_w(u8 data)
-{
- m_eeprom->cs_write(BIT(data, 2));
- m_eeprom->clk_write(BIT(data, 1));
- m_eeprom->di_write(BIT(data, 0));
- // TODO: several other bits are used
-}
-
-void aha1542c_device::z84c0010_mem(address_map &map)
-{
- map(0x0000, 0x7fff).rom().region(Z84C0010_TAG, 0);
- map(0x8000, 0x9fff).ram(); // 2kb RAM chip
- map(0xa000, 0xa000).r(FUNC(aha1542c_device::local_status_r));
- map(0xb000, 0xb000).w(FUNC(aha1542c_device::local_latch_w));
- map(0xe000, 0xe0ff).ram(); // probably PC<->Z80 communication area
- map(0xe003, 0xe003).lr8("e003_r", []() { return 0x20; });
-}
-
-u8 aha1542cp_device::eeprom_r()
-{
- return m_eeprom->do_read();
-}
-
-void aha1542cp_device::eeprom_w(u8 data)
-{
- m_eeprom->cs_write(BIT(data, 2));
- m_eeprom->clk_write(BIT(data, 1));
- m_eeprom->di_write(BIT(data, 0));
-}
-
-void aha1542cp_device::local_mem(address_map &map)
-{
- map(0x0000, 0x7fff).rom().region(Z84C0010_TAG, 0);
- map(0x8000, 0x9fff).ram();
- map(0xc001, 0xc001).rw(FUNC(aha1542cp_device::eeprom_r), FUNC(aha1542cp_device::eeprom_w));
- map(0xe003, 0xe003).nopr();
-}
-
-const tiny_rom_entry *aha1542c_device::device_rom_region() const
-{
- return ROM_NAME( aha1542c );
-}
-
-const tiny_rom_entry *aha1542cf_device::device_rom_region() const
-{
- return ROM_NAME( aha1542cf );
-}
-
-const tiny_rom_entry *aha1542cp_device::device_rom_region() const
-{
- return ROM_NAME( aha1542cp );
-}
-
-void aha1542c_device::device_add_mconfig(machine_config &config)
-{
- z80_device &cpu(Z80(config, Z84C0010_TAG, 10'000'000));
- cpu.set_addrmap(AS_PROGRAM, &aha1542c_device::z84c0010_mem);
-
- EEPROM_93C46_16BIT(config, m_eeprom);
-}
-
-void aha1542cp_device::device_add_mconfig(machine_config &config)
-{
- z80_device &cpu(Z80(config, Z84C0010_TAG, 10'000'000));
- cpu.set_addrmap(AS_PROGRAM, &aha1542cp_device::local_mem);
-
- EEPROM_93C46_16BIT(config, m_eeprom);
-}
-
-aha1542c_device::aha1542c_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock)
- : device_t(mconfig, type, tag, owner, clock)
- , device_isa16_card_interface(mconfig, *this)
- , m_eeprom(*this, "eeprom")
-{
-}
-
-aha1542c_device::aha1542c_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
- : aha1542c_device(mconfig, AHA1542C, tag, owner, clock)
-{
-}
-
-aha1542cf_device::aha1542cf_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
- : aha1542c_device(mconfig, AHA1542CF, tag, owner, clock)
-{
-}
-
-aha1542cp_device::aha1542cp_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
- : aha1542c_device(mconfig, AHA1542CP, tag, owner, clock)
-{
-}
-
-void aha1542c_device::device_start()
-{
- set_isa_device();
- m_isa->install_rom(this, 0xdc000, 0xdffff, "aha1542", "aha1542");
- m_isa->install_device(0x330, 0x333, read8_delegate(FUNC( aha1542cf_device::aha1542_r ), this),
- write8_delegate(FUNC( aha1542cf_device::aha1542_w ), this) );
-}
-
-
-void aha1542c_device::device_reset()
-{
-}
diff --git a/src/devices/bus/isa/aha1542c.h b/src/devices/bus/isa/aha1542c.h
deleted file mode 100644
index 2294096bde7..00000000000
--- a/src/devices/bus/isa/aha1542c.h
+++ /dev/null
@@ -1,95 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:Darkstar
-/**********************************************************************
- *
- * Adaptec AHA-1542{C,CF,CP} SCSI Controller
- *
- **********************************************************************
-
-
-
- **********************************************************************/
-
-#ifndef MAME_BUS_AHA1542C_H
-#define MAME_BUS_AHA1542C_H
-
-#pragma once
-
-
-#include "isa.h"
-#include "machine/eepromser.h"
-
-//*********************************************************************
-// TYPE DEFINITIONS
-//*********************************************************************
-
-// ====================> aha1542cf_device
-
-class aha1542c_device : public device_t,
- public device_isa16_card_interface
-{
-public:
- static constexpr feature_type unemulated_features() { return feature::DISK; }
- // construction/destruction
- aha1542c_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
-
- DECLARE_READ8_MEMBER( aha1542_r );
- DECLARE_WRITE8_MEMBER( aha1542_w );
-
-protected:
- aha1542c_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
-
- u8 local_status_r();
- void local_latch_w(u8 data);
-
- // device-level overrides
- virtual void device_start() override;
- virtual void device_reset() override;
-
- // optional information overrides
- virtual const tiny_rom_entry *device_rom_region() const override;
- virtual void device_add_mconfig(machine_config &config) override;
-
- required_device<eeprom_serial_93cxx_device> m_eeprom;
-
-private:
- void z84c0010_mem(address_map &map);
-};
-
-// ====================> aha1542cf_device
-
-class aha1542cf_device : public aha1542c_device
-{
-public:
- // construction/destruction
- aha1542cf_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
-
-protected:
- virtual const tiny_rom_entry *device_rom_region() const override;
-};
-
-// ====================> aha1542cp_device
-
-class aha1542cp_device : public aha1542c_device
-{
-public:
- // construction/destruction
- aha1542cp_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
-
-protected:
- virtual void device_add_mconfig(machine_config &config) override;
- virtual const tiny_rom_entry *device_rom_region() const override;
-
-private:
- u8 eeprom_r();
- void eeprom_w(u8 data);
-
- void local_mem(address_map &map);
-};
-
-// device type definitions
-DECLARE_DEVICE_TYPE(AHA1542C, aha1542c_device)
-DECLARE_DEVICE_TYPE(AHA1542CF, aha1542cf_device)
-DECLARE_DEVICE_TYPE(AHA1542CP, aha1542cp_device)
-
-#endif // MAME_BUS_AHA1542C_H
diff --git a/src/devices/bus/isa/aha174x.cpp b/src/devices/bus/isa/aha174x.cpp
deleted file mode 100644
index 06b6ddf5f62..00000000000
--- a/src/devices/bus/isa/aha174x.cpp
+++ /dev/null
@@ -1,160 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:AJR
-/***************************************************************************
-
- Adaptec AHA-1740/44 and AHA-1740A/42A Fast SCSI host adapters
-
- These are actually EISA cards, though they also have a compatibility
- mode that provides an interface like the older ISA AHA-154X series.
-
- On the AHA-1740 and AHA-1744, the HPC microcode is stored in an EEPROM
- (of unknown type), allowing it to be reprogrammed by the host. This is
- not possible on the AHA-1740A and AHA-1744A, which use a conventional
- 27C256 EPROM for the microcode. In both cases the HPC copies the code
- to and then executes it out of RAM.
-
- Though the AHA-1740 and AHA-1740A have different board layouts, they
- share the following ICs:
-
- AIC-565 Bus Auxiliary Interface Chip
- AIC-575 EISA Configuration Chip
- AIC-4600 HPC (HPC46003V20)
- AIC-6251A SCSI Interface and Protocol Chip
- IDT7201 512x9 FIFO (2 on board)
- Intel 82355 Bus Master Interface Controller
-
- AHA-1742A is the same as AHA-1740A, only with the FDC populated.
-
- AHA-1744 uses the same layout as AHA-1740, but populates the area
- around the SCSI port with DS36F95J differential drivers.
-
-***************************************************************************/
-
-#include "emu.h"
-#include "aha174x.h"
-
-#include "machine/aic6250.h"
-//#include "machine/i82355.h"
-#include "machine/nscsi_bus.h"
-#include "machine/nscsi_hd.h"
-
-DEFINE_DEVICE_TYPE(AHA1740, aha1740_device, "aha1740", "AHA-1740 Fast SCSI Host Adapter")
-DEFINE_DEVICE_TYPE(AHA1742A, aha1742a_device, "aha1742a", "AHA-1742A Fast SCSI Host Adapter")
-
-
-aha174x_device::aha174x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock)
- : device_t(mconfig, type, tag, owner, clock)
- , device_isa16_card_interface(mconfig, *this)
- , m_hpc(*this, "hpc")
- , m_bios(*this, "bios")
-{
-}
-
-aha1740_device::aha1740_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
- : aha174x_device(mconfig, AHA1740, tag, owner, clock)
-{
-}
-
-aha1742a_device::aha1742a_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
- : aha174x_device(mconfig, AHA1742A, tag, owner, clock)
- , m_fdc(*this, "fdc")
-{
-}
-
-void aha174x_device::device_start()
-{
-}
-
-
-void aha174x_device::hpc_map(address_map &map)
-{
- map(0x5000, 0x500f).m("scsi:7:scsic", FUNC(aic6251a_device::map));
- map(0x8000, 0xffff).rom().region("mcode", 0);
-}
-
-static void aha174x_scsi_devices(device_slot_interface &device)
-{
- device.option_add("harddisk", NSCSI_HARDDISK);
- device.option_add_internal("scsic", AIC6251A);
-}
-
-void aha174x_device::scsic_config(device_t *device)
-{
- device->set_clock(40_MHz_XTAL / 2); // divider not verified
-}
-
-void aha1740_device::device_add_mconfig(machine_config &config)
-{
- HPC46003(config, m_hpc, 40_MHz_XTAL / 2);
- m_hpc->set_addrmap(AS_PROGRAM, &aha1740_device::hpc_map);
-
- NSCSI_BUS(config, "scsi");
- NSCSI_CONNECTOR(config, "scsi:0", aha174x_scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsi:1", aha174x_scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsi:2", aha174x_scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsi:3", aha174x_scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsi:4", aha174x_scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsi:5", aha174x_scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsi:6", aha174x_scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsi:7", aha174x_scsi_devices, "scsic", true)
- .set_option_machine_config("scsic", [this] (device_t *device) { scsic_config(device); });
-}
-
-void aha1742a_device::device_add_mconfig(machine_config &config)
-{
- HPC46003(config, m_hpc, 40_MHz_XTAL / 2);
- m_hpc->set_addrmap(AS_PROGRAM, &aha1742a_device::hpc_map);
-
- NSCSI_BUS(config, "scsi");
- NSCSI_CONNECTOR(config, "scsi:0", aha174x_scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsi:1", aha174x_scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsi:2", aha174x_scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsi:3", aha174x_scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsi:4", aha174x_scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsi:5", aha174x_scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsi:6", aha174x_scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsi:7", aha174x_scsi_devices, "scsic", true)
- .set_option_machine_config("scsic", [this] (device_t *device) { scsic_config(device); });
-
- N82077AA(config, m_fdc, 24_MHz_XTAL);
-}
-
-
-ROM_START(aha1740)
- ROM_REGION(0x4000, "bios", 0)
- ROM_LOAD("b_dc00.bin", 0x0000, 0x4000, CRC(056d75ec) SHA1(8ca143adfc7d20ad5d49f14dedabc8276454bf9e))
-
- ROM_REGION16_LE(0x8000, "mcode", 0)
- ROM_SYSTEM_BIOS(0, "v140st", "BIOS v1.40 (Standard Mode)")
- ROMX_LOAD("standard.bin", 0x0000, 0x8000, CRC(8c15c6a2) SHA1(77e15b0244e3a814f53f957270e6474a8a839955), ROM_BIOS(0))
- ROM_SYSTEM_BIOS(1, "v140en", "BIOS v1.40 (Enhanced Mode)")
- ROMX_LOAD("enhanced.bin", 0x0000, 0x8000, CRC(84b3df89) SHA1(a718c3ea5443a609b4b20bfe48be18193737ad25), ROM_BIOS(1))
- // Adaptec's help file claims that "the EEPROM on the board can hold firmware for both modes simultaneously."
- // The AHA-174XA firmware images obviously have this, but the files provided here do not agree.
-ROM_END
-
-ROM_START(aha1742a)
- ROM_REGION(0x4000, "bios", 0)
- ROM_DEFAULT_BIOS("v140")
- ROM_SYSTEM_BIOS(0, "v134", "BIOS v1.34")
- ROMX_LOAD("adaptec_inc_450214-00_a_bios_8800_1991.u47", 0x0000, 0x4000, CRC(6cf06151) SHA1(0da45634b12b33fc886920d065cc8ffb2cf376b8), ROM_BIOS(0))
- ROM_SYSTEM_BIOS(1, "v140", "BIOS v1.40")
- ROMX_LOAD("adaptec_inc_450216-00_a_bios_dc00_1992.u47", 0x0000, 0x4000, CRC(056d75ec) SHA1(8ca143adfc7d20ad5d49f14dedabc8276454bf9e), ROM_BIOS(1))
- ROM_SYSTEM_BIOS(2, "v140s", "BIOS v1.40 (Extended Timeout)")
- ROMX_LOAD("b_f100.bin", 0x0000, 0x4000, CRC(b695acc0) SHA1(683112fafdf83d5eb89237d9215f7d6eacc6eeaf), ROM_BIOS(2))
-
- ROM_REGION16_LE(0x8000, "mcode", 0)
- ROMX_LOAD("adaptec_inc_450117-00_c_mcode_23a8_1991.u10", 0x0000, 0x8000, NO_DUMP, ROM_BIOS(0))
- ROMX_LOAD("adaptec_inc_450113-00_d_mcode_b7d6_1992.u10", 0x0000, 0x8000, CRC(0a55a555) SHA1(ff400f56b33f0ad94e34564d7715a0773b335844), ROM_BIOS(1))
- ROMX_LOAD("m_c7b8.bin", 0x0000, 0x8000, CRC(21282e86) SHA1(18cb3960dc47f2c14beb88f9680c1f66c4652b04), ROM_BIOS(2))
-ROM_END
-
-const tiny_rom_entry *aha1740_device::device_rom_region() const
-{
- return ROM_NAME(aha1740);
-}
-
-const tiny_rom_entry *aha1742a_device::device_rom_region() const
-{
- return ROM_NAME(aha1742a);
-}
diff --git a/src/devices/bus/isa/aha174x.h b/src/devices/bus/isa/aha174x.h
deleted file mode 100644
index f65ee7de93a..00000000000
--- a/src/devices/bus/isa/aha174x.h
+++ /dev/null
@@ -1,61 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:AJR
-/***************************************************************************
-
- Adaptec AHA-1540/42A and AHA-1540/42B SCSI controllers
-
-***************************************************************************/
-
-#ifndef MAME_BUS_ISA_AHA174X_H
-#define MAME_BUS_ISA_AHA174X_H
-
-#pragma once
-
-#include "isa.h"
-#include "cpu/hpc/hpc.h"
-#include "machine/upd765.h"
-
-class aha174x_device : public device_t, public device_isa16_card_interface
-{
-protected:
- aha174x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock);
-
- virtual void device_start() override;
-
- void hpc_map(address_map &map);
- void scsic_config(device_t *device);
-
- required_device<hpc46003_device> m_hpc;
- required_region_ptr<u8> m_bios;
-};
-
-class aha1740_device : public aha174x_device
-{
-public:
- aha1740_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
-
- static constexpr feature_type unemulated_features() { return feature::DISK; }
-
-protected:
- virtual void device_add_mconfig(machine_config &config) override;
- virtual const tiny_rom_entry *device_rom_region() const override;
-};
-
-class aha1742a_device : public aha174x_device
-{
-public:
- aha1742a_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
-
- static constexpr feature_type unemulated_features() { return feature::DISK; }
-
-protected:
- virtual void device_add_mconfig(machine_config &config) override;
- virtual const tiny_rom_entry *device_rom_region() const override;
-
- required_device<upd765_family_device> m_fdc;
-};
-
-DECLARE_DEVICE_TYPE(AHA1740, aha1740_device)
-DECLARE_DEVICE_TYPE(AHA1742A, aha1742a_device)
-
-#endif // MAME_BUS_ISA_AHA174X_H
diff --git a/src/devices/bus/isa/bt54x.cpp b/src/devices/bus/isa/bt54x.cpp
deleted file mode 100644
index d8ef31a848f..00000000000
--- a/src/devices/bus/isa/bt54x.cpp
+++ /dev/null
@@ -1,201 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:AJR
-/***************************************************************************
-
- BusTek/BusLogic BT-54x series PC/AT SCSI host adapters
-
- The earlier version of the BT-542B, with BusTek labels, has a NCR 86C05
- bus controller where a later version has the 80C20 ASIC instead. It is
- believed that these chips are largely compatible with each other, as
- are the NCR 53CF94 and Emulex FAS216 SCSI controllers.
-
- 2.41/2.21 is the last BIOS version compatible with revisions A-G of
- the BT-542B.
-
-***************************************************************************/
-
-#include "emu.h"
-#include "bt54x.h"
-
-#include "machine/ncr5390.h"
-//#include "machine/ncr86c05.h"
-#include "machine/nscsi_cd.h"
-#include "machine/nscsi_hd.h"
-
-DEFINE_DEVICE_TYPE(BT542B, bt542b_device, "bt542b", "BusTek BT-542B SCSI Host Adapter") // Rev. G or earlier
-DEFINE_DEVICE_TYPE(BT542BH, bt542bh_device, "bt542bh", "BusLogic BT-542B SCSI Host Adapter (Rev. H)")
-DEFINE_DEVICE_TYPE(BT545S, bt545s_device, "bt545s", "BusLogic BT-545S Fast SCSI Host Adapter")
-
-bt54x_device::bt54x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock)
- : device_t(mconfig, type, tag, owner, clock)
- , device_isa16_card_interface(mconfig, *this)
- , m_mpu(*this, "mpu")
- , m_fdc(*this, "fdc")
- , m_bios(*this, "bios")
-{
-}
-
-bt542b_device::bt542b_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
- : bt54x_device(mconfig, BT542B, tag, owner, clock)
-{
-}
-
-bt542bh_device::bt542bh_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
- : bt54x_device(mconfig, BT542BH, tag, owner, clock)
-{
-}
-
-bt545s_device::bt545s_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
- : bt54x_device(mconfig, BT545S, tag, owner, clock)
-{
-}
-
-void bt54x_device::device_start()
-{
-}
-
-u8 bt54x_device::local_status_r()
-{
- return 0;
-}
-
-void bt54x_device::local_map(address_map &map)
-{
- map(0x00000, 0x01fff).ram();
- //map(0x02000, 0x0201f).rw("busintf", FUNC(ncr86c05_device::local_read), FUNC(ncr86c05_device::local_write));
- map(0x02080, 0x0208f).m("scsi:7:scsic", FUNC(ncr53cf94_device::map));
- map(0x02180, 0x02180).r(FUNC(bt54x_device::local_status_r));
- map(0xf8000, 0xfffff).rom().region("mpu", 0);
-}
-
-static void scsi_devices(device_slot_interface &device)
-{
- device.option_add("cdrom", NSCSI_CDROM);
- device.option_add("harddisk", NSCSI_HARDDISK);
- device.option_add_internal("scsic", NCR53C94);
-}
-
-static void fast_scsi_devices(device_slot_interface &device)
-{
- device.option_add("cdrom", NSCSI_CDROM);
- device.option_add("harddisk", NSCSI_HARDDISK);
- device.option_add_internal("scsic", NCR53CF94); // FAS216
-}
-
-void bt54x_device::asc_config(device_t *device)
-{
- ncr53c94_device &asc = downcast<ncr53c94_device &>(*device);
-
- asc.set_clock(25_MHz_XTAL); // not verified; perhaps selectable? (40 MHz XTAL also on board)
-
- asc.irq_handler_cb().set(m_mpu, FUNC(i80188_cpu_device::int0_w));
- //asc.drq_handler_cb().set("busintf", FUNC(ncr86c05_device::dma_req_w));
-}
-
-void bt54x_device::fsc_config(device_t *device)
-{
- ncr53cf94_device &fsc = downcast<ncr53cf94_device &>(*device);
-
- fsc.set_clock(40_MHz_XTAL);
-
- fsc.irq_handler_cb().set(m_mpu, FUNC(i80188_cpu_device::int0_w)); // mostly polled on BT-545S
- //fsc.drq_handler_cb().set("busintf", FUNC(ncr86c05_device::dma_req_w));
-}
-
-void bt54x_device::fsc_base(machine_config &config)
-{
- //ncr86c05_device &busintf(NCR86C05(config, "busintf", 0));
- //busintf.mint_callback().set(m_mpu, FUNC(i80188_cpu_device::int1_w));
- //busintf.dma_ack_callback().set("scsi:7:scsic", FUNC(ncr53cf94_device::dma_w));
-
- NSCSI_BUS(config, "scsi");
- NSCSI_CONNECTOR(config, "scsi:0", fast_scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsi:1", fast_scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsi:2", fast_scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsi:3", fast_scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsi:4", fast_scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsi:5", fast_scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsi:6", fast_scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsi:7", fast_scsi_devices, "scsic", true).set_option_machine_config("scsic", [this] (device_t *device) { fsc_config(device); });
-}
-
-void bt542b_device::device_add_mconfig(machine_config &config)
-{
- I80188(config, m_mpu, 16_MHz_XTAL);
- m_mpu->set_addrmap(AS_PROGRAM, &bt542b_device::local_map);
-
- //ncr86c05_device &busintf(NCR86C05(config, "busintf", 0));
- //busintf.mint_callback().set(m_mpu, FUNC(i80188_cpu_device::int1_w));
- //busintf.dma_ack_callback().set("scsi:7:scsic", FUNC(ncr53c94_device::dma_w));
-
- NSCSI_BUS(config, "scsi");
- NSCSI_CONNECTOR(config, "scsi:0", scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsi:1", scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsi:2", scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsi:3", scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsi:4", scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsi:5", scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsi:6", scsi_devices, nullptr);
- NSCSI_CONNECTOR(config, "scsi:7", scsi_devices, "scsic", true).set_option_machine_config("scsic", [this] (device_t *device) { asc_config(device); });
-
- DP8473(config, m_fdc, 24_MHz_XTAL);
-}
-
-void bt542bh_device::device_add_mconfig(machine_config &config)
-{
- I80188(config, m_mpu, 40_MHz_XTAL / 2); // clock guessed
- m_mpu->set_addrmap(AS_PROGRAM, &bt542bh_device::local_map);
-
- fsc_base(config);
-
- DP8473(config, m_fdc, 24_MHz_XTAL);
-}
-
-void bt545s_device::device_add_mconfig(machine_config &config)
-{
- I80188(config, m_mpu, 40_MHz_XTAL / 2); // SAB80188-1-N; clock guessed
- m_mpu->set_addrmap(AS_PROGRAM, &bt545s_device::local_map);
-
- fsc_base(config);
-
- PC8477A(config, m_fdc, 24_MHz_XTAL); // actually PC8477BV
-}
-
-ROM_START(bt542b)
- ROM_REGION(0x4000, "bios", 0) // "(C) Copyright 1991 BIOS Version 2.41"
- ROM_LOAD("1000006-2.41_bustek.u15", 0x0000, 0x4000, CRC(5eb00d0f) SHA1(74a8bbae1c2b42f0c605b0ac98660f1e16ac5c4e))
-
- ROM_REGION(0x8000, "mpu", 0) // "(C) Copyright 1991 BusTek Corporation 542B 91/12/14"
- ROM_LOAD("1000005-2.21_bustek.u2", 0x0000, 0x8000, CRC(c2c66653) SHA1(054ba1ea71b2aaab31ab9dd5aca955d861f5333b))
-ROM_END
-
-ROM_START(bt542bh)
- ROM_REGION(0x8000, "bios", 0) // "(C) Copyright 1992 BIOS Version 4.70M"
- ROM_LOAD("5000006-4.70_buslogic.u15", 0x0000, 0x8000, CRC(f5a5e116) SHA1(d7b73015532838dc694edf24308ebbab6f4dd5bb))
-
- ROM_REGION(0x8000, "mpu", 0) // "(C) Copyright 1992 BusLogic Inc. 542BH93/05/23"
- ROM_LOAD("5000005-3.35_buslogic.u2", 0x0000, 0x8000, CRC(181966c3) SHA1(b9b327d50cd13f3e5b5b53892b18f233aff065b7))
-ROM_END
-
-ROM_START(bt545s)
- ROM_REGION(0x4000, "bios", 0) // "(C) Copyright 1992 BIOS Version 4.50"
- ROM_LOAD("u15_27128_5002026-4.50.bin", 0x0000, 0x4000, CRC(1bd3247b) SHA1(9d46a99f4b3057e94ef422f387218de2c4553c1a))
-
- ROM_REGION(0x8000, "mpu", 0) // "(C) Copyright 1992 BusLogic Inc. 542BH92/10/05"
- ROM_LOAD("u2_27256_5002005-3.31.bin", 0x0000, 0x8000, CRC(20473714) SHA1(797a8dba182049949f7a5c14d8bef4b4e908305b))
-ROM_END
-
-const tiny_rom_entry *bt542b_device::device_rom_region() const
-{
- return ROM_NAME(bt542b);
-}
-
-const tiny_rom_entry *bt542bh_device::device_rom_region() const
-{
- return ROM_NAME(bt542bh);
-}
-
-const tiny_rom_entry *bt545s_device::device_rom_region() const
-{
- return ROM_NAME(bt545s);
-}
diff --git a/src/devices/bus/isa/bt54x.h b/src/devices/bus/isa/bt54x.h
deleted file mode 100644
index dfdd0009416..00000000000
--- a/src/devices/bus/isa/bt54x.h
+++ /dev/null
@@ -1,74 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:AJR
-/***************************************************************************
-
- BusTek/BusLogic BT-54x series PC/AT SCSI host adapters
-
-***************************************************************************/
-
-#ifndef MAME_BUS_ISA_BT54X_H
-#define MAME_BUS_ISA_BT54X_H
-
-#pragma once
-
-#include "isa.h"
-#include "cpu/i86/i186.h"
-#include "machine/upd765.h"
-
-class bt54x_device : public device_t, public device_isa16_card_interface
-{
-public:
- static constexpr feature_type unemulated_features() { return feature::DISK; }
-
-protected:
- bt54x_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock);
-
- virtual void device_start() override;
-
- u8 local_status_r();
-
- void local_map(address_map &map);
- void asc_config(device_t *device);
- void fsc_config(device_t *device);
- void fsc_base(machine_config &config);
-
- required_device<i80188_cpu_device> m_mpu;
- required_device<upd765_family_device> m_fdc;
- required_region_ptr<u8> m_bios;
-};
-
-class bt542b_device : public bt54x_device
-{
-public:
- bt542b_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
-
-protected:
- virtual void device_add_mconfig(machine_config &config) override;
- virtual const tiny_rom_entry *device_rom_region() const override;
-};
-
-class bt542bh_device : public bt54x_device
-{
-public:
- bt542bh_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
-
-protected:
- virtual void device_add_mconfig(machine_config &config) override;
- virtual const tiny_rom_entry *device_rom_region() const override;
-};
-
-class bt545s_device : public bt54x_device
-{
-public:
- bt545s_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
-
-protected:
- virtual void device_add_mconfig(machine_config &config) override;
- virtual const tiny_rom_entry *device_rom_region() const override;
-};
-
-DECLARE_DEVICE_TYPE(BT542B, bt542b_device)
-DECLARE_DEVICE_TYPE(BT542BH, bt542bh_device)
-DECLARE_DEVICE_TYPE(BT545S, bt545s_device)
-
-#endif // MAME_BUS_ISA_BT54X_H
diff --git a/src/devices/bus/isa/cga.cpp b/src/devices/bus/isa/cga.cpp
index eac981b4100..f5fb8f185d7 100644
--- a/src/devices/bus/isa/cga.cpp
+++ b/src/devices/bus/isa/cga.cpp
@@ -261,13 +261,12 @@ DEFINE_DEVICE_TYPE(ISA8_CGA, isa8_cga_device, "cga", "IBM Color/Graphics Monitor
// device_add_mconfig - add device configuration
//-------------------------------------------------
-void isa8_cga_device::device_add_mconfig(machine_config &config)
-{
- screen_device &screen(SCREEN(config, CGA_SCREEN_NAME, SCREEN_TYPE_RASTER));
- screen.set_raw(XTAL(14'318'181), 912, 0, 640, 262, 0, 200);
- screen.set_screen_update(FUNC(isa8_cga_device::screen_update));
+MACHINE_CONFIG_START(isa8_cga_device::device_add_mconfig)
+ MCFG_SCREEN_ADD(CGA_SCREEN_NAME, RASTER)
+ MCFG_SCREEN_RAW_PARAMS(XTAL(14'318'181),912,0,640,262,0,200)
+ MCFG_SCREEN_UPDATE_DEVICE( DEVICE_SELF, isa8_cga_device, screen_update )
- PALETTE(config, m_palette).set_entries(/* CGA_PALETTE_SETS * 16*/ 65536);
+ MCFG_PALETTE_ADD("palette", /* CGA_PALETTE_SETS * 16*/ 65536 )
MC6845(config, m_crtc, XTAL(14'318'181)/16);
m_crtc->set_screen(nullptr);
@@ -277,7 +276,7 @@ void isa8_cga_device::device_add_mconfig(machine_config &config)
m_crtc->out_hsync_callback().set(FUNC(isa8_cga_device::hsync_changed));
m_crtc->out_vsync_callback().set(FUNC(isa8_cga_device::vsync_changed));
m_crtc->set_reconfigure_callback(FUNC(isa8_cga_device::reconfigure), this);
-}
+MACHINE_CONFIG_END
ioport_constructor isa8_cga_device::device_input_ports() const
{
@@ -913,7 +912,7 @@ READ8_MEMBER( isa8_cga_device::io_read )
/* return last written mc6845 address value here? */
break;
case 1: case 3: case 5: case 7:
- data = m_crtc->register_r();
+ data = m_crtc->register_r( space, offset );
break;
case 10:
data = m_vsync | ( ( data & 0x40 ) >> 4 ) | m_hsync;
@@ -928,10 +927,10 @@ WRITE8_MEMBER( isa8_cga_device::io_write )
{
switch(offset) {
case 0: case 2: case 4: case 6:
- m_crtc->address_w(data);
+ m_crtc->address_w( space, offset, data );
break;
case 1: case 3: case 5: case 7:
- m_crtc->register_w(data);
+ m_crtc->register_w( space, offset, data );
break;
case 8:
mode_control_w(data);
@@ -1170,14 +1169,14 @@ WRITE8_MEMBER( isa8_cga_pc1512_device::io_write )
{
case 0: case 2: case 4: case 6:
data &= 0x1F;
- m_crtc->address_w(data);
+ m_crtc->address_w( space, offset, data );
m_mc6845_address = data;
break;
case 1: case 3: case 5: case 7:
if ( ! m_mc6845_locked_register[m_mc6845_address] )
{
- m_crtc->register_w(data);
+ m_crtc->register_w( space, offset, data );
if ( isa8_cga_pc1512_device::mc6845_writeonce_register[m_mc6845_address] )
{
m_mc6845_locked_register[m_mc6845_address] = 1;
@@ -1694,13 +1693,13 @@ const tiny_rom_entry *isa8_cga_mc1502_device::device_rom_region() const
DEFINE_DEVICE_TYPE(ISA8_CGA_M24, isa8_cga_m24_device, "cga_m24", "Olivetti M24 CGA")
-void isa8_cga_m24_device::device_add_mconfig(machine_config &config)
-{
+MACHINE_CONFIG_START(isa8_cga_m24_device::device_add_mconfig)
isa8_cga_device::device_add_mconfig(config);
- subdevice<screen_device>(CGA_SCREEN_NAME)->set_raw(XTAL(14'318'181), 912, 0, 640, 462, 0, 400);
+ MCFG_DEVICE_MODIFY(CGA_SCREEN_NAME)
+ MCFG_SCREEN_RAW_PARAMS(XTAL(14'318'181),912,0,640,462,0,400)
m_crtc->set_reconfigure_callback(FUNC(isa8_cga_m24_device::reconfigure), this);
-}
+MACHINE_CONFIG_END
isa8_cga_m24_device::isa8_cga_m24_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
isa8_cga_m24_device(mconfig, ISA8_CGA_M24, tag, owner, clock)
@@ -1747,7 +1746,7 @@ WRITE8_MEMBER( isa8_cga_m24_device::io_write )
{
case 0: case 2: case 4: case 6:
m_index = data;
- m_crtc->address_w(data);
+ m_crtc->address_w( space, offset, data );
break;
case 1: case 3: case 5: case 7:
switch(m_index & 0x1f) // TODO: this is handled by a pal and prom
@@ -1766,7 +1765,7 @@ WRITE8_MEMBER( isa8_cga_m24_device::io_write )
data <<= 1;
break;
}
- m_crtc->register_w(data);
+ m_crtc->register_w( space, offset, data );
break;
case 0x0e:
m_mode2 = data;
@@ -1887,12 +1886,12 @@ MC6845_UPDATE_ROW( isa8_cga_m24_device::m24_gfx_1bpp_m24_update_row )
DEFINE_DEVICE_TYPE(ISA8_CGA_CPORTIII, isa8_cga_cportiii_device, "cga_cportiii", "Compaq Portable III CGA")
-void isa8_cga_cportiii_device::device_add_mconfig(machine_config &config)
-{
+MACHINE_CONFIG_START(isa8_cga_cportiii_device::device_add_mconfig)
isa8_cga_m24_device::device_add_mconfig(config);
- subdevice<screen_device>(CGA_SCREEN_NAME)->set_color(rgb_t(255, 125, 0));
-}
+ MCFG_DEVICE_MODIFY(CGA_SCREEN_NAME)
+ MCFG_SCREEN_COLOR(rgb_t(255, 125, 0))
+MACHINE_CONFIG_END
isa8_cga_cportiii_device::isa8_cga_cportiii_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
isa8_cga_m24_device(mconfig, ISA8_CGA_CPORTIII, tag, owner, clock)
diff --git a/src/devices/bus/isa/cl_sh260.cpp b/src/devices/bus/isa/cl_sh260.cpp
deleted file mode 100644
index f8fb39249f5..00000000000
--- a/src/devices/bus/isa/cl_sh260.cpp
+++ /dev/null
@@ -1,93 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:AJR
-/***************************************************************************
-
- ISA 16-bit disk controllers based on the Cirrus Logic CL-SH260-15PC-D
- * Everex EV-346
- * Joincom Electronic JC-1310
-
-***************************************************************************/
-
-#include "emu.h"
-#include "cl_sh260.h"
-
-#include "cpu/mcs51/mcs51.h"
-
-DEFINE_DEVICE_TYPE(EV346, isa16_ev346_device, "ev346", "Everex EV-346 disk controller")
-DEFINE_DEVICE_TYPE(JC1310, isa16_jc1310_device, "jc1310", "Joincom JC-1310 disk controller")
-
-isa16_cl_sh260_device::isa16_cl_sh260_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock)
- : device_t(mconfig, type, tag, owner, clock)
- , device_isa16_card_interface(mconfig, *this)
- , m_fdc(*this, "fdc")
-{
-}
-
-isa16_ev346_device::isa16_ev346_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
- : isa16_cl_sh260_device(mconfig, EV346, tag, owner, clock)
-{
-}
-
-isa16_jc1310_device::isa16_jc1310_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
- : isa16_cl_sh260_device(mconfig, JC1310, tag, owner, clock)
-{
-}
-
-void isa16_cl_sh260_device::device_start()
-{
-}
-
-void isa16_cl_sh260_device::i8031_map(address_map &map)
-{
- map(0x0000, 0x1fff).rom().region("mcu", 0);
-}
-
-void isa16_ev346_device::ext_map(address_map &map)
-{
- map.global_mask(0xff);
- map(0x00, 0xff).noprw(); // CL-SH260 interface
-}
-
-void isa16_jc1310_device::ext_map(address_map &map)
-{
- map(0xc000, 0xc0ff).noprw(); // CL-SH260 interface
-}
-
-void isa16_ev346_device::device_add_mconfig(machine_config &config)
-{
- i8031_device &mcu(I8031(config, "mcu", 12_MHz_XTAL)); // SCN8031HCCN40
- mcu.set_addrmap(AS_PROGRAM, &isa16_ev346_device::i8031_map);
- mcu.set_addrmap(AS_IO, &isa16_ev346_device::ext_map);
-
- DP8473(config, m_fdc, 24_MHz_XTAL);
-}
-
-void isa16_jc1310_device::device_add_mconfig(machine_config &config)
-{
- i8031_device &mcu(I8031(config, "mcu", 10_MHz_XTAL)); // P8031AH
- mcu.set_addrmap(AS_PROGRAM, &isa16_jc1310_device::i8031_map);
- mcu.set_addrmap(AS_IO, &isa16_jc1310_device::ext_map);
-
- WD37C65C(config, m_fdc, 16_MHz_XTAL); // WD37C65B-PL
- //m_fdc->set_clock2(9.6_MHz_XTAL);
-}
-
-ROM_START(ev346)
- ROM_REGION(0x2000, "mcu", 0)
- ROM_LOAD("everex_ev346_vers_3.2.bin", 0x0000, 0x2000, CRC(49b10ca7) SHA1(ef31b62f5ac38db7cacfc4d30e203a4cc1414913))
-ROM_END
-
-ROM_START(jc1310)
- ROM_REGION(0x2000, "mcu", 0) // "(C) COPYRIGHT JOINCOM ELECTRONIC CORP. 9/16/1988 JC1310"
- ROM_LOAD("jc-1310 - apr-c 89.u3", 0x0000, 0x2000, CRC(e044f5e1) SHA1(5a32d2001bb1a489657f9488136b5d621f803703)) // TMS 2764-20JL
-ROM_END
-
-const tiny_rom_entry *isa16_ev346_device::device_rom_region() const
-{
- return ROM_NAME(ev346);
-}
-
-const tiny_rom_entry *isa16_jc1310_device::device_rom_region() const
-{
- return ROM_NAME(jc1310);
-}
diff --git a/src/devices/bus/isa/cl_sh260.h b/src/devices/bus/isa/cl_sh260.h
deleted file mode 100644
index 18612ab6456..00000000000
--- a/src/devices/bus/isa/cl_sh260.h
+++ /dev/null
@@ -1,64 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:AJR
-/***************************************************************************
-
- ISA 16-bit disk controllers based on the Cirrus Logic CL-SH260-15PC-D
- * Everex EV-346
- * Joincom Electronic JC-1310
-
-***************************************************************************/
-
-#ifndef MAME_BUS_ISA_CL_SH260_H
-#define MAME_BUS_ISA_CL_SH260_H
-
-#pragma once
-
-#include "isa.h"
-#include "machine/upd765.h"
-
-class isa16_cl_sh260_device : public device_t, public device_isa16_card_interface
-{
-protected:
- isa16_cl_sh260_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, u32 clock);
-
- virtual void device_start() override;
-
- void i8031_map(address_map &map);
-
- required_device<upd765_family_device> m_fdc;
-};
-
-class isa16_ev346_device : public isa16_cl_sh260_device
-{
-public:
- isa16_ev346_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
-
- static constexpr feature_type unemulated_features() { return feature::DISK; }
-
-protected:
- virtual void device_add_mconfig(machine_config &config) override;
- virtual const tiny_rom_entry *device_rom_region() const override;
-
-private:
- void ext_map(address_map &map);
-};
-
-class isa16_jc1310_device : public isa16_cl_sh260_device
-{
-public:
- isa16_jc1310_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
-
- static constexpr feature_type unemulated_features() { return feature::DISK; }
-
-protected:
- virtual void device_add_mconfig(machine_config &config) override;
- virtual const tiny_rom_entry *device_rom_region() const override;
-
-private:
- void ext_map(address_map &map);
-};
-
-DECLARE_DEVICE_TYPE(EV346, isa16_ev346_device)
-DECLARE_DEVICE_TYPE(JC1310, isa16_jc1310_device)
-
-#endif // MAME_BUS_ISA_CL_SH260_H
diff --git a/src/devices/bus/isa/dcb.cpp b/src/devices/bus/isa/dcb.cpp
deleted file mode 100644
index db5768d6758..00000000000
--- a/src/devices/bus/isa/dcb.cpp
+++ /dev/null
@@ -1,70 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:AJR
-/***************************************************************************
-
- Novell Disk Coprocessor Board (DCB)
-
- This special SCSI host adapter, later acquired by ADIC, was designed
- for use with Novell NetWare.
-
-***************************************************************************/
-
-#include "emu.h"
-#include "dcb.h"
-
-DEFINE_DEVICE_TYPE(NOVELL_DCB, novell_dcb_device, "novell_dcb", "Novell Disk Coprocessor Board (#738-133-001)")
-
-novell_dcb_device::novell_dcb_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
- : device_t(mconfig, NOVELL_DCB, tag, owner, clock)
- , device_isa16_card_interface(mconfig, *this)
- , m_localcpu(*this, "localcpu")
- , m_eeprom(*this, "eeprom")
-{
-}
-
-void novell_dcb_device::device_start()
-{
-}
-
-void novell_dcb_device::eeprom_w(u8 data)
-{
- m_eeprom->cs_write(BIT(data, 5));
- m_eeprom->clk_write(BIT(data, 6));
- m_eeprom->di_write(BIT(data, 7));
-}
-
-u8 novell_dcb_device::misc_r()
-{
- return m_eeprom->do_read() << 7;
-}
-
-void novell_dcb_device::mem_map(address_map &map)
-{
- map(0x00000, 0x03fff).ram();
- map(0xfe000, 0xfffff).rom().region("localcpu", 0);
-}
-
-void novell_dcb_device::io_map(address_map &map)
-{
- map(0x0100, 0x0100).w(FUNC(novell_dcb_device::eeprom_w));
- map(0x0180, 0x0180).r(FUNC(novell_dcb_device::misc_r));
-}
-
-void novell_dcb_device::device_add_mconfig(machine_config &config)
-{
- I80188(config, m_localcpu, 16_MHz_XTAL);
- m_localcpu->set_addrmap(AS_PROGRAM, &novell_dcb_device::mem_map);
- m_localcpu->set_addrmap(AS_IO, &novell_dcb_device::io_map);
-
- EEPROM_93C06_16BIT(config, m_eeprom); // NMC9306
-}
-
-ROM_START(novell_dcb)
- ROM_REGION(0x2000, "localcpu", 0)
- ROM_LOAD("817-186-001_rev_e_5800_11-04-86.bin", 0x0000, 0x2000, CRC(2e2037f4) SHA1(a13c0aab46084a0805256f1d2b8b8beaccc9e253))
-ROM_END
-
-const tiny_rom_entry *novell_dcb_device::device_rom_region() const
-{
- return ROM_NAME(novell_dcb);
-}
diff --git a/src/devices/bus/isa/dcb.h b/src/devices/bus/isa/dcb.h
deleted file mode 100644
index fbca0303978..00000000000
--- a/src/devices/bus/isa/dcb.h
+++ /dev/null
@@ -1,43 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:AJR
-/***************************************************************************
-
- Novell Disk Coprocessor Board (DCB)
-
-***************************************************************************/
-
-#ifndef MAME_BUS_ISA_DCB_H
-#define MAME_BUS_ISA_DCB_H
-
-#pragma once
-
-#include "isa.h"
-#include "cpu/i86/i186.h"
-#include "machine/eepromser.h"
-
-class novell_dcb_device : public device_t, public device_isa16_card_interface
-{
-public:
- novell_dcb_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
-
- static constexpr feature_type unemulated_features() { return feature::DISK; }
-
-protected:
- virtual void device_add_mconfig(machine_config &config) override;
- virtual const tiny_rom_entry *device_rom_region() const override;
- virtual void device_start() override;
-
-private:
- void eeprom_w(u8 data);
- u8 misc_r();
-
- void mem_map(address_map &map);
- void io_map(address_map &map);
-
- required_device<i80188_cpu_device> m_localcpu;
- required_device<eeprom_serial_93cxx_device> m_eeprom;
-};
-
-DECLARE_DEVICE_TYPE(NOVELL_DCB, novell_dcb_device)
-
-#endif // MAME_BUS_ISA_DCB_H
diff --git a/src/devices/bus/isa/dectalk.cpp b/src/devices/bus/isa/dectalk.cpp
index da45a2ec18b..d8ad57d57d3 100644
--- a/src/devices/bus/isa/dectalk.cpp
+++ b/src/devices/bus/isa/dectalk.cpp
@@ -172,6 +172,7 @@ void dectalk_isa_device::device_add_mconfig(machine_config &config)
SPEAKER(config, "speaker").front_center();
DAC_12BIT_R2R(config, m_dac, 0).add_route(0, "speaker", 1.0); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
+ vref.set_output(5.0);
vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
}
diff --git a/src/devices/bus/isa/ega.cpp b/src/devices/bus/isa/ega.cpp
index 5da3c263384..01c73066088 100644
--- a/src/devices/bus/isa/ega.cpp
+++ b/src/devices/bus/isa/ega.cpp
@@ -528,24 +528,23 @@ DEFINE_DEVICE_TYPE(ISA8_EGA, isa8_ega_device, "ega", "IBM Enhanced Graphics Adap
// device_add_mconfig - add device configuration
//-------------------------------------------------
-void isa8_ega_device::device_add_mconfig(machine_config &config)
-{
- screen_device &screen(SCREEN(config, EGA_SCREEN_NAME, SCREEN_TYPE_RASTER));
- screen.set_raw(16.257_MHz_XTAL, 912, 0, 640, 262, 0, 200);
- screen.set_screen_update(EGA_CRTC_NAME, FUNC(crtc_ega_device::screen_update));
- screen.set_palette(m_palette);
-
- PALETTE(config, m_palette).set_entries(64);
-
- CRTC_EGA(config, m_crtc_ega, 16.257_MHz_XTAL/8);
- m_crtc_ega->set_screen(EGA_SCREEN_NAME);
- m_crtc_ega->config_set_hpixels_per_column(8);
- m_crtc_ega->set_row_update_callback(FUNC(isa8_ega_device::ega_update_row), this);
- m_crtc_ega->res_out_de_callback().set(FUNC(isa8_ega_device::de_changed));
- m_crtc_ega->res_out_hsync_callback().set(FUNC(isa8_ega_device::hsync_changed));
- m_crtc_ega->res_out_vsync_callback().set(FUNC(isa8_ega_device::vsync_changed));
- m_crtc_ega->res_out_vblank_callback().set(FUNC(isa8_ega_device::vblank_changed));
-}
+MACHINE_CONFIG_START(isa8_ega_device::device_add_mconfig)
+ MCFG_SCREEN_ADD(EGA_SCREEN_NAME, RASTER)
+ MCFG_SCREEN_RAW_PARAMS(16257000,912,0,640,262,0,200)
+ MCFG_SCREEN_UPDATE_DEVICE(EGA_CRTC_NAME, crtc_ega_device, screen_update)
+ MCFG_SCREEN_PALETTE("palette")
+
+ MCFG_PALETTE_ADD( "palette", 64 )
+
+ MCFG_DEVICE_ADD(EGA_CRTC_NAME, CRTC_EGA, 16257000/8)
+ MCFG_CRTC_EGA_SET_SCREEN(EGA_SCREEN_NAME)
+ MCFG_CRTC_EGA_HPIXELS_PER_COLUMN(8)
+ MCFG_CRTC_EGA_ROW_UPDATE_CB(isa8_ega_device, ega_update_row)
+ MCFG_CRTC_EGA_RES_OUT_DE_CB(WRITELINE(*this, isa8_ega_device, de_changed))
+ MCFG_CRTC_EGA_RES_OUT_HSYNC_CB(WRITELINE(*this, isa8_ega_device, hsync_changed))
+ MCFG_CRTC_EGA_RES_OUT_VSYNC_CB(WRITELINE(*this, isa8_ega_device, vsync_changed))
+ MCFG_CRTC_EGA_RES_OUT_VBLANK_CB(WRITELINE(*this, isa8_ega_device, vblank_changed))
+MACHINE_CONFIG_END
//-------------------------------------------------
// rom_region - device-specific ROM region
@@ -577,7 +576,7 @@ isa8_ega_device::isa8_ega_device(const machine_config &mconfig, const char *tag,
isa8_ega_device::isa8_ega_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, type, tag, owner, clock),
device_isa8_card_interface(mconfig, *this),
- m_crtc_ega(*this, EGA_CRTC_NAME), m_videoram(nullptr), m_charA(nullptr), m_charB(nullptr),
+ m_crtc_ega(nullptr), m_videoram(nullptr), m_charA(nullptr), m_charB(nullptr),
m_misc_output(0), m_feature_control(0), m_frame_cnt(0), m_hsync(0), m_vsync(0), m_vblank(0), m_display_enable(0), m_video_mode(0),
m_palette(*this, "palette")
{
@@ -627,6 +626,8 @@ void isa8_ega_device::device_start()
m_plane[2] = m_videoram + 0x20000;
m_plane[3] = m_videoram + 0x30000;
+ m_crtc_ega = subdevice<crtc_ega_device>(EGA_CRTC_NAME);
+
m_isa->install_rom(this, 0xc0000, 0xc3fff, "ega", "user2");
m_isa->install_device(0x3b0, 0x3bf, read8_delegate(FUNC(isa8_ega_device::pc_ega8_3b0_r), this), write8_delegate(FUNC(isa8_ega_device::pc_ega8_3b0_w), this));
m_isa->install_device(0x3c0, 0x3cf, read8_delegate(FUNC(isa8_ega_device::pc_ega8_3c0_r), this), write8_delegate(FUNC(isa8_ega_device::pc_ega8_3c0_w), this));
@@ -1169,7 +1170,7 @@ READ8_MEMBER( isa8_ega_device::pc_ega8_3X0_r )
/* CRT Controller - data register */
case 1: case 3: case 5: case 7:
- data = m_crtc_ega->register_r();
+ data = m_crtc_ega->register_r( space, offset );
break;
/* Input Status Register 1 */
@@ -1204,12 +1205,12 @@ WRITE8_MEMBER( isa8_ega_device::pc_ega8_3X0_w )
{
/* CRT Controller - address register */
case 0: case 2: case 4: case 6:
- m_crtc_ega->address_w(data);
+ m_crtc_ega->address_w( space, offset, data );
break;
/* CRT Controller - data register */
case 1: case 3: case 5: case 7:
- m_crtc_ega->register_w(data);
+ m_crtc_ega->register_w( space, offset, data );
break;
/* Set Light Pen Flip Flop */
diff --git a/src/devices/bus/isa/ega.h b/src/devices/bus/isa/ega.h
index 4334604b9a8..4e7bc4394a3 100644
--- a/src/devices/bus/isa/ega.h
+++ b/src/devices/bus/isa/ega.h
@@ -58,7 +58,7 @@ private:
CRTC_EGA_ROW_UPDATE(ega_update_row);
public:
- required_device<crtc_ega_device> m_crtc_ega;
+ crtc_ega_device *m_crtc_ega;
void install_banks();
void change_mode();
diff --git a/src/devices/bus/isa/eis_sad8852.cpp b/src/devices/bus/isa/eis_sad8852.cpp
index f4d634d1033..4f2b5a0c856 100644
--- a/src/devices/bus/isa/eis_sad8852.cpp
+++ b/src/devices/bus/isa/eis_sad8852.cpp
@@ -199,14 +199,13 @@ ioport_constructor isa16_sad8852_device::device_input_ports() const
//-------------------------------------------------
// Board configuration
//-------------------------------------------------
-void isa16_sad8852_device::device_add_mconfig(machine_config &config)
-{
- i80188_cpu_device &cpu(I80188(config, I80188_TAG, XTAL(12'000'000) / 2)); // Chip revision is 6 MHz
- cpu.set_addrmap(AS_PROGRAM, &isa16_sad8852_device::sad8852_mem);
- cpu.set_addrmap(AS_IO, &isa16_sad8852_device::sad8852_io);
+MACHINE_CONFIG_START(isa16_sad8852_device::device_add_mconfig)
+ MCFG_DEVICE_ADD(I80188_TAG, I80188, XTAL(12'000'000) / 2) // Chip revision is 6 MHz
+ MCFG_DEVICE_PROGRAM_MAP( sad8852_mem )
+ MCFG_DEVICE_IO_MAP(sad8852_io)
I8274_NEW(config, "terminal", XTAL(12'000'000) / 3); // Needs verification
-}
+MACHINE_CONFIG_END
isa16_sad8852_device::isa16_sad8852_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, ISA16_SAD8852, tag, owner, clock)
diff --git a/src/devices/bus/isa/fdc.cpp b/src/devices/bus/isa/fdc.cpp
index 9c9f52d7a1d..f31b0f5f9dd 100644
--- a/src/devices/bus/isa/fdc.cpp
+++ b/src/devices/bus/isa/fdc.cpp
@@ -72,11 +72,6 @@ void isa8_fdc_device::dack_w(int line, uint8_t data)
return m_fdc->dma_w(data);
}
-void isa8_fdc_device::dack_line_w(int line, int state)
-{
- //m_fdc->dack_w(state);
-}
-
void isa8_fdc_device::eop_w(int state)
{
m_fdc->tc_w(state == ASSERT_LINE);
diff --git a/src/devices/bus/isa/fdc.h b/src/devices/bus/isa/fdc.h
index cec5f7dd06e..7a1781cdc69 100644
--- a/src/devices/bus/isa/fdc.h
+++ b/src/devices/bus/isa/fdc.h
@@ -40,7 +40,6 @@ protected:
virtual uint8_t dack_r(int line) override;
virtual void dack_w(int line, uint8_t data) override;
- virtual void dack_line_w(int line, int state) override;
virtual void eop_w(int state) override;
required_device<pc_fdc_interface> m_fdc;
diff --git a/src/devices/bus/isa/finalchs.cpp b/src/devices/bus/isa/finalchs.cpp
index f9e6f37dc8f..e79dee39686 100644
--- a/src/devices/bus/isa/finalchs.cpp
+++ b/src/devices/bus/isa/finalchs.cpp
@@ -71,11 +71,10 @@ DEFINE_DEVICE_TYPE(ISA8_FINALCHS, isa8_finalchs_device, "isa_finalchs", "Final C
// device_add_mconfig - add device configuration
//-------------------------------------------------
-void isa8_finalchs_device::device_add_mconfig(machine_config &config)
-{
- m65c02_device &cpu(M65C02(config, "maincpu", 5000000));
- cpu.set_addrmap(AS_PROGRAM, &isa8_finalchs_device::finalchs_mem);
-}
+MACHINE_CONFIG_START(isa8_finalchs_device::device_add_mconfig)
+ MCFG_DEVICE_ADD("maincpu",M65C02,5000000)
+ MCFG_DEVICE_PROGRAM_MAP(finalchs_mem)
+MACHINE_CONFIG_END
//**************************************************************************
// LIVE DEVICE
diff --git a/src/devices/bus/isa/gus.cpp b/src/devices/bus/isa/gus.cpp
index 423c1e3629f..99404470140 100644
--- a/src/devices/bus/isa/gus.cpp
+++ b/src/devices/bus/isa/gus.cpp
@@ -1250,8 +1250,7 @@ INPUT_PORTS_END
// device_add_mconfig - add device configuration
//-------------------------------------------------
-void isa16_gus_device::device_add_mconfig(machine_config &config)
-{
+MACHINE_CONFIG_START(isa16_gus_device::device_add_mconfig)
SPEAKER(config, "lspeaker").front_left();
SPEAKER(config, "rspeaker").front_right();
GGF1(config, m_gf1, GF1_CLOCK);
@@ -1271,13 +1270,14 @@ void isa16_gus_device::device_add_mconfig(machine_config &config)
m_gf1->drq2_handler().set(FUNC(isa16_gus_device::drq2_w));
m_gf1->nmi_handler().set(FUNC(isa16_gus_device::nmi_w));
- MIDI_PORT(config, "mdin", midiin_slot, "midiin").rxd_handler().set(m_gf1, FUNC(acia6850_device::write_rxd));
+ MCFG_MIDI_PORT_ADD("mdin", midiin_slot, "midiin")
+ MCFG_MIDI_RX_HANDLER(WRITELINE("gf1", acia6850_device, write_rxd))
- MIDI_PORT(config, "mdout", midiout_slot, "midiout");
+ MCFG_MIDI_PORT_ADD("mdout", midiout_slot, "midiout")
- clock_device &acia_clock(CLOCK(config, "acia_clock", 31250*16));
- acia_clock.signal_handler().set(FUNC(isa16_gus_device::write_acia_clock));
-}
+ MCFG_DEVICE_ADD("acia_clock", CLOCK, 31250*16)
+ MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(*this, isa16_gus_device, write_acia_clock))
+MACHINE_CONFIG_END
ioport_constructor isa16_gus_device::device_input_ports() const
{
@@ -1384,9 +1384,9 @@ READ8_MEMBER(isa16_gus_device::synth_r)
switch(offset)
{
case 0x00:
- return m_gf1->status_r();
+ return m_gf1->status_r(space,0);
case 0x01:
- return m_gf1->data_r();
+ return m_gf1->data_r(space,0);
case 0x02:
case 0x03:
return m_gf1->global_reg_select_r(space,offset-2);
@@ -1407,10 +1407,10 @@ WRITE8_MEMBER(isa16_gus_device::synth_w)
switch(offset)
{
case 0x00:
- m_gf1->control_w(data);
+ m_gf1->control_w(space,0,data);
break;
case 0x01:
- m_gf1->data_w(data);
+ m_gf1->data_w(space,0,data);
break;
case 0x02:
case 0x03:
diff --git a/src/devices/bus/isa/gus.h b/src/devices/bus/isa/gus.h
index 0009510b81f..493893a62e0 100644
--- a/src/devices/bus/isa/gus.h
+++ b/src/devices/bus/isa/gus.h
@@ -45,6 +45,38 @@
#include "isa.h"
#include "machine/6850acia.h"
+#define MCFG_GF1_TXIRQ_HANDLER(_devcb) \
+ downcast<gf1_device &>(*device).set_txirq_handler(DEVCB_##_devcb);
+
+#define MCFG_GF1_RXIRQ_HANDLER(_devcb) \
+ downcast<gf1_device &>(*device).set_rxirq_handler(DEVCB_##_devcb);
+
+#define MCFG_GF1_WAVE_IRQ_HANDLER(_devcb) \
+ downcast<gf1_device &>(*device).set_wave_irq_handler(DEVCB_##_devcb);
+
+#define MCFG_GF1_RAMP_IRQ_HANDLER(_devcb) \
+ downcast<gf1_device &>(*device).set_ramp_irq_handler(DEVCB_##_devcb);
+
+#define MCFG_GF1_TIMER1_IRQ_HANDLER(_devcb) \
+ downcast<gf1_device &>(*device).set_timer1_irq_handler(DEVCB_##_devcb);
+
+#define MCFG_GF1_TIMER2_IRQ_HANDLER(_devcb) \
+ downcast<gf1_device &>(*device).set_timer2_irq_handler(DEVCB_##_devcb);
+
+#define MCFG_GF1_SB_IRQ_HANDLER(_devcb) \
+ downcast<gf1_device &>(*device).set_sb_irq_handler(DEVCB_##_devcb);
+
+#define MCFG_GF1_DMA_IRQ_HANDLER(_devcb) \
+ downcast<gf1_device &>(*device).set_dma_irq_handler(DEVCB_##_devcb);
+
+#define MCFG_GF1_DRQ1_HANDLER(_devcb) \
+ downcast<gf1_device &>(*device).set_drq1_handler(DEVCB_##_devcb);
+
+#define MCFG_GF1_DRQ2_HANDLER(_devcb) \
+ downcast<gf1_device &>(*device).set_drq2_handler(DEVCB_##_devcb);
+
+#define MCFG_GF1_NMI_HANDLER(_devcb) \
+ downcast<gf1_device &>(*device).set_nmi_handler(DEVCB_##_devcb);
//**************************************************************************
// TYPE DEFINITIONS
@@ -80,6 +112,17 @@ public:
// construction/destruction
gf1_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ template <class Object> devcb_base &set_txirq_handler(Object &&cb) { return m_txirq_handler.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_rxirq_handler(Object &&cb) { return m_rxirq_handler.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_wave_irq_handler(Object &&cb) { return m_wave_irq_handler.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_ramp_irq_handler(Object &&cb) { return m_ramp_irq_handler.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_timer1_irq_handler(Object &&cb) { return m_timer1_irq_handler.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_timer2_irq_handler(Object &&cb) { return m_timer2_irq_handler.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_sb_irq_handler(Object &&cb) { return m_sb_irq_handler.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_dma_irq_handler(Object &&cb) { return m_dma_irq_handler.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_drq1_handler(Object &&cb) { return m_drq1_handler.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_drq2_handler(Object &&cb) { return m_drq2_handler.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_nmi_handler(Object &&cb) { return m_nmi_handler.set_callback(std::forward<Object>(cb)); }
auto txirq_handler() { return m_txirq_handler.bind(); }
auto rxirq_handler() { return m_rxirq_handler.bind(); }
auto wave_irq_handler() { return m_wave_irq_handler.bind(); }
diff --git a/src/devices/bus/isa/hdc.cpp b/src/devices/bus/isa/hdc.cpp
index 2492d0eaa89..040f72f98c3 100644
--- a/src/devices/bus/isa/hdc.cpp
+++ b/src/devices/bus/isa/hdc.cpp
@@ -918,23 +918,21 @@ DEFINE_DEVICE_TYPE(ISA8_HDC_EC1841, isa8_hdc_ec1841_device, "isa_hdc_ec1841", "E
// device_add_mconfig - add device configuration
//-------------------------------------------------
-void isa8_hdc_device::device_add_mconfig(machine_config &config)
-{
- XT_HDC(config, m_hdc,0);
- m_hdc->irq_handler().set(FUNC(isa8_hdc_device::irq_w));
- m_hdc->drq_handler().set(FUNC(isa8_hdc_device::drq_w));
- HARDDISK(config, "hdc:primary");
- HARDDISK(config, "hdc:slave");
-}
-
-void isa8_hdc_ec1841_device::device_add_mconfig(machine_config &config)
-{
- EC1841_HDC(config, m_hdc,0);
- m_hdc->irq_handler().set(FUNC(isa8_hdc_ec1841_device::irq_w));
- m_hdc->drq_handler().set(FUNC(isa8_hdc_ec1841_device::drq_w));
- HARDDISK(config, "hdc:primary");
- HARDDISK(config, "hdc:slave");
-}
+MACHINE_CONFIG_START(isa8_hdc_device::device_add_mconfig)
+ MCFG_DEVICE_ADD("hdc",XT_HDC,0)
+ MCFG_XTHDC_IRQ_HANDLER(WRITELINE(*this, isa8_hdc_device,irq_w))
+ MCFG_XTHDC_DRQ_HANDLER(WRITELINE(*this, isa8_hdc_device,drq_w))
+ MCFG_HARDDISK_ADD("hdc:primary")
+ MCFG_HARDDISK_ADD("hdc:slave")
+MACHINE_CONFIG_END
+
+MACHINE_CONFIG_START(isa8_hdc_ec1841_device::device_add_mconfig)
+ MCFG_DEVICE_ADD("hdc",EC1841_HDC,0)
+ MCFG_XTHDC_IRQ_HANDLER(WRITELINE(*this, isa8_hdc_ec1841_device,irq_w))
+ MCFG_XTHDC_DRQ_HANDLER(WRITELINE(*this, isa8_hdc_ec1841_device,drq_w))
+ MCFG_HARDDISK_ADD("hdc:primary")
+ MCFG_HARDDISK_ADD("hdc:slave")
+MACHINE_CONFIG_END
//-------------------------------------------------
// rom_region - device-specific ROM region
diff --git a/src/devices/bus/isa/hdc.h b/src/devices/bus/isa/hdc.h
index 7d60d40b7a5..3e91c57d063 100644
--- a/src/devices/bus/isa/hdc.h
+++ b/src/devices/bus/isa/hdc.h
@@ -19,6 +19,11 @@
// XT HD controller device
+#define MCFG_XTHDC_IRQ_HANDLER(_devcb) \
+ downcast<xt_hdc_device &>(*device).set_irq_handler(DEVCB_##_devcb);
+
+#define MCFG_XTHDC_DRQ_HANDLER(_devcb) \
+ downcast<xt_hdc_device &>(*device).set_drq_handler(DEVCB_##_devcb);
class xt_hdc_device :
public device_t
@@ -27,8 +32,8 @@ public:
// construction/destruction
xt_hdc_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
- auto irq_handler() { return m_irq_handler.bind(); }
- auto drq_handler() { return m_drq_handler.bind(); }
+ template <class Object> devcb_base &set_irq_handler(Object &&cb) { return m_irq_handler.set_callback(std::forward<Object>(cb)); }
+ template <class Object> devcb_base &set_drq_handler(Object &&cb) { return m_drq_handler.set_callback(std::forward<Object>(cb)); }
int dack_r();
int dack_rs();
diff --git a/src/devices/bus/isa/ibm_mfc.cpp b/src/devices/bus/isa/ibm_mfc.cpp
index 40ce54ff6fc..30a638d1c27 100644
--- a/src/devices/bus/isa/ibm_mfc.cpp
+++ b/src/devices/bus/isa/ibm_mfc.cpp
@@ -374,11 +374,10 @@ ROM_END
// device_add_mconfig - add device configuration
//-------------------------------------------------
-void isa8_ibm_mfc_device::device_add_mconfig(machine_config &config)
-{
- Z80(config, m_cpu, XTAL(11'800'000) / 2);
- m_cpu->set_addrmap(AS_PROGRAM, &isa8_ibm_mfc_device::prg_map);
- m_cpu->set_addrmap(AS_IO, &isa8_ibm_mfc_device::io_map);
+MACHINE_CONFIG_START(isa8_ibm_mfc_device::device_add_mconfig)
+ MCFG_DEVICE_ADD("ibm_mfc", Z80, XTAL(11'800'000) / 2)
+ MCFG_DEVICE_PROGRAM_MAP(prg_map)
+ MCFG_DEVICE_IO_MAP(io_map)
I8255(config, m_d71055c_0);
m_d71055c_0->in_pa_callback().set(FUNC(isa8_ibm_mfc_device::ppi0_i_a));
@@ -391,10 +390,10 @@ void isa8_ibm_mfc_device::device_add_mconfig(machine_config &config)
m_d71055c_1->in_pb_callback().set(FUNC(isa8_ibm_mfc_device::ppi1_i_b));
m_d71055c_1->out_pc_callback().set(FUNC(isa8_ibm_mfc_device::ppi1_o_c));
- I8251(config, m_d71051, 0);
+ I8251(config, "d71051", 0);
- clock_device &usart_clock(CLOCK(config, "usart_clock", XTAL(4'000'000) / 8)); // 500KHz
- usart_clock.signal_handler().set(FUNC(isa8_ibm_mfc_device::write_usart_clock));
+ MCFG_DEVICE_ADD("usart_clock", CLOCK, XTAL(4'000'000) / 8) // 500KHz
+ MCFG_CLOCK_SIGNAL_HANDLER(WRITELINE(*this, isa8_ibm_mfc_device, write_usart_clock))
PIT8253(config, m_d8253, 0);
m_d8253->set_clk<0>(XTAL(4'000'000) / 8);
@@ -410,7 +409,7 @@ void isa8_ibm_mfc_device::device_add_mconfig(machine_config &config)
m_ym2151->irq_handler().set(FUNC(isa8_ibm_mfc_device::ibm_mfc_ym_irq));
m_ym2151->add_route(0, "ymleft", 1.00);
m_ym2151->add_route(1, "ymright", 1.00);
-}
+MACHINE_CONFIG_END
//-------------------------------------------------
diff --git a/src/devices/bus/isa/isa.cpp b/src/devices/bus/isa/isa.cpp
index 92ead5df95b..417e354180c 100644
--- a/src/devices/bus/isa/isa.cpp
+++ b/src/devices/bus/isa/isa.cpp
@@ -111,10 +111,11 @@ isa8_device::isa8_device(const machine_config &mconfig, device_type type, const
m_io_config("ISA 8-bit I/O", ENDIANNESS_LITTLE, 8, 16, 0, address_map_constructor()),
m_mem16_config("ISA 16-bit mem", ENDIANNESS_LITTLE, 16, 24, 0, address_map_constructor()),
m_io16_config("ISA 16-bit I/O", ENDIANNESS_LITTLE, 16, 16, 0, address_map_constructor()),
- m_memspace(*this, finder_base::DUMMY_TAG, -1),
- m_iospace(*this, finder_base::DUMMY_TAG, -1),
- m_memwidth(0),
+ m_maincpu(*this, finder_base::DUMMY_TAG),
+ m_iospace(nullptr),
+ m_memspace(nullptr),
m_iowidth(0),
+ m_memwidth(0),
m_allocspaces(false),
m_out_irq2_cb(*this),
m_out_irq3_cb(*this),
@@ -125,6 +126,7 @@ isa8_device::isa8_device(const machine_config &mconfig, device_type type, const
m_out_drq1_cb(*this),
m_out_drq2_cb(*this),
m_out_drq3_cb(*this),
+ m_nmi_enabled(false),
m_write_iochck(*this)
{
std::fill(std::begin(m_dma_device), std::end(m_dma_device), nullptr);
@@ -200,27 +202,10 @@ void isa8_device::remap(int space_id, offs_t start, offs_t end)
}
//-------------------------------------------------
-// device_config_complete - - perform any
-// operations now that the configuration is
-// complete
-//-------------------------------------------------
-
-void isa8_device::device_config_complete()
-{
- if (m_allocspaces)
- {
- m_memspace.set_tag(*this, DEVICE_SELF, AS_ISA_MEM);
- m_iospace.set_tag(*this, DEVICE_SELF, AS_ISA_IO);
- }
-}
-
-//-------------------------------------------------
-// device_resolve_objects - resolve objects that
-// may be needed for other devices to set
-// initial conditions at start time
+// device_start - device-specific startup
//-------------------------------------------------
-void isa8_device::device_resolve_objects()
+void isa8_device::device_start()
{
// resolve callbacks
m_write_iochck.resolve_safe();
@@ -235,16 +220,20 @@ void isa8_device::device_resolve_objects()
m_out_drq2_cb.resolve_safe();
m_out_drq3_cb.resolve_safe();
- m_iowidth = m_iospace->data_width();
- m_memwidth = m_memspace->data_width();
-}
-
-//-------------------------------------------------
-// device_start - device-specific startup
-//-------------------------------------------------
-
-void isa8_device::device_start()
-{
+ if (m_allocspaces)
+ {
+ m_iospace = &space(AS_ISA_IO);
+ m_memspace = &space(AS_ISA_MEM);
+ m_iowidth = m_iospace->data_width();
+ m_memwidth = m_memspace->data_width();
+ }
+ else // use host CPU's program and I/O spaces directly
+ {
+ m_iospace = &m_maincpu->space(AS_IO);
+ m_iowidth = m_maincpu->space_config(AS_IO)->data_width();
+ m_memspace = &m_maincpu->space(AS_PROGRAM);
+ m_memwidth = m_maincpu->space_config(AS_PROGRAM)->data_width();
+ }
}
//-------------------------------------------------
@@ -263,12 +252,12 @@ template<typename R, typename W> void isa8_device::install_space(int spacenum, o
if (spacenum == AS_ISA_IO)
{
- space = m_iospace.target();
+ space = m_iospace;
buswidth = m_iowidth;
}
else if (spacenum == AS_ISA_MEM)
{
- space = m_memspace.target();
+ space = m_memspace;
buswidth = m_memwidth;
}
else
@@ -389,18 +378,12 @@ uint8_t isa8_device::dack_r(int line)
return 0xff;
}
-void isa8_device::dack_w(int line, uint8_t data)
+void isa8_device::dack_w(int line,uint8_t data)
{
if (m_dma_device[line])
return m_dma_device[line]->dack_w(line,data);
}
-void isa8_device::dack_line_w(int line, int state)
-{
- if (m_dma_device[line])
- m_dma_device[line]->dack_line_w(line, state);
-}
-
void isa8_device::eop_w(int channel, int state)
{
if (m_dma_eop[channel] && m_dma_device[channel])
@@ -409,9 +392,18 @@ void isa8_device::eop_w(int channel, int state)
void isa8_device::nmi()
{
- // active low pulse
- m_write_iochck(0);
- m_write_iochck(1);
+ if (m_write_iochck.isnull())
+ {
+ if (m_nmi_enabled)
+ {
+ m_maincpu->pulse_input_line(INPUT_LINE_NMI, attotime::zero);
+ }
+ }
+ else
+ {
+ m_write_iochck(0);
+ m_write_iochck(1);
+ }
}
//**************************************************************************
@@ -446,15 +438,9 @@ uint8_t device_isa8_card_interface::dack_r(int line)
{
return 0;
}
-
-void device_isa8_card_interface::dack_w(int line, uint8_t data)
+void device_isa8_card_interface::dack_w(int line,uint8_t data)
{
}
-
-void device_isa8_card_interface::dack_line_w(int line, int state)
-{
-}
-
void device_isa8_card_interface::eop_w(int state)
{
}
@@ -607,7 +593,7 @@ uint16_t isa16_device::dack16_r(int line)
return 0xffff;
}
-void isa16_device::dack16_w(int line, uint16_t data)
+void isa16_device::dack16_w(int line,uint16_t data)
{
if (m_dma_device[line])
return dynamic_cast<device_isa16_card_interface *>(m_dma_device[line])->dack16_w(line,data);
@@ -661,6 +647,6 @@ uint16_t device_isa16_card_interface::dack16_r(int line)
return 0;
}
-void device_isa16_card_interface::dack16_w(int line, uint16_t data)
+void device_isa16_card_interface::dack16_w(int line,uint16_t data)
{
}
diff --git a/src/devices/bus/isa/isa.h b/src/devices/bus/isa/isa.h
index fff65de82f6..3dc15c9df59 100644
--- a/src/devices/bus/isa/isa.h
+++ b/src/devices/bus/isa/isa.h
@@ -123,8 +123,7 @@ public:
isa8_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
// inline configuration
- template <typename T> void set_memspace(T &&tag, int spacenum) { m_memspace.set_tag(std::forward<T>(tag), spacenum); }
- template <typename T> void set_iospace(T &&tag, int spacenum) { m_iospace.set_tag(std::forward<T>(tag), spacenum); }
+ template <typename T> void set_cputag(T &&tag) { m_maincpu.set_tag(std::forward<T>(tag)); }
auto iochck_callback() { return m_write_iochck.bind(); }
auto irq2_callback() { return m_out_irq2_cb.bind(); }
auto irq3_callback() { return m_out_irq3_cb.bind(); }
@@ -157,7 +156,7 @@ public:
bool is_option_rom_space_available(offs_t start, int size);
// FIXME: shouldn't need to expose this
- address_space &memspace() const { return *m_memspace; }
+ address_space &memspace() const { return m_maincpu->space(AS_PROGRAM); }
DECLARE_WRITE_LINE_MEMBER( irq2_w );
DECLARE_WRITE_LINE_MEMBER( irq3_w );
@@ -177,11 +176,11 @@ public:
DECLARE_WRITE8_MEMBER(io_w);
uint8_t dack_r(int line);
- void dack_w(int line, uint8_t data);
- void dack_line_w(int line, int state);
+ void dack_w(int line,uint8_t data);
void eop_w(int channels, int state);
void nmi();
+ void set_nmi_state(bool enabled) { m_nmi_enabled = enabled; }
virtual void set_dma_channel(uint8_t channel, device_isa8_card_interface *dev, bool do_eop);
@@ -197,14 +196,15 @@ protected:
template<typename R, typename W> void install_space(int spacenum, offs_t start, offs_t end, R rhandler, W whandler);
// device-level overrides
- virtual void device_config_complete() override;
- virtual void device_resolve_objects() override;
virtual void device_start() override;
virtual void device_reset() override;
+ // internal state
+ required_device<cpu_device> m_maincpu;
+
// address spaces
- required_address_space m_memspace, m_iospace;
- int m_memwidth, m_iowidth;
+ address_space *m_iospace, *m_memspace;
+ int m_iowidth, m_memwidth;
bool m_allocspaces;
devcb_write_line m_out_irq2_cb;
@@ -219,6 +219,7 @@ protected:
device_isa8_card_interface *m_dma_device[8];
bool m_dma_eop[8];
+ bool m_nmi_enabled;
std::forward_list<device_slot_interface *> m_slot_list;
private:
@@ -245,8 +246,7 @@ public:
void set_isa_device();
// configuration access
virtual uint8_t dack_r(int line);
- virtual void dack_w(int line, uint8_t data);
- virtual void dack_line_w(int line, int state);
+ virtual void dack_w(int line,uint8_t data);
virtual void eop_w(int state);
virtual void remap(int space_id, offs_t start, offs_t end) {}
@@ -325,7 +325,7 @@ public:
DECLARE_WRITE_LINE_MEMBER( drq7_w );
uint16_t dack16_r(int line);
- void dack16_w(int line, uint16_t data);
+ void dack16_w(int line,uint16_t data);
virtual void remap(int space_id, offs_t start, offs_t end) override;
// 16 bit accessors for ISA-defined address spaces
@@ -370,7 +370,7 @@ public:
// construction/destruction
virtual ~device_isa16_card_interface();
virtual uint16_t dack16_r(int line);
- virtual void dack16_w(int line, uint16_t data);
+ virtual void dack16_w(int line,uint16_t data);
void set_isa_device();
diff --git a/src/devices/bus/isa/isa_cards.cpp b/src/devices/bus/isa/isa_cards.cpp
index 8ab0832c03d..fbbafc0bc69 100644
--- a/src/devices/bus/isa/isa_cards.cpp
+++ b/src/devices/bus/isa/isa_cards.cpp
@@ -31,16 +31,11 @@
#include "ide.h"
#include "xtide.h"
#include "side116.h"
-#include "aha1542b.h"
-#include "aha1542c.h"
-#include "aha174x.h"
+#include "aha1542.h"
#include "wd1002a_wx1.h"
#include "wd1007a.h"
#include "mcd.h"
#include "lbaenhancer.h"
-#include "cl_sh260.h"
-#include "bt54x.h"
-#include "dcb.h"
// sound
#include "adlib.h"
@@ -60,7 +55,6 @@
#include "ne2000.h"
#include "3c505.h"
#include "eis_sad8852.h"
-#include "np600.h"
// communication ports
#include "lpt.h"
@@ -156,13 +150,7 @@ void pc_isa16_cards(device_slot_interface &device)
// 16-bit
device.option_add("ide", ISA16_IDE);
device.option_add("ne2000", NE2000);
- device.option_add("aha1542a", AHA1542A);
- device.option_add("aha1542b", AHA1542B);
- device.option_add("aha1542c", AHA1542C);
- device.option_add("aha1542cf", AHA1542CF);
- device.option_add("aha1542cp", AHA1542CP);
- device.option_add("aha1740", AHA1740); // actually an EISA card
- device.option_add("aha1742a", AHA1742A); // actually an EISA card
+ device.option_add("aha1542", AHA1542);
device.option_add("gus",ISA16_GUS);
device.option_add("sblaster_16", ISA16_SOUND_BLASTER_16);
device.option_add("svga_s3", ISA16_SVGA_S3);
@@ -179,12 +167,5 @@ void pc_isa16_cards(device_slot_interface &device)
device.option_add("sb16_lle", ISA16_SB16);
device.option_add("mcd", ISA16_MCD);
device.option_add("sad8852", ISA16_SAD8852);
- device.option_add("np600a3", NP600A3);
device.option_add("wd1007a", WD1007A);
- device.option_add("ev346", EV346);
- device.option_add("jc1310", JC1310);
- device.option_add("bt542b", BT542B);
- device.option_add("bt542bh", BT542BH);
- device.option_add("bt545s", BT545S);
- device.option_add("dcb", NOVELL_DCB);
}
diff --git a/src/devices/bus/isa/lbaenhancer.cpp b/src/devices/bus/isa/lbaenhancer.cpp
index f8ebedb130c..14bd28826ef 100644
--- a/src/devices/bus/isa/lbaenhancer.cpp
+++ b/src/devices/bus/isa/lbaenhancer.cpp
@@ -84,10 +84,9 @@ const tiny_rom_entry *lba_enhancer_device::device_rom_region() const
//-------------------------------------------------
// device_add_mconfig - add device configuration
//-------------------------------------------------
-void lba_enhancer_device::device_add_mconfig(machine_config &config)
-{
-// lba_enhancer(config, "lba_enhancer", 0);
-}
+MACHINE_CONFIG_START( lba_enhancer_device::device_add_mconfig )
+// MCFG_DEVICE_ADD("lba_enhancer", lba_enhancer, 0)
+MACHINE_CONFIG_END
//-------------------------------------------------
diff --git a/src/devices/bus/isa/mc1502_fdc.cpp b/src/devices/bus/isa/mc1502_fdc.cpp
index 3f85534a72b..1b04c6be91e 100644
--- a/src/devices/bus/isa/mc1502_fdc.cpp
+++ b/src/devices/bus/isa/mc1502_fdc.cpp
@@ -12,6 +12,18 @@
#include "cpu/i86/i86.h"
#include "formats/pc_dsk.h"
+#define VERBOSE_DBG 0
+
+#define DBG_LOG(N,M,A) \
+ do { \
+ if(VERBOSE_DBG>=N) \
+ { \
+ if( M ) \
+ logerror("%11.6f: %-24s",machine().time().as_double(),(char*)M ); \
+ logerror A; \
+ } \
+ } while (0)
+
//**************************************************************************
// DEVICE DEFINITIONS
diff --git a/src/devices/bus/isa/mda.cpp b/src/devices/bus/isa/mda.cpp
index f1f6cae6257..35e382cc981 100644
--- a/src/devices/bus/isa/mda.cpp
+++ b/src/devices/bus/isa/mda.cpp
@@ -22,7 +22,7 @@
#define VERBOSE_MDA 0 /* MDA (Monochrome Display Adapter) */
-#define MDA_CLOCK 16.257_MHz_XTAL
+#define MDA_CLOCK 16257000
#define MDA_LOG(N,M,A) \
do { \
@@ -107,13 +107,12 @@ DEFINE_DEVICE_TYPE(ISA8_MDA, isa8_mda_device, "isa_ibm_mda", "IBM Monochrome Dis
// device_add_mconfig - add device configuration
//-------------------------------------------------
-void isa8_mda_device::device_add_mconfig(machine_config &config)
-{
- screen_device &screen(SCREEN(config, MDA_SCREEN_NAME, SCREEN_TYPE_RASTER));
- screen.set_raw(MDA_CLOCK, 882, 0, 720, 370, 0, 350);
- screen.set_screen_update(MC6845_NAME, FUNC(mc6845_device::screen_update));
+MACHINE_CONFIG_START(isa8_mda_device::device_add_mconfig)
+ MCFG_SCREEN_ADD( MDA_SCREEN_NAME, RASTER)
+ MCFG_SCREEN_RAW_PARAMS(MDA_CLOCK, 882, 0, 720, 370, 0, 350 )
+ MCFG_SCREEN_UPDATE_DEVICE( MC6845_NAME, mc6845_device, screen_update )
- PALETTE(config, m_palette).set_entries(4);
+ MCFG_PALETTE_ADD( "palette", 4 )
MC6845(config, m_crtc, MDA_CLOCK/9);
m_crtc->set_screen(MDA_SCREEN_NAME);
@@ -123,11 +122,11 @@ void isa8_mda_device::device_add_mconfig(machine_config &config)
m_crtc->out_hsync_callback().set(FUNC(isa8_mda_device::hsync_changed));
m_crtc->out_vsync_callback().set(FUNC(isa8_mda_device::vsync_changed));
- GFXDECODE(config, "gfxdecode", m_palette, gfx_pcmda);
+ MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_pcmda)
PC_LPT(config, m_lpt);
m_lpt->irq_handler().set(FUNC(isa8_mda_device::pc_cpu_line));
-}
+MACHINE_CONFIG_END
//-------------------------------------------------
// rom_region - device-specific ROM region
@@ -463,10 +462,10 @@ WRITE8_MEMBER( isa8_mda_device::io_write)
switch( offset )
{
case 0: case 2: case 4: case 6:
- m_crtc->address_w(data);
+ m_crtc->address_w( space, offset, data );
break;
case 1: case 3: case 5: case 7:
- m_crtc->register_w(data);
+ m_crtc->register_w( space, offset, data );
break;
case 8:
mode_control_w(space, offset, data);
@@ -486,7 +485,7 @@ READ8_MEMBER( isa8_mda_device::io_read)
/* return last written mc6845 address value here? */
break;
case 1: case 3: case 5: case 7:
- data = m_crtc->register_r();
+ data = m_crtc->register_r( space, offset );
break;
case 10:
data = status_r(space, offset);
@@ -533,13 +532,12 @@ DEFINE_DEVICE_TYPE(ISA8_HERCULES, isa8_hercules_device, "isa_hercules", "Hercule
// device_add_mconfig - add device configuration
//-------------------------------------------------
-void isa8_hercules_device::device_add_mconfig(machine_config &config)
-{
- screen_device &screen(SCREEN(config, HERCULES_SCREEN_NAME, SCREEN_TYPE_RASTER));
- screen.set_raw(MDA_CLOCK, 882, 0, 720, 370, 0, 350);
- screen.set_screen_update(MC6845_NAME, FUNC(mc6845_device::screen_update));
+MACHINE_CONFIG_START(isa8_hercules_device::device_add_mconfig)
+ MCFG_SCREEN_ADD( HERCULES_SCREEN_NAME, RASTER)
+ MCFG_SCREEN_RAW_PARAMS(MDA_CLOCK, 882, 0, 720, 370, 0, 350 )
+ MCFG_SCREEN_UPDATE_DEVICE( MC6845_NAME, mc6845_device, screen_update )
- PALETTE(config, m_palette).set_entries(4);
+ MCFG_PALETTE_ADD( "palette", 4 )
MC6845(config, m_crtc, MDA_CLOCK/9);
m_crtc->set_screen(HERCULES_SCREEN_NAME);
@@ -549,11 +547,11 @@ void isa8_hercules_device::device_add_mconfig(machine_config &config)
m_crtc->out_hsync_callback().set(FUNC(isa8_mda_device::hsync_changed));
m_crtc->out_vsync_callback().set(FUNC(isa8_mda_device::vsync_changed));
- GFXDECODE(config, "gfxdecode", m_palette, gfx_pcherc);
+ MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_pcherc)
PC_LPT(config, m_lpt);
m_lpt->irq_handler().set(FUNC(isa8_mda_device::pc_cpu_line));
-}
+MACHINE_CONFIG_END
//-------------------------------------------------
// rom_region - device-specific ROM region
@@ -679,10 +677,10 @@ WRITE8_MEMBER( isa8_hercules_device::io_write )
switch( offset )
{
case 0: case 2: case 4: case 6:
- m_crtc->address_w(data);
+ m_crtc->address_w( space, offset, data );
break;
case 1: case 3: case 5: case 7:
- m_crtc->register_w(data);
+ m_crtc->register_w( space, offset, data );
break;
case 8:
mode_control_w(space, offset, data);
@@ -726,7 +724,7 @@ READ8_MEMBER( isa8_hercules_device::io_read )
/* return last written mc6845 address value here? */
break;
case 1: case 3: case 5: case 7:
- data = m_crtc->register_r();
+ data = m_crtc->register_r( space, offset );
break;
case 10:
data = status_r(space, offset);
@@ -747,13 +745,12 @@ DEFINE_DEVICE_TYPE(ISA8_EC1840_0002, isa8_ec1840_0002_device, "ec1840_0002", "EC
//-------------------------------------------------
// XXX
-void isa8_ec1840_0002_device::device_add_mconfig(machine_config &config)
-{
- screen_device &screen(SCREEN(config, MDA_SCREEN_NAME, SCREEN_TYPE_RASTER));
- screen.set_raw(MDA_CLOCK, 792, 0, 640, 370, 0, 350);
- screen.set_screen_update(MC6845_NAME, FUNC(mc6845_device::screen_update));
+MACHINE_CONFIG_START(isa8_ec1840_0002_device::device_add_mconfig)
+ MCFG_SCREEN_ADD( MDA_SCREEN_NAME, RASTER)
+ MCFG_SCREEN_RAW_PARAMS(MDA_CLOCK, 792, 0, 640, 370, 0, 350 )
+ MCFG_SCREEN_UPDATE_DEVICE( MC6845_NAME, mc6845_device, screen_update )
- PALETTE(config, m_palette).set_entries(4);
+ MCFG_PALETTE_ADD( "palette", 4 )
MC6845(config, m_crtc, MDA_CLOCK/8);
m_crtc->set_screen(MDA_SCREEN_NAME);
@@ -762,7 +759,7 @@ void isa8_ec1840_0002_device::device_add_mconfig(machine_config &config)
m_crtc->set_update_row_callback(FUNC(isa8_mda_device::crtc_update_row), this);
m_crtc->out_hsync_callback().set(FUNC(isa8_mda_device::hsync_changed));
m_crtc->out_vsync_callback().set(FUNC(isa8_mda_device::vsync_changed));
-}
+MACHINE_CONFIG_END
//-------------------------------------------------
// isa8_ec1840_0002_device - constructor
diff --git a/src/devices/bus/isa/mufdc.cpp b/src/devices/bus/isa/mufdc.cpp
index 3e40653e175..8930a080d8f 100644
--- a/src/devices/bus/isa/mufdc.cpp
+++ b/src/devices/bus/isa/mufdc.cpp
@@ -195,11 +195,6 @@ void mufdc_device::dack_w(int line, uint8_t data)
return m_fdc->dma_w(data);
}
-void mufdc_device::dack_line_w(int line, int state)
-{
- //m_fdc->dack_w(state);
-}
-
void mufdc_device::eop_w(int state)
{
m_fdc->tc_w(state == ASSERT_LINE);
diff --git a/src/devices/bus/isa/mufdc.h b/src/devices/bus/isa/mufdc.h
index 2fa000757e4..4d042a58834 100644
--- a/src/devices/bus/isa/mufdc.h
+++ b/src/devices/bus/isa/mufdc.h
@@ -47,7 +47,6 @@ protected:
// device_isa8_card_interface
virtual uint8_t dack_r(int line) override;
virtual void dack_w(int line, uint8_t data) override;
- virtual void dack_line_w(int line, int state) override;
virtual void eop_w(int state) override;
private:
diff --git a/src/devices/bus/isa/ne1000.cpp b/src/devices/bus/isa/ne1000.cpp
index 1eaef942105..7723ad75a88 100644
--- a/src/devices/bus/isa/ne1000.cpp
+++ b/src/devices/bus/isa/ne1000.cpp
@@ -6,13 +6,12 @@
DEFINE_DEVICE_TYPE(NE1000, ne1000_device, "ne1000", "NE1000 Network Adapter")
-void ne1000_device::device_add_mconfig(machine_config &config)
-{
- DP8390D(config, m_dp8390, 0);
- m_dp8390->irq_callback().set(FUNC(ne1000_device::ne1000_irq_w));
- m_dp8390->mem_read_callback().set(FUNC(ne1000_device::ne1000_mem_read));
- m_dp8390->mem_write_callback().set(FUNC(ne1000_device::ne1000_mem_write));
-}
+MACHINE_CONFIG_START(ne1000_device::device_add_mconfig)
+ MCFG_DEVICE_ADD("dp8390d", DP8390D, 0)
+ MCFG_DP8390D_IRQ_CB(WRITELINE(*this, ne1000_device, ne1000_irq_w))
+ MCFG_DP8390D_MEM_READ_CB(READ8(*this, ne1000_device, ne1000_mem_read))
+ MCFG_DP8390D_MEM_WRITE_CB(WRITE8(*this, ne1000_device, ne1000_mem_write))
+MACHINE_CONFIG_END
ne1000_device::ne1000_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, NE1000, tag, owner, clock),
diff --git a/src/devices/bus/isa/ne2000.cpp b/src/devices/bus/isa/ne2000.cpp
index 3ad2cc592ef..5de941accc2 100644
--- a/src/devices/bus/isa/ne2000.cpp
+++ b/src/devices/bus/isa/ne2000.cpp
@@ -6,13 +6,12 @@
DEFINE_DEVICE_TYPE(NE2000, ne2000_device, "ne2000", "NE2000 Network Adapter")
-void ne2000_device::device_add_mconfig(machine_config &config)
-{
- DP8390D(config, m_dp8390, 0);
- m_dp8390->irq_callback().set(FUNC(ne2000_device::ne2000_irq_w));
- m_dp8390->mem_read_callback().set(FUNC(ne2000_device::ne2000_mem_read));
- m_dp8390->mem_write_callback().set(FUNC(ne2000_device::ne2000_mem_write));
-}
+MACHINE_CONFIG_START(ne2000_device::device_add_mconfig)
+ MCFG_DEVICE_ADD("dp8390d", DP8390D, 0)
+ MCFG_DP8390D_IRQ_CB(WRITELINE(*this, ne2000_device, ne2000_irq_w))
+ MCFG_DP8390D_MEM_READ_CB(READ8(*this, ne2000_device, ne2000_mem_read))
+ MCFG_DP8390D_MEM_WRITE_CB(WRITE8(*this, ne2000_device, ne2000_mem_write))
+MACHINE_CONFIG_END
ne2000_device::ne2000_device(const machine_config& mconfig, const char* tag, device_t* owner, uint32_t clock)
: device_t(mconfig, NE2000, tag, owner, clock),
diff --git a/src/devices/bus/isa/np600.cpp b/src/devices/bus/isa/np600.cpp
deleted file mode 100644
index 064c1d40191..00000000000
--- a/src/devices/bus/isa/np600.cpp
+++ /dev/null
@@ -1,76 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:AJR
-/*********************************************************************
-
- InterLan NP600 Intelligent Protocol Processor
-
-*********************************************************************/
-
-#include "emu.h"
-#include "np600.h"
-
-#include "cpu/i86/i186.h"
-#include "machine/74259.h"
-//#include "machine/i82586.h"
-
-DEFINE_DEVICE_TYPE(NP600A3, np600a3_device, "np600a3", "InterLan NP600A-3 Intelligent Protocol Processor")
-
-np600a3_device::np600a3_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock)
- : device_t(mconfig, NP600A3, tag, owner, clock)
- , device_isa16_card_interface(mconfig, *this)
- , m_npcpu(*this, "npcpu")
-{
-}
-
-void np600a3_device::device_start()
-{
-}
-
-u16 np600a3_device::status_r()
-{
- return 0;
-}
-
-void np600a3_device::mem_map(address_map &map)
-{
- map(0x00000, 0x7ffff).ram(); // GM71256-12 x16
- map(0xfc000, 0xfffff).rom().region("npcpu", 0);
-}
-
-void np600a3_device::io_map(address_map &map)
-{
- map(0x0070, 0x007f).w("latch70", FUNC(ls259_device::write_a0));
- map(0x0080, 0x0081).r(FUNC(np600a3_device::status_r));
-}
-
-void np600a3_device::device_add_mconfig(machine_config &config)
-{
- I80186(config, m_npcpu, 16_MHz_XTAL);
- m_npcpu->set_addrmap(AS_PROGRAM, &np600a3_device::mem_map);
- m_npcpu->set_addrmap(AS_IO, &np600a3_device::io_map);
-
- LS259(config, "latch70"); // U28
-
- //I82586(config, "enet", 20_MHz_XTAL);
-}
-
-ROM_START(np600a3)
- ROM_REGION(0x4000, "npcpu", 0)
- ROM_LOAD16_BYTE("258-0032-00_rev_ba.u38", 0x0000, 0x2000, CRC(84ccb317) SHA1(3ecc8e265336f5d3b0f276f18dd1b7001778f2c3))
- ROM_LOAD16_BYTE("258-0033-00_rev_ba.u39", 0x0001, 0x2000, CRC(0e0f726c) SHA1(520773e235a826438b025381cd3861df86d4965d))
-
- // Undumped small devices (mostly or all PLDs):
- // 258-0037-00 REV AA (U17, 20 pins)
- // 258-0027-01 REV AB (U20, 20 pins)
- // 020701079BFA (U29, 16 pins)
- // 258-0031-00 REV AC (U34, PAL20xx, 24 pins)
- // 258-0030-00 REV AA (U36, 20 pins)
- // 258-0028-01 REV AA (U44, 20 pins)
- // 258-0029-01 REV AA (U46, 20 pins)
- // 258-0089-00 REV AA (U48, 20 pins)
-ROM_END
-
-const tiny_rom_entry *np600a3_device::device_rom_region() const
-{
- return ROM_NAME(np600a3);
-}
diff --git a/src/devices/bus/isa/np600.h b/src/devices/bus/isa/np600.h
deleted file mode 100644
index 7831d804922..00000000000
--- a/src/devices/bus/isa/np600.h
+++ /dev/null
@@ -1,39 +0,0 @@
-// license:BSD-3-Clause
-// copyright-holders:AJR
-/*********************************************************************
-
- InterLan NP600 Intelligent Protocol Processor
-
-*********************************************************************/
-
-#ifndef MAME_BUS_ISA_NP600_H
-#define MAME_BUS_ISA_NP600_H
-
-#pragma once
-
-#include "isa.h"
-
-class np600a3_device : public device_t, public device_isa16_card_interface
-{
-public:
- np600a3_device(const machine_config &mconfig, const char *tag, device_t *owner, u32 clock);
-
- static constexpr feature_type unemulated_features() { return feature::LAN; }
-
-protected:
- virtual void device_start() override;
- virtual void device_add_mconfig(machine_config &config) override;
- virtual const tiny_rom_entry *device_rom_region() const override;
-
-private:
- u16 status_r();
-
- void mem_map(address_map &map);
- void io_map(address_map &map);
-
- required_device<cpu_device> m_npcpu;
-};
-
-DECLARE_DEVICE_TYPE(NP600A3, np600a3_device)
-
-#endif // MAME_BUS_ISA_NP600_H
diff --git a/src/devices/bus/isa/num9rev.cpp b/src/devices/bus/isa/num9rev.cpp
index ebe44a379f4..baf30cca586 100644
--- a/src/devices/bus/isa/num9rev.cpp
+++ b/src/devices/bus/isa/num9rev.cpp
@@ -53,20 +53,19 @@ UPD7220_DISPLAY_PIXELS_MEMBER( isa8_number_9_rev_device::hgdc_display_pixels )
// device_add_mconfig - add device configuration
//-------------------------------------------------
-void isa8_number_9_rev_device::device_add_mconfig(machine_config &config)
-{
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_size(512, 448);
- screen.set_visarea(0, 512-1, 0, 448-1);
- screen.set_refresh_hz(60);
- screen.set_screen_update(FUNC(isa8_number_9_rev_device::screen_update));
- PALETTE(config, m_palette).set_entries(4096);
+MACHINE_CONFIG_START(isa8_number_9_rev_device::device_add_mconfig)
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_SIZE(512, 448)
+ MCFG_SCREEN_VISIBLE_AREA(0, 512-1, 0, 448-1)
+ MCFG_SCREEN_REFRESH_RATE(60)
+ MCFG_SCREEN_UPDATE_DRIVER(isa8_number_9_rev_device, screen_update)
+ MCFG_PALETTE_ADD("palette", 4096)
UPD7220(config, m_upd7220, XTAL(4'433'619)/2); // unknown clock
m_upd7220->set_addrmap(0, &isa8_number_9_rev_device::upd7220_map);
- m_upd7220->set_display_pixels(FUNC(isa8_number_9_rev_device::hgdc_display_pixels));
+ m_upd7220->set_display_pixels_callback(FUNC(isa8_number_9_rev_device::hgdc_display_pixels), this);
m_upd7220->set_screen("screen");
-}
+MACHINE_CONFIG_END
//**************************************************************************
// LIVE DEVICE
@@ -94,7 +93,7 @@ void isa8_number_9_rev_device::device_start()
{
set_isa_device();
- m_isa->install_memory(0xc0000, 0xc0001, read8sm_delegate(FUNC(upd7220_device::read), (upd7220_device *)m_upd7220), write8sm_delegate(FUNC(upd7220_device::write), (upd7220_device *)m_upd7220));
+ m_isa->install_memory(0xc0000, 0xc0001, read8_delegate(FUNC(upd7220_device::read), (upd7220_device *)m_upd7220), write8_delegate(FUNC(upd7220_device::write), (upd7220_device *)m_upd7220));
m_isa->install_memory(0xc0100, 0xc03ff, read8_delegate(FUNC(isa8_number_9_rev_device::pal8_r), this), write8_delegate(FUNC(isa8_number_9_rev_device::pal8_w), this));
m_isa->install_memory(0xc0400, 0xc0401, read8_delegate(FUNC(isa8_number_9_rev_device::bank_r), this), write8_delegate(FUNC(isa8_number_9_rev_device::bank_w), this));
m_isa->install_memory(0xc0500, 0xc06ff, read8_delegate(FUNC(isa8_number_9_rev_device::overlay_r), this), write8_delegate(FUNC(isa8_number_9_rev_device::overlay_w), this));
diff --git a/src/devices/bus/isa/omti8621.cpp b/src/devices/bus/isa/omti8621.cpp
index bea87f420ee..9eebabb188f 100644
--- a/src/devices/bus/isa/omti8621.cpp
+++ b/src/devices/bus/isa/omti8621.cpp
@@ -1285,11 +1285,6 @@ void omti8621_device::dack_w(int line, uint8_t data)
return m_fdc->dma_w(data);
}
-void omti8621_device::dack_line_w(int line, int state)
-{
- //m_fdc->dack_w(state);
-}
-
void omti8621_device::eop_w(int state)
{
m_fdc->tc_w(state == ASSERT_LINE);
diff --git a/src/devices/bus/isa/omti8621.h b/src/devices/bus/isa/omti8621.h
index 1258af71854..070ae2dbe70 100644
--- a/src/devices/bus/isa/omti8621.h
+++ b/src/devices/bus/isa/omti8621.h
@@ -56,7 +56,6 @@ protected:
virtual uint8_t dack_r(int line) override;
virtual void dack_w(int line, uint8_t data) override;
- virtual void dack_line_w(int line, int state) override;
virtual void eop_w(int state) override;
void set_interrupt(enum line_state line_state);
diff --git a/src/devices/bus/isa/p1_fdc.cpp b/src/devices/bus/isa/p1_fdc.cpp
index 9b62451e65a..df53cdb7629 100644
--- a/src/devices/bus/isa/p1_fdc.cpp
+++ b/src/devices/bus/isa/p1_fdc.cpp
@@ -12,6 +12,18 @@
#include "cpu/i86/i86.h"
#include "formats/pc_dsk.h"
+#define VERBOSE_DBG 0
+
+#define DBG_LOG(N,M,A) \
+ do { \
+ if(VERBOSE_DBG>=N) \
+ { \
+ if( M ) \
+ logerror("%11.6f: %-24s",machine().time().as_double(),(char*)M ); \
+ logerror A; \
+ } \
+ } while (0)
+
//**************************************************************************
// DEVICE DEFINITIONS
@@ -75,6 +87,7 @@ const tiny_rom_entry *p1_fdc_device::device_rom_region() const
uint8_t p1_fdc_device::p1_wd17xx_motor_r()
{
+ DBG_LOG(1, "p1_fdc_motor_r", ("R = $%02x\n", 0));
// XXX always on for now
return 0;
}
@@ -105,6 +118,8 @@ uint8_t p1_fdc_device::p1_wd17xx_aux_r()
*/
void p1_fdc_device::p1_wd17xx_aux_w(int data)
{
+ DBG_LOG(1, "p1_fdc_aux_w", ("W $%02x\n", data));
+
floppy_image_device *floppy0 = m_fdc->subdevice<floppy_connector>("0")->get_device();
floppy_image_device *floppy1 = m_fdc->subdevice<floppy_connector>("1")->get_device();
floppy_image_device *floppy = ((data & 2) ? floppy1 : floppy0);
diff --git a/src/devices/bus/isa/p1_hdc.cpp b/src/devices/bus/isa/p1_hdc.cpp
index 129c7a6ce37..d0971e6c3c6 100644
--- a/src/devices/bus/isa/p1_hdc.cpp
+++ b/src/devices/bus/isa/p1_hdc.cpp
@@ -14,14 +14,17 @@
// MACROS / CONSTANTS
//**************************************************************************
-//#define LOG_GENERAL (1U << 0) //defined in logmacro.h already
-#define LOG_DEBUG (1U << 1)
+#define VERBOSE_DBG 1
-//#define VERBOSE (LOG_DEBUG)
-//#define LOG_OUTPUT_FUNC printf
-#include "logmacro.h"
-
-#define LOGDBG(...) LOGMASKED(LOG_DEBUG, __VA_ARGS__)
+#define DBG_LOG(N,M,A) \
+ do { \
+ if(VERBOSE_DBG>=N) \
+ { \
+ if( M ) \
+ logerror("%11.6f: %-24s",machine().time().as_double(),(char*)M ); \
+ logerror A; \
+ } \
+ } while (0)
//**************************************************************************
@@ -89,21 +92,20 @@ READ8_MEMBER(p1_hdc_device::p1_HDC_r)
switch (offset >> 8)
{
case 8:
- data = m_hdc->read(offset & 255);
+ data = m_hdc->read(space, offset & 255);
}
- LOG("hdc R $%04x == $%02x\n", offset, data);
+ DBG_LOG(1, "hdc", ("R $%04x == $%02x\n", offset, data));
return data;
}
WRITE8_MEMBER(p1_hdc_device::p1_HDC_w)
{
- LOG("hdc W $%04x <- $%02x\n", offset, data);
-
+ DBG_LOG(1, "hdc", ("W $%04x <- $%02x\n", offset, data));
switch (offset >> 8)
{
case 8:
- m_hdc->write(offset & 255, data);
+ m_hdc->write(space, offset & 255, data, 0);
}
}
diff --git a/src/devices/bus/isa/p1_sound.cpp b/src/devices/bus/isa/p1_sound.cpp
index b8e37a57368..485dca5205e 100644
--- a/src/devices/bus/isa/p1_sound.cpp
+++ b/src/devices/bus/isa/p1_sound.cpp
@@ -29,15 +29,15 @@ DEFINE_DEVICE_TYPE(P1_SOUND, p1_sound_device, "p1_sound", "Poisk-1 sound card (B
// device_add_mconfig - add device configuration
//-------------------------------------------------
-void p1_sound_device::device_add_mconfig(machine_config &config)
-{
+MACHINE_CONFIG_START(p1_sound_device::device_add_mconfig)
I8251(config, m_midi, 0);
m_midi->txd_handler().set("mdout", FUNC(midi_port_device::write_txd));
m_midi->rxrdy_handler().set(":isa", FUNC(isa8_device::irq3_w));
- MIDI_PORT(config, "mdin", midiin_slot, "midiin").rxd_handler().set(m_midi, FUNC(i8251_device::write_rxd));
+ MCFG_MIDI_PORT_ADD("mdin", midiin_slot, "midiin")
+ MCFG_MIDI_RX_HANDLER(WRITELINE("midi", i8251_device, write_rxd))
- MIDI_PORT(config, "mdout", midiout_slot, "midiout");
+ MCFG_MIDI_PORT_ADD("mdout", midiout_slot, "midiout")
PIT8253(config, m_d14, 0);
m_d14->set_clk<0>(XTAL(12'500'000)/10);
@@ -65,12 +65,12 @@ void p1_sound_device::device_add_mconfig(machine_config &config)
// m_d17->out_handler<2>().set(FUNC(XXX));
SPEAKER(config, "speaker").front_center();
- FILTER_RC(config, m_filter).add_route(ALL_OUTPUTS, "speaker", 1.0);
- DAC_8BIT_R2R(config, m_dac, 0).add_route(ALL_OUTPUTS, "filter", 0.5); // unknown DAC
- voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref"));
- vref.add_route(0, "dac", 1.0, DAC_VREF_POS_INPUT);
- vref.add_route(0, "dac", -1.0, DAC_VREF_NEG_INPUT);
-}
+ MCFG_DEVICE_ADD("filter", FILTER_RC)
+ MCFG_SOUND_ROUTE(ALL_OUTPUTS, "speaker", 1.0)
+ MCFG_DEVICE_ADD("dac", DAC_8BIT_R2R, 0) MCFG_SOUND_ROUTE(ALL_OUTPUTS, "filter", 0.5) // unknown DAC
+ MCFG_DEVICE_ADD("vref", VOLTAGE_REGULATOR, 0) MCFG_VOLTAGE_REGULATOR_OUTPUT(5.0)
+ MCFG_SOUND_ROUTE(0, "dac", 1.0, DAC_VREF_POS_INPUT) MCFG_SOUND_ROUTE(0, "dac", -1.0, DAC_VREF_NEG_INPUT)
+MACHINE_CONFIG_END
//**************************************************************************
diff --git a/src/devices/bus/isa/pc1640_iga.cpp b/src/devices/bus/isa/pc1640_iga.cpp
index dfab59f2e76..04ef54c2d42 100644
--- a/src/devices/bus/isa/pc1640_iga.cpp
+++ b/src/devices/bus/isa/pc1640_iga.cpp
@@ -28,6 +28,8 @@
//**************************************************************************
#define PEGA1A_TAG "ic910"
+#define EGA_CRTC_NAME "crtc_ega_ega"
+
//**************************************************************************
@@ -101,6 +103,8 @@ void isa8_pc1640_iga_device::device_start()
m_plane[2] = m_videoram + 0x20000;
m_plane[3] = m_videoram + 0x30000;
+ m_crtc_ega = subdevice<crtc_ega_device>(EGA_CRTC_NAME);
+
m_isa->install_rom(this, 0xc0000, 0xc7fff, "ega", "iga");
m_isa->install_device(0x3b0, 0x3bf, read8_delegate(FUNC(isa8_ega_device::pc_ega8_3b0_r), this), write8_delegate(FUNC(isa8_ega_device::pc_ega8_3b0_w), this));
m_isa->install_device(0x3c0, 0x3cf, read8_delegate(FUNC(isa8_ega_device::pc_ega8_3c0_r), this), write8_delegate(FUNC(isa8_ega_device::pc_ega8_3c0_w), this));
diff --git a/src/devices/bus/isa/pds.cpp b/src/devices/bus/isa/pds.cpp
index 65a35db2b14..45dffd9904e 100644
--- a/src/devices/bus/isa/pds.cpp
+++ b/src/devices/bus/isa/pds.cpp
@@ -56,7 +56,6 @@ void isa8_pds_device::device_stop()
{
}
-void isa8_pds_device::device_add_mconfig(machine_config &config)
-{
- I8255(config, m_ppi);
-}
+MACHINE_CONFIG_START(isa8_pds_device::device_add_mconfig)
+ MCFG_DEVICE_ADD("pds_ppi", I8255, 0)
+MACHINE_CONFIG_END
diff --git a/src/devices/bus/isa/pgc.cpp b/src/devices/bus/isa/pgc.cpp
index d90badaeae7..ab242877e01 100644
--- a/src/devices/bus/isa/pgc.cpp
+++ b/src/devices/bus/isa/pgc.cpp
@@ -151,31 +151,30 @@ DEFINE_DEVICE_TYPE(ISA8_PGC, isa8_pgc_device, "isa_ibm_pgc", "IBM Professional G
// device_add_mconfig - add device configuration
//-------------------------------------------------
-void isa8_pgc_device::device_add_mconfig(machine_config &config)
-{
- I8088(config, m_cpu, XTAL(24'000'000)/3);
- m_cpu->set_addrmap(AS_PROGRAM, &isa8_pgc_device::pgc_map);
+MACHINE_CONFIG_START(isa8_pgc_device::device_add_mconfig)
+ MCFG_DEVICE_ADD("maincpu", I8088, XTAL(24'000'000)/3)
+ MCFG_DEVICE_PROGRAM_MAP(pgc_map)
#if 0
- m_cpu->set_irq_acknowledge_callback(FUNC(isa8_pgc_device::irq_callback));
+ MCFG_DEVICE_IRQ_ACKNOWLEDGE_DRIVER(isa8_pgc_device, irq_callback)
#endif
- timer_device &scantimer(TIMER(config, "scantimer"));
- scantimer.configure_periodic(FUNC(isa8_pgc_device::scanline_callback), attotime::from_hz(60*PGC_TOTAL_VERT));
- scantimer.set_start_delay(attotime::from_hz(XTAL(50'000'000)/(2*PGC_HORZ_START)));
+ MCFG_TIMER_DRIVER_ADD_PERIODIC("scantimer", isa8_pgc_device, scanline_callback,
+ attotime::from_hz(60*PGC_TOTAL_VERT))
+ MCFG_TIMER_START_DELAY(attotime::from_hz(XTAL(50'000'000)/(2*PGC_HORZ_START)))
- SCREEN(config, m_screen, SCREEN_TYPE_RASTER);
- m_screen->set_raw(XTAL(50'000'000)/2,
+ MCFG_SCREEN_ADD(PGC_SCREEN_NAME, RASTER)
+ MCFG_SCREEN_RAW_PARAMS(XTAL(50'000'000)/2,
PGC_TOTAL_HORZ, PGC_HORZ_START, PGC_HORZ_START+PGC_DISP_HORZ,
- PGC_TOTAL_VERT, PGC_VERT_START, PGC_VERT_START+PGC_DISP_VERT);
- m_screen->set_screen_update(FUNC(isa8_pgc_device::screen_update));
- m_screen->set_palette(m_palette);
+ PGC_TOTAL_VERT, PGC_VERT_START, PGC_VERT_START+PGC_DISP_VERT)
+ MCFG_SCREEN_UPDATE_DRIVER(isa8_pgc_device, screen_update)
+ MCFG_SCREEN_PALETTE("palette")
#if 0
- m_screen->screen_vblank().set(FUNC(isa8_pgc_device::vblank_irq));
+ MCFG_SCREEN_VBLANK_CALLBACK(WRITELINE(*this, isa8_pgc_device, vblank_irq))
#endif
- GFXDECODE(config, "gfxdecode", m_palette, gfx_pgc);
- PALETTE(config, m_palette).set_entries(256);
-}
+ MCFG_DEVICE_ADD("gfxdecode", GFXDECODE, "palette", gfx_pgc)
+ MCFG_PALETTE_ADD( "palette", 256 )
+MACHINE_CONFIG_END
//-------------------------------------------------
// rom_region - device-specific ROM region
diff --git a/src/devices/bus/isa/sb16.cpp b/src/devices/bus/isa/sb16.cpp
index 6bce4b4198c..be8cce9c644 100644
--- a/src/devices/bus/isa/sb16.cpp
+++ b/src/devices/bus/isa/sb16.cpp
@@ -711,9 +711,9 @@ void sb16_lle_device::device_start()
m_isa->install_device(0x022c, 0x022d, read8_delegate(FUNC(sb16_lle_device::dsp_wbuf_status_r), this), write8_delegate(FUNC(sb16_lle_device::host_cmd_w), this) );
m_isa->install_device(0x022e, 0x022f, read8_delegate(FUNC(sb16_lle_device::dsp_rbuf_status_r), this), write8_delegate(FUNC(sb16_lle_device::invalid_w), this) );
m_isa->install_device(0x0330, 0x0331, read8_delegate(FUNC(sb16_lle_device::mpu401_r), this), write8_delegate(FUNC(sb16_lle_device::mpu401_w), this));
- m_isa->install_device(0x0388, 0x0389, read8sm_delegate(FUNC(ymf262_device::read), ymf262), write8sm_delegate(FUNC(ymf262_device::write), ymf262));
- m_isa->install_device(0x0220, 0x0223, read8sm_delegate(FUNC(ymf262_device::read), ymf262), write8sm_delegate(FUNC(ymf262_device::write), ymf262));
- m_isa->install_device(0x0228, 0x0229, read8sm_delegate(FUNC(ymf262_device::read), ymf262), write8sm_delegate(FUNC(ymf262_device::write), ymf262));
+ m_isa->install_device(0x0388, 0x0389, read8_delegate(FUNC(ymf262_device::read), ymf262), write8_delegate(FUNC(ymf262_device::write), ymf262));
+ m_isa->install_device(0x0220, 0x0223, read8_delegate(FUNC(ymf262_device::read), ymf262), write8_delegate(FUNC(ymf262_device::write), ymf262));
+ m_isa->install_device(0x0228, 0x0229, read8_delegate(FUNC(ymf262_device::read), ymf262), write8_delegate(FUNC(ymf262_device::write), ymf262));
m_isa->set_dma_channel(1, this, false);
m_isa->set_dma_channel(5, this, false);
m_timer = timer_alloc();
diff --git a/src/devices/bus/isa/sblaster.cpp b/src/devices/bus/isa/sblaster.cpp
index d8a47349918..74f1e0f8dd4 100644
--- a/src/devices/bus/isa/sblaster.cpp
+++ b/src/devices/bus/isa/sblaster.cpp
@@ -66,7 +66,7 @@ static const int m_cmd_fifo_length[256] =
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, /* 6x */
-1, -1, -1, -1, 3, 3, 3, 3, -1, -1, -1, -1, -1, 1, -1, 1, /* 7x */
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, /* 8x */
- 1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, /* 9x */
+ -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, /* 9x */
-1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, /* Ax */
4, -1, -1, -1, -1, -1, 4, -1, 4, -1, -1, -1, -1, -1, 4, -1, /* Bx */
4, -1, -1, -1, -1, -1, 4, -1, 4, -1, -1, -1, -1, -1, 4, -1, /* Cx */
@@ -82,7 +82,7 @@ READ8_MEMBER( sb8_device::ym3812_16_r )
uint8_t retVal = 0xff;
switch(offset)
{
- case 0 : retVal = m_ym3812->status_port_r(); break;
+ case 0 : retVal = m_ym3812->status_port_r( space, offset ); break;
}
return retVal;
}
@@ -91,8 +91,8 @@ WRITE8_MEMBER( sb8_device::ym3812_16_w )
{
switch(offset)
{
- case 0 : m_ym3812->control_port_w(data); break;
- case 1 : m_ym3812->write_port_w(data); break;
+ case 0 : m_ym3812->control_port_w( space, offset, data ); break;
+ case 1 : m_ym3812->write_port_w( space, offset, data ); break;
}
}
@@ -356,7 +356,6 @@ void sb_device::process_fifo(uint8_t cmd)
break;
case 0x1c: // 8-bit DMA with autoinit
- case 0x90: // 8-bit DMA with autoinit, high speed. XXX only on DSP 3.xx
// printf("Start DMA (autoinit, size = %x)\n", m_dsp.dma_length);
m_dsp.dma_transferred = 0;
m_dsp.dma_autoinit = 1;
@@ -584,12 +583,6 @@ void sb_device::process_fifo(uint8_t cmd)
mode = m_dsp.fifo[1];
m_dsp.flags = 0;
m_dsp.dma_length = (m_dsp.fifo[2] + (m_dsp.fifo[3]<<8)) + 1;
- if(cmd & 0x04)
- m_dsp.dma_autoinit = 1;
- if(mode & 0x10)
- m_dsp.flags |= SIGNED;
- if(mode & 0x20)
- m_dsp.flags |= STEREO;
if((cmd & 0xf0) == 0xb0)
{
m_dsp.flags |= SIXTEENBIT;
@@ -598,6 +591,15 @@ void sb_device::process_fifo(uint8_t cmd)
}
else
drq_w(1);
+ if(cmd & 0x04)
+ m_dsp.dma_autoinit = 1;
+ if(mode & 0x10)
+ m_dsp.flags |= SIGNED;
+ if(mode & 0x20)
+ {
+ m_dsp.flags |= STEREO;
+ m_dsp.dma_length <<= 1;
+ }
m_dsp.dma_transferred = 0;
m_dsp.dma_timer_started = false;
m_dsp.dma_throttled = false;
@@ -1147,6 +1149,7 @@ void sb_device::common(machine_config &config)
DAC_16BIT_R2R(config, m_ldac, 0).add_route(ALL_OUTPUTS, "lspeaker", 0.5); // unknown DAC
DAC_16BIT_R2R(config, m_rdac, 0).add_route(ALL_OUTPUTS, "rspeaker", 0.5); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
+ vref.set_output(5.0);
vref.add_route(0, "ldac", 1.0, DAC_VREF_POS_INPUT);
vref.add_route(0, "ldac", -1.0, DAC_VREF_NEG_INPUT);
vref.add_route(0, "rdac", 1.0, DAC_VREF_POS_INPUT);
@@ -1260,9 +1263,9 @@ void sb8_device::device_start()
{
ymf262_device *ymf262 = subdevice<ymf262_device>("ymf262");
- m_isa->install_device(0x0388, 0x038b, read8sm_delegate(FUNC(ymf262_device::read), ymf262), write8sm_delegate(FUNC(ymf262_device::write), ymf262));
- m_isa->install_device(0x0220, 0x0223, read8sm_delegate(FUNC(ymf262_device::read), ymf262), write8sm_delegate(FUNC(ymf262_device::write), ymf262));
- m_isa->install_device(0x0228, 0x0229, read8sm_delegate(FUNC(ymf262_device::read), ymf262), write8sm_delegate(FUNC(ymf262_device::write), ymf262));
+ m_isa->install_device(0x0388, 0x038b, read8_delegate(FUNC(ymf262_device::read), ymf262), write8_delegate(FUNC(ymf262_device::write), ymf262));
+ m_isa->install_device(0x0220, 0x0223, read8_delegate(FUNC(ymf262_device::read), ymf262), write8_delegate(FUNC(ymf262_device::write), ymf262));
+ m_isa->install_device(0x0228, 0x0229, read8_delegate(FUNC(ymf262_device::read), ymf262), write8_delegate(FUNC(ymf262_device::write), ymf262));
}
else
{
@@ -1303,9 +1306,9 @@ void sb16_device::device_start()
m_isa->install_device(0x022e, 0x022f, read8_delegate(FUNC(sb_device::dsp_rbuf_status_r), this), write8_delegate(FUNC(sb_device::dsp_rbuf_status_w), this) );
m_isa->install_device(0x0224, 0x0225, read8_delegate(FUNC(sb16_device::mixer_r), this), write8_delegate(FUNC(sb16_device::mixer_w), this));
m_isa->install_device(0x0330, 0x0331, read8_delegate(FUNC(sb16_device::mpu401_r), this), write8_delegate(FUNC(sb16_device::mpu401_w), this));
- m_isa->install_device(0x0388, 0x038b, read8sm_delegate(FUNC(ymf262_device::read), ymf262), write8sm_delegate(FUNC(ymf262_device::write), ymf262));
- m_isa->install_device(0x0220, 0x0223, read8sm_delegate(FUNC(ymf262_device::read), ymf262), write8sm_delegate(FUNC(ymf262_device::write), ymf262));
- m_isa->install_device(0x0228, 0x0229, read8sm_delegate(FUNC(ymf262_device::read), ymf262), write8sm_delegate(FUNC(ymf262_device::write), ymf262));
+ m_isa->install_device(0x0388, 0x038b, read8_delegate(FUNC(ymf262_device::read), ymf262), write8_delegate(FUNC(ymf262_device::write), ymf262));
+ m_isa->install_device(0x0220, 0x0223, read8_delegate(FUNC(ymf262_device::read), ymf262), write8_delegate(FUNC(ymf262_device::write), ymf262));
+ m_isa->install_device(0x0228, 0x0229, read8_delegate(FUNC(ymf262_device::read), ymf262), write8_delegate(FUNC(ymf262_device::write), ymf262));
save_item(NAME(m_mixer.data));
save_item(NAME(m_mixer.status));
diff --git a/src/devices/bus/isa/sc499.cpp b/src/devices/bus/isa/sc499.cpp
index 92f049f0402..e9ace1ddb83 100644
--- a/src/devices/bus/isa/sc499.cpp
+++ b/src/devices/bus/isa/sc499.cpp
@@ -177,10 +177,9 @@ static INPUT_PORTS_START( sc499_port )
INPUT_PORTS_END
-void sc499_device::device_add_mconfig(machine_config &config)
-{
- SC499_CTAPE(config, m_image, 0);
-}
+MACHINE_CONFIG_START(sc499_device::device_add_mconfig)
+ MCFG_DEVICE_ADD(SC499_CTAPE_TAG, SC499_CTAPE, 0)
+MACHINE_CONFIG_END
//**************************************************************************
diff --git a/src/devices/bus/isa/ssi2001.cpp b/src/devices/bus/isa/ssi2001.cpp
index 2c433321847..55adf04b0a2 100644
--- a/src/devices/bus/isa/ssi2001.cpp
+++ b/src/devices/bus/isa/ssi2001.cpp
@@ -30,7 +30,7 @@ void ssi2001_device::device_start()
{
set_isa_device();
m_isa->install_device(0x0200, 0x0207, read8_delegate(FUNC(pc_joy_device::joy_port_r), subdevice<pc_joy_device>("pc_joy")), write8_delegate(FUNC(pc_joy_device::joy_port_w), subdevice<pc_joy_device>("pc_joy")));
- m_isa->install_device(0x0280, 0x029F, read8sm_delegate(FUNC(mos6581_device::read), subdevice<mos6581_device>("sid6581")), write8sm_delegate(FUNC(mos6581_device::write), subdevice<mos6581_device>("sid6581")));
+ m_isa->install_device(0x0280, 0x029F, read8_delegate(FUNC(mos6581_device::read), subdevice<mos6581_device>("sid6581")), write8_delegate(FUNC(mos6581_device::write), subdevice<mos6581_device>("sid6581")));
}
diff --git a/src/devices/bus/isa/stereo_fx.cpp b/src/devices/bus/isa/stereo_fx.cpp
index b23a0dbe454..c38d3aace80 100644
--- a/src/devices/bus/isa/stereo_fx.cpp
+++ b/src/devices/bus/isa/stereo_fx.cpp
@@ -134,6 +134,7 @@ void stereo_fx_device::device_add_mconfig(machine_config &config)
DAC_8BIT_R2R(config, "ldac", 0).add_route(ALL_OUTPUTS, "lspeaker", 0.5); // unknown DAC
DAC_8BIT_R2R(config, "rdac", 0).add_route(ALL_OUTPUTS, "rspeaker", 0.5); // unknown DAC
voltage_regulator_device &vref(VOLTAGE_REGULATOR(config, "vref", 0));
+ vref.set_output(5.0);
vref.add_route(0, "ldac", 1.0, DAC_VREF_POS_INPUT);
vref.add_route(0, "ldac", -1.0, DAC_VREF_NEG_INPUT);
vref.add_route(0, "rdac", 1.0, DAC_VREF_POS_INPUT);
@@ -215,8 +216,8 @@ void stereo_fx_device::device_start()
m_isa->install_device(0x022a, 0x022b, read8_delegate(FUNC(stereo_fx_device::dsp_data_r), this), write8_delegate(FUNC(stereo_fx_device::invalid_w), this) );
m_isa->install_device(0x022c, 0x022d, read8_delegate(FUNC(stereo_fx_device::dsp_wbuf_status_r), this), write8_delegate(FUNC(stereo_fx_device::dsp_cmd_w), this) );
m_isa->install_device(0x022e, 0x022f, read8_delegate(FUNC(stereo_fx_device::dsp_rbuf_status_r), this), write8_delegate(FUNC(stereo_fx_device::invalid_w), this) );
- m_isa->install_device(0x0388, 0x0389, read8sm_delegate(FUNC(ym3812_device::read), ym3812), write8sm_delegate(FUNC(ym3812_device::write), ym3812));
- m_isa->install_device(0x0228, 0x0229, read8sm_delegate(FUNC(ym3812_device::read), ym3812), write8sm_delegate(FUNC(ym3812_device::write), ym3812));
+ m_isa->install_device(0x0388, 0x0389, read8_delegate(FUNC(ym3812_device::read), ym3812), write8_delegate(FUNC(ym3812_device::write), ym3812));
+ m_isa->install_device(0x0228, 0x0229, read8_delegate(FUNC(ym3812_device::read), ym3812), write8_delegate(FUNC(ym3812_device::write), ym3812));
m_timer = timer_alloc();
m_timer->adjust(attotime::from_hz(2000000), 0, attotime::from_hz(2000000));
m_isa->set_dma_channel(1, this, false);
diff --git a/src/devices/bus/isa/svga_cirrus.cpp b/src/devices/bus/isa/svga_cirrus.cpp
index bcb6b4995a1..444acac7c1a 100644
--- a/src/devices/bus/isa/svga_cirrus.cpp
+++ b/src/devices/bus/isa/svga_cirrus.cpp
@@ -30,14 +30,14 @@ DEFINE_DEVICE_TYPE(ISA16_SVGA_CIRRUS_GD542X, isa16_svga_cirrus_gd542x_device, "c
// device_add_mconfig - add device configuration
//-------------------------------------------------
-void isa16_svga_cirrus_device::device_add_mconfig(machine_config &config)
-{
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_raw(XTAL(25'174'800), 900, 0, 640, 526, 0, 480);
- screen.set_screen_update("vga", FUNC(cirrus_gd5430_device::screen_update));
+MACHINE_CONFIG_START(isa16_svga_cirrus_device::device_add_mconfig)
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_RAW_PARAMS(XTAL(25'174'800),900,0,640,526,0,480)
+ MCFG_SCREEN_UPDATE_DEVICE("vga", cirrus_gd5430_device, screen_update)
- CIRRUS_GD5430(config, "vga", 0).set_screen("screen");
-}
+ MCFG_DEVICE_ADD("vga", CIRRUS_GD5430, 0)
+ MCFG_VIDEO_SET_SCREEN("screen")
+MACHINE_CONFIG_END
//-------------------------------------------------
// rom_region - device-specific ROM region
@@ -110,14 +110,14 @@ ROM_END
// device_add_mconfig - add device configuration
//-------------------------------------------------
-void isa16_svga_cirrus_gd542x_device::device_add_mconfig(machine_config &config)
-{
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_raw(XTAL(25'174'800), 900, 0, 640, 526, 0, 480);
- screen.set_screen_update("vga", FUNC(cirrus_gd5428_device::screen_update));
+MACHINE_CONFIG_START(isa16_svga_cirrus_gd542x_device::device_add_mconfig)
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_RAW_PARAMS(XTAL(25'174'800),900,0,640,526,0,480)
+ MCFG_SCREEN_UPDATE_DEVICE("vga", cirrus_gd5428_device, screen_update)
- CIRRUS_GD5428(config, "vga", 0).set_screen("screen");
-}
+ MCFG_DEVICE_ADD("vga", CIRRUS_GD5428, 0)
+ MCFG_VIDEO_SET_SCREEN("screen")
+MACHINE_CONFIG_END
//-------------------------------------------------
// rom_region - device-specific ROM region
diff --git a/src/devices/bus/isa/svga_s3.cpp b/src/devices/bus/isa/svga_s3.cpp
index d5a2cde30bf..1c97abc3b62 100644
--- a/src/devices/bus/isa/svga_s3.cpp
+++ b/src/devices/bus/isa/svga_s3.cpp
@@ -40,14 +40,14 @@ DEFINE_DEVICE_TYPE(ISA16_SVGA_S3, isa16_svga_s3_device, "s3_764", "Number Nine 9
// device_add_mconfig - add device configuration
//-------------------------------------------------
-void isa16_svga_s3_device::device_add_mconfig(machine_config &config)
-{
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_raw(XTAL(25'174'800), 900, 0, 640, 526, 0, 480);
- screen.set_screen_update("vga", FUNC(s3_vga_device::screen_update));
+MACHINE_CONFIG_START(isa16_svga_s3_device::device_add_mconfig)
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_RAW_PARAMS(XTAL(25'174'800),900,0,640,526,0,480)
+ MCFG_SCREEN_UPDATE_DEVICE("vga", s3_vga_device, screen_update)
- S3_VGA(config, "vga", 0).set_screen("screen");
-}
+ MCFG_DEVICE_ADD("vga", S3_VGA, 0)
+ MCFG_VIDEO_SET_SCREEN("screen")
+MACHINE_CONFIG_END
//-------------------------------------------------
// rom_region - device-specific ROM region
@@ -146,14 +146,14 @@ DEFINE_DEVICE_TYPE(ISA16_S3VIRGE, isa16_s3virge_device, "s3virge", "S3 ViRGE Gra
// device_add_mconfig - add device configuration
//-------------------------------------------------
-void isa16_s3virge_device::device_add_mconfig(machine_config &config)
-{
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_raw(XTAL(25'174'800), 900, 0, 640, 526, 0, 480);
- screen.set_screen_update("vga", FUNC(s3virge_vga_device::screen_update));
+MACHINE_CONFIG_START(isa16_s3virge_device::device_add_mconfig)
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_RAW_PARAMS(XTAL(25'174'800),900,0,640,526,0,480)
+ MCFG_SCREEN_UPDATE_DEVICE("vga", s3virge_vga_device, screen_update)
- S3VIRGE(config, "vga", 0).set_screen("screen");
-}
+ MCFG_DEVICE_ADD("vga", S3VIRGE, 0)
+ MCFG_VIDEO_SET_SCREEN("screen")
+MACHINE_CONFIG_END
//-------------------------------------------------
// rom_region - device-specific ROM region
@@ -227,14 +227,14 @@ DEFINE_DEVICE_TYPE(ISA16_S3VIRGEDX, isa16_s3virgedx_device, "s3virgedx", "S3 ViR
// device_add_mconfig - add device configuration
//-------------------------------------------------
-void isa16_s3virgedx_device::device_add_mconfig(machine_config &config)
-{
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_raw(XTAL(25'174'800), 900, 0, 640, 526, 0, 480);
- screen.set_screen_update("vga", FUNC(s3virgedx_vga_device::screen_update));
+MACHINE_CONFIG_START(isa16_s3virgedx_device::device_add_mconfig)
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_RAW_PARAMS(XTAL(25'174'800),900,0,640,526,0,480)
+ MCFG_SCREEN_UPDATE_DEVICE("vga", s3virgedx_vga_device, screen_update)
- S3VIRGEDX(config, "vga", 0).set_screen("screen");
-}
+ MCFG_DEVICE_ADD("vga", S3VIRGEDX, 0)
+ MCFG_VIDEO_SET_SCREEN("screen")
+MACHINE_CONFIG_END
//-------------------------------------------------
// rom_region - device-specific ROM region
@@ -309,14 +309,14 @@ DEFINE_DEVICE_TYPE(ISA16_DMS3D2KPRO, isa16_stealth3d2kpro_device, "dms3d2kp", "D
// device_add_mconfig - add device configuration
//-------------------------------------------------
-void isa16_stealth3d2kpro_device::device_add_mconfig(machine_config &config)
-{
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_raw(XTAL(25'174'800), 900, 0, 640, 526, 0, 480);
- screen.set_screen_update("vga", FUNC(s3virgedx_rev1_vga_device::screen_update));
+MACHINE_CONFIG_START(isa16_stealth3d2kpro_device::device_add_mconfig)
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_RAW_PARAMS(XTAL(25'174'800),900,0,640,526,0,480)
+ MCFG_SCREEN_UPDATE_DEVICE("vga", s3virgedx_rev1_vga_device, screen_update)
- S3VIRGEDX1(config, "vga", 0).set_screen("screen");
-}
+ MCFG_DEVICE_ADD("vga", S3VIRGEDX1, 0)
+ MCFG_VIDEO_SET_SCREEN("screen")
+MACHINE_CONFIG_END
//-------------------------------------------------
// rom_region - device-specific ROM region
diff --git a/src/devices/bus/isa/svga_trident.cpp b/src/devices/bus/isa/svga_trident.cpp
index aa7fc90b489..79aa1dfd55f 100644
--- a/src/devices/bus/isa/svga_trident.cpp
+++ b/src/devices/bus/isa/svga_trident.cpp
@@ -30,14 +30,14 @@ DEFINE_DEVICE_TYPE(ISA16_SVGA_TGUI9680, isa16_svga_tgui9680_device, "tgui9680",
// device_add_mconfig - add device configuration
//-------------------------------------------------
-void isa16_svga_tgui9680_device::device_add_mconfig(machine_config &config)
-{
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_raw(XTAL(25'174'800), 900, 0, 640, 526, 0, 480);
- screen.set_screen_update("vga", FUNC(trident_vga_device::screen_update));
-
- TRIDENT_VGA(config, "vga", 0).set_screen("screen");
-}
+MACHINE_CONFIG_START(isa16_svga_tgui9680_device::device_add_mconfig)
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_RAW_PARAMS(XTAL(25'174'800),900,0,640,526,0,480)
+ MCFG_SCREEN_UPDATE_DEVICE("vga", trident_vga_device, screen_update)
+
+ MCFG_DEVICE_ADD("vga", TRIDENT_VGA, 0)
+ MCFG_VIDEO_SET_SCREEN("screen")
+MACHINE_CONFIG_END
//-------------------------------------------------
// rom_region - device-specific ROM region
diff --git a/src/devices/bus/isa/svga_tseng.cpp b/src/devices/bus/isa/svga_tseng.cpp
index dfe39a39d8e..fd232b01d8d 100644
--- a/src/devices/bus/isa/svga_tseng.cpp
+++ b/src/devices/bus/isa/svga_tseng.cpp
@@ -29,14 +29,14 @@ DEFINE_DEVICE_TYPE(ISA8_SVGA_ET4K, isa8_svga_et4k_device, "et4000", "SVGA Tseng
// device_add_mconfig - add device configuration
//-------------------------------------------------
-void isa8_svga_et4k_device::device_add_mconfig(machine_config &config)
-{
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_raw(XTAL(25'174'800), 900, 0, 640, 526, 0, 480);
- screen.set_screen_update("vga", FUNC(tseng_vga_device::screen_update));
-
- TSENG_VGA(config, "vga", 0).set_screen("screen");
-}
+MACHINE_CONFIG_START(isa8_svga_et4k_device::device_add_mconfig)
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_RAW_PARAMS(XTAL(25'174'800),900,0,640,526,0,480)
+ MCFG_SCREEN_UPDATE_DEVICE("vga", tseng_vga_device, screen_update)
+
+ MCFG_DEVICE_ADD("vga", TSENG_VGA, 0)
+ MCFG_VIDEO_SET_SCREEN("screen")
+MACHINE_CONFIG_END
//-------------------------------------------------
// rom_region - device-specific ROM region
diff --git a/src/devices/bus/isa/vga.cpp b/src/devices/bus/isa/vga.cpp
index 0419ecdd255..b8a86adbfe3 100644
--- a/src/devices/bus/isa/vga.cpp
+++ b/src/devices/bus/isa/vga.cpp
@@ -27,14 +27,14 @@ DEFINE_DEVICE_TYPE(ISA8_VGA, isa8_vga_device, "ibm_vga", "IBM VGA Graphics Card"
// device_add_mconfig - add device configuration
//-------------------------------------------------
-void isa8_vga_device::device_add_mconfig(machine_config &config)
-{
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_raw(XTAL(25'174'800), 900, 0, 640, 526, 0, 480);
- screen.set_screen_update("vga", FUNC(vga_device::screen_update));
-
- VGA(config, "vga", 0).set_screen("screen");
-}
+MACHINE_CONFIG_START(isa8_vga_device::device_add_mconfig)
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_RAW_PARAMS(XTAL(25'174'800),900,0,640,526,0,480)
+ MCFG_SCREEN_UPDATE_DEVICE("vga", vga_device, screen_update)
+
+ MCFG_DEVICE_ADD("vga", VGA, 0)
+ MCFG_VIDEO_SET_SCREEN("screen")
+MACHINE_CONFIG_END
//-------------------------------------------------
// rom_region - device-specific ROM region
diff --git a/src/devices/bus/isa/vga_ati.cpp b/src/devices/bus/isa/vga_ati.cpp
index bad1a47a479..650a686d4fc 100644
--- a/src/devices/bus/isa/vga_ati.cpp
+++ b/src/devices/bus/isa/vga_ati.cpp
@@ -76,33 +76,32 @@ DEFINE_DEVICE_TYPE(ISA16_SVGA_MACH64, isa16_vga_mach64_device, "mach64
// device_add_mconfig - add device configuration
//-------------------------------------------------
-void isa16_vga_gfxultra_device::device_add_mconfig(machine_config &config)
-{
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_raw(XTAL(25'174'800), 900, 0, 640, 526, 0, 480);
- screen.set_screen_update("vga", FUNC(ati_vga_device::screen_update));
-
- ATI_VGA(config, "vga", 0).set_screen("screen");
-}
-
-void isa16_vga_gfxultrapro_device::device_add_mconfig(machine_config &config)
-{
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_raw(XTAL(25'174'800), 900, 0, 640, 526, 0, 480);
- screen.set_screen_update("vga", FUNC(mach32_device::screen_update));
-
- ATIMACH32(config, "vga", 0).set_screen("screen");
-}
-
-void isa16_vga_mach64_device::device_add_mconfig(machine_config &config)
-{
- screen_device &screen(SCREEN(config, "screen", SCREEN_TYPE_RASTER));
- screen.set_raw(XTAL(25'174'800), 900, 0, 640, 526, 0, 480);
- screen.set_screen_update("vga", FUNC(mach64_device::screen_update));
-
- ATIMACH64(config, "vga", 0).set_screen("screen");
-}
-
+MACHINE_CONFIG_START(isa16_vga_gfxultra_device::device_add_mconfig)
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_RAW_PARAMS(XTAL(25'174'800),900,0,640,526,0,480)
+ MCFG_SCREEN_UPDATE_DEVICE("vga", ati_vga_device, screen_update)
+
+ MCFG_DEVICE_ADD("vga", ATI_VGA, 0)
+ MCFG_VIDEO_SET_SCREEN("screen")
+MACHINE_CONFIG_END
+
+MACHINE_CONFIG_START(isa16_vga_gfxultrapro_device::device_add_mconfig)
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_RAW_PARAMS(XTAL(25'174'800),900,0,640,526,0,480)
+ MCFG_SCREEN_UPDATE_DEVICE("vga", mach32_device, screen_update)
+
+ MCFG_DEVICE_ADD("vga", ATIMACH32, 0)
+ MCFG_VIDEO_SET_SCREEN("screen")
+MACHINE_CONFIG_END
+
+MACHINE_CONFIG_START(isa16_vga_mach64_device::device_add_mconfig)
+ MCFG_SCREEN_ADD("screen", RASTER)
+ MCFG_SCREEN_RAW_PARAMS(XTAL(25'174'800),900,0,640,526,0,480)
+ MCFG_SCREEN_UPDATE_DEVICE("vga", mach64_device, screen_update)
+
+ MCFG_DEVICE_ADD("vga", ATIMACH64, 0)
+ MCFG_VIDEO_SET_SCREEN("screen")
+MACHINE_CONFIG_END
//-------------------------------------------------
// rom_region - device-specific ROM region
diff --git a/src/devices/bus/isa/wd1007a.cpp b/src/devices/bus/isa/wd1007a.cpp
index 22d9863e392..3db2db1d776 100644
--- a/src/devices/bus/isa/wd1007a.cpp
+++ b/src/devices/bus/isa/wd1007a.cpp
@@ -45,10 +45,9 @@ wd1007a_device::wd1007a_device(const machine_config &mconfig, const char *tag, d
// device_add_mconfig - add device configuration
//-------------------------------------------------
-void wd1007a_device::device_add_mconfig(machine_config &config)
-{
- AM8753(config, "mcu", 10_MHz_XTAL);
-}
+MACHINE_CONFIG_START(wd1007a_device::device_add_mconfig)
+ MCFG_DEVICE_ADD("mcu", AM8753, 10_MHz_XTAL)
+MACHINE_CONFIG_END
//-------------------------------------------------
diff --git a/src/devices/bus/isa/wdxt_gen.cpp b/src/devices/bus/isa/wdxt_gen.cpp
index 57dec00af89..690bc161f7f 100644
--- a/src/devices/bus/isa/wdxt_gen.cpp
+++ b/src/devices/bus/isa/wdxt_gen.cpp
@@ -237,16 +237,6 @@ void wdxt_gen_device::dack_w(int line, uint8_t data)
//-------------------------------------------------
-// dack_line_w -
-//-------------------------------------------------
-
-void wdxt_gen_device::dack_line_w(int line, int state)
-{
- m_host->dack3_w(state);
-}
-
-
-//-------------------------------------------------
// wd1015_t1_r -
//-------------------------------------------------
diff --git a/src/devices/bus/isa/wdxt_gen.h b/src/devices/bus/isa/wdxt_gen.h
index d909b7bd155..89d3aa5774f 100644
--- a/src/devices/bus/isa/wdxt_gen.h
+++ b/src/devices/bus/isa/wdxt_gen.h
@@ -52,7 +52,6 @@ protected:
// device_isa8_card_interface
virtual uint8_t dack_r(int line) override;
virtual void dack_w(int line, uint8_t data) override;
- virtual void dack_line_w(int line, int state) override;
private:
DECLARE_WRITE_LINE_MEMBER( irq5_w );