中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-16 06:32
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » ****压缩分卷!扇区/镜象/扇区读写] 迷你硬盘读写器完工了B 查看 24,896 回复 93
楼 主 ****压缩分卷!扇区/镜象/扇区读写] 迷你硬盘读写器完工了B 发表于 2006-07-08 02:29 ·  中国 广东 广州 教育网
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
UID 7105
性别 男
状态 离线
DOS下迷你硬盘读写器终于完工了!
可读写绝对扇区,支持大硬盘,U盘(需加载驱动),软盘。。
由于代码效率高,速度很快。
初步通过测试。
最后在自己的机子上大胆进行了写测试,即用坏数据写入硬盘,硬盘崩溃后,再用本程序把预先备份的数据恢复到硬盘,结果硬盘完好如初。。

有源码大家玩玩。。。

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

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

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

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

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

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

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

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

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

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

主帖程序更新了!

[ Last edited by GOTOmsdos on 2006-8-8 at 12:14 ]
附件
mydisk.rar (170.57 KiB, 下载附件所需积分 1 点, 下载次数: 339)
2 发表于 2006-07-08 03:26 ·  中国 上海 杨浦区 电信
高级用户
★★
积分 653
发帖 252
注册 2006-04-16 19:48
UID 53939
状态 离线
支持一下GOTOmsdos兄!
3 发表于 2006-07-08 12:18 ·  中国 浙江 台州 椒江区 电信
中级用户
★★
积分 447
发帖 126
注册 2004-02-10 00:00
UID 17150
性别 男
状态 离线
深更半夜发贴子,看来颇费了一番精力,估计就是 C语言和汇编语言结合的 扩展INT13编程吧,好像暂时用不着,不过还是下载看看,支持
从来不用别人的东西,要用,也先改成自己的再说!
4 发表于 2006-07-08 12:32 ·  中国 广东 广州 教育网
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
UID 7105
性别 男
状态 离线
感谢关注,
这几天在弄硬盘读写,DOS和2K/XP的都有,刚全部完工,都在熬夜。。
主要是扩展INT13和基本INT13,INT25,INT26结合。。

由于是命令行方式,所以,如果有程序需要以命令行方式读写硬盘扇区的话,就能用它解决问题了。。

[ Last edited by GOTOmsdos on 2006-7-8 at 12:35 ]
5 发表于 2006-07-08 17:59 ·  中国 河北 唐山 中移铁通
版主
★★★
操作系统爱好者
积分 1,113
发帖 392
注册 2002-11-11 00:00
UID 228
性别 男
状态 离线
支持
DOS之家 http://doshome.com 站长 葛明阳
6 发表于 2006-07-08 18:40 ·  中国 四川 广元 电信
初级用户
积分 55
发帖 22
注册 2006-05-26 19:42
UID 56051
状态 离线
辛苦了,学习一下。
7 发表于 2006-07-08 23:49 ·  中国 广东 广州 教育网
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
UID 7105
性别 男
状态 离线
源码又更新了
8 发表于 2006-07-09 02:03 ·  中国 香港 Cyber_Express通信公司
银牌会员
★★★
阿林
积分 1,410
发帖 497
注册 2004-06-28 00:00
UID 27551
性别 男
来自 九龍,香港
状态 离线
Originally posted by GOTOmsdos at 2006-7-8 02:29 AM:
DOS下迷你硬盘读写器终于完工了!
可读写绝对扇区,支持大硬盘,U盘(需加载驱动),软盘。。
由于代码效率高,速度很快。



支 持 ! 辛 苦 了 gotoMSDOS 兄 熬 夜 編 程 ...

請 問 甚 麼 是 U 盤 ?

有 些 意 見 :

1) 記 得 從 前 玩 Apple]



dolba

Example:

Read to file: dolba r 2 0 254 c:\backup
Write from file: dolba w 2 0 c:\backup


謝 謝 分 享 !

我 的 網 站 - http://optimizr.dyndns.org
9 发表于 2006-07-09 02:16 ·  中国 山东 济宁 联通
钻石会员
★★★★★
积分 10,046
发帖 3,039
注册 2002-11-11 00:00
UID 223
性别 男
状态 离线
回楼上,U盘就是flash drive
简单就是美
10 发表于 2006-07-09 02:33 ·  中国 香港 Cyber_Express通信公司
银牌会员
★★★
阿林
积分 1,410
发帖 497
注册 2004-06-28 00:00
UID 27551
性别 男
来自 九龍,香港
状态 离线
Originally posted by Michael at 2006-7-9 02:16 AM:
回楼上,U盘就是flash drive


謝 謝 , 我 們 這 裡 叫 "手 指" 。
我 的 網 站 - http://optimizr.dyndns.org
11 发表于 2006-07-09 03:32 ·  中国 广东 广州 教育网
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
UID 7105
性别 男
状态 离线
感谢关注
dolba
这样好像不妥当
因为只有 当 w 时 才可 省略 sectorToDo

所以写成两行 才清楚:
dolba r|w driveNum startSector sectorToDo file
dolba w driveNum startSector file

[ Last edited by GOTOmsdos on 2006-7-9 at 03:33 ]
12 发表于 2006-07-09 04:43 ·  中国 上海 电信
金牌会员
★★★★
积分 4,639
发帖 2,239
注册 2005-01-30 00:00
UID 35785
性别 男
状态 离线
下载后测试了一下,就以读取第一个硬盘的主引导扇区为例,过程显示如下:

dolba r 2 0 1 sec0
dolba version 1.0 Copyright (c) 2006 by GOTOmsdos Email: tdaim@sina.com
Read :
Drive 2
Starting sector 0
1 Sectors
To :
File "sec0" ? (Y/N)y

Extended int13 supported.
Press Esc to stop.
100% sectors done.
Done.



没想到读出的不是主引导扇区的内容,也不知道是哪个扇区的。但如果使用 DOS 的缺省环境,即不使用 config.sys 和 autoexec.bat 的内存配置环境下读出的内容却正常。另外,按理做一个扇区的操作应该是很快的事,即便是几个扇区,在现在的机器上也应该在瞬间完成,但我这次读取MBR到文件的测试过程却可以察觉到人可以感觉得到的延迟(在有 config.sys 和 autoexec.bat 的内存配置环境下)。
13 发表于 2006-07-09 13:45 ·  中国 香港 Cyber_Express通信公司
银牌会员
★★★
阿林
积分 1,410
发帖 497
注册 2004-06-28 00:00
UID 27551
性别 男
来自 九龍,香港
状态 离线
Originally posted by GOTOmsdos at 2006-7-9 03:32 AM:
感谢关注
dolba
这样好像不妥当
因为只有 当 w 时 才可 省略 sectorToDo



我 原 意 是 把 參 數 括 起 來 , 沒 括 起 看 得 不 清 楚 , 有 範 例 參 考 比 較 不 易 出 錯 。
我 的 網 站 - http://optimizr.dyndns.org
14 发表于 2006-07-09 17:03 ·  中国 广东 广州 教育网
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
UID 7105
性别 男
状态 离线
TO DOSforever

看了你说的情况,不知道是什么原因,如果你的输入没问题的话,找你说的,跟CONFIG.SYS,AUTOEXEC.BAT有关。
如果这是真的,就有点匪夷所思了,照理说,CONFIG.SYS,AUTOEXEC.BAT配置不可能对硬盘结构造成什么影响(我也一直用着其配置)

不妨把你的造成“影响”的CONFIG.SYS,AUTOEXEC.BAT配置贴出来,看一下。
另,最好重试一下,确认操作输入无误。。

建议烦请您,作个小试验吧:
在同样的CONFIG.SYS,AUTOEXEC.BAT配置下,试一下用其他读写硬盘扇区的工具也作同样的事,看看结果如何?如果此工具成功,而我的程序不成功,那就说明我的程序前考虑了。。


至于速度,
我的机子是733,应该说较老了, 速度非成快,(感觉比SPFDISK,DISKEDIT 还要快一点,可能没有引入 写校验,因为我觉得没必要,况且影响速度)
比如,写一万个扇区,大约只需要2,3秒。10万个扇区大约在半分钟左右。

这几天一直在测试,先用SPFDISK存一遍,然后用我的程序存,然后 FC /B 他们,
都一样。 并进行了好几次写操作,目前没有问题(有几个BUG,已改正了)

其他坛友,如有兴趣,可测试一下读操作。。看结果怎样?
最后,测8.4g外, 就是超过16434494扇区。

刚刚又改进更新了代码。。

[ Last edited by GOTOmsdos on 2006-7-9 at 20:02 ]
15 发表于 2006-07-09 17:08 ·  中国 广东 广州 教育网
铂金会员
★★★★
C++启程者
积分 5,154
发帖 1,827
注册 2003-07-18 00:00
UID 7105
性别 男
状态 离线
Originally posted by johnsonlam at 2006-7-9 01:45 PM:



我 原 意 是 把 參 數 括 起 來 , 沒 括 起 看 得 不 清 楚 , 有 範 例 參 考 比 較 不 易 出 錯 。


可是方括号是表示可选的意思啊!不是表美观的啊。。
论坛跳转: