88 lines
2.5 KiB
C
88 lines
2.5 KiB
C
|
/*
|
||
|
* cmddisp.c - SVC dispatch module of command
|
||
|
*
|
||
|
* Modification History:
|
||
|
*
|
||
|
* Sudeepb 17-Sep-1991 Created
|
||
|
*/
|
||
|
|
||
|
#include "cmd.h"
|
||
|
|
||
|
#include <cmdsvc.h>
|
||
|
#include <softpc.h>
|
||
|
|
||
|
//'cmdSetWinTitle' and 'cmdGetCursorPos' are not available in NON-DBCS builds.
|
||
|
#ifndef DBCS
|
||
|
#define cmdSetWinTitle cmdIllegalFunc
|
||
|
#endif
|
||
|
#ifndef NEC_98
|
||
|
#define cmdGetCursorPos cmdIllegalFunc
|
||
|
#endif
|
||
|
|
||
|
PFNSVC apfnSVCCmd [] = {
|
||
|
cmdExitVDM, //SVC_CMDEXITVDM
|
||
|
cmdGetNextCmd, //SVC_CMDGETNEXTCMD
|
||
|
cmdComSpec, //SVC_CMDCOMSPEC
|
||
|
cmdSaveWorld, //SVC_CMDSAVEWORLD
|
||
|
cmdGetCurrentDir, //SVC_CMDGETCURDIR
|
||
|
cmdSetInfo, //SVC_CMDSETINFO
|
||
|
cmdGetStdHandle, //SVC_GETSTDHANDLE
|
||
|
cmdCheckBinary, //SVC_CMDCHECKBINARY
|
||
|
cmdExec, //SVC_CMDEXEC
|
||
|
cmdInitConsole, //SVC_CMDINITCONSOLE
|
||
|
cmdExecComspec32, //SVC_EXECCOMSPEC32
|
||
|
cmdReturnExitCode, //SVC_RETURNEXITCODE
|
||
|
cmdGetConfigSys, //SVC_GETCONFIGSYS
|
||
|
cmdGetAutoexecBat, //SVC_GETAUTOEXECBAT
|
||
|
cmdGetKbdLayout, //SVC_GETKBDLAYOUT
|
||
|
cmdGetInitEnvironment, //SVC_GETINITENVIRONMENT
|
||
|
cmdGetStartInfo, //SVC_GETSTARTINFO
|
||
|
cmdSetWinTitle, //SVC_CHANGEWINTITLE
|
||
|
cmdIllegalFunc, // 18
|
||
|
cmdIllegalFunc, // 19
|
||
|
cmdIllegalFunc, // 20
|
||
|
cmdIllegalFunc, // 21
|
||
|
cmdIllegalFunc, // 22
|
||
|
cmdIllegalFunc, // 23
|
||
|
cmdIllegalFunc, // 24
|
||
|
cmdIllegalFunc, // 25
|
||
|
cmdIllegalFunc, // 26
|
||
|
cmdIllegalFunc, // 27
|
||
|
cmdIllegalFunc, // 28
|
||
|
cmdIllegalFunc, // 29
|
||
|
cmdGetCursorPos //SVC_GETCURSORPOS
|
||
|
};
|
||
|
|
||
|
|
||
|
/* cmdDispatch - Dispatch SVC call to right command handler.
|
||
|
*
|
||
|
* Entry - iSvc (SVC byte following SVCop)
|
||
|
*
|
||
|
* Exit - None
|
||
|
*
|
||
|
*/
|
||
|
|
||
|
BOOL CmdDispatch (ULONG iSvc)
|
||
|
{
|
||
|
#if DBG
|
||
|
if (iSvc >= SVC_CMDLASTSVC){
|
||
|
DbgPrint("Unimplemented SVC index for COMMAND %x\n",iSvc);
|
||
|
setCF(1);
|
||
|
return FALSE;
|
||
|
}
|
||
|
#endif
|
||
|
(apfnSVCCmd [iSvc])();
|
||
|
|
||
|
return TRUE;
|
||
|
}
|
||
|
|
||
|
|
||
|
BOOL cmdIllegalFunc ()
|
||
|
{
|
||
|
#if DBG
|
||
|
DbgPrint("Unimplemented SVC index for COMMAND\n");
|
||
|
#endif
|
||
|
setCF(1);
|
||
|
return FALSE;
|
||
|
}
|