Masked off the lower 12 bits of CR3. DESQview/X now works.
This commit is contained in:
parent
2db98723c7
commit
34c0db9c10
1 changed files with 2 additions and 2 deletions
|
|
@ -717,7 +717,7 @@ uint32_t mmutranslatereal(uint32_t addr, int rw)
|
||||||
if (addr==0x77f61000) output = 3;
|
if (addr==0x77f61000) output = 3;
|
||||||
if (addr==0x77f62000) { dumpregs(); exit(-1); }
|
if (addr==0x77f62000) { dumpregs(); exit(-1); }
|
||||||
if (addr==0x77f9a000) { dumpregs(); exit(-1); }*/
|
if (addr==0x77f9a000) { dumpregs(); exit(-1); }*/
|
||||||
addr2=(cr3+((addr>>20)&0xFFC));
|
addr2 = ((cr3 & ~0xfff) + ((addr >> 20) & 0xffc));
|
||||||
temp=temp2=((uint32_t *)ram)[addr2>>2];
|
temp=temp2=((uint32_t *)ram)[addr2>>2];
|
||||||
// if (output == 3) pclog("Do translate %08X %i %08X\n", addr, rw, temp);
|
// if (output == 3) pclog("Do translate %08X %i %08X\n", addr, rw, temp);
|
||||||
if (!(temp&1))// || (CPL==3 && !(temp&4) && !cpl_override) || (rw && !(temp&2) && (CPL==3 || cr0&WP_FLAG)))
|
if (!(temp&1))// || (CPL==3 && !(temp&4) && !cpl_override) || (rw && !(temp&2) && (CPL==3 || cr0&WP_FLAG)))
|
||||||
|
|
@ -779,7 +779,7 @@ uint32_t mmutranslate_noabrt(uint32_t addr, int rw)
|
||||||
if (abrt)
|
if (abrt)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
addr2=(cr3+((addr>>20)&0xFFC));
|
addr2 = ((cr3 & ~0xfff) + ((addr >> 20) & 0xffc));
|
||||||
temp=temp2=((uint32_t *)ram)[addr2>>2];
|
temp=temp2=((uint32_t *)ram)[addr2>>2];
|
||||||
|
|
||||||
if (!(temp&1))
|
if (!(temp&1))
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue