主题:求QB获得硬盘容量源代码
dosdosfans
[专家分:0] 发布于 2010-09-24 12:45:00
在网上了许久也没有找到相关的资料,因些只有求大家了。下面代码中Case 8是取得硬盘参数的代码,但我不知怎么作,希望知道的大侠有指点一二,谢谢。
SUB Xint13 (M%, HdNum%, StartNum AS DOUBLE, BlockNum%, buff$)
ax% = 0: bx% = 1: cx% = 2: dx% = 3: bp% = 4
si% = 5: di% = 6: flags% = 7: ds% = 8: es% = 9
'IF LEN(Buff$) < 512 THEN Buff$ = SPACE$(512)
DIM reg%(9)
SELECT CASE M%
CASE 2
dat$ = STRING$(BlockNum% * 512, 0)
reg%(ax%) = &H4200
CASE 3
dat$ = buff$
reg%(ax%) = &H4300
CASE 8
reg%(ax%) = &H4800
reg%(ds%) = SSEG(buff$)
reg%(si%) = SADD(buff$)
reg%(dx%) = HdNum%
CALL INT86XOLD(&H13, reg%(), reg%())
EXIT SUB
END SELECT
DatSegment% = SSEG(dat$)
DatOffset% = SADD(dat$)
dap$ = CHR$(&H10) + CHR$(0) + MKI$(BlockNum%) + MKI$(DatOffset%) + MKI$(DatSegment%) + MKL$(StartNum) + MKL$(0)
reg%(ds%) = SSEG(dap$)
reg%(si%) = SADD(dap$)
reg%(dx%) = HdNum%
CALL INT86XOLD(&H13, reg%(), reg%())
buff$ = dat$
END SUB
最后更新于:2010-09-24 12:48:00
回复列表 (共7个回复)
沙发
sunxiao981220 [专家分:0] 发布于 2010-09-24 20:15:00
楼主同情你,好难!
~~~~(>_<)~~~~
板凳
dosdosfans [专家分:0] 发布于 2010-09-24 22:22:00
是啊,真的好难啊,没有一位高手指点,看来都在瘟斗死里玩呢。
3 楼
淘宝商盟 [专家分:30] 发布于 2010-09-29 20:33:00
寻找中国的最优秀的网商领袖精英
当今世界正经历着全球经济一体化的大潮,中国本土企业也因此面临着前所未有的机遇与挑战。
在这场洗礼中,哪些互联网平台有能力成为世界级的电子商务平台?网商精英要怎样做,才能最终成长为世界级网商精英领袖?
淘宝商盟平台震撼登场,携手淘宝30万商家联盟购物商城。
平台刚刚启动,互联网的网商精英请咨询qq: 908889846
占领市场第一先机,合力打造网商系统!
淘宝商盟官网 www.taobaosm.com
http://blog.sina.com.cn/tbsm8
淘宝商盟奖励制度
4 楼
dosdosfans [专家分:0] 发布于 2010-09-30 02:29:00
怎么就没一个人出来说句话,给指点一下呢?遗憾
5 楼
baslast [专家分:60] 发布于 2010-10-04 17:32:00
与其问别人,不如自己研究。
Quick BASIC是DOS下的编程软件,现在都是用win平台了。
你说的这个硬盘容量,其实就是要知道INT13 的用法就可以了。
你想用QB做硬盘程序,你自己不研究一下INT13的功能,光靠别人给现成的,我看很难走远。
我给你个思路,自己去研究一下。
相关资料
在BIOS提供的中断中,INT13是提供磁盘服务的。
原始的INT13调用如下:
AH是功能,AL是扇区数量
CH,CL=磁道,扇区号
DH,DL=磁头号,驱动器号
ES:BX=数据缓冲地址。
功能2是读,3是写
这是《IBM-PC汇编语言程序设计》清华大学出版社1991年版的书中查到的资料.
如果你会简单的用用DEBUG
可以写这样的代码
MOV AX,201
MOV BX,200
MOV CX,1
MOV DX,80
INT13
然后你运行它,第一个硬盘的第一个扇区就被读入到地址200中了。
MOV AX,201 AH是AX的高位,等于2 AL是AX的低位等于01
这句的意思是AH=2,就是读磁盘, AL=1就是读一个扇区
MOV BX,200,把数据读到地址200中
MOV CX,1 就是0道1扇区
MOV DX,80 第一个硬盘编号从80H开始,依次为81.82.。。。。。
所以你还得学习硬盘相关的东西,不可能只简单的用用就能做出好东东的。
在qb中有几个语句可以实现中断和其相关的调用
SSEG,获得数据的段地址
SADD,获得数据的偏移地址
INT86XOLD,调用中断
如果你已经懂得了上面的意思,用QB来写程序就很简单了,qb只是工具,要做硬盘程序,你得学习编程以外的知识。
我把你发的程序复制过来,你对应上面的看,就明白了。
buff$ = SPACE$(512) '设置磁盘缓冲区,这个值为512个空白字符,这是程序编写者预先开辟的一个数据缓冲区。
bx = SADD(buff$) '获得缓冲区的偏移地址,读出扇区的数据都放在Buff里面了。
es = VARSEG(buff$) '获得缓冲区的段址
ax = &H201 对应上面说的
cx = 1
dx = &H80
int13 ' 调用13号中断
下面再来讲一下你问的硬盘容量
刚刚所说的INT13功能,只是为了让你了解一下怎么引用资料来编程。实际上这个资料现在都用不上了,为什么呢?因为现在的硬盘都是几百G、上千G,你就是把CX,DX中的值设置最大,也只能读8G左右的数据,所以硬盘厂家对INT13功能进行了扩展。其中AH如果等于48,就是获取硬盘的容量,就像你发的程序中,AX=4800就这个意思。再具体的你就要到网络上查找扩展INT13的资料,自己去研究一下。这个东西光靠问,我看是问不出什么结果的。
6 楼
baslast [专家分:60] 发布于 2010-10-08 08:24:00
给你一个链接
http://www.tzwr.com/fix/Bcxg_58_2.htm
内容简介:
第一部分 简 介一. 硬盘结构简介 1. 硬盘参数释疑 到目前为止, 人们常说的硬盘参数还是古老的 CHS (Cylinder/Head/Sector)参数. 那么为什么要使用这些参数, 它们的意义是什么?它们的取值范围是什么? ...
8) 取得驱动器参数
入口:
AH = 48h
DL = 驱动器号
DS:DI = 返回数据缓冲区地址
返回:
CF = 0, AH = 0 成功
DS:DI 驱动器参数数据包地址, (参见前面的文章)
CF = 1, AH = 错误码
这个调用返回指定驱动器的参数
7 楼
新时代天意元亨 [专家分:0] 发布于 2010-10-19 22:09:00
新时代元亨 新时代天意系统元亨QQ 919169870 新时代直销元亨QQ 919169870 新时代天意
新时代天意系统更多资料
http://blog.sina.com.cn/xsd9
《天意系统》是某个公司系统;是所有合法直销公司的系统!是天下系统的集大成者!他不仅有自己的‘教育’体系,及排点布局方法;还给每个会员赠送了独立的会员平台,空中市场开发工具…… 重要的是:“她破译了直销的奖金制度!!!揭开了新一轮伟大的经济革命;从此,倾国倾城的‘类直销’踏着她那轻盈而曼妙的脚步来到您的身边……工具的革命带来新一轮的财富分配,针对某个行业的跨越性突破革新同样带来行业性新一轮的财富分配,天意破译了直销的奖金制度,其意义犹在前二者之上……”
网络倍增的“奥秘”已是人人皆知,但,“找人”难已是无法逾越的“鸿沟”!, 每一个直销人都梦想着拥有自己的活跃团队和庞大消费群体,从而实现超凡的财富管道。然而,十几年的直销历程能梦想成真的又有几人?直销难民中不乏很多优秀的有志之士,我们也都努力过,奋斗过,拼搏过。但风雨过后彩虹却始终没有出现!
其实在直销这个行业里:公司和产品只不过是一种“道具”,而团队和系统才是最终和关键!有了庞大而活跃的团队,自然就有业绩,有了业绩在任何公司其实都能赚到钱。今天的“天意系统”就是专门帮你快速组建团队的成功系统,假如您能放下固有的观念,静下心来认真读懂天意系统的运作机理,相信您会“惊喜不已”。
“天意系统”即不是公司,不是产品,也不是团队。它只是网络界一种超级独特的“运作模式”。它用最有效的方法帮你迅速组建起庞大的团队,确保成功达到利润最大化。而传统的直销是各自为战、孤立无援:报单后、买产品、用出感觉、马上分享,还要学习很多产品知识,产品示范,课程激励,然后你就要自己疯狂的去“找人”,可我们往往是推荐了一批,一批人进来了,另一批人睡着了,推动了一批,又倒下了一堆,最后人际关系枯竭,事业无法向前发展了。这时多数人只好宣告失败了.所以,如何能组建一支有活力的团队才是这个事业的重中之重!才有可能真正实现自己心中的希望和梦想。
天意系统破译直销方案
天意系统的核心点:1、全球一条线原则,2、零存整取原则。
1、全球一条线原则:
凡是通过“天意系统”注册的会员,不论是谁推荐的,也不管你推荐了多少,一律打乱推荐关系,按照报单时间先后顺序一条线深度排网,如:你今天通过天意系统注册成为新时代公司的会员.在全球凡是比你晚注册的会员都有可能排在你的后面,这样你在新时代公司会员后台的网络里面就会有一条自律式发展的团队了,而且会无限延伸。当然,一条线即使再大在直销公司里也是不赚钱的,那么如何能有更多条线呢?请看:
1,当你在21天内直接推荐2人,或三个月内直接推荐4人,你就成为本系统“一星会员”;这时你的小区新增人数达到5人时,系统开始为你开:第2条全球线!
2,当你再一次在21天内推荐2个人,或三个月内直接推荐4人,你就成为本系统的“二星会员”;这时你的小区新增人数达到81人时,系统为你开:第3条全线!
3,其他4---10条线依此类推,系统最多可帮你开10条线。
4,但报单一个月内,你没有推荐一个朋友,你的天意系统点位就作废了,但新进代公司点位仍然有效,可以做传统新时代直销。
就是说你只需要推荐2个愿意在新时代公司办卡成为会员的朋友,系统就会自动帮您打造您的第二条线,这就是帮你快速组建团队的“天意系统”,今后你所有的团队都是天意系统在帮你打造,都是按全球一条线排网,所以,当你得到这个信息后:每当误一分钟都不知道会有多少人先你而至了。好像有点“匪夷所思”,但我刚做了4天,介绍两个朋友,系统就已经开始为我打造第二条线了。就这么简单。
二,零存整取原则:全球一条线,打乱了推荐关系;零存整取原则,严格遵守推荐关系;用双轨图来统计我们为“全球一条线原则”做出多少贡献,用来作为回馈你的付出依据。
对于第二个原则可能会有些抽象,需要你静下心来认真完整的看完整个资料看一看我们即将运作的“新时代”的奖金制度视频,假如您看完后还是不很理解,欢迎您与我语音交流。
新时代元亨 新时代 天意系统元亨QQ 919169870 新时代直销元亨QQ 919169870 新时代天意 代新时官网
我来回复