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

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

?? batch.c

?? DOS源碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
/*rbf*/
#if 1
BYTE	prmptcpbuf[MAX_ENVLEN];
REG BYTE *prmptcp = prmptcpbuf;
#endif

	if(!echoflg)			/* Return if No Echo	*/
	    return;



#if defined(CPM)
	cp = heap();
	strcpy(cp, "[CPM] $u$p$g");
#else
	if(env_scan(msg_prmeq, cp = (BYTE *)heap()))
	    strcpy(cp, DEFAULT_PROMPT);
#endif

	if(prompt_flg)			/* If the previous Prompt display   */
	    strcpy(cp, "$n$g");		/* terminated due to a Critical	    */
					/* then just display the default    */
	prompt_flg = TRUE;		/* drive.			    */

#if STACK
	cp = stack(strlen(cp) + 1);
#else
	cp = &cpbuf[0];
#endif
	strcpy(cp, heap());

	while((c = *cp++) != 0) {	/* get next character */
	    if (c != '$')		/* if not '$', print as is */
		putc (c);
	    else {
		c = *cp++;
		switch(tolower(c)) {	/* else get next character */
		 case '\0':		/* Treat "$\0" as an invalid 	    */
		     cp--;		/* prompt command sequence	    */
		     break;
		 case 't':		/* print current time */
		    disp_systime();
		    break;
		 case 'd':		/* print current date */
		    disp_sysdate();
		    break;
		 case 'p':		/* print current path */
		    if (ms_x_curdir(drive+1, buf) < 0)
		        printf(MSG_DRV_INVALID);
		    else
		        printf("%c:%s%s", drive+'A', pathchar, buf);
		    break;
		 case 'v':		/* print version number */
		    cmd_ver("");
		    break;
		 case 'n':		/* print default drive */
		    putc((BYTE) drive+'A');
		    break;
		 case 'g':		/* print ">" */
		    putc ('>');
		    break;
		 case 'l':		/* print "<" */
		    putc ('<');
		    break;
		 case 'b':		/* print "|" */
		    putc ('|');
		    break;
		 case 'q':		/* print "=" */
		    putc ('=');
		    break;
		 case '_':		/* print CR,LF */
		    crlf();
		    break;
		 case 'h':		/* print backspace, space, backspace */
		    printf("\b \b");
		    break;
		 case 'e':		/* print ESC character */
		    putc ('\33');
		    break;
/*RG-01 */ 

#if !defined(NOXBATCH)
#if !defined (NOSECURITY) 
#if defined(CDOSTMP) || defined(CDOS)
		 case 'm':		/* print mail status */
                if (login_enabled()) {
                    if(chk_mail()) { /* we have mail */
	                if(env_scan("MAIL=", heap())) 
                            printf(MSG_UHAVEMAIL);
                        else
                            printf("%s",heap());
                    }
                }
		    break;

		 case 'u':		/* Display the User Name */
                if (login_enabled()) {
                    if((aschextobin(user_info.userid)!=get_user_on_station())||(strlen(user_info.userid)==0)) {
	                if(get_user_info(get_user_on_station())!=0) 
		                printf("#%04X",get_user_on_station());
                        else
		                printf("%s",user_info.loginname);
                    }
                    else
		            printf("%s",user_info.loginname);
                }
                break;
#endif
#endif
#endif /*NOXBATCH*/
/*RG-01-end*/
#if defined(CPM)
		 case 'u':		/* Display the User Number */
		    printf("%d", user);
		    break;
#endif
#if defined(DOSPLUS)
		 case 'u':
		    if (!env_scan("LOGINNAME=",heap()))
		        printf("%s",heap());
		    break;
#endif		    
		 case '$':
		    putc ('$'); 	/* print single '$' */
		    break;
		 case 'x':
		    if ((allow_pexec)&&(!batchflg)) prompt_exec();
		    break;
		 default:		/* Otherwise the character */
		    break;
		}
	    }
	}

	prompt_flg = FALSE;		/* Prompt display completed OK	*/
}


#if !defined(CDOSTMP)
/* The following functions are called by the int2e_handler function in
 * COM.C. If a program is run from a batch file and calls INT 2E to
 * execute a new batch file the original batch file must NOT be terminated.
 * Therefore batch and batchflg must be saved, set to zero, and then
 * restored when INT 2E returns. - EJH 
 */
 
