diff options
Diffstat (limited to 'src/devices/bus/bbc/fdc/fdc.cpp')
-rw-r--r-- | src/devices/bus/bbc/fdc/fdc.cpp | 51 |
1 files changed, 14 insertions, 37 deletions
diff --git a/src/devices/bus/bbc/fdc/fdc.cpp b/src/devices/bus/bbc/fdc/fdc.cpp index 2269bb3370a..e13993d7b11 100644 --- a/src/devices/bus/bbc/fdc/fdc.cpp +++ b/src/devices/bus/bbc/fdc/fdc.cpp @@ -25,8 +25,8 @@ DEFINE_DEVICE_TYPE(BBC_FDC_SLOT, bbc_fdc_slot_device, "bbc_fdc_slot", "BBC Micro // device_bbc_fdc_interface - constructor //------------------------------------------------- -device_bbc_fdc_interface::device_bbc_fdc_interface(const machine_config &mconfig, device_t &device) - : device_slot_card_interface(mconfig, device) +device_bbc_fdc_interface::device_bbc_fdc_interface(const machine_config &mconfig, device_t &device) : + device_interface(device, "bbcfdc") { m_slot = dynamic_cast<bbc_fdc_slot_device *>(device.owner()); } @@ -42,47 +42,22 @@ device_bbc_fdc_interface::device_bbc_fdc_interface(const machine_config &mconfig bbc_fdc_slot_device::bbc_fdc_slot_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) : device_t(mconfig, BBC_FDC_SLOT, tag, owner, clock), - device_slot_interface(mconfig, *this), + device_single_card_slot_interface<device_bbc_fdc_interface>(mconfig, *this), m_card(nullptr), m_intrq_cb(*this), - m_drq_cb(*this) + m_drq_cb(*this), + m_insert_rom(true) { } //------------------------------------------------- -// device_validity_check - -//------------------------------------------------- - -void bbc_fdc_slot_device::device_validity_check(validity_checker &valid) const -{ - device_t *const carddev = get_card_device(); - if (carddev && !dynamic_cast<device_bbc_fdc_interface *>(carddev)) - osd_printf_error("Card device %s (%s) does not implement device_bbc_fdc_interface\n", carddev->tag(), carddev->name()); -} - -//------------------------------------------------- // device_start - device-specific startup //------------------------------------------------- void bbc_fdc_slot_device::device_start() { - device_t *const carddev = get_card_device(); - m_card = dynamic_cast<device_bbc_fdc_interface *>(get_card_device()); - if (carddev && !m_card) - osd_printf_error("Card device %s (%s) does not implement device_bbc_fdc_interface\n", carddev->tag(), carddev->name()); - - // resolve callbacks - m_intrq_cb.resolve_safe(); - m_drq_cb.resolve_safe(); -} - -//------------------------------------------------- -// device_reset - device-specific reset -//------------------------------------------------- - -void bbc_fdc_slot_device::device_reset() -{ + m_card = get_card_device(); } //------------------------------------------------- @@ -117,9 +92,10 @@ void bbc_fdc_slot_device::write(offs_t offset, uint8_t data) #include "ams.h" #include "cumana.h" #include "cv1797.h" -#include "microware.h" +#include "kenda.h" #include "opus.h" -//#include "solidisk.h" +#include "solidisk.h" +#include "udm.h" #include "watford.h" @@ -131,14 +107,15 @@ void bbc_fdc_devices(device_slot_interface &device) device.option_add("cumana1", BBC_CUMANA1); device.option_add("cumana2", BBC_CUMANA2); device.option_add("cv1797", BBC_CV1797); - device.option_add("microware", BBC_MICROWARE); + device.option_add("kenda", BBC_KENDA); device.option_add("opus8272", BBC_OPUS8272); device.option_add("opus2791", BBC_OPUS2791); device.option_add("opus2793", BBC_OPUS2793); device.option_add("opus1770", BBC_OPUS1770); - //device.option_add("stl8271", BBC_STL8271); - //device.option_add("stl1770_1", BBC_STL1770_1); - //device.option_add("stl1770_2", BBC_STL1770_2); + device.option_add("stl1770_1", BBC_STL1770_1); + device.option_add("stl1770_2", BBC_STL1770_2); + device.option_add("stldfdc_1", BBC_STLDFDC_1); + device.option_add("udm", BBC_UDM); device.option_add("weddb2", BBC_WEDDB2); device.option_add("weddb3", BBC_WEDDB3); } |