1 // license:BSD-3-Clause 2 // copyright-holders:Nigel Barnes 3 /********************************************************************** 4 5 Autocue RAM Disc 6 7 **********************************************************************/ 8 9 10 #ifndef MAME_BUS_BBC_EXP_AUTOCUE_H 11 #define MAME_BUS_BBC_EXP_AUTOCUE_H 12 13 #include "exp.h" 14 #include "machine/nvram.h" 15 16 //************************************************************************** 17 // TYPE DEFINITIONS 18 //************************************************************************** 19 20 class bbc_autocue_device : 21 public device_t, 22 public device_bbc_exp_interface 23 { 24 public: 25 // construction/destruction 26 bbc_autocue_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock); 27 28 protected: 29 // device-level overrides 30 virtual void device_start() override; 31 32 // optional information overrides 33 virtual void device_add_mconfig(machine_config &config) override; 34 35 virtual void fred_w(offs_t offset, uint8_t data) override; 36 virtual uint8_t jim_r(offs_t offset) override; 37 virtual void jim_w(offs_t offset, uint8_t data) override; 38 39 private: 40 required_device<nvram_device> m_nvram; 41 std::unique_ptr<uint8_t[]> m_ram; 42 43 uint16_t m_ram_page; 44 }; 45 46 47 // device type definition 48 DECLARE_DEVICE_TYPE(BBC_AUTOCUE, bbc_autocue_device); 49 50 51 #endif /* MAME_BUS_BBC_EXP_AUTOCUE_H */ 52