summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/drivers
diff options
context:
space:
mode:
author Miodrag Milanovic <mmicko@gmail.com>2014-03-18 13:31:41 +0000
committer Miodrag Milanovic <mmicko@gmail.com>2014-03-18 13:31:41 +0000
commit59674b3fdf7b4c909a054c342fae590f7329445c (patch)
tree689decb8a5db028decb5589db738b022e570cd16 /src/mess/drivers
parente1af1a20967b33ee7b320ba451efb752a862c3c4 (diff)
legacy wd17xx is now also a modern device (nw)
Diffstat (limited to 'src/mess/drivers')
-rw-r--r--src/mess/drivers/apf.c4
-rw-r--r--src/mess/drivers/fm7.c24
-rw-r--r--src/mess/drivers/fmtowns.c41
-rw-r--r--src/mess/drivers/mbc200.c2
-rw-r--r--src/mess/drivers/ms0515.c8
-rw-r--r--src/mess/drivers/myb3k.c6
-rw-r--r--src/mess/drivers/mz2000.c10
-rw-r--r--src/mess/drivers/mz2500.c14
-rw-r--r--src/mess/drivers/nascom1.c2
-rw-r--r--src/mess/drivers/osbexec.c8
-rw-r--r--src/mess/drivers/pk8020.c1
-rw-r--r--src/mess/drivers/ql.c28
-rw-r--r--src/mess/drivers/rainbow.c64
-rw-r--r--src/mess/drivers/rm380z.c8
-rw-r--r--src/mess/drivers/smc777.c20
-rw-r--r--src/mess/drivers/trs80.c40
-rw-r--r--src/mess/drivers/unixpc.c6
-rw-r--r--src/mess/drivers/vector06.c8
-rw-r--r--src/mess/drivers/x1.c20
-rw-r--r--src/mess/drivers/z100.c18
-rw-r--r--src/mess/drivers/z80ne.c3
21 files changed, 163 insertions, 172 deletions
diff --git a/src/mess/drivers/apf.c b/src/mess/drivers/apf.c
index 27f36938fba..f8f7a521b5a 100644
--- a/src/mess/drivers/apf.c
+++ b/src/mess/drivers/apf.c
@@ -258,7 +258,7 @@ WRITE8_MEMBER( apf_state::apf_dischw_w)
/* bit 3 is index of drive to select */
UINT8 drive = BIT(data, 3);
- wd17xx_set_drive(m_fdc, drive);
+ m_fdc->set_drive(drive);
floppy_image_legacy *floppy;
floppy = flopimg_get_image(floppy_get_device(machine(), drive));
floppy_mon_w(floppy_get_device(machine(), drive), (floppy != NULL) ? 0 : 1);
@@ -293,7 +293,7 @@ static ADDRESS_MAP_START( apfimag_map, AS_PROGRAM, 8, apf_state )
AM_RANGE( 0x6000, 0x63ff) AM_MIRROR(0x03fc) AM_DEVREADWRITE("pia1", pia6821_device, read, write)
// These need to be confirmed, disk does not work
AM_RANGE( 0x6400, 0x64ff) AM_READWRITE(serial_r, serial_w)
- AM_RANGE( 0x6500, 0x6503) AM_DEVREADWRITE_LEGACY("fdc", wd17xx_r, wd17xx_w)
+ AM_RANGE( 0x6500, 0x6503) AM_DEVREADWRITE("fdc", fd1771_device, read, write)
AM_RANGE( 0x6600, 0x6600) AM_WRITE(apf_dischw_w)
AM_RANGE( 0xa000, 0xbfff) AM_RAM // standard
AM_RANGE( 0xc000, 0xdfff) AM_RAM // expansion
diff --git a/src/mess/drivers/fm7.c b/src/mess/drivers/fm7.c
index ef6b3333304..da5cd0f0a62 100644
--- a/src/mess/drivers/fm7.c
+++ b/src/mess/drivers/fm7.c
@@ -432,19 +432,19 @@ WRITE_LINE_MEMBER(fm7_state::fm7_fdc_drq_w)
READ8_MEMBER(fm7_state::fm7_fdc_r)
{
- device_t* dev = machine().device("fdc");
+ mb8877_device *fdc = machine().device<mb8877_device>("fdc");
UINT8 ret = 0;
switch(offset)
{
case 0:
- return wd17xx_status_r(dev,space, offset);
+ return fdc->status_r(space, offset);
case 1:
- return wd17xx_track_r(dev,space, offset);
+ return fdc->track_r(space, offset);
case 2:
- return wd17xx_sector_r(dev,space, offset);
+ return fdc->sector_r(space, offset);
case 3:
- return wd17xx_data_r(dev,space, offset);
+ return fdc->data_r(space, offset);
case 4:
return m_fdc_side | 0xfe;
case 5:
@@ -466,24 +466,24 @@ READ8_MEMBER(fm7_state::fm7_fdc_r)
WRITE8_MEMBER(fm7_state::fm7_fdc_w)
{
- device_t* dev = machine().device("fdc");
+ mb8877_device *fdc = machine().device<mb8877_device>("fdc");
switch(offset)
{
case 0:
- wd17xx_command_w(dev,space, offset,data);
+ fdc->command_w(space, offset,data);
break;
case 1:
- wd17xx_track_w(dev,space, offset,data);
+ fdc->track_w(space, offset,data);
break;
case 2:
- wd17xx_sector_w(dev,space, offset,data);
+ fdc->sector_w(space, offset,data);
break;
case 3:
- wd17xx_data_w(dev,space, offset,data);
+ fdc->data_w(space, offset,data);
break;
case 4:
m_fdc_side = data & 0x01;
- wd17xx_set_side(dev,data & 0x01);
+ fdc->set_side(data & 0x01);
logerror("FDC: wrote %02x to 0x%04x (side)\n",data,offset+0xfd18);
break;
case 5:
@@ -494,7 +494,7 @@ WRITE8_MEMBER(fm7_state::fm7_fdc_w)
}
else
{
- wd17xx_set_drive(dev,data & 0x03);
+ fdc->set_drive(data & 0x03);
floppy_mon_w(floppy_get_device(machine(), data & 0x03), !BIT(data, 7));
floppy_drive_set_ready_state(floppy_get_device(machine(), data & 0x03), data & 0x80,0);
logerror("FDC: wrote %02x to 0x%04x (drive)\n",data,offset+0xfd18);
diff --git a/src/mess/drivers/fmtowns.c b/src/mess/drivers/fmtowns.c
index 629cbd57073..cd7070feb43 100644
--- a/src/mess/drivers/fmtowns.c
+++ b/src/mess/drivers/fmtowns.c
@@ -499,20 +499,19 @@ WRITE_LINE_MEMBER( towns_state::mb8877a_drq_w )
READ8_MEMBER(towns_state::towns_floppy_r)
{
- device_t* fdc = m_fdc;
device_image_interface* image;
UINT8 ret;
switch(offset)
{
case 0x00:
- return wd17xx_status_r(fdc,space, offset/2);
+ return m_fdc->status_r(space, offset/2);
case 0x02:
- return wd17xx_track_r(fdc,space, offset/2);
+ return m_fdc->track_r(space, offset/2);
case 0x04:
- return wd17xx_sector_r(fdc,space, offset/2);
+ return m_fdc->sector_r(space, offset/2);
case 0x06:
- return wd17xx_data_r(fdc,space, offset/2);
+ return m_fdc->data_r(space, offset/2);
case 0x08: // selected drive status?
//logerror("FDC: read from offset 0x08\n");
ret = 0x80; // always set
@@ -548,8 +547,6 @@ READ8_MEMBER(towns_state::towns_floppy_r)
WRITE8_MEMBER(towns_state::towns_floppy_w)
{
- device_t* fdc = m_fdc;
-
switch(offset)
{
case 0x00:
@@ -558,16 +555,16 @@ WRITE8_MEMBER(towns_state::towns_floppy_w)
return;
if(data == 0xfe)
return;
- wd17xx_command_w(fdc,space, offset/2,data);
+ m_fdc->command_w(space, offset/2,data);
break;
case 0x02:
- wd17xx_track_w(fdc,space, offset/2,data);
+ m_fdc->track_w(space, offset/2,data);
break;
case 0x04:
- wd17xx_sector_w(fdc,space, offset/2,data);
+ m_fdc->sector_w(space, offset/2,data);
break;
case 0x06:
- wd17xx_data_w(fdc,space, offset/2,data);
+ m_fdc->data_w(space, offset/2,data);
break;
case 0x08:
// bit 5 - CLKSEL
@@ -576,8 +573,8 @@ WRITE8_MEMBER(towns_state::towns_floppy_w)
floppy_mon_w(floppy_get_device(space.machine(), m_towns_selected_drive-1), !BIT(data, 4));
floppy_drive_set_ready_state(floppy_get_device(space.machine(), m_towns_selected_drive-1), data & 0x10,0);
}
- wd17xx_set_side(fdc,(data & 0x04)>>2);
- wd17xx_dden_w(fdc, BIT(~data, 1));
+ m_fdc->set_side((data & 0x04)>>2);
+ m_fdc->dden_w(BIT(~data, 1));
m_towns_fdc_irq6mask = data & 0x01;
logerror("FDC: write %02x to offset 0x08\n",data);
@@ -590,19 +587,19 @@ WRITE8_MEMBER(towns_state::towns_floppy_w)
break;
case 0x01:
m_towns_selected_drive = 1;
- wd17xx_set_drive(fdc,0);
+ m_fdc->set_drive(0);
break;
case 0x02:
m_towns_selected_drive = 2;
- wd17xx_set_drive(fdc,1);
+ m_fdc->set_drive(1);
break;
case 0x04:
m_towns_selected_drive = 3;
- wd17xx_set_drive(fdc,2);
+ m_fdc->set_drive(2);
break;
case 0x08:
m_towns_selected_drive = 4;
- wd17xx_set_drive(fdc,3);
+ m_fdc->set_drive(3);
break;
}
logerror("FDC: drive select %02x\n",data);
@@ -613,15 +610,13 @@ WRITE8_MEMBER(towns_state::towns_floppy_w)
}
READ16_MEMBER(towns_state::towns_fdc_dma_r)
-{
- device_t* fdc = m_fdc;
- return wd17xx_data_r(fdc,generic_space(), 0);
+{
+ return m_fdc->data_r(generic_space(), 0);
}
WRITE16_MEMBER(towns_state::towns_fdc_dma_w)
{
- device_t* fdc = m_fdc;
- wd17xx_data_w(fdc,generic_space(), 0,data);
+ m_fdc->data_w(generic_space(), 0,data);
}
/*
@@ -2601,7 +2596,7 @@ void marty_state::driver_start()
void towns_state::machine_reset()
{
address_space &program = m_maincpu->space(AS_PROGRAM);
- m_fdc = machine().device("fdc");
+ m_fdc = machine().device<mb8877_device>("fdc");
m_messram = m_ram;
m_cdrom = machine().device<cdrom_image_device>("cdrom");
m_cdda = machine().device<cdda_device>("cdda");
diff --git a/src/mess/drivers/mbc200.c b/src/mess/drivers/mbc200.c
index d1941b0e33f..b541abbd996 100644
--- a/src/mess/drivers/mbc200.c
+++ b/src/mess/drivers/mbc200.c
@@ -85,7 +85,7 @@ static ADDRESS_MAP_START( mbc200_io , AS_IO, 8, mbc200_state)
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0xe0, 0xe0) AM_DEVREADWRITE("i8251_1", i8251_device, data_r, data_w)
AM_RANGE(0xe1, 0xe1) AM_DEVREADWRITE("i8251_1", i8251_device, status_r, control_w)
- AM_RANGE(0xe4, 0xe7) AM_DEVREADWRITE_LEGACY("fdc", wd17xx_r, wd17xx_w)
+ AM_RANGE(0xe4, 0xe7) AM_DEVREADWRITE("fdc", mb8876_device, read, write)
AM_RANGE(0xea, 0xea) AM_READ(ppi_hs_r)
AM_RANGE(0xe8, 0xeb) AM_DEVREADWRITE("ppi8255_2", i8255_device, read, write)
AM_RANGE(0xec, 0xec) AM_DEVREADWRITE("i8251_2", i8251_device, data_r, data_w)
diff --git a/src/mess/drivers/ms0515.c b/src/mess/drivers/ms0515.c
index ef9b8447275..7de11d248f9 100644
--- a/src/mess/drivers/ms0515.c
+++ b/src/mess/drivers/ms0515.c
@@ -70,10 +70,10 @@ static ADDRESS_MAP_START(ms0515_mem, AS_PROGRAM, 16, ms0515_state)
AM_RANGE(0177600, 0177607) AM_DEVREADWRITE8("ppi8255_1", i8255_device, read, write, 0x00ff)
- AM_RANGE(0177640, 0177641) AM_DEVREADWRITE8_LEGACY("vg93", wd17xx_status_r, wd17xx_command_w,0x00ff)
- AM_RANGE(0177642, 0177643) AM_DEVREADWRITE8_LEGACY("vg93", wd17xx_track_r, wd17xx_track_w,0x00ff)
- AM_RANGE(0177644, 0177645) AM_DEVREADWRITE8_LEGACY("vg93", wd17xx_sector_r, wd17xx_sector_w,0x00ff)
- AM_RANGE(0177646, 0177647) AM_DEVREADWRITE8_LEGACY("vg93", wd17xx_data_r, wd17xx_data_w,0x00ff)
+ AM_RANGE(0177640, 0177641) AM_DEVREADWRITE8("vg93", fd1793_device, status_r, command_w,0x00ff)
+ AM_RANGE(0177642, 0177643) AM_DEVREADWRITE8("vg93", fd1793_device, track_r, track_w,0x00ff)
+ AM_RANGE(0177644, 0177645) AM_DEVREADWRITE8("vg93", fd1793_device, sector_r, sector_w,0x00ff)
+ AM_RANGE(0177646, 0177647) AM_DEVREADWRITE8("vg93", fd1793_device, data_r, data_w,0x00ff)
//AM_RANGE(0177700, 0177701) // read data
//AM_RANGE(0177720, 0177721) // write data // protocol S2
diff --git a/src/mess/drivers/myb3k.c b/src/mess/drivers/myb3k.c
index 193e7832cb6..ba169605f98 100644
--- a/src/mess/drivers/myb3k.c
+++ b/src/mess/drivers/myb3k.c
@@ -126,10 +126,10 @@ WRITE8_MEMBER( myb3k_state::myb3k_video_mode_w )
WRITE8_MEMBER( myb3k_state::myb3k_fdc_output_w )
{
/* TODO: complete guesswork! (it just does a 0x24 -> 0x20 in there) */
- wd17xx_set_drive(m_fdc, data & 3);
+ m_fdc->set_drive(data & 3);
floppy_mon_w(floppy_get_device(machine(), data & 3), !(data & 4) ? 1: 0);
floppy_drive_set_ready_state(floppy_get_device(machine(), data & 3), data & 0x4,0);
- //wd17xx_set_side(m_fdc, (data & 0x10)>>4);
+ //m_fdc->set_side((data & 0x10)>>4);
}
static ADDRESS_MAP_START(myb3k_map, AS_PROGRAM, 8, myb3k_state)
@@ -149,7 +149,7 @@ static ADDRESS_MAP_START(myb3k_io, AS_IO, 8, myb3k_state)
AM_RANGE(0x06, 0x06) AM_READ_PORT("DSW2")
AM_RANGE(0x1c, 0x1c) AM_WRITE(myb3k_6845_address_w)
AM_RANGE(0x1d, 0x1d) AM_WRITE(myb3k_6845_data_w)
- AM_RANGE(0x20, 0x23) AM_DEVREADWRITE_LEGACY("fdc",wd17xx_r,wd17xx_w) //FDC, almost likely wd17xx
+ AM_RANGE(0x20, 0x23) AM_DEVREADWRITE("fdc", mb8877_device, read, write) //FDC, almost likely wd17xx
AM_RANGE(0x24, 0x24) AM_WRITE(myb3k_fdc_output_w)
// AM_RANGE(0x520,0x524) mirror of above
ADDRESS_MAP_END
diff --git a/src/mess/drivers/mz2000.c b/src/mess/drivers/mz2000.c
index 9bcc5bc9b8d..b9305d6013d 100644
--- a/src/mess/drivers/mz2000.c
+++ b/src/mess/drivers/mz2000.c
@@ -120,7 +120,7 @@ public:
protected:
required_device<cpu_device> m_maincpu;
- required_device<device_t> m_mb8877a;
+ required_device<mb8877_device> m_mb8877a;
required_device<pit8253_device> m_pit8253;
required_device<beep_device> m_beeper;
required_memory_region m_region_tvram;
@@ -343,7 +343,7 @@ WRITE8_MEMBER(mz2000_state::mz2000_gvram_bank_w)
READ8_MEMBER(mz2000_state::mz2000_wd17xx_r)
{
if(m_has_fdc)
- return wd17xx_r(m_mb8877a, space, offset) ^ 0xff;
+ return m_mb8877a->read(space, offset) ^ 0xff;
return 0xff;
}
@@ -351,7 +351,7 @@ READ8_MEMBER(mz2000_state::mz2000_wd17xx_r)
WRITE8_MEMBER(mz2000_state::mz2000_wd17xx_w)
{
if(m_has_fdc)
- wd17xx_w(m_mb8877a, space, offset, data ^ 0xff);
+ m_mb8877a->write(space, offset, data ^ 0xff);
}
WRITE8_MEMBER(mz2000_state::mz2000_fdc_w)
@@ -359,12 +359,12 @@ WRITE8_MEMBER(mz2000_state::mz2000_fdc_w)
switch(offset+0xdc)
{
case 0xdc:
- wd17xx_set_drive(m_mb8877a,data & 3);
+ m_mb8877a->set_drive(data & 3);
floppy_mon_w(floppy_get_device(machine(), data & 3), (data & 0x80) ? CLEAR_LINE : ASSERT_LINE);
floppy_drive_set_ready_state(floppy_get_device(machine(), data & 3), 1,0);
break;
case 0xdd:
- wd17xx_set_side(m_mb8877a,(data & 1));
+ m_mb8877a->set_side((data & 1));
break;
}
}
diff --git a/src/mess/drivers/mz2500.c b/src/mess/drivers/mz2500.c
index bfbd7fb8ef6..14308101b55 100644
--- a/src/mess/drivers/mz2500.c
+++ b/src/mess/drivers/mz2500.c
@@ -1184,17 +1184,17 @@ WRITE8_MEMBER(mz2500_state::mz2500_irq_data_w)
WRITE8_MEMBER(mz2500_state::mz2500_fdc_w)
{
- device_t* dev = machine().device("mb8877a");
+ mb8877_device *fdc = machine().device<mb8877_device>("mb8877a");
switch(offset+0xdc)
{
case 0xdc:
- wd17xx_set_drive(dev,data & 3);
+ fdc->set_drive(data & 3);
floppy_mon_w(floppy_get_device(machine(), data & 3), (data & 0x80) ? CLEAR_LINE : ASSERT_LINE);
floppy_drive_set_ready_state(floppy_get_device(machine(), data & 3), 1,0);
break;
case 0xdd:
- wd17xx_set_side(dev,(data & 1));
+ fdc->set_side((data & 1));
break;
}
}
@@ -1282,14 +1282,14 @@ WRITE8_MEMBER(mz2500_state::palette4096_io_w)
READ8_MEMBER(mz2500_state::mz2500_wd17xx_r)
{
- device_t *device = machine().device("mb8877a");
- return wd17xx_r(device, space, offset) ^ m_fdc_reverse;
+ mb8877_device *fdc = machine().device<mb8877_device>("mb8877a");
+ return fdc->read(space, offset) ^ m_fdc_reverse;
}
WRITE8_MEMBER(mz2500_state::mz2500_wd17xx_w)
{
- device_t *device = machine().device("mb8877a");
- wd17xx_w(device, space, offset, data ^ m_fdc_reverse);
+ mb8877_device *fdc = machine().device<mb8877_device>("mb8877a");
+ fdc->write(space, offset, data ^ m_fdc_reverse);
}
READ8_MEMBER(mz2500_state::mz2500_bplane_latch_r)
diff --git a/src/mess/drivers/nascom1.c b/src/mess/drivers/nascom1.c
index a9b74d45e75..14abe9a1e40 100644
--- a/src/mess/drivers/nascom1.c
+++ b/src/mess/drivers/nascom1.c
@@ -105,7 +105,7 @@ static ADDRESS_MAP_START( nascom2_io, AS_IO, 8, nascom1_state )
AM_RANGE(0x01, 0x01) AM_READWRITE(nascom1_port_01_r, nascom1_port_01_w)
AM_RANGE(0x02, 0x02) AM_READ(nascom1_port_02_r)
AM_RANGE(0x04, 0x07) AM_DEVREADWRITE("z80pio", z80pio_device, read, write )
- AM_RANGE(0xe0, 0xe3) AM_DEVREADWRITE_LEGACY("wd1793", wd17xx_r, wd17xx_w)
+ AM_RANGE(0xe0, 0xe3) AM_DEVREADWRITE("wd1793", fd1793_device, read, write)
AM_RANGE(0xe4, 0xe4) AM_READWRITE(nascom2_fdc_select_r, nascom2_fdc_select_w)
AM_RANGE(0xe5, 0xe5) AM_READ(nascom2_fdc_status_r)
ADDRESS_MAP_END
diff --git a/src/mess/drivers/osbexec.c b/src/mess/drivers/osbexec.c
index 20f3c8e9e39..7d1b09bd542 100644
--- a/src/mess/drivers/osbexec.c
+++ b/src/mess/drivers/osbexec.c
@@ -213,7 +213,7 @@ static ADDRESS_MAP_START( osbexec_io, AS_IO, 8, osbexec_state )
ADDRESS_MAP_UNMAP_HIGH
AM_RANGE( 0x00, 0x03 ) AM_MIRROR( 0xff00 ) AM_DEVREADWRITE( "pia_0", pia6821_device, read, write) /* 6821 PIA @ UD12 */
/* 0x04 - 0x07 - 8253 @UD1 */
- AM_RANGE( 0x08, 0x0B ) AM_MIRROR( 0xff00 ) AM_DEVREADWRITE_LEGACY("mb8877", wd17xx_r, wd17xx_w ) /* MB8877 @ UB17 input clock = 1MHz */
+ AM_RANGE( 0x08, 0x0B ) AM_MIRROR( 0xff00 ) AM_DEVREADWRITE("mb8877", mb8877_device, read, write ) /* MB8877 @ UB17 input clock = 1MHz */
AM_RANGE( 0x0C, 0x0F ) AM_MIRROR( 0xff00 ) AM_DEVREADWRITE("sio", z80sio2_device, ba_cd_r, ba_cd_w ) /* SIO @ UD4 */
AM_RANGE( 0x10, 0x13 ) AM_MIRROR( 0xff00 ) AM_DEVREADWRITE( "pia_1", pia6821_device, read, write) /* 6821 PIA @ UD8 */
AM_RANGE( 0x14, 0x17 ) AM_MIRROR( 0xff00 ) AM_MASK( 0xff00 ) AM_READ(osbexec_kbd_r ) /* KBD */
@@ -384,14 +384,14 @@ WRITE8_MEMBER(osbexec_state::osbexec_pia0_b_w)
switch ( data & 0x06 )
{
case 0x02:
- wd17xx_set_drive( m_mb8877, 1 );
+ m_mb8877->set_drive( 1 );
break;
case 0x04:
- wd17xx_set_drive( m_mb8877, 0 );
+ m_mb8877->set_drive( 0 );
break;
}
- wd17xx_dden_w( m_mb8877, ( data & 0x01 ) ? 1 : 0 );
+ m_mb8877->dden_w(( data & 0x01 ) ? 1 : 0 );
}
diff --git a/src/mess/drivers/pk8020.c b/src/mess/drivers/pk8020.c
index e4f9c1b95cc..dabab42bfde 100644
--- a/src/mess/drivers/pk8020.c
+++ b/src/mess/drivers/pk8020.c
@@ -11,7 +11,6 @@
#include "emu.h"
#include "cpu/i8085/i8085.h"
#include "machine/i8255.h"
-#include "machine/wd17xx.h"
#include "imagedev/flopdrv.h"
#include "formats/basicdsk.h"
#include "includes/pk8020.h"
diff --git a/src/mess/drivers/ql.c b/src/mess/drivers/ql.c
index 691a8796d4b..435c09d2e92 100644
--- a/src/mess/drivers/ql.c
+++ b/src/mess/drivers/ql.c
@@ -272,10 +272,10 @@ READ8_MEMBER( ql_state::disk_io_r )
switch (offset)
{
- case 0x0000 : result=wd17xx_r(m_fdc, space, offset); break;
- case 0x0001 : result=wd17xx_r(m_fdc, space, offset); break;
- case 0x0002 : result=wd17xx_r(m_fdc, space, offset); break;
- case 0x0003 : result=wd17xx_r(m_fdc, space, offset); break;
+ case 0x0000 : result=m_fdc->read(space, offset); break;
+ case 0x0001 : result=m_fdc->read(space, offset); break;
+ case 0x0002 : result=m_fdc->read(space, offset); break;
+ case 0x0003 : result=m_fdc->read(space, offset); break;
default : logerror("%s DiskIO undefined read : from %08X\n",machine().describe_context(),m_disk_io_base+offset); break;
}
@@ -289,10 +289,10 @@ WRITE8_MEMBER( ql_state::disk_io_w )
switch (offset)
{
- case 0x0000 : wd17xx_w(m_fdc, space, offset, data); break;
- case 0x0001 : wd17xx_w(m_fdc, space, offset, data); break;
- case 0x0002 : wd17xx_w(m_fdc, space, offset, data); break;
- case 0x0003 : wd17xx_w(m_fdc, space, offset, data); break;
+ case 0x0000 : m_fdc->write(space, offset, data); break;
+ case 0x0001 : m_fdc->write(space, offset, data); break;
+ case 0x0002 : m_fdc->write(space, offset, data); break;
+ case 0x0003 : m_fdc->write(space, offset, data); break;
case 0x0004 : if(m_disk_type==DISK_TYPE_SANDY)
sandy_set_control(data);break;
case 0x0008 : if(m_disk_type==DISK_TYPE_SANDY)
@@ -332,12 +332,12 @@ READ8_MEMBER( ql_state::cart_rom_r )
void ql_state::trump_card_set_control(UINT8 data)
{
if(data & TRUMP_DRIVE0_MASK)
- wd17xx_set_drive(m_fdc,0);
+ m_fdc->set_drive(0);
if(data & TRUMP_DRIVE1_MASK)
- wd17xx_set_drive(m_fdc,1);
+ m_fdc->set_drive(1);
- wd17xx_set_side(m_fdc,(data & TRUMP_SIDE_MASK) >> TRUMP_SIDE_SHIFT);
+ m_fdc->set_side((data & TRUMP_SIDE_MASK) >> TRUMP_SIDE_SHIFT);
}
void ql_state::sandy_set_control(UINT8 data)
@@ -347,12 +347,12 @@ void ql_state::sandy_set_control(UINT8 data)
m_disk_io_byte=data;
if(data & SANDY_DRIVE0_MASK)
- wd17xx_set_drive(m_fdc,0);
+ m_fdc->set_drive(0);
if(data & SANDY_DRIVE1_MASK)
- wd17xx_set_drive(m_fdc,1);
+ m_fdc->set_drive(1);
- wd17xx_set_side(m_fdc,(data & SANDY_SIDE_MASK) >> SANDY_SIDE_SHIFT);
+ m_fdc->set_side((data & SANDY_SIDE_MASK) >> SANDY_SIDE_SHIFT);
if ((data & SANDY_SIDE_MASK) & (LOG_DISK_READ | LOG_DISK_WRITE))
{
logerror("Accessing side 1\n");
diff --git a/src/mess/drivers/rainbow.c b/src/mess/drivers/rainbow.c
index 53be7ae0b95..d31cb9f2635 100644
--- a/src/mess/drivers/rainbow.c
+++ b/src/mess/drivers/rainbow.c
@@ -459,10 +459,10 @@ static ADDRESS_MAP_START( rainbowz80_io, AS_IO, 8, rainbow_state)
AM_RANGE(0x20, 0x20) AM_READWRITE(z80_generalstat_r, z80_diskdiag_read_w) // read to port 0x20 used by MS-DOS 2.x diskette loader.
AM_RANGE(0x21, 0x21) AM_READWRITE(z80_generalstat_r, z80_diskdiag_write_w)
AM_RANGE(0x40, 0x40) AM_READWRITE(z80_diskstatus_r, z80_diskcontrol_w)
- AM_RANGE(0x60, 0x60) AM_DEVREADWRITE_LEGACY("wd1793", wd17xx_status_r, wd17xx_command_w)
- AM_RANGE(0x61, 0x61) AM_DEVREADWRITE_LEGACY("wd1793", wd17xx_track_r, wd17xx_track_w)
- AM_RANGE(0x62, 0x62) AM_DEVREADWRITE_LEGACY("wd1793", wd17xx_sector_r, wd17xx_sector_w)
- AM_RANGE(0x63, 0x63) AM_DEVREADWRITE_LEGACY("wd1793", wd17xx_data_r, wd17xx_data_w)
+ AM_RANGE(0x60, 0x60) AM_DEVREADWRITE("wd1793", fd1793_device ,status_r, command_w)
+ AM_RANGE(0x61, 0x61) AM_DEVREADWRITE("wd1793", fd1793_device, track_r, track_w)
+ AM_RANGE(0x62, 0x62) AM_DEVREADWRITE("wd1793", fd1793_device, sector_r, sector_w)
+ AM_RANGE(0x63, 0x63) AM_DEVREADWRITE("wd1793", fd1793_device, data_r, data_w)
ADDRESS_MAP_END
/* Input ports */
@@ -902,39 +902,39 @@ WRITE8_MEMBER(rainbow_state::z80_diskdiag_write_w)
// **********************************************************************
READ8_MEMBER(rainbow_state::z80_diskstatus_r)
{
-static int last_track;
-int track = wd17xx_track_r(m_fdc, space, 0);
+ static int last_track;
+ int track = m_fdc->track_r( space, 0);
-if (track != last_track)
- printf("\n%02d",track);
-last_track = track;
+ if (track != last_track)
+ printf("\n%02d",track);
+ last_track = track;
-// 40H diskette status Register **** READ ONLY *** ( 4-60 of TM100.pdf )
+ // 40H diskette status Register **** READ ONLY *** ( 4-60 of TM100.pdf )
-// AND 00111011 - return what was WRITTEN to D5-D3, D1, D0 previously
-// (except D7,D6,D2)
-int data = m_z80_diskcontrol && 0x3b;
+ // AND 00111011 - return what was WRITTEN to D5-D3, D1, D0 previously
+ // (except D7,D6,D2)
+ int data = m_z80_diskcontrol && 0x3b;
-// D7: DRQ: reflects status of DATA REQUEST signal from FDC.
-// '1' indicates that FDC has read data OR requires new write data.
-data |= wd17xx_drq_r(m_fdc) ? 0x80 : 0x00;
+ // D7: DRQ: reflects status of DATA REQUEST signal from FDC.
+ // '1' indicates that FDC has read data OR requires new write data.
+ data |= m_fdc->drq_r() ? 0x80 : 0x00;
-// D6: IRQ: indicates INTERRUPT REQUEST signal from FDC. Indicates that a
-// status bit has changed. Set to 1 at the completion of any
-// command (.. see page 207 or 5-25).
-data |= wd17xx_intrq_r(m_fdc) ? 0x40 : 0x00;
+ // D6: IRQ: indicates INTERRUPT REQUEST signal from FDC. Indicates that a
+ // status bit has changed. Set to 1 at the completion of any
+ // command (.. see page 207 or 5-25).
+ data |= m_fdc->intrq_r() ? 0x40 : 0x00;
-// D5: SIDE 0H: status of side select signal at J2 + J3 of RX50 controller.
-// For 1 sided drives, this bit will always read low (0).
+ // D5: SIDE 0H: status of side select signal at J2 + J3 of RX50 controller.
+ // For 1 sided drives, this bit will always read low (0).
-// D4: MOTOR 1 ON L: 0 = indicates MOTOR 1 ON bit is set in drive control reg.
-// D3: MOTOR 0 ON L: 0 = indicates MOTOR 0 ON bit is set in drive "
+ // D4: MOTOR 1 ON L: 0 = indicates MOTOR 1 ON bit is set in drive control reg.
+ // D3: MOTOR 0 ON L: 0 = indicates MOTOR 0 ON bit is set in drive "
-// D2: TG43 L : 0 = INDICATES TRACK > 43 SIGNAL FROM FDC TO DISK DRIVE.
-data |= ( track > 43) ? 0x00 : 0x04;
+ // D2: TG43 L : 0 = INDICATES TRACK > 43 SIGNAL FROM FDC TO DISK DRIVE.
+ data |= ( track > 43) ? 0x00 : 0x04;
-// D1: DS1 H: reflect status of bits 0 and 1 form disk.control reg.
-// D0: DS0 H: "
+ // D1: DS1 H: reflect status of bits 0 and 1 form disk.control reg.
+ // D0: DS0 H: "
return data;
}
@@ -960,14 +960,14 @@ WRITE8_MEMBER(rainbow_state::z80_diskcontrol_w)
if (flopimg_get_image( floppy_get_device( machine(), drive ) ) != NULL)
{ selected_drive = drive;
- wd17xx_set_drive(m_fdc, selected_drive);
+ m_fdc->set_drive(selected_drive);
}
// WD emulation (wd17xx.c) will ignore 'side select' if set to WD1793.
// Is it safe to * always assume * single sided 400 K disks?
- wd17xx_set_side(m_fdc, (data & 20) ? 1 : 0);
+ m_fdc->set_side((data & 20) ? 1 : 0);
- wd17xx_dden_w(m_fdc, 0); /* SEE 'WRITE_TRACK' : 1 = SD; 0 = DD; enable double density */
+ m_fdc->dden_w(0); /* SEE 'WRITE_TRACK' : 1 = SD; 0 = DD; enable double density */
output_set_value("driveled0", (selected_drive == 0) ? 1 : 0 );
output_set_value("driveled1", (selected_drive == 1) ? 1 : 0 );
@@ -1065,7 +1065,7 @@ WRITE8_MEMBER( rainbow_state::diagnostic_w )
// reset device when going from high to low,
// restore command when going from low to high :
- wd17xx_mr_w(m_fdc, (data & 1) ? 1 : 0);
+ m_fdc->mr_w((data & 1) ? 1 : 0);
m_diagnostic = data;
}
diff --git a/src/mess/drivers/rm380z.c b/src/mess/drivers/rm380z.c
index 332965f6930..df67e513211 100644
--- a/src/mess/drivers/rm380z.c
+++ b/src/mess/drivers/rm380z.c
@@ -101,10 +101,10 @@ ADDRESS_MAP_END
static ADDRESS_MAP_START( rm380z_io , AS_IO, 8, rm380z_state)
ADDRESS_MAP_GLOBAL_MASK(0xff)
AM_RANGE(0x00, 0xbf) AM_READWRITE(rm380z_portlow_r, rm380z_portlow_w)
- AM_RANGE(0xc0, 0xc0) AM_DEVREADWRITE_LEGACY("wd1771", wd17xx_status_r, wd17xx_command_w)
- AM_RANGE(0xc1, 0xc1) AM_DEVREADWRITE_LEGACY("wd1771", wd17xx_track_r, wd17xx_track_w)
- AM_RANGE(0xc2, 0xc2) AM_DEVREADWRITE_LEGACY("wd1771", wd17xx_sector_r, wd17xx_sector_w)
- AM_RANGE(0xc3, 0xc3) AM_DEVREADWRITE_LEGACY("wd1771", wd17xx_data_r, wd17xx_data_w)
+ AM_RANGE(0xc0, 0xc0) AM_DEVREADWRITE("wd1771", fd1771_device, status_r, command_w)
+ AM_RANGE(0xc1, 0xc1) AM_DEVREADWRITE("wd1771", fd1771_device, track_r, track_w)
+ AM_RANGE(0xc2, 0xc2) AM_DEVREADWRITE("wd1771", fd1771_device, sector_r, sector_w)
+ AM_RANGE(0xc3, 0xc3) AM_DEVREADWRITE("wd1771", fd1771_device, data_r, data_w)
AM_RANGE(0xc4, 0xc4) AM_WRITE(disk_0_control)
AM_RANGE(0xc5, 0xff) AM_READWRITE(rm380z_porthi_r, rm380z_porthi_w)
ADDRESS_MAP_END
diff --git a/src/mess/drivers/smc777.c b/src/mess/drivers/smc777.c
index 84d636b6573..c59a70b77fc 100644
--- a/src/mess/drivers/smc777.c
+++ b/src/mess/drivers/smc777.c
@@ -402,13 +402,13 @@ READ8_MEMBER(smc777_state::smc777_fdc1_r)
switch(offset)
{
case 0x00:
- return wd17xx_status_r(m_fdc,space, offset) ^ 0xff;
+ return m_fdc->status_r(space, offset) ^ 0xff;
case 0x01:
- return wd17xx_track_r(m_fdc,space, offset) ^ 0xff;
+ return m_fdc->track_r(space, offset) ^ 0xff;
case 0x02:
- return wd17xx_sector_r(m_fdc,space, offset) ^ 0xff;
+ return m_fdc->sector_r(space, offset) ^ 0xff;
case 0x03:
- return wd17xx_data_r(m_fdc,space, offset) ^ 0xff;
+ return m_fdc->data_r(space, offset) ^ 0xff;
case 0x04: //irq / drq status
//popmessage("%02x %02x\n",m_fdc_irq_flag,m_fdc_drq_flag);
@@ -425,21 +425,21 @@ WRITE8_MEMBER(smc777_state::smc777_fdc1_w)
switch(offset)
{
case 0x00:
- wd17xx_command_w(m_fdc,space, offset,data ^ 0xff);
+ m_fdc->command_w(space, offset,data ^ 0xff);
break;
case 0x01:
- wd17xx_track_w(m_fdc,space, offset,data ^ 0xff);
+ m_fdc->track_w(space, offset,data ^ 0xff);
break;
case 0x02:
- wd17xx_sector_w(m_fdc,space, offset,data ^ 0xff);
+ m_fdc->sector_w(space, offset,data ^ 0xff);
break;
case 0x03:
- wd17xx_data_w(m_fdc,space, offset,data ^ 0xff);
+ m_fdc->data_w(space, offset,data ^ 0xff);
break;
case 0x04:
// ---- xxxx select floppy drive (yes, 15 of them, A to P)
- wd17xx_set_drive(m_fdc,data & 0x01);
- // wd17xx_set_side(m_fdc,(data & 0x10)>>4);
+ m_fdc->set_drive(data & 0x01);
+ // m_fdc->set_side((data & 0x10)>>4);
if(data & 0xf0)
printf("floppy access %02x\n",data);
break;
diff --git a/src/mess/drivers/trs80.c b/src/mess/drivers/trs80.c
index ec7564a4fae..ee753556302 100644
--- a/src/mess/drivers/trs80.c
+++ b/src/mess/drivers/trs80.c
@@ -158,10 +158,10 @@ static ADDRESS_MAP_START( model1_map, AS_PROGRAM, 8, trs80_state )
AM_RANGE(0x37e4, 0x37e7) AM_WRITE(trs80_cassunit_w)
AM_RANGE(0x37e8, 0x37eb) AM_READWRITE(trs80_printer_r, trs80_printer_w)
AM_RANGE(0x37ec, 0x37ec) AM_READ(trs80_wd179x_r)
- AM_RANGE(0x37ec, 0x37ec) AM_DEVWRITE_LEGACY("wd179x", wd17xx_command_w)
- AM_RANGE(0x37ed, 0x37ed) AM_DEVREADWRITE_LEGACY("wd179x", wd17xx_track_r, wd17xx_track_w)
- AM_RANGE(0x37ee, 0x37ee) AM_DEVREADWRITE_LEGACY("wd179x", wd17xx_sector_r, wd17xx_sector_w)
- AM_RANGE(0x37ef, 0x37ef) AM_DEVREADWRITE_LEGACY("wd179x", wd17xx_data_r, wd17xx_data_w)
+ AM_RANGE(0x37ec, 0x37ec) AM_DEVWRITE("wd179x", fd1793_device, command_w)
+ AM_RANGE(0x37ed, 0x37ed) AM_DEVREADWRITE("wd179x", fd1793_device, track_r, track_w)
+ AM_RANGE(0x37ee, 0x37ee) AM_DEVREADWRITE("wd179x", fd1793_device, sector_r, sector_w)
+ AM_RANGE(0x37ef, 0x37ef) AM_DEVREADWRITE("wd179x", fd1793_device, data_r, data_w)
AM_RANGE(0x3800, 0x38ff) AM_MIRROR(0x300) AM_READ(trs80_keyboard_r)
AM_RANGE(0x3c00, 0x3fff) AM_READWRITE(trs80_videoram_r, trs80_videoram_w) AM_SHARE("p_videoram")
AM_RANGE(0x4000, 0xffff) AM_RAM
@@ -208,10 +208,10 @@ static ADDRESS_MAP_START( model3_io, AS_IO, 8, trs80_state )
AM_RANGE(0xeb, 0xeb) AM_READWRITE(trs80m4_eb_r, trs80m4_eb_w)
AM_RANGE(0xec, 0xef) AM_READWRITE(trs80m4_ec_r, trs80m4_ec_w)
AM_RANGE(0xf0, 0xf0) AM_READ(trs80_wd179x_r)
- AM_RANGE(0xf0, 0xf0) AM_DEVWRITE_LEGACY("wd179x", wd17xx_command_w)
- AM_RANGE(0xf1, 0xf1) AM_DEVREADWRITE_LEGACY("wd179x", wd17xx_track_r, wd17xx_track_w)
- AM_RANGE(0xf2, 0xf2) AM_DEVREADWRITE_LEGACY("wd179x", wd17xx_sector_r, wd17xx_sector_w)
- AM_RANGE(0xf3, 0xf3) AM_DEVREADWRITE_LEGACY("wd179x", wd17xx_data_r, wd17xx_data_w)
+ AM_RANGE(0xf0, 0xf0) AM_DEVWRITE("wd179x", fd1793_device, command_w)
+ AM_RANGE(0xf1, 0xf1) AM_DEVREADWRITE("wd179x", fd1793_device, track_r, track_w)
+ AM_RANGE(0xf2, 0xf2) AM_DEVREADWRITE("wd179x", fd1793_device, sector_r, sector_w)
+ AM_RANGE(0xf3, 0xf3) AM_DEVREADWRITE("wd179x", fd1793_device, data_r, data_w)
AM_RANGE(0xf4, 0xf4) AM_WRITE(trs80m4_f4_w)
AM_RANGE(0xf8, 0xfb) AM_READWRITE(trs80_printer_r, trs80_printer_w)
AM_RANGE(0xfc, 0xff) AM_READWRITE(trs80m4_ff_r, trs80m4_ff_w)
@@ -230,10 +230,10 @@ static ADDRESS_MAP_START( model4_io, AS_IO, 8, trs80_state )
AM_RANGE(0xeb, 0xeb) AM_READWRITE(trs80m4_eb_r, trs80m4_eb_w)
AM_RANGE(0xec, 0xef) AM_READWRITE(trs80m4_ec_r, trs80m4_ec_w)
AM_RANGE(0xf0, 0xf0) AM_READ(trs80_wd179x_r)
- AM_RANGE(0xf0, 0xf0) AM_DEVWRITE_LEGACY("wd179x", wd17xx_command_w)
- AM_RANGE(0xf1, 0xf1) AM_DEVREADWRITE_LEGACY("wd179x", wd17xx_track_r, wd17xx_track_w)
- AM_RANGE(0xf2, 0xf2) AM_DEVREADWRITE_LEGACY("wd179x", wd17xx_sector_r, wd17xx_sector_w)
- AM_RANGE(0xf3, 0xf3) AM_DEVREADWRITE_LEGACY("wd179x", wd17xx_data_r, wd17xx_data_w)
+ AM_RANGE(0xf0, 0xf0) AM_DEVWRITE("wd179x", fd1793_device, command_w)
+ AM_RANGE(0xf1, 0xf1) AM_DEVREADWRITE("wd179x", fd1793_device, track_r, track_w)
+ AM_RANGE(0xf2, 0xf2) AM_DEVREADWRITE("wd179x", fd1793_device, sector_r, sector_w)
+ AM_RANGE(0xf3, 0xf3) AM_DEVREADWRITE("wd179x", fd1793_device, data_r, data_w)
AM_RANGE(0xf4, 0xf4) AM_WRITE(trs80m4_f4_w)
AM_RANGE(0xf8, 0xfb) AM_READWRITE(trs80_printer_r, trs80_printer_w)
AM_RANGE(0xfc, 0xff) AM_READWRITE(trs80m4_ff_r, trs80m4_ff_w)
@@ -253,10 +253,10 @@ static ADDRESS_MAP_START( model4p_io, AS_IO, 8, trs80_state )
AM_RANGE(0xeb, 0xeb) AM_READWRITE(trs80m4_eb_r, trs80m4_eb_w)
AM_RANGE(0xec, 0xef) AM_READWRITE(trs80m4_ec_r, trs80m4_ec_w)
AM_RANGE(0xf0, 0xf0) AM_READ(trs80_wd179x_r)
- AM_RANGE(0xf0, 0xf0) AM_DEVWRITE_LEGACY("wd179x", wd17xx_command_w)
- AM_RANGE(0xf1, 0xf1) AM_DEVREADWRITE_LEGACY("wd179x", wd17xx_track_r, wd17xx_track_w)
- AM_RANGE(0xf2, 0xf2) AM_DEVREADWRITE_LEGACY("wd179x", wd17xx_sector_r, wd17xx_sector_w)
- AM_RANGE(0xf3, 0xf3) AM_DEVREADWRITE_LEGACY("wd179x", wd17xx_data_r, wd17xx_data_w)
+ AM_RANGE(0xf0, 0xf0) AM_DEVWRITE("wd179x", fd1793_device, command_w)
+ AM_RANGE(0xf1, 0xf1) AM_DEVREADWRITE("wd179x", fd1793_device, track_r, track_w)
+ AM_RANGE(0xf2, 0xf2) AM_DEVREADWRITE("wd179x", fd1793_device, sector_r, sector_w)
+ AM_RANGE(0xf3, 0xf3) AM_DEVREADWRITE("wd179x", fd1793_device, data_r, data_w)
AM_RANGE(0xf4, 0xf4) AM_WRITE(trs80m4_f4_w)
AM_RANGE(0xf8, 0xfb) AM_READWRITE(trs80_printer_r, trs80_printer_w)
AM_RANGE(0xfc, 0xff) AM_READWRITE(trs80m4_ff_r, trs80m4_ff_w)
@@ -277,10 +277,10 @@ static ADDRESS_MAP_START( meritum_io, AS_IO, 8, trs80_state )
// eg. port F0 should be 5, port F2 should have bit 3 set.
//AM_RANGE(0x03, 0x03) unknown
AM_RANGE(0xf0, 0xf0) AM_READ(trs80_wd179x_r)
- AM_RANGE(0xf0, 0xf0) AM_DEVWRITE_LEGACY("wd179x", wd17xx_command_w)
- AM_RANGE(0xf1, 0xf1) AM_DEVREADWRITE_LEGACY("wd179x", wd17xx_track_r, wd17xx_track_w)
- AM_RANGE(0xf2, 0xf2) AM_DEVREADWRITE_LEGACY("wd179x", wd17xx_sector_r, wd17xx_sector_w)
- AM_RANGE(0xf3, 0xf3) AM_DEVREADWRITE_LEGACY("wd179x", wd17xx_data_r, wd17xx_data_w)
+ AM_RANGE(0xf0, 0xf0) AM_DEVWRITE("wd179x", fd1793_device, command_w)
+ AM_RANGE(0xf1, 0xf1) AM_DEVREADWRITE("wd179x", fd1793_device, track_r, track_w)
+ AM_RANGE(0xf2, 0xf2) AM_DEVREADWRITE("wd179x", fd1793_device, sector_r, sector_w)
+ AM_RANGE(0xf3, 0xf3) AM_DEVREADWRITE("wd179x", fd1793_device, data_r, data_w)
AM_RANGE(0xf4, 0xf4) AM_WRITE(trs80m4_f4_w)
AM_RANGE(0xf8, 0xfb) AM_READWRITE(trs80_printer_r, trs80_printer_w)
//AM_RANGE(0xfc, 0xfd) unknown
diff --git a/src/mess/drivers/unixpc.c b/src/mess/drivers/unixpc.c
index c0c460a06f0..50467ed9a0e 100644
--- a/src/mess/drivers/unixpc.c
+++ b/src/mess/drivers/unixpc.c
@@ -91,7 +91,7 @@ READ16_MEMBER( unixpc_state::line_printer_r )
data |= 1; // no dial tone detected
data |= 1 << 1; // no parity error
data |= 0 << 2; // hdc intrq
- data |= wd17xx_intrq_r(m_wd2797) << 3;
+ data |= m_wd2797->intrq_r() << 3;
logerror("line_printer_r: %04x\n", data);
@@ -120,7 +120,7 @@ WRITE16_MEMBER( unixpc_state::disk_control_w )
floppy_mon_w(m_floppy, !BIT(data, 5));
// bit 6 = floppy selected / not selected
- wd17xx_set_drive(m_wd2797, 0);
+ m_wd2797->set_drive(0);
}
WRITE_LINE_MEMBER( unixpc_state::wd2797_intrq_w )
@@ -161,7 +161,7 @@ static ADDRESS_MAP_START( unixpc_mem, AS_PROGRAM, 16, unixpc_state )
AM_RANGE(0x4a0000, 0x4a0001) AM_WRITE(misc_control_w)
AM_RANGE(0x4e0000, 0x4e0001) AM_WRITE(disk_control_w)
AM_RANGE(0x800000, 0xbfffff) AM_MIRROR(0x7fc000) AM_ROM AM_REGION("bootrom", 0)
- AM_RANGE(0xe10000, 0xe10007) AM_DEVREADWRITE8_LEGACY("wd2797", wd17xx_r, wd17xx_w, 0x00ff)
+ AM_RANGE(0xe10000, 0xe10007) AM_DEVREADWRITE8("wd2797", wd2797_device, read, write, 0x00ff)
AM_RANGE(0xe43000, 0xe43001) AM_WRITE(romlmap_w)
ADDRESS_MAP_END
diff --git a/src/mess/drivers/vector06.c b/src/mess/drivers/vector06.c
index 4ada3fcd1b6..9b811e74bc3 100644
--- a/src/mess/drivers/vector06.c
+++ b/src/mess/drivers/vector06.c
@@ -23,10 +23,10 @@ static ADDRESS_MAP_START(vector06_io, AS_IO, 8, vector06_state)
AM_RANGE( 0x00, 0x03) AM_READWRITE(vector06_8255_1_r, vector06_8255_1_w )
AM_RANGE( 0x04, 0x07) AM_READWRITE(vector06_8255_2_r, vector06_8255_2_w )
AM_RANGE( 0x0C, 0x0C) AM_WRITE(vector06_color_set)
- AM_RANGE( 0x18, 0x18) AM_DEVREADWRITE_LEGACY("wd1793", wd17xx_data_r,wd17xx_data_w)
- AM_RANGE( 0x19, 0x19) AM_DEVREADWRITE_LEGACY("wd1793", wd17xx_sector_r,wd17xx_sector_w)
- AM_RANGE( 0x1A, 0x1A) AM_DEVREADWRITE_LEGACY("wd1793", wd17xx_track_r,wd17xx_track_w)
- AM_RANGE( 0x1B, 0x1B) AM_DEVREADWRITE_LEGACY("wd1793", wd17xx_status_r,wd17xx_command_w)
+ AM_RANGE( 0x18, 0x18) AM_DEVREADWRITE("wd1793", fd1793_device, data_r, data_w)
+ AM_RANGE( 0x19, 0x19) AM_DEVREADWRITE("wd1793", fd1793_device, sector_r, sector_w)
+ AM_RANGE( 0x1A, 0x1A) AM_DEVREADWRITE("wd1793", fd1793_device, track_r, track_w)
+ AM_RANGE( 0x1B, 0x1B) AM_DEVREADWRITE("wd1793", fd1793_device, status_r, command_w)
AM_RANGE( 0x1C, 0x1C) AM_WRITE(vector06_disc_w)
ADDRESS_MAP_END
diff --git a/src/mess/drivers/x1.c b/src/mess/drivers/x1.c
index 2c57abf38fa..4571a4f32f1 100644
--- a/src/mess/drivers/x1.c
+++ b/src/mess/drivers/x1.c
@@ -995,13 +995,13 @@ READ8_MEMBER( x1_state::x1_fdc_r )
switch(offset+0xff8)
{
case 0x0ff8:
- return wd17xx_status_r(m_fdc,space, offset);
+ return m_fdc->status_r(space, offset);
case 0x0ff9:
- return wd17xx_track_r(m_fdc,space, offset);
+ return m_fdc->track_r(space, offset);
case 0x0ffa:
- return wd17xx_sector_r(m_fdc,space, offset);
+ return m_fdc->sector_r(space, offset);
case 0x0ffb:
- return wd17xx_data_r(m_fdc,space, offset);
+ return m_fdc->data_r(space, offset);
case 0x0ffc:
printf("FDC: read FM type\n");
return 0xff;
@@ -1024,22 +1024,22 @@ WRITE8_MEMBER( x1_state::x1_fdc_w )
switch(offset+0xff8)
{
case 0x0ff8:
- wd17xx_command_w(m_fdc,space, offset,data);
+ m_fdc->command_w(space, offset,data);
break;
case 0x0ff9:
- wd17xx_track_w(m_fdc,space, offset,data);
+ m_fdc->track_w(space, offset,data);
break;
case 0x0ffa:
- wd17xx_sector_w(m_fdc,space, offset,data);
+ m_fdc->sector_w(space, offset,data);
break;
case 0x0ffb:
- wd17xx_data_w(m_fdc,space, offset,data);
+ m_fdc->data_w(space, offset,data);
break;
case 0x0ffc:
- wd17xx_set_drive(m_fdc,data & 3);
+ m_fdc->set_drive(data & 3);
floppy_mon_w(floppy_get_device(machine(), data & 3), !BIT(data, 7));
floppy_drive_set_ready_state(floppy_get_device(machine(), data & 3), data & 0x80,0);
- wd17xx_set_side(m_fdc, BIT(data, 4));
+ m_fdc->set_side(BIT(data, 4));
break;
case 0x0ffd:
case 0x0ffe:
diff --git a/src/mess/drivers/z100.c b/src/mess/drivers/z100.c
index 0ce1dc9dbfa..ed97b353bbd 100644
--- a/src/mess/drivers/z100.c
+++ b/src/mess/drivers/z100.c
@@ -358,10 +358,10 @@ READ8_MEMBER( z100_state::z207_fdc_r )
switch(offset)
{
- case 0: res = wd17xx_status_r(m_fdc,space, offset); break;
- case 1: res = wd17xx_track_r(m_fdc,space, offset); break;
- case 2: res = wd17xx_sector_r(m_fdc,space, offset); break;
- case 3: res = wd17xx_data_r(m_fdc,space, offset); break;
+ case 0: res = m_fdc->status_r(space, offset); break;
+ case 1: res = m_fdc->track_r(space, offset); break;
+ case 2: res = m_fdc->sector_r(space, offset); break;
+ case 3: res = m_fdc->data_r(space, offset); break;
}
return res;
@@ -371,12 +371,12 @@ WRITE8_MEMBER( z100_state::z207_fdc_w )
{
switch(offset)
{
- case 0: wd17xx_command_w(m_fdc,space, offset,data); break;
- case 1: wd17xx_track_w(m_fdc,space, offset,data); break;
- case 2: wd17xx_sector_w(m_fdc,space, offset,data); break;
- case 3: wd17xx_data_w(m_fdc,space, offset,data); break;
+ case 0: m_fdc->command_w(space, offset,data); break;
+ case 1: m_fdc->track_w(space, offset,data); break;
+ case 2: m_fdc->sector_w(space, offset,data); break;
+ case 3: m_fdc->data_w(space, offset,data); break;
case 4: // disk control
- wd17xx_set_drive(m_fdc,data & 3);
+ m_fdc->set_drive(data & 3);
m_z207_cur_drive = data & 3;
break;
case 5: // aux control
diff --git a/src/mess/drivers/z80ne.c b/src/mess/drivers/z80ne.c
index 42ed4b570a2..bf603b4f6b7 100644
--- a/src/mess/drivers/z80ne.c
+++ b/src/mess/drivers/z80ne.c
@@ -98,9 +98,6 @@
#include "formats/z80ne_dsk.h"
#include "machine/ram.h"
-/* peripheral chips */
-#include "machine/wd17xx.h"
-
/* Layout */
#include "z80ne.lh"
#include "z80net.lh"