| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 679 人关注过本帖
标题:是不是不能连用两个扩展13中断读写功能 ??(用来实现硬盘对拷)
取消只看楼主 加入收藏
grub2linux
Rank: 1
等 级:新手上路
帖 子:335
专家分:0
注 册:2004-12-25
收藏
 问题点数:0 回复次数:2 
是不是不能连用两个扩展13中断读写功能 ??(用来实现硬盘对拷)

写了个扇区到文件,文件到扇区的读写程序。(只用了一个扩展13中断(或是读或是写))

想增加 硬盘到硬盘的扇区读写,遇到了难题:
(不知道谁了解这方面的技术?)

连用两个扩展13中断(一个读,一个写),但读写出的结果是不正确的扇区:

主要代码如下:
while(...)
{
extint13(0x42,130,startSector,doSector,pBuffer); /* 读第三个硬盘 */

extint13(0x43,131,startSector,doSector,pBuffer); /* 写到第四个硬盘 */

startSector += doSector;
}

************************************

怀疑是pBuffer, 就加了全局变量 复制一下 pBuffer数据,也没用:
unsigned char to[...];
...

while(...)
{
extint13(0x42,130,startSector,doSector,pBuffer);

memcpy(to,pBuffer,doSector*512);

extint13(0x43,131,startSector,doSector,to);

startSector += doSector;
}

程序逻辑和数据等都没有问题,唯一的不同就是连用了两个扩展13中断读写功能。。

******************************

原来的文件到扇区的方式就没问题,如下:

while(...)
{
fread(pBuffer,doSector*512,1,f); /* 读原先备份出的扇区镜象文件 */

extint13(0x43,131,startSector,doSector,pBuffer); /* 写到第四个硬盘 */

startSector+=doSector;
}

搜索更多相关主题的帖子: 硬盘 doSector startSector pBuffer 
2006-07-22 14:29
grub2linux
Rank: 1
等 级:新手上路
帖 子:335
专家分:0
注 册:2004-12-25
收藏
得分:0 
哦。已经写明是纯DOS程序,自然要运行在纯DOS下的。(如一定要在WIN运行,我也写了2K/XP的版本)
编译最好要在TC2/TC3/BC31下,WIN-TC可能也行,但C-FREE,我就不清楚了。。
用VC不行,VC不能编译纯DOS程序。

有缘相识!我中文系的 3月拿下C/C++/VC 5天写游戏 2月写游戏系统 有空去http://mykool.go2.
2006-07-22 17:23
grub2linux
Rank: 1
等 级:新手上路
帖 子:335
专家分:0
注 册:2004-12-25
收藏
得分:0 
学C不懂DOS,那就有点遗憾了。。
有些底层硬件操作在WIN是运行不了的。 GHOST一般要在纯DOS下执行的。。

有缘相识!我中文系的 3月拿下C/C++/VC 5天写游戏 2月写游戏系统 有空去http://mykool.go2.
2006-07-22 20:54
快速回复:是不是不能连用两个扩展13中断读写功能 ??(用来实现硬盘对拷)
数据加载中...
 
   



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

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