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

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

?? inthndlr.c

?? 分享:Dos操作系統的源程序
?? C
?? 第 1 頁 / 共 3 頁
字號:
		break;

	/* Get Child-program Return Value                               */
	case 0x4d:
		r -> AL = return_code;
		r -> AH = return_mode;
		break;

	/* Dos Find First                                               */
	case 0x4e:
		{
			psp FAR *p = MK_FP(cu_psp,0);
			/* dta for this call is set on entry.  This     */
			/* needs to be changed for new versions.        */

			if((rc = DosFindFirst((UCOUNT)r -> CX, (BYTE FAR *)MK_FP(r -> DS, r -> DX))) < 0)
				goto error_exit;
			else
			{
				r -> AX = 0;
				r -> FLAGS &= ~FLG_CARRY;
			}
		}
		break;

	/* Dos Find Next                                                */
	case 0x4f:
		{
			psp FAR *p = MK_FP(cu_psp,0);

			/* dta for this call is set on entry.  This     */
			/* needs to be changed for new versions.        */

			if((rc = DosFindNext()) < 0)
			{
				r -> AX = -rc;
				
				if (r -> AX == 2)
					r -> AX = 18;

				r -> FLAGS |= FLG_CARRY;
			}
			else
			{
				r -> FLAGS &= ~FLG_CARRY;
			}
		}
		break;

	/* Set PSP                                                      */
	case 0x50:
		cu_psp = r -> BX;
		break;

	/* Get PSP                                                      */
	case 0x51:
		r -> BX = cu_psp;
		break;

	/* ************UNDOCUMENTED**************************************/
	/* Get List of Lists                                            */
	case 0x52:
		{
			BYTE FAR *p;

			p = (BYTE FAR *)&DPBp;
			r -> ES = FP_SEG(p);
			r -> BX = FP_OFF(p);
		}
		break;

	/* Get verify state                                             */
	case 0x54:
		r -> AL = (verify_ena ? TRUE : FALSE);
		break;

	/* ************UNDOCUMENTED**************************************/
	/* Dos Create New Psp & set p_size                              */
	case 0x55:
		new_psp((psp FAR *)MK_FP(r -> DX, 0), r -> SI);
		break;

	/* Dos Rename                                                   */
	case 0x56:
		rc = dos_rename(
		 (BYTE FAR *)MK_FP(r -> DS, r -> DX),   /* OldName      */
		 (BYTE FAR *)MK_FP(r -> ES, r -> DI));  /* NewName      */
		if(rc < SUCCESS)
			goto error_exit;
		else
		{
			r -> FLAGS &= ~FLG_CARRY;
		}
		break;

	/* Get/Set File Date and Time                                   */
	case 0x57:
		switch(r -> AL)
		{
		case 0x00:
			if(!DosGetFtime(
			 (COUNT)r -> BX,        /* Handle               */
			 (date FAR *)&r -> DX,  /* FileDate             */
			 (time FAR *)&r -> CX)) /* FileTime             */
			{
				r -> AX = -DE_INVLDHNDL;
				r -> FLAGS |= FLG_CARRY;
			}
			else
				r -> FLAGS &= ~FLG_CARRY;
			break;

		case 0x01:
			if(!DosSetFtime(
			 (COUNT)r -> BX,        /* Handle               */
			 (date FAR *)&r -> DX,  /* FileDate             */
			 (time FAR *)&r -> CX)) /* FileTime             */
			{
				r -> AX = -DE_INVLDHNDL;
				r -> FLAGS |= FLG_CARRY;
			}
			else
				r -> FLAGS &= ~FLG_CARRY;
			break;
		
		default:
			goto error_invalid;
		}
		break;


	/* Get/Set Allocation Strategy                                  */
	case 0x58:
		switch(r -> AL)
		{
		case 0x00:
			r -> AX = mem_access_mode;
			break;

		case 0x01:
			if(((COUNT)r -> BX) < 0 || r -> BX > 2)
				goto error_invalid;
			else
			{
				mem_access_mode = r -> BX;
				r -> FLAGS &= ~FLG_CARRY;
			}
			break;
		
		default:
			goto error_invalid;
#ifdef DEBUG
		case 0xff:
			show_chain();
			break;
#endif
		}
		break;

	case 0x5a:
		if((rc = DosMkTmp(MK_FP(r -> DS, r -> DX), r -> CX)) < 0)
			goto error_exit;
		else
		{
			 r -> AX = rc;
			 r -> FLAGS &= ~FLG_CARRY;
		}
		break;

	case 0x5b:
		
		if((rc = DosOpen(MK_FP(r -> DS, r -> DX), 0)) >= 0)
		{
			DosClose(rc);
			r -> AX = 80;
			r -> FLAGS |= FLG_CARRY;
		} 
		else 
		{
			   if((rc = DosCreat(MK_FP(r -> DS, r -> DX), r -> CX)) < 0)
				goto error_exit;
			   else
			   {
				r -> AX = rc;
				r -> FLAGS &= ~FLG_CARRY;
			   }
		}
		break;
	
	/* UNDOCUMENTED: server, share.exe and sda function		*/
	case 0x5d:
		switch(r -> AL)
		{
		case	0x06:
			r -> DS = FP_SEG(internal_data);
			r -> SI = FP_OFF(internal_data);
			r -> CX = swap_always - internal_data;
			r -> DX = swap_indos - internal_data;
			r -> FLAGS &= ~FLG_CARRY;
			break;

		default:
			goto error_invalid;
		}

	case 0x60:      /* TRUENAME */
		if ((rc = truename(MK_FP(r -> DS, r-> SI),
		 adjust_far(MK_FP( r -> ES, r -> DI)))) != SUCCESS)
			goto error_exit;
		else
		{
			r -> FLAGS &= ~FLG_CARRY;
		}
		break;
		
#ifdef TSC
	/* UNDOCUMENTED: no-op						*/
	/*								*/
	/* DOS-C: tsc support						*/
	case 0x61:
		switch(r -> AL)
		{
		case 0x01:
			bTraceNext = TRUE;
			break;

		case 0x02:
			bDumpRegs = FALSE;
			break;
		}
#endif
		break;

	/* UNDOCUMENTED: return current psp                             */
	case 0x62:
		r -> BX = cu_psp;
		break;

	/* UNDOCUMENTED: Double byte and korean tables                  */
	case 0x63:
	{
#ifdef DBLBYTE
		static char dbcsTable[2] = 
		{
			0, 0
		};
		void FAR *dp = &dbcsTable;
		
		r -> DS = FP_SEG(dp);
		r -> SI = FP_OFF(dp);
		r -> AL = 0;
#else
		/* not really supported, but will pass.			*/
		r -> AL = 0xff;
#endif
		break;
	}

	/* Extended country info                                        */
	case 0x65:
		if(r -> AL <= 0x7)
		{
			if(ExtCtryInfo(
				r -> AL,
				r -> BX,
				r -> CX,
				MK_FP(r -> ES, r -> DI)))
				r -> FLAGS &= ~FLG_CARRY;
			else
				goto error_invalid;
		}
		else if((r -> AL >= 0x20) && (r -> AL <= 0x22))
		{
			switch(r -> AL)
			{
			case 0x20:
				r -> DL = upChar(r -> DL);
				goto okay;

			case 0x21:
				upMem(
					MK_FP(r -> DS, r -> DX),
					r -> CX);
				goto okay;

			case 0x22:
				upString(MK_FP(r -> DS, r -> DX));
			okay:
				r -> FLAGS &= ~FLG_CARRY;
				break;

			case 0x23:
				r -> AX = yesNo(r -> DL);
				goto okay;

			default:
				goto error_invalid;
			}
		}
		else
			r -> FLAGS |= FLG_CARRY;
		break;

	case 0x66:
		switch(r -> AL)
		{
		case 1:
			GetGlblCodePage(
				(UWORD FAR *)&(r -> BX),
				(UWORD FAR *)&(r -> DX));
			goto okay_66;

		case 2:
			SetGlblCodePage(
				(UWORD FAR *)&(r -> BX),
				(UWORD FAR *)&(r -> DX));
		okay_66:
			r -> FLAGS &= ~FLG_CARRY;
			break;

		default:
			goto error_invalid;
		}
		break;
	case 0x67: 
		if ((rc = SetJFTSize( r -> BX)) != SUCCESS)
			goto error_exit;
		else
		{
			r -> FLAGS &= ~FLG_CARRY;
		}
		break;
	}

	if(bDumpRegs)
	{
		fbcopy((VOID FAR *)user_r  , (VOID FAR *)&error_regs,
		 sizeof(iregs));
		dump_regs = TRUE;
		dump();
	}
}



VOID INRPT FAR 
int22_handler (void)
{
}

#pragma argsused
VOID INRPT FAR 
int23_handler (int es, int ds, int di, int si, int bp, int sp, int bx, int dx, int cx, int ax, int ip, int cs, int flags)
{
	tsr = FALSE;
	return_mode = 1;
	return_code = -1;
	mod_sto(CTL_C);
	DosMemCheck();
#ifdef TSC
	StartTrace();
#endif
	return_user();
}


#pragma argsused
VOID INRPT FAR 
int24_handler (void)
{
}

/* Structures needed for int 25 / int 26 */
struct  HugeSectorBlock
{
	ULONG   blkno;  
	WORD    nblks;
	BYTE    FAR *buf;
};

struct  int25regs
{
	UWORD   es, ds;
	UWORD   di, si, bp, sp;
	UWORD   bx, dx, cx, ax;
	UWORD   flags, ip, cs;
};

