无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 7289|回复: 7
打印 上一主题 下一主题

[自写]****压缩分卷!扇区到扇区读写 迷你硬盘读写器完工了!

[复制链接]
跳转到指定楼层
1#
发表于 2006-8-6 21:19:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
****压缩分卷!扇区到扇区读写] 迷你硬盘读写器完工了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

程序源码和可执行

2#
发表于 2006-8-6 21:39:25 | 只看该作者
如果可以像ghost那样不处理没有文件的的数据多好。。。

btw:其实ghost也可以扇区拷贝的。。运行的时候加个参数就可以了
回复

使用道具 举报

3#
 楼主| 发表于 2006-8-6 22:32:23 | 只看该作者
不处理没有文件的的数据,非常复杂。不过,从数据恢复来说,是不好的,因为,有时硬盘被破坏了以后,只能从扇区方式来恢复一些数据的
回复

使用道具 举报

4#
 楼主| 发表于 2006-8-6 22:33:08 | 只看该作者
刚才代码有有个小错误: CASE :

改过来重传了
回复

使用道具 举报

5#
发表于 2006-8-7 10:29:41 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

6#
 楼主| 发表于 2006-8-7 12:43:07 | 只看该作者
大多数硬盘工具都不能在WIN用的
回复

使用道具 举报

7#
发表于 2007-7-15 17:39:29 | 只看该作者
zhichizhichizhichi
回复

使用道具 举报

8#
发表于 2015-7-21 08:33:20 来自手机 | 只看该作者
看了介绍,好强,下载试用
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-17 08:39

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表