ViewVC Help
View File | Revision Log | Show Annotations | Revision Graph | Root Listing
root/cebix/SheepShaver/src/emul_op.cpp
(Generate patch)

Comparing SheepShaver/src/emul_op.cpp (file contents):
Revision 1.19 by gbeauche, 2005-03-05T19:07:35Z vs.
Revision 1.22 by gbeauche, 2005-07-02T17:51:43Z

# Line 282 | Line 282 | void EmulOp(M68kRegisters *r, uint32 pc,
282                          MacOSUtilReset();
283                          AudioReset();
284  
285 <                        // Enable DR emulator
286 <                        if (PrefsFindBool("jit68k")) {
285 >                        // Enable DR emulator (disabled for now)
286 >                        if (PrefsFindBool("jit68k") && 0) {
287                                  D(bug("DR activated\n"));
288                                  WriteMacInt32(KernelDataAddr + 0x17a0, 3);              // Prepare for DR emulator activation
289                                  WriteMacInt32(KernelDataAddr + 0x17c0, DR_CACHE_BASE);
# Line 409 | Line 409 | void EmulOp(M68kRegisters *r, uint32 pc,
409                          r->d[0] = (uint32)-7887;
410                          break;
411  
412 +                case OP_CHECK_SYSV: {           // Check we are not using MacOS < 8.1 with a NewWorld ROM
413 +                        r->a[1] = r->d[1];
414 +                        r->a[0] = ReadMacInt32(r->d[1]);
415 +                        uint32 sysv = ReadMacInt16(r->a[0]);
416 +                        D(bug("Detected MacOS version %d.%d.%d\n", (sysv >> 8) & 0xf, (sysv >> 4) & 0xf, sysv & 0xf));
417 +                        if (ROMType == ROMTYPE_NEWWORLD && sysv < 0x0801)
418 +                                r->d[1] = 0;
419 +                        break;
420 +                }
421 +
422                  case OP_NTRB_17_PATCH:
423                          r->a[2] = ReadMacInt32(r->a[7]);
424                          r->a[7] += 4;
# Line 463 | Line 473 | void EmulOp(M68kRegisters *r, uint32 pc,
473                  case OP_IDLE_TIME:
474                          // Sleep if no events pending
475                          if (ReadMacInt32(0x14c) == 0)
476 <                                Delay_usec(16667);
476 >                                idle_wait();
477                          r->a[0] = ReadMacInt32(0x2b6);
478                          break;
479  
480                  case OP_IDLE_TIME_2:
481                          // Sleep if no events pending
482                          if (ReadMacInt32(0x14c) == 0)
483 <                                Delay_usec(16667);
483 >                                idle_wait();
484                          r->d[0] = (uint32)-2;
485                          break;
486  

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines