--- SheepShaver/src/rom_patches.cpp 2003/12/15 15:23:59 1.21 +++ SheepShaver/src/rom_patches.cpp 2004/02/24 11:12:51 1.27 @@ -1,7 +1,7 @@ /* * rom_patches.cpp - ROM patches * - * SheepShaver (C) 1997-2002 Christian Bauer and Marc Hellwig + * SheepShaver (C) 1997-2004 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 @@ -319,7 +319,6 @@ static bool check_rom_patch_space(uint32 size = (size + 3) & -4; for (int i = 0; i < size; i += 4) { uint32 x = ntohl(*(uint32 *)(ROM_BASE + base + i)); - printf("%08x\n", x); if (x != 0x6b636b63 && x != 0) return false; } @@ -872,7 +871,8 @@ static bool patch_nanokernel_boot(void) lp[8] = htonl(0x00800002); // TLB total size/TLB assoc break; // case 11: // X704? - case 12: // ??? + case 12: // 7400, 7410 + case 0x800c: lp[0] = htonl(0x1000); // Page size lp[1] = htonl(0x8000); // Data cache size lp[2] = htonl(0x8000); // Inst cache size @@ -1664,7 +1664,7 @@ static bool patch_68k(void) wp = (uint16 *)(ROM_BASE + base + 12); loc = ntohs(wp[1]) + ((uintptr)wp - ROM_BASE) + 2; static const uint8 scc_init_dat[] = {0x20, 0x78, 0x01, 0xdc, 0x22, 0x78, 0x01, 0xd8}; - if ((base = find_rom_data(loc, loc + 0x80, scc_init_dat, sizeof(scc_init_dat))) != loc) return false; + if ((base = find_rom_data(loc, loc + 0x80, scc_init_dat, sizeof(scc_init_dat))) == 0) return false; D(bug("scc_init %08lx\n", base)); wp = (uint16 *)(ROM_BASE + base); *wp++ = htons(M68K_EMUL_OP_RESET); @@ -2305,7 +2305,7 @@ void InstallDrivers(void) WriteMacInt16(dce + dCtlFlags, SonyDriverFlags); } -#if DISABLE_SCSI && 0 +#if DISABLE_SCSI && HAVE_SIGSEGV_SKIP_INSTRUCTION // Fake SCSIGlobals WriteMacInt32(0xc0c, SheepMem::ZeroPage()); #endif