New segments and removed setsegemnt16 function
Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@159
This commit is contained in:
parent
2ae43c7636
commit
77f4c055de
1 changed files with 11 additions and 20 deletions
|
@ -86,7 +86,7 @@ void Interrupt(Bit8u num) {
|
|||
case 0xcd:
|
||||
E_Exit("Call to interrupt 0xCD this is BAD");
|
||||
case 0x03:
|
||||
#ifdef C_DEBUG
|
||||
#if C_DEBUG
|
||||
if (DEBUG_BreakPoint()) return;
|
||||
#endif
|
||||
break;
|
||||
|
@ -117,15 +117,15 @@ void Interrupt(Bit8u num) {
|
|||
flags.tf=false;
|
||||
/* Save everything on a 16-bit stack */
|
||||
reg_sp-=2;
|
||||
mem_writew(Segs[ss].phys+reg_sp,pflags);
|
||||
mem_writew(SegPhys(ss)+reg_sp,pflags);
|
||||
reg_sp-=2;
|
||||
mem_writew(Segs[ss].phys+reg_sp,Segs[cs].value);
|
||||
mem_writew(SegPhys(ss)+reg_sp,SegValue(cs));
|
||||
reg_sp-=2;
|
||||
mem_writew(Segs[ss].phys+reg_sp,reg_ip);
|
||||
mem_writew(SegPhys(ss)+reg_sp,reg_ip);
|
||||
/* Get the new CS:IP from vector table */
|
||||
Bit16u newip=mem_readw(num << 2);
|
||||
Bit16u newcs=mem_readw((num <<2)+2);
|
||||
SetSegment_16(cs,newcs);
|
||||
SegSet16(cs,newcs);
|
||||
reg_ip=newip;
|
||||
}
|
||||
|
||||
|
@ -136,15 +136,6 @@ void SetCPU16bit()
|
|||
CPU_Real_16_Slow_Start();
|
||||
}
|
||||
|
||||
void SetSegment_16(Bit32u seg,Bit16u val) {
|
||||
Segs[seg].value=val;
|
||||
Bit32u off=(val << 4);
|
||||
Segs[seg].host=memory+off;
|
||||
Segs[seg].phys=off;
|
||||
//TODO Maybe use this feature one day :)
|
||||
// Segs[seg].special=MEMORY_TestSpecial(off);
|
||||
};
|
||||
|
||||
|
||||
void CPU_Init(void) {
|
||||
reg_eax=0;
|
||||
|
@ -156,12 +147,12 @@ void CPU_Init(void) {
|
|||
reg_ebp=0;
|
||||
reg_esp=0;
|
||||
|
||||
SetSegment_16(cs,0);
|
||||
SetSegment_16(ds,0);
|
||||
SetSegment_16(es,0);
|
||||
SetSegment_16(fs,0);
|
||||
SetSegment_16(gs,0);
|
||||
SetSegment_16(ss,0);
|
||||
SegSet16(cs,0);
|
||||
SegSet16(ds,0);
|
||||
SegSet16(es,0);
|
||||
SegSet16(fs,0);
|
||||
SegSet16(gs,0);
|
||||
SegSet16(ss,0);
|
||||
|
||||
reg_eip=0;
|
||||
flags.type=t_UNKNOWN;
|
||||
|
|
Loading…
Add table
Reference in a new issue