我正在编写一个有趣的操作系统,我正在尝试编写一个 PATA/IDE 驱动程序来访问磁盘,但是它不起作用。我有这行unsigned char status = port_byte_in(ATAPort + COMMANDPORT);
返回 88(十进制)的值。由于这可能表明我做错了什么,并且作为其他人的参考,PATA/IDE 状态代码是什么?
我的驱动程序遵循28 位 PIO PATA/IDE 进程。
编辑-澄清一下,这是port_byte_in
功能:
unsigned char port_byte_in(unsigned short port) {
unsigned char result;
__asm__("in %%dx, %%al" : "=a" (result) : "d" (port));
return result;
}
并且ATAPort
是0x1F0
, COMMANDPORT
=0x07