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

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

?? lpc.c

?? Xbox主機破解,燒錄晶片專用的程式,可燒錄256KB的49lf020晶片,使用LPC port
?? C
字號:
#include "lpc-h.h"

Uword LPT=0x378;  		 /* Location of LPT data port */
Ubyte AbortLPC;
unsigned int LPC_Delay=0;

static Ubyte Lpt_Data;   /* Byte reflects LPT data port */
static Ubyte SyncError;

static void (*Ldout)(Ubyte Nibble);
static Ubyte (*Ldin)(void);

void DelayLoop(void)
{ unsigned int i;

  for(i=LPC_Delay;i;i--)
    /* */;
 }

void Lclk_L(void)
{ DelayLoop();

  Lpt_Data = (Ubyte)((Lpt_Data & DATAMASK) | LFRAME | LRST);
  Outportb(DATA,Lpt_Data);
 }

void Lclk_H(void)
{ DelayLoop();

  Lpt_Data = (Ubyte)((Lpt_Data & DATAMASK) | LCLK | LFRAME | LRST);
  Outportb(DATA,Lpt_Data);
 }

void Lcf_L(void)
{ DelayLoop();

  Lpt_Data = (Ubyte)((Lpt_Data & DATAMASK) | LRST);
  Outportb(DATA,Lpt_Data);
 }

void Lf_L(void)
{ DelayLoop();

  Lpt_Data = (Ubyte)((Lpt_Data & DATAMASK) | LCLK | LRST);
  Outportb(DATA,Lpt_Data);
 }

/* Rev 1 hardware */

void Rev1_Ldout(Ubyte Nibble)
{ DelayLoop();
  Outportb(CTRL,(Ubyte)((Nibble&0x0f)^0x0b));
 }

Ubyte Rev1_Ldin(void)
{ DelayLoop();
  return ((Ubyte)((Inportb(CTRL)&0x0f)^0x0b));
 }

/* Rev 2 hardware */
#define OE	0x80		/* Output enable bit */

void Rev2_Ldout(Ubyte Nibble)
{ DelayLoop();
  Lpt_Data = (Ubyte)((Lpt_Data & CTRLMASK)|((Nibble &0x0f)<<3));
  Outportb(DATA,Lpt_Data);
 }

Ubyte Rev2_Ldin(void)
{ DelayLoop();
  return ((Ubyte)((Inportb(STATUS)>>3)&0x0f));
 }

int Rev2_Detect(void)
{ Rev2_Ldout(0x0f);
  delay(1);
  if (Rev2_Ldin()!=0x0f)
    return(0);

  Rev2_Ldout(0x00);
  delay(1);

  if (Rev2_Ldin()==0x00)
    return (1);
  else
    return (0);
 }

void WriteNibbles(Ubyte N1, Ubyte N2)
{
  Ldout(N1);
  Lclk_H();
  Lclk_L();
  Ldout(N2);
  Lclk_H();
  Lclk_L();
 }

Ubyte ReadByte(void)
{ Ubyte Byte;

  Lclk_H();
  Byte=Ldin();
  Lclk_L();
  Lclk_H();
  Byte|= (Ubyte)(Ldin() <<4);
  Lclk_L();
  return(Byte);
 }

Ubyte ReadNibble(void)
{ Ubyte Byte;

  Lclk_H();
  Byte=Ldin();
  Lclk_L();

  return(Byte);
 }

void Addr(Uword Bank, Uword Ad, Ubyte Mode)
{ Ubyte Byte;

  Lcf_L();
  Ldout(0x00);
  Lclk_H();
  Lclk_L();
  Ldout(Mode);
  Lclk_H();
  Lclk_L();

  Byte = HI_BYTE(Bank);
  WriteNibbles(HI_NIB(Byte),LO_NIB(Byte));
  Byte = LO_BYTE(Bank);
  WriteNibbles(HI_NIB(Byte),LO_NIB(Byte));
  Byte = HI_BYTE(Ad);
  WriteNibbles(HI_NIB(Byte),LO_NIB(Byte));
  Byte = LO_BYTE(Ad);
  WriteNibbles(HI_NIB(Byte),LO_NIB(Byte));

 }

void FlashWrite(Uword Bank,Uword Ad,Ubyte Byte)
{ Ubyte Nibble;
  char Buffer[256];

  Addr(Bank,Ad,WRITE);
  WriteNibbles(LO_NIB(Byte),HI_NIB(Byte));
  WriteNibbles(0x0f,0x0f);

/* Old code - expects LPC to be ready
   if ((Nibble=Ldin())!=0x00)
    printf("Wr: Expecting Sync <0000>, but found %x\n",(int) Nibble);
 */

  while ((Nibble=Ldin())!=0x00)
  { if ((Nibble==0x05) || (Nibble==0x06))
    { Lclk_H();
      Lclk_L();
      }
    else
    { sprintf(Buffer,"Wr: Expecting Sync <0000>, but found 0x%x",(int) Nibble);
      Puts(Buffer);
      SyncError=1;
      break;
     }
   }

  ReadByte();
 }

Ubyte FlashRead(Uword Bank,Uword Ad)
{ Ubyte result, Nibble;
  char Buffer[256];

  Addr(Bank,Ad,READ);
  WriteNibbles(0x0f,0x0f);

/* Old code - expects LPC to be ready
   if ((Nibble=Ldin())!=0x00)
    printf("Wr: Expecting Sync <0000>, but found %x\n",(int) Nibble);
 */

  while ((Nibble=Ldin())!=0x00)
  { if ((Nibble==0x05) || (Nibble==0x06))
    { Lclk_H();
      Lclk_L();
      }
    else
    { sprintf(Buffer,"Rd: Expecting Sync <0000>, but found 0x%x",(int) Nibble);
      Puts(Buffer);
      SyncError=1;
      break;
     }
   }

  result=ReadByte();
  ReadByte();
  return(result);
 }


void FlashReset(void)
{
  Outportb(DATA,LCLK | LFRAME );
  delay(1);
  Outportb(DATA,(Lpt_Data = LCLK | LFRAME | LRST));
 }

void FlashByteWrite(Uword Bank,Uword Addr, Ubyte Data)
{ Ubyte Status;

  FlashWrite(0x0000,0x5555,0xAA);
  FlashWrite(0x0000,0x2AAA,0x55);
  FlashWrite(0x0000,0x5555,0xA0);
  FlashWrite(Bank,Addr,Data);

//  do {
      Status=FlashRead(Bank,Addr);
//   } while(Status!=FlashRead(Bank,Addr));

 }

int FlashErase(void)
{ Uword i, AddrL, AddrH, Status;

  FlashReset();
  for(i=0;i<16;i++)
  { AddrL = (Uword)(i<<14);
    AddrH = (Uword)(i>>2);

    FlashWrite(0x0000,0x5555,0xAA);
    FlashWrite(0x0000,0x2AAA,0x55);
    FlashWrite(0x0000,0x5555,0x80);
    FlashWrite(0x0000,0x5555,0xAA);
    FlashWrite(0x0000,0x2AAA,0x55);
    FlashWrite(AddrH,AddrL,0x50);

    do
    { Status=FlashRead(AddrH,AddrL);
     } while(Status!=FlashRead(AddrH,AddrL));
   }

  return(1);
 }

int BlankCheck(void)
{ Uword error,i,j;
  Ulong n;

  char Buffer[255];

  error =16;
  SetProgress(64);

  FlashReset();
  for(j=0;j<4;j++)
  { for(n=0,i=0;n<0x10000L;n++,i++)
    { if (FlashRead(j,i)!=0xff)
      { if (error)
        { error--;
          sprintf(Buffer,"Address 0x%01x%04x=%02x != 0xff",j,(Uword)i,FlashRead(j,i));
          Puts(Buffer);
         }
        else
   	    break;
	    }

      if ((i&0x0fff)==0)
        StepProgress();

      if (AbortLPC)
        return(0);
	   }
	 }

   if (error==16)
   { SetProgress(0);
     Puts("Blank check completed");
     return(1);
    }
   else
   { Puts("Blank check Aborted");
     return(0);
    }
 }

Uword ReadFlashID(void)
{ Ubyte Mfg, Device;
  char Buffer[255];

  FlashWrite(0x0000,0x5555,0xAA);
  FlashWrite(0x0000,0x2AAA,0x55);
  FlashWrite(0x0000,0x5555,0x90);

  Mfg=FlashRead(0x0,0x0);
  Device=FlashRead(0x0,0x1);

  FlashWrite(0x0000,0x0000,0xF0);

  sprintf(Buffer,"Mfg=0x%x Device=0x%x",Mfg,Device);
  Puts(Buffer);
  return((Uword)((Mfg<<8)|Device));
 }

void ReadChip(char *file)
{ FILE *outfile;
  Uword i,j;
  Ulong n;

  if (!(outfile=fopen(file,"wb")))
  { Puts("Cannot open file for writing");
    return;
   }

  SetProgress(64);
  FlashReset();

  for(j=0;j<4;j++)
  { for(i=0,n=0;n<0x10000L;n++,i++)
    { fputc(FlashRead((Uword)j,(Uword)i),outfile);

      if ((i&0x0fff)==0)
        StepProgress();
      if (AbortLPC)
      { fclose(outfile);
        return;
       }
	  }
	 }
	fclose(outfile);
   SetProgress(0);
 }

void WriteChip(char *file, int index)
{ FILE *infile;
  Uword i,j;
  Ulong n;

  if (!(infile=fopen(file,"rb")))
  { Puts("Cannot open file for reading");
    return;
   }

  if (!index)
    fseek(infile,0L,SEEK_SET);
  else
    fseek(infile,-0x40000L,SEEK_END);

  SetProgress(64);
  FlashReset();

  for(j=0;j<4;j++)
  { for(i=0,n=0;n<0x10000L;n++,i++)
    { FlashByteWrite(j,i,(Ubyte)fgetc(infile));
      if ((i&0x0fff)==0)
        StepProgress();

      if (AbortLPC)
      { fclose(infile);
        return;
       }

	  }
	 }
	fclose(infile);
   SetProgress(0);

   Puts("Write completed");
 }

int VerifyChip(char *file, int index)
{ FILE *infile;
  Uword i,j,error;
  Ulong n;
  Ubyte rddata,data;
  char Buffer[256];

  if (!(infile=fopen(file,"rb")))
  { Puts("Cannot open file for reading");
    return 0;
   }

  if (!index)
    fseek(infile,0L,SEEK_SET);
  else
    fseek(infile,-0x40000L,SEEK_END);

  SetProgress(64);
  FlashReset();
  error=16;

  for(j=0;j<4;j++)
  { for(i=0,n=0;n<0x10000L;n++,i++)
    { data=(Ubyte)fgetc(infile);
      rddata=FlashRead(j,i);

      if (rddata!=data)
	   { if (error)
	     { error--;
	       sprintf(Buffer,"Address 0x%01x%04x=0x%02x != 0x%02x",j,(Uword)i,rddata,data);
          Puts(Buffer);
	      }
	     else
     	    break;
	    }
      if ((i&0x0fff)==0)
        StepProgress();

      if (AbortLPC)
      { fclose(infile);
        return(0);
       }

	  }
	 }
	fclose(infile);
   SetProgress(0);

   if (error==16)
   { Puts("Verify completed");
     return(1);
    }
   else
   { Puts("Verify Aborted");
     return(0);
    }
 }

void SetDriver(int rev)
{ if (rev)
   { Ldout = Rev2_Ldout;
     Ldin  = Rev2_Ldin;
     Puts("LPC^2 rev.2 detected. Using Rev.2 driver");
    }
   else
   { Ldout = Rev1_Ldout;
     Ldin  = Rev1_Ldin;
     Puts("LPC^2 rev.2 not detected. Using Rev.1 driver");
    }
 }

void InitFlash(void)
{
   FlashReset();
 }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
