diff options
author | Nigel Barnes <Pernod70@users.noreply.github.com> | 2020-03-15 19:24:32 +0000 |
---|---|---|
committer | Nigel Barnes <Pernod70@users.noreply.github.com> | 2020-03-15 19:34:46 +0000 |
commit | ba827829eca9d7afcc10388a1f3eeb1fbc4abb5b (patch) | |
tree | 29085c76cb58b71361aa10595fbbb2b99d2d2d37 | |
parent | 1a2b4cb540109d109eda1a43edfc4a64d0d6a8c1 (diff) |
bus/bbc/fdc: Added insert_rom property to optionally insert any support roms, and cleanups (nw)
-rw-r--r-- | src/devices/bus/bbc/fdc/acorn.cpp | 8 | ||||
-rw-r--r-- | src/devices/bus/bbc/fdc/ams.cpp | 7 | ||||
-rw-r--r-- | src/devices/bus/bbc/fdc/cumana.cpp | 10 | ||||
-rw-r--r-- | src/devices/bus/bbc/fdc/cv1797.cpp | 10 | ||||
-rw-r--r-- | src/devices/bus/bbc/fdc/fdc.cpp | 3 | ||||
-rw-r--r-- | src/devices/bus/bbc/fdc/fdc.h | 6 | ||||
-rw-r--r-- | src/devices/bus/bbc/fdc/microware.cpp | 7 | ||||
-rw-r--r-- | src/devices/bus/bbc/fdc/opus.cpp | 8 | ||||
-rw-r--r-- | src/devices/bus/bbc/fdc/watford.cpp | 12 |
9 files changed, 54 insertions, 17 deletions
diff --git a/src/devices/bus/bbc/fdc/acorn.cpp b/src/devices/bus/bbc/fdc/acorn.cpp index e5042ae0411..39b3cb08dc8 100644 --- a/src/devices/bus/bbc/fdc/acorn.cpp +++ b/src/devices/bus/bbc/fdc/acorn.cpp @@ -20,7 +20,7 @@ DEFINE_DEVICE_TYPE(BBC_ACORN1770, bbc_acorn1770_device, "bbc_acorn1770", "Acorn //------------------------------------------------- -// MACHINE_DRIVER( acorn ) +// FLOPPY_FORMATS( floppy_formats ) //------------------------------------------------- FLOPPY_FORMATS_MEMBER( bbc_acorn8271_device::floppy_formats ) @@ -30,7 +30,7 @@ FLOPPY_FORMATS_MEMBER( bbc_acorn8271_device::floppy_formats ) FLOPPY_ACORN_DOS_FORMAT, FLOPPY_FSD_FORMAT, FLOPPY_PC_FORMAT -FLOPPY_FORMATS_END0 +FLOPPY_FORMATS_END static void bbc_floppies_525(device_slot_interface &device) { @@ -41,6 +41,10 @@ static void bbc_floppies_525(device_slot_interface &device) device.option_add("525qd", FLOPPY_525_QD); } +//------------------------------------------------- +// ROM( acorn ) +//------------------------------------------------- + ROM_START( acorn8271 ) ROM_REGION(0x4000, "dfs_rom", 0) ROM_DEFAULT_BIOS("dnfs120") diff --git a/src/devices/bus/bbc/fdc/ams.cpp b/src/devices/bus/bbc/fdc/ams.cpp index db9eb7e3012..dae78e8486e 100644 --- a/src/devices/bus/bbc/fdc/ams.cpp +++ b/src/devices/bus/bbc/fdc/ams.cpp @@ -19,13 +19,18 @@ DEFINE_DEVICE_TYPE(BBC_AMS3, bbc_ams3_device, "bbc_ams3", "AMS 3\" Microdrive Di //------------------------------------------------- -// MACHINE_DRIVER( ams3 ) +// FLOPPY_FORMATS( ams3 ) //------------------------------------------------- FLOPPY_FORMATS_MEMBER( bbc_ams3_device::floppy_formats ) FLOPPY_ACORN_SSD_FORMAT FLOPPY_FORMATS_END + +//------------------------------------------------- +// ROM( ams3 ) +//------------------------------------------------- + ROM_START( ams3 ) ROM_REGION(0x8000, "dfs_rom", 0) ROM_LOAD("dfs098.rom", 0x0000, 0x2000, CRC(90852e7d) SHA1(6df3552d5426f3a4625b9a0c7829bdba03f05e84)) diff --git a/src/devices/bus/bbc/fdc/cumana.cpp b/src/devices/bus/bbc/fdc/cumana.cpp index f4490b1922d..0194e797c4b 100644 --- a/src/devices/bus/bbc/fdc/cumana.cpp +++ b/src/devices/bus/bbc/fdc/cumana.cpp @@ -22,14 +22,14 @@ DEFINE_DEVICE_TYPE(BBC_CUMANA2, bbc_cumana2_device, "bbc_cumana2", "Cumana QFS I //------------------------------------------------- -// MACHINE_DRIVER( cumana ) +// FLOPPY_FORMATS( floppy_formats ) //------------------------------------------------- FLOPPY_FORMATS_MEMBER( bbc_cumanafdc_device::floppy_formats ) FLOPPY_ACORN_SSD_FORMAT, FLOPPY_ACORN_DSD_FORMAT, FLOPPY_FSD_FORMAT -FLOPPY_FORMATS_END0 +FLOPPY_FORMATS_END static void bbc_floppies_525(device_slot_interface &device) { @@ -40,6 +40,10 @@ static void bbc_floppies_525(device_slot_interface &device) device.option_add("525qd", FLOPPY_525_QD); } +//------------------------------------------------- +// ROM( cumana ) +//------------------------------------------------- + ROM_START( cumana1 ) ROM_REGION(0x4000, "dfs_rom", 0) ROM_DEFAULT_BIOS("qfs102") @@ -192,7 +196,7 @@ void bbc_cumanafdc_device::write(offs_t offset, uint8_t data) m_fdc->dden_w(BIT(data, 2)); } // bit 3: reset - if (BIT(data, 3)) m_fdc->soft_reset(); + m_fdc->mr_w(!BIT(data, 3)); // bit 4: interrupt enable m_fdc_ie = BIT(data, 4); diff --git a/src/devices/bus/bbc/fdc/cv1797.cpp b/src/devices/bus/bbc/fdc/cv1797.cpp index d14098a3fa3..cc29926e692 100644 --- a/src/devices/bus/bbc/fdc/cv1797.cpp +++ b/src/devices/bus/bbc/fdc/cv1797.cpp @@ -21,14 +21,14 @@ DEFINE_DEVICE_TYPE(BBC_CV1797, bbc_cv1797_device, "bbc_cv1797", "Computer Villa //------------------------------------------------- -// MACHINE_DRIVER( cv1797 ) +// FLOPPY_FORMATS( floppy_formats ) //------------------------------------------------- FLOPPY_FORMATS_MEMBER( bbc_cv1797_device::floppy_formats ) FLOPPY_ACORN_SSD_FORMAT, FLOPPY_ACORN_DSD_FORMAT, FLOPPY_FSD_FORMAT -FLOPPY_FORMATS_END0 +FLOPPY_FORMATS_END static void bbc_floppies_525(device_slot_interface &device) { @@ -39,6 +39,10 @@ static void bbc_floppies_525(device_slot_interface &device) device.option_add("525qd", FLOPPY_525_QD); } +//------------------------------------------------- +// ROM( cv1797 ) +//------------------------------------------------- + ROM_START( cv1797 ) ROM_REGION(0x4000, "dfs_rom", 0) ROM_DEFAULT_BIOS("lvldos") @@ -143,7 +147,7 @@ void bbc_cv1797_device::write(offs_t offset, uint8_t data) m_fdc->dden_w(!BIT(data, 2)); // bit 6: reset - //if (BIT(data, 6)) m_fdc->soft_reset(); + //m_fdc->mr_w(!BIT(data, 6)); } } diff --git a/src/devices/bus/bbc/fdc/fdc.cpp b/src/devices/bus/bbc/fdc/fdc.cpp index 6c9e4b152c4..fb5f88f153f 100644 --- a/src/devices/bus/bbc/fdc/fdc.cpp +++ b/src/devices/bus/bbc/fdc/fdc.cpp @@ -45,7 +45,8 @@ bbc_fdc_slot_device::bbc_fdc_slot_device(const machine_config &mconfig, const ch 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) { } diff --git a/src/devices/bus/bbc/fdc/fdc.h b/src/devices/bus/bbc/fdc/fdc.h index 2662919edbd..7138ced7ad1 100644 --- a/src/devices/bus/bbc/fdc/fdc.h +++ b/src/devices/bus/bbc/fdc/fdc.h @@ -33,10 +33,14 @@ public: slot_options(*this); set_default_option(default_option); set_fixed(false); + set_insert_rom(true); } bbc_fdc_slot_device(machine_config const &mconfig, char const *tag, device_t *owner, uint32_t clock); + void set_insert_rom(bool insert_rom) { m_insert_rom = insert_rom; } + bool insert_rom() { return m_insert_rom; } + // callbacks auto intrq_wr_callback() { return m_intrq_cb.bind(); } auto drq_wr_callback() { return m_drq_cb.bind(); } @@ -56,6 +60,8 @@ protected: private: devcb_write_line m_intrq_cb; devcb_write_line m_drq_cb; + + bool m_insert_rom; }; diff --git a/src/devices/bus/bbc/fdc/microware.cpp b/src/devices/bus/bbc/fdc/microware.cpp index 477ac0f3f9e..01a183300ee 100644 --- a/src/devices/bus/bbc/fdc/microware.cpp +++ b/src/devices/bus/bbc/fdc/microware.cpp @@ -21,7 +21,7 @@ DEFINE_DEVICE_TYPE(BBC_MICROWARE, bbc_microware_device, "bbc_microware", "Microw //------------------------------------------------- -// MACHINE_DRIVER( microware ) +// FLOPPY_FORMATS( microware ) //------------------------------------------------- FLOPPY_FORMATS_MEMBER( bbc_microware_device::floppy_formats ) @@ -39,6 +39,11 @@ static void bbc_floppies_525(device_slot_interface &device) device.option_add("525qd", FLOPPY_525_QD); } + +//------------------------------------------------- +// ROM( microware ) +//------------------------------------------------- + ROM_START( microware ) ROM_REGION(0x4000, "dfs_rom", 0) ROM_DEFAULT_BIOS("udm200") diff --git a/src/devices/bus/bbc/fdc/opus.cpp b/src/devices/bus/bbc/fdc/opus.cpp index f6b07df6bcb..43425182fba 100644 --- a/src/devices/bus/bbc/fdc/opus.cpp +++ b/src/devices/bus/bbc/fdc/opus.cpp @@ -28,7 +28,7 @@ DEFINE_DEVICE_TYPE(BBC_OPUS1770, bbc_opus1770_device, "bbc_opus1770", "Opus D-DO //------------------------------------------------- -// MACHINE_DRIVER( opus2791 ) +// FLOPPY_FORMATS( floppy_formats ) //------------------------------------------------- FLOPPY_FORMATS_MEMBER( bbc_opusfdc_device::floppy_formats ) @@ -37,7 +37,7 @@ FLOPPY_FORMATS_MEMBER( bbc_opusfdc_device::floppy_formats ) FLOPPY_FSD_FORMAT, FLOPPY_OPUS_DDOS_FORMAT, FLOPPY_OPUS_DDCPM_FORMAT -FLOPPY_FORMATS_END0 +FLOPPY_FORMATS_END static void bbc_floppies_525(device_slot_interface &device) { @@ -48,6 +48,10 @@ static void bbc_floppies_525(device_slot_interface &device) device.option_add("525qd", FLOPPY_525_QD); } +//------------------------------------------------- +// ROM( opus ) +//------------------------------------------------- + ROM_START( opus8272 ) ROM_REGION(0x4000, "dfs_rom", 0) ROM_DEFAULT_BIOS("ddos305") diff --git a/src/devices/bus/bbc/fdc/watford.cpp b/src/devices/bus/bbc/fdc/watford.cpp index 4c3f31344ee..9a0764e604b 100644 --- a/src/devices/bus/bbc/fdc/watford.cpp +++ b/src/devices/bus/bbc/fdc/watford.cpp @@ -24,14 +24,14 @@ DEFINE_DEVICE_TYPE(BBC_WEDDB3, bbc_weddb3_device, "bbc_weddb3", "Watford Electro //------------------------------------------------- -// MACHINE_DRIVER( watford ) +// FLOPPY_FORMATS( floppy_formats ) //------------------------------------------------- FLOPPY_FORMATS_MEMBER( bbc_watfordfdc_device::floppy_formats ) FLOPPY_ACORN_SSD_FORMAT, FLOPPY_ACORN_DSD_FORMAT, FLOPPY_FSD_FORMAT -FLOPPY_FORMATS_END0 +FLOPPY_FORMATS_END static void bbc_floppies_525(device_slot_interface &device) { @@ -42,6 +42,10 @@ static void bbc_floppies_525(device_slot_interface &device) device.option_add("525qd", FLOPPY_525_QD); } +//------------------------------------------------- +// ROM( watford ) +//------------------------------------------------- + ROM_START( weddb2 ) ROM_REGION(0x4000, "dfs_rom", 0) ROM_DEFAULT_BIOS("ddfs153") @@ -188,7 +192,7 @@ void bbc_weddb2_device::write(offs_t offset, uint8_t data) floppy->ss_w(BIT(data, 1)); // bit 3: reset - if (!BIT(data, 3)) m_fdc->soft_reset(); + m_fdc->mr_w(BIT(data, 3)); } } @@ -232,6 +236,6 @@ void bbc_weddb3_device::write(offs_t offset, uint8_t data) m_fdc->dden_w(BIT(data, 3)); // bit 5: reset - if (!BIT(data, 5)) m_fdc->soft_reset(); + m_fdc->mr_w(BIT(data, 5)); } } |