1 /*****************************************************************************
\r
4 * Portable Hitachi SH-2 (SH7600 family) emulator interface
\r
6 * Copyright Juergen Buchmueller <pullmoll@t-online.de>,
\r
7 * all rights reserved.
\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
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
26 *****************************************************************************/
\r
48 int pending_int_irq; // internal irq
\r
49 int pending_int_vector;
\r
50 void (*irq_callback)(int id, int level);
\r
53 UINT32 cycles_aim; // subtract sh2_icount to get global counter
\r
56 SH2 *sh2; // active sh2
\r
57 extern int sh2_icount;
\r
59 void sh2_init(SH2 *sh2, int is_slave);
\r
60 void sh2_reset(SH2 *sh2);
\r
61 int sh2_execute(SH2 *sh2_, int cycles);
\r
62 void sh2_irl_irq(SH2 *sh2, int level);
\r
63 void sh2_internal_irq(SH2 *sh2, int level, int vector);
\r
65 #endif /* __SH2_H__ */
\r