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

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

?? ide_x_hw.c

?? 文件系統轅馬,想要的258031823大幅度反對反對法
?? C
?? 第 1 頁 / 共 2 頁
字號:

void FS_IDE_HW_X_SetSectorNo(FS_U8 Unit, unsigned char Data) {
  FS_U16 Sector;
  FS_USE_PARA(Unit);                /* Only one Unit supported, avoid compiler warning  */
  Sector = __IDE_SECTOR;
  Sector &= 0x00FF;
  Sector |= (FS_U16) (Data << 8);   /* Sector number is upper byte of sector data */
  __IDE_SECTOR = Sector;
}

/*********************************************************************
*
*       FS_IDE_HW_X_GetSectorNo()
*
  Description:
  FS driver hardware layer function. Read the SECTOR NUMBER register.

  Parameters:
  Unit        - Unit number.
 
  Return value:
  Value of the SECTOR NUMBER register.
*/

unsigned char FS_IDE_HW_X_GetSectorNo(FS_U8 Unit) {
  unsigned char data;
  FS_USE_PARA(Unit);         /* Only one Unit supported, avoid compiler warning  */
  data = __IDE_SECTOR >> 8;  /* Sector number is upper byte of sector data       */
  return data;
}

/*********************************************************************
*
*       FS_IDE_HW_X_SetCylLow()
*
  Description:
  FS driver hardware layer function. Set the CYLINDER LOW register.

  Parameters:
  Unit        - Unit number.
  Data        - Value to write to the CYLINDER LOW register.
 
  Return value:
  None.
*/

void FS_IDE_HW_X_SetCylLow(FS_U8 Unit, unsigned char Data) {
  FS_U16 Cylinder;
  FS_USE_PARA(Unit);         /* Only one Unit supported, avoid compiler warning  */
  Cylinder = __IDE_CYLINDER;
  Cylinder &= 0xFF00;        /* Cylinder low is lower byte of cylinder settings */
  Cylinder |= Data;
  __IDE_CYLINDER = Cylinder;
}

/*********************************************************************
*
*       FS_IDE_HW_X_GetCylLow()
*
  Description:
  FS driver hardware layer function. Read the CYLINDER LOW register.

  Parameters:
  Unit        - Unit number.
 
  Return value:
  Value of the CYLINDER LOW register.
*/

unsigned char FS_IDE_HW_X_GetCylLow(FS_U8 Unit) {
  unsigned char data;
  FS_USE_PARA(Unit);      /* Only one Unit supported, avoid compiler warning  */
  data = __IDE_CYLINDER;  /* Cylinder low is lower byte of cylinder settings  */
  return data;
}

/*********************************************************************
*
*       FS_IDE_HW_X_SetCylHigh()
*
  Description:
  FS driver hardware layer function. Set the CYLINDER HIGH register.

  Parameters:
  Unit        - Unit number.
  Data        - Value to write to the CYLINDER HIGH register.
 
  Return value:
  None.
*/

void FS_IDE_HW_X_SetCylHigh(FS_U8 Unit, unsigned char Data) {
  FS_U16 Cylinder;
  FS_USE_PARA(Unit);                  /* Only one Unit supported, avoid compiler warning  */
  Cylinder = __IDE_CYLINDER;
  Cylinder &= 0x00FF;
  Cylinder |= (FS_U16) (Data << 8);   /* Cylinder high is upper byte of cylinder settings */
  __IDE_CYLINDER = Cylinder;
}

/*********************************************************************
*
*       FS_IDE_HW_X_GetCylHigh()
*
  Description:
  FS driver hardware layer function. Read the CYLINDER HIGH register.

  Parameters:
  Unit        - Unit number.
 
  Return value:
  Value of the CYLINDER HIGH register.
*/

unsigned char FS_IDE_HW_X_GetCylHigh(FS_U8 Unit) {
  unsigned char data;
  FS_USE_PARA(Unit);            /* Only one Unit supported, avoid compiler warning  */
  data = __IDE_CYLINDER >> 8;   /* Cylinder high is upper byte of cylinder settings */
  return data;
}

