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

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

?? utils.c

?? ARM7的一些試驗程序
?? C
字號:
#include "def.h"
#include "utils.h"

void memcpy(void *s1, const void *s2, int n)
{
	int i;

	for (i = 0; i < n; i++)
		((char *)(s1))[i] = ((const char *)(s2))[i];
}

void memset(void *s, const char ch, int n)
{
	int i;

	for (i = 0; i < n; i++)
		((char *)(s))[i] = ch;
}

unsigned short ntohs(unsigned short s)
{
	return (s >> 8) | (s << 8);
}

unsigned long ntohl(unsigned long l)
{
	return  ((l >> 24) & 0x000000ff) |
		((l >>  8) & 0x0000ff00) |
		((l <<  8) & 0x00ff0000) |
		((l << 24) & 0xff000000);
}

unsigned short htons(unsigned short s)
{
	return (s >> 8) | (s << 8);
}

unsigned long htonl(unsigned long l)
{
	return ntohl(l);
/*	return  ((l >> 24) & 0x000000ff) |
		((l >>  8) & 0x0000ff00) |
		((l <<  8) & 0x00ff0000) |
		((l << 24) & 0xff000000);*/
}

unsigned long strtoul(char *s)
{
	unsigned long ret;
	int i;

	ret = 0;

	while (*s != '\0') {
		if (*s >= '0' && *s <= '9')
			i = *s - '0';
		else if (*s >= 'a' && *s <= 'f')
			i = *s - 'a' + 0xa;
		else if (*s >= 'A' && *s <= 'F')
			i = *s - 'A' + 0xa;
		else
			return -1;
		ret = (ret << 4) + i;
		s++;
	}

	return ret;
}

void ultostr(char *s, unsigned long data)
{
	int i;
	
	s[8] = 0;
	for(i=7; i>=0; i--, data >>=4)
	{
		if((data&0xf)<=9)
			s[i] = (data&0xf)+'0';
		else
			s[i] = (data&0xf)+'a'-0x0a;
	}	
}

unsigned long strtobcd(char *s)
{
	unsigned long ret;
	int i;

	ret = 0;

	while (*s != '\0') {
		if (*s >= '0' && *s <= '9')
			i = *s - '0';
		else
			return -1;
		ret = (ret << 4) + i;
		s++;
	}

	return ret;
}

unsigned long strtodec(char *str, int cnt)
{
	unsigned long i, data = 0;	
	
	for(i=0; i<cnt; i++)
	{
		data *= 10;
		if(str[i]<'0'||str[i]>'9')
			return -1;
		data += str[i]-'0';			
	}	
	return data;
}

int strlen(const char *s)
{
	int i = 0;

	for(; *s; s++)
		i++;
	
	return i;
}

int strncmp(const char *s1, const char *s2, int maxlen)
{
	int i;

	for(i = 0; i < maxlen; i++) {
		if(s1[i] != s2[i])
			return ((int) s1[i]) - ((int) s2[i]);
		if(s1[i] == 0)
			return 0;
	}

	return 0;
}

/*---------------------printf and support routines ---------------------*/
/* print c count times */
void PutRepChar(char c, int count)
{
	while (count--) putch(c);
}

/* put string reverse */
void PutStringReverse(char *s, int index)
{
  while ((index--) > 0) putch(s[index]);
}

/*-------------------------------------------------------------------------*/
/* 
   prints value in radix, in a field width width, with fill
   character fill
   if radix is negative, print as signed quantity
   if width is negative, left justify
   if width is 0, use whatever is needed
   if fill is 0, use ' '
 */

static void PutNumber(int value, int radix, int width, char fill)
{
  char buffer[40];
  int bi = 0;
  int unsigned uvalue;
  short int digit;
  short int left = FALSE;
  short int negative = FALSE;

  if (fill == 0) fill = ' ';

  if (width < 0) {
    width = -width;
    left = TRUE;
  }
  if (width < 0 || width > 80) width = 0;
  
  if (radix < 0) {
    radix = -radix;
    if (value < 0) {
      negative = TRUE;
      value = -value;
    }
  }
  uvalue = value;
  do {
    if (radix != 16) {
      digit = uvalue % radix ;
      uvalue = uvalue / radix ;
    }
    else {
      digit = uvalue & 0xf;
      uvalue = uvalue >> 4;
    }
    buffer[bi] = digit + ((digit <= 9) ? '0' : ('A' - 10));
    bi++;

    if (uvalue != 0) {
      if ((radix==10)&&((bi==3)||(bi==7)||(bi==11)|(bi==15))) {
	buffer[bi++]=',';
      }
    }
  } while (uvalue != 0);

  if (negative) {
    buffer[bi] = '-';
    bi += 1;
  }
  if (width <= bi) PutStringReverse(buffer, bi);
  else {
    width -= bi;
    if (!left) PutRepChar(fill, width);
    PutStringReverse(buffer, bi);
    if (left) PutRepChar(fill, width);
  } 
}

