DOS版本不兼容的解决方法
Incorrect Dos Version
碰到这种情况时,用户往往不知道怎么处理,其实只需用DEBUG将该外部命令程序修改一个字节就可以解决。
每一个DOS外部命令中有一段代码是检查版本号的,如果版本号是对的,就继续运行该程序;否则,将显示出错信息并终止程序运行。这样,我们就可以修改这个程序,使得无论版本号是否一致,都继续运行该程序,这种修改非常简单。
取得DOS版本号是通过DOS功能调用INT21H的30H功能来实现的,即:
MOV AH,30
INT 21
第一行的代码为B430。我们仍以DOS3.30中FORMAT为例,作如下操作:
C>DEBUG FOR MAT.COM
-S 100 FFFEB430
-1256:1330;找到关键代码的地址
-U 1330
MOV AH,30
INT 21;取得DOS版本号
CMPAX,1E03;是否3.30版
JZ××××;是3.30版则
……转向程序正常运行
用DEBUG的A命令将JZ××××改为JMP××××,然后存盘退出。这样就可以跳过版本号检查,使得其他版本的DOS可以使用该版本的FORMAT.COM程序。其它DOS外部命令的修改除了关键代码的地址不同之外,其他均相同。(湖北李俊平)