1 // license:BSD-3-Clause
2 // copyright-holders:Mathis Rosenhauer
3 /*************************************************************************
4 
5     Centuri Aztarac hardware
6 
7 *************************************************************************/
8 
9 #include "cpu/m68000/m68000.h"
10 #include "machine/gen_latch.h"
11 #include "machine/x2212.h"
12 #include "video/vector.h"
13 #include "screen.h"
14 
15 class aztarac_state : public driver_device
16 {
17 public:
aztarac_state(const machine_config & mconfig,device_type type,const char * tag)18 	aztarac_state(const machine_config &mconfig, device_type type, const char *tag)
19 		: driver_device(mconfig, type, tag),
20 		m_maincpu(*this, "maincpu"),
21 		m_audiocpu(*this, "audiocpu"),
22 		m_nvram(*this, "nvram"),
23 		m_vector(*this, "vector"),
24 		m_screen(*this, "screen"),
25 		m_soundlatch(*this, "soundlatch"),
26 		m_vectorram(*this, "vectorram") { }
27 
28 	required_device<cpu_device> m_maincpu;
29 	required_device<cpu_device> m_audiocpu;
30 	required_device<x2212_device> m_nvram;
31 	required_device<vector_device> m_vector;
32 	required_device<screen_device> m_screen;
33 	required_device<generic_latch_8_device> m_soundlatch;
34 
35 	required_shared_ptr<uint16_t> m_vectorram;
36 
37 	int m_sound_status;
38 	int m_xcenter;
39 	int m_ycenter;
40 
41 	void nvram_store_w(uint16_t data);
42 	uint16_t joystick_r();
43 	void ubr_w(uint8_t data);
44 	uint16_t sound_r();
45 	void sound_w(offs_t offset, uint16_t data, uint16_t mem_mask = ~0);
46 	uint8_t snd_command_r();
47 	uint8_t snd_status_r();
48 	void snd_status_w(uint8_t data);
49 
50 	virtual void machine_start() override;
51 	virtual void machine_reset() override;
52 	virtual void video_start() override;
53 
54 	DECLARE_WRITE_LINE_MEMBER(video_interrupt);
55 	INTERRUPT_GEN_MEMBER(snd_timed_irq);
56 
57 	inline void read_vectorram(uint16_t *vectorram, int addr, int *x, int *y, int *c);
58 	void aztarac(machine_config &config);
59 	void main_map(address_map &map);
60 	void sound_map(address_map &map);
61 };
62