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