zoukankan      html  css  js  c++  java
  • 写一个简单的磁盘驱动

      写一个简单的IDE磁盘驱动。

      那么多端口,光oranges’上列出来的几个我都晕了。还是先别一头扎进去。“驱动模块”不过是向上(系统)提供读写磁盘的接口函数,向下封装一系列端口操作。闭上眼,想想我们需要磁盘驱动器做什么,再去找相应功能的端口。下面我们就闭上眼:

      1,首先,我们要设定硬盘控制器对扇区的寻址方式,是传统的“柱面/磁头/扇区”,还是所谓的“逻辑扇区”?这就需要设定0X1F6端口的bit6(L位),1表示LBA,0表示CHS。

      我们选择LBA。

      2,无论读写,我们都要告诉硬盘控制器,要操作的硬盘号(一个PC至少能挂4个IDE硬盘呢),起始扇区号,读写的扇区个数。

      我们把硬盘号(0或1)写入0X1F6端口的bit4(DRV位)。

      起始扇区号共28bit,从高到底依次写入0x1f6,0x1f5(LBA HIGH),0x1f4(LBA MID),0x1f3(LBA LOW)。0x1f6端口只拿出来4个bit,放最高4位。

      扇区个数写入0x172h端口(SECTOR COUNT)。

      3,【待续】

  • 相关阅读:
    HNOI2003 消防局的设立
    APIO2007 风铃
    SDOI2006 保安站岗
    消息传递
    [POI2008]STA-Station
    JLOI2015 城池攻占
    BOI2004 sequence
    Monkey King
    APIO2012 Dispatching
    HTML meta 文本 格式排版 链接图表 列表 表单 frame后台布局实例
  • 原文地址:https://www.cnblogs.com/weiweishuo/p/3099346.html
Copyright © 2011-2022 走看看