📄 ide_drv.h
字号:
#ifndef _IDEIO_DRV_H_
#define _IDEIO_DRV_H_
#include "config.h" /* system configuration */
#include <absacc.h>
#define FILE0 XBYTE[0x7010] //硬盘数据寄存器
#define FILE1 XBYTE[0x7011] //错误/特征寄存器
#define FILE2 XBYTE[0x7012] //扇区数寄存器
#define FILE3 XBYTE[0x7013] //扇区号寄存器
#define FILE4 XBYTE[0x7014] //柱面号寄存器L
#define FILE5 XBYTE[0x7015] //柱面号寄存器H
#define FILE6 XBYTE[0x7016] //驱动器/磁头寄存器
#define FILE7 XBYTE[0x7017] //状态/命令寄存器
/*------------------------------------*/
/* 7 6 5 4 3 2 1 0 */
/*------------------------------------*/
/*|BSY|DRDY|DMAR|DSC|DRQ|CORR|IDX|ERR|*/
/*------------------------------------*/
/*定义光驱状态寄存器各位*/
sbit BSY = ACC^7;
sbit DRDY = ACC^6;
sbit DRQ = ACC^3;
sbit ERR = ACC^0;
sbit ILT = ACC^0;
/************************************************************
* D7 D6 D5 D4 D3 D2 D1 D0 *
BSY DRDY DWF DSC DRQ CORR IDX ERR *
BSY:驱动器忙; *
DRDY:驱动器准备好; *
DWF:驱动器写失败; *
DSC:寻道结束; *
DRQ:请求服务,驱动器希望通过数据寄存器与CPU交换一字节数据;*
CORR:当可以纠正的读错误发生时,该位置1,数据传输将继续进行 *
IDX:收到综引信号; *
ERR:命令执行出错。 *
*************************************************************/
sbit ARST = P5^0;
sbit INTQ = P3^2;
void HardDiskSleep(void);
bit hdd_install(void);
bit hdd_uninstall(void);
Byte hdd_read_byte(void);
bit hdd_read_open(Uint32);
bit hdd_read_close(void);
bit hdd_write_byte(Byte);
bit hdd_write_open(Uint32);
bit hdd_write_close(void);
Uint32 hdd_read_long_big_endian(void);
bit hdd_read_one_sector(Uint32);
bit hdd_write_one_sector(Uint32);
#endif /* _IDEIO_DRV_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -