1
0
Fork 0

Dos stack size change. added kernel idle call

Imported-from: https://svn.code.sf.net/p/dosbox/code-0/dosbox/trunk@1718
This commit is contained in:
Peter Veenstra 2004-03-12 14:21:33 +00:00
parent 1ceeb2c5ce
commit 6905301089
3 changed files with 8 additions and 5 deletions

View file

@ -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 <stdio.h>
#include <stdlib.h>
@ -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];

View file

@ -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 <string.h>
#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;
}

View file

@ -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;
}