中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » 是不是不能连用两个扩展13中断读写功能(用来实现硬盘对拷
作者:
标题: 是不是不能连用两个扩展13中断读写功能(用来实现硬盘对拷 上一主题 | 下一主题
GOTOmsdos
铂金会员

C++启程者


积分 5154
发帖 1827
注册 2003-7-18
状态 离线
『楼 主』:  是不是不能连用两个扩展13中断读写功能(用来实现硬盘对拷

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


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

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

extint13()函数没有问题。

主要代码如下:
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;
}

2006-7-22 14:56
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: