亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cmd.c

?? 這是DOS操作系統(tǒng)啟動的源代碼 里面是匯編語言 包括了部分的驅(qū)動程序
?? C
?? 第 1 頁 / 共 2 頁
字號:
			}
			DosSeek(Handle, 2, 0l);
		}
		else
			Handle = DosCreat((BYTE FAR *)Output, D_NORMAL | D_ARCHIVE);

		if((Handle < 0) || (!DosForceDupHandle(Handle, STDOUT, (COUNT FAR *)&ErrorCode)))
		{
			RestoreIO(-1, OldStdout);
			error_message(INTERNAL_ERR);
			return;
		}
		DosClose(Handle);
	}

	for(argc = 0; argc < 16; argc++)
	{
		argv[argc] = (BYTE *)0;
		args[argc][0] = '\0';
	}
	lp = scanspl(cmd_line, args[0], '/');

	if(args[0][0] == '@')
	{
		at_FLAG = TRUE;
		index++;
	}
	else
		at_FLAG = FALSE;

	/* If preceeded by a @, swallow it, it was taken care of	*/
	/* elsewhere.  Also, change case so that our command verb is	*/
	/* case sensitive.						*/
	while(args[0][index] != '\0')
	{

		if(at_FLAG)
			args[0][index-1] = tolower(args[0][index]);
		else
			args[0][index] = tolower(args[0][index]);
		index++;
	}
	if(at_FLAG)
		args[0][index-1] = '\0';

	argv[0] = args[0];
	/* this kludge is for an MS-DOS wart emulation */
	tail = skipwh(lp);

	for(argc = 1; argc < NPARAMS; argc++)
	{
		lp = scan(lp, args[argc]);
		if(*args[argc] == '\0')
			break;
		else
			argv[argc] = args[argc];
	}

	if(*argv[0] != '\0')
	{
		/* Look for just a drive change command, and execute	*/
		/* it if found.						*/
		if(argv[0][1] == ':' && argv[0][2] == NULL)
		{
			BYTE c = argv[0][0];

			if(c >= 'a' && c <= 'z')
				c = c - 'a' + 'A';
			if(c >= 'A' && c <= 'Z')
				DosSetDrive(c - 'A');
		}

		/* It may be a help command request.			*/
		else if((argv[1][0] == switchchar) &&
			 (argv[1][1] == '?'))
		{
			strcpy(tail, " ");
			strcat(tail, argv[0]);
			strcat(tail, "\r\n");
			argc = 2;
			argv[1] = argv[0];
			argv[0] = "help";
			argv[2] = 0;
			ExecCmd(argc, argv);
			if(IORedirected)
				RestoreIO(OldStdin, OldStdout);
		}
		/* do a normal command execution			*/
		else
		{
			p = lookup(commands, argv[0]);
			(*(p -> func))(argc, argv);
			if(IORedirected)
				RestoreIO(OldStdin, OldStdout);
		}
	}
}


BOOL prompt(argc, argv)
WORD argc;
BYTE *argv[];
{
	BYTE *p;
	BYTE *cmd = "PROMPT";

	if(argc == 1)
	{
		p = EnvLookup(cmd);
		if(p != (BYTE *)0)
			scopy(p, prompt_string);
		else
		{
			scopy(dflt_pr_string, prompt_string);
			EnvClearVar(cmd);
		}
	}
	else
	{
		/* Trim trailing newline				*/
		for(p = tail; (*p != '\r') && (*p != '\n'); p++)
			;
		*p = '\0';

		/* should be scopy(argv[1], &pr_string[1]); but to	*/
		/* emulate an MS-DOS wart, is				*/
		scopy(tail, prompt_string);

		/* Now set the environment variable for all children to	*/
		/* see.							*/
		EnvSetVar(cmd, prompt_string);
	}
	return TRUE;
}


struct table *lookup(p, token)
struct table *p;
BYTE *token;
{
	while(*(p -> entry) != '\0')
	{
		if(strcmp(p -> entry, token) == 0)
			break;
		else
			++p;
	}
	return p;
}


VOID RestoreIO(DupStdin, DupStdout)
{
	COUNT ErrorCode;

	if(DupStdin >= 0)
	{
		if(!DosForceDupHandle(DupStdin, STDIN, (COUNT FAR *)&ErrorCode))
			error_message(INTERNAL_ERR);
		DosClose(DupStdin);
	}

	if(DupStdout >= 0)
	{
		if(!DosForceDupHandle(DupStdout, STDOUT, (COUNT FAR *)&ErrorCode))
			error_message(INTERNAL_ERR);
		DosClose(DupStdout);
	}
}


BOOL ExecCmd(argc, argv)
COUNT argc;
BYTE *argv[];
{
	exec_blk exb;
	COUNT err;
	BYTE tmppath[64];
	COUNT idx;
	BOOL ext = FALSE;
	BYTE *extp;
	COUNT len;
	BYTE *lp;
	CommandTail CmdTail;
	fcb fcb1, fcb2;
	static BYTE *extns[2] =
	{
		".com",
		".exe"
	};
	static BYTE *batfile = ".bat";
	BYTE PathString[MAX_CMDLINE];
	BYTE Path[MAX_CMDLINE], *pPath;

	/* Build the path string and create the full string that	*/
	/* includes ".\" so that the current directory is searched	*/
	/* first.  Note that Path is initialized outside the loop.	*/
	strcpy(Path, ".\\");
	strcpy(PathString, EnvLookup("PATH"));
	pPath = PathString;

	do
	{
		/* Build a path to the command.				*/
		if(*pPath == ';')
			++pPath;
		strcpy(tmppath, Path);
		if(*tmppath != '\0' && !((tmppath[strlen(tmppath) - 1] != '\\') == 0))
			strcat(tmppath, "\\");
		strcat(tmppath, argv[0]);

		/* batch processing					*/
		/* search for an extension in the specification		*/
		for(idx = len = strlen(argv[0]) ; idx > 0 && idx > (len - FEXT_SIZE - 2); --idx)
		{
			if(argv[0][idx] == '.')
			{
				ext = TRUE;
				extp = &argv[0][idx];
				break;
			}
		}

		/* If no extension was found, the entire path was	*/
		/* specified and we do not append an extension.		*/
		if(!ext)
		{
			strcat(tmppath, batfile);
			extp = batfile;
		}

		/* if it ends with a '.bat' (either user supplied or	*/
		/* previously added), try to run as a batch.		*/
		if((strcmp(extp, batfile) == 0) && batch(tmppath, tail))
		{
			if(pflag && bootup)
				bootup = FALSE;
			return TRUE;
		}

		/* tail comes in as a string with trailing newline. 	*/
		/* Convert it to a return only and put it into CmdTail	*/
		/* format						*/
		CmdTail.ctCount = (argc > 1) ? strlen(tail) : 1;
		strcpy(CmdTail.ctBuffer, " ");
		strcpy(&CmdTail.ctBuffer[1], (argc > 1) ? tail : "");
		CmdTail.ctBuffer[CmdTail.ctCount] = '\0';
		if(CmdTail.ctCount < LINESIZE)
			CmdTail.ctBuffer[CmdTail.ctCount] = '\0';
		rtn_errlvl = 0;
		exb.exec.env_seg = FP_SEG(lpEnviron);
		exb.exec.cmd_line = (CommandTail FAR *)&CmdTail;

#if 0
		if(argc > 1)
		{
			DosParseFilename((BYTE FAR *)argv[1], (fcb FAR *)&fcb1, 0);
			exb.exec.fcb_1 = (fcb FAR *)&fcb1;
		}
		else
			exb.exec.fcb_1 = (fcb FAR *)0;
		if(argc > 2)
		{
			exb.exec.fcb_2 = (fcb FAR *)&fcb2;
			DosParseFilename((BYTE FAR *)argv[2], (fcb FAR *)&fcb2, 0);
		}
		else
			exb.exec.fcb_2 = (fcb FAR *)0;
#else
		exb.exec.fcb_1 = (fcb FAR *)0;
		exb.exec.fcb_2 = (fcb FAR *)0;
#endif

		for(idx = 0; idx < 2; idx++)
		{
			strcpy(tmppath, Path);
			if(*tmppath != '\0' && !((tmppath[strlen(tmppath) - 1] != '\\') == 0))
				strcat(tmppath, "\\");
			strcat(tmppath, argv[0]);
			if(!ext)
			{
				strcat(tmppath, extns[idx]);
				extp = extns[idx];
			}
			if(!(strcmp(extp, extns[idx]) == 0))
				continue;
			if((rtn_errlvl = err = DosExec((BYTE FAR *)tmppath, (exec_blk FAR *)&exb)) != SUCCESS)
			{
				switch(err)
				{
				case DE_FILENOTFND:
					continue;

				case DE_INVLDFUNC:
					rtn_errlvl = INV_FUNCTION_PARAM;
					goto errmsg;

				case DE_PATHNOTFND:
					rtn_errlvl = PATH_NOT_FOUND;
					goto errmsg;

				case DE_TOOMANY:
					rtn_errlvl = TOO_FILES_OPEN;
					goto errmsg;

				case DE_ACCESS:
					rtn_errlvl = ACCESS_DENIED;
					goto errmsg;

				case DE_NOMEM:
					rtn_errlvl = INSUFF_MEM;
					goto errmsg;

				default:
					rtn_errlvl = EXEC_ERR;
				errmsg:
					error_message(rtn_errlvl);
					return FALSE;
				}
			}
			else
			{
				rtn_errlvl = DosRtnValue() & 0xff;
				return TRUE;
			}
		}
		if(err < 0 || idx == 2)
		{
			if(!(err == DE_FILENOTFND || idx == 2))
			{
				error_message(EXEC_FAIL);
				return FALSE;
			}
			continue;
		}
	}
	while(*Path = '\0', pPath = scanspl(pPath, Path, ';'), *Path != '\0');
	error_message(BAD_CMD_FILE_NAME);
	return FALSE;
}


BOOL cmd_exit(argc, argv)
COUNT argc;
BYTE FAR *argv[];
{
#ifndef DEBUG
	/* Don't exit from a permanent shell				*/
	if(pflag)
		return TRUE;
#endif

	/* If no values passed, return errorvalue = 0			*/
	if(argc == 1)
		DosExit(0);

	/* otherwise return what the user asked for			*/
	else
	{
		COUNT ret_val;
		static BYTE nums[] = "0123456789";
		BYTE FAR *p;

		for(ret_val = 0, p = argv[1]; isdigit(*p); p++)
		{
			COUNT j;

			for(j = 0; j < 10; j++)
				if(nums[j] == *p)
					break;
			ret_val += j;
		}
		DosExit(ret_val);
	}
        return TRUE;
}


VOID sto(c)
COUNT c;
{
	BYTE ch[1];

	*ch = c;
	DosWrite(STDOUT, (BYTE FAR *)ch, 1);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人高清视频在线观看| 精品99一区二区| 精品免费国产二区三区| 亚洲柠檬福利资源导航| 久久精工是国产品牌吗| 欧美日韩在线播放三区四区| 久久久综合视频| 亚洲成人一区在线| 91丨porny丨最新| 久久久久久久综合色一本| 亚洲777理论| 91蝌蚪porny| 国产蜜臀97一区二区三区| 美腿丝袜在线亚洲一区| 欧美亚洲丝袜传媒另类| 亚洲欧洲精品天堂一级| 国产suv一区二区三区88区| 精品国产区一区| 麻豆国产91在线播放| 91精品麻豆日日躁夜夜躁| 亚洲精品视频在线| 91在线一区二区三区| 国产日产欧美一区| 国产69精品久久99不卡| 国产片一区二区| 国产成人av一区| 国产精品视频免费看| 国产福利一区二区三区在线视频| 67194成人在线观看| 亚洲国产精品尤物yw在线观看| 91丨九色丨尤物| 亚洲精品成人悠悠色影视| 91香蕉视频黄| 有码一区二区三区| 欧美伊人久久久久久久久影院| 亚洲欧美日韩成人高清在线一区| 成人免费黄色大片| 亚洲欧美另类小说视频| 欧美性大战久久久久久久| 午夜日韩在线观看| 日韩一区二区在线看片| 韩国精品在线观看| 国产色爱av资源综合区| 99久久婷婷国产综合精品电影| 中文一区二区在线观看| av高清久久久| 亚洲曰韩产成在线| 在线成人高清不卡| 韩国av一区二区| 国产精品国产自产拍高清av王其| 99re热这里只有精品视频| 亚洲亚洲人成综合网络| 欧美一区二区三区在线观看视频| 久久99久久精品| 国产精品视频免费看| 欧美午夜精品久久久久久超碰 | 精品国内二区三区| 国产成人aaa| 亚洲精选视频免费看| 欧美肥妇bbw| 国产乱码精品一区二区三区忘忧草| 欧美国产综合一区二区| 欧美伊人精品成人久久综合97 | 亚洲另类色综合网站| 欧美人牲a欧美精品| 精品亚洲国产成人av制服丝袜| 欧美激情中文字幕一区二区| 99vv1com这只有精品| 日本美女一区二区三区视频| 国产日韩欧美精品一区| 欧美性色黄大片| 国产高清无密码一区二区三区| 一区二区三区四区高清精品免费观看 | 99re视频精品| 麻豆国产91在线播放| 亚洲欧美另类小说| 精品成人一区二区三区四区| 色综合久久中文综合久久97| 日韩1区2区3区| 亚洲欧美日韩久久精品| 久久综合久久综合久久| 在线亚洲欧美专区二区| 国产美女视频91| 天天色 色综合| 亚洲欧美一区二区三区国产精品| 欧美一区二区视频在线观看2022 | 国产精品夜夜嗨| 视频一区欧美日韩| 亚洲图片你懂的| 久久久不卡网国产精品二区| 欧美日韩在线一区二区| 色综合久久综合中文综合网| 狠狠色丁香久久婷婷综| 日本大胆欧美人术艺术动态| 亚洲乱码国产乱码精品精的特点| 久久久久青草大香线综合精品| 欧美夫妻性生活| 欧美日韩在线一区二区| 91色porny在线视频| 国产福利一区二区三区视频在线 | 一区二区中文字幕在线| 精品第一国产综合精品aⅴ| 欧美精品乱码久久久久久| 99精品视频在线观看| 国产毛片精品国产一区二区三区| 丝袜亚洲另类欧美综合| 亚洲影视资源网| 亚洲影视在线观看| 一区二区三区在线免费观看| 日韩美女精品在线| 国产精品国产三级国产aⅴ中文 | 亚洲第一狼人社区| 亚洲一区二区三区四区的| 亚洲婷婷在线视频| 日本欧美一区二区| 美腿丝袜亚洲一区| 狠狠狠色丁香婷婷综合激情 | 蜜乳av一区二区| 免费成人美女在线观看.| 日韩中文欧美在线| 久久精品国产99| 经典一区二区三区| 国产精品一区专区| 国产精品一区不卡| 成人免费看片app下载| a亚洲天堂av| 色婷婷精品大视频在线蜜桃视频| 色婷婷狠狠综合| 欧美日本在线观看| 日韩无一区二区| 精品美女一区二区| 中文字幕免费在线观看视频一区| 中文字幕五月欧美| 亚洲va韩国va欧美va精品| 丝袜美腿亚洲色图| 国产九色精品成人porny| 国产成人夜色高潮福利影视| 暴力调教一区二区三区| 91九色02白丝porn| 欧美一级欧美三级在线观看| 精品国免费一区二区三区| 中文字幕第一区二区| 亚洲一区在线看| 免费亚洲电影在线| 成人夜色视频网站在线观看| 在线一区二区视频| 精品福利一二区| 一区二区三区四区视频精品免费| 午夜成人免费视频| 久草中文综合在线| 97精品国产97久久久久久久久久久久 | 亚洲国产日韩一级| 黑人精品欧美一区二区蜜桃| 国产成人免费高清| 91色九色蝌蚪| 欧美电影精品一区二区| 日本一二三不卡| 亚洲高清免费视频| 国模冰冰炮一区二区| 国产福利91精品一区二区三区| 成人av在线网| 在线视频你懂得一区二区三区| 欧美日本在线一区| 国产日韩一级二级三级| 亚洲天堂久久久久久久| 极品美女销魂一区二区三区| 国产成人午夜视频| 欧洲激情一区二区| 精品国产一区二区在线观看| 一区二区三区高清| 看片网站欧美日韩| 一本久久精品一区二区| 欧美一区二区二区| 一个色在线综合| 国产一区二区三区黄视频 | 中文字幕日韩一区| 一区二区三区在线观看网站| 国产成人福利片| 欧美久久一二区| 精品国产乱码久久久久久久| 亚洲蜜臀av乱码久久精品| 精品一区二区三区香蕉蜜桃| 欧美视频你懂的| 专区另类欧美日韩| 国产精品1024| 91精品麻豆日日躁夜夜躁| 欧美极品另类videosde| 国内精品国产成人| 欧美片网站yy| 一区免费观看视频| 激情综合一区二区三区| 欧美二区乱c少妇| 一区二区三区四区亚洲| 成人精品高清在线| 国产精品美日韩| 国产a精品视频| 欧美精品一区男女天堂| 国产精品夜夜爽| 国产亚洲欧洲一区高清在线观看| 日韩av成人高清|