无忧启动论坛

标题: [自写]****压缩分卷!扇区到扇区读写 迷你硬盘读写器完工了! [打印本页]

作者: gotomsdos    时间: 2006-8-6 21:19
标题: [自写]****压缩分卷!扇区到扇区读写 迷你硬盘读写器完工了!
****压缩分卷!扇区到扇区读写] 迷你硬盘读写器完工了B tabi

DOS下迷你硬盘读写器终于完工了!
可读写绝对扇区,支持大硬盘,U盘(需加载驱动),软盘。。
由于代码效率高,速度很快。
初步通过测试。
最后在自己的机子上大胆进行了写测试,即用坏数据写入硬盘,硬盘崩溃后,再用本程序把预先备份的数据恢复到硬盘,结果硬盘完好如初。。

有源码大家玩玩。。。

对不起:第一次传错了可执行文件,现在重传了。。
刚加了如果读写出错,给原因的提示
换成了 C 的注释,这样,不用TC3(BC31),TC2就可编译了
刚解决了基本INT13不出现出错提示的BUG..
除了考虑到能读写2048GB,没有加入起始扇区和要处理的扇区参数的对误输入负数的检测外(,否则的话,只能读写1024GB左右了.)对其他几个输入参数都进行了检测..

考虑 DOSFOREVER 的中肯意见
今天 加了 如果 不支持扩展13中断,就先获取硬盘本身的参数来显示出来,调用基本13中断以其参数CHS值来读写,这样就兼容了 非 磁头255,扇区63 的硬盘(也就是很老的硬盘),这样程序的兼容性就很强了。。

也加入了读写 "非1.44mb"软盘的功能,  说明见主帖。。。

另,即使支持扩展,也根据扩展48号功能,获取硬盘参数,显示出来。
显示出硬盘参数,能让用户心中有数。。。

另,把扩展13的读写缓冲增为100扇区的字节数,这样速度就更快了!
(不能再超过了,否则,就超过了文件读写的最大数了)

程序到此 ,基本告一段落了。。。
需要在扩展程序功能的,可在程序上再加上去吧。。

欢迎大家下载玩玩。。。
希望对有兴趣的有点帮助。。

***********************************
%%%%%%%%%%%%%%%%%%%%%%%%%%%

已成功加入了压缩和分卷功能!并采用LINUX帮助风格。。。

初步通过了测试!欢迎试玩!。。


¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥

遇到问题的片段:

¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥¥

刚成功地解决了 压缩引擎问题,下一步就是嵌入到我的程序中实现压缩功能了!
这几天,在国外的网上遨游,下了不下几十套源码!在几百个文件中穿梭!
终于找到了我要的!解决了我的问题
就是 zlib !

简要的过程如下:
1
试了,简单古老的

LZ, LZW,HUFFMAN,LZHUF,LZSS,LZHARC, LZ77,LZARI,LZRW1等等,都不理想,太老,效率太低,只能用来教学。。
2
看了 ARJ/UNARJ,有很多我不要的功能。。
3
曾定在 GZIP(BZIP2,基本差不多),很不错,也觉得有点适合我,压缩比和速度都很好,还有1-9的压缩比选项。。钻研了几天,发现没有内存压缩,只有文件压缩,。。。
4
看到一个提示: zlib 支持内存压缩!
确定它了!
(ZLIB和GZIP,PNG都采用相同的引擎:基于LZ77和HUFFMAN的结合,当然和前面提到的古老原始的版本是不可同日而语的)


在此过程中,与DDCOPY作者李治联系了。取得了DDCOPY源么,对我有启发。。
不过,试了DDCOPY的压缩,不太理想,豪时长,压缩比低。因为他采用的压缩/解压的类较简单,就两个文件(用简单的LZSS,胡颖卓编写的类,后来我也在网上看到了)

将要采用的压缩引擎是先进的最新版的 zlib-1.2.3 库(与GZIP,PNG图象用的同一个引擎),
压缩比和压缩速度很快,解压速度更快的离谱!
在WIN32 控制台程序中,压缩50MB,大约要20秒,压为了25MB。
解压只要大约3秒! 我靠!
还有 压缩比的1-9选项(类似GHOST)。。。

完全解决拉!
已经成功放入纯DOS程序中,被调用,运行结果正确!

并且,令人激动的是:所采用的 ZLIB库的表现相当棒!
刚才,测试结果:

压缩备份:
压缩1000000个扇区(500MB),采用6级(最高9级)就能压为312MB !
(如用9级,大约能压到 250-280之间!)
而且用时仅12分钟!大约一秒钟1MB!(跟GHOST速度差不多!)
而且是读一个很老的2GB的硬盘!

(注意:由于GHOST不处理没有文件的的数据,所以,在备份分区时,所化的总时间自然就很少了。毕竟他不是整个扇区的全真备份。我的程序是的)

解压还原:
解压就快的离谱拉!
把压缩的景象文件(原500MB)解压后还原到硬盘上,大约1分钟左右!
简直不敢相信!这个ZLIB 的解压作者是 Mark Adler,真是牛!
他好象也美国火星计划的研究人员。。


现正在整理程序。进入最后阶段。。。

大概两三天能出来。。。

(DDCOPY 作者李治帮过我,由于我的程序采用了高效的压缩/解压库,出与感谢,我会把我的程序寄给他,希望在更加优越的压缩/解压方面,供他借鉴。。我会很高兴。。)



%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
将要添加如下功能:
1
支持古董级硬盘(不支持扩展INT13)的压缩分卷
2
主分区的读写(此功能,只有C有实用意义,因为,一般用户都把很多盘弄成了扩展分区的逻辑驱动器了)

[ 本帖最后由 gotomsdos 于 2006-8-6 10:20 PM 编辑 ]

mydisk.rar

170.57 KB, 下载次数: 333, 下载积分: 无忧币 -2

程序源码和可执行


作者: strongchen    时间: 2006-8-6 21:39
如果可以像ghost那样不处理没有文件的的数据多好。。。

btw:其实ghost也可以扇区拷贝的。。运行的时候加个参数就可以了
作者: gotomsdos    时间: 2006-8-6 22:32
不处理没有文件的的数据,非常复杂。不过,从数据恢复来说,是不好的,因为,有时硬盘被破坏了以后,只能从扇区方式来恢复一些数据的
作者: gotomsdos    时间: 2006-8-6 22:33
刚才代码有有个小错误: CASE :

改过来重传了
作者: king8462    时间: 2006-8-7 10:29
提示: 作者被禁止或删除 内容自动屏蔽
作者: gotomsdos    时间: 2006-8-7 12:43
大多数硬盘工具都不能在WIN用的
作者: duckzyf    时间: 2007-7-15 17:39
zhichizhichizhichi
作者: asqw101451    时间: 2015-7-21 08:33
看了介绍,好强,下载试用




欢迎光临 无忧启动论坛 (http://wuyou.net./) Powered by Discuz! X3.3