summaryrefslogblamecommitdiffstatshomepage
path: root/src/mame/includes/tsispch.h
blob: e6ce7790132353d8e6f5af02fedcabbbc820f353 (plain) (tree)
1
2
3
4
5
6
7
8
9
10

                                       





                                                                             

                               
 
            
 
                            

                             

                               


                                          
                                                                                       
                                                    


                                                


                                       
 





                                             
                            


                                                     

                                                    
 
                                             



                                            









                                                                       
 
                                 
// license:BSD-3-Clause
// copyright-holders:Jonathan Gevaryahu
/***************************************************************************

        tsispch.h

****************************************************************************/

#ifndef MAME_INCLUDES_TSISPCH_H
#define MAME_INCLUDES_TSISPCH_H

#pragma once

#include "machine/pic8259.h"
#include "machine/terminal.h"

#define TERMINAL_TAG "terminal"

class tsispch_state : public driver_device
{
public:
	tsispch_state(const machine_config &mconfig, device_type type, const char *tag)
		: driver_device(mconfig, type, tag),
		m_maincpu(*this, "maincpu"),
		m_dsp(*this, "dsp"),
		m_terminal(*this, TERMINAL_TAG),
		m_pic(*this, "pic8259")
	{
	}

	DECLARE_READ8_MEMBER(dsw_r);
	DECLARE_WRITE8_MEMBER(peripheral_w);
	DECLARE_READ16_MEMBER(dsp_data_r);
	DECLARE_WRITE16_MEMBER(dsp_data_w);
	DECLARE_READ16_MEMBER(dsp_status_r);
	DECLARE_WRITE16_MEMBER(dsp_status_w);
	void init_prose2k();
	DECLARE_WRITE_LINE_MEMBER(i8251_rxrdy_int);
	DECLARE_WRITE_LINE_MEMBER(i8251_txempty_int);
	DECLARE_WRITE_LINE_MEMBER(i8251_txrdy_int);
	DECLARE_WRITE_LINE_MEMBER(dsp_to_8086_p0_w);
	DECLARE_WRITE_LINE_MEMBER(dsp_to_8086_p1_w);

	void prose2k(machine_config &config);
	void dsp_data_map(address_map &map);
	void dsp_prg_map(address_map &map);
	void i8086_io(address_map &map);
	void i8086_mem(address_map &map);
protected:
	virtual void machine_reset() override;

	required_device<cpu_device> m_maincpu;
	required_device<cpu_device> m_dsp;
	required_device<generic_terminal_device> m_terminal;
	required_device<pic8259_device> m_pic;

	uint8_t m_paramReg;           // status leds and resets and etc
};

#endif // MAME_INCLUDES_TSISPCH_H