📄 _idewritesector.lst
字号:
C51 COMPILER V7.20 _IDEWRITESECTOR 05/13/2005 16:29:39 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 ..\IDEIO.C51\_IDEWRITESECTOR.C BROWSE DEBUG OBJECTEXTEND PRINT(.\_IDEWRITES
-ECTOR.lst) OBJECT(.\_IDEWRITESECTOR.obj)
line level source
1 #ifndef _IDEIO_DEFINE
2 #include "IDEIO.c"
3 #endif
4
5 BYTE _IDEWriteSector(void);
6
7 BYTE _IDEWriteSector(void)
8 {
9 1 register BYTE *sector;
10 1 register WORD i;
11 1
12 1 sector=(BYTE *)&IDE.CurrentSector;
13 1
14 1 if (!IDEStatus(IDE_STATUS_BSY,IDE_WAIT,FALSE,255)) return(IDE_ERROR_BSY);
15 1 if (!IDEStatus(IDE_STATUS_DRDY,IDE_WAIT,TRUE,255)) return(IDE_ERROR_DRDY);
16 1 IDE_WRITE_LSB(IDE_ADDR_CMD_LBA0,sector[3]);
17 1 IDE_WRITE_LSB(IDE_ADDR_CMD_LBA1,sector[2]);
18 1 IDE_WRITE_LSB(IDE_ADDR_CMD_LBA2,sector[1]);
19 1 IDE_WRITE_LSB(IDE_ADDR_CMD_LBA3,0xe0|IDE.CurrentDevice|(sector[0]&0x0f));
20 1 IDE_WRITE_LSB(IDE_ADDR_CMD_SECCNT,0x01);
21 1 IDE_WRITE_LSB(IDE_ADDR_CMD_COMMAND,IDE_CMD_WRITE);
22 1 if (!IDEStatus(IDE_STATUS_BSY,IDE_WAIT,FALSE,255)) return(IDE_ERROR_BSY);
23 1 if (!IDEStatus(IDE_STATUS_DRQ,IDE_WAIT,TRUE,255)) return(IDE_ERROR_DRQ);
24 1 for(i=0;i<512;)
25 1 {
26 2 IDE_WRITE_WORD(IDE_ADDR_CMD_DATA,DiskBuffer[i++],DiskBuffer[i++]);
27 2 }
28 1 return(0);
29 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 216 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- 3
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -