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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? config.c

?? DOS操作系統(tǒng)的源代碼,不知道這個年代還有沒有人想再研究一下?
?? C
?? 第 1 頁 / 共 2 頁
字號:
				if (*pTmp == '\r' || *pTmp == EOF) 
				    break;
			}

			if (pTmp - szLine >= LINESIZE)
			    break;
		
			if (*pTmp == EOF) 
			    bEof = TRUE;

			*pTmp = '\0';
			pLineStart = pLine;

			/* Skip leading white space and get verb.               */
			pLine = scan(pLine, szBuf);

			/* Translate the verb to lower case ...                 */
			for(pTmp = szBuf; *pTmp != '\0'; pTmp++)
				*pTmp = tolower(*pTmp);

			/* If the line was blank, skip it.  Otherwise, look up  */
			/* the verb and execute the appropriate function.       */
			if(*szBuf != '\0')
			{
				pEntry = LookUp(commands, szBuf);
					
				if(pEntry -> pass < 0 || pEntry -> pass == nPass)
				{        
					if (!singleStep || !SkipLine(pLineStart))
					{
						skipwh(pLine);
						
						if('=' != *pLine)
							CfgFailure(pLine);
						else (*(pEntry -> func))(++pLine);
					}
				}
			}
skipLine:               nCfgLine++;
			pLine += strlen(pLine) + 1;
		}
	}
	dos_close(nFileDesc);
}

struct table *LookUp(struct table *p, BYTE *token)
{
	while(*(p -> entry) != '\0')
	{
		if(strcmp(p -> entry, token) == 0)
			break;
		else
			++p;
	}
	return p;
}
					    
BOOL    SkipLine(char *pLine)
{
	char    kbdbuf[16];
	keyboard *kp = (keyboard *)kbdbuf;
	char    *pKbd = &kp->kb_buf[0];

	kp->kb_size = 12;
	kp->kb_count = 0;
	
	printf("%s [Y,N]?", pLine);
	sti(kp);
	
	pKbd = skipwh(pKbd);
	
	if (*pKbd == 'n' || *pKbd == 'N')
		return TRUE;        
	    
	return FALSE;
}

BYTE *GetNumArg(BYTE *pLine, COUNT *pnArg)
{
	/* look for NUMBER                               */
	pLine = skipwh(pLine);
	if(!isnum(pLine))
	{
		CfgFailure(pLine);
		return (BYTE *)0;
	}
	return GetNumber(pLine, pnArg);
}


BYTE *GetStringArg(BYTE *pLine, BYTE *pszString)
{
	/* look for STRING                               */
	pLine = skipwh(pLine);

	/* just return whatever string is there, including null         */
	return scan(pLine, pszString);
}

static VOID Buffers(BYTE *pLine)
{
	COUNT nBuffers;

	/* Get the argument                                             */
	if(GetNumArg(pLine, &nBuffers) == (BYTE *)0)
		return;

	/* Got the value, assign either default or new value            */
	Config.cfgBuffers = max(Config.cfgBuffers, nBuffers);
}

static VOID Files(BYTE *pLine)
{
	COUNT nFiles;

	/* Get the argument                                             */
	if(GetNumArg(pLine, &nFiles) == (BYTE *)0)
		return;

	/* Got the value, assign either default or new value            */
	Config.cfgFiles = max(Config.cfgFiles, nFiles);
}

static VOID Lastdrive(BYTE *pLine)
{
	/* Format:   LASTDRIVE = letter         */
	COUNT   nFiles;
	BYTE    drv;

	pLine = skipwh(pLine);
	drv = *pLine & ~0x20;   

	if (drv < 'A' || drv > 'Z')
	{        
		CfgFailure(pLine);
		return;
	}
	drv -= 'A';
	Config.cfgLastdrive = max(Config.cfgLastdrive, drv);
}

static VOID Switchar(BYTE *pLine)
{
	/* Format: SWITCHAR = character         */
	
	GetStringArg(pLine, szBuf);
	switchar = *szBuf;
}