/* this function is called from an assembler wrapper function */ 
VOID    int25_handler (struct int25regs FAR *r)
{
	ULONG   blkno;
	UWORD   nblks;
	BYTE    FAR *buf;
	UBYTE   drv = r->ax & 0xFF;

	InDOS++;

	if (r->cx == 0xFFFF)
	{
		struct HugeSectorBlock FAR *lb = MK_FP(r->ds, r->bx);
		blkno = lb->blkno;
		nblks = lb->nblks;
		buf = lb->buf;
	} else {
		nblks = r->cx;
		blkno = r->dx;
		buf = MK_FP(r->ds, r->bx);
	}

	if (drv >= nblkdev)
	{
		r->ax = 0x202; 
		r->flags |= FLG_CARRY; 
		return;
	}
	

	while (nblks--)
	{
		struct buffer FAR *bp;

		if ((bp = getblock(blkno + 1, drv)) == NULL) 
		{
			r->ax = 0x202; 
			r->flags |= FLG_CARRY; 
			return;
		}
		fbcopy(bp->b_buffer, buf, maxbksize);
		buf += maxbksize;
		blkno++;
	}
	r->ax = 0;
	r->flags &= ~FLG_CARRY;
	--InDOS;
}

VOID int26_handler (struct int25regs FAR *r)
{
	ULONG   blkno;
	UWORD   nblks;
	BYTE    FAR *buf;
	UBYTE    drv = r->ax & 0xFF;

	InDOS++;

	if (r->cx == 0xFFFF)
	{
		struct HugeSectorBlock FAR *lb = MK_FP(r->ds, r->bx);
		blkno = lb->blkno;
		nblks = lb->nblks;
		buf = lb->buf;
	} else {
		nblks = r->cx;
		blkno = r->dx;
		buf = MK_FP(r->ds, r->bx);
	}

	if (drv >= nblkdev)
	{
		r->ax = 0x202;
		r->flags |= FLG_CARRY;
		return;
	}

	while (nblks--)
	{
		struct buffer FAR *b;

		getbuf(&b, blkno + 1, drv);
		fbcopy(buf, b->b_buffer, maxbksize);
		b -> b_flag |= (BFR_DIRTY | BFR_VALID);
		b -> b_blkno = blkno + 1;
		b -> b_unit = drv;

		if (flush1(b) == FALSE)
		{
			r->ax = 0x202; 
			r->flags |= FLG_CARRY;
			return;
		}
		
		buf += maxbksize;
		blkno++;
	}
	r->ax = 0;
	r->flags &= ~FLG_CARRY;
	--InDOS;
}


VOID INRPT FAR 
int28_handler (void)
{
}


VOID INRPT FAR
empty_handler (void)
{
}


