Fixed two small bugs in 386_common.h, NT 3.51 Service Pack 5 now works again.
This commit is contained in:
@@ -57,7 +57,7 @@ extern uint16_t ea_rseg;
|
||||
#define CHECK_READ(chseg, low, high) \
|
||||
if ((low < (chseg)->limit_low) || (high > (chseg)->limit_high) || ((msw & 1) && !(eflags & VM_FLAG) && (((chseg)->access & 10) == 8))) \
|
||||
{ \
|
||||
x86gpf("Limit check", 0); \
|
||||
x86gpf("Limit check (READ)", 0); \
|
||||
return 1; \
|
||||
} \
|
||||
if (msw&1 && !(eflags&VM_FLAG) && !((chseg)->access & 0x80)) \
|
||||
@@ -72,7 +72,7 @@ extern uint16_t ea_rseg;
|
||||
#define CHECK_WRITE(chseg, low, high) \
|
||||
if ((low < (chseg)->limit_low) || (high > (chseg)->limit_high) || !((chseg)->access & 2) || ((msw & 1) && !(eflags & VM_FLAG) && ((chseg)->access & 8))) \
|
||||
{ \
|
||||
x86gpf("Limit check", 0); \
|
||||
x86gpf("Limit check (WRITE)", 0); \
|
||||
return 1; \
|
||||
} \
|
||||
if (msw&1 && !(eflags&VM_FLAG) && !((chseg)->access & 0x80)) \
|
||||
@@ -87,7 +87,7 @@ extern uint16_t ea_rseg;
|
||||
#define CHECK_WRITE_REP(chseg, low, high) \
|
||||
if ((low < (chseg)->limit_low) || (high > (chseg)->limit_high)) \
|
||||
{ \
|
||||
x86gpf("Limit check", 0); \
|
||||
x86gpf("Limit check (WRITE REP)", 0); \
|
||||
break; \
|
||||
} \
|
||||
if (msw&1 && !(eflags&VM_FLAG) && !((chseg)->access & 0x80)) \
|
||||
@@ -117,7 +117,7 @@ static __inline uint8_t fastreadb(uint32_t a)
|
||||
return *((uint8_t *)&pccache2[a]);
|
||||
t = getpccache(a);
|
||||
if (cpu_state.abrt)
|
||||
return 0xFF;
|
||||
return 0;
|
||||
pccache = a >> 12;
|
||||
pccache2 = t;
|
||||
return *((uint8_t *)&pccache2[a]);
|
||||
@@ -136,7 +136,7 @@ static __inline uint16_t fastreadw(uint32_t a)
|
||||
if ((a>>12)==pccache) return *((uint16_t *)&pccache2[a]);
|
||||
t = getpccache(a);
|
||||
if (cpu_state.abrt)
|
||||
return 0xff;
|
||||
return 0;
|
||||
|
||||
pccache = a >> 12;
|
||||
pccache2 = t;
|
||||
|
Reference in New Issue
Block a user