better workaround for clipper programs (doesn't break wc3)
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@2732
This commit is contained in:
parent
ca8b788e12
commit
c773dded4b
1 changed files with 7 additions and 5 deletions
|
@ -433,11 +433,13 @@
|
|||
if (rm >= 0xc0 ) {GetEArb;*earb=*rmrb;}
|
||||
else {
|
||||
if (cpu.pmode) {
|
||||
Descriptor desc;
|
||||
cpu.gdt.GetDescriptor(SegValue(core.base_val_ds),desc);
|
||||
if ((desc.Type()==DESC_CODE_R_NC_A) || (desc.Type()==DESC_CODE_R_NC_NA)) {
|
||||
CPU_Exception(EXCEPTION_GP,SegValue(core.base_val_ds) & 0xfffc);
|
||||
continue;
|
||||
if (GCC_UNLIKELY((rm==0x05) && (!cpu.code.big))) {
|
||||
Descriptor desc;
|
||||
cpu.gdt.GetDescriptor(SegValue(core.base_val_ds),desc);
|
||||
if ((desc.Type()==DESC_CODE_R_NC_A) || (desc.Type()==DESC_CODE_R_NC_NA)) {
|
||||
CPU_Exception(EXCEPTION_GP,SegValue(core.base_val_ds) & 0xfffc);
|
||||
continue;
|
||||
}
|
||||
}
|
||||
}
|
||||
GetEAa;SaveMb(eaa,*rmrb);
|
||||
|
|
Loading…
Add table
Reference in a new issue