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:
parent
1ceeb2c5ce
commit
6905301089
3 changed files with 8 additions and 5 deletions
|
@ -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];
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue