diff options
Diffstat (limited to 'src/devices/bus/a800/rom.h')
-rw-r--r-- | src/devices/bus/a800/rom.h | 224 |
1 files changed, 224 insertions, 0 deletions
diff --git a/src/devices/bus/a800/rom.h b/src/devices/bus/a800/rom.h new file mode 100644 index 00000000000..a1e6cde0925 --- /dev/null +++ b/src/devices/bus/a800/rom.h @@ -0,0 +1,224 @@ +// license:BSD-3-Clause +// copyright-holders:Fabio Priuli +#ifndef __A800_ROM_H +#define __A800_ROM_H + +#include "a800_slot.h" + + +// ======================> a800_rom_device + +class a800_rom_device : public device_t, + public device_a800_cart_interface +{ +public: + // construction/destruction + a800_rom_device(const machine_config &mconfig, device_type type, const char *name, const char *tag, device_t *owner, UINT32 clock, const char *shortname, const char *source); + a800_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + // device-level overrides + virtual void device_start(); + virtual void device_reset(); + + virtual DECLARE_READ8_MEMBER(read_80xx); +}; + + +// ======================> a800_rom_bbsb_device + +class a800_rom_bbsb_device : public a800_rom_device +{ +public: + // construction/destruction + a800_rom_bbsb_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + // device-level overrides + virtual void device_start(); + virtual void device_reset(); + + virtual DECLARE_READ8_MEMBER(read_80xx); + virtual DECLARE_WRITE8_MEMBER(write_80xx); + +protected: + int m_banks[2]; +}; + + +// ======================> a800_rom_williams_device + +class a800_rom_williams_device : public a800_rom_device +{ +public: + // construction/destruction + a800_rom_williams_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + // device-level overrides + virtual void device_start(); + virtual void device_reset(); + + virtual DECLARE_READ8_MEMBER(read_80xx); + virtual DECLARE_WRITE8_MEMBER(write_d5xx); + +protected: + int m_bank; +}; + + +// ======================> a800_rom_express_device + +class a800_rom_express_device : public a800_rom_device +{ +public: + // construction/destruction + a800_rom_express_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + // device-level overrides + virtual void device_start(); + virtual void device_reset(); + + virtual DECLARE_READ8_MEMBER(read_80xx); + virtual DECLARE_WRITE8_MEMBER(write_d5xx); + +protected: + int m_bank; +}; + + +// ======================> a800_rom_blizzard_device + +class a800_rom_blizzard_device : public a800_rom_device +{ +public: + // construction/destruction + a800_rom_blizzard_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + // device-level overrides + virtual void device_start(); + virtual void device_reset(); + + virtual DECLARE_READ8_MEMBER(read_80xx); +}; + + +// ======================> a800_rom_turbo_device + +class a800_rom_turbo_device : public a800_rom_device +{ +public: + // construction/destruction + a800_rom_turbo_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + // device-level overrides + virtual void device_start(); + virtual void device_reset(); + + virtual DECLARE_READ8_MEMBER(read_80xx); + virtual DECLARE_WRITE8_MEMBER(write_d5xx); + +protected: + int m_bank; +}; + + +// ======================> a800_rom_telelink2_device + +class a800_rom_telelink2_device : public a800_rom_device +{ +public: + // construction/destruction + a800_rom_telelink2_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + virtual DECLARE_READ8_MEMBER(read_80xx); + virtual DECLARE_WRITE8_MEMBER(write_80xx); + virtual DECLARE_READ8_MEMBER(read_d5xx); + virtual DECLARE_WRITE8_MEMBER(write_d5xx); +}; + + +// ======================> a800_rom_microcalc_device + +class a800_rom_microcalc_device : public a800_rom_device +{ +public: + // construction/destruction + a800_rom_microcalc_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + // device-level overrides + virtual void device_start(); + virtual void device_reset(); + + virtual DECLARE_READ8_MEMBER(read_80xx); + virtual DECLARE_WRITE8_MEMBER(write_d5xx); + +protected: + int m_bank; +}; + + +// ======================> xegs_rom_device + +class xegs_rom_device : public a800_rom_device +{ +public: + // construction/destruction + xegs_rom_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + // device-level overrides + virtual void device_start(); + virtual void device_reset(); + + virtual DECLARE_READ8_MEMBER(read_80xx); + virtual DECLARE_WRITE8_MEMBER(write_d5xx); + +protected: + int m_bank; +}; + + +// ======================> a5200_rom_2chips_device + +class a5200_rom_2chips_device : public a800_rom_device +{ +public: + // construction/destruction + a5200_rom_2chips_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + virtual DECLARE_READ8_MEMBER(read_80xx); +}; + + +// ======================> a5200_rom_bbsb_device + +class a5200_rom_bbsb_device : public a800_rom_device +{ +public: + // construction/destruction + a5200_rom_bbsb_device(const machine_config &mconfig, const char *tag, device_t *owner, UINT32 clock); + + // device-level overrides + virtual void device_start(); + virtual void device_reset(); + + virtual DECLARE_READ8_MEMBER(read_80xx); + virtual DECLARE_WRITE8_MEMBER(write_80xx); + +protected: + int m_banks[2]; +}; + + + +// device type definition +extern const device_type A800_ROM; +extern const device_type A800_ROM_BBSB; +extern const device_type A800_ROM_WILLIAMS; +extern const device_type A800_ROM_EXPRESS; +extern const device_type A800_ROM_TURBO; +extern const device_type A800_ROM_TELELINK2; +extern const device_type A800_ROM_MICROCALC; +extern const device_type XEGS_ROM; +extern const device_type A5200_ROM_2CHIPS; +extern const device_type A5200_ROM_BBSB; + + +#endif |