--- BasiliskII/src/emul_op.cpp 1999/10/21 22:39:50 1.6 +++ BasiliskII/src/emul_op.cpp 1999/10/31 23:18:32 1.11 @@ -42,6 +42,10 @@ #include "extfs.h" #include "emul_op.h" +#if ENABLE_MON +#include "mon.h" +#endif + #define DEBUG 0 #include "debug.h" @@ -64,6 +68,10 @@ void EmulOp(uint16 opcode, M68kRegisters r->d[0], r->d[1], r->d[2], r->d[3], r->d[4], r->d[5], r->d[6], r->d[7], r->a[0], r->a[1], r->a[2], r->a[3], r->a[4], r->a[5], r->a[6], r->a[7], r->sr); +#if ENABLE_MON + char *arg[2] = {"rmon", NULL}; + mon(1, arg); +#endif QuitEmulator(); break; } @@ -402,33 +410,6 @@ void EmulOp(uint16 opcode, M68kRegisters break; } - case M68K_EMUL_OP_MEMORY_DISPATCH: { // MemoryDispatch() replacement routine - int16 sel = r->d[0]; - D(bug("MemoryDispatch(%d)\n", sel)); - switch (sel) { - case -6: // GetLogicalRAMSize - r->d[0] = RAMSize; - break; - case -3: - r->d[0] = 0x1000; - break; - case 0: // HoldMemory - case 1: // UnholdMemory - case 2: // LockMemory - case 3: // UnlockMemory - case 4: // LockMemoryContiguous - case 6: // ProtectMemory - case 7: // UnprotectMemory - r->d[0] = 0; - break; - default: - printf("FATAL: MemoryDispatch(%d): illegal selector\n", sel); - r->d[0] = (uint32)-502; - break; - } - break; - } - case M68K_EMUL_OP_IRQ: // Level 1 interrupt r->d[0] = 0; if (InterruptFlags & INTFLAG_60HZ) { @@ -503,6 +484,10 @@ void EmulOp(uint16 opcode, M68kRegisters break; #endif + case M68K_EMUL_OP_BLOCK_MOVE: // BlockMove() replacement + memmove(Mac2HostAddr(r->a[1]), Mac2HostAddr(r->a[0]), r->d[0]); + break; + default: printf("FATAL: EMUL_OP called with bogus opcode %08x\n", opcode); printf("d0 %08lx d1 %08lx d2 %08lx d3 %08lx\n" @@ -513,6 +498,10 @@ void EmulOp(uint16 opcode, M68kRegisters r->d[0], r->d[1], r->d[2], r->d[3], r->d[4], r->d[5], r->d[6], r->d[7], r->a[0], r->a[1], r->a[2], r->a[3], r->a[4], r->a[5], r->a[6], r->a[7], r->sr); +#if ENABLE_MON + char *arg[2] = {"rmon", NULL}; + mon(1, arg); +#endif QuitEmulator(); break; }