diff options
author | 2014-03-18 13:31:41 +0000 | |
---|---|---|
committer | 2014-03-18 13:31:41 +0000 | |
commit | 59674b3fdf7b4c909a054c342fae590f7329445c (patch) | |
tree | 689decb8a5db028decb5589db738b022e570cd16 /src/emu/bus/coco | |
parent | e1af1a20967b33ee7b320ba451efb752a862c3c4 (diff) |
legacy wd17xx is now also a modern device (nw)
Diffstat (limited to 'src/emu/bus/coco')
-rw-r--r-- | src/emu/bus/coco/coco_fdc.c | 49 | ||||
-rw-r--r-- | src/emu/bus/coco/coco_fdc.h | 4 |
2 files changed, 27 insertions, 26 deletions
diff --git a/src/emu/bus/coco/coco_fdc.c b/src/emu/bus/coco/coco_fdc.c index d8e559c371a..50beb87a2e9 100644 --- a/src/emu/bus/coco/coco_fdc.c +++ b/src/emu/bus/coco/coco_fdc.c @@ -70,7 +70,6 @@ #include "coco_fdc.h" #include "imagedev/flopdrv.h" #include "includes/coco.h" -#include "machine/wd17xx.h" #include "imagedev/flopdrv.h" #include "formats/coco_dsk.h" @@ -200,7 +199,7 @@ void coco_fdc_device::device_start() m_drq = 1; m_disto_msm6242 = subdevice<msm6242_device>(DISTO_TAG); m_ds1315 = subdevice<ds1315_device>(CLOUD9_TAG); - m_wd17xx = subdevice(WD_TAG); + m_wd17xx = subdevice<wd2797_device>(WD_TAG); m_dskreg = 0x00; m_intrq = 0; m_msm6242_rtc_address = 0; @@ -312,9 +311,9 @@ void coco_fdc_device::dskreg_w(UINT8 data) update_lines(); - wd17xx_set_drive(m_wd17xx, drive); - wd17xx_set_side(m_wd17xx, head); - wd17xx_dden_w(m_wd17xx, !BIT(m_dskreg, 5)); + m_wd17xx->set_drive(drive); + m_wd17xx->set_side(head); + m_wd17xx->dden_w(!BIT(m_dskreg, 5)); } /*------------------------------------------------- @@ -328,16 +327,16 @@ READ8_MEMBER(coco_fdc_device::read) switch(offset & 0xEF) { case 8: - result = wd17xx_status_r(m_wd17xx, space, 0); + result = m_wd17xx->status_r(space, 0); break; case 9: - result = wd17xx_track_r(m_wd17xx, space, 0); + result = m_wd17xx->track_r(space, 0); break; case 10: - result = wd17xx_sector_r(m_wd17xx, space, 0); + result = m_wd17xx->sector_r(space, 0); break; case 11: - result = wd17xx_data_r(m_wd17xx, space, 0); + result = m_wd17xx->data_r(space, 0); break; } @@ -382,16 +381,16 @@ WRITE8_MEMBER(coco_fdc_device::write) dskreg_w(data); break; case 8: - wd17xx_command_w(m_wd17xx, space, 0, data); + m_wd17xx->command_w(space, 0, data); break; case 9: - wd17xx_track_w(m_wd17xx, space, 0, data); + m_wd17xx->track_w(space, 0, data); break; case 10: - wd17xx_sector_w(m_wd17xx, space, 0, data); + m_wd17xx->sector_w(space, 0, data); break; case 11: - wd17xx_data_w(m_wd17xx, space, 0, data); + m_wd17xx->data_w(space, 0, data); break; }; @@ -448,7 +447,7 @@ void dragon_fdc_device::device_start() { m_owner = dynamic_cast<cococart_slot_device *>(owner()); m_drq = 0; - m_wd17xx = subdevice(WD_TAG); + m_wd17xx = subdevice<wd2797_device>(WD_TAG); m_dskreg = 0x00; m_intrq = 0; m_msm6242_rtc_address = 0; @@ -514,9 +513,9 @@ void dragon_fdc_device::dskreg_w(UINT8 data) } if (data & 0x04) - wd17xx_set_drive(m_wd17xx, data & 0x03); + m_wd17xx->set_drive(data & 0x03); - wd17xx_dden_w(m_wd17xx, BIT(data, 3)); + m_wd17xx->dden_w(BIT(data, 3)); m_dskreg = data; } @@ -532,16 +531,16 @@ READ8_MEMBER(dragon_fdc_device::read) switch(offset & 0xEF) { case 0: - result = wd17xx_status_r(m_wd17xx, space, 0); + result = m_wd17xx->status_r(space, 0); break; case 1: - result = wd17xx_track_r(m_wd17xx, space, 0); + result = m_wd17xx->track_r(space, 0); break; case 2: - result = wd17xx_sector_r(m_wd17xx, space, 0); + result = m_wd17xx->sector_r(space, 0); break; case 3: - result = wd17xx_data_r(m_wd17xx, space, 0); + result = m_wd17xx->data_r(space, 0); break; } return result; @@ -558,21 +557,21 @@ WRITE8_MEMBER(dragon_fdc_device::write) switch(offset & 0xEF) { case 0: - wd17xx_command_w(m_wd17xx, space, 0, data); + m_wd17xx->command_w(space, 0, data); /* disk head is encoded in the command byte */ /* Only for type 3 & 4 commands */ if (data & 0x80) - wd17xx_set_side(m_wd17xx, (data & 0x02) ? 1 : 0); + m_wd17xx->set_side((data & 0x02) ? 1 : 0); break; case 1: - wd17xx_track_w(m_wd17xx, space, 0, data); + m_wd17xx->track_w(space, 0, data); break; case 2: - wd17xx_sector_w(m_wd17xx, space, 0, data); + m_wd17xx->sector_w(space, 0, data); break; case 3: - wd17xx_data_w(m_wd17xx, space, 0, data); + m_wd17xx->data_w(space, 0, data); break; case 8: case 9: case 10: case 11: case 12: case 13: case 14: case 15: diff --git a/src/emu/bus/coco/coco_fdc.h b/src/emu/bus/coco/coco_fdc.h index 6e82ca4646d..ae4155060db 100644 --- a/src/emu/bus/coco/coco_fdc.h +++ b/src/emu/bus/coco/coco_fdc.h @@ -7,6 +7,8 @@ #include "cococart.h" #include "machine/msm6242.h" #include "machine/ds1315.h" +#include "machine/wd17xx.h" + //************************************************************************** // TYPE DEFINITIONS @@ -62,7 +64,7 @@ protected: UINT8 m_drq : 1; UINT8 m_intrq : 1; - device_t *m_wd17xx; /* WD17xx */ + wd2797_device *m_wd17xx; /* WD17xx */ ds1315_device *m_ds1315; /* DS1315 */ /* Disto RTC */ |