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.h41
1 files changed, 39 insertions, 2 deletions
diff --git a/src/devices/bus/spectrum/beta.h b/src/devices/bus/spectrum/beta.h
index 5d080f93deb..82600ab9206 100644
--- a/src/devices/bus/spectrum/beta.h
+++ b/src/devices/bus/spectrum/beta.h
@@ -12,6 +12,8 @@
#include "softlist.h"
#include "imagedev/floppy.h"
#include "machine/wd_fdc.h"
+#include "machine/i8255.h"
+#include "machine/6850acia.h"
#include "formats/trd_dsk.h"
//**************************************************************************
@@ -95,26 +97,61 @@ protected:
};
-class spectrum_betacbi_device :
+class spectrum_betaclone_device :
public spectrum_betaplus_device
{
public:
// construction/destruction
+ spectrum_betaclone_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
+ spectrum_betaclone_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+protected:
+ virtual uint8_t mreq_r(offs_t offset) override;
+ virtual const tiny_rom_entry *device_rom_region() const override;
+
+};
+
+class spectrum_betacbi_device :
+ public spectrum_betaclone_device
+{
+public:
+ // construction/destruction
spectrum_betacbi_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
spectrum_betacbi_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 uint8_t mreq_r(offs_t offset) override;
virtual void fetch(offs_t offset) override;
virtual const tiny_rom_entry *device_rom_region() const override;
};
+class spectrum_gamma_device :
+ public spectrum_betaplus_device
+{
+public:
+ // construction/destruction
+ spectrum_gamma_device(const machine_config &mconfig, device_type type, const char *tag, device_t *owner, uint32_t clock);
+ spectrum_gamma_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
+
+protected:
+ required_device<i8255_device> m_ppi;
+ required_device<acia6850_device> m_acia;
+
+ virtual void device_add_mconfig(machine_config &config) override;
+ virtual uint8_t mreq_r(offs_t offset) override;
+ virtual const tiny_rom_entry *device_rom_region() const override;
+ virtual uint8_t iorq_r(offs_t offset) override;
+ virtual void iorq_w(offs_t offset, uint8_t data) override;
+ virtual DECLARE_READ_LINE_MEMBER(romcs) override { return 1; };
+};
+
// device type definition
DECLARE_DEVICE_TYPE(SPECTRUM_BETAV2, spectrum_betav2_device)
DECLARE_DEVICE_TYPE(SPECTRUM_BETAV3, spectrum_betav3_device)
DECLARE_DEVICE_TYPE(SPECTRUM_BETAPLUS, spectrum_betaplus_device)
+DECLARE_DEVICE_TYPE(SPECTRUM_BETACLONE, spectrum_betaclone_device)
DECLARE_DEVICE_TYPE(SPECTRUM_BETACBI, spectrum_betacbi_device)
+DECLARE_DEVICE_TYPE(SPECTRUM_GAMMA, spectrum_gamma_device)
#endif // MAME_BUS_SPECTRUM_BETA_H