static VOID Fcbs(BYTE *pLine)
{
	/*  Format:     FCBS = totalFcbs [,protectedFcbs]    */
	
	if ((pLine = GetNumArg(pLine, &Config.cfgFcbs)) == 0)
	    return;

	pLine = skipwh(pLine);

	if (*pLine == ',')
	    GetNumArg(++pLine, &Config.cfgProtFcbs);

	if (Config.cfgProtFcbs > Config.cfgFcbs)
	    Config.cfgProtFcbs = Config.cfgFcbs;
}

static VOID Country(BYTE *pLine)
{
	/* Format: COUNTRY = countryCode, [codePage], filename  */
	UWORD   ctryCode;
	UWORD   codePage;

	if ((pLine = GetNumArg(pLine, &ctryCode)) == 0)
	    return;
	    
	pLine = skipwh(pLine);
	if (*pLine == ',')
	{
		pLine = skipwh(pLine);
		
		if (*pLine == ',') 
		{
		    codePage = 0;
		    ++pLine;
		} else {
		    if ((pLine = GetNumArg(pLine, &codePage)) == 0)
			return;
		}

		pLine = skipwh(pLine);
		if (*pLine == ',')
		{
		    GetStringArg(++pLine, szBuf);
		    
		    if (LoadCountryInfo(szBuf, ctryCode, codePage))
			return;
		}
	}
	CfgFailure(pLine);
}

static VOID Stacks(BYTE *pLine)
{
	/* Format:  STACKS = stacks [, stackSize]       */
	pLine = GetNumArg(pLine, &Config.cfgStacks);

	if (*pLine == ',')
	    GetNumArg(++pLine, &Config.cfgStackSize);

	if (Config.cfgStacks)
	{
	    if (Config.cfgStackSize < 32) Config.cfgStackSize = 32;
	    if (Config.cfgStackSize > 512) Config.cfgStackSize = 512;
	    if (Config.cfgStacks > 64) Config.cfgStacks = 64;
	}
}

static VOID InitPgm(BYTE *pLine)
{
	/* Get the string argument that represents the new init pgm     */
	pLine = GetStringArg(pLine, Config.cfgInit);

	/* Now take whatever tail is left and add it on as a single     */
	/* string.                                                      */
	strcpy(Config.cfgInitTail, pLine);

	/* and add a DOS new line just to be safe                       */
	strcat(Config.cfgInitTail, "\r\n");
}

static VOID   Break(BYTE *pLine)
{
	/* Format:      BREAK = (ON | OFF)      */
	BYTE *pTmp;

	GetStringArg(pLine, szBuf);
	break_ena = strcmp(szBuf, "OFF")? 1 : 0;
}

static VOID Device(BYTE *pLine)
{
	VOID FAR *driver_ptr;
	BYTE *pTmp;
	exec_blk eb;
	struct dhdr FAR *dhp;
	struct dhdr FAR *next_dhp;
	UWORD dev_seg = (((ULONG)FP_SEG(lpBase) << 4) + FP_OFF(lpBase) + 0xf) >> 4;
	
	/* Get the device driver name                                   */
	GetStringArg(pLine, szBuf);

	/* The driver is loaded at the top of allocated memory.         */             
	/* The device driver is paragraph aligned.                      */
	eb.load.reloc = eb.load.load_seg = dev_seg;
	dhp = MK_FP(dev_seg, 0);
	
#ifdef DEBUG
	printf("Loading device driver %s at segment %04x\n", 
	       szBuf, dev_seg);
#endif

	if (DosExec(3, &eb, szBuf) == SUCCESS)
	{
	    while(FP_OFF(dhp) != 0xFFFF)
	    {
		next_dhp = MK_FP(FP_SEG(dhp), FP_OFF(dhp -> dh_next));
		dhp -> dh_next = nul_dev.dh_next; 
		link_dhdr(&nul_dev, dhp, pLine); 
		dhp = next_dhp;
	    } 
	} else CfgFailure(pLine);
}

