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

Comparing BasiliskII/src/rsrc_patches.cpp (file contents):
Revision 1.13 by gbeauche, 2005-01-30T21:42:13Z vs.
Revision 1.14 by gbeauche, 2006-02-19T14:18:29Z

# Line 306 | Line 306 | void CheckLoad(uint32 type, int16 id, ui
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   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines