1
/*****************************************************************************
7
* Driver by Lee Hammerton
9
****************************************************************************/
14
/* screen dimensions */
17
#define SAM_TOTAL_WIDTH SAM_BLOCK*96
18
#define SAM_TOTAL_HEIGHT 312
19
#define SAM_SCREEN_WIDTH SAM_BLOCK*64
20
#define SAM_SCREEN_HEIGHT 192
21
#define SAM_BORDER_LEFT SAM_BLOCK*4
22
#define SAM_BORDER_RIGHT SAM_BLOCK*4
23
#define SAM_BORDER_TOP 37
24
#define SAM_BORDER_BOTTOM 46
26
/* interrupt sources */
27
#define SAM_LINE_INT 0x01
28
#define SAM_MOUSE_INT 0x02
29
#define SAM_MIDIIN_INT 0x04
30
#define SAM_FRAME_INT 0x08
31
#define SAM_MIDIOUT_INT 0x10
34
class samcoupe_state : public driver_device
37
samcoupe_state(const machine_config &mconfig, device_type type, const char *tag)
38
: driver_device(mconfig, type, tag) { }
40
emu_timer *m_video_update_timer;
42
UINT8 m_lmpr, m_hmpr, m_vmpr; /* memory pages */
43
UINT8 m_lext, m_hext; /* extended memory page */
44
UINT8 m_border; /* border */
45
UINT8 m_clut[16]; /* color lookup table, 16 entries */
46
UINT8 m_line_int; /* line interrupt */
47
UINT8 m_status; /* status register */
54
emu_timer *m_mouse_reset;
55
UINT8 m_mouse_data[9];
56
int m_mouse_x, m_mouse_y;
61
/*----------- defined in drivers/samcoupe.c -----------*/
63
void samcoupe_irq(device_t *device, UINT8 src);
66
/*----------- defined in machine/samcoupe.c -----------*/
68
void samcoupe_update_memory(address_space *space);
69
UINT8 samcoupe_mouse_r(running_machine &machine);
71
WRITE8_HANDLER( samcoupe_ext_mem_w );
72
MACHINE_START( samcoupe );
73
MACHINE_RESET( samcoupe );
76
/*----------- defined in video/samcoupe.c -----------*/
78
TIMER_CALLBACK( sam_video_update_callback );
81
#endif /* SAMCOUPE_H_ */