如何让老式Basic程序“升级”
#2 一、在高版本DOS下启动Basic。
由于在高版本DOS下运行Basic,会出现“Incorrect DOS Version”出错信息,需用DEBUG对Basic.com进行修改,使其跳过对DOS版本号的判断,这样就可以在高版本DOS下顺利运行Basic了。取得DOS版本号是通过DOS功能调用INT 21H的30H功能来实现的,即:
MOV AH,30
INT 21
这两行的代码为B4 30 CD 21,故须作如下操作:
C:\>DEBUG BASIC.COM
-S 0,FFFF,B4,30,CD,21
-2256:204A ;找到关键代码的段地址和偏移量
-U 204A ;对源代码进行反汇编
MOV AH,30
INT 21
CMP AL,03
JZ ××××
……
用DEBUG的A命令将JZ ××××改为JMP ××××,再用W命令存盘,Q命令返回DOS下,这样Basic就可以启动了。
#2 二、假设对老版本Basic程序abc.bas进行文本格式转换,结果为xyz.bas,以此为例,则在DOS下输入如下命令:
C:\>BASIC>xyz.bas
出现Basic提示符“OK”,
OK
LOAD "abc.bas"
OK
LIST
……
OK
SYSTEM
此时,在当前目录下就会发现一个名为xyz.bas的文本文件,再用文本编辑器EDIT对其编辑,主要是将程序头尾的一些转换过程中产生的原Basic信息行删去即可。这样程序xyz.bas就可以在QBasic下运行了。