GLOBAL VOID int2e_start()
{
	batchflg_save = batchflg;
	batchflg = 0;
	batch_save = batch;
	echoflg_save = echoflg;
	echoflg = ECHO_ON;
}

GLOBAL VOID int2e_finish()
{
	batchflg = batchflg_save;
	batch = batch_save;
	echoflg = echoflg_save;
}

#endif

#if defined(CDOS)
MLOCAL VOID map_user_page(UWORD window_page, UWORD physical_page)
{
UWORD pblk[3];
	pblk[0] = window_page;
	pblk[1] = physical_page;
	pblk[2] = 0;
	bdos(181, pblk);
}


MLOCAL BYTE FAR * map_pd_mem(UWORD ppd, UWORD wp, UWORD seg, UWORD offset)
{
/* Map memory for another process into our memory space so we examine it */
UWORD base_seg;
UWORD page;
PD FAR * pdptr;
UWORD sysdat;
UWORD mptbl;
UWORD FAR * ptr;
UWORD mp_off;
UWORD i;
MPAD FAR * mp;


	sysdat = FP_SEG(pd);
	ptr = MK_FP(sysdat, 0xc8);
/* DEBUG */
	if (*ptr == 0) /* for DEBUG under XM assume non-banked system */
	    return(MK_FP(seg, offset));
/* DEBUG */
	ptr = MK_FP(sysdat, *ptr + 8);
	mptbl = *ptr;

	/* get segment of 4k page to map */
	base_seg = (seg + (offset+15)/16) & 0xff00;


	/* now find physical page to map */

	pdptr = (PD FAR *) MK_FP(sysdat, ppd);
	
	for (mp_off = pdptr->P_MPAR; mp_off !=0;) {
	    mp = MK_FP(sysdat, mp_off);
	    mp_off = mp->link;
	    if ((base_seg >= mp->start) && 
		(base_seg < (mp->start + mp->length))) {
		page = mp->xios;
		for (i = 0; i < ((base_seg - mp->start)/1024); i++){
		    ptr = MK_FP(mptbl, page*2);
		    page = *ptr;
		}
		page = 4*page + (((base_seg - mp->start)/0x0100) & 3);
		map_user_page(wp, page);
		return(MK_FP(wp*0x0100,(seg*16+offset) & 0x0fff));
	    }
	}

	/* not found in mpad's - must be non-banked address */
	return(MK_FP(seg, offset));
}

MLOCAL VOID ip_poke(UWORD ppd, UWORD wp, UWORD seg, UWORD offset, UBYTE val)
{
UBYTE FAR *ptr;

	ptr = map_pd_mem(ppd, wp, seg, offset);
	*ptr = val;
}

MLOCAL UBYTE ip_peek(UWORD ppd, UWORD wp, UWORD seg, UWORD offset)
{
UBYTE FAR *ptr;

	ptr = map_pd_mem(ppd, wp, seg, offset);
	return(*ptr);
}

MLOCAL UWORD ip_peek_word(UWORD ppd, UWORD wp, UWORD seg, UWORD offset)
{
	return (ip_peek(ppd, wp, seg, offset) + 
			256*ip_peek(ppd, wp, seg, offset+1));
}

