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

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

?? m6845vgapep.c

?? 此文件是cp6000主板的bsp包
?? C
?? 第 1 頁 / 共 3 頁
字號:
/******************************************************************************* vgaDelLeftChar - delete the character to the left side of the cursor** RETURNS: N/A*/LOCAL void vgaDelLeftChar     (    FAST VGA_CON_DEV *	pVgaConDv	/* pointer to the vga descriptor */    )    {    FAST UINT16		erase;	/* erase character with attributes */    erase = (pVgaConDv->defAttrib << 8) + ' ' ;    if (pVgaConDv->autoWrap || pVgaConDv->ncol > 0)	{	pVgaConDv->col--;	pVgaConDv->curChrPos -= CHR;	}    *(UINT16 *)pVgaConDv->curChrPos = erase;    }/******************************************************************************* vgaCarriageReturn - do a carriage return on the monitor** RETURNS: N/A*/LOCAL void vgaCarriageReturn     (    FAST VGA_CON_DEV *	pVgaConDv	/* pointer to the vga descriptor */    )    {    pVgaConDv->curChrPos -= pVgaConDv->col * CHR;    pVgaConDv->col = 0;    }/******************************************************************************* vgaBackSpace - do a back space on the monitor** RETURNS: N/A*/LOCAL void vgaBackSpace     (    FAST VGA_CON_DEV *	pVgaConDv	/* pointer to the vga descriptor */    )    {    if (pVgaConDv->autoWrap || pVgaConDv->ncol > 0)	{	pVgaConDv->col--;	pVgaConDv->curChrPos -= CHR;	}    if (pVgaConDv->col < 0)	{	pVgaConDv->col = pVgaConDv->ncol - 1;	pVgaConDv->row--;	pVgaConDv->scrollCheck = TRUE;	}    }/******************************************************************************* vgaTab - do a tab on the monitor** RETURNS: N/A*/LOCAL void vgaTab     (    FAST VGA_CON_DEV *	pVgaConDv	/* pointer to the vga descriptor */    )    {    int			ix;    for (ix = pVgaConDv->col + 1; ix < 80; ix++)	{	if (pVgaConDv->tab_stop [ix])	    {	    pVgaConDv->col = ix;	    break;	    }	}    if (pVgaConDv->autoWrap && ix >= 80)	{	pVgaConDv->col = 0;	pVgaConDv->row++;	pVgaConDv->scrollCheck = TRUE;	}    pVgaConDv->curChrPos = ( pVgaConDv->memBase + 			    pVgaConDv->row * pVgaConDv->ncol * CHR + 			    pVgaConDv->col * CHR) ;    }/******************************************************************************** vgaLineFeed - do a line feed on the monitor** RETURNS: N/A*/LOCAL void vgaLineFeed     (    FAST VGA_CON_DEV *	pVgaConDv	/* pointer to the vga descriptor */    )    {    pVgaConDv->curChrPos += pVgaConDv->ncol * CHR;    pVgaConDv->row++;    pVgaConDv->scrollCheck = TRUE;    }/******************************************************************************** vgaCursorPos - Put the cursor at a specified location** RETURNS: N/A*/LOCAL void vgaCursorPos     (    FAST UINT16 pos			/* position of the cursor */    )    {    sysOutByte ((int) CTRL_SEL_REG, 0x0e);    sysOutByte ((int) CTRL_VAL_REG, (pos >> 8) & 0xff);    sysOutByte ((int) CTRL_SEL_REG, 0x0f);    sysOutByte ((int) CTRL_VAL_REG, pos & 0xff);    return;    }/******************************************************************************** vgaCursorOn - switch the cursor on** RETURNS: N/A*/LOCAL void vgaCursorOn (void)    {    sysOutByte ((int) CTRL_SEL_REG, 0x0a);    sysOutByte ((int) CTRL_VAL_REG, curSt & ~0x20);    sysOutByte ((int) CTRL_SEL_REG, 0x0b);    sysOutByte ((int) CTRL_VAL_REG, curEd);    return;    }/******************************************************************************** vgacursoroff - swith the cursor off** RETURNS: N/A*/LOCAL void vgaCursorOff (void)    {    sysOutByte ((int) CTRL_SEL_REG, 0x0a);    sysOutByte ((int) CTRL_VAL_REG, 0x20);    sysOutByte ((int) CTRL_SEL_REG, 0x0b);    sysOutByte ((int) CTRL_VAL_REG, 0x00);    return;    }/********************************************************************************* vgaWriteString - Write Character string  to VGA Display* * This function does the write to the vga routine. This routine is provided as* transmitter startup routine when tyDevInit is called.** RETURNS: number of bytes written to the screen** NOMANUAL*/int vgaWriteString    (    FAST PC_CON_DEV *	pPcCoDv	/* pointer to the console descriptor */    )    {    int			dummy;    UCHAR		ch;    FAST int		nBytes;    FAST UCHAR		atr;    FAST RING_ID        ringId = pPcCoDv->tyDev.wrtBuf;    FAST VGA_CON_DEV *	pVgaConDv = pPcCoDv->vs;        pPcCoDv->tyDev.wrtState.busy = TRUE;    atr = pVgaConDv->curAttrib;    nBytes = 0;        /* check if we need to output XON/XOFF for the read side */    if (pPcCoDv->tyDev.wrtState.xoff || pPcCoDv->tyDev.wrtState.flushingWrtBuf)	{    	pPcCoDv->tyDev.wrtState.busy = FALSE;	return nBytes;	}    while (RNG_ELEM_GET (ringId,&ch,dummy) != 0)        {	nBytes++;		/* increment the number of bytes */	/* If character is normal and printable */		if ( (pVgaConDv->escFlags == ESC_NORMAL) && (pVgaConDv->charSet [ch]						     != 0))	    {	    *(UINT16 *)pVgaConDv->curChrPos = (atr << 8) + 		                                  pVgaConDv->charSet [ch];	    if (pVgaConDv->col == pVgaConDv->ncol - 1)		{ 		if (pVgaConDv->autoWrap)		    { 		    vgaCarriageReturn (pVgaConDv);	/* time to wrap */		    vgaLineFeed (pVgaConDv);		    goto VGA_CHECK;		/* go do the wrap check */		    }		}	    else		{		pVgaConDv->col++;		pVgaConDv->curChrPos += CHR;		continue;		}	    }	switch (ch)	    {	    case 0x07:		/* BEL */	         vgaConBeep (FALSE);		 continue;	    	    case 0x08:		/* Back Space */		 vgaBackSpace (pVgaConDv);		 continue;            case '\t':		/* TAB code */		 vgaTab (pVgaConDv);		 continue;            case '\n':		/* LF code */		 if ((pPcCoDv->tyDev.options & OPT_CRMOD) == OPT_CRMOD)		    vgaCarriageReturn (pVgaConDv);		 vgaLineFeed (pVgaConDv);		 goto VGA_CHECK;            case 0x0b:		/* VT code */		 vgaLineFeed (pVgaConDv);		 goto VGA_CHECK;            case 0x0c:		/* Clear Screen code */		 vgaClear (pVgaConDv, 2, ' ');		 continue;	    case 0x0d:		/* CR code */		 vgaCarriageReturn (pVgaConDv);		 continue;#ifdef INCLUDE_ANSI_ESC_SEQUENCE	    case 0x1b:		/* escape character */		 pVgaConDv->escFlags = ESC_ESC;		 continue;             case 0x9b:		/* escape brace */		 pVgaConDv->escFlags = ESC_BRACE;		 continue;#endif /* INCLUDE_ANSI_ESC_SEQUENCE */	    case 0x0e:		/* set the character set to VT100 graphics */		 pVgaConDv->charSet = vgaCharTable [GRAPHICS_VT100_SET];		 continue;            case 0x0f:		/* set the character set to normal text set */		 pVgaConDv->charSet = vgaCharTable [TEXT_SET];		 continue;	    case 0x7f:		/* special character for del */		 vgaDelLeftChar (pVgaConDv);		 continue;	  }#ifdef INCLUDE_ANSI_ESC_SEQUENCE		switch (pVgaConDv->escFlags)	    {	    int 	ix;	/* to hold temp data */	    case ESC_ESC:	            pVgaConDv->escFlags = ESC_NORMAL;		    switch (ch)			{			case '[':	/* escape brace */				pVgaConDv->escFlags = ESC_BRACE;				continue;			case 'E':	/* cr lf */				vgaCarriageReturn (pVgaConDv);				vgaLineFeed (pVgaConDv);				goto VGA_CHECK;			case 'M':	/* cursor up */				pVgaConDv->row --;				vgaPutCursor (pVgaConDv);				continue;							case 'D':	/* generate a linefeed */				vgaLineFeed (pVgaConDv);				goto VGA_CHECK;			case 'H':	/* give tab */				vgaTab (pVgaConDv);				continue;							case 'Z':	/* get device attribute */				vgaEscResponse (pPcCoDv,2);				continue;							case '7':	/* save current attributes */				vgaSaveCurAttrib (pVgaConDv);				continue;							case '8':	/* restore current attributes */				vgaRestAttrib (pVgaConDv);				continue;							case '(':	/* set character set to text */				pVgaConDv->escFlags = ESC_SET_TEXT;				continue;							case ')':	/* set character set to grapics set */				pVgaConDv->escFlags = ESC_SET_GPRAHICS;				continue;							case '#':	/* goto ESC_HASH state */				pVgaConDv->escFlags = ESC_HASH;				continue;							case 'c':	/* reset display */				pPcCoDv->ks->kbdHook (0);				vgaStatInit ();				vgaClear (pVgaConDv, 2, ' ');				vgaCursorOn ();				continue;			case '>':	/* set numeric mode */				pPcCoDv->ks->kbdFlags |= NUM;				pPcCoDv->ks->kbdHook (1);				continue;			case '=':	/* set non numeric mode */				pPcCoDv->ks->kbdFlags &= ~NUM;				pPcCoDv->ks->kbdHook (1);				continue;           		}		    continue;	    case ESC_BRACE:	/* Got ESC [ */	            for (ix = 0; ix < NPARS; ix++)		        pVgaConDv->escPara [ix] = 0;		    pVgaConDv->escParaCount = 0;	            pVgaConDv->escFlags = ESC_GET_PARAMS;		    if ( ch == '[')			{			pVgaConDv->escFlags = ESC_FUNC_KEY;			continue;			}	            /* if received ? in the escape sequence */		    if ( (pVgaConDv->escQuestion = (ch == '?')) )		       continue;	    case ESC_GET_PARAMS:	/* get parameters */		    if ( (ch == ';') && (pVgaConDv->escParaCount < NPARS -1))			{			pVgaConDv->escParaCount++;			continue;			}		    else if (ch >= '0' && ch <= '9')			{			pVgaConDv->escPara[pVgaConDv->escParaCount] *= 10;			pVgaConDv->escPara[pVgaConDv->escParaCount] += ch -'0';			continue;			}		    else		        pVgaConDv->escFlags = ESC_GOT_PARAMS;	    case ESC_GOT_PARAMS:		    pVgaConDv->escFlags = ESC_NORMAL;		    switch (ch)			{			case 'h':	/* set vga modes  ESC [ n h */			        vgaSetMode (pPcCoDv, TRUE);				continue;							case 'l':	/* reset vga mode  ESC [ n l */				vgaSetMode (pPcCoDv, FALSE);				continue;			case 'n':				if (!pVgaConDv->escQuestion)				    {				    if (pVgaConDv->escPara [0] == 5)					{ /* status report */					vgaEscResponse (pPcCoDv,1);					}				    else if ( pVgaConDv->escPara [0] == 6)					{ /* cursor position report */					vgaEscResponse (pPcCoDv,0);					}				    continue;				    }			}		    if (pVgaConDv->escQuestion) 			{			pVgaConDv->escQuestion = FALSE;			continue;			}		    switch (ch)			{			case 'G':	/* ESC [ n G :move cursor by columns */			        if (pVgaConDv->escPara [0] > 0)				    pVgaConDv->escPara [0]--;				pVgaConDv->col = pVgaConDv->escPara [0];				vgaPutCursor (pVgaConDv);				continue;			case 'A':	/* ESC [ n A :cursor move up */			        if (pVgaConDv->escPara [0] == 0)				    pVgaConDv->escPara [0]++;				pVgaConDv->row -= pVgaConDv->escPara [0];				vgaPutCursor (pVgaConDv);                                continue;			case 'B':	/* ESC [ n B :cursor move down */			        if (pVgaConDv->escPara [0] == 0)				    pVgaConDv->escPara [0]++;				pVgaConDv->row += pVgaConDv->escPara [0];				vgaPutCursor (pVgaConDv);				continue;							case 'C':	/* ESC [ n C :cursor move right */			        if (pVgaConDv->escPara [0] == 0)				    pVgaConDv->escPara [0]++;				pVgaConDv->col += pVgaConDv->escPara [0];				vgaPutCursor (pVgaConDv);				continue;			case 'D':	/* ESC [ n D :cursor move left */			        if (pVgaConDv->escPara [0] == 0)				    pVgaConDv->escPara [0]++;				pVgaConDv->col -= pVgaConDv->escPara [0];				vgaPutCursor (pVgaConDv);				continue;			case 'E':	/* ESC [ n E :cursor move by n rows */			        if (pVgaConDv->escPara [0] == 0)				    pVgaConDv->escPara [0]++;				pVgaConDv->row += pVgaConDv->escPara [0];				pVgaConDv->col = 0;				vgaPutCursor (pVgaConDv);				continue;			case 'F':	/* ESC [ n F :move cursor laterally */			        if (pVgaConDv->escPara [0] == 0)				    pVgaConDv->escPara [0]++;				pVgaConDv->row -= pVgaConDv->escPara [0];				pVgaConDv->col = 0;				vgaPutCursor (pVgaConDv);				continue;			case 'd':	/* ESC [ n d :move cursor vertically */			        if (pVgaConDv->escPara [0] > 0)				    pVgaConDv->escPara [0]--;				pVgaConDv->row = pVgaConDv->escPara [0];				vgaPutCursor (pVgaConDv);				continue;							case 'H':	/* ESC [ n;n H :position the cursor */                        case 'f':	/* ESC [ n;n f :position the cursor */			        if (pVgaConDv->escPara [0] > 0)				    pVgaConDv->escPara [0]--;			        if (pVgaConDv->escPara [1] > 0)				    pVgaConDv->escPara [1]--;				pVgaConDv->row = pVgaConDv->escPara [0];				pVgaConDv->col = pVgaConDv->escPara [1];				vgaPutCursor (pVgaConDv);				continue;			case 'J':	/* ESC [ n J :clear display */				vgaClear (pVgaConDv, pVgaConDv->escPara [0],					  ' ');				continue;							case 'K':	/* ESC [ n K :clear Line */				vgaClearLine (pVgaConDv);				continue;			   			case 'L':	/* ESC [ n L :insert Lines */				vgaInsertLine (pVgaConDv);				continue;							case 'M':	/* ESC [ n M :delete lines */				vgaDelLines (pVgaConDv);				continue;			case 'P':	/* ESC [ n P :delete on right side */				vgaDelRightChars (pVgaConDv, 						  pVgaConDv->escPara [0]);				continue;							case 'c':	/* ESC [ n c :get response from term */				if ( pVgaConDv->escPara [0] == 0 )				    vgaEscResponse (pPcCoDv,2);				continue;			case 'g':	/* ESC [ n g :give tabs */				if ( pVgaConDv->escPara [0] == 0 )				    {				    vgaTab (pVgaConDv);				    }				else if ( pVgaConDv->escPara [0] == 3)				    {				    pVgaConDv->tab_stop [0] = 0; 				    pVgaConDv->tab_stop [1] = 0;				    pVgaConDv->tab_stop [2] = 0;				    pVgaConDv->tab_stop [3] = 0;				    pVgaConDv->tab_stop [4] = 0;				    }				continue;							case 'm':	/* ESC [ m :set the attributes */				vgaSetAttrib (pVgaConDv);				continue;			case 'r':	/* ESC [ n;n r : set scroll limits */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
国产欧美日韩在线看| 国产精品每日更新| 成人免费不卡视频| 亚洲第一搞黄网站| 国产精品欧美精品| 精品精品国产高清a毛片牛牛| 91网址在线看| 国产在线一区二区综合免费视频| 一区二区在线观看免费| 国产偷国产偷亚洲高清人白洁| 欧美日韩免费高清一区色橹橹| 国产精品综合一区二区三区| 午夜精品久久久久| 亚洲欧美成aⅴ人在线观看| 久久久久久久综合| 欧美一级免费大片| 欧美无砖砖区免费| 91网站黄www| 成人亚洲精品久久久久软件| 精品一区二区三区免费观看| 日韩精彩视频在线观看| 一区二区在线观看不卡| 国产精品视频看| 国产午夜精品福利| 久久久青草青青国产亚洲免观| 日韩一区二区三区观看| 欧美精品aⅴ在线视频| 在线一区二区三区做爰视频网站| av成人免费在线观看| 国产98色在线|日韩| 国产精品香蕉一区二区三区| 国产原创一区二区三区| 激情小说欧美图片| 国内外成人在线| 国产在线视频精品一区| 国内成人免费视频| 韩国在线一区二区| 国产精品综合一区二区三区| 国产精品888| 国产精品一级在线| 国产馆精品极品| 高清不卡一二三区| 暴力调教一区二区三区| 波多野结衣欧美| 成人av网址在线观看| 99re成人精品视频| 在线中文字幕一区二区| 欧美日韩一区二区三区在线看| 欧美伦理影视网| 日韩视频在线你懂得| 精品国一区二区三区| 国产亚洲视频系列| 国产精品免费人成网站| 最新欧美精品一区二区三区| 亚洲天堂成人网| 国产精品91一区二区| 国产不卡视频在线观看| 99久久精品国产毛片| 欧美色精品天天在线观看视频| 91精品中文字幕一区二区三区| 日韩一级二级三级精品视频| 国产欧美一区二区三区在线看蜜臀| 国产精品午夜在线观看| 亚洲精品日日夜夜| 亚洲va欧美va国产va天堂影院| 免费观看在线色综合| 国产成人免费视频网站高清观看视频 | 福利一区二区在线| 91视频www| 欧美疯狂做受xxxx富婆| 久久久久9999亚洲精品| 中文字幕一区二区在线播放| 亚洲大片精品永久免费| 天堂资源在线中文精品| 国产高清久久久| 在线亚洲免费视频| 精品国产乱码久久久久久闺蜜| 国产精品色婷婷久久58| 亚洲va国产va欧美va观看| 国产一区二区影院| 欧美做爰猛烈大尺度电影无法无天| 日韩西西人体444www| 最新中文字幕一区二区三区| 蜜臀av性久久久久蜜臀aⅴ | 亚洲一区二区三区不卡国产欧美| 奇米亚洲午夜久久精品| 成人中文字幕在线| 91精品视频网| 亚洲日本va午夜在线影院| 免费高清在线一区| 色综合久久久久综合| 日韩女优制服丝袜电影| 一区二区三区视频在线观看| 国产又黄又大久久| 欧美日本免费一区二区三区| 国产精品热久久久久夜色精品三区| 午夜视频在线观看一区二区三区| 国产精品夜夜嗨| 制服丝袜成人动漫| 国产精品理论片| 日韩电影一区二区三区四区| 99久久精品一区| 精品美女在线观看| 无码av中文一区二区三区桃花岛| 成人午夜看片网址| 亚洲精品一区二区三区99| 午夜成人免费视频| 91视频www| 国产精品久久久久影院亚瑟 | 日韩精品在线网站| 亚洲一区二区三区美女| 成人性生交大片免费| 精品国产伦理网| 免费成人美女在线观看| 欧美日韩一二三区| 亚洲精品成a人| 日韩欧美在线一区二区三区| 亚洲精品国产精品乱码不99| 成人精品国产免费网站| 亚洲精品在线免费观看视频| 奇米四色…亚洲| 777xxx欧美| 亚洲h精品动漫在线观看| 91老师片黄在线观看| 中文字幕亚洲视频| 成人av在线电影| 国产精品久久网站| 成人精品高清在线| 国产精品毛片无遮挡高清| 丁香啪啪综合成人亚洲小说 | 7777女厕盗摄久久久| 亚洲成av人片在线| 欧美久久久久久久久久| 亚洲综合在线视频| 在线视频欧美区| 亚洲电影在线播放| 欧美日韩精品一区二区三区四区| 亚洲综合视频在线| 欧美人妖巨大在线| 日韩av网站免费在线| 欧美一区二区免费视频| 日欧美一区二区| 日韩久久久久久| 国产一区二区伦理片| 中文字幕av一区 二区| 国产91综合网| 综合激情成人伊人| 欧美视频一区二区三区四区| 日韩中文字幕1| 欧美xxxxxxxx| 国产91丝袜在线18| 亚洲色图都市小说| 欧美日韩日日骚| 精品午夜久久福利影院| 国产拍揄自揄精品视频麻豆| 99久久伊人网影院| 亚洲第一福利一区| 日韩一区二区麻豆国产| 国产乱理伦片在线观看夜一区| 国产精品白丝在线| 欧美日韩国产免费一区二区| 久久精品二区亚洲w码| 日本一区二区三区视频视频| 色综合天天综合网天天看片| 日韩激情视频在线观看| 久久久亚洲精华液精华液精华液| 成人性生交大片免费看在线播放| 一卡二卡欧美日韩| 欧美tk丨vk视频| 99精品国产热久久91蜜凸| 午夜国产精品影院在线观看| 26uuu国产日韩综合| 不卡大黄网站免费看| 日韩中文字幕1| 中文字幕av一区二区三区高| 欧美久久久久免费| 成人性生交大片免费| 亚洲h在线观看| 国产精品情趣视频| 日韩午夜激情电影| 99精品久久免费看蜜臀剧情介绍| 琪琪一区二区三区| 亚洲免费观看高清| 久久精品免费在线观看| 欧美日本一区二区| 99在线热播精品免费| 麻豆传媒一区二区三区| 亚洲人成电影网站色mp4| 日韩欧美国产三级电影视频| 99精品国产99久久久久久白柏 | 在线观看区一区二| 国产精品1区二区.| 日韩高清一区在线| 久久99国产精品久久99果冻传媒| 国产精品不卡在线| 精品国偷自产国产一区| 欧美老女人在线| 91视频在线看| 国产成人午夜高潮毛片| 麻豆一区二区三|