summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/includes/tandy1t.h
blob: 4b4d83b3d93f524b867c500e51be2460054814a7 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/*****************************************************************************
 *
 * includes/tandy1t.h
 *
 ****************************************************************************/

#ifndef TANDY1T_H_
#define TANDY1T_H_

#include "includes/pc.h"

class tandy_pc_state : public pc_state
{
public:
	tandy_pc_state(const machine_config &mconfig, device_type type, const char *tag)
		: pc_state(mconfig, type, tag) { }

	DECLARE_WRITE8_MEMBER ( pc_t1t_p37x_w );
	DECLARE_READ8_MEMBER ( pc_t1t_p37x_r );

	DECLARE_WRITE8_MEMBER ( tandy1000_pio_w );
	DECLARE_READ8_MEMBER(tandy1000_pio_r);
	DECLARE_READ8_MEMBER( tandy1000_bank_r );
	DECLARE_WRITE8_MEMBER( tandy1000_bank_w );

	int tandy1000_read_eeprom();
	void tandy1000_write_eeprom(UINT8 data);
	void tandy1000_set_bios_bank();

	DECLARE_MACHINE_RESET(tandy1000rl);

	struct
	{
		UINT8 low, high;
	} m_eeprom_ee[0x40]; /* only 0 to 4 used in hx, addressing seems to allow this */

private:
	int m_eeprom_state;
	int m_eeprom_clock;
	UINT8 m_eeprom_oper;
	UINT16 m_eeprom_data;

	UINT8 m_tandy_data[8];

	UINT8 m_tandy_bios_bank;    /* I/O port FFEAh */
	UINT8 m_tandy_ppi_portb, m_tandy_ppi_portc;

};

extern NVRAM_HANDLER( tandy1000 );
INPUT_PORTS_EXTERN( t1000_keyboard );


#endif /* TANDY1T_H_ */