GLOBAL VOID inherit_TMP_state(VOID)
/* inherit batch files */
/* NB. This is bodged - we don't inherit FOR state, or redirection */
{
PD FAR *parent;
UWORD batch_seg;
UWORD tmp_mpad;
UWORD mp_off;
MPAD FAR * mp;
VOID FAR *window;
UWORD win_page;
UWORD i;

	parent = (PD FAR *) MK_FP(FP_SEG(pd), pd->P_PARENT);

	/* verify our parent is a Tmp, forget if it isn't */
	if ((parent->P_NAME[0] != 'T') ||
	    (parent->P_NAME[1] != 'm') ||
	    (parent->P_NAME[2] != 'p'))
	    return;

	/* allocate a 4k aligned window to bank data into */
	i = 2*4096/16;
	mem_alloc(&window, &i, i, i);
	if (i==0)
	    return;
	win_page = (FP_SEG(window) + 0x0100) / 0x100;

	batch_seg = ip_peek_word(pd->P_PARENT, win_page,
		parent->P_PSP, TmpPspBatchSeg);

	/* do we have any batch files to inherit */
	if (batch_seg) {

            echoflg = (BOOLEAN)ip_peek_word(pd->P_PARENT, win_page,
		ip_peek_word(pd->P_PARENT, win_page,
		    parent->P_PSP, TmpPspDataSeg),
		ip_peek_word(pd->P_PARENT, win_page,
		    parent->P_PSP, TmpPspEchoFlgPtr));

		/* recover Tmp's hidden mpads */

	    tmp_mpad = ip_peek_word(pd->P_PARENT, win_page,
		parent->P_PSP, TmpPspMpad);

	    for (mp_off = parent->P_MPAR; mp_off != 0;) {
		mp  = MK_FP(FP_SEG(parent), parent->P_MPAR);
		mp_off  = mp->link;
	    }	
	
	    mp->link = tmp_mpad;
	    inherit_batch_file(pd->P_PARENT, win_page, batch_seg);
	    mp->link = 0;		/* unlink again */
	}
	map_user_page(0, 0);	/* force user page to be unmapped */
	bdos(141,0);		/* dispatch to re-map TPA memory */
	mem_free(&window);	/* free the window */
}

MLOCAL VOID inherit_batch_file(UWORD ppd, UWORD win_page, UWORD batch_seg)
{
UBYTE FAR * dst;
BCONTROL FAR *save0;
FCONTROL *save1;
BYTE	 *save2;
WORD	 save3;
UWORD	i;
UWORD	data_seg;
PD FAR *parent;



	/* if we are in a nested batch file, inherit older batch file first */
	i = ip_peek_word(ppd, win_page, batch_seg, 2);

	if (i != 0)
	    inherit_batch_file( ppd, win_page, i);

	batch_new();			/* new incarnation of batch	*/

	save0 = batch->bcontrol; save1 = batch->fcontrol;
	save2 = batch->heap_start; save3 = batch->heap_size;

	dst = (BYTE FAR *) batch;		/* copy batch structure */
	for (i=0; i<sizeof(BCONTROL); i++)	/* from parental PD */
	    dst[i] = ip_peek(ppd, win_page, batch_seg, i);

	/* now terminate parental batch processing by poking EOF */
	ip_poke(ppd, win_page,
		batch_seg, (UWORD) &batch->eof - (UWORD) &batch->bcontrol,
		(UBYTE) TRUE);

	/*
	 *	Copy the invoking command and the individual elements 
	 *	of the command line into a buffer ready for processing
	 */

	parent = (PD FAR *) MK_FP(FP_SEG(pd), pd->P_PARENT);
	data_seg = ip_peek_word(pd->P_PARENT, win_page,
		parent->P_PSP, TmpPspDataSeg);

	i = (UWORD) batch->batcmd;
	batch->batcmd = (BYTE *)heap();	/* Initialize Parameter Buffer	*/

	while (ip_peek_word(ppd, win_page, data_seg, i) != 0)
		*(BYTE *)heap_get(1) = ip_peek(ppd, win_page, data_seg, i++);

	*(WORD *)heap_get(2) = 0;	/* Double NULL is a terminator	 */
					/* for command line params	 */

	batch->bcontrol = save0; batch->fcontrol = save1;
	batch->heap_start = save2; batch->heap_size = save3;

	batchflg++;			/* increment batch flag		*/

	crlfflg  = YES;			/* print CR/LF after this  */
}
#endif


EXTERN	N_CMD	novell_ext_list[];

EXTERN BYTE FAR * CDECL farptr(BYTE *);
EXTERN BYTE FAR * CDECL cgroupptr(BYTE *);

EXTERN BOOLEAN CDECL call_novell(BYTE *, BYTE *, WORD);
EXTERN BOOLEAN CDECL nov_station(WORD *);
EXTERN WORD    CDECL nov_connection();