static VOID CfgFailure(BYTE *pLine)
{
	BYTE *pTmp = pLineStart;

	printf("CONFIG.SYS error in line %d\n", nCfgLine);
	printf(">>>%s\n", pTmp);
	while(++pTmp != pLine)
		printf(" ");
	printf("^\n");
}

#ifndef KDB
static BYTE FAR *
KernelAlloc(WORD nBytes)
{
	BYTE FAR *lpAllocated;

	lpBase = AlignParagraph(lpBase);
	lpAllocated = lpBase;

	if (0x10000 - FP_OFF(lpBase) <= nBytes)
	{
		UWORD newOffs = (FP_OFF(lpBase) + nBytes) & 0xFFFF;
		UWORD newSeg = FP_SEG(lpBase) + 0x1000;

		lpBase = MK_FP(newSeg, newOffs);
	} else lpBase += nBytes;

	return lpAllocated;
}
#endif

#ifdef I86
static VOID FAR *AlignParagraph(VOID FAR *lpPtr)
{
	ULONG lTemp;
	UWORD uSegVal;

	/* First, convert the segmented pointer to linear address	*/
	lTemp = FP_SEG(lpPtr);
	lTemp = (lTemp << 4) + FP_OFF(lpPtr);

	/* Next, round up the linear address to a paragraph boundary.	*/
	lTemp += 0x0f;
	lTemp &= 0xfffffff0l;

	/* Break it into segments.                                      */
	uSegVal = (UWORD)(lTemp >> 4);

	/* and return an adddress adjusted to the nearest paragraph     */
	/* boundary.                                                    */
	return MK_FP(uSegVal, 0);
}
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美综合在线观看第十页| 久久97超碰国产精品超碰| 亚洲国产成人va在线观看天堂| 精品制服美女丁香| 欧美体内she精高潮| 中文字幕av在线一区二区三区| 天堂在线亚洲视频| 99久久久免费精品国产一区二区| 欧美岛国在线观看| 日韩二区在线观看| 欧美亚洲愉拍一区二区| 国产精品乱码一区二三区小蝌蚪| 免费成人av资源网| 欧美电影影音先锋| 亚洲国产精品影院| 欧美视频三区在线播放| 亚洲精品国产第一综合99久久| 成人动漫av在线| 国产精品成人网| eeuss鲁一区二区三区| 中文字幕欧美国产| 国产成人精品免费一区二区| 精品国精品自拍自在线| 日韩vs国产vs欧美| 日韩欧美美女一区二区三区| 日韩影视精彩在线| 欧美一区二区三区的| 日本伊人午夜精品| 欧美一区二区三区视频| 免费精品视频在线| 精品美女一区二区| 国产一区91精品张津瑜| 久久久精品综合| 国产精品一区二区你懂的| 久久久久国产精品麻豆ai换脸| 韩国成人精品a∨在线观看| 2021国产精品久久精品| 国产成人av在线影院| 日本一区二区三区在线观看| 岛国一区二区三区| 亚洲视频免费观看| 欧美丝袜丝nylons| 美女尤物国产一区| 久久精品在这里| 99v久久综合狠狠综合久久| 亚洲宅男天堂在线观看无病毒| 欧美三级蜜桃2在线观看| 日日夜夜免费精品| 久久久亚洲午夜电影| 99这里都是精品| 亚洲va国产天堂va久久en| 日韩亚洲欧美在线观看| 粉嫩一区二区三区在线看| 中文字幕五月欧美| 欧美日韩精品一二三区| 久久精品国产澳门| |精品福利一区二区三区| 欧美日韩一区小说| 国产一区二区免费看| 一色屋精品亚洲香蕉网站| 欧美视频在线一区二区三区| 免费成人美女在线观看| 中文字幕在线视频一区| 欧美人伦禁忌dvd放荡欲情| 国产精品系列在线播放| 亚洲综合在线观看视频| 欧美成人欧美edvon| 99精品在线观看视频| 久久激五月天综合精品| 亚洲色图丝袜美腿| 日韩手机在线导航| 91蝌蚪porny九色| 青青国产91久久久久久| 国产精品国产自产拍高清av| 51精品久久久久久久蜜臀| 成人午夜在线播放| 久久精品国产99国产| 亚洲影视在线播放| 国产精品视频一二| 欧美成人欧美edvon| 欧美视频在线不卡| 成人黄页在线观看| 国产在线乱码一区二区三区| 亚洲国产中文字幕在线视频综合| 亚洲国产成人午夜在线一区| 日韩视频123| 欧美日韩在线亚洲一区蜜芽| 懂色av一区二区在线播放| 三级亚洲高清视频| 亚洲美女偷拍久久| 国产精品麻豆一区二区| 久久久一区二区| 欧美一卡二卡三卡四卡| 欧美午夜电影一区| 91免费国产视频网站| 国产999精品久久| 久久91精品国产91久久小草| 日本网站在线观看一区二区三区 | 狠狠色狠狠色综合| 无吗不卡中文字幕| 一区二区三区免费在线观看| 国产精品高潮久久久久无| 久久精品在线免费观看| 欧美精品一区二区三区蜜桃视频| 欧美一区二区三区日韩| 91精品国产入口| 日韩欧美一区二区不卡| 欧美精品第1页| 91精品午夜视频| 91麻豆精品国产91久久久久 | av电影天堂一区二区在线观看| 国产精品综合网| 国产成人综合视频| 国产一区在线观看麻豆| 国内久久精品视频| 国产成人一级电影| 99精品在线观看视频| 91香蕉国产在线观看软件| 91网址在线看| 欧美日韩国产bt| 日韩三级视频中文字幕| www精品美女久久久tv| 欧美国产精品v| 国产精品盗摄一区二区三区| 日韩毛片精品高清免费| 亚洲精品老司机| 视频一区二区欧美| 国内精品第一页| 99在线视频精品| 欧美久久一区二区| 精品福利av导航| 亚洲欧美综合网| 午夜精品久久久久久久99水蜜桃| 三级久久三级久久| 国产大陆a不卡| 欧美性高清videossexo| 欧美成人精品1314www| 国产精品久久久久久久午夜片| 一区二区三区日韩精品视频| 日韩国产一区二| 成人激情免费视频| 欧美另类高清zo欧美| 久久精品人人做| 亚洲一卡二卡三卡四卡| 国产在线精品国自产拍免费| 91在线看国产| 日韩欧美在线网站| 国产精品毛片大码女人| 日韩电影在线看| 99麻豆久久久国产精品免费优播| 在线观看www91| 国产午夜亚洲精品午夜鲁丝片 | 国产午夜三级一区二区三| 艳妇臀荡乳欲伦亚洲一区| 国内精品免费**视频| 色悠久久久久综合欧美99| 精品久久久久久久久久久久久久久 | 国产一区二区三区四区五区入口 | 日韩三级在线观看| 亚洲日韩欧美一区二区在线| 麻豆视频观看网址久久| 色呦呦网站一区| 国产精品女主播av| 日本不卡中文字幕| 色狠狠色噜噜噜综合网| 久久久一区二区三区| 日韩精品亚洲专区| 色诱视频网站一区| 国产欧美视频在线观看| 久久av中文字幕片| 欧美肥胖老妇做爰| 一区二区欧美视频| 成人网页在线观看| 精品日韩欧美在线| 蜜桃视频在线观看一区| 欧美亚洲动漫另类| 亚洲视频在线观看三级| 国产成a人亚洲精品| 26uuu欧美日本| 日韩精品国产欧美| 欧美色倩网站大全免费| 亚洲激情在线激情| 91视频免费播放| 亚洲天天做日日做天天谢日日欢| 国产91丝袜在线播放九色| 欧美成人乱码一区二区三区| 日韩一区精品视频| 欧美高清你懂得| 日韩在线一区二区| 欧美日韩亚洲综合| 亚洲午夜精品网| 欧美欧美午夜aⅴ在线观看| 一区二区三区不卡视频| 91久久人澡人人添人人爽欧美| 国产精品国产三级国产三级人妇| 成人av综合一区| 国产精品久久久久影院| 91亚洲永久精品| 一区二区视频在线| 欧美羞羞免费网站|