/*********************************************************************
*
*       FS_IDE_HW_X_SetDevice()
*
  Description:
  FS driver hardware layer function. Set the DEVICE/HEAD register.

  Parameters:
  Unit        - Unit number.
  Data        - Value to write to the DEVICE/HEAD register.

  Problems:   When 16 bit memory access is used, this register can only be
              written together with command register.
  Return value:
  None.
*/

void FS_IDE_HW_X_SetDevice(FS_U8 Unit, unsigned char Data) {
  FS_USE_PARA(Unit);     /* Only one Unit supported, avoid compiler warning     */
  _HeadRegister = Data;  /* Save new Device/Head settings for command writes    */
#if _FS_IDE_HW_WRITE_DEVICE       /* directly write into Device / Head register */ 
  _WaitNotBusy(Unit);
  __IDE_DH_CMD  = (FS_U16) Data;  /* Upper byte = 0x00 => NOP command           */
  _WaitNotBusy(Unit);             /* ensure, command is executed                */
#endif  
}

/*********************************************************************
*
*       FS_IDE_HW_X_GetDevice()
*
  Description:
  FS driver hardware layer function. Read the DEVICE/HEAD register.

  Parameters:
  Unit        - Unit number.
 
  Return value:
  Value of the DEVICE/HEAD register.
*/

unsigned char FS_IDE_HW_X_GetDevice(FS_U8 Unit) {
  FS_USE_PARA(Unit);    /* Only one Unit supported, avoid compiler warning  */
#if _FS_IDE_HW_WRITE_DEVICE
  return __IDE_DH_CMD;  /* Lower byte of device/command register = Device/Head settings */ 
#else
  return _HeadRegister;
#endif
}

/*********************************************************************
*
*       FS_IDE_HW_X_SetCommand()
*
  Description:
  FS driver hardware layer function. Set the COMMAND register.

  Parameters:
  Unit        - Unit number.
  Data        - Value to write to the COMMAND register.

  Problems:   When 16 bit memory access is used, this register can only be
              written together with Select card / head register.

  Return value:
  None.
*/

void FS_IDE_HW_X_SetCommand(FS_U8 Unit, unsigned char Data) {
  FS_USE_PARA(Unit);                           /* Only one Unit supported, avoid compiler warning  */
  __IDE_DH_CMD = _HeadRegister | (Data << 8);  /* Command is upper byte of DH_CMD register */
}

/*********************************************************************
*
*       FS_IDE_HW_X_GetStatus()
*
  Description:
  FS driver hardware layer function. Read the STATUS register.

  Parameters:
  Unit        - Unit number.
 
  Return value:
  Value of the STATUS register.
*/

unsigned char FS_IDE_HW_X_GetStatus(FS_U8 Unit) {
  unsigned char data;
  FS_USE_PARA(Unit);         /* Only one Unit supported, avoid compiler warning  */
  data = __IDE_DH_CMD >> 8;  /* Status is upper byte of Head / command register  */
  return data;
}

/*********************************************************************
*
*       FS_IDE_HW_X_SetDevControl()
*
  Description:
  FS driver hardware layer function. Set the DEVICE CONTROL register.

  Parameters:
  Unit        - Unit number.
  Data        - Value to write to the DEVICE CONTROL register.
 
  Return value:
  None.
*/

void FS_IDE_HW_X_SetDevControl(FS_U8 Unit, unsigned char Data) {
  FS_USE_PARA(Unit);   /* Only one Unit supported, avoid compiler warning  */
  __IDE_DC = Data;
}

/*********************************************************************
*
*       FS_IDE_HW_X_GetAltStatus()
*
  Description:
  FS driver hardware layer function. Read the ALTERNATE STATUS register.

  Parameters:
  Unit        - Unit number.
 
  Return value:
  Value of the ALTERNATE STATUS register.
*/

unsigned char FS_IDE_HW_X_GetAltStatus(FS_U8 Unit) {
  unsigned char data;
  FS_USE_PARA(Unit);   /* Only one Unit supported, avoid compiler warning  */
  data = __IDE_DC;
  return data;
}

/*********************************************************************
*
*       FS_IDE_HW_X_DetectStatus()
*
  Description:
  FS driver hardware layer function. Check if the device is present.

  Parameters:
  Unit        - Unit number.
 
  Return value:
  ==0         - Device is connected.
  !=0         - Device has not been found.
*/

