--- SheepShaver/src/include/emul_op.h 2003/09/07 14:33:54 1.3 +++ SheepShaver/src/include/emul_op.h 2005/07/02 17:51:43 1.11 @@ -1,7 +1,7 @@ /* * emul_op.h - 68k opcodes for ROM patches * - * SheepShaver (C) 1997-2002 Christian Bauer and Marc Hellwig + * SheepShaver (C) 1997-2005 Christian Bauer and Marc Hellwig * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -28,35 +28,6 @@ const uint32 POWERPC_BLR = 0x4e800020; const uint32 POWERPC_BCTR = 0x4e800420; const uint32 POWERPC_EMUL_OP = 0x18000000; // Base opcode for EMUL_OP opcodes (only used with PPC emulation) -enum { // Selectors for NATIVE_EXEC callbacks (only used with PPC emulation) - NATIVE_PATCH_NAME_REGISTRY, - NATIVE_VIDEO_INSTALL_ACCEL, - NATIVE_VIDEO_VBL, - NATIVE_VIDEO_DO_DRIVER_IO, - NATIVE_ETHER_IRQ, - NATIVE_ETHER_INIT, - NATIVE_ETHER_TERM, - NATIVE_ETHER_OPEN, - NATIVE_ETHER_CLOSE, - NATIVE_ETHER_WPUT, - NATIVE_ETHER_RSRV, - NATIVE_SERIAL_NOTHING, - NATIVE_SERIAL_OPEN, - NATIVE_SERIAL_PRIME_IN, - NATIVE_SERIAL_PRIME_OUT, - NATIVE_SERIAL_CONTROL, - NATIVE_SERIAL_STATUS, - NATIVE_SERIAL_CLOSE, - NATIVE_GET_RESOURCE, - NATIVE_GET_1_RESOURCE, - NATIVE_GET_IND_RESOURCE, - NATIVE_GET_1_IND_RESOURCE, - NATIVE_R_GET_RESOURCE, - NATIVE_OP_MAX -}; -#define POWERPC_NATIVE_OP_FUNC(SELECTOR) ((uint32)(uintptr)&NativeOpTable[SELECTOR]) -extern const uint32 NativeOpTable[NATIVE_OP_MAX]; - // 68k opcodes const uint16 M68K_ILLEGAL = 0x4afc; const uint16 M68K_NOP = 0x4e71; @@ -76,8 +47,8 @@ enum { // Selectors for EMUL_OP opcodes OP_ADBOP, OP_INSTIME, OP_RMVTIME, OP_PRIMETIME, OP_MICROSECONDS, OP_PUT_SCRAP, OP_GET_SCRAP, OP_DEBUG_STR, OP_INSTALL_DRIVERS, OP_NAME_REGISTRY, OP_RESET, OP_IRQ, OP_SCSI_DISPATCH, OP_SCSI_ATOMIC, - OP_NTRB_17_PATCH, OP_NTRB_17_PATCH2, OP_NTRB_17_PATCH3, OP_CHECKLOAD, - OP_EXTFS_COMM, OP_EXTFS_HFS, OP_IDLE_TIME, + OP_CHECK_SYSV, OP_NTRB_17_PATCH, OP_NTRB_17_PATCH2, OP_NTRB_17_PATCH3, OP_NTRB_17_PATCH4, OP_CHECKLOAD, + OP_EXTFS_COMM, OP_EXTFS_HFS, OP_IDLE_TIME, OP_IDLE_TIME_2, OP_MAX }; const uint16 M68K_EMUL_RETURN = 0xfe40; // Extended opcodes @@ -125,13 +96,16 @@ const uint16 M68K_EMUL_OP_RESET = M68K_E const uint16 M68K_EMUL_OP_IRQ = M68K_EMUL_BREAK + OP_IRQ; const uint16 M68K_EMUL_OP_SCSI_DISPATCH = M68K_EMUL_BREAK + OP_SCSI_DISPATCH; const uint16 M68K_EMUL_OP_SCSI_ATOMIC = M68K_EMUL_BREAK + OP_SCSI_ATOMIC; +const uint16 M68K_EMUL_OP_CHECK_SYSV = M68K_EMUL_BREAK + OP_CHECK_SYSV; const uint16 M68K_EMUL_OP_NTRB_17_PATCH = M68K_EMUL_BREAK + OP_NTRB_17_PATCH; const uint16 M68K_EMUL_OP_NTRB_17_PATCH2 = M68K_EMUL_BREAK + OP_NTRB_17_PATCH2; const uint16 M68K_EMUL_OP_NTRB_17_PATCH3 = M68K_EMUL_BREAK + OP_NTRB_17_PATCH3; +const uint16 M68K_EMUL_OP_NTRB_17_PATCH4 = M68K_EMUL_BREAK + OP_NTRB_17_PATCH4; const uint16 M68K_EMUL_OP_CHECKLOAD = M68K_EMUL_BREAK + OP_CHECKLOAD; const uint16 M68K_EMUL_OP_EXTFS_COMM = M68K_EMUL_BREAK + OP_EXTFS_COMM; const uint16 M68K_EMUL_OP_EXTFS_HFS = M68K_EMUL_BREAK + OP_EXTFS_HFS; const uint16 M68K_EMUL_OP_IDLE_TIME = M68K_EMUL_BREAK + OP_IDLE_TIME; +const uint16 M68K_EMUL_OP_IDLE_TIME_2 = M68K_EMUL_BREAK + OP_IDLE_TIME_2; extern "C" void EmulOp(M68kRegisters *r, uint32 pc, int selector);