回 帖 发 新 帖 刷新版面

主题:怎样在qb中使用光驱

[em18][em18][em18]

回复列表 (共7个回复)

沙发

去看一下DOS的中断

板凳

1 挂上万能光驱驱动 2 用出错陷阱找出最后一个盘符 3,爱咋用咋用吧......

3 楼


判断光驱是否装入的BASIC源程序
启动时请加参数—如QB/L

'$INCLUDE: 'qb.bi'
DIM SHARED ax, bx, cx, dx
PRINT "光驱的盘幅为"; disk$

FUNCTION disk$
'根据中断返回 判断光区盘符
DIM d$(25)
d$(0) = "A:": d$(1) = "B:": d$(2) = "C:": d$(3) = "D:": d$(4) = "E:": d$(5) = "F:"
d$(6) = "G:": d$(7) = "H:": d$(8) = "I:": d$(9) = "J:": d$(10) = "K:": d$(11) = "L:"
ax = &H1500
int2f
IF bx = 0 THEN PRINT "没有找到光驱 --No CDRom" ELSE disk$ = d$(cx)
END FUNCTION

SUB int2f
'INT2F中断调用
DIM Reg AS regtypex
Reg.ax = ax
Reg.bx = bx
Reg.cx = cx
Reg.dx = dx
Reg.flags = flags
INTERRUPTX &H2F, Reg, Reg
ax = Reg.ax
bx = Reg.bx
cx = Reg.cx
dx = Reg.dx
flags = Reg.flags
END SUB

4 楼

DIM Reg AS regtypex是什么意思

5 楼

简单地说,如果必须用光盘盘符的话,可以考虑将光盘盘符作为一个启动参数,比如说是“F”,可以这样启动程序:
xxxx f

6 楼

第 4 楼   

DIM Reg AS regtypex是什么意思
回答:相关的中断调用的用法请你看看置顶的帖子!


附:
2F中断中光区的相应功能
入口
AH = 15H
返回
BX=0 没有光驱
CX=光区号  0A1B2C.....

7 楼

再次建议你别再这个论坛里问这些问题,如果你真的想知道这些很实际的应用,请到WWW.DOSQB.COM,它是个专门讨论用QBASIC做实际开发的论坛,而这个论坛只是大家来问问题目,请教个语句,找个答案的地方!

希望你以后别再发这种帖子了!不然的话,删除勿论!!!!!!

判断光驱是否装入的源程序(改进板)

'$INCLUDE: 'qb.bi'
DIM SHARED ax, bx, cx, dx
PRINT "光驱的盘幅为"; disk$

FUNCTION disk$
ax = &H1500
int2f
IF bx = 0 THEN PRINT "没有找到光驱 --No CDRom" ELSE disk$ = CHR$(cx + 65)
END FUNCTION

SUB int2f
DIM Reg AS regtypex
Reg.ax = ax
Reg.bx = bx
Reg.cx = cx
Reg.dx = dx
Reg.flags = flags
INTERRUPTX &H2F, Reg, Reg
ax = Reg.ax
bx = Reg.bx
cx = Reg.cx
dx = Reg.dx
flags = Reg.flags
END SUB

我来回复

您尚未登录,请登录后再回复。点此登录或注册