青青青伊人色综合久久| 国产精品久久久久久久久免费樱桃 | 国产亚洲综合色| 国产成人精品免费视频网站| 国产欧美一区二区三区在线老狼 | 欧美激情一区二区三区蜜桃视频| 成人黄页在线观看| 亚洲精品日韩一| 日本高清不卡一区| 视频一区视频二区中文| 久久久久综合网| 色欧美乱欧美15图片| 五月婷婷激情综合| 日本一区二区三区久久久久久久久不 | 中文字幕一区二区三区在线不卡| 欧美午夜精品一区| 国产精品白丝av| 亚洲一区二区三区爽爽爽爽爽| 日韩写真欧美这视频| 国产一区二区看久久| 亚洲gay无套男同| 日本一区二区三区免费乱视频| 中日韩av电影| 国产日韩精品一区二区三区在线| 精品视频色一区| 五月天一区二区| 日韩综合小视频| 激情图片小说一区| 亚洲国产一区二区视频| 国产精品私房写真福利视频| 亚洲免费观看高清完整| 中文字幕一区在线观看视频| 一区二区三区在线视频观看| 亚洲人成在线播放网站岛国| 五月综合激情网| 国产a精品视频| 国产精品一线二线三线精华| 99视频有精品| 99精品一区二区三区| 成人免费毛片app| 国产在线不卡一区| 91福利在线播放| 久久免费午夜影院| 亚洲一区二区三区国产| 国产专区欧美精品| 欧美视频一二三区| 国产精品电影院| 久久99久久精品| 国产精品一区二区男女羞羞无遮挡 | 亚洲网友自拍偷拍| 国产成人精品免费| 欧美高清视频一二三区| 欧美私人免费视频| 国产精品青草久久| 久久机这里只有精品| 国产麻豆视频一区| 91麻豆精品91久久久久同性| 日韩视频一区二区三区在线播放| 国产精品久久久久久久久免费相片| 蜜桃精品视频在线观看| 国产精品中文字幕日韩精品 | 奇米影视7777精品一区二区| 色综合久久综合网97色综合 | 欧美视频在线一区| 中文字幕亚洲综合久久菠萝蜜| 国产在线观看免费一区| 日韩欧美在线影院| 婷婷国产v国产偷v亚洲高清| 色婷婷综合久久久久中文| 国产精品天美传媒| 国产精品1区2区3区| 久久久蜜桃精品| 国内精品免费在线观看| 精品久久久久一区二区国产| 国产日韩欧美精品在线| 黄色日韩三级电影| 久久综合九色综合欧美98| 国产精品国产精品国产专区不片| 国产精品一区二区在线观看网站| 2014亚洲片线观看视频免费| 国产一区在线精品| 国产日韩在线不卡| 9人人澡人人爽人人精品| 成人欧美一区二区三区白人 | 精品国产免费人成在线观看| 国产精品欧美一区喷水| 盗摄精品av一区二区三区| 中文字幕精品综合| 91在线观看美女| 日韩欧美国产一二三区| 亚洲人xxxx| 欧美日韩mp4| 亚洲日本va午夜在线影院| 精品在线一区二区三区| 国产无人区一区二区三区| caoporen国产精品视频| 亚洲一区二区三区激情| 欧美一区二区三区视频免费播放| 亚洲欧洲综合另类| 在线不卡一区二区| 国产一区免费电影| 亚洲免费高清视频在线| 欧美一区在线视频| 福利一区二区在线观看| 悠悠色在线精品| 欧美精品在线观看播放| 国产一区二区伦理| 亚洲一区在线观看免费| 精品国一区二区三区| 91丨porny丨在线| 日本在线播放一区二区三区| 欧美片在线播放| 国产福利精品一区| 亚洲午夜激情av| 中文字幕精品综合| 欧美一区二区久久| 色94色欧美sute亚洲线路一ni| 免费人成精品欧美精品| 亚洲视频资源在线| 26uuu欧美| 欧美精品v国产精品v日韩精品 | 99re热这里只有精品免费视频| 午夜精品久久久久久久| 亚洲国产精品99久久久久久久久| 国产精品三级av| 欧美一级日韩免费不卡| 色天使色偷偷av一区二区| 国产一区在线精品| 日本不卡视频在线| 亚洲免费大片在线观看| 亚洲国产精品av| 欧美成人激情免费网| 欧美午夜不卡在线观看免费| 国产成人在线网站| 激情文学综合网| 青椒成人免费视频| 午夜精品久久久久久久99水蜜桃| 亚洲丝袜美腿综合| 中文字幕一区二区三区不卡在线 | 亚洲欧洲成人精品av97| 欧美精品一区二区在线观看| 欧美另类高清zo欧美| 97久久精品人人做人人爽50路| 国产成人午夜99999| 激情综合一区二区三区| 久久国产精品无码网站| 日韩av一二三| 日本成人在线网站| 午夜精品影院在线观看| 亚洲国产精品一区二区久久恐怖片 | 日韩av一二三| 免费在线观看一区二区三区| 日韩激情视频网站| 日欧美一区二区| 全部av―极品视觉盛宴亚洲| 日韩电影一区二区三区| 日本成人中文字幕在线视频 | 久久综合久久99| 久久噜噜亚洲综合| 欧美激情综合网| 国产精品网站在线播放| 亚洲欧洲三级电影| 亚洲三级在线观看| 亚洲综合在线五月| 日韩高清在线不卡| 久久国产精品第一页| 国产尤物一区二区| 波多野结衣中文字幕一区| 99re6这里只有精品视频在线观看| 99热精品国产| 欧美群妇大交群中文字幕| 欧美一区二区三区思思人| 久久久久久久久久久久电影| 欧美激情中文不卡| 国产黄色91视频| av亚洲精华国产精华精| 在线观看网站黄不卡| 国产一区二区三区在线观看免费视频 | 亚洲一二三级电影| 另类欧美日韩国产在线| 粉嫩高潮美女一区二区三区 | 麻豆精品视频在线观看| 国产成人精品1024| 欧美在线观看一区二区| 日韩精品在线网站| 国产精品不卡在线| 午夜欧美大尺度福利影院在线看| 精一区二区三区| 日本道精品一区二区三区| 日韩欧美二区三区| 中文字幕人成不卡一区| 麻豆精品视频在线观看| 91视频在线观看| 欧美草草影院在线视频| 亚洲视频一区二区免费在线观看 | 国产日韩精品一区二区三区在线| 亚洲一区欧美一区| 成人综合日日夜夜| 日韩一二三区不卡| 亚洲欧美精品午睡沙发|