summaryrefslogtreecommitdiffstatshomepage
path: root/src/mess/includes/apple3.h
blob: e815ba191d8471b3012ff605aacac89459f9f8ee (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
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/*****************************************************************************
 *
 * includes/apple3.h
 *
 * Apple ///
 *
 ****************************************************************************/

#ifndef APPLE3_H_
#define APPLE3_H_

#include "includes/apple2.h"
#include "machine/applefdc.h"
#include "machine/6522via.h"

#define VAR_VM0			0x0001
#define VAR_VM1			0x0002
#define VAR_VM2			0x0004
#define VAR_VM3			0x0008
#define VAR_EXTA0		0x0010
#define VAR_EXTA1		0x0020
#define VAR_EXTPOWER	0x0040
#define VAR_EXTSIDE		0x0080


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

	UINT32 m_flags;
	UINT8 m_via_0_a;
	UINT8 m_via_0_b;
	UINT8 m_via_1_a;
	UINT8 m_via_1_b;
	int m_via_1_irq;
	int m_enable_mask;
	offs_t m_zpa;
	int m_profile_lastaddr;
	UINT8 m_profile_gotstrobe;
	UINT8 m_profile_readdata;
	UINT8 m_profile_busycount;
	UINT8 m_profile_busy;
	UINT8 m_profile_online;
	UINT8 m_profile_writedata;
	UINT8 m_last_n;
	UINT8 *m_char_mem;
	UINT32 *m_hgr_map;
	DECLARE_READ8_MEMBER(apple3_c0xx_r);
	DECLARE_WRITE8_MEMBER(apple3_c0xx_w);
	DECLARE_READ8_MEMBER(apple3_00xx_r);
	DECLARE_WRITE8_MEMBER(apple3_00xx_w);
	DECLARE_READ8_MEMBER(apple3_indexed_read);
	DECLARE_WRITE8_MEMBER(apple3_indexed_write);
	UINT8 apple3_profile_r(offs_t offset);
	void apple3_profile_w(offs_t offset, UINT8 data);
	DECLARE_DIRECT_UPDATE_MEMBER(apple3_opbase);
	DECLARE_DRIVER_INIT(apple3);
};


/*----------- defined in machine/apple3.c -----------*/

extern const applefdc_interface apple3_fdc_interface;
extern const via6522_interface apple3_via_0_intf;
extern const via6522_interface apple3_via_1_intf;

MACHINE_RESET( apple3 );
INTERRUPT_GEN( apple3_interrupt );




/*----------- defined in video/apple3.c -----------*/

VIDEO_START( apple3 );
SCREEN_UPDATE_IND16( apple3 );
void apple3_write_charmem(running_machine &machine);


#endif /* APPLE3_H_ */