中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS学习入门 & 精彩文章 (教学室) » 版主在否?进来解决FINDCD问题~~~
« [1] [2] »
作者:
标题: 版主在否?进来解决FINDCD问题~~~ 上一主题 | 下一主题
雨浪飘零
中级用户




积分 364
发帖 95
注册 2003-6-15
状态 离线
『楼 主』:  版主在否?进来解决FINDCD问题~~~

多光驱问题~~~

根据W版主对FINDCD的解释:
FINDCD 2就可以将第2个光驱的盘符分配为%CDROM%;FINDCD 3就可以分配第3个盘符,以此类推;若执行FINDCD /S,就一次性分配所有光盘盘符,分别为%CDROM1%、%CDROM2%,等等,而此时%CDROM%则为光盘总数目。

我在AUTOEXEC中分别对每个光驱进行判断,看是否存在需要的文件,如果%CDROM1%没有,就判断%CDROM2%。但是测试中发现如果CDROM1中没有光盘的话,它就不向下执行,而是显示
CDR101:NOT READY READ DRIVE D
ABORT,RETRY,FAIL?

现在的问题是,如何能够让它判断出CDROM1中并没有光盘,直接向下个光驱判断~~~
请版主帮忙,非常感谢!!!

2003-6-25 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


积分 27734
发帖 10521
注册 2002-10-9
状态 离线
『第 2 楼』:  

这不是FINDCD的问题,而是批处理程序的编写问题。这样吧,用FINDCD和DREADY合用就可以做到了。DREADY是一个非常小巧的专门用来检查驱动器的状态的软件,在我的MS-DOS 7.10启动盘中有这个程序。


[此贴子已经被作者于2003-6-25 23:40:33编辑过]






Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

2003-6-25 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
雨浪飘零
中级用户




积分 364
发帖 95
注册 2003-6-15
状态 离线
『第 3 楼』:  

谢版主!原问题已经解决,的确是我在编写AUTOEXEC时的问题,后来使用了一个叫CDA的小工具用来判断光驱中是否有光盘,解决了这个问题!

现在多光驱问题已经解决,但是发现了新一个问题~~~

作成的引导盘在虚拟机中测试时,在VMware-workstation-4.0可以很好的工作,但是在Virtual PC5.2中却无法找到光驱。这是借用你的启动盘里做成的,如果用原98启动盘里的内容精简后加载光驱,就可以在Virtual PC中很好的工作,因此我不知道是否是你的启动盘中的MSCDEX的问题或者是VIDE-CDD.SYS和ASPICD.SYS的问题,困惑中~~~

附上AUTOEXEC源码,请指正,谢谢~~~

@ECHO OFF
XMSDSK 4096 /Y
FINDRAMD
COPY COMMAND.COM %RAMDRIVE%\
COPY RESTART.COM %RAMDRIVE%\
SET COMSPEC=%RAMDRIVE%\COMMAND.COM

LH KILLER
LH CTMOUSE


LH MSCDEX /D:IDE-CD /D:SCSI-CD /D:USB-CD /S /K
FINDCD /S
SET CDR=%CDROM1%
CDA %CDROM1% > NUL
IF ERRORLEVEL 1 GOTO CD2
IF EXIST %CDROM1%\DOS\NDD.EXE GOTO NEXT

:CD2
SET CDR=%CDROM2%
CDA %CDROM2% > NUL
IF ERRORLEVEL 1 GOTO CD3
IF EXIST %CDROM2%\DOS\NDD.EXE GOTO NEXT

:CD3
SET CDR=%CDROM3%
CDA %CDROM3% > NUL
IF ERRORLEVEL 1 GOTO CD4
IF EXIST %CDROM3%\DOS\NDD.EXE GOTO NEXT

:CD4
SET CDR=%CDROM4%
CDA %CDROM4% > NUL
IF ERRORLEVEL 1 GOTO CD5
IF EXIST %CDROM4%\DOS\NDD.EXE GOTO NEXT