char FS_IDE_HW_X_DetectStatus(FS_U8 Unit) {
  unsigned char a;
  unsigned char b;
  if (Unit == 0) {
    FS_IDE_HW_X_SetDevice(Unit, 0xE0);
  } else {
    FS_IDE_HW_X_SetDevice(Unit, 0xF0);
  }
  FS_IDE_HW_X_SetSectorCount(Unit, 0x55);
  FS_IDE_HW_X_SetSectorNo(Unit, 0xaa);
  FS_IDE_HW_X_SetSectorCount(Unit, 0xaa);
  FS_IDE_HW_X_SetSectorNo(Unit, 0x55);
  FS_IDE_HW_X_SetSectorCount(Unit, 0x55);
  FS_IDE_HW_X_SetSectorNo(Unit, 0xaa);
  a = FS_IDE_HW_X_GetSectorCount(Unit);
  b = FS_IDE_HW_X_GetSectorNo(Unit);
  if ((a == 0x55) && (b == 0xaa)) {
    _HW_DevicePresent[Unit] = 1;
  } else {
    _HW_DevicePresent[Unit] = 0;
  }
  return (!_HW_DevicePresent[Unit]);
}

/*********************************************************************
*
*       FS_IDE_HW_X_HWReset()
*
  Description:
  FS driver hardware layer function. This function is called, when 
  the driver detects a new media is present. For ATA HD drives, there 
  is no action required and this function can be empty.
  When using a CF card, you could add a soft reset command.

  Parameters:
  Unit        - Unit number.
 
  Return value:
  None.
*/

void FS_IDE_HW_X_HWReset(FS_U8 Unit) {
  FS_USE_PARA(Unit);   /* Only one Unit supported, avoid compiler warning  */
}

/********************************************************************/

#endif /* FS_USE_IDE_DRIVER */

