summaryrefslogtreecommitdiffstatshomepage
path: root/src/devices/bus/spectrum/beta.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/devices/bus/spectrum/beta.h')
-rw-r--r--src/devices/bus/spectrum/beta.h54
1 files changed, 42 insertions, 12 deletions
diff --git a/src/devices/bus/spectrum/beta.h b/src/devices/bus/spectrum/beta.h
index b759201d35d..df2c16a2738 100644
--- a/src/devices/bus/spectrum/beta.h
+++ b/src/devices/bus/spectrum/beta.h
@@ -1,12 +1,12 @@
// license:BSD-3-Clause
-// copyright-holders:Nigel Barnes
+// copyright-holders:Nigel Barnes, David Haywood
/*********************************************************************
- Technology Research Beta 128 Disk interface
+ Technology Research Beta Disk interface
*********************************************************************/
-#ifndef MAME_BUS_SPECTRUM_BETA_H
-#define MAME_BUS_SPECTRUM_BETA_H
+#ifndef MAME_BUS_SPECTRUM_BETAV2_H
+#define MAME_BUS_SPECTRUM_BETAV2_H
#include "exp.h"
#include "softlist.h"
@@ -18,17 +18,17 @@
// TYPE DEFINITIONS
//**************************************************************************
-class spectrum_beta128_device :
+class spectrum_betav2_device :
public device_t,
public device_spectrum_expansion_interface
{
public:
// construction/destruction
- spectrum_beta128_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+ spectrum_betav2_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
+ spectrum_betav2_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
DECLARE_FLOPPY_FORMATS(floppy_formats);
- DECLARE_INPUT_CHANGED_MEMBER(magic_button);
protected:
// device-level overrides
@@ -36,9 +36,9 @@ protected:
virtual void device_reset() override;
// optional information overrides
+ void device_add_mconfig_base(machine_config& config);
virtual void device_add_mconfig(machine_config &config) override;
virtual const tiny_rom_entry *device_rom_region() const override;
- virtual ioport_constructor device_input_ports() const override;
virtual void opcode_fetch(offs_t offset) override;
virtual uint8_t mreq_r(offs_t offset) override;
@@ -48,17 +48,47 @@ protected:
virtual DECLARE_READ_LINE_MEMBER(romcs) override;
required_memory_region m_rom;
- required_device<fd1793_device> m_fdc;
+ required_device<wd_fdc_device_base> m_fdc;
required_device_array<floppy_connector, 4> m_floppy;
required_device<spectrum_expansion_slot_device> m_exp;
- required_ioport m_switch;
int m_romcs;
};
+class spectrum_betav3_device :
+ public spectrum_betav2_device
+{
+public:
+ // construction/destruction
+ spectrum_betav3_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
+ spectrum_betav3_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+protected:
+ virtual void device_add_mconfig(machine_config &config) override;
+ virtual const tiny_rom_entry *device_rom_region() const override;
+
+};
+
+class spectrum_betaplus_device :
+ public spectrum_betav3_device
+{
+public:
+ // construction/destruction
+ spectrum_betaplus_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
+ spectrum_betaplus_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+ DECLARE_INPUT_CHANGED_MEMBER(magic_button);
+
+protected:
+ virtual const tiny_rom_entry *device_rom_region() const override;
+ virtual ioport_constructor device_input_ports() const override;
+
+};
// device type definition
-DECLARE_DEVICE_TYPE(SPECTRUM_BETA128, spectrum_beta128_device)
+DECLARE_DEVICE_TYPE(SPECTRUM_BETAV2, spectrum_betav2_device)
+DECLARE_DEVICE_TYPE(SPECTRUM_BETAV3, spectrum_betav3_device)
+DECLARE_DEVICE_TYPE(SPECTRUM_BETAPLUS, spectrum_betaplus_device)
-#endif // MAME_BUS_SPECTRUM_BETA_H
+#endif // MAME_BUS_SPECTRUM_BETAV2_H