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