1 |
|
/* |
2 |
|
* emul_op.cpp - 68k opcodes for ROM patches |
3 |
|
* |
4 |
< |
* Basilisk II (C) 1997-2004 Christian Bauer |
4 |
> |
* Basilisk II (C) Christian Bauer |
5 |
|
* |
6 |
|
* This program is free software; you can redistribute it and/or modify |
7 |
|
* it under the terms of the GNU General Public License as published by |
70 |
|
r->sr); |
71 |
|
VideoQuitFullScreen(); |
72 |
|
#ifdef ENABLE_MON |
73 |
< |
char *arg[4] = {"mon", "-m", "-r", NULL}; |
73 |
> |
const char *arg[4] = {"mon", "-m", "-r", NULL}; |
74 |
|
mon(3, arg); |
75 |
|
#endif |
76 |
|
QuitEmulator(); |
236 |
|
|
237 |
|
// Install PutScrap() patch |
238 |
|
M68kRegisters r; |
239 |
< |
r.d[0] = 0xa9fe; |
240 |
< |
r.a[0] = PutScrapPatch; |
241 |
< |
Execute68kTrap(0xa647, &r); // SetToolTrap() |
239 |
> |
if (PutScrapPatch) { |
240 |
> |
r.d[0] = 0xa9fe; |
241 |
> |
r.a[0] = PutScrapPatch; |
242 |
> |
Execute68kTrap(0xa647, &r); // SetToolTrap() |
243 |
> |
} |
244 |
|
|
245 |
|
// Install GetScrap() patch |
246 |
|
if (GetScrapPatch) { |
355 |
|
break; |
356 |
|
|
357 |
|
case M68K_EMUL_OP_ETHER_READ_PACKET: |
358 |
< |
EtherReadPacket((uint8 **)&r->a[0], r->a[3], r->d[3], r->d[1]); |
358 |
> |
EtherReadPacket(r->a[0], r->a[3], r->d[3], r->d[1]); |
359 |
|
break; |
360 |
|
|
361 |
|
case M68K_EMUL_OP_SOUNDIN_OPEN: // Sound input driver functions |
557 |
|
r->d[0] = DebugUtil(r->d[0]); |
558 |
|
break; |
559 |
|
|
560 |
+ |
case M68K_EMUL_OP_IDLE_TIME: // SynchIdleTime() patch |
561 |
+ |
// Sleep if no events pending |
562 |
+ |
if (ReadMacInt32(0x14c) == 0) |
563 |
+ |
idle_wait(); |
564 |
+ |
r->a[0] = ReadMacInt32(0x2b6); |
565 |
+ |
break; |
566 |
+ |
|
567 |
|
default: |
568 |
|
printf("FATAL: EMUL_OP called with bogus opcode %08x\n", opcode); |
569 |
|
printf("d0 %08x d1 %08x d2 %08x d3 %08x\n" |
575 |
|
r->a[0], r->a[1], r->a[2], r->a[3], r->a[4], r->a[5], r->a[6], r->a[7], |
576 |
|
r->sr); |
577 |
|
#ifdef ENABLE_MON |
578 |
< |
char *arg[4] = {"mon", "-m", "-r", NULL}; |
578 |
> |
const char *arg[4] = {"mon", "-m", "-r", NULL}; |
579 |
|
mon(3, arg); |
580 |
|
#endif |
581 |
|
QuitEmulator(); |