diff --git a/src/shell/shell_misc.cpp b/src/shell/shell_misc.cpp index 2712a5fb..9152bc4c 100644 --- a/src/shell/shell_misc.cpp +++ b/src/shell/shell_misc.cpp @@ -19,7 +19,7 @@ #include #include #include "shell_inc.h" -#include "cpu.h" +#include "regs.h" void DOS_Shell::ShowPrompt(void) { @@ -174,12 +174,14 @@ void DOS_Shell::Execute(char * name,char * args) { /* Set the command line in the block and save it */ block.exec.cmdtail=RealMakeSeg(ss,reg_sp+0x100); block.SaveData(); +#if 0 /* Save CS:IP to some point where i can return them from */ Bit32u oldeip=reg_eip; Bit16u oldcs=SegValue(cs); RealPt newcsip=CALLBACK_RealPointer(call_shellstop); SegSet16(cs,RealSeg(newcsip)); reg_ip=RealOff(newcsip); +#endif /* Start up a dos execute interrupt */ reg_ax=0x4b00; //Filename pointer @@ -188,12 +190,14 @@ void DOS_Shell::Execute(char * name,char * args) { //Paramblock SegSet16(es,SegValue(ss)); reg_bx=reg_sp; - flags.intf=false; + SETFLAGBIT(IF,false); CALLBACK_RunRealInt(0x21); /* Restore CS:IP and the stack */ reg_sp+=0x200; +#if 0 reg_eip=oldeip; SegSet16(cs,oldcs); +#endif } }