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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? commands.c

?? MMC interface and FAT File system
?? C
字號:
//#########################################################################
// File: commands.c
//
// Serial commands input
//
//#########################################################################
// Last change: 10.05.2003
//#########################################################################
// holger.klabunde@t-online.de
// http://home.t-online.de/home/holger.klabunde/homepage.htm
//#########################################################################
// Compiler: AVR-GCC 3.2
//#########################################################################
#include <string.h>

#include "protos.h"
#include "commands.h"
#include "serial.h"
#include "dos.h"
#include "lcd.h"
#include "mydefs.h"

unsigned long atoul(char *s);
void FillSectorBuffer(unsigned char *buf);

//########################################################
unsigned char WaitCommand(void)
//########################################################
{
 char c, s[2];
 unsigned long tmp,count;
 unsigned int i;
 
 s[1]=0;
 strcpy(line,"\0");

 do
  {
   c=ser_getc();
//   if(echo) ser_putc(c);  //echo back
   if(c==0x0A) c=0x0D;
   if(c!=0x0D && c!=0x08)
    { s[0]=c;
      strcat(line,s);
    }
   if(c==0x08 && strlen(line)>0) line[strlen(line)-1]=0; //DEL
  }while(c!=0x0D); 

 if(line[0]==0) return NOCOMM;

 if(strlen(line)==1) //short commands without parameters
  {
   if(line[0]=='h') return HELP;
   if(line[0]=='r') return ROOT;
   if(line[0]=='i') return INFO;
  }

 if(strlen(line)==2) //short commands without parameters
  {
   if(strcmp(line,"ls")==0) return LIST_DIR;
   if(strcmp(line,"ds")==0) return DUMP_SECTOR;
   if(strcmp(line,"e0")==0) { echo=0; return NOCOMM; }
   if(strcmp(line,"e1")==0) { echo=1; puts("Echo on\n"); return NOCOMM; }
   if(strcmp(line,"b0")==0) { bmode=0; puts("Binary off\n"); return NOCOMM; }
   if(strcmp(line,"b1")==0) { bmode=1; return NOCOMM; }
   if(strcmp(line,"l0")==0) { lo=0; return NOCOMM; }
   if(strcmp(line,"l1")==0) { lo=1; return NOCOMM; }

   if(strcmp(line,"nc")==0)
    {
     CurrentCluster=GetNextClusterNumber(CurrentCluster);
     if(echo) printf("Cluster: %lu 0x%08lx\n",CurrentCluster,CurrentCluster);
     return NOCOMM;
    } 

   if(strcmp(line,"fc")==0)
    {
     tmp=FindFreeCluster(CurrentCluster);
     if(echo) printf("Free Cluster: %lu 0x%08lx\n",tmp,tmp);
     return NOCOMM;
    }
  }

 if(strlen(line)==3) //short commands without parameters
  {
   if(strcmp(line,"ds+")==0)
    {
     if(CurrentSector<(maxsect-1)) CurrentSector++;
     return DUMP_SECTOR;
    } 

   if(strcmp(line,"ds-")==0)
    {
     if(CurrentSector>0) CurrentSector--;
     return DUMP_SECTOR;
    } 
  }

 if(strncmp(line,"cd",2)==0)
  {
   ChangeDir(&line[2]);
   return NOCOMM;
  }

 if(strncmp(line,"ds",2)==0)
  {
   tmp=atoul(&line[2]);
   if(tmp>=maxsect)
    {
     printf("Sector number %lu too big\n",tmp);
     return NOCOMM;
    } 
   CurrentSector=tmp;
   return DUMP_SECTOR;
  }

 if(strncmp(line,"cs",2)==0)
  {
   tmp=atoul(&line[2]);
   if(tmp<=maxcluster)
    {
     CurrentCluster=tmp;
     CurrentSector=GetFirstSectorOfCluster(tmp);

     if(CurrentCluster==0) //FAT12/16 Rootdir
      {
       CurrentSector=FirstRootSector;
      }
    } 
   return CLUSTER_TO_SECTOR;
  }

 if(strncmp(line,"df",2)==0)
  {
   if(FindName(&line[2]))
    {
     ReadFileRaw(FileFirstCluster);
    } 
   return NOCOMM;
  }

 if(strncmp(line,"ws",2)==0)
  {
   tmp=atoul(&line[2]);
   FillSectorBuffer(inbuff); //read over serial
   CFWriteSector(tmp,inbuff);
   return NOCOMM;
  }

 if(strncmp(line,"ts",2)==0)
  {
   tmp=atoul(&line[2]);

   while(tmp-- > 0) CFReadSector(0,inbuff);
   
   ser_putc(EOT);
   return NOCOMM;
  }

 if(strncmp(line,"cc",2)==0)
  {
   count=0;
   tmp=atoul(&line[2]);
   printf("%lu\n",tmp);
   count++;
   while(tmp<endofclusterchain)
    {
     tmp=GetNextClusterNumber(tmp);
     if(tmp<endofclusterchain)
      { printf("%lu\n",tmp);
        count++;
      }  
    }
   printf("Clusters %lu Space %lu\n",count,count*secPerCluster*BYTE_PER_SEC);
     
   ser_putc(EOT);
   return NOCOMM;
  }

 if(strncmp(line,"rf",2)==0)
  {
   if(fopen(&line[2],F_READ))
    {
//     while(fread(&c,1)) ser_putc(c);
//     while(fread(&c,1));
//     while((count=fread(line,40))); //read 40 bytes into buffer

     while((count=fread(line,40))) //read 40 bytes into buffer
      {
       for(i=0; i<count; i++)
        {
         ser_putc(line[i]);
        }
      }

     fclose();
    }

   return NOCOMM;
  }

 if(strncmp(line,"fo",2)==0)
  {
   if(fopen(&line[2],F_WRITE))
    {
     for(i=0; i<10000; i++)
      {
       if(fwrite("Hello World\n",12)!=12) break;
      }
      
     fclose();
    } 
   ser_putc(EOT); 
   return NOCOMM;
  }

 puts("Unknown Command\n");   

 return NOCOMM;
}

