1
0
Fork 0

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:
Peter Veenstra 2006-10-27 12:01:52 +00:00
parent 3653a5a3d5
commit ded957188a
3 changed files with 17 additions and 1 deletions

View file

@ -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()) {

View file

@ -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 */

View file

@ -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()) {