:CD5
SET CDR=%CDROM5%
CDA %CDROM5% > NUL
IF ERRORLEVEL 1 GOTO CD6
IF EXIST %CDROM5%\DOS\NDD.EXE GOTO NEXT

:CD6
SET CDR=%CDROM6%
CDA %CDROM6% > NUL
IF ERRORLEVEL 1 GOTO END
IF EXIST %CDROM6%\DOS\NDD.EXE GOTO NEXT
GOTO END

:NEXT
COPY %CDR%\DOS\ndd.exe %RAMDRIVE%
%RAMDRIVE%
ndd.exe
GOTO RESET

:END
CLS
ECHO.
ECHO.
ECHO.
ECHO.                           ERROR:   CD boot fail
ECHO.
ECHO        It''s not YuLangPiaoLing''s Bootable CD or Your Driver is not supported.
ECHO.
ECHO        Press any key to restart the computer or Press "Ctrl+C" to exit.
ECHO.
ECHO.
ECHO.
PAUSE > NUL
RESTART.COM
GOTO RESET

:RESET


[此贴子已经被作者于2003-6-26 12:19:23编辑过]




2003-6-26 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


积分 27734
发帖 10521
注册 2002-10-9
状态 离线
『第 4 楼』:  

CDA还没有DREADY功能强呢,而且更加笨重,体积高达11KB!而DREADY呢,不仅功能强大,却非常小巧实用,才400多字节呢。所以强烈建议使用DREADY来代替那个旧的CDA程序。



Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

2003-6-26 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
雨浪飘零
中级用户




积分 364
发帖 95
注册 2003-6-15
状态 离线
『第 5 楼』:  

谢谢版主提醒,刚才看了一下,DREADY有四个返回值
0:READY,1:READY ONLY(/W),2:NOT READY,255:INVALID
的确很好,准备采用~~~

另:兼容性的问题还请版主考虑一下,因为你的启动盘MSDOS7.1在Virtual PC除了第5项可以启动外,其他的均不能正常启动,而在VMware-workstation中可以,因为它们两个的虚拟环境不一样,所以我想是不是兼容性问题,就象你所说的在845的主板上你的启动盘就会出现问题。

如果可以找出来是部分的问题,解决起来应该就可以有的放矢了,因此,我想请版主帮忙试一下看是哪部分的问题~~~

2003-6-26 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
雨浪飘零
中级用户




积分 364
发帖 95
注册 2003-6-15
状态 离线
『第 6 楼』:  

找出问题所在了,多次拦截后发现在加载 “ LH MSCDEX /D:IDE-CD /D:SCSI-CD /D:USB-CD /S /K ”  后出现如下提示:
PACKET FILES IS CORRUPT

在单独执行MSCDEX后,也是上面的提示,但是单独执行98原盘里的MSCDEX却是正常的。

看来问题是处在 MSCDEX 上了,比较了一下,98原盘里的是24.8K,而你用的是21.1K,不知这两个有和区别?


2003-6-26 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
雨浪飘零
中级用户




积分 364
发帖 95
注册 2003-6-15
状态 离线
『第 7 楼』:  

经过多次修改和测试总算解决了所有的问题~~~

的确是你的启动盘里的MSCDEX有问题,在某些环境里不能执行,换为98原盘里的MSCDEX后所有测试环境一切正常,呵呵

谢谢版主的帮助,也谢谢版主的启动盘,从里面学到了很多东西,现在基本上抛弃了微软的启动盘,都是自己做出来的,里面借用了很多你的思想和工具,在此向你致谢!

2003-6-26 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
yiyesong
元老会员




积分 1987
发帖 632
注册 2002-10-27
状态 离线
『第 8 楼』:  

WENGIER的那个启动盘中不能在VPC启动,不是因为MSCDEX的问题,而是加载了与其配套的CLOAKING,CLOAKING不能与VPC兼容。所以你在CONFIG.SYS中除掉就行了。不过去掉后,MSCDEX将占29K内存。而且这个MSCDEX确是和天汇汉字系统存在着兼容性问题。
在这里我推荐FREEDOS的SHSUCEX,占用内存不到11K,功能和兼容性都很好。是MSCDEX最好的替代品。
DREAD不如CDA,对磁盘不错,但是对光盘不行。
WENGIER的FICDCD.exe,有一个BUG,详见这里:http://www2.zzu.edu.cn/ie/newdos/dispbbs.asp?boardID=11&ID=4298




[flash=550,93]http://dos.e-stone.cn/dosbbs
uploadImages/200311161145850422.swf[/flash]
2003-6-26 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
雨浪飘零
中级用户




积分 364
发帖 95
注册 2003-6-15
状态 离线
『第 9 楼』:  

谢谢兄提示,CLOAKING我很早就发现兼容性的问题,所以一直就没有用它。WENGIER的那个MSCDEX即使单独使用,在VPC中也会报错的。

看了兄的文章,获益匪浅,我下载了你的启动盘包,准备仔细研究一下。

再次先感谢兄能将这么好的东东给大家分享!



2003-6-26 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hunome
银牌会员

颓废青年


积分 2265
发帖 721
注册 2003-5-12
状态 离线
『第 10 楼』:  

恭喜雨浪兄解决了问题!还希望以后多来这里啊!

2003-6-26 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
雨浪飘零
中级用户




积分 364
发帖 95
注册 2003-6-15
状态 离线
『第 11 楼』:  


呵呵,谢兄~~~

早上忘了开QQ,不好意思呀~~~

2003-6-26 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hunome
银牌会员

颓废青年


积分 2265
发帖 721
注册 2003-5-12
状态 离线
『第 12 楼』:  

其实我告诉你的办法是可行的。
但如果你用xmsdsk,而不是ramdrive的话,要考虑默认盘符的问题。
光盘的盘符也一样。
具体的就是:用98原版的启动盘的%cdrom%和%ramd%改为了后来的%cdrom%和
%ramdrive%,并且好像前者是H而后者是H:的模式。
这样,在调用chcdrom的参数时要把c d 。。改为c: d: 。。。

2003-6-26 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
雨浪飘零
中级用户




积分 364
发帖 95
注册 2003-6-15
状态 离线
『第 13 楼』:  

你说的对,他们之间还是有区别的~~~

不用RAMDRIVE的原因是讨厌他在SETRAM。BAT中的编写,感觉不象是专业人员写出来的一样,另外98自带的FINDCD没有帮助说明,如果真如孤掌兄说的那样,就需要对应每一个文件去修改FINDCD,太麻烦了~~~



2003-6-26 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


积分 27734
发帖 10521
注册 2002-10-9
状态 离线
『第 14 楼』:  



  Quote:
以下是引用yiyesong在2003-6-26 14:10:11的发言:
DREAD不如CDA,对磁盘不错,但是对光盘不行。
WENGIER的FICDCD.exe,有一个BUG,详见这里:http://www2.zzu.edu.cn/ie/newdos/dispbbs.asp?boardID=11&ID=4298

DREADY为什么对光盘不行呢?我试过多次,好像可以吧?

关于FINDCD.EXE,其实手工清除%CDROM%变量,或者运行时指定/N选项不设置变量而用ERRORLEVEL来进行判断都是可以的。



Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

2003-6-26 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
yiyesong
元老会员




积分 1987
发帖 632
注册 2002-10-27
状态 离线
『第 15 楼』:  



  Quote:
以下是引用Wengier在2003-6-26 20:03:25的发言:
关于FINDCD.EXE,其实手工清除%CDROM%变量,或者运行时指定/N选项不设置变量而用ERRORLEVEL来进行判断都是可以的。

用FINDCD /S 强行手工清都清不掉,比如你原来的CDROM1=G,你用SET CDROM1=清空后,再用SET命令查看。依然是CDROM1=G,WENGIER,你可以试试,你用一遍FINDCD /S,再清空,再用一遍,再清空,很快系统就会提醒你变量空间溢出。


[此贴子已经被作者于2003-6-27 8:11:14编辑过]






[flash=550,93]http://dos.e-stone.cn/dosbbs
uploadImages/200311161145850422.swf[/flash]
2003-6-27 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
« [1] [2] »
请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: