28 |
|
const uint32 POWERPC_BCTR = 0x4e800420; |
29 |
|
const uint32 POWERPC_EMUL_OP = 0x18000000; // Base opcode for EMUL_OP opcodes (only used with PPC emulation) |
30 |
|
|
31 |
+ |
enum { // Selectors for NATIVE_EXEC callbacks (only used with PPC emulation) |
32 |
+ |
NATIVE_PATCH_NAME_REGISTRY, |
33 |
+ |
NATIVE_VIDEO_INSTALL_ACCEL, |
34 |
+ |
NATIVE_VIDEO_VBL, |
35 |
+ |
NATIVE_VIDEO_DO_DRIVER_IO, |
36 |
+ |
NATIVE_ETHER_IRQ, |
37 |
+ |
NATIVE_ETHER_INIT, |
38 |
+ |
NATIVE_ETHER_TERM, |
39 |
+ |
NATIVE_ETHER_OPEN, |
40 |
+ |
NATIVE_ETHER_CLOSE, |
41 |
+ |
NATIVE_ETHER_WPUT, |
42 |
+ |
NATIVE_ETHER_RSRV, |
43 |
+ |
NATIVE_SERIAL_NOTHING, |
44 |
+ |
NATIVE_SERIAL_OPEN, |
45 |
+ |
NATIVE_SERIAL_PRIME_IN, |
46 |
+ |
NATIVE_SERIAL_PRIME_OUT, |
47 |
+ |
NATIVE_SERIAL_CONTROL, |
48 |
+ |
NATIVE_SERIAL_STATUS, |
49 |
+ |
NATIVE_SERIAL_CLOSE, |
50 |
+ |
NATIVE_GET_RESOURCE, |
51 |
+ |
NATIVE_GET_1_RESOURCE, |
52 |
+ |
NATIVE_GET_IND_RESOURCE, |
53 |
+ |
NATIVE_GET_1_IND_RESOURCE, |
54 |
+ |
NATIVE_R_GET_RESOURCE, |
55 |
+ |
NATIVE_DISABLE_INTERRUPT, |
56 |
+ |
NATIVE_ENABLE_INTERRUPT, |
57 |
+ |
NATIVE_OP_MAX |
58 |
+ |
}; |
59 |
+ |
#define POWERPC_NATIVE_OP(SELECTOR) NativeOpTable[SELECTOR] |
60 |
+ |
#define POWERPC_NATIVE_OP_FUNC(SELECTOR) ((uint32)(uintptr)&POWERPC_NATIVE_OP(SELECTOR)) |
61 |
+ |
extern const uint32 NativeOpTable[NATIVE_OP_MAX]; |
62 |
+ |
|
63 |
|
// 68k opcodes |
64 |
|
const uint16 M68K_ILLEGAL = 0x4afc; |
65 |
|
const uint16 M68K_NOP = 0x4e71; |
85 |
|
}; |
86 |
|
const uint16 M68K_EMUL_RETURN = 0xfe40; // Extended opcodes |
87 |
|
const uint16 M68K_EXEC_RETURN = 0xfe41; |
88 |
< |
const uint16 M68K_EMUL_BREAK = 0xfe42; |
88 |
> |
const uint16 M68K_EXEC_NATIVE = 0xfe42; |
89 |
> |
const uint16 M68K_EMUL_BREAK = 0xfe43; |
90 |
|
const uint16 M68K_EMUL_OP_XPRAM1 = M68K_EMUL_BREAK + OP_XPRAM1; |
91 |
|
const uint16 M68K_EMUL_OP_XPRAM2 = M68K_EMUL_BREAK + OP_XPRAM2; |
92 |
|
const uint16 M68K_EMUL_OP_XPRAM3 = M68K_EMUL_BREAK + OP_XPRAM3; |
136 |
|
const uint16 M68K_EMUL_OP_EXTFS_HFS = M68K_EMUL_BREAK + OP_EXTFS_HFS; |
137 |
|
const uint16 M68K_EMUL_OP_IDLE_TIME = M68K_EMUL_BREAK + OP_IDLE_TIME; |
138 |
|
|
139 |
< |
extern void EmulOp(M68kRegisters *r, uint32 pc, int selector); |
139 |
> |
extern "C" void EmulOp(M68kRegisters *r, uint32 pc, int selector); |
140 |
|
|
141 |
|
#endif |