/*-------------------------------------------------------------------------*/
static char *FormatItem(char *f, int a)
{
  char c;
  int fieldwidth = 0;
  int leftjust = FALSE;
  int radix = 0;
  char fill = ' ';

  if (*f == '0') fill = '0';
  while ((c = *f++)!=0) {
    if (c >= '0' && c <= '9') {
      fieldwidth = (fieldwidth * 10) + (c - '0');
    }
    else switch (c) {
    case '\000': return(--f);
    case '%': putch('%');
      return(f);
    case '-': leftjust = TRUE;
      break;
    case 'c': {
      if (leftjust) putch(a & 0x7f);
      if (fieldwidth > 0) PutRepChar(fill, fieldwidth - 1);
      if (!leftjust) putch(a & 0x7f);
      return(f);
    }
    case 's': {
      if (leftjust) puts((char *) a);
      if (fieldwidth > strlen((char *) a))
	PutRepChar(fill, fieldwidth - strlen((char *)a));
      if (!leftjust) puts((char *) a);
      return(f);
    }
    case 'd': 
    case 'i': radix = -10;break;
    case 'u': radix = 10;break;
    case 'x': radix = 16;break;
    case 'X': radix = 16;break;
    case 'o': radix = 8;break;
    default : radix = 3;break;/* unknown switch! */
    }
    if (radix) break;
  }
  if (leftjust) fieldwidth = -fieldwidth;
  PutNumber(a, radix, fieldwidth, fill);
  return(f);
}

#define vaStart(list, param) list = (char*)((int)&param + sizeof(param))
#define vaArg(list, type) ((type *)(list += sizeof(type)))[-1]
#define vaEnd(list)

void printf(char *f, ...)       /* variable arguments */
{
//	U32 mode ;
	char *argP;
	
	/* disable IRQs and FIQs */
//	mode = uHALir_ReadMode() ;
//	uHALir_WriteMode(mode | NoFIQ | NoIRQ) ;

	vaStart(argP,f);		/* point at the end of the format string */
	while (*f) {			/* this works because args are all ints */
		if (*f == '%')
			f = FormatItem(f + 1, vaArg(argP, int));
		else
			putch(*f++);
	}
	vaEnd(argP);

	/* restore the previous mode */
//	uHALir_WriteMode(mode) ;
}

int getyorn(void)
{
	char c;
	
	puts(" [y/n] ");
	while(1) {		
		c = getch();
		if((c=='y')||(c=='Y')||(c=='n')||(c=='N'))
			break;
	}
	putch(c);
	putch('\n');
	return c&1;	//y&Y are odd, n&N are even
}

int GetParameter(char *str, int cnt)
{
	int i, key;	
	
	i = 0;
	while(1)
	{
		key = getch();
		if(key)
		{
			if(key == ENTER_KEY)
			{
				str[i] = 0;
				return i;
			}
			else if(key == BACK_KEY && i>0)
			{
				i--;
				printf("\b \b");
			}
			else if(key == 0x1b)
			{
				//getch();
				//getch();
				return -1;
			}
			else if(key>=0x20 && key<=0x7e && i<cnt)
			{
				str[i++] = key;
				putch(key);
			}				
		}
	}	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91小视频在线观看| 粉嫩在线一区二区三区视频| 欧美激情一区二区三区不卡| 精品粉嫩超白一线天av| 欧美一级淫片007| 日韩精品影音先锋| 精品国产乱码91久久久久久网站| 日韩欧美电影在线| 国产欧美日产一区| 最新不卡av在线| 亚洲成人一二三| 毛片av中文字幕一区二区| 久久综合综合久久综合| 国产专区综合网| 丰满白嫩尤物一区二区| 一本一道久久a久久精品| 欧美主播一区二区三区美女| 欧美日韩一级二级三级| 欧美一区二区三区免费大片| 精品99999| 最新久久zyz资源站| 亚洲成av人片| 国产一区二区免费看| 97久久久精品综合88久久| 在线视频中文字幕一区二区| 欧美一卡二卡在线| 国产精品久久99| 午夜成人免费电影| 国产成人福利片| 成人在线一区二区三区| 日本韩国欧美三级| 久久久夜色精品亚洲| 一区在线播放视频| 日韩综合小视频| 国产91精品露脸国语对白| 一本一道综合狠狠老| 久久亚洲捆绑美女| 尤物在线观看一区| 国产高清精品网站| 欧美一区二区三区日韩视频| 国产精品久久久久天堂| 日韩电影免费在线观看网站| 99久久99久久久精品齐齐| 欧美一区二区啪啪| 一级特黄大欧美久久久| 国产麻豆欧美日韩一区| 337p亚洲精品色噜噜| 亚洲色图清纯唯美| 国模一区二区三区白浆| 欧美福利视频导航| 一区二区日韩电影| 不卡的av网站| 久久久国产精品不卡| 免费观看日韩电影| 欧美日韩一本到| 日韩美女视频一区| 国产91精品免费| 久久久不卡网国产精品一区| 免费观看91视频大全| 欧美二区在线观看| 亚洲va欧美va人人爽午夜 | 午夜视频一区在线观看| caoporm超碰国产精品| 亚洲精品在线免费观看视频| 日韩综合小视频| 欧美久久久久久久久| 亚洲一区二区在线视频| 欧洲亚洲国产日韩| 亚洲尤物视频在线| 91污在线观看| 一区二区三区四区不卡在线| 波多野结衣视频一区| 亚洲欧洲99久久| 91视频观看免费| 亚洲欧美日韩中文播放| 99国产精品视频免费观看| 亚洲视频一区二区在线观看| 99在线精品一区二区三区| 国产精品久久夜| 国产999精品久久| 久久在线免费观看| 成人午夜电影网站| 亚洲免费伊人电影| 在线亚洲高清视频| 视频一区免费在线观看| 日韩一区二区在线观看| 国产99一区视频免费| 精品sm在线观看| 国产黄色精品网站| 自拍偷拍欧美精品| 精品视频资源站| 蜜臀av一区二区| 欧美国产激情一区二区三区蜜月| av中文字幕不卡| 亚洲第一主播视频| 欧美大片免费久久精品三p| 久久久久久久久一| proumb性欧美在线观看| 亚洲综合激情另类小说区| 欧美丰满美乳xxx高潮www| 精品在线观看免费| 一区在线观看视频| 欧美久久一二三四区| 国产91对白在线观看九色| 亚洲美女在线一区| 欧美一区二区视频网站| 国产又黄又大久久| 亚洲综合一区在线| 久久综合九色综合久久久精品综合| 懂色一区二区三区免费观看| 一级日本不卡的影视| 久久亚洲精品国产精品紫薇| 在线视频一区二区三区| 国产一区二区在线免费观看| 亚洲已满18点击进入久久| 久久精品人人爽人人爽| 欧美日本不卡视频| 成人毛片老司机大片| 蜜臀久久99精品久久久久久9| 国产精品色眯眯| 日韩亚洲欧美综合| 在线免费不卡电影| 成人av综合在线| 蓝色福利精品导航| 一区二区高清在线| 中文字幕中文字幕一区| 欧美精品一区二区精品网| 欧美色倩网站大全免费| av在线不卡免费看| 国产福利一区在线| 久久福利视频一区二区| 日韩av电影天堂| 亚洲电影视频在线| 亚洲综合视频网| 亚洲激情图片qvod| 国产精品久久久久国产精品日日| 精品国产91九色蝌蚪| 日韩一区二区三区四区五区六区| 欧美日韩一区二区三区免费看| 成人短视频下载| 丁香啪啪综合成人亚洲小说| 国内精品不卡在线| 国产美女视频一区| 久久电影网站中文字幕| 久久精品二区亚洲w码| 免费观看一级欧美片| 人禽交欧美网站| 蜜桃视频一区二区| 美美哒免费高清在线观看视频一区二区 | 国产黄色精品网站| 国产精品影视天天线| 国产精品夜夜嗨| 国产成人亚洲精品青草天美| 国产精品一区三区| 丰满岳乱妇一区二区三区| 成人免费黄色大片| 国产成人精品1024| 中文字幕中文字幕在线一区| 亚洲国产精品精华液ab| 成人欧美一区二区三区黑人麻豆| 一区二区三区日韩欧美| 久久久久久久久久久黄色| 亚洲国产精品激情在线观看| 紧缚奴在线一区二区三区| 国产精品456露脸| 成人av在线资源| 色国产精品一区在线观看| 欧美日韩国产另类一区| 欧美一区二区三区视频免费| 精品国产亚洲在线| 亚洲欧洲成人精品av97| 亚洲国产欧美在线| 久久精品久久99精品久久| 国产成人在线网站| 91色在线porny| 欧美一二三区在线观看| 中文字幕欧美区| 亚洲一区在线观看免费观看电影高清| 视频一区视频二区在线观看| 国产一区999| 欧美丝袜丝交足nylons图片| 日韩一区二区三区在线| 亚洲欧洲美洲综合色网| 日本成人中文字幕在线视频| 国产精品88888| 欧美日韩电影在线| 国产欧美一区二区精品忘忧草| 亚洲欧美日韩久久| 美腿丝袜亚洲综合| 色爱区综合激月婷婷| 欧美成人bangbros| 亚洲高清久久久| 国产成人精品一区二区三区四区| 色综合欧美在线| 久久久精品综合| 秋霞午夜av一区二区三区| 色拍拍在线精品视频8848| 久久综合久久综合久久综合| 一区二区三区在线视频播放| 国产一区二区在线看|