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