MLOCAL	BOOLEAN novell_extension(src,dst)
BYTE	*src;
BYTE	*dst;
/*
 * Check if src string is a novell string to be expanded. eg login_name.
 * if so, put expansion in dst.
 */
{
	N_CMD FAR *n_cmd_p;
	BYTE  FAR *cpf; 
	WORD	i;

	for (i=0;src[i] && src[i]!='=';i++);
	src[i] = 0;

	n_cmd_p = (N_CMD FAR *)farptr((BYTE *)&novell_ext_list[0]);

	while(n_cmd_p->string) {

	    cpf = cgroupptr(n_cmd_p->string);

	    for(i=0; (cpf[i]==src[i]) && src[i]; i++);

	    if(cpf[i]==src[i]) {
	        (*n_cmd_p->func)(dst);
	    	return(0);
	    }
	    
	    n_cmd_p++;
	}
	return(1);
}



GLOBAL	VOID	CDECL get_login_name(dst)
BYTE	*dst;
{
	struct s_nov_e346_in {
	    WORD	len;
	    BYTE	code;
	} nov_e346_in;
	struct s_nov_e346_out {
	    WORD	len;
	    BYTE	level;
	    LONG	id;
	} nov_e346_out;
	struct s_nov_e336_in {
	    WORD	len;
	    BYTE	code;
	    LONG	id;
	} nov_e336_in;
	struct s_nov_e336_out {
	    WORD	len;
	    LONG	id;
	    WORD	type;
	    BYTE	name[48];
	} nov_e336_out;
	
	nov_e346_in.len  = 1;
	nov_e346_in.code = 0x46;
	nov_e346_out.len = 5;
	nov_e346_out.id = -1L;
	call_novell((BYTE *)&nov_e346_in, (BYTE *)&nov_e346_out, 0xE3);
	
	if (nov_e346_out.id == -1L) {
	    *dst = 0;
	    return;
	}
	
	nov_e336_in.len  = 5;
	nov_e336_in.code = 0x36;
	nov_e336_in.id   = nov_e346_out.id;
	nov_e336_out.len = 54;
	call_novell((BYTE *)&nov_e336_in, (BYTE *)&nov_e336_out, 0xE3);

	strcpy(dst,nov_e336_out.name);

}

