summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/bbc
diff options
context:
space:
mode:
author Nigel Barnes <Pernod70@users.noreply.github.com>2018-11-18 16:40:56 +0000
committer Nigel Barnes <Pernod70@users.noreply.github.com>2018-11-18 18:00:37 +0000
commit2047104b856f908f1dfba16de26de3a7cb71fd40 (patch)
treee5b31e3321d431c43bae5de57822dce59bd0a41b /src/devices/bus/bbc
parent8446d1244fbbbd77e45337072054319e8bd37142 (diff)
bbc: ROMs required by expansion devices are now allocated empty slots in host machine at startup.
- Removed machine().root_device() from all bbc expansion devices. - Added configuration option to fit Econet upgrade. - Added OS 0.92 as BIOS option in bbca and bbcb - Added Opus Challenger ADFS 1MHz bus device (Master only). - Moved torch MCP ROMs to bbc_tube_zep100 device, to be inserted at startup. bbc_acorn8271: Removed lesser known DFS ROMs, they are now softlisted if required. bbc_opus8272: Added Opus DDOS 3.05. bbc_opus2791: Added Opus DDOS 3.12.
Diffstat (limited to 'src/devices/bus/bbc')
-rw-r--r--src/devices/bus/bbc/1mhzbus/1mhzbus.cpp3
-rw-r--r--src/devices/bus/bbc/1mhzbus/opus3.cpp50
-rw-r--r--src/devices/bus/bbc/1mhzbus/opus3.h20
-rw-r--r--src/devices/bus/bbc/analogue/bitstik.cpp17
-rw-r--r--src/devices/bus/bbc/analogue/bitstik.h2
-rw-r--r--src/devices/bus/bbc/exp/mertec.cpp12
-rw-r--r--src/devices/bus/bbc/exp/mertec.h1
-rw-r--r--src/devices/bus/bbc/fdc/acorn.cpp92
-rw-r--r--src/devices/bus/bbc/fdc/acorn.h7
-rw-r--r--src/devices/bus/bbc/fdc/ams.cpp18
-rw-r--r--src/devices/bus/bbc/fdc/ams.h2
-rw-r--r--src/devices/bus/bbc/fdc/cumana.cpp10
-rw-r--r--src/devices/bus/bbc/fdc/cumana.h3
-rw-r--r--src/devices/bus/bbc/fdc/cv1797.cpp24
-rw-r--r--src/devices/bus/bbc/fdc/cv1797.h4
-rw-r--r--src/devices/bus/bbc/fdc/fdc.cpp2
-rw-r--r--src/devices/bus/bbc/fdc/microware.cpp24
-rw-r--r--src/devices/bus/bbc/fdc/microware.h4
-rw-r--r--src/devices/bus/bbc/fdc/opus.cpp52
-rw-r--r--src/devices/bus/bbc/fdc/opus.h8
-rw-r--r--src/devices/bus/bbc/fdc/watford.cpp34
-rw-r--r--src/devices/bus/bbc/fdc/watford.h7
-rw-r--r--src/devices/bus/bbc/tube/tube_casper.cpp16
-rw-r--r--src/devices/bus/bbc/tube/tube_casper.h2
-rw-r--r--src/devices/bus/bbc/tube/tube_zep100.cpp50
-rw-r--r--src/devices/bus/bbc/tube/tube_zep100.h5
-rw-r--r--src/devices/bus/bbc/userport/beebspch.cpp12
-rw-r--r--src/devices/bus/bbc/userport/beebspch.h2
28 files changed, 135 insertions, 348 deletions
diff --git a/src/devices/bus/bbc/1mhzbus/1mhzbus.cpp b/src/devices/bus/bbc/1mhzbus/1mhzbus.cpp
index 138926a219a..9cf6342cab0 100644
--- a/src/devices/bus/bbc/1mhzbus/1mhzbus.cpp
+++ b/src/devices/bus/bbc/1mhzbus/1mhzbus.cpp
@@ -175,8 +175,9 @@ void bbcm_1mhzbus_devices(device_slot_interface &device)
//device.option_add("m5000", BBC_M5000); /* Hybrid Music 5000 Synthesiser */
//device.option_add("m87", BBC_M87); /* Peartree Music 87 Synthesiser */
//device.option_add("multiform", BBC_MULTIFORM); /* Technomatic Multiform Z80 */
- //device.option_add("opusa", BBC_OPUSA); /* Opus Challenger ADFS */
+ device.option_add("opusa", BBC_OPUSA); /* Opus Challenger ADFS */
//device.option_add("ramdisc", BBC_RAMDISC); /* Morley Electronics RAM Disc */
+ //device.option_add("graduate", BBC_GRADUATE); /* The Torch Graduate G400/G800 */
device.option_add("beebsid", BBC_BEEBSID); /* BeebSID */
//device.option_add("prisma3", BBC_PRISMA3); /* PRISMA-3 - Millipede 1989 */
device.option_add("cfa3000opt", CFA3000_OPT); /* Henson CFA 3000 Option Board */
diff --git a/src/devices/bus/bbc/1mhzbus/opus3.cpp b/src/devices/bus/bbc/1mhzbus/opus3.cpp
index 0b39d5993ff..65a8a3134ec 100644
--- a/src/devices/bus/bbc/1mhzbus/opus3.cpp
+++ b/src/devices/bus/bbc/1mhzbus/opus3.cpp
@@ -46,6 +46,7 @@
//**************************************************************************
DEFINE_DEVICE_TYPE(BBC_OPUS3, bbc_opus3_device, "bbc_opus3", "Opus Challenger 3-in-1")
+DEFINE_DEVICE_TYPE(BBC_OPUSA, bbc_opusa_device, "bbc_opusa", "Opus Challenger ADFS")
//-------------------------------------------------
@@ -55,6 +56,8 @@ DEFINE_DEVICE_TYPE(BBC_OPUS3, bbc_opus3_device, "bbc_opus3", "Opus Challenger 3-
FLOPPY_FORMATS_MEMBER(bbc_opus3_device::floppy_formats)
FLOPPY_ACORN_SSD_FORMAT,
FLOPPY_ACORN_DSD_FORMAT,
+ FLOPPY_ACORN_ADFS_OLD_FORMAT,
+ FLOPPY_ACORN_DOS_FORMAT,
FLOPPY_FSD_FORMAT,
FLOPPY_OPUS_DDOS_FORMAT,
FLOPPY_OPUS_DDCPM_FORMAT
@@ -67,7 +70,7 @@ void bbc_floppies(device_slot_interface &device)
ROM_START( opus3 )
- ROM_REGION(0x4000, "dfs_rom", 0)
+ ROM_REGION(0x4000, "exp_rom", 0)
ROM_DEFAULT_BIOS("ch103")
ROM_SYSTEM_BIOS(0, "ch100", "Challenger 1.00")
ROMX_LOAD("chal100.rom", 0x0000, 0x4000, CRC(740a8335) SHA1(f3c75c21bcd7d4a4dfff922fd287230dcdb91d0e), ROM_BIOS(0))
@@ -77,6 +80,13 @@ ROM_START( opus3 )
ROMX_LOAD("chal103.rom", 0x0000, 0x4000, CRC(98367cf4) SHA1(eca3631aa420691f96b72bfdf2e9c2b613e1bf33), ROM_BIOS(2))
ROM_END
+ROM_START( opusa )
+ ROM_REGION(0x8000, "exp_rom", 0)
+ ROM_DEFAULT_BIOS("ch200")
+ ROM_SYSTEM_BIOS(0, "ch200", "Challenger ADFS")
+ ROMX_LOAD("challenger adfs_dfs.rom", 0x0000, 0x8000, CRC(e922c19a) SHA1(b9f5c749412528e4f8e9cda9f13e10f8405bb195), ROM_BIOS(0))
+ROM_END
+
//-------------------------------------------------
// device_add_mconfig - add device configuration
//-------------------------------------------------
@@ -99,6 +109,11 @@ const tiny_rom_entry *bbc_opus3_device::device_rom_region() const
return ROM_NAME( opus3 );
}
+const tiny_rom_entry *bbc_opusa_device::device_rom_region() const
+{
+ return ROM_NAME( opusa );
+}
+
//**************************************************************************
// LIVE DEVICE
//**************************************************************************
@@ -107,15 +122,24 @@ const tiny_rom_entry *bbc_opus3_device::device_rom_region() const
// bbc_opus3_device - constructor
//-------------------------------------------------
+bbc_opus3_device::bbc_opus3_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_bbc_1mhzbus_interface(mconfig, *this)
+ , m_ramdisk(*this, "ramdisk")
+ , m_fdc(*this, "wd1770")
+ , m_floppy0(*this, "wd1770:0")
+ , m_floppy1(*this, "wd1770:1")
+ , m_ramdisk_page(0)
+{
+}
+
bbc_opus3_device::bbc_opus3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : device_t(mconfig, BBC_OPUS3, tag, owner, clock),
- device_bbc_1mhzbus_interface(mconfig, *this),
- m_dfs_rom(*this, "dfs_rom"),
- m_ramdisk(*this, "ramdisk"),
- m_fdc(*this, "wd1770"),
- m_floppy0(*this, "wd1770:0"),
- m_floppy1(*this, "wd1770:1"),
- m_ramdisk_page(0)
+ : bbc_opus3_device(mconfig, BBC_OPUS3, tag, owner, clock)
+{
+}
+
+bbc_opusa_device::bbc_opusa_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
+ : bbc_opus3_device(mconfig, BBC_OPUSA, tag, owner, clock)
{
}
@@ -127,16 +151,10 @@ void bbc_opus3_device::device_start()
{
}
-//-------------------------------------------------
-// device_reset - device-specific reset
-//-------------------------------------------------
-
-void bbc_opus3_device::device_reset()
+void bbc_opusa_device::device_start()
{
- machine().root_device().membank("bank4")->configure_entry(12, memregion("dfs_rom")->base());
}
-
//**************************************************************************
// IMPLEMENTATION
//**************************************************************************
diff --git a/src/devices/bus/bbc/1mhzbus/opus3.h b/src/devices/bus/bbc/1mhzbus/opus3.h
index 1e3e1a4065d..97b3e6835ec 100644
--- a/src/devices/bus/bbc/1mhzbus/opus3.h
+++ b/src/devices/bus/bbc/1mhzbus/opus3.h
@@ -29,9 +29,10 @@ public:
bbc_opus3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
+ bbc_opus3_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
+
// device-level overrides
virtual void device_start() override;
- virtual void device_reset() override;
// optional information overrides
virtual void device_add_mconfig(machine_config &config) override;
@@ -47,7 +48,6 @@ private:
DECLARE_WRITE_LINE_MEMBER(fdc_drq_w);
- required_memory_region m_dfs_rom;
required_device<ram_device> m_ramdisk;
required_device<wd1770_device> m_fdc;
required_device<floppy_connector> m_floppy0;
@@ -59,8 +59,24 @@ private:
};
+class bbc_opusa_device : public bbc_opus3_device
+{
+public:
+ // construction/destruction
+ bbc_opusa_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+protected:
+ // device-level overrides
+ virtual void device_start() override;
+
+ // optional information overrides
+ virtual const tiny_rom_entry *device_rom_region() const override;
+};
+
+
// device type definition
DECLARE_DEVICE_TYPE(BBC_OPUS3, bbc_opus3_device)
+DECLARE_DEVICE_TYPE(BBC_OPUSA, bbc_opusa_device)
#endif // MAME_BUS_BBC_1MHZBUS_OPUS3_H
diff --git a/src/devices/bus/bbc/analogue/bitstik.cpp b/src/devices/bus/bbc/analogue/bitstik.cpp
index 42d8fff9504..1913c95c862 100644
--- a/src/devices/bus/bbc/analogue/bitstik.cpp
+++ b/src/devices/bus/bbc/analogue/bitstik.cpp
@@ -25,13 +25,13 @@ DEFINE_DEVICE_TYPE(BBC_BITSTIK2, bbc_bitstik2_device, "bbc_bitstik2", "Robo Bits
//-------------------------------------------------
ROM_START(bitstik1)
- ROM_REGION(0x4000, "rom", 0)
+ ROM_REGION(0x4000, "exp_rom", 0)
ROM_LOAD("bitstik1.rom", 0x0000, 0x2000, CRC(a3c539f8) SHA1(c6f2cf2f6d1e48819a8381c6a1c97ca8fa5ab117))
ROM_RELOAD(0x2000, 0x2000)
ROM_END
ROM_START(bitstik2)
- ROM_REGION(0x4000, "rom", 0)
+ ROM_REGION(0x4000, "exp_rom", 0)
ROM_LOAD("bitstik2.rom", 0x0000, 0x2000, CRC(a2b5a743) SHA1(4d0040af6bdc6a587e42d4aa36d528b768cf9549))
ROM_RELOAD(0x2000, 0x2000)
ROM_END
@@ -93,8 +93,7 @@ bbc_bitstik_device::bbc_bitstik_device(const machine_config &mconfig, device_typ
device_t(mconfig, type, tag, owner, clock),
device_bbc_analogue_interface(mconfig, *this),
m_channel(*this, "CHANNEL%u", 0),
- m_buttons(*this, "BUTTONS"),
- m_rom(*this, "rom")
+ m_buttons(*this, "BUTTONS")
{
}
@@ -118,16 +117,6 @@ void bbc_bitstik_device::device_start()
}
-//-------------------------------------------------
-// device_reset - device-specific reset
-//-------------------------------------------------
-
-void bbc_bitstik_device::device_reset()
-{
- machine().root_device().membank("bank4")->configure_entry(13, memregion("rom")->base());
-}
-
-
//**************************************************************************
// IMPLEMENTATION
//**************************************************************************
diff --git a/src/devices/bus/bbc/analogue/bitstik.h b/src/devices/bus/bbc/analogue/bitstik.h
index 3319bfe0c2e..494be5dec69 100644
--- a/src/devices/bus/bbc/analogue/bitstik.h
+++ b/src/devices/bus/bbc/analogue/bitstik.h
@@ -35,7 +35,6 @@ protected:
// device-level overrides
virtual void device_start() override;
- virtual void device_reset() override;
// optional information overrides
virtual ioport_constructor device_input_ports() const override;
@@ -46,7 +45,6 @@ protected:
private:
required_ioport_array<4> m_channel;
required_ioport m_buttons;
- required_memory_region m_rom;
};
class bbc_bitstik1_device : public bbc_bitstik_device
diff --git a/src/devices/bus/bbc/exp/mertec.cpp b/src/devices/bus/bbc/exp/mertec.cpp
index d6a81e12b32..ffa7f76cc0b 100644
--- a/src/devices/bus/bbc/exp/mertec.cpp
+++ b/src/devices/bus/bbc/exp/mertec.cpp
@@ -99,18 +99,6 @@ void bbc_mertec_device::device_start()
{
}
-//-------------------------------------------------
-// device_reset - device-specific reset
-//-------------------------------------------------
-
-void bbc_mertec_device::device_reset()
-{
- machine().root_device().membank("bank4")->configure_entry(0, m_ext_rom->base() + 0x0000);
- machine().root_device().membank("bank5")->configure_entry(0, m_ext_rom->base() + 0x1000);
- machine().root_device().membank("bank4")->configure_entry(1, m_ext_rom->base() + 0x4000);
- machine().root_device().membank("bank5")->configure_entry(1, m_ext_rom->base() + 0x5000);
-}
-
//**************************************************************************
// IMPLEMENTATION
diff --git a/src/devices/bus/bbc/exp/mertec.h b/src/devices/bus/bbc/exp/mertec.h
index 4e117fe28cf..bd87c0d5398 100644
--- a/src/devices/bus/bbc/exp/mertec.h
+++ b/src/devices/bus/bbc/exp/mertec.h
@@ -35,7 +35,6 @@ public:
protected:
// device-level overrides
virtual void device_start() override;
- virtual void device_reset() override;
// optional information overrides
virtual void device_add_mconfig(machine_config &config) override;
diff --git a/src/devices/bus/bbc/fdc/acorn.cpp b/src/devices/bus/bbc/fdc/acorn.cpp
index e2ae28fdf0c..718296641a6 100644
--- a/src/devices/bus/bbc/fdc/acorn.cpp
+++ b/src/devices/bus/bbc/fdc/acorn.cpp
@@ -26,7 +26,10 @@ DEFINE_DEVICE_TYPE(BBC_ACORN1770, bbc_acorn1770_device, "bbc_acorn1770", "Acorn
FLOPPY_FORMATS_MEMBER( bbc_acorn8271_device::floppy_formats )
FLOPPY_ACORN_SSD_FORMAT,
FLOPPY_ACORN_DSD_FORMAT,
- FLOPPY_FSD_FORMAT
+ FLOPPY_ACORN_ADFS_OLD_FORMAT,
+ FLOPPY_ACORN_DOS_FORMAT,
+ FLOPPY_FSD_FORMAT,
+ FLOPPY_PC_FORMAT
FLOPPY_FORMATS_END0
static void bbc_floppies_525(device_slot_interface &device)
@@ -52,47 +55,17 @@ ROM_START( acorn8271 )
ROMX_LOAD("dnfs100.rom", 0x0000, 0x4000, CRC(7e367e8c) SHA1(161f585dc45665ea77433c84afd2f95049f7f5a0), ROM_BIOS(2))
ROM_SYSTEM_BIOS(3, "dnfs120", "Acorn DFS 1.20")
ROMX_LOAD("dnfs120.rom", 0x0000, 0x4000, CRC(8ccd2157) SHA1(7e3c536baeae84d6498a14e8405319e01ee78232), ROM_BIOS(3))
- // Amcom
- ROM_SYSTEM_BIOS(4, "amdfs0000", "Amcom DFS 00000")
- ROMX_LOAD("amcomdfs_00000.rom", 0x0000, 0x2000, CRC(28947e95) SHA1(43eb9bfc70bb710e01c0c9d48703ea812f9266e4), ROM_BIOS(4))
- ROM_RELOAD( 0x2000, 0x2000)
- ROM_SYSTEM_BIOS(5, "amdfs7259", "Amcom DFS A7259")
- ROMX_LOAD("amcomdfs_a7259.rom", 0x0000, 0x2000, CRC(a3366a98) SHA1(7b8b08edf5ebf17fcbcfbb2af0c189ac903285c2), ROM_BIOS(5))
- ROM_RELOAD( 0x2000, 0x2000)
- ROM_SYSTEM_BIOS(6, "amdfs7874", "Amcom DFS A7874")
- ROMX_LOAD("amcomdfs_a7874.rom", 0x0000, 0x2000, CRC(a7efeee8) SHA1(b6b06c7435d570d25a10fff1c703d16942deb8fb), ROM_BIOS(6))
- ROM_RELOAD(0x2000, 0x2000)
- ROM_SYSTEM_BIOS(7, "amdfs4084", "Amcom DFS B4084")
- ROMX_LOAD("amcomdfs_b4084.rom", 0x0000, 0x2000, CRC(487b049b) SHA1(559e056fe77ede2c87a314fcd8d3e2cab2b49b09), ROM_BIOS(7))
- ROM_RELOAD( 0x2000, 0x2000)
- ROM_SYSTEM_BIOS(8, "amdfs4088", "Amcom DFS B4088")
- ROMX_LOAD("amcomdfs_b4088.rom", 0x0000, 0x2000, CRC(3b6e2f82) SHA1(3f5e5039a926c980957f169de2112793eb1a9890), ROM_BIOS(8))
- ROM_RELOAD( 0x2000, 0x2000)
- ROM_SYSTEM_BIOS(9, "amdfs4218", "Amcom DFS B4218")
- ROMX_LOAD("amcomdfs_b4218.rom", 0x0000, 0x2000, CRC(98248af5) SHA1(17986b029d641047555eedc538d6790f0cf911a9), ROM_BIOS(9))
- ROM_RELOAD( 0x2000, 0x2000)
// Watford Electronics
- ROM_SYSTEM_BIOS(10, "wdfs110", "Watford Electronics DFS 1.10")
- ROMX_LOAD("wedfs110.rom", 0x0000, 0x4000, CRC(73c47a91) SHA1(658eb78b104806e76a0e51de9eb238a51daf646d), ROM_BIOS(10))
- ROM_SYSTEM_BIOS(11, "wdfs130", "Watford Electronics DFS 1.30")
- ROMX_LOAD("wedfs130.rom", 0x0000, 0x4000, CRC(153edf1f) SHA1(01455e8762fe21a5fbb0c383793bcc6e9c34904c), ROM_BIOS(11))
- ROM_SYSTEM_BIOS(12, "wdfs141", "Watford Electronics DFS 1.41")
- ROMX_LOAD("wedfs141.rom", 0x0000, 0x4000, CRC(fda3f58d) SHA1(4f3984ebb35709b39369cb516440dd0589920337), ROM_BIOS(12))
- ROM_SYSTEM_BIOS(13, "wdfs142", "Watford Electronics DFS 1.42")
- ROMX_LOAD("wedfs142.rom", 0x0000, 0x4000, CRC(aef838de) SHA1(0caee270eddd8feb3fa75f721775e9b80f853358), ROM_BIOS(13))
- ROM_SYSTEM_BIOS(14, "wdfs143", "Watford Electronics DFS 1.43")
- ROMX_LOAD("wedfs143.rom", 0x0000, 0x4000, CRC(3755ee18) SHA1(69bc258880b8e163ff85a293a25e5f00931d030b), ROM_BIOS(14))
- ROM_SYSTEM_BIOS(15, "wdfs144", "Watford Electronics DFS 1.44")
- ROMX_LOAD("wedfs144.rom", 0x0000, 0x4000, CRC(9fb8d13f) SHA1(387d2468c6e1360f5b531784ce95d5f71a50c2b5), ROM_BIOS(15))
- // Computer Users Club
- ROM_SYSTEM_BIOS(16, "bsdos219", "BS-DOS 2.19")
- ROMX_LOAD("bs-dos219.rom", 0x0000, 0x4000, CRC(299b17b2) SHA1(175fdcc802a7d94d7c36d6f3fd52a192a7cfbc98), ROM_BIOS(16))
- ROM_SYSTEM_BIOS(17, "bsdos222", "BS-DOS 2.22")
- ROMX_LOAD("bs-dos222.rom", 0x0000, 0x4000, CRC(63cf49d1) SHA1(92948e5843b9d9715354e21f14de2453bc250bf4), ROM_BIOS(17))
- // Others
- ROM_SYSTEM_BIOS(18, "cucdos", "C.U.C DOS 1.00")
- ROMX_LOAD("cucdos.rom", 0x0000, 0x2000, CRC(4adf8ecb) SHA1(ca3c1f9e89799459b6fd5197304129441443ca54), ROM_BIOS(18))
- ROM_RELOAD( 0x2000, 0x2000)
+ ROM_SYSTEM_BIOS(4, "wdfs130", "Watford Electronics DFS 1.30")
+ ROMX_LOAD("wedfs130.rom", 0x0000, 0x4000, CRC(153edf1f) SHA1(01455e8762fe21a5fbb0c383793bcc6e9c34904c), ROM_BIOS(4))
+ ROM_SYSTEM_BIOS(5, "wdfs141", "Watford Electronics DFS 1.41")
+ ROMX_LOAD("wedfs141.rom", 0x0000, 0x4000, CRC(fda3f58d) SHA1(4f3984ebb35709b39369cb516440dd0589920337), ROM_BIOS(5))
+ ROM_SYSTEM_BIOS(6, "wdfs142", "Watford Electronics DFS 1.42")
+ ROMX_LOAD("wedfs142.rom", 0x0000, 0x4000, CRC(aef838de) SHA1(0caee270eddd8feb3fa75f721775e9b80f853358), ROM_BIOS(6))
+ ROM_SYSTEM_BIOS(7, "wdfs143", "Watford Electronics DFS 1.43")
+ ROMX_LOAD("wedfs143.rom", 0x0000, 0x4000, CRC(3755ee18) SHA1(69bc258880b8e163ff85a293a25e5f00931d030b), ROM_BIOS(7))
+ ROM_SYSTEM_BIOS(8, "wdfs144", "Watford Electronics DFS 1.44")
+ ROMX_LOAD("wedfs144.rom", 0x0000, 0x4000, CRC(9fb8d13f) SHA1(387d2468c6e1360f5b531784ce95d5f71a50c2b5), ROM_BIOS(8))
ROM_END
ROM_START( acorn1770 )
@@ -109,11 +82,6 @@ ROM_START( acorn1770 )
ROMX_LOAD("dfs v2.25,acorn.rom", 0x0000, 0x4000, CRC(f855a75b) SHA1(f11271748e6303c60182955e5fa478624b616fcf), ROM_BIOS(3))
ROM_SYSTEM_BIOS(4, "dfs226", "Acorn DFS 2.26")
ROMX_LOAD("dfs v2.26,acorn.rom", 0x0000, 0x4000, CRC(5ae33e94) SHA1(cf2ebc422a8d24ec6f1a0320520c38a0e704109a), ROM_BIOS(4))
- // Advanced Computer Products
- ROM_SYSTEM_BIOS(5, "acp108", "Advanced 1770 DFS 1.08")
- ROMX_LOAD("advanced 1770 dfs 1.08,acp.rom", 0x0000, 0x4000, CRC(eb0eaa34) SHA1(d16ba3c8ed5e5ab6af62aad13a8e567b1c3639c2), ROM_BIOS(5))
- ROM_SYSTEM_BIOS(6, "acp200", "Advanced 1770 DFS 2.00")
- ROMX_LOAD("advanced 1770 dfs 2.00,acp.rom", 0x0000, 0x4000, CRC(65c0d170) SHA1(6907806e2b5b904a6f2041c11f8ccbd298d63ab9), ROM_BIOS(6))
ROM_END
@@ -124,7 +92,7 @@ ROM_END
void bbc_acorn8271_device::device_add_mconfig(machine_config &config)
{
I8271(config, m_fdc, 16_MHz_XTAL / 8);
- m_fdc->intrq_wr_callback().set(FUNC(bbc_acorn8271_device::fdc_intrq_w));
+ m_fdc->intrq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::intrq_w));
m_fdc->hdl_wr_callback().set(FUNC(bbc_acorn8271_device::motor_w));
m_fdc->opt_wr_callback().set(FUNC(bbc_acorn8271_device::side_w));
@@ -135,6 +103,7 @@ void bbc_acorn8271_device::device_add_mconfig(machine_config &config)
void bbc_acorn1770_device::device_add_mconfig(machine_config &config)
{
WD1770(config, m_fdc, 16_MHz_XTAL / 2);
+ m_fdc->set_force_ready(true);
m_fdc->intrq_wr_callback().set(FUNC(bbc_acorn1770_device::fdc_intrq_w));
m_fdc->drq_wr_callback().set(FUNC(bbc_acorn1770_device::fdc_drq_w));
@@ -164,7 +133,6 @@ const tiny_rom_entry *bbc_acorn1770_device::device_rom_region() const
bbc_acorn8271_device::bbc_acorn8271_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, BBC_ACORN8271, tag, owner, clock)
, device_bbc_fdc_interface(mconfig, *this)
- , m_dfs_rom(*this, "dfs_rom")
, m_fdc(*this, "i8271")
, m_floppy0(*this, "i8271:0")
, m_floppy1(*this, "i8271:1")
@@ -174,11 +142,9 @@ bbc_acorn8271_device::bbc_acorn8271_device(const machine_config &mconfig, const
bbc_acorn1770_device::bbc_acorn1770_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, BBC_ACORN1770, tag, owner, clock)
, device_bbc_fdc_interface(mconfig, *this)
- , m_dfs_rom(*this, "dfs_rom")
, m_fdc(*this, "wd1770")
, m_floppy0(*this, "wd1770:0")
, m_floppy1(*this, "wd1770:1")
- , m_drive_control(0)
{
}
@@ -193,23 +159,6 @@ void bbc_acorn8271_device::device_start()
void bbc_acorn1770_device::device_start()
{
- save_item(NAME(m_drive_control));
-}
-
-//-------------------------------------------------
-// device_reset - device-specific reset
-//-------------------------------------------------
-
-void bbc_acorn8271_device::device_reset()
-{
- machine().root_device().membank("bank4")->configure_entry(12, memregion("dfs_rom")->base());
-}
-
-void bbc_acorn1770_device::device_reset()
-{
- machine().root_device().membank("bank4")->configure_entry(12, memregion("dfs_rom")->base());
-
- m_drive_control = 0xfe;
}
@@ -257,11 +206,6 @@ WRITE_LINE_MEMBER(bbc_acorn8271_device::side_w)
if (m_floppy1->get_device()) m_floppy1->get_device()->ss_w(state);
}
-WRITE_LINE_MEMBER(bbc_acorn8271_device::fdc_intrq_w)
-{
- m_slot->intrq_w(state);
-}
-
READ8_MEMBER(bbc_acorn1770_device::read)
{
@@ -273,7 +217,7 @@ READ8_MEMBER(bbc_acorn1770_device::read)
}
else
{
- data = m_drive_control;
+ data = 0xfe;
}
return data;
}
@@ -288,8 +232,6 @@ WRITE8_MEMBER(bbc_acorn1770_device::write)
{
floppy_image_device *floppy = nullptr;
- m_drive_control = data;
-
// bit 0, 1: drive select
if (BIT(data, 0)) floppy = m_floppy0->get_device();
if (BIT(data, 1)) floppy = m_floppy1->get_device();
diff --git a/src/devices/bus/bbc/fdc/acorn.h b/src/devices/bus/bbc/fdc/acorn.h
index 4e2993f1016..397ea1289e7 100644
--- a/src/devices/bus/bbc/fdc/acorn.h
+++ b/src/devices/bus/bbc/fdc/acorn.h
@@ -17,6 +17,7 @@
#include "machine/wd_fdc.h"
#include "formats/acorn_dsk.h"
#include "formats/fsd_dsk.h"
+#include "formats/pc_dsk.h"
//**************************************************************************
// TYPE DEFINITIONS
@@ -35,7 +36,6 @@ public:
protected:
// device-level overrides
virtual void device_start() override;
- virtual void device_reset() override;
// optional information overrides
virtual void device_add_mconfig(machine_config &config) override;
@@ -45,11 +45,9 @@ protected:
virtual DECLARE_WRITE8_MEMBER(write) override;
private:
- DECLARE_WRITE_LINE_MEMBER(fdc_intrq_w);
DECLARE_WRITE_LINE_MEMBER(motor_w);
DECLARE_WRITE_LINE_MEMBER(side_w);
- required_memory_region m_dfs_rom;
required_device<i8271_device> m_fdc;
required_device<floppy_connector> m_floppy0;
optional_device<floppy_connector> m_floppy1;
@@ -66,7 +64,6 @@ public:
protected:
// device-level overrides
virtual void device_start() override;
- virtual void device_reset() override;
// optional information overrides
virtual void device_add_mconfig(machine_config &config) override;
@@ -79,12 +76,10 @@ private:
DECLARE_WRITE_LINE_MEMBER(fdc_intrq_w);
DECLARE_WRITE_LINE_MEMBER(fdc_drq_w);
- required_memory_region m_dfs_rom;
required_device<wd1770_device> m_fdc;
required_device<floppy_connector> m_floppy0;
optional_device<floppy_connector> m_floppy1;
- int m_drive_control;
int m_fdc_ie;
};
diff --git a/src/devices/bus/bbc/fdc/ams.cpp b/src/devices/bus/bbc/fdc/ams.cpp
index 15d1c4a6171..ef9cb63a46a 100644
--- a/src/devices/bus/bbc/fdc/ams.cpp
+++ b/src/devices/bus/bbc/fdc/ams.cpp
@@ -44,7 +44,7 @@ ROM_END
void bbc_ams3_device::device_add_mconfig(machine_config &config)
{
I8271(config, m_fdc, 16_MHz_XTAL / 8);
- m_fdc->intrq_wr_callback().set(FUNC(bbc_ams3_device::fdc_intrq_w));
+ m_fdc->intrq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::intrq_w));
m_fdc->hdl_wr_callback().set(FUNC(bbc_ams3_device::motor_w));
m_fdc->opt_wr_callback().set(FUNC(bbc_ams3_device::side_w));
// Hitachi HFD 305S
@@ -69,7 +69,6 @@ const tiny_rom_entry *bbc_ams3_device::device_rom_region() const
bbc_ams3_device::bbc_ams3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, BBC_AMS3, tag, owner, clock)
, device_bbc_fdc_interface(mconfig, *this)
- , m_dfs_rom(*this, "dfs_rom")
, m_fdc(*this, "i8271")
, m_floppy0(*this, "i8271:0")
, m_floppy1(*this, "i8271:1")
@@ -85,16 +84,6 @@ void bbc_ams3_device::device_start()
{
}
-//-------------------------------------------------
-// device_reset - device-specific reset
-//-------------------------------------------------
-
-void bbc_ams3_device::device_reset()
-{
- machine().root_device().membank("bank4")->configure_entry(12, memregion("dfs_rom")->base() + 0x0000);
- machine().root_device().membank("bank4")->configure_entry(13, memregion("dfs_rom")->base() + 0x4000);
-}
-
//**************************************************************************
// IMPLEMENTATION
@@ -139,8 +128,3 @@ WRITE_LINE_MEMBER(bbc_ams3_device::side_w)
if (m_floppy0->get_device()) m_floppy0->get_device()->ss_w(state);
if (m_floppy1->get_device()) m_floppy1->get_device()->ss_w(state);
}
-
-WRITE_LINE_MEMBER(bbc_ams3_device::fdc_intrq_w)
-{
- m_slot->intrq_w(state);
-}
diff --git a/src/devices/bus/bbc/fdc/ams.h b/src/devices/bus/bbc/fdc/ams.h
index acdb077b3f6..aff35b2e099 100644
--- a/src/devices/bus/bbc/fdc/ams.h
+++ b/src/devices/bus/bbc/fdc/ams.h
@@ -33,7 +33,6 @@ public:
protected:
// device-level overrides
virtual void device_start() override;
- virtual void device_reset() override;
// optional information overrides
virtual void device_add_mconfig(machine_config &config) override;
@@ -47,7 +46,6 @@ private:
DECLARE_WRITE_LINE_MEMBER(motor_w);
DECLARE_WRITE_LINE_MEMBER(side_w);
- required_memory_region m_dfs_rom;
required_device<i8271_device> m_fdc;
required_device<floppy_connector> m_floppy0;
optional_device<floppy_connector> m_floppy1;
diff --git a/src/devices/bus/bbc/fdc/cumana.cpp b/src/devices/bus/bbc/fdc/cumana.cpp
index 4de4c9df704..7cec0c2e391 100644
--- a/src/devices/bus/bbc/fdc/cumana.cpp
+++ b/src/devices/bus/bbc/fdc/cumana.cpp
@@ -106,7 +106,6 @@ bbc_cumanafdc_device::bbc_cumanafdc_device(const machine_config &mconfig, device
m_fdc(*this, "mb8877a"),
m_floppy0(*this, "mb8877a:0"),
m_floppy1(*this, "mb8877a:1"),
- m_dfs_rom(*this, "dfs_rom"),
m_drive_control(0)
{
}
@@ -133,15 +132,6 @@ void bbc_cumanafdc_device::device_start()
save_item(NAME(m_drive_control));
}
-//-------------------------------------------------
-// device_reset - device-specific reset
-//-------------------------------------------------
-
-void bbc_cumanafdc_device::device_reset()
-{
- machine().root_device().membank("bank4")->configure_entry(12, memregion("dfs_rom")->base());
-}
-
//**************************************************************************
// IMPLEMENTATION
diff --git a/src/devices/bus/bbc/fdc/cumana.h b/src/devices/bus/bbc/fdc/cumana.h
index 71048da3b1a..55481bca1cc 100644
--- a/src/devices/bus/bbc/fdc/cumana.h
+++ b/src/devices/bus/bbc/fdc/cumana.h
@@ -37,7 +37,6 @@ protected:
// device-level overrides
virtual void device_start() override;
- virtual void device_reset() override;
virtual DECLARE_READ8_MEMBER(read) override;
virtual DECLARE_WRITE8_MEMBER(write) override;
@@ -49,8 +48,6 @@ protected:
bool m_invert;
private:
- required_memory_region m_dfs_rom;
-
int m_drive_control;
int m_fdc_ie;
};
diff --git a/src/devices/bus/bbc/fdc/cv1797.cpp b/src/devices/bus/bbc/fdc/cv1797.cpp
index 689d9a23777..98f54718c42 100644
--- a/src/devices/bus/bbc/fdc/cv1797.cpp
+++ b/src/devices/bus/bbc/fdc/cv1797.cpp
@@ -55,8 +55,8 @@ ROM_END
void bbc_cv1797_device::device_add_mconfig(machine_config &config)
{
FD1797(config, m_fdc, 8_MHz_XTAL / 8);
- m_fdc->intrq_wr_callback().set(FUNC(bbc_cv1797_device::fdc_intrq_w));
- m_fdc->drq_wr_callback().set(FUNC(bbc_cv1797_device::fdc_drq_w));
+ m_fdc->intrq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::intrq_w));
+ m_fdc->drq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::drq_w));
m_fdc->hld_wr_callback().set(FUNC(bbc_cv1797_device::motor_w));
FLOPPY_CONNECTOR(config, m_floppy0, bbc_floppies_525, "525qd", floppy_formats).enable_sound(true);
@@ -79,7 +79,6 @@ const tiny_rom_entry *bbc_cv1797_device::device_rom_region() const
bbc_cv1797_device::bbc_cv1797_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, BBC_CV1797, tag, owner, clock)
, device_bbc_fdc_interface(mconfig, *this)
- , m_dfs_rom(*this, "dfs_rom")
, m_fdc(*this, "fd1797")
, m_floppy0(*this, "fd1797:0")
, m_floppy1(*this, "fd1797:1")
@@ -96,15 +95,6 @@ void bbc_cv1797_device::device_start()
save_item(NAME(m_drive_control));
}
-//-------------------------------------------------
-// device_reset - device-specific reset
-//-------------------------------------------------
-
-void bbc_cv1797_device::device_reset()
-{
- machine().root_device().membank("bank4")->configure_entry(12, memregion("dfs_rom")->base());
-}
-
//**************************************************************************
// IMPLEMENTATION
@@ -157,16 +147,6 @@ WRITE8_MEMBER(bbc_cv1797_device::write)
}
}
-WRITE_LINE_MEMBER(bbc_cv1797_device::fdc_intrq_w)
-{
- m_slot->intrq_w(state);
-}
-
-WRITE_LINE_MEMBER(bbc_cv1797_device::fdc_drq_w)
-{
- m_slot->drq_w(state);
-}
-
WRITE_LINE_MEMBER(bbc_cv1797_device::motor_w)
{
if (m_floppy0->get_device()) m_floppy0->get_device()->mon_w(!state);
diff --git a/src/devices/bus/bbc/fdc/cv1797.h b/src/devices/bus/bbc/fdc/cv1797.h
index b6a2f3c9a44..3f30011567d 100644
--- a/src/devices/bus/bbc/fdc/cv1797.h
+++ b/src/devices/bus/bbc/fdc/cv1797.h
@@ -34,7 +34,6 @@ public:
protected:
// device-level overrides
virtual void device_start() override;
- virtual void device_reset() override;
// optional information overrides
virtual void device_add_mconfig(machine_config &config) override;
@@ -46,11 +45,8 @@ protected:
private:
DECLARE_FLOPPY_FORMATS(floppy_formats);
- DECLARE_WRITE_LINE_MEMBER(fdc_intrq_w);
- DECLARE_WRITE_LINE_MEMBER(fdc_drq_w);
DECLARE_WRITE_LINE_MEMBER(motor_w);
- required_memory_region m_dfs_rom;
required_device<fd1797_device> m_fdc;
required_device<floppy_connector> m_floppy0;
optional_device<floppy_connector> m_floppy1;
diff --git a/src/devices/bus/bbc/fdc/fdc.cpp b/src/devices/bus/bbc/fdc/fdc.cpp
index 1db62be6357..10f9131351f 100644
--- a/src/devices/bus/bbc/fdc/fdc.cpp
+++ b/src/devices/bus/bbc/fdc/fdc.cpp
@@ -121,7 +121,6 @@ WRITE8_MEMBER(bbc_fdc_slot_device::write)
#include "opus.h"
//#include "solidisk.h"
#include "watford.h"
-//#include "zdfs.h"
void bbc_fdc_devices(device_slot_interface &device)
@@ -142,5 +141,4 @@ void bbc_fdc_devices(device_slot_interface &device)
//device.option_add("stl1770_2", BBC_STL1770_2);
device.option_add("weddb2", BBC_WEDDB2);
device.option_add("weddb3", BBC_WEDDB3);
- //device.option_add("zdfs", BBC_ZDFS);
}
diff --git a/src/devices/bus/bbc/fdc/microware.cpp b/src/devices/bus/bbc/fdc/microware.cpp
index 2dc527ea822..ab67c911082 100644
--- a/src/devices/bus/bbc/fdc/microware.cpp
+++ b/src/devices/bus/bbc/fdc/microware.cpp
@@ -56,8 +56,8 @@ ROM_END
void bbc_microware_device::device_add_mconfig(machine_config &config)
{
WD2793(config, m_fdc, 16_MHz_XTAL / 16); // Replay advert suggests Type R8272 UDM DFS
- m_fdc->intrq_wr_callback().set(FUNC(bbc_microware_device::fdc_intrq_w));
- m_fdc->drq_wr_callback().set(FUNC(bbc_microware_device::fdc_drq_w));
+ m_fdc->intrq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::intrq_w));
+ m_fdc->drq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::drq_w));
m_fdc->hld_wr_callback().set(FUNC(bbc_microware_device::motor_w));
FLOPPY_CONNECTOR(config, m_floppy0, bbc_floppies_525, "525qd", floppy_formats).enable_sound(true);
@@ -80,7 +80,6 @@ const tiny_rom_entry *bbc_microware_device::device_rom_region() const
bbc_microware_device::bbc_microware_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, BBC_MICROWARE, tag, owner, clock)
, device_bbc_fdc_interface(mconfig, *this)
- , m_dfs_rom(*this, "dfs_rom")
, m_fdc(*this, "wd2793")
, m_floppy0(*this, "wd2793:0")
, m_floppy1(*this, "wd2793:1")
@@ -97,15 +96,6 @@ void bbc_microware_device::device_start()
save_item(NAME(m_drive_control));
}
-//-------------------------------------------------
-// device_reset - device-specific reset
-//-------------------------------------------------
-
-void bbc_microware_device::device_reset()
-{
- machine().root_device().membank("bank4")->configure_entry(12, memregion("dfs_rom")->base());
-}
-
//**************************************************************************
// IMPLEMENTATION
@@ -159,16 +149,6 @@ WRITE8_MEMBER(bbc_microware_device::write)
}
}
-WRITE_LINE_MEMBER(bbc_microware_device::fdc_intrq_w)
-{
- m_slot->intrq_w(state);
-}
-
-WRITE_LINE_MEMBER(bbc_microware_device::fdc_drq_w)
-{
- m_slot->drq_w(state);
-}
-
WRITE_LINE_MEMBER(bbc_microware_device::motor_w)
{
if (m_floppy0->get_device()) m_floppy0->get_device()->mon_w(!state);
diff --git a/src/devices/bus/bbc/fdc/microware.h b/src/devices/bus/bbc/fdc/microware.h
index 9d42eb2b668..c255cfd67c3 100644
--- a/src/devices/bus/bbc/fdc/microware.h
+++ b/src/devices/bus/bbc/fdc/microware.h
@@ -36,7 +36,6 @@ public:
protected:
// device-level overrides
virtual void device_start() override;
- virtual void device_reset() override;
// optional information overrides
virtual void device_add_mconfig(machine_config &config) override;
@@ -48,11 +47,8 @@ protected:
private:
DECLARE_FLOPPY_FORMATS(floppy_formats);
- DECLARE_WRITE_LINE_MEMBER(fdc_intrq_w);
- DECLARE_WRITE_LINE_MEMBER(fdc_drq_w);
DECLARE_WRITE_LINE_MEMBER(motor_w);
- required_memory_region m_dfs_rom;
required_device<wd2793_device> m_fdc;
required_device<floppy_connector> m_floppy0;
optional_device<floppy_connector> m_floppy1;
diff --git a/src/devices/bus/bbc/fdc/opus.cpp b/src/devices/bus/bbc/fdc/opus.cpp
index 0a0bb79ffd0..de142f79da1 100644
--- a/src/devices/bus/bbc/fdc/opus.cpp
+++ b/src/devices/bus/bbc/fdc/opus.cpp
@@ -50,20 +50,24 @@ static void bbc_floppies_525(device_slot_interface &device)
ROM_START( opus8272 )
ROM_REGION(0x4000, "dfs_rom", 0)
- ROM_DEFAULT_BIOS("ddos300")
+ ROM_DEFAULT_BIOS("ddos305")
ROM_SYSTEM_BIOS(0, "ddos300", "Opus DDOS 3.00")
ROMX_LOAD("opus-ddos300.rom", 0x0000, 0x4000, CRC(1b5fa131) SHA1(6b4e0363a9d39807973a2ef0871a78b287cea27e), ROM_BIOS(0))
+ ROM_SYSTEM_BIOS(1, "ddos305", "Opus DDOS 3.05")
+ ROMX_LOAD("opus-ddos305.rom", 0x0000, 0x4000, CRC(43c75fa4) SHA1(0b7194a234c2316ba825e878e3f69928bf3bb595), ROM_BIOS(1))
ROM_END
ROM_START( opus2791 )
ROM_REGION(0x4000, "dfs_rom", 0)
ROM_DEFAULT_BIOS("ddos316")
- ROM_SYSTEM_BIOS(0, "ddos315", "Opus DDOS 3.15")
- ROMX_LOAD("opus-ddos315.rom", 0x0000, 0x4000, CRC(5f06701c) SHA1(9e250dc7ddcde35b19e8f29f2cfe95a79f46d473), ROM_BIOS(0))
- ROM_SYSTEM_BIOS(1, "ddos316", "Opus DDOS 3.16")
- ROMX_LOAD("opus-ddos316.rom", 0x0000, 0x4000, CRC(268ebc0d) SHA1(e608f6e40a5579147cc631f351aae275fdabec5b), ROM_BIOS(1))
- ROM_SYSTEM_BIOS(2, "edos04", "Opus EDOS 0.4")
- ROMX_LOAD("opus-edos04.rom", 0x0000, 0x4000, CRC(1d8a3860) SHA1(05f461464707b4ca24636c9e726af561f227ccdb), ROM_BIOS(2))
+ ROM_SYSTEM_BIOS(0, "ddos312", "Opus DDOS 3.12")
+ ROMX_LOAD("opus-ddos312.rom", 0x0000, 0x4000, CRC(b2c393be) SHA1(6accaa0b13b0b939c86674cddd7bee1aea2f66cb), ROM_BIOS(0))
+ ROM_SYSTEM_BIOS(1, "ddos315", "Opus DDOS 3.15")
+ ROMX_LOAD("opus-ddos315.rom", 0x0000, 0x4000, CRC(5f06701c) SHA1(9e250dc7ddcde35b19e8f29f2cfe95a79f46d473), ROM_BIOS(1))
+ ROM_SYSTEM_BIOS(2, "ddos316", "Opus DDOS 3.16")
+ ROMX_LOAD("opus-ddos316.rom", 0x0000, 0x4000, CRC(268ebc0d) SHA1(e608f6e40a5579147cc631f351aae275fdabec5b), ROM_BIOS(2))
+ ROM_SYSTEM_BIOS(3, "edos04", "Opus EDOS 0.4")
+ ROMX_LOAD("opus-edos04.rom", 0x0000, 0x4000, CRC(1d8a3860) SHA1(05f461464707b4ca24636c9e726af561f227ccdb), ROM_BIOS(3))
ROM_END
ROM_START( opus2793 )
@@ -92,7 +96,7 @@ ROM_END
void bbc_opus8272_device::device_add_mconfig(machine_config &config)
{
I8272A(config, m_fdc, true);
- m_fdc->intrq_wr_callback().set(FUNC(bbc_opus8272_device::fdc_intrq_w));
+ m_fdc->intrq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::intrq_w));
FLOPPY_CONNECTOR(config, m_floppy0, bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true);
FLOPPY_CONNECTOR(config, m_floppy1, bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true);
@@ -101,7 +105,7 @@ void bbc_opus8272_device::device_add_mconfig(machine_config &config)
void bbc_opus2791_device::device_add_mconfig(machine_config &config)
{
WD2791(config, m_fdc, 16_MHz_XTAL / 16);
- m_fdc->drq_wr_callback().set(FUNC(bbc_opusfdc_device::fdc_drq_w));
+ m_fdc->drq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::drq_w));
m_fdc->hld_wr_callback().set(FUNC(bbc_opusfdc_device::motor_w));
FLOPPY_CONNECTOR(config, m_floppy0, bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true);
@@ -111,7 +115,7 @@ void bbc_opus2791_device::device_add_mconfig(machine_config &config)
void bbc_opus2793_device::device_add_mconfig(machine_config &config)
{
WD2793(config, m_fdc, 16_MHz_XTAL / 16);
- m_fdc->drq_wr_callback().set(FUNC(bbc_opusfdc_device::fdc_drq_w));
+ m_fdc->drq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::drq_w));
m_fdc->hld_wr_callback().set(FUNC(bbc_opusfdc_device::motor_w));
FLOPPY_CONNECTOR(config, m_floppy0, bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true);
@@ -121,7 +125,7 @@ void bbc_opus2793_device::device_add_mconfig(machine_config &config)
void bbc_opus1770_device::device_add_mconfig(machine_config &config)
{
WD1770(config, m_fdc, 16_MHz_XTAL / 2);
- m_fdc->drq_wr_callback().set(FUNC(bbc_opusfdc_device::fdc_drq_w));
+ m_fdc->drq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::drq_w));
FLOPPY_CONNECTOR(config, m_floppy0, bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true);
FLOPPY_CONNECTOR(config, m_floppy1, bbc_floppies_525, "525qd", bbc_opusfdc_device::floppy_formats).enable_sound(true);
@@ -159,7 +163,6 @@ const tiny_rom_entry *bbc_opus1770_device::device_rom_region() const
bbc_opus8272_device::bbc_opus8272_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock) :
device_t(mconfig, BBC_OPUS8272, tag, owner, clock),
device_bbc_fdc_interface(mconfig, *this),
- m_dfs_rom(*this, "dfs_rom"),
m_fdc(*this, "i8272"),
m_floppy0(*this, "i8272:0"),
m_floppy1(*this, "i8272:1")
@@ -172,7 +175,6 @@ bbc_opusfdc_device::bbc_opusfdc_device(const machine_config &mconfig, device_typ
m_fdc(*this, "fdc"),
m_floppy0(*this, "fdc:0"),
m_floppy1(*this, "fdc:1"),
- m_dfs_rom(*this, "dfs_rom"),
m_drive_control(0)
{
}
@@ -205,20 +207,6 @@ void bbc_opusfdc_device::device_start()
save_item(NAME(m_drive_control));
}
-//-------------------------------------------------
-// device_reset - device-specific reset
-//-------------------------------------------------
-
-void bbc_opus8272_device::device_reset()
-{
- machine().root_device().membank("bank4")->configure_entry(12, memregion("dfs_rom")->base());
-}
-
-void bbc_opusfdc_device::device_reset()
-{
- machine().root_device().membank("bank4")->configure_entry(12, memregion("dfs_rom")->base());
-}
-
//**************************************************************************
// IMPLEMENTATION
@@ -276,11 +264,6 @@ WRITE8_MEMBER(bbc_opus8272_device::write)
}
}
-WRITE_LINE_MEMBER(bbc_opus8272_device::fdc_intrq_w)
-{
- m_slot->intrq_w(state);
-}
-
READ8_MEMBER(bbc_opusfdc_device::read)
{
@@ -326,11 +309,6 @@ WRITE8_MEMBER(bbc_opusfdc_device::write)
}
}
-WRITE_LINE_MEMBER(bbc_opusfdc_device::fdc_drq_w)
-{
- m_slot->drq_w(state);
-}
-
WRITE_LINE_MEMBER(bbc_opusfdc_device::motor_w)
{
if (m_floppy0->get_device()) m_floppy0->get_device()->mon_w(!state);
diff --git a/src/devices/bus/bbc/fdc/opus.h b/src/devices/bus/bbc/fdc/opus.h
index 86af3dfe370..d49938a115f 100644
--- a/src/devices/bus/bbc/fdc/opus.h
+++ b/src/devices/bus/bbc/fdc/opus.h
@@ -30,7 +30,6 @@ public:
protected:
// device-level overrides
virtual void device_start() override;
- virtual void device_reset() override;
// optional information overrides
virtual void device_add_mconfig(machine_config &config) override;
@@ -40,9 +39,6 @@ protected:
virtual DECLARE_WRITE8_MEMBER(write) override;
private:
- DECLARE_WRITE_LINE_MEMBER(fdc_intrq_w);
-
- required_memory_region m_dfs_rom;
required_device<i8272a_device> m_fdc;
required_device<floppy_connector> m_floppy0;
optional_device<floppy_connector> m_floppy1;
@@ -56,7 +52,6 @@ class bbc_opusfdc_device :
public:
DECLARE_FLOPPY_FORMATS(floppy_formats);
- DECLARE_WRITE_LINE_MEMBER(fdc_drq_w);
DECLARE_WRITE_LINE_MEMBER(motor_w);
protected:
@@ -65,7 +60,6 @@ protected:
// device-level overrides
virtual void device_start() override;
- virtual void device_reset() override;
virtual DECLARE_READ8_MEMBER(read) override;
virtual DECLARE_WRITE8_MEMBER(write) override;
@@ -75,8 +69,6 @@ protected:
optional_device<floppy_connector> m_floppy1;
private:
- required_memory_region m_dfs_rom;
-
int m_drive_control;
};
diff --git a/src/devices/bus/bbc/fdc/watford.cpp b/src/devices/bus/bbc/fdc/watford.cpp
index be7f17dea80..9c5c6bf4524 100644
--- a/src/devices/bus/bbc/fdc/watford.cpp
+++ b/src/devices/bus/bbc/fdc/watford.cpp
@@ -68,8 +68,8 @@ ROM_END
void bbc_weddb2_device::device_add_mconfig(machine_config &config)
{
WD1772(config, m_fdc, 16_MHz_XTAL / 2);
- m_fdc->intrq_wr_callback().set(FUNC(bbc_weddb2_device::fdc_intrq_w));
- m_fdc->drq_wr_callback().set(FUNC(bbc_weddb2_device::fdc_drq_w));
+ m_fdc->intrq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::intrq_w));
+ m_fdc->drq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::drq_w));
FLOPPY_CONNECTOR(config, m_floppy0, bbc_floppies_525, "525qd", floppy_formats).enable_sound(true);
FLOPPY_CONNECTOR(config, m_floppy1, bbc_floppies_525, "525qd", floppy_formats).enable_sound(true);
@@ -78,8 +78,8 @@ void bbc_weddb2_device::device_add_mconfig(machine_config &config)
void bbc_weddb3_device::device_add_mconfig(machine_config &config)
{
WD1770(config, m_fdc, 16_MHz_XTAL / 2);
- m_fdc->intrq_wr_callback().set(FUNC(bbc_weddb3_device::fdc_intrq_w));
- m_fdc->drq_wr_callback().set(FUNC(bbc_weddb3_device::fdc_drq_w));
+ m_fdc->intrq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::intrq_w));
+ m_fdc->drq_wr_callback().set(DEVICE_SELF_OWNER, FUNC(bbc_fdc_slot_device::drq_w));
FLOPPY_CONNECTOR(config, m_floppy0, bbc_floppies_525, "525qd", floppy_formats).enable_sound(true);
FLOPPY_CONNECTOR(config, m_floppy1, bbc_floppies_525, "525qd", floppy_formats).enable_sound(true);
@@ -112,7 +112,6 @@ bbc_watfordfdc_device::bbc_watfordfdc_device(const machine_config &mconfig, devi
bbc_weddb2_device::bbc_weddb2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: bbc_watfordfdc_device(mconfig, BBC_WEDDB2, tag, owner, clock)
- , m_dfs_rom(*this, "dfs_rom")
, m_fdc(*this, "wd1772")
, m_floppy0(*this, "wd1772:0")
, m_floppy1(*this, "wd1772:1")
@@ -122,7 +121,6 @@ bbc_weddb2_device::bbc_weddb2_device(const machine_config &mconfig, const char *
bbc_weddb3_device::bbc_weddb3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: bbc_watfordfdc_device(mconfig, BBC_WEDDB3, tag, owner, clock)
- , m_dfs_rom(*this, "dfs_rom")
, m_fdc(*this, "wd1770")
, m_floppy0(*this, "wd1770:0")
, m_floppy1(*this, "wd1770:1")
@@ -144,20 +142,6 @@ void bbc_weddb3_device::device_start()
save_item(NAME(m_drive_control));
}
-//-------------------------------------------------
-// device_reset - device-specific reset
-//-------------------------------------------------
-
-void bbc_weddb2_device::device_reset()
-{
- machine().root_device().membank("bank4")->configure_entry(12, memregion("dfs_rom")->base());
-}
-
-void bbc_weddb3_device::device_reset()
-{
- machine().root_device().membank("bank4")->configure_entry(12, memregion("dfs_rom")->base());
-}
-
//**************************************************************************
// IMPLEMENTATION
@@ -251,13 +235,3 @@ WRITE8_MEMBER(bbc_weddb3_device::write)
if (!BIT(data, 5)) m_fdc->soft_reset();
}
}
-
-WRITE_LINE_MEMBER(bbc_watfordfdc_device::fdc_intrq_w)
-{
- m_slot->intrq_w(state);
-}
-
-WRITE_LINE_MEMBER(bbc_watfordfdc_device::fdc_drq_w)
-{
- m_slot->drq_w(state);
-}
diff --git a/src/devices/bus/bbc/fdc/watford.h b/src/devices/bus/bbc/fdc/watford.h
index 2f03f24eb0f..06fae6e5c6d 100644
--- a/src/devices/bus/bbc/fdc/watford.h
+++ b/src/devices/bus/bbc/fdc/watford.h
@@ -27,9 +27,6 @@ class bbc_watfordfdc_device :
public:
DECLARE_FLOPPY_FORMATS(floppy_formats);
- DECLARE_WRITE_LINE_MEMBER(fdc_intrq_w);
- DECLARE_WRITE_LINE_MEMBER(fdc_drq_w);
-
protected:
// construction/destruction
bbc_watfordfdc_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
@@ -43,7 +40,6 @@ public:
protected:
// device-level overrides
virtual void device_start() override;
- virtual void device_reset() override;
virtual void device_add_mconfig(machine_config &config) override;
virtual const tiny_rom_entry *device_rom_region() const override;
@@ -52,7 +48,6 @@ protected:
virtual DECLARE_WRITE8_MEMBER(write) override;
private:
- required_memory_region m_dfs_rom;
required_device<wd_fdc_device_base> m_fdc;
required_device<floppy_connector> m_floppy0;
optional_device<floppy_connector> m_floppy1;
@@ -68,7 +63,6 @@ public:
protected:
// device-level overrides
virtual void device_start() override;
- virtual void device_reset() override;
virtual void device_add_mconfig(machine_config &config) override;
virtual const tiny_rom_entry *device_rom_region() const override;
@@ -77,7 +71,6 @@ protected:
virtual DECLARE_WRITE8_MEMBER(write) override;
private:
- required_memory_region m_dfs_rom;
required_device<wd_fdc_device_base> m_fdc;
required_device<floppy_connector> m_floppy0;
optional_device<floppy_connector> m_floppy1;
diff --git a/src/devices/bus/bbc/tube/tube_casper.cpp b/src/devices/bus/bbc/tube/tube_casper.cpp
index f6b052d8913..db84143f553 100644
--- a/src/devices/bus/bbc/tube/tube_casper.cpp
+++ b/src/devices/bus/bbc/tube/tube_casper.cpp
@@ -39,7 +39,7 @@ ROM_START( tube_casper )
ROM_LOAD16_BYTE("casper.ic9", 0x0000, 0x2000, CRC(4105cbf4) SHA1(a3efeb6fb144da55b47c718239967ed0af4fff72))
ROM_LOAD16_BYTE("casper.ic10", 0x0001, 0x2000, CRC(f25bc320) SHA1(297db56283bb3164c31c21331837213cea426837))
- ROM_REGION(0x8000, "host_rom", 0)
+ ROM_REGION(0x8000, "exp_rom", 0)
ROM_LOAD("rom1.rom", 0x0000, 0x4000, CRC(602b6a36) SHA1(7b24746dbcacb8772468532e92832d5c7f6648fd))
ROM_LOAD("rom2.rom", 0x4000, 0x4000, CRC(7c9efb43) SHA1(4195ce1ed928178fd645a267872a5b4f325d078a))
ROM_END
@@ -92,8 +92,7 @@ bbc_tube_casper_device::bbc_tube_casper_device(const machine_config &mconfig, co
m_m68000(*this, "m68000"),
m_via6522_0(*this, "via6522_0"),
m_via6522_1(*this, "via6522_1"),
- m_casper_rom(*this, "casper_rom"),
- m_host_rom(*this, "host_rom")
+ m_casper_rom(*this, "casper_rom")
{
}
@@ -103,17 +102,6 @@ bbc_tube_casper_device::bbc_tube_casper_device(const machine_config &mconfig, co
void bbc_tube_casper_device::device_start()
{
- m_slot = dynamic_cast<bbc_tube_slot_device *>(owner());
-}
-
-//-------------------------------------------------
-// device_reset - device-specific reset
-//-------------------------------------------------
-
-void bbc_tube_casper_device::device_reset()
-{
- machine().root_device().membank("bank4")->configure_entry(13, memregion("host_rom")->base() + 0x0000);
- machine().root_device().membank("bank4")->configure_entry(14, memregion("host_rom")->base() + 0x4000);
}
diff --git a/src/devices/bus/bbc/tube/tube_casper.h b/src/devices/bus/bbc/tube/tube_casper.h
index 1fc2578bb8b..e464f4a8c68 100644
--- a/src/devices/bus/bbc/tube/tube_casper.h
+++ b/src/devices/bus/bbc/tube/tube_casper.h
@@ -31,7 +31,6 @@ public:
protected:
// device-level overrides
virtual void device_start() override;
- virtual void device_reset() override;
// optional information overrides
virtual void device_add_mconfig(machine_config &config) override;
@@ -45,7 +44,6 @@ private:
required_device<via6522_device> m_via6522_0;
required_device<via6522_device> m_via6522_1;
required_memory_region m_casper_rom;
- required_memory_region m_host_rom;
void tube_casper_mem(address_map &map);
};
diff --git a/src/devices/bus/bbc/tube/tube_zep100.cpp b/src/devices/bus/bbc/tube/tube_zep100.cpp
index e7f223a992f..6ec898bb705 100644
--- a/src/devices/bus/bbc/tube/tube_zep100.cpp
+++ b/src/devices/bus/bbc/tube/tube_zep100.cpp
@@ -45,12 +45,20 @@ void bbc_tube_zep100_device::tube_zep100_io(address_map &map)
//-------------------------------------------------
ROM_START( tube_zep100 )
+ ROM_REGION(0x4000, "exp_rom", 0)
+ ROM_DEFAULT_BIOS("mcp120")
+ ROM_SYSTEM_BIOS(0, "mcp120", "MCP v1.20 (CBL)") // 1985
+ ROMX_LOAD("mcp120cbl.rom", 0x0000, 0x4000, CRC(851d0879) SHA1(2e54ef15692ba7dd9fcfd1ef0d660464a772b156), ROM_BIOS(0))
+ ROM_SYSTEM_BIOS(1, "mcp041", "MCP v0.41 (CBL)") // 1983
+ ROMX_LOAD("mcp041cbl.rom", 0x0000, 0x4000, CRC(b36f07f4) SHA1(bd53f09bf73357845a6f97df1ee9e5aea5cdca90), ROM_BIOS(1))
+ ROM_SYSTEM_BIOS(2, "cpn071", "CPN 0.71") // 1982
+ ROMX_LOAD("cpn71.rom", 0x0000, 0x2000, CRC(fcb1bdc8) SHA1(756e22f6d76eb26206765f92c78c7152944102b6), ROM_BIOS(2))
+ ROM_RELOAD( 0x2000, 0x2000)
+
ROM_REGION(0x2000, "rom", 0)
- ROM_DEFAULT_BIOS("cccp102")
- ROM_SYSTEM_BIOS(0, "cccp102", "CCCP 1.02")
ROMX_LOAD("cccp102.rom", 0x0000, 0x2000, CRC(2eb40a21) SHA1(e6ee738e5f2f8556002b79d18caa8ef21f14e08d), ROM_BIOS(0))
- ROM_SYSTEM_BIOS(1, "cccp094", "CCCP 0.94")
ROMX_LOAD("cccp094.rom", 0x0000, 0x2000, CRC(49989bd4) SHA1(62b57c858a3baa4ff943c31f77d331c414772a61), ROM_BIOS(1))
+ ROMX_LOAD("cccp094.rom", 0x0000, 0x2000, CRC(49989bd4) SHA1(62b57c858a3baa4ff943c31f77d331c414772a61), ROM_BIOS(2))
ROM_END
//-------------------------------------------------
@@ -59,11 +67,11 @@ ROM_END
void bbc_tube_zep100_device::device_add_mconfig(machine_config &config)
{
- Z80(config, m_z80, XTAL(4'000'000));
+ Z80(config, m_z80, 4_MHz_XTAL);
m_z80->set_addrmap(AS_PROGRAM, &bbc_tube_zep100_device::tube_zep100_mem);
m_z80->set_addrmap(AS_IO, &bbc_tube_zep100_device::tube_zep100_io);
- VIA6522(config, m_via, XTAL(4'000'000) / 2);
+ VIA6522(config, m_via, 4_MHz_XTAL / 2);
m_via->writepb_handler().set(FUNC(bbc_tube_zep100_device::via_pb_w));
m_via->cb2_handler().set(m_ppi, FUNC(i8255_device::pc2_w));
m_via->ca2_handler().set(m_ppi, FUNC(i8255_device::pc6_w));
@@ -75,12 +83,10 @@ void bbc_tube_zep100_device::device_add_mconfig(machine_config &config)
m_ppi->out_pc_callback().set(FUNC(bbc_tube_zep100_device::ppi_pc_w));
/* internal ram */
- RAM(config, m_ram);
- m_ram->set_default_size("64K");
- m_ram->set_default_value(0x00);
+ RAM(config, m_ram).set_default_size("64K").set_default_value(0x00);
/* software lists */
- SOFTWARE_LIST(config, "flop_ls_torch").set_type("bbc_flop_torch", SOFTWARE_LIST_ORIGINAL_SYSTEM);
+ SOFTWARE_LIST(config, "flop_ls_torch").set_type("bbc_flop_torch", SOFTWARE_LIST_ORIGINAL_SYSTEM).set_filter("Z80");
}
//-------------------------------------------------
@@ -100,16 +106,21 @@ const tiny_rom_entry *bbc_tube_zep100_device::device_rom_region() const
// bbc_tube_zep100_device - constructor
//-------------------------------------------------
+bbc_tube_zep100_device::bbc_tube_zep100_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_bbc_tube_interface(mconfig, *this)
+ , m_rom_enabled(true)
+ , m_z80(*this, "z80")
+ , m_via(*this, "via")
+ , m_ppi(*this, "ppi")
+ , m_ram(*this, "ram")
+ , m_rom(*this, "rom")
+ , m_port_b(0)
+{
+}
+
bbc_tube_zep100_device::bbc_tube_zep100_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
- : device_t(mconfig, BBC_TUBE_ZEP100, tag, owner, clock),
- device_bbc_tube_interface(mconfig, *this),
- m_z80(*this, "z80"),
- m_via(*this, "via"),
- m_ppi(*this, "ppi"),
- m_ram(*this, "ram"),
- m_rom(*this, "rom"),
- m_port_b(0),
- m_rom_enabled(true)
+ : bbc_tube_zep100_device(mconfig, BBC_TUBE_ZEP100, tag, owner, clock)
{
}
@@ -119,7 +130,6 @@ bbc_tube_zep100_device::bbc_tube_zep100_device(const machine_config &mconfig, co
void bbc_tube_zep100_device::device_start()
{
- m_slot = dynamic_cast<bbc_tube_slot_device *>(owner());
}
//-------------------------------------------------
@@ -128,8 +138,6 @@ void bbc_tube_zep100_device::device_start()
void bbc_tube_zep100_device::device_reset()
{
- m_via->reset();
-
m_rom_enabled = true;
}
diff --git a/src/devices/bus/bbc/tube/tube_zep100.h b/src/devices/bus/bbc/tube/tube_zep100.h
index 5f6ddca8b09..24b07ea4269 100644
--- a/src/devices/bus/bbc/tube/tube_zep100.h
+++ b/src/devices/bus/bbc/tube/tube_zep100.h
@@ -33,6 +33,8 @@ public:
bbc_tube_zep100_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
protected:
+ bbc_tube_zep100_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
+
// device-level overrides
virtual void device_start() override;
virtual void device_reset() override;
@@ -44,6 +46,8 @@ protected:
virtual DECLARE_READ8_MEMBER( host_r ) override;
virtual DECLARE_WRITE8_MEMBER( host_w ) override;
+ bool m_rom_enabled;
+
private:
required_device<z80_device> m_z80;
required_device<via6522_device> m_via;
@@ -52,7 +56,6 @@ private:
required_memory_region m_rom;
uint8_t m_port_b;
- bool m_rom_enabled;
DECLARE_READ8_MEMBER( mem_r );
DECLARE_WRITE8_MEMBER( mem_w );
diff --git a/src/devices/bus/bbc/userport/beebspch.cpp b/src/devices/bus/bbc/userport/beebspch.cpp
index ee2bdb67e6b..291179b54c6 100644
--- a/src/devices/bus/bbc/userport/beebspch.cpp
+++ b/src/devices/bus/bbc/userport/beebspch.cpp
@@ -23,7 +23,7 @@
DEFINE_DEVICE_TYPE(BBC_BEEBSPCH, bbc_beebspch_device, "bbc_beebspch", "Beeb Speech Synthesiser")
ROM_START(beebspch)
- ROM_REGION(0x4000, "rom", 0)
+ ROM_REGION(0x4000, "exp_rom", 0)
ROM_LOAD("watford_speech.rom", 0x0000, 0x2000, CRC(731642a8) SHA1(1bd31345af6043f394bc9d8e65180c93b2356905))
ROM_RELOAD(0x2000, 0x2000)
@@ -65,7 +65,6 @@ void bbc_beebspch_device::device_add_mconfig(machine_config &config)
bbc_beebspch_device::bbc_beebspch_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock)
: device_t(mconfig, BBC_BEEBSPCH, tag, owner, clock)
, device_bbc_userport_interface(mconfig, *this)
- , m_rom(*this, "rom")
, m_nsp(*this, "sp0256")
{
}
@@ -79,15 +78,6 @@ void bbc_beebspch_device::device_start()
{
}
-//-------------------------------------------------
-// device_reset - device-specific reset
-//-------------------------------------------------
-
-void bbc_beebspch_device::device_reset()
-{
- machine().root_device().membank("bank4")->configure_entry(13, memregion("rom")->base());
-}
-
//**************************************************************************
// IMPLEMENTATION
//**************************************************************************
diff --git a/src/devices/bus/bbc/userport/beebspch.h b/src/devices/bus/bbc/userport/beebspch.h
index 092a228bf0b..94c36b0cc84 100644
--- a/src/devices/bus/bbc/userport/beebspch.h
+++ b/src/devices/bus/bbc/userport/beebspch.h
@@ -33,7 +33,6 @@ public:
protected:
// device-level overrides
virtual void device_start() override;
- virtual void device_reset() override;
// optional information overrides
virtual void device_add_mconfig(machine_config &config) override;
@@ -42,7 +41,6 @@ protected:
virtual DECLARE_WRITE8_MEMBER(pb_w) override;
private:
- required_memory_region m_rom;
required_device<sp0256_device> m_nsp;
};