| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2381 人关注过本帖
标题:[原创]一个程序,备份恢复 MBR,DBR,FAT,CMOS
只看楼主 加入收藏
grub2linux
Rank: 1
等 级:新手上路
帖 子:335
专家分:0
注 册:2004-12-25
收藏
得分:0 
眼睛都快争不开了?
什么意思?
熬夜?

有缘相识!我中文系的 3月拿下C/C++/VC 5天写游戏 2月写游戏系统 有空去http://mykool.go2.
2006-07-18 19:06
grub2linux
Rank: 1
等 级:新手上路
帖 子:335
专家分:0
注 册:2004-12-25
收藏
得分:0 

发现这个程序在获取老硬盘参数时的BUG,这个BUG导致读写老硬盘的FAT失败
已更正。

原BUG如下:
cylinder=regs.h.ch+1; /* 寄存器的 CH +1 为柱面数 应该是CL的高2位为高2位,CH的8位为低8位 */
sector=regs.h.cl; /* 寄存器的 CL 为每道扇区数 应该是 CL 的低6位 */

改为:
cylinder=((((unsigned int)regs.h.cl)>>6<<8) | regs.h.ch) + 1;
sector=regs.h.cl & 0x3F;

在取值时,没有用指针甚至一般运算,用高效而好玩的位运算。。

现在读写老硬盘的FAT就可以了。。
如果有老硬盘的,可以试玩试玩,我自己还没有呢。。


[此贴子已经被作者于2006-7-20 20:44:56编辑过]


有缘相识!我中文系的 3月拿下C/C++/VC 5天写游戏 2月写游戏系统 有空去http://mykool.go2.
2006-07-20 17:57
快速回复:[原创]一个程序,备份恢复 MBR,DBR,FAT,CMOS
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.038514 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved