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
		Add a link
		
	
		Reference in a new issue