1 // license:BSD-3-Clause
2 // copyright-holders:Jonathan Gevaryahu
3 /***************************************************************************
4 
5         tsispch.h
6 
7 ****************************************************************************/
8 
9 #ifndef MAME_INCLUDES_TSISPCH_H
10 #define MAME_INCLUDES_TSISPCH_H
11 
12 #pragma once
13 
14 #include "cpu/upd7725/upd7725.h"
15 #include "machine/pic8259.h"
16 
17 class tsispch_state : public driver_device
18 {
19 public:
tsispch_state(const machine_config & mconfig,device_type type,const char * tag)20 	tsispch_state(const machine_config &mconfig, device_type type, const char *tag)
21 		: driver_device(mconfig, type, tag),
22 		m_maincpu(*this, "maincpu"),
23 		m_dsp(*this, "dsp"),
24 		m_pic(*this, "pic8259")
25 	{
26 	}
27 
28 	void prose2k(machine_config &config);
29 
30 	void init_prose2k();
31 
32 private:
33 	uint8_t dsw_r();
34 	void peripheral_w(uint8_t data);
35 	uint16_t dsp_data_r();
36 	void dsp_data_w(uint16_t data);
37 	uint16_t dsp_status_r();
38 	void dsp_status_w(uint16_t data);
39 	DECLARE_WRITE_LINE_MEMBER(i8251_rxrdy_int);
40 	DECLARE_WRITE_LINE_MEMBER(i8251_txempty_int);
41 	DECLARE_WRITE_LINE_MEMBER(i8251_txrdy_int);
42 	DECLARE_WRITE_LINE_MEMBER(dsp_to_8086_p0_w);
43 	DECLARE_WRITE_LINE_MEMBER(dsp_to_8086_p1_w);
44 
45 	void dsp_data_map(address_map &map);
46 	void dsp_prg_map(address_map &map);
47 	void i8086_io(address_map &map);
48 	void i8086_mem(address_map &map);
49 
50 	virtual void machine_reset() override;
51 
52 	required_device<cpu_device> m_maincpu;
53 	required_device<upd7725_device> m_dsp;
54 	required_device<pic8259_device> m_pic;
55 
56 	uint8_t m_paramReg;           // status leds and resets and etc
57 };
58 
59 #endif // MAME_INCLUDES_TSISPCH_H
60