32x: mode2 draw, debug, poll detection
[picodrive.git] / cpu / sh2mame / sh2.h
CommitLineData
eaa10a6e 1/*****************************************************************************\r
2 *\r
3 * sh2.h\r
4 * Portable Hitachi SH-2 (SH7600 family) emulator interface\r
5 *\r
6 * Copyright Juergen Buchmueller <pullmoll@t-online.de>,\r
7 * all rights reserved.\r
8 *\r
9 * - This source code is released as freeware for non-commercial purposes.\r
10 * - You are free to use and redistribute this code in modified or\r
11 * unmodified form, provided you list me in the credits.\r
12 * - If you modify this source code, you must add a notice to each modified\r
13 * source file that it has been changed. If you're a nice person, you\r
14 * will clearly mark each change too. :)\r
15 * - If you wish to use this for commercial purposes, please contact me at\r
16 * pullmoll@t-online.de\r
17 * - The author of this copywritten work reserves the right to change the\r
18 * terms of its usage and license at any time, including retroactively\r
19 * - This entire notice must remain in the source code.\r
20 *\r
21 * This work is based on <tiraniddo@hotmail.com> C/C++ implementation of\r
22 * the SH-2 CPU core and was heavily changed to the MAME CPU requirements.\r
23 * Thanks also go to Chuck Mason <chukjr@sundail.net> and Olivier Galibert\r
24 * <galibert@pobox.com> for letting me peek into their SEMU code :-)\r
25 *\r
26 *****************************************************************************/\r
27\r
28#pragma once\r
29\r
30#ifndef __SH2_H__\r
31#define __SH2_H__\r
32\r
33typedef struct\r
34{\r
35 UINT32 r[16];\r
36 UINT32 ppc;\r
37 UINT32 pc;\r
38 UINT32 pr;\r
39 UINT32 sr;\r
40 UINT32 gbr, vbr;\r
41 UINT32 mach, macl;\r
42 UINT32 ea;\r
43 UINT32 delay;\r
44 UINT32 test_irq;\r
45\r
46 // XXX: unused, will we ever use?\r
47 void (*irq_callback)(void);\r
48 int nmi_line_state;\r
49 int internal_irq_level;\r
50 int is_slave;\r
51} SH2;\r
52\r
266c6afa 53extern int sh2_icount;\r
54\r
eaa10a6e 55void sh2_init(SH2 *sh2);\r
56void sh2_reset(SH2 *sh2);\r
57int sh2_execute(SH2 *sh2_, int cycles);\r
58\r
59#endif /* __SH2_H__ */\r