#ifdef TSC
static VOID StartTrace(VOID)
{
	if(bTraceNext)
	{
		bDumpRegs = TRUE;
		bTraceNext = FALSE;
	}
	else
		bDumpRegs = FALSE;
}
#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区欧美一区| 男男gaygay亚洲| 喷白浆一区二区| 不卡的电影网站| 日韩一区和二区| 最新高清无码专区| 国产在线精品不卡| 欧美久久久久免费| **性色生活片久久毛片| 激情综合网天天干| 欧美人与性动xxxx| 亚洲理论在线观看| 国产精品夜夜爽| 欧美一级片在线看| 午夜伊人狠狠久久| 色哟哟国产精品| 国产精品美女久久久久久久久久久| 午夜精品一区二区三区三上悠亚| thepron国产精品| 久久亚洲一级片| 免费成人在线网站| 欧美人动与zoxxxx乱| 一区二区三区欧美视频| 国产一区二三区好的| 欧美日韩国产高清一区| 中文字幕制服丝袜成人av| 看电视剧不卡顿的网站| 欧美视频一区二区三区四区| 国产精品国产三级国产aⅴ入口| 久久丁香综合五月国产三级网站| 欧美日韩1234| 日韩精品乱码av一区二区| 日本久久精品电影| 亚洲免费电影在线| 色综合天天综合网天天狠天天 | 色综合天天综合狠狠| 国产日韩高清在线| 国产精一区二区三区| 久久蜜桃av一区精品变态类天堂 | 成人教育av在线| 国产欧美视频在线观看| 国产成人精品影视| 久久精品免视看| 国产精品1024久久| 中文字幕欧美国产| www.亚洲色图| 亚洲美女精品一区| 色狠狠综合天天综合综合| 亚洲毛片av在线| 欧美日韩一区视频| 蜜乳av一区二区| 久久一区二区三区国产精品| 国产91富婆露脸刺激对白| 欧美激情一区二区三区不卡| 成人福利视频网站| 亚洲欧美激情小说另类| 欧美日韩一区二区三区四区五区 | 欧美一区二区在线免费播放| 另类小说欧美激情| 亚洲精品日韩专区silk| 欧美一级在线免费| 狠狠色丁香婷婷综合久久片| 久久久亚洲国产美女国产盗摄| 国产精品伊人色| 一区二区三区中文字幕电影| 7777精品久久久大香线蕉| 极品瑜伽女神91| 亚洲色图.com| 日韩欧美一卡二卡| 色综合久久综合中文综合网| 亚洲动漫第一页| 日本一区二区三区久久久久久久久不| caoporen国产精品视频| 亚洲大片在线观看| 国产日韩欧美制服另类| 色老汉一区二区三区| 精品一区二区三区的国产在线播放| 国产日韩欧美激情| 欧美丝袜丝nylons| 国产成人精品亚洲777人妖| 亚洲精品久久7777| 精品国产精品网麻豆系列| 色综合久久久久综合99| 黄色日韩三级电影| 亚洲综合视频网| 国产日韩三级在线| 日韩欧美一区二区视频| 色悠久久久久综合欧美99| 久久99精品久久久久久动态图 | 亚洲精品视频在线| 精品久久国产字幕高潮| 色av一区二区| 粉嫩久久99精品久久久久久夜| 日韩影院免费视频| 亚洲情趣在线观看| 国产精品色一区二区三区| 日韩欧美一级精品久久| 欧美性受xxxx黑人xyx| 不卡av免费在线观看| 免费看日韩精品| 亚洲午夜精品一区二区三区他趣| 国产欧美日韩不卡| 精品第一国产综合精品aⅴ| 欧美色网一区二区| 91视视频在线观看入口直接观看www | √…a在线天堂一区| 久久久久亚洲综合| 日韩欧美在线一区二区三区| 欧美中文字幕一二三区视频| www.欧美精品一二区| 福利91精品一区二区三区| 国产一区二区三区四| 欧美96一区二区免费视频| 午夜久久久久久电影| 性久久久久久久久| 午夜精品久久久久影视| 亚洲动漫第一页| 午夜国产不卡在线观看视频| 亚洲一二三专区| 亚洲第一福利视频在线| 亚洲国产一二三| 午夜亚洲国产au精品一区二区| 一区二区三区高清在线| 一区二区欧美国产| 亚洲一区二区视频在线| 亚洲国产一二三| 蜜桃视频在线观看一区二区| 麻豆国产91在线播放| 久久97超碰国产精品超碰| 美女视频一区在线观看| 另类欧美日韩国产在线| 国产剧情一区在线| 国产91精品久久久久久久网曝门| 丁香六月久久综合狠狠色| 成人av在线播放网址| 91久久线看在观草草青青| 欧美人牲a欧美精品| 精品少妇一区二区| 国产精品天美传媒| 亚洲欧美日韩一区二区| 亚洲图片欧美综合| 久久国产精品无码网站| 国产成人av电影在线播放| 国产999精品久久| 色婷婷综合久久久中文字幕| 欧美高清你懂得| 久久久久久亚洲综合影院红桃| 亚洲国产高清不卡| 亚洲一区二区三区四区在线免费观看 | 激情文学综合丁香| www.66久久| 日韩欧美在线1卡| 中文字幕av不卡| 亚洲午夜久久久久久久久久久| 捆绑调教一区二区三区| 成人av网站在线| 91麻豆精品国产自产在线| 亚洲精品一区在线观看| 亚洲欧洲精品一区二区精品久久久 | 欧美午夜理伦三级在线观看| 日韩欧美亚洲一区二区| 亚洲欧美成人一区二区三区| 麻豆91免费看| 91精品福利视频| 国产亚洲欧美色| 亚洲成年人网站在线观看| 国产美女在线精品| 精品视频一区 二区 三区| 国产区在线观看成人精品 | 欧美在线一二三四区| 欧美一级一区二区| 日韩理论片在线| 国产综合一区二区| 欧美另类videos死尸| 国产精品成人免费精品自在线观看| 日韩影院在线观看| 91激情在线视频| 国产精品剧情在线亚洲| 久久疯狂做爰流白浆xx| 欧美日韩视频第一区| 专区另类欧美日韩| 国产成人av电影免费在线观看| 91精品国产综合久久福利软件| 亚洲区小说区图片区qvod| 国产91精品入口| 久久久国产午夜精品| 喷白浆一区二区| 欧美久久久久中文字幕| 亚洲国产一二三| 欧美专区日韩专区| 亚洲精品久久7777| 91在线国产福利| 国产精品美女久久久久aⅴ| 韩国成人在线视频| 欧美精品一区二区高清在线观看| 日韩电影一区二区三区四区| 欧美日韩一区二区在线观看| 一卡二卡三卡日韩欧美| 色综合天天综合网天天狠天天| 国产精品亲子伦对白|