1 // license:BSD-3-Clause
2 // copyright-holders:Angelo Salese,Takahiro Nogi
3 /***************************************************************************
4 
5     Nichibutsu sound HW
6 
7 ***************************************************************************/
8 
9 #ifndef MAME_AUDIO_NICHISND_H
10 #define MAME_AUDIO_NICHISND_H
11 
12 #pragma once
13 
14 #include "cpu/z80/tmpz84c011.h"
15 #include "sound/3812intf.h"
16 #include "sound/dac.h"
17 #include "speaker.h"
18 #include "machine/gen_latch.h"
19 
20 
21 //**************************************************************************
22 //  TYPE DEFINITIONS
23 //**************************************************************************
24 
25 // ======================> nichisnd_device
26 
27 class nichisnd_device : public device_t
28 {
29 public:
30 	// construction/destruction
31 	nichisnd_device(const machine_config &mconfig, const char *tag, device_t *owner, uint32_t clock);
32 
33 	// I/O operations
34 	void sound_host_command_w(uint8_t data);
35 
36 	void nichisnd_io_map(address_map &map);
37 	void nichisnd_map(address_map &map);
38 
39 protected:
40 	// device-level overrides
41 	//virtual void device_validity_check(validity_checker &valid) const override;
42 	virtual void device_add_mconfig(machine_config &config) override;
43 	virtual void device_start() override;
44 	virtual void device_reset() override;
45 
46 private:
47 	required_device<generic_latch_8_device> m_soundlatch;
48 	required_region_ptr<uint8_t> m_sound_rom;
49 
50 	void soundlatch_clear_w(uint8_t data);
51 	void soundbank_w(uint8_t data);
52 };
53 
54 
55 // device type definition
56 DECLARE_DEVICE_TYPE(NICHISND, nichisnd_device)
57 
58 
59 
60 //**************************************************************************
61 //  GLOBAL VARIABLES
62 //**************************************************************************
63 
64 
65 #endif // MAME_MACHINE_NICHISND_H
66