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