如何让老式Basic程序“升级” 周泽雁 1997-01-01   使用Basic编程的用户都知道,以前在第一、二代Basic下编制的源程序,不能直接放在目前的第三代QBasic及第四代Visual Basic下编辑和运行。这主要是因为老式Basic程序语法虽与目前的QBasic兼容,但其存储代码为非文本格式,不能在QBasic下显示,更无法编辑、运行。笔者积有很多老式Basic程序,弃之可惜。经过实践,本人发现可以通过管道命令实现老式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下运行了。