diff --git a/src/dos/dos.cpp b/src/dos/dos.cpp index 35f14aaa..aae802b5 100644 --- a/src/dos/dos.cpp +++ b/src/dos/dos.cpp @@ -16,7 +16,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* $Id: dos.cpp,v 1.67 2004-02-28 16:35:14 qbix79 Exp $ */ +/* $Id: dos.cpp,v 1.68 2004-03-12 14:21:33 qbix79 Exp $ */ #include #include @@ -46,7 +46,7 @@ void DOS_SetError(Bit16u code) { static Bitu DOS_21Handler(void) { if (((reg_ah != 0x50) && (reg_ah != 0x51) && (reg_ah != 0x62) && (reg_ah != 0x64)) && (reg_ah<0x6c)) { DOS_PSP psp(dos.psp); - psp.SetStack(RealMake(SegValue(ss),reg_sp-20)); + psp.SetStack(RealMake(SegValue(ss),reg_sp-18)); } char name1[DOSNAMEBUF+1]; char name2[DOSNAMEBUF+1]; diff --git a/src/dos/dos_execute.cpp b/src/dos/dos_execute.cpp index a8a17dc2..d781d976 100644 --- a/src/dos/dos_execute.cpp +++ b/src/dos/dos_execute.cpp @@ -16,7 +16,7 @@ * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. */ -/* $Id: dos_execute.cpp,v 1.35 2004-02-28 16:35:14 qbix79 Exp $ */ +/* $Id: dos_execute.cpp,v 1.36 2004-03-12 14:21:33 qbix79 Exp $ */ #include #include "dosbox.h" @@ -65,7 +65,7 @@ struct EXE_Header { static void SaveRegisters(void) { - reg_sp-=20; + reg_sp-=18; mem_writew(SegPhys(ss)+reg_sp+ 0,reg_ax); mem_writew(SegPhys(ss)+reg_sp+ 2,reg_cx); mem_writew(SegPhys(ss)+reg_sp+ 4,reg_dx); @@ -87,7 +87,7 @@ static void RestoreRegisters(void) { reg_bp=mem_readw(SegPhys(ss)+reg_sp+12); SegSet16(ds,mem_readw(SegPhys(ss)+reg_sp+14)); SegSet16(es,mem_readw(SegPhys(ss)+reg_sp+16)); - reg_sp+=20; + reg_sp+=18; } diff --git a/src/dos/dos_misc.cpp b/src/dos/dos_misc.cpp index ddfa2d2f..c559f037 100644 --- a/src/dos/dos_misc.cpp +++ b/src/dos/dos_misc.cpp @@ -60,6 +60,9 @@ static bool DOS_MultiplexFunctions(void) { //TODO Maybe do some idling but could screw up other systems :) reg_al=0; return true; + case 0x1689: /* Kernel IDLE CALL */ + reg_al=0; //Likely. Please check !!!!!!!!!!!!!!! + return true; case 0x168f: /* Close awareness crap */ return true; }