📄 idereadsector.lst
字号:
C51 COMPILER V7.20 IDEREADSECTOR 05/11/2005 08:41:39 PAGE 1
C51 COMPILER V7.20, COMPILATION OF MODULE IDEREADSECTOR
OBJECT MODULE PLACED IN IDEREADSECTOR.OBJ
COMPILER INVOKED BY: d:\Keil\C51\BIN\C51.EXE IDEREADSECTOR.C BROWSE DEBUG OBJECTEXTEND
line level source
1 #ifndef _IDEIO_DEFINE
2 #include "IDEIO.c"
3 #endif
4
5 BYTE IDEReadSector(DWORD Sector,BYTE *Buffer) small;
*** ERROR C129 IN LINE 5 OF IDEREADSECTOR.C: missing ';' before '.'
*** WARNING C307 IN LINE 5 OF IDEREADSECTOR.C: macro 'IDEReadSector': parameter count mismatch
6
7 BYTE IDEReadSector(DWORD Sector,BYTE *Buffer) small
*** WARNING C307 IN LINE 7 OF IDEREADSECTOR.C: macro 'IDEReadSector': parameter count mismatch
8 {
9 register WORD i;
10
11 if (!IDEStatus(IDE_STATUS_BSY,IDE_WAIT,FALSE,255))
12 return(IDE_ERROR_BSY);
13 if (!IDEStatus(IDE_STATUS_DRDY,IDE_WAIT,TRUE,255))
14 return(IDE_ERROR_DRDY);
15 IDE_WRITE_LSB(IDE_ADDR_CMD_LBA0,(BYTE)(Sector&0x000000ff));
16 Sector=Sector>>8;
17 IDE_WRITE_LSB(IDE_ADDR_CMD_LBA1,(BYTE)(Sector&0x000000ff));
18 Sector=Sector>>8;
19 IDE_WRITE_LSB(IDE_ADDR_CMD_LBA2,(BYTE)(Sector&0x000000ff));
20 Sector=Sector>>8;
21 IDE_WRITE_LSB(IDE_ADDR_CMD_LBA3,0xe0|(IDE.CurrentDevice&0x10)|(BYTE)(Sector&0x0f));
22 IDE_WRITE_LSB(IDE_ADDR_CMD_SECCNT,0x01);
23 IDE_WRITE_LSB(IDE_ADDR_CMD_COMMAND,IDE_CMD_READ);
24 if (!IDEStatus(IDE_STATUS_BSY,IDE_WAIT,FALSE,255)) return(IDE_ERROR_BSY);
25 if (!IDEStatus(IDE_STATUS_DRQ,IDE_WAIT,TRUE,255)) return(IDE_ERROR_DRQ);
26 for(i=0;i<512;)
27 {
28 IDE_READ_WORD(IDE_ADDR_CMD_DATA,Buffer[i++],Buffer[i++]);
29 }
30 return(IDE_SUCCESSFUL);
31 };
C51 COMPILATION COMPLETE. 2 WARNING(S), 1 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -