好吧,以下是此程序的部分源代码:
程序初始化部分(PASCAL源代码):
program findcd;
const
env: arrayof Char='CDROM=c:'; <- 准备环境变量
var
drvs: array of Char; <- 光驱字符列表
envp: PChar;
查找光驱子程序(汇编源代码):
procedure setdrv; assembler;
asm mov bx,0
mov ax,1500h
int 2fh <- 调用中断取得光驱状态
cmp bx,1 <- 检查光驱是否安装
jc @@m <- 若无,退出子程序
push bx
push ds
pop es
mov bx,offset drvs
mov ax,150Dh
int 2Fh
pop cx
@@l: add byte ptr ,'A'
inc bx
loop @@l
mov byte ptr ,0
@@m:
end;
添加环境变量子程序(汇编源代码,略);
主调用程序(PASCAL源代码):
begin
setdrv; <- 调用查找光驱子程序;
if ord(drvs)=0 then <- 若无光驱,显示“No CD-ROM found”;
WriteLn('No CD-ROM found.'

else begin
env:=drvs; <- 若存在光驱,将第一个光驱字母加入环境变量CDROM;
WriteLn(env); <- 在屏幕上显示“CDROM=x:”;
if not InsertEnvVar <- 调用添加环境变量子程序;
then WriteLn('Cannot set environment variable!'

; <- 若无法加入环境变量,显示错误;
exit;
end;
end. <- 程序结束。
Wengier - 新DOS时代
欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/
E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)
