Add Beta1 patch: "Add very basic Clipper support." by wd.
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@2712
This commit is contained in:
parent
3653a5a3d5
commit
ded957188a
3 changed files with 17 additions and 1 deletions
|
@ -71,6 +71,7 @@ extern Bitu cycle_count;
|
|||
#define DO_PREFIX_SEG(_SEG) \
|
||||
BaseDS=SegBase(_SEG); \
|
||||
BaseSS=SegBase(_SEG); \
|
||||
core.base_val_ds=_SEG; \
|
||||
goto restart_opcode;
|
||||
|
||||
#define DO_PREFIX_ADDR() \
|
||||
|
@ -92,6 +93,7 @@ static struct {
|
|||
Bitu opcode_index;
|
||||
PhysPt cseip;
|
||||
PhysPt base_ds,base_ss;
|
||||
SegNames base_val_ds;
|
||||
bool rep_zero;
|
||||
Bitu prefixes;
|
||||
GetEAHandler * ea_table;
|
||||
|
@ -142,6 +144,7 @@ Bits CPU_Core_Normal_Run(void) {
|
|||
core.ea_table=&EATable[cpu.code.big*256];
|
||||
BaseDS=SegBase(ds);
|
||||
BaseSS=SegBase(ss);
|
||||
core.base_val_ds=ds;
|
||||
#if C_DEBUG
|
||||
#if C_HEAVY_DEBUG
|
||||
if (DEBUG_HeavyIsBreakpoint()) {
|
||||
|
|
|
@ -431,7 +431,17 @@
|
|||
{
|
||||
GetRMrb;
|
||||
if (rm >= 0xc0 ) {GetEArb;*earb=*rmrb;}
|
||||
else {GetEAa;SaveMb(eaa,*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;
|
||||
}
|
||||
}
|
||||
GetEAa;SaveMb(eaa,*rmrb);
|
||||
}
|
||||
break;
|
||||
}
|
||||
CASE_W(0x89) /* MOV Ew,Gw */
|
||||
|
|
|
@ -63,6 +63,7 @@ extern Bitu cycle_count;
|
|||
#define DO_PREFIX_SEG(_SEG) \
|
||||
BaseDS=SegBase(_SEG); \
|
||||
BaseSS=SegBase(_SEG); \
|
||||
core.base_val_ds=_SEG; \
|
||||
goto restart_opcode;
|
||||
|
||||
#define DO_PREFIX_ADDR() \
|
||||
|
@ -84,6 +85,7 @@ static struct {
|
|||
Bitu opcode_index;
|
||||
HostPt cseip;
|
||||
PhysPt base_ds,base_ss;
|
||||
SegNames base_val_ds;
|
||||
bool rep_zero;
|
||||
Bitu prefixes;
|
||||
GetEAHandler * ea_table;
|
||||
|
@ -137,6 +139,7 @@ Bits CPU_Core_Simple_Run(void) {
|
|||
core.ea_table=&EATable[cpu.code.big*256];
|
||||
BaseDS=SegBase(ds);
|
||||
BaseSS=SegBase(ss);
|
||||
core.base_val_ds=ds;
|
||||
#if C_DEBUG
|
||||
#if C_HEAVY_DEBUG
|
||||
if (DEBUG_HeavyIsBreakpoint()) {
|
||||
|
|
Loading…
Add table
Reference in a new issue