写了个扇区到文件,文件到扇区的读写程序。(只用了一个扩展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;
}