//########################################################
void HelpScreen(void)
//########################################################
{
 puts("\nCommand List:\n");
 puts("b0,b1    send sectors binary b1=on b0=off\n");
 puts("e0,e1    echo e1=on e0=off\n");
 puts("h        show this help\n");
 puts("i        read drive parameters and show drive informations\n");
 puts("ds       dump current sector\n");
 puts("ds+,ds-  dump next/previous sector\n");
 puts("ds[nr]   dump sector[nr]\n");
 puts("fc       find next free cluster\n");
 puts("nc       next cluster in chain\n");
 puts("cc[nr]   send cluster chain for cluster [nr]\n");
 puts("cs[nr]   set cluster and current sector to beginning of cluster[nr]\n");
 puts("ts[nr]   test read sector0 for [nr]times to RAM\n");
 puts("ws[nr]   write sector[nr]\n");
 puts("r        change to root directory and show it\n");
 puts("ls       list current directory\n");
 puts("cd[name] change dir [name]\n");
 puts("df[name] download file [name] with ReadFileRaw()\n");
 puts("rf[name] download file [name] with fread()\n");
 puts("fo[name] open file [name] and write/append 120000 Bytes\n");
 puts("l0,l1    show long filename entrys l1=on l0=off\n");

 ser_putc(EOT);
}

//########################################################
void FillSectorBuffer(unsigned char *buf)
//########################################################
{
 unsigned int i;

 for(i=0; i<BYTE_PER_SEC; i++)
  {
   buf[i]=ser_getc();
  }
}

//########################################################
//Very small atol(). only for decimal numbers. no hex
unsigned long atoul(char *s)
//########################################################
{
 unsigned char c;
 unsigned long tmp;
 
 tmp=0;

 while((c=*s++))
  {
   if(c>='0' && c<='9')
    {
     tmp*=10;
     tmp+=c-'0';
    }
  }
 
 return tmp;
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久狠狠亚洲综合| 欧美zozo另类异族| 亚洲欧洲综合另类在线| 色综合久久久久| 亚洲少妇30p| 欧美在线观看视频一区二区三区| 一区二区三区美女| 欧美理论片在线| 久久不见久久见免费视频1| 久久久久久亚洲综合影院红桃 | 国产黄色精品视频| 国产精品免费av| 91精品福利在线| 免费在线观看一区二区三区| 欧美va在线播放| 国产成人精品影视| 亚洲一区二区欧美| 精品国内二区三区| 色综合久久综合网97色综合| 日韩不卡一区二区| 欧美激情在线一区二区| 色欧美88888久久久久久影院| 日韩—二三区免费观看av| 久久久久亚洲综合| 欧美日韩一级视频| 国产乱码精品一品二品| 一区二区三区免费网站| 26uuu国产在线精品一区二区| av成人老司机| 日产欧产美韩系列久久99| 国产区在线观看成人精品| 欧美亚洲日本国产| 国产精品一区二区黑丝| 亚洲一区二区精品3399| 国产欧美视频在线观看| 欧美日韩成人综合| av在线播放不卡| 老司机精品视频导航| 亚洲乱码国产乱码精品精小说| 日韩丝袜情趣美女图片| 91美女福利视频| 韩国在线一区二区| 日韩精品国产精品| 亚洲免费观看高清完整 | 久久久久久综合| 欧美日韩亚洲不卡| 99久久久久久| 国产在线看一区| 日韩在线a电影| 亚洲男女毛片无遮挡| 久久―日本道色综合久久| 欧美日韩午夜在线视频| 99在线精品免费| 国产91清纯白嫩初高中在线观看| 日韩福利电影在线观看| 亚洲线精品一区二区三区 | 一二三区精品视频| 亚洲国产激情av| 久久麻豆一区二区| 日韩一区二区三区视频在线| 欧美午夜精品免费| 色综合天天综合网天天狠天天| 国产另类ts人妖一区二区| 日本不卡一二三| 日日夜夜免费精品视频| 亚洲午夜电影网| 亚洲一区二区三区小说| 亚洲欧美国产高清| 一区二区三区在线视频免费观看 | 欧美不卡一区二区三区| 7777精品伊人久久久大香线蕉的| 91首页免费视频| 色综合视频在线观看| av在线免费不卡| 91麻豆国产自产在线观看| www.成人在线| 99久久夜色精品国产网站| jvid福利写真一区二区三区| 成人免费精品视频| 91蜜桃在线免费视频| 日本韩国欧美国产| 精品视频资源站| 538prom精品视频线放| 7777女厕盗摄久久久| 日韩美女视频一区二区在线观看| 日韩欧美一二区| 久久伊人蜜桃av一区二区| wwwwww.欧美系列| 国产日韩欧美激情| 国产精品久久久久久久岛一牛影视| 国产女主播在线一区二区| 亚洲欧洲色图综合| 亚洲综合在线电影| 奇米精品一区二区三区四区| 麻豆精品一二三| 国产高清视频一区| 色综合亚洲欧洲| 69堂亚洲精品首页| 26uuu色噜噜精品一区| 国产精品美女一区二区三区 | 欧美高清在线一区| 亚洲免费在线电影| 亚瑟在线精品视频| 精品一区二区三区免费毛片爱| 国产精品一区二区你懂的| 91视频免费观看| 3d动漫精品啪啪1区2区免费| 26uuu色噜噜精品一区| 国产精品人妖ts系列视频| 性做久久久久久| 国产一区二区三区免费播放| av高清不卡在线| 欧美麻豆精品久久久久久| 久久婷婷一区二区三区| 亚洲日本一区二区| 蜜桃精品视频在线| 一本大道av伊人久久综合| 欧美年轻男男videosbes| 欧美精品一区二区久久久| 亚洲三级久久久| 狠狠色丁香久久婷婷综合丁香| 91麻豆国产香蕉久久精品| 精品国产三级a在线观看| 一区二区在线观看视频| 久久99精品一区二区三区| 色诱亚洲精品久久久久久| 精品久久人人做人人爽| 亚洲国产综合人成综合网站| 国产一区二区中文字幕| 欧美丝袜第三区| 国产女人水真多18毛片18精品视频| 亚洲成人在线免费| 北条麻妃国产九九精品视频| 日韩精品在线网站| 亚洲大尺度视频在线观看| 波多野结衣在线aⅴ中文字幕不卡| 91精品国产91热久久久做人人| ...xxx性欧美| 国产高清视频一区| 精品三级在线看| 日一区二区三区| 91久久精品国产91性色tv| 久久综合av免费| 九色|91porny| 日韩一区二区免费视频| 亚洲在线视频一区| 国产v综合v亚洲欧| 亚洲精品一区二区三区精华液 | 午夜精品久久一牛影视| 成人少妇影院yyyy| 久久久久青草大香线综合精品| 青青草国产成人99久久| 在线观看一区二区视频| 国产精品乱码一区二区三区软件| 久久精品99国产精品| 666欧美在线视频| 五月激情丁香一区二区三区| 欧美影院一区二区三区| 亚洲精品一二三四区| av激情综合网| 亚洲免费观看在线视频| 色综合色综合色综合| 一区二区三区资源| 在线观看日韩精品| 一区二区三区在线播放| 色综合色狠狠综合色| 一区二区三区精品在线| 色菇凉天天综合网| 亚洲一区二区视频| 91精品一区二区三区在线观看| 天涯成人国产亚洲精品一区av| 欧美三级日韩三级| 日韩在线一二三区| 欧美mv日韩mv国产网站app| 国产在线播放一区| 国产午夜精品一区二区三区四区| 国产成人在线视频网站| 国产精品视频一区二区三区不卡| 成人一道本在线| 一区二区不卡在线视频 午夜欧美不卡在| 99久久久久久| 亚洲午夜久久久久久久久久久| 欧美色图天堂网| 免费在线成人网| 国产午夜精品一区二区 | 欧美专区亚洲专区| 亚洲国产日韩在线一区模特| 欧洲精品中文字幕| 美女在线视频一区| 久久精品一区二区三区不卡牛牛 | 91久久香蕉国产日韩欧美9色| 一区二区三区中文字幕| 欧美一区国产二区| 国产精品123区| 亚洲激情一二三区| 日韩欧美国产电影| 成人精品免费网站| 午夜国产精品影院在线观看| 精品国产成人在线影院 | 欧美在线制服丝袜|