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

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

?? shell.c

?? 優龍LPC2468開發板BIOS源程序,簡潔明了
?? C
字號:
/*****************************************************************************
 *   shell.c:  BIOSBOX Shell實現
 *
 *   Copyright(C) 2007, uCdragon
 *   All rights reserved.
 *
 *   History
 *   2007.03.16  lqm@ucdragon.net
 *
******************************************************************************/
#include "def.h"
#include "board.h"
#include "utils.h"

#define MAX_CMD_LEN           30
#define MAX_CMD_HIS           5
#define CTRL_KEY(k)           (k+1-'A')

#define ESC_UP_KEY		      0x41
#define ESC_DOWN_KEY	      0x42
#define ESC_RIGHT_KEY	      0x43
#define ESC_LEFT_KEY	      0x44
#define ESC_HOME_KEY	      0x48
#define ESC_END_KEY		      0x4b

#define UP_KEY		          CTRL_KEY('W')
#define DOWN_KEY	          CTRL_KEY('S')
#define RIGHT_KEY	          CTRL_KEY('D')
#define LEFT_KEY	          CTRL_KEY('A')

#define	ENTER_KEY	          0x0d
#define	BACK_KEY	          0x08
#define	ESC_KEY		          0x1b
#define	SPACE_KEY		      0x20

//import from command.c
void ExcuteCommand(char * cmd);

void ShowBootInfo(char * board )
{
	puts  ( "\n ***************************************\n" );
	puts  ( "*                                       *\n" );
	printf( "*      BIOSBOX for %8s  V1.00      *\n",board );
	printf( "*       LQM %s %s        *\n" , __DATE__ , __TIME__ );
	puts  ( "*       http://www.uCdragon.com         *\n" );
	puts  ( "*                                       *\n" );
	puts  ( " ***************************************\n\n" );
}

char Escape(char key)
{
	switch(key)
	{
		case ESC_UP_KEY:
		  return UP_KEY;
		case ESC_DOWN_KEY:
		  return DOWN_KEY;
		case ESC_LEFT_KEY:
		  return LEFT_KEY;
		case ESC_RIGHT_KEY:
		  return RIGHT_KEY;
		default:
		  return 0;
	}
}
void ShowNewCmd(int cursor,int len,char * dest,char * src)
{	while(cursor--) putch(BACK_KEY);
	cursor = len;
	while(cursor--) putch(SPACE_KEY);
	while(len--) putch(BACK_KEY);
	if(src)
	{
		puts(src);
		while(*src) * dest ++ = * src ++;
	}
}
void BeginShell(char * board)
{
	char his[MAX_CMD_HIS][MAX_CMD_LEN];
	int lens[MAX_CMD_HIS] = {0};
	int escaping = 0;
	int entry=0;
	int etemp=-1;
	int modified=0;
	int cursor=0;
	char key;
	int temp;

	ShowBootInfo(board);
	SecInitBoard();
	puts("> ");

	while(TRUE)
	{	key=getch();
		if(escaping ) 
		{
			if(key == '[') key = Escape(getch());
			escaping = 0;
		}
		switch(key)
		{
			case 0:
				break;
			case ESC_KEY:
				escaping = 1;
				break;
			case ENTER_KEY:
				if(lens[entry])
				{
					his[entry][lens[entry]] = 0;
					cursor = 0;
					ExcuteCommand(his[entry]);
					if(modified)
					{
						if(++entry == MAX_CMD_HIS) entry = 0;
						etemp = entry;
						modified = 0;
					}
					else if(++etemp == MAX_CMD_HIS) etemp = 0;
					lens[entry] = 0;
				}
				puts("\n> ");
				break;
			case BACK_KEY:
				if(cursor > 0) 
				{
					modified = 1;
					putch(BACK_KEY);
					cursor --;
					lens[entry] --;
					if(cursor < lens[entry]) {
						for(temp =cursor;temp<lens[entry];temp++)
						{
							his[entry][temp] =his[entry][temp+1];
							putch(his[entry][temp]);
						}
					}
					putch(SPACE_KEY);
					putch(BACK_KEY);
					if(cursor < lens[entry]) {
						for(temp =cursor;temp<lens[entry];temp++)
						{	
							putch(BACK_KEY);
						}
					}
				}
				break;
			case UP_KEY:
				temp = etemp-1;
				if(temp == -1) temp = MAX_CMD_HIS -1;
				if(temp == entry) break;
				if(lens[temp] == 0) break;
				etemp = temp;
				ShowNewCmd(cursor,lens[entry],his[entry],his[etemp]);
				modified = 0;
				lens[entry] = cursor = lens[etemp];
				break;
			case DOWN_KEY:
				if(etemp == entry) break;
				if(++etemp == MAX_CMD_HIS) etemp = 0;
				ShowNewCmd(cursor,lens[entry],his[entry],etemp == entry? 0 : his[etemp]);
				modified = 0;
				cursor = etemp == entry ? 0 : lens[etemp];
				lens[entry] = cursor ;
				break;
			case LEFT_KEY:
				if(cursor > 0)  
				{
					cursor --;
					putch(BACK_KEY);
				}
				break;
			case RIGHT_KEY:
				if(cursor < lens[entry]) 
				{
					putch(his[entry][cursor ++]);
				}
				break;
			default:
				modified = 1;
				if(cursor >= MAX_CMD_LEN-1) break;
				if(key < SPACE_KEY) key = SPACE_KEY;
				putch(key);
				if(cursor < lens[entry])
				{
					for(temp = lens[entry];temp > cursor;temp--) his[entry][temp] = his[entry][temp-1];
					for(temp = cursor+1;temp <= lens[entry];temp++) putch(his[entry][temp]);
					for(temp = cursor;temp < lens[entry];temp++) putch(BACK_KEY);
				}
				his[entry][cursor++] = key;
				lens[entry]++;
				break;
		}
	}
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
精品欧美一区二区久久| 欧美色爱综合网| 国精品**一区二区三区在线蜜桃| 亚洲成a人v欧美综合天堂| 亚洲卡通欧美制服中文| 亚洲精品综合在线| 亚洲精品国产无天堂网2021| 亚洲激情六月丁香| 亚洲午夜免费电影| 亚洲电影欧美电影有声小说| 天天做天天摸天天爽国产一区| 亚洲综合区在线| 午夜电影一区二区| 免费人成黄页网站在线一区二区| 午夜精品久久一牛影视| 伊人一区二区三区| 亚洲精选一二三| 日韩有码一区二区三区| 捆绑紧缚一区二区三区视频| 国产永久精品大片wwwapp| 成人久久18免费网站麻豆| 91在线porny国产在线看| 在线观看国产日韩| 日韩一区二区电影| 国产日韩欧美不卡| 亚洲欧美日韩中文字幕一区二区三区 | 秋霞午夜av一区二区三区| 日产精品久久久久久久性色| 国产美女一区二区| 91丨porny丨最新| 91麻豆精品国产| 久久精品综合网| 亚洲日本乱码在线观看| 日本在线不卡视频| 粉嫩高潮美女一区二区三区| 在线观看日韩精品| 精品欧美乱码久久久久久1区2区| 中文字幕亚洲视频| 全国精品久久少妇| 色综合久久综合网欧美综合网| 欧美一区二区三区视频在线观看 | 亚洲视频一区二区在线| 日韩成人精品视频| 91香蕉视频在线| 777精品伊人久久久久大香线蕉| 2019国产精品| 日韩中文字幕91| 91视频.com| 久久精品一区四区| 天堂资源在线中文精品| 97se狠狠狠综合亚洲狠狠| 欧美一区二区三区免费| 亚洲人午夜精品天堂一二香蕉| 日本女人一区二区三区| 91视视频在线观看入口直接观看www | 欧美精三区欧美精三区| 日本一区二区在线不卡| 狠狠色丁香久久婷婷综合_中| 91国产免费观看| 综合自拍亚洲综合图不卡区| 国产精品亚洲专一区二区三区| 欧美色爱综合网| 亚洲第一主播视频| 欧洲色大大久久| 日韩码欧中文字| 国产91精品一区二区麻豆网站| 日韩美女视频一区二区在线观看| 亚洲一区二区三区四区不卡| 91久久精品网| 亚洲色欲色欲www| 99re这里只有精品6| 国产精品福利在线播放| 高清成人免费视频| 国产免费观看久久| 成人av在线一区二区| 国产精品久久久久一区| 不卡大黄网站免费看| 国产精品妹子av| voyeur盗摄精品| 亚洲美女电影在线| 色综合久久久久| 亚洲一区在线视频| 欧美日韩国产免费一区二区 | 欧美大胆人体bbbb| 精品中文字幕一区二区| 久久婷婷综合激情| 国产一区二区精品久久91| 久久青草欧美一区二区三区| 国产美女精品在线| 国产农村妇女毛片精品久久麻豆 | 日本一区二区免费在线| 99久久777色| 一区二区三区国产精华| 欧美高清精品3d| 久久精品国产亚洲一区二区三区| 亚洲精品在线一区二区| 国产精品一区不卡| 亚洲色图一区二区三区| 欧美三日本三级三级在线播放| 麻豆精品在线视频| 欧美国产日韩精品免费观看| 在线一区二区观看| 久久av中文字幕片| 自拍偷自拍亚洲精品播放| 在线看国产一区二区| 精品一区二区影视| 亚洲六月丁香色婷婷综合久久| 欧美一区二区视频在线观看| 国产成人精品亚洲777人妖| 亚洲人xxxx| 欧美精品一区二区三区四区| 成人av网站在线观看| 日韩国产欧美一区二区三区| 中文字幕免费观看一区| 欧美日韩电影在线播放| 国产99久久久国产精品免费看| 午夜久久久影院| 国产精品女主播av| 日韩一级黄色大片| 日本精品一区二区三区四区的功能| 免费在线观看视频一区| 亚洲视频免费观看| 欧美大肚乱孕交hd孕妇| 欧美日韩aaaaaa| 99久久精品国产毛片| 极品少妇xxxx偷拍精品少妇| 亚洲一区日韩精品中文字幕| 久久精品综合网| 欧美刺激脚交jootjob| 欧美亚洲日本一区| 99久久精品99国产精品| 国产成人精品免费| 极品少妇一区二区三区精品视频| 性感美女极品91精品| 综合久久久久久久| 国产精品网站在线观看| 精品av久久707| 日韩精品一区二区三区视频在线观看 | 亚洲精品成人少妇| 国产欧美日产一区| 久久九九99视频| 久久只精品国产| 日韩一区二区电影| 日韩一级黄色大片| 日韩一区和二区| 欧美另类高清zo欧美| 在线观看免费视频综合| 色av成人天堂桃色av| 99re8在线精品视频免费播放| 国产91丝袜在线观看| 丰满少妇久久久久久久| 国产一区不卡精品| 国产精品一卡二卡| 精品一区二区三区在线播放视频 | 国产精品欧美精品| 国产精品久久久久久久裸模| 欧美国产国产综合| 国产欧美一区二区精品仙草咪| 久久精品视频一区| 久久久91精品国产一区二区精品| 精品粉嫩超白一线天av| 国产日韩欧美精品电影三级在线| 欧美国产在线观看| 国产精品久久久久精k8| 亚洲三级电影网站| 亚洲一级二级在线| 日本午夜一区二区| 久草精品在线观看| 波多野结衣中文一区| 色88888久久久久久影院按摩 | av网站免费线看精品| 91免费视频网| 69堂国产成人免费视频| 久久久久久久久久久99999| 国产三区在线成人av| 亚洲摸摸操操av| 日韩黄色免费电影| 国产米奇在线777精品观看| 丁香一区二区三区| 91激情在线视频| 久久午夜色播影院免费高清| 久久精品亚洲国产奇米99| 国产精品高潮久久久久无| 亚洲mv在线观看| 久久99精品一区二区三区| 成人性生交大片| 欧美日韩精品一区视频| 日本一区二区三区电影| 午夜精品免费在线观看| 国产激情视频一区二区在线观看| 色婷婷激情久久| 精品欧美一区二区三区精品久久| 中文字幕av一区二区三区| 五月婷婷色综合| 成人黄色av电影| 欧美sm美女调教| 亚洲综合999| 成人丝袜高跟foot| 欧美一区二区福利在线| 亚洲乱码国产乱码精品精98午夜 |