GLOBAL	VOID CDECL get_pstation(dst)
BYTE	*dst;
{
	WOR

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人性色生活片| 久久久电影一区二区三区| 日韩精品一区国产麻豆| 国产欧美日韩视频在线观看| 午夜精品久久久久久久久久| 国产成人精品在线看| 日韩一级黄色大片| 亚洲图片欧美综合| 91香蕉视频mp4| 久久久久综合网| 麻豆成人久久精品二区三区红 | 一区二区三区在线视频免费| 久久99精品久久久久久| 欧美日韩成人综合在线一区二区 | 欧美xingq一区二区| 亚洲视频1区2区| 99久久精品久久久久久清纯| 久久蜜桃av一区精品变态类天堂 | 日韩精品视频网| 精品视频在线免费| 亚洲综合免费观看高清完整版 | 激情综合网激情| 日韩一级二级三级| 日韩国产精品91| 欧美精品在线观看一区二区| 亚洲一区二区在线播放相泽| 色狠狠综合天天综合综合| 国产精品久久久久久久久快鸭 | 欧美三级午夜理伦三级中视频| 综合久久久久综合| av一区二区久久| 亚洲另类中文字| 色系网站成人免费| 亚洲免费观看高清| 色婷婷精品久久二区二区蜜臂av| 亚洲欧洲www| 色www精品视频在线观看| 亚洲女同一区二区| 一本色道久久加勒比精品| 亚洲免费资源在线播放| 色婷婷激情综合| 婷婷开心久久网| 日韩一区二区在线看| 国产一区二区三区免费看| 国产亲近乱来精品视频| 97久久精品人人澡人人爽| 亚洲靠逼com| 在线不卡免费av| 精品无人码麻豆乱码1区2区| 久久精品亚洲精品国产欧美 | 欧美年轻男男videosbes| 日韩电影在线免费| www精品美女久久久tv| 粉嫩av亚洲一区二区图片| 久久精品二区亚洲w码| 这里只有精品免费| 国产一区二区久久| 1024国产精品| 777久久久精品| 国产毛片精品视频| 一区二区三区高清在线| 欧美一区二区三区色| 国产福利一区二区三区视频 | 成人欧美一区二区三区小说 | 日韩av一区二区三区四区| 亚洲精品一区在线观看| 成人免费福利片| 日本不卡1234视频| 专区另类欧美日韩| 日韩午夜小视频| 91福利精品视频| 国产精品一二三区在线| 亚洲国产一区二区三区 | 亚洲成在人线在线播放| 国产色综合一区| 欧美人xxxx| 91性感美女视频| 国产专区综合网| 性久久久久久久| 亚洲欧洲av一区二区三区久久| 日韩视频免费观看高清完整版 | 99精品国产热久久91蜜凸| 蜜臀av一区二区在线观看| 亚洲美女偷拍久久| 国产女人18毛片水真多成人如厕| 91精品婷婷国产综合久久竹菊| 99久久综合99久久综合网站| 卡一卡二国产精品| 日韩国产欧美三级| 一区二区三区在线视频观看| 久久精品亚洲麻豆av一区二区| 91精品国产综合久久久蜜臀粉嫩| 91原创在线视频| 国产成人综合网站| 狠狠久久亚洲欧美| 日本欧洲一区二区| 日韩精品一二区| 亚洲电影第三页| 亚洲国产一区二区视频| 亚洲综合图片区| 一区二区三区在线观看视频| 国产精品国产三级国产aⅴ原创 | 日韩视频123| 51精品久久久久久久蜜臀| 欧美色爱综合网| 欧美色网一区二区| 日本道精品一区二区三区| 99在线视频精品| av在线免费不卡| 91在线码无精品| 92国产精品观看| 色综合久久综合| 日本精品免费观看高清观看| 91蝌蚪porny| 在线视频国内一区二区| 在线观看不卡视频| 国产成人精品1024| 福利电影一区二区| 不卡欧美aaaaa| 不卡的av在线| 色94色欧美sute亚洲13| 欧美三级电影网| 欧美一区二区三区四区久久| 欧美一二区视频| 久久精品人人做人人爽人人| 国产欧美精品在线观看| 亚洲日韩欧美一区二区在线| 一区二区视频免费在线观看| 亚洲影视资源网| 五月婷婷久久丁香| 久久99国产精品免费网站| 国产精品一区二区无线| 北条麻妃国产九九精品视频| 91欧美一区二区| 欧美精品xxxxbbbb| 久久久噜噜噜久久人人看| 中文字幕视频一区| 亚洲福利一区二区| 久久国产剧场电影| jizzjizzjizz欧美| 欧美精选午夜久久久乱码6080| 精品福利一区二区三区免费视频| 中文字幕精品三区| 亚洲成av人片一区二区三区| 经典三级视频一区| 色综合久久久久久久久| 91精品国产色综合久久ai换脸| 精品国精品自拍自在线| 国产精品久久久久久久久免费樱桃| 亚洲午夜精品网| 国产麻豆成人精品| 欧美日韩免费观看一区二区三区 | 国产精品久久久久桃色tv| 夜夜亚洲天天久久| 国产福利91精品一区二区三区| 在线观看视频一区| 国产亚洲综合在线| 日韩精品亚洲专区| 97久久久精品综合88久久| 欧美一级艳片视频免费观看| 成人免费在线视频| 久久成人免费网| 欧美视频一区二区三区在线观看| 国产欧美一区二区精品忘忧草| 亚洲国产精品麻豆| av在线不卡观看免费观看| 精品久久久久久久久久久久久久久 | 亚洲男女一区二区三区| 国内精品伊人久久久久av影院| 在线视频国内一区二区| 日本一区二区三区视频视频| 伦理电影国产精品| 欧美日韩一区二区三区四区五区| 中文字幕在线观看不卡| 精品亚洲国产成人av制服丝袜| 在线观看日韩一区| 亚洲精品网站在线观看| 成人综合在线视频| 日韩精品一区二区三区在线| 丝袜美腿亚洲色图| 在线观看一区不卡| 亚洲日本va在线观看| 成人免费观看男女羞羞视频| 国产三级精品在线| 国产美女视频一区| 欧美大片日本大片免费观看| 偷窥国产亚洲免费视频| 欧美日韩久久不卡| 亚洲午夜精品一区二区三区他趣| 色狠狠综合天天综合综合| 亚洲视频网在线直播| av在线不卡网| 亚洲品质自拍视频网站| 91视频com| 亚洲激情在线播放| 欧美色涩在线第一页| 亚洲国产视频a| 欧美日韩国产高清一区| 午夜亚洲福利老司机| 欧美精品久久天天躁|