/****** EOF *********************************************************/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲愉拍自拍另类高清精品| 日韩欧美高清一区| 最新成人av在线| 成人av网站在线观看免费| 国产精品国产三级国产aⅴ中文| 国产 日韩 欧美大片| 国产精品久久久久久久久搜平片 | 欧美激情综合五月色丁香小说| 国产美女在线观看一区| 日韩一区二区三区视频在线 | 五月天中文字幕一区二区| 欧美色窝79yyyycom| 日韩vs国产vs欧美| 精品成人佐山爱一区二区| 高清不卡一区二区| 综合自拍亚洲综合图不卡区| 欧美亚洲免费在线一区| 麻豆91精品视频| 国产女同性恋一区二区| 91蝌蚪国产九色| 日韩av一区二| 中文字幕一区二区不卡| 欧美色综合网站| 国产风韵犹存在线视精品| 亚洲欧美另类综合偷拍| 日韩一区二区麻豆国产| 成人免费视频播放| 亚洲www啪成人一区二区麻豆| 日韩一区和二区| 91在线观看成人| 日本不卡一区二区| 亚洲欧洲在线观看av| 欧美精品一卡两卡| 成人做爰69片免费看网站| 亚洲一区二区三区四区在线观看 | jlzzjlzz亚洲日本少妇| 亚洲人妖av一区二区| 91精品国产色综合久久| 99久久久国产精品| 捆绑调教一区二区三区| 亚洲色图视频网站| 欧美电影免费观看高清完整版在线 | 日韩欧美不卡在线观看视频| 播五月开心婷婷综合| 老司机精品视频在线| 亚洲欧美日韩国产综合在线| 欧美精品一区视频| 欧美疯狂做受xxxx富婆| av成人动漫在线观看| 激情综合网最新| 亚洲电影你懂得| 最新久久zyz资源站| 日韩免费成人网| 欧美亚日韩国产aⅴ精品中极品| 国产麻豆一精品一av一免费| 亚洲成人av中文| 国产精品国模大尺度视频| 欧美精品一区二区三区久久久| 精品视频一区二区不卡| 97精品久久久午夜一区二区三区| 狠狠色丁香婷综合久久| 亚洲成人动漫精品| 国产精品动漫网站| 久久精品夜色噜噜亚洲a∨| 91精品国产乱码| 欧美日韩国产一级| 欧美视频在线不卡| 91国偷自产一区二区使用方法| 不卡大黄网站免费看| 成人免费观看av| 成人精品高清在线| 福利电影一区二区三区| 国产精品羞羞答答xxdd| 激情五月婷婷综合网| 蜜臀久久久久久久| 青青草国产精品亚洲专区无| 亚洲1区2区3区视频| 亚洲超碰97人人做人人爱| 亚洲香肠在线观看| 亚洲成国产人片在线观看| 亚洲国产成人91porn| 午夜欧美视频在线观看 | 欧美电视剧免费观看| 精品久久久久久无| 亚洲精品一区二区三区福利| 久久久欧美精品sm网站| 国产日韩亚洲欧美综合| 亚洲国产精品成人综合色在线婷婷| 国产亚洲成aⅴ人片在线观看| 久久久久久久久伊人| 国产亚洲1区2区3区| 中文字幕制服丝袜成人av| 成人欧美一区二区三区黑人麻豆| 亚洲免费视频成人| 午夜伦理一区二区| 久久国产尿小便嘘嘘尿| 国产剧情一区在线| av激情综合网| 欧美色成人综合| 欧美电影免费观看高清完整版在| 2023国产一二三区日本精品2022| 国产日韩在线不卡| 亚洲老司机在线| 青青国产91久久久久久| 国产成人午夜99999| av一二三不卡影片| 欧美电影一区二区| 久久久久久97三级| 亚洲欧美偷拍三级| 三级不卡在线观看| 成人一区二区三区视频| 91九色最新地址| 精品国产电影一区二区| 一区免费观看视频| 日韩激情中文字幕| 成年人午夜久久久| 在线成人av网站| 国产精品传媒视频| 日本91福利区| 91在线观看美女| 欧美成人精品福利| 亚洲激情在线播放| 国产精品18久久久久久vr| 97久久超碰国产精品电影| 日韩欧美在线观看一区二区三区| 国产精品色眯眯| 日韩av不卡一区二区| 99久久婷婷国产综合精品电影| 69p69国产精品| 亚洲精品第1页| 国产一区在线观看麻豆| 一本色道久久综合狠狠躁的推荐 | 偷拍与自拍一区| 成人一区二区在线观看| 欧美一区二区日韩| 亚洲精品免费在线| 国产成人自拍网| 日韩色在线观看| 亚洲成人自拍一区| 99久久777色| 久久蜜桃一区二区| 久久草av在线| 欧美日韩精品一区视频| 亚洲视频在线一区观看| 国产一区 二区 三区一级| 欧美日韩二区三区| 亚洲精品国产高清久久伦理二区| 国产99一区视频免费| 欧美一区二区三区的| 亚洲国产一区二区在线播放| 成人av电影免费在线播放| 久久久国产一区二区三区四区小说| 亚洲高清免费观看| 在线一区二区三区做爰视频网站| 国产精品麻豆一区二区| 国产一区二区影院| 亚洲精品一线二线三线| 蜜臀a∨国产成人精品| 欧美日韩免费一区二区三区视频| 亚洲男人天堂av网| 97久久超碰精品国产| 国产精品久久久久久福利一牛影视| 国产一二精品视频| 国产亚洲va综合人人澡精品| 国产精品一区二区三区乱码| 欧美精品一区二区三| 激情偷乱视频一区二区三区| 欧美一区二区视频在线观看| 三级欧美在线一区| 56国语精品自产拍在线观看| 午夜精品久久久久久久蜜桃app| 91丝袜国产在线播放| 亚洲精品老司机| 在线精品视频小说1| 亚洲一区二区av在线| 欧美三级日韩在线| 无吗不卡中文字幕| 日韩欧美中文字幕精品| 国产一区激情在线| 国产欧美1区2区3区| 97久久精品人人澡人人爽| 樱桃国产成人精品视频| 欧美日韩免费在线视频| 男男视频亚洲欧美| 久久久99久久| 91视频观看视频| 亚洲国产视频直播| 日韩欧美电影一区| 国产成人免费xxxxxxxx| 亚洲乱码中文字幕| 欧美一区日本一区韩国一区| 国产综合色在线视频区| 国产精品久久久久久亚洲毛片| 在线看不卡av| 久久er精品视频| 中文字幕一区二区三区四区不卡 | 日av在线不卡| 中文字幕欧美激情| 欧美日韩国产高清一区二区| 精品一区二区日韩|