1 // license:BSD-3-Clause
2 // copyright-holders:Mark McDougall, R. Belmont
3 /***************************************************************************
4 
5   namcond1.h
6 
7   Common functions & declarations for the Namco ND-1 driver
8 
9 ***************************************************************************/
10 
11 #include "video/ygv608.h"
12 #include "machine/nvram.h"
13 
14 class namcond1_state : public driver_device
15 {
16 public:
namcond1_state(const machine_config & mconfig,device_type type,const char * tag)17 	namcond1_state(const machine_config &mconfig, device_type type, const char *tag)
18 		: driver_device(mconfig, type, tag),
19 		m_maincpu(*this, "maincpu"),
20 		m_mcu(*this, "mcu"),
21 		m_ygv608(*this, "ygv608"),
22 		m_zpr1(*this, "zpr1"),
23 		m_zpr2(*this, "zpr2"),
24 		m_shared_ram(*this, "shared_ram") { }
25 
26 	void abcheck(machine_config &config);
27 	void namcond1(machine_config &config);
28 
29 private:
30 	required_device<cpu_device> m_maincpu;
31 	required_device<cpu_device> m_mcu;
32 	required_device<ygv608_device> m_ygv608;
33 	optional_device<nvram_device> m_zpr1, m_zpr2;
34 
35 	required_shared_ptr<uint16_t> m_shared_ram;
36 
37 	uint8_t m_h8_irq5_enabled;
38 	int m_p8;
39 
40 	uint16_t mcu_p7_read();
41 	uint16_t mcu_pa_read();
42 	void mcu_pa_write(uint16_t data);
43 	uint16_t cuskey_r(offs_t offset);
44 	void cuskey_w(offs_t offset, uint16_t data);
45 	uint16_t printer_r();
46 
47 	virtual void machine_start() override;
48 	virtual void machine_reset() override;
49 
50 	DECLARE_WRITE_LINE_MEMBER( vblank_irq_w );
51 	DECLARE_WRITE_LINE_MEMBER( raster_irq_w );
52 	INTERRUPT_GEN_MEMBER(mcu_interrupt);
53 	void abcheck_map(address_map &map);
54 	void namcond1_map(address_map &map);
55 	void nd1h8iomap(address_map &map);
56 	void nd1h8rwmap(address_map &map);
57 };
58