306 |
|
*p16 = htons(M68K_RTS); |
307 |
|
FlushCodeCache(p, 6); |
308 |
|
D(bug(" patch 1 applied\n")); |
309 |
< |
} |
310 |
< |
#if REAL_ADDRESSING && !defined(AMIGA) |
311 |
< |
else if (type == FOURCC('D','R','V','R') && id == 41) { |
309 |
> |
|
310 |
> |
} else if (type == FOURCC('D','R','V','R') && id == 41) { |
311 |
|
D(bug(" DRVR 41 found\n")); |
312 |
|
|
313 |
< |
// gb-- [0x28E (ROM85)] contains 0x3fff that will be placed into a0 |
315 |
< |
// Seems to be caused by the AppleShare extension from MacOS 8.1 (3.7.4) |
316 |
< |
// .AFPTranslator (DRVR addr 0x2372) |
313 |
> |
// Don't access ROM85 as it it was a pointer to a ROM version number (8.0, 8.1) |
314 |
|
static const uint8 dat[] = {0x3a, 0x2e, 0x00, 0x0a, 0x55, 0x4f, 0x3e, 0xb8, 0x02, 0x8e, 0x30, 0x1f, 0x48, 0xc0, 0x24, 0x40, 0x20, 0x40}; |
315 |
|
base = find_rsrc_data(p, size, dat, sizeof(dat)); |
316 |
|
if (base) { |
317 |
|
p16 = (uint16 *)(p + base + 4); |
318 |
< |
*p16++ = htons(0x3078); // movea.w ROM85,%a0 |
318 |
> |
*p16++ = htons(0x303c); // move.l #ROM85,%d0 |
319 |
|
*p16++ = htons(0x028e); |
323 |
– |
*p16++ = htons(0xd1fc); // adda.l #RAMBaseMac,%a0 |
324 |
– |
*p16++ = htons((RAMBaseMac >> 16) & 0xffff); |
325 |
– |
*p16++ = htons(RAMBaseMac & 0xffff); |
326 |
– |
*p16++ = htons(0x2448); // movea.l %a0,%a2 |
320 |
|
*p16++ = htons(M68K_NOP); |
321 |
< |
FlushCodeCache(p + base + 4, 14); |
321 |
> |
*p16++ = htons(M68K_NOP); |
322 |
> |
FlushCodeCache(p + base + 4, 8); |
323 |
|
D(bug(" patch 1 applied\n")); |
324 |
|
} |
325 |
|
} |
332 |
– |
#endif |
326 |
|
} |