中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-01 18:39
48,037 主题排行 / 350,122 发帖 / 今日 2 篇 / 48,249 会员排行
DOS开发编程 & 发展交流 (开发室) » 如何使用bios的io直接对硬盘的读写??
可打印版本  1,544 / 8
第1楼 zhgwbzhd 发表于 2006-03-13 21:27
高级用户 发帖 187 积分 506
如何使用bios的io直接对硬盘的读写??
如题,谢谢。
第2楼 darkradx 发表于 2006-03-13 23:01
高级用户 发帖 420 积分 972
ATA Command
BIOS INT13
DOS INTXX

沒聽過BIOS的IO
第3楼 qb45 发表于 2006-03-14 12:19
高级用户 发帖 194 积分 677
用qbasic读写IO端口很简单
OUT是写端口
INP是读端口
不知道楼主会不会用qbasic
第4楼 zhgwbzhd 发表于 2006-03-22 11:56
高级用户 发帖 187 积分 506
弟兄们,int13和dos下的中断,都很简单,我就是为了实现越过联想的保护系统,怎么能写道扇区中。我想我直接对CPU发指令,是不是就可以呀。该怎么弄呢?
ATA Command,怎么弄呀??
第5楼 qb45 发表于 2006-03-22 13:31
高级用户 发帖 194 积分 677
很简单,如果你懂一门编程语言就很简单,不知道你会不会qbasic!
会的话可以看看我写的获得硬盘序列号的帖子,那个程序就直接是用IO端口.

因为BIOS不提供硬盘序列号的服务,所以,必须自己对硬盘的端口比如(&H170......)发出指令,然后读取序列号,注意这个序列号可不是硬盘每个分区的号,有的网友说C盘D盘等等都有序列号,实际上那是卷标号!

通过IO指令来读写硬盘的好处是:可以越过BIOS提供的服务,所以能破还原类软件,在486的老电脑上都能读写不大于137GB的硬盘!
当然,更重要的用途还不在于此,有很多硬盘专用的命令都必须通过IO指令来实现,比如写负道,把坏扇区加入G表等等
所有强大的硬盘修复软件都是用IO指令,比如我们熟知的PC3000,MHDD等等.

建议你学会一门编程语言,C语言是最好的选择!尽管我不会C语言,只会qbasic!
第6楼 zhgwbzhd 发表于 2006-03-22 14:48
高级用户 发帖 187 积分 506
实话说,C语言还凑合。或者说直接使用汇编也能勉强。
我先找找你的帖子,看看。谢谢qb45。
顺便问一下,programfan中的qb斑竹是不是就是你呀。名字一样呀。
第7楼 zhgwbzhd 发表于 2006-03-22 15:35
高级用户 发帖 187 积分 506
qb45:没有找到你的帖子呀,我以前也看到了你的关于还原卡的帖子,可是使用之后,没有还原卡是没问题的,可是安装上还原卡就不行了。怎么办呀?
第8楼 zjnbwdj 发表于 2006-03-23 11:58
中级用户 发帖 137 积分 300
为什么不取名为QB71呢,不是有7.1版了么?
第9楼 gmy 发表于 2006-03-27 15:59
版主 发帖 392 积分 1,113
如果仅是写硬盘隐藏扇区,HDSECT就足够了(超级急救盘 里有)
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023