1 // license:GPL-2.0+ 2 // copyright-holders:Dirk Best 3 /*************************************************************************** 4 5 ACT Apricot RAM Expansions 6 7 ***************************************************************************/ 8 9 #ifndef MAME_BUS_APRICOT_RAM_H 10 #define MAME_BUS_APRICOT_RAM_H 11 12 #pragma once 13 14 #include "expansion.h" 15 16 17 //************************************************************************** 18 // TYPE DEFINITIONS 19 //************************************************************************** 20 21 22 // ======================> apricot_256k_ram_device 23 24 class apricot_256k_ram_device : public device_t, public device_apricot_expansion_card_interface 25 { 26 public: 27 // construction/destruction 28 apricot_256k_ram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); 29 30 protected: 31 virtual ioport_constructor device_input_ports() const override; 32 virtual void device_start() override; 33 virtual void device_reset() override; 34 35 private: 36 required_ioport m_sw; 37 38 std::vector<uint16_t> m_ram; 39 }; 40 41 42 // ======================> apricot_128k_ram_device 43 44 class apricot_128k_ram_device : public device_t, public device_apricot_expansion_card_interface 45 { 46 public: 47 // construction/destruction 48 apricot_128k_ram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); 49 50 protected: 51 virtual ioport_constructor device_input_ports() const override; 52 virtual void device_start() override; 53 virtual void device_reset() override; 54 55 private: 56 required_ioport m_strap; 57 58 std::vector<uint16_t> m_ram; 59 }; 60 61 62 // ======================> apricot_512k_ram_device 63 64 class apricot_512k_ram_device : public device_t, public device_apricot_expansion_card_interface 65 { 66 public: 67 // construction/destruction 68 apricot_512k_ram_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); 69 70 protected: 71 virtual ioport_constructor device_input_ports() const override; 72 virtual void device_start() override; 73 virtual void device_reset() override; 74 75 private: 76 required_ioport m_strap; 77 78 std::vector<uint16_t> m_ram; 79 }; 80 81 82 // device type definition 83 DECLARE_DEVICE_TYPE(APRICOT_256K_RAM, apricot_256k_ram_device) 84 DECLARE_DEVICE_TYPE(APRICOT_128K_RAM, apricot_128k_ram_device) 85 DECLARE_DEVICE_TYPE(APRICOT_512K_RAM, apricot_512k_ram_device) 86 87 88 #endif // MAME_BUS_APRICOT_RAM_H 89