![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-01 22:55 |
共 48,037 主题排行 / 350,122 发帖 / 今日 2 篇 / 48,250 会员排行 |
| DOS开发编程 & 发展交流 (开发室) » 是不是不能连用两个扩展13中断读写功能(用来实现硬盘对拷 |
| 可打印版本 1,418 / 0 |
| 第1楼 GOTOmsdos | 发表于 2006-07-22 14:56 |
| 铂金会员 发帖 1,827 积分 5,154 | |
|
是不是不能连